Built motion from commit dde1e88.|2.0.22 2.0.22
authorGiuseppe Careri <giuseppe.careri@xcally.com>
Mon, 3 Jul 2017 14:24:50 +0000 (16:24 +0200)
committerGiuseppe Careri <giuseppe.careri@xcally.com>
Mon, 3 Jul 2017 14:24:50 +0000 (16:24 +0200)
1656 files changed:
apidoc/api_data.js [new file with mode: 0644]
apidoc/api_data.json [new file with mode: 0644]
apidoc/api_project.js [new file with mode: 0644]
apidoc/api_project.json [new file with mode: 0644]
apidoc/css/style.css [new file with mode: 0644]
apidoc/fonts/glyphicons-halflings-regular.eot [new file with mode: 0644]
apidoc/fonts/glyphicons-halflings-regular.svg [new file with mode: 0644]
apidoc/fonts/glyphicons-halflings-regular.ttf [new file with mode: 0644]
apidoc/fonts/glyphicons-halflings-regular.woff [new file with mode: 0644]
apidoc/fonts/glyphicons-halflings-regular.woff2 [new file with mode: 0644]
apidoc/img/favicon.ico [new file with mode: 0644]
apidoc/index.html [new file with mode: 0644]
apidoc/locales/ca.js [new file with mode: 0644]
apidoc/locales/de.js [new file with mode: 0644]
apidoc/locales/es.js [new file with mode: 0644]
apidoc/locales/fr.js [new file with mode: 0644]
apidoc/locales/it.js [new file with mode: 0644]
apidoc/locales/locale.js [new file with mode: 0644]
apidoc/locales/nl.js [new file with mode: 0644]
apidoc/locales/pl.js [new file with mode: 0644]
apidoc/locales/pt_br.js [new file with mode: 0644]
apidoc/locales/ro.js [new file with mode: 0644]
apidoc/locales/ru.js [new file with mode: 0644]
apidoc/locales/tr.js [new file with mode: 0644]
apidoc/locales/vi.js [new file with mode: 0644]
apidoc/locales/zh.js [new file with mode: 0644]
apidoc/locales/zh_cn.js [new file with mode: 0644]
apidoc/main.js [new file with mode: 0644]
apidoc/utils/handlebars_helper.js [new file with mode: 0644]
apidoc/utils/send_sample_request.js [new file with mode: 0755]
apidoc/vendor/bootstrap.min.css [new file with mode: 0644]
apidoc/vendor/bootstrap.min.js [new file with mode: 0644]
apidoc/vendor/diff_match_patch.min.js [new file with mode: 0644]
apidoc/vendor/handlebars.min.js [new file with mode: 0644]
apidoc/vendor/jquery.min.js [new file with mode: 0644]
apidoc/vendor/list.min.js [new file with mode: 0644]
apidoc/vendor/lodash.custom.min.js [new file with mode: 0644]
apidoc/vendor/path-to-regexp/LICENSE [new file with mode: 0644]
apidoc/vendor/path-to-regexp/index.js [new file with mode: 0644]
apidoc/vendor/polyfill.js [new file with mode: 0644]
apidoc/vendor/prettify.css [new file with mode: 0644]
apidoc/vendor/prettify/lang-Splus.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-aea.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-agc.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-apollo.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-basic.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-cbm.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-cl.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-clj.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-css.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-dart.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-el.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-erl.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-erlang.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-fs.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-go.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-hs.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-lasso.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-lassoscript.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-latex.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-lgt.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-lisp.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-ll.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-llvm.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-logtalk.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-ls.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-lsp.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-lua.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-matlab.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-ml.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-mumps.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-n.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-nemerle.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-pascal.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-proto.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-r.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-rd.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-rkt.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-rust.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-s.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-scala.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-scm.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-sql.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-ss.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-swift.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-tcl.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-tex.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-vb.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-vbs.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-vhd.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-vhdl.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-wiki.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-xq.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-xquery.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-yaml.js [new file with mode: 0644]
apidoc/vendor/prettify/lang-yml.js [new file with mode: 0644]
apidoc/vendor/prettify/prettify.css [new file with mode: 0644]
apidoc/vendor/prettify/prettify.js [new file with mode: 0644]
apidoc/vendor/prettify/run_prettify.js [new file with mode: 0644]
apidoc/vendor/require.min.js [new file with mode: 0644]
apidoc/vendor/semver.min.js [new file with mode: 0644]
apidoc/vendor/webfontloader.js [new file with mode: 0644]
demo/agents/ajax.js [new file with mode: 0644]
demo/agents/index.html [new file with mode: 0644]
demo/api/index.html [new file with mode: 0644]
demo/index.css [new file with mode: 0644]
demo/index.html [new file with mode: 0644]
demo/phonebar/index.html [new file with mode: 0644]
package.json [new file with mode: 0644]
public/app/errors/404/i18n/da.json [new file with mode: 0644]
public/app/errors/404/i18n/de.json [new file with mode: 0644]
public/app/errors/404/i18n/en.json [new file with mode: 0644]
public/app/errors/404/i18n/es.json [new file with mode: 0644]
public/app/errors/404/i18n/fa.json [new file with mode: 0644]
public/app/errors/404/i18n/fi.json [new file with mode: 0644]
public/app/errors/404/i18n/fr.json [new file with mode: 0644]
public/app/errors/404/i18n/hi.json [new file with mode: 0644]
public/app/errors/404/i18n/it.json [new file with mode: 0644]
public/app/errors/404/i18n/ja.json [new file with mode: 0644]
public/app/errors/404/i18n/ko.json [new file with mode: 0644]
public/app/errors/404/i18n/nl.json [new file with mode: 0644]
public/app/errors/404/i18n/no.json [new file with mode: 0644]
public/app/errors/404/i18n/pt-PT.json [new file with mode: 0644]
public/app/errors/404/i18n/ru.json [new file with mode: 0644]
public/app/errors/404/i18n/sv.json [new file with mode: 0644]
public/app/errors/404/i18n/tr.json [new file with mode: 0644]
public/app/errors/404/i18n/zh-CN.json [new file with mode: 0644]
public/app/errors/404/i18n/zh-TW.json [new file with mode: 0644]
public/app/errors/500/i18n/da.json [new file with mode: 0644]
public/app/errors/500/i18n/de.json [new file with mode: 0644]
public/app/errors/500/i18n/en.json [new file with mode: 0644]
public/app/errors/500/i18n/es.json [new file with mode: 0644]
public/app/errors/500/i18n/fa.json [new file with mode: 0644]
public/app/errors/500/i18n/fi.json [new file with mode: 0644]
public/app/errors/500/i18n/fr.json [new file with mode: 0644]
public/app/errors/500/i18n/hi.json [new file with mode: 0644]
public/app/errors/500/i18n/it.json [new file with mode: 0644]
public/app/errors/500/i18n/ja.json [new file with mode: 0644]
public/app/errors/500/i18n/ko.json [new file with mode: 0644]
public/app/errors/500/i18n/nl.json [new file with mode: 0644]
public/app/errors/500/i18n/no.json [new file with mode: 0644]
public/app/errors/500/i18n/pt-PT.json [new file with mode: 0644]
public/app/errors/500/i18n/ru.json [new file with mode: 0644]
public/app/errors/500/i18n/sv.json [new file with mode: 0644]
public/app/errors/500/i18n/tr.json [new file with mode: 0644]
public/app/errors/500/i18n/zh-CN.json [new file with mode: 0644]
public/app/errors/500/i18n/zh-TW.json [new file with mode: 0644]
public/app/login/i18n/da.json [new file with mode: 0644]
public/app/login/i18n/de.json [new file with mode: 0644]
public/app/login/i18n/en.json [new file with mode: 0644]
public/app/login/i18n/es.json [new file with mode: 0644]
public/app/login/i18n/fa.json [new file with mode: 0644]
public/app/login/i18n/fi.json [new file with mode: 0644]
public/app/login/i18n/fr.json [new file with mode: 0644]
public/app/login/i18n/hi.json [new file with mode: 0644]
public/app/login/i18n/it.json [new file with mode: 0644]
public/app/login/i18n/ja.json [new file with mode: 0644]
public/app/login/i18n/ko.json [new file with mode: 0644]
public/app/login/i18n/nl.json [new file with mode: 0644]
public/app/login/i18n/no.json [new file with mode: 0644]
public/app/login/i18n/pt-PT.json [new file with mode: 0644]
public/app/login/i18n/ru.json [new file with mode: 0644]
public/app/login/i18n/sv.json [new file with mode: 0644]
public/app/login/i18n/tr.json [new file with mode: 0644]
public/app/login/i18n/zh-CN.json [new file with mode: 0644]
public/app/login/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/da.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/de.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/en.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/es.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/it.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/no.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/analytics/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/da.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/de.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/en.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/es.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/it.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/no.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/callysquare/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/da.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/de.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/en.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/es.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/it.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/no.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/chat/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/da.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/de.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/en.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/es.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/it.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/no.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/contactmanager/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/da.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/de.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/en.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/es.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/it.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/no.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/dashboards/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/da.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/de.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/en.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/es.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/it.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/no.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/fax/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/help/i18n/da.json [new file with mode: 0644]
public/app/main/apps/help/i18n/de.json [new file with mode: 0644]
public/app/main/apps/help/i18n/en.json [new file with mode: 0644]
public/app/main/apps/help/i18n/es.json [new file with mode: 0644]
public/app/main/apps/help/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/help/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/help/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/help/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/help/i18n/it.json [new file with mode: 0644]
public/app/main/apps/help/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/help/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/help/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/help/i18n/no.json [new file with mode: 0644]
public/app/main/apps/help/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/help/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/help/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/help/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/help/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/help/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/da.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/de.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/en.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/es.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/it.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/no.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/integrations/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/da.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/de.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/en.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/es.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/it.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/no.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/jscripty/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/da.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/de.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/en.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/es.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/it.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/no.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/mail/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/da.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/de.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/en.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/es.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/it.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/no.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/motiondialer/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/da.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/de.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/en.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/es.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/it.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/no.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/openchannel/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/da.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/de.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/en.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/es.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/it.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/no.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/settings/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/da.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/de.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/en.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/es.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/it.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/no.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/sms/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/da.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/de.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/en.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/es.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/it.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/no.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/staff/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/da.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/de.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/en.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/es.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/it.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/no.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/tools/i18n/zh-TW.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/da.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/de.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/en.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/es.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/fa.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/fi.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/fr.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/hi.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/it.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/ja.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/ko.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/nl.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/no.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/pt-PT.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/ru.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/sv.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/tr.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/zh-CN.json [new file with mode: 0644]
public/app/main/apps/voice/i18n/zh-TW.json [new file with mode: 0644]
public/app/quick-panel/i18n/da.json [new file with mode: 0644]
public/app/quick-panel/i18n/de.json [new file with mode: 0644]
public/app/quick-panel/i18n/en.json [new file with mode: 0644]
public/app/quick-panel/i18n/es.json [new file with mode: 0644]
public/app/quick-panel/i18n/fa.json [new file with mode: 0644]
public/app/quick-panel/i18n/fi.json [new file with mode: 0644]
public/app/quick-panel/i18n/fr.json [new file with mode: 0644]
public/app/quick-panel/i18n/hi.json [new file with mode: 0644]
public/app/quick-panel/i18n/it.json [new file with mode: 0644]
public/app/quick-panel/i18n/ja.json [new file with mode: 0644]
public/app/quick-panel/i18n/ko.json [new file with mode: 0644]
public/app/quick-panel/i18n/nl.json [new file with mode: 0644]
public/app/quick-panel/i18n/no.json [new file with mode: 0644]
public/app/quick-panel/i18n/pt-PT.json [new file with mode: 0644]
public/app/quick-panel/i18n/ru.json [new file with mode: 0644]
public/app/quick-panel/i18n/sv.json [new file with mode: 0644]
public/app/quick-panel/i18n/tr.json [new file with mode: 0644]
public/app/quick-panel/i18n/zh-CN.json [new file with mode: 0644]
public/app/quick-panel/i18n/zh-TW.json [new file with mode: 0644]
public/app/toolbar/i18n/da.json [new file with mode: 0644]
public/app/toolbar/i18n/de.json [new file with mode: 0644]
public/app/toolbar/i18n/en.json [new file with mode: 0644]
public/app/toolbar/i18n/es.json [new file with mode: 0644]
public/app/toolbar/i18n/fa.json [new file with mode: 0644]
public/app/toolbar/i18n/fi.json [new file with mode: 0644]
public/app/toolbar/i18n/fr.json [new file with mode: 0644]
public/app/toolbar/i18n/hi.json [new file with mode: 0644]
public/app/toolbar/i18n/it.json [new file with mode: 0644]
public/app/toolbar/i18n/ja.json [new file with mode: 0644]
public/app/toolbar/i18n/ko.json [new file with mode: 0644]
public/app/toolbar/i18n/nl.json [new file with mode: 0644]
public/app/toolbar/i18n/no.json [new file with mode: 0644]
public/app/toolbar/i18n/pt-PT.json [new file with mode: 0644]
public/app/toolbar/i18n/ru.json [new file with mode: 0644]
public/app/toolbar/i18n/sv.json [new file with mode: 0644]
public/app/toolbar/i18n/tr.json [new file with mode: 0644]
public/app/toolbar/i18n/zh-CN.json [new file with mode: 0644]
public/app/toolbar/i18n/zh-TW.json [new file with mode: 0644]
public/assets/angular-material-assets/icons/avatar-icons.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/100-0.jpeg [new file with mode: 0644]
public/assets/angular-material-assets/img/100-1.jpeg [new file with mode: 0644]
public/assets/angular-material-assets/img/100-2.jpeg [new file with mode: 0644]
public/assets/angular-material-assets/img/angular.png [new file with mode: 0644]
public/assets/angular-material-assets/img/bg9.jpg [new file with mode: 0644]
public/assets/angular-material-assets/img/bgWhitePaper.jpg [new file with mode: 0644]
public/assets/angular-material-assets/img/docArrow.png [new file with mode: 0644]
public/assets/angular-material-assets/img/donut.jpg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/addShoppingCart.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/android.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/angular-logo.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/bower-logo.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/cake.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/codepen-logo.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/copy.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/copy2.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/facebook.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/favorite.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/github-icon.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/github.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/hangout.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_access_time_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_arrow_back_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_build_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_card_giftcard_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_chevron_right_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_close_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_code_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_comment_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_email_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_euro_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_insert_drive_file_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_label_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_launch_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_menu_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_more_vert_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_ondemand_video_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_people_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_person_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_phone_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_photo_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_place_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_play_arrow_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_play_circle_fill_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_refresh_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_school_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/ic_visibility_24px.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/launch.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/list_control_down.png [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/mail.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/menu.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/message.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/more_vert.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/npm-logo.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/octicon-repo.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/print.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/separator.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/sets/communication-icons.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/sets/core-icons.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/sets/device-icons.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/sets/social-icons.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/share-arrow.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/tabs-arrow.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/toggle-arrow.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/twitter.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/icons/upload.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/list/60.jpeg [new file with mode: 0644]
public/assets/angular-material-assets/img/logo.svg [new file with mode: 0644]
public/assets/angular-material-assets/img/mangues.jpg [new file with mode: 0644]
public/assets/angular-material-assets/img/testimonials/logo-bradgreen@2x.fw.png [new file with mode: 0644]
public/assets/angular-material-assets/img/testimonials/logo-bradgreen@2x.png [new file with mode: 0644]
public/assets/angular-material-assets/img/testimonials/logo-maxlynch@2x.fw.png [new file with mode: 0644]
public/assets/angular-material-assets/img/testimonials/logo-maxlynch@2x.png [new file with mode: 0644]
public/assets/angular-material-assets/img/testimonials/logo-thomasburleson@2x.png [new file with mode: 0644]
public/assets/angular-material-assets/img/testimonials/quote.png [new file with mode: 0644]
public/assets/angular-material-assets/img/testimonials/testimonial-hampton@2x.png [new file with mode: 0644]
public/assets/angular-material-assets/img/testimonials/testimonial-holly@2x.png [new file with mode: 0644]
public/assets/angular-material-assets/img/testimonials/testimonial-james@2x.png [new file with mode: 0644]
public/assets/angular-material-assets/img/washedout.png [new file with mode: 0644]
public/assets/icons/fonts/icomoon.eot [new file with mode: 0644]
public/assets/icons/fonts/icomoon.svg [new file with mode: 0644]
public/assets/icons/fonts/icomoon.ttf [new file with mode: 0644]
public/assets/icons/fonts/icomoon.woff [new file with mode: 0644]
public/assets/icons/selection.json [new file with mode: 0644]
public/assets/images/avatars/profile.jpg [new file with mode: 0644]
public/assets/images/backgrounds/april.jpg [new file with mode: 0644]
public/assets/images/backgrounds/august.jpg [new file with mode: 0644]
public/assets/images/backgrounds/december.jpg [new file with mode: 0644]
public/assets/images/backgrounds/february.jpg [new file with mode: 0644]
public/assets/images/backgrounds/header-bg.png [new file with mode: 0644]
public/assets/images/backgrounds/january.jpg [new file with mode: 0644]
public/assets/images/backgrounds/july.jpg [new file with mode: 0644]
public/assets/images/backgrounds/june.jpg [new file with mode: 0644]
public/assets/images/backgrounds/march.jpg [new file with mode: 0644]
public/assets/images/backgrounds/may.jpg [new file with mode: 0644]
public/assets/images/backgrounds/november.jpg [new file with mode: 0644]
public/assets/images/backgrounds/october.jpg [new file with mode: 0644]
public/assets/images/backgrounds/september.jpg [new file with mode: 0644]
public/assets/images/business/agents.jpg [new file with mode: 0644]
public/assets/images/business/chanSpies.jpg [new file with mode: 0644]
public/assets/images/business/companies.jpg [new file with mode: 0644]
public/assets/images/business/contacts.jpg [new file with mode: 0644]
public/assets/images/business/cprojects.jpg [new file with mode: 0644]
public/assets/images/business/customDashboards.jpg [new file with mode: 0644]
public/assets/images/business/freshdeskAccounts.jpg [new file with mode: 0644]
public/assets/images/business/inboundroutes.jpg [new file with mode: 0644]
public/assets/images/business/internalroutes.jpg [new file with mode: 0644]
public/assets/images/business/intervals.jpg [new file with mode: 0644]
public/assets/images/business/ivrCampaigns.jpg [new file with mode: 0644]
public/assets/images/business/lists.jpg [new file with mode: 0644]
public/assets/images/business/musiconholds.jpg [new file with mode: 0644]
public/assets/images/business/outboundroutes.jpg [new file with mode: 0644]
public/assets/images/business/projects.jpg [new file with mode: 0644]
public/assets/images/business/queueCampaigns.jpg [new file with mode: 0644]
public/assets/images/business/queues.jpg [new file with mode: 0644]
public/assets/images/business/reports.jpg [new file with mode: 0644]
public/assets/images/business/salesforceAccounts.jpg [new file with mode: 0644]
public/assets/images/business/schedules.jpg [new file with mode: 0644]
public/assets/images/business/sugarcrmAccounts.jpg [new file with mode: 0644]
public/assets/images/business/teams.jpg [new file with mode: 0644]
public/assets/images/business/telephones.jpg [new file with mode: 0644]
public/assets/images/business/triggers.jpg [new file with mode: 0644]
public/assets/images/business/trunks.jpg [new file with mode: 0644]
public/assets/images/business/users.jpg [new file with mode: 0644]
public/assets/images/business/voiceQueues.jpg [new file with mode: 0644]
public/assets/images/business/voicemails.jpg [new file with mode: 0644]
public/assets/images/business/zendeskAccounts.jpg [new file with mode: 0644]
public/assets/images/flags/ar.png [new file with mode: 0644]
public/assets/images/flags/da.png [new file with mode: 0644]
public/assets/images/flags/de.png [new file with mode: 0644]
public/assets/images/flags/en_EN.png [new file with mode: 0644]
public/assets/images/flags/es.png [new file with mode: 0644]
public/assets/images/flags/fa.png [new file with mode: 0644]
public/assets/images/flags/fi.png [new file with mode: 0644]
public/assets/images/flags/fr.png [new file with mode: 0644]
public/assets/images/flags/hi.png [new file with mode: 0644]
public/assets/images/flags/it.png [new file with mode: 0644]
public/assets/images/flags/ja.png [new file with mode: 0644]
public/assets/images/flags/ko.png [new file with mode: 0644]
public/assets/images/flags/nl.png [new file with mode: 0644]
public/assets/images/flags/no.png [new file with mode: 0644]
public/assets/images/flags/pt-BR.png [new file with mode: 0644]
public/assets/images/flags/pt-PT.png [new file with mode: 0644]
public/assets/images/flags/ru.png [new file with mode: 0644]
public/assets/images/flags/sv.png [new file with mode: 0644]
public/assets/images/flags/tr.png [new file with mode: 0644]
public/assets/images/flags/us.png [new file with mode: 0644]
public/assets/images/flags/zh-CN.png [new file with mode: 0644]
public/assets/images/flags/zh-TW.png [new file with mode: 0644]
public/assets/images/jstree/32px.png [new file with mode: 0644]
public/assets/images/jstree/40px.png [new file with mode: 0644]
public/assets/images/jstree/throbber.gif [new file with mode: 0644]
public/assets/images/logos/loading.png [new file with mode: 0644]
public/assets/images/logos/login.png [new file with mode: 0644]
public/assets/images/logos/whisker_32x32.png [new file with mode: 0644]
public/assets/images/music-player/error.png [new file with mode: 0644]
public/assets/images/music-player/success.png [new file with mode: 0644]
public/assets/images/music-player/uploading.png [new file with mode: 0644]
public/assets/images/theme-options/content-only.jpg [new file with mode: 0644]
public/assets/images/theme-options/content-with-toolbar.jpg [new file with mode: 0644]
public/assets/images/theme-options/horizontal-nav.jpg [new file with mode: 0644]
public/assets/images/theme-options/vertical-nav-with-full-toolbar-2.jpg [new file with mode: 0644]
public/assets/images/theme-options/vertical-nav-with-full-toolbar.jpg [new file with mode: 0644]
public/assets/images/theme-options/vertical-nav.jpg [new file with mode: 0644]
public/assets/plugins/mxgraph/css/common.css [new file with mode: 0644]
public/assets/plugins/mxgraph/css/explorer.css [new file with mode: 0644]
public/assets/plugins/mxgraph/images/button.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/close.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/collapsed.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/error.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/expanded.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/maximize.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/minimize.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/normalize.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/point.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/resize.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/separator.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/submenu.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/transparent.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/warning.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/warning.png [new file with mode: 0644]
public/assets/plugins/mxgraph/images/window-title.gif [new file with mode: 0644]
public/assets/plugins/mxgraph/images/window.gif [new file with mode: 0644]
public/assets/plugins/square/images/checkmark.gif [new file with mode: 0644]
public/assets/plugins/square/images/clear.gif [new file with mode: 0644]
public/assets/plugins/square/images/close.png [new file with mode: 0644]
public/assets/plugins/square/images/collapsed.gif [new file with mode: 0644]
public/assets/plugins/square/images/connector.png [new file with mode: 0644]
public/assets/plugins/square/images/dropdown.gif [new file with mode: 0644]
public/assets/plugins/square/images/dropdown.png [new file with mode: 0644]
public/assets/plugins/square/images/edit.gif [new file with mode: 0644]
public/assets/plugins/square/images/expanded.gif [new file with mode: 0644]
public/assets/plugins/square/images/grid.gif [new file with mode: 0644]
public/assets/plugins/square/images/handle-fixed.png [new file with mode: 0644]
public/assets/plugins/square/images/handle-main.png [new file with mode: 0644]
public/assets/plugins/square/images/handle-rotate.png [new file with mode: 0644]
public/assets/plugins/square/images/handle-secondary.png [new file with mode: 0644]
public/assets/plugins/square/images/handle-terminal.png [new file with mode: 0644]
public/assets/plugins/square/images/help.png [new file with mode: 0644]
public/assets/plugins/square/images/locked.png [new file with mode: 0644]
public/assets/plugins/square/images/logo.png [new file with mode: 0644]
public/assets/plugins/square/images/nocolor.png [new file with mode: 0644]
public/assets/plugins/square/images/refresh.png [new file with mode: 0644]
public/assets/plugins/square/images/round-drop.png [new file with mode: 0644]
public/assets/plugins/square/images/search.png [new file with mode: 0644]
public/assets/plugins/square/images/tooltip.png [new file with mode: 0644]
public/assets/plugins/square/images/transparent.gif [new file with mode: 0644]
public/assets/plugins/square/images/triangle-down.png [new file with mode: 0644]
public/assets/plugins/square/images/triangle-left.png [new file with mode: 0644]
public/assets/plugins/square/images/triangle-right.png [new file with mode: 0644]
public/assets/plugins/square/images/triangle-up.png [new file with mode: 0644]
public/assets/plugins/square/images/unlocked.png [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_da.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_de.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_es.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_fa.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_fi.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_fr.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_hi.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_it.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_ja.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_ko.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_nl.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_no.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_pt-PT.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_ru.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_sv.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_tr.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_zh-CN.txt [new file with mode: 0644]
public/assets/plugins/square/resources/grapheditor_zh-TW.txt [new file with mode: 0644]
public/assets/plugins/square/resources/help.html [new file with mode: 0644]
public/assets/plugins/square/resources/help_de.html [new file with mode: 0644]
public/assets/plugins/square/stencils/call_management/answer_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/call_management/callback_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/call_management/dial_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/call_management/ext_dial_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/call_management/hangup_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/call_management/queue_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/call_management/voicemail_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/callflow/gotoc_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/callflow/gotoif_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/callflow/gotoifmultitime_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/callflow/gotoiftime_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/callflow/vswitch_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/entry/end_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/entry/finally_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/entry/start_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/general.xml [new file with mode: 0644]
public/assets/plugins/square/stencils/general/agi_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/general/custom_app_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/general/noop_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/general/subproject_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/general/system_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/integration_server/asr_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/integration_server/database_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/integration_server/ispeechasr_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/integration_server/sendFax_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/integration_server/sendMail_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/integration_server/sendSMS_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/playback/background_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/playback/getdigits_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/playback/getsecretdigits_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/playback/ispeechtts_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/playback/menu_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/playback/playback_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/playback/saydigits_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/playback/saynumber_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/playback/sayphonetic_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/playback/tts_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/recording/record_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/stats/goal_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/stats/queuelog_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/variable/math_128x128.png [new file with mode: 0644]
public/assets/plugins/square/stencils/variable/set_128x128.png [new file with mode: 0644]
public/assets/plugins/square/styles/default.xml [new file with mode: 0644]
public/assets/plugins/square/styles/down.gif [new file with mode: 0644]
public/assets/plugins/square/styles/sprites.png [new file with mode: 0644]
public/assets/plugins/square/styles/thumb_horz.png [new file with mode: 0644]
public/assets/plugins/square/styles/thumb_vertical.png [new file with mode: 0644]
public/assets/plugins/square/styles/up.gif [new file with mode: 0644]
public/favicon.ico [new file with mode: 0644]
public/fonts/FontAwesome.otf [new file with mode: 0644]
public/fonts/fontawesome-webfont.eot [new file with mode: 0644]
public/fonts/fontawesome-webfont.svg [new file with mode: 0644]
public/fonts/fontawesome-webfont.ttf [new file with mode: 0644]
public/fonts/fontawesome-webfont.woff [new file with mode: 0644]
public/fonts/fontawesome-webfont.woff2 [new file with mode: 0644]
public/index.html [new file with mode: 0644]
public/scripts/app.4301c492.js [new file with mode: 0644]
public/scripts/vendor.3efb0794.js [new file with mode: 0644]
public/styles/32px.png [new file with mode: 0644]
public/styles/40px.png [new file with mode: 0644]
public/styles/app.c546075c.css [new file with mode: 0644]
public/styles/throbber.gif [new file with mode: 0644]
public/styles/vendor.bef8c8e4.css [new file with mode: 0644]
scripts/post-merge.sh [new file with mode: 0644]
server/api/action/action.attributes.js [new file with mode: 0644]
server/api/action/action.controller.js [new file with mode: 0644]
server/api/action/action.model.js [new file with mode: 0644]
server/api/action/action.rpc.js [new file with mode: 0644]
server/api/action/index.js [new file with mode: 0644]
server/api/analyticCustomReport/analyticCustomReport.attributes.js [new file with mode: 0644]
server/api/analyticCustomReport/analyticCustomReport.controller.js [new file with mode: 0644]
server/api/analyticCustomReport/analyticCustomReport.model.js [new file with mode: 0644]
server/api/analyticCustomReport/analyticCustomReport.rpc.js [new file with mode: 0644]
server/api/analyticCustomReport/index.js [new file with mode: 0644]
server/api/analyticDefaultReport/analyticDefaultReport.attributes.js [new file with mode: 0644]
server/api/analyticDefaultReport/analyticDefaultReport.controller.js [new file with mode: 0644]
server/api/analyticDefaultReport/analyticDefaultReport.model.js [new file with mode: 0644]
server/api/analyticDefaultReport/analyticDefaultReport.rpc.js [new file with mode: 0644]
server/api/analyticDefaultReport/index.js [new file with mode: 0644]
server/api/analyticExtractedReport/analyticExtractedReport.attributes.js [new file with mode: 0644]
server/api/analyticExtractedReport/analyticExtractedReport.controller.js [new file with mode: 0644]
server/api/analyticExtractedReport/analyticExtractedReport.model.js [new file with mode: 0644]
server/api/analyticExtractedReport/analyticExtractedReport.rpc.js [new file with mode: 0644]
server/api/analyticExtractedReport/index.js [new file with mode: 0644]
server/api/analyticFieldReport/analyticFieldReport.attributes.js [new file with mode: 0644]
server/api/analyticFieldReport/analyticFieldReport.controller.js [new file with mode: 0644]
server/api/analyticFieldReport/analyticFieldReport.model.js [new file with mode: 0644]
server/api/analyticFieldReport/analyticFieldReport.rpc.js [new file with mode: 0644]
server/api/analyticFieldReport/index.js [new file with mode: 0644]
server/api/analyticMetric/analyticMetric.attributes.js [new file with mode: 0644]
server/api/analyticMetric/analyticMetric.controller.js [new file with mode: 0644]
server/api/analyticMetric/analyticMetric.model.js [new file with mode: 0644]
server/api/analyticMetric/analyticMetric.rpc.js [new file with mode: 0644]
server/api/analyticMetric/index.js [new file with mode: 0644]
server/api/analyticTreeReport/analyticTreeReport.attributes.js [new file with mode: 0644]
server/api/analyticTreeReport/analyticTreeReport.controller.js [new file with mode: 0644]
server/api/analyticTreeReport/analyticTreeReport.model.js [new file with mode: 0644]
server/api/analyticTreeReport/analyticTreeReport.rpc.js [new file with mode: 0644]
server/api/analyticTreeReport/index.js [new file with mode: 0644]
server/api/authGoogle/authGoogle.controller.js [new file with mode: 0644]
server/api/authGoogle/index.js [new file with mode: 0644]
server/api/authLocal/authLocal.controller.js [new file with mode: 0644]
server/api/authLocal/index.js [new file with mode: 0644]
server/api/automation/automation.attributes.js [new file with mode: 0644]
server/api/automation/automation.controller.js [new file with mode: 0644]
server/api/automation/automation.model.js [new file with mode: 0644]
server/api/automation/automation.rpc.js [new file with mode: 0644]
server/api/automation/index.js [new file with mode: 0644]
server/api/campaign/campaign.attributes.js [new file with mode: 0644]
server/api/campaign/campaign.controller.js [new file with mode: 0644]
server/api/campaign/campaign.model.js [new file with mode: 0644]
server/api/campaign/campaign.rpc.js [new file with mode: 0644]
server/api/campaign/index.js [new file with mode: 0644]
server/api/cannedAnswer/cannedAnswer.attributes.js [new file with mode: 0644]
server/api/cannedAnswer/cannedAnswer.controller.js [new file with mode: 0644]
server/api/cannedAnswer/cannedAnswer.model.js [new file with mode: 0644]
server/api/cannedAnswer/cannedAnswer.rpc.js [new file with mode: 0644]
server/api/cannedAnswer/index.js [new file with mode: 0644]
server/api/cdr/cdr.attributes.js [new file with mode: 0644]
server/api/cdr/cdr.controller.js [new file with mode: 0644]
server/api/cdr/cdr.model.js [new file with mode: 0644]
server/api/cdr/cdr.rpc.js [new file with mode: 0644]
server/api/cdr/index.js [new file with mode: 0644]
server/api/chatApplication/chatApplication.attributes.js [new file with mode: 0644]
server/api/chatApplication/chatApplication.controller.js [new file with mode: 0644]
server/api/chatApplication/chatApplication.model.js [new file with mode: 0644]
server/api/chatApplication/chatApplication.rpc.js [new file with mode: 0644]
server/api/chatApplication/index.js [new file with mode: 0644]
server/api/chatDisposition/chatDisposition.attributes.js [new file with mode: 0644]
server/api/chatDisposition/chatDisposition.controller.js [new file with mode: 0644]
server/api/chatDisposition/chatDisposition.model.js [new file with mode: 0644]
server/api/chatDisposition/chatDisposition.rpc.js [new file with mode: 0644]
server/api/chatDisposition/index.js [new file with mode: 0644]
server/api/chatEnquiry/chatEnquiry.attributes.js [new file with mode: 0644]
server/api/chatEnquiry/chatEnquiry.controller.js [new file with mode: 0644]
server/api/chatEnquiry/chatEnquiry.model.js [new file with mode: 0644]
server/api/chatEnquiry/chatEnquiry.rpc.js [new file with mode: 0644]
server/api/chatEnquiry/index.js [new file with mode: 0644]
server/api/chatInteraction/chatInteraction.attributes.js [new file with mode: 0644]
server/api/chatInteraction/chatInteraction.controller.js [new file with mode: 0644]
server/api/chatInteraction/chatInteraction.model.js [new file with mode: 0644]
server/api/chatInteraction/chatInteraction.rpc.js [new file with mode: 0644]
server/api/chatInteraction/index.js [new file with mode: 0644]
server/api/chatMessage/chatMessage.attributes.js [new file with mode: 0644]
server/api/chatMessage/chatMessage.controller.js [new file with mode: 0644]
server/api/chatMessage/chatMessage.model.js [new file with mode: 0644]
server/api/chatMessage/chatMessage.rpc.js [new file with mode: 0644]
server/api/chatMessage/index.js [new file with mode: 0644]
server/api/chatProactiveAction/chatProactiveAction.attributes.js [new file with mode: 0644]
server/api/chatProactiveAction/chatProactiveAction.controller.js [new file with mode: 0644]
server/api/chatProactiveAction/chatProactiveAction.model.js [new file with mode: 0644]
server/api/chatProactiveAction/chatProactiveAction.rpc.js [new file with mode: 0644]
server/api/chatProactiveAction/index.js [new file with mode: 0644]
server/api/chatQueue/chatQueue.attributes.js [new file with mode: 0644]
server/api/chatQueue/chatQueue.controller.js [new file with mode: 0644]
server/api/chatQueue/chatQueue.model.js [new file with mode: 0644]
server/api/chatQueue/chatQueue.rpc.js [new file with mode: 0644]
server/api/chatQueue/index.js [new file with mode: 0644]
server/api/chatReport/chatReport.attributes.js [new file with mode: 0644]
server/api/chatReport/chatReport.controller.js [new file with mode: 0644]
server/api/chatReport/chatReport.model.js [new file with mode: 0644]
server/api/chatReport/chatReport.rpc.js [new file with mode: 0644]
server/api/chatReport/index.js [new file with mode: 0644]
server/api/chatSessionReport/chatSessionReport.attributes.js [new file with mode: 0644]
server/api/chatSessionReport/chatSessionReport.controller.js [new file with mode: 0644]
server/api/chatSessionReport/chatSessionReport.model.js [new file with mode: 0644]
server/api/chatSessionReport/chatSessionReport.rpc.js [new file with mode: 0644]
server/api/chatSessionReport/index.js [new file with mode: 0644]
server/api/chatVisitor/chatVisitor.attributes.js [new file with mode: 0644]
server/api/chatVisitor/chatVisitor.controller.js [new file with mode: 0644]
server/api/chatVisitor/chatVisitor.model.js [new file with mode: 0644]
server/api/chatVisitor/chatVisitor.rpc.js [new file with mode: 0644]
server/api/chatVisitor/index.js [new file with mode: 0644]
server/api/chatWebsite/chatWebsite.attributes.js [new file with mode: 0644]
server/api/chatWebsite/chatWebsite.controller.js [new file with mode: 0644]
server/api/chatWebsite/chatWebsite.model.js [new file with mode: 0644]
server/api/chatWebsite/chatWebsite.rpc.js [new file with mode: 0644]
server/api/chatWebsite/index.js [new file with mode: 0644]
server/api/chatWebsiteField/chatWebsiteField.attributes.js [new file with mode: 0644]
server/api/chatWebsiteField/chatWebsiteField.controller.js [new file with mode: 0644]
server/api/chatWebsiteField/chatWebsiteField.model.js [new file with mode: 0644]
server/api/chatWebsiteField/chatWebsiteField.rpc.js [new file with mode: 0644]
server/api/chatWebsiteField/index.js [new file with mode: 0644]
server/api/cmCompany/cmCompany.attributes.js [new file with mode: 0644]
server/api/cmCompany/cmCompany.controller.js [new file with mode: 0644]
server/api/cmCompany/cmCompany.model.js [new file with mode: 0644]
server/api/cmCompany/cmCompany.rpc.js [new file with mode: 0644]
server/api/cmCompany/index.js [new file with mode: 0644]
server/api/cmContact/cmContact.attributes.js [new file with mode: 0644]
server/api/cmContact/cmContact.controller.js [new file with mode: 0644]
server/api/cmContact/cmContact.model.js [new file with mode: 0644]
server/api/cmContact/cmContact.rpc.js [new file with mode: 0644]
server/api/cmContact/index.js [new file with mode: 0644]
server/api/cmCustomField/cmCustomField.attributes.js [new file with mode: 0644]
server/api/cmCustomField/cmCustomField.controller.js [new file with mode: 0644]
server/api/cmCustomField/cmCustomField.model.js [new file with mode: 0644]
server/api/cmCustomField/cmCustomField.rpc.js [new file with mode: 0644]
server/api/cmCustomField/index.js [new file with mode: 0644]
server/api/cmHopper/cmHopper.attributes.js [new file with mode: 0644]
server/api/cmHopper/cmHopper.controller.js [new file with mode: 0644]
server/api/cmHopper/cmHopper.model.js [new file with mode: 0644]
server/api/cmHopper/cmHopper.rpc.js [new file with mode: 0644]
server/api/cmHopper/index.js [new file with mode: 0644]
server/api/cmHopperBlack/cmHopperBlack.attributes.js [new file with mode: 0644]
server/api/cmHopperBlack/cmHopperBlack.controller.js [new file with mode: 0644]
server/api/cmHopperBlack/cmHopperBlack.model.js [new file with mode: 0644]
server/api/cmHopperBlack/cmHopperBlack.rpc.js [new file with mode: 0644]
server/api/cmHopperBlack/index.js [new file with mode: 0644]
server/api/cmHopperFinal/cmHopperFinal.attributes.js [new file with mode: 0644]
server/api/cmHopperFinal/cmHopperFinal.controller.js [new file with mode: 0644]
server/api/cmHopperFinal/cmHopperFinal.model.js [new file with mode: 0644]
server/api/cmHopperFinal/cmHopperFinal.rpc.js [new file with mode: 0644]
server/api/cmHopperFinal/index.js [new file with mode: 0644]
server/api/cmHopperHistory/cmHopperHistory.attributes.js [new file with mode: 0644]
server/api/cmHopperHistory/cmHopperHistory.controller.js [new file with mode: 0644]
server/api/cmHopperHistory/cmHopperHistory.model.js [new file with mode: 0644]
server/api/cmHopperHistory/cmHopperHistory.rpc.js [new file with mode: 0644]
server/api/cmHopperHistory/index.js [new file with mode: 0644]
server/api/cmList/cmList.attributes.js [new file with mode: 0644]
server/api/cmList/cmList.controller.js [new file with mode: 0644]
server/api/cmList/cmList.model.js [new file with mode: 0644]
server/api/cmList/cmList.rpc.js [new file with mode: 0644]
server/api/cmList/index.js [new file with mode: 0644]
server/api/condition/condition.attributes.js [new file with mode: 0644]
server/api/condition/condition.controller.js [new file with mode: 0644]
server/api/condition/condition.model.js [new file with mode: 0644]
server/api/condition/condition.rpc.js [new file with mode: 0644]
server/api/condition/index.js [new file with mode: 0644]
server/api/dashboard/dashboard.attributes.js [new file with mode: 0644]
server/api/dashboard/dashboard.controller.js [new file with mode: 0644]
server/api/dashboard/dashboard.model.js [new file with mode: 0644]
server/api/dashboard/dashboard.rpc.js [new file with mode: 0644]
server/api/dashboard/index.js [new file with mode: 0644]
server/api/dashboardItem/dashboardItem.attributes.js [new file with mode: 0644]
server/api/dashboardItem/dashboardItem.controller.js [new file with mode: 0644]
server/api/dashboardItem/dashboardItem.model.js [new file with mode: 0644]
server/api/dashboardItem/dashboardItem.rpc.js [new file with mode: 0644]
server/api/dashboardItem/index.js [new file with mode: 0644]
server/api/faxAccount/faxAccount.attributes.js [new file with mode: 0644]
server/api/faxAccount/faxAccount.controller.js [new file with mode: 0644]
server/api/faxAccount/faxAccount.model.js [new file with mode: 0644]
server/api/faxAccount/faxAccount.rpc.js [new file with mode: 0644]
server/api/faxAccount/index.js [new file with mode: 0644]
server/api/faxApplication/faxApplication.attributes.js [new file with mode: 0644]
server/api/faxApplication/faxApplication.controller.js [new file with mode: 0644]
server/api/faxApplication/faxApplication.model.js [new file with mode: 0644]
server/api/faxApplication/faxApplication.rpc.js [new file with mode: 0644]
server/api/faxApplication/index.js [new file with mode: 0644]
server/api/faxAttachment/faxAttachment.attributes.js [new file with mode: 0644]
server/api/faxAttachment/faxAttachment.controller.js [new file with mode: 0644]
server/api/faxAttachment/faxAttachment.model.js [new file with mode: 0644]
server/api/faxAttachment/faxAttachment.rpc.js [new file with mode: 0644]
server/api/faxAttachment/index.js [new file with mode: 0644]
server/api/faxDisposition/faxDisposition.attributes.js [new file with mode: 0644]
server/api/faxDisposition/faxDisposition.controller.js [new file with mode: 0644]
server/api/faxDisposition/faxDisposition.model.js [new file with mode: 0644]
server/api/faxDisposition/faxDisposition.rpc.js [new file with mode: 0644]
server/api/faxDisposition/index.js [new file with mode: 0644]
server/api/faxInteraction/faxInteraction.attributes.js [new file with mode: 0644]
server/api/faxInteraction/faxInteraction.controller.js [new file with mode: 0644]
server/api/faxInteraction/faxInteraction.model.js [new file with mode: 0644]
server/api/faxInteraction/faxInteraction.rpc.js [new file with mode: 0644]
server/api/faxInteraction/index.js [new file with mode: 0644]
server/api/faxMessage/faxMessage.attributes.js [new file with mode: 0644]
server/api/faxMessage/faxMessage.controller.js [new file with mode: 0644]
server/api/faxMessage/faxMessage.model.js [new file with mode: 0644]
server/api/faxMessage/faxMessage.rpc.js [new file with mode: 0644]
server/api/faxMessage/index.js [new file with mode: 0644]
server/api/faxQueue/faxQueue.attributes.js [new file with mode: 0644]
server/api/faxQueue/faxQueue.controller.js [new file with mode: 0644]
server/api/faxQueue/faxQueue.model.js [new file with mode: 0644]
server/api/faxQueue/faxQueue.rpc.js [new file with mode: 0644]
server/api/faxQueue/index.js [new file with mode: 0644]
server/api/faxReport/faxReport.attributes.js [new file with mode: 0644]
server/api/faxReport/faxReport.controller.js [new file with mode: 0644]
server/api/faxReport/faxReport.model.js [new file with mode: 0644]
server/api/faxReport/faxReport.rpc.js [new file with mode: 0644]
server/api/faxReport/index.js [new file with mode: 0644]
server/api/faxSessionReport/faxSessionReport.attributes.js [new file with mode: 0644]
server/api/faxSessionReport/faxSessionReport.controller.js [new file with mode: 0644]
server/api/faxSessionReport/faxSessionReport.model.js [new file with mode: 0644]
server/api/faxSessionReport/faxSessionReport.rpc.js [new file with mode: 0644]
server/api/faxSessionReport/index.js [new file with mode: 0644]
server/api/intFreshdeskAccount/index.js [new file with mode: 0644]
server/api/intFreshdeskAccount/intFreshdeskAccount.attributes.js [new file with mode: 0644]
server/api/intFreshdeskAccount/intFreshdeskAccount.controller.js [new file with mode: 0644]
server/api/intFreshdeskAccount/intFreshdeskAccount.model.js [new file with mode: 0644]
server/api/intFreshdeskAccount/intFreshdeskAccount.rpc.js [new file with mode: 0644]
server/api/intFreshdeskConfiguration/index.js [new file with mode: 0644]
server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.attributes.js [new file with mode: 0644]
server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.controller.js [new file with mode: 0644]
server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.model.js [new file with mode: 0644]
server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.rpc.js [new file with mode: 0644]
server/api/intFreshdeskField/index.js [new file with mode: 0644]
server/api/intFreshdeskField/intFreshdeskField.attributes.js [new file with mode: 0644]
server/api/intFreshdeskField/intFreshdeskField.controller.js [new file with mode: 0644]
server/api/intFreshdeskField/intFreshdeskField.model.js [new file with mode: 0644]
server/api/intFreshdeskField/intFreshdeskField.rpc.js [new file with mode: 0644]
server/api/intSalesforceAccount/index.js [new file with mode: 0644]
server/api/intSalesforceAccount/intSalesforceAccount.attributes.js [new file with mode: 0644]
server/api/intSalesforceAccount/intSalesforceAccount.controller.js [new file with mode: 0644]
server/api/intSalesforceAccount/intSalesforceAccount.model.js [new file with mode: 0644]
server/api/intSalesforceAccount/intSalesforceAccount.rpc.js [new file with mode: 0644]
server/api/intSalesforceConfiguration/index.js [new file with mode: 0644]
server/api/intSalesforceConfiguration/intSalesforceConfiguration.attributes.js [new file with mode: 0644]
server/api/intSalesforceConfiguration/intSalesforceConfiguration.controller.js [new file with mode: 0644]
server/api/intSalesforceConfiguration/intSalesforceConfiguration.model.js [new file with mode: 0644]
server/api/intSalesforceConfiguration/intSalesforceConfiguration.rpc.js [new file with mode: 0644]
server/api/intSalesforceField/index.js [new file with mode: 0644]
server/api/intSalesforceField/intSalesforceField.attributes.js [new file with mode: 0644]
server/api/intSalesforceField/intSalesforceField.controller.js [new file with mode: 0644]
server/api/intSalesforceField/intSalesforceField.model.js [new file with mode: 0644]
server/api/intSalesforceField/intSalesforceField.rpc.js [new file with mode: 0644]
server/api/intSugarcrmAccount/index.js [new file with mode: 0644]
server/api/intSugarcrmAccount/intSugarcrmAccount.attributes.js [new file with mode: 0644]
server/api/intSugarcrmAccount/intSugarcrmAccount.controller.js [new file with mode: 0644]
server/api/intSugarcrmAccount/intSugarcrmAccount.model.js [new file with mode: 0644]
server/api/intSugarcrmAccount/intSugarcrmAccount.rpc.js [new file with mode: 0644]
server/api/intSugarcrmConfiguration/index.js [new file with mode: 0644]
server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.attributes.js [new file with mode: 0644]
server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.controller.js [new file with mode: 0644]
server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.model.js [new file with mode: 0644]
server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.rpc.js [new file with mode: 0644]
server/api/intSugarcrmField/index.js [new file with mode: 0644]
server/api/intSugarcrmField/intSugarcrmField.attributes.js [new file with mode: 0644]
server/api/intSugarcrmField/intSugarcrmField.controller.js [new file with mode: 0644]
server/api/intSugarcrmField/intSugarcrmField.model.js [new file with mode: 0644]
server/api/intSugarcrmField/intSugarcrmField.rpc.js [new file with mode: 0644]
server/api/intZendeskAccount/index.js [new file with mode: 0644]
server/api/intZendeskAccount/intZendeskAccount.attributes.js [new file with mode: 0644]
server/api/intZendeskAccount/intZendeskAccount.controller.js [new file with mode: 0644]
server/api/intZendeskAccount/intZendeskAccount.model.js [new file with mode: 0644]
server/api/intZendeskAccount/intZendeskAccount.rpc.js [new file with mode: 0644]
server/api/intZendeskConfiguration/index.js [new file with mode: 0644]
server/api/intZendeskConfiguration/intZendeskConfiguration.attributes.js [new file with mode: 0644]
server/api/intZendeskConfiguration/intZendeskConfiguration.controller.js [new file with mode: 0644]
server/api/intZendeskConfiguration/intZendeskConfiguration.model.js [new file with mode: 0644]
server/api/intZendeskConfiguration/intZendeskConfiguration.rpc.js [new file with mode: 0644]
server/api/intZendeskField/index.js [new file with mode: 0644]
server/api/intZendeskField/intZendeskField.attributes.js [new file with mode: 0644]
server/api/intZendeskField/intZendeskField.controller.js [new file with mode: 0644]
server/api/intZendeskField/intZendeskField.model.js [new file with mode: 0644]
server/api/intZendeskField/intZendeskField.rpc.js [new file with mode: 0644]
server/api/integration/index.js [new file with mode: 0644]
server/api/integration/integration.attributes.js [new file with mode: 0644]
server/api/integration/integration.controller.js [new file with mode: 0644]
server/api/integration/integration.model.js [new file with mode: 0644]
server/api/integration/integration.rpc.js [new file with mode: 0644]
server/api/integrationReport/index.js [new file with mode: 0644]
server/api/integrationReport/integrationReport.attributes.js [new file with mode: 0644]
server/api/integrationReport/integrationReport.controller.js [new file with mode: 0644]
server/api/integrationReport/integrationReport.model.js [new file with mode: 0644]
server/api/integrationReport/integrationReport.rpc.js [new file with mode: 0644]
server/api/interval/index.js [new file with mode: 0644]
server/api/interval/interval.attributes.js [new file with mode: 0644]
server/api/interval/interval.controller.js [new file with mode: 0644]
server/api/interval/interval.model.js [new file with mode: 0644]
server/api/interval/interval.rpc.js [new file with mode: 0644]
server/api/jira/index.js [new file with mode: 0644]
server/api/jira/jira.controller.js [new file with mode: 0644]
server/api/jscriptyAnswerReport/index.js [new file with mode: 0644]
server/api/jscriptyAnswerReport/jscriptyAnswerReport.attributes.js [new file with mode: 0644]
server/api/jscriptyAnswerReport/jscriptyAnswerReport.controller.js [new file with mode: 0644]
server/api/jscriptyAnswerReport/jscriptyAnswerReport.model.js [new file with mode: 0644]
server/api/jscriptyAnswerReport/jscriptyAnswerReport.rpc.js [new file with mode: 0644]
server/api/jscriptyProject/index.js [new file with mode: 0644]
server/api/jscriptyProject/jscriptyProject.attributes.js [new file with mode: 0644]
server/api/jscriptyProject/jscriptyProject.controller.js [new file with mode: 0644]
server/api/jscriptyProject/jscriptyProject.model.js [new file with mode: 0644]
server/api/jscriptyProject/jscriptyProject.rpc.js [new file with mode: 0644]
server/api/jscriptyQuestionReport/index.js [new file with mode: 0644]
server/api/jscriptyQuestionReport/jscriptyQuestionReport.attributes.js [new file with mode: 0644]
server/api/jscriptyQuestionReport/jscriptyQuestionReport.controller.js [new file with mode: 0644]
server/api/jscriptyQuestionReport/jscriptyQuestionReport.model.js [new file with mode: 0644]
server/api/jscriptyQuestionReport/jscriptyQuestionReport.rpc.js [new file with mode: 0644]
server/api/jscriptySessionReport/index.js [new file with mode: 0644]
server/api/jscriptySessionReport/jscriptySessionReport.attributes.js [new file with mode: 0644]
server/api/jscriptySessionReport/jscriptySessionReport.controller.js [new file with mode: 0644]
server/api/jscriptySessionReport/jscriptySessionReport.model.js [new file with mode: 0644]
server/api/jscriptySessionReport/jscriptySessionReport.rpc.js [new file with mode: 0644]
server/api/license/index.js [new file with mode: 0644]
server/api/license/license.attributes.js [new file with mode: 0644]
server/api/license/license.controller.js [new file with mode: 0644]
server/api/license/license.model.js [new file with mode: 0644]
server/api/license/license.rpc.js [new file with mode: 0644]
server/api/mailAccount/index.js [new file with mode: 0644]
server/api/mailAccount/mailAccount.attributes.js [new file with mode: 0644]
server/api/mailAccount/mailAccount.controller.js [new file with mode: 0644]
server/api/mailAccount/mailAccount.model.js [new file with mode: 0644]
server/api/mailAccount/mailAccount.rpc.js [new file with mode: 0644]
server/api/mailApplication/index.js [new file with mode: 0644]
server/api/mailApplication/mailApplication.attributes.js [new file with mode: 0644]
server/api/mailApplication/mailApplication.controller.js [new file with mode: 0644]
server/api/mailApplication/mailApplication.model.js [new file with mode: 0644]
server/api/mailApplication/mailApplication.rpc.js [new file with mode: 0644]
server/api/mailAttachment/index.js [new file with mode: 0644]
server/api/mailAttachment/mailAttachment.attributes.js [new file with mode: 0644]
server/api/mailAttachment/mailAttachment.controller.js [new file with mode: 0644]
server/api/mailAttachment/mailAttachment.model.js [new file with mode: 0644]
server/api/mailAttachment/mailAttachment.rpc.js [new file with mode: 0644]
server/api/mailDisposition/index.js [new file with mode: 0644]
server/api/mailDisposition/mailDisposition.attributes.js [new file with mode: 0644]
server/api/mailDisposition/mailDisposition.controller.js [new file with mode: 0644]
server/api/mailDisposition/mailDisposition.model.js [new file with mode: 0644]
server/api/mailDisposition/mailDisposition.rpc.js [new file with mode: 0644]
server/api/mailInteraction/index.js [new file with mode: 0644]
server/api/mailInteraction/mailInteraction.attributes.js [new file with mode: 0644]
server/api/mailInteraction/mailInteraction.controller.js [new file with mode: 0644]
server/api/mailInteraction/mailInteraction.model.js [new file with mode: 0644]
server/api/mailInteraction/mailInteraction.rpc.js [new file with mode: 0644]
server/api/mailMessage/index.js [new file with mode: 0644]
server/api/mailMessage/mailMessage.attributes.js [new file with mode: 0644]
server/api/mailMessage/mailMessage.controller.js [new file with mode: 0644]
server/api/mailMessage/mailMessage.model.js [new file with mode: 0644]
server/api/mailMessage/mailMessage.rpc.js [new file with mode: 0644]
server/api/mailQueue/index.js [new file with mode: 0644]
server/api/mailQueue/mailQueue.attributes.js [new file with mode: 0644]
server/api/mailQueue/mailQueue.controller.js [new file with mode: 0644]
server/api/mailQueue/mailQueue.model.js [new file with mode: 0644]
server/api/mailQueue/mailQueue.rpc.js [new file with mode: 0644]
server/api/mailReport/index.js [new file with mode: 0644]
server/api/mailReport/mailReport.attributes.js [new file with mode: 0644]
server/api/mailReport/mailReport.controller.js [new file with mode: 0644]
server/api/mailReport/mailReport.model.js [new file with mode: 0644]
server/api/mailReport/mailReport.rpc.js [new file with mode: 0644]
server/api/mailServerIn/index.js [new file with mode: 0644]
server/api/mailServerIn/mailServerIn.attributes.js [new file with mode: 0644]
server/api/mailServerIn/mailServerIn.model.js [new file with mode: 0644]
server/api/mailServerIn/mailServerIn.rpc.js [new file with mode: 0644]
server/api/mailServerOut/index.js [new file with mode: 0644]
server/api/mailServerOut/mailServerOut.attributes.js [new file with mode: 0644]
server/api/mailServerOut/mailServerOut.controller.js [new file with mode: 0644]
server/api/mailServerOut/mailServerOut.model.js [new file with mode: 0644]
server/api/mailServerOut/mailServerOut.rpc.js [new file with mode: 0644]
server/api/mailSessionReport/index.js [new file with mode: 0644]
server/api/mailSessionReport/mailSessionReport.attributes.js [new file with mode: 0644]
server/api/mailSessionReport/mailSessionReport.controller.js [new file with mode: 0644]
server/api/mailSessionReport/mailSessionReport.model.js [new file with mode: 0644]
server/api/mailSessionReport/mailSessionReport.rpc.js [new file with mode: 0644]
server/api/memberReport/index.js [new file with mode: 0644]
server/api/memberReport/memberReport.attributes.js [new file with mode: 0644]
server/api/memberReport/memberReport.controller.js [new file with mode: 0644]
server/api/memberReport/memberReport.model.js [new file with mode: 0644]
server/api/memberReport/memberReport.rpc.js [new file with mode: 0644]
server/api/network/index.js [new file with mode: 0644]
server/api/network/network.attributes.js [new file with mode: 0644]
server/api/network/network.controller.js [new file with mode: 0644]
server/api/network/network.model.js [new file with mode: 0644]
server/api/network/network.rpc.js [new file with mode: 0644]
server/api/openchannelAccount/index.js [new file with mode: 0644]
server/api/openchannelAccount/openchannelAccount.attributes.js [new file with mode: 0644]
server/api/openchannelAccount/openchannelAccount.controller.js [new file with mode: 0644]
server/api/openchannelAccount/openchannelAccount.model.js [new file with mode: 0644]
server/api/openchannelAccount/openchannelAccount.rpc.js [new file with mode: 0644]
server/api/openchannelApplication/index.js [new file with mode: 0644]
server/api/openchannelApplication/openchannelApplication.attributes.js [new file with mode: 0644]
server/api/openchannelApplication/openchannelApplication.controller.js [new file with mode: 0644]
server/api/openchannelApplication/openchannelApplication.model.js [new file with mode: 0644]
server/api/openchannelApplication/openchannelApplication.rpc.js [new file with mode: 0644]
server/api/openchannelDisposition/index.js [new file with mode: 0644]
server/api/openchannelDisposition/openchannelDisposition.attributes.js [new file with mode: 0644]
server/api/openchannelDisposition/openchannelDisposition.controller.js [new file with mode: 0644]
server/api/openchannelDisposition/openchannelDisposition.model.js [new file with mode: 0644]
server/api/openchannelDisposition/openchannelDisposition.rpc.js [new file with mode: 0644]
server/api/openchannelInteraction/index.js [new file with mode: 0644]
server/api/openchannelInteraction/openchannelInteraction.attributes.js [new file with mode: 0644]
server/api/openchannelInteraction/openchannelInteraction.controller.js [new file with mode: 0644]
server/api/openchannelInteraction/openchannelInteraction.model.js [new file with mode: 0644]
server/api/openchannelInteraction/openchannelInteraction.rpc.js [new file with mode: 0644]
server/api/openchannelMessage/index.js [new file with mode: 0644]
server/api/openchannelMessage/openchannelMessage.attributes.js [new file with mode: 0644]
server/api/openchannelMessage/openchannelMessage.controller.js [new file with mode: 0644]
server/api/openchannelMessage/openchannelMessage.model.js [new file with mode: 0644]
server/api/openchannelMessage/openchannelMessage.rpc.js [new file with mode: 0644]
server/api/openchannelQueue/index.js [new file with mode: 0644]
server/api/openchannelQueue/openchannelQueue.attributes.js [new file with mode: 0644]
server/api/openchannelQueue/openchannelQueue.controller.js [new file with mode: 0644]
server/api/openchannelQueue/openchannelQueue.model.js [new file with mode: 0644]
server/api/openchannelQueue/openchannelQueue.rpc.js [new file with mode: 0644]
server/api/openchannelReport/index.js [new file with mode: 0644]
server/api/openchannelReport/openchannelReport.attributes.js [new file with mode: 0644]
server/api/openchannelReport/openchannelReport.controller.js [new file with mode: 0644]
server/api/openchannelReport/openchannelReport.model.js [new file with mode: 0644]
server/api/openchannelReport/openchannelReport.rpc.js [new file with mode: 0644]
server/api/openchannelSessionReport/index.js [new file with mode: 0644]
server/api/openchannelSessionReport/openchannelSessionReport.attributes.js [new file with mode: 0644]
server/api/openchannelSessionReport/openchannelSessionReport.controller.js [new file with mode: 0644]
server/api/openchannelSessionReport/openchannelSessionReport.model.js [new file with mode: 0644]
server/api/openchannelSessionReport/openchannelSessionReport.rpc.js [new file with mode: 0644]
server/api/pause/index.js [new file with mode: 0644]
server/api/pause/pause.attributes.js [new file with mode: 0644]
server/api/pause/pause.controller.js [new file with mode: 0644]
server/api/pause/pause.model.js [new file with mode: 0644]
server/api/pause/pause.rpc.js [new file with mode: 0644]
server/api/pm2/index.js [new file with mode: 0644]
server/api/pm2/pm2.controller.js [new file with mode: 0644]
server/api/rpc/index.js [new file with mode: 0644]
server/api/rpc/rpc.controller.js [new file with mode: 0644]
server/api/schedule/index.js [new file with mode: 0644]
server/api/schedule/schedule.attributes.js [new file with mode: 0644]
server/api/schedule/schedule.controller.js [new file with mode: 0644]
server/api/schedule/schedule.model.js [new file with mode: 0644]
server/api/schedule/schedule.rpc.js [new file with mode: 0644]
server/api/setting/index.js [new file with mode: 0644]
server/api/setting/setting.attributes.js [new file with mode: 0644]
server/api/setting/setting.controller.js [new file with mode: 0644]
server/api/setting/setting.model.js [new file with mode: 0644]
server/api/setting/setting.rpc.js [new file with mode: 0644]
server/api/smsAccount/index.js [new file with mode: 0644]
server/api/smsAccount/smsAccount.attributes.js [new file with mode: 0644]
server/api/smsAccount/smsAccount.controller.js [new file with mode: 0644]
server/api/smsAccount/smsAccount.model.js [new file with mode: 0644]
server/api/smsAccount/smsAccount.rpc.js [new file with mode: 0644]
server/api/smsApplication/index.js [new file with mode: 0644]
server/api/smsApplication/smsApplication.attributes.js [new file with mode: 0644]
server/api/smsApplication/smsApplication.controller.js [new file with mode: 0644]
server/api/smsApplication/smsApplication.model.js [new file with mode: 0644]
server/api/smsApplication/smsApplication.rpc.js [new file with mode: 0644]
server/api/smsDisposition/index.js [new file with mode: 0644]
server/api/smsDisposition/smsDisposition.attributes.js [new file with mode: 0644]
server/api/smsDisposition/smsDisposition.controller.js [new file with mode: 0644]
server/api/smsDisposition/smsDisposition.model.js [new file with mode: 0644]
server/api/smsDisposition/smsDisposition.rpc.js [new file with mode: 0644]
server/api/smsInteraction/index.js [new file with mode: 0644]
server/api/smsInteraction/smsInteraction.attributes.js [new file with mode: 0644]
server/api/smsInteraction/smsInteraction.controller.js [new file with mode: 0644]
server/api/smsInteraction/smsInteraction.model.js [new file with mode: 0644]
server/api/smsInteraction/smsInteraction.rpc.js [new file with mode: 0644]
server/api/smsMessage/index.js [new file with mode: 0644]
server/api/smsMessage/smsMessage.attributes.js [new file with mode: 0644]
server/api/smsMessage/smsMessage.controller.js [new file with mode: 0644]
server/api/smsMessage/smsMessage.model.js [new file with mode: 0644]
server/api/smsMessage/smsMessage.rpc.js [new file with mode: 0644]
server/api/smsQueue/index.js [new file with mode: 0644]
server/api/smsQueue/smsQueue.attributes.js [new file with mode: 0644]
server/api/smsQueue/smsQueue.controller.js [new file with mode: 0644]
server/api/smsQueue/smsQueue.model.js [new file with mode: 0644]
server/api/smsQueue/smsQueue.rpc.js [new file with mode: 0644]
server/api/smsReport/index.js [new file with mode: 0644]
server/api/smsReport/smsReport.attributes.js [new file with mode: 0644]
server/api/smsReport/smsReport.controller.js [new file with mode: 0644]
server/api/smsReport/smsReport.model.js [new file with mode: 0644]
server/api/smsReport/smsReport.rpc.js [new file with mode: 0644]
server/api/smsSessionReport/index.js [new file with mode: 0644]
server/api/smsSessionReport/smsSessionReport.attributes.js [new file with mode: 0644]
server/api/smsSessionReport/smsSessionReport.controller.js [new file with mode: 0644]
server/api/smsSessionReport/smsSessionReport.model.js [new file with mode: 0644]
server/api/smsSessionReport/smsSessionReport.rpc.js [new file with mode: 0644]
server/api/sound/index.js [new file with mode: 0644]
server/api/sound/sound.attributes.js [new file with mode: 0644]
server/api/sound/sound.controller.js [new file with mode: 0644]
server/api/sound/sound.model.js [new file with mode: 0644]
server/api/sound/sound.rpc.js [new file with mode: 0644]
server/api/squareOdbc/index.js [new file with mode: 0644]
server/api/squareOdbc/squareOdbc.attributes.js [new file with mode: 0644]
server/api/squareOdbc/squareOdbc.controller.js [new file with mode: 0644]
server/api/squareOdbc/squareOdbc.model.js [new file with mode: 0644]
server/api/squareOdbc/squareOdbc.rpc.js [new file with mode: 0644]
server/api/squareProject/index.js [new file with mode: 0644]
server/api/squareProject/squareProject.attributes.js [new file with mode: 0644]
server/api/squareProject/squareProject.controller.js [new file with mode: 0644]
server/api/squareProject/squareProject.model.js [new file with mode: 0644]
server/api/squareProject/squareProject.rpc.js [new file with mode: 0644]
server/api/squareRecording/index.js [new file with mode: 0644]
server/api/squareRecording/squareRecording.attributes.js [new file with mode: 0644]
server/api/squareRecording/squareRecording.controller.js [new file with mode: 0644]
server/api/squareRecording/squareRecording.model.js [new file with mode: 0644]
server/api/squareRecording/squareRecording.rpc.js [new file with mode: 0644]
server/api/squareReport/index.js [new file with mode: 0644]
server/api/squareReport/squareReport.attributes.js [new file with mode: 0644]
server/api/squareReport/squareReport.controller.js [new file with mode: 0644]
server/api/squareReport/squareReport.model.js [new file with mode: 0644]
server/api/squareReport/squareReport.rpc.js [new file with mode: 0644]
server/api/squareReportDetail/index.js [new file with mode: 0644]
server/api/squareReportDetail/squareReportDetail.attributes.js [new file with mode: 0644]
server/api/squareReportDetail/squareReportDetail.controller.js [new file with mode: 0644]
server/api/squareReportDetail/squareReportDetail.model.js [new file with mode: 0644]
server/api/squareReportDetail/squareReportDetail.rpc.js [new file with mode: 0644]
server/api/system/index.js [new file with mode: 0644]
server/api/system/system.controller.js [new file with mode: 0644]
server/api/tag/index.js [new file with mode: 0644]
server/api/tag/tag.attributes.js [new file with mode: 0644]
server/api/tag/tag.controller.js [new file with mode: 0644]
server/api/tag/tag.model.js [new file with mode: 0644]
server/api/tag/tag.rpc.js [new file with mode: 0644]
server/api/team/index.js [new file with mode: 0644]
server/api/team/team.attributes.js [new file with mode: 0644]
server/api/team/team.controller.js [new file with mode: 0644]
server/api/team/team.model.js [new file with mode: 0644]
server/api/team/team.rpc.js [new file with mode: 0644]
server/api/template/index.js [new file with mode: 0644]
server/api/template/template.attributes.js [new file with mode: 0644]
server/api/template/template.controller.js [new file with mode: 0644]
server/api/template/template.model.js [new file with mode: 0644]
server/api/template/template.rpc.js [new file with mode: 0644]
server/api/trigger/index.js [new file with mode: 0644]
server/api/trigger/trigger.attributes.js [new file with mode: 0644]
server/api/trigger/trigger.controller.js [new file with mode: 0644]
server/api/trigger/trigger.model.js [new file with mode: 0644]
server/api/trigger/trigger.rpc.js [new file with mode: 0644]
server/api/trunk/index.js [new file with mode: 0644]
server/api/trunk/trunk.attributes.js [new file with mode: 0644]
server/api/trunk/trunk.controller.js [new file with mode: 0644]
server/api/trunk/trunk.model.js [new file with mode: 0644]
server/api/trunk/trunk.rpc.js [new file with mode: 0644]
server/api/user/index.js [new file with mode: 0644]
server/api/user/user.attributes.js [new file with mode: 0644]
server/api/user/user.controller.js [new file with mode: 0644]
server/api/user/user.events.js [new file with mode: 0644]
server/api/user/user.model.js [new file with mode: 0644]
server/api/user/user.rpc.js [new file with mode: 0644]
server/api/user/user.socket.js [new file with mode: 0644]
server/api/userChatQueue/index.js [new file with mode: 0644]
server/api/userChatQueue/userChatQueue.attributes.js [new file with mode: 0644]
server/api/userChatQueue/userChatQueue.model.js [new file with mode: 0644]
server/api/userChatQueue/userChatQueue.rpc.js [new file with mode: 0644]
server/api/userFaxQueue/index.js [new file with mode: 0644]
server/api/userFaxQueue/userFaxQueue.attributes.js [new file with mode: 0644]
server/api/userFaxQueue/userFaxQueue.model.js [new file with mode: 0644]
server/api/userFaxQueue/userFaxQueue.rpc.js [new file with mode: 0644]
server/api/userMailQueue/index.js [new file with mode: 0644]
server/api/userMailQueue/userMailQueue.attributes.js [new file with mode: 0644]
server/api/userMailQueue/userMailQueue.model.js [new file with mode: 0644]
server/api/userMailQueue/userMailQueue.rpc.js [new file with mode: 0644]
server/api/userOpenchannelQueue/index.js [new file with mode: 0644]
server/api/userOpenchannelQueue/userOpenchannelQueue.attributes.js [new file with mode: 0644]
server/api/userOpenchannelQueue/userOpenchannelQueue.model.js [new file with mode: 0644]
server/api/userOpenchannelQueue/userOpenchannelQueue.rpc.js [new file with mode: 0644]
server/api/userSmsQueue/index.js [new file with mode: 0644]
server/api/userSmsQueue/userSmsQueue.attributes.js [new file with mode: 0644]
server/api/userSmsQueue/userSmsQueue.model.js [new file with mode: 0644]
server/api/userSmsQueue/userSmsQueue.rpc.js [new file with mode: 0644]
server/api/userVoiceQueue/index.js [new file with mode: 0644]
server/api/userVoiceQueue/userVoiceQueue.attributes.js [new file with mode: 0644]
server/api/userVoiceQueue/userVoiceQueue.model.js [new file with mode: 0644]
server/api/userVoiceQueue/userVoiceQueue.rpc.js [new file with mode: 0644]
server/api/userVoiceQueueRt/index.js [new file with mode: 0644]
server/api/userVoiceQueueRt/userVoiceQueueRt.attributes.js [new file with mode: 0644]
server/api/userVoiceQueueRt/userVoiceQueueRt.events.js [new file with mode: 0644]
server/api/userVoiceQueueRt/userVoiceQueueRt.model.js [new file with mode: 0644]
server/api/userVoiceQueueRt/userVoiceQueueRt.rpc.js [new file with mode: 0644]
server/api/userVoiceQueueRt/userVoiceQueueRt.socket.js [new file with mode: 0644]
server/api/variable/index.js [new file with mode: 0644]
server/api/variable/variable.attributes.js [new file with mode: 0644]
server/api/variable/variable.controller.js [new file with mode: 0644]
server/api/variable/variable.model.js [new file with mode: 0644]
server/api/variable/variable.rpc.js [new file with mode: 0644]
server/api/version/index.js [new file with mode: 0644]
server/api/version/version.controller.js [new file with mode: 0644]
server/api/voiceAgentReport/index.js [new file with mode: 0644]
server/api/voiceAgentReport/voiceAgentReport.attributes.js [new file with mode: 0644]
server/api/voiceAgentReport/voiceAgentReport.controller.js [new file with mode: 0644]
server/api/voiceAgentReport/voiceAgentReport.model.js [new file with mode: 0644]
server/api/voiceAgentReport/voiceAgentReport.rpc.js [new file with mode: 0644]
server/api/voiceCallReport/index.js [new file with mode: 0644]
server/api/voiceCallReport/voiceCallReport.attributes.js [new file with mode: 0644]
server/api/voiceCallReport/voiceCallReport.controller.js [new file with mode: 0644]
server/api/voiceCallReport/voiceCallReport.model.js [new file with mode: 0644]
server/api/voiceCallReport/voiceCallReport.rpc.js [new file with mode: 0644]
server/api/voiceChanSpy/index.js [new file with mode: 0644]
server/api/voiceChanSpy/voiceChanSpy.attributes.js [new file with mode: 0644]
server/api/voiceChanSpy/voiceChanSpy.controller.js [new file with mode: 0644]
server/api/voiceChanSpy/voiceChanSpy.model.js [new file with mode: 0644]
server/api/voiceChanSpy/voiceChanSpy.rpc.js [new file with mode: 0644]
server/api/voiceContext/index.js [new file with mode: 0644]
server/api/voiceContext/voiceContext.attributes.js [new file with mode: 0644]
server/api/voiceContext/voiceContext.controller.js [new file with mode: 0644]
server/api/voiceContext/voiceContext.model.js [new file with mode: 0644]
server/api/voiceContext/voiceContext.rpc.js [new file with mode: 0644]
server/api/voiceDialReport/index.js [new file with mode: 0644]
server/api/voiceDialReport/voiceDialReport.attributes.js [new file with mode: 0644]
server/api/voiceDialReport/voiceDialReport.controller.js [new file with mode: 0644]
server/api/voiceDialReport/voiceDialReport.model.js [new file with mode: 0644]
server/api/voiceDialReport/voiceDialReport.rpc.js [new file with mode: 0644]
server/api/voiceDisposition/index.js [new file with mode: 0644]
server/api/voiceDisposition/voiceDisposition.attributes.js [new file with mode: 0644]
server/api/voiceDisposition/voiceDisposition.controller.js [new file with mode: 0644]
server/api/voiceDisposition/voiceDisposition.model.js [new file with mode: 0644]
server/api/voiceDisposition/voiceDisposition.rpc.js [new file with mode: 0644]
server/api/voiceExtension/index.js [new file with mode: 0644]
server/api/voiceExtension/voiceExtension.attributes.js [new file with mode: 0644]
server/api/voiceExtension/voiceExtension.controller.js [new file with mode: 0644]
server/api/voiceExtension/voiceExtension.model.js [new file with mode: 0644]
server/api/voiceExtension/voiceExtension.rpc.js [new file with mode: 0644]
server/api/voiceMail/index.js [new file with mode: 0644]
server/api/voiceMail/voiceMail.attributes.js [new file with mode: 0644]
server/api/voiceMail/voiceMail.controller.js [new file with mode: 0644]
server/api/voiceMail/voiceMail.model.js [new file with mode: 0644]
server/api/voiceMail/voiceMail.rpc.js [new file with mode: 0644]
server/api/voiceMailMessage/index.js [new file with mode: 0644]
server/api/voiceMailMessage/voiceMailMessage.attributes.js [new file with mode: 0644]
server/api/voiceMailMessage/voiceMailMessage.controller.js [new file with mode: 0644]
server/api/voiceMailMessage/voiceMailMessage.model.js [new file with mode: 0644]
server/api/voiceMailMessage/voiceMailMessage.rpc.js [new file with mode: 0644]
server/api/voiceMusicOnHold/index.js [new file with mode: 0644]
server/api/voiceMusicOnHold/voiceMusicOnHold.attributes.js [new file with mode: 0644]
server/api/voiceMusicOnHold/voiceMusicOnHold.controller.js [new file with mode: 0644]
server/api/voiceMusicOnHold/voiceMusicOnHold.model.js [new file with mode: 0644]
server/api/voiceMusicOnHold/voiceMusicOnHold.rpc.js [new file with mode: 0644]
server/api/voiceQueue/index.js [new file with mode: 0644]
server/api/voiceQueue/voiceQueue.attributes.js [new file with mode: 0644]
server/api/voiceQueue/voiceQueue.controller.js [new file with mode: 0644]
server/api/voiceQueue/voiceQueue.model.js [new file with mode: 0644]
server/api/voiceQueue/voiceQueue.rpc.js [new file with mode: 0644]
server/api/voiceQueueReport/index.js [new file with mode: 0644]
server/api/voiceQueueReport/voiceQueueReport.attributes.js [new file with mode: 0644]
server/api/voiceQueueReport/voiceQueueReport.controller.js [new file with mode: 0644]
server/api/voiceQueueReport/voiceQueueReport.model.js [new file with mode: 0644]
server/api/voiceQueueReport/voiceQueueReport.rpc.js [new file with mode: 0644]
server/api/voiceQueuesLog/index.js [new file with mode: 0644]
server/api/voiceQueuesLog/voiceQueuesLog.attributes.js [new file with mode: 0644]
server/api/voiceQueuesLog/voiceQueuesLog.controller.js [new file with mode: 0644]
server/api/voiceQueuesLog/voiceQueuesLog.model.js [new file with mode: 0644]
server/api/voiceQueuesLog/voiceQueuesLog.rpc.js [new file with mode: 0644]
server/api/voiceRecording/index.js [new file with mode: 0644]
server/api/voiceRecording/voiceRecording.attributes.js [new file with mode: 0644]
server/api/voiceRecording/voiceRecording.controller.js [new file with mode: 0644]
server/api/voiceRecording/voiceRecording.model.js [new file with mode: 0644]
server/api/voiceRecording/voiceRecording.rpc.js [new file with mode: 0644]
server/api/voiceTransferReport/index.js [new file with mode: 0644]
server/api/voiceTransferReport/voiceTransferReport.attributes.js [new file with mode: 0644]
server/api/voiceTransferReport/voiceTransferReport.controller.js [new file with mode: 0644]
server/api/voiceTransferReport/voiceTransferReport.model.js [new file with mode: 0644]
server/api/voiceTransferReport/voiceTransferReport.rpc.js [new file with mode: 0644]
server/app.js [new file with mode: 0644]
server/components/auth/service.js [new file with mode: 0644]
server/components/dashboards/run.js [new file with mode: 0644]
server/components/export/csv.js [new file with mode: 0644]
server/components/export/fonts/Roboto-Italic.ttf [new file with mode: 0644]
server/components/export/fonts/Roboto-Medium.ttf [new file with mode: 0644]
server/components/export/fonts/Roboto-MediumItalic.ttf [new file with mode: 0644]
server/components/export/fonts/Roboto-Regular.ttf [new file with mode: 0644]
server/components/export/pdf.js [new file with mode: 0644]
server/components/export/xls.js [new file with mode: 0644]
server/components/extensions/rewrite.js [new file with mode: 0644]
server/components/integrations/configuration.js [new file with mode: 0644]
server/components/license/service.js [new file with mode: 0644]
server/components/parsers/qs.js [new file with mode: 0644]
server/config/environment/development.js [new file with mode: 0644]
server/config/environment/index.js [new file with mode: 0644]
server/config/environment/shared.js [new file with mode: 0644]
server/config/express.js [new file with mode: 0644]
server/config/license/hardware.js [new file with mode: 0644]
server/config/license/index.js [new file with mode: 0644]
server/config/license/util.js [new file with mode: 0644]
server/config/local.env.js [new file with mode: 0644]
server/config/logger.js [new file with mode: 0644]
server/config/pm2/config.js [new file with mode: 0644]
server/config/pm2/index.js [new file with mode: 0644]
server/config/seed.js [new file with mode: 0644]
server/config/seedContact.js [new file with mode: 0644]
server/config/seedDB/analyticReports.js [new file with mode: 0644]
server/config/seedDB/analyticTreeReports.js [new file with mode: 0644]
server/config/seedDB/chanspy.js [new file with mode: 0644]
server/config/seedDB/companies.js [new file with mode: 0644]
server/config/seedDB/contacts.js [new file with mode: 0644]
server/config/seedDB/index.js [new file with mode: 0644]
server/config/seedDB/intervals.js [new file with mode: 0644]
server/config/seedDB/jscripty/customerSatisfation.json [new file with mode: 0644]
server/config/seedDB/jscriptyProjects.js [new file with mode: 0644]
server/config/seedDB/lists.js [new file with mode: 0644]
server/config/seedDB/mailAccounts.js [new file with mode: 0644]
server/config/seedDB/pauses.js [new file with mode: 0644]
server/config/seedDB/report/default.js [new file with mode: 0644]
server/config/seedDB/report/fields.js [new file with mode: 0644]
server/config/seedDB/report/index.js [new file with mode: 0644]
server/config/seedDB/squareOdbc.js [new file with mode: 0644]
server/config/seedDB/squareProjects.js [new file with mode: 0644]
server/config/seedDB/tags.js [new file with mode: 0644]
server/config/seedDB/teams.js [new file with mode: 0644]
server/config/seedDB/tree/index.js [new file with mode: 0644]
server/config/seedDB/trunks.js [new file with mode: 0644]
server/config/seedDB/users.js [new file with mode: 0644]
server/config/seedDB/variables.js [new file with mode: 0644]
server/config/seedDB/voiceContexts.js [new file with mode: 0644]
server/config/seedDB/voiceExtensions.js [new file with mode: 0644]
server/config/seedDB/voiceMusicOnHold.js [new file with mode: 0644]
server/config/seedDB/voiceQueues.js [new file with mode: 0644]
server/config/seedDB/xml/AutoAttendant.xml [new file with mode: 0644]
server/config/seedDB/xml/CSI.xml [new file with mode: 0644]
server/config/seedDB/xml/Orders.xml [new file with mode: 0644]
server/config/seedDB/xml/Survey.xml [new file with mode: 0644]
server/config/seedUsers.js [new file with mode: 0644]
server/config/socketio.js [new file with mode: 0644]
server/config/utils.js [new file with mode: 0644]
server/errors/index.js [new file with mode: 0644]
server/files/conf/README.md [new file with mode: 0644]
server/files/conf/sip_xcally_contexts.conf [new file with mode: 0644]
server/files/images/README.md [new file with mode: 0644]
server/files/images/logos/README.md [new file with mode: 0644]
server/files/images/logos/default_loginlogo.png [new file with mode: 0644]
server/files/images/logos/default_logo.png [new file with mode: 0644]
server/files/images/logos/default_profile.jpg [new file with mode: 0644]
server/files/images/logos/logo.jpg [new file with mode: 0644]
server/files/images/logos/logologin.jpg [new file with mode: 0644]
server/files/moh/README.md [new file with mode: 0644]
server/files/moh/noice/noice.wav [new file with mode: 0644]
server/files/moh/wait/wait.wav [new file with mode: 0644]
server/files/recordings/README.md [new file with mode: 0644]
server/files/reports/README.md [new file with mode: 0644]
server/files/sounds/README.md [new file with mode: 0644]
server/files/sounds/converted/README.md [new file with mode: 0644]
server/files/sounds/original/README.md [new file with mode: 0644]
server/files/templates/context.ejs [new file with mode: 0644]
server/files/templates/network.ejs [new file with mode: 0644]
server/files/templates/registry.ejs [new file with mode: 0644]
server/files/templates/rtp.ejs [new file with mode: 0644]
server/files/templates/trunk.ejs [new file with mode: 0644]
server/migrations/2.0.12.js [new file with mode: 0644]
server/migrations/2.0.13.js [new file with mode: 0644]
server/migrations/2.0.20.js [new file with mode: 0644]
server/migrations/2.0.21.js [new file with mode: 0644]
server/migrations/2.0.22.js [new file with mode: 0644]
server/mysqldb/index.js [new file with mode: 0644]
server/routes.js [new file with mode: 0644]
server/rpc/index.js [new file with mode: 0644]
server/services/agi/channel.js [new file with mode: 0644]
server/services/agi/error.js [new file with mode: 0644]
server/services/agi/graph/index.js [new file with mode: 0644]
server/services/agi/index.js [new file with mode: 0644]
server/services/agi/reply.js [new file with mode: 0644]
server/services/agi/rpc/index.js [new file with mode: 0644]
server/services/agi/scripts/index.js [new file with mode: 0644]
server/services/agi/scripts/tmp/README.md [new file with mode: 0644]
server/services/agi/server.js [new file with mode: 0644]
server/services/agi/vertices.js [new file with mode: 0644]
server/services/ami/acw/index.js [new file with mode: 0644]
server/services/ami/ami.js [new file with mode: 0644]
server/services/ami/client.js [new file with mode: 0644]
server/services/ami/dialer/action.js [new file with mode: 0644]
server/services/ami/dialer/agentComplete.js [new file with mode: 0644]
server/services/ami/dialer/final.js [new file with mode: 0644]
server/services/ami/dialer/hangup.js [new file with mode: 0644]
server/services/ami/dialer/history.js [new file with mode: 0644]
server/services/ami/dialer/index.js [new file with mode: 0644]
server/services/ami/dialer/queueCallerAbandon.js [new file with mode: 0644]
server/services/ami/index.js [new file with mode: 0644]
server/services/ami/model/agent.js [new file with mode: 0644]
server/services/ami/model/campaign.js [new file with mode: 0644]
server/services/ami/model/channel.js [new file with mode: 0644]
server/services/ami/model/freshdeskAccount.js [new file with mode: 0644]
server/services/ami/model/queueReport.js [new file with mode: 0644]
server/services/ami/model/salesforceAccount.js [new file with mode: 0644]
server/services/ami/model/sugarcrmAccount.js [new file with mode: 0644]
server/services/ami/model/telephone.js [new file with mode: 0644]
server/services/ami/model/template.js [new file with mode: 0644]
server/services/ami/model/trunk.js [new file with mode: 0644]
server/services/ami/model/voiceQueue.js [new file with mode: 0644]
server/services/ami/model/voiceTrigger.js [new file with mode: 0644]
server/services/ami/model/zendeskAccount.js [new file with mode: 0644]
server/services/ami/properties.js [new file with mode: 0644]
server/services/ami/realtime/index.js [new file with mode: 0644]
server/services/ami/report/index.js [new file with mode: 0644]
server/services/ami/report/userReport.js [new file with mode: 0644]
server/services/ami/report/voiceAgentReport.js [new file with mode: 0644]
server/services/ami/report/voiceCallReport.js [new file with mode: 0644]
server/services/ami/report/voiceDialReport.js [new file with mode: 0644]
server/services/ami/report/voiceQueueReport.js [new file with mode: 0644]
server/services/ami/rpc/campaign.js [new file with mode: 0644]
server/services/ami/rpc/cmHopper.js [new file with mode: 0644]
server/services/ami/rpc/cmHopperBlack.js [new file with mode: 0644]
server/services/ami/rpc/cmHopperFinal.js [new file with mode: 0644]
server/services/ami/rpc/cmHopperHistory.js [new file with mode: 0644]
server/services/ami/rpc/integrations/freshdesk.js [new file with mode: 0644]
server/services/ami/rpc/integrations/salesforce.js [new file with mode: 0644]
server/services/ami/rpc/integrations/sugarcrm.js [new file with mode: 0644]
server/services/ami/rpc/integrations/zendesk.js [new file with mode: 0644]
server/services/ami/rpc/memberReport.js [new file with mode: 0644]
server/services/ami/rpc/template.js [new file with mode: 0644]
server/services/ami/rpc/trigger.js [new file with mode: 0644]
server/services/ami/rpc/trunk.js [new file with mode: 0644]
server/services/ami/rpc/user.js [new file with mode: 0644]
server/services/ami/rpc/voiceAgentReport.js [new file with mode: 0644]
server/services/ami/rpc/voiceCallReport.js [new file with mode: 0644]
server/services/ami/rpc/voiceDialReport.js [new file with mode: 0644]
server/services/ami/rpc/voiceQueue.js [new file with mode: 0644]
server/services/ami/rpc/voiceQueueReport.js [new file with mode: 0644]
server/services/ami/rpc/voiceQueueRt.js [new file with mode: 0644]
server/services/ami/rpc/voiceRecording.js [new file with mode: 0644]
server/services/ami/rpc/voiceTransferReport.js [new file with mode: 0644]
server/services/ami/server/index.js [new file with mode: 0644]
server/services/ami/trigger/index.js [new file with mode: 0644]
server/services/ami/trigger/integration/freshdesk.js [new file with mode: 0644]
server/services/ami/trigger/integration/index.js [new file with mode: 0644]
server/services/ami/trigger/integration/salesforce.js [new file with mode: 0644]
server/services/ami/trigger/integration/sugarcrm.js [new file with mode: 0644]
server/services/ami/trigger/integration/util.js [new file with mode: 0644]
server/services/ami/trigger/integration/zendesk.js [new file with mode: 0644]
server/services/ami/trigger/urlforward/index.js [new file with mode: 0644]
server/services/email/index.js [new file with mode: 0644]
server/services/email/lib/email.js [new file with mode: 0644]
server/services/email/lib/imap.js [new file with mode: 0644]
server/services/email/lib/smtp.js [new file with mode: 0644]
server/services/express/index.js [new file with mode: 0644]
server/views/404.html [new file with mode: 0644]

diff --git a/apidoc/api_data.js b/apidoc/api_data.js
new file mode 100644 (file)
index 0000000..149038e
--- /dev/null
@@ -0,0 +1 @@
+define({ "api": [\r  {\r    "type": "delete",\r    "url": "/api/actions/{id}",\r    "title": "Deletes a Action",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/actions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteActions",\r    "group": "Actions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/action/index.js",\r    "groupTitle": "Actions"\r  },\r  {\r    "type": "put",\r    "url": "/api/actions/{id}",\r    "title": "Update an existing Action",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/actions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateActions",\r    "group": "Actions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/action/index.js",\r    "groupTitle": "Actions"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/custom_reports",\r    "title": "Creates a new Analytic Custom Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAnalytic_Custom_Reports",\r    "group": "Analytic_Custom_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "parent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "table",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "conditions",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/custom_reports/{id}",\r    "title": "Deletes a Analytic Custom Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAnalytic_Custom_Reports",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/custom_reports",\r    "title": "Gets a list of Analytic Custom Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAnalytic_Custom_Reports",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/analytics/custom_reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/analytics/custom_reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/analytics/custom_reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/analytics/custom_reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/analytics/custom_reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/custom_reports/{id}",\r    "title": "Gets a single Analytic Custom Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAnalytic_Custom_Reports",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/custom_reports/{id}/preview",\r    "title": "Report Preview",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports/{id}/preview -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "preview",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/custom_reports/{id}/query",\r    "title": "Report Query SQL",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports/{id}/query -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "query",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/custom_reports/{id}/run",\r    "title": "Report Run",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports/{id}/run -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "run",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/analytics/custom_reports/{id}",\r    "title": "Update an existing Analytic Custom Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAnalytic_Custom_Reports",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/default_reports",\r    "title": "Creates a new Analytic Default Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAnalytic_Default_Reports",\r    "group": "Analytic_Default_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "parent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "table",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "conditions",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/default_reports/{id}",\r    "title": "Deletes a Analytic Default Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAnalytic_Default_Reports",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/default_reports",\r    "title": "Gets a list of Analytic Default Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAnalytic_Default_Reports",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/analytics/default_reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/analytics/default_reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/analytics/default_reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/analytics/default_reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/analytics/default_reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/default_reports/{id}",\r    "title": "Gets a single Analytic Default Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAnalytic_Default_Reports",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/default_reports/{id}/preview",\r    "title": "Report Preview",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports/{id}/preview -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "preview",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/default_reports/{id}/query",\r    "title": "Report Query SQL",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports/{id}/query -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "query",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/default_reports/{id}/run",\r    "title": "Report Run",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports/{id}/run -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "run",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/analytics/default_reports/{id}",\r    "title": "Update an existing Analytic Default Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAnalytic_Default_Reports",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/extracted_reports",\r    "title": "Creates a new Analytic Extracted Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/extracted_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAnalytic_Extacted_Reports",\r    "group": "Analytic_Extracted_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"csv\"",\r              "\"pdf\"",\r              "\"xls\""\r            ],\r            "optional": false,\r            "field": "output",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "savename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "startDate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "endDate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"manual\"",\r              "\"scheduled\""\r            ],\r            "optional": false,\r            "field": "type",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticExtractedReport/index.js",\r    "groupTitle": "Analytic_Extracted_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/extracted_reports/{id}",\r    "title": "Deletes a Analytic Extracted Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAnalytic_Extacted_Reports",\r    "group": "Analytic_Extracted_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticExtractedReport/index.js",\r    "groupTitle": "Analytic_Extracted_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/extracted_reports",\r    "title": "Gets a list of Analytic Extacted Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/extracted_reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAnalytic_Extacted_Reports",\r    "group": "Analytic_Extracted_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/analytics/extracted_reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/analytics/extracted_reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/analytics/extracted_reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/analytics/extracted_reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/analytics/extracted_reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticExtractedReport/index.js",\r    "groupTitle": "Analytic_Extracted_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/extracted_reports/{id}",\r    "title": "Gets a single Analytic Extracted Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAnalytic_Extacted_Reports",\r    "group": "Analytic_Extracted_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticExtractedReport/index.js",\r    "groupTitle": "Analytic_Extracted_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/extracted_reports/{id}/download",\r    "title": "Download Extracted Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/extracted_reports/{id}/download -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "download",\r    "group": "Analytic_Extracted_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticExtractedReport/index.js",\r    "groupTitle": "Analytic_Extracted_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/analytics/extracted_reports/{id}",\r    "title": "Update an existing Analytic Extracted Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAnalytic_Extacted_Reports",\r    "group": "Analytic_Extracted_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticExtractedReport/index.js",\r    "groupTitle": "Analytic_Extracted_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/field_reports/create_many",\r    "title": "Creates many Analytic Field Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports/create_many -d '[{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}]' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "BulkCreateAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "field",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "alias",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "function",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "format",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "groupBy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "orderBy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "custom",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/field_reports/destroy_many?ids={ids}",\r    "title": "Deletes many Analytic Field Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports/destroy_many?ids=1&ids=2&ids=3 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "BulkDeleteAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/field_reports",\r    "title": "Creates a new Analytic Field Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "field",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "alias",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "function",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "format",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "groupBy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "orderBy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "custom",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/field_reports/{id}",\r    "title": "Deletes a Analytic Field Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/field_reports",\r    "title": "Gets a list of Analytic Field Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/analytics/field_reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/analytics/field_reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/analytics/field_reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/analytics/field_reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/analytics/field_reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/field_reports/{id}",\r    "title": "Gets a single Analytic Field Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/field_reports/{id}/create_many",\r    "title": "Rewrite fields set",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports/{id}/create_many -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addFields",\r    "group": "Analytic_Field_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/analytics/field_reports/{id}",\r    "title": "Update an existing Analytic Field Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/metrics",\r    "title": "Creates a new Analytic Metrics",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/metrics -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAnalytic_Metric",\r    "group": "Analytic_Metrics",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "table",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "metric",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticMetric/index.js",\r    "groupTitle": "Analytic_Metrics"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/metrics/{id}",\r    "title": "Deletes a Analytic Metrics",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/metrics/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAnalytic_Metric",\r    "group": "Analytic_Metrics",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticMetric/index.js",\r    "groupTitle": "Analytic_Metrics"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/metrics",\r    "title": "Gets a list of Analytic Metric",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/metrics -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAnalytic_Metric",\r    "group": "Analytic_Metrics",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/analytics/metrics?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/analytics/metrics?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/analytics/metrics?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/analytics/metrics?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/analytics/metrics?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticMetric/index.js",\r    "groupTitle": "Analytic_Metrics"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/metrics/{id}",\r    "title": "Gets a single Analytic Metrics",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/metrics/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAnalytic_Metric",\r    "group": "Analytic_Metrics",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticMetric/index.js",\r    "groupTitle": "Analytic_Metrics"\r  },\r  {\r    "type": "put",\r    "url": "/api/analytics/metrics/{id}",\r    "title": "Update an existing Analytic Metrics",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/metrics/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAnalytic_Metric",\r    "group": "Analytic_Metrics",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticMetric/index.js",\r    "groupTitle": "Analytic_Metrics"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/tree_reports",\r    "title": "Creates a new Analytic Tree Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/tree_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAnalytic_Tree_Reports",\r    "group": "Analytic_Tree_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": false,\r            "field": "tree",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticTreeReport/index.js",\r    "groupTitle": "Analytic_Tree_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/tree_reports/{id}",\r    "title": "Deletes a Analytic Tree Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/tree_reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAnalytic_Tree_Reports",\r    "group": "Analytic_Tree_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticTreeReport/index.js",\r    "groupTitle": "Analytic_Tree_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/tree_reports",\r    "title": "Gets a list of Analytic Tree Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/tree_reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAnalytic_Tree_Reports",\r    "group": "Analytic_Tree_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/analytics/tree_reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/analytics/tree_reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/analytics/tree_reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/analytics/tree_reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/analytics/tree_reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticTreeReport/index.js",\r    "groupTitle": "Analytic_Tree_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/tree_reports/{id}",\r    "title": "Gets a single Analytic Tree Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/tree_reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAnalytic_Tree_Reports",\r    "group": "Analytic_Tree_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticTreeReport/index.js",\r    "groupTitle": "Analytic_Tree_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/analytics/tree_reports/{id}",\r    "title": "Update an existing Analytic Tree Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/tree_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAnalytic_Tree_Reports",\r    "group": "Analytic_Tree_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticTreeReport/index.js",\r    "groupTitle": "Analytic_Tree_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/auth/google",\r    "title": "Creates a new User token",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/auth/google -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Local_login",\r    "group": "Authentication",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "password",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/authGoogle/index.js",\r    "groupTitle": "Authentication"\r  },\r  {\r    "type": "post",\r    "url": "/api/auth/local",\r    "title": "Creates a new User token",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/auth/local -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Local_login",\r    "group": "Authentication",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "password",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/authLocal/index.js",\r    "groupTitle": "Authentication"\r  },\r  {\r    "type": "post",\r    "url": "/api/automations",\r    "title": "Creates a new Automation",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAutomations",\r    "group": "Automations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "delete",\r    "url": "/api/automations/{id}",\r    "title": "Deletes a Automation",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAutomations",\r    "group": "Automations",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "get",\r    "url": "/api/automations",\r    "title": "Gets a list of Automations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAutomations",\r    "group": "Automations",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/automations?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/automations?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/automations?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/automations?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/automations?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "get",\r    "url": "/api/automations/{id}",\r    "title": "Gets a single Automation",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAutomations",\r    "group": "Automations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "post",\r    "url": "/api/automations/{id}/actions",\r    "title": "Creates new actions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id}/actions -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addActions",\r    "group": "Automations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "action",\r            "description": "<p>Allowed values: contactManager, integration, motionbar, jscripty, urlForward, browser</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": "<p>contactManager[ListId], integration[intName(zendesk)], motionbar[Popup(0),URL(1),WinApp(2)], urlForward[GET,POST], browser[TemplateId(0),URL(1)]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": "<p>integration[AccountId], motionbar[TemplateId,URL,WinAppPath], urlForward[URL]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": "<p>motionbar[NULL,NULL,WinAppArguments]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "post",\r    "url": "/api/automations/{id}/conditions",\r    "title": "Creates new conditions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id}/conditions -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addConditions",\r    "group": "Automations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "field",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "operator",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "value",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "get",\r    "url": "/api/automations/{id}/actions",\r    "title": "Gets Automation Actions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id}/actions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getActions",\r    "group": "Automations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "get",\r    "url": "/api/automations/{id}/conditions",\r    "title": "Gets Automation Conditions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id}/conditions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getConditions",\r    "group": "Automations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "put",\r    "url": "/api/automations/{id}",\r    "title": "Update an existing Automation",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAutomations",\r    "group": "Automations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "post",\r    "url": "/api/campaigns/{id}/blacklists",\r    "title": "Add blacklists to a campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/blacklists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddBlackLists",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "post",\r    "url": "/api/campaigns/{id}/lists",\r    "title": "Add lists to a campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/lists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddLists",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "post",\r    "url": "/api/campaigns",\r    "title": "Creates a new Campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateCampaigns",\r    "group": "Campaigns",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"ivr\""\r            ],\r            "optional": false,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "active",\r            "description": "<p>Active/Disactive Campaign</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "limitCalls",\r            "description": "<p>Max 200 calls.</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialOriginateCallerIdName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialOriginateCallerIdNumber",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialOriginateTimeout",\r            "description": "<p>Originate Timeout Seconds (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialCongestionMaxRetry",\r            "description": "<p>#Congestion Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialCongestionRetryFrequency",\r            "description": "<p>Congestion Retry Frequency Minutes (min:1, max:99999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialBusyMaxRetry",\r            "description": "<p>#Busy Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialBusyRetryFrequency",\r            "description": "<p>Busy Retry Frequency Minutes (min:1, max:99999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialNoAnswerMaxRetry",\r            "description": "<p>#NoAnswer Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialNoAnswerRetryFrequency",\r            "description": "<p>NoAnswer Retry Frequency Minutes (min:1, max:99999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialGlobalMaxRetry",\r            "description": "<p>#Global Max Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialTimezone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialGlobalInterval",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "delete",\r    "url": "/api/campaigns/{id}",\r    "title": "Deletes a Campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteCampaigns",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}/blacklists",\r    "title": "Get campaign blacklists",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/blacklists -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetBlackLists",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns",\r    "title": "Gets a list of Campaigns",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetCampaigns",\r    "group": "Campaigns",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/campaigns?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/campaigns?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/campaigns?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/campaigns?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/campaigns?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}/finals",\r    "title": "Gets campaign hopper finals",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/hopper_finals -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperFinals",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}/hopper_histories",\r    "title": "Gets campaign hopper histories",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/hopper_histories -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperHistories",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}/hoppers",\r    "title": "Gets campaign hoppers",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/hoppers -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHoppers",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}/lists",\r    "title": "Get campaign lists",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/lists -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetLists",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "delete",\r    "url": "/api/campaigns/{id}/blacklists",\r    "title": "Remove blacklists from a Campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/blacklists?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveBlackLists",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "delete",\r    "url": "/api/campaigns/{id}/lists",\r    "title": "Remove lists from a Campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/lists?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveLists",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}",\r    "title": "Gets a single Campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowCampaigns",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}/blacks",\r    "title": "Gets campaign hopper blacks",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/hopper_black -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getHopperBlacks",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "put",\r    "url": "/api/campaigns/{id}",\r    "title": "Update an existing Campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateCampaigns",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "post",\r    "url": "/api/canned_answers",\r    "title": "Creates a new Canned Answer",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/canned_answers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateCanned_Answers",\r    "group": "Canned_Answers",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "key",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": false,\r            "field": "value",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cannedAnswer/index.js",\r    "groupTitle": "Canned_Answers"\r  },\r  {\r    "type": "delete",\r    "url": "/api/canned_answers/{id}",\r    "title": "Deletes a Canned Answer",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/canned_answers/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteCanned_Answers",\r    "group": "Canned_Answers",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cannedAnswer/index.js",\r    "groupTitle": "Canned_Answers"\r  },\r  {\r    "type": "get",\r    "url": "/api/canned_answers",\r    "title": "Gets a list of Canned Answers",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/canned_answers -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetCanned_Answers",\r    "group": "Canned_Answers",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/canned_answers?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/canned_answers?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/canned_answers?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/canned_answers?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/canned_answers?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cannedAnswer/index.js",\r    "groupTitle": "Canned_Answers"\r  },\r  {\r    "type": "get",\r    "url": "/api/canned_answers/{id}",\r    "title": "Gets a single Canned Answer",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/canned_answers/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowCanned_Answers",\r    "group": "Canned_Answers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cannedAnswer/index.js",\r    "groupTitle": "Canned_Answers"\r  },\r  {\r    "type": "put",\r    "url": "/api/canned_answers/{id}",\r    "title": "Update an existing Canned Answer",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/canned_answers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateCanned_Answers",\r    "group": "Canned_Answers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cannedAnswer/index.js",\r    "groupTitle": "Canned_Answers"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/applications/{id}",\r    "title": "Deletes a Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/applications/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteApplications",\r    "group": "Chat_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatApplication/index.js",\r    "groupTitle": "Chat_Applications"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/applications/{id}",\r    "title": "Gets a single Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/applications/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowApplications",\r    "group": "Chat_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatApplication/index.js",\r    "groupTitle": "Chat_Applications"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/applications/{id}",\r    "title": "Update an existing Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateApplications",\r    "group": "Chat_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatApplication/index.js",\r    "groupTitle": "Chat_Applications"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/dispositions",\r    "title": "Creates a new Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDispositions",\r    "group": "Chat_Dispositions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatDisposition/index.js",\r    "groupTitle": "Chat_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/dispositions/{id}",\r    "title": "Deletes a Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/dispositions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDispositions",\r    "group": "Chat_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatDisposition/index.js",\r    "groupTitle": "Chat_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/dispositions/{id}",\r    "title": "Gets a single Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/dispositions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDispositions",\r    "group": "Chat_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatDisposition/index.js",\r    "groupTitle": "Chat_Dispositions"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/dispositions/{id}",\r    "title": "Update an existing Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDispositions",\r    "group": "Chat_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatDisposition/index.js",\r    "groupTitle": "Chat_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/enquiries/{id}",\r    "title": "Deletes a Enquiry",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/enquiries/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteEnquiries",\r    "group": "Chat_Enquiries",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatEnquiry/index.js",\r    "groupTitle": "Chat_Enquiries"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/enquiries/{id}",\r    "title": "Gets a single Enquiry",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/enquiries/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowEnquiries",\r    "group": "Chat_Enquiries",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatEnquiry/index.js",\r    "groupTitle": "Chat_Enquiries"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/enquiries/{id}",\r    "title": "Update an existing Enquiry",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/enquiries/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateEnquiries",\r    "group": "Chat_Enquiries",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatEnquiry/index.js",\r    "groupTitle": "Chat_Enquiries"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/interactions",\r    "title": "Creates a new Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateInteractions",\r    "group": "Chat_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"internal\"",\r              "\"external\"",\r              "\"group\""\r            ],\r            "optional": false,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "token",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"CLOSED\"",\r              "\"ABANDON\"",\r              "\"UNMANAGED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"good\"",\r              "\"bad\""\r            ],\r            "optional": true,\r            "field": "rating",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "ratingMessage",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"agent\"",\r              "\"requester\""\r            ],\r            "optional": true,\r            "field": "completeReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ChatVisitorId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "website",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/interactions/{id}",\r    "title": "Deletes a Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteInteractions",\r    "group": "Chat_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/interactions/describe",\r    "title": "Gets table info about Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeInteractions",\r    "group": "Chat_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/interactions",\r    "title": "Gets a list of Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetInteractions",\r    "group": "Chat_Interactions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/chat/interactions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/chat/interactions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/chat/interactions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/chat/interactions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/chat/interactions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/interactions/{id}",\r    "title": "Gets a single Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowInteractions",\r    "group": "Chat_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/interactions/{id}/messages",\r    "title": "Creates new messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addMessage",\r    "group": "Chat_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": false,\r            "field": "body",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"internal\"",\r              "\"external\"",\r              "\"group\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/interactions/{id}/messages",\r    "title": "Gets interaction messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions/{id}/messages -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getMessages",\r    "group": "Chat_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/interactions/{id}",\r    "title": "Update an existing Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateInteractions",\r    "group": "Chat_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/messages",\r    "title": "Creates a new Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMessages",\r    "group": "Chat_Messages",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": false,\r            "field": "body",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"internal\"",\r              "\"external\"",\r              "\"group\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatMessage/index.js",\r    "groupTitle": "Chat_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/messages/{id}",\r    "title": "Deletes a Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/messages/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMessages",\r    "group": "Chat_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatMessage/index.js",\r    "groupTitle": "Chat_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/messages/describe",\r    "title": "Gets table info about Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/messages/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeMessages",\r    "group": "Chat_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatMessage/index.js",\r    "groupTitle": "Chat_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/messages",\r    "title": "Gets a list of Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/messages -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMessages",\r    "group": "Chat_Messages",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/chat/messages?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/chat/messages?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/chat/messages?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/chat/messages?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/chat/messages?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatMessage/index.js",\r    "groupTitle": "Chat_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/messages/{id}",\r    "title": "Gets a single Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/messages/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMessages",\r    "group": "Chat_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatMessage/index.js",\r    "groupTitle": "Chat_Messages"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/messages/{id}",\r    "title": "Update an existing Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMessages",\r    "group": "Chat_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatMessage/index.js",\r    "groupTitle": "Chat_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/proactive_actions/{id}",\r    "title": "Deletes a Proactive Action",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/proactive_actions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteProactive_Actions",\r    "group": "Chat_Proactive_Actions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatProactiveAction/index.js",\r    "groupTitle": "Chat_Proactive_Actions"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/proactive_actions/{id}",\r    "title": "Gets a single Proactive Action",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/proactive_actions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowProactive_Actions",\r    "group": "Chat_Proactive_Actions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatProactiveAction/index.js",\r    "groupTitle": "Chat_Proactive_Actions"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/proactive_actions/{id}",\r    "title": "Update an existing Proactive Action",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/proactive_actions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateProactive_Actions",\r    "group": "Chat_Proactive_Actions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatProactiveAction/index.js",\r    "groupTitle": "Chat_Proactive_Actions"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/queues/{id}/users",\r    "title": "Add agents to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddAgents",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/queues/{id}/teams",\r    "title": "Add teams to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddTeams",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/queues",\r    "title": "Creates a new Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateQueues",\r    "group": "Chat_Queues",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rrmemory\"",\r              "\"beepall\"",\r              "\"roundrobin\""\r            ],\r            "optional": true,\r            "field": "strategy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "lastAgent",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/queues/{id}",\r    "title": "Deletes a Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteQueues",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/queues/{id}/users",\r    "title": "Gets queue agents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id}/users -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/queues",\r    "title": "Gets a list of Queues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/chat/queues?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/chat/queues?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/chat/queues?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/chat/queues?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/chat/queues?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/queues/{id}/teams",\r    "title": "Gets queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/queues/{id}/users",\r    "title": "Removes agents from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/queues/{id}",\r    "title": "Gets a single Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueues",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/queues/{id}",\r    "title": "Update an existing Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateQueues",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/session/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/session/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "Chat_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "websitename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "websiteaddress",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "websiteid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "visitorid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "visitorname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "visitoremail",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "joinAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "leaveAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "completeAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "complete",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"agent\"",\r              "\"requester\""\r            ],\r            "optional": true,\r            "field": "completeReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "abandon",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatSessionReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "Chat_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "websitename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "websiteaddress",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "websiteid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "visitorid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "visitorname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "visitoremail",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calledAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/session/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/session/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatSessionReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/session/reports/describe",\r    "title": "Gets table info about Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/session/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatSessionReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/session/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/session/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/chat/session/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/chat/session/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/chat/session/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/chat/session/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/chat/session/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatSessionReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/chat/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/chat/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/chat/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/chat/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/chat/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/session/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/session/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatSessionReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/session/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/session/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatSessionReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/visitors/{id}",\r    "title": "Deletes a Visitor",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/visitors/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteVisitors",\r    "group": "Chat_Visitors",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatVisitor/index.js",\r    "groupTitle": "Chat_Visitors"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/visitors/{id}",\r    "title": "Gets a single Visitor",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/visitors/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowVisitors",\r    "group": "Chat_Visitors",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatVisitor/index.js",\r    "groupTitle": "Chat_Visitors"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/visitors/{id}",\r    "title": "Update an existing Visitor",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/visitors/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateVisitors",\r    "group": "Chat_Visitors",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatVisitor/index.js",\r    "groupTitle": "Chat_Visitors"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/website_fields/{id}",\r    "title": "Deletes a Website Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/website_fields/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteWebsite_Fields",\r    "group": "Chat_Website_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsiteField/index.js",\r    "groupTitle": "Chat_Website_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/website_fields/{id}",\r    "title": "Gets a single Website Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/website_fields/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowWebsite_Fields",\r    "group": "Chat_Website_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsiteField/index.js",\r    "groupTitle": "Chat_Website_Fields"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/website_fields/{id}",\r    "title": "Update an existing Website Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/website_fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateWebsite_Fields",\r    "group": "Chat_Website_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsiteField/index.js",\r    "groupTitle": "Chat_Website_Fields"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/websites",\r    "title": "Creates a new Website",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateWebsites",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "address",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "color",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "color_focus",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "color_button",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remote",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "animation",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rounded\"",\r              "\"squared\""\r            ],\r            "optional": true,\r            "field": "header_shape",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "header_online",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "online_message",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username_placeholder",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email_placeholder",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "start_chat_button",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "header_offline",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "offline_message",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "enquiry_message_placeholder",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "enquiry_button",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "download_transcript",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "enquiry_forwarding",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "enquiry_forwarding_address",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "enquiry_enable",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "rating_enable",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rating_message",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rating_send",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rating_skip",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "show_service_name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "service_name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "agents_busy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name_title",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email_title",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "message_title",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "logo",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "defaultLogo",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "whiteLabel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "defaultWhiteLabel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "acceptUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closeUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "closeMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "acceptMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "rejectMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "actions",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/websites/{id}",\r    "title": "Deletes a Website",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteWebsites",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites",\r    "title": "Gets a list of Websites",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetWebsites",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/chat/websites?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/chat/websites?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/chat/websites?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/chat/websites?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/chat/websites?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites/{id}",\r    "title": "Gets a single Website",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowWebsites",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/websites/{id}/applications",\r    "title": "Creates new applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addApplications",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"queue\"",\r              "\"agent\"",\r              "\"sendMail\"",\r              "\"sendSms\""\r            ],\r            "optional": false,\r            "field": "app",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interval",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "data7",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data8",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data9",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data10",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/websites/{id}/dispositions",\r    "title": "Creates new disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDisposition",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/websites/{id}/dispositions",\r    "title": "Creates many dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDispositions",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/accounts/{id}/interactions",\r    "title": "Creates new interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/interactions -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addInteraction",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"internal\"",\r              "\"external\"",\r              "\"group\""\r            ],\r            "optional": false,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "token",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"CLOSED\"",\r              "\"ABANDON\"",\r              "\"UNMANAGED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"good\"",\r              "\"bad\""\r            ],\r            "optional": true,\r            "field": "rating",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "ratingMessage",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"agent\"",\r              "\"requester\""\r            ],\r            "optional": true,\r            "field": "completeReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ChatVisitorId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "website",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/websites/{id}/proactive_actions",\r    "title": "Creates new Proactive Actions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/proactive_actions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addProactiveActions",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"mouseOver\"",\r              "\"timeout\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "selector",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/websites/{id}/fields",\r    "title": "Creates new Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/fields -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addWebsiteFields",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "component",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "index",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "label",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "options",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "placeholder",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "required",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "validation",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "editable",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites/{id}/applications",\r    "title": "Gets Website Applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/applications -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getApplications",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites/{id}/dispositions",\r    "title": "Gets Website Dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDispositions",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites/{id}/interactions",\r    "title": "Gets Website Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/interactions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getInteraction",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites/{id}/proactive_actions",\r    "title": "Gets Website Proactive Actions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/proactive_actions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getProactiveActions",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites/{id}/fields",\r    "title": "Gets Website Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/fields -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "getWebsiteFields",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/websites/{id}",\r    "title": "Update an existing Website",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateWebsites",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/companies",\r    "title": "Creates a new Company",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/companies -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateCompanies",\r    "group": "Cm_Companies",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "vat",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "companyId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "website",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fax",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "street",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "postalCode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "city",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "country",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "emailDomain",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "sStreet",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "sPostalCode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "sCity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "sCountry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/companies/{id}",\r    "title": "Deletes a Company",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/companies/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteCompanies",\r    "group": "Cm_Companies",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/companies",\r    "title": "Gets a list of Companies",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/companies -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetCompanies",\r    "group": "Cm_Companies",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/companies?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/companies?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/companies?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/companies?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/companies?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/companies/{id}",\r    "title": "Gets a single Company",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/companies/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowCompanies",\r    "group": "Cm_Companies",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/companies/{id}/contacts",\r    "title": "Creates new contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/companies/{id}/contacts -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addContacts",\r    "group": "Cm_Companies",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "firstName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "street",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "postalCode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "city",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "country",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dateOfBirth",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mobile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fax",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "url",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/companies/{id}/contacts",\r    "title": "Gets List Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/companies/{id}/contacts -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getContacts",\r    "group": "Cm_Companies",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/companies/{id}",\r    "title": "Update an existing Company",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/companies/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateCompanies",\r    "group": "Cm_Companies",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/contacts/{id}",\r    "title": "Deletes a Contact",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteContacts",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts/describe",\r    "title": "Gets table info about Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeContacts",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts/{id}/finals",\r    "title": "Gets contact hopper finals",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_finals -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperFinals",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts/{id}/hopper_histories",\r    "title": "Gets contact hopper histories",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_histories -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperHistories",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts/{id}/hoppers",\r    "title": "Gets contact hoppers",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id}/hoppers -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHoppers",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/contacts",\r    "title": "Create Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts -d '[{\"firstName\": \"John\", \"lastName\": \"doe\", \"...\": \"...\"}]' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "create",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/contacts",\r    "title": "Create Contact",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts -d '{\"firstName\": \"John\", \"lastName\": \"doe\", \"...\": \"...\"}' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "create",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts/{id}/jscripty_sessions",\r    "title": "Gets contact hopper blacks",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_black -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getJscriptySessions",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts",\r    "title": "Gets List Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "index",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts/{id}",\r    "title": "Gets a single Contact",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id} -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "show",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/contacts/{id}",\r    "title": "Update a single Contact",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id} -d '{\"fullName\": \"John\", \"lastName\": \"Doe\"}' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "update",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/custom_fields/{id}",\r    "title": "Deletes a Custom Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/custom_fields/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteCustom_Fields",\r    "group": "Cm_Custom_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCustomField/index.js",\r    "groupTitle": "Cm_Custom_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/custom_fields",\r    "title": "Gets a list of Custom Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/custom_fields -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetCustom_Fields",\r    "group": "Cm_Custom_Fields",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/custom_fields?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/custom_fields?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/custom_fields?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/custom_fields?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/custom_fields?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCustomField/index.js",\r    "groupTitle": "Cm_Custom_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/custom_fields/{id}",\r    "title": "Gets a single Custom Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/custom_fields/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowCustom_Fields",\r    "group": "Cm_Custom_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCustomField/index.js",\r    "groupTitle": "Cm_Custom_Fields"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/custom_fields/{id}",\r    "title": "Update an existing Custom Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/custom_fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateCustom_Fields",\r    "group": "Cm_Custom_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCustomField/index.js",\r    "groupTitle": "Cm_Custom_Fields"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/hopper",\r    "title": "Creates a new Hopper",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateHopper",\r    "group": "Cm_Hopper",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "active",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "scheduledat",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "countbusyretry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "countcongestionretry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "countnoanswerretry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "callback",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callbackuniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callbackat",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ContactId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ListId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "UserId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "VoiceQueueId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "CampaignId",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper/describe",\r    "title": "Gets table info about Hopper",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeHopper",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper",\r    "title": "Gets a list of Hopper",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopper",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/hopper?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/hopper?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/hopper?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/hopper?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/hopper?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper/{id}",\r    "title": "Gets a single Hopper",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowHopper",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/hopper_black/{id}",\r    "title": "Deletes a Hopper Black",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_black/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteHopper_Black",\r    "group": "Cm_Hopper_Black",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperBlack/index.js",\r    "groupTitle": "Cm_Hopper_Black"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_black/describe",\r    "title": "Gets table info about Hopper Black",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_black/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeHopper_Black",\r    "group": "Cm_Hopper_Black",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperBlack/index.js",\r    "groupTitle": "Cm_Hopper_Black"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_black",\r    "title": "Gets a list of Hopper Black",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_black -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopper_Black",\r    "group": "Cm_Hopper_Black",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/hopper_black?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/hopper_black?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/hopper_black?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/hopper_black?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/hopper_black?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperBlack/index.js",\r    "groupTitle": "Cm_Hopper_Black"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_black/{id}",\r    "title": "Gets a single Hopper Black",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_black/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowHopper_Black",\r    "group": "Cm_Hopper_Black",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperBlack/index.js",\r    "groupTitle": "Cm_Hopper_Black"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/hopper_black/{id}",\r    "title": "Update an existing Hopper Black",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_black/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateHopper_Black",\r    "group": "Cm_Hopper_Black",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperBlack/index.js",\r    "groupTitle": "Cm_Hopper_Black"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_final/describe",\r    "title": "Gets table info about HopperFinal",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_final/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeHopperFinal",\r    "group": "Cm_Hopper_Final",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperFinal/index.js",\r    "groupTitle": "Cm_Hopper_Final"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_final",\r    "title": "Gets a list of HopperFinal",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_final -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperFinal",\r    "group": "Cm_Hopper_Final",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/hopper_final?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/hopper_final?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/hopper_final?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/hopper_final?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/hopper_final?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperFinal/index.js",\r    "groupTitle": "Cm_Hopper_Final"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_final/{id}",\r    "title": "Gets a single HopperFinal",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_final/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowHopperFinal",\r    "group": "Cm_Hopper_Final",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperFinal/index.js",\r    "groupTitle": "Cm_Hopper_Final"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/hopper_final/{id}",\r    "title": "Update a single hopper final",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/hopper_final/{id} -d '{\"disposition\": \"OK\"}' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "update",\r    "group": "Cm_Hopper_Final",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperFinal/index.js",\r    "groupTitle": "Cm_Hopper_Final"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_history/describe",\r    "title": "Gets table info about HopperHistory",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_history/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeHopperHistory",\r    "group": "Cm_Hopper_History",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperHistory/index.js",\r    "groupTitle": "Cm_Hopper_History"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_history",\r    "title": "Gets a list of HopperHistory",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_history -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperHistory",\r    "group": "Cm_Hopper_History",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/hopper_history?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/hopper_history?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/hopper_history?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/hopper_history?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/hopper_history?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperHistory/index.js",\r    "groupTitle": "Cm_Hopper_History"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_history/{id}",\r    "title": "Gets a single HopperHistory",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_history/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowHopperHistory",\r    "group": "Cm_Hopper_History",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperHistory/index.js",\r    "groupTitle": "Cm_Hopper_History"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/hopper_history/{id}",\r    "title": "Update a single hopper history",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/hopper_history/{id} -d '{\"disposition\": \"OK\"}' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "update",\r    "group": "Cm_Hopper_History",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperHistory/index.js",\r    "groupTitle": "Cm_Hopper_History"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper/preview/{id}",\r    "title": "Call Dialer Contact",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper/preview/{id} -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "callDialerContact",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/hopper/{id}",\r    "title": "Delete Hopper",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "destroy",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper/preview",\r    "title": "Gets Dialer Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper/preview -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDialerContacts",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/hopper/{id}",\r    "title": "Update an existing Hopper",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateHopper",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/lists",\r    "title": "Creates a new List",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateLists",\r    "group": "Cm_Lists",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/lists/{id}",\r    "title": "Deletes a List",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteLists",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists/{id}/users",\r    "title": "Gets agents from list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/users -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists",\r    "title": "Gets a list of Lists",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetLists",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/lists?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/lists?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/lists?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/lists?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/lists?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/lists/{id}/users",\r    "title": "Removes agents from a list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists/{id}",\r    "title": "Gets a single List",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowLists",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/lists/{id}/users",\r    "title": "Adds agents to a list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/users -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addAgents",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/lists/{id}/contacts",\r    "title": "Creates new contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/contacts -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addContacts",\r    "group": "Cm_Lists",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "firstName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "street",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "postalCode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "city",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "country",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dateOfBirth",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mobile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fax",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "url",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/lists/{id}/fields",\r    "title": "Creates a new custom field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/fields -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addCustomField",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "post",\r    "url": "/api/lists/{id}/dispositions",\r    "title": "Creates a new sub disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/lists/{id}/disposition -d '{\"name\": \"SATISFIED\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDisposition",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists/{id}/contacts",\r    "title": "Gets List Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/contacts -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getContacts",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists/{id}/fields",\r    "title": "Gets Custom Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getCustomFields",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists/{id}/dispositions",\r    "title": "Gets Dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/dispositions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDispositions",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists/{id}/contacts/csv",\r    "title": "Gets CSV List Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/contacts/csv -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "grunt",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/lists/{id}",\r    "title": "Update an existing List",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateLists",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "delete",\r    "url": "/api/conditions/{id}",\r    "title": "Deletes a Condition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/conditions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteConditions",\r    "group": "Conditions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/condition/index.js",\r    "groupTitle": "Conditions"\r  },\r  {\r    "type": "put",\r    "url": "/api/conditions/{id}",\r    "title": "Update an existing Condition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/conditions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateConditions",\r    "group": "Conditions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/condition/index.js",\r    "groupTitle": "Conditions"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/custom_field",\r    "title": "Create a new custom field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/custom_field  -d '{\"name\": \"mycf\", \"type\": \"text\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateCustomField",\r    "group": "Custom_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCustomField/index.js",\r    "groupTitle": "Custom_Fields"\r  },\r  {\r    "type": "delete",\r    "url": "/api/dashboards/items/{id}",\r    "title": "Deletes a Dashboard Item",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/items/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDashboard_Items",\r    "group": "Dashboard_Items",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboardItem/index.js",\r    "groupTitle": "Dashboard_Items"\r  },\r  {\r    "type": "get",\r    "url": "/api/dashboards/items/{id}",\r    "title": "Gets a single Dashboard Item",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/items/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDashboard_Items",\r    "group": "Dashboard_Items",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboardItem/index.js",\r    "groupTitle": "Dashboard_Items"\r  },\r  {\r    "type": "put",\r    "url": "/api/dashboards/items/{id}",\r    "title": "Update an existing Dashboard Item",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/items/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDashboard_Items",\r    "group": "Dashboard_Items",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboardItem/index.js",\r    "groupTitle": "Dashboard_Items"\r  },\r  {\r    "type": "post",\r    "url": "/api/dashboards",\r    "title": "Creates a new Dashboard",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDashboards",\r    "group": "Dashboards",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "interval",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "delete",\r    "url": "/api/dashboards/{id}",\r    "title": "Deletes a Dashboard",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDashboards",\r    "group": "Dashboards",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "get",\r    "url": "/api/dashboards",\r    "title": "Gets a list of Dashboards",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetDashboards",\r    "group": "Dashboards",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/dashboards?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/dashboards?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/dashboards?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/dashboards?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/dashboards?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "get",\r    "url": "/api/dashboards/{id}",\r    "title": "Gets a single Dashboard",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDashboards",\r    "group": "Dashboards",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "post",\r    "url": "/api/dashboards/{id}/items",\r    "title": "Creates new item",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/{id}/items -d '{\"type\": \"counter\", \"...\": \"...\"}]' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addItem",\r    "group": "Dashboards",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "get",\r    "url": "/api/dashboards/{id}/run",\r    "title": "Run dashboard widgets queries",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/{id}/run -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "run",\r    "group": "Dashboards",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "put",\r    "url": "/api/dashboards/{id}",\r    "title": "Update an existing Dashboard",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDashboards",\r    "group": "Dashboards",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "get",\r    "url": "/api/dashboards/{id}/items",\r    "title": "Gets items",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/{id}/items -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getItems",\r    "group": "Dashboars",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboars"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/accounts",\r    "title": "Creates a new Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAccounts",\r    "group": "Fax_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "ecm",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "headerinfo",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "localstationid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"2400\"",\r              "\"4800\"",\r              "\"7200\"",\r              "\"9600\"",\r              "\"12000\"",\r              "\"14400\""\r            ],\r            "optional": true,\r            "field": "minrate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"2400\"",\r              "\"4800\"",\r              "\"7200\"",\r              "\"9600\"",\r              "\"12000\"",\r              "\"14400\""\r            ],\r            "optional": true,\r            "field": "maxrate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "modem",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "gateway",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "faxdetect",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "t38timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SIP\"",\r              "\"IAX\"",\r              "\"DADHI\"",\r              "\"KHOMP\""\r            ],\r            "optional": true,\r            "field": "tech",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "acceptUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "acceptMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "rejectMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "actions",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closeUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "closeMethod",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/accounts/{id}",\r    "title": "Deletes a Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAccounts",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/accounts",\r    "title": "Gets a list of Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAccounts",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/accounts/{id}",\r    "title": "Gets a single Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAccounts",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/accounts/{id}/applications",\r    "title": "Creates new applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addApplications",\r    "group": "Fax_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"queue\"",\r              "\"agent\"",\r              "\"sendMail\"",\r              "\"sendSms\""\r            ],\r            "optional": false,\r            "field": "app",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interval",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "data7",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data8",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data9",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data10",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/accounts/{id}/dispositions",\r    "title": "Creates new disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDisposition",\r    "group": "Fax_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/accounts/{id}/dispositions",\r    "title": "Creates many dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDispositions",\r    "group": "Fax_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/accounts/{id}/interactions",\r    "title": "Creates new interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/interactions -d '[{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addInteraction",\r    "group": "Fax_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "account",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "faxIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "faxOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENT\"",\r              "\"SENDING\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/accounts/{id}/applications",\r    "title": "Gets account pplications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/applications -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getApplications",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/accounts/{id}/dispositions",\r    "title": "Gets account dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDispositions",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/accounts/{id}/interactions",\r    "title": "Gets account interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/interactions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getInteraction",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/accounts/{id}",\r    "title": "Update an existing Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAccounts",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/applications/{id}",\r    "title": "Deletes a Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/applications/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteApplications",\r    "group": "Fax_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxApplication/index.js",\r    "groupTitle": "Fax_Applications"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/applications/{id}",\r    "title": "Gets a single Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/applications/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowApplications",\r    "group": "Fax_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxApplication/index.js",\r    "groupTitle": "Fax_Applications"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/applications/{id}",\r    "title": "Update an existing Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateApplications",\r    "group": "Fax_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxApplication/index.js",\r    "groupTitle": "Fax_Applications"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/attachments",\r    "title": "Creates a new Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/attachments -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAttachments",\r    "group": "Fax_Attachments",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "path",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "basename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAttachment/index.js",\r    "groupTitle": "Fax_Attachments"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/attachments/{id}",\r    "title": "Deletes a Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/attachments/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAttachments",\r    "group": "Fax_Attachments",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAttachment/index.js",\r    "groupTitle": "Fax_Attachments"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/attachments",\r    "title": "Gets a list of Attachments",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/attachments -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAttachments",\r    "group": "Fax_Attachments",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/attachments?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/attachments?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/attachments?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/attachments?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/attachments?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAttachment/index.js",\r    "groupTitle": "Fax_Attachments"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/attachments/{id}",\r    "title": "Gets a single Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/attachments/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAttachments",\r    "group": "Fax_Attachments",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAttachment/index.js",\r    "groupTitle": "Fax_Attachments"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/attachments/{id}",\r    "title": "Update an existing Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/attachments/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAttachments",\r    "group": "Fax_Attachments",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAttachment/index.js",\r    "groupTitle": "Fax_Attachments"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/dispositions",\r    "title": "Creates a new Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDispositions",\r    "group": "Fax_Dispositions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxDisposition/index.js",\r    "groupTitle": "Fax_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/dispositions/{id}",\r    "title": "Deletes a Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/dispositions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDispositions",\r    "group": "Fax_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxDisposition/index.js",\r    "groupTitle": "Fax_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/dispositions/{id}",\r    "title": "Gets a single Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/dispositions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDispositions",\r    "group": "Fax_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxDisposition/index.js",\r    "groupTitle": "Fax_Dispositions"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/dispositions/{id}",\r    "title": "Update an existing Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDispositions",\r    "group": "Fax_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxDisposition/index.js",\r    "groupTitle": "Fax_Dispositions"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/interactions",\r    "title": "Creates a new Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateInteractions",\r    "group": "Fax_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "account",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "faxIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "faxOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENT\"",\r              "\"SENDING\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/interactions/{id}",\r    "title": "Deletes a Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteInteractions",\r    "group": "Fax_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/interactions/describe",\r    "title": "Gets table info about Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeInteractions",\r    "group": "Fax_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/interactions",\r    "title": "Gets a list of Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetInteractions",\r    "group": "Fax_Interactions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/interactions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/interactions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/interactions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/interactions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/interactions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/interactions/{id}",\r    "title": "Gets a single Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowInteractions",\r    "group": "Fax_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/interactions/{id}/messages",\r    "title": "Creates new messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addMessage",\r    "group": "Fax_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENT\"",\r              "\"SENDING\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "channelstate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channelstatedesc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "exten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "linkedid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "localstationid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remotestationid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "pagestransferred",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "resolution",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transferrate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "filename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastStatus",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "error",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "text",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "retry",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/interactions/{id}/messages",\r    "title": "Gets interaction messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions/{id}/messages -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getMessages",\r    "group": "Fax_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/interactions/{id}",\r    "title": "Update an existing Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateInteractions",\r    "group": "Fax_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/messages",\r    "title": "Creates a new Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMessages",\r    "group": "Fax_Messages",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENT\"",\r              "\"SENDING\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "channelstate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channelstatedesc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "exten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "linkedid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "localstationid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remotestationid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "pagestransferred",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "resolution",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transferrate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "filename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastStatus",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "error",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "text",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "retry",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxMessage/index.js",\r    "groupTitle": "Fax_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/messages/{id}",\r    "title": "Deletes a Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/messages/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMessages",\r    "group": "Fax_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxMessage/index.js",\r    "groupTitle": "Fax_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/messages/describe",\r    "title": "Gets table info about Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/messages/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeMessages",\r    "group": "Fax_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxMessage/index.js",\r    "groupTitle": "Fax_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/messages",\r    "title": "Gets a list of Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/messages -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMessages",\r    "group": "Fax_Messages",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/messages?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/messages?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/messages?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/messages?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/messages?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxMessage/index.js",\r    "groupTitle": "Fax_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/messages/{id}",\r    "title": "Gets a single Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/messages/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMessages",\r    "group": "Fax_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxMessage/index.js",\r    "groupTitle": "Fax_Messages"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/messages/{id}",\r    "title": "Update an existing Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMessages",\r    "group": "Fax_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxMessage/index.js",\r    "groupTitle": "Fax_Messages"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/queues/{id}/users",\r    "title": "Add agents to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddAgents",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/queues/{id}/teams",\r    "title": "Add teams to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddTeams",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/queues",\r    "title": "Creates a new Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateQueues",\r    "group": "Fax_Queues",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rrmemory\"",\r              "\"beepall\"",\r              "\"roundrobin\""\r            ],\r            "optional": false,\r            "field": "strategy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "lastAgent",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/queues/{id}",\r    "title": "Deletes a Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteQueues",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/queues/{id}/users",\r    "title": "Gets queue agents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id}/users -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/queues",\r    "title": "Gets a list of Queues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/queues?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/queues?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/queues?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/queues?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/queues?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/queues/{id}/teams",\r    "title": "Gets queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/queues/{id}/users",\r    "title": "Removes agents from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/queues/{id}",\r    "title": "Gets a single Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueues",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/queues/{id}",\r    "title": "Update an existing Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateQueues",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "Fax_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountphone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "messageid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calledAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxReport/index.js",\r    "groupTitle": "Fax_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "Fax_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxReport/index.js",\r    "groupTitle": "Fax_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "Fax_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxReport/index.js",\r    "groupTitle": "Fax_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "Fax_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxReport/index.js",\r    "groupTitle": "Fax_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "Fax_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxReport/index.js",\r    "groupTitle": "Fax_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/sessions/reports",\r    "title": "Creates a new Session Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/sessions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSession_Reports",\r    "group": "Fax_Session_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountphone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "joinAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "leaveAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "completeAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "complete",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"agent\""\r            ],\r            "optional": true,\r            "field": "completeReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxSessionReport/index.js",\r    "groupTitle": "Fax_Session_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/sessions/reports/{id}",\r    "title": "Deletes a Session Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/sessions/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSession_Reports",\r    "group": "Fax_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxSessionReport/index.js",\r    "groupTitle": "Fax_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/sessions/reports/describe",\r    "title": "Gets table info about Session Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/sessions/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeSession_Reports",\r    "group": "Fax_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxSessionReport/index.js",\r    "groupTitle": "Fax_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/sessions/reports",\r    "title": "Gets a list of Session Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/sessions/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSession_Reports",\r    "group": "Fax_Session_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/sessions/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/sessions/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/sessions/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/sessions/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/sessions/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxSessionReport/index.js",\r    "groupTitle": "Fax_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/sessions/reports/{id}",\r    "title": "Gets a single Session Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/sessions/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSession_Reports",\r    "group": "Fax_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxSessionReport/index.js",\r    "groupTitle": "Fax_Session_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/sessions/reports/{id}",\r    "title": "Update an existing Session Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/sessions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSession_Reports",\r    "group": "Fax_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxSessionReport/index.js",\r    "groupTitle": "Fax_Session_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/freshdesk/accounts",\r    "title": "Creates a new Freshdesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateFreshdesk_Accounts",\r    "group": "Freshdesk_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "apiKey",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remoteUri",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "serverUrl",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/freshdesk/accounts/{id}",\r    "title": "Deletes a Freshdesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteFreshdesk_Accounts",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/accounts",\r    "title": "Gets a list of Freshdesk Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetFreshdesk_Accounts",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/freshdesk/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/freshdesk/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/freshdesk/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/freshdesk/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/freshdesk/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/accounts/{id}",\r    "title": "Gets a single Freshdesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowFreshdesk_Accounts",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/freshdesk/accounts/{id}/configurations",\r    "title": "Creates new configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addConfiguration",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/accounts/{id}/configurations",\r    "title": "Gets account configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/configurations -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getConfigurations",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/accounts/{id}/fields",\r    "title": "Gets account fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/freshdesk/accounts/{id}",\r    "title": "Update an existing Freshdesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateFreshdesk_Accounts",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/freshdesk/configurations",\r    "title": "Creates a new Freshdesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateFreshdesk_Configurations",\r    "group": "Freshdesk_Configurations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/freshdesk/configurations/{id}",\r    "title": "Deletes a Freshdesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteFreshdesk_Configurations",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/configurations",\r    "title": "Gets a list of Freshdesk Configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetFreshdesk_Configurations",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/freshdesk/configurations?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/freshdesk/configurations?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/freshdesk/configurations?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/freshdesk/configurations?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/freshdesk/configurations?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/configurations/{id}",\r    "title": "Gets a single Freshdesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowFreshdesk_Configurations",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/configurations/{id}/descriptions",\r    "title": "Gets configurations descriptions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/descriptions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDescriptions",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/configurations/{id}/fields",\r    "title": "Gets configurations fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/configurations/{id}/subjects",\r    "title": "Gets configurations subjects",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/subjects -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getSubjects",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/configurations/{id}/tags",\r    "title": "Gets configurations tags",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/tags -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getTags",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/freshdesk/configurations/{id}/tags",\r    "title": "Sets new tags",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "setTags",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/freshdesk/configurations/{id}",\r    "title": "Update an existing Freshdesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateFreshdesk_Configurations",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/freshdesk/fields",\r    "title": "Creates a new Freshdesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateFreshdesk_Fields",\r    "group": "Freshdesk_Fields",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\"",\r              "\"keyValue\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "content",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "key",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\""\r            ],\r            "optional": true,\r            "field": "keyType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "keyContent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "idField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "nameField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "customField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "variableName",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskField/index.js",\r    "groupTitle": "Freshdesk_Fields"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/freshdesk/fields/{id}",\r    "title": "Deletes a Freshdesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteFreshdesk_Fields",\r    "group": "Freshdesk_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskField/index.js",\r    "groupTitle": "Freshdesk_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/fields",\r    "title": "Gets a list of Freshdesk Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/fields -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetFreshdesk_Fields",\r    "group": "Freshdesk_Fields",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/freshdesk/fields?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/freshdesk/fields?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/freshdesk/fields?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/freshdesk/fields?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/freshdesk/fields?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskField/index.js",\r    "groupTitle": "Freshdesk_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/fields/{id}",\r    "title": "Gets a single Freshdesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowFreshdesk_Fields",\r    "group": "Freshdesk_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskField/index.js",\r    "groupTitle": "Freshdesk_Fields"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/freshdesk/fields/{id}",\r    "title": "Update an existing Freshdesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateFreshdesk_Fields",\r    "group": "Freshdesk_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskField/index.js",\r    "groupTitle": "Freshdesk_Fields"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/reports",\r    "title": "Creates a new Integration Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateIntegration_Reports",\r    "group": "Integration_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "integration",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "eventChannel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "exitStatus",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "ticketId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "integrationId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contacts",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interface",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "agentcalledAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "agentconnectAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "holdtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "agentcomplete",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "agentcompleteAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "talktime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "agentacw",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "acwtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "agentringnoanswer",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "agentringnoanswerAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "agentdump",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "agentdumpAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastevent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "channelstate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channelstatedesc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "language",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "exten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destchannel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "destchannelstate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destchannelstatedesc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destcalleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destcalleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destconnectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destconnectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destlanguage",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destaccountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destcontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destpriority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destuniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "messageId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "inReplyTo",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "cc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "attachment",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "html",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "text",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENT\"",\r              "\"SENDING\"",\r              "\"RECEIVED\"",\r              "\"FAILED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "url",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "app",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "appdata",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "projectId",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/integrationReport/index.js",\r    "groupTitle": "Integration_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/reports/{id}",\r    "title": "Deletes a Integration Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteIntegration_Reports",\r    "group": "Integration_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/integrationReport/index.js",\r    "groupTitle": "Integration_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/reports/describe",\r    "title": "Gets table info about Integration Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeIntegration_Reports",\r    "group": "Integration_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/integrationReport/index.js",\r    "groupTitle": "Integration_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/reports",\r    "title": "Gets a list of Integration Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetIntegration_Reports",\r    "group": "Integration_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/integrationReport/index.js",\r    "groupTitle": "Integration_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/reports/{id}",\r    "title": "Gets a single Integration Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowIntegration_Reports",\r    "group": "Integration_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/integrationReport/index.js",\r    "groupTitle": "Integration_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/reports/{id}",\r    "title": "Update an existing Integration Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateIntegration_Reports",\r    "group": "Integration_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/integrationReport/index.js",\r    "groupTitle": "Integration_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/intervals",\r    "title": "Creates a new Interval",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateIntervals",\r    "group": "Intervals",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interval",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "delete",\r    "url": "/api/intervals/{id}",\r    "title": "Deletes a Interval",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteIntervals",\r    "group": "Intervals",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "get",\r    "url": "/api/intervals",\r    "title": "Gets a list of Intervals",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetIntervals",\r    "group": "Intervals",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/intervals?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/intervals?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/intervals?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/intervals?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/intervals?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "get",\r    "url": "/api/intervals/{id}",\r    "title": "Gets a single Interval",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowIntervals",\r    "group": "Intervals",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "post",\r    "url": "/api/intervals/{id}/sub_intervals",\r    "title": "Creates a new sub interval",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -d '{\"interval\": \"00:00-08:30,mon-fri,*,*\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addInterval",\r    "group": "Intervals",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "post",\r    "url": "/api/intervals/{id}/sub_intervals/create_many",\r    "title": "Create new sub intervals set",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addIntervals",\r    "group": "Intervals",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "get",\r    "url": "/api/intervals/{id}/sub_intervals",\r    "title": "Get sub intervals set",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getIntervals",\r    "group": "Intervals",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "put",\r    "url": "/api/intervals/{id}",\r    "title": "Update an existing Interval",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateIntervals",\r    "group": "Intervals",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "post",\r    "url": "/api/jira",\r    "title": "Creates a new issue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jira -d '{\"key\": \"Bug\", \"description\": \"I can't do it!\"}' \\\n -H \"Content-Type: application/json\" -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Creates_Issue",\r    "group": "Issue",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"Bug\""\r            ],\r            "optional": true,\r            "field": "issuetype",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "summary",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jira/index.js",\r    "groupTitle": "Issue"\r  },\r  {\r    "type": "post",\r    "url": "/api/jscripty/answers/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/answers/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "JscriptyAnswerReport",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "question",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "answer",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "projectname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyAnswerReport/index.js",\r    "groupTitle": "JscriptyAnswerReport"\r  },\r  {\r    "type": "delete",\r    "url": "/api/jscripty/answers/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "JscriptyAnswerReport",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyAnswerReport/index.js",\r    "groupTitle": "JscriptyAnswerReport"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/answers/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/answers/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "JscriptyAnswerReport",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/jscripty/answers/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/jscripty/answers/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/jscripty/answers/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/jscripty/answers/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/jscripty/answers/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyAnswerReport/index.js",\r    "groupTitle": "JscriptyAnswerReport"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/answers/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "JscriptyAnswerReport",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyAnswerReport/index.js",\r    "groupTitle": "JscriptyAnswerReport"\r  },\r  {\r    "type": "put",\r    "url": "/api/jscripty/answers/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "JscriptyAnswerReport",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyAnswerReport/index.js",\r    "groupTitle": "JscriptyAnswerReport"\r  },\r  {\r    "type": "post",\r    "url": "/api/jscripty/questions/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/questions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "JscriptyQuestionReport",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "question",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "answer",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "projectname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyQuestionReport/index.js",\r    "groupTitle": "JscriptyQuestionReport"\r  },\r  {\r    "type": "delete",\r    "url": "/api/jscripty/questions/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "JscriptyQuestionReport",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyQuestionReport/index.js",\r    "groupTitle": "JscriptyQuestionReport"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/questions/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/questions/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "JscriptyQuestionReport",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/jscripty/questions/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/jscripty/questions/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/jscripty/questions/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/jscripty/questions/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/jscripty/questions/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyQuestionReport/index.js",\r    "groupTitle": "JscriptyQuestionReport"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/questions/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "JscriptyQuestionReport",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyQuestionReport/index.js",\r    "groupTitle": "JscriptyQuestionReport"\r  },\r  {\r    "type": "put",\r    "url": "/api/jscripty/questions/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "JscriptyQuestionReport",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyQuestionReport/index.js",\r    "groupTitle": "JscriptyQuestionReport"\r  },\r  {\r    "type": "post",\r    "url": "/api/jscripty/sessions/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/sessions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "JscriptySessionReport",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "starttime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "endtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "projectname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptySessionReport/index.js",\r    "groupTitle": "JscriptySessionReport"\r  },\r  {\r    "type": "delete",\r    "url": "/api/jscripty/sessions/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "JscriptySessionReport",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptySessionReport/index.js",\r    "groupTitle": "JscriptySessionReport"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/sessions/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/sessions/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "JscriptySessionReport",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/jscripty/sessions/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/jscripty/sessions/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/jscripty/sessions/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/jscripty/sessions/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/jscripty/sessions/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptySessionReport/index.js",\r    "groupTitle": "JscriptySessionReport"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/sessions/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "JscriptySessionReport",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptySessionReport/index.js",\r    "groupTitle": "JscriptySessionReport"\r  },\r  {\r    "type": "put",\r    "url": "/api/jscripty/sessions/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "JscriptySessionReport",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptySessionReport/index.js",\r    "groupTitle": "JscriptySessionReport"\r  },\r  {\r    "type": "post",\r    "url": "/api/jscripty/projects",\r    "title": "Creates a new Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/projects -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateProjects",\r    "group": "Jscripty_Projects",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "formData",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyProject/index.js",\r    "groupTitle": "Jscripty_Projects"\r  },\r  {\r    "type": "delete",\r    "url": "/api/jscripty/projects/{id}",\r    "title": "Deletes a Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/projects/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteProjects",\r    "group": "Jscripty_Projects",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyProject/index.js",\r    "groupTitle": "Jscripty_Projects"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/projects",\r    "title": "Gets a list of Projects",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/projects -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetProjects",\r    "group": "Jscripty_Projects",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/jscripty/projects?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/jscripty/projects?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/jscripty/projects?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/jscripty/projects?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/jscripty/projects?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyProject/index.js",\r    "groupTitle": "Jscripty_Projects"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/projects/{id}",\r    "title": "Gets a single Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/projects/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowProjects",\r    "group": "Jscripty_Projects",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyProject/index.js",\r    "groupTitle": "Jscripty_Projects"\r  },\r  {\r    "type": "put",\r    "url": "/api/jscripty/projects/{id}",\r    "title": "Update an existing Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/projects/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateProjects",\r    "group": "Jscripty_Projects",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyProject/index.js",\r    "groupTitle": "Jscripty_Projects"\r  },\r  {\r    "type": "get",\r    "url": "/api/license",\r    "title": "Gets License Info",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/license -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "index",\r    "group": "License",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/license/index.js",\r    "groupTitle": "License"\r  },\r  {\r    "type": "put",\r    "url": "/api/license/{id}",\r    "title": "Update an existing License",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/license/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateLiense",\r    "group": "License",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/license/index.js",\r    "groupTitle": "License"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/in_servers",\r    "title": "Creates a new IMAP server",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddImap",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "host",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "port",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mailbox",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "ssl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "delete",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"UNSEEN\""\r            ],\r            "optional": true,\r            "field": "filter",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"IMAP\"",\r              "\"POP3\""\r            ],\r            "optional": true,\r            "field": "protocol",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"CONNECTING\"",\r              "\"CONNECTED\"",\r              "\"DISCONNECTED\"",\r              "\"ERROR\"",\r              "\"UNKNOWN\""\r            ],\r            "optional": true,\r            "field": "state",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "source",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "connTimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "authTimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "keepalive",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/out_servers",\r    "title": "Creates a new SMTP server",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddSmtp",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "service",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "host",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "user",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "pass",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "port",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "secure",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "state",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts",\r    "title": "Creates a new Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAccounts",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "whiteLabel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "acceptUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "acceptMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "rejectMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "actions",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closeUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "closeMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "signature",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "custom",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "service",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/accounts/{id}",\r    "title": "Deletes a Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAccounts",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts",\r    "title": "Gets a list of Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAccounts",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}/in_servers",\r    "title": "Gets account IMAP server",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetImap",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}/out_servers",\r    "title": "Gets account SMTP server",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetSmtp",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/accounts/{id}/in_servers",\r    "title": "Removes IMAP server from an account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveImmap",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/accounts/{id}/out_servers",\r    "title": "Removes SMTP server from an account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveSmtp",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}",\r    "title": "Gets a single Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAccounts",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/applications",\r    "title": "Creates new applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addApplications",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"queue\"",\r              "\"agent\"",\r              "\"sendMail\"",\r              "\"replyMail\"",\r              "\"sendSms\""\r            ],\r            "optional": true,\r            "field": "app",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interval",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "data7",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data8",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data9",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data10",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/dispositions",\r    "title": "Creates new disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -d '{\"name\": \"vip\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDisposition",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/dispositions",\r    "title": "Creates many dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -d '[{\"name\": \"vip\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDispositions",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/interactions",\r    "title": "Creates new interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/interactions -d '[{\"subject\": \"My printer is on fire!\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addInteraction",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "account",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "attachment",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "mailIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "mailOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "deleted",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ParentId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}/applications",\r    "title": "Gets account applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/applications -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getApplications",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}/dispositions",\r    "title": "Gets account dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDispositions",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}/interactions",\r    "title": "Gets account interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/interactions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getInteraction",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/send",\r    "title": "Send new mail",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/send -d '{from: '\"John Doe\" <john.doe@xcally.com>'}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "sendMail",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/accounts/{id}",\r    "title": "Update an existing Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAccounts",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}/verify",\r    "title": "Verify mail account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/verify -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "verifySmtp",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/applications/{id}",\r    "title": "Deletes a Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/applications/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteApplications",\r    "group": "Mail_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailApplication/index.js",\r    "groupTitle": "Mail_Applications"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/applications/{id}",\r    "title": "Gets a single Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/applications/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowApplications",\r    "group": "Mail_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailApplication/index.js",\r    "groupTitle": "Mail_Applications"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/applications/{id}",\r    "title": "Update an existing Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateApplications",\r    "group": "Mail_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailApplication/index.js",\r    "groupTitle": "Mail_Applications"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/attachments",\r    "title": "Creates a new Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/attachments -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAttachments",\r    "group": "Mail_Attachments",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "domain",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "size",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "path",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "basename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAttachment/index.js",\r    "groupTitle": "Mail_Attachments"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/attachments/{id}",\r    "title": "Deletes a Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/attachments/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAttachments",\r    "group": "Mail_Attachments",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAttachment/index.js",\r    "groupTitle": "Mail_Attachments"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/attachments",\r    "title": "Gets a list of Attachments",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/attachments -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAttachments",\r    "group": "Mail_Attachments",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/attachments?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/attachments?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/attachments?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/attachments?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/attachments?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAttachment/index.js",\r    "groupTitle": "Mail_Attachments"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/attachments/{id}",\r    "title": "Gets a single Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/attachments/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAttachments",\r    "group": "Mail_Attachments",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAttachment/index.js",\r    "groupTitle": "Mail_Attachments"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/attachments/{id}",\r    "title": "Update an existing Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/attachments/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAttachments",\r    "group": "Mail_Attachments",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAttachment/index.js",\r    "groupTitle": "Mail_Attachments"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/dispositions",\r    "title": "Creates a new Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDispositions",\r    "group": "Mail_Dispositions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailDisposition/index.js",\r    "groupTitle": "Mail_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/dispositions/{id}",\r    "title": "Deletes a Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/dispositions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDispositions",\r    "group": "Mail_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailDisposition/index.js",\r    "groupTitle": "Mail_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/dispositions/{id}",\r    "title": "Gets a single Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/dispositions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDispositions",\r    "group": "Mail_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailDisposition/index.js",\r    "groupTitle": "Mail_Dispositions"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/dispositions/{id}",\r    "title": "Update an existing Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDispositions",\r    "group": "Mail_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailDisposition/index.js",\r    "groupTitle": "Mail_Dispositions"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/interactions",\r    "title": "Creates a new Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateInteractions",\r    "group": "Mail_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "account",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "attachment",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "mailIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "mailOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "deleted",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ParentId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/interactions/{id}",\r    "title": "Deletes a Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteInteractions",\r    "group": "Mail_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/interactions/describe",\r    "title": "Gets table info about Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeInteractions",\r    "group": "Mail_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/interactions",\r    "title": "Gets a list of Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetInteractions",\r    "group": "Mail_Interactions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/interactions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/interactions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/interactions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/interactions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/interactions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/interactions/{id}",\r    "title": "Gets a single Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowInteractions",\r    "group": "Mail_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/interactions/{id}/messages",\r    "title": "Creates new message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions/{id}/messages -d '[{\"to\": \"sales@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addMessage",\r    "group": "Mail_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "messageId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "inReplyTo",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "cc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "bcc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "fromId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "attachment",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "text",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "html",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "auto",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "retry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "voiceSource",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "userName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "userFullname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "accountId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountName",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/interactions/{id}/messages",\r    "title": "Gets interaction messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions/{id}/messages -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getMessages",\r    "group": "Mail_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/interactions/{id}",\r    "title": "Update an existing Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateInteractions",\r    "group": "Mail_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/messages",\r    "title": "Creates a new Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMessages",\r    "group": "Mail_Messages",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "messageId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "inReplyTo",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "cc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "bcc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "fromId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "attachment",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "text",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "html",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "auto",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "retry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "voiceSource",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "userName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "userFullname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "accountId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountName",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailMessage/index.js",\r    "groupTitle": "Mail_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/messages/{id}",\r    "title": "Deletes a Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/messages/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMessages",\r    "group": "Mail_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailMessage/index.js",\r    "groupTitle": "Mail_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/messages/describe",\r    "title": "Gets table info about Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/messages/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeMessages",\r    "group": "Mail_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailMessage/index.js",\r    "groupTitle": "Mail_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/messages",\r    "title": "Gets a list of Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/messages -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMessages",\r    "group": "Mail_Messages",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/messages?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/messages?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/messages?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/messages?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/messages?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailMessage/index.js",\r    "groupTitle": "Mail_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/messages/{id}",\r    "title": "Gets a single Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/messages/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMessages",\r    "group": "Mail_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailMessage/index.js",\r    "groupTitle": "Mail_Messages"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/messages/{id}",\r    "title": "Update an existing Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMessages",\r    "group": "Mail_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailMessage/index.js",\r    "groupTitle": "Mail_Messages"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/queues/{id}/users",\r    "title": "Add agents to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddAgents",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/queues/{id}/teams",\r    "title": "Add teams to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddTeams",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/queues",\r    "title": "Creates a new Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateQueues",\r    "group": "Mail_Queues",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rrmemory\"",\r              "\"beepall\"",\r              "\"roundrobin\""\r            ],\r            "optional": true,\r            "field": "strategy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "lastAgent",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/queues/{id}",\r    "title": "Deletes a Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteQueues",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/queues/{id}/users",\r    "title": "Gets queue agents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id}/users -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/queues",\r    "title": "Gets a list of Queues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/queues?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/queues?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/queues?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/queues?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/queues?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/queues/{id}/teams",\r    "title": "Gets queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/queues/{id}/users",\r    "title": "Removes agents from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/queues/{id}",\r    "title": "Gets a single Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueues",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/queues/{id}",\r    "title": "Update an existing Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateQueues",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "Mail_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailReport/index.js",\r    "groupTitle": "Mail_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "Mail_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailReport/index.js",\r    "groupTitle": "Mail_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/out_servers",\r    "title": "Creates a new SMTP",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/out_servers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSMTPs",\r    "group": "Mail_SMTP",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "service",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "host",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "user",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "pass",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "port",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "secure",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "state",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailServerOut/index.js",\r    "groupTitle": "Mail_SMTP"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/out_servers/{id}",\r    "title": "Deletes a SMTP",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/out_servers/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSMTPs",\r    "group": "Mail_SMTP",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailServerOut/index.js",\r    "groupTitle": "Mail_SMTP"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/out_servers",\r    "title": "Gets a list of SMTPs",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/out_servers -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSMTPs",\r    "group": "Mail_SMTP",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/out_servers?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/out_servers?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/out_servers?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/out_servers?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/out_servers?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailServerOut/index.js",\r    "groupTitle": "Mail_SMTP"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/out_servers/{id}",\r    "title": "Gets a single SMTP",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/out_servers/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSMTPs",\r    "group": "Mail_SMTP",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailServerOut/index.js",\r    "groupTitle": "Mail_SMTP"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/out_servers/{id}",\r    "title": "Update an existing SMTP",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/out_servers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSMTPs",\r    "group": "Mail_SMTP",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailServerOut/index.js",\r    "groupTitle": "Mail_SMTP"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/sessions/reports/describe",\r    "title": "Gets table info about Session Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/sessions/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeSession_Reports",\r    "group": "Mail_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailSessionReport/index.js",\r    "groupTitle": "Mail_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/sessions/reports",\r    "title": "Gets a list of Session Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/sessions/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSession_Reports",\r    "group": "Mail_Session_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/sessions/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/sessions/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/sessions/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/sessions/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/sessions/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailSessionReport/index.js",\r    "groupTitle": "Mail_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/sessions/reports/{id}",\r    "title": "Gets a single Session Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/sessions/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSession_Reports",\r    "group": "Mail_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailSessionReport/index.js",\r    "groupTitle": "Mail_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/members/reports/describe",\r    "title": "Gets table info about Member Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/members/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeMember_Reports",\r    "group": "Member_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/memberReport/index.js",\r    "groupTitle": "Member_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/members/reports",\r    "title": "Gets a list of Member Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/members/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMember_Reports",\r    "group": "Member_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/members/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/members/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/members/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/members/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/members/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/memberReport/index.js",\r    "groupTitle": "Member_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/members/reports/{id}",\r    "title": "Gets a single Member Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/members/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMember_Reports",\r    "group": "Member_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/memberReport/index.js",\r    "groupTitle": "Member_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/networks",\r    "title": "Create a new network",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/networks -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Create",\r    "group": "Networks",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/network/index.js",\r    "groupTitle": "Networks"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/networks/{id}",\r    "title": "Deletes a network",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/networks/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "Delete",\r    "group": "Networks",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/network/index.js",\r    "groupTitle": "Networks"\r  },\r  {\r    "type": "get",\r    "url": "/api/networks",\r    "title": "Gets a list of Networks",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/networks -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetNetworks",\r    "group": "Networks",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/networks?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/networks?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/networks?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/networks?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/networks?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/network/index.js",\r    "groupTitle": "Networks"\r  },\r  {\r    "type": "get",\r    "url": "/api/networks/{id}",\r    "title": "Gets a single Network",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/networks/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowNetworks",\r    "group": "Networks",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/network/index.js",\r    "groupTitle": "Networks"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/networks/{id}",\r    "title": "Update an existing network",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/networks/{id} -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "Update",\r    "group": "Networks",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/network/index.js",\r    "groupTitle": "Networks"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/accounts",\r    "title": "Creates a new Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAccounts",\r    "group": "Openchannel_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remote",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "acceptUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "replyUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "acceptMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "rejectMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "replyMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closeUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "closeMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "actions",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/accounts/{id}",\r    "title": "Deletes a Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAccounts",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/accounts",\r    "title": "Gets a list of Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAccounts",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/openchannel/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/openchannel/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/openchannel/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/openchannel/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/openchannel/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/accounts/{id}",\r    "title": "Gets a single Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAccounts",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/accounts/{id}/applications",\r    "title": "Creates new applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addApplications",\r    "group": "Openchannel_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"queue\"",\r              "\"agent\"",\r              "\"sendMail\"",\r              "\"sendSms\""\r            ],\r            "optional": true,\r            "field": "app",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interval",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "data7",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data8",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data9",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data10",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/accounts/{id}/dispositions",\r    "title": "Creates new disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDisposition",\r    "group": "Openchannel_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/accounts/{id}/dispositions",\r    "title": "Creates many dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDispositions",\r    "group": "Openchannel_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/accounts/{id}/interactions",\r    "title": "Creates new interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/interactions -d '[{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addInteraction",\r    "group": "Openchannel_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "openchannelIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "openchannelOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ParentId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/accounts/{id}/applications",\r    "title": "Gets account applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/applications -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getApplications",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/accounts/{id}/dispositions",\r    "title": "Gets account dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDispositions",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/accounts/{id}/interactions",\r    "title": "Gets account interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/interactions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getInteraction",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/accounts/{id}",\r    "title": "Update an existing Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAccounts",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/applications/{id}",\r    "title": "Deletes a Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/applications/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteApplications",\r    "group": "Openchannel_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelApplication/index.js",\r    "groupTitle": "Openchannel_Applications"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/applications/{id}",\r    "title": "Gets a single Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/applications/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowApplications",\r    "group": "Openchannel_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelApplication/index.js",\r    "groupTitle": "Openchannel_Applications"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/applications/{id}",\r    "title": "Update an existing Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateApplications",\r    "group": "Openchannel_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelApplication/index.js",\r    "groupTitle": "Openchannel_Applications"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/dispositions",\r    "title": "Creates a new Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDispositions",\r    "group": "Openchannel_Dispositions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelDisposition/index.js",\r    "groupTitle": "Openchannel_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/dispositions/{id}",\r    "title": "Deletes a Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/dispositions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDispositions",\r    "group": "Openchannel_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelDisposition/index.js",\r    "groupTitle": "Openchannel_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/dispositions/{id}",\r    "title": "Gets a single Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/dispositions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDispositions",\r    "group": "Openchannel_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelDisposition/index.js",\r    "groupTitle": "Openchannel_Dispositions"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/dispositions/{id}",\r    "title": "Update an existing Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDispositions",\r    "group": "Openchannel_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelDisposition/index.js",\r    "groupTitle": "Openchannel_Dispositions"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/interactions",\r    "title": "Creates a new Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateInteractions",\r    "group": "Openchannel_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "openchannelIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "openchannelOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ParentId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/interactions/{id}",\r    "title": "Deletes a Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteInteractions",\r    "group": "Openchannel_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/interactions/describe",\r    "title": "Gets table info about Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeInteractions",\r    "group": "Openchannel_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/interactions",\r    "title": "Gets a list of Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetInteractions",\r    "group": "Openchannel_Interactions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/openchannel/interactions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/openchannel/interactions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/openchannel/interactions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/openchannel/interactions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/openchannel/interactions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/interactions/{id}",\r    "title": "Gets a single Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowInteractions",\r    "group": "Openchannel_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/interactions/{id}/messages",\r    "title": "Creates new messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addMessage",\r    "group": "Openchannel_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "body",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "res_data",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/interactions/{id}/messages",\r    "title": "Gets interaction messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions/{id}/messages -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getMessages",\r    "group": "Openchannel_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/interactions/{id}",\r    "title": "Update an existing Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateInteractions",\r    "group": "Openchannel_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/messages",\r    "title": "Creates a new Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMessages",\r    "group": "Openchannel_Messages",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "body",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "res_data",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelMessage/index.js",\r    "groupTitle": "Openchannel_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/messages/{id}",\r    "title": "Deletes a Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/messages/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMessages",\r    "group": "Openchannel_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelMessage/index.js",\r    "groupTitle": "Openchannel_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/messages/describe",\r    "title": "Gets table info about Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/messages/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeMessages",\r    "group": "Openchannel_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelMessage/index.js",\r    "groupTitle": "Openchannel_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/messages",\r    "title": "Gets a list of Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/messages -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMessages",\r    "group": "Openchannel_Messages",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/openchannel/messages?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/openchannel/messages?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/openchannel/messages?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/openchannel/messages?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/openchannel/messages?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelMessage/index.js",\r    "groupTitle": "Openchannel_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/messages/{id}",\r    "title": "Gets a single Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/messages/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMessages",\r    "group": "Openchannel_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelMessage/index.js",\r    "groupTitle": "Openchannel_Messages"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/messages/{id}",\r    "title": "Update an existing Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMessages",\r    "group": "Openchannel_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelMessage/index.js",\r    "groupTitle": "Openchannel_Messages"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/queues/{id}/users",\r    "title": "Add agents to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddAgents",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/queues/{id}/teams",\r    "title": "Add teams to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddTeams",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/queues",\r    "title": "Creates a new Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateQueues",\r    "group": "Openchannel_Queues",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rrmemory\"",\r              "\"beepall\"",\r              "\"roundrobin\""\r            ],\r            "optional": true,\r            "field": "strategy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "lastAgent",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/queues/{id}",\r    "title": "Deletes a Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteQueues",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/queues/{id}/users",\r    "title": "Gets queue agents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id}/users -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/queues",\r    "title": "Gets a list of Queues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/openchannel/queues?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/openchannel/queues?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/openchannel/queues?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/openchannel/queues?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/openchannel/queues?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/queues/{id}/teams",\r    "title": "Gets queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/queues/{id}/users",\r    "title": "Removes agents from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/queues/{id}",\r    "title": "Gets a single Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueues",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/queues/{id}",\r    "title": "Update an existing Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateQueues",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/reports",\r    "title": "Creates a new Openchannel Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateOpenchannel_Reports",\r    "group": "Openchannel_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "messageid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calledAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelReport/index.js",\r    "groupTitle": "Openchannel_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/reports/{id}",\r    "title": "Deletes a Openchannel Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteOpenchannel_Reports",\r    "group": "Openchannel_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelReport/index.js",\r    "groupTitle": "Openchannel_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/reports",\r    "title": "Gets a list of Openchannel Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetOpenchannel_Reports",\r    "group": "Openchannel_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/openchannel/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/openchannel/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/openchannel/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/openchannel/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/openchannel/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelReport/index.js",\r    "groupTitle": "Openchannel_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/reports/{id}",\r    "title": "Gets a single Openchannel Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowOpenchannel_Reports",\r    "group": "Openchannel_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelReport/index.js",\r    "groupTitle": "Openchannel_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/reports/{id}",\r    "title": "Update an existing Openchannel Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateOpenchannel_Reports",\r    "group": "Openchannel_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelReport/index.js",\r    "groupTitle": "Openchannel_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/sessions/reports/describe",\r    "title": "Gets table info about Session Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/sessions/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeSession_Reports",\r    "group": "Openchannel_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelSessionReport/index.js",\r    "groupTitle": "Openchannel_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/sessions/reports",\r    "title": "Gets a list of Session Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/sessions/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSession_Reports",\r    "group": "Openchannel_Session_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/openchannel/sessions/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/openchannel/sessions/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/openchannel/sessions/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/openchannel/sessions/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/openchannel/sessions/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelSessionReport/index.js",\r    "groupTitle": "Openchannel_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/sessions/reports/{id}",\r    "title": "Gets a single Session Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/sessions/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSession_Reports",\r    "group": "Openchannel_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelSessionReport/index.js",\r    "groupTitle": "Openchannel_Session_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/pauses",\r    "title": "Creates a new Pause",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pauses -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreatePauses",\r    "group": "Pauses",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pause/index.js",\r    "groupTitle": "Pauses"\r  },\r  {\r    "type": "delete",\r    "url": "/api/pauses/{id}",\r    "title": "Deletes a Pause",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pauses/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeletePauses",\r    "group": "Pauses",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pause/index.js",\r    "groupTitle": "Pauses"\r  },\r  {\r    "type": "get",\r    "url": "/api/pauses",\r    "title": "Gets a list of Pauses",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pauses -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetPauses",\r    "group": "Pauses",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/pauses?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/pauses?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/pauses?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/pauses?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/pauses?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/pause/index.js",\r    "groupTitle": "Pauses"\r  },\r  {\r    "type": "get",\r    "url": "/api/pauses/{id}",\r    "title": "Gets a single Pause",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pauses/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowPauses",\r    "group": "Pauses",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pause/index.js",\r    "groupTitle": "Pauses"\r  },\r  {\r    "type": "put",\r    "url": "/api/pauses/{id}",\r    "title": "Update an existing Pause",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pauses/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updatePauses",\r    "group": "Pauses",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pause/index.js",\r    "groupTitle": "Pauses"\r  },\r  {\r    "type": "get",\r    "url": "/api/pm2/{id}",\r    "title": "Gets a single pm2 process",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pm2/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetPm2Process",\r    "group": "Pm2",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pm2/index.js",\r    "groupTitle": "Pm2"\r  },\r  {\r    "type": "get",\r    "url": "/api/pm2",\r    "title": "Gets pm2 processes",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pm2 -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetPm2Processes",\r    "group": "Pm2",\r    "description": "<p>Motion returns the pm2 processes list.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pm2/index.js",\r    "groupTitle": "Pm2"\r  },\r  {\r    "type": "put",\r    "url": "/api/pm2/{id}",\r    "title": "Update an existing Process",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pm2/{id} -d '{\"status\": \"online\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateProcesses",\r    "group": "Pm2",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pm2/index.js",\r    "groupTitle": "Pm2"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/campaigns/",\r    "title": "Gets a list of campaigns",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/campaigns -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "Campaigns",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime campaigns parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/agents",\r    "title": "Gets a list of RTAgents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/agents -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTAgents",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime agents parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/outbound/channels",\r    "title": "Gets a list of RTOutboundChannels",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/outbound/channels -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTOutboundChannels",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime outbound channels.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/telephones",\r    "title": "Gets a list of RTTelephones",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/telephones -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTTelephones",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of telephones parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/trunks",\r    "title": "Gets a list of RTTrunks",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/trunks -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTTrunks",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime trunks parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/voice/queues/channels/{uniqueid}",\r    "title": "Gets a single RTVoiceQueueChannel",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTVoiceQueueChannel",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a specific realtime voice queue channel.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/voice/queues/channels/{uniqueid}/hangup",\r    "title": "Hangup a single RTVoiceQueueChannel",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid}/hangup -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTVoiceQueueChannelHangup",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will hangup a specific realtime voice queue channel.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/voice/queues/channels/{uniqueid}/redirect/{exten}",\r    "title": "Hangup a single RTVoiceQueueChannel",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid}/redirect/{exten} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTVoiceQueueChannelRedirect",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will redirect a specific realtime voice queue channel to a specific extension.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/voice/queues",\r    "title": "Gets a list of RTVoiceQueues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTVoiceQueues",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/outbound",\r    "title": "Gets a list of RTOutbound",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTVoiceQueues",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/voice/queues/channels",\r    "title": "Gets a list of RTVoiceQueuesChannels",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/voice/queues/channels -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTVoiceQueuesChannels",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime voice queues channels.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/salesforce/accounts",\r    "title": "Creates a new Salesforce Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSalesforce_Accounts",\r    "group": "Salesforce_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remoteUri",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "clientId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "clientSecret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "securityToken",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "serverUrl",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/salesforce/accounts/{id}",\r    "title": "Deletes a Salesforce Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSalesforce_Accounts",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/accounts",\r    "title": "Gets a list of Salesforce Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSalesforce_Accounts",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/salesforce/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/salesforce/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/salesforce/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/salesforce/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/salesforce/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/accounts/{id}",\r    "title": "Gets a single Salesforce Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSalesforce_Accounts",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/salesforce/accounts/{id}/configurations",\r    "title": "Creates new configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addConfiguration",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/accounts/{id}/configurations",\r    "title": "Gets account configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/configurations -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getConfigurations",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/accounts/{id}/fields",\r    "title": "Gets account fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/salesforce/accounts/{id}",\r    "title": "Update an existing Salesforce Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSalesforce_Accounts",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/salesforce/configurations",\r    "title": "Creates a new Salesforce Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSalesforce_Configurations",\r    "group": "Salesforce_Configurations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/salesforce/configurations/{id}",\r    "title": "Deletes a Salesforce Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSalesforce_Configurations",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/configurations",\r    "title": "Gets a list of Salesforce Configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSalesforce_Configurations",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/salesforce/configurations?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/salesforce/configurations?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/salesforce/configurations?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/salesforce/configurations?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/salesforce/configurations?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/configurations/{id}",\r    "title": "Gets a single Salesforce Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSalesforce_Configurations",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/configurations/{id}/descriptions",\r    "title": "Gets configurations descriptions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/descriptions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDescriptions",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/configurations/{id}/fields",\r    "title": "Gets configurations fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/configurations/{id}/subjects",\r    "title": "Gets configurations subjects",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/subjects -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getSubjects",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/salesforce/configurations/{id}",\r    "title": "Update an existing Salesforce Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSalesforce_Configurations",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/salesforce/fields",\r    "title": "Creates a new Salesforce Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSalesforce_Fields",\r    "group": "Salesforce_Fields",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\"",\r              "\"keyValue\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "content",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "key",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\""\r            ],\r            "optional": true,\r            "field": "keyType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "keyContent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "idField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "variableName",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceField/index.js",\r    "groupTitle": "Salesforce_Fields"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/salesforce/fields/{id}",\r    "title": "Deletes a Salesforce Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSalesforce_Fields",\r    "group": "Salesforce_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceField/index.js",\r    "groupTitle": "Salesforce_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/fields",\r    "title": "Gets a list of Salesforce Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/fields -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSalesforce_Fields",\r    "group": "Salesforce_Fields",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/salesforce/fields?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/salesforce/fields?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/salesforce/fields?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/salesforce/fields?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/salesforce/fields?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceField/index.js",\r    "groupTitle": "Salesforce_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/fields/{id}",\r    "title": "Gets a single Salesforce Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSalesforce_Fields",\r    "group": "Salesforce_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceField/index.js",\r    "groupTitle": "Salesforce_Fields"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/salesforce/fields/{id}",\r    "title": "Update an existing Salesforce Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSalesforce_Fields",\r    "group": "Salesforce_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceField/index.js",\r    "groupTitle": "Salesforce_Fields"\r  },\r  {\r    "type": "post",\r    "url": "/api/schedules",\r    "title": "Creates a new Schedule",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/schedules -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSchedules",\r    "group": "Schedules",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "active",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reportRange",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "sendMail",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "validityStart",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "validityEnd",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "cronType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "cron",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reportType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "reportId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reportOutput",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "defaultEntry",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/schedule/index.js",\r    "groupTitle": "Schedules"\r  },\r  {\r    "type": "delete",\r    "url": "/api/schedules/{id}",\r    "title": "Deletes a Schedule",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/schedules/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSchedules",\r    "group": "Schedules",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/schedule/index.js",\r    "groupTitle": "Schedules"\r  },\r  {\r    "type": "get",\r    "url": "/api/schedules",\r    "title": "Gets a list of Schedules",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/schedules -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSchedules",\r    "group": "Schedules",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/schedules?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/schedules?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/schedules?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/schedules?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/schedules?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/schedule/index.js",\r    "groupTitle": "Schedules"\r  },\r  {\r    "type": "get",\r    "url": "/api/schedules/{id}",\r    "title": "Gets a single Schedule",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/schedules/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSchedules",\r    "group": "Schedules",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/schedule/index.js",\r    "groupTitle": "Schedules"\r  },\r  {\r    "type": "put",\r    "url": "/api/schedules/{id}",\r    "title": "Update an existing Schedule",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/schedules/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSchedules",\r    "group": "Schedules",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/schedule/index.js",\r    "groupTitle": "Schedules"\r  },\r  {\r    "type": "get",\r    "url": "/api/settings",\r    "title": "Gets a list of Settings",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSettings",\r    "group": "Settings",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/settings?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/settings?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/settings?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/settings?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/settings?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "get",\r    "url": "/api/settings/{id}",\r    "title": "Gets a single Setting",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSettings",\r    "group": "Settings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "put",\r    "url": "/api/settings/{id}",\r    "title": "Update settings",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings/{id} -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "Update",\r    "group": "Settings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "post",\r    "url": "/api/settings/{id}/logo",\r    "title": "Add logo",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings/{id}/logo -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addLogo",\r    "group": "Settings",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "post",\r    "url": "/api/settings/{id}/logo_login",\r    "title": "Add logo login",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings/{id}/logo_login -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addLogoLogin",\r    "group": "Settings",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "get",\r    "url": "/api/settings/{id}/logo",\r    "title": "Get logo",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings/{id}/logo -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getLogo",\r    "group": "Settings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "get",\r    "url": "/api/settings/{id}/logo_login",\r    "title": "Get logo login",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings/{id}/logo_login -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getLogoLogin",\r    "group": "Settings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/accounts",\r    "title": "Creates a new Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAccounts",\r    "group": "Sms_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"twilio\"",\r              "\"skebby\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"basic\"",\r              "\"classic\"",\r              "\"classic+\""\r            ],\r            "optional": true,\r            "field": "smstype",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remote",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "sid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "token",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "acceptUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "acceptMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "rejectMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closeUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "closeMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "actions",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/accounts/{id}",\r    "title": "Deletes a Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAccounts",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/accounts",\r    "title": "Gets a list of Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAccounts",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sms/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sms/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sms/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sms/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sms/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/accounts/{id}",\r    "title": "Gets a single Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAccounts",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/accounts/{id}/applications",\r    "title": "Creates new applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addApplications",\r    "group": "Sms_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"queue\"",\r              "\"agent\""\r            ],\r            "optional": true,\r            "field": "app",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interval",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "data7",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data8",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data9",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data10",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/accounts/{id}/dispositions",\r    "title": "Creates new disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDisposition",\r    "group": "Sms_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/accounts/{id}/dispositions",\r    "title": "Creates many dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDispositions",\r    "group": "Sms_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/accounts/{id}/interactions",\r    "title": "Creates new interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/interactions -d '[{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addInteraction",\r    "group": "Sms_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "smsIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "smsOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ParentId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "voiceSource",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "account",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/accounts/{id}/applications",\r    "title": "Gets account applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/applications -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getApplications",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/accounts/{id}/dispositions",\r    "title": "Gets account dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDispositions",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/accounts/{id}/interactions",\r    "title": "Gets account interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/interactions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getInteraction",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/accounts/{id}",\r    "title": "Update an existing Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAccounts",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/applications/{id}",\r    "title": "Deletes a Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/applications/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteApplications",\r    "group": "Sms_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsApplication/index.js",\r    "groupTitle": "Sms_Applications"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/applications/{id}",\r    "title": "Gets a single Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/applications/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowApplications",\r    "group": "Sms_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsApplication/index.js",\r    "groupTitle": "Sms_Applications"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/applications/{id}",\r    "title": "Update an existing Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateApplications",\r    "group": "Sms_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsApplication/index.js",\r    "groupTitle": "Sms_Applications"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/dispositions",\r    "title": "Creates a new Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDispositions",\r    "group": "Sms_Dispositions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsDisposition/index.js",\r    "groupTitle": "Sms_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/dispositions/{id}",\r    "title": "Deletes a Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/dispositions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDispositions",\r    "group": "Sms_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsDisposition/index.js",\r    "groupTitle": "Sms_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/dispositions/{id}",\r    "title": "Gets a single Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/dispositions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDispositions",\r    "group": "Sms_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsDisposition/index.js",\r    "groupTitle": "Sms_Dispositions"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/dispositions/{id}",\r    "title": "Update an existing Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDispositions",\r    "group": "Sms_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsDisposition/index.js",\r    "groupTitle": "Sms_Dispositions"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/interactions",\r    "title": "Creates a new Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateInteractions",\r    "group": "Sms_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "smsIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "smsOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ParentId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "voiceSource",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "account",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/interactions/{id}",\r    "title": "Deletes a Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteInteractions",\r    "group": "Sms_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/interactions/describe",\r    "title": "Gets table info about Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeInteractions",\r    "group": "Sms_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/interactions",\r    "title": "Gets a list of Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetInteractions",\r    "group": "Sms_Interactions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sms/interactions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sms/interactions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sms/interactions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sms/interactions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sms/interactions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/interactions/{id}",\r    "title": "Gets a single Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowInteractions",\r    "group": "Sms_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/interactions/{id}/messages",\r    "title": "Creates new messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addMessage",\r    "group": "Sms_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "body",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "errorcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "skebby_message_id",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "res_data",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "source",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "auto",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/interactions/{id}/messages",\r    "title": "Gets interaction messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions/{id}/messages -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getMessages",\r    "group": "Sms_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/interactions/{id}",\r    "title": "Update an existing Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateInteractions",\r    "group": "Sms_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/messages",\r    "title": "Creates a new Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMessages",\r    "group": "Sms_Messages",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "body",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "errorcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "skebby_message_id",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "res_data",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "source",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "auto",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsMessage/index.js",\r    "groupTitle": "Sms_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/messages/{id}",\r    "title": "Deletes a Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/messages/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMessages",\r    "group": "Sms_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsMessage/index.js",\r    "groupTitle": "Sms_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/messages/describe",\r    "title": "Gets table info about Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/messages/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeMessages",\r    "group": "Sms_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsMessage/index.js",\r    "groupTitle": "Sms_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/messages",\r    "title": "Gets a list of Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/messages -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMessages",\r    "group": "Sms_Messages",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sms/messages?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sms/messages?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sms/messages?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sms/messages?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sms/messages?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsMessage/index.js",\r    "groupTitle": "Sms_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/messages/{id}",\r    "title": "Gets a single Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/messages/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMessages",\r    "group": "Sms_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsMessage/index.js",\r    "groupTitle": "Sms_Messages"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/messages/{id}",\r    "title": "Update an existing Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMessages",\r    "group": "Sms_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsMessage/index.js",\r    "groupTitle": "Sms_Messages"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/queues/{id}/users",\r    "title": "Add agents to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddAgents",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/queues/{id}/teams",\r    "title": "Add teams to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddTeams",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/queues",\r    "title": "Creates a new Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateQueues",\r    "group": "Sms_Queues",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rrmemory\"",\r              "\"beepall\"",\r              "\"roundrobin\""\r            ],\r            "optional": true,\r            "field": "strategy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "lastAgent",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/queues/{id}",\r    "title": "Deletes a Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteQueues",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/queues/{id}/users",\r    "title": "Gets queue agents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id}/users -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/queues",\r    "title": "Gets a list of Queues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sms/queues?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sms/queues?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sms/queues?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sms/queues?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sms/queues?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/queues/{id}/teams",\r    "title": "Gets queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/queues/{id}/users",\r    "title": "Removes agents from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/queues/{id}",\r    "title": "Gets a single Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueues",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/queues/{id}",\r    "title": "Update an existing Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateQueues",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/session/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/session/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "Sms_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountaddress",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "joinAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "leaveAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "completeAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "complete",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"agent\""\r            ],\r            "optional": true,\r            "field": "completeReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsSessionReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "Sms_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountnumber",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "messageid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calledAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/session/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/session/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsSessionReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/session/reports/describe",\r    "title": "Gets table info about Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/session/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsSessionReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sms/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sms/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sms/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sms/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sms/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/session/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/session/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sms/session/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sms/session/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sms/session/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sms/session/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sms/session/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsSessionReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/session/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/session/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsSessionReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/session/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/session/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsSessionReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/sounds",\r    "title": "Gets a list of Sounds",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sounds -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSounds",\r    "group": "Sounds",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sounds?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sounds?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sounds?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sounds?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sounds?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/sound/index.js",\r    "groupTitle": "Sounds"\r  },\r  {\r    "type": "get",\r    "url": "/api/sounds/{id}",\r    "title": "Gets a single Sound",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sounds/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSounds",\r    "group": "Sounds",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/sound/index.js",\r    "groupTitle": "Sounds"\r  },\r  {\r    "type": "post",\r    "url": "/api/sounds",\r    "title": "Create a new sound",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sounds -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addSound",\r    "group": "Sounds",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/sound/index.js",\r    "groupTitle": "Sounds"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sounds/{id}",\r    "title": "Deletes a sound",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sounds/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "destroySound",\r    "group": "Sounds",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/sound/index.js",\r    "groupTitle": "Sounds"\r  },\r  {\r    "type": "get",\r    "url": "/api/sounds/{id}/download",\r    "title": "Download Sound",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sounds/{id}/download -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "download",\r    "group": "Sounds",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/sound/index.js",\r    "groupTitle": "Sounds"\r  },\r  {\r    "type": "put",\r    "url": "/api/sounds",\r    "title": "Update an existing new sound",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sounds -d '[\"name\": \"sound_name\", \"description\": \"sound_desc\"]' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSound",\r    "group": "Sounds",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/sound/index.js",\r    "groupTitle": "Sounds"\r  },\r  {\r    "type": "post",\r    "url": "/api/square/details/reports",\r    "title": "Creates a new Square Detail Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/details/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSquare_Detail_Reports",\r    "group": "Square_Details_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "node",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "data",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "project_name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callerid",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReportDetail/index.js",\r    "groupTitle": "Square_Details_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/square/details/reports/{id}",\r    "title": "Deletes a Square Detail Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/details/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSquare_Detail_Reports",\r    "group": "Square_Details_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReportDetail/index.js",\r    "groupTitle": "Square_Details_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/details/reports/describe",\r    "title": "Gets table info about Square Detail Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/details/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeSquare_Detail_Reports",\r    "group": "Square_Details_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReportDetail/index.js",\r    "groupTitle": "Square_Details_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/details/reports",\r    "title": "Gets a list of Square Detail Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/details/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSquare_Detail_Reports",\r    "group": "Square_Details_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/square/details/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/square/details/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/square/details/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/square/details/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/square/details/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReportDetail/index.js",\r    "groupTitle": "Square_Details_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/details/reports/{id}",\r    "title": "Gets a single Square Detail Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/details/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSquare_Detail_Reports",\r    "group": "Square_Details_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReportDetail/index.js",\r    "groupTitle": "Square_Details_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/square/details/reports/{id}",\r    "title": "Update an existing Square Detail Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/details/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSquare_Detail_Reports",\r    "group": "Square_Details_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReportDetail/index.js",\r    "groupTitle": "Square_Details_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/square/odbc",\r    "title": "Creates a new ODBC",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/odbc -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateODBCs",\r    "group": "Square_ODBC",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dsn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareOdbc/index.js",\r    "groupTitle": "Square_ODBC"\r  },\r  {\r    "type": "delete",\r    "url": "/api/square/odbc/{id}",\r    "title": "Deletes a ODBC",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/odbc/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteODBCs",\r    "group": "Square_ODBC",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareOdbc/index.js",\r    "groupTitle": "Square_ODBC"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/odbc",\r    "title": "Gets a list of ODBCs",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/odbc -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetODBCs",\r    "group": "Square_ODBC",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/square/odbc?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/square/odbc?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/square/odbc?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/square/odbc?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/square/odbc?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareOdbc/index.js",\r    "groupTitle": "Square_ODBC"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/odbc/{id}",\r    "title": "Gets a single ODBC",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/odbc/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowODBCs",\r    "group": "Square_ODBC",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareOdbc/index.js",\r    "groupTitle": "Square_ODBC"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/odbc/{id}/test",\r    "title": "Test Odbc",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/odbc/{id}/test -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "test",\r    "group": "Square_ODBC",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareOdbc/index.js",\r    "groupTitle": "Square_ODBC"\r  },\r  {\r    "type": "put",\r    "url": "/api/square/odbc/{id}",\r    "title": "Update an existing ODBC",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/odbc/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateODBCs",\r    "group": "Square_ODBC",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareOdbc/index.js",\r    "groupTitle": "Square_ODBC"\r  },\r  {\r    "type": "post",\r    "url": "/api/square/projects",\r    "title": "Creates a new Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/projects -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateProjects",\r    "group": "Square_Projects",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "notes",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "preproduction",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "production",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareProject/index.js",\r    "groupTitle": "Square_Projects"\r  },\r  {\r    "type": "delete",\r    "url": "/api/square/projects/{id}",\r    "title": "Deletes a Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/projects/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteProjects",\r    "group": "Square_Projects",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareProject/index.js",\r    "groupTitle": "Square_Projects"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/projects",\r    "title": "Gets a list of Projects",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/projects -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetProjects",\r    "group": "Square_Projects",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/square/projects?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/square/projects?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/square/projects?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/square/projects?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/square/projects?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareProject/index.js",\r    "groupTitle": "Square_Projects"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/projects/{id}",\r    "title": "Gets a single Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/projects/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowProjects",\r    "group": "Square_Projects",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareProject/index.js",\r    "groupTitle": "Square_Projects"\r  },\r  {\r    "type": "put",\r    "url": "/api/square/projects/{id}",\r    "title": "Update an existing Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/projects/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateProjects",\r    "group": "Square_Projects",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareProject/index.js",\r    "groupTitle": "Square_Projects"\r  },\r  {\r    "type": "post",\r    "url": "/api/square/recordings",\r    "title": "Creates a new Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/recordings -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateRecordings",\r    "group": "Square_Recordings",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callerid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "extension",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dnid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "projectName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "saveName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "filename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "savePath",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareRecording/index.js",\r    "groupTitle": "Square_Recordings"\r  },\r  {\r    "type": "delete",\r    "url": "/api/square/recordings/{id}",\r    "title": "Deletes a Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/recordings/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteRecordings",\r    "group": "Square_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareRecording/index.js",\r    "groupTitle": "Square_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/recordings",\r    "title": "Gets a list of Recordings",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/recordings -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetRecordings",\r    "group": "Square_Recordings",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/square/recordings?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/square/recordings?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/square/recordings?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/square/recordings?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/square/recordings?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareRecording/index.js",\r    "groupTitle": "Square_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/recordings/{id}",\r    "title": "Gets a single Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/recordings/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowRecordings",\r    "group": "Square_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareRecording/index.js",\r    "groupTitle": "Square_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/recordings/{id}/download",\r    "title": "Download Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/recordings/{id}/download -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "download",\r    "group": "Square_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareRecording/index.js",\r    "groupTitle": "Square_Recordings"\r  },\r  {\r    "type": "put",\r    "url": "/api/square/recordings/{id}",\r    "title": "Update an existing Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/recordings/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateRecordings",\r    "group": "Square_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareRecording/index.js",\r    "groupTitle": "Square_Recordings"\r  },\r  {\r    "type": "post",\r    "url": "/api/square/reports",\r    "title": "Creates a new Square Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSquare_Reports",\r    "group": "Square_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "network",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "network_script",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "request",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "language",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "version",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callerid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callingpres",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callingani2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callington",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callingtns",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dnid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rdnis",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "extension",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "enhanced",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "threadid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "project_name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "joinAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "leaveAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReport/index.js",\r    "groupTitle": "Square_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/square/reports/{id}",\r    "title": "Deletes a Square Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSquare_Reports",\r    "group": "Square_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReport/index.js",\r    "groupTitle": "Square_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/reports/describe",\r    "title": "Gets table info about Square Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeSquare_Reports",\r    "group": "Square_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReport/index.js",\r    "groupTitle": "Square_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/reports",\r    "title": "Gets a list of Square Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSquare_Reports",\r    "group": "Square_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/square/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/square/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/square/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/square/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/square/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReport/index.js",\r    "groupTitle": "Square_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/reports/{id}",\r    "title": "Gets a single Square Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSquare_Reports",\r    "group": "Square_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReport/index.js",\r    "groupTitle": "Square_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/square/reports/{id}",\r    "title": "Update an existing Square Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSquare_Reports",\r    "group": "Square_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReport/index.js",\r    "groupTitle": "Square_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/sugarcrm/configurations",\r    "title": "Creates a new SugarCRM Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSugarCRM_Configurations",\r    "group": "SugarCRM_Configurations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "SugarCRM_Configurations"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/sugarcrm/configurations/{id}",\r    "title": "Deletes a SugarCRM Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSugarCRM_Configurations",\r    "group": "SugarCRM_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "SugarCRM_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/configurations",\r    "title": "Gets a list of SugarCRM Configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSugarCRM_Configurations",\r    "group": "SugarCRM_Configurations",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/sugarcrm/configurations?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/sugarcrm/configurations?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/sugarcrm/configurations?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/sugarcrm/configurations?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/sugarcrm/configurations?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "SugarCRM_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/configurations/{id}",\r    "title": "Gets a single SugarCRM Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSugarCRM_Configurations",\r    "group": "SugarCRM_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "SugarCRM_Configurations"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/sugarcrm/configurations/{id}",\r    "title": "Update an existing SugarCRM Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSugarCRM_Configurations",\r    "group": "SugarCRM_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "SugarCRM_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/sugarcrm/accounts",\r    "title": "Creates a new Sugarcrm Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSugarcrm_Accounts",\r    "group": "Sugarcrm_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remoteUri",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "serverUrl",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/sugarcrm/accounts/{id}",\r    "title": "Deletes a Sugarcrm Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSugarcrm_Accounts",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/accounts",\r    "title": "Gets a list of Sugarcrm Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSugarcrm_Accounts",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/sugarcrm/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/sugarcrm/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/sugarcrm/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/sugarcrm/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/sugarcrm/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/accounts/{id}",\r    "title": "Gets a single Sugarcrm Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSugarcrm_Accounts",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/sugarcrm/accounts/{id}/configurations",\r    "title": "Creates new configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addConfiguration",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/accounts/{id}/configurations",\r    "title": "Gets account configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/configurations -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getConfigurations",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/accounts/{id}/fields",\r    "title": "Gets account fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/sugarcrm/accounts/{id}",\r    "title": "Update an existing Sugarcrm Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSugarcrm_Accounts",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/configurations/{id}/descriptions",\r    "title": "Gets configurations descriptions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/descriptions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDescriptions",\r    "group": "Sugarcrm_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "Sugarcrm_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/configurations/{id}/fields",\r    "title": "Gets configurations fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Sugarcrm_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "Sugarcrm_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/configurations/{id}/subjects",\r    "title": "Gets configurations subjects",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/subjects -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getSubjects",\r    "group": "Sugarcrm_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "Sugarcrm_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/sugarcrm/fields",\r    "title": "Creates a new Sugarcrm Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSugarcrm_Fields",\r    "group": "Sugarcrm_Fields",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\"",\r              "\"keyValue\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "content",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "key",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\""\r            ],\r            "optional": true,\r            "field": "keyType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "keyContent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "idField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "nameField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "customField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "variableName",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmField/index.js",\r    "groupTitle": "Sugarcrm_Fields"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/sugarcrm/fields/{id}",\r    "title": "Deletes a Sugarcrm Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSugarcrm_Fields",\r    "group": "Sugarcrm_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmField/index.js",\r    "groupTitle": "Sugarcrm_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/fields",\r    "title": "Gets a list of Sugarcrm Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/fields -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSugarcrm_Fields",\r    "group": "Sugarcrm_Fields",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/sugarcrm/fields?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/sugarcrm/fields?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/sugarcrm/fields?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/sugarcrm/fields?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/sugarcrm/fields?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmField/index.js",\r    "groupTitle": "Sugarcrm_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/fields/{id}",\r    "title": "Gets a single Sugarcrm Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSugarcrm_Fields",\r    "group": "Sugarcrm_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmField/index.js",\r    "groupTitle": "Sugarcrm_Fields"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/sugarcrm/fields/{id}",\r    "title": "Update an existing Sugarcrm Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSugarcrm_Fields",\r    "group": "Sugarcrm_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmField/index.js",\r    "groupTitle": "Sugarcrm_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/system",\r    "title": "Gets system information",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/system -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSystemInformation",\r    "group": "System_Information",\r    "description": "<p>Motion returns the system information.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/system/index.js",\r    "groupTitle": "System_Information"\r  },\r  {\r    "type": "post",\r    "url": "/api/tags",\r    "title": "Creates a new Tag",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/tags -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateTags",\r    "group": "Tags",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/tag/index.js",\r    "groupTitle": "Tags"\r  },\r  {\r    "type": "delete",\r    "url": "/api/tags/{id}",\r    "title": "Deletes a Tag",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/tags/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteTags",\r    "group": "Tags",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/tag/index.js",\r    "groupTitle": "Tags"\r  },\r  {\r    "type": "get",\r    "url": "/api/tags",\r    "title": "Gets a list of Tags",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/tags -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTags",\r    "group": "Tags",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/tags?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/tags?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/tags?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/tags?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/tags?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/tag/index.js",\r    "groupTitle": "Tags"\r  },\r  {\r    "type": "get",\r    "url": "/api/tags/{id}",\r    "title": "Gets a single Tag",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/tags/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowTags",\r    "group": "Tags",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/tag/index.js",\r    "groupTitle": "Tags"\r  },\r  {\r    "type": "put",\r    "url": "/api/tags/{id}",\r    "title": "Update an existing Tag",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/tags/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateTags",\r    "group": "Tags",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/tag/index.js",\r    "groupTitle": "Tags"\r  },\r  {\r    "type": "post",\r    "url": "/api/teams/{id}/queues",\r    "title": "Add queues to a team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id}/queues -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddQueues",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "post",\r    "url": "/api/teams",\r    "title": "Creates a new Team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateTeams",\r    "group": "Teams",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/teams/{id}",\r    "title": "Deletes a Team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "get",\r    "url": "/api/teams/{id}/users",\r    "title": "Gets agents from team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id}/users -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "get",\r    "url": "/api/teams/{id}/queues?channel={channel}",\r    "title": "Gets Queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id}/queues?channel={channel} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "get",\r    "url": "/api/teams",\r    "title": "Gets a list of Teams",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Teams",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/teams?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/teams?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/teams?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/teams?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/teams?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/teams/{id}/users",\r    "title": "Removes agents from a team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/teams/{id}/queues",\r    "title": "Remove queues to a team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id}/queues?channel=voice&ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveQueues",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/queues/{id}/teams",\r    "title": "Remove teams from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/queues/{id}/teams",\r    "title": "Remove teams from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/queues/{id}/teams",\r    "title": "Remove teams from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/queues/{id}/teams",\r    "title": "Remove teams from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/queues/{id}/teams",\r    "title": "Remove teams from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/queues/{id}/teams",\r    "title": "Remove teams from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "get",\r    "url": "/api/teams/{id}",\r    "title": "Gets a single Team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "post",\r    "url": "/api/teams/{id}/users",\r    "title": "Adds agents to a team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id}/users -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addAgents",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "put",\r    "url": "/api/teams/{id}",\r    "title": "Update an existing Team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "post",\r    "url": "/api/templates",\r    "title": "Creates a new Template",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/templates -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateTemplates",\r    "group": "Templates",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "html",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/template/index.js",\r    "groupTitle": "Templates"\r  },\r  {\r    "type": "delete",\r    "url": "/api/templates/{id}",\r    "title": "Deletes a Template",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/templates/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteTemplates",\r    "group": "Templates",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/template/index.js",\r    "groupTitle": "Templates"\r  },\r  {\r    "type": "get",\r    "url": "/api/templates",\r    "title": "Gets a list of Templates",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/templates -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTemplates",\r    "group": "Templates",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/templates?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/templates?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/templates?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/templates?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/templates?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/template/index.js",\r    "groupTitle": "Templates"\r  },\r  {\r    "type": "get",\r    "url": "/api/templates/{id}",\r    "title": "Gets a single Template",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/templates/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowTemplates",\r    "group": "Templates",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/template/index.js",\r    "groupTitle": "Templates"\r  },\r  {\r    "type": "put",\r    "url": "/api/templates/{id}",\r    "title": "Update an existing Template",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/templates/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateTemplates",\r    "group": "Templates",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/template/index.js",\r    "groupTitle": "Templates"\r  },\r  {\r    "type": "post",\r    "url": "/api/triggers",\r    "title": "Creates a new Trigger",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateTriggers",\r    "group": "Triggers",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "delete",\r    "url": "/api/triggers/{id}",\r    "title": "Deletes a Trigger",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteTriggers",\r    "group": "Triggers",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "get",\r    "url": "/api/triggers",\r    "title": "Gets a list of Triggers",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTriggers",\r    "group": "Triggers",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/triggers?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/triggers?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/triggers?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/triggers?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/triggers?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "get",\r    "url": "/api/triggers/{id}",\r    "title": "Gets a single Trigger",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowTriggers",\r    "group": "Triggers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "post",\r    "url": "/api/triggers/{id}/actions",\r    "title": "Creates new actions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id}/actions -d '{\"action\": \"contactManager\",\"data1\": \"1\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addAction",\r    "group": "Triggers",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "action",\r            "description": "<p>Allowed values: contactManager, integration, motionbar, jscripty, urlForward, browser</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": "<p>contactManager[ListId], integration[intName(zendesk)], motionbar[Popup(0),URL(1),WinApp(2)], urlForward[GET,POST], browser[TemplateId(0),URL(1)]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": "<p>integration[AccountId], motionbar[TemplateId,URL,WinAppPath], urlForward[URL]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": "<p>motionbar[NULL,NULL,WinAppArguments]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "post",\r    "url": "/api/triggers/{id}/all_conditions",\r    "title": "Creates a new \"AND\"condition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id}/all_conditions -d '{\"field\": \"name\", \"operator\": \"equal\", \"value\": \"John Doe\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addAllCondition",\r    "group": "Triggers",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "field",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "operator",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "value",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "post",\r    "url": "/api/triggers/{id}/any_conditions",\r    "title": "Creates a new \"OR\"condition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id}/any_conditions -d '{\"field\": \"name\", \"operator\": \"equal\", \"value\": \"John Doe\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addAnyCondition",\r    "group": "Triggers",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "field",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "operator",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "value",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "get",\r    "url": "/api/triggers/{id}/actions",\r    "title": "Gets Trigger Actions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id}/actions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getActions",\r    "group": "Triggers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "get",\r    "url": "/api/triggers/{id}/all_conditions",\r    "title": "Gets \"AND\" Trigger Conditions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id}/all_conditions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getAllConditions",\r    "group": "Triggers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "get",\r    "url": "/api/triggers/{id}/any_conditions",\r    "title": "Gets \"OR\" Trigger Conditions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id}/any_conditions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getAnyConditions",\r    "group": "Triggers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "put",\r    "url": "/api/triggers/{id}",\r    "title": "Update an existing Trigger",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateTriggers",\r    "group": "Triggers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "post",\r    "url": "/api/trunks",\r    "title": "Create a new trunk",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/trunks -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Create",\r    "group": "Trunks",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"friend\"",\r              "\"user\"",\r              "\"peer\""\r            ],\r            "optional": false,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"ALLOWED_NOT_SCREENED\"",\r              "\"ALLOWED_PASSED_SCREEN\"",\r              "\"ALLOWED_FAILED_SCREEN\"",\r              "\"ALLOWED\"",\r              "\"PROHIB_NOT_SCREENED\"",\r              "\"PROHIB_PASSED_SCREEN\"",\r              "\"PROHIB_FAILED_SCREEN\"",\r              "\"PROHIB\""\r            ],\r            "optional": true,\r            "field": "callingpres",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "deny",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "permit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "secret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "md5secret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remotesecret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transport",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;udp&quot;, &quot;tcp&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rfc2833\"",\r              "\"info\"",\r              "\"shortinfo\"",\r              "\"inband\"",\r              "\"auto\""\r            ],\r            "optional": true,\r            "field": "dtmfmode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"nonat\"",\r              "\"update\"",\r              "\"outgoing\""\r            ],\r            "optional": true,\r            "field": "directmedia",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "directrtpsetup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "directmediapermit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "directmediadeny",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "nat",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;force_rport&quot;, &quot;comedia&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "namedcallgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "pickupgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "namedpickupgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "language",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "tonezone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disallow",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "allow",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;alaw&quot;, &quot;ulaw&quot;, &quot;gsm&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "autoframing",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "insecure",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;port&quot;, &quot;invite&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "trustrpid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "trust_id_outbound",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"never\""\r            ],\r            "optional": true,\r            "field": "progressinband",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "promiscredir",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "useclientcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "setvar",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callerid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "amaflags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "callcounter",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "busylevel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "allowoverlap",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "allowsubscribe",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "allowtransfer",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "ignoresdpversion",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subscribecontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "template",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"always\""\r            ],\r            "optional": true,\r            "field": "videosupport",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "maxcallbitrate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "rfc2833compensate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mailbox",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"accept\"",\r              "\"refuse\"",\r              "\"originate\""\r            ],\r            "optional": true,\r            "field": "session_timers",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "session_expires",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "session_minse",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"uac\"",\r              "\"uas\""\r            ],\r            "optional": true,\r            "field": "session_refresher",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "t38pt_usertpsource",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "regexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fromdomain",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fromuser",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "port",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "qualify",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "keepalive",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "defaultip",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "defaultuser",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rtptimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rtpholdtimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rtpkeepalive",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "sendrpid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "outboundproxy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callbackextension",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timert1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timerb",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "qualifyfreq",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contactpermit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contactdeny",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contactacl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "unsolicited_mailbox",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "use_q850_reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "maxforwards",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "encryption",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "avpf",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "force_avp",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "icesupport",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "dtlsenable",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"fingerprint\"",\r              "\"certificate\""\r            ],\r            "optional": true,\r            "field": "dtlsverify",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dtlsrekey",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscertfile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlsprivatekey",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscipher",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscafile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscapath",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"active\"",\r              "\"passive\"",\r              "\"actpass\""\r            ],\r            "optional": true,\r            "field": "dtlssetup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlsfingerprint",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "usereqphone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "recordonfeature",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "recordofffeature",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "call_limit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "registertrying",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "subscribemwi",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "vmexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mohinterpret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mohsuggest",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "parkinglot",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "host",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"nonat\"",\r              "\"update\"",\r              "\"update,nonat\""\r            ],\r            "optional": true,\r            "field": "canreinvite",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "registry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "otherFields",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": false,\r            "field": "active",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trunk/index.js",\r    "groupTitle": "Trunks"\r  },\r  {\r    "type": "delete",\r    "url": "/api/trunks/{id}",\r    "title": "Deletes a trunk",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "Delete",\r    "group": "Trunks",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trunk/index.js",\r    "groupTitle": "Trunks"\r  },\r  {\r    "type": "get",\r    "url": "/api/trunks",\r    "title": "Gets a list of Trunks",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/trunks -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTrunks",\r    "group": "Trunks",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/trunks?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/trunks?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/trunks?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/trunks?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/trunks?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/trunk/index.js",\r    "groupTitle": "Trunks"\r  },\r  {\r    "type": "get",\r    "url": "/api/trunks/{id}",\r    "title": "Gets a single Trunk",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowTrunks",\r    "group": "Trunks",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trunk/index.js",\r    "groupTitle": "Trunks"\r  },\r  {\r    "type": "put",\r    "url": "/api/trunks/{id}",\r    "title": "Update an existing trunk",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "Update",\r    "group": "Trunks",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trunk/index.js",\r    "groupTitle": "Trunks"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/contacts",\r    "title": "Add contacts to a user",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/contacts -d '{\"ids\": [1,2]}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddContacts",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/queues",\r    "title": "Add queues to an agent",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/queues -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddQueues",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/create_many",\r    "title": "Creates many Users",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/create_many -d '[{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}]' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "BulkCreateUsers",\r    "group": "Users",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": "<p>The name of the user</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "fullname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "email",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"admin\"",\r              "\"user\"",\r              "\"agent\"",\r              "\"telephone\""\r            ],\r            "optional": false,\r            "field": "role",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "provider",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "internal",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "salt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mobile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "address",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "zipcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "userpic",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "city",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "country",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "online",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastLoginAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "voicePause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "chatPause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "mailPause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "faxPause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "smsPause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "openchannelPause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "pauseType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastPauseAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "chatCapacity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "mailCapacity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "faxCapacity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "smsCapacity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "openchannelCapacity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "phoneBarAutoAnswer",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "phoneBarEnableSettings",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "phoneBarListenPort",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "phoneBarExpires",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "phoneBarRemoteControl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "phoneBarRemoteControlPort",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "phoneBarEnableRecording",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "phoneBarRingInUse",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "chanspy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "host",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "ipaddr",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "port",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "regseconds",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fullcontact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "regserver",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "useragent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "lastms",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"friend\"",\r              "\"user\"",\r              "\"peer\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"ALLOWED_NOT_SCREENED\"",\r              "\"ALLOWED_PASSED_SCREEN\"",\r              "\"ALLOWED_FAILED_SCREEN\"",\r              "\"ALLOWED\"",\r              "\"PROHIB_NOT_SCREENED\"",\r              "\"PROHIB_PASSED_SCREEN\"",\r              "\"PROHIB_FAILED_SCREEN\"",\r              "\"PROHIB\""\r            ],\r            "optional": true,\r            "field": "callingpres",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "deny",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "permit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "secret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "md5secret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remotesecret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transport",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;udp&quot;, &quot;tcp&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rfc2833\"",\r              "\"info\"",\r              "\"shortinfo\"",\r              "\"inband\"",\r              "\"auto\""\r            ],\r            "optional": true,\r            "field": "dtmfmode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"nonat\"",\r              "\"update\"",\r              "\"outgoing\""\r            ],\r            "optional": true,\r            "field": "directmedia",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "directrtpsetup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "directmediapermit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "directmediadeny",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "nat",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;force_rport&quot;, &quot;comedia&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "namedcallgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "pickupgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "namedpickupgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "language",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "tonezone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "disallow",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "allow",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;alaw&quot;, &quot;ulaw&quot;, &quot;gsm&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "autoframing",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "insecure",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;port&quot;, &quot;invite&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "trustrpid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "trust_id_outbound",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"never\""\r            ],\r            "optional": true,\r            "field": "progressinband",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "promiscredir",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "useclientcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "setvar",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callerid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "amaflags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "callcounter",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "busylevel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "allowoverlap",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "allowsubscribe",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "allowtransfer",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "ignoresdpversion",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subscribecontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "template",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"always\""\r            ],\r            "optional": true,\r            "field": "videosupport",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "maxcallbitrate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "rfc2833compensate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mailbox",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"accept\"",\r              "\"refuse\"",\r              "\"originate\""\r            ],\r            "optional": true,\r            "field": "session_timers",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "session_expires",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "session_minse",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"uac\"",\r              "\"uas\""\r            ],\r            "optional": true,\r            "field": "session_refresher",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "t38pt_usertpsource",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "regexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fromdomain",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fromuser",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "qualify",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "keepalive",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "defaultip",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "defaultuser",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rtptimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rtpholdtimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rtpkeepalive",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "sendrpid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "outboundproxy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callbackextension",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timert1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timerb",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "qualifyfreq",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contactpermit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contactdeny",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contactacl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "unsolicited_mailbox",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "use_q850_reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "maxforwards",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "encryption",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "avpf",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "force_avp",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "icesupport",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "dtlsenable",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"fingerprint\"",\r              "\"certificate\""\r            ],\r            "optional": true,\r            "field": "dtlsverify",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dtlsrekey",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscertfile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlsprivatekey",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscipher",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscafile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscapath",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"active\"",\r              "\"passive\"",\r              "\"actpass\""\r            ],\r            "optional": true,\r            "field": "dtlssetup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlsfingerprint",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "usereqphone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "recordonfeature",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "recordofffeature",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "call_limit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "registertrying",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "subscribemwi",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "vmexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mohinterpret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mohsuggest",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "parkinglot",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"nonat\"",\r              "\"update\"",\r              "\"update,nonat\""\r            ],\r            "optional": true,\r            "field": "canreinvite",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "loginInPause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "resetPasswordToken",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "resetPasswordExpires",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "showWebBar",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "permissions",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "delete",\r    "url": "/api/users/destroy_many?ids={ids}",\r    "title": "Deletes many Users",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/destroy_many?ids=1&ids=2&ids=3 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "BulkDeleteUsers",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "put",\r    "url": "/api/users/{id}/password",\r    "title": "Change user password",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/password -d '{\"oldPassword\": \"1234\", \"newPassword\": \"5678\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "ChangePwd",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users",\r    "title": "Create a new user",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Create",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "delete",\r    "url": "/api/users/{id}",\r    "title": "Deletes a User",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteUsers",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/describe",\r    "title": "Gets table info about Users",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeUsers",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/contacts",\r    "title": "GetContacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/contacts  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetContacts",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/lists",\r    "title": "GetLists",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/lists  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetLists",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/queues?channel={channel}",\r    "title": "Gets Queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/queues/?channel={channel} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/recordings",\r    "title": "GetRecordings",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/recordings  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetRecordings",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/teams",\r    "title": "GetTeams",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/teams  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users",\r    "title": "Gets a list of Users",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetUsers",\r    "group": "Users",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/users?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/users?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/users?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/users?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/users?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/queues_rt",\r    "title": "GetVoiceQueuesRt",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/queues_rt  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetVoiceQueuesRt",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/login",\r    "title": "Login",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/login  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "Login",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/logout",\r    "title": "Logout",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/logout  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "Logout",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/pause",\r    "title": "Pause",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/pause  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "Pause",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "delete",\r    "url": "/api/users/{id}/queues",\r    "title": "Remove queues to an agent",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/queues?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveQueues",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}",\r    "title": "Gets a single User",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowUsers",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/unpause",\r    "title": "Unpause",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/unpause  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "Unpause",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/avatar",\r    "title": "Add avatar",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/avatar -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addAvatar",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/avatar",\r    "title": "Get avatar",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/avatar -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getAvatar",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "put",\r    "url": "/api/users/{id}",\r    "title": "Update an existing User",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateUsers",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/variables",\r    "title": "Creates a new Variable",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/variables -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateVariables",\r    "group": "Variables",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/variable/index.js",\r    "groupTitle": "Variables"\r  },\r  {\r    "type": "delete",\r    "url": "/api/variables/{id}",\r    "title": "Deletes a Variable",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/variables/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteVariables",\r    "group": "Variables",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/variable/index.js",\r    "groupTitle": "Variables"\r  },\r  {\r    "type": "get",\r    "url": "/api/variables",\r    "title": "Gets a list of Variables",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/variables -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetVariables",\r    "group": "Variables",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/variables?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/variables?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/variables?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/variables?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/variables?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/variable/index.js",\r    "groupTitle": "Variables"\r  },\r  {\r    "type": "get",\r    "url": "/api/variables/{id}",\r    "title": "Gets a single Variable",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/variables/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowVariables",\r    "group": "Variables",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/variable/index.js",\r    "groupTitle": "Variables"\r  },\r  {\r    "type": "put",\r    "url": "/api/variables/{id}",\r    "title": "Update an existing Variable",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/variables/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateVariables",\r    "group": "Variables",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/variable/index.js",\r    "groupTitle": "Variables"\r  },\r  {\r    "type": "get",\r    "url": "/api/version/fetch",\r    "title": "Fetch git version",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/version/fetch -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "FetchVersion",\r    "group": "Version",\r    "description": "<p>Motion run the following command: git fetch origin master</p>",\r    "version": "0.0.0",\r    "filename": "server/api/version/index.js",\r    "groupTitle": "Version"\r  },\r  {\r    "type": "get",\r    "url": "/api/version",\r    "title": "Gets version",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/version -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetVersion",\r    "group": "Version",\r    "description": "<p>Motion returns the current and latest motion version.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/version/index.js",\r    "groupTitle": "Version"\r  },\r  {\r    "type": "get",\r    "url": "/api/version/pull",\r    "title": "Pull git version",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/version/pull -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "PullVersion",\r    "group": "Version",\r    "description": "<p>Motion run the following command: git pull</p>",\r    "version": "0.0.0",\r    "filename": "server/api/version/index.js",\r    "groupTitle": "Version"\r  },\r  {\r    "type": "get",\r    "url": "/api/version/reset",\r    "title": "Reset git version",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/version/reset -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ResetVersion",\r    "group": "Version",\r    "description": "<p>Motion run the following command: git reset --hard FETCH_HEAD</p>",\r    "version": "0.0.0",\r    "filename": "server/api/version/index.js",\r    "groupTitle": "Version"\r  },\r  {\r    "type": "get",\r    "url": "/api/version/restart",\r    "title": "Restart motion2 after update",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/version/restart -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RestartVersion",\r    "group": "Version",\r    "description": "<p>Motion run the following command: pm2 restart motion</p>",\r    "version": "0.0.0",\r    "filename": "server/api/version/index.js",\r    "groupTitle": "Version"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/agents/reports/describe",\r    "title": "Gets table info about Agent Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/agents/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeAgent_Reports",\r    "group": "Voice_Agent_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceAgentReport/index.js",\r    "groupTitle": "Voice_Agent_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/agents/reports",\r    "title": "Gets a list of Agent Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/agents/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgent_Reports",\r    "group": "Voice_Agent_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/agents/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/agents/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/agents/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/agents/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/agents/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceAgentReport/index.js",\r    "groupTitle": "Voice_Agent_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/agents/reports/{id}",\r    "title": "Gets a single Agent Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/agents/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAgent_Reports",\r    "group": "Voice_Agent_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceAgentReport/index.js",\r    "groupTitle": "Voice_Agent_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/calls/reports/describe",\r    "title": "Gets table info about Call Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/calls/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeCall_Reports",\r    "group": "Voice_Call_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceCallReport/index.js",\r    "groupTitle": "Voice_Call_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/calls/reports",\r    "title": "Gets a list of Call Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/calls/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetCall_Reports",\r    "group": "Voice_Call_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/calls/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/calls/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/calls/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/calls/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/calls/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceCallReport/index.js",\r    "groupTitle": "Voice_Call_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/calls/reports/{id}",\r    "title": "Gets a single Call Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/calls/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowCall_Reports",\r    "group": "Voice_Call_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceCallReport/index.js",\r    "groupTitle": "Voice_Call_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/calls/reports/{id}",\r    "title": "Update a single cdr",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/calls/reports/{id} -d '{\"userDispositio\": \"OK\"}' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "update",\r    "group": "Voice_Call_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceCallReport/index.js",\r    "groupTitle": "Voice_Call_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/chanspy",\r    "title": "Creates a new ChanSpy",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/chanspy -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateChanSpy",\r    "group": "Voice_ChanSpy",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "prefix",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "options",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "auth",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "record",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "recordingFormat",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceChanSpy/index.js",\r    "groupTitle": "Voice_ChanSpy"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/chanspy/{id}",\r    "title": "Deletes a ChanSpy",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/chanspy/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteChanSpy",\r    "group": "Voice_ChanSpy",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceChanSpy/index.js",\r    "groupTitle": "Voice_ChanSpy"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/chanspy",\r    "title": "Gets a list of ChanSpy",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/chanspy -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetChanSpy",\r    "group": "Voice_ChanSpy",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/chanspy?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/chanspy?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/chanspy?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/chanspy?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/chanspy?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceChanSpy/index.js",\r    "groupTitle": "Voice_ChanSpy"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/chanspy/{id}",\r    "title": "Gets a single ChanSpy",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/chanspy/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowChanSpy",\r    "group": "Voice_ChanSpy",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceChanSpy/index.js",\r    "groupTitle": "Voice_ChanSpy"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/chanspy/{id}",\r    "title": "Update an existing ChanSpy",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/chanspy/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateChanSpy",\r    "group": "Voice_ChanSpy",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceChanSpy/index.js",\r    "groupTitle": "Voice_ChanSpy"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/contexts",\r    "title": "Create a new context",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/contexts -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Create",\r    "group": "Voice_Contexts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "defaultEntry",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceContext/index.js",\r    "groupTitle": "Voice_Contexts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/contexts/{id}",\r    "title": "Deletes a context",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "Delete",\r    "group": "Voice_Contexts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceContext/index.js",\r    "groupTitle": "Voice_Contexts"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/contexts",\r    "title": "Gets a list of Contexts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/contexts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetContexts",\r    "group": "Voice_Contexts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/contexts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/contexts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/contexts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/contexts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/contexts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceContext/index.js",\r    "groupTitle": "Voice_Contexts"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/contexts/{id}",\r    "title": "Gets a single Context",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowContexts",\r    "group": "Voice_Contexts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceContext/index.js",\r    "groupTitle": "Voice_Contexts"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/contexts/{id}",\r    "title": "Update an existing context",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "Update",\r    "group": "Voice_Contexts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceContext/index.js",\r    "groupTitle": "Voice_Contexts"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/dials/reports/describe",\r    "title": "Gets table info about Dial Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dials/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeDial_Reports",\r    "group": "Voice_Dial_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDialReport/index.js",\r    "groupTitle": "Voice_Dial_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/dials/reports",\r    "title": "Gets a list of Dial Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dials/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetDial_Reports",\r    "group": "Voice_Dial_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/dials/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/dials/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/dials/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/dials/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/dials/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDialReport/index.js",\r    "groupTitle": "Voice_Dial_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/dials/reports/{id}",\r    "title": "Gets a single Dial Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dials/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDial_Reports",\r    "group": "Voice_Dial_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDialReport/index.js",\r    "groupTitle": "Voice_Dial_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/dispositions",\r    "title": "Creates a new Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDispositions",\r    "group": "Voice_Dispositions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDisposition/index.js",\r    "groupTitle": "Voice_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/dispositions/{id}",\r    "title": "Deletes a Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dispositions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDispositions",\r    "group": "Voice_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDisposition/index.js",\r    "groupTitle": "Voice_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/dispositions",\r    "title": "Gets a list of Dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dispositions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetDispositions",\r    "group": "Voice_Dispositions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/dispositions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/dispositions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/dispositions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/dispositions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/dispositions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDisposition/index.js",\r    "groupTitle": "Voice_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/dispositions/{id}",\r    "title": "Gets a single Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dispositions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDispositions",\r    "group": "Voice_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDisposition/index.js",\r    "groupTitle": "Voice_Dispositions"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/dispositions/{id}",\r    "title": "Update an existing Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDispositions",\r    "group": "Voice_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDisposition/index.js",\r    "groupTitle": "Voice_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/extensions/{id}",\r    "title": "Deletes a Extension",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/extensions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteExtensions",\r    "group": "Voice_Extensions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceExtension/index.js",\r    "groupTitle": "Voice_Extensions"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/extensions",\r    "title": "Gets a list of Extensions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/extensions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetExtensions",\r    "group": "Voice_Extensions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/extensions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/extensions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/extensions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/extensions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/extensions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceExtension/index.js",\r    "groupTitle": "Voice_Extensions"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/extensions/{id}",\r    "title": "Gets a single Extension",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/extensions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowExtensions",\r    "group": "Voice_Extensions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceExtension/index.js",\r    "groupTitle": "Voice_Extensions"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/extensions",\r    "title": "Create new applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/extensions/{id}/applications -d '[{\"app\": \"Set\", \"appdata\": \"CALLERDNID=${CALLER(dnid)}\"}]' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addApplications",\r    "group": "Voice_Extensions",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceExtension/index.js",\r    "groupTitle": "Voice_Extensions"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/extensions",\r    "title": "Create an extension",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/extensions -d '{\"exten\": \"12345\", \"context\": \"from-custom\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "create",\r    "group": "Voice_Extensions",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceExtension/index.js",\r    "groupTitle": "Voice_Extensions"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/extensions/{id}",\r    "title": "Update an extension",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/extensions/{id} -d '{\"exten\": \"12345\", \"context\": \"from-custom\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "update",\r    "group": "Voice_Extensions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceExtension/index.js",\r    "groupTitle": "Voice_Extensions"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/mohs",\r    "title": "Create a new a new MOH",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs -d '{\"name\": \"xmas_musics\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddMoh",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/mohs/{id}/sounds",\r    "title": "Add sound to MOH",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs/{id}/sounds -d '{\"id\": 1}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddSound",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/mohs/{id}",\r    "title": "Deletes an MOH",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DestroyMoh",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mohs",\r    "title": "Gets a list of Music On Holds",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMusic_On_Holds",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/mohs?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/mohs?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/mohs?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/mohs?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/mohs?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mohs/{id}/sounds",\r    "title": "Gets sounds from MOH",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs/{id}/sounds -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "GetSounds",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/mohs/{id}/sounds/{id2}",\r    "title": "Remove sound from MOH",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs/{id}/sounds/{id2} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveSound",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mohs/{id}",\r    "title": "Gets a single Music On Hold",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMusic_On_Holds",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/mohs/{id}",\r    "title": "Update an existing Music On Hold",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMusic_On_Holds",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/mails",\r    "title": "Creates a new Mail",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMails",\r    "group": "Voice_Mails",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "customer_id",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "mailbox",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fullname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "pager",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "tz",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "attach",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "saycid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callback",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "review",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "operator",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "envelope",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "sayduration",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "saydurationm",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "sendvoicemail",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "delete",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "nextaftercmd",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "forcename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "forcegreetings",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "hidefromdir",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "stamp",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "emailsubject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "emailbody",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "maxsecs",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "maxmsg",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMail/index.js",\r    "groupTitle": "Voice_Mails"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/mails/{id}",\r    "title": "Deletes a Mail",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMails",\r    "group": "Voice_Mails",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMail/index.js",\r    "groupTitle": "Voice_Mails"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mails",\r    "title": "Gets a list of Mails",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMails",\r    "group": "Voice_Mails",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/mails?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/mails?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/mails?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/mails?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/mails?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMail/index.js",\r    "groupTitle": "Voice_Mails"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mails/{id}",\r    "title": "Gets a single Mail",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMails",\r    "group": "Voice_Mails",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMail/index.js",\r    "groupTitle": "Voice_Mails"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mails/{id}/messages",\r    "title": "Gets voice mail messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/{id}/messages -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getMessages",\r    "group": "Voice_Mails",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMail/index.js",\r    "groupTitle": "Voice_Mails"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/mails/{id}",\r    "title": "Update an existing Mail",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMails",\r    "group": "Voice_Mails",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMail/index.js",\r    "groupTitle": "Voice_Mails"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/mails/messages",\r    "title": "Creates a new Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMessages",\r    "group": "Voice_Messages",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "msgnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dir",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "macrocontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callerid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "origtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "duration",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mailboxuser",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mailboxcontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "recording",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "flag",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "msg_id",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "stamp",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMailMessage/index.js",\r    "groupTitle": "Voice_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/mails/messages/{id}",\r    "title": "Deletes a Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/messages/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMessages",\r    "group": "Voice_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMailMessage/index.js",\r    "groupTitle": "Voice_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mails/messages",\r    "title": "Gets a list of Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/messages -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMessages",\r    "group": "Voice_Messages",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/mails/messages?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/mails/messages?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/mails/messages?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/mails/messages?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/mails/messages?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMailMessage/index.js",\r    "groupTitle": "Voice_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mails/messages/{id}",\r    "title": "Gets a single Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/messages/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMessages",\r    "group": "Voice_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMailMessage/index.js",\r    "groupTitle": "Voice_Messages"\r  },\r  {\r    "type": "get",\r    "url": "voice/mails/messages/{id}/download",\r    "title": "Download Voice Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}voice/mails/messages/{id}/download -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "download",\r    "group": "Voice_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMailMessage/index.js",\r    "groupTitle": "Voice_Messages"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/mails/messages/{id}",\r    "title": "Update an existing Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMessages",\r    "group": "Voice_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMailMessage/index.js",\r    "groupTitle": "Voice_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/reports/describe",\r    "title": "Gets table info about Queue Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeQueue_Reports",\r    "group": "Voice_Queue_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueueReport/index.js",\r    "groupTitle": "Voice_Queue_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/reports",\r    "title": "Gets a list of Queue Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueue_Reports",\r    "group": "Voice_Queue_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/queues/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/queues/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/queues/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/queues/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/queues/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueueReport/index.js",\r    "groupTitle": "Voice_Queue_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/reports/{id}",\r    "title": "Gets a single Queue Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueue_Reports",\r    "group": "Voice_Queue_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueueReport/index.js",\r    "groupTitle": "Voice_Queue_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/queues/{id}/users",\r    "title": "Add agents to queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddAgents",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/queues/{id}/blacklists",\r    "title": "Add blacklists to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/blacklists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddBlackLists",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/queues/{id}/lists",\r    "title": "Add lists to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/lists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddLists",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/queues/{id}/teams",\r    "title": "Add teams to queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddTeams",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/queues",\r    "title": "Creates a new Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateQueues",\r    "group": "Voice_Queues",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"inbound\"",\r              "\"outbound\""\r            ],\r            "optional": false,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "musiconhold",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "announce",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"ringall\"",\r              "\"leastrecent\"",\r              "\"fewestcalls\"",\r              "\"random\"",\r              "\"rrmemory\"",\r              "\"linear\"",\r              "\"wrandom\"",\r              "\"rrordered\""\r            ],\r            "optional": false,\r            "field": "strategy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "servicelevel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "penaltymemberslimit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "retry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "timeoutpriority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "weight",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "wrapuptime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "autofill",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"all\""\r            ],\r            "optional": true,\r            "field": "autopause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "autopausedelay",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "autopausebusy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "autopauseunavail",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "maxlen",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "setinterfacevar",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "setqueueentryvar",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "setqueuevar",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "eventmemberstatus",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membermacro",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membergosub",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "announce_frequency",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "min_announce_frequency",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "periodic_announce_frequency",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "random_periodic_announce",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "relative_periodic_announce",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"once\""\r            ],\r            "optional": true,\r            "field": "announce_holdtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "announce_position",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "announce_to_first_user",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "announce_position_limit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"0\"",\r              "\"5\"",\r              "\"10\"",\r              "\"15\"",\r              "\"20\"",\r              "\"30\""\r            ],\r            "optional": true,\r            "field": "announce_round_seconds",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "monitor_format",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "monitor_type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_youarenext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_thereare",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_callswaiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_holdtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_minute",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_minutes",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_seconds",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_thankyou",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_reporthold",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_quantity1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_quantity2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_periodic_announce",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_less_than",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "periodic_announce",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "joinempty",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "leavewhenempty",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "reportholdtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "ringinuse",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "memberdelay",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "timeoutrestart",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "defaultrule",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "acw",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "acwTimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "dialActive",\r            "description": "<p>Active/Disactive Campaign</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"preview\"",\r              "\"progressive\"",\r              "\"power\"",\r              "\"predictive\""\r            ],\r            "optional": true,\r            "field": "dialMethod",\r            "description": "<p>Dial Method.</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialLimitChannel",\r            "description": "<p>Max 9999 channels, 0 means unlimited.</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialLimitQueue",\r            "description": "<p>Max 9999 member in queue(min:1, max:9999), 0 means unlimited.</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Float",\r            "optional": true,\r            "field": "dialPowerLevel",\r            "description": "<p>Power Level: Calls for agents (min:1, max:10).</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"agentBusyFactor\"",\r              "\"dropRate\""\r            ],\r            "optional": true,\r            "field": "dialPredictiveOptimization",\r            "description": "<p>Only for predictive method.</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Float",\r            "optional": true,\r            "field": "dialPredictiveOptimizationPercentage",\r            "description": "<p>Predictive Optimization Percentage (min: 1, max: 95)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialPredictiveInterval",\r            "description": "<p>Intervall Predictive Minutes (min:5 max:30)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialOriginateCallerIdName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialOriginateCallerIdNumber",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialOriginateTimeout",\r            "description": "<p>Originate Timeout Seconds (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialQueueOptions",\r            "description": "<p>https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialQueueTimeout",\r            "description": "<p>Queue Timeout Seconds (min:1, max:99)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialQueueProject",\r            "description": "<p>AGI queue option (use: agi://127.0.0.1/square,&lt;project_name&gt;)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialCongestionMaxRetry",\r            "description": "<p>#Congestion Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialCongestionRetryFrequency",\r            "description": "<p>Congestion Retry Frequency Minutes (min:1, max:99999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialBusyMaxRetry",\r            "description": "<p>#Busy Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialBusyRetryFrequency",\r            "description": "<p>Busy Retry Frequency Minutes (min:1, max:99999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialNoAnswerMaxRetry",\r            "description": "<p>#NoAnswer Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialNoAnswerRetryFrequency",\r            "description": "<p>NoAnswer Retry Frequency Minutes (min:1, max:99999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialGlobalMaxRetry",\r            "description": "<p>#Global Max Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialTimezone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialGlobalInterval",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/queues/{id}",\r    "title": "Deletes a Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteQueues",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/users",\r    "title": "Gets queue agents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/users -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/blacklists",\r    "title": "Get queue blacklists",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/blacklists -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetBlackLists",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/finals",\r    "title": "Gets queue hopper finals",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/hopper_finals -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperFinals",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/hopper_histories",\r    "title": "Gets queue hopper histories",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/hopper_histories -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperHistories",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/hoppers",\r    "title": "Gets queue hoppers",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/hoppers -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHoppers",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/lists",\r    "title": "Get queue lists",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/lists -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetLists",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/members",\r    "title": "Gets queue members",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/members -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetMembers",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues",\r    "title": "Gets a list of Queues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/queues?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/queues?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/queues?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/queues?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/queues?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/teams",\r    "title": "Gets queue team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/queues/{id}/users",\r    "title": "Removes agents from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/queues/{id}/blacklists",\r    "title": "Remove blacklists from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/blacklists?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveBlackLists",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/queues/{id}/lists",\r    "title": "Remove lists from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/lists?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveLists",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}",\r    "title": "Gets a single Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueues",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/blacks",\r    "title": "Gets queue hopper blacks",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/hopper_black -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getHopperBlacks",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/queues/{id}",\r    "title": "Update an existing Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateQueues",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/recordings",\r    "title": "Creates a new Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateRecordings",\r    "group": "Voice_Recordings",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "format",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "exten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "value",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rating",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "createdAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "updatedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/recordings/{id}",\r    "title": "Deletes a Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteRecordings",\r    "group": "Voice_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/recordings/describe",\r    "title": "Gets table info about Recordings",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeRecordings",\r    "group": "Voice_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/recordings",\r    "title": "Gets a list of Recordings",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetRecordings",\r    "group": "Voice_Recordings",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/recordings?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/recordings?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/recordings?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/recordings?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/recordings?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/recordings/{id}",\r    "title": "Gets a single Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowRecordings",\r    "group": "Voice_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/recordings/{id}/download",\r    "title": "Download Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings/{id}/download -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "download",\r    "group": "Voice_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/recordings/{id}",\r    "title": "Update an existing Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateRecordings",\r    "group": "Voice_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/transfers/reports",\r    "title": "Creates a new Transfer Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/transfers/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateTransfer_Reports",\r    "group": "Voice_Transfer_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"blind\"",\r              "\"attended\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "result",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfererchannel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transferercalleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transferercalleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfererconnectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfererconnectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereraccountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transferercontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfererexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfererlinkedid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereechannel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereecalleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereecalleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereeconnectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereeconnectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereeaccountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereecontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereeexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereelinkedid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"Yes\"",\r              "\"No\""\r            ],\r            "optional": true,\r            "field": "isexternal",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "extension",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceTransferReport/index.js",\r    "groupTitle": "Voice_Transfer_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/transfers/reports/{id}",\r    "title": "Deletes a Transfer Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/transfers/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteTransfer_Reports",\r    "group": "Voice_Transfer_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceTransferReport/index.js",\r    "groupTitle": "Voice_Transfer_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/transfers/reports",\r    "title": "Gets a list of Transfer Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/transfers/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTransfer_Reports",\r    "group": "Voice_Transfer_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/transfers/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/transfers/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/transfers/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/transfers/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/transfers/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceTransferReport/index.js",\r    "groupTitle": "Voice_Transfer_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/transfers/reports/{id}",\r    "title": "Gets a single Transfer Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/transfers/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowTransfer_Reports",\r    "group": "Voice_Transfer_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceTransferReport/index.js",\r    "groupTitle": "Voice_Transfer_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/transfers/reports/{id}",\r    "title": "Update an existing Transfer Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/transfers/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateTransfer_Reports",\r    "group": "Voice_Transfer_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceTransferReport/index.js",\r    "groupTitle": "Voice_Transfer_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/zendesk/accounts",\r    "title": "Creates a new Zendesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateZendesk_Accounts",\r    "group": "Zendesk_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "token",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remoteUri",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"password\"",\r              "\"token\""\r            ],\r            "optional": true,\r            "field": "authType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "serverUrl",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/zendesk/accounts/{id}",\r    "title": "Deletes a Zendesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteZendesk_Accounts",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/accounts",\r    "title": "Gets a list of Zendesk Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetZendesk_Accounts",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/zendesk/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/zendesk/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/zendesk/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/zendesk/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/zendesk/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/accounts/{id}",\r    "title": "Gets a single Zendesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowZendesk_Accounts",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/zendesk/accounts/{id}/configurations",\r    "title": "Creates new configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addConfiguration",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/accounts/{id}/configurations",\r    "title": "Gets account configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/configurations -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getConfigurations",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/accounts/{id}/fields",\r    "title": "Gets account fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/zendesk/accounts/{id}",\r    "title": "Update an existing Zendesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateZendesk_Accounts",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/zendesk/configurations",\r    "title": "Creates a new Zendesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateZendesk_Configurations",\r    "group": "Zendesk_Configurations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/zendesk/configurations/{id}",\r    "title": "Deletes a Zendesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteZendesk_Configurations",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/configurations",\r    "title": "Gets a list of Zendesk Configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetZendesk_Configurations",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/zendesk/configurations?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/zendesk/configurations?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/zendesk/configurations?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/zendesk/configurations?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/zendesk/configurations?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/configurations/{id}",\r    "title": "Gets a single Zendesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowZendesk_Configurations",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/configurations/{id}/descriptions",\r    "title": "Gets configurations descriptions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/descriptions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDescriptions",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/configurations/{id}/fields",\r    "title": "Gets configurations fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/configurations/{id}/subjects",\r    "title": "Gets configurations subjects",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/subjects -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getSubjects",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/configurations/{id}/tags",\r    "title": "Gets configurations tags",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/tags -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getTags",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/zendesk/configurations/{id}/tags",\r    "title": "Sets new tags",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "setTags",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/zendesk/configurations/{id}",\r    "title": "Update an existing Zendesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateZendesk_Configurations",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/zendesk/fields",\r    "title": "Creates a new Zendesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateZendesk_Fields",\r    "group": "Zendesk_Fields",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\"",\r              "\"keyValue\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "content",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "key",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\""\r            ],\r            "optional": true,\r            "field": "keyType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "keyContent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "idField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "nameField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "customField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "variableName",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskField/index.js",\r    "groupTitle": "Zendesk_Fields"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/zendesk/fields/{id}",\r    "title": "Deletes a Zendesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteZendesk_Fields",\r    "group": "Zendesk_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskField/index.js",\r    "groupTitle": "Zendesk_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/fields",\r    "title": "Gets a list of Zendesk Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/fields -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetZendesk_Fields",\r    "group": "Zendesk_Fields",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/zendesk/fields?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/zendesk/fields?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/zendesk/fields?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/zendesk/fields?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/zendesk/fields?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskField/index.js",\r    "groupTitle": "Zendesk_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/fields/{id}",\r    "title": "Gets a single Zendesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowZendesk_Fields",\r    "group": "Zendesk_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskField/index.js",\r    "groupTitle": "Zendesk_Fields"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/zendesk/fields/{id}",\r    "title": "Update an existing Zendesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateZendesk_Fields",\r    "group": "Zendesk_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskField/index.js",\r    "groupTitle": "Zendesk_Fields"\r  },\r  {\r    "type": "post",\r    "url": "/api/cdr",\r    "title": "Creates a new Cdr",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cdr -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateCdrs",\r    "group": "cdr",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "calldate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "clid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "src",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dst",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dcontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dstchannel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastapp",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastdata",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "duration",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "billsec",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "amaflags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "userfield",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "linkedid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "sequence",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "peeraccount",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "tag",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cdr/index.js",\r    "groupTitle": "cdr"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cdr/{id}",\r    "title": "Deletes a Cdr",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cdr/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteCdrs",\r    "group": "cdr",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cdr/index.js",\r    "groupTitle": "cdr"\r  },\r  {\r    "type": "get",\r    "url": "/api/cdr",\r    "title": "Gets a list of Cdrs",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cdr -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetCdrs",\r    "group": "cdr",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cdr?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cdr?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cdr?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cdr?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cdr?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cdr/index.js",\r    "groupTitle": "cdr"\r  },\r  {\r    "type": "get",\r    "url": "/api/cdr/{id}",\r    "title": "Gets a single Cdr",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cdr/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowCdrs",\r    "group": "cdr",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cdr/index.js",\r    "groupTitle": "cdr"\r  },\r  {\r    "type": "put",\r    "url": "/api/cdr/{id}",\r    "title": "Update an existing Cdr",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cdr/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateCdrs",\r    "group": "cdr",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cdr/index.js",\r    "groupTitle": "cdr"\r  },\r  {\r    "type": "post",\r    "url": "/api/voiceQueuesLog",\r    "title": "Creates a new VoiceQueuesLog",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voiceQueuesLog -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateVoiceQueuesLogs",\r    "group": "voiceQueuesLog",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "time",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "callid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "agent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "event",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "data1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "data2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "data3",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "dtm",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueuesLog/index.js",\r    "groupTitle": "voiceQueuesLog"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voiceQueuesLog/{id}",\r    "title": "Deletes a VoiceQueuesLog",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voiceQueuesLog/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteVoiceQueuesLogs",\r    "group": "voiceQueuesLog",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueuesLog/index.js",\r    "groupTitle": "voiceQueuesLog"\r  },\r  {\r    "type": "get",\r    "url": "/api/voiceQueuesLog",\r    "title": "Gets a list of VoiceQueuesLogs",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voiceQueuesLog -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetVoiceQueuesLogs",\r    "group": "voiceQueuesLog",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voiceQueuesLog?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voiceQueuesLog?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voiceQueuesLog?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voiceQueuesLog?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voiceQueuesLog?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueuesLog/index.js",\r    "groupTitle": "voiceQueuesLog"\r  },\r  {\r    "type": "get",\r    "url": "/api/voiceQueuesLog/{id}",\r    "title": "Gets a single VoiceQueuesLog",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voiceQueuesLog/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowVoiceQueuesLogs",\r    "group": "voiceQueuesLog",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueuesLog/index.js",\r    "groupTitle": "voiceQueuesLog"\r  },\r  {\r    "type": "put",\r    "url": "/api/voiceQueuesLog/{id}",\r    "title": "Update an existing VoiceQueuesLog",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voiceQueuesLog/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateVoiceQueuesLogs",\r    "group": "voiceQueuesLog",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueuesLog/index.js",\r    "groupTitle": "voiceQueuesLog"\r  }\r] });
diff --git a/apidoc/api_data.json b/apidoc/api_data.json
new file mode 100644 (file)
index 0000000..0f8ec16
--- /dev/null
@@ -0,0 +1 @@
+[\r  {\r    "type": "delete",\r    "url": "/api/actions/{id}",\r    "title": "Deletes a Action",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/actions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteActions",\r    "group": "Actions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/action/index.js",\r    "groupTitle": "Actions"\r  },\r  {\r    "type": "put",\r    "url": "/api/actions/{id}",\r    "title": "Update an existing Action",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/actions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateActions",\r    "group": "Actions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/action/index.js",\r    "groupTitle": "Actions"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/custom_reports",\r    "title": "Creates a new Analytic Custom Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAnalytic_Custom_Reports",\r    "group": "Analytic_Custom_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "parent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "table",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "conditions",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/custom_reports/{id}",\r    "title": "Deletes a Analytic Custom Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAnalytic_Custom_Reports",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/custom_reports",\r    "title": "Gets a list of Analytic Custom Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAnalytic_Custom_Reports",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/analytics/custom_reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/analytics/custom_reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/analytics/custom_reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/analytics/custom_reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/analytics/custom_reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/custom_reports/{id}",\r    "title": "Gets a single Analytic Custom Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAnalytic_Custom_Reports",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/custom_reports/{id}/preview",\r    "title": "Report Preview",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports/{id}/preview -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "preview",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/custom_reports/{id}/query",\r    "title": "Report Query SQL",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports/{id}/query -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "query",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/custom_reports/{id}/run",\r    "title": "Report Run",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports/{id}/run -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "run",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/analytics/custom_reports/{id}",\r    "title": "Update an existing Analytic Custom Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/custom_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAnalytic_Custom_Reports",\r    "group": "Analytic_Custom_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticCustomReport/index.js",\r    "groupTitle": "Analytic_Custom_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/default_reports",\r    "title": "Creates a new Analytic Default Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAnalytic_Default_Reports",\r    "group": "Analytic_Default_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "parent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "table",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "conditions",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/default_reports/{id}",\r    "title": "Deletes a Analytic Default Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAnalytic_Default_Reports",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/default_reports",\r    "title": "Gets a list of Analytic Default Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAnalytic_Default_Reports",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/analytics/default_reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/analytics/default_reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/analytics/default_reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/analytics/default_reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/analytics/default_reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/default_reports/{id}",\r    "title": "Gets a single Analytic Default Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAnalytic_Default_Reports",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/default_reports/{id}/preview",\r    "title": "Report Preview",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports/{id}/preview -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "preview",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/default_reports/{id}/query",\r    "title": "Report Query SQL",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports/{id}/query -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "query",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/default_reports/{id}/run",\r    "title": "Report Run",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports/{id}/run -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "run",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/analytics/default_reports/{id}",\r    "title": "Update an existing Analytic Default Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/default_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAnalytic_Default_Reports",\r    "group": "Analytic_Default_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticDefaultReport/index.js",\r    "groupTitle": "Analytic_Default_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/extracted_reports",\r    "title": "Creates a new Analytic Extracted Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/extracted_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAnalytic_Extacted_Reports",\r    "group": "Analytic_Extracted_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"csv\"",\r              "\"pdf\"",\r              "\"xls\""\r            ],\r            "optional": false,\r            "field": "output",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "savename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "startDate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "endDate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"manual\"",\r              "\"scheduled\""\r            ],\r            "optional": false,\r            "field": "type",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticExtractedReport/index.js",\r    "groupTitle": "Analytic_Extracted_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/extracted_reports/{id}",\r    "title": "Deletes a Analytic Extracted Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAnalytic_Extacted_Reports",\r    "group": "Analytic_Extracted_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticExtractedReport/index.js",\r    "groupTitle": "Analytic_Extracted_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/extracted_reports",\r    "title": "Gets a list of Analytic Extacted Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/extracted_reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAnalytic_Extacted_Reports",\r    "group": "Analytic_Extracted_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/analytics/extracted_reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/analytics/extracted_reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/analytics/extracted_reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/analytics/extracted_reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/analytics/extracted_reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticExtractedReport/index.js",\r    "groupTitle": "Analytic_Extracted_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/extracted_reports/{id}",\r    "title": "Gets a single Analytic Extracted Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAnalytic_Extacted_Reports",\r    "group": "Analytic_Extracted_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticExtractedReport/index.js",\r    "groupTitle": "Analytic_Extracted_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/extracted_reports/{id}/download",\r    "title": "Download Extracted Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/extracted_reports/{id}/download -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "download",\r    "group": "Analytic_Extracted_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticExtractedReport/index.js",\r    "groupTitle": "Analytic_Extracted_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/analytics/extracted_reports/{id}",\r    "title": "Update an existing Analytic Extracted Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/extracted_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAnalytic_Extacted_Reports",\r    "group": "Analytic_Extracted_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticExtractedReport/index.js",\r    "groupTitle": "Analytic_Extracted_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/field_reports/create_many",\r    "title": "Creates many Analytic Field Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports/create_many -d '[{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}]' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "BulkCreateAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "field",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "alias",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "function",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "format",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "groupBy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "orderBy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "custom",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/field_reports/destroy_many?ids={ids}",\r    "title": "Deletes many Analytic Field Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports/destroy_many?ids=1&ids=2&ids=3 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "BulkDeleteAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/field_reports",\r    "title": "Creates a new Analytic Field Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "field",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "alias",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "function",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "format",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "groupBy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "orderBy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "custom",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/field_reports/{id}",\r    "title": "Deletes a Analytic Field Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/field_reports",\r    "title": "Gets a list of Analytic Field Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/analytics/field_reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/analytics/field_reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/analytics/field_reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/analytics/field_reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/analytics/field_reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/field_reports/{id}",\r    "title": "Gets a single Analytic Field Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/field_reports/{id}/create_many",\r    "title": "Rewrite fields set",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports/{id}/create_many -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addFields",\r    "group": "Analytic_Field_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/analytics/field_reports/{id}",\r    "title": "Update an existing Analytic Field Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/field_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAnalytic_Field_Reports",\r    "group": "Analytic_Field_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticFieldReport/index.js",\r    "groupTitle": "Analytic_Field_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/metrics",\r    "title": "Creates a new Analytic Metrics",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/metrics -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAnalytic_Metric",\r    "group": "Analytic_Metrics",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "table",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "metric",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticMetric/index.js",\r    "groupTitle": "Analytic_Metrics"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/metrics/{id}",\r    "title": "Deletes a Analytic Metrics",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/metrics/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAnalytic_Metric",\r    "group": "Analytic_Metrics",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticMetric/index.js",\r    "groupTitle": "Analytic_Metrics"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/metrics",\r    "title": "Gets a list of Analytic Metric",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/metrics -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAnalytic_Metric",\r    "group": "Analytic_Metrics",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/analytics/metrics?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/analytics/metrics?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/analytics/metrics?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/analytics/metrics?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/analytics/metrics?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticMetric/index.js",\r    "groupTitle": "Analytic_Metrics"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/metrics/{id}",\r    "title": "Gets a single Analytic Metrics",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/metrics/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAnalytic_Metric",\r    "group": "Analytic_Metrics",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticMetric/index.js",\r    "groupTitle": "Analytic_Metrics"\r  },\r  {\r    "type": "put",\r    "url": "/api/analytics/metrics/{id}",\r    "title": "Update an existing Analytic Metrics",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/metrics/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAnalytic_Metric",\r    "group": "Analytic_Metrics",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticMetric/index.js",\r    "groupTitle": "Analytic_Metrics"\r  },\r  {\r    "type": "post",\r    "url": "/api/analytics/tree_reports",\r    "title": "Creates a new Analytic Tree Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/tree_reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAnalytic_Tree_Reports",\r    "group": "Analytic_Tree_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": false,\r            "field": "tree",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticTreeReport/index.js",\r    "groupTitle": "Analytic_Tree_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/analytics/tree_reports/{id}",\r    "title": "Deletes a Analytic Tree Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/tree_reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAnalytic_Tree_Reports",\r    "group": "Analytic_Tree_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticTreeReport/index.js",\r    "groupTitle": "Analytic_Tree_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/tree_reports",\r    "title": "Gets a list of Analytic Tree Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/tree_reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAnalytic_Tree_Reports",\r    "group": "Analytic_Tree_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/analytics/tree_reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/analytics/tree_reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/analytics/tree_reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/analytics/tree_reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/analytics/tree_reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticTreeReport/index.js",\r    "groupTitle": "Analytic_Tree_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/analytics/tree_reports/{id}",\r    "title": "Gets a single Analytic Tree Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/tree_reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAnalytic_Tree_Reports",\r    "group": "Analytic_Tree_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticTreeReport/index.js",\r    "groupTitle": "Analytic_Tree_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/analytics/tree_reports/{id}",\r    "title": "Update an existing Analytic Tree Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/analytics/tree_reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAnalytic_Tree_Reports",\r    "group": "Analytic_Tree_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/analyticTreeReport/index.js",\r    "groupTitle": "Analytic_Tree_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/auth/google",\r    "title": "Creates a new User token",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/auth/google -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Local_login",\r    "group": "Authentication",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "password",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/authGoogle/index.js",\r    "groupTitle": "Authentication"\r  },\r  {\r    "type": "post",\r    "url": "/api/auth/local",\r    "title": "Creates a new User token",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/auth/local -d '{\"name\": \"john.doe\", \"password\": \"password\"}' \\\n -H \"Content-Type: application/json\" -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Local_login",\r    "group": "Authentication",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "password",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/authLocal/index.js",\r    "groupTitle": "Authentication"\r  },\r  {\r    "type": "post",\r    "url": "/api/automations",\r    "title": "Creates a new Automation",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAutomations",\r    "group": "Automations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "delete",\r    "url": "/api/automations/{id}",\r    "title": "Deletes a Automation",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAutomations",\r    "group": "Automations",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "get",\r    "url": "/api/automations",\r    "title": "Gets a list of Automations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAutomations",\r    "group": "Automations",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/automations?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/automations?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/automations?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/automations?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/automations?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "get",\r    "url": "/api/automations/{id}",\r    "title": "Gets a single Automation",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAutomations",\r    "group": "Automations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "post",\r    "url": "/api/automations/{id}/actions",\r    "title": "Creates new actions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id}/actions -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addActions",\r    "group": "Automations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "action",\r            "description": "<p>Allowed values: contactManager, integration, motionbar, jscripty, urlForward, browser</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": "<p>contactManager[ListId], integration[intName(zendesk)], motionbar[Popup(0),URL(1),WinApp(2)], urlForward[GET,POST], browser[TemplateId(0),URL(1)]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": "<p>integration[AccountId], motionbar[TemplateId,URL,WinAppPath], urlForward[URL]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": "<p>motionbar[NULL,NULL,WinAppArguments]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "post",\r    "url": "/api/automations/{id}/conditions",\r    "title": "Creates new conditions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id}/conditions -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addConditions",\r    "group": "Automations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "field",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "operator",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "value",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "get",\r    "url": "/api/automations/{id}/actions",\r    "title": "Gets Automation Actions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id}/actions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getActions",\r    "group": "Automations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "get",\r    "url": "/api/automations/{id}/conditions",\r    "title": "Gets Automation Conditions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id}/conditions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getConditions",\r    "group": "Automations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "put",\r    "url": "/api/automations/{id}",\r    "title": "Update an existing Automation",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/automations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAutomations",\r    "group": "Automations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/automation/index.js",\r    "groupTitle": "Automations"\r  },\r  {\r    "type": "post",\r    "url": "/api/campaigns/{id}/blacklists",\r    "title": "Add blacklists to a campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/blacklists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddBlackLists",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "post",\r    "url": "/api/campaigns/{id}/lists",\r    "title": "Add lists to a campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/lists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddLists",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "post",\r    "url": "/api/campaigns",\r    "title": "Creates a new Campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateCampaigns",\r    "group": "Campaigns",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"ivr\""\r            ],\r            "optional": false,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "active",\r            "description": "<p>Active/Disactive Campaign</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "limitCalls",\r            "description": "<p>Max 200 calls.</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialOriginateCallerIdName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialOriginateCallerIdNumber",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialOriginateTimeout",\r            "description": "<p>Originate Timeout Seconds (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialCongestionMaxRetry",\r            "description": "<p>#Congestion Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialCongestionRetryFrequency",\r            "description": "<p>Congestion Retry Frequency Minutes (min:1, max:99999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialBusyMaxRetry",\r            "description": "<p>#Busy Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialBusyRetryFrequency",\r            "description": "<p>Busy Retry Frequency Minutes (min:1, max:99999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialNoAnswerMaxRetry",\r            "description": "<p>#NoAnswer Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialNoAnswerRetryFrequency",\r            "description": "<p>NoAnswer Retry Frequency Minutes (min:1, max:99999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialGlobalMaxRetry",\r            "description": "<p>#Global Max Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialTimezone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialGlobalInterval",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "delete",\r    "url": "/api/campaigns/{id}",\r    "title": "Deletes a Campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteCampaigns",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}/blacklists",\r    "title": "Get campaign blacklists",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/blacklists -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetBlackLists",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns",\r    "title": "Gets a list of Campaigns",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetCampaigns",\r    "group": "Campaigns",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/campaigns?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/campaigns?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/campaigns?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/campaigns?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/campaigns?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}/finals",\r    "title": "Gets campaign hopper finals",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/hopper_finals -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperFinals",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}/hopper_histories",\r    "title": "Gets campaign hopper histories",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/hopper_histories -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperHistories",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}/hoppers",\r    "title": "Gets campaign hoppers",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/hoppers -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHoppers",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}/lists",\r    "title": "Get campaign lists",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/lists -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetLists",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "delete",\r    "url": "/api/campaigns/{id}/blacklists",\r    "title": "Remove blacklists from a Campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/blacklists?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveBlackLists",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "delete",\r    "url": "/api/campaigns/{id}/lists",\r    "title": "Remove lists from a Campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/lists?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveLists",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}",\r    "title": "Gets a single Campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowCampaigns",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "get",\r    "url": "/api/campaigns/{id}/blacks",\r    "title": "Gets campaign hopper blacks",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id}/hopper_black -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getHopperBlacks",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "put",\r    "url": "/api/campaigns/{id}",\r    "title": "Update an existing Campaign",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/campaigns/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateCampaigns",\r    "group": "Campaigns",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/campaign/index.js",\r    "groupTitle": "Campaigns"\r  },\r  {\r    "type": "post",\r    "url": "/api/canned_answers",\r    "title": "Creates a new Canned Answer",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/canned_answers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateCanned_Answers",\r    "group": "Canned_Answers",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "key",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": false,\r            "field": "value",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cannedAnswer/index.js",\r    "groupTitle": "Canned_Answers"\r  },\r  {\r    "type": "delete",\r    "url": "/api/canned_answers/{id}",\r    "title": "Deletes a Canned Answer",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/canned_answers/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteCanned_Answers",\r    "group": "Canned_Answers",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cannedAnswer/index.js",\r    "groupTitle": "Canned_Answers"\r  },\r  {\r    "type": "get",\r    "url": "/api/canned_answers",\r    "title": "Gets a list of Canned Answers",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/canned_answers -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetCanned_Answers",\r    "group": "Canned_Answers",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/canned_answers?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/canned_answers?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/canned_answers?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/canned_answers?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/canned_answers?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cannedAnswer/index.js",\r    "groupTitle": "Canned_Answers"\r  },\r  {\r    "type": "get",\r    "url": "/api/canned_answers/{id}",\r    "title": "Gets a single Canned Answer",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/canned_answers/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowCanned_Answers",\r    "group": "Canned_Answers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cannedAnswer/index.js",\r    "groupTitle": "Canned_Answers"\r  },\r  {\r    "type": "put",\r    "url": "/api/canned_answers/{id}",\r    "title": "Update an existing Canned Answer",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/canned_answers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateCanned_Answers",\r    "group": "Canned_Answers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cannedAnswer/index.js",\r    "groupTitle": "Canned_Answers"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/applications/{id}",\r    "title": "Deletes a Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/applications/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteApplications",\r    "group": "Chat_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatApplication/index.js",\r    "groupTitle": "Chat_Applications"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/applications/{id}",\r    "title": "Gets a single Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/applications/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowApplications",\r    "group": "Chat_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatApplication/index.js",\r    "groupTitle": "Chat_Applications"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/applications/{id}",\r    "title": "Update an existing Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateApplications",\r    "group": "Chat_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatApplication/index.js",\r    "groupTitle": "Chat_Applications"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/dispositions",\r    "title": "Creates a new Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDispositions",\r    "group": "Chat_Dispositions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatDisposition/index.js",\r    "groupTitle": "Chat_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/dispositions/{id}",\r    "title": "Deletes a Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/dispositions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDispositions",\r    "group": "Chat_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatDisposition/index.js",\r    "groupTitle": "Chat_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/dispositions/{id}",\r    "title": "Gets a single Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/dispositions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDispositions",\r    "group": "Chat_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatDisposition/index.js",\r    "groupTitle": "Chat_Dispositions"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/dispositions/{id}",\r    "title": "Update an existing Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDispositions",\r    "group": "Chat_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatDisposition/index.js",\r    "groupTitle": "Chat_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/enquiries/{id}",\r    "title": "Deletes a Enquiry",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/enquiries/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteEnquiries",\r    "group": "Chat_Enquiries",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatEnquiry/index.js",\r    "groupTitle": "Chat_Enquiries"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/enquiries/{id}",\r    "title": "Gets a single Enquiry",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/enquiries/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowEnquiries",\r    "group": "Chat_Enquiries",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatEnquiry/index.js",\r    "groupTitle": "Chat_Enquiries"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/enquiries/{id}",\r    "title": "Update an existing Enquiry",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/enquiries/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateEnquiries",\r    "group": "Chat_Enquiries",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatEnquiry/index.js",\r    "groupTitle": "Chat_Enquiries"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/interactions",\r    "title": "Creates a new Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateInteractions",\r    "group": "Chat_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"internal\"",\r              "\"external\"",\r              "\"group\""\r            ],\r            "optional": false,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "token",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"CLOSED\"",\r              "\"ABANDON\"",\r              "\"UNMANAGED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"good\"",\r              "\"bad\""\r            ],\r            "optional": true,\r            "field": "rating",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "ratingMessage",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"agent\"",\r              "\"requester\""\r            ],\r            "optional": true,\r            "field": "completeReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ChatVisitorId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "website",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/interactions/{id}",\r    "title": "Deletes a Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteInteractions",\r    "group": "Chat_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/interactions/describe",\r    "title": "Gets table info about Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeInteractions",\r    "group": "Chat_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/interactions",\r    "title": "Gets a list of Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetInteractions",\r    "group": "Chat_Interactions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/chat/interactions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/chat/interactions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/chat/interactions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/chat/interactions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/chat/interactions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/interactions/{id}",\r    "title": "Gets a single Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowInteractions",\r    "group": "Chat_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/interactions/{id}/messages",\r    "title": "Creates new messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addMessage",\r    "group": "Chat_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": false,\r            "field": "body",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"internal\"",\r              "\"external\"",\r              "\"group\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/interactions/{id}/messages",\r    "title": "Gets interaction messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions/{id}/messages -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getMessages",\r    "group": "Chat_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/interactions/{id}",\r    "title": "Update an existing Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateInteractions",\r    "group": "Chat_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatInteraction/index.js",\r    "groupTitle": "Chat_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/messages",\r    "title": "Creates a new Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMessages",\r    "group": "Chat_Messages",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": false,\r            "field": "body",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"internal\"",\r              "\"external\"",\r              "\"group\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatMessage/index.js",\r    "groupTitle": "Chat_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/messages/{id}",\r    "title": "Deletes a Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/messages/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMessages",\r    "group": "Chat_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatMessage/index.js",\r    "groupTitle": "Chat_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/messages/describe",\r    "title": "Gets table info about Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/messages/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeMessages",\r    "group": "Chat_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatMessage/index.js",\r    "groupTitle": "Chat_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/messages",\r    "title": "Gets a list of Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/messages -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMessages",\r    "group": "Chat_Messages",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/chat/messages?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/chat/messages?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/chat/messages?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/chat/messages?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/chat/messages?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatMessage/index.js",\r    "groupTitle": "Chat_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/messages/{id}",\r    "title": "Gets a single Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/messages/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMessages",\r    "group": "Chat_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatMessage/index.js",\r    "groupTitle": "Chat_Messages"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/messages/{id}",\r    "title": "Update an existing Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMessages",\r    "group": "Chat_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatMessage/index.js",\r    "groupTitle": "Chat_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/proactive_actions/{id}",\r    "title": "Deletes a Proactive Action",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/proactive_actions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteProactive_Actions",\r    "group": "Chat_Proactive_Actions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatProactiveAction/index.js",\r    "groupTitle": "Chat_Proactive_Actions"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/proactive_actions/{id}",\r    "title": "Gets a single Proactive Action",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/proactive_actions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowProactive_Actions",\r    "group": "Chat_Proactive_Actions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatProactiveAction/index.js",\r    "groupTitle": "Chat_Proactive_Actions"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/proactive_actions/{id}",\r    "title": "Update an existing Proactive Action",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/proactive_actions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateProactive_Actions",\r    "group": "Chat_Proactive_Actions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatProactiveAction/index.js",\r    "groupTitle": "Chat_Proactive_Actions"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/queues/{id}/users",\r    "title": "Add agents to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddAgents",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/queues/{id}/teams",\r    "title": "Add teams to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddTeams",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/queues",\r    "title": "Creates a new Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateQueues",\r    "group": "Chat_Queues",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rrmemory\"",\r              "\"beepall\"",\r              "\"roundrobin\""\r            ],\r            "optional": true,\r            "field": "strategy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "lastAgent",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/queues/{id}",\r    "title": "Deletes a Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteQueues",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/queues/{id}/users",\r    "title": "Gets queue agents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id}/users -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/queues",\r    "title": "Gets a list of Queues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/chat/queues?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/chat/queues?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/chat/queues?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/chat/queues?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/chat/queues?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/queues/{id}/teams",\r    "title": "Gets queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/queues/{id}/users",\r    "title": "Removes agents from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/queues/{id}",\r    "title": "Gets a single Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueues",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/queues/{id}",\r    "title": "Update an existing Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateQueues",\r    "group": "Chat_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Chat_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/session/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/session/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "Chat_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "websitename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "websiteaddress",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "websiteid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "visitorid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "visitorname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "visitoremail",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "joinAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "leaveAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "completeAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "complete",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"agent\"",\r              "\"requester\""\r            ],\r            "optional": true,\r            "field": "completeReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "abandon",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatSessionReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "Chat_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "websitename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "websiteaddress",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "websiteid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "visitorid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "visitorname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "visitoremail",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calledAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/session/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/session/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatSessionReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/session/reports/describe",\r    "title": "Gets table info about Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/session/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatSessionReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/session/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/session/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/chat/session/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/chat/session/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/chat/session/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/chat/session/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/chat/session/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatSessionReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/chat/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/chat/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/chat/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/chat/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/chat/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/session/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/session/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatSessionReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/session/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/session/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "Chat_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatSessionReport/index.js",\r    "groupTitle": "Chat_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/visitors/{id}",\r    "title": "Deletes a Visitor",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/visitors/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteVisitors",\r    "group": "Chat_Visitors",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatVisitor/index.js",\r    "groupTitle": "Chat_Visitors"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/visitors/{id}",\r    "title": "Gets a single Visitor",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/visitors/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowVisitors",\r    "group": "Chat_Visitors",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatVisitor/index.js",\r    "groupTitle": "Chat_Visitors"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/visitors/{id}",\r    "title": "Update an existing Visitor",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/visitors/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateVisitors",\r    "group": "Chat_Visitors",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatVisitor/index.js",\r    "groupTitle": "Chat_Visitors"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/website_fields/{id}",\r    "title": "Deletes a Website Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/website_fields/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteWebsite_Fields",\r    "group": "Chat_Website_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsiteField/index.js",\r    "groupTitle": "Chat_Website_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/website_fields/{id}",\r    "title": "Gets a single Website Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/website_fields/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowWebsite_Fields",\r    "group": "Chat_Website_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsiteField/index.js",\r    "groupTitle": "Chat_Website_Fields"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/website_fields/{id}",\r    "title": "Update an existing Website Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/website_fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateWebsite_Fields",\r    "group": "Chat_Website_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsiteField/index.js",\r    "groupTitle": "Chat_Website_Fields"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/websites",\r    "title": "Creates a new Website",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateWebsites",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "address",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "color",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "color_focus",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "color_button",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remote",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "animation",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rounded\"",\r              "\"squared\""\r            ],\r            "optional": true,\r            "field": "header_shape",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "header_online",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "online_message",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username_placeholder",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email_placeholder",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "start_chat_button",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "header_offline",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "offline_message",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "enquiry_message_placeholder",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "enquiry_button",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "download_transcript",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "enquiry_forwarding",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "enquiry_forwarding_address",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "enquiry_enable",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "rating_enable",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rating_message",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rating_send",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rating_skip",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "show_service_name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "service_name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "agents_busy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name_title",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email_title",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "message_title",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "logo",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "defaultLogo",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "whiteLabel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "defaultWhiteLabel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "acceptUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closeUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "closeMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "acceptMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "rejectMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "actions",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/websites/{id}",\r    "title": "Deletes a Website",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteWebsites",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites",\r    "title": "Gets a list of Websites",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetWebsites",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/chat/websites?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/chat/websites?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/chat/websites?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/chat/websites?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/chat/websites?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites/{id}",\r    "title": "Gets a single Website",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowWebsites",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/websites/{id}/applications",\r    "title": "Creates new applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addApplications",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"queue\"",\r              "\"agent\"",\r              "\"sendMail\"",\r              "\"sendSms\""\r            ],\r            "optional": false,\r            "field": "app",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interval",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "data7",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data8",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data9",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data10",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/websites/{id}/dispositions",\r    "title": "Creates new disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDisposition",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/websites/{id}/dispositions",\r    "title": "Creates many dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDispositions",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/accounts/{id}/interactions",\r    "title": "Creates new interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/interactions -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addInteraction",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"internal\"",\r              "\"external\"",\r              "\"group\""\r            ],\r            "optional": false,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "token",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"CLOSED\"",\r              "\"ABANDON\"",\r              "\"UNMANAGED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"good\"",\r              "\"bad\""\r            ],\r            "optional": true,\r            "field": "rating",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "ratingMessage",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"agent\"",\r              "\"requester\""\r            ],\r            "optional": true,\r            "field": "completeReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ChatVisitorId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "website",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/websites/{id}/proactive_actions",\r    "title": "Creates new Proactive Actions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/proactive_actions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addProactiveActions",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"mouseOver\"",\r              "\"timeout\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "selector",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/chat/websites/{id}/fields",\r    "title": "Creates new Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/fields -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addWebsiteFields",\r    "group": "Chat_Websites",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "component",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "index",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "label",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "options",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "placeholder",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "required",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "validation",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "editable",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites/{id}/applications",\r    "title": "Gets Website Applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/applications -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getApplications",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites/{id}/dispositions",\r    "title": "Gets Website Dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/dispositions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDispositions",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites/{id}/interactions",\r    "title": "Gets Website Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/interactions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getInteraction",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites/{id}/proactive_actions",\r    "title": "Gets Website Proactive Actions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/proactive_actions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getProactiveActions",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "get",\r    "url": "/api/chat/websites/{id}/fields",\r    "title": "Gets Website Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id}/fields -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "getWebsiteFields",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "put",\r    "url": "/api/chat/websites/{id}",\r    "title": "Update an existing Website",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/websites/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateWebsites",\r    "group": "Chat_Websites",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatWebsite/index.js",\r    "groupTitle": "Chat_Websites"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/companies",\r    "title": "Creates a new Company",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/companies -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateCompanies",\r    "group": "Cm_Companies",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "vat",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "companyId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "website",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fax",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "street",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "postalCode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "city",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "country",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "emailDomain",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "sStreet",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "sPostalCode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "sCity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "sCountry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/companies/{id}",\r    "title": "Deletes a Company",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/companies/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteCompanies",\r    "group": "Cm_Companies",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/companies",\r    "title": "Gets a list of Companies",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/companies -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetCompanies",\r    "group": "Cm_Companies",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/companies?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/companies?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/companies?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/companies?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/companies?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/companies/{id}",\r    "title": "Gets a single Company",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/companies/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowCompanies",\r    "group": "Cm_Companies",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/companies/{id}/contacts",\r    "title": "Creates new contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/companies/{id}/contacts -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addContacts",\r    "group": "Cm_Companies",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "firstName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "street",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "postalCode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "city",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "country",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dateOfBirth",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mobile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fax",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "url",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/companies/{id}/contacts",\r    "title": "Gets List Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/companies/{id}/contacts -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getContacts",\r    "group": "Cm_Companies",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/companies/{id}",\r    "title": "Update an existing Company",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/companies/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateCompanies",\r    "group": "Cm_Companies",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCompany/index.js",\r    "groupTitle": "Cm_Companies"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/contacts/{id}",\r    "title": "Deletes a Contact",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteContacts",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts/describe",\r    "title": "Gets table info about Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeContacts",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts/{id}/finals",\r    "title": "Gets contact hopper finals",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_finals -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperFinals",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts/{id}/hopper_histories",\r    "title": "Gets contact hopper histories",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_histories -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperHistories",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts/{id}/hoppers",\r    "title": "Gets contact hoppers",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id}/hoppers -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHoppers",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/contacts",\r    "title": "Create Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts -d '[{\"firstName\": \"John\", \"lastName\": \"doe\", \"...\": \"...\"}]' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "create",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/contacts",\r    "title": "Create Contact",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts -d '{\"firstName\": \"John\", \"lastName\": \"doe\", \"...\": \"...\"}' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "create",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts/{id}/jscripty_sessions",\r    "title": "Gets contact hopper blacks",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id}/hopper_black -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getJscriptySessions",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts",\r    "title": "Gets List Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "index",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/contacts/{id}",\r    "title": "Gets a single Contact",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id} -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "show",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/contacts/{id}",\r    "title": "Update a single Contact",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/contacts/{id} -d '{\"fullName\": \"John\", \"lastName\": \"Doe\"}' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "update",\r    "group": "Cm_Contacts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmContact/index.js",\r    "groupTitle": "Cm_Contacts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/custom_fields/{id}",\r    "title": "Deletes a Custom Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/custom_fields/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteCustom_Fields",\r    "group": "Cm_Custom_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCustomField/index.js",\r    "groupTitle": "Cm_Custom_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/custom_fields",\r    "title": "Gets a list of Custom Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/custom_fields -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetCustom_Fields",\r    "group": "Cm_Custom_Fields",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/custom_fields?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/custom_fields?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/custom_fields?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/custom_fields?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/custom_fields?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCustomField/index.js",\r    "groupTitle": "Cm_Custom_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/custom_fields/{id}",\r    "title": "Gets a single Custom Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/custom_fields/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowCustom_Fields",\r    "group": "Cm_Custom_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCustomField/index.js",\r    "groupTitle": "Cm_Custom_Fields"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/custom_fields/{id}",\r    "title": "Update an existing Custom Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/custom_fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateCustom_Fields",\r    "group": "Cm_Custom_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCustomField/index.js",\r    "groupTitle": "Cm_Custom_Fields"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/hopper",\r    "title": "Creates a new Hopper",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateHopper",\r    "group": "Cm_Hopper",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "active",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "scheduledat",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "countbusyretry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "countcongestionretry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "countnoanswerretry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "callback",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callbackuniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callbackat",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ContactId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ListId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "UserId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "VoiceQueueId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "CampaignId",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper/describe",\r    "title": "Gets table info about Hopper",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeHopper",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper",\r    "title": "Gets a list of Hopper",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopper",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/hopper?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/hopper?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/hopper?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/hopper?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/hopper?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper/{id}",\r    "title": "Gets a single Hopper",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowHopper",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/hopper_black/{id}",\r    "title": "Deletes a Hopper Black",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_black/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteHopper_Black",\r    "group": "Cm_Hopper_Black",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperBlack/index.js",\r    "groupTitle": "Cm_Hopper_Black"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_black/describe",\r    "title": "Gets table info about Hopper Black",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_black/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeHopper_Black",\r    "group": "Cm_Hopper_Black",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperBlack/index.js",\r    "groupTitle": "Cm_Hopper_Black"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_black",\r    "title": "Gets a list of Hopper Black",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_black -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopper_Black",\r    "group": "Cm_Hopper_Black",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/hopper_black?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/hopper_black?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/hopper_black?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/hopper_black?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/hopper_black?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperBlack/index.js",\r    "groupTitle": "Cm_Hopper_Black"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_black/{id}",\r    "title": "Gets a single Hopper Black",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_black/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowHopper_Black",\r    "group": "Cm_Hopper_Black",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperBlack/index.js",\r    "groupTitle": "Cm_Hopper_Black"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/hopper_black/{id}",\r    "title": "Update an existing Hopper Black",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_black/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateHopper_Black",\r    "group": "Cm_Hopper_Black",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperBlack/index.js",\r    "groupTitle": "Cm_Hopper_Black"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_final/describe",\r    "title": "Gets table info about HopperFinal",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_final/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeHopperFinal",\r    "group": "Cm_Hopper_Final",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperFinal/index.js",\r    "groupTitle": "Cm_Hopper_Final"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_final",\r    "title": "Gets a list of HopperFinal",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_final -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperFinal",\r    "group": "Cm_Hopper_Final",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/hopper_final?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/hopper_final?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/hopper_final?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/hopper_final?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/hopper_final?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperFinal/index.js",\r    "groupTitle": "Cm_Hopper_Final"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_final/{id}",\r    "title": "Gets a single HopperFinal",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_final/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowHopperFinal",\r    "group": "Cm_Hopper_Final",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperFinal/index.js",\r    "groupTitle": "Cm_Hopper_Final"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/hopper_final/{id}",\r    "title": "Update a single hopper final",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/hopper_final/{id} -d '{\"disposition\": \"OK\"}' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "update",\r    "group": "Cm_Hopper_Final",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperFinal/index.js",\r    "groupTitle": "Cm_Hopper_Final"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_history/describe",\r    "title": "Gets table info about HopperHistory",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_history/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeHopperHistory",\r    "group": "Cm_Hopper_History",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperHistory/index.js",\r    "groupTitle": "Cm_Hopper_History"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_history",\r    "title": "Gets a list of HopperHistory",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_history -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperHistory",\r    "group": "Cm_Hopper_History",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/hopper_history?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/hopper_history?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/hopper_history?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/hopper_history?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/hopper_history?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperHistory/index.js",\r    "groupTitle": "Cm_Hopper_History"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper_history/{id}",\r    "title": "Gets a single HopperHistory",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper_history/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowHopperHistory",\r    "group": "Cm_Hopper_History",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperHistory/index.js",\r    "groupTitle": "Cm_Hopper_History"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/hopper_history/{id}",\r    "title": "Update a single hopper history",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/hopper_history/{id} -d '{\"disposition\": \"OK\"}' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "update",\r    "group": "Cm_Hopper_History",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopperHistory/index.js",\r    "groupTitle": "Cm_Hopper_History"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper/preview/{id}",\r    "title": "Call Dialer Contact",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper/preview/{id} -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "callDialerContact",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/hopper/{id}",\r    "title": "Delete Hopper",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "destroy",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/hopper/preview",\r    "title": "Gets Dialer Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper/preview -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDialerContacts",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/hopper/{id}",\r    "title": "Update an existing Hopper",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/hopper/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateHopper",\r    "group": "Cm_Hopper",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmHopper/index.js",\r    "groupTitle": "Cm_Hopper"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/lists",\r    "title": "Creates a new List",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateLists",\r    "group": "Cm_Lists",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/lists/{id}",\r    "title": "Deletes a List",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteLists",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists/{id}/users",\r    "title": "Gets agents from list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/users -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists",\r    "title": "Gets a list of Lists",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetLists",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cm/lists?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cm/lists?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cm/lists?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cm/lists?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cm/lists?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cm/lists/{id}/users",\r    "title": "Removes agents from a list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists/{id}",\r    "title": "Gets a single List",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowLists",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/lists/{id}/users",\r    "title": "Adds agents to a list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/users -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addAgents",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/lists/{id}/contacts",\r    "title": "Creates new contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/contacts -d '[{\"firstName\": \"John Doe\", \"email\": \"john.doe@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addContacts",\r    "group": "Cm_Lists",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "firstName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "street",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "postalCode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "city",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "country",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dateOfBirth",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mobile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fax",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "url",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/lists/{id}/fields",\r    "title": "Creates a new custom field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/fields -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addCustomField",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "post",\r    "url": "/api/lists/{id}/dispositions",\r    "title": "Creates a new sub disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/lists/{id}/disposition -d '{\"name\": \"SATISFIED\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDisposition",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists/{id}/contacts",\r    "title": "Gets List Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/contacts -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getContacts",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists/{id}/fields",\r    "title": "Gets Custom Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getCustomFields",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists/{id}/dispositions",\r    "title": "Gets Dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/dispositions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDispositions",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "get",\r    "url": "/api/cm/lists/{id}/contacts/csv",\r    "title": "Gets CSV List Contacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id}/contacts/csv -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "grunt",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "put",\r    "url": "/api/cm/lists/{id}",\r    "title": "Update an existing List",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/lists/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateLists",\r    "group": "Cm_Lists",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmList/index.js",\r    "groupTitle": "Cm_Lists"\r  },\r  {\r    "type": "delete",\r    "url": "/api/conditions/{id}",\r    "title": "Deletes a Condition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/conditions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteConditions",\r    "group": "Conditions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/condition/index.js",\r    "groupTitle": "Conditions"\r  },\r  {\r    "type": "put",\r    "url": "/api/conditions/{id}",\r    "title": "Update an existing Condition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/conditions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateConditions",\r    "group": "Conditions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/condition/index.js",\r    "groupTitle": "Conditions"\r  },\r  {\r    "type": "post",\r    "url": "/api/cm/custom_field",\r    "title": "Create a new custom field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cm/custom_field  -d '{\"name\": \"mycf\", \"type\": \"text\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateCustomField",\r    "group": "Custom_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cmCustomField/index.js",\r    "groupTitle": "Custom_Fields"\r  },\r  {\r    "type": "delete",\r    "url": "/api/dashboards/items/{id}",\r    "title": "Deletes a Dashboard Item",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/items/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDashboard_Items",\r    "group": "Dashboard_Items",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboardItem/index.js",\r    "groupTitle": "Dashboard_Items"\r  },\r  {\r    "type": "get",\r    "url": "/api/dashboards/items/{id}",\r    "title": "Gets a single Dashboard Item",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/items/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDashboard_Items",\r    "group": "Dashboard_Items",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboardItem/index.js",\r    "groupTitle": "Dashboard_Items"\r  },\r  {\r    "type": "put",\r    "url": "/api/dashboards/items/{id}",\r    "title": "Update an existing Dashboard Item",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/items/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDashboard_Items",\r    "group": "Dashboard_Items",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboardItem/index.js",\r    "groupTitle": "Dashboard_Items"\r  },\r  {\r    "type": "post",\r    "url": "/api/dashboards",\r    "title": "Creates a new Dashboard",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDashboards",\r    "group": "Dashboards",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "interval",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "delete",\r    "url": "/api/dashboards/{id}",\r    "title": "Deletes a Dashboard",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDashboards",\r    "group": "Dashboards",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "get",\r    "url": "/api/dashboards",\r    "title": "Gets a list of Dashboards",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetDashboards",\r    "group": "Dashboards",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/dashboards?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/dashboards?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/dashboards?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/dashboards?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/dashboards?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "get",\r    "url": "/api/dashboards/{id}",\r    "title": "Gets a single Dashboard",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDashboards",\r    "group": "Dashboards",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "post",\r    "url": "/api/dashboards/{id}/items",\r    "title": "Creates new item",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/{id}/items -d '{\"type\": \"counter\", \"...\": \"...\"}]' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addItem",\r    "group": "Dashboards",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "get",\r    "url": "/api/dashboards/{id}/run",\r    "title": "Run dashboard widgets queries",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/{id}/run -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "run",\r    "group": "Dashboards",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "put",\r    "url": "/api/dashboards/{id}",\r    "title": "Update an existing Dashboard",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDashboards",\r    "group": "Dashboards",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboards"\r  },\r  {\r    "type": "get",\r    "url": "/api/dashboards/{id}/items",\r    "title": "Gets items",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/dashboards/{id}/items -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getItems",\r    "group": "Dashboars",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/dashboard/index.js",\r    "groupTitle": "Dashboars"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/accounts",\r    "title": "Creates a new Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAccounts",\r    "group": "Fax_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "ecm",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "headerinfo",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "localstationid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"2400\"",\r              "\"4800\"",\r              "\"7200\"",\r              "\"9600\"",\r              "\"12000\"",\r              "\"14400\""\r            ],\r            "optional": true,\r            "field": "minrate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"2400\"",\r              "\"4800\"",\r              "\"7200\"",\r              "\"9600\"",\r              "\"12000\"",\r              "\"14400\""\r            ],\r            "optional": true,\r            "field": "maxrate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "modem",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "gateway",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "faxdetect",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "t38timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SIP\"",\r              "\"IAX\"",\r              "\"DADHI\"",\r              "\"KHOMP\""\r            ],\r            "optional": true,\r            "field": "tech",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "acceptUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "acceptMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "rejectMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "actions",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closeUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "closeMethod",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/accounts/{id}",\r    "title": "Deletes a Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAccounts",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/accounts",\r    "title": "Gets a list of Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAccounts",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/accounts/{id}",\r    "title": "Gets a single Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAccounts",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/accounts/{id}/applications",\r    "title": "Creates new applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addApplications",\r    "group": "Fax_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"queue\"",\r              "\"agent\"",\r              "\"sendMail\"",\r              "\"sendSms\""\r            ],\r            "optional": false,\r            "field": "app",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interval",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "data7",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data8",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data9",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data10",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/accounts/{id}/dispositions",\r    "title": "Creates new disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDisposition",\r    "group": "Fax_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/accounts/{id}/dispositions",\r    "title": "Creates many dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDispositions",\r    "group": "Fax_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/accounts/{id}/interactions",\r    "title": "Creates new interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/interactions -d '[{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addInteraction",\r    "group": "Fax_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "account",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "faxIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "faxOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENT\"",\r              "\"SENDING\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/accounts/{id}/applications",\r    "title": "Gets account pplications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/applications -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getApplications",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/accounts/{id}/dispositions",\r    "title": "Gets account dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/dispositions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDispositions",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/accounts/{id}/interactions",\r    "title": "Gets account interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id}/interactions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getInteraction",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/accounts/{id}",\r    "title": "Update an existing Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAccounts",\r    "group": "Fax_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAccount/index.js",\r    "groupTitle": "Fax_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/applications/{id}",\r    "title": "Deletes a Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/applications/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteApplications",\r    "group": "Fax_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxApplication/index.js",\r    "groupTitle": "Fax_Applications"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/applications/{id}",\r    "title": "Gets a single Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/applications/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowApplications",\r    "group": "Fax_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxApplication/index.js",\r    "groupTitle": "Fax_Applications"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/applications/{id}",\r    "title": "Update an existing Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateApplications",\r    "group": "Fax_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxApplication/index.js",\r    "groupTitle": "Fax_Applications"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/attachments",\r    "title": "Creates a new Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/attachments -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAttachments",\r    "group": "Fax_Attachments",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "path",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "basename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAttachment/index.js",\r    "groupTitle": "Fax_Attachments"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/attachments/{id}",\r    "title": "Deletes a Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/attachments/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAttachments",\r    "group": "Fax_Attachments",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAttachment/index.js",\r    "groupTitle": "Fax_Attachments"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/attachments",\r    "title": "Gets a list of Attachments",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/attachments -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAttachments",\r    "group": "Fax_Attachments",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/attachments?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/attachments?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/attachments?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/attachments?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/attachments?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAttachment/index.js",\r    "groupTitle": "Fax_Attachments"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/attachments/{id}",\r    "title": "Gets a single Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/attachments/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAttachments",\r    "group": "Fax_Attachments",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAttachment/index.js",\r    "groupTitle": "Fax_Attachments"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/attachments/{id}",\r    "title": "Update an existing Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/attachments/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAttachments",\r    "group": "Fax_Attachments",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxAttachment/index.js",\r    "groupTitle": "Fax_Attachments"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/dispositions",\r    "title": "Creates a new Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDispositions",\r    "group": "Fax_Dispositions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxDisposition/index.js",\r    "groupTitle": "Fax_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/dispositions/{id}",\r    "title": "Deletes a Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/dispositions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDispositions",\r    "group": "Fax_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxDisposition/index.js",\r    "groupTitle": "Fax_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/dispositions/{id}",\r    "title": "Gets a single Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/dispositions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDispositions",\r    "group": "Fax_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxDisposition/index.js",\r    "groupTitle": "Fax_Dispositions"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/dispositions/{id}",\r    "title": "Update an existing Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDispositions",\r    "group": "Fax_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxDisposition/index.js",\r    "groupTitle": "Fax_Dispositions"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/interactions",\r    "title": "Creates a new Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateInteractions",\r    "group": "Fax_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "account",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "faxIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "faxOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENT\"",\r              "\"SENDING\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/interactions/{id}",\r    "title": "Deletes a Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteInteractions",\r    "group": "Fax_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/interactions/describe",\r    "title": "Gets table info about Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeInteractions",\r    "group": "Fax_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/interactions",\r    "title": "Gets a list of Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetInteractions",\r    "group": "Fax_Interactions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/interactions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/interactions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/interactions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/interactions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/interactions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/interactions/{id}",\r    "title": "Gets a single Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowInteractions",\r    "group": "Fax_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/interactions/{id}/messages",\r    "title": "Creates new messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addMessage",\r    "group": "Fax_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENT\"",\r              "\"SENDING\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "channelstate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channelstatedesc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "exten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "linkedid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "localstationid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remotestationid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "pagestransferred",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "resolution",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transferrate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "filename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastStatus",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "error",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "text",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "retry",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/interactions/{id}/messages",\r    "title": "Gets interaction messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions/{id}/messages -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getMessages",\r    "group": "Fax_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/interactions/{id}",\r    "title": "Update an existing Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateInteractions",\r    "group": "Fax_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxInteraction/index.js",\r    "groupTitle": "Fax_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/messages",\r    "title": "Creates a new Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMessages",\r    "group": "Fax_Messages",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENT\"",\r              "\"SENDING\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "channelstate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channelstatedesc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "exten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "linkedid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "localstationid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remotestationid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "pagestransferred",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "resolution",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transferrate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "filename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastStatus",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "error",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "text",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "retry",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxMessage/index.js",\r    "groupTitle": "Fax_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/messages/{id}",\r    "title": "Deletes a Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/messages/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMessages",\r    "group": "Fax_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxMessage/index.js",\r    "groupTitle": "Fax_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/messages/describe",\r    "title": "Gets table info about Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/messages/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeMessages",\r    "group": "Fax_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxMessage/index.js",\r    "groupTitle": "Fax_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/messages",\r    "title": "Gets a list of Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/messages -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMessages",\r    "group": "Fax_Messages",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/messages?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/messages?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/messages?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/messages?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/messages?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxMessage/index.js",\r    "groupTitle": "Fax_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/messages/{id}",\r    "title": "Gets a single Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/messages/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMessages",\r    "group": "Fax_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxMessage/index.js",\r    "groupTitle": "Fax_Messages"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/messages/{id}",\r    "title": "Update an existing Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMessages",\r    "group": "Fax_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxMessage/index.js",\r    "groupTitle": "Fax_Messages"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/queues/{id}/users",\r    "title": "Add agents to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddAgents",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/queues/{id}/teams",\r    "title": "Add teams to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddTeams",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/queues",\r    "title": "Creates a new Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateQueues",\r    "group": "Fax_Queues",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rrmemory\"",\r              "\"beepall\"",\r              "\"roundrobin\""\r            ],\r            "optional": false,\r            "field": "strategy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "lastAgent",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/queues/{id}",\r    "title": "Deletes a Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteQueues",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/queues/{id}/users",\r    "title": "Gets queue agents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id}/users -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/queues",\r    "title": "Gets a list of Queues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/queues?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/queues?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/queues?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/queues?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/queues?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/queues/{id}/teams",\r    "title": "Gets queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/queues/{id}/users",\r    "title": "Removes agents from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/queues/{id}",\r    "title": "Gets a single Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueues",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/queues/{id}",\r    "title": "Update an existing Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateQueues",\r    "group": "Fax_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Fax_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "Fax_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountphone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "messageid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calledAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxReport/index.js",\r    "groupTitle": "Fax_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "Fax_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxReport/index.js",\r    "groupTitle": "Fax_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "Fax_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxReport/index.js",\r    "groupTitle": "Fax_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "Fax_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxReport/index.js",\r    "groupTitle": "Fax_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "Fax_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxReport/index.js",\r    "groupTitle": "Fax_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/fax/sessions/reports",\r    "title": "Creates a new Session Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/sessions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSession_Reports",\r    "group": "Fax_Session_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountphone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "joinAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "leaveAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "completeAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "complete",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"agent\""\r            ],\r            "optional": true,\r            "field": "completeReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxSessionReport/index.js",\r    "groupTitle": "Fax_Session_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/sessions/reports/{id}",\r    "title": "Deletes a Session Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/sessions/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSession_Reports",\r    "group": "Fax_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxSessionReport/index.js",\r    "groupTitle": "Fax_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/sessions/reports/describe",\r    "title": "Gets table info about Session Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/sessions/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeSession_Reports",\r    "group": "Fax_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxSessionReport/index.js",\r    "groupTitle": "Fax_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/sessions/reports",\r    "title": "Gets a list of Session Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/sessions/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSession_Reports",\r    "group": "Fax_Session_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/fax/sessions/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/fax/sessions/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/fax/sessions/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/fax/sessions/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/fax/sessions/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxSessionReport/index.js",\r    "groupTitle": "Fax_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/fax/sessions/reports/{id}",\r    "title": "Gets a single Session Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/sessions/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSession_Reports",\r    "group": "Fax_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxSessionReport/index.js",\r    "groupTitle": "Fax_Session_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/fax/sessions/reports/{id}",\r    "title": "Update an existing Session Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/sessions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSession_Reports",\r    "group": "Fax_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxSessionReport/index.js",\r    "groupTitle": "Fax_Session_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/freshdesk/accounts",\r    "title": "Creates a new Freshdesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateFreshdesk_Accounts",\r    "group": "Freshdesk_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "apiKey",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remoteUri",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "serverUrl",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/freshdesk/accounts/{id}",\r    "title": "Deletes a Freshdesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteFreshdesk_Accounts",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/accounts",\r    "title": "Gets a list of Freshdesk Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetFreshdesk_Accounts",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/freshdesk/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/freshdesk/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/freshdesk/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/freshdesk/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/freshdesk/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/accounts/{id}",\r    "title": "Gets a single Freshdesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowFreshdesk_Accounts",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/freshdesk/accounts/{id}/configurations",\r    "title": "Creates new configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addConfiguration",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/accounts/{id}/configurations",\r    "title": "Gets account configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/configurations -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getConfigurations",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/accounts/{id}/fields",\r    "title": "Gets account fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/freshdesk/accounts/{id}",\r    "title": "Update an existing Freshdesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateFreshdesk_Accounts",\r    "group": "Freshdesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskAccount/index.js",\r    "groupTitle": "Freshdesk_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/freshdesk/configurations",\r    "title": "Creates a new Freshdesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateFreshdesk_Configurations",\r    "group": "Freshdesk_Configurations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/freshdesk/configurations/{id}",\r    "title": "Deletes a Freshdesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteFreshdesk_Configurations",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/configurations",\r    "title": "Gets a list of Freshdesk Configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetFreshdesk_Configurations",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/freshdesk/configurations?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/freshdesk/configurations?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/freshdesk/configurations?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/freshdesk/configurations?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/freshdesk/configurations?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/configurations/{id}",\r    "title": "Gets a single Freshdesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowFreshdesk_Configurations",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/configurations/{id}/descriptions",\r    "title": "Gets configurations descriptions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/descriptions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDescriptions",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/configurations/{id}/fields",\r    "title": "Gets configurations fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/configurations/{id}/subjects",\r    "title": "Gets configurations subjects",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/subjects -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getSubjects",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/configurations/{id}/tags",\r    "title": "Gets configurations tags",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/tags -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getTags",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/freshdesk/configurations/{id}/tags",\r    "title": "Sets new tags",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "setTags",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/freshdesk/configurations/{id}",\r    "title": "Update an existing Freshdesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateFreshdesk_Configurations",\r    "group": "Freshdesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskConfiguration/index.js",\r    "groupTitle": "Freshdesk_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/freshdesk/fields",\r    "title": "Creates a new Freshdesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateFreshdesk_Fields",\r    "group": "Freshdesk_Fields",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\"",\r              "\"keyValue\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "content",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "key",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\""\r            ],\r            "optional": true,\r            "field": "keyType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "keyContent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "idField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "nameField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "customField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "variableName",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskField/index.js",\r    "groupTitle": "Freshdesk_Fields"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/freshdesk/fields/{id}",\r    "title": "Deletes a Freshdesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteFreshdesk_Fields",\r    "group": "Freshdesk_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskField/index.js",\r    "groupTitle": "Freshdesk_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/fields",\r    "title": "Gets a list of Freshdesk Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/fields -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetFreshdesk_Fields",\r    "group": "Freshdesk_Fields",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/freshdesk/fields?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/freshdesk/fields?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/freshdesk/fields?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/freshdesk/fields?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/freshdesk/fields?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskField/index.js",\r    "groupTitle": "Freshdesk_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/freshdesk/fields/{id}",\r    "title": "Gets a single Freshdesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowFreshdesk_Fields",\r    "group": "Freshdesk_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskField/index.js",\r    "groupTitle": "Freshdesk_Fields"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/freshdesk/fields/{id}",\r    "title": "Update an existing Freshdesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/freshdesk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateFreshdesk_Fields",\r    "group": "Freshdesk_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intFreshdeskField/index.js",\r    "groupTitle": "Freshdesk_Fields"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/reports",\r    "title": "Creates a new Integration Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateIntegration_Reports",\r    "group": "Integration_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "integration",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "eventChannel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "exitStatus",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "ticketId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "integrationId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contacts",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interface",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "agentcalledAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "agentconnectAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "holdtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "agentcomplete",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "agentcompleteAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "talktime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "agentacw",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "acwtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "agentringnoanswer",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "agentringnoanswerAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "agentdump",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "agentdumpAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastevent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "channelstate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channelstatedesc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "language",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "exten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destchannel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "destchannelstate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destchannelstatedesc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destcalleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destcalleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destconnectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destconnectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destlanguage",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destaccountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destcontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destpriority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "destuniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "messageId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "inReplyTo",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "cc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "attachment",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "html",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "text",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENT\"",\r              "\"SENDING\"",\r              "\"RECEIVED\"",\r              "\"FAILED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "url",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "app",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "appdata",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "projectId",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/integrationReport/index.js",\r    "groupTitle": "Integration_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/reports/{id}",\r    "title": "Deletes a Integration Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteIntegration_Reports",\r    "group": "Integration_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/integrationReport/index.js",\r    "groupTitle": "Integration_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/reports/describe",\r    "title": "Gets table info about Integration Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeIntegration_Reports",\r    "group": "Integration_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/integrationReport/index.js",\r    "groupTitle": "Integration_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/reports",\r    "title": "Gets a list of Integration Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetIntegration_Reports",\r    "group": "Integration_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/integrationReport/index.js",\r    "groupTitle": "Integration_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/reports/{id}",\r    "title": "Gets a single Integration Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowIntegration_Reports",\r    "group": "Integration_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/integrationReport/index.js",\r    "groupTitle": "Integration_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/reports/{id}",\r    "title": "Update an existing Integration Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateIntegration_Reports",\r    "group": "Integration_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/integrationReport/index.js",\r    "groupTitle": "Integration_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/intervals",\r    "title": "Creates a new Interval",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateIntervals",\r    "group": "Intervals",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interval",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "delete",\r    "url": "/api/intervals/{id}",\r    "title": "Deletes a Interval",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteIntervals",\r    "group": "Intervals",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "get",\r    "url": "/api/intervals",\r    "title": "Gets a list of Intervals",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetIntervals",\r    "group": "Intervals",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/intervals?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/intervals?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/intervals?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/intervals?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/intervals?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "get",\r    "url": "/api/intervals/{id}",\r    "title": "Gets a single Interval",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowIntervals",\r    "group": "Intervals",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "post",\r    "url": "/api/intervals/{id}/sub_intervals",\r    "title": "Creates a new sub interval",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -d '{\"interval\": \"00:00-08:30,mon-fri,*,*\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addInterval",\r    "group": "Intervals",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "post",\r    "url": "/api/intervals/{id}/sub_intervals/create_many",\r    "title": "Create new sub intervals set",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addIntervals",\r    "group": "Intervals",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "get",\r    "url": "/api/intervals/{id}/sub_intervals",\r    "title": "Get sub intervals set",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals/{id}/sub_intervals -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getIntervals",\r    "group": "Intervals",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "put",\r    "url": "/api/intervals/{id}",\r    "title": "Update an existing Interval",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/intervals/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateIntervals",\r    "group": "Intervals",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/interval/index.js",\r    "groupTitle": "Intervals"\r  },\r  {\r    "type": "post",\r    "url": "/api/jira",\r    "title": "Creates a new issue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jira -d '{\"key\": \"Bug\", \"description\": \"I can't do it!\"}' \\\n -H \"Content-Type: application/json\" -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Creates_Issue",\r    "group": "Issue",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"Bug\""\r            ],\r            "optional": true,\r            "field": "issuetype",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "summary",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jira/index.js",\r    "groupTitle": "Issue"\r  },\r  {\r    "type": "post",\r    "url": "/api/jscripty/answers/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/answers/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "JscriptyAnswerReport",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "question",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "answer",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "projectname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyAnswerReport/index.js",\r    "groupTitle": "JscriptyAnswerReport"\r  },\r  {\r    "type": "delete",\r    "url": "/api/jscripty/answers/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "JscriptyAnswerReport",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyAnswerReport/index.js",\r    "groupTitle": "JscriptyAnswerReport"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/answers/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/answers/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "JscriptyAnswerReport",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/jscripty/answers/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/jscripty/answers/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/jscripty/answers/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/jscripty/answers/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/jscripty/answers/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyAnswerReport/index.js",\r    "groupTitle": "JscriptyAnswerReport"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/answers/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "JscriptyAnswerReport",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyAnswerReport/index.js",\r    "groupTitle": "JscriptyAnswerReport"\r  },\r  {\r    "type": "put",\r    "url": "/api/jscripty/answers/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/answers/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "JscriptyAnswerReport",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyAnswerReport/index.js",\r    "groupTitle": "JscriptyAnswerReport"\r  },\r  {\r    "type": "post",\r    "url": "/api/jscripty/questions/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/questions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "JscriptyQuestionReport",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "question",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "answer",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "projectname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyQuestionReport/index.js",\r    "groupTitle": "JscriptyQuestionReport"\r  },\r  {\r    "type": "delete",\r    "url": "/api/jscripty/questions/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "JscriptyQuestionReport",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyQuestionReport/index.js",\r    "groupTitle": "JscriptyQuestionReport"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/questions/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/questions/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "JscriptyQuestionReport",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/jscripty/questions/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/jscripty/questions/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/jscripty/questions/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/jscripty/questions/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/jscripty/questions/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyQuestionReport/index.js",\r    "groupTitle": "JscriptyQuestionReport"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/questions/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "JscriptyQuestionReport",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyQuestionReport/index.js",\r    "groupTitle": "JscriptyQuestionReport"\r  },\r  {\r    "type": "put",\r    "url": "/api/jscripty/questions/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/questions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "JscriptyQuestionReport",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyQuestionReport/index.js",\r    "groupTitle": "JscriptyQuestionReport"\r  },\r  {\r    "type": "post",\r    "url": "/api/jscripty/sessions/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/sessions/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "JscriptySessionReport",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "starttime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "endtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "projectname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptySessionReport/index.js",\r    "groupTitle": "JscriptySessionReport"\r  },\r  {\r    "type": "delete",\r    "url": "/api/jscripty/sessions/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "JscriptySessionReport",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptySessionReport/index.js",\r    "groupTitle": "JscriptySessionReport"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/sessions/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/sessions/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "JscriptySessionReport",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/jscripty/sessions/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/jscripty/sessions/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/jscripty/sessions/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/jscripty/sessions/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/jscripty/sessions/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptySessionReport/index.js",\r    "groupTitle": "JscriptySessionReport"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/sessions/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "JscriptySessionReport",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptySessionReport/index.js",\r    "groupTitle": "JscriptySessionReport"\r  },\r  {\r    "type": "put",\r    "url": "/api/jscripty/sessions/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/sessions/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "JscriptySessionReport",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptySessionReport/index.js",\r    "groupTitle": "JscriptySessionReport"\r  },\r  {\r    "type": "post",\r    "url": "/api/jscripty/projects",\r    "title": "Creates a new Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/projects -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateProjects",\r    "group": "Jscripty_Projects",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "formData",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyProject/index.js",\r    "groupTitle": "Jscripty_Projects"\r  },\r  {\r    "type": "delete",\r    "url": "/api/jscripty/projects/{id}",\r    "title": "Deletes a Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/projects/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteProjects",\r    "group": "Jscripty_Projects",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyProject/index.js",\r    "groupTitle": "Jscripty_Projects"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/projects",\r    "title": "Gets a list of Projects",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/projects -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetProjects",\r    "group": "Jscripty_Projects",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/jscripty/projects?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/jscripty/projects?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/jscripty/projects?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/jscripty/projects?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/jscripty/projects?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyProject/index.js",\r    "groupTitle": "Jscripty_Projects"\r  },\r  {\r    "type": "get",\r    "url": "/api/jscripty/projects/{id}",\r    "title": "Gets a single Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/projects/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowProjects",\r    "group": "Jscripty_Projects",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyProject/index.js",\r    "groupTitle": "Jscripty_Projects"\r  },\r  {\r    "type": "put",\r    "url": "/api/jscripty/projects/{id}",\r    "title": "Update an existing Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/jscripty/projects/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateProjects",\r    "group": "Jscripty_Projects",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/jscriptyProject/index.js",\r    "groupTitle": "Jscripty_Projects"\r  },\r  {\r    "type": "get",\r    "url": "/api/license",\r    "title": "Gets License Info",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/license -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "index",\r    "group": "License",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/license/index.js",\r    "groupTitle": "License"\r  },\r  {\r    "type": "put",\r    "url": "/api/license/{id}",\r    "title": "Update an existing License",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/license/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateLiense",\r    "group": "License",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/license/index.js",\r    "groupTitle": "License"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/in_servers",\r    "title": "Creates a new IMAP server",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddImap",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "host",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "port",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mailbox",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "ssl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "delete",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"UNSEEN\""\r            ],\r            "optional": true,\r            "field": "filter",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"IMAP\"",\r              "\"POP3\""\r            ],\r            "optional": true,\r            "field": "protocol",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"CONNECTING\"",\r              "\"CONNECTED\"",\r              "\"DISCONNECTED\"",\r              "\"ERROR\"",\r              "\"UNKNOWN\""\r            ],\r            "optional": true,\r            "field": "state",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "source",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "connTimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "authTimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "keepalive",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/out_servers",\r    "title": "Creates a new SMTP server",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -d '{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddSmtp",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "service",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "host",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "user",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "pass",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "port",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "secure",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "state",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts",\r    "title": "Creates a new Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAccounts",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "whiteLabel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "acceptUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "acceptMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "rejectMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "actions",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closeUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "closeMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "signature",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "custom",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "service",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/accounts/{id}",\r    "title": "Deletes a Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAccounts",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts",\r    "title": "Gets a list of Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAccounts",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}/in_servers",\r    "title": "Gets account IMAP server",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetImap",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}/out_servers",\r    "title": "Gets account SMTP server",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetSmtp",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/accounts/{id}/in_servers",\r    "title": "Removes IMAP server from an account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/in_servers -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveImmap",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/accounts/{id}/out_servers",\r    "title": "Removes SMTP server from an account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/out_servers -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveSmtp",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}",\r    "title": "Gets a single Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAccounts",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/applications",\r    "title": "Creates new applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addApplications",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"queue\"",\r              "\"agent\"",\r              "\"sendMail\"",\r              "\"replyMail\"",\r              "\"sendSms\""\r            ],\r            "optional": true,\r            "field": "app",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interval",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "data7",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data8",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data9",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data10",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/dispositions",\r    "title": "Creates new disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -d '{\"name\": \"vip\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDisposition",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/dispositions",\r    "title": "Creates many dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -d '[{\"name\": \"vip\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDispositions",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/interactions",\r    "title": "Creates new interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/interactions -d '[{\"subject\": \"My printer is on fire!\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addInteraction",\r    "group": "Mail_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "account",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "attachment",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "mailIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "mailOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "deleted",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ParentId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}/applications",\r    "title": "Gets account applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/applications -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getApplications",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}/dispositions",\r    "title": "Gets account dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/dispositions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDispositions",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}/interactions",\r    "title": "Gets account interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/interactions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getInteraction",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/accounts/{id}/send",\r    "title": "Send new mail",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/send -d '{from: '\"John Doe\" <john.doe@xcally.com>'}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "sendMail",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/accounts/{id}",\r    "title": "Update an existing Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAccounts",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/accounts/{id}/verify",\r    "title": "Verify mail account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/accounts/{id}/verify -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "verifySmtp",\r    "group": "Mail_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAccount/index.js",\r    "groupTitle": "Mail_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/applications/{id}",\r    "title": "Deletes a Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/applications/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteApplications",\r    "group": "Mail_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailApplication/index.js",\r    "groupTitle": "Mail_Applications"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/applications/{id}",\r    "title": "Gets a single Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/applications/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowApplications",\r    "group": "Mail_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailApplication/index.js",\r    "groupTitle": "Mail_Applications"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/applications/{id}",\r    "title": "Update an existing Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateApplications",\r    "group": "Mail_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailApplication/index.js",\r    "groupTitle": "Mail_Applications"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/attachments",\r    "title": "Creates a new Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/attachments -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAttachments",\r    "group": "Mail_Attachments",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "domain",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "size",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "path",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "basename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAttachment/index.js",\r    "groupTitle": "Mail_Attachments"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/attachments/{id}",\r    "title": "Deletes a Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/attachments/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAttachments",\r    "group": "Mail_Attachments",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAttachment/index.js",\r    "groupTitle": "Mail_Attachments"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/attachments",\r    "title": "Gets a list of Attachments",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/attachments -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAttachments",\r    "group": "Mail_Attachments",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/attachments?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/attachments?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/attachments?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/attachments?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/attachments?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAttachment/index.js",\r    "groupTitle": "Mail_Attachments"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/attachments/{id}",\r    "title": "Gets a single Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/attachments/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAttachments",\r    "group": "Mail_Attachments",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAttachment/index.js",\r    "groupTitle": "Mail_Attachments"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/attachments/{id}",\r    "title": "Update an existing Attachment",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/attachments/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAttachments",\r    "group": "Mail_Attachments",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailAttachment/index.js",\r    "groupTitle": "Mail_Attachments"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/dispositions",\r    "title": "Creates a new Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDispositions",\r    "group": "Mail_Dispositions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailDisposition/index.js",\r    "groupTitle": "Mail_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/dispositions/{id}",\r    "title": "Deletes a Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/dispositions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDispositions",\r    "group": "Mail_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailDisposition/index.js",\r    "groupTitle": "Mail_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/dispositions/{id}",\r    "title": "Gets a single Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/dispositions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDispositions",\r    "group": "Mail_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailDisposition/index.js",\r    "groupTitle": "Mail_Dispositions"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/dispositions/{id}",\r    "title": "Update an existing Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDispositions",\r    "group": "Mail_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailDisposition/index.js",\r    "groupTitle": "Mail_Dispositions"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/interactions",\r    "title": "Creates a new Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateInteractions",\r    "group": "Mail_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "account",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "attachment",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "mailIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "mailOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "deleted",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ParentId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/interactions/{id}",\r    "title": "Deletes a Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteInteractions",\r    "group": "Mail_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/interactions/describe",\r    "title": "Gets table info about Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeInteractions",\r    "group": "Mail_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/interactions",\r    "title": "Gets a list of Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetInteractions",\r    "group": "Mail_Interactions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/interactions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/interactions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/interactions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/interactions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/interactions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/interactions/{id}",\r    "title": "Gets a single Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowInteractions",\r    "group": "Mail_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/interactions/{id}/messages",\r    "title": "Creates new message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions/{id}/messages -d '[{\"to\": \"sales@xcally.com\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addMessage",\r    "group": "Mail_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "messageId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "inReplyTo",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "cc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "bcc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "fromId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "attachment",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "text",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "html",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "auto",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "retry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "voiceSource",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "userName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "userFullname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "accountId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountName",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/interactions/{id}/messages",\r    "title": "Gets interaction messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions/{id}/messages -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getMessages",\r    "group": "Mail_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/interactions/{id}",\r    "title": "Update an existing Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateInteractions",\r    "group": "Mail_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailInteraction/index.js",\r    "groupTitle": "Mail_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/messages",\r    "title": "Creates a new Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMessages",\r    "group": "Mail_Messages",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "messageId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "inReplyTo",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "cc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "bcc",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "fromId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "attachment",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "text",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "html",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "auto",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "retry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "voiceSource",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "userName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "userFullname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "accountId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountName",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailMessage/index.js",\r    "groupTitle": "Mail_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/messages/{id}",\r    "title": "Deletes a Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/messages/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMessages",\r    "group": "Mail_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailMessage/index.js",\r    "groupTitle": "Mail_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/messages/describe",\r    "title": "Gets table info about Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/messages/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeMessages",\r    "group": "Mail_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailMessage/index.js",\r    "groupTitle": "Mail_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/messages",\r    "title": "Gets a list of Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/messages -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMessages",\r    "group": "Mail_Messages",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/messages?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/messages?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/messages?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/messages?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/messages?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailMessage/index.js",\r    "groupTitle": "Mail_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/messages/{id}",\r    "title": "Gets a single Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/messages/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMessages",\r    "group": "Mail_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailMessage/index.js",\r    "groupTitle": "Mail_Messages"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/messages/{id}",\r    "title": "Update an existing Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMessages",\r    "group": "Mail_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailMessage/index.js",\r    "groupTitle": "Mail_Messages"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/queues/{id}/users",\r    "title": "Add agents to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddAgents",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/queues/{id}/teams",\r    "title": "Add teams to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddTeams",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/queues",\r    "title": "Creates a new Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateQueues",\r    "group": "Mail_Queues",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rrmemory\"",\r              "\"beepall\"",\r              "\"roundrobin\""\r            ],\r            "optional": true,\r            "field": "strategy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "lastAgent",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/queues/{id}",\r    "title": "Deletes a Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteQueues",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/queues/{id}/users",\r    "title": "Gets queue agents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id}/users -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/queues",\r    "title": "Gets a list of Queues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/queues?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/queues?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/queues?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/queues?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/queues?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/queues/{id}/teams",\r    "title": "Gets queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/queues/{id}/users",\r    "title": "Removes agents from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/queues/{id}",\r    "title": "Gets a single Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueues",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/queues/{id}",\r    "title": "Update an existing Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateQueues",\r    "group": "Mail_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Mail_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "Mail_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailReport/index.js",\r    "groupTitle": "Mail_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "Mail_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailReport/index.js",\r    "groupTitle": "Mail_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/mail/out_servers",\r    "title": "Creates a new SMTP",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/out_servers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSMTPs",\r    "group": "Mail_SMTP",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "service",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "host",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "user",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "pass",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "port",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "secure",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "state",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailServerOut/index.js",\r    "groupTitle": "Mail_SMTP"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/out_servers/{id}",\r    "title": "Deletes a SMTP",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/out_servers/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSMTPs",\r    "group": "Mail_SMTP",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailServerOut/index.js",\r    "groupTitle": "Mail_SMTP"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/out_servers",\r    "title": "Gets a list of SMTPs",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/out_servers -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSMTPs",\r    "group": "Mail_SMTP",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/out_servers?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/out_servers?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/out_servers?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/out_servers?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/out_servers?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailServerOut/index.js",\r    "groupTitle": "Mail_SMTP"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/out_servers/{id}",\r    "title": "Gets a single SMTP",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/out_servers/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSMTPs",\r    "group": "Mail_SMTP",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailServerOut/index.js",\r    "groupTitle": "Mail_SMTP"\r  },\r  {\r    "type": "put",\r    "url": "/api/mail/out_servers/{id}",\r    "title": "Update an existing SMTP",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/out_servers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSMTPs",\r    "group": "Mail_SMTP",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailServerOut/index.js",\r    "groupTitle": "Mail_SMTP"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/sessions/reports/describe",\r    "title": "Gets table info about Session Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/sessions/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeSession_Reports",\r    "group": "Mail_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailSessionReport/index.js",\r    "groupTitle": "Mail_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/sessions/reports",\r    "title": "Gets a list of Session Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/sessions/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSession_Reports",\r    "group": "Mail_Session_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/mail/sessions/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/mail/sessions/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/mail/sessions/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/mail/sessions/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/mail/sessions/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailSessionReport/index.js",\r    "groupTitle": "Mail_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/mail/sessions/reports/{id}",\r    "title": "Gets a single Session Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/sessions/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSession_Reports",\r    "group": "Mail_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailSessionReport/index.js",\r    "groupTitle": "Mail_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/members/reports/describe",\r    "title": "Gets table info about Member Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/members/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeMember_Reports",\r    "group": "Member_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/memberReport/index.js",\r    "groupTitle": "Member_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/members/reports",\r    "title": "Gets a list of Member Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/members/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMember_Reports",\r    "group": "Member_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/members/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/members/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/members/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/members/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/members/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/memberReport/index.js",\r    "groupTitle": "Member_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/members/reports/{id}",\r    "title": "Gets a single Member Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/members/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMember_Reports",\r    "group": "Member_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/memberReport/index.js",\r    "groupTitle": "Member_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/networks",\r    "title": "Create a new network",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/networks -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Create",\r    "group": "Networks",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/network/index.js",\r    "groupTitle": "Networks"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/networks/{id}",\r    "title": "Deletes a network",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/networks/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "Delete",\r    "group": "Networks",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/network/index.js",\r    "groupTitle": "Networks"\r  },\r  {\r    "type": "get",\r    "url": "/api/networks",\r    "title": "Gets a list of Networks",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/networks -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetNetworks",\r    "group": "Networks",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/networks?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/networks?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/networks?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/networks?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/networks?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/network/index.js",\r    "groupTitle": "Networks"\r  },\r  {\r    "type": "get",\r    "url": "/api/networks/{id}",\r    "title": "Gets a single Network",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/networks/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowNetworks",\r    "group": "Networks",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/network/index.js",\r    "groupTitle": "Networks"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/networks/{id}",\r    "title": "Update an existing network",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/networks/{id} -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "Update",\r    "group": "Networks",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/network/index.js",\r    "groupTitle": "Networks"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/accounts",\r    "title": "Creates a new Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAccounts",\r    "group": "Openchannel_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remote",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "acceptUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "replyUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "acceptMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "rejectMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "replyMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closeUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "closeMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "actions",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/accounts/{id}",\r    "title": "Deletes a Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAccounts",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/accounts",\r    "title": "Gets a list of Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAccounts",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/openchannel/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/openchannel/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/openchannel/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/openchannel/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/openchannel/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/accounts/{id}",\r    "title": "Gets a single Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAccounts",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/accounts/{id}/applications",\r    "title": "Creates new applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addApplications",\r    "group": "Openchannel_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"queue\"",\r              "\"agent\"",\r              "\"sendMail\"",\r              "\"sendSms\""\r            ],\r            "optional": true,\r            "field": "app",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interval",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "data7",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data8",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data9",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data10",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/accounts/{id}/dispositions",\r    "title": "Creates new disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDisposition",\r    "group": "Openchannel_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/accounts/{id}/dispositions",\r    "title": "Creates many dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDispositions",\r    "group": "Openchannel_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/accounts/{id}/interactions",\r    "title": "Creates new interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/interactions -d '[{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addInteraction",\r    "group": "Openchannel_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "openchannelIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "openchannelOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ParentId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/accounts/{id}/applications",\r    "title": "Gets account applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/applications -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getApplications",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/accounts/{id}/dispositions",\r    "title": "Gets account dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/dispositions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDispositions",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/accounts/{id}/interactions",\r    "title": "Gets account interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id}/interactions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getInteraction",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/accounts/{id}",\r    "title": "Update an existing Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAccounts",\r    "group": "Openchannel_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelAccount/index.js",\r    "groupTitle": "Openchannel_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/applications/{id}",\r    "title": "Deletes a Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/applications/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteApplications",\r    "group": "Openchannel_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelApplication/index.js",\r    "groupTitle": "Openchannel_Applications"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/applications/{id}",\r    "title": "Gets a single Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/applications/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowApplications",\r    "group": "Openchannel_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelApplication/index.js",\r    "groupTitle": "Openchannel_Applications"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/applications/{id}",\r    "title": "Update an existing Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateApplications",\r    "group": "Openchannel_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelApplication/index.js",\r    "groupTitle": "Openchannel_Applications"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/dispositions",\r    "title": "Creates a new Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDispositions",\r    "group": "Openchannel_Dispositions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelDisposition/index.js",\r    "groupTitle": "Openchannel_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/dispositions/{id}",\r    "title": "Deletes a Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/dispositions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDispositions",\r    "group": "Openchannel_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelDisposition/index.js",\r    "groupTitle": "Openchannel_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/dispositions/{id}",\r    "title": "Gets a single Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/dispositions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDispositions",\r    "group": "Openchannel_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelDisposition/index.js",\r    "groupTitle": "Openchannel_Dispositions"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/dispositions/{id}",\r    "title": "Update an existing Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDispositions",\r    "group": "Openchannel_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelDisposition/index.js",\r    "groupTitle": "Openchannel_Dispositions"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/interactions",\r    "title": "Creates a new Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateInteractions",\r    "group": "Openchannel_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "openchannelIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "openchannelOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ParentId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/interactions/{id}",\r    "title": "Deletes a Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteInteractions",\r    "group": "Openchannel_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/interactions/describe",\r    "title": "Gets table info about Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeInteractions",\r    "group": "Openchannel_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/interactions",\r    "title": "Gets a list of Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetInteractions",\r    "group": "Openchannel_Interactions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/openchannel/interactions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/openchannel/interactions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/openchannel/interactions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/openchannel/interactions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/openchannel/interactions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/interactions/{id}",\r    "title": "Gets a single Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowInteractions",\r    "group": "Openchannel_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/interactions/{id}/messages",\r    "title": "Creates new messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addMessage",\r    "group": "Openchannel_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "body",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "res_data",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/interactions/{id}/messages",\r    "title": "Gets interaction messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions/{id}/messages -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getMessages",\r    "group": "Openchannel_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/interactions/{id}",\r    "title": "Update an existing Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateInteractions",\r    "group": "Openchannel_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelInteraction/index.js",\r    "groupTitle": "Openchannel_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/messages",\r    "title": "Creates a new Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMessages",\r    "group": "Openchannel_Messages",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "body",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "res_data",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelMessage/index.js",\r    "groupTitle": "Openchannel_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/messages/{id}",\r    "title": "Deletes a Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/messages/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMessages",\r    "group": "Openchannel_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelMessage/index.js",\r    "groupTitle": "Openchannel_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/messages/describe",\r    "title": "Gets table info about Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/messages/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeMessages",\r    "group": "Openchannel_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelMessage/index.js",\r    "groupTitle": "Openchannel_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/messages",\r    "title": "Gets a list of Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/messages -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMessages",\r    "group": "Openchannel_Messages",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/openchannel/messages?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/openchannel/messages?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/openchannel/messages?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/openchannel/messages?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/openchannel/messages?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelMessage/index.js",\r    "groupTitle": "Openchannel_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/messages/{id}",\r    "title": "Gets a single Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/messages/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMessages",\r    "group": "Openchannel_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelMessage/index.js",\r    "groupTitle": "Openchannel_Messages"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/messages/{id}",\r    "title": "Update an existing Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMessages",\r    "group": "Openchannel_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelMessage/index.js",\r    "groupTitle": "Openchannel_Messages"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/queues/{id}/users",\r    "title": "Add agents to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddAgents",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/queues/{id}/teams",\r    "title": "Add teams to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddTeams",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/queues",\r    "title": "Creates a new Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateQueues",\r    "group": "Openchannel_Queues",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rrmemory\"",\r              "\"beepall\"",\r              "\"roundrobin\""\r            ],\r            "optional": true,\r            "field": "strategy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "lastAgent",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/queues/{id}",\r    "title": "Deletes a Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteQueues",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/queues/{id}/users",\r    "title": "Gets queue agents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id}/users -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/queues",\r    "title": "Gets a list of Queues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/openchannel/queues?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/openchannel/queues?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/openchannel/queues?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/openchannel/queues?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/openchannel/queues?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/queues/{id}/teams",\r    "title": "Gets queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/queues/{id}/users",\r    "title": "Removes agents from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/queues/{id}",\r    "title": "Gets a single Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueues",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/queues/{id}",\r    "title": "Update an existing Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateQueues",\r    "group": "Openchannel_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Openchannel_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/openchannel/reports",\r    "title": "Creates a new Openchannel Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateOpenchannel_Reports",\r    "group": "Openchannel_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "messageid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calledAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelReport/index.js",\r    "groupTitle": "Openchannel_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/reports/{id}",\r    "title": "Deletes a Openchannel Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteOpenchannel_Reports",\r    "group": "Openchannel_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelReport/index.js",\r    "groupTitle": "Openchannel_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/reports",\r    "title": "Gets a list of Openchannel Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetOpenchannel_Reports",\r    "group": "Openchannel_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/openchannel/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/openchannel/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/openchannel/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/openchannel/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/openchannel/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelReport/index.js",\r    "groupTitle": "Openchannel_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/reports/{id}",\r    "title": "Gets a single Openchannel Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowOpenchannel_Reports",\r    "group": "Openchannel_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelReport/index.js",\r    "groupTitle": "Openchannel_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/openchannel/reports/{id}",\r    "title": "Update an existing Openchannel Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateOpenchannel_Reports",\r    "group": "Openchannel_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelReport/index.js",\r    "groupTitle": "Openchannel_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/sessions/reports/describe",\r    "title": "Gets table info about Session Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/sessions/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeSession_Reports",\r    "group": "Openchannel_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelSessionReport/index.js",\r    "groupTitle": "Openchannel_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/sessions/reports",\r    "title": "Gets a list of Session Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/sessions/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSession_Reports",\r    "group": "Openchannel_Session_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/openchannel/sessions/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/openchannel/sessions/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/openchannel/sessions/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/openchannel/sessions/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/openchannel/sessions/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelSessionReport/index.js",\r    "groupTitle": "Openchannel_Session_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/openchannel/sessions/reports/{id}",\r    "title": "Gets a single Session Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/sessions/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSession_Reports",\r    "group": "Openchannel_Session_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelSessionReport/index.js",\r    "groupTitle": "Openchannel_Session_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/pauses",\r    "title": "Creates a new Pause",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pauses -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreatePauses",\r    "group": "Pauses",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pause/index.js",\r    "groupTitle": "Pauses"\r  },\r  {\r    "type": "delete",\r    "url": "/api/pauses/{id}",\r    "title": "Deletes a Pause",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pauses/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeletePauses",\r    "group": "Pauses",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pause/index.js",\r    "groupTitle": "Pauses"\r  },\r  {\r    "type": "get",\r    "url": "/api/pauses",\r    "title": "Gets a list of Pauses",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pauses -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetPauses",\r    "group": "Pauses",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/pauses?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/pauses?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/pauses?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/pauses?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/pauses?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/pause/index.js",\r    "groupTitle": "Pauses"\r  },\r  {\r    "type": "get",\r    "url": "/api/pauses/{id}",\r    "title": "Gets a single Pause",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pauses/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowPauses",\r    "group": "Pauses",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pause/index.js",\r    "groupTitle": "Pauses"\r  },\r  {\r    "type": "put",\r    "url": "/api/pauses/{id}",\r    "title": "Update an existing Pause",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pauses/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updatePauses",\r    "group": "Pauses",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pause/index.js",\r    "groupTitle": "Pauses"\r  },\r  {\r    "type": "get",\r    "url": "/api/pm2/{id}",\r    "title": "Gets a single pm2 process",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pm2/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetPm2Process",\r    "group": "Pm2",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pm2/index.js",\r    "groupTitle": "Pm2"\r  },\r  {\r    "type": "get",\r    "url": "/api/pm2",\r    "title": "Gets pm2 processes",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pm2 -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetPm2Processes",\r    "group": "Pm2",\r    "description": "<p>Motion returns the pm2 processes list.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pm2/index.js",\r    "groupTitle": "Pm2"\r  },\r  {\r    "type": "put",\r    "url": "/api/pm2/{id}",\r    "title": "Update an existing Process",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/pm2/{id} -d '{\"status\": \"online\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateProcesses",\r    "group": "Pm2",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/pm2/index.js",\r    "groupTitle": "Pm2"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/campaigns/",\r    "title": "Gets a list of campaigns",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/campaigns -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "Campaigns",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime campaigns parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/agents",\r    "title": "Gets a list of RTAgents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/agents -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTAgents",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime agents parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/outbound/channels",\r    "title": "Gets a list of RTOutboundChannels",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/outbound/channels -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTOutboundChannels",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime outbound channels.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/telephones",\r    "title": "Gets a list of RTTelephones",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/telephones -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTTelephones",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of telephones parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/trunks",\r    "title": "Gets a list of RTTrunks",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/trunks -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTTrunks",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime trunks parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/voice/queues/channels/{uniqueid}",\r    "title": "Gets a single RTVoiceQueueChannel",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTVoiceQueueChannel",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a specific realtime voice queue channel.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/voice/queues/channels/{uniqueid}/hangup",\r    "title": "Hangup a single RTVoiceQueueChannel",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid}/hangup -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTVoiceQueueChannelHangup",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will hangup a specific realtime voice queue channel.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/voice/queues/channels/{uniqueid}/redirect/{exten}",\r    "title": "Hangup a single RTVoiceQueueChannel",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/voice/queues/channels/{uniqueid}/redirect/{exten} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTVoiceQueueChannelRedirect",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will redirect a specific realtime voice queue channel to a specific extension.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/voice/queues",\r    "title": "Gets a list of RTVoiceQueues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/voice/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTVoiceQueues",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime voice queues parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/outbound",\r    "title": "Gets a list of RTOutbound",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/outbound -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTVoiceQueues",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime outbound parameters.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "get",\r    "url": "/api/rpc/voice/queues/channels",\r    "title": "Gets a list of RTVoiceQueuesChannels",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/rpc/voice/queues/channels -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RTVoiceQueuesChannels",\r    "group": "RPC_Realtime",\r    "description": "<p>Motion will return a list of realtime voice queues channels.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/rpc/index.js",\r    "groupTitle": "RPC_Realtime"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/salesforce/accounts",\r    "title": "Creates a new Salesforce Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSalesforce_Accounts",\r    "group": "Salesforce_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remoteUri",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "clientId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "clientSecret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "securityToken",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "serverUrl",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/salesforce/accounts/{id}",\r    "title": "Deletes a Salesforce Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSalesforce_Accounts",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/accounts",\r    "title": "Gets a list of Salesforce Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSalesforce_Accounts",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/salesforce/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/salesforce/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/salesforce/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/salesforce/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/salesforce/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/accounts/{id}",\r    "title": "Gets a single Salesforce Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSalesforce_Accounts",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/salesforce/accounts/{id}/configurations",\r    "title": "Creates new configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addConfiguration",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/accounts/{id}/configurations",\r    "title": "Gets account configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/configurations -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getConfigurations",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/accounts/{id}/fields",\r    "title": "Gets account fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/salesforce/accounts/{id}",\r    "title": "Update an existing Salesforce Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSalesforce_Accounts",\r    "group": "Salesforce_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceAccount/index.js",\r    "groupTitle": "Salesforce_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/salesforce/configurations",\r    "title": "Creates a new Salesforce Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSalesforce_Configurations",\r    "group": "Salesforce_Configurations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/salesforce/configurations/{id}",\r    "title": "Deletes a Salesforce Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSalesforce_Configurations",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/configurations",\r    "title": "Gets a list of Salesforce Configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSalesforce_Configurations",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/salesforce/configurations?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/salesforce/configurations?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/salesforce/configurations?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/salesforce/configurations?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/salesforce/configurations?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/configurations/{id}",\r    "title": "Gets a single Salesforce Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSalesforce_Configurations",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/configurations/{id}/descriptions",\r    "title": "Gets configurations descriptions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/descriptions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDescriptions",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/configurations/{id}/fields",\r    "title": "Gets configurations fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/configurations/{id}/subjects",\r    "title": "Gets configurations subjects",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id}/subjects -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getSubjects",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/salesforce/configurations/{id}",\r    "title": "Update an existing Salesforce Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSalesforce_Configurations",\r    "group": "Salesforce_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceConfiguration/index.js",\r    "groupTitle": "Salesforce_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/salesforce/fields",\r    "title": "Creates a new Salesforce Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSalesforce_Fields",\r    "group": "Salesforce_Fields",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\"",\r              "\"keyValue\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "content",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "key",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\""\r            ],\r            "optional": true,\r            "field": "keyType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "keyContent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "idField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "variableName",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceField/index.js",\r    "groupTitle": "Salesforce_Fields"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/salesforce/fields/{id}",\r    "title": "Deletes a Salesforce Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSalesforce_Fields",\r    "group": "Salesforce_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceField/index.js",\r    "groupTitle": "Salesforce_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/fields",\r    "title": "Gets a list of Salesforce Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/fields -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSalesforce_Fields",\r    "group": "Salesforce_Fields",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/salesforce/fields?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/salesforce/fields?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/salesforce/fields?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/salesforce/fields?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/salesforce/fields?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceField/index.js",\r    "groupTitle": "Salesforce_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/salesforce/fields/{id}",\r    "title": "Gets a single Salesforce Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSalesforce_Fields",\r    "group": "Salesforce_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceField/index.js",\r    "groupTitle": "Salesforce_Fields"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/salesforce/fields/{id}",\r    "title": "Update an existing Salesforce Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/salesforce/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSalesforce_Fields",\r    "group": "Salesforce_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSalesforceField/index.js",\r    "groupTitle": "Salesforce_Fields"\r  },\r  {\r    "type": "post",\r    "url": "/api/schedules",\r    "title": "Creates a new Schedule",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/schedules -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSchedules",\r    "group": "Schedules",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "active",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reportRange",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "sendMail",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "validityStart",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "validityEnd",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "cronType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "cron",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reportType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "reportId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reportOutput",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "defaultEntry",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/schedule/index.js",\r    "groupTitle": "Schedules"\r  },\r  {\r    "type": "delete",\r    "url": "/api/schedules/{id}",\r    "title": "Deletes a Schedule",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/schedules/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSchedules",\r    "group": "Schedules",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/schedule/index.js",\r    "groupTitle": "Schedules"\r  },\r  {\r    "type": "get",\r    "url": "/api/schedules",\r    "title": "Gets a list of Schedules",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/schedules -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSchedules",\r    "group": "Schedules",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/schedules?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/schedules?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/schedules?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/schedules?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/schedules?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/schedule/index.js",\r    "groupTitle": "Schedules"\r  },\r  {\r    "type": "get",\r    "url": "/api/schedules/{id}",\r    "title": "Gets a single Schedule",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/schedules/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSchedules",\r    "group": "Schedules",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/schedule/index.js",\r    "groupTitle": "Schedules"\r  },\r  {\r    "type": "put",\r    "url": "/api/schedules/{id}",\r    "title": "Update an existing Schedule",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/schedules/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSchedules",\r    "group": "Schedules",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/schedule/index.js",\r    "groupTitle": "Schedules"\r  },\r  {\r    "type": "get",\r    "url": "/api/settings",\r    "title": "Gets a list of Settings",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSettings",\r    "group": "Settings",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/settings?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/settings?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/settings?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/settings?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/settings?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "get",\r    "url": "/api/settings/{id}",\r    "title": "Gets a single Setting",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSettings",\r    "group": "Settings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "put",\r    "url": "/api/settings/{id}",\r    "title": "Update settings",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings/{id} -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "Update",\r    "group": "Settings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "post",\r    "url": "/api/settings/{id}/logo",\r    "title": "Add logo",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings/{id}/logo -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addLogo",\r    "group": "Settings",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "post",\r    "url": "/api/settings/{id}/logo_login",\r    "title": "Add logo login",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings/{id}/logo_login -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addLogoLogin",\r    "group": "Settings",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "get",\r    "url": "/api/settings/{id}/logo",\r    "title": "Get logo",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings/{id}/logo -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getLogo",\r    "group": "Settings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "get",\r    "url": "/api/settings/{id}/logo_login",\r    "title": "Get logo login",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/settings/{id}/logo_login -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getLogoLogin",\r    "group": "Settings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/setting/index.js",\r    "groupTitle": "Settings"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/accounts",\r    "title": "Creates a new Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateAccounts",\r    "group": "Sms_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"twilio\"",\r              "\"skebby\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"basic\"",\r              "\"classic\"",\r              "\"classic+\""\r            ],\r            "optional": true,\r            "field": "smstype",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remote",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "sid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "token",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "acceptUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "acceptMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "rejectMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closeUrl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"GET\"",\r              "\"POST\""\r            ],\r            "optional": true,\r            "field": "closeMethod",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "actions",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/accounts/{id}",\r    "title": "Deletes a Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteAccounts",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/accounts",\r    "title": "Gets a list of Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAccounts",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sms/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sms/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sms/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sms/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sms/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/accounts/{id}",\r    "title": "Gets a single Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAccounts",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/accounts/{id}/applications",\r    "title": "Creates new applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/applications -d '[{\"app\": \"queue\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addApplications",\r    "group": "Sms_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"queue\"",\r              "\"agent\""\r            ],\r            "optional": true,\r            "field": "app",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "interval",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "data7",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data8",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data9",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "data10",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/accounts/{id}/dispositions",\r    "title": "Creates new disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -d '{\"name\": \"Satisfied\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDisposition",\r    "group": "Sms_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/accounts/{id}/dispositions",\r    "title": "Creates many dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -d '[{\"name\": \"Satisfied\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addDispositions",\r    "group": "Sms_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/accounts/{id}/interactions",\r    "title": "Creates new interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/interactions -d '[{\"host\": \"host\", \"username\": \"username\", \"password\": \"password\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addInteraction",\r    "group": "Sms_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "smsIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "smsOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ParentId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "voiceSource",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "account",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/accounts/{id}/applications",\r    "title": "Gets account applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/applications -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getApplications",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/accounts/{id}/dispositions",\r    "title": "Gets account dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/dispositions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDispositions",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/accounts/{id}/interactions",\r    "title": "Gets account interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id}/interactions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getInteraction",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/accounts/{id}",\r    "title": "Update an existing Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateAccounts",\r    "group": "Sms_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsAccount/index.js",\r    "groupTitle": "Sms_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/applications/{id}",\r    "title": "Deletes a Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/applications/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteApplications",\r    "group": "Sms_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsApplication/index.js",\r    "groupTitle": "Sms_Applications"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/applications/{id}",\r    "title": "Gets a single Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/applications/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowApplications",\r    "group": "Sms_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsApplication/index.js",\r    "groupTitle": "Sms_Applications"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/applications/{id}",\r    "title": "Update an existing Application",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/applications/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateApplications",\r    "group": "Sms_Applications",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsApplication/index.js",\r    "groupTitle": "Sms_Applications"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/dispositions",\r    "title": "Creates a new Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDispositions",\r    "group": "Sms_Dispositions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsDisposition/index.js",\r    "groupTitle": "Sms_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/dispositions/{id}",\r    "title": "Deletes a Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/dispositions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDispositions",\r    "group": "Sms_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsDisposition/index.js",\r    "groupTitle": "Sms_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/dispositions/{id}",\r    "title": "Gets a single Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/dispositions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDispositions",\r    "group": "Sms_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsDisposition/index.js",\r    "groupTitle": "Sms_Dispositions"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/dispositions/{id}",\r    "title": "Update an existing Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDispositions",\r    "group": "Sms_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsDisposition/index.js",\r    "groupTitle": "Sms_Dispositions"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/interactions",\r    "title": "Creates a new Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateInteractions",\r    "group": "Sms_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "smsIn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "smsOut",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"NEW\"",\r              "\"OPEN\"",\r              "\"PENDING\"",\r              "\"CLOSED\""\r            ],\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"SENDING\"",\r              "\"SENT\"",\r              "\"RECEIVED\"",\r              "\"FAILED\"",\r              "\"NOTE\""\r            ],\r            "optional": true,\r            "field": "lastEvent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastEventAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "waiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "tags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "openReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "arrivedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "closedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "ParentId",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "voiceSource",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "account",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/interactions/{id}",\r    "title": "Deletes a Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteInteractions",\r    "group": "Sms_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/interactions/describe",\r    "title": "Gets table info about Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeInteractions",\r    "group": "Sms_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/interactions",\r    "title": "Gets a list of Interactions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetInteractions",\r    "group": "Sms_Interactions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sms/interactions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sms/interactions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sms/interactions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sms/interactions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sms/interactions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/interactions/{id}",\r    "title": "Gets a single Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowInteractions",\r    "group": "Sms_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/interactions/{id}/messages",\r    "title": "Creates new messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions/{id}/messages -d '[{\"to\": \"+3901119886500\", \"...\": \"...\"}]' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addMessage",\r    "group": "Sms_Interactions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "body",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "errorcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "skebby_message_id",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "res_data",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "source",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "auto",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/interactions/{id}/messages",\r    "title": "Gets interaction messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions/{id}/messages -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getMessages",\r    "group": "Sms_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/interactions/{id}",\r    "title": "Update an existing Interaction",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/interactions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateInteractions",\r    "group": "Sms_Interactions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsInteraction/index.js",\r    "groupTitle": "Sms_Interactions"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/messages",\r    "title": "Creates a new Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMessages",\r    "group": "Sms_Messages",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "to",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "body",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "errorcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "skebby_message_id",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "res_data",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "source",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "auto",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsMessage/index.js",\r    "groupTitle": "Sms_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/messages/{id}",\r    "title": "Deletes a Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/messages/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMessages",\r    "group": "Sms_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsMessage/index.js",\r    "groupTitle": "Sms_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/messages/describe",\r    "title": "Gets table info about Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/messages/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeMessages",\r    "group": "Sms_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsMessage/index.js",\r    "groupTitle": "Sms_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/messages",\r    "title": "Gets a list of Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/messages -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMessages",\r    "group": "Sms_Messages",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sms/messages?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sms/messages?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sms/messages?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sms/messages?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sms/messages?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsMessage/index.js",\r    "groupTitle": "Sms_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/messages/{id}",\r    "title": "Gets a single Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/messages/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMessages",\r    "group": "Sms_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsMessage/index.js",\r    "groupTitle": "Sms_Messages"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/messages/{id}",\r    "title": "Update an existing Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMessages",\r    "group": "Sms_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsMessage/index.js",\r    "groupTitle": "Sms_Messages"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/queues/{id}/users",\r    "title": "Add agents to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddAgents",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/queues/{id}/teams",\r    "title": "Add teams to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddTeams",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/queues",\r    "title": "Creates a new Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateQueues",\r    "group": "Sms_Queues",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rrmemory\"",\r              "\"beepall\"",\r              "\"roundrobin\""\r            ],\r            "optional": true,\r            "field": "strategy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "lastAgent",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/queues/{id}",\r    "title": "Deletes a Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteQueues",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/queues/{id}/users",\r    "title": "Gets queue agents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id}/users -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/queues",\r    "title": "Gets a list of Queues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sms/queues?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sms/queues?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sms/queues?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sms/queues?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sms/queues?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/queues/{id}/teams",\r    "title": "Gets queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/queues/{id}/users",\r    "title": "Removes agents from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/queues/{id}",\r    "title": "Gets a single Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueues",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/queues/{id}",\r    "title": "Update an existing Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateQueues",\r    "group": "Sms_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Sms_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/session/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/session/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "Sms_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountaddress",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "fidelity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "joinAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "leaveAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "completeAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "complete",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"agent\""\r            ],\r            "optional": true,\r            "field": "completeReason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsSessionReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/sms/reports",\r    "title": "Creates a new Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateReports",\r    "group": "Sms_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeslot",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "from",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountnumber",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "memberid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "roomid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "messageid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calledAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rejectedAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/session/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/session/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsSessionReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/reports/{id}",\r    "title": "Deletes a Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/session/reports/describe",\r    "title": "Gets table info about Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/session/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsSessionReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sms/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sms/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sms/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sms/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sms/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/session/reports",\r    "title": "Gets a list of Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/session/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sms/session/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sms/session/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sms/session/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sms/session/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sms/session/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsSessionReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/sms/session/reports/{id}",\r    "title": "Gets a single Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/session/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsSessionReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/sms/session/reports/{id}",\r    "title": "Update an existing Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/session/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateReports",\r    "group": "Sms_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsSessionReport/index.js",\r    "groupTitle": "Sms_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/sounds",\r    "title": "Gets a list of Sounds",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sounds -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSounds",\r    "group": "Sounds",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/sounds?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/sounds?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/sounds?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/sounds?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/sounds?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/sound/index.js",\r    "groupTitle": "Sounds"\r  },\r  {\r    "type": "get",\r    "url": "/api/sounds/{id}",\r    "title": "Gets a single Sound",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sounds/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSounds",\r    "group": "Sounds",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/sound/index.js",\r    "groupTitle": "Sounds"\r  },\r  {\r    "type": "post",\r    "url": "/api/sounds",\r    "title": "Create a new sound",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sounds -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addSound",\r    "group": "Sounds",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/sound/index.js",\r    "groupTitle": "Sounds"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sounds/{id}",\r    "title": "Deletes a sound",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sounds/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "destroySound",\r    "group": "Sounds",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/sound/index.js",\r    "groupTitle": "Sounds"\r  },\r  {\r    "type": "get",\r    "url": "/api/sounds/{id}/download",\r    "title": "Download Sound",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sounds/{id}/download -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "download",\r    "group": "Sounds",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/sound/index.js",\r    "groupTitle": "Sounds"\r  },\r  {\r    "type": "put",\r    "url": "/api/sounds",\r    "title": "Update an existing new sound",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sounds -d '[\"name\": \"sound_name\", \"description\": \"sound_desc\"]' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSound",\r    "group": "Sounds",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/sound/index.js",\r    "groupTitle": "Sounds"\r  },\r  {\r    "type": "post",\r    "url": "/api/square/details/reports",\r    "title": "Creates a new Square Detail Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/details/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSquare_Detail_Reports",\r    "group": "Square_Details_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "node",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "application",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "data",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "project_name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callerid",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReportDetail/index.js",\r    "groupTitle": "Square_Details_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/square/details/reports/{id}",\r    "title": "Deletes a Square Detail Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/details/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSquare_Detail_Reports",\r    "group": "Square_Details_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReportDetail/index.js",\r    "groupTitle": "Square_Details_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/details/reports/describe",\r    "title": "Gets table info about Square Detail Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/details/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeSquare_Detail_Reports",\r    "group": "Square_Details_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReportDetail/index.js",\r    "groupTitle": "Square_Details_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/details/reports",\r    "title": "Gets a list of Square Detail Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/details/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSquare_Detail_Reports",\r    "group": "Square_Details_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/square/details/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/square/details/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/square/details/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/square/details/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/square/details/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReportDetail/index.js",\r    "groupTitle": "Square_Details_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/details/reports/{id}",\r    "title": "Gets a single Square Detail Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/details/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSquare_Detail_Reports",\r    "group": "Square_Details_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReportDetail/index.js",\r    "groupTitle": "Square_Details_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/square/details/reports/{id}",\r    "title": "Update an existing Square Detail Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/details/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSquare_Detail_Reports",\r    "group": "Square_Details_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReportDetail/index.js",\r    "groupTitle": "Square_Details_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/square/odbc",\r    "title": "Creates a new ODBC",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/odbc -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateODBCs",\r    "group": "Square_ODBC",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dsn",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareOdbc/index.js",\r    "groupTitle": "Square_ODBC"\r  },\r  {\r    "type": "delete",\r    "url": "/api/square/odbc/{id}",\r    "title": "Deletes a ODBC",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/odbc/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteODBCs",\r    "group": "Square_ODBC",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareOdbc/index.js",\r    "groupTitle": "Square_ODBC"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/odbc",\r    "title": "Gets a list of ODBCs",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/odbc -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetODBCs",\r    "group": "Square_ODBC",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/square/odbc?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/square/odbc?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/square/odbc?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/square/odbc?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/square/odbc?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareOdbc/index.js",\r    "groupTitle": "Square_ODBC"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/odbc/{id}",\r    "title": "Gets a single ODBC",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/odbc/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowODBCs",\r    "group": "Square_ODBC",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareOdbc/index.js",\r    "groupTitle": "Square_ODBC"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/odbc/{id}/test",\r    "title": "Test Odbc",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/odbc/{id}/test -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "test",\r    "group": "Square_ODBC",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareOdbc/index.js",\r    "groupTitle": "Square_ODBC"\r  },\r  {\r    "type": "put",\r    "url": "/api/square/odbc/{id}",\r    "title": "Update an existing ODBC",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/odbc/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateODBCs",\r    "group": "Square_ODBC",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareOdbc/index.js",\r    "groupTitle": "Square_ODBC"\r  },\r  {\r    "type": "post",\r    "url": "/api/square/projects",\r    "title": "Creates a new Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/projects -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateProjects",\r    "group": "Square_Projects",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "notes",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "preproduction",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "production",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareProject/index.js",\r    "groupTitle": "Square_Projects"\r  },\r  {\r    "type": "delete",\r    "url": "/api/square/projects/{id}",\r    "title": "Deletes a Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/projects/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteProjects",\r    "group": "Square_Projects",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareProject/index.js",\r    "groupTitle": "Square_Projects"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/projects",\r    "title": "Gets a list of Projects",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/projects -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetProjects",\r    "group": "Square_Projects",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/square/projects?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/square/projects?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/square/projects?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/square/projects?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/square/projects?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareProject/index.js",\r    "groupTitle": "Square_Projects"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/projects/{id}",\r    "title": "Gets a single Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/projects/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowProjects",\r    "group": "Square_Projects",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareProject/index.js",\r    "groupTitle": "Square_Projects"\r  },\r  {\r    "type": "put",\r    "url": "/api/square/projects/{id}",\r    "title": "Update an existing Project",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/projects/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateProjects",\r    "group": "Square_Projects",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareProject/index.js",\r    "groupTitle": "Square_Projects"\r  },\r  {\r    "type": "post",\r    "url": "/api/square/recordings",\r    "title": "Creates a new Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/recordings -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateRecordings",\r    "group": "Square_Recordings",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callerid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "extension",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dnid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "projectName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "saveName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "filename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "savePath",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareRecording/index.js",\r    "groupTitle": "Square_Recordings"\r  },\r  {\r    "type": "delete",\r    "url": "/api/square/recordings/{id}",\r    "title": "Deletes a Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/recordings/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteRecordings",\r    "group": "Square_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareRecording/index.js",\r    "groupTitle": "Square_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/recordings",\r    "title": "Gets a list of Recordings",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/recordings -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetRecordings",\r    "group": "Square_Recordings",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/square/recordings?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/square/recordings?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/square/recordings?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/square/recordings?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/square/recordings?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareRecording/index.js",\r    "groupTitle": "Square_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/recordings/{id}",\r    "title": "Gets a single Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/recordings/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowRecordings",\r    "group": "Square_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareRecording/index.js",\r    "groupTitle": "Square_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/recordings/{id}/download",\r    "title": "Download Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/recordings/{id}/download -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "download",\r    "group": "Square_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareRecording/index.js",\r    "groupTitle": "Square_Recordings"\r  },\r  {\r    "type": "put",\r    "url": "/api/square/recordings/{id}",\r    "title": "Update an existing Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/recordings/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateRecordings",\r    "group": "Square_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareRecording/index.js",\r    "groupTitle": "Square_Recordings"\r  },\r  {\r    "type": "post",\r    "url": "/api/square/reports",\r    "title": "Creates a new Square Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSquare_Reports",\r    "group": "Square_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "network",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "network_script",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "request",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "language",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "version",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callerid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callingpres",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callingani2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callington",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callingtns",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dnid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "rdnis",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "extension",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "priority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "enhanced",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "threadid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "project_name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "joinAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "leaveAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReport/index.js",\r    "groupTitle": "Square_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/square/reports/{id}",\r    "title": "Deletes a Square Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSquare_Reports",\r    "group": "Square_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReport/index.js",\r    "groupTitle": "Square_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/reports/describe",\r    "title": "Gets table info about Square Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeSquare_Reports",\r    "group": "Square_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReport/index.js",\r    "groupTitle": "Square_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/reports",\r    "title": "Gets a list of Square Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSquare_Reports",\r    "group": "Square_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/square/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/square/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/square/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/square/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/square/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReport/index.js",\r    "groupTitle": "Square_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/square/reports/{id}",\r    "title": "Gets a single Square Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSquare_Reports",\r    "group": "Square_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReport/index.js",\r    "groupTitle": "Square_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/square/reports/{id}",\r    "title": "Update an existing Square Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/square/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSquare_Reports",\r    "group": "Square_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/squareReport/index.js",\r    "groupTitle": "Square_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/sugarcrm/configurations",\r    "title": "Creates a new SugarCRM Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSugarCRM_Configurations",\r    "group": "SugarCRM_Configurations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "SugarCRM_Configurations"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/sugarcrm/configurations/{id}",\r    "title": "Deletes a SugarCRM Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSugarCRM_Configurations",\r    "group": "SugarCRM_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "SugarCRM_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/configurations",\r    "title": "Gets a list of SugarCRM Configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSugarCRM_Configurations",\r    "group": "SugarCRM_Configurations",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/sugarcrm/configurations?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/sugarcrm/configurations?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/sugarcrm/configurations?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/sugarcrm/configurations?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/sugarcrm/configurations?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "SugarCRM_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/configurations/{id}",\r    "title": "Gets a single SugarCRM Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSugarCRM_Configurations",\r    "group": "SugarCRM_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "SugarCRM_Configurations"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/sugarcrm/configurations/{id}",\r    "title": "Update an existing SugarCRM Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSugarCRM_Configurations",\r    "group": "SugarCRM_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "SugarCRM_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/sugarcrm/accounts",\r    "title": "Creates a new Sugarcrm Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSugarcrm_Accounts",\r    "group": "Sugarcrm_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remoteUri",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "serverUrl",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/sugarcrm/accounts/{id}",\r    "title": "Deletes a Sugarcrm Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSugarcrm_Accounts",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/accounts",\r    "title": "Gets a list of Sugarcrm Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSugarcrm_Accounts",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/sugarcrm/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/sugarcrm/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/sugarcrm/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/sugarcrm/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/sugarcrm/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/accounts/{id}",\r    "title": "Gets a single Sugarcrm Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSugarcrm_Accounts",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/sugarcrm/accounts/{id}/configurations",\r    "title": "Creates new configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addConfiguration",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/accounts/{id}/configurations",\r    "title": "Gets account configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/configurations -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getConfigurations",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/accounts/{id}/fields",\r    "title": "Gets account fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/sugarcrm/accounts/{id}",\r    "title": "Update an existing Sugarcrm Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSugarcrm_Accounts",\r    "group": "Sugarcrm_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmAccount/index.js",\r    "groupTitle": "Sugarcrm_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/configurations/{id}/descriptions",\r    "title": "Gets configurations descriptions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/descriptions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDescriptions",\r    "group": "Sugarcrm_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "Sugarcrm_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/configurations/{id}/fields",\r    "title": "Gets configurations fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Sugarcrm_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "Sugarcrm_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/configurations/{id}/subjects",\r    "title": "Gets configurations subjects",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/configurations/{id}/subjects -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getSubjects",\r    "group": "Sugarcrm_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmConfiguration/index.js",\r    "groupTitle": "Sugarcrm_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/sugarcrm/fields",\r    "title": "Creates a new Sugarcrm Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateSugarcrm_Fields",\r    "group": "Sugarcrm_Fields",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\"",\r              "\"keyValue\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "content",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "key",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\""\r            ],\r            "optional": true,\r            "field": "keyType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "keyContent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "idField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "nameField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "customField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "variableName",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmField/index.js",\r    "groupTitle": "Sugarcrm_Fields"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/sugarcrm/fields/{id}",\r    "title": "Deletes a Sugarcrm Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteSugarcrm_Fields",\r    "group": "Sugarcrm_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmField/index.js",\r    "groupTitle": "Sugarcrm_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/fields",\r    "title": "Gets a list of Sugarcrm Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/fields -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSugarcrm_Fields",\r    "group": "Sugarcrm_Fields",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/sugarcrm/fields?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/sugarcrm/fields?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/sugarcrm/fields?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/sugarcrm/fields?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/sugarcrm/fields?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmField/index.js",\r    "groupTitle": "Sugarcrm_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/sugarcrm/fields/{id}",\r    "title": "Gets a single Sugarcrm Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowSugarcrm_Fields",\r    "group": "Sugarcrm_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmField/index.js",\r    "groupTitle": "Sugarcrm_Fields"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/sugarcrm/fields/{id}",\r    "title": "Update an existing Sugarcrm Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/sugarcrm/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateSugarcrm_Fields",\r    "group": "Sugarcrm_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intSugarcrmField/index.js",\r    "groupTitle": "Sugarcrm_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/system",\r    "title": "Gets system information",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/system -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetSystemInformation",\r    "group": "System_Information",\r    "description": "<p>Motion returns the system information.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/system/index.js",\r    "groupTitle": "System_Information"\r  },\r  {\r    "type": "post",\r    "url": "/api/tags",\r    "title": "Creates a new Tag",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/tags -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateTags",\r    "group": "Tags",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/tag/index.js",\r    "groupTitle": "Tags"\r  },\r  {\r    "type": "delete",\r    "url": "/api/tags/{id}",\r    "title": "Deletes a Tag",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/tags/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteTags",\r    "group": "Tags",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/tag/index.js",\r    "groupTitle": "Tags"\r  },\r  {\r    "type": "get",\r    "url": "/api/tags",\r    "title": "Gets a list of Tags",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/tags -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTags",\r    "group": "Tags",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/tags?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/tags?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/tags?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/tags?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/tags?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/tag/index.js",\r    "groupTitle": "Tags"\r  },\r  {\r    "type": "get",\r    "url": "/api/tags/{id}",\r    "title": "Gets a single Tag",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/tags/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowTags",\r    "group": "Tags",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/tag/index.js",\r    "groupTitle": "Tags"\r  },\r  {\r    "type": "put",\r    "url": "/api/tags/{id}",\r    "title": "Update an existing Tag",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/tags/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateTags",\r    "group": "Tags",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/tag/index.js",\r    "groupTitle": "Tags"\r  },\r  {\r    "type": "post",\r    "url": "/api/teams/{id}/queues",\r    "title": "Add queues to a team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id}/queues -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddQueues",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "post",\r    "url": "/api/teams",\r    "title": "Creates a new Team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateTeams",\r    "group": "Teams",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/teams/{id}",\r    "title": "Deletes a Team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "get",\r    "url": "/api/teams/{id}/users",\r    "title": "Gets agents from team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id}/users -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "get",\r    "url": "/api/teams/{id}/queues?channel={channel}",\r    "title": "Gets Queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id}/queues?channel={channel} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "get",\r    "url": "/api/teams",\r    "title": "Gets a list of Teams",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Teams",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/teams?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/teams?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/teams?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/teams?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/teams?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/teams/{id}/users",\r    "title": "Removes agents from a team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/teams/{id}/queues",\r    "title": "Remove queues to a team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id}/queues?channel=voice&ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveQueues",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/queues/{id}/teams",\r    "title": "Remove teams from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/openchannel/queues/{id}/teams",\r    "title": "Remove teams from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/openchannel/queues/{id}/teams -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/openchannelQueue/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/sms/queues/{id}/teams",\r    "title": "Remove teams from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/sms/queues/{id}/teams -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/smsQueue/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/chat/queues/{id}/teams",\r    "title": "Remove teams from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/chat/queues/{id}/teams -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/chatQueue/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/fax/queues/{id}/teams",\r    "title": "Remove teams from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/fax/queues/{id}/teams -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/faxQueue/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "delete",\r    "url": "/api/mail/queues/{id}/teams",\r    "title": "Remove teams from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/mail/queues/{id}/teams -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/mailQueue/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "get",\r    "url": "/api/teams/{id}",\r    "title": "Gets a single Team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "post",\r    "url": "/api/teams/{id}/users",\r    "title": "Adds agents to a team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id}/users -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addAgents",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "put",\r    "url": "/api/teams/{id}",\r    "title": "Update an existing Team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/teams/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateTeams",\r    "group": "Teams",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/team/index.js",\r    "groupTitle": "Teams"\r  },\r  {\r    "type": "post",\r    "url": "/api/templates",\r    "title": "Creates a new Template",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/templates -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateTemplates",\r    "group": "Templates",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "html",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/template/index.js",\r    "groupTitle": "Templates"\r  },\r  {\r    "type": "delete",\r    "url": "/api/templates/{id}",\r    "title": "Deletes a Template",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/templates/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteTemplates",\r    "group": "Templates",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/template/index.js",\r    "groupTitle": "Templates"\r  },\r  {\r    "type": "get",\r    "url": "/api/templates",\r    "title": "Gets a list of Templates",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/templates -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTemplates",\r    "group": "Templates",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/templates?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/templates?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/templates?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/templates?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/templates?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/template/index.js",\r    "groupTitle": "Templates"\r  },\r  {\r    "type": "get",\r    "url": "/api/templates/{id}",\r    "title": "Gets a single Template",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/templates/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowTemplates",\r    "group": "Templates",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/template/index.js",\r    "groupTitle": "Templates"\r  },\r  {\r    "type": "put",\r    "url": "/api/templates/{id}",\r    "title": "Update an existing Template",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/templates/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateTemplates",\r    "group": "Templates",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/template/index.js",\r    "groupTitle": "Templates"\r  },\r  {\r    "type": "post",\r    "url": "/api/triggers",\r    "title": "Creates a new Trigger",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateTriggers",\r    "group": "Triggers",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "status",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "delete",\r    "url": "/api/triggers/{id}",\r    "title": "Deletes a Trigger",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteTriggers",\r    "group": "Triggers",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "get",\r    "url": "/api/triggers",\r    "title": "Gets a list of Triggers",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTriggers",\r    "group": "Triggers",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/triggers?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/triggers?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/triggers?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/triggers?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/triggers?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "get",\r    "url": "/api/triggers/{id}",\r    "title": "Gets a single Trigger",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowTriggers",\r    "group": "Triggers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "post",\r    "url": "/api/triggers/{id}/actions",\r    "title": "Creates new actions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id}/actions -d '{\"action\": \"contactManager\",\"data1\": \"1\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addAction",\r    "group": "Triggers",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "action",\r            "description": "<p>Allowed values: contactManager, integration, motionbar, jscripty, urlForward, browser</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data1",\r            "description": "<p>contactManager[ListId], integration[intName(zendesk)], motionbar[Popup(0),URL(1),WinApp(2)], urlForward[GET,POST], browser[TemplateId(0),URL(1)]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data2",\r            "description": "<p>integration[AccountId], motionbar[TemplateId,URL,WinAppPath], urlForward[URL]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data3",\r            "description": "<p>motionbar[NULL,NULL,WinAppArguments]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "data6",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "post",\r    "url": "/api/triggers/{id}/all_conditions",\r    "title": "Creates a new \"AND\"condition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id}/all_conditions -d '{\"field\": \"name\", \"operator\": \"equal\", \"value\": \"John Doe\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addAllCondition",\r    "group": "Triggers",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "field",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "operator",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "value",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "post",\r    "url": "/api/triggers/{id}/any_conditions",\r    "title": "Creates a new \"OR\"condition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id}/any_conditions -d '{\"field\": \"name\", \"operator\": \"equal\", \"value\": \"John Doe\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addAnyCondition",\r    "group": "Triggers",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "field",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "operator",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "value",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "get",\r    "url": "/api/triggers/{id}/actions",\r    "title": "Gets Trigger Actions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id}/actions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getActions",\r    "group": "Triggers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "get",\r    "url": "/api/triggers/{id}/all_conditions",\r    "title": "Gets \"AND\" Trigger Conditions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id}/all_conditions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getAllConditions",\r    "group": "Triggers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "get",\r    "url": "/api/triggers/{id}/any_conditions",\r    "title": "Gets \"OR\" Trigger Conditions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id}/any_conditions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getAnyConditions",\r    "group": "Triggers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "put",\r    "url": "/api/triggers/{id}",\r    "title": "Update an existing Trigger",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/triggers/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateTriggers",\r    "group": "Triggers",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trigger/index.js",\r    "groupTitle": "Triggers"\r  },\r  {\r    "type": "post",\r    "url": "/api/trunks",\r    "title": "Create a new trunk",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/trunks -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Create",\r    "group": "Trunks",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"friend\"",\r              "\"user\"",\r              "\"peer\""\r            ],\r            "optional": false,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"ALLOWED_NOT_SCREENED\"",\r              "\"ALLOWED_PASSED_SCREEN\"",\r              "\"ALLOWED_FAILED_SCREEN\"",\r              "\"ALLOWED\"",\r              "\"PROHIB_NOT_SCREENED\"",\r              "\"PROHIB_PASSED_SCREEN\"",\r              "\"PROHIB_FAILED_SCREEN\"",\r              "\"PROHIB\""\r            ],\r            "optional": true,\r            "field": "callingpres",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "deny",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "permit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "secret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "md5secret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remotesecret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transport",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;udp&quot;, &quot;tcp&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rfc2833\"",\r              "\"info\"",\r              "\"shortinfo\"",\r              "\"inband\"",\r              "\"auto\""\r            ],\r            "optional": true,\r            "field": "dtmfmode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"nonat\"",\r              "\"update\"",\r              "\"outgoing\""\r            ],\r            "optional": true,\r            "field": "directmedia",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "directrtpsetup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "directmediapermit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "directmediadeny",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "nat",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;force_rport&quot;, &quot;comedia&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "namedcallgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "pickupgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "namedpickupgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "language",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "tonezone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disallow",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "allow",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;alaw&quot;, &quot;ulaw&quot;, &quot;gsm&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "autoframing",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "insecure",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;port&quot;, &quot;invite&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "trustrpid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "trust_id_outbound",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"never\""\r            ],\r            "optional": true,\r            "field": "progressinband",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "promiscredir",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "useclientcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "setvar",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callerid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "amaflags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "callcounter",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "busylevel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "allowoverlap",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "allowsubscribe",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "allowtransfer",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "ignoresdpversion",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subscribecontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "template",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"always\""\r            ],\r            "optional": true,\r            "field": "videosupport",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "maxcallbitrate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "rfc2833compensate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mailbox",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"accept\"",\r              "\"refuse\"",\r              "\"originate\""\r            ],\r            "optional": true,\r            "field": "session_timers",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "session_expires",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "session_minse",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"uac\"",\r              "\"uas\""\r            ],\r            "optional": true,\r            "field": "session_refresher",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "t38pt_usertpsource",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "regexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fromdomain",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fromuser",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "port",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "qualify",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "keepalive",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "defaultip",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "defaultuser",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rtptimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rtpholdtimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rtpkeepalive",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "sendrpid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "outboundproxy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callbackextension",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timert1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timerb",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "qualifyfreq",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contactpermit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contactdeny",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contactacl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "unsolicited_mailbox",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "use_q850_reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "maxforwards",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "encryption",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "avpf",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "force_avp",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "icesupport",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "dtlsenable",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"fingerprint\"",\r              "\"certificate\""\r            ],\r            "optional": true,\r            "field": "dtlsverify",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dtlsrekey",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscertfile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlsprivatekey",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscipher",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscafile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscapath",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"active\"",\r              "\"passive\"",\r              "\"actpass\""\r            ],\r            "optional": true,\r            "field": "dtlssetup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlsfingerprint",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "usereqphone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "recordonfeature",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "recordofffeature",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "call_limit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "registertrying",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "subscribemwi",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "vmexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mohinterpret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mohsuggest",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "parkinglot",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "host",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"nonat\"",\r              "\"update\"",\r              "\"update,nonat\""\r            ],\r            "optional": true,\r            "field": "canreinvite",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "registry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "otherFields",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": false,\r            "field": "active",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trunk/index.js",\r    "groupTitle": "Trunks"\r  },\r  {\r    "type": "delete",\r    "url": "/api/trunks/{id}",\r    "title": "Deletes a trunk",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "Delete",\r    "group": "Trunks",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trunk/index.js",\r    "groupTitle": "Trunks"\r  },\r  {\r    "type": "get",\r    "url": "/api/trunks",\r    "title": "Gets a list of Trunks",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/trunks -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTrunks",\r    "group": "Trunks",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/trunks?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/trunks?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/trunks?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/trunks?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/trunks?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/trunk/index.js",\r    "groupTitle": "Trunks"\r  },\r  {\r    "type": "get",\r    "url": "/api/trunks/{id}",\r    "title": "Gets a single Trunk",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowTrunks",\r    "group": "Trunks",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trunk/index.js",\r    "groupTitle": "Trunks"\r  },\r  {\r    "type": "put",\r    "url": "/api/trunks/{id}",\r    "title": "Update an existing trunk",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/trunks/{id} -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "Update",\r    "group": "Trunks",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/trunk/index.js",\r    "groupTitle": "Trunks"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/contacts",\r    "title": "Add contacts to a user",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/contacts -d '{\"ids\": [1,2]}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddContacts",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/queues",\r    "title": "Add queues to an agent",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/queues -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddQueues",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/create_many",\r    "title": "Creates many Users",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/create_many -d '[{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}]' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "BulkCreateUsers",\r    "group": "Users",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": "<p>The name of the user</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "fullname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "email",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"admin\"",\r              "\"user\"",\r              "\"agent\"",\r              "\"telephone\""\r            ],\r            "optional": false,\r            "field": "role",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "provider",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "internal",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "salt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "phone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mobile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "address",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "zipcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "userpic",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "city",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "country",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "online",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastLoginAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "voicePause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "chatPause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "mailPause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "faxPause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "smsPause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "openchannelPause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "pauseType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastPauseAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "chatCapacity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "mailCapacity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "faxCapacity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "smsCapacity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "openchannelCapacity",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "phoneBarAutoAnswer",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "phoneBarEnableSettings",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "phoneBarListenPort",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "phoneBarExpires",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "phoneBarRemoteControl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "phoneBarRemoteControlPort",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "phoneBarEnableRecording",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "phoneBarRingInUse",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "chanspy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "host",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "ipaddr",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "port",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "regseconds",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fullcontact",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "regserver",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "useragent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "lastms",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"friend\"",\r              "\"user\"",\r              "\"peer\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"ALLOWED_NOT_SCREENED\"",\r              "\"ALLOWED_PASSED_SCREEN\"",\r              "\"ALLOWED_FAILED_SCREEN\"",\r              "\"ALLOWED\"",\r              "\"PROHIB_NOT_SCREENED\"",\r              "\"PROHIB_PASSED_SCREEN\"",\r              "\"PROHIB_FAILED_SCREEN\"",\r              "\"PROHIB\""\r            ],\r            "optional": true,\r            "field": "callingpres",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "deny",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "permit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "secret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "md5secret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remotesecret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transport",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;udp&quot;, &quot;tcp&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"rfc2833\"",\r              "\"info\"",\r              "\"shortinfo\"",\r              "\"inband\"",\r              "\"auto\""\r            ],\r            "optional": true,\r            "field": "dtmfmode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"nonat\"",\r              "\"update\"",\r              "\"outgoing\""\r            ],\r            "optional": true,\r            "field": "directmedia",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "directrtpsetup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "directmediapermit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "directmediadeny",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "nat",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;force_rport&quot;, &quot;comedia&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "namedcallgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "pickupgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "namedpickupgroup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "language",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "tonezone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "disallow",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "allow",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;alaw&quot;, &quot;ulaw&quot;, &quot;gsm&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "autoframing",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "insecure",\r            "description": "<p>String is deprecated. Please use an Array as [&quot;port&quot;, &quot;invite&quot;]</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "trustrpid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "trust_id_outbound",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"never\""\r            ],\r            "optional": true,\r            "field": "progressinband",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "promiscredir",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "useclientcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "setvar",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callerid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "amaflags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "callcounter",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "busylevel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "allowoverlap",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "allowsubscribe",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "allowtransfer",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "ignoresdpversion",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "subscribecontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "template",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"always\""\r            ],\r            "optional": true,\r            "field": "videosupport",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "maxcallbitrate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "rfc2833compensate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mailbox",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"accept\"",\r              "\"refuse\"",\r              "\"originate\""\r            ],\r            "optional": true,\r            "field": "session_timers",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "session_expires",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "session_minse",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"uac\"",\r              "\"uas\""\r            ],\r            "optional": true,\r            "field": "session_refresher",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "t38pt_usertpsource",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "regexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fromdomain",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fromuser",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "qualify",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "keepalive",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "defaultip",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "defaultuser",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rtptimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rtpholdtimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rtpkeepalive",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "sendrpid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "outboundproxy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callbackextension",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timert1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timerb",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "qualifyfreq",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contactpermit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contactdeny",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "contactacl",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "unsolicited_mailbox",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "use_q850_reason",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "maxforwards",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "encryption",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "avpf",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "force_avp",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "icesupport",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "dtlsenable",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"fingerprint\"",\r              "\"certificate\""\r            ],\r            "optional": true,\r            "field": "dtlsverify",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dtlsrekey",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscertfile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlsprivatekey",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscipher",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscafile",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlscapath",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"active\"",\r              "\"passive\"",\r              "\"actpass\""\r            ],\r            "optional": true,\r            "field": "dtlssetup",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dtlsfingerprint",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "usereqphone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "recordonfeature",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "recordofffeature",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "call_limit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "registertrying",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "subscribemwi",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "vmexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mohinterpret",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mohsuggest",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "parkinglot",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"nonat\"",\r              "\"update\"",\r              "\"update,nonat\""\r            ],\r            "optional": true,\r            "field": "canreinvite",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "loginInPause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "resetPasswordToken",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "resetPasswordExpires",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "showWebBar",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Text",\r            "optional": true,\r            "field": "permissions",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "delete",\r    "url": "/api/users/destroy_many?ids={ids}",\r    "title": "Deletes many Users",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/destroy_many?ids=1&ids=2&ids=3 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "BulkDeleteUsers",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "put",\r    "url": "/api/users/{id}/password",\r    "title": "Change user password",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/password -d '{\"oldPassword\": \"1234\", \"newPassword\": \"5678\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "ChangePwd",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users",\r    "title": "Create a new user",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Create",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "delete",\r    "url": "/api/users/{id}",\r    "title": "Deletes a User",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteUsers",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/describe",\r    "title": "Gets table info about Users",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeUsers",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/contacts",\r    "title": "GetContacts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/contacts  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetContacts",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/lists",\r    "title": "GetLists",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/lists  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetLists",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/queues?channel={channel}",\r    "title": "Gets Queues list",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/queues/?channel={channel} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/recordings",\r    "title": "GetRecordings",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/recordings  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetRecordings",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/teams",\r    "title": "GetTeams",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/teams  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users",\r    "title": "Gets a list of Users",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetUsers",\r    "group": "Users",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/users?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/users?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/users?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/users?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/users?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/queues_rt",\r    "title": "GetVoiceQueuesRt",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/queues_rt  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetVoiceQueuesRt",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/login",\r    "title": "Login",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/login  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "Login",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/logout",\r    "title": "Logout",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/logout  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "Logout",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/pause",\r    "title": "Pause",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/pause  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "Pause",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "delete",\r    "url": "/api/users/{id}/queues",\r    "title": "Remove queues to an agent",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/queues?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveQueues",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}",\r    "title": "Gets a single User",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowUsers",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/unpause",\r    "title": "Unpause",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/unpause  -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "Unpause",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/users/{id}/avatar",\r    "title": "Add avatar",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/avatar -H 'Content-Type: multipart/form-data' -F 'file=@{filename}' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addAvatar",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "get",\r    "url": "/api/users/{id}/avatar",\r    "title": "Get avatar",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id}/avatar -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getAvatar",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "put",\r    "url": "/api/users/{id}",\r    "title": "Update an existing User",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/users/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateUsers",\r    "group": "Users",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/user/index.js",\r    "groupTitle": "Users"\r  },\r  {\r    "type": "post",\r    "url": "/api/variables",\r    "title": "Creates a new Variable",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/variables -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateVariables",\r    "group": "Variables",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/variable/index.js",\r    "groupTitle": "Variables"\r  },\r  {\r    "type": "delete",\r    "url": "/api/variables/{id}",\r    "title": "Deletes a Variable",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/variables/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteVariables",\r    "group": "Variables",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/variable/index.js",\r    "groupTitle": "Variables"\r  },\r  {\r    "type": "get",\r    "url": "/api/variables",\r    "title": "Gets a list of Variables",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/variables -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetVariables",\r    "group": "Variables",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/variables?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/variables?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/variables?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/variables?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/variables?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/variable/index.js",\r    "groupTitle": "Variables"\r  },\r  {\r    "type": "get",\r    "url": "/api/variables/{id}",\r    "title": "Gets a single Variable",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/variables/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowVariables",\r    "group": "Variables",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/variable/index.js",\r    "groupTitle": "Variables"\r  },\r  {\r    "type": "put",\r    "url": "/api/variables/{id}",\r    "title": "Update an existing Variable",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/variables/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateVariables",\r    "group": "Variables",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/variable/index.js",\r    "groupTitle": "Variables"\r  },\r  {\r    "type": "get",\r    "url": "/api/version/fetch",\r    "title": "Fetch git version",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/version/fetch -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "FetchVersion",\r    "group": "Version",\r    "description": "<p>Motion run the following command: git fetch origin master</p>",\r    "version": "0.0.0",\r    "filename": "server/api/version/index.js",\r    "groupTitle": "Version"\r  },\r  {\r    "type": "get",\r    "url": "/api/version",\r    "title": "Gets version",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/version -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetVersion",\r    "group": "Version",\r    "description": "<p>Motion returns the current and latest motion version.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/version/index.js",\r    "groupTitle": "Version"\r  },\r  {\r    "type": "get",\r    "url": "/api/version/pull",\r    "title": "Pull git version",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/version/pull -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "PullVersion",\r    "group": "Version",\r    "description": "<p>Motion run the following command: git pull</p>",\r    "version": "0.0.0",\r    "filename": "server/api/version/index.js",\r    "groupTitle": "Version"\r  },\r  {\r    "type": "get",\r    "url": "/api/version/reset",\r    "title": "Reset git version",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/version/reset -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ResetVersion",\r    "group": "Version",\r    "description": "<p>Motion run the following command: git reset --hard FETCH_HEAD</p>",\r    "version": "0.0.0",\r    "filename": "server/api/version/index.js",\r    "groupTitle": "Version"\r  },\r  {\r    "type": "get",\r    "url": "/api/version/restart",\r    "title": "Restart motion2 after update",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/version/restart -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "RestartVersion",\r    "group": "Version",\r    "description": "<p>Motion run the following command: pm2 restart motion</p>",\r    "version": "0.0.0",\r    "filename": "server/api/version/index.js",\r    "groupTitle": "Version"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/agents/reports/describe",\r    "title": "Gets table info about Agent Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/agents/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeAgent_Reports",\r    "group": "Voice_Agent_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceAgentReport/index.js",\r    "groupTitle": "Voice_Agent_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/agents/reports",\r    "title": "Gets a list of Agent Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/agents/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgent_Reports",\r    "group": "Voice_Agent_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/agents/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/agents/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/agents/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/agents/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/agents/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceAgentReport/index.js",\r    "groupTitle": "Voice_Agent_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/agents/reports/{id}",\r    "title": "Gets a single Agent Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/agents/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowAgent_Reports",\r    "group": "Voice_Agent_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceAgentReport/index.js",\r    "groupTitle": "Voice_Agent_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/calls/reports/describe",\r    "title": "Gets table info about Call Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/calls/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeCall_Reports",\r    "group": "Voice_Call_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceCallReport/index.js",\r    "groupTitle": "Voice_Call_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/calls/reports",\r    "title": "Gets a list of Call Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/calls/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetCall_Reports",\r    "group": "Voice_Call_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/calls/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/calls/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/calls/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/calls/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/calls/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceCallReport/index.js",\r    "groupTitle": "Voice_Call_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/calls/reports/{id}",\r    "title": "Gets a single Call Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/calls/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowCall_Reports",\r    "group": "Voice_Call_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceCallReport/index.js",\r    "groupTitle": "Voice_Call_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/calls/reports/{id}",\r    "title": "Update a single cdr",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/calls/reports/{id} -d '{\"userDispositio\": \"OK\"}' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "update",\r    "group": "Voice_Call_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceCallReport/index.js",\r    "groupTitle": "Voice_Call_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/chanspy",\r    "title": "Creates a new ChanSpy",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/chanspy -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateChanSpy",\r    "group": "Voice_ChanSpy",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "prefix",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "options",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "auth",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "record",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "recordingFormat",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceChanSpy/index.js",\r    "groupTitle": "Voice_ChanSpy"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/chanspy/{id}",\r    "title": "Deletes a ChanSpy",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/chanspy/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteChanSpy",\r    "group": "Voice_ChanSpy",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceChanSpy/index.js",\r    "groupTitle": "Voice_ChanSpy"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/chanspy",\r    "title": "Gets a list of ChanSpy",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/chanspy -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetChanSpy",\r    "group": "Voice_ChanSpy",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/chanspy?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/chanspy?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/chanspy?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/chanspy?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/chanspy?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceChanSpy/index.js",\r    "groupTitle": "Voice_ChanSpy"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/chanspy/{id}",\r    "title": "Gets a single ChanSpy",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/chanspy/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowChanSpy",\r    "group": "Voice_ChanSpy",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceChanSpy/index.js",\r    "groupTitle": "Voice_ChanSpy"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/chanspy/{id}",\r    "title": "Update an existing ChanSpy",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/chanspy/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateChanSpy",\r    "group": "Voice_ChanSpy",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceChanSpy/index.js",\r    "groupTitle": "Voice_ChanSpy"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/contexts",\r    "title": "Create a new context",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/contexts -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "Create",\r    "group": "Voice_Contexts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "defaultEntry",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceContext/index.js",\r    "groupTitle": "Voice_Contexts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/contexts/{id}",\r    "title": "Deletes a context",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "Delete",\r    "group": "Voice_Contexts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceContext/index.js",\r    "groupTitle": "Voice_Contexts"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/contexts",\r    "title": "Gets a list of Contexts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/contexts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetContexts",\r    "group": "Voice_Contexts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/contexts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/contexts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/contexts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/contexts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/contexts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceContext/index.js",\r    "groupTitle": "Voice_Contexts"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/contexts/{id}",\r    "title": "Gets a single Context",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowContexts",\r    "group": "Voice_Contexts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceContext/index.js",\r    "groupTitle": "Voice_Contexts"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/contexts/{id}",\r    "title": "Update an existing context",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/contexts/{id} -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "Update",\r    "group": "Voice_Contexts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceContext/index.js",\r    "groupTitle": "Voice_Contexts"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/dials/reports/describe",\r    "title": "Gets table info about Dial Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dials/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeDial_Reports",\r    "group": "Voice_Dial_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDialReport/index.js",\r    "groupTitle": "Voice_Dial_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/dials/reports",\r    "title": "Gets a list of Dial Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dials/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetDial_Reports",\r    "group": "Voice_Dial_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/dials/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/dials/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/dials/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/dials/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/dials/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDialReport/index.js",\r    "groupTitle": "Voice_Dial_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/dials/reports/{id}",\r    "title": "Gets a single Dial Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dials/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDial_Reports",\r    "group": "Voice_Dial_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDialReport/index.js",\r    "groupTitle": "Voice_Dial_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/dispositions",\r    "title": "Creates a new Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dispositions -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateDispositions",\r    "group": "Voice_Dispositions",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDisposition/index.js",\r    "groupTitle": "Voice_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/dispositions/{id}",\r    "title": "Deletes a Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dispositions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteDispositions",\r    "group": "Voice_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDisposition/index.js",\r    "groupTitle": "Voice_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/dispositions",\r    "title": "Gets a list of Dispositions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dispositions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetDispositions",\r    "group": "Voice_Dispositions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/dispositions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/dispositions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/dispositions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/dispositions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/dispositions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDisposition/index.js",\r    "groupTitle": "Voice_Dispositions"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/dispositions/{id}",\r    "title": "Gets a single Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dispositions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowDispositions",\r    "group": "Voice_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDisposition/index.js",\r    "groupTitle": "Voice_Dispositions"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/dispositions/{id}",\r    "title": "Update an existing Disposition",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/dispositions/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateDispositions",\r    "group": "Voice_Dispositions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceDisposition/index.js",\r    "groupTitle": "Voice_Dispositions"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/extensions/{id}",\r    "title": "Deletes a Extension",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/extensions/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteExtensions",\r    "group": "Voice_Extensions",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceExtension/index.js",\r    "groupTitle": "Voice_Extensions"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/extensions",\r    "title": "Gets a list of Extensions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/extensions -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetExtensions",\r    "group": "Voice_Extensions",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/extensions?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/extensions?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/extensions?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/extensions?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/extensions?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceExtension/index.js",\r    "groupTitle": "Voice_Extensions"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/extensions/{id}",\r    "title": "Gets a single Extension",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/extensions/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowExtensions",\r    "group": "Voice_Extensions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceExtension/index.js",\r    "groupTitle": "Voice_Extensions"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/extensions",\r    "title": "Create new applications",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/extensions/{id}/applications -d '[{\"app\": \"Set\", \"appdata\": \"CALLERDNID=${CALLER(dnid)}\"}]' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addApplications",\r    "group": "Voice_Extensions",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceExtension/index.js",\r    "groupTitle": "Voice_Extensions"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/extensions",\r    "title": "Create an extension",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/extensions -d '{\"exten\": \"12345\", \"context\": \"from-custom\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "create",\r    "group": "Voice_Extensions",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceExtension/index.js",\r    "groupTitle": "Voice_Extensions"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/extensions/{id}",\r    "title": "Update an extension",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/extensions/{id} -d '{\"exten\": \"12345\", \"context\": \"from-custom\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "update",\r    "group": "Voice_Extensions",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceExtension/index.js",\r    "groupTitle": "Voice_Extensions"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/mohs",\r    "title": "Create a new a new MOH",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs -d '{\"name\": \"xmas_musics\"}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddMoh",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/mohs/{id}/sounds",\r    "title": "Add sound to MOH",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs/{id}/sounds -d '{\"id\": 1}' -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddSound",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/mohs/{id}",\r    "title": "Deletes an MOH",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DestroyMoh",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mohs",\r    "title": "Gets a list of Music On Holds",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMusic_On_Holds",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/mohs?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/mohs?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/mohs?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/mohs?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/mohs?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mohs/{id}/sounds",\r    "title": "Gets sounds from MOH",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs/{id}/sounds -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "GetSounds",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/mohs/{id}/sounds/{id2}",\r    "title": "Remove sound from MOH",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs/{id}/sounds/{id2} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveSound",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mohs/{id}",\r    "title": "Gets a single Music On Hold",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMusic_On_Holds",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/mohs/{id}",\r    "title": "Update an existing Music On Hold",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mohs/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMusic_On_Holds",\r    "group": "Voice_MOHs",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMusicOnHold/index.js",\r    "groupTitle": "Voice_MOHs"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/mails",\r    "title": "Creates a new Mail",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMails",\r    "group": "Voice_Mails",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "customer_id",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "mailbox",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "fullname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "email",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "pager",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "tz",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "attach",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "saycid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callback",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "review",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "operator",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "envelope",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "sayduration",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "saydurationm",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "sendvoicemail",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "delete",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "nextaftercmd",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "forcename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "forcegreetings",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": false,\r            "field": "hidefromdir",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "stamp",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "emailsubject",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "emailbody",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "maxsecs",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "maxmsg",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMail/index.js",\r    "groupTitle": "Voice_Mails"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/mails/{id}",\r    "title": "Deletes a Mail",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMails",\r    "group": "Voice_Mails",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMail/index.js",\r    "groupTitle": "Voice_Mails"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mails",\r    "title": "Gets a list of Mails",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMails",\r    "group": "Voice_Mails",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/mails?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/mails?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/mails?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/mails?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/mails?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMail/index.js",\r    "groupTitle": "Voice_Mails"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mails/{id}",\r    "title": "Gets a single Mail",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMails",\r    "group": "Voice_Mails",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMail/index.js",\r    "groupTitle": "Voice_Mails"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mails/{id}/messages",\r    "title": "Gets voice mail messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/{id}/messages -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getMessages",\r    "group": "Voice_Mails",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMail/index.js",\r    "groupTitle": "Voice_Mails"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/mails/{id}",\r    "title": "Update an existing Mail",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMails",\r    "group": "Voice_Mails",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMail/index.js",\r    "groupTitle": "Voice_Mails"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/mails/messages",\r    "title": "Creates a new Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/messages -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateMessages",\r    "group": "Voice_Messages",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "msgnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dir",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "macrocontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "callerid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "origtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "duration",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mailboxuser",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "mailboxcontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Blob",\r            "optional": true,\r            "field": "recording",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "flag",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "msg_id",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "stamp",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMailMessage/index.js",\r    "groupTitle": "Voice_Messages"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/mails/messages/{id}",\r    "title": "Deletes a Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/messages/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteMessages",\r    "group": "Voice_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMailMessage/index.js",\r    "groupTitle": "Voice_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mails/messages",\r    "title": "Gets a list of Messages",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/messages -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetMessages",\r    "group": "Voice_Messages",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/mails/messages?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/mails/messages?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/mails/messages?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/mails/messages?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/mails/messages?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMailMessage/index.js",\r    "groupTitle": "Voice_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/mails/messages/{id}",\r    "title": "Gets a single Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/messages/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowMessages",\r    "group": "Voice_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMailMessage/index.js",\r    "groupTitle": "Voice_Messages"\r  },\r  {\r    "type": "get",\r    "url": "voice/mails/messages/{id}/download",\r    "title": "Download Voice Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}voice/mails/messages/{id}/download -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "download",\r    "group": "Voice_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMailMessage/index.js",\r    "groupTitle": "Voice_Messages"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/mails/messages/{id}",\r    "title": "Update an existing Message",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/mails/messages/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateMessages",\r    "group": "Voice_Messages",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceMailMessage/index.js",\r    "groupTitle": "Voice_Messages"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/reports/describe",\r    "title": "Gets table info about Queue Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/reports/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeQueue_Reports",\r    "group": "Voice_Queue_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueueReport/index.js",\r    "groupTitle": "Voice_Queue_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/reports",\r    "title": "Gets a list of Queue Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueue_Reports",\r    "group": "Voice_Queue_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/queues/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/queues/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/queues/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/queues/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/queues/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueueReport/index.js",\r    "groupTitle": "Voice_Queue_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/reports/{id}",\r    "title": "Gets a single Queue Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueue_Reports",\r    "group": "Voice_Queue_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueueReport/index.js",\r    "groupTitle": "Voice_Queue_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/queues/{id}/users",\r    "title": "Add agents to queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/users -d '{\"ids\": [1,2], \"penalty\": 2}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddAgents",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/queues/{id}/blacklists",\r    "title": "Add blacklists to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/blacklists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddBlackLists",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/queues/{id}/lists",\r    "title": "Add lists to a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/lists -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddLists",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/queues/{id}/teams",\r    "title": "Add teams to queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/teams -d '{\"ids\": [1,2]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "AddTeams",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/queues",\r    "title": "Creates a new Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateQueues",\r    "group": "Voice_Queues",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"inbound\"",\r              "\"outbound\""\r            ],\r            "optional": false,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "musiconhold",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "announce",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"ringall\"",\r              "\"leastrecent\"",\r              "\"fewestcalls\"",\r              "\"random\"",\r              "\"rrmemory\"",\r              "\"linear\"",\r              "\"wrandom\"",\r              "\"rrordered\""\r            ],\r            "optional": false,\r            "field": "strategy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "servicelevel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "penaltymemberslimit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "timeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "retry",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "timeoutpriority",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "weight",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "wrapuptime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "autofill",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"all\""\r            ],\r            "optional": true,\r            "field": "autopause",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "autopausedelay",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "autopausebusy",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "autopauseunavail",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "maxlen",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "setinterfacevar",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "setqueueentryvar",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "setqueuevar",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "eventmemberstatus",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membermacro",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membergosub",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "announce_frequency",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "min_announce_frequency",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "periodic_announce_frequency",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "random_periodic_announce",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "relative_periodic_announce",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\"",\r              "\"once\""\r            ],\r            "optional": true,\r            "field": "announce_holdtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "announce_position",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "announce_to_first_user",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "announce_position_limit",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"0\"",\r              "\"5\"",\r              "\"10\"",\r              "\"15\"",\r              "\"20\"",\r              "\"30\""\r            ],\r            "optional": true,\r            "field": "announce_round_seconds",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "monitor_format",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "monitor_type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_youarenext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_thereare",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_callswaiting",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_holdtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_minute",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_minutes",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_seconds",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_thankyou",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_reporthold",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_quantity1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_quantity2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_periodic_announce",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue_less_than",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "periodic_announce",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "joinempty",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "leavewhenempty",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "reportholdtime",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "ringinuse",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "memberdelay",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"yes\"",\r              "\"no\""\r            ],\r            "optional": true,\r            "field": "timeoutrestart",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "defaultrule",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "acw",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "acwTimeout",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "dialActive",\r            "description": "<p>Active/Disactive Campaign</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"preview\"",\r              "\"progressive\"",\r              "\"power\"",\r              "\"predictive\""\r            ],\r            "optional": true,\r            "field": "dialMethod",\r            "description": "<p>Dial Method.</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialLimitChannel",\r            "description": "<p>Max 9999 channels, 0 means unlimited.</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialLimitQueue",\r            "description": "<p>Max 9999 member in queue(min:1, max:9999), 0 means unlimited.</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Float",\r            "optional": true,\r            "field": "dialPowerLevel",\r            "description": "<p>Power Level: Calls for agents (min:1, max:10).</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"agentBusyFactor\"",\r              "\"dropRate\""\r            ],\r            "optional": true,\r            "field": "dialPredictiveOptimization",\r            "description": "<p>Only for predictive method.</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Float",\r            "optional": true,\r            "field": "dialPredictiveOptimizationPercentage",\r            "description": "<p>Predictive Optimization Percentage (min: 1, max: 95)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialPredictiveInterval",\r            "description": "<p>Intervall Predictive Minutes (min:5 max:30)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialOriginateCallerIdName",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialOriginateCallerIdNumber",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialOriginateTimeout",\r            "description": "<p>Originate Timeout Seconds (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialQueueOptions",\r            "description": "<p>https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialQueueTimeout",\r            "description": "<p>Queue Timeout Seconds (min:1, max:99)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialQueueProject",\r            "description": "<p>AGI queue option (use: agi://127.0.0.1/square,&lt;project_name&gt;)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialCongestionMaxRetry",\r            "description": "<p>#Congestion Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialCongestionRetryFrequency",\r            "description": "<p>Congestion Retry Frequency Minutes (min:1, max:99999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialBusyMaxRetry",\r            "description": "<p>#Busy Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialBusyRetryFrequency",\r            "description": "<p>Busy Retry Frequency Minutes (min:1, max:99999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialNoAnswerMaxRetry",\r            "description": "<p>#NoAnswer Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialNoAnswerRetryFrequency",\r            "description": "<p>NoAnswer Retry Frequency Minutes (min:1, max:99999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "dialGlobalMaxRetry",\r            "description": "<p>#Global Max Retry (min:1, max:999)</p>"\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialTimezone",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dialGlobalInterval",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/queues/{id}",\r    "title": "Deletes a Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteQueues",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/users",\r    "title": "Gets queue agents",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/users -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetAgents",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/blacklists",\r    "title": "Get queue blacklists",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/blacklists -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetBlackLists",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/finals",\r    "title": "Gets queue hopper finals",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/hopper_finals -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperFinals",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/hopper_histories",\r    "title": "Gets queue hopper histories",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/hopper_histories -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHopperHistories",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/hoppers",\r    "title": "Gets queue hoppers",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/hoppers -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetHoppers",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/lists",\r    "title": "Get queue lists",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/lists -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetLists",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/members",\r    "title": "Gets queue members",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/members -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetMembers",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues",\r    "title": "Gets a list of Queues",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetQueues",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/queues?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/queues?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/queues?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/queues?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/queues?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/teams",\r    "title": "Gets queue team",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/teams -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "GetTeams",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/queues/{id}/users",\r    "title": "Removes agents from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/users?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveAgents",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/queues/{id}/blacklists",\r    "title": "Remove blacklists from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/blacklists?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveBlackLists",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/queues/{id}/lists",\r    "title": "Remove lists from a queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/lists?ids=1&ids=2 -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "RemoveLists",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}",\r    "title": "Gets a single Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowQueues",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/queues/{id}/blacks",\r    "title": "Gets queue hopper blacks",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id}/hopper_black -v -u {name}:{password}  -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getHopperBlacks",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/queues/{id}",\r    "title": "Update an existing Queue",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/queues/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateQueues",\r    "group": "Voice_Queues",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueue/index.js",\r    "groupTitle": "Voice_Queues"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/recordings",\r    "title": "Creates a new Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateRecordings",\r    "group": "Voice_Recordings",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "Virtual",\r            "optional": true,\r            "field": "format",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "membername",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "calleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "connectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "exten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "value",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": true,\r            "field": "rating",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "queue",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "createdAt",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "updatedAt",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/recordings/{id}",\r    "title": "Deletes a Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteRecordings",\r    "group": "Voice_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/recordings/describe",\r    "title": "Gets table info about Recordings",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings/describe -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "DescribeRecordings",\r    "group": "Voice_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/recordings",\r    "title": "Gets a list of Recordings",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetRecordings",\r    "group": "Voice_Recordings",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/recordings?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/recordings?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/recordings?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/recordings?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/recordings?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/recordings/{id}",\r    "title": "Gets a single Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowRecordings",\r    "group": "Voice_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/recordings/{id}/download",\r    "title": "Download Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings/{id}/download -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "download",\r    "group": "Voice_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/recordings/{id}",\r    "title": "Update an existing Recording",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/recordings/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateRecordings",\r    "group": "Voice_Recordings",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceRecording/index.js",\r    "groupTitle": "Voice_Recordings"\r  },\r  {\r    "type": "post",\r    "url": "/api/voice/transfers/reports",\r    "title": "Creates a new Transfer Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/transfers/reports -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateTransfer_Reports",\r    "group": "Voice_Transfer_Reports",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"blind\"",\r              "\"attended\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "result",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfererchannel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transferercalleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transferercalleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfererconnectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfererconnectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereraccountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transferercontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfererexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfererlinkedid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereechannel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereecalleridnum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereecalleridname",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereeconnectedlinenum",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereeconnectedlinename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereeaccountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereecontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereeexten",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "transfereelinkedid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"Yes\"",\r              "\"No\""\r            ],\r            "optional": true,\r            "field": "isexternal",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "context",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "extension",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceTransferReport/index.js",\r    "groupTitle": "Voice_Transfer_Reports"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voice/transfers/reports/{id}",\r    "title": "Deletes a Transfer Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/transfers/reports/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteTransfer_Reports",\r    "group": "Voice_Transfer_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceTransferReport/index.js",\r    "groupTitle": "Voice_Transfer_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/transfers/reports",\r    "title": "Gets a list of Transfer Reports",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/transfers/reports -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetTransfer_Reports",\r    "group": "Voice_Transfer_Reports",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voice/transfers/reports?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voice/transfers/reports?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voice/transfers/reports?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voice/transfers/reports?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voice/transfers/reports?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceTransferReport/index.js",\r    "groupTitle": "Voice_Transfer_Reports"\r  },\r  {\r    "type": "get",\r    "url": "/api/voice/transfers/reports/{id}",\r    "title": "Gets a single Transfer Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/transfers/reports/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowTransfer_Reports",\r    "group": "Voice_Transfer_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceTransferReport/index.js",\r    "groupTitle": "Voice_Transfer_Reports"\r  },\r  {\r    "type": "put",\r    "url": "/api/voice/transfers/reports/{id}",\r    "title": "Update an existing Transfer Report",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voice/transfers/reports/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateTransfer_Reports",\r    "group": "Voice_Transfer_Reports",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceTransferReport/index.js",\r    "groupTitle": "Voice_Transfer_Reports"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/zendesk/accounts",\r    "title": "Creates a new Zendesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateZendesk_Accounts",\r    "group": "Zendesk_Accounts",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "username",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "password",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "token",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "remoteUri",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"password\"",\r              "\"token\""\r            ],\r            "optional": true,\r            "field": "authType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "serverUrl",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/zendesk/accounts/{id}",\r    "title": "Deletes a Zendesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteZendesk_Accounts",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/accounts",\r    "title": "Gets a list of Zendesk Accounts",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetZendesk_Accounts",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/zendesk/accounts?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/zendesk/accounts?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/zendesk/accounts?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/zendesk/accounts?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/zendesk/accounts?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/accounts/{id}",\r    "title": "Gets a single Zendesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowZendesk_Accounts",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/zendesk/accounts/{id}/configurations",\r    "title": "Creates new configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/configurations -d '{\"name\": \"conf1\"}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "addConfiguration",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/accounts/{id}/configurations",\r    "title": "Gets account configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/configurations -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getConfigurations",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/accounts/{id}/fields",\r    "title": "Gets account fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/zendesk/accounts/{id}",\r    "title": "Update an existing Zendesk Account",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/accounts/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateZendesk_Accounts",\r    "group": "Zendesk_Accounts",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskAccount/index.js",\r    "groupTitle": "Zendesk_Accounts"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/zendesk/configurations",\r    "title": "Creates a new Zendesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateZendesk_Configurations",\r    "group": "Zendesk_Configurations",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "name",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "description",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/zendesk/configurations/{id}",\r    "title": "Deletes a Zendesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteZendesk_Configurations",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/configurations",\r    "title": "Gets a list of Zendesk Configurations",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetZendesk_Configurations",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/zendesk/configurations?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/zendesk/configurations?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/zendesk/configurations?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/zendesk/configurations?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/zendesk/configurations?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/configurations/{id}",\r    "title": "Gets a single Zendesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowZendesk_Configurations",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/configurations/{id}/descriptions",\r    "title": "Gets configurations descriptions",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/descriptions -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getDescriptions",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/configurations/{id}/fields",\r    "title": "Gets configurations fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/fields -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getFields",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/configurations/{id}/subjects",\r    "title": "Gets configurations subjects",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/subjects -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getSubjects",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/configurations/{id}/tags",\r    "title": "Gets configurations tags",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/tags -v -u {name}:{password} -X GET",\r        "type": "json"\r      }\r    ],\r    "name": "getTags",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/zendesk/configurations/{id}/tags",\r    "title": "Sets new tags",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id}/tags -d '{\"ids\": [1,12]}' \\ \n -H 'Content-Type: application/json' -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "setTags",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/zendesk/configurations/{id}",\r    "title": "Update an existing Zendesk Configuration",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/configurations/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateZendesk_Configurations",\r    "group": "Zendesk_Configurations",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskConfiguration/index.js",\r    "groupTitle": "Zendesk_Configurations"\r  },\r  {\r    "type": "post",\r    "url": "/api/integrations/zendesk/fields",\r    "title": "Creates a new Zendesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/fields -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateZendesk_Fields",\r    "group": "Zendesk_Fields",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\"",\r              "\"keyValue\""\r            ],\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "content",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "key",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "allowedValues": [\r              "\"string\"",\r              "\"variable\"",\r              "\"customVariable\""\r            ],\r            "optional": true,\r            "field": "keyType",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "keyContent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "idField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "nameField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Boolean",\r            "optional": true,\r            "field": "customField",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "variableName",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskField/index.js",\r    "groupTitle": "Zendesk_Fields"\r  },\r  {\r    "type": "delete",\r    "url": "/api/integrations/zendesk/fields/{id}",\r    "title": "Deletes a Zendesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteZendesk_Fields",\r    "group": "Zendesk_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskField/index.js",\r    "groupTitle": "Zendesk_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/fields",\r    "title": "Gets a list of Zendesk Fields",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/fields -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetZendesk_Fields",\r    "group": "Zendesk_Fields",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/integrations/zendesk/fields?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/integrations/zendesk/fields?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/integrations/zendesk/fields?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/integrations/zendesk/fields?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/integrations/zendesk/fields?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskField/index.js",\r    "groupTitle": "Zendesk_Fields"\r  },\r  {\r    "type": "get",\r    "url": "/api/integrations/zendesk/fields/{id}",\r    "title": "Gets a single Zendesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowZendesk_Fields",\r    "group": "Zendesk_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskField/index.js",\r    "groupTitle": "Zendesk_Fields"\r  },\r  {\r    "type": "put",\r    "url": "/api/integrations/zendesk/fields/{id}",\r    "title": "Update an existing Zendesk Field",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/integrations/zendesk/fields/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateZendesk_Fields",\r    "group": "Zendesk_Fields",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/intZendeskField/index.js",\r    "groupTitle": "Zendesk_Fields"\r  },\r  {\r    "type": "post",\r    "url": "/api/cdr",\r    "title": "Creates a new Cdr",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cdr -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateCdrs",\r    "group": "cdr",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "calldate",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "clid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "src",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dst",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dcontext",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "channel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "dstchannel",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastapp",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "lastdata",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "duration",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "billsec",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "disposition",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "Integer",\r            "optional": false,\r            "field": "amaflags",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "accountcode",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "userfield",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "uniqueid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "linkedid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "sequence",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "peeraccount",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "type",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "tag",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cdr/index.js",\r    "groupTitle": "cdr"\r  },\r  {\r    "type": "delete",\r    "url": "/api/cdr/{id}",\r    "title": "Deletes a Cdr",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cdr/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteCdrs",\r    "group": "cdr",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cdr/index.js",\r    "groupTitle": "cdr"\r  },\r  {\r    "type": "get",\r    "url": "/api/cdr",\r    "title": "Gets a list of Cdrs",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cdr -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetCdrs",\r    "group": "cdr",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/cdr?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/cdr?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/cdr?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/cdr?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/cdr?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/cdr/index.js",\r    "groupTitle": "cdr"\r  },\r  {\r    "type": "get",\r    "url": "/api/cdr/{id}",\r    "title": "Gets a single Cdr",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cdr/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowCdrs",\r    "group": "cdr",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cdr/index.js",\r    "groupTitle": "cdr"\r  },\r  {\r    "type": "put",\r    "url": "/api/cdr/{id}",\r    "title": "Update an existing Cdr",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/cdr/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateCdrs",\r    "group": "cdr",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/cdr/index.js",\r    "groupTitle": "cdr"\r  },\r  {\r    "type": "post",\r    "url": "/api/voiceQueuesLog",\r    "title": "Creates a new VoiceQueuesLog",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voiceQueuesLog -d '{\"key1\": \"valu1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X POST",\r        "type": "json"\r      }\r    ],\r    "name": "CreateVoiceQueuesLogs",\r    "group": "voiceQueuesLog",\r    "parameter": {\r      "fields": {\r        "Body": [\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": true,\r            "field": "time",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "callid",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "queuename",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "agent",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "event",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "data1",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "data2",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "data3",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "data4",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "data5",\r            "description": ""\r          },\r          {\r            "group": "Body",\r            "type": "String",\r            "optional": false,\r            "field": "dtm",\r            "description": ""\r          }\r        ]\r      }\r    },\r    "description": "<p>Motion will return a HTTP status code <code>201</code> upon success.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueuesLog/index.js",\r    "groupTitle": "voiceQueuesLog"\r  },\r  {\r    "type": "delete",\r    "url": "/api/voiceQueuesLog/{id}",\r    "title": "Deletes a VoiceQueuesLog",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voiceQueuesLog/{id} -v -u {name}:{password} -X DELETE",\r        "type": "json"\r      }\r    ],\r    "name": "DeleteVoiceQueuesLogs",\r    "group": "voiceQueuesLog",\r    "description": "<p>Motion will return a HTTP status code <code>204</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueuesLog/index.js",\r    "groupTitle": "voiceQueuesLog"\r  },\r  {\r    "type": "get",\r    "url": "/api/voiceQueuesLog",\r    "title": "Gets a list of VoiceQueuesLogs",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voiceQueuesLog -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "GetVoiceQueuesLogs",\r    "group": "voiceQueuesLog",\r    "description": "<p>Motion will always return paged results. Motion returns paging data in the <code>Content-Range</code> header in the form start - end / total.</p> <p>Upon success Motion will return a HTTP status code <code>200 OK</code> if the entire collection was returned otherwise it will return a HTTP status code <code>206</code> Partial Content.</p> <p>Motion renders the resulting JSON representation in the response body.</p> <h2>Retrieving Specific Fields</h2> <p>To return only specific fields for a result set you can utilize the <code>fields</code> parameter. This parameter accepts a comma-separated list.</p> <p>A call returning only <code>id</code> and <code>name</code> for a result set would look like this.</p> <p><code>GET /api/voiceQueuesLog?fields=id,name</code></p> <h2>Filtering</h2> <p>You can perform exact-match filtering on any of a model's fields by using the field name as the key and supplying it with a value. These parameters accept a comma-separated list.</p> <p>A call returning a result set for records with <code>name</code> of <code>john.doe</code> or <code>jane.miller</code>.</p> <p><code>GET /api/voiceQueuesLog?name=john.doe,jane.miller</code></p> <p>If you use the key <code>filter</code> the result will be filtered by the value you specify.</p> <p><code>GET /api/voiceQueuesLog?filter=john</code></p> <h2>Sorting</h2> <p>To sort a result set based on one or several fields you can utilize the <code>sort</code> parameter. This parameters accepts a comma-separated list.</p> <p>Results will be sorted in the order of the fields provided. The default sorting order for fields is ascending. Fields can be sorted in descending order by prefixing them with a dash (<code>-</code>).</p> <p>A call sorting a result by <code>id</code> ascending and then <code>name</code> descending would look like this.</p> <p><code>GET /api/voiceQueuesLog?sort=id,-name</code></p> <h2>Offset and Limit</h2> <p>Query results are always paged. Motion leverages the <code>offset</code> and <code>limit</code> parameters to facilitate this.</p> <p>When the neither of these parameters are explicitly supplied the handler will assume the a default <code>limit</code> of <code>100</code>.</p> <p><code>offset</code> is a number indicating the start position in the result set you want to return.</p> <p><code>limit</code> is a number indicating how many records past the start position you want returned.</p> <p>A call with a result set starting at <code>5</code> and returning no more than <code>25</code> records would look like this.</p> <p><code>GET /api/voiceQueuesLog?offset=5&amp;limit=25</code></p> <p>If there were <code>50</code> records in total, the returned <code>Content-Range</code> header would look like this.</p> <p><code>Content-Range: 5-30/50</code></p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueuesLog/index.js",\r    "groupTitle": "voiceQueuesLog"\r  },\r  {\r    "type": "get",\r    "url": "/api/voiceQueuesLog/{id}",\r    "title": "Gets a single VoiceQueuesLog",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voiceQueuesLog/{id} -v -u {name}:{password}",\r        "type": "json"\r      }\r    ],\r    "name": "ShowVoiceQueuesLogs",\r    "group": "voiceQueuesLog",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueuesLog/index.js",\r    "groupTitle": "voiceQueuesLog"\r  },\r  {\r    "type": "put",\r    "url": "/api/voiceQueuesLog/{id}",\r    "title": "Update an existing VoiceQueuesLog",\r    "examples": [\r      {\r        "title": "Example usage:",\r        "content": "curl https://{domain}/api/voiceQueuesLog/{id} -d '{\"key1\": \"value1\", \"key2\": \"value2\", \"...\": \"...\"}' \\\n -H \"Content-Type: application/json\" -v -u {name}:{password} -X PUT",\r        "type": "json"\r      }\r    ],\r    "name": "updateVoiceQueuesLogs",\r    "group": "voiceQueuesLog",\r    "description": "<p>Motion will return a HTTP status code <code>200</code> upon success. Motion return a HTTP status code <code>404</code> if the corresponding record could not be located.</p> <p>Motion renders the resulting JSON representation in the response body.</p>",\r    "version": "0.0.0",\r    "filename": "server/api/voiceQueuesLog/index.js",\r    "groupTitle": "voiceQueuesLog"\r  }\r]
diff --git a/apidoc/api_project.js b/apidoc/api_project.js
new file mode 100644 (file)
index 0000000..55e9561
--- /dev/null
@@ -0,0 +1 @@
+define({\r  "name": "motion",\r  "version": "2.0.22",\r  "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",\r  "sampleUrl": false,\r  "defaultVersion": "0.0.0",\r  "apidoc": "0.3.0",\r  "generator": {\r    "name": "apidoc",\r    "time": "2017-07-03T14:14:45.914Z",\r    "url": "http://apidocjs.com",\r    "version": "0.17.6"\r  }\r});
diff --git a/apidoc/api_project.json b/apidoc/api_project.json
new file mode 100644 (file)
index 0000000..3584b42
--- /dev/null
@@ -0,0 +1 @@
+{\r  "name": "motion",\r  "version": "2.0.22",\r  "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",\r  "sampleUrl": false,\r  "defaultVersion": "0.0.0",\r  "apidoc": "0.3.0",\r  "generator": {\r    "name": "apidoc",\r    "time": "2017-07-03T14:14:45.914Z",\r    "url": "http://apidocjs.com",\r    "version": "0.17.6"\r  }\r}
diff --git a/apidoc/css/style.css b/apidoc/css/style.css
new file mode 100644 (file)
index 0000000..6468b2b
--- /dev/null
@@ -0,0 +1,569 @@
+/* ------------------------------------------------------------------------------------------
+ * Content
+ * ------------------------------------------------------------------------------------------ */
+body {
+  min-width: 980px;
+  max-width: 1280px;
+}
+
+body, p, a, div, th, td {
+  font-family: "Source Sans Pro", sans-serif;
+  font-weight: 400;
+  font-size: 16px;
+}
+
+td.code {
+  font-size: 14px;
+  font-family: "Source Code Pro", monospace;
+  font-style: normal;
+  font-weight: 400;
+}
+
+#content {
+  padding-top: 16px;
+  z-Index: -1;
+  margin-left: 270px;
+}
+
+p {
+  color: #808080;
+}
+
+h1 {
+  font-family: "Source Sans Pro Semibold", sans-serif;
+  font-weight: normal;
+  font-size: 44px;
+  line-height: 50px;
+  margin: 0 0 10px 0;
+  padding: 0;
+}
+
+h2 {
+  font-family: "Source Sans Pro", sans-serif;
+  font-weight: normal;
+  font-size: 24px;
+  line-height: 40px;
+  margin: 0 0 20px 0;
+  padding: 0;
+}
+
+section {
+  border-top: 1px solid #ebebeb;
+  padding: 30px 0;
+}
+
+section h1 {
+  font-family: "Source Sans Pro", sans-serif;
+  font-weight: 700;
+  font-size: 32px;
+  line-height: 40px;
+  padding-bottom: 14px;
+  margin: 0 0 20px 0;
+  padding: 0;
+}
+
+article {
+  padding: 14px 0 30px 0;
+}
+
+article h1 {
+  font-family: "Source Sans Pro Bold", sans-serif;
+  font-weight: 600;
+  font-size: 24px;
+  line-height: 26px;
+}
+
+article h2 {
+  font-family: "Source Sans Pro", sans-serif;
+  font-weight: 600;
+  font-size: 18px;
+  line-height: 24px;
+  margin: 0 0 10px 0;
+}
+
+article h3 {
+  font-family: "Source Sans Pro", sans-serif;
+  font-weight: 600;
+  font-size: 16px;
+  line-height: 18px;
+  margin: 0 0 10px 0;
+}
+
+article h4 {
+  font-family: "Source Sans Pro", sans-serif;
+  font-weight: 600;
+  font-size: 14px;
+  line-height: 16px;
+  margin: 0 0 8px 0;
+}
+
+table {
+  border-collapse: collapse;
+  width: 100%;
+  margin: 0 0 20px 0;
+}
+
+th {
+  background-color: #f5f5f5;
+  text-align: left;
+  font-family: "Source Sans Pro", sans-serif;
+  font-weight: 700;
+  padding: 4px 8px;
+  border: #e0e0e0 1px solid;
+}
+
+td {
+  vertical-align: top;
+  padding: 10px 8px 0 8px;
+  border: #e0e0e0 1px solid;
+}
+
+#generator .content {
+  color: #b0b0b0;
+  border-top: 1px solid #ebebeb;
+  padding: 10px 0;
+}
+
+.label-optional {
+  float: right;
+  background-color: grey;
+  margin-top: 4px;
+}
+
+.open-left {
+  right: 0;
+  left: auto;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * apidoc - intro
+ * ------------------------------------------------------------------------------------------ */
+
+#apidoc .apidoc {
+  border-top: 1px solid #ebebeb;
+  padding: 30px 0;
+}
+
+#apidoc h1 {
+  font-family: "Source Sans Pro", sans-serif;
+  font-weight: 700;
+  font-size: 32px;
+  line-height: 40px;
+  padding-bottom: 14px;
+  margin: 0 0 20px 0;
+  padding: 0;
+}
+
+#apidoc h2 {
+  font-family: "Source Sans Pro Bold", sans-serif;
+  font-weight: 600;
+  font-size: 22px;
+  line-height: 26px;
+  padding-top: 14px;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * pre / code
+ * ------------------------------------------------------------------------------------------ */
+pre {
+  background-color: #292b36;
+  color: #ffffff;
+  padding: 10px;
+  border-radius: 6px;
+  position: relative;
+  margin: 10px 0 20px 0;
+  overflow-x: auto;
+}
+
+pre.prettyprint {
+  width: 100%;
+}
+
+code.language-text {
+  word-wrap: break-word;
+}
+
+pre.language-json {
+  overflow: auto;
+}
+
+pre.language-html {
+  margin: 0 0 20px 0;
+}
+
+.type {
+  font-family: "Source Sans Pro", sans-serif;
+  font-weight: 600;
+  font-size: 15px;
+  display: inline-block;
+  margin: 0 0 5px 0;
+  padding: 4px 5px;
+  border-radius: 6px;
+  text-transform: uppercase;
+  background-color: #3387CC;
+  color: #ffffff;
+}
+
+.type__get {
+  background-color: green;
+}
+
+.type__put {
+  background-color: #e5c500;
+}
+
+.type__post {
+  background-color: #4070ec;
+}
+
+.type__delete {
+  background-color: #ed0039;
+}
+
+pre.language-api .str {
+  color: #ffffff;
+}
+
+pre.language-api .pln,
+pre.language-api .pun {
+  color: #65B042;
+}
+
+pre code {
+  display: block;
+  font-size: 14px;
+  font-family: "Source Code Pro", monospace;
+  font-style: normal;
+  font-weight: 400;
+  word-wrap: normal;
+  white-space: pre;
+}
+
+pre code.sample-request-response-json {
+  white-space: pre-wrap;
+  max-height: 500px;
+  overflow: auto;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * Sidenav
+ * ------------------------------------------------------------------------------------------ */
+.sidenav {
+  width: 228px;
+  margin: 0;
+  padding: 0 20px 20px 20px;
+  position: fixed;
+  top: 50px;
+  left: 0;
+  bottom: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  background-color: #f5f5f5;
+  z-index: 10;
+}
+
+.sidenav > li > a {
+  display: block;
+  width: 192px;
+  margin: 0;
+  padding: 2px 11px;
+  border: 0;
+  border-left: transparent 4px solid;
+  border-right: transparent 4px solid;
+  font-family: "Source Sans Pro", sans-serif;
+  font-weight: 400;
+  font-size: 14px;
+}
+
+.sidenav > li.nav-header {
+  margin-top: 8px;
+  margin-bottom: 8px;
+}
+
+.sidenav > li.nav-header > a {
+  padding: 5px 15px;
+  border: 1px solid #e5e5e5;
+  width: 190px;
+  font-family: "Source Sans Pro", sans-serif;
+  font-weight: 700;
+  font-size: 16px;
+  background-color: #ffffff;
+}
+
+.sidenav > li.active > a {
+    position: relative;
+    z-index: 2;
+    background-color: #0088cc;
+    color: #ffffff;
+}
+
+.sidenav > li.has-modifications a {
+  border-right: #60d060 4px solid;
+}
+
+.sidenav > li.is-new a {
+  border-left: #e5e5e5 4px solid;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * Side nav search
+ * ------------------------------------------------------------------------------------------ */
+.sidenav-search {
+  width: 228px;
+  left: 0px;
+  position: fixed;
+  padding: 16px 20px 10px 20px;
+  background-color: #F5F5F5;
+  z-index: 11;
+}
+
+.sidenav-search .search {
+  height: 26px;
+}
+
+.search-reset {
+  position: absolute;
+  display: block;
+  cursor: pointer;
+  width: 20px;
+  height: 20px;
+  text-align: center;
+  right: 28px;
+  top: 17px;
+  background-color: #fff;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * Compare
+ * ------------------------------------------------------------------------------------------ */
+
+ins {
+  background: #60d060;
+  text-decoration: none;
+  color: #000000;
+}
+
+del {
+  background: #f05050;
+  color: #000000;
+}
+
+.label-ins {
+  background-color: #60d060;
+}
+
+.label-del {
+  background-color: #f05050;
+  text-decoration: line-through;
+}
+
+pre.ins {
+  background-color: #60d060;
+}
+
+pre.del {
+  background-color: #f05050;
+  text-decoration: line-through;
+}
+
+table.ins th,
+table.ins td {
+  background-color: #60d060;
+}
+
+table.del th,
+table.del td {
+  background-color: #f05050;
+  text-decoration: line-through;
+}
+
+tr.ins td {
+  background-color: #60d060;
+}
+
+tr.del td {
+  background-color: #f05050;
+  text-decoration: line-through;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * Spinner
+ * ------------------------------------------------------------------------------------------ */
+
+#loader {
+  position: absolute;
+  width: 100%;
+}
+
+#loader p {
+  padding-top: 80px;
+  margin-left: -4px;
+}
+
+.spinner {
+  margin: 200px auto;
+  width: 60px;
+  height: 60px;
+  position: relative;
+}
+
+.container1 > div, .container2 > div, .container3 > div {
+  width: 14px;
+  height: 14px;
+  background-color: #0088cc;
+
+  border-radius: 100%;
+  position: absolute;
+  -webkit-animation: bouncedelay 1.2s infinite ease-in-out;
+  animation: bouncedelay 1.2s infinite ease-in-out;
+  /* Prevent first frame from flickering when animation starts */
+  -webkit-animation-fill-mode: both;
+  animation-fill-mode: both;
+}
+
+.spinner .spinner-container {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+}
+
+.container2 {
+  -webkit-transform: rotateZ(45deg);
+  transform: rotateZ(45deg);
+}
+
+.container3 {
+  -webkit-transform: rotateZ(90deg);
+  transform: rotateZ(90deg);
+}
+
+.circle1 { top: 0; left: 0; }
+.circle2 { top: 0; right: 0; }
+.circle3 { right: 0; bottom: 0; }
+.circle4 { left: 0; bottom: 0; }
+
+.container2 .circle1 {
+  -webkit-animation-delay: -1.1s;
+  animation-delay: -1.1s;
+}
+
+.container3 .circle1 {
+  -webkit-animation-delay: -1.0s;
+  animation-delay: -1.0s;
+}
+
+.container1 .circle2 {
+  -webkit-animation-delay: -0.9s;
+  animation-delay: -0.9s;
+}
+
+.container2 .circle2 {
+  -webkit-animation-delay: -0.8s;
+  animation-delay: -0.8s;
+}
+
+.container3 .circle2 {
+  -webkit-animation-delay: -0.7s;
+  animation-delay: -0.7s;
+}
+
+.container1 .circle3 {
+  -webkit-animation-delay: -0.6s;
+  animation-delay: -0.6s;
+}
+
+.container2 .circle3 {
+  -webkit-animation-delay: -0.5s;
+  animation-delay: -0.5s;
+}
+
+.container3 .circle3 {
+  -webkit-animation-delay: -0.4s;
+  animation-delay: -0.4s;
+}
+
+.container1 .circle4 {
+  -webkit-animation-delay: -0.3s;
+  animation-delay: -0.3s;
+}
+
+.container2 .circle4 {
+  -webkit-animation-delay: -0.2s;
+  animation-delay: -0.2s;
+}
+
+.container3 .circle4 {
+  -webkit-animation-delay: -0.1s;
+  animation-delay: -0.1s;
+}
+
+@-webkit-keyframes bouncedelay {
+  0%, 80%, 100% { -webkit-transform: scale(0.0) }
+  40% { -webkit-transform: scale(1.0) }
+}
+
+@keyframes bouncedelay {
+  0%, 80%, 100% {
+    transform: scale(0.0);
+    -webkit-transform: scale(0.0);
+  } 40% {
+    transform: scale(1.0);
+    -webkit-transform: scale(1.0);
+  }
+}
+
+/* ------------------------------------------------------------------------------------------
+ * Tabs
+ * ------------------------------------------------------------------------------------------ */
+ul.nav-tabs {
+  margin: 0;
+}
+
+p.deprecated span{
+  color: #ff0000;
+  font-weight: bold;
+  text-decoration: underline;
+}
+
+/* ------------------------------------------------------------------------------------------
+ * Print
+ * ------------------------------------------------------------------------------------------ */
+
+@media print {
+
+  #sidenav,
+  #version,
+  #versions,
+  section .version,
+  section .versions {
+    display: none;
+  }
+
+  #content {
+    margin-left: 0;
+  }
+
+  a {
+    text-decoration: none;
+    color: inherit;
+  }
+
+  a:after {
+    content: " [" attr(href) "] ";
+  }
+
+  p {
+    color: #000000
+  }
+
+  pre {
+    background-color: #ffffff;
+    color: #000000;
+    padding: 10px;
+    border: #808080 1px solid;
+    border-radius: 6px;
+    position: relative;
+    margin: 10px 0 20px 0;
+  }
+
+} /* /@media print */
diff --git a/apidoc/fonts/glyphicons-halflings-regular.eot b/apidoc/fonts/glyphicons-halflings-regular.eot
new file mode 100644 (file)
index 0000000..b93a495
Binary files /dev/null and b/apidoc/fonts/glyphicons-halflings-regular.eot differ
diff --git a/apidoc/fonts/glyphicons-halflings-regular.svg b/apidoc/fonts/glyphicons-halflings-regular.svg
new file mode 100644 (file)
index 0000000..94fb549
--- /dev/null
@@ -0,0 +1,288 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
+<font-face units-per-em="1200" ascent="960" descent="-240" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="400" />
+<glyph unicode=" " />
+<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
+<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
+<glyph unicode="&#x2000;" horiz-adv-x="650" />
+<glyph unicode="&#x2001;" horiz-adv-x="1300" />
+<glyph unicode="&#x2002;" horiz-adv-x="650" />
+<glyph unicode="&#x2003;" horiz-adv-x="1300" />
+<glyph unicode="&#x2004;" horiz-adv-x="433" />
+<glyph unicode="&#x2005;" horiz-adv-x="325" />
+<glyph unicode="&#x2006;" horiz-adv-x="216" />
+<glyph unicode="&#x2007;" horiz-adv-x="216" />
+<glyph unicode="&#x2008;" horiz-adv-x="162" />
+<glyph unicode="&#x2009;" horiz-adv-x="260" />
+<glyph unicode="&#x200a;" horiz-adv-x="72" />
+<glyph unicode="&#x202f;" horiz-adv-x="260" />
+<glyph unicode="&#x205f;" horiz-adv-x="325" />
+<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
+<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
+<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
+<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
+<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
+<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
+<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
+<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
+<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
+<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
+<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
+<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
+<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
+<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
+<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
+<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
+<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
+<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
+<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
+<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
+<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
+<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
+<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
+<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
+<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
+<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
+<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
+<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
+<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
+<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
+<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
+<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
+<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
+<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
+<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
+<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
+<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
+<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
+<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
+<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
+<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
+<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
+<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
+<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
+<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
+<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
+<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
+<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
+<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
+<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
+<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
+<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
+<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
+<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
+<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
+<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
+<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
+<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
+<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
+<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
+<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
+<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
+<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
+<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
+<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
+<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
+<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
+<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
+<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
+<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
+<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
+<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
+<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
+<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
+<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
+<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
+<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
+<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
+<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
+<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
+<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
+<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
+<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
+<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
+<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
+<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
+<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
+<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
+<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
+<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
+<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
+<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
+<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
+<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
+<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
+<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
+<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
+<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
+<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
+<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
+<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
+<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
+<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
+<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
+<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
+<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
+<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
+<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
+<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
+<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
+<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
+<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
+<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
+<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
+<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
+<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
+<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
+<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
+<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
+<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
+<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
+<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
+<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
+<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
+<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
+<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
+<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
+<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
+<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
+<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
+<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
+<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
+<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
+<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
+<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
+<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
+<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
+<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
+<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
+<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
+<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
+<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
+<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
+<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
+<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
+<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
+<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
+<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
+<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
+<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
+<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
+<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
+<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
+<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
+<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
+<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
+<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
+<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
+<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
+<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
+<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
+<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
+<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
+<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
+<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
+<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
+<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
+<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
+<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
+<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
+<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
+<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/apidoc/fonts/glyphicons-halflings-regular.ttf b/apidoc/fonts/glyphicons-halflings-regular.ttf
new file mode 100644 (file)
index 0000000..1413fc6
Binary files /dev/null and b/apidoc/fonts/glyphicons-halflings-regular.ttf differ
diff --git a/apidoc/fonts/glyphicons-halflings-regular.woff b/apidoc/fonts/glyphicons-halflings-regular.woff
new file mode 100644 (file)
index 0000000..9e61285
Binary files /dev/null and b/apidoc/fonts/glyphicons-halflings-regular.woff differ
diff --git a/apidoc/fonts/glyphicons-halflings-regular.woff2 b/apidoc/fonts/glyphicons-halflings-regular.woff2
new file mode 100644 (file)
index 0000000..64539b5
Binary files /dev/null and b/apidoc/fonts/glyphicons-halflings-regular.woff2 differ
diff --git a/apidoc/img/favicon.ico b/apidoc/img/favicon.ico
new file mode 100644 (file)
index 0000000..c307a04
Binary files /dev/null and b/apidoc/img/favicon.ico differ
diff --git a/apidoc/index.html b/apidoc/index.html
new file mode 100644 (file)
index 0000000..5f04ded
--- /dev/null
@@ -0,0 +1,669 @@
+<!DOCTYPE html>
+<html>
+<head>
+  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+  <title>Loading...</title>
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <link href="vendor/bootstrap.min.css" rel="stylesheet" media="screen">
+  <link href="vendor/prettify.css" rel="stylesheet" media="screen">
+  <link href="css/style.css" rel="stylesheet" media="screen, print">
+  <link href="img/favicon.ico" rel="icon" type="image/x-icon">
+  <script src="vendor/polyfill.js"></script>
+</head>
+<body>
+
+<script id="template-sidenav" type="text/x-handlebars-template">
+<nav id="scrollingNav">
+  <div class="sidenav-search">
+    <input class="form-control search" type="text" placeholder="{{__ "Filter..."}}">
+    <span class="search-reset">x</span>
+  </div>
+  <ul class="sidenav nav nav-list list">
+  {{#each nav}}
+    {{#if title}}
+      {{#if isHeader}}
+        {{#if isFixed}}
+          <li class="nav-fixed nav-header navbar-btn nav-list-item" data-group="{{group}}"><a href="#api-{{group}}">{{underscoreToSpace title}}</a></li>
+        {{else}}
+          <li class="nav-header nav-list-item" data-group="{{group}}"><a href="#api-{{group}}">{{underscoreToSpace title}}</a></li>
+        {{/if}}
+      {{else}}
+        <li class="{{#if hidden}}hide {{/if}}" data-group="{{group}}" data-name="{{name}}" data-version="{{version}}">
+          <a href="#api-{{group}}-{{name}}" class="nav-list-item">{{title}}</a>
+        </li>
+      {{/if}}
+    {{/if}}
+  {{/each}}
+  </ul>
+</nav>
+</script>
+
+<script id="template-project" type="text/x-handlebars-template">
+  <div class="pull-left">
+    <h1>{{name}}</h1>
+    {{#if description}}<h2>{{{nl2br description}}}</h2>{{/if}}
+  </div>
+  {{#if template.withCompare}}
+  <div class="pull-right">
+    <div class="btn-group">
+      <button id="version" class="btn btn-lg btn-default dropdown-toggle" data-toggle="dropdown">
+        <strong>{{version}}</strong>&nbsp;<span class="caret"></span>
+      </button>
+      <ul id="versions" class="dropdown-menu open-left">
+        <li><a id="compareAllWithPredecessor" href="#">{{__ "Compare all with predecessor"}}</a></li>
+        <li class="divider"></li>
+        <li class="disabled"><a href="#">{{__ "show up to version:"}}</a></li>
+      {{#each versions}}
+        <li class="version"><a href="#">{{this}}</a></li>
+      {{/each}}
+      </ul>
+    </div>
+  </div>
+  {{/if}}
+  <div class="clearfix"></div>
+</script>
+
+<script id="template-header" type="text/x-handlebars-template">
+  {{#if content}}
+    <div id="api-_">{{{content}}}</div>
+  {{/if}}
+</script>
+
+<script id="template-footer" type="text/x-handlebars-template">
+  {{#if content}}
+    <div id="api-_footer">{{{content}}}</div>
+  {{/if}}
+</script>
+
+<script id="template-generator" type="text/x-handlebars-template">
+  {{#if template.withGenerator}}
+    {{#if generator}}
+      <div class="content">
+        {{__ "Generated with"}} <a href="{{{generator.url}}}">{{{generator.name}}}</a> {{{generator.version}}} - {{{generator.time}}}
+      </div>
+    {{/if}}
+  {{/if}}
+</script>
+
+<script id="template-sections" type="text/x-handlebars-template">
+  <section id="api-{{group}}">
+    <h1>{{underscoreToSpace title}}</h1>
+    {{#if description}}
+      <p>{{{nl2br description}}}</p>
+    {{/if}}
+    {{#each articles}}
+      <div id="api-{{group}}-{{name}}">
+        {{{article}}}
+      </div>
+    {{/each}}
+  </section>
+</script>
+
+<script id="template-article" type="text/x-handlebars-template">
+  <article id="api-{{article.group}}-{{article.name}}-{{article.version}}" {{#if hidden}}class="hide"{{/if}} data-group="{{article.group}}" data-name="{{article.name}}" data-version="{{article.version}}">
+    <div class="pull-left">
+      <h1>{{article.groupTitle}}{{#if article.title}} - {{article.title}}{{/if}}</h1>
+    </div>
+    {{#if template.withCompare}}
+    <div class="pull-right">
+      <div class="btn-group">
+        <button class="version btn btn-default dropdown-toggle" data-toggle="dropdown">
+          <strong>{{article.version}}</strong>&nbsp;<span class="caret"></span>
+        </button>
+        <ul class="versions dropdown-menu open-left">
+          <li class="disabled"><a href="#">{{__ "compare changes to:"}}</a></li>
+        {{#each versions}}
+          <li class="version"><a href="#">{{this}}</a></li>
+        {{/each}}
+        </ul>
+      </div>
+    </div>
+    {{/if}}
+    <div class="clearfix"></div>
+
+    {{#if article.deprecated}}
+      <p class="deprecated"><span>{{__ "DEPRECATED"}}</span>
+        {{{markdown article.deprecated.content}}}
+      </p>
+    {{/if}}
+
+    {{#if article.description}}
+      <p>{{{nl2br article.description}}}</p>
+    {{/if}}
+    <span class="type type__{{toLowerCase article.type}}">{{toLowerCase article.type}}</span>
+    <pre class="prettyprint language-html" data-type="{{toLowerCase article.type}}"><code>{{article.url}}</code></pre>
+
+    {{#if article.permission}}
+      <p>
+        {{__ "Permission:"}}
+        {{#each article.permission}}
+          {{name}}
+          {{#if title}}
+          <button type="button" class="btn btn-info btn-xs" data-title="{{title}}" data-content="{{nl2br description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
+              <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
+          </button>
+          {{/if}}
+        {{/each}}
+      </p>
+    {{/if}}
+
+    {{#if_gt article.examples.length compare=0}}
+      <ul class="nav nav-tabs nav-tabs-examples">
+        {{#each article.examples}}
+          <li{{#if_eq @index compare=0}} class="active"{{/if_eq}}>
+            <a href="#examples-{{../id}}-{{@index}}">{{title}}</a>
+          </li>
+        {{/each}}
+      </ul>
+
+      <div class="tab-content">
+      {{#each article.examples}}
+        <div class="tab-pane{{#if_eq @index compare=0}} active{{/if_eq}}" id="examples-{{../id}}-{{@index}}">
+          <pre class="prettyprint language-{{type}}" data-type="{{type}}"><code>{{content}}</code></pre>
+        </div>
+      {{/each}}
+      </div>
+    {{/if_gt}}
+
+    {{subTemplate "article-param-block" params=article.header _hasType=_hasTypeInHeaderFields section="header"}}
+    {{subTemplate "article-param-block" params=article.parameter _hasType=_hasTypeInParameterFields section="parameter"}}
+    {{subTemplate "article-param-block" params=article.success _hasType=_hasTypeInSuccessFields section="success"}}
+    {{subTemplate "article-param-block" params=article.error _col1="Name" _hasType=_hasTypeInErrorFields section="error"}}
+
+    {{subTemplate "article-sample-request" article=article id=id}}
+  </article>
+</script>
+
+<script id="template-article-param-block" type="text/x-handlebars-template">
+  {{#if params}}
+    {{#each params.fields}}
+      <h2>{{__ @key}}</h2>
+      <table>
+        <thead>
+          <tr>
+          <th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
+            {{#if ../_hasType}}<th style="width: 10%">{{__ "Type"}}</th>{{/if}}
+            <th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
+          </tr>
+        </thead>
+        <tbody>
+        {{#each this}}
+          <tr>
+            <td class="code">{{{splitFill field "." "&nbsp;&nbsp;"}}}{{#if optional}} <span class="label label-optional">{{__ "optional"}}</span>{{/if}}</td>
+            {{#if ../../_hasType}}
+              <td>
+                {{{type}}}
+              </td>
+            {{/if}}
+            <td>
+            {{{nl2br description}}}
+            {{#if defaultValue}}<p class="default-value">{{__ "Default value:"}} <code>{{{defaultValue}}}</code></p>{{/if}}
+            {{#if size}}<p class="type-size">{{__ "Size range:"}} <code>{{{size}}}</code></p>{{/if}}
+            {{#if allowedValues}}<p class="type-size">{{__ "Allowed values:"}}
+              {{#each allowedValues}}
+                <code>{{{this}}}</code>{{#unless @last}}, {{/unless}}
+              {{/each}}
+              </p>
+            {{/if}}
+            </td>
+          </tr>
+        {{/each}}
+        </tbody>
+      </table>
+    {{/each}}
+    {{#if_gt params.examples.length compare=0}}
+      <ul class="nav nav-tabs nav-tabs-examples">
+      {{#each params.examples}}
+        <li{{#if_eq @index compare=0}} class="active"{{/if_eq}}>
+          <a href="#{{../section}}-examples-{{../id}}-{{@index}}">{{title}}</a>
+        </li>
+      {{/each}}
+      </ul>
+
+      <div class="tab-content">
+      {{#each params.examples}}
+        <div class="tab-pane{{#if_eq @index compare=0}} active{{/if_eq}}" id="{{../section}}-examples-{{../id}}-{{@index}}">
+        <pre class="prettyprint language-{{type}}" data-type="{{type}}"><code>{{reformat content type}}</code></pre>
+        </div>
+      {{/each}}
+      </div>
+    {{/if_gt}}
+  {{/if}}
+</script>
+
+<script id="template-article-sample-request" type="text/x-handlebars-template">
+    {{#if article.sampleRequest}}
+      <h2>{{__ "Send a Sample Request"}}</h2>
+      <form class="form-horizontal">
+        <fieldset>
+            <div class="form-group">
+              <label class="col-md-3 control-label" for="{{../id}}-sample-request-url"></label>
+              <div class="input-group">
+                <input id="{{../id}}-sample-request-url" type="text" class="form-control sample-request-url" value="{{article.sampleRequest.0.url}}" />
+                <span class="input-group-addon">{{__ "url"}}</span>
+              </div>
+            </div>
+
+      {{#if article.header}}
+        {{#if article.header.fields}}
+          <h3>{{__ "Headers"}}</h3>
+          {{#each article.header.fields}}
+            <h4><input type="radio" data-sample-request-header-group-id="sample-request-header-{{@index}}" name="{{../id}}-sample-request-header" value="{{@index}}" class="sample-request-header sample-request-switch" {{#if_eq @index compare=0}} checked{{/if_eq}} />{{@key}}</h4>
+            <div class="{{../id}}-sample-request-header-fields{{#if_gt @index compare=0}} hide{{/if_gt}}">
+              {{#each this}}
+              <div class="form-group">
+                <label class="col-md-3 control-label" for="sample-request-header-field-{{field}}">{{field}}</label>
+                <div class="input-group">
+                  <input type="text" placeholder="{{field}}" id="sample-request-header-field-{{field}}" class="form-control sample-request-header" data-sample-request-header-name="{{field}}" data-sample-request-header-group="sample-request-header-{{@../index}}">
+                  <span class="input-group-addon">{{{type}}}</span>
+                </div>
+              </div>
+              {{/each}}
+            </div>
+          {{/each}}
+        {{/if}}
+      {{/if}}
+
+      {{#if article.parameter}}
+        {{#if article.parameter.fields}}
+          <h3>{{__ "Parameters"}}</h3>
+          {{#each article.parameter.fields}}
+            <h4><input type="radio" data-sample-request-param-group-id="sample-request-param-{{@index}}"  name="{{../id}}-sample-request-param" value="{{@index}}" class="sample-request-param sample-request-switch" {{#if_eq @index compare=0}} checked{{/if_eq}} />{{@key}}</h4>
+            <div class="form-group {{../id}}-sample-request-param-fields{{#if_gt @index compare=0}} hide{{/if_gt}}">
+              {{#each this}}
+                <label class="col-md-3 control-label" for="sample-request-param-field-{{field}}">{{field}}</label>
+                <div class="input-group">
+                  <input id="sample-request-param-field-{{field}}" type="text" placeholder="{{field}}" class="form-control sample-request-param" data-sample-request-param-name="{{field}}" data-sample-request-param-group="sample-request-param-{{@../index}}" {{#if optional}}data-sample-request-param-optional="true"{{/if}}>
+                  <div class="input-group-addon">{{{type}}}</div>
+                </div>
+              {{/each}}
+            </div>
+          {{/each}}
+        {{/if}}
+      {{/if}}
+
+          <div class="form-group">
+            <div class="controls pull-right">
+              <button class="btn btn-primary sample-request-send" data-sample-request-type="{{article.type}}">{{__ "Send"}}</button>
+            </div>
+          </div>
+          <div class="form-group sample-request-response" style="display: none;">
+            <h3>
+              {{__ "Response"}}
+              <button class="btn btn-default btn-xs pull-right sample-request-clear">X</button>
+            </h3>
+            <pre class="prettyprint language-json" data-type="json"><code class="sample-request-response-json"></code></pre>
+          </div>
+        </fieldset>
+      </form>
+    {{/if}}
+</script>
+
+<script id="template-compare-article" type="text/x-handlebars-template">
+  <article id="api-{{article.group}}-{{article.name}}-{{article.version}}" {{#if hidden}}class="hide"{{/if}} data-group="{{article.group}}" data-name="{{article.name}}" data-version="{{article.version}}" data-compare-version="{{compare.version}}">
+    <div class="pull-left">
+      <h1>{{underscoreToSpace article.group}} - {{{showDiff article.title compare.title}}}</h1>
+    </div>
+
+    <div class="pull-right">
+      <div class="btn-group">
+        <button class="btn btn-success" disabled>
+          <strong>{{article.version}}</strong> {{__ "compared to"}}
+        </button>
+        <button class="version btn btn-danger dropdown-toggle" data-toggle="dropdown">
+          <strong>{{compare.version}}</strong>&nbsp;<span class="caret"></span>
+        </button>
+        <ul class="versions dropdown-menu open-left">
+          <li class="disabled"><a href="#">{{__ "compare changes to:"}}</a></li>
+          <li class="divider"></li>
+        {{#each versions}}
+          <li class="version"><a href="#">{{this}}</a></li>
+        {{/each}}
+        </ul>
+      </div>
+    </div>
+    <div class="clearfix"></div>
+
+    {{#if article.description}}
+      <p>{{{showDiff article.description compare.description "nl2br"}}}</p>
+    {{else}}
+      {{#if compare.description}}
+      <p>{{{showDiff "" compare.description "nl2br"}}}</p>
+      {{/if}}
+    {{/if}}
+
+    <pre class="prettyprint language-html" data-type="{{toLowerCase article.type}}"><code>{{{showDiff article.url compare.url}}}</code></pre>
+
+    {{subTemplate "article-compare-permission" article=article compare=compare}}
+
+    <ul class="nav nav-tabs nav-tabs-examples">
+    {{#each_compare_title article.examples compare.examples}}
+      {{#if typeSame}}
+        <li{{#if_eq index compare=0}} class="active"{{/if_eq}}>
+          <a href="#compare-examples-{{../../article.id}}-{{index}}">{{{showDiff source.title compare.title}}}</a>
+        </li>
+      {{/if}}
+
+      {{#if typeIns}}
+        <li{{#if_eq index compare=0}} class="active"{{/if_eq}}>
+          <a href="#compare-examples-{{../../article.id}}-{{index}}"><ins>{{{source.title}}}</ins></a>
+        </li>
+      {{/if}}
+
+      {{#if typeDel}}
+        <li{{#if_eq index compare=0}} class="active"{{/if_eq}}>
+          <a href="#compare-examples-{{../../article.id}}-{{index}}"><del>{{{compare.title}}}</del></a>
+        </li>
+      {{/if}}
+    {{/each_compare_title}}
+    </ul>
+
+    <div class="tab-content">
+    {{#each_compare_title article.examples compare.examples}}
+
+      {{#if typeSame}}
+        <div class="tab-pane{{#if_eq index compare=0}} active{{/if_eq}}" id="compare-examples-{{../../article.id}}-{{index}}">
+          <pre class="prettyprint language-{{source.type}}" data-type="{{source.type}}"><code>{{{showDiff source.content compare.content}}}</code></pre>
+        </div>
+      {{/if}}
+
+      {{#if typeIns}}
+        <div class="tab-pane{{#if_eq index compare=0}} active{{/if_eq}}" id="compare-examples-{{../../article.id}}-{{index}}">
+          <pre class="prettyprint language-{{source.type}}" data-type="{{source.type}}"><code>{{{source.content}}}</code></pre>
+        </div>
+      {{/if}}
+
+      {{#if typeDel}}
+        <div class="tab-pane{{#if_eq index compare=0}} active{{/if_eq}}" id="compare-examples-{{../../article.id}}-{{index}}">
+          <pre class="prettyprint language-{{source.type}}" data-type="{{compare.type}}"><code>{{{compare.content}}}</code></pre>
+        </div>
+      {{/if}}
+
+    {{/each_compare_title}}
+    </div>
+
+    {{subTemplate "article-compare-param-block" source=article.parameter compare=compare.parameter _hasType=_hasTypeInParameterFields section="parameter"}}
+    {{subTemplate "article-compare-param-block" source=article.success compare=compare.success _hasType=_hasTypeInSuccessFields section="success"}}
+    {{subTemplate "article-compare-param-block" source=article.error compare=compare.error _col1="Name" _hasType=_hasTypeInErrorFields section="error"}}
+
+    {{subTemplate "article-sample-request" article=article id=id}}
+
+  </article>
+</script>
+
+<script id="template-article-compare-permission" type="text/x-handlebars-template">
+  <p>
+  {{__ "Permission:"}}
+  {{#each_compare_list_field article.permission compare.permission field="name"}}
+    {{#if source}}
+      {{#if typeSame}}
+        {{source.name}}
+        {{#if source.title}}
+          <button type="button" class="btn btn-info btn-xs" data-title="{{source.title}}" data-content="{{nl2br source.description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
+            <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
+          </button>
+          {{#unless _last}}, {{/unless}}
+        {{/if}}
+      {{/if}}
+
+      {{#if typeIns}}
+        <ins>{{source.name}}</ins>
+        {{#if source.title}}
+          <button type="button" class="btn btn-info btn-xs" data-title="{{source.title}}" data-content="{{nl2br source.description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
+            <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
+          </button>
+          {{#unless _last}}, {{/unless}}
+        {{/if}}
+      {{/if}}
+
+      {{#if typeDel}}
+        <del>{{source.name}}</del>
+        {{#if source.title}}
+          <button type="button" class="btn btn-info btn-xs" data-title="{{source.title}}" data-content="{{nl2br source.description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
+            <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
+          </button>
+          {{#unless _last}}, {{/unless}}
+        {{/if}}
+      {{/if}}
+    {{else}}
+      {{#if typeSame}}
+        {{compare.name}}
+        {{#if compare.title}}
+          <button type="button" class="btn btn-info btn-xs" data-title="{{compare.title}}" data-content="{{nl2br compare.description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
+            <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
+          </button>
+          {{#unless _last}}, {{/unless}}
+        {{/if}}
+      {{/if}}
+
+      {{#if typeIns}}
+        <ins>{{compare.name}}</ins>
+        {{#if compare.title}}
+          <button type="button" class="btn btn-info btn-xs" data-title="{{compare.title}}" data-content="{{nl2br compare.description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
+            <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
+          </button>
+          {{#unless _last}}, {{/unless}}
+        {{/if}}
+      {{/if}}
+
+      {{#if typeDel}}
+        <del>{{compare.name}}</del>
+        {{#if compare.title}}
+          <button type="button" class="btn btn-info btn-xs" data-title="{{compare.title}}" data-content="{{nl2br compare.description}}" data-html="true" data-toggle="popover" data-placement="right" data-trigger="hover">
+            <span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
+          </button>
+          {{#unless _last}}, {{/unless}}
+        {{/if}}
+      {{/if}}
+    {{/if}}
+  {{/each_compare_list_field}}
+  </p>
+</script>
+
+<script id="template-article-compare-param-block" type="text/x-handlebars-template">
+  {{#if source}}
+    {{#each_compare_keys source.fields compare.fields}}
+      {{#if typeSame}}
+        <h2>{{__ source.key}}</h2>
+        <table>
+        <thead>
+          <tr>
+            <th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
+            {{#if ../_hasType}}<th style="width: 10%">{{__ "Type"}}</th>{{/if}}
+            <th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
+          </tr>
+        </thead>
+        {{subTemplate "article-compare-param-block-body" source=source.value compare=compare.value _hasType=../_hasType}}
+        </table>
+      {{/if}}
+
+      {{#if typeIns}}
+        <h2><ins>{{__ source.key}}</ins></h2>
+        <table class="ins">
+        <thead>
+          <tr>
+            <th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
+            {{#if ../_hasType}}<th style="width: 10%">{{__ "Type"}}</th>{{/if}}
+            <th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
+          </tr>
+        </thead>
+        {{subTemplate "article-compare-param-block-body" source=source.value compare=source.value _hasType=../_hasType}}
+        </table>
+      {{/if}}
+
+      {{#if typeDel}}
+        <h2><del>{{__ compare.key}}</del></h2>
+        <table class="del">
+        <thead>
+          <tr>
+            <th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
+            {{#if ../_hasType}}<th style="width: 10%">{{__ "Type"}}</th>{{/if}}
+            <th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
+          </tr>
+        </thead>
+        {{subTemplate "article-compare-param-block-body" source=compare.value compare=compare.value _hasType=../_hasType}}
+        </table>
+      {{/if}}
+    {{/each_compare_keys}}
+
+    {{#if source.examples}}
+    <ul class="nav nav-tabs nav-tabs-examples">
+    {{#each_compare_title source.examples compare.examples}}
+      {{#if typeSame}}
+        <li{{#if_eq index compare=0}} class="active"{{/if_eq}}>
+          <a href="#{{../../section}}-compare-examples-{{../../article.id}}-{{index}}">{{{showDiff source.title compare.title}}}</a>
+        </li>
+      {{/if}}
+
+      {{#if typeIns}}
+        <li{{#if_eq index compare=0}} class="active"{{/if_eq}}>
+          <a href="#{{../../section}}-compare-examples-{{../../article.id}}-{{index}}"><ins>{{{source.title}}}</ins></a>
+        </li>
+      {{/if}}
+
+      {{#if typeDel}}
+        <li{{#if_eq index compare=0}} class="active"{{/if_eq}}>
+          <a href="#{{../../section}}-compare-examples-{{../../article.id}}-{{index}}"><del>{{{compare.title}}}</del></a>
+        </li>
+      {{/if}}
+    {{/each_compare_title}}
+    </ul>
+
+    <div class="tab-content">
+    {{#each_compare_title source.examples compare.examples}}
+
+      {{#if typeSame}}
+        <div class="tab-pane{{#if_eq index compare=0}} active{{/if_eq}}" id="{{../../section}}-compare-examples-{{../../article.id}}-{{index}}">
+          <pre class="prettyprint language-{{source.type}}" data-type="{{source.type}}"><code>{{{showDiff source.content compare.content}}}</code></pre>
+        </div>
+      {{/if}}
+
+      {{#if typeIns}}
+        <div class="tab-pane{{#if_eq index compare=0}} active{{/if_eq}}" id="{{../../section}}-compare-examples-{{../../article.id}}-{{index}}">
+          <pre class="prettyprint language-{{source.type}}" data-type="{{source.type}}"><code>{{{source.content}}}</code></pre>
+        </div>
+      {{/if}}
+
+      {{#if typeDel}}
+        <div class="tab-pane{{#if_eq index compare=0}} active{{/if_eq}}" id="{{../../section}}-compare-examples-{{../../article.id}}-{{index}}">
+          <pre class="prettyprint language-{{source.type}}" data-type="{{compare.type}}"><code>{{{compare.content}}}</code></pre>
+        </div>
+      {{/if}}
+    {{/each_compare_title}}
+    </div>
+    {{/if}}
+  {{/if}}
+</script>
+
+<script id="template-article-compare-param-block-body" type="text/x-handlebars-template">
+  <tbody>
+    {{#each_compare_field source compare}}
+      {{#if typeSame}}
+        <tr>
+          <td class="code">
+            {{{splitFill source.field "." "&nbsp;&nbsp;"}}}
+            {{#if source.optional}}
+              {{#if compare.optional}} <span class="label label-optional">{{__ "optional"}}</span>
+              {{else}} <span class="label label-optional label-ins">{{__ "optional"}}</span>
+              {{/if}}
+            {{else}}
+              {{#if compare.optional}} <span class="label label-optional label-del">{{__ "optional"}}</span>{{/if}}
+            {{/if}}
+          </td>
+
+        {{#if source.type}}
+          {{#if compare.type}}
+          <td>{{{showDiff source.type compare.type}}}</td>
+          {{else}}
+          <td>{{{source.type}}}</td>
+          {{/if}}
+        {{else}}
+          {{#if compare.type}}
+          <td>{{{compare.type}}}</td>
+          {{else}}
+            {{#if ../../../../_hasType}}<td></td>{{/if}}
+          {{/if}}
+        {{/if}}
+          <td>
+            {{{showDiff source.description compare.description "nl2br"}}}
+            {{#if source.defaultValue}}<p class="default-value">{{__ "Default value:"}} <code>{{{showDiff source.defaultValue compare.defaultValue}}}</code><p>{{/if}}
+          </td>
+        </tr>
+      {{/if}}
+
+      {{#if typeIns}}
+        <tr class="ins">
+          <td class="code">
+            {{{splitFill source.field "." "&nbsp;&nbsp;"}}}
+            {{#if source.optional}} <span class="label label-optional label-ins">{{__ "optional"}}</span>{{/if}}
+          </td>
+
+        {{#if source.type}}
+          <td>{{{source.type}}}</td>
+        {{else}}
+          {{{typRowTd}}}
+        {{/if}}
+
+          <td>
+            {{{nl2br source.description}}}
+            {{#if source.defaultValue}}<p class="default-value">{{__ "Default value:"}} <code>{{{source.defaultValue}}}</code><p>{{/if}}
+          </td>
+        </tr>
+      {{/if}}
+
+      {{#if typeDel}}
+        <tr class="del">
+          <td class="code">
+            {{{splitFill compare.field "." "&nbsp;&nbsp;"}}}
+            {{#if compare.optional}} <span class="label label-optional label-del">{{__ "optional"}}</span>{{/if}}
+          </td>
+
+        {{#if compare.type}}
+          <td>{{{compare.type}}}</td>
+        {{else}}
+          {{{typRowTd}}}
+        {{/if}}
+
+          <td>
+            {{{nl2br compare.description}}}
+            {{#if compare.defaultValue}}<p class="default-value">{{__ "Default value:"}} <code>{{{compare.defaultValue}}}</code><p>{{/if}}
+          </td>
+        </tr>
+      {{/if}}
+
+    {{/each_compare_field}}
+  </tbody>
+</script>
+
+<div class="container-fluid">
+  <div class="row">
+    <div id="sidenav" class="span2"></div>
+    <div id="content">
+      <div id="project"></div>
+      <div id="header"></div>
+      <div id="sections"></div>
+      <div id="footer"></div>
+      <div id="generator"></div>
+    </div>
+  </div>
+</div>
+
+<div id="loader">
+  <div class="spinner">
+    <div class="spinner-container container1">
+      <div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div>
+    </div>
+    <div class="spinner-container container2">
+      <div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div>
+    </div>
+    <div class="spinner-container container3">
+      <div class="circle1"></div><div class="circle2"></div><div class="circle3"></div><div class="circle4"></div>
+    </div>
+    <p>Loading...</p>
+  </div>
+</div>
+
+<script data-main="main.js" src="vendor/require.min.js"></script>
+</body>
+</html>
diff --git a/apidoc/locales/ca.js b/apidoc/locales/ca.js
new file mode 100644 (file)
index 0000000..65af5df
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    ca: {
+        'Allowed values:'             : 'Valors permesos:',
+        'Compare all with predecessor': 'Comparar tot amb versió anterior',
+        'compare changes to:'         : 'comparar canvis amb:',
+        'compared to'                 : 'comparat amb',
+        'Default value:'              : 'Valor per defecte:',
+        'Description'                 : 'Descripció',
+        'Field'                       : 'Camp',
+        'General'                     : 'General',
+        'Generated with'              : 'Generat amb',
+        'Name'                        : 'Nom',
+        'No response values.'         : 'Sense valors en la resposta.',
+        'optional'                    : 'opcional',
+        'Parameter'                   : 'Paràmetre',
+        'Permission:'                 : 'Permisos:',
+        'Response'                    : 'Resposta',
+        'Send'                        : 'Enviar',
+        'Send a Sample Request'       : 'Enviar una petició d\'exemple',
+        'show up to version:'         : 'mostrar versió:',
+        'Size range:'                 : 'Tamany de rang:',
+        'Type'                        : 'Tipus',
+        'url'                         : 'url'
+    }
+});
diff --git a/apidoc/locales/de.js b/apidoc/locales/de.js
new file mode 100644 (file)
index 0000000..f66420d
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    de: {
+        'Allowed values:'             : 'Erlaubte Werte:',
+        'Compare all with predecessor': 'Vergleiche alle mit ihren Vorgängern',
+        'compare changes to:'         : 'vergleiche Änderungen mit:',
+        'compared to'                 : 'verglichen mit',
+        'Default value:'              : 'Standardwert:',
+        'Description'                 : 'Beschreibung',
+        'Field'                       : 'Feld',
+        'General'                     : 'Allgemein',
+        'Generated with'              : 'Erstellt mit',
+        'Name'                        : 'Name',
+        'No response values.'         : 'Keine Rückgabewerte.',
+        'optional'                    : 'optional',
+        'Parameter'                   : 'Parameter',
+        'Permission:'                 : 'Berechtigung:',
+        'Response'                    : 'Antwort',
+        'Send'                        : 'Senden',
+        'Send a Sample Request'       : 'Eine Beispielanfrage senden',
+        'show up to version:'         : 'zeige bis zur Version:',
+        'Size range:'                 : 'Größenbereich:',
+        'Type'                        : 'Typ',
+        'url'                         : 'url'
+    }
+});
diff --git a/apidoc/locales/es.js b/apidoc/locales/es.js
new file mode 100644 (file)
index 0000000..3d47e80
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    es: {
+        'Allowed values:'             : 'Valores permitidos:',
+        'Compare all with predecessor': 'Comparar todo con versión anterior',
+        'compare changes to:'         : 'comparar cambios con:',
+        'compared to'                 : 'comparado con',
+        'Default value:'              : 'Valor por defecto:',
+        'Description'                 : 'Descripción',
+        'Field'                       : 'Campo',
+        'General'                     : 'General',
+        'Generated with'              : 'Generado con',
+        'Name'                        : 'Nombre',
+        'No response values.'         : 'Sin valores en la respuesta.',
+        'optional'                    : 'opcional',
+        'Parameter'                   : 'Parámetro',
+        'Permission:'                 : 'Permisos:',
+        'Response'                    : 'Respuesta',
+        'Send'                        : 'Enviar',
+        'Send a Sample Request'       : 'Enviar una petición de ejemplo',
+        'show up to version:'         : 'mostrar a versión:',
+        'Size range:'                 : 'Tamaño de rango:',
+        'Type'                        : 'Tipo',
+        'url'                         : 'url'
+    }
+});
diff --git a/apidoc/locales/fr.js b/apidoc/locales/fr.js
new file mode 100644 (file)
index 0000000..100a642
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    fr: {
+        'Allowed values:'             : 'Valeurs autorisées :',
+        'Compare all with predecessor': 'Tout comparer avec ...',
+        'compare changes to:'         : 'comparer les changements à :',
+        'compared to'                 : 'comparer à',
+        'Default value:'              : 'Valeur par défaut :',
+        'Description'                 : 'Description',
+        'Field'                       : 'Champ',
+        'General'                     : 'Général',
+        'Generated with'              : 'Généré avec',
+        'Name'                        : 'Nom',
+        'No response values.'         : 'Aucune valeur de réponse.',
+        'optional'                    : 'optionnel',
+        'Parameter'                   : 'Paramètre',
+        'Permission:'                 : 'Permission :',
+        'Response'                    : 'Réponse',
+        'Send'                        : 'Envoyer',
+        'Send a Sample Request'       : 'Envoyer une requête représentative',
+        'show up to version:'         : 'Montrer à partir de la version :',
+        'Size range:'                 : 'Ordre de grandeur :',
+        'Type'                        : 'Type',
+        'url'                         : 'url'
+    }
+});
diff --git a/apidoc/locales/it.js b/apidoc/locales/it.js
new file mode 100644 (file)
index 0000000..8117108
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    it: {
+        'Allowed values:'             : 'Valori permessi:',
+        'Compare all with predecessor': 'Confronta tutto con versioni precedenti',
+        'compare changes to:'         : 'confronta modifiche con:',
+        'compared to'                 : 'confrontato con',
+        'Default value:'              : 'Valore predefinito:',
+        'Description'                 : 'Descrizione',
+        'Field'                       : 'Campo',
+        'General'                     : 'Generale',
+        'Generated with'              : 'Creato con',
+        'Name'                        : 'Nome',
+        'No response values.'         : 'Nessun valore di risposta.',
+        'optional'                    : 'opzionale',
+        'Parameter'                   : 'Parametro',
+        'Permission:'                 : 'Permessi:',
+        'Response'                    : 'Risposta',
+        'Send'                        : 'Invia',
+        'Send a Sample Request'       : 'Invia una richiesta di esempio',
+        'show up to version:'         : 'mostra alla versione:',
+        'Size range:'                 : 'Intervallo dimensione:',
+        'Type'                        : 'Tipo',
+        'url'                         : 'url'
+    }
+});
diff --git a/apidoc/locales/locale.js b/apidoc/locales/locale.js
new file mode 100644 (file)
index 0000000..ba82385
--- /dev/null
@@ -0,0 +1,50 @@
+define([
+    './locales/ca.js',
+    './locales/de.js',
+    './locales/es.js',
+    './locales/fr.js',
+    './locales/it.js',
+    './locales/nl.js',
+    './locales/pl.js',
+    './locales/pt_br.js',
+    './locales/ro.js',
+    './locales/ru.js',
+    './locales/tr.js',
+    './locales/vi.js',
+    './locales/zh.js',
+    './locales/zh_cn.js'
+], function() {
+    var langId = (navigator.language || navigator.userLanguage).toLowerCase().replace('-', '_');
+    var language = langId.substr(0, 2);
+    var locales = {};
+
+    for (index in arguments) {
+        for (property in arguments[index])
+            locales[property] = arguments[index][property];
+    }
+    if ( ! locales['en'])
+        locales['en'] = {};
+
+    if ( ! locales[langId] && ! locales[language])
+        language = 'en';
+
+    var locale = (locales[langId] ? locales[langId] : locales[language]);
+
+    function __(text) {
+        var index = locale[text];
+        if (index === undefined)
+            return text;
+        return index;
+    };
+
+    function setLanguage(language) {
+        locale = locales[language];
+    }
+
+    return {
+        __         : __,
+        locales    : locales,
+        locale     : locale,
+        setLanguage: setLanguage
+    };
+});
diff --git a/apidoc/locales/nl.js b/apidoc/locales/nl.js
new file mode 100644 (file)
index 0000000..bddfeeb
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    nl: {
+        'Allowed values:'             : 'Toegestane waarden:',
+        'Compare all with predecessor': 'Vergelijk alle met voorgaande versie',
+        'compare changes to:'         : 'vergelijk veranderingen met:',
+        'compared to'                 : 'vergelijk met',
+        'Default value:'              : 'Standaard waarde:',
+        'Description'                 : 'Omschrijving',
+        'Field'                       : 'Veld',
+        'General'                     : 'Algemeen',
+        'Generated with'              : 'Gegenereerd met',
+        'Name'                        : 'Naam',
+        'No response values.'         : 'Geen response waardes.',
+        'optional'                    : 'optioneel',
+        'Parameter'                   : 'Parameter',
+        'Permission:'                 : 'Permissie:',
+        'Response'                    : 'Antwoorden',
+        'Send'                        : 'Sturen',
+        'Send a Sample Request'       : 'Stuur een sample aanvragen',
+        'show up to version:'         : 'toon tot en met versie:',
+        'Size range:'                 : 'Maatbereik:',
+        'Type'                        : 'Type',
+        'url'                         : 'url'
+    }
+});
diff --git a/apidoc/locales/pl.js b/apidoc/locales/pl.js
new file mode 100644 (file)
index 0000000..db645ee
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    pl: {
+        'Allowed values:'             : 'Dozwolone wartości:',
+        'Compare all with predecessor': 'Porównaj z poprzednimi wersjami',
+        'compare changes to:'         : 'porównaj zmiany do:',
+        'compared to'                 : 'porównaj do:',
+        'Default value:'              : 'Wartość domyślna:',
+        'Description'                 : 'Opis',
+        'Field'                       : 'Pole',
+        'General'                     : 'Generalnie',
+        'Generated with'              : 'Wygenerowano z',
+        'Name'                        : 'Nazwa',
+        'No response values.'         : 'Brak odpowiedzi.',
+        'optional'                    : 'opcjonalny',
+        'Parameter'                   : 'Parametr',
+        'Permission:'                 : 'Uprawnienia:',
+        'Response'                    : 'Odpowiedź',
+        'Send'                        : 'Wyślij',
+        'Send a Sample Request'       : 'Wyślij przykładowe żądanie',
+        'show up to version:'         : 'pokaż do wersji:',
+        'Size range:'                 : 'Zakres rozmiaru:',
+        'Type'                        : 'Typ',
+        'url'                         : 'url'
+    }
+});
diff --git a/apidoc/locales/pt_br.js b/apidoc/locales/pt_br.js
new file mode 100644 (file)
index 0000000..2bd78b0
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    'pt_br': {
+        'Allowed values:'             : 'Valores permitidos:',
+        'Compare all with predecessor': 'Compare todos com antecessores',
+        'compare changes to:'         : 'comparar alterações com:',
+        'compared to'                 : 'comparado com',
+        'Default value:'              : 'Valor padrão:',
+        'Description'                 : 'Descrição',
+        'Field'                       : 'Campo',
+        'General'                     : 'Geral',
+        'Generated with'              : 'Gerado com',
+        'Name'                        : 'Nome',
+        'No response values.'         : 'Sem valores de resposta.',
+        'optional'                    : 'opcional',
+        'Parameter'                   : 'Parâmetro',
+        'Permission:'                 : 'Permissão:',
+        'Response'                    : 'Resposta',
+        'Send'                        : 'Enviar',
+        'Send a Sample Request'       : 'Enviar um Exemplo de Pedido',
+        'show up to version:'         : 'aparecer para a versão:',
+        'Size range:'                 : 'Faixa de tamanho:',
+        'Type'                        : 'Tipo',
+        'url'                         : 'url'
+    }
+});
diff --git a/apidoc/locales/ro.js b/apidoc/locales/ro.js
new file mode 100644 (file)
index 0000000..8d4e4ed
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    ro: {
+        'Allowed values:'             : 'Valori permise:',
+        'Compare all with predecessor': 'Compară toate cu versiunea precedentă',
+        'compare changes to:'         : 'compară cu versiunea:',
+        'compared to'                 : 'comparat cu',
+        'Default value:'              : 'Valoare implicită:',
+        'Description'                 : 'Descriere',
+        'Field'                       : 'Câmp',
+        'General'                     : 'General',
+        'Generated with'              : 'Generat cu',
+        'Name'                        : 'Nume',
+        'No response values.'         : 'Nici o valoare returnată.',
+        'optional'                    : 'opțional',
+        'Parameter'                   : 'Parametru',
+        'Permission:'                 : 'Permisiune:',
+        'Response'                    : 'Răspuns',
+        'Send'                        : 'Trimite',
+        'Send a Sample Request'       : 'Trimite o cerere de probă',
+        'show up to version:'         : 'arată până la versiunea:',
+        'Size range:'                 : 'Interval permis:',
+        'Type'                        : 'Tip',
+        'url'                         : 'url'
+    }
+});
diff --git a/apidoc/locales/ru.js b/apidoc/locales/ru.js
new file mode 100644 (file)
index 0000000..c5f3382
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    ru: {
+        'Allowed values:'             : 'Допустимые значения:',
+        'Compare all with predecessor': 'Сравнить с предыдущей версией',
+        'compare changes to:'         : 'сравнить с:',
+        'compared to'                 : 'в сравнении с',
+        'Default value:'              : 'По умолчанию:',
+        'Description'                 : 'Описание',
+        'Field'                       : 'Название',
+        'General'                     : 'Общая информация',
+        'Generated with'              : 'Сгенерировано с помощью',
+        'Name'                        : 'Название',
+        'No response values.'         : 'Нет значений для ответа.',
+        'optional'                    : 'необязательный',
+        'Parameter'                   : 'Параметр',
+        'Permission:'                 : 'Разрешено:',
+        'Response'                    : 'Ответ',
+        'Send'                        : 'Отправить',
+        'Send a Sample Request'       : 'Отправить тестовый запрос',
+        'show up to version:'         : 'показать версию:',
+        'Size range:'                 : 'Ограничения:',
+        'Type'                        : 'Тип',
+        'url'                         : 'URL'
+    }
+});
diff --git a/apidoc/locales/tr.js b/apidoc/locales/tr.js
new file mode 100644 (file)
index 0000000..5c64e52
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    tr: {
+        'Allowed values:'             : 'İzin verilen değerler:',
+        'Compare all with predecessor': 'Tümünü öncekiler ile karşılaştır',
+        'compare changes to:'         : 'değişiklikleri karşılaştır:',
+        'compared to'                 : 'karşılaştır',
+        'Default value:'              : 'Varsayılan değer:',
+        'Description'                 : 'Açıklama',
+        'Field'                       : 'Alan',
+        'General'                     : 'Genel',
+        'Generated with'              : 'Oluşturan',
+        'Name'                        : 'İsim',
+        'No response values.'         : 'Dönüş verisi yok.',
+        'optional'                    : 'opsiyonel',
+        'Parameter'                   : 'Parametre',
+        'Permission:'                 : 'İzin:',
+        'Response'                    : 'Dönüş',
+        'Send'                        : 'Gönder',
+        'Send a Sample Request'       : 'Örnek istek gönder',
+        'show up to version:'         : 'bu versiyona kadar göster:',
+        'Size range:'                 : 'Boyut aralığı:',
+        'Type'                        : 'Tip',
+        'url'                         : 'url'
+    }
+});
diff --git a/apidoc/locales/vi.js b/apidoc/locales/vi.js
new file mode 100644 (file)
index 0000000..7ce7705
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    vi: {
+        'Allowed values:'             : 'Giá trị chấp nhận:',
+        'Compare all with predecessor': 'So sánh với tất cả phiên bản trước',
+        'compare changes to:'         : 'so sánh sự thay đổi với:',
+        'compared to'                 : 'so sánh với',
+        'Default value:'              : 'Giá trị mặc định:',
+        'Description'                 : 'Chú thích',
+        'Field'                       : 'Trường dữ liệu',
+        'General'                     : 'Tổng quan',
+        'Generated with'              : 'Được tạo bởi',
+        'Name'                        : 'Tên',
+        'No response values.'         : 'Không có kết quả trả về.',
+        'optional'                    : 'Tùy chọn',
+        'Parameter'                   : 'Tham số',
+        'Permission:'                 : 'Quyền hạn:',
+        'Response'                    : 'Kết quả',
+        'Send'                        : 'Gửi',
+        'Send a Sample Request'       : 'Gửi một yêu cầu mẫu',
+        'show up to version:'         : 'hiển thị phiên bản:',
+        'Size range:'                 : 'Kích cỡ:',
+        'Type'                        : 'Kiểu',
+        'url'                         : 'liên kết'
+    }
+});
diff --git a/apidoc/locales/zh.js b/apidoc/locales/zh.js
new file mode 100644 (file)
index 0000000..6652206
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    zh: {
+        'Allowed values\200b\200b:'             : '允許值:',
+        'Compare all with predecessor': '預先比較所有',
+        'compare changes to:'         : '比較變更:',
+        'compared to'                 : '對比',
+        'Default value:'              : '默認值:',
+        'Description'                 : '描述',
+        'Field'                       : '字段',
+        'General'                     : '概括',
+        'Generated with'              : '生成工具',
+        'Name'                        : '名稱',
+        'No response values\200b\200b.'         : '無對應資料.',
+        'optional'                    : '選項',
+        'Parameter'                   : '參數',
+        'Permission:'                 : '允許:',
+        'Response'                    : '回應',
+        'Send'                        : '發送',
+        'Send a Sample Request'       : '發送試用需求',
+        'show up to version:'         : '顯示到版本:',
+        'Size range:'                 : '尺寸範圍:',
+        'Type'                        : '類型',
+        'url'                         : '網址'
+    }
+});
diff --git a/apidoc/locales/zh_cn.js b/apidoc/locales/zh_cn.js
new file mode 100644 (file)
index 0000000..1938ca1
--- /dev/null
@@ -0,0 +1,25 @@
+define({
+    'zh_cn': {
+        'Allowed values:'             : '允许值:',
+        'Compare all with predecessor': '与所有较早的比较',
+        'compare changes to:'         : '将当前版本与指定版本比较:',
+        'compared to'                 : '相比于',
+        'Default value:'              : '默认值:',
+        'Description'                 : '描述',
+        'Field'                       : '字段',
+        'General'                     : '概要',
+        'Generated with'              : '基于',
+        'Name'                        : '名称',
+        'No response values.'         : '无返回值.',
+        'optional'                    : '可选',
+        'Parameter'                   : '参数',
+        'Permission:'                 : '权限:',
+        'Response'                    : '返回',
+        'Send'                        : '发送',
+        'Send a Sample Request'       : '发送示例请求',
+        'show up to version:'         : '显示到指定版本:',
+        'Size range:'                 : '取值范围:',
+        'Type'                        : '类型',
+        'url'                         : '网址'
+    }
+});
diff --git a/apidoc/main.js b/apidoc/main.js
new file mode 100644 (file)
index 0000000..9d31fa5
--- /dev/null
@@ -0,0 +1,827 @@
+require.config({
+    paths: {
+        bootstrap: './vendor/bootstrap.min',
+        diffMatchPatch: './vendor/diff_match_patch.min',
+        handlebars: './vendor/handlebars.min',
+        handlebarsExtended: './utils/handlebars_helper',
+        jquery: './vendor/jquery.min',
+        locales: './locales/locale',
+        lodash: './vendor/lodash.custom.min',
+        pathToRegexp: './vendor/path-to-regexp/index',
+        prettify: './vendor/prettify/prettify',
+        semver: './vendor/semver.min',
+        utilsSampleRequest: './utils/send_sample_request',
+        webfontloader: './vendor/webfontloader',
+        list: './vendor/list.min'
+    },
+    shim: {
+        bootstrap: {
+            deps: ['jquery']
+        },
+        diffMatchPatch: {
+            exports: 'diff_match_patch'
+        },
+        handlebars: {
+            exports: 'Handlebars'
+        },
+        handlebarsExtended: {
+            deps: ['jquery', 'handlebars'],
+            exports: 'Handlebars'
+        },
+        prettify: {
+            exports: 'prettyPrint'
+        }
+    },
+    urlArgs: 'v=' + (new Date()).getTime(),
+    waitSeconds: 15
+});
+
+require([
+    'jquery',
+    'lodash',
+    'locales',
+    'handlebarsExtended',
+    './api_project.js',
+    './api_data.js',
+    'prettify',
+    'utilsSampleRequest',
+    'semver',
+    'webfontloader',
+    'bootstrap',
+    'pathToRegexp',
+    'list'
+], function($, _, locale, Handlebars, apiProject, apiData, prettyPrint, sampleRequest, semver, WebFont) {
+
+    // load google web fonts
+    loadGoogleFontCss();
+
+    var api = apiData.api;
+
+    //
+    // Templates
+    //
+    var templateHeader         = Handlebars.compile( $('#template-header').html() );
+    var templateFooter         = Handlebars.compile( $('#template-footer').html() );
+    var templateArticle        = Handlebars.compile( $('#template-article').html() );
+    var templateCompareArticle = Handlebars.compile( $('#template-compare-article').html() );
+    var templateGenerator      = Handlebars.compile( $('#template-generator').html() );
+    var templateProject        = Handlebars.compile( $('#template-project').html() );
+    var templateSections       = Handlebars.compile( $('#template-sections').html() );
+    var templateSidenav        = Handlebars.compile( $('#template-sidenav').html() );
+
+    //
+    // apiProject defaults
+    //
+    if ( ! apiProject.template)
+        apiProject.template = {};
+
+    if (apiProject.template.withCompare == null)
+        apiProject.template.withCompare = true;
+
+    if (apiProject.template.withGenerator == null)
+        apiProject.template.withGenerator = true;
+
+    if (apiProject.template.forceLanguage)
+        locale.setLanguage(apiProject.template.forceLanguage);
+
+    // Setup jQuery Ajax
+    $.ajaxSetup(apiProject.template.jQueryAjaxSetup);
+
+    //
+    // Data transform
+    //
+    // grouped by group
+    var apiByGroup = _.groupBy(api, function(entry) {
+        return entry.group;
+    });
+
+    // grouped by group and name
+    var apiByGroupAndName = {};
+    $.each(apiByGroup, function(index, entries) {
+        apiByGroupAndName[index] = _.groupBy(entries, function(entry) {
+            return entry.name;
+        });
+    });
+
+    //
+    // sort api within a group by title ASC and custom order
+    //
+    var newList = [];
+    var umlauts = { 'ä': 'ae', 'ü': 'ue', 'ö': 'oe', 'ß': 'ss' }; // TODO: remove in version 1.0
+    $.each (apiByGroupAndName, function(index, groupEntries) {
+        // get titles from the first entry of group[].name[] (name has versioning)
+        var titles = [];
+        $.each (groupEntries, function(titleName, entries) {
+            var title = entries[0].title;
+            if(title !== undefined) {
+                title.toLowerCase().replace(/[äöüß]/g, function($0) { return umlauts[$0]; });
+                titles.push(title + '#~#' + titleName); // '#~#' keep reference to titleName after sorting
+            }
+        });
+        // sort by name ASC
+        titles.sort();
+
+        // custom order
+        if (apiProject.order)
+            titles = sortByOrder(titles, apiProject.order, '#~#');
+
+        // add single elements to the new list
+        titles.forEach(function(name) {
+            var values = name.split('#~#');
+            var key = values[1];
+            groupEntries[key].forEach(function(entry) {
+                newList.push(entry);
+            });
+        });
+    });
+    // api overwrite with ordered list
+    api = newList;
+
+    //
+    // Group- and Versionlists
+    //
+    var apiGroups = {};
+    var apiGroupTitles = {};
+    var apiVersions = {};
+    apiVersions[apiProject.version] = 1;
+
+    $.each(api, function(index, entry) {
+        apiGroups[entry.group] = 1;
+        apiGroupTitles[entry.group] = entry.groupTitle || entry.group;
+        apiVersions[entry.version] = 1;
+    });
+
+    // sort groups
+    apiGroups = Object.keys(apiGroups);
+    apiGroups.sort();
+
+    // custom order
+    if (apiProject.order)
+        apiGroups = sortByOrder(apiGroups, apiProject.order);
+
+    // sort versions DESC
+    apiVersions = Object.keys(apiVersions);
+    apiVersions.sort(semver.compare);
+    apiVersions.reverse();
+
+    //
+    // create Navigationlist
+    //
+    var nav = [];
+    apiGroups.forEach(function(group) {
+        // Mainmenu entry
+        nav.push({
+            group: group,
+            isHeader: true,
+            title: apiGroupTitles[group]
+        });
+
+        // Submenu
+        var oldName = '';
+        api.forEach(function(entry) {
+            if (entry.group === group) {
+                if (oldName !== entry.name) {
+                    nav.push({
+                        title: entry.title,
+                        group: group,
+                        name: entry.name,
+                        type: entry.type,
+                        version: entry.version
+                    });
+                } else {
+                    nav.push({
+                        title: entry.title,
+                        group: group,
+                        hidden: true,
+                        name: entry.name,
+                        type: entry.type,
+                        version: entry.version
+                    });
+                }
+                oldName = entry.name;
+            }
+        });
+    });
+
+    /**
+     * Add navigation items by analyzing the HTML content and searching for h1 and h2 tags
+     * @param nav Object the navigation array
+     * @param content string the compiled HTML content
+     * @param index where to insert items
+     * @return boolean true if any good-looking (i.e. with a group identifier) <h1> tag was found
+     */
+    function add_nav(nav, content, index) {
+        var found_level1 = false;
+        if ( ! content) {
+          return found_level1;
+        }
+        var topics = content.match(/<h(1|2).*?>(.+?)<\/h(1|2)>/gi);
+        if ( topics ) {
+          topics.forEach(function(entry) {
+              var level = entry.substring(2,3);
+              var title = entry.replace(/<.+?>/g, '');    // Remove all HTML tags for the title
+              var entry_tags = entry.match(/id="api-([^\-]+)(?:-(.+))?"/);    // Find the group and name in the id property
+              var group = (entry_tags ? entry_tags[1] : null);
+              var name = (entry_tags ? entry_tags[2] : null);
+              if (level==1 && title && group)  {
+                  nav.splice(index, 0, {
+                      group: group,
+                      isHeader: true,
+                      title: title,
+                      isFixed: true
+                  });
+                  index++;
+                  found_level1 = true;
+              }
+              if (level==2 && title && group && name)    {
+                  nav.splice(index, 0, {
+                      group: group,
+                      name: name,
+                      isHeader: false,
+                      title: title,
+                      isFixed: false,
+                      version: '1.0'
+                  });
+                  index++;
+              }
+          });
+        }
+        return found_level1;
+    }
+
+    // Mainmenu Header entry
+    if (apiProject.header) {
+        var found_level1 = add_nav(nav, apiProject.header.content, 0); // Add level 1 and 2 titles
+        if (!found_level1) {    // If no Level 1 tags were found, make a title
+            nav.unshift({
+                group: '_',
+                isHeader: true,
+                title: (apiProject.header.title == null) ? locale.__('General') : apiProject.header.title,
+                isFixed: true
+            });
+        }
+    }
+
+    // Mainmenu Footer entry
+    if (apiProject.footer) {
+        var last_nav_index = nav.length;
+        var found_level1 = add_nav(nav, apiProject.footer.content, nav.length); // Add level 1 and 2 titles
+        if (!found_level1 && apiProject.footer.title != null) {    // If no Level 1 tags were found, make a title
+            nav.splice(last_nav_index, 0, {
+                group: '_footer',
+                isHeader: true,
+                title: apiProject.footer.title,
+                isFixed: true
+            });
+        }
+    }
+
+    // render pagetitle
+    var title = apiProject.title ? apiProject.title : 'apiDoc: ' + apiProject.name + ' - ' + apiProject.version;
+    $(document).attr('title', title);
+
+    // remove loader
+    $('#loader').remove();
+
+    // render sidenav
+    var fields = {
+        nav: nav
+    };
+    $('#sidenav').append( templateSidenav(fields) );
+
+    // render Generator
+    $('#generator').append( templateGenerator(apiProject) );
+
+    // render Project
+    _.extend(apiProject, { versions: apiVersions});
+    $('#project').append( templateProject(apiProject) );
+
+    // render apiDoc, header/footer documentation
+    if (apiProject.header)
+        $('#header').append( templateHeader(apiProject.header) );
+
+    if (apiProject.footer)
+        $('#footer').append( templateFooter(apiProject.footer) );
+
+    //
+    // Render Sections and Articles
+    //
+    var articleVersions = {};
+    var content = '';
+    apiGroups.forEach(function(groupEntry) {
+        var articles = [];
+        var oldName = '';
+        var fields = {};
+        var title = groupEntry;
+        var description = '';
+        articleVersions[groupEntry] = {};
+
+        // render all articles of a group
+        api.forEach(function(entry) {
+            if(groupEntry === entry.group) {
+                if (oldName !== entry.name) {
+                    // determine versions
+                    api.forEach(function(versionEntry) {
+                        if (groupEntry === versionEntry.group && entry.name === versionEntry.name) {
+                            if ( ! articleVersions[entry.group].hasOwnProperty(entry.name) ) {
+                                articleVersions[entry.group][entry.name] = [];
+                            }
+                            articleVersions[entry.group][entry.name].push(versionEntry.version);
+                        }
+                    });
+                    fields = {
+                        article: entry,
+                        versions: articleVersions[entry.group][entry.name]
+                    };
+                } else {
+                    fields = {
+                        article: entry,
+                        hidden: true,
+                        versions: articleVersions[entry.group][entry.name]
+                    };
+                }
+
+                // add prefix URL for endpoint
+                if (apiProject.url)
+                    fields.article.url = apiProject.url + fields.article.url;
+
+                addArticleSettings(fields, entry);
+
+                if (entry.groupTitle)
+                    title = entry.groupTitle;
+
+                // TODO: make groupDescription compareable with older versions (not important for the moment)
+                if (entry.groupDescription)
+                    description = entry.groupDescription;
+
+                articles.push({
+                    article: templateArticle(fields),
+                    group: entry.group,
+                    name: entry.name
+                });
+                oldName = entry.name;
+            }
+        });
+
+        // render Section with Articles
+        var fields = {
+            group: groupEntry,
+            title: title,
+            description: description,
+            articles: articles
+        };
+        content += templateSections(fields);
+    });
+    $('#sections').append( content );
+
+    // Bootstrap Scrollspy
+    $(this).scrollspy({ target: '#scrollingNav', offset: 18 });
+
+    // Content-Scroll on Navigation click.
+    $('.sidenav').find('a').on('click', function(e) {
+        e.preventDefault();
+        var id = $(this).attr('href');
+        if ($(id).length > 0)
+            $('html,body').animate({ scrollTop: parseInt($(id).offset().top) }, 400);
+        window.location.hash = $(this).attr('href');
+    });
+
+    // Quickjump on Pageload to hash position.
+    if(window.location.hash) {
+        var id = window.location.hash;
+        if ($(id).length > 0)
+            $('html,body').animate({ scrollTop: parseInt($(id).offset().top) }, 0);
+    }
+
+    /**
+     * Check if Parameter (sub) List has a type Field.
+     * Example: @apiSuccess          varname1 No type.
+     *          @apiSuccess {String} varname2 With type.
+     *
+     * @param {Object} fields
+     */
+    function _hasTypeInFields(fields) {
+        var result = false;
+        $.each(fields, function(name) {
+            result = result || _.some(fields[name], function(item) { return item.type; });
+        });
+        return result;
+    }
+
+    /**
+     * On Template changes, recall plugins.
+     */
+    function initDynamic() {
+        // Bootstrap popover
+        $('button[data-toggle="popover"]').popover().click(function(e) {
+            e.preventDefault();
+        });
+
+        var version = $('#version strong').html();
+        $('#sidenav li').removeClass('is-new');
+        if (apiProject.template.withCompare) {
+            $('#sidenav li[data-version=\'' + version + '\']').each(function(){
+                var group = $(this).data('group');
+                var name = $(this).data('name');
+                var length = $('#sidenav li[data-group=\'' + group + '\'][data-name=\'' + name + '\']').length;
+                var index  = $('#sidenav li[data-group=\'' + group + '\'][data-name=\'' + name + '\']').index($(this));
+                if (length === 1 || index === (length - 1))
+                    $(this).addClass('is-new');
+            });
+        }
+
+        // tabs
+        $('.nav-tabs-examples a').click(function (e) {
+            e.preventDefault();
+            $(this).tab('show');
+        });
+        $('.nav-tabs-examples').find('a:first').tab('show');
+
+        // sample request switch
+        $('.sample-request-switch').click(function (e) {
+            var name = '.' + $(this).attr('name') + '-fields';
+            $(name).addClass('hide');
+            $(this).parent().next(name).removeClass('hide');
+        });
+
+        // call scrollspy refresh method
+        $(window).scrollspy('refresh');
+
+        // init modules
+        sampleRequest.initDynamic();
+    }
+    initDynamic();
+
+    // Pre- / Code-Format
+    prettyPrint();
+
+    //
+    // HTML-Template specific jQuery-Functions
+    //
+    // Change Main Version
+    $('#versions li.version a').on('click', function(e) {
+        e.preventDefault();
+
+        var selectedVersion = $(this).html();
+        $('#version strong').html(selectedVersion);
+
+        // hide all
+        $('article').addClass('hide');
+        $('#sidenav li:not(.nav-fixed)').addClass('hide');
+
+        // show 1st equal or lower Version of each entry
+        $('article[data-version]').each(function(index) {
+            var group = $(this).data('group');
+            var name = $(this).data('name');
+            var version = $(this).data('version');
+
+            if (semver.lte(version, selectedVersion)) {
+                if ($('article[data-group=\'' + group + '\'][data-name=\'' + name + '\']:visible').length === 0) {
+                    // enable Article
+                    $('article[data-group=\'' + group + '\'][data-name=\'' + name + '\'][data-version=\'' + version + '\']').removeClass('hide');
+                    // enable Navigation
+                    $('#sidenav li[data-group=\'' + group + '\'][data-name=\'' + name + '\'][data-version=\'' + version + '\']').removeClass('hide');
+                    $('#sidenav li.nav-header[data-group=\'' + group + '\']').removeClass('hide');
+                }
+            }
+        });
+
+        // show 1st equal or lower Version of each entry
+        $('article[data-version]').each(function(index) {
+            var group = $(this).data('group');
+            $('section#api-' + group).removeClass('hide');
+            if ($('section#api-' + group + ' article:visible').length === 0) {
+                $('section#api-' + group).addClass('hide');
+            } else {
+                $('section#api-' + group).removeClass('hide');
+            }
+        });
+
+        initDynamic();
+        return;
+    });
+
+    // compare all article with their predecessor
+    $('#compareAllWithPredecessor').on('click', changeAllVersionCompareTo);
+
+    // change version of an article
+    $('article .versions li.version a').on('click', changeVersionCompareTo);
+
+    // compare url-parameter
+    $.urlParam = function(name) {
+        var results = new RegExp('[\\?&amp;]' + name + '=([^&amp;#]*)').exec(window.location.href);
+        return (results && results[1]) ? results[1] : null;
+    };
+
+    if ($.urlParam('compare')) {
+        // URL Paramter ?compare=1 is set
+        $('#compareAllWithPredecessor').trigger('click');
+
+        if (window.location.hash) {
+            var id = window.location.hash;
+            $('html,body').animate({ scrollTop: parseInt($(id).offset().top) - 18 }, 0);
+        }
+    }
+
+    /**
+     * Initialize search
+     */
+    var options = {
+      valueNames: [ 'nav-list-item' ]
+    };
+    var endpointsList = new List('scrollingNav', options);
+
+    /**
+     * Set initial focus to search input
+     */
+    $('#scrollingNav .sidenav-search input.search').focus();
+
+    /**
+     * Detect ESC key to reset search
+     */
+    $(document).keyup(function(e) {
+      if (e.keyCode === 27) $('span.search-reset').click();
+    });
+
+    /**
+     * Search reset
+     */
+    $('span.search-reset').on('click', function() {
+      $('#scrollingNav .sidenav-search input.search')
+        .val("")
+        .focus()
+      ;
+      endpointsList.search();
+    });
+
+    /**
+     * Change version of an article to compare it to an other version.
+     */
+    function changeVersionCompareTo(e) {
+        e.preventDefault();
+
+        var $root = $(this).parents('article');
+        var selectedVersion = $(this).html();
+        var $button = $root.find('.version');
+        var currentVersion = $button.find('strong').html();
+        $button.find('strong').html(selectedVersion);
+
+        var group = $root.data('group');
+        var name = $root.data('name');
+        var version = $root.data('version');
+
+        var compareVersion = $root.data('compare-version');
+
+        if (compareVersion === selectedVersion)
+            return;
+
+        if ( ! compareVersion && version == selectedVersion)
+            return;
+
+        if (compareVersion && articleVersions[group][name][0] === selectedVersion || version === selectedVersion) {
+            // the version of the entry is set to the highest version (reset)
+            resetArticle(group, name, version);
+        } else {
+            var $compareToArticle = $('article[data-group=\'' + group + '\'][data-name=\'' + name + '\'][data-version=\'' + selectedVersion + '\']');
+
+            var sourceEntry = {};
+            var compareEntry = {};
+            $.each(apiByGroupAndName[group][name], function(index, entry) {
+                if (entry.version === version)
+                    sourceEntry = entry;
+                if (entry.version === selectedVersion)
+                    compareEntry = entry;
+            });
+
+            var fields = {
+                article: sourceEntry,
+                compare: compareEntry,
+                versions: articleVersions[group][name]
+            };
+
+            // add unique id
+            // TODO: replace all group-name-version in template with id.
+            fields.article.id = fields.article.group + '-' + fields.article.name + '-' + fields.article.version;
+            fields.article.id = fields.article.id.replace(/\./g, '_');
+
+            fields.compare.id = fields.compare.group + '-' + fields.compare.name + '-' + fields.compare.version;
+            fields.compare.id = fields.compare.id.replace(/\./g, '_');
+
+            var entry = sourceEntry;
+            if (entry.parameter && entry.parameter.fields)
+                fields._hasTypeInParameterFields = _hasTypeInFields(entry.parameter.fields);
+
+            if (entry.error && entry.error.fields)
+                fields._hasTypeInErrorFields = _hasTypeInFields(entry.error.fields);
+
+            if (entry.success && entry.success.fields)
+                fields._hasTypeInSuccessFields = _hasTypeInFields(entry.success.fields);
+
+            if (entry.info && entry.info.fields)
+                fields._hasTypeInInfoFields = _hasTypeInFields(entry.info.fields);
+
+            var entry = compareEntry;
+            if (fields._hasTypeInParameterFields !== true && entry.parameter && entry.parameter.fields)
+                fields._hasTypeInParameterFields = _hasTypeInFields(entry.parameter.fields);
+
+            if (fields._hasTypeInErrorFields !== true && entry.error && entry.error.fields)
+                fields._hasTypeInErrorFields = _hasTypeInFields(entry.error.fields);
+
+            if (fields._hasTypeInSuccessFields !== true && entry.success && entry.success.fields)
+                fields._hasTypeInSuccessFields = _hasTypeInFields(entry.success.fields);
+
+            if (fields._hasTypeInInfoFields !== true && entry.info && entry.info.fields)
+                fields._hasTypeInInfoFields = _hasTypeInFields(entry.info.fields);
+
+            var content = templateCompareArticle(fields);
+            $root.after(content);
+            var $content = $root.next();
+
+            // Event on.click re-assign
+            $content.find('.versions li.version a').on('click', changeVersionCompareTo);
+
+            // select navigation
+            $('#sidenav li[data-group=\'' + group + '\'][data-name=\'' + name + '\'][data-version=\'' + currentVersion + '\']').addClass('has-modifications');
+
+            $root.remove();
+            // TODO: on change main version or select the highest version re-render
+        }
+
+        initDynamic();
+    }
+
+    /**
+     * Compare all currently selected Versions with their predecessor.
+     */
+    function changeAllVersionCompareTo(e) {
+        e.preventDefault();
+        $('article:visible .versions').each(function(){
+            var $root = $(this).parents('article');
+            var currentVersion = $root.data('version');
+            var $foundElement = null;
+            $(this).find('li.version a').each(function() {
+                var selectVersion = $(this).html();
+                if (selectVersion < currentVersion && ! $foundElement)
+                    $foundElement = $(this);
+            });
+
+            if($foundElement)
+                $foundElement.trigger('click');
+        });
+        initDynamic();
+    }
+
+    /**
+     * Sort the fields.
+     */
+    function sortFields(fields_object) {
+        $.each(fields_object, function (key, fields) {
+
+            var reversed = fields.slice().reverse()
+
+            var max_dot_count = Math.max.apply(null, reversed.map(function (item) {
+                return item.field.split(".").length - 1;
+            }))
+
+            for (var dot_count = 1; dot_count <= max_dot_count; dot_count++) {
+                reversed.forEach(function (item, index) {
+                    var parts = item.field.split(".");
+                    if (parts.length - 1 == dot_count) {
+                        var fields_names = fields.map(function (item) { return item.field; });
+                        if (parts.slice(1).length  >= 1) {
+                            var prefix = parts.slice(0, parts.length - 1).join(".");
+                            var prefix_index = fields_names.indexOf(prefix);
+                            if (prefix_index > -1) {
+                                fields.splice(fields_names.indexOf(item.field), 1);
+                                fields.splice(prefix_index + 1, 0, item);
+                            }
+                        }
+                    }
+                });
+            }
+        });
+    }
+
+    /**
+     * Add article settings.
+     */
+    function addArticleSettings(fields, entry) {
+        // add unique id
+        // TODO: replace all group-name-version in template with id.
+        fields.id = fields.article.group + '-' + fields.article.name + '-' + fields.article.version;
+        fields.id = fields.id.replace(/\./g, '_');
+
+        if (entry.header && entry.header.fields) {
+            sortFields(entry.header.fields);
+            fields._hasTypeInHeaderFields = _hasTypeInFields(entry.header.fields);
+        }
+
+        if (entry.parameter && entry.parameter.fields) {
+            sortFields(entry.parameter.fields);
+            fields._hasTypeInParameterFields = _hasTypeInFields(entry.parameter.fields);
+        }
+
+        if (entry.error && entry.error.fields) {
+            sortFields(entry.error.fields);
+            fields._hasTypeInErrorFields = _hasTypeInFields(entry.error.fields);
+        }
+
+        if (entry.success && entry.success.fields) {
+            sortFields(entry.success.fields);
+            fields._hasTypeInSuccessFields = _hasTypeInFields(entry.success.fields);
+        }
+
+        if (entry.info && entry.info.fields) {
+            sortFields(entry.info.fields);
+            fields._hasTypeInInfoFields = _hasTypeInFields(entry.info.fields);
+        }
+
+        // add template settings
+        fields.template = apiProject.template;
+    }
+
+    /**
+     * Render Article.
+     */
+    function renderArticle(group, name, version) {
+        var entry = {};
+        $.each(apiByGroupAndName[group][name], function(index, currentEntry) {
+            if (currentEntry.version === version)
+                entry = currentEntry;
+        });
+        var fields = {
+            article: entry,
+            versions: articleVersions[group][name]
+        };
+
+        addArticleSettings(fields, entry);
+
+        return templateArticle(fields);
+    }
+
+    /**
+     * Render original Article and remove the current visible Article.
+     */
+    function resetArticle(group, name, version) {
+        var $root = $('article[data-group=\'' + group + '\'][data-name=\'' + name + '\']:visible');
+        var content = renderArticle(group, name, version);
+
+        $root.after(content);
+        var $content = $root.next();
+
+        // Event on.click muss neu zugewiesen werden (sollte eigentlich mit on automatisch funktionieren... sollte)
+        $content.find('.versions li.version a').on('click', changeVersionCompareTo);
+
+        $('#sidenav li[data-group=\'' + group + '\'][data-name=\'' + name + '\'][data-version=\'' + version + '\']').removeClass('has-modifications');
+
+        $root.remove();
+        return;
+    }
+
+    /**
+     * Load google fonts.
+     */
+    function loadGoogleFontCss() {
+        WebFont.load({
+            active: function() {
+                // Update scrollspy
+                $(window).scrollspy('refresh')
+            },
+            google: {
+                families: ['Source Code Pro', 'Source Sans Pro:n4,n6,n7']
+            }
+        });
+    }
+
+    /**
+     * Return ordered entries by custom order and append not defined entries to the end.
+     * @param  {String[]} elements
+     * @param  {String[]} order
+     * @param  {String}   splitBy
+     * @return {String[]} Custom ordered list.
+     */
+    function sortByOrder(elements, order, splitBy) {
+        var results = [];
+        order.forEach (function(name) {
+            if (splitBy)
+                elements.forEach (function(element) {
+                    var parts = element.split(splitBy);
+                    var key = parts[1]; // reference keep for sorting
+                    if (key == name)
+                        results.push(element);
+                });
+            else
+                elements.forEach (function(key) {
+                    if (key == name)
+                        results.push(name);
+                });
+        });
+        // Append all other entries that ar not defined in order
+        elements.forEach(function(element) {
+            if (results.indexOf(element) === -1)
+                results.push(element);
+        });
+        return results;
+    }
+
+});
diff --git a/apidoc/utils/handlebars_helper.js b/apidoc/utils/handlebars_helper.js
new file mode 100644 (file)
index 0000000..a5d5c4f
--- /dev/null
@@ -0,0 +1,357 @@
+define([
+    'locales',
+    'handlebars',
+    'diffMatchPatch'
+], function(locale, Handlebars, DiffMatchPatch) {
+
+    /**
+     * Return a text as markdown.
+     * Currently only a little helper to replace apidoc-inline Links (#Group:Name).
+     * Should be replaced with a full markdown lib.
+     * @param string text
+     */
+    Handlebars.registerHelper('markdown', function(text) {
+        if ( ! text ) {
+          return text;
+        }
+        text = text.replace(/((\[(.*?)\])?\(#)((.+?):(.+?))(\))/mg, function(match, p1, p2, p3, p4, p5, p6) {
+          var link = p3 || p5 + '/' + p6;
+          return '<a href="#api-' + p5 + '-' + p6 + '">' + link + '</a>';
+        });
+        return text;
+    });
+
+    /**
+     * start/stop timer for simple performance check.
+     */
+    var timer;
+    Handlebars.registerHelper('startTimer', function(text) {
+        timer = new Date();
+        return '';
+    });
+
+    Handlebars.registerHelper('stopTimer', function(text) {
+        console.log(new Date() - timer);
+        return '';
+    });
+
+    /**
+     * Return localized Text.
+     * @param string text
+     */
+    Handlebars.registerHelper('__', function(text) {
+        return locale.__(text);
+    });
+
+    /**
+     * Console log.
+     * @param mixed obj
+     */
+    Handlebars.registerHelper('cl', function(obj) {
+        console.log(obj);
+        return '';
+    });
+
+    /**
+     * Replace underscore with space.
+     * @param string text
+     */
+    Handlebars.registerHelper('underscoreToSpace', function(text) {
+        return text.replace(/(_+)/g, ' ');
+    });
+
+    /**
+     *
+     */
+    Handlebars.registerHelper('assign', function(name) {
+        if(arguments.length > 0) {
+            var type = typeof(arguments[1]);
+            var arg = null;
+            if(type === 'string' || type === 'number' || type === 'boolean') arg = arguments[1];
+            Handlebars.registerHelper(name, function() { return arg; });
+        }
+        return '';
+    });
+
+    /**
+     *
+     */
+    Handlebars.registerHelper('nl2br', function(text) {
+        return _handlebarsNewlineToBreak(text);
+    });
+
+    /**
+     *
+     */
+    Handlebars.registerHelper('if_eq', function(context, options) {
+        var compare = context;
+        // Get length if context is an object
+        if (context instanceof Object && ! (options.hash.compare instanceof Object))
+             compare = Object.keys(context).length;
+
+        if (compare === options.hash.compare)
+            return options.fn(this);
+
+        return options.inverse(this);
+    });
+
+    /**
+     *
+     */
+    Handlebars.registerHelper('if_gt', function(context, options) {
+        var compare = context;
+        // Get length if context is an object
+        if (context instanceof Object && ! (options.hash.compare instanceof Object))
+             compare = Object.keys(context).length;
+
+        if(compare > options.hash.compare)
+            return options.fn(this);
+
+        return options.inverse(this);
+    });
+
+    /**
+     *
+     */
+    var templateCache = {};
+    Handlebars.registerHelper('subTemplate', function(name, sourceContext) {
+        if ( ! templateCache[name])
+            templateCache[name] = Handlebars.compile($('#template-' + name).html());
+
+        var template = templateCache[name];
+        var templateContext = $.extend({}, this, sourceContext.hash);
+        return new Handlebars.SafeString( template(templateContext) );
+    });
+
+    /**
+     *
+     */
+    Handlebars.registerHelper('toLowerCase', function(value) {
+        return (value && typeof value === 'string') ? value.toLowerCase() : '';
+    });
+
+    /**
+     *
+     */
+    Handlebars.registerHelper('splitFill', function(value, splitChar, fillChar) {
+        var splits = value.split(splitChar);
+        return new Array(splits.length).join(fillChar) + splits[splits.length - 1];
+    });
+
+    /**
+     * Convert Newline to HTML-Break (nl2br).
+     *
+     * @param {String} text
+     * @returns {String}
+     */
+    function _handlebarsNewlineToBreak(text) {
+        return ('' + text).replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1' + '<br>' + '$2');
+    }
+
+    /**
+     *
+     */
+    Handlebars.registerHelper('each_compare_list_field', function(source, compare, options) {
+        var fieldName = options.hash.field;
+        var newSource = [];
+        if (source) {
+            source.forEach(function(entry) {
+                var values = entry;
+                values['key'] = entry[fieldName];
+                newSource.push(values);
+            });
+        }
+
+        var newCompare = [];
+        if (compare) {
+            compare.forEach(function(entry) {
+                var values = entry;
+                values['key'] = entry[fieldName];
+                newCompare.push(values);
+            });
+        }
+        return _handlebarsEachCompared('key', newSource, newCompare, options);
+    });
+
+    /**
+     *
+     */
+    Handlebars.registerHelper('each_compare_keys', function(source, compare, options) {
+        var newSource = [];
+        if (source) {
+            var sourceFields = Object.keys(source);
+            sourceFields.forEach(function(name) {
+                var values = {};
+                values['value'] = source[name];
+                values['key'] = name;
+                newSource.push(values);
+            });
+        }
+
+        var newCompare = [];
+        if (compare) {
+            var compareFields = Object.keys(compare);
+            compareFields.forEach(function(name) {
+                var values = {};
+                values['value'] = compare[name];
+                values['key'] = name;
+                newCompare.push(values);
+            });
+        }
+        return _handlebarsEachCompared('key', newSource, newCompare, options);
+    });
+
+    /**
+     *
+     */
+    Handlebars.registerHelper('each_compare_field', function(source, compare, options) {
+        return _handlebarsEachCompared('field', source, compare, options);
+    });
+
+    /**
+     *
+     */
+    Handlebars.registerHelper('each_compare_title', function(source, compare, options) {
+        return _handlebarsEachCompared('title', source, compare, options);
+    });
+
+    /**
+     *
+     */
+    Handlebars.registerHelper('reformat', function(source, type){
+        if (type == 'json')
+            try {
+               return JSON.stringify(JSON.parse(source.trim()),null, "    ");
+            } catch(e) {
+
+            }
+        return source
+    });
+
+    /**
+     *
+     */
+    Handlebars.registerHelper('showDiff', function(source, compare, options) {
+        var ds = '';
+        if(source === compare) {
+            ds = source;
+        } else {
+            if( ! source)
+                return compare;
+
+            if( ! compare)
+                return source;
+
+            var d = diffMatchPatch.diff_main(compare, source);
+            diffMatchPatch.diff_cleanupSemantic(d);
+            ds = diffMatchPatch.diff_prettyHtml(d);
+            ds = ds.replace(/&para;/gm, '');
+        }
+        if(options === 'nl2br')
+            ds = _handlebarsNewlineToBreak(ds);
+
+        return ds;
+    });
+
+    /**
+     *
+     */
+    function _handlebarsEachCompared(fieldname, source, compare, options)
+    {
+        var dataList = [];
+        var index = 0;
+        if(source) {
+            source.forEach(function(sourceEntry) {
+                var found = false;
+                if (compare) {
+                    compare.forEach(function(compareEntry) {
+                        if(sourceEntry[fieldname] === compareEntry[fieldname]) {
+                            var data = {
+                                typeSame: true,
+                                source: sourceEntry,
+                                compare: compareEntry,
+                                index: index
+                            };
+                            dataList.push(data);
+                            found = true;
+                            index++;
+                        }
+                    });
+                }
+                if ( ! found) {
+                    var data = {
+                        typeIns: true,
+                        source: sourceEntry,
+                        index: index
+                    };
+                    dataList.push(data);
+                    index++;
+                }
+            });
+        }
+
+        if (compare) {
+            compare.forEach(function(compareEntry) {
+                var found = false;
+                if (source) {
+                    source.forEach(function(sourceEntry) {
+                        if(sourceEntry[fieldname] === compareEntry[fieldname])
+                            found = true;
+                    });
+                }
+                if ( ! found) {
+                    var data = {
+                        typeDel: true,
+                        compare: compareEntry,
+                        index: index
+                    };
+                    dataList.push(data);
+                    index++;
+                }
+            });
+        }
+
+        var ret = '';
+        var length = dataList.length;
+        for (var index in dataList) {
+            if(index == (length - 1))
+                dataList[index]['_last'] = true;
+            ret = ret + options.fn(dataList[index]);
+        }
+        return ret;
+    }
+
+    var diffMatchPatch = new DiffMatchPatch();
+
+    /**
+     * Overwrite Colors
+     */
+    DiffMatchPatch.prototype.diff_prettyHtml = function(diffs) {
+      var html = [];
+      var pattern_amp = /&/g;
+      var pattern_lt = /</g;
+      var pattern_gt = />/g;
+      var pattern_para = /\n/g;
+      for (var x = 0; x < diffs.length; x++) {
+        var op = diffs[x][0];    // Operation (insert, delete, equal)
+        var data = diffs[x][1];  // Text of change.
+        var text = data.replace(pattern_amp, '&amp;').replace(pattern_lt, '&lt;')
+            .replace(pattern_gt, '&gt;').replace(pattern_para, '&para;<br>');
+        switch (op) {
+          case DIFF_INSERT:
+            html[x] = '<ins>' + text + '</ins>';
+            break;
+          case DIFF_DELETE:
+            html[x] = '<del>' + text + '</del>';
+            break;
+          case DIFF_EQUAL:
+            html[x] = '<span>' + text + '</span>';
+            break;
+        }
+      }
+      return html.join('');
+    };
+
+    // Exports
+    return Handlebars;
+});
diff --git a/apidoc/utils/send_sample_request.js b/apidoc/utils/send_sample_request.js
new file mode 100755 (executable)
index 0000000..f2396ea
--- /dev/null
@@ -0,0 +1,184 @@
+define([\r
+  'jquery',\r
+  'lodash'\r
+], function($, _) {\r
+\r
+  var initDynamic = function() {\r
+      // Button send\r
+      $(".sample-request-send").off("click");\r
+      $(".sample-request-send").on("click", function(e) {\r
+          e.preventDefault();\r
+          var $root = $(this).parents("article");\r
+          var group = $root.data("group");\r
+          var name = $root.data("name");\r
+          var version = $root.data("version");\r
+          sendSampleRequest(group, name, version, $(this).data("sample-request-type"));\r
+      });\r
+\r
+      // Button clear\r
+      $(".sample-request-clear").off("click");\r
+      $(".sample-request-clear").on("click", function(e) {\r
+          e.preventDefault();\r
+          var $root = $(this).parents("article");\r
+          var group = $root.data("group");\r
+          var name = $root.data("name");\r
+          var version = $root.data("version");\r
+          clearSampleRequest(group, name, version);\r
+      });\r
+  }; // initDynamic\r
+\r
+  function sendSampleRequest(group, name, version, type)\r
+  {\r
+      var $root = $('article[data-group="' + group + '"][data-name="' + name + '"][data-version="' + version + '"]');\r
+\r
+      // Optional header\r
+      var header = {};\r
+      $root.find(".sample-request-header:checked").each(function(i, element) {\r
+          var group = $(element).data("sample-request-header-group-id");\r
+          $root.find("[data-sample-request-header-group=\"" + group + "\"]").each(function(i, element) {\r
+            var key = $(element).data("sample-request-header-name");\r
+            var value = element.value;\r
+            if ( ! element.optional && element.defaultValue !== '') {\r
+                value = element.defaultValue;\r
+            }\r
+            header[key] = value;\r
+          });\r
+      });\r
+\r
+      // create JSON dictionary of parameters\r
+      var param = {};\r
+      var paramType = {};\r
+      $root.find(".sample-request-param:checked").each(function(i, element) {\r
+          var group = $(element).data("sample-request-param-group-id");\r
+          $root.find("[data-sample-request-param-group=\"" + group + "\"]").not(function(){\r
+            return $(this).val() == "" && $(this).is("[data-sample-request-param-optional='true']");\r
+          }).each(function(i, element) {\r
+            var key = $(element).data("sample-request-param-name");\r
+            var value = element.value;\r
+            if ( ! element.optional && element.defaultValue !== '') {\r
+                value = element.defaultValue;\r
+            }\r
+            param[key] = value;\r
+            paramType[key] = $(element).next().text();\r
+          });\r
+      });\r
+\r
+      // grab user-inputted URL\r
+      var url = $root.find(".sample-request-url").val();\r
+\r
+      // Insert url parameter\r
+      var pattern = pathToRegexp(url, null);\r
+      var matches = pattern.exec(url);\r
+      for (var i = 1; i < matches.length; i++) {\r
+          var key = matches[i].substr(1);\r
+          if (param[key] !== undefined) {\r
+              url = url.replace(matches[i], encodeURIComponent(param[key]));\r
+\r
+              // remove URL parameters from list\r
+              delete param[key];\r
+          }\r
+      } // for\r
+\r
+      $root.find(".sample-request-response").fadeTo(250, 1);\r
+      $root.find(".sample-request-response-json").html("Loading...");\r
+      refreshScrollSpy();\r
+\r
+      _.each( param, function( val, key ) {\r
+          var t = paramType[ key ].toLowerCase();\r
+          if ( t === 'object' || t === 'array' ) {\r
+              try {\r
+                  param[ key ] = JSON.parse( val );\r
+              } catch (e) {\r
+              }\r
+          }\r
+      });\r
+\r
+      // send AJAX request, catch success or error callback\r
+      var ajaxRequest = {\r
+          url        : url,\r
+          headers    : header,\r
+          data       : param,\r
+          type       : type.toUpperCase(),\r
+          success    : displaySuccess,\r
+          error      : displayError\r
+      };\r
+\r
+      $.ajax(ajaxRequest);\r
+\r
+\r
+      function displaySuccess(data, status, jqXHR) {\r
+          var jsonResponse;\r
+          try {\r
+              jsonResponse = JSON.parse(jqXHR.responseText);\r
+              jsonResponse = JSON.stringify(jsonResponse, null, 4);\r
+          } catch (e) {\r
+              jsonResponse = data;\r
+          }\r
+          $root.find(".sample-request-response-json").html(jsonResponse);\r
+          refreshScrollSpy();\r
+      };\r
+\r
+      function displayError(jqXHR, textStatus, error) {\r
+          var message = "Error " + jqXHR.status + ": " + error;\r
+          var jsonResponse;\r
+          try {\r
+              jsonResponse = JSON.parse(jqXHR.responseText);\r
+              jsonResponse = JSON.stringify(jsonResponse, null, 4);\r
+          } catch (e) {\r
+              jsonResponse = escape(jqXHR.responseText);\r
+          }\r
+\r
+          if (jsonResponse)\r
+              message += "<br>" + jsonResponse;\r
+\r
+          // flicker on previous error to make clear that there is a new response\r
+          if($root.find(".sample-request-response").is(":visible"))\r
+              $root.find(".sample-request-response").fadeTo(1, 0.1);\r
+\r
+          $root.find(".sample-request-response").fadeTo(250, 1);\r
+          $root.find(".sample-request-response-json").html(message);\r
+          refreshScrollSpy();\r
+      };\r
+  }\r
+\r
+  function clearSampleRequest(group, name, version)\r
+  {\r
+      var $root = $('article[data-group="' + group + '"][data-name="' + name + '"][data-version="' + version + '"]');\r
+\r
+      // hide sample response\r
+      $root.find(".sample-request-response-json").html("");\r
+      $root.find(".sample-request-response").hide();\r
+\r
+      // reset value of parameters\r
+      $root.find(".sample-request-param").each(function(i, element) {\r
+          element.value = "";\r
+      });\r
+\r
+      // restore default URL\r
+      var $urlElement = $root.find(".sample-request-url");\r
+      $urlElement.val($urlElement.prop("defaultValue"));\r
+\r
+      refreshScrollSpy();\r
+  }\r
+\r
+  function refreshScrollSpy()\r
+  {\r
+      $('[data-spy="scroll"]').each(function () {\r
+          $(this).scrollspy("refresh");\r
+      });\r
+  }\r
+\r
+  function escapeHtml(str) {\r
+      var div = document.createElement("div");\r
+      div.appendChild(document.createTextNode(str));\r
+      return div.innerHTML;\r
+  }\r
+\r
+  /**\r
+   * Exports.\r
+   */\r
+  return {\r
+      initDynamic: initDynamic\r
+  };\r
+\r
+});\r
diff --git a/apidoc/vendor/bootstrap.min.css b/apidoc/vendor/bootstrap.min.css
new file mode 100644 (file)
index 0000000..ed3905e
--- /dev/null
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
+/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/apidoc/vendor/bootstrap.min.js b/apidoc/vendor/bootstrap.min.js
new file mode 100644 (file)
index 0000000..9bcd2fc
--- /dev/null
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under the MIT license
+ */
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){
+this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/apidoc/vendor/diff_match_patch.min.js b/apidoc/vendor/diff_match_patch.min.js
new file mode 100644 (file)
index 0000000..c41b513
--- /dev/null
@@ -0,0 +1,49 @@
+(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=0.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=0.5;this.Patch_Margin=4;this.Match_MaxBits=32}
+diff_match_patch.prototype.diff_main=function(a,b,c,d){"undefined"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error("Null input. (diff_main)");if(a==b)return a?[[0,a]]:[];"undefined"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);var f=this.diff_commonSuffix(a,b),g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,
+b,e,d);c&&a.unshift([0,c]);g&&a.push([0,g]);this.diff_cleanupMerge(a);return a};
+diff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[1,b]];if(!b)return[[-1,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[1,e.substring(0,g)],[0,f],[1,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=-1),c):1==f.length?[[-1,a],[1,b]]:(e=this.diff_halfMatch_(a,b))?(f=e[0],a=e[1],g=e[2],b=e[3],e=e[4],f=this.diff_main(f,g,c,d),c=this.diff_main(a,b,c,d),f.concat([[0,e]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,
+d):this.diff_bisect_(a,b,d)};
+diff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([0,""]);for(var e=d=b=0,f="",g="";b<a.length;){switch(a[b][0]){case 1:e++;g+=a[b][1];break;case -1:d++;f+=a[b][1];break;case 0:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=d.length}d=e=0;g=f=""}b++}a.pop();return a};
+diff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=f,h=2*f,j=Array(h),i=Array(h),k=0;k<h;k++)j[k]=-1,i[k]=-1;j[g+1]=0;i[g+1]=0;for(var k=d-e,q=0!=k%2,r=0,t=0,p=0,w=0,v=0;v<f&&!((new Date).getTime()>c);v++){for(var n=-v+r;n<=v-t;n+=2){var l=g+n,m;m=n==-v||n!=v&&j[l-1]<j[l+1]?j[l+1]:j[l-1]+1;for(var s=m-n;m<d&&s<e&&a.charAt(m)==b.charAt(s);)m++,s++;j[l]=m;if(m>d)t+=2;else if(s>e)r+=2;else if(q&&(l=g+k-n,0<=l&&l<h&&-1!=i[l])){var u=d-i[l];if(m>=
+u)return this.diff_bisectSplit_(a,b,m,s,c)}}for(n=-v+p;n<=v-w;n+=2){l=g+n;u=n==-v||n!=v&&i[l-1]<i[l+1]?i[l+1]:i[l-1]+1;for(m=u-n;u<d&&m<e&&a.charAt(d-u-1)==b.charAt(e-m-1);)u++,m++;i[l]=u;if(u>d)w+=2;else if(m>e)p+=2;else if(!q&&(l=g+k-n,0<=l&&(l<h&&-1!=j[l])&&(m=j[l],s=g+m-l,u=d-u,m>=u)))return this.diff_bisectSplit_(a,b,m,s,c)}}return[[-1,a],[1,b]]};
+diff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};
+diff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b="",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf("\n",c);-1==f&&(f=a.length-1);var r=a.substring(c,f+1),c=f+1;(e.hasOwnProperty?e.hasOwnProperty(r):void 0!==e[r])?b+=String.fromCharCode(e[r]):(b+=String.fromCharCode(g),e[r]=g,d[g++]=r)}return b}var d=[],e={};d[0]="";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};
+diff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join("")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};
+diff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};
+diff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;for(var d=0,e=1;;){var f=a.substring(c-e),f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};
+diff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g="",h,j,n,l;-1!=(e=b.indexOf(d,e+1));){var m=f.diff_commonPrefix(a.substring(c),b.substring(e)),s=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<s+m&&(g=b.substring(e-s,e)+b.substring(e,e+m),h=a.substring(0,c-s),j=a.substring(c+m),n=b.substring(0,e-s),l=b.substring(e+m))}return 2*g.length>=a.length?[h,j,n,l,g]:null}if(0>=this.Diff_Timeout)return null;
+var d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4)),d=c(d,e,Math.ceil(d.length/2)),h;if(!g&&!d)return null;h=d?g?g[4].length>d[4].length?g:d:d:g;var j;a.length>b.length?(g=h[0],d=h[1],e=h[2],j=h[3]):(e=h[0],j=h[1],g=h[2],d=h[3]);h=h[4];return[g,d,e,j,h]};
+diff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,j=0,i=0;f<a.length;)0==a[f][0]?(c[d++]=f,g=j,h=i,i=j=0,e=a[f][1]):(1==a[f][0]?j+=a[f][1].length:i+=a[f][1].length,e&&(e.length<=Math.max(g,h)&&e.length<=Math.max(j,i))&&(a.splice(c[d-1],0,[-1,e]),a[c[d-1]+1][0]=1,d--,d--,f=0<d?c[d-1]:-1,i=j=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(-1==a[f-1][0]&&1==a[f][0]){b=a[f-1][1];c=a[f][1];
+d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[0,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[0,b.substring(0,e)]),a[f-1][0]=1,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=-1,a[f+1][1]=b.substring(e),f++;f++}f++}};
+diff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_),c=g&&c.match(diff_match_patch.linebreakRegex_),d=h&&d.match(diff_match_patch.linebreakRegex_),i=c&&a.match(diff_match_patch.blanklineEndRegex_),j=d&&b.match(diff_match_patch.blanklineStartRegex_);
+return i||j?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(0==a[c-1][0]&&0==a[c+1][0]){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g)var h=e.substring(e.length-g),d=d.substring(0,d.length-g),e=h+e.substring(0,e.length-g),f=h+f;for(var g=d,h=e,j=f,i=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){var d=d+e.charAt(0),e=e.substring(1)+f.charAt(0),f=f.substring(1),k=b(d,e)+b(e,f);k>=i&&(i=k,g=d,h=e,j=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-1,1),c--),a[c][1]=
+h,j?a[c+1][1]=j:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\s/;diff_match_patch.linebreakRegex_=/[\r\n]/;diff_match_patch.blanklineEndRegex_=/\n\r?\n$/;diff_match_patch.blanklineStartRegex_=/^\r?\n\r?\n/;
+diff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,j=!1,i=!1;f<a.length;){if(0==a[f][0])a[f][1].length<this.Diff_EditCost&&(j||i)?(c[d++]=f,g=j,h=i,e=a[f][1]):(d=0,e=null),j=i=!1;else if(-1==a[f][0]?i=!0:j=!0,e&&(g&&h&&j&&i||e.length<this.Diff_EditCost/2&&3==g+h+j+i))a.splice(c[d-1],0,[-1,e]),a[c[d-1]+1][0]=1,d--,e=null,g&&h?(j=i=!0,d=0):(d--,f=0<d?c[d-1]:-1,j=i=!1),b=!0;f++}b&&this.diff_cleanupMerge(a)};
+diff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([0,""]);for(var b=0,c=0,d=0,e="",f="",g;b<a.length;)switch(a[b][0]){case 1:d++;f+=a[b][1];b++;break;case -1:c++;e+=a[b][1];b++;break;case 0:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&0==a[b-c-d-1][0]?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[0,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-g)+a[b][1],f=f.substring(0,f.length-
+g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[1,f]):0===d?a.splice(b-c,c+d,[-1,e]):a.splice(b-c-d,c+d,[-1,e],[1,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&0==a[b-1][0]?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=""}""===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)0==a[b-1][0]&&0==a[b+1][0]&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,a[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,
+a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};diff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){1!==a[g][0]&&(c+=a[g][1].length);-1!==a[g][0]&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&-1===a[g][0]?f:f+(b-e)};
+diff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\n/g,g=0;g<a.length;g++){var h=a[g][0],j=a[g][1],j=j.replace(c,"&amp;").replace(d,"&lt;").replace(e,"&gt;").replace(f,"&para;<br>");switch(h){case 1:b[g]='<ins style="background:#e6ffe6;">'+j+"</ins>";break;case -1:b[g]='<del style="background:#ffe6e6;">'+j+"</del>";break;case 0:b[g]="<span>"+j+"</span>"}}return b.join("")};
+diff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)1!==a[c][0]&&(b[c]=a[c][1]);return b.join("")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)-1!==a[c][0]&&(b[c]=a[c][1]);return b.join("")};diff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][0],g=a[e][1];switch(f){case 1:c+=g.length;break;case -1:d+=g.length;break;case 0:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};
+diff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case 1:b[c]="+"+encodeURI(a[c][1]);break;case -1:b[c]="-"+a[c][1].length;break;case 0:b[c]="="+a[c][1].length}return b.join("\t").replace(/%20/g," ")};
+diff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case "+":try{c[d++]=[1,decodeURI(h)]}catch(j){throw Error("Illegal escape in diff_fromDelta: "+h);}break;case "-":case "=":var i=parseInt(h,10);if(isNaN(i)||0>i)throw Error("Invalid number in diff_fromDelta: "+h);h=a.substring(e,e+=i);"="==f[g].charAt(0)?c[d++]=[0,h]:c[d++]=[-1,h];break;default:if(f[g])throw Error("Invalid diff operation in diff_fromDelta: "+
+f[g]);}}if(e!=a.length)throw Error("Delta length ("+e+") does not equal source text length ("+a.length+").");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error("Null input. (match_main)");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};
+diff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return!f.Match_Distance?g?1:e:e+g/f.Match_Distance}if(b.length>this.Match_MaxBits)throw Error("Pattern too long for this browser.");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));for(var j=1<<b.length-1,h=-1,i,k,q=b.length+a.length,r,t=0;t<b.length;t++){i=0;for(k=q;i<k;)d(t,c+
+k)<=g?i=k:q=k,k=Math.floor((q-i)/2+i);q=k;i=Math.max(1,c-k+1);var p=Math.min(c+k,a.length)+b.length;k=Array(p+2);for(k[p+1]=(1<<t)-1;p>=i;p--){var w=e[a.charAt(p-1)];k[p]=0===t?(k[p+1]<<1|1)&w:(k[p+1]<<1|1)&w|((r[p+1]|r[p])<<1|1)|r[p+1];if(k[p]&j&&(w=d(t,p-1),w<=g))if(g=w,h=p-1,h>c)i=Math.max(1,2*c-h);else break}if(d(t+1,c)>g)break;r=k}return h};
+diff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};
+diff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([0,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([0,d]);a.start1-=c.length;a.start2-=c.length;a.length1+=
+c.length+d.length;a.length2+=c.length+d.length}};
+diff_match_patch.prototype.patch_make=function(a,b,c){var d;if("string"==typeof a&&"string"==typeof b&&"undefined"==typeof c)d=a,b=this.diff_main(d,b,!0),2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b));else if(a&&"object"==typeof a&&"undefined"==typeof b&&"undefined"==typeof c)b=a,d=this.diff_text1(b);else if("string"==typeof a&&b&&"object"==typeof b&&"undefined"==typeof c)d=a;else if("string"==typeof a&&"string"==typeof b&&c&&"object"==typeof c)d=a,b=c;else throw Error("Unknown call format to patch_make.");
+if(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,j=0;j<b.length;j++){var i=b[j][0],k=b[j][1];!e&&0!==i&&(a.start1=f,a.start2=g);switch(i){case 1:a.diffs[e++]=b[j];a.length2+=k.length;d=d.substring(0,g)+k+d.substring(g);break;case -1:a.length1+=k.length;a.diffs[e++]=b[j];d=d.substring(0,g)+d.substring(g+k.length);break;case 0:k.length<=2*this.Patch_Margin&&e&&b.length!=j+1?(a.diffs[e++]=b[j],a.length1+=k.length,a.length2+=k.length):k.length>=2*this.Patch_Margin&&
+e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}1!==i&&(f+=k.length);-1!==i&&(g+=k.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};diff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};
+diff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),j,i=-1;if(h.length>this.Match_MaxBits){if(j=this.match_main(b,h.substring(0,this.Match_MaxBits),g),-1!=j&&(i=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==i||j>=i))j=-1}else j=this.match_main(b,h,g);
+if(-1==j)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=j-g,g=-1==i?b.substring(j,j+h.length):b.substring(j,i+this.Match_MaxBits),h==g)b=b.substring(0,j)+this.diff_text2(a[f].diffs)+b.substring(j+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);for(var h=0,k,i=0;i<a[f].diffs.length;i++){var q=a[f].diffs[i];0!==q[0]&&(k=this.diff_xIndex(g,h));1===q[0]?b=b.substring(0,
+j+k)+q[1]+b.substring(j+k):-1===q[0]&&(b=b.substring(0,j+k)+b.substring(j+this.diff_xIndex(g,h+q[1].length)));-1!==q[0]&&(h+=q[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};
+diff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c="",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;var d=a[0],e=d.diffs;if(0==e.length||0!=e[0][0])e.unshift([0,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||0!=e[e.length-1][0]?(e.push([0,
+c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};
+diff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g="";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,j=!0;h.start1=e-g.length;h.start2=f-g.length;""!==g&&(h.length1=h.length2=g.length,h.diffs.push([0,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){var g=d.diffs[0][0],i=d.diffs[0][1];1===g?(h.length2+=i.length,f+=i.length,h.diffs.push(d.diffs.shift()),
+j=!1):-1===g&&1==h.diffs.length&&0==h.diffs[0][0]&&i.length>2*b?(h.length1+=i.length,e+=i.length,j=!1,h.diffs.push([g,i]),d.diffs.shift()):(i=i.substring(0,b-h.length1-this.Patch_Margin),h.length1+=i.length,e+=i.length,0===g?(h.length2+=i.length,f+=i.length):j=!1,h.diffs.push([g,i]),i==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(i.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);i=this.diff_text1(d.diffs).substring(0,this.Patch_Margin);""!==i&&
+(h.length1+=i.length,h.length2+=i.length,0!==h.diffs.length&&0===h.diffs[h.diffs.length-1][0]?h.diffs[h.diffs.length-1][1]+=i:h.diffs.push([0,i]));j||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join("")};
+diff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split("\n");for(var c=0,d=/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error("Invalid patch string: "+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);""===e[2]?(f.start1--,f.length1=1):"0"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);""===e[4]?(f.start2--,f.length2=1):"0"==e[4]?f.length2=0:(f.start2--,f.length2=
+parseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error("Illegal escape in patch_fromText: "+g);}if("-"==e)f.diffs.push([-1,g]);else if("+"==e)f.diffs.push([1,g]);else if(" "==e)f.diffs.push([0,g]);else if("@"==e)break;else if(""!==e)throw Error('Invalid patch mode "'+e+'" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};
+diff_match_patch.patch_obj.prototype.toString=function(){var a,b;a=0===this.length1?this.start1+",0":1==this.length1?this.start1+1:this.start1+1+","+this.length1;b=0===this.length2?this.start2+",0":1==this.length2?this.start2+1:this.start2+1+","+this.length2;a=["@@ -"+a+" +"+b+" @@\n"];var c;for(b=0;b<this.diffs.length;b++){switch(this.diffs[b][0]){case 1:c="+";break;case -1:c="-";break;case 0:c=" "}a[b+1]=c+encodeURI(this.diffs[b][1])+"\n"}return a.join("").replace(/%20/g," ")};
+this.diff_match_patch=diff_match_patch;this.DIFF_DELETE=-1;this.DIFF_INSERT=1;this.DIFF_EQUAL=0;})()
diff --git a/apidoc/vendor/handlebars.min.js b/apidoc/vendor/handlebars.min.js
new file mode 100644 (file)
index 0000000..4e2aa8f
--- /dev/null
@@ -0,0 +1,29 @@
+/*!
+
+ handlebars v4.0.5
+
+Copyright (C) 2011-2015 by Yehuda Katz
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+@license
+*/
+!function(a,b){"object"==typeof exports&&"object"==typeof module?module.exports=b():"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?exports.Handlebars=b():a.Handlebars=b()}(this,function(){return function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={exports:{},id:d,loaded:!1};return a[d].call(e.exports,e,e.exports,b),e.loaded=!0,e.exports}var c={};return b.m=a,b.c=c,b.p="",b(0)}([function(a,b,c){"use strict";function d(){var a=r();return a.compile=function(b,c){return k.compile(b,c,a)},a.precompile=function(b,c){return k.precompile(b,c,a)},a.AST=i["default"],a.Compiler=k.Compiler,a.JavaScriptCompiler=m["default"],a.Parser=j.parser,a.parse=j.parse,a}var e=c(1)["default"];b.__esModule=!0;var f=c(2),g=e(f),h=c(21),i=e(h),j=c(22),k=c(27),l=c(28),m=e(l),n=c(25),o=e(n),p=c(20),q=e(p),r=g["default"].create,s=d();s.create=d,q["default"](s),s.Visitor=o["default"],s["default"]=s,b["default"]=s,a.exports=b["default"]},function(a,b){"use strict";b["default"]=function(a){return a&&a.__esModule?a:{"default":a}},b.__esModule=!0},function(a,b,c){"use strict";function d(){var a=new h.HandlebarsEnvironment;return n.extend(a,h),a.SafeString=j["default"],a.Exception=l["default"],a.Utils=n,a.escapeExpression=n.escapeExpression,a.VM=p,a.template=function(b){return p.template(b,a)},a}var e=c(3)["default"],f=c(1)["default"];b.__esModule=!0;var g=c(4),h=e(g),i=c(18),j=f(i),k=c(6),l=f(k),m=c(5),n=e(m),o=c(19),p=e(o),q=c(20),r=f(q),s=d();s.create=d,r["default"](s),s["default"]=s,b["default"]=s,a.exports=b["default"]},function(a,b){"use strict";b["default"]=function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b},b.__esModule=!0},function(a,b,c){"use strict";function d(a,b,c){this.helpers=a||{},this.partials=b||{},this.decorators=c||{},i.registerDefaultHelpers(this),j.registerDefaultDecorators(this)}var e=c(1)["default"];b.__esModule=!0,b.HandlebarsEnvironment=d;var f=c(5),g=c(6),h=e(g),i=c(7),j=c(15),k=c(17),l=e(k),m="4.0.5";b.VERSION=m;var n=7;b.COMPILER_REVISION=n;var o={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1",7:">= 4.0.0"};b.REVISION_CHANGES=o;var p="[object Object]";d.prototype={constructor:d,logger:l["default"],log:l["default"].log,registerHelper:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple helpers");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){if(f.toString.call(a)===p)f.extend(this.partials,a);else{if("undefined"==typeof b)throw new h["default"]('Attempting to register a partial called "'+a+'" as undefined');this.partials[a]=b}},unregisterPartial:function(a){delete this.partials[a]},registerDecorator:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple decorators");f.extend(this.decorators,a)}else this.decorators[a]=b},unregisterDecorator:function(a){delete this.decorators[a]}};var q=l["default"].log;b.log=q,b.createFrame=f.createFrame,b.logger=l["default"]},function(a,b){"use strict";function c(a){return k[a]}function d(a){for(var b=1;b<arguments.length;b++)for(var c in arguments[b])Object.prototype.hasOwnProperty.call(arguments[b],c)&&(a[c]=arguments[b][c]);return a}function e(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1}function f(a){if("string"!=typeof a){if(a&&a.toHTML)return a.toHTML();if(null==a)return"";if(!a)return a+"";a=""+a}return m.test(a)?a.replace(l,c):a}function g(a){return a||0===a?p(a)&&0===a.length?!0:!1:!0}function h(a){var b=d({},a);return b._parent=a,b}function i(a,b){return a.path=b,a}function j(a,b){return(a?a+".":"")+b}b.__esModule=!0,b.extend=d,b.indexOf=e,b.escapeExpression=f,b.isEmpty=g,b.createFrame=h,b.blockParams=i,b.appendContextPath=j;var k={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;","=":"&#x3D;"},l=/[&<>"'`=]/g,m=/[&<>"'`=]/,n=Object.prototype.toString;b.toString=n;var o=function(a){return"function"==typeof a};o(/x/)&&(b.isFunction=o=function(a){return"function"==typeof a&&"[object Function]"===n.call(a)}),b.isFunction=o;var p=Array.isArray||function(a){return a&&"object"==typeof a?"[object Array]"===n.call(a):!1};b.isArray=p},function(a,b){"use strict";function c(a,b){var e=b&&b.loc,f=void 0,g=void 0;e&&(f=e.start.line,g=e.start.column,a+=" - "+f+":"+g);for(var h=Error.prototype.constructor.call(this,a),i=0;i<d.length;i++)this[d[i]]=h[d[i]];Error.captureStackTrace&&Error.captureStackTrace(this,c),e&&(this.lineNumber=f,this.column=g)}b.__esModule=!0;var d=["description","fileName","lineNumber","message","name","number","stack"];c.prototype=new Error,b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(a){g["default"](a),i["default"](a),k["default"](a),m["default"](a),o["default"](a),q["default"](a),s["default"](a)}var e=c(1)["default"];b.__esModule=!0,b.registerDefaultHelpers=d;var f=c(8),g=e(f),h=c(9),i=e(h),j=c(10),k=e(j),l=c(11),m=e(l),n=c(12),o=e(n),p=c(13),q=e(p),r=c(14),s=e(r)},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerHelper("blockHelperMissing",function(b,c){var e=c.inverse,f=c.fn;if(b===!0)return f(this);if(b===!1||null==b)return e(this);if(d.isArray(b))return b.length>0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):e(this);if(c.data&&c.ids){var g=d.createFrame(c.data);g.contextPath=d.appendContextPath(c.data.contextPath,c.name),c={data:g}}return f(b,c)})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(1)["default"];b.__esModule=!0;var e=c(5),f=c(6),g=d(f);b["default"]=function(a){a.registerHelper("each",function(a,b){function c(b,c,f){j&&(j.key=b,j.index=c,j.first=0===c,j.last=!!f,k&&(j.contextPath=k+b)),i+=d(a[b],{data:j,blockParams:e.blockParams([a[b],b],[k+b,null])})}if(!b)throw new g["default"]("Must pass iterator to #each");var d=b.fn,f=b.inverse,h=0,i="",j=void 0,k=void 0;if(b.data&&b.ids&&(k=e.appendContextPath(b.data.contextPath,b.ids[0])+"."),e.isFunction(a)&&(a=a.call(this)),b.data&&(j=e.createFrame(b.data)),a&&"object"==typeof a)if(e.isArray(a))for(var l=a.length;l>h;h++)h in a&&c(h,h,h===a.length-1);else{var m=void 0;for(var n in a)a.hasOwnProperty(n)&&(void 0!==m&&c(m,h-1),m=n,h++);void 0!==m&&c(m,h-1,!0)}return 0===h&&(i=f(this)),i})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(1)["default"];b.__esModule=!0;var e=c(6),f=d(e);b["default"]=function(a){a.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new f["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerHelper("if",function(a,b){return d.isFunction(a)&&(a=a.call(this)),!b.hash.includeZero&&!a||d.isEmpty(a)?b.inverse(this):b.fn(this)}),a.registerHelper("unless",function(b,c){return a.helpers["if"].call(this,b,{fn:c.inverse,inverse:c.fn,hash:c.hash})})},a.exports=b["default"]},function(a,b){"use strict";b.__esModule=!0,b["default"]=function(a){a.registerHelper("log",function(){for(var b=[void 0],c=arguments[arguments.length-1],d=0;d<arguments.length-1;d++)b.push(arguments[d]);var e=1;null!=c.hash.level?e=c.hash.level:c.data&&null!=c.data.level&&(e=c.data.level),b[0]=e,a.log.apply(a,b)})},a.exports=b["default"]},function(a,b){"use strict";b.__esModule=!0,b["default"]=function(a){a.registerHelper("lookup",function(a,b){return a&&a[b]})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerHelper("with",function(a,b){d.isFunction(a)&&(a=a.call(this));var c=b.fn;if(d.isEmpty(a))return b.inverse(this);var e=b.data;return b.data&&b.ids&&(e=d.createFrame(b.data),e.contextPath=d.appendContextPath(b.data.contextPath,b.ids[0])),c(a,{data:e,blockParams:d.blockParams([a],[e&&e.contextPath])})})},a.exports=b["default"]},function(a,b,c){"use strict";function d(a){g["default"](a)}var e=c(1)["default"];b.__esModule=!0,b.registerDefaultDecorators=d;var f=c(16),g=e(f)},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5);b["default"]=function(a){a.registerDecorator("inline",function(a,b,c,e){var f=a;return b.partials||(b.partials={},f=function(e,f){var g=c.partials;c.partials=d.extend({},g,b.partials);var h=a(e,f);return c.partials=g,h}),b.partials[e.args[0]]=e.fn,f})},a.exports=b["default"]},function(a,b,c){"use strict";b.__esModule=!0;var d=c(5),e={methodMap:["debug","info","warn","error"],level:"info",lookupLevel:function(a){if("string"==typeof a){var b=d.indexOf(e.methodMap,a.toLowerCase());a=b>=0?b:parseInt(a,10)}return a},log:function(a){if(a=e.lookupLevel(a),"undefined"!=typeof console&&e.lookupLevel(e.level)<=a){var b=e.methodMap[a];console[b]||(b="log");for(var c=arguments.length,d=Array(c>1?c-1:0),f=1;c>f;f++)d[f-1]=arguments[f];console[b].apply(console,d)}}};b["default"]=e,a.exports=b["default"]},function(a,b){"use strict";function c(a){this.string=a}b.__esModule=!0,c.prototype.toString=c.prototype.toHTML=function(){return""+this.string},b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(a){var b=a&&a[0]||1,c=r.COMPILER_REVISION;if(b!==c){if(c>b){var d=r.REVISION_CHANGES[c],e=r.REVISION_CHANGES[b];throw new q["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+d+") or downgrade your runtime to an older version ("+e+").")}throw new q["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+a[1]+").")}}function e(a,b){function c(c,d,e){e.hash&&(d=o.extend({},d,e.hash),e.ids&&(e.ids[0]=!0)),c=b.VM.resolvePartial.call(this,c,d,e);var f=b.VM.invokePartial.call(this,c,d,e);if(null==f&&b.compile&&(e.partials[e.name]=b.compile(c,a.compilerOptions,b),f=e.partials[e.name](d,e)),null!=f){if(e.indent){for(var g=f.split("\n"),h=0,i=g.length;i>h&&(g[h]||h+1!==i);h++)g[h]=e.indent+g[h];f=g.join("\n")}return f}throw new q["default"]("The partial "+e.name+" could not be compiled when running in runtime-only mode")}function d(b){function c(b){return""+a.main(e,b,e.helpers,e.partials,g,i,h)}var f=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],g=f.data;d._setup(f),!f.partial&&a.useData&&(g=j(b,g));var h=void 0,i=a.useBlockParams?[]:void 0;return a.useDepths&&(h=f.depths?b!==f.depths[0]?[b].concat(f.depths):f.depths:[b]),(c=k(a.main,c,e,f.depths||[],g,i))(b,f)}if(!b)throw new q["default"]("No environment passed to template");if(!a||!a.main)throw new q["default"]("Unknown template object: "+typeof a);a.main.decorator=a.main_d,b.VM.checkRevision(a.compiler);var e={strict:function(a,b){if(!(b in a))throw new q["default"]('"'+b+'" not defined in '+a);return a[b]},lookup:function(a,b){for(var c=a.length,d=0;c>d;d++)if(a[d]&&null!=a[d][b])return a[d][b]},lambda:function(a,b){return"function"==typeof a?a.call(b):a},escapeExpression:o.escapeExpression,invokePartial:c,fn:function(b){var c=a[b];return c.decorator=a[b+"_d"],c},programs:[],program:function(a,b,c,d,e){var g=this.programs[a],h=this.fn(a);return b||e||d||c?g=f(this,a,h,b,c,d,e):g||(g=this.programs[a]=f(this,a,h)),g},data:function(a,b){for(;a&&b--;)a=a._parent;return a},merge:function(a,b){var c=a||b;return a&&b&&a!==b&&(c=o.extend({},b,a)),c},noop:b.VM.noop,compilerInfo:a.compiler};return d.isTop=!0,d._setup=function(c){c.partial?(e.helpers=c.helpers,e.partials=c.partials,e.decorators=c.decorators):(e.helpers=e.merge(c.helpers,b.helpers),a.usePartial&&(e.partials=e.merge(c.partials,b.partials)),(a.usePartial||a.useDecorators)&&(e.decorators=e.merge(c.decorators,b.decorators)))},d._child=function(b,c,d,g){if(a.useBlockParams&&!d)throw new q["default"]("must pass block params");if(a.useDepths&&!g)throw new q["default"]("must pass parent depths");return f(e,b,a[b],c,0,d,g)},d}function f(a,b,c,d,e,f,g){function h(b){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],h=g;return g&&b!==g[0]&&(h=[b].concat(g)),c(a,b,a.helpers,a.partials,e.data||d,f&&[e.blockParams].concat(f),h)}return h=k(c,h,a,g,d,f),h.program=b,h.depth=g?g.length:0,h.blockParams=e||0,h}function g(a,b,c){return a?a.call||c.name||(c.name=a,a=c.partials[a]):a="@partial-block"===c.name?c.data["partial-block"]:c.partials[c.name],a}function h(a,b,c){c.partial=!0,c.ids&&(c.data.contextPath=c.ids[0]||c.data.contextPath);var d=void 0;if(c.fn&&c.fn!==i&&(c.data=r.createFrame(c.data),d=c.data["partial-block"]=c.fn,d.partials&&(c.partials=o.extend({},c.partials,d.partials))),void 0===a&&d&&(a=d),void 0===a)throw new q["default"]("The partial "+c.name+" could not be found");return a instanceof Function?a(b,c):void 0}function i(){return""}function j(a,b){return b&&"root"in b||(b=b?r.createFrame(b):{},b.root=a),b}function k(a,b,c,d,e,f){if(a.decorator){var g={};b=a.decorator(b,g,c,d&&d[0],e,f,d),o.extend(b,g)}return b}var l=c(3)["default"],m=c(1)["default"];b.__esModule=!0,b.checkRevision=d,b.template=e,b.wrapProgram=f,b.resolvePartial=g,b.invokePartial=h,b.noop=i;var n=c(5),o=l(n),p=c(6),q=m(p),r=c(4)},function(a,b){(function(c){"use strict";b.__esModule=!0,b["default"]=function(a){var b="undefined"!=typeof c?c:window,d=b.Handlebars;a.noConflict=function(){return b.Handlebars===a&&(b.Handlebars=d),a}},a.exports=b["default"]}).call(b,function(){return this}())},function(a,b){"use strict";b.__esModule=!0;var c={helpers:{helperExpression:function(a){return"SubExpression"===a.type||("MustacheStatement"===a.type||"BlockStatement"===a.type)&&!!(a.params&&a.params.length||a.hash)},scopedId:function(a){return/^\.|this\b/.test(a.original)},simpleId:function(a){return 1===a.parts.length&&!c.helpers.scopedId(a)&&!a.depth}}};b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b){if("Program"===a.type)return a;h["default"].yy=n,n.locInfo=function(a){return new n.SourceLocation(b&&b.srcName,a)};var c=new j["default"](b);return c.accept(h["default"].parse(a))}var e=c(1)["default"],f=c(3)["default"];b.__esModule=!0,b.parse=d;var g=c(23),h=e(g),i=c(24),j=e(i),k=c(26),l=f(k),m=c(5);b.parser=h["default"];var n={};m.extend(n,l)},function(a,b){"use strict";var c=function(){function a(){this.yy={}}var b={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,partialBlock:12,content:13,COMMENT:14,CONTENT:15,openRawBlock:16,rawBlock_repetition_plus0:17,END_RAW_BLOCK:18,OPEN_RAW_BLOCK:19,helperName:20,openRawBlock_repetition0:21,openRawBlock_option0:22,CLOSE_RAW_BLOCK:23,openBlock:24,block_option0:25,closeBlock:26,openInverse:27,block_option1:28,OPEN_BLOCK:29,openBlock_repetition0:30,openBlock_option0:31,openBlock_option1:32,CLOSE:33,OPEN_INVERSE:34,openInverse_repetition0:35,openInverse_option0:36,openInverse_option1:37,openInverseChain:38,OPEN_INVERSE_CHAIN:39,openInverseChain_repetition0:40,openInverseChain_option0:41,openInverseChain_option1:42,inverseAndProgram:43,INVERSE:44,inverseChain:45,inverseChain_option0:46,OPEN_ENDBLOCK:47,OPEN:48,mustache_repetition0:49,mustache_option0:50,OPEN_UNESCAPED:51,mustache_repetition1:52,mustache_option1:53,CLOSE_UNESCAPED:54,OPEN_PARTIAL:55,partialName:56,partial_repetition0:57,partial_option0:58,openPartialBlock:59,OPEN_PARTIAL_BLOCK:60,openPartialBlock_repetition0:61,openPartialBlock_option0:62,param:63,sexpr:64,OPEN_SEXPR:65,sexpr_repetition0:66,sexpr_option0:67,CLOSE_SEXPR:68,hash:69,hash_repetition_plus0:70,hashSegment:71,ID:72,EQUALS:73,blockParams:74,OPEN_BLOCK_PARAMS:75,blockParams_repetition_plus0:76,CLOSE_BLOCK_PARAMS:77,path:78,dataName:79,STRING:80,NUMBER:81,BOOLEAN:82,UNDEFINED:83,NULL:84,DATA:85,pathSegments:86,SEP:87,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",14:"COMMENT",15:"CONTENT",18:"END_RAW_BLOCK",19:"OPEN_RAW_BLOCK",23:"CLOSE_RAW_BLOCK",29:"OPEN_BLOCK",33:"CLOSE",34:"OPEN_INVERSE",39:"OPEN_INVERSE_CHAIN",44:"INVERSE",47:"OPEN_ENDBLOCK",48:"OPEN",51:"OPEN_UNESCAPED",54:"CLOSE_UNESCAPED",55:"OPEN_PARTIAL",60:"OPEN_PARTIAL_BLOCK",65:"OPEN_SEXPR",68:"CLOSE_SEXPR",72:"ID",73:"EQUALS",75:"OPEN_BLOCK_PARAMS",77:"CLOSE_BLOCK_PARAMS",80:"STRING",81:"NUMBER",82:"BOOLEAN",83:"UNDEFINED",84:"NULL",85:"DATA",87:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[13,1],[10,3],[16,5],[9,4],[9,4],[24,6],[27,6],[38,6],[43,2],[45,3],[45,1],[26,3],[8,5],[8,5],[11,5],[12,3],[59,5],[63,1],[63,1],[64,5],[69,1],[71,3],[74,3],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[20,1],[56,1],[56,1],[79,2],[78,1],[86,3],[86,1],[6,0],[6,2],[17,1],[17,2],[21,0],[21,2],[22,0],[22,1],[25,0],[25,1],[28,0],[28,1],[30,0],[30,2],[31,0],[31,1],[32,0],[32,1],[35,0],[35,2],[36,0],[36,1],[37,0],[37,1],[40,0],[40,2],[41,0],[41,1],[42,0],[42,1],[46,0],[46,1],[49,0],[49,2],[50,0],[50,1],[52,0],[52,2],[53,0],[53,1],[57,0],[57,2],[58,0],[58,1],[61,0],[61,2],[62,0],[62,1],[66,0],[66,2],[67,0],[67,1],[70,1],[70,2],[76,1],[76,2]],performAction:function(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return f[h-1];case 2:this.$=d.prepareProgram(f[h]);break;case 3:this.$=f[h];break;case 4:this.$=f[h];break;case 5:this.$=f[h];break;case 6:this.$=f[h];break;case 7:this.$=f[h];break;case 8:this.$=f[h];break;case 9:this.$={type:"CommentStatement",value:d.stripComment(f[h]),strip:d.stripFlags(f[h],f[h]),loc:d.locInfo(this._$)};break;case 10:this.$={type:"ContentStatement",original:f[h],value:f[h],loc:d.locInfo(this._$)};break;case 11:this.$=d.prepareRawBlock(f[h-2],f[h-1],f[h],this._$);break;case 12:this.$={path:f[h-3],params:f[h-2],hash:f[h-1]};break;case 13:this.$=d.prepareBlock(f[h-3],f[h-2],f[h-1],f[h],!1,this._$);break;case 14:this.$=d.prepareBlock(f[h-3],f[h-2],f[h-1],f[h],!0,this._$);break;case 15:this.$={open:f[h-5],path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 16:this.$={path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 17:this.$={path:f[h-4],params:f[h-3],hash:f[h-2],blockParams:f[h-1],strip:d.stripFlags(f[h-5],f[h])};break;case 18:this.$={strip:d.stripFlags(f[h-1],f[h-1]),program:f[h]};break;case 19:var i=d.prepareBlock(f[h-2],f[h-1],f[h],f[h],!1,this._$),j=d.prepareProgram([i],f[h-1].loc);j.chained=!0,this.$={strip:f[h-2].strip,program:j,chain:!0};break;case 20:this.$=f[h];break;case 21:this.$={path:f[h-1],strip:d.stripFlags(f[h-2],f[h])};break;case 22:this.$=d.prepareMustache(f[h-3],f[h-2],f[h-1],f[h-4],d.stripFlags(f[h-4],f[h]),this._$);break;case 23:this.$=d.prepareMustache(f[h-3],f[h-2],f[h-1],f[h-4],d.stripFlags(f[h-4],f[h]),this._$);break;case 24:this.$={type:"PartialStatement",name:f[h-3],params:f[h-2],hash:f[h-1],indent:"",strip:d.stripFlags(f[h-4],f[h]),loc:d.locInfo(this._$)};break;case 25:this.$=d.preparePartialBlock(f[h-2],f[h-1],f[h],this._$);break;case 26:this.$={path:f[h-3],params:f[h-2],hash:f[h-1],strip:d.stripFlags(f[h-4],f[h])};break;case 27:this.$=f[h];break;case 28:this.$=f[h];break;case 29:this.$={type:"SubExpression",path:f[h-3],params:f[h-2],hash:f[h-1],loc:d.locInfo(this._$)};break;case 30:this.$={type:"Hash",pairs:f[h],loc:d.locInfo(this._$)};break;case 31:this.$={type:"HashPair",key:d.id(f[h-2]),value:f[h],loc:d.locInfo(this._$)};break;case 32:this.$=d.id(f[h-1]);break;case 33:this.$=f[h];break;case 34:this.$=f[h];break;case 35:this.$={type:"StringLiteral",value:f[h],original:f[h],loc:d.locInfo(this._$)};break;case 36:this.$={type:"NumberLiteral",value:Number(f[h]),original:Number(f[h]),loc:d.locInfo(this._$)};break;case 37:this.$={type:"BooleanLiteral",value:"true"===f[h],original:"true"===f[h],loc:d.locInfo(this._$)};break;case 38:this.$={type:"UndefinedLiteral",original:void 0,value:void 0,loc:d.locInfo(this._$)};break;case 39:this.$={type:"NullLiteral",original:null,value:null,loc:d.locInfo(this._$)};break;case 40:this.$=f[h];break;case 41:this.$=f[h];break;case 42:this.$=d.preparePath(!0,f[h],this._$);break;case 43:this.$=d.preparePath(!1,f[h],this._$);break;case 44:f[h-2].push({part:d.id(f[h]),original:f[h],separator:f[h-1]}),this.$=f[h-2];break;case 45:this.$=[{part:d.id(f[h]),original:f[h]}];break;case 46:this.$=[];break;case 47:f[h-1].push(f[h]);break;case 48:this.$=[f[h]];break;case 49:f[h-1].push(f[h]);break;case 50:this.$=[];break;case 51:f[h-1].push(f[h]);break;case 58:this.$=[];break;case 59:f[h-1].push(f[h]);break;case 64:this.$=[];break;case 65:f[h-1].push(f[h]);break;case 70:this.$=[];break;case 71:f[h-1].push(f[h]);break;case 78:this.$=[];break;case 79:f[h-1].push(f[h]);break;case 82:this.$=[];break;case 83:f[h-1].push(f[h]);break;case 86:this.$=[];break;case 87:f[h-1].push(f[h]);break;case 90:this.$=[];break;case 91:f[h-1].push(f[h]);break;case 94:this.$=[];break;case 95:f[h-1].push(f[h]);break;case 98:this.$=[f[h]];break;case 99:f[h-1].push(f[h]);break;case 100:this.$=[f[h]];break;case 101:f[h-1].push(f[h])}},table:[{3:1,4:2,5:[2,46],6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:11,14:[1,12],15:[1,20],16:17,19:[1,23],24:15,27:16,29:[1,21],34:[1,22],39:[2,2],44:[2,2],47:[2,2],48:[1,13],51:[1,14],55:[1,18],59:19,60:[1,24]},{1:[2,1]},{5:[2,47],14:[2,47],15:[2,47],19:[2,47],29:[2,47],34:[2,47],39:[2,47],44:[2,47],47:[2,47],48:[2,47],51:[2,47],55:[2,47],60:[2,47]},{5:[2,3],14:[2,3],15:[2,3],19:[2,3],29:[2,3],34:[2,3],39:[2,3],44:[2,3],47:[2,3],48:[2,3],51:[2,3],55:[2,3],60:[2,3]},{5:[2,4],14:[2,4],15:[2,4],19:[2,4],29:[2,4],34:[2,4],39:[2,4],44:[2,4],47:[2,4],48:[2,4],51:[2,4],55:[2,4],60:[2,4]},{5:[2,5],14:[2,5],15:[2,5],19:[2,5],29:[2,5],34:[2,5],39:[2,5],44:[2,5],47:[2,5],48:[2,5],51:[2,5],55:[2,5],60:[2,5]},{5:[2,6],14:[2,6],15:[2,6],19:[2,6],29:[2,6],34:[2,6],39:[2,6],44:[2,6],47:[2,6],48:[2,6],51:[2,6],55:[2,6],60:[2,6]},{5:[2,7],14:[2,7],15:[2,7],19:[2,7],29:[2,7],34:[2,7],39:[2,7],44:[2,7],47:[2,7],48:[2,7],51:[2,7],55:[2,7],60:[2,7]},{5:[2,8],14:[2,8],15:[2,8],19:[2,8],29:[2,8],34:[2,8],39:[2,8],44:[2,8],47:[2,8],48:[2,8],51:[2,8],55:[2,8],60:[2,8]},{5:[2,9],14:[2,9],15:[2,9],19:[2,9],29:[2,9],34:[2,9],39:[2,9],44:[2,9],47:[2,9],48:[2,9],51:[2,9],55:[2,9],60:[2,9]},{20:25,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:36,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:37,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{4:38,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{13:40,15:[1,20],17:39},{20:42,56:41,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:45,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{5:[2,10],14:[2,10],15:[2,10],18:[2,10],19:[2,10],29:[2,10],34:[2,10],39:[2,10],44:[2,10],47:[2,10],48:[2,10],51:[2,10],55:[2,10],60:[2,10]},{20:46,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:47,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:48,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:42,56:49,64:43,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[2,78],49:50,65:[2,78],72:[2,78],80:[2,78],81:[2,78],82:[2,78],83:[2,78],84:[2,78],85:[2,78]},{23:[2,33],33:[2,33],54:[2,33],65:[2,33],68:[2,33],72:[2,33],75:[2,33],80:[2,33],81:[2,33],82:[2,33],83:[2,33],84:[2,33],85:[2,33]},{23:[2,34],33:[2,34],54:[2,34],65:[2,34],68:[2,34],72:[2,34],75:[2,34],80:[2,34],81:[2,34],82:[2,34],83:[2,34],84:[2,34],85:[2,34]},{23:[2,35],33:[2,35],54:[2,35],65:[2,35],68:[2,35],72:[2,35],75:[2,35],80:[2,35],81:[2,35],82:[2,35],83:[2,35],84:[2,35],85:[2,35]},{23:[2,36],33:[2,36],54:[2,36],65:[2,36],68:[2,36],72:[2,36],75:[2,36],80:[2,36],81:[2,36],82:[2,36],83:[2,36],84:[2,36],85:[2,36]},{23:[2,37],33:[2,37],54:[2,37],65:[2,37],68:[2,37],72:[2,37],75:[2,37],80:[2,37],81:[2,37],82:[2,37],83:[2,37],84:[2,37],85:[2,37]},{23:[2,38],33:[2,38],54:[2,38],65:[2,38],68:[2,38],72:[2,38],75:[2,38],80:[2,38],81:[2,38],82:[2,38],83:[2,38],84:[2,38],85:[2,38]},{23:[2,39],33:[2,39],54:[2,39],65:[2,39],68:[2,39],72:[2,39],75:[2,39],80:[2,39],81:[2,39],82:[2,39],83:[2,39],84:[2,39],85:[2,39]},{23:[2,43],33:[2,43],54:[2,43],65:[2,43],68:[2,43],72:[2,43],75:[2,43],80:[2,43],81:[2,43],82:[2,43],83:[2,43],84:[2,43],85:[2,43],87:[1,51]},{72:[1,35],86:52},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{52:53,54:[2,82],65:[2,82],72:[2,82],80:[2,82],81:[2,82],82:[2,82],83:[2,82],84:[2,82],85:[2,82]},{25:54,38:56,39:[1,58],43:57,44:[1,59],45:55,47:[2,54]},{28:60,43:61,44:[1,59],47:[2,56]},{13:63,15:[1,20],18:[1,62]},{15:[2,48],18:[2,48]},{33:[2,86],57:64,65:[2,86],72:[2,86],80:[2,86],81:[2,86],82:[2,86],83:[2,86],84:[2,86],85:[2,86]},{33:[2,40],65:[2,40],72:[2,40],80:[2,40],81:[2,40],82:[2,40],83:[2,40],84:[2,40],85:[2,40]},{33:[2,41],65:[2,41],72:[2,41],80:[2,41],81:[2,41],82:[2,41],83:[2,41],84:[2,41],85:[2,41]},{20:65,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:66,47:[1,67]},{30:68,33:[2,58],65:[2,58],72:[2,58],75:[2,58],80:[2,58],81:[2,58],82:[2,58],83:[2,58],84:[2,58],85:[2,58]},{33:[2,64],35:69,65:[2,64],72:[2,64],75:[2,64],80:[2,64],81:[2,64],82:[2,64],83:[2,64],84:[2,64],85:[2,64]},{21:70,23:[2,50],65:[2,50],72:[2,50],80:[2,50],81:[2,50],82:[2,50],83:[2,50],84:[2,50],85:[2,50]},{33:[2,90],61:71,65:[2,90],72:[2,90],80:[2,90],81:[2,90],82:[2,90],83:[2,90],84:[2,90],85:[2,90]},{20:75,33:[2,80],50:72,63:73,64:76,65:[1,44],69:74,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{72:[1,80]},{23:[2,42],33:[2,42],54:[2,42],65:[2,42],68:[2,42],72:[2,42],75:[2,42],80:[2,42],81:[2,42],82:[2,42],83:[2,42],84:[2,42],85:[2,42],87:[1,51]},{20:75,53:81,54:[2,84],63:82,64:76,65:[1,44],69:83,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{26:84,47:[1,67]},{47:[2,55]},{4:85,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],39:[2,46],44:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{47:[2,20]},{20:86,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{4:87,6:3,14:[2,46],15:[2,46],19:[2,46],29:[2,46],34:[2,46],47:[2,46],48:[2,46],51:[2,46],55:[2,46],60:[2,46]},{26:88,47:[1,67]},{47:[2,57]},{5:[2,11],14:[2,11],15:[2,11],19:[2,11],29:[2,11],34:[2,11],39:[2,11],44:[2,11],47:[2,11],48:[2,11],51:[2,11],55:[2,11],60:[2,11]},{15:[2,49],18:[2,49]},{20:75,33:[2,88],58:89,63:90,64:76,65:[1,44],69:91,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{65:[2,94],66:92,68:[2,94],72:[2,94],80:[2,94],81:[2,94],82:[2,94],83:[2,94],84:[2,94],85:[2,94]},{5:[2,25],14:[2,25],15:[2,25],19:[2,25],29:[2,25],34:[2,25],39:[2,25],44:[2,25],47:[2,25],48:[2,25],51:[2,25],55:[2,25],60:[2,25]},{20:93,72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,31:94,33:[2,60],63:95,64:76,65:[1,44],69:96,70:77,71:78,72:[1,79],75:[2,60],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,66],36:97,63:98,64:76,65:[1,44],69:99,70:77,71:78,72:[1,79],75:[2,66],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,22:100,23:[2,52],63:101,64:76,65:[1,44],69:102,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{20:75,33:[2,92],62:103,63:104,64:76,65:[1,44],69:105,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,106]},{33:[2,79],65:[2,79],72:[2,79],80:[2,79],81:[2,79],82:[2,79],83:[2,79],84:[2,79],85:[2,79]},{33:[2,81]},{23:[2,27],33:[2,27],54:[2,27],65:[2,27],68:[2,27],72:[2,27],75:[2,27],80:[2,27],81:[2,27],82:[2,27],83:[2,27],84:[2,27],85:[2,27]},{23:[2,28],33:[2,28],54:[2,28],65:[2,28],68:[2,28],72:[2,28],75:[2,28],80:[2,28],81:[2,28],82:[2,28],83:[2,28],84:[2,28],85:[2,28]},{23:[2,30],33:[2,30],54:[2,30],68:[2,30],71:107,72:[1,108],75:[2,30]},{23:[2,98],33:[2,98],54:[2,98],68:[2,98],72:[2,98],75:[2,98]},{23:[2,45],33:[2,45],54:[2,45],65:[2,45],68:[2,45],72:[2,45],73:[1,109],75:[2,45],80:[2,45],81:[2,45],82:[2,45],83:[2,45],84:[2,45],85:[2,45],87:[2,45]},{23:[2,44],33:[2,44],54:[2,44],65:[2,44],68:[2,44],72:[2,44],75:[2,44],80:[2,44],81:[2,44],82:[2,44],83:[2,44],84:[2,44],85:[2,44],87:[2,44]},{54:[1,110]},{54:[2,83],65:[2,83],72:[2,83],80:[2,83],81:[2,83],82:[2,83],83:[2,83],84:[2,83],85:[2,83]},{54:[2,85]},{5:[2,13],14:[2,13],15:[2,13],19:[2,13],29:[2,13],34:[2,13],39:[2,13],44:[2,13],47:[2,13],48:[2,13],51:[2,13],55:[2,13],60:[2,13]},{38:56,39:[1,58],43:57,44:[1,59],45:112,46:111,47:[2,76]},{33:[2,70],40:113,65:[2,70],72:[2,70],75:[2,70],80:[2,70],81:[2,70],82:[2,70],83:[2,70],84:[2,70],85:[2,70]},{47:[2,18]},{5:[2,14],14:[2,14],15:[2,14],19:[2,14],29:[2,14],34:[2,14],39:[2,14],44:[2,14],47:[2,14],48:[2,14],51:[2,14],55:[2,14],60:[2,14]},{33:[1,114]},{33:[2,87],65:[2,87],72:[2,87],80:[2,87],81:[2,87],82:[2,87],83:[2,87],84:[2,87],85:[2,87]},{33:[2,89]},{20:75,63:116,64:76,65:[1,44],67:115,68:[2,96],69:117,70:77,71:78,72:[1,79],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{33:[1,118]},{32:119,33:[2,62],74:120,75:[1,121]},{33:[2,59],65:[2,59],72:[2,59],75:[2,59],80:[2,59],81:[2,59],82:[2,59],83:[2,59],84:[2,59],85:[2,59]},{33:[2,61],75:[2,61]},{33:[2,68],37:122,74:123,75:[1,121]},{33:[2,65],65:[2,65],72:[2,65],75:[2,65],80:[2,65],81:[2,65],82:[2,65],83:[2,65],84:[2,65],85:[2,65]},{33:[2,67],75:[2,67]},{23:[1,124]},{23:[2,51],65:[2,51],72:[2,51],80:[2,51],81:[2,51],82:[2,51],83:[2,51],84:[2,51],85:[2,51]},{23:[2,53]},{33:[1,125]},{33:[2,91],65:[2,91],72:[2,91],80:[2,91],81:[2,91],82:[2,91],83:[2,91],84:[2,91],85:[2,91]},{33:[2,93]},{5:[2,22],14:[2,22],15:[2,22],19:[2,22],29:[2,22],34:[2,22],39:[2,22],44:[2,22],47:[2,22],48:[2,22],51:[2,22],55:[2,22],60:[2,22]},{23:[2,99],33:[2,99],54:[2,99],68:[2,99],72:[2,99],75:[2,99]},{73:[1,109]},{20:75,63:126,64:76,65:[1,44],72:[1,35],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,23],14:[2,23],15:[2,23],19:[2,23],29:[2,23],34:[2,23],39:[2,23],44:[2,23],47:[2,23],48:[2,23],51:[2,23],55:[2,23],60:[2,23]},{47:[2,19]},{47:[2,77]},{20:75,33:[2,72],41:127,63:128,64:76,65:[1,44],69:129,70:77,71:78,72:[1,79],75:[2,72],78:26,79:27,80:[1,28],81:[1,29],82:[1,30],83:[1,31],84:[1,32],85:[1,34],86:33},{5:[2,24],14:[2,24],15:[2,24],19:[2,24],29:[2,24],34:[2,24],39:[2,24],44:[2,24],47:[2,24],48:[2,24],51:[2,24],55:[2,24],60:[2,24]},{68:[1,130]},{65:[2,95],68:[2,95],72:[2,95],80:[2,95],81:[2,95],82:[2,95],83:[2,95],84:[2,95],85:[2,95]},{68:[2,97]},{5:[2,21],14:[2,21],15:[2,21],19:[2,21],29:[2,21],34:[2,21],39:[2,21],44:[2,21],47:[2,21],48:[2,21],51:[2,21],55:[2,21],60:[2,21]},{33:[1,131]},{33:[2,63]},{72:[1,133],76:132},{33:[1,134]},{33:[2,69]},{15:[2,12]},{14:[2,26],15:[2,26],19:[2,26],29:[2,26],34:[2,26],47:[2,26],48:[2,26],51:[2,26],55:[2,26],60:[2,26]},{23:[2,31],33:[2,31],54:[2,31],68:[2,31],72:[2,31],75:[2,31]},{33:[2,74],42:135,74:136,75:[1,121]},{33:[2,71],65:[2,71],72:[2,71],75:[2,71],80:[2,71],81:[2,71],82:[2,71],83:[2,71],84:[2,71],85:[2,71]},{33:[2,73],75:[2,73]},{23:[2,29],33:[2,29],54:[2,29],65:[2,29],68:[2,29],72:[2,29],75:[2,29],80:[2,29],81:[2,29],82:[2,29],83:[2,29],84:[2,29],85:[2,29]},{14:[2,15],15:[2,15],19:[2,15],29:[2,15],34:[2,15],39:[2,15],44:[2,15],47:[2,15],48:[2,15],51:[2,15],55:[2,15],60:[2,15]},{72:[1,138],77:[1,137]},{72:[2,100],77:[2,100]},{14:[2,16],15:[2,16],19:[2,16],29:[2,16],34:[2,16],44:[2,16],47:[2,16],
+48:[2,16],51:[2,16],55:[2,16],60:[2,16]},{33:[1,139]},{33:[2,75]},{33:[2,32]},{72:[2,101],77:[2,101]},{14:[2,17],15:[2,17],19:[2,17],29:[2,17],34:[2,17],39:[2,17],44:[2,17],47:[2,17],48:[2,17],51:[2,17],55:[2,17],60:[2,17]}],defaultActions:{4:[2,1],55:[2,55],57:[2,20],61:[2,57],74:[2,81],83:[2,85],87:[2,18],91:[2,89],102:[2,53],105:[2,93],111:[2,19],112:[2,77],117:[2,97],120:[2,63],123:[2,69],124:[2,12],136:[2,75],137:[2,32]},parseError:function(a,b){throw new Error(a)},parse:function(a){function b(){var a;return a=c.lexer.lex()||1,"number"!=typeof a&&(a=c.symbols_[a]||a),a}var c=this,d=[0],e=[null],f=[],g=this.table,h="",i=0,j=0,k=0;this.lexer.setInput(a),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var l=this.lexer.yylloc;f.push(l);var m=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var n,o,p,q,r,s,t,u,v,w={};;){if(p=d[d.length-1],this.defaultActions[p]?q=this.defaultActions[p]:((null===n||"undefined"==typeof n)&&(n=b()),q=g[p]&&g[p][n]),"undefined"==typeof q||!q.length||!q[0]){var x="";if(!k){v=[];for(s in g[p])this.terminals_[s]&&s>2&&v.push("'"+this.terminals_[s]+"'");x=this.lexer.showPosition?"Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[n]||n)+"'":"Parse error on line "+(i+1)+": Unexpected "+(1==n?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),"undefined"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),g=0;g<f.length&&(c=this._input.match(this.rules[f[g]]),!c||b&&!(c[0].length>b[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\r\n?|\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return"undefined"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substr(a,b.yyleng-c)}switch(c){case 0:if("\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin("mu")):"\\"===b.yytext.slice(-1)?(e(0,1),this.begin("emu")):this.begin("mu"),b.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(b.yytext=b.yytext.substr(5,b.yyleng-9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(b.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return b.yytext=e(1,2).replace(/\\"/g,'"'),80;case 32:return b.yytext=e(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return b.yytext=b.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},a.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();b.__esModule=!0,b["default"]=c},function(a,b,c){"use strict";function d(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=a}function e(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?"ContentStatement"===d.type?(e||!c?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(d.original):void 0:c}function f(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?"ContentStatement"===d.type?(e||!c?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(d.original):void 0:c}function g(a,b,c){var d=a[null==b?0:b+1];if(d&&"ContentStatement"===d.type&&(c||!d.rightStripped)){var e=d.value;d.value=d.value.replace(c?/^\s+/:/^[ \t]*\r?\n?/,""),d.rightStripped=d.value!==e}}function h(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&"ContentStatement"===d.type&&(c||!d.leftStripped)){var e=d.value;return d.value=d.value.replace(c?/\s+$/:/[ \t]+$/,""),d.leftStripped=d.value!==e,d.leftStripped}}var i=c(1)["default"];b.__esModule=!0;var j=c(25),k=i(j);d.prototype=new k["default"],d.prototype.Program=function(a){var b=!this.options.ignoreStandalone,c=!this.isRootSeen;this.isRootSeen=!0;for(var d=a.body,i=0,j=d.length;j>i;i++){var k=d[i],l=this.accept(k);if(l){var m=e(d,i,c),n=f(d,i,c),o=l.openStandalone&&m,p=l.closeStandalone&&n,q=l.inlineStandalone&&m&&n;l.close&&g(d,i,!0),l.open&&h(d,i,!0),b&&q&&(g(d,i),h(d,i)&&"PartialStatement"===k.type&&(k.indent=/([ \t]+$)/.exec(d[i-1].original)[1])),b&&o&&(g((k.program||k.inverse).body),h(d,i)),b&&p&&(g(d,i),h((k.inverse||k.program).body))}}return a},d.prototype.BlockStatement=d.prototype.DecoratorBlock=d.prototype.PartialBlockStatement=function(a){this.accept(a.program),this.accept(a.inverse);var b=a.program||a.inverse,c=a.program&&a.inverse,d=c,i=c;if(c&&c.chained)for(d=c.body[0].program;i.chained;)i=i.body[i.body.length-1].program;var j={open:a.openStrip.open,close:a.closeStrip.close,openStandalone:f(b.body),closeStandalone:e((d||b).body)};if(a.openStrip.close&&g(b.body,null,!0),c){var k=a.inverseStrip;k.open&&h(b.body,null,!0),k.close&&g(d.body,null,!0),a.closeStrip.open&&h(i.body,null,!0),!this.options.ignoreStandalone&&e(b.body)&&f(d.body)&&(h(b.body),g(d.body))}else a.closeStrip.open&&h(b.body,null,!0);return j},d.prototype.Decorator=d.prototype.MustacheStatement=function(a){return a.strip},d.prototype.PartialStatement=d.prototype.CommentStatement=function(a){var b=a.strip||{};return{inlineStandalone:!0,open:b.open,close:b.close}},b["default"]=d,a.exports=b["default"]},function(a,b,c){"use strict";function d(){this.parents=[]}function e(a){this.acceptRequired(a,"path"),this.acceptArray(a.params),this.acceptKey(a,"hash")}function f(a){e.call(this,a),this.acceptKey(a,"program"),this.acceptKey(a,"inverse")}function g(a){this.acceptRequired(a,"name"),this.acceptArray(a.params),this.acceptKey(a,"hash")}var h=c(1)["default"];b.__esModule=!0;var i=c(6),j=h(i);d.prototype={constructor:d,mutating:!1,acceptKey:function(a,b){var c=this.accept(a[b]);if(this.mutating){if(c&&!d.prototype[c.type])throw new j["default"]('Unexpected node type "'+c.type+'" found when accepting '+b+" on "+a.type);a[b]=c}},acceptRequired:function(a,b){if(this.acceptKey(a,b),!a[b])throw new j["default"](a.type+" requires "+b)},acceptArray:function(a){for(var b=0,c=a.length;c>b;b++)this.acceptKey(a,b),a[b]||(a.splice(b,1),b--,c--)},accept:function(a){if(a){if(!this[a.type])throw new j["default"]("Unknown type: "+a.type,a);this.current&&this.parents.unshift(this.current),this.current=a;var b=this[a.type](a);return this.current=this.parents.shift(),!this.mutating||b?b:b!==!1?a:void 0}},Program:function(a){this.acceptArray(a.body)},MustacheStatement:e,Decorator:e,BlockStatement:f,DecoratorBlock:f,PartialStatement:g,PartialBlockStatement:function(a){g.call(this,a),this.acceptKey(a,"program")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:e,PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(a){this.acceptArray(a.pairs)},HashPair:function(a){this.acceptRequired(a,"value")}},b["default"]=d,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b){if(b=b.path?b.path.original:b,a.path.original!==b){var c={loc:a.path.loc};throw new q["default"](a.path.original+" doesn't match "+b,c)}}function e(a,b){this.source=a,this.start={line:b.first_line,column:b.first_column},this.end={line:b.last_line,column:b.last_column}}function f(a){return/^\[.*\]$/.test(a)?a.substr(1,a.length-2):a}function g(a,b){return{open:"~"===a.charAt(2),close:"~"===b.charAt(b.length-3)}}function h(a){return a.replace(/^\{\{~?\!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function i(a,b,c){c=this.locInfo(c);for(var d=a?"@":"",e=[],f=0,g="",h=0,i=b.length;i>h;h++){var j=b[h].part,k=b[h].original!==j;if(d+=(b[h].separator||"")+j,k||".."!==j&&"."!==j&&"this"!==j)e.push(j);else{if(e.length>0)throw new q["default"]("Invalid path: "+d,{loc:c});".."===j&&(f++,g+="../")}}return{type:"PathExpression",data:a,depth:f,parts:e,original:d,loc:c}}function j(a,b,c,d,e,f){var g=d.charAt(3)||d.charAt(2),h="{"!==g&&"&"!==g,i=/\*/.test(d);return{type:i?"Decorator":"MustacheStatement",path:a,params:b,hash:c,escaped:h,strip:e,loc:this.locInfo(f)}}function k(a,b,c,e){d(a,c),e=this.locInfo(e);var f={type:"Program",body:b,strip:{},loc:e};return{type:"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:f,openStrip:{},inverseStrip:{},closeStrip:{},loc:e}}function l(a,b,c,e,f,g){e&&e.path&&d(a,e);var h=/\*/.test(a.open);b.blockParams=a.blockParams;var i=void 0,j=void 0;if(c){if(h)throw new q["default"]("Unexpected inverse block on decorator",c);c.chain&&(c.program.body[0].closeStrip=e.strip),j=c.strip,i=c.program}return f&&(f=i,i=b,b=f),{type:h?"DecoratorBlock":"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:b,inverse:i,openStrip:a.strip,inverseStrip:j,closeStrip:e&&e.strip,loc:this.locInfo(g)}}function m(a,b){if(!b&&a.length){var c=a[0].loc,d=a[a.length-1].loc;c&&d&&(b={source:c.source,start:{line:c.start.line,column:c.start.column},end:{line:d.end.line,column:d.end.column}})}return{type:"Program",body:a,strip:{},loc:b}}function n(a,b,c,e){return d(a,c),{type:"PartialBlockStatement",name:a.path,params:a.params,hash:a.hash,program:b,openStrip:a.strip,closeStrip:c&&c.strip,loc:this.locInfo(e)}}var o=c(1)["default"];b.__esModule=!0,b.SourceLocation=e,b.id=f,b.stripFlags=g,b.stripComment=h,b.preparePath=i,b.prepareMustache=j,b.prepareRawBlock=k,b.prepareBlock=l,b.prepareProgram=m,b.preparePartialBlock=n;var p=c(6),q=o(p)},function(a,b,c){"use strict";function d(){}function e(a,b,c){if(null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a,b),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function f(a,b,c){function d(){var d=c.parse(a,b),e=(new c.Compiler).compile(d,b),f=(new c.JavaScriptCompiler).compile(e,b,void 0,!0);return c.template(f)}function e(a,b){return f||(f=d()),f.call(this,a,b)}if(void 0===b&&(b={}),null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+a);"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var f=void 0;return e._setup=function(a){return f||(f=d()),f._setup(a)},e._child=function(a,b,c,e){return f||(f=d()),f._child(a,b,c,e)},e}function g(a,b){if(a===b)return!0;if(l.isArray(a)&&l.isArray(b)&&a.length===b.length){for(var c=0;c<a.length;c++)if(!g(a[c],b[c]))return!1;return!0}}function h(a){if(!a.path.parts){var b=a.path;a.path={type:"PathExpression",data:!1,depth:0,parts:[b.original+""],original:b.original+"",loc:b.loc}}}var i=c(1)["default"];b.__esModule=!0,b.Compiler=d,b.precompile=e,b.compile=f;var j=c(6),k=i(j),l=c(5),m=c(21),n=i(m),o=[].slice;d.prototype={compiler:d,equals:function(a){var b=this.opcodes.length;if(a.opcodes.length!==b)return!1;for(var c=0;b>c;c++){var d=this.opcodes[c],e=a.opcodes[c];if(d.opcode!==e.opcode||!g(d.args,e.args))return!1}b=this.children.length;for(var c=0;b>c;c++)if(!this.children[c].equals(a.children[c]))return!1;return!0},guid:0,compile:function(a,b){this.sourceNode=[],this.opcodes=[],this.children=[],this.options=b,this.stringParams=b.stringParams,this.trackIds=b.trackIds,b.blockParams=b.blockParams||[];var c=b.knownHelpers;if(b.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},c)for(var d in c)d in c&&(b.knownHelpers[d]=c[d]);return this.accept(a)},compileProgram:function(a){var b=new this.compiler,c=b.compile(a,this.options),d=this.guid++;return this.usePartial=this.usePartial||c.usePartial,this.children[d]=c,this.useDepths=this.useDepths||c.useDepths,d},accept:function(a){if(!this[a.type])throw new k["default"]("Unknown type: "+a.type,a);this.sourceNode.unshift(a);var b=this[a.type](a);return this.sourceNode.shift(),b},Program:function(a){this.options.blockParams.unshift(a.blockParams);for(var b=a.body,c=b.length,d=0;c>d;d++)this.accept(b[d]);return this.options.blockParams.shift(),this.isSimple=1===c,this.blockParams=a.blockParams?a.blockParams.length:0,this},BlockStatement:function(a){h(a);var b=a.program,c=a.inverse;b=b&&this.compileProgram(b),c=c&&this.compileProgram(c);var d=this.classifySexpr(a);"helper"===d?this.helperSexpr(a,b,c):"simple"===d?(this.simpleSexpr(a),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("blockValue",a.path.original)):(this.ambiguousSexpr(a,b,c),this.opcode("pushProgram",b),this.opcode("pushProgram",c),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},DecoratorBlock:function(a){var b=a.program&&this.compileProgram(a.program),c=this.setupFullMustacheParams(a,b,void 0),d=a.path;this.useDecorators=!0,this.opcode("registerDecorator",c.length,d.original)},PartialStatement:function(a){this.usePartial=!0;var b=a.program;b&&(b=this.compileProgram(a.program));var c=a.params;if(c.length>1)throw new k["default"]("Unsupported number of partial arguments: "+c.length,a);c.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):c.push({type:"PathExpression",parts:[],depth:0}));var d=a.name.original,e="SubExpression"===a.name.type;e&&this.accept(a.name),this.setupFullMustacheParams(a,b,void 0,!0);var f=a.indent||"";this.options.preventIndent&&f&&(this.opcode("appendContent",f),f=""),this.opcode("invokePartial",e,d,f),this.opcode("append")},PartialBlockStatement:function(a){this.PartialStatement(a)},MustacheStatement:function(a){this.SubExpression(a),a.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(a){this.DecoratorBlock(a)},ContentStatement:function(a){a.value&&this.opcode("appendContent",a.value)},CommentStatement:function(){},SubExpression:function(a){h(a);var b=this.classifySexpr(a);"simple"===b?this.simpleSexpr(a):"helper"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ambiguousSexpr:function(a,b,c){var d=a.path,e=d.parts[0],f=null!=b||null!=c;this.opcode("getContext",d.depth),this.opcode("pushProgram",b),this.opcode("pushProgram",c),d.strict=!0,this.accept(d),this.opcode("invokeAmbiguous",e,f)},simpleSexpr:function(a){var b=a.path;b.strict=!0,this.accept(b),this.opcode("resolvePossibleLambda")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.path,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode("invokeKnownHelper",d.length,f);else{if(this.options.knownHelpersOnly)throw new k["default"]("You specified knownHelpersOnly, but used the unknown helper "+f,a);e.strict=!0,e.falsy=!0,this.accept(e),this.opcode("invokeHelper",d.length,e.original,n["default"].helpers.simpleId(e))}},PathExpression:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth);var b=a.parts[0],c=n["default"].helpers.scopedId(a),d=!a.depth&&!c&&this.blockParamIndex(b);d?this.opcode("lookupBlockParam",d,a.parts):b?a.data?(this.options.data=!0,this.opcode("lookupData",a.depth,a.parts,a.strict)):this.opcode("lookupOnContext",a.parts,a.falsy,a.strict,c):this.opcode("pushContext")},StringLiteral:function(a){this.opcode("pushString",a.value)},NumberLiteral:function(a){this.opcode("pushLiteral",a.value)},BooleanLiteral:function(a){this.opcode("pushLiteral",a.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(a){var b=a.pairs,c=0,d=b.length;for(this.opcode("pushHash");d>c;c++)this.pushParam(b[c].value);for(;c--;)this.opcode("assignToHash",b[c].key);this.opcode("popHash")},opcode:function(a){this.opcodes.push({opcode:a,args:o.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(a){a&&(this.useDepths=!0)},classifySexpr:function(a){var b=n["default"].helpers.simpleId(a.path),c=b&&!!this.blockParamIndex(a.path.parts[0]),d=!c&&n["default"].helpers.helperExpression(a),e=!c&&(d||b);if(e&&!d){var f=a.path.parts[0],g=this.options;g.knownHelpers[f]?d=!0:g.knownHelpersOnly&&(e=!1)}return d?"helper":e?"ambiguous":"simple"},pushParams:function(a){for(var b=0,c=a.length;c>b;b++)this.pushParam(a[b])},pushParam:function(a){var b=null!=a.value?a.value:a.original||"";if(this.stringParams)b.replace&&(b=b.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),a.depth&&this.addDepth(a.depth),this.opcode("getContext",a.depth||0),this.opcode("pushStringParam",b,a.type),"SubExpression"===a.type&&this.accept(a);else{if(this.trackIds){var c=void 0;if(!a.parts||n["default"].helpers.scopedId(a)||a.depth||(c=this.blockParamIndex(a.parts[0])),c){var d=a.parts.slice(1).join(".");this.opcode("pushId","BlockParam",c,d)}else b=a.original||b,b.replace&&(b=b.replace(/^this(?:\.|$)/,"").replace(/^\.\//,"").replace(/^\.$/,"")),this.opcode("pushId",a.type,b)}this.accept(a)}},setupFullMustacheParams:function(a,b,c,d){var e=a.params;return this.pushParams(e),this.opcode("pushProgram",b),this.opcode("pushProgram",c),a.hash?this.accept(a.hash):this.opcode("emptyHash",d),e},blockParamIndex:function(a){for(var b=0,c=this.options.blockParams.length;c>b;b++){var d=this.options.blockParams[b],e=d&&l.indexOf(d,a);if(d&&e>=0)return[b,e]}}}},function(a,b,c){"use strict";function d(a){this.value=a}function e(){}function f(a,b,c,d){var e=b.popStack(),f=0,g=c.length;for(a&&g--;g>f;f++)e=b.nameLookup(e,c[f],d);return a?[b.aliasable("container.strict"),"(",e,", ",b.quotedString(c[f]),")"]:e}var g=c(1)["default"];b.__esModule=!0;var h=c(4),i=c(6),j=g(i),k=c(5),l=c(29),m=g(l);e.prototype={nameLookup:function(a,b){return e.isValidJavaScriptVariableName(b)?[a,".",b]:[a,"[",JSON.stringify(b),"]"]},depthedLookup:function(a){return[this.aliasable("container.lookup"),'(depths, "',a,'")']},compilerInfo:function(){var a=h.COMPILER_REVISION,b=h.REVISION_CHANGES[a];return[a,b]},appendToBuffer:function(a,b,c){return k.isArray(a)||(a=[a]),a=this.source.wrap(a,b),this.environment.isSimple?["return ",a,";"]:c?["buffer += ",a,";"]:(a.appendToBuffer=!0,a)},initializeBuffer:function(){return this.quotedString("")},compile:function(a,b,c,d){this.environment=a,this.options=b,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!d,this.name=this.environment.name,this.isChild=!!c,this.context=c||{decorators:[],programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(a,b),this.useDepths=this.useDepths||a.useDepths||a.useDecorators||this.options.compat,this.useBlockParams=this.useBlockParams||a.useBlockParams;var e=a.opcodes,f=void 0,g=void 0,h=void 0,i=void 0;for(h=0,i=e.length;i>h;h++)f=e[h],this.source.currentLocation=f.loc,g=g||f.loc,this[f.opcode].apply(this,f.args);if(this.source.currentLocation=g,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new j["default"]("Compile completed with content left on stack");this.decorators.isEmpty()?this.decorators=void 0:(this.useDecorators=!0,this.decorators.prepend("var decorators = container.decorators;\n"),this.decorators.push("return fn;"),d?this.decorators=Function.apply(this,["fn","props","container","depth0","data","blockParams","depths",this.decorators.merge()]):(this.decorators.prepend("function(fn, props, container, depth0, data, blockParams, depths) {\n"),this.decorators.push("}\n"),this.decorators=this.decorators.merge()));var k=this.createFunctionContext(d);if(this.isChild)return k;var l={compiler:this.compilerInfo(),main:k};this.decorators&&(l.main_d=this.decorators,l.useDecorators=!0);var m=this.context,n=m.programs,o=m.decorators;for(h=0,i=n.length;i>h;h++)n[h]&&(l[h]=n[h],o[h]&&(l[h+"_d"]=o[h],l.useDecorators=!0));return this.environment.usePartial&&(l.usePartial=!0),this.options.data&&(l.useData=!0),this.useDepths&&(l.useDepths=!0),this.useBlockParams&&(l.useBlockParams=!0),this.options.compat&&(l.compat=!0),d?l.compilerOptions=this.options:(l.compiler=JSON.stringify(l.compiler),this.source.currentLocation={start:{line:1,column:0}},l=this.objectLiteral(l),b.srcName?(l=l.toStringWithSourceMap({file:b.destName}),l.map=l.map&&l.map.toString()):l=l.toString()),l},preamble:function(){this.lastContext=0,this.source=new m["default"](this.options.srcName),this.decorators=new m["default"](this.options.srcName)},createFunctionContext:function(a){var b="",c=this.stackVars.concat(this.registers.list);c.length>0&&(b+=", "+c.join(", "));var d=0;for(var e in this.aliases){var f=this.aliases[e];this.aliases.hasOwnProperty(e)&&f.children&&f.referenceCount>1&&(b+=", alias"+ ++d+"="+e,f.children[0]="alias"+d)}var g=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&g.push("blockParams"),this.useDepths&&g.push("depths");var h=this.mergeSource(b);return a?(g.push(h),Function.apply(this,g)):this.source.wrap(["function(",g.join(","),") {\n  ",h,"}"])},mergeSource:function(a){var b=this.environment.isSimple,c=!this.forceBuffer,d=void 0,e=void 0,f=void 0,g=void 0;return this.source.each(function(a){a.appendToBuffer?(f?a.prepend("  + "):f=a,g=a):(f&&(e?f.prepend("buffer += "):d=!0,g.add(";"),f=g=void 0),e=!0,b||(c=!1))}),c?f?(f.prepend("return "),g.add(";")):e||this.source.push('return "";'):(a+=", buffer = "+(d?"":this.initializeBuffer()),f?(f.prepend("return buffer + "),g.add(";")):this.source.push("return buffer;")),a&&this.source.prepend("var "+a.substring(2)+(d?"":";\n")),this.source.merge()},blockValue:function(a){var b=this.aliasable("helpers.blockHelperMissing"),c=[this.contextName(0)];this.setupHelperArgs(a,0,c);var d=this.popStack();c.splice(1,0,d),this.push(this.source.functionCall(b,"call",c))},ambiguousBlockValue:function(){var a=this.aliasable("helpers.blockHelperMissing"),b=[this.contextName(0)];this.setupHelperArgs("",0,b,!0),this.flushInline();var c=this.topStack();b.splice(1,0,c),this.pushSource(["if (!",this.lastHelper,") { ",c," = ",this.source.functionCall(a,"call",b),"}"])},appendContent:function(a){this.pendingContent?a=this.pendingContent+a:this.pendingLocation=this.source.currentLocation,this.pendingContent=a},append:function(){if(this.isInline())this.replaceStack(function(a){return[" != null ? ",a,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var a=this.popStack();this.pushSource(["if (",a," != null) { ",this.appendToBuffer(a,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c,d){var e=0;d||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[e++])),this.resolvePath("context",a,e,b,c)},lookupBlockParam:function(a,b){this.useBlockParams=!0,this.push(["blockParams[",a[0],"][",a[1],"]"]),this.resolvePath("context",b,1)},lookupData:function(a,b,c){a?this.pushStackLiteral("container.data(data, "+a+")"):this.pushStackLiteral("data"),this.resolvePath("data",b,0,!0,c)},resolvePath:function(a,b,c,d,e){var g=this;if(this.options.strict||this.options.assumeObjects)return void this.push(f(this.options.strict&&e,this,b,a));for(var h=b.length;h>c;c++)this.replaceStack(function(e){var f=g.nameLookup(e,b[c],a);return d?[" && ",f]:[" != null ? ",f," : ",e]})},resolvePossibleLambda:function(){this.push([this.aliasable("container.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(a,b){this.pushContext(),this.pushString(b),"SubExpression"!==b&&("string"==typeof a?this.pushString(a):this.pushStackLiteral(a))},emptyHash:function(a){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(a?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var a=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(a.ids)),this.stringParams&&(this.push(this.objectLiteral(a.contexts)),this.push(this.objectLiteral(a.types))),this.push(this.objectLiteral(a.values))},pushString:function(a){this.pushStackLiteral(this.quotedString(a))},pushLiteral:function(a){this.pushStackLiteral(a)},pushProgram:function(a){null!=a?this.pushStackLiteral(this.programExpression(a)):this.pushStackLiteral(null)},registerDecorator:function(a,b){var c=this.nameLookup("decorators",b,"decorator"),d=this.setupHelperArgs(b,a);this.decorators.push(["fn = ",this.decorators.functionCall(c,"",["fn","props","container",d])," || fn;"])},invokeHelper:function(a,b,c){var d=this.popStack(),e=this.setupHelper(a,b),f=c?[e.name," || "]:"",g=["("].concat(f,d);this.options.strict||g.push(" || ",this.aliasable("helpers.helperMissing")),g.push(")"),this.push(this.source.functionCall(g,"call",e.callParams))},invokeKnownHelper:function(a,b){var c=this.setupHelper(a,b);this.push(this.source.functionCall(c.name,"call",c.callParams))},invokeAmbiguous:function(a,b){this.useRegister("helper");var c=this.popStack();this.emptyHash();var d=this.setupHelper(0,a,b),e=this.lastHelper=this.nameLookup("helpers",a,"helper"),f=["(","(helper = ",e," || ",c,")"];this.options.strict||(f[0]="(helper = ",f.push(" != null ? helper : ",this.aliasable("helpers.helperMissing"))),this.push(["(",f,d.paramsInit?["),(",d.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",d.callParams)," : helper))"])},invokePartial:function(a,b,c){var d=[],e=this.setupParams(b,1,d);a&&(b=this.popStack(),delete e.name),c&&(e.indent=JSON.stringify(c)),e.helpers="helpers",e.partials="partials",e.decorators="container.decorators",a?d.unshift(b):d.unshift(this.nameLookup("partials",b,"partial")),this.options.compat&&(e.depths="depths"),e=this.objectLiteral(e),
+d.push(e),this.push(this.source.functionCall("container.invokePartial","",d))},assignToHash:function(a){var b=this.popStack(),c=void 0,d=void 0,e=void 0;this.trackIds&&(e=this.popStack()),this.stringParams&&(d=this.popStack(),c=this.popStack());var f=this.hash;c&&(f.contexts[a]=c),d&&(f.types[a]=d),e&&(f.ids[a]=e),f.values[a]=b},pushId:function(a,b,c){"BlockParam"===a?this.pushStackLiteral("blockParams["+b[0]+"].path["+b[1]+"]"+(c?" + "+JSON.stringify("."+c):"")):"PathExpression"===a?this.pushString(b):"SubExpression"===a?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:e,compileChildren:function(a,b){for(var c=a.children,d=void 0,e=void 0,f=0,g=c.length;g>f;f++){d=c[f],e=new this.compiler;var h=this.matchExistingProgram(d);null==h?(this.context.programs.push(""),h=this.context.programs.length,d.index=h,d.name="program"+h,this.context.programs[h]=e.compile(d,b,this.context,!this.precompile),this.context.decorators[h]=e.decorators,this.context.environments[h]=d,this.useDepths=this.useDepths||e.useDepths,this.useBlockParams=this.useBlockParams||e.useBlockParams):(d.index=h,d.name="program"+h,this.useDepths=this.useDepths||d.useDepths,this.useBlockParams=this.useBlockParams||d.useBlockParams)}},matchExistingProgram:function(a){for(var b=0,c=this.context.environments.length;c>b;b++){var d=this.context.environments[b];if(d&&d.equals(a))return b}},programExpression:function(a){var b=this.environment.children[a],c=[b.index,"data",b.blockParams];return(this.useBlockParams||this.useDepths)&&c.push("blockParams"),this.useDepths&&c.push("depths"),"container.program("+c.join(", ")+")"},useRegister:function(a){this.registers[a]||(this.registers[a]=!0,this.registers.list.push(a))},push:function(a){return a instanceof d||(a=this.source.wrap(a)),this.inlineStack.push(a),a},pushStackLiteral:function(a){this.push(new d(a))},pushSource:function(a){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),a&&this.source.push(a)},replaceStack:function(a){var b=["("],c=void 0,e=void 0,f=void 0;if(!this.isInline())throw new j["default"]("replaceStack on non-inline");var g=this.popStack(!0);if(g instanceof d)c=[g.value],b=["(",c],f=!0;else{e=!0;var h=this.incrStack();b=["((",this.push(h)," = ",g,")"],c=this.topStack()}var i=a.call(this,c);f||this.popStack(),e&&this.stackSlot--,this.push(b.concat(i,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var a=this.inlineStack;this.inlineStack=[];for(var b=0,c=a.length;c>b;b++){var e=a[b];if(e instanceof d)this.compileStack.push(e);else{var f=this.incrStack();this.pushSource([f," = ",e,";"]),this.compileStack.push(f)}}},isInline:function(){return this.inlineStack.length},popStack:function(a){var b=this.isInline(),c=(b?this.inlineStack:this.compileStack).pop();if(!a&&c instanceof d)return c.value;if(!b){if(!this.stackSlot)throw new j["default"]("Invalid stack pop");this.stackSlot--}return c},topStack:function(){var a=this.isInline()?this.inlineStack:this.compileStack,b=a[a.length-1];return b instanceof d?b.value:b},contextName:function(a){return this.useDepths&&a?"depths["+a+"]":"depth"+a},quotedString:function(a){return this.source.quotedString(a)},objectLiteral:function(a){return this.source.objectLiteral(a)},aliasable:function(a){var b=this.aliases[a];return b?(b.referenceCount++,b):(b=this.aliases[a]=this.source.wrap(a),b.aliasable=!0,b.referenceCount=1,b)},setupHelper:function(a,b,c){var d=[],e=this.setupHelperArgs(b,a,d,c),f=this.nameLookup("helpers",b,"helper"),g=this.aliasable(this.contextName(0)+" != null ? "+this.contextName(0)+" : {}");return{params:d,paramsInit:e,name:f,callParams:[g].concat(d)}},setupParams:function(a,b,c){var d={},e=[],f=[],g=[],h=!c,i=void 0;h&&(c=[]),d.name=this.quotedString(a),d.hash=this.popStack(),this.trackIds&&(d.hashIds=this.popStack()),this.stringParams&&(d.hashTypes=this.popStack(),d.hashContexts=this.popStack());var j=this.popStack(),k=this.popStack();(k||j)&&(d.fn=k||"container.noop",d.inverse=j||"container.noop");for(var l=b;l--;)i=this.popStack(),c[l]=i,this.trackIds&&(g[l]=this.popStack()),this.stringParams&&(f[l]=this.popStack(),e[l]=this.popStack());return h&&(d.args=this.source.generateArray(c)),this.trackIds&&(d.ids=this.source.generateArray(g)),this.stringParams&&(d.types=this.source.generateArray(f),d.contexts=this.source.generateArray(e)),this.options.data&&(d.data="data"),this.useBlockParams&&(d.blockParams="blockParams"),d},setupHelperArgs:function(a,b,c,d){var e=this.setupParams(a,b,c);return e=this.objectLiteral(e),d?(this.useRegister("options"),c.push("options"),["options=",e]):c?(c.push(e),""):e}},function(){for(var a="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),b=e.RESERVED_WORDS={},c=0,d=a.length;d>c;c++)b[a[c]]=!0}(),e.isValidJavaScriptVariableName=function(a){return!e.RESERVED_WORDS[a]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(a)},b["default"]=e,a.exports=b["default"]},function(a,b,c){"use strict";function d(a,b,c){if(f.isArray(a)){for(var d=[],e=0,g=a.length;g>e;e++)d.push(b.wrap(a[e],c));return d}return"boolean"==typeof a||"number"==typeof a?a+"":a}function e(a){this.srcFile=a,this.source=[]}b.__esModule=!0;var f=c(5),g=void 0;try{}catch(h){}g||(g=function(a,b,c,d){this.src="",d&&this.add(d)},g.prototype={add:function(a){f.isArray(a)&&(a=a.join("")),this.src+=a},prepend:function(a){f.isArray(a)&&(a=a.join("")),this.src=a+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),e.prototype={isEmpty:function(){return!this.source.length},prepend:function(a,b){this.source.unshift(this.wrap(a,b))},push:function(a,b){this.source.push(this.wrap(a,b))},merge:function(){var a=this.empty();return this.each(function(b){a.add(["  ",b,"\n"])}),a},each:function(a){for(var b=0,c=this.source.length;c>b;b++)a(this.source[b])},empty:function(){var a=this.currentLocation||{start:{}};return new g(a.start.line,a.start.column,this.srcFile)},wrap:function(a){var b=arguments.length<=1||void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return a instanceof g?a:(a=d(a,this,b),new g(b.start.line,b.start.column,this.srcFile,a))},functionCall:function(a,b,c){return c=this.generateList(c),this.wrap([a,b?"."+b+"(":"(",c,")"])},quotedString:function(a){return'"'+(a+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(a){var b=[];for(var c in a)if(a.hasOwnProperty(c)){var e=d(a[c],this);"undefined"!==e&&b.push([this.quotedString(c),":",e])}var f=this.generateList(b);return f.prepend("{"),f.add("}"),f},generateList:function(a){for(var b=this.empty(),c=0,e=a.length;e>c;c++)c&&b.add(","),b.add(d(a[c],this));return b},generateArray:function(a){var b=this.generateList(a);return b.prepend("["),b.add("]"),b}},b["default"]=e,a.exports=b["default"]}])});
\ No newline at end of file
diff --git a/apidoc/vendor/jquery.min.js b/apidoc/vendor/jquery.min.js
new file mode 100644 (file)
index 0000000..349030d
--- /dev/null
@@ -0,0 +1,4 @@
+/*! jQuery v2.2.1 | (c) jQuery Foundation | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!k.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=la(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=ma(b);function pa(){}pa.prototype=d.filters=d.pseudos,d.setFilters=new pa,g=fa.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=R.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=S.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(Q," ")}),h=h.slice(c.length));for(g in d.filter)!(e=W[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?fa.error(a):z(a,i).slice(0)};function qa(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?h.call(n(a),this[0]):h.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return n.each(arguments,function(a,b){var c;while((c=n.inArray(b,f,c))>-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J))),I.promise(b)},n.ready.promise();var K=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)K(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Q,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:P.test(c)?n.parseJSON(c):c}catch(e){}O.set(a,b,c);
+}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,"-$&").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf("-")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return N.get(a,c)||N.access(a,c,{empty:n.Callbacks("once memory").add(function(){N.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=N.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var S=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=new RegExp("^(?:([+-])=|)("+S+")([a-z%]*)$","i"),U=["Top","Right","Bottom","Left"],V=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)};function W(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return n.css(a,b,"")},i=h(),j=c&&c[3]||(n.cssNumber[b]?"":"px"),k=(n.cssNumber[b]||"px"!==j&&+i)&&T.exec(n.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,n.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var X=/^(?:checkbox|radio)$/i,Y=/<([\w:-]+)/,Z=/^$|\/(?:java|ecma)script/i,$={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],"globalEval",!b||N.get(b[c],"globalEval"))}var ba=/<|&#?\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if("object"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement("div")),h=(Y.exec(f)||["",""])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),"script"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return"undefined"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(G)||[""],j=b.length;while(j--)h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&N.remove(a,"handle events")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.rnamespace||a.rnamespace.test(g.namespace))&&(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,e,f,g=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||d,e=c.documentElement,f=c.body,a.pageX=b.clientX+(e&&e.scrollLeft||f&&f.scrollLeft||0)-(e&&e.clientLeft||f&&f.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||f&&f.scrollTop||0)-(e&&e.clientTop||f&&f.clientTop||0)),a.which||void 0===g||(a.which=1&g?1:2&g?3:4&g?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,e,f=a.type,g=a,h=this.fixHooks[f];h||(this.fixHooks[f]=h=ea.test(f)?this.mouseHooks:da.test(f)?this.keyHooks:{}),e=h.props?this.props.concat(h.props):this.props,a=new n.Event(g),b=e.length;while(b--)c=e[b],a[c]=g[c];return a.target||(a.target=d),3===a.target.nodeType&&(a.target=a.target.parentNode),h.filter?h.filter(a,g):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==ia()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===ia()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ga:ha):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={constructor:n.Event,isDefaultPrevented:ha,isPropagationStopped:ha,isImmediatePropagationStopped:ha,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ga,a&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ga,a&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ga,a&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),n.fn.extend({on:function(a,b,c,d){return ja(this,a,b,c,d)},one:function(a,b,c,d){return ja(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=ha),this.each(function(){n.event.remove(this,a,c,b)})}});var ka=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,la=/<script|<style|<link/i,ma=/checked\s*(?:[^=]|=\s*.checked.)/i,na=/^true\/(.*)/,oa=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function pa(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function qa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function ra(a){var b=na.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function sa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(N.hasData(a)&&(f=N.access(a),g=N.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}O.hasData(a)&&(h=O.access(a),i=n.extend({},h),O.set(b,i))}}function ta(a,b){var c=b.nodeName.toLowerCase();"input"===c&&X.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}function ua(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&ma.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),ua(f,b,c,d)});if(o&&(e=ca(b,a[0].ownerDocument,!1,a,d),g=e.firstChild,1===e.childNodes.length&&(e=g),g||d)){for(h=n.map(_(e,"script"),qa),i=h.length;o>m;m++)j=e,m!==p&&(j=n.clone(j,!0,!0),i&&n.merge(h,_(j,"script"))),c.call(a[m],j,m);if(i)for(k=h[h.length-1].ownerDocument,n.map(h,ra),m=0;i>m;m++)j=h[m],Z.test(j.type||"")&&!N.access(j,"globalEval")&&n.contains(k,j)&&(j.src?n._evalUrl&&n._evalUrl(j.src):n.globalEval(j.textContent.replace(oa,"")))}return a}function va(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(_(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&aa(_(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(ka,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=_(h),f=_(a),d=0,e=f.length;e>d;d++)ta(f[d],g[d]);if(b)if(c)for(f=f||_(a),g=g||_(h),d=0,e=f.length;e>d;d++)sa(f[d],g[d]);else sa(a,h);return g=_(h,"script"),g.length>0&&aa(g,!i&&_(a,"script")),h},cleanData:function(a){for(var b,c,d,e=n.event.special,f=0;void 0!==(c=a[f]);f++)if(L(c)){if(b=c[N.expando]){if(b.events)for(d in b.events)e[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);c[N.expando]=void 0}c[O.expando]&&(c[O.expando]=void 0)}}}),n.fn.extend({domManip:ua,detach:function(a){return va(this,a,!0)},remove:function(a){return va(this,a)},text:function(a){return K(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.appendChild(a)}})},prepend:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(_(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return K(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!la.test(a)&&!$[(Y.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(_(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return ua(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(_(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),f=e.length-1,h=0;f>=h;h++)c=h===f?this:this.clone(!0),n(e[h])[b](c),g.apply(d,c.get());return this.pushStack(d)}});var wa,xa={HTML:"block",BODY:"block"};function ya(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function za(a){var b=d,c=xa[a];return c||(c=ya(a,b),"none"!==c&&c||(wa=(wa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=wa[0].contentDocument,b.write(),b.close(),c=ya(a,b),wa.detach()),xa[a]=c),c}var Aa=/^margin/,Ba=new RegExp("^("+S+")(?!px)[a-z%]+$","i"),Ca=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)},Da=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Ea=d.documentElement;!function(){var b,c,e,f,g=d.createElement("div"),h=d.createElement("div");if(h.style){h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===h.style.backgroundClip,g.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",g.appendChild(h);function i(){h.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",h.innerHTML="",Ea.appendChild(g);var d=a.getComputedStyle(h);b="1%"!==d.top,f="2px"===d.marginLeft,c="4px"===d.width,h.style.marginRight="50%",e="4px"===d.marginRight,Ea.removeChild(g)}n.extend(l,{pixelPosition:function(){return i(),b},boxSizingReliable:function(){return null==c&&i(),c},pixelMarginRight:function(){return null==c&&i(),e},reliableMarginLeft:function(){return null==c&&i(),f},reliableMarginRight:function(){var b,c=h.appendChild(d.createElement("div"));return c.style.cssText=h.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",h.style.width="1px",Ea.appendChild(g),b=!parseFloat(a.getComputedStyle(c).marginRight),Ea.removeChild(g),h.removeChild(c),b}})}}();function Fa(a,b,c){var d,e,f,g,h=a.style;return c=c||Ca(a),g=c?c.getPropertyValue(b)||c[b]:void 0,""!==g&&void 0!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),c&&!l.pixelMarginRight()&&Ba.test(g)&&Aa.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f),void 0!==g?g+"":g}function Ga(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Ha=/^(none|table(?!-c[ea]).+)/,Ia={position:"absolute",visibility:"hidden",display:"block"},Ja={letterSpacing:"0",fontWeight:"400"},Ka=["Webkit","O","Moz","ms"],La=d.createElement("div").style;function Ma(a){if(a in La)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ka.length;while(c--)if(a=Ka[c]+b,a in La)return a}function Na(a,b,c){var d=T.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Oa(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+U[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+U[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+U[f]+"Width",!0,e))):(g+=n.css(a,"padding"+U[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+U[f]+"Width",!0,e)));return g}function Pa(b,c,e){var f=!0,g="width"===c?b.offsetWidth:b.offsetHeight,h=Ca(b),i="border-box"===n.css(b,"boxSizing",!1,h);if(d.msFullscreenElement&&a.top!==a&&b.getClientRects().length&&(g=Math.round(100*b.getBoundingClientRect()[c])),0>=g||null==g){if(g=Fa(b,c,h),(0>g||null==g)&&(g=b.style[c]),Ba.test(g))return g;f=i&&(l.boxSizingReliable()||g===b.style[c]),g=parseFloat(g)||0}return g+Oa(b,c,e||(i?"border":"content"),f,h)+"px"}function Qa(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=N.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&V(d)&&(f[g]=N.access(d,"olddisplay",za(d.nodeName)))):(e=V(d),"none"===c&&e||N.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Fa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Ma(h)||h),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=T.exec(c))&&e[1]&&(c=W(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(n.cssNumber[h]?"":"px")),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Ma(h)||h),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Fa(a,b,d)),"normal"===e&&b in Ja&&(e=Ja[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?Ha.test(n.css(a,"display"))&&0===a.offsetWidth?Da(a,Ia,function(){return Pa(a,b,d)}):Pa(a,b,d):void 0},set:function(a,c,d){var e,f=d&&Ca(a),g=d&&Oa(a,b,d,"border-box"===n.css(a,"boxSizing",!1,f),f);return g&&(e=T.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=n.css(a,b)),Na(a,c,g)}}}),n.cssHooks.marginLeft=Ga(l.reliableMarginLeft,function(a,b){return b?(parseFloat(Fa(a,"marginLeft"))||a.getBoundingClientRect().left-Da(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px":void 0}),n.cssHooks.marginRight=Ga(l.reliableMarginRight,function(a,b){return b?Da(a,{display:"inline-block"},Fa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+U[d]+b]=f[d]||f[d-2]||f[0];return e}},Aa.test(a)||(n.cssHooks[a+b].set=Na)}),n.fn.extend({css:function(a,b){return K(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Ca(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Qa(this,!0)},hide:function(){return Qa(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){V(this)?n(this).show():n(this).hide()})}});function Ra(a,b,c,d,e){return new Ra.prototype.init(a,b,c,d,e)}n.Tween=Ra,Ra.prototype={constructor:Ra,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||n.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ra.propHooks[this.prop];return a&&a.get?a.get(this):Ra.propHooks._default.get(this)},run:function(a){var b,c=Ra.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ra.propHooks._default.set(this),this}},Ra.prototype.init.prototype=Ra.prototype,Ra.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[n.cssProps[a.prop]]&&!n.cssHooks[a.prop]?a.elem[a.prop]=a.now:n.style(a.elem,a.prop,a.now+a.unit)}}},Ra.propHooks.scrollTop=Ra.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},n.fx=Ra.prototype.init,n.fx.step={};var Sa,Ta,Ua=/^(?:toggle|show|hide)$/,Va=/queueHooks$/;function Wa(){return a.setTimeout(function(){Sa=void 0}),Sa=n.now()}function Xa(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=U[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ya(a,b,c){for(var d,e=(_a.tweeners[b]||[]).concat(_a.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Za(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&V(a),q=N.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?N.get(a,"olddisplay")||za(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Ua.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?za(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=N.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;N.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ya(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function $a(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function _a(a,b,c){var d,e,f=0,g=_a.prefilters.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Sa||Wa(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{},easing:n.easing._default},c),originalProperties:b,originalOptions:c,startTime:Sa||Wa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for($a(k,j.opts.specialEasing);g>f;f++)if(d=_a.prefilters[f].call(j,a,k,j.opts))return n.isFunction(d.stop)&&(n._queueHooks(j.elem,j.opts.queue).stop=n.proxy(d.stop,d)),d;return n.map(k,Ya,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(_a,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return W(c.elem,a,T.exec(b),c),c}]},tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.match(G);for(var c,d=0,e=a.length;e>d;d++)c=a[d],_a.tweeners[c]=_a.tweeners[c]||[],_a.tweeners[c].unshift(b)},prefilters:[Za],prefilter:function(a,b){b?_a.prefilters.unshift(a):_a.prefilters.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(V).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=_a(this,n.extend({},a),f);(e||N.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=N.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Va.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=N.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Xa(b,!0),a,d,e)}}),n.each({slideDown:Xa("show"),slideUp:Xa("hide"),slideToggle:Xa("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(Sa=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),Sa=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ta||(Ta=a.setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){a.clearInterval(Ta),Ta=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(b,c){return b=n.fx?n.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",l.checkOn=""!==a.value,l.optSelected=c.selected,b.disabled=!0,l.optDisabled=!c.disabled,a=d.createElement("input"),a.value="t",a.type="radio",l.radioValue="t"===a.value}();var ab,bb=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return K(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),e=n.attrHooks[b]||(n.expr.match.bool.test(b)?ab:void 0)),void 0!==c?null===c?void n.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=n.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(G);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)}}),ab={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=bb[b]||n.find.attr;bb[b]=function(a,b,d){var e,f;return d||(f=bb[b],bb[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,bb[b]=f),e}});var cb=/^(?:input|select|textarea|button)$/i,db=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return K(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&n.isXMLDoc(a)||(b=n.propFix[b]||b,
+e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):cb.test(a.nodeName)||db.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var eb=/[\t\r\n\f]/g;function fb(a){return a.getAttribute&&a.getAttribute("class")||""}n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,fb(this)))});if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=fb(c),d=1===c.nodeType&&(" "+e+" ").replace(eb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=n.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,fb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(G)||[];while(c=this[i++])if(e=fb(c),d=1===c.nodeType&&(" "+e+" ").replace(eb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=n.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):n.isFunction(a)?this.each(function(c){n(this).toggleClass(a.call(this,c,fb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=n(this),f=a.match(G)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(void 0===a||"boolean"===c)&&(b=fb(this),b&&N.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":N.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+fb(c)+" ").replace(eb," ").indexOf(b)>-1)return!0;return!1}});var gb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(gb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){return n.trim(a.value)}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&(l.optDisabled?!c.disabled:null===c.getAttribute("disabled"))&&(!c.parentNode.disabled||!n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(n.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>-1:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var hb=/^(?:focusinfocus|focusoutblur)$/;n.extend(n.event,{trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!hb.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),l=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},f||!o.trigger||o.trigger.apply(e,c)!==!1)){if(!f&&!o.noBubble&&!n.isWindow(e)){for(j=o.delegateType||q,hb.test(j+q)||(h=h.parentNode);h;h=h.parentNode)p.push(h),i=h;i===(e.ownerDocument||d)&&p.push(i.defaultView||i.parentWindow||a)}g=0;while((h=p[g++])&&!b.isPropagationStopped())b.type=g>1?j:o.bindType||q,m=(N.get(h,"events")||{})[b.type]&&N.get(h,"handle"),m&&m.apply(h,c),m=l&&h[l],m&&m.apply&&L(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=q,f||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!L(e)||l&&n.isFunction(e[q])&&!n.isWindow(e)&&(i=e[l],i&&(e[l]=null),n.event.triggered=q,e[q](),n.event.triggered=void 0,i&&(e[l]=i)),b.result}},simulate:function(a,b,c){var d=n.extend(new n.Event,c,{type:a,isSimulated:!0});n.event.trigger(d,null,b),d.isDefaultPrevented()&&c.preventDefault()}}),n.fn.extend({trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),l.focusin="onfocusin"in a,l.focusin||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a))};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=N.access(d,b);e||d.addEventListener(a,c,!0),N.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=N.access(d,b)-1;e?N.access(d,b,e):(d.removeEventListener(a,c,!0),N.remove(d,b))}}});var ib=a.location,jb=n.now(),kb=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return(!c||c.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+b),c};var lb=/#.*$/,mb=/([?&])_=[^&]*/,nb=/^(.*?):[ \t]*([^\r\n]*)$/gm,ob=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,pb=/^(?:GET|HEAD)$/,qb=/^\/\//,rb={},sb={},tb="*/".concat("*"),ub=d.createElement("a");ub.href=ib.href;function vb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(G)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function wb(a,b,c,d){var e={},f=a===sb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function xb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function yb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function zb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ib.href,type:"GET",isLocal:ob.test(ib.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":tb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?xb(xb(a,n.ajaxSettings),b):xb(n.ajaxSettings,a)},ajaxPrefilter:vb(rb),ajaxTransport:vb(sb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m=n.ajaxSetup({},c),o=m.context||m,p=m.context&&(o.nodeType||o.jquery)?n(o):n.event,q=n.Deferred(),r=n.Callbacks("once memory"),s=m.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,getResponseHeader:function(a){var b;if(2===v){if(!h){h={};while(b=nb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===v?g:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return v||(a=u[c]=u[c]||a,t[a]=b),this},overrideMimeType:function(a){return v||(m.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>v)for(b in a)s[b]=[s[b],a[b]];else x.always(a[x.status]);return this},abort:function(a){var b=a||w;return e&&e.abort(b),z(0,b),this}};if(q.promise(x).complete=r.add,x.success=x.done,x.error=x.fail,m.url=((b||m.url||ib.href)+"").replace(lb,"").replace(qb,ib.protocol+"//"),m.type=c.method||c.type||m.method||m.type,m.dataTypes=n.trim(m.dataType||"*").toLowerCase().match(G)||[""],null==m.crossDomain){j=d.createElement("a");try{j.href=m.url,j.href=j.href,m.crossDomain=ub.protocol+"//"+ub.host!=j.protocol+"//"+j.host}catch(y){m.crossDomain=!0}}if(m.data&&m.processData&&"string"!=typeof m.data&&(m.data=n.param(m.data,m.traditional)),wb(rb,m,c,x),2===v)return x;k=n.event&&m.global,k&&0===n.active++&&n.event.trigger("ajaxStart"),m.type=m.type.toUpperCase(),m.hasContent=!pb.test(m.type),f=m.url,m.hasContent||(m.data&&(f=m.url+=(kb.test(f)?"&":"?")+m.data,delete m.data),m.cache===!1&&(m.url=mb.test(f)?f.replace(mb,"$1_="+jb++):f+(kb.test(f)?"&":"?")+"_="+jb++)),m.ifModified&&(n.lastModified[f]&&x.setRequestHeader("If-Modified-Since",n.lastModified[f]),n.etag[f]&&x.setRequestHeader("If-None-Match",n.etag[f])),(m.data&&m.hasContent&&m.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",m.contentType),x.setRequestHeader("Accept",m.dataTypes[0]&&m.accepts[m.dataTypes[0]]?m.accepts[m.dataTypes[0]]+("*"!==m.dataTypes[0]?", "+tb+"; q=0.01":""):m.accepts["*"]);for(l in m.headers)x.setRequestHeader(l,m.headers[l]);if(m.beforeSend&&(m.beforeSend.call(o,x,m)===!1||2===v))return x.abort();w="abort";for(l in{success:1,error:1,complete:1})x[l](m[l]);if(e=wb(sb,m,c,x)){if(x.readyState=1,k&&p.trigger("ajaxSend",[x,m]),2===v)return x;m.async&&m.timeout>0&&(i=a.setTimeout(function(){x.abort("timeout")},m.timeout));try{v=1,e.send(t,z)}catch(y){if(!(2>v))throw y;z(-1,y)}}else z(-1,"No Transport");function z(b,c,d,h){var j,l,t,u,w,y=c;2!==v&&(v=2,i&&a.clearTimeout(i),e=void 0,g=h||"",x.readyState=b>0?4:0,j=b>=200&&300>b||304===b,d&&(u=yb(m,x,d)),u=zb(m,u,x,j),j?(m.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(n.lastModified[f]=w),w=x.getResponseHeader("etag"),w&&(n.etag[f]=w)),204===b||"HEAD"===m.type?y="nocontent":304===b?y="notmodified":(y=u.state,l=u.data,t=u.error,j=!t)):(t=y,(b||!y)&&(y="error",0>b&&(b=0))),x.status=b,x.statusText=(c||y)+"",j?q.resolveWith(o,[l,y,x]):q.rejectWith(o,[x,y,t]),x.statusCode(s),s=void 0,k&&p.trigger(j?"ajaxSuccess":"ajaxError",[x,m,j?l:t]),r.fireWith(o,[x,y]),k&&(p.trigger("ajaxComplete",[x,m]),--n.active||n.event.trigger("ajaxStop")))}return x},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax(n.extend({url:a,type:b,dataType:e,data:c,success:d},n.isPlainObject(a)&&a))}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return n.isFunction(a)?this.each(function(b){n(this).wrapInner(a.call(this,b))}):this.each(function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return!n.expr.filters.visible(a)},n.expr.filters.visible=function(a){return a.offsetWidth>0||a.offsetHeight>0||a.getClientRects().length>0};var Ab=/%20/g,Bb=/\[\]$/,Cb=/\r?\n/g,Db=/^(?:submit|button|image|reset|file)$/i,Eb=/^(?:input|select|textarea|keygen)/i;function Fb(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||Bb.test(a)?d(a,e):Fb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Fb(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Fb(c,a[c],b,e);return d.join("&").replace(Ab,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Eb.test(this.nodeName)&&!Db.test(a)&&(this.checked||!X.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(Cb,"\r\n")}}):{name:b.name,value:c.replace(Cb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Gb={0:200,1223:204},Hb=n.ajaxSettings.xhr();l.cors=!!Hb&&"withCredentials"in Hb,l.ajax=Hb=!!Hb,n.ajaxTransport(function(b){var c,d;return l.cors||Hb&&!b.crossDomain?{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Gb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=n("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Ib=[],Jb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Ib.pop()||n.expando+"_"+jb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Jb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Jb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Jb,"$1"+e):b.jsonp!==!1&&(b.url+=(kb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?n(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Ib.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),l.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||(l.createHTMLDocument?d.implementation.createHTMLDocument(""):d);var e=x.exec(a),f=!c&&[];return e?[b.createElement(e[1])]:(e=ca([a],b,f),f&&f.length&&n(f).remove(),n.merge([],e.childNodes))};var Kb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Kb)return Kb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(g,f||[a.responseText,b,a])})}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};function Lb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,n.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(e=d.getBoundingClientRect(),c=Lb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ea})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;n.fn[a]=function(d){return K(this,function(a,d,e){var f=Lb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Ga(l.pixelPosition,function(a,c){return c?(c=Fa(a,b),Ba.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return K(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)},size:function(){return this.length}}),n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Mb=a.jQuery,Nb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Nb),b&&a.jQuery===n&&(a.jQuery=Mb),n},b||(a.jQuery=a.$=n),n});
diff --git a/apidoc/vendor/list.min.js b/apidoc/vendor/list.min.js
new file mode 100644 (file)
index 0000000..06c4721
--- /dev/null
@@ -0,0 +1,2 @@
+// List.js v1.3.0 (http://www.listjs.com) by Jonny Strömberg (http://javve.com)
+!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){!function(c,d){"use strict";var e=c.document,f=a("./src/utils/get-by-class"),g=a("./src/utils/extend"),h=a("./src/utils/index-of"),i=a("./src/utils/events"),j=a("./src/utils/to-string"),k=a("./src/utils/natural-sort"),l=a("./src/utils/classes"),m=a("./src/utils/get-attribute"),n=a("./src/utils/to-array"),o=function(b,c,p){var q,r=this,s=a("./src/item")(r),t=a("./src/add-async")(r);q={start:function(){r.listClass="list",r.searchClass="search",r.sortClass="sort",r.page=1e4,r.i=1,r.items=[],r.visibleItems=[],r.matchingItems=[],r.searched=!1,r.filtered=!1,r.searchColumns=d,r.handlers={updated:[]},r.plugins={},r.valueNames=[],r.utils={getByClass:f,extend:g,indexOf:h,events:i,toString:j,naturalSort:k,classes:l,getAttribute:m,toArray:n},r.utils.extend(r,c),r.listContainer="string"==typeof b?e.getElementById(b):b,r.listContainer&&(r.list=f(r.listContainer,r.listClass,!0),r.parse=a("./src/parse")(r),r.templater=a("./src/templater")(r),r.search=a("./src/search")(r),r.filter=a("./src/filter")(r),r.sort=a("./src/sort")(r),this.handlers(),this.items(),r.update(),this.plugins())},handlers:function(){for(var a in r.handlers)r[a]&&r.on(a,r[a])},items:function(){r.parse(r.list),p!==d&&r.add(p)},plugins:function(){for(var a=0;a<r.plugins.length;a++){var b=r.plugins[a];r[b.name]=b,b.init(r,o)}}},this.reIndex=function(){r.items=[],r.visibleItems=[],r.matchingItems=[],r.searched=!1,r.filtered=!1,r.parse(r.list)},this.toJSON=function(){for(var a=[],b=0,c=r.items.length;b<c;b++)a.push(r.items[b].values());return a},this.add=function(a,b){if(0!==a.length){if(b)return void t(a,b);var c=[],e=!1;a[0]===d&&(a=[a]);for(var f=0,g=a.length;f<g;f++){var h=null;e=r.items.length>r.page,h=new s(a[f],d,e),r.items.push(h),c.push(h)}return r.update(),c}},this.show=function(a,b){return this.i=a,this.page=b,r.update(),r},this.remove=function(a,b,c){for(var d=0,e=0,f=r.items.length;e<f;e++)r.items[e].values()[a]==b&&(r.templater.remove(r.items[e],c),r.items.splice(e,1),f--,e--,d++);return r.update(),d},this.get=function(a,b){for(var c=[],d=0,e=r.items.length;d<e;d++){var f=r.items[d];f.values()[a]==b&&c.push(f)}return c},this.size=function(){return r.items.length},this.clear=function(){return r.templater.clear(),r.items=[],r},this.on=function(a,b){return r.handlers[a].push(b),r},this.off=function(a,b){var c=r.handlers[a],d=h(c,b);return d>-1&&c.splice(d,1),r},this.trigger=function(a){for(var b=r.handlers[a].length;b--;)r.handlers[a][b](r);return r},this.reset={filter:function(){for(var a=r.items,b=a.length;b--;)a[b].filtered=!1;return r},search:function(){for(var a=r.items,b=a.length;b--;)a[b].found=!1;return r}},this.update=function(){var a=r.items,b=a.length;r.visibleItems=[],r.matchingItems=[],r.templater.clear();for(var c=0;c<b;c++)a[c].matching()&&r.matchingItems.length+1>=r.i&&r.visibleItems.length<r.page?(a[c].show(),r.visibleItems.push(a[c]),r.matchingItems.push(a[c])):a[c].matching()?(r.matchingItems.push(a[c]),a[c].hide()):a[c].hide();return r.trigger("updated"),r},q.start()};"function"==typeof define&&define.amd&&define(function(){return o}),b.exports=o,c.List=o}(window)},{"./src/add-async":2,"./src/filter":3,"./src/item":4,"./src/parse":5,"./src/search":6,"./src/sort":7,"./src/templater":8,"./src/utils/classes":9,"./src/utils/events":10,"./src/utils/extend":11,"./src/utils/get-attribute":12,"./src/utils/get-by-class":13,"./src/utils/index-of":14,"./src/utils/natural-sort":15,"./src/utils/to-array":16,"./src/utils/to-string":17}],2:[function(a,b,c){b.exports=function(a){var b=function(c,d,e){var f=c.splice(0,50);e=e||[],e=e.concat(a.add(f)),c.length>0?setTimeout(function(){b(c,d,e)},1):(a.update(),d(e))};return b}},{}],3:[function(a,b,c){b.exports=function(a){return a.handlers.filterStart=a.handlers.filterStart||[],a.handlers.filterComplete=a.handlers.filterComplete||[],function(b){if(a.trigger("filterStart"),a.i=1,a.reset.filter(),void 0===b)a.filtered=!1;else{a.filtered=!0;for(var c=a.items,d=0,e=c.length;d<e;d++){var f=c[d];b(f)?f.filtered=!0:f.filtered=!1}}return a.update(),a.trigger("filterComplete"),a.visibleItems}}},{}],4:[function(a,b,c){b.exports=function(a){return function(b,c,d){var e=this;this._values={},this.found=!1,this.filtered=!1;var f=function(b,c,d){if(void 0===c)d?e.values(b,d):e.values(b);else{e.elm=c;var f=a.templater.get(e,b);e.values(f)}};this.values=function(b,c){if(void 0===b)return e._values;for(var d in b)e._values[d]=b[d];c!==!0&&a.templater.set(e,e.values())},this.show=function(){a.templater.show(e)},this.hide=function(){a.templater.hide(e)},this.matching=function(){return a.filtered&&a.searched&&e.found&&e.filtered||a.filtered&&!a.searched&&e.filtered||!a.filtered&&a.searched&&e.found||!a.filtered&&!a.searched},this.visible=function(){return!(!e.elm||e.elm.parentNode!=a.list)},f(b,c,d)}}},{}],5:[function(a,b,c){b.exports=function(b){var c=a("./item")(b),d=function(a){for(var b=a.childNodes,c=[],d=0,e=b.length;d<e;d++)void 0===b[d].data&&c.push(b[d]);return c},e=function(a,d){for(var e=0,f=a.length;e<f;e++)b.items.push(new c(d,a[e]))},f=function(a,c){var d=a.splice(0,50);e(d,c),a.length>0?setTimeout(function(){f(a,c)},1):(b.update(),b.trigger("parseComplete"))};return b.handlers.parseComplete=b.handlers.parseComplete||[],function(){var a=d(b.list),c=b.valueNames;b.indexAsync?f(a,c):e(a,c)}}},{"./item":4}],6:[function(a,b,c){b.exports=function(a){var b,c,d,e,f={resetList:function(){a.i=1,a.templater.clear(),e=void 0},setOptions:function(a){2==a.length&&a[1]instanceof Array?c=a[1]:2==a.length&&"function"==typeof a[1]?(c=void 0,e=a[1]):3==a.length?(c=a[1],e=a[2]):c=void 0},setColumns:function(){0!==a.items.length&&void 0===c&&(c=void 0===a.searchColumns?f.toArray(a.items[0].values()):a.searchColumns)},setSearchString:function(b){b=a.utils.toString(b).toLowerCase(),b=b.replace(/[-[\]{}()*+?.,\\^$|#]/g,"\\$&"),d=b},toArray:function(a){var b=[];for(var c in a)b.push(c);return b}},g={list:function(){for(var b=0,c=a.items.length;b<c;b++)g.item(a.items[b])},item:function(a){a.found=!1;for(var b=0,d=c.length;b<d;b++)if(g.values(a.values(),c[b]))return void(a.found=!0)},values:function(c,e){return!!(c.hasOwnProperty(e)&&(b=a.utils.toString(c[e]).toLowerCase(),""!==d&&b.search(d)>-1))},reset:function(){a.reset.search(),a.searched=!1}},h=function(b){return a.trigger("searchStart"),f.resetList(),f.setSearchString(b),f.setOptions(arguments),f.setColumns(),""===d?g.reset():(a.searched=!0,e?e(d,c):g.list()),a.update(),a.trigger("searchComplete"),a.visibleItems};return a.handlers.searchStart=a.handlers.searchStart||[],a.handlers.searchComplete=a.handlers.searchComplete||[],a.utils.events.bind(a.utils.getByClass(a.listContainer,a.searchClass),"keyup",function(b){var c=b.target||b.srcElement,d=""===c.value&&!a.searched;d||h(c.value)}),a.utils.events.bind(a.utils.getByClass(a.listContainer,a.searchClass),"input",function(a){var b=a.target||a.srcElement;""===b.value&&h("")}),h}},{}],7:[function(a,b,c){b.exports=function(a){a.sortFunction=a.sortFunction||function(b,c,d){return d.desc="desc"==d.order,a.utils.naturalSort(b.values()[d.valueName],c.values()[d.valueName],d)};var b={els:void 0,clear:function(){for(var c=0,d=b.els.length;c<d;c++)a.utils.classes(b.els[c]).remove("asc"),a.utils.classes(b.els[c]).remove("desc")},getOrder:function(b){var c=a.utils.getAttribute(b,"data-order");return"asc"==c||"desc"==c?c:a.utils.classes(b).has("desc")?"asc":a.utils.classes(b).has("asc")?"desc":"asc"},getInSensitive:function(b,c){var d=a.utils.getAttribute(b,"data-insensitive");"false"===d?c.insensitive=!1:c.insensitive=!0},setOrder:function(c){for(var d=0,e=b.els.length;d<e;d++){var f=b.els[d];if(a.utils.getAttribute(f,"data-sort")===c.valueName){var g=a.utils.getAttribute(f,"data-order");"asc"==g||"desc"==g?g==c.order&&a.utils.classes(f).add(c.order):a.utils.classes(f).add(c.order)}}}},c=function(){a.trigger("sortStart");var c={},d=arguments[0].currentTarget||arguments[0].srcElement||void 0;d?(c.valueName=a.utils.getAttribute(d,"data-sort"),b.getInSensitive(d,c),c.order=b.getOrder(d)):(c=arguments[1]||c,c.valueName=arguments[0],c.order=c.order||"asc",c.insensitive="undefined"==typeof c.insensitive||c.insensitive),b.clear(),b.setOrder(c),c.sortFunction=c.sortFunction||a.sortFunction,a.items.sort(function(a,b){var d="desc"===c.order?-1:1;return c.sortFunction(a,b,c)*d}),a.update(),a.trigger("sortComplete")};return a.handlers.sortStart=a.handlers.sortStart||[],a.handlers.sortComplete=a.handlers.sortComplete||[],b.els=a.utils.getByClass(a.listContainer,a.sortClass),a.utils.events.bind(b.els,"click",c),a.on("searchStart",b.clear),a.on("filterStart",b.clear),c}},{}],8:[function(a,b,c){var d=function(a){var b,c=this,d=function(){b=c.getItemSource(a.item),b&&(b=c.clearSourceItem(b,a.valueNames))};this.clearSourceItem=function(b,c){for(var d=0,e=c.length;d<e;d++){var f;if(c[d].data)for(var g=0,h=c[d].data.length;g<h;g++)b.setAttribute("data-"+c[d].data[g],"");else c[d].attr&&c[d].name?(f=a.utils.getByClass(b,c[d].name,!0),f&&f.setAttribute(c[d].attr,"")):(f=a.utils.getByClass(b,c[d],!0),f&&(f.innerHTML=""));f=void 0}return b},this.getItemSource=function(b){if(void 0===b){for(var c=a.list.childNodes,d=0,e=c.length;d<e;d++)if(void 0===c[d].data)return c[d].cloneNode(!0)}else{if(/<tr[\s>]/g.exec(b)){var f=document.createElement("tbody");return f.innerHTML=b,f.firstChild}if(b.indexOf("<")!==-1){var g=document.createElement("div");return g.innerHTML=b,g.firstChild}var h=document.getElementById(a.item);if(h)return h}},this.get=function(b,d){c.create(b);for(var e={},f=0,g=d.length;f<g;f++){var h;if(d[f].data)for(var i=0,j=d[f].data.length;i<j;i++)e[d[f].data[i]]=a.utils.getAttribute(b.elm,"data-"+d[f].data[i]);else d[f].attr&&d[f].name?(h=a.utils.getByClass(b.elm,d[f].name,!0),e[d[f].name]=h?a.utils.getAttribute(h,d[f].attr):""):(h=a.utils.getByClass(b.elm,d[f],!0),e[d[f]]=h?h.innerHTML:"");h=void 0}return e},this.set=function(b,d){var e=function(b){for(var c=0,d=a.valueNames.length;c<d;c++)if(a.valueNames[c].data){for(var e=a.valueNames[c].data,f=0,g=e.length;f<g;f++)if(e[f]===b)return{data:b}}else{if(a.valueNames[c].attr&&a.valueNames[c].name&&a.valueNames[c].name==b)return a.valueNames[c];if(a.valueNames[c]===b)return b}},f=function(c,d){var f,g=e(c);g&&(g.data?b.elm.setAttribute("data-"+g.data,d):g.attr&&g.name?(f=a.utils.getByClass(b.elm,g.name,!0),f&&f.setAttribute(g.attr,d)):(f=a.utils.getByClass(b.elm,g,!0),f&&(f.innerHTML=d)),f=void 0)};if(!c.create(b))for(var g in d)d.hasOwnProperty(g)&&f(g,d[g])},this.create=function(a){if(void 0!==a.elm)return!1;if(void 0===b)throw new Error("The list need to have at list one item on init otherwise you'll have to add a template.");var d=b.cloneNode(!0);return d.removeAttribute("id"),a.elm=d,c.set(a,a.values()),!0},this.remove=function(b){b.elm.parentNode===a.list&&a.list.removeChild(b.elm)},this.show=function(b){c.create(b),a.list.appendChild(b.elm)},this.hide=function(b){void 0!==b.elm&&b.elm.parentNode===a.list&&a.list.removeChild(b.elm)},this.clear=function(){if(a.list.hasChildNodes())for(;a.list.childNodes.length>=1;)a.list.removeChild(a.list.firstChild)},d()};b.exports=function(a){return new d(a)}},{}],9:[function(a,b,c){function d(a){if(!a||!a.nodeType)throw new Error("A DOM element reference is required");this.el=a,this.list=a.classList}var e=a("./index-of"),f=/\s+/,g=Object.prototype.toString;b.exports=function(a){return new d(a)},d.prototype.add=function(a){if(this.list)return this.list.add(a),this;var b=this.array(),c=e(b,a);return~c||b.push(a),this.el.className=b.join(" "),this},d.prototype.remove=function(a){if("[object RegExp]"==g.call(a))return this.removeMatching(a);if(this.list)return this.list.remove(a),this;var b=this.array(),c=e(b,a);return~c&&b.splice(c,1),this.el.className=b.join(" "),this},d.prototype.removeMatching=function(a){for(var b=this.array(),c=0;c<b.length;c++)a.test(b[c])&&this.remove(b[c]);return this},d.prototype.toggle=function(a,b){return this.list?("undefined"!=typeof b?b!==this.list.toggle(a,b)&&this.list.toggle(a):this.list.toggle(a),this):("undefined"!=typeof b?b?this.add(a):this.remove(a):this.has(a)?this.remove(a):this.add(a),this)},d.prototype.array=function(){var a=this.el.getAttribute("class")||"",b=a.replace(/^\s+|\s+$/g,""),c=b.split(f);return""===c[0]&&c.shift(),c},d.prototype.has=d.prototype.contains=function(a){return this.list?this.list.contains(a):!!~e(this.array(),a)}},{"./index-of":14}],10:[function(a,b,c){var d=window.addEventListener?"addEventListener":"attachEvent",e=window.removeEventListener?"removeEventListener":"detachEvent",f="addEventListener"!==d?"on":"",g=a("./to-array");c.bind=function(a,b,c,e){a=g(a);for(var h=0;h<a.length;h++)a[h][d](f+b,c,e||!1)},c.unbind=function(a,b,c,d){a=g(a);for(var h=0;h<a.length;h++)a[h][e](f+b,c,d||!1)}},{"./to-array":16}],11:[function(a,b,c){b.exports=function(a){for(var b,c=Array.prototype.slice.call(arguments,1),d=0;b=c[d];d++)if(b)for(var e in b)a[e]=b[e];return a}},{}],12:[function(a,b,c){b.exports=function(a,b){var c=a.getAttribute&&a.getAttribute(b)||null;if(!c)for(var d=a.attributes,e=d.length,f=0;f<e;f++)void 0!==b[f]&&b[f].nodeName===b&&(c=b[f].nodeValue);return c}},{}],13:[function(a,b,c){b.exports=function(){return document.getElementsByClassName?function(a,b,c){return c?a.getElementsByClassName(b)[0]:a.getElementsByClassName(b)}:document.querySelector?function(a,b,c){return b="."+b,c?a.querySelector(b):a.querySelectorAll(b)}:function(a,b,c){var d=[],e="*";null===a&&(a=document);for(var f=a.getElementsByTagName(e),g=f.length,h=new RegExp("(^|\\s)"+b+"(\\s|$)"),i=0,j=0;i<g;i++)if(h.test(f[i].className)){if(c)return f[i];d[j]=f[i],j++}return d}}()},{}],14:[function(a,b,c){var d=[].indexOf;b.exports=function(a,b){if(d)return a.indexOf(b);for(var c=0;c<a.length;++c)if(a[c]===b)return c;return-1}},{}],15:[function(a,b,c){b.exports=function(a,b,c){var d,e,f=/(^([+\-]?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?(?=\D|\s|$))|^0x[\da-fA-F]+$|\d+)/g,g=/^\s+|\s+$/g,h=/\s+/g,i=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,j=/^0x[0-9a-f]+$/i,k=/^0/,l=c||{},m=function(a){return(l.insensitive&&(""+a).toLowerCase()||""+a).replace(g,"")},n=m(a),o=m(b),p=n.replace(f,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),q=o.replace(f,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0"),r=parseInt(n.match(j),16)||1!==p.length&&Date.parse(n),s=parseInt(o.match(j),16)||r&&o.match(i)&&Date.parse(o)||null,t=function(a,b){return(!a.match(k)||1==b)&&parseFloat(a)||a.replace(h," ").replace(g,"")||0};if(s){if(r<s)return-1;if(r>s)return 1}for(var u=0,v=p.length,w=q.length,x=Math.max(v,w);u<x;u++){if(d=t(p[u]||"",v),e=t(q[u]||"",w),isNaN(d)!==isNaN(e))return isNaN(d)?1:-1;if(/[^\x00-\x80]/.test(d+e)&&d.localeCompare){var y=d.localeCompare(e);return y/Math.abs(y)}if(d<e)return-1;if(d>e)return 1}return 0}},{}],16:[function(a,b,c){function d(a){return"[object Array]"===Object.prototype.toString.call(a)}b.exports=function(a){if("undefined"==typeof a)return[];if(null===a)return[null];if(a===window)return[window];if("string"==typeof a)return[a];if(d(a))return a;if("number"!=typeof a.length)return[a];if("function"==typeof a&&a instanceof Function)return[a];for(var b=[],c=0;c<a.length;c++)(Object.prototype.hasOwnProperty.call(a,c)||c in a)&&b.push(a[c]);return b.length?b:[]}},{}],17:[function(a,b,c){b.exports=function(a){return a=void 0===a?"":a,a=null===a?"":a,a=a.toString()}},{}]},{},[1]);
\ No newline at end of file
diff --git a/apidoc/vendor/lodash.custom.min.js b/apidoc/vendor/lodash.custom.min.js
new file mode 100644 (file)
index 0000000..51c11a4
--- /dev/null
@@ -0,0 +1,41 @@
+/**
+ * @license
+ * Lodash (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
+ * Build: `lodash -p -o template/vendor/lodash.custom.min.js include="groupBy,each,extend,some" exports="amd"`
+ */
+;(function(){function t(t,e){return t.set(e[0],e[1]),t}function e(t,e){return t.add(e),t}function r(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}function n(t,e,r,n){for(var o=-1,c=null==t?0:t.length;++o<c;){var u=t[o];e(n,u,r(u),t)}return n}function o(t,e){for(var r=-1,n=null==t?0:t.length;++r<n&&false!==e(t[r],r,t););return t}function c(t,e){for(var r=-1,n=null==t?0:t.length,o=0,c=[];++r<n;){
+var u=t[r];e(u,r,t)&&(c[o++]=u)}return c}function u(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t}function i(t,e,r){for(var n=-1,o=null==t?0:t.length;++n<o;)r=e(r,t[n],n,t);return r}function a(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return true;return false}function f(t){return function(e){return null==e?Bt:e[t]}}function s(t){return function(e){return t(e)}}function l(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r}function b(t){var e=Object;
+return function(r){return t(e(r))}}function h(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r}function p(){}function y(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function j(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function _(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function g(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new _;++e<r;)this.add(t[e]);
+}function v(t){this.size=(this.__data__=new j(t)).size}function d(t,e){var r=Je(t),n=!r&&He(t),o=!r&&!n&&Ke(t),c=!r&&!n&&!o&&Qe(t);if(r=r||n||o||c){for(var n=t.length,u=String,i=-1,a=Array(n);++i<n;)a[i]=u(i);n=a}else n=[];var f,u=n.length;for(f in t)!e&&!oe.call(t,f)||r&&("length"==f||o&&("offset"==f||"parent"==f)||c&&("buffer"==f||"byteLength"==f||"byteOffset"==f)||ct(f,u))||n.push(f);return n}function A(t,e,r){var n=t[e];oe.call(t,e)&&yt(n,r)&&(r!==Bt||e in t)||z(t,e,r)}function w(t,e){for(var r=t.length;r--;)if(yt(t[r][0],e))return r;
+return-1}function m(t,e,r,n){return Pe(t,function(t,o,c){e(n,t,r(t),c)}),n}function O(t,e){return t&&q(e,St(e),t)}function S(t,e){return t&&q(e,zt(e),t)}function z(t,e,r){"__proto__"==e&&_e?_e(t,e,{configurable:true,enumerable:true,value:r,writable:true}):t[e]=r}function k(t,e,r,n,c,u){var i,a=1&e,f=2&e,s=4&e;if(r&&(i=c?r(t,n,c,u):r(t)),i!==Bt)return i;if(!vt(t))return t;if(n=Je(t)){if(i=nt(t),!a)return G(t,i)}else{var l=Ne(t),b="[object Function]"==l||"[object GeneratorFunction]"==l;if(Ke(t))return N(t,a);
+if("[object Object]"==l||"[object Arguments]"==l||b&&!c){if(i=f||b?{}:typeof t.constructor!="function"||at(t)?{}:Le(be(t)),!a)return f?J(t,S(i,t)):H(t,O(i,t))}else{if(!Wt[l])return c?t:{};i=ot(t,l,k,a)}}if(u||(u=new v),c=u.get(t))return c;u.set(t,i);var f=s?f?Y:X:f?zt:St,h=n?Bt:f(t);return o(h||t,function(n,o){h&&(o=n,n=t[o]),A(i,o,k(n,e,r,o,t,u))}),i}function x(t,e){e=C(e,t);for(var r=0,n=e.length;null!=t&&r<n;)t=t[lt(e[r++])];return r&&r==n?t:Bt}function F(t,e,r){return e=e(t),Je(t)?e:u(e,r(t));
+}function I(t){if(null==t)t=t===Bt?"[object Undefined]":"[object Null]";else if(je&&je in Object(t)){var e=oe.call(t,je),r=t[je];try{t[je]=Bt;var n=true}catch(t){}var o=ue.call(t);n&&(e?t[je]=r:delete t[je]),t=o}else t=ue.call(t);return t}function E(t){return dt(t)&&"[object Arguments]"==I(t)}function U(t,e,r,n,o){if(t===e)e=true;else if(null==t||null==e||!dt(t)&&!dt(e))e=t!==t&&e!==e;else t:{var c=Je(t),u=Je(e),i=c?"[object Array]":Ne(t),a=u?"[object Array]":Ne(e),i="[object Arguments]"==i?"[object Object]":i,a="[object Arguments]"==a?"[object Object]":a,f="[object Object]"==i,u="[object Object]"==a;
+if((a=i==a)&&Ke(t)){if(!Ke(e)){e=false;break t}c=true,f=false}if(a&&!f)o||(o=new v),e=c||Qe(t)?K(t,e,r,n,U,o):Q(t,e,i,r,n,U,o);else{if(!(1&r)&&(c=f&&oe.call(t,"__wrapped__"),i=u&&oe.call(e,"__wrapped__"),c||i)){t=c?t.value():t,e=i?e.value():e,o||(o=new v),e=U(t,e,r,n,o);break t}if(a)e:if(o||(o=new v),c=1&r,i=X(t),u=i.length,a=X(e).length,u==a||c){for(f=u;f--;){var s=i[f];if(!(c?s in e:oe.call(e,s))){e=false;break e}}if((a=o.get(t))&&o.get(e))e=a==e;else{a=true,o.set(t,e),o.set(e,t);for(var l=c;++f<u;){var s=i[f],b=t[s],h=e[s];
+if(n)var p=c?n(h,b,s,e,t,o):n(b,h,s,t,e,o);if(p===Bt?b!==h&&!U(b,h,r,n,o):!p){a=false;break}l||(l="constructor"==s)}a&&!l&&(r=t.constructor,n=e.constructor,r!=n&&"constructor"in t&&"constructor"in e&&!(typeof r=="function"&&r instanceof r&&typeof n=="function"&&n instanceof n)&&(a=false)),o.delete(t),o.delete(e),e=a}}else e=false;else e=false}}return e}function B(t,e){var r=e.length,n=r;if(null==t)return!n;for(t=Object(t);r--;){var o=e[r];if(o[2]?o[1]!==t[o[0]]:!(o[0]in t))return false}for(;++r<n;){var o=e[r],c=o[0],u=t[c],i=o[1];
+if(o[2]){if(u===Bt&&!(c in t))return false}else if(o=new v,void 0===Bt?!U(i,u,3,void 0,o):1)return false}return true}function M(t){return dt(t)&&gt(t.length)&&!!Nt[I(t)]}function D(t){return typeof t=="function"?t:null==t?xt:typeof t=="object"?Je(t)?L(t[0],t[1]):$(t):It(t)}function $(t){var e=et(t);return 1==e.length&&e[0][2]?ft(e[0][0],e[0][1]):function(r){return r===t||B(r,e)}}function L(t,e){return it(t)&&e===e&&!vt(e)?ft(lt(t),e):function(r){var n=mt(r,t);return n===Bt&&n===e?Ot(r,t):U(e,n,3)}}function P(t){
+return function(e){return x(e,t)}}function V(t){return We(st(t,xt),t+"")}function R(t,e){var r;return Pe(t,function(t,n,o){return r=e(t,n,o),!r}),!!r}function T(t){if(typeof t=="string")return t;if(Je(t)){for(var e=T,r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o+""}return At(t)?$e?$e.call(t):"":(e=t+"","0"==e&&1/t==-Mt?"-0":e)}function C(t,e){return Je(t)?t:it(t,e)?[t]:Ge(wt(t))}function N(t,e){if(e)return t.slice();var r=t.length,r=le?le(r):new t.constructor(r);return t.copy(r),
+r}function W(t){var e=new t.constructor(t.byteLength);return new se(e).set(new se(t)),e}function G(t,e){var r=-1,n=t.length;for(e||(e=Array(n));++r<n;)e[r]=t[r];return e}function q(t,e,r){var n=!r;r||(r={});for(var o=-1,c=e.length;++o<c;){var u=e[o],i=Bt;i===Bt&&(i=t[u]),n?z(r,u,i):A(r,u,i)}return r}function H(t,e){return q(t,Te(t),e)}function J(t,e){return q(t,Ce(t),e)}function K(t,e,r,n,o,c){var u=1&r,i=t.length,f=e.length;if(i!=f&&!(u&&f>i))return false;if((f=c.get(t))&&c.get(e))return f==e;var f=-1,s=true,l=2&r?new g:Bt;
+for(c.set(t,e),c.set(e,t);++f<i;){var b=t[f],h=e[f];if(n)var p=u?n(h,b,f,e,t,c):n(b,h,f,t,e,c);if(p!==Bt){if(p)continue;s=false;break}if(l){if(!a(e,function(t,e){if(!l.has(e)&&(b===t||o(b,t,r,n,c)))return l.push(e)})){s=false;break}}else if(b!==h&&!o(b,h,r,n,c)){s=false;break}}return c.delete(t),c.delete(e),s}function Q(t,e,r,n,o,c,u){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)break;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":if(t.byteLength!=e.byteLength||!c(new se(t),new se(e)))break;
+return true;case"[object Boolean]":case"[object Date]":case"[object Number]":return yt(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var i=l;case"[object Set]":if(i||(i=h),t.size!=e.size&&!(1&n))break;return(r=u.get(t))?r==e:(n|=2,u.set(t,e),e=K(i(t),i(e),n,o,c,u),u.delete(t),e);case"[object Symbol]":if(De)return De.call(t)==De.call(e)}return false}function X(t){return F(t,St,Te)}function Y(t){return F(t,zt,Ce);
+}function Z(){var t=p.iteratee||Ft,t=t===Ft?D:t;return arguments.length?t(arguments[0],arguments[1]):t}function tt(t,e){var r=t.__data__,n=typeof e;return("string"==n||"number"==n||"symbol"==n||"boolean"==n?"__proto__"!==e:null===e)?r[typeof e=="string"?"string":"hash"]:r.map}function et(t){for(var e=St(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,o===o&&!vt(o)]}return e}function rt(t,e){var r=null==t?Bt:t[e];return(!vt(r)||ce&&ce in r?0:(_t(r)?ie:Tt).test(bt(r)))?r:Bt}function nt(t){var e=t.length,r=t.constructor(e);
+return e&&"string"==typeof t[0]&&oe.call(t,"index")&&(r.index=t.index,r.input=t.input),r}function ot(r,n,o,c){var u=r.constructor;switch(n){case"[object ArrayBuffer]":return W(r);case"[object Boolean]":case"[object Date]":return new u(+r);case"[object DataView]":return n=c?W(r.buffer):r.buffer,new r.constructor(n,r.byteOffset,r.byteLength);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":
+case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return n=c?W(r.buffer):r.buffer,new r.constructor(n,r.byteOffset,r.length);case"[object Map]":return n=c?o(l(r),1):l(r),i(n,t,new r.constructor);case"[object Number]":case"[object String]":return new u(r);case"[object RegExp]":return n=new r.constructor(r.source,Rt.exec(r)),n.lastIndex=r.lastIndex,n;case"[object Set]":return n=c?o(h(r),1):h(r),i(n,e,new r.constructor);case"[object Symbol]":return De?Object(De.call(r)):{};
+}}function ct(t,e){return e=null==e?9007199254740991:e,!!e&&(typeof t=="number"||Ct.test(t))&&-1<t&&0==t%1&&t<e}function ut(t,e,r){if(!vt(r))return false;var n=typeof e;return!!("number"==n?jt(r)&&ct(e,r.length):"string"==n&&e in r)&&yt(r[e],t)}function it(t,e){if(Je(t))return false;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!At(t))||($t.test(t)||!Dt.test(t)||null!=e&&t in Object(e))}function at(t){var e=t&&t.constructor;return t===(typeof e=="function"&&e.prototype||ee)}function ft(t,e){
+return function(r){return null!=r&&(r[t]===e&&(e!==Bt||t in Object(r)))}}function st(t,e){var n=void 0,n=Ae(n===Bt?t.length-1:n,0);return function(){for(var o=arguments,c=-1,u=Ae(o.length-n,0),i=Array(u);++c<u;)i[c]=o[n+c];for(c=-1,u=Array(n+1);++c<n;)u[c]=o[c];return u[n]=e(i),r(t,this,u)}}function lt(t){if(typeof t=="string"||At(t))return t;var e=t+"";return"0"==e&&1/t==-Mt?"-0":e}function bt(t){if(null!=t){try{return ne.call(t)}catch(t){}return t+""}return""}function ht(t,e){return(Je(t)?o:Pe)(t,Z(e,3));
+}function pt(t,e){function r(){var n=arguments,o=e?e.apply(this,n):n[0],c=r.cache;return c.has(o)?c.get(o):(n=t.apply(this,n),r.cache=c.set(o,n)||c,n)}if(typeof t!="function"||null!=e&&typeof e!="function")throw new TypeError("Expected a function");return r.cache=new(pt.Cache||_),r}function yt(t,e){return t===e||t!==t&&e!==e}function jt(t){return null!=t&&gt(t.length)&&!_t(t)}function _t(t){return!!vt(t)&&(t=I(t),"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t);
+}function gt(t){return typeof t=="number"&&-1<t&&0==t%1&&9007199254740991>=t}function vt(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function dt(t){return null!=t&&typeof t=="object"}function At(t){return typeof t=="symbol"||dt(t)&&"[object Symbol]"==I(t)}function wt(t){return null==t?"":T(t)}function mt(t,e,r){return t=null==t?Bt:x(t,e),t===Bt?r:t}function Ot(t,e){var r;if(r=null!=t){r=t;var n;n=C(e,r);for(var o=-1,c=n.length,u=false;++o<c;){var i=lt(n[o]);if(!(u=null!=r&&null!=r&&i in Object(r)))break;
+r=r[i]}u||++o!=c?r=u:(c=null==r?0:r.length,r=!!c&&gt(c)&&ct(i,c)&&(Je(r)||He(r)))}return r}function St(t){if(jt(t))t=d(t);else if(at(t)){var e,r=[];for(e in Object(t))oe.call(t,e)&&"constructor"!=e&&r.push(e);t=r}else t=de(t);return t}function zt(t){if(jt(t))t=d(t,true);else if(vt(t)){var e,r=at(t),n=[];for(e in t)("constructor"!=e||!r&&oe.call(t,e))&&n.push(e);t=n}else{if(e=[],null!=t)for(r in Object(t))e.push(r);t=e}return t}function kt(t){return function(){return t}}function xt(t){return t}function Ft(t){
+return D(typeof t=="function"?t:k(t,1))}function It(t){return it(t)?f(lt(t)):P(t)}function Et(){return[]}function Ut(){return false}var Bt,Mt=1/0,Dt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$t=/^\w*$/,Lt=/^\./,Pt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Vt=/\\(\\)?/g,Rt=/\w*$/,Tt=/^\[object .+?Constructor\]$/,Ct=/^(?:0|[1-9]\d*)$/,Nt={};Nt["[object Float32Array]"]=Nt["[object Float64Array]"]=Nt["[object Int8Array]"]=Nt["[object Int16Array]"]=Nt["[object Int32Array]"]=Nt["[object Uint8Array]"]=Nt["[object Uint8ClampedArray]"]=Nt["[object Uint16Array]"]=Nt["[object Uint32Array]"]=true,
+Nt["[object Arguments]"]=Nt["[object Array]"]=Nt["[object ArrayBuffer]"]=Nt["[object Boolean]"]=Nt["[object DataView]"]=Nt["[object Date]"]=Nt["[object Error]"]=Nt["[object Function]"]=Nt["[object Map]"]=Nt["[object Number]"]=Nt["[object Object]"]=Nt["[object RegExp]"]=Nt["[object Set]"]=Nt["[object String]"]=Nt["[object WeakMap]"]=false;var Wt={};Wt["[object Arguments]"]=Wt["[object Array]"]=Wt["[object ArrayBuffer]"]=Wt["[object DataView]"]=Wt["[object Boolean]"]=Wt["[object Date]"]=Wt["[object Float32Array]"]=Wt["[object Float64Array]"]=Wt["[object Int8Array]"]=Wt["[object Int16Array]"]=Wt["[object Int32Array]"]=Wt["[object Map]"]=Wt["[object Number]"]=Wt["[object Object]"]=Wt["[object RegExp]"]=Wt["[object Set]"]=Wt["[object String]"]=Wt["[object Symbol]"]=Wt["[object Uint8Array]"]=Wt["[object Uint8ClampedArray]"]=Wt["[object Uint16Array]"]=Wt["[object Uint32Array]"]=true,
+Wt["[object Error]"]=Wt["[object Function]"]=Wt["[object WeakMap]"]=false;var Gt,qt=typeof global=="object"&&global&&global.Object===Object&&global,Ht=typeof self=="object"&&self&&self.Object===Object&&self,Jt=qt||Ht||Function("return this")(),Kt=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Qt=Kt&&typeof module=="object"&&module&&!module.nodeType&&module,Xt=Qt&&Qt.exports===Kt,Yt=Xt&&qt.process;t:{try{Gt=Yt&&Yt.binding&&Yt.binding("util");break t}catch(t){}Gt=void 0}var Zt=Gt&&Gt.isTypedArray,te=Array.prototype,ee=Object.prototype,re=Jt["__core-js_shared__"],ne=Function.prototype.toString,oe=ee.hasOwnProperty,ce=function(){
+var t=/[^.]+$/.exec(re&&re.keys&&re.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),ue=ee.toString,ie=RegExp("^"+ne.call(oe).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ae=Xt?Jt.Buffer:Bt,fe=Jt.Symbol,se=Jt.Uint8Array,le=ae?ae.a:Bt,be=b(Object.getPrototypeOf),he=Object.create,pe=ee.propertyIsEnumerable,ye=te.splice,je=fe?fe.toStringTag:Bt,_e=function(){try{var t=rt(Object,"defineProperty");return t({},"",{}),t}catch(t){}
+}(),ge=Object.getOwnPropertySymbols,ve=ae?ae.isBuffer:Bt,de=b(Object.keys),Ae=Math.max,we=Date.now,me=rt(Jt,"DataView"),Oe=rt(Jt,"Map"),Se=rt(Jt,"Promise"),ze=rt(Jt,"Set"),ke=rt(Jt,"WeakMap"),xe=rt(Object,"create"),Fe=bt(me),Ie=bt(Oe),Ee=bt(Se),Ue=bt(ze),Be=bt(ke),Me=fe?fe.prototype:Bt,De=Me?Me.valueOf:Bt,$e=Me?Me.toString:Bt,Le=function(){function t(){}return function(e){return vt(e)?he?he(e):(t.prototype=e,e=new t,t.prototype=Bt,e):{}}}();y.prototype.clear=function(){this.__data__=xe?xe(null):{},
+this.size=0},y.prototype.delete=function(t){return t=this.has(t)&&delete this.__data__[t],this.size-=t?1:0,t},y.prototype.get=function(t){var e=this.__data__;return xe?(t=e[t],"__lodash_hash_undefined__"===t?Bt:t):oe.call(e,t)?e[t]:Bt},y.prototype.has=function(t){var e=this.__data__;return xe?e[t]!==Bt:oe.call(e,t)},y.prototype.set=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=xe&&e===Bt?"__lodash_hash_undefined__":e,this},j.prototype.clear=function(){this.__data__=[],this.size=0;
+},j.prototype.delete=function(t){var e=this.__data__;return t=w(e,t),!(0>t)&&(t==e.length-1?e.pop():ye.call(e,t,1),--this.size,true)},j.prototype.get=function(t){var e=this.__data__;return t=w(e,t),0>t?Bt:e[t][1]},j.prototype.has=function(t){return-1<w(this.__data__,t)},j.prototype.set=function(t,e){var r=this.__data__,n=w(r,t);return 0>n?(++this.size,r.push([t,e])):r[n][1]=e,this},_.prototype.clear=function(){this.size=0,this.__data__={hash:new y,map:new(Oe||j),string:new y}},_.prototype.delete=function(t){
+return t=tt(this,t).delete(t),this.size-=t?1:0,t},_.prototype.get=function(t){return tt(this,t).get(t)},_.prototype.has=function(t){return tt(this,t).has(t)},_.prototype.set=function(t,e){var r=tt(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this},g.prototype.add=g.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},g.prototype.has=function(t){return this.__data__.has(t)},v.prototype.clear=function(){this.__data__=new j,this.size=0},v.prototype.delete=function(t){
+var e=this.__data__;return t=e.delete(t),this.size=e.size,t},v.prototype.get=function(t){return this.__data__.get(t)},v.prototype.has=function(t){return this.__data__.has(t)},v.prototype.set=function(t,e){var r=this.__data__;if(r instanceof j){var n=r.__data__;if(!Oe||199>n.length)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new _(n)}return r.set(t,e),this.size=r.size,this};var Pe=function(t,e){return function(r,n){if(null==r)return r;if(!jt(r))return t(r,n);for(var o=r.length,c=e?o:-1,u=Object(r);(e?c--:++c<o)&&false!==n(u[c],c,u););
+return r}}(function(t,e){return t&&Ve(t,e,St)}),Ve=function(t){return function(e,r,n){var o=-1,c=Object(e);n=n(e);for(var u=n.length;u--;){var i=n[t?u:++o];if(false===r(c[i],i,c))break}return e}}(),Re=_e?function(t,e){return _e(t,"toString",{configurable:true,enumerable:false,value:kt(e),writable:true})}:xt,Te=ge?function(t){return null==t?[]:(t=Object(t),c(ge(t),function(e){return pe.call(t,e)}))}:Et,Ce=ge?function(t){for(var e=[];t;)u(e,Te(t)),t=be(t);return e}:Et,Ne=I;(me&&"[object DataView]"!=Ne(new me(new ArrayBuffer(1)))||Oe&&"[object Map]"!=Ne(new Oe)||Se&&"[object Promise]"!=Ne(Se.resolve())||ze&&"[object Set]"!=Ne(new ze)||ke&&"[object WeakMap]"!=Ne(new ke))&&(Ne=function(t){
+var e=I(t);if(t=(t="[object Object]"==e?t.constructor:Bt)?bt(t):"")switch(t){case Fe:return"[object DataView]";case Ie:return"[object Map]";case Ee:return"[object Promise]";case Ue:return"[object Set]";case Be:return"[object WeakMap]"}return e});var We=function(t){var e=0,r=0;return function(){var n=we(),o=16-(n-r);if(r=n,0<o){if(800<=++e)return arguments[0]}else e=0;return t.apply(Bt,arguments)}}(Re),Ge=function(t){t=pt(t,function(t){return 500===e.size&&e.clear(),t});var e=t.cache;return t}(function(t){
+var e=[];return Lt.test(t)&&e.push(""),t.replace(Pt,function(t,r,n,o){e.push(n?o.replace(Vt,"$1"):r||t)}),e}),qe=function(t,e){return function(r,o){var c=Je(r)?n:m,u=e?e():{};return c(r,t,Z(o,2),u)}}(function(t,e,r){oe.call(t,r)?t[r].push(e):z(t,r,[e])});pt.Cache=_;var He=E(function(){return arguments}())?E:function(t){return dt(t)&&oe.call(t,"callee")&&!pe.call(t,"callee")},Je=Array.isArray,Ke=ve||Ut,Qe=Zt?s(Zt):M,Xe=function(t){return V(function(e,r){var n=-1,o=r.length,c=1<o?r[o-1]:Bt,u=2<o?r[2]:Bt,c=3<t.length&&typeof c=="function"?(o--,
+c):Bt;for(u&&ut(r[0],r[1],u)&&(c=3>o?Bt:c,o=1),e=Object(e);++n<o;)(u=r[n])&&t(e,u,n,c);return e})}(function(t,e){q(e,zt(e),t)});p.assignIn=Xe,p.constant=kt,p.groupBy=qe,p.iteratee=Ft,p.keys=St,p.keysIn=zt,p.memoize=pt,p.property=It,p.extend=Xe,p.eq=yt,p.forEach=ht,p.get=mt,p.hasIn=Ot,p.identity=xt,p.isArguments=He,p.isArray=Je,p.isArrayLike=jt,p.isBuffer=Ke,p.isFunction=_t,p.isLength=gt,p.isObject=vt,p.isObjectLike=dt,p.isSymbol=At,p.isTypedArray=Qe,p.stubArray=Et,p.stubFalse=Ut,p.some=function(t,e,r){
+var n=Je(t)?a:R;return r&&ut(t,e,r)&&(e=Bt),n(t,Z(e,3))},p.toString=wt,p.each=ht,p.VERSION="4.17.4",typeof define=="function"&&typeof define.amd=="object"&&define.amd&& define(function(){return p})}).call(this);
\ No newline at end of file
diff --git a/apidoc/vendor/path-to-regexp/LICENSE b/apidoc/vendor/path-to-regexp/LICENSE
new file mode 100644 (file)
index 0000000..983fbe8
--- /dev/null
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/apidoc/vendor/path-to-regexp/index.js b/apidoc/vendor/path-to-regexp/index.js
new file mode 100644 (file)
index 0000000..5cb8ed8
--- /dev/null
@@ -0,0 +1,204 @@
+var isArray = Array.isArray || function (arr) {
+  return Object.prototype.toString.call(arr) == '[object Array]';
+};
+
+/**
+ * Expose `pathToRegexp`.
+ */
+// module.exports = pathToRegexp
+
+/**
+ * The main path matching regexp utility.
+ *
+ * @type {RegExp}
+ */
+var PATH_REGEXP = new RegExp([
+  // Match escaped characters that would otherwise appear in future matches.
+  // This allows the user to escape special characters that won't transform.
+  '(\\\\.)',
+  // Match Express-style parameters and un-named parameters with a prefix
+  // and optional suffixes. Matches appear as:
+  //
+  // "/:test(\\d+)?" => ["/", "test", "\d+", undefined, "?"]
+  // "/route(\\d+)" => [undefined, undefined, undefined, "\d+", undefined]
+  '([\\/.])?(?:\\:(\\w+)(?:\\(((?:\\\\.|[^)])*)\\))?|\\(((?:\\\\.|[^)])*)\\))([+*?])?',
+  // Match regexp special characters that are always escaped.
+  '([.+*?=^!:${}()[\\]|\\/])'
+].join('|'), 'g');
+
+/**
+ * Escape the capturing group by escaping special characters and meaning.
+ *
+ * @param  {String} group
+ * @return {String}
+ */
+function escapeGroup (group) {
+  return group.replace(/([=!:$\/()])/g, '\\$1');
+}
+
+/**
+ * Attach the keys as a property of the regexp.
+ *
+ * @param  {RegExp} re
+ * @param  {Array}  keys
+ * @return {RegExp}
+ */
+function attachKeys (re, keys) {
+  re.keys = keys;
+  return re;
+}
+
+/**
+ * Get the flags for a regexp from the options.
+ *
+ * @param  {Object} options
+ * @return {String}
+ */
+function flags (options) {
+  return options.sensitive ? '' : 'i';
+}
+
+/**
+ * Pull out keys from a regexp.
+ *
+ * @param  {RegExp} path
+ * @param  {Array}  keys
+ * @return {RegExp}
+ */
+function regexpToRegexp (path, keys) {
+  // Use a negative lookahead to match only capturing groups.
+  var groups = path.source.match(/\((?!\?)/g);
+
+  if (groups) {
+    for (var i = 0; i < groups.length; i++) {
+      keys.push({
+        name:      i,
+        delimiter: null,
+        optional:  false,
+        repeat:    false
+      });
+    }
+  }
+
+  return attachKeys(path, keys);
+}
+
+/**
+ * Transform an array into a regexp.
+ *
+ * @param  {Array}  path
+ * @param  {Array}  keys
+ * @param  {Object} options
+ * @return {RegExp}
+ */
+function arrayToRegexp (path, keys, options) {
+  var parts = [];
+
+  for (var i = 0; i < path.length; i++) {
+    parts.push(pathToRegexp(path[i], keys, options).source);
+  }
+
+  var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));
+  return attachKeys(regexp, keys);
+}
+
+/**
+ * Replace the specific tags with regexp strings.
+ *
+ * @param  {String} path
+ * @param  {Array}  keys
+ * @return {String}
+ */
+function replacePath (path, keys) {
+  var index = 0;
+
+  function replace (_, escaped, prefix, key, capture, group, suffix, escape) {
+    if (escaped) {
+      return escaped;
+    }
+
+    if (escape) {
+      return '\\' + escape;
+    }
+
+    var repeat   = suffix === '+' || suffix === '*';
+    var optional = suffix === '?' || suffix === '*';
+
+    keys.push({
+      name:      key || index++,
+      delimiter: prefix || '/',
+      optional:  optional,
+      repeat:    repeat
+    });
+
+    prefix = prefix ? ('\\' + prefix) : '';
+    capture = escapeGroup(capture || group || '[^' + (prefix || '\\/') + ']+?');
+
+    if (repeat) {
+      capture = capture + '(?:' + prefix + capture + ')*';
+    }
+
+    if (optional) {
+      return '(?:' + prefix + '(' + capture + '))?';
+    }
+
+    // Basic parameter support.
+    return prefix + '(' + capture + ')';
+  }
+
+  return path.replace(PATH_REGEXP, replace);
+}
+
+/**
+ * Normalize the given path string, returning a regular expression.
+ *
+ * An empty array can be passed in for the keys, which will hold the
+ * placeholder key descriptions. For example, using `/user/:id`, `keys` will
+ * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.
+ *
+ * @param  {(String|RegExp|Array)} path
+ * @param  {Array}                 [keys]
+ * @param  {Object}                [options]
+ * @return {RegExp}
+ */
+function pathToRegexp (path, keys, options) {
+  keys = keys || [];
+
+  if (!isArray(keys)) {
+    options = keys;
+    keys = [];
+  } else if (!options) {
+    options = {};
+  }
+
+  if (path instanceof RegExp) {
+    return regexpToRegexp(path, keys, options);
+  }
+
+  if (isArray(path)) {
+    return arrayToRegexp(path, keys, options);
+  }
+
+  var strict = options.strict;
+  var end = options.end !== false;
+  var route = replacePath(path, keys);
+  var endsWithSlash = path.charAt(path.length - 1) === '/';
+
+  // In non-strict mode we allow a slash at the end of match. If the path to
+  // match already ends with a slash, we remove it for consistency. The slash
+  // is valid at the end of a path match, not in the middle. This is important
+  // in non-ending mode, where "/test/" shouldn't match "/test//route".
+  if (!strict) {
+    route = (endsWithSlash ? route.slice(0, -2) : route) + '(?:\\/(?=$))?';
+  }
+
+  if (end) {
+    route += '$';
+  } else {
+    // In non-ending mode, we need the capturing groups to match as much as
+    // possible by using a positive lookahead to the end or next path segment.
+    route += strict && endsWithSlash ? '' : '(?=\\/|$)';
+  }
+
+  return attachKeys(new RegExp('^' + route, flags(options)), keys);
+}
diff --git a/apidoc/vendor/polyfill.js b/apidoc/vendor/polyfill.js
new file mode 100644 (file)
index 0000000..1d8c61c
--- /dev/null
@@ -0,0 +1,96 @@
+// From https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
+if (!Object.keys) {
+  Object.keys = (function () {
+    'use strict';
+    var hasOwnProperty = Object.prototype.hasOwnProperty,
+        hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
+        dontEnums = [
+          'toString',
+          'toLocaleString',
+          'valueOf',
+          'hasOwnProperty',
+          'isPrototypeOf',
+          'propertyIsEnumerable',
+          'constructor'
+        ],
+        dontEnumsLength = dontEnums.length;
+
+    return function (obj) {
+      if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
+        throw new TypeError('Object.keys called on non-object');
+      }
+
+      var result = [], prop, i;
+
+      for (prop in obj) {
+        if (hasOwnProperty.call(obj, prop)) {
+          result.push(prop);
+        }
+      }
+
+      if (hasDontEnumBug) {
+        for (i = 0; i < dontEnumsLength; i++) {
+          if (hasOwnProperty.call(obj, dontEnums[i])) {
+            result.push(dontEnums[i]);
+          }
+        }
+      }
+      return result;
+    };
+  }());
+}
+
+//Production steps of ECMA-262, Edition 5, 15.4.4.18
+//Reference: http://es5.github.com/#x15.4.4.18
+if (!Array.prototype.forEach) {
+  Array.prototype.forEach = function (callback, thisArg) {
+    var T, k;
+
+    if (this == null) {
+      throw new TypeError(' this is null or not defined');
+    }
+
+    // 1. Let O be the result of calling ToObject passing the |this| value as the argument.
+    var O = Object(this);
+
+    // 2. Let lenValue be the result of calling the Get internal method of O with the argument "length".
+    // 3. Let len be ToUint32(lenValue).
+    var len = O.length >>> 0;
+
+    // 4. If IsCallable(callback) is false, throw a TypeError exception.
+    // See: http://es5.github.com/#x9.11
+    if (typeof callback !== "function") {
+      throw new TypeError(callback + " is not a function");
+    }
+
+    // 5. If thisArg was supplied, let T be thisArg; else let T be undefined.
+    if (arguments.length > 1) {
+      T = thisArg;
+    }
+
+    // 6. Let k be 0
+    k = 0;
+
+    // 7. Repeat, while k < len
+    while (k < len) {
+      var kValue;
+
+      // a. Let Pk be ToString(k).
+      //   This is implicit for LHS operands of the in operator
+      // b. Let kPresent be the result of calling the HasProperty internal method of O with argument Pk.
+      //   This step can be combined with c
+      // c. If kPresent is true, then
+      if (k in O) {
+        // i. Let kValue be the result of calling the Get internal method of O with argument Pk.
+        kValue = O[k];
+
+        // ii. Call the Call internal method of callback with T as the this value and
+        // argument list containing kValue, k, and O.
+        callback.call(T, kValue, k, O);
+      }
+      // d. Increase k by 1.
+      k++;
+    }
+    // 8. return undefined
+  };
+}
diff --git a/apidoc/vendor/prettify.css b/apidoc/vendor/prettify.css
new file mode 100644 (file)
index 0000000..c54bf6b
--- /dev/null
@@ -0,0 +1,51 @@
+/* Pretty printing styles. Used with prettify.js. */
+/* Vim sunburst theme by David Leibovic */
+
+pre .str, code .str { color: #65B042; } /* string  - green */
+pre .kwd, code .kwd { color: #E28964; } /* keyword - dark pink */
+pre .com, code .com { color: #AEAEAE; font-style: italic; } /* comment - gray */
+pre .typ, code .typ { color: #89bdff; } /* type - light blue */
+pre .lit, code .lit { color: #3387CC; } /* literal - blue */
+pre .pun, code .pun { color: #fff; } /* punctuation - white */
+pre .pln, code .pln { color: #fff; } /* plaintext - white */
+pre .tag, code .tag { color: #89bdff; } /* html/xml tag    - light blue */
+pre .atn, code .atn { color: #bdb76b; } /* html/xml attribute name  - khaki */
+pre .atv, code .atv { color: #65B042; } /* html/xml attribute value - green */
+pre .dec, code .dec { color: #3387CC; } /* decimal - blue */
+
+pre.prettyprint, code.prettyprint {
+  background-color: #000;
+  -moz-border-radius: 8px;
+  -webkit-border-radius: 8px;
+  -o-border-radius: 8px;
+  -ms-border-radius: 8px;
+  -khtml-border-radius: 8px;
+  border-radius: 8px;
+}
+
+pre.prettyprint {
+  width: 95%;
+  margin: 1em auto;
+  padding: 1em;
+  white-space: pre-wrap;
+}
+
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums { margin-top: 0; margin-bottom: 0; color: #AEAEAE; } /* IE indents via margin-left */
+li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8 { list-style-type: none }
+/* Alternate shading for lines */
+li.L1,li.L3,li.L5,li.L7,li.L9 { }
+
+@media print {
+  pre .str, code .str { color: #060; }
+  pre .kwd, code .kwd { color: #006; font-weight: bold; }
+  pre .com, code .com { color: #600; font-style: italic; }
+  pre .typ, code .typ { color: #404; font-weight: bold; }
+  pre .lit, code .lit { color: #044; }
+  pre .pun, code .pun { color: #440; }
+  pre .pln, code .pln { color: #000; }
+  pre .tag, code .tag { color: #006; font-weight: bold; }
+  pre .atn, code .atn { color: #404; }
+  pre .atv, code .atv { color: #060; }
+}
diff --git a/apidoc/vendor/prettify/lang-Splus.js b/apidoc/vendor/prettify/lang-Splus.js
new file mode 100644 (file)
index 0000000..6ce16e8
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2012 Jeffrey B. Arnold
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\'(?:[^\'\\]|\\[\s\S])*(?:\'|$)/,null,"'"]],[["com",/^#.*/],["kwd",/^(?:if|else|for|while|repeat|in|next|break|return|switch|function)(?![A-Za-z0-9_.])/],["lit",/^0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?/],["lit",/^[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?[Li]?/],["lit",/^(?:NULL|NA(?:_(?:integer|real|complex|character)_)?|Inf|TRUE|FALSE|NaN|\.\.(?:\.|[0-9]+))(?![A-Za-z0-9_.])/],
+["pun",/^(?:<<?-|->>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|\*|\+|\^|\/|!|%.*?%|=|~|\$|@|:{1,3}|[\[\](){};,?])/],["pln",/^(?:[A-Za-z]+[A-Za-z0-9_.]*|\.[a-zA-Z_][0-9a-zA-Z\._]*)(?![A-Za-z0-9_.])/],["str",/^`.+`/]]),["r","s","R","S","Splus"]);
diff --git a/apidoc/vendor/prettify/lang-aea.js b/apidoc/vendor/prettify/lang-aea.js
new file mode 100644 (file)
index 0000000..784ebb2
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2009 Onno Hommes.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\r\n]*/,null,"#"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/,
+null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["apollo","agc","aea"]);
diff --git a/apidoc/vendor/prettify/lang-agc.js b/apidoc/vendor/prettify/lang-agc.js
new file mode 100644 (file)
index 0000000..784ebb2
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2009 Onno Hommes.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\r\n]*/,null,"#"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/,
+null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["apollo","agc","aea"]);
diff --git a/apidoc/vendor/prettify/lang-apollo.js b/apidoc/vendor/prettify/lang-apollo.js
new file mode 100644 (file)
index 0000000..784ebb2
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2009 Onno Hommes.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["com",/^#[^\r\n]*/,null,"#"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:ADS|AD|AUG|BZF|BZMF|CAE|CAF|CA|CCS|COM|CS|DAS|DCA|DCOM|DCS|DDOUBL|DIM|DOUBLE|DTCB|DTCF|DV|DXCH|EDRUPT|EXTEND|INCR|INDEX|NDX|INHINT|LXCH|MASK|MSK|MP|MSU|NOOP|OVSK|QXCH|RAND|READ|RELINT|RESUME|RETURN|ROR|RXOR|SQUARE|SU|TCR|TCAA|OVSK|TCF|TC|TS|WAND|WOR|WRITE|XCH|XLQ|XXALQ|ZL|ZQ|ADD|ADZ|SUB|SUZ|MPY|MPR|MPZ|DVP|COM|ABS|CLA|CLZ|LDQ|STO|STQ|ALS|LLS|LRS|TRA|TSQ|TMI|TOV|AXT|TIX|DLY|INP|OUT)\s/,
+null],["typ",/^(?:-?GENADR|=MINUS|2BCADR|VN|BOF|MM|-?2CADR|-?[1-6]DNADR|ADRES|BBCON|[SE]?BANK\=?|BLOCK|BNKSUM|E?CADR|COUNT\*?|2?DEC\*?|-?DNCHAN|-?DNPTR|EQUALS|ERASE|MEMORY|2?OCT|REMADR|SETLOC|SUBRO|ORG|BSS|BES|SYN|EQU|DEFINE|END)\s/,null],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[!-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["apollo","agc","aea"]);
diff --git a/apidoc/vendor/prettify/lang-basic.js b/apidoc/vendor/prettify/lang-basic.js
new file mode 100644 (file)
index 0000000..2d6151d
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2013 Peter Kofler
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:"(?:[^\\"\r\n]|\\.)*(?:"|$))/,null,'"'],["pln",/^\s+/,null," \r\n\t\u00a0"]],[["com",/^REM[^\r\n]*/,null],["kwd",/^\b(?:AND|CLOSE|CLR|CMD|CONT|DATA|DEF ?FN|DIM|END|FOR|GET|GOSUB|GOTO|IF|INPUT|LET|LIST|LOAD|NEW|NEXT|NOT|ON|OPEN|OR|POKE|PRINT|READ|RESTORE|RETURN|RUN|SAVE|STEP|STOP|SYS|THEN|TO|VERIFY|WAIT)\b/,null],["pln",/^[A-Z][A-Z0-9]?(?:\$|%)?/i,null],["lit",/^(?:\d+(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?/i,
+null,"0123456789"],["pun",/^.[^\s\w\.$%"]*/,null]]),["basic","cbm"]);
diff --git a/apidoc/vendor/prettify/lang-cbm.js b/apidoc/vendor/prettify/lang-cbm.js
new file mode 100644 (file)
index 0000000..2d6151d
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2013 Peter Kofler
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:"(?:[^\\"\r\n]|\\.)*(?:"|$))/,null,'"'],["pln",/^\s+/,null," \r\n\t\u00a0"]],[["com",/^REM[^\r\n]*/,null],["kwd",/^\b(?:AND|CLOSE|CLR|CMD|CONT|DATA|DEF ?FN|DIM|END|FOR|GET|GOSUB|GOTO|IF|INPUT|LET|LIST|LOAD|NEW|NEXT|NOT|ON|OPEN|OR|POKE|PRINT|READ|RESTORE|RETURN|RUN|SAVE|STEP|STOP|SYS|THEN|TO|VERIFY|WAIT)\b/,null],["pln",/^[A-Z][A-Z0-9]?(?:\$|%)?/i,null],["lit",/^(?:\d+(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?/i,
+null,"0123456789"],["pun",/^.[^\s\w\.$%"]*/,null]]),["basic","cbm"]);
diff --git a/apidoc/vendor/prettify/lang-cl.js b/apidoc/vendor/prettify/lang-cl.js
new file mode 100644 (file)
index 0000000..2f18c96
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2008 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,
+null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" "));
diff --git a/apidoc/vendor/prettify/lang-clj.js b/apidoc/vendor/prettify/lang-clj.js
new file mode 100644 (file)
index 0000000..d1173b1
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+ Copyright (C) 2011 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["opn",/^[\(\{\[]+/,null,"([{"],["clo",/^[\)\}\]]+/,null,")]}"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:def|if|do|let|quote|var|fn|loop|recur|throw|try|monitor-enter|monitor-exit|defmacro|defn|defn-|macroexpand|macroexpand-1|for|doseq|dosync|dotimes|and|or|when|not|assert|doto|proxy|defstruct|first|rest|cons|defprotocol|deftype|defrecord|reify|defmulti|defmethod|meta|with-meta|ns|in-ns|create-ns|import|intern|refer|alias|namespace|resolve|ref|deref|refset|new|set!|memfn|to-array|into-array|aset|gen-class|reduce|map|filter|find|nil?|empty?|hash-map|hash-set|vec|vector|seq|flatten|reverse|assoc|dissoc|list|list?|disj|get|union|difference|intersection|extend|extend-type|extend-protocol|prn)\b/,
+null],["typ",/^:[0-9a-zA-Z\-]+/]]),["clj"]);
diff --git a/apidoc/vendor/prettify/lang-css.js b/apidoc/vendor/prettify/lang-css.js
new file mode 100644 (file)
index 0000000..90d175d
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2009 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[["str",/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],["str",/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']+)\)/i],["kwd",/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],
+["com",/^(?:\x3c!--|--\x3e)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#(?:[0-9a-f]{3}){1,2}\b/i],["pln",/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],["pun",/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^\)\"\']+/]]),["css-str"]);
diff --git a/apidoc/vendor/prettify/lang-dart.js b/apidoc/vendor/prettify/lang-dart.js
new file mode 100644 (file)
index 0000000..da142a4
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+
+ Copyright (C) 2013 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"]],[["com",/^#!(?:.*)/],["kwd",/^\b(?:import|library|part of|part|as|show|hide)\b/i],["com",/^\/\/(?:.*)/],["com",/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],["kwd",/^\b(?:class|interface)\b/i],["kwd",/^\b(?:assert|async|await|break|case|catch|continue|default|do|else|finally|for|if|in|is|new|return|super|switch|sync|this|throw|try|while)\b/i],["kwd",/^\b(?:abstract|const|extends|factory|final|get|implements|native|operator|set|static|typedef|var)\b/i],
+["typ",/^\b(?:bool|double|Dynamic|int|num|Object|String|void)\b/i],["kwd",/^\b(?:false|null|true)\b/i],["str",/^r?[\']{3}[\s|\S]*?[^\\][\']{3}/],["str",/^r?[\"]{3}[\s|\S]*?[^\\][\"]{3}/],["str",/^r?\'(\'|(?:[^\n\r\f])*?[^\\]\')/],["str",/^r?\"(\"|(?:[^\n\r\f])*?[^\\]\")/],["typ",/^[A-Z]\w*/],["pln",/^[a-z_$][a-z0-9_]*/i],["pun",/^[~!%^&*+=|?:<>/-]/],["lit",/^\b0x[0-9a-f]+/i],["lit",/^\b\d+(?:\.\d*)?(?:e[+-]?\d+)?/i],["lit",
+/^\b\.\d+(?:e[+-]?\d+)?/i],["pun",/^[(){}\[\],.;]/]]),["dart"]);
diff --git a/apidoc/vendor/prettify/lang-el.js b/apidoc/vendor/prettify/lang-el.js
new file mode 100644 (file)
index 0000000..2f18c96
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2008 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,
+null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" "));
diff --git a/apidoc/vendor/prettify/lang-erl.js b/apidoc/vendor/prettify/lang-erl.js
new file mode 100644 (file)
index 0000000..e7da9b0
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2013 Andrew Allen
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\x0B\x0C\r ]+/,null,"\t\n\x0B\f\r "],["str",/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],["lit",/^[a-z][a-zA-Z0-9_]*/],["lit",/^\'(?:[^\'\\\n\x0C\r]|\\[^&])+\'?/,null,"'"],["lit",/^\?[^ \t\n({]+/,null,"?"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[["com",/^%[^\n]*/],["kwd",/^(?:module|attributes|do|let|in|letrec|apply|call|primop|case|of|end|when|fun|try|catch|receive|after|char|integer|float,atom,string,var)\b/],
+["kwd",/^-[a-z_]+/],["typ",/^[A-Z_][a-zA-Z0-9_]*/],["pun",/^[.,;]/]]),["erlang","erl"]);
diff --git a/apidoc/vendor/prettify/lang-erlang.js b/apidoc/vendor/prettify/lang-erlang.js
new file mode 100644 (file)
index 0000000..e7da9b0
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2013 Andrew Allen
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\x0B\x0C\r ]+/,null,"\t\n\x0B\f\r "],["str",/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],["lit",/^[a-z][a-zA-Z0-9_]*/],["lit",/^\'(?:[^\'\\\n\x0C\r]|\\[^&])+\'?/,null,"'"],["lit",/^\?[^ \t\n({]+/,null,"?"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[["com",/^%[^\n]*/],["kwd",/^(?:module|attributes|do|let|in|letrec|apply|call|primop|case|of|end|when|fun|try|catch|receive|after|char|integer|float,atom,string,var)\b/],
+["kwd",/^-[a-z_]+/],["typ",/^[A-Z_][a-zA-Z0-9_]*/],["pun",/^[.,;]/]]),["erlang","erl"]);
diff --git a/apidoc/vendor/prettify/lang-fs.js b/apidoc/vendor/prettify/lang-fs.js
new file mode 100644 (file)
index 0000000..c012a3f
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2008 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])(?:\'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],
+["lit",/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],["pln",/^(?:[a-z_][\w']*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],["pun",/^[^\t\n\r \xA0\"\'\w]+/]]),["fs","ml"]);
diff --git a/apidoc/vendor/prettify/lang-go.js b/apidoc/vendor/prettify/lang-go.js
new file mode 100644 (file)
index 0000000..1f6934a
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+
+ Copyright (C) 2010 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["pln",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])+(?:\'|$)|`[^`]*(?:`|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\r\n]*|\/\*[\s\S]*?\*\/)/],["pln",/^(?:[^\/\"\'`]|\/(?![\/\*]))+/i]]),["go"]);
diff --git a/apidoc/vendor/prettify/lang-hs.js b/apidoc/vendor/prettify/lang-hs.js
new file mode 100644 (file)
index 0000000..2002221
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2009 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\x0B\x0C\r ]+/,null,"\t\n\x0B\f\r "],["str",/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\'(?:[^\'\\\n\x0C\r]|\\[^&])\'?/,null,"'"],["lit",/^(?:0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[["com",/^(?:(?:--+(?:[^\r\n\x0C]*)?)|(?:\{-(?:[^-]|-+[^-\}])*-\}))/],["kwd",/^(?:case|class|data|default|deriving|do|else|if|import|in|infix|infixl|infixr|instance|let|module|newtype|of|then|type|where|_)(?=[^a-zA-Z0-9\']|$)/,
+null],["pln",/^(?:[A-Z][\w\']*\.)*[a-zA-Z][\w\']*/],["pun",/^[^\t\n\x0B\x0C\r a-zA-Z0-9\'\"]+/]]),["hs"]);
diff --git a/apidoc/vendor/prettify/lang-lasso.js b/apidoc/vendor/prettify/lang-lasso.js
new file mode 100644 (file)
index 0000000..415ca67
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+
+ Copyright (C) 2013 Eric Knibbe
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\'(?:[^\'\\]|\\[\s\S])*(?:\'|$)/,null,"'"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\`[^\`]*(?:\`|$)/,null,"`"],["lit",/^0x[\da-f]+|\d+/i,null,"0123456789"],["atn",/^#\d+|[#$][a-z_][\w.]*|#![ \S]+lasso9\b/i,null,"#$"]],[["tag",/^[[\]]|<\?(?:lasso(?:script)?|=)|\?>|noprocess\b|no_square_brackets\b/i],["com",/^\/\/[^\r\n]*|\/\*[\s\S]*?\*\//],
+["atn",/^-(?!infinity)[a-z_][\w.]*|\.\s*'[a-z_][\w.]*'/i],["lit",/^\d*\.\d+(?:e[-+]?\d+)?|infinity\b|NaN\b/i],["atv",/^::\s*[a-z_][\w.]*/i],["lit",/^(?:true|false|none|minimal|full|all|void|and|or|not|bw|nbw|ew|new|cn|ncn|lt|lte|gt|gte|eq|neq|rx|nrx|ft)\b/i],["kwd",/^(?:error_code|error_msg|error_pop|error_push|error_reset|cache|database_names|database_schemanames|database_tablenames|define_tag|define_type|email_batch|encode_set|html_comment|handle|handle_error|header|if|inline|iterate|ljax_target|link|link_currentaction|link_currentgroup|link_currentrecord|link_detail|link_firstgroup|link_firstrecord|link_lastgroup|link_lastrecord|link_nextgroup|link_nextrecord|link_prevgroup|link_prevrecord|log|loop|namespace_using|output_none|portal|private|protect|records|referer|referrer|repeating|resultset|rows|search_args|search_arguments|select|sort_args|sort_arguments|thread_atomic|value_list|while|abort|case|else|if_empty|if_false|if_null|if_true|loop_abort|loop_continue|loop_count|params|params_up|return|return_value|run_children|soap_definetag|soap_lastrequest|soap_lastresponse|tag_name|ascending|average|by|define|descending|do|equals|frozen|group|handle_failure|import|in|into|join|let|match|max|min|on|order|parent|protected|provide|public|require|returnhome|skip|split_thread|sum|take|thread|to|trait|type|where|with|yield|yieldhome)\b/i],
+["typ",/^(?:array|date|decimal|duration|integer|map|pair|string|tag|xml|null|boolean|bytes|keyword|list|locale|queue|set|stack|staticarray|local|var|variable|global|data|self|inherited|currentcapture|givenblock)\b|^\.\.?/i],["pln",/^[a-z_][\w.]*(?:=\s*(?=\())?/i],["pun",/^:=|[-+*\/%=<>&|!?\\]/]]),["lasso","ls","lassoscript"]);
diff --git a/apidoc/vendor/prettify/lang-lassoscript.js b/apidoc/vendor/prettify/lang-lassoscript.js
new file mode 100644 (file)
index 0000000..415ca67
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+
+ Copyright (C) 2013 Eric Knibbe
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\'(?:[^\'\\]|\\[\s\S])*(?:\'|$)/,null,"'"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\`[^\`]*(?:\`|$)/,null,"`"],["lit",/^0x[\da-f]+|\d+/i,null,"0123456789"],["atn",/^#\d+|[#$][a-z_][\w.]*|#![ \S]+lasso9\b/i,null,"#$"]],[["tag",/^[[\]]|<\?(?:lasso(?:script)?|=)|\?>|noprocess\b|no_square_brackets\b/i],["com",/^\/\/[^\r\n]*|\/\*[\s\S]*?\*\//],
+["atn",/^-(?!infinity)[a-z_][\w.]*|\.\s*'[a-z_][\w.]*'/i],["lit",/^\d*\.\d+(?:e[-+]?\d+)?|infinity\b|NaN\b/i],["atv",/^::\s*[a-z_][\w.]*/i],["lit",/^(?:true|false|none|minimal|full|all|void|and|or|not|bw|nbw|ew|new|cn|ncn|lt|lte|gt|gte|eq|neq|rx|nrx|ft)\b/i],["kwd",/^(?:error_code|error_msg|error_pop|error_push|error_reset|cache|database_names|database_schemanames|database_tablenames|define_tag|define_type|email_batch|encode_set|html_comment|handle|handle_error|header|if|inline|iterate|ljax_target|link|link_currentaction|link_currentgroup|link_currentrecord|link_detail|link_firstgroup|link_firstrecord|link_lastgroup|link_lastrecord|link_nextgroup|link_nextrecord|link_prevgroup|link_prevrecord|log|loop|namespace_using|output_none|portal|private|protect|records|referer|referrer|repeating|resultset|rows|search_args|search_arguments|select|sort_args|sort_arguments|thread_atomic|value_list|while|abort|case|else|if_empty|if_false|if_null|if_true|loop_abort|loop_continue|loop_count|params|params_up|return|return_value|run_children|soap_definetag|soap_lastrequest|soap_lastresponse|tag_name|ascending|average|by|define|descending|do|equals|frozen|group|handle_failure|import|in|into|join|let|match|max|min|on|order|parent|protected|provide|public|require|returnhome|skip|split_thread|sum|take|thread|to|trait|type|where|with|yield|yieldhome)\b/i],
+["typ",/^(?:array|date|decimal|duration|integer|map|pair|string|tag|xml|null|boolean|bytes|keyword|list|locale|queue|set|stack|staticarray|local|var|variable|global|data|self|inherited|currentcapture|givenblock)\b|^\.\.?/i],["pln",/^[a-z_][\w.]*(?:=\s*(?=\())?/i],["pun",/^:=|[-+*\/%=<>&|!?\\]/]]),["lasso","ls","lassoscript"]);
diff --git a/apidoc/vendor/prettify/lang-latex.js b/apidoc/vendor/prettify/lang-latex.js
new file mode 100644 (file)
index 0000000..efc758c
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+
+ Copyright (C) 2011 Martin S.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\r\n]*/,null,"%"]],[["kwd",/^\\[a-zA-Z@]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[{}()\[\]=]+/]]),["latex","tex"]);
diff --git a/apidoc/vendor/prettify/lang-lgt.js b/apidoc/vendor/prettify/lang-lgt.js
new file mode 100644 (file)
index 0000000..2959d75
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2014 Paulo Moura
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["str",/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],["lit",/^[a-z][a-zA-Z0-9_]*/],["lit",/^\'(?:[^\'\\\n\x0C\r]|\\[^&])+\'?/,null,"'"],["lit",/^(?:0'.|0b[0-1]+|0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[["com",/^%[^\r\n]*/,null,"%"],["com",/^\/\*[\s\S]*?\*\//],["kwd",/^\s*:-\s(c(a(lls|tegory)|oinductive)|p(ublic|r(ot(ocol|ected)|ivate))|e(l(if|se)|n(coding|sure_loaded)|xport)|i(f|n(clude|itialization|fo))|alias|d(ynamic|iscontiguous)|m(eta_(non_terminal|predicate)|od(e|ule)|ultifile)|reexport|s(et_(logtalk|prolog)_flag|ynchronized)|o(bject|p)|use(s|_module))/],
+["kwd",/^\s*:-\s(e(lse|nd(if|_(category|object|protocol)))|built_in|dynamic|synchronized|threaded)/],["typ",/^[A-Z_][a-zA-Z0-9_]*/],["pun",/^[.,;{}:^<>=\\/+*?#!-]/]]),["logtalk","lgt"]);
diff --git a/apidoc/vendor/prettify/lang-lisp.js b/apidoc/vendor/prettify/lang-lisp.js
new file mode 100644 (file)
index 0000000..2f18c96
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2008 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,
+null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" "));
diff --git a/apidoc/vendor/prettify/lang-ll.js b/apidoc/vendor/prettify/lang-ll.js
new file mode 100644 (file)
index 0000000..7604d96
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+
+ Copyright (C) 2013 Nikhil Dabas
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^!?\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["com",/^;[^\r\n]*/,null,";"]],[["pln",/^[%@!](?:[-a-zA-Z$._][-a-zA-Z$._0-9]*|\d+)/],["kwd",/^[A-Za-z_][0-9A-Za-z_]*/,null],["lit",/^\d+\.\d+/],["lit",/^(?:\d+|0[xX][a-fA-F0-9]+)/],["pun",/^[()\[\]{},=*<>:]|\.\.\.$/]]),["llvm","ll"]);
diff --git a/apidoc/vendor/prettify/lang-llvm.js b/apidoc/vendor/prettify/lang-llvm.js
new file mode 100644 (file)
index 0000000..7604d96
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+
+ Copyright (C) 2013 Nikhil Dabas
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^!?\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["com",/^;[^\r\n]*/,null,";"]],[["pln",/^[%@!](?:[-a-zA-Z$._][-a-zA-Z$._0-9]*|\d+)/],["kwd",/^[A-Za-z_][0-9A-Za-z_]*/,null],["lit",/^\d+\.\d+/],["lit",/^(?:\d+|0[xX][a-fA-F0-9]+)/],["pun",/^[()\[\]{},=*<>:]|\.\.\.$/]]),["llvm","ll"]);
diff --git a/apidoc/vendor/prettify/lang-logtalk.js b/apidoc/vendor/prettify/lang-logtalk.js
new file mode 100644 (file)
index 0000000..2959d75
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2014 Paulo Moura
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["str",/^\"(?:[^\"\\\n\x0C\r]|\\[\s\S])*(?:\"|$)/,null,'"'],["lit",/^[a-z][a-zA-Z0-9_]*/],["lit",/^\'(?:[^\'\\\n\x0C\r]|\\[^&])+\'?/,null,"'"],["lit",/^(?:0'.|0b[0-1]+|0o[0-7]+|0x[\da-f]+|\d+(?:\.\d+)?(?:e[+\-]?\d+)?)/i,null,"0123456789"]],[["com",/^%[^\r\n]*/,null,"%"],["com",/^\/\*[\s\S]*?\*\//],["kwd",/^\s*:-\s(c(a(lls|tegory)|oinductive)|p(ublic|r(ot(ocol|ected)|ivate))|e(l(if|se)|n(coding|sure_loaded)|xport)|i(f|n(clude|itialization|fo))|alias|d(ynamic|iscontiguous)|m(eta_(non_terminal|predicate)|od(e|ule)|ultifile)|reexport|s(et_(logtalk|prolog)_flag|ynchronized)|o(bject|p)|use(s|_module))/],
+["kwd",/^\s*:-\s(e(lse|nd(if|_(category|object|protocol)))|built_in|dynamic|synchronized|threaded)/],["typ",/^[A-Z_][a-zA-Z0-9_]*/],["pun",/^[.,;{}:^<>=\\/+*?#!-]/]]),["logtalk","lgt"]);
diff --git a/apidoc/vendor/prettify/lang-ls.js b/apidoc/vendor/prettify/lang-ls.js
new file mode 100644 (file)
index 0000000..415ca67
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+
+ Copyright (C) 2013 Eric Knibbe
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\'(?:[^\'\\]|\\[\s\S])*(?:\'|$)/,null,"'"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\`[^\`]*(?:\`|$)/,null,"`"],["lit",/^0x[\da-f]+|\d+/i,null,"0123456789"],["atn",/^#\d+|[#$][a-z_][\w.]*|#![ \S]+lasso9\b/i,null,"#$"]],[["tag",/^[[\]]|<\?(?:lasso(?:script)?|=)|\?>|noprocess\b|no_square_brackets\b/i],["com",/^\/\/[^\r\n]*|\/\*[\s\S]*?\*\//],
+["atn",/^-(?!infinity)[a-z_][\w.]*|\.\s*'[a-z_][\w.]*'/i],["lit",/^\d*\.\d+(?:e[-+]?\d+)?|infinity\b|NaN\b/i],["atv",/^::\s*[a-z_][\w.]*/i],["lit",/^(?:true|false|none|minimal|full|all|void|and|or|not|bw|nbw|ew|new|cn|ncn|lt|lte|gt|gte|eq|neq|rx|nrx|ft)\b/i],["kwd",/^(?:error_code|error_msg|error_pop|error_push|error_reset|cache|database_names|database_schemanames|database_tablenames|define_tag|define_type|email_batch|encode_set|html_comment|handle|handle_error|header|if|inline|iterate|ljax_target|link|link_currentaction|link_currentgroup|link_currentrecord|link_detail|link_firstgroup|link_firstrecord|link_lastgroup|link_lastrecord|link_nextgroup|link_nextrecord|link_prevgroup|link_prevrecord|log|loop|namespace_using|output_none|portal|private|protect|records|referer|referrer|repeating|resultset|rows|search_args|search_arguments|select|sort_args|sort_arguments|thread_atomic|value_list|while|abort|case|else|if_empty|if_false|if_null|if_true|loop_abort|loop_continue|loop_count|params|params_up|return|return_value|run_children|soap_definetag|soap_lastrequest|soap_lastresponse|tag_name|ascending|average|by|define|descending|do|equals|frozen|group|handle_failure|import|in|into|join|let|match|max|min|on|order|parent|protected|provide|public|require|returnhome|skip|split_thread|sum|take|thread|to|trait|type|where|with|yield|yieldhome)\b/i],
+["typ",/^(?:array|date|decimal|duration|integer|map|pair|string|tag|xml|null|boolean|bytes|keyword|list|locale|queue|set|stack|staticarray|local|var|variable|global|data|self|inherited|currentcapture|givenblock)\b|^\.\.?/i],["pln",/^[a-z_][\w.]*(?:=\s*(?=\())?/i],["pun",/^:=|[-+*\/%=<>&|!?\\]/]]),["lasso","ls","lassoscript"]);
diff --git a/apidoc/vendor/prettify/lang-lsp.js b/apidoc/vendor/prettify/lang-lsp.js
new file mode 100644 (file)
index 0000000..2f18c96
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2008 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,
+null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" "));
diff --git a/apidoc/vendor/prettify/lang-lua.js b/apidoc/vendor/prettify/lang-lua.js
new file mode 100644 (file)
index 0000000..afb2901
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2008 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])*(?:\'|$))/,null,"\"'"]],[["com",/^--(?:\[(=*)\[[\s\S]*?(?:\]\1\]|$)|[^\r\n]*)/],["str",/^\[(=*)\[[\s\S]*?(?:\]\1\]|$)/],["kwd",/^(?:and|break|do|else|elseif|end|false|for|function|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,null],["lit",/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],
+["pln",/^[a-z_]\w*/i],["pun",/^[^\w\t\n\r \xA0][^\w\t\n\r \xA0\"\'\-\+=]*/]]),["lua"]);
diff --git a/apidoc/vendor/prettify/lang-matlab.js b/apidoc/vendor/prettify/lang-matlab.js
new file mode 100644 (file)
index 0000000..a0522a5
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+
+ Copyright (c) 2013 by Amro <amroamroamro@gmail.com>
+
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ THE SOFTWARE.
+*/
+var a=window.PR,b=[[a.PR_PLAIN,/^[ \t\r\n\v\f\xA0]+/,null," \t\r\n\x0B\f\u00a0"],[a.PR_COMMENT,/^%\{[^%]*%+(?:[^\}%][^%]*%+)*\}/,null],[a.PR_COMMENT,/^%[^\r\n]*/,null,"%"],["syscmd",/^![^\r\n]*/,null,"!"]],c=[["linecont",/^\.\.\.\s*[\r\n]/,null],["err",/^\?\?\? [^\r\n]*/,null],["wrn",/^Warning: [^\r\n]*/,null],["codeoutput",/^>>\s+/,null],["codeoutput",/^octave:\d+>\s+/,null],["lang-matlab-operators",/^((?:[a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*|\)|\]|\}|\.)')/,null],["lang-matlab-identifiers",
+/^([a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*)(?!')/,null],[a.PR_STRING,/^'(?:[^']|'')*'/,null],[a.PR_LITERAL,/^[+\-]?\.?\d+(?:\.\d*)?(?:[Ee][+\-]?\d+)?[ij]?/,null],[a.PR_TAG,/^(?:\{|\}|\(|\)|\[|\])/,null],[a.PR_PUNCTUATION,/^(?:<|>|=|~|@|&|;|,|:|!|\-|\+|\*|\^|\.|\||\\|\/)/,null]],d=[["lang-matlab-identifiers",/^([a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*)/,null],[a.PR_TAG,/^(?:\{|\}|\(|\)|\[|\])/,null],[a.PR_PUNCTUATION,/^(?:<|>|=|~|@|&|;|,|:|!|\-|\+|\*|\^|\.|\||\\|\/)/,null],["transpose",
+/^'/,null]];
+a.registerLangHandler(a.createSimpleLexer([],[[a.PR_KEYWORD,/^\b(?:break|case|catch|classdef|continue|else|elseif|end|for|function|global|if|otherwise|parfor|persistent|return|spmd|switch|try|while)\b/,null],["const",/^\b(?:true|false|inf|Inf|nan|NaN|eps|pi|ans|nargin|nargout|varargin|varargout)\b/,null],[a.PR_TYPE,/^\b(?:cell|struct|char|double|single|logical|u?int(?:8|16|32|64)|sparse)\b/,null],["fun",/^\b(?:abs|accumarray|acos(?:d|h)?|acot(?:d|h)?|acsc(?:d|h)?|actxcontrol(?:list|select)?|actxGetRunningServer|actxserver|addlistener|addpath|addpref|addtodate|airy|align|alim|all|allchild|alpha|alphamap|amd|ancestor|and|angle|annotation|any|area|arrayfun|asec(?:d|h)?|asin(?:d|h)?|assert|assignin|atan(?:2|d|h)?|audiodevinfo|audioplayer|audiorecorder|aufinfo|auread|autumn|auwrite|avifile|aviinfo|aviread|axes|axis|balance|bar(?:3|3h|h)?|base2dec|beep|BeginInvoke|bench|bessel(?:h|i|j|k|y)|beta|betainc|betaincinv|betaln|bicg|bicgstab|bicgstabl|bin2dec|bitand|bitcmp|bitget|bitmax|bitnot|bitor|bitset|bitshift|bitxor|blanks|blkdiag|bone|box|brighten|brush|bsxfun|builddocsearchdb|builtin|bvp4c|bvp5c|bvpget|bvpinit|bvpset|bvpxtend|calendar|calllib|callSoapService|camdolly|cameratoolbar|camlight|camlookat|camorbit|campan|campos|camproj|camroll|camtarget|camup|camva|camzoom|cart2pol|cart2sph|cast|cat|caxis|cd|cdf2rdf|cdfepoch|cdfinfo|cdflib(?:.(?:close|closeVar|computeEpoch|computeEpoch16|create|createAttr|createVar|delete|deleteAttr|deleteAttrEntry|deleteAttrgEntry|deleteVar|deleteVarRecords|epoch16Breakdown|epochBreakdown|getAttrEntry|getAttrgEntry|getAttrMaxEntry|getAttrMaxgEntry|getAttrName|getAttrNum|getAttrScope|getCacheSize|getChecksum|getCompression|getCompressionCacheSize|getConstantNames|getConstantValue|getCopyright|getFileBackward|getFormat|getLibraryCopyright|getLibraryVersion|getMajority|getName|getNumAttrEntries|getNumAttrgEntries|getNumAttributes|getNumgAttributes|getReadOnlyMode|getStageCacheSize|getValidate|getVarAllocRecords|getVarBlockingFactor|getVarCacheSize|getVarCompression|getVarData|getVarMaxAllocRecNum|getVarMaxWrittenRecNum|getVarName|getVarNum|getVarNumRecsWritten|getVarPadValue|getVarRecordData|getVarReservePercent|getVarsMaxWrittenRecNum|getVarSparseRecords|getVersion|hyperGetVarData|hyperPutVarData|inquire|inquireAttr|inquireAttrEntry|inquireAttrgEntry|inquireVar|open|putAttrEntry|putAttrgEntry|putVarData|putVarRecordData|renameAttr|renameVar|setCacheSize|setChecksum|setCompression|setCompressionCacheSize|setFileBackward|setFormat|setMajority|setReadOnlyMode|setStageCacheSize|setValidate|setVarAllocBlockRecords|setVarBlockingFactor|setVarCacheSize|setVarCompression|setVarInitialRecs|setVarPadValue|SetVarReservePercent|setVarsCacheSize|setVarSparseRecords))?|cdfread|cdfwrite|ceil|cell2mat|cell2struct|celldisp|cellfun|cellplot|cellstr|cgs|checkcode|checkin|checkout|chol|cholinc|cholupdate|circshift|cla|clabel|class|clc|clear|clearvars|clf|clipboard|clock|close|closereq|cmopts|cmpermute|cmunique|colamd|colon|colorbar|colordef|colormap|colormapeditor|colperm|Combine|comet|comet3|commandhistory|commandwindow|compan|compass|complex|computer|cond|condeig|condest|coneplot|conj|containers.Map|contour(?:3|c|f|slice)?|contrast|conv|conv2|convhull|convhulln|convn|cool|copper|copyfile|copyobj|corrcoef|cos(?:d|h)?|cot(?:d|h)?|cov|cplxpair|cputime|createClassFromWsdl|createSoapMessage|cross|csc(?:d|h)?|csvread|csvwrite|ctranspose|cumprod|cumsum|cumtrapz|curl|customverctrl|cylinder|daqread|daspect|datacursormode|datatipinfo|date|datenum|datestr|datetick|datevec|dbclear|dbcont|dbdown|dblquad|dbmex|dbquit|dbstack|dbstatus|dbstep|dbstop|dbtype|dbup|dde23|ddeget|ddesd|ddeset|deal|deblank|dec2base|dec2bin|dec2hex|decic|deconv|del2|delaunay|delaunay3|delaunayn|DelaunayTri|delete|demo|depdir|depfun|det|detrend|deval|diag|dialog|diary|diff|diffuse|dir|disp|display|dither|divergence|dlmread|dlmwrite|dmperm|doc|docsearch|dos|dot|dragrect|drawnow|dsearch|dsearchn|dynamicprops|echo|echodemo|edit|eig|eigs|ellipj|ellipke|ellipsoid|empty|enableNETfromNetworkDrive|enableservice|EndInvoke|enumeration|eomday|eq|erf|erfc|erfcinv|erfcx|erfinv|error|errorbar|errordlg|etime|etree|etreeplot|eval|evalc|evalin|event.(?:EventData|listener|PropertyEvent|proplistener)|exifread|exist|exit|exp|expint|expm|expm1|export2wsdlg|eye|ezcontour|ezcontourf|ezmesh|ezmeshc|ezplot|ezplot3|ezpolar|ezsurf|ezsurfc|factor|factorial|fclose|feather|feature|feof|ferror|feval|fft|fft2|fftn|fftshift|fftw|fgetl|fgets|fieldnames|figure|figurepalette|fileattrib|filebrowser|filemarker|fileparts|fileread|filesep|fill|fill3|filter|filter2|find|findall|findfigs|findobj|findstr|finish|fitsdisp|fitsinfo|fitsread|fitswrite|fix|flag|flipdim|fliplr|flipud|floor|flow|fminbnd|fminsearch|fopen|format|fplot|fprintf|frame2im|fread|freqspace|frewind|fscanf|fseek|ftell|FTP|full|fullfile|func2str|functions|funm|fwrite|fzero|gallery|gamma|gammainc|gammaincinv|gammaln|gca|gcbf|gcbo|gcd|gcf|gco|ge|genpath|genvarname|get|getappdata|getenv|getfield|getframe|getpixelposition|getpref|ginput|gmres|gplot|grabcode|gradient|gray|graymon|grid|griddata(?:3|n)?|griddedInterpolant|gsvd|gt|gtext|guidata|guide|guihandles|gunzip|gzip|h5create|h5disp|h5info|h5read|h5readatt|h5write|h5writeatt|hadamard|handle|hankel|hdf|hdf5|hdf5info|hdf5read|hdf5write|hdfinfo|hdfread|hdftool|help|helpbrowser|helpdesk|helpdlg|helpwin|hess|hex2dec|hex2num|hgexport|hggroup|hgload|hgsave|hgsetget|hgtransform|hidden|hilb|hist|histc|hold|home|horzcat|hostid|hot|hsv|hsv2rgb|hypot|ichol|idivide|ifft|ifft2|ifftn|ifftshift|ilu|im2frame|im2java|imag|image|imagesc|imapprox|imfinfo|imformats|import|importdata|imread|imwrite|ind2rgb|ind2sub|inferiorto|info|inline|inmem|inpolygon|input|inputdlg|inputname|inputParser|inspect|instrcallback|instrfind|instrfindall|int2str|integral(?:2|3)?|interp(?:1|1q|2|3|ft|n)|interpstreamspeed|intersect|intmax|intmin|inv|invhilb|ipermute|isa|isappdata|iscell|iscellstr|ischar|iscolumn|isdir|isempty|isequal|isequaln|isequalwithequalnans|isfield|isfinite|isfloat|isglobal|ishandle|ishghandle|ishold|isinf|isinteger|isjava|iskeyword|isletter|islogical|ismac|ismatrix|ismember|ismethod|isnan|isnumeric|isobject|isocaps|isocolors|isonormals|isosurface|ispc|ispref|isprime|isprop|isreal|isrow|isscalar|issorted|isspace|issparse|isstr|isstrprop|isstruct|isstudent|isunix|isvarname|isvector|javaaddpath|javaArray|javachk|javaclasspath|javacomponent|javaMethod|javaMethodEDT|javaObject|javaObjectEDT|javarmpath|jet|keyboard|kron|lasterr|lasterror|lastwarn|lcm|ldivide|ldl|le|legend|legendre|length|libfunctions|libfunctionsview|libisloaded|libpointer|libstruct|license|light|lightangle|lighting|lin2mu|line|lines|linkaxes|linkdata|linkprop|linsolve|linspace|listdlg|listfonts|load|loadlibrary|loadobj|log|log10|log1p|log2|loglog|logm|logspace|lookfor|lower|ls|lscov|lsqnonneg|lsqr|lt|lu|luinc|magic|makehgtform|mat2cell|mat2str|material|matfile|matlab.io.MatFile|matlab.mixin.(?:Copyable|Heterogeneous(?:.getDefaultScalarElement)?)|matlabrc|matlabroot|max|maxNumCompThreads|mean|median|membrane|memmapfile|memory|menu|mesh|meshc|meshgrid|meshz|meta.(?:class(?:.fromName)?|DynamicProperty|EnumeratedValue|event|MetaData|method|package(?:.(?:fromName|getAllPackages))?|property)|metaclass|methods|methodsview|mex(?:.getCompilerConfigurations)?|MException|mexext|mfilename|min|minres|minus|mislocked|mkdir|mkpp|mldivide|mlint|mlintrpt|mlock|mmfileinfo|mmreader|mod|mode|more|move|movefile|movegui|movie|movie2avi|mpower|mrdivide|msgbox|mtimes|mu2lin|multibandread|multibandwrite|munlock|namelengthmax|nargchk|narginchk|nargoutchk|native2unicode|nccreate|ncdisp|nchoosek|ncinfo|ncread|ncreadatt|ncwrite|ncwriteatt|ncwriteschema|ndgrid|ndims|ne|NET(?:.(?:addAssembly|Assembly|convertArray|createArray|createGeneric|disableAutoRelease|enableAutoRelease|GenericClass|invokeGenericMethod|NetException|setStaticProperty))?|netcdf.(?:abort|close|copyAtt|create|defDim|defGrp|defVar|defVarChunking|defVarDeflate|defVarFill|defVarFletcher32|delAtt|endDef|getAtt|getChunkCache|getConstant|getConstantNames|getVar|inq|inqAtt|inqAttID|inqAttName|inqDim|inqDimID|inqDimIDs|inqFormat|inqGrpName|inqGrpNameFull|inqGrpParent|inqGrps|inqLibVers|inqNcid|inqUnlimDims|inqVar|inqVarChunking|inqVarDeflate|inqVarFill|inqVarFletcher32|inqVarID|inqVarIDs|open|putAtt|putVar|reDef|renameAtt|renameDim|renameVar|setChunkCache|setDefaultFormat|setFill|sync)|newplot|nextpow2|nnz|noanimate|nonzeros|norm|normest|not|notebook|now|nthroot|null|num2cell|num2hex|num2str|numel|nzmax|ode(?:113|15i|15s|23|23s|23t|23tb|45)|odeget|odeset|odextend|onCleanup|ones|open|openfig|opengl|openvar|optimget|optimset|or|ordeig|orderfields|ordqz|ordschur|orient|orth|pack|padecoef|pagesetupdlg|pan|pareto|parseSoapResponse|pascal|patch|path|path2rc|pathsep|pathtool|pause|pbaspect|pcg|pchip|pcode|pcolor|pdepe|pdeval|peaks|perl|perms|permute|pie|pink|pinv|planerot|playshow|plot|plot3|plotbrowser|plotedit|plotmatrix|plottools|plotyy|plus|pol2cart|polar|poly|polyarea|polyder|polyeig|polyfit|polyint|polyval|polyvalm|pow2|power|ppval|prefdir|preferences|primes|print|printdlg|printopt|printpreview|prod|profile|profsave|propedit|propertyeditor|psi|publish|PutCharArray|PutFullMatrix|PutWorkspaceData|pwd|qhull|qmr|qr|qrdelete|qrinsert|qrupdate|quad|quad2d|quadgk|quadl|quadv|questdlg|quit|quiver|quiver3|qz|rand|randi|randn|randperm|RandStream(?:.(?:create|getDefaultStream|getGlobalStream|list|setDefaultStream|setGlobalStream))?|rank|rat|rats|rbbox|rcond|rdivide|readasync|real|reallog|realmax|realmin|realpow|realsqrt|record|rectangle|rectint|recycle|reducepatch|reducevolume|refresh|refreshdata|regexp|regexpi|regexprep|regexptranslate|rehash|rem|Remove|RemoveAll|repmat|reset|reshape|residue|restoredefaultpath|rethrow|rgb2hsv|rgb2ind|rgbplot|ribbon|rmappdata|rmdir|rmfield|rmpath|rmpref|rng|roots|rose|rosser|rot90|rotate|rotate3d|round|rref|rsf2csf|run|save|saveas|saveobj|savepath|scatter|scatter3|schur|sec|secd|sech|selectmoveresize|semilogx|semilogy|sendmail|serial|set|setappdata|setdiff|setenv|setfield|setpixelposition|setpref|setstr|setxor|shading|shg|shiftdim|showplottool|shrinkfaces|sign|sin(?:d|h)?|size|slice|smooth3|snapnow|sort|sortrows|sound|soundsc|spalloc|spaugment|spconvert|spdiags|specular|speye|spfun|sph2cart|sphere|spinmap|spline|spones|spparms|sprand|sprandn|sprandsym|sprank|spring|sprintf|spy|sqrt|sqrtm|squeeze|ss2tf|sscanf|stairs|startup|std|stem|stem3|stopasync|str2double|str2func|str2mat|str2num|strcat|strcmp|strcmpi|stream2|stream3|streamline|streamparticles|streamribbon|streamslice|streamtube|strfind|strjust|strmatch|strncmp|strncmpi|strread|strrep|strtok|strtrim|struct2cell|structfun|strvcat|sub2ind|subplot|subsasgn|subsindex|subspace|subsref|substruct|subvolume|sum|summer|superclasses|superiorto|support|surf|surf2patch|surface|surfc|surfl|surfnorm|svd|svds|swapbytes|symamd|symbfact|symmlq|symrcm|symvar|system|tan(?:d|h)?|tar|tempdir|tempname|tetramesh|texlabel|text|textread|textscan|textwrap|tfqmr|throw|tic|Tiff(?:.(?:getTagNames|getVersion))?|timer|timerfind|timerfindall|times|timeseries|title|toc|todatenum|toeplitz|toolboxdir|trace|transpose|trapz|treelayout|treeplot|tril|trimesh|triplequad|triplot|TriRep|TriScatteredInterp|trisurf|triu|tscollection|tsearch|tsearchn|tstool|type|typecast|uibuttongroup|uicontextmenu|uicontrol|uigetdir|uigetfile|uigetpref|uiimport|uimenu|uiopen|uipanel|uipushtool|uiputfile|uiresume|uisave|uisetcolor|uisetfont|uisetpref|uistack|uitable|uitoggletool|uitoolbar|uiwait|uminus|undocheckout|unicode2native|union|unique|unix|unloadlibrary|unmesh|unmkpp|untar|unwrap|unzip|uplus|upper|urlread|urlwrite|usejava|userpath|validateattributes|validatestring|vander|var|vectorize|ver|verctrl|verLessThan|version|vertcat|VideoReader(?:.isPlatformSupported)?|VideoWriter(?:.getProfiles)?|view|viewmtx|visdiff|volumebounds|voronoi|voronoin|wait|waitbar|waitfor|waitforbuttonpress|warndlg|warning|waterfall|wavfinfo|wavplay|wavread|wavrecord|wavwrite|web|weekday|what|whatsnew|which|whitebg|who|whos|wilkinson|winopen|winqueryreg|winter|wk1finfo|wk1read|wk1write|workspace|xlabel|xlim|xlsfinfo|xlsread|xlswrite|xmlread|xmlwrite|xor|xslt|ylabel|ylim|zeros|zip|zlabel|zlim|zoom)\b/,null],
+["fun_tbx",/^\b(?:addedvarplot|andrewsplot|anova(?:1|2|n)|ansaribradley|aoctool|barttest|bbdesign|beta(?:cdf|fit|inv|like|pdf|rnd|stat)|bino(?:cdf|fit|inv|pdf|rnd|stat)|biplot|bootci|bootstrp|boxplot|candexch|candgen|canoncorr|capability|capaplot|caseread|casewrite|categorical|ccdesign|cdfplot|chi2(?:cdf|gof|inv|pdf|rnd|stat)|cholcov|Classification(?:BaggedEnsemble|Discriminant(?:.(?:fit|make|template))?|Ensemble|KNN(?:.(?:fit|template))?|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|classify|classregtree|cluster|clusterdata|cmdscale|combnk|Compact(?:Classification(?:Discriminant|Ensemble|Tree)|Regression(?:Ensemble|Tree)|TreeBagger)|confusionmat|controlchart|controlrules|cophenet|copula(?:cdf|fit|param|pdf|rnd|stat)|cordexch|corr|corrcov|coxphfit|createns|crosstab|crossval|cvpartition|datasample|dataset|daugment|dcovary|dendrogram|dfittool|disttool|dummyvar|dwtest|ecdf|ecdfhist|ev(?:cdf|fit|inv|like|pdf|rnd|stat)|ExhaustiveSearcher|exp(?:cdf|fit|inv|like|pdf|rnd|stat)|factoran|fcdf|ff2n|finv|fitdist|fitensemble|fpdf|fracfact|fracfactgen|friedman|frnd|fstat|fsurfht|fullfact|gagerr|gam(?:cdf|fit|inv|like|pdf|rnd|stat)|GeneralizedLinearModel(?:.fit)?|geo(?:cdf|inv|mean|pdf|rnd|stat)|gev(?:cdf|fit|inv|like|pdf|rnd|stat)|gline|glmfit|glmval|glyphplot|gmdistribution(?:.fit)?|gname|gp(?:cdf|fit|inv|like|pdf|rnd|stat)|gplotmatrix|grp2idx|grpstats|gscatter|haltonset|harmmean|hist3|histfit|hmm(?:decode|estimate|generate|train|viterbi)|hougen|hyge(?:cdf|inv|pdf|rnd|stat)|icdf|inconsistent|interactionplot|invpred|iqr|iwishrnd|jackknife|jbtest|johnsrnd|KDTreeSearcher|kmeans|knnsearch|kruskalwallis|ksdensity|kstest|kstest2|kurtosis|lasso|lassoglm|lassoPlot|leverage|lhsdesign|lhsnorm|lillietest|LinearModel(?:.fit)?|linhyptest|linkage|logn(?:cdf|fit|inv|like|pdf|rnd|stat)|lsline|mad|mahal|maineffectsplot|manova1|manovacluster|mdscale|mhsample|mle|mlecov|mnpdf|mnrfit|mnrnd|mnrval|moment|multcompare|multivarichart|mvn(?:cdf|pdf|rnd)|mvregress|mvregresslike|mvt(?:cdf|pdf|rnd)|NaiveBayes(?:.fit)?|nan(?:cov|max|mean|median|min|std|sum|var)|nbin(?:cdf|fit|inv|pdf|rnd|stat)|ncf(?:cdf|inv|pdf|rnd|stat)|nct(?:cdf|inv|pdf|rnd|stat)|ncx2(?:cdf|inv|pdf|rnd|stat)|NeighborSearcher|nlinfit|nlintool|nlmefit|nlmefitsa|nlparci|nlpredci|nnmf|nominal|NonLinearModel(?:.fit)?|norm(?:cdf|fit|inv|like|pdf|rnd|stat)|normplot|normspec|ordinal|outlierMeasure|parallelcoords|paretotails|partialcorr|pcacov|pcares|pdf|pdist|pdist2|pearsrnd|perfcurve|perms|piecewisedistribution|plsregress|poiss(?:cdf|fit|inv|pdf|rnd|tat)|polyconf|polytool|prctile|princomp|ProbDist(?:Kernel|Parametric|UnivKernel|UnivParam)?|probplot|procrustes|qqplot|qrandset|qrandstream|quantile|randg|random|randsample|randtool|range|rangesearch|ranksum|rayl(?:cdf|fit|inv|pdf|rnd|stat)|rcoplot|refcurve|refline|regress|Regression(?:BaggedEnsemble|Ensemble|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|regstats|relieff|ridge|robustdemo|robustfit|rotatefactors|rowexch|rsmdemo|rstool|runstest|sampsizepwr|scatterhist|sequentialfs|signrank|signtest|silhouette|skewness|slicesample|sobolset|squareform|statget|statset|stepwise|stepwisefit|surfht|tabulate|tblread|tblwrite|tcdf|tdfread|tiedrank|tinv|tpdf|TreeBagger|treedisp|treefit|treeprune|treetest|treeval|trimmean|trnd|tstat|ttest|ttest2|unid(?:cdf|inv|pdf|rnd|stat)|unif(?:cdf|inv|it|pdf|rnd|stat)|vartest(?:2|n)?|wbl(?:cdf|fit|inv|like|pdf|rnd|stat)|wblplot|wishrnd|x2fx|xptread|zscore|ztest)\b/,
+null],["fun_tbx",/^\b(?:adapthisteq|analyze75info|analyze75read|applycform|applylut|axes2pix|bestblk|blockproc|bwarea|bwareaopen|bwboundaries|bwconncomp|bwconvhull|bwdist|bwdistgeodesic|bweuler|bwhitmiss|bwlabel|bwlabeln|bwmorph|bwpack|bwperim|bwselect|bwtraceboundary|bwulterode|bwunpack|checkerboard|col2im|colfilt|conndef|convmtx2|corner|cornermetric|corr2|cp2tform|cpcorr|cpselect|cpstruct2pairs|dct2|dctmtx|deconvblind|deconvlucy|deconvreg|deconvwnr|decorrstretch|demosaic|dicom(?:anon|dict|info|lookup|read|uid|write)|edge|edgetaper|entropy|entropyfilt|fan2para|fanbeam|findbounds|fliptform|freqz2|fsamp2|fspecial|ftrans2|fwind1|fwind2|getheight|getimage|getimagemodel|getline|getneighbors|getnhood|getpts|getrangefromclass|getrect|getsequence|gray2ind|graycomatrix|graycoprops|graydist|grayslice|graythresh|hdrread|hdrwrite|histeq|hough|houghlines|houghpeaks|iccfind|iccread|iccroot|iccwrite|idct2|ifanbeam|im2bw|im2col|im2double|im2int16|im2java2d|im2single|im2uint16|im2uint8|imabsdiff|imadd|imadjust|ImageAdapter|imageinfo|imagemodel|imapplymatrix|imattributes|imbothat|imclearborder|imclose|imcolormaptool|imcomplement|imcontour|imcontrast|imcrop|imdilate|imdisplayrange|imdistline|imdivide|imellipse|imerode|imextendedmax|imextendedmin|imfill|imfilter|imfindcircles|imfreehand|imfuse|imgca|imgcf|imgetfile|imhandles|imhist|imhmax|imhmin|imimposemin|imlincomb|imline|immagbox|immovie|immultiply|imnoise|imopen|imoverview|imoverviewpanel|impixel|impixelinfo|impixelinfoval|impixelregion|impixelregionpanel|implay|impoint|impoly|impositionrect|improfile|imputfile|impyramid|imreconstruct|imrect|imregconfig|imregionalmax|imregionalmin|imregister|imresize|imroi|imrotate|imsave|imscrollpanel|imshow|imshowpair|imsubtract|imtool|imtophat|imtransform|imview|ind2gray|ind2rgb|interfileinfo|interfileread|intlut|ippl|iptaddcallback|iptcheckconn|iptcheckhandle|iptcheckinput|iptcheckmap|iptchecknargin|iptcheckstrs|iptdemos|iptgetapi|iptGetPointerBehavior|iptgetpref|ipticondir|iptnum2ordinal|iptPointerManager|iptprefs|iptremovecallback|iptSetPointerBehavior|iptsetpref|iptwindowalign|iradon|isbw|isflat|isgray|isicc|isind|isnitf|isrgb|isrset|lab2double|lab2uint16|lab2uint8|label2rgb|labelmatrix|makecform|makeConstrainToRectFcn|makehdr|makelut|makeresampler|maketform|mat2gray|mean2|medfilt2|montage|nitfinfo|nitfread|nlfilter|normxcorr2|ntsc2rgb|openrset|ordfilt2|otf2psf|padarray|para2fan|phantom|poly2mask|psf2otf|qtdecomp|qtgetblk|qtsetblk|radon|rangefilt|reflect|regionprops|registration.metric.(?:MattesMutualInformation|MeanSquares)|registration.optimizer.(?:OnePlusOneEvolutionary|RegularStepGradientDescent)|rgb2gray|rgb2ntsc|rgb2ycbcr|roicolor|roifill|roifilt2|roipoly|rsetwrite|std2|stdfilt|strel|stretchlim|subimage|tformarray|tformfwd|tforminv|tonemap|translate|truesize|uintlut|viscircles|warp|watershed|whitepoint|wiener2|xyz2double|xyz2uint16|ycbcr2rgb)\b/,
+null],["fun_tbx",/^\b(?:bintprog|color|fgoalattain|fminbnd|fmincon|fminimax|fminsearch|fminunc|fseminf|fsolve|fzero|fzmult|gangstr|ktrlink|linprog|lsqcurvefit|lsqlin|lsqnonlin|lsqnonneg|optimget|optimset|optimtool|quadprog)\b/,null],["ident",/^[a-zA-Z][a-zA-Z0-9_]*(?:\.[a-zA-Z][a-zA-Z0-9_]*)*/,null]]),["matlab-identifiers"]);a.registerLangHandler(a.createSimpleLexer([],d),["matlab-operators"]);a.registerLangHandler(a.createSimpleLexer(b,c),["matlab"]);
diff --git a/apidoc/vendor/prettify/lang-ml.js b/apidoc/vendor/prettify/lang-ml.js
new file mode 100644 (file)
index 0000000..c012a3f
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2008 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^#(?:if[\t\n\r \xA0]+(?:[a-z_$][\w\']*|``[^\r\n\t`]*(?:``|$))|else|endif|light)/i,null,"#"],["str",/^(?:\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\]|\\[\s\S])(?:\'|$))/,null,"\"'"]],[["com",/^(?:\/\/[^\r\n]*|\(\*[\s\S]*?\*\))/],["kwd",/^(?:abstract|and|as|assert|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|if|in|inherit|inline|interface|internal|lazy|let|match|member|module|mutable|namespace|new|null|of|open|or|override|private|public|rec|return|static|struct|then|to|true|try|type|upcast|use|val|void|when|while|with|yield|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|global|include|method|mixin|object|parallel|process|protected|pure|sealed|trait|virtual|volatile)\b/],
+["lit",/^[+\-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],["pln",/^(?:[a-z_][\w']*[!?#]?|``[^\r\n\t`]*(?:``|$))/i],["pun",/^[^\t\n\r \xA0\"\'\w]+/]]),["fs","ml"]);
diff --git a/apidoc/vendor/prettify/lang-mumps.js b/apidoc/vendor/prettify/lang-mumps.js
new file mode 100644 (file)
index 0000000..6d51258
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2011 Kitware Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:[^"]|\\.)*")/,null,'"']],[["com",/^;[^\r\n]*/,null,";"],["dec",/^(?:\$(?:D|DEVICE|EC|ECODE|ES|ESTACK|ET|ETRAP|H|HOROLOG|I|IO|J|JOB|K|KEY|P|PRINCIPAL|Q|QUIT|ST|STACK|S|STORAGE|SY|SYSTEM|T|TEST|TL|TLEVEL|TR|TRESTART|X|Y|Z[A-Z]*|A|ASCII|C|CHAR|D|DATA|E|EXTRACT|F|FIND|FN|FNUMBER|G|GET|J|JUSTIFY|L|LENGTH|NA|NAME|O|ORDER|P|PIECE|QL|QLENGTH|QS|QSUBSCRIPT|Q|QUERY|R|RANDOM|RE|REVERSE|S|SELECT|ST|STACK|T|TEXT|TR|TRANSLATE|NaN))\b/i,
+null],["kwd",/^(?:[^\$]B|BREAK|C|CLOSE|D|DO|E|ELSE|F|FOR|G|GOTO|H|HALT|H|HANG|I|IF|J|JOB|K|KILL|L|LOCK|M|MERGE|N|NEW|O|OPEN|Q|QUIT|R|READ|S|SET|TC|TCOMMIT|TRE|TRESTART|TRO|TROLLBACK|TS|TSTART|U|USE|V|VIEW|W|WRITE|X|XECUTE)\b/i,null],["lit",/^[+-]?(?:(?:\.\d+|\d+(?:\.\d*)?)(?:E[+\-]?\d+)?)/i],["pln",/^[a-z][a-zA-Z0-9]*/i],["pun",/^[^\w\t\n\r\xA0\"\$;%\^]|_/]]),["mumps"]);
diff --git a/apidoc/vendor/prettify/lang-n.js b/apidoc/vendor/prettify/lang-n.js
new file mode 100644 (file)
index 0000000..9b3910c
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+
+ Copyright (C) 2011 Zimin A.V.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:\'(?:[^\\\'\r\n]|\\.)*\'|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"],["pln",/^\s+/,null," \r\n\t\u00a0"]],[["str",/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null],["str",/^<#(?:[^#>])*(?:#>|$)/,null],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null],["com",/^\/\/[^\r\n]*/,
+null],["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/,
+null],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,null],["lit",/^@[a-z_$][a-z_$@0-9]*/i,null],["typ",/^@[A-Z]+[a-z][A-Za-z_$@0-9]*/,null],["pln",/^'?[A-Za-z_$][a-z_$@0-9]*/i,null],["lit",/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,null,"0123456789"],["pun",/^.[^\s\w\.$@\'\"\`\/\#]*/,null]]),["n","nemerle"]);
diff --git a/apidoc/vendor/prettify/lang-nemerle.js b/apidoc/vendor/prettify/lang-nemerle.js
new file mode 100644 (file)
index 0000000..9b3910c
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+
+ Copyright (C) 2011 Zimin A.V.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:\'(?:[^\\\'\r\n]|\\.)*\'|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,'"'],["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"],["pln",/^\s+/,null," \r\n\t\u00a0"]],[["str",/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null],["str",/^<#(?:[^#>])*(?:#>|$)/,null],["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null],["com",/^\/\/[^\r\n]*/,
+null],["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null],["kwd",/^(?:abstract|and|as|base|catch|class|def|delegate|enum|event|extern|false|finally|fun|implements|interface|internal|is|macro|match|matches|module|mutable|namespace|new|null|out|override|params|partial|private|protected|public|ref|sealed|static|struct|syntax|this|throw|true|try|type|typeof|using|variant|virtual|volatile|when|where|with|assert|assert2|async|break|checked|continue|do|else|ensures|for|foreach|if|late|lock|new|nolate|otherwise|regexp|repeat|requires|return|surroundwith|unchecked|unless|using|while|yield)\b/,
+null],["typ",/^(?:array|bool|byte|char|decimal|double|float|int|list|long|object|sbyte|short|string|ulong|uint|ufloat|ulong|ushort|void)\b/,null],["lit",/^@[a-z_$][a-z_$@0-9]*/i,null],["typ",/^@[A-Z]+[a-z][A-Za-z_$@0-9]*/,null],["pln",/^'?[A-Za-z_$][a-z_$@0-9]*/i,null],["lit",/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,null,"0123456789"],["pun",/^.[^\s\w\.$@\'\"\`\/\#]*/,null]]),["n","nemerle"]);
diff --git a/apidoc/vendor/prettify/lang-pascal.js b/apidoc/vendor/prettify/lang-pascal.js
new file mode 100644 (file)
index 0000000..c76a11c
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2013 Peter Kofler
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["str",/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$))/,null,"'"],["pln",/^\s+/,null," \r\n\t\u00a0"]],[["com",/^\(\*[\s\S]*?(?:\*\)|$)|^\{[\s\S]*?(?:\}|$)/,null],["kwd",/^(?:ABSOLUTE|AND|ARRAY|ASM|ASSEMBLER|BEGIN|CASE|CONST|CONSTRUCTOR|DESTRUCTOR|DIV|DO|DOWNTO|ELSE|END|EXTERNAL|FOR|FORWARD|FUNCTION|GOTO|IF|IMPLEMENTATION|IN|INLINE|INTERFACE|INTERRUPT|LABEL|MOD|NOT|OBJECT|OF|OR|PACKED|PROCEDURE|PROGRAM|RECORD|REPEAT|SET|SHL|SHR|THEN|TO|TYPE|UNIT|UNTIL|USES|VAR|VIRTUAL|WHILE|WITH|XOR)\b/i,
+null],["lit",/^(?:true|false|self|nil)/i,null],["pln",/^[a-z][a-z0-9]*/i,null],["lit",/^(?:\$[a-f0-9]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+\-]?\d+)?)/i,null,"0123456789"],["pun",/^.[^\s\w\.$@\'\/]*/,null]]),["pascal"]);
diff --git a/apidoc/vendor/prettify/lang-proto.js b/apidoc/vendor/prettify/lang-proto.js
new file mode 100644 (file)
index 0000000..3215ff6
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+
+ Copyright (C) 2006 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.sourceDecorator({keywords:"bytes,default,double,enum,extend,extensions,false,group,import,max,message,option,optional,package,repeated,required,returns,rpc,service,syntax,to,true",types:/^(bool|(double|s?fixed|[su]?int)(32|64)|float|string)\b/,cStyleComments:!0}),["proto"]);
diff --git a/apidoc/vendor/prettify/lang-r.js b/apidoc/vendor/prettify/lang-r.js
new file mode 100644 (file)
index 0000000..6ce16e8
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2012 Jeffrey B. Arnold
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\'(?:[^\'\\]|\\[\s\S])*(?:\'|$)/,null,"'"]],[["com",/^#.*/],["kwd",/^(?:if|else|for|while|repeat|in|next|break|return|switch|function)(?![A-Za-z0-9_.])/],["lit",/^0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?/],["lit",/^[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?[Li]?/],["lit",/^(?:NULL|NA(?:_(?:integer|real|complex|character)_)?|Inf|TRUE|FALSE|NaN|\.\.(?:\.|[0-9]+))(?![A-Za-z0-9_.])/],
+["pun",/^(?:<<?-|->>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|\*|\+|\^|\/|!|%.*?%|=|~|\$|@|:{1,3}|[\[\](){};,?])/],["pln",/^(?:[A-Za-z]+[A-Za-z0-9_.]*|\.[a-zA-Z_][0-9a-zA-Z\._]*)(?![A-Za-z0-9_.])/],["str",/^`.+`/]]),["r","s","R","S","Splus"]);
diff --git a/apidoc/vendor/prettify/lang-rd.js b/apidoc/vendor/prettify/lang-rd.js
new file mode 100644 (file)
index 0000000..113141c
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+
+ Copyright (C) 2012 Jeffrey Arnold
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\r\n]*/,null,"%"]],[["lit",/^\\(?:cr|l?dots|R|tab)\b/],["kwd",/^\\[a-zA-Z@]+/],["kwd",/^#(?:ifn?def|endif)/],["pln",/^\\[{}]/],["pun",/^[{}()\[\]]+/]]),["Rd","rd"]);
diff --git a/apidoc/vendor/prettify/lang-rkt.js b/apidoc/vendor/prettify/lang-rkt.js
new file mode 100644 (file)
index 0000000..2f18c96
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2008 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,
+null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" "));
diff --git a/apidoc/vendor/prettify/lang-rust.js b/apidoc/vendor/prettify/lang-rust.js
new file mode 100644 (file)
index 0000000..4385677
--- /dev/null
@@ -0,0 +1,20 @@
+/*
+
+ Copyright (C) 2015 Chris Morgan
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([],[["pln",/^[\t\n\r \xA0]+/],["com",/^\/\/.*/],["com",/^\/\*[\s\S]*?(?:\*\/|$)/],["str",/^b"(?:[^\\]|\\(?:.|x[\da-fA-F]{2}))*?"/],["str",/^"(?:[^\\]|\\(?:.|x[\da-fA-F]{2}|u\{\[\da-fA-F]{1,6}\}))*?"/],["str",/^b?r(#*)\"[\s\S]*?\"\1/],["str",/^b'([^\\]|\\(.|x[\da-fA-F]{2}))'/],["str",/^'([^\\]|\\(.|x[\da-fA-F]{2}|u\{[\da-fA-F]{1,6}\}))'/],["tag",/^'\w+?\b/],["kwd",/^(?:match|if|else|as|break|box|continue|extern|fn|for|in|if|impl|let|loop|pub|return|super|unsafe|where|while|use|mod|trait|struct|enum|type|move|mut|ref|static|const|crate)\b/],
+["kwd",/^(?:alignof|become|do|offsetof|priv|pure|sizeof|typeof|unsized|yield|abstract|virtual|final|override|macro)\b/],["typ",/^(?:[iu](8|16|32|64|size)|char|bool|f32|f64|str|Self)\b/],["typ",/^(?:Copy|Send|Sized|Sync|Drop|Fn|FnMut|FnOnce|Box|ToOwned|Clone|PartialEq|PartialOrd|Eq|Ord|AsRef|AsMut|Into|From|Default|Iterator|Extend|IntoIterator|DoubleEndedIterator|ExactSizeIterator|Option|Some|None|Result|Ok|Err|SliceConcatExt|String|ToString|Vec)\b/],["lit",/^(self|true|false|null)\b/],
+["lit",/^\d[0-9_]*(?:[iu](?:size|8|16|32|64))?/],["lit",/^0x[a-fA-F0-9_]+(?:[iu](?:size|8|16|32|64))?/],["lit",/^0o[0-7_]+(?:[iu](?:size|8|16|32|64))?/],["lit",/^0b[01_]+(?:[iu](?:size|8|16|32|64))?/],["lit",/^\d[0-9_]*\.(?![^\s\d.])/],["lit",/^\d[0-9_]*(?:\.\d[0-9_]*)(?:[eE][+-]?[0-9_]+)?(?:f32|f64)?/],["lit",/^\d[0-9_]*(?:\.\d[0-9_]*)?(?:[eE][+-]?[0-9_]+)(?:f32|f64)?/],["lit",/^\d[0-9_]*(?:\.\d[0-9_]*)?(?:[eE][+-]?[0-9_]+)?(?:f32|f64)/],
+["atn",/^[a-z_]\w*!/i],["pln",/^[a-z_]\w*/i],["atv",/^#!?\[[\s\S]*?\]/],["pun",/^[+\-/*=^&|!<>%[\](){}?:.,;]/],["pln",/./]]),["rust"]);
diff --git a/apidoc/vendor/prettify/lang-s.js b/apidoc/vendor/prettify/lang-s.js
new file mode 100644 (file)
index 0000000..6ce16e8
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2012 Jeffrey B. Arnold
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"'],["str",/^\'(?:[^\'\\]|\\[\s\S])*(?:\'|$)/,null,"'"]],[["com",/^#.*/],["kwd",/^(?:if|else|for|while|repeat|in|next|break|return|switch|function)(?![A-Za-z0-9_.])/],["lit",/^0[xX][a-fA-F0-9]+([pP][0-9]+)?[Li]?/],["lit",/^[+-]?([0-9]+(\.[0-9]+)?|\.[0-9]+)([eE][+-]?[0-9]+)?[Li]?/],["lit",/^(?:NULL|NA(?:_(?:integer|real|complex|character)_)?|Inf|TRUE|FALSE|NaN|\.\.(?:\.|[0-9]+))(?![A-Za-z0-9_.])/],
+["pun",/^(?:<<?-|->>?|-|==|<=|>=|<|>|&&?|!=|\|\|?|\*|\+|\^|\/|!|%.*?%|=|~|\$|@|:{1,3}|[\[\](){};,?])/],["pln",/^(?:[A-Za-z]+[A-Za-z0-9_.]*|\.[a-zA-Z_][0-9a-zA-Z\._]*)(?![A-Za-z0-9_.])/],["str",/^`.+`/]]),["r","s","R","S","Splus"]);
diff --git a/apidoc/vendor/prettify/lang-scala.js b/apidoc/vendor/prettify/lang-scala.js
new file mode 100644 (file)
index 0000000..3347dd6
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2010 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:(?:""(?:""?(?!")|[^\\"]|\\.)*"{0,3})|(?:[^"\r\n\\]|\\.)*"?))/,null,'"'],["lit",/^`(?:[^\r\n\\`]|\\.)*`?/,null,"`"],["pun",/^[!#%&()*+,\-:;<=>?@\[\\\]^{|}~]+/,null,"!#%&()*+,-:;<=>?@[\\]^{|}~"]],[["str",/^'(?:[^\r\n\\']|\\(?:'|[^\r\n']+))'/],["lit",/^'[a-zA-Z_$][\w$]*(?!['$\w])/],["kwd",/^(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|object|override|package|private|protected|requires|return|sealed|super|throw|trait|try|type|val|var|while|with|yield)\b/],
+["lit",/^(?:true|false|null|this)\b/],["lit",/^(?:(?:0(?:[0-7]+|X[0-9A-F]+))L?|(?:(?:0|[1-9][0-9]*)(?:(?:\.[0-9]+)?(?:E[+\-]?[0-9]+)?F?|L?))|\\.[0-9]+(?:E[+\-]?[0-9]+)?F?)/i],["typ",/^[$_]*[A-Z][_$A-Z0-9]*[a-z][\w$]*/],["pln",/^[$a-zA-Z_][\w$]*/],["com",/^\/(?:\/.*|\*(?:\/|\**[^*/])*(?:\*+\/?)?)/],["pun",/^(?:\.+|\/)/]]),["scala"]);
diff --git a/apidoc/vendor/prettify/lang-scm.js b/apidoc/vendor/prettify/lang-scm.js
new file mode 100644 (file)
index 0000000..2f18c96
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2008 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,
+null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" "));
diff --git a/apidoc/vendor/prettify/lang-sql.js b/apidoc/vendor/prettify/lang-sql.js
new file mode 100644 (file)
index 0000000..a7d292c
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2008 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^(?:"(?:[^\"\\]|\\.)*"|'(?:[^\'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\r\n]*|\/\*[\s\S]*?(?:\*\/|$))/],["kwd",/^(?:ADD|ALL|ALTER|AND|ANY|APPLY|AS|ASC|AUTHORIZATION|BACKUP|BEGIN|BETWEEN|BREAK|BROWSE|BULK|BY|CASCADE|CASE|CHECK|CHECKPOINT|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMN|COMMIT|COMPUTE|CONNECT|CONSTRAINT|CONTAINS|CONTAINSTABLE|CONTINUE|CONVERT|CREATE|CROSS|CURRENT|CURRENT_DATE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|DATABASE|DBCC|DEALLOCATE|DECLARE|DEFAULT|DELETE|DENY|DESC|DISK|DISTINCT|DISTRIBUTED|DOUBLE|DROP|DUMMY|DUMP|ELSE|END|ERRLVL|ESCAPE|EXCEPT|EXEC|EXECUTE|EXISTS|EXIT|FETCH|FILE|FILLFACTOR|FOLLOWING|FOR|FOREIGN|FREETEXT|FREETEXTTABLE|FROM|FULL|FUNCTION|GOTO|GRANT|GROUP|HAVING|HOLDLOCK|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IN|INDEX|INNER|INSERT|INTERSECT|INTO|IS|JOIN|KEY|KILL|LEFT|LIKE|LINENO|LOAD|MATCH|MATCHED|MERGE|NATURAL|NATIONAL|NOCHECK|NONCLUSTERED|NOCYCLE|NOT|NULL|NULLIF|OF|OFF|OFFSETS|ON|OPEN|OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|OPTION|OR|ORDER|OUTER|OVER|PARTITION|PERCENT|PIVOT|PLAN|PRECEDING|PRECISION|PRIMARY|PRINT|PROC|PROCEDURE|PUBLIC|RAISERROR|READ|READTEXT|RECONFIGURE|REFERENCES|REPLICATION|RESTORE|RESTRICT|RETURN|REVOKE|RIGHT|ROLLBACK|ROWCOUNT|ROWGUIDCOL|ROWS?|RULE|SAVE|SCHEMA|SELECT|SESSION_USER|SET|SETUSER|SHUTDOWN|SOME|START|STATISTICS|SYSTEM_USER|TABLE|TEXTSIZE|THEN|TO|TOP|TRAN|TRANSACTION|TRIGGER|TRUNCATE|TSEQUAL|UNBOUNDED|UNION|UNIQUE|UNPIVOT|UPDATE|UPDATETEXT|USE|USER|USING|VALUES|VARYING|VIEW|WAITFOR|WHEN|WHERE|WHILE|WITH|WITHIN|WRITETEXT|XML)(?=[^\w-]|$)/i,
+null],["lit",/^[+-]?(?:0x[\da-f]+|(?:(?:\.\d+|\d+(?:\.\d*)?)(?:e[+\-]?\d+)?))/i],["pln",/^[a-z_][\w-]*/i],["pun",/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0+\-\"\']*/]]),["sql"]);
diff --git a/apidoc/vendor/prettify/lang-ss.js b/apidoc/vendor/prettify/lang-ss.js
new file mode 100644 (file)
index 0000000..2f18c96
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2008 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\(+/,null,"("],["clo",/^\)+/,null,")"],["com",/^;[^\r\n]*/,null,";"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:block|c[ad]+r|catch|con[ds]|def(?:ine|un)|do|eq|eql|equal|equalp|eval-when|flet|format|go|if|labels|lambda|let|load-time-value|locally|macrolet|multiple-value-call|nil|progn|progv|quote|require|return-from|setq|symbol-macrolet|t|tagbody|the|throw|unwind)\b/,
+null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),"cl el lisp lsp scm ss rkt".split(" "));
diff --git a/apidoc/vendor/prettify/lang-swift.js b/apidoc/vendor/prettify/lang-swift.js
new file mode 100644 (file)
index 0000000..5442fa7
--- /dev/null
@@ -0,0 +1,16 @@
+/*
+
+ Copyright (C) 2015 Google Inc.
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[ \n\r\t\v\f\0]+/,null," \n\r\t\v\f\x00"],["str",/^"(?:[^"\\]|(?:\\.)|(?:\\\((?:[^"\\)]|\\.)*\)))*"/,null,'"']],[["lit",/^(?:(?:0x[\da-fA-F][\da-fA-F_]*\.[\da-fA-F][\da-fA-F_]*[pP]?)|(?:\d[\d_]*\.\d[\d_]*[eE]?))[+-]?\d[\d_]*/,null],["lit",/^-?(?:(?:0(?:(?:b[01][01_]*)|(?:o[0-7][0-7_]*)|(?:x[\da-fA-F][\da-fA-F_]*)))|(?:\d[\d_]*))/,null],["lit",/^(?:true|false|nil)\b/,null],["kwd",/^\b(?:__COLUMN__|__FILE__|__FUNCTION__|__LINE__|#available|#else|#elseif|#endif|#if|#line|arch|arm|arm64|associativity|as|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|dynamicType|else|enum|fallthrough|final|for|func|get|import|indirect|infix|init|inout|internal|i386|if|in|iOS|iOSApplicationExtension|is|lazy|left|let|mutating|none|nonmutating|operator|optional|OSX|OSXApplicationExtension|override|postfix|precedence|prefix|private|protocol|Protocol|public|required|rethrows|return|right|safe|self|set|static|struct|subscript|super|switch|throw|try|Type|typealias|unowned|unsafe|var|weak|watchOS|while|willSet|x86_64)\b/,
+null],["com",/^\/\/.*?[\n\r]/,null],["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null],["pun",/^<<=|<=|<<|>>=|>=|>>|===|==|\.\.\.|&&=|\.\.<|!==|!=|&=|~=|~|\(|\)|\[|\]|{|}|@|#|;|\.|,|:|\|\|=|\?\?|\|\||&&|&\*|&\+|&-|&=|\+=|-=|\/=|\*=|\^=|%=|\|=|->|`|==|\+\+|--|\/|\+|!|\*|%|<|>|&|\||\^|\?|=|-|_/,null],["typ",/^\b(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null]]),["swift"]);
diff --git a/apidoc/vendor/prettify/lang-tcl.js b/apidoc/vendor/prettify/lang-tcl.js
new file mode 100644 (file)
index 0000000..1d75c3f
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2012 Pyrios
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["opn",/^\{+/,null,"{"],["clo",/^\}+/,null,"}"],["com",/^#[^\r\n]*/,null,"#"],["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["str",/^\"(?:[^\"\\]|\\[\s\S])*(?:\"|$)/,null,'"']],[["kwd",/^(?:after|append|apply|array|break|case|catch|continue|error|eval|exec|exit|expr|for|foreach|if|incr|info|proc|return|set|switch|trace|uplevel|upvar|while)\b/,null],["lit",/^[+\-]?(?:[0#]x[0-9a-f]+|\d+\/\d+|(?:\.\d+|\d+(?:\.\d*)?)(?:[ed][+\-]?\d+)?)/i],
+["lit",/^\'(?:-*(?:\w|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?)?/],["pln",/^-*(?:[a-z_]|\\[\x21-\x7e])(?:[\w-]*|\\[\x21-\x7e])[=!?]?/i],["pun",/^[^\w\t\n\r \xA0()\"\\\';]+/]]),["tcl"]);
diff --git a/apidoc/vendor/prettify/lang-tex.js b/apidoc/vendor/prettify/lang-tex.js
new file mode 100644 (file)
index 0000000..efc758c
--- /dev/null
@@ -0,0 +1,17 @@
+/*
+
+ Copyright (C) 2011 Martin S.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"],["com",/^%[^\r\n]*/,null,"%"]],[["kwd",/^\\[a-zA-Z@]+/],["kwd",/^\\./],["typ",/^[$&]/],["lit",/[+-]?(?:\.\d+|\d+(?:\.\d*)?)(cm|em|ex|in|pc|pt|bp|mm)/i],["pun",/^[{}()\[\]=]+/]]),["latex","tex"]);
diff --git a/apidoc/vendor/prettify/lang-vb.js b/apidoc/vendor/prettify/lang-vb.js
new file mode 100644 (file)
index 0000000..e34086f
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+
+ Copyright (C) 2009 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0\u2028\u2029]+/,null,"\t\n\r \u00a0\u2028\u2029"],["str",/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'"\u201c\u201d'],["com",/^[\'\u2018\u2019](?:_(?:\r\n?|[^\r]?)|[^\r\n_\u2028\u2029])*/,null,"'\u2018\u2019"]],[["kwd",/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i,
+null],["com",/^REM\b[^\r\n\u2028\u2029]*/i],["lit",/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*(?:\[[%&@!#]+\])?|\[(?:[a-z]|_\w)\w*\])/i],["pun",/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],["pun",/^(?:\[|\])/]]),["vb",
+"vbs"]);
diff --git a/apidoc/vendor/prettify/lang-vbs.js b/apidoc/vendor/prettify/lang-vbs.js
new file mode 100644 (file)
index 0000000..e34086f
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+
+ Copyright (C) 2009 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0\u2028\u2029]+/,null,"\t\n\r \u00a0\u2028\u2029"],["str",/^(?:[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})(?:[\"\u201C\u201D]c|$)|[\"\u201C\u201D](?:[^\"\u201C\u201D]|[\"\u201C\u201D]{2})*(?:[\"\u201C\u201D]|$))/i,null,'"\u201c\u201d'],["com",/^[\'\u2018\u2019](?:_(?:\r\n?|[^\r]?)|[^\r\n_\u2028\u2029])*/,null,"'\u2018\u2019"]],[["kwd",/^(?:AddHandler|AddressOf|Alias|And|AndAlso|Ansi|As|Assembly|Auto|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDbl|CDec|Char|CInt|Class|CLng|CObj|Const|CShort|CSng|CStr|CType|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else|ElseIf|End|EndIf|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get|GetType|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|Let|Lib|Like|Long|Loop|Me|Mod|Module|MustInherit|MustOverride|MyBase|MyClass|Namespace|New|Next|Not|NotInheritable|NotOverridable|Object|On|Option|Optional|Or|OrElse|Overloads|Overridable|Overrides|ParamArray|Preserve|Private|Property|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Short|Single|Static|Step|Stop|String|Structure|Sub|SyncLock|Then|Throw|To|Try|TypeOf|Unicode|Until|Variant|Wend|When|While|With|WithEvents|WriteOnly|Xor|EndIf|GoSub|Let|Variant|Wend)\b/i,
+null],["com",/^REM\b[^\r\n\u2028\u2029]*/i],["lit",/^(?:True\b|False\b|Nothing\b|\d+(?:E[+\-]?\d+[FRD]?|[FRDSIL])?|(?:&H[0-9A-F]+|&O[0-7]+)[SIL]?|\d*\.\d+(?:E[+\-]?\d+)?[FRD]?|#\s+(?:\d+[\-\/]\d+[\-\/]\d+(?:\s+\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)?|\d+:\d+(?::\d+)?(\s*(?:AM|PM))?)\s+#)/i],["pln",/^(?:(?:[a-z]|_\w)\w*(?:\[[%&@!#]+\])?|\[(?:[a-z]|_\w)\w*\])/i],["pun",/^[^\w\t\n\r \"\'\[\]\xA0\u2018\u2019\u201C\u201D\u2028\u2029]+/],["pun",/^(?:\[|\])/]]),["vb",
+"vbs"]);
diff --git a/apidoc/vendor/prettify/lang-vhd.js b/apidoc/vendor/prettify/lang-vhd.js
new file mode 100644 (file)
index 0000000..f67a4a3
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+
+ Copyright (C) 2010 benoit@ryder.fr
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"]],[["str",/^(?:[BOX]?"(?:[^\"]|"")*"|'.')/i],["com",/^--[^\r\n]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i,
+null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^\'(?:ACTIVE|ASCENDING|BASE|DELAYED|DRIVING|DRIVING_VALUE|EVENT|HIGH|IMAGE|INSTANCE_NAME|LAST_ACTIVE|LAST_EVENT|LAST_VALUE|LEFT|LEFTOF|LENGTH|LOW|PATH_NAME|POS|PRED|QUIET|RANGE|REVERSE_RANGE|RIGHT|RIGHTOF|SIMPLE_NAME|STABLE|SUCC|TRANSACTION|VAL|VALUE)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w\\.]+#(?:[+\-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:E[+\-]?\d+(?:_\d+)*)?)/i],
+["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0\-\"\']*/]]),["vhdl","vhd"]);
diff --git a/apidoc/vendor/prettify/lang-vhdl.js b/apidoc/vendor/prettify/lang-vhdl.js
new file mode 100644 (file)
index 0000000..f67a4a3
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+
+ Copyright (C) 2010 benoit@ryder.fr
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xA0]+/,null,"\t\n\r \u00a0"]],[["str",/^(?:[BOX]?"(?:[^\"]|"")*"|'.')/i],["com",/^--[^\r\n]*/],["kwd",/^(?:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)(?=[^\w-]|$)/i,
+null],["typ",/^(?:bit|bit_vector|character|boolean|integer|real|time|string|severity_level|positive|natural|signed|unsigned|line|text|std_u?logic(?:_vector)?)(?=[^\w-]|$)/i,null],["typ",/^\'(?:ACTIVE|ASCENDING|BASE|DELAYED|DRIVING|DRIVING_VALUE|EVENT|HIGH|IMAGE|INSTANCE_NAME|LAST_ACTIVE|LAST_EVENT|LAST_VALUE|LEFT|LEFTOF|LENGTH|LOW|PATH_NAME|POS|PRED|QUIET|RANGE|REVERSE_RANGE|RIGHT|RIGHTOF|SIMPLE_NAME|STABLE|SUCC|TRANSACTION|VAL|VALUE)(?=[^\w-]|$)/i,null],["lit",/^\d+(?:_\d+)*(?:#[\w\\.]+#(?:[+\-]?\d+(?:_\d+)*)?|(?:\.\d+(?:_\d+)*)?(?:E[+\-]?\d+(?:_\d+)*)?)/i],
+["pln",/^(?:[a-z]\w*|\\[^\\]*\\)/i],["pun",/^[^\w\t\n\r \xA0\"\'][^\w\t\n\r \xA0\-\"\']*/]]),["vhdl","vhd"]);
diff --git a/apidoc/vendor/prettify/lang-wiki.js b/apidoc/vendor/prettify/lang-wiki.js
new file mode 100644 (file)
index 0000000..d03fccd
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2009 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t \xA0a-gi-z0-9]+/,null,"\t \u00a0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[=*~\^\[\]]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^(?:[A-Z][a-z][a-z0-9]+[A-Z][a-z][a-zA-Z0-9]+)\b/],["lang-",/^\{\{\{([\s\S]+?)\}\}\}/],["lang-",/^`([^\r\n`]+)`/],["str",/^https?:\/\/[^\/?#\s]*(?:\/[^?#\s]*)?(?:\?[^#\s]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\s\S])[^#=*~^A-Zh\{`\[\r\n]*/]]),["wiki"]);
+PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]);
diff --git a/apidoc/vendor/prettify/lang-xq.js b/apidoc/vendor/prettify/lang-xq.js
new file mode 100644 (file)
index 0000000..a6d8537
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+
+ Copyright (C) 2011 Patrick Wied
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["var pln",/^\$[A-Za-z0-9_\-]+/,null,"$"]],[["pln",/^[\s=][<>][\s=]/],["lit",/^\@[\w-]+/],["tag",/^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],["com",/^\(:[\s\S]*?:\)/],["pln",/^[\/\{\};,\[\]\(\)]$/],["str",/^(?:\"(?:[^\"\\\{]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\\{]|\\[\s\S])*(?:\'|$))/,null,"\"'"],["kwd",/^(?:xquery|where|version|variable|union|typeswitch|treat|to|then|text|stable|sortby|some|self|schema|satisfies|returns|return|ref|processing-instruction|preceding-sibling|preceding|precedes|parent|only|of|node|namespace|module|let|item|intersect|instance|in|import|if|function|for|follows|following-sibling|following|external|except|every|else|element|descending|descendant-or-self|descendant|define|default|declare|comment|child|cast|case|before|attribute|assert|ascending|as|ancestor-or-self|ancestor|after|eq|order|by|or|and|schema-element|document-node|node|at)\b/],
+["typ",/^(?:xs:yearMonthDuration|xs:unsignedLong|xs:time|xs:string|xs:short|xs:QName|xs:Name|xs:long|xs:integer|xs:int|xs:gYearMonth|xs:gYear|xs:gMonthDay|xs:gDay|xs:float|xs:duration|xs:double|xs:decimal|xs:dayTimeDuration|xs:dateTime|xs:date|xs:byte|xs:boolean|xs:anyURI|xf:yearMonthDuration)\b/,null],["fun pln",/^(?:xp:dereference|xinc:node-expand|xinc:link-references|xinc:link-expand|xhtml:restructure|xhtml:clean|xhtml:add-lists|xdmp:zip-manifest|xdmp:zip-get|xdmp:zip-create|xdmp:xquery-version|xdmp:word-convert|xdmp:with-namespaces|xdmp:version|xdmp:value|xdmp:user-roles|xdmp:user-last-login|xdmp:user|xdmp:url-encode|xdmp:url-decode|xdmp:uri-is-file|xdmp:uri-format|xdmp:uri-content-type|xdmp:unquote|xdmp:unpath|xdmp:triggers-database|xdmp:trace|xdmp:to-json|xdmp:tidy|xdmp:subbinary|xdmp:strftime|xdmp:spawn-in|xdmp:spawn|xdmp:sleep|xdmp:shutdown|xdmp:set-session-field|xdmp:set-response-encoding|xdmp:set-response-content-type|xdmp:set-response-code|xdmp:set-request-time-limit|xdmp:set|xdmp:servers|xdmp:server-status|xdmp:server-name|xdmp:server|xdmp:security-database|xdmp:security-assert|xdmp:schema-database|xdmp:save|xdmp:role-roles|xdmp:role|xdmp:rethrow|xdmp:restart|xdmp:request-timestamp|xdmp:request-status|xdmp:request-cancel|xdmp:request|xdmp:redirect-response|xdmp:random|xdmp:quote|xdmp:query-trace|xdmp:query-meters|xdmp:product-edition|xdmp:privilege-roles|xdmp:privilege|xdmp:pretty-print|xdmp:powerpoint-convert|xdmp:platform|xdmp:permission|xdmp:pdf-convert|xdmp:path|xdmp:octal-to-integer|xdmp:node-uri|xdmp:node-replace|xdmp:node-kind|xdmp:node-insert-child|xdmp:node-insert-before|xdmp:node-insert-after|xdmp:node-delete|xdmp:node-database|xdmp:mul64|xdmp:modules-root|xdmp:modules-database|xdmp:merging|xdmp:merge-cancel|xdmp:merge|xdmp:md5|xdmp:logout|xdmp:login|xdmp:log-level|xdmp:log|xdmp:lock-release|xdmp:lock-acquire|xdmp:load|xdmp:invoke-in|xdmp:invoke|xdmp:integer-to-octal|xdmp:integer-to-hex|xdmp:http-put|xdmp:http-post|xdmp:http-options|xdmp:http-head|xdmp:http-get|xdmp:http-delete|xdmp:hosts|xdmp:host-status|xdmp:host-name|xdmp:host|xdmp:hex-to-integer|xdmp:hash64|xdmp:hash32|xdmp:has-privilege|xdmp:groups|xdmp:group-serves|xdmp:group-servers|xdmp:group-name|xdmp:group-hosts|xdmp:group|xdmp:get-session-field-names|xdmp:get-session-field|xdmp:get-response-encoding|xdmp:get-response-code|xdmp:get-request-username|xdmp:get-request-user|xdmp:get-request-url|xdmp:get-request-protocol|xdmp:get-request-path|xdmp:get-request-method|xdmp:get-request-header-names|xdmp:get-request-header|xdmp:get-request-field-names|xdmp:get-request-field-filename|xdmp:get-request-field-content-type|xdmp:get-request-field|xdmp:get-request-client-certificate|xdmp:get-request-client-address|xdmp:get-request-body|xdmp:get-current-user|xdmp:get-current-roles|xdmp:get|xdmp:function-name|xdmp:function-module|xdmp:function|xdmp:from-json|xdmp:forests|xdmp:forest-status|xdmp:forest-restore|xdmp:forest-restart|xdmp:forest-name|xdmp:forest-delete|xdmp:forest-databases|xdmp:forest-counts|xdmp:forest-clear|xdmp:forest-backup|xdmp:forest|xdmp:filesystem-file|xdmp:filesystem-directory|xdmp:exists|xdmp:excel-convert|xdmp:eval-in|xdmp:eval|xdmp:estimate|xdmp:email|xdmp:element-content-type|xdmp:elapsed-time|xdmp:document-set-quality|xdmp:document-set-property|xdmp:document-set-properties|xdmp:document-set-permissions|xdmp:document-set-collections|xdmp:document-remove-properties|xdmp:document-remove-permissions|xdmp:document-remove-collections|xdmp:document-properties|xdmp:document-locks|xdmp:document-load|xdmp:document-insert|xdmp:document-get-quality|xdmp:document-get-properties|xdmp:document-get-permissions|xdmp:document-get-collections|xdmp:document-get|xdmp:document-forest|xdmp:document-delete|xdmp:document-add-properties|xdmp:document-add-permissions|xdmp:document-add-collections|xdmp:directory-properties|xdmp:directory-locks|xdmp:directory-delete|xdmp:directory-create|xdmp:directory|xdmp:diacritic-less|xdmp:describe|xdmp:default-permissions|xdmp:default-collections|xdmp:databases|xdmp:database-restore-validate|xdmp:database-restore-status|xdmp:database-restore-cancel|xdmp:database-restore|xdmp:database-name|xdmp:database-forests|xdmp:database-backup-validate|xdmp:database-backup-status|xdmp:database-backup-purge|xdmp:database-backup-cancel|xdmp:database-backup|xdmp:database|xdmp:collection-properties|xdmp:collection-locks|xdmp:collection-delete|xdmp:collation-canonical-uri|xdmp:castable-as|xdmp:can-grant-roles|xdmp:base64-encode|xdmp:base64-decode|xdmp:architecture|xdmp:apply|xdmp:amp-roles|xdmp:amp|xdmp:add64|xdmp:add-response-header|xdmp:access|trgr:trigger-set-recursive|trgr:trigger-set-permissions|trgr:trigger-set-name|trgr:trigger-set-module|trgr:trigger-set-event|trgr:trigger-set-description|trgr:trigger-remove-permissions|trgr:trigger-module|trgr:trigger-get-permissions|trgr:trigger-enable|trgr:trigger-disable|trgr:trigger-database-online-event|trgr:trigger-data-event|trgr:trigger-add-permissions|trgr:remove-trigger|trgr:property-content|trgr:pre-commit|trgr:post-commit|trgr:get-trigger-by-id|trgr:get-trigger|trgr:document-scope|trgr:document-content|trgr:directory-scope|trgr:create-trigger|trgr:collection-scope|trgr:any-property-content|thsr:set-entry|thsr:remove-term|thsr:remove-synonym|thsr:remove-entry|thsr:query-lookup|thsr:lookup|thsr:load|thsr:insert|thsr:expand|thsr:add-synonym|spell:suggest-detailed|spell:suggest|spell:remove-word|spell:make-dictionary|spell:load|spell:levenshtein-distance|spell:is-correct|spell:insert|spell:double-metaphone|spell:add-word|sec:users-collection|sec:user-set-roles|sec:user-set-password|sec:user-set-name|sec:user-set-description|sec:user-set-default-permissions|sec:user-set-default-collections|sec:user-remove-roles|sec:user-privileges|sec:user-get-roles|sec:user-get-description|sec:user-get-default-permissions|sec:user-get-default-collections|sec:user-doc-permissions|sec:user-doc-collections|sec:user-add-roles|sec:unprotect-collection|sec:uid-for-name|sec:set-realm|sec:security-version|sec:security-namespace|sec:security-installed|sec:security-collection|sec:roles-collection|sec:role-set-roles|sec:role-set-name|sec:role-set-description|sec:role-set-default-permissions|sec:role-set-default-collections|sec:role-remove-roles|sec:role-privileges|sec:role-get-roles|sec:role-get-description|sec:role-get-default-permissions|sec:role-get-default-collections|sec:role-doc-permissions|sec:role-doc-collections|sec:role-add-roles|sec:remove-user|sec:remove-role-from-users|sec:remove-role-from-role|sec:remove-role-from-privileges|sec:remove-role-from-amps|sec:remove-role|sec:remove-privilege|sec:remove-amp|sec:protect-collection|sec:privileges-collection|sec:privilege-set-roles|sec:privilege-set-name|sec:privilege-remove-roles|sec:privilege-get-roles|sec:privilege-add-roles|sec:priv-doc-permissions|sec:priv-doc-collections|sec:get-user-names|sec:get-unique-elem-id|sec:get-role-names|sec:get-role-ids|sec:get-privilege|sec:get-distinct-permissions|sec:get-collection|sec:get-amp|sec:create-user-with-role|sec:create-user|sec:create-role|sec:create-privilege|sec:create-amp|sec:collections-collection|sec:collection-set-permissions|sec:collection-remove-permissions|sec:collection-get-permissions|sec:collection-add-permissions|sec:check-admin|sec:amps-collection|sec:amp-set-roles|sec:amp-remove-roles|sec:amp-get-roles|sec:amp-doc-permissions|sec:amp-doc-collections|sec:amp-add-roles|search:unparse|search:suggest|search:snippet|search:search|search:resolve-nodes|search:resolve|search:remove-constraint|search:parse|search:get-default-options|search:estimate|search:check-options|prof:value|prof:reset|prof:report|prof:invoke|prof:eval|prof:enable|prof:disable|prof:allowed|ppt:clean|pki:template-set-request|pki:template-set-name|pki:template-set-key-type|pki:template-set-key-options|pki:template-set-description|pki:template-in-use|pki:template-get-version|pki:template-get-request|pki:template-get-name|pki:template-get-key-type|pki:template-get-key-options|pki:template-get-id|pki:template-get-description|pki:need-certificate|pki:is-temporary|pki:insert-trusted-certificates|pki:insert-template|pki:insert-signed-certificates|pki:insert-certificate-revocation-list|pki:get-trusted-certificate-ids|pki:get-template-ids|pki:get-template-certificate-authority|pki:get-template-by-name|pki:get-template|pki:get-pending-certificate-requests-xml|pki:get-pending-certificate-requests-pem|pki:get-pending-certificate-request|pki:get-certificates-for-template-xml|pki:get-certificates-for-template|pki:get-certificates|pki:get-certificate-xml|pki:get-certificate-pem|pki:get-certificate|pki:generate-temporary-certificate-if-necessary|pki:generate-temporary-certificate|pki:generate-template-certificate-authority|pki:generate-certificate-request|pki:delete-template|pki:delete-certificate|pki:create-template|pdf:make-toc|pdf:insert-toc-headers|pdf:get-toc|pdf:clean|p:status-transition|p:state-transition|p:remove|p:pipelines|p:insert|p:get-by-id|p:get|p:execute|p:create|p:condition|p:collection|p:action|ooxml:runs-merge|ooxml:package-uris|ooxml:package-parts-insert|ooxml:package-parts|msword:clean|mcgm:polygon|mcgm:point|mcgm:geospatial-query-from-elements|mcgm:geospatial-query|mcgm:circle|math:tanh|math:tan|math:sqrt|math:sinh|math:sin|math:pow|math:modf|math:log10|math:log|math:ldexp|math:frexp|math:fmod|math:floor|math:fabs|math:exp|math:cosh|math:cos|math:ceil|math:atan2|math:atan|math:asin|math:acos|map:put|map:map|map:keys|map:get|map:delete|map:count|map:clear|lnk:to|lnk:remove|lnk:insert|lnk:get|lnk:from|lnk:create|kml:polygon|kml:point|kml:interior-polygon|kml:geospatial-query-from-elements|kml:geospatial-query|kml:circle|kml:box|gml:polygon|gml:point|gml:interior-polygon|gml:geospatial-query-from-elements|gml:geospatial-query|gml:circle|gml:box|georss:point|georss:geospatial-query|georss:circle|geo:polygon|geo:point|geo:interior-polygon|geo:geospatial-query-from-elements|geo:geospatial-query|geo:circle|geo:box|fn:zero-or-one|fn:years-from-duration|fn:year-from-dateTime|fn:year-from-date|fn:upper-case|fn:unordered|fn:true|fn:translate|fn:trace|fn:tokenize|fn:timezone-from-time|fn:timezone-from-dateTime|fn:timezone-from-date|fn:sum|fn:subtract-dateTimes-yielding-yearMonthDuration|fn:subtract-dateTimes-yielding-dayTimeDuration|fn:substring-before|fn:substring-after|fn:substring|fn:subsequence|fn:string-to-codepoints|fn:string-pad|fn:string-length|fn:string-join|fn:string|fn:static-base-uri|fn:starts-with|fn:seconds-from-time|fn:seconds-from-duration|fn:seconds-from-dateTime|fn:round-half-to-even|fn:round|fn:root|fn:reverse|fn:resolve-uri|fn:resolve-QName|fn:replace|fn:remove|fn:QName|fn:prefix-from-QName|fn:position|fn:one-or-more|fn:number|fn:not|fn:normalize-unicode|fn:normalize-space|fn:node-name|fn:node-kind|fn:nilled|fn:namespace-uri-from-QName|fn:namespace-uri-for-prefix|fn:namespace-uri|fn:name|fn:months-from-duration|fn:month-from-dateTime|fn:month-from-date|fn:minutes-from-time|fn:minutes-from-duration|fn:minutes-from-dateTime|fn:min|fn:max|fn:matches|fn:lower-case|fn:local-name-from-QName|fn:local-name|fn:last|fn:lang|fn:iri-to-uri|fn:insert-before|fn:index-of|fn:in-scope-prefixes|fn:implicit-timezone|fn:idref|fn:id|fn:hours-from-time|fn:hours-from-duration|fn:hours-from-dateTime|fn:floor|fn:false|fn:expanded-QName|fn:exists|fn:exactly-one|fn:escape-uri|fn:escape-html-uri|fn:error|fn:ends-with|fn:encode-for-uri|fn:empty|fn:document-uri|fn:doc-available|fn:doc|fn:distinct-values|fn:distinct-nodes|fn:default-collation|fn:deep-equal|fn:days-from-duration|fn:day-from-dateTime|fn:day-from-date|fn:data|fn:current-time|fn:current-dateTime|fn:current-date|fn:count|fn:contains|fn:concat|fn:compare|fn:collection|fn:codepoints-to-string|fn:codepoint-equal|fn:ceiling|fn:boolean|fn:base-uri|fn:avg|fn:adjust-time-to-timezone|fn:adjust-dateTime-to-timezone|fn:adjust-date-to-timezone|fn:abs|feed:unsubscribe|feed:subscription|feed:subscribe|feed:request|feed:item|feed:description|excel:clean|entity:enrich|dom:set-pipelines|dom:set-permissions|dom:set-name|dom:set-evaluation-context|dom:set-domain-scope|dom:set-description|dom:remove-pipeline|dom:remove-permissions|dom:remove|dom:get|dom:evaluation-context|dom:domains|dom:domain-scope|dom:create|dom:configuration-set-restart-user|dom:configuration-set-permissions|dom:configuration-set-evaluation-context|dom:configuration-set-default-domain|dom:configuration-get|dom:configuration-create|dom:collection|dom:add-pipeline|dom:add-permissions|dls:retention-rules|dls:retention-rule-remove|dls:retention-rule-insert|dls:retention-rule|dls:purge|dls:node-expand|dls:link-references|dls:link-expand|dls:documents-query|dls:document-versions-query|dls:document-version-uri|dls:document-version-query|dls:document-version-delete|dls:document-version-as-of|dls:document-version|dls:document-update|dls:document-unmanage|dls:document-set-quality|dls:document-set-property|dls:document-set-properties|dls:document-set-permissions|dls:document-set-collections|dls:document-retention-rules|dls:document-remove-properties|dls:document-remove-permissions|dls:document-remove-collections|dls:document-purge|dls:document-manage|dls:document-is-managed|dls:document-insert-and-manage|dls:document-include-query|dls:document-history|dls:document-get-permissions|dls:document-extract-part|dls:document-delete|dls:document-checkout-status|dls:document-checkout|dls:document-checkin|dls:document-add-properties|dls:document-add-permissions|dls:document-add-collections|dls:break-checkout|dls:author-query|dls:as-of-query|dbk:convert|dbg:wait|dbg:value|dbg:stopped|dbg:stop|dbg:step|dbg:status|dbg:stack|dbg:out|dbg:next|dbg:line|dbg:invoke|dbg:function|dbg:finish|dbg:expr|dbg:eval|dbg:disconnect|dbg:detach|dbg:continue|dbg:connect|dbg:clear|dbg:breakpoints|dbg:break|dbg:attached|dbg:attach|cvt:save-converted-documents|cvt:part-uri|cvt:destination-uri|cvt:basepath|cvt:basename|cts:words|cts:word-query-weight|cts:word-query-text|cts:word-query-options|cts:word-query|cts:word-match|cts:walk|cts:uris|cts:uri-match|cts:train|cts:tokenize|cts:thresholds|cts:stem|cts:similar-query-weight|cts:similar-query-nodes|cts:similar-query|cts:shortest-distance|cts:search|cts:score|cts:reverse-query-weight|cts:reverse-query-nodes|cts:reverse-query|cts:remainder|cts:registered-query-weight|cts:registered-query-options|cts:registered-query-ids|cts:registered-query|cts:register|cts:query|cts:quality|cts:properties-query-query|cts:properties-query|cts:polygon-vertices|cts:polygon|cts:point-longitude|cts:point-latitude|cts:point|cts:or-query-queries|cts:or-query|cts:not-query-weight|cts:not-query-query|cts:not-query|cts:near-query-weight|cts:near-query-queries|cts:near-query-options|cts:near-query-distance|cts:near-query|cts:highlight|cts:geospatial-co-occurrences|cts:frequency|cts:fitness|cts:field-words|cts:field-word-query-weight|cts:field-word-query-text|cts:field-word-query-options|cts:field-word-query-field-name|cts:field-word-query|cts:field-word-match|cts:entity-highlight|cts:element-words|cts:element-word-query-weight|cts:element-word-query-text|cts:element-word-query-options|cts:element-word-query-element-name|cts:element-word-query|cts:element-word-match|cts:element-values|cts:element-value-ranges|cts:element-value-query-weight|cts:element-value-query-text|cts:element-value-query-options|cts:element-value-query-element-name|cts:element-value-query|cts:element-value-match|cts:element-value-geospatial-co-occurrences|cts:element-value-co-occurrences|cts:element-range-query-weight|cts:element-range-query-value|cts:element-range-query-options|cts:element-range-query-operator|cts:element-range-query-element-name|cts:element-range-query|cts:element-query-query|cts:element-query-element-name|cts:element-query|cts:element-pair-geospatial-values|cts:element-pair-geospatial-value-match|cts:element-pair-geospatial-query-weight|cts:element-pair-geospatial-query-region|cts:element-pair-geospatial-query-options|cts:element-pair-geospatial-query-longitude-name|cts:element-pair-geospatial-query-latitude-name|cts:element-pair-geospatial-query-element-name|cts:element-pair-geospatial-query|cts:element-pair-geospatial-boxes|cts:element-geospatial-values|cts:element-geospatial-value-match|cts:element-geospatial-query-weight|cts:element-geospatial-query-region|cts:element-geospatial-query-options|cts:element-geospatial-query-element-name|cts:element-geospatial-query|cts:element-geospatial-boxes|cts:element-child-geospatial-values|cts:element-child-geospatial-value-match|cts:element-child-geospatial-query-weight|cts:element-child-geospatial-query-region|cts:element-child-geospatial-query-options|cts:element-child-geospatial-query-element-name|cts:element-child-geospatial-query-child-name|cts:element-child-geospatial-query|cts:element-child-geospatial-boxes|cts:element-attribute-words|cts:element-attribute-word-query-weight|cts:element-attribute-word-query-text|cts:element-attribute-word-query-options|cts:element-attribute-word-query-element-name|cts:element-attribute-word-query-attribute-name|cts:element-attribute-word-query|cts:element-attribute-word-match|cts:element-attribute-values|cts:element-attribute-value-ranges|cts:element-attribute-value-query-weight|cts:element-attribute-value-query-text|cts:element-attribute-value-query-options|cts:element-attribute-value-query-element-name|cts:element-attribute-value-query-attribute-name|cts:element-attribute-value-query|cts:element-attribute-value-match|cts:element-attribute-value-geospatial-co-occurrences|cts:element-attribute-value-co-occurrences|cts:element-attribute-range-query-weight|cts:element-attribute-range-query-value|cts:element-attribute-range-query-options|cts:element-attribute-range-query-operator|cts:element-attribute-range-query-element-name|cts:element-attribute-range-query-attribute-name|cts:element-attribute-range-query|cts:element-attribute-pair-geospatial-values|cts:element-attribute-pair-geospatial-value-match|cts:element-attribute-pair-geospatial-query-weight|cts:element-attribute-pair-geospatial-query-region|cts:element-attribute-pair-geospatial-query-options|cts:element-attribute-pair-geospatial-query-longitude-name|cts:element-attribute-pair-geospatial-query-latitude-name|cts:element-attribute-pair-geospatial-query-element-name|cts:element-attribute-pair-geospatial-query|cts:element-attribute-pair-geospatial-boxes|cts:document-query-uris|cts:document-query|cts:distance|cts:directory-query-uris|cts:directory-query-depth|cts:directory-query|cts:destination|cts:deregister|cts:contains|cts:confidence|cts:collections|cts:collection-query-uris|cts:collection-query|cts:collection-match|cts:classify|cts:circle-radius|cts:circle-center|cts:circle|cts:box-west|cts:box-south|cts:box-north|cts:box-east|cts:box|cts:bearing|cts:arc-intersection|cts:and-query-queries|cts:and-query-options|cts:and-query|cts:and-not-query-positive-query|cts:and-not-query-negative-query|cts:and-not-query|css:get|css:convert|cpf:success|cpf:failure|cpf:document-set-state|cpf:document-set-processing-status|cpf:document-set-last-updated|cpf:document-set-error|cpf:document-get-state|cpf:document-get-processing-status|cpf:document-get-last-updated|cpf:document-get-error|cpf:check-transition|alert:spawn-matching-actions|alert:rule-user-id-query|alert:rule-set-user-id|alert:rule-set-query|alert:rule-set-options|alert:rule-set-name|alert:rule-set-description|alert:rule-set-action|alert:rule-remove|alert:rule-name-query|alert:rule-insert|alert:rule-id-query|alert:rule-get-user-id|alert:rule-get-query|alert:rule-get-options|alert:rule-get-name|alert:rule-get-id|alert:rule-get-description|alert:rule-get-action|alert:rule-action-query|alert:remove-triggers|alert:make-rule|alert:make-log-action|alert:make-config|alert:make-action|alert:invoke-matching-actions|alert:get-my-rules|alert:get-all-rules|alert:get-actions|alert:find-matching-rules|alert:create-triggers|alert:config-set-uri|alert:config-set-trigger-ids|alert:config-set-options|alert:config-set-name|alert:config-set-description|alert:config-set-cpf-domain-names|alert:config-set-cpf-domain-ids|alert:config-insert|alert:config-get-uri|alert:config-get-trigger-ids|alert:config-get-options|alert:config-get-name|alert:config-get-id|alert:config-get-description|alert:config-get-cpf-domain-names|alert:config-get-cpf-domain-ids|alert:config-get|alert:config-delete|alert:action-set-options|alert:action-set-name|alert:action-set-module-root|alert:action-set-module-db|alert:action-set-module|alert:action-set-description|alert:action-remove|alert:action-insert|alert:action-get-options|alert:action-get-name|alert:action-get-module-root|alert:action-get-module-db|alert:action-get-module|alert:action-get-description|zero-or-one|years-from-duration|year-from-dateTime|year-from-date|upper-case|unordered|true|translate|trace|tokenize|timezone-from-time|timezone-from-dateTime|timezone-from-date|sum|subtract-dateTimes-yielding-yearMonthDuration|subtract-dateTimes-yielding-dayTimeDuration|substring-before|substring-after|substring|subsequence|string-to-codepoints|string-pad|string-length|string-join|string|static-base-uri|starts-with|seconds-from-time|seconds-from-duration|seconds-from-dateTime|round-half-to-even|round|root|reverse|resolve-uri|resolve-QName|replace|remove|QName|prefix-from-QName|position|one-or-more|number|not|normalize-unicode|normalize-space|node-name|node-kind|nilled|namespace-uri-from-QName|namespace-uri-for-prefix|namespace-uri|name|months-from-duration|month-from-dateTime|month-from-date|minutes-from-time|minutes-from-duration|minutes-from-dateTime|min|max|matches|lower-case|local-name-from-QName|local-name|last|lang|iri-to-uri|insert-before|index-of|in-scope-prefixes|implicit-timezone|idref|id|hours-from-time|hours-from-duration|hours-from-dateTime|floor|false|expanded-QName|exists|exactly-one|escape-uri|escape-html-uri|error|ends-with|encode-for-uri|empty|document-uri|doc-available|doc|distinct-values|distinct-nodes|default-collation|deep-equal|days-from-duration|day-from-dateTime|day-from-date|data|current-time|current-dateTime|current-date|count|contains|concat|compare|collection|codepoints-to-string|codepoint-equal|ceiling|boolean|base-uri|avg|adjust-time-to-timezone|adjust-dateTime-to-timezone|adjust-date-to-timezone|abs)\b/],
+["pln",/^[A-Za-z0-9_\-\:]+/],["pln",/^[\t\n\r \xA0]+/]]),["xq","xquery"]);
diff --git a/apidoc/vendor/prettify/lang-xquery.js b/apidoc/vendor/prettify/lang-xquery.js
new file mode 100644 (file)
index 0000000..a6d8537
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+
+ Copyright (C) 2011 Patrick Wied
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["var pln",/^\$[A-Za-z0-9_\-]+/,null,"$"]],[["pln",/^[\s=][<>][\s=]/],["lit",/^\@[\w-]+/],["tag",/^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],["com",/^\(:[\s\S]*?:\)/],["pln",/^[\/\{\};,\[\]\(\)]$/],["str",/^(?:\"(?:[^\"\\\{]|\\[\s\S])*(?:\"|$)|\'(?:[^\'\\\{]|\\[\s\S])*(?:\'|$))/,null,"\"'"],["kwd",/^(?:xquery|where|version|variable|union|typeswitch|treat|to|then|text|stable|sortby|some|self|schema|satisfies|returns|return|ref|processing-instruction|preceding-sibling|preceding|precedes|parent|only|of|node|namespace|module|let|item|intersect|instance|in|import|if|function|for|follows|following-sibling|following|external|except|every|else|element|descending|descendant-or-self|descendant|define|default|declare|comment|child|cast|case|before|attribute|assert|ascending|as|ancestor-or-self|ancestor|after|eq|order|by|or|and|schema-element|document-node|node|at)\b/],
+["typ",/^(?:xs:yearMonthDuration|xs:unsignedLong|xs:time|xs:string|xs:short|xs:QName|xs:Name|xs:long|xs:integer|xs:int|xs:gYearMonth|xs:gYear|xs:gMonthDay|xs:gDay|xs:float|xs:duration|xs:double|xs:decimal|xs:dayTimeDuration|xs:dateTime|xs:date|xs:byte|xs:boolean|xs:anyURI|xf:yearMonthDuration)\b/,null],["fun pln",/^(?:xp:dereference|xinc:node-expand|xinc:link-references|xinc:link-expand|xhtml:restructure|xhtml:clean|xhtml:add-lists|xdmp:zip-manifest|xdmp:zip-get|xdmp:zip-create|xdmp:xquery-version|xdmp:word-convert|xdmp:with-namespaces|xdmp:version|xdmp:value|xdmp:user-roles|xdmp:user-last-login|xdmp:user|xdmp:url-encode|xdmp:url-decode|xdmp:uri-is-file|xdmp:uri-format|xdmp:uri-content-type|xdmp:unquote|xdmp:unpath|xdmp:triggers-database|xdmp:trace|xdmp:to-json|xdmp:tidy|xdmp:subbinary|xdmp:strftime|xdmp:spawn-in|xdmp:spawn|xdmp:sleep|xdmp:shutdown|xdmp:set-session-field|xdmp:set-response-encoding|xdmp:set-response-content-type|xdmp:set-response-code|xdmp:set-request-time-limit|xdmp:set|xdmp:servers|xdmp:server-status|xdmp:server-name|xdmp:server|xdmp:security-database|xdmp:security-assert|xdmp:schema-database|xdmp:save|xdmp:role-roles|xdmp:role|xdmp:rethrow|xdmp:restart|xdmp:request-timestamp|xdmp:request-status|xdmp:request-cancel|xdmp:request|xdmp:redirect-response|xdmp:random|xdmp:quote|xdmp:query-trace|xdmp:query-meters|xdmp:product-edition|xdmp:privilege-roles|xdmp:privilege|xdmp:pretty-print|xdmp:powerpoint-convert|xdmp:platform|xdmp:permission|xdmp:pdf-convert|xdmp:path|xdmp:octal-to-integer|xdmp:node-uri|xdmp:node-replace|xdmp:node-kind|xdmp:node-insert-child|xdmp:node-insert-before|xdmp:node-insert-after|xdmp:node-delete|xdmp:node-database|xdmp:mul64|xdmp:modules-root|xdmp:modules-database|xdmp:merging|xdmp:merge-cancel|xdmp:merge|xdmp:md5|xdmp:logout|xdmp:login|xdmp:log-level|xdmp:log|xdmp:lock-release|xdmp:lock-acquire|xdmp:load|xdmp:invoke-in|xdmp:invoke|xdmp:integer-to-octal|xdmp:integer-to-hex|xdmp:http-put|xdmp:http-post|xdmp:http-options|xdmp:http-head|xdmp:http-get|xdmp:http-delete|xdmp:hosts|xdmp:host-status|xdmp:host-name|xdmp:host|xdmp:hex-to-integer|xdmp:hash64|xdmp:hash32|xdmp:has-privilege|xdmp:groups|xdmp:group-serves|xdmp:group-servers|xdmp:group-name|xdmp:group-hosts|xdmp:group|xdmp:get-session-field-names|xdmp:get-session-field|xdmp:get-response-encoding|xdmp:get-response-code|xdmp:get-request-username|xdmp:get-request-user|xdmp:get-request-url|xdmp:get-request-protocol|xdmp:get-request-path|xdmp:get-request-method|xdmp:get-request-header-names|xdmp:get-request-header|xdmp:get-request-field-names|xdmp:get-request-field-filename|xdmp:get-request-field-content-type|xdmp:get-request-field|xdmp:get-request-client-certificate|xdmp:get-request-client-address|xdmp:get-request-body|xdmp:get-current-user|xdmp:get-current-roles|xdmp:get|xdmp:function-name|xdmp:function-module|xdmp:function|xdmp:from-json|xdmp:forests|xdmp:forest-status|xdmp:forest-restore|xdmp:forest-restart|xdmp:forest-name|xdmp:forest-delete|xdmp:forest-databases|xdmp:forest-counts|xdmp:forest-clear|xdmp:forest-backup|xdmp:forest|xdmp:filesystem-file|xdmp:filesystem-directory|xdmp:exists|xdmp:excel-convert|xdmp:eval-in|xdmp:eval|xdmp:estimate|xdmp:email|xdmp:element-content-type|xdmp:elapsed-time|xdmp:document-set-quality|xdmp:document-set-property|xdmp:document-set-properties|xdmp:document-set-permissions|xdmp:document-set-collections|xdmp:document-remove-properties|xdmp:document-remove-permissions|xdmp:document-remove-collections|xdmp:document-properties|xdmp:document-locks|xdmp:document-load|xdmp:document-insert|xdmp:document-get-quality|xdmp:document-get-properties|xdmp:document-get-permissions|xdmp:document-get-collections|xdmp:document-get|xdmp:document-forest|xdmp:document-delete|xdmp:document-add-properties|xdmp:document-add-permissions|xdmp:document-add-collections|xdmp:directory-properties|xdmp:directory-locks|xdmp:directory-delete|xdmp:directory-create|xdmp:directory|xdmp:diacritic-less|xdmp:describe|xdmp:default-permissions|xdmp:default-collections|xdmp:databases|xdmp:database-restore-validate|xdmp:database-restore-status|xdmp:database-restore-cancel|xdmp:database-restore|xdmp:database-name|xdmp:database-forests|xdmp:database-backup-validate|xdmp:database-backup-status|xdmp:database-backup-purge|xdmp:database-backup-cancel|xdmp:database-backup|xdmp:database|xdmp:collection-properties|xdmp:collection-locks|xdmp:collection-delete|xdmp:collation-canonical-uri|xdmp:castable-as|xdmp:can-grant-roles|xdmp:base64-encode|xdmp:base64-decode|xdmp:architecture|xdmp:apply|xdmp:amp-roles|xdmp:amp|xdmp:add64|xdmp:add-response-header|xdmp:access|trgr:trigger-set-recursive|trgr:trigger-set-permissions|trgr:trigger-set-name|trgr:trigger-set-module|trgr:trigger-set-event|trgr:trigger-set-description|trgr:trigger-remove-permissions|trgr:trigger-module|trgr:trigger-get-permissions|trgr:trigger-enable|trgr:trigger-disable|trgr:trigger-database-online-event|trgr:trigger-data-event|trgr:trigger-add-permissions|trgr:remove-trigger|trgr:property-content|trgr:pre-commit|trgr:post-commit|trgr:get-trigger-by-id|trgr:get-trigger|trgr:document-scope|trgr:document-content|trgr:directory-scope|trgr:create-trigger|trgr:collection-scope|trgr:any-property-content|thsr:set-entry|thsr:remove-term|thsr:remove-synonym|thsr:remove-entry|thsr:query-lookup|thsr:lookup|thsr:load|thsr:insert|thsr:expand|thsr:add-synonym|spell:suggest-detailed|spell:suggest|spell:remove-word|spell:make-dictionary|spell:load|spell:levenshtein-distance|spell:is-correct|spell:insert|spell:double-metaphone|spell:add-word|sec:users-collection|sec:user-set-roles|sec:user-set-password|sec:user-set-name|sec:user-set-description|sec:user-set-default-permissions|sec:user-set-default-collections|sec:user-remove-roles|sec:user-privileges|sec:user-get-roles|sec:user-get-description|sec:user-get-default-permissions|sec:user-get-default-collections|sec:user-doc-permissions|sec:user-doc-collections|sec:user-add-roles|sec:unprotect-collection|sec:uid-for-name|sec:set-realm|sec:security-version|sec:security-namespace|sec:security-installed|sec:security-collection|sec:roles-collection|sec:role-set-roles|sec:role-set-name|sec:role-set-description|sec:role-set-default-permissions|sec:role-set-default-collections|sec:role-remove-roles|sec:role-privileges|sec:role-get-roles|sec:role-get-description|sec:role-get-default-permissions|sec:role-get-default-collections|sec:role-doc-permissions|sec:role-doc-collections|sec:role-add-roles|sec:remove-user|sec:remove-role-from-users|sec:remove-role-from-role|sec:remove-role-from-privileges|sec:remove-role-from-amps|sec:remove-role|sec:remove-privilege|sec:remove-amp|sec:protect-collection|sec:privileges-collection|sec:privilege-set-roles|sec:privilege-set-name|sec:privilege-remove-roles|sec:privilege-get-roles|sec:privilege-add-roles|sec:priv-doc-permissions|sec:priv-doc-collections|sec:get-user-names|sec:get-unique-elem-id|sec:get-role-names|sec:get-role-ids|sec:get-privilege|sec:get-distinct-permissions|sec:get-collection|sec:get-amp|sec:create-user-with-role|sec:create-user|sec:create-role|sec:create-privilege|sec:create-amp|sec:collections-collection|sec:collection-set-permissions|sec:collection-remove-permissions|sec:collection-get-permissions|sec:collection-add-permissions|sec:check-admin|sec:amps-collection|sec:amp-set-roles|sec:amp-remove-roles|sec:amp-get-roles|sec:amp-doc-permissions|sec:amp-doc-collections|sec:amp-add-roles|search:unparse|search:suggest|search:snippet|search:search|search:resolve-nodes|search:resolve|search:remove-constraint|search:parse|search:get-default-options|search:estimate|search:check-options|prof:value|prof:reset|prof:report|prof:invoke|prof:eval|prof:enable|prof:disable|prof:allowed|ppt:clean|pki:template-set-request|pki:template-set-name|pki:template-set-key-type|pki:template-set-key-options|pki:template-set-description|pki:template-in-use|pki:template-get-version|pki:template-get-request|pki:template-get-name|pki:template-get-key-type|pki:template-get-key-options|pki:template-get-id|pki:template-get-description|pki:need-certificate|pki:is-temporary|pki:insert-trusted-certificates|pki:insert-template|pki:insert-signed-certificates|pki:insert-certificate-revocation-list|pki:get-trusted-certificate-ids|pki:get-template-ids|pki:get-template-certificate-authority|pki:get-template-by-name|pki:get-template|pki:get-pending-certificate-requests-xml|pki:get-pending-certificate-requests-pem|pki:get-pending-certificate-request|pki:get-certificates-for-template-xml|pki:get-certificates-for-template|pki:get-certificates|pki:get-certificate-xml|pki:get-certificate-pem|pki:get-certificate|pki:generate-temporary-certificate-if-necessary|pki:generate-temporary-certificate|pki:generate-template-certificate-authority|pki:generate-certificate-request|pki:delete-template|pki:delete-certificate|pki:create-template|pdf:make-toc|pdf:insert-toc-headers|pdf:get-toc|pdf:clean|p:status-transition|p:state-transition|p:remove|p:pipelines|p:insert|p:get-by-id|p:get|p:execute|p:create|p:condition|p:collection|p:action|ooxml:runs-merge|ooxml:package-uris|ooxml:package-parts-insert|ooxml:package-parts|msword:clean|mcgm:polygon|mcgm:point|mcgm:geospatial-query-from-elements|mcgm:geospatial-query|mcgm:circle|math:tanh|math:tan|math:sqrt|math:sinh|math:sin|math:pow|math:modf|math:log10|math:log|math:ldexp|math:frexp|math:fmod|math:floor|math:fabs|math:exp|math:cosh|math:cos|math:ceil|math:atan2|math:atan|math:asin|math:acos|map:put|map:map|map:keys|map:get|map:delete|map:count|map:clear|lnk:to|lnk:remove|lnk:insert|lnk:get|lnk:from|lnk:create|kml:polygon|kml:point|kml:interior-polygon|kml:geospatial-query-from-elements|kml:geospatial-query|kml:circle|kml:box|gml:polygon|gml:point|gml:interior-polygon|gml:geospatial-query-from-elements|gml:geospatial-query|gml:circle|gml:box|georss:point|georss:geospatial-query|georss:circle|geo:polygon|geo:point|geo:interior-polygon|geo:geospatial-query-from-elements|geo:geospatial-query|geo:circle|geo:box|fn:zero-or-one|fn:years-from-duration|fn:year-from-dateTime|fn:year-from-date|fn:upper-case|fn:unordered|fn:true|fn:translate|fn:trace|fn:tokenize|fn:timezone-from-time|fn:timezone-from-dateTime|fn:timezone-from-date|fn:sum|fn:subtract-dateTimes-yielding-yearMonthDuration|fn:subtract-dateTimes-yielding-dayTimeDuration|fn:substring-before|fn:substring-after|fn:substring|fn:subsequence|fn:string-to-codepoints|fn:string-pad|fn:string-length|fn:string-join|fn:string|fn:static-base-uri|fn:starts-with|fn:seconds-from-time|fn:seconds-from-duration|fn:seconds-from-dateTime|fn:round-half-to-even|fn:round|fn:root|fn:reverse|fn:resolve-uri|fn:resolve-QName|fn:replace|fn:remove|fn:QName|fn:prefix-from-QName|fn:position|fn:one-or-more|fn:number|fn:not|fn:normalize-unicode|fn:normalize-space|fn:node-name|fn:node-kind|fn:nilled|fn:namespace-uri-from-QName|fn:namespace-uri-for-prefix|fn:namespace-uri|fn:name|fn:months-from-duration|fn:month-from-dateTime|fn:month-from-date|fn:minutes-from-time|fn:minutes-from-duration|fn:minutes-from-dateTime|fn:min|fn:max|fn:matches|fn:lower-case|fn:local-name-from-QName|fn:local-name|fn:last|fn:lang|fn:iri-to-uri|fn:insert-before|fn:index-of|fn:in-scope-prefixes|fn:implicit-timezone|fn:idref|fn:id|fn:hours-from-time|fn:hours-from-duration|fn:hours-from-dateTime|fn:floor|fn:false|fn:expanded-QName|fn:exists|fn:exactly-one|fn:escape-uri|fn:escape-html-uri|fn:error|fn:ends-with|fn:encode-for-uri|fn:empty|fn:document-uri|fn:doc-available|fn:doc|fn:distinct-values|fn:distinct-nodes|fn:default-collation|fn:deep-equal|fn:days-from-duration|fn:day-from-dateTime|fn:day-from-date|fn:data|fn:current-time|fn:current-dateTime|fn:current-date|fn:count|fn:contains|fn:concat|fn:compare|fn:collection|fn:codepoints-to-string|fn:codepoint-equal|fn:ceiling|fn:boolean|fn:base-uri|fn:avg|fn:adjust-time-to-timezone|fn:adjust-dateTime-to-timezone|fn:adjust-date-to-timezone|fn:abs|feed:unsubscribe|feed:subscription|feed:subscribe|feed:request|feed:item|feed:description|excel:clean|entity:enrich|dom:set-pipelines|dom:set-permissions|dom:set-name|dom:set-evaluation-context|dom:set-domain-scope|dom:set-description|dom:remove-pipeline|dom:remove-permissions|dom:remove|dom:get|dom:evaluation-context|dom:domains|dom:domain-scope|dom:create|dom:configuration-set-restart-user|dom:configuration-set-permissions|dom:configuration-set-evaluation-context|dom:configuration-set-default-domain|dom:configuration-get|dom:configuration-create|dom:collection|dom:add-pipeline|dom:add-permissions|dls:retention-rules|dls:retention-rule-remove|dls:retention-rule-insert|dls:retention-rule|dls:purge|dls:node-expand|dls:link-references|dls:link-expand|dls:documents-query|dls:document-versions-query|dls:document-version-uri|dls:document-version-query|dls:document-version-delete|dls:document-version-as-of|dls:document-version|dls:document-update|dls:document-unmanage|dls:document-set-quality|dls:document-set-property|dls:document-set-properties|dls:document-set-permissions|dls:document-set-collections|dls:document-retention-rules|dls:document-remove-properties|dls:document-remove-permissions|dls:document-remove-collections|dls:document-purge|dls:document-manage|dls:document-is-managed|dls:document-insert-and-manage|dls:document-include-query|dls:document-history|dls:document-get-permissions|dls:document-extract-part|dls:document-delete|dls:document-checkout-status|dls:document-checkout|dls:document-checkin|dls:document-add-properties|dls:document-add-permissions|dls:document-add-collections|dls:break-checkout|dls:author-query|dls:as-of-query|dbk:convert|dbg:wait|dbg:value|dbg:stopped|dbg:stop|dbg:step|dbg:status|dbg:stack|dbg:out|dbg:next|dbg:line|dbg:invoke|dbg:function|dbg:finish|dbg:expr|dbg:eval|dbg:disconnect|dbg:detach|dbg:continue|dbg:connect|dbg:clear|dbg:breakpoints|dbg:break|dbg:attached|dbg:attach|cvt:save-converted-documents|cvt:part-uri|cvt:destination-uri|cvt:basepath|cvt:basename|cts:words|cts:word-query-weight|cts:word-query-text|cts:word-query-options|cts:word-query|cts:word-match|cts:walk|cts:uris|cts:uri-match|cts:train|cts:tokenize|cts:thresholds|cts:stem|cts:similar-query-weight|cts:similar-query-nodes|cts:similar-query|cts:shortest-distance|cts:search|cts:score|cts:reverse-query-weight|cts:reverse-query-nodes|cts:reverse-query|cts:remainder|cts:registered-query-weight|cts:registered-query-options|cts:registered-query-ids|cts:registered-query|cts:register|cts:query|cts:quality|cts:properties-query-query|cts:properties-query|cts:polygon-vertices|cts:polygon|cts:point-longitude|cts:point-latitude|cts:point|cts:or-query-queries|cts:or-query|cts:not-query-weight|cts:not-query-query|cts:not-query|cts:near-query-weight|cts:near-query-queries|cts:near-query-options|cts:near-query-distance|cts:near-query|cts:highlight|cts:geospatial-co-occurrences|cts:frequency|cts:fitness|cts:field-words|cts:field-word-query-weight|cts:field-word-query-text|cts:field-word-query-options|cts:field-word-query-field-name|cts:field-word-query|cts:field-word-match|cts:entity-highlight|cts:element-words|cts:element-word-query-weight|cts:element-word-query-text|cts:element-word-query-options|cts:element-word-query-element-name|cts:element-word-query|cts:element-word-match|cts:element-values|cts:element-value-ranges|cts:element-value-query-weight|cts:element-value-query-text|cts:element-value-query-options|cts:element-value-query-element-name|cts:element-value-query|cts:element-value-match|cts:element-value-geospatial-co-occurrences|cts:element-value-co-occurrences|cts:element-range-query-weight|cts:element-range-query-value|cts:element-range-query-options|cts:element-range-query-operator|cts:element-range-query-element-name|cts:element-range-query|cts:element-query-query|cts:element-query-element-name|cts:element-query|cts:element-pair-geospatial-values|cts:element-pair-geospatial-value-match|cts:element-pair-geospatial-query-weight|cts:element-pair-geospatial-query-region|cts:element-pair-geospatial-query-options|cts:element-pair-geospatial-query-longitude-name|cts:element-pair-geospatial-query-latitude-name|cts:element-pair-geospatial-query-element-name|cts:element-pair-geospatial-query|cts:element-pair-geospatial-boxes|cts:element-geospatial-values|cts:element-geospatial-value-match|cts:element-geospatial-query-weight|cts:element-geospatial-query-region|cts:element-geospatial-query-options|cts:element-geospatial-query-element-name|cts:element-geospatial-query|cts:element-geospatial-boxes|cts:element-child-geospatial-values|cts:element-child-geospatial-value-match|cts:element-child-geospatial-query-weight|cts:element-child-geospatial-query-region|cts:element-child-geospatial-query-options|cts:element-child-geospatial-query-element-name|cts:element-child-geospatial-query-child-name|cts:element-child-geospatial-query|cts:element-child-geospatial-boxes|cts:element-attribute-words|cts:element-attribute-word-query-weight|cts:element-attribute-word-query-text|cts:element-attribute-word-query-options|cts:element-attribute-word-query-element-name|cts:element-attribute-word-query-attribute-name|cts:element-attribute-word-query|cts:element-attribute-word-match|cts:element-attribute-values|cts:element-attribute-value-ranges|cts:element-attribute-value-query-weight|cts:element-attribute-value-query-text|cts:element-attribute-value-query-options|cts:element-attribute-value-query-element-name|cts:element-attribute-value-query-attribute-name|cts:element-attribute-value-query|cts:element-attribute-value-match|cts:element-attribute-value-geospatial-co-occurrences|cts:element-attribute-value-co-occurrences|cts:element-attribute-range-query-weight|cts:element-attribute-range-query-value|cts:element-attribute-range-query-options|cts:element-attribute-range-query-operator|cts:element-attribute-range-query-element-name|cts:element-attribute-range-query-attribute-name|cts:element-attribute-range-query|cts:element-attribute-pair-geospatial-values|cts:element-attribute-pair-geospatial-value-match|cts:element-attribute-pair-geospatial-query-weight|cts:element-attribute-pair-geospatial-query-region|cts:element-attribute-pair-geospatial-query-options|cts:element-attribute-pair-geospatial-query-longitude-name|cts:element-attribute-pair-geospatial-query-latitude-name|cts:element-attribute-pair-geospatial-query-element-name|cts:element-attribute-pair-geospatial-query|cts:element-attribute-pair-geospatial-boxes|cts:document-query-uris|cts:document-query|cts:distance|cts:directory-query-uris|cts:directory-query-depth|cts:directory-query|cts:destination|cts:deregister|cts:contains|cts:confidence|cts:collections|cts:collection-query-uris|cts:collection-query|cts:collection-match|cts:classify|cts:circle-radius|cts:circle-center|cts:circle|cts:box-west|cts:box-south|cts:box-north|cts:box-east|cts:box|cts:bearing|cts:arc-intersection|cts:and-query-queries|cts:and-query-options|cts:and-query|cts:and-not-query-positive-query|cts:and-not-query-negative-query|cts:and-not-query|css:get|css:convert|cpf:success|cpf:failure|cpf:document-set-state|cpf:document-set-processing-status|cpf:document-set-last-updated|cpf:document-set-error|cpf:document-get-state|cpf:document-get-processing-status|cpf:document-get-last-updated|cpf:document-get-error|cpf:check-transition|alert:spawn-matching-actions|alert:rule-user-id-query|alert:rule-set-user-id|alert:rule-set-query|alert:rule-set-options|alert:rule-set-name|alert:rule-set-description|alert:rule-set-action|alert:rule-remove|alert:rule-name-query|alert:rule-insert|alert:rule-id-query|alert:rule-get-user-id|alert:rule-get-query|alert:rule-get-options|alert:rule-get-name|alert:rule-get-id|alert:rule-get-description|alert:rule-get-action|alert:rule-action-query|alert:remove-triggers|alert:make-rule|alert:make-log-action|alert:make-config|alert:make-action|alert:invoke-matching-actions|alert:get-my-rules|alert:get-all-rules|alert:get-actions|alert:find-matching-rules|alert:create-triggers|alert:config-set-uri|alert:config-set-trigger-ids|alert:config-set-options|alert:config-set-name|alert:config-set-description|alert:config-set-cpf-domain-names|alert:config-set-cpf-domain-ids|alert:config-insert|alert:config-get-uri|alert:config-get-trigger-ids|alert:config-get-options|alert:config-get-name|alert:config-get-id|alert:config-get-description|alert:config-get-cpf-domain-names|alert:config-get-cpf-domain-ids|alert:config-get|alert:config-delete|alert:action-set-options|alert:action-set-name|alert:action-set-module-root|alert:action-set-module-db|alert:action-set-module|alert:action-set-description|alert:action-remove|alert:action-insert|alert:action-get-options|alert:action-get-name|alert:action-get-module-root|alert:action-get-module-db|alert:action-get-module|alert:action-get-description|zero-or-one|years-from-duration|year-from-dateTime|year-from-date|upper-case|unordered|true|translate|trace|tokenize|timezone-from-time|timezone-from-dateTime|timezone-from-date|sum|subtract-dateTimes-yielding-yearMonthDuration|subtract-dateTimes-yielding-dayTimeDuration|substring-before|substring-after|substring|subsequence|string-to-codepoints|string-pad|string-length|string-join|string|static-base-uri|starts-with|seconds-from-time|seconds-from-duration|seconds-from-dateTime|round-half-to-even|round|root|reverse|resolve-uri|resolve-QName|replace|remove|QName|prefix-from-QName|position|one-or-more|number|not|normalize-unicode|normalize-space|node-name|node-kind|nilled|namespace-uri-from-QName|namespace-uri-for-prefix|namespace-uri|name|months-from-duration|month-from-dateTime|month-from-date|minutes-from-time|minutes-from-duration|minutes-from-dateTime|min|max|matches|lower-case|local-name-from-QName|local-name|last|lang|iri-to-uri|insert-before|index-of|in-scope-prefixes|implicit-timezone|idref|id|hours-from-time|hours-from-duration|hours-from-dateTime|floor|false|expanded-QName|exists|exactly-one|escape-uri|escape-html-uri|error|ends-with|encode-for-uri|empty|document-uri|doc-available|doc|distinct-values|distinct-nodes|default-collation|deep-equal|days-from-duration|day-from-dateTime|day-from-date|data|current-time|current-dateTime|current-date|count|contains|concat|compare|collection|codepoints-to-string|codepoint-equal|ceiling|boolean|base-uri|avg|adjust-time-to-timezone|adjust-dateTime-to-timezone|adjust-date-to-timezone|abs)\b/],
+["pln",/^[A-Za-z0-9_\-\:]+/],["pln",/^[\t\n\r \xA0]+/]]),["xq","xquery"]);
diff --git a/apidoc/vendor/prettify/lang-yaml.js b/apidoc/vendor/prettify/lang-yaml.js
new file mode 100644 (file)
index 0000000..a2b4b07
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2015 ribrdb @ code.google.com
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:|>?]+/,null,":|>?"],["dec",/^%(?:YAML|TAG)[^#\r\n]+/,null,"%"],["typ",/^[&]\S+/,null,"&"],["typ",/^!\S*/,null,"!"],["str",/^"(?:[^\\"]|\\.)*(?:"|$)/,null,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,null,"'"],["com",/^#[^\r\n]*/,null,"#"],["pln",/^\s+/,null," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\r\n]|$)/],["pun",/^-/],["kwd",/^[\w-]+:[ \r\n]/],["pln",
+/^\w+/]]),["yaml","yml"]);
diff --git a/apidoc/vendor/prettify/lang-yml.js b/apidoc/vendor/prettify/lang-yml.js
new file mode 100644 (file)
index 0000000..a2b4b07
--- /dev/null
@@ -0,0 +1,18 @@
+/*
+
+ Copyright (C) 2015 ribrdb @ code.google.com
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+PR.registerLangHandler(PR.createSimpleLexer([["pun",/^[:|>?]+/,null,":|>?"],["dec",/^%(?:YAML|TAG)[^#\r\n]+/,null,"%"],["typ",/^[&]\S+/,null,"&"],["typ",/^!\S*/,null,"!"],["str",/^"(?:[^\\"]|\\.)*(?:"|$)/,null,'"'],["str",/^'(?:[^']|'')*(?:'|$)/,null,"'"],["com",/^#[^\r\n]*/,null,"#"],["pln",/^\s+/,null," \t\r\n"]],[["dec",/^(?:---|\.\.\.)(?:[\r\n]|$)/],["pun",/^-/],["kwd",/^[\w-]+:[ \r\n]/],["pln",
+/^\w+/]]),["yaml","yml"]);
diff --git a/apidoc/vendor/prettify/prettify.css b/apidoc/vendor/prettify/prettify.css
new file mode 100644 (file)
index 0000000..d44b3a2
--- /dev/null
@@ -0,0 +1 @@
+.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
\ No newline at end of file
diff --git a/apidoc/vendor/prettify/prettify.js b/apidoc/vendor/prettify/prettify.js
new file mode 100644 (file)
index 0000000..0a2b435
--- /dev/null
@@ -0,0 +1,46 @@
+!function(){/*
+
+ Copyright (C) 2006 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+window.PR_SHOULD_USE_CONTINUATION=!0;
+(function(){function T(a){function d(e){var b=e.charCodeAt(0);if(92!==b)return b;var a=e.charAt(1);return(b=w[a])?b:"0"<=a&&"7">=a?parseInt(e.substring(1),8):"u"===a||"x"===a?parseInt(e.substring(2),16):e.charCodeAt(1)}function f(e){if(32>e)return(16>e?"\\x0":"\\x")+e.toString(16);e=String.fromCharCode(e);return"\\"===e||"-"===e||"]"===e||"^"===e?"\\"+e:e}function b(e){var b=e.substring(1,e.length-1).match(/\\u[0-9A-Fa-f]{4}|\\x[0-9A-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\s\S]|-|[^-\\]/g);e=
+[];var a="^"===b[0],c=["["];a&&c.push("^");for(var a=a?1:0,g=b.length;a<g;++a){var h=b[a];if(/\\[bdsw]/i.test(h))c.push(h);else{var h=d(h),k;a+2<g&&"-"===b[a+1]?(k=d(b[a+2]),a+=2):k=h;e.push([h,k]);65>k||122<h||(65>k||90<h||e.push([Math.max(65,h)|32,Math.min(k,90)|32]),97>k||122<h||e.push([Math.max(97,h)&-33,Math.min(k,122)&-33]))}}e.sort(function(e,a){return e[0]-a[0]||a[1]-e[1]});b=[];g=[];for(a=0;a<e.length;++a)h=e[a],h[0]<=g[1]+1?g[1]=Math.max(g[1],h[1]):b.push(g=h);for(a=0;a<b.length;++a)h=b[a],
+c.push(f(h[0])),h[1]>h[0]&&(h[1]+1>h[0]&&c.push("-"),c.push(f(h[1])));c.push("]");return c.join("")}function v(e){for(var a=e.source.match(/(?:\[(?:[^\x5C\x5D]|\\[\s\S])*\]|\\u[A-Fa-f0-9]{4}|\\x[A-Fa-f0-9]{2}|\\[0-9]+|\\[^ux0-9]|\(\?[:!=]|[\(\)\^]|[^\x5B\x5C\(\)\^]+)/g),c=a.length,d=[],g=0,h=0;g<c;++g){var k=a[g];"("===k?++h:"\\"===k.charAt(0)&&(k=+k.substring(1))&&(k<=h?d[k]=-1:a[g]=f(k))}for(g=1;g<d.length;++g)-1===d[g]&&(d[g]=++A);for(h=g=0;g<c;++g)k=a[g],"("===k?(++h,d[h]||(a[g]="(?:")):"\\"===
+k.charAt(0)&&(k=+k.substring(1))&&k<=h&&(a[g]="\\"+d[k]);for(g=0;g<c;++g)"^"===a[g]&&"^"!==a[g+1]&&(a[g]="");if(e.ignoreCase&&n)for(g=0;g<c;++g)k=a[g],e=k.charAt(0),2<=k.length&&"["===e?a[g]=b(k):"\\"!==e&&(a[g]=k.replace(/[a-zA-Z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var A=0,n=!1,l=!1,m=0,c=a.length;m<c;++m){var p=a[m];if(p.ignoreCase)l=!0;else if(/[a-z]/i.test(p.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){n=!0;
+l=!1;break}}for(var w={b:8,t:9,n:10,v:11,f:12,r:13},r=[],m=0,c=a.length;m<c;++m){p=a[m];if(p.global||p.multiline)throw Error(""+p);r.push("(?:"+v(p)+")")}return new RegExp(r.join("|"),l?"gi":"g")}function U(a,d){function f(a){var c=a.nodeType;if(1==c){if(!b.test(a.className)){for(c=a.firstChild;c;c=c.nextSibling)f(c);c=a.nodeName.toLowerCase();if("br"===c||"li"===c)v[l]="\n",n[l<<1]=A++,n[l++<<1|1]=a}}else if(3==c||4==c)c=a.nodeValue,c.length&&(c=d?c.replace(/\r\n?/g,"\n"):c.replace(/[ \t\r\n]+/g,
+" "),v[l]=c,n[l<<1]=A,A+=c.length,n[l++<<1|1]=a)}var b=/(?:^|\s)nocode(?:\s|$)/,v=[],A=0,n=[],l=0;f(a);return{a:v.join("").replace(/\n$/,""),c:n}}function J(a,d,f,b,v){f&&(a={h:a,l:1,j:null,m:null,a:f,c:null,i:d,g:null},b(a),v.push.apply(v,a.g))}function V(a){for(var d=void 0,f=a.firstChild;f;f=f.nextSibling)var b=f.nodeType,d=1===b?d?a:f:3===b?W.test(f.nodeValue)?a:d:d;return d===a?void 0:d}function G(a,d){function f(a){for(var l=a.i,m=a.h,c=[l,"pln"],p=0,w=a.a.match(v)||[],r={},e=0,t=w.length;e<
+t;++e){var z=w[e],q=r[z],g=void 0,h;if("string"===typeof q)h=!1;else{var k=b[z.charAt(0)];if(k)g=z.match(k[1]),q=k[0];else{for(h=0;h<A;++h)if(k=d[h],g=z.match(k[1])){q=k[0];break}g||(q="pln")}!(h=5<=q.length&&"lang-"===q.substring(0,5))||g&&"string"===typeof g[1]||(h=!1,q="src");h||(r[z]=q)}k=p;p+=z.length;if(h){h=g[1];var B=z.indexOf(h),D=B+h.length;g[2]&&(D=z.length-g[2].length,B=D-h.length);q=q.substring(5);J(m,l+k,z.substring(0,B),f,c);J(m,l+k+B,h,K(q,h),c);J(m,l+k+D,z.substring(D),f,c)}else c.push(l+
+k,q)}a.g=c}var b={},v;(function(){for(var f=a.concat(d),l=[],m={},c=0,p=f.length;c<p;++c){var w=f[c],r=w[3];if(r)for(var e=r.length;0<=--e;)b[r.charAt(e)]=w;w=w[1];r=""+w;m.hasOwnProperty(r)||(l.push(w),m[r]=null)}l.push(/[\0-\uffff]/);v=T(l)})();var A=d.length;return f}function y(a){var d=[],f=[];a.tripleQuotedStrings?d.push(["str",/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
+null,"'\""]):a.multiLineStrings?d.push(["str",/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]):d.push(["str",/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"]);a.verbatimStrings&&f.push(["str",/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null]);var b=a.hashComments;b&&(a.cStyleComments?(1<b?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"]):d.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,
+null,"#"]),f.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])):d.push(["com",/^#[^\r\n]*/,null,"#"]));a.cStyleComments&&(f.push(["com",/^\/\/[^\r\n]*/,null]),f.push(["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null]));if(b=a.regexLiterals){var v=(b=1<b?"":"\n\r")?".":"[\\S\\s]";f.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+
+("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+v+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+v+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&f.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&f.push(["kwd",new RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),null]);d.push(["pln",/^\s+/,null," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");f.push(["lit",/^@[a-z_$][a-z_$@0-9]*/i,null],["typ",/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],["pln",/^[a-z_$][a-z_$@0-9]*/i,
+null],["lit",/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,null,"0123456789"],["pln",/^\\[\s\S]?/,null],["pun",new RegExp(b),null]);return G(d,f)}function L(a,d,f){function b(a){var c=a.nodeType;if(1==c&&!A.test(a.className))if("br"===a.nodeName)v(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((3==c||4==c)&&f){var d=a.nodeValue,q=d.match(n);q&&(c=d.substring(0,q.index),a.nodeValue=c,(d=d.substring(q.index+q[0].length))&&
+a.parentNode.insertBefore(l.createTextNode(d),a.nextSibling),v(a),c||a.parentNode.removeChild(a))}}function v(a){function b(a,c){var d=c?a.cloneNode(!1):a,k=a.parentNode;if(k){var k=b(k,1),e=a.nextSibling;k.appendChild(d);for(var f=e;f;f=e)e=f.nextSibling,k.appendChild(f)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;a=b(a.nextSibling,0);for(var d;(d=a.parentNode)&&1===d.nodeType;)a=d;c.push(a)}for(var A=/(?:^|\s)nocode(?:\s|$)/,n=/\r\n?|\n/,l=a.ownerDocument,m=l.createElement("li");a.firstChild;)m.appendChild(a.firstChild);
+for(var c=[m],p=0;p<c.length;++p)b(c[p]);d===(d|0)&&c[0].setAttribute("value",d);var w=l.createElement("ol");w.className="linenums";d=Math.max(0,d-1|0)||0;for(var p=0,r=c.length;p<r;++p)m=c[p],m.className="L"+(p+d)%10,m.firstChild||m.appendChild(l.createTextNode("\u00a0")),w.appendChild(m);a.appendChild(w)}function t(a,d){for(var f=d.length;0<=--f;){var b=d[f];I.hasOwnProperty(b)?E.console&&console.warn("cannot override language handler %s",b):I[b]=a}}function K(a,d){a&&I.hasOwnProperty(a)||(a=/^\s*</.test(d)?
+"default-markup":"default-code");return I[a]}function M(a){var d=a.j;try{var f=U(a.h,a.l),b=f.a;a.a=b;a.c=f.c;a.i=0;K(d,b)(a);var v=/\bMSIE\s(\d+)/.exec(navigator.userAgent),v=v&&8>=+v[1],d=/\n/g,A=a.a,n=A.length,f=0,l=a.c,m=l.length,b=0,c=a.g,p=c.length,w=0;c[p]=n;var r,e;for(e=r=0;e<p;)c[e]!==c[e+2]?(c[r++]=c[e++],c[r++]=c[e++]):e+=2;p=r;for(e=r=0;e<p;){for(var t=c[e],z=c[e+1],q=e+2;q+2<=p&&c[q+1]===z;)q+=2;c[r++]=t;c[r++]=z;e=q}c.length=r;var g=a.h;a="";g&&(a=g.style.display,g.style.display="none");
+try{for(;b<m;){var h=l[b+2]||n,k=c[w+2]||n,q=Math.min(h,k),B=l[b+1],D;if(1!==B.nodeType&&(D=A.substring(f,q))){v&&(D=D.replace(d,"\r"));B.nodeValue=D;var N=B.ownerDocument,u=N.createElement("span");u.className=c[w+1];var y=B.parentNode;y.replaceChild(u,B);u.appendChild(B);f<h&&(l[b+1]=B=N.createTextNode(A.substring(q,h)),y.insertBefore(B,u.nextSibling))}f=q;f>=h&&(b+=2);f>=k&&(w+=2)}}finally{g&&(g.style.display=a)}}catch(x){E.console&&console.log(x&&x.stack||x)}}var E=window,C=["break,continue,do,else,for,if,return,while"],
+F=[[C,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],H=[F,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
+O=[F,"abstract,assert,boolean,byte,extends,finally,final,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],P=[F,"abstract,as,base,bool,by,byte,checked,decimal,delegate,descending,dynamic,event,finally,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,null,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],F=[F,"debugger,eval,export,function,get,instanceof,null,set,undefined,var,with,Infinity,NaN"],
+Q=[C,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],R=[C,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],C=[C,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],S=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,
+W=/\S/,X=y({keywords:[H,P,O,F,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",Q,R,C],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),I={};t(X,["default-code"]);t(G([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",
+/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),"default-markup htm html mxml xhtml xml xsl".split(" "));t(G([["pln",/^[\s]+/,null," \t\r\n"],["atv",/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
+["pun",/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);t(G([],[["atv",/^[\s\S]+/]]),["uq.val"]);t(y({keywords:H,hashComments:!0,cStyleComments:!0,types:S}),"c cc cpp cxx cyc m".split(" "));t(y({keywords:"null,true,false"}),["json"]);t(y({keywords:P,hashComments:!0,cStyleComments:!0,
+verbatimStrings:!0,types:S}),["cs"]);t(y({keywords:O,cStyleComments:!0}),["java"]);t(y({keywords:C,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);t(y({keywords:Q,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);t(y({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),
+["perl","pl","pm"]);t(y({keywords:R,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);t(y({keywords:F,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);t(y({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);t(G([],[["str",/^[\s\S]+/]]),["regex"]);
+var Y=E.PR={createSimpleLexer:G,registerLangHandler:t,sourceDecorator:y,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:E.prettyPrintOne=function(a,d,f){f=f||!1;d=d||null;var b=document.createElement("div");b.innerHTML="<pre>"+a+"</pre>";b=b.firstChild;f&&L(b,f,!0);M({j:d,m:f,h:b,l:1,a:null,i:null,c:null,
+g:null});return b.innerHTML},prettyPrint:E.prettyPrint=function(a,d){function f(){for(var b=E.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;p<t.length&&c.now()<b;p++){for(var d=t[p],l=g,m=d;m=m.previousSibling;){var n=m.nodeType,u=(7===n||8===n)&&m.nodeValue;if(u?!/^\??prettify\b/.test(u):3!==n||/\S/.test(m.nodeValue))break;if(u){l={};u.replace(/\b(\w+)=([\w:.%+-]+)/g,function(a,b,c){l[b]=c});break}}m=d.className;if((l!==g||r.test(m))&&!e.test(m)){n=!1;for(u=d.parentNode;u;u=u.parentNode)if(q.test(u.tagName)&&
+u.className&&r.test(u.className)){n=!0;break}if(!n){d.className+=" prettyprinted";n=l.lang;if(!n){var n=m.match(w),C;!n&&(C=V(d))&&z.test(C.tagName)&&(n=C.className.match(w));n&&(n=n[1])}if(y.test(d.tagName))u=1;else var u=d.currentStyle,x=v.defaultView,u=(u=u?u.whiteSpace:x&&x.getComputedStyle?x.getComputedStyle(d,null).getPropertyValue("white-space"):0)&&"pre"===u.substring(0,3);x=l.linenums;(x="true"===x||+x)||(x=(x=m.match(/\blinenums\b(?::(\d+))?/))?x[1]&&x[1].length?+x[1]:!0:!1);x&&L(d,x,u);
+M({j:n,h:d,m:x,l:u,a:null,i:null,c:null,g:null})}}}p<t.length?E.setTimeout(f,250):"function"===typeof a&&a()}for(var b=d||document.body,v=b.ownerDocument||document,b=[b.getElementsByTagName("pre"),b.getElementsByTagName("code"),b.getElementsByTagName("xmp")],t=[],n=0;n<b.length;++n)for(var l=0,m=b[n].length;l<m;++l)t.push(b[n][l]);var b=null,c=Date;c.now||(c={now:function(){return+new Date}});var p=0,w=/\blang(?:uage)?-([\w.]+)(?!\S)/,r=/\bprettyprint\b/,e=/\bprettyprinted\b/,y=/pre|xmp/i,z=/^code$/i,
+q=/^(?:pre|code|xmp)$/i,g={};f()}},H=E.define;"function"===typeof H&&H.amd&&H("google-code-prettify",[],function(){return Y})})();}()
diff --git a/apidoc/vendor/prettify/run_prettify.js b/apidoc/vendor/prettify/run_prettify.js
new file mode 100644 (file)
index 0000000..a9691da
--- /dev/null
@@ -0,0 +1,63 @@
+!function(){/*
+
+ Copyright (C) 2013 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ Copyright (C) 2006 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+*/
+(function(){function ba(g){function k(){try{M.doScroll("left")}catch(g){t.setTimeout(k,50);return}z("poll")}function z(k){if("readystatechange"!=k.type||"complete"==A.readyState)("load"==k.type?t:A)[B](p+k.type,z,!1),!q&&(q=!0)&&g.call(t,k.type||k)}var Y=A.addEventListener,q=!1,C=!0,x=Y?"addEventListener":"attachEvent",B=Y?"removeEventListener":"detachEvent",p=Y?"":"on";if("complete"==A.readyState)g.call(t,"lazy");else{if(A.createEventObject&&M.doScroll){try{C=!t.frameElement}catch(da){}C&&k()}A[x](p+
+"DOMContentLoaded",z,!1);A[x](p+"readystatechange",z,!1);t[x](p+"load",z,!1)}}function U(){V&&ba(function(){var g=N.length;ca(g?function(){for(var k=0;k<g;++k)(function(g){t.setTimeout(function(){t.exports[N[g]].apply(t,arguments)},0)})(k)}:void 0)})}for(var t=window,A=document,M=A.documentElement,O=A.head||A.getElementsByTagName("head")[0]||M,B="",F=A.getElementsByTagName("script"),q=F.length;0<=--q;){var P=F[q],Z=P.src.match(/^[^?#]*\/run_prettify\.js(\?[^#]*)?(?:#.*)?$/);if(Z){B=Z[1]||"";P.parentNode.removeChild(P);
+break}}var V=!0,H=[],Q=[],N=[];B.replace(/[?&]([^&=]+)=([^&]+)/g,function(g,k,z){z=decodeURIComponent(z);k=decodeURIComponent(k);"autorun"==k?V=!/^[0fn]/i.test(z):"lang"==k?H.push(z):"skin"==k?Q.push(z):"callback"==k&&N.push(z)});q=0;for(B=H.length;q<B;++q)(function(){var g=A.createElement("script");g.onload=g.onerror=g.onreadystatechange=function(){!g||g.readyState&&!/loaded|complete/.test(g.readyState)||(g.onerror=g.onload=g.onreadystatechange=null,--T,T||t.setTimeout(U,0),g.parentNode&&g.parentNode.removeChild(g),
+g=null)};g.type="text/javascript";g.src="https://cdn.rawgit.com/google/code-prettify/master/loader/lang-"+encodeURIComponent(H[q])+".js";O.insertBefore(g,O.firstChild)})(H[q]);for(var T=H.length,F=[],q=0,B=Q.length;q<B;++q)F.push("https://cdn.rawgit.com/google/code-prettify/master/loader/skins/"+encodeURIComponent(Q[q])+".css");F.push("https://cdn.rawgit.com/google/code-prettify/master/loader/prettify.css");(function(g){function k(q){if(q!==z){var t=A.createElement("link");t.rel="stylesheet";t.type=
+"text/css";q+1<z&&(t.error=t.onerror=function(){k(q+1)});t.href=g[q];O.appendChild(t)}}var z=g.length;k(0)})(F);var ca=function(){window.PR_SHOULD_USE_CONTINUATION=!0;var g;(function(){function k(a){function d(e){var b=e.charCodeAt(0);if(92!==b)return b;var a=e.charAt(1);return(b=W[a])?b:"0"<=a&&"7">=a?parseInt(e.substring(1),8):"u"===a||"x"===a?parseInt(e.substring(2),16):e.charCodeAt(1)}function f(e){if(32>e)return(16>e?"\\x0":"\\x")+e.toString(16);e=String.fromCharCode(e);return"\\"===e||"-"===
+e||"]"===e||"^"===e?"\\"+e:e}function b(e){var b=e.substring(1,e.length-1).match(/\\u[0-9A-Fa-f]{4}|\\x[0-9A-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\s\S]|-|[^-\\]/g);e=[];var a="^"===b[0],c=["["];a&&c.push("^");for(var a=a?1:0,h=b.length;a<h;++a){var l=b[a];if(/\\[bdsw]/i.test(l))c.push(l);else{var l=d(l),n;a+2<h&&"-"===b[a+1]?(n=d(b[a+2]),a+=2):n=l;e.push([l,n]);65>n||122<l||(65>n||90<l||e.push([Math.max(65,l)|32,Math.min(n,90)|32]),97>n||122<l||e.push([Math.max(97,l)&-33,Math.min(n,122)&-33]))}}e.sort(function(e,
+a){return e[0]-a[0]||a[1]-e[1]});b=[];h=[];for(a=0;a<e.length;++a)l=e[a],l[0]<=h[1]+1?h[1]=Math.max(h[1],l[1]):b.push(h=l);for(a=0;a<b.length;++a)l=b[a],c.push(f(l[0])),l[1]>l[0]&&(l[1]+1>l[0]&&c.push("-"),c.push(f(l[1])));c.push("]");return c.join("")}function g(e){for(var a=e.source.match(/(?:\[(?:[^\x5C\x5D]|\\[\s\S])*\]|\\u[A-Fa-f0-9]{4}|\\x[A-Fa-f0-9]{2}|\\[0-9]+|\\[^ux0-9]|\(\?[:!=]|[\(\)\^]|[^\x5B\x5C\(\)\^]+)/g),c=a.length,d=[],h=0,l=0;h<c;++h){var n=a[h];"("===n?++l:"\\"===n.charAt(0)&&(n=
++n.substring(1))&&(n<=l?d[n]=-1:a[h]=f(n))}for(h=1;h<d.length;++h)-1===d[h]&&(d[h]=++k);for(l=h=0;h<c;++h)n=a[h],"("===n?(++l,d[l]||(a[h]="(?:")):"\\"===n.charAt(0)&&(n=+n.substring(1))&&n<=l&&(a[h]="\\"+d[n]);for(h=0;h<c;++h)"^"===a[h]&&"^"!==a[h+1]&&(a[h]="");if(e.ignoreCase&&I)for(h=0;h<c;++h)n=a[h],e=n.charAt(0),2<=n.length&&"["===e?a[h]=b(n):"\\"!==e&&(a[h]=n.replace(/[a-zA-Z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var k=0,I=!1,
+m=!1,J=0,c=a.length;J<c;++J){var r=a[J];if(r.ignoreCase)m=!0;else if(/[a-z]/i.test(r.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){I=!0;m=!1;break}}for(var W={b:8,t:9,n:10,v:11,f:12,r:13},u=[],J=0,c=a.length;J<c;++J){r=a[J];if(r.global||r.multiline)throw Error(""+r);u.push("(?:"+g(r)+")")}return new RegExp(u.join("|"),m?"gi":"g")}function q(a,d){function f(a){var c=a.nodeType;if(1==c){if(!b.test(a.className)){for(c=a.firstChild;c;c=c.nextSibling)f(c);c=a.nodeName.toLowerCase();if("br"===
+c||"li"===c)g[m]="\n",I[m<<1]=k++,I[m++<<1|1]=a}}else if(3==c||4==c)c=a.nodeValue,c.length&&(c=d?c.replace(/\r\n?/g,"\n"):c.replace(/[ \t\r\n]+/g," "),g[m]=c,I[m<<1]=k,k+=c.length,I[m++<<1|1]=a)}var b=/(?:^|\s)nocode(?:\s|$)/,g=[],k=0,I=[],m=0;f(a);return{a:g.join("").replace(/\n$/,""),c:I}}function t(a,d,f,b,g){f&&(a={h:a,l:1,j:null,m:null,a:f,c:null,i:d,g:null},b(a),g.push.apply(g,a.g))}function A(a){for(var d=void 0,f=a.firstChild;f;f=f.nextSibling)var b=f.nodeType,d=1===b?d?a:f:3===b?T.test(f.nodeValue)?
+a:d:d;return d===a?void 0:d}function C(a,d){function f(a){for(var m=a.i,k=a.h,c=[m,"pln"],r=0,W=a.a.match(g)||[],u={},e=0,q=W.length;e<q;++e){var D=W[e],w=u[D],h=void 0,l;if("string"===typeof w)l=!1;else{var n=b[D.charAt(0)];if(n)h=D.match(n[1]),w=n[0];else{for(l=0;l<p;++l)if(n=d[l],h=D.match(n[1])){w=n[0];break}h||(w="pln")}!(l=5<=w.length&&"lang-"===w.substring(0,5))||h&&"string"===typeof h[1]||(l=!1,w="src");l||(u[D]=w)}n=r;r+=D.length;if(l){l=h[1];var E=D.indexOf(l),G=E+l.length;h[2]&&(G=D.length-
+h[2].length,E=G-l.length);w=w.substring(5);t(k,m+n,D.substring(0,E),f,c);t(k,m+n+E,l,F(w,l),c);t(k,m+n+G,D.substring(G),f,c)}else c.push(m+n,w)}a.g=c}var b={},g;(function(){for(var f=a.concat(d),m=[],p={},c=0,r=f.length;c<r;++c){var q=f[c],u=q[3];if(u)for(var e=u.length;0<=--e;)b[u.charAt(e)]=q;q=q[1];u=""+q;p.hasOwnProperty(u)||(m.push(q),p[u]=null)}m.push(/[\0-\uffff]/);g=k(m)})();var p=d.length;return f}function x(a){var d=[],f=[];a.tripleQuotedStrings?d.push(["str",/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
+null,"'\""]):a.multiLineStrings?d.push(["str",/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"]):d.push(["str",/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"]);a.verbatimStrings&&f.push(["str",/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null]);var b=a.hashComments;b&&(a.cStyleComments?(1<b?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"]):d.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\r\n]*)/,
+null,"#"]),f.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,null])):d.push(["com",/^#[^\r\n]*/,null,"#"]));a.cStyleComments&&(f.push(["com",/^\/\/[^\r\n]*/,null]),f.push(["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null]));if(b=a.regexLiterals){var g=(b=1<b?"":"\n\r")?".":"[\\S\\s]";f.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<<?=?|>>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+
+("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+g+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+g+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&f.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&f.push(["kwd",new RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),null]);d.push(["pln",/^\s+/,null," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");f.push(["lit",/^@[a-z_$][a-z_$@0-9]*/i,null],["typ",/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],["pln",/^[a-z_$][a-z_$@0-9]*/i,
+null],["lit",/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,null,"0123456789"],["pln",/^\\[\s\S]?/,null],["pun",new RegExp(b),null]);return C(d,f)}function B(a,d,f){function b(a){var c=a.nodeType;if(1==c&&!k.test(a.className))if("br"===a.nodeName)g(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((3==c||4==c)&&f){var d=a.nodeValue,p=d.match(q);p&&(c=d.substring(0,p.index),a.nodeValue=c,(d=d.substring(p.index+p[0].length))&&
+a.parentNode.insertBefore(m.createTextNode(d),a.nextSibling),g(a),c||a.parentNode.removeChild(a))}}function g(a){function b(a,c){var d=c?a.cloneNode(!1):a,n=a.parentNode;if(n){var n=b(n,1),e=a.nextSibling;n.appendChild(d);for(var f=e;f;f=e)e=f.nextSibling,n.appendChild(f)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;a=b(a.nextSibling,0);for(var d;(d=a.parentNode)&&1===d.nodeType;)a=d;c.push(a)}for(var k=/(?:^|\s)nocode(?:\s|$)/,q=/\r\n?|\n/,m=a.ownerDocument,p=m.createElement("li");a.firstChild;)p.appendChild(a.firstChild);
+for(var c=[p],r=0;r<c.length;++r)b(c[r]);d===(d|0)&&c[0].setAttribute("value",d);var t=m.createElement("ol");t.className="linenums";d=Math.max(0,d-1|0)||0;for(var r=0,u=c.length;r<u;++r)p=c[r],p.className="L"+(r+d)%10,p.firstChild||p.appendChild(m.createTextNode("\u00a0")),t.appendChild(p);a.appendChild(t)}function p(a,d){for(var f=d.length;0<=--f;){var b=d[f];X.hasOwnProperty(b)?R.console&&console.warn("cannot override language handler %s",b):X[b]=a}}function F(a,d){a&&X.hasOwnProperty(a)||(a=/^\s*</.test(d)?
+"default-markup":"default-code");return X[a]}function H(a){var d=a.j;try{var f=q(a.h,a.l),b=f.a;a.a=b;a.c=f.c;a.i=0;F(d,b)(a);var g=/\bMSIE\s(\d+)/.exec(navigator.userAgent),g=g&&8>=+g[1],d=/\n/g,p=a.a,k=p.length,f=0,m=a.c,t=m.length,b=0,c=a.g,r=c.length,x=0;c[r]=k;var u,e;for(e=u=0;e<r;)c[e]!==c[e+2]?(c[u++]=c[e++],c[u++]=c[e++]):e+=2;r=u;for(e=u=0;e<r;){for(var A=c[e],D=c[e+1],w=e+2;w+2<=r&&c[w+1]===D;)w+=2;c[u++]=A;c[u++]=D;e=w}c.length=u;var h=a.h;a="";h&&(a=h.style.display,h.style.display="none");
+try{for(;b<t;){var l=m[b+2]||k,n=c[x+2]||k,w=Math.min(l,n),E=m[b+1],G;if(1!==E.nodeType&&(G=p.substring(f,w))){g&&(G=G.replace(d,"\r"));E.nodeValue=G;var aa=E.ownerDocument,v=aa.createElement("span");v.className=c[x+1];var B=E.parentNode;B.replaceChild(v,E);v.appendChild(E);f<l&&(m[b+1]=E=aa.createTextNode(p.substring(w,l)),B.insertBefore(E,v.nextSibling))}f=w;f>=l&&(b+=2);f>=n&&(x+=2)}}finally{h&&(h.style.display=a)}}catch(y){R.console&&console.log(y&&y.stack||y)}}var R=window,K=["break,continue,do,else,for,if,return,while"],
+L=[[K,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],S=[L,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],
+M=[L,"abstract,assert,boolean,byte,extends,finally,final,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],N=[L,"abstract,as,base,bool,by,byte,checked,decimal,delegate,descending,dynamic,event,finally,fixed,foreach,from,group,implicit,in,interface,internal,into,is,let,lock,null,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],L=[L,"debugger,eval,export,function,get,instanceof,null,set,undefined,var,with,Infinity,NaN"],
+O=[K,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],P=[K,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],K=[K,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],Q=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,
+T=/\S/,U=x({keywords:[S,N,M,L,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",O,P,K],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),X={};p(U,["default-code"]);p(C([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",
+/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),"default-markup htm html mxml xhtml xml xsl".split(" "));p(C([["pln",/^[\s]+/,null," \t\r\n"],["atv",/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
+["pun",/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);p(C([],[["atv",/^[\s\S]+/]]),["uq.val"]);p(x({keywords:S,hashComments:!0,cStyleComments:!0,types:Q}),"c cc cpp cxx cyc m".split(" "));p(x({keywords:"null,true,false"}),["json"]);p(x({keywords:N,hashComments:!0,cStyleComments:!0,
+verbatimStrings:!0,types:Q}),["cs"]);p(x({keywords:M,cStyleComments:!0}),["java"]);p(x({keywords:K,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);p(x({keywords:O,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);p(x({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),
+["perl","pl","pm"]);p(x({keywords:P,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);p(x({keywords:L,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);p(x({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);p(C([],[["str",/^[\s\S]+/]]),["regex"]);
+var V=R.PR={createSimpleLexer:C,registerLangHandler:p,sourceDecorator:x,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:function(a,d,f){f=f||!1;d=d||null;var b=document.createElement("div");b.innerHTML="<pre>"+a+"</pre>";b=b.firstChild;f&&B(b,f,!0);H({j:d,m:f,h:b,l:1,a:null,i:null,c:null,g:null});return b.innerHTML},
+prettyPrint:g=g=function(a,d){function f(){for(var b=R.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;r<p.length&&c.now()<b;r++){for(var d=p[r],k=h,q=d;q=q.previousSibling;){var m=q.nodeType,v=(7===m||8===m)&&q.nodeValue;if(v?!/^\??prettify\b/.test(v):3!==m||/\S/.test(q.nodeValue))break;if(v){k={};v.replace(/\b(\w+)=([\w:.%+-]+)/g,function(a,b,c){k[b]=c});break}}q=d.className;if((k!==h||u.test(q))&&!e.test(q)){m=!1;for(v=d.parentNode;v;v=v.parentNode)if(w.test(v.tagName)&&v.className&&u.test(v.className)){m=
+!0;break}if(!m){d.className+=" prettyprinted";m=k.lang;if(!m){var m=q.match(t),C;!m&&(C=A(d))&&z.test(C.tagName)&&(m=C.className.match(t));m&&(m=m[1])}if(x.test(d.tagName))v=1;else var v=d.currentStyle,y=g.defaultView,v=(v=v?v.whiteSpace:y&&y.getComputedStyle?y.getComputedStyle(d,null).getPropertyValue("white-space"):0)&&"pre"===v.substring(0,3);y=k.linenums;(y="true"===y||+y)||(y=(y=q.match(/\blinenums\b(?::(\d+))?/))?y[1]&&y[1].length?+y[1]:!0:!1);y&&B(d,y,v);H({j:m,h:d,m:y,l:v,a:null,i:null,c:null,
+g:null})}}}r<p.length?R.setTimeout(f,250):"function"===typeof a&&a()}for(var b=d||document.body,g=b.ownerDocument||document,b=[b.getElementsByTagName("pre"),b.getElementsByTagName("code"),b.getElementsByTagName("xmp")],p=[],k=0;k<b.length;++k)for(var m=0,q=b[k].length;m<q;++m)p.push(b[k][m]);var b=null,c=Date;c.now||(c={now:function(){return+new Date}});var r=0,t=/\blang(?:uage)?-([\w.]+)(?!\S)/,u=/\bprettyprint\b/,e=/\bprettyprinted\b/,x=/pre|xmp/i,z=/^code$/i,w=/^(?:pre|code|xmp)$/i,h={};f()}},
+S=R.define;"function"===typeof S&&S.amd&&S("google-code-prettify",[],function(){return V})})();return g}();T||t.setTimeout(U,0)})();}()
diff --git a/apidoc/vendor/require.min.js b/apidoc/vendor/require.min.js
new file mode 100644 (file)
index 0000000..651902f
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ RequireJS 2.1.22 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved.
+ Available via the MIT or new BSD license.
+ see: http://github.com/jrburke/requirejs for details
+*/
+var requirejs,require,define;
+(function(ha){function L(b){return"[object Function]"===R.call(b)}function M(b){return"[object Array]"===R.call(b)}function x(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function Y(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));--d);}}function w(b,c){return la.call(b,c)}function g(b,c){return w(b,c)&&b[c]}function E(b,c){for(var d in b)if(w(b,d)&&c(b[d],d))break}function Z(b,c,d,k){c&&E(c,function(c,g){if(d||!w(b,g))!k||"object"!==typeof c||!c||M(c)||L(c)||c instanceof
+RegExp?b[g]=c:(b[g]||(b[g]={}),Z(b[g],c,d,k))});return b}function y(b,c){return function(){return c.apply(b,arguments)}}function ia(b){throw b;}function ja(b){if(!b)return b;var c=ha;x(b.split("."),function(b){c=c[b]});return c}function G(b,c,d,g){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=g;d&&(c.originalError=d);return c}function ma(b){function c(a,n,b){var f,l,c,d,h,k,e,A;n=n&&n.split("/");var q=m.map,p=q&&q["*"];if(a){a=a.split("/");l=a.length-1;m.nodeIdCompat&&
+V.test(a[l])&&(a[l]=a[l].replace(V,""));"."===a[0].charAt(0)&&n&&(l=n.slice(0,n.length-1),a=l.concat(a));l=a;for(c=0;c<l.length;c++)d=l[c],"."===d?(l.splice(c,1),--c):".."===d&&0!==c&&(1!==c||".."!==l[2])&&".."!==l[c-1]&&0<c&&(l.splice(c-1,2),c-=2);a=a.join("/")}if(b&&q&&(n||p)){l=a.split("/");c=l.length;a:for(;0<c;--c){h=l.slice(0,c).join("/");if(n)for(d=n.length;0<d;--d)if(b=g(q,n.slice(0,d).join("/")))if(b=g(b,h)){f=b;k=c;break a}!e&&p&&g(p,h)&&(e=g(p,h),A=c)}!f&&e&&(f=e,k=A);f&&(l.splice(0,k,
+f),a=l.join("/"))}return(f=g(m.pkgs,a))?f:a}function d(a){F&&x(document.getElementsByTagName("script"),function(n){if(n.getAttribute("data-requiremodule")===a&&n.getAttribute("data-requirecontext")===h.contextName)return n.parentNode.removeChild(n),!0})}function p(a){var n=g(m.paths,a);if(n&&M(n)&&1<n.length)return n.shift(),h.require.undef(a),h.makeRequire(null,{skipMap:!0})([a]),!0}function e(a){var n,b=a?a.indexOf("!"):-1;-1<b&&(n=a.substring(0,b),a=a.substring(b+1,a.length));return[n,a]}function q(a,
+n,b,f){var l,d,z=null,k=n?n.name:null,m=a,q=!0,A="";a||(q=!1,a="_@r"+(R+=1));a=e(a);z=a[0];a=a[1];z&&(z=c(z,k,f),d=g(r,z));a&&(z?A=d&&d.normalize?d.normalize(a,function(a){return c(a,k,f)}):-1===a.indexOf("!")?c(a,k,f):a:(A=c(a,k,f),a=e(A),z=a[0],A=a[1],b=!0,l=h.nameToUrl(A)));b=!z||d||b?"":"_unnormalized"+(U+=1);return{prefix:z,name:A,parentMap:n,unnormalized:!!b,url:l,originalName:m,isDefine:q,id:(z?z+"!"+A:A)+b}}function u(a){var b=a.id,c=g(t,b);c||(c=t[b]=new h.Module(a));return c}function v(a,
+b,c){var f=a.id,l=g(t,f);if(!w(r,f)||l&&!l.defineEmitComplete)if(l=u(a),l.error&&"error"===b)c(l.error);else l.on(b,c);else"defined"===b&&c(r[f])}function B(a,b){var c=a.requireModules,f=!1;if(b)b(a);else if(x(c,function(b){if(b=g(t,b))b.error=a,b.events.error&&(f=!0,b.emit("error",a))}),!f)k.onError(a)}function C(){W.length&&(x(W,function(a){var b=a[0];"string"===typeof b&&(h.defQueueMap[b]=!0);H.push(a)}),W=[])}function D(a){delete t[a];delete aa[a]}function K(a,b,c){var f=a.map.id;a.error?a.emit("error",
+a.error):(b[f]=!0,x(a.depMaps,function(f,d){var h=f.id,k=g(t,h);!k||a.depMatched[d]||c[h]||(g(b,h)?(a.defineDep(d,r[h]),a.check()):K(k,b,c))}),c[f]=!0)}function I(){var a,b,c=(a=1E3*m.waitSeconds)&&h.startTime+a<(new Date).getTime(),f=[],l=[],k=!1,g=!0;if(!ba){ba=!0;E(aa,function(a){var h=a.map,e=h.id;if(a.enabled&&(h.isDefine||l.push(a),!a.error))if(!a.inited&&c)p(e)?k=b=!0:(f.push(e),d(e));else if(!a.inited&&a.fetched&&h.isDefine&&(k=!0,!h.prefix))return g=!1});if(c&&f.length)return a=G("timeout",
+"Load timeout for modules: "+f,null,f),a.contextName=h.contextName,B(a);g&&x(l,function(a){K(a,{},{})});c&&!b||!k||!F&&!ka||ca||(ca=setTimeout(function(){ca=0;I()},50));ba=!1}}function J(a){w(r,a[0])||u(q(a[0],null,!0)).init(a[1],a[2])}function P(a){a=a.currentTarget||a.srcElement;var b=h.onScriptLoad;a.detachEvent&&!da?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=h.onScriptError;a.detachEvent&&!da||a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}
+function Q(){var a;for(C();H.length;){a=H.shift();if(null===a[0])return B(G("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));J(a)}h.defQueueMap={}}var ba,ea,h,S,ca,m={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},t={},aa={},fa={},H=[],r={},X={},ga={},R=1,U=1;S={require:function(a){return a.require?a.require:a.require=h.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?r[a.map.id]=a.exports:a.exports=r[a.map.id]=
+{}},module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return g(m.config,a.map.id)||{}},exports:a.exports||(a.exports={})}}};ea=function(a){this.events=g(fa,a.id)||{};this.map=a;this.shim=g(m.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};ea.prototype={init:function(a,b,c,f){f=f||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=y(this,function(a){this.emit("error",
+a)}));this.depMaps=a&&a.slice(0);this.errback=c;this.inited=!0;this.ignore=f.ignore;f.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,--this.depCount,this.depExports[a]=b)},fetch:function(){if(!this.fetched){this.fetched=!0;h.startTime=(new Date).getTime();var a=this.map;if(this.shim)h.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],y(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?
+this.callPlugin():this.load()}},load:function(){var a=this.map.url;X[a]||(X[a]=!0,h.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var f=this.exports,l=this.factory;if(!this.inited)w(h.defQueueMap,c)||this.fetch();else if(this.error)this.emit("error",this.error);else if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(L(l)){try{f=h.execCb(c,l,b,f)}catch(d){a=d}this.map.isDefine&&void 0===f&&((b=this.module)?f=b.exports:
+this.usingExports&&(f=this.exports));if(a){if(this.events.error&&this.map.isDefine||k.onError!==ia)return a.requireMap=this.map,a.requireModules=this.map.isDefine?[this.map.id]:null,a.requireType=this.map.isDefine?"define":"require",B(this.error=a);if("undefined"!==typeof console&&console.error)console.error(a);else k.onError(a)}}else f=l;this.exports=f;if(this.map.isDefine&&!this.ignore&&(r[c]=f,k.onResourceLoad)){var e=[];x(this.depMaps,function(a){e.push(a.normalizedMap||a)});k.onResourceLoad(h,
+this.map,e)}D(c);this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}},callPlugin:function(){var a=this.map,b=a.id,d=q(a.prefix);this.depMaps.push(d);v(d,"defined",y(this,function(f){var l,d,e=g(ga,this.map.id),N=this.map.name,p=this.map.parentMap?this.map.parentMap.name:null,r=h.makeRequire(a.parentMap,{enableBuildCallback:!0});if(this.map.unnormalized){if(f.normalize&&(N=f.normalize(N,function(a){return c(a,
+p,!0)})||""),d=q(a.prefix+"!"+N,this.map.parentMap),v(d,"defined",y(this,function(a){this.map.normalizedMap=d;this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),f=g(t,d.id)){this.depMaps.push(d);if(this.events.error)f.on("error",y(this,function(a){this.emit("error",a)}));f.enable()}}else e?(this.map.url=h.nameToUrl(e),this.load()):(l=y(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),l.error=y(this,function(a){this.inited=!0;this.error=a;a.requireModules=[b];
+E(t,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&D(a.map.id)});B(a)}),l.fromText=y(this,function(f,c){var d=a.name,e=q(d),N=T;c&&(f=c);N&&(T=!1);u(e);w(m.config,b)&&(m.config[d]=m.config[b]);try{k.exec(f)}catch(g){return B(G("fromtexteval","fromText eval for "+b+" failed: "+g,g,[b]))}N&&(T=!0);this.depMaps.push(e);h.completeLoad(d);r([d],l)}),f.load(a.name,r,l,m))}));h.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){aa[this.map.id]=this;this.enabling=this.enabled=!0;x(this.depMaps,
+y(this,function(a,b){var c,f;if("string"===typeof a){a=q(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=g(S,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;v(a,"defined",y(this,function(a){this.undefed||(this.defineDep(b,a),this.check())}));this.errback?v(a,"error",y(this,this.errback)):this.events.error&&v(a,"error",y(this,function(a){this.emit("error",a)}))}c=a.id;f=t[c];w(S,c)||!f||f.enabled||h.enable(a,this)}));E(this.pluginMaps,y(this,function(a){var b=
+g(t,a.id);b&&!b.enabled&&h.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){x(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};h={config:m,contextName:b,registry:t,defined:r,urlFetched:X,defQueue:H,defQueueMap:{},Module:ea,makeModuleMap:q,nextTick:k.nextTick,onError:B,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=m.shim,c={paths:!0,
+bundles:!0,config:!0,map:!0};E(a,function(a,b){c[b]?(m[b]||(m[b]={}),Z(m[b],a,!0,!0)):m[b]=a});a.bundles&&E(a.bundles,function(a,b){x(a,function(a){a!==b&&(ga[a]=b)})});a.shim&&(E(a.shim,function(a,c){M(a)&&(a={deps:a});!a.exports&&!a.init||a.exportsFn||(a.exportsFn=h.makeShimExports(a));b[c]=a}),m.shim=b);a.packages&&x(a.packages,function(a){var b;a="string"===typeof a?{name:a}:a;b=a.name;a.location&&(m.paths[b]=a.location);m.pkgs[b]=a.name+"/"+(a.main||"main").replace(na,"").replace(V,"")});E(t,
+function(a,b){a.inited||a.map.unnormalized||(a.map=q(b,null,!0))});(a.deps||a.callback)&&h.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(ha,arguments));return b||a.exports&&ja(a.exports)}},makeRequire:function(a,n){function e(c,d,g){var m,p;n.enableBuildCallback&&d&&L(d)&&(d.__requireJsBuild=!0);if("string"===typeof c){if(L(d))return B(G("requireargs","Invalid require call"),g);if(a&&w(S,c))return S[c](t[a.id]);if(k.get)return k.get(h,
+c,a,e);m=q(c,a,!1,!0);m=m.id;return w(r,m)?r[m]:B(G("notloaded",'Module name "'+m+'" has not been loaded yet for context: '+b+(a?"":". Use require([])")))}Q();h.nextTick(function(){Q();p=u(q(null,a));p.skipMap=n.skipMap;p.init(c,d,g,{enabled:!0});I()});return e}n=n||{};Z(e,{isBrowser:F,toUrl:function(b){var d,e=b.lastIndexOf("."),n=b.split("/")[0];-1!==e&&("."!==n&&".."!==n||1<e)&&(d=b.substring(e,b.length),b=b.substring(0,e));return h.nameToUrl(c(b,a&&a.id,!0),d,!0)},defined:function(b){return w(r,
+q(b,a,!1,!0).id)},specified:function(b){b=q(b,a,!1,!0).id;return w(r,b)||w(t,b)}});a||(e.undef=function(b){C();var c=q(b,a,!0),e=g(t,b);e.undefed=!0;d(b);delete r[b];delete X[c.url];delete fa[b];Y(H,function(a,c){a[0]===b&&H.splice(c,1)});delete h.defQueueMap[b];e&&(e.events.defined&&(fa[b]=e.events),D(b))});return e},enable:function(a){g(t,a.id)&&u(a).enable()},completeLoad:function(a){var b,c,d=g(m.shim,a)||{},e=d.exports;for(C();H.length;){c=H.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===
+a&&(b=!0);J(c)}h.defQueueMap={};c=g(t,a);if(!b&&!w(r,a)&&c&&!c.inited)if(!m.enforceDefine||e&&ja(e))J([a,d.deps||[],d.exportsFn]);else return p(a)?void 0:B(G("nodefine","No define call for "+a,null,[a]));I()},nameToUrl:function(a,b,c){var d,e,p;(d=g(m.pkgs,a))&&(a=d);if(d=g(ga,a))return h.nameToUrl(d,b,c);if(k.jsExtRegExp.test(a))d=a+(b||"");else{d=m.paths;a=a.split("/");for(e=a.length;0<e;--e)if(p=a.slice(0,e).join("/"),p=g(d,p)){M(p)&&(p=p[0]);a.splice(0,e,p);break}d=a.join("/");d+=b||(/^data\:|\?/.test(d)||
+c?"":".js");d=("/"===d.charAt(0)||d.match(/^[\w\+\.\-]+:/)?"":m.baseUrl)+d}return m.urlArgs?d+((-1===d.indexOf("?")?"?":"&")+m.urlArgs):d},load:function(a,b){k.load(h,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===a.type||oa.test((a.currentTarget||a.srcElement).readyState))O=null,a=P(a),h.completeLoad(a.id)},onScriptError:function(a){var b=P(a);if(!p(b.id)){var c=[];E(t,function(a,d){0!==d.indexOf("_@r")&&x(a.depMaps,function(a){a.id===b.id&&c.push(d);return!0})});
+return B(G("scripterror",'Script error for "'+b.id+(c.length?'", needed by: '+c.join(", "):'"'),a,[b.id]))}}};h.require=h.makeRequire();return h}function pa(){if(O&&"interactive"===O.readyState)return O;Y(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return O=b});return O}var k,C,D,I,P,J,O,Q,u,U,qa=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,ra=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,V=/\.js$/,na=/^\.\//;C=Object.prototype;var R=C.toString,la=C.hasOwnProperty,
+F=!("undefined"===typeof window||"undefined"===typeof navigator||!window.document),ka=!F&&"undefined"!==typeof importScripts,oa=F&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,da="undefined"!==typeof opera&&"[object Opera]"===opera.toString(),K={},v={},W=[],T=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(L(requirejs))return;v=requirejs;requirejs=void 0}"undefined"===typeof require||L(require)||(v=require,require=void 0);k=requirejs=function(b,
+c,d,p){var e,q="_";M(b)||"string"===typeof b||(e=b,M(c)?(b=c,c=d,d=p):b=[]);e&&e.context&&(q=e.context);(p=g(K,q))||(p=K[q]=k.s.newContext(q));e&&p.configure(e);return p.require(b,c,d)};k.config=function(b){return k(b)};k.nextTick="undefined"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=k);k.version="2.1.22";k.jsExtRegExp=/^\/|:|\?|\.js$/;k.isBrowser=F;C=k.s={contexts:K,newContext:ma};k({});x(["toUrl","undef","defined","specified"],function(b){k[b]=function(){var c=
+K._;return c.require[b].apply(c,arguments)}});F&&(D=C.head=document.getElementsByTagName("head")[0],I=document.getElementsByTagName("base")[0])&&(D=C.head=I.parentNode);k.onError=ia;k.createNode=function(b,c,d){c=b.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");c.type=b.scriptType||"text/javascript";c.charset="utf-8";c.async=!0;return c};k.load=function(b,c,d){var g=b&&b.config||{},e;if(F){e=k.createNode(g,c,d);if(g.onNodeCreated)g.onNodeCreated(e,
+g,c,d);e.setAttribute("data-requirecontext",b.contextName);e.setAttribute("data-requiremodule",c);!e.attachEvent||e.attachEvent.toString&&0>e.attachEvent.toString().indexOf("[native code")||da?(e.addEventListener("load",b.onScriptLoad,!1),e.addEventListener("error",b.onScriptError,!1)):(T=!0,e.attachEvent("onreadystatechange",b.onScriptLoad));e.src=d;Q=e;I?D.insertBefore(e,I):D.appendChild(e);Q=null;return e}if(ka)try{importScripts(d),b.completeLoad(c)}catch(q){b.onError(G("importscripts","importScripts failed for "+
+c+" at "+d,q,[c]))}};F&&!v.skipDataMain&&Y(document.getElementsByTagName("script"),function(b){D||(D=b.parentNode);if(P=b.getAttribute("data-main"))return u=P,v.baseUrl||(J=u.split("/"),u=J.pop(),U=J.length?J.join("/")+"/":"./",v.baseUrl=U),u=u.replace(V,""),k.jsExtRegExp.test(u)&&(u=P),v.deps=v.deps?v.deps.concat(u):[u],!0});define=function(b,c,d){var g,e;"string"!==typeof b&&(d=c,c=b,b=null);M(c)||(d=c,c=null);!c&&L(d)&&(c=[],d.length&&(d.toString().replace(qa,"").replace(ra,function(b,d){c.push(d)}),
+c=(1===d.length?["require"]:["require","exports","module"]).concat(c)));T&&(g=Q||pa())&&(b||(b=g.getAttribute("data-requiremodule")),e=K[g.getAttribute("data-requirecontext")]);e?(e.defQueue.push([b,c,d]),e.defQueueMap[b]=!0):W.push([b,c,d])};define.amd={jQuery:!0};k.exec=function(b){return eval(b)};k(v)}})(this);
diff --git a/apidoc/vendor/semver.min.js b/apidoc/vendor/semver.min.js
new file mode 100644 (file)
index 0000000..c2b3ff4
--- /dev/null
@@ -0,0 +1 @@
+(function(e){if(typeof module==="object"&&module.exports===e)e=module.exports=K;e.SEMVER_SPEC_VERSION="2.0.0";var r=256;var t=Number.MAX_SAFE_INTEGER||9007199254740991;var n=e.re=[];var i=e.src=[];var s=0;var o=s++;i[o]="0|[1-9]\\d*";var a=s++;i[a]="[0-9]+";var f=s++;i[f]="\\d*[a-zA-Z-][a-zA-Z0-9-]*";var u=s++;i[u]="("+i[o]+")\\."+"("+i[o]+")\\."+"("+i[o]+")";var l=s++;i[l]="("+i[a]+")\\."+"("+i[a]+")\\."+"("+i[a]+")";var p=s++;i[p]="(?:"+i[o]+"|"+i[f]+")";var h=s++;i[h]="(?:"+i[a]+"|"+i[f]+")";var c=s++;i[c]="(?:-("+i[p]+"(?:\\."+i[p]+")*))";var v=s++;i[v]="(?:-?("+i[h]+"(?:\\."+i[h]+")*))";var m=s++;i[m]="[0-9A-Za-z-]+";var g=s++;i[g]="(?:\\+("+i[m]+"(?:\\."+i[m]+")*))";var w=s++;var y="v?"+i[u]+i[c]+"?"+i[g]+"?";i[w]="^"+y+"$";var d="[v=\\s]*"+i[l]+i[v]+"?"+i[g]+"?";var j=s++;i[j]="^"+d+"$";var b=s++;i[b]="((?:<|>)?=?)";var E=s++;i[E]=i[a]+"|x|X|\\*";var $=s++;i[$]=i[o]+"|x|X|\\*";var k=s++;i[k]="[v=\\s]*("+i[$]+")"+"(?:\\.("+i[$]+")"+"(?:\\.("+i[$]+")"+"(?:"+i[c]+")?"+i[g]+"?"+")?)?";var R=s++;i[R]="[v=\\s]*("+i[E]+")"+"(?:\\.("+i[E]+")"+"(?:\\.("+i[E]+")"+"(?:"+i[v]+")?"+i[g]+"?"+")?)?";var S=s++;i[S]="^"+i[b]+"\\s*"+i[k]+"$";var x=s++;i[x]="^"+i[b]+"\\s*"+i[R]+"$";var I=s++;i[I]="(?:~>?)";var T=s++;i[T]="(\\s*)"+i[I]+"\\s+";n[T]=new RegExp(i[T],"g");var V="$1~";var A=s++;i[A]="^"+i[I]+i[k]+"$";var C=s++;i[C]="^"+i[I]+i[R]+"$";var M=s++;i[M]="(?:\\^)";var N=s++;i[N]="(\\s*)"+i[M]+"\\s+";n[N]=new RegExp(i[N],"g");var _="$1^";var z=s++;i[z]="^"+i[M]+i[k]+"$";var P=s++;i[P]="^"+i[M]+i[R]+"$";var X=s++;i[X]="^"+i[b]+"\\s*("+d+")$|^$";var Z=s++;i[Z]="^"+i[b]+"\\s*("+y+")$|^$";var q=s++;i[q]="(\\s*)"+i[b]+"\\s*("+d+"|"+i[k]+")";n[q]=new RegExp(i[q],"g");var L="$1$2$3";var F=s++;i[F]="^\\s*("+i[k]+")"+"\\s+-\\s+"+"("+i[k]+")"+"\\s*$";var G=s++;i[G]="^\\s*("+i[R]+")"+"\\s+-\\s+"+"("+i[R]+")"+"\\s*$";var O=s++;i[O]="(<|>)?=?\\s*\\*";for(var B=0;B<s;B++){if(!n[B])n[B]=new RegExp(i[B])}e.parse=D;function D(e,t){if(e instanceof K)return e;if(typeof e!=="string")return null;if(e.length>r)return null;var i=t?n[j]:n[w];if(!i.test(e))return null;try{return new K(e,t)}catch(s){return null}}e.valid=H;function H(e,r){var t=D(e,r);return t?t.version:null}e.clean=J;function J(e,r){var t=D(e.trim().replace(/^[=v]+/,""),r);return t?t.version:null}e.SemVer=K;function K(e,i){if(e instanceof K){if(e.loose===i)return e;else e=e.version}else if(typeof e!=="string"){throw new TypeError("Invalid Version: "+e)}if(e.length>r)throw new TypeError("version is longer than "+r+" characters");if(!(this instanceof K))return new K(e,i);this.loose=i;var s=e.trim().match(i?n[j]:n[w]);if(!s)throw new TypeError("Invalid Version: "+e);this.raw=e;this.major=+s[1];this.minor=+s[2];this.patch=+s[3];if(this.major>t||this.major<0)throw new TypeError("Invalid major version");if(this.minor>t||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>t||this.patch<0)throw new TypeError("Invalid patch version");if(!s[4])this.prerelease=[];else this.prerelease=s[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var r=+e;if(r>=0&&r<t)return r}return e});this.build=s[5]?s[5].split("."):[];this.format()}K.prototype.format=function(){this.version=this.major+"."+this.minor+"."+this.patch;if(this.prerelease.length)this.version+="-"+this.prerelease.join(".");return this.version};K.prototype.inspect=function(){return'<SemVer "'+this+'">'};K.prototype.toString=function(){return this.version};K.prototype.compare=function(e){if(!(e instanceof K))e=new K(e,this.loose);return this.compareMain(e)||this.comparePre(e)};K.prototype.compareMain=function(e){if(!(e instanceof K))e=new K(e,this.loose);return Y(this.major,e.major)||Y(this.minor,e.minor)||Y(this.patch,e.patch)};K.prototype.comparePre=function(e){if(!(e instanceof K))e=new K(e,this.loose);if(this.prerelease.length&&!e.prerelease.length)return-1;else if(!this.prerelease.length&&e.prerelease.length)return 1;else if(!this.prerelease.length&&!e.prerelease.length)return 0;var r=0;do{var t=this.prerelease[r];var n=e.prerelease[r];if(t===undefined&&n===undefined)return 0;else if(n===undefined)return 1;else if(t===undefined)return-1;else if(t===n)continue;else return Y(t,n)}while(++r)};K.prototype.inc=function(e,r){switch(e){case"premajor":this.prerelease.length=0;this.patch=0;this.minor=0;this.major++;this.inc("pre",r);break;case"preminor":this.prerelease.length=0;this.patch=0;this.minor++;this.inc("pre",r);break;case"prepatch":this.prerelease.length=0;this.inc("patch",r);this.inc("pre",r);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",r);this.inc("pre",r);break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0;this.patch=0;this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0;this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{var t=this.prerelease.length;while(--t>=0){if(typeof this.prerelease[t]==="number"){this.prerelease[t]++;t=-2}}if(t===-1)this.prerelease.push(0)}if(r){if(this.prerelease[0]===r){if(isNaN(this.prerelease[1]))this.prerelease=[r,0]}else this.prerelease=[r,0]}break;default:throw new Error("invalid increment argument: "+e)}this.format();return this};e.inc=Q;function Q(e,r,t,n){if(typeof t==="string"){n=t;t=undefined}try{return new K(e,t).inc(r,n).version}catch(i){return null}}e.diff=U;function U(e,r){if(pr(e,r)){return null}else{var t=D(e);var n=D(r);if(t.prerelease.length||n.prerelease.length){for(var i in t){if(i==="major"||i==="minor"||i==="patch"){if(t[i]!==n[i]){return"pre"+i}}}return"prerelease"}for(var i in t){if(i==="major"||i==="minor"||i==="patch"){if(t[i]!==n[i]){return i}}}}}e.compareIdentifiers=Y;var W=/^[0-9]+$/;function Y(e,r){var t=W.test(e);var n=W.test(r);if(t&&n){e=+e;r=+r}return t&&!n?-1:n&&!t?1:e<r?-1:e>r?1:0}e.rcompareIdentifiers=er;function er(e,r){return Y(r,e)}e.major=rr;function rr(e,r){return new K(e,r).major}e.minor=tr;function tr(e,r){return new K(e,r).minor}e.patch=nr;function nr(e,r){return new K(e,r).patch}e.compare=ir;function ir(e,r,t){return new K(e,t).compare(r)}e.compareLoose=sr;function sr(e,r){return ir(e,r,true)}e.rcompare=or;function or(e,r,t){return ir(r,e,t)}e.sort=ar;function ar(r,t){return r.sort(function(r,n){return e.compare(r,n,t)})}e.rsort=fr;function fr(r,t){return r.sort(function(r,n){return e.rcompare(r,n,t)})}e.gt=ur;function ur(e,r,t){return ir(e,r,t)>0}e.lt=lr;function lr(e,r,t){return ir(e,r,t)<0}e.eq=pr;function pr(e,r,t){return ir(e,r,t)===0}e.neq=hr;function hr(e,r,t){return ir(e,r,t)!==0}e.gte=cr;function cr(e,r,t){return ir(e,r,t)>=0}e.lte=vr;function vr(e,r,t){return ir(e,r,t)<=0}e.cmp=mr;function mr(e,r,t,n){var i;switch(r){case"===":if(typeof e==="object")e=e.version;if(typeof t==="object")t=t.version;i=e===t;break;case"!==":if(typeof e==="object")e=e.version;if(typeof t==="object")t=t.version;i=e!==t;break;case"":case"=":case"==":i=pr(e,t,n);break;case"!=":i=hr(e,t,n);break;case">":i=ur(e,t,n);break;case">=":i=cr(e,t,n);break;case"<":i=lr(e,t,n);break;case"<=":i=vr(e,t,n);break;default:throw new TypeError("Invalid operator: "+r)}return i}e.Comparator=gr;function gr(e,r){if(e instanceof gr){if(e.loose===r)return e;else e=e.value}if(!(this instanceof gr))return new gr(e,r);this.loose=r;this.parse(e);if(this.semver===wr)this.value="";else this.value=this.operator+this.semver.version}var wr={};gr.prototype.parse=function(e){var r=this.loose?n[X]:n[Z];var t=e.match(r);if(!t)throw new TypeError("Invalid comparator: "+e);this.operator=t[1];if(this.operator==="=")this.operator="";if(!t[2])this.semver=wr;else this.semver=new K(t[2],this.loose)};gr.prototype.inspect=function(){return'<SemVer Comparator "'+this+'">'};gr.prototype.toString=function(){return this.value};gr.prototype.test=function(e){if(this.semver===wr)return true;if(typeof e==="string")e=new K(e,this.loose);return mr(e,this.operator,this.semver,this.loose)};e.Range=yr;function yr(e,r){if(e instanceof yr&&e.loose===r)return e;if(!(this instanceof yr))return new yr(e,r);this.loose=r;this.raw=e;this.set=e.split(/\s*\|\|\s*/).map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length});if(!this.set.length){throw new TypeError("Invalid SemVer Range: "+e)}this.format()}yr.prototype.inspect=function(){return'<SemVer Range "'+this.range+'">'};yr.prototype.format=function(){this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim();return this.range};yr.prototype.toString=function(){return this.range};yr.prototype.parseRange=function(e){var r=this.loose;e=e.trim();var t=r?n[G]:n[F];e=e.replace(t,Tr);e=e.replace(n[q],L);e=e.replace(n[T],V);e=e.replace(n[N],_);e=e.split(/\s+/).join(" ");var i=r?n[X]:n[Z];var s=e.split(" ").map(function(e){return jr(e,r)}).join(" ").split(/\s+/);if(this.loose){s=s.filter(function(e){return!!e.match(i)})}s=s.map(function(e){return new gr(e,r)});return s};e.toComparators=dr;function dr(e,r){return new yr(e,r).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})}function jr(e,r){e=kr(e,r);e=Er(e,r);e=Sr(e,r);e=Ir(e,r);return e}function br(e){return!e||e.toLowerCase()==="x"||e==="*"}function Er(e,r){return e.trim().split(/\s+/).map(function(e){return $r(e,r)}).join(" ")}function $r(e,r){var t=r?n[C]:n[A];return e.replace(t,function(e,r,t,n,i){var s;if(br(r))s="";else if(br(t))s=">="+r+".0.0 <"+(+r+1)+".0.0";else if(br(n))s=">="+r+"."+t+".0 <"+r+"."+(+t+1)+".0";else if(i){if(i.charAt(0)!=="-")i="-"+i;s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+" <"+r+"."+(+t+1)+".0";return s})}function kr(e,r){return e.trim().split(/\s+/).map(function(e){return Rr(e,r)}).join(" ")}function Rr(e,r){var t=r?n[P]:n[z];return e.replace(t,function(e,r,t,n,i){var s;if(br(r))s="";else if(br(t))s=">="+r+".0.0 <"+(+r+1)+".0.0";else if(br(n)){if(r==="0")s=">="+r+"."+t+".0 <"+r+"."+(+t+1)+".0";else s=">="+r+"."+t+".0 <"+(+r+1)+".0.0"}else if(i){if(i.charAt(0)!=="-")i="-"+i;if(r==="0"){if(t==="0")s=">="+r+"."+t+"."+n+i+" <"+r+"."+t+"."+(+n+1);else s=">="+r+"."+t+"."+n+i+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+i+" <"+(+r+1)+".0.0"}else{if(r==="0"){if(t==="0")s=">="+r+"."+t+"."+n+" <"+r+"."+t+"."+(+n+1);else s=">="+r+"."+t+"."+n+" <"+r+"."+(+t+1)+".0"}else s=">="+r+"."+t+"."+n+" <"+(+r+1)+".0.0"}return s})}function Sr(e,r){return e.split(/\s+/).map(function(e){return xr(e,r)}).join(" ")}function xr(e,r){e=e.trim();var t=r?n[x]:n[S];return e.replace(t,function(e,r,t,n,i,s){var o=br(t);var a=o||br(n);var f=a||br(i);var u=f;if(r==="="&&u)r="";if(o){if(r===">"||r==="<"){e="<0.0.0"}else{e="*"}}else if(r&&u){if(a)n=0;if(f)i=0;if(r===">"){r=">=";if(a){t=+t+1;n=0;i=0}else if(f){n=+n+1;i=0}}else if(r==="<="){r="<";if(a)t=+t+1;else n=+n+1}e=r+t+"."+n+"."+i}else if(a){e=">="+t+".0.0 <"+(+t+1)+".0.0"}else if(f){e=">="+t+"."+n+".0 <"+t+"."+(+n+1)+".0"}return e})}function Ir(e,r){return e.trim().replace(n[O],"")}function Tr(e,r,t,n,i,s,o,a,f,u,l,p,h){if(br(t))r="";else if(br(n))r=">="+t+".0.0";else if(br(i))r=">="+t+"."+n+".0";else r=">="+r;if(br(f))a="";else if(br(u))a="<"+(+f+1)+".0.0";else if(br(l))a="<"+f+"."+(+u+1)+".0";else if(p)a="<="+f+"."+u+"."+l+"-"+p;else a="<="+a;return(r+" "+a).trim()}yr.prototype.test=function(e){if(!e)return false;if(typeof e==="string")e=new K(e,this.loose);for(var r=0;r<this.set.length;r++){if(Vr(this.set[r],e))return true}return false};function Vr(e,r){for(var t=0;t<e.length;t++){if(!e[t].test(r))return false}if(r.prerelease.length){for(var t=0;t<e.length;t++){if(e[t].semver===wr)return true;if(e[t].semver.prerelease.length>0){var n=e[t].semver;if(n.major===r.major&&n.minor===r.minor&&n.patch===r.patch)return true}}return false}return true}e.satisfies=Ar;function Ar(e,r,t){try{r=new yr(r,t)}catch(n){return false}return r.test(e)}e.maxSatisfying=Cr;function Cr(e,r,t){return e.filter(function(e){return Ar(e,r,t)}).sort(function(e,r){return or(e,r,t)})[0]||null}e.validRange=Mr;function Mr(e,r){try{return new yr(e,r).range||"*"}catch(t){return null}}e.ltr=Nr;function Nr(e,r,t){return zr(e,r,"<",t)}e.gtr=_r;function _r(e,r,t){return zr(e,r,">",t)}e.outside=zr;function zr(e,r,t,n){e=new K(e,n);r=new yr(r,n);var i,s,o,a,f;switch(t){case">":i=ur;s=vr;o=lr;a=">";f=">=";break;case"<":i=lr;s=cr;o=ur;a="<";f="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(Ar(e,r,n)){return false}for(var u=0;u<r.set.length;++u){var l=r.set[u];var p=null;var h=null;l.forEach(function(e){p=p||e;h=h||e;if(i(e.semver,p.semver,n)){p=e}else if(o(e.semver,h.semver,n)){h=e}});if(p.operator===a||p.operator===f){return false}if((!h.operator||h.operator===a)&&s(e,h.semver)){return false}else if(h.operator===f&&o(e,h.semver)){return false}}return true}if(typeof define==="function"&&define.amd)define(e)})(typeof exports==="object"?exports:typeof define==="function"&&define.amd?{}:semver={});
\ No newline at end of file
diff --git a/apidoc/vendor/webfontloader.js b/apidoc/vendor/webfontloader.js
new file mode 100644 (file)
index 0000000..2c7f6b3
--- /dev/null
@@ -0,0 +1,17 @@
+/* Web Font Loader v1.6.24 - (c) Adobe Systems, Google. License: Apache 2.0 */
+(function(){function aa(a,b,d){return a.call.apply(a.bind,arguments)}function ba(a,b,d){if(!a)throw Error();if(2<arguments.length){var c=Array.prototype.slice.call(arguments,2);return function(){var d=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(d,c);return a.apply(b,d)}}return function(){return a.apply(b,arguments)}}function p(a,b,d){p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?aa:ba;return p.apply(null,arguments)}var q=Date.now||function(){return+new Date};function ca(a,b){this.a=a;this.m=b||a;this.c=this.m.document}var da=!!window.FontFace;function t(a,b,d,c){b=a.c.createElement(b);if(d)for(var e in d)d.hasOwnProperty(e)&&("style"==e?b.style.cssText=d[e]:b.setAttribute(e,d[e]));c&&b.appendChild(a.c.createTextNode(c));return b}function u(a,b,d){a=a.c.getElementsByTagName(b)[0];a||(a=document.documentElement);a.insertBefore(d,a.lastChild)}function v(a){a.parentNode&&a.parentNode.removeChild(a)}
+function w(a,b,d){b=b||[];d=d||[];for(var c=a.className.split(/\s+/),e=0;e<b.length;e+=1){for(var f=!1,g=0;g<c.length;g+=1)if(b[e]===c[g]){f=!0;break}f||c.push(b[e])}b=[];for(e=0;e<c.length;e+=1){f=!1;for(g=0;g<d.length;g+=1)if(c[e]===d[g]){f=!0;break}f||b.push(c[e])}a.className=b.join(" ").replace(/\s+/g," ").replace(/^\s+|\s+$/,"")}function y(a,b){for(var d=a.className.split(/\s+/),c=0,e=d.length;c<e;c++)if(d[c]==b)return!0;return!1}
+function z(a){if("string"===typeof a.f)return a.f;var b=a.m.location.protocol;"about:"==b&&(b=a.a.location.protocol);return"https:"==b?"https:":"http:"}function ea(a){return a.m.location.hostname||a.a.location.hostname}
+function A(a,b,d){function c(){k&&e&&f&&(k(g),k=null)}b=t(a,"link",{rel:"stylesheet",href:b,media:"all"});var e=!1,f=!0,g=null,k=d||null;da?(b.onload=function(){e=!0;c()},b.onerror=function(){e=!0;g=Error("Stylesheet failed to load");c()}):setTimeout(function(){e=!0;c()},0);u(a,"head",b)}
+function B(a,b,d,c){var e=a.c.getElementsByTagName("head")[0];if(e){var f=t(a,"script",{src:b}),g=!1;f.onload=f.onreadystatechange=function(){g||this.readyState&&"loaded"!=this.readyState&&"complete"!=this.readyState||(g=!0,d&&d(null),f.onload=f.onreadystatechange=null,"HEAD"==f.parentNode.tagName&&e.removeChild(f))};e.appendChild(f);setTimeout(function(){g||(g=!0,d&&d(Error("Script load timeout")))},c||5E3);return f}return null};function C(){this.a=0;this.c=null}function D(a){a.a++;return function(){a.a--;E(a)}}function F(a,b){a.c=b;E(a)}function E(a){0==a.a&&a.c&&(a.c(),a.c=null)};function G(a){this.a=a||"-"}G.prototype.c=function(a){for(var b=[],d=0;d<arguments.length;d++)b.push(arguments[d].replace(/[\W_]+/g,"").toLowerCase());return b.join(this.a)};function H(a,b){this.c=a;this.f=4;this.a="n";var d=(b||"n4").match(/^([nio])([1-9])$/i);d&&(this.a=d[1],this.f=parseInt(d[2],10))}function fa(a){return I(a)+" "+(a.f+"00")+" 300px "+J(a.c)}function J(a){var b=[];a=a.split(/,\s*/);for(var d=0;d<a.length;d++){var c=a[d].replace(/['"]/g,"");-1!=c.indexOf(" ")||/^\d/.test(c)?b.push("'"+c+"'"):b.push(c)}return b.join(",")}function K(a){return a.a+a.f}function I(a){var b="normal";"o"===a.a?b="oblique":"i"===a.a&&(b="italic");return b}
+function ga(a){var b=4,d="n",c=null;a&&((c=a.match(/(normal|oblique|italic)/i))&&c[1]&&(d=c[1].substr(0,1).toLowerCase()),(c=a.match(/([1-9]00|normal|bold)/i))&&c[1]&&(/bold/i.test(c[1])?b=7:/[1-9]00/.test(c[1])&&(b=parseInt(c[1].substr(0,1),10))));return d+b};function ha(a,b){this.c=a;this.f=a.m.document.documentElement;this.h=b;this.a=new G("-");this.j=!1!==b.events;this.g=!1!==b.classes}function ia(a){a.g&&w(a.f,[a.a.c("wf","loading")]);L(a,"loading")}function M(a){if(a.g){var b=y(a.f,a.a.c("wf","active")),d=[],c=[a.a.c("wf","loading")];b||d.push(a.a.c("wf","inactive"));w(a.f,d,c)}L(a,"inactive")}function L(a,b,d){if(a.j&&a.h[b])if(d)a.h[b](d.c,K(d));else a.h[b]()};function ja(){this.c={}}function ka(a,b,d){var c=[],e;for(e in b)if(b.hasOwnProperty(e)){var f=a.c[e];f&&c.push(f(b[e],d))}return c};function N(a,b){this.c=a;this.f=b;this.a=t(this.c,"span",{"aria-hidden":"true"},this.f)}function O(a){u(a.c,"body",a.a)}function P(a){return"display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:"+J(a.c)+";"+("font-style:"+I(a)+";font-weight:"+(a.f+"00")+";")};function Q(a,b,d,c,e,f){this.g=a;this.j=b;this.a=c;this.c=d;this.f=e||3E3;this.h=f||void 0}Q.prototype.start=function(){var a=this.c.m.document,b=this,d=q(),c=new Promise(function(c,e){function k(){q()-d>=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?c():setTimeout(k,25)},function(){e()})}k()}),e=new Promise(function(a,c){setTimeout(c,b.f)});Promise.race([e,c]).then(function(){b.g(b.a)},function(){b.j(b.a)})};function R(a,b,d,c,e,f,g){this.v=a;this.B=b;this.c=d;this.a=c;this.s=g||"BESbswy";this.f={};this.w=e||3E3;this.u=f||null;this.o=this.j=this.h=this.g=null;this.g=new N(this.c,this.s);this.h=new N(this.c,this.s);this.j=new N(this.c,this.s);this.o=new N(this.c,this.s);a=new H(this.a.c+",serif",K(this.a));a=P(a);this.g.a.style.cssText=a;a=new H(this.a.c+",sans-serif",K(this.a));a=P(a);this.h.a.style.cssText=a;a=new H("serif",K(this.a));a=P(a);this.j.a.style.cssText=a;a=new H("sans-serif",K(this.a));a=
+P(a);this.o.a.style.cssText=a;O(this.g);O(this.h);O(this.j);O(this.o)}var S={D:"serif",C:"sans-serif"},T=null;function U(){if(null===T){var a=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent);T=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return T}R.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f["sans-serif"]=this.o.a.offsetWidth;this.A=q();la(this)};
+function ma(a,b,d){for(var c in S)if(S.hasOwnProperty(c)&&b===a.f[S[c]]&&d===a.f[S[c]])return!0;return!1}function la(a){var b=a.g.a.offsetWidth,d=a.h.a.offsetWidth,c;(c=b===a.f.serif&&d===a.f["sans-serif"])||(c=U()&&ma(a,b,d));c?q()-a.A>=a.w?U()&&ma(a,b,d)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):na(a):V(a,a.v)}function na(a){setTimeout(p(function(){la(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.o.a);b(this.a)},a),0)};function W(a,b,d){this.c=a;this.a=b;this.f=0;this.o=this.j=!1;this.s=d}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c("wf",a.c,K(a).toString(),"active")],[b.a.c("wf",a.c,K(a).toString(),"loading"),b.a.c("wf",a.c,K(a).toString(),"inactive")]);L(b,"fontactive",a);this.o=!0;oa(this)};
+W.prototype.h=function(a){var b=this.a;if(b.g){var d=y(b.f,b.a.c("wf",a.c,K(a).toString(),"active")),c=[],e=[b.a.c("wf",a.c,K(a).toString(),"loading")];d||c.push(b.a.c("wf",a.c,K(a).toString(),"inactive"));w(b.f,c,e)}L(b,"fontinactive",a);oa(this)};function oa(a){0==--a.f&&a.j&&(a.o?(a=a.a,a.g&&w(a.f,[a.a.c("wf","active")],[a.a.c("wf","loading"),a.a.c("wf","inactive")]),L(a,"active")):M(a.a))};function pa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}pa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;qa(this,new ha(this.c,a),a)};
+function ra(a,b,d,c,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,k=c||null||{};if(0===d.length&&f)M(b.a);else{b.f+=d.length;f&&(b.j=f);var h,m=[];for(h=0;h<d.length;h++){var l=d[h],n=k[l.c],r=b.a,x=l;r.g&&w(r.f,[r.a.c("wf",x.c,K(x).toString(),"loading")]);L(r,"fontloading",x);r=null;null===X&&(X=window.FontFace?(x=/Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent))?42<parseInt(x[1],10):!0:!1);X?r=new Q(p(b.g,b),p(b.h,b),b.c,l,b.s,n):r=new R(p(b.g,b),p(b.h,b),b.c,l,b.s,a,
+n);m.push(r)}for(h=0;h<m.length;h++)m[h].start()}},0)}function qa(a,b,d){var c=[],e=d.timeout;ia(b);var c=ka(a.a,d,a.c),f=new W(a.c,b,e);a.h=c.length;b=0;for(d=c.length;b<d;b++)c[b].load(function(b,c,d){ra(a,f,b,c,d)})};function sa(a,b){this.c=a;this.a=b}function ta(a,b,d){var c=z(a.c);a=(a.a.api||"fast.fonts.net/jsapi").replace(/^.*http(s?):(\/\/)?/,"");return c+"//"+a+"/"+b+".js"+(d?"?v="+d:"")}
+sa.prototype.load=function(a){function b(){if(e["__mti_fntLst"+d]){var c=e["__mti_fntLst"+d](),g=[],k;if(c)for(var h=0;h<c.length;h++){var m=c[h].fontfamily;void 0!=c[h].fontStyle&&void 0!=c[h].fontWeight?(k=c[h].fontStyle+c[h].fontWeight,g.push(new H(m,k))):g.push(new H(m))}a(g)}else setTimeout(function(){b()},50)}var d=this.a.projectId,c=this.a.version;if(d){var e=this.c.m;B(this.c,ta(this,d,c),function(c){c?a([]):b()}).id="__MonotypeAPIScript__"+d}else a([])};function ua(a,b){this.c=a;this.a=b}ua.prototype.load=function(a){var b,d,c=this.a.urls||[],e=this.a.families||[],f=this.a.testStrings||{},g=new C;b=0;for(d=c.length;b<d;b++)A(this.c,c[b],D(g));var k=[];b=0;for(d=e.length;b<d;b++)if(c=e[b].split(":"),c[1])for(var h=c[1].split(","),m=0;m<h.length;m+=1)k.push(new H(c[0],h[m]));else k.push(new H(c[0]));F(g,function(){a(k,f)})};function va(a,b,d){a?this.c=a:this.c=b+wa;this.a=[];this.f=[];this.g=d||""}var wa="//fonts.googleapis.com/css";function xa(a,b){for(var d=b.length,c=0;c<d;c++){var e=b[c].split(":");3==e.length&&a.f.push(e.pop());var f="";2==e.length&&""!=e[1]&&(f=":");a.a.push(e.join(f))}}
+function ya(a){if(0==a.a.length)throw Error("No fonts to load!");if(-1!=a.c.indexOf("kit="))return a.c;for(var b=a.a.length,d=[],c=0;c<b;c++)d.push(a.a[c].replace(/ /g,"+"));b=a.c+"?family="+d.join("%7C");0<a.f.length&&(b+="&subset="+a.f.join(","));0<a.g.length&&(b+="&text="+encodeURIComponent(a.g));return b};function za(a){this.f=a;this.a=[];this.c={}}
+var Aa={latin:"BESbswy",cyrillic:"\u0439\u044f\u0416",greek:"\u03b1\u03b2\u03a3",khmer:"\u1780\u1781\u1782",Hanuman:"\u1780\u1781\u1782"},Ba={thin:"1",extralight:"2","extra-light":"2",ultralight:"2","ultra-light":"2",light:"3",regular:"4",book:"4",medium:"5","semi-bold":"6",semibold:"6","demi-bold":"6",demibold:"6",bold:"7","extra-bold":"8",extrabold:"8","ultra-bold":"8",ultrabold:"8",black:"9",heavy:"9",l:"3",r:"4",b:"7"},Ca={i:"i",italic:"i",n:"n",normal:"n"},Da=/^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/;
+function Ea(a){for(var b=a.f.length,d=0;d<b;d++){var c=a.f[d].split(":"),e=c[0].replace(/\+/g," "),f=["n4"];if(2<=c.length){var g;var k=c[1];g=[];if(k)for(var k=k.split(","),h=k.length,m=0;m<h;m++){var l;l=k[m];if(l.match(/^[\w-]+$/)){var n=Da.exec(l.toLowerCase());if(null==n)l="";else{l=n[2];l=null==l||""==l?"n":Ca[l];n=n[1];if(null==n||""==n)n="4";else var r=Ba[n],n=r?r:isNaN(n)?"4":n.substr(0,1);l=[l,n].join("")}}else l="";l&&g.push(l)}0<g.length&&(f=g);3==c.length&&(c=c[2],g=[],c=c?c.split(","):
+g,0<c.length&&(c=Aa[c[0]])&&(a.c[e]=c))}a.c[e]||(c=Aa[e])&&(a.c[e]=c);for(c=0;c<f.length;c+=1)a.a.push(new H(e,f[c]))}};function Fa(a,b){this.c=a;this.a=b}var Ga={Arimo:!0,Cousine:!0,Tinos:!0};Fa.prototype.load=function(a){var b=new C,d=this.c,c=new va(this.a.api,z(d),this.a.text),e=this.a.families;xa(c,e);var f=new za(e);Ea(f);A(d,ya(c),D(b));F(b,function(){a(f.a,f.c,Ga)})};function Ha(a,b){this.c=a;this.a=b}Ha.prototype.load=function(a){var b=this.a.id,d=this.c.m;b?B(this.c,(this.a.api||"https://use.typekit.net")+"/"+b+".js",function(b){if(b)a([]);else if(d.Typekit&&d.Typekit.config&&d.Typekit.config.fn){b=d.Typekit.config.fn;for(var e=[],f=0;f<b.length;f+=2)for(var g=b[f],k=b[f+1],h=0;h<k.length;h++)e.push(new H(g,k[h]));try{d.Typekit.load({events:!1,classes:!1,async:!0})}catch(m){}a(e)}},2E3):a([])};function Ia(a,b){this.c=a;this.f=b;this.a=[]}Ia.prototype.load=function(a){var b=this.f.id,d=this.c.m,c=this;b?(d.__webfontfontdeckmodule__||(d.__webfontfontdeckmodule__={}),d.__webfontfontdeckmodule__[b]=function(b,d){for(var g=0,k=d.fonts.length;g<k;++g){var h=d.fonts[g];c.a.push(new H(h.name,ga("font-weight:"+h.weight+";font-style:"+h.style)))}a(c.a)},B(this.c,z(this.c)+(this.f.api||"//f.fontdeck.com/s/css/js/")+ea(this.c)+"/"+b+".js",function(b){b&&a([])})):a([])};var Y=new pa(window);Y.a.c.custom=function(a,b){return new ua(b,a)};Y.a.c.fontdeck=function(a,b){return new Ia(b,a)};Y.a.c.monotype=function(a,b){return new sa(b,a)};Y.a.c.typekit=function(a,b){return new Ha(b,a)};Y.a.c.google=function(a,b){return new Fa(b,a)};var Z={load:p(Y.load,Y)};"function"===typeof define&&define.amd?define(function(){return Z}):"undefined"!==typeof module&&module.exports?module.exports=Z:(window.WebFont=Z,window.WebFontConfig&&Y.load(window.WebFontConfig));}());
diff --git a/demo/agents/ajax.js b/demo/agents/ajax.js
new file mode 100644 (file)
index 0000000..035145d
--- /dev/null
@@ -0,0 +1,61 @@
+function Ajax() {}
+
+Ajax.prototype.jsonpHandler = function(url, callback) {
+    var scripturl = url + ((url.indexOf("?") !== -1) ? "&" : "?") + "callback=" + callback;
+    document.write('<script src="' + scripturl + '"></script>');
+    return scripturl;
+};
+
+Ajax.prototype.request = function(method, url, fallback, options) {
+    var self = this,
+        options = options || {},
+        sf = options.success,
+        ef = options.error,
+        params = options.params;
+    if (options.jsonp) {
+        return self.jsonpHandler(url, options.jsonpCallback);
+    }
+    var xhr = new XMLHttpRequest();
+    if ("withCredentials" in xhr) {
+        xhr.open(method, url, true);
+    } else if (typeof XDomainRequest !== "undefined") {
+        xhr = new XDomainRequest();
+        xhr.open(method, url);
+    } else {
+        if (fallback === true) {
+            xhr.open(method, url, true);
+        } else {
+            xhr = null;
+            return xhr;
+        }
+    }
+    xhr.onreadystatechange = function(event) {
+        if (this.readyState === 4) {
+            if (this.status === 200 && sf) {
+                sf(this.responseText);
+            } else {
+                ef("Not OK. " + this.statusText);
+            }
+        }
+    };
+    xhr.onerror = function(data) {
+        if (ef) {
+            ef("ajax error " + this.statusText);
+        }
+    };
+    try {
+        xhr.withCredentials = true;
+        xhr.setRequestHeader("Authorization", 'Basic ' + btoa('admin:password'));
+        if (params) {
+            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
+            xhr.send(params);
+        } else {
+            xhr.send();
+        }
+    } catch (e) {
+        if (ef) {
+            ef("error " + e.name + ": " + e.message);
+        }
+    }
+    return xhr;
+};
\ No newline at end of file
diff --git a/demo/agents/index.html b/demo/agents/index.html
new file mode 100644 (file)
index 0000000..c4847fa
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <meta charset="utf-8">
+    <title>Create agents</title>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
+    <script src="ajax.js"></script>
+</head>
+
+<body>
+    <input type="button" id="agents" value="Create Agents">
+    <script type="text/javascript">
+        $(document).ready(function() {
+            $("#agents").click(function() {
+                var a = new Ajax();
+                a.request('GET', 'http://192.168.2.140/api/users', true, {
+                        jsonp: true,
+                        success: function(res) {
+                            console.log(res);
+                        },
+                        error: function(err) {
+                            console.log(err);
+                        }
+                    })
+                    // var xhr = new XMLHttpRequest();
+                    // xhr.open("GET", "http://192.168.2.140/api/users", true);
+                    // xhr.withCredentials = true;
+                    // xhr.setRequestHeader("Authorization", 'Basic ' + btoa('admin:password'));
+                    // xhr.onload = function () {
+                    //     console.log(xhr.responseText);
+                    // };
+                    // xhr.send();
+                    // var USERNAME = 'admin';
+                    // var PASSWORD = 'password';
+                    //
+                    // for (var i = 0; i < 10; i++) {
+                    //   $.ajax({
+                    //     type: "POST",
+                    //     url: "http://192.168.2.140/api/users",
+                    //     dataType: 'jsonp',
+                    //     async: false,
+                    //     headers: {
+                    //       "Authorization": "Basic " + btoa(USERNAME + ":" + PASSWORD)
+                    //     },
+                    //     data: {
+                    //       role: 'agent',
+                    //       name: 'agent' + i
+                    //     },
+                    //     success: function(res) {
+                    //       console.log(res)
+                    //     },
+                    //     error: function(err) {
+                    //       console.log(err);
+                    //     }
+                    //   });
+                    // }
+            });
+        });
+    </script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/demo/api/index.html b/demo/api/index.html
new file mode 100644 (file)
index 0000000..28dfaba
--- /dev/null
@@ -0,0 +1,115 @@
+<html>
+
+<head>
+    <title>Jahia REST API JQuery examples</title>
+    <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
+    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
+    <script type="text/javascript" src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
+    <script type="text/javascript">
+        $(document).ready(function() {
+
+            var loggedIn = false;
+
+            $('form[name=loginForm]').submit(function() {
+                $.post($(this).attr('action'), $(this).serialize(), function(res) {
+                    if (res == 'OK') {
+                        loggedIn = true;
+                        $("form[name=loginForm]").hide();
+                        $("form[name=logoutForm]").show();
+                        $("form[name=newNodeForm]").show()
+                        refreshList();
+                    } else {
+                        alert("Couldn't log you in, please check the user name and password!")
+                    }
+                });
+                return false; // prevent default action
+            });
+
+            $('form[name=logoutForm]').submit(function() {
+                $.post($(this).attr('action'), $(this).serialize(), function(res) {
+                    loggedIn = false;
+                    $("form[name=loginForm]").show();
+                    $("form[name=logoutForm]").hide();
+                    $("form[name=newNodeForm]").hide();
+                    refreshList();
+                });
+                return false; // prevent default action
+            });
+
+            function refreshList() {
+                $("#contentList").html("Loading...");
+                $.ajax({
+                    url: "/cms/render/live/en/sites/systemsite/contents.full.json?prettyPrint=true",
+                    cache: false
+                }).done(function(json) {
+                    var listNode = $("#contentList");
+                    var listHTML = '<table class="table table-striped">';
+                    listHTML += "<thead><tr><th>Node name</th><th>Type</th><th>Text</th></tr></thead>"
+                    if (json.hasChildren) {
+                        $.each(json.childNodes, function(index, data) {
+                            listHTML += '<tr><td>' + data['j:nodename'] +
+                                '</td><td>' + data['jcr:primaryType'] +
+                                '</td><td>' + data['text'] + '</td></tr>';
+                        });
+                    }
+                    listHTML += '</table>';
+                    listNode.html(listHTML);
+                });
+            }
+
+            $('form[name=newNodeForm]').submit(function() {
+                $.post($(this).attr('action'), $(this).serialize(), function(res) {
+                    alert('Content created successfully');
+                    refreshList();
+                });
+                return false; // prevent default action
+            });
+
+        });
+    </script>
+</head>
+
+<body>
+
+    <form name='loginForm' action="/cms/login">
+        <fieldset>
+            <legend>Login</legend>
+            <label for="UserName">User name:</label>
+            <input id="UserName" type="text" name="username" />
+            <label for="UserName">User name:</label>
+            <input id="UserName" type="text" name="username" />
+            <label for="Password">Password:</label>
+            <input id="Password" type="password" name="password" />
+            <input type="hidden" name="redirectActive" value="false" />
+            <input type="hidden" name="restMode" value="false" />
+            <button class="btn btn-primary" type="submit">Login</button>
+        </fieldset>
+    </form>
+
+    <form name='logoutForm' action="/cms/logout" style="display:none">
+        <fieldset>
+            <legend>Logout</legend>
+            <input type="hidden" name="redirectActive" value="false" />
+            <input type="hidden" name="restMode" value="false" />
+            <button class="btn btn-primary" type="submit">Logout</button>
+        </fieldset>
+    </form>
+
+    <div id="contentList"></div>
+
+    <form name='newNodeForm' action='/cms/render/live/en/sites/systemsite/contents/*' style="display:none">
+        <fieldset>
+            <legend>New node</legend>
+            <label for="nodeText">Text:</label>
+            <input id="nodeText" type="text" name="text" placeholder="Enter your text here..." />
+            <label for="jcrNodeName">Node name:</label>
+            <input id="jcrNodeName" type="text" name="jcrNodeName" placeholder="Enter a node name here (optional)..." />
+            <input type="hidden" name="jcrNodeType" value="jnt:text" />
+            <input type="hidden" name="jcrReturnContentType" value="json" />
+            <button class="btn btn-primary" type="submit">Create</button>
+        </fieldset>
+    </form>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/demo/index.css b/demo/index.css
new file mode 100644 (file)
index 0000000..2824d7f
--- /dev/null
@@ -0,0 +1,5 @@
+/* Move down content because we have a fixed navbar that is 50px tall */
+
+body {
+    padding-top: 2rem;
+}
\ No newline at end of file
diff --git a/demo/index.html b/demo/index.html
new file mode 100644 (file)
index 0000000..cbb8310
--- /dev/null
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <title>Bootstrap 101 Template</title>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <!-- Bootstrap -->
+    <!-- Latest compiled and minified CSS -->
+    <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
+    <!-- Optional theme -->
+    <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap-theme.min.css">
+    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
+    <!--[if lt IE 9]>
+      <script src="../../assets/js/html5shiv.js"></script>
+      <script src="../../assets/js/respond.min.js"></script>
+    <![endif]-->
+</head>
+
+<body>
+    <!-- Main jumbotron for a primary marketing message or call to action -->
+    <div class="jumbotron">
+        <div class="container">
+            <h1 class="display-3">Hello, developer!</h1>
+            <!-- <p>This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.</p> -->
+            <!-- <p><a class="btn btn-primary btn-lg" href="#" role="button">Learn more &raquo;</a></p> -->
+        </div>
+    </div>
+
+    <div class="container">
+        <!-- Example row of columns -->
+        <div class="row">
+            <div class="col-md-4">
+                <h2>Phonebar API</h2>
+                <p>How to use the phonebar API</p>
+                <p><a class="btn btn-secondary" href="./phonebar/index.html" role="button">View details &raquo;</a></p>
+            </div>
+            <!-- <div class="col-md-4">
+          <h2>Rest Client</h2>
+          <p>How to use motion API</p>
+          <p><a class="btn btn-secondary" href="./api/index.html" role="button">View details &raquo;</a></p>
+       </div> -->
+            <!-- <div class="col-md-4">
+          <h2>Heading</h2>
+          <p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>
+          <p><a class="btn btn-secondary" href="#" role="button">View details &raquo;</a></p>
+        </div> -->
+        </div>
+
+        <hr>
+
+        <footer>
+            <p>xCALLY&copy; Motion | Xenialab s.r.l. 2017</p>
+        </footer>
+    </div>
+    <!-- /container -->
+
+    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+    <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
+    <!-- Latest compiled and minified JavaScript -->
+    <script src="http://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/demo/phonebar/index.html b/demo/phonebar/index.html
new file mode 100644 (file)
index 0000000..55fcda3
--- /dev/null
@@ -0,0 +1,298 @@
+<html>
+
+<head>
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
+    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
+    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
+    <script>
+        function getValue(elem) {
+            $("#url").val(elem.innerHTML);
+        }
+
+        function request() {
+            $.ajax({
+                url: $("#url").val(),
+                success: function(data) {
+                    $("#res").html(JSON.stringify(data, null, 2));
+                },
+                error: function(data) {
+                    $("#res").html(JSON.stringify(data, null, 2));
+                },
+                dataType: "json"
+            });
+        }
+
+        function originate() {
+            $.ajax({
+                url: 'http://127.0.0.1:9888/api/originate/' + $("#origin").val(),
+                success: function(data) {
+                    $("#iMessage").removeClass('alert-danger');
+                    $("#iMessage").removeClass('alert-info');
+                    $("#iMessage").addClass('alert-success');
+                    $("#iMessage").html(data.description || 'Operation completed');
+                },
+                error: function(data) {
+                    $("#iMessage").removeClass('alert-success');
+                    $("#iMessage").removeClass('alert-info');
+                    $("#iMessage").addClass('alert-danger');
+                    $("#iMessage").html(data.description || 'API error');
+                },
+                dataType: "json"
+            });
+        }
+        (function poll() {
+            setTimeout(function() {
+
+                $.ajax({
+                    url: "http://127.0.0.1:9888/api/calls",
+                    success: function(data) {
+
+                        $("#statusMessage").html('Status: <strong>CONNECTED</strong>');
+                        $("#statusMessage").removeClass('alert-danger');
+                        $("#statusMessage").removeClass('alert-info');
+                        $("#statusMessage").addClass('alert-success');
+                        $("#calls").empty();
+
+                        if (data.length) {
+                            for (var i = 0; i < data.length; i++) {
+                                var row = $('<tr></tr>').appendTo("#calls");
+                                $('<td></td>').text(data[i].callingnumber).appendTo(row);
+                                $('<td></td>').text(data[i].callingname).appendTo(row);
+                                $('<td></td>').text(data[i].session).attr("id", "session" + i).appendTo(row);
+                                $('<td></td>').text(data[i].incoming).appendTo(row);
+                                $('<td></td>').text(data[i].stateid).appendTo(row);
+                                $('<td></td>').attr("id", "action" + i).appendTo(row);
+                                $('<button class="btn btn-success btn-xs">Answer</button>').click(function() {
+                                    $.ajax({
+                                        url: "http://127.0.0.1:9888/api/answer/" + $("#session" + 1).text(),
+                                        success: function(data) {
+                                            $("#iMessage").removeClass('alert-danger');
+                                            $("#iMessage").removeClass('alert-info');
+                                            $("#iMessage").addClass('alert-success');
+                                            $("#iMessage").html(data.description || 'Operation completed');
+                                        },
+                                        error: function(data) {
+                                            $("#iMessage").removeClass('alert-success');
+                                            $("#iMessage").removeClass('alert-info');
+                                            $("#iMessage").addClass('alert-danger');
+                                            $("#iMessage").html(data.description || 'API error');
+                                        },
+                                        dataType: "json"
+                                    });
+                                }).appendTo("#action" + i);
+                                $('<button class="btn btn-warning btn-xs" style="margin-left:5px;">Hold</button>').click(function() {
+                                    $.ajax({
+                                        url: "http://127.0.0.1:9888/api/hold/" + $("#session" + 1).text(),
+                                        success: function(data) {
+                                            $("#iMessage").removeClass('alert-danger');
+                                            $("#iMessage").removeClass('alert-info');
+                                            $("#iMessage").addClass('alert-success');
+                                            $("#iMessage").html(data.description || 'Operation completed');
+                                        },
+                                        error: function(data) {
+                                            $("#iMessage").removeClass('alert-success');
+                                            $("#iMessage").removeClass('alert-info');
+                                            $("#iMessage").addClass('alert-danger');
+                                            $("#iMessage").html(data.description || 'API error');
+                                        },
+                                        dataType: "json"
+                                    });
+                                }).appendTo("#action" + i);
+                                $('<button class="btn btn-danger btn-xs" style="margin-left:5px;">Hangup</button>').click(function() {
+                                    $.ajax({
+                                        url: "http://127.0.0.1:9888/api/hangup/" + $("#session" + 1).text(),
+                                        success: function(data) {
+                                            $("#iMessage").removeClass('alert-danger');
+                                            $("#iMessage").removeClass('alert-info');
+                                            $("#iMessage").addClass('alert-success');
+                                            $("#iMessage").html(data.description || 'Operation completed');
+                                        },
+                                        error: function(data) {
+                                            $("#iMessage").removeClass('alert-success');
+                                            $("#iMessage").removeClass('alert-info');
+                                            $("#iMessage").addClass('alert-danger');
+                                            $("#iMessage").html(data.description || 'API error');
+                                        },
+                                        dataType: "json"
+                                    });
+                                }).appendTo("#action" + i);
+                            }
+                        } else {
+                            var row = $('<tr></tr>').appendTo("#calls");
+                            $('<td></td>').text("No Active Calls").attr('colspan', 6).appendTo(row);
+                        }
+
+                    },
+                    error: function(data) {
+                        $("#statusMessage").html('Status: <strong>DISCONNECTED</strong>');
+                        $("#statusMessage").removeClass('alert-success');
+                        $("#statusMessage").removeClass('alert-info');
+                        $("#statusMessage").addClass('alert-danger');
+                    },
+                    dataType: "json",
+                    complete: poll
+                });
+            }, 2000);
+        })();
+    </script>
+</head>
+
+<body style="padding:10px;">
+    <div class="widget stacked widget-table action-table">
+        <div class="alert alert-info" id="statusMessage">
+            Checking api status...
+        </div>
+        <div class="panel panel-default">
+            <div class="panel-heading" role="tab" id="headingOne">
+                <h4 class="panel-title">
+                    <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="false" aria-controls="collapseOne">
+                                               Api Test (click to expand/collapse)
+                                       </a>
+                </h4>
+            </div>
+            <div id="collapseOne" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
+                <div class="panel-body">
+                    <div class="widget-header">
+                        <i class="icon-th-list"></i>
+                        <h3>Api</h3>
+                    </div>
+                    <!-- /widget-header -->
+
+                    <div class="widget-content">
+
+                        <table class="table table-striped table-bordered table-condensed table-hover">
+                            <thead>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/agent</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/answer</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/answer/{session}</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/hangup</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/hangup/{session}</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/transfer?number={number}</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/transfer/{session}?number={number}</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/transfer/attended/{session}/{partnerSession}</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/hold</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/hold/{session}</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/conference</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/originate/{number}</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/dtmf?digit={digit}</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/dtmf/{session}?digit={digit}</td>
+                                </tr>
+                                <tr>
+                                    <td style="cursor:pointer;" onclick="getValue(this)">http://127.0.0.1:9888/api/calls</td>
+                                </tr>
+                            </tbody>
+                        </table>
+
+                    </div>
+                    <!-- /widget-content -->
+
+                    <div class="widget-header">
+                        <i class="icon-th-list"></i>
+                        <h3>Request</h3>
+                    </div>
+                    <!-- /widget-header -->
+
+                    <div>
+                        <input id="url" type="text" style="width:100%" placeholder="http://127.0.0.1:9888/api/" /></br>
+                        </br>
+                        <button class="btn btn-primary" onclick="request()">Send</button>
+                    </div>
+
+                    <div class="widget-header">
+                        <i class="icon-th-list"></i>
+                        <h3>Result</h3>
+                    </div>
+                    <!-- /widget-header -->
+
+                    <pre id="res">
+                                       </pre>
+                </div>
+            </div>
+        </div>
+
+        <div class="panel panel-default">
+            <div class="panel-heading" role="tab" id="headingOne">
+                <h4 class="panel-title">
+                    <a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" aria-expanded="true" aria-controls="collapseOne">
+                                               Interface Example (click to expand/collapse)
+                                       </a>
+                </h4>
+            </div>
+            <div id="collapseTwo" class="panel-collapse collapse in" role="tabpanel" aria-labelledby="headingOne">
+                <div class="panel-body">
+
+                    <div class="widget-header">
+                        <i class="icon-th-list"></i>
+                        <h3>Originate a call</h3>
+                    </div>
+                    <!-- /widget-header -->
+
+                    <div>
+                        <input id="origin" type="text" placeholder="john.doe" value="john.doe" /> <button class="btn btn-success btn-xs" onclick="originate()">Call</button>
+                    </div>
+
+                    <div class="widget-header">
+                        <i class="icon-th-list"></i>
+                        <h3>Active Calls</h3>
+                    </div>
+                    <!-- /widget-header -->
+
+                    <div class="widget-content">
+
+                        <table class="table table-striped table-bordered table-condensed table-hover">
+                            <thead>
+                                <th>Calling Number</th>
+                                <th>Calling Name</th>
+                                <th>Session</th>
+                                <th>Incoming</th>
+                                <th>StateID</th>
+                                <th>Actions</th>
+                            </thead>
+                            <tbody id="calls">
+                                <td colspan="6">No Active Calls</td>
+                            </tbody>
+                        </table>
+
+                    </div>
+                    <!-- /widget-content -->
+
+                    <div class="alert alert-info" id="iMessage">
+                    </div>
+                </div>
+            </div>
+        </div>
+
+    </div>
+    <!-- /widget -->
+</body>
+
+</html>
\ No newline at end of file
diff --git a/package.json b/package.json
new file mode 100644 (file)
index 0000000..27a4701
--- /dev/null
@@ -0,0 +1,114 @@
+{
+    "name": "motion",
+    "version": "2.0.22",
+    "description": "xCALLY Motion is the new Realtime asynchronous solution for your multichannel contact center over Asterisk.",
+    "main": "server/app.js",
+    "engines": {
+        "node": "6.10.3"
+    },
+    "repository": {
+        "type": "git",
+        "url": "http://repos.xcallymotion.com/motion2.git"
+    },
+    "author": "xCALLY Team",
+    "contributors": [
+        "Giuseppe Careri <giuseppe.careri@xcally.com>",
+        "Daniele Cinti <daniele.cinti@xcally.com>",
+        "Innocenzo Biondo <innocenzo.biondo@xcally.com>"
+    ],
+    "private": true,
+    "license": "EULA",
+    "scripts": {
+        "start": "nodemon server/app.js",
+        "test": "mocha server/test --timeout 5000"
+    },
+    "dependencies": {
+        "asterisk-manager": "^0.1.15",
+        "bimedia-machine-uuid": "^1.0.0",
+        "bluebird": "^3.4.6",
+        "body-parser": "^1.15.2",
+        "composable-middleware": "^0.3.0",
+        "cookie-parser": "^1.4.3",
+        "ejs": "^2.5.2",
+        "errorhandler": "^1.4.3",
+        "express": "^4.14.0",
+        "express-jwt": "^5.1.0",
+        "express-sequelize-session": "^0.4.0",
+        "express-session": "^1.14.1",
+        "fast-json-patch": "^1.1.0",
+        "google-tts-api": "0.0.1",
+        "imap": "^0.8.19",
+        "jayson": "^2.0.2",
+        "jsforce": "^1.7.1",
+        "json2xls": "^0.1.2",
+        "jsonwebtoken": "^7.1.9",
+        "jstz": "^1.0.9",
+        "kue": "^0.11.5",
+        "lodash": "^4.15.0",
+        "lusca": "^1.4.1",
+        "mailparser": "^2.0.5",
+        "md5": "^2.2.1",
+        "method-override": "^2.3.6",
+        "moment": "^2.15.1",
+        "morgan": "^1.7.0",
+        "multer": "^1.2.0",
+        "mustache": "^2.3.0",
+        "mysql": "^2.11.1",
+        "nodemailer": "^4.0.1",
+        "odbc": "^1.2.1",
+        "passport": "^0.3.2",
+        "passport-google-oauth20": "^1.0.0",
+        "passport-local": "^1.0.0",
+        "pdfmake": "^0.1.18",
+        "pkginfo": "^0.4.0",
+        "pm2": "^2.2.3",
+        "randomstring": "^1.1.5",
+        "request-promise": "^4.1.1",
+        "sequelize": "^3.24.3",
+        "serve-favicon": "^2.3.0",
+        "shrink-ray": "^0.1.3",
+        "simple-git": "^1.73.0",
+        "socket.io": "^1.7.3",
+        "socket.io-emitter": "^1.0.0",
+        "socket.io-redis": "^1.0.0",
+        "socketio-jwt": "^4.5.0",
+        "sox": "github:gcareri/node-sox",
+        "squel": "^5.5.0",
+        "sticky-session": "^1.1.2",
+        "syncho": "^0.2.5",
+        "systeminformation": "^3.13.0",
+        "to-csv": "^0.1.1",
+        "umzug": "^2.0.1",
+        "validate": "^3.0.1",
+        "winston": "^2.2.0",
+        "xml2json": "^0.11.0"
+    },
+    "devDependencies": {
+        "chai": "^3.5.0",
+        "chai-http": "^3.0.0",
+        "grunt-angular-templates": "^1.1.0",
+        "grunt-apidoc": "^0.11.0",
+        "grunt-autoprefixer": "^3.0.4",
+        "grunt-build-control": "^0.7.1",
+        "grunt-contrib-clean": "^1.1.0",
+        "grunt-contrib-concat": "^1.0.1",
+        "grunt-contrib-copy": "^1.0.0",
+        "grunt-contrib-cssmin": "^2.2.0",
+        "grunt-contrib-jshint": "^1.0.0",
+        "grunt-contrib-uglify": "^3.0.1",
+        "grunt-contrib-watch": "^1.0.0",
+        "grunt-express-server": "^0.5.3",
+        "grunt-filerev": "^2.3.1",
+        "grunt-injector": "^1.1.0",
+        "grunt-jsbeautifier": "^0.2.13",
+        "grunt-ng-annotate": "^3.0.0",
+        "grunt-nodemailer": "^1.1.0",
+        "grunt-sass": "^1.2.1",
+        "grunt-usemin": "^3.1.1",
+        "grunt-version": "^1.1.1",
+        "js-obfuscator": "^0.1.1",
+        "load-grunt-config": "^0.19.2",
+        "mocha": "^3.1.0",
+        "time-grunt": "^1.4.0"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/da.json b/public/app/errors/404/i18n/da.json
new file mode 100644 (file)
index 0000000..ba0a19e
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "Beklager, men vi kunne ikke finde den side, du leder efter",
+        "SEARCH": "Søg efter noget",
+        "GO_BACK": "Gå tilbage til kontrolpanel"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/de.json b/public/app/errors/404/i18n/de.json
new file mode 100644 (file)
index 0000000..cf21bb7
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "Es tut uns leid, aber wir konnten nicht gefunden Die Seite, die Sie suchen",
+        "SEARCH": "Nach allem suchen",
+        "GO_BACK": "Zurück zum Dashboard"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/en.json b/public/app/errors/404/i18n/en.json
new file mode 100644 (file)
index 0000000..4555bd9
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "Sorry but we couldn’t find the page you are looking for",
+        "SEARCH": "Search for anything",
+        "GO_BACK": "Go back to dashboard"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/es.json b/public/app/errors/404/i18n/es.json
new file mode 100644 (file)
index 0000000..15505fc
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "Lo sentimos, pero no hemos podido encontrar la página que busca",
+        "SEARCH": "Buscar cualquier cosa",
+        "GO_BACK": "Volver al tablero"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/fa.json b/public/app/errors/404/i18n/fa.json
new file mode 100644 (file)
index 0000000..6912728
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "ببخشید ولی نتونستم فعلی شما: صفحه اصلی",
+        "SEARCH": "در جستجوی هر چیزی",
+        "GO_BACK": "برگردم / داشبورد"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/fi.json b/public/app/errors/404/i18n/fi.json
new file mode 100644 (file)
index 0000000..fcf969a
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "Valitettavasti emme voineet etsimääsi sivua ei löytynyt",
+        "SEARCH": "Hae mitään",
+        "GO_BACK": "Siirry takaisin kojelautaan"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/fr.json b/public/app/errors/404/i18n/fr.json
new file mode 100644 (file)
index 0000000..d97226c
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "Désolé mais nous n'avons pas pu trouver la page que vous recherchez",
+        "SEARCH": "Vous pouvez chercher n'importe quoi",
+        "GO_BACK": "Retourner au tableau de bord"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/hi.json b/public/app/errors/404/i18n/hi.json
new file mode 100644 (file)
index 0000000..fc61f86
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "क्षमा करें, लेकिन हम आपको तलाश पृष्ठ पता नहीं हो सकता है।",
+        "SEARCH": "खोजने के लिए कुछ",
+        "GO_BACK": "डैशबोर्ड वापस जाएं"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/it.json b/public/app/errors/404/i18n/it.json
new file mode 100644 (file)
index 0000000..4555bd9
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "Sorry but we couldn’t find the page you are looking for",
+        "SEARCH": "Search for anything",
+        "GO_BACK": "Go back to dashboard"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/ja.json b/public/app/errors/404/i18n/ja.json
new file mode 100644 (file)
index 0000000..ae06410
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "申し訳ありませんが、お探しのページが見つかりませんでした",
+        "SEARCH": "何かを検索します",
+        "GO_BACK": "ダッシュボードに戻ります。"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/ko.json b/public/app/errors/404/i18n/ko.json
new file mode 100644 (file)
index 0000000..1ac4add
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "하지만 우리가 찾는 페이지가 찾을 수 없다.",
+        "SEARCH": "어떤 검색",
+        "GO_BACK": "대시보드에 돌아가기"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/nl.json b/public/app/errors/404/i18n/nl.json
new file mode 100644 (file)
index 0000000..75ad9ac
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "Sorry, maar we konden het niet vinden de pagina die u zoekt",
+        "SEARCH": "Items zoeken",
+        "GO_BACK": "Ga terug naar het dashboard"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/no.json b/public/app/errors/404/i18n/no.json
new file mode 100644 (file)
index 0000000..9f8334f
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "Beklager, men vi finner ikke siden du leter etter",
+        "SEARCH": "Søk etter noe",
+        "GO_BACK": "Gå tilbake til dashbordet"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/pt-PT.json b/public/app/errors/404/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..4cf967f
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "Lamentamos mas não foi possível encontrar a página que você está procurando",
+        "SEARCH": "Pesquisar qualquer coisa",
+        "GO_BACK": "Voltar ao painel"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/ru.json b/public/app/errors/404/i18n/ru.json
new file mode 100644 (file)
index 0000000..d957538
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "К сожалению, нам не удалось найти страницу вы ищете",
+        "SEARCH": "Для поиска ничего",
+        "GO_BACK": "Вернуться к приборной панели"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/sv.json b/public/app/errors/404/i18n/sv.json
new file mode 100644 (file)
index 0000000..e2e3d0a
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "Tyvärr kunde vi inte hitta den sida du söker",
+        "SEARCH": "Sökningen för något",
+        "GO_BACK": "Gå tillbaka till instrumentbrädan"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/tr.json b/public/app/errors/404/i18n/tr.json
new file mode 100644 (file)
index 0000000..85e1c98
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "Üzgünüz ama biz hiç sayfayı aradığınızı",
+        "SEARCH": "Arama bir şey için",
+        "GO_BACK": "Geri git torpido"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/zh-CN.json b/public/app/errors/404/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..120b0c4
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "很抱歉, 但我们无法找到您正在寻找的页面。",
+        "SEARCH": "搜索任何内容",
+        "GO_BACK": "返回到仪表板"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/404/i18n/zh-TW.json b/public/app/errors/404/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..0be88b2
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "ERROR404": {
+        "CODE": "404",
+        "MESSAGE": "很抱歉但我們無法找到您要尋找的頁面",
+        "SEARCH": "搜尋任何東西",
+        "GO_BACK": "返回到主控台"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/da.json b/public/app/errors/500/i18n/da.json
new file mode 100644 (file)
index 0000000..facd527
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "Jamen, du ødelagde internettet!",
+        "SUBMESSAGE": "Bare for sjov, det ser ud til, at vi har et internt problem, prøv igen om et par minutter",
+        "REPORT": "Rapporter dette problem",
+        "JIRA_MESSAGE": "Din forespørgsel er modtaget og vil blive behandlet snarest.",
+        "JIRA_SUBMESSAGE": "Beklager ulejligheden. Hvis du har spørgsmål eller kommentarer, er du velkommen til at kontakte os.",
+        "GO_BACK": "Gå tilbage til kontrolpanel"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/de.json b/public/app/errors/500/i18n/de.json
new file mode 100644 (file)
index 0000000..662898b
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "Gut, sie brach das Internet!",
+        "SUBMESSAGE": "Nur ein Scherz, sieht so aus, als haben wir ein internes Problem, bitte versuchen Sie es erneut in wenigen Minuten",
+        "REPORT": "Melden Sie dieses Problem",
+        "JIRA_MESSAGE": "Ihre Anfrage ist eingegangen und wird bearbeitet.",
+        "JIRA_SUBMESSAGE": "Es tut uns Leid für die Unannehmlichkeiten. Wenn Sie Fragen oder Bedenken haben, zögern Sie bitte nicht, uns zu kontaktieren.",
+        "GO_BACK": "Zurück zum Dashboard"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/en.json b/public/app/errors/500/i18n/en.json
new file mode 100644 (file)
index 0000000..a50ee89
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "Well, you broke the internet!",
+        "SUBMESSAGE": "Just kidding, looks like we have an internal issue, please try again in couple minutes",
+        "REPORT": "Report this problem",
+        "JIRA_MESSAGE": "Your request has been received and will be processed shortly.",
+        "JIRA_SUBMESSAGE": "Sorry for the inconvenience. If you have any questions or concerns, please do not hesitate to contact us.",
+        "GO_BACK": "Go back to dashboard"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/es.json b/public/app/errors/500/i18n/es.json
new file mode 100644 (file)
index 0000000..452e2e8
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "Bien, usted se rompió el internet!",
+        "SUBMESSAGE": "Sólo bromeo, parece que tenemos un problema interno, por favor inténtelo de nuevo en unos minutos",
+        "REPORT": "Informe de este problema",
+        "JIRA_MESSAGE": "Su solicitud ha sido recibida y será procesada en breve.",
+        "JIRA_SUBMESSAGE": "Disculpe las molestias. Si usted tiene preguntas o preocupaciones, por favor no dude en contactar con nosotros.",
+        "GO_BACK": "Volver al tablero"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/fa.json b/public/app/errors/500/i18n/fa.json
new file mode 100644 (file)
index 0000000..0d46de2
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "خوب، اينترنت را در هم شكست!",
+        "SUBMESSAGE": "فقط یک شوخی بود، اینطور به نظر میرسد که یک مساله داخلی است، لطفاً چند دقیقه دیگر دوباره امتحان کنید",
+        "REPORT": "گزارش این مشکل",
+        "JIRA_MESSAGE": "به درخواست شما دريافت شده و فرآوری شده اندكي خواهد داشت.",
+        "JIRA_SUBMESSAGE": "متاسفم براي ناراحتي. اگر شما هر گونه سوال یا نگرانی، تردید نکنید لطفا تماس با ما بود.",
+        "GO_BACK": "برگردم / داشبورد"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/fi.json b/public/app/errors/500/i18n/fi.json
new file mode 100644 (file)
index 0000000..968d53f
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "No, rikot internetiin!",
+        "SUBMESSAGE": "Vain pelleile, näyttää siltä, että on sisäinen asia, yritä uudelleen muutaman minuutin välein",
+        "REPORT": "Mietinnössä tämä ongelma",
+        "JIRA_MESSAGE": "Pyyntösi on vastaanotettu ja käsitellään hetken kuluttua.",
+        "JIRA_SUBMESSAGE": "Pahoittelemme häiriötä. Jos sinulla on kysyttävää, älä epäröi ottaa meihin yhteyttä.",
+        "GO_BACK": "Siirry takaisin kojelautaan"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/fr.json b/public/app/errors/500/i18n/fr.json
new file mode 100644 (file)
index 0000000..6dc0d4d
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "Eh bien, vous avez manqué à l'internet !",
+        "SUBMESSAGE": "Je plaisante, on dirait que nous avons un problème interne, veuillez réessayer dans quelques minutes",
+        "REPORT": "Signaler ce problème",
+        "JIRA_MESSAGE": "Votre demande a été reçue et sera traitée sous peu.",
+        "JIRA_SUBMESSAGE": "Désolé pour le dérangement. Si vous avez des questions ou des préoccupations, n'hésitez pas à nous contacter.",
+        "GO_BACK": "Retourner au tableau de bord"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/hi.json b/public/app/errors/500/i18n/hi.json
new file mode 100644 (file)
index 0000000..bc80d63
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "ठीक है, तो आप इंटरनेट टूट गया है!",
+        "SUBMESSAGE": "लगता है कि हमने एक आंतरिक मामला है, तो मुझसे मज़ाक, दो मिनट में तो कृपया पुन: प्रयास करें.",
+        "REPORT": "रिपोर्ट में यह समस्या",
+        "JIRA_MESSAGE": "आपके अनुरोध को संसाधित किया जाएगा और प्राप्त होजाएगा।",
+        "JIRA_SUBMESSAGE": "खेद के लिए असुविधा होती है। यदि आपके पास कोई प्रश्न या सरोकारों से संपर्क करने के लिए, कृपया संकोच नहीं करते हैं।",
+        "GO_BACK": "डैशबोर्ड वापस जाएं"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/it.json b/public/app/errors/500/i18n/it.json
new file mode 100644 (file)
index 0000000..a50ee89
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "Well, you broke the internet!",
+        "SUBMESSAGE": "Just kidding, looks like we have an internal issue, please try again in couple minutes",
+        "REPORT": "Report this problem",
+        "JIRA_MESSAGE": "Your request has been received and will be processed shortly.",
+        "JIRA_SUBMESSAGE": "Sorry for the inconvenience. If you have any questions or concerns, please do not hesitate to contact us.",
+        "GO_BACK": "Go back to dashboard"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/ja.json b/public/app/errors/500/i18n/ja.json
new file mode 100644 (file)
index 0000000..94050c7
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "さて、インターネットを壊した!",
+        "SUBMESSAGE": "ちょうどからかう、内部に問題がある、のように数分でもう一度実行してみてください見",
+        "REPORT": "この問題レポート",
+        "JIRA_MESSAGE": "あなたの要求を受信しました。近日中に処理されます。",
+        "JIRA_SUBMESSAGE": "ご迷惑をおかけして申し訳ありません。 ご質問や懸念がある場合は、ご遠慮なくお問い合わせくださいませ。",
+        "GO_BACK": "ダッシュボードに戻ります。"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/ko.json b/public/app/errors/500/i18n/ko.json
new file mode 100644 (file)
index 0000000..9f10b99
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "글쎄, 담당자도 이기셨습니다!",
+        "SUBMESSAGE": "농담이야, 정오쯤 우리는 내부 문제가 마찬가지로 2분 거리에는 다시 시도하십시오.",
+        "REPORT": "이 문제점을 보고하십시오.",
+        "JIRA_MESSAGE": "귀하의 요청이 접수되었습니다. 곧 처리될 것입니다.",
+        "JIRA_SUBMESSAGE": "불편을 끼쳐 드려서 죄송합니다. 문의 사항이 있거나 문제가 발생한 경우 우리들만 문의 바랍니다.",
+        "GO_BACK": "대시보드에 돌아가기"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/nl.json b/public/app/errors/500/i18n/nl.json
new file mode 100644 (file)
index 0000000..1f942de
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "Nou, je brak het internet!",
+        "SUBMESSAGE": "Just kidding, lijkt wel alsof we een intern probleem, probeer opnieuw in paar minuten",
+        "REPORT": "Rapporteer dit probleem",
+        "JIRA_MESSAGE": "Uw aanvraag is ontvangen en worden binnenkort verwerkt.",
+        "JIRA_SUBMESSAGE": "Onze excuses voor het ongemak. Mocht u vragen of problemen, aarzel niet om ons te contacteren.",
+        "GO_BACK": "Ga terug naar het dashboard"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/no.json b/public/app/errors/500/i18n/no.json
new file mode 100644 (file)
index 0000000..d490cfe
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "Vel, du brøt på internett!",
+        "SUBMESSAGE": "Bare tuller, ser ut som vi har et internt problem, prøv igjen i et par minutter",
+        "REPORT": "Rapporter dette problemet",
+        "JIRA_MESSAGE": "Din forespørsel er mottatt og vil bli behandlet innen kort tid.",
+        "JIRA_SUBMESSAGE": "Beklager ulempene dette medfører. Hvis du har spørsmål eller kommentarer, vennligst ikke nøl med å kontakte oss.",
+        "GO_BACK": "Gå tilbake til dashbordet"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/pt-PT.json b/public/app/errors/500/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..c6cd0f8
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "Bem, você quebrou a internet!",
+        "SUBMESSAGE": "Apenas brincando, parece que temos um problema interno, tente novamente em alguns minutos",
+        "REPORT": "Relate este problema",
+        "JIRA_MESSAGE": "O seu pedido foi recebido e será processado em breve.",
+        "JIRA_SUBMESSAGE": "Pedimos desculpa pelo incómodo. Se você tiver quaisquer perguntas ou preocupações, por favor não hesite em contactar-nos.",
+        "GO_BACK": "Voltar ao painel"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/ru.json b/public/app/errors/500/i18n/ru.json
new file mode 100644 (file)
index 0000000..0b76370
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "А также вы ворвались в интернет!",
+        "SUBMESSAGE": "Просто шучу, выглядит мы является внутренним вопросом, повторите попытку в пару минут",
+        "REPORT": "Доклад этой проблемы",
+        "JIRA_MESSAGE": "Ваш запрос получен и будет обработан в ближайшее время.",
+        "JIRA_SUBMESSAGE": "Приносим извинения за причиненные неудобства. Если у Вас возникнут любые вопросы или проблемы, пожалуйста, не обращайтесь к нам.",
+        "GO_BACK": "Вернуться к приборной панели"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/sv.json b/public/app/errors/500/i18n/sv.json
new file mode 100644 (file)
index 0000000..4b6566c
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "Tja, du bröt mot internet!",
+        "SUBMESSAGE": "Skojar bara, det ser ut som vi har en intern fråga, försök igen om några minuter",
+        "REPORT": "Rapportera problemet",
+        "JIRA_MESSAGE": "Din förfrågan har mottagits och kommer att behandlas inom kort.",
+        "JIRA_SUBMESSAGE": "Vi beklagar besväret. Om du har några frågor eller funderingar, tveka inte att kontakta oss.",
+        "GO_BACK": "Gå tillbaka till instrumentbrädan"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/tr.json b/public/app/errors/500/i18n/tr.json
new file mode 100644 (file)
index 0000000..f2ac49b
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "Ayrıca, kırdı, internet!",
+        "SUBMESSAGE": "Sadece bir şakaydı, gibi görünüyor. Biz bir iç sorunu, lütfen tekrar deneyin. birkaç dakika",
+        "REPORT": "Rapor bu sorun",
+        "JIRA_MESSAGE": "İsteğiniz alındı ve işleme konacak.",
+        "JIRA_SUBMESSAGE": "Verdiğimiz rahatsızlıktan dolayı özür dileriz. Herhangi bir sorunuz veya endişeniz varsa, lütfen bizimle iletişime geçmekten çekinmeyin.",
+        "GO_BACK": "Geri git torpido"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/zh-CN.json b/public/app/errors/500/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..3fc6310
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "那么, 你打破了互联网!",
+        "SUBMESSAGE": "只是开玩笑, 看上去就像我们的内部问题, 请再试一次, 几分钟。",
+        "REPORT": "报告此问题。",
+        "JIRA_MESSAGE": "您的请求已收到, 将尽快着手处理。",
+        "JIRA_SUBMESSAGE": "对此引起的不便表示抱歉。 如果您有任何疑问或问题, 请不要犹豫与我们联系。",
+        "GO_BACK": "返回到仪表板"
+    }
+}
\ No newline at end of file
diff --git a/public/app/errors/500/i18n/zh-TW.json b/public/app/errors/500/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..879525c
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "ERROR500": {
+        "CODE": "500",
+        "MESSAGE": "嗯 , 您將網際網路 !",
+        "SUBMESSAGE": "開玩笑 , 看起來就像我們有內部問題 , 請再試一次在幾分鐘",
+        "REPORT": "此問題報告",
+        "JIRA_MESSAGE": "已經收到您的要求和我們將儘快處理。",
+        "JIRA_SUBMESSAGE": "很抱歉造成您的不便之處敬請見諒。 若您有任何疑問或疑慮 , 請不要猶豫與我們聯繫。",
+        "GO_BACK": "返回到主控台"
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/da.json b/public/app/login/i18n/da.json
new file mode 100644 (file)
index 0000000..b4ad5d4
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "Log ind til din konto",
+        "EMAIL": "Email",
+        "PASSWORD": "Password",
+        "REMEMBER_ME": "Husk mig",
+        "FORGOT_PASSWORD": "Glemt adgangskode?",
+        "LOG_IN": "LOG IND",
+        "OR": "Eller",
+        "WITH_GOOGLE": "Log ind med Google",
+        "WITH_FACEBOOK": "Log ind med Facebook",
+        "DONT_HAVE_ACCOUNT": "Har du ikke en konto?",
+        "CREATE_ACCOUNT": "Opret en konto",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/de.json b/public/app/login/i18n/de.json
new file mode 100644 (file)
index 0000000..1973202
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "Melden Sie sich bei Ihrem Konto an",
+        "EMAIL": "E-Mail",
+        "PASSWORD": "Passwort",
+        "REMEMBER_ME": "Erinnere Dich an Mich",
+        "FORGOT_PASSWORD": "Passwort vergessen?",
+        "LOG_IN": "LOG IN",
+        "OR": "Oder",
+        "WITH_GOOGLE": "Melden Sie sich mit Google",
+        "WITH_FACEBOOK": "Mit Facebook anmelden",
+        "DONT_HAVE_ACCOUNT": "Sie haben noch kein Konto?",
+        "CREATE_ACCOUNT": "Erstellen Sie ein Konto",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/en.json b/public/app/login/i18n/en.json
new file mode 100644 (file)
index 0000000..f39c32a
--- /dev/null
@@ -0,0 +1,22 @@
+{
+    "LOGIN": {
+        "TITLE": "Log in to your account",
+        "EMAIL": "Email",
+        "USERNAME": "Username",
+        "PASSWORD": "Password",
+        "REMEMBER_ME": "Remember Me",
+        "FORGOT_PASSWORD": "Forgot Password?",
+        "LOG_IN": "LOG IN",
+        "OR": "OR",
+        "WITH_GOOGLE": "Log in with Google",
+        "WITH_FACEBOOK": "Log in with Facebook",
+        "DONT_HAVE_ACCOUNT": "Don't have an account?",
+        "CREATE_ACCOUNT": "Create an account",
+        "ERRORS": {
+            "EMAIL_REQUIRED": "Email field is required",
+            "EMAIL_MUST_VALID": "Email must be a valid e-mail address",
+            "PASSWORD_REQUIRED": "Password field is required",
+            "USERNAME_REQUIRED": "Username field is required"
+        }
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/es.json b/public/app/login/i18n/es.json
new file mode 100644 (file)
index 0000000..69a3da4
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "Inicie sesión en su cuenta",
+        "EMAIL": "Correo electrónico",
+        "PASSWORD": "Contraseña",
+        "REMEMBER_ME": "Acuérdate de mí",
+        "FORGOT_PASSWORD": "¿Has olvidado tu contraseña?",
+        "LOG_IN": "Iniciar sesión",
+        "OR": "O",
+        "WITH_GOOGLE": "Inicie sesión con Google",
+        "WITH_FACEBOOK": "Iniciar sesión en Facebook",
+        "DONT_HAVE_ACCOUNT": "¿No tienes una cuenta?",
+        "CREATE_ACCOUNT": "Crear una cuenta",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/fa.json b/public/app/login/i18n/fa.json
new file mode 100644 (file)
index 0000000..fcc63a7
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "ورود به اشتراک شخصی",
+        "EMAIL": "آدرس ایمیل",
+        "PASSWORD": "اسم رمز",
+        "REMEMBER_ME": "یادم نیست!",
+        "FORGOT_PASSWORD": "اسم رمز را فراموش کرده اید؟",
+        "LOG_IN": "وارد سیستم شوید",
+        "OR": "یا",
+        "WITH_GOOGLE": "با گوگل در وبلاگ",
+        "WITH_FACEBOOK": "با Facebook شوید",
+        "DONT_HAVE_ACCOUNT": "اشتراک ندارید؟",
+        "CREATE_ACCOUNT": "ایجاد اشتراک",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/fi.json b/public/app/login/i18n/fi.json
new file mode 100644 (file)
index 0000000..b8acc86
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "Kirjaudu tilillesi",
+        "EMAIL": "Sähköposti",
+        "PASSWORD": "Salasana",
+        "REMEMBER_ME": "Muista minut",
+        "FORGOT_PASSWORD": "Salasana unohtunut?",
+        "LOG_IN": "Kirjaudu sisään",
+        "OR": "Tai",
+        "WITH_GOOGLE": "Kirjaudu Google",
+        "WITH_FACEBOOK": "Kirjaudu Facebookin avulla",
+        "DONT_HAVE_ACCOUNT": "Ei ole tiliä?",
+        "CREATE_ACCOUNT": "Luo tili",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/fr.json b/public/app/login/i18n/fr.json
new file mode 100644 (file)
index 0000000..75ca34d
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "Connectez-vous à votre compte",
+        "EMAIL": "Email",
+        "PASSWORD": "Mot de passe oublié",
+        "REMEMBER_ME": "Se souvenir de moi",
+        "FORGOT_PASSWORD": "Mot de passe oublié ?",
+        "LOG_IN": "LOG IN",
+        "OR": "Ou",
+        "WITH_GOOGLE": "Se connecter avec Google",
+        "WITH_FACEBOOK": "Se connecter avec Facebook",
+        "DONT_HAVE_ACCOUNT": "Vous n'avez pas de compte ?",
+        "CREATE_ACCOUNT": "Créer un compte",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/hi.json b/public/app/login/i18n/hi.json
new file mode 100644 (file)
index 0000000..8d17eac
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "आपके ईमेल खाते में लॉग इन करें.",
+        "EMAIL": "ई-मेल",
+        "PASSWORD": "पासवर्ड",
+        "REMEMBER_ME": "मुझे याद रखें",
+        "FORGOT_PASSWORD": "पासवर्ड भूल गए?",
+        "LOG_IN": "लॉग इन करें.",
+        "OR": "या",
+        "WITH_GOOGLE": "Google Talk के साथ लॉग इन करें.",
+        "WITH_FACEBOOK": "Facebook के साथ लॉग",
+        "DONT_HAVE_ACCOUNT": "खाता नहीं है?",
+        "CREATE_ACCOUNT": "खाता बनाएं.",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/it.json b/public/app/login/i18n/it.json
new file mode 100644 (file)
index 0000000..afc2dbe
--- /dev/null
@@ -0,0 +1,22 @@
+{
+    "LOGIN": {
+        "TITLE": "Log in nel tuo account",
+        "EMAIL": "Email",
+        "Username": "Username",
+        "PASSWORD": "Password",
+        "REMEMBER_ME": "Ricordami",
+        "FORGOT_PASSWORD": "Password dimenticata?",
+        "LOG_IN": "LOG IN",
+        "OR": "O",
+        "WITH_GOOGLE": "Log in con Google",
+        "WITH_FACEBOOK": "Log in con Facebook",
+        "DONT_HAVE_ACCOUNT": "Non hai un account?",
+        "CREATE_ACCOUNT": "Crea un account",
+        "ERRORS": {
+            "EMAIL_REQUIRED": "Il campo email è obbligatorio",
+            "EMAIL_MUST_VALID": "Email deve essere una valida e-mail address",
+            "PASSWORD_REQUIRED": "Il campo Password è obbligatorio",
+            "USERNAME_REQUIRED": "Il campo username è obbligatorio"
+        }
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/ja.json b/public/app/login/i18n/ja.json
new file mode 100644 (file)
index 0000000..1ab1c69
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "あなたのアカウントにログインします。",
+        "EMAIL": "電子メール",
+        "PASSWORD": "パスワード",
+        "REMEMBER_ME": "私のこと覚えて",
+        "FORGOT_PASSWORD": "パスワードをお忘れですか?",
+        "LOG_IN": "ログに",
+        "OR": "または",
+        "WITH_GOOGLE": "Google でログインします。",
+        "WITH_FACEBOOK": "Facebook でログインします。",
+        "DONT_HAVE_ACCOUNT": "アカウントをお持ちではないですか?",
+        "CREATE_ACCOUNT": "アカウントを作成します",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/ko.json b/public/app/login/i18n/ko.json
new file mode 100644 (file)
index 0000000..7826f0b
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "계정에 로그인",
+        "EMAIL": "E-mail",
+        "PASSWORD": "암호",
+        "REMEMBER_ME": "내 정보 기억하기",
+        "FORGOT_PASSWORD": "암호를 잊으셨습니까?",
+        "LOG_IN": "로그인",
+        "OR": "또는",
+        "WITH_GOOGLE": "Google로 로그인합니다.",
+        "WITH_FACEBOOK": "페이스북 로그인",
+        "DONT_HAVE_ACCOUNT": "계정이 없습니까?",
+        "CREATE_ACCOUNT": "계정 만들기",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/nl.json b/public/app/login/i18n/nl.json
new file mode 100644 (file)
index 0000000..280ef06
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "Aanmelden bij uw account",
+        "EMAIL": "E-mail",
+        "PASSWORD": "Wachtwoord",
+        "REMEMBER_ME": "Onthoud mij",
+        "FORGOT_PASSWORD": "Wachtwoord vergeten?",
+        "LOG_IN": "LOG IN",
+        "OR": "Of",
+        "WITH_GOOGLE": "Inloggen met Google",
+        "WITH_FACEBOOK": "Meld je aan via Facebook",
+        "DONT_HAVE_ACCOUNT": "Heb je nog geen account?",
+        "CREATE_ACCOUNT": "Maak een account",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/no.json b/public/app/login/i18n/no.json
new file mode 100644 (file)
index 0000000..8a8be64
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "Logg deg på kontoen",
+        "EMAIL": "E",
+        "PASSWORD": "Passord",
+        "REMEMBER_ME": "Husk meg",
+        "FORGOT_PASSWORD": "Glemt passordet?",
+        "LOG_IN": "Logg på",
+        "OR": "Eller",
+        "WITH_GOOGLE": "Logg på med Google",
+        "WITH_FACEBOOK": "Logg på med Facebook",
+        "DONT_HAVE_ACCOUNT": "Har du ikke konto?",
+        "CREATE_ACCOUNT": "Opprette en konto",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/pt-PT.json b/public/app/login/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..f11df15
--- /dev/null
@@ -0,0 +1,20 @@
+{
+    "LOGIN": {
+        "TITLE": "Efetue login em sua conta",
+        "EMAIL": "Email",
+        "PASSWORD": "Senha",
+        "REMEMBER_ME": "Lembrar de mim",
+        "FORGOT_PASSWORD": "Esqueceu a senha?",
+        "LOG_IN": "Efetuar login no",
+        "OR": "Ou",
+        "WITH_GOOGLE": "Efetue login com o Google",
+        "WITH_FACEBOOK": "Iniciar sessão com o Facebook",
+        "DONT_HAVE_ACCOUNT": "Não tem uma conta?",
+        "CREATE_ACCOUNT": "Criar uma conta",
+        "ERRORS": {
+            "EMAIL_REQUIRED": "Campo de correio electrónico é obrigatório",
+            "EMAIL_MUST_VALID": "O e-mail deve ser um endereço de email válido",
+            "PASSWORD_REQUIRED": "O campo Senha é obrigatório"
+        }
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/ru.json b/public/app/login/i18n/ru.json
new file mode 100644 (file)
index 0000000..56db87e
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "Войдите в свою учетную запись",
+        "EMAIL": "Адрес электронной почты",
+        "PASSWORD": "Пароль",
+        "REMEMBER_ME": "Запомнить меня",
+        "FORGOT_PASSWORD": "Забыли пароль?",
+        "LOG_IN": "Вход в систему",
+        "OR": "Или",
+        "WITH_GOOGLE": "Войдите в систему с помощью Google",
+        "WITH_FACEBOOK": "Войдите в систему с помощью Facebook",
+        "DONT_HAVE_ACCOUNT": "У вас нет учетной записи?",
+        "CREATE_ACCOUNT": "Создать учетную запись",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/sv.json b/public/app/login/i18n/sv.json
new file mode 100644 (file)
index 0000000..a20d54b
--- /dev/null
@@ -0,0 +1,20 @@
+{
+    "LOGIN": {
+        "TITLE": "Logga in på ditt konto.",
+        "EMAIL": "Email",
+        "PASSWORD": "Lösenord",
+        "REMEMBER_ME": "Kom ihåg mig",
+        "FORGOT_PASSWORD": "Glömt lösenord?",
+        "LOG_IN": "Logga in",
+        "OR": "Eller",
+        "WITH_GOOGLE": "Logga in med Google",
+        "WITH_FACEBOOK": "Logga in med Facebook",
+        "DONT_HAVE_ACCOUNT": "Har du inget konto?",
+        "CREATE_ACCOUNT": "Skapa ett konto",
+        "ERRORS": {
+            "EMAIL_REQUIRED": "E-fältet är obligatoriskt",
+            "EMAIL_MUST_VALID": "E-postadressen måste vara en giltig e-postadress",
+            "PASSWORD_REQUIRED": "Fältet Lösenord är obligatoriskt"
+        }
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/tr.json b/public/app/login/i18n/tr.json
new file mode 100644 (file)
index 0000000..1c58e95
--- /dev/null
@@ -0,0 +1,20 @@
+{
+    "LOGIN": {
+        "TITLE": "Hesabınızda Oturum Açın",
+        "EMAIL": "E-Posta",
+        "PASSWORD": "Parola",
+        "REMEMBER_ME": "Beni hatırla",
+        "FORGOT_PASSWORD": "Parolanızı mı unuttunuz?",
+        "LOG_IN": "Oturum Aç",
+        "OR": "Veya",
+        "WITH_GOOGLE": "Oturum Aç Google",
+        "WITH_FACEBOOK": "Günlük Facebook",
+        "DONT_HAVE_ACCOUNT": "Bir hesabınız yok mu?",
+        "CREATE_ACCOUNT": "Bir hesap oluştur",
+        "ERRORS": {
+            "EMAIL_REQUIRED": "E-posta zorunlu alan",
+            "EMAIL_MUST_VALID": "E-posta geçerli bir e-posta adresi",
+            "PASSWORD_REQUIRED": "Parola alanı gerekli."
+        }
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/zh-CN.json b/public/app/login/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..88a2d41
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "登录到您的帐户",
+        "EMAIL": "电子邮件",
+        "PASSWORD": "密码",
+        "REMEMBER_ME": "记住我",
+        "FORGOT_PASSWORD": "忘记了密码?",
+        "LOG_IN": "登录",
+        "OR": "或",
+        "WITH_GOOGLE": "登录使用 Google",
+        "WITH_FACEBOOK": "登录 Facebook",
+        "DONT_HAVE_ACCOUNT": "没有帐户?",
+        "CREATE_ACCOUNT": "创建帐户",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/login/i18n/zh-TW.json b/public/app/login/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..50be01d
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "LOGIN": {
+        "TITLE": "登入您的帳戶",
+        "EMAIL": "電子郵件",
+        "PASSWORD": "密碼",
+        "REMEMBER_ME": "記住我",
+        "FORGOT_PASSWORD": "忘記了密碼嗎 ?",
+        "LOG_IN": "登入",
+        "OR": "或",
+        "WITH_GOOGLE": "登入 Google",
+        "WITH_FACEBOOK": "登入 Facebook",
+        "DONT_HAVE_ACCOUNT": "沒有帳號嗎 ?",
+        "CREATE_ACCOUNT": "建立帳號",
+        "ERRORS": {}
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/da.json b/public/app/main/apps/analytics/i18n/da.json
new file mode 100644 (file)
index 0000000..29f279f
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Navnet",
+        "ANALYTICS": "Analytics",
+        "METRICS": "Nøgletal",
+        "ID": "Id",
+        "TABLE": "Tabel",
+        "DESCRIPTION": "Beskrivelse",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "METRIC": "Metrisk",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "METRIC_REQUIRED": "Nøgletallet er påkrævet",
+            "COLUMN_REQUIRED": "Kolonnen er obligatorisk",
+            "VALUE_REQUIRED": "Værdien er nødvendig",
+            "CUSTOM_METRIC_REQUIRED": "Den brugerdefinerede metrikken påkrævet",
+            "ALIAS_REQUIRED": "Aliaset er påkrævet"
+        },
+        "NEW_METRIC": "Nyt nøgletals",
+        "ADD_METRIC": "Tilføj metrisk",
+        "EDIT_METRIC": "Rediger metrisk",
+        "DELETE_METRIC": "Slet metrisk",
+        "SAVE": "Gem",
+        "BACK": "Tilbage",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "TYPE": "Type",
+        "EXTRACTEDREPORTS": "Udtrukket rapporter",
+        "DATE_RANGE_FROM": "Datointerval fra",
+        "DATE_RANGE_TO": "Datointervallet",
+        "GENERATED_AT": "Genereret på",
+        "STATUS": "Status",
+        "OUTPUT": "Udgang",
+        "REPORTS": "Rapporter",
+        "SEARCH_FOR_FOLDER": "Søg efter mappe",
+        "CREATED_AT": "Oprettet på",
+        "NEW_REPORT": "Ny rapport",
+        "ADD_REPORT": "Tilføj rapport",
+        "COPY_REPORT": "Kopi rapport",
+        "PREVIEW_REPORT": "Udskriv rapport",
+        "RUN_REPORT": "Kør rapport",
+        "DOWNLOAD_JSON_REPORT": "Eksportrapport JSON",
+        "EDIT_REPORT": "Rediger rapport",
+        "DELETE_REPORT": "Slet rapport",
+        "CREATE": "Opret mappe",
+        "RENAME": "Omdøb mappe",
+        "REMOVE": "Fjern folder",
+        "SELECT_NODE": "Vælg mappe",
+        "ERROR": "Fejl",
+        "QUERY_ERROR": "Fejl i forespørgsel",
+        "MESSAGE": "Besked",
+        "CLOSE": "Luk",
+        "FORMAT": "Format",
+        "SETTINGS": "Indstillinger",
+        "GENERAL": "Generel",
+        "FIELDS": "Felter",
+        "CONDITION": "Betingelse",
+        "OPERATOR": "Operatøren",
+        "GROUP": "Gruppe",
+        "COLUMN": "Kolonne",
+        "VALUE": "Værdi",
+        "PREVIEW": "Preview",
+        "LIMITED_RESULT": "*Begrænsede resultater",
+        "NO_DATA": "Ingen resultater",
+        "CONDITIONS": "Betingelser",
+        "ALIAS": "Alias",
+        "FUNCTION": "Funktion",
+        "GROUP_BY": "Gruppér efter",
+        "ORDER_BY": "Order By",
+        "ADD_REPORTFIELD": "Tilføj felt",
+        "EDIT_REPORTFIELD": "Rediger felt",
+        "DELETE_REPORTFIELD": "Slet mark",
+        "METRIC_NAME": "Metrisk",
+        "NO_METRIC_FOUND": "Nej metriske fundet",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "CUSTOM_METRIC": "Custom metrisk",
+        "DELETE_EXTRACTEDREPORT": "Slet uddraget rapport",
+        "DOWNLOAD_EXTRACTEDREPORT": "Hent uddraget rapport",
+        "EDIT_EXTRACTEDREPORT": "Rediger uddraget rapport"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/de.json b/public/app/main/apps/analytics/i18n/de.json
new file mode 100644 (file)
index 0000000..a86718c
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Name",
+        "ANALYTICS": "Analytics",
+        "METRICS": "Kennzahlen",
+        "ID": "Id",
+        "TABLE": "Tabelle",
+        "DESCRIPTION": "Beschreibung",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "METRIC": "Metrisch",
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "METRIC_REQUIRED": "Die Metrik ist erforderlich",
+            "COLUMN_REQUIRED": "Die Spalte ist erforderlich",
+            "VALUE_REQUIRED": "Der Wert ist erforderlich",
+            "CUSTOM_METRIC_REQUIRED": "Die benutzerdefinierte Metrik ist erforderlich",
+            "ALIAS_REQUIRED": "Der Alias wird benötigt"
+        },
+        "NEW_METRIC": "Neue metrische",
+        "ADD_METRIC": "Metrische hinzufügen",
+        "EDIT_METRIC": "Metrische bearbeiten",
+        "DELETE_METRIC": "Löschen Sie Metrisch",
+        "SAVE": "Speichern",
+        "BACK": "Zurück",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "TYPE": "Typ",
+        "EXTRACTEDREPORTS": "Berichte extrahiert",
+        "DATE_RANGE_FROM": "Datum von",
+        "DATE_RANGE_TO": "Datum bis",
+        "GENERATED_AT": "Die an",
+        "STATUS": "Status",
+        "OUTPUT": "Ausgang",
+        "REPORTS": "Berichte",
+        "SEARCH_FOR_FOLDER": "Ordner suchen",
+        "CREATED_AT": "Erstellt am",
+        "NEW_REPORT": "Neuer Bericht",
+        "ADD_REPORT": "Bericht hinzufügen",
+        "COPY_REPORT": "Bericht kopieren",
+        "PREVIEW_REPORT": "Berichtvorschau",
+        "RUN_REPORT": "Bericht ausführen",
+        "DOWNLOAD_JSON_REPORT": "JSON exportieren: Exportiert den Bericht",
+        "EDIT_REPORT": "Bericht bearbeiten",
+        "DELETE_REPORT": "Bericht löschen",
+        "CREATE": "Ordner erstellen",
+        "RENAME": "Ordner umbenennen",
+        "REMOVE": "Ordner entfernen",
+        "SELECT_NODE": "Wählen Sie den Ordner aus",
+        "ERROR": "Fehler",
+        "QUERY_ERROR": "Anfragefehler",
+        "MESSAGE": "Nachricht",
+        "CLOSE": "In der Nähe",
+        "FORMAT": "Format",
+        "SETTINGS": "Einstellungen",
+        "GENERAL": "Allgemein",
+        "FIELDS": "Felder",
+        "CONDITION": "Zustand",
+        "OPERATOR": "Betreiber",
+        "GROUP": "Gruppe",
+        "COLUMN": "Spalte",
+        "VALUE": "Wert",
+        "PREVIEW": "Vorschau",
+        "LIMITED_RESULT": "*Begrenzt Ergebnisse",
+        "NO_DATA": "Keine Ergebnisse",
+        "CONDITIONS": "Bedingungen",
+        "ALIAS": "Alias",
+        "FUNCTION": "Funktion",
+        "GROUP_BY": "Gruppieren nach",
+        "ORDER_BY": "Bestellung von",
+        "ADD_REPORTFIELD": "Feld hinzufügen",
+        "EDIT_REPORTFIELD": "Feld bearbeiten",
+        "DELETE_REPORTFIELD": "Feld löschen",
+        "METRIC_NAME": "Metrisch",
+        "NO_METRIC_FOUND": "Kein metrisches System gefunden",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "CUSTOM_METRIC": "Benutzerdefinierte Metrik",
+        "DELETE_EXTRACTEDREPORT": "Extrahiert Bericht löschen",
+        "DOWNLOAD_EXTRACTEDREPORT": "Download extrahiert Bericht",
+        "EDIT_EXTRACTEDREPORT": "Extrahiert Bericht bearbeiten"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/en.json b/public/app/main/apps/analytics/i18n/en.json
new file mode 100644 (file)
index 0000000..9481b3b
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Name",
+        "ANALYTICS": "Analytics",
+        "METRICS": "Metrics",
+        "ID": "Id",
+        "TABLE": "Table",
+        "DESCRIPTION": "Description",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "METRIC": "Metric",
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is required",
+            "METRIC_REQUIRED": "The Metric is required",
+            "COLUMN_REQUIRED": "The Column is required",
+            "VALUE_REQUIRED": "The Value is required",
+            "CUSTOM_METRIC_REQUIRED": "The Custom Metric is required",
+            "ALIAS_REQUIRED": "The Alias is required"
+        },
+        "NEW_METRIC": "New Metric",
+        "ADD_METRIC": "Add Metric",
+        "EDIT_METRIC": "Edit Metric",
+        "DELETE_METRIC": "Delete Metric",
+        "SAVE": "Save",
+        "BACK": "Back",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "TYPE": "Type",
+        "EXTRACTEDREPORTS": "Extracted Reports",
+        "DATE_RANGE_FROM": "Date Range From",
+        "DATE_RANGE_TO": "Date Range To",
+        "GENERATED_AT": "Generated At",
+        "STATUS": "Status",
+        "OUTPUT": "Output",
+        "REPORTS": "Reports",
+        "SEARCH_FOR_FOLDER": "Search for folder",
+        "CREATED_AT": "Created At",
+        "NEW_REPORT": "New Report",
+        "ADD_REPORT": "Add Report",
+        "COPY_REPORT": "Copy Report",
+        "PREVIEW_REPORT": "Preview Report",
+        "RUN_REPORT": "Run Report",
+        "DOWNLOAD_JSON_REPORT": "Export Report JSON",
+        "EDIT_REPORT": "Edit Report",
+        "DELETE_REPORT": "Delete Report",
+        "CREATE": "Create Folder",
+        "RENAME": "Rename Folder",
+        "REMOVE": "Remove Folder",
+        "SELECT_NODE": "Select Folder",
+        "ERROR": "Error",
+        "QUERY_ERROR": "Query Error",
+        "MESSAGE": "Message",
+        "CLOSE": "Close",
+        "FORMAT": "Format",
+        "SETTINGS": "Settings",
+        "GENERAL": "General",
+        "FIELDS": "Fields",
+        "CONDITION": "Condition",
+        "OPERATOR": "Operator",
+        "GROUP": "Group",
+        "COLUMN": "Column",
+        "VALUE": "Value",
+        "PREVIEW": "Preview",
+        "LIMITED_RESULT": "*Limited Results",
+        "NO_DATA": "No data results",
+        "CONDITIONS": "Conditions",
+        "ALIAS": "Alias",
+        "FUNCTION": "Function",
+        "GROUP_BY": "Group By",
+        "ORDER_BY": "Order By",
+        "ADD_REPORTFIELD": "Add Field",
+        "EDIT_REPORTFIELD": "Edit Field",
+        "DELETE_REPORTFIELD": "Delete Field",
+        "METRIC_NAME": "Metric",
+        "NO_METRIC_FOUND": "No metric found",
+        "NO_AVAILABLE_INFO": "No available info",
+        "CUSTOM_METRIC": "Custom Metric",
+        "DELETE_EXTRACTEDREPORT": "Delete Extracted Report",
+        "EDIT_EXTRACTEDREPORT": "Edit Extracted Report",
+        "DOWNLOAD_EXTRACTEDREPORT": "Download Extracted Report"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/es.json b/public/app/main/apps/analytics/i18n/es.json
new file mode 100644 (file)
index 0000000..01e6e78
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Nombre",
+        "ANALYTICS": "Analytics",
+        "METRICS": "La métrica",
+        "ID": "Id",
+        "TABLE": "Tabla",
+        "DESCRIPTION": "Descripción",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "METRIC": "Métrica",
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "METRIC_REQUIRED": "La métrica es obligatorio",
+            "COLUMN_REQUIRED": "La columna es necesaria",
+            "VALUE_REQUIRED": "El valor es obligatorio",
+            "CUSTOM_METRIC_REQUIRED": "La métrica personalizada es obligatorio",
+            "ALIAS_REQUIRED": "El alias es obligatorio"
+        },
+        "NEW_METRIC": "Nueva métrica",
+        "ADD_METRIC": "Agregar métricas",
+        "EDIT_METRIC": "Editar métrico",
+        "DELETE_METRIC": "Eliminar métrica",
+        "SAVE": "Guardar",
+        "BACK": "Volver",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "TYPE": "Tipo",
+        "EXTRACTEDREPORTS": "Informes extraídos",
+        "DATE_RANGE_FROM": "El rango de fecha de",
+        "DATE_RANGE_TO": "El rango de fechas a",
+        "GENERATED_AT": "Generado en",
+        "STATUS": "El estado",
+        "OUTPUT": "Salida",
+        "REPORTS": "Informes",
+        "SEARCH_FOR_FOLDER": "Busca la carpeta",
+        "CREATED_AT": "Creado en",
+        "NEW_REPORT": "Nuevo informe",
+        "ADD_REPORT": "Agregar informe",
+        "COPY_REPORT": "Copiar informe",
+        "PREVIEW_REPORT": "Vista previa de informe",
+        "RUN_REPORT": "Ejecutar informe",
+        "DOWNLOAD_JSON_REPORT": "Informe Export JSON.",
+        "EDIT_REPORT": "Editar informe",
+        "DELETE_REPORT": "Eliminar informe",
+        "CREATE": "Crear carpeta",
+        "RENAME": "Renombrar carpeta",
+        "REMOVE": "Eliminar carpeta",
+        "SELECT_NODE": "Seleccione la carpeta",
+        "ERROR": "Error",
+        "QUERY_ERROR": "Error en la consulta",
+        "MESSAGE": "Mensaje",
+        "CLOSE": "Cerrar",
+        "FORMAT": "Formato",
+        "SETTINGS": "Configuración",
+        "GENERAL": "General",
+        "FIELDS": "Campos",
+        "CONDITION": "Condición",
+        "OPERATOR": "Operador",
+        "GROUP": "Grupo",
+        "COLUMN": "Columna",
+        "VALUE": "Valor",
+        "PREVIEW": "Vista previa",
+        "LIMITED_RESULT": "*resultados limitados.",
+        "NO_DATA": "No hay resultados",
+        "CONDITIONS": "Condiciones",
+        "ALIAS": "Alias",
+        "FUNCTION": "Función",
+        "GROUP_BY": "Por grupo",
+        "ORDER_BY": "Ordenar por",
+        "ADD_REPORTFIELD": "Agregar campo",
+        "EDIT_REPORTFIELD": "Campo de edición",
+        "DELETE_REPORTFIELD": "Eliminar el campo",
+        "METRIC_NAME": "Métrica",
+        "NO_METRIC_FOUND": "Métrica no encontrado",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "CUSTOM_METRIC": "Métrica personalizada",
+        "DELETE_EXTRACTEDREPORT": "Eliminar informe extraído",
+        "DOWNLOAD_EXTRACTEDREPORT": "Descargar informe extraído",
+        "EDIT_EXTRACTEDREPORT": "Editar informe extraído"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/fa.json b/public/app/main/apps/analytics/i18n/fa.json
new file mode 100644 (file)
index 0000000..0ccc2a3
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "نام",
+        "ANALYTICS": "Analytics",
+        "METRICS": "تجديد نظر كامل درمراحل اداره پردازش",
+        "ID": "شناسه",
+        "TABLE": "میز",
+        "DESCRIPTION": "شرح",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "METRIC": "متري",
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "METRIC_REQUIRED": "متري لازم است.",
+            "COLUMN_REQUIRED": "ستون لازم است.",
+            "VALUE_REQUIRED": "مقدار مورد نیاز است.",
+            "CUSTOM_METRIC_REQUIRED": "متري سفارشی لازم است.",
+            "ALIAS_REQUIRED": "عبدالرزاق، لازم است."
+        },
+        "NEW_METRIC": "متري جديد",
+        "ADD_METRIC": "متري اضافه کنید",
+        "EDIT_METRIC": "ویرایش اثرش",
+        "DELETE_METRIC": "متري را حذف کنید",
+        "SAVE": "ذخیره",
+        "BACK": "پشت",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "TYPE": "نوع دستگاه",
+        "EXTRACTEDREPORTS": "گزارشات استخراج شده",
+        "DATE_RANGE_FROM": "دامنه تاریخ",
+        "DATE_RANGE_TO": "به وسعت تاریخ",
+        "GENERATED_AT": "ایجاد شده در",
+        "STATUS": "وضعیت",
+        "OUTPUT": "خروجی",
+        "REPORTS": "گزارش",
+        "SEARCH_FOR_FOLDER": "جستجوی پوشه",
+        "CREATED_AT": "ایجاد شده در",
+        "NEW_REPORT": "گزارش جدید",
+        "ADD_REPORT": "گزارش اضافه کنید",
+        "COPY_REPORT": "گزارش کپی",
+        "PREVIEW_REPORT": "گزارش پیش نمایش",
+        "RUN_REPORT": "گزارش اجرا",
+        "DOWNLOAD_JSON_REPORT": "گزارش صادرات JSON",
+        "EDIT_REPORT": "ویرایش گزارش",
+        "DELETE_REPORT": "گزارش را حذف کنید",
+        "CREATE": "ایجاد پوشه اشتراکی",
+        "RENAME": "پوشه کامپیوترها",
+        "REMOVE": "پوشه را حذف کنید",
+        "SELECT_NODE": "یک پوشه را انتخاب کنید",
+        "ERROR": "خطا",
+        "QUERY_ERROR": "پرسش خطا",
+        "MESSAGE": "ارسال پیام",
+        "CLOSE": "بستن",
+        "FORMAT": "قالب بندی",
+        "SETTINGS": "تنظیمات",
+        "GENERAL": "سردار",
+        "FIELDS": "رشته",
+        "CONDITION": "شرط",
+        "OPERATOR": "اپراتور",
+        "GROUP": "گروه",
+        "COLUMN": "ستون فرمان",
+        "VALUE": "مقدار",
+        "PREVIEW": "پیش نمایش",
+        "LIMITED_RESULT": "*نتایج محدود",
+        "NO_DATA": "نه نتایج داده ها",
+        "CONDITIONS": "شرايط",
+        "ALIAS": "عبدالرزاق",
+        "FUNCTION": "عملکرد",
+        "GROUP_BY": "توسط گروه",
+        "ORDER_BY": "فرمان",
+        "ADD_REPORTFIELD": "افزودن رشته",
+        "EDIT_REPORTFIELD": "ویرایش رشته",
+        "DELETE_REPORTFIELD": "رشته را حذف کنید",
+        "METRIC_NAME": "متري",
+        "NO_METRIC_FOUND": "نه متري یافت نشد.",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "CUSTOM_METRIC": "متري سفارشی",
+        "DELETE_EXTRACTEDREPORT": "گزارش استخراج شده را حذف کنید",
+        "DOWNLOAD_EXTRACTEDREPORT": "گزارش استخراج شده را بارگیری کنید",
+        "EDIT_EXTRACTEDREPORT": "ویرایش گزارش استخراج شده"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/fi.json b/public/app/main/apps/analytics/i18n/fi.json
new file mode 100644 (file)
index 0000000..ee2e050
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Nimi",
+        "ANALYTICS": "Analytics",
+        "METRICS": "Tunnusluvut",
+        "ID": "Tunnus",
+        "TABLE": "Taulukko",
+        "DESCRIPTION": "Kuvaus",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "METRIC": "Metrijärjestelmä",
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "METRIC_REQUIRED": "Tunnusluku on pakollinen",
+            "COLUMN_REQUIRED": "Sarake on pakollinen",
+            "VALUE_REQUIRED": "Arvo on pakollinen",
+            "CUSTOM_METRIC_REQUIRED": "Mukautetun metrinen ei tarvita",
+            "ALIAS_REQUIRED": "Alias on pakollinen"
+        },
+        "NEW_METRIC": "Uuden tunnusluvun",
+        "ADD_METRIC": "Lisää metrinen",
+        "EDIT_METRIC": "Muokkaa metrinen",
+        "DELETE_METRIC": "Poista metrinen",
+        "SAVE": "Tallenna",
+        "BACK": "Takaisin",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "TYPE": "Tyyppi",
+        "EXTRACTEDREPORTS": "Uutetaan raportit",
+        "DATE_RANGE_FROM": "Päivämääräväli",
+        "DATE_RANGE_TO": "Päättymispäivämäärä",
+        "GENERATED_AT": "Luotu",
+        "STATUS": "Tila",
+        "OUTPUT": "Lähtö",
+        "REPORTS": "Raportit",
+        "SEARCH_FOR_FOLDER": "Etsi kansio",
+        "CREATED_AT": "Luodaan",
+        "NEW_REPORT": "Uusi raportti",
+        "ADD_REPORT": "Lisää raporttiin",
+        "COPY_REPORT": "Kopioi raportti",
+        "PREVIEW_REPORT": "Raportin esikatselu",
+        "RUN_REPORT": "Tee raportti",
+        "DOWNLOAD_JSON_REPORT": "Vientiraportti JSON",
+        "EDIT_REPORT": "Muokkaa raportin",
+        "DELETE_REPORT": "Poistaa",
+        "CREATE": "Luo kansio",
+        "RENAME": "Nimeä kansio",
+        "REMOVE": "Poista kansio",
+        "SELECT_NODE": "Valitse laajennettava tai supistettava kansio",
+        "ERROR": "Virhe",
+        "QUERY_ERROR": "Kysely virhe",
+        "MESSAGE": "Viesti",
+        "CLOSE": "Sulje",
+        "FORMAT": "Muoto",
+        "SETTINGS": "Asetusten määrittäminen",
+        "GENERAL": "Yleistä",
+        "FIELDS": "Kentät",
+        "CONDITION": "Kunto",
+        "OPERATOR": "Käyttäjä",
+        "GROUP": "Ryhmä",
+        "COLUMN": "Sarakkeessa",
+        "VALUE": "Arvo",
+        "PREVIEW": "Esikatselu",
+        "LIMITED_RESULT": "*vain vähäisiä tuloksia",
+        "NO_DATA": "Ei tietoja tulokset",
+        "CONDITIONS": "Edellytykset",
+        "ALIAS": "Alias",
+        "FUNCTION": "Toiminto",
+        "GROUP_BY": "Group By",
+        "ORDER_BY": "Tilauksen esitiliöinti",
+        "ADD_REPORTFIELD": "Lisää kenttä",
+        "EDIT_REPORTFIELD": "Kentän muokkaaminen",
+        "DELETE_REPORTFIELD": "Poista kenttä",
+        "METRIC_NAME": "Metrijärjestelmä",
+        "NO_METRIC_FOUND": "Ei löydy metrinen",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "CUSTOM_METRIC": "Mukautettu metrinen",
+        "DELETE_EXTRACTEDREPORT": "Poista uutetaan raportti",
+        "DOWNLOAD_EXTRACTEDREPORT": "Lataa raportti uuttaa",
+        "EDIT_EXTRACTEDREPORT": "Muokkaa raportin uuttaa"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/fr.json b/public/app/main/apps/analytics/i18n/fr.json
new file mode 100644 (file)
index 0000000..09b6526
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Nom",
+        "ANALYTICS": "Analytics",
+        "METRICS": "Metrics",
+        "ID": "Id",
+        "TABLE": "Le tableau",
+        "DESCRIPTION": "Description",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "METRIC": "Le système métrique",
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "METRIC_REQUIRED": "Le système métrique est requise",
+            "COLUMN_REQUIRED": "La colonne est nécessaire",
+            "VALUE_REQUIRED": "Cette valeur est requise",
+            "CUSTOM_METRIC_REQUIRED": "La métrique personnalisée est requise",
+            "ALIAS_REQUIRED": "L'Alias est requis"
+        },
+        "NEW_METRIC": "Nouvelle mesure",
+        "ADD_METRIC": "Ajouter le système métrique",
+        "EDIT_METRIC": "Modifier le système métrique",
+        "DELETE_METRIC": "Supprimer le système métrique",
+        "SAVE": "Sauvegarder",
+        "BACK": "Retour",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "TYPE": "Type",
+        "EXTRACTEDREPORTS": "Rapports d'Extraits",
+        "DATE_RANGE_FROM": "Date de début et de fin de",
+        "DATE_RANGE_TO": "Plage de dates pour",
+        "GENERATED_AT": "Produite à",
+        "STATUS": "Status",
+        "OUTPUT": "Output",
+        "REPORTS": "Rapports",
+        "SEARCH_FOR_FOLDER": "Recherchez le dossier",
+        "CREATED_AT": "Créé à",
+        "NEW_REPORT": "Nouveau rapport",
+        "ADD_REPORT": "Ajouter le rapport",
+        "COPY_REPORT": "La copie de rapport",
+        "PREVIEW_REPORT": "Rapport d'aperçu",
+        "RUN_REPORT": "Exécuter rapport",
+        "DOWNLOAD_JSON_REPORT": "JSON Rapport d'exportation",
+        "EDIT_REPORT": "Modifier le rapport",
+        "DELETE_REPORT": "Supprimer le rapport",
+        "CREATE": "Créer un dossier",
+        "RENAME": "Renommer dossier",
+        "REMOVE": "Supprimer le dossier",
+        "SELECT_NODE": "Sélectionnez le dossier",
+        "ERROR": "Error",
+        "QUERY_ERROR": "Erreur de requête",
+        "MESSAGE": "Message",
+        "CLOSE": "Fermer",
+        "FORMAT": "Présentation",
+        "SETTINGS": "Settings",
+        "GENERAL": "Général",
+        "FIELDS": "Domaines",
+        "CONDITION": "Condition",
+        "OPERATOR": "Opérateur",
+        "GROUP": "Group",
+        "COLUMN": "La colonne",
+        "VALUE": "Valeur",
+        "PREVIEW": "Aperçu",
+        "LIMITED_RESULT": "*Résultats limités",
+        "NO_DATA": "Pas de résultats de données",
+        "CONDITIONS": "Conditions générales",
+        "ALIAS": "Alias",
+        "FUNCTION": "Fonction",
+        "GROUP_BY": "Par groupe",
+        "ORDER_BY": "Commande par",
+        "ADD_REPORTFIELD": "Ajouter un champ",
+        "EDIT_REPORTFIELD": "Champ d'édition",
+        "DELETE_REPORTFIELD": "Supprimer un champ",
+        "METRIC_NAME": "Le système métrique",
+        "NO_METRIC_FOUND": "Aucun paramètre trouvés",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "CUSTOM_METRIC": "Métriques personnalisées",
+        "DELETE_EXTRACTEDREPORT": "Supprimer rapport extrait",
+        "DOWNLOAD_EXTRACTEDREPORT": "Télécharger le rapport d'Extraits",
+        "EDIT_EXTRACTEDREPORT": "Rapport Edit"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/hi.json b/public/app/main/apps/analytics/i18n/hi.json
new file mode 100644 (file)
index 0000000..b965c90
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "नाम",
+        "ANALYTICS": "Analytics",
+        "METRICS": "छंदशास् त्र",
+        "ID": "Id",
+        "TABLE": "तालिका",
+        "DESCRIPTION": "वर्णन",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "METRIC": "2.93",
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "METRIC_REQUIRED": "2.93 यह अपेक्षित है।",
+            "COLUMN_REQUIRED": "स्तंभ की आवश्यकता है।",
+            "VALUE_REQUIRED": "मूल्य की आवश्यकता है।",
+            "CUSTOM_METRIC_REQUIRED": "कस्टम मैट्रिक की आवश्यकता है।",
+            "ALIAS_REQUIRED": "इस उर्फ अपेक्षित है।"
+        },
+        "NEW_METRIC": "नई मीट्रिक",
+        "ADD_METRIC": "2.93 जोड़ें",
+        "EDIT_METRIC": "2.93 संपादित करें",
+        "DELETE_METRIC": "2.93 हटाएं",
+        "SAVE": "सहेजें",
+        "BACK": "वापिस",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "TYPE": "प्रकार",
+        "EXTRACTEDREPORTS": "सत्व प्रतिवेदनों",
+        "DATE_RANGE_FROM": "तिथि से",
+        "DATE_RANGE_TO": "की तिथि से दूरी",
+        "GENERATED_AT": "में सृजित",
+        "STATUS": "की स्थिति",
+        "OUTPUT": "उत् पादन में",
+        "REPORTS": "प्रतिवेदनों",
+        "SEARCH_FOR_FOLDER": "फ़ोल्डर के लिए खोजें",
+        "CREATED_AT": "सृजित",
+        "NEW_REPORT": "नई रिपोर्ट",
+        "ADD_REPORT": "रिपोर्ट में जोड़ें",
+        "COPY_REPORT": "रिपोर्ट में कॉपी करें",
+        "PREVIEW_REPORT": "पूर्वावलोकन प्रतिवेदन",
+        "RUN_REPORT": "चलाने की रिपोर्ट",
+        "DOWNLOAD_JSON_REPORT": "निर्यात की रिपोर्ट JSON",
+        "EDIT_REPORT": "प्रतिवेदन को संपादित करें",
+        "DELETE_REPORT": "रिपोर्ट हटाएं",
+        "CREATE": "फ़ोल्डर बनाएं",
+        "RENAME": "फ़ोल्डर का नाम बदलना",
+        "REMOVE": "फ़ोल्डर हटाने",
+        "SELECT_NODE": "फ़ोल्डर का चयन करें",
+        "ERROR": "त्रुटि",
+        "QUERY_ERROR": "प्रश्न के उत्तर में त्रुटि",
+        "MESSAGE": "संदेश",
+        "CLOSE": "निकट",
+        "FORMAT": "स्वरूप",
+        "SETTINGS": "सेटिंग्स",
+        "GENERAL": "सामान्य",
+        "FIELDS": "खेतों",
+        "CONDITION": "दशा",
+        "OPERATOR": "आॅपरेटर",
+        "GROUP": "समूह",
+        "COLUMN": "स्तंभ",
+        "VALUE": "मूल्य",
+        "PREVIEW": "पूर्वावलोकन",
+        "LIMITED_RESULT": "* लिमिटेड के परिणाम",
+        "NO_DATA": "कोई डेटा परिणाम",
+        "CONDITIONS": "शर्तों",
+        "ALIAS": "उर्फ",
+        "FUNCTION": "कार्य",
+        "GROUP_BY": "समूह",
+        "ORDER_BY": "आदेश",
+        "ADD_REPORTFIELD": "फ़ील्ड जोड़ें",
+        "EDIT_REPORTFIELD": "फ़ील्ड संपादित करें",
+        "DELETE_REPORTFIELD": "हटाएं फ़ील्ड",
+        "METRIC_NAME": "2.93",
+        "NO_METRIC_FOUND": "2.93 नहीं मिला",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "CUSTOM_METRIC": "कस्टम मीट्रिक",
+        "DELETE_EXTRACTEDREPORT": "सत्व प्रतिवेदन को हटाएं",
+        "DOWNLOAD_EXTRACTEDREPORT": "डाउनलोड निष्कर्षित की रिपोर्ट",
+        "EDIT_EXTRACTEDREPORT": "संपादित करने के लिए सत्व प्रतिवेदन"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/it.json b/public/app/main/apps/analytics/i18n/it.json
new file mode 100644 (file)
index 0000000..f127041
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Name",
+        "ANALYTICS": "Analytics",
+        "METRICS": "Metriche",
+        "ID": "Id",
+        "TABLE": "Tabella",
+        "DESCRIPTION": "Descrizione",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "METRIC": "Metrica",
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "METRIC_REQUIRED": "La Metrica è richiesta",
+            "COLUMN_REQUIRED": "La Colonna è richiesta",
+            "VALUE_REQUIRED": "Il Valore è richisto",
+            "CUSTOM_METRIC_REQUIRED": "La Metrica personalizzata è richiesta",
+            "ALIAS_REQUIRED": "L' Alias è richiesto"
+        },
+        "NEW_METRIC": "Nuova Metrica",
+        "ADD_METRIC": "Aggiungi Metrica",
+        "EDIT_METRIC": "Modifica Metrica",
+        "DELETE_METRIC": "Elimina Metrica",
+        "SAVE": "Salva",
+        "BACK": "Indietro",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutti",
+        "SELECT_NONE": "Deseleziona tutti",
+        "TYPE": "Tipo",
+        "EXTRACTEDREPORTS": "Report Estratti",
+        "DATE_RANGE_FROM": "Intervallo Date Da",
+        "DATE_RANGE_TO": "Intervallo Date A",
+        "GENERATED_AT": "Generato il",
+        "STATUS": "Stato",
+        "OUTPUT": "Output",
+        "REPORTS": "Report",
+        "SEARCH_FOR_FOLDER": "Cerca per cartella",
+        "CREATED_AT": "Creato il",
+        "NEW_REPORT": "Nuovo Report",
+        "ADD_REPORT": "AggiungiReport",
+        "COPY_REPORT": "Copia Report",
+        "PREVIEW_REPORT": "Anteprima Report",
+        "RUN_REPORT": "Esegui Report",
+        "DOWNLOAD_JSON_REPORT": "Esporta JSON Report",
+        "EDIT_REPORT": "Modifica Report",
+        "DELETE_REPORT": "Elimina Report",
+        "CREATE": "Nuova cartella",
+        "RENAME": "Rinomina cartella",
+        "REMOVE": "Elimina cartella",
+        "SELECT_NODE": "Seleziona cartella",
+        "ERROR": "Errore",
+        "QUERY_ERROR": "Errore Query",
+        "MESSAGE": "Messaggio",
+        "CLOSE": "Chiudi",
+        "FORMAT": "Formato",
+        "SETTINGS": "Impostazioni",
+        "GENERAL": "Generale",
+        "FIELDS": "Campi",
+        "CONDITION": "Condizione",
+        "OPERATOR": "Operatore",
+        "GROUP": "Gruppo",
+        "COLUMN": "Colonna",
+        "VALUE": "Valore",
+        "PREVIEW": "Anteprima",
+        "LIMITED_RESULT": "*Risultati limitati",
+        "NO_DATA": "Nessun risultato",
+        "CONDITIONS": "Condizioni",
+        "ALIAS": "Alias",
+        "FUNCTION": "Funzione",
+        "GROUP_BY": "Raggruppa per",
+        "ORDER_BY": "Ordina per",
+        "ADD_REPORTFIELD": "Aggiungi Campo",
+        "EDIT_REPORTFIELD": "Modifica Campo",
+        "DELETE_REPORTFIELD": "Elimina Campo",
+        "METRIC_NAME": "Metric",
+        "NO_METRIC_FOUND": "Metrica non trovata",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "CUSTOM_METRIC": "Metrica personalizzata",
+        "DELETE_EXTRACTEDREPORT": "Elimina Report Estratto",
+        "EDIT_EXTRACTEDREPORT": "Modifica Report Estratto",
+        "DOWNLOAD_EXTRACTEDREPORT": "Scarica Report Estratto"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/ja.json b/public/app/main/apps/analytics/i18n/ja.json
new file mode 100644 (file)
index 0000000..06d14e0
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "名",
+        "ANALYTICS": "分析",
+        "METRICS": "メトリック",
+        "ID": "Id",
+        "TABLE": "テーブル",
+        "DESCRIPTION": "説明",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "METRIC": "メトリック",
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "METRIC_REQUIRED": "メトリックが必要です",
+            "COLUMN_REQUIRED": "列が必要です",
+            "VALUE_REQUIRED": "の値が必要です",
+            "CUSTOM_METRIC_REQUIRED": "カスタムメトリックが必要です",
+            "ALIAS_REQUIRED": "エイリアスが必要な"
+        },
+        "NEW_METRIC": "新しいメトリック",
+        "ADD_METRIC": "メトリックを追加",
+        "EDIT_METRIC": "編集メトリック",
+        "DELETE_METRIC": "メトリックを削除",
+        "SAVE": "保存",
+        "BACK": "背面",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "TYPE": "タイプ",
+        "EXTRACTEDREPORTS": "抽出されたレポート",
+        "DATE_RANGE_FROM": "日付範囲から",
+        "DATE_RANGE_TO": "日付範囲を設定します",
+        "GENERATED_AT": "生成されたで",
+        "STATUS": "ステータス",
+        "OUTPUT": "出力",
+        "REPORTS": "レポート",
+        "SEARCH_FOR_FOLDER": "フォルダを検索する",
+        "CREATED_AT": "で作成された",
+        "NEW_REPORT": "新しいレポート",
+        "ADD_REPORT": "レポートの追加",
+        "COPY_REPORT": "レポートのコピー",
+        "PREVIEW_REPORT": "レポートのプレビュー",
+        "RUN_REPORT": "レポートを実行します",
+        "DOWNLOAD_JSON_REPORT": "レポートのエクスポート JSON",
+        "EDIT_REPORT": "レポートの編集",
+        "DELETE_REPORT": "レポートを削除します。",
+        "CREATE": "フォルダを作成します。",
+        "RENAME": "フォルダの名前を変更する",
+        "REMOVE": "」フォルダを削除します。",
+        "SELECT_NODE": "フォルダを選択します",
+        "ERROR": "エラーが発生しました",
+        "QUERY_ERROR": "クエリエラーが発生しました",
+        "MESSAGE": "メッセージ",
+        "CLOSE": "閉じる",
+        "FORMAT": "フォーマット",
+        "SETTINGS": "の設定",
+        "GENERAL": "一般的な",
+        "FIELDS": "フィールド",
+        "CONDITION": "状態",
+        "OPERATOR": "演算子",
+        "GROUP": "グループ",
+        "COLUMN": "列",
+        "VALUE": "値",
+        "PREVIEW": "プレビュー",
+        "LIMITED_RESULT": "* 限られた結果",
+        "NO_DATA": "データの検索結果がありません",
+        "CONDITIONS": "条件",
+        "ALIAS": "エイリアス",
+        "FUNCTION": "関数",
+        "GROUP_BY": "グループで",
+        "ORDER_BY": "注文し",
+        "ADD_REPORTFIELD": "フィールドを追加する",
+        "EDIT_REPORTFIELD": "編集フィールド",
+        "DELETE_REPORTFIELD": "フィールドを削除する",
+        "METRIC_NAME": "メトリック",
+        "NO_METRIC_FOUND": "メトリックが見つかりませんでした",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "CUSTOM_METRIC": "カスタムメトリック",
+        "DELETE_EXTRACTEDREPORT": "抽出されたレポートを削除します。",
+        "DOWNLOAD_EXTRACTEDREPORT": "抽出されたレポートのダウンロード",
+        "EDIT_EXTRACTEDREPORT": "抽出されたレポートの編集"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/ko.json b/public/app/main/apps/analytics/i18n/ko.json
new file mode 100644 (file)
index 0000000..6177a82
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "이름",
+        "ANALYTICS": "분석",
+        "METRICS": "메트릭",
+        "ID": "Id",
+        "TABLE": "테이블",
+        "DESCRIPTION": "설명",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "METRIC": "메트릭",
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "METRIC_REQUIRED": "메트릭 필요합니다.",
+            "COLUMN_REQUIRED": "열이 필요합니다.",
+            "VALUE_REQUIRED": "값이 필요합니다.",
+            "CUSTOM_METRIC_REQUIRED": "사용자 정의 측정 항목은 필수",
+            "ALIAS_REQUIRED": "별명이 필요합니다."
+        },
+        "NEW_METRIC": "새로운 메트릭",
+        "ADD_METRIC": "메트릭 추가",
+        "EDIT_METRIC": "편집 메트릭",
+        "DELETE_METRIC": "메트릭 삭제",
+        "SAVE": "저장",
+        "BACK": "후면",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "TYPE": "유형",
+        "EXTRACTEDREPORTS": "추출된 보고서",
+        "DATE_RANGE_FROM": "날짜 범위",
+        "DATE_RANGE_TO": "날짜 범위",
+        "GENERATED_AT": "생성되는",
+        "STATUS": "상태",
+        "OUTPUT": "출력",
+        "REPORTS": "보고서",
+        "SEARCH_FOR_FOLDER": "폴더 검색",
+        "CREATED_AT": "생성",
+        "NEW_REPORT": "새 보고서",
+        "ADD_REPORT": "보고서 추가",
+        "COPY_REPORT": "보고서 복사",
+        "PREVIEW_REPORT": "보고서 미리 보기",
+        "RUN_REPORT": "보고서 실행",
+        "DOWNLOAD_JSON_REPORT": "보고서는 Json 내보내기",
+        "EDIT_REPORT": "보고서 편집",
+        "DELETE_REPORT": "보고서 삭제",
+        "CREATE": "폴더를 만들려면",
+        "RENAME": "폴더 이름 바꾸기",
+        "REMOVE": "폴더 제거",
+        "SELECT_NODE": "폴더 선택",
+        "ERROR": "오류",
+        "QUERY_ERROR": "쿼리 오류",
+        "MESSAGE": "메시지",
+        "CLOSE": "닫기",
+        "FORMAT": "형식",
+        "SETTINGS": "설정",
+        "GENERAL": "일반",
+        "FIELDS": "필드",
+        "CONDITION": "조건",
+        "OPERATOR": "운영자",
+        "GROUP": "그룹",
+        "COLUMN": "열",
+        "VALUE": "값",
+        "PREVIEW": "미리 보기",
+        "LIMITED_RESULT": "* 제한된 결과",
+        "NO_DATA": "데이터 검색 결과 없음",
+        "CONDITIONS": "조건",
+        "ALIAS": "별칭",
+        "FUNCTION": "기능",
+        "GROUP_BY": "그룹별",
+        "ORDER_BY": "주문",
+        "ADD_REPORTFIELD": "필드 추가",
+        "EDIT_REPORTFIELD": "필드 편집",
+        "DELETE_REPORTFIELD": "필드 삭제",
+        "METRIC_NAME": "메트릭",
+        "NO_METRIC_FOUND": "메트릭 찾을 수 없음",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "CUSTOM_METRIC": "사용자 정의 메트릭을",
+        "DELETE_EXTRACTEDREPORT": "추출된 보고서 삭제",
+        "DOWNLOAD_EXTRACTEDREPORT": "추출된 보고서 다운로드",
+        "EDIT_EXTRACTEDREPORT": "추출된 보고서 편집"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/nl.json b/public/app/main/apps/analytics/i18n/nl.json
new file mode 100644 (file)
index 0000000..a9cad4d
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Naam",
+        "ANALYTICS": "Analytics",
+        "METRICS": "Metrieken",
+        "ID": "Id",
+        "TABLE": "Tabel",
+        "DESCRIPTION": "Beschrijving",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "METRIC": "Metrisch",
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "METRIC_REQUIRED": "De metrische is vereist",
+            "COLUMN_REQUIRED": "De kolom is vereist",
+            "VALUE_REQUIRED": "De waarde is vereist",
+            "CUSTOM_METRIC_REQUIRED": "De aangepaste metrisch is vereist",
+            "ALIAS_REQUIRED": "De alias is vereist"
+        },
+        "NEW_METRIC": "Nieuwe metrisch",
+        "ADD_METRIC": "Voeg metrisch",
+        "EDIT_METRIC": "Edit metrisch",
+        "DELETE_METRIC": "Verwijder metrisch",
+        "SAVE": "Opslaan",
+        "BACK": "Terug",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "TYPE": "Type",
+        "EXTRACTEDREPORTS": "Uitgepakte rapporten",
+        "DATE_RANGE_FROM": "Datumbereik Van",
+        "DATE_RANGE_TO": "Datumbereik Tot",
+        "GENERATED_AT": "Gegenereerd.",
+        "STATUS": "Status",
+        "OUTPUT": "Uitgang",
+        "REPORTS": "Rapporten",
+        "SEARCH_FOR_FOLDER": "Zoeken naar map",
+        "CREATED_AT": "Gemaakt op",
+        "NEW_REPORT": "Nieuw rapport",
+        "ADD_REPORT": "Rapport toevoegen",
+        "COPY_REPORT": "Kopie rapport",
+        "PREVIEW_REPORT": "Voorbeeldrapport.",
+        "RUN_REPORT": "Rapport uitvoeren",
+        "DOWNLOAD_JSON_REPORT": "Rapportgegevens exporteren JSON",
+        "EDIT_REPORT": "Rapport bewerken",
+        "DELETE_REPORT": "Rapport verwijderen",
+        "CREATE": "Map maken",
+        "RENAME": "Naam van map wijzigen",
+        "REMOVE": "Map verwijderen",
+        "SELECT_NODE": "Map selecteren",
+        "ERROR": "Fout",
+        "QUERY_ERROR": "Query fout",
+        "MESSAGE": "Bericht",
+        "CLOSE": "Dicht",
+        "FORMAT": "Formaat",
+        "SETTINGS": "Instellingen",
+        "GENERAL": "Algemeen",
+        "FIELDS": "Velden",
+        "CONDITION": "Voorwaarde",
+        "OPERATOR": "Bestuurder",
+        "GROUP": "Groep",
+        "COLUMN": "Kolom",
+        "VALUE": "Waarde",
+        "PREVIEW": "Afdrukvoorbeeld",
+        "LIMITED_RESULT": "*Beperkte resultaten",
+        "NO_DATA": "Geen gegevens resultaten",
+        "CONDITIONS": "Voorwaarden",
+        "ALIAS": "Alias",
+        "FUNCTION": "Functie",
+        "GROUP_BY": "Groeperen op",
+        "ORDER_BY": "Order By",
+        "ADD_REPORTFIELD": "Veld toevoegen",
+        "EDIT_REPORTFIELD": "Invoerveld",
+        "DELETE_REPORTFIELD": "Veld wissen",
+        "METRIC_NAME": "Metrisch",
+        "NO_METRIC_FOUND": "Geen metrische gevonden",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "CUSTOM_METRIC": "Aangepaste metrisch",
+        "DELETE_EXTRACTEDREPORT": "Verwijder geëxtraheerd verslag",
+        "DOWNLOAD_EXTRACTEDREPORT": "Download geëxtraheerd verslag",
+        "EDIT_EXTRACTEDREPORT": "Edit geëxtraheerd verslag"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/no.json b/public/app/main/apps/analytics/i18n/no.json
new file mode 100644 (file)
index 0000000..6347737
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Navn",
+        "ANALYTICS": "Analytics",
+        "METRICS": "Nøkkeltall",
+        "ID": "Id",
+        "TABLE": "Tabell",
+        "DESCRIPTION": "Beskrivelse",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "METRIC": "Metrisk",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "METRIC_REQUIRED": "Nøkkeltallet er nødvendig",
+            "COLUMN_REQUIRED": "Kolonnen er obligatorisk",
+            "VALUE_REQUIRED": "Verdien er obligatorisk",
+            "CUSTOM_METRIC_REQUIRED": "Den egendefinerte nøkkeltall er nødvendig",
+            "ALIAS_REQUIRED": "Aliaset er nødvendig"
+        },
+        "NEW_METRIC": "Nye nøkkeltall",
+        "ADD_METRIC": "Legg til metrisk",
+        "EDIT_METRIC": "Rediger metrisk",
+        "DELETE_METRIC": "Slette metrisk",
+        "SAVE": "Lagre",
+        "BACK": "Tilbake",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "TYPE": "Type",
+        "EXTRACTEDREPORTS": "Hentes ut rapporter",
+        "DATE_RANGE_FROM": "Dato utvalg fra",
+        "DATE_RANGE_TO": "Datointervallet til",
+        "GENERATED_AT": "Generert på",
+        "STATUS": "Status",
+        "OUTPUT": "Utgang",
+        "REPORTS": "Rapporter",
+        "SEARCH_FOR_FOLDER": "Søk etter mappe",
+        "CREATED_AT": "Opprettet i",
+        "NEW_REPORT": "Ny rapport",
+        "ADD_REPORT": "Legg til rapport",
+        "COPY_REPORT": "Kopiere rapport",
+        "PREVIEW_REPORT": "Forhåndsvis rapport",
+        "RUN_REPORT": "Kjør rapport",
+        "DOWNLOAD_JSON_REPORT": "Eksporter rapporten JSON",
+        "EDIT_REPORT": "Rediger rapport",
+        "DELETE_REPORT": "Slett rapport",
+        "CREATE": "Opprett mappe",
+        "RENAME": "Gi nytt navn til mappe",
+        "REMOVE": "Fjern mappe",
+        "SELECT_NODE": "Velg mappe",
+        "ERROR": "Feil",
+        "QUERY_ERROR": "Søk feil",
+        "MESSAGE": "Melding",
+        "CLOSE": "Lukk",
+        "FORMAT": "Format",
+        "SETTINGS": "Innstillinger",
+        "GENERAL": "Generelt",
+        "FIELDS": "Felt",
+        "CONDITION": "Tilstand",
+        "OPERATOR": "Føreren",
+        "GROUP": "Gruppe",
+        "COLUMN": "Kolonnen",
+        "VALUE": "Verdi",
+        "PREVIEW": "Forhåndsvisning",
+        "LIMITED_RESULT": "*Begrensede resultater",
+        "NO_DATA": "Ingen data resultater",
+        "CONDITIONS": "Betingelser",
+        "ALIAS": "Alias",
+        "FUNCTION": "Funksjon",
+        "GROUP_BY": "Gruppe av",
+        "ORDER_BY": "Bestilling av",
+        "ADD_REPORTFIELD": "Legg til felt",
+        "EDIT_REPORTFIELD": "Redigere feltet",
+        "DELETE_REPORTFIELD": "Slette feltet",
+        "METRIC_NAME": "Metrisk",
+        "NO_METRIC_FOUND": "Ingen metriske funnet",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "CUSTOM_METRIC": "Egendefinerte nøkkeltall",
+        "DELETE_EXTRACTEDREPORT": "Slette ut rapport",
+        "DOWNLOAD_EXTRACTEDREPORT": "Last ned rapporten ut",
+        "EDIT_EXTRACTEDREPORT": "Rediger ekstrahert rapport"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/pt-PT.json b/public/app/main/apps/analytics/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..739ff5e
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Nome",
+        "ANALYTICS": "Analytics",
+        "METRICS": "Métricas",
+        "ID": "Id",
+        "TABLE": "Tabela",
+        "DESCRIPTION": "Descrição",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "METRIC": "Sistema Métrico",
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "METRIC_REQUIRED": "A métrica é necessária",
+            "COLUMN_REQUIRED": "A coluna é necessário",
+            "VALUE_REQUIRED": "O valor é obrigatório",
+            "CUSTOM_METRIC_REQUIRED": "A Métrica personalizada é necessária",
+            "ALIAS_REQUIRED": "O Alias é necessária"
+        },
+        "NEW_METRIC": "Nova Métrica",
+        "ADD_METRIC": "Adicionar Sistema Métrico",
+        "EDIT_METRIC": "Editar Métrica",
+        "DELETE_METRIC": "Excluir Métrica",
+        "SAVE": "Salvar",
+        "BACK": "De volta",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "TYPE": "Tipo",
+        "EXTRACTEDREPORTS": "Relatórios extraídos",
+        "DATE_RANGE_FROM": "Intervalo de data",
+        "DATE_RANGE_TO": "Intervalo de datas para a",
+        "GENERATED_AT": "Gerado em",
+        "STATUS": "Estado",
+        "OUTPUT": "Saída",
+        "REPORTS": "Relatórios",
+        "SEARCH_FOR_FOLDER": "Busca por Pasta",
+        "CREATED_AT": "Criado em",
+        "NEW_REPORT": "Novo Relatório",
+        "ADD_REPORT": "Adicionar relatório",
+        "COPY_REPORT": "A cópia do relatório",
+        "PREVIEW_REPORT": "Visualizar Relatório",
+        "RUN_REPORT": "Executar Relatório",
+        "DOWNLOAD_JSON_REPORT": "Exportar Relatório JSON",
+        "EDIT_REPORT": "Editar Relatório",
+        "DELETE_REPORT": "Excluir Relatório",
+        "CREATE": "Criar Pasta",
+        "RENAME": "Renomear pasta",
+        "REMOVE": "Remover pasta",
+        "SELECT_NODE": "Selecione a pasta",
+        "ERROR": "Erro",
+        "QUERY_ERROR": "Erro de consulta",
+        "MESSAGE": "Mensagem",
+        "CLOSE": "Fechar",
+        "FORMAT": "Formato",
+        "SETTINGS": "Definições",
+        "GENERAL": "Geral",
+        "FIELDS": "Campos",
+        "CONDITION": "Estado",
+        "OPERATOR": "Operador",
+        "GROUP": "Grupo",
+        "COLUMN": "Coluna",
+        "VALUE": "Valor",
+        "PREVIEW": "Visualização",
+        "LIMITED_RESULT": "*Resultados limitados",
+        "NO_DATA": "Não há dados resultados",
+        "CONDITIONS": "Condições",
+        "ALIAS": "Alias",
+        "FUNCTION": "Função",
+        "GROUP_BY": "Agrupar por",
+        "ORDER_BY": "Por fim",
+        "ADD_REPORTFIELD": "Adicionar campo",
+        "EDIT_REPORTFIELD": "Campo de edição",
+        "DELETE_REPORTFIELD": "Excluir domínio",
+        "METRIC_NAME": "Sistema Métrico",
+        "NO_METRIC_FOUND": "Nenhuma métrica encontrada",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "CUSTOM_METRIC": "Métrica personalizada",
+        "DELETE_EXTRACTEDREPORT": "Excluir Relatório extraído",
+        "DOWNLOAD_EXTRACTEDREPORT": "Baixar relatório extraído",
+        "EDIT_EXTRACTEDREPORT": "Editar Relatório extraído"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/ru.json b/public/app/main/apps/analytics/i18n/ru.json
new file mode 100644 (file)
index 0000000..3a43896
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Имя",
+        "ANALYTICS": "Аналитики",
+        "METRICS": "Метрики",
+        "ID": "Id",
+        "TABLE": "Таблица",
+        "DESCRIPTION": "Описание",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "METRIC": "Метрические",
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "METRIC_REQUIRED": "Метрика не требуется",
+            "COLUMN_REQUIRED": "Колонки не требуется",
+            "VALUE_REQUIRED": "Это значение требуется",
+            "CUSTOM_METRIC_REQUIRED": "Пользовательские метрики не требуется",
+            "ALIAS_REQUIRED": "Псевдоним не требуется"
+        },
+        "NEW_METRIC": "Новые метрические",
+        "ADD_METRIC": "Добавить метрические",
+        "EDIT_METRIC": "Редактировать с метрической резьбой",
+        "DELETE_METRIC": "Удалить с метрической резьбой",
+        "SAVE": "Сохранить",
+        "BACK": "Назад",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "TYPE": "Тип",
+        "EXTRACTEDREPORTS": "Извлечь доклады",
+        "DATE_RANGE_FROM": "Дату в диапазоне от",
+        "DATE_RANGE_TO": "Диапазон дат для",
+        "GENERATED_AT": "Генерируется по",
+        "STATUS": "Статус",
+        "OUTPUT": "Выход",
+        "REPORTS": "Доклады",
+        "SEARCH_FOR_FOLDER": "Поиск папки",
+        "CREATED_AT": "Созданные в",
+        "NEW_REPORT": "Новый доклад",
+        "ADD_REPORT": "Добавить отчет",
+        "COPY_REPORT": "Копировать отчет",
+        "PREVIEW_REPORT": "Предпросмотр отчета",
+        "RUN_REPORT": "Запустить отчет",
+        "DOWNLOAD_JSON_REPORT": "Экспорт отчета в JSON",
+        "EDIT_REPORT": "Редактирование отчета",
+        "DELETE_REPORT": "Удалить отчет",
+        "CREATE": "Создать папку",
+        "RENAME": "Переименовать папку",
+        "REMOVE": "Удалить папку",
+        "SELECT_NODE": "Выберите папку",
+        "ERROR": "Сообщение об ошибке",
+        "QUERY_ERROR": "Ошибка запроса",
+        "MESSAGE": "Сообщение",
+        "CLOSE": "Закрыть",
+        "FORMAT": "Формат",
+        "SETTINGS": "Настройки",
+        "GENERAL": "Генеральной",
+        "FIELDS": "Поля",
+        "CONDITION": "Состояние",
+        "OPERATOR": "Оператор",
+        "GROUP": "Группа",
+        "COLUMN": "Рулевой колонки",
+        "VALUE": "Значение",
+        "PREVIEW": "Предварительный просмотр",
+        "LIMITED_RESULT": "*Ограниченные результаты",
+        "NO_DATA": "Нет данных результатов",
+        "CONDITIONS": "Условия",
+        "ALIAS": "Псевдоним",
+        "FUNCTION": "Функции",
+        "GROUP_BY": "Группы",
+        "ORDER_BY": "Заказ",
+        "ADD_REPORTFIELD": "Добавить поле",
+        "EDIT_REPORTFIELD": "Поля редактирования",
+        "DELETE_REPORTFIELD": "Удалить поле",
+        "METRIC_NAME": "Метрические",
+        "NO_METRIC_FOUND": "Не найден с метрической резьбой",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "CUSTOM_METRIC": "Пользовательские метрики",
+        "DELETE_EXTRACTEDREPORT": "Удалить извлеченные доклад",
+        "DOWNLOAD_EXTRACTEDREPORT": "Загрузить доклад извлечены",
+        "EDIT_EXTRACTEDREPORT": "Редактировать распаковали доклад"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/sv.json b/public/app/main/apps/analytics/i18n/sv.json
new file mode 100644 (file)
index 0000000..4c26652
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Namn",
+        "ANALYTICS": "Analytics",
+        "METRICS": "Nyckeltal",
+        "ID": "Id",
+        "TABLE": "Tabell",
+        "DESCRIPTION": "Beskrivning",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "METRIC": "Metriska",
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "METRIC_REQUIRED": "Metriska krävs",
+            "COLUMN_REQUIRED": "Kolumnen är obligatoriskt",
+            "VALUE_REQUIRED": "Värdet är obligatoriskt",
+            "CUSTOM_METRIC_REQUIRED": "Den anpassade metriska krävs",
+            "ALIAS_REQUIRED": "Alias är obligatoriskt"
+        },
+        "NEW_METRIC": "Nya metriska",
+        "ADD_METRIC": "Lägg till metrisk",
+        "EDIT_METRIC": "Redigera metrisk",
+        "DELETE_METRIC": "Ta bort metrisk",
+        "SAVE": "Spara",
+        "BACK": "Tillbaka",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "TYPE": "Typ",
+        "EXTRACTEDREPORTS": "Extraherade rapporter",
+        "DATE_RANGE_FROM": "Datumintervall från",
+        "DATE_RANGE_TO": "Datumintervall",
+        "GENERATED_AT": "Genereras på",
+        "STATUS": "Status",
+        "OUTPUT": "Utgång",
+        "REPORTS": "Rapporter",
+        "SEARCH_FOR_FOLDER": "Sök efter mapp",
+        "CREATED_AT": "Skapad",
+        "NEW_REPORT": "Ny rapport",
+        "ADD_REPORT": "Lägg till rapport",
+        "COPY_REPORT": "Kopiera rapport",
+        "PREVIEW_REPORT": "Förhandsgranska rapport",
+        "RUN_REPORT": "Kör rapport",
+        "DOWNLOAD_JSON_REPORT": "Exportera rapporten JSON",
+        "EDIT_REPORT": "Redigera rapport",
+        "DELETE_REPORT": "Ta bort rapport",
+        "CREATE": "Skapa mapp",
+        "RENAME": "Ändra namn på mapp",
+        "REMOVE": "Ta bort mapp",
+        "SELECT_NODE": "Välj mapp",
+        "ERROR": "Fel",
+        "QUERY_ERROR": "Fråga fel",
+        "MESSAGE": "Meddelande",
+        "CLOSE": "Stäng",
+        "FORMAT": "Format",
+        "SETTINGS": "Inställningar",
+        "GENERAL": "Allmänt",
+        "FIELDS": "Fält",
+        "CONDITION": "Skick",
+        "OPERATOR": "Operatör",
+        "GROUP": "Grupp",
+        "COLUMN": "Kolumn",
+        "VALUE": "Värde",
+        "PREVIEW": "Förhandsgranska",
+        "LIMITED_RESULT": "*Begränsat resultat",
+        "NO_DATA": "Inga data resultat",
+        "CONDITIONS": "Villkor",
+        "ALIAS": "Alias",
+        "FUNCTION": "Funktion",
+        "GROUP_BY": "Gruppera efter",
+        "ORDER_BY": "Beställning av",
+        "ADD_REPORTFIELD": "Lägg till fält",
+        "EDIT_REPORTFIELD": "Redigera fält",
+        "DELETE_REPORTFIELD": "Ta bort fält",
+        "METRIC_NAME": "Metriska",
+        "NO_METRIC_FOUND": "Ingen metriska hittades",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "CUSTOM_METRIC": "Anpassad metrisk",
+        "DELETE_EXTRACTEDREPORT": "Ta bort utdraget rapport",
+        "DOWNLOAD_EXTRACTEDREPORT": "Download extraheras rapport",
+        "EDIT_EXTRACTEDREPORT": "Redigera extraheras rapport"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/tr.json b/public/app/main/apps/analytics/i18n/tr.json
new file mode 100644 (file)
index 0000000..e703a5a
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "Adı",
+        "ANALYTICS": "Analitik",
+        "METRICS": "Ölçümleri",
+        "ID": "Id",
+        "TABLE": "Masa",
+        "DESCRIPTION": "Açıklama",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "METRIC": "Metrik",
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "METRIC_REQUIRED": "Metrik gerekiyor.",
+            "COLUMN_REQUIRED": "Kolon gerekli",
+            "VALUE_REQUIRED": "Bu Değer gereklidir",
+            "CUSTOM_METRIC_REQUIRED": "Özel Metrik gerekiyor.",
+            "ALIAS_REQUIRED": "Ve diğer gerekli"
+        },
+        "NEW_METRIC": "Yeni Metrik",
+        "ADD_METRIC": "Add Metrik",
+        "EDIT_METRIC": "Edit Metrik",
+        "DELETE_METRIC": "Delete Metrik",
+        "SAVE": "Kaydet",
+        "BACK": "Geri",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "TYPE": "Tipi",
+        "EXTRACTEDREPORTS": "Ayıklanan Raporları",
+        "DATE_RANGE_FROM": "Tarih Aralığı",
+        "DATE_RANGE_TO": "Tarih Aralığı",
+        "GENERATED_AT": "Oluşturulan",
+        "STATUS": "Durum",
+        "OUTPUT": "Çıkış",
+        "REPORTS": "Raporlar",
+        "SEARCH_FOR_FOLDER": "Arama klasör",
+        "CREATED_AT": "Oluşturulmuş",
+        "NEW_REPORT": "Yeni bir Rapor",
+        "ADD_REPORT": "Rapor Ekleme",
+        "COPY_REPORT": "Kopya raporu",
+        "PREVIEW_REPORT": "Önizleme Raporu",
+        "RUN_REPORT": "Run Report",
+        "DOWNLOAD_JSON_REPORT": "Rapor Ver JSON",
+        "EDIT_REPORT": "Raporu Düzenle",
+        "DELETE_REPORT": "Rapor Sil",
+        "CREATE": "Klasör Oluştur",
+        "RENAME": "Klasör yeniden adlandırılamıyor",
+        "REMOVE": "Klasörü Kaldır",
+        "SELECT_NODE": "Klasör Seçin",
+        "ERROR": "Hata",
+        "QUERY_ERROR": "Sorgu Hatası",
+        "MESSAGE": "Mesaj",
+        "CLOSE": "Close",
+        "FORMAT": "Biçimi",
+        "SETTINGS": "Ayarlar",
+        "GENERAL": "Genel",
+        "FIELDS": "Alanlar",
+        "CONDITION": "Durumunu",
+        "OPERATOR": "Sürücü",
+        "GROUP": "Grup",
+        "COLUMN": "Direksiyon kolonu",
+        "VALUE": "Değer",
+        "PREVIEW": "Önizleme",
+        "LIMITED_RESULT": "*Sınırlı Sonuçlar",
+        "NO_DATA": "Veri sonuçları",
+        "CONDITIONS": "Koşullar",
+        "ALIAS": "Alias",
+        "FUNCTION": "Fonksiyon",
+        "GROUP_BY": "Grup,",
+        "ORDER_BY": "Sipariş",
+        "ADD_REPORTFIELD": "Alan Ekle",
+        "EDIT_REPORTFIELD": "Alan Düzenle",
+        "DELETE_REPORTFIELD": "Silme alanına",
+        "METRIC_NAME": "Metrik",
+        "NO_METRIC_FOUND": "Hiçbir metrik bulunamadı",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "CUSTOM_METRIC": "Özel Metrik",
+        "DELETE_EXTRACTEDREPORT": "Ayıklanan Silin Raporu",
+        "DOWNLOAD_EXTRACTEDREPORT": "Ayıklanan Karşıdan Raporu",
+        "EDIT_EXTRACTEDREPORT": "Ayıklanan Düzenle Rapor"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/zh-CN.json b/public/app/main/apps/analytics/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..8021581
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "名称",
+        "ANALYTICS": "分析",
+        "METRICS": "衡量指标",
+        "ID": "Id",
+        "TABLE": "表",
+        "DESCRIPTION": "描述",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "METRIC": "公制",
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "METRIC_REQUIRED": "度量是必需的",
+            "COLUMN_REQUIRED": "该列是必需的",
+            "VALUE_REQUIRED": "该值是必需的",
+            "CUSTOM_METRIC_REQUIRED": "自定义的度量标准是必需的",
+            "ALIAS_REQUIRED": "别名是必需的"
+        },
+        "NEW_METRIC": "新的度量标准",
+        "ADD_METRIC": "添加公制",
+        "EDIT_METRIC": "编辑公制",
+        "DELETE_METRIC": "删除公制",
+        "SAVE": "保存",
+        "BACK": "返回",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "TYPE": "类型",
+        "EXTRACTEDREPORTS": "提取的报告。",
+        "DATE_RANGE_FROM": "日期范围",
+        "DATE_RANGE_TO": "日期范围",
+        "GENERATED_AT": "生成的",
+        "STATUS": "状态",
+        "OUTPUT": "输出",
+        "REPORTS": "报告",
+        "SEARCH_FOR_FOLDER": "搜索文件夹",
+        "CREATED_AT": "创建在",
+        "NEW_REPORT": "新的报告。",
+        "ADD_REPORT": "添加报告",
+        "COPY_REPORT": "复制报告",
+        "PREVIEW_REPORT": "预览报告",
+        "RUN_REPORT": "运行报告",
+        "DOWNLOAD_JSON_REPORT": "导出报表 JSON",
+        "EDIT_REPORT": "编辑报告",
+        "DELETE_REPORT": "删除报告",
+        "CREATE": "创建文件夹",
+        "RENAME": "重命名文件夹",
+        "REMOVE": "删除文件夹",
+        "SELECT_NODE": "选择文件夹",
+        "ERROR": "错误",
+        "QUERY_ERROR": "查询错误。",
+        "MESSAGE": "消息",
+        "CLOSE": "关闭",
+        "FORMAT": "格式",
+        "SETTINGS": "设置",
+        "GENERAL": "总的",
+        "FIELDS": "字段",
+        "CONDITION": "条件",
+        "OPERATOR": "操作员",
+        "GROUP": "本集团",
+        "COLUMN": "列",
+        "VALUE": "值",
+        "PREVIEW": "预览",
+        "LIMITED_RESULT": "*有限的结果。",
+        "NO_DATA": "没有数据结果。",
+        "CONDITIONS": "条件",
+        "ALIAS": "别名。",
+        "FUNCTION": "功能",
+        "GROUP_BY": "组。",
+        "ORDER_BY": "Order By",
+        "ADD_REPORTFIELD": "添加字段",
+        "EDIT_REPORTFIELD": "编辑字段",
+        "DELETE_REPORTFIELD": "删除字段。",
+        "METRIC_NAME": "公制",
+        "NO_METRIC_FOUND": "没有找到的度量",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "CUSTOM_METRIC": "自定义度量",
+        "DELETE_EXTRACTEDREPORT": "删除解压的报告。",
+        "DOWNLOAD_EXTRACTEDREPORT": "下载解压缩的报告。",
+        "EDIT_EXTRACTEDREPORT": "编辑解压的报告。"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/analytics/i18n/zh-TW.json b/public/app/main/apps/analytics/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..4191970
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "ANALYTICS": {
+        "NAME": "名稱",
+        "ANALYTICS": "分析",
+        "METRICS": "評量標準",
+        "ID": "Id",
+        "TABLE": "資料表",
+        "DESCRIPTION": "說明",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "METRIC": "公制",
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "METRIC_REQUIRED": "公制為必填欄位",
+            "COLUMN_REQUIRED": "該欄位為必填欄位",
+            "VALUE_REQUIRED": "此值為必填欄位",
+            "CUSTOM_METRIC_REQUIRED": "自訂公制為必填欄位",
+            "ALIAS_REQUIRED": "別名是必填欄位"
+        },
+        "NEW_METRIC": "新度量",
+        "ADD_METRIC": "新增標準",
+        "EDIT_METRIC": "編輯度量",
+        "DELETE_METRIC": "刪除量度",
+        "SAVE": "儲存",
+        "BACK": "備份",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "TYPE": "類型",
+        "EXTRACTEDREPORTS": "擷取報表",
+        "DATE_RANGE_FROM": "日期範圍",
+        "DATE_RANGE_TO": "日期範圍",
+        "GENERATED_AT": "產生於",
+        "STATUS": "狀態",
+        "OUTPUT": "輸出",
+        "REPORTS": "報告",
+        "SEARCH_FOR_FOLDER": "搜尋資料夾",
+        "CREATED_AT": "建立在",
+        "NEW_REPORT": "新的報表",
+        "ADD_REPORT": "新增報表",
+        "COPY_REPORT": "複製報告",
+        "PREVIEW_REPORT": "預覽列印報告",
+        "RUN_REPORT": "執行報告",
+        "DOWNLOAD_JSON_REPORT": "匯出報告 JSON",
+        "EDIT_REPORT": "編輯報告",
+        "DELETE_REPORT": "刪除報告",
+        "CREATE": "建立資料夾",
+        "RENAME": "重新命名資料夾",
+        "REMOVE": "移除資料夾",
+        "SELECT_NODE": "選取資料夾",
+        "ERROR": "錯誤",
+        "QUERY_ERROR": "查詢錯誤",
+        "MESSAGE": "訊息",
+        "CLOSE": "關閉",
+        "FORMAT": "格式化",
+        "SETTINGS": "設定",
+        "GENERAL": "通用",
+        "FIELDS": "欄位",
+        "CONDITION": "狀況",
+        "OPERATOR": "操作員",
+        "GROUP": "群組",
+        "COLUMN": "”欄位",
+        "VALUE": "值",
+        "PREVIEW": "預覽列印",
+        "LIMITED_RESULT": "* 效果有限",
+        "NO_DATA": "無資料結果",
+        "CONDITIONS": "條件",
+        "ALIAS": "別名",
+        "FUNCTION": "功能",
+        "GROUP_BY": "群組。",
+        "ORDER_BY": "訂單。",
+        "ADD_REPORTFIELD": "新增欄位",
+        "EDIT_REPORTFIELD": "「編輯欄位",
+        "DELETE_REPORTFIELD": "刪除欄位",
+        "METRIC_NAME": "公制",
+        "NO_METRIC_FOUND": "無量度已找到",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "CUSTOM_METRIC": "自訂公制",
+        "DELETE_EXTRACTEDREPORT": "解壓縮後刪除報告",
+        "DOWNLOAD_EXTRACTEDREPORT": "解壓縮下載報告",
+        "EDIT_EXTRACTEDREPORT": "編輯擷取報告"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/da.json b/public/app/main/apps/callysquare/i18n/da.json
new file mode 100644 (file)
index 0000000..95e9cea
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Navnet",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "BACK": "Tilbage",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "DSN": "DSN",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_ODBC": "Tilføje ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "DSN_REQUIRED": "DSN er påkrævet",
+            "PROJECT_REQUIRED": "Projektet er påkrævet",
+            "FIELD_REQUIRED": "Feltet er påkrævet"
+        },
+        "EDIT_ODBC": "Rediger ODBC",
+        "DELETE_ODBC": "Slette ODBC",
+        "SAVE": "Gem",
+        "PROJECTS": "Projekter",
+        "ADD_PROJECT": "Tilføj projekt",
+        "EDIT_PROJECT": "Rediger projekt",
+        "DELETE_PROJECT": "Slet projekt",
+        "CALLYSQUARE": "Tisk Square",
+        "ID": "Id",
+        "NEW_ODBC": "Ny ODBC-forbindelsen.",
+        "SQUARERECORDINGS": "Pladsen optagelser",
+        "PROJECT": "Projekt",
+        "UNIQUEID": "Unikt ID",
+        "PHONE": "Telefonen",
+        "EXTEN": "Exten",
+        "AUDIO": "Audio",
+        "CREATED_AT": "Oprettet på",
+        "NOTES": "Noter",
+        "NEW_PROJECT": "Nyt projekt",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "Åbner i et nyt vindue",
+        "OPEN_PROJECT": "Åbn projekt",
+        "COPY": "Kopi",
+        "OPEN": "Åbn",
+        "NEW": "Ny",
+        "COPY_PROJECT": "Kopier projekt",
+        "NEW_VARIABLE": "Ny variabel",
+        "ADD_VARIABLE": "Tilføj variabel",
+        "UPDATE_DESCRIPTION": "Opdateret Beskrivelse",
+        "EDIT_XML": "Rediger XML",
+        "IMPORT_XML": "Importere XML",
+        "IMPORT": "Importer",
+        "DROP_TO_UPLOAD": "Slip for upload",
+        "DROP_TO_UPLOAD_MESSAGE": "Man kan også lægge filer her skal uploades. Kun XML - Max. 5MB",
+        "CLOSE": "Luk",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "GO_TO_PROJECTS": "Gå til projekter",
+        "UPDATE_INFO": "Opdateret Info",
+        "AGENTS": "Agenter",
+        "TELEPHONES": "Telefoner",
+        "USERS": "Brugere",
+        "HELP": {
+            "MAILBOX": "Postkasse@sammenhæng",
+            "DSN": "Eksempel: DRIVER=MySQL Server=127,0.;0,1;UID=installation;PWD=password; DATABASE=motion"
+        },
+        "CHOOSE_ATTACHMENT": "Vælg redskab",
+        "ATTACHMENT_NAME": "Vedhæftet fil navn",
+        "ATTACHMENT_TYPE": "Tilslutningstypen",
+        "ATTACHMENT_PATH": "Vedhæftet fil sti",
+        "SENDFAX": "Send fax",
+        "DELETE_SQUARERECORDING": "Slet Square optagelse",
+        "DOWNLOAD_SQUARERECORDING": "Download Square optagelse",
+        "TEST_ODBC": "Test ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/de.json b/public/app/main/apps/callysquare/i18n/de.json
new file mode 100644 (file)
index 0000000..7548058
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Name",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "BACK": "Zurück",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "DSN": "DSN",
+        "DESCRIPTION": "Beschreibung",
+        "ADD_ODBC": "Hinzufügen von ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "DSN_REQUIRED": "Die DSN ist erforderlich",
+            "PROJECT_REQUIRED": "Das Projekt ist erforderlich",
+            "FIELD_REQUIRED": "Das Feld ist erforderlich."
+        },
+        "EDIT_ODBC": "Bearbeiten von ODBC",
+        "DELETE_ODBC": "Löschen von ODBC",
+        "SAVE": "Speichern",
+        "PROJECTS": "Projekte",
+        "ADD_PROJECT": "Projekt hinzufügen",
+        "EDIT_PROJECT": "Projekt bearbeiten",
+        "DELETE_PROJECT": "Projekt löschen",
+        "CALLYSQUARE": "Cally Square",
+        "ID": "Id",
+        "NEW_ODBC": "Neue ODBC-Verbindung",
+        "SQUARERECORDINGS": "Quadratische Aufnahmen",
+        "PROJECT": "Projekt",
+        "UNIQUEID": "Eindeutige ID",
+        "PHONE": "Telefon",
+        "EXTEN": "Erweiterungen",
+        "AUDIO": "Audio",
+        "CREATED_AT": "Erstellt am",
+        "NOTES": "Hinweise",
+        "NEW_PROJECT": "Neues Projekt",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "In einem neuen Fenster geöffnet",
+        "OPEN_PROJECT": "Projekt öffnen",
+        "COPY": "Kopieren",
+        "OPEN": "Öffnen",
+        "NEW": "Neue",
+        "COPY_PROJECT": "Projekt kopieren",
+        "NEW_VARIABLE": "Neue Variable",
+        "ADD_VARIABLE": "Variable hinzufügen",
+        "UPDATE_DESCRIPTION": "Update Beschreibung",
+        "EDIT_XML": "Bearbeiten von XML-",
+        "IMPORT_XML": "XML importieren",
+        "IMPORT": "Importieren",
+        "DROP_TO_UPLOAD": "DROP HOCHLADEN",
+        "DROP_TO_UPLOAD_MESSAGE": "Sie können auch Dateien hier hochladen. Nur XML-Max. 5 MB",
+        "CLOSE": "Schließen",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "GO_TO_PROJECTS": "Wechseln zu Projekte",
+        "UPDATE_INFO": "Update Info",
+        "AGENTS": "Agenten",
+        "TELEPHONES": "Telefone",
+        "USERS": "Benutzer",
+        "HELP": {
+            "MAILBOX": "Mailbox @ Rahmen",
+            "DSN": "Beispiel: DRIVER=MySQL; SERVER=127.0.0.1; UID=;pwd=xcall Passwort; Datenbank = Motion"
+        },
+        "CHOOSE_ATTACHMENT": "Anlage wählen",
+        "ATTACHMENT_NAME": "Name des Anhangs",
+        "ATTACHMENT_TYPE": "Anschlusstyp",
+        "ATTACHMENT_PATH": "Anhang Pfad",
+        "SENDFAX": "Fax senden",
+        "DELETE_SQUARERECORDING": "Löschen Quadrat Aufnahme",
+        "DOWNLOAD_SQUARERECORDING": "Download platz Aufnahme",
+        "TEST_ODBC": "Test ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/en.json b/public/app/main/apps/callysquare/i18n/en.json
new file mode 100644 (file)
index 0000000..e1a97aa
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Name",
+        "ODBC": "ODBC",
+        "TEST_ODBC": "Test ODBC",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "BACK": "Back",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "DSN": "DSN",
+        "DESCRIPTION": "Description",
+        "ADD_ODBC": "Add ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is required",
+            "DSN_REQUIRED": "The DSN is required",
+            "PROJECT_REQUIRED": "The Project is required",
+            "FIELD_REQUIRED": "The field is required"
+        },
+        "EDIT_ODBC": "Edit ODBC",
+        "DELETE_ODBC": "Delete ODBC",
+        "SAVE": "Save",
+        "PROJECTS": "Projects",
+        "ADD_PROJECT": "Add Project",
+        "EDIT_PROJECT": "Edit Project",
+        "DELETE_PROJECT": "Delete Project",
+        "CALLYSQUARE": "Cally Square",
+        "ID": "Id",
+        "NEW_ODBC": "New ODBC connection",
+        "SQUARERECORDINGS": "Recordings",
+        "PROJECT": "Project",
+        "UNIQUEID": "Unique ID",
+        "PHONE": "Phone",
+        "EXTEN": "Exten",
+        "AUDIO": "Audio",
+        "CREATED_AT": "Created At",
+        "NOTES": "Notes",
+        "NEW_PROJECT": "New Project",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "iSpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "iSpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "delay [min]",
+        "OPEN_NEW_WINDOW": "Open in a new window",
+        "OPEN_PROJECT": "Open Project",
+        "COPY": "Copy",
+        "OPEN": "Open",
+        "NEW": "New",
+        "COPY_PROJECT": "Copy Project",
+        "NEW_VARIABLE": "New Variable",
+        "ADD_VARIABLE": "Add Variable",
+        "UPDATE_DESCRIPTION": "Update Description",
+        "EDIT_XML": "Edit XML",
+        "IMPORT_XML": "Import XML",
+        "IMPORT": "Import",
+        "DROP_TO_UPLOAD": "DROP TO UPLOAD",
+        "DROP_TO_UPLOAD_MESSAGE": "You can also drop files here to upload. Only XML - Max. 5MB",
+        "CLOSE": "Close",
+        "NO_AVAILABLE_INFO": "No available info",
+        "GO_TO_PROJECTS": "Go to projects",
+        "UPDATE_INFO": "Update Info",
+        "AGENTS": "Agents",
+        "TELEPHONES": "Telephones",
+        "USERS": "Users",
+        "HELP": {
+            "MAILBOX": "mailbox@context",
+            "DSN": "Example: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion"
+        },
+        "CHOOSE_ATTACHMENT": "Choose Attachment",
+        "ATTACHMENT_NAME": "Attachment Name",
+        "ATTACHMENT_TYPE": "Attachment Type",
+        "ATTACHMENT_PATH": "Attachment Path",
+        "SENDFAX": "Send Fax",
+        "DELETE_SQUARERECORDING": "Delete Square Recording",
+        "DOWNLOAD_SQUARERECORDING": "Download Square Recording"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/es.json b/public/app/main/apps/callysquare/i18n/es.json
new file mode 100644 (file)
index 0000000..ed23671
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Nombre",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "BACK": "Volver",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "DSN": "El DSN",
+        "DESCRIPTION": "Descripción",
+        "ADD_ODBC": "Agregar ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "DSN_REQUIRED": "El DSN es necesario",
+            "PROJECT_REQUIRED": "El proyecto es obligatorio",
+            "FIELD_REQUIRED": "El campo es obligatorio"
+        },
+        "EDIT_ODBC": "Editar ODBC",
+        "DELETE_ODBC": "Eliminar ODBC",
+        "SAVE": "Guardar",
+        "PROJECTS": "Proyectos",
+        "ADD_PROJECT": "Agregar proyecto",
+        "EDIT_PROJECT": "Editar proyecto",
+        "DELETE_PROJECT": "Eliminar proyecto",
+        "CALLYSQUARE": "Camente Square",
+        "ID": "Id",
+        "NEW_ODBC": "Nueva conexión ODBC.",
+        "SQUARERECORDINGS": "Grabaciones cuadrado",
+        "PROJECT": "Proyecto",
+        "UNIQUEID": "Identificador único",
+        "PHONE": "Teléfono",
+        "EXTEN": "Ampliar",
+        "AUDIO": "Audio",
+        "CREATED_AT": "Creado en",
+        "NOTES": "Notas",
+        "NEW_PROJECT": "Nuevo proyecto",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "Abrir en una ventana nueva.",
+        "OPEN_PROJECT": "Abrir proyecto",
+        "COPY": "Copiar",
+        "OPEN": "Abrir",
+        "NEW": "Nuevo",
+        "COPY_PROJECT": "Proyecto de copia",
+        "NEW_VARIABLE": "Nueva variable",
+        "ADD_VARIABLE": "Agregar variable",
+        "UPDATE_DESCRIPTION": "Descripción de actualización",
+        "EDIT_XML": "Editar XML",
+        "IMPORT_XML": "Importar XML",
+        "IMPORT": "Importar",
+        "DROP_TO_UPLOAD": "Soltar PARA SUBIR",
+        "DROP_TO_UPLOAD_MESSAGE": "También puede colocar archivos aquí para cargar. Sólo XML - Max. 5MB",
+        "CLOSE": "Cerrar",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "GO_TO_PROJECTS": "Ir a proyectos",
+        "UPDATE_INFO": "Actualizar info",
+        "AGENTS": "Los agentes",
+        "TELEPHONES": "Teléfonos",
+        "USERS": "Los usuarios",
+        "HELP": {
+            "MAILBOX": "Buzón@contexto",
+            "DSN": "Ejemplo: DRIVER=MySQL;server=127.0.0.1;uid=xcall;pwd=contraseña;database=motion"
+        },
+        "CHOOSE_ATTACHMENT": "Seleccione adjunto",
+        "ATTACHMENT_NAME": "Nombre de accesorio",
+        "ATTACHMENT_TYPE": "Tipo de conexión",
+        "ATTACHMENT_PATH": "Ruta de adjuntos",
+        "SENDFAX": "Enviar fax",
+        "DELETE_SQUARERECORDING": "Eliminar la grabación cuadrado",
+        "DOWNLOAD_SQUARERECORDING": "Descargar la grabación cuadrado",
+        "TEST_ODBC": "ODBC Test"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/fa.json b/public/app/main/apps/callysquare/i18n/fa.json
new file mode 100644 (file)
index 0000000..6ac7d58
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "نام",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "BACK": "پشت",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "DSN": "عناوين | پل ارتباطی | پيوندها | محصولات",
+        "DESCRIPTION": "شرح",
+        "ADD_ODBC": "افزودن ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "DSN_REQUIRED": "عناوين | پل ارتباطی | پيوندها | محصولات، مورد نیاز است.",
+            "PROJECT_REQUIRED": "پروژه مورد نیاز است.",
+            "FIELD_REQUIRED": "میدان لازم است."
+        },
+        "EDIT_ODBC": "ویرایش ODBC",
+        "DELETE_ODBC": "حذف درایورهای ODBC",
+        "SAVE": "ذخیره",
+        "PROJECTS": "پروژه ها",
+        "ADD_PROJECT": "پروژه اضافه کنید",
+        "EDIT_PROJECT": "ویرایش پروژه",
+        "DELETE_PROJECT": "پروژه حذف می شود",
+        "CALLYSQUARE": "ميدان Cally",
+        "ID": "شناسه",
+        "NEW_ODBC": "اتصال ODBC جدید",
+        "SQUARERECORDINGS": "عنوانی مربع",
+        "PROJECT": "پروژه",
+        "UNIQUEID": "شناسه منحصر به فرد",
+        "PHONE": "تلفن همراه",
+        "EXTEN": "Exten",
+        "AUDIO": "های صوتی",
+        "CREATED_AT": "ایجاد شده در",
+        "NOTES": "يادداشت ها",
+        "NEW_PROJECT": "پروژه جدید",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "در پنجره جدید باز کنید",
+        "OPEN_PROJECT": "پروژه را باز کنید",
+        "COPY": "کپی",
+        "OPEN": "باز",
+        "NEW": "تازه",
+        "COPY_PROJECT": "پروژه کپی",
+        "NEW_VARIABLE": "متغیر جدید",
+        "ADD_VARIABLE": "افزودن متغیر",
+        "UPDATE_DESCRIPTION": "شرح بروزرسانی",
+        "EDIT_XML": "بارگیری فایل XML ویرایش",
+        "IMPORT_XML": "بارگیری فایل XML واردات",
+        "IMPORT": "واردات",
+        "DROP_TO_UPLOAD": "قطره را بارگذاری",
+        "DROP_TO_UPLOAD_MESSAGE": "همچنین می توانید فایل های بارگذاری قطره اینجا. تنها - حداکثر بارگیری فایل XML است. 5مگابایت",
+        "CLOSE": "بستن",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "GO_TO_PROJECTS": "برو به پروژه ها",
+        "UPDATE_INFO": "به روزآوری اطلاعات توریستی",
+        "AGENTS": "عوامل",
+        "TELEPHONES": "تلفن ها",
+        "USERS": "کاربران",
+        "HELP": {
+            "MAILBOX": "Mailbox@متن",
+            "DSN": "مثال: 31 دسامبر 2012 راننده=MySQL SERVER=127.0.0.1 31 دسامبر 2012 31 دسامبر 2012 xcall UID=PWD=رمز عبور پایگاه داده، حركت=31 دسامبر 2012"
+        },
+        "CHOOSE_ATTACHMENT": "ضمیمه را انتخاب کنید",
+        "ATTACHMENT_NAME": "نام ضمیمه",
+        "ATTACHMENT_TYPE": "نوع ضمیمه",
+        "ATTACHMENT_PATH": "مسیر ضمیمه",
+        "SENDFAX": "ارسال فكس",
+        "DELETE_SQUARERECORDING": "ثبت ميدان را حذف کنید",
+        "DOWNLOAD_SQUARERECORDING": "ثبت ميدان را بارگیری کنید",
+        "TEST_ODBC": "تست ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/fi.json b/public/app/main/apps/callysquare/i18n/fi.json
new file mode 100644 (file)
index 0000000..ea26c29
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Nimi",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "BACK": "Takaisin",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "DSN": "DSN",
+        "DESCRIPTION": "Kuvaus",
+        "ADD_ODBC": "Lisää ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "DSN_REQUIRED": "DSN ei tarvita",
+            "PROJECT_REQUIRED": "Projekti on pakollinen",
+            "FIELD_REQUIRED": "Tämä kenttä on pakollinen"
+        },
+        "EDIT_ODBC": "Muokkaa ODBC",
+        "DELETE_ODBC": "Poistaa ODBC-",
+        "SAVE": "Tallenna",
+        "PROJECTS": "Projektit",
+        "ADD_PROJECT": "Lisää projektin",
+        "EDIT_PROJECT": "Muokkaa projektin",
+        "DELETE_PROJECT": "Poista projektin",
+        "CALLYSQUARE": "Hyödynnetä tarpeeksi yrittäjyyskasvatuksen omaisia työtapoja Square",
+        "ID": "Tunnus",
+        "NEW_ODBC": "Uusi ODBC-yhteys",
+        "SQUARERECORDINGS": "Square tallenteet",
+        "PROJECT": "Projektin",
+        "UNIQUEID": "Yksilöivä tunnus",
+        "PHONE": "Puhelin",
+        "EXTEN": "Jennus",
+        "AUDIO": "Äänen",
+        "CREATED_AT": "Luodaan",
+        "NOTES": "Huomautukset",
+        "NEW_PROJECT": "Uusi projekti.",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "Avaa uuden ikkunan",
+        "OPEN_PROJECT": "Avaa projekti",
+        "COPY": "Kopiointi",
+        "OPEN": "Avaa",
+        "NEW": "Uusi",
+        "COPY_PROJECT": "Kopioi projekti",
+        "NEW_VARIABLE": "Uuden muuttujan",
+        "ADD_VARIABLE": "Lisää muuttuja",
+        "UPDATE_DESCRIPTION": "Päivitä kuvaus",
+        "EDIT_XML": "Muokkaa XML",
+        "IMPORT_XML": "Tuo XML-",
+        "IMPORT": "Tuonti",
+        "DROP_TO_UPLOAD": "Pudota lataa",
+        "DROP_TO_UPLOAD_MESSAGE": "Voit pudottaa tiedostoja Tääll㤠voit ladata. Vain XML - Max. 5 Mt",
+        "CLOSE": "Sulje",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "GO_TO_PROJECTS": "Siirry rahoittamiseen",
+        "UPDATE_INFO": "Päivitä tiedot",
+        "AGENTS": "Aineet",
+        "TELEPHONES": "Puhelimet",
+        "USERS": "Käyttäjät",
+        "HELP": {
+            "MAILBOX": "Postilaatikko@yhteydessä",
+            "DSN": "Esimerkki: kuljettajan=MySQL;SERVER=127,0.0.1;UID=xcall;PWD=salasana;DATABASE=liike"
+        },
+        "CHOOSE_ATTACHMENT": "Valitse kiinnitys",
+        "ATTACHMENT_NAME": "Lisäosa nimi",
+        "ATTACHMENT_TYPE": "Liitäntälajiin",
+        "ATTACHMENT_PATH": "Lisäosa polku",
+        "SENDFAX": "Faksin lähettäminen",
+        "DELETE_SQUARERECORDING": "Poista Square tallennus",
+        "DOWNLOAD_SQUARERECORDING": "Lataa Square tallennus",
+        "TEST_ODBC": "Testaa ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/fr.json b/public/app/main/apps/callysquare/i18n/fr.json
new file mode 100644 (file)
index 0000000..53ea841
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Nom",
+        "ODBC": "Etat ODBC",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "BACK": "Retour",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "DSN": "Le DSN",
+        "DESCRIPTION": "Description",
+        "ADD_ODBC": "ODBC Ajouter",
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "DSN_REQUIRED": "Le DSN est nécessaire",
+            "PROJECT_REQUIRED": "Le projet est requis",
+            "FIELD_REQUIRED": "Le champ est obligatoire"
+        },
+        "EDIT_ODBC": "ODBC Modifier",
+        "DELETE_ODBC": "ODBC Supprimer",
+        "SAVE": "Sauvegarder",
+        "PROJECTS": "Projets",
+        "ADD_PROJECT": "Ajouter un projet",
+        "EDIT_PROJECT": "Projet d'édition",
+        "DELETE_PROJECT": "Supprimer le projet",
+        "CALLYSQUARE": "Quement Square",
+        "ID": "Id",
+        "NEW_ODBC": "Nouvelle connexion ODBC",
+        "SQUARERECORDINGS": "Enregistrements carrés",
+        "PROJECT": "Projet",
+        "UNIQUEID": "ID unique",
+        "PHONE": "Téléphone",
+        "EXTEN": "Exten",
+        "AUDIO": "L'audio",
+        "CREATED_AT": "Créé à",
+        "NOTES": "Note",
+        "NEW_PROJECT": "Nouveau projet",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "Ouvrir dans une nouvelle fenêtre",
+        "OPEN_PROJECT": "Projet ouvert",
+        "COPY": "Copie",
+        "OPEN": "Ouvrir",
+        "NEW": "Nouveau",
+        "COPY_PROJECT": "Copier le projet",
+        "NEW_VARIABLE": "Nouvelle variable",
+        "ADD_VARIABLE": "Add Variable",
+        "UPDATE_DESCRIPTION": "Description mise à jour",
+        "EDIT_XML": "Modifier le XML",
+        "IMPORT_XML": "Importer XML",
+        "IMPORT": "Importer",
+        "DROP_TO_UPLOAD": "DROP à télécharger",
+        "DROP_TO_UPLOAD_MESSAGE": "Vous pouvez également déposer des fichiers ici pour télécharger. Seulement XML - Max. 5MB",
+        "CLOSE": "Fermer",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "GO_TO_PROJECTS": "Rendez-vous à des projets",
+        "UPDATE_INFO": "Mise à jour des infos",
+        "AGENTS": "Mandataires",
+        "TELEPHONES": "Telephones",
+        "USERS": "Les utilisateurs",
+        "HELP": {
+            "MAILBOX": "Contexte@boîte aux lettres",
+            "DSN": "Exemple : DRIVER =MySQL;Server =127.0.0.1;UID =xcall;pwd =mot de passe;Database =motion"
+        },
+        "CHOOSE_ATTACHMENT": "Choisissez la pièce jointe",
+        "ATTACHMENT_NAME": "Nom de la pièce jointe",
+        "ATTACHMENT_TYPE": "Type de pièce jointe",
+        "ATTACHMENT_PATH": "Chemin des pièces jointes",
+        "SENDFAX": "Envoyer un fax",
+        "DELETE_SQUARERECORDING": "Supprimer l'enregistrement",
+        "DOWNLOAD_SQUARERECORDING": "Télécharger l'enregistrement carrés",
+        "TEST_ODBC": "ODBC Test"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/hi.json b/public/app/main/apps/callysquare/i18n/hi.json
new file mode 100644 (file)
index 0000000..6cb9d01
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "नाम",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "BACK": "वापिस",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "DSN": "DSN",
+        "DESCRIPTION": "वर्णन",
+        "ADD_ODBC": "ODBC जोड़ें",
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "DSN_REQUIRED": "DSN की आवश्यकता है।",
+            "PROJECT_REQUIRED": "इस परियोजना की आवश्यकता है।",
+            "FIELD_REQUIRED": "इस क्षेत्र की आवश्यकता है।"
+        },
+        "EDIT_ODBC": "ODBC संपादित करें",
+        "DELETE_ODBC": "ODBC हटाएं",
+        "SAVE": "सहेजें",
+        "PROJECTS": "परियोजनाएं",
+        "ADD_PROJECT": "परियोजना में जोड़ें",
+        "EDIT_PROJECT": "परियोजना को संपादित करें",
+        "DELETE_PROJECT": "परियोजना को हटाएं",
+        "CALLYSQUARE": "मूल स् वरूप वर्गाकार",
+        "ID": "Id",
+        "NEW_ODBC": "नए कनेक् शन ODBC",
+        "SQUARERECORDINGS": "वर्गाकार जनाक्रोश",
+        "PROJECT": "परियोजना",
+        "UNIQUEID": "अद्वितीय ID",
+        "PHONE": "फ़ोन",
+        "EXTEN": "Exten",
+        "AUDIO": "ऑडियो",
+        "CREATED_AT": "सृजित",
+        "NOTES": "करती",
+        "NEW_PROJECT": "नई परियोजना",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "खुले में एक नया खिडकी",
+        "OPEN_PROJECT": "खुले परियोजना",
+        "COPY": "कॉपी करें",
+        "OPEN": "खुला",
+        "NEW": "नया",
+        "COPY_PROJECT": "परियोजना की कॉपी करें",
+        "NEW_VARIABLE": "नई परिवर्तनीय",
+        "ADD_VARIABLE": "परिवर्तनीय जोड़ें",
+        "UPDATE_DESCRIPTION": "अद्यतन वर्णन किया।",
+        "EDIT_XML": "XML संपादित करें",
+        "IMPORT_XML": "XML आयात करें",
+        "IMPORT": "आयात",
+        "DROP_TO_UPLOAD": "अपलोड छोड़ें",
+        "DROP_TO_UPLOAD_MESSAGE": "आप फ़ाइलों को छोडने का भी यहां अपलोड करने के लिए है। केवल XML - अधिकतम. 5 MB",
+        "CLOSE": "निकट",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "GO_TO_PROJECTS": "परियोजनाओं पर जाएं",
+        "UPDATE_INFO": "अद्यतन जानकारी",
+        "AGENTS": "एजेंटों",
+        "TELEPHONES": "टेलीफोन",
+        "USERS": "प्रयोक्ता",
+        "HELP": {
+            "MAILBOX": "मेलबॉक्स@वर्ल्ड कप के संदर्भ",
+            "DSN": "उदाहरण के लिए: चालक=MySQL वंशवृक्ष सर्वर 0.1.127.0 UID=xcall वंशवृक्ष वंशवृक्ष=लोकनिर्माण=पासवर्ड वंशवृक्ष डाटाबेस=प्रस्ताव"
+        },
+        "CHOOSE_ATTACHMENT": "संलग्नक चुनें",
+        "ATTACHMENT_NAME": "संलग्नक का नाम",
+        "ATTACHMENT_TYPE": "संलग्नक प्रकार",
+        "ATTACHMENT_PATH": "संलग्नक का मार्ग",
+        "SENDFAX": "फ़ैक्स भेजें",
+        "DELETE_SQUARERECORDING": "रिकॉर्डिंग वर्गाकार हटाएं",
+        "DOWNLOAD_SQUARERECORDING": "रिकॉर्डिंग वर्गाकार डाउनलोड करें",
+        "TEST_ODBC": "टेस्ट ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/it.json b/public/app/main/apps/callysquare/i18n/it.json
new file mode 100644 (file)
index 0000000..dea655e
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Nome",
+        "ODBC": "ODBC",
+        "TEST_ODBC": "Test ODBC",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "BACK": "Indietro",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutto",
+        "SELECT_NONE": "Deseleziona tutto",
+        "DSN": "DSN",
+        "DESCRIPTION": "Descrizione",
+        "ADD_ODBC": "Aggiungi ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "DSN_REQUIRED": "Il DSN è richiesto",
+            "PROJECT_REQUIRED": "Il Progetto è richiesto",
+            "FIELD_REQUIRED": "Il campo è richiesto"
+        },
+        "EDIT_ODBC": "Modifica ODBC",
+        "DELETE_ODBC": "Elimina ODBC",
+        "SAVE": "Salva",
+        "PROJECTS": "Progetti",
+        "ADD_PROJECT": "Aggiungi Progetto",
+        "EDIT_PROJECT": "Modifica Progetto",
+        "DELETE_PROJECT": "Delete Progetto",
+        "CALLYSQUARE": "Cally Square",
+        "ID": "Id",
+        "NEW_ODBC": "Nuova connessione ODBC",
+        "SQUARERECORDINGS": "Registrazioni",
+        "PROJECT": "Progetto",
+        "UNIQUEID": "Unique ID",
+        "PHONE": "Telefono",
+        "EXTEN": "Exten",
+        "AUDIO": "Audio",
+        "CREATED_AT": "Creato il",
+        "NOTES": "Note",
+        "NEW_PROJECT": "Nuovo Progetto",
+        "EDIT": "Modifica",
+        "LABEL": "Label",
+        "ANSWER": "Rispondi",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "Dial Esterna",
+        "QUEUE": "Coda",
+        "QUEUE_ID": "Coda",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Posizione",
+        "VOICEMAIL": "Casella Vocale",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Opzioni",
+        "SET": "Set",
+        "VARIABLE_ID": "Variabile",
+        "VARIABLE_VALUE": "Valore",
+        "MATH": "Math",
+        "OPERATION": "Operazione",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Numero",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Testo",
+        "GOOGLE_TTS_LANGUAGE": "Lingua",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Lingua",
+        "SPEED": "Velocità",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Registra",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Froamto Registrazione",
+        "DATABASE": "Database",
+        "ODBC_ID": "Connessione ODBC",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Lingua",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Invia SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "A",
+        "SMS_TEXT": "Testo",
+        "SENDMAIL": "Invia Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Soggetto",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Contesto",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priorità",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condizione",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Intervallo",
+        "VSWITCH": "Switch su Variabile",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Argomenti",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Progetto",
+        "CUSTOM_APP": "Applicazione Custom",
+        "APPLICATION": "Applicazione",
+        "CALLBACK": "Richiama",
+        "LASTNAME": "Cognome",
+        "LIST_ID": "Lista",
+        "DELAY": "Ritardo",
+        "OPEN_NEW_WINDOW": "Apri in una nuova finestra",
+        "OPEN_PROJECT": "Apri Progetto",
+        "COPY": "Copia",
+        "OPEN": "Apri",
+        "NEW": "Nuovo",
+        "COPY_PROJECT": "Copia Progetto",
+        "NEW_VARIABLE": "Nuova Variabile",
+        "ADD_VARIABLE": "Aggiungi Variabile",
+        "UPDATE_DESCRIPTION": "Aggiorna Descrizione",
+        "EDIT_XML": "Modifica XML",
+        "IMPORT_XML": "Importa XML",
+        "IMPORT": "Importa",
+        "DROP_TO_UPLOAD": "DROP TO UPLOAD",
+        "DROP_TO_UPLOAD_MESSAGE": "Puoi anche trascinare i file qui per caricarli. Solo XML - Max 5MB",
+        "CLOSE": "Chiudi",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "GO_TO_PROJECTS": "Vai ai progetti",
+        "UPDATE_INFO": "Aggiorna Info",
+        "AGENTS": "Agents",
+        "TELEPHONES": "Telephones",
+        "USERS": "Users",
+        "HELP": {
+            "MAILBOX": "Mailbox@context",
+            "DSN": "Esempio:DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion"
+        },
+        "CHOOSE_ATTACHMENT": "Scegli Allegato",
+        "ATTACHMENT_NAME": "Nome Allegato",
+        "ATTACHMENT_TYPE": "Tipo Allegato",
+        "ATTACHMENT_PATH": "Percorso Allegato",
+        "SENDFAX": "Invia Fax",
+        "DELETE_SQUARERECORDING": "Elimina Registrazione Square",
+        "DOWNLOAD_SQUARERECORDING": "Scarica Registrazione Square"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/ja.json b/public/app/main/apps/callysquare/i18n/ja.json
new file mode 100644 (file)
index 0000000..20ad420
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "名",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "BACK": "背面",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "DSN": "DSN",
+        "DESCRIPTION": "説明",
+        "ADD_ODBC": "ODBC を追加",
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "DSN_REQUIRED": "は、 DSN が必要です",
+            "PROJECT_REQUIRED": "プロジェクトが必要です",
+            "FIELD_REQUIRED": "このフィールドは必須です"
+        },
+        "EDIT_ODBC": "ODBC の編集",
+        "DELETE_ODBC": "ODBC を削除",
+        "SAVE": "保存",
+        "PROJECTS": "プロジェクト",
+        "ADD_PROJECT": "プロジェクトを追加します。",
+        "EDIT_PROJECT": "プロジェクトを編集",
+        "DELETE_PROJECT": "プロジェクトを削除する",
+        "CALLYSQUARE": "5 Cally 広場",
+        "ID": "Id",
+        "NEW_ODBC": "新しい ODBC 接続",
+        "SQUARERECORDINGS": "広場の録音",
+        "PROJECT": "プロジェクト",
+        "UNIQUEID": "一意の ID",
+        "PHONE": "電話",
+        "EXTEN": "拡張機能",
+        "AUDIO": "オーディオ",
+        "CREATED_AT": "で作成された",
+        "NOTES": "ノート",
+        "NEW_PROJECT": "新しいプロジェクト",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "新しいウィンドウで開く",
+        "OPEN_PROJECT": "プロジェクトを開く",
+        "COPY": "コピー",
+        "OPEN": "開く",
+        "NEW": "新しい",
+        "COPY_PROJECT": "プロジェクトをコピーします。",
+        "NEW_VARIABLE": "新しい変数",
+        "ADD_VARIABLE": "変数を追加します。",
+        "UPDATE_DESCRIPTION": "更新の説明",
+        "EDIT_XML": "XML を編集して",
+        "IMPORT_XML": "XML のインポート",
+        "IMPORT": "インポート",
+        "DROP_TO_UPLOAD": "アップロードのドロップ",
+        "DROP_TO_UPLOAD_MESSAGE": "ファイルをここにドロップするとアップロードすることもできます。 XML のみ - Max 。 5 MB",
+        "CLOSE": "閉じる",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "GO_TO_PROJECTS": "プロジェクトの移動",
+        "UPDATE_INFO": "情報の更新",
+        "AGENTS": "エージェント",
+        "TELEPHONES": "電話",
+        "USERS": "ユーザー",
+        "HELP": {
+            "MAILBOX": "@ コンテキストのメールボックス",
+            "DSN": "例: DRIVER = MySQL SERVER = 127.0.0.1 ; UID = xcall ; PWD = パスワードを入力します。データベース = モーション"
+        },
+        "CHOOSE_ATTACHMENT": "添付ファイルを選択します",
+        "ATTACHMENT_NAME": "添付ファイルの名前",
+        "ATTACHMENT_TYPE": "添付ファイルのタイプ",
+        "ATTACHMENT_PATH": "添付ファイルのパス",
+        "SENDFAX": "ファクスを送信します。",
+        "DELETE_SQUARERECORDING": "広場の記録を削除",
+        "DOWNLOAD_SQUARERECORDING": "ダウンロード広場の録音",
+        "TEST_ODBC": "ODBC をテスト"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/ko.json b/public/app/main/apps/callysquare/i18n/ko.json
new file mode 100644 (file)
index 0000000..38740a6
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "이름",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "BACK": "후면",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "DSN": "DSN",
+        "DESCRIPTION": "설명",
+        "ADD_ODBC": "Odbc 추가",
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "DSN_REQUIRED": "DSN가 필요합니다",
+            "PROJECT_REQUIRED": "이 사업은 필수",
+            "FIELD_REQUIRED": "이 필드는 필수 항목입니다."
+        },
+        "EDIT_ODBC": "Odbc 편집",
+        "DELETE_ODBC": "Odbc 삭제",
+        "SAVE": "저장",
+        "PROJECTS": "프로젝트",
+        "ADD_PROJECT": "프로젝트 추가",
+        "EDIT_PROJECT": "편집 프로젝트",
+        "DELETE_PROJECT": "프로젝트 삭제",
+        "CALLYSQUARE": "Cally 광장",
+        "ID": "Id",
+        "NEW_ODBC": "새로운 ODBC 연결",
+        "SQUARERECORDINGS": "광장 녹음",
+        "PROJECT": "프로젝트",
+        "UNIQUEID": "고유 ID",
+        "PHONE": "전화",
+        "EXTEN": "Exten",
+        "AUDIO": "오디오",
+        "CREATED_AT": "생성",
+        "NOTES": "메모",
+        "NEW_PROJECT": "새 프로젝트",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "새 창에서 열기",
+        "OPEN_PROJECT": "프로젝트 열기",
+        "COPY": "복사",
+        "OPEN": "열기",
+        "NEW": "새로운",
+        "COPY_PROJECT": "프로젝트 복사",
+        "NEW_VARIABLE": "새 변수",
+        "ADD_VARIABLE": "변수 추가",
+        "UPDATE_DESCRIPTION": "업데이트 설명",
+        "EDIT_XML": "Xml 파일 편집",
+        "IMPORT_XML": "Xml 가져오기",
+        "IMPORT": "가져오기",
+        "DROP_TO_UPLOAD": "업로드 취소",
+        "DROP_TO_UPLOAD_MESSAGE": "또한 파일 드롭 업로드할 수 있습니다. XML - Max. 5MB",
+        "CLOSE": "닫기",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "GO_TO_PROJECTS": "프로젝트 이동",
+        "UPDATE_INFO": "업데이트 정보",
+        "AGENTS": "상담원",
+        "TELEPHONES": "전화기",
+        "USERS": "사용자",
+        "HELP": {
+            "MAILBOX": "사서함 @ 컨텍스트",
+            "DSN": "예: 드라이버 = MySQL, server=127.0.0.1, UID= xcall;PWD= 암호, 데이터베이스 = 동작"
+        },
+        "CHOOSE_ATTACHMENT": "첨부 파일 선택",
+        "ATTACHMENT_NAME": "첨부 파일 이름",
+        "ATTACHMENT_TYPE": "접속 장치 유형",
+        "ATTACHMENT_PATH": "첨부 파일 경로",
+        "SENDFAX": "팩스 보내기",
+        "DELETE_SQUARERECORDING": "광장 녹음 삭제",
+        "DOWNLOAD_SQUARERECORDING": "광장 다운로드 녹음",
+        "TEST_ODBC": "ODBC 테스트"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/nl.json b/public/app/main/apps/callysquare/i18n/nl.json
new file mode 100644 (file)
index 0000000..cd1e837
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Naam",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "BACK": "Terug",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "DSN": "DSN",
+        "DESCRIPTION": "Beschrijving",
+        "ADD_ODBC": "Voeg ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "DSN_REQUIRED": "Het DSN is vereist",
+            "PROJECT_REQUIRED": "Het project is vereist",
+            "FIELD_REQUIRED": "Het is een verplicht veld"
+        },
+        "EDIT_ODBC": "Edit ODBC",
+        "DELETE_ODBC": "Verwijderen van ODBC",
+        "SAVE": "Opslaan",
+        "PROJECTS": "Projecten",
+        "ADD_PROJECT": "Voeg Project",
+        "EDIT_PROJECT": "Edit Project",
+        "DELETE_PROJECT": "Project verwijderen",
+        "CALLYSQUARE": "Schrijfsnelheid Square",
+        "ID": "Id",
+        "NEW_ODBC": "Nieuwe ODBC verbinding",
+        "SQUARERECORDINGS": "Vierkante opnamen",
+        "PROJECT": "Project",
+        "UNIQUEID": "Unieke ID",
+        "PHONE": "Telefoon",
+        "EXTEN": "Uitbreiding",
+        "AUDIO": "Audio",
+        "CREATED_AT": "Gemaakt op",
+        "NOTES": "Aantekeningen",
+        "NEW_PROJECT": "Nieuw project",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "Open in een nieuw venster",
+        "OPEN_PROJECT": "Project openen",
+        "COPY": "Kopiëren",
+        "OPEN": "Open",
+        "NEW": "Nieuwe",
+        "COPY_PROJECT": "Kopieer Project",
+        "NEW_VARIABLE": "Nieuwe variabele",
+        "ADD_VARIABLE": "Variabele toevoegen",
+        "UPDATE_DESCRIPTION": "Beschrijving van update",
+        "EDIT_XML": "Edit XML",
+        "IMPORT_XML": "Import XML",
+        "IMPORT": "Importeren",
+        "DROP_TO_UPLOAD": "DROP om te uploaden",
+        "DROP_TO_UPLOAD_MESSAGE": "U kunt ook bestanden hier neer te uploaden. Alleen XML - Max. 5MB",
+        "CLOSE": "Dicht",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "GO_TO_PROJECTS": "Ga naar projecten",
+        "UPDATE_INFO": "Gegevens bijwerken",
+        "AGENTS": "Agenten",
+        "TELEPHONES": "Telefoons",
+        "USERS": "Gebruikers",
+        "HELP": {
+            "MAILBOX": "Mailbox@context",
+            "DSN": "Voorbeeld: DRIVER=MySQL;SERVER=127.0.0.1;uid=xcall;pwd=wachtwoord;DATABASE=motion"
+        },
+        "CHOOSE_ATTACHMENT": "Kies voorzetstuk",
+        "ATTACHMENT_NAME": "Bijlagenaam",
+        "ATTACHMENT_TYPE": "Type aansluiting",
+        "ATTACHMENT_PATH": "Attachment pad",
+        "SENDFAX": "Fax verzenden",
+        "DELETE_SQUARERECORDING": "Wis vierkant opnemen",
+        "DOWNLOAD_SQUARERECORDING": "Download vierkante opnemen",
+        "TEST_ODBC": "Test ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/no.json b/public/app/main/apps/callysquare/i18n/no.json
new file mode 100644 (file)
index 0000000..a9faae6
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Navn",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "BACK": "Tilbake",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "DSN": "DSN",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_ODBC": "Legg ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "DSN_REQUIRED": "DSN er nødvendig",
+            "PROJECT_REQUIRED": "Prosjektet er nødvendig",
+            "FIELD_REQUIRED": "Feltet er obligatorisk"
+        },
+        "EDIT_ODBC": "Rediger ODBC",
+        "DELETE_ODBC": "Slette ODBC",
+        "SAVE": "Lagre",
+        "PROJECTS": "Prosjekter",
+        "ADD_PROJECT": "Legg til prosjekt",
+        "EDIT_PROJECT": "Rediger prosjekt",
+        "DELETE_PROJECT": "Slett prosjekt",
+        "CALLYSQUARE": "Sportsbil Square",
+        "ID": "Id",
+        "NEW_ODBC": "Ny ODBC-kobling",
+        "SQUARERECORDINGS": "Square opptak",
+        "PROJECT": "Prosjekt",
+        "UNIQUEID": "Unik ID",
+        "PHONE": "Telefon",
+        "EXTEN": "Exten",
+        "AUDIO": "Lyd",
+        "CREATED_AT": "Opprettet i",
+        "NOTES": "Merknader",
+        "NEW_PROJECT": "Nytt prosjekt",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "Åpne i et nytt vindu",
+        "OPEN_PROJECT": "Åpne prosjekt",
+        "COPY": "Kopiere",
+        "OPEN": "Åpne",
+        "NEW": "Ny",
+        "COPY_PROJECT": "Kopier prosjekt",
+        "NEW_VARIABLE": "Ny variabel",
+        "ADD_VARIABLE": "Legg til variabel",
+        "UPDATE_DESCRIPTION": "Oppdateringen beskrivelse",
+        "EDIT_XML": "Redigere XML",
+        "IMPORT_XML": "Importere XML",
+        "IMPORT": "Importere",
+        "DROP_TO_UPLOAD": "Slippe Å LASTE OPP",
+        "DROP_TO_UPLOAD_MESSAGE": "Du kan også slippe filer her å laste opp. Bare XML - Maks. 5MB",
+        "CLOSE": "Lukk",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "GO_TO_PROJECTS": "Gå til prosjekter",
+        "UPDATE_INFO": "Oppdatere info",
+        "AGENTS": "Agenter",
+        "TELEPHONES": "Telefoner",
+        "USERS": "Brukere",
+        "HELP": {
+            "MAILBOX": "Postboksen@kontekst",
+            "DSN": "Eksempel: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=passord;DATABASE=bevegelse"
+        },
+        "CHOOSE_ATTACHMENT": "Velg vedlegg",
+        "ATTACHMENT_NAME": "Vedlegg navn",
+        "ATTACHMENT_TYPE": "Tilkoblingstype",
+        "ATTACHMENT_PATH": "Vedlegg bane",
+        "SENDFAX": "Send faks",
+        "DELETE_SQUARERECORDING": "Slette Square opptak",
+        "DOWNLOAD_SQUARERECORDING": "Last ned Square opptak",
+        "TEST_ODBC": "Test ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/pt-PT.json b/public/app/main/apps/callysquare/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..958306c
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Nome",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "BACK": "De volta",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "DSN": "DSN",
+        "DESCRIPTION": "Descrição",
+        "ADD_ODBC": "Adicionar ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "DSN_REQUIRED": "O DSN é necessária",
+            "PROJECT_REQUIRED": "O projeto é necessário",
+            "FIELD_REQUIRED": "O campo é obrigatório"
+        },
+        "EDIT_ODBC": "Editar ODBC",
+        "DELETE_ODBC": "Excluir ODBC",
+        "SAVE": "Salvar",
+        "PROJECTS": "Projectos",
+        "ADD_PROJECT": "Adicionar projeto",
+        "EDIT_PROJECT": "Editar Projecto",
+        "DELETE_PROJECT": "Excluir o projeto",
+        "CALLYSQUARE": "Camente Square",
+        "ID": "Id",
+        "NEW_ODBC": "Nova conexão ODBC",
+        "SQUARERECORDINGS": "Praça de gravações",
+        "PROJECT": "Projecto",
+        "UNIQUEID": "ID exclusivo",
+        "PHONE": "Telefone",
+        "EXTEN": "Exten",
+        "AUDIO": "Áudio",
+        "CREATED_AT": "Criado em",
+        "NOTES": "Notas",
+        "NEW_PROJECT": "Novo Projeto",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "Abrir em uma nova janela",
+        "OPEN_PROJECT": "Projeto aberto",
+        "COPY": "Cópia",
+        "OPEN": "Abra",
+        "NEW": "Novo",
+        "COPY_PROJECT": "Projecto de cópia",
+        "NEW_VARIABLE": "Nova Variável",
+        "ADD_VARIABLE": "Acrescentar variável",
+        "UPDATE_DESCRIPTION": "A descrição da actualização",
+        "EDIT_XML": "Editar XML",
+        "IMPORT_XML": "Importação XML",
+        "IMPORT": "Importação",
+        "DROP_TO_UPLOAD": "Gota PARA FAZER UPLOAD",
+        "DROP_TO_UPLOAD_MESSAGE": "Você também pode arrastar arquivos aqui para carregar. Apenas XML - Max. 5 MB",
+        "CLOSE": "Fechar",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "GO_TO_PROJECTS": "Vá para projectos",
+        "UPDATE_INFO": "Atualizar Informações",
+        "AGENTS": "Agentes",
+        "TELEPHONES": "Telefones",
+        "USERS": "Os usuários",
+        "HELP": {
+            "MAILBOX": "Caixa de correio@contexto",
+            "DSN": "Exemplo: DRIVER=MySQL;servidor=127.0.0.1;UID=xcall;PWD=senha;DATABASE=motion"
+        },
+        "CHOOSE_ATTACHMENT": "Escolha o acessório",
+        "ATTACHMENT_NAME": "Nome do anexo",
+        "ATTACHMENT_TYPE": "Tipo de anexo",
+        "ATTACHMENT_PATH": "Caminho de anexos",
+        "SENDFAX": "Enviar Fax",
+        "DELETE_SQUARERECORDING": "Excluir gravação Quadrado",
+        "DOWNLOAD_SQUARERECORDING": "Download Square a gravação",
+        "TEST_ODBC": "Teste ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/ru.json b/public/app/main/apps/callysquare/i18n/ru.json
new file mode 100644 (file)
index 0000000..d9869d9
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Имя",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "BACK": "Назад",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "DSN": "DSN",
+        "DESCRIPTION": "Описание",
+        "ADD_ODBC": "Добавить ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "DSN_REQUIRED": "DSN не требуется",
+            "PROJECT_REQUIRED": "В рамках этого проекта не требуется",
+            "FIELD_REQUIRED": "Поле является обязательным"
+        },
+        "EDIT_ODBC": "Редактировать ODBC",
+        "DELETE_ODBC": "Удалить ODBC",
+        "SAVE": "Сохранить",
+        "PROJECTS": "Проекты",
+        "ADD_PROJECT": "Добавить проект",
+        "EDIT_PROJECT": "Редактировать проект",
+        "DELETE_PROJECT": "Удалить",
+        "CALLYSQUARE": "Юндкп подкрепить проектную документацию путем систематического квадратных",
+        "ID": "Id",
+        "NEW_ODBC": "Новые связи ODBC",
+        "SQUARERECORDINGS": "Квадратный записей",
+        "PROJECT": "Проект",
+        "UNIQUEID": "Уникальный идентификатор",
+        "PHONE": "Номер телефона",
+        "EXTEN": "Удлинительные кабели приобретаются",
+        "AUDIO": "Аудио",
+        "CREATED_AT": "Созданные в",
+        "NOTES": "Примечания",
+        "NEW_PROJECT": "Новый проект",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "Открыть в новом окне",
+        "OPEN_PROJECT": "Открыть проект",
+        "COPY": "Копирование",
+        "OPEN": "Открыть",
+        "NEW": "Новые",
+        "COPY_PROJECT": "Копия проекта",
+        "NEW_VARIABLE": "Новой переменной",
+        "ADD_VARIABLE": "Добавить переменную",
+        "UPDATE_DESCRIPTION": "Описание обновления",
+        "EDIT_XML": "Редактирование XML",
+        "IMPORT_XML": "Импорт XML",
+        "IMPORT": "Импорт",
+        "DROP_TO_UPLOAD": "Раскрывающийся список ДЛЯ ЗАГРУЗКИ",
+        "DROP_TO_UPLOAD_MESSAGE": "Также можно перетащить файлы для загрузки здесь. Только XML - Max. 5 МБ",
+        "CLOSE": "Закрыть",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "GO_TO_PROJECTS": "Перейти к проектам",
+        "UPDATE_INFO": "Обновление информации",
+        "AGENTS": "Операторы",
+        "TELEPHONES": "Телефоны",
+        "USERS": "Пользователи",
+        "HELP": {
+            "MAILBOX": "Фотогалерея@контексте",
+            "DSN": "Пример: DRIVER=MySQL;сервер = 127.0.0.1;uid=xcall;PWD=Пароль;БАЗЫ ДАННЫХ=motion"
+        },
+        "CHOOSE_ATTACHMENT": "Выбрать вложение",
+        "ATTACHMENT_NAME": "Имя вложения",
+        "ATTACHMENT_TYPE": "Тип подключения",
+        "ATTACHMENT_PATH": "Вложение путь",
+        "SENDFAX": "Отправка факса",
+        "DELETE_SQUARERECORDING": "Удалить запись площади",
+        "DOWNLOAD_SQUARERECORDING": "Загрузить квадратных записи",
+        "TEST_ODBC": "Проверка ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/sv.json b/public/app/main/apps/callysquare/i18n/sv.json
new file mode 100644 (file)
index 0000000..19ca8eb
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Namn",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "BACK": "Tillbaka",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "DSN": "DSN",
+        "DESCRIPTION": "Beskrivning",
+        "ADD_ODBC": "Lägg ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "DSN_REQUIRED": "DSN krävs",
+            "PROJECT_REQUIRED": "Projektet är obligatoriskt",
+            "FIELD_REQUIRED": "Fältet är obligatoriskt"
+        },
+        "EDIT_ODBC": "Redigerar ODBC",
+        "DELETE_ODBC": "Ta bort ODBC",
+        "SAVE": "Spara",
+        "PROJECTS": "Projekt",
+        "ADD_PROJECT": "Lägg till projekt",
+        "EDIT_PROJECT": "Redigera projekt",
+        "DELETE_PROJECT": "Ta bort projekt",
+        "CALLYSQUARE": "Attes Square",
+        "ID": "Id",
+        "NEW_ODBC": "Ny ODBC-anslutning",
+        "SQUARERECORDINGS": "Torget inspelningar",
+        "PROJECT": "Projektet",
+        "UNIQUEID": "Unikt ID",
+        "PHONE": "Telefon",
+        "EXTEN": "Exten",
+        "AUDIO": "Ljud",
+        "CREATED_AT": "Skapad",
+        "NOTES": "Anteckningar",
+        "NEW_PROJECT": "Nytt projekt",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "Öppnas i ett nytt fönster",
+        "OPEN_PROJECT": "Öppna projekt",
+        "COPY": "Kopiera",
+        "OPEN": "Öppna",
+        "NEW": "Nya",
+        "COPY_PROJECT": "Kopiera projekt",
+        "NEW_VARIABLE": "En ny variabel",
+        "ADD_VARIABLE": "Adderar variabel",
+        "UPDATE_DESCRIPTION": "Uppdatera beskrivningen",
+        "EDIT_XML": "Redigera XML",
+        "IMPORT_XML": "Importera XML",
+        "IMPORT": "Importera",
+        "DROP_TO_UPLOAD": "Tappar du vill överföra",
+        "DROP_TO_UPLOAD_MESSAGE": "Du kan också släppa filer här till uploaden. Endast XML - Max. 5MB",
+        "CLOSE": "Stäng",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "GO_TO_PROJECTS": "Gå till projekt",
+        "UPDATE_INFO": "Uppdatera info",
+        "AGENTS": "Agenter",
+        "TELEPHONES": "Telefoner",
+        "USERS": "Användare",
+        "HELP": {
+            "MAILBOX": "Brevlåda@sammanhang",
+            "DSN": "Exempel: Föraren=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=lösenord;DATABASE=motion"
+        },
+        "CHOOSE_ATTACHMENT": "Välj tillbehör",
+        "ATTACHMENT_NAME": "Namn på bifogad fil",
+        "ATTACHMENT_TYPE": "Typ av koppling",
+        "ATTACHMENT_PATH": "Bilagan sökväg",
+        "SENDFAX": "Skicka fax",
+        "DELETE_SQUARERECORDING": "Ta bort Square inspelning",
+        "DOWNLOAD_SQUARERECORDING": "Download Square inspelning",
+        "TEST_ODBC": "Testa ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/tr.json b/public/app/main/apps/callysquare/i18n/tr.json
new file mode 100644 (file)
index 0000000..e6804ac
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "Adı",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "BACK": "Geri",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "DSN": "DSN",
+        "DESCRIPTION": "Açıklama",
+        "ADD_ODBC": "Add ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "DSN_REQUIRED": "DSN gerekli",
+            "PROJECT_REQUIRED": "Proje gerekiyor.",
+            "FIELD_REQUIRED": "Bu alanı gerekli."
+        },
+        "EDIT_ODBC": "Edit ODBC",
+        "DELETE_ODBC": "Delete ODBC",
+        "SAVE": "Kaydet",
+        "PROJECTS": "Projeler",
+        "ADD_PROJECT": "Add Project",
+        "EDIT_PROJECT": "Edit Project",
+        "DELETE_PROJECT": "Proje silin",
+        "CALLYSQUARE": "Kare etkinleştirir",
+        "ID": "Id",
+        "NEW_ODBC": "Yeni ODBC bağlantısı",
+        "SQUARERECORDINGS": "Kare Kayıtları",
+        "PROJECT": "Proje",
+        "UNIQUEID": "Benzersiz Kimliği",
+        "PHONE": "Telefon",
+        "EXTEN": "Uzatil",
+        "AUDIO": "Ses",
+        "CREATED_AT": "Oluşturulmuş",
+        "NOTES": "Notlar",
+        "NEW_PROJECT": "Yeni Proje",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "Yeni bir pencerede açılıyor",
+        "OPEN_PROJECT": "Açık Proje",
+        "COPY": "Kopyalama",
+        "OPEN": "Açık",
+        "NEW": "Yeni",
+        "COPY_PROJECT": "Kopya Proje",
+        "NEW_VARIABLE": "Yeni Değişken",
+        "ADD_VARIABLE": "Add Değişken",
+        "UPDATE_DESCRIPTION": "Güncelleme Açıklaması",
+        "EDIT_XML": "Edit XML",
+        "IMPORT_XML": "Import XML",
+        "IMPORT": "Alma",
+        "DROP_TO_UPLOAD": "İndirme YÜKLEME",
+        "DROP_TO_UPLOAD_MESSAGE": "Ayrıca dosyaları buraya yükleyin. Sadece XML - Maks. 5MB",
+        "CLOSE": "Close",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "GO_TO_PROJECTS": "Gi̇t projeler",
+        "UPDATE_INFO": "Güncelleştirme Bilgisi",
+        "AGENTS": "Ajanlar",
+        "TELEPHONES": "Telefonlar",
+        "USERS": "Kullanıcılar",
+        "HELP": {
+            "MAILBOX": "Posta kutusu@içerik",
+            "DSN": "Örnek: SÜRÜCÜ=MySQL;SERVER=127,0.0,1;UID=xcall;PWD=parola;DATABASE=hareket"
+        },
+        "CHOOSE_ATTACHMENT": "Ek seçin",
+        "ATTACHMENT_NAME": "Ek Adı",
+        "ATTACHMENT_TYPE": "Bağlantı Tipi",
+        "ATTACHMENT_PATH": "Bağlantı Yolu",
+        "SENDFAX": "Faks Gönderme",
+        "DELETE_SQUARERECORDING": "Delete Kare Kayıt",
+        "DOWNLOAD_SQUARERECORDING": "Yükleme Kare Kayıt",
+        "TEST_ODBC": "Test ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/zh-CN.json b/public/app/main/apps/callysquare/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..5ad0c5b
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "名称",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "BACK": "返回",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "DSN": "DSN",
+        "DESCRIPTION": "描述",
+        "ADD_ODBC": "添加 ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "DSN_REQUIRED": "DSN 是必需的",
+            "PROJECT_REQUIRED": "该项目是必需的",
+            "FIELD_REQUIRED": "该字段为必需字段。"
+        },
+        "EDIT_ODBC": "编辑 ODBC",
+        "DELETE_ODBC": "删除 ODBC",
+        "SAVE": "保存",
+        "PROJECTS": "项目",
+        "ADD_PROJECT": "添加项目",
+        "EDIT_PROJECT": "编辑项目",
+        "DELETE_PROJECT": "删除项目",
+        "CALLYSQUARE": "邝美云广场",
+        "ID": "Id",
+        "NEW_ODBC": "新的 ODBC 连接",
+        "SQUARERECORDINGS": "广场的录音",
+        "PROJECT": "项目",
+        "UNIQUEID": "独特的 ID",
+        "PHONE": "电话",
+        "EXTEN": "分机",
+        "AUDIO": "音频",
+        "CREATED_AT": "创建在",
+        "NOTES": "备注",
+        "NEW_PROJECT": "新项目",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "在新窗口中打开",
+        "OPEN_PROJECT": "打开项目",
+        "COPY": "复制",
+        "OPEN": "打开",
+        "NEW": "新的",
+        "COPY_PROJECT": "复制项目",
+        "NEW_VARIABLE": "新的变量。",
+        "ADD_VARIABLE": "添加变量",
+        "UPDATE_DESCRIPTION": "更新说明。",
+        "EDIT_XML": "编辑 XML",
+        "IMPORT_XML": "导入 XML",
+        "IMPORT": "导入",
+        "DROP_TO_UPLOAD": "下上传",
+        "DROP_TO_UPLOAD_MESSAGE": "您也可以将文件在这里上传。 只有 XML -最大。 5MB",
+        "CLOSE": "关闭",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "GO_TO_PROJECTS": "请转至项目。",
+        "UPDATE_INFO": "更新信息",
+        "AGENTS": "座席",
+        "TELEPHONES": "电话",
+        "USERS": "用户",
+        "HELP": {
+            "MAILBOX": "邮箱@上下文",
+            "DSN": "例如: 驱动程序= MySQL; SERVER = 127.0 0.1 文件; UID = xcall; PWD =密码; DATABASE = motion"
+        },
+        "CHOOSE_ATTACHMENT": "选择附件",
+        "ATTACHMENT_NAME": "附件名称",
+        "ATTACHMENT_TYPE": "附件类型",
+        "ATTACHMENT_PATH": "附件路径",
+        "SENDFAX": "发送传真",
+        "DELETE_SQUARERECORDING": "删除广场录像",
+        "DOWNLOAD_SQUARERECORDING": "下载广场录像",
+        "TEST_ODBC": "测试 ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/callysquare/i18n/zh-TW.json b/public/app/main/apps/callysquare/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..aeeac74
--- /dev/null
@@ -0,0 +1,169 @@
+{
+    "CALLYSQUARE": {
+        "NAME": "名稱",
+        "ODBC": "ODBC",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "BACK": "備份",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "DSN": "DSN",
+        "DESCRIPTION": "說明",
+        "ADD_ODBC": "新增 ODBC",
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "DSN_REQUIRED": "DSN 是必填欄位",
+            "PROJECT_REQUIRED": "該專案是必填欄位",
+            "FIELD_REQUIRED": "此欄位為必填欄位"
+        },
+        "EDIT_ODBC": "編輯 ODBC",
+        "DELETE_ODBC": "刪除 ODBC",
+        "SAVE": "儲存",
+        "PROJECTS": "專案計畫",
+        "ADD_PROJECT": "新增專案",
+        "EDIT_PROJECT": "編輯專案",
+        "DELETE_PROJECT": "刪除專案",
+        "CALLYSQUARE": "會自動控制擺正身體姿勢",
+        "ID": "Id",
+        "NEW_ODBC": "新增 ODBC 連線",
+        "SQUARERECORDINGS": "方形錄音",
+        "PROJECT": "專案",
+        "UNIQUEID": "獨特的識別碼",
+        "PHONE": "電話",
+        "EXTEN": "Exten",
+        "AUDIO": "音效",
+        "CREATED_AT": "建立在",
+        "NOTES": "注意事項",
+        "NEW_PROJECT": "新的專案",
+        "EDIT": "Edit",
+        "LABEL": "Label",
+        "ANSWER": "Answer",
+        "TIMEOUT": "Timeout",
+        "SIP_ID": "SIP",
+        "OPTS": "Options",
+        "URL": "URL",
+        "TRUNK_NAME": "Trunk",
+        "START": "Start",
+        "FINALLY": "Finally",
+        "END": "End",
+        "HANGUP": "Hangup",
+        "DIAL": "Dial",
+        "EXT_DIAL": "External Dial",
+        "QUEUE": "Queue",
+        "QUEUE_ID": "Queue",
+        "FILE_ID": "Audio",
+        "AGI": "AGI",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "POSITION": "Position",
+        "VOICEMAIL": "Voicemail",
+        "MAILBOX": "Mailbox",
+        "OPTIONS": "Options",
+        "SET": "Set",
+        "VARIABLE_ID": "Variable",
+        "VARIABLE_VALUE": "Value",
+        "MATH": "Math",
+        "OPERATION": "Operation",
+        "PLAYBACK": "Playback",
+        "RESPONSE": "Response Timeout",
+        "DIGIT": "Max Digits",
+        "RETRY": "Retries",
+        "DIGITS": "Digits",
+        "ESCAPE_DIGITS": "Escape Digits",
+        "MENU": "Menu",
+        "SAYDIGITS": "Say Digits",
+        "SAYNUMBER": "Say number",
+        "NUMBER": "Number",
+        "SAYPHONETIC": "Say Phonetics",
+        "TEXT": "Text",
+        "GOOGLE_TTS_LANGUAGE": "Language",
+        "TTS": "Google Text-To-Speech",
+        "ISPEECHTTS": "ISpeech Text-To-Speech",
+        "KEY": "Key",
+        "ISPEECH_TTS_LANGUAGE": "Language",
+        "SPEED": "Speed",
+        "INTKEY": "Interrupt Key",
+        "GETDIGITS": "Get Digits",
+        "MINDIGIT": "Minimum Digits",
+        "MAXDIGIT": "Maximum Digits",
+        "HIDDENDIGITSNUM": "Hiddden Digits Number",
+        "HIDDENDIGITSPOS": "Hidden Digits Position",
+        "GETSECRETDIGITS": "Get Secret Digits",
+        "RECORD": "Record",
+        "FILE": "Filename",
+        "RECORDINGFORMAT": "Recording Format",
+        "DATABASE": "Database",
+        "ODBC_ID": "ODBC Connection",
+        "QUERY": "Query",
+        "MODEL": "Model",
+        "ISPEECH_ASR_LANGUAGE": "Language",
+        "BEEP": "Beep",
+        "ISPEECHASR": "ISpeech ASR",
+        "SENDSMS": "Send SMS",
+        "ACCOUNT_ID": "Account",
+        "TO": "To",
+        "SMS_TEXT": "Text",
+        "SENDMAIL": "Send Mail",
+        "TEMPLATE_ID": "Template",
+        "CC": "CC",
+        "BCC": "BCC",
+        "SUBJECT": "Subject",
+        "GOTOC": "GoTo",
+        "CONTEXT": "Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "GOTOIF": "GoToIf",
+        "CONDITION": "Condition",
+        "GOTOIFTIME": "GoToIfTime",
+        "INTERVAL_ID": "Interval",
+        "VSWITCH": "Variable Switch",
+        "GOAL": "Goal",
+        "GOALNAME": "Goal Name",
+        "NOOP": "NoOp",
+        "OUTPUT": "Output",
+        "SYSTEM": "System",
+        "COMMAND": "Command",
+        "ARGS": "Arguments",
+        "SUBPROJECT": "Sub Project",
+        "PROJECT_ID": "Project",
+        "CUSTOM_APP": "Custom Application",
+        "APPLICATION": "Application",
+        "CALLBACK": "Callback",
+        "LASTNAME": "Last Name",
+        "LIST_ID": "List",
+        "DELAY": "Delay",
+        "OPEN_NEW_WINDOW": "在新的視窗中開啟",
+        "OPEN_PROJECT": "開啟專案",
+        "COPY": "複製",
+        "OPEN": "開啟",
+        "NEW": "新增",
+        "COPY_PROJECT": "複印專案",
+        "NEW_VARIABLE": "新變數",
+        "ADD_VARIABLE": "新增變數",
+        "UPDATE_DESCRIPTION": "更新說明",
+        "EDIT_XML": "編輯 XML",
+        "IMPORT_XML": "匯入 XML",
+        "IMPORT": "匯入",
+        "DROP_TO_UPLOAD": "拉上傳",
+        "DROP_TO_UPLOAD_MESSAGE": "您也可以在下拉檔案這裡上傳。 只 XML - 最大。 5 MB",
+        "CLOSE": "關閉",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "GO_TO_PROJECTS": "移至專案",
+        "UPDATE_INFO": "更新資訊",
+        "AGENTS": "值機員",
+        "TELEPHONES": "電話",
+        "USERS": "使用者",
+        "HELP": {
+            "MAILBOX": "信箱與內容",
+            "DSN": "例如 : 驅動程式 = MySQL ; 伺服器 = 127.0.0.1 ; UID = xcall ; 密碼 = 密碼 ; 資料庫 = 動作"
+        },
+        "CHOOSE_ATTACHMENT": "選擇配件",
+        "ATTACHMENT_NAME": "附件檔名稱",
+        "ATTACHMENT_TYPE": "附件類型",
+        "ATTACHMENT_PATH": "附件檔路徑",
+        "SENDFAX": "傳送傳真",
+        "DELETE_SQUARERECORDING": "刪除方形錄影",
+        "DOWNLOAD_SQUARERECORDING": "下載方錄影",
+        "TEST_ODBC": "測試 ODBC"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/da.json b/public/app/main/apps/chat/i18n/da.json
new file mode 100644 (file)
index 0000000..ab9dfc1
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Navnet",
+        "CHATQUEUES": "Chat køer",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "STRATEGY": "Strategi",
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Beskrivelse",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten Timeout er påkrævet",
+            "MOTIONADDRESS_REQUIRED": "Motion Adresse skal angives.",
+            "MOTIONADDRESS_MUST_VALID_URL": "Motion adresse skal være skrevet i et gyldigt format",
+            "ADDRESS_REQUIRED": "Adressen er påkrævet",
+            "ADDRESS_MUST_VALID_URL": "Adressen skal være skrevet i et gyldigt format",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "Undersøgelsen Forwarding Adresse skal angives.",
+            "ACCEPTURL_MUST_VALID_URL": "Det acceptere URL skal være skrevet i et gyldigt format",
+            "TIMEOUT_REQUIRED": "Timeout er påkrævet",
+            "REJECTURL_MUST_VALID_URL": "Reject-URL skal være skrevet i et gyldigt format",
+            "CLOSEURL_MUST_VALID_URL": "Den tætte URL skal være skrevet i et gyldigt format"
+        },
+        "ADD_CHATQUEUE": "Tilføj Chat kø",
+        "EDIT_CHATQUEUE": "Rediger Chat kø",
+        "DELETE_CHATQUEUE": "Slette Chat kø",
+        "SETTINGS": "Indstillinger",
+        "SAVE": "Gem",
+        "CREATED_AT": "Oprettet på",
+        "CHATWEBSITES": "Chat-hjemmesider",
+        "MOTIONADDRESS": "Motion adresse",
+        "ADD_CHATWEBSITE": "Tilføj Chat hjemmeside",
+        "EDIT_CHATWEBSITE": "Rediger Chat hjemmeside",
+        "DELETE_CHATWEBSITE": "Slette Chat hjemmeside",
+        "LIST": "Listen",
+        "SNIPPET": "Udsnit",
+        "FORMS": "Formularer",
+        "PROACTIVEACTIONS": "Proaktive handlinger",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Handlinger",
+        "FIDELITY": "Fidelity",
+        "APPEARANCE": "Udseende",
+        "MAINCOLOR": "Hovedfarve",
+        "FOCUSCOLOR": "Fokus farve",
+        "BUTTONCOLOR": "Knappens farve",
+        "HEADERSHAPE": "Bordets form",
+        "ANIMATION": "Animation",
+        "DEFAULT": "Standard",
+        "WHITELABEL": "Hvidmærke",
+        "LOGO": "Logo",
+        "DOWNLOADTRANSCRIPT": "Download referat",
+        "ENQUIRY_ENABLE": "Forespørgsel aktiverer",
+        "ENQUIRY_FORWARDING": "Videresendelse af forespørgsel",
+        "ENQUIRY_FORWARDING_ADDRESS": "Forespørgsel Forwarding adresse",
+        "LABELS": "Labels",
+        "HEADER_ONLINE": "Online stiftliste",
+        "ONLINE_MESSAGE": "Online-meddelelse",
+        "NAME_TITLE": "Navnets etikette",
+        "USERNAME_PLACEHOLDER": "Brugernavn Input pladsholder",
+        "EMAIL_TITLE": "Email Input Label",
+        "EMAIL_PLACEHOLDER": "Email Input pladsholder",
+        "START_CHAT_BUTTON": "'Start' knappen chat",
+        "AGENTS_BUSY": "Travl agenter besked",
+        "HEADER_OFFLINE": "Offline stiftliste",
+        "OFFLINE_MESSAGE": "Offline besked",
+        "MESSAGE_TITLE": "Besked etiket",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Forespørgsel Besked Input pladsholder",
+        "ENQUIRY_BUTTON": "Forespørgsel Knaptekst",
+        "RATING_MESSAGE": "Rating besked",
+        "RATING_SEND": "Rating Send Knaptekst",
+        "RATING_SKIP": "Rating Spring Knaptekst",
+        "ONLINE": "Online",
+        "OFFLINE": "Offline",
+        "PROACTIVE": "Proaktiv",
+        "ACCEPT": "Accepter",
+        "ACCEPTMETHOD": "Acceptere metode",
+        "ACCEPTURL": "Acceptere URL",
+        "REJECT": "Afvis",
+        "REJECTMETHOD": "Afvis metode",
+        "REJECTURL": "Afvis URL",
+        "CLOSE": "Luk",
+        "CLOSEMETHOD": "Luk metode",
+        "CLOSEURL": "Luk URL",
+        "EMBEDDING": "Indstøbning",
+        "GENERAL": "Generel",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "BACK": "Tilbage",
+        "HELP": {
+            "MOTIONADDRESS": "Indtast i følgende format: <protokol>://<ipaddress>[:<port>]. Eksempel: https://X.Y.Z.W"
+        },
+        "ADDRESS": "Adresse",
+        "TIMEOUT": "Timeout",
+        "ONLINESTATE": "Online",
+        "OFFLINESTATE": "Offline",
+        "RATINGSTATE": "Rating stat",
+        "ENQUIRY": "Send forespørgsel",
+        "OFFLINETEMPLATE": "Offline skabelon",
+        "CHATDISPOSITIONS": "Chat Dispositions",
+        "NO_CHATDISPOSITION_AVAILABLE": "Ingen Chat Dispositions tilgængelig",
+        "ADD_CHATDISPOSITION": "Tilføj Chat Disp.",
+        "DELETE": "Slet",
+        "EDIT_CHATDISPOSITION": "Rediger Chat Disp.",
+        "DELETE_CHATDISPOSITION": "Slette Chat Disp.",
+        "CHAT": "Chat",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "Ny Chat kø",
+        "NEW_CHATWEBSITE": "Ny chat hjemmeside",
+        "ROUNDED": "Afrundet",
+        "SQUARED": "Kvadreret",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "ALL_TEAMS": "Alle hold",
+        "SELECTED_TEAMS": "Udvalgte Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/de.json b/public/app/main/apps/chat/i18n/de.json
new file mode 100644 (file)
index 0000000..2bbf2db
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Name",
+        "CHATQUEUES": "Chat-warteschlangen",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "STRATEGY": "Strategie",
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Beschreibung",
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "AGENT_TIMEOUT_REQUIRED": "Der Agent Timeout ist erforderlich",
+            "MOTIONADDRESS_REQUIRED": "Die Adresse ist erforderlich",
+            "MOTIONADDRESS_MUST_VALID_URL": "Die Adresse muss in einem gültigen Format",
+            "ADDRESS_REQUIRED": "Die Adresse ist erforderlich",
+            "ADDRESS_MUST_VALID_URL": "Die Adresse muss in einem gültigen Format",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "Die Weiterleitung der Anfrage Adresse ist erforderlich",
+            "ACCEPTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+            "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+            "REJECTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+            "CLOSEURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format"
+        },
+        "ADD_CHATQUEUE": "Chat Warteschlange hinzufügen",
+        "EDIT_CHATQUEUE": "Chat Warteschlange bearbeiten",
+        "DELETE_CHATQUEUE": "Chat löschen der Warteschlange",
+        "SETTINGS": "Einstellungen",
+        "SAVE": "Speichern",
+        "CREATED_AT": "Erstellt am",
+        "CHATWEBSITES": "Chat Websites",
+        "MOTIONADDRESS": "Motion Adresse",
+        "ADD_CHATWEBSITE": "Chat Website hinzufügen",
+        "EDIT_CHATWEBSITE": "Chat Website bearbeiten.",
+        "DELETE_CHATWEBSITE": "Chat Website löschen.",
+        "LIST": "Liste",
+        "SNIPPET": "Ausschnitt",
+        "FORMS": "Formen",
+        "PROACTIVEACTIONS": "Proaktive Aktionen",
+        "DISPOSITIONS": "Bestimmungen",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Aktionen",
+        "FIDELITY": "Treue",
+        "APPEARANCE": "Aussehen",
+        "MAINCOLOR": "Hauptfarbe",
+        "FOCUSCOLOR": "Schwerpunkt Farbe",
+        "BUTTONCOLOR": "Schaltfläche Farbe",
+        "HEADERSHAPE": "Form des Erntevorsatzes",
+        "ANIMATION": "Animation",
+        "DEFAULT": "Standard",
+        "WHITELABEL": "White Label",
+        "LOGO": "Logo",
+        "DOWNLOADTRANSCRIPT": "Transkript herunterladen.",
+        "ENQUIRY_ENABLE": "Anfrage aktivieren",
+        "ENQUIRY_FORWARDING": "Anfrage weiterleiten",
+        "ENQUIRY_FORWARDING_ADDRESS": "Anfrage Adresse weiterleiten",
+        "LABELS": "Labels",
+        "HEADER_ONLINE": "Online Header",
+        "ONLINE_MESSAGE": "Online Message",
+        "NAME_TITLE": "Name Input Label",
+        "USERNAME_PLACEHOLDER": "Benutzername Eingang Platzhalter",
+        "EMAIL_TITLE": "E-Mail Eingang Label",
+        "EMAIL_PLACEHOLDER": "E-Mail Eingang Platzhalter",
+        "START_CHAT_BUTTON": "'Start' Button Chat",
+        "AGENTS_BUSY": "Nachricht Agenten besetzt",
+        "HEADER_OFFLINE": "Offline Header",
+        "OFFLINE_MESSAGE": "Offline Nachricht",
+        "MESSAGE_TITLE": "Nachricht Label",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Anfrage Nachricht ein Platzhalter",
+        "ENQUIRY_BUTTON": "Anfrage Text auf der Schaltfläche",
+        "RATING_MESSAGE": "Bewertung Nachricht",
+        "RATING_SEND": "Bewertung Senden Text",
+        "RATING_SKIP": "Bewertung Skip Taste Text",
+        "ONLINE": "Online",
+        "OFFLINE": "Offline",
+        "PROACTIVE": "Proaktive",
+        "ACCEPT": "Akzeptieren",
+        "ACCEPTMETHOD": "Die Methode",
+        "ACCEPTURL": "URL akzeptieren",
+        "REJECT": "Ablehnen",
+        "REJECTMETHOD": "Methode ablehnen",
+        "REJECTURL": "URL ablehnen",
+        "CLOSE": "In der Nähe",
+        "CLOSEMETHOD": "In der Nähe Methode",
+        "CLOSEURL": "Der URL",
+        "EMBEDDING": "Einbettung",
+        "GENERAL": "Allgemein",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "BACK": "Zurück",
+        "HELP": {
+            "MOTIONADDRESS": "Bitte geben Sie im folgenden Format ein: &Lt;protocol>://<IP-Adresse>[:<port>]. Beispiel: https://X.Y.Z.W"
+        },
+        "ADDRESS": "Adresse",
+        "TIMEOUT": "Timeout",
+        "ONLINESTATE": "Online Status",
+        "OFFLINESTATE": "Offline Status",
+        "RATINGSTATE": "Bewertung Zustand",
+        "ENQUIRY": "Anfrage",
+        "OFFLINETEMPLATE": "Offline Vorlage",
+        "CHATDISPOSITIONS": "Chat Verfügungen",
+        "NO_CHATDISPOSITION_AVAILABLE": "Kein Chat Dispositionen verfügbar",
+        "ADD_CHATDISPOSITION": "Chat hinzufügen Disposition",
+        "DELETE": "Löschen",
+        "EDIT_CHATDISPOSITION": "Bearbeiten von Chat Disposition",
+        "DELETE_CHATDISPOSITION": "Chat löschen Disposition",
+        "CHAT": "Chat",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "Neuer Chat Queue",
+        "NEW_CHATWEBSITE": "Neuer Chat Website",
+        "ROUNDED": "Gerundet",
+        "SQUARED": "Quadrat",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "ALL_TEAMS": "Alle Mannschaften",
+        "SELECTED_TEAMS": "Ausgewählte Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/en.json b/public/app/main/apps/chat/i18n/en.json
new file mode 100644 (file)
index 0000000..9283525
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Name",
+        "CHATQUEUES": "Chat Queues",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "STRATEGY": "Strategy",
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Description",
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is required",
+            "AGENT_TIMEOUT_REQUIRED": "The Agent Timeout is required",
+            "MOTIONADDRESS_REQUIRED": "The Motion Address is required",
+            "MOTIONADDRESS_MUST_VALID_URL": "The Motion Address must be written in a valid format",
+            "ADDRESS_REQUIRED": "The Address is required",
+            "ADDRESS_MUST_VALID_URL": "The Address must be written in a valid format",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "The Enquiry Forwarding Address is required",
+            "ACCEPTURL_MUST_VALID_URL": "The Accept URL must be written in a valid format",
+            "TIMEOUT_REQUIRED": "The Timeout is required",
+            "REJECTURL_MUST_VALID_URL": "The Reject URL must be written in a valid format",
+            "CLOSEURL_MUST_VALID_URL": "The Close URL must be written in a valid format"
+        },
+        "ADD_CHATQUEUE": "Add Chat Queue",
+        "EDIT_CHATQUEUE": "Edit Chat Queue",
+        "DELETE_CHATQUEUE": "Delete Chat Queue",
+        "SETTINGS": "Settings",
+        "SAVE": "Save",
+        "CREATED_AT": "Created At",
+        "CHATWEBSITES": "Chat Websites",
+        "MOTIONADDRESS": "Motion Address",
+        "ADD_CHATWEBSITE": "Add Chat Website",
+        "EDIT_CHATWEBSITE": "Edit Chat Website",
+        "DELETE_CHATWEBSITE": "Delete Chat Website",
+        "LIST": "List",
+        "SNIPPET": "Snippet",
+        "FORMS": "Forms",
+        "PROACTIVEACTIONS": "Proactive Actions",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Actions",
+        "FIDELITY": "Fidelity",
+        "APPEARANCE": "Appearance",
+        "MAINCOLOR": "Main Color",
+        "FOCUSCOLOR": "Focus Color",
+        "BUTTONCOLOR": "Button Color",
+        "HEADERSHAPE": "Header Shape",
+        "ANIMATION": "Animation",
+        "DEFAULT": "Default",
+        "WHITELABEL": "White Label",
+        "LOGO": "Logo",
+        "DOWNLOADTRANSCRIPT": "Download Transcript",
+        "ENQUIRY_ENABLE": "Enquiry Enable",
+        "ENQUIRY_FORWARDING": "Enquiry Forwarding",
+        "ENQUIRY_FORWARDING_ADDRESS": "Enquiry Forwarding Address",
+        "LABELS": "Labels",
+        "HEADER_ONLINE": "Online Header",
+        "ONLINE_MESSAGE": "Online Message",
+        "NAME_TITLE": "Name Input Label",
+        "USERNAME_PLACEHOLDER": "Username Input Placeholder",
+        "EMAIL_TITLE": "Email Input Label",
+        "EMAIL_PLACEHOLDER": "Email Input Placeholder",
+        "START_CHAT_BUTTON": "'Start Chat' Button",
+        "AGENTS_BUSY": "Busy Agents Message",
+        "HEADER_OFFLINE": "Offline Header",
+        "OFFLINE_MESSAGE": "Offline Message",
+        "MESSAGE_TITLE": "Message Label",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Enquiry Message Input Placeholder",
+        "ENQUIRY_BUTTON": "Enquiry Button Text",
+        "RATING_MESSAGE": "Rating Message",
+        "RATING_SEND": "Rating Send Button Text",
+        "RATING_SKIP": "Rating Skip Button Text",
+        "ONLINE": "Online",
+        "OFFLINE": "Offline",
+        "PROACTIVE": "Proactive",
+        "ACCEPT": "Accept",
+        "ACCEPTMETHOD": "Accept Method",
+        "ACCEPTURL": "Accept URL",
+        "REJECT": "Reject",
+        "REJECTMETHOD": "Reject Method",
+        "REJECTURL": "Reject URL",
+        "CLOSE": "Close",
+        "CLOSEMETHOD": "Close Method",
+        "CLOSEURL": "Close URL",
+        "EMBEDDING": "Embedding",
+        "GENERAL": "General",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "BACK": "Back",
+        "HELP": {
+            "MOTIONADDRESS": "Please, enter in the following format: &lt;protocol&gt;://&lt;ipaddress&gt;[:&lt;port&gt;]. Example: https://X.Y.Z.W"
+        },
+        "ADDRESS": "Address",
+        "TIMEOUT": "Timeout",
+        "ONLINESTATE": "Online State",
+        "OFFLINESTATE": "Offline State",
+        "RATINGSTATE": "Rating State",
+        "ENQUIRY": "Enquiry",
+        "OFFLINETEMPLATE": "Offline Template",
+        "CHATDISPOSITIONS": "Chat Dispositions",
+        "NO_CHATDISPOSITION_AVAILABLE": "No Chat Dispositions available",
+        "ADD_CHATDISPOSITION": "Add Chat Disposition",
+        "DELETE": "Delete",
+        "EDIT_CHATDISPOSITION": "Edit Chat Disposition",
+        "DELETE_CHATDISPOSITION": "Delete Chat Disposition",
+        "CHAT": "Chat",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "New Chat Queue",
+        "NEW_CHATWEBSITE": "New Chat Website",
+        "ROUNDED": "Rounded",
+        "SQUARED": "Squared",
+        "NO_AVAILABLE_INFO": "No available info",
+        "ALL_TEAMS": "All Teams",
+        "SELECTED_TEAMS": "Selected Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/es.json b/public/app/main/apps/chat/i18n/es.json
new file mode 100644 (file)
index 0000000..6556902
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Nombre",
+        "CHATQUEUES": "Colas de chat",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "STRATEGY": "Estrategia",
+        "AGENT_TIMEOUT": "Tiempo de espera del agente",
+        "DESCRIPTION": "Descripción",
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "AGENT_TIMEOUT_REQUIRED": "El agente se requiere tiempo de espera",
+            "MOTIONADDRESS_REQUIRED": "Se requiere una dirección de movimiento",
+            "MOTIONADDRESS_MUST_VALID_URL": "La dirección de movimiento deben escribirse en un formato válido",
+            "ADDRESS_REQUIRED": "La dirección es obligatoria",
+            "ADDRESS_MUST_VALID_URL": "La dirección debe estar escrito en un formato válido",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "La investigación es necesaria la dirección de reenvío",
+            "ACCEPTURL_MUST_VALID_URL": "Aceptar la URL debe estar escrito en un formato válido",
+            "TIMEOUT_REQUIRED": "El tiempo de espera es necesario",
+            "REJECTURL_MUST_VALID_URL": "Rechazar la URL debe estar escrito en un formato válido",
+            "CLOSEURL_MUST_VALID_URL": "La estrecha URL debe ser escrito en un formato válido"
+        },
+        "ADD_CHATQUEUE": "Añadir cola de chat",
+        "EDIT_CHATQUEUE": "Editar cola de chat",
+        "DELETE_CHATQUEUE": "Borrar cola de chat",
+        "SETTINGS": "Configuración",
+        "SAVE": "Guardar",
+        "CREATED_AT": "Creado en",
+        "CHATWEBSITES": "Sitios de Chat",
+        "MOTIONADDRESS": "Dirección de movimiento",
+        "ADD_CHATWEBSITE": "Agregar sitio web chat",
+        "EDIT_CHATWEBSITE": "Editar sitio web chat",
+        "DELETE_CHATWEBSITE": "Borrar Chat Web",
+        "LIST": "Lista",
+        "SNIPPET": "Fragmento",
+        "FORMS": "Formas",
+        "PROACTIVEACTIONS": "Acciones proactivas",
+        "DISPOSITIONS": "Disposiciones",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acciones",
+        "FIDELITY": "Fidelidad",
+        "APPEARANCE": "Apariencia",
+        "MAINCOLOR": "Color principal",
+        "FOCUSCOLOR": "Color de foco",
+        "BUTTONCOLOR": "El color del botón",
+        "HEADERSHAPE": "Forma de cabezal",
+        "ANIMATION": "Animación",
+        "DEFAULT": "Default",
+        "WHITELABEL": "Etiqueta blanca",
+        "LOGO": "Logo",
+        "DOWNLOADTRANSCRIPT": "Descargar la transcripción",
+        "ENQUIRY_ENABLE": "Investigación habilitar",
+        "ENQUIRY_FORWARDING": "Reenvío de investigación",
+        "ENQUIRY_FORWARDING_ADDRESS": "Investigación la dirección de reenvío",
+        "LABELS": "Etiquetas",
+        "HEADER_ONLINE": "Cabezal online",
+        "ONLINE_MESSAGE": "Mensaje en línea",
+        "NAME_TITLE": "Nombre de etiqueta de entrada",
+        "USERNAME_PLACEHOLDER": "Marcador de posición de entrada Nombre de usuario",
+        "EMAIL_TITLE": "Etiqueta de entrada de correo electrónico",
+        "EMAIL_PLACEHOLDER": "Marcador de posición de entrada de correo electrónico",
+        "START_CHAT_BUTTON": "'Chat'",
+        "AGENTS_BUSY": "Mensaje agentes ocupados",
+        "HEADER_OFFLINE": "Cabezal desconectado",
+        "OFFLINE_MESSAGE": "Los mensajes fuera de línea",
+        "MESSAGE_TITLE": "La etiqueta del mensaje",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Mensaje de consulta de marcador de posición de entrada",
+        "ENQUIRY_BUTTON": "Texto del botón de consulta",
+        "RATING_MESSAGE": "Mensaje de calificación",
+        "RATING_SEND": "El texto del botón Enviar calificación",
+        "RATING_SKIP": "Rating Botón Omitir texto",
+        "ONLINE": "Online",
+        "OFFLINE": "Offline",
+        "PROACTIVE": "Proactive",
+        "ACCEPT": "Aceptar",
+        "ACCEPTMETHOD": "Aceptar el método",
+        "ACCEPTURL": "Aceptar URL",
+        "REJECT": "Rechazar",
+        "REJECTMETHOD": "Método de rechazo",
+        "REJECTURL": "Rechazar URL",
+        "CLOSE": "Cerrar",
+        "CLOSEMETHOD": "Método Close",
+        "CLOSEURL": "Cerrar URL",
+        "EMBEDDING": "Incrustación",
+        "GENERAL": "General",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "BACK": "Volver",
+        "HELP": {
+            "MOTIONADDRESS": "Por favor, introduzca en el siguiente formato: &LT;&GT; protocolo://<ipaddress&GT;[:<puerto&GT;]. Ejemplo: https://X.Y.Z.W"
+        },
+        "ADDRESS": "Dirección",
+        "TIMEOUT": "Timeout",
+        "ONLINESTATE": "Estado en línea",
+        "OFFLINESTATE": "Estado desconectado",
+        "RATINGSTATE": "Estado de calificación",
+        "ENQUIRY": "Investigación",
+        "OFFLINETEMPLATE": "Plantilla offline",
+        "CHATDISPOSITIONS": "Disposiciones Chat",
+        "NO_CHATDISPOSITION_AVAILABLE": "Disposiciones Chat no disponible",
+        "ADD_CHATDISPOSITION": "Añadir chat disposicion",
+        "DELETE": "Eliminar",
+        "EDIT_CHATDISPOSITION": "Editar disposición Chat",
+        "DELETE_CHATDISPOSITION": "Eliminar la disposición Chat",
+        "CHAT": "Chat",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "Nueva cola de chat",
+        "NEW_CHATWEBSITE": "Nuevo sitio Web de chat",
+        "ROUNDED": "Redondeado",
+        "SQUARED": "Squared",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "ALL_TEAMS": "Todos los equipos",
+        "SELECTED_TEAMS": "Los equipos seleccionados"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/fa.json b/public/app/main/apps/chat/i18n/fa.json
new file mode 100644 (file)
index 0000000..4ee3f45
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "نام",
+        "CHATQUEUES": "صفهای طولانی چت روم",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "STRATEGY": "استراتژي",
+        "AGENT_TIMEOUT": "عامل زمان مجاز",
+        "DESCRIPTION": "شرح",
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "AGENT_TIMEOUT_REQUIRED": "عامل پایان زمان لازم است.",
+            "MOTIONADDRESS_REQUIRED": "آدرس حركت لازم است.",
+            "MOTIONADDRESS_MUST_VALID_URL": "حركت باید آدرس را در یک فرمت معتبر نوشته شده است",
+            "ADDRESS_REQUIRED": "آدرس مورد نیاز است.",
+            "ADDRESS_MUST_VALID_URL": "آدرس را باید با فرمت معتبر نوشته شده است",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "اين تحقيق باتدبير آدرس مورد نیاز است.",
+            "ACCEPTURL_MUST_VALID_URL": "از پذیرفتن باید آدرس کامل را در یک فرمت معتبر نوشته شده است",
+            "TIMEOUT_REQUIRED": "در پایان زمان لازم است.",
+            "REJECTURL_MUST_VALID_URL": "آدرس کامل را رد كند بايد در فرمت معتبر نوشته شده است",
+            "CLOSEURL_MUST_VALID_URL": "آدرس کامل باید بسته به فرمت معتبر نوشته شده است"
+        },
+        "ADD_CHATQUEUE": "افزودن چت روم صف",
+        "EDIT_CHATQUEUE": "ویرایش چت روم صف",
+        "DELETE_CHATQUEUE": "چت روم صف حذف می شود",
+        "SETTINGS": "تنظیمات",
+        "SAVE": "ذخیره",
+        "CREATED_AT": "ایجاد شده در",
+        "CHATWEBSITES": "وب سایت های چت روم",
+        "MOTIONADDRESS": "حركت آدرس",
+        "ADD_CHATWEBSITE": "افزودن سایت چت روم",
+        "EDIT_CHATWEBSITE": "ویرایش وب سایت چت روم",
+        "DELETE_CHATWEBSITE": "حذف سايت چت روم",
+        "LIST": "فهرست",
+        "SNIPPET": "برشی",
+        "FORMS": "فرم",
+        "PROACTIVEACTIONS": "اقدامات فعالانه تر توبيخ",
+        "DISPOSITIONS": "مكتبى",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "اقدامات",
+        "FIDELITY": "وفاداري",
+        "APPEARANCE": "ظهور",
+        "MAINCOLOR": "رنگ اصلی",
+        "FOCUSCOLOR": "رنگ تمرکز کنید",
+        "BUTTONCOLOR": "رنگ دکمه را فشار دهید",
+        "HEADERSHAPE": "شکل سرصفحه",
+        "ANIMATION": "انيميشن",
+        "DEFAULT": "پیش فرض",
+        "WHITELABEL": "برچسب سفید",
+        "LOGO": "آرم",
+        "DOWNLOADTRANSCRIPT": "برای دانلود متن کامل",
+        "ENQUIRY_ENABLE": "پژوهش فعال",
+        "ENQUIRY_FORWARDING": "تحقيق باتدبير",
+        "ENQUIRY_FORWARDING_ADDRESS": "تحقيق باتدبير آدرس",
+        "LABELS": "برچسب",
+        "HEADER_ONLINE": "آنلاین سرصفحه",
+        "ONLINE_MESSAGE": "پیام آنلاین",
+        "NAME_TITLE": "ورودی نام برچسب ها",
+        "USERNAME_PLACEHOLDER": "ورودی PLACEHOLDER___ نام کاربری",
+        "EMAIL_TITLE": "برچسب ورودی ایمیل",
+        "EMAIL_PLACEHOLDER": "ورودی PLACEHOLDER___ ایمیل",
+        "START_CHAT_BUTTON": "استخراج فایل دکمه چت روم",
+        "AGENTS_BUSY": "ماموران مشغول ارسال پیام",
+        "HEADER_OFFLINE": "آفلاین سرصفحه",
+        "OFFLINE_MESSAGE": "پیام آفلاین",
+        "MESSAGE_TITLE": "برچسب پیام",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "ورودی PLACEHOLDER___ پژوهش پیام",
+        "ENQUIRY_BUTTON": "تحقيق متن دکمه را فشار دهید",
+        "RATING_MESSAGE": "پیام درجه بندی",
+        "RATING_SEND": "دکمه ارسال متن جستجو",
+        "RATING_SKIP": "می توانید از متن دکمه جستجو",
+        "ONLINE": "آنلاین",
+        "OFFLINE": "آفلاین",
+        "PROACTIVE": "فعالانه تر توبيخ",
+        "ACCEPT": "پذیرفتن",
+        "ACCEPTMETHOD": "اين روش را قبول",
+        "ACCEPTURL": "آدرس کامل قبول",
+        "REJECT": "رد كردن",
+        "REJECTMETHOD": "روش رد",
+        "REJECTURL": "آدرس کامل رد",
+        "CLOSE": "بستن",
+        "CLOSEMETHOD": "روش بستن",
+        "CLOSEURL": "آدرس کامل ببندید",
+        "EMBEDDING": "گنجاندن",
+        "GENERAL": "سردار",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "BACK": "پشت",
+        "HELP": {
+            "MOTIONADDRESS": "لطفاً موارد زیر را در آن وارد کنید: &القا فرمت پروتكل&31 دسامبر 2012 جی تی;://&القا ipaddress&31 دسامبر 2012 جی تی;[:&القا درگاه&31 دسامبر 2012 جی تی;] است. مثال: https://X.Y.Z.W"
+        },
+        "ADDRESS": "آدرس",
+        "TIMEOUT": "پایان زمان مجاز",
+        "ONLINESTATE": "حالت آنلاین",
+        "OFFLINESTATE": "حالت آفلاین",
+        "RATINGSTATE": "درجه بندی ایالت",
+        "ENQUIRY": "تحقيق",
+        "OFFLINETEMPLATE": "الگوی آفلاین",
+        "CHATDISPOSITIONS": "مكتبى چت روم",
+        "NO_CHATDISPOSITION_AVAILABLE": "هيچ مكتبى چت روم موجود است",
+        "ADD_CHATDISPOSITION": "افزودن 1626 چت روم",
+        "DELETE": "حذف",
+        "EDIT_CHATDISPOSITION": "ویرایش 1626 چت روم",
+        "DELETE_CHATDISPOSITION": "حذف 1626 چت روم",
+        "CHAT": "چت روم",
+        "ID": "شناسه",
+        "NEW_CHATQUEUE": "چت روم تازه صف",
+        "NEW_CHATWEBSITE": "چت روم سايت جديد",
+        "ROUNDED": "گرد",
+        "SQUARED": "حيث",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "ALL_TEAMS": "همه تیم ها",
+        "SELECTED_TEAMS": "تيم هاي برگزيده"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/fi.json b/public/app/main/apps/chat/i18n/fi.json
new file mode 100644 (file)
index 0000000..6bffb40
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Nimi",
+        "CHATQUEUES": "Chat-jonosta",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "STRATEGY": "Strategia",
+        "AGENT_TIMEOUT": "Agentti aikakatkaisu",
+        "DESCRIPTION": "Kuvaus",
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "AGENT_TIMEOUT_REQUIRED": "Asiakaspalvelijan aikakatkaisu on pakollinen",
+            "MOTIONADDRESS_REQUIRED": "Liikkeen osoite on pakollinen tieto",
+            "MOTIONADDRESS_MUST_VALID_URL": "Liikkeen osoite on kirjoitettava kelvollisessa muodossa",
+            "ADDRESS_REQUIRED": "Osoite on pakollinen",
+            "ADDRESS_MUST_VALID_URL": "Osoite on kirjoitettava kelvollisessa muodossa",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "Tutkimuksen edelleenlähetyksen osoite on pakollinen",
+            "ACCEPTURL_MUST_VALID_URL": "Hyväksy URL on kirjoitettava kelvollisessa muodossa",
+            "TIMEOUT_REQUIRED": "Aikakatkaisujakso on pakollinen",
+            "REJECTURL_MUST_VALID_URL": "Hylätyt URL on kirjoitettava kelvollisessa muodossa",
+            "CLOSEURL_MUST_VALID_URL": "Sulje URL on kirjoitettava kelvollisessa muodossa"
+        },
+        "ADD_CHATQUEUE": "Lisää Chat jono",
+        "EDIT_CHATQUEUE": "Muokkaa Chat jono",
+        "DELETE_CHATQUEUE": "Poista Chat jono",
+        "SETTINGS": "Asetusten määrittäminen",
+        "SAVE": "Tallenna",
+        "CREATED_AT": "Luodaan",
+        "CHATWEBSITES": "Chat-sivustot",
+        "MOTIONADDRESS": "Liikkeen osoite",
+        "ADD_CHATWEBSITE": "Lisää chat-sivusto",
+        "EDIT_CHATWEBSITE": "Muokkaa chat-sivusto",
+        "DELETE_CHATWEBSITE": "Poista chat-sivusto",
+        "LIST": "Luettelo",
+        "SNIPPET": "Näytteen",
+        "FORMS": "Lomakkeet",
+        "PROACTIVEACTIONS": "Ennakoivat toimet",
+        "DISPOSITIONS": "Yhteisyys",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Toimet",
+        "FIDELITY": "Epätarkkaan äänentoistoon",
+        "APPEARANCE": "Ulkoasu",
+        "MAINCOLOR": "Värin",
+        "FOCUSCOLOR": "Kohdistusväriä",
+        "BUTTONCOLOR": "Painike",
+        "HEADERSHAPE": "Otsikon muoto",
+        "ANIMATION": "Animaatio",
+        "DEFAULT": "Oletus",
+        "WHITELABEL": "Valkoinen tarra",
+        "LOGO": "Logo",
+        "DOWNLOADTRANSCRIPT": "Lataa raportti",
+        "ENQUIRY_ENABLE": "Kyselyn avulla",
+        "ENQUIRY_FORWARDING": "Kyselyn välitys",
+        "ENQUIRY_FORWARDING_ADDRESS": "Kyselyn edelleenlähetyksen osoite",
+        "LABELS": "Nimet",
+        "HEADER_ONLINE": "Online-otsikko",
+        "ONLINE_MESSAGE": "Online-viesti",
+        "NAME_TITLE": "Nimi Input tarra",
+        "USERNAME_PLACEHOLDER": "Käyttäjätunnus Input odottelukuva",
+        "EMAIL_TITLE": "Sähköpostin käytön tarra",
+        "EMAIL_PLACEHOLDER": "Sähköpostin käytön odottelukuva",
+        "START_CHAT_BUTTON": "Aloita chat-painiketta",
+        "AGENTS_BUSY": "Varattu agentit viesti",
+        "HEADER_OFFLINE": "Offline-otsikko",
+        "OFFLINE_MESSAGE": "Offline-viesti",
+        "MESSAGE_TITLE": "Viesti nimi",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Kyselyn viesti paikanvaraajan asettelu",
+        "ENQUIRY_BUTTON": "Tutkimuksen teksti painike",
+        "RATING_MESSAGE": "Rating viesti",
+        "RATING_SEND": "Rating Lähetä-painikkeen teksti",
+        "RATING_SKIP": "Rating Ohituspainike teksti",
+        "ONLINE": "Verkossa",
+        "OFFLINE": "Offline-tilassa",
+        "PROACTIVE": "Ennakoiva",
+        "ACCEPT": "Hyväksy",
+        "ACCEPTMETHOD": "Hyväksy menetelmä",
+        "ACCEPTURL": "Hyväksy URL",
+        "REJECT": "Hylkää",
+        "REJECTMETHOD": "Hylkää menetelmä",
+        "REJECTURL": "Hylkää URL",
+        "CLOSE": "Sulje",
+        "CLOSEMETHOD": "Sulje menetelmä",
+        "CLOSEURL": "Sulje URL",
+        "EMBEDDING": "Upotuksen",
+        "GENERAL": "Yleistä",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "BACK": "Takaisin",
+        "HELP": {
+            "MOTIONADDRESS": "Anna seuraavassa muodossa: <protokolla>://<ipaddress>[:<port>]. Esimerkki: https://X.Y.Z.W"
+        },
+        "ADDRESS": "Osoite",
+        "TIMEOUT": "Aikakatkaisu",
+        "ONLINESTATE": "Online-tilassa",
+        "OFFLINESTATE": "Offline-tilassa",
+        "RATINGSTATE": "Valtion luokitus",
+        "ENQUIRY": "Tutkimus",
+        "OFFLINETEMPLATE": "Offline-malli",
+        "CHATDISPOSITIONS": "Chat yhteisyys",
+        "NO_CHATDISPOSITION_AVAILABLE": "Mitään Chat yhteisyys käytettävissä",
+        "ADD_CHATDISPOSITION": "Lisää Chat jatkokäsittely",
+        "DELETE": "Poista",
+        "EDIT_CHATDISPOSITION": "Muokkaa Chat jatkokäsittely",
+        "DELETE_CHATDISPOSITION": "Poista Chat jatkokäsittely",
+        "CHAT": "Chat",
+        "ID": "Tunnus",
+        "NEW_CHATQUEUE": "Uusi Chat jono",
+        "NEW_CHATWEBSITE": "Uusi chat-sivusto",
+        "ROUNDED": "Pyöristetty",
+        "SQUARED": "Korrelaatiokertoimen neliö",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "ALL_TEAMS": "Kaikki joukkueet",
+        "SELECTED_TEAMS": "Valittu työryhmille"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/fr.json b/public/app/main/apps/chat/i18n/fr.json
new file mode 100644 (file)
index 0000000..884b155
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Nom",
+        "CHATQUEUES": "Files d'attente de discussion",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "STRATEGY": "Stratégie",
+        "AGENT_TIMEOUT": "Délai d'agent",
+        "DESCRIPTION": "Description",
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "AGENT_TIMEOUT_REQUIRED": "L'Agent est nécessaire",
+            "MOTIONADDRESS_REQUIRED": "La motion est nécessaire",
+            "MOTIONADDRESS_MUST_VALID_URL": "La motion doit être écrit dans un format valide",
+            "ADDRESS_REQUIRED": "L'adresse est nécessaire",
+            "ADDRESS_MUST_VALID_URL": "L'adresse doit être écrite dans un format valide",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "L'enquête de l'adresse de transfert est nécessaire",
+            "ACCEPTURL_MUST_VALID_URL": "Accepter l'URL doit être écrit dans un format valide",
+            "TIMEOUT_REQUIRED": "Le délai est nécessaire",
+            "REJECTURL_MUST_VALID_URL": "Rejeter l'URL doit être écrit dans un format valide",
+            "CLOSEURL_MUST_VALID_URL": "Fermer l'URL doit être écrit dans un format valide"
+        },
+        "ADD_CHATQUEUE": "Ajouter attente de discussion",
+        "EDIT_CHATQUEUE": "Attente de discussion modifier",
+        "DELETE_CHATQUEUE": "Attente de discussion supprimer",
+        "SETTINGS": "Settings",
+        "SAVE": "Sauvegarder",
+        "CREATED_AT": "Créé à",
+        "CHATWEBSITES": "Sites web de chat",
+        "MOTIONADDRESS": "Adresse Motion",
+        "ADD_CHATWEBSITE": "Ajouter le site Web de Chat",
+        "EDIT_CHATWEBSITE": "Site Web Chat Modifier",
+        "DELETE_CHATWEBSITE": "Supprimer le site Web de Chat",
+        "LIST": "Liste",
+        "SNIPPET": "Snippet",
+        "FORMS": "Formes",
+        "PROACTIVEACTIONS": "Des actions proactives",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Actions",
+        "FIDELITY": "Fidelity",
+        "APPEARANCE": "Apparence",
+        "MAINCOLOR": "Couleur principale",
+        "FOCUSCOLOR": "Couleur accent",
+        "BUTTONCOLOR": "La couleur des boutons",
+        "HEADERSHAPE": "La forme d'en-tête",
+        "ANIMATION": "Animation",
+        "DEFAULT": "Valeur par défaut",
+        "WHITELABEL": "White Label",
+        "LOGO": "Logo",
+        "DOWNLOADTRANSCRIPT": "Télécharger la transcription",
+        "ENQUIRY_ENABLE": "Activer l'enquête",
+        "ENQUIRY_FORWARDING": "Renvoi d'enquête",
+        "ENQUIRY_FORWARDING_ADDRESS": "Enquête de l'adresse de transfert",
+        "LABELS": "Étiquettes",
+        "HEADER_ONLINE": "En-tête en ligne",
+        "ONLINE_MESSAGE": "Message en ligne",
+        "NAME_TITLE": "Étiquette d'entrée de nom",
+        "USERNAME_PLACEHOLDER": "Espace réservé d'entrée d'utilisateur",
+        "EMAIL_TITLE": "Input Label e-mail",
+        "EMAIL_PLACEHOLDER": "Espace réservé E-mail commentaires",
+        "START_CHAT_BUTTON": "Bouton 'Start Chat'",
+        "AGENTS_BUSY": "Message Agents occupés",
+        "HEADER_OFFLINE": "En-tête hors ligne",
+        "OFFLINE_MESSAGE": "Message hors ligne",
+        "MESSAGE_TITLE": "Étiquette de message",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Message enquête Espace réservé d'entrée",
+        "ENQUIRY_BUTTON": "Texte bouton enquête",
+        "RATING_MESSAGE": "Message de cotation",
+        "RATING_SEND": "0 bouton Send Text",
+        "RATING_SKIP": "0 Bouton Skip To Text",
+        "ONLINE": "En ligne",
+        "OFFLINE": "Offline",
+        "PROACTIVE": "Divulgation proactive",
+        "ACCEPT": "Accepter",
+        "ACCEPTMETHOD": "Méthode d'accepter",
+        "ACCEPTURL": "Accepter URL",
+        "REJECT": "Rejeter",
+        "REJECTMETHOD": "Méthode de rejet",
+        "REJECTURL": "Rejeter les URL",
+        "CLOSE": "Fermer",
+        "CLOSEMETHOD": "Méthode Close",
+        "CLOSEURL": "URL Fermer",
+        "EMBEDDING": "L'intégration",
+        "GENERAL": "Général",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "BACK": "Retour",
+        "HELP": {
+            "MOTIONADDRESS": "S'il vous plaît, entrez dans le format suivant : <protocol&gt ; ://<ipaddress&gt ;[ :<port&gt ;]. Exemple : https://X.Y.Z.W"
+        },
+        "ADDRESS": "Répondre",
+        "TIMEOUT": "Timeout",
+        "ONLINESTATE": "L'état en ligne",
+        "OFFLINESTATE": "Hors ligne",
+        "RATINGSTATE": "L'état d'évaluation",
+        "ENQUIRY": "Enquête",
+        "OFFLINETEMPLATE": "Modèle hors ligne",
+        "CHATDISPOSITIONS": "Dispositions de chat",
+        "NO_CHATDISPOSITION_AVAILABLE": "Pas de dispositions de Chat disponible",
+        "ADD_CHATDISPOSITION": "Ajouter la disposition de Chat",
+        "DELETE": "Supprimer",
+        "EDIT_CHATDISPOSITION": "Modifier la disposition de Chat",
+        "DELETE_CHATDISPOSITION": "Supprimer la disposition de Chat",
+        "CHAT": "Chat",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "Nouveau Chat Queue",
+        "NEW_CHATWEBSITE": "Nouveau site Web de Chat",
+        "ROUNDED": "Arrondi",
+        "SQUARED": "Squared",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "ALL_TEAMS": "Toutes les équipes",
+        "SELECTED_TEAMS": "Les équipes sélectionnées"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/hi.json b/public/app/main/apps/chat/i18n/hi.json
new file mode 100644 (file)
index 0000000..c568683
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "नाम",
+        "CHATQUEUES": "चैट कतार",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "STRATEGY": "रणनीति",
+        "AGENT_TIMEOUT": "एजेंट समयबाह्य",
+        "DESCRIPTION": "वर्णन",
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "AGENT_TIMEOUT_REQUIRED": "एजेंट समयबाह्य अपेक्षित है।",
+            "MOTIONADDRESS_REQUIRED": "अभिभाषण के प्रस्ताव की आवश्यकता है।",
+            "MOTIONADDRESS_MUST_VALID_URL": "यह प्रस्ताव एक मान्य स्वरूप में लिखा होना पता",
+            "ADDRESS_REQUIRED": "इस अभिभाषण की आवश्यकता है।",
+            "ADDRESS_MUST_VALID_URL": "पता मान्य स्वरूप में लिखा होना",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "अग्रेषित करें पता की जांच की आवश्यकता है।",
+            "ACCEPTURL_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना URL को स्वीकार करें",
+            "TIMEOUT_REQUIRED": "इस समय की आवश्यकता है।",
+            "REJECTURL_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना URL को अस्वीकार करें",
+            "CLOSEURL_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना URL के निकट"
+        },
+        "ADD_CHATQUEUE": "चैट कतार में जोड़ें",
+        "EDIT_CHATQUEUE": "चैट कतार संपादित करें",
+        "DELETE_CHATQUEUE": "चैट हटाएं कतार",
+        "SETTINGS": "सेटिंग्स",
+        "SAVE": "सहेजें",
+        "CREATED_AT": "सृजित",
+        "CHATWEBSITES": "चैट विषय",
+        "MOTIONADDRESS": "प्रस्ताव के पते",
+        "ADD_CHATWEBSITE": "चैट वेबसाइट पर जोड़ें",
+        "EDIT_CHATWEBSITE": "चैट वेबसाइट को संपादित करें",
+        "DELETE_CHATWEBSITE": "चैट हटाएं वेबसाइट",
+        "LIST": "की सूची",
+        "SNIPPET": "Snippet",
+        "FORMS": "रूपों",
+        "PROACTIVEACTIONS": "सक्रिय क्रियाएं",
+        "DISPOSITIONS": "प्रवृतियों",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "क्रियाएं",
+        "FIDELITY": "वास्तविक",
+        "APPEARANCE": "दिखायी",
+        "MAINCOLOR": "मुख्य रंग",
+        "FOCUSCOLOR": "केन्द्रित रंग",
+        "BUTTONCOLOR": "रंग बटन",
+        "HEADERSHAPE": "शीर्षलेख आकार",
+        "ANIMATION": "ऐनिमेशन",
+        "DEFAULT": "डिफ़ॉल्ट",
+        "WHITELABEL": "सफेद लेबल",
+        "LOGO": "लोगो",
+        "DOWNLOADTRANSCRIPT": "लिप्यांतरण डाउनलोड करें",
+        "ENQUIRY_ENABLE": "जांच कर सकें।",
+        "ENQUIRY_FORWARDING": "जांच अग्रेषण",
+        "ENQUIRY_FORWARDING_ADDRESS": "अग्रेषित करें पता जांच",
+        "LABELS": "लेबल",
+        "HEADER_ONLINE": "ऑनलाइन शीर्षलेख",
+        "ONLINE_MESSAGE": "ऑनलाइन संदेश",
+        "NAME_TITLE": "नाम इनपुट लेबल",
+        "USERNAME_PLACEHOLDER": "उपयोगकर्ता इनपुट प्लेसहोल्डर मौजूद",
+        "EMAIL_TITLE": "ईमेल इनपुट लेबल",
+        "EMAIL_PLACEHOLDER": "ईमेल इनपुट प्लेसहोल्डर मौजूद",
+        "START_CHAT_BUTTON": "'स् चैट' बटन",
+        "AGENTS_BUSY": "व् यस् त एजेंट संदेश",
+        "HEADER_OFFLINE": "ऑफ़लाइन शीर्षलेख",
+        "OFFLINE_MESSAGE": "ऑफ़लाइन संदेश",
+        "MESSAGE_TITLE": "संदेश लेबल",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "जांच संदेश इनपुट प्लेसहोल्डर मौजूद",
+        "ENQUIRY_BUTTON": "जांच बटन पाठ",
+        "RATING_MESSAGE": "रेटिंग संदेश",
+        "RATING_SEND": "रेटिंग भेजें बटन का पाठ",
+        "RATING_SKIP": "रेटिंग स्किप करें बटन का पाठ",
+        "ONLINE": "ऑनलाइन",
+        "OFFLINE": "ऑफ़लाइन",
+        "PROACTIVE": "सक्रिय",
+        "ACCEPT": "स्वीकार करना",
+        "ACCEPTMETHOD": "तरीका स्वीकार करें",
+        "ACCEPTURL": "स्वीकार किए गए URL",
+        "REJECT": "अस्वीकार करना",
+        "REJECTMETHOD": "अस्वीकार पद्धति",
+        "REJECTURL": "URL अस्वीकार करें",
+        "CLOSE": "निकट",
+        "CLOSEMETHOD": "निकट पद्धति",
+        "CLOSEURL": "बंद किए गए URL",
+        "EMBEDDING": "तलशिला",
+        "GENERAL": "सामान्य",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "BACK": "वापिस",
+        "HELP": {
+            "MOTIONADDRESS": "कृपया, निम्नलिखित आरूप में दर्ज करें: < ://. एण्ड lt वंशवृक्ष प्रोटोकॉल एंड अधम सिखाता है; अधम एवं ipaddress[: एंड lt वंशवृक्ष पत्तन एवं अधम;]। उदाहरण के लिए: https://X.Y.Z.W"
+        },
+        "ADDRESS": "पता",
+        "TIMEOUT": "समयबाह्य",
+        "ONLINESTATE": "ऑनलाइन राज्य",
+        "OFFLINESTATE": "ऑफ़लाइन राज्य",
+        "RATINGSTATE": "रेटिंग राज्य",
+        "ENQUIRY": "जांच",
+        "OFFLINETEMPLATE": "ऑफ़लाइन टेम्पलेट",
+        "CHATDISPOSITIONS": "चैट प्रवृतियों",
+        "NO_CHATDISPOSITION_AVAILABLE": "चैट प्रवृतियों उपलब्ध नहीं",
+        "ADD_CHATDISPOSITION": "चैट मिजाज जोड़ें",
+        "DELETE": "हटाना",
+        "EDIT_CHATDISPOSITION": "चैट मिजाज संपादित करें",
+        "DELETE_CHATDISPOSITION": "सरकारीतंत्र चैट हटाएं",
+        "CHAT": "चैट",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "नई चैट कतार",
+        "NEW_CHATWEBSITE": "नई चैट वेबसाइट",
+        "ROUNDED": "लडें",
+        "SQUARED": "निश्चय ही",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "ALL_TEAMS": "सभी टीमें भाग लेंगी।",
+        "SELECTED_TEAMS": "चयनित टीम"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/it.json b/public/app/main/apps/chat/i18n/it.json
new file mode 100644 (file)
index 0000000..d0502ca
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Nome",
+        "CHATQUEUES": "Code Chat",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "STRATEGY": "Strategia",
+        "AGENT_TIMEOUT": "Timeout Agente",
+        "DESCRIPTION": "Descrizione",
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "AGENT_TIMEOUT_REQUIRED": "Il Timeout Agente è richiesto",
+            "MOTIONADDRESS_REQUIRED": "L' Indirizzo Motion è richiesto",
+            "MOTIONADDRESS_MUST_VALID_URL": "L' indirizzo motion deve essere in un formato valido",
+            "ADDRESS_REQUIRED": "L' Indirizzo è richiesto",
+            "ADDRESS_MUST_VALID_URL": "L' indirizzo deve essere in un formato valido",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "L'indirizzo di inoltro Enquiry è richiesto",
+            "ACCEPTURL_MUST_VALID_URL": "L'URL Accetta deve essere in un formato valido",
+            "TIMEOUT_REQUIRED": "Il Timeout è richiesto",
+            "REJECTURL_MUST_VALID_URL": "L'URL Rifiuta deve essere in un formato valido",
+            "CLOSEURL_MUST_VALID_URL": "L'URL Chiudi deve essere in un formato valido"
+        },
+        "ADD_CHATQUEUE": "Aggiungi Coda Chat",
+        "EDIT_CHATQUEUE": "Modifica Coda Chat",
+        "DELETE_CHATQUEUE": "Elimina Coda Chat",
+        "SETTINGS": "Impostazioni",
+        "SAVE": "Salva",
+        "CREATED_AT": "Creato il",
+        "CHATWEBSITES": "Siti Web",
+        "MOTIONADDRESS": "Indirizzo Motion",
+        "ADD_CHATWEBSITE": "Aggiungi Sito Web",
+        "EDIT_CHATWEBSITE": "Modifica Sito Web",
+        "DELETE_CHATWEBSITE": "Elimina Sito Web",
+        "LIST": "Lista",
+        "SNIPPET": "Snippet",
+        "FORMS": "Form",
+        "PROACTIVEACTIONS": "Azioni Proattive",
+        "DISPOSITIONS": "Esiti",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Azioni",
+        "FIDELITY": "Fidelity",
+        "APPEARANCE": "Aspetto",
+        "MAINCOLOR": "Colore Principale",
+        "FOCUSCOLOR": "Colore Focus",
+        "BUTTONCOLOR": "Colore Bottoni",
+        "HEADERSHAPE": "Forma Header",
+        "ANIMATION": "Animazione",
+        "DEFAULT": "Default",
+        "WHITELABEL": "White Label",
+        "LOGO": "Logo",
+        "DOWNLOADTRANSCRIPT": "Scarica Trascrizione Chat",
+        "ENQUIRY_ENABLE": "Abilita Enquiry",
+        "ENQUIRY_FORWARDING": "Inoltro Enquiry",
+        "ENQUIRY_FORWARDING_ADDRESS": "Indirizzo di inoltro Enquiry",
+        "LABELS": "Etichette",
+        "HEADER_ONLINE": "Header quando Online",
+        "ONLINE_MESSAGE": "Messaggio di Online",
+        "NAME_TITLE": "Etichetta Input Nome",
+        "USERNAME_PLACEHOLDER": "Placeholder Input Nome",
+        "EMAIL_TITLE": "Etichetta Input Email",
+        "EMAIL_PLACEHOLDER": "Placeholder Input Email",
+        "START_CHAT_BUTTON": "Testo bottone 'Inizia Chat'",
+        "AGENTS_BUSY": "Messaggio Agenti Occupati",
+        "HEADER_OFFLINE": "Header quando Offline",
+        "OFFLINE_MESSAGE": "Messaggio di Offline",
+        "MESSAGE_TITLE": "Label input Messaggio",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Placeholder Input Messaggio di Enquiry",
+        "ENQUIRY_BUTTON": "Testo bottone Enquiry",
+        "RATING_MESSAGE": "Messaggio Valutazione",
+        "RATING_SEND": "Testo bottone 'Invia Valutazione'",
+        "RATING_SKIP": "Testo bottone 'Salta Valutazione'",
+        "ONLINE": "Online",
+        "OFFLINE": "Offline",
+        "PROACTIVE": "Proattiva",
+        "ACCEPT": "Accetta",
+        "ACCEPTMETHOD": "Metodo Accetta",
+        "ACCEPTURL": "URL Accetta",
+        "REJECT": "Rifiuta",
+        "REJECTMETHOD": "Metodo Rifiuta",
+        "REJECTURL": "URL Rifiuta",
+        "CLOSE": "Chiudi",
+        "CLOSEMETHOD": "Metodo Chiudi",
+        "CLOSEURL": "URL Chiudi",
+        "EMBEDDING": "Embedding",
+        "GENERAL": "Generale",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutti",
+        "SELECT_NONE": "Deseleziona tutti",
+        "BACK": "Indietro",
+        "HELP": {
+            "MOTIONADDRESS": "Inserire nel seguente formato: &lt;protocollo&gt;://&lt;indirizzoIP&gt;[:&lt;porta&gt;]. Es: https://X.Y.Z.W"
+        },
+        "ADDRESS": "Indirizzo",
+        "TIMEOUT": "Timeout",
+        "ONLINESTATE": "Stato Online",
+        "OFFLINESTATE": "Stato Offline",
+        "RATINGSTATE": "Stato Rating",
+        "ENQUIRY": "Enquiry",
+        "OFFLINETEMPLATE": "Template Offline",
+        "CHATDISPOSITIONS": "Esiti Chat",
+        "NO_CHATDISPOSITION_AVAILABLE": "Nessun esito disponibile ",
+        "ADD_CHATDISPOSITION": "Aggiungi Esito Chat",
+        "DELETE": "Elimina",
+        "EDIT_CHATDISPOSITION": "Modifica Esito Chat",
+        "DELETE_CHATDISPOSITION": "Elimina Esito Chat",
+        "CHAT": "Chat",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "Nuova Coda chat",
+        "NEW_CHATWEBSITE": "Nuovo Sito Chat",
+        "ROUNDED": "Arrotondato",
+        "SQUARED": "Squadrato",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "ALL_TEAMS": "Tutti i Team",
+        "SELECTED_TEAMS": "Team selezionati"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/ja.json b/public/app/main/apps/chat/i18n/ja.json
new file mode 100644 (file)
index 0000000..46c2aff
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "名",
+        "CHATQUEUES": "チャットキューの",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "STRATEGY": "戦略",
+        "AGENT_TIMEOUT": "エージェントのタイムアウト",
+        "DESCRIPTION": "説明",
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "AGENT_TIMEOUT_REQUIRED": "エージェントのタイムアウトが必要",
+            "MOTIONADDRESS_REQUIRED": "モーションのアドレスが必要です",
+            "MOTIONADDRESS_MUST_VALID_URL": "モーションアドレスが有効な形式で記述する必要があります",
+            "ADDRESS_REQUIRED": "アドレスが必要",
+            "ADDRESS_MUST_VALID_URL": "アドレスは有効な形式で記述する必要があります",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "お問い合わせは、転送先のアドレスが必要です",
+            "ACCEPTURL_MUST_VALID_URL": "「同意します URL に有効な形式で記述する必要があります",
+            "TIMEOUT_REQUIRED": "タイムアウトは必須です",
+            "REJECTURL_MUST_VALID_URL": "拒否 URL に有効な形式で記述する必要があります",
+            "CLOSEURL_MUST_VALID_URL": "閉じる URL を指定します。有効な形式で記述する必要があります"
+        },
+        "ADD_CHATQUEUE": "チャットキューの追加",
+        "EDIT_CHATQUEUE": "編集チャットキュー",
+        "DELETE_CHATQUEUE": "チャットキューの削除",
+        "SETTINGS": "の設定",
+        "SAVE": "保存",
+        "CREATED_AT": "で作成された",
+        "CHATWEBSITES": "チャット Web サイト",
+        "MOTIONADDRESS": "モーションのアドレス",
+        "ADD_CHATWEBSITE": "チャット Web サイトを追加します。",
+        "EDIT_CHATWEBSITE": "編集チャット Web サイト",
+        "DELETE_CHATWEBSITE": "チャットの Web サイトを削除",
+        "LIST": "リスト",
+        "SNIPPET": "スニペット",
+        "FORMS": "フォーム",
+        "PROACTIVEACTIONS": "プロアクティブなアクションを",
+        "DISPOSITIONS": "ディスポジション",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "アクション",
+        "FIDELITY": "忠実性",
+        "APPEARANCE": "外観",
+        "MAINCOLOR": "メインカラー",
+        "FOCUSCOLOR": "フォーカスの色",
+        "BUTTONCOLOR": "ボタンの色",
+        "HEADERSHAPE": "ヘッダーの形",
+        "ANIMATION": "アニメーション",
+        "DEFAULT": "デフォルト",
+        "WHITELABEL": "ホワイトラベル",
+        "LOGO": "ロゴ",
+        "DOWNLOADTRANSCRIPT": "チャット内容のコピーのダウンロード",
+        "ENQUIRY_ENABLE": "お問い合わせを有効にする",
+        "ENQUIRY_FORWARDING": "お問い合わせの転送",
+        "ENQUIRY_FORWARDING_ADDRESS": "お問い合わせの転送アドレス",
+        "LABELS": "ラベル",
+        "HEADER_ONLINE": "オンラインヘッダー",
+        "ONLINE_MESSAGE": "オンラインメッセージ",
+        "NAME_TITLE": "名前入力ラベル",
+        "USERNAME_PLACEHOLDER": "ユーザ名の入力プレースホルダー",
+        "EMAIL_TITLE": "メール入力ラベル",
+        "EMAIL_PLACEHOLDER": "メールの入力プレースホルダー",
+        "START_CHAT_BUTTON": "の「スタートチャット」ボタン",
+        "AGENTS_BUSY": "ビジーなエージェントのメッセージ",
+        "HEADER_OFFLINE": "オフラインのヘッダー",
+        "OFFLINE_MESSAGE": "オフラインメッセージ",
+        "MESSAGE_TITLE": "メッセージラベル",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "問い合わせメッセージ入力プレースホルダー",
+        "ENQUIRY_BUTTON": "お問い合わせボタンのテキスト",
+        "RATING_MESSAGE": "評価メッセージ",
+        "RATING_SEND": "レーティングボタンのテキストを送信する",
+        "RATING_SKIP": "評価をスキップボタンのテキスト",
+        "ONLINE": "オンライン",
+        "OFFLINE": "オフライン",
+        "PROACTIVE": "プロアクティブ",
+        "ACCEPT": "受け入れる",
+        "ACCEPTMETHOD": "方法を受け入れる",
+        "ACCEPTURL": "URL を受け入れ",
+        "REJECT": "拒否",
+        "REJECTMETHOD": "拒否メソッド",
+        "REJECTURL": "拒否 URL",
+        "CLOSE": "閉じる",
+        "CLOSEMETHOD": "Close メソッド",
+        "CLOSEURL": "閉じる URL",
+        "EMBEDDING": "埋め込み",
+        "GENERAL": "一般的な",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "BACK": "背面",
+        "HELP": {
+            "MOTIONADDRESS": "には、次の形式で次のように入力します。 lt & ; プロトコル & gt ; : / / & lt ; ipaddress & gt ; [ : & lt ; ポート & gt ; ] してください。 例: https://X.Y.Z.W"
+        },
+        "ADDRESS": "アドレス",
+        "TIMEOUT": "タイムアウト",
+        "ONLINESTATE": "オンライン状態",
+        "OFFLINESTATE": "オフライン状態",
+        "RATINGSTATE": "定格状態",
+        "ENQUIRY": "お問い合わせ",
+        "OFFLINETEMPLATE": "オフラインのテンプレート",
+        "CHATDISPOSITIONS": "チャットのディスポジション",
+        "NO_CHATDISPOSITION_AVAILABLE": "チャットのディスポジションを使用できません",
+        "ADD_CHATDISPOSITION": "チャットのディスポジションの追加 ]",
+        "DELETE": "削除",
+        "EDIT_CHATDISPOSITION": "チャット編集処理",
+        "DELETE_CHATDISPOSITION": "チャットのディスポジションを削除",
+        "CHAT": "チャット",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "新しいチャットキュー",
+        "NEW_CHATWEBSITE": "新しいチャットの Web サイト",
+        "ROUNDED": "丸みを帯びた",
+        "SQUARED": "直角に仕上げ",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "ALL_TEAMS": "すべてのチーム",
+        "SELECTED_TEAMS": "選択したチーム"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/ko.json b/public/app/main/apps/chat/i18n/ko.json
new file mode 100644 (file)
index 0000000..46e26da
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "이름",
+        "CHATQUEUES": "채팅 대기열에",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "STRATEGY": "전략",
+        "AGENT_TIMEOUT": "상담원 시간 초과",
+        "DESCRIPTION": "설명",
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "AGENT_TIMEOUT_REQUIRED": "상담원은 제한 시간이 필요합니다.",
+            "MOTIONADDRESS_REQUIRED": "동작 주소가 필요합니다.",
+            "MOTIONADDRESS_MUST_VALID_URL": "동작 주소에 유효한 형식으로 작성되어 있어야 합니다",
+            "ADDRESS_REQUIRED": "주소가 필요합니다.",
+            "ADDRESS_MUST_VALID_URL": "주소가 유효한 형식으로 작성되어 있어야 합니다",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "이글스가 전달 주소가 필요합니다.",
+            "ACCEPTURL_MUST_VALID_URL": "동의함 URL 유효한 형식으로 작성되어 있어야 합니다",
+            "TIMEOUT_REQUIRED": "시간 제한이 필요합니다.",
+            "REJECTURL_MUST_VALID_URL": "거부 URL 유효한 형식으로 작성되어 있어야 합니다",
+            "CLOSEURL_MUST_VALID_URL": "닫기 URL 유효한 형식으로 작성되어 있어야 합니다"
+        },
+        "ADD_CHATQUEUE": "채팅 대기열에 추가",
+        "EDIT_CHATQUEUE": "채팅 편집 대기",
+        "DELETE_CHATQUEUE": "채팅 큐에 삭제",
+        "SETTINGS": "설정",
+        "SAVE": "저장",
+        "CREATED_AT": "생성",
+        "CHATWEBSITES": "채팅 사이트",
+        "MOTIONADDRESS": "모션 주소",
+        "ADD_CHATWEBSITE": "웹 사이트 추가하기",
+        "EDIT_CHATWEBSITE": "채팅 편집 웹 사이트",
+        "DELETE_CHATWEBSITE": "채팅 사이트 삭제",
+        "LIST": "목록",
+        "SNIPPET": "조각",
+        "FORMS": "양식",
+        "PROACTIVEACTIONS": "사전 예방 조치",
+        "DISPOSITIONS": "의향",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "동작",
+        "FIDELITY": "정확도",
+        "APPEARANCE": "외관",
+        "MAINCOLOR": "기본 색상",
+        "FOCUSCOLOR": "컬러",
+        "BUTTONCOLOR": "색상 버튼",
+        "HEADERSHAPE": "헤더 모양",
+        "ANIMATION": "애니메이션",
+        "DEFAULT": "기본",
+        "WHITELABEL": "흰색 라벨",
+        "LOGO": "로고",
+        "DOWNLOADTRANSCRIPT": "대본 다운로드",
+        "ENQUIRY_ENABLE": "조회 활성화",
+        "ENQUIRY_FORWARDING": "문의 전달",
+        "ENQUIRY_FORWARDING_ADDRESS": "문의 전달 주소",
+        "LABELS": "라벨",
+        "HEADER_ONLINE": "온라인 헤더",
+        "ONLINE_MESSAGE": "온라인 메시지",
+        "NAME_TITLE": "이름 입력 레이블",
+        "USERNAME_PLACEHOLDER": "사용자 이름 입력 자리 표시자",
+        "EMAIL_TITLE": "이메일 입력 레이블",
+        "EMAIL_PLACEHOLDER": "이메일 입력 자리 표시자",
+        "START_CHAT_BUTTON": "채팅 시작' 버튼을 클릭하여 '",
+        "AGENTS_BUSY": "바쁜 에이전트에게 메시지",
+        "HEADER_OFFLINE": "오프라인 헤더",
+        "OFFLINE_MESSAGE": "오프라인 메시지",
+        "MESSAGE_TITLE": "메시지 레이블은",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "문의 메시지 입력 자리 표시자",
+        "ENQUIRY_BUTTON": "조회 단추 텍스트",
+        "RATING_MESSAGE": "등급 메시지",
+        "RATING_SEND": "등급 단추 텍스트를 보냅니다.",
+        "RATING_SKIP": "등급 건너뛰기 단추 텍스트",
+        "ONLINE": "온라인",
+        "OFFLINE": "오프라인",
+        "PROACTIVE": "사전",
+        "ACCEPT": "수락",
+        "ACCEPTMETHOD": "승인 방법",
+        "ACCEPTURL": "Url 승인",
+        "REJECT": "거부",
+        "REJECTMETHOD": "거부 방법",
+        "REJECTURL": "Reject URL",
+        "CLOSE": "닫기",
+        "CLOSEMETHOD": "Close 메서드",
+        "CLOSEURL": "닫기 URL",
+        "EMBEDDING": "임베드",
+        "GENERAL": "일반",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "BACK": "후면",
+        "HELP": {
+            "MOTIONADDRESS": "다음과 같은 형식으로 입력하십시오: lt &, 프로토콜&GT;:// &LT;ipaddress&GT; [: &LT;포트&GT;]. 예: https://X.Y.Z.W"
+        },
+        "ADDRESS": "주소",
+        "TIMEOUT": "시간 초과",
+        "ONLINESTATE": "온라인 상태",
+        "OFFLINESTATE": "오프라인 상태",
+        "RATINGSTATE": "등급 상태",
+        "ENQUIRY": "문의",
+        "OFFLINETEMPLATE": "오프라인 템플릿",
+        "CHATDISPOSITIONS": "채팅 의향",
+        "NO_CHATDISPOSITION_AVAILABLE": "채팅 의향 없음",
+        "ADD_CHATDISPOSITION": "채팅 처리 추가",
+        "DELETE": "삭제",
+        "EDIT_CHATDISPOSITION": "채팅 처리 편집",
+        "DELETE_CHATDISPOSITION": "채팅 처리 삭제",
+        "CHAT": "채팅",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "새 채팅 전담팀의",
+        "NEW_CHATWEBSITE": "새 채팅 웹사이트",
+        "ROUNDED": "둥근",
+        "SQUARED": "권투 자세를 취했다.",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "ALL_TEAMS": "모든 팀이",
+        "SELECTED_TEAMS": "선택한 팀에"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/nl.json b/public/app/main/apps/chat/i18n/nl.json
new file mode 100644 (file)
index 0000000..922d009
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Naam",
+        "CHATQUEUES": "Chatwachtrijen",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "STRATEGY": "Strategie",
+        "AGENT_TIMEOUT": "Time-out agent",
+        "DESCRIPTION": "Beschrijving",
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "AGENT_TIMEOUT_REQUIRED": "De Agent Timeout is vereist",
+            "MOTIONADDRESS_REQUIRED": "De Motion Adres is vereist.",
+            "MOTIONADDRESS_MUST_VALID_URL": "De Motion adres moet worden geschreven in een geldige indeling",
+            "ADDRESS_REQUIRED": "Het adres is vereist.",
+            "ADDRESS_MUST_VALID_URL": "Het adres moet worden geschreven in een geldige indeling",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "Het onderzoek Doorstuuradres is vereist",
+            "ACCEPTURL_MUST_VALID_URL": "Accepteer URL moet worden geschreven in een geldige indeling",
+            "TIMEOUT_REQUIRED": "De timeout is vereist",
+            "REJECTURL_MUST_VALID_URL": "De afwijzing URL moet worden geschreven in een geldige indeling",
+            "CLOSEURL_MUST_VALID_URL": "De nauwe URL moet worden geschreven in een geldige indeling"
+        },
+        "ADD_CHATQUEUE": "Voeg wachtrij voor chatten",
+        "EDIT_CHATQUEUE": "Edit wachtrij voor chatten",
+        "DELETE_CHATQUEUE": "Verwijder Chat wachtrij",
+        "SETTINGS": "Instellingen",
+        "SAVE": "Opslaan",
+        "CREATED_AT": "Gemaakt op",
+        "CHATWEBSITES": "Chat websites",
+        "MOTIONADDRESS": "Motion adres",
+        "ADD_CHATWEBSITE": "Voeg Chat Website",
+        "EDIT_CHATWEBSITE": "Edit Chat Website",
+        "DELETE_CHATWEBSITE": "Verwijder Chat Website",
+        "LIST": "Lijst",
+        "SNIPPET": "Snapshot",
+        "FORMS": "Formulieren",
+        "PROACTIVEACTIONS": "Proactieve acties",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acties",
+        "FIDELITY": "Hifi-geluid",
+        "APPEARANCE": "Uiterlijk",
+        "MAINCOLOR": "Hoofdkleur",
+        "FOCUSCOLOR": "Focuskleur",
+        "BUTTONCOLOR": "Kleur",
+        "HEADERSHAPE": "Vorm van het maaibord",
+        "ANIMATION": "Animatie",
+        "DEFAULT": "Standaard",
+        "WHITELABEL": "White Label",
+        "LOGO": "Logo",
+        "DOWNLOADTRANSCRIPT": "Download transcript",
+        "ENQUIRY_ENABLE": "Onderzoek inschakelen",
+        "ENQUIRY_FORWARDING": "Onderzoek doorsturen",
+        "ENQUIRY_FORWARDING_ADDRESS": "Onderzoek Doorstuuradres",
+        "LABELS": "Labels",
+        "HEADER_ONLINE": "Online voorzetstuk",
+        "ONLINE_MESSAGE": "Online bericht",
+        "NAME_TITLE": "Naam Input Label",
+        "USERNAME_PLACEHOLDER": "Gebruikersnaam Input Placeholder",
+        "EMAIL_TITLE": "E-mail input label",
+        "EMAIL_PLACEHOLDER": "E-mail Input Placeholder",
+        "START_CHAT_BUTTON": "'Start Chat' knop",
+        "AGENTS_BUSY": "Drukbezette Agents bericht",
+        "HEADER_OFFLINE": "Offline voorzetstuk",
+        "OFFLINE_MESSAGE": "Offline berichten",
+        "MESSAGE_TITLE": "Bericht Label",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Onderzoek bericht Input Placeholder",
+        "ENQUIRY_BUTTON": "Onderzoek knop tekst",
+        "RATING_MESSAGE": "Waardering bericht",
+        "RATING_SEND": "Rating Verzendknop tekst",
+        "RATING_SKIP": "Rating Skip knop tekst",
+        "ONLINE": "Online",
+        "OFFLINE": "Offline",
+        "PROACTIVE": "Proactief",
+        "ACCEPT": "Accepteren",
+        "ACCEPTMETHOD": "Accepteren methode",
+        "ACCEPTURL": "URL accepteren",
+        "REJECT": "Afwijzen",
+        "REJECTMETHOD": "Methode afwijzen",
+        "REJECTURL": "URL afwijzen",
+        "CLOSE": "Dicht",
+        "CLOSEMETHOD": "Sluit methode",
+        "CLOSEURL": "Sluit URL",
+        "EMBEDDING": "Insluiten",
+        "GENERAL": "Algemeen",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "BACK": "Terug",
+        "HELP": {
+            "MOTIONADDRESS": "Voer in de volgende notatie: <protocol>://<ipaddress>[:<port>]. Voorbeeld: https://X.Y.Z.W"
+        },
+        "ADDRESS": "Adres",
+        "TIMEOUT": "Timeout",
+        "ONLINESTATE": "De status Online (Actief)",
+        "OFFLINESTATE": "Offline staat",
+        "RATINGSTATE": "Rating staat",
+        "ENQUIRY": "Onderzoek",
+        "OFFLINETEMPLATE": "Offline Template",
+        "CHATDISPOSITIONS": "Chat dispositieven",
+        "NO_CHATDISPOSITION_AVAILABLE": "No Chat Dispositieven beschikbaar",
+        "ADD_CHATDISPOSITION": "Voeg Chat dispositie",
+        "DELETE": "Verwijderen",
+        "EDIT_CHATDISPOSITION": "Edit Chat dispositie",
+        "DELETE_CHATDISPOSITION": "Verwijder Chat dispositie",
+        "CHAT": "Chat",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "Nieuwe wachtrij voor chatten",
+        "NEW_CHATWEBSITE": "Nieuwe Chat Website",
+        "ROUNDED": "Afgerond",
+        "SQUARED": "Kwadraat",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "ALL_TEAMS": "Alle teams",
+        "SELECTED_TEAMS": "Geselecteerde teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/no.json b/public/app/main/apps/chat/i18n/no.json
new file mode 100644 (file)
index 0000000..64b9edb
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Navn",
+        "CHATQUEUES": "Chat køer",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "STRATEGY": "Strategi",
+        "AGENT_TIMEOUT": "Agent tidsavbrudd",
+        "DESCRIPTION": "Beskrivelse",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten tidsavbrudd er nødvendig",
+            "MOTIONADDRESS_REQUIRED": "Bevegelsen adresse er påkrevd",
+            "MOTIONADDRESS_MUST_VALID_URL": "Bevegelsen adresse må være skrevet i et gyldig format",
+            "ADDRESS_REQUIRED": "Adressen er nødvendig",
+            "ADDRESS_MUST_VALID_URL": "Adressen må være skrevet i et gyldig format",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "På forespørsel Adresse for videresending av er nødvendig",
+            "ACCEPTURL_MUST_VALID_URL": "Godta URL må være skrevet i et gyldig format",
+            "TIMEOUT_REQUIRED": "Tidsavbruddet er nødvendig",
+            "REJECTURL_MUST_VALID_URL": "Avvis URL må være skrevet i et gyldig format",
+            "CLOSEURL_MUST_VALID_URL": "Lukk URL må være skrevet i et gyldig format"
+        },
+        "ADD_CHATQUEUE": "Legg til Chat kø",
+        "EDIT_CHATQUEUE": "Rediger Chat kø",
+        "DELETE_CHATQUEUE": "Slette Chat kø",
+        "SETTINGS": "Innstillinger",
+        "SAVE": "Lagre",
+        "CREATED_AT": "Opprettet i",
+        "CHATWEBSITES": "Chat webområder",
+        "MOTIONADDRESS": "Motion adresse",
+        "ADD_CHATWEBSITE": "Legg til Chat-nettstedet",
+        "EDIT_CHATWEBSITE": "Rediger Chat nettsted",
+        "DELETE_CHATWEBSITE": "Slette Chat nettsted",
+        "LIST": "Liste",
+        "SNIPPET": "Utsnitt",
+        "FORMS": "Skjemaer",
+        "PROACTIVEACTIONS": "Proaktive tiltak",
+        "DISPOSITIONS": "Disposisjoner",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Tiltak",
+        "FIDELITY": "Fi",
+        "APPEARANCE": "Utseende",
+        "MAINCOLOR": "Main Color",
+        "FOCUSCOLOR": "Fokus-farge",
+        "BUTTONCOLOR": "Knappen Color",
+        "HEADERSHAPE": "Hodet form",
+        "ANIMATION": "Animasjon",
+        "DEFAULT": "Standard",
+        "WHITELABEL": "Hvit etikett",
+        "LOGO": "Logoen",
+        "DOWNLOADTRANSCRIPT": "Last ned scripts",
+        "ENQUIRY_ENABLE": "Aktiver forespørsel",
+        "ENQUIRY_FORWARDING": "Forespørsel videresending",
+        "ENQUIRY_FORWARDING_ADDRESS": "Forespørsel videresending adresse",
+        "LABELS": "Etiketter",
+        "HEADER_ONLINE": "Online-hode",
+        "ONLINE_MESSAGE": "Online-melding",
+        "NAME_TITLE": "Navn Input etikett",
+        "USERNAME_PLACEHOLDER": "Brukernavn Input Placeholder",
+        "EMAIL_TITLE": "E-etikett",
+        "EMAIL_PLACEHOLDER": "E-inngang Placeholder",
+        "START_CHAT_BUTTON": "'Start Chat'-knappen",
+        "AGENTS_BUSY": "Travel agenter melding",
+        "HEADER_OFFLINE": "Offline-hode",
+        "OFFLINE_MESSAGE": "Meldingen Offline",
+        "MESSAGE_TITLE": "Melding etikett",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Forespørsel melding Input Placeholder",
+        "ENQUIRY_BUTTON": "Forespørsel knappen tekst",
+        "RATING_MESSAGE": "Vurdering melding",
+        "RATING_SEND": "Vurdering Send knappen tekst",
+        "RATING_SKIP": "Vurdering hopp knapp tekst",
+        "ONLINE": "Online",
+        "OFFLINE": "Frakoblet",
+        "PROACTIVE": "Proaktiv",
+        "ACCEPT": "Godta",
+        "ACCEPTMETHOD": "Godta metode",
+        "ACCEPTURL": "Godta URL",
+        "REJECT": "Avvis",
+        "REJECTMETHOD": "Avvis metode",
+        "REJECTURL": "Avvis URL",
+        "CLOSE": "Lukk",
+        "CLOSEMETHOD": "Lukk metode",
+        "CLOSEURL": "Lukk URL",
+        "EMBEDDING": "Innstøping",
+        "GENERAL": "Generelt",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "BACK": "Tilbake",
+        "HELP": {
+            "MOTIONADDRESS": "Skriv inn i følgende format: <protocol>://<IP>[:<port>]. Eksempel: https://X.Y.Z.W"
+        },
+        "ADDRESS": "Adresse",
+        "TIMEOUT": "Tidsavbrudd",
+        "ONLINESTATE": "Online status",
+        "OFFLINESTATE": "Offline-status",
+        "RATINGSTATE": "Vurdering status",
+        "ENQUIRY": "Forespørsel",
+        "OFFLINETEMPLATE": "Offline mal",
+        "CHATDISPOSITIONS": "Chat disposisjoner",
+        "NO_CHATDISPOSITION_AVAILABLE": "Ingen Chat disposisjoner tilgjengelig",
+        "ADD_CHATDISPOSITION": "Legg til Chat disposisjon",
+        "DELETE": "Slette",
+        "EDIT_CHATDISPOSITION": "Rediger Chat disposisjon",
+        "DELETE_CHATDISPOSITION": "Slette Chat disposisjon",
+        "CHAT": "Chat",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "Ny Chat kø",
+        "NEW_CHATWEBSITE": "Ny Chat-nettstedet",
+        "ROUNDED": "Avrundet",
+        "SQUARED": "Kvadrert",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "ALL_TEAMS": "Alle grupper",
+        "SELECTED_TEAMS": "Valgte lag"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/pt-PT.json b/public/app/main/apps/chat/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..eac1ec5
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Nome",
+        "CHATQUEUES": "Filas de bate-papo",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "STRATEGY": "Estratégia",
+        "AGENT_TIMEOUT": "Tempo Limite do Agente",
+        "DESCRIPTION": "Descrição",
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "AGENT_TIMEOUT_REQUIRED": "O Tempo Limite do Agente é necessária",
+            "MOTIONADDRESS_REQUIRED": "O Movimento de endereço é obrigatório",
+            "MOTIONADDRESS_MUST_VALID_URL": "A proposta Endereço deve ser escrito em um formato válido",
+            "ADDRESS_REQUIRED": "O endereço é obrigatório",
+            "ADDRESS_MUST_VALID_URL": "O endereço deve ser escrito em um formato válido",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "O inquérito é necessário o endereço de encaminhamento",
+            "ACCEPTURL_MUST_VALID_URL": "A aceitar a URL deve ser escrito em um formato válido",
+            "TIMEOUT_REQUIRED": "O tempo limite é necessária",
+            "REJECTURL_MUST_VALID_URL": "A rejeitar a URL deve ser escrito em um formato válido",
+            "CLOSEURL_MUST_VALID_URL": "A FECHAR A URL deve ser escrito em um formato válido"
+        },
+        "ADD_CHATQUEUE": "Adicionar fila de bate-papo",
+        "EDIT_CHATQUEUE": "Editar Fila de bate-papo",
+        "DELETE_CHATQUEUE": "Excluir fila de bate-papo",
+        "SETTINGS": "Definições",
+        "SAVE": "Salvar",
+        "CREATED_AT": "Criado em",
+        "CHATWEBSITES": "Sites de bate-papo",
+        "MOTIONADDRESS": "Endereço de movimento",
+        "ADD_CHATWEBSITE": "Adicionar site de chat",
+        "EDIT_CHATWEBSITE": "Editar site de chat",
+        "DELETE_CHATWEBSITE": "Excluir Site de Chat",
+        "LIST": "Lista",
+        "SNIPPET": "Segmento",
+        "FORMS": "Formulários",
+        "PROACTIVEACTIONS": "As ações proativas",
+        "DISPOSITIONS": "Disposições",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acções",
+        "FIDELITY": "Fidelidade",
+        "APPEARANCE": "Aparência",
+        "MAINCOLOR": "Cor principal",
+        "FOCUSCOLOR": "Cor do Foco",
+        "BUTTONCOLOR": "Cor do botão",
+        "HEADERSHAPE": "Forma da plataforma",
+        "ANIMATION": "Animação",
+        "DEFAULT": "Padrão",
+        "WHITELABEL": "Etiqueta branca",
+        "LOGO": "Logotipo",
+        "DOWNLOADTRANSCRIPT": "Download da transcrição",
+        "ENQUIRY_ENABLE": "Inquérito permitir",
+        "ENQUIRY_FORWARDING": "Encaminhamento de inquérito",
+        "ENQUIRY_FORWARDING_ADDRESS": "Inquérito o endereço de encaminhamento",
+        "LABELS": "Etiquetas",
+        "HEADER_ONLINE": "A plataforma on-line",
+        "ONLINE_MESSAGE": "Mensagem on-line",
+        "NAME_TITLE": "Etiqueta de entrada de nome",
+        "USERNAME_PLACEHOLDER": "Espaço reservado para entrada de nome de usuário",
+        "EMAIL_TITLE": "Etiqueta de entrada de email",
+        "EMAIL_PLACEHOLDER": "Espaço reservado para entrada de e-mail",
+        "START_CHAT_BUTTON": "O botão \"Iniciar chat'",
+        "AGENTS_BUSY": "Os agentes ocupados Mensagem",
+        "HEADER_OFFLINE": "Plataforma offline",
+        "OFFLINE_MESSAGE": "Mensagem off-line",
+        "MESSAGE_TITLE": "Etiqueta de mensagem",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Entrada de Mensagem de Consulta de espaço reservado",
+        "ENQUIRY_BUTTON": "Texto do Botão de inquérito",
+        "RATING_MESSAGE": "Mensagem de classificação",
+        "RATING_SEND": "Botão Enviar texto de classificação",
+        "RATING_SKIP": "Classificação do texto do botão Ignorar",
+        "ONLINE": "On-line",
+        "OFFLINE": "Off-line",
+        "PROACTIVE": "Proactive",
+        "ACCEPT": "Aceitar",
+        "ACCEPTMETHOD": "Método de Aceitar",
+        "ACCEPTURL": "Aceitar URL",
+        "REJECT": "Rejeitar",
+        "REJECTMETHOD": "Método de rejeição",
+        "REJECTURL": "Rejeitar URL",
+        "CLOSE": "Fechar",
+        "CLOSEMETHOD": "Método de fechar",
+        "CLOSEURL": "Fechar URL",
+        "EMBEDDING": "Incorporação",
+        "GENERAL": "Geral",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "BACK": "De volta",
+        "HELP": {
+            "MOTIONADDRESS": "Por favor, digite no seguinte formato: <protocolo>://<ipaddress>[:<port>]. Exemplo: https://X.Y.Z.W"
+        },
+        "ADDRESS": "Endereço",
+        "TIMEOUT": "Timeout",
+        "ONLINESTATE": "Estado online",
+        "OFFLINESTATE": "Estado offline",
+        "RATINGSTATE": "Estado de classificação",
+        "ENQUIRY": "Inquérito",
+        "OFFLINETEMPLATE": "Modelo off-line",
+        "CHATDISPOSITIONS": "Disposições de bate-papo",
+        "NO_CHATDISPOSITION_AVAILABLE": "Disposições sem Chat disponível",
+        "ADD_CHATDISPOSITION": "Adicionar Chat Disposição",
+        "DELETE": "Excluir",
+        "EDIT_CHATDISPOSITION": "Editar a disposição de bate-papo",
+        "DELETE_CHATDISPOSITION": "Eliminar a disposição de bate-papo",
+        "CHAT": "Bate-papo",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "Nova fila de bate-papo",
+        "NEW_CHATWEBSITE": "Novo site de chat",
+        "ROUNDED": "Arredondada",
+        "SQUARED": "Quadrado",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "ALL_TEAMS": "Todas as equipas",
+        "SELECTED_TEAMS": "Equipes selecionadas"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/ru.json b/public/app/main/apps/chat/i18n/ru.json
new file mode 100644 (file)
index 0000000..1ae21c7
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Имя",
+        "CHATQUEUES": "Очереди чата",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "STRATEGY": "Стратегия",
+        "AGENT_TIMEOUT": "Время ожидания оператора",
+        "DESCRIPTION": "Описание",
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "AGENT_TIMEOUT_REQUIRED": "Оператор - тайм-аут требуется",
+            "MOTIONADDRESS_REQUIRED": "Движение адрес не требуется",
+            "MOTIONADDRESS_MUST_VALID_URL": "Движение адрес должен быть записан в действительный формат",
+            "ADDRESS_REQUIRED": "Адрес не требуется",
+            "ADDRESS_MUST_VALID_URL": "Этот адрес должен быть записан в действительный формат",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "Запрос адреса для пересылки не требуется",
+            "ACCEPTURL_MUST_VALID_URL": "Принять URL должен быть записан в действительный формат",
+            "TIMEOUT_REQUIRED": "Тайм-аут не требуется",
+            "REJECTURL_MUST_VALID_URL": "Отклонить URL должен быть записан в действительный формат",
+            "CLOSEURL_MUST_VALID_URL": "Закрыть адрес URL должен быть записан в действительный формат"
+        },
+        "ADD_CHATQUEUE": "Добавить Чат очереди",
+        "EDIT_CHATQUEUE": "Редактировать очереди чата",
+        "DELETE_CHATQUEUE": "Удалить очереди чата",
+        "SETTINGS": "Настройки",
+        "SAVE": "Сохранить",
+        "CREATED_AT": "Созданные в",
+        "CHATWEBSITES": "Чат сайты",
+        "MOTIONADDRESS": "Адрес движения",
+        "ADD_CHATWEBSITE": "Добавить сайт чата",
+        "EDIT_CHATWEBSITE": "Редактировать сайт чата",
+        "DELETE_CHATWEBSITE": "Удалить сайт чата",
+        "LIST": "Список",
+        "SNIPPET": "Фрагмент кода",
+        "FORMS": "Формы",
+        "PROACTIVEACTIONS": "Профилактические меры",
+        "DISPOSITIONS": "Распоряжения",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Действия",
+        "FIDELITY": "Четкость",
+        "APPEARANCE": "Внешний вид",
+        "MAINCOLOR": "Основной цвет",
+        "FOCUSCOLOR": "Цвет фокуса",
+        "BUTTONCOLOR": "Цвет кнопки",
+        "HEADERSHAPE": "Форма жатки",
+        "ANIMATION": "Анимация",
+        "DEFAULT": "По умолчанию",
+        "WHITELABEL": "На этикетке белого цвета",
+        "LOGO": "Логотип",
+        "DOWNLOADTRANSCRIPT": "Загрузить текст беседы",
+        "ENQUIRY_ENABLE": "Запрос включения",
+        "ENQUIRY_FORWARDING": "Запрос переадресации вызовов",
+        "ENQUIRY_FORWARDING_ADDRESS": "Запрос адреса для пересылки",
+        "LABELS": "Наклейки",
+        "HEADER_ONLINE": "Онлайн жатки",
+        "ONLINE_MESSAGE": "Сообщение в Интернете",
+        "NAME_TITLE": "Ввод имени метки",
+        "USERNAME_PLACEHOLDER": "Имя пользователя входной заполнитель",
+        "EMAIL_TITLE": "Входной электронной почты наклейки",
+        "EMAIL_PLACEHOLDER": "Входной электронной почты заполнитель",
+        "START_CHAT_BUTTON": "'Start чат\"",
+        "AGENTS_BUSY": "Занят агентов сообщение",
+        "HEADER_OFFLINE": "Жатки в автономном режиме",
+        "OFFLINE_MESSAGE": "Сообщение в автономном режиме",
+        "MESSAGE_TITLE": "Обозначение сообщения",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Сообщение запроса входной заполнитель",
+        "ENQUIRY_BUTTON": "Расследованию текст кнопки",
+        "RATING_MESSAGE": "Рейтинг сообщение",
+        "RATING_SEND": "Рейтинг отправить текст кнопки",
+        "RATING_SKIP": "Рейтинг пропустить текст кнопки",
+        "ONLINE": "В режиме онлайн",
+        "OFFLINE": "В автономном режиме",
+        "PROACTIVE": "Proactive",
+        "ACCEPT": "Согласиться с",
+        "ACCEPTMETHOD": "Принять метод",
+        "ACCEPTURL": "Согласиться с URL",
+        "REJECT": "Отклонить",
+        "REJECTMETHOD": "Отклонить метод",
+        "REJECTURL": "Отклонить URL",
+        "CLOSE": "Закрыть",
+        "CLOSEMETHOD": "Закройте метод",
+        "CLOSEURL": "Закрыть URL",
+        "EMBEDDING": "Внедрение",
+        "GENERAL": "Генеральной",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "BACK": "Назад",
+        "HELP": {
+            "MOTIONADDRESS": "Пожалуйста, введите в следующем формате: &LT;протокола&GT;://<ipaddress&GT;[:<порт&GT;]. Пример: https://X.Y.Z.W"
+        },
+        "ADDRESS": "Адрес",
+        "TIMEOUT": "Превышение лимита времени",
+        "ONLINESTATE": "Государство через Интернет",
+        "OFFLINESTATE": "Государство в автономном режиме",
+        "RATINGSTATE": "Рейтинг государства",
+        "ENQUIRY": "Расследованию",
+        "OFFLINETEMPLATE": "Шаблон в автономном режиме",
+        "CHATDISPOSITIONS": "Распоряжения чата",
+        "NO_CHATDISPOSITION_AVAILABLE": "Нет чат ликвидаций имеющихся",
+        "ADD_CHATDISPOSITION": "Добавить Чат распоряжения",
+        "DELETE": "Удалить",
+        "EDIT_CHATDISPOSITION": "Редактирование результата чата",
+        "DELETE_CHATDISPOSITION": "Удалить чат распоряжения",
+        "CHAT": "Чат",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "Новый чат очереди",
+        "NEW_CHATWEBSITE": "Новый сайт чата",
+        "ROUNDED": "Скругленные",
+        "SQUARED": "В квадрате",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "ALL_TEAMS": "Все группы",
+        "SELECTED_TEAMS": "Выбранные группы"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/sv.json b/public/app/main/apps/chat/i18n/sv.json
new file mode 100644 (file)
index 0000000..d2e5d15
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Namn",
+        "CHATQUEUES": "Pratstund köer",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "STRATEGY": "Strategi",
+        "AGENT_TIMEOUT": "Tidsgräns för agent",
+        "DESCRIPTION": "Beskrivning",
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten Timeout krävs",
+            "MOTIONADDRESS_REQUIRED": "Motion adress krävs",
+            "MOTIONADDRESS_MUST_VALID_URL": "Rörelsen måste vara skrivna på ett giltigt format",
+            "ADDRESS_REQUIRED": "Adressen är obligatoriskt",
+            "ADDRESS_MUST_VALID_URL": "Adressen måste vara skriven på ett giltigt format",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "Utredningen Vidarebefordringsadress krävs",
+            "ACCEPTURL_MUST_VALID_URL": "Acceptera URL måste vara skrivna på ett giltigt format",
+            "TIMEOUT_REQUIRED": "Väntetiden är obligatoriskt",
+            "REJECTURL_MUST_VALID_URL": "Avvisa URL måste vara skrivna på ett giltigt format",
+            "CLOSEURL_MUST_VALID_URL": "Stäng URL måste vara skrivna på ett giltigt format"
+        },
+        "ADD_CHATQUEUE": "Lägg till pratstund kö",
+        "EDIT_CHATQUEUE": "Redigera Chat kö",
+        "DELETE_CHATQUEUE": "Ta bort chatt kö",
+        "SETTINGS": "Inställningar",
+        "SAVE": "Spara",
+        "CREATED_AT": "Skapad",
+        "CHATWEBSITES": "Chat webbplatser",
+        "MOTIONADDRESS": "Motion adress",
+        "ADD_CHATWEBSITE": "Lägg till pratstund webbplats",
+        "EDIT_CHATWEBSITE": "Redigera Chat webbplats",
+        "DELETE_CHATWEBSITE": "Ta bort chatt webbplats",
+        "LIST": "Lista",
+        "SNIPPET": "Kurva",
+        "FORMS": "Formulär",
+        "PROACTIVEACTIONS": "Förebyggande åtgärder",
+        "DISPOSITIONS": "Dispositioner",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Åtgärder",
+        "FIDELITY": "Fidelity",
+        "APPEARANCE": "Utseende",
+        "MAINCOLOR": "Huvudfärgen",
+        "FOCUSCOLOR": "Fokusen färg",
+        "BUTTONCOLOR": "Färg",
+        "HEADERSHAPE": "Skärbordets form",
+        "ANIMATION": "Animation",
+        "DEFAULT": "Standard",
+        "WHITELABEL": "Vit etikett",
+        "LOGO": "Logotyp",
+        "DOWNLOADTRANSCRIPT": "Hämta utskrift",
+        "ENQUIRY_ENABLE": "Undersökning aktiverar",
+        "ENQUIRY_FORWARDING": "Utredning vidarebefordran",
+        "ENQUIRY_FORWARDING_ADDRESS": "Utredning vidarebefordringsadress",
+        "LABELS": "Etiketter",
+        "HEADER_ONLINE": "Online skärbord",
+        "ONLINE_MESSAGE": "Online-meddelandet",
+        "NAME_TITLE": "Namn etikett",
+        "USERNAME_PLACEHOLDER": "Användarnamn Ange platshållare",
+        "EMAIL_TITLE": "Email-etikett",
+        "EMAIL_PLACEHOLDER": "Email-platshållare",
+        "START_CHAT_BUTTON": "'Start Chat-knappen",
+        "AGENTS_BUSY": "Upptagna agenter meddelande",
+        "HEADER_OFFLINE": "Offline rubrik",
+        "OFFLINE_MESSAGE": "Offline meddelande",
+        "MESSAGE_TITLE": "Meddelande etikett",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Förfrågan meddelande Input platshållare",
+        "ENQUIRY_BUTTON": "Utredning Knapptext",
+        "RATING_MESSAGE": "Betyg meddelande",
+        "RATING_SEND": "Betyg Skicka text",
+        "RATING_SKIP": "Betyg Skip Knappen Text",
+        "ONLINE": "Online",
+        "OFFLINE": "Offline",
+        "PROACTIVE": "Proaktiv",
+        "ACCEPT": "Godta",
+        "ACCEPTMETHOD": "Acceptera metod",
+        "ACCEPTURL": "Acceptera URL",
+        "REJECT": "Avvisa",
+        "REJECTMETHOD": "Förkasta metoden",
+        "REJECTURL": "Avvisa URL",
+        "CLOSE": "Stäng",
+        "CLOSEMETHOD": "Stäng metod",
+        "CLOSEURL": "Stäng URL",
+        "EMBEDDING": "Bädda in",
+        "GENERAL": "Allmänt",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "BACK": "Tillbaka",
+        "HELP": {
+            "MOTIONADDRESS": "Ange följande format: <protokoll>://<IP>[:<port>]. Exempel: https://X.Y.Z.W"
+        },
+        "ADDRESS": "Adress",
+        "TIMEOUT": "Tidsgräns",
+        "ONLINESTATE": "Online-status",
+        "OFFLINESTATE": "Offline status",
+        "RATINGSTATE": "Betyg stat",
+        "ENQUIRY": "Undersökning",
+        "OFFLINETEMPLATE": "Offline mall",
+        "CHATDISPOSITIONS": "Pratstund dispositioner",
+        "NO_CHATDISPOSITION_AVAILABLE": "Ingen chatt dispositioner tillgängliga",
+        "ADD_CHATDISPOSITION": "Lägg till pratstund disposition",
+        "DELETE": "Ta bort",
+        "EDIT_CHATDISPOSITION": "Redigera Chat Disposition",
+        "DELETE_CHATDISPOSITION": "Ta bort chatt disposition",
+        "CHAT": "Chatt",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "Ny chatt kö",
+        "NEW_CHATWEBSITE": "Ny chatt webbplats",
+        "ROUNDED": "Rundad",
+        "SQUARED": "Fyrkantig",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "ALL_TEAMS": "Alla grupper",
+        "SELECTED_TEAMS": "Valda grupper"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/tr.json b/public/app/main/apps/chat/i18n/tr.json
new file mode 100644 (file)
index 0000000..f9edf9f
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "Adı",
+        "CHATQUEUES": "Sohbet Kuyrukları",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "STRATEGY": "Strateji",
+        "AGENT_TIMEOUT": "Ajan Zaman Aşımı",
+        "DESCRIPTION": "Açıklama",
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "AGENT_TIMEOUT_REQUIRED": "Ajan zaman gerekiyor.",
+            "MOTIONADDRESS_REQUIRED": "Hareket adresi gerekli",
+            "MOTIONADDRESS_MUST_VALID_URL": "Hareket adres yazılmış olması gerekir. geçerli bir format",
+            "ADDRESS_REQUIRED": "Bu Adresi gerekli",
+            "ADDRESS_MUST_VALID_URL": "Adres mutlaka yazılı geçerli bir format",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "Soruşturmanın Yönlendirme adresi gerekli",
+            "ACCEPTURL_MUST_VALID_URL": "Kabul URL yazılmış olması gerekir. geçerli bir format",
+            "TIMEOUT_REQUIRED": "Zaman Aşımı gerekiyor.",
+            "REJECTURL_MUST_VALID_URL": "Reddetme URL yazılmış olması gerekir. geçerli bir format",
+            "CLOSEURL_MUST_VALID_URL": "Kapat URL yazılmış olması gerekir. geçerli bir format"
+        },
+        "ADD_CHATQUEUE": "Add Sohbet Sırası",
+        "EDIT_CHATQUEUE": "Edit Sohbet Sırası",
+        "DELETE_CHATQUEUE": "Delete Sohbet Sırası",
+        "SETTINGS": "Ayarlar",
+        "SAVE": "Kaydet",
+        "CREATED_AT": "Oluşturulmuş",
+        "CHATWEBSITES": "Sohbet Siteleri",
+        "MOTIONADDRESS": "Hareket Adres",
+        "ADD_CHATWEBSITE": "Add Sohbet Sitesi",
+        "EDIT_CHATWEBSITE": "Edit Sohbet Sitesi",
+        "DELETE_CHATWEBSITE": "Delete Chat Sitesi",
+        "LIST": "Listesi",
+        "SNIPPET": "Parçacığı",
+        "FORMS": "Formlar",
+        "PROACTIVEACTIONS": "Proaktif Eylemler",
+        "DISPOSITIONS": "Işlenir",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Eylemler",
+        "FIDELITY": "Doğruluğu",
+        "APPEARANCE": "Görünüm",
+        "MAINCOLOR": "Ana Renk",
+        "FOCUSCOLOR": "Odak Renk",
+        "BUTTONCOLOR": "Düğme Renk",
+        "HEADERSHAPE": "Takım Şekli",
+        "ANIMATION": "Animasyon",
+        "DEFAULT": "Varsayılan",
+        "WHITELABEL": "Beyaz Etiket",
+        "LOGO": "Logo",
+        "DOWNLOADTRANSCRIPT": "Transkript indirin",
+        "ENQUIRY_ENABLE": "Soruşturma Etkinleştirme",
+        "ENQUIRY_FORWARDING": "Sorgulama iletme",
+        "ENQUIRY_FORWARDING_ADDRESS": "Soruşturma Yönlendirme Adresi",
+        "LABELS": "Etiketler",
+        "HEADER_ONLINE": "Online Takım",
+        "ONLINE_MESSAGE": "Online Mesaj",
+        "NAME_TITLE": "Adı Giriş Etiketi",
+        "USERNAME_PLACEHOLDER": "Kullanıcı Adı Giriş Yer Tutucusu",
+        "EMAIL_TITLE": "E-Posta Giriş Etiketi",
+        "EMAIL_PLACEHOLDER": "E-Posta Giriş Yer Tutucusu",
+        "START_CHAT_BUTTON": "'Start Sohbet' Düğmesi",
+        "AGENTS_BUSY": "Yoğun Maddeler Mesaj",
+        "HEADER_OFFLINE": "Çevrimdışı Ön Takım",
+        "OFFLINE_MESSAGE": "Çevrimdışı Mesaj",
+        "MESSAGE_TITLE": "Mesaj Etiketi",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "Sorgulama Mesajı Giriş Yer Tutucusu",
+        "ENQUIRY_BUTTON": "Sorgulama Butonu Metin",
+        "RATING_MESSAGE": "Mesaj derecesi",
+        "RATING_SEND": "Derecelendirme Gönder Düğmesi Metin",
+        "RATING_SKIP": "Derecelendirme Atlama Düğmesi Metin",
+        "ONLINE": "Çevrimiçi",
+        "OFFLINE": "Çevrimdışı Çalış",
+        "PROACTIVE": "Proaktif",
+        "ACCEPT": "Kabul Ediyorum",
+        "ACCEPTMETHOD": "Kabul Yöntemi",
+        "ACCEPTURL": "URL kabul edin",
+        "REJECT": "Reddetme",
+        "REJECTMETHOD": "Reddetme Yöntemi",
+        "REJECTURL": "Ret URL",
+        "CLOSE": "Close",
+        "CLOSEMETHOD": "Close Metodu",
+        "CLOSEURL": "Close URL",
+        "EMBEDDING": "Katıştırma",
+        "GENERAL": "Genel",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "BACK": "Geri",
+        "HELP": {
+            "MOTIONADDRESS": "Lütfen aşağıdaki biçimi: <protokol>://<ipaddress>[:<port>]. Örneğin: https://X.Y.Z.W"
+        },
+        "ADDRESS": "Adres",
+        "TIMEOUT": "Zaman Aşımı",
+        "ONLINESTATE": "Online Devlet",
+        "OFFLINESTATE": "Çevrimdışı Devlet",
+        "RATINGSTATE": "Derecelendirme Devlet",
+        "ENQUIRY": "Sorgulama",
+        "OFFLINETEMPLATE": "Çevrimdışı Şablon",
+        "CHATDISPOSITIONS": "Sohbet işlenir",
+        "NO_CHATDISPOSITION_AVAILABLE": "Sohbet Resmi Senedin kullanılabilir",
+        "ADD_CHATDISPOSITION": "Add Sohbet Nizam",
+        "DELETE": "Sil",
+        "EDIT_CHATDISPOSITION": "Edit Sohbet Nizam",
+        "DELETE_CHATDISPOSITION": "Delete Chat Nizam",
+        "CHAT": "Sohbet",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "Yeni Sohbet Sırası",
+        "NEW_CHATWEBSITE": "Yeni Sohbet Sitesi",
+        "ROUNDED": "Yuvarlak",
+        "SQUARED": "Kare",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "ALL_TEAMS": "Tüm takımlar",
+        "SELECTED_TEAMS": "Seçilen Ekipleri"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/zh-CN.json b/public/app/main/apps/chat/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..9ccf2a4
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "名称",
+        "CHATQUEUES": "“文本交谈” 队列。",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "STRATEGY": "战略",
+        "AGENT_TIMEOUT": "代理超时",
+        "DESCRIPTION": "描述",
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "AGENT_TIMEOUT_REQUIRED": "代理超时是必需的",
+            "MOTIONADDRESS_REQUIRED": "该议案的地址是必填项",
+            "MOTIONADDRESS_MUST_VALID_URL": "该议案的地址必须是书面的格式无效",
+            "ADDRESS_REQUIRED": "该地址是必填项",
+            "ADDRESS_MUST_VALID_URL": "该地址必须是书面的格式无效",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "调查转发地址是必填项",
+            "ACCEPTURL_MUST_VALID_URL": "接受 URL 必须是书面的格式无效",
+            "TIMEOUT_REQUIRED": "超时是必需的",
+            "REJECTURL_MUST_VALID_URL": "“拒绝” 的 URL 必须是书面的格式无效",
+            "CLOSEURL_MUST_VALID_URL": "关闭 URL 必须是书面的格式无效"
+        },
+        "ADD_CHATQUEUE": "添加聊天队列",
+        "EDIT_CHATQUEUE": "编辑聊天队列",
+        "DELETE_CHATQUEUE": "删除聊天队列",
+        "SETTINGS": "设置",
+        "SAVE": "保存",
+        "CREATED_AT": "创建在",
+        "CHATWEBSITES": "聊天网站",
+        "MOTIONADDRESS": "移动地址",
+        "ADD_CHATWEBSITE": "添加聊天网站",
+        "EDIT_CHATWEBSITE": "编辑聊天室网站",
+        "DELETE_CHATWEBSITE": "删除聊天网站",
+        "LIST": "列表",
+        "SNIPPET": "代码片段",
+        "FORMS": "形式",
+        "PROACTIVEACTIONS": "积极主动的行动。",
+        "DISPOSITIONS": "资产处置",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "采取的行动",
+        "FIDELITY": "保真度",
+        "APPEARANCE": "外观。",
+        "MAINCOLOR": "主要的颜色",
+        "FOCUSCOLOR": "焦点颜色",
+        "BUTTONCOLOR": "彩色按钮",
+        "HEADERSHAPE": "头的形状",
+        "ANIMATION": "动画制作",
+        "DEFAULT": "默认值",
+        "WHITELABEL": "白色标签",
+        "LOGO": "徽标",
+        "DOWNLOADTRANSCRIPT": "下载全文",
+        "ENQUIRY_ENABLE": "启用调查",
+        "ENQUIRY_FORWARDING": "咨询转接",
+        "ENQUIRY_FORWARDING_ADDRESS": "调查转发地址",
+        "LABELS": "标签",
+        "HEADER_ONLINE": "在线标题",
+        "ONLINE_MESSAGE": "在线留言",
+        "NAME_TITLE": "名称输入标签。",
+        "USERNAME_PLACEHOLDER": "用户名输入的占位符。",
+        "EMAIL_TITLE": "输入的电子邮件标签。",
+        "EMAIL_PLACEHOLDER": "输入电子邮件的占位符。",
+        "START_CHAT_BUTTON": "“开始聊天” 按钮",
+        "AGENTS_BUSY": "忙碌的代理信息",
+        "HEADER_OFFLINE": "离线头",
+        "OFFLINE_MESSAGE": "脱机消息",
+        "MESSAGE_TITLE": "消息标签",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "询问信息输入的占位符。",
+        "ENQUIRY_BUTTON": "查询” 按钮的文本",
+        "RATING_MESSAGE": "评级的消息",
+        "RATING_SEND": "等级发送” 按钮的文本",
+        "RATING_SKIP": "评级 “跳过” 按钮的文本",
+        "ONLINE": "在线",
+        "OFFLINE": "脱机",
+        "PROACTIVE": "前瞻性",
+        "ACCEPT": "接受",
+        "ACCEPTMETHOD": "接受的方法。",
+        "ACCEPTURL": "接受的 URL。",
+        "REJECT": "拒绝",
+        "REJECTMETHOD": "拒绝方法。",
+        "REJECTURL": "拒绝 URL。",
+        "CLOSE": "关闭",
+        "CLOSEMETHOD": "关闭方法。",
+        "CLOSEURL": "关闭 URL。",
+        "EMBEDDING": "嵌入",
+        "GENERAL": "总的",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "BACK": "返回",
+        "HELP": {
+            "MOTIONADDRESS": "请以下列格式输入: & lt; 协议发 gt;:// 发 lt; ipaddress 发 gt; [: & lt; 端口& gt; ]。 例如: https://X.Y.Z.W"
+        },
+        "ADDRESS": "地址",
+        "TIMEOUT": "超时",
+        "ONLINESTATE": "在线状态",
+        "OFFLINESTATE": "“脱机” 状态",
+        "RATINGSTATE": "评级的国家",
+        "ENQUIRY": "调查",
+        "OFFLINETEMPLATE": "脱机模板",
+        "CHATDISPOSITIONS": "文本交谈的处置",
+        "NO_CHATDISPOSITION_AVAILABLE": "无聊天弃置的可用",
+        "ADD_CHATDISPOSITION": "添加文本交谈的处置",
+        "DELETE": "删除",
+        "EDIT_CHATDISPOSITION": "编辑聊天处置",
+        "DELETE_CHATDISPOSITION": "删除聊天处置",
+        "CHAT": "文本交谈",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "新聊天队列",
+        "NEW_CHATWEBSITE": "新的聊天网站",
+        "ROUNDED": "圆角",
+        "SQUARED": "方形",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "ALL_TEAMS": "所有的团队",
+        "SELECTED_TEAMS": "选定的组"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/chat/i18n/zh-TW.json b/public/app/main/apps/chat/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..83adb50
--- /dev/null
@@ -0,0 +1,115 @@
+{
+    "CHAT": {
+        "NAME": "名稱",
+        "CHATQUEUES": "聊天佇列",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "STRATEGY": "策略",
+        "AGENT_TIMEOUT": "值機人員等候逾時",
+        "DESCRIPTION": "說明",
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "AGENT_TIMEOUT_REQUIRED": "「值機人員逾時為必填欄位",
+            "MOTIONADDRESS_REQUIRED": "動態地址為必填欄位",
+            "MOTIONADDRESS_MUST_VALID_URL": "動態位址必須以有效的格式",
+            "ADDRESS_REQUIRED": "地址為必填欄位",
+            "ADDRESS_MUST_VALID_URL": "位址必須是書面的格式無效",
+            "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "詢問轉寄地址為必填欄位",
+            "ACCEPTURL_MUST_VALID_URL": "接受 URL 必須以有效的格式",
+            "TIMEOUT_REQUIRED": "逾時時間為必要資訊",
+            "REJECTURL_MUST_VALID_URL": "拒絕 URL 必須以有效的格式",
+            "CLOSEURL_MUST_VALID_URL": "關閉的 URL 必須以有效的格式"
+        },
+        "ADD_CHATQUEUE": "新增聊天佇列",
+        "EDIT_CHATQUEUE": "編輯文字交談」佇列",
+        "DELETE_CHATQUEUE": "刪除聊天佇列",
+        "SETTINGS": "設定",
+        "SAVE": "儲存",
+        "CREATED_AT": "建立在",
+        "CHATWEBSITES": "聊天網站",
+        "MOTIONADDRESS": "動態位址",
+        "ADD_CHATWEBSITE": "新增聊天網站",
+        "EDIT_CHATWEBSITE": "編輯文字交談網站",
+        "DELETE_CHATWEBSITE": "刪除聊天網站",
+        "LIST": "清單",
+        "SNIPPET": "程式碼片段",
+        "FORMS": "表單",
+        "PROACTIVEACTIONS": "主動式動作",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "動作",
+        "FIDELITY": "準確性",
+        "APPEARANCE": "外觀",
+        "MAINCOLOR": "主色彩",
+        "FOCUSCOLOR": "焦點色彩",
+        "BUTTONCOLOR": "彩色按鈕",
+        "HEADERSHAPE": "頭形狀",
+        "ANIMATION": "動畫製作",
+        "DEFAULT": "預設值",
+        "WHITELABEL": "白色標籤",
+        "LOGO": "標誌",
+        "DOWNLOADTRANSCRIPT": "下載交談記錄",
+        "ENQUIRY_ENABLE": "查詢啟用",
+        "ENQUIRY_FORWARDING": "詢問轉接",
+        "ENQUIRY_FORWARDING_ADDRESS": "查詢轉寄地址",
+        "LABELS": "標籤",
+        "HEADER_ONLINE": "線上郵件標頭",
+        "ONLINE_MESSAGE": "線上訊息",
+        "NAME_TITLE": "名稱輸入標籤",
+        "USERNAME_PLACEHOLDER": "使用者名稱輸入預留位置",
+        "EMAIL_TITLE": "電子郵件輸入標籤",
+        "EMAIL_PLACEHOLDER": "電子郵件輸入預留位置",
+        "START_CHAT_BUTTON": "「開始文字交談」按鈕",
+        "AGENTS_BUSY": "忙線中值機員訊息",
+        "HEADER_OFFLINE": "離線標頭",
+        "OFFLINE_MESSAGE": "離線訊息",
+        "MESSAGE_TITLE": "訊息標籤",
+        "ENQUIRY_MESSAGE_PLACEHOLDER": "查詢訊息輸入預留位置",
+        "ENQUIRY_BUTTON": "查詢按鈕文字",
+        "RATING_MESSAGE": "評等訊息",
+        "RATING_SEND": "評等傳送按鈕文字",
+        "RATING_SKIP": "評分跳過按鈕文字",
+        "ONLINE": "線上",
+        "OFFLINE": "離線",
+        "PROACTIVE": "主動式",
+        "ACCEPT": "接受",
+        "ACCEPTMETHOD": "接受方法",
+        "ACCEPTURL": "接受 URL",
+        "REJECT": "拒絕",
+        "REJECTMETHOD": "排除方法",
+        "REJECTURL": "拒絕 URL",
+        "CLOSE": "關閉",
+        "CLOSEMETHOD": "關閉方法",
+        "CLOSEURL": "關閉 URL",
+        "EMBEDDING": "內嵌字型",
+        "GENERAL": "通用",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "BACK": "備份",
+        "HELP": {
+            "MOTIONADDRESS": "請輸入下列格式 : & lt ; 通訊協定與 gt ; : / / 史坦普 lt ; IP 位址坦 gt ; [ : 坦 lt ; 連接埠坦 gt ; ] 。 例如 : https://X.Y.Z.W"
+        },
+        "ADDRESS": "位址",
+        "TIMEOUT": "逾時",
+        "ONLINESTATE": "連線狀態",
+        "OFFLINESTATE": "為離線狀態",
+        "RATINGSTATE": "評分狀態",
+        "ENQUIRY": "查詢",
+        "OFFLINETEMPLATE": "離線範本",
+        "CHATDISPOSITIONS": "聊天 Dispositions",
+        "NO_CHATDISPOSITION_AVAILABLE": "聊天 Dispositions 可用性",
+        "ADD_CHATDISPOSITION": "新增聊天配置",
+        "DELETE": "刪除",
+        "EDIT_CHATDISPOSITION": "編輯聊天配置",
+        "DELETE_CHATDISPOSITION": "刪除聊天配置",
+        "CHAT": "文字交談",
+        "ID": "Id",
+        "NEW_CHATQUEUE": "新增聊天佇列",
+        "NEW_CHATWEBSITE": "新的聊天網站",
+        "ROUNDED": "四捨五入",
+        "SQUARED": "擺出正面防守姿勢",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "ALL_TEAMS": "所有群組",
+        "SELECTED_TEAMS": "選取群組"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/da.json b/public/app/main/apps/contactmanager/i18n/da.json
new file mode 100644 (file)
index 0000000..042cc1a
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "Navnet",
+        "LISTS": "Lister",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "EDIT_LIST": "Rediger liste",
+        "DELETE_LIST": "Slet liste",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "FIRSTNAME_REQUIRED": "Det første navn er påkrævet",
+            "ALIAS_REQUIRED": "Aliaset er påkrævet",
+            "VALUE_REQUIRED": "Værdien er nødvendig",
+            "EMAIL_MUST_VALID": "E-mail-adressen skal være skrevet i et gyldigt format",
+            "PHONE_REQUIRED": "Telefonen er påkrævet"
+        },
+        "DESCRIPTION": "Beskrivelse",
+        "DISPOSITIONS": "Dispositions",
+        "VOICEDISPOSITIONS": "Voice Dispositions",
+        "NEW_VOICEDISPOSITION": "Ny Disp.",
+        "CUSTOM_FIELDS": "Brugerdefinerede felter",
+        "ADD_LIST": "Tilføj liste",
+        "BACK": "Tilbage",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "COMPANIES": "Virksomheder",
+        "EDIT_COMPANY": "Rediger virksomhed",
+        "DELETE_COMPANY": "Slet selskab",
+        "PHONE": "Telefonen",
+        "EMAIL": "Email",
+        "ADD_COMPANY": "Tilføj firma",
+        "CONTACTS": "Kontakter",
+        "NEW_LIST": "Ny liste",
+        "FIRSTNAME": "Fornavn",
+        "LASTNAME": "Efternavn",
+        "LIST": "Listen",
+        "COMPANY": "Selskab",
+        "ADD_CONTACT": "Tilføj kontakt",
+        "EDIT_CONTACT": "Rediger kontakt",
+        "MERGE_CONTACT": "Flet kontakt",
+        "DUPLICATE_CONTACT": "Duplikér kontakt",
+        "DELETE_CONTACT": "Slet kontakt",
+        "CREATED_AT": "Oprettet på",
+        "SAVE": "Gem",
+        "DETAIL": "Detaljer",
+        "PERSONAL_INFO": "Personal Info",
+        "MOBILE": "Mobil",
+        "FAX": "Fax",
+        "TAGS": "Tags",
+        "SHOW_ALL_FIELDS": "Vis alle felter",
+        "FEWER_FIELDS": "Vis færre felter",
+        "COUNTRY": "Land",
+        "CITY": "City",
+        "STREET": "Street",
+        "POSTALCODE": "Postnummer",
+        "DELETE": "Slet",
+        "CONTACTMANAGER": "Kontakt Manager",
+        "ID": "Id",
+        "SETTINGS": "Indstillinger",
+        "GENERAL": "Generel",
+        "CUSTOMFIELDS": "Brugerdefinerede felter",
+        "NO_CUSTOMFIELD_AVAILABLE": "Ingen brugerdefinerede felter",
+        "ALIAS": "Alias",
+        "TYPE": "Type",
+        "VALUE": "Værdi",
+        "ADD_CUSTOMFIELD": "Tilføj brugerdefineret felt",
+        "EDIT_CUSTOMFIELD": "Rediger brugerdefineret felt",
+        "DELETE_CUSTOMFIELD": "Slet brugerdefineret felt",
+        "NEW_COMPANY": "Nyt selskab",
+        "NEW_CONTACT": "Ny kontakt",
+        "NEW_TAG": "Nyt tag",
+        "UPLOAD_CONTACTS": "Upload kontakter",
+        "FINISH": "Finish",
+        "SUCCESS": "Succes",
+        "FAILURE": "Fejl",
+        "ALL_CONTACTS": "Alle kontakter",
+        "NEW_CUSTOMFIELD": "Ny brugerdefineret felt",
+        "NO_VOICEDISPOSITION_AVAILABLE": "Ingen dispositioner til rådighed",
+        "ADD_VOICEDISPOSITION": "Læg stemme disp.",
+        "EDIT_VOICEDISPOSITION": "Redigere en indstilling",
+        "DELETE_VOICEDISPOSITION": "Slet Disp.",
+        "VAT": "Moms",
+        "COMPANYID": "Firma ID",
+        "WEBSITE": "Hjemmeside",
+        "EMAIL_DOMAIN": "Email domæne",
+        "ADDRESS": "Adresse",
+        "POSTAL_CODE": "Postnummer",
+        "SHIPMENTADDRESS": "Velkomst mail",
+        "COPY_CONTACT": "Kopier kontakt",
+        "GOTOCONTACTS_LIST": "Vis kontakter",
+        "GOTOCONTACTS_COMPANY": "Vis kontakter",
+        "ADD_AGENT_TO_LIST": "Tilføj til liste",
+        "AGENTADD_LIST": "Tilføj til liste",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "NONE": "Ingen",
+        "FULLNAME": "Fulde navn",
+        "CHECK_DUPLICATES": "Tjek dubletter",
+        "DUPLICATES": "Dubletter",
+        "UPLOAD_CSV": "Upload CSV",
+        "TAG": "Tag",
+        "UPLOAD": "Upload",
+        "ALL_AGENTS": "Alle agenter",
+        "SELECTED_AGENTS": "Udvalgte agenter",
+        "DATE_OF_BIRTH": "Fødselsdato",
+        "NOTES": "Noter",
+        "EXPORTCSVCONTACTS_LIST": "Eksporter til CSV",
+        "GOTO_LIST": "Vis kontakter",
+        "GOTO_COMPANY": "Vis kontakter",
+        "REQUIRED": "Påkrævet",
+        "DATEOFBIRTH": "Fødselsdato",
+        "NO_COMPANIES": "Ingen virksomhed",
+        "ADD_TAG": "Læg mærke",
+        "NO_TAG": "Ingen Tags",
+        "GLOBALCUSTOMFIELDS": "Globale Brugerdefinerede felter",
+        "NEW_GLOBALCUSTOMFIELD": "Nye brugerdefinerede felter",
+        "ADD_GLOBALCUSTOMFIELD": "Tilføj brugerdefineret felt",
+        "EDIT_GLOBALCUSTOMFIELD": "Rediger brugerdefineret felt",
+        "DELETE_GLOBALCUSTOMFIELD": "Slet brugerdefineret felt",
+        "STATE": "Medlemsstat",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "Status",
+        "STARTTIME": "Starttidspunkt",
+        "ENDTIME": "Sluttidspunkt",
+        "MOTION_BULL": "Motion Bull",
+        "HOPPER": "Tragt",
+        "FINAL": "Hopper sidste",
+        "HISTORY": "Magasinet historie",
+        "SCHEDULEDAT": "Planlagt til",
+        "EDIT_HOPPER": "Rediger Hopper",
+        "DELETE_HOPPER": "Sletning af tragt",
+        "RELOAD": "Reload",
+        "DISPOSITION": "Disp."
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/de.json b/public/app/main/apps/contactmanager/i18n/de.json
new file mode 100644 (file)
index 0000000..d6aa910
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "Name",
+        "LISTS": "Listen",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "EDIT_LIST": "Liste bearbeiten",
+        "DELETE_LIST": "Liste löschen",
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "FIRSTNAME_REQUIRED": "Der Vorname ist erforderlich",
+            "ALIAS_REQUIRED": "Der Alias wird benötigt",
+            "VALUE_REQUIRED": "Der Wert ist erforderlich",
+            "EMAIL_MUST_VALID": "Die E-Mail Adresse muss in einem gültigen Format",
+            "PHONE_REQUIRED": "Die Telefonnummer ist erforderlich"
+        },
+        "DESCRIPTION": "Beschreibung",
+        "DISPOSITIONS": "Bestimmungen",
+        "VOICEDISPOSITIONS": "Voice Verfügungen",
+        "NEW_VOICEDISPOSITION": "Neue Stimme Disposition",
+        "CUSTOM_FIELDS": "Benutzerdefinierte Felder",
+        "ADD_LIST": "Liste hinzufügen",
+        "BACK": "Zurück",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "COMPANIES": "Unternehmen",
+        "EDIT_COMPANY": "Unternehmen bearbeiten",
+        "DELETE_COMPANY": "Firma löschen",
+        "PHONE": "Telefon",
+        "EMAIL": "E-Mail",
+        "ADD_COMPANY": "Firma hinzufügen",
+        "CONTACTS": "Kontakte",
+        "NEW_LIST": "Neue Liste",
+        "FIRSTNAME": "Vorname",
+        "LASTNAME": "Nachname",
+        "LIST": "Liste",
+        "COMPANY": "Unternehmen",
+        "ADD_CONTACT": "Kontakt hinzufügen",
+        "EDIT_CONTACT": "Kontakt bearbeiten",
+        "MERGE_CONTACT": "Kontakt zusammenfügen",
+        "DUPLICATE_CONTACT": "Kontakt duplizieren",
+        "DELETE_CONTACT": "Kontakt löschen",
+        "CREATED_AT": "Erstellt am",
+        "SAVE": "Speichern",
+        "DETAIL": "Detail",
+        "PERSONAL_INFO": "Persönliche Infos",
+        "MOBILE": "Mobile",
+        "FAX": "Fax",
+        "TAGS": "Tags",
+        "SHOW_ALL_FIELDS": "Alle Felder anzeigen",
+        "FEWER_FIELDS": "Weniger Felder anzeigen",
+        "COUNTRY": "Land",
+        "CITY": "Stadt",
+        "STREET": "Straße",
+        "POSTALCODE": "Postleitzahl",
+        "DELETE": "Löschen",
+        "CONTACTMANAGER": "Contacts Manager",
+        "ID": "Id",
+        "SETTINGS": "Einstellungen",
+        "GENERAL": "Allgemein",
+        "CUSTOMFIELDS": "Benutzerdefinierte Felder",
+        "NO_CUSTOMFIELD_AVAILABLE": "Keine benutzerdefinierten Felder zur Verfügung",
+        "ALIAS": "Alias",
+        "TYPE": "Typ",
+        "VALUE": "Wert",
+        "ADD_CUSTOMFIELD": "Benutzerdefiniertes Feld hinzufügen",
+        "EDIT_CUSTOMFIELD": "Benutzerdefinierte Felder bearbeiten",
+        "DELETE_CUSTOMFIELD": "Benutzerdefiniertes Feld löschen.",
+        "NEW_COMPANY": "Neue Unternehmen",
+        "NEW_CONTACT": "Neuer Kontakt",
+        "NEW_TAG": "Neuer Tag",
+        "UPLOAD_CONTACTS": "Kontakte hochladen",
+        "FINISH": "Fertig stellen",
+        "SUCCESS": "Erfolg",
+        "FAILURE": "Ausfall",
+        "ALL_CONTACTS": "Alle Kontakte",
+        "NEW_CUSTOMFIELD": "Neue benutzerdefinierte Feld",
+        "NO_VOICEDISPOSITION_AVAILABLE": "Keine Stimme Dispositionen verfügbar",
+        "ADD_VOICEDISPOSITION": "Hinzufügen von Sprach- Disposition",
+        "EDIT_VOICEDISPOSITION": "Edit Voice Disposition",
+        "DELETE_VOICEDISPOSITION": "Disposition löschen",
+        "VAT": "Mwst.",
+        "COMPANYID": "Ihre Unternehmens-ID",
+        "WEBSITE": "Website",
+        "EMAIL_DOMAIN": "E-Mail Domain",
+        "ADDRESS": "Adresse",
+        "POSTAL_CODE": "Postleitzahl",
+        "SHIPMENTADDRESS": "Versand Adresse",
+        "COPY_CONTACT": "Kontakt kopieren",
+        "GOTOCONTACTS_LIST": "Kontakte anzeigen",
+        "GOTOCONTACTS_COMPANY": "Kontakte anzeigen",
+        "ADD_AGENT_TO_LIST": "Agenten zur Liste hinzufügen",
+        "AGENTADD_LIST": "Agenten zur Liste hinzufügen",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "NONE": "Keine",
+        "FULLNAME": "Voller Name",
+        "CHECK_DUPLICATES": "Duplikate überprüfen",
+        "DUPLICATES": "Duplikate",
+        "UPLOAD_CSV": "Hochladen von CSV",
+        "TAG": "Tag",
+        "UPLOAD": "Hochladen",
+        "ALL_AGENTS": "Alle Agenten",
+        "SELECTED_AGENTS": "Ausgewählte Agenten",
+        "DATE_OF_BIRTH": "Geburtsdatum",
+        "NOTES": "Hinweise",
+        "EXPORTCSVCONTACTS_LIST": "Export in CSV",
+        "GOTO_LIST": "Kontakte anzeigen",
+        "GOTO_COMPANY": "Kontakte anzeigen",
+        "REQUIRED": "Erforderlich",
+        "DATEOFBIRTH": "Geburtsdatum",
+        "NO_COMPANIES": "Kein Unternehmen",
+        "ADD_TAG": "Tag hinzufügen",
+        "NO_TAG": "Keine Tags",
+        "GLOBALCUSTOMFIELDS": "Globale benutzerdefinierte Felder",
+        "NEW_GLOBALCUSTOMFIELD": "Neue benutzerdefinierte Felder",
+        "ADD_GLOBALCUSTOMFIELD": "Benutzerdefiniertes Feld hinzufügen",
+        "EDIT_GLOBALCUSTOMFIELD": "Benutzerdefiniertes Feld",
+        "DELETE_GLOBALCUSTOMFIELD": "Benutzerdefiniertes Feld löschen",
+        "STATE": "Zustand",
+        "UNIQUEID": "Die Uniqueid-",
+        "STATUS": "Status",
+        "STARTTIME": "Startzeit",
+        "ENDTIME": "Endzeit",
+        "MOTION_BULL": "Motion Stier",
+        "HOPPER": "Hopper",
+        "FINAL": "Hopper Endg.",
+        "HISTORY": "Hopper Geschichte",
+        "SCHEDULEDAT": "Geplant für",
+        "EDIT_HOPPER": "Bearbeiten Hopper",
+        "DELETE_HOPPER": "Löschen Hopper",
+        "RELOAD": "Neu laden",
+        "DISPOSITION": "Disposition"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/en.json b/public/app/main/apps/contactmanager/i18n/en.json
new file mode 100644 (file)
index 0000000..086aefa
--- /dev/null
@@ -0,0 +1,138 @@
+{
+    "CONTACTMANAGER": {
+        "STATE": "State",
+        "NAME": "Name",
+        "LISTS": "Lists",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "Status",
+        "STARTTIME": "Start Time",
+        "ENDTIME": "End Time",
+        "MOTION_BULL": "Motion Bull",
+        "HOPPER": "Hopper",
+        "FINAL": "Hopper Final",
+        "HISTORY": "Hopper History",
+        "SCHEDULEDAT": "Scheduled At",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "EDIT_LIST": "Edit List",
+        "EDIT_HOPPER": "Edit Hopper",
+        "DELETE_LIST": "Delete List",
+        "DELETE_HOPPER": "Delete Hopper",
+        "RELOAD": "Reload",
+        "NO_COMPANIES": "No Company",
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is required",
+            "FIRSTNAME_REQUIRED": "The First Name is required",
+            "PHONE_REQUIRED": "The Phone is required",
+            "ALIAS_REQUIRED": "The Alias is required",
+            "VALUE_REQUIRED": "The Value is required",
+            "EMAIL_MUST_VALID": "The Email Address must be written in a valid format"
+        },
+        "DESCRIPTION": "Description",
+        "DISPOSITION": "Disposition",
+        "DISPOSITIONS": "Dispositions",
+        "VOICEDISPOSITIONS": "Voice Dispositions",
+        "NEW_VOICEDISPOSITION": "New Voice Disposition",
+        "CUSTOM_FIELDS": "Custom Fields",
+        "ADD_LIST": "Add List",
+        "BACK": "Back",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "COMPANIES": "Companies",
+        "EDIT_COMPANY": "Edit Company",
+        "DELETE_COMPANY": "Delete Company",
+        "PHONE": "Phone",
+        "EMAIL": "Email",
+        "ADD_COMPANY": "Add Company",
+        "CONTACTS": "Contacts",
+        "NEW_LIST": "New List",
+        "FIRSTNAME": "First Name",
+        "LASTNAME": "Last Name",
+        "LIST": "List",
+        "COMPANY": "Company",
+        "ADD_CONTACT": "Add Contact",
+        "EDIT_CONTACT": "Edit Contact",
+        "MERGE_CONTACT": "Merge Contact",
+        "DUPLICATE_CONTACT": "Duplicate Contact",
+        "DELETE_CONTACT": "Delete Contact",
+        "CREATED_AT": "Created At",
+        "SAVE": "Save",
+        "DETAIL": "Detail",
+        "PERSONAL_INFO": "Personal Info",
+        "MOBILE": "Mobile",
+        "FAX": "Fax",
+        "TAGS": "Tags",
+        "SHOW_ALL_FIELDS": "Show all fields",
+        "FEWER_FIELDS": "Show less fields",
+        "COUNTRY": "Country",
+        "CITY": "City",
+        "STREET": "Street",
+        "POSTALCODE": "Postal Code",
+        "DELETE": "Delete",
+        "CONTACTMANAGER": "Contacts Manager",
+        "ID": "Id",
+        "SETTINGS": "Settings",
+        "GENERAL": "General",
+        "CUSTOMFIELDS": "Custom Fields",
+        "NO_CUSTOMFIELD_AVAILABLE": "No Custom Fields available",
+        "ADD_TAG": "Add Tag",
+        "NO_TAG": "No Tags",
+        "ALIAS": "Alias",
+        "TYPE": "Type",
+        "VALUE": "Value",
+        "ADD_CUSTOMFIELD": "Add Custom Field",
+        "EDIT_CUSTOMFIELD": "Edit Custom Field",
+        "DELETE_CUSTOMFIELD": "Delete Custom Field",
+        "NEW_COMPANY": "New Company",
+        "NEW_CONTACT": "New Contact",
+        "NEW_TAG": "New Tag",
+        "UPLOAD_CONTACTS": "Upload Contacts",
+        "FINISH": "Finish",
+        "SUCCESS": "Success",
+        "FAILURE": "Failure",
+        "ALL_CONTACTS": "All Contacts",
+        "NEW_CUSTOMFIELD": "New Custom Field",
+        "NO_VOICEDISPOSITION_AVAILABLE": "No Voice Dispositions available",
+        "ADD_VOICEDISPOSITION": "Add Voice Disposition",
+        "EDIT_VOICEDISPOSITION": "Edit Voice Disposition",
+        "DELETE_VOICEDISPOSITION": "Delete Voice Disposition",
+        "VAT": "VAT",
+        "COMPANYID": "Company ID",
+        "WEBSITE": "Website",
+        "EMAIL_DOMAIN": "Email Domain",
+        "ADDRESS": "Address",
+        "POSTAL_CODE": "Postal Code",
+        "SHIPMENTADDRESS": "Shipment Address",
+        "COPY_CONTACT": "Copy Contact",
+        "GOTOCONTACTS_LIST": "Show Contacts",
+        "GOTOCONTACTS_COMPANY": "Show Contacts",
+        "ADD_AGENT_TO_LIST": "Add Agent to List",
+        "AGENTADD_LIST": "Add Agents to List",
+        "NO_AVAILABLE_INFO": "No available info",
+        "NONE": "None",
+        "FULLNAME": "Full Name",
+        "CHECK_DUPLICATES": "Check Duplicates",
+        "DUPLICATES": "Duplicates",
+        "UPLOAD_CSV": "Upload CSV",
+        "TAG": "Tag",
+        "UPLOAD": "Upload",
+        "ALL_AGENTS": "All Agents",
+        "SELECTED_AGENTS": "Selected Agents",
+        "DATE_OF_BIRTH": "Date of Birth",
+        "DATEOFBIRTH": "Date of Birth",
+        "NOTES": "Notes",
+        "EXPORTCSVCONTACTS_LIST": "Export to CSV",
+        "GOTO_LIST": "Show Contacts",
+        "GOTO_COMPANY": "Show Contacts",
+        "REQUIRED": "Required",
+        "GLOBALCUSTOMFIELDS": "Global Custom Fields",
+        "NEW_GLOBALCUSTOMFIELD": "New Custom Fields",
+        "ADD_GLOBALCUSTOMFIELD": "Add Custom Field",
+        "EDIT_GLOBALCUSTOMFIELD": "Edit Custom Field",
+        "DELETE_GLOBALCUSTOMFIELD": "Delete Custom Field",
+        "JSCRIPTY": "Jscripty",
+        "SESSIONS": "Sessions",
+        "AGENT": "Agent",
+        "PROJECT": "Project"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/es.json b/public/app/main/apps/contactmanager/i18n/es.json
new file mode 100644 (file)
index 0000000..e238170
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "Nombre",
+        "LISTS": "Listas",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "EDIT_LIST": "Editar lista",
+        "DELETE_LIST": "Borrar lista",
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "FIRSTNAME_REQUIRED": "El Nombre es obligatorio",
+            "ALIAS_REQUIRED": "El alias es obligatorio",
+            "VALUE_REQUIRED": "El valor es obligatorio",
+            "EMAIL_MUST_VALID": "La dirección de correo electrónico deben escribirse en un formato válido",
+            "PHONE_REQUIRED": "El teléfono es necesario"
+        },
+        "DESCRIPTION": "Descripción",
+        "DISPOSITIONS": "Disposiciones",
+        "VOICEDISPOSITIONS": "Disposiciones de voz",
+        "NEW_VOICEDISPOSITION": "Nueva disposición de voz",
+        "CUSTOM_FIELDS": "Campos personalizados",
+        "ADD_LIST": "Agregar lista",
+        "BACK": "Volver",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "COMPANIES": "Las empresas",
+        "EDIT_COMPANY": "Edite la empresa",
+        "DELETE_COMPANY": "Eliminar empresa",
+        "PHONE": "Teléfono",
+        "EMAIL": "Correo electrónico",
+        "ADD_COMPANY": "Agregar Empresa",
+        "CONTACTS": "Contactos",
+        "NEW_LIST": "Nueva lista",
+        "FIRSTNAME": "Primer Nombre",
+        "LASTNAME": "Apellido",
+        "LIST": "Lista",
+        "COMPANY": "Compañía",
+        "ADD_CONTACT": "Agregar contacto",
+        "EDIT_CONTACT": "Editar contacto",
+        "MERGE_CONTACT": "Combinar Contacto",
+        "DUPLICATE_CONTACT": "Contacto duplicado",
+        "DELETE_CONTACT": "Eliminar contacto",
+        "CREATED_AT": "Creado en",
+        "SAVE": "Guardar",
+        "DETAIL": "Detalle",
+        "PERSONAL_INFO": "Información personal",
+        "MOBILE": "Mobile",
+        "FAX": "Fax",
+        "TAGS": "Tags",
+        "SHOW_ALL_FIELDS": "Mostrar todos los campos",
+        "FEWER_FIELDS": "Mostrar menos campos",
+        "COUNTRY": "País",
+        "CITY": "Ciudad",
+        "STREET": "Street",
+        "POSTALCODE": "Código postal",
+        "DELETE": "Eliminar",
+        "CONTACTMANAGER": "Administrador de contactos",
+        "ID": "Id",
+        "SETTINGS": "Configuración",
+        "GENERAL": "General",
+        "CUSTOMFIELDS": "Campos personalizados",
+        "NO_CUSTOMFIELD_AVAILABLE": "No hay campos personalizados disponibles",
+        "ALIAS": "Alias",
+        "TYPE": "Tipo",
+        "VALUE": "Valor",
+        "ADD_CUSTOMFIELD": "Agregar campo personalizado",
+        "EDIT_CUSTOMFIELD": "Editar campo personalizado",
+        "DELETE_CUSTOMFIELD": "Eliminar campo personalizado",
+        "NEW_COMPANY": "Nueva empresa",
+        "NEW_CONTACT": "Nuevo contacto",
+        "NEW_TAG": "Nueva etiqueta",
+        "UPLOAD_CONTACTS": "Cargar los contactos",
+        "FINISH": "Finalizar",
+        "SUCCESS": "Éxito",
+        "FAILURE": "Fracaso",
+        "ALL_CONTACTS": "Todos los contactos",
+        "NEW_CUSTOMFIELD": "Nuevo campo personalizado",
+        "NO_VOICEDISPOSITION_AVAILABLE": "No hay disposiciones de voz disponible",
+        "ADD_VOICEDISPOSITION": "Añadir voz Disposición",
+        "EDIT_VOICEDISPOSITION": "Editar voz Disposición",
+        "DELETE_VOICEDISPOSITION": "Eliminar la disposición de voz",
+        "VAT": "Iva",
+        "COMPANYID": "La identificación de la compañía",
+        "WEBSITE": "Sitio web",
+        "EMAIL_DOMAIN": "El dominio de correo electrónico",
+        "ADDRESS": "Dirección",
+        "POSTAL_CODE": "Código postal",
+        "SHIPMENTADDRESS": "Dirección de envío",
+        "COPY_CONTACT": "Copiar contacto",
+        "GOTOCONTACTS_LIST": "Mostrar contactos",
+        "GOTOCONTACTS_COMPANY": "Mostrar contactos",
+        "ADD_AGENT_TO_LIST": "Agregar a la lista de agentes",
+        "AGENTADD_LIST": "Agregar a la lista de agentes",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "NONE": "Ninguno",
+        "FULLNAME": "Nombre completo",
+        "CHECK_DUPLICATES": "Verificar duplicados",
+        "DUPLICATES": "Duplicados",
+        "UPLOAD_CSV": "Cargar archivo CSV",
+        "TAG": "Tag",
+        "UPLOAD": "Subir",
+        "ALL_AGENTS": "Todos los agentes",
+        "SELECTED_AGENTS": "Los agentes seleccionados",
+        "DATE_OF_BIRTH": "Fecha de nacimiento",
+        "NOTES": "Notas",
+        "EXPORTCSVCONTACTS_LIST": "Exportar a CSV",
+        "GOTO_LIST": "Mostrar contactos",
+        "GOTO_COMPANY": "Mostrar contactos",
+        "REQUIRED": "Requerido",
+        "DATEOFBIRTH": "Fecha de nacimiento",
+        "NO_COMPANIES": "Ninguna empresa",
+        "ADD_TAG": "Agregar etiqueta",
+        "NO_TAG": "Sin etiquetas",
+        "GLOBALCUSTOMFIELDS": "Campos personalizados globales",
+        "NEW_GLOBALCUSTOMFIELD": "Nuevos campos personalizados",
+        "ADD_GLOBALCUSTOMFIELD": "Agregar campo personalizado",
+        "EDIT_GLOBALCUSTOMFIELD": "Editar campo personalizado",
+        "DELETE_GLOBALCUSTOMFIELD": "Eliminar campo personalizado",
+        "STATE": "Estado",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "El estado",
+        "STARTTIME": "Hora de inicio",
+        "ENDTIME": "Hora de finalización",
+        "MOTION_BULL": "Motion Bull",
+        "HOPPER": "La tolva",
+        "FINAL": "Final de tolva",
+        "HISTORY": "Historia de tolva",
+        "SCHEDULEDAT": "Programadas en",
+        "EDIT_HOPPER": "Editar Hopper",
+        "DELETE_HOPPER": "Eliminar la tolva",
+        "RELOAD": "Recargar",
+        "DISPOSITION": "Disposición"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/fa.json b/public/app/main/apps/contactmanager/i18n/fa.json
new file mode 100644 (file)
index 0000000..d9848ae
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "نام",
+        "LISTS": "فهرست",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "EDIT_LIST": "ویرایش لیست",
+        "DELETE_LIST": "لیست حذف کنید",
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "FIRSTNAME_REQUIRED": "اسم اول لازم است.",
+            "ALIAS_REQUIRED": "عبدالرزاق، لازم است.",
+            "VALUE_REQUIRED": "مقدار مورد نیاز است.",
+            "EMAIL_MUST_VALID": "آدرس ایمیل باید با فرمت معتبر نوشته شده است",
+            "PHONE_REQUIRED": "تلفن لازم است."
+        },
+        "DESCRIPTION": "شرح",
+        "DISPOSITIONS": "مكتبى",
+        "VOICEDISPOSITIONS": "مكتبى صدا",
+        "NEW_VOICEDISPOSITION": "صداي جديد 1626",
+        "CUSTOM_FIELDS": "رشته های سفارشی",
+        "ADD_LIST": "لیست اضافه کنید",
+        "BACK": "پشت",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "COMPANIES": "شرکت",
+        "EDIT_COMPANY": "ویرایش شرکت",
+        "DELETE_COMPANY": "شرکت حذف می شود",
+        "PHONE": "تلفن همراه",
+        "EMAIL": "آدرس ایمیل",
+        "ADD_COMPANY": "شرکت اضافه کنید",
+        "CONTACTS": "لنز",
+        "NEW_LIST": "لیست جدید",
+        "FIRSTNAME": "اسم اول",
+        "LASTNAME": "نام خانوادگ",
+        "LIST": "فهرست",
+        "COMPANY": "شرکت",
+        "ADD_CONTACT": "افزودن تماس",
+        "EDIT_CONTACT": "ویرایش تماس",
+        "MERGE_CONTACT": "ادغام تماس",
+        "DUPLICATE_CONTACT": "تماس تکراری",
+        "DELETE_CONTACT": "حذف تماس",
+        "CREATED_AT": "ایجاد شده در",
+        "SAVE": "ذخیره",
+        "DETAIL": "جزئیات",
+        "PERSONAL_INFO": "اطلاعات شخصی",
+        "MOBILE": "تلفن همراه",
+        "FAX": "فاكس",
+        "TAGS": "برچسب",
+        "SHOW_ALL_FIELDS": "نمایش همه زمينه ها",
+        "FEWER_FIELDS": "مزارع کمتر نشان داده می شود",
+        "COUNTRY": "كشور",
+        "CITY": "شهر",
+        "STREET": "خيابان",
+        "POSTALCODE": "کد پستی",
+        "DELETE": "حذف",
+        "CONTACTMANAGER": "تماس با مدیر",
+        "ID": "شناسه",
+        "SETTINGS": "تنظیمات",
+        "GENERAL": "سردار",
+        "CUSTOMFIELDS": "رشته های سفارشی",
+        "NO_CUSTOMFIELD_AVAILABLE": "نه رشته های اختصاصی در دسترس نیست",
+        "ALIAS": "عبدالرزاق",
+        "TYPE": "نوع دستگاه",
+        "VALUE": "مقدار",
+        "ADD_CUSTOMFIELD": "افزودن زمینه سفارشی",
+        "EDIT_CUSTOMFIELD": "ویرایش اختصاصی رشته",
+        "DELETE_CUSTOMFIELD": "رسم بر اين رشته را حذف کنید",
+        "NEW_COMPANY": "شرکت جدید",
+        "NEW_CONTACT": "تماس جدید",
+        "NEW_TAG": "برچسب جدید",
+        "UPLOAD_CONTACTS": "تماس با بارگذاری",
+        "FINISH": "پایان",
+        "SUCCESS": "موفقیت",
+        "FAILURE": "قصور",
+        "ALL_CONTACTS": "همه تماس ها",
+        "NEW_CUSTOMFIELD": "رسم میدان جدید",
+        "NO_VOICEDISPOSITION_AVAILABLE": "صداي هيچ مكتبى در دسترس نیست",
+        "ADD_VOICEDISPOSITION": "افزودن صدا 1626",
+        "EDIT_VOICEDISPOSITION": "ویرایش صدا 1626",
+        "DELETE_VOICEDISPOSITION": "1626 صدا را حذف کنید",
+        "VAT": "آذهم",
+        "COMPANYID": "شناسه شرکت",
+        "WEBSITE": "وب سايت",
+        "EMAIL_DOMAIN": "حوزه ایمیل",
+        "ADDRESS": "آدرس",
+        "POSTAL_CODE": "کد پستی",
+        "SHIPMENTADDRESS": "ميرسانيدند آدرس",
+        "COPY_CONTACT": "کپی کردن تماس",
+        "GOTOCONTACTS_LIST": "نمایش تماس ها",
+        "GOTOCONTACTS_COMPANY": "نمایش تماس ها",
+        "ADD_AGENT_TO_LIST": "عمال خود را به لیست اضافه کنید",
+        "AGENTADD_LIST": "عمال خود را به لیست اضافه کنید",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "NONE": "هیچ",
+        "FULLNAME": "نام کامل",
+        "CHECK_DUPLICATES": "امريکايي را بررسی کنید",
+        "DUPLICATES": "امريکايي",
+        "UPLOAD_CSV": "با فرمت CSV بارگذاری",
+        "TAG": "برچسب",
+        "UPLOAD": "بارگذاری",
+        "ALL_AGENTS": "همه عوامل",
+        "SELECTED_AGENTS": "عوامل انتخاب شده",
+        "DATE_OF_BIRTH": "تاریخ تولد",
+        "NOTES": "يادداشت ها",
+        "EXPORTCSVCONTACTS_LIST": "صادرات با فرمت CSV",
+        "GOTO_LIST": "نمایش تماس ها",
+        "GOTO_COMPANY": "نمایش تماس ها",
+        "REQUIRED": "لازم است",
+        "DATEOFBIRTH": "تاریخ تولد",
+        "NO_COMPANIES": "نه شرکت",
+        "ADD_TAG": "برچسب اضافه کنید",
+        "NO_TAG": "نه برچسب",
+        "GLOBALCUSTOMFIELDS": "رسم عرصه جهانی",
+        "NEW_GLOBALCUSTOMFIELD": "رشته های سفارشی جدید",
+        "ADD_GLOBALCUSTOMFIELD": "افزودن زمینه سفارشی",
+        "EDIT_GLOBALCUSTOMFIELD": "ویرایش اختصاصی رشته",
+        "DELETE_GLOBALCUSTOMFIELD": "رسم بر اين رشته را حذف کنید",
+        "STATE": "دولت",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "وضعیت",
+        "STARTTIME": "زمان شروع",
+        "ENDTIME": "زمان پایان",
+        "MOTION_BULL": "حركت گاو",
+        "HOPPER": "هوپر",
+        "FINAL": "هوپر فینال",
+        "HISTORY": "هوپر سابقه",
+        "SCHEDULEDAT": "طبق برنامه در",
+        "EDIT_HOPPER": "ویرایش هوپر",
+        "DELETE_HOPPER": "هوپر را حذف کنید",
+        "RELOAD": "امارات - آث میلان",
+        "DISPOSITION": "1626"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/fi.json b/public/app/main/apps/contactmanager/i18n/fi.json
new file mode 100644 (file)
index 0000000..7dca83f
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "Nimi",
+        "LISTS": "Luettelo",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "EDIT_LIST": "Muokkaa luetteloa",
+        "DELETE_LIST": "Poista lista",
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "FIRSTNAME_REQUIRED": "Etunimi on pakollinen",
+            "ALIAS_REQUIRED": "Alias on pakollinen",
+            "VALUE_REQUIRED": "Arvo on pakollinen",
+            "EMAIL_MUST_VALID": "Sähköpostiosoite on kirjoitettava kelvollisessa muodossa",
+            "PHONE_REQUIRED": "Puhelin ei tarvita"
+        },
+        "DESCRIPTION": "Kuvaus",
+        "DISPOSITIONS": "Yhteisyys",
+        "VOICEDISPOSITIONS": "Voice yhteisyys",
+        "NEW_VOICEDISPOSITION": "Uudet vastaajaviestit jatkokäsittely",
+        "CUSTOM_FIELDS": "Mukautetut kentät",
+        "ADD_LIST": "Lisää nimi.",
+        "BACK": "Takaisin",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "COMPANIES": "Yritykset",
+        "EDIT_COMPANY": "Muokkaa yrityksen",
+        "DELETE_COMPANY": "Poistaa yrityksiä",
+        "PHONE": "Puhelin",
+        "EMAIL": "Sähköposti",
+        "ADD_COMPANY": "Lisää yritys",
+        "CONTACTS": "Yhteystiedot",
+        "NEW_LIST": "Uusi lista",
+        "FIRSTNAME": "Etunimi",
+        "LASTNAME": "Sukunimi",
+        "LIST": "Luettelo",
+        "COMPANY": "Yritys",
+        "ADD_CONTACT": "Kontaktin lisääminen",
+        "EDIT_CONTACT": "Muokkaa kontaktia",
+        "MERGE_CONTACT": "Yhdistä yhteystiedot",
+        "DUPLICATE_CONTACT": "Kopioi yhteystiedot",
+        "DELETE_CONTACT": "Poista kontakti",
+        "CREATED_AT": "Luodaan",
+        "SAVE": "Tallenna",
+        "DETAIL": "Yksityiskohta",
+        "PERSONAL_INFO": "Henkilökohtaiset tiedot",
+        "MOBILE": "Mobile",
+        "FAX": "Faksi",
+        "TAGS": "Tunnisteet",
+        "SHOW_ALL_FIELDS": "Näytä kaikki kentät",
+        "FEWER_FIELDS": "Näytä vähemmän kenttiä",
+        "COUNTRY": "Maa",
+        "CITY": "Kaupunki",
+        "STREET": "Katu",
+        "POSTALCODE": "Postinumero",
+        "DELETE": "Poista",
+        "CONTACTMANAGER": "Yhteystietojen hallinta",
+        "ID": "Tunnus",
+        "SETTINGS": "Asetusten määrittäminen",
+        "GENERAL": "Yleistä",
+        "CUSTOMFIELDS": "Mukautetut kentät",
+        "NO_CUSTOMFIELD_AVAILABLE": "N Räätälöidyissä kentissä käytettävissä",
+        "ALIAS": "Alias",
+        "TYPE": "Tyyppi",
+        "VALUE": "Arvo",
+        "ADD_CUSTOMFIELD": "Lisää mukautettu kenttä",
+        "EDIT_CUSTOMFIELD": "Muokkaa mukautettua kenttää",
+        "DELETE_CUSTOMFIELD": "Poista mukautettu kenttä",
+        "NEW_COMPANY": "Uusi yritys",
+        "NEW_CONTACT": "Purista johtoon uusi kosketin",
+        "NEW_TAG": "Uutta Tag",
+        "UPLOAD_CONTACTS": "Lataa yhteystiedot",
+        "FINISH": "Viimeistely",
+        "SUCCESS": "Menestystä",
+        "FAILURE": "Virhe",
+        "ALL_CONTACTS": "Kaikki yhteystiedot",
+        "NEW_CUSTOMFIELD": "Uusi mukautettu kenttä",
+        "NO_VOICEDISPOSITION_AVAILABLE": "Ääninäyttelijöitä ei ole käytettävissä käytäessä",
+        "ADD_VOICEDISPOSITION": "Lisää ääni jatkokäsittely",
+        "EDIT_VOICEDISPOSITION": "Muokkaa Voice jatkokäsittely",
+        "DELETE_VOICEDISPOSITION": "Poistaa jatkokäsittely",
+        "VAT": "Alv",
+        "COMPANYID": "Yrityksen tunnus",
+        "WEBSITE": "Sivusto",
+        "EMAIL_DOMAIN": "Sähköpostiosoite Domain",
+        "ADDRESS": "Osoite",
+        "POSTAL_CODE": "Postinumero",
+        "SHIPMENTADDRESS": "Lähetykseen osoite",
+        "COPY_CONTACT": "Kopioi yhteystiedot",
+        "GOTOCONTACTS_LIST": "Näytä yhteystiedot",
+        "GOTOCONTACTS_COMPANY": "Näytä yhteystiedot",
+        "ADD_AGENT_TO_LIST": "Lisää agentteja ja osaluettelo",
+        "AGENTADD_LIST": "Lisää agentteja ja osaluettelo",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "NONE": "Mikään",
+        "FULLNAME": "Täydellinen nimi",
+        "CHECK_DUPLICATES": "Tarkista kopiot",
+        "DUPLICATES": "Kaksoiskappaleita",
+        "UPLOAD_CSV": "Lataa CSV",
+        "TAG": "Tag",
+        "UPLOAD": "Lataa",
+        "ALL_AGENTS": "Kaikki toimijat",
+        "SELECTED_AGENTS": "Valitut edustajat",
+        "DATE_OF_BIRTH": "Syntymäaika",
+        "NOTES": "Huomautukset",
+        "EXPORTCSVCONTACTS_LIST": "Vie CSV-muotoon",
+        "GOTO_LIST": "Näytä yhteystiedot",
+        "GOTO_COMPANY": "Näytä yhteystiedot",
+        "REQUIRED": "Tarpeen mukaan",
+        "DATEOFBIRTH": "Syntymäaika",
+        "NO_COMPANIES": "Tanssimattopelien",
+        "ADD_TAG": "Lisää tunniste",
+        "NO_TAG": "Ole tunnisteita",
+        "GLOBALCUSTOMFIELDS": "Global mukautetut kentät",
+        "NEW_GLOBALCUSTOMFIELD": "Uusia mukautettuja kenttiä",
+        "ADD_GLOBALCUSTOMFIELD": "Lisää mukautettu kenttä",
+        "EDIT_GLOBALCUSTOMFIELD": "Muokkaa mukautettua kenttää",
+        "DELETE_GLOBALCUSTOMFIELD": "Poista mukautettu kenttä",
+        "STATE": "Tila",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "Tila",
+        "STARTTIME": "Aloitusaika",
+        "ENDTIME": "Kerran kuukaudessa Kaksi kertaa kuukaudessa Kolme kertaa kuukaudessa",
+        "MOTION_BULL": "Motion Bull",
+        "HOPPER": "Kahvipapusäiliön",
+        "FINAL": "Kahvipapusäiliön lopullinen",
+        "HISTORY": "Kahvipapusäiliön historia",
+        "SCHEDULEDAT": "Ajoitusajankohta",
+        "EDIT_HOPPER": "Muokkaa Hopper",
+        "DELETE_HOPPER": "Poista Hopper",
+        "RELOAD": "Lataa",
+        "DISPOSITION": "Jatkokäsittely"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/fr.json b/public/app/main/apps/contactmanager/i18n/fr.json
new file mode 100644 (file)
index 0000000..9182aeb
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "Nom",
+        "LISTS": "Lists",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "EDIT_LIST": "Modifier la liste",
+        "DELETE_LIST": "Liste de suppression",
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "FIRSTNAME_REQUIRED": "Le premier nom est obligatoire",
+            "ALIAS_REQUIRED": "L'Alias est requis",
+            "VALUE_REQUIRED": "Cette valeur est requise",
+            "EMAIL_MUST_VALID": "L'adresse e-mail doivent être écrites dans un format valide",
+            "PHONE_REQUIRED": "Le téléphone est requis"
+        },
+        "DESCRIPTION": "Description",
+        "DISPOSITIONS": "Dispositions",
+        "VOICEDISPOSITIONS": "Dispositions de la voix",
+        "NEW_VOICEDISPOSITION": "Nouvelle disposition vocale",
+        "CUSTOM_FIELDS": "Champs personnalisés",
+        "ADD_LIST": "Ajout d'une liste",
+        "BACK": "Retour",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "COMPANIES": "Entreprises",
+        "EDIT_COMPANY": "Société d'édition",
+        "DELETE_COMPANY": "Supprimer Company",
+        "PHONE": "Téléphone",
+        "EMAIL": "Email",
+        "ADD_COMPANY": "Ajouter la compagnie",
+        "CONTACTS": "Contacts",
+        "NEW_LIST": "Nouvelle liste",
+        "FIRSTNAME": "Prénom",
+        "LASTNAME": "Nom",
+        "LIST": "Liste",
+        "COMPANY": "Company",
+        "ADD_CONTACT": "Ajouter un contact",
+        "EDIT_CONTACT": "Modifier le contact",
+        "MERGE_CONTACT": "Contact Fusion",
+        "DUPLICATE_CONTACT": "Contact en double",
+        "DELETE_CONTACT": "Supprimer le contact",
+        "CREATED_AT": "Créé à",
+        "SAVE": "Sauvegarder",
+        "DETAIL": "Détail",
+        "PERSONAL_INFO": "Infos personnelles",
+        "MOBILE": "Mobile",
+        "FAX": "Fax",
+        "TAGS": "Tags",
+        "SHOW_ALL_FIELDS": "Afficher tous les champs",
+        "FEWER_FIELDS": "Afficher moins de champs",
+        "COUNTRY": "Pays",
+        "CITY": "Ville",
+        "STREET": "Street",
+        "POSTALCODE": "Code postal",
+        "DELETE": "Supprimer",
+        "CONTACTMANAGER": "Gestionnaire de contacts",
+        "ID": "Id",
+        "SETTINGS": "Settings",
+        "GENERAL": "Général",
+        "CUSTOMFIELDS": "Champs personnalisés",
+        "NO_CUSTOMFIELD_AVAILABLE": "Pas de champs personnalisés disponibles",
+        "ALIAS": "Alias",
+        "TYPE": "Type",
+        "VALUE": "Valeur",
+        "ADD_CUSTOMFIELD": "Ajouter un champ personnalisé",
+        "EDIT_CUSTOMFIELD": "Modifier un champ personnalisé",
+        "DELETE_CUSTOMFIELD": "Supprimer un champ personnalisé",
+        "NEW_COMPANY": "Nouvelle société",
+        "NEW_CONTACT": "Nouveau contact",
+        "NEW_TAG": "Nouvelle balise",
+        "UPLOAD_CONTACTS": "Téléchargement Contacts",
+        "FINISH": "Terminer",
+        "SUCCESS": "Succès",
+        "FAILURE": "L'échec",
+        "ALL_CONTACTS": "Tous les contacts",
+        "NEW_CUSTOMFIELD": "Nouveau champ personnalisé",
+        "NO_VOICEDISPOSITION_AVAILABLE": "Aucune disposition de la Voix disponible",
+        "ADD_VOICEDISPOSITION": "Ajouter la disposition de la voix",
+        "EDIT_VOICEDISPOSITION": "Modifier la disposition de la voix",
+        "DELETE_VOICEDISPOSITION": "Supprimer la disposition de la voix",
+        "VAT": "Tva",
+        "COMPANYID": "ID de l'entreprise",
+        "WEBSITE": "Site web",
+        "EMAIL_DOMAIN": "Domaine de messagerie",
+        "ADDRESS": "Répondre",
+        "POSTAL_CODE": "Code postal",
+        "SHIPMENTADDRESS": "Adresse d'expédition",
+        "COPY_CONTACT": "Copier le contact",
+        "GOTOCONTACTS_LIST": "Afficher les contacts",
+        "GOTOCONTACTS_COMPANY": "Afficher les contacts",
+        "ADD_AGENT_TO_LIST": "Ajouter à ma liste d'agents",
+        "AGENTADD_LIST": "Ajouter à ma liste d'agents",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "NONE": "Aucun",
+        "FULLNAME": "Nom complet",
+        "CHECK_DUPLICATES": "Vérifier les doublons",
+        "DUPLICATES": "Les doublons",
+        "UPLOAD_CSV": "Télécharger CSV",
+        "TAG": "Tag",
+        "UPLOAD": "Télécharger",
+        "ALL_AGENTS": "Tous les Agents",
+        "SELECTED_AGENTS": "Agents sélectionnés",
+        "DATE_OF_BIRTH": "Date de naissance",
+        "NOTES": "Note",
+        "EXPORTCSVCONTACTS_LIST": "Exporter en CSV",
+        "GOTO_LIST": "Afficher les contacts",
+        "GOTO_COMPANY": "Afficher les contacts",
+        "REQUIRED": "Nécessaire",
+        "DATEOFBIRTH": "Date de naissance",
+        "NO_COMPANIES": "Aucune entreprise",
+        "ADD_TAG": "Ajouter une balise",
+        "NO_TAG": "Pas de tags",
+        "GLOBALCUSTOMFIELDS": "Les champs personnalisés",
+        "NEW_GLOBALCUSTOMFIELD": "Nouveaux champs personnalisés",
+        "ADD_GLOBALCUSTOMFIELD": "Ajouter un champ personnalisé",
+        "EDIT_GLOBALCUSTOMFIELD": "Modifier un champ personnalisé",
+        "DELETE_GLOBALCUSTOMFIELD": "Supprimer un champ personnalisé",
+        "STATE": "State",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "Status",
+        "STARTTIME": "Temps de démarrage",
+        "ENDTIME": "L'Heure de fin",
+        "MOTION_BULL": "Motion Bull",
+        "HOPPER": "Hopper",
+        "FINAL": "Finale de la trémie",
+        "HISTORY": "Histoire de la trémie",
+        "SCHEDULEDAT": "Service à",
+        "EDIT_HOPPER": "Éditer Hopper",
+        "DELETE_HOPPER": "Supprimer Hopper",
+        "RELOAD": "Recharger",
+        "DISPOSITION": "Disposition"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/hi.json b/public/app/main/apps/contactmanager/i18n/hi.json
new file mode 100644 (file)
index 0000000..39316be
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "नाम",
+        "LISTS": "सूचियां",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "EDIT_LIST": "सूची को संपादित करें",
+        "DELETE_LIST": "सूची हटाएं",
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "FIRSTNAME_REQUIRED": "पहला नाम की आवश्यकता है।",
+            "ALIAS_REQUIRED": "इस उर्फ अपेक्षित है।",
+            "VALUE_REQUIRED": "मूल्य की आवश्यकता है।",
+            "EMAIL_MUST_VALID": "ईमेल पते को मान्य स्वरूप में लिखा होना",
+            "PHONE_REQUIRED": "फ़ोन की आवश्यकता है।"
+        },
+        "DESCRIPTION": "वर्णन",
+        "DISPOSITIONS": "प्रवृतियों",
+        "VOICEDISPOSITIONS": "वॉयस प्रवृतियों",
+        "NEW_VOICEDISPOSITION": "नए वॉयस मिजाज",
+        "CUSTOM_FIELDS": "कस्टम फ़ील्ड्स",
+        "ADD_LIST": "सूची में जोड़ें",
+        "BACK": "वापिस",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "COMPANIES": "कम्पनियों",
+        "EDIT_COMPANY": "कंपनी को संपादित करें",
+        "DELETE_COMPANY": "कंपनी को हटाएं",
+        "PHONE": "फ़ोन",
+        "EMAIL": "ई-मेल",
+        "ADD_COMPANY": "कंपनी को जोड़ें",
+        "CONTACTS": "संपर्क",
+        "NEW_LIST": "नई सूची",
+        "FIRSTNAME": "प्रथम नाम",
+        "LASTNAME": "अंतिम नाम",
+        "LIST": "की सूची",
+        "COMPANY": "कंपनी",
+        "ADD_CONTACT": "संपर्क जोड़ें",
+        "EDIT_CONTACT": "संपर्क संपादित करें",
+        "MERGE_CONTACT": "विलय से संपर्क करें.",
+        "DUPLICATE_CONTACT": "डुप्लिकेट संपर्क",
+        "DELETE_CONTACT": "संपर्क हटाएं",
+        "CREATED_AT": "सृजित",
+        "SAVE": "सहेजें",
+        "DETAIL": "विस्तार",
+        "PERSONAL_INFO": "व्यक्तिगत जानकारी",
+        "MOBILE": "मोबाइल",
+        "FAX": "फ़ैक्स",
+        "TAGS": "टैग्स",
+        "SHOW_ALL_FIELDS": "सभी क्षेत्रों में दिखाएं",
+        "FEWER_FIELDS": "खेतों में कम दिखाएं",
+        "COUNTRY": "देश",
+        "CITY": "शहर",
+        "STREET": "सड़क पर",
+        "POSTALCODE": "पोस्टल कोड",
+        "DELETE": "हटाना",
+        "CONTACTMANAGER": "संपर्कों के प्रबंधक",
+        "ID": "Id",
+        "SETTINGS": "सेटिंग्स",
+        "GENERAL": "सामान्य",
+        "CUSTOMFIELDS": "कस्टम फ़ील्ड्स",
+        "NO_CUSTOMFIELD_AVAILABLE": "कस्टम फ़ील्ड्स उपलब्ध नहीं",
+        "ALIAS": "उर्फ",
+        "TYPE": "प्रकार",
+        "VALUE": "मूल्य",
+        "ADD_CUSTOMFIELD": "कस्टम फ़ील्ड जोड़ें",
+        "EDIT_CUSTOMFIELD": "कस्टम फ़ील्ड संपादित करें",
+        "DELETE_CUSTOMFIELD": "कस्टम फ़ील्ड को हटाएं",
+        "NEW_COMPANY": "नई कंपनी",
+        "NEW_CONTACT": "नया संपर्क",
+        "NEW_TAG": "नया टैग",
+        "UPLOAD_CONTACTS": "अपलोड संपर्क",
+        "FINISH": "समाप्त करना",
+        "SUCCESS": "सफलता",
+        "FAILURE": "असफल",
+        "ALL_CONTACTS": "सभी संपर्कों को",
+        "NEW_CUSTOMFIELD": "नई कस्टम फ़ील्ड",
+        "NO_VOICEDISPOSITION_AVAILABLE": "कोई ध्वनि प्रवृतियों उपलब्ध",
+        "ADD_VOICEDISPOSITION": "सरकारीतंत्र ध्वनि स्वर जोड़ें",
+        "EDIT_VOICEDISPOSITION": "सरकारीतंत्र आवाज संपादित करें",
+        "DELETE_VOICEDISPOSITION": "सरकारीतंत्र आवाज को हटाएं",
+        "VAT": "वेट",
+        "COMPANYID": "कंपनी ID",
+        "WEBSITE": "वेबसाइट",
+        "EMAIL_DOMAIN": "ई-मेल डोमेन",
+        "ADDRESS": "पता",
+        "POSTAL_CODE": "पोस्टल कोड",
+        "SHIPMENTADDRESS": "शिपमेंट पता",
+        "COPY_CONTACT": "संपर्क कॉपी करें",
+        "GOTOCONTACTS_LIST": "संपर्क दिखाएं",
+        "GOTOCONTACTS_COMPANY": "संपर्क दिखाएं",
+        "ADD_AGENT_TO_LIST": "सूची में जोड़ने एजेंटों के",
+        "AGENTADD_LIST": "सूची में जोड़ने एजेंटों के",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "NONE": "कोई नहीं",
+        "FULLNAME": "पूरा नाम",
+        "CHECK_DUPLICATES": "हमशक्ल जांचें",
+        "DUPLICATES": "हमशक्ल",
+        "UPLOAD_CSV": "अपलोड CSV",
+        "TAG": "तग",
+        "UPLOAD": "अपलोड करना",
+        "ALL_AGENTS": "सभी एजेंटों",
+        "SELECTED_AGENTS": "चयनित एजेंटों",
+        "DATE_OF_BIRTH": "जन्म दिनांक",
+        "NOTES": "करती",
+        "EXPORTCSVCONTACTS_LIST": "निर्यात के लिए CSV",
+        "GOTO_LIST": "संपर्क दिखाएं",
+        "GOTO_COMPANY": "संपर्क दिखाएं",
+        "REQUIRED": "आवश्यकता",
+        "DATEOFBIRTH": "जन्म दिनांक",
+        "NO_COMPANIES": "कोई कंपनी",
+        "ADD_TAG": "मौजूदासंदर्भ में जोड़ें",
+        "NO_TAG": "कोई टैग्स",
+        "GLOBALCUSTOMFIELDS": "ग्लोबल कस्टम फ़ील्ड्स",
+        "NEW_GLOBALCUSTOMFIELD": "नई कस्टम फ़ील्ड्स",
+        "ADD_GLOBALCUSTOMFIELD": "कस्टम फ़ील्ड जोड़ें",
+        "EDIT_GLOBALCUSTOMFIELD": "कस्टम फ़ील्ड संपादित करें",
+        "DELETE_GLOBALCUSTOMFIELD": "कस्टम फ़ील्ड को हटाएं",
+        "STATE": "राज्य",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "की स्थिति",
+        "STARTTIME": "समय प्रारंभ करें",
+        "ENDTIME": "समाप्ति समय",
+        "MOTION_BULL": "प्रस्ताव सांड",
+        "HOPPER": "हॉपर",
+        "FINAL": "हॉपर के फायनल में",
+        "HISTORY": "हॉपर इतिहास",
+        "SCHEDULEDAT": "अनुसूचित पर",
+        "EDIT_HOPPER": "हॉपर संपादित करें",
+        "DELETE_HOPPER": "हॉपर को हटाएं",
+        "RELOAD": "पुन: लोड करें",
+        "DISPOSITION": "सरकारीतंत्र"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/it.json b/public/app/main/apps/contactmanager/i18n/it.json
new file mode 100644 (file)
index 0000000..2afffad
--- /dev/null
@@ -0,0 +1,138 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "Nome",
+        "LISTS": "Liste",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "EDIT_LIST": "Modifica Lista",
+        "DELETE_LIST": "Elimina Lista",
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "FIRSTNAME_REQUIRED": "Il Nome è richiesto",
+            "ALIAS_REQUIRED": "L' Alias è richiesto",
+            "VALUE_REQUIRED": "Il Valore è richiesto",
+            "EMAIL_MUST_VALID": "L' indirizzo email deve essere in un formato valido",
+            "PHONE_REQUIRED": "Il telefono è obbligatorio"
+        },
+        "DESCRIPTION": "Descrizione",
+        "DISPOSITIONS": "Disposizioni",
+        "VOICEDISPOSITIONS": "Disposizioni Voce",
+        "NEW_VOICEDISPOSITION": "Nuova Disposizione Voce",
+        "CUSTOM_FIELDS": "Campi Custom",
+        "ADD_LIST": "Aggiungi Lista",
+        "BACK": "Indietro",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutto",
+        "SELECT_NONE": "Deseleziona tutto",
+        "COMPANIES": "Compagnie",
+        "EDIT_COMPANY": "Modifica Compagnia",
+        "DELETE_COMPANY": "Elimina Compagnia",
+        "PHONE": "Telefono",
+        "EMAIL": "Email",
+        "ADD_COMPANY": "Aggiungi Compagnia",
+        "CONTACTS": "Contatti",
+        "NEW_LIST": "Nuova Lista",
+        "FIRSTNAME": "Nome",
+        "LASTNAME": "Cognome",
+        "LIST": "Lista",
+        "COMPANY": "Compagnia",
+        "ADD_CONTACT": "Aggiungi Contatto",
+        "EDIT_CONTACT": "Modifica Contatto",
+        "MERGE_CONTACT": "Unisci Contatto",
+        "DUPLICATE_CONTACT": "Duplica Contatto",
+        "DELETE_CONTACT": "Elimina Contatto",
+        "CREATED_AT": "Creato Il",
+        "SAVE": "Salva",
+        "DETAIL": "Dettagli",
+        "PERSONAL_INFO": "Info Personali",
+        "MOBILE": "Cellulare",
+        "FAX": "Fax",
+        "TAGS": "Tags",
+        "SHOW_ALL_FIELDS": "Mostra tutti i campi",
+        "FEWER_FIELDS": "Mostra meno campi",
+        "COUNTRY": "Paese",
+        "CITY": "Città",
+        "STREET": "Via/Corso/Piazza",
+        "POSTALCODE": "CAP",
+        "DELETE": "Elimina",
+        "CONTACTMANAGER": "Manager Contatti",
+        "ID": "Id",
+        "SETTINGS": "Impostazioni",
+        "GENERAL": "Generale",
+        "CUSTOMFIELDS": "Campi Custom",
+        "NO_CUSTOMFIELD_AVAILABLE": "Nessun campo custom disponibile",
+        "ALIAS": "Alias",
+        "TYPE": "Tipo",
+        "VALUE": "Valore",
+        "ADD_CUSTOMFIELD": "Aggiungi Campo Custom",
+        "EDIT_CUSTOMFIELD": "Modifica Campo Custom",
+        "DELETE_CUSTOMFIELD": "Elimina Campo Custom",
+        "NEW_COMPANY": "Nuova Compagnia",
+        "NEW_CONTACT": "Nuovo contatto",
+        "NEW_TAG": "Nuovo Tag",
+        "UPLOAD_CONTACTS": "Upload Contatti",
+        "FINISH": "Fine",
+        "SUCCESS": "Successo",
+        "FAILURE": "Fallimento",
+        "ALL_CONTACTS": "Tutti i contatti",
+        "NEW_CUSTOMFIELD": "Nuovo Campo Custom",
+        "NO_VOICEDISPOSITION_AVAILABLE": "Nessun esito disponibile",
+        "ADD_VOICEDISPOSITION": "Aggiungi Esito Voce",
+        "EDIT_VOICEDISPOSITION": "Modifica Esito Voce",
+        "DELETE_VOICEDISPOSITION": "Elimina Esito Voce",
+        "VAT": "IVA",
+        "COMPANYID": "ID Compagnia",
+        "WEBSITE": "Sito Web",
+        "EMAIL_DOMAIN": "Dominio Email",
+        "ADDRESS": "Indirizzo",
+        "POSTAL_CODE": "CAP",
+        "SHIPMENTADDRESS": "Indirizzo di spedizione",
+        "COPY_CONTACT": "Copia Contatto",
+        "GOTOCONTACTS_LIST": "Mostra Contatti",
+        "GOTOCONTACTS_COMPANY": "Mostra Contatti",
+        "ADD_AGENT_TO_LIST": "Aggiungi Agente alla Lista",
+        "AGENTADD_LIST": "Aggiungi Agenti alla Lista",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "NONE": "Nessuno",
+        "FULLNAME": "Nome Completo",
+        "CHECK_DUPLICATES": "Controlla duplicati",
+        "DUPLICATES": "Duplicati",
+        "UPLOAD_CSV": "Carica CSV",
+        "TAG": "Tag",
+        "UPLOAD": "Carica",
+        "ALL_AGENTS": "Tutti gli Agenti",
+        "SELECTED_AGENTS": "Agenti selezionati",
+        "DATE_OF_BIRTH": "Data di nascita",
+        "NOTES": "Notes",
+        "EXPORTCSVCONTACTS_LIST": "Esporta in CSV",
+        "GOTO_LIST": "Mostra Contatti",
+        "GOTO_COMPANY": "Mostra Contatti",
+        "REQUIRED": "Obbligatorio",
+        "DATEOFBIRTH": "Data di nascita",
+        "NO_COMPANIES": "Nessuna azienda",
+        "ADD_TAG": "Aggiungi tag",
+        "NO_TAG": "Nessun tag",
+        "GLOBALCUSTOMFIELDS": "Global campi personalizzati",
+        "NEW_GLOBALCUSTOMFIELD": "Nuovi campi personalizzati",
+        "ADD_GLOBALCUSTOMFIELD": "Aggiungi campo personalizzato",
+        "EDIT_GLOBALCUSTOMFIELD": "Modificare il campo personalizzato",
+        "DELETE_GLOBALCUSTOMFIELD": "Eliminare il campo personalizzato",
+        "STATE": "Stato",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "Lo stato",
+        "STARTTIME": "Ora di avvio",
+        "ENDTIME": "Ora di fine",
+        "MOTION_BULL": "Motion Bull",
+        "HOPPER": "Tramoggia",
+        "FINAL": "Finale della tramoggia",
+        "HISTORY": "Storia della tramoggia",
+        "SCHEDULEDAT": "Pianificato a",
+        "EDIT_HOPPER": "Modifica di tramoggia",
+        "DELETE_HOPPER": "Eliminare la tramoggia",
+        "RELOAD": "Ricaricare",
+        "DISPOSITION": "Disposizione",
+        "JSCRIPTY": "Jscripty",
+        "SESSIONS": "Sessioni",
+        "AGENT": "Agente",
+        "PROJECT": "Progetto"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/ja.json b/public/app/main/apps/contactmanager/i18n/ja.json
new file mode 100644 (file)
index 0000000..c242f4e
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "名",
+        "LISTS": "リスト",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "EDIT_LIST": "リストの編集",
+        "DELETE_LIST": "リストの削除",
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "FIRSTNAME_REQUIRED": "最初の名前が必要です",
+            "ALIAS_REQUIRED": "エイリアスが必要な",
+            "VALUE_REQUIRED": "の値が必要です",
+            "EMAIL_MUST_VALID": "電子メールのアドレスが有効な形式で記述する必要があります",
+            "PHONE_REQUIRED": "の電話番号が必要です"
+        },
+        "DESCRIPTION": "説明",
+        "DISPOSITIONS": "ディスポジション",
+        "VOICEDISPOSITIONS": "音声のディスポジション",
+        "NEW_VOICEDISPOSITION": "新しい音声処理",
+        "CUSTOM_FIELDS": "カスタムフィールド",
+        "ADD_LIST": "リストの追加",
+        "BACK": "背面",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "COMPANIES": "企業",
+        "EDIT_COMPANY": "会社の編集",
+        "DELETE_COMPANY": "会社の削除",
+        "PHONE": "電話",
+        "EMAIL": "電子メール",
+        "ADD_COMPANY": "会社の追加",
+        "CONTACTS": "連絡先",
+        "NEW_LIST": "新しいリスト",
+        "FIRSTNAME": "最初の名前",
+        "LASTNAME": "最後の名前",
+        "LIST": "リスト",
+        "COMPANY": "会社",
+        "ADD_CONTACT": "連絡先を追加します。",
+        "EDIT_CONTACT": "連絡先の編集",
+        "MERGE_CONTACT": "マージにお問い合わせください",
+        "DUPLICATE_CONTACT": "重複した連絡先",
+        "DELETE_CONTACT": "連絡先を削除する",
+        "CREATED_AT": "で作成された",
+        "SAVE": "保存",
+        "DETAIL": "詳細",
+        "PERSONAL_INFO": "「個人情報」",
+        "MOBILE": "モバイル",
+        "FAX": "Fax",
+        "TAGS": "タグ",
+        "SHOW_ALL_FIELDS": "すべてのフィールドを表示します。",
+        "FEWER_FIELDS": "以下を表示するフィールド",
+        "COUNTRY": "国",
+        "CITY": "市",
+        "STREET": "ストリート",
+        "POSTALCODE": "郵便番号",
+        "DELETE": "削除",
+        "CONTACTMANAGER": "連絡先管理マネージャ",
+        "ID": "Id",
+        "SETTINGS": "の設定",
+        "GENERAL": "一般的な",
+        "CUSTOMFIELDS": "カスタムフィールド",
+        "NO_CUSTOMFIELD_AVAILABLE": "カスタムフィールドがありません。",
+        "ALIAS": "エイリアス",
+        "TYPE": "タイプ",
+        "VALUE": "値",
+        "ADD_CUSTOMFIELD": "カスタムフィールドの追加",
+        "EDIT_CUSTOMFIELD": "カスタムフィールドの編集",
+        "DELETE_CUSTOMFIELD": "カスタムフィールドを削除する",
+        "NEW_COMPANY": "新会社",
+        "NEW_CONTACT": "新しい連絡先",
+        "NEW_TAG": "新しいタグ",
+        "UPLOAD_CONTACTS": "連絡先のアップロード",
+        "FINISH": "完了",
+        "SUCCESS": "成功",
+        "FAILURE": "障害が発生した",
+        "ALL_CONTACTS": "すべての連絡先",
+        "NEW_CUSTOMFIELD": "新しいカスタムフィールドの設定",
+        "NO_VOICEDISPOSITION_AVAILABLE": "音声のディスポジションを使用できません",
+        "ADD_VOICEDISPOSITION": "音声処理を追加",
+        "EDIT_VOICEDISPOSITION": "音声編集処理",
+        "DELETE_VOICEDISPOSITION": "音声のディスポジションを削除",
+        "VAT": "付加価値税",
+        "COMPANYID": "会社 ID",
+        "WEBSITE": "Web サイト",
+        "EMAIL_DOMAIN": "電子メールドメイン",
+        "ADDRESS": "アドレス",
+        "POSTAL_CODE": "郵便番号",
+        "SHIPMENTADDRESS": "配送先住所",
+        "COPY_CONTACT": "連絡先のコピー",
+        "GOTOCONTACTS_LIST": "連絡先を表示",
+        "GOTOCONTACTS_COMPANY": "連絡先を表示",
+        "ADD_AGENT_TO_LIST": "リストにエージェントを追加する",
+        "AGENTADD_LIST": "リストにエージェントを追加する",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "NONE": "なし",
+        "FULLNAME": "完全な名前",
+        "CHECK_DUPLICATES": "重複のチェック",
+        "DUPLICATES": "重複",
+        "UPLOAD_CSV": "CSV のアップロード",
+        "TAG": "タグ",
+        "UPLOAD": "アップロード",
+        "ALL_AGENTS": "すべてのエージェント",
+        "SELECTED_AGENTS": "選択されたエージェント",
+        "DATE_OF_BIRTH": "の誕生日",
+        "NOTES": "ノート",
+        "EXPORTCSVCONTACTS_LIST": "CSV にエクスポート",
+        "GOTO_LIST": "連絡先を表示",
+        "GOTO_COMPANY": "連絡先を表示",
+        "REQUIRED": "必要に応じて",
+        "DATEOFBIRTH": "の誕生日",
+        "NO_COMPANIES": "会社はありません",
+        "ADD_TAG": "タグの追加",
+        "NO_TAG": "タグがありません。",
+        "GLOBALCUSTOMFIELDS": "グローバルカスタムフィールド",
+        "NEW_GLOBALCUSTOMFIELD": "新しいカスタムフィールド",
+        "ADD_GLOBALCUSTOMFIELD": "カスタムフィールドの追加",
+        "EDIT_GLOBALCUSTOMFIELD": "カスタムフィールドの編集",
+        "DELETE_GLOBALCUSTOMFIELD": "カスタムフィールドを削除する",
+        "STATE": "状態",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "ステータス",
+        "STARTTIME": "開始時刻",
+        "ENDTIME": "終了時間",
+        "MOTION_BULL": "モーションブル",
+        "HOPPER": "ホッパー",
+        "FINAL": "ホッパー最終",
+        "HISTORY": "ホッパーの履歴",
+        "SCHEDULEDAT": "の予定である。",
+        "EDIT_HOPPER": "ホッパーの編集",
+        "DELETE_HOPPER": "ホッパーを削除",
+        "RELOAD": "再ロード",
+        "DISPOSITION": "廃棄"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/ko.json b/public/app/main/apps/contactmanager/i18n/ko.json
new file mode 100644 (file)
index 0000000..b1308b7
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "이름",
+        "LISTS": "목록",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "EDIT_LIST": "목록 편집",
+        "DELETE_LIST": "목록 삭제",
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "FIRSTNAME_REQUIRED": "첫 번째 이름은 필수입니다",
+            "ALIAS_REQUIRED": "별명이 필요합니다.",
+            "VALUE_REQUIRED": "값이 필요합니다.",
+            "EMAIL_MUST_VALID": "이메일 주소에 유효한 형식으로 작성되어 있어야 합니다",
+            "PHONE_REQUIRED": "전화가 필요"
+        },
+        "DESCRIPTION": "설명",
+        "DISPOSITIONS": "의향",
+        "VOICEDISPOSITIONS": "음성 의향",
+        "NEW_VOICEDISPOSITION": "새 음성 처리",
+        "CUSTOM_FIELDS": "사용자 지정 필드",
+        "ADD_LIST": "목록에 추가",
+        "BACK": "후면",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "COMPANIES": "회사",
+        "EDIT_COMPANY": "회사 수정",
+        "DELETE_COMPANY": "회사 삭제",
+        "PHONE": "전화",
+        "EMAIL": "E-mail",
+        "ADD_COMPANY": "회사 추가",
+        "CONTACTS": "연락처",
+        "NEW_LIST": "새 목록",
+        "FIRSTNAME": "이름 대체 철자",
+        "LASTNAME": "성",
+        "LIST": "목록",
+        "COMPANY": "회사",
+        "ADD_CONTACT": "연락처 추가",
+        "EDIT_CONTACT": "연락처 편집",
+        "MERGE_CONTACT": "연락처 병합",
+        "DUPLICATE_CONTACT": "중복 연락처",
+        "DELETE_CONTACT": "연락처 삭제",
+        "CREATED_AT": "생성",
+        "SAVE": "저장",
+        "DETAIL": "세부 정보",
+        "PERSONAL_INFO": "개인 정보",
+        "MOBILE": "모바일",
+        "FAX": "팩스",
+        "TAGS": "태그",
+        "SHOW_ALL_FIELDS": "모든 필드 표시",
+        "FEWER_FIELDS": "간단히 표시 필드",
+        "COUNTRY": "국가",
+        "CITY": "도시",
+        "STREET": "거리",
+        "POSTALCODE": "우편 번호",
+        "DELETE": "삭제",
+        "CONTACTMANAGER": "연락처 관리자",
+        "ID": "Id",
+        "SETTINGS": "설정",
+        "GENERAL": "일반",
+        "CUSTOMFIELDS": "사용자 지정 필드",
+        "NO_CUSTOMFIELD_AVAILABLE": "사용 가능한 사용자 정의 필드가 없음",
+        "ALIAS": "별칭",
+        "TYPE": "유형",
+        "VALUE": "값",
+        "ADD_CUSTOMFIELD": "사용자 정의 필드 추가",
+        "EDIT_CUSTOMFIELD": "사용자 지정 필드 편집",
+        "DELETE_CUSTOMFIELD": "사용자 지정 필드 삭제",
+        "NEW_COMPANY": "새 회사",
+        "NEW_CONTACT": "새 연락처",
+        "NEW_TAG": "새 태그",
+        "UPLOAD_CONTACTS": "컨택 업로드",
+        "FINISH": "마침",
+        "SUCCESS": "성공",
+        "FAILURE": "실패",
+        "ALL_CONTACTS": "모든 연락처",
+        "NEW_CUSTOMFIELD": "새 사용자 정의 필드",
+        "NO_VOICEDISPOSITION_AVAILABLE": "사용할 수 있는 음성 의향 없음",
+        "ADD_VOICEDISPOSITION": "음성 처리 추가",
+        "EDIT_VOICEDISPOSITION": "음성 처리 편집",
+        "DELETE_VOICEDISPOSITION": "음성 처리 삭제",
+        "VAT": "VAT",
+        "COMPANYID": "회사 ID",
+        "WEBSITE": "웹 사이트",
+        "EMAIL_DOMAIN": "전자 메일 도메인",
+        "ADDRESS": "주소",
+        "POSTAL_CODE": "우편 번호",
+        "SHIPMENTADDRESS": "배송 주소",
+        "COPY_CONTACT": "연락처 복사",
+        "GOTOCONTACTS_LIST": "연락처 표시",
+        "GOTOCONTACTS_COMPANY": "연락처 표시",
+        "ADD_AGENT_TO_LIST": "목록 상담원에 추가",
+        "AGENTADD_LIST": "목록 상담원에 추가",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "NONE": "없음",
+        "FULLNAME": "전체 이름",
+        "CHECK_DUPLICATES": "중복 확인",
+        "DUPLICATES": "중복",
+        "UPLOAD_CSV": "CSV 업로드",
+        "TAG": "태그",
+        "UPLOAD": "업로드",
+        "ALL_AGENTS": "모든 상담원",
+        "SELECTED_AGENTS": "선택된 상담원",
+        "DATE_OF_BIRTH": "생년월일",
+        "NOTES": "메모",
+        "EXPORTCSVCONTACTS_LIST": "Csv 파일로 내보내기",
+        "GOTO_LIST": "연락처 표시",
+        "GOTO_COMPANY": "연락처 표시",
+        "REQUIRED": "필수",
+        "DATEOFBIRTH": "생년월일",
+        "NO_COMPANIES": "회사는 없습니다.",
+        "ADD_TAG": "태그 추가",
+        "NO_TAG": "태그 없음",
+        "GLOBALCUSTOMFIELDS": "글로벌 사용자 지정 필드",
+        "NEW_GLOBALCUSTOMFIELD": "새 사용자 지정 필드",
+        "ADD_GLOBALCUSTOMFIELD": "사용자 정의 필드 추가",
+        "EDIT_GLOBALCUSTOMFIELD": "사용자 지정 필드 편집",
+        "DELETE_GLOBALCUSTOMFIELD": "사용자 지정 필드 삭제",
+        "STATE": "상태",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "상태",
+        "STARTTIME": "시작 시간",
+        "ENDTIME": "종료 시간",
+        "MOTION_BULL": "Motion 표적 화면",
+        "HOPPER": "호퍼 비우기",
+        "FINAL": "호퍼 최종",
+        "HISTORY": "호퍼 내역",
+        "SCHEDULEDAT": "정기",
+        "EDIT_HOPPER": "호퍼 편집",
+        "DELETE_HOPPER": "호퍼 삭제",
+        "RELOAD": "다시 로드",
+        "DISPOSITION": "폐기"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/nl.json b/public/app/main/apps/contactmanager/i18n/nl.json
new file mode 100644 (file)
index 0000000..2477185
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "Naam",
+        "LISTS": "Lijsten",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "EDIT_LIST": "Edit List (Lijst bewerken",
+        "DELETE_LIST": "Lijst wissen",
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "FIRSTNAME_REQUIRED": "De Voornaam is verplicht",
+            "ALIAS_REQUIRED": "De alias is vereist",
+            "VALUE_REQUIRED": "De waarde is vereist",
+            "EMAIL_MUST_VALID": "Het e-mailadres moet worden geschreven in een geldige indeling",
+            "PHONE_REQUIRED": "Het telefoonnummer is verplicht"
+        },
+        "DESCRIPTION": "Beschrijving",
+        "DISPOSITIONS": "Dispositions",
+        "VOICEDISPOSITIONS": "Voice dispositieven",
+        "NEW_VOICEDISPOSITION": "Nieuw spraakbericht dispositie",
+        "CUSTOM_FIELDS": "Aangepaste velden",
+        "ADD_LIST": "Lijst toevoegen",
+        "BACK": "Terug",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "COMPANIES": "Bedrijven",
+        "EDIT_COMPANY": "Bedrijf wijzigen",
+        "DELETE_COMPANY": "Bedrijf verwijderen",
+        "PHONE": "Telefoon",
+        "EMAIL": "E-mail",
+        "ADD_COMPANY": "Bedrijf toevoegen",
+        "CONTACTS": "Contactpersonen",
+        "NEW_LIST": "Nieuwe lijst",
+        "FIRSTNAME": "Voornaam",
+        "LASTNAME": "Achternaam",
+        "LIST": "Lijst",
+        "COMPANY": "Bedrijf",
+        "ADD_CONTACT": "Contactpersoon toevoegen",
+        "EDIT_CONTACT": "Contactpersoon bewerken",
+        "MERGE_CONTACT": "Merge Contact",
+        "DUPLICATE_CONTACT": "Dubbele contactpersoon",
+        "DELETE_CONTACT": "Contactpersoon verwijderen",
+        "CREATED_AT": "Gemaakt op",
+        "SAVE": "Opslaan",
+        "DETAIL": "Detail",
+        "PERSONAL_INFO": "Persoonlijke info",
+        "MOBILE": "Mobiel",
+        "FAX": "Fax",
+        "TAGS": "Tags",
+        "SHOW_ALL_FIELDS": "Toon alle velden",
+        "FEWER_FIELDS": "Toon minder velden",
+        "COUNTRY": "Land",
+        "CITY": "Stad",
+        "STREET": "Straat",
+        "POSTALCODE": "Postcode",
+        "DELETE": "Verwijderen",
+        "CONTACTMANAGER": "Contact Manager",
+        "ID": "Id",
+        "SETTINGS": "Instellingen",
+        "GENERAL": "Algemeen",
+        "CUSTOMFIELDS": "Aangepaste velden",
+        "NO_CUSTOMFIELD_AVAILABLE": "Geen aangepaste velden",
+        "ALIAS": "Alias",
+        "TYPE": "Type",
+        "VALUE": "Waarde",
+        "ADD_CUSTOMFIELD": "Aangepast veld toevoegen",
+        "EDIT_CUSTOMFIELD": "Bewerk aangepaste veld",
+        "DELETE_CUSTOMFIELD": "Verwijder aangepaste veld",
+        "NEW_COMPANY": "Nieuwe onderneming",
+        "NEW_CONTACT": "Nieuwe contactpersoon",
+        "NEW_TAG": "Nieuwe Tag",
+        "UPLOAD_CONTACTS": "Upload Contact",
+        "FINISH": "Afwerking",
+        "SUCCESS": "Succes",
+        "FAILURE": "Defect",
+        "ALL_CONTACTS": "Alle contactpersonen",
+        "NEW_CUSTOMFIELD": "Nieuwe aangepaste veld",
+        "NO_VOICEDISPOSITION_AVAILABLE": "Geen spraakmemo dispositieven beschikbaar",
+        "ADD_VOICEDISPOSITION": "Voeg spraak dispositie",
+        "EDIT_VOICEDISPOSITION": "Edit Voice dispositie",
+        "DELETE_VOICEDISPOSITION": "Alle spraakberichten dispositie",
+        "VAT": "Btw",
+        "COMPANYID": "Bedrijf ID",
+        "WEBSITE": "Website",
+        "EMAIL_DOMAIN": "E-maildomein",
+        "ADDRESS": "Adres",
+        "POSTAL_CODE": "Postcode",
+        "SHIPMENTADDRESS": "Verzending adres",
+        "COPY_CONTACT": "Contactpersoon kopiëren",
+        "GOTOCONTACTS_LIST": "Contactpersonen weergeven",
+        "GOTOCONTACTS_COMPANY": "Contactpersonen weergeven",
+        "ADD_AGENT_TO_LIST": "Toevoegen aan lijst",
+        "AGENTADD_LIST": "Toevoegen aan lijst",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "NONE": "Geen",
+        "FULLNAME": "Volledige naam",
+        "CHECK_DUPLICATES": "Duplicaatcontrole",
+        "DUPLICATES": "Duplicaten",
+        "UPLOAD_CSV": "Upload CSV",
+        "TAG": "Tag",
+        "UPLOAD": "Uploaden",
+        "ALL_AGENTS": "Alle gebruikers zijn agenten",
+        "SELECTED_AGENTS": "Geselecteerde agenten",
+        "DATE_OF_BIRTH": "Geboortedatum",
+        "NOTES": "Aantekeningen",
+        "EXPORTCSVCONTACTS_LIST": "Exporteren naar CSV",
+        "GOTO_LIST": "Contactpersonen weergeven",
+        "GOTO_COMPANY": "Contactpersonen weergeven",
+        "REQUIRED": "Vereist",
+        "DATEOFBIRTH": "Geboortedatum",
+        "NO_COMPANIES": "Geen enkele onderneming",
+        "ADD_TAG": "Tag toevoegen",
+        "NO_TAG": "Geen Tags",
+        "GLOBALCUSTOMFIELDS": "Wereldwijde Aangepaste velden",
+        "NEW_GLOBALCUSTOMFIELD": "Nieuwe aangepaste velden",
+        "ADD_GLOBALCUSTOMFIELD": "Aangepast veld toevoegen",
+        "EDIT_GLOBALCUSTOMFIELD": "Bewerk aangepaste veld",
+        "DELETE_GLOBALCUSTOMFIELD": "Verwijder aangepaste veld",
+        "STATE": "Staat",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "Status",
+        "STARTTIME": "Begintijd",
+        "ENDTIME": "Eindtijd",
+        "MOTION_BULL": "Motion Bull",
+        "HOPPER": "Trechter",
+        "FINAL": "Hopper def.",
+        "HISTORY": "Hopper Geschiedenis",
+        "SCHEDULEDAT": "Gepland op",
+        "EDIT_HOPPER": "Edit Hopper",
+        "DELETE_HOPPER": "Hopper verwijderen",
+        "RELOAD": "Reload",
+        "DISPOSITION": "Afvoeren"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/no.json b/public/app/main/apps/contactmanager/i18n/no.json
new file mode 100644 (file)
index 0000000..5b0e3c2
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "Navn",
+        "LISTS": "Lister",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "EDIT_LIST": "Rediger liste",
+        "DELETE_LIST": "Slett liste",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "FIRSTNAME_REQUIRED": "Den første navn er nødvendig",
+            "ALIAS_REQUIRED": "Aliaset er nødvendig",
+            "VALUE_REQUIRED": "Verdien er obligatorisk",
+            "EMAIL_MUST_VALID": "E-postadressen må være skrevet i et gyldig format",
+            "PHONE_REQUIRED": "Telefonen er nødvendig"
+        },
+        "DESCRIPTION": "Beskrivelse",
+        "DISPOSITIONS": "Disposisjoner",
+        "VOICEDISPOSITIONS": "Voice disposisjoner",
+        "NEW_VOICEDISPOSITION": "Ny stemme disposisjon",
+        "CUSTOM_FIELDS": "Egendefinerte felt",
+        "ADD_LIST": "Legge til liste",
+        "BACK": "Tilbake",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "COMPANIES": "Bedrifter",
+        "EDIT_COMPANY": "Rediger selskap",
+        "DELETE_COMPANY": "Slett selskap",
+        "PHONE": "Telefon",
+        "EMAIL": "E",
+        "ADD_COMPANY": "Legg til selskap",
+        "CONTACTS": "Kontakter",
+        "NEW_LIST": "Ny liste",
+        "FIRSTNAME": "Fornavn",
+        "LASTNAME": "Etternavn",
+        "LIST": "Liste",
+        "COMPANY": "Selskap",
+        "ADD_CONTACT": "Legg til kontakt",
+        "EDIT_CONTACT": "Rediger kontakt",
+        "MERGE_CONTACT": "Slå sammen kontakt",
+        "DUPLICATE_CONTACT": "Duplisere kontakt",
+        "DELETE_CONTACT": "Slett kontakt",
+        "CREATED_AT": "Opprettet i",
+        "SAVE": "Lagre",
+        "DETAIL": "Detaljer",
+        "PERSONAL_INFO": "Personlig info.",
+        "MOBILE": "Mobile",
+        "FAX": "Faks",
+        "TAGS": "Tags",
+        "SHOW_ALL_FIELDS": "Vis alle felt",
+        "FEWER_FIELDS": "Vis mindre felt",
+        "COUNTRY": "Land",
+        "CITY": "City",
+        "STREET": "Street",
+        "POSTALCODE": "Postnummer",
+        "DELETE": "Slette",
+        "CONTACTMANAGER": "Kontakter Manager",
+        "ID": "Id",
+        "SETTINGS": "Innstillinger",
+        "GENERAL": "Generelt",
+        "CUSTOMFIELDS": "Egendefinerte felt",
+        "NO_CUSTOMFIELD_AVAILABLE": "Ingen egendefinerte felter tilgjengelig",
+        "ALIAS": "Alias",
+        "TYPE": "Type",
+        "VALUE": "Verdi",
+        "ADD_CUSTOMFIELD": "Legg til egendefinert felt",
+        "EDIT_CUSTOMFIELD": "Rediger egendefinert felt",
+        "DELETE_CUSTOMFIELD": "Slette egendefinert felt",
+        "NEW_COMPANY": "Nytt selskap",
+        "NEW_CONTACT": "Ny kontakt",
+        "NEW_TAG": "Ny id",
+        "UPLOAD_CONTACTS": "Last opp kontakter",
+        "FINISH": "Fullfør",
+        "SUCCESS": "Suksess",
+        "FAILURE": "Feil",
+        "ALL_CONTACTS": "Alle kontakter",
+        "NEW_CUSTOMFIELD": "Ny egendefinert felt",
+        "NO_VOICEDISPOSITION_AVAILABLE": "Ingen stemme disposisjoner tilgjengelig",
+        "ADD_VOICEDISPOSITION": "Legg til Voice disposisjon",
+        "EDIT_VOICEDISPOSITION": "Rediger stemme disposisjon",
+        "DELETE_VOICEDISPOSITION": "Slett stemme disposisjon",
+        "VAT": "Mva",
+        "COMPANYID": "Selskaps-ID",
+        "WEBSITE": "Nettsted",
+        "EMAIL_DOMAIN": "E-domene",
+        "ADDRESS": "Adresse",
+        "POSTAL_CODE": "Postnummer",
+        "SHIPMENTADDRESS": "Forsendelse adresse",
+        "COPY_CONTACT": "Kopier kontakt",
+        "GOTOCONTACTS_LIST": "Vis kontakter",
+        "GOTOCONTACTS_COMPANY": "Vis kontakter",
+        "ADD_AGENT_TO_LIST": "Legg til agenter til liste",
+        "AGENTADD_LIST": "Legg til agenter til liste",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "NONE": "Ingen",
+        "FULLNAME": "Fullt navn",
+        "CHECK_DUPLICATES": "Kontroller duplikater",
+        "DUPLICATES": "Duplikater",
+        "UPLOAD_CSV": "Last opp CSV",
+        "TAG": "Tag",
+        "UPLOAD": "Last opp",
+        "ALL_AGENTS": "Alle agenter",
+        "SELECTED_AGENTS": "Valgt agenter",
+        "DATE_OF_BIRTH": "Fødselsdato",
+        "NOTES": "Merknader",
+        "EXPORTCSVCONTACTS_LIST": "Eksporter til CSV",
+        "GOTO_LIST": "Vis kontakter",
+        "GOTO_COMPANY": "Vis kontakter",
+        "REQUIRED": "Nødvendig",
+        "DATEOFBIRTH": "Fødselsdato",
+        "NO_COMPANIES": "Ingen selskap",
+        "ADD_TAG": "Legg til Tag",
+        "NO_TAG": "Ingen etiketter",
+        "GLOBALCUSTOMFIELDS": "Global egendefinerte felt",
+        "NEW_GLOBALCUSTOMFIELD": "Ny egendefinert felt",
+        "ADD_GLOBALCUSTOMFIELD": "Legg til egendefinert felt",
+        "EDIT_GLOBALCUSTOMFIELD": "Rediger egendefinert felt",
+        "DELETE_GLOBALCUSTOMFIELD": "Slette egendefinert felt",
+        "STATE": "Tilstand",
+        "UNIQUEID": "Unikid",
+        "STATUS": "Status",
+        "STARTTIME": "Start Tid",
+        "ENDTIME": "Slutt tid",
+        "MOTION_BULL": "Motion Bull",
+        "HOPPER": "Hopper",
+        "FINAL": "Hopper endelig",
+        "HISTORY": "Hopper historikk",
+        "SCHEDULEDAT": "Planlagt på",
+        "EDIT_HOPPER": "Rediger hopper",
+        "DELETE_HOPPER": "Slett hopper",
+        "RELOAD": "Laste inn",
+        "DISPOSITION": "Disposisjon"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/pt-PT.json b/public/app/main/apps/contactmanager/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..2c86147
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "Nome",
+        "LISTS": "Listas",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "EDIT_LIST": "Editar Lista",
+        "DELETE_LIST": "Lista de exclusão",
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "FIRSTNAME_REQUIRED": "O Nome é obrigatório",
+            "ALIAS_REQUIRED": "O Alias é necessária",
+            "VALUE_REQUIRED": "O valor é obrigatório",
+            "EMAIL_MUST_VALID": "O endereço de e-mail deve ser escrito em um formato válido",
+            "PHONE_REQUIRED": "O telefone é obrigatório"
+        },
+        "DESCRIPTION": "Descrição",
+        "DISPOSITIONS": "Disposições",
+        "VOICEDISPOSITIONS": "Disposições de voz",
+        "NEW_VOICEDISPOSITION": "Nova disposição de voz",
+        "CUSTOM_FIELDS": "Campos personalizados",
+        "ADD_LIST": "Adicionar lista",
+        "BACK": "De volta",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "COMPANIES": "Empresas",
+        "EDIT_COMPANY": "Editar Empresa",
+        "DELETE_COMPANY": "Excluir Empresa",
+        "PHONE": "Telefone",
+        "EMAIL": "Email",
+        "ADD_COMPANY": "Adicionar Empresa",
+        "CONTACTS": "Contatos",
+        "NEW_LIST": "Nova Lista",
+        "FIRSTNAME": "Primeiro Nome",
+        "LASTNAME": "Último nome",
+        "LIST": "Lista",
+        "COMPANY": "Empresa",
+        "ADD_CONTACT": "Adicionar contato",
+        "EDIT_CONTACT": "Editar contato",
+        "MERGE_CONTACT": "Contato de mesclagem",
+        "DUPLICATE_CONTACT": "Contato duplicado",
+        "DELETE_CONTACT": "Excluir contato",
+        "CREATED_AT": "Criado em",
+        "SAVE": "Salvar",
+        "DETAIL": "Detalhe",
+        "PERSONAL_INFO": "Informações pessoais",
+        "MOBILE": "Mobile",
+        "FAX": "Fax",
+        "TAGS": "Tags",
+        "SHOW_ALL_FIELDS": "Mostrar todos os campos",
+        "FEWER_FIELDS": "Mostrar menos campos",
+        "COUNTRY": "País",
+        "CITY": "Cidade",
+        "STREET": "Street",
+        "POSTALCODE": "O código postal",
+        "DELETE": "Excluir",
+        "CONTACTMANAGER": "Gerenciador de contatos",
+        "ID": "Id",
+        "SETTINGS": "Definições",
+        "GENERAL": "Geral",
+        "CUSTOMFIELDS": "Campos personalizados",
+        "NO_CUSTOMFIELD_AVAILABLE": "Sem campos personalizados disponíveis",
+        "ALIAS": "Alias",
+        "TYPE": "Tipo",
+        "VALUE": "Valor",
+        "ADD_CUSTOMFIELD": "Adicionar campo personalizado",
+        "EDIT_CUSTOMFIELD": "Editar campo personalizado",
+        "DELETE_CUSTOMFIELD": "Excluir Campo Personalizado",
+        "NEW_COMPANY": "Nova empresa",
+        "NEW_CONTACT": "Novo Contato",
+        "NEW_TAG": "Nova Tag",
+        "UPLOAD_CONTACTS": "Carregar contatos",
+        "FINISH": "Concluir",
+        "SUCCESS": "Sucesso",
+        "FAILURE": "Falha",
+        "ALL_CONTACTS": "Todos os contatos",
+        "NEW_CUSTOMFIELD": "Novo Campo Personalizado",
+        "NO_VOICEDISPOSITION_AVAILABLE": "Disposições de voz disponível",
+        "ADD_VOICEDISPOSITION": "Adicionar voz Disposição",
+        "EDIT_VOICEDISPOSITION": "Editar a disposição de voz",
+        "DELETE_VOICEDISPOSITION": "Disposição de eliminar uma mensagem de voz",
+        "VAT": "Iva",
+        "COMPANYID": "ID da empresa",
+        "WEBSITE": "Website",
+        "EMAIL_DOMAIN": "Domínio de e-mail",
+        "ADDRESS": "Endereço",
+        "POSTAL_CODE": "O código postal",
+        "SHIPMENTADDRESS": "Endereço de entrega",
+        "COPY_CONTACT": "Copiar Contato",
+        "GOTOCONTACTS_LIST": "Mostrar contatos",
+        "GOTOCONTACTS_COMPANY": "Mostrar contatos",
+        "ADD_AGENT_TO_LIST": "Adicionar agentes a lista",
+        "AGENTADD_LIST": "Adicionar agentes a lista",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "NONE": "Nenhum",
+        "FULLNAME": "Nome completo",
+        "CHECK_DUPLICATES": "Verificar duplicatas",
+        "DUPLICATES": "Duplicatas",
+        "UPLOAD_CSV": "Upload CSV",
+        "TAG": "Tag",
+        "UPLOAD": "Carregar",
+        "ALL_AGENTS": "Todos os Agentes",
+        "SELECTED_AGENTS": "Agentes selecionados",
+        "DATE_OF_BIRTH": "Data de Nascimento",
+        "NOTES": "Notas",
+        "EXPORTCSVCONTACTS_LIST": "Exportar para arquivo CSV",
+        "GOTO_LIST": "Mostrar contatos",
+        "GOTO_COMPANY": "Mostrar contatos",
+        "REQUIRED": "Necessária",
+        "DATEOFBIRTH": "Data de Nascimento",
+        "NO_COMPANIES": "Nenhuma empresa",
+        "ADD_TAG": "Adicionar a Tag",
+        "NO_TAG": "Tags",
+        "GLOBALCUSTOMFIELDS": "Global Campos Personalizados",
+        "NEW_GLOBALCUSTOMFIELD": "Novos campos personalizados",
+        "ADD_GLOBALCUSTOMFIELD": "Adicionar campo personalizado",
+        "EDIT_GLOBALCUSTOMFIELD": "Editar campo personalizado",
+        "DELETE_GLOBALCUSTOMFIELD": "Excluir Campo Personalizado",
+        "STATE": "Estado",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "Estado",
+        "STARTTIME": "Hora de início",
+        "ENDTIME": "Hora de fim",
+        "MOTION_BULL": "Motion Bull",
+        "HOPPER": "Funil",
+        "FINAL": "Final do funil",
+        "HISTORY": "História da tremonha",
+        "SCHEDULEDAT": "Agendado em",
+        "EDIT_HOPPER": "Editar Funil",
+        "DELETE_HOPPER": "Excluir do funil",
+        "RELOAD": "Recarregar",
+        "DISPOSITION": "Disposição"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/ru.json b/public/app/main/apps/contactmanager/i18n/ru.json
new file mode 100644 (file)
index 0000000..987ed14
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "Имя",
+        "LISTS": "Списки",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "EDIT_LIST": "Редактировать список",
+        "DELETE_LIST": "Удалить список",
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "FIRSTNAME_REQUIRED": "Первое имя не требуется",
+            "ALIAS_REQUIRED": "Псевдоним не требуется",
+            "VALUE_REQUIRED": "Это значение требуется",
+            "EMAIL_MUST_VALID": "Адрес электронной почты должен быть написан в действительный формат",
+            "PHONE_REQUIRED": "Номер телефона не требуется"
+        },
+        "DESCRIPTION": "Описание",
+        "DISPOSITIONS": "Распоряжения",
+        "VOICEDISPOSITIONS": "Голосовые распоряжения",
+        "NEW_VOICEDISPOSITION": "Новые голосовые распоряжения",
+        "CUSTOM_FIELDS": "Пользовательские поля",
+        "ADD_LIST": "Добавить список",
+        "BACK": "Назад",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "COMPANIES": "Компании",
+        "EDIT_COMPANY": "Изменить компанию",
+        "DELETE_COMPANY": "Удалить компанию",
+        "PHONE": "Номер телефона",
+        "EMAIL": "Адрес электронной почты",
+        "ADD_COMPANY": "Добавить компанию",
+        "CONTACTS": "Контакты",
+        "NEW_LIST": "Новый список",
+        "FIRSTNAME": "Имя",
+        "LASTNAME": "Фамилия",
+        "LIST": "Список",
+        "COMPANY": "Компания",
+        "ADD_CONTACT": "Добавить контакт",
+        "EDIT_CONTACT": "Редактирование контактной",
+        "MERGE_CONTACT": "Merge контакт",
+        "DUPLICATE_CONTACT": "Дублировать контакт",
+        "DELETE_CONTACT": "Удалить контакт",
+        "CREATED_AT": "Созданные в",
+        "SAVE": "Сохранить",
+        "DETAIL": "Подробно",
+        "PERSONAL_INFO": "Личная информация",
+        "MOBILE": "Для мобильных ПК",
+        "FAX": "Факс",
+        "TAGS": "Теги индексов",
+        "SHOW_ALL_FIELDS": "Показать все поля",
+        "FEWER_FIELDS": "Показать меньше полей",
+        "COUNTRY": "Страны",
+        "CITY": "Город",
+        "STREET": "Улицы",
+        "POSTALCODE": "Почтовый код",
+        "DELETE": "Удалить",
+        "CONTACTMANAGER": "Контакты Manager",
+        "ID": "Id",
+        "SETTINGS": "Настройки",
+        "GENERAL": "Генеральной",
+        "CUSTOMFIELDS": "Пользовательские поля",
+        "NO_CUSTOMFIELD_AVAILABLE": "Пользовательские поля не доступны",
+        "ALIAS": "Псевдоним",
+        "TYPE": "Тип",
+        "VALUE": "Значение",
+        "ADD_CUSTOMFIELD": "Добавить пользовательские поля",
+        "EDIT_CUSTOMFIELD": "Редактировать настраиваемые поля",
+        "DELETE_CUSTOMFIELD": "Удалить пользовательское поле",
+        "NEW_COMPANY": "Новая компания",
+        "NEW_CONTACT": "Новый контакт",
+        "NEW_TAG": "Новую метку",
+        "UPLOAD_CONTACTS": "Загрузка контактов",
+        "FINISH": "Готово",
+        "SUCCESS": "Успех",
+        "FAILURE": "Неспособность",
+        "ALL_CONTACTS": "Все контакты",
+        "NEW_CUSTOMFIELD": "Новые пользовательские поля",
+        "NO_VOICEDISPOSITION_AVAILABLE": "Нет голосовых ликвидаций имеющихся",
+        "ADD_VOICEDISPOSITION": "Добавить голосовую распоряжения",
+        "EDIT_VOICEDISPOSITION": "Редактировать голосовые распоряжения",
+        "DELETE_VOICEDISPOSITION": "Удаление голосовых распоряжения",
+        "VAT": "Ндс",
+        "COMPANYID": "Идентификатор компании",
+        "WEBSITE": "Сайт",
+        "EMAIL_DOMAIN": "Домен электронной почты",
+        "ADDRESS": "Адрес",
+        "POSTAL_CODE": "Почтовый код",
+        "SHIPMENTADDRESS": "Адрес доставки",
+        "COPY_CONTACT": "Копировать контакт",
+        "GOTOCONTACTS_LIST": "Показать контакты",
+        "GOTOCONTACTS_COMPANY": "Показать контакты",
+        "ADD_AGENT_TO_LIST": "Добавление агентов в списке",
+        "AGENTADD_LIST": "Добавление агентов в списке",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "NONE": "При этом никто не голосовал",
+        "FULLNAME": "Полное Имя",
+        "CHECK_DUPLICATES": "Проверьте наличие дубликатов",
+        "DUPLICATES": "Дубли",
+        "UPLOAD_CSV": "Загрузка файла CSV",
+        "TAG": "Тег",
+        "UPLOAD": "Загрузить",
+        "ALL_AGENTS": "Все Операторы",
+        "SELECTED_AGENTS": "Выбранные операторы",
+        "DATE_OF_BIRTH": "Дата рождения",
+        "NOTES": "Примечания",
+        "EXPORTCSVCONTACTS_LIST": "Экспорт в CSV",
+        "GOTO_LIST": "Показать контакты",
+        "GOTO_COMPANY": "Показать контакты",
+        "REQUIRED": "Требуется",
+        "DATEOFBIRTH": "Дата рождения",
+        "NO_COMPANIES": "Ни одна компания не",
+        "ADD_TAG": "Добавить метки",
+        "NO_TAG": "Теги",
+        "GLOBALCUSTOMFIELDS": "Глобальных пользовательских полей",
+        "NEW_GLOBALCUSTOMFIELD": "Новые пользовательские поля",
+        "ADD_GLOBALCUSTOMFIELD": "Добавить пользовательские поля",
+        "EDIT_GLOBALCUSTOMFIELD": "Редактировать настраиваемые поля",
+        "DELETE_GLOBALCUSTOMFIELD": "Удалить пользовательское поле",
+        "STATE": "Государство",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "Статус",
+        "STARTTIME": "Время начала",
+        "ENDTIME": "Время окончания",
+        "MOTION_BULL": "Булл движения",
+        "HOPPER": "Бункер",
+        "FINAL": "Окончательный бункера",
+        "HISTORY": "История бункера",
+        "SCHEDULEDAT": "Запланировано на",
+        "EDIT_HOPPER": "Редактирование загрузочного бункера",
+        "DELETE_HOPPER": "Удалить загрузочный бункер",
+        "RELOAD": "Перезагрузить",
+        "DISPOSITION": "Распоряжения"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/sv.json b/public/app/main/apps/contactmanager/i18n/sv.json
new file mode 100644 (file)
index 0000000..713093b
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "Namn",
+        "LISTS": "Listor",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "EDIT_LIST": "Redigera lista",
+        "DELETE_LIST": "Radera lista",
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "FIRSTNAME_REQUIRED": "Förnamn är obligatoriskt",
+            "ALIAS_REQUIRED": "Alias är obligatoriskt",
+            "VALUE_REQUIRED": "Värdet är obligatoriskt",
+            "EMAIL_MUST_VALID": "E-postadressen måste vara skriven på ett giltigt format",
+            "PHONE_REQUIRED": "Telefonen är obligatoriskt"
+        },
+        "DESCRIPTION": "Beskrivning",
+        "DISPOSITIONS": "Dispositioner",
+        "VOICEDISPOSITIONS": "Voice dispositioner",
+        "NEW_VOICEDISPOSITION": "Ny röst disposition",
+        "CUSTOM_FIELDS": "Anpassade fält",
+        "ADD_LIST": "Lägg till lista",
+        "BACK": "Tillbaka",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "COMPANIES": "Företag",
+        "EDIT_COMPANY": "Redigera företag",
+        "DELETE_COMPANY": "Ta bort företag",
+        "PHONE": "Telefon",
+        "EMAIL": "Email",
+        "ADD_COMPANY": "Lägg till företag",
+        "CONTACTS": "Kontakter",
+        "NEW_LIST": "Ny lista",
+        "FIRSTNAME": "Förnamn",
+        "LASTNAME": "Efternamn",
+        "LIST": "Lista",
+        "COMPANY": "Företag",
+        "ADD_CONTACT": "Lägg till kontakt",
+        "EDIT_CONTACT": "Redigera kontakt",
+        "MERGE_CONTACT": "Smälta ihop kontakt",
+        "DUPLICATE_CONTACT": "Dubbla kontakten",
+        "DELETE_CONTACT": "Ta bort kontakt",
+        "CREATED_AT": "Skapad",
+        "SAVE": "Spara",
+        "DETAIL": "Detalj",
+        "PERSONAL_INFO": "Personlig Info",
+        "MOBILE": "Mobil",
+        "FAX": "Fax",
+        "TAGS": "Etiketter",
+        "SHOW_ALL_FIELDS": "Visa alla fält",
+        "FEWER_FIELDS": "Visa färre fält",
+        "COUNTRY": "Land",
+        "CITY": "City",
+        "STREET": "Gata",
+        "POSTALCODE": "Postnummer",
+        "DELETE": "Ta bort",
+        "CONTACTMANAGER": "Kontakter som chefen",
+        "ID": "Id",
+        "SETTINGS": "Inställningar",
+        "GENERAL": "Allmänt",
+        "CUSTOMFIELDS": "Anpassade fält",
+        "NO_CUSTOMFIELD_AVAILABLE": "Inga egna fält",
+        "ALIAS": "Alias",
+        "TYPE": "Typ",
+        "VALUE": "Värde",
+        "ADD_CUSTOMFIELD": "Lägg till anpassade fält",
+        "EDIT_CUSTOMFIELD": "Redigera anpassade fält",
+        "DELETE_CUSTOMFIELD": "Radera Anpassade fält",
+        "NEW_COMPANY": "Nya företag",
+        "NEW_CONTACT": "Ny kontakt",
+        "NEW_TAG": "Nya Tag",
+        "UPLOAD_CONTACTS": "Överför kontakter",
+        "FINISH": "Avsluta",
+        "SUCCESS": "Framgång",
+        "FAILURE": "Fel",
+        "ALL_CONTACTS": "Alla kontakter",
+        "NEW_CUSTOMFIELD": "Nya anpassade fält",
+        "NO_VOICEDISPOSITION_AVAILABLE": "Ingen röst dispositioner tillgängliga",
+        "ADD_VOICEDISPOSITION": "Lägg till röst disposition",
+        "EDIT_VOICEDISPOSITION": "Redigera röst disposition",
+        "DELETE_VOICEDISPOSITION": "Ta bort röstmeddelanden disposition",
+        "VAT": "Moms",
+        "COMPANYID": "Företags-ID",
+        "WEBSITE": "Webbplats",
+        "EMAIL_DOMAIN": "Email-domänen",
+        "ADDRESS": "Adress",
+        "POSTAL_CODE": "Postnummer",
+        "SHIPMENTADDRESS": "Leverans adress",
+        "COPY_CONTACT": "Kopiera kontakt",
+        "GOTOCONTACTS_LIST": "Visa kontakter",
+        "GOTOCONTACTS_COMPANY": "Visa kontakter",
+        "ADD_AGENT_TO_LIST": "Lägg till agenter till lista",
+        "AGENTADD_LIST": "Lägg till agenter till lista",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "NONE": "Ingen",
+        "FULLNAME": "Fullständigt namn",
+        "CHECK_DUPLICATES": "Kontrollera duplikat",
+        "DUPLICATES": "Dubblettar",
+        "UPLOAD_CSV": "Upload CSV",
+        "TAG": "Tag",
+        "UPLOAD": "Överföra",
+        "ALL_AGENTS": "Alla agenter",
+        "SELECTED_AGENTS": "Valda agenter",
+        "DATE_OF_BIRTH": "Födelsedatum",
+        "NOTES": "Anteckningar",
+        "EXPORTCSVCONTACTS_LIST": "Exportera till CSV",
+        "GOTO_LIST": "Visa kontakter",
+        "GOTO_COMPANY": "Visa kontakter",
+        "REQUIRED": "Krävs",
+        "DATEOFBIRTH": "Födelsedatum",
+        "NO_COMPANIES": "Inget företag",
+        "ADD_TAG": "Lägg till etikett",
+        "NO_TAG": "Inga taggar",
+        "GLOBALCUSTOMFIELDS": "Globalt anpassade fält",
+        "NEW_GLOBALCUSTOMFIELD": "Nya anpassade fält",
+        "ADD_GLOBALCUSTOMFIELD": "Lägg till anpassade fält",
+        "EDIT_GLOBALCUSTOMFIELD": "Redigera anpassade fält",
+        "DELETE_GLOBALCUSTOMFIELD": "Radera Anpassade fält",
+        "STATE": "Stat",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "Status",
+        "STARTTIME": "Starttid",
+        "ENDTIME": "Sluttid",
+        "MOTION_BULL": "Motion Bull",
+        "HOPPER": "Matningsmagasinet",
+        "FINAL": "Hopper slutliga",
+        "HISTORY": "Hopper historia",
+        "SCHEDULEDAT": "Planerad till",
+        "EDIT_HOPPER": "Redigera matningsmagasinet",
+        "DELETE_HOPPER": "Ta bort matningsmagasinet",
+        "RELOAD": "Ladda om",
+        "DISPOSITION": "Disposition"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/tr.json b/public/app/main/apps/contactmanager/i18n/tr.json
new file mode 100644 (file)
index 0000000..f393f17
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "Adı",
+        "LISTS": "Listeleri",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "EDIT_LIST": "Edit List",
+        "DELETE_LIST": "Listeyi Sil",
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "FIRSTNAME_REQUIRED": "İlk Adı gerekiyor.",
+            "ALIAS_REQUIRED": "Ve diğer gerekli",
+            "VALUE_REQUIRED": "Bu Değer gereklidir",
+            "EMAIL_MUST_VALID": "E-Posta Adresi yazılmış olması gerekir. geçerli bir format",
+            "PHONE_REQUIRED": "Telefon gerekiyor."
+        },
+        "DESCRIPTION": "Açıklama",
+        "DISPOSITIONS": "Işlenir",
+        "VOICEDISPOSITIONS": "Ses işlenir",
+        "NEW_VOICEDISPOSITION": "Yeni Ses Nizam",
+        "CUSTOM_FIELDS": "Özel Alanlar",
+        "ADD_LIST": "Add Listesi",
+        "BACK": "Geri",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "COMPANIES": "Şirketler",
+        "EDIT_COMPANY": "Şirket Düzenle",
+        "DELETE_COMPANY": "Şirket silin",
+        "PHONE": "Telefon",
+        "EMAIL": "E-Posta",
+        "ADD_COMPANY": "Şirket Ekle",
+        "CONTACTS": "Kişiler",
+        "NEW_LIST": "Yeni Liste",
+        "FIRSTNAME": "İlk Adı",
+        "LASTNAME": "Soyadı",
+        "LIST": "Listesi",
+        "COMPANY": "Şirket",
+        "ADD_CONTACT": "Kişi Ekle",
+        "EDIT_CONTACT": "Kişi Düzenle",
+        "MERGE_CONTACT": "Merge Kişi",
+        "DUPLICATE_CONTACT": "Çift Kişi",
+        "DELETE_CONTACT": "Kişi",
+        "CREATED_AT": "Oluşturulmuş",
+        "SAVE": "Kaydet",
+        "DETAIL": "Ayrıntı",
+        "PERSONAL_INFO": "Kişisel Bilgiler",
+        "MOBILE": "Mobil",
+        "FAX": "Faks",
+        "TAGS": "Etiketler",
+        "SHOW_ALL_FIELDS": "Tüm alanlar",
+        "FEWER_FIELDS": "Show daha az alanlar",
+        "COUNTRY": "Ülke",
+        "CITY": "Şehir",
+        "STREET": "Sokak",
+        "POSTALCODE": "Posta Kodu",
+        "DELETE": "Sil",
+        "CONTACTMANAGER": "Kişi Yöneticisi",
+        "ID": "Id",
+        "SETTINGS": "Ayarlar",
+        "GENERAL": "Genel",
+        "CUSTOMFIELDS": "Özel Alanlar",
+        "NO_CUSTOMFIELD_AVAILABLE": "Hiçbir özel alanlar mevcuttur.",
+        "ALIAS": "Alias",
+        "TYPE": "Tipi",
+        "VALUE": "Değer",
+        "ADD_CUSTOMFIELD": "Özel Alan Ekle",
+        "EDIT_CUSTOMFIELD": "Edit Özel Alan",
+        "DELETE_CUSTOMFIELD": "Delete Özel Alan",
+        "NEW_COMPANY": "Yeni Şirket",
+        "NEW_CONTACT": "Yeni Kişi",
+        "NEW_TAG": "Yeni Etiketi",
+        "UPLOAD_CONTACTS": "Kişi yükleyin",
+        "FINISH": "Kaplama",
+        "SUCCESS": "Başarı",
+        "FAILURE": "Arızası",
+        "ALL_CONTACTS": "Tüm Kişiler",
+        "NEW_CUSTOMFIELD": "Yeni Özel Alan",
+        "NO_VOICEDISPOSITION_AVAILABLE": "Hiçbir Ses Resmi Senedin kullanılabilir",
+        "ADD_VOICEDISPOSITION": "Add Sesli Nizam",
+        "EDIT_VOICEDISPOSITION": "Edit Ses Nizam",
+        "DELETE_VOICEDISPOSITION": "Delete Voice Nizam",
+        "VAT": "Kdv",
+        "COMPANYID": "Şirket Kimliği",
+        "WEBSITE": "Web Sitesi",
+        "EMAIL_DOMAIN": "E-posta Etki Alanı",
+        "ADDRESS": "Adres",
+        "POSTAL_CODE": "Posta Kodu",
+        "SHIPMENTADDRESS": "Nakliye Adresi",
+        "COPY_CONTACT": "Fotokopi İletişim",
+        "GOTOCONTACTS_LIST": "Kişileri Göster",
+        "GOTOCONTACTS_COMPANY": "Kişileri Göster",
+        "ADD_AGENT_TO_LIST": "Add Temsilcilerinin Listesi",
+        "AGENTADD_LIST": "Add Temsilcilerinin Listesi",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "NONE": "Yok",
+        "FULLNAME": "Tam Adı",
+        "CHECK_DUPLICATES": "Mükerrerleri kontrol ediniz",
+        "DUPLICATES": "Ilgisiz",
+        "UPLOAD_CSV": "CSV yükleme",
+        "TAG": "Etiket",
+        "UPLOAD": "Yükleme",
+        "ALL_AGENTS": "Tüm Temsilciler",
+        "SELECTED_AGENTS": "Seçilen maddeler",
+        "DATE_OF_BIRTH": "Doğum tarihi",
+        "NOTES": "Notlar",
+        "EXPORTCSVCONTACTS_LIST": "Export CSV",
+        "GOTO_LIST": "Kişileri Göster",
+        "GOTO_COMPANY": "Kişileri Göster",
+        "REQUIRED": "Gerekli",
+        "DATEOFBIRTH": "Doğum tarihi",
+        "NO_COMPANIES": "Şirket yok.",
+        "ADD_TAG": "Etiket ekleme",
+        "NO_TAG": "Etiketler yok.",
+        "GLOBALCUSTOMFIELDS": "Küresel Özel Alanlar",
+        "NEW_GLOBALCUSTOMFIELD": "Yeni Özel Alanlar",
+        "ADD_GLOBALCUSTOMFIELD": "Özel Alan Ekle",
+        "EDIT_GLOBALCUSTOMFIELD": "Edit Özel Alan",
+        "DELETE_GLOBALCUSTOMFIELD": "Delete Özel Alan",
+        "STATE": "Devlet",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "Durum",
+        "STARTTIME": "Başlangıç Zamanı",
+        "ENDTIME": "Bitiş Zamanı",
+        "MOTION_BULL": "Hareket Boğa",
+        "HOPPER": "Silo",
+        "FINAL": "Silo Son",
+        "HISTORY": "Silo Geçmişi",
+        "SCHEDULEDAT": "Planlanmış,",
+        "EDIT_HOPPER": "Teknenin Düzenle",
+        "DELETE_HOPPER": "Teknenin silin",
+        "RELOAD": "Yükle",
+        "DISPOSITION": "Eğiliminin"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/zh-CN.json b/public/app/main/apps/contactmanager/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..438c718
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "名称",
+        "LISTS": "列表",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "EDIT_LIST": "编辑列表",
+        "DELETE_LIST": "删除列表",
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "FIRSTNAME_REQUIRED": "第一名是必需的",
+            "ALIAS_REQUIRED": "别名是必需的",
+            "VALUE_REQUIRED": "该值是必需的",
+            "EMAIL_MUST_VALID": "该电子邮件地址必须写的格式无效",
+            "PHONE_REQUIRED": "手机是必需的"
+        },
+        "DESCRIPTION": "描述",
+        "DISPOSITIONS": "资产处置",
+        "VOICEDISPOSITIONS": "语音部署",
+        "NEW_VOICEDISPOSITION": "新的语音处理",
+        "CUSTOM_FIELDS": "自定义字段。",
+        "ADD_LIST": "添加列表",
+        "BACK": "返回",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "COMPANIES": "公司",
+        "EDIT_COMPANY": "编辑公司",
+        "DELETE_COMPANY": "删除公司",
+        "PHONE": "电话",
+        "EMAIL": "电子邮件",
+        "ADD_COMPANY": "添加公司",
+        "CONTACTS": "联系人",
+        "NEW_LIST": "新的列表。",
+        "FIRSTNAME": "第一名",
+        "LASTNAME": "最后的名称。",
+        "LIST": "列表",
+        "COMPANY": "公司",
+        "ADD_CONTACT": "添加联系人",
+        "EDIT_CONTACT": "编辑联系人",
+        "MERGE_CONTACT": "合并联系人",
+        "DUPLICATE_CONTACT": "复制联系人",
+        "DELETE_CONTACT": "删除联系人",
+        "CREATED_AT": "创建在",
+        "SAVE": "保存",
+        "DETAIL": "详细信息",
+        "PERSONAL_INFO": "个人信息",
+        "MOBILE": "移动数据终端",
+        "FAX": "传真",
+        "TAGS": "标签",
+        "SHOW_ALL_FIELDS": "显示所有字段",
+        "FEWER_FIELDS": "显示更少的字段",
+        "COUNTRY": "国家/地区",
+        "CITY": "城市",
+        "STREET": "街",
+        "POSTALCODE": "邮政编码",
+        "DELETE": "删除",
+        "CONTACTMANAGER": "联系人管理器",
+        "ID": "Id",
+        "SETTINGS": "设置",
+        "GENERAL": "总的",
+        "CUSTOMFIELDS": "自定义字段。",
+        "NO_CUSTOMFIELD_AVAILABLE": "没有自定义的可用字段",
+        "ALIAS": "别名。",
+        "TYPE": "类型",
+        "VALUE": "值",
+        "ADD_CUSTOMFIELD": "添加自定义字段",
+        "EDIT_CUSTOMFIELD": "编辑自定义字段",
+        "DELETE_CUSTOMFIELD": "删除自定义字段",
+        "NEW_COMPANY": "新公司",
+        "NEW_CONTACT": "新联系人",
+        "NEW_TAG": "新建标签",
+        "UPLOAD_CONTACTS": "上载联系人",
+        "FINISH": "完成",
+        "SUCCESS": "成功",
+        "FAILURE": "故障",
+        "ALL_CONTACTS": "所有联系人",
+        "NEW_CUSTOMFIELD": "新的自定义字段",
+        "NO_VOICEDISPOSITION_AVAILABLE": "无语音资产处置的可用",
+        "ADD_VOICEDISPOSITION": "添加语音消息处理",
+        "EDIT_VOICEDISPOSITION": "编辑语音处理",
+        "DELETE_VOICEDISPOSITION": "删除语音处理",
+        "VAT": "增值税",
+        "COMPANYID": "公司标识",
+        "WEBSITE": "网站",
+        "EMAIL_DOMAIN": "电子邮件域",
+        "ADDRESS": "地址",
+        "POSTAL_CODE": "邮政编码",
+        "SHIPMENTADDRESS": "发货地址",
+        "COPY_CONTACT": "复制联系人",
+        "GOTOCONTACTS_LIST": "显示联系人",
+        "GOTOCONTACTS_COMPANY": "显示联系人",
+        "ADD_AGENT_TO_LIST": "将座席添加到列表中",
+        "AGENTADD_LIST": "将座席添加到列表中",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "NONE": "无",
+        "FULLNAME": "全名。",
+        "CHECK_DUPLICATES": "检查重复项",
+        "DUPLICATES": "重复项",
+        "UPLOAD_CSV": "上传 CSV",
+        "TAG": "标签",
+        "UPLOAD": "上传",
+        "ALL_AGENTS": "所有座席",
+        "SELECTED_AGENTS": "选定的座席",
+        "DATE_OF_BIRTH": "出生日期",
+        "NOTES": "备注",
+        "EXPORTCSVCONTACTS_LIST": "导出到 CSV",
+        "GOTO_LIST": "显示联系人",
+        "GOTO_COMPANY": "显示联系人",
+        "REQUIRED": "所需的",
+        "DATEOFBIRTH": "出生日期",
+        "NO_COMPANIES": "没有任何公司",
+        "ADD_TAG": "添加标记",
+        "NO_TAG": "无标记",
+        "GLOBALCUSTOMFIELDS": "全球性的自定义字段。",
+        "NEW_GLOBALCUSTOMFIELD": "新的自定义字段。",
+        "ADD_GLOBALCUSTOMFIELD": "添加自定义字段",
+        "EDIT_GLOBALCUSTOMFIELD": "编辑自定义字段",
+        "DELETE_GLOBALCUSTOMFIELD": "删除自定义字段",
+        "STATE": "状态",
+        "UNIQUEID": "Uniqueid",
+        "STATUS": "状态",
+        "STARTTIME": "开始时间",
+        "ENDTIME": "结束时间",
+        "MOTION_BULL": "运动防撞架",
+        "HOPPER": "料斗",
+        "FINAL": "料斗最后",
+        "HISTORY": "料斗的历史",
+        "SCHEDULEDAT": "计划在",
+        "EDIT_HOPPER": "编辑料斗",
+        "DELETE_HOPPER": "删除料斗",
+        "RELOAD": "重新加载",
+        "DISPOSITION": "处理"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/contactmanager/i18n/zh-TW.json b/public/app/main/apps/contactmanager/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..f7955da
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "CONTACTMANAGER": {
+        "NAME": "名稱",
+        "LISTS": "清單",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "EDIT_LIST": "編輯清單",
+        "DELETE_LIST": "刪除清單",
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "FIRSTNAME_REQUIRED": "名字是必填欄位",
+            "ALIAS_REQUIRED": "別名是必填欄位",
+            "VALUE_REQUIRED": "此值為必填欄位",
+            "EMAIL_MUST_VALID": "電子郵件地址必須以有效的格式",
+            "PHONE_REQUIRED": "「電話」為必填欄位"
+        },
+        "DESCRIPTION": "說明",
+        "DISPOSITIONS": "Dispositions",
+        "VOICEDISPOSITIONS": "語音 Dispositions",
+        "NEW_VOICEDISPOSITION": "新的語音通話處理",
+        "CUSTOM_FIELDS": "自訂欄位",
+        "ADD_LIST": "新增清單",
+        "BACK": "備份",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "COMPANIES": "公司",
+        "EDIT_COMPANY": "編輯公司",
+        "DELETE_COMPANY": "刪除公司",
+        "PHONE": "電話",
+        "EMAIL": "電子郵件",
+        "ADD_COMPANY": "新增公司",
+        "CONTACTS": "[ 連絡人 ]",
+        "NEW_LIST": "新增清單",
+        "FIRSTNAME": "名字",
+        "LASTNAME": "姓氏",
+        "LIST": "清單",
+        "COMPANY": "公司",
+        "ADD_CONTACT": "新增連絡人",
+        "EDIT_CONTACT": "編輯連絡人",
+        "MERGE_CONTACT": "合併連絡人",
+        "DUPLICATE_CONTACT": "複製連絡人",
+        "DELETE_CONTACT": "刪除連絡人",
+        "CREATED_AT": "建立在",
+        "SAVE": "儲存",
+        "DETAIL": "詳細資料",
+        "PERSONAL_INFO": "個人資訊",
+        "MOBILE": "行動電話",
+        "FAX": "傳真",
+        "TAGS": "標籤",
+        "SHOW_ALL_FIELDS": "顯示所有欄位",
+        "FEWER_FIELDS": "顯示較少欄位",
+        "COUNTRY": "國家 / 地區",
+        "CITY": "鄉 / 鎮 / 區 / 市",
+        "STREET": "街道地址",
+        "POSTALCODE": "郵遞區號",
+        "DELETE": "刪除",
+        "CONTACTMANAGER": "連絡人管理員",
+        "ID": "Id",
+        "SETTINGS": "設定",
+        "GENERAL": "通用",
+        "CUSTOMFIELDS": "自訂欄位",
+        "NO_CUSTOMFIELD_AVAILABLE": "無自訂欄位",
+        "ALIAS": "別名",
+        "TYPE": "類型",
+        "VALUE": "值",
+        "ADD_CUSTOMFIELD": "新增自訂欄位",
+        "EDIT_CUSTOMFIELD": "編輯自訂欄位",
+        "DELETE_CUSTOMFIELD": "刪除自訂欄位",
+        "NEW_COMPANY": "新的公司",
+        "NEW_CONTACT": "新增連絡人",
+        "NEW_TAG": "新標籤",
+        "UPLOAD_CONTACTS": "上傳 [ 連絡人 ]",
+        "FINISH": "完成",
+        "SUCCESS": "成功",
+        "FAILURE": "失敗",
+        "ALL_CONTACTS": "全部連絡人",
+        "NEW_CUSTOMFIELD": "新增自訂欄位",
+        "NO_VOICEDISPOSITION_AVAILABLE": "無語音 Dispositions 可用性",
+        "ADD_VOICEDISPOSITION": "新增語音處理",
+        "EDIT_VOICEDISPOSITION": "編輯語音處理",
+        "DELETE_VOICEDISPOSITION": "刪除語音處理",
+        "VAT": "加值稅",
+        "COMPANYID": "公司 ID",
+        "WEBSITE": "網站",
+        "EMAIL_DOMAIN": "電子郵件網域",
+        "ADDRESS": "位址",
+        "POSTAL_CODE": "郵遞區號",
+        "SHIPMENTADDRESS": "運送地址",
+        "COPY_CONTACT": "複製連絡人",
+        "GOTOCONTACTS_LIST": "顯示連絡人",
+        "GOTOCONTACTS_COMPANY": "顯示連絡人",
+        "ADD_AGENT_TO_LIST": "值機員新增至清單",
+        "AGENTADD_LIST": "值機員新增至清單",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "NONE": "「無」",
+        "FULLNAME": "完整名稱",
+        "CHECK_DUPLICATES": "檢查重複",
+        "DUPLICATES": "重複項目",
+        "UPLOAD_CSV": "上傳 CSV",
+        "TAG": "標籤",
+        "UPLOAD": "上傳",
+        "ALL_AGENTS": "所有值機員",
+        "SELECTED_AGENTS": "已選取的值機人員",
+        "DATE_OF_BIRTH": "出生日期",
+        "NOTES": "注意事項",
+        "EXPORTCSVCONTACTS_LIST": "匯出至 CSV",
+        "GOTO_LIST": "顯示連絡人",
+        "GOTO_COMPANY": "顯示連絡人",
+        "REQUIRED": "必填欄位",
+        "DATEOFBIRTH": "出生日期",
+        "NO_COMPANIES": "沒有一家公司",
+        "ADD_TAG": "新增標籤",
+        "NO_TAG": "無標籤",
+        "GLOBALCUSTOMFIELDS": "全球自訂欄位",
+        "NEW_GLOBALCUSTOMFIELD": "新增自訂欄位",
+        "ADD_GLOBALCUSTOMFIELD": "新增自訂欄位",
+        "EDIT_GLOBALCUSTOMFIELD": "編輯自訂欄位",
+        "DELETE_GLOBALCUSTOMFIELD": "刪除自訂欄位",
+        "STATE": "狀態",
+        "UNIQUEID": "指定唯一 ID",
+        "STATUS": "狀態",
+        "STARTTIME": "開始時間",
+        "ENDTIME": "結束時間",
+        "MOTION_BULL": "動態牛",
+        "HOPPER": "料斗",
+        "FINAL": "料斗最終版",
+        "HISTORY": "料斗歷程記錄",
+        "SCHEDULEDAT": "排程於",
+        "EDIT_HOPPER": "編輯料斗",
+        "DELETE_HOPPER": "刪除料斗",
+        "RELOAD": "重新載入",
+        "DISPOSITION": "配置"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/da.json b/public/app/main/apps/dashboards/i18n/da.json
new file mode 100644 (file)
index 0000000..7510796
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Dashboards",
+        "GENERAL": "Generel",
+        "VOICE": "Voice",
+        "TODAY_INBOUND_STATS": "I dag indgående statistik",
+        "TODAY_OUTBOUND_STATS": "Udgående statistik i dag",
+        "WAITING": "Ventende",
+        "TALKING": "Samtale",
+        "INBOUND_ANSWERED": "Besvaret",
+        "OUTBOUND_ANSWERED": "Besvaret",
+        "ABANDONED": "Afbrudt",
+        "TOTAL_OFFERED": "Samlet udbydes",
+        "AVG_HOLD_TIME": "Den gennemsnitlige parkeringstid",
+        "AVG_TALK_TIME": "Gennemsnitlig taletid",
+        "INBOUND_ANSWER_RATE": "Svar Bedøm",
+        "OUTBOUND_ANSWER_RATE": "Svar Bedøm",
+        "ABANDON_RATE": "Grad af afbr.",
+        "UNMANAGED": "Unmanaged",
+        "TOTAL": "Total",
+        "TOT_DURATION": "Samlet varighed",
+        "AVG_DURATION": "Gennemsnitlig varighed",
+        "HELP": {
+            "WAITING": "Det samlede antal ventende kø opkald, under hensyntagen til alle de oprettede køer",
+            "TALKING": "Det samlede antal aktive kø opkald, under hensyntagen til alle de oprettede køer",
+            "INBOUND_ANSWERED": "Det samlede antal afsluttede kø opkald, da alle køer",
+            "OUTBOUND_ANSWERED": "Det samlede antal afsluttede udgående opkald",
+            "ABANDONED": "Det samlede antal afbrudte opkald i kø, i betragtning af alle de skabte køer. Bemærk, at opkald, der blev afbrudt for timeout og joinempty medregnes ikke i denne værdi",
+            "TOTAL_OFFERED": "Det samlede antal opkald i kø (afsluttet afbrudte QC QC). Bemærk, at opkald, der endte i IVR, uden at gå ind i køen, ikke tælles med denne værdi",
+            "AVG_HOLD_TIME": "Den gennemsnitlige ventetid i kø, som repræsenterer den gennemsnitlige tid brugt på at vente på opkald til en agent besvarer, hvilke alle køer",
+            "AVG_TALK_TIME": "Den gennemsnitlige samtaletid kø, som repræsenterer den gennemsnitlige varighed af opkald tilbragte i samtalen, hvilke alle køer",
+            "INBOUND_ANSWER_RATE": "Svaret blandt kø opkald",
+            "OUTBOUND_ANSWER_RATE": "Svaret på alle udgående opkald",
+            "ABANDON_RATE": "Den opgiver blandt kø opkald",
+            "UNMANAGED": "Det samlede antal administrerede kø opkald, i betragtning af alle de skabte køer. Det omfatter de opkald, der blev afbrudt for timeout, og exitwithkey joinempty leavewhenempty",
+            "TOTAL": "Det samlede antal udgående opkald",
+            "TOT_DURATION": "Den samlede varighed af alle udgående opkald",
+            "AVG_DURATION": "Den gennemsnitlige varighed af alle afsluttede udgående opkald",
+            "DROPPED": "Det samlede antal opkald sat i kø, i betragtning af alle de skabte køer.",
+            "DROP_RATE": "Sænkehastigheden på alle opkald i kø"
+        },
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "WELCOME_TO_MOTION": "Velkommen til motion",
+        "WELCOME_MESSAGE": "Brug den venstre sidebjælke til at navigere mellem sektioner.",
+        "ADD": "Tilføj",
+        "CONTACTMANAGER": "Contact Manager",
+        "DASHBOARD": "Dashboard",
+        "EDIT_CONTACT": "Rediger kontakt",
+        "EMAIL": "Email",
+        "FULLNAME": "Fullname",
+        "LIST": "Listen",
+        "NEW_CONTACT": "Ny kontakt",
+        "PHONE": "Telefonen",
+        "SAVE": "Gem",
+        "INBOUND_WAITING_CALLS": "Indgående Ventende opkald",
+        "CONTACTS": "Kontakter",
+        "ADD_CONTACT": "Tilføj kontakt",
+        "RELOAD": "Reload",
+        "QUEUES": "Køer",
+        "WAITING_TEXT": "Ventende opkald i kø",
+        "TALKING_TEXT": "Aktive opkald i kø",
+        "INBOUND_ANSWERED_TEXT": "Besvaret opkald i kø",
+        "ABANDONED_TEXT": "Afbrudte opkald i kø",
+        "TOTAL_OFFERED_TEXT": "Total Kø opkald",
+        "AVG_HOLD_TIME_TEXT": "Avg kø opkald parkeret tid",
+        "AVG_TALK_TIME_TEXT": "Kø - taletid",
+        "INBOUND_ANSWER_RATE_TEXT": "Besvar opkald, kø",
+        "ABANDON_RATE_TEXT": "Kø Opkald afbr sats",
+        "UNMANAGED_TEXT": "Uorganiseret Kø opkald",
+        "TOTAL_TEXT": "Samlet antal udgående opkald",
+        "OUTBOUND_ANSWERED_TEXT": "Udgående opkald besvaret",
+        "TOT_DURATION_TEXT": "Udgående opkald samlet varighed",
+        "AVG_DURATION_TEXT": "Udgående opkald gennemsnitlig varighed",
+        "OUTBOUND_ANSWER_RATE_TEXT": "Udgående opkald Besvar sats",
+        "RECORDINGS": "Optagelser",
+        "DISPOSE": "Aflever",
+        "DIALER_CALL": "Dialeren ringer",
+        "ELAPSED_TIME": "Forløbet tid",
+        "EDIT": "Rediger",
+        "MERGE": "Flet",
+        "DUPLICATE": "Dublet",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "Kampagne",
+        "NONE": "Ingen",
+        "NAME": "Navnet",
+        "PERSONAL_INFO": "Personal Info",
+        "FIRSTNAME": "Fornavn",
+        "LASTNAME": "Efternavn",
+        "MOBILE": "Mobil",
+        "FAX": "Fax",
+        "DATE_OF_BIRTH": "Fødselsdato",
+        "COMPANY": "Selskab",
+        "TAG": "Tag",
+        "COUNTRY": "Land",
+        "CITY": "City",
+        "STREET": "Street",
+        "POSTALCODE": "Postnummer",
+        "CUSTOM_FIELDS": "Brugerdefinerede felter",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "Det første navn er påkrævet",
+            "PHONE_REQUIRED": "Telefonen er påkrævet"
+        },
+        "MYCONTACTS": "Mine kontakter",
+        "ANSWER_MACHINE": "Telefonsvarer",
+        "INTERESTED": "Interesserede",
+        "NOT_INTERESTED": "Ikke interesseret",
+        "SOLD": "Solgt",
+        "SPECIAL": "Særlige",
+        "BLACKLIST": "Sortliste",
+        "RESCHEDULE": "Genplanlæg",
+        "DROP_RATE": "Faldhastighedsventil",
+        "DROPPED": "Faldet",
+        "DETAIL": "Detaljer",
+        "MOTION_BULL": "Motion Bull",
+        "LIMITED": "Begrænset",
+        "LIMITED_TEXT": "Kampagner Opkald/begrænset",
+        "TODAY_MOTION_BULL_STATS": "I dag Motion Bull statistik",
+        "ORIGINATED": "Oprindelse",
+        "ORIGINATED_TEXT": "Opkald i kø",
+        "MOTIONDIALER": "Motion Bull",
+        "TODAY_IVR_CAMPAIGNS_STATS": "I dag Kampagner Statistik Ivr"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/de.json b/public/app/main/apps/dashboards/i18n/de.json
new file mode 100644 (file)
index 0000000..cd26c09
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Dashboards",
+        "GENERAL": "Allgemein",
+        "VOICE": "Voice",
+        "TODAY_INBOUND_STATS": "Heute eingehenden Stats",
+        "TODAY_OUTBOUND_STATS": "Heute ausgehenden Stats",
+        "WAITING": "Warten",
+        "TALKING": "Sprechen",
+        "INBOUND_ANSWERED": "Beantwortet",
+        "OUTBOUND_ANSWERED": "Beantwortet",
+        "ABANDONED": "Abgebrochen",
+        "TOTAL_OFFERED": "Insgesamt",
+        "AVG_HOLD_TIME": "Durchschnittliche Haltezeit",
+        "AVG_TALK_TIME": "Durchschnittliche Gesprächszeit",
+        "INBOUND_ANSWER_RATE": "Antwort bewerten",
+        "OUTBOUND_ANSWER_RATE": "Antwort bewerten",
+        "ABANDON_RATE": "Abbruchrate",
+        "UNMANAGED": "Nicht verwaltete",
+        "TOTAL": "Insgesamt",
+        "TOT_DURATION": "Gesamtdauer",
+        "AVG_DURATION": "Durchschnittliche Dauer",
+        "HELP": {
+            "WAITING": "Die Gesamtzahl der wartenden Anrufe aus der Warteschlange, wenn man bedenkt, dass alle erstellten Warteschlangen",
+            "TALKING": "Die Gesamtzahl der aktiven Anrufe aus der Warteschlange, wenn man bedenkt, dass alle erstellten Warteschlangen",
+            "INBOUND_ANSWERED": "Die Gesamtzahl der abgeschlossenen Anrufe aus der Warteschlange, wenn man bedenkt, dass alle Warteschlangen",
+            "OUTBOUND_ANSWERED": "Die Gesamtzahl der abgeschlossenen ausgehenden Anrufe",
+            "ABANDONED": "Die Gesamtzahl der abgebrochenen Anrufe aus der Warteschlange, wenn man bedenkt, dass alle erstellten Warteschlangen. Beachten Sie, dass die Gespräche, die für Timeout und Joinempty aufgegeben sind, werden nicht in diesem Wert gezählt",
+            "TOTAL_OFFERED": "Die Gesamtzahl der abgebrochenen Anrufe aus der Warteschlange (abgeschlossen). Beachten Sie, dass die Anrufe, die das IVR-System beendet werden, ohne sich in der Warteschlange befinden, sind nicht in diesem Wert gezählt",
+            "AVG_HOLD_TIME": "Die durchschnittliche Warteschlange Halten Sie die Zeit, die für die durchschnittliche Zeit, die der Anruf mit Warten auf eine Antwort des Agenten, wenn man bedenkt, dass alle Warteschlangen",
+            "AVG_TALK_TIME": "Die durchschnittliche Warteschlange Sprechzeit, die für die durchschnittliche Zeit, die der Anruf im Gespräch verbracht hat, wenn man bedenkt, dass alle Warteschlangen",
+            "INBOUND_ANSWER_RATE": "Die Antwort der alle Anrufe aus der Warteschlange",
+            "OUTBOUND_ANSWER_RATE": "Die Antwort Rate aller abgehenden Anrufe",
+            "ABANDON_RATE": "Die Abbruchrate der alle Anrufe aus der Warteschlange",
+            "UNMANAGED": "Die Gesamtzahl der nicht verwaltete Anrufe aus der Warteschlange, wenn man bedenkt, dass alle erstellten Warteschlangen. Es umfasst die Anrufe, die für Timeout, und Exitwithkey leavewhenempty Joinempty, abgebrochen werden",
+            "TOTAL": "Die Gesamtzahl der abgehenden Anrufe",
+            "TOT_DURATION": "Die Gesamtdauer aller abgehenden Anrufe",
+            "AVG_DURATION": "Die durchschnittliche Dauer aller abgeschlossenen ausgehenden Anrufe",
+            "DROPPED": "Die Gesamtzahl abgebrochener Anrufe aus der Warteschlange, wenn man bedenkt, dass alle erstellten Warteschlangen.",
+            "DROP_RATE": "Die Droprate aller Anrufe aus der Warteschlange"
+        },
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "WELCOME_TO_MOTION": "Sie können die Bewegung willkommen",
+        "WELCOME_MESSAGE": "In der linken Seitenleiste durch Abschnitte zu navigieren.",
+        "ADD": "Hinzufügen",
+        "CONTACTMANAGER": "Contact Manager",
+        "DASHBOARD": "Armaturenbrett",
+        "EDIT_CONTACT": "Kontakt bearbeiten",
+        "EMAIL": "E-Mail",
+        "FULLNAME": "Fullname",
+        "LIST": "Liste",
+        "NEW_CONTACT": "Neuer Kontakt",
+        "PHONE": "Telefon",
+        "SAVE": "Speichern",
+        "INBOUND_WAITING_CALLS": "Eingehende Anrufe warten",
+        "CONTACTS": "Kontakte",
+        "ADD_CONTACT": "Kontakt hinzufügen",
+        "RELOAD": "Neu laden",
+        "QUEUES": "Warteschlangen",
+        "WAITING_TEXT": "Wartende Anrufe aus der Warteschlange",
+        "TALKING_TEXT": "Aktive Anrufe aus der Warteschlange",
+        "INBOUND_ANSWERED_TEXT": "Beantwortete Anrufe aus der Warteschlange",
+        "ABANDONED_TEXT": "Abgebrochene Anrufe aus der Warteschlange",
+        "TOTAL_OFFERED_TEXT": "Anrufe in Warteschlange gesamt",
+        "AVG_HOLD_TIME_TEXT": "Anrufe aus der Warteschlange, Durchschnittl. Warteschleifenzeit",
+        "AVG_TALK_TIME_TEXT": "Warteschlange Anrufe Gesprächszeit",
+        "INBOUND_ANSWER_RATE_TEXT": "Anrufe aus der Warteschlange Antwort bewerten",
+        "ABANDON_RATE_TEXT": "Anrufe aus der Warteschlange, die Abbruchrate",
+        "UNMANAGED_TEXT": "Nicht verwaltete Anrufe aus der Warteschlange",
+        "TOTAL_TEXT": "Gesamtzahl der abgehenden Anrufe",
+        "OUTBOUND_ANSWERED_TEXT": "\"Abgehende Gespräche beantwortet",
+        "TOT_DURATION_TEXT": "Abgehende Anrufe insgesamt",
+        "AVG_DURATION_TEXT": "Ausgehende Anrufe, die durchschnittliche Dauer",
+        "OUTBOUND_ANSWER_RATE_TEXT": "Ausgehende Anrufe bei",
+        "RECORDINGS": "Aufnahmen",
+        "DISPOSE": "Entsorgen",
+        "DIALER_CALL": "Dialer Anruf",
+        "ELAPSED_TIME": "Verstrichene Zeit",
+        "EDIT": "Bearbeiten",
+        "MERGE": "Zusammenführen",
+        "DUPLICATE": "Duplizieren",
+        "UNIQUEID": "Die Uniqueid-",
+        "CAMPAIGN": "Kampagne",
+        "NONE": "Keine",
+        "NAME": "Name",
+        "PERSONAL_INFO": "Persönliche Infos",
+        "FIRSTNAME": "Vorname",
+        "LASTNAME": "Nachname",
+        "MOBILE": "Mobile",
+        "FAX": "Fax",
+        "DATE_OF_BIRTH": "Geburtsdatum",
+        "COMPANY": "Unternehmen",
+        "TAG": "Tag",
+        "COUNTRY": "Land",
+        "CITY": "Stadt",
+        "STREET": "Straße",
+        "POSTALCODE": "Postleitzahl",
+        "CUSTOM_FIELDS": "Benutzerdefinierte Felder",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "Der erste Name ist erforderlich",
+            "PHONE_REQUIRED": "Die Telefonnummer ist erforderlich"
+        },
+        "MYCONTACTS": "Meine Kontakte",
+        "ANSWER_MACHINE": "Anrufbeantworter",
+        "INTERESTED": "Interessiert",
+        "NOT_INTERESTED": "Kein Interesse",
+        "SOLD": "Verkauft",
+        "SPECIAL": "Spezielle",
+        "BLACKLIST": "Schwarze Liste",
+        "RESCHEDULE": "Neu planen",
+        "DROP_RATE": "Absenkgeschwindigkeit",
+        "DROPPED": "Zurück",
+        "DETAIL": "Detail",
+        "MOTION_BULL": "Motion Stier",
+        "LIMITED": "Begrenzt",
+        "LIMITED_TEXT": "Kampagnen fordert Entstanden/Begrenzt",
+        "TODAY_MOTION_BULL_STATS": "Heute Bewegung Stier Stats",
+        "ORIGINATED": "Entstanden",
+        "ORIGINATED_TEXT": "Anrufe aus der Warteschlange entstanden",
+        "MOTIONDIALER": "Motion Stier",
+        "TODAY_IVR_CAMPAIGNS_STATS": "Heute Ivr-Kampagnen Stats"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/en.json b/public/app/main/apps/dashboards/i18n/en.json
new file mode 100644 (file)
index 0000000..0c9ccf7
--- /dev/null
@@ -0,0 +1,125 @@
+{
+    "DASHBOARDS": {
+        "DROP_RATE": "Drop Rate",
+        "DROPPED": "Dropped",
+        "DROPPED_TEXT": "Dropped Queue Calls",
+        "DETAIL": "Detail",
+        "MOTION_BULL": "Motion Bull",
+        "LIMITED": "Limited",
+        "LIMITED_TEXT": "Campaigns Calls Originated/Limited",
+        "DASHBOARDS": "Dashboards",
+        "RECORDINGS": "Recordings",
+        "TODAY_MOTION_BULL_STATS": "Today Motion Bull Stats",
+        "ORIGINATED": "Originated",
+        "ORIGINATED_TEXT": "Queue Calls Originated",
+        "MOTIONDIALER": "Motion Bull",
+        "DISPOSE": "Dispose",
+        "QUEUES": "Queues",
+        "DIALER_CALL": "Dialer Call",
+        "ELAPSED_TIME": "Elapsed Time",
+        "EDIT": "Edit",
+        "MERGE": "Merge",
+        "DUPLICATE": "Duplicate",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "Campaign",
+        "NONE": "None",
+        "NAME": "Name",
+        "ANSWER_MACHINE": "Answer Machine",
+        "INTERESTED": "Interested",
+        "NOT_INTERESTED": "Not Interested",
+        "PERSONAL_INFO": "Personal Info",
+        "SOLD": "Sold",
+        "SPECIAL": "Special",
+        "BLACKLIST": "Blacklist",
+        "RESCHEDULE": "Reschedule",
+        "FIRSTNAME": "Firstname",
+        "LASTNAME": "Lastname",
+        "MOBILE": "Mobile",
+        "FAX": "Fax",
+        "DATE_OF_BIRTH": "Date of Birth",
+        "COMPANY": "Company",
+        "TAG": "Tag",
+        "COUNTRY": "Country",
+        "CITY": "City",
+        "STREET": "Street",
+        "POSTALCODE": "Postal Code",
+        "CUSTOM_FIELDS": "Custom Fields",
+        "GENERAL": "General",
+        "VOICE": "Voice",
+        "TODAY_IVR_CAMPAIGNS_STATS": "Today Ivr Campaigns Stats",
+        "TODAY_INBOUND_STATS": "Today Inbound Stats",
+        "TODAY_OUTBOUND_STATS": "Today Outbound Stats",
+        "WAITING": "Waiting",
+        "TALKING": "Talking",
+        "INBOUND_ANSWERED": "Answered",
+        "OUTBOUND_ANSWERED": "Answered",
+        "ABANDONED": "Abandoned",
+        "TOTAL_OFFERED": "Total Offered",
+        "AVG_HOLD_TIME": "Average Hold Time",
+        "AVG_TALK_TIME": "Average Talk Time",
+        "INBOUND_ANSWER_RATE": "Answer Rate",
+        "OUTBOUND_ANSWER_RATE": "Answer Rate",
+        "ABANDON_RATE": "Abandon Rate",
+        "UNMANAGED": "Unmanaged",
+        "TOTAL": "Total",
+        "TOT_DURATION": "Total Duration",
+        "AVG_DURATION": "Average Duration",
+        "HELP": {
+            "DROPPED": "The total number of Dropped Queue Calls, considering all the created Queues.",
+            "DROP_RATE": "The Drop Rate of all the Queue Calls",
+            "WAITING": "The total number of Waiting Queue Calls, considering all the created Queues",
+            "TALKING": "The total number of Active Queue Calls, considering all the created Queues",
+            "INBOUND_ANSWERED": "The total number of Completed Queue Calls, considering all the queues",
+            "OUTBOUND_ANSWERED": "The total number of Completed Outbound Calls",
+            "ABANDONED": "The total number of Abandoned Queue Calls, considering all the created Queues. Note that the calls which are abandoned for timeout and joinempty are not counted in this value",
+            "TOTAL_OFFERED": "The total number of Queue Calls (completed + abandoned). Note that the calls which are ended in the IVR, without entering in the queue, are not counted in this value",
+            "AVG_HOLD_TIME": "The Average Queue Hold Time, which represents the average time of the call spent waiting for an agent answer, considering all the Queues",
+            "AVG_TALK_TIME": "The Average Queue Talk Time, which represents the average time of the call spent in conversation, considering all the Queues",
+            "INBOUND_ANSWER_RATE": "The Answer Rate of all the Queue Calls",
+            "OUTBOUND_ANSWER_RATE": "The Answer Rate of all the Outbound Calls",
+            "ABANDON_RATE": "The Abandon Rate of all the Queue Calls",
+            "UNMANAGED": "The total number of Unmanaged Queue Calls, considering all the created Queues. It includes the calls which are abandoned for timeout, joinempty, leavewhenempty and exitwithkey",
+            "TOTAL": "The total number of Outbound Calls",
+            "TOT_DURATION": "The total duration of all the Outbound Calls",
+            "AVG_DURATION": "The average duration of all the Completed Outbound Calls"
+        },
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "The First Name is required",
+            "PHONE_REQUIRED": "The Phone is required"
+        },
+        "NO_AVAILABLE_INFO": "No available info",
+        "WELCOME_TO_MOTION": "Welcome to Motion",
+        "WELCOME_MESSAGE": "Use the left sidebar to navigate through sections.",
+        "ADD": "Add",
+        "CONTACTMANAGER": "Contact Manager",
+        "DASHBOARD": "Dashboard",
+        "EDIT_CONTACT": "Edit contact",
+        "EMAIL": "Email",
+        "FULLNAME": "Fullname",
+        "LIST": "List",
+        "NEW_CONTACT": "New Contact",
+        "PHONE": "Phone",
+        "SAVE": "Save",
+        "INBOUND_WAITING_CALLS": "Inbound Waiting Calls",
+        "CONTACTS": "Contacts",
+        "MYCONTACTS": "My Contacts",
+        "ADD_CONTACT": "Add Contact",
+        "RELOAD": "Reload",
+        "WAITING_TEXT": "Waiting Queue Calls",
+        "TALKING_TEXT": "Active Queue Calls",
+        "INBOUND_ANSWERED_TEXT": "Answered Queue Calls",
+        "ABANDONED_TEXT": "Abandoned Queue Calls",
+        "DROP_RATE_TEXT": "Queue Calls Drop Rate",
+        "TOTAL_OFFERED_TEXT": "Total Queue Calls",
+        "AVG_HOLD_TIME_TEXT": "Queue Calls Avg Hold Time",
+        "AVG_TALK_TIME_TEXT": "Queue Calls Talk Time",
+        "INBOUND_ANSWER_RATE_TEXT": "Queue Calls Answer Rate",
+        "ABANDON_RATE_TEXT": "Queue Calls Abandon Rate",
+        "UNMANAGED_TEXT": "Unmanaged Queue Calls",
+        "TOTAL_TEXT": "Total Outbound Calls",
+        "OUTBOUND_ANSWERED_TEXT": "Outbound Answered Calls",
+        "TOT_DURATION_TEXT": "Outbound Calls Total Duration",
+        "AVG_DURATION_TEXT": "Outbound Calls Average Duration",
+        "OUTBOUND_ANSWER_RATE_TEXT": "Outbound calls Answer Rate"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/es.json b/public/app/main/apps/dashboards/i18n/es.json
new file mode 100644 (file)
index 0000000..32318b0
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Los paneles",
+        "GENERAL": "General",
+        "VOICE": "Voz",
+        "TODAY_INBOUND_STATS": "Hoy Stats entrantes",
+        "TODAY_OUTBOUND_STATS": "Hoy Stats saliente",
+        "WAITING": "Esperando",
+        "TALKING": "Hablando",
+        "INBOUND_ANSWERED": "Contestadas",
+        "OUTBOUND_ANSWERED": "Contestadas",
+        "ABANDONED": "Abandonado",
+        "TOTAL_OFFERED": "Total ofertado",
+        "AVG_HOLD_TIME": "Tiempo promedio en espera",
+        "AVG_TALK_TIME": "Tiempo promedio de conversación",
+        "INBOUND_ANSWER_RATE": "Tasa de respuesta",
+        "OUTBOUND_ANSWER_RATE": "Tasa de respuesta",
+        "ABANDON_RATE": "Índice de abandono",
+        "UNMANAGED": "Unmanaged",
+        "TOTAL": "Total",
+        "TOT_DURATION": "Duración total",
+        "AVG_DURATION": "Duración media",
+        "HELP": {
+            "WAITING": "El número total de llamadas de la cola de espera, considerando todas las colas creadas",
+            "TALKING": "El número total de llamadas de la cola activa, considerando todas las colas creadas",
+            "INBOUND_ANSWERED": "El número total de llamadas de cola terminado, considerando todas las colas",
+            "OUTBOUND_ANSWERED": "Completado el número total de llamadas salientes",
+            "ABANDONED": "El número total de llamadas abandonadas en cola, considerando todas las colas creadas. Tenga en cuenta que las llamadas abandonadas por timeout y joinempty no cuentan en este valor",
+            "TOTAL_OFFERED": "El número total de llamadas de cola (completado) abandonados. Tenga en cuenta que las llamadas que se terminó en el IVR, sin entrar en la cola, no se cuentan en este valor",
+            "AVG_HOLD_TIME": "El promedio de tiempo de espera de cola, que representa la media hora de la llamada que se dedica a la espera de una respuesta del agente, considerando todas las colas",
+            "AVG_TALK_TIME": "El promedio de tiempo de conversación de cola, que representa el tiempo promedio de la llamada pasó en conversación, considerando todas las colas",
+            "INBOUND_ANSWER_RATE": "La tasa de respuesta de todas las llamadas de la cola",
+            "OUTBOUND_ANSWER_RATE": "La tasa de respuesta de todas las llamadas salientes",
+            "ABANDON_RATE": "El índice de abandono de toda la cola de llamadas",
+            "UNMANAGED": "El número total de llamadas de cola no administrado, considerando todas las colas creadas. Incluye las llamadas abandonadas de timeout, y exitwithkey leavewhenempty joinempty,",
+            "TOTAL": "El número total de llamadas salientes",
+            "TOT_DURATION": "La duración total de todas las llamadas salientes",
+            "AVG_DURATION": "El promedio de duración de todas las llamadas salientes completados",
+            "DROPPED": "El número total de llamadas de cola cayó, considerando todas las colas creadas.",
+            "DROP_RATE": "La tasa de caída de todas las llamadas de la cola"
+        },
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "WELCOME_TO_MOTION": "Bienvenido a Motion",
+        "WELCOME_MESSAGE": "Utilice la barra lateral izquierda para navegar a través de las secciones.",
+        "ADD": "Agregar",
+        "CONTACTMANAGER": "Contact Manager",
+        "DASHBOARD": "Salpicadero",
+        "EDIT_CONTACT": "Editar contacto",
+        "EMAIL": "Correo electrónico",
+        "FULLNAME": "Fullname",
+        "LIST": "Lista",
+        "NEW_CONTACT": "Nuevo contacto",
+        "PHONE": "Teléfono",
+        "SAVE": "Guardar",
+        "INBOUND_WAITING_CALLS": "Esperando llamadas entrantes",
+        "CONTACTS": "Contactos",
+        "ADD_CONTACT": "Agregar contacto",
+        "RELOAD": "Recargar",
+        "QUEUES": "Colas",
+        "WAITING_TEXT": "Cola de espera de llamadas",
+        "TALKING_TEXT": "Las llamadas de la cola activa",
+        "INBOUND_ANSWERED_TEXT": "Cola de llamadas contestadas",
+        "ABANDONED_TEXT": "Las llamadas abandonadas en cola",
+        "TOTAL_OFFERED_TEXT": "Llamadas en cola total",
+        "AVG_HOLD_TIME_TEXT": "Tiempo promedio en espera: Llamadas de cola",
+        "AVG_TALK_TIME_TEXT": "Tiempo de conversación de las llamadas de la cola",
+        "INBOUND_ANSWER_RATE_TEXT": "La tasa de respuesta de llamadas de cola",
+        "ABANDON_RATE_TEXT": "Índice de abandono de llamadas de cola",
+        "UNMANAGED_TEXT": "Llamadas de cola no administrado",
+        "TOTAL_TEXT": "Total de llamadas salientes",
+        "OUTBOUND_ANSWERED_TEXT": "Contestaron las llamadas salientes",
+        "TOT_DURATION_TEXT": "Duración total de llamadas salientes",
+        "AVG_DURATION_TEXT": "Duración promedio de llamadas salientes",
+        "OUTBOUND_ANSWER_RATE_TEXT": "La tasa de respuesta de llamadas salientes",
+        "RECORDINGS": "Grabaciones",
+        "DISPOSE": "Deseche",
+        "DIALER_CALL": "Llamada por marcador",
+        "ELAPSED_TIME": "Tiempo transcurrido",
+        "EDIT": "Editar",
+        "MERGE": "Combinar",
+        "DUPLICATE": "Duplicar",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "Campaña",
+        "NONE": "Ninguno",
+        "NAME": "Nombre",
+        "PERSONAL_INFO": "Información personal",
+        "FIRSTNAME": "Firstname",
+        "LASTNAME": "Lastname",
+        "MOBILE": "Mobile",
+        "FAX": "Fax",
+        "DATE_OF_BIRTH": "Fecha de nacimiento",
+        "COMPANY": "Compañía",
+        "TAG": "Tag",
+        "COUNTRY": "País",
+        "CITY": "Ciudad",
+        "STREET": "Street",
+        "POSTALCODE": "Código postal",
+        "CUSTOM_FIELDS": "Campos personalizados",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "El Nombre es obligatorio",
+            "PHONE_REQUIRED": "El teléfono es necesario"
+        },
+        "MYCONTACTS": "Mis contactos",
+        "ANSWER_MACHINE": "Contestador",
+        "INTERESTED": "Interesados",
+        "NOT_INTERESTED": "No interesa",
+        "SOLD": "Se vende",
+        "SPECIAL": "Especial",
+        "BLACKLIST": "Lista negra",
+        "RESCHEDULE": "Reprogramar",
+        "DROP_RATE": "Tasa de caída",
+        "DROPPED": "Descendido",
+        "DETAIL": "Detalle",
+        "MOTION_BULL": "Motion Bull",
+        "LIMITED": "Limited",
+        "LIMITED_TEXT": "Las llamadas que se realizan campañas/Limited",
+        "TODAY_MOTION_BULL_STATS": "Hoy el Movimiento Bull Stats",
+        "ORIGINATED": "Originado",
+        "ORIGINATED_TEXT": "Llamadas originadas de cola",
+        "MOTIONDIALER": "Motion Bull",
+        "TODAY_IVR_CAMPAIGNS_STATS": "Hoy campañas Ivr Stats"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/fa.json b/public/app/main/apps/dashboards/i18n/fa.json
new file mode 100644 (file)
index 0000000..2d795c4
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Dashboards",
+        "GENERAL": "سردار",
+        "VOICE": "صدا",
+        "TODAY_INBOUND_STATS": "امروز داخل محدوده Stats",
+        "TODAY_OUTBOUND_STATS": "امروز برای Stats",
+        "WAITING": "در انتظار",
+        "TALKING": "حرف زدن",
+        "INBOUND_ANSWERED": "پاسخ داد",
+        "OUTBOUND_ANSWERED": "پاسخ داد",
+        "ABANDONED": "رها",
+        "TOTAL_OFFERED": "عرضه کل",
+        "AVG_HOLD_TIME": "بطور متوسط زمان را نگه دارید",
+        "AVG_TALK_TIME": "بطور متوسط زمان صحبت کنیم",
+        "INBOUND_ANSWER_RATE": "نرخ پاسخ",
+        "OUTBOUND_ANSWER_RATE": "نرخ پاسخ",
+        "ABANDON_RATE": "نرخ ترك",
+        "UNMANAGED": "Unmanaged",
+        "TOTAL": "کل",
+        "TOT_DURATION": "مدت زمان کل",
+        "AVG_DURATION": "مدت زمان متوسط",
+        "HELP": {
+            "WAITING": "تعداد کل صف انتظار مي نامد، با توجه به همة ایجاد صفهای طولانی",
+            "TALKING": "تعداد کل تماس های فعال در صف، با توجه به همة ایجاد صفهای طولانی",
+            "INBOUND_ANSWERED": "تعداد کل تماس های انجام شده و با توجه به صف از صفهای طولانی همه",
+            "OUTBOUND_ANSWERED": "تعداد کل کارکنان ديگر را تكميل مي نامد",
+            "ABANDONED": "تعداد کل صف را رها كردند و با توجه به كليه تماس ها صفهای طولانی ایجاد شده است. توجه داشته باشید که تماس ها برای پایان زمان برداشت و joinempty نيستند، اين مقدار به حساب",
+            "TOTAL_OFFERED": "تعداد کل صف QC تكميل مي نامد (QC) را رها كرد. توجه داشته باشيد كه اين تلفن ها به پايان رسيده است كه در IVR، بدون وارد شدن در صف هستند، این مقدار به حساب نيست.",
+            "AVG_HOLD_TIME": "میانگین زمان صف نگه دارید، که نشان دهنده حد متوسط زمان صرف تلفن در انتظار پاسخ، با توجه به عامل همه صفها",
+            "AVG_TALK_TIME": "میانگین زمان صحبت کنم، توی صف که نمايانگر ميانگين زمان صرف مكالمه با تلفن، با توجه به همة اين صفها",
+            "INBOUND_ANSWER_RATE": "پاسخ همه اين ميزان صف تلفن",
+            "OUTBOUND_ANSWER_RATE": "پاسخ همه کارکنان ديگر ميزان تماس ها",
+            "ABANDON_RATE": "اين ميزان ترك همه توی صف تلفن",
+            "UNMANAGED": "تعداد کل تماس های Unmanaged صف، با توجه به همة صفهای طولانی ایجاد شده است. اين تماس ها را شامل می شود که مدت زمان مجاز، رها، و joinempty leavewhenempty exitwithkey",
+            "TOTAL": "تعداد کل تماس های کارکنان ديگر",
+            "TOT_DURATION": "کل مدت زمان تمام تماس های کارکنان ديگر",
+            "AVG_DURATION": "ميانگين طول مدت همه کارکنان ديگر را تكميل مي نامد",
+            "DROPPED": "تعداد کل پائين صف مي نامد، با توجه به همة صفهای طولانی ایجاد شده است.",
+            "DROP_RATE": "افت نرخ را همه توی صف تلفن"
+        },
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "WELCOME_TO_MOTION": "به حركت خوش آمدید",
+        "WELCOME_MESSAGE": "برای استفاده از فلش در سمت چپ 9 تقسیم کنید.",
+        "ADD": "افزودن",
+        "CONTACTMANAGER": "تماس با مدیر",
+        "DASHBOARD": "/ داشبورد",
+        "EDIT_CONTACT": "ویرایش تماس",
+        "EMAIL": "آدرس ایمیل",
+        "FULLNAME": "Fullname",
+        "LIST": "فهرست",
+        "NEW_CONTACT": "تماس جدید",
+        "PHONE": "تلفن همراه",
+        "SAVE": "ذخیره",
+        "INBOUND_WAITING_CALLS": "مسافرانی که منتظر تلفن",
+        "CONTACTS": "لنز",
+        "ADD_CONTACT": "افزودن تماس",
+        "RELOAD": "امارات - آث میلان",
+        "QUEUES": "صفهای طولانی",
+        "WAITING_TEXT": "صف انتظار تماس",
+        "TALKING_TEXT": "توی صف تلفن فعال",
+        "INBOUND_ANSWERED_TEXT": "پاسخ داد: صف تلفن",
+        "ABANDONED_TEXT": "توی صف تلفن رها",
+        "TOTAL_OFFERED_TEXT": "کل صف تلفن",
+        "AVG_HOLD_TIME_TEXT": "میانگین زمان نگه می نامد صف",
+        "AVG_TALK_TIME_TEXT": "صف وقت صحبت تلفنی",
+        "INBOUND_ANSWER_RATE_TEXT": "میزان تماس های پاسخ صف",
+        "ABANDON_RATE_TEXT": "صف تلفن نرخ ترك",
+        "UNMANAGED_TEXT": "Unmanaged صف تلفن",
+        "TOTAL_TEXT": "کل تماس های کارکنان ديگر",
+        "OUTBOUND_ANSWERED_TEXT": "پاسخ برای تلفن",
+        "TOT_DURATION_TEXT": "برای کل مدت زمان تماس",
+        "AVG_DURATION_TEXT": "مدت زمان متوسط می نامد هستند",
+        "OUTBOUND_ANSWER_RATE_TEXT": "میزان تماس های کارکنان ديگر پاسخ",
+        "RECORDINGS": "عنوانی",
+        "DISPOSE": "بخشيدن",
+        "DIALER_CALL": "Dialer تلفن",
+        "ELAPSED_TIME": "سپری شدن زمان",
+        "EDIT": "ویرایش",
+        "MERGE": "ادغام",
+        "DUPLICATE": "دوبله",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "مبارزه",
+        "NONE": "هیچ",
+        "NAME": "نام",
+        "PERSONAL_INFO": "اطلاعات شخصی",
+        "FIRSTNAME": "Firstname",
+        "LASTNAME": "Lastname",
+        "MOBILE": "تلفن همراه",
+        "FAX": "فاكس",
+        "DATE_OF_BIRTH": "تاریخ تولد",
+        "COMPANY": "شرکت",
+        "TAG": "برچسب",
+        "COUNTRY": "كشور",
+        "CITY": "شهر",
+        "STREET": "خيابان",
+        "POSTALCODE": "کد پستی",
+        "CUSTOM_FIELDS": "رشته های سفارشی",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "اسم اول لازم است.",
+            "PHONE_REQUIRED": "تلفن لازم است."
+        },
+        "MYCONTACTS": "تماس با من",
+        "ANSWER_MACHINE": "پاسخ دستگاه",
+        "INTERESTED": "علاقه مند به",
+        "NOT_INTERESTED": "علاقه مندان نيست.",
+        "SOLD": "فروش",
+        "SPECIAL": "ويژه",
+        "BLACKLIST": "Blacklist",
+        "RESCHEDULE": "Reschedule",
+        "DROP_RATE": "میزان افت",
+        "DROPPED": "پائين",
+        "DETAIL": "جزئیات",
+        "MOTION_BULL": "حركت گاو",
+        "LIMITED": "محدود",
+        "LIMITED_TEXT": "مبارزات محدود مي نامد/1840",
+        "TODAY_MOTION_BULL_STATS": "امروز حركت گاو Stats",
+        "ORIGINATED": "1840",
+        "ORIGINATED_TEXT": "صف تلفن 1840",
+        "MOTIONDIALER": "حركت گاو",
+        "TODAY_IVR_CAMPAIGNS_STATS": "امروز مبارزات Ivr Stats"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/fi.json b/public/app/main/apps/dashboards/i18n/fi.json
new file mode 100644 (file)
index 0000000..34cc000
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Portaalit",
+        "GENERAL": "Yleistä",
+        "VOICE": "Ääni",
+        "TODAY_INBOUND_STATS": "Tänään lähtevät Stats",
+        "TODAY_OUTBOUND_STATS": "Tänään lähtevä Stats",
+        "WAITING": "Odottelua",
+        "TALKING": "Puhumme",
+        "INBOUND_ANSWERED": "Vastattu",
+        "OUTBOUND_ANSWERED": "Vastattu",
+        "ABANDONED": "Hylätty",
+        "TOTAL_OFFERED": "Tarjotaan yhteensä",
+        "AVG_HOLD_TIME": "Keskimääräisen käsittelyajan",
+        "AVG_TALK_TIME": "Keskimääräinen puheaika",
+        "INBOUND_ANSWER_RATE": "Vastaus hintaan",
+        "OUTBOUND_ANSWER_RATE": "Vastaus hintaan",
+        "ABANDON_RATE": "Tämäntyyppiset hintaan",
+        "UNMANAGED": "Hallittu",
+        "TOTAL": "Yhteensä",
+        "TOT_DURATION": "Kokonaiskesto",
+        "AVG_DURATION": "Keskimääräinen kesto sekunteina",
+        "HELP": {
+            "WAITING": "Kokonaismäärä jonossa odottamassa puhelua, kun otetaan huomioon kaikki luodut jonot",
+            "TALKING": "Kokonaismäärä jonoon puheluita, kun otetaan huomioon kaikki luodut jonot",
+            "INBOUND_ANSWERED": "Kokonaismäärä jonon loppuun puheluita, kun otetaan huomioon kaikki jonot",
+            "OUTBOUND_ANSWERED": "Kokonaismäärä tehty lähtevien puheluiden",
+            "ABANDONED": "Kokonaismäärä jonon hylättynä puheluita, kun otetaan huomioon kaikki luodut jonoja. Huomaa, että puhelujen hinnat, jotka ovat hylättyjä, aikakatkaisun ja joinempty ei lasketa arvo",
+            "TOTAL_OFFERED": "Kokonaismäärä puhelut jonoon (Hylätty). Huomaa, että puhelut, jotka päättyivät IVR antamatta jonoon, ei lasketa arvo",
+            "AVG_HOLD_TIME": "Keskimääräinen jono käsittelyajan, joka edustaa keskimäärin puhelun odotella edustajan vastauksen, kun otetaan huomioon kaikki jonot",
+            "AVG_TALK_TIME": "Keskimääräinen jono puheaika, joka edustaa keskimääräisen ajan, joka vietettiin keskustelun, kun otetaan huomioon kaikki jonot",
+            "INBOUND_ANSWER_RATE": "Vastaus kaikkien puhelujen jonosta",
+            "OUTBOUND_ANSWER_RATE": "Vastaus kaikkien lähtevien puheluiden",
+            "ABANDON_RATE": "Hylkää kaikkien puhelujen jonosta",
+            "UNMANAGED": "Kokonaismäärä jonon Unmanaged puheluita, kun otetaan huomioon kaikki luodut jonoja. Se sisältää puhelujen hinnat, jotka ovat hylättyjä, timeout joinempty, leavewhenempty ja exitwithkey",
+            "TOTAL": "Kokonaismäärä lähtevien puheluiden",
+            "TOT_DURATION": "Kokonaiskesto on kaikkien lähtevien puheluiden",
+            "AVG_DURATION": "Keskimääräinen kestoaika kaikki valmiit lähtevien puheluiden",
+            "DROPPED": "Kokonaismäärä laski puhelut jonoon, kun otetaan huomioon kaikki luodut jonoja.",
+            "DROP_RATE": "Laskunopeuden kaikki puhelut jonoon"
+        },
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "WELCOME_TO_MOTION": "Tervetuloa liike",
+        "WELCOME_MESSAGE": "Käytä nuolia Vasen sivupalkki voit selata osioissa.",
+        "ADD": "Lisää",
+        "CONTACTMANAGER": "Contact Manager",
+        "DASHBOARD": "Kojelauta",
+        "EDIT_CONTACT": "Muokkaa kontaktia",
+        "EMAIL": "Sähköposti",
+        "FULLNAME": "Fullname",
+        "LIST": "Luettelo",
+        "NEW_CONTACT": "Purista johtoon uusi kosketin",
+        "PHONE": "Puhelin",
+        "SAVE": "Tallenna",
+        "INBOUND_WAITING_CALLS": "Lähtevät puhelut odottamassa",
+        "CONTACTS": "Yhteystiedot",
+        "ADD_CONTACT": "Kontaktin lisääminen",
+        "RELOAD": "Lataa",
+        "QUEUES": "Jonot",
+        "WAITING_TEXT": "Odottavien jonoon puhelut",
+        "TALKING_TEXT": "Aktiivinen jono puhelut",
+        "INBOUND_ANSWERED_TEXT": "Vastattu jono puhelut",
+        "ABANDONED_TEXT": "Hylätyt puhelut jonoon",
+        "TOTAL_OFFERED_TEXT": "Total jono puhelut",
+        "AVG_HOLD_TIME_TEXT": "Jono vaatii Avg pidätysajan",
+        "AVG_TALK_TIME_TEXT": "Jono puheluiden puheaika",
+        "INBOUND_ANSWER_RATE_TEXT": "Jono pyytää vastausta hintaan",
+        "ABANDON_RATE_TEXT": "Jono kehottaa luopumaan hintaan",
+        "UNMANAGED_TEXT": "Hallittu jono puhelut",
+        "TOTAL_TEXT": "Total lähtevien puheluiden",
+        "OUTBOUND_ANSWERED_TEXT": "Lähtevä vastannut puhelut",
+        "TOT_DURATION_TEXT": "Lähtevien puheluiden kokonaiskesto",
+        "AVG_DURATION_TEXT": "Lähtevien puheluiden keskimääräinen kesto sekunteina",
+        "OUTBOUND_ANSWER_RATE_TEXT": "Lähtevien puheluiden vastaus hintaan",
+        "RECORDINGS": "Tallenteet",
+        "DISPOSE": "Hävitä",
+        "DIALER_CALL": "Valitsimen puheluun",
+        "ELAPSED_TIME": "Kulunut aika.",
+        "EDIT": "Muokkaa",
+        "MERGE": "Yhdistäminen",
+        "DUPLICATE": "Kaksoiskappale",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "Kampanja",
+        "NONE": "Mikään",
+        "NAME": "Nimi",
+        "PERSONAL_INFO": "Henkilökohtaiset tiedot",
+        "FIRSTNAME": "Etunimi",
+        "LASTNAME": "Sukunimi",
+        "MOBILE": "Mobile",
+        "FAX": "Faksi",
+        "DATE_OF_BIRTH": "Syntymäaika",
+        "COMPANY": "Yritys",
+        "TAG": "Tag",
+        "COUNTRY": "Maa",
+        "CITY": "Kaupunki",
+        "STREET": "Katu",
+        "POSTALCODE": "Postinumero",
+        "CUSTOM_FIELDS": "Mukautetut kentät",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "Etunimi on pakollinen",
+            "PHONE_REQUIRED": "Puhelin ei tarvita"
+        },
+        "MYCONTACTS": "Yhteyshenkilöt",
+        "ANSWER_MACHINE": "Vastaaja",
+        "INTERESTED": "Asianomaiset",
+        "NOT_INTERESTED": "Ei kiinnosta",
+        "SOLD": "Myydään",
+        "SPECIAL": "Erityistä",
+        "BLACKLIST": "Musta lista",
+        "RESCHEDULE": "Vaiheen uudelleensuunnittelu",
+        "DROP_RATE": "Laskunopeus",
+        "DROPPED": "Pudonnut",
+        "DETAIL": "Yksityiskohta",
+        "MOTION_BULL": "Motion Bull",
+        "LIMITED": "Rajoitettu",
+        "LIMITED_TEXT": "Kampanjat soitetut puhelut/rajoitettu",
+        "TODAY_MOTION_BULL_STATS": "Tänään Motion Bull Stats",
+        "ORIGINATED": "Alkuperä",
+        "ORIGINATED_TEXT": "Jono soitetut puhelut",
+        "MOTIONDIALER": "Motion Bull",
+        "TODAY_IVR_CAMPAIGNS_STATS": "Tänään kampanjoita Ivr Stats"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/fr.json b/public/app/main/apps/dashboards/i18n/fr.json
new file mode 100644 (file)
index 0000000..31d92f8
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Tableaux de bord",
+        "GENERAL": "Général",
+        "VOICE": "Voix",
+        "TODAY_INBOUND_STATS": "Aujourd'hui les stats",
+        "TODAY_OUTBOUND_STATS": "Aujourd'Outbound Stats",
+        "WAITING": "L'attente",
+        "TALKING": "Parler",
+        "INBOUND_ANSWERED": "Répondre",
+        "OUTBOUND_ANSWERED": "Répondre",
+        "ABANDONED": "Abandonné",
+        "TOTAL_OFFERED": "Offert Total",
+        "AVG_HOLD_TIME": "Durée d'attente moyenne",
+        "AVG_TALK_TIME": "Temps moyen de communication",
+        "INBOUND_ANSWER_RATE": "Taux de réponse",
+        "OUTBOUND_ANSWER_RATE": "Taux de réponse",
+        "ABANDON_RATE": "Taux d'abandon",
+        "UNMANAGED": "Unmanaged",
+        "TOTAL": "Total",
+        "TOT_DURATION": "Durée totale",
+        "AVG_DURATION": "Durée moyenne",
+        "HELP": {
+            "WAITING": "Le nombre total d'appels dans la file d'attente, compte tenu de toutes les files d'attente créées",
+            "TALKING": "Le nombre total d'appels d'attente active, compte tenu de toutes les files d'attente créées",
+            "INBOUND_ANSWERED": "Le nombre total d'appels d'attente, compte tenu de toutes les files d'attente",
+            "OUTBOUND_ANSWERED": "Le nombre total d'appels sortants",
+            "ABANDONED": "Le nombre total d'abandonné les appels en file d'attente, compte tenu de toutes les files d'attente créées. Notez que les appels qui ont été abandonnés pour timeout et joinempty ne sont pas comptés dans cette valeur",
+            "TOTAL_OFFERED": "Le nombre total d'appels abandonnés (fin de la file d'attente). Notez que les appels qui ont terminé dans l'IVR, sans entrer dans la file d'attente, ne sont pas comptés dans cette valeur",
+            "AVG_HOLD_TIME": "La durée d'attente moyenne de la file d'attente, ce qui représente le temps moyen de l'appel passé à attendre une réponse de l'agent, compte tenu de toutes les files d'attente",
+            "AVG_TALK_TIME": "Le temps d'attente moyen, qui représente le temps moyen de l'appel a passé en conversation, compte tenu de toutes les files d'attente",
+            "INBOUND_ANSWER_RATE": "Le taux de réponse de tous les appels de la file d'attente",
+            "OUTBOUND_ANSWER_RATE": "Le taux de réponse de tous les appels sortants",
+            "ABANDON_RATE": "Le taux d'abandon de tous les appels de la file d'attente",
+            "UNMANAGED": "Le nombre total d'appels d'attente non gérés, compte tenu de toutes les files d'attente créées. Il comprend les appels qui ont été abandonnés pour joinempty leavewhenempty, timeout, et exitwithkey",
+            "TOTAL": "Le nombre total d'appels sortants",
+            "TOT_DURATION": "La durée totale de tous les appels sortants",
+            "AVG_DURATION": "La durée moyenne de tous les appels sortants",
+            "DROPPED": "Le nombre total d'abandonné les appels en file d'attente, compte tenu de toutes les files d'attente créées.",
+            "DROP_RATE": "Le taux d'abandon de tous les appels de la file d'attente"
+        },
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "WELCOME_TO_MOTION": "Bienvenue à Motion",
+        "WELCOME_MESSAGE": "Utilisez le menu de gauche pour naviguer dans les sections.",
+        "ADD": "Ajouter",
+        "CONTACTMANAGER": "Contact Manager",
+        "DASHBOARD": "Planche de bord",
+        "EDIT_CONTACT": "Modifier le contact",
+        "EMAIL": "Email",
+        "FULLNAME": "Fullname",
+        "LIST": "Liste",
+        "NEW_CONTACT": "Nouveau contact",
+        "PHONE": "Téléphone",
+        "SAVE": "Sauvegarder",
+        "INBOUND_WAITING_CALLS": "Les appels entrants en attente",
+        "CONTACTS": "Contacts",
+        "ADD_CONTACT": "Ajouter un contact",
+        "RELOAD": "Recharger",
+        "QUEUES": "Files d'attente",
+        "WAITING_TEXT": "Les appels en file d'attente",
+        "TALKING_TEXT": "Les appels en file d'attente active",
+        "INBOUND_ANSWERED_TEXT": "Les appels en file d'attente de réponse",
+        "ABANDONED_TEXT": "Les appels en file d'abandonné",
+        "TOTAL_OFFERED_TEXT": "Les appels en file d'attente total",
+        "AVG_HOLD_TIME_TEXT": "Les appels en file d'appréciation du temps d'attente,",
+        "AVG_TALK_TIME_TEXT": "Les appels en file d'autonomie en conversation",
+        "INBOUND_ANSWER_RATE_TEXT": "Taux de réponse Les appels en file d'attente",
+        "ABANDON_RATE_TEXT": "Taux d'abandon des appels d'attente",
+        "UNMANAGED_TEXT": "Les appels en file d'attente non géré",
+        "TOTAL_TEXT": "Total des appels sortants",
+        "OUTBOUND_ANSWERED_TEXT": "A répondu aux appels sortants",
+        "TOT_DURATION_TEXT": "Durée totale des appels sortants",
+        "AVG_DURATION_TEXT": "Durée moyenne des appels sortants",
+        "OUTBOUND_ANSWER_RATE_TEXT": "Taux de réponse des appels sortants",
+        "RECORDINGS": "Enregistrements sonores",
+        "DISPOSE": "Disposer",
+        "DIALER_CALL": "Dialer",
+        "ELAPSED_TIME": "Temps écoulé",
+        "EDIT": "Modifier",
+        "MERGE": "Fusionner",
+        "DUPLICATE": "Dupliquer",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "Campagne électorale",
+        "NONE": "Aucun",
+        "NAME": "Nom",
+        "PERSONAL_INFO": "Infos personnelles",
+        "FIRSTNAME": "Prénom",
+        "LASTNAME": "Nom",
+        "MOBILE": "Mobile",
+        "FAX": "Fax",
+        "DATE_OF_BIRTH": "Date de naissance",
+        "COMPANY": "Company",
+        "TAG": "Tag",
+        "COUNTRY": "Pays",
+        "CITY": "Ville",
+        "STREET": "Street",
+        "POSTALCODE": "Code postal",
+        "CUSTOM_FIELDS": "Champs personnalisés",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "Le premier nom est obligatoire",
+            "PHONE_REQUIRED": "Le téléphone est requis"
+        },
+        "MYCONTACTS": "Mes Contacts",
+        "ANSWER_MACHINE": "Répondeur",
+        "INTERESTED": "Intéressé",
+        "NOT_INTERESTED": "Pas intéressé",
+        "SOLD": "Vendu",
+        "SPECIAL": "Special",
+        "BLACKLIST": "Liste noire",
+        "RESCHEDULE": "Replanifier",
+        "DROP_RATE": "La vitesse de descente",
+        "DROPPED": "Abandonné",
+        "DETAIL": "Détail",
+        "MOTION_BULL": "Motion Bull",
+        "LIMITED": "Limited",
+        "LIMITED_TEXT": "Les appels provenant des campagnes/Limited",
+        "TODAY_MOTION_BULL_STATS": "Aujourd'hui Bull Motion Stats",
+        "ORIGINATED": "Est issue",
+        "ORIGINATED_TEXT": "Les appels provenant de la file d'attente",
+        "MOTIONDIALER": "Motion Bull",
+        "TODAY_IVR_CAMPAIGNS_STATS": "Aujourd'hui les campagnes Ivr Stats"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/hi.json b/public/app/main/apps/dashboards/i18n/hi.json
new file mode 100644 (file)
index 0000000..6ca9157
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Dashboards",
+        "GENERAL": "सामान्य",
+        "VOICE": "आवाज",
+        "TODAY_INBOUND_STATS": "आज इनबाउंड आंकड़े",
+        "TODAY_OUTBOUND_STATS": "आज बाह्यवर्ती आंकड़े",
+        "WAITING": "प्रतीक्षा",
+        "TALKING": "की बात",
+        "INBOUND_ANSWERED": "उत्तर",
+        "OUTBOUND_ANSWERED": "उत्तर",
+        "ABANDONED": "बिगडा हुआ",
+        "TOTAL_OFFERED": "कुल की पेशकश",
+        "AVG_HOLD_TIME": "औसतन समय रखें",
+        "AVG_TALK_TIME": "समय-समय पर बातचीत की औसत",
+        "INBOUND_ANSWER_RATE": "उत्तर दर",
+        "OUTBOUND_ANSWER_RATE": "उत्तर दर",
+        "ABANDON_RATE": "तजना दर",
+        "UNMANAGED": "Unmanaged",
+        "TOTAL": "कुल",
+        "TOT_DURATION": "कुल अवधि",
+        "AVG_DURATION": "की औसत अवधि",
+        "HELP": {
+            "WAITING": "कॉल प्रतीक्षारत कतार की कुल संख्या को ध्यान में रखते हुए, सभी सृजित कतार",
+            "TALKING": "की कुल संख्या को ध्यान में रखते हुए, सभी कॉल सक्रिय कतार सृजित कतार",
+            "INBOUND_ANSWERED": "की कुल संख्या को ध्यान में रखते हुए, सभी कॉल पूरा कतार लगी कतार",
+            "OUTBOUND_ANSWERED": "की कुल संख्या का पूरा बाह्यवर्ती कॉल्स",
+            "ABANDONED": "की कुल संख्या को ध्यान में रखते हुए, सभी कॉल परित्यक्त कतार लगी कतार बनाया है। कॉल्स के लिए छोड़ा जाता है कि जो इस मूल्य में गिना नहीं हैं और joinempty समयबाह्य",
+            "TOTAL_OFFERED": "की कुल संख्या (पूर्ण) परित्याग कॉल्स कतार कॉल समाप्त हो गई हैं जो कि बिना IVR में प्रवेश नहीं कर रहे हैं, कतार में गिना इस मूल्य",
+            "AVG_HOLD_TIME": "कतार में औसतन समय रखें, जो औसतन समय की प्रतीक्षा कॉल का उत्तर देने का एजेंट खर्च को ध्यान में रखते हुए, सभी कतार",
+            "AVG_TALK_TIME": "इस बात को दर्शाता है, जो औसतन समय-समय पर औसतन कतार के आह्वान को देखते हुए, वार्तालाप में बिताए सभी कतार",
+            "INBOUND_ANSWER_RATE": "सभी कॉल्स का उत्तर देने की दर की कतार",
+            "OUTBOUND_ANSWER_RATE": "सभी कॉल्स का उत्तर देने की दर पर छुट्टिंयां मनाने",
+            "ABANDON_RATE": "सभी कॉल्स को छोड़ने की दर की कतार",
+            "UNMANAGED": "की कुल संख्या को ध्यान में रखते हुए, सभी कॉल Unmanaged कतार लगी कतार बनाया है। इसमें शामिल हैं जो कॉल्स के लिए समयबाह्य, joinempty, leavewhenempty और exitwithkey",
+            "TOTAL": "कॉल्स छुट्टिंयां मनाने की कुल संख्या",
+            "TOT_DURATION": "सभी कॉल्स छुट्टिंयां मनाने का कुल अवधि",
+            "AVG_DURATION": "की औसत अवधि के सभी कॉल पूरा बाह्यवर्ती",
+            "DROPPED": "की कुल संख्या को ध्यान में रखते हुए, सभी कॉल कतार छोड सृजित कतार है|",
+            "DROP_RATE": "सभी कॉल्स को बीच में ही पढाई छोड देने की दर को कतार"
+        },
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "WELCOME_TO_MOTION": "प्रस्ताव का स्वागत",
+        "WELCOME_MESSAGE": "कांचन का प्रयोग करने के लिए छोड़ वर्गों के जरिए पर नेविगेट करें.",
+        "ADD": "जोड़ें",
+        "CONTACTMANAGER": "संपर्क प्रबंधक",
+        "DASHBOARD": "डैशबोर्ड छिपाएं",
+        "EDIT_CONTACT": "संपर्क संपादित करें",
+        "EMAIL": "ई-मेल",
+        "FULLNAME": "Fullname",
+        "LIST": "की सूची",
+        "NEW_CONTACT": "नया संपर्क",
+        "PHONE": "फ़ोन",
+        "SAVE": "सहेजें",
+        "INBOUND_WAITING_CALLS": "कॉल प्रतीक्षारत इनबाउंड",
+        "CONTACTS": "संपर्क",
+        "ADD_CONTACT": "संपर्क जोड़ें",
+        "RELOAD": "पुन: लोड करें",
+        "QUEUES": "कतार",
+        "WAITING_TEXT": "कॉल प्रतीक्षारत कतार",
+        "TALKING_TEXT": "सक्रिय कतार कॉल्स",
+        "INBOUND_ANSWERED_TEXT": "कॉल का उत्तर कतार",
+        "ABANDONED_TEXT": "परित्याग कतार कॉल्स",
+        "TOTAL_OFFERED_TEXT": "कुल कॉल्स कतार",
+        "AVG_HOLD_TIME_TEXT": "कॉल होल्ड वाले समय कतार",
+        "AVG_TALK_TIME_TEXT": "उस समय बातचीत कॉल्स कतार",
+        "INBOUND_ANSWER_RATE_TEXT": "कॉल का उत्तर दर कतार",
+        "ABANDON_RATE_TEXT": "कॉल छोड़ने की कतार",
+        "UNMANAGED_TEXT": "लोकतंत्रमें Unmanaged कॉल्स",
+        "TOTAL_TEXT": "कुल बाह्यवर्ती कॉल्स",
+        "OUTBOUND_ANSWERED_TEXT": "कॉल्स का उत्तर बाह्यवर्ती",
+        "TOT_DURATION_TEXT": "कुल कॉल्स छुट्टिंयां मनाने की अवधि",
+        "AVG_DURATION_TEXT": "कॉल्स छुट्टिंयां मनाने की औसत अवधि",
+        "OUTBOUND_ANSWER_RATE_TEXT": "कॉल का उत्तर छुट्टिंयां मनाने की दर",
+        "RECORDINGS": "रेकाॅर्डिंग",
+        "DISPOSE": "निपटाना",
+        "DIALER_CALL": "Dialer कॉल",
+        "ELAPSED_TIME": "उस समय बीत जाने के",
+        "EDIT": "संपादित करें",
+        "MERGE": "विलय",
+        "DUPLICATE": "डुप्लिकेट",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "अभियान",
+        "NONE": "कोई नहीं",
+        "NAME": "नाम",
+        "PERSONAL_INFO": "व्यक्तिगत जानकारी",
+        "FIRSTNAME": "Firstname",
+        "LASTNAME": "Lastname",
+        "MOBILE": "मोबाइल",
+        "FAX": "फ़ैक्स",
+        "DATE_OF_BIRTH": "जन्म दिनांक",
+        "COMPANY": "कंपनी",
+        "TAG": "तग",
+        "COUNTRY": "देश",
+        "CITY": "शहर",
+        "STREET": "सड़क पर",
+        "POSTALCODE": "पोस्टल कोड",
+        "CUSTOM_FIELDS": "कस्टम फ़ील्ड्स",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "पहला नाम की आवश्यकता है।",
+            "PHONE_REQUIRED": "फ़ोन की आवश्यकता है।"
+        },
+        "MYCONTACTS": "मेरे संपर्क",
+        "ANSWER_MACHINE": "उत्तर मशीन",
+        "INTERESTED": "इच्छुक",
+        "NOT_INTERESTED": "कोई दिलचस्पी नहीं",
+        "SOLD": "बिक",
+        "SPECIAL": "विशेष",
+        "BLACKLIST": "Blacklist",
+        "RESCHEDULE": "पुनः शेड्यूल करें",
+        "DROP_RATE": "बीच में ही पढाई छोड देने की दर",
+        "DROPPED": "गिरकर",
+        "DETAIL": "विस्तार",
+        "MOTION_BULL": "प्रस्ताव सांड",
+        "LIMITED": "सीमित",
+        "LIMITED_TEXT": "कॉल्स अभियान की शुरुआत यहीं/लिमिटेड",
+        "TODAY_MOTION_BULL_STATS": "आज प्रस्ताव सांड आंकड़े",
+        "ORIGINATED": "उपजीं",
+        "ORIGINATED_TEXT": "कॉल्स का तांता लगा हुआ",
+        "MOTIONDIALER": "प्रस्ताव सांड",
+        "TODAY_IVR_CAMPAIGNS_STATS": "आज Ivr अभियानों आंकड़े"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/it.json b/public/app/main/apps/dashboards/i18n/it.json
new file mode 100644 (file)
index 0000000..f69ffc6
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Dashboard",
+        "RECORDINGS": "Registrazioni",
+        "DISPOSE": "Disponi",
+        "QUEUES": "Code",
+        "GENERAL": "Generale",
+        "VOICE": "Voce",
+        "TODAY_INBOUND_STATS": "Statistiche Inbound Giornaliere",
+        "TODAY_OUTBOUND_STATS": "Statistiche Outbound Giornaliere",
+        "WAITING": "In Attesa",
+        "TALKING": "Attive",
+        "INBOUND_ANSWERED": "Completate",
+        "OUTBOUND_ANSWERED": "Completate",
+        "ABANDONED": "Abbandonate",
+        "TOTAL_OFFERED": "Totali",
+        "AVG_HOLD_TIME": "Tempo medio di attesa",
+        "AVG_TALK_TIME": "Tempo medio di Conversazione",
+        "INBOUND_ANSWER_RATE": "Tasso di risposta",
+        "OUTBOUND_ANSWER_RATE": "Tasso di risposta",
+        "ABANDON_RATE": "Tasso di abbandono",
+        "UNMANAGED": "Non gestite",
+        "TOTAL": "Totali",
+        "TOT_DURATION": "Durata Totale",
+        "AVG_DURATION": "Durata Media",
+        "HELP": {
+            "WAITING": "Il numero totale di chiamate in attesa in coda",
+            "TALKING": "Il numero totale di conversazioni attive in coda",
+            "INBOUND_ANSWERED": "Il numero totale di chiamate in coda completate",
+            "OUTBOUND_ANSWERED": "Il numero totale di chiamate outbound completate",
+            "ABANDONED": "Il numero totale di chiamate in coda abbandonate",
+            "TOTAL_OFFERED": "Il numero totale di chiamate in coda (completate + abbandonate)",
+            "AVG_HOLD_TIME": "Il tempo medio di attesa in coda prima che un agente risponda",
+            "AVG_TALK_TIME": "Il tempo medio di conversazione delle chiamate in coda",
+            "INBOUND_ANSWER_RATE": "Il tasso di risposta di tutte le chiamate in coda",
+            "OUTBOUND_ANSWER_RATE": "Il tasso di risposta di tutte le chiamate outbound",
+            "ABANDON_RATE": "Il tasso di abbandono di tutte le chiamate in coda",
+            "UNMANAGED": "Il numero totale di chiamate in coda non gestite. Include le chiamate abbandonate per timeout, joinempty, leavewhenempty e exitwithkey",
+            "TOTAL": "Il numero totale di chiamate outbound",
+            "TOT_DURATION": "La durata totale di tutte le chiamate outbound",
+            "AVG_DURATION": "La durata media di tutte le chiamate outbound completate",
+            "DROPPED": "Il numero totale di interruzioni di chiamate in coda, considerando tutte le code create.",
+            "DROP_RATE": "La velocità di discesa di tutte le chiamate in coda"
+        },
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "WELCOME_TO_MOTION": "Benvenuto in Motion",
+        "WELCOME_MESSAGE": "Usa la barra laterale a sinistra per navigare attraverso le sezioni.",
+        "ADD": "Aggiungi",
+        "CONTACTMANAGER": "Manager Contatti",
+        "DASHBOARD": "Dashboard",
+        "EDIT_CONTACT": "Modifica contatto",
+        "EMAIL": "Email",
+        "FULLNAME": "Nome completo",
+        "LIST": "Lista",
+        "NEW_CONTACT": "Nuovo contatto",
+        "PHONE": "Telefono",
+        "SAVE": "Salva",
+        "INBOUND_WAITING_CALLS": "Chiamate inbound in attesa",
+        "CONTACTS": "Contatti",
+        "ADD_CONTACT": "Aggiungi Contatto",
+        "RELOAD": "Ricarica",
+        "WAITING_TEXT": "Chiamate in coda in attesa",
+        "TALKING_TEXT": "Chiamate in coda attive",
+        "INBOUND_ANSWERED_TEXT": "Chiamate in coda completate",
+        "ABANDONED_TEXT": "Chiamate in coda abbandonate",
+        "TOTAL_OFFERED_TEXT": "Chiamate in coda totali",
+        "AVG_HOLD_TIME_TEXT": "Tempo di attesa medio",
+        "AVG_TALK_TIME_TEXT": "Tempo di conversazione medio",
+        "INBOUND_ANSWER_RATE_TEXT": "Tasso di risposta chiamate in coda",
+        "ABANDON_RATE_TEXT": "Tasso di abbandono chiamate in coda",
+        "UNMANAGED_TEXT": "Chiamate in coda non gestite",
+        "TOTAL_TEXT": "Chiamate outbound totali",
+        "OUTBOUND_ANSWERED_TEXT": "Chiamate outbound completate",
+        "TOT_DURATION_TEXT": "Durata totale chiamate outbound",
+        "AVG_DURATION_TEXT": "Durata media chiamate outbound",
+        "OUTBOUND_ANSWER_RATE_TEXT": "Tasso di risposta chiamate outbound",
+        "DIALER_CALL": "Chiamate del generatore di chiamata",
+        "ELAPSED_TIME": "Tempo trascorso",
+        "EDIT": "Modifica",
+        "MERGE": "Unisci",
+        "DUPLICATE": "Duplica",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "Campagna",
+        "NONE": "Nessuno",
+        "NAME": "Nome",
+        "PERSONAL_INFO": "Info personali",
+        "FIRSTNAME": "Firstname",
+        "LASTNAME": "Cognome",
+        "MOBILE": "Mobile",
+        "FAX": "Fax",
+        "DATE_OF_BIRTH": "Data di nascita",
+        "COMPANY": "Azienda",
+        "TAG": "Tag",
+        "COUNTRY": "Paese",
+        "CITY": "Città",
+        "STREET": "Street",
+        "POSTALCODE": "Codice postale",
+        "CUSTOM_FIELDS": "Campi personalizzati",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "Il nome è obbligatorio",
+            "PHONE_REQUIRED": "Il telefono è obbligatorio"
+        },
+        "MYCONTACTS": "I miei contatti",
+        "ANSWER_MACHINE": "Macchina di risposta",
+        "INTERESTED": "Interessati",
+        "NOT_INTERESTED": "Non interessato",
+        "SOLD": "Venduti",
+        "SPECIAL": "Offerte",
+        "BLACKLIST": "Blacklist",
+        "RESCHEDULE": "Ripianifica",
+        "DROP_RATE": "La velocità di discesa",
+        "DROPPED": "Scesa",
+        "DETAIL": "Dettaglio",
+        "MOTION_BULL": "Motion Bull",
+        "LIMITED": "Limitato",
+        "LIMITED_TEXT": "Le campagne le chiamate originate/Limited",
+        "TODAY_MOTION_BULL_STATS": "Oggi il movimento Bull Stats",
+        "ORIGINATED": "Originato",
+        "ORIGINATED_TEXT": "Le chiamate in coda originato",
+        "MOTIONDIALER": "Motion Bull",
+        "TODAY_IVR_CAMPAIGNS_STATS": "Oggi le campagne Ivr Stats"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/ja.json b/public/app/main/apps/dashboards/i18n/ja.json
new file mode 100644 (file)
index 0000000..c55e1a9
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "ダッシュボード",
+        "GENERAL": "一般的な",
+        "VOICE": "音声",
+        "TODAY_INBOUND_STATS": "今日のインバウンド Stats",
+        "TODAY_OUTBOUND_STATS": "今日は、アウトバウンドの統計情報",
+        "WAITING": "待機中",
+        "TALKING": "話を",
+        "INBOUND_ANSWERED": "応答",
+        "OUTBOUND_ANSWERED": "応答",
+        "ABANDONED": "放棄された",
+        "TOTAL_OFFERED": "提供された",
+        "AVG_HOLD_TIME": "平均保留時間",
+        "AVG_TALK_TIME": "平均通話時間",
+        "INBOUND_ANSWER_RATE": "回答率",
+        "OUTBOUND_ANSWER_RATE": "回答率",
+        "ABANDON_RATE": "途中放棄率",
+        "UNMANAGED": "管理対象外",
+        "TOTAL": "合計",
+        "TOT_DURATION": "合計時間",
+        "AVG_DURATION": "平均時間",
+        "HELP": {
+            "WAITING": "待機しているキューコールの合計数、作成されたすべてのキューを検討している",
+            "TALKING": "アクティブなキュー内のコールの合計数、作成されたすべてのキューを検討している",
+            "INBOUND_ANSWERED": "完成したキューコールの合計数は、すべてのキューを検討している",
+            "OUTBOUND_ANSWERED": "完了したアウトバウンドコールの合計数",
+            "ABANDONED": "放棄されたキューコールの合計数、作成されたすべてのキューを検討しています。 これはタイムアウトと joinempty に放棄されたコールは、この値でカウントされないことに注意してください",
+            "TOTAL_OFFERED": "合計のキューコール ( 放棄されたが完了しました)の番号を指定します。 キュー内での入力を必要とせずに IVR に終了したコールは、この値はカウントされないことに注意してください",
+            "AVG_HOLD_TIME": "キューの平均の保留時間は、コールがエージェントの応答のすべてのキューを考慮し待機していた時間、平均時間を表します。",
+            "AVG_TALK_TIME": "キューの平均の通話時間、会話で費やした時間、コールの平均時間を表します。は、すべてのキューを検討している",
+            "INBOUND_ANSWER_RATE": "すべてのキューコールの応答率",
+            "OUTBOUND_ANSWER_RATE": "は、すべてのアウトバウンドコールの応答率",
+            "ABANDON_RATE": "は、すべてのキューのコールの途中放棄率",
+            "UNMANAGED": "管理対象外のキューの合計コール数、作成されたすべてのキューを検討しています。 これでタイムアウト、 joinempty leavewhenempty および exitwithkey に放棄された呼が含まれます",
+            "TOTAL": "のアウトバウンドコールの合計数",
+            "TOT_DURATION": "は、すべてのアウトバウンドコールの合計所要時間",
+            "AVG_DURATION": "すべての完了したアウトバウンド呼の平均時間",
+            "DROPPED": "は、ドロップされたキューコールの合計数、作成されたすべてのキューを検討しています。",
+            "DROP_RATE": "すべてのキューコールのドロップ率。"
+        },
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "WELCOME_TO_MOTION": "ようこそ Motion へ",
+        "WELCOME_MESSAGE": "のセクションを移動左サイドバーを使用します。",
+        "ADD": "を追加",
+        "CONTACTMANAGER": "連絡先マネージャ",
+        "DASHBOARD": "ダッシュボード",
+        "EDIT_CONTACT": "連絡先の編集",
+        "EMAIL": "電子メール",
+        "FULLNAME": "Fullname の値",
+        "LIST": "リスト",
+        "NEW_CONTACT": "新しい連絡先",
+        "PHONE": "電話",
+        "SAVE": "保存",
+        "INBOUND_WAITING_CALLS": "インバウンドコールの待機中",
+        "CONTACTS": "連絡先",
+        "ADD_CONTACT": "連絡先を追加します。",
+        "RELOAD": "再ロード",
+        "QUEUES": "キュー",
+        "WAITING_TEXT": "キュー待機中のコール",
+        "TALKING_TEXT": "アクティブキューコール",
+        "INBOUND_ANSWERED_TEXT": "応答されたキューコール",
+        "ABANDONED_TEXT": "破棄されたキューコール",
+        "TOTAL_OFFERED_TEXT": "合計キューコール",
+        "AVG_HOLD_TIME_TEXT": "キューコールの平均保留時間",
+        "AVG_TALK_TIME_TEXT": "キューコール通話時間",
+        "INBOUND_ANSWER_RATE_TEXT": "キューコールに応答率",
+        "ABANDON_RATE_TEXT": "キュー内のコールの途中放棄率",
+        "UNMANAGED_TEXT": "管理対象外のキューコール",
+        "TOTAL_TEXT": "発信コールの総数",
+        "OUTBOUND_ANSWERED_TEXT": "アウトバウンドに応答されたコール",
+        "TOT_DURATION_TEXT": "アウトバウンドコールの合計所要時間",
+        "AVG_DURATION_TEXT": "アウトバウンドコールの平均時間",
+        "OUTBOUND_ANSWER_RATE_TEXT": "アウトバウンドコールに応答率",
+        "RECORDINGS": "録音",
+        "DISPOSE": "廃棄",
+        "DIALER_CALL": "ダイヤラコール",
+        "ELAPSED_TIME": "経過時間",
+        "EDIT": "編集",
+        "MERGE": "マージ",
+        "DUPLICATE": "重複している",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "キャンペーン",
+        "NONE": "なし",
+        "NAME": "名",
+        "PERSONAL_INFO": "「個人情報」",
+        "FIRSTNAME": "Firstname",
+        "LASTNAME": "Lastname",
+        "MOBILE": "モバイル",
+        "FAX": "Fax",
+        "DATE_OF_BIRTH": "の誕生日",
+        "COMPANY": "会社",
+        "TAG": "タグ",
+        "COUNTRY": "国",
+        "CITY": "市",
+        "STREET": "ストリート",
+        "POSTALCODE": "郵便番号",
+        "CUSTOM_FIELDS": "カスタムフィールド",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "最初の名前が必要です",
+            "PHONE_REQUIRED": "の電話番号が必要です"
+        },
+        "MYCONTACTS": "私の連絡先",
+        "ANSWER_MACHINE": "答えマシン",
+        "INTERESTED": "興味を持って",
+        "NOT_INTERESTED": "興味を持っていない",
+        "SOLD": "販売されて",
+        "SPECIAL": "特別な",
+        "BLACKLIST": "ブラックリスト",
+        "RESCHEDULE": "再スケジュール",
+        "DROP_RATE": "ドロップ率。",
+        "DROPPED": "廃棄された",
+        "DETAIL": "詳細",
+        "MOTION_BULL": "モーションブル",
+        "LIMITED": "限定された",
+        "LIMITED_TEXT": "キャンペーンコールの発信 / 限定",
+        "TODAY_MOTION_BULL_STATS": "今日のモーションブル Stats",
+        "ORIGINATED": "発信された",
+        "ORIGINATED_TEXT": "キューコールを発信した",
+        "MOTIONDIALER": "モーションブル",
+        "TODAY_IVR_CAMPAIGNS_STATS": "今日 IVR キャンペーン Stats"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/ko.json b/public/app/main/apps/dashboards/i18n/ko.json
new file mode 100644 (file)
index 0000000..3995ed6
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "대시보드",
+        "GENERAL": "일반",
+        "VOICE": "음성",
+        "TODAY_INBOUND_STATS": "오늘 수신 통계",
+        "TODAY_OUTBOUND_STATS": "현재 아웃바운드 통계",
+        "WAITING": "대기",
+        "TALKING": "통화 중",
+        "INBOUND_ANSWERED": "대답했다.",
+        "OUTBOUND_ANSWERED": "대답했다.",
+        "ABANDONED": "취소된 통화",
+        "TOTAL_OFFERED": "총 제공",
+        "AVG_HOLD_TIME": "평균 보류 시간",
+        "AVG_TALK_TIME": "평균 통화 시간",
+        "INBOUND_ANSWER_RATE": "응답 속도",
+        "OUTBOUND_ANSWER_RATE": "응답 속도",
+        "ABANDON_RATE": "포기 비율",
+        "UNMANAGED": "비관리",
+        "TOTAL": "총",
+        "TOT_DURATION": "총 기간",
+        "AVG_DURATION": "평균 지속 시간",
+        "HELP": {
+            "WAITING": "대기 중인 큐에 총 통화 수를 만든 모든 대기열 고려",
+            "TALKING": "활성 대기열에 총 통화 수를 만든 모든 대기열 고려",
+            "INBOUND_ANSWERED": "완료된 대기열 총 통화 수를 모든 대기열 고려",
+            "OUTBOUND_ANSWERED": "완료된 총 아웃바운드 통화 수입니다.",
+            "ABANDONED": "취소된 대기열 총 통화 수를 만드는 큐는 모두 고려하고 있다. 참고 timeout 및 joinempty 여건이 취소된 통화는 이 값에 계산해야 합니다.",
+            "TOTAL_OFFERED": "총 대기 통화(완료 qc 취소된 QC) 번호. 참고 큐에 입력하지 않고 IVR에서 종료된 전화는 이 값을 계산되지 않습니다.",
+            "AVG_HOLD_TIME": "평균 대기열은 대기열을 모두 고려할 때 상담원이 대기, 통화 평균 시간을 나타내는 시간 잡습니다.",
+            "AVG_TALK_TIME": "평균 대기열 직설적으로 이어나가게 통화의 평균 시간 나타내는 시간, 그리고 모든 대기열 고려",
+            "INBOUND_ANSWER_RATE": "모든 대기열 통화 응답 속도",
+            "OUTBOUND_ANSWER_RATE": "모든 아웃바운드 통화 응답 속도",
+            "ABANDON_RATE": "모든 대기열 통화 포기 비율",
+            "UNMANAGED": "관리되지 않는 대기열 총 통화 수를 만드는 큐는 모두 고려하고 있다. 타임아웃, joinempty, leavewhenempty 및 exitwithkey 여건이 취소된 통화 포함",
+            "TOTAL": "총 아웃바운드 통화 수입니다.",
+            "TOT_DURATION": "모든 총 아웃바운드 통화 지속 시간",
+            "AVG_DURATION": "모든 완료된 발신 통화의 평균 시간",
+            "DROPPED": "손실된 대기열 총 통화 수를 만드는 큐는 모두 고려하고 있다.",
+            "DROP_RATE": "모든 대기열 통화 드롭다운 속도"
+        },
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "WELCOME_TO_MOTION": "동작 시작",
+        "WELCOME_MESSAGE": "왼쪽 사이드바 섹션을 탐색합니다.",
+        "ADD": "추가",
+        "CONTACTMANAGER": "연락처 관리 프로그램",
+        "DASHBOARD": "대시보드",
+        "EDIT_CONTACT": "연락처 편집",
+        "EMAIL": "E-mail",
+        "FULLNAME": "Fullname",
+        "LIST": "목록",
+        "NEW_CONTACT": "새 연락처",
+        "PHONE": "전화",
+        "SAVE": "저장",
+        "INBOUND_WAITING_CALLS": "인바운드 통화 대기",
+        "CONTACTS": "연락처",
+        "ADD_CONTACT": "연락처 추가",
+        "RELOAD": "다시 로드",
+        "QUEUES": "대기열",
+        "WAITING_TEXT": "대기열 대기 통화 수",
+        "TALKING_TEXT": "활성 대기 통화",
+        "INBOUND_ANSWERED_TEXT": "응답된 통화 대기열",
+        "ABANDONED_TEXT": "취소 대기열 통화",
+        "TOTAL_OFFERED_TEXT": "총 대기열 통화",
+        "AVG_HOLD_TIME_TEXT": "통화 대기열을 평균 보류 시간",
+        "AVG_TALK_TIME_TEXT": "대기열 통화 통화 시간",
+        "INBOUND_ANSWER_RATE_TEXT": "대기열에 저장된 통화 응답 속도",
+        "ABANDON_RATE_TEXT": "대기열에 저장된 통화 포기 비율",
+        "UNMANAGED_TEXT": "관리되지 않는 대기열 통화",
+        "TOTAL_TEXT": "총 아웃바운드 통화",
+        "OUTBOUND_ANSWERED_TEXT": "아웃바운드 통화 응답됨",
+        "TOT_DURATION_TEXT": "총 아웃바운드 통화 지속 시간",
+        "AVG_DURATION_TEXT": "아웃바운드 통화에 대한 평균 지속 시간",
+        "OUTBOUND_ANSWER_RATE_TEXT": "아웃바운드 전화 응답 속도",
+        "RECORDINGS": "녹음",
+        "DISPOSE": "Dispose",
+        "DIALER_CALL": "전화 걸기 통화",
+        "ELAPSED_TIME": "경과 시간",
+        "EDIT": "편집",
+        "MERGE": "병합",
+        "DUPLICATE": "중복",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "캠페인",
+        "NONE": "없음",
+        "NAME": "이름",
+        "PERSONAL_INFO": "개인 정보",
+        "FIRSTNAME": "Progressbar 컨트롤 개요",
+        "LASTNAME": "성",
+        "MOBILE": "모바일",
+        "FAX": "팩스",
+        "DATE_OF_BIRTH": "생년월일",
+        "COMPANY": "회사",
+        "TAG": "태그",
+        "COUNTRY": "국가",
+        "CITY": "도시",
+        "STREET": "거리",
+        "POSTALCODE": "우편 번호",
+        "CUSTOM_FIELDS": "사용자 지정 필드",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "첫 번째 이름은 필수입니다",
+            "PHONE_REQUIRED": "전화가 필요"
+        },
+        "MYCONTACTS": "내 연락처",
+        "ANSWER_MACHINE": "자동 응답기",
+        "INTERESTED": "관심",
+        "NOT_INTERESTED": "관심이 없습니다.",
+        "SOLD": "판매",
+        "SPECIAL": "특수",
+        "BLACKLIST": "차단 목록",
+        "RESCHEDULE": "재스케줄",
+        "DROP_RATE": "드롭 비율",
+        "DROPPED": "떨어졌다.",
+        "DETAIL": "세부 정보",
+        "MOTION_BULL": "Motion 표적 화면",
+        "LIMITED": "제한",
+        "LIMITED_TEXT": "캠페인 통화 유래된 / 제한",
+        "TODAY_MOTION_BULL_STATS": "오늘 운동 Bull 통계",
+        "ORIGINATED": "복사된",
+        "ORIGINATED_TEXT": "통화 대기열을 유래된",
+        "MOTIONDIALER": "Motion 표적 화면",
+        "TODAY_IVR_CAMPAIGNS_STATS": "오늘 Ivr 캠페인 통계"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/nl.json b/public/app/main/apps/dashboards/i18n/nl.json
new file mode 100644 (file)
index 0000000..13b4062
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Dashboards",
+        "GENERAL": "Algemeen",
+        "VOICE": "Spraak",
+        "TODAY_INBOUND_STATS": "Vandaag Inbound Stats",
+        "TODAY_OUTBOUND_STATS": "Vandaag Outbound Stats",
+        "WAITING": "Wachten",
+        "TALKING": "Spreken",
+        "INBOUND_ANSWERED": "Beantwoord",
+        "OUTBOUND_ANSWERED": "Beantwoord",
+        "ABANDONED": "Verlaten",
+        "TOTAL_OFFERED": "Totaal beschikbaar",
+        "AVG_HOLD_TIME": "Gemiddelde wachttijd",
+        "AVG_TALK_TIME": "Gemiddelde gesprekstijd",
+        "INBOUND_ANSWER_RATE": "Antwoord tarief",
+        "OUTBOUND_ANSWER_RATE": "Antwoord tarief",
+        "ABANDON_RATE": "Snelheid verlaten",
+        "UNMANAGED": "Onbeheerde",
+        "TOTAL": "Totaal",
+        "TOT_DURATION": "Totale duur",
+        "AVG_DURATION": "Gemiddelde duur",
+        "HELP": {
+            "WAITING": "Het totale aantal Wachtrij oproepen, gezien alle gemaakte wachtrijen",
+            "TALKING": "Het totale aantal actieve wachtrij oproepen, gezien alle gemaakte wachtrijen",
+            "INBOUND_ANSWERED": "Het totale aantal voltooide wachtrij oproepen, gezien alle wachtrijen",
+            "OUTBOUND_ANSWERED": "Het totale aantal voltooide uitgaande gesprekken",
+            "ABANDONED": "Het totale aantal verlaten oproepen wachtrij, gezien alle gemaakte wachtrijen. Merk op dat de oproepen die worden verlaten voor time-out en joinempty worden niet meegeteld bij deze waarde",
+            "TOTAL_OFFERED": "Het totale aantal oproepen wachtrij (voltooide verlaten). Merk op dat de gesprekken die eindigde in de IVR, zonder dat u in de wachtrij, worden niet meegeteld bij deze waarde",
+            "AVG_HOLD_TIME": "De gemiddelde wachtrij wachttijd, zijnde de gemiddelde tijd van het gesprek te wachten voor een agent wordt beantwoord, gezien alle wachtrijen",
+            "AVG_TALK_TIME": "De gemiddelde Wachtrij beltijd, zijnde de gemiddelde tijd van het gesprek heeft doorgebracht in gesprek, gezien alle wachtrijen",
+            "INBOUND_ANSWER_RATE": "Het antwoord van alle wachtrij oproepen",
+            "OUTBOUND_ANSWER_RATE": "Het antwoord van alle uitgaande oproepen",
+            "ABANDON_RATE": "De Snelheid verlaten van alle Oproepen wachtrij",
+            "UNMANAGED": "Het totale aantal onbeheerde wachtrij oproepen, gezien alle gemaakte wachtrijen. Het bevat de oproepen die worden verlaten voor time-out, joinempty, leavewhenempty en exitwithkey",
+            "TOTAL": "Het totale aantal uitgaande gesprekken",
+            "TOT_DURATION": "De totale duur van alle uitgaande oproepen",
+            "AVG_DURATION": "De gemiddelde duur van alle uitgaande oproepen",
+            "DROPPED": "Het totale aantal daalde wachtrij oproepen, gezien alle gemaakte wachtrijen.",
+            "DROP_RATE": "Om de terugvalsnelheid van de wachtrij oproepen"
+        },
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "WELCOME_TO_MOTION": "Welkom bij Motion",
+        "WELCOME_MESSAGE": "Gebruik de linker zijbalk om door het menu te navigeren.",
+        "ADD": "Toevoegen",
+        "CONTACTMANAGER": "Contact Manager",
+        "DASHBOARD": "Dashboard",
+        "EDIT_CONTACT": "Contactpersoon bewerken",
+        "EMAIL": "E-mail",
+        "FULLNAME": "Fullname",
+        "LIST": "Lijst",
+        "NEW_CONTACT": "Nieuwe contactpersoon",
+        "PHONE": "Telefoon",
+        "SAVE": "Opslaan",
+        "INBOUND_WAITING_CALLS": "Inkomende gesprekken in wachtstand",
+        "CONTACTS": "Contactpersonen",
+        "ADD_CONTACT": "Contactpersoon toevoegen",
+        "RELOAD": "Reload",
+        "QUEUES": "Wachtrijen",
+        "WAITING_TEXT": "Wachtrij oproepen",
+        "TALKING_TEXT": "Actieve Wachtrij oproepen",
+        "INBOUND_ANSWERED_TEXT": "Beantwoord oproepen wachtrij",
+        "ABANDONED_TEXT": "Wachtrij verlaten oproepen",
+        "TOTAL_OFFERED_TEXT": "Totale gesprekken",
+        "AVG_HOLD_TIME_TEXT": "Wachtrij gesprekken - Gem. tijd in wacht",
+        "AVG_TALK_TIME_TEXT": "Wachtrij Spreektijd gesprekken",
+        "INBOUND_ANSWER_RATE_TEXT": "Wachtrij oproepen beantwoorden tarief",
+        "ABANDON_RATE_TEXT": "Wachtrij oproepen Verlaten tarief",
+        "UNMANAGED_TEXT": "Onbeheerde Wachtrij oproepen",
+        "TOTAL_TEXT": "Totaal uitgaande gesprekken",
+        "OUTBOUND_ANSWERED_TEXT": "Uitgaande beantwoorde gesprekken",
+        "TOT_DURATION_TEXT": "Uitgaande gesprekken Totale duur",
+        "AVG_DURATION_TEXT": "Uitgaande gesprekken Gemiddelde duur",
+        "OUTBOUND_ANSWER_RATE_TEXT": "Uitgaande oproepen beantwoorden tarief",
+        "RECORDINGS": "Opnamen",
+        "DISPOSE": "Afvoeren",
+        "DIALER_CALL": "Oproepen beller",
+        "ELAPSED_TIME": "Verstreken tijd",
+        "EDIT": "Bewerken",
+        "MERGE": "Samenvoegen",
+        "DUPLICATE": "Duplicaat",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "Campagne",
+        "NONE": "Geen",
+        "NAME": "Naam",
+        "PERSONAL_INFO": "Persoonlijke info",
+        "FIRSTNAME": "Voornaam",
+        "LASTNAME": "Achternaam",
+        "MOBILE": "Mobiel",
+        "FAX": "Fax",
+        "DATE_OF_BIRTH": "Geboortedatum",
+        "COMPANY": "Bedrijf",
+        "TAG": "Tag",
+        "COUNTRY": "Land",
+        "CITY": "Stad",
+        "STREET": "Straat",
+        "POSTALCODE": "Postcode",
+        "CUSTOM_FIELDS": "Aangepaste velden",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "De Voornaam is verplicht",
+            "PHONE_REQUIRED": "Het telefoonnummer is verplicht"
+        },
+        "MYCONTACTS": "Mijn contactpersonen",
+        "ANSWER_MACHINE": "Antwoordapparaat",
+        "INTERESTED": "Geïnteresseerd",
+        "NOT_INTERESTED": "Geen interesse",
+        "SOLD": "Verkocht",
+        "SPECIAL": "Speciale",
+        "BLACKLIST": "Zwarte lijst",
+        "RESCHEDULE": "Plannen",
+        "DROP_RATE": "Daalsnelheid",
+        "DROPPED": "Weggevallen",
+        "DETAIL": "Detail",
+        "MOTION_BULL": "Motion Bull",
+        "LIMITED": "Beperkt",
+        "LIMITED_TEXT": "Campagnes afkomstige gesprekken/Limited",
+        "TODAY_MOTION_BULL_STATS": "Vandaag Motion Bull Stats",
+        "ORIGINATED": "Oorsprong",
+        "ORIGINATED_TEXT": "Wachtrij afkomstige gesprekken",
+        "MOTIONDIALER": "Motion Bull",
+        "TODAY_IVR_CAMPAIGNS_STATS": "Vandaag Ivr campagnes Stats"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/no.json b/public/app/main/apps/dashboards/i18n/no.json
new file mode 100644 (file)
index 0000000..090cd23
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Instrumentbord",
+        "GENERAL": "Generelt",
+        "VOICE": "Stemme",
+        "TODAY_INBOUND_STATS": "I dag inngående statistikk.",
+        "TODAY_OUTBOUND_STATS": "I dag utgående statistikk.",
+        "WAITING": "Venter",
+        "TALKING": "Snakker",
+        "INBOUND_ANSWERED": "Svarte",
+        "OUTBOUND_ANSWERED": "Svarte",
+        "ABANDONED": "Forlatt",
+        "TOTAL_OFFERED": "Totalt tilbys",
+        "AVG_HOLD_TIME": "Gjennomsnittlig ventetid",
+        "AVG_TALK_TIME": "Gjennomsnittlig snakketid",
+        "INBOUND_ANSWER_RATE": "Svar frekvens",
+        "OUTBOUND_ANSWER_RATE": "Svar frekvens",
+        "ABANDON_RATE": "Orker Rate",
+        "UNMANAGED": "Administrert",
+        "TOTAL": "Totalt",
+        "TOT_DURATION": "Total varighet",
+        "AVG_DURATION": "Gjennomsnittlig varighet",
+        "HELP": {
+            "WAITING": "Det totale antall ventende kø samtaler, med tanke på alle de opprettede køer",
+            "TALKING": "Det totale antall aktive køen samtaler, med tanke på alle de opprettede køer",
+            "INBOUND_ANSWERED": "Det totale antall fullførte kø samtaler, vurderer alle køer",
+            "OUTBOUND_ANSWERED": "Det totale antall fullførte utgående anrop",
+            "ABANDONED": "Det totale antall forlatt kø samtaler, med tanke på alle de opprettede køer. Merk at anrop som er forlatt for tidsavbrudd og joinempty regnes ikke med i denne verdien",
+            "TOTAL_OFFERED": "Det totale antall kø samtaler (fullført QC forlatt QC). Merk at anrop som er avsluttet i IVR, uten å gå inn i køen, regnes ikke med i denne verdien",
+            "AVG_HOLD_TIME": "Den gjennomsnittlige køen Hold tid, som representerer gjennomsnittlig tid for samtale å vente for en agent svar, vurderer alle køer",
+            "AVG_TALK_TIME": "Den gjennomsnittlige køen taletid, som representerer gjennomsnittlig tid for samtale tilbrakte i samtale, vurderer alle køer",
+            "INBOUND_ANSWER_RATE": "Svaret for alle køen samtaler",
+            "OUTBOUND_ANSWER_RATE": "Svaret på alle utgående anrop",
+            "ABANDON_RATE": "Du orker for alle køen samtaler",
+            "UNMANAGED": "Det totale antall administrerte kø samtaler, med tanke på alle de opprettede køer. Det omfatter samtaler som er forlatt for tidsavbrudd, joinempty, leavewhenempty og exitwithkey",
+            "TOTAL": "Det totale antall utgående anrop",
+            "TOT_DURATION": "Den totale varigheten av alle utgående anrop",
+            "AVG_DURATION": "Gjennomsnittlig varighet av alle gjennomført utgående anrop",
+            "DROPPED": "Det totale antall falt kø samtaler, med tanke på alle de opprettede køer.",
+            "DROP_RATE": "Senkehastigheten for alle køen samtaler"
+        },
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "WELCOME_TO_MOTION": "Velkommen til bevegelse",
+        "WELCOME_MESSAGE": "Bruk venstre sidepanel for å navigere gjennom seksjonene.",
+        "ADD": "Legg til",
+        "CONTACTMANAGER": "Kontakt Manager",
+        "DASHBOARD": "Dashbordet",
+        "EDIT_CONTACT": "Rediger kontakt",
+        "EMAIL": "E",
+        "FULLNAME": "Fullname",
+        "LIST": "Liste",
+        "NEW_CONTACT": "Ny kontakt",
+        "PHONE": "Telefon",
+        "SAVE": "Lagre",
+        "INBOUND_WAITING_CALLS": "Inngående ventende anrop",
+        "CONTACTS": "Kontakter",
+        "ADD_CONTACT": "Legg til kontakt",
+        "RELOAD": "Laste inn",
+        "QUEUES": "Køer",
+        "WAITING_TEXT": "Venter kø samtaler",
+        "TALKING_TEXT": "Aktiv kø samtaler",
+        "INBOUND_ANSWERED_TEXT": "Svarte kø samtaler",
+        "ABANDONED_TEXT": "Forlatt kø samtaler",
+        "TOTAL_OFFERED_TEXT": "Totalt kø samtaler",
+        "AVG_HOLD_TIME_TEXT": "Køen samtaler Avg Hold tid",
+        "AVG_TALK_TIME_TEXT": "Køen samtaler snakketid",
+        "INBOUND_ANSWER_RATE_TEXT": "Køen anrop svar frekvens",
+        "ABANDON_RATE_TEXT": "Køen samtaler tulling-frekvens",
+        "UNMANAGED_TEXT": "Administrert kø samtaler",
+        "TOTAL_TEXT": "Totalt utgående anrop",
+        "OUTBOUND_ANSWERED_TEXT": "Utgående besvarte anrop",
+        "TOT_DURATION_TEXT": "Utgående anrop Total varighet",
+        "AVG_DURATION_TEXT": "Utgående anrop Gjennomsnittlig varighet",
+        "OUTBOUND_ANSWER_RATE_TEXT": "Utgående anrop svar frekvens",
+        "RECORDINGS": "Opptak",
+        "DISPOSE": "Avhend",
+        "DIALER_CALL": "Alarmsentralen ringer",
+        "ELAPSED_TIME": "Forløpt tid",
+        "EDIT": "Rediger",
+        "MERGE": "Flette",
+        "DUPLICATE": "Dupliser",
+        "UNIQUEID": "Unikid",
+        "CAMPAIGN": "Kampanje",
+        "NONE": "Ingen",
+        "NAME": "Navn",
+        "PERSONAL_INFO": "Personlig info.",
+        "FIRSTNAME": "Firstname",
+        "LASTNAME": "Etternavn",
+        "MOBILE": "Mobile",
+        "FAX": "Faks",
+        "DATE_OF_BIRTH": "Fødselsdato",
+        "COMPANY": "Selskap",
+        "TAG": "Tag",
+        "COUNTRY": "Land",
+        "CITY": "City",
+        "STREET": "Street",
+        "POSTALCODE": "Postnummer",
+        "CUSTOM_FIELDS": "Egendefinerte felt",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "Den første navn er nødvendig",
+            "PHONE_REQUIRED": "Telefonen er nødvendig"
+        },
+        "MYCONTACTS": "Mine kontakter",
+        "ANSWER_MACHINE": "Svar på maskinen",
+        "INTERESTED": "Interessert",
+        "NOT_INTERESTED": "Ikke interessert",
+        "SOLD": "Solgt",
+        "SPECIAL": "Spesialtilbud",
+        "BLACKLIST": "Svarteliste",
+        "RESCHEDULE": "Replanlegg",
+        "DROP_RATE": "Senkehastighet",
+        "DROPPED": "Droppet",
+        "DETAIL": "Detaljer",
+        "MOTION_BULL": "Motion Bull",
+        "LIMITED": "Begrenset",
+        "LIMITED_TEXT": "Kampanjer anrop/begrenset",
+        "TODAY_MOTION_BULL_STATS": "I dag Motion Bull-statistikk.",
+        "ORIGINATED": "Opprinnelig",
+        "ORIGINATED_TEXT": "Kø-anrop",
+        "MOTIONDIALER": "Motion Bull",
+        "TODAY_IVR_CAMPAIGNS_STATS": "I dag Ivr kampanjer statistikk."
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/pt-PT.json b/public/app/main/apps/dashboards/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..d6261e2
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Painéis",
+        "GENERAL": "Geral",
+        "VOICE": "Voz",
+        "TODAY_INBOUND_STATS": "Estatísticas de Entrada Hoje",
+        "TODAY_OUTBOUND_STATS": "Estatísticas de Saída Hoje",
+        "WAITING": "Em espera",
+        "TALKING": "Conversando",
+        "INBOUND_ANSWERED": "Atendidas",
+        "OUTBOUND_ANSWERED": "Atendidas",
+        "ABANDONED": "Abandonadas",
+        "TOTAL_OFFERED": "Total da oferta",
+        "AVG_HOLD_TIME": "Tempo de espera médio",
+        "AVG_TALK_TIME": "Tempo Médio de Conversação",
+        "INBOUND_ANSWER_RATE": "Taxa de resposta",
+        "OUTBOUND_ANSWER_RATE": "Taxa de resposta",
+        "ABANDON_RATE": "Taxa de abandono",
+        "UNMANAGED": "Não Gerenciados",
+        "TOTAL": "Total",
+        "TOT_DURATION": "Duração Total",
+        "AVG_DURATION": "Duração média",
+        "HELP": {
+            "WAITING": "O número total de chamadas na fila de espera, considerando todas as filas criadas",
+            "TALKING": "O número total de chamadas na fila de Ativo, considerando todas as filas criadas",
+            "INBOUND_ANSWERED": "O número total de chamadas na fila, considerando todas as filas",
+            "OUTBOUND_ANSWERED": "O número total de Chamadas de Saída Concluídas",
+            "ABANDONED": "O número total de chamadas abandonadas, considerando todas as filas criadas. Observe que as chamadas que são abandonadas para tempo limite e joinempty não são contados em este valor",
+            "TOTAL_OFFERED": "O número total de chamadas na fila (QC QC) concluídas abandonadas. Observe que as chamadas que são terminou no IVR, sem entrar na fila não são contadas neste valor",
+            "AVG_HOLD_TIME": "O tempo de espera médio na fila, que representa o tempo médio de chamada permaneceu aguardando uma resposta de agente, considerando todas as filas",
+            "AVG_TALK_TIME": "Tempo de Conversa Médio de fila, que representa o tempo médio de chamada permaneceu na conversa, considerando todas as filas",
+            "INBOUND_ANSWER_RATE": "A taxa de resposta de todas as chamadas na fila",
+            "OUTBOUND_ANSWER_RATE": "A taxa de resposta de todas as chamadas de saída",
+            "ABANDON_RATE": "A taxa de abandono de todas as chamadas na fila",
+            "UNMANAGED": "O número total de chamadas na fila não gerenciados, considerando todas as filas criadas. Inclui as chamadas que são abandonadas para tempo limite, joinempty, leavewhenempty e exitwithkey",
+            "TOTAL": "O número total de chamadas de saída",
+            "TOT_DURATION": "A duração total de todas as chamadas de saída",
+            "AVG_DURATION": "A duração média de todas as chamadas de saída concluídas",
+            "DROPPED": "O número total de chamadas na fila caiu, considerando todas as filas criadas.",
+            "DROP_RATE": "A taxa de queda de todas as chamadas na fila"
+        },
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "WELCOME_TO_MOTION": "Bem-vindo ao movimento",
+        "WELCOME_MESSAGE": "Use a barra lateral esquerda para navegar através de seções.",
+        "ADD": "Adicionar",
+        "CONTACTMANAGER": "Contact Manager",
+        "DASHBOARD": "Painel de bordo",
+        "EDIT_CONTACT": "Editar contato",
+        "EMAIL": "Email",
+        "FULLNAME": "Fullname",
+        "LIST": "Lista",
+        "NEW_CONTACT": "Novo Contato",
+        "PHONE": "Telefone",
+        "SAVE": "Salvar",
+        "INBOUND_WAITING_CALLS": "Chamadas de Entrada em Espera",
+        "CONTACTS": "Contatos",
+        "ADD_CONTACT": "Adicionar contato",
+        "RELOAD": "Recarregar",
+        "QUEUES": "As filas de espera",
+        "WAITING_TEXT": "Chamadas na fila de espera",
+        "TALKING_TEXT": "Fila de chamadas ativas",
+        "INBOUND_ANSWERED_TEXT": "Atendidas as chamadas em fila",
+        "ABANDONED_TEXT": "Fila de Chamadas Abandonadas",
+        "TOTAL_OFFERED_TEXT": "Total de Chamadas na Fila",
+        "AVG_HOLD_TIME_TEXT": "Chamadas na Fila de Espera Tempo Médio de Espera",
+        "AVG_TALK_TIME_TEXT": "Tempo Conversa Chamadas da fila",
+        "INBOUND_ANSWER_RATE_TEXT": "Taxa de atendimento de chamadas na fila",
+        "ABANDON_RATE_TEXT": "Taxa de Abandono de Chamadas na Fila",
+        "UNMANAGED_TEXT": "Chamadas na Fila não gerenciados",
+        "TOTAL_TEXT": "Total de Chamadas de Saída",
+        "OUTBOUND_ANSWERED_TEXT": "Saída de Chamadas Atendidas",
+        "TOT_DURATION_TEXT": "Chamadas de saída Duração Total",
+        "AVG_DURATION_TEXT": "Chamadas de Duração Média",
+        "OUTBOUND_ANSWER_RATE_TEXT": "Taxa de atendimento de chamadas de saída",
+        "RECORDINGS": "Gravações",
+        "DISPOSE": "Descarte",
+        "DIALER_CALL": "Chamada do discador",
+        "ELAPSED_TIME": "Tempo decorrido",
+        "EDIT": "Editar",
+        "MERGE": "Mesclar",
+        "DUPLICATE": "Duplicado",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "Campanha",
+        "NONE": "Nenhum",
+        "NAME": "Nome",
+        "PERSONAL_INFO": "Informações pessoais",
+        "FIRSTNAME": "Firstname",
+        "LASTNAME": "Lastname",
+        "MOBILE": "Mobile",
+        "FAX": "Fax",
+        "DATE_OF_BIRTH": "Data de Nascimento",
+        "COMPANY": "Empresa",
+        "TAG": "Tag",
+        "COUNTRY": "País",
+        "CITY": "Cidade",
+        "STREET": "Street",
+        "POSTALCODE": "O código postal",
+        "CUSTOM_FIELDS": "Campos personalizados",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "O Nome é obrigatório",
+            "PHONE_REQUIRED": "O telefone é obrigatório"
+        },
+        "MYCONTACTS": "Meus contatos",
+        "ANSWER_MACHINE": "Máquina de resposta",
+        "INTERESTED": "Interessados",
+        "NOT_INTERESTED": "Não interessado",
+        "SOLD": "Vendido",
+        "SPECIAL": "Especiais",
+        "BLACKLIST": "Lista negra",
+        "RESCHEDULE": "Reprogramar",
+        "DROP_RATE": "A taxa de queda",
+        "DROPPED": "Caiu",
+        "DETAIL": "Detalhe",
+        "MOTION_BULL": "Motion Bull",
+        "LIMITED": "Limitado",
+        "LIMITED_TEXT": "As chamadas originadas de campanhas/Limited",
+        "TODAY_MOTION_BULL_STATS": "Hoje Proposta Bull Stats",
+        "ORIGINATED": "Originou",
+        "ORIGINATED_TEXT": "As chamadas originadas de fila",
+        "MOTIONDIALER": "Motion Bull",
+        "TODAY_IVR_CAMPAIGNS_STATS": "Campanhas de IVR hoje Stats"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/ru.json b/public/app/main/apps/dashboards/i18n/ru.json
new file mode 100644 (file)
index 0000000..cf89059
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Инструментальные панели",
+        "GENERAL": "Генеральной",
+        "VOICE": "Голосовой связи",
+        "TODAY_INBOUND_STATS": "Сегодня входящих Stats",
+        "TODAY_OUTBOUND_STATS": "Сегодня статистика исходящих вызовов",
+        "WAITING": "Ожидание",
+        "TALKING": "Разговор",
+        "INBOUND_ANSWERED": "Отвеченные",
+        "OUTBOUND_ANSWERED": "Отвеченные",
+        "ABANDONED": "Отмененные",
+        "TOTAL_OFFERED": "Общий объем предлагаемых",
+        "AVG_HOLD_TIME": "Среднее время удержания",
+        "AVG_TALK_TIME": "Среднее время разговора",
+        "INBOUND_ANSWER_RATE": "Скорость ответа",
+        "OUTBOUND_ANSWER_RATE": "Скорость ответа",
+        "ABANDON_RATE": "Процент потерянных вызовов",
+        "UNMANAGED": "Неуправляемые коммутаторы",
+        "TOTAL": "Итого",
+        "TOT_DURATION": "Общая продолжительность",
+        "AVG_DURATION": "Средняя продолжительность",
+        "HELP": {
+            "WAITING": "Общее количество ожидающих вызовов в очереди, учитывая все созданные очередей",
+            "TALKING": "Общее число активных вызовов в очереди, учитывая все созданные очередей",
+            "INBOUND_ANSWERED": "Общее количество завершенных вызовов в очереди, учитывая все очереди",
+            "OUTBOUND_ANSWERED": "Общее количество завершенных исходящих вызовов",
+            "ABANDONED": "Общее число потерянных вызовов в очереди, учитывая все созданные очередей. Обратите внимание, что вызовы, которые были потеряны для времени ожидания и joinempty не учитываются в это значение",
+            "TOTAL_OFFERED": "Общее число вызовов в очереди (завершено отмененных). Обратите внимание, что вызовы, закончившийся в IVR, без ввода в очереди, не учитываются в это значение",
+            "AVG_HOLD_TIME": "Средняя очереди времени удержания, который представляет собой среднее время вызова в состоянии ожидания оператора ответа, учитывая все очереди",
+            "AVG_TALK_TIME": "Средняя очереди время разговора, который представляет собой среднее время вызова во время разговора, учитывая все очереди",
+            "INBOUND_ANSWER_RATE": "Ответ всех вызовов в очереди",
+            "OUTBOUND_ANSWER_RATE": "Ответ всех исходящих вызовов",
+            "ABANDON_RATE": "Показатель несостоявшихся разговоров всех вызовов в очереди",
+            "UNMANAGED": "Общее число неуправляемых очереди вызовов с учетом всех созданных очередей. Она включает в себя вызовы, которые были потеряны для тайм-аута, joinempty, leavewhenempty и exitwithkey",
+            "TOTAL": "Общее число исходящих вызовов",
+            "TOT_DURATION": "Общая продолжительность всех исходящих вызовов",
+            "AVG_DURATION": "Средняя продолжительность всех завершенных исходящих вызовов",
+            "DROPPED": "Общее количество сброшенных очереди вызовов с учетом всех созданных очередей.",
+            "DROP_RATE": "Перепад скорости всех вызовов в очереди"
+        },
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "WELCOME_TO_MOTION": "Добро пожаловать в движение",
+        "WELCOME_MESSAGE": "С помощью левой боковой панели для навигации по разделам.",
+        "ADD": "Добавить",
+        "CONTACTMANAGER": "Диспетчер контактов",
+        "DASHBOARD": "Приборной Панели",
+        "EDIT_CONTACT": "Редактирование контактной",
+        "EMAIL": "Адрес электронной почты",
+        "FULLNAME": "Fullname",
+        "LIST": "Список",
+        "NEW_CONTACT": "Новый контакт",
+        "PHONE": "Номер телефона",
+        "SAVE": "Сохранить",
+        "INBOUND_WAITING_CALLS": "Входящих Вызовов ожидающих вызовов",
+        "CONTACTS": "Контакты",
+        "ADD_CONTACT": "Добавить контакт",
+        "RELOAD": "Перезагрузить",
+        "QUEUES": "Очереди",
+        "WAITING_TEXT": "Ожидание в очереди вызовов",
+        "TALKING_TEXT": "Активные вызовы в очереди",
+        "INBOUND_ANSWERED_TEXT": "Ответили на очереди вызовов",
+        "ABANDONED_TEXT": "Отмененных вызовов в очереди",
+        "TOTAL_OFFERED_TEXT": "Общий объем вызовов в очереди",
+        "AVG_HOLD_TIME_TEXT": "Очереди вызовов среднее время удержания",
+        "AVG_TALK_TIME_TEXT": "Вызовы в очереди время разговора",
+        "INBOUND_ANSWER_RATE_TEXT": "Вызовы в очереди ответ ставки",
+        "ABANDON_RATE_TEXT": "Очереди вызовов процент потерянных вызовов",
+        "UNMANAGED_TEXT": "Неуправляемые очереди вызовов",
+        "TOTAL_TEXT": "Общее количество исходящих вызовов",
+        "OUTBOUND_ANSWERED_TEXT": "Исходящий отвеченных вызовов",
+        "TOT_DURATION_TEXT": "Исходящие вызовы общей продолжительности",
+        "AVG_DURATION_TEXT": "Исходящие вызовы средняя продолжительность",
+        "OUTBOUND_ANSWER_RATE_TEXT": "Исходящие вызовы ответ ставки",
+        "RECORDINGS": "Записи",
+        "DISPOSE": "Утилизируйте",
+        "DIALER_CALL": "Вызов системы автоматического обзвона",
+        "ELAPSED_TIME": "Истекшее время",
+        "EDIT": "Изменить",
+        "MERGE": "Объединения",
+        "DUPLICATE": "Дублировать",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "Кампании",
+        "NONE": "При этом никто не голосовал",
+        "NAME": "Имя",
+        "PERSONAL_INFO": "Личная информация",
+        "FIRSTNAME": "Firstname",
+        "LASTNAME": "Фамилия",
+        "MOBILE": "Для мобильных ПК",
+        "FAX": "Факс",
+        "DATE_OF_BIRTH": "Дата рождения",
+        "COMPANY": "Компания",
+        "TAG": "Тег",
+        "COUNTRY": "Страны",
+        "CITY": "Город",
+        "STREET": "Улицы",
+        "POSTALCODE": "Почтовый код",
+        "CUSTOM_FIELDS": "Пользовательские поля",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "Первое имя не требуется",
+            "PHONE_REQUIRED": "Номер телефона не требуется"
+        },
+        "MYCONTACTS": "Мои контакты",
+        "ANSWER_MACHINE": "Автоответчик",
+        "INTERESTED": "Заинтересованных",
+        "NOT_INTERESTED": "Не заинтересованы",
+        "SOLD": "Продано",
+        "SPECIAL": "Специальный",
+        "BLACKLIST": "Черный список",
+        "RESCHEDULE": "Перепланировать",
+        "DROP_RATE": "Скорость опускания",
+        "DROPPED": "Снизилась",
+        "DETAIL": "Подробно",
+        "MOTION_BULL": "Булл движения",
+        "LIMITED": "Ограниченный",
+        "LIMITED_TEXT": "Кампаний исходили вызовы/ограниченное",
+        "TODAY_MOTION_BULL_STATS": "Сегодня Движение Булл Stats",
+        "ORIGINATED": "Возникла",
+        "ORIGINATED_TEXT": "Очереди исходили вызовы",
+        "MOTIONDIALER": "Булл движения",
+        "TODAY_IVR_CAMPAIGNS_STATS": "Сегодня кампаний IVR Stats"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/sv.json b/public/app/main/apps/dashboards/i18n/sv.json
new file mode 100644 (file)
index 0000000..1a9d582
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Instrumentpaneler",
+        "GENERAL": "Allmänt",
+        "VOICE": "Röst",
+        "TODAY_INBOUND_STATS": "Idag inkommande statistik",
+        "TODAY_OUTBOUND_STATS": "Idag Utgående statistik",
+        "WAITING": "Väntar",
+        "TALKING": "Prata",
+        "INBOUND_ANSWERED": "Svarade",
+        "OUTBOUND_ANSWERED": "Svarade",
+        "ABANDONED": "Övergivna",
+        "TOTAL_OFFERED": "Totalt erbjuds",
+        "AVG_HOLD_TIME": "Genomsnittlig parkeringstid",
+        "AVG_TALK_TIME": "Genomsnittlig taltid",
+        "INBOUND_ANSWER_RATE": "Svar kurs",
+        "OUTBOUND_ANSWER_RATE": "Svar kurs",
+        "ABANDON_RATE": "Övergivningstakt",
+        "UNMANAGED": "Unmanaged",
+        "TOTAL": "Totalt",
+        "TOT_DURATION": "Total varaktighet",
+        "AVG_DURATION": "Genomsnittlig varaktighet",
+        "HELP": {
+            "WAITING": "Det totala antalet väntande kö samtal, med tanke på alla skapade köer",
+            "TALKING": "Det totala antalet aktiva kön samtal, med tanke på alla skapade köer",
+            "INBOUND_ANSWERED": "Totalt antal slutförda kön samtal, med tanke på alla köer",
+            "OUTBOUND_ANSWERED": "Totalt antal slutförda utgående samtal",
+            "ABANDONED": "Det totala antalet övergivna kön samtal, med tanke på alla skapade köer. Observera att samtal som övergivits för timeout och joinempty räknas inte i detta värde",
+            "TOTAL_OFFERED": "Det totala antalet kön samtal (avslutad QC övergivna QC). Observera att samtal som avslutades i IVR, utan att ange i kön, inte räknas i detta värde",
+            "AVG_HOLD_TIME": "Den genomsnittliga kötiden håller tiden, vilket motsvarar den genomsnittliga tiden för samtal tillbringade väntar för en agent svarar, med tanke på alla köer",
+            "AVG_TALK_TIME": "Den genomsnittliga kötiden taltid, vilket motsvarar den genomsnittliga tiden för samtal tillbringade i konversation, med tanke på alla köer",
+            "INBOUND_ANSWER_RATE": "Svaret av alla kön samtal",
+            "OUTBOUND_ANSWER_RATE": "Svaret på alla utgående samtal",
+            "ABANDON_RATE": "Den övergivna av alla kön samtal",
+            "UNMANAGED": "Det totala antalet automatiska kön samtal, med tanke på alla skapade köer. Det omfattar samtal som överges för timeout, joinempty, leavewhenempty och exitwithkey",
+            "TOTAL": "Det totala antalet utgående samtal",
+            "TOT_DURATION": "Den totala varaktigheten för alla utgående samtal",
+            "AVG_DURATION": "Den genomsnittliga varaktigheten för alla slutförda automatiska utgående samtal",
+            "DROPPED": "Det totala antalet sjunkit kön samtal, med tanke på alla skapade köer.",
+            "DROP_RATE": "Tryckfallet över alla kön samtal"
+        },
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "WELCOME_TO_MOTION": "Välkommen till rörelse",
+        "WELCOME_MESSAGE": "Använd den vänstra sidofältet för att navigera genom avsnitten.",
+        "ADD": "Lägg till",
+        "CONTACTMANAGER": "Contact Manager",
+        "DASHBOARD": "Instrumentbräda",
+        "EDIT_CONTACT": "Redigera kontakt",
+        "EMAIL": "Email",
+        "FULLNAME": "Fullname",
+        "LIST": "Lista",
+        "NEW_CONTACT": "Ny kontakt",
+        "PHONE": "Telefon",
+        "SAVE": "Spara",
+        "INBOUND_WAITING_CALLS": "Inkommande väntande samtal",
+        "CONTACTS": "Kontakter",
+        "ADD_CONTACT": "Lägg till kontakt",
+        "RELOAD": "Ladda om",
+        "QUEUES": "Köer",
+        "WAITING_TEXT": "Kö samtal",
+        "TALKING_TEXT": "Aktiv kö samtal",
+        "INBOUND_ANSWERED_TEXT": "Besvarat kön samtal",
+        "ABANDONED_TEXT": "Övergivna kön samtal",
+        "TOTAL_OFFERED_TEXT": "Total kön samtal",
+        "AVG_HOLD_TIME_TEXT": "Kön samtal Genomsn. väntetid",
+        "AVG_TALK_TIME_TEXT": "Kön samtal samtalstid",
+        "INBOUND_ANSWER_RATE_TEXT": "Kön Samtal Besvara kurs",
+        "ABANDON_RATE_TEXT": "Kön samtal övergivningstakt",
+        "UNMANAGED_TEXT": "Unmanaged kön samtal",
+        "TOTAL_TEXT": "Summa utgående samtal",
+        "OUTBOUND_ANSWERED_TEXT": "Utgående besvarade samtal",
+        "TOT_DURATION_TEXT": "Utgående samtal varaktighet",
+        "AVG_DURATION_TEXT": "Utgående samtal genomsnittlig varaktighet",
+        "OUTBOUND_ANSWER_RATE_TEXT": "Utgående samtal besvara kurs",
+        "RECORDINGS": "Inspelningar",
+        "DISPOSE": "Kassera",
+        "DIALER_CALL": "Uppringarsamtal",
+        "ELAPSED_TIME": "Förfluten tid",
+        "EDIT": "Redigera",
+        "MERGE": "Sammanfoga",
+        "DUPLICATE": "Dubblett",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "Kampanj",
+        "NONE": "Ingen",
+        "NAME": "Namn",
+        "PERSONAL_INFO": "Personlig Info",
+        "FIRSTNAME": "Förnamn",
+        "LASTNAME": "Efternamn",
+        "MOBILE": "Mobil",
+        "FAX": "Fax",
+        "DATE_OF_BIRTH": "Födelsedatum",
+        "COMPANY": "Företag",
+        "TAG": "Tag",
+        "COUNTRY": "Land",
+        "CITY": "City",
+        "STREET": "Gata",
+        "POSTALCODE": "Postnummer",
+        "CUSTOM_FIELDS": "Anpassade fält",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "Förnamn är obligatoriskt",
+            "PHONE_REQUIRED": "Telefonen är obligatoriskt"
+        },
+        "MYCONTACTS": "Mina kontakter",
+        "ANSWER_MACHINE": "Svara maskinen",
+        "INTERESTED": "Intresserade",
+        "NOT_INTERESTED": "Inte intresserad",
+        "SOLD": "Säljs",
+        "SPECIAL": "Särskilda",
+        "BLACKLIST": "Blacklist",
+        "RESCHEDULE": "Omplanera",
+        "DROP_RATE": "Sänkhastighet",
+        "DROPPED": "Tappade",
+        "DETAIL": "Detalj",
+        "MOTION_BULL": "Motion Bull",
+        "LIMITED": "Begränsad",
+        "LIMITED_TEXT": "Kampanjer samtal/begränsade",
+        "TODAY_MOTION_BULL_STATS": "Idag Motion Bull statistik",
+        "ORIGINATED": "Ursprung",
+        "ORIGINATED_TEXT": "Kön samtal",
+        "MOTIONDIALER": "Motion Bull",
+        "TODAY_IVR_CAMPAIGNS_STATS": "Idag Ivr-kampanjer statistik"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/tr.json b/public/app/main/apps/dashboards/i18n/tr.json
new file mode 100644 (file)
index 0000000..45885fd
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "Panolar",
+        "GENERAL": "Genel",
+        "VOICE": "Ses",
+        "TODAY_INBOUND_STATS": "Bugün Gelen istatistikleri",
+        "TODAY_OUTBOUND_STATS": "Bugün Giden İstatistikleri",
+        "WAITING": "Bekleme",
+        "TALKING": "Konuşma",
+        "INBOUND_ANSWERED": "Yanıtlanan",
+        "OUTBOUND_ANSWERED": "Yanıtlanan",
+        "ABANDONED": "Terk edilen",
+        "TOTAL_OFFERED": "Toplam Teklif",
+        "AVG_HOLD_TIME": "Ortalama tutma süresi",
+        "AVG_TALK_TIME": "Ortalama Konuşma Süresi",
+        "INBOUND_ANSWER_RATE": "Yanıt Hızı",
+        "OUTBOUND_ANSWER_RATE": "Yanıt Hızı",
+        "ABANDON_RATE": "Terk Oranı",
+        "UNMANAGED": "Yönetimsiz",
+        "TOTAL": "Toplam",
+        "TOT_DURATION": "Toplam Süre",
+        "AVG_DURATION": "Ortalama Süresi",
+        "HELP": {
+            "WAITING": "Toplam Bekleme Kuyruğu Aramalar göz önüne alındığında, tüm oluşturulan Sıraları",
+            "TALKING": "Toplam Aktif Kuyruk Çağrıları, düşünen tüm oluşturulan Sıraları",
+            "INBOUND_ANSWERED": "Toplam Tamamlanmış Kuyruk Çağrıları, düşünen tüm kuyrukları",
+            "OUTBOUND_ANSWERED": "Toplam Tamamlanmış Giden Çağrılar",
+            "ABANDONED": "Toplam sayısı, Terk Edilen Kuyruk Çağrıları, düşünen tüm oluşturulan kuyrukları. Not Bu aramalar, terk edilmiş, zaman aşımı ve joinempty sayılır, bu değer",
+            "TOTAL_OFFERED": "Toplam Kuyruk Çağrıları (Tamamlandı QC terk edilen QC). Not Bu aramalar, sona erdiği IVR girmeden, kuyruk, sayılan bu değer",
+            "AVG_HOLD_TIME": "Ortalama Kuyruk Tutma Zamanı temsil eden ortalama süresi, çağrı beklerken harcanan bir temsilcinin cevap, düşünen tüm kuyrukları",
+            "AVG_TALK_TIME": "Ortalama Kuyruk Konuşma Süresi, temsil eden ortalama süresi, çağrı geçirdiği konuşma, düşünen tüm kuyrukları",
+            "INBOUND_ANSWER_RATE": "Cevap Hızı, tüm Kuyruk Çağrıları",
+            "OUTBOUND_ANSWER_RATE": "Cevap Hızı, tüm Giden Arama",
+            "ABANDON_RATE": "Terk Edilen Oranı, tüm Kuyruk Çağrıları",
+            "UNMANAGED": "Toplam Yönetilmeyen Kuyruk Çağrıları, düşünen tüm oluşturulan kuyrukları. Içerir. aramalar, terk edilmiş, zaman aşımı, joinempty, leavewhenempty ve exitwithkey",
+            "TOTAL": "Toplam Giden çağrı sayısı",
+            "TOT_DURATION": "Toplam süre, tüm Giden Arama",
+            "AVG_DURATION": "Ortalama süre, Tüm Tamamlanmış Giden Çağrılar",
+            "DROPPED": "Toplam Düşmüş Kuyruk Çağrıları, düşünen tüm oluşturulan kuyrukları.",
+            "DROP_RATE": "Düşme Hızı, tüm Kuyruk Çağrıları"
+        },
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "WELCOME_TO_MOTION": "Hoş Hareket",
+        "WELCOME_MESSAGE": "Sol kenar gezinmek için.",
+        "ADD": "Ekle",
+        "CONTACTMANAGER": "Kişi Yöneticisi",
+        "DASHBOARD": "Torpido",
+        "EDIT_CONTACT": "Kişi Düzenle",
+        "EMAIL": "E-Posta",
+        "FULLNAME": "Fullname",
+        "LIST": "Listesi",
+        "NEW_CONTACT": "Yeni Kişi",
+        "PHONE": "Telefon",
+        "SAVE": "Kaydet",
+        "INBOUND_WAITING_CALLS": "Gelen Aramaları Bekleniyor",
+        "CONTACTS": "Kişiler",
+        "ADD_CONTACT": "Kişi Ekle",
+        "RELOAD": "Yükle",
+        "QUEUES": "Sıraları",
+        "WAITING_TEXT": "Bekleme Kuyruğu Aramalar",
+        "TALKING_TEXT": "Aktif Kuyruk Çağrıları",
+        "INBOUND_ANSWERED_TEXT": "Cevaplandı Kuyruk Çağrıları",
+        "ABANDONED_TEXT": "Sırada Terk Edilen Çağrılar",
+        "TOTAL_OFFERED_TEXT": "Toplam Kuyruk Çağrıları",
+        "AVG_HOLD_TIME_TEXT": "Kuyruk Çağrıları Ort Bekletme Süresi",
+        "AVG_TALK_TIME_TEXT": "Kuyruk Çağrıları Konuşma Süresi",
+        "INBOUND_ANSWER_RATE_TEXT": "Kuyruk Çağrıları Yanıt Hızı",
+        "ABANDON_RATE_TEXT": "Kuyruk Çağrıları Terk Etme Hızı",
+        "UNMANAGED_TEXT": "Yönetilmeyen Kuyruk Çağrıları",
+        "TOTAL_TEXT": "Toplam Giden Arama",
+        "OUTBOUND_ANSWERED_TEXT": "Giden Cevaplanan çağrılar",
+        "TOT_DURATION_TEXT": "Giden Aramalar Toplam Süresi",
+        "AVG_DURATION_TEXT": "Giden Aramalar Ortalama Süresi",
+        "OUTBOUND_ANSWER_RATE_TEXT": "Giden aramalar Cevap Hızı",
+        "RECORDINGS": "Kayıtlar",
+        "DISPOSE": "Atmayın",
+        "DIALER_CALL": "Arama Arama",
+        "ELAPSED_TIME": "Geçen Süre",
+        "EDIT": "Düzenle",
+        "MERGE": "Birleştirme",
+        "DUPLICATE": "Yinelenen",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "Kampanya",
+        "NONE": "Yok",
+        "NAME": "Adı",
+        "PERSONAL_INFO": "Kişisel Bilgiler",
+        "FIRSTNAME": "Firstname",
+        "LASTNAME": "Soyadı",
+        "MOBILE": "Mobil",
+        "FAX": "Faks",
+        "DATE_OF_BIRTH": "Doğum tarihi",
+        "COMPANY": "Şirket",
+        "TAG": "Etiket",
+        "COUNTRY": "Ülke",
+        "CITY": "Şehir",
+        "STREET": "Sokak",
+        "POSTALCODE": "Posta Kodu",
+        "CUSTOM_FIELDS": "Özel Alanlar",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "İlk Adı gerekiyor.",
+            "PHONE_REQUIRED": "Telefon gerekiyor."
+        },
+        "MYCONTACTS": "Kişilerim",
+        "ANSWER_MACHINE": "Cevap Makine",
+        "INTERESTED": "Ilgi",
+        "NOT_INTERESTED": "Ilgi Duymadığı",
+        "SOLD": "Ayrı",
+        "SPECIAL": "Özel",
+        "BLACKLIST": "Kara Liste",
+        "RESCHEDULE": "Yeniden Programla",
+        "DROP_RATE": "İndirme Hızı",
+        "DROPPED": "Düşmüş",
+        "DETAIL": "Ayrıntı",
+        "MOTION_BULL": "Hareket Boğa",
+        "LIMITED": "Sınırlı",
+        "LIMITED_TEXT": "Arama kampanyalar başlatmış/Sınırlı",
+        "TODAY_MOTION_BULL_STATS": "Bugün Hareket Boğa İstatistikleri",
+        "ORIGINATED": "Başlatmış",
+        "ORIGINATED_TEXT": "Kuyruk Çağrıları Aslının",
+        "MOTIONDIALER": "Hareket Boğa",
+        "TODAY_IVR_CAMPAIGNS_STATS": "Bugün Ivr Kampanyaları İstatistikleri"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/zh-CN.json b/public/app/main/apps/dashboards/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..cda86ea
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "仪表板",
+        "GENERAL": "总的",
+        "VOICE": "语音",
+        "TODAY_INBOUND_STATS": "今日入站的统计信息",
+        "TODAY_OUTBOUND_STATS": "今日出站统计信息",
+        "WAITING": "正在等待",
+        "TALKING": "通话",
+        "INBOUND_ANSWERED": "回答",
+        "OUTBOUND_ANSWERED": "回答",
+        "ABANDONED": "已放弃",
+        "TOTAL_OFFERED": "总的提供",
+        "AVG_HOLD_TIME": "平均保持时间",
+        "AVG_TALK_TIME": "平均通话时间",
+        "INBOUND_ANSWER_RATE": "回答率",
+        "OUTBOUND_ANSWER_RATE": "回答率",
+        "ABANDON_RATE": "呼叫放弃率",
+        "UNMANAGED": "非受管",
+        "TOTAL": "总",
+        "TOT_DURATION": "总持续时间",
+        "AVG_DURATION": "平均持续时间",
+        "HELP": {
+            "WAITING": "總等待佇列中通話數 , 考慮所有建立的佇列",
+            "TALKING": "總數量的作用中的佇列通話 , 考慮所有建立的佇列",
+            "INBOUND_ANSWERED": "總已佇列通話 , 考慮所有佇列",
+            "OUTBOUND_ANSWERED": "總已完成的外傳通話數",
+            "ABANDONED": "總已放棄佇列通話 , 考慮所有建立的佇列。 請注意該通話會放棄的逾時及 joinempty 不會計入此值",
+            "TOTAL_OFFERED": "總數量的佇列通話數 ( 已完成放棄 ) 。 請注意該通話會結束在 IVR , 無須輸入在佇列中 , 並不計入此值",
+            "AVG_HOLD_TIME": "平均佇列通話保留時間 , 它代表平均時間的來電等待值機員接聽 , 考慮所有佇列",
+            "AVG_TALK_TIME": "平均佇列通話時間、代表平均時間的通話處於「對話 , 考慮所有佇列",
+            "INBOUND_ANSWER_RATE": "答案速率的所有佇列通話",
+            "OUTBOUND_ANSWER_RATE": "答案率所有的外傳通話數",
+            "ABANDON_RATE": "該放棄率所有的佇列通話",
+            "UNMANAGED": "總不受將來電佇列、考慮所有建立的佇列。 它包含數都已放棄之通話等候時間、 joinempty 、 leavewhenempty 和 exitwithkey",
+            "TOTAL": "的的外傳通話數總計",
+            "TOT_DURATION": "總持續時間內所有的外傳通話數",
+            "AVG_DURATION": "平均持續時間 ( 所有已完成的外傳通話數",
+            "DROPPED": "总人数的下降队列中的呼叫, 要考虑到所有已创建的队列。",
+            "DROP_RATE": "下降速度的所有队列中的呼叫"
+        },
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "WELCOME_TO_MOTION": "欢迎来到运动",
+        "WELCOME_MESSAGE": "使用左侧的侧栏浏览的部分。",
+        "ADD": "添加",
+        "CONTACTMANAGER": "联系人管理器",
+        "DASHBOARD": "仪表板",
+        "EDIT_CONTACT": "编辑联系人",
+        "EMAIL": "电子邮件",
+        "FULLNAME": "全名。",
+        "LIST": "列表",
+        "NEW_CONTACT": "新联系人",
+        "PHONE": "电话",
+        "SAVE": "保存",
+        "INBOUND_WAITING_CALLS": "呼入等待的呼叫",
+        "CONTACTS": "联系人",
+        "ADD_CONTACT": "添加联系人",
+        "RELOAD": "重新加载",
+        "QUEUES": "队列",
+        "WAITING_TEXT": "等待队列中的呼叫",
+        "TALKING_TEXT": "当前队列中的呼叫",
+        "INBOUND_ANSWERED_TEXT": "应答队列中的呼叫",
+        "ABANDONED_TEXT": "已放弃的队列中的呼叫",
+        "TOTAL_OFFERED_TEXT": "总队列中的呼叫",
+        "AVG_HOLD_TIME_TEXT": "队列中的呼叫的平均保持时间",
+        "AVG_TALK_TIME_TEXT": "队列中的呼叫的通话时间。",
+        "INBOUND_ANSWER_RATE_TEXT": "队列中的呼叫应答率",
+        "ABANDON_RATE_TEXT": "队列中的呼叫放弃率",
+        "UNMANAGED_TEXT": "不受管理的队列中的呼叫",
+        "TOTAL_TEXT": "去话呼叫总计",
+        "OUTBOUND_ANSWERED_TEXT": "呼出已应答呼叫",
+        "TOT_DURATION_TEXT": "出站呼叫的总时间",
+        "AVG_DURATION_TEXT": "外向呼叫平均持续时间",
+        "OUTBOUND_ANSWER_RATE_TEXT": "出站呼叫的应答率",
+        "RECORDINGS": "录像",
+        "DISPOSE": "出售",
+        "DIALER_CALL": "拨号器呼叫",
+        "ELAPSED_TIME": "经过时间",
+        "EDIT": "编辑",
+        "MERGE": "合并",
+        "DUPLICATE": "重复",
+        "UNIQUEID": "Uniqueid",
+        "CAMPAIGN": "运动",
+        "NONE": "无",
+        "NAME": "名称",
+        "PERSONAL_INFO": "个人信息",
+        "FIRSTNAME": "名字",
+        "LASTNAME": "Lastname",
+        "MOBILE": "移动数据终端",
+        "FAX": "传真",
+        "DATE_OF_BIRTH": "出生日期",
+        "COMPANY": "公司",
+        "TAG": "标签",
+        "COUNTRY": "国家/地区",
+        "CITY": "城市",
+        "STREET": "街",
+        "POSTALCODE": "邮政编码",
+        "CUSTOM_FIELDS": "自定义字段。",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "第一名是必需的",
+            "PHONE_REQUIRED": "手机是必需的"
+        },
+        "MYCONTACTS": "我的联系人",
+        "ANSWER_MACHINE": "应答机",
+        "INTERESTED": "有兴趣",
+        "NOT_INTERESTED": "不感兴趣",
+        "SOLD": "出售",
+        "SPECIAL": "特别",
+        "BLACKLIST": "黑名单",
+        "RESCHEDULE": "重新安排",
+        "DROP_RATE": "下降速度",
+        "DROPPED": "丢弃",
+        "DETAIL": "详细信息",
+        "MOTION_BULL": "运动防撞架",
+        "LIMITED": "有限的",
+        "LIMITED_TEXT": "活动呼叫的起源/有限",
+        "TODAY_MOTION_BULL_STATS": "今天议案的公牛 Stats",
+        "ORIGINATED": "源自",
+        "ORIGINATED_TEXT": "队列中的呼叫",
+        "MOTIONDIALER": "运动防撞架",
+        "TODAY_IVR_CAMPAIGNS_STATS": "今天 Ivr 运动统计信息"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/dashboards/i18n/zh-TW.json b/public/app/main/apps/dashboards/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..98091ad
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "DASHBOARDS": {
+        "DASHBOARDS": "顯示面板",
+        "GENERAL": "通用",
+        "VOICE": "語音通話",
+        "TODAY_INBOUND_STATS": "今日內傳統計資料",
+        "TODAY_OUTBOUND_STATS": "今天去電統計資料",
+        "WAITING": "等候中",
+        "TALKING": "通話中",
+        "INBOUND_ANSWERED": "接聽數量",
+        "OUTBOUND_ANSWERED": "接聽數量",
+        "ABANDONED": "已中止",
+        "TOTAL_OFFERED": "總數",
+        "AVG_HOLD_TIME": "平均保留時間",
+        "AVG_TALK_TIME": "平均通話時間",
+        "INBOUND_ANSWER_RATE": "回答率",
+        "OUTBOUND_ANSWER_RATE": "回答率",
+        "ABANDON_RATE": "放棄率",
+        "UNMANAGED": "未受管理",
+        "TOTAL": "總金額",
+        "TOT_DURATION": "持續時間總計",
+        "AVG_DURATION": "平均通話持續時間",
+        "HELP": {
+            "WAITING": "總等待佇列中通話數 , 考慮所有建立的佇列",
+            "TALKING": "總數量的作用中的佇列通話 , 考慮所有建立的佇列",
+            "INBOUND_ANSWERED": "總已佇列通話 , 考慮所有佇列",
+            "OUTBOUND_ANSWERED": "總已完成的外傳通話數",
+            "ABANDONED": "總已放棄佇列通話 , 考慮所有建立的佇列。 請注意該通話會放棄的逾時及 joinempty 不會計入此值",
+            "TOTAL_OFFERED": "總數量的佇列通話數 ( 已完成放棄 ) 。 請注意該通話會結束在 IVR , 無須輸入在佇列中 , 並不計入此值",
+            "AVG_HOLD_TIME": "平均佇列通話保留時間 , 它代表平均時間的來電等待值機員接聽 , 考慮所有佇列",
+            "AVG_TALK_TIME": "平均佇列通話時間、代表平均時間的通話處於「對話 , 考慮所有佇列",
+            "INBOUND_ANSWER_RATE": "答案速率的所有佇列通話",
+            "OUTBOUND_ANSWER_RATE": "答案率所有的外傳通話數",
+            "ABANDON_RATE": "該放棄率所有的佇列通話",
+            "UNMANAGED": "總不受將來電佇列、考慮所有建立的佇列。 它包含數都已放棄之通話等候時間、 joinempty 、 leavewhenempty 和 exitwithkey",
+            "TOTAL": "的的外傳通話數總計",
+            "TOT_DURATION": "總持續時間內所有的外傳通話數",
+            "AVG_DURATION": "平均持續時間 ( 所有已完成的外傳通話數",
+            "DROPPED": "總落佇列通話 , 考慮所有建立的佇列。",
+            "DROP_RATE": "下速率的所有佇列通話"
+        },
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "WELCOME_TO_MOTION": "歡迎使用動作",
+        "WELCOME_MESSAGE": "使用左側導覽部分。",
+        "ADD": "新增",
+        "CONTACTMANAGER": "連絡人管理員",
+        "DASHBOARD": "主控台",
+        "EDIT_CONTACT": "編輯連絡人",
+        "EMAIL": "電子郵件",
+        "FULLNAME": "全名",
+        "LIST": "清單",
+        "NEW_CONTACT": "新增連絡人",
+        "PHONE": "電話",
+        "SAVE": "儲存",
+        "INBOUND_WAITING_CALLS": "輸入等候的通話",
+        "CONTACTS": "[ 連絡人 ]",
+        "ADD_CONTACT": "新增連絡人",
+        "RELOAD": "重新載入",
+        "QUEUES": "佇列",
+        "WAITING_TEXT": "佇列中等待接聽來電",
+        "TALKING_TEXT": "作用中的佇列通話",
+        "INBOUND_ANSWERED_TEXT": "佇列中等候接聽來電",
+        "ABANDONED_TEXT": "放棄佇列通話",
+        "TOTAL_OFFERED_TEXT": "佇列通話數",
+        "AVG_HOLD_TIME_TEXT": "佇列來電平均保留時間",
+        "AVG_TALK_TIME_TEXT": "佇列通話的通話時間",
+        "INBOUND_ANSWER_RATE_TEXT": "佇列中等候接聽通話率",
+        "ABANDON_RATE_TEXT": "將來電佇列放棄率",
+        "UNMANAGED_TEXT": "Unmanaged 佇列通話",
+        "TOTAL_TEXT": "外傳通話數總計",
+        "OUTBOUND_ANSWERED_TEXT": "傳出接聽來電",
+        "TOT_DURATION_TEXT": "外傳通話持續時間總計",
+        "AVG_DURATION_TEXT": "外傳通話平均通話持續時間",
+        "OUTBOUND_ANSWER_RATE_TEXT": "外撥呼叫應答速率",
+        "RECORDINGS": "錄音",
+        "DISPOSE": "處置",
+        "DIALER_CALL": "撥號程式通話",
+        "ELAPSED_TIME": "經過的時間",
+        "EDIT": "編輯",
+        "MERGE": "合併",
+        "DUPLICATE": "重複",
+        "UNIQUEID": "指定唯一 ID",
+        "CAMPAIGN": "行銷活動",
+        "NONE": "「無」",
+        "NAME": "名稱",
+        "PERSONAL_INFO": "個人資訊",
+        "FIRSTNAME": "名字",
+        "LASTNAME": "姓",
+        "MOBILE": "行動電話",
+        "FAX": "傳真",
+        "DATE_OF_BIRTH": "出生日期",
+        "COMPANY": "公司",
+        "TAG": "標籤",
+        "COUNTRY": "國家 / 地區",
+        "CITY": "鄉 / 鎮 / 區 / 市",
+        "STREET": "街道地址",
+        "POSTALCODE": "郵遞區號",
+        "CUSTOM_FIELDS": "自訂欄位",
+        "ERRORS": {
+            "FIRSTNAME_REQUIRED": "名字是必填欄位",
+            "PHONE_REQUIRED": "「電話」為必填欄位"
+        },
+        "MYCONTACTS": "我的連絡人",
+        "ANSWER_MACHINE": "答錄機",
+        "INTERESTED": "有興趣",
+        "NOT_INTERESTED": "沒有興趣",
+        "SOLD": "另售",
+        "SPECIAL": "特殊優惠",
+        "BLACKLIST": "黑名單",
+        "RESCHEDULE": "重新排程",
+        "DROP_RATE": "掉落率",
+        "DROPPED": "捨棄",
+        "DETAIL": "詳細資料",
+        "MOTION_BULL": "動態牛",
+        "LIMITED": "有限",
+        "LIMITED_TEXT": "活動撥打 / 有限",
+        "TODAY_MOTION_BULL_STATS": "今日動態牛統計資料",
+        "ORIGINATED": "來源",
+        "ORIGINATED_TEXT": "佇列通話來源",
+        "MOTIONDIALER": "動態牛",
+        "TODAY_IVR_CAMPAIGNS_STATS": "今天 Ivr 活動統計資料"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/da.json b/public/app/main/apps/fax/i18n/da.json
new file mode 100644 (file)
index 0000000..0219f96
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Navnet",
+        "FAXQUEUES": "Faxkøer",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten Timeout er påkrævet",
+            "MOTIONADDRESS_REQUIRED": "Motion Adresse skal angives.",
+            "MOTIONADDRESS_MUST_VALID_URL": "Motion adresse skal være skrevet i et gyldigt format",
+            "LOCALSTATIONID_REQUIRED": "Den lokale Station id er påkrævet",
+            "MODEM_REQUIRED": "Modemet er påkrævet",
+            "GATEWAY_REQUIRED": "Gatewayen er påkrævet",
+            "FAXDETECT_REQUIRED": "Faxen registrerer er påkrævet",
+            "T38TIMEOUT_REQUIRED": "T.38 Timeout er påkrævet",
+            "TIMEOUT_REQUIRED": "Timeout er påkrævet",
+            "HEADERINFO_REQUIRED": "Skærebordets Info er påkrævet"
+        },
+        "STRATEGY": "Strategi",
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_FAXQUEUE": "Tilføj Fax kø",
+        "EDIT_FAXQUEUE": "Rediger Fax kø",
+        "DELETE_FAXQUEUE": "Slet Fax kø",
+        "CREATED_AT": "Oprettet på",
+        "SAVE": "Gem",
+        "SETTINGS": "Indstillinger",
+        "GENERAL": "Generel",
+        "FAXACCOUNTS": "Fax konti",
+        "MOTIONADDRESS": "Motion adresse",
+        "ADD_FAXACCOUNT": "Tilføj Fax konto",
+        "EDIT_FAXACCOUNT": "Rediger Fax konto",
+        "DELETE_FAXACCOUNT": "Slet Konto Fax",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Handlinger",
+        "LIST": "Listen",
+        "FIDELITY": "Fidelity",
+        "ACCEPT": "Accepter",
+        "ACCEPTMETHOD": "Acceptere metode",
+        "ACCEPTURL": "Acceptere URL",
+        "REJECT": "Afvis",
+        "REJECTMETHOD": "Afvis metode",
+        "REJECTURL": "Afvis URL",
+        "CLOSE": "Luk",
+        "CLOSEMETHOD": "Luk metode",
+        "CLOSEURL": "Luk URL",
+        "TRUNK": "Trunk",
+        "LOCALSTATIONID": "Lokalstation Id",
+        "HELP": {
+            "LOCALSTATIONID": "Lokalstation identifikator (telefonnummer).",
+            "HEADERINFO": "Udgående Fax brevhovedet.",
+            "MODEM": "Modem Type (V17/V27/V29).",
+            "GATEWAY": "T.38 Fax Gateway, med valgfri fax aktivitet timeout i sekunder (ja/nej/[timeout]).",
+            "FAXDETECT": "Enable Fax detektion med valgfri timeout i sekunder (ja/t38/cng/[timeout]/nr.).",
+            "T38TIMEOUT": "Timeout bruges til T.38 forhandling. Minimumværdien er 1000.",
+            "ECM": "Fejl Tilslutningstilstand (ECM).",
+            "MINRATE": "Minimums overførselshastighed indstillet før transmission. Mulige værdier er: 2400, 4800, 7200, 9600, 12000 eller 14400.",
+            "MAXRATE": "Maksimal overførselshastighed er før transmission. Mulige værdier er: 2400, 4800, 7200, 9600, 12000 eller 14400."
+        },
+        "ADVANCED": "Avanceret",
+        "ECM": "ECM",
+        "MINRATE": "Min. pris",
+        "MAXRATE": "Max sats",
+        "MODEM": "Modem",
+        "GATEWAY": "Gateway",
+        "FAXDETECT": "Fax detektion",
+        "T38TIMEOUT": "T.38 Timeout",
+        "SIP": "Teknologi",
+        "HEADERINFO": "Header Info",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "BACK": "Tilbage",
+        "FAX": "Fax",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "FAXDISPOSITIONS": "Fax Dispositions",
+        "NO_FAXDISPOSITION_AVAILABLE": "Ingen Fax Dispositions tilgængelig",
+        "NEW_FAXDISPOSITION": "Nye Fax Disp.",
+        "ADD_FAXDISPOSITION": "Tilføj Fax Disp.",
+        "EDIT_FAXDISPOSITION": "Rediger Fax Disp.",
+        "DELETE_FAXDISPOSITION": "Slet Fax Disp.",
+        "NEW_FAXQUEUE": "Nye Fax kø",
+        "NEW_FAXACCOUNT": "Ny e-mail konto",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "ALL_TEAMS": "Alle hold",
+        "SELECTED_TEAMS": "Udvalgte Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/de.json b/public/app/main/apps/fax/i18n/de.json
new file mode 100644 (file)
index 0000000..6fda105
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Name",
+        "FAXQUEUES": "Fax Warteschlangen",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "AGENT_TIMEOUT_REQUIRED": "Der Agent Timeout ist erforderlich",
+            "MOTIONADDRESS_REQUIRED": "Die Adresse ist erforderlich",
+            "MOTIONADDRESS_MUST_VALID_URL": "Die Adresse muss in einem gültigen Format",
+            "LOCALSTATIONID_REQUIRED": "Die lokale Station-ID ist erforderlich",
+            "MODEM_REQUIRED": "Das Modem erforderlich.",
+            "GATEWAY_REQUIRED": "Das Gateway ist erforderlich",
+            "FAXDETECT_REQUIRED": "Die FAX Erkennung erforderlich ist",
+            "T38TIMEOUT_REQUIRED": "Die T.38-Timeout ist erforderlich",
+            "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+            "HEADERINFO_REQUIRED": "Die Information in der Kopfzeile sind erforderlich"
+        },
+        "STRATEGY": "Strategie",
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Beschreibung",
+        "ADD_FAXQUEUE": "Warteschlange hinzufügen Fax",
+        "EDIT_FAXQUEUE": "Bearbeiten Fax Warteschlange",
+        "DELETE_FAXQUEUE": "Fax Löschen der Warteschlange",
+        "CREATED_AT": "Erstellt am",
+        "SAVE": "Speichern",
+        "SETTINGS": "Einstellungen",
+        "GENERAL": "Allgemein",
+        "FAXACCOUNTS": "Fax Konten",
+        "MOTIONADDRESS": "Motion Adresse",
+        "ADD_FAXACCOUNT": "Fax Konto hinzufügen",
+        "EDIT_FAXACCOUNT": "Fax Konto bearbeiten",
+        "DELETE_FAXACCOUNT": "Fax Konto löschen.",
+        "DISPOSITIONS": "Bestimmungen",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Aktionen",
+        "LIST": "Liste",
+        "FIDELITY": "Treue",
+        "ACCEPT": "Akzeptieren",
+        "ACCEPTMETHOD": "Die Methode",
+        "ACCEPTURL": "URL akzeptieren",
+        "REJECT": "Ablehnen",
+        "REJECTMETHOD": "Methode ablehnen",
+        "REJECTURL": "URL ablehnen",
+        "CLOSE": "In der Nähe",
+        "CLOSEMETHOD": "In der Nähe Methode",
+        "CLOSEURL": "Der URL",
+        "TRUNK": "Amtsleitung",
+        "LOCALSTATIONID": "Lokale Station Identifier",
+        "HELP": {
+            "LOCALSTATIONID": "Lokale Station Identifier (Telefonnummer).",
+            "HEADERINFO": "Ausgehende Faxkopfzeile.",
+            "MODEM": "Modem (V17/V27/V29).",
+            "GATEWAY": "T.38-Fax Gateway, mit optionalem Fax Aktivität Timeout in Sekunden (ja/nein/[timeout]).",
+            "FAXDETECT": "Die FAX Erkennung mit optionalen Timeout in Sekunden (Ja/T38/CNG/[Timeout]/Keine).",
+            "T38TIMEOUT": "Der Timeout für die T.38-Verhandlung. Der Mindestwert ist 1000.",
+            "ECM": "Fehler beim Connection Mode (ECM).",
+            "MINRATE": "Minimale Übertragungsrate eingestellt, bevor das Getriebe. Mögliche Werte sind: 2400, 4800, 7200, 9600, 12000 oder 14400.",
+            "MAXRATE": "Maximale Übertragungsrate eingestellt, bevor das Getriebe. Mögliche Werte sind: 2400, 4800, 7200, 9600, 12000 oder 14400."
+        },
+        "ADVANCED": "Erweiterte",
+        "ECM": "ECM",
+        "MINRATE": "Min. Geschwindigkeit",
+        "MAXRATE": "Max. Geschwindigkeit",
+        "MODEM": "Modem",
+        "GATEWAY": "Gateway",
+        "FAXDETECT": "Fax Erkennung",
+        "T38TIMEOUT": "T.38-Timeout",
+        "SIP": "Technologie",
+        "HEADERINFO": "Header-info",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "BACK": "Zurück",
+        "FAX": "Fax",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "FAXDISPOSITIONS": "Fax Disposition",
+        "NO_FAXDISPOSITION_AVAILABLE": "Kein Fax Dispositionen verfügbar",
+        "NEW_FAXDISPOSITION": "Neue Fax Disposition",
+        "ADD_FAXDISPOSITION": "Fax Disposition hinzufügen",
+        "EDIT_FAXDISPOSITION": "Fax Disposition bearbeiten",
+        "DELETE_FAXDISPOSITION": "Fax Disposition löschen",
+        "NEW_FAXQUEUE": "Neue Warteschlange",
+        "NEW_FAXACCOUNT": "Neue Fax Konto",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "ALL_TEAMS": "Alle Mannschaften",
+        "SELECTED_TEAMS": "Ausgewählte Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/en.json b/public/app/main/apps/fax/i18n/en.json
new file mode 100644 (file)
index 0000000..989e142
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Name",
+        "FAXQUEUES": "Fax Queues",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is required",
+            "AGENT_TIMEOUT_REQUIRED": "The Agent Timeout is required",
+            "MOTIONADDRESS_REQUIRED": "The Motion Address is required",
+            "MOTIONADDRESS_MUST_VALID_URL": "The Motion Address must be written in a valid format",
+            "LOCALSTATIONID_REQUIRED": "The Local Station Identifier is required",
+            "MODEM_REQUIRED": "The Modem is required",
+            "GATEWAY_REQUIRED": "The Gateway is required",
+            "FAXDETECT_REQUIRED": "The Fax Detect is required",
+            "T38TIMEOUT_REQUIRED": "The T.38 Timeout is required",
+            "TIMEOUT_REQUIRED": "The Timeout is required",
+            "HEADERINFO_REQUIRED": "The Header Info are required"
+        },
+        "STRATEGY": "Strategy",
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Description",
+        "ADD_FAXQUEUE": "Add Fax Queue",
+        "EDIT_FAXQUEUE": "Edit Fax Queue",
+        "DELETE_FAXQUEUE": "Delete Fax Queue",
+        "CREATED_AT": "Created At",
+        "SAVE": "Save",
+        "SETTINGS": "Settings",
+        "GENERAL": "General",
+        "FAXACCOUNTS": "Fax Accounts",
+        "MOTIONADDRESS": "Motion Address",
+        "ADD_FAXACCOUNT": "Add Fax Account",
+        "EDIT_FAXACCOUNT": "Edit Fax Account",
+        "DELETE_FAXACCOUNT": "Delete Fax Account",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Actions",
+        "LIST": "List",
+        "FIDELITY": "Fidelity",
+        "ACCEPT": "Accept",
+        "ACCEPTMETHOD": "Accept Method",
+        "ACCEPTURL": "Accept URL",
+        "REJECT": "Reject",
+        "REJECTMETHOD": "Reject Method",
+        "REJECTURL": "Reject URL",
+        "CLOSE": "Close",
+        "CLOSEMETHOD": "Close Method",
+        "CLOSEURL": "Close URL",
+        "TRUNK": "Trunk",
+        "LOCALSTATIONID": "Local Station Identifier",
+        "HELP": {
+            "LOCALSTATIONID": "Local Station Identifier (telephone number).",
+            "HEADERINFO": "Outbound Fax Header information.",
+            "MODEM": "Modem Type (v17/v27/v29).",
+            "GATEWAY": "T.38 Fax Gateway, with optional fax activity timeout in seconds (yes/no/[timeout]).",
+            "FAXDETECT": "Enable Fax Detect with optional timeout in seconds (yes/t38/cng/[timeout]/no).",
+            "T38TIMEOUT": "The timeout used for T.38 negotiation. The minimum value is 1000.",
+            "ECM": "Error Connection Mode (ECM).",
+            "MINRATE": "Minimum transfer rate set before transmission. Possible values are: 2400, 4800, 7200, 9600, 12000 or 14400.",
+            "MAXRATE": "Maximum transfer rate set before transmission. Possible values are: 2400, 4800, 7200, 9600, 12000 or 14400."
+        },
+        "ADVANCED": "Advanced",
+        "ECM": "ECM",
+        "MINRATE": "Min Rate",
+        "MAXRATE": "Max Rate",
+        "MODEM": "Modem",
+        "GATEWAY": "Gateway",
+        "FAXDETECT": "Fax Detect",
+        "T38TIMEOUT": "T.38 Timeout",
+        "SIP": "Technology",
+        "HEADERINFO": "Header Info",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "BACK": "Back",
+        "FAX": "Fax",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "FAXDISPOSITIONS": "Fax Dispositions",
+        "NO_FAXDISPOSITION_AVAILABLE": "No Fax Dispositions available",
+        "NEW_FAXDISPOSITION": "New Fax Disposition",
+        "ADD_FAXDISPOSITION": "Add Fax Disposition",
+        "EDIT_FAXDISPOSITION": "Edit Fax Disposition",
+        "DELETE_FAXDISPOSITION": "Delete Fax Disposition",
+        "NEW_FAXQUEUE": "New Fax Queue",
+        "NEW_FAXACCOUNT": "New Fax Account",
+        "NO_AVAILABLE_INFO": "No available info",
+        "ALL_TEAMS": "All Teams",
+        "SELECTED_TEAMS": "Selected Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/es.json b/public/app/main/apps/fax/i18n/es.json
new file mode 100644 (file)
index 0000000..f5e1543
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Nombre",
+        "FAXQUEUES": "Colas de Fax",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "AGENT_TIMEOUT_REQUIRED": "El agente se requiere tiempo de espera",
+            "MOTIONADDRESS_REQUIRED": "Se requiere una dirección de movimiento",
+            "MOTIONADDRESS_MUST_VALID_URL": "La dirección de movimiento deben escribirse en un formato válido",
+            "LOCALSTATIONID_REQUIRED": "El identificador de la estación local es requerido",
+            "MODEM_REQUIRED": "El módem que se requiere.",
+            "GATEWAY_REQUIRED": "La pasarela es necesaria",
+            "FAXDETECT_REQUIRED": "Es necesario detectar el Fax",
+            "T38TIMEOUT_REQUIRED": "T.38 se requiere tiempo de espera",
+            "TIMEOUT_REQUIRED": "El tiempo de espera es necesario",
+            "HEADERINFO_REQUIRED": "La información de encabezado son obligatorios"
+        },
+        "STRATEGY": "Estrategia",
+        "AGENT_TIMEOUT": "Tiempo de espera del agente",
+        "DESCRIPTION": "Descripción",
+        "ADD_FAXQUEUE": "Añadir cola de fax",
+        "EDIT_FAXQUEUE": "Editar Cola de fax",
+        "DELETE_FAXQUEUE": "Borrar cola de fax",
+        "CREATED_AT": "Creado en",
+        "SAVE": "Guardar",
+        "SETTINGS": "Configuración",
+        "GENERAL": "General",
+        "FAXACCOUNTS": "Las cuentas de fax",
+        "MOTIONADDRESS": "Dirección de movimiento",
+        "ADD_FAXACCOUNT": "Agregar la cuenta de Fax",
+        "EDIT_FAXACCOUNT": "Editar la cuenta de Fax",
+        "DELETE_FAXACCOUNT": "Eliminar cuenta de Fax",
+        "DISPOSITIONS": "Disposiciones",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acciones",
+        "LIST": "Lista",
+        "FIDELITY": "Fidelidad",
+        "ACCEPT": "Aceptar",
+        "ACCEPTMETHOD": "Aceptar el método",
+        "ACCEPTURL": "Aceptar URL",
+        "REJECT": "Rechazar",
+        "REJECTMETHOD": "Método de rechazo",
+        "REJECTURL": "Rechazar URL",
+        "CLOSE": "Cerrar",
+        "CLOSEMETHOD": "Método Close",
+        "CLOSEURL": "Cerrar URL",
+        "TRUNK": "Tronco",
+        "LOCALSTATIONID": "Identificador de la estación local.",
+        "HELP": {
+            "LOCALSTATIONID": "Identificador de la estación local (número de teléfono).",
+            "HEADERINFO": "La información de cabecera de fax saliente.",
+            "MODEM": "El tipo de módem (V17/V27/V29).",
+            "GATEWAY": "Gateway de fax T.38, con actividad de fax opcional timeout en segundos (sí/no/[timeout]).",
+            "FAXDETECT": "Habilitar la detección de fax opcional con el tiempo de espera en segundos (sí/t38/CNG/[timeout]/no).",
+            "T38TIMEOUT": "El tiempo utilizado para la negociación T.38. El valor mínimo es de 1000.",
+            "ECM": "Modo de conexión de errores (ECM).",
+            "MINRATE": "Velocidad de transferencia mínima establecida antes de la transmisión. Los valores posibles son: 2400, 4800, 7200, 9600, 12000 o 14400.",
+            "MAXRATE": "Tasa de transferencia máxima establecida antes de la transmisión. Los valores posibles son: 2400, 4800, 7200, 9600, 12000 o 14400."
+        },
+        "ADVANCED": "Advanced",
+        "ECM": "ECM",
+        "MINRATE": "Min Rate",
+        "MAXRATE": "Tasa máx.",
+        "MODEM": "Módem",
+        "GATEWAY": "Gateway",
+        "FAXDETECT": "Detección de Fax",
+        "T38TIMEOUT": "T.38 Timeout",
+        "SIP": "Tecnología",
+        "HEADERINFO": "La información de encabezado",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "BACK": "Volver",
+        "FAX": "Fax",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "FAXDISPOSITIONS": "Disposiciones de Fax",
+        "NO_FAXDISPOSITION_AVAILABLE": "Disposiciones Fax no disponible",
+        "NEW_FAXDISPOSITION": "Nueva disposición de Fax",
+        "ADD_FAXDISPOSITION": "Agregar Fax disposicion",
+        "EDIT_FAXDISPOSITION": "Modificar la disposición de Fax",
+        "DELETE_FAXDISPOSITION": "Eliminar la disposición de Fax",
+        "NEW_FAXQUEUE": "Nueva cola de fax",
+        "NEW_FAXACCOUNT": "Nueva cuenta de Fax",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "ALL_TEAMS": "Todos los equipos",
+        "SELECTED_TEAMS": "Los equipos seleccionados"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/fa.json b/public/app/main/apps/fax/i18n/fa.json
new file mode 100644 (file)
index 0000000..d0775db
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "نام",
+        "FAXQUEUES": "صفهای طولانی فكس",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "AGENT_TIMEOUT_REQUIRED": "عامل پایان زمان لازم است.",
+            "MOTIONADDRESS_REQUIRED": "آدرس حركت لازم است.",
+            "MOTIONADDRESS_MUST_VALID_URL": "حركت باید آدرس را در یک فرمت معتبر نوشته شده است",
+            "LOCALSTATIONID_REQUIRED": "شناسه ایستگاه محلی لازم است.",
+            "MODEM_REQUIRED": "مودم مورد نیاز است.",
+            "GATEWAY_REQUIRED": "دروازه را لازم است.",
+            "FAXDETECT_REQUIRED": "فاكس را شناسایی لازم است.",
+            "T38TIMEOUT_REQUIRED": "تي38 به پایان زمان لازم است.",
+            "TIMEOUT_REQUIRED": "در پایان زمان لازم است.",
+            "HEADERINFO_REQUIRED": "اطلاعات سربرگ لازم هستند."
+        },
+        "STRATEGY": "استراتژي",
+        "AGENT_TIMEOUT": "عامل زمان مجاز",
+        "DESCRIPTION": "شرح",
+        "ADD_FAXQUEUE": "افزودن فكس صف",
+        "EDIT_FAXQUEUE": "ویرایش فكس صف",
+        "DELETE_FAXQUEUE": "فكس صف حذف می شود",
+        "CREATED_AT": "ایجاد شده در",
+        "SAVE": "ذخیره",
+        "SETTINGS": "تنظیمات",
+        "GENERAL": "سردار",
+        "FAXACCOUNTS": "حساب فكس",
+        "MOTIONADDRESS": "حركت آدرس",
+        "ADD_FAXACCOUNT": "افزودن اشتراک فكس",
+        "EDIT_FAXACCOUNT": "ویرایش حساب فكس",
+        "DELETE_FAXACCOUNT": "حذف اشتراک فكس",
+        "DISPOSITIONS": "مكتبى",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "اقدامات",
+        "LIST": "فهرست",
+        "FIDELITY": "وفاداري",
+        "ACCEPT": "پذیرفتن",
+        "ACCEPTMETHOD": "اين روش را قبول",
+        "ACCEPTURL": "آدرس کامل قبول",
+        "REJECT": "رد كردن",
+        "REJECTMETHOD": "روش رد",
+        "REJECTURL": "آدرس کامل رد",
+        "CLOSE": "بستن",
+        "CLOSEMETHOD": "روش بستن",
+        "CLOSEURL": "آدرس کامل ببندید",
+        "TRUNK": "تنه",
+        "LOCALSTATIONID": "شناسه ایستگاه محلی",
+        "HELP": {
+            "LOCALSTATIONID": "ایستگاه محلی شناسه (شماره تلفن).",
+            "HEADERINFO": "برای اطلاعات سربرگ فكس.",
+            "MODEM": "نوع مودم (V17/V27/V29).",
+            "GATEWAY": "تي38، دروازه را با فكس فكس زمان وقفه در فعالیت های اختیاری ثانیه (بله/نه/[پایان زمان]).",
+            "FAXDETECT": "قابلیت شناسایی فكس با پایان زمان در ثانیه (اختیاری بله/t38/گاز طبیعی فشرده/[پایان زمان[/خیر).",
+            "T38TIMEOUT": "پایان زمان مجاز برای استفاده از تي38 مذاكره است. حداقل مقدار 1000.",
+            "ECM": "خطا در حالت اتصال (ECM) است.",
+            "MINRATE": "حداقل نرخ انتقال تا قبل از انتقال را تنظیم کنید. مقادیر: امكان پذير است، به تاريخ 4800، 2400، 9600، 7200 ورزاو 12000 یا 14400 است.",
+            "MAXRATE": "حداکثر میزان انتقال قبل از انتقال را تنظیم کنید. مقادیر: امكان پذير است، به تاريخ 4800، 2400، 9600، 7200 ورزاو 12000 یا 14400 است."
+        },
+        "ADVANCED": "پيش رفت.",
+        "ECM": "ECM",
+        "MINRATE": "حداقل نرخ",
+        "MAXRATE": "میزان حداکثر",
+        "MODEM": "یک مودم",
+        "GATEWAY": "دروازه",
+        "FAXDETECT": "شناسایی فكس",
+        "T38TIMEOUT": "زمان وقفه تي38",
+        "SIP": "فن آوری",
+        "HEADERINFO": "اطلاعات سربرگ",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "BACK": "پشت",
+        "FAX": "فاكس",
+        "ID": "شناسه",
+        "TIMEOUT": "پایان زمان مجاز",
+        "FAXDISPOSITIONS": "فكس مكتبى",
+        "NO_FAXDISPOSITION_AVAILABLE": "هيچ مكتبى فكس موجود است",
+        "NEW_FAXDISPOSITION": "1626 فكس جديد",
+        "ADD_FAXDISPOSITION": "افزودن فكس 1626",
+        "EDIT_FAXDISPOSITION": "ویرایش 1626 فكس",
+        "DELETE_FAXDISPOSITION": "1626 فكس را حذف کنید",
+        "NEW_FAXQUEUE": "فكس صف جدید",
+        "NEW_FAXACCOUNT": "اشتراک جدید فكس",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "ALL_TEAMS": "همه تیم ها",
+        "SELECTED_TEAMS": "تيم هاي برگزيده"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/fi.json b/public/app/main/apps/fax/i18n/fi.json
new file mode 100644 (file)
index 0000000..992304e
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Nimi",
+        "FAXQUEUES": "Faksi jonot",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "AGENT_TIMEOUT_REQUIRED": "Asiakaspalvelijan aikakatkaisu on pakollinen",
+            "MOTIONADDRESS_REQUIRED": "Liikkeen osoite on pakollinen tieto",
+            "MOTIONADDRESS_MUST_VALID_URL": "Liikkeen osoite on kirjoitettava kelvollisessa muodossa",
+            "LOCALSTATIONID_REQUIRED": "Paikallisessa asemassa tunnus on pakollinen",
+            "MODEM_REQUIRED": "Modeemi ei tarvita",
+            "GATEWAY_REQUIRED": "Yhdyskäytävä on pakollinen",
+            "FAXDETECT_REQUIRED": "Faksi havaita ei tarvita",
+            "T38TIMEOUT_REQUIRED": "T.38 aikakatkaisu on pakollinen",
+            "TIMEOUT_REQUIRED": "Aikakatkaisujakso on pakollinen",
+            "HEADERINFO_REQUIRED": "Leikkuupöydän tiedot ovat pakollisia"
+        },
+        "STRATEGY": "Strategia",
+        "AGENT_TIMEOUT": "Agentti aikakatkaisu",
+        "DESCRIPTION": "Kuvaus",
+        "ADD_FAXQUEUE": "Lisää faksin jono",
+        "EDIT_FAXQUEUE": "Muokkaa jonoa faksi",
+        "DELETE_FAXQUEUE": "Poista faksin jono",
+        "CREATED_AT": "Luodaan",
+        "SAVE": "Tallenna",
+        "SETTINGS": "Asetusten määrittäminen",
+        "GENERAL": "Yleistä",
+        "FAXACCOUNTS": "Faksi tilit",
+        "MOTIONADDRESS": "Liikkeen osoite",
+        "ADD_FAXACCOUNT": "Lisää faksin tili",
+        "EDIT_FAXACCOUNT": "Muokkaa faksi tili",
+        "DELETE_FAXACCOUNT": "Poista faksin tili",
+        "DISPOSITIONS": "Yhteisyys",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Toimet",
+        "LIST": "Luettelo",
+        "FIDELITY": "Epätarkkaan äänentoistoon",
+        "ACCEPT": "Hyväksy",
+        "ACCEPTMETHOD": "Hyväksy menetelmä",
+        "ACCEPTURL": "Hyväksy URL",
+        "REJECT": "Hylkää",
+        "REJECTMETHOD": "Hylkää menetelmä",
+        "REJECTURL": "Hylkää URL",
+        "CLOSE": "Sulje",
+        "CLOSEMETHOD": "Sulje menetelmä",
+        "CLOSEURL": "Sulje URL",
+        "TRUNK": "Trunk",
+        "LOCALSTATIONID": "Paikallisessa asemassa tunnus",
+        "HELP": {
+            "LOCALSTATIONID": "Paikallisessa asemassa tunniste (puhelinnumero).",
+            "HEADERINFO": "Lähtevän faksin otsikkotiedot.",
+            "MODEM": "Modem Type (v17/V27/V29).",
+            "GATEWAY": "T.38 Fax-yhdyskäytävä ja valinnainen faksi toimintaa timeout sekunneissa (kyllä/ei/[aikakatkaisu]).",
+            "FAXDETECT": "Jotta faksi tunnistus ja valinnainen timeout sekunneissa (kyllä/t38/maakaasun/[aikakatkaisu]/no).",
+            "T38TIMEOUT": "Timeout käytetään T.38 välisissä neuvotteluissa. Pienin arvo on 1000.",
+            "ECM": "Virhe Connection Mode (ECM).",
+            "MINRATE": "Minimi siirtonopeus määritetään ennen lähettämistä. Mahdolliset arvot ovat: 2400, 4800, 7200, 9600, 12000 tai 14400.",
+            "MAXRATE": "Suurin siirtonopeus määritetään ennen lähettämistä. Mahdolliset arvot ovat: 2400, 4800, 7200, 9600, 12000 tai 14400."
+        },
+        "ADVANCED": "Tarkennettu",
+        "ECM": "ECM",
+        "MINRATE": "Min hintaan",
+        "MAXRATE": "Max hinta",
+        "MODEM": "Modeemi",
+        "GATEWAY": "Yhdyskäytävä",
+        "FAXDETECT": "Faksi tunnistus",
+        "T38TIMEOUT": "T.38 aikakatkaisu",
+        "SIP": "Tekniikka",
+        "HEADERINFO": "Leikkuupöydän tiedot",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "BACK": "Takaisin",
+        "FAX": "Faksi",
+        "ID": "Tunnus",
+        "TIMEOUT": "Aikakatkaisu",
+        "FAXDISPOSITIONS": "Faksi yhteisyys",
+        "NO_FAXDISPOSITION_AVAILABLE": "No Fax yhteisyys käytettävissä",
+        "NEW_FAXDISPOSITION": "Uusi faksi jatkokäsittely",
+        "ADD_FAXDISPOSITION": "Lisää faksin jatkokäsittely",
+        "EDIT_FAXDISPOSITION": "Muokkaa faksi jatkokäsittely",
+        "DELETE_FAXDISPOSITION": "Poista faksin jatkokäsittely",
+        "NEW_FAXQUEUE": "Uuden jonon faksi",
+        "NEW_FAXACCOUNT": "Uusi faksi tili",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "ALL_TEAMS": "Kaikki joukkueet",
+        "SELECTED_TEAMS": "Valittu työryhmille"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/fr.json b/public/app/main/apps/fax/i18n/fr.json
new file mode 100644 (file)
index 0000000..bfe9c0e
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Nom",
+        "FAXQUEUES": "Les files d'attente de Fax",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "AGENT_TIMEOUT_REQUIRED": "L'Agent est nécessaire",
+            "MOTIONADDRESS_REQUIRED": "La motion est nécessaire",
+            "MOTIONADDRESS_MUST_VALID_URL": "La motion doit être écrit dans un format valide",
+            "LOCALSTATIONID_REQUIRED": "La station locale d'identification est nécessaire",
+            "MODEM_REQUIRED": "Le modem est requis",
+            "GATEWAY_REQUIRED": "La passerelle est nécessaire",
+            "FAXDETECT_REQUIRED": "Détecter la télécopie est requis",
+            "T38TIMEOUT_REQUIRED": "La temporisation est nécessaire T.38",
+            "TIMEOUT_REQUIRED": "Le délai est nécessaire",
+            "HEADERINFO_REQUIRED": "Les informations d'en-tête sont requis"
+        },
+        "STRATEGY": "Stratégie",
+        "AGENT_TIMEOUT": "Délai d'agent",
+        "DESCRIPTION": "Description",
+        "ADD_FAXQUEUE": "Ajouter d'attente des télécopies",
+        "EDIT_FAXQUEUE": "Modifier la file d'attente de Fax",
+        "DELETE_FAXQUEUE": "Supprimer la file d'attente de Fax",
+        "CREATED_AT": "Créé à",
+        "SAVE": "Sauvegarder",
+        "SETTINGS": "Settings",
+        "GENERAL": "Général",
+        "FAXACCOUNTS": "Comptes Fax",
+        "MOTIONADDRESS": "Adresse Motion",
+        "ADD_FAXACCOUNT": "Ajouter compte Fax",
+        "EDIT_FAXACCOUNT": "Modifier compte Fax",
+        "DELETE_FAXACCOUNT": "Supprimer compte Fax",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Actions",
+        "LIST": "Liste",
+        "FIDELITY": "Fidelity",
+        "ACCEPT": "Accepter",
+        "ACCEPTMETHOD": "Méthode d'accepter",
+        "ACCEPTURL": "Accepter URL",
+        "REJECT": "Rejeter",
+        "REJECTMETHOD": "Méthode de rejet",
+        "REJECTURL": "Rejeter les URL",
+        "CLOSE": "Fermer",
+        "CLOSEMETHOD": "Méthode Close",
+        "CLOSEURL": "URL Fermer",
+        "TRUNK": "Trunk",
+        "LOCALSTATIONID": "Indicatif de la station locale",
+        "HELP": {
+            "LOCALSTATIONID": "Identificateur de la station locale (numéro de téléphone).",
+            "HEADERINFO": "Outbound Fax Informations d'en-tête.",
+            "MODEM": "Type de modem (V17/V27/V29).",
+            "GATEWAY": "La Passerelle fax T.38, avec l'activité de télécopie en option de temps en secondes (oui/non/ [délai]).",
+            "FAXDETECT": "L'activer avec l'option Détection de temps en secondes (oui/t38/CNG/ [délai]/non).",
+            "T38TIMEOUT": "Le délai utilisé pour T.38 la négociation. La valeur minimale est de 1000.",
+            "ECM": "Mode de connexion d'erreur (ECM).",
+            "MINRATE": "Taux de transfert minimum défini avant la transmission. Les valeurs possibles sont : 2400, 4800, 7200, 9600, 12000 ou 14400.",
+            "MAXRATE": "Taux de transfert maximal défini avant la transmission. Les valeurs possibles sont : 2400, 4800, 7200, 9600, 12000 ou 14400."
+        },
+        "ADVANCED": "Recherche avancée",
+        "ECM": "ECM",
+        "MINRATE": "Taux Min",
+        "MAXRATE": "Taux max.",
+        "MODEM": "Modem",
+        "GATEWAY": "Gateway",
+        "FAXDETECT": "Fax Détecter",
+        "T38TIMEOUT": "Timeout T.38",
+        "SIP": "Technology",
+        "HEADERINFO": "Informations d'en-tête",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "BACK": "Retour",
+        "FAX": "Fax",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "FAXDISPOSITIONS": "Dispositions de télécopie",
+        "NO_FAXDISPOSITION_AVAILABLE": "Pas de fax disponible Disposition",
+        "NEW_FAXDISPOSITION": "Nouvelle disposition Fax",
+        "ADD_FAXDISPOSITION": "Ajouter la disposition de Fax",
+        "EDIT_FAXDISPOSITION": "Modifier la disposition de Fax",
+        "DELETE_FAXDISPOSITION": "Supprimer la disposition Fax",
+        "NEW_FAXQUEUE": "Nouvelle file d'attente de télécopie",
+        "NEW_FAXACCOUNT": "Nouveau compte Fax",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "ALL_TEAMS": "Toutes les équipes",
+        "SELECTED_TEAMS": "Les équipes sélectionnées"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/hi.json b/public/app/main/apps/fax/i18n/hi.json
new file mode 100644 (file)
index 0000000..0eb94fb
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "नाम",
+        "FAXQUEUES": "फैक्स कतार",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "AGENT_TIMEOUT_REQUIRED": "एजेंट समयबाह्य अपेक्षित है।",
+            "MOTIONADDRESS_REQUIRED": "अभिभाषण के प्रस्ताव की आवश्यकता है।",
+            "MOTIONADDRESS_MUST_VALID_URL": "यह प्रस्ताव एक मान्य स्वरूप में लिखा होना पता",
+            "LOCALSTATIONID_REQUIRED": "स्थानीय स्टेशन Identifier अपेक्षित है।",
+            "MODEM_REQUIRED": "मॉडम को अपेक्षित है।",
+            "GATEWAY_REQUIRED": "गेटवे से अपेक्षित है।",
+            "FAXDETECT_REQUIRED": "का पता लगाने के लिए तथा फैक्स अपेक्षित है।",
+            "T38TIMEOUT_REQUIRED": "टी 38 समयबाह्य अपेक्षित है।",
+            "TIMEOUT_REQUIRED": "इस समय की आवश्यकता है।",
+            "HEADERINFO_REQUIRED": "शीर्षलेख जानकारी आवश्यक हैं."
+        },
+        "STRATEGY": "रणनीति",
+        "AGENT_TIMEOUT": "एजेंट समयबाह्य",
+        "DESCRIPTION": "वर्णन",
+        "ADD_FAXQUEUE": "फ़ैक्स कतार में जोड़ें",
+        "EDIT_FAXQUEUE": "संपादित करने के लिए तथा फैक्स कतार",
+        "DELETE_FAXQUEUE": "लोकतंत्रमें फैक्स हटाएं",
+        "CREATED_AT": "सृजित",
+        "SAVE": "सहेजें",
+        "SETTINGS": "सेटिंग्स",
+        "GENERAL": "सामान्य",
+        "FAXACCOUNTS": "फैक्स द्वारा लेखा",
+        "MOTIONADDRESS": "प्रस्ताव के पते",
+        "ADD_FAXACCOUNT": "खाता जोड़ने के लिए तथा फैक्स",
+        "EDIT_FAXACCOUNT": "संपादित करने के लिए तथा फैक्स खाता",
+        "DELETE_FAXACCOUNT": "खाता फैक्स हटाएं",
+        "DISPOSITIONS": "प्रवृतियों",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "क्रियाएं",
+        "LIST": "की सूची",
+        "FIDELITY": "वास्तविक",
+        "ACCEPT": "स्वीकार करना",
+        "ACCEPTMETHOD": "तरीका स्वीकार करें",
+        "ACCEPTURL": "स्वीकार किए गए URL",
+        "REJECT": "अस्वीकार करना",
+        "REJECTMETHOD": "अस्वीकार पद्धति",
+        "REJECTURL": "URL अस्वीकार करें",
+        "CLOSE": "निकट",
+        "CLOSEMETHOD": "निकट पद्धति",
+        "CLOSEURL": "बंद किए गए URL",
+        "TRUNK": "सूंड",
+        "LOCALSTATIONID": "स्थानीय स्टेशन Identifier",
+        "HELP": {
+            "LOCALSTATIONID": "स्थानीय स्टेशन Identifier (दूरभाष)।",
+            "HEADERINFO": "बाह्यवर्ती फैक्स शीर्षलेख जानकारी की आवश्यकता है.",
+            "MODEM": "(v)मंत्रालय/v17 मॉडम प्रकार/v29)।",
+            "GATEWAY": "38.टी. के साथ फ़ैक्स गेटवे समय बाह्य गतिविधियों में वैकल्पिक फैक्स सेकंड)]/[(हां/नहीं समयबाह्य",
+            "FAXDETECT": "(सेकंड में समर्थ बनाने के लिए तथा फैक्स के साथ का पता लगाने के लिए वैकल्पिक समयबाह्य हां/टी.एन.जी./38/[समयबाह्य]/नहीं है।",
+            "T38TIMEOUT": "38.टी. के लिए प्रयुक्त टाइमआउट बातचीत है। 1000 का न्यूनतम मूल्य है।",
+            "ECM": "कनेक्शन मोड (ECM त्रुटि.",
+            "MINRATE": "स् थानांतरण न्यूनतम दर निर्धारित है। 7200 4800 2400 में, इस प्रकार हैं : मूल्यों संभव हो, 9600, 12000 14400 या है।",
+            "MAXRATE": "अधिकतम दर निर्धारित पारेषण अंतरण 7200 4800 2400 में, इस प्रकार हैं : मूल्यों संभव हो, 9600, 12000 14400 या है।"
+        },
+        "ADVANCED": "उन्नत",
+        "ECM": "ECM",
+        "MINRATE": "मिन दर",
+        "MAXRATE": "अधिकतम दर",
+        "MODEM": "आधुनिक",
+        "GATEWAY": "गेटवे",
+        "FAXDETECT": "फैक्स पता लगाएं",
+        "T38TIMEOUT": "38.टी. समयबाह्य",
+        "SIP": "प्रौद्योगिकी",
+        "HEADERINFO": "शीर्षलेख जानकारी",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "BACK": "वापिस",
+        "FAX": "फ़ैक्स",
+        "ID": "Id",
+        "TIMEOUT": "समयबाह्य",
+        "FAXDISPOSITIONS": "फैक्स प्रवृतियों",
+        "NO_FAXDISPOSITION_AVAILABLE": "कोई फ़ैक्स प्रवृतियों उपलब्ध",
+        "NEW_FAXDISPOSITION": "नए युग से मिजाज",
+        "ADD_FAXDISPOSITION": "सरकारीतंत्र फैक्स जोड़ें",
+        "EDIT_FAXDISPOSITION": "सरकारीतंत्र फैक्स संपादित करें",
+        "DELETE_FAXDISPOSITION": "सरकारीतंत्र फैक्स हटाएं",
+        "NEW_FAXQUEUE": "नई फैक्स कतार",
+        "NEW_FAXACCOUNT": "नए युग से खाते",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "ALL_TEAMS": "सभी टीमें भाग लेंगी।",
+        "SELECTED_TEAMS": "चयनित टीम"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/it.json b/public/app/main/apps/fax/i18n/it.json
new file mode 100644 (file)
index 0000000..bd770de
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Nome",
+        "FAXQUEUES": "Code Fax",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "AGENT_TIMEOUT_REQUIRED": "Il Timeout Agente è richiesto",
+            "MOTIONADDRESS_REQUIRED": "L' indirizzo Motion è richiesto",
+            "MOTIONADDRESS_MUST_VALID_URL": "L' Indirizzo Motion deve essere in un formato valido",
+            "LOCALSTATIONID_REQUIRED": "The Local Station Identifier is required",
+            "MODEM_REQUIRED": "Il Modem è richiesto",
+            "GATEWAY_REQUIRED": "Il Gateway è richiesto",
+            "FAXDETECT_REQUIRED": "Il Fax Detect è richiesto",
+            "T38TIMEOUT_REQUIRED": "Il T.38 Timeout è richiesto",
+            "TIMEOUT_REQUIRED": "Il Timeout è richiesto",
+            "HEADERINFO_REQUIRED": "L'Intestazione è richiesta"
+        },
+        "STRATEGY": "Strategia",
+        "AGENT_TIMEOUT": "Timeout Agente",
+        "DESCRIPTION": "Descrizione",
+        "ADD_FAXQUEUE": "Aggiungi Coda Fax",
+        "EDIT_FAXQUEUE": "Modifica Coda Fax",
+        "DELETE_FAXQUEUE": "Elimina Coda Fax",
+        "CREATED_AT": "Creato il",
+        "SAVE": "Salva",
+        "SETTINGS": "Impostazioni",
+        "GENERAL": "Generale",
+        "FAXACCOUNTS": "Account Fax",
+        "MOTIONADDRESS": "Indirizzo Motion",
+        "ADD_FAXACCOUNT": "Aggiungi Account Fax",
+        "EDIT_FAXACCOUNT": "Modifica Account Fax",
+        "DELETE_FAXACCOUNT": "Elimina Account Fax",
+        "DISPOSITIONS": "Esiti",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Azioni",
+        "LIST": "Lista",
+        "FIDELITY": "Fidelity",
+        "ACCEPT": "Accetta",
+        "ACCEPTMETHOD": "Metodo Accetta",
+        "ACCEPTURL": "URL Accetta",
+        "REJECT": "Rifiuta",
+        "REJECTMETHOD": "Metodo Rifiuta",
+        "REJECTURL": "URL Rifiuta",
+        "CLOSE": "Chiudi",
+        "CLOSEMETHOD": "Metodo Chiudi",
+        "CLOSEURL": "URL Chiudi",
+        "TRUNK": "Trunk",
+        "LOCALSTATIONID": "Local Station Identifier",
+        "HELP": {
+            "LOCALSTATIONID": "Local Station Identifier (numero di telefono).",
+            "HEADERINFO": "Intestazione Fax Outbound.",
+            "MODEM": "Tipo del Model (v17/v27/v29).",
+            "GATEWAY": "T.38 Fax Gateway, opzionale il timeout per l'attività del fax in secondi (yes/no/[timeout]).",
+            "FAXDETECT": "Abilita il Fax Detect, opzionale il timeout in secondi (yes/t38/cng/[timeout]/no).",
+            "T38TIMEOUT": "Il timeout usato per la negoziazione T.38. Il valore minimo è 1000.",
+            "ECM": "Error Connection Mode (ECM).",
+            "MINRATE": "Velocità minima di trasferimento impostata prima della trasmissione. I valori possibili sono: 2400, 4800, 7200, 9600, 12000 or 14400.",
+            "MAXRATE": "Velocità massima di trasferimento impostata prima della trasmissione. I valori possibili sono: 2400, 4800, 7200, 9600, 12000 or 14400."
+        },
+        "ADVANCED": "Avanzate",
+        "ECM": "ECM",
+        "MINRATE": "Min Rate",
+        "MAXRATE": "Max Rate",
+        "MODEM": "Modem",
+        "GATEWAY": "Gateway",
+        "FAXDETECT": "Fax Detect",
+        "T38TIMEOUT": "T.38 Timeout",
+        "SIP": "Technologia",
+        "HEADERINFO": "Intestazione",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutti",
+        "SELECT_NONE": "Deseleziona tutti",
+        "BACK": "Indietro",
+        "FAX": "Fax",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "FAXDISPOSITIONS": "Esiti Fax",
+        "NO_FAXDISPOSITION_AVAILABLE": "Nessun Esito Fax disponibile",
+        "NEW_FAXDISPOSITION": "Nuovo Esito Fax",
+        "ADD_FAXDISPOSITION": "Aggiungi Esito Fax",
+        "EDIT_FAXDISPOSITION": "Modifica Esito Fax",
+        "DELETE_FAXDISPOSITION": "Elimina Esito Fax",
+        "NEW_FAXQUEUE": "Nuova Coda Fax",
+        "NEW_FAXACCOUNT": "Nuovo Account Fax",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "ALL_TEAMS": "Tutti i Team",
+        "SELECTED_TEAMS": "Team selezionati"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/ja.json b/public/app/main/apps/fax/i18n/ja.json
new file mode 100644 (file)
index 0000000..1e27404
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "名",
+        "FAXQUEUES": "Fax キュー",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "AGENT_TIMEOUT_REQUIRED": "エージェントのタイムアウトが必要",
+            "MOTIONADDRESS_REQUIRED": "モーションのアドレスが必要です",
+            "MOTIONADDRESS_MUST_VALID_URL": "モーションアドレスが有効な形式で記述する必要があります",
+            "LOCALSTATIONID_REQUIRED": "ローカルステーションの識別子が必要です",
+            "MODEM_REQUIRED": "のモデムが必要です。",
+            "GATEWAY_REQUIRED": "は、ゲートウェイが必要です",
+            "FAXDETECT_REQUIRED": "ファクスを検出が必要です",
+            "T38TIMEOUT_REQUIRED": "T. 38 タイムアウトが必要",
+            "TIMEOUT_REQUIRED": "タイムアウトは必須です",
+            "HEADERINFO_REQUIRED": "は、ヘッダー情報が必要です"
+        },
+        "STRATEGY": "戦略",
+        "AGENT_TIMEOUT": "エージェントのタイムアウト",
+        "DESCRIPTION": "説明",
+        "ADD_FAXQUEUE": "Fax キューを追加します。",
+        "EDIT_FAXQUEUE": "編集 Fax キュー",
+        "DELETE_FAXQUEUE": "Fax キューを削除する",
+        "CREATED_AT": "で作成された",
+        "SAVE": "保存",
+        "SETTINGS": "の設定",
+        "GENERAL": "一般的な",
+        "FAXACCOUNTS": "ファックスアカウント",
+        "MOTIONADDRESS": "モーションのアドレス",
+        "ADD_FAXACCOUNT": "Fax アカウントを追加します",
+        "EDIT_FAXACCOUNT": "編集ファックスアカウント",
+        "DELETE_FAXACCOUNT": "ファックスアカウントの削除",
+        "DISPOSITIONS": "ディスポジション",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "アクション",
+        "LIST": "リスト",
+        "FIDELITY": "忠実性",
+        "ACCEPT": "受け入れる",
+        "ACCEPTMETHOD": "方法を受け入れる",
+        "ACCEPTURL": "URL を受け入れ",
+        "REJECT": "拒否",
+        "REJECTMETHOD": "拒否メソッド",
+        "REJECTURL": "拒否 URL",
+        "CLOSE": "閉じる",
+        "CLOSEMETHOD": "Close メソッド",
+        "CLOSEURL": "閉じる URL",
+        "TRUNK": "トランク",
+        "LOCALSTATIONID": "ローカル駅の識別子",
+        "HELP": {
+            "LOCALSTATIONID": "ローカルステーション ID (電話番号)します。",
+            "HEADERINFO": "発信ファックスヘッダー情報を表示します。",
+            "MODEM": "モデムのタイプ( v 17 / v 27 / v 29 ) 。",
+            "GATEWAY": "T. 38 Fax ゲートウェイは、オプションで秒 fax アクティビティタイムアウト ( はい / いいえ / [ タイムアウトなし ] ) 。",
+            "FAXDETECT": "ファックスオプションの秒単位でのタイムアウト検出をイネーブルにします ( はい / t 38 / CNG / [ タイムアウト ] はありません)。",
+            "T38TIMEOUT": "T. 38 ネゴシエーションに使用されるタイムアウトを設定します。 最小値は 1000 です。",
+            "ECM": "エラーが発生しました接続モード( ECM )します。",
+            "MINRATE": "最小の転送レートは、データを送信する前に設定されています。 指定可能な値は次のとおりです。 2400 、 4800 、 7200 、 9600 、 12000 、または 14400 です。",
+            "MAXRATE": "最大転送レートは、データを送信する前に設定されています。 指定可能な値は次のとおりです。 2400 、 4800 、 7200 、 9600 、 12000 、または 14400 です。"
+        },
+        "ADVANCED": "高度な",
+        "ECM": "ECM",
+        "MINRATE": "最小レート",
+        "MAXRATE": "最大レート",
+        "MODEM": "モデム",
+        "GATEWAY": "ゲートウェイ",
+        "FAXDETECT": "ファクスを検出",
+        "T38TIMEOUT": "T. 38 タイムアウト",
+        "SIP": "技術",
+        "HEADERINFO": "ヘッダ情報",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "BACK": "背面",
+        "FAX": "Fax",
+        "ID": "Id",
+        "TIMEOUT": "タイムアウト",
+        "FAXDISPOSITIONS": "Fax のディスポジション",
+        "NO_FAXDISPOSITION_AVAILABLE": "Fax のディスポジションを使用できません",
+        "NEW_FAXDISPOSITION": "新しいファックス処理",
+        "ADD_FAXDISPOSITION": "ファックスのディスポジションの追加 ]",
+        "EDIT_FAXDISPOSITION": "編集 Fax 処理",
+        "DELETE_FAXDISPOSITION": "Fax のディスポジションを削除",
+        "NEW_FAXQUEUE": "新しい FAX キュー",
+        "NEW_FAXACCOUNT": "新しい FAX アカウントを",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "ALL_TEAMS": "すべてのチーム",
+        "SELECTED_TEAMS": "選択したチーム"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/ko.json b/public/app/main/apps/fax/i18n/ko.json
new file mode 100644 (file)
index 0000000..4db2039
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "이름",
+        "FAXQUEUES": "팩스 대기열",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "AGENT_TIMEOUT_REQUIRED": "상담원은 제한 시간이 필요합니다.",
+            "MOTIONADDRESS_REQUIRED": "동작 주소가 필요합니다.",
+            "MOTIONADDRESS_MUST_VALID_URL": "동작 주소에 유효한 형식으로 작성되어 있어야 합니다",
+            "LOCALSTATIONID_REQUIRED": "지역 스테이션 Id 가 필요합니다.",
+            "MODEM_REQUIRED": "모뎀이 필요합니다.",
+            "GATEWAY_REQUIRED": "게이트웨이가 필요합니다.",
+            "FAXDETECT_REQUIRED": "팩스 감지 합니다.",
+            "T38TIMEOUT_REQUIRED": "T.38 제한은 필요",
+            "TIMEOUT_REQUIRED": "시간 제한이 필요합니다.",
+            "HEADERINFO_REQUIRED": "헤더 정보 필요"
+        },
+        "STRATEGY": "전략",
+        "AGENT_TIMEOUT": "상담원 시간 초과",
+        "DESCRIPTION": "설명",
+        "ADD_FAXQUEUE": "팩스 대기열에 추가",
+        "EDIT_FAXQUEUE": "팩스 편집 대기",
+        "DELETE_FAXQUEUE": "팩스 큐를 삭제합니다",
+        "CREATED_AT": "생성",
+        "SAVE": "저장",
+        "SETTINGS": "설정",
+        "GENERAL": "일반",
+        "FAXACCOUNTS": "팩스 계정",
+        "MOTIONADDRESS": "모션 주소",
+        "ADD_FAXACCOUNT": "팩스 계정 추가",
+        "EDIT_FAXACCOUNT": "팩스 계정 편집",
+        "DELETE_FAXACCOUNT": "팩스 계정 삭제",
+        "DISPOSITIONS": "의향",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "동작",
+        "LIST": "목록",
+        "FIDELITY": "정확도",
+        "ACCEPT": "수락",
+        "ACCEPTMETHOD": "승인 방법",
+        "ACCEPTURL": "Url 승인",
+        "REJECT": "거부",
+        "REJECTMETHOD": "거부 방법",
+        "REJECTURL": "Reject URL",
+        "CLOSE": "닫기",
+        "CLOSEMETHOD": "Close 메서드",
+        "CLOSEURL": "닫기 URL",
+        "TRUNK": "트렁크",
+        "LOCALSTATIONID": "지역 스테이션 식별자",
+        "HELP": {
+            "LOCALSTATIONID": "지역 스테이션 ID(전화번호).",
+            "HEADERINFO": "아웃바운드 팩스 헤더 정보가 있습니다.",
+            "MODEM": "모뎀 종류(v17/v27/v29).",
+            "GATEWAY": "T.38 팩스 게이트웨이, 초 옵션 팩스 작업 타임아웃(yes/[timeout] 없음).",
+            "FAXDETECT": "초 단위로 선택적인 시간 제한 팩스 감지할 수(예/t38/cng/[timeout]/No).",
+            "T38TIMEOUT": "T.38 협상을 하기 위해 사용되는 시간 종료. 최소 값은 1000.",
+            "ECM": "오류 연결 모드(ECM).",
+            "MINRATE": "최소 환승 전송 전에율을. 가능한 값은: 2400, 4800, 7200, 9600, 12000 또는 14400.",
+            "MAXRATE": "최대 전송 전송 전에율을. 가능한 값은: 2400, 4800, 7200, 9600, 12000 또는 14400."
+        },
+        "ADVANCED": "고급",
+        "ECM": "ECM",
+        "MINRATE": "최소 속도",
+        "MAXRATE": "최대 속도",
+        "MODEM": "모뎀",
+        "GATEWAY": "게이트웨이",
+        "FAXDETECT": "팩스 감지",
+        "T38TIMEOUT": "T.38 시간 초과",
+        "SIP": "기술",
+        "HEADERINFO": "헤더 정보",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "BACK": "후면",
+        "FAX": "팩스",
+        "ID": "Id",
+        "TIMEOUT": "시간 초과",
+        "FAXDISPOSITIONS": "팩스 의향",
+        "NO_FAXDISPOSITION_AVAILABLE": "사용 가능한 팩스 의향 없음",
+        "NEW_FAXDISPOSITION": "새 팩스 처리",
+        "ADD_FAXDISPOSITION": "팩스 처리 추가",
+        "EDIT_FAXDISPOSITION": "팩스 처리 편집",
+        "DELETE_FAXDISPOSITION": "팩스 처리 삭제",
+        "NEW_FAXQUEUE": "새 팩스 대기열",
+        "NEW_FAXACCOUNT": "새 팩스 계정",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "ALL_TEAMS": "모든 팀이",
+        "SELECTED_TEAMS": "선택한 팀에"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/nl.json b/public/app/main/apps/fax/i18n/nl.json
new file mode 100644 (file)
index 0000000..56aec75
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Naam",
+        "FAXQUEUES": "Faxwachtrijen",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "AGENT_TIMEOUT_REQUIRED": "De Agent Timeout is vereist",
+            "MOTIONADDRESS_REQUIRED": "De Motion Adres is vereist.",
+            "MOTIONADDRESS_MUST_VALID_URL": "De Motion adres moet worden geschreven in een geldige indeling",
+            "LOCALSTATIONID_REQUIRED": "Het lokale station-id is vereist",
+            "MODEM_REQUIRED": "De modem vereist.",
+            "GATEWAY_REQUIRED": "De gateway is vereist",
+            "FAXDETECT_REQUIRED": "De Fax detectie is vereist",
+            "T38TIMEOUT_REQUIRED": "Het T.38 Timeout is vereist",
+            "TIMEOUT_REQUIRED": "De timeout is vereist",
+            "HEADERINFO_REQUIRED": "De header info zijn vereist"
+        },
+        "STRATEGY": "Strategie",
+        "AGENT_TIMEOUT": "Time-out agent",
+        "DESCRIPTION": "Beschrijving",
+        "ADD_FAXQUEUE": "Voeg Fax wachtrij",
+        "EDIT_FAXQUEUE": "Edit Fax wachtrij",
+        "DELETE_FAXQUEUE": "Verwijder Fax wachtrij",
+        "CREATED_AT": "Gemaakt op",
+        "SAVE": "Opslaan",
+        "SETTINGS": "Instellingen",
+        "GENERAL": "Algemeen",
+        "FAXACCOUNTS": "Fax Accounts",
+        "MOTIONADDRESS": "Motion adres",
+        "ADD_FAXACCOUNT": "Voeg Fax Account",
+        "EDIT_FAXACCOUNT": "Edit Fax Account",
+        "DELETE_FAXACCOUNT": "Verwijder Fax Account",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acties",
+        "LIST": "Lijst",
+        "FIDELITY": "Hifi-geluid",
+        "ACCEPT": "Accepteren",
+        "ACCEPTMETHOD": "Accepteren methode",
+        "ACCEPTURL": "URL accepteren",
+        "REJECT": "Afwijzen",
+        "REJECTMETHOD": "Methode afwijzen",
+        "REJECTURL": "URL afwijzen",
+        "CLOSE": "Dicht",
+        "CLOSEMETHOD": "Sluit methode",
+        "CLOSEURL": "Sluit URL",
+        "TRUNK": "Transmissielijn",
+        "LOCALSTATIONID": "Lokaal station Identifier",
+        "HELP": {
+            "LOCALSTATIONID": "Lokaal station Identifier (telefoonnummer).",
+            "HEADERINFO": "Uitgaande fax header-informatie.",
+            "MODEM": "Type modem (V17/V27/V29).",
+            "GATEWAY": "T.38 Fax-gateway met optionele fax activiteit timeout in seconden (ja/nee/[out]).",
+            "FAXDETECT": "Fax inschakelen detectie met optionele timeout in seconden (ja/t38/CNG/[out]/NO).",
+            "T38TIMEOUT": "De time-out wordt gebruikt voor T.38 onderhandeling. De minimumwaarde is 1000.",
+            "ECM": "Fout Connection Mode (ECM).",
+            "MINRATE": "Min overdrachtssnelheid instellen voordat de versnellingsbak. Mogelijke waarden zijn: 2400, 4800, 7200, 9600, 12000 of 14400.",
+            "MAXRATE": "Maximale overdrachtsnelheid ingesteld voor verzending. Mogelijke waarden zijn: 2400, 4800, 7200, 9600, 12000 of 14400."
+        },
+        "ADVANCED": "Geavanceerd",
+        "ECM": "ECM",
+        "MINRATE": "Min tarief",
+        "MAXRATE": "Max. Prijs",
+        "MODEM": "Modem",
+        "GATEWAY": "Gateway",
+        "FAXDETECT": "Fax detectie",
+        "T38TIMEOUT": "T.38 Timeout",
+        "SIP": "Technologie",
+        "HEADERINFO": "Header Info",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "BACK": "Terug",
+        "FAX": "Fax",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "FAXDISPOSITIONS": "Fax dispositieven",
+        "NO_FAXDISPOSITION_AVAILABLE": "Geen Fax Dispositieven beschikbaar",
+        "NEW_FAXDISPOSITION": "Nieuwe fax dispositie",
+        "ADD_FAXDISPOSITION": "Voeg Fax dispositie",
+        "EDIT_FAXDISPOSITION": "Edit Fax dispositie",
+        "DELETE_FAXDISPOSITION": "Verwijder Fax dispositie",
+        "NEW_FAXQUEUE": "Nieuwe fax wachtrij",
+        "NEW_FAXACCOUNT": "Nieuwe fax Account",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "ALL_TEAMS": "Alle teams",
+        "SELECTED_TEAMS": "Geselecteerde teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/no.json b/public/app/main/apps/fax/i18n/no.json
new file mode 100644 (file)
index 0000000..b349fe6
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Navn",
+        "FAXQUEUES": "Faks køer",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten tidsavbrudd er nødvendig",
+            "MOTIONADDRESS_REQUIRED": "Bevegelsen adresse er påkrevd",
+            "MOTIONADDRESS_MUST_VALID_URL": "Bevegelsen adresse må være skrevet i et gyldig format",
+            "LOCALSTATIONID_REQUIRED": "Den lokale stasjonen identifikator er nødvendig",
+            "MODEM_REQUIRED": "Modemet er nødvendig",
+            "GATEWAY_REQUIRED": "Gatewayen er nødvendig",
+            "FAXDETECT_REQUIRED": "Det faks forekomst er nødvendig",
+            "T38TIMEOUT_REQUIRED": "T.38 Tidsavbrudd er nødvendig",
+            "TIMEOUT_REQUIRED": "Tidsavbruddet er nødvendig",
+            "HEADERINFO_REQUIRED": "Hodet Info er nødvendig"
+        },
+        "STRATEGY": "Strategi",
+        "AGENT_TIMEOUT": "Agent tidsavbrudd",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_FAXQUEUE": "Legg til faks kø",
+        "EDIT_FAXQUEUE": "Rediger faks kø",
+        "DELETE_FAXQUEUE": "Slette faks kø",
+        "CREATED_AT": "Opprettet i",
+        "SAVE": "Lagre",
+        "SETTINGS": "Innstillinger",
+        "GENERAL": "Generelt",
+        "FAXACCOUNTS": "Faks kontoer",
+        "MOTIONADDRESS": "Motion adresse",
+        "ADD_FAXACCOUNT": "Legg til faks konto",
+        "EDIT_FAXACCOUNT": "Rediger faks konto",
+        "DELETE_FAXACCOUNT": "Slette faks konto",
+        "DISPOSITIONS": "Disposisjoner",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Tiltak",
+        "LIST": "Liste",
+        "FIDELITY": "Fi",
+        "ACCEPT": "Godta",
+        "ACCEPTMETHOD": "Godta metode",
+        "ACCEPTURL": "Godta URL",
+        "REJECT": "Avvis",
+        "REJECTMETHOD": "Avvis metode",
+        "REJECTURL": "Avvis URL",
+        "CLOSE": "Lukk",
+        "CLOSEMETHOD": "Lukk metode",
+        "CLOSEURL": "Lukk URL",
+        "TRUNK": "Trunk",
+        "LOCALSTATIONID": "Lokal stasjon id",
+        "HELP": {
+            "LOCALSTATIONID": "Lokal stasjon identifikator (telefonnummer).",
+            "HEADERINFO": "Utgående Faks Header informasjon.",
+            "MODEM": "Modem Type (v17/V27/V29).",
+            "GATEWAY": "T.38 Faks Gateway, med valgfri faks aktiviteten tidsavbruddet i sekunder (ja/nei/[tidsavbrudd]).",
+            "FAXDETECT": "Aktiverer faks oppdage med valgfri tidsavbruddet i sekunder (ja/t38/cng/[tidsavbrudd]/ingen).",
+            "T38TIMEOUT": "Tidsavbrudd brukes for T.38 forhandling. Minimumsverdien er 1000.",
+            "ECM": "Feil Connection Mode (ECM).",
+            "MINRATE": "Minimum overføringshastighet satt før transmisjonen. Mulige verdier er: 2400, 4800, 7200, 9600, 12000 eller 14400.",
+            "MAXRATE": "Maksimal overføringshastighet satt før transmisjonen. Mulige verdier er: 2400, 4800, 7200, 9600, 12000 eller 14400."
+        },
+        "ADVANCED": "Avansert",
+        "ECM": "ECM",
+        "MINRATE": "Min. hastighet",
+        "MAXRATE": "Maks. hastighet",
+        "MODEM": "Modem",
+        "GATEWAY": "Gateway",
+        "FAXDETECT": "Faks oppdage",
+        "T38TIMEOUT": "T.38 tidsavbrudd",
+        "SIP": "Teknologi",
+        "HEADERINFO": "Hodet Info",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "BACK": "Tilbake",
+        "FAX": "Faks",
+        "ID": "Id",
+        "TIMEOUT": "Tidsavbrudd",
+        "FAXDISPOSITIONS": "Faks disposisjoner",
+        "NO_FAXDISPOSITION_AVAILABLE": "Ingen faks disposisjoner tilgjengelig",
+        "NEW_FAXDISPOSITION": "Ny faks disposisjon",
+        "ADD_FAXDISPOSITION": "Legg til faks disposisjon",
+        "EDIT_FAXDISPOSITION": "Rediger faks disposisjon",
+        "DELETE_FAXDISPOSITION": "Slette faks disposisjon",
+        "NEW_FAXQUEUE": "Ny faks kø",
+        "NEW_FAXACCOUNT": "Ny faks konto",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "ALL_TEAMS": "Alle grupper",
+        "SELECTED_TEAMS": "Valgte lag"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/pt-PT.json b/public/app/main/apps/fax/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..9640a47
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Nome",
+        "FAXQUEUES": "Filas de fax",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "AGENT_TIMEOUT_REQUIRED": "O Tempo Limite do Agente é necessária",
+            "MOTIONADDRESS_REQUIRED": "O Movimento de endereço é obrigatório",
+            "MOTIONADDRESS_MUST_VALID_URL": "A proposta Endereço deve ser escrito em um formato válido",
+            "LOCALSTATIONID_REQUIRED": "O identificador da estação local é necessária",
+            "MODEM_REQUIRED": "O modem é necessária",
+            "GATEWAY_REQUIRED": "O Gateway é necessário",
+            "FAXDETECT_REQUIRED": "O Fax é necessário detectar",
+            "T38TIMEOUT_REQUIRED": "O tempo limite de T.38 é necessária",
+            "TIMEOUT_REQUIRED": "O tempo limite é necessária",
+            "HEADERINFO_REQUIRED": "São necessárias informações da plataforma"
+        },
+        "STRATEGY": "Estratégia",
+        "AGENT_TIMEOUT": "Tempo Limite do Agente",
+        "DESCRIPTION": "Descrição",
+        "ADD_FAXQUEUE": "Adicionar fila de fax",
+        "EDIT_FAXQUEUE": "Editar Fila de Fax",
+        "DELETE_FAXQUEUE": "Excluir fila de fax",
+        "CREATED_AT": "Criado em",
+        "SAVE": "Salvar",
+        "SETTINGS": "Definições",
+        "GENERAL": "Geral",
+        "FAXACCOUNTS": "Contas de fax",
+        "MOTIONADDRESS": "Endereço de movimento",
+        "ADD_FAXACCOUNT": "Adicionar conta de fax",
+        "EDIT_FAXACCOUNT": "Editar conta de fax",
+        "DELETE_FAXACCOUNT": "Excluir da conta de fax",
+        "DISPOSITIONS": "Disposições",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acções",
+        "LIST": "Lista",
+        "FIDELITY": "Fidelidade",
+        "ACCEPT": "Aceitar",
+        "ACCEPTMETHOD": "Método de Aceitar",
+        "ACCEPTURL": "Aceitar URL",
+        "REJECT": "Rejeitar",
+        "REJECTMETHOD": "Método de rejeição",
+        "REJECTURL": "Rejeitar URL",
+        "CLOSE": "Fechar",
+        "CLOSEMETHOD": "Método de fechar",
+        "CLOSEURL": "Fechar URL",
+        "TRUNK": "Tronco",
+        "LOCALSTATIONID": "Identificador da estação local",
+        "HELP": {
+            "LOCALSTATIONID": "Identificador da estação local (número de telefone).",
+            "HEADERINFO": "Informações de Cabeçalho de Fax de saída.",
+            "MODEM": "Tipo de modem (V17/V27/V29).",
+            "GATEWAY": "Gateway de fax T.38, com atividade de fax opcional timeout em segundos (sim/não/[timeout]).",
+            "FAXDETECT": "Ativar fax detectar com opcional timeout em segundos (sim/t38/GNC/[timeout]/não).",
+            "T38TIMEOUT": "O tempo usado para T.38 negociação. O valor mínimo é 1000.",
+            "ECM": "O Modo de conexão de erro (ECM).",
+            "MINRATE": "Taxa de transferência mínima definida antes da transmissão. Os valores possíveis são: 2400, 4800, 7200, 9600, 12000 ou 14400.",
+            "MAXRATE": "Taxa de transferência máxima definida antes da transmissão. Os valores possíveis são: 2400, 4800, 7200, 9600, 12000 ou 14400."
+        },
+        "ADVANCED": "Avançado",
+        "ECM": "ECM",
+        "MINRATE": "Taxa mín",
+        "MAXRATE": "Taxa máx",
+        "MODEM": "Modem",
+        "GATEWAY": "Gateway",
+        "FAXDETECT": "Detecção de fax",
+        "T38TIMEOUT": "Tempo limite de T.38",
+        "SIP": "Tecnologia",
+        "HEADERINFO": "Informações do cabeçalho",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "BACK": "De volta",
+        "FAX": "Fax",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "FAXDISPOSITIONS": "Disposições de fax",
+        "NO_FAXDISPOSITION_AVAILABLE": "Disposições de Fax não disponível",
+        "NEW_FAXDISPOSITION": "Nova disposição de Fax",
+        "ADD_FAXDISPOSITION": "Adicionar fax Disposição",
+        "EDIT_FAXDISPOSITION": "Editar Fax Disposição",
+        "DELETE_FAXDISPOSITION": "Excluir fax Disposição",
+        "NEW_FAXQUEUE": "Nova fila de fax",
+        "NEW_FAXACCOUNT": "Nova conta de fax",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "ALL_TEAMS": "Todas as equipas",
+        "SELECTED_TEAMS": "Equipes selecionadas"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/ru.json b/public/app/main/apps/fax/i18n/ru.json
new file mode 100644 (file)
index 0000000..db0746f
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Имя",
+        "FAXQUEUES": "Факс очередей",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "AGENT_TIMEOUT_REQUIRED": "Оператор - тайм-аут требуется",
+            "MOTIONADDRESS_REQUIRED": "Движение адрес не требуется",
+            "MOTIONADDRESS_MUST_VALID_URL": "Движение адрес должен быть записан в действительный формат",
+            "LOCALSTATIONID_REQUIRED": "На локальной станции требуется идентификатор",
+            "MODEM_REQUIRED": "Модем не требуется",
+            "GATEWAY_REQUIRED": "Шлюз не требуется",
+            "FAXDETECT_REQUIRED": "На обнаружение факсов не требуется",
+            "T38TIMEOUT_REQUIRED": "T.38 Timeout не требуется",
+            "TIMEOUT_REQUIRED": "Тайм-аут не требуется",
+            "HEADERINFO_REQUIRED": "Жатка Info не требуется"
+        },
+        "STRATEGY": "Стратегия",
+        "AGENT_TIMEOUT": "Время ожидания оператора",
+        "DESCRIPTION": "Описание",
+        "ADD_FAXQUEUE": "Добавить очередь факсов",
+        "EDIT_FAXQUEUE": "Изменение номера факса в очереди",
+        "DELETE_FAXQUEUE": "Удалить очередь факсов",
+        "CREATED_AT": "Созданные в",
+        "SAVE": "Сохранить",
+        "SETTINGS": "Настройки",
+        "GENERAL": "Генеральной",
+        "FAXACCOUNTS": "Факс",
+        "MOTIONADDRESS": "Адрес движения",
+        "ADD_FAXACCOUNT": "Добавление учетной записи факса",
+        "EDIT_FAXACCOUNT": "Редактирование учетной записи факса",
+        "DELETE_FAXACCOUNT": "Удаление учетной записи факса",
+        "DISPOSITIONS": "Распоряжения",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Действия",
+        "LIST": "Список",
+        "FIDELITY": "Четкость",
+        "ACCEPT": "Согласиться с",
+        "ACCEPTMETHOD": "Принять метод",
+        "ACCEPTURL": "Согласиться с URL",
+        "REJECT": "Отклонить",
+        "REJECTMETHOD": "Отклонить метод",
+        "REJECTURL": "Отклонить URL",
+        "CLOSE": "Закрыть",
+        "CLOSEMETHOD": "Закройте метод",
+        "CLOSEURL": "Закрыть URL",
+        "TRUNK": "Сл",
+        "LOCALSTATIONID": "Местные идентификатором станции",
+        "HELP": {
+            "LOCALSTATIONID": "Местные идентификатором станции (номер телефона).",
+            "HEADERINFO": "Исходящий информации заголовка факса.",
+            "MODEM": "Типа модема (V17/V27/V29).",
+            "GATEWAY": "Факсы T.38 шлюза, с дополнительным факс активность время ожидания в секундах (да/нет/[timeout]).",
+            "FAXDETECT": "Включить обнаружение факсов с помощью дополнительного времени ожидания в секундах (да/t38/СПГ/[timeout]/нет).",
+            "T38TIMEOUT": "Время ожидания используется для T.38 переговоров. Минимальное значение - 1000.",
+            "ECM": "Ошибка связи режим (ECM).",
+            "MINRATE": "Минимальная скорость передачи данных до установки трансмиссии. Возможные значения: 2400, 4800, 7200, 9600, 12000 или 14400.",
+            "MAXRATE": "Максимальная скорость передачи до установки трансмиссии. Возможные значения: 2400, 4800, 7200, 9600, 12000 или 14400."
+        },
+        "ADVANCED": "Расширенные возможности",
+        "ECM": "ECM",
+        "MINRATE": "Мин скорость",
+        "MAXRATE": "Макс. скорость",
+        "MODEM": "Модем",
+        "GATEWAY": "Шлюз",
+        "FAXDETECT": "Обнаружение факсов",
+        "T38TIMEOUT": "T.38 Тайм-аут",
+        "SIP": "Технологии",
+        "HEADERINFO": "Информация заголовка",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "BACK": "Назад",
+        "FAX": "Факс",
+        "ID": "Id",
+        "TIMEOUT": "Превышение лимита времени",
+        "FAXDISPOSITIONS": "Распоряжения факса",
+        "NO_FAXDISPOSITION_AVAILABLE": "Факс не распоряжения имеющихся",
+        "NEW_FAXDISPOSITION": "Новый факс распоряжения",
+        "ADD_FAXDISPOSITION": "Добавление номера факса распоряжения",
+        "EDIT_FAXDISPOSITION": "Редактирование результата факса",
+        "DELETE_FAXDISPOSITION": "Удаление номера факса распоряжения",
+        "NEW_FAXQUEUE": "Новый факс очереди",
+        "NEW_FAXACCOUNT": "Новый факс счета",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "ALL_TEAMS": "Все группы",
+        "SELECTED_TEAMS": "Выбранные группы"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/sv.json b/public/app/main/apps/fax/i18n/sv.json
new file mode 100644 (file)
index 0000000..b9f8291
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Namn",
+        "FAXQUEUES": "Fax köer",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten Timeout krävs",
+            "MOTIONADDRESS_REQUIRED": "Motion adress krävs",
+            "MOTIONADDRESS_MUST_VALID_URL": "Rörelsen måste vara skrivna på ett giltigt format",
+            "LOCALSTATIONID_REQUIRED": "Den lokala stationen id krävs",
+            "MODEM_REQUIRED": "Modemet är obligatoriskt",
+            "GATEWAY_REQUIRED": "Gateway krävs",
+            "FAXDETECT_REQUIRED": "Faxen upptäcka krävs",
+            "T38TIMEOUT_REQUIRED": "T.38-timeout är obligatoriskt",
+            "TIMEOUT_REQUIRED": "Väntetiden är obligatoriskt",
+            "HEADERINFO_REQUIRED": "Skärbordets Info krävs"
+        },
+        "STRATEGY": "Strategi",
+        "AGENT_TIMEOUT": "Tidsgräns för agent",
+        "DESCRIPTION": "Beskrivning",
+        "ADD_FAXQUEUE": "Lägg till Faxkön",
+        "EDIT_FAXQUEUE": "Redigera Faxkön",
+        "DELETE_FAXQUEUE": "Ta bort Fax kö",
+        "CREATED_AT": "Skapad",
+        "SAVE": "Spara",
+        "SETTINGS": "Inställningar",
+        "GENERAL": "Allmänt",
+        "FAXACCOUNTS": "Fax konton",
+        "MOTIONADDRESS": "Motion adress",
+        "ADD_FAXACCOUNT": "Fax konto",
+        "EDIT_FAXACCOUNT": "Redigera Faxkontot",
+        "DELETE_FAXACCOUNT": "Ta bort Fax konto",
+        "DISPOSITIONS": "Dispositioner",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Åtgärder",
+        "LIST": "Lista",
+        "FIDELITY": "Fidelity",
+        "ACCEPT": "Godta",
+        "ACCEPTMETHOD": "Acceptera metod",
+        "ACCEPTURL": "Acceptera URL",
+        "REJECT": "Avvisa",
+        "REJECTMETHOD": "Förkasta metoden",
+        "REJECTURL": "Avvisa URL",
+        "CLOSE": "Stäng",
+        "CLOSEMETHOD": "Stäng metod",
+        "CLOSEURL": "Stäng URL",
+        "TRUNK": "Segmentgrupp",
+        "LOCALSTATIONID": "En lokal Station ID",
+        "HELP": {
+            "LOCALSTATIONID": "En lokal Station ID (telefonnummer).",
+            "HEADERINFO": "Utgående faxrubrik.",
+            "MODEM": "Modem (v17/V27/V29).",
+            "GATEWAY": "T.38 Fax Gateway, med valfria faxaktivitet timeout i sekunder (ja/nej/[Paus]).",
+            "FAXDETECT": "Aktivera fax avkänning med valfri timeout i sekunder (ja/t38/cng/[Paus]/nr).",
+            "T38TIMEOUT": "Timeout för T.38-förhandling. Minsta värde är 1000.",
+            "ECM": "Fel Connection Mode (ECM).",
+            "MINRATE": "Minsta överföringshastighet som före överföringen. Möjliga värden är: 2400, 4800, 7200, 9600, 12000 eller 14400.",
+            "MAXRATE": "Maximal överföringshastighet som före överföringen. Möjliga värden är: 2400, 4800, 7200, 9600, 12000 eller 14400."
+        },
+        "ADVANCED": "Avancerade",
+        "ECM": "ECM",
+        "MINRATE": "Min kurs",
+        "MAXRATE": "Max hastighet",
+        "MODEM": "Modem",
+        "GATEWAY": "Gateway",
+        "FAXDETECT": "Fax avkänning",
+        "T38TIMEOUT": "T.38-Timeout",
+        "SIP": "Teknik",
+        "HEADERINFO": "Sidhuvudet Info",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "BACK": "Tillbaka",
+        "FAX": "Fax",
+        "ID": "Id",
+        "TIMEOUT": "Tidsgräns",
+        "FAXDISPOSITIONS": "Fax dispositioner",
+        "NO_FAXDISPOSITION_AVAILABLE": "Inga Fax dispositioner tillgängliga",
+        "NEW_FAXDISPOSITION": "Nytt Fax Disposition",
+        "ADD_FAXDISPOSITION": "Fax Disposition",
+        "EDIT_FAXDISPOSITION": "Redigera Fax Disposition",
+        "DELETE_FAXDISPOSITION": "Ta bort Fax Disposition",
+        "NEW_FAXQUEUE": "Nytt Fax kö",
+        "NEW_FAXACCOUNT": "Nytt Fax-konto",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "ALL_TEAMS": "Alla grupper",
+        "SELECTED_TEAMS": "Valda grupper"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/tr.json b/public/app/main/apps/fax/i18n/tr.json
new file mode 100644 (file)
index 0000000..ff9192f
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "Adı",
+        "FAXQUEUES": "Faks Kuyrukları",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "AGENT_TIMEOUT_REQUIRED": "Ajan zaman gerekiyor.",
+            "MOTIONADDRESS_REQUIRED": "Hareket adresi gerekli",
+            "MOTIONADDRESS_MUST_VALID_URL": "Hareket adres yazılmış olması gerekir. geçerli bir format",
+            "LOCALSTATIONID_REQUIRED": "Yerel istasyonu kimliği gerekiyor",
+            "MODEM_REQUIRED": "Modem gerekiyor.",
+            "GATEWAY_REQUIRED": "Ağ Geçidi gereklidir",
+            "FAXDETECT_REQUIRED": "Faks Algılama gereklidir",
+            "T38TIMEOUT_REQUIRED": "T.38 Zaman Aşımı gerekiyor.",
+            "TIMEOUT_REQUIRED": "Zaman Aşımı gerekiyor.",
+            "HEADERINFO_REQUIRED": "Takım Bilgisi gereklidir."
+        },
+        "STRATEGY": "Strateji",
+        "AGENT_TIMEOUT": "Ajan Zaman Aşımı",
+        "DESCRIPTION": "Açıklama",
+        "ADD_FAXQUEUE": "Add Faks Kuyruğu",
+        "EDIT_FAXQUEUE": "Edit Faks Kuyruğu",
+        "DELETE_FAXQUEUE": "Delete Faks Kuyruğu",
+        "CREATED_AT": "Oluşturulmuş",
+        "SAVE": "Kaydet",
+        "SETTINGS": "Ayarlar",
+        "GENERAL": "Genel",
+        "FAXACCOUNTS": "Faks Hesapları",
+        "MOTIONADDRESS": "Hareket Adres",
+        "ADD_FAXACCOUNT": "Add Faks Hesap",
+        "EDIT_FAXACCOUNT": "Edit Faks Hesap",
+        "DELETE_FAXACCOUNT": "Delete Faks Hesap",
+        "DISPOSITIONS": "Işlenir",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Eylemler",
+        "LIST": "Listesi",
+        "FIDELITY": "Doğruluğu",
+        "ACCEPT": "Kabul Ediyorum",
+        "ACCEPTMETHOD": "Kabul Yöntemi",
+        "ACCEPTURL": "URL kabul edin",
+        "REJECT": "Reddetme",
+        "REJECTMETHOD": "Reddetme Yöntemi",
+        "REJECTURL": "Ret URL",
+        "CLOSE": "Close",
+        "CLOSEMETHOD": "Close Metodu",
+        "CLOSEURL": "Close URL",
+        "TRUNK": "Santral",
+        "LOCALSTATIONID": "Yerel Istasyonu Kimliği",
+        "HELP": {
+            "LOCALSTATIONID": "Yerel Istasyonu Tanımlayıcısı (telefon numarası).",
+            "HEADERINFO": "Giden Faks Başlığı bilgi.",
+            "MODEM": "Modem Tipi (v17/V27/V29).",
+            "GATEWAY": "T.38 Fax Gateway, isteğe bağlı faks etkinlik zaman aşımı saniye (evet/hayır/[zaman aşımı]).",
+            "FAXDETECT": "Enable Faks Algılama ile isteğe bağlı olarak zaman aşımı saniye (evet/t38/doğal gaz/[zaman aşımı]/yok).",
+            "T38TIMEOUT": "Zaman aşımı için T.38 müzakere. Minimum değer 1000.",
+            "ECM": "Hata Bağlantı Modu (ECM).",
+            "MINRATE": "Minimum aktarım hızı ayarlama önce. Olası değerler: 2400, 4800, 7200, 9600, 12000 veya 14400.",
+            "MAXRATE": "Maksimum aktarım hızı önce güç aktarıcı. Olası değerler: 2400, 4800, 7200, 9600, 12000 veya 14400."
+        },
+        "ADVANCED": "Gelişmiş",
+        "ECM": "ECM",
+        "MINRATE": "Dak Hızı",
+        "MAXRATE": "Maks. Hızı",
+        "MODEM": "Modem",
+        "GATEWAY": "Ağ Geçidi",
+        "FAXDETECT": "Faks Algılama",
+        "T38TIMEOUT": "T.38 Zaman Aşımı",
+        "SIP": "Teknoloji",
+        "HEADERINFO": "Takım Bilgileri",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "BACK": "Geri",
+        "FAX": "Faks",
+        "ID": "Id",
+        "TIMEOUT": "Zaman Aşımı",
+        "FAXDISPOSITIONS": "Faks işlenir",
+        "NO_FAXDISPOSITION_AVAILABLE": "Faks Resmi Senedin kullanılabilir",
+        "NEW_FAXDISPOSITION": "Yeni Faks Nizam",
+        "ADD_FAXDISPOSITION": "Add Faks Nizam",
+        "EDIT_FAXDISPOSITION": "Edit Faks Nizam",
+        "DELETE_FAXDISPOSITION": "Delete Faks Nizam",
+        "NEW_FAXQUEUE": "Yeni Faks Kuyruğu",
+        "NEW_FAXACCOUNT": "Yeni Faks Hesap",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "ALL_TEAMS": "Tüm takımlar",
+        "SELECTED_TEAMS": "Seçilen Ekipleri"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/zh-CN.json b/public/app/main/apps/fax/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..a1c3ba7
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "名称",
+        "FAXQUEUES": "传真队列。",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "AGENT_TIMEOUT_REQUIRED": "代理超时是必需的",
+            "MOTIONADDRESS_REQUIRED": "该议案的地址是必填项",
+            "MOTIONADDRESS_MUST_VALID_URL": "该议案的地址必须是书面的格式无效",
+            "LOCALSTATIONID_REQUIRED": "本地站点标识符是必需的",
+            "MODEM_REQUIRED": "调制解调器是必需的",
+            "GATEWAY_REQUIRED": "网关是必需的",
+            "FAXDETECT_REQUIRED": "传真检测是必需的",
+            "T38TIMEOUT_REQUIRED": "“T38 超时是必需的",
+            "TIMEOUT_REQUIRED": "超时是必需的",
+            "HEADERINFO_REQUIRED": "标题信息是必需的"
+        },
+        "STRATEGY": "战略",
+        "AGENT_TIMEOUT": "代理超时",
+        "DESCRIPTION": "描述",
+        "ADD_FAXQUEUE": "添加队列中的传真",
+        "EDIT_FAXQUEUE": "编辑传真队列",
+        "DELETE_FAXQUEUE": "删除队列中的传真",
+        "CREATED_AT": "创建在",
+        "SAVE": "保存",
+        "SETTINGS": "设置",
+        "GENERAL": "总的",
+        "FAXACCOUNTS": "传真帐户",
+        "MOTIONADDRESS": "移动地址",
+        "ADD_FAXACCOUNT": "添加传真帐户",
+        "EDIT_FAXACCOUNT": "编辑传真帐户",
+        "DELETE_FAXACCOUNT": "删除传真帐户",
+        "DISPOSITIONS": "资产处置",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "采取的行动",
+        "LIST": "列表",
+        "FIDELITY": "保真度",
+        "ACCEPT": "接受",
+        "ACCEPTMETHOD": "接受的方法。",
+        "ACCEPTURL": "接受的 URL。",
+        "REJECT": "拒绝",
+        "REJECTMETHOD": "拒绝方法。",
+        "REJECTURL": "拒绝 URL。",
+        "CLOSE": "关闭",
+        "CLOSEMETHOD": "关闭方法。",
+        "CLOSEURL": "关闭 URL。",
+        "TRUNK": "中继线",
+        "LOCALSTATIONID": "本地站点标识符",
+        "HELP": {
+            "LOCALSTATIONID": "本地站点标识符(电话号码)。",
+            "HEADERINFO": "出站的传真标题信息。",
+            "MODEM": "调制解调器的类型(v17/v27/v29)。",
+            "GATEWAY": "T38 传真网关、带有可选的传真活动超时(以秒为单位)(yes no// [超时]。",
+            "FAXDETECT": "启用传真检测到带有可选的超时时间以秒为单位(是/t38/cng/ [超时]/没有)。",
+            "T38TIMEOUT": "超时用于 T38 的谈判。 最小值为 1000。",
+            "ECM": "错误的连接模式(ECM)。",
+            "MINRATE": "最小传输率之前设置的变速箱。 可能的值为: 2400、4800、7200、9600、12000 或 14400。",
+            "MAXRATE": "最大传输率之前设置的变速箱。 可能的值为: 2400、4800、7200、9600、12000 或 14400。"
+        },
+        "ADVANCED": "高级",
+        "ECM": "ECM",
+        "MINRATE": "最小速率",
+        "MAXRATE": "最大速率",
+        "MODEM": "调制解调器",
+        "GATEWAY": "网关",
+        "FAXDETECT": "传真检测",
+        "T38TIMEOUT": "T38 超时",
+        "SIP": "技术",
+        "HEADERINFO": "标题信息",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "BACK": "返回",
+        "FAX": "传真",
+        "ID": "Id",
+        "TIMEOUT": "超时",
+        "FAXDISPOSITIONS": "传真的处置",
+        "NO_FAXDISPOSITION_AVAILABLE": "没有传真弃置的可用",
+        "NEW_FAXDISPOSITION": "新的传真处理",
+        "ADD_FAXDISPOSITION": "添加传真的处理",
+        "EDIT_FAXDISPOSITION": "编辑传真处理",
+        "DELETE_FAXDISPOSITION": "删除传真处理",
+        "NEW_FAXQUEUE": "新的传真队列中",
+        "NEW_FAXACCOUNT": "新的传真帐户",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "ALL_TEAMS": "所有的团队",
+        "SELECTED_TEAMS": "选定的组"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/fax/i18n/zh-TW.json b/public/app/main/apps/fax/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..fe46b76
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "FAX": {
+        "NAME": "名稱",
+        "FAXQUEUES": "傳真佇列",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "AGENT_TIMEOUT_REQUIRED": "「值機人員逾時為必填欄位",
+            "MOTIONADDRESS_REQUIRED": "動態地址為必填欄位",
+            "MOTIONADDRESS_MUST_VALID_URL": "動態位址必須以有效的格式",
+            "LOCALSTATIONID_REQUIRED": "本機站台識別碼為必填欄位",
+            "MODEM_REQUIRED": "數據機為必填欄位",
+            "GATEWAY_REQUIRED": "「閘道」是必填欄位",
+            "FAXDETECT_REQUIRED": "傳真偵測為必填欄位",
+            "T38TIMEOUT_REQUIRED": "「 T 建置逾時為必填欄位",
+            "TIMEOUT_REQUIRED": "逾時時間為必要資訊",
+            "HEADERINFO_REQUIRED": "標題的資訊都是必填欄位"
+        },
+        "STRATEGY": "策略",
+        "AGENT_TIMEOUT": "值機人員等候逾時",
+        "DESCRIPTION": "說明",
+        "ADD_FAXQUEUE": "新增傳真佇列",
+        "EDIT_FAXQUEUE": "編輯傳真佇列",
+        "DELETE_FAXQUEUE": "刪除傳真佇列",
+        "CREATED_AT": "建立在",
+        "SAVE": "儲存",
+        "SETTINGS": "設定",
+        "GENERAL": "通用",
+        "FAXACCOUNTS": "傳真帳戶",
+        "MOTIONADDRESS": "動態位址",
+        "ADD_FAXACCOUNT": "新增傳真帳號",
+        "EDIT_FAXACCOUNT": "編輯傳真帳號",
+        "DELETE_FAXACCOUNT": "刪除傳真帳號",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "動作",
+        "LIST": "清單",
+        "FIDELITY": "準確性",
+        "ACCEPT": "接受",
+        "ACCEPTMETHOD": "接受方法",
+        "ACCEPTURL": "接受 URL",
+        "REJECT": "拒絕",
+        "REJECTMETHOD": "排除方法",
+        "REJECTURL": "拒絕 URL",
+        "CLOSE": "關閉",
+        "CLOSEMETHOD": "關閉方法",
+        "CLOSEURL": "關閉 URL",
+        "TRUNK": "中繼線",
+        "LOCALSTATIONID": "本機站台識別碼",
+        "HELP": {
+            "LOCALSTATIONID": "本機站台識別碼 ( 電話號碼 ) 。",
+            "HEADERINFO": "外傳傳真標頭的資訊。",
+            "MODEM": "數據機類型 ( v 17 / v 27 / v perskg29 ) 。",
+            "GATEWAY": "T 傳真建置閘道器、選購傳真活動逾時 ( 以秒為單位 ( 是 / 否 / [ 逾時 ] ) 。",
+            "FAXDETECT": "啟用傳真偵測 ( 含選購逾時 ( 以秒為單位 ( 是 / Tintel(r) / cng / [ 逾時 ] / 無 ) 。",
+            "T38TIMEOUT": "逾時時間用於 T 。必須保持協調。 最小值為 1000 。",
+            "ECM": "錯誤連線模式 ( ECM ) 。",
+            "MINRATE": "最低傳輸速率設定再進行傳輸。 可能的值為 : 2400 、 4800 、 7200 、 9600 、 12000 或 14400 。",
+            "MAXRATE": "最大傳輸速率設定再進行傳輸。 可能的值為 : 2400 、 4800 、 7200 、 9600 、 12000 或 14400 。"
+        },
+        "ADVANCED": "進階",
+        "ECM": "企業內容管理",
+        "MINRATE": "分率",
+        "MAXRATE": "最大速率",
+        "MODEM": "數據機",
+        "GATEWAY": "閘道",
+        "FAXDETECT": "偵測到傳真",
+        "T38TIMEOUT": "8 建置逾時",
+        "SIP": "技術",
+        "HEADERINFO": "標頭資訊",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "BACK": "備份",
+        "FAX": "傳真",
+        "ID": "Id",
+        "TIMEOUT": "逾時",
+        "FAXDISPOSITIONS": "傳真 Dispositions",
+        "NO_FAXDISPOSITION_AVAILABLE": "無傳真 Dispositions 可用性",
+        "NEW_FAXDISPOSITION": "新的傳真配置",
+        "ADD_FAXDISPOSITION": "新增傳真配置",
+        "EDIT_FAXDISPOSITION": "編輯傳真配置",
+        "DELETE_FAXDISPOSITION": "刪除傳真配置",
+        "NEW_FAXQUEUE": "新的傳真佇列",
+        "NEW_FAXACCOUNT": "新的傳真帳號",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "ALL_TEAMS": "所有群組",
+        "SELECTED_TEAMS": "選取群組"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/da.json b/public/app/main/apps/help/i18n/da.json
new file mode 100644 (file)
index 0000000..c5bece0
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "Om",
+        "USEFUL_LINKS": "Nyttige links",
+        "CONTACT_US": "Kontakt os",
+        "HELP": "Hjælp"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/de.json b/public/app/main/apps/help/i18n/de.json
new file mode 100644 (file)
index 0000000..2149bb4
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "Über",
+        "USEFUL_LINKS": "Nützliche Links",
+        "CONTACT_US": "Kontaktieren Sie uns",
+        "HELP": "Hilfe"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/en.json b/public/app/main/apps/help/i18n/en.json
new file mode 100644 (file)
index 0000000..9e8dcea
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "HELP": "Help",
+        "ABOUT": "About",
+        "USEFUL_LINKS": "Useful links",
+        "CONTACT_US": "Contact us"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/es.json b/public/app/main/apps/help/i18n/es.json
new file mode 100644 (file)
index 0000000..9e879db
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "Acerca de",
+        "USEFUL_LINKS": "Enlaces útiles",
+        "CONTACT_US": "Contáctenos",
+        "HELP": "Ayuda"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/fa.json b/public/app/main/apps/help/i18n/fa.json
new file mode 100644 (file)
index 0000000..76590ff
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "در حدود",
+        "USEFUL_LINKS": "لینک های مفید",
+        "CONTACT_US": "تماس با ما",
+        "HELP": "کمک کند"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/fi.json b/public/app/main/apps/help/i18n/fi.json
new file mode 100644 (file)
index 0000000..413f208
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "Lisätietoja",
+        "USEFUL_LINKS": "Hyödyllisiä linkkejä",
+        "CONTACT_US": "Ota yhteyttä",
+        "HELP": "Ohje"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/fr.json b/public/app/main/apps/help/i18n/fr.json
new file mode 100644 (file)
index 0000000..7a393d9
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "À propos de",
+        "USEFUL_LINKS": "Liens utiles",
+        "CONTACT_US": "Contactez-nous",
+        "HELP": "Aider"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/hi.json b/public/app/main/apps/help/i18n/hi.json
new file mode 100644 (file)
index 0000000..ec5266e
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "के बारे में",
+        "USEFUL_LINKS": "उपयोगी संपर्क",
+        "CONTACT_US": "संपर्क",
+        "HELP": "मदद"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/it.json b/public/app/main/apps/help/i18n/it.json
new file mode 100644 (file)
index 0000000..1db669d
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "HELP": "Help",
+        "ABOUT": "About",
+        "USEFUL_LINKS": "Links utili",
+        "CONTACT_US": "Contattaci"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/ja.json b/public/app/main/apps/help/i18n/ja.json
new file mode 100644 (file)
index 0000000..e5ac9aa
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "について",
+        "USEFUL_LINKS": "便利なリンク",
+        "CONTACT_US": "お問い合わせ",
+        "HELP": "ヘルプ"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/ko.json b/public/app/main/apps/help/i18n/ko.json
new file mode 100644 (file)
index 0000000..3a54a34
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "정보",
+        "USEFUL_LINKS": "유용한 링크",
+        "CONTACT_US": "문의처",
+        "HELP": "도움말"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/nl.json b/public/app/main/apps/help/i18n/nl.json
new file mode 100644 (file)
index 0000000..8bacb57
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "Over",
+        "USEFUL_LINKS": "Nuttige links",
+        "CONTACT_US": "Neem contact met ons op",
+        "HELP": "Help"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/no.json b/public/app/main/apps/help/i18n/no.json
new file mode 100644 (file)
index 0000000..ba75101
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "Om",
+        "USEFUL_LINKS": "Nyttige koblinger",
+        "CONTACT_US": "Kontakt oss",
+        "HELP": "Hjelp"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/pt-PT.json b/public/app/main/apps/help/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..676f8a3
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "Sobre",
+        "USEFUL_LINKS": "Links úteis",
+        "CONTACT_US": "Entre em contato conosco",
+        "HELP": "Ajudar"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/ru.json b/public/app/main/apps/help/i18n/ru.json
new file mode 100644 (file)
index 0000000..db46617
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "О",
+        "USEFUL_LINKS": "Полезные ссылки",
+        "CONTACT_US": "Свяжитесь с нами",
+        "HELP": "Справка"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/sv.json b/public/app/main/apps/help/i18n/sv.json
new file mode 100644 (file)
index 0000000..2064a7d
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "Om",
+        "USEFUL_LINKS": "Användbara länkar",
+        "CONTACT_US": "Kontakta oss",
+        "HELP": "Hjälp"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/tr.json b/public/app/main/apps/help/i18n/tr.json
new file mode 100644 (file)
index 0000000..dfd6cd6
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "Yaklaşık",
+        "USEFUL_LINKS": "Faydalı bağlantılar",
+        "CONTACT_US": "Bize Başvurun",
+        "HELP": "Yardım"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/zh-CN.json b/public/app/main/apps/help/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..d308a42
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "关于",
+        "USEFUL_LINKS": "有用的链接",
+        "CONTACT_US": "联系我们",
+        "HELP": "帮助"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/help/i18n/zh-TW.json b/public/app/main/apps/help/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..12d0ae2
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "HELP": {
+        "ABOUT": "關於",
+        "USEFUL_LINKS": "有用連結",
+        "CONTACT_US": "與我們連絡",
+        "HELP": "協助"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/da.json b/public/app/main/apps/integrations/i18n/da.json
new file mode 100644 (file)
index 0000000..9d75f0b
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Integrationer",
+        "ZENDESKACCOUNTS": "Zendesk konti",
+        "ID": "Id",
+        "NAME": "Navnet",
+        "USERNAME": "Brugernavn",
+        "URI": "URI",
+        "BACK": "Tilbage",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "EDIT_ZENDESKACCOUNT": "Zendesk Rediger konto",
+        "DELETE_ZENDESKACCOUNT": "Zendesk slet konto",
+        "NEW_ZENDESKACCOUNT": "Zendesk ny konto",
+        "AUTHTYPE": "Godkendelsestype",
+        "PASSWORD": "Password",
+        "CONFIRM_PASSWORD": "Bekræft adgangskode",
+        "TOKEN": "Token",
+        "MOTIONPROXYADDRESS": "Motion eller Proxy IP-adresse",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_ZENDESKACCOUNT": "Zendesk Tilføj konto",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "USERNAME_REQUIRED": "Brugernavn er påkrævet",
+            "URI_REQUIRED": "URI er påkrævet",
+            "URI_MUST_VALID_URL": "URI skal være skrevet i et gyldigt format",
+            "PASSWORD_REQUIRED": "Adgangskoden kræves",
+            "CONFIRM_NOT_MATCH": "Adgangskoderne don' t match",
+            "TOKEN_REQUIRED": "Dette token er påkrævet",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "Adressen skal være skrevet i et gyldigt format",
+            "CLIENTID_REQUIRED": "Klient-ID er påkrævet",
+            "CLIENTSECRET_REQUIRED": "Kunden hemmeligheden er påkrævet",
+            "SECURITYTOKEN_REQUIRED": "Det Security token er påkrævet",
+            "APIKEY_REQUIRED": "API-nøgle kræves",
+            "CONTENT_REQUIRED": "Indholdet kræves",
+            "VARIABLENAME_REQUIRED": "Variablen er nødvendig",
+            "KEY_REQUIRED": "Den nøgle er påkrævet",
+            "TYPE_REQUIRED": "Den Type skal angives",
+            "VALUE_REQUIRED": "Værdien er nødvendig",
+            "FIELD_REQUIRED": "Feltet er påkrævet"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Motion (Proxy) Adresse: det er obligatorisk, hvis du vil udfylde sedlen med optagelsen URL. Indtast i følgende format: <protokol> : //<ipaddress>[:<port>]. Eksempel: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Konto",
+        "ZENDESKCONFIGURATIONS": "Zendesk konfigurationer",
+        "SALESFORCECONFIGURATIONS": "Salesforce konfigurationer",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM konfigurationer",
+        "FRESHDESKCONFIGURATIONS": "Freshdesk konfigurationer",
+        "GENERAL": "Generel",
+        "CREATED_AT": "Oprettet på",
+        "SAVE": "Gem",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Ingen Zendesk konfigurationer",
+        "NEW_ZENDESKCONFIGURATION": "Zendesk ny konfiguration",
+        "ADD_ZENDESKCONFIGURATION": "Tilføj Zendesk konfiguration",
+        "EDIT_ZENDESKCONFIGURATION": "Zendesk rediger konfiguration",
+        "DELETE_ZENDESKCONFIGURATION": "Zendesk slet konfiguration",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "Ingen mulighed for konfigurationer med Salesforce",
+        "NEW_SALESFORCECONFIGURATION": "Nyt Salesforce konfiguration",
+        "ADD_SALESFORCECONFIGURATION": "Tilføj Salesforce konfiguration",
+        "EDIT_SALESFORCECONFIGURATION": "Rediger konfiguration Salesforce",
+        "DELETE_SALESFORCECONFIGURATION": "Slet Salesforce konfiguration",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "Ingen SugarCRM konfigurationer",
+        "NEW_SUGARCRMCONFIGURATION": "Nyt SugarCRM Konfiguration",
+        "ADD_SUGARCRMCONFIGURATION": "Tilføj SugarCRM Konfiguration",
+        "EDIT_SUGARCRMCONFIGURATION": "SugarCRM Rediger konfiguration",
+        "DELETE_SUGARCRMCONFIGURATION": "Slet SugarCRM Konfiguration",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "Ingen Freshdesk konfigurationer",
+        "NEW_FRESHDESKCONFIGURATION": "Nye Freshdesk konfiguration",
+        "ADD_FRESHDESKCONFIGURATION": "Tilføj Freshdesk konfiguration",
+        "EDIT_FRESHDESKCONFIGURATION": "Rediger konfiguration Freshdesk",
+        "DELETE_FRESHDESKCONFIGURATION": "Slet Freshdesk konfiguration",
+        "SALESFORCEACCOUNTS": "Salesforce konti",
+        "EDIT_SALESFORCEACCOUNT": "Rediger Salesforce højde",
+        "DELETE_SALESFORCEACCOUNT": "Slet Konto Salesforce",
+        "NEW_SALESFORCEACCOUNT": "Nyt Salesforce højde",
+        "ADD_SALESFORCEACCOUNT": "Tilføj Salesforce højde",
+        "CLIENTID": "Klient-ID",
+        "CLIENTSECRET": "Klient Secret",
+        "SECURITYTOKEN": "Security token",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "APIKEY": "Api Key",
+        "FRESHDESKACCOUNTS": "Freshdesk konti",
+        "EDIT_FRESHDESKACCOUNT": "Rediger Freshdesk konto",
+        "DELETE_FRESHDESKACCOUNT": "Slet Konto Freshdesk",
+        "NEW_FRESHDESKACCOUNT": "Nye Freshdesk konto",
+        "ADD_FRESHDESKACCOUNT": "Tilføj Freshdesk konto",
+        "SUGARCRMACCOUNTS": "SugarCRM konti",
+        "EDIT_SUGARCRMACCOUNT": "Rediger SugarCRM Konto",
+        "DELETE_SUGARCRMACCOUNT": "SugarCRM slet konto",
+        "NEW_SUGARCRMACCOUNT": "Nyt SugarCRM Konto",
+        "ADD_SUGARCRMACCOUNT": "SugarCRM Tilføj konto",
+        "CONFIGURATIONS": "Konfigurationer",
+        "NO_CONFIGURATION_AVAILABLE": "Ingen tilgængelige konfigurationer",
+        "NEW_CONFIGURATION": "Ny konfiguration",
+        "ADD_CONFIGURATION": "Tilføj konfiguration",
+        "EDIT_CONFIGURATION": "Rediger konfiguration",
+        "DELETE_CONFIGURATION": "Delete configuration",
+        "SUBJECTS": "Emner",
+        "DESCRIPTIONS": "Beskrivelser",
+        "FIELDS": "Felter",
+        "TAGS": "Tags",
+        "TYPE": "Type",
+        "CONTENT": "Indhold",
+        "EDIT_SUBJECT": "Rediger emne",
+        "DELETE_SUBJECT": "Slet emne",
+        "NEW_SUBJECT": "Nyt emne",
+        "ADD_SUBJECT": "Tilføj emne",
+        "EDIT_DESCRIPTION": "Rediger Beskrivelse",
+        "DELETE_DESCRIPTION": "Slet Beskrivelse",
+        "NEW_DESCRIPTION": "Ny Beskrivelse",
+        "ADD_DESCRIPTION": "Tilføj Beskrivelse",
+        "EDIT_FIELD": "Rediger felt",
+        "DELETE_FIELD": "Slet mark",
+        "NEW_FIELD": "Nyt felt",
+        "ADD_FIELD": "Tilføj felt",
+        "ADD": "Tilføj",
+        "VOICE": "Voice",
+        "MAIL": "Mail",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Åben kanal",
+        "INBOUND_IN_QUEUE": "Indgående i kø",
+        "OUTBOUND_CALL": "Udgående opkald",
+        "VALUE": "Værdi",
+        "FIELD": "Felt",
+        "KEY": "Nøgle",
+        "CHANNEL": "Kanal",
+        "DELETE": "Slet",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "TEST_ZENDESKACCOUNT": "Zendesk test konto",
+        "TEST_FRESHDESKACCOUNT": "Test Freshdesk konto",
+        "TEST_SUGARCRMACCOUNT": "Test SugerCRM Konto",
+        "TEST_SALESFORCEACCOUNT": "Test Salesforce højde"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/de.json b/public/app/main/apps/integrations/i18n/de.json
new file mode 100644 (file)
index 0000000..047eaee
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Integrationen",
+        "ZENDESKACCOUNTS": "Zendesk Konten",
+        "ID": "Id",
+        "NAME": "Name",
+        "USERNAME": "Benutzername",
+        "URI": "URI",
+        "BACK": "Zurück",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "EDIT_ZENDESKACCOUNT": "Bearbeiten von Zendesk Konto",
+        "DELETE_ZENDESKACCOUNT": "Löschen von Zendesk Konto",
+        "NEW_ZENDESKACCOUNT": "Neue Zendesk Konto",
+        "AUTHTYPE": "Authentifizierungstyp",
+        "PASSWORD": "Passwort",
+        "CONFIRM_PASSWORD": "Passwort bestätigen",
+        "TOKEN": "Token",
+        "MOTIONPROXYADDRESS": "Motion oder Proxy-IP-Adresse",
+        "DESCRIPTION": "Beschreibung",
+        "ADD_ZENDESKACCOUNT": "Konto hinzufügen ZENDESK",
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "USERNAME_REQUIRED": "Der Benutzername ist erforderlich",
+            "URI_REQUIRED": "Die URI ist erforderlich",
+            "URI_MUST_VALID_URL": "Der URI muss schriftlich in einem gültigen Format",
+            "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
+            "CONFIRM_NOT_MATCH": "Die Kennwörter nicht übereinstimmen",
+            "TOKEN_REQUIRED": "Das Token ist erforderlich",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "Die Adresse muss in einem gültigen Format",
+            "CLIENTID_REQUIRED": "Die Client-ID ist erforderlich",
+            "CLIENTSECRET_REQUIRED": "Der Client ist erforderlich",
+            "SECURITYTOKEN_REQUIRED": "Der Sicherheitsschlüssel ist erforderlich",
+            "APIKEY_REQUIRED": "Die API-Schlüssel erforderlich ist",
+            "CONTENT_REQUIRED": "Der Inhalt ist erforderlich",
+            "VARIABLENAME_REQUIRED": "Die Variable ist erforderlich",
+            "KEY_REQUIRED": "Der Schlüssel ist erforderlich",
+            "TYPE_REQUIRED": "Der Typ ist erforderlich",
+            "VALUE_REQUIRED": "Der Wert ist erforderlich",
+            "FIELD_REQUIRED": "Das Feld ist erforderlich."
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Bewegung (Proxy) Adresse: Es ist obligatorisch, wenn Sie wollen, füllen Sie das Ticket mit Neucodierungen URL. Bitte geben Sie im folgenden Format ein: &Lt;protocol> : //<IP-Adresse>[:<port>]. Beispiel: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Konto",
+        "ZENDESKCONFIGURATIONS": "Zendesk Konfigurationen",
+        "SALESFORCECONFIGURATIONS": "Salesforce-Konfigurationen",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM-Konfigurationen",
+        "FRESHDESKCONFIGURATIONS": "Freshdesk-Konfigurationen",
+        "GENERAL": "Allgemein",
+        "CREATED_AT": "Erstellt am",
+        "SAVE": "Speichern",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Keine Zendesk Konfigurationen erhältlich",
+        "NEW_ZENDESKCONFIGURATION": "Neue Zendesk Konfiguration",
+        "ADD_ZENDESKCONFIGURATION": "Hinzufügen von Zendesk Konfiguration",
+        "EDIT_ZENDESKCONFIGURATION": "Bearbeiten der Konfiguration Zendesk",
+        "DELETE_ZENDESKCONFIGURATION": "Löschen der Konfiguration Zendesk",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "Ohne Salesforce Konfigurationen erhältlich",
+        "NEW_SALESFORCECONFIGURATION": "Neue Salesforce Konfiguration",
+        "ADD_SALESFORCECONFIGURATION": "Salesforce Konfiguration hinzufügen",
+        "EDIT_SALESFORCECONFIGURATION": "Salesforce Konfiguration bearbeiten",
+        "DELETE_SALESFORCECONFIGURATION": "Salesforce Konfiguration löschen",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "Keine SugarCRM-Konfigurationen",
+        "NEW_SUGARCRMCONFIGURATION": "Neue SugarCRM-Konfiguration",
+        "ADD_SUGARCRMCONFIGURATION": "SugarCRM-Konfiguration hinzufügen",
+        "EDIT_SUGARCRMCONFIGURATION": "Bearbeiten von SugarCRM-Konfiguration",
+        "DELETE_SUGARCRMCONFIGURATION": "Löschen von SugarCRM-Konfiguration",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "Freshdesk keine Konfigurationen erhältlich",
+        "NEW_FRESHDESKCONFIGURATION": "Neue Freshdesk Konfiguration",
+        "ADD_FRESHDESKCONFIGURATION": "Freshdesk Konfiguration hinzufügen",
+        "EDIT_FRESHDESKCONFIGURATION": "Bearbeiten Sie Freshdesk Konfiguration",
+        "DELETE_FRESHDESKCONFIGURATION": "Löschen Sie Freshdesk Konfiguration",
+        "SALESFORCEACCOUNTS": "Salesforce Konten",
+        "EDIT_SALESFORCEACCOUNT": "Salesforce Konto bearbeiten",
+        "DELETE_SALESFORCEACCOUNT": "Löschen Sie Salesforce Konto",
+        "NEW_SALESFORCEACCOUNT": "Neue Salesforce Konto",
+        "ADD_SALESFORCEACCOUNT": "Salesforce hinzufügen Konto",
+        "CLIENTID": "Client-ID",
+        "CLIENTSECRET": "Client Geheimnis",
+        "SECURITYTOKEN": "Sicherheitstoken",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "APIKEY": "Api-Schlüssel",
+        "FRESHDESKACCOUNTS": "Freshdesk Konten",
+        "EDIT_FRESHDESKACCOUNT": "Freshdesk Konto bearbeiten",
+        "DELETE_FRESHDESKACCOUNT": "Löschen Sie Freshdesk Konto",
+        "NEW_FRESHDESKACCOUNT": "Neue Freshdesk Konto",
+        "ADD_FRESHDESKACCOUNT": "Fügen Sie Freshdesk Konto",
+        "SUGARCRMACCOUNTS": "SugarCRM-Konten",
+        "EDIT_SUGARCRMACCOUNT": "Bearbeiten von SugarCRM Konto",
+        "DELETE_SUGARCRMACCOUNT": "Löschen von SugarCRM Konto",
+        "NEW_SUGARCRMACCOUNT": "Neues Konto für SugarCRM",
+        "ADD_SUGARCRMACCOUNT": "SugarCRM Konto hinzufügen",
+        "CONFIGURATIONS": "Konfigurationen",
+        "NO_CONFIGURATION_AVAILABLE": "Keine Konfigurationen verfügbar",
+        "NEW_CONFIGURATION": "Neue Konfiguration",
+        "ADD_CONFIGURATION": "Konfiguration hinzufügen",
+        "EDIT_CONFIGURATION": "Konfiguration bearbeiten",
+        "DELETE_CONFIGURATION": "Löschen der Konfiguration",
+        "SUBJECTS": "Themen",
+        "DESCRIPTIONS": "Beschreibungen",
+        "FIELDS": "Felder",
+        "TAGS": "Tags",
+        "TYPE": "Typ",
+        "CONTENT": "Inhalt",
+        "EDIT_SUBJECT": "Betreff bearbeiten",
+        "DELETE_SUBJECT": "Löschen von Themen",
+        "NEW_SUBJECT": "Neues Thema",
+        "ADD_SUBJECT": "Betreff hinzufügen",
+        "EDIT_DESCRIPTION": "Beschreibung bearbeiten",
+        "DELETE_DESCRIPTION": "Beschreibung löschen",
+        "NEW_DESCRIPTION": "Neue Beschreibung",
+        "ADD_DESCRIPTION": "Beschreibung hinzufügen",
+        "EDIT_FIELD": "Feld bearbeiten",
+        "DELETE_FIELD": "Feld löschen",
+        "NEW_FIELD": "Neues Feld",
+        "ADD_FIELD": "Feld hinzufügen",
+        "ADD": "Hinzufügen",
+        "VOICE": "Voice",
+        "MAIL": "E-Mail",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Offener Kanal",
+        "INBOUND_IN_QUEUE": "Eingehende Anrufe in Warteschlange",
+        "OUTBOUND_CALL": "Ausgehender Anruf",
+        "VALUE": "Wert",
+        "FIELD": "Feld",
+        "KEY": "Schlüssel",
+        "CHANNEL": "Kanal",
+        "DELETE": "Löschen",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "TEST_ZENDESKACCOUNT": "Test Zendesk Konto",
+        "TEST_FRESHDESKACCOUNT": "Test Freshdesk Konto",
+        "TEST_SUGARCRMACCOUNT": "Test SugerCRM Konto",
+        "TEST_SALESFORCEACCOUNT": "Testen Sie Salesforce Konto"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/en.json b/public/app/main/apps/integrations/i18n/en.json
new file mode 100644 (file)
index 0000000..0736e05
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Integrations",
+        "ZENDESKACCOUNTS": "Zendesk Accounts",
+        "ID": "Id",
+        "NAME": "Name",
+        "USERNAME": "Username",
+        "URI": "URI",
+        "BACK": "Back",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "EDIT_ZENDESKACCOUNT": "Edit Zendesk Account",
+        "DELETE_ZENDESKACCOUNT": "Delete Zendesk Account",
+        "NEW_ZENDESKACCOUNT": "New Zendesk Account",
+        "AUTHTYPE": "Authentication Type",
+        "PASSWORD": "Password",
+        "CONFIRM_PASSWORD": "Confirm Password",
+        "TOKEN": "Token",
+        "MOTIONPROXYADDRESS": "Motion or Proxy IP Address",
+        "DESCRIPTION": "Description",
+        "ADD_ZENDESKACCOUNT": "Add Zendesk Account",
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is required",
+            "USERNAME_REQUIRED": "The Username is required",
+            "URI_REQUIRED": "The URI is required",
+            "URI_MUST_VALID_URL": "The URI must be written in a valid format",
+            "PASSWORD_REQUIRED": "The Password is required",
+            "CONFIRM_NOT_MATCH": "The passwords don' t match",
+            "TOKEN_REQUIRED": "The Token is required",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "The address must be written in a valid format",
+            "CLIENTID_REQUIRED": "The Client ID is required",
+            "CLIENTSECRET_REQUIRED": "The Client Secret is required",
+            "SECURITYTOKEN_REQUIRED": "The Security Token is required",
+            "APIKEY_REQUIRED": "The API Key is required",
+            "CONTENT_REQUIRED": "The Content is required",
+            "VARIABLENAME_REQUIRED": "The Variable is required",
+            "KEY_REQUIRED": "The Key is required",
+            "TYPE_REQUIRED": "The Type is required",
+            "VALUE_REQUIRED": "The Value is required",
+            "FIELD_REQUIRED": "The Field is required"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Motion (Proxy) Address: it is mandatory if you want to fill the ticket body with Recoding URL. Please, enter in the following format: &lt;protocol&gt; : //&lt;ipaddress&gt;[:&lt;port&gt;]. Example: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Account",
+        "ZENDESKCONFIGURATIONS": "Zendesk Configurations",
+        "SALESFORCECONFIGURATIONS": "Salesforce Configurations",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM Configurations",
+        "FRESHDESKCONFIGURATIONS": "Freshdesk Configurations",
+        "GENERAL": "General",
+        "CREATED_AT": "Created At",
+        "SAVE": "Save",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "No Zendesk Configurations available",
+        "NEW_ZENDESKCONFIGURATION": "New Zendesk Configuration",
+        "ADD_ZENDESKCONFIGURATION": "Add Zendesk Configuration",
+        "EDIT_ZENDESKCONFIGURATION": "Edit Zendesk Configuration",
+        "DELETE_ZENDESKCONFIGURATION": "Delete Zendesk Configuration",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "No Salesforce Configurations available",
+        "NEW_SALESFORCECONFIGURATION": "New Salesforce Configuration",
+        "ADD_SALESFORCECONFIGURATION": "Add Salesforce Configuration",
+        "EDIT_SALESFORCECONFIGURATION": "Edit Salesforce Configuration",
+        "DELETE_SALESFORCECONFIGURATION": "Delete Salesforce Configuration",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "No SugarCRM Configurations available",
+        "NEW_SUGARCRMCONFIGURATION": "New SugarCRM Configuration",
+        "ADD_SUGARCRMCONFIGURATION": "Add SugarCRM Configuration",
+        "EDIT_SUGARCRMCONFIGURATION": "Edit SugarCRM Configuration",
+        "DELETE_SUGARCRMCONFIGURATION": "Delete SugarCRM Configuration",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "No Freshdesk Configurations available",
+        "NEW_FRESHDESKCONFIGURATION": "New Freshdesk Configuration",
+        "ADD_FRESHDESKCONFIGURATION": "Add Freshdesk Configuration",
+        "EDIT_FRESHDESKCONFIGURATION": "Edit Freshdesk Configuration",
+        "DELETE_FRESHDESKCONFIGURATION": "Delete Freshdesk Configuration",
+        "SALESFORCEACCOUNTS": "Salesforce Accounts",
+        "EDIT_SALESFORCEACCOUNT": "Edit Salesforce Account",
+        "DELETE_SALESFORCEACCOUNT": "Delete Salesforce Account",
+        "NEW_SALESFORCEACCOUNT": "New Salesforce Account",
+        "ADD_SALESFORCEACCOUNT": "Add Salesforce Account",
+        "CLIENTID": "Client ID",
+        "CLIENTSECRET": "Client Secret",
+        "SECURITYTOKEN": "Security Token",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "APIKEY": "Api Key",
+        "FRESHDESKACCOUNTS": "Freshdesk Accounts",
+        "EDIT_FRESHDESKACCOUNT": "Edit Freshdesk Account",
+        "DELETE_FRESHDESKACCOUNT": "Delete Freshdesk Account",
+        "NEW_FRESHDESKACCOUNT": "New Freshdesk Account",
+        "ADD_FRESHDESKACCOUNT": "Add Freshdesk Account",
+        "SUGARCRMACCOUNTS": "SugarCRM Accounts",
+        "EDIT_SUGARCRMACCOUNT": "Edit SugarCRM Account",
+        "DELETE_SUGARCRMACCOUNT": "Delete SugarCRM Account",
+        "NEW_SUGARCRMACCOUNT": "New SugarCRM Account",
+        "ADD_SUGARCRMACCOUNT": "Add SugarCRM Account",
+        "CONFIGURATIONS": "Configurations",
+        "NO_CONFIGURATION_AVAILABLE": "No Configurations available",
+        "NEW_CONFIGURATION": "New Configuration",
+        "ADD_CONFIGURATION": "Add Configuration",
+        "EDIT_CONFIGURATION": "Edit Configuration",
+        "DELETE_CONFIGURATION": "Delete Configuration",
+        "SUBJECTS": "Subjects",
+        "DESCRIPTIONS": "Descriptions",
+        "FIELDS": "Fields",
+        "TAGS": "Tags",
+        "TYPE": "Type",
+        "CONTENT": "Content",
+        "EDIT_SUBJECT": "Edit Subject",
+        "DELETE_SUBJECT": "Delete Subject",
+        "NEW_SUBJECT": "New Subject",
+        "ADD_SUBJECT": "Add Subject",
+        "EDIT_DESCRIPTION": "Edit Description",
+        "DELETE_DESCRIPTION": "Delete Description",
+        "NEW_DESCRIPTION": "New Description",
+        "ADD_DESCRIPTION": "Add Description",
+        "EDIT_FIELD": "Edit Field",
+        "DELETE_FIELD": "Delete Field",
+        "NEW_FIELD": "New Field",
+        "ADD_FIELD": "Add Field",
+        "ADD": "Add",
+        "VOICE": "Voice",
+        "MAIL": "Mail",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Open Channel",
+        "INBOUND_IN_QUEUE": "Inbound in Queue",
+        "OUTBOUND_CALL": "Outbound Call",
+        "VALUE": "Value",
+        "FIELD": "Field",
+        "KEY": "Key",
+        "CHANNEL": "Channel",
+        "DELETE": "Delete",
+        "NO_AVAILABLE_INFO": "No available info",
+        "TEST_ZENDESKACCOUNT": "Test Zendesk Account",
+        "TEST_FRESHDESKACCOUNT": "Test Freshdesk Account",
+        "TEST_SUGARCRMACCOUNT": "Test SugerCRM Account",
+        "TEST_SALESFORCEACCOUNT": "Test Salesforce Account"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/es.json b/public/app/main/apps/integrations/i18n/es.json
new file mode 100644 (file)
index 0000000..f7c94bd
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Integraciones",
+        "ZENDESKACCOUNTS": "Cuentas Zendesk",
+        "ID": "Id",
+        "NAME": "Nombre",
+        "USERNAME": "Nombre de usuario",
+        "URI": "URI",
+        "BACK": "Volver",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "EDIT_ZENDESKACCOUNT": "Editar Cuenta Zendesk",
+        "DELETE_ZENDESKACCOUNT": "Eliminar cuenta Zendesk",
+        "NEW_ZENDESKACCOUNT": "Nueva cuenta de Zendesk",
+        "AUTHTYPE": "Tipo de autenticación",
+        "PASSWORD": "Contraseña",
+        "CONFIRM_PASSWORD": "Confirmar contraseña",
+        "TOKEN": "Token",
+        "MOTIONPROXYADDRESS": "Movimiento o dirección IP de Proxy",
+        "DESCRIPTION": "Descripción",
+        "ADD_ZENDESKACCOUNT": "Agregar cuenta Zendesk",
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "USERNAME_REQUIRED": "El nombre de usuario es obligatorio",
+            "URI_REQUIRED": "El URI es obligatorio",
+            "URI_MUST_VALID_URL": "El URI debe estar escrito en un formato válido",
+            "PASSWORD_REQUIRED": "Es necesaria la contraseña",
+            "CONFIRM_NOT_MATCH": "Las contraseñas no coinciden",
+            "TOKEN_REQUIRED": "El token es obligatorio",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "La dirección debe estar escrito en un formato válido",
+            "CLIENTID_REQUIRED": "El ID de cliente es obligatorio",
+            "CLIENTSECRET_REQUIRED": "El secreto del cliente es obligatorio",
+            "SECURITYTOKEN_REQUIRED": "El token de seguridad es obligatorio",
+            "APIKEY_REQUIRED": "Se requiere la clave de API",
+            "CONTENT_REQUIRED": "El contenido es obligatorio",
+            "VARIABLENAME_REQUIRED": "Es necesaria la variable",
+            "KEY_REQUIRED": "La clave es necesaria",
+            "TYPE_REQUIRED": "El tipo es requerido",
+            "VALUE_REQUIRED": "El valor es obligatorio",
+            "FIELD_REQUIRED": "El campo es obligatorio"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Motion (proxy) Dirección: es obligatorio si desea rellenar el ticket el cuerpo con la recodificación URL. Por favor, introduzca en el siguiente formato: &LT;Protocol&GT; : //<ipaddress&GT;[:<puerto&GT;]. Ejemplo: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Cuenta",
+        "ZENDESKCONFIGURATIONS": "Configuraciones de Zendesk",
+        "SALESFORCECONFIGURATIONS": "Configuraciones de Salesforce.",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM configuraciones",
+        "FRESHDESKCONFIGURATIONS": "Configuraciones Freshdesk",
+        "GENERAL": "General",
+        "CREATED_AT": "Creado en",
+        "SAVE": "Guardar",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "No Zendesk Configuraciones disponibles",
+        "NEW_ZENDESKCONFIGURATION": "Nueva configuración Zendesk",
+        "ADD_ZENDESKCONFIGURATION": "Agregar configuración Zendesk",
+        "EDIT_ZENDESKCONFIGURATION": "Editar configuración de Zendesk",
+        "DELETE_ZENDESKCONFIGURATION": "Borrar configuración Zendesk",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "No están disponibles las configuraciones de Salesforce.",
+        "NEW_SALESFORCECONFIGURATION": "Nueva configuración de Salesforce.",
+        "ADD_SALESFORCECONFIGURATION": "Agregar configuración de Salesforce.",
+        "EDIT_SALESFORCECONFIGURATION": "Editar configuración de Salesforce.",
+        "DELETE_SALESFORCECONFIGURATION": "Eliminar configuración de Salesforce.",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "No SugarCRM Configuraciones disponibles",
+        "NEW_SUGARCRMCONFIGURATION": "Nueva configuración de SugarCRM",
+        "ADD_SUGARCRMCONFIGURATION": "Agregar configuración de SugarCRM",
+        "EDIT_SUGARCRMCONFIGURATION": "Editar configuración de SugarCRM",
+        "DELETE_SUGARCRMCONFIGURATION": "Eliminar configuración de SugarCRM",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "No Freshdesk Configuraciones disponibles",
+        "NEW_FRESHDESKCONFIGURATION": "Nueva configuración Freshdesk",
+        "ADD_FRESHDESKCONFIGURATION": "Agregar configuración Freshdesk",
+        "EDIT_FRESHDESKCONFIGURATION": "Editar configuración Freshdesk",
+        "DELETE_FRESHDESKCONFIGURATION": "Borrar configuración Freshdesk",
+        "SALESFORCEACCOUNTS": "Cuentas de Salesforce",
+        "EDIT_SALESFORCEACCOUNT": "Editar cuenta de Salesforce",
+        "DELETE_SALESFORCEACCOUNT": "Eliminar cuenta de Salesforce",
+        "NEW_SALESFORCEACCOUNT": "Nueva cuenta de Salesforce",
+        "ADD_SALESFORCEACCOUNT": "Agregar cuenta de Salesforce",
+        "CLIENTID": "ID de cliente",
+        "CLIENTSECRET": "Secreto del cliente",
+        "SECURITYTOKEN": "Token de seguridad",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "APIKEY": "Clave de API",
+        "FRESHDESKACCOUNTS": "Cuentas Freshdesk",
+        "EDIT_FRESHDESKACCOUNT": "Editar Cuenta Freshdesk",
+        "DELETE_FRESHDESKACCOUNT": "Eliminar cuenta Freshdesk",
+        "NEW_FRESHDESKACCOUNT": "Nueva cuenta Freshdesk",
+        "ADD_FRESHDESKACCOUNT": "Agregar cuenta Freshdesk",
+        "SUGARCRMACCOUNTS": "SugarCRM cuentas",
+        "EDIT_SUGARCRMACCOUNT": "Editar SugarCRM cuenta",
+        "DELETE_SUGARCRMACCOUNT": "Eliminar SugarCRM cuenta",
+        "NEW_SUGARCRMACCOUNT": "SugarCRM cuenta nueva",
+        "ADD_SUGARCRMACCOUNT": "Agregar SugarCRM cuenta",
+        "CONFIGURATIONS": "Configuraciones",
+        "NO_CONFIGURATION_AVAILABLE": "No hay configuraciones disponibles",
+        "NEW_CONFIGURATION": "Nueva configuración",
+        "ADD_CONFIGURATION": "Agregar la configuración",
+        "EDIT_CONFIGURATION": "Editar configuración",
+        "DELETE_CONFIGURATION": "Eliminar la configuración",
+        "SUBJECTS": "Temas",
+        "DESCRIPTIONS": "Descripciones",
+        "FIELDS": "Campos",
+        "TAGS": "Tags",
+        "TYPE": "Tipo",
+        "CONTENT": "Contenido",
+        "EDIT_SUBJECT": "Editar asunto",
+        "DELETE_SUBJECT": "Eliminar tema",
+        "NEW_SUBJECT": "Nuevo tema",
+        "ADD_SUBJECT": "Agregar tema",
+        "EDIT_DESCRIPTION": "Editar descripción",
+        "DELETE_DESCRIPTION": "Eliminar la descripción",
+        "NEW_DESCRIPTION": "Nueva descripción",
+        "ADD_DESCRIPTION": "Agregar descripción",
+        "EDIT_FIELD": "Campo de edición",
+        "DELETE_FIELD": "Eliminar el campo",
+        "NEW_FIELD": "Nuevo campo",
+        "ADD_FIELD": "Agregar campo",
+        "ADD": "Agregar",
+        "VOICE": "Voz",
+        "MAIL": "Mail",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Canal abierto",
+        "INBOUND_IN_QUEUE": "En la cola entrante",
+        "OUTBOUND_CALL": "Llamada saliente",
+        "VALUE": "Valor",
+        "FIELD": "Campo",
+        "KEY": "Key",
+        "CHANNEL": "Canal",
+        "DELETE": "Eliminar",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "TEST_ZENDESKACCOUNT": "Prueba cuenta Zendesk",
+        "TEST_FRESHDESKACCOUNT": "Prueba cuenta Freshdesk",
+        "TEST_SUGARCRMACCOUNT": "Prueba cuenta SugerCRM",
+        "TEST_SALESFORCEACCOUNT": "Prueba de cuenta de Salesforce."
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/fa.json b/public/app/main/apps/integrations/i18n/fa.json
new file mode 100644 (file)
index 0000000..20a2d10
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Integrations",
+        "ZENDESKACCOUNTS": "حسابهاي Zendesk",
+        "ID": "شناسه",
+        "NAME": "نام",
+        "USERNAME": "نام کاربری",
+        "URI": "اوري",
+        "BACK": "پشت",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "EDIT_ZENDESKACCOUNT": "ویرایش اشتراک Zendesk",
+        "DELETE_ZENDESKACCOUNT": "حذف اشتراک Zendesk",
+        "NEW_ZENDESKACCOUNT": "اشتراک جدید Zendesk",
+        "AUTHTYPE": "تأیید اعتبار نوع",
+        "PASSWORD": "اسم رمز",
+        "CONFIRM_PASSWORD": "تأیید رمز ورود",
+        "TOKEN": "نشانه",
+        "MOTIONPROXYADDRESS": "حركت و تأني آدرس IP",
+        "DESCRIPTION": "شرح",
+        "ADD_ZENDESKACCOUNT": "افزودن اشتراک Zendesk",
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "USERNAME_REQUIRED": "نام کاربری مورد نیاز است.",
+            "URI_REQUIRED": "به اوري لازم است.",
+            "URI_MUST_VALID_URL": "به اوري بايد به فرمت معتبر نوشته شده است",
+            "PASSWORD_REQUIRED": "رمز عبور لازم است.",
+            "CONFIRM_NOT_MATCH": "از دون' t مسابقه اسامی رمز",
+            "TOKEN_REQUIRED": "اين نشانه لازم است.",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "آدرس را باید با فرمت معتبر نوشته شده است",
+            "CLIENTID_REQUIRED": "موكل شناسه لازم است.",
+            "CLIENTSECRET_REQUIRED": "موكل محرمانه مورد نیاز است.",
+            "SECURITYTOKEN_REQUIRED": "نشانه امنيت لازم است.",
+            "APIKEY_REQUIRED": "کلید API را لازم است.",
+            "CONTENT_REQUIRED": "محتوای مورد نیاز است.",
+            "VARIABLENAME_REQUIRED": "متغیر لازم است.",
+            "KEY_REQUIRED": "کلید مورد نیاز است.",
+            "TYPE_REQUIRED": "از نوع لازم است.",
+            "VALUE_REQUIRED": "مقدار مورد نیاز است.",
+            "FIELD_REQUIRED": "میدان لازم است."
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "حركت (ظاهرا) آدرس: الزامی است اگر شما می خواهید یک کارت پر از بدن به خاطر ثبت زندگی روزمره مردم اسکاتلند دارای URL. لطفاً موارد زیر را در آن وارد کنید: &القا فرمت پروتكل&31 دسامبر 2012 جی تی; : //&القا ipaddress&31 دسامبر 2012 جی تی;[:&القا درگاه&31 دسامبر 2012 جی تی;] است. مثال: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "اشتراک",
+        "ZENDESKCONFIGURATIONS": "پیکربندی Zendesk",
+        "SALESFORCECONFIGURATIONS": "Salesforce پیکربندی",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM پیکربندی",
+        "FRESHDESKCONFIGURATIONS": "پیکربندی Freshdesk",
+        "GENERAL": "سردار",
+        "CREATED_AT": "ایجاد شده در",
+        "SAVE": "ذخیره",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "نه تستی که در دسترس Zendesk",
+        "NEW_ZENDESKCONFIGURATION": "پیکربندی جدید Zendesk",
+        "ADD_ZENDESKCONFIGURATION": "افزودن پیکربندی Zendesk",
+        "EDIT_ZENDESKCONFIGURATION": "ویرایش پیکربندی Zendesk",
+        "DELETE_ZENDESKCONFIGURATION": "حذف پیکربندی Zendesk",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "نه Salesforce تستی که در دسترس نیست",
+        "NEW_SALESFORCECONFIGURATION": "Salesforce پیکر بندی جدید",
+        "ADD_SALESFORCECONFIGURATION": "Salesforce پیکر بندی را اضافه کنید",
+        "EDIT_SALESFORCECONFIGURATION": "ویرایش Salesforce پیکربندی",
+        "DELETE_SALESFORCECONFIGURATION": "Salesforce پیکر بندی را حذف کنید",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "نه SugarCRM تستی که در دسترس نیست",
+        "NEW_SUGARCRMCONFIGURATION": "SugarCRM پیکر بندی جدید",
+        "ADD_SUGARCRMCONFIGURATION": "SugarCRM پیکر بندی را اضافه کنید",
+        "EDIT_SUGARCRMCONFIGURATION": "ویرایش SugarCRM پیکربندی",
+        "DELETE_SUGARCRMCONFIGURATION": "SugarCRM پیکر بندی را حذف کنید",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "نه Freshdesk تستی که در دسترس نیست",
+        "NEW_FRESHDESKCONFIGURATION": "Freshdesk پیکر بندی جدید",
+        "ADD_FRESHDESKCONFIGURATION": "افزودن Freshdesk پیکربندی",
+        "EDIT_FRESHDESKCONFIGURATION": "ویرایش Freshdesk پیکربندی",
+        "DELETE_FRESHDESKCONFIGURATION": "حذف Freshdesk پیکربندی",
+        "SALESFORCEACCOUNTS": "حساب های Salesforce",
+        "EDIT_SALESFORCEACCOUNT": "ویرایش اشتراک Salesforce",
+        "DELETE_SALESFORCEACCOUNT": "Salesforce اشتراک خود را حذف می کند",
+        "NEW_SALESFORCEACCOUNT": "Salesforce اشتراک جدید",
+        "ADD_SALESFORCEACCOUNT": "افزودن اشتراک Salesforce",
+        "CLIENTID": "شناسه سرویس گیرنده ضعیف",
+        "CLIENTSECRET": "موكل محرمانه",
+        "SECURITYTOKEN": "نشانه امنیتی",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "APIKEY": "کلید Api",
+        "FRESHDESKACCOUNTS": "حسابهاي Freshdesk",
+        "EDIT_FRESHDESKACCOUNT": "ویرایش اشتراک Freshdesk",
+        "DELETE_FRESHDESKACCOUNT": "حذف اشتراک Freshdesk",
+        "NEW_FRESHDESKACCOUNT": "اشتراک جدید Freshdesk",
+        "ADD_FRESHDESKACCOUNT": "افزودن اشتراک Freshdesk",
+        "SUGARCRMACCOUNTS": "SugarCRM حسابداري",
+        "EDIT_SUGARCRMACCOUNT": "ویرایش اشتراک SugarCRM",
+        "DELETE_SUGARCRMACCOUNT": "SugarCRM اشتراک خود را حذف می کند",
+        "NEW_SUGARCRMACCOUNT": "SugarCRM اشتراک جدید",
+        "ADD_SUGARCRMACCOUNT": "افزودن اشتراک SugarCRM",
+        "CONFIGURATIONS": "پیکربندی",
+        "NO_CONFIGURATION_AVAILABLE": "نه تستی که در دسترس نیست",
+        "NEW_CONFIGURATION": "پیکربندی جدید",
+        "ADD_CONFIGURATION": "پیکربندی اضافه کنید",
+        "EDIT_CONFIGURATION": "ویرایش تنظیمات پیکربندی",
+        "DELETE_CONFIGURATION": "پیکربندی را حذف کنید",
+        "SUBJECTS": "موضوعات",
+        "DESCRIPTIONS": "شرح",
+        "FIELDS": "رشته",
+        "TAGS": "برچسب",
+        "TYPE": "نوع دستگاه",
+        "CONTENT": "محتوا",
+        "EDIT_SUBJECT": "ویرایش موضوع",
+        "DELETE_SUBJECT": "اين موضوع را حذف کنید",
+        "NEW_SUBJECT": "موضوع جدید",
+        "ADD_SUBJECT": "افزودن موضوع",
+        "EDIT_DESCRIPTION": "ویرایش شرح",
+        "DELETE_DESCRIPTION": "توصیف را حذف کنید",
+        "NEW_DESCRIPTION": "شرح جدید",
+        "ADD_DESCRIPTION": "توضیح را اضافه کنید",
+        "EDIT_FIELD": "ویرایش رشته",
+        "DELETE_FIELD": "رشته را حذف کنید",
+        "NEW_FIELD": "رشته جدید",
+        "ADD_FIELD": "افزودن رشته",
+        "ADD": "افزودن",
+        "VOICE": "صدا",
+        "MAIL": "پست",
+        "CHAT": "چت روم",
+        "SMS": "SMS",
+        "OPENCHANNEL": "کانال را باز کنید",
+        "INBOUND_IN_QUEUE": "مسافرانی که در صف",
+        "OUTBOUND_CALL": "برای فراخوانی",
+        "VALUE": "مقدار",
+        "FIELD": "رشته",
+        "KEY": "استاديار دانشگاه علوم پزشكي گرگان",
+        "CHANNEL": "شبكه",
+        "DELETE": "حذف",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "TEST_ZENDESKACCOUNT": "تست اشتراک Zendesk",
+        "TEST_FRESHDESKACCOUNT": "اشتراک Freshdesk تست",
+        "TEST_SUGARCRMACCOUNT": "اشتراک SugerCRM تست",
+        "TEST_SALESFORCEACCOUNT": "Salesforce تست اشتراک"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/fi.json b/public/app/main/apps/integrations/i18n/fi.json
new file mode 100644 (file)
index 0000000..b5bc1cf
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Integrointeja",
+        "ZENDESKACCOUNTS": "Zendesk tilit",
+        "ID": "Tunnus",
+        "NAME": "Nimi",
+        "USERNAME": "Käyttäjätunnus",
+        "URI": "URI",
+        "BACK": "Takaisin",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "EDIT_ZENDESKACCOUNT": "Muokkaa Zendesk tili",
+        "DELETE_ZENDESKACCOUNT": "Poista Zendesk tili",
+        "NEW_ZENDESKACCOUNT": "Uuden tilin Zendesk",
+        "AUTHTYPE": "Tarkistustyyppi",
+        "PASSWORD": "Salasana",
+        "CONFIRM_PASSWORD": "Vahvista salasana",
+        "TOKEN": "Etätunnistin",
+        "MOTIONPROXYADDRESS": "Liike- tai Proxy IP-osoite",
+        "DESCRIPTION": "Kuvaus",
+        "ADD_ZENDESKACCOUNT": "Lisää tilin Zendesk",
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "USERNAME_REQUIRED": "Käyttäjätunnus on pakollinen",
+            "URI_REQUIRED": "Vastaajapalvelimen URI on pakollinen",
+            "URI_MUST_VALID_URL": "Vastaajapalvelimen URI on kirjoitettava kelvollisessa muodossa",
+            "PASSWORD_REQUIRED": "Salasana on pakollinen",
+            "CONFIRM_NOT_MATCH": "Salasana ei vastaa t",
+            "TOKEN_REQUIRED": "Etätunnistinta ei tarvita",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "Osoite on kirjoitettava kelvollisessa muodossa",
+            "CLIENTID_REQUIRED": "Asiakkaan tunnus on pakollinen",
+            "CLIENTSECRET_REQUIRED": "Asiakas salaisuus on pakollinen",
+            "SECURITYTOKEN_REQUIRED": "Jos Turvallisuus tunnuksesi on pakollinen",
+            "APIKEY_REQUIRED": "API-avain.",
+            "CONTENT_REQUIRED": "Sisältö on pakollinen",
+            "VARIABLENAME_REQUIRED": "Muuttujan arvo on pakollinen",
+            "KEY_REQUIRED": "Avainta ei tarvita",
+            "TYPE_REQUIRED": "Tyyppi on pakollinen",
+            "VALUE_REQUIRED": "Arvo on pakollinen",
+            "FIELD_REQUIRED": "Tämä kenttä on pakollinen"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Liikkeen (proxy) Osoite: se on pakollinen, jos haluat täyttää tulostuspyynnön elimelle -tallennusta URL. Anna seuraavassa muodossa: <protokolla&GT: //<ipaddress>[:<port>]. Esimerkki: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Tili",
+        "ZENDESKCONFIGURATIONS": "Zendesk konfiguroinnit",
+        "SALESFORCECONFIGURATIONS": "Salesforce konfiguroinnit",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM konfiguroinnit",
+        "FRESHDESKCONFIGURATIONS": "Freshdesk konfiguroinnit",
+        "GENERAL": "Yleistä",
+        "CREATED_AT": "Luodaan",
+        "SAVE": "Tallenna",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Zendesk ei saatavana",
+        "NEW_ZENDESKCONFIGURATION": "Uusi kokoonpano Zendesk",
+        "ADD_ZENDESKCONFIGURATION": "Lisää Zendesk määritys",
+        "EDIT_ZENDESKCONFIGURATION": "Muokkaa Zendesk määritys",
+        "DELETE_ZENDESKCONFIGURATION": "Poista Zendesk määritys",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "Salesforce ei saatavana",
+        "NEW_SALESFORCECONFIGURATION": "Uusi Salesforce määritys",
+        "ADD_SALESFORCECONFIGURATION": "Lisää Salesforcen määritys",
+        "EDIT_SALESFORCECONFIGURATION": "Muokkaa Salesforce määritys",
+        "DELETE_SALESFORCECONFIGURATION": "Poista Salesforce määritys",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "SugarCRM ei ole saatavana",
+        "NEW_SUGARCRMCONFIGURATION": "Uusi kokoonpano SugarCRM",
+        "ADD_SUGARCRMCONFIGURATION": "Lisää SugarCRM määritys",
+        "EDIT_SUGARCRMCONFIGURATION": "Muokkaa SugarCRM määritys",
+        "DELETE_SUGARCRMCONFIGURATION": "Poista SugarCRM määritys",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "Mitään Freshdesk saatavana",
+        "NEW_FRESHDESKCONFIGURATION": "Uusi kokoonpano Freshdesk",
+        "ADD_FRESHDESKCONFIGURATION": "Lisää Freshdesk määritys",
+        "EDIT_FRESHDESKCONFIGURATION": "Muokkaa Freshdesk määritys",
+        "DELETE_FRESHDESKCONFIGURATION": "Poista Freshdesk määritys",
+        "SALESFORCEACCOUNTS": "Salesforce tilit",
+        "EDIT_SALESFORCEACCOUNT": "Muokkaa Salesforce tili",
+        "DELETE_SALESFORCEACCOUNT": "Poista Salesforce tili",
+        "NEW_SALESFORCEACCOUNT": "Uusi Salesforce tili",
+        "ADD_SALESFORCEACCOUNT": "Lisää Salesforcen tili",
+        "CLIENTID": "Asiakkaan tunnus",
+        "CLIENTSECRET": "Client salaisuus",
+        "SECURITYTOKEN": "Turvallisuus tunnuksesi",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "APIKEY": "Api-avain",
+        "FRESHDESKACCOUNTS": "Tilien freshdesk",
+        "EDIT_FRESHDESKACCOUNT": "Muokkaa Freshdesk tili",
+        "DELETE_FRESHDESKACCOUNT": "Poista Freshdesk tili",
+        "NEW_FRESHDESKACCOUNT": "Uuden tilin Freshdesk",
+        "ADD_FRESHDESKACCOUNT": "Lisää Freshdesk tili",
+        "SUGARCRMACCOUNTS": "SugarCRM tilit",
+        "EDIT_SUGARCRMACCOUNT": "Muokkaa SugarCRM tili",
+        "DELETE_SUGARCRMACCOUNT": "Poista SugarCRM tili",
+        "NEW_SUGARCRMACCOUNT": "Uuden tilin SugarCRM",
+        "ADD_SUGARCRMACCOUNT": "Lisää SugarCRM tili",
+        "CONFIGURATIONS": "Konfiguroinnit",
+        "NO_CONFIGURATION_AVAILABLE": "Ei saatavana",
+        "NEW_CONFIGURATION": "Uudet määritykset",
+        "ADD_CONFIGURATION": "Lisää määritykset",
+        "EDIT_CONFIGURATION": "Muokkaa määrityksiä",
+        "DELETE_CONFIGURATION": "Poista konfigurointi",
+        "SUBJECTS": "Aiheet",
+        "DESCRIPTIONS": "Kuvaukset",
+        "FIELDS": "Kentät",
+        "TAGS": "Tunnisteet",
+        "TYPE": "Tyyppi",
+        "CONTENT": "Sisältö",
+        "EDIT_SUBJECT": "Muokkaa aihe",
+        "DELETE_SUBJECT": "Poista aihe",
+        "NEW_SUBJECT": "Uusi aihe",
+        "ADD_SUBJECT": "Lisää aiheesta",
+        "EDIT_DESCRIPTION": "Kuvauksen muokkaus",
+        "DELETE_DESCRIPTION": "Poista kuvaus",
+        "NEW_DESCRIPTION": "Uusi kuvaus",
+        "ADD_DESCRIPTION": "Lisää kuvaus",
+        "EDIT_FIELD": "Kentän muokkaaminen",
+        "DELETE_FIELD": "Poista kenttä",
+        "NEW_FIELD": "Uusi kenttä",
+        "ADD_FIELD": "Lisää kenttä",
+        "ADD": "Lisää",
+        "VOICE": "Ääni",
+        "MAIL": "Sähköposti",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Avointa kanavaa",
+        "INBOUND_IN_QUEUE": "Saapuva jonossa",
+        "OUTBOUND_CALL": "Lähtevä puhelu",
+        "VALUE": "Arvo",
+        "FIELD": "Kenttä",
+        "KEY": "Avain",
+        "CHANNEL": "Kanava",
+        "DELETE": "Poista",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "TEST_ZENDESKACCOUNT": "Testaa tilin Zendesk",
+        "TEST_FRESHDESKACCOUNT": "Testaa Freshdesk tili",
+        "TEST_SUGARCRMACCOUNT": "Testaa SugerCRM tili",
+        "TEST_SALESFORCEACCOUNT": "Testaa Salesforce tili"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/fr.json b/public/app/main/apps/integrations/i18n/fr.json
new file mode 100644 (file)
index 0000000..5715086
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Integrations",
+        "ZENDESKACCOUNTS": "Comptes Zendesk",
+        "ID": "Id",
+        "NAME": "Nom",
+        "USERNAME": "Nom d'utilisateur",
+        "URI": "URI",
+        "BACK": "Retour",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "EDIT_ZENDESKACCOUNT": "Modifier compte Zendesk",
+        "DELETE_ZENDESKACCOUNT": "Supprimer compte Zendesk",
+        "NEW_ZENDESKACCOUNT": "Nouveau compte Zendesk",
+        "AUTHTYPE": "Type d'authentification",
+        "PASSWORD": "Mot de passe oublié",
+        "CONFIRM_PASSWORD": "Confirmer le mot de passe",
+        "TOKEN": "Coup",
+        "MOTIONPROXYADDRESS": "Motion ou Adresse IP proxy",
+        "DESCRIPTION": "Description",
+        "ADD_ZENDESKACCOUNT": "Ajouter compte Zendesk",
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "USERNAME_REQUIRED": "L'utilisateur est nécessaire",
+            "URI_REQUIRED": "L'URI est requis",
+            "URI_MUST_VALID_URL": "L'URI doit être écrit dans un format valide",
+            "PASSWORD_REQUIRED": "Le mot de passe est requis",
+            "CONFIRM_NOT_MATCH": "Les mots de passe ne correspondent pas",
+            "TOKEN_REQUIRED": "Le jeton est requis",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "L'adresse doit être écrite dans un format valide",
+            "CLIENTID_REQUIRED": "Le Client est requis",
+            "CLIENTSECRET_REQUIRED": "Le Client est tenu secret",
+            "SECURITYTOKEN_REQUIRED": "Le jeton de sécurité est requis",
+            "APIKEY_REQUIRED": "La clé API est requis",
+            "CONTENT_REQUIRED": "Le contenu est nécessaire",
+            "VARIABLENAME_REQUIRED": "La variable est nécessaire",
+            "KEY_REQUIRED": "La clé est nécessaire",
+            "TYPE_REQUIRED": "Le type est requis",
+            "VALUE_REQUIRED": "Cette valeur est requise",
+            "FIELD_REQUIRED": "Le champ est obligatoire"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Motion (Proxy) Adresse : il est obligatoire si vous souhaitez le corps avec de la réécriture URL. S'il vous plaît, entrez dans le format suivant : <protocol&gt ; : //<ipaddress&gt ;[ :<port&gt ;]. Exemple : https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Compte",
+        "ZENDESKCONFIGURATIONS": "Configurations Zendesk",
+        "SALESFORCECONFIGURATIONS": "Les configurations de Salesforce",
+        "SUGARCRMCONFIGURATIONS": "Les configurations de SugarCRM",
+        "FRESHDESKCONFIGURATIONS": "Configurations Freshdesk",
+        "GENERAL": "Général",
+        "CREATED_AT": "Créé à",
+        "SAVE": "Sauvegarder",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Pas de Zendesk Configurations disponibles",
+        "NEW_ZENDESKCONFIGURATION": "Nouvelle configuration Zendesk",
+        "ADD_ZENDESKCONFIGURATION": "Ajouter configuration Zendesk",
+        "EDIT_ZENDESKCONFIGURATION": "Modifier configuration Zendesk",
+        "DELETE_ZENDESKCONFIGURATION": "Supprimer la configuration Zendesk",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "Pas de configurations disponibles Salesforce",
+        "NEW_SALESFORCECONFIGURATION": "Nouvelle configuration Salesforce",
+        "ADD_SALESFORCECONFIGURATION": "Ajouter configuration Salesforce",
+        "EDIT_SALESFORCECONFIGURATION": "Modifier configuration Salesforce",
+        "DELETE_SALESFORCECONFIGURATION": "Supprimer configuration Salesforce",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "Pas de SugarCRM Configurations disponibles",
+        "NEW_SUGARCRMCONFIGURATION": "Nouvelle configuration SugarCRM",
+        "ADD_SUGARCRMCONFIGURATION": "Ajouter configuration SugarCRM",
+        "EDIT_SUGARCRMCONFIGURATION": "Modifier configuration SugarCRM",
+        "DELETE_SUGARCRMCONFIGURATION": "Supprimer la configuration SugarCRM",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "Pas Freshdesk Configurations disponibles",
+        "NEW_FRESHDESKCONFIGURATION": "Nouvelle configuration Freshdesk",
+        "ADD_FRESHDESKCONFIGURATION": "Ajouter configuration Freshdesk",
+        "EDIT_FRESHDESKCONFIGURATION": "Modifier configuration Freshdesk",
+        "DELETE_FRESHDESKCONFIGURATION": "Supprimer la configuration Freshdesk",
+        "SALESFORCEACCOUNTS": "Comptes Salesforce",
+        "EDIT_SALESFORCEACCOUNT": "Modifier compte Salesforce",
+        "DELETE_SALESFORCEACCOUNT": "Supprimer compte Salesforce",
+        "NEW_SALESFORCEACCOUNT": "Nouveau compte Salesforce",
+        "ADD_SALESFORCEACCOUNT": "Ajouter compte Salesforce",
+        "CLIENTID": "ID client",
+        "CLIENTSECRET": "Secret Client",
+        "SECURITYTOKEN": "Le jeton de sécurité",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "APIKEY": "Clé Api",
+        "FRESHDESKACCOUNTS": "Comptes Freshdesk",
+        "EDIT_FRESHDESKACCOUNT": "Modifier compte Freshdesk",
+        "DELETE_FRESHDESKACCOUNT": "Supprimer compte Freshdesk",
+        "NEW_FRESHDESKACCOUNT": "Nouveau compte Freshdesk",
+        "ADD_FRESHDESKACCOUNT": "Ajouter compte Freshdesk",
+        "SUGARCRMACCOUNTS": "Comptes SugarCRM",
+        "EDIT_SUGARCRMACCOUNT": "Modifier SugarCRM compte",
+        "DELETE_SUGARCRMACCOUNT": "Supprimer compte SugarCRM",
+        "NEW_SUGARCRMACCOUNT": "Nouveau compte de SugarCRM",
+        "ADD_SUGARCRMACCOUNT": "Ajouter compte SugarCRM",
+        "CONFIGURATIONS": "Configurations",
+        "NO_CONFIGURATION_AVAILABLE": "Aucune configuration disponible",
+        "NEW_CONFIGURATION": "Nouvelle configuration",
+        "ADD_CONFIGURATION": "Ajout de Configuration",
+        "EDIT_CONFIGURATION": "Modifier la configuration",
+        "DELETE_CONFIGURATION": "Supprimer la configuration",
+        "SUBJECTS": "Les sociétés sises",
+        "DESCRIPTIONS": "Descriptions",
+        "FIELDS": "Domaines",
+        "TAGS": "Tags",
+        "TYPE": "Type",
+        "CONTENT": "Content",
+        "EDIT_SUBJECT": "Modifier l'objet",
+        "DELETE_SUBJECT": "Supprimer l'objet",
+        "NEW_SUBJECT": "Nouveau sujet",
+        "ADD_SUBJECT": "Ajouter un objet",
+        "EDIT_DESCRIPTION": "Description de l'édition",
+        "DELETE_DESCRIPTION": "Description Supprimer",
+        "NEW_DESCRIPTION": "Nouvelle description",
+        "ADD_DESCRIPTION": "Ajouter la Description",
+        "EDIT_FIELD": "Champ d'édition",
+        "DELETE_FIELD": "Supprimer un champ",
+        "NEW_FIELD": "Nouveau champ",
+        "ADD_FIELD": "Ajouter un champ",
+        "ADD": "Ajouter",
+        "VOICE": "Voix",
+        "MAIL": "Mail",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Canal ouvert",
+        "INBOUND_IN_QUEUE": "Dans la file d'attente entrante",
+        "OUTBOUND_CALL": "Appel sortant",
+        "VALUE": "Valeur",
+        "FIELD": "Domaine",
+        "KEY": "Key",
+        "CHANNEL": "Channel",
+        "DELETE": "Supprimer",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "TEST_ZENDESKACCOUNT": "Compte Test Zendesk",
+        "TEST_FRESHDESKACCOUNT": "Compte Test Freshdesk",
+        "TEST_SUGARCRMACCOUNT": "Compte Test SugerCRM",
+        "TEST_SALESFORCEACCOUNT": "Compte Salesforce Test"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/hi.json b/public/app/main/apps/integrations/i18n/hi.json
new file mode 100644 (file)
index 0000000..fbb1d52
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "एकीकरण",
+        "ZENDESKACCOUNTS": "Zendesk लेखा",
+        "ID": "Id",
+        "NAME": "नाम",
+        "USERNAME": "उपयोगकर्ता नाम",
+        "URI": "उरी",
+        "BACK": "वापिस",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "EDIT_ZENDESKACCOUNT": "खाता संपादित Zendesk",
+        "DELETE_ZENDESKACCOUNT": "Zendesk खाते को हटाना",
+        "NEW_ZENDESKACCOUNT": "नया खाता Zendesk",
+        "AUTHTYPE": "प्रमाणीकरण प्रकार",
+        "PASSWORD": "पासवर्ड",
+        "CONFIRM_PASSWORD": "पासवर्ड की पुष्टि करें:",
+        "TOKEN": "टोकन",
+        "MOTIONPROXYADDRESS": "प्रस्ताव या छद्म IP पता",
+        "DESCRIPTION": "वर्णन",
+        "ADD_ZENDESKACCOUNT": "खाता जोड़ें Zendesk",
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "USERNAME_REQUIRED": "उपयोगकर्ता नाम की आवश्यकता है।",
+            "URI_REQUIRED": "के उरी अपेक्षित है।",
+            "URI_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना उरी के",
+            "PASSWORD_REQUIRED": "पासवर्ड की आवश्यकता है।",
+            "CONFIRM_NOT_MATCH": "पासवर्ड मेल नहीं है।' '",
+            "TOKEN_REQUIRED": "टोकन की आवश्यकता है।",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "पता मान्य स्वरूप में लिखा होना",
+            "CLIENTID_REQUIRED": "ग्राहक ID अपेक्षित है।",
+            "CLIENTSECRET_REQUIRED": "ग्राहक को गुप्त की आवश्यकता है।",
+            "SECURITYTOKEN_REQUIRED": "टोकन की सुरक्षा की आवश्यकता है।",
+            "APIKEY_REQUIRED": "कुंजी का वैक्टर अपेक्षित है।",
+            "CONTENT_REQUIRED": "सामग्री की आवश्यकता है।",
+            "VARIABLENAME_REQUIRED": "परिवर्तनीय अपेक्षित है।",
+            "KEY_REQUIRED": "कुंजी की आवश्यकता है।",
+            "TYPE_REQUIRED": "इस प्रकार की आवश्यकता है।",
+            "VALUE_REQUIRED": "मूल्य की आवश्यकता है।",
+            "FIELD_REQUIRED": "इस क्षेत्र की आवश्यकता है।"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "प्रस्ताव (प्राक्सी) पते: यह अनिवार्य है कि अगर आप को भरने के लिए टिकट Recoding URL के साथ शरीर कृपया, निम्नलिखित आरूप में दर्ज करें: &lt वंशवृक्ष प्रोटोकॉल एंड अधम; : // एंड lt सिखाता है; अधम एवं ipaddress[: एंड lt वंशवृक्ष पत्तन एवं अधम;]। उदाहरण के लिए: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "खाते",
+        "ZENDESKCONFIGURATIONS": "कॉन्फ़िगरेशंस Zendesk",
+        "SALESFORCECONFIGURATIONS": "कॉन्फ़िगरेशंस Salesforce",
+        "SUGARCRMCONFIGURATIONS": "कॉन्फ़िगरेशंस SugarCRM",
+        "FRESHDESKCONFIGURATIONS": "कॉन्फ़िगरेशंस Freshdesk",
+        "GENERAL": "सामान्य",
+        "CREATED_AT": "सृजित",
+        "SAVE": "सहेजें",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "कॉन्फ़िगरेशंस Zendesk उपलब्ध नहीं",
+        "NEW_ZENDESKCONFIGURATION": "नई Zendesk कॉन्फ़िगरेशन",
+        "ADD_ZENDESKCONFIGURATION": "कॉन्फ़िगरेशन Zendesk जोड़ें",
+        "EDIT_ZENDESKCONFIGURATION": "कॉन्फ़िगरेशन Zendesk संपादित करें",
+        "DELETE_ZENDESKCONFIGURATION": "कॉन्फ़िगरेशन Zendesk हटाएं",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "कॉन्फ़िगरेशंस Salesforce उपलब्ध नहीं",
+        "NEW_SALESFORCECONFIGURATION": "नई Salesforce कॉन्फ़िगरेशन",
+        "ADD_SALESFORCECONFIGURATION": "कॉन्फ़िगरेशन Salesforce जोड़ें",
+        "EDIT_SALESFORCECONFIGURATION": "कॉन्फ़िगरेशन Salesforce संपादित करें",
+        "DELETE_SALESFORCECONFIGURATION": "कॉन्फ़िगरेशन Salesforce हटाएं",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "कॉन्फ़िगरेशंस SugarCRM उपलब्ध नहीं",
+        "NEW_SUGARCRMCONFIGURATION": "नई SugarCRM कॉन्फ़िगरेशन",
+        "ADD_SUGARCRMCONFIGURATION": "कॉन्फ़िगरेशन SugarCRM जोड़ें",
+        "EDIT_SUGARCRMCONFIGURATION": "कॉन्फ़िगरेशन SugarCRM संपादित करें",
+        "DELETE_SUGARCRMCONFIGURATION": "कॉन्फ़िगरेशन SugarCRM हटाएं",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "कॉन्फ़िगरेशंस Freshdesk उपलब्ध नहीं",
+        "NEW_FRESHDESKCONFIGURATION": "नई Freshdesk कॉन्फ़िगरेशन",
+        "ADD_FRESHDESKCONFIGURATION": "कॉन्फ़िगरेशन Freshdesk जोड़ें",
+        "EDIT_FRESHDESKCONFIGURATION": "कॉन्फ़िगरेशन Freshdesk संपादित करें",
+        "DELETE_FRESHDESKCONFIGURATION": "कॉन्फ़िगरेशन Freshdesk हटाएं",
+        "SALESFORCEACCOUNTS": "Salesforce लेखा",
+        "EDIT_SALESFORCEACCOUNT": "खाता संपादित Salesforce",
+        "DELETE_SALESFORCEACCOUNT": "Salesforce खाते को हटाना",
+        "NEW_SALESFORCEACCOUNT": "नया खाता Salesforce",
+        "ADD_SALESFORCEACCOUNT": "खाता जोड़ें Salesforce",
+        "CLIENTID": "ग्राहक ID",
+        "CLIENTSECRET": "ग्राहक को गुप्त",
+        "SECURITYTOKEN": "सुरक्षा सांकेतिक",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "APIKEY": "नोट्स API कुंजी दबाएं.",
+        "FRESHDESKACCOUNTS": "Freshdesk लेखा",
+        "EDIT_FRESHDESKACCOUNT": "खाता संपादित Freshdesk",
+        "DELETE_FRESHDESKACCOUNT": "Freshdesk खाते को हटाना",
+        "NEW_FRESHDESKACCOUNT": "नया खाता Freshdesk",
+        "ADD_FRESHDESKACCOUNT": "खाता जोड़ें Freshdesk",
+        "SUGARCRMACCOUNTS": "SugarCRM लेखा",
+        "EDIT_SUGARCRMACCOUNT": "खाता संपादित SugarCRM",
+        "DELETE_SUGARCRMACCOUNT": "SugarCRM खाते को हटाना",
+        "NEW_SUGARCRMACCOUNT": "नया खाता SugarCRM",
+        "ADD_SUGARCRMACCOUNT": "खाता जोड़ें SugarCRM",
+        "CONFIGURATIONS": "विन्यास",
+        "NO_CONFIGURATION_AVAILABLE": "कॉन्फ़िगरेशन उपलब्ध नहीं",
+        "NEW_CONFIGURATION": "नई कॉन्फ़िगरेशन",
+        "ADD_CONFIGURATION": "कॉन्फ़िगरेशन में जोड़ें",
+        "EDIT_CONFIGURATION": "कॉन्फ़िगरेशन संपादित करें",
+        "DELETE_CONFIGURATION": "कॉन्फ़िगरेशन को हटाएं",
+        "SUBJECTS": "विषयों",
+        "DESCRIPTIONS": "वर्णन",
+        "FIELDS": "खेतों",
+        "TAGS": "टैग्स",
+        "TYPE": "प्रकार",
+        "CONTENT": "सामग्री",
+        "EDIT_SUBJECT": "इस विषय को संपादित करें",
+        "DELETE_SUBJECT": "इस विषय को हटाएं",
+        "NEW_SUBJECT": "विषय",
+        "ADD_SUBJECT": "इस विषय पर जोड़ें",
+        "EDIT_DESCRIPTION": "विवरण संपादित करें",
+        "DELETE_DESCRIPTION": "वर्णन हटाएं",
+        "NEW_DESCRIPTION": "नया विवरण",
+        "ADD_DESCRIPTION": "विवरण जोड़ना",
+        "EDIT_FIELD": "फ़ील्ड संपादित करें",
+        "DELETE_FIELD": "हटाएं फ़ील्ड",
+        "NEW_FIELD": "नए क्षेत्र",
+        "ADD_FIELD": "फ़ील्ड जोड़ें",
+        "ADD": "जोड़ें",
+        "VOICE": "आवाज",
+        "MAIL": "मेल",
+        "CHAT": "चैट",
+        "SMS": "SMS",
+        "OPENCHANNEL": "चैनल खोलें",
+        "INBOUND_IN_QUEUE": "कतार में इनबाउंड",
+        "OUTBOUND_CALL": "बाह्यवर्ती कॉल",
+        "VALUE": "मूल्य",
+        "FIELD": "क्षेत्र में",
+        "KEY": "कुंजी दबाएं",
+        "CHANNEL": "चैनल",
+        "DELETE": "हटाना",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "TEST_ZENDESKACCOUNT": "टेस्ट Zendesk खाता",
+        "TEST_FRESHDESKACCOUNT": "टेस्ट Freshdesk खाता",
+        "TEST_SUGARCRMACCOUNT": "टेस्ट SugerCRM खाता",
+        "TEST_SALESFORCEACCOUNT": "टेस्ट Salesforce खाता"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/it.json b/public/app/main/apps/integrations/i18n/it.json
new file mode 100644 (file)
index 0000000..f13c828
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Integrazioni",
+        "ZENDESKACCOUNTS": "Account Zendesk",
+        "ID": "Id",
+        "NAME": "Nome",
+        "USERNAME": "Username",
+        "URI": "URI",
+        "BACK": "Indietro",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutti",
+        "SELECT_NONE": "Deseleziona tutti",
+        "EDIT_ZENDESKACCOUNT": "Modifica Account Zendesk",
+        "DELETE_ZENDESKACCOUNT": "Elimina Account Zendesk",
+        "NEW_ZENDESKACCOUNT": "Nuovo Account Zendesk",
+        "AUTHTYPE": "Tipo Autenticazione",
+        "PASSWORD": "Password",
+        "CONFIRM_PASSWORD": "Conferma Password",
+        "TOKEN": "Token",
+        "MOTIONPROXYADDRESS": "Motion or Proxy IP Address",
+        "DESCRIPTION": "Description",
+        "ADD_ZENDESKACCOUNT": "Aggiungi Account Zendesk",
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "USERNAME_REQUIRED": "Lo Username è richiesto",
+            "URI_REQUIRED": "L'URI è richiesto",
+            "URI_MUST_VALID_URL": "L'URI deve essere in un formato valido",
+            "PASSWORD_REQUIRED": "La Password è richiesta",
+            "CONFIRM_NOT_MATCH": "Le password non cambaciano",
+            "TOKEN_REQUIRED": "Il Token è richiesto",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "L' indirizzo deve essere in un formato valido",
+            "CLIENTID_REQUIRED": "Il Client ID è richiesto",
+            "CLIENTSECRET_REQUIRED": "Il Client Secret è richiesto",
+            "SECURITYTOKEN_REQUIRED": "Il Security Token è richiesto",
+            "APIKEY_REQUIRED": "La Api Key è richiesta",
+            "CONTENT_REQUIRED": "Il Contenuto è richiesto",
+            "VARIABLENAME_REQUIRED": "La Variabile è richiesta",
+            "KEY_REQUIRED": "La Chiave è richiesta",
+            "TYPE_REQUIRED": "Il Tipo è richiesto",
+            "VALUE_REQUIRED": "Il Valore è richiesto",
+            "FIELD_REQUIRED": "Il Campo è richiesto"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Motion (Proxy) Address: è obbligatorio se si vuole popolare il body del ticket con l'URL della Registrazione. Per favore, inseriscilo nel seguente formato: &lt;protocol&gt; : //&lt;ipaddress&gt;[:&lt;port&gt;]. Example: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Account",
+        "ZENDESKCONFIGURATIONS": "Configurazioni Zendesk",
+        "SALESFORCECONFIGURATIONS": "Configurazioni Salesforce",
+        "SUGARCRMCONFIGURATIONS": "Configurazioni SugarCRM",
+        "FRESHDESKCONFIGURATIONS": "Configurazioni Freshdesk",
+        "GENERAL": "Generale",
+        "CREATED_AT": "Creato il",
+        "SAVE": "Salva",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Nessuna configurazione Zendesk disponibile",
+        "NEW_ZENDESKCONFIGURATION": "Nuova Configurazione Zendesk",
+        "ADD_ZENDESKCONFIGURATION": "Aggiungi Configurazione Zendesk",
+        "EDIT_ZENDESKCONFIGURATION": "Modifica Configurazione Zendesk",
+        "DELETE_ZENDESKCONFIGURATION": "Elimina Configurazione Zendesk",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "Nessuna configurazione Salesforce disponibile",
+        "NEW_SALESFORCECONFIGURATION": "Nuova Configurazione Salesforce",
+        "ADD_SALESFORCECONFIGURATION": "Aggiungi Configurazione Salesforce",
+        "EDIT_SALESFORCECONFIGURATION": "Modifica Configurazione Salesforce",
+        "DELETE_SALESFORCECONFIGURATION": "Elimina Configurazione Salesforce",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "Nessuna configurazione SugarCRM disponibile",
+        "NEW_SUGARCRMCONFIGURATION": "Nuova Configurazione SugarCRM",
+        "ADD_SUGARCRMCONFIGURATION": "Aggiungi Configurazione SugarCRM",
+        "EDIT_SUGARCRMCONFIGURATION": "Modifica Configurazione SugarCRM",
+        "DELETE_SUGARCRMCONFIGURATION": "Elimina Configurazione SugarCRM",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "Nessuna configurazione Freshdesk disponibile",
+        "NEW_FRESHDESKCONFIGURATION": "Nuova Configurazione Freshdesk",
+        "ADD_FRESHDESKCONFIGURATION": "Aggiungi Configurazione Freshdesk",
+        "EDIT_FRESHDESKCONFIGURATION": "Modifica Configurazione Freshdesk",
+        "DELETE_FRESHDESKCONFIGURATION": "Elimina Configurazione Freshdesk",
+        "SALESFORCEACCOUNTS": "Account Salesforce",
+        "EDIT_SALESFORCEACCOUNT": "Modifica Account Salesforce",
+        "DELETE_SALESFORCEACCOUNT": "Elimina Account Salesforce",
+        "NEW_SALESFORCEACCOUNT": "Nuovo Account Salesforce",
+        "ADD_SALESFORCEACCOUNT": "Aggiungi Account Salesforce",
+        "CLIENTID": "Client ID",
+        "CLIENTSECRET": "Client Secret",
+        "SECURITYTOKEN": "Security Token",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "APIKEY": "Api Key",
+        "FRESHDESKACCOUNTS": "Account Freshdesk",
+        "EDIT_FRESHDESKACCOUNT": "Modifica Account Freshdesk",
+        "DELETE_FRESHDESKACCOUNT": "Elimina Account Freshdesk",
+        "NEW_FRESHDESKACCOUNT": "Nuovo Account Freshdesk",
+        "ADD_FRESHDESKACCOUNT": "Aggiungi Account Freshdesk",
+        "SUGARCRMACCOUNTS": "Account SugarCRM",
+        "EDIT_SUGARCRMACCOUNT": "Modifica Account SugarCRM",
+        "DELETE_SUGARCRMACCOUNT": "Elimina Account SugarCRM",
+        "NEW_SUGARCRMACCOUNT": "Nuovo Account SugarCRM",
+        "ADD_SUGARCRMACCOUNT": "Aggiungi Account SugarCRM",
+        "CONFIGURATIONS": "Configurazioni",
+        "NO_CONFIGURATION_AVAILABLE": "Nessuna configurazione disponibile",
+        "NEW_CONFIGURATION": "Nuova Configurazione",
+        "ADD_CONFIGURATION": "Aggiungi Configurazione",
+        "EDIT_CONFIGURATION": "Modifica Configurazione",
+        "DELETE_CONFIGURATION": "Elimina Configurazione",
+        "SUBJECTS": "Soggetti",
+        "DESCRIPTIONS": "Descrizioni",
+        "FIELDS": "Campi",
+        "TAGS": "Tag",
+        "TYPE": "Tipo",
+        "CONTENT": "Contenuto",
+        "EDIT_SUBJECT": "Modifica Soggetto",
+        "DELETE_SUBJECT": "Elimina Soggetto",
+        "NEW_SUBJECT": "Nuovo Soggetto",
+        "ADD_SUBJECT": "Aggiungi Soggetto",
+        "EDIT_DESCRIPTION": "Modifica Descrizione",
+        "DELETE_DESCRIPTION": "Elimina Descrizione",
+        "NEW_DESCRIPTION": "Nuova Descrizione",
+        "ADD_DESCRIPTION": "Aggiungi Descrizione",
+        "EDIT_FIELD": "Modifica Campo",
+        "DELETE_FIELD": "Elimina Campo",
+        "NEW_FIELD": "Nuovo Campo",
+        "ADD_FIELD": "Aggiungi Campo",
+        "ADD": "Aggiungi",
+        "VOICE": "Voce",
+        "MAIL": "Mail",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Open Channel",
+        "INBOUND_IN_QUEUE": "Inbound su Coda",
+        "OUTBOUND_CALL": "Chiamata Outbound",
+        "VALUE": "Valore",
+        "FIELD": "Campo",
+        "KEY": "Chiave",
+        "CHANNEL": "Canale",
+        "DELETE": "Elimina",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "TEST_ZENDESKACCOUNT": "Test account Zendesk",
+        "TEST_FRESHDESKACCOUNT": "Test account Freshdesk",
+        "TEST_SUGARCRMACCOUNT": "Test account SugerCRM",
+        "TEST_SALESFORCEACCOUNT": "Test account Salesforce"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/ja.json b/public/app/main/apps/integrations/i18n/ja.json
new file mode 100644 (file)
index 0000000..c3e7f1b
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "統合",
+        "ZENDESKACCOUNTS": "Zendesk アカウント",
+        "ID": "Id",
+        "NAME": "名",
+        "USERNAME": "ユーザ名",
+        "URI": "ヨルリン・ウリ",
+        "BACK": "背面",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "EDIT_ZENDESKACCOUNT": "Zendesk アカウントの編集",
+        "DELETE_ZENDESKACCOUNT": "Zendesk アカウントを削除します",
+        "NEW_ZENDESKACCOUNT": "新しいアカウント Zendesk",
+        "AUTHTYPE": "認証タイプ",
+        "PASSWORD": "パスワード",
+        "CONFIRM_PASSWORD": "パスワードを確認します",
+        "TOKEN": "トークン",
+        "MOTIONPROXYADDRESS": "モーションまたはプロキシの IP アドレス",
+        "DESCRIPTION": "説明",
+        "ADD_ZENDESKACCOUNT": "Zendesk アカウントを追加します",
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "USERNAME_REQUIRED": "ユーザ名が必要です",
+            "URI_REQUIRED": "の URI が必要です",
+            "URI_MUST_VALID_URL": "URI が有効な形式で記述する必要があります",
+            "PASSWORD_REQUIRED": "パスワードが必要です",
+            "CONFIRM_NOT_MATCH": "パスワードは、 Don ’ t が一致し",
+            "TOKEN_REQUIRED": "トークンが必要",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "アドレスは有効な形式で記述する必要があります",
+            "CLIENTID_REQUIRED": "クライアント ID が必要です。",
+            "CLIENTSECRET_REQUIRED": "クライアントの秘密鍵が必要",
+            "SECURITYTOKEN_REQUIRED": "セキュリティトークンが必要",
+            "APIKEY_REQUIRED": "では、 API キーが必要です",
+            "CONTENT_REQUIRED": "コンテンツは必要に応じて",
+            "VARIABLENAME_REQUIRED": "では、変数が必要です",
+            "KEY_REQUIRED": "キーが必要です",
+            "TYPE_REQUIRED": "のタイプが必要です",
+            "VALUE_REQUIRED": "の値が必要です",
+            "FIELD_REQUIRED": "このフィールドは必須です"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "モーション(プロキシ)アドレス:再コーディング URL チケットボディを記入したい場合は必須です。 には、次の形式で次のように入力します。 lt & ; プロトコル & gt ; : / / & lt ; ipaddress & gt ; [ : & lt ; ポート & gt ; ] してください。 例: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "アカウント",
+        "ZENDESKCONFIGURATIONS": "Zendesk 構成",
+        "SALESFORCECONFIGURATIONS": "Salesforce 構成",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM の構成",
+        "FRESHDESKCONFIGURATIONS": "構成 Freshdesk",
+        "GENERAL": "一般的な",
+        "CREATED_AT": "で作成された",
+        "SAVE": "保存",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Zendesk 構成はご利用いただけません。",
+        "NEW_ZENDESKCONFIGURATION": "新しい構成 Zendesk",
+        "ADD_ZENDESKCONFIGURATION": "Zendesk 構成を追加します",
+        "EDIT_ZENDESKCONFIGURATION": "Zendesk 構成の編集",
+        "DELETE_ZENDESKCONFIGURATION": "Zendesk 設定を削除します",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "Salesforce の設定はご利用いただけません。",
+        "NEW_SALESFORCECONFIGURATION": "新しい Salesforce の設定",
+        "ADD_SALESFORCECONFIGURATION": "Salesforce の設定を追加する",
+        "EDIT_SALESFORCECONFIGURATION": "Salesforce の設定の編集",
+        "DELETE_SALESFORCECONFIGURATION": "Salesforce の設定の削除",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "SugarCRM の設定はご利用いただけません。",
+        "NEW_SUGARCRMCONFIGURATION": "新しい構成の SugarCRM の",
+        "ADD_SUGARCRMCONFIGURATION": "SugarCRM の構成を追加します",
+        "EDIT_SUGARCRMCONFIGURATION": "SugarCRM の設定の編集",
+        "DELETE_SUGARCRMCONFIGURATION": "SugarCRM の構成を削除します",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "Freshdesk 構成はご利用いただけません。",
+        "NEW_FRESHDESKCONFIGURATION": "新しい構成 Freshdesk",
+        "ADD_FRESHDESKCONFIGURATION": "Freshdesk 構成を追加します",
+        "EDIT_FRESHDESKCONFIGURATION": "Freshdesk 構成の編集",
+        "DELETE_FRESHDESKCONFIGURATION": "Freshdesk 設定を削除します",
+        "SALESFORCEACCOUNTS": "Salesforce のアカウント",
+        "EDIT_SALESFORCEACCOUNT": "Salesforce アカウントの編集",
+        "DELETE_SALESFORCEACCOUNT": "Salesforce のアカウントを削除します",
+        "NEW_SALESFORCEACCOUNT": "新しい Salesforce アカウント",
+        "ADD_SALESFORCEACCOUNT": "Salesforce のアカウントを追加します",
+        "CLIENTID": "クライアント ID",
+        "CLIENTSECRET": "クライアントの秘密",
+        "SECURITYTOKEN": "セキュリティトークン",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "APIKEY": "Api キー",
+        "FRESHDESKACCOUNTS": "Freshdesk アカウント",
+        "EDIT_FRESHDESKACCOUNT": "Freshdesk アカウントの編集",
+        "DELETE_FRESHDESKACCOUNT": "Freshdesk アカウントを削除します",
+        "NEW_FRESHDESKACCOUNT": "新しいアカウント Freshdesk",
+        "ADD_FRESHDESKACCOUNT": "Freshdesk アカウントを追加します",
+        "SUGARCRMACCOUNTS": "SugarCRM のアカウント",
+        "EDIT_SUGARCRMACCOUNT": "SugarCRM のアカウントの編集",
+        "DELETE_SUGARCRMACCOUNT": "SugarCRM のアカウントを削除します",
+        "NEW_SUGARCRMACCOUNT": "新しいアカウントの SugarCRM の",
+        "ADD_SUGARCRMACCOUNT": "SugarCRM のアカウントを追加します",
+        "CONFIGURATIONS": "構成",
+        "NO_CONFIGURATION_AVAILABLE": "設定はご利用いただけません。",
+        "NEW_CONFIGURATION": "新しい構成",
+        "ADD_CONFIGURATION": "設定の追加",
+        "EDIT_CONFIGURATION": "構成の編集",
+        "DELETE_CONFIGURATION": "設定を削除します",
+        "SUBJECTS": "科目",
+        "DESCRIPTIONS": "の説明",
+        "FIELDS": "フィールド",
+        "TAGS": "タグ",
+        "TYPE": "タイプ",
+        "CONTENT": "コンテンツ",
+        "EDIT_SUBJECT": "件名を編集",
+        "DELETE_SUBJECT": "件名を削除",
+        "NEW_SUBJECT": "新しい件名",
+        "ADD_SUBJECT": "件名の追加",
+        "EDIT_DESCRIPTION": "説明の編集",
+        "DELETE_DESCRIPTION": "説明を削除",
+        "NEW_DESCRIPTION": "新しい説明を入力します。",
+        "ADD_DESCRIPTION": "説明を追加します。",
+        "EDIT_FIELD": "編集フィールド",
+        "DELETE_FIELD": "フィールドを削除する",
+        "NEW_FIELD": "新しいフィールド",
+        "ADD_FIELD": "フィールドを追加する",
+        "ADD": "を追加",
+        "VOICE": "音声",
+        "MAIL": "電子メール",
+        "CHAT": "チャット",
+        "SMS": "SMS",
+        "OPENCHANNEL": "チャネルを開きます。",
+        "INBOUND_IN_QUEUE": "キュー内のインバウンド",
+        "OUTBOUND_CALL": "アウトバウンドコール",
+        "VALUE": "値",
+        "FIELD": "フィールド",
+        "KEY": "キー",
+        "CHANNEL": "チャネル",
+        "DELETE": "削除",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "TEST_ZENDESKACCOUNT": "テストアカウント Zendesk",
+        "TEST_FRESHDESKACCOUNT": "テスト Freshdesk アカウント",
+        "TEST_SUGARCRMACCOUNT": "テスト SugerCRM アカウント",
+        "TEST_SALESFORCEACCOUNT": "テストの Salesforce アカウント"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/ko.json b/public/app/main/apps/integrations/i18n/ko.json
new file mode 100644 (file)
index 0000000..761b741
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "통합",
+        "ZENDESKACCOUNTS": "Zendesk 계정",
+        "ID": "Id",
+        "NAME": "이름",
+        "USERNAME": "사용자 이름",
+        "URI": "URI",
+        "BACK": "후면",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "EDIT_ZENDESKACCOUNT": "편집 Zendesk 계정",
+        "DELETE_ZENDESKACCOUNT": "Zendesk 계정 삭제",
+        "NEW_ZENDESKACCOUNT": "새 계정 Zendesk",
+        "AUTHTYPE": "인증 유형",
+        "PASSWORD": "암호",
+        "CONFIRM_PASSWORD": "암호 확인",
+        "TOKEN": "토큰",
+        "MOTIONPROXYADDRESS": "동작 또는 프록시 IP 주소",
+        "DESCRIPTION": "설명",
+        "ADD_ZENDESKACCOUNT": "Zendesk 계정 추가",
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "USERNAME_REQUIRED": "사용자 이름이 필요합니다.",
+            "URI_REQUIRED": "URI가 필요합니다.",
+            "URI_MUST_VALID_URL": "URI는 유효한 형식으로 작성되어 있어야 합니다",
+            "PASSWORD_REQUIRED": "암호 필요",
+            "CONFIRM_NOT_MATCH": "비밀번호는 그리고그 일치하지 않음",
+            "TOKEN_REQUIRED": "토큰이 필요합니다.",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "주소가 유효한 형식으로 작성되어 있어야 합니다",
+            "CLIENTID_REQUIRED": "클라이언트 ID가 필요합니다.",
+            "CLIENTSECRET_REQUIRED": "이 클라이언트는 암호 필요",
+            "SECURITYTOKEN_REQUIRED": "보안 토큰이 필요합니다.",
+            "APIKEY_REQUIRED": "API 키 필요",
+            "CONTENT_REQUIRED": "내용이 필요합니다.",
+            "VARIABLENAME_REQUIRED": "변수가 필요합니다.",
+            "KEY_REQUIRED": "키가 필요합니다.",
+            "TYPE_REQUIRED": "형식이 필요합니다.",
+            "VALUE_REQUIRED": "값이 필요합니다.",
+            "FIELD_REQUIRED": "이 필드는 필수 항목입니다."
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Motion(프록시) 주소: 다시 코딩하지 url 항공권 본문을 채울 경우 필수입니다. 다음과 같은 형식으로 입력하십시오: lt &, 프로토콜&GT;:// &LT;ipaddress&GT; [: &LT;포트&GT;]. 예: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "계정",
+        "ZENDESKCONFIGURATIONS": "Zendesk 구성",
+        "SALESFORCECONFIGURATIONS": "Salesforce 구성에",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM 구성",
+        "FRESHDESKCONFIGURATIONS": "Freshdesk 구성",
+        "GENERAL": "일반",
+        "CREATED_AT": "생성",
+        "SAVE": "저장",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "사용 가능한 Zendesk 구성 없음",
+        "NEW_ZENDESKCONFIGURATION": "새로운 Zendesk 구성",
+        "ADD_ZENDESKCONFIGURATION": "Zendesk 구성 추가",
+        "EDIT_ZENDESKCONFIGURATION": "Zendesk 구성 편집",
+        "DELETE_ZENDESKCONFIGURATION": "Zendesk 구성 삭제",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "사용 가능한 Salesforce 구성 없음",
+        "NEW_SALESFORCECONFIGURATION": "새로운 Salesforce 구성",
+        "ADD_SALESFORCECONFIGURATION": "Salesforce 구성 추가",
+        "EDIT_SALESFORCECONFIGURATION": "Salesforce 구성 편집",
+        "DELETE_SALESFORCECONFIGURATION": "Salesforce 구성 삭제",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "사용 가능한 SugarCRM 구성 없음",
+        "NEW_SUGARCRMCONFIGURATION": "새로운 SugarCRM 구성",
+        "ADD_SUGARCRMCONFIGURATION": "Sugarcrm 구성 추가",
+        "EDIT_SUGARCRMCONFIGURATION": "Sugarcrm 구성 편집",
+        "DELETE_SUGARCRMCONFIGURATION": "Sugarcrm 구성 삭제",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "사용 가능한 Freshdesk 구성 없음",
+        "NEW_FRESHDESKCONFIGURATION": "새로운 Freshdesk 구성",
+        "ADD_FRESHDESKCONFIGURATION": "Freshdesk 구성 추가",
+        "EDIT_FRESHDESKCONFIGURATION": "Freshdesk 구성 편집",
+        "DELETE_FRESHDESKCONFIGURATION": "Freshdesk 구성 삭제",
+        "SALESFORCEACCOUNTS": "Salesforce 계정",
+        "EDIT_SALESFORCEACCOUNT": "Salesforce 계정 편집",
+        "DELETE_SALESFORCEACCOUNT": "Salesforce 계정 삭제",
+        "NEW_SALESFORCEACCOUNT": "새로운 Salesforce 계정",
+        "ADD_SALESFORCEACCOUNT": "Salesforce 계정 추가",
+        "CLIENTID": "클라이언트 ID",
+        "CLIENTSECRET": "클라이언트는 암호",
+        "SECURITYTOKEN": "보안 토큰",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "APIKEY": "Api 키",
+        "FRESHDESKACCOUNTS": "Freshdesk 계정",
+        "EDIT_FRESHDESKACCOUNT": "편집 Freshdesk 계정",
+        "DELETE_FRESHDESKACCOUNT": "Freshdesk 계정 삭제",
+        "NEW_FRESHDESKACCOUNT": "새 계정 Freshdesk",
+        "ADD_FRESHDESKACCOUNT": "Freshdesk 계정 추가",
+        "SUGARCRMACCOUNTS": "SugarCRM 계정",
+        "EDIT_SUGARCRMACCOUNT": "Sugarcrm 계정 편집",
+        "DELETE_SUGARCRMACCOUNT": "Sugarcrm 계정 삭제",
+        "NEW_SUGARCRMACCOUNT": "새 계정 SugarCRM",
+        "ADD_SUGARCRMACCOUNT": "Sugarcrm 계정 추가",
+        "CONFIGURATIONS": "구성",
+        "NO_CONFIGURATION_AVAILABLE": "사용 가능한 구성 없음",
+        "NEW_CONFIGURATION": "새 구성",
+        "ADD_CONFIGURATION": "구성 추가",
+        "EDIT_CONFIGURATION": "구성 항목 편집",
+        "DELETE_CONFIGURATION": "구성 삭제",
+        "SUBJECTS": "주제",
+        "DESCRIPTIONS": "설명",
+        "FIELDS": "필드",
+        "TAGS": "태그",
+        "TYPE": "유형",
+        "CONTENT": "콘텐츠",
+        "EDIT_SUBJECT": "제목 편집",
+        "DELETE_SUBJECT": "제목 삭제",
+        "NEW_SUBJECT": "새 메시지 제목을",
+        "ADD_SUBJECT": "제목 추가",
+        "EDIT_DESCRIPTION": "설명 편집",
+        "DELETE_DESCRIPTION": "설명 Delete",
+        "NEW_DESCRIPTION": "새 설명",
+        "ADD_DESCRIPTION": "설명 추가",
+        "EDIT_FIELD": "필드 편집",
+        "DELETE_FIELD": "필드 삭제",
+        "NEW_FIELD": "새 필드",
+        "ADD_FIELD": "필드 추가",
+        "ADD": "추가",
+        "VOICE": "음성",
+        "MAIL": "메일",
+        "CHAT": "채팅",
+        "SMS": "SMS",
+        "OPENCHANNEL": "채널",
+        "INBOUND_IN_QUEUE": "대기열에서 인바운드",
+        "OUTBOUND_CALL": "아웃바운드 통화",
+        "VALUE": "값",
+        "FIELD": "필드",
+        "KEY": "키",
+        "CHANNEL": "채널",
+        "DELETE": "삭제",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "TEST_ZENDESKACCOUNT": "테스트 계정 Zendesk",
+        "TEST_FRESHDESKACCOUNT": "테스트 계정 Freshdesk",
+        "TEST_SUGARCRMACCOUNT": "테스트 계정 SugerCRM",
+        "TEST_SALESFORCEACCOUNT": "테스트 Salesforce 계정"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/nl.json b/public/app/main/apps/integrations/i18n/nl.json
new file mode 100644 (file)
index 0000000..b673f7a
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Integraties",
+        "ZENDESKACCOUNTS": "Zendesk Accounts",
+        "ID": "Id",
+        "NAME": "Naam",
+        "USERNAME": "Gebruikersnaam",
+        "URI": "URI",
+        "BACK": "Terug",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "EDIT_ZENDESKACCOUNT": "Edit Zendesk Account",
+        "DELETE_ZENDESKACCOUNT": "Verwijder Zendesk Account",
+        "NEW_ZENDESKACCOUNT": "Nieuwe Zendesk Account",
+        "AUTHTYPE": "Authentication Type (Verificatietype)",
+        "PASSWORD": "Wachtwoord",
+        "CONFIRM_PASSWORD": "Wachtwoord bevestigen",
+        "TOKEN": "Token",
+        "MOTIONPROXYADDRESS": "Beweging of Proxy IP Adres",
+        "DESCRIPTION": "Beschrijving",
+        "ADD_ZENDESKACCOUNT": "Voeg Zendesk Account",
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "USERNAME_REQUIRED": "De gebruikersnaam is vereist",
+            "URI_REQUIRED": "De URI is vereist",
+            "URI_MUST_VALID_URL": "De URI (Uniform Resource Identifier) moet worden geschreven in een geldige indeling",
+            "PASSWORD_REQUIRED": "Het wachtwoord is vereist",
+            "CONFIRM_NOT_MATCH": "De wachtwoorden Don' t match",
+            "TOKEN_REQUIRED": "Het token is vereist",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "Het adres moet worden geschreven in een geldige indeling",
+            "CLIENTID_REQUIRED": "De klant-ID is vereist.",
+            "CLIENTSECRET_REQUIRED": "De Cliënt geheim is vereist",
+            "SECURITYTOKEN_REQUIRED": "De Security token is vereist",
+            "APIKEY_REQUIRED": "De API Key nodig",
+            "CONTENT_REQUIRED": "De inhoud is vereist",
+            "VARIABLENAME_REQUIRED": "De variabele is vereist",
+            "KEY_REQUIRED": "De sleutel is vereist",
+            "TYPE_REQUIRED": "Het type is vereist",
+            "VALUE_REQUIRED": "De waarde is vereist",
+            "FIELD_REQUIRED": "Het is een verplicht veld"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Motion (Proxy) Adres: het is verplicht als je wilt vul het ticket body met gereist en URL. Voer in de volgende notatie: <protocol> : //<ipaddress>[:<port>]. Voorbeeld: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Account",
+        "ZENDESKCONFIGURATIONS": "Zendesk configuraties",
+        "SALESFORCECONFIGURATIONS": "Salesforce-configuraties",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM configuraties",
+        "FRESHDESKCONFIGURATIONS": "Freshdesk configuraties",
+        "GENERAL": "Algemeen",
+        "CREATED_AT": "Gemaakt op",
+        "SAVE": "Opslaan",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Nee Zendesk configuraties beschikbaar",
+        "NEW_ZENDESKCONFIGURATION": "Nieuwe Zendesk configuratie",
+        "ADD_ZENDESKCONFIGURATION": "Voeg Zendesk configuratie",
+        "EDIT_ZENDESKCONFIGURATION": "Edit Zendesk configuratie",
+        "DELETE_ZENDESKCONFIGURATION": "Verwijder Zendesk configuratie",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "Geen Salesforce-configuraties beschikbaar",
+        "NEW_SALESFORCECONFIGURATION": "Nieuwe Salesforce-configuratie",
+        "ADD_SALESFORCECONFIGURATION": "Voeg Salesforce-configuratie",
+        "EDIT_SALESFORCECONFIGURATION": "Edit Salesforce-configuratie",
+        "DELETE_SALESFORCECONFIGURATION": "Verwijder Salesforce-configuratie",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "Nee SugarCRM configuraties beschikbaar",
+        "NEW_SUGARCRMCONFIGURATION": "Nieuwe SugarCRM Configuratie",
+        "ADD_SUGARCRMCONFIGURATION": "Voeg SugarCRM Configuratie",
+        "EDIT_SUGARCRMCONFIGURATION": "Edit SugarCRM Configuratie",
+        "DELETE_SUGARCRMCONFIGURATION": "Verwijder SugarCRM Configuratie",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "Nee Freshdesk configuraties beschikbaar",
+        "NEW_FRESHDESKCONFIGURATION": "Nieuwe Freshdesk configuratie",
+        "ADD_FRESHDESKCONFIGURATION": "Voeg Freshdesk configuratie",
+        "EDIT_FRESHDESKCONFIGURATION": "Edit Freshdesk configuratie",
+        "DELETE_FRESHDESKCONFIGURATION": "Verwijder Freshdesk configuratie",
+        "SALESFORCEACCOUNTS": "Salesforce-accounts",
+        "EDIT_SALESFORCEACCOUNT": "Edit Salesforce-account",
+        "DELETE_SALESFORCEACCOUNT": "Verwijder Salesforce-account",
+        "NEW_SALESFORCEACCOUNT": "Nieuwe Salesforce-account",
+        "ADD_SALESFORCEACCOUNT": "Voeg Salesforce-account",
+        "CLIENTID": "Klantnr.",
+        "CLIENTSECRET": "Opdrachtgever geheim",
+        "SECURITYTOKEN": "Beveiligingstoken",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "APIKEY": "Api-sleutel",
+        "FRESHDESKACCOUNTS": "Freshdesk Accounts",
+        "EDIT_FRESHDESKACCOUNT": "Edit Freshdesk Account",
+        "DELETE_FRESHDESKACCOUNT": "Verwijder Freshdesk Account",
+        "NEW_FRESHDESKACCOUNT": "Nieuwe Freshdesk Account",
+        "ADD_FRESHDESKACCOUNT": "Voeg Freshdesk Account",
+        "SUGARCRMACCOUNTS": "SugarCRM Accounts",
+        "EDIT_SUGARCRMACCOUNT": "Edit SugarCRM Account",
+        "DELETE_SUGARCRMACCOUNT": "Verwijder SugarCRM Account",
+        "NEW_SUGARCRMACCOUNT": "Nieuwe SugarCRM Account",
+        "ADD_SUGARCRMACCOUNT": "Voeg SugarCRM Account",
+        "CONFIGURATIONS": "Configuraties",
+        "NO_CONFIGURATION_AVAILABLE": "Geen configuraties beschikbaar",
+        "NEW_CONFIGURATION": "Nieuwe configuratie",
+        "ADD_CONFIGURATION": "Dialoogvenster Configuratie toevoegen",
+        "EDIT_CONFIGURATION": "Configuratie bewerken",
+        "DELETE_CONFIGURATION": "Configuratie verwijderen",
+        "SUBJECTS": "Onderwerpen",
+        "DESCRIPTIONS": "Beschrijvingen",
+        "FIELDS": "Velden",
+        "TAGS": "Tags",
+        "TYPE": "Type",
+        "CONTENT": "Inhoud",
+        "EDIT_SUBJECT": "Onderwerp bewerken",
+        "DELETE_SUBJECT": "Onderwerp verwijderen",
+        "NEW_SUBJECT": "Nieuw onderwerp",
+        "ADD_SUBJECT": "Onderwerp toevoegen",
+        "EDIT_DESCRIPTION": "Edit description (beschrijving bewerken)",
+        "DELETE_DESCRIPTION": "Beschrijving verwijderen",
+        "NEW_DESCRIPTION": "Nieuwe beschrijving",
+        "ADD_DESCRIPTION": "Voeg de beschrijving",
+        "EDIT_FIELD": "Invoerveld",
+        "DELETE_FIELD": "Veld wissen",
+        "NEW_FIELD": "Nieuw veld",
+        "ADD_FIELD": "Veld toevoegen",
+        "ADD": "Toevoegen",
+        "VOICE": "Spraak",
+        "MAIL": "Mail",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Open kanaal",
+        "INBOUND_IN_QUEUE": "Inbound in wachtrij",
+        "OUTBOUND_CALL": "Uitgaand gesprek",
+        "VALUE": "Waarde",
+        "FIELD": "Veld",
+        "KEY": "Sleutel",
+        "CHANNEL": "Kanaal",
+        "DELETE": "Verwijderen",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "TEST_ZENDESKACCOUNT": "Test Zendesk Account",
+        "TEST_FRESHDESKACCOUNT": "Test Freshdesk Account",
+        "TEST_SUGARCRMACCOUNT": "Test SugerCRM Account",
+        "TEST_SALESFORCEACCOUNT": "Test Salesforce-account"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/no.json b/public/app/main/apps/integrations/i18n/no.json
new file mode 100644 (file)
index 0000000..7e44b1d
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Integreringer",
+        "ZENDESKACCOUNTS": "Zendesk kontoer",
+        "ID": "Id",
+        "NAME": "Navn",
+        "USERNAME": "Brukernavn",
+        "URI": "URI",
+        "BACK": "Tilbake",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "EDIT_ZENDESKACCOUNT": "Rediger Zendesk konto",
+        "DELETE_ZENDESKACCOUNT": "Slette Zendesk konto",
+        "NEW_ZENDESKACCOUNT": "Ny Zendesk konto",
+        "AUTHTYPE": "Godkjenningstype",
+        "PASSWORD": "Passord",
+        "CONFIRM_PASSWORD": "Bekreft passord",
+        "TOKEN": "Brikke",
+        "MOTIONPROXYADDRESS": "Bevegelse eller Proxy IP-adresse",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_ZENDESKACCOUNT": "Legg Zendesk konto",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "USERNAME_REQUIRED": "Brukernavnet er nødvendig",
+            "URI_REQUIRED": "Den URI er nødvendig",
+            "URI_MUST_VALID_URL": "Urien må være skrevet i et gyldig format",
+            "PASSWORD_REQUIRED": "Passordet er nødvendig",
+            "CONFIRM_NOT_MATCH": "Passordene don' t kamp",
+            "TOKEN_REQUIRED": "Tokenet er nødvendig",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "Adressen må være skrevet i et gyldig format",
+            "CLIENTID_REQUIRED": "Klient-ID er obligatorisk",
+            "CLIENTSECRET_REQUIRED": "Klienten hemmelige er nødvendig",
+            "SECURITYTOKEN_REQUIRED": "Security-brikke er nødvendig",
+            "APIKEY_REQUIRED": "API-tasten er nødvendig",
+            "CONTENT_REQUIRED": "Innholdet er nødvendig",
+            "VARIABLENAME_REQUIRED": "Variabelen er nødvendig",
+            "KEY_REQUIRED": "Nøkkelen er nødvendig",
+            "TYPE_REQUIRED": "Den typen som er påkrevd",
+            "VALUE_REQUIRED": "Verdien er obligatorisk",
+            "FIELD_REQUIRED": "Feltet er obligatorisk"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Bevegelse (Proxy) Adresse: Det er obligatorisk hvis du ønsker å fylle/kropp med opptaket URL. Skriv inn i følgende format: <protocol> : //<IP>[:<port>]. Eksempel: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Konto",
+        "ZENDESKCONFIGURATIONS": "Zendesk konfigurasjoner",
+        "SALESFORCECONFIGURATIONS": "Salesforce-konfigurasjoner",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM konfigurasjoner",
+        "FRESHDESKCONFIGURATIONS": "Freshdesk konfigurasjoner",
+        "GENERAL": "Generelt",
+        "CREATED_AT": "Opprettet i",
+        "SAVE": "Lagre",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Ingen Zendesk konfigurasjoner tilgjengelig",
+        "NEW_ZENDESKCONFIGURATION": "Ny Zendesk konfigurasjon",
+        "ADD_ZENDESKCONFIGURATION": "Legg Zendesk konfigurasjon",
+        "EDIT_ZENDESKCONFIGURATION": "Rediger Zendesk konfigurasjon",
+        "DELETE_ZENDESKCONFIGURATION": "Slette Zendesk konfigurasjon",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "Ingen Salesforce-konfigurasjoner tilgjengelig",
+        "NEW_SALESFORCECONFIGURATION": "Ny Salesforce-konfigurasjon",
+        "ADD_SALESFORCECONFIGURATION": "Legg til Salesforce-konfigurasjon",
+        "EDIT_SALESFORCECONFIGURATION": "Rediger Salesforce-konfigurasjon",
+        "DELETE_SALESFORCECONFIGURATION": "Slette Salesforce-konfigurasjon",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "Ingen SugarCRM konfigurasjoner tilgjengelig",
+        "NEW_SUGARCRMCONFIGURATION": "Ny SugarCRM konfigurasjon",
+        "ADD_SUGARCRMCONFIGURATION": "Legg SugarCRM konfigurasjon",
+        "EDIT_SUGARCRMCONFIGURATION": "Rediger SugarCRM konfigurasjon",
+        "DELETE_SUGARCRMCONFIGURATION": "Slette SugarCRM konfigurasjon",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "Ingen Freshdesk konfigurasjoner tilgjengelig",
+        "NEW_FRESHDESKCONFIGURATION": "Ny Freshdesk konfigurasjon",
+        "ADD_FRESHDESKCONFIGURATION": "Legg Freshdesk konfigurasjon",
+        "EDIT_FRESHDESKCONFIGURATION": "Rediger Freshdesk konfigurasjon",
+        "DELETE_FRESHDESKCONFIGURATION": "Slette Freshdesk konfigurasjon",
+        "SALESFORCEACCOUNTS": "Salesforce kontoer",
+        "EDIT_SALESFORCEACCOUNT": "Rediger Salesforce-kontoen",
+        "DELETE_SALESFORCEACCOUNT": "Slette Salesforce-kontoen",
+        "NEW_SALESFORCEACCOUNT": "Ny Salesforce-kontoen",
+        "ADD_SALESFORCEACCOUNT": "Legg til Salesforce-kontoen",
+        "CLIENTID": "Klient-ID",
+        "CLIENTSECRET": "Klienten hemmelige",
+        "SECURITYTOKEN": "Sikkerhet Token",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "APIKEY": "Api-nøkkel",
+        "FRESHDESKACCOUNTS": "Freshdesk kontoer",
+        "EDIT_FRESHDESKACCOUNT": "Rediger Freshdesk konto",
+        "DELETE_FRESHDESKACCOUNT": "Slette Freshdesk konto",
+        "NEW_FRESHDESKACCOUNT": "Ny Freshdesk konto",
+        "ADD_FRESHDESKACCOUNT": "Legg Freshdesk konto",
+        "SUGARCRMACCOUNTS": "SugarCRM kontoer",
+        "EDIT_SUGARCRMACCOUNT": "Rediger SugarCRM konto",
+        "DELETE_SUGARCRMACCOUNT": "Slette SugarCRM konto",
+        "NEW_SUGARCRMACCOUNT": "Ny SugarCRM konto",
+        "ADD_SUGARCRMACCOUNT": "Legg SugarCRM konto",
+        "CONFIGURATIONS": "Konfigurasjoner",
+        "NO_CONFIGURATION_AVAILABLE": "Ingen konfigurasjoner tilgjengelig",
+        "NEW_CONFIGURATION": "Ny konfigurasjon",
+        "ADD_CONFIGURATION": "Legg til konfigurasjon",
+        "EDIT_CONFIGURATION": "Endre konfigurasjon",
+        "DELETE_CONFIGURATION": "Slett konfigurasjon",
+        "SUBJECTS": "Motiver",
+        "DESCRIPTIONS": "Beskrivelser",
+        "FIELDS": "Felt",
+        "TAGS": "Tags",
+        "TYPE": "Type",
+        "CONTENT": "Innhold",
+        "EDIT_SUBJECT": "Rediger emne",
+        "DELETE_SUBJECT": "Slett motivet",
+        "NEW_SUBJECT": "Nytt emne",
+        "ADD_SUBJECT": "Legg til emne",
+        "EDIT_DESCRIPTION": "Rediger beskrivelse",
+        "DELETE_DESCRIPTION": "Slette beskrivelse",
+        "NEW_DESCRIPTION": "Ny beskrivelse",
+        "ADD_DESCRIPTION": "Legg til beskrivelse",
+        "EDIT_FIELD": "Redigere feltet",
+        "DELETE_FIELD": "Slette feltet",
+        "NEW_FIELD": "Nytt felt",
+        "ADD_FIELD": "Legg til felt",
+        "ADD": "Legg til",
+        "VOICE": "Stemme",
+        "MAIL": "Post",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Åpen kanal",
+        "INBOUND_IN_QUEUE": "Inngående i køen",
+        "OUTBOUND_CALL": "Utgående anrop",
+        "VALUE": "Verdi",
+        "FIELD": "Feltet",
+        "KEY": "Tasten",
+        "CHANNEL": "Kanal",
+        "DELETE": "Slette",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "TEST_ZENDESKACCOUNT": "Test Zendesk konto",
+        "TEST_FRESHDESKACCOUNT": "Test Freshdesk konto",
+        "TEST_SUGARCRMACCOUNT": "Test SugerCRM konto",
+        "TEST_SALESFORCEACCOUNT": "Test Salesforce-kontoen"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/pt-PT.json b/public/app/main/apps/integrations/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..abf1812
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Integrações",
+        "ZENDESKACCOUNTS": "Contas Zendesk",
+        "ID": "Id",
+        "NAME": "Nome",
+        "USERNAME": "Nome de usuário",
+        "URI": "URI",
+        "BACK": "De volta",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "EDIT_ZENDESKACCOUNT": "Editar conta Zendesk",
+        "DELETE_ZENDESKACCOUNT": "Excluir conta Zendesk",
+        "NEW_ZENDESKACCOUNT": "Nova conta de Zendesk",
+        "AUTHTYPE": "Tipo de autenticação",
+        "PASSWORD": "Senha",
+        "CONFIRM_PASSWORD": "Confirmar Senha",
+        "TOKEN": "Token",
+        "MOTIONPROXYADDRESS": "Movimento ou endereço IP do proxy",
+        "DESCRIPTION": "Descrição",
+        "ADD_ZENDESKACCOUNT": "Adicionar Conta Zendesk",
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "USERNAME_REQUIRED": "O nome de usuário é obrigatório",
+            "URI_REQUIRED": "A URI é necessária",
+            "URI_MUST_VALID_URL": "O URI deve ser escrito em um formato válido",
+            "PASSWORD_REQUIRED": "A senha é obrigatória",
+            "CONFIRM_NOT_MATCH": "As senhas não coincidem",
+            "TOKEN_REQUIRED": "O token é necessário",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "O endereço deve ser escrito em um formato válido",
+            "CLIENTID_REQUIRED": "É necessária ID do cliente",
+            "CLIENTSECRET_REQUIRED": "O segredo do cliente é obrigatório",
+            "SECURITYTOKEN_REQUIRED": "O token de segurança for necessária",
+            "APIKEY_REQUIRED": "É necessária a chave da API",
+            "CONTENT_REQUIRED": "O conteúdo é necessária",
+            "VARIABLENAME_REQUIRED": "A variável é necessária",
+            "KEY_REQUIRED": "A chave é necessário",
+            "TYPE_REQUIRED": "O tipo é necessária",
+            "VALUE_REQUIRED": "O valor é obrigatório",
+            "FIELD_REQUIRED": "O campo é obrigatório"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Motion (Proxy) Endereço: é obrigatório se você deseja preencher a folha de corpo com recodificação URL. Por favor, digite no seguinte formato: <protocolo> : //<ipaddress>[:<port>]. Exemplo: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Conta",
+        "ZENDESKCONFIGURATIONS": "Configurações de Zendesk",
+        "SALESFORCECONFIGURATIONS": "Configurações do Salesforce",
+        "SUGARCRMCONFIGURATIONS": "A SugarCRM configurações",
+        "FRESHDESKCONFIGURATIONS": "Configurações Freshdesk",
+        "GENERAL": "Geral",
+        "CREATED_AT": "Criado em",
+        "SAVE": "Salvar",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Não Zendesk configurações disponíveis",
+        "NEW_ZENDESKCONFIGURATION": "Nova configuração Zendesk",
+        "ADD_ZENDESKCONFIGURATION": "Adicionar configuração Zendesk",
+        "EDIT_ZENDESKCONFIGURATION": "Editar Configuração Zendesk",
+        "DELETE_ZENDESKCONFIGURATION": "Excluir Configuração Zendesk",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "Configurações do Salesforce não disponível",
+        "NEW_SALESFORCECONFIGURATION": "Nova configuração do Salesforce",
+        "ADD_SALESFORCECONFIGURATION": "Adicionar configuração do Salesforce",
+        "EDIT_SALESFORCECONFIGURATION": "Editar Configuração do Salesforce",
+        "DELETE_SALESFORCECONFIGURATION": "Excluir Configuração do Salesforce",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "Não SugarCRM configurações disponíveis",
+        "NEW_SUGARCRMCONFIGURATION": "Nova configuração SugarCRM",
+        "ADD_SUGARCRMCONFIGURATION": "Adicionar configuração SugarCRM",
+        "EDIT_SUGARCRMCONFIGURATION": "Editar Configuração SugarCRM",
+        "DELETE_SUGARCRMCONFIGURATION": "Excluir configuração SugarCRM",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "Não Freshdesk configurações disponíveis",
+        "NEW_FRESHDESKCONFIGURATION": "Nova configuração Freshdesk",
+        "ADD_FRESHDESKCONFIGURATION": "Adicionar configuração Freshdesk",
+        "EDIT_FRESHDESKCONFIGURATION": "Editar Configuração Freshdesk",
+        "DELETE_FRESHDESKCONFIGURATION": "Excluir Configuração Freshdesk",
+        "SALESFORCEACCOUNTS": "Contas do Salesforce",
+        "EDIT_SALESFORCEACCOUNT": "Editar conta do Salesforce",
+        "DELETE_SALESFORCEACCOUNT": "Excluir conta do Salesforce",
+        "NEW_SALESFORCEACCOUNT": "Nova conta do Salesforce",
+        "ADD_SALESFORCEACCOUNT": "Adicionar conta do Salesforce",
+        "CLIENTID": "ID do cliente",
+        "CLIENTSECRET": "Segredo do cliente",
+        "SECURITYTOKEN": "Token de segurança",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "APIKEY": "Chave API",
+        "FRESHDESKACCOUNTS": "Contas Freshdesk",
+        "EDIT_FRESHDESKACCOUNT": "Editar conta Freshdesk",
+        "DELETE_FRESHDESKACCOUNT": "Excluir conta Freshdesk",
+        "NEW_FRESHDESKACCOUNT": "Nova Conta Freshdesk",
+        "ADD_FRESHDESKACCOUNT": "Adicionar Conta Freshdesk",
+        "SUGARCRMACCOUNTS": "A SugarCRM contas",
+        "EDIT_SUGARCRMACCOUNT": "Editar a SugarCRM conta",
+        "DELETE_SUGARCRMACCOUNT": "Excluir a SugarCRM conta",
+        "NEW_SUGARCRMACCOUNT": "Novo SugarCRM conta",
+        "ADD_SUGARCRMACCOUNT": "Adicionar a SugarCRM conta",
+        "CONFIGURATIONS": "Configurações",
+        "NO_CONFIGURATION_AVAILABLE": "As configurações não disponíveis",
+        "NEW_CONFIGURATION": "Nova configuração",
+        "ADD_CONFIGURATION": "Adicionar configuração",
+        "EDIT_CONFIGURATION": "Editar Configuração",
+        "DELETE_CONFIGURATION": "Excluir a configuração",
+        "SUBJECTS": "Temas",
+        "DESCRIPTIONS": "Descrições",
+        "FIELDS": "Campos",
+        "TAGS": "Tags",
+        "TYPE": "Tipo",
+        "CONTENT": "Conteúdo",
+        "EDIT_SUBJECT": "Editar assunto",
+        "DELETE_SUBJECT": "Excluir assunto",
+        "NEW_SUBJECT": "Novo Assunto",
+        "ADD_SUBJECT": "Adicionar Assunto",
+        "EDIT_DESCRIPTION": "Editar descrição",
+        "DELETE_DESCRIPTION": "Excluir Descrição",
+        "NEW_DESCRIPTION": "Nova descrição",
+        "ADD_DESCRIPTION": "Adicionar Descrição",
+        "EDIT_FIELD": "Campo de edição",
+        "DELETE_FIELD": "Excluir domínio",
+        "NEW_FIELD": "Novo Campo",
+        "ADD_FIELD": "Adicionar campo",
+        "ADD": "Adicionar",
+        "VOICE": "Voz",
+        "MAIL": "Correio electrónico",
+        "CHAT": "Bate-papo",
+        "SMS": "O SMS",
+        "OPENCHANNEL": "Canal aberto",
+        "INBOUND_IN_QUEUE": "Na fila de entrada",
+        "OUTBOUND_CALL": "Chamada de saída",
+        "VALUE": "Valor",
+        "FIELD": "Campo",
+        "KEY": "A chave",
+        "CHANNEL": "Canal",
+        "DELETE": "Excluir",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "TEST_ZENDESKACCOUNT": "Teste Zendesk Conta",
+        "TEST_FRESHDESKACCOUNT": "Teste Freshdesk Conta",
+        "TEST_SUGARCRMACCOUNT": "Teste SugerCRM conta",
+        "TEST_SALESFORCEACCOUNT": "Teste conta do Salesforce"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/ru.json b/public/app/main/apps/integrations/i18n/ru.json
new file mode 100644 (file)
index 0000000..1fe9e19
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Интеграция",
+        "ZENDESKACCOUNTS": "Zendesk счетов",
+        "ID": "Id",
+        "NAME": "Имя",
+        "USERNAME": "Имя пользователя",
+        "URI": "URI",
+        "BACK": "Назад",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "EDIT_ZENDESKACCOUNT": "Редактировать учетную запись Zendesk",
+        "DELETE_ZENDESKACCOUNT": "Удалить учетную запись Zendesk",
+        "NEW_ZENDESKACCOUNT": "Новая учетная запись Zendesk",
+        "AUTHTYPE": "Тип проверки подлинности",
+        "PASSWORD": "Пароль",
+        "CONFIRM_PASSWORD": "Подтвердите пароль",
+        "TOKEN": "Маркер",
+        "MOTIONPROXYADDRESS": "Движение или прокси-сервера IP-адрес",
+        "DESCRIPTION": "Описание",
+        "ADD_ZENDESKACCOUNT": "Добавить учетную запись Zendesk",
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "USERNAME_REQUIRED": "Имя пользователя не требуется",
+            "URI_REQUIRED": "URI не требуется",
+            "URI_MUST_VALID_URL": "URI должен быть записан в действительный формат",
+            "PASSWORD_REQUIRED": "Пароль не требуется",
+            "CONFIRM_NOT_MATCH": "Пароли не' t соответствует",
+            "TOKEN_REQUIRED": "Маркер не требуется",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "Этот адрес должен быть записан в действительный формат",
+            "CLIENTID_REQUIRED": "Код клиента не требуется",
+            "CLIENTSECRET_REQUIRED": "Клиент секрет не требуется",
+            "SECURITYTOKEN_REQUIRED": "В маркер безопасности не требуется",
+            "APIKEY_REQUIRED": "API не требуется ключ",
+            "CONTENT_REQUIRED": "Содержимое не требуется",
+            "VARIABLENAME_REQUIRED": "Переменная не требуется",
+            "KEY_REQUIRED": "Ключ не требуется",
+            "TYPE_REQUIRED": "Тип не требуется",
+            "VALUE_REQUIRED": "Это значение требуется",
+            "FIELD_REQUIRED": "Поле является обязательным"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Motion (прокси) Адрес: она является обязательным, если вы хотите заполнить билет тела с модификации URL. Пожалуйста, введите в следующем формате: &LT;протокола&GT; : //<ipaddress&GT;[:<порт&GT;]. Пример: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Счета",
+        "ZENDESKCONFIGURATIONS": "Zendesk конфигураций",
+        "SALESFORCECONFIGURATIONS": "Salesforce конфигураций",
+        "SUGARCRMCONFIGURATIONS": "Вроде SugarCRM конфигураций",
+        "FRESHDESKCONFIGURATIONS": "Freshdesk конфигураций",
+        "GENERAL": "Генеральной",
+        "CREATED_AT": "Созданные в",
+        "SAVE": "Сохранить",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Нет Zendesk доступные конфигурации",
+        "NEW_ZENDESKCONFIGURATION": "Новые конфигурации Zendesk",
+        "ADD_ZENDESKCONFIGURATION": "Добавить Zendesk конфигурации",
+        "EDIT_ZENDESKCONFIGURATION": "Редактирование конфигурации Zendesk",
+        "DELETE_ZENDESKCONFIGURATION": "Удалить конфигурации Zendesk",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "Нет Salesforce доступные конфигурации",
+        "NEW_SALESFORCECONFIGURATION": "Новые конфигурации Salesforce",
+        "ADD_SALESFORCECONFIGURATION": "Добавить конфигурацию Salesforce",
+        "EDIT_SALESFORCECONFIGURATION": "Редактирование конфигурации Salesforce",
+        "DELETE_SALESFORCECONFIGURATION": "Удалить конфигурации Salesforce",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "Нет вроде SugarCRM - Доступные конфигурации",
+        "NEW_SUGARCRMCONFIGURATION": "Новые конфигурации с возможностью дальнейшей пролонгации договора аренды",
+        "ADD_SUGARCRMCONFIGURATION": "Добавить вроде SugarCRM конфигурации",
+        "EDIT_SUGARCRMCONFIGURATION": "Редактирование конфигурации с возможностью дальнейшей пролонгации договора аренды",
+        "DELETE_SUGARCRMCONFIGURATION": "Удалить вроде SugarCRM конфигурации",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "Нет Freshdesk доступные конфигурации",
+        "NEW_FRESHDESKCONFIGURATION": "Новые конфигурации Freshdesk",
+        "ADD_FRESHDESKCONFIGURATION": "Добавить Freshdesk конфигурации",
+        "EDIT_FRESHDESKCONFIGURATION": "Редактирование конфигурации Freshdesk",
+        "DELETE_FRESHDESKCONFIGURATION": "Удалить конфигурации Freshdesk",
+        "SALESFORCEACCOUNTS": "Salesforce счетов",
+        "EDIT_SALESFORCEACCOUNT": "Редактировать учетную запись Salesforce",
+        "DELETE_SALESFORCEACCOUNT": "Удалить учетную запись Salesforce",
+        "NEW_SALESFORCEACCOUNT": "Новая учетная запись Salesforce",
+        "ADD_SALESFORCEACCOUNT": "Добавить учетную запись Salesforce",
+        "CLIENTID": "Идентификатор клиента",
+        "CLIENTSECRET": "Клиент тайного",
+        "SECURITYTOKEN": "Маркер безопасности",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "APIKEY": "Ключ API",
+        "FRESHDESKACCOUNTS": "Freshdesk счетов",
+        "EDIT_FRESHDESKACCOUNT": "Редактировать учетную запись Freshdesk",
+        "DELETE_FRESHDESKACCOUNT": "Удалить учетную запись Freshdesk",
+        "NEW_FRESHDESKACCOUNT": "Новая учетная запись Freshdesk",
+        "ADD_FRESHDESKACCOUNT": "Добавить учетную запись Freshdesk",
+        "SUGARCRMACCOUNTS": "Вроде SugarCRM счетов",
+        "EDIT_SUGARCRMACCOUNT": "Редактировать учетную запись с возможностью дальнейшей пролонгации договора аренды",
+        "DELETE_SUGARCRMACCOUNT": "Удалить учетную запись с возможностью дальнейшей пролонгации договора аренды",
+        "NEW_SUGARCRMACCOUNT": "Новые вроде SugarCRM счета",
+        "ADD_SUGARCRMACCOUNT": "Добавить вроде SugarCRM счета",
+        "CONFIGURATIONS": "Конфигурации",
+        "NO_CONFIGURATION_AVAILABLE": "Нет доступных конфигураций",
+        "NEW_CONFIGURATION": "Новая конфигурация",
+        "ADD_CONFIGURATION": "Добавить конфигурацию",
+        "EDIT_CONFIGURATION": "Изменение конфигурации",
+        "DELETE_CONFIGURATION": "Удалить конфигурацию",
+        "SUBJECTS": "Темы",
+        "DESCRIPTIONS": "Описание",
+        "FIELDS": "Поля",
+        "TAGS": "Теги индексов",
+        "TYPE": "Тип",
+        "CONTENT": "Содержание",
+        "EDIT_SUBJECT": "Редактировать при условии",
+        "DELETE_SUBJECT": "Удалить при условии",
+        "NEW_SUBJECT": "Новая тема",
+        "ADD_SUBJECT": "Добавить тему",
+        "EDIT_DESCRIPTION": "Изменить описание",
+        "DELETE_DESCRIPTION": "Удалить Описание",
+        "NEW_DESCRIPTION": "Новое описание",
+        "ADD_DESCRIPTION": "Добавить описание",
+        "EDIT_FIELD": "Поля редактирования",
+        "DELETE_FIELD": "Удалить поле",
+        "NEW_FIELD": "Новое поле",
+        "ADD_FIELD": "Добавить поле",
+        "ADD": "Добавить",
+        "VOICE": "Голосовой связи",
+        "MAIL": "По электронной почте",
+        "CHAT": "Чат",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Открыть канал",
+        "INBOUND_IN_QUEUE": "Входящие вызовы в очереди",
+        "OUTBOUND_CALL": "Исходящий вызов",
+        "VALUE": "Значение",
+        "FIELD": "Поле",
+        "KEY": "Ключ зажигания",
+        "CHANNEL": "Канал",
+        "DELETE": "Удалить",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "TEST_ZENDESKACCOUNT": "Проверка учетной записи Zendesk",
+        "TEST_FRESHDESKACCOUNT": "Проверка учетной записи Freshdesk",
+        "TEST_SUGARCRMACCOUNT": "Проверка учетной записи SugerCRM",
+        "TEST_SALESFORCEACCOUNT": "Проверка учетной записи Salesforce"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/sv.json b/public/app/main/apps/integrations/i18n/sv.json
new file mode 100644 (file)
index 0000000..e10fdff
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Integrationer",
+        "ZENDESKACCOUNTS": "Zendesk konton",
+        "ID": "Id",
+        "NAME": "Namn",
+        "USERNAME": "Användarnamn",
+        "URI": "URI",
+        "BACK": "Tillbaka",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "EDIT_ZENDESKACCOUNT": "Redigera Zendesk konto",
+        "DELETE_ZENDESKACCOUNT": "Ta bort Zendesk konto",
+        "NEW_ZENDESKACCOUNT": "Nya Zendesk konto",
+        "AUTHTYPE": "Autentiseringstyp",
+        "PASSWORD": "Lösenord",
+        "CONFIRM_PASSWORD": "Bekräfta lösenord",
+        "TOKEN": "Token",
+        "MOTIONPROXYADDRESS": "Motion eller proxy-IP-adress",
+        "DESCRIPTION": "Beskrivning",
+        "ADD_ZENDESKACCOUNT": "Lägg till Zendesk konto",
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "USERNAME_REQUIRED": "Användarnamn krävs",
+            "URI_REQUIRED": "URI krävs",
+            "URI_MUST_VALID_URL": "URI måste skrivas i ett giltigt format",
+            "PASSWORD_REQUIRED": "Lösenord krävs",
+            "CONFIRM_NOT_MATCH": "Lösenord don' t matchar",
+            "TOKEN_REQUIRED": "Token är obligatoriskt",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "Adressen måste vara skriven på ett giltigt format",
+            "CLIENTID_REQUIRED": "Klient-ID är obligatoriskt",
+            "CLIENTSECRET_REQUIRED": "Klienten hemliga krävs",
+            "SECURITYTOKEN_REQUIRED": "Säkerheten Token krävs",
+            "APIKEY_REQUIRED": "API-nyckel krävs",
+            "CONTENT_REQUIRED": "Innehållet är obligatoriskt",
+            "VARIABLENAME_REQUIRED": "Variabeln är obligatoriskt",
+            "KEY_REQUIRED": "Nyckeln är obligatoriskt",
+            "TYPE_REQUIRED": "Den typen krävs",
+            "VALUE_REQUIRED": "Värdet är obligatoriskt",
+            "FIELD_REQUIRED": "Fältet är obligatoriskt"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Motion (Proxy) Adress: det är obligatoriskt om du vill fylla biljetten kropp med Recoding URL. Ange följande format: <protokoll> : //<IP>[:<port>]. Exempel: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Konto",
+        "ZENDESKCONFIGURATIONS": "Zendesk konfigurationer",
+        "SALESFORCECONFIGURATIONS": "Salesforce-konfigurationer",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM konfigurationer",
+        "FRESHDESKCONFIGURATIONS": "Freshdesk konfigurationer",
+        "GENERAL": "Allmänt",
+        "CREATED_AT": "Skapad",
+        "SAVE": "Spara",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Ingen Zendesk konfigurationer tillgängliga",
+        "NEW_ZENDESKCONFIGURATION": "Nya Zendesk konfiguration",
+        "ADD_ZENDESKCONFIGURATION": "Lägg till Zendesk konfiguration",
+        "EDIT_ZENDESKCONFIGURATION": "Redigera konfiguration av Zendesk",
+        "DELETE_ZENDESKCONFIGURATION": "Ta bort Zendesk konfiguration",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "Ingen Salesforce-konfigurationer tillgängliga",
+        "NEW_SALESFORCECONFIGURATION": "Nya Salesforce-konfiguration",
+        "ADD_SALESFORCECONFIGURATION": "Lägga till Salesforce-konfiguration",
+        "EDIT_SALESFORCECONFIGURATION": "Redigera konfiguration av Salesforce",
+        "DELETE_SALESFORCECONFIGURATION": "Ta bort Salesforce-konfiguration",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "Ingen SugarCRM konfigurationer tillgängliga",
+        "NEW_SUGARCRMCONFIGURATION": "Nya SugarCRM konfiguration",
+        "ADD_SUGARCRMCONFIGURATION": "Lägg SugarCRM konfiguration",
+        "EDIT_SUGARCRMCONFIGURATION": "Redigera konfiguration av SugarCRM",
+        "DELETE_SUGARCRMCONFIGURATION": "Ta bort SugarCRM konfiguration",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "Ingen Freshdesk konfigurationer tillgängliga",
+        "NEW_FRESHDESKCONFIGURATION": "Nya Freshdesk konfiguration",
+        "ADD_FRESHDESKCONFIGURATION": "Lägg Freshdesk konfiguration",
+        "EDIT_FRESHDESKCONFIGURATION": "Redigera konfiguration av Freshdesk",
+        "DELETE_FRESHDESKCONFIGURATION": "Ta bort Freshdesk konfiguration",
+        "SALESFORCEACCOUNTS": "Salesforce-konton",
+        "EDIT_SALESFORCEACCOUNT": "Redigera Salesforce-konto",
+        "DELETE_SALESFORCEACCOUNT": "Ta bort Salesforce-konto",
+        "NEW_SALESFORCEACCOUNT": "Nya Salesforce-konto",
+        "ADD_SALESFORCEACCOUNT": "Lägga till Salesforce-konto",
+        "CLIENTID": "Klient-ID",
+        "CLIENTSECRET": "Klienten hemliga",
+        "SECURITYTOKEN": "Security token",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "APIKEY": "Api-nyckel",
+        "FRESHDESKACCOUNTS": "Freshdesk konton",
+        "EDIT_FRESHDESKACCOUNT": "Redigera Freshdesk konto",
+        "DELETE_FRESHDESKACCOUNT": "Ta bort Freshdesk konto",
+        "NEW_FRESHDESKACCOUNT": "Nya Freshdesk konto",
+        "ADD_FRESHDESKACCOUNT": "Lägg Freshdesk konto",
+        "SUGARCRMACCOUNTS": "SugarCRM konton",
+        "EDIT_SUGARCRMACCOUNT": "Redigera SugarCRM konto",
+        "DELETE_SUGARCRMACCOUNT": "Ta bort SugarCRM konto",
+        "NEW_SUGARCRMACCOUNT": "Nya SugarCRM konto",
+        "ADD_SUGARCRMACCOUNT": "Lägg SugarCRM konto",
+        "CONFIGURATIONS": "Konfigurationer",
+        "NO_CONFIGURATION_AVAILABLE": "Inga konfigurationer tillgängliga",
+        "NEW_CONFIGURATION": "Ny konfiguration",
+        "ADD_CONFIGURATION": "Lägg till konfiguration",
+        "EDIT_CONFIGURATION": "Redigera konfiguration",
+        "DELETE_CONFIGURATION": "Radera konfiguration",
+        "SUBJECTS": "Ämnen",
+        "DESCRIPTIONS": "Beskrivningar",
+        "FIELDS": "Fält",
+        "TAGS": "Etiketter",
+        "TYPE": "Typ",
+        "CONTENT": "Innehåll",
+        "EDIT_SUBJECT": "Redigera föremål",
+        "DELETE_SUBJECT": "Ta bort ämne",
+        "NEW_SUBJECT": "Nytt ämne",
+        "ADD_SUBJECT": "Lägg till ämne",
+        "EDIT_DESCRIPTION": "Redigera beskrivning",
+        "DELETE_DESCRIPTION": "Ta bort beskrivning",
+        "NEW_DESCRIPTION": "Ny beskrivning",
+        "ADD_DESCRIPTION": "Lägg till beskrivning",
+        "EDIT_FIELD": "Redigera fält",
+        "DELETE_FIELD": "Ta bort fält",
+        "NEW_FIELD": "Nytt fält",
+        "ADD_FIELD": "Lägg till fält",
+        "ADD": "Lägg till",
+        "VOICE": "Röst",
+        "MAIL": "Post",
+        "CHAT": "Chatt",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Öppen kanal",
+        "INBOUND_IN_QUEUE": "Inkommande i kö",
+        "OUTBOUND_CALL": "Utgående samtal",
+        "VALUE": "Värde",
+        "FIELD": "Fält",
+        "KEY": "Nyckel",
+        "CHANNEL": "Kanal",
+        "DELETE": "Ta bort",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "TEST_ZENDESKACCOUNT": "Testa Zendesk konto",
+        "TEST_FRESHDESKACCOUNT": "Testa Freshdesk konto",
+        "TEST_SUGARCRMACCOUNT": "Testa SugerCRM konto",
+        "TEST_SALESFORCEACCOUNT": "Testa Salesforce-konto"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/tr.json b/public/app/main/apps/integrations/i18n/tr.json
new file mode 100644 (file)
index 0000000..0f95acd
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "Entegrasyonları",
+        "ZENDESKACCOUNTS": "Zendesk Hesapları",
+        "ID": "Id",
+        "NAME": "Adı",
+        "USERNAME": "Kullanıcı Adı",
+        "URI": "URI",
+        "BACK": "Geri",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "EDIT_ZENDESKACCOUNT": "Zendesk Düzenle Hesap",
+        "DELETE_ZENDESKACCOUNT": "Zendesk Sil Hesap",
+        "NEW_ZENDESKACCOUNT": "Yeni Zendesk Hesap",
+        "AUTHTYPE": "Kimlik Doğrulama Türü",
+        "PASSWORD": "Parola",
+        "CONFIRM_PASSWORD": "Parolayı Onayla",
+        "TOKEN": "Işaretleyici",
+        "MOTIONPROXYADDRESS": "Hareket veya Proxy IP Adresi",
+        "DESCRIPTION": "Açıklama",
+        "ADD_ZENDESKACCOUNT": "Zendesk Ekleyin Hesap",
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "USERNAME_REQUIRED": "Kullanıcı Adı gerekiyor",
+            "URI_REQUIRED": "Bu URI gerekiyor.",
+            "URI_MUST_VALID_URL": "Bu URI mutlaka yazılı geçerli bir format",
+            "PASSWORD_REQUIRED": "Parola gerekli",
+            "CONFIRM_NOT_MATCH": "Parolalar don' t match",
+            "TOKEN_REQUIRED": "Belirteç gerekiyor.",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "Adres mutlaka yazılı geçerli bir format",
+            "CLIENTID_REQUIRED": "Istemci kimliği gerekiyor",
+            "CLIENTSECRET_REQUIRED": "Istemci Gizli gerekiyor.",
+            "SECURITYTOKEN_REQUIRED": "Güvenlik Belirteci gerekli",
+            "APIKEY_REQUIRED": "API Anahtarı gereklidir",
+            "CONTENT_REQUIRED": "Içerik gerekiyor.",
+            "VARIABLENAME_REQUIRED": "Değişken gerekli",
+            "KEY_REQUIRED": "Anahtar gerekiyor.",
+            "TYPE_REQUIRED": "Tip gerekli",
+            "VALUE_REQUIRED": "Bu Değer gereklidir",
+            "FIELD_REQUIRED": "Bu alanı gerekli."
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "Hareket (Proxy) Adres: zorunludur. eğer isterseniz, bilet, Diğerine URL. Lütfen aşağıdaki biçimi: <protokol> : //<ipaddress>[:<port>]. Örneğin: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "Hesap",
+        "ZENDESKCONFIGURATIONS": "Zendesk Tanıtma",
+        "SALESFORCECONFIGURATIONS": "Salesforce Tanıtma",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM tanıtma",
+        "FRESHDESKCONFIGURATIONS": "Freshdesk Tanıtma",
+        "GENERAL": "Genel",
+        "CREATED_AT": "Oluşturulmuş",
+        "SAVE": "Kaydet",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Zendesk Yok Konfigürasyonları Mevcuttur",
+        "NEW_ZENDESKCONFIGURATION": "Yeni Zendesk Yapılandırma",
+        "ADD_ZENDESKCONFIGURATION": "Zendesk Ekleyin Yapılandırma",
+        "EDIT_ZENDESKCONFIGURATION": "Zendesk Düzenle Yapılandırma",
+        "DELETE_ZENDESKCONFIGURATION": "Zendesk Silin Yapılandırma",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "Hiçbir Salesforce Konfigürasyonları Mevcuttur",
+        "NEW_SALESFORCECONFIGURATION": "Yeni Salesforce Yapılandırma",
+        "ADD_SALESFORCECONFIGURATION": "Add Salesforce Yapılandırma",
+        "EDIT_SALESFORCECONFIGURATION": "Edit Salesforce Yapılandırma",
+        "DELETE_SALESFORCECONFIGURATION": "Delete Salesforce Yapılandırma",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "SugarCRM yok Konfigürasyonları Mevcuttur",
+        "NEW_SUGARCRMCONFIGURATION": "Yeni SugarCRM Yapılandırma",
+        "ADD_SUGARCRMCONFIGURATION": "SugarCRM ekleyin Yapılandırma",
+        "EDIT_SUGARCRMCONFIGURATION": "Edit SugarCRM Yapılandırma",
+        "DELETE_SUGARCRMCONFIGURATION": "Delete SugarCRM Yapılandırma",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "Hiçbir Freshdesk Konfigürasyonları Mevcuttur",
+        "NEW_FRESHDESKCONFIGURATION": "Yeni Freshdesk Yapılandırma",
+        "ADD_FRESHDESKCONFIGURATION": "Add Freshdesk Yapılandırma",
+        "EDIT_FRESHDESKCONFIGURATION": "Edit Freshdesk Yapılandırma",
+        "DELETE_FRESHDESKCONFIGURATION": "Delete Freshdesk Yapılandırma",
+        "SALESFORCEACCOUNTS": "Salesforce Hesapları",
+        "EDIT_SALESFORCEACCOUNT": "Edit Salesforce Hesap",
+        "DELETE_SALESFORCEACCOUNT": "Delete Salesforce Hesap",
+        "NEW_SALESFORCEACCOUNT": "Yeni Salesforce Hesap",
+        "ADD_SALESFORCEACCOUNT": "Add Salesforce Hesap",
+        "CLIENTID": "Müşteri Kimliği",
+        "CLIENTSECRET": "Istemci Gizli",
+        "SECURITYTOKEN": "Güvenlik Belirteci",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "APIKEY": "Api Anahtarı",
+        "FRESHDESKACCOUNTS": "Freshdesk Hesapları",
+        "EDIT_FRESHDESKACCOUNT": "Edit Freshdesk Hesap",
+        "DELETE_FRESHDESKACCOUNT": "Delete Freshdesk Hesap",
+        "NEW_FRESHDESKACCOUNT": "Yeni Freshdesk Hesap",
+        "ADD_FRESHDESKACCOUNT": "Add Freshdesk Hesap",
+        "SUGARCRMACCOUNTS": "SugarCRM Hesapları",
+        "EDIT_SUGARCRMACCOUNT": "Edit SugarCRM Hesap",
+        "DELETE_SUGARCRMACCOUNT": "Delete SugarCRM Hesap",
+        "NEW_SUGARCRMACCOUNT": "Yeni SugarCRM Hesap",
+        "ADD_SUGARCRMACCOUNT": "SugarCRM ekleyin Hesap",
+        "CONFIGURATIONS": "Tanıtma",
+        "NO_CONFIGURATION_AVAILABLE": "Hiçbir Konfigürasyonları Mevcuttur",
+        "NEW_CONFIGURATION": "Yeni Yapılandırma",
+        "ADD_CONFIGURATION": "Add Yapılandırma",
+        "EDIT_CONFIGURATION": "Yapılandırma Düzenleme",
+        "DELETE_CONFIGURATION": "Sil Yapılandırma",
+        "SUBJECTS": "Konular",
+        "DESCRIPTIONS": "Açıklamaları",
+        "FIELDS": "Alanlar",
+        "TAGS": "Etiketler",
+        "TYPE": "Tipi",
+        "CONTENT": "Içerik",
+        "EDIT_SUBJECT": "Edit Konu",
+        "DELETE_SUBJECT": "Konu Sil",
+        "NEW_SUBJECT": "Yeni Konu",
+        "ADD_SUBJECT": "Konu Ekle",
+        "EDIT_DESCRIPTION": "Edit Açıklaması",
+        "DELETE_DESCRIPTION": "Delete Açıklama",
+        "NEW_DESCRIPTION": "Yeni Açıklama",
+        "ADD_DESCRIPTION": "Açıklama ekleyin",
+        "EDIT_FIELD": "Alan Düzenle",
+        "DELETE_FIELD": "Silme alanına",
+        "NEW_FIELD": "Yeni Alan",
+        "ADD_FIELD": "Alan Ekle",
+        "ADD": "Ekle",
+        "VOICE": "Ses",
+        "MAIL": "Posta",
+        "CHAT": "Sohbet",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Açık Kanal",
+        "INBOUND_IN_QUEUE": "Gelen.",
+        "OUTBOUND_CALL": "Giden Arama",
+        "VALUE": "Değer",
+        "FIELD": "Alan",
+        "KEY": "Anahtar",
+        "CHANNEL": "Kanal",
+        "DELETE": "Sil",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "TEST_ZENDESKACCOUNT": "Test Zendesk Hesap",
+        "TEST_FRESHDESKACCOUNT": "Test Freshdesk Hesap",
+        "TEST_SUGARCRMACCOUNT": "Test SugerCRM Hesap",
+        "TEST_SALESFORCEACCOUNT": "Test Salesforce Hesap"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/zh-CN.json b/public/app/main/apps/integrations/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..09110b6
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "集成。",
+        "ZENDESKACCOUNTS": "Zendesk 帐户",
+        "ID": "Id",
+        "NAME": "名称",
+        "USERNAME": "用户名",
+        "URI": "URI",
+        "BACK": "返回",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "EDIT_ZENDESKACCOUNT": "Zendesk 编辑帐户",
+        "DELETE_ZENDESKACCOUNT": "Zendesk 删除帐户",
+        "NEW_ZENDESKACCOUNT": "Zendesk 新帐户",
+        "AUTHTYPE": "身份验证类型",
+        "PASSWORD": "密码",
+        "CONFIRM_PASSWORD": "确认密码",
+        "TOKEN": "令牌",
+        "MOTIONPROXYADDRESS": "议案或代理服务器的 IP 地址。",
+        "DESCRIPTION": "描述",
+        "ADD_ZENDESKACCOUNT": "Zendesk 添加帐户",
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "USERNAME_REQUIRED": "用户名是必需的",
+            "URI_REQUIRED": "开放的是必需的",
+            "URI_MUST_VALID_URL": "URI 必须书面格式无效",
+            "PASSWORD_REQUIRED": "密码是必需的",
+            "CONFIRM_NOT_MATCH": "密码不匹配",
+            "TOKEN_REQUIRED": "令牌是必需的",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "该地址必须是书面的格式无效",
+            "CLIENTID_REQUIRED": "客户端 ID 是必需的",
+            "CLIENTSECRET_REQUIRED": "客户端加密是必需的",
+            "SECURITYTOKEN_REQUIRED": "安全令牌",
+            "APIKEY_REQUIRED": "API 密钥所需的",
+            "CONTENT_REQUIRED": "内容是必需的",
+            "VARIABLENAME_REQUIRED": "该变量是必需的",
+            "KEY_REQUIRED": "关键的是必需的",
+            "TYPE_REQUIRED": "该类型是必需的",
+            "VALUE_REQUIRED": "该值是必需的",
+            "FIELD_REQUIRED": "该字段为必需字段。"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "议案(代理)地址: 它是强制的如果您想要填充的票务机构的重新编码的 URL。 请以下列格式输入: & lt; 协议发 gt;: // 发 lt; ipaddress 发 gt; [: & lt; 端口& gt; ]。 例如: https://X.Y.Z.W"
+        },
+        "ACCOUNT": "帐户",
+        "ZENDESKCONFIGURATIONS": "Zendesk 配置",
+        "SALESFORCECONFIGURATIONS": "Salesforce 的配置",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM 的配置",
+        "FRESHDESKCONFIGURATIONS": "Freshdesk 配置",
+        "GENERAL": "总的",
+        "CREATED_AT": "创建在",
+        "SAVE": "保存",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "Zendesk 没有可用配置",
+        "NEW_ZENDESKCONFIGURATION": "Zendesk 新配置",
+        "ADD_ZENDESKCONFIGURATION": "Zendesk 添加配置",
+        "EDIT_ZENDESKCONFIGURATION": "编辑 Zendesk 配置",
+        "DELETE_ZENDESKCONFIGURATION": "Zendesk 删除配置",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "没有 Salesforce 配置可用",
+        "NEW_SALESFORCECONFIGURATION": "新 Salesforce 配置",
+        "ADD_SALESFORCECONFIGURATION": "添加 Salesforce 配置",
+        "EDIT_SALESFORCECONFIGURATION": "编辑 Salesforce 配置",
+        "DELETE_SALESFORCECONFIGURATION": "删除 Salesforce 配置",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "无 SugarCRM 的配置可用",
+        "NEW_SUGARCRMCONFIGURATION": "新的 SugarCRM 的配置",
+        "ADD_SUGARCRMCONFIGURATION": "添加 SugarCRM 的配置",
+        "EDIT_SUGARCRMCONFIGURATION": "编辑 SugarCRM 的配置",
+        "DELETE_SUGARCRMCONFIGURATION": "删除 SugarCRM 的配置",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "无 Freshdesk 可用配置",
+        "NEW_FRESHDESKCONFIGURATION": "新 Freshdesk 配置",
+        "ADD_FRESHDESKCONFIGURATION": "添加 Freshdesk 配置",
+        "EDIT_FRESHDESKCONFIGURATION": "编辑 Freshdesk 配置",
+        "DELETE_FRESHDESKCONFIGURATION": "删除 Freshdesk 配置",
+        "SALESFORCEACCOUNTS": "Salesforce 帐户",
+        "EDIT_SALESFORCEACCOUNT": "编辑 Salesforce 帐户",
+        "DELETE_SALESFORCEACCOUNT": "删除 Salesforce 帐户",
+        "NEW_SALESFORCEACCOUNT": "新 Salesforce 帐户",
+        "ADD_SALESFORCEACCOUNT": "Salesforce 添加帐户",
+        "CLIENTID": "客户端 ID。",
+        "CLIENTSECRET": "客户端加密",
+        "SECURITYTOKEN": "安全令牌",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "APIKEY": "Api 密钥",
+        "FRESHDESKACCOUNTS": "Freshdesk 帐户",
+        "EDIT_FRESHDESKACCOUNT": "编辑 Freshdesk 帐户",
+        "DELETE_FRESHDESKACCOUNT": "删除 Freshdesk 帐户",
+        "NEW_FRESHDESKACCOUNT": "新帐户 Freshdesk",
+        "ADD_FRESHDESKACCOUNT": "添加 Freshdesk 帐户",
+        "SUGARCRMACCOUNTS": "SugarCRM 帐户",
+        "EDIT_SUGARCRMACCOUNT": "编辑 SugarCRM 的帐户",
+        "DELETE_SUGARCRMACCOUNT": "删除 SugarCRM 的帐户",
+        "NEW_SUGARCRMACCOUNT": "新的 SugarCRM 的帐户",
+        "ADD_SUGARCRMACCOUNT": "添加 SugarCRM 的帐户",
+        "CONFIGURATIONS": "配置",
+        "NO_CONFIGURATION_AVAILABLE": "没有配置可用",
+        "NEW_CONFIGURATION": "新的配置",
+        "ADD_CONFIGURATION": "添加配置",
+        "EDIT_CONFIGURATION": "编辑配置",
+        "DELETE_CONFIGURATION": "删除配置",
+        "SUBJECTS": "主题",
+        "DESCRIPTIONS": "说明",
+        "FIELDS": "字段",
+        "TAGS": "标签",
+        "TYPE": "类型",
+        "CONTENT": "内容",
+        "EDIT_SUBJECT": "编辑主题",
+        "DELETE_SUBJECT": "删除主题",
+        "NEW_SUBJECT": "新的主题",
+        "ADD_SUBJECT": "添加主题",
+        "EDIT_DESCRIPTION": "编辑说明。",
+        "DELETE_DESCRIPTION": "删除说明",
+        "NEW_DESCRIPTION": "新的说明。",
+        "ADD_DESCRIPTION": "添加说明",
+        "EDIT_FIELD": "编辑字段",
+        "DELETE_FIELD": "删除字段。",
+        "NEW_FIELD": "新的字段",
+        "ADD_FIELD": "添加字段",
+        "ADD": "添加",
+        "VOICE": "语音",
+        "MAIL": "电子邮件",
+        "CHAT": "文本交谈",
+        "SMS": "短信",
+        "OPENCHANNEL": "打开通道",
+        "INBOUND_IN_QUEUE": "入站队列中",
+        "OUTBOUND_CALL": "呼出呼叫",
+        "VALUE": "值",
+        "FIELD": "字段",
+        "KEY": "密钥",
+        "CHANNEL": "通道",
+        "DELETE": "删除",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "TEST_ZENDESKACCOUNT": "Zendesk 测试帐户",
+        "TEST_FRESHDESKACCOUNT": "测试 Freshdesk 帐户",
+        "TEST_SUGARCRMACCOUNT": "测试 SugerCRM 帐户",
+        "TEST_SALESFORCEACCOUNT": "测试 Salesforce 帐户"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/integrations/i18n/zh-TW.json b/public/app/main/apps/integrations/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..6a3a932
--- /dev/null
@@ -0,0 +1,137 @@
+{
+    "INTEGRATIONS": {
+        "INTEGRATIONS": "整合",
+        "ZENDESKACCOUNTS": "Zendesk 帳戶",
+        "ID": "Id",
+        "NAME": "名稱",
+        "USERNAME": "使用者名稱",
+        "URI": "URI",
+        "BACK": "備份",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "EDIT_ZENDESKACCOUNT": "編輯 Zendesk 帳號",
+        "DELETE_ZENDESKACCOUNT": "Zendesk 刪除帳戶",
+        "NEW_ZENDESKACCOUNT": "新 Zendesk 帳號",
+        "AUTHTYPE": "驗證類型",
+        "PASSWORD": "密碼",
+        "CONFIRM_PASSWORD": "確認密碼",
+        "TOKEN": "權杖",
+        "MOTIONPROXYADDRESS": "動作或代理伺服器 IP 位址",
+        "DESCRIPTION": "說明",
+        "ADD_ZENDESKACCOUNT": "新增 Zendesk 帳號",
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "USERNAME_REQUIRED": "使用者名稱為必要資訊",
+            "URI_REQUIRED": "URI 為必填欄位",
+            "URI_MUST_VALID_URL": "此 URI 必須寫在有效的格式",
+            "PASSWORD_REQUIRED": "密碼為必填欄位",
+            "CONFIRM_NOT_MATCH": "密碼不符合 t",
+            "TOKEN_REQUIRED": "該記號為必填欄位",
+            "MOTIONPROXYADDRESS_MUST_VALID_URL": "位址必須是書面的格式無效",
+            "CLIENTID_REQUIRED": "用戶端識別碼為必填欄位",
+            "CLIENTSECRET_REQUIRED": "用戶端密碼為必填欄位",
+            "SECURITYTOKEN_REQUIRED": "安全性記號為必填欄位",
+            "APIKEY_REQUIRED": "API 金鑰為必填欄位",
+            "CONTENT_REQUIRED": "其內容為必填欄位",
+            "VARIABLENAME_REQUIRED": "變數是必填欄位",
+            "KEY_REQUIRED": "該金鑰為必填欄位",
+            "TYPE_REQUIRED": "「類型」為必填欄位",
+            "VALUE_REQUIRED": "此值為必填欄位",
+            "FIELD_REQUIRED": "此欄位為必填欄位"
+        },
+        "HELP": {
+            "MOTIONPROXYADDRESS": "動作 ( 代理伺服器 ) 位址 : 這是強制性如果您想要填寫問題單本文 URL 重新編寫程式碼。 請輸入下列格式 : & lt ; 通訊協定與 gt ; : / / 史坦普 lt ; IP 位址坦 gt ; [ : 坦 lt ; 連接埠坦 gt ; ] 。 例如 : https://X.Y.Z.W"
+        },
+        "ACCOUNT": "帳號",
+        "ZENDESKCONFIGURATIONS": "Zendesk 組態",
+        "SALESFORCECONFIGURATIONS": "Salesforce 組態",
+        "SUGARCRMCONFIGURATIONS": "SugarCRM 組態",
+        "FRESHDESKCONFIGURATIONS": "Freshdesk 組態",
+        "GENERAL": "通用",
+        "CREATED_AT": "建立在",
+        "SAVE": "儲存",
+        "NO_ZENDESKCONFIGURATION_AVAILABLE": "無 Zendesk 組態",
+        "NEW_ZENDESKCONFIGURATION": "新 Zendesk 組態",
+        "ADD_ZENDESKCONFIGURATION": "新增 Zendesk 組態",
+        "EDIT_ZENDESKCONFIGURATION": "編輯 Zendesk 組態",
+        "DELETE_ZENDESKCONFIGURATION": "Zendesk 刪除組態",
+        "NO_SALESFORCECONFIGURATION_AVAILABLE": "沒有 Salesforce 組態",
+        "NEW_SALESFORCECONFIGURATION": "新 Salesforce 設定",
+        "ADD_SALESFORCECONFIGURATION": "新增「 Salesforce 設定",
+        "EDIT_SALESFORCECONFIGURATION": "編輯 Salesforce 設定",
+        "DELETE_SALESFORCECONFIGURATION": "刪除 Salesforce 設定",
+        "NO_SUGARCRMCONFIGURATION_AVAILABLE": "無 SugarCRM 組態",
+        "NEW_SUGARCRMCONFIGURATION": "新 SugarCRM 組態",
+        "ADD_SUGARCRMCONFIGURATION": "新增 SugarCRM 組態",
+        "EDIT_SUGARCRMCONFIGURATION": "編輯 SugarCRM 組態",
+        "DELETE_SUGARCRMCONFIGURATION": "SugarCRM 刪除組態",
+        "NO_FRESHDESKCONFIGURATION_AVAILABLE": "無 Freshdesk 組態",
+        "NEW_FRESHDESKCONFIGURATION": "新 Freshdesk 組態",
+        "ADD_FRESHDESKCONFIGURATION": "新增 Freshdesk 組態",
+        "EDIT_FRESHDESKCONFIGURATION": "編輯 Freshdesk 組態",
+        "DELETE_FRESHDESKCONFIGURATION": "Freshdesk 刪除組態",
+        "SALESFORCEACCOUNTS": "Salesforce 帳戶",
+        "EDIT_SALESFORCEACCOUNT": "編輯 Salesforce 帳戶",
+        "DELETE_SALESFORCEACCOUNT": "刪除「 Salesforce 帳戶",
+        "NEW_SALESFORCEACCOUNT": "新 Salesforce 帳戶",
+        "ADD_SALESFORCEACCOUNT": "新增「 Salesforce 帳戶",
+        "CLIENTID": "用戶端識別碼",
+        "CLIENTSECRET": "用戶密碼",
+        "SECURITYTOKEN": "安全性權杖",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "APIKEY": "Api 金鑰",
+        "FRESHDESKACCOUNTS": "Freshdesk 帳戶",
+        "EDIT_FRESHDESKACCOUNT": "編輯 Freshdesk 帳號",
+        "DELETE_FRESHDESKACCOUNT": "Freshdesk 刪除帳戶",
+        "NEW_FRESHDESKACCOUNT": "新 Freshdesk 帳號",
+        "ADD_FRESHDESKACCOUNT": "新增 Freshdesk 帳號",
+        "SUGARCRMACCOUNTS": "SugarCRM 帳號",
+        "EDIT_SUGARCRMACCOUNT": "編輯 SugarCRM 帳號",
+        "DELETE_SUGARCRMACCOUNT": "刪除 SugarCRM 帳號",
+        "NEW_SUGARCRMACCOUNT": "新 SugarCRM 帳號",
+        "ADD_SUGARCRMACCOUNT": "新增 SugarCRM 帳號",
+        "CONFIGURATIONS": "組態設定",
+        "NO_CONFIGURATION_AVAILABLE": "沒有任何組態",
+        "NEW_CONFIGURATION": "新的組態",
+        "ADD_CONFIGURATION": "新增組態",
+        "EDIT_CONFIGURATION": "編輯組態",
+        "DELETE_CONFIGURATION": "刪除組態",
+        "SUBJECTS": "主旨",
+        "DESCRIPTIONS": "說明",
+        "FIELDS": "欄位",
+        "TAGS": "標籤",
+        "TYPE": "類型",
+        "CONTENT": "內容",
+        "EDIT_SUBJECT": "編輯主旨",
+        "DELETE_SUBJECT": "刪除主題",
+        "NEW_SUBJECT": "新主旨",
+        "ADD_SUBJECT": "新增主旨",
+        "EDIT_DESCRIPTION": "編輯說明",
+        "DELETE_DESCRIPTION": "刪除說明",
+        "NEW_DESCRIPTION": "新的說明",
+        "ADD_DESCRIPTION": "新增描述",
+        "EDIT_FIELD": "「編輯欄位",
+        "DELETE_FIELD": "刪除欄位",
+        "NEW_FIELD": "新增欄位",
+        "ADD_FIELD": "新增欄位",
+        "ADD": "新增",
+        "VOICE": "語音通話",
+        "MAIL": "郵件",
+        "CHAT": "文字交談",
+        "SMS": "SMS ( 簡訊 )",
+        "OPENCHANNEL": "開放頻道",
+        "INBOUND_IN_QUEUE": "輸入在佇列中",
+        "OUTBOUND_CALL": "外撥電話",
+        "VALUE": "值",
+        "FIELD": "欄位",
+        "KEY": "金鑰",
+        "CHANNEL": "通道",
+        "DELETE": "刪除",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "TEST_ZENDESKACCOUNT": "測試 Zendesk 帳號",
+        "TEST_FRESHDESKACCOUNT": "測試 Freshdesk 帳號",
+        "TEST_SUGARCRMACCOUNT": "測試 SugerCRM 帳號",
+        "TEST_SALESFORCEACCOUNT": "測試 Salesforce 帳戶"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/da.json b/public/app/main/apps/jscripty/i18n/da.json
new file mode 100644 (file)
index 0000000..7823200
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Navnet",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "BACK": "Tilbage",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "DESCRIPTION": "Beskrivelse",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "PROJECT_REQUIRED": "Projektet er påkrævet",
+            "FIELD_REQUIRED": "Feltet er påkrævet"
+        },
+        "SAVE": "Gem",
+        "PROJECTS": "Projekter",
+        "ADD_PROJECT": "Tilføj projekt",
+        "EDIT_PROJECT": "Rediger projekt",
+        "DELETE_PROJECT": "Slet projekt",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "Projekt",
+        "CREATED_AT": "Oprettet på",
+        "NEW_PROJECT": "Nyt projekt",
+        "EDIT": "Rediger",
+        "SETTINGS": "Indstillinger",
+        "GENERAL": "Generel",
+        "BUILDER": "Builder",
+        "PREVIEW": "Preview",
+        "OPEN_CONTACT": "Åben kontakt"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/de.json b/public/app/main/apps/jscripty/i18n/de.json
new file mode 100644 (file)
index 0000000..6b80082
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Name",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "BACK": "Zurück",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "DESCRIPTION": "Beschreibung",
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "PROJECT_REQUIRED": "Das Projekt ist erforderlich",
+            "FIELD_REQUIRED": "Das Feld ist erforderlich."
+        },
+        "SAVE": "Speichern",
+        "PROJECTS": "Projekte",
+        "ADD_PROJECT": "Projekt hinzufügen",
+        "EDIT_PROJECT": "Projekt bearbeiten",
+        "DELETE_PROJECT": "Projekt löschen",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "Projekt",
+        "CREATED_AT": "Erstellt am",
+        "NEW_PROJECT": "Neues Projekt",
+        "EDIT": "Bearbeiten",
+        "SETTINGS": "Einstellungen",
+        "GENERAL": "Allgemein",
+        "BUILDER": "Builder",
+        "PREVIEW": "Vorschau",
+        "OPEN_CONTACT": "Kontakt öffnen"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/en.json b/public/app/main/apps/jscripty/i18n/en.json
new file mode 100644 (file)
index 0000000..e1fdc75
--- /dev/null
@@ -0,0 +1,196 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Name",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "BACK": "Back",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "DESCRIPTION": "Description",
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is required",
+            "PROJECT_REQUIRED": "The Project is required",
+            "FIELD_REQUIRED": "The field is required",
+            "NAME_MUST_VALID_PATTERN": "The Name must be written in a valid format"
+        },
+        "SAVE": "Save",
+        "PROJECTS": "Projects",
+        "ADD_PROJECT": "Add Project",
+        "EDIT_PROJECT": "Edit Project",
+        "DELETE_PROJECT": "Delete Project",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "Project",
+        "CREATED_AT": "Created At",
+        "NEW_PROJECT": "New Project",
+        "EDIT": "Edit",
+        "SETTINGS": "Settings",
+        "GENERAL": "General",
+        "BUILDER": "Builder",
+        "PREVIEW": "Preview",
+        "OPEN_CONTACT": "Open Contact"
+    },
+    "mwForm": {
+        "form": {
+            "name": "Form name",
+            "name.placeholder": "Form title",
+            "description": "Description"
+        },
+        "buttons": {
+            "addPage": "Add page",
+            "moveDown": "Move down",
+            "moveUp": "Move up",
+            "removePage": "Remove page",
+            "remove": "Remove",
+            "addElement": "Add element",
+            "questionReady": "Ready",
+            "next": "Next",
+            "back": "Back",
+            "submit": "Submit",
+            "begin": "Begin",
+            "fold": "Fold",
+            "unfold": "Unfold",
+            "edit": "Edit",
+            "clone": "Clone",
+            "view": "View"
+        },
+        "page": {
+            "tab": {
+                "heading": "Page {{page}} of {{allPages}}"
+            },
+            "elements": {
+                "empty": "Empty page"
+            },
+            "pageWithNameCheckbox": "named",
+            "name": "Page name"
+        },
+        "pageFlow": {
+            "afterPage": "After page {{page}}:",
+            "afterQuestionAnswer": "Go to page based on answer",
+            "goToPage": "Go to page {{page.number}}",
+            "goToNextPage": "Continue to next page",
+            "submitForm": "Submit form"
+        },
+        "elements": {
+            "question": "Question",
+            "image": "Image",
+            "paragraph": "Paragraph"
+        },
+        "question": {
+            "types": {
+                "text": {
+                    "name": "Short text"
+                },
+                "textarea": {
+                    "name": "Long text"
+                },
+                "radio": {
+                    "name": "Radio"
+                },
+                "select": {
+                    "name": "Select"
+                },
+                "checkbox": {
+                    "name": "Checkboxes"
+                },
+                "grid": {
+                    "name": "Grid"
+                },
+                "priority": {
+                    "name": "Priority"
+                },
+                "division": {
+                    "name": "Division"
+                },
+                "number": {
+                    "name": "Number"
+                },
+                "date": {
+                    "name": "Date"
+                },
+                "datetime": {
+                    "name": "Datetime"
+                },
+                "time": {
+                    "name": "Time"
+                },
+                "email": {
+                    "name": "Email"
+                },
+                "range": {
+                    "name": "Range"
+                },
+                "url": {
+                    "name": "URL"
+                }
+
+
+            },
+            "text": "Question text",
+            "type": "Question type",
+            "required": "Required",
+            "preview": {
+                "text": "Short answer text",
+                "textarea": "Long answer text",
+                "otherAnswer": "Other"
+            },
+            "division": {
+                "quantity": "Quantity",
+                "unit": "Unit label",
+                "assignedSumLabel": "Assigned",
+                "fromRequiredLabel": "from required"
+
+            },
+            "priority": {
+                "sorted": "Sorted",
+                "available": "Available",
+                "clickToAddItem": "Click to add item"
+            },
+            "grid": {
+                "cellInputType": "Cell input type",
+                "cellInputTypes": {
+                    "radio": "Radio",
+                    "checkbox": "Checkbox",
+                    "text": "Text",
+                    "number": "Number",
+                    "date": "Date",
+                    "time": "Time"
+                },
+                "rowLabel": "Row {{row}}",
+                "clickToAddRow": "Click to add row",
+                "columnLabel": "Column {{col}}",
+                "clickToAddColumn": "Click to add column"
+            },
+            "range": {
+                "from": "Range from",
+                "to": "to"
+            },
+            "number": {
+                "min": "Min",
+                "max": "Max"
+            },
+            "orLabel": "or ",
+            "otherLabel": "Other: ",
+            "userAnswer": "User answer",
+            "buttons": {
+                "addOption": "Click to add option",
+                "addOther": "Add 'Other'"
+            }
+
+        },
+        "image": {
+            "selectImageButton": "Select image",
+            "caption": "Image caption"
+        },
+        "paragraph": {
+            "placeholder": "Enter paragraph text"
+        },
+        "confirmationPage": {
+            "title": "Confirmation page",
+            "customMessage": "Custom confirmation message",
+            "defaultMessage": "Your response has been saved",
+            "errorMessage": "Error! Your response has not been saved",
+            "pendingMessage": "Your response is being saved."
+        }
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/es.json b/public/app/main/apps/jscripty/i18n/es.json
new file mode 100644 (file)
index 0000000..211c1b2
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Nombre",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "BACK": "Volver",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "DESCRIPTION": "Descripción",
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "PROJECT_REQUIRED": "El proyecto es obligatorio",
+            "FIELD_REQUIRED": "El campo es obligatorio"
+        },
+        "SAVE": "Guardar",
+        "PROJECTS": "Proyectos",
+        "ADD_PROJECT": "Agregar proyecto",
+        "EDIT_PROJECT": "Editar proyecto",
+        "DELETE_PROJECT": "Eliminar proyecto",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "Proyecto",
+        "CREATED_AT": "Creado en",
+        "NEW_PROJECT": "Nuevo proyecto",
+        "EDIT": "Editar",
+        "SETTINGS": "Configuración",
+        "GENERAL": "General",
+        "BUILDER": "Builder",
+        "PREVIEW": "Vista previa",
+        "OPEN_CONTACT": "Contacto abierto"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/fa.json b/public/app/main/apps/jscripty/i18n/fa.json
new file mode 100644 (file)
index 0000000..6d420c3
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "نام",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "BACK": "پشت",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "DESCRIPTION": "شرح",
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "PROJECT_REQUIRED": "پروژه مورد نیاز است.",
+            "FIELD_REQUIRED": "میدان لازم است."
+        },
+        "SAVE": "ذخیره",
+        "PROJECTS": "پروژه ها",
+        "ADD_PROJECT": "پروژه اضافه کنید",
+        "EDIT_PROJECT": "ویرایش پروژه",
+        "DELETE_PROJECT": "پروژه حذف می شود",
+        "JSCRIPTY": "Jscripty",
+        "ID": "شناسه",
+        "PROJECT": "پروژه",
+        "CREATED_AT": "ایجاد شده در",
+        "NEW_PROJECT": "پروژه جدید",
+        "EDIT": "ویرایش",
+        "SETTINGS": "تنظیمات",
+        "GENERAL": "سردار",
+        "BUILDER": "معمار",
+        "PREVIEW": "پیش نمایش",
+        "OPEN_CONTACT": "باز تماس"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/fi.json b/public/app/main/apps/jscripty/i18n/fi.json
new file mode 100644 (file)
index 0000000..ee6aae0
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Nimi",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "BACK": "Takaisin",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "DESCRIPTION": "Kuvaus",
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "PROJECT_REQUIRED": "Projekti on pakollinen",
+            "FIELD_REQUIRED": "Tämä kenttä on pakollinen"
+        },
+        "SAVE": "Tallenna",
+        "PROJECTS": "Projektit",
+        "ADD_PROJECT": "Lisää projektin",
+        "EDIT_PROJECT": "Muokkaa projektin",
+        "DELETE_PROJECT": "Poista projektin",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Tunnus",
+        "PROJECT": "Projektin",
+        "CREATED_AT": "Luodaan",
+        "NEW_PROJECT": "Uusi projekti.",
+        "EDIT": "Muokkaa",
+        "SETTINGS": "Asetusten määrittäminen",
+        "GENERAL": "Yleistä",
+        "BUILDER": "Rakennusjätteet",
+        "PREVIEW": "Esikatselu",
+        "OPEN_CONTACT": "Avoin kosketin"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/fr.json b/public/app/main/apps/jscripty/i18n/fr.json
new file mode 100644 (file)
index 0000000..3a836f4
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Nom",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "BACK": "Retour",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "DESCRIPTION": "Description",
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "PROJECT_REQUIRED": "Le projet est requis",
+            "FIELD_REQUIRED": "Le champ est obligatoire"
+        },
+        "SAVE": "Sauvegarder",
+        "PROJECTS": "Projets",
+        "ADD_PROJECT": "Ajouter un projet",
+        "EDIT_PROJECT": "Projet d'édition",
+        "DELETE_PROJECT": "Supprimer le projet",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "Projet",
+        "CREATED_AT": "Créé à",
+        "NEW_PROJECT": "Nouveau projet",
+        "EDIT": "Modifier",
+        "SETTINGS": "Settings",
+        "GENERAL": "Général",
+        "BUILDER": "Builder",
+        "PREVIEW": "Aperçu",
+        "OPEN_CONTACT": "Contact ouvert"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/hi.json b/public/app/main/apps/jscripty/i18n/hi.json
new file mode 100644 (file)
index 0000000..56c77cb
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "नाम",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "BACK": "वापिस",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "DESCRIPTION": "वर्णन",
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "PROJECT_REQUIRED": "इस परियोजना की आवश्यकता है।",
+            "FIELD_REQUIRED": "इस क्षेत्र की आवश्यकता है।"
+        },
+        "SAVE": "सहेजें",
+        "PROJECTS": "परियोजनाएं",
+        "ADD_PROJECT": "परियोजना में जोड़ें",
+        "EDIT_PROJECT": "परियोजना को संपादित करें",
+        "DELETE_PROJECT": "परियोजना को हटाएं",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "परियोजना",
+        "CREATED_AT": "सृजित",
+        "NEW_PROJECT": "नई परियोजना",
+        "EDIT": "संपादित करें",
+        "SETTINGS": "सेटिंग्स",
+        "GENERAL": "सामान्य",
+        "BUILDER": "निर्माता",
+        "PREVIEW": "पूर्वावलोकन",
+        "OPEN_CONTACT": "संपर्क को खोलें"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/it.json b/public/app/main/apps/jscripty/i18n/it.json
new file mode 100644 (file)
index 0000000..c349b6c
--- /dev/null
@@ -0,0 +1,192 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Nome",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "BACK": "Indietro",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutto",
+        "SELECT_NONE": "Deseleziona tutto",
+        "DESCRIPTION": "Descrizione",
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "PROJECT_REQUIRED": "Il Progetto è richiesto",
+            "FIELD_REQUIRED": "Il campo è richiesto",
+            "NAME_MUST_VALID_PATTERN": "Il nome deve essere in un formato valido"
+        },
+        "SAVE": "Salva",
+        "PROJECTS": "Progetti",
+        "ADD_PROJECT": "Aggiungi Progetto",
+        "EDIT_PROJECT": "Modifica Progetto",
+        "DELETE_PROJECT": "Delete Progetto",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "Progetto",
+        "CREATED_AT": "Creato il",
+        "NEW_PROJECT": "Nuovo Progetto",
+        "EDIT": "Modifica",
+        "SETTINGS": "Impostazioni",
+        "GENERAL": "Generale",
+        "BUILDER": "Builder",
+        "PREVIEW": "Preview",
+        "OPEN_CONTACT": "Apri il contatto"
+    },
+    "mwForm": {
+        "form": {
+            "name": "Nome del form",
+            "name.placeholder": "Titolo del form",
+            "description": "Descrizione"
+        },
+        "buttons": {
+            "addPage": "Aggiungi pagina",
+            "moveDown": "Sposta sotto",
+            "moveUp": "Sposta sopra",
+            "removePage": "Rimuovi pagina",
+            "remove": "Rimuovi",
+            "addElement": "Aggiungi elemento",
+            "questionReady": "Pronto",
+            "next": "Prossimo",
+            "back": "Indietro",
+            "submit": "Sottometti",
+            "begin": "Inizio",
+            "fold": "Fold",
+            "unfold": "Unfold",
+            "edit": "Modifica",
+            "clone": "Cloan",
+            "view": "View"
+        },
+        "page": {
+            "tab": {
+                "heading": "Pagina {{page}} di {{allPages}}"
+            },
+            "elements": {
+                "empty": "Pagina vuota"
+            },
+            "pageWithNameCheckbox": "nome",
+            "name": "Nome della pagina"
+        },
+        "pageFlow": {
+            "afterPage": "Pagina successiva {{page}}:",
+            "afterQuestionAnswer": "Vai alla bagina in base alla risposta",
+            "goToPage": "Vai alla pagina {{page.number}}",
+            "goToNextPage": "Continua nella prossima pagina",
+            "submitForm": "Submit form"
+        },
+        "elements": {
+            "question": "Domanda",
+            "image": "Immagine",
+            "paragraph": "Paragrafo"
+        },
+        "question": {
+            "types": {
+                "text": {
+                    "name": "Testo corto"
+                },
+                "textarea": {
+                    "name": "Testo lungk"
+                },
+                "radio": {
+                    "name": "Radio"
+                },
+                "select": {
+                    "name": "Selezione"
+                },
+                "checkbox": {
+                    "name": "Checkboxes"
+                },
+                "grid": {
+                    "name": "Grid"
+                },
+                "priority": {
+                    "name": "Priority"
+                },
+                "division": {
+                    "name": "Division"
+                },
+                "number": {
+                    "name": "Numero"
+                },
+                "date": {
+                    "name": "Data"
+                },
+                "datetime": {
+                    "name": "Datetime"
+                },
+                "time": {
+                    "name": "Tempo"
+                },
+                "email": {
+                    "name": "Email"
+                },
+                "range": {
+                    "name": "Range"
+                },
+                "url": {
+                    "name": "URL"
+                }
+            },
+            "text": "Testo Domanda",
+            "type": "Tipo Domanda",
+            "required": "Richiesta",
+            "preview": {
+                "text": "Testo risposta breve",
+                "textarea": "Testo risposta lunga",
+                "otherAnswer": "Altro"
+            },
+            "division": {
+                "quantity": "Quantity",
+                "unit": "Unit label",
+                "assignedSumLabel": "Assigned",
+                "fromRequiredLabel": "from required"
+            },
+            "priority": {
+                "sorted": "Sorted",
+                "available": "Available",
+                "clickToAddItem": "Click to add item"
+            },
+            "grid": {
+                "cellInputType": "Cell input type",
+                "cellInputTypes": {
+                    "radio": "Radio",
+                    "checkbox": "Checkbox",
+                    "text": "Text",
+                    "number": "Number",
+                    "date": "Date",
+                    "time": "Time"
+                },
+                "rowLabel": "Row {{row}}",
+                "clickToAddRow": "Click to add row",
+                "columnLabel": "Column {{col}}",
+                "clickToAddColumn": "Click to add column"
+            },
+            "range": {
+                "from": "Range da",
+                "to": "a"
+            },
+            "number": {
+                "min": "Min",
+                "max": "Max"
+            },
+            "orLabel": "o ",
+            "otherLabel": "Altro: ",
+            "userAnswer": "Risposta utente",
+            "buttons": {
+                "addOption": "Click per aggiungere un opzione",
+                "addOther": "Aggiungi 'Altro'"
+            }
+        },
+        "image": {
+            "selectImageButton": "Selezione immagine",
+            "caption": "Immagine caption"
+        },
+        "paragraph": {
+            "placeholder": "Inserisci testo paragrafo"
+        },
+        "confirmationPage": {
+            "title": "Conferma pagina",
+            "customMessage": "Messaggio conferma custom",
+            "defaultMessage": "La tua risposta è stata salvata",
+            "errorMessage": "Errore! La tua risposta non è stata salvata",
+            "pendingMessage": "Stiamo salvando la tua risposta."
+        }
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/ja.json b/public/app/main/apps/jscripty/i18n/ja.json
new file mode 100644 (file)
index 0000000..cf77c76
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "名",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "BACK": "背面",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "DESCRIPTION": "説明",
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "PROJECT_REQUIRED": "プロジェクトが必要です",
+            "FIELD_REQUIRED": "このフィールドは必須です"
+        },
+        "SAVE": "保存",
+        "PROJECTS": "プロジェクト",
+        "ADD_PROJECT": "プロジェクトを追加します。",
+        "EDIT_PROJECT": "プロジェクトを編集",
+        "DELETE_PROJECT": "プロジェクトを削除する",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "プロジェクト",
+        "CREATED_AT": "で作成された",
+        "NEW_PROJECT": "新しいプロジェクト",
+        "EDIT": "編集",
+        "SETTINGS": "の設定",
+        "GENERAL": "一般的な",
+        "BUILDER": "Builder",
+        "PREVIEW": "プレビュー",
+        "OPEN_CONTACT": "連絡先を開く"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/ko.json b/public/app/main/apps/jscripty/i18n/ko.json
new file mode 100644 (file)
index 0000000..8a5882d
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "이름",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "BACK": "후면",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "DESCRIPTION": "설명",
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "PROJECT_REQUIRED": "이 사업은 필수",
+            "FIELD_REQUIRED": "이 필드는 필수 항목입니다."
+        },
+        "SAVE": "저장",
+        "PROJECTS": "프로젝트",
+        "ADD_PROJECT": "프로젝트 추가",
+        "EDIT_PROJECT": "편집 프로젝트",
+        "DELETE_PROJECT": "프로젝트 삭제",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "프로젝트",
+        "CREATED_AT": "생성",
+        "NEW_PROJECT": "새 프로젝트",
+        "EDIT": "편집",
+        "SETTINGS": "설정",
+        "GENERAL": "일반",
+        "BUILDER": "빌더",
+        "PREVIEW": "미리 보기",
+        "OPEN_CONTACT": "연락처 열기"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/nl.json b/public/app/main/apps/jscripty/i18n/nl.json
new file mode 100644 (file)
index 0000000..fedb894
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Naam",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "BACK": "Terug",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "DESCRIPTION": "Beschrijving",
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "PROJECT_REQUIRED": "Het project is vereist",
+            "FIELD_REQUIRED": "Het is een verplicht veld"
+        },
+        "SAVE": "Opslaan",
+        "PROJECTS": "Projecten",
+        "ADD_PROJECT": "Voeg Project",
+        "EDIT_PROJECT": "Edit Project",
+        "DELETE_PROJECT": "Project verwijderen",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "Project",
+        "CREATED_AT": "Gemaakt op",
+        "NEW_PROJECT": "Nieuw project",
+        "EDIT": "Bewerken",
+        "SETTINGS": "Instellingen",
+        "GENERAL": "Algemeen",
+        "BUILDER": "Builder",
+        "PREVIEW": "Afdrukvoorbeeld",
+        "OPEN_CONTACT": "Open Contact"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/no.json b/public/app/main/apps/jscripty/i18n/no.json
new file mode 100644 (file)
index 0000000..c4b56b5
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Navn",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "BACK": "Tilbake",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "DESCRIPTION": "Beskrivelse",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "PROJECT_REQUIRED": "Prosjektet er nødvendig",
+            "FIELD_REQUIRED": "Feltet er obligatorisk"
+        },
+        "SAVE": "Lagre",
+        "PROJECTS": "Prosjekter",
+        "ADD_PROJECT": "Legg til prosjekt",
+        "EDIT_PROJECT": "Rediger prosjekt",
+        "DELETE_PROJECT": "Slett prosjekt",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "Prosjekt",
+        "CREATED_AT": "Opprettet i",
+        "NEW_PROJECT": "Nytt prosjekt",
+        "EDIT": "Rediger",
+        "SETTINGS": "Innstillinger",
+        "GENERAL": "Generelt",
+        "BUILDER": "Builder",
+        "PREVIEW": "Forhåndsvisning",
+        "OPEN_CONTACT": "Åpen kontakt"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/pt-PT.json b/public/app/main/apps/jscripty/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..e9e9778
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Nome",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "BACK": "De volta",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "DESCRIPTION": "Descrição",
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "PROJECT_REQUIRED": "O projeto é necessário",
+            "FIELD_REQUIRED": "O campo é obrigatório"
+        },
+        "SAVE": "Salvar",
+        "PROJECTS": "Projectos",
+        "ADD_PROJECT": "Adicionar projeto",
+        "EDIT_PROJECT": "Editar Projecto",
+        "DELETE_PROJECT": "Excluir o projeto",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "Projecto",
+        "CREATED_AT": "Criado em",
+        "NEW_PROJECT": "Novo Projeto",
+        "EDIT": "Editar",
+        "SETTINGS": "Definições",
+        "GENERAL": "Geral",
+        "BUILDER": "Builder",
+        "PREVIEW": "Visualização",
+        "OPEN_CONTACT": "Contacto aberto"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/ru.json b/public/app/main/apps/jscripty/i18n/ru.json
new file mode 100644 (file)
index 0000000..28122be
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Имя",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "BACK": "Назад",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "DESCRIPTION": "Описание",
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "PROJECT_REQUIRED": "В рамках этого проекта не требуется",
+            "FIELD_REQUIRED": "Поле является обязательным"
+        },
+        "SAVE": "Сохранить",
+        "PROJECTS": "Проекты",
+        "ADD_PROJECT": "Добавить проект",
+        "EDIT_PROJECT": "Редактировать проект",
+        "DELETE_PROJECT": "Удалить",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "Проект",
+        "CREATED_AT": "Созданные в",
+        "NEW_PROJECT": "Новый проект",
+        "EDIT": "Изменить",
+        "SETTINGS": "Настройки",
+        "GENERAL": "Генеральной",
+        "BUILDER": "Конструктор условий",
+        "PREVIEW": "Предварительный просмотр",
+        "OPEN_CONTACT": "Контакт разомкнут"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/sv.json b/public/app/main/apps/jscripty/i18n/sv.json
new file mode 100644 (file)
index 0000000..547ac3c
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Namn",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "BACK": "Tillbaka",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "DESCRIPTION": "Beskrivning",
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "PROJECT_REQUIRED": "Projektet är obligatoriskt",
+            "FIELD_REQUIRED": "Fältet är obligatoriskt"
+        },
+        "SAVE": "Spara",
+        "PROJECTS": "Projekt",
+        "ADD_PROJECT": "Lägg till projekt",
+        "EDIT_PROJECT": "Redigera projekt",
+        "DELETE_PROJECT": "Ta bort projekt",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "Projektet",
+        "CREATED_AT": "Skapad",
+        "NEW_PROJECT": "Nytt projekt",
+        "EDIT": "Redigera",
+        "SETTINGS": "Inställningar",
+        "GENERAL": "Allmänt",
+        "BUILDER": "Byggmästare",
+        "PREVIEW": "Förhandsgranska",
+        "OPEN_CONTACT": "Öppen kontakt"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/tr.json b/public/app/main/apps/jscripty/i18n/tr.json
new file mode 100644 (file)
index 0000000..3fb473f
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "Adı",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "BACK": "Geri",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "DESCRIPTION": "Açıklama",
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "PROJECT_REQUIRED": "Proje gerekiyor.",
+            "FIELD_REQUIRED": "Bu alanı gerekli."
+        },
+        "SAVE": "Kaydet",
+        "PROJECTS": "Projeler",
+        "ADD_PROJECT": "Add Project",
+        "EDIT_PROJECT": "Edit Project",
+        "DELETE_PROJECT": "Proje silin",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "Proje",
+        "CREATED_AT": "Oluşturulmuş",
+        "NEW_PROJECT": "Yeni Proje",
+        "EDIT": "Düzenle",
+        "SETTINGS": "Ayarlar",
+        "GENERAL": "Genel",
+        "BUILDER": "Oluşturucu",
+        "PREVIEW": "Önizleme",
+        "OPEN_CONTACT": "Kontak açık"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/zh-CN.json b/public/app/main/apps/jscripty/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..8ed5be7
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "名称",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "BACK": "返回",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "DESCRIPTION": "描述",
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "PROJECT_REQUIRED": "该项目是必需的",
+            "FIELD_REQUIRED": "该字段为必需字段。"
+        },
+        "SAVE": "保存",
+        "PROJECTS": "项目",
+        "ADD_PROJECT": "添加项目",
+        "EDIT_PROJECT": "编辑项目",
+        "DELETE_PROJECT": "删除项目",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "项目",
+        "CREATED_AT": "创建在",
+        "NEW_PROJECT": "新项目",
+        "EDIT": "编辑",
+        "SETTINGS": "设置",
+        "GENERAL": "总的",
+        "BUILDER": "构建器",
+        "PREVIEW": "预览",
+        "OPEN_CONTACT": "打开联系人"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/jscripty/i18n/zh-TW.json b/public/app/main/apps/jscripty/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..e427b5c
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "JSCRIPTY": {
+        "NAME": "名稱",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "BACK": "備份",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "DESCRIPTION": "說明",
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "PROJECT_REQUIRED": "該專案是必填欄位",
+            "FIELD_REQUIRED": "此欄位為必填欄位"
+        },
+        "SAVE": "儲存",
+        "PROJECTS": "專案計畫",
+        "ADD_PROJECT": "新增專案",
+        "EDIT_PROJECT": "編輯專案",
+        "DELETE_PROJECT": "刪除專案",
+        "JSCRIPTY": "Jscripty",
+        "ID": "Id",
+        "PROJECT": "專案",
+        "CREATED_AT": "建立在",
+        "NEW_PROJECT": "新的專案",
+        "EDIT": "編輯",
+        "SETTINGS": "設定",
+        "GENERAL": "通用",
+        "BUILDER": "建構工具",
+        "PREVIEW": "預覽列印",
+        "OPEN_CONTACT": "開啟聯絡人"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/da.json b/public/app/main/apps/mail/i18n/da.json
new file mode 100644 (file)
index 0000000..be263a7
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Navnet",
+        "MAILQUEUES": "Postkøer",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "STRATEGY": "Strategi",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten Timeout er påkrævet",
+            "EMAIL_ADDRESS_REQUIRED": "E-mail-adresse er nødvendig",
+            "EMAIL_ADDRESS_MUST_VALID": "E-mail-adressen skal være skrevet i et gyldigt format",
+            "HOST_REQUIRED": "Værten er påkrævet",
+            "USERNAME_REQUIRED": "Brugernavn er påkrævet",
+            "PORT_REQUIRED": "Havnen er påkrævet",
+            "CONNTIMEOUT_REQUIRED": "Det kræves Forbindelsestidsfrist",
+            "AUTHTIMEOUT_REQUIRED": "Det Godkendelsestimeout er påkrævet",
+            "ACCEPTURL_MUST_VALID_URL": "Det acceptere URL skal være skrevet i et gyldigt format",
+            "TIMEOUT_REQUIRED": "Timeout er påkrævet",
+            "REJECTURL_MUST_VALID_URL": "Reject-URL skal være skrevet i et gyldigt format",
+            "CLOSEURL_MUST_VALID_URL": "Den tætte URL skal være skrevet i et gyldigt format"
+        },
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_MAILQUEUE": "Tilføj Mail kø",
+        "EDIT_MAILQUEUE": "Edit Post kø",
+        "DELETE_MAILQUEUE": "Slet Mail-køen",
+        "SETTINGS": "Indstillinger",
+        "GENERAL": "Generel",
+        "SAVE": "Gem",
+        "MAILACCOUNTS": "Mail konti",
+        "EMAIL_ADDRESS": "E-mail adresse",
+        "ADD_MAILACCOUNT": "Tilføj Mail konto",
+        "EDIT_MAILACCOUNT": "Rediger e-mail-konto",
+        "DELETE_MAILACCOUNT": "Slet Mail-konti",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Handlinger",
+        "OTHERS": "Andre",
+        "LIST": "Listen",
+        "TEMPLATE": "Skabelon",
+        "FIDELITY": "Fidelity",
+        "SERVICE": "Service",
+        "CREATED_AT": "Oprettet på",
+        "ACCEPT": "Accepter",
+        "ACCEPTMETHOD": "Acceptere metode",
+        "ACCEPTURL": "Acceptere URL",
+        "REJECT": "Afvis",
+        "REJECTMETHOD": "Afvis metode",
+        "REJECTURL": "Afvis URL",
+        "CLOSE": "Luk",
+        "CLOSEMETHOD": "Luk metode",
+        "CLOSEURL": "Luk URL",
+        "WHITELABEL": "Hvidmærke",
+        "SIGNATURE": "Underskrift",
+        "IMAP": "IMAP",
+        "HOST": "Host",
+        "USERNAME": "Brugernavn",
+        "PORT": "Port",
+        "MAILBOX": "Postkasse",
+        "FILTER": "Filter",
+        "CONNTIMEOUT": "Forbindelsestidsfrist [sek.]",
+        "AUTHTIMEOUT": "Godkendelsestimeout [sek.]",
+        "DELETE": "Slet e-mails fra serveren",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "Polling",
+        "SMTP": "SMTP",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "BACK": "Tilbage",
+        "MAIL": "Mail",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "PASSWORD": "Password",
+        "NO_MAILDISPOSITION_AVAILABLE": "Ingen Mail Dispositions tilgængelig",
+        "ADD_MAILDISPOSITION": "Tilføj Mail Disp.",
+        "NEW_MAILDISPOSITION": "Ny Mail Disp.",
+        "EDIT_MAILDISPOSITION": "Edit Post Disp.",
+        "DELETE_MAILDISPOSITION": "Slet Mail Disp.",
+        "MAILDISPOSITIONS": "Mail Dispositions",
+        "NEW_MAILQUEUE": "Ny mail-køen",
+        "NEW_MAILACCOUNT": "Ny mail konto",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "ALL_TEAMS": "Alle hold",
+        "SELECTED_TEAMS": "Udvalgte Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/de.json b/public/app/main/apps/mail/i18n/de.json
new file mode 100644 (file)
index 0000000..240d252
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Name",
+        "MAILQUEUES": "E-Mail Warteschlangen",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "STRATEGY": "Strategie",
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "AGENT_TIMEOUT_REQUIRED": "Der Agent Timeout ist erforderlich",
+            "EMAIL_ADDRESS_REQUIRED": "Die E-Mail-Adresse ist erforderlich",
+            "EMAIL_ADDRESS_MUST_VALID": "Die E-Mail Adresse muss in einem gültigen Format",
+            "HOST_REQUIRED": "Der Host wird benötigt",
+            "USERNAME_REQUIRED": "Der Benutzername ist erforderlich",
+            "PORT_REQUIRED": "Der Port ist erforderlich",
+            "CONNTIMEOUT_REQUIRED": "Timeout der Verbindung ist erforderlich",
+            "AUTHTIMEOUT_REQUIRED": "Das Zeitlimit für die Authentifizierung erforderlich ist",
+            "ACCEPTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+            "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+            "REJECTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+            "CLOSEURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format"
+        },
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Beschreibung",
+        "ADD_MAILQUEUE": "E-Mail Warteschlange hinzufügen",
+        "EDIT_MAILQUEUE": "E-Mail Warteschlange bearbeiten",
+        "DELETE_MAILQUEUE": "E-Mail Warteschlange löschen",
+        "SETTINGS": "Einstellungen",
+        "GENERAL": "Allgemein",
+        "SAVE": "Speichern",
+        "MAILACCOUNTS": "E-Mail Konten",
+        "EMAIL_ADDRESS": "E-Mail Adresse",
+        "ADD_MAILACCOUNT": "E-Mail Konto hinzufügen",
+        "EDIT_MAILACCOUNT": "E-Mail-Konto bearbeiten",
+        "DELETE_MAILACCOUNT": "E-Mail-Konten löschen",
+        "DISPOSITIONS": "Bestimmungen",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Aktionen",
+        "OTHERS": "Andere",
+        "LIST": "Liste",
+        "TEMPLATE": "Vorlage",
+        "FIDELITY": "Treue",
+        "SERVICE": "Service",
+        "CREATED_AT": "Erstellt am",
+        "ACCEPT": "Akzeptieren",
+        "ACCEPTMETHOD": "Die Methode",
+        "ACCEPTURL": "URL akzeptieren",
+        "REJECT": "Ablehnen",
+        "REJECTMETHOD": "Methode ablehnen",
+        "REJECTURL": "URL ablehnen",
+        "CLOSE": "In der Nähe",
+        "CLOSEMETHOD": "In der Nähe Methode",
+        "CLOSEURL": "Der URL",
+        "WHITELABEL": "White Label",
+        "SIGNATURE": "Unterschrift",
+        "IMAP": "IMAP",
+        "HOST": "Host",
+        "USERNAME": "Benutzername",
+        "PORT": "Hafen",
+        "MAILBOX": "Mailbox",
+        "FILTER": "Filter",
+        "CONNTIMEOUT": "Connection Timeout [sek]",
+        "AUTHTIMEOUT": "Authentication Timeout [sek]",
+        "DELETE": "E-Mails vom Server löschen",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "Polling",
+        "SMTP": "SMTP",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "BACK": "Zurück",
+        "MAIL": "E-Mail",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "PASSWORD": "Passwort",
+        "NO_MAILDISPOSITION_AVAILABLE": "Keine E-Mail zur Verfügung Verfügungen",
+        "ADD_MAILDISPOSITION": "E-Mail hinzufügen Disposition",
+        "NEW_MAILDISPOSITION": "Neue E-Mail zur Verfügung",
+        "EDIT_MAILDISPOSITION": "Bearbeiten von E-Mail zur Verfügung",
+        "DELETE_MAILDISPOSITION": "Löschen von E-Mail zur Verfügung",
+        "MAILDISPOSITIONS": "E-Mail Verfügungen",
+        "NEW_MAILQUEUE": "Neue E-Mail Warteschlange",
+        "NEW_MAILACCOUNT": "Neue E-Mail Konto",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "ALL_TEAMS": "Alle Mannschaften",
+        "SELECTED_TEAMS": "Ausgewählte Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/en.json b/public/app/main/apps/mail/i18n/en.json
new file mode 100644 (file)
index 0000000..250a06d
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Name",
+        "MAILQUEUES": "Mail Queues",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "STRATEGY": "Strategy",
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is required",
+            "AGENT_TIMEOUT_REQUIRED": "The Agent Timeout is required",
+            "EMAIL_ADDRESS_REQUIRED": "The Email Address is required",
+            "EMAIL_ADDRESS_MUST_VALID": "The Email Address must be written in a valid format",
+            "HOST_REQUIRED": "The Host is required",
+            "USERNAME_REQUIRED": "The Username is required",
+            "PORT_REQUIRED": "The Port is required",
+            "CONNTIMEOUT_REQUIRED": "The Connection Timeout is required",
+            "AUTHTIMEOUT_REQUIRED": "The Authentication Timeout is required",
+            "ACCEPTURL_MUST_VALID_URL": "The Accept URL must be written in a valid format",
+            "TIMEOUT_REQUIRED": "The Timeout is required",
+            "REJECTURL_MUST_VALID_URL": "The Reject URL must be written in a valid format",
+            "CLOSEURL_MUST_VALID_URL": "The Close URL must be written in a valid format"
+        },
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Description",
+        "ADD_MAILQUEUE": "Add Mail Queue",
+        "EDIT_MAILQUEUE": "Edit Mail Queue",
+        "DELETE_MAILQUEUE": "Delete Mail Queue",
+        "SETTINGS": "Settings",
+        "GENERAL": "General",
+        "SAVE": "Save",
+        "MAILACCOUNTS": "Mail Accounts",
+        "EMAIL_ADDRESS": "Email Address",
+        "ADD_MAILACCOUNT": "Add Mail Account",
+        "EDIT_MAILACCOUNT": "Edit Mail Account",
+        "DELETE_MAILACCOUNT": "Delete Mail Accounts",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Actions",
+        "OTHERS": "Others",
+        "LIST": "List",
+        "TEMPLATE": "Template",
+        "FIDELITY": "Fidelity",
+        "SERVICE": "Service",
+        "CREATED_AT": "Created At",
+        "ACCEPT": "Accept",
+        "ACCEPTMETHOD": "Accept Method",
+        "ACCEPTURL": "Accept URL",
+        "REJECT": "Reject",
+        "REJECTMETHOD": "Reject Method",
+        "REJECTURL": "Reject URL",
+        "CLOSE": "Close",
+        "CLOSEMETHOD": "Close Method",
+        "CLOSEURL": "Close URL",
+        "WHITELABEL": "White Label",
+        "SIGNATURE": "Signature",
+        "IMAP": "IMAP",
+        "HOST": "Host",
+        "USERNAME": "Username",
+        "PORT": "Port",
+        "MAILBOX": "Mailbox",
+        "FILTER": "Filter",
+        "CONNTIMEOUT": "Connection Timeout [sec]",
+        "AUTHTIMEOUT": "Authentication Timeout [sec]",
+        "DELETE": "Delete Mails From Server",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "Polling",
+        "SMTP": "SMTP",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "BACK": "Back",
+        "MAIL": "Mail",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "PASSWORD": "Password",
+        "NO_MAILDISPOSITION_AVAILABLE": "No Mail Dispositions available",
+        "ADD_MAILDISPOSITION": "Add Mail Disposition",
+        "NEW_MAILDISPOSITION": "New Mail Disposition",
+        "EDIT_MAILDISPOSITION": "Edit Mail Disposition",
+        "DELETE_MAILDISPOSITION": "Delete Mail Disposition",
+        "MAILDISPOSITIONS": "Mail Dispositions",
+        "NEW_MAILQUEUE": "New Mail Queue",
+        "NEW_MAILACCOUNT": "New Mail Account",
+        "NO_AVAILABLE_INFO": "No available info",
+        "ALL_TEAMS": "All Teams",
+        "SELECTED_TEAMS": "Selected Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/es.json b/public/app/main/apps/mail/i18n/es.json
new file mode 100644 (file)
index 0000000..be9bcdd
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Nombre",
+        "MAILQUEUES": "Colas de correo",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "STRATEGY": "Estrategia",
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "AGENT_TIMEOUT_REQUIRED": "El agente se requiere tiempo de espera",
+            "EMAIL_ADDRESS_REQUIRED": "Es necesario introducir la dirección de correo electrónico",
+            "EMAIL_ADDRESS_MUST_VALID": "La dirección de correo electrónico deben escribirse en un formato válido",
+            "HOST_REQUIRED": "El Host es obligatorio",
+            "USERNAME_REQUIRED": "El nombre de usuario es obligatorio",
+            "PORT_REQUIRED": "El puerto es necesario",
+            "CONNTIMEOUT_REQUIRED": "El tiempo de espera de conexión es necesaria",
+            "AUTHTIMEOUT_REQUIRED": "El tiempo de espera de autenticación es necesaria",
+            "ACCEPTURL_MUST_VALID_URL": "Aceptar la URL debe estar escrito en un formato válido",
+            "TIMEOUT_REQUIRED": "El tiempo de espera es necesario",
+            "REJECTURL_MUST_VALID_URL": "Rechazar la URL debe estar escrito en un formato válido",
+            "CLOSEURL_MUST_VALID_URL": "La estrecha URL debe ser escrito en un formato válido"
+        },
+        "AGENT_TIMEOUT": "Tiempo de espera del agente",
+        "DESCRIPTION": "Descripción",
+        "ADD_MAILQUEUE": "Añadir la cola de correo",
+        "EDIT_MAILQUEUE": "Editar el correo en la cola",
+        "DELETE_MAILQUEUE": "Eliminar el correo en la cola",
+        "SETTINGS": "Configuración",
+        "GENERAL": "General",
+        "SAVE": "Guardar",
+        "MAILACCOUNTS": "Cuentas de correo",
+        "EMAIL_ADDRESS": "Dirección de correo electrónico",
+        "ADD_MAILACCOUNT": "Agregar cuenta de correo electrónico",
+        "EDIT_MAILACCOUNT": "Editar cuentas de correo",
+        "DELETE_MAILACCOUNT": "Eliminar cuentas de correo",
+        "DISPOSITIONS": "Disposiciones",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acciones",
+        "OTHERS": "Otros",
+        "LIST": "Lista",
+        "TEMPLATE": "Plantilla",
+        "FIDELITY": "Fidelidad",
+        "SERVICE": "Servicio",
+        "CREATED_AT": "Creado en",
+        "ACCEPT": "Aceptar",
+        "ACCEPTMETHOD": "Aceptar el método",
+        "ACCEPTURL": "Aceptar URL",
+        "REJECT": "Rechazar",
+        "REJECTMETHOD": "Método de rechazo",
+        "REJECTURL": "Rechazar URL",
+        "CLOSE": "Cerrar",
+        "CLOSEMETHOD": "Método Close",
+        "CLOSEURL": "Cerrar URL",
+        "WHITELABEL": "Etiqueta blanca",
+        "SIGNATURE": "La firma",
+        "IMAP": "IMAP",
+        "HOST": "Host",
+        "USERNAME": "Nombre de usuario",
+        "PORT": "Puerto",
+        "MAILBOX": "Buzón",
+        "FILTER": "Filtrar",
+        "CONNTIMEOUT": "Connection Timeout [s]",
+        "AUTHTIMEOUT": "Tiempo de espera de autenticación [s]",
+        "DELETE": "Eliminar mensajes del servidor",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "El sondeo",
+        "SMTP": "SMTP",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "BACK": "Volver",
+        "MAIL": "Mail",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "PASSWORD": "Contraseña",
+        "NO_MAILDISPOSITION_AVAILABLE": "No hay disposiciones de correo disponibles",
+        "ADD_MAILDISPOSITION": "Añadir la disposición de correo",
+        "NEW_MAILDISPOSITION": "Nueva disposición de correo",
+        "EDIT_MAILDISPOSITION": "Modificar la disposición de correo",
+        "DELETE_MAILDISPOSITION": "Eliminar correo disposicion",
+        "MAILDISPOSITIONS": "Disposiciones de correo",
+        "NEW_MAILQUEUE": "Nueva cola de correo",
+        "NEW_MAILACCOUNT": "Nueva cuenta de correo",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "ALL_TEAMS": "Todos los equipos",
+        "SELECTED_TEAMS": "Los equipos seleccionados"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/fa.json b/public/app/main/apps/mail/i18n/fa.json
new file mode 100644 (file)
index 0000000..5599d37
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "نام",
+        "MAILQUEUES": "صفهای طولانی پست",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "STRATEGY": "استراتژي",
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "AGENT_TIMEOUT_REQUIRED": "عامل پایان زمان لازم است.",
+            "EMAIL_ADDRESS_REQUIRED": "آدرس ایمیل لازم است.",
+            "EMAIL_ADDRESS_MUST_VALID": "آدرس ایمیل باید با فرمت معتبر نوشته شده است",
+            "HOST_REQUIRED": "ميزبان لازم است.",
+            "USERNAME_REQUIRED": "نام کاربری مورد نیاز است.",
+            "PORT_REQUIRED": "از پورت مورد نیاز است.",
+            "CONNTIMEOUT_REQUIRED": "اتصال به پایان زمان لازم است.",
+            "AUTHTIMEOUT_REQUIRED": "تأیید اعتبار به پایان زمان لازم است.",
+            "ACCEPTURL_MUST_VALID_URL": "از پذیرفتن باید آدرس کامل را در یک فرمت معتبر نوشته شده است",
+            "TIMEOUT_REQUIRED": "در پایان زمان لازم است.",
+            "REJECTURL_MUST_VALID_URL": "آدرس کامل را رد كند بايد در فرمت معتبر نوشته شده است",
+            "CLOSEURL_MUST_VALID_URL": "آدرس کامل باید بسته به فرمت معتبر نوشته شده است"
+        },
+        "AGENT_TIMEOUT": "عامل زمان مجاز",
+        "DESCRIPTION": "شرح",
+        "ADD_MAILQUEUE": "پست صف اضافه کنید",
+        "EDIT_MAILQUEUE": "ویرایش پست صف",
+        "DELETE_MAILQUEUE": "پست صف حذف می شود",
+        "SETTINGS": "تنظیمات",
+        "GENERAL": "سردار",
+        "SAVE": "ذخیره",
+        "MAILACCOUNTS": "حساب های پستی",
+        "EMAIL_ADDRESS": "آدرس ایمیل",
+        "ADD_MAILACCOUNT": "اشتراک پست اضافه کنید",
+        "EDIT_MAILACCOUNT": "ویرایش اشتراک پستی",
+        "DELETE_MAILACCOUNT": "حذف حساب های پستی",
+        "DISPOSITIONS": "مكتبى",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "اقدامات",
+        "OTHERS": "ديگران",
+        "LIST": "فهرست",
+        "TEMPLATE": "الگوی",
+        "FIDELITY": "وفاداري",
+        "SERVICE": "سرویس",
+        "CREATED_AT": "ایجاد شده در",
+        "ACCEPT": "پذیرفتن",
+        "ACCEPTMETHOD": "اين روش را قبول",
+        "ACCEPTURL": "آدرس کامل قبول",
+        "REJECT": "رد كردن",
+        "REJECTMETHOD": "روش رد",
+        "REJECTURL": "آدرس کامل رد",
+        "CLOSE": "بستن",
+        "CLOSEMETHOD": "روش بستن",
+        "CLOSEURL": "آدرس کامل ببندید",
+        "WHITELABEL": "برچسب سفید",
+        "SIGNATURE": "29 نوامبر 1798",
+        "IMAP": "IMAP",
+        "HOST": "کشور میزبان",
+        "USERNAME": "نام کاربری",
+        "PORT": "بندر",
+        "MAILBOX": "Mailbox",
+        "FILTER": "فیلتر کردن",
+        "CONNTIMEOUT": "زمان وقفه بر حسب ثانیه [ارتباط]",
+        "AUTHTIMEOUT": "تأیید اعتبار پایان زمان [ثانیه]",
+        "DELETE": "حذف از سرور ایمیل",
+        "SSL": "English Version اين تارنما توسط دفتر برنامه های",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "حوزه",
+        "SMTP": "SMTP",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "BACK": "پشت",
+        "MAIL": "پست",
+        "ID": "شناسه",
+        "TIMEOUT": "پایان زمان مجاز",
+        "PASSWORD": "اسم رمز",
+        "NO_MAILDISPOSITION_AVAILABLE": "هيچ مكتبى پستی موجود نیست",
+        "ADD_MAILDISPOSITION": "1626 پستی اضافه کنید",
+        "NEW_MAILDISPOSITION": "پست جديد 1626",
+        "EDIT_MAILDISPOSITION": "ویرایش پست 1626",
+        "DELETE_MAILDISPOSITION": "حذف پست 1626",
+        "MAILDISPOSITIONS": "پست مكتبى",
+        "NEW_MAILQUEUE": "پست جديد در صف",
+        "NEW_MAILACCOUNT": "اشتراک پست جدید",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "ALL_TEAMS": "همه تیم ها",
+        "SELECTED_TEAMS": "تيم هاي برگزيده"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/fi.json b/public/app/main/apps/mail/i18n/fi.json
new file mode 100644 (file)
index 0000000..076fcee
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Nimi",
+        "MAILQUEUES": "Postin jonot",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "STRATEGY": "Strategia",
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "AGENT_TIMEOUT_REQUIRED": "Asiakaspalvelijan aikakatkaisu on pakollinen",
+            "EMAIL_ADDRESS_REQUIRED": "Sähköpostiosoite on pakollinen",
+            "EMAIL_ADDRESS_MUST_VALID": "Sähköpostiosoite on kirjoitettava kelvollisessa muodossa",
+            "HOST_REQUIRED": "Isäntä ei tarvita",
+            "USERNAME_REQUIRED": "Käyttäjätunnus on pakollinen",
+            "PORT_REQUIRED": "Portti ei tarvita",
+            "CONNTIMEOUT_REQUIRED": "Yhteyden aikakatkaisu on pakollinen",
+            "AUTHTIMEOUT_REQUIRED": "Laillisuustarkistuksen aikakatkaisu on pakollinen",
+            "ACCEPTURL_MUST_VALID_URL": "Hyväksy URL on kirjoitettava kelvollisessa muodossa",
+            "TIMEOUT_REQUIRED": "Aikakatkaisujakso on pakollinen",
+            "REJECTURL_MUST_VALID_URL": "Hylätyt URL on kirjoitettava kelvollisessa muodossa",
+            "CLOSEURL_MUST_VALID_URL": "Sulje URL on kirjoitettava kelvollisessa muodossa"
+        },
+        "AGENT_TIMEOUT": "Agentti aikakatkaisu",
+        "DESCRIPTION": "Kuvaus",
+        "ADD_MAILQUEUE": "Lisää yhteyspalvelujonoon",
+        "EDIT_MAILQUEUE": "Muokkaa yhteyspalvelujonoon",
+        "DELETE_MAILQUEUE": "Poista yhteyspalvelujonoon",
+        "SETTINGS": "Asetusten määrittäminen",
+        "GENERAL": "Yleistä",
+        "SAVE": "Tallenna",
+        "MAILACCOUNTS": "Mail tilit",
+        "EMAIL_ADDRESS": "Sähköpostiosoite",
+        "ADD_MAILACCOUNT": "Lisätä sähköpostitilin",
+        "EDIT_MAILACCOUNT": "Muokkaa mail tili",
+        "DELETE_MAILACCOUNT": "Poista sähköpostitilit",
+        "DISPOSITIONS": "Yhteisyys",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Toimet",
+        "OTHERS": "Muut",
+        "LIST": "Luettelo",
+        "TEMPLATE": "Malli",
+        "FIDELITY": "Epätarkkaan äänentoistoon",
+        "SERVICE": "Palvelu",
+        "CREATED_AT": "Luodaan",
+        "ACCEPT": "Hyväksy",
+        "ACCEPTMETHOD": "Hyväksy menetelmä",
+        "ACCEPTURL": "Hyväksy URL",
+        "REJECT": "Hylkää",
+        "REJECTMETHOD": "Hylkää menetelmä",
+        "REJECTURL": "Hylkää URL",
+        "CLOSE": "Sulje",
+        "CLOSEMETHOD": "Sulje menetelmä",
+        "CLOSEURL": "Sulje URL",
+        "WHITELABEL": "Valkoinen tarra",
+        "SIGNATURE": "Allekirjoitus",
+        "IMAP": "IMAP",
+        "HOST": "Host",
+        "USERNAME": "Käyttäjätunnus",
+        "PORT": "Portti",
+        "MAILBOX": "Postilaatikkoon",
+        "FILTER": "Suodatin",
+        "CONNTIMEOUT": "Yhteyden aikakatkaisu [s]",
+        "AUTHTIMEOUT": "Tunnistuksen aikakatkaisu [s]",
+        "DELETE": "Poista sähköpostit palvelimelta",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "Hakujonon tulostusasetuksia",
+        "SMTP": "SMTP-",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "BACK": "Takaisin",
+        "MAIL": "Sähköposti",
+        "ID": "Tunnus",
+        "TIMEOUT": "Aikakatkaisu",
+        "PASSWORD": "Salasana",
+        "NO_MAILDISPOSITION_AVAILABLE": "Mitään postia yhteisyys käytettävissä",
+        "ADD_MAILDISPOSITION": "Lisää postin jatkokäsittely",
+        "NEW_MAILDISPOSITION": "Uusi posti jatkokäsittely",
+        "EDIT_MAILDISPOSITION": "Muokkaa postin jatkokäsittely",
+        "DELETE_MAILDISPOSITION": "Poistaa viestejä jatkokäsittely",
+        "MAILDISPOSITIONS": "Postin yhteisyys",
+        "NEW_MAILQUEUE": "Uusi posti jono",
+        "NEW_MAILACCOUNT": "Uuden sähköpostitilin",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "ALL_TEAMS": "Kaikki joukkueet",
+        "SELECTED_TEAMS": "Valittu työryhmille"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/fr.json b/public/app/main/apps/mail/i18n/fr.json
new file mode 100644 (file)
index 0000000..31670f3
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Nom",
+        "MAILQUEUES": "Les files d'attente de courrier",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "STRATEGY": "Stratégie",
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "AGENT_TIMEOUT_REQUIRED": "L'Agent est nécessaire",
+            "EMAIL_ADDRESS_REQUIRED": "L'adresse e-mail est nécessaire",
+            "EMAIL_ADDRESS_MUST_VALID": "L'adresse e-mail doivent être écrites dans un format valide",
+            "HOST_REQUIRED": "L'hôte est nécessaire",
+            "USERNAME_REQUIRED": "L'utilisateur est nécessaire",
+            "PORT_REQUIRED": "Le port est requis",
+            "CONNTIMEOUT_REQUIRED": "Le délai de connexion est requise",
+            "AUTHTIMEOUT_REQUIRED": "Le délai d'authentification est requise",
+            "ACCEPTURL_MUST_VALID_URL": "Accepter l'URL doit être écrit dans un format valide",
+            "TIMEOUT_REQUIRED": "Le délai est nécessaire",
+            "REJECTURL_MUST_VALID_URL": "Rejeter l'URL doit être écrit dans un format valide",
+            "CLOSEURL_MUST_VALID_URL": "Fermer l'URL doit être écrit dans un format valide"
+        },
+        "AGENT_TIMEOUT": "Délai d'agent",
+        "DESCRIPTION": "Description",
+        "ADD_MAILQUEUE": "Ajouter Mail Queue",
+        "EDIT_MAILQUEUE": "Edit file des messages",
+        "DELETE_MAILQUEUE": "Supprimer Mail Queue",
+        "SETTINGS": "Settings",
+        "GENERAL": "Général",
+        "SAVE": "Sauvegarder",
+        "MAILACCOUNTS": "Comptes de messagerie",
+        "EMAIL_ADDRESS": "Adresse e-mail",
+        "ADD_MAILACCOUNT": "Ajouter un compte de messagerie",
+        "EDIT_MAILACCOUNT": "Compte Mail Modifier",
+        "DELETE_MAILACCOUNT": "Supprimer des comptes Mail",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Actions",
+        "OTHERS": "Autres",
+        "LIST": "Liste",
+        "TEMPLATE": "Template",
+        "FIDELITY": "Fidelity",
+        "SERVICE": "Publique",
+        "CREATED_AT": "Créé à",
+        "ACCEPT": "Accepter",
+        "ACCEPTMETHOD": "Méthode d'accepter",
+        "ACCEPTURL": "Accepter URL",
+        "REJECT": "Rejeter",
+        "REJECTMETHOD": "Méthode de rejet",
+        "REJECTURL": "Rejeter les URL",
+        "CLOSE": "Fermer",
+        "CLOSEMETHOD": "Méthode Close",
+        "CLOSEURL": "URL Fermer",
+        "WHITELABEL": "White Label",
+        "SIGNATURE": "La Signature",
+        "IMAP": "Le protocole IMAP",
+        "HOST": "Host",
+        "USERNAME": "Nom d'utilisateur",
+        "PORT": "Port",
+        "MAILBOX": "Boîte aux lettres",
+        "FILTER": "Filter",
+        "CONNTIMEOUT": "Connection Timeout [sec]",
+        "AUTHTIMEOUT": "Délai d'authentification [sec]",
+        "DELETE": "Supprimer les mails du serveur",
+        "SSL": "Le protocole SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "Bureaux",
+        "SMTP": "Le protocole SMTP",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "BACK": "Retour",
+        "MAIL": "Mail",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "PASSWORD": "Mot de passe oublié",
+        "NO_MAILDISPOSITION_AVAILABLE": "Pas de Mail disponible Disposition",
+        "ADD_MAILDISPOSITION": "Ajouter Mail Disposition",
+        "NEW_MAILDISPOSITION": "Nouvelle disposition Mail",
+        "EDIT_MAILDISPOSITION": "Modifier la disposition de courrier",
+        "DELETE_MAILDISPOSITION": "Supprimer la disposition de courrier",
+        "MAILDISPOSITIONS": "Dispositions de courrier",
+        "NEW_MAILQUEUE": "Nouveau Mail Queue",
+        "NEW_MAILACCOUNT": "Nouveau compte de messagerie",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "ALL_TEAMS": "Toutes les équipes",
+        "SELECTED_TEAMS": "Les équipes sélectionnées"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/hi.json b/public/app/main/apps/mail/i18n/hi.json
new file mode 100644 (file)
index 0000000..a7af3da
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "नाम",
+        "MAILQUEUES": "मेल कतार",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "STRATEGY": "रणनीति",
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "AGENT_TIMEOUT_REQUIRED": "एजेंट समयबाह्य अपेक्षित है।",
+            "EMAIL_ADDRESS_REQUIRED": "ईमेल पते की आवश्यकता है।",
+            "EMAIL_ADDRESS_MUST_VALID": "ईमेल पते को मान्य स्वरूप में लिखा होना",
+            "HOST_REQUIRED": "मेजबान की आवश्यकता है।",
+            "USERNAME_REQUIRED": "उपयोगकर्ता नाम की आवश्यकता है।",
+            "PORT_REQUIRED": "इस पत्तन पर अपेक्षित है।",
+            "CONNTIMEOUT_REQUIRED": "कनेक्शन समयबाह्य अपेक्षित है।",
+            "AUTHTIMEOUT_REQUIRED": "समयबाह्य प्रमाणीकरण की आवश्यकता है।",
+            "ACCEPTURL_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना URL को स्वीकार करें",
+            "TIMEOUT_REQUIRED": "इस समय की आवश्यकता है।",
+            "REJECTURL_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना URL को अस्वीकार करें",
+            "CLOSEURL_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना URL के निकट"
+        },
+        "AGENT_TIMEOUT": "एजेंट समयबाह्य",
+        "DESCRIPTION": "वर्णन",
+        "ADD_MAILQUEUE": "लोकतंत्रमें मेल जोड़ें",
+        "EDIT_MAILQUEUE": "लोकतंत्रमें मेल संपादित करें",
+        "DELETE_MAILQUEUE": "मेल हटाएं कतार",
+        "SETTINGS": "सेटिंग्स",
+        "GENERAL": "सामान्य",
+        "SAVE": "सहेजें",
+        "MAILACCOUNTS": "मेल खाते",
+        "EMAIL_ADDRESS": "ईमेल पता",
+        "ADD_MAILACCOUNT": "मेल खाता जोड़ें",
+        "EDIT_MAILACCOUNT": "मेल खाता संपादित करें",
+        "DELETE_MAILACCOUNT": "मेल खाते को हटाना",
+        "DISPOSITIONS": "प्रवृतियों",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "क्रियाएं",
+        "OTHERS": "अन्य",
+        "LIST": "की सूची",
+        "TEMPLATE": "टेम्पलेट",
+        "FIDELITY": "वास्तविक",
+        "SERVICE": "सेवा के",
+        "CREATED_AT": "सृजित",
+        "ACCEPT": "स्वीकार करना",
+        "ACCEPTMETHOD": "तरीका स्वीकार करें",
+        "ACCEPTURL": "स्वीकार किए गए URL",
+        "REJECT": "अस्वीकार करना",
+        "REJECTMETHOD": "अस्वीकार पद्धति",
+        "REJECTURL": "URL अस्वीकार करें",
+        "CLOSE": "निकट",
+        "CLOSEMETHOD": "निकट पद्धति",
+        "CLOSEURL": "बंद किए गए URL",
+        "WHITELABEL": "सफेद लेबल",
+        "SIGNATURE": "हस् ताक्षर",
+        "IMAP": "IMAP",
+        "HOST": "होस्ट",
+        "USERNAME": "उपयोगकर्ता नाम",
+        "PORT": "पोर्ट",
+        "MAILBOX": "मेलबॉक्स",
+        "FILTER": "फ़िल्टर",
+        "CONNTIMEOUT": "[Setup] दिएजाने का कनेक्शन समयबाह्य",
+        "AUTHTIMEOUT": "[Setup] दिएजाने का प्रमाणीकरण समयबाह्य",
+        "DELETE": "सर्वर से मेल हटाएं",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "मतदान",
+        "SMTP": "SMTP",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "BACK": "वापिस",
+        "MAIL": "मेल",
+        "ID": "Id",
+        "TIMEOUT": "समयबाह्य",
+        "PASSWORD": "पासवर्ड",
+        "NO_MAILDISPOSITION_AVAILABLE": "कोई मेल प्रवृतियों उपलब्ध",
+        "ADD_MAILDISPOSITION": "सरकारीतंत्र मेल जोड़ें",
+        "NEW_MAILDISPOSITION": "नए मेल मिजाज",
+        "EDIT_MAILDISPOSITION": "सरकारीतंत्र मेल संपादित करें",
+        "DELETE_MAILDISPOSITION": "सरकारीतंत्र मेल हटाएं",
+        "MAILDISPOSITIONS": "मेल प्रवृतियों",
+        "NEW_MAILQUEUE": "नए मेल कतार",
+        "NEW_MAILACCOUNT": "नए मेल खाते",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "ALL_TEAMS": "सभी टीमें भाग लेंगी।",
+        "SELECTED_TEAMS": "चयनित टीम"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/it.json b/public/app/main/apps/mail/i18n/it.json
new file mode 100644 (file)
index 0000000..76276ca
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Nome",
+        "MAILQUEUES": "Code Mail",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "STRATEGY": "Strategia",
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "AGENT_TIMEOUT_REQUIRED": "Il Timeout Agente è richiesto",
+            "EMAIL_ADDRESS_REQUIRED": "L' indirizzo Email è richiesto",
+            "EMAIL_ADDRESS_MUST_VALID": "L' indirizzo email deve essere in un formato valido",
+            "HOST_REQUIRED": "L' host è richiesto",
+            "USERNAME_REQUIRED": "Lo Username è richiesto",
+            "PORT_REQUIRED": "La Porta è richiesta",
+            "CONNTIMEOUT_REQUIRED": "Il Timeout Connessione è richiesto",
+            "AUTHTIMEOUT_REQUIRED": "Il Timeout Autenticazione è richiesto",
+            "ACCEPTURL_MUST_VALID_URL": "L'URL Accetta deve essere in un formato valido",
+            "TIMEOUT_REQUIRED": "Il Timeout è richiesto",
+            "REJECTURL_MUST_VALID_URL": "L'URL Rifiuta deve essere in un formato valido",
+            "CLOSEURL_MUST_VALID_URL": "L'URL Chiudi deve essere in un formato valido"
+        },
+        "AGENT_TIMEOUT": "Timeout Agente",
+        "DESCRIPTION": "Descrizione",
+        "ADD_MAILQUEUE": "Aggiungi Coda Mail",
+        "EDIT_MAILQUEUE": "Modifica Coda Mail",
+        "DELETE_MAILQUEUE": "Elimina Coda Mail",
+        "SETTINGS": "Impostazioni",
+        "GENERAL": "Generale",
+        "SAVE": "Salva",
+        "MAILACCOUNTS": "Account Email",
+        "EMAIL_ADDRESS": "Indirizzo Email",
+        "ADD_MAILACCOUNT": "Aggiungi Account Email",
+        "EDIT_MAILACCOUNT": "Modifica Account Email",
+        "DELETE_MAILACCOUNT": "Elimina Account Email",
+        "DISPOSITIONS": "Esiti",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Azioni",
+        "OTHERS": "Altro",
+        "LIST": "Lista",
+        "TEMPLATE": "Template",
+        "FIDELITY": "Fidelity",
+        "SERVICE": "Servizio",
+        "CREATED_AT": "Creato il",
+        "ACCEPT": "Accetta",
+        "ACCEPTMETHOD": "Metodo Accetta",
+        "ACCEPTURL": "URL Accetta",
+        "REJECT": "Rifiuta",
+        "REJECTMETHOD": "Metodo Rifiuta",
+        "REJECTURL": "URL Rifiuta",
+        "CLOSE": "Chiudi",
+        "CLOSEMETHOD": "Metodo Chiudi",
+        "CLOSEURL": "URL Chiudi",
+        "WHITELABEL": "White Label",
+        "SIGNATURE": "Firma",
+        "IMAP": "IMAP",
+        "HOST": "Host",
+        "USERNAME": "Username",
+        "PORT": "Porta",
+        "MAILBOX": "Mailbox",
+        "FILTER": "Filtro",
+        "CONNTIMEOUT": "Timeout Connessione [sec]",
+        "AUTHTIMEOUT": "Timeout Autenticazione [sec]",
+        "DELETE": "Elimina Email dal server",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "Polling",
+        "SMTP": "SMTP",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutti",
+        "SELECT_NONE": "Deseleziona tutti",
+        "BACK": "Indietro",
+        "MAIL": "Mail",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "PASSWORD": "Password",
+        "NO_MAILDISPOSITION_AVAILABLE": "Nessun Esito Mail disponibile",
+        "ADD_MAILDISPOSITION": "Aggiungi Esito Mail",
+        "NEW_MAILDISPOSITION": "Nuovo Esito Mail",
+        "EDIT_MAILDISPOSITION": "Modifica Esito Mail",
+        "DELETE_MAILDISPOSITION": "Elimina Esito Mail",
+        "MAILDISPOSITIONS": "Esiti Mail",
+        "NEW_MAILQUEUE": "Nuova Coda Mail",
+        "NEW_MAILACCOUNT": "Nuovo Account Mail",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "ALL_TEAMS": "Tutti i Team",
+        "SELECTED_TEAMS": "Team selezionati"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/ja.json b/public/app/main/apps/mail/i18n/ja.json
new file mode 100644 (file)
index 0000000..9e5abf5
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "名",
+        "MAILQUEUES": "メールキューが",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "STRATEGY": "戦略",
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "AGENT_TIMEOUT_REQUIRED": "エージェントのタイムアウトが必要",
+            "EMAIL_ADDRESS_REQUIRED": "電子メールのアドレスが必要です。",
+            "EMAIL_ADDRESS_MUST_VALID": "電子メールのアドレスが有効な形式で記述する必要があります",
+            "HOST_REQUIRED": "は、ホストが必要です",
+            "USERNAME_REQUIRED": "ユーザ名が必要です",
+            "PORT_REQUIRED": "のポートが必要です",
+            "CONNTIMEOUT_REQUIRED": "では、接続タイムアウトが必要",
+            "AUTHTIMEOUT_REQUIRED": "認証のタイムアウトが必要",
+            "ACCEPTURL_MUST_VALID_URL": "「同意します URL に有効な形式で記述する必要があります",
+            "TIMEOUT_REQUIRED": "タイムアウトは必須です",
+            "REJECTURL_MUST_VALID_URL": "拒否 URL に有効な形式で記述する必要があります",
+            "CLOSEURL_MUST_VALID_URL": "閉じる URL を指定します。有効な形式で記述する必要があります"
+        },
+        "AGENT_TIMEOUT": "エージェントのタイムアウト",
+        "DESCRIPTION": "説明",
+        "ADD_MAILQUEUE": "メールキューを追加します。",
+        "EDIT_MAILQUEUE": "編集メールキュー",
+        "DELETE_MAILQUEUE": "メールキューメールキューの削除",
+        "SETTINGS": "の設定",
+        "GENERAL": "一般的な",
+        "SAVE": "保存",
+        "MAILACCOUNTS": "メールアカウント",
+        "EMAIL_ADDRESS": "電子メールアドレス",
+        "ADD_MAILACCOUNT": "メールアカウントを追加します",
+        "EDIT_MAILACCOUNT": "編集するメールアカウント",
+        "DELETE_MAILACCOUNT": "メールアカウントを削除する",
+        "DISPOSITIONS": "ディスポジション",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "アクション",
+        "OTHERS": "他",
+        "LIST": "リスト",
+        "TEMPLATE": "テンプレート",
+        "FIDELITY": "忠実性",
+        "SERVICE": "サービス",
+        "CREATED_AT": "で作成された",
+        "ACCEPT": "受け入れる",
+        "ACCEPTMETHOD": "方法を受け入れる",
+        "ACCEPTURL": "URL を受け入れ",
+        "REJECT": "拒否",
+        "REJECTMETHOD": "拒否メソッド",
+        "REJECTURL": "拒否 URL",
+        "CLOSE": "閉じる",
+        "CLOSEMETHOD": "Close メソッド",
+        "CLOSEURL": "閉じる URL",
+        "WHITELABEL": "ホワイトラベル",
+        "SIGNATURE": "シグネチャ",
+        "IMAP": "IMAP",
+        "HOST": "ホスト",
+        "USERNAME": "ユーザ名",
+        "PORT": "ポート",
+        "MAILBOX": "メールボックス",
+        "FILTER": "フィルタ",
+        "CONNTIMEOUT": "接続のタイムアウト [ 秒 ]",
+        "AUTHTIMEOUT": "認証のタイムアウト [ 秒 ]",
+        "DELETE": "サーバーからメールを削除する",
+        "SSL": "SSL",
+        "KEEPALIVE": "キープアライブ",
+        "POLLING": "ポーリング",
+        "SMTP": "SMTP",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "BACK": "背面",
+        "MAIL": "電子メール",
+        "ID": "Id",
+        "TIMEOUT": "タイムアウト",
+        "PASSWORD": "パスワード",
+        "NO_MAILDISPOSITION_AVAILABLE": "メールのディスポジションを使用できません",
+        "ADD_MAILDISPOSITION": "メールディスポジションの追加 ]",
+        "NEW_MAILDISPOSITION": "新しいメールを破棄",
+        "EDIT_MAILDISPOSITION": "電子メールの編集処理",
+        "DELETE_MAILDISPOSITION": "メールのディスポジションを削除",
+        "MAILDISPOSITIONS": "メールディスポジション",
+        "NEW_MAILQUEUE": "新しいメールキュー",
+        "NEW_MAILACCOUNT": "新しいメールアカウント",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "ALL_TEAMS": "すべてのチーム",
+        "SELECTED_TEAMS": "選択したチーム"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/ko.json b/public/app/main/apps/mail/i18n/ko.json
new file mode 100644 (file)
index 0000000..0bba1c6
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "이름",
+        "MAILQUEUES": "메일 대기열",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "STRATEGY": "전략",
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "AGENT_TIMEOUT_REQUIRED": "상담원은 제한 시간이 필요합니다.",
+            "EMAIL_ADDRESS_REQUIRED": "전자 메일 주소가 필요합니다.",
+            "EMAIL_ADDRESS_MUST_VALID": "이메일 주소에 유효한 형식으로 작성되어 있어야 합니다",
+            "HOST_REQUIRED": "호스트가 필요합니다.",
+            "USERNAME_REQUIRED": "사용자 이름이 필요합니다.",
+            "PORT_REQUIRED": "포트 필요",
+            "CONNTIMEOUT_REQUIRED": "연결 시간 종료 합니다.",
+            "AUTHTIMEOUT_REQUIRED": "인증 제한 시간이 필요합니다.",
+            "ACCEPTURL_MUST_VALID_URL": "동의함 URL 유효한 형식으로 작성되어 있어야 합니다",
+            "TIMEOUT_REQUIRED": "시간 제한이 필요합니다.",
+            "REJECTURL_MUST_VALID_URL": "거부 URL 유효한 형식으로 작성되어 있어야 합니다",
+            "CLOSEURL_MUST_VALID_URL": "닫기 URL 유효한 형식으로 작성되어 있어야 합니다"
+        },
+        "AGENT_TIMEOUT": "상담원 시간 초과",
+        "DESCRIPTION": "설명",
+        "ADD_MAILQUEUE": "메일 대기열을 추가하려면",
+        "EDIT_MAILQUEUE": "메일 편집 대기",
+        "DELETE_MAILQUEUE": "메일 큐를 삭제합니다",
+        "SETTINGS": "설정",
+        "GENERAL": "일반",
+        "SAVE": "저장",
+        "MAILACCOUNTS": "전자 메일 계정",
+        "EMAIL_ADDRESS": "전자 메일 주소",
+        "ADD_MAILACCOUNT": "전자 메일 계정 추가",
+        "EDIT_MAILACCOUNT": "메일 계정 편집",
+        "DELETE_MAILACCOUNT": "메일 계정을 삭제합니다.",
+        "DISPOSITIONS": "의향",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "동작",
+        "OTHERS": "다른",
+        "LIST": "목록",
+        "TEMPLATE": "템플릿",
+        "FIDELITY": "정확도",
+        "SERVICE": "서비스",
+        "CREATED_AT": "생성",
+        "ACCEPT": "수락",
+        "ACCEPTMETHOD": "승인 방법",
+        "ACCEPTURL": "Url 승인",
+        "REJECT": "거부",
+        "REJECTMETHOD": "거부 방법",
+        "REJECTURL": "Reject URL",
+        "CLOSE": "닫기",
+        "CLOSEMETHOD": "Close 메서드",
+        "CLOSEURL": "닫기 URL",
+        "WHITELABEL": "흰색 라벨",
+        "SIGNATURE": "서명",
+        "IMAP": "IMAP",
+        "HOST": "호스트",
+        "USERNAME": "사용자 이름",
+        "PORT": "포트",
+        "MAILBOX": "사서함",
+        "FILTER": "필터",
+        "CONNTIMEOUT": "Connection Timeout [sec]",
+        "AUTHTIMEOUT": "인증 Timeout [sec]",
+        "DELETE": "서버에서 이메일 삭제",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "폴링",
+        "SMTP": "SMTP",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "BACK": "후면",
+        "MAIL": "메일",
+        "ID": "Id",
+        "TIMEOUT": "시간 초과",
+        "PASSWORD": "암호",
+        "NO_MAILDISPOSITION_AVAILABLE": "사용할 수 있는 메일 의향 없음",
+        "ADD_MAILDISPOSITION": "메일 처리 추가",
+        "NEW_MAILDISPOSITION": "새 메일 처리",
+        "EDIT_MAILDISPOSITION": "메일 처리 편집",
+        "DELETE_MAILDISPOSITION": "메일 처리 삭제",
+        "MAILDISPOSITIONS": "메일 의향",
+        "NEW_MAILQUEUE": "새 메일 대기열",
+        "NEW_MAILACCOUNT": "새 전자 메일 계정",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "ALL_TEAMS": "모든 팀이",
+        "SELECTED_TEAMS": "선택한 팀에"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/nl.json b/public/app/main/apps/mail/i18n/nl.json
new file mode 100644 (file)
index 0000000..ea7e4b7
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Naam",
+        "MAILQUEUES": "Mailwachtrijen",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "STRATEGY": "Strategie",
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "AGENT_TIMEOUT_REQUIRED": "De Agent Timeout is vereist",
+            "EMAIL_ADDRESS_REQUIRED": "Het e-mailadres is vereist",
+            "EMAIL_ADDRESS_MUST_VALID": "Het e-mailadres moet worden geschreven in een geldige indeling",
+            "HOST_REQUIRED": "De host is vereist",
+            "USERNAME_REQUIRED": "De gebruikersnaam is vereist",
+            "PORT_REQUIRED": "De poort is vereist",
+            "CONNTIMEOUT_REQUIRED": "De time-out van verbinding is vereist",
+            "AUTHTIMEOUT_REQUIRED": "De time-out voor verificatie is vereist",
+            "ACCEPTURL_MUST_VALID_URL": "Accepteer URL moet worden geschreven in een geldige indeling",
+            "TIMEOUT_REQUIRED": "De timeout is vereist",
+            "REJECTURL_MUST_VALID_URL": "De afwijzing URL moet worden geschreven in een geldige indeling",
+            "CLOSEURL_MUST_VALID_URL": "De nauwe URL moet worden geschreven in een geldige indeling"
+        },
+        "AGENT_TIMEOUT": "Time-out agent",
+        "DESCRIPTION": "Beschrijving",
+        "ADD_MAILQUEUE": "Voeg wachtrij",
+        "EDIT_MAILQUEUE": "Edit Mailwachtrij",
+        "DELETE_MAILQUEUE": "Verwijder Mailwachtrij",
+        "SETTINGS": "Instellingen",
+        "GENERAL": "Algemeen",
+        "SAVE": "Opslaan",
+        "MAILACCOUNTS": "Mail-accounts",
+        "EMAIL_ADDRESS": "E-mail adres",
+        "ADD_MAILACCOUNT": "Voeg Mail-account",
+        "EDIT_MAILACCOUNT": "Edit Mail-account",
+        "DELETE_MAILACCOUNT": "Verwijder Mail-accounts",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acties",
+        "OTHERS": "Anderen",
+        "LIST": "Lijst",
+        "TEMPLATE": "Sjabloon",
+        "FIDELITY": "Hifi-geluid",
+        "SERVICE": "Service",
+        "CREATED_AT": "Gemaakt op",
+        "ACCEPT": "Accepteren",
+        "ACCEPTMETHOD": "Accepteren methode",
+        "ACCEPTURL": "URL accepteren",
+        "REJECT": "Afwijzen",
+        "REJECTMETHOD": "Methode afwijzen",
+        "REJECTURL": "URL afwijzen",
+        "CLOSE": "Dicht",
+        "CLOSEMETHOD": "Sluit methode",
+        "CLOSEURL": "Sluit URL",
+        "WHITELABEL": "White Label",
+        "SIGNATURE": "Handtekening",
+        "IMAP": "IMAP",
+        "HOST": "Host",
+        "USERNAME": "Gebruikersnaam",
+        "PORT": "Poort",
+        "MAILBOX": "Mailbox",
+        "FILTER": "Filter",
+        "CONNTIMEOUT": "Time-out verbinding [sec]",
+        "AUTHTIMEOUT": "Authentication Timeout [sec]",
+        "DELETE": "Verwijderen van e-mails Server",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "Polling",
+        "SMTP": "SMTP",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "BACK": "Terug",
+        "MAIL": "Mail",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "PASSWORD": "Wachtwoord",
+        "NO_MAILDISPOSITION_AVAILABLE": "Geen Mail Dispositieven beschikbaar",
+        "ADD_MAILDISPOSITION": "Voeg Mail dispositie",
+        "NEW_MAILDISPOSITION": "Nieuw e-mailbericht verwijderen",
+        "EDIT_MAILDISPOSITION": "Edit Post dispositie",
+        "DELETE_MAILDISPOSITION": "E-Mail verwijderen afvoeren",
+        "MAILDISPOSITIONS": "Mail dispositieven",
+        "NEW_MAILQUEUE": "Nieuwe wachtrij",
+        "NEW_MAILACCOUNT": "Nieuwe e-mail account",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "ALL_TEAMS": "Alle teams",
+        "SELECTED_TEAMS": "Geselecteerde teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/no.json b/public/app/main/apps/mail/i18n/no.json
new file mode 100644 (file)
index 0000000..1aa5555
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Navn",
+        "MAILQUEUES": "Post køer",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "STRATEGY": "Strategi",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten tidsavbrudd er nødvendig",
+            "EMAIL_ADDRESS_REQUIRED": "E-postadresse er påkrevd",
+            "EMAIL_ADDRESS_MUST_VALID": "E-postadressen må være skrevet i et gyldig format",
+            "HOST_REQUIRED": "Verten er nødvendig",
+            "USERNAME_REQUIRED": "Brukernavnet er nødvendig",
+            "PORT_REQUIRED": "Porten er nødvendig",
+            "CONNTIMEOUT_REQUIRED": "Det tidsavbrudd for tilkobling er nødvendig",
+            "AUTHTIMEOUT_REQUIRED": "Autentisering tidsavbrudd er nødvendig",
+            "ACCEPTURL_MUST_VALID_URL": "Godta URL må være skrevet i et gyldig format",
+            "TIMEOUT_REQUIRED": "Tidsavbruddet er nødvendig",
+            "REJECTURL_MUST_VALID_URL": "Avvis URL må være skrevet i et gyldig format",
+            "CLOSEURL_MUST_VALID_URL": "Lukk URL må være skrevet i et gyldig format"
+        },
+        "AGENT_TIMEOUT": "Agent tidsavbrudd",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_MAILQUEUE": "Legg til post kø",
+        "EDIT_MAILQUEUE": "Rediger e-kø",
+        "DELETE_MAILQUEUE": "Slette post kø",
+        "SETTINGS": "Innstillinger",
+        "GENERAL": "Generelt",
+        "SAVE": "Lagre",
+        "MAILACCOUNTS": "E-postkontoer",
+        "EMAIL_ADDRESS": "E-postadresse",
+        "ADD_MAILACCOUNT": "Legg til e-postkonto",
+        "EDIT_MAILACCOUNT": "Rediger e-postkonto",
+        "DELETE_MAILACCOUNT": "Slette e-postkontoer",
+        "DISPOSITIONS": "Disposisjoner",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Tiltak",
+        "OTHERS": "Andre",
+        "LIST": "Liste",
+        "TEMPLATE": "Mal",
+        "FIDELITY": "Fi",
+        "SERVICE": "Service",
+        "CREATED_AT": "Opprettet i",
+        "ACCEPT": "Godta",
+        "ACCEPTMETHOD": "Godta metode",
+        "ACCEPTURL": "Godta URL",
+        "REJECT": "Avvis",
+        "REJECTMETHOD": "Avvis metode",
+        "REJECTURL": "Avvis URL",
+        "CLOSE": "Lukk",
+        "CLOSEMETHOD": "Lukk metode",
+        "CLOSEURL": "Lukk URL",
+        "WHITELABEL": "Hvit etikett",
+        "SIGNATURE": "Signatur",
+        "IMAP": "IMAP",
+        "HOST": "Vert",
+        "USERNAME": "Brukernavn",
+        "PORT": "Port",
+        "MAILBOX": "Postboks",
+        "FILTER": "Filter",
+        "CONNTIMEOUT": "Tidsavbrudd for tilkobling [sek]",
+        "AUTHTIMEOUT": "Godkjenning Timeout [sek]",
+        "DELETE": "Slett e-post fra serveren",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "Polling",
+        "SMTP": "SMTP",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "BACK": "Tilbake",
+        "MAIL": "Post",
+        "ID": "Id",
+        "TIMEOUT": "Tidsavbrudd",
+        "PASSWORD": "Passord",
+        "NO_MAILDISPOSITION_AVAILABLE": "Ingen post disposisjoner tilgjengelig",
+        "ADD_MAILDISPOSITION": "Legg til post disposisjon",
+        "NEW_MAILDISPOSITION": "Ny post disposisjon",
+        "EDIT_MAILDISPOSITION": "Rediger post disposisjon",
+        "DELETE_MAILDISPOSITION": "Slette post disposisjon",
+        "MAILDISPOSITIONS": "Post disposisjoner",
+        "NEW_MAILQUEUE": "Ny post kø",
+        "NEW_MAILACCOUNT": "Ny e-post konto",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "ALL_TEAMS": "Alle grupper",
+        "SELECTED_TEAMS": "Valgte lag"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/pt-PT.json b/public/app/main/apps/mail/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..d441421
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Nome",
+        "MAILQUEUES": "Filas de correio",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "STRATEGY": "Estratégia",
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "AGENT_TIMEOUT_REQUIRED": "O Tempo Limite do Agente é necessária",
+            "EMAIL_ADDRESS_REQUIRED": "O endereço de e-mail é obrigatório",
+            "EMAIL_ADDRESS_MUST_VALID": "O endereço de e-mail deve ser escrito em um formato válido",
+            "HOST_REQUIRED": "O Host é necessário",
+            "USERNAME_REQUIRED": "O nome de usuário é obrigatório",
+            "PORT_REQUIRED": "A porta é necessária",
+            "CONNTIMEOUT_REQUIRED": "O tempo limite de conexão é necessária",
+            "AUTHTIMEOUT_REQUIRED": "O tempo limite da autenticação é necessária",
+            "ACCEPTURL_MUST_VALID_URL": "A aceitar a URL deve ser escrito em um formato válido",
+            "TIMEOUT_REQUIRED": "O tempo limite é necessária",
+            "REJECTURL_MUST_VALID_URL": "A rejeitar a URL deve ser escrito em um formato válido",
+            "CLOSEURL_MUST_VALID_URL": "A FECHAR A URL deve ser escrito em um formato válido"
+        },
+        "AGENT_TIMEOUT": "Tempo Limite do Agente",
+        "DESCRIPTION": "Descrição",
+        "ADD_MAILQUEUE": "Adicionar fila de correio electrónico",
+        "EDIT_MAILQUEUE": "Editar fila de correio electrónico",
+        "DELETE_MAILQUEUE": "Excluir fila de correio electrónico",
+        "SETTINGS": "Definições",
+        "GENERAL": "Geral",
+        "SAVE": "Salvar",
+        "MAILACCOUNTS": "Contas de correio electrónico",
+        "EMAIL_ADDRESS": "Endereço de e-mail",
+        "ADD_MAILACCOUNT": "Adicionar conta de correio electrónico",
+        "EDIT_MAILACCOUNT": "Editar conta de email",
+        "DELETE_MAILACCOUNT": "Excluir contas de correio electrónico",
+        "DISPOSITIONS": "Disposições",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acções",
+        "OTHERS": "Outros",
+        "LIST": "Lista",
+        "TEMPLATE": "Modelo",
+        "FIDELITY": "Fidelidade",
+        "SERVICE": "Serviço",
+        "CREATED_AT": "Criado em",
+        "ACCEPT": "Aceitar",
+        "ACCEPTMETHOD": "Método de Aceitar",
+        "ACCEPTURL": "Aceitar URL",
+        "REJECT": "Rejeitar",
+        "REJECTMETHOD": "Método de rejeição",
+        "REJECTURL": "Rejeitar URL",
+        "CLOSE": "Fechar",
+        "CLOSEMETHOD": "Método de fechar",
+        "CLOSEURL": "Fechar URL",
+        "WHITELABEL": "Etiqueta branca",
+        "SIGNATURE": "Assinatura",
+        "IMAP": "IMAP",
+        "HOST": "Host",
+        "USERNAME": "Nome de usuário",
+        "PORT": "Porto",
+        "MAILBOX": "Caixa de correio",
+        "FILTER": "Filtro",
+        "CONNTIMEOUT": "Tempo limite de conexão [s]",
+        "AUTHTIMEOUT": "Tempo limite de autenticação [s]",
+        "DELETE": "Eliminar mensagens de correio electrónico a partir do servidor",
+        "SSL": "O SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "Polling",
+        "SMTP": "SMTP",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "BACK": "De volta",
+        "MAIL": "Correio electrónico",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "PASSWORD": "Senha",
+        "NO_MAILDISPOSITION_AVAILABLE": "Nenhum e-mail disposições disponíveis",
+        "ADD_MAILDISPOSITION": "Adicionar correio electrónico Disposição",
+        "NEW_MAILDISPOSITION": "Nova disposição de Correio",
+        "EDIT_MAILDISPOSITION": "Editar Mail Disposição",
+        "DELETE_MAILDISPOSITION": "Excluir email Disposição",
+        "MAILDISPOSITIONS": "Disposições de correio",
+        "NEW_MAILQUEUE": "Nova fila de correio electrónico",
+        "NEW_MAILACCOUNT": "Nova conta de email",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "ALL_TEAMS": "Todas as equipas",
+        "SELECTED_TEAMS": "Equipes selecionadas"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/ru.json b/public/app/main/apps/mail/i18n/ru.json
new file mode 100644 (file)
index 0000000..b60c60c
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Имя",
+        "MAILQUEUES": "Очереди сообщений электронной почты",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "STRATEGY": "Стратегия",
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "AGENT_TIMEOUT_REQUIRED": "Оператор - тайм-аут требуется",
+            "EMAIL_ADDRESS_REQUIRED": "Адрес электронной почты не требуется",
+            "EMAIL_ADDRESS_MUST_VALID": "Адрес электронной почты должен быть написан в действительный формат",
+            "HOST_REQUIRED": "Хост не требуется",
+            "USERNAME_REQUIRED": "Имя пользователя не требуется",
+            "PORT_REQUIRED": "Порт не требуется",
+            "CONNTIMEOUT_REQUIRED": "На время ожидания подключения не требуется",
+            "AUTHTIMEOUT_REQUIRED": "В тайм-аут аутентификации не требуется",
+            "ACCEPTURL_MUST_VALID_URL": "Принять URL должен быть записан в действительный формат",
+            "TIMEOUT_REQUIRED": "Тайм-аут не требуется",
+            "REJECTURL_MUST_VALID_URL": "Отклонить URL должен быть записан в действительный формат",
+            "CLOSEURL_MUST_VALID_URL": "Закрыть адрес URL должен быть записан в действительный формат"
+        },
+        "AGENT_TIMEOUT": "Время ожидания оператора",
+        "DESCRIPTION": "Описание",
+        "ADD_MAILQUEUE": "Добавление очереди сообщений электронной почты",
+        "EDIT_MAILQUEUE": "Редактировать очереди сообщений электронной почты",
+        "DELETE_MAILQUEUE": "Удалить очереди сообщений электронной почты",
+        "SETTINGS": "Настройки",
+        "GENERAL": "Генеральной",
+        "SAVE": "Сохранить",
+        "MAILACCOUNTS": "Учетные записи электронной почты",
+        "EMAIL_ADDRESS": "Адрес электронной почты",
+        "ADD_MAILACCOUNT": "Добавить учетную запись электронной почты",
+        "EDIT_MAILACCOUNT": "Редактирование учетной записи электронной почты",
+        "DELETE_MAILACCOUNT": "Удалить учетные записи электронной почты",
+        "DISPOSITIONS": "Распоряжения",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Действия",
+        "OTHERS": "Другие",
+        "LIST": "Список",
+        "TEMPLATE": "Шаблон",
+        "FIDELITY": "Четкость",
+        "SERVICE": "Сервис",
+        "CREATED_AT": "Созданные в",
+        "ACCEPT": "Согласиться с",
+        "ACCEPTMETHOD": "Принять метод",
+        "ACCEPTURL": "Согласиться с URL",
+        "REJECT": "Отклонить",
+        "REJECTMETHOD": "Отклонить метод",
+        "REJECTURL": "Отклонить URL",
+        "CLOSE": "Закрыть",
+        "CLOSEMETHOD": "Закройте метод",
+        "CLOSEURL": "Закрыть URL",
+        "WHITELABEL": "На этикетке белого цвета",
+        "SIGNATURE": "Подпись",
+        "IMAP": "IMAP",
+        "HOST": "Принимающей",
+        "USERNAME": "Имя пользователя",
+        "PORT": "Порт",
+        "MAILBOX": "Почтовый ящик",
+        "FILTER": "Фильтр",
+        "CONNTIMEOUT": "Время ожидания подключения [сек]",
+        "AUTHTIMEOUT": "Тайм-аут аутентификации [сек]",
+        "DELETE": "Удаление сообщений электронной почты с сервера",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "Опрос",
+        "SMTP": "Сервер SMTP",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "BACK": "Назад",
+        "MAIL": "По электронной почте",
+        "ID": "Id",
+        "TIMEOUT": "Превышение лимита времени",
+        "PASSWORD": "Пароль",
+        "NO_MAILDISPOSITION_AVAILABLE": "Нет электронной почты доступны распоряжения",
+        "ADD_MAILDISPOSITION": "Добавить сообщение электронной почты распоряжения",
+        "NEW_MAILDISPOSITION": "Новая почта распоряжения",
+        "EDIT_MAILDISPOSITION": "Редактировать сообщения электронной почты распоряжения",
+        "DELETE_MAILDISPOSITION": "Удалить Mail распоряжения",
+        "MAILDISPOSITIONS": "Распоряжения электронной почты",
+        "NEW_MAILQUEUE": "Новое сообщение электронной почты в очередь",
+        "NEW_MAILACCOUNT": "Новая учетная запись электронной почты",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "ALL_TEAMS": "Все группы",
+        "SELECTED_TEAMS": "Выбранные группы"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/sv.json b/public/app/main/apps/mail/i18n/sv.json
new file mode 100644 (file)
index 0000000..9b46a24
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Namn",
+        "MAILQUEUES": "Post köer",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "STRATEGY": "Strategi",
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten Timeout krävs",
+            "EMAIL_ADDRESS_REQUIRED": "E-postadress krävs",
+            "EMAIL_ADDRESS_MUST_VALID": "E-postadressen måste vara skriven på ett giltigt format",
+            "HOST_REQUIRED": "Värd är obligatoriskt",
+            "USERNAME_REQUIRED": "Användarnamn krävs",
+            "PORT_REQUIRED": "Porten är obligatoriskt",
+            "CONNTIMEOUT_REQUIRED": "Anslutningens tidsgräns krävs",
+            "AUTHTIMEOUT_REQUIRED": "Den Timeout för autentisering krävs",
+            "ACCEPTURL_MUST_VALID_URL": "Acceptera URL måste vara skrivna på ett giltigt format",
+            "TIMEOUT_REQUIRED": "Väntetiden är obligatoriskt",
+            "REJECTURL_MUST_VALID_URL": "Avvisa URL måste vara skrivna på ett giltigt format",
+            "CLOSEURL_MUST_VALID_URL": "Stäng URL måste vara skrivna på ett giltigt format"
+        },
+        "AGENT_TIMEOUT": "Tidsgräns för agent",
+        "DESCRIPTION": "Beskrivning",
+        "ADD_MAILQUEUE": "Lägg till post kö",
+        "EDIT_MAILQUEUE": "Edit post kö",
+        "DELETE_MAILQUEUE": "Ta bort post kö",
+        "SETTINGS": "Inställningar",
+        "GENERAL": "Allmänt",
+        "SAVE": "Spara",
+        "MAILACCOUNTS": "E-postkonton",
+        "EMAIL_ADDRESS": "E-postadress",
+        "ADD_MAILACCOUNT": "Lägg till e-postkonto",
+        "EDIT_MAILACCOUNT": "Redigera e-postkonto",
+        "DELETE_MAILACCOUNT": "Ta bort e-postkonton",
+        "DISPOSITIONS": "Dispositioner",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Åtgärder",
+        "OTHERS": "Andra",
+        "LIST": "Lista",
+        "TEMPLATE": "Mall",
+        "FIDELITY": "Fidelity",
+        "SERVICE": "Service",
+        "CREATED_AT": "Skapad",
+        "ACCEPT": "Godta",
+        "ACCEPTMETHOD": "Acceptera metod",
+        "ACCEPTURL": "Acceptera URL",
+        "REJECT": "Avvisa",
+        "REJECTMETHOD": "Förkasta metoden",
+        "REJECTURL": "Avvisa URL",
+        "CLOSE": "Stäng",
+        "CLOSEMETHOD": "Stäng metod",
+        "CLOSEURL": "Stäng URL",
+        "WHITELABEL": "Vit etikett",
+        "SIGNATURE": "Signatur",
+        "IMAP": "IMAP",
+        "HOST": "Värd",
+        "USERNAME": "Användarnamn",
+        "PORT": "Port",
+        "MAILBOX": "Brevlåda",
+        "FILTER": "Filter",
+        "CONNTIMEOUT": "Tidsgräns för anslutning [sek]",
+        "AUTHTIMEOUT": "Timeout för autentisering [sek]",
+        "DELETE": "Ta bort poster från servern",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "Avsökning",
+        "SMTP": "SMTP",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "BACK": "Tillbaka",
+        "MAIL": "Post",
+        "ID": "Id",
+        "TIMEOUT": "Tidsgräns",
+        "PASSWORD": "Lösenord",
+        "NO_MAILDISPOSITION_AVAILABLE": "Ingen post dispositioner tillgängliga",
+        "ADD_MAILDISPOSITION": "Lägg till post disposition",
+        "NEW_MAILDISPOSITION": "Ny post disposition",
+        "EDIT_MAILDISPOSITION": "Edit post disposition",
+        "DELETE_MAILDISPOSITION": "Ta bort post disposition",
+        "MAILDISPOSITIONS": "Post dispositioner",
+        "NEW_MAILQUEUE": "Ny post kö",
+        "NEW_MAILACCOUNT": "Nya Mail-konto",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "ALL_TEAMS": "Alla grupper",
+        "SELECTED_TEAMS": "Valda grupper"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/tr.json b/public/app/main/apps/mail/i18n/tr.json
new file mode 100644 (file)
index 0000000..b170d51
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "Adı",
+        "MAILQUEUES": "Posta Kuyrukları",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "STRATEGY": "Strateji",
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "AGENT_TIMEOUT_REQUIRED": "Ajan zaman gerekiyor.",
+            "EMAIL_ADDRESS_REQUIRED": "E-Posta Adresi gerekli",
+            "EMAIL_ADDRESS_MUST_VALID": "E-Posta Adresi yazılmış olması gerekir. geçerli bir format",
+            "HOST_REQUIRED": "Ana gerekiyor.",
+            "USERNAME_REQUIRED": "Kullanıcı Adı gerekiyor",
+            "PORT_REQUIRED": "Port gerekiyor.",
+            "CONNTIMEOUT_REQUIRED": "Bağlantı zaman aşımı gerekiyor.",
+            "AUTHTIMEOUT_REQUIRED": "Kimlik Doğrulama Zaman Aşımı gerekiyor.",
+            "ACCEPTURL_MUST_VALID_URL": "Kabul URL yazılmış olması gerekir. geçerli bir format",
+            "TIMEOUT_REQUIRED": "Zaman Aşımı gerekiyor.",
+            "REJECTURL_MUST_VALID_URL": "Reddetme URL yazılmış olması gerekir. geçerli bir format",
+            "CLOSEURL_MUST_VALID_URL": "Kapat URL yazılmış olması gerekir. geçerli bir format"
+        },
+        "AGENT_TIMEOUT": "Ajan Zaman Aşımı",
+        "DESCRIPTION": "Açıklama",
+        "ADD_MAILQUEUE": "Add Mail Queue",
+        "EDIT_MAILQUEUE": "Edit Mail Queue",
+        "DELETE_MAILQUEUE": "Delete Mail Queue",
+        "SETTINGS": "Ayarlar",
+        "GENERAL": "Genel",
+        "SAVE": "Kaydet",
+        "MAILACCOUNTS": "Posta Hesapları",
+        "EMAIL_ADDRESS": "E-Posta Adresi",
+        "ADD_MAILACCOUNT": "Add Mail hesabı",
+        "EDIT_MAILACCOUNT": "Edit Mail hesabı",
+        "DELETE_MAILACCOUNT": "Delete Mail Hesapları",
+        "DISPOSITIONS": "Işlenir",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Eylemler",
+        "OTHERS": "Diğerleri",
+        "LIST": "Listesi",
+        "TEMPLATE": "Şablon",
+        "FIDELITY": "Doğruluğu",
+        "SERVICE": "Servis",
+        "CREATED_AT": "Oluşturulmuş",
+        "ACCEPT": "Kabul Ediyorum",
+        "ACCEPTMETHOD": "Kabul Yöntemi",
+        "ACCEPTURL": "URL kabul edin",
+        "REJECT": "Reddetme",
+        "REJECTMETHOD": "Reddetme Yöntemi",
+        "REJECTURL": "Ret URL",
+        "CLOSE": "Close",
+        "CLOSEMETHOD": "Close Metodu",
+        "CLOSEURL": "Close URL",
+        "WHITELABEL": "Beyaz Etiket",
+        "SIGNATURE": "İmza",
+        "IMAP": "IMAP",
+        "HOST": "Ana",
+        "USERNAME": "Kullanıcı Adı",
+        "PORT": "Bağlantı Noktası",
+        "MAILBOX": "Posta Kutusu",
+        "FILTER": "Filtre",
+        "CONNTIMEOUT": "Bağlantı Zaman Aşımı [sn]",
+        "AUTHTIMEOUT": "Kimlik Doğrulama Zaman Aşımı [sn]",
+        "DELETE": "Delete Postaları Sunucu",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "Yoklama",
+        "SMTP": "SMTP",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "BACK": "Geri",
+        "MAIL": "Posta",
+        "ID": "Id",
+        "TIMEOUT": "Zaman Aşımı",
+        "PASSWORD": "Parola",
+        "NO_MAILDISPOSITION_AVAILABLE": "Hiçbir Posta Resmi Senedin kullanılabilir",
+        "ADD_MAILDISPOSITION": "Add Mail Nizam",
+        "NEW_MAILDISPOSITION": "Yeni Posta Nizam",
+        "EDIT_MAILDISPOSITION": "Edit Posta Nizam",
+        "DELETE_MAILDISPOSITION": "Delete Posta Nizam",
+        "MAILDISPOSITIONS": "Posta işlenir",
+        "NEW_MAILQUEUE": "Yeni Posta Sırası",
+        "NEW_MAILACCOUNT": "Yeni e-Posta Hesabı",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "ALL_TEAMS": "Tüm takımlar",
+        "SELECTED_TEAMS": "Seçilen Ekipleri"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/zh-CN.json b/public/app/main/apps/mail/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..957bef1
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "名称",
+        "MAILQUEUES": "邮件队列。",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "STRATEGY": "战略",
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "AGENT_TIMEOUT_REQUIRED": "代理超时是必需的",
+            "EMAIL_ADDRESS_REQUIRED": "电子邮件地址是必填项",
+            "EMAIL_ADDRESS_MUST_VALID": "该电子邮件地址必须写的格式无效",
+            "HOST_REQUIRED": "主机是必需的",
+            "USERNAME_REQUIRED": "用户名是必需的",
+            "PORT_REQUIRED": "该端口是必需的",
+            "CONNTIMEOUT_REQUIRED": "连接超时是必需的",
+            "AUTHTIMEOUT_REQUIRED": "身份验证超时是必需的",
+            "ACCEPTURL_MUST_VALID_URL": "接受 URL 必须是书面的格式无效",
+            "TIMEOUT_REQUIRED": "超时是必需的",
+            "REJECTURL_MUST_VALID_URL": "“拒绝” 的 URL 必须是书面的格式无效",
+            "CLOSEURL_MUST_VALID_URL": "关闭 URL 必须是书面的格式无效"
+        },
+        "AGENT_TIMEOUT": "代理超时",
+        "DESCRIPTION": "描述",
+        "ADD_MAILQUEUE": "添加邮件队列",
+        "EDIT_MAILQUEUE": "编辑邮件队列",
+        "DELETE_MAILQUEUE": "删除队列中的邮件",
+        "SETTINGS": "设置",
+        "GENERAL": "总的",
+        "SAVE": "保存",
+        "MAILACCOUNTS": "电子邮件帐户",
+        "EMAIL_ADDRESS": "电子邮件地址",
+        "ADD_MAILACCOUNT": "添加电子邮件帐户",
+        "EDIT_MAILACCOUNT": "编辑电子邮件帐户",
+        "DELETE_MAILACCOUNT": "删除电子邮件帐户",
+        "DISPOSITIONS": "资产处置",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "采取的行动",
+        "OTHERS": "其他人",
+        "LIST": "列表",
+        "TEMPLATE": "模板。",
+        "FIDELITY": "保真度",
+        "SERVICE": "服务",
+        "CREATED_AT": "创建在",
+        "ACCEPT": "接受",
+        "ACCEPTMETHOD": "接受的方法。",
+        "ACCEPTURL": "接受的 URL。",
+        "REJECT": "拒绝",
+        "REJECTMETHOD": "拒绝方法。",
+        "REJECTURL": "拒绝 URL。",
+        "CLOSE": "关闭",
+        "CLOSEMETHOD": "关闭方法。",
+        "CLOSEURL": "关闭 URL。",
+        "WHITELABEL": "白色标签",
+        "SIGNATURE": "签名",
+        "IMAP": "IMAP",
+        "HOST": "主机",
+        "USERNAME": "用户名",
+        "PORT": "端口",
+        "MAILBOX": "邮箱",
+        "FILTER": "筛选器",
+        "CONNTIMEOUT": "连接超时时间[秒]",
+        "AUTHTIMEOUT": "身份验证超时时间[秒]",
+        "DELETE": "删除邮件从服务器",
+        "SSL": "SSL",
+        "KEEPALIVE": "持久连接",
+        "POLLING": "轮询",
+        "SMTP": "SMTP",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "BACK": "返回",
+        "MAIL": "电子邮件",
+        "ID": "Id",
+        "TIMEOUT": "超时",
+        "PASSWORD": "密码",
+        "NO_MAILDISPOSITION_AVAILABLE": "没有邮件提供的处置",
+        "ADD_MAILDISPOSITION": "添加邮件处理",
+        "NEW_MAILDISPOSITION": "新的邮件处理",
+        "EDIT_MAILDISPOSITION": "编辑邮件处理",
+        "DELETE_MAILDISPOSITION": "删除邮件处理",
+        "MAILDISPOSITIONS": "邮件的处置",
+        "NEW_MAILQUEUE": "新的邮件队列",
+        "NEW_MAILACCOUNT": "新的电子邮件帐户",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "ALL_TEAMS": "所有的团队",
+        "SELECTED_TEAMS": "选定的组"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/mail/i18n/zh-TW.json b/public/app/main/apps/mail/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..230cde6
--- /dev/null
@@ -0,0 +1,88 @@
+{
+    "MAIL": {
+        "NAME": "名稱",
+        "MAILQUEUES": "郵件佇列",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "STRATEGY": "策略",
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "AGENT_TIMEOUT_REQUIRED": "「值機人員逾時為必填欄位",
+            "EMAIL_ADDRESS_REQUIRED": "「電子郵件地址」為必填欄位",
+            "EMAIL_ADDRESS_MUST_VALID": "電子郵件地址必須以有效的格式",
+            "HOST_REQUIRED": "主機是必填欄位",
+            "USERNAME_REQUIRED": "使用者名稱為必要資訊",
+            "PORT_REQUIRED": "連接埠為必填欄位",
+            "CONNTIMEOUT_REQUIRED": "連線逾時的必填欄位",
+            "AUTHTIMEOUT_REQUIRED": "驗證逾時為必填欄位",
+            "ACCEPTURL_MUST_VALID_URL": "接受 URL 必須以有效的格式",
+            "TIMEOUT_REQUIRED": "逾時時間為必要資訊",
+            "REJECTURL_MUST_VALID_URL": "拒絕 URL 必須以有效的格式",
+            "CLOSEURL_MUST_VALID_URL": "關閉的 URL 必須以有效的格式"
+        },
+        "AGENT_TIMEOUT": "值機人員等候逾時",
+        "DESCRIPTION": "說明",
+        "ADD_MAILQUEUE": "新增郵件佇列",
+        "EDIT_MAILQUEUE": "編輯郵件佇列",
+        "DELETE_MAILQUEUE": "刪除郵件佇列",
+        "SETTINGS": "設定",
+        "GENERAL": "通用",
+        "SAVE": "儲存",
+        "MAILACCOUNTS": "電子郵件帳號",
+        "EMAIL_ADDRESS": "電子郵件位址",
+        "ADD_MAILACCOUNT": "新增電子郵件帳號",
+        "EDIT_MAILACCOUNT": "編輯電子郵件帳戶",
+        "DELETE_MAILACCOUNT": "刪除電子郵件帳號",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "動作",
+        "OTHERS": "其他人",
+        "LIST": "清單",
+        "TEMPLATE": "範本",
+        "FIDELITY": "準確性",
+        "SERVICE": "服務",
+        "CREATED_AT": "建立在",
+        "ACCEPT": "接受",
+        "ACCEPTMETHOD": "接受方法",
+        "ACCEPTURL": "接受 URL",
+        "REJECT": "拒絕",
+        "REJECTMETHOD": "排除方法",
+        "REJECTURL": "拒絕 URL",
+        "CLOSE": "關閉",
+        "CLOSEMETHOD": "關閉方法",
+        "CLOSEURL": "關閉 URL",
+        "WHITELABEL": "白色標籤",
+        "SIGNATURE": "簽名",
+        "IMAP": "IMAP 郵件匣",
+        "HOST": "主機",
+        "USERNAME": "使用者名稱",
+        "PORT": "連接埠",
+        "MAILBOX": "信箱",
+        "FILTER": "過濾條件",
+        "CONNTIMEOUT": "連線逾時 ( 秒 )",
+        "AUTHTIMEOUT": "驗證逾時 ( 秒 )",
+        "DELETE": "刪除郵件伺服器",
+        "SSL": "SSL",
+        "KEEPALIVE": "Keepalive",
+        "POLLING": "輪詢",
+        "SMTP": "SMTP",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "BACK": "備份",
+        "MAIL": "郵件",
+        "ID": "Id",
+        "TIMEOUT": "逾時",
+        "PASSWORD": "密碼",
+        "NO_MAILDISPOSITION_AVAILABLE": "沒有郵件 Dispositions 可用性",
+        "ADD_MAILDISPOSITION": "新增郵件處理",
+        "NEW_MAILDISPOSITION": "新的郵件處理",
+        "EDIT_MAILDISPOSITION": "編輯電子郵件處理",
+        "DELETE_MAILDISPOSITION": "刪除郵件處理",
+        "MAILDISPOSITIONS": "郵件 Dispositions",
+        "NEW_MAILQUEUE": "新的郵件佇列",
+        "NEW_MAILACCOUNT": "新增電子郵件帳號",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "ALL_TEAMS": "所有群組",
+        "SELECTED_TEAMS": "選取群組"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/da.json b/public/app/main/apps/motiondialer/i18n/da.json
new file mode 100644 (file)
index 0000000..160b466
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Motion telefonsender.",
+        "QUEUECAMPAIGNS": "Køen kampagner",
+        "NAME": "Navnet",
+        "VOICEQUEUES": "Voice køer",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "BACK": "Tilbage",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "DELETE_VOICEDISPOSITION": "Slet Disp.",
+        "EDIT_VOICEDISPOSITION": "Redigere en indstilling",
+        "EDIT_VOICEQUEUE": "Redigere en kø",
+        "DELETE_VOICEQUEUE": "Slet kø",
+        "MOHSOUNDS": "Moh lyde",
+        "STRATEGY": "Strategi",
+        "DESCRIPTION": "Beskrivelse",
+        "INTERVAL": "Tidsinterval",
+        "ADD_VOICEQUEUE": "Læg stemme kø",
+        "NEW_QUEUECAMPAIGN": "Ny Kø kampagne",
+        "EDIT_QUEUECAMPAIGN": "Rediger kampagne",
+        "TEAMADD_QUEUECAMPAIGN": "Tilføj Team",
+        "AGENTADD_QUEUECAMPAIGN": "Tilføj agent",
+        "LISTADD_QUEUECAMPAIGN": "Tilføj liste",
+        "DELETE_QUEUECAMPAIGN": "Slet kampagne",
+        "ACTIVE": "Aktiv",
+        "METHOD": "Metode",
+        "ADD_QUEUECAMPAIGN": "Tilføj Kø kampagne",
+        "CAMPAIGN": "Kampagne",
+        "MAXCONCURRENTCALLS": "Max samtidige opkald",
+        "ORIGINATE": "Oprindelse",
+        "ORIGINATECALLERIDNAME": "Caller ID Name",
+        "ORIGINATECALLERIDNUMBER": "Caller ID nummer",
+        "ORIGINATETIMEOUT": "Stamme Timeout",
+        "QUEUEOPTIONS": "Køindstillinger",
+        "QUEUETIMEOUT": "Queue Timeout",
+        "CALLYSQUAREPROJECT": "Tisk Plads projekt",
+        "RETRYANDFREQUENCY": "Prøv indstillingerne",
+        "GLOBAL": "Global",
+        "GLOBALMAXRETRY": "Max Retries",
+        "CONGESTION": "Overbelastning",
+        "CONGESTIONMAXRETRY": "Max Retries",
+        "CONGESTIONRETRYTIME": "Prøv tid [min]",
+        "BUSYMAXRETRY": "Max Retries",
+        "BUSYRETRYTIME": "Prøv tid [min]",
+        "NOANSWER": "Intet svar",
+        "NOANSWERMAXRETRY": "Max Retries",
+        "NOANSWERRETRYTIME": "Prøv tid [min]",
+        "QUEUE_PARAMS": "Køen parametre",
+        "ORIGINATED": "Oprindelse",
+        "MESSAGE": "Besked",
+        "DROPPED": "Faldet",
+        "CREATED_AT": "Oprettet på",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Custom application."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "TIMEOUT_REQUIRED": "Timeout er påkrævet",
+            "PHONENUMBER_REQUIRED": "Telefonnummeret er påkrævet",
+            "CONTEXT_REQUIRED": "Konteksten er påkrævet",
+            "DESTINATIONPATTERN_REQUIRED": "Destinationen mønster er påkrævet",
+            "FULLNAME_REQUIRED": "Det fulde navn er påkrævet",
+            "EMAIL_REQUUIRED": "E-mail er påkrævet",
+            "EMAIL_MUST_VALID": "E-mailen skal være skrevet i et gyldigt format",
+            "MAILBOX_REQUIRED": "Postkassen er påkrævet",
+            "PASSWORD_REQUIRED": "Adgangskoden kræves",
+            "CONFIRM_NOT_MATCH": "Adgangskoderne stemmer ikke overens",
+            "TIMEZONE_REQUIRED": "Tidszonen er påkrævet",
+            "PREFIX_REQUIRED": "Præfikset er påkrævet",
+            "OPTIONS_REQUIRED": "Mulighederne er påkrævet",
+            "AFTERCALLWORKDURATION_REQUIRED": "Det Efterarbejde varighed er påkrævet",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Teknologien/ressource er påkrævet",
+            "PHONE_REQUIRED": "Telefonen er påkrævet",
+            "VALUE_REQUIRED": "Værdien er nødvendig",
+            "EXTENSION_REQUIRED": "Den udvidelse er nødvendig",
+            "PRIORITY_REQUIRED": "Indsatsen er påkrævet",
+            "GLOBALMAXRETRY_REQUIRED": "Max forsøg er påkrævet",
+            "CONGESTIONMAXRETRY_REQUIRED": "Max forsøg er påkrævet",
+            "CONGESTIONRETRYTIME_REQUIRED": "Prøv tid er påkrævet",
+            "BUSYMAXRETRY_REQUIRED": "Max forsøg er påkrævet",
+            "BUSYRETRYTIME_REQUIRED": "Prøv tid er påkrævet",
+            "NOANSWERMAXRETRY_REQUIRED": "Max forsøg er påkrævet",
+            "NOANSWERRETRYTIME_REQUIRED": "Prøv tid er påkrævet",
+            "QUEUETIMEOUT_REQUIRED": "Queue Timeout er påkrævet",
+            "ORIGINATETIMEOUT_REQUIRED": "Stamme Timeout er påkrævet",
+            "GLOBALINTERVAL_REQUIRED": "Global Interval er påkrævet"
+        },
+        "GENERAL": "Generel",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Maksimal længde",
+        "RETRY": "Prøv igen",
+        "WRAPUPTIME": "Afslutningstiden",
+        "WEIGHT": "Vægt",
+        "JOINWHENEMPTY": "Deltag når tom",
+        "LEAVEWHENEMPTY": "Lad når tom",
+        "HELP": {
+            "ACTIVE": "Aktiv",
+            "TIMEOUT": "Angiver antallet af sekunder for at ringe med et medlems enhed.",
+            "MAXLENGTH": "Angiver det maksimale antal personer tilladt at vente i en kø. Værdien nul betyder ubegrænset antal opkald er tilladt i køen.",
+            "RETRY": "Angiver det antal sekunder, der skal ventes før den næste i køen hvis filtimeout er opbrugt, mens man forsøger at ringe op til en anden i køen.",
+            "WRAPUPTIME": "Antallet af sekunder for at holde medlem utilgængelig i en kø efter et opkald.",
+            "WEIGHT": "Definerer vægten af en kø. En kø med en højere vægt vil få førsteprioritet, når medlemmer er tilknyttet flere køer.",
+            "JOINWHENEMPTY": "Bestemmer, om en person er føjet til køen, når medlemmerne ikke er tilgængelige.",
+            "LEAVEWHENEMPTY": "Bruges til at kontrollere, om personer er sparket ud af køen, når medlemmer ikke længere er tilgængelig til at modtage opkald.",
+            "ANNOUNCEFREQUENCY": "Angiver, hvor ofte vi skal annoncere opkaldets position og/eller anslået ventetid i køen. Sæt værdien til 0 for at deaktivere.",
+            "MINANNOUNCEFREQUENCY": "Angiver den minimale mængde tid, der skal gå, inden vi annoncerer kaldets placering i køen igen. Dette bruges når den opkaldendes position kan skifte hyppigere for at undgå personen høre flere opdateringer i en kort periode.",
+            "PERIODICANNOUNCEFREQUENCY": "Angiver, hvor ofte vi skal foretage regelmæssige beskeder til personen.",
+            "ANNOUNCEPOSITIONLIMIT": "Hvis du har defineret announce-position som enten begrænser eller mere.",
+            "AFTERCALLWORKDURATION": "Varigheden af pausen startet af Efterarbejde indstilling",
+            "MEMBERDELAY": "Hvis du ønsker, at der skal være en forsinkelse før personen, og køen kan være forbundet med hinanden.",
+            "MUSICONHOLD": "Sæt musikken klasse, der skal bruges ved en bestemt kø.",
+            "ANNOUNCETOAGENT": "Bruges til at spille en bekendtgørelse til agenten, der besvarede opkaldet, typisk at lade ham vide, hvad køen personen kommer fra.",
+            "RANDOMPERIODICANNOUNCE": "Hvis sat til ja, vil spille de definerede regelmæssige beskeder i en tilfældig rækkefølge.",
+            "ANNOUNCEHOLDTIME": "Definerer om den anslåede ventetid bør spilles sammen med regelmæssige beskeder.",
+            "ANNOUNCECALLERPOSITION": "Definerer om opkaldets position i køen, skal du oplyse til hende. Hvis der ingen holdning vil aldrig blive offentliggjort. Hvis sat til Ja, opkaldets position vil altid blive annonceret. Hvis værdien er indstillet til grænsen, der ringer, høre hendes position i køen, hvis det er inden for rammerne defineret ved at annoncere stillinger-grænsen. Hvis værdien er mere vedkommende, der ringer, høre hendes holdning, hvis det overstiger det antal, der er defineret ved at annoncere stillinger-grænsen.",
+            "REPORTHOLDTIMEAGENT": "Gør rapportering på kalderens holdetid til køen medlem forud for brobygning.",
+            "PERIODICANNOUNCE": "En række regelmæssige beskeder der skal spilles, spilles i den rækkefølge, som de er defineret.",
+            "HOLDTIMEANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"hold\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "YOUARENEXTANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"You are now first in line\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "THEREAREANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"Er\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "WAITINGCALLSANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"ventende opkald\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"Den anslåede aktuelle hold-tid\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "MINUTESANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"protokollen\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "MINUTEANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"minut\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "SECONDSANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"sekunder\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "THANKYOUANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"Tak for jeres tålmodighed\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "AFTERCALLWORK": "Hvis aktiv, vil agenten blive sat på pause efter et afsluttet opkald i kø",
+            "AUTOPAUSE": "Aktiverer/deaktiverer automatisk afbrydelse af medlemmer der undlader at besvare et opkald. Hvis aktiv, skyldes det, at der holdes pause i alle køer, han er medlem af.",
+            "RINGINUSE": "Bruges til at undgå at sende opkald til medlemmer, hvis status er i brug.",
+            "TIMEOUTRESTART": "Hvis sat til Ja, nulstiller timeout for en agent at besvare hvis enten optaget eller overbelastning status modtages fra kanalen.",
+            "MONITORFORMAT": "Angiver filformatet til brug ved optagelse. Hvis skærm-format er inaktiv, vil ikke blive registreret.",
+            "CONTEXT": "Gør det muligt for en person at forlade køen ved at trykke en enkelt DTMF ciffer. Hvis en sammenhæng er specificeret, og opkalderen indtaster en række tal, som vil prøve at blive matchet i forbindelse angivet, og opkaldsplanen udførelsen fortsætter der.",
+            "SETINTERFACEVARIABLES": "Hvis sat til ja, lige inden de ringer, er forbundet med en kø-nogle variabler bliver sat(se wiki)",
+            "SETQUEUEVARIABLES": "Hvis sat til ja, lige inden de ringer, er forbundet med en anden kø og lige inden personen forlader køen nogle variabler bliver sat(se wiki)",
+            "SETQUEUEENTRYVARIABLES": "Hvis sat til ja, lige inden de ringer, er forbundet med en kø-nogle variabler bliver sat(se wiki)",
+            "RECORDING": "Aktivering af optagelse af opkald",
+            "VOICEMAIL_CONTEXT": "På baggrund af den relative forlængelse.",
+            "METHOD": "Outbound Dialer-metode.",
+            "MAXCONCURRENTCALLS": "Det maksimale antal samtidige opkald, der vil blive afsendt af den udgående opkalder.",
+            "ORIGINATECALLERIDNAME": "Udgående opkalds id navn",
+            "ORIGINATECALLERIDNUMBER": "Udgående Opkalds Id nummer",
+            "ORIGINATETIMEOUT": "Tid i sekunder for udgående opkald fra at etablere forbindelse. Hvis tilslutning ikke er etableret, skal stamme status vil være ubesvarede.",
+            "QUEUETIMEOUT": "Tid i sekunder, som et opkald venter i køen før det er faldet",
+            "GLOBALMAXRETRY": "Det maksimale antal gange en kontakt kaldes inden lukketid.",
+            "CONGESTIONMAXRETRY": "Det maksimale antal gange en defekt kontakt for overbelastning grund kaldes inden lukketid.",
+            "CONGESTIONRETRYTIME": "Tid i minutter, inden du forsøger at nå en kontakt mislykkedes på grund af overbelastning",
+            "BUSYMAXRETRY": "Det maksimale antal gange en defekt kontakt til travle grund kaldes inden lukketid.",
+            "BUSYRETRYTIME": "Tid i minutter, inden du forsøger at nå en kontakt for travlt grunden mislykkedes",
+            "NOANSWERMAXRETRY": "Det maksimale antal gange en defekt kontakt for ubesvarede grund kaldes inden lukketid.",
+            "NOANSWERRETRYTIME": "Tid i minutter, inden du forsøger at nå en kontakt mislykkedes for ubesvarede grund",
+            "POWERLEVEL": "Antal kontakter til lyd for én tilgængelige agent.",
+            "PREDICTIVEOPTIMIZATION": "En faktor for at optimere i forudsigelig algoritme.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Procentdel baseret på den valgte prognostisk faktor optimering",
+            "CONCURRENTCALLS": "Det maksimale antal samtidige opkald, der vil blive afsendt af den udgående opkalder i denne kampagne.",
+            "PREDICTIVEINTERVAL": "Tidsinterval i minutter betragtes som forudsigelig algoritme til at beregne mængden af opkald til at generere til optimering optimering af prædiktiv faktor",
+            "AGENTTIMEOUT": "Angiver det antal sekunder til ringen en agents enhed.",
+            "GLOBALINTERVAL": "Global tidsinterval, hvor opkalderen får lov til at ringe til kontaktpersoner. Vær opmærksom når du ændre dette felt. Vi er ikke ansvarlige eller erstatningspligtige for deres manglende opfyldelse, Nummersender love og regulativer."
+        },
+        "MUSICONHOLD": "Musik ved parkeret opkald",
+        "ANNOUNCETOAGENT": "Annoncere til agent",
+        "ANNOUNCEMENTS": "Spots",
+        "ADVANCED": "Avanceret",
+        "ANNOUNCEFREQUENCY": "Annoncere frekvens",
+        "MINANNOUNCEFREQUENCY": "Annoncere Frekvens min.",
+        "PERIODICANNOUNCEFREQUENCY": "Periodisk Annoncere frekvens",
+        "RANDOMPERIODICANNOUNCE": "Tilfældige periodiske annoncere",
+        "ANNOUNCEHOLDTIME": "Annoncere parkeret tid",
+        "ANNOUNCECALLERPOSITION": "Annoncere Opkalds Position",
+        "ANNOUNCEPOSITIONLIMIT": "Annoncere bordposition",
+        "REPORTHOLDTIMEAGENT": "Rapporten Agent parkeret tid",
+        "PERIODICANNOUNCE": "Periodisk annoncere",
+        "HOLDTIMEANNOUNCE": "Parkeret tid annoncere",
+        "YOUARENEXTANNOUNCE": "\"Du er næste\" annoncere",
+        "THEREAREANNOUNCE": "'Der er' annoncere",
+        "WAITINGCALLSANNOUNCE": "Ventende opkald annoncere",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Estimeret Parkeringstid annoncere",
+        "MINUTESANNOUNCE": "Minutter præsentere",
+        "MINUTEANNOUNCE": "Minut annoncere",
+        "SECONDSANNOUNCE": "Sekunder annoncere",
+        "THANKYOUANNOUNCE": "Tak annoncere",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Efter Opkaldsarbejde",
+        "AFTERCALLWORKDURATION": "Efterarbejde varighed",
+        "RINGINUSE": "Ringen er i brug",
+        "MEMBERDELAY": "Medlem forsinkelse",
+        "TIMEOUTRESTART": "Timeout genstart",
+        "MONITORFORMAT": "Optagelsesformat",
+        "SETINTERFACEVARIABLES": "Indstil brugerflade variabler",
+        "SETQUEUEVARIABLES": "Sæt Kø variabler",
+        "SETQUEUEENTRYVARIABLES": "Indstil Queue Entry variabler",
+        "CONTEXT": "Kontekst",
+        "SAVE": "Gem",
+        "SETTINGS": "Indstillinger",
+        "INBOUNDROUTES": "Indkommende ruter",
+        "PHONENUMBER": "Telefonnummer",
+        "ADD_INBOUNDROUTE": "Tilføj Inbound Route",
+        "EDIT_INBOUNDROUTE": "Rediger indgående rute",
+        "DELETE_INBOUNDROUTE": "Slet indgående rute",
+        "ACTIONS": "Handlinger",
+        "OUTBOUNDROUTES": "Udgående ruter",
+        "DESTINATIONPATTERN": "Destination mønster",
+        "ADD_OUTBOUNDROUTE": "Tilføj Udgående rute",
+        "EDIT_OUTBOUNDROUTE": "Rediger udgående rute",
+        "DELETE_OUTBOUNDROUTE": "Slette Udgående rute",
+        "CUTDIGITS": "Skær cifre",
+        "RECORDING": "Optagelse",
+        "RECORDINGFORMAT": "Optagelsesformat",
+        "INTERNALROUTES": "Indenrigsruter",
+        "ADD_INTERNALROUTE": "Tilføj intern rute",
+        "EDIT_INTERNALROUTE": "Rediger Intern rute",
+        "DELETE_INTERNALROUTE": "Slette Intern rute",
+        "CONTEXTS": "Sammenhænge",
+        "ADD_CONTEXT": "Føjer kontekst",
+        "EDIT_CONTEXT": "Rediger forbindelse",
+        "DELETE_CONTEXT": "Slette rammer",
+        "VOICEMAILS": "Voicemails",
+        "ADD_VOICEMAIL": "Tilføj Voicemail",
+        "EDIT_VOICEMAIL": "Rediger Voicemail",
+        "DELETE_VOICEMAIL": "Slette Voicemail",
+        "FULLNAME": "Fulde navn",
+        "EMAIL": "Email",
+        "MAILBOX": "Postkasse",
+        "PASSWORD": "Password",
+        "CONFIRM_PASSWORD": "Bekræft adgangskode",
+        "TIMEZONE": "Tidszone",
+        "ATTACH": "Fastgør",
+        "ENVELOPE": "Kuvert",
+        "DELETE": "Slet",
+        "EMAILBODY": "Email Body",
+        "EMAILSUBJECT": "E-mail emne",
+        "MAXSECONDS": "Max sekunder",
+        "MAXMESSAGES": "Max meddelelser",
+        "MESSAGES": "Meddelelser",
+        "SORT": "Sorter",
+        "ADD_MUSICONHOLD": "Tilføj musik på hold",
+        "MUSICONHOLDS": "Bifag i venteposition",
+        "EDIT_MUSICONHOLD": "Rediger musik på hold",
+        "DELETE_MUSICONHOLD": "Slette musik på hold",
+        "DIRECTORY": "Kategorier",
+        "AUDIOFILES": "Lydfiler",
+        "RECORDINGS": "Optagelser",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Præfiks",
+        "OPTIONS": "Valgmuligheder",
+        "AUTH": "Godk.",
+        "ADD_CHANSPY": "Tilføj ChanSpy",
+        "EDIT_CHANSPY": "Rediger ChanSpy",
+        "DELETE_CHANSPY": "Slet ChanSpy",
+        "AGENTS": "Agenter",
+        "TELEPHONES": "Telefoner",
+        "QUEUES": "Køer",
+        "QUEUE_CALLS": "Opkald i kø",
+        "QUEUE_PARAMETERS": "Køen parametre",
+        "ABANDONED_CALLS": "Afbrudte opkald",
+        "OUTBOUND_CALLS": "Udgående opkald",
+        "AGI": "AGI",
+        "DIAL": "Dial",
+        "INTERNALDIAL": "Interne opkald",
+        "EXTERNALDIAL": "Eksterne opkald",
+        "RINGGROUP": "Ring gruppe",
+        "PLAYBACK": "Afspilning",
+        "QUEUE": "Kø",
+        "SET": "Indstil",
+        "VOICEMAIL": "Telefonsvarer",
+        "GOTO": "GoTo",
+        "HANGUP": "Hangup",
+        "CUSTOM": "Brugerdefineret",
+        "PROJECT": "Cally-Square projekt",
+        "TECHNOLOGY/RESOURCE": "Teknologi/Ressource",
+        "URL": "URL",
+        "EDIT_APP": "Redigeringsprogram",
+        "EDIT_INTERVAL": "Rediger interval",
+        "DELETE_APP": "Sletteprogrammer",
+        "INTERVALS": "Mellemrum",
+        "USER": "Bruger",
+        "TRUNK": "Trunk",
+        "PHONE": "Telefonen",
+        "AUDIO_FILES": "Lydfiler",
+        "ANNOUNCE_OVERRIDES": "Annoncere tilsidesætter",
+        "MACRO": "Makro",
+        "GOSUB": "GoSub",
+        "RULE": "Regel",
+        "POSITION": "Position",
+        "ANSWER": "Svar",
+        "VALUE": "Værdi",
+        "MAILBOX@CONTEXT": "Postkasse@sammenhæng",
+        "EXTENSION": "Udvidelse",
+        "PRIORITY": "Prioritet",
+        "HANGUP_CAUSE": "Hangup årsag",
+        "OUTBOUNDDIAL": "Udgående opkald",
+        "CALLER_ID": "Nummervisning",
+        "NO_MESSAGE_AVAILABLE": "Der findes ingen meddelelser",
+        "NO_SOUND_AVAILABLE": "Ingen lyde tilgængelige",
+        "VOICERECORDINGS": "Stemmeoptagelser",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Voice",
+        "REALTIME": "Realtime",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Kontekst",
+        "NO_MOHSOUND_AVAILABLE": "Ingen musik på Hold til rådighed",
+        "FILE": "Fil",
+        "ADD_MOHSOUND": "Tilføj musik på Hold lyd",
+        "DOWNLOAD_MOHSOUND": "Download musik på Hold lyd",
+        "DELETE_MOHSOUND": "Slette musik på Hold lyd",
+        "UNIQUEID": "Unikt ID",
+        "AGENT": "Agent",
+        "TYPE": "Type",
+        "RATING": "Rating",
+        "AUDIO": "Audio",
+        "DATE": "Dato",
+        "NEW_VOICEQUEUE": "Nye voicemail kø",
+        "NEW_INBOUNDROUTE": "Nye indkommende rute",
+        "NEW_OUTBOUNDROUTE": "Nye Udgående rute",
+        "NEW_INTERNALROUTE": "Nye interne rute",
+        "NEW_CONTEXT": "Ny forbindelse",
+        "NEW_VOICEMAIL": "Nye voicemail",
+        "NEW_MUSICONHOLD": "Ny musik på hold",
+        "NEW_CHANSPY": "Nye ChanSpy",
+        "PENALTY": "Straf",
+        "ADD_TEAM_TO_VOICEQUEUE": "Føj holdet til Voice kø",
+        "ADD_AGENT_TO_VOICEQUEUE": "Tilføj til kø Agent Voice",
+        "EDIT_DIAL": "Rediger Dial",
+        "EDIT_AGI": "Rediger AGI",
+        "EDIT_INTERNALDIAL": "Rediger Intern Dial",
+        "EDIT_EXTERNALDIAL": "Rediger eksternt opkald",
+        "EDIT_RINGGROUP": "Rediger Ring gruppe",
+        "EDIT_PLAYBACK": "Videoredigering",
+        "EDIT_QUEUE": "Rediger kø",
+        "EDIT_SET": "Rediger Indstil",
+        "EDIT_GOTO": "Rediger GoTo",
+        "EDIT_HANGUP": "Rediger Hangup",
+        "EDIT_CUSTOM": "Rediger brugerdefineret",
+        "DURATION": "Varighed",
+        "RECEIVED_AT": "Modtaget på",
+        "YES": "Ja",
+        "NO": "Ingen",
+        "HANGUPCAUSE_1": "1 = Ikke tildelte nummer",
+        "HANGUPCAUSE_16": "16 = Normail opkaldsfrigivelse",
+        "HANGUPCAUSE_17": "17 = Bruger optaget",
+        "HANGUPCAUSE_18": "18 = Ingen brugersvar (telehone enhed ikke tilsluttet).",
+        "HANGUPCAUSE_21": "21 = afvist opkald",
+        "HANGUPCAUSE_22": "22 = Antal ændret",
+        "HANGUPCAUSE_27": "27 = Destination ikke i drift",
+        "HANGUPCAUSE_38": "38 = Netværk ude af drift",
+        "HANGUPCAUSE_41": "41 = midlertidig fejl",
+        "RANDOM": "Tilfældig",
+        "ALPHABETICAL": "Alfabetisk",
+        "NO_APPS_AVAILABLE": "Ingen mulige applikationer",
+        "DOWNLOAD_VOICERECORDING": "Download stemmeoptagelse",
+        "DELETE_VOICERECORDING": "Slette Taleoptagelser",
+        "INTERNAL": "Intern",
+        "PHONE_STATE": "Telefonens tilstand",
+        "PHONE_STATUS": "Telefonstatus",
+        "REGISTERED": "Registreret",
+        "UNREGISTERED": "Uregistreret",
+        "LAGGED": "Laggede",
+        "REACHABLE": "Nås",
+        "UNREACHABLE": "Ikke tilgængelig",
+        "UNKNOWN": "Ukendt",
+        "NOT_INUSE": "Ikke i brug",
+        "INUSE": "I BRUG",
+        "BUSY": "Optaget",
+        "INVALID": "Ugyldig",
+        "UNAVAILABLE": "Ikke tilgængelig",
+        "RINGING": "Ringer",
+        "ONHOLD": "Parkeret",
+        "RING": "Ring",
+        "UP": "Op",
+        "INFO": "Info",
+        "TRUNKS": "Trunks",
+        "REGISTRY": "Registry",
+        "NO_REGISTRY": "Ingen registreringsdatabase",
+        "LOGGED_IN": "Logget ind",
+        "PAUSED": "Pause",
+        "WAITING": "Ventende",
+        "TALKING": "Samtale",
+        "DID": "Vidste",
+        "CALLER": "Opkalder",
+        "TOTAL": "Total",
+        "ANSWERED": "Besvaret",
+        "ABANDONED": "Afbrudt",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "Gennemsnitlig parkeringstid",
+        "AVG_DURATION": "Av varighed",
+        "AVG_BILLABLE": "Avg fakturerbare",
+        "SOURCE": "Kilde",
+        "DESTINATION": "Destination",
+        "REJECTED": "Afvist",
+        "FAILED": "Mislykkedes",
+        "CALLED": "Kaldet",
+        "CONNECTED": "Tilsluttet",
+        "NO_RATING": "Ingen bedømmelse",
+        "EDIT_VOICERECORDING": "Rediger stemmeoptagelse",
+        "APPLICATION_NAME": "Programnavn",
+        "ARGUMENTS": "Argumenter",
+        "ENABLED": "Aktiveret",
+        "POWERLEVEL": "Kraftniveau",
+        "DROPRATE": "Faldhastighedsventil",
+        "AGENTBUSYFACTOR": "Agent optaget faktor",
+        "PREDICTIVEOPTIMIZATION": "Forudsigelig optimering",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Forudsigelig Optimering procentdel",
+        "READY": "Klar",
+        "PAUSE": "Pause",
+        "UNPAUSE": "Unpause",
+        "DEFAULT_PAUSE": "Standard Pause",
+        "AGENTADD_QUEUE": "Tilføj til kø Agent kampagne",
+        "AGENTSADD_QUEUE": "Tilføj til kø kampagne",
+        "ALL_TEAMS": "Alle hold",
+        "SELECTED_TEAMS": "Udvalgte Teams",
+        "ALL_LISTS": "Alle lister",
+        "SELECTED_LISTS": "Udvalgte lister",
+        "ALL_AGENTS": "Alle agenter",
+        "SELECTED_AGENTS": "Udvalgte agenter",
+        "IVRCAMPAIGNS": "IVR kampagner",
+        "CONCURRENTCALLS": "Max samtidige opkald",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Tilføj sortliste",
+        "DELETE_IVRCAMPAIGN": "Slet kampagne",
+        "EDIT_IVRCAMPAIGN": "Rediger kampagne",
+        "NEW_IVRCAMPAIGN": "Ny IVR kampagne",
+        "ADD_IVRCAMPAIGN": "Tilføje IVR kampagne",
+        "LISTADD_IVRCAMPAIGN": "Tilføj liste",
+        "BLACKLISTADD_IVRCAMPAIGN": "Tilføj sortliste",
+        "HISTORY": "Historie",
+        "FINAL": "Afsluttende",
+        "BLACKLIST": "Sortliste",
+        "PREDICTIVEINTERVAL": "Prædiktiv Interval",
+        "WAITING_FOR_AGENT": "Ventende for agent",
+        "TOTAL_OFFERED": "Samlet udbydes",
+        "RUNNING": "Kører",
+        "INTERVAL_IS_OVERTIME": "Intervallet er overarbejde",
+        "TRUNK_IS_NOT_REACHABLE": "Bagagerummet er ikke tilgængelig",
+        "AGENTS_NOT_LOGGED": "Agent ikke logget",
+        "NOT_ACTIVE": "Ikke aktiv",
+        "AVAILABLE_CONTACTS_FINISHED": "Tilgængelige kontakter færdig",
+        "SCHEDULEDAT": "Planlagt til",
+        "HOPPERBLACKS": "Tragten sortliste",
+        "NO_HOPPERBLACK_AVAILABLE": "Ingen tilgængelige produkter",
+        "HOPPERFINALS": "Hopper sidste",
+        "NO_HOPPERFINAL_AVAILABLE": "Ingen tilgængelige produkter",
+        "HOPPERHISTORIES": "Magasinet historie",
+        "NO_HOPPERHISTORY_AVAILABLE": "Ingen tilgængelige produkter",
+        "DELETE_HOPPERHISTORY": "Slet",
+        "DELETE_HOPPERFINAL": "Slet",
+        "CONTACTID": "Contact ID",
+        "STARTTIME": "Starttidspunkt",
+        "RESPONSETIME": "Responstid",
+        "ENDTIME": "Sluttidspunkt",
+        "STATUS": "Status",
+        "HOPPERS": "Tragt",
+        "NO_HOPPER_AVAILABLE": "Ingen tilgængelige produkter",
+        "EDIT_HOPPER": "Rediger Hopper",
+        "DELETE_HOPPER": "Sletning af tragt",
+        "AGENTTIMEOUT": "Agent Timeout",
+        "DISPOSITION": "Disp.",
+        "REDIRECT_TO_NUMBER": "Omdiriger til et nummer",
+        "REDIRECT_TO_AGENT": "Omdiriger til en agent",
+        "CLOSING": "Lukning",
+        "MANAGED": "Managed",
+        "BACKUPTRUNK": "Backup Trunk",
+        "GLOBALINTERVAL": "Global Interval",
+        "RESCHEDULED_CONTACTS": "Genplanlagte kontakter",
+        "INTERVAL_IS_NULL": "Intervallet er null",
+        "TIMEZONE_UNKNOW": "Ukendt tidszone",
+        "INTERVAL_IS_EMPTY": "Intervallet er tom",
+        "LOGOUT": "Log af",
+        "EDIT_CAMPAIGN": "Rediger kampagne",
+        "LIMITED": "Begrænset",
+        "IVR_CAMPAIGNS": "Ivr kampagner",
+        "IS_DISACTIVED": "Er Disactived",
+        "TOTAL_MANAGED": "Total Managed"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/de.json b/public/app/main/apps/motiondialer/i18n/de.json
new file mode 100644 (file)
index 0000000..45fc8e3
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Motion Bull",
+        "QUEUECAMPAIGNS": "Warteschlange Kampagnen",
+        "NAME": "Name",
+        "VOICEQUEUES": "Voice Warteschlangen",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "BACK": "Zurück",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "DELETE_VOICEDISPOSITION": "Löschen Stimme Disposition",
+        "EDIT_VOICEDISPOSITION": "Edit Voice Disposition",
+        "EDIT_VOICEQUEUE": "Edit Voice Warteschlange",
+        "DELETE_VOICEQUEUE": "Warteschlange löschen",
+        "MOHSOUNDS": "Moh-Sounds",
+        "STRATEGY": "Strategie",
+        "DESCRIPTION": "Beschreibung",
+        "INTERVAL": "Zeitintervall",
+        "ADD_VOICEQUEUE": "Voice Warteschlange hinzufügen",
+        "NEW_QUEUECAMPAIGN": "Neue Warteschlange Kampagne",
+        "EDIT_QUEUECAMPAIGN": "Kampagne bearbeiten",
+        "TEAMADD_QUEUECAMPAIGN": "Gruppe hinzufügen",
+        "AGENTADD_QUEUECAMPAIGN": "Agent hinzufügen",
+        "LISTADD_QUEUECAMPAIGN": "Liste hinzufügen",
+        "DELETE_QUEUECAMPAIGN": "Kampagne löschen",
+        "ACTIVE": "Aktiv",
+        "METHOD": "Methode",
+        "ADD_QUEUECAMPAIGN": "Warteschlange hinzufügen Kampagne",
+        "CAMPAIGN": "Kampagne",
+        "MAXCONCURRENTCALLS": "Max. Anzahl gleichzeitiger Anrufe",
+        "ORIGINATE": "Stammen",
+        "ORIGINATECALLERIDNAME": "Die Anrufer-ID-Namen",
+        "ORIGINATECALLERIDNUMBER": "Anrufer-ID-Nummer",
+        "ORIGINATETIMEOUT": "Stammen Timeout",
+        "QUEUEOPTIONS": "Warteschlangenoptionen",
+        "QUEUETIMEOUT": "Warteschlange Timeout",
+        "CALLYSQUAREPROJECT": "Cally Square Projekt",
+        "RETRYANDFREQUENCY": "Wiederholen Sie Einstellungen",
+        "GLOBAL": "Global",
+        "GLOBALMAXRETRY": "Max. Wiederholungen",
+        "CONGESTION": "Überlastung",
+        "CONGESTIONMAXRETRY": "Max. Wiederholungen",
+        "CONGESTIONRETRYTIME": "Wiederholen Zeit [min]",
+        "BUSYMAXRETRY": "Max. Wiederholungen",
+        "BUSYRETRYTIME": "Wiederholen Zeit [min]",
+        "NOANSWER": "Keine Antwort",
+        "NOANSWERMAXRETRY": "Max. Wiederholungen",
+        "NOANSWERRETRYTIME": "Wiederholen Zeit [min]",
+        "QUEUE_PARAMS": "Queue Parameter",
+        "ORIGINATED": "Entstanden",
+        "MESSAGE": "Nachricht",
+        "DROPPED": "Zurück",
+        "CREATED_AT": "Erstellt am",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Benutzerdefinierte Anwendung."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+            "PHONENUMBER_REQUIRED": "Die Telefonnummer ist erforderlich",
+            "CONTEXT_REQUIRED": "Der Kontext ist erforderlich",
+            "DESTINATIONPATTERN_REQUIRED": "Das Ziel-pattern ist erforderlich",
+            "FULLNAME_REQUIRED": "Der vollständige Name ist erforderlich",
+            "EMAIL_REQUUIRED": "Die E-Mail ist erforderlich",
+            "EMAIL_MUST_VALID": "Die E-Mail muss ein gültiges Format geschrieben werden",
+            "MAILBOX_REQUIRED": "Die Mailbox muss angegeben werden",
+            "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
+            "CONFIRM_NOT_MATCH": "Die Passwörter stimmen nicht überein.",
+            "TIMEZONE_REQUIRED": "Die Zeitzone ist erforderlich",
+            "PREFIX_REQUIRED": "Das Präfix ist erforderlich,",
+            "OPTIONS_REQUIRED": "Die Optionen sind Erforderlich",
+            "AFTERCALLWORKDURATION_REQUIRED": "Die Arbeit nach Anruf Dauer ist erforderlich",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Die Technologie/Ressource ist erforderlich",
+            "PHONE_REQUIRED": "Die Telefonnummer ist erforderlich",
+            "VALUE_REQUIRED": "Der Wert ist erforderlich",
+            "EXTENSION_REQUIRED": "Die Verlängerung ist erforderlich",
+            "PRIORITY_REQUIRED": "Die Priorität ist erforderlich",
+            "GLOBALMAXRETRY_REQUIRED": "Max. Wiederholungen ist erforderlich",
+            "CONGESTIONMAXRETRY_REQUIRED": "Max. Wiederholungen ist erforderlich",
+            "CONGESTIONRETRYTIME_REQUIRED": "Zeit für Wiederholungen ist erforderlich",
+            "BUSYMAXRETRY_REQUIRED": "Max. Wiederholungen ist erforderlich",
+            "BUSYRETRYTIME_REQUIRED": "Zeit für Wiederholungen ist erforderlich",
+            "NOANSWERMAXRETRY_REQUIRED": "Max. Wiederholungen ist erforderlich",
+            "NOANSWERRETRYTIME_REQUIRED": "Zeit für Wiederholungen ist erforderlich",
+            "QUEUETIMEOUT_REQUIRED": "Warteschlange Timeout ist erforderlich",
+            "ORIGINATETIMEOUT_REQUIRED": "Stammen Timeout ist erforderlich",
+            "GLOBALINTERVAL_REQUIRED": "Globale Intervall ist erforderlich"
+        },
+        "GENERAL": "Allgemein",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Maximale Länge",
+        "RETRY": "Erneut versuchen",
+        "WRAPUPTIME": "Wrapup Zeit",
+        "WEIGHT": "Gewicht",
+        "JOINWHENEMPTY": "Melden Sie wenn sie leer",
+        "LEAVEWHENEMPTY": "Verlassen, wenn leer",
+        "HELP": {
+            "ACTIVE": "Aktiv",
+            "TIMEOUT": "Gibt die Anzahl von Sekunden an, die ein Gerät klingeln.",
+            "MAXLENGTH": "Gibt die maximale Anzahl der Anrufer in der Wartezeit in der Warteschlange. Ein Wert von Null bedeutet, dass eine unbegrenzte Anzahl von Anrufern in der Warteschlange erlaubt sind.",
+            "RETRY": "Gibt die Anzahl der Sekunden, bevor das nächste Mitglied in der Warteschlange, wenn der Wert für das Zeitlimit ausgeschöpft ist, während versucht wird, eine Mitglied der Warteschlange, um an den Zahnkranz zu warten.",
+            "WRAPUPTIME": "Die Anzahl der Sekunden, die ein Mitglied in einer Warteschlange nicht mehr verfügbar, nachdem Sie einen Anruf halten.",
+            "WEIGHT": "Legt das Gewicht einer Warteschlange. Eine Warteschlange mit einem höheren Gewicht definiert wird erste Priorität erhalten, wenn die Mitglieder mit mehreren Warteschlangen zugeordnet sind.",
+            "JOINWHENEMPTY": "Steuert, ob ein Anrufer in der Warteschlange hinzugefügt wird, wenn keine Mitglieder vorhanden sind.",
+            "LEAVEWHENEMPTY": "Verwendet, um zu steuern, ob Anrufer aus der Warteschlange gekickt werden, wenn Mitglieder nicht mehr Anrufe verfügbar sind.",
+            "ANNOUNCEFREQUENCY": "Legt fest, wie oft wir die Position des Anrufers und/verkünden sollten oder geschätzte Wartezeit in der Warteschlange. Stellen Sie diesen Wert auf Null zu deaktivieren.",
+            "MINANNOUNCEFREQUENCY": "Gibt die minimale Zeit, die verstreichen muss, bevor wir die Position des Anrufers in der Warteschlange erneut zu verkünden. Dies wird verwendet, wenn der Anrufer häufig ändern kann, wird der Anrufer hören mehrere Updates in einem kurzen Zeitraum zu verhindern.",
+            "PERIODICANNOUNCEFREQUENCY": "Gibt an, wie oft wir in regelmäßigen Abständen Mitteilungen an den Anrufer machen sollte.",
+            "ANNOUNCEPOSITIONLIMIT": "Wenn Sie definiert haben verkünden - Position als entweder einzuschränken oder mehr.",
+            "AFTERCALLWORKDURATION": "Die Dauer der Pause durch die Option \"Arbeit nach Anruf ausgelöst",
+            "MEMBERDELAY": "Verwendet, wenn es eine Verzögerung, bevor der Anrufer und Warteschlange Mitglied miteinander verbunden werden möchten.",
+            "MUSICONHOLD": "Setzt die Musik klasse von einer bestimmten Warteschlange verwendet werden.",
+            "ANNOUNCETOAGENT": "Für das Spielen eine Ansage, die auf den Agenten, der den Anruf entgegengenommen, in der Regel verwendet, um ihn wissen zu lassen, was der Anrufer Warteschlange kommt.",
+            "RANDOMPERIODICANNOUNCE": "Wenn \"yes\" festgelegt ist, wird die definierte in regelmäßigen Abständen Mitteilungen in einer zufälligen Reihenfolge wiedergeben.",
+            "ANNOUNCEHOLDTIME": "Legt fest, ob die geschätzte Wartezeit zusammen mit dem in regelmäßigen Abständen Mitteilungen gespielt werden sollte.",
+            "ANNOUNCECALLERPOSITION": "Legt fest, ob die Position des Anrufers in der Warteschlange zu Ihrem angekündigt werden sollte. Ist Nein eingestellt, wird die Position wird nie bekannt gegeben. Wenn Sie auf \"Ja\" setzen, wird die Position des Anrufers wird immer bekannt gegeben werden. Wenn der Wert eingestellt ist, wird der Anrufer ihre Position in der Warteschlange hört nur, wenn er sich innerhalb der Grenze von verkünden - Position - Grenzwert festgelegt werden. Wenn der Wert auf mehr eingestellt ist, wird der Anrufer ihre Position zu hören, wenn Sie über die Anzahl von verkünden - Position - Grenzwert definiert ist.",
+            "REPORTHOLDTIMEAGENT": "Ermöglicht die Berichterstattung des Anrufers Haltezeit auf die Warteschlange, die vor dem Bridging.",
+            "PERIODICANNOUNCE": "Eine Reihe von in regelmäßigen Abständen Mitteilungen gespielt zu werden, spielte in der Reihenfolge, in der sie definiert sind.",
+            "HOLDTIMEANNOUNCE": "Wenn nicht angegeben, wird der Standardwert spielen (\"hold\"). Wenn auf einen leeren Wert gesetzt ist, wird die Aufforderung nicht gespielt werden.",
+            "YOUARENEXTANNOUNCE": "Wenn nicht angegeben, wird der Standardwert (\" Jetzt sind Sie in erster Linie\"). Wenn auf einen leeren Wert gesetzt ist, wird die Aufforderung nicht gespielt werden.",
+            "THEREAREANNOUNCE": "Wenn nicht angegeben, wird der Standardwert spielen (\"Es gibt\"). Wenn auf einen leeren Wert gesetzt ist, wird die Aufforderung nicht gespielt werden.",
+            "WAITINGCALLSANNOUNCE": "Wenn nicht angegeben, wird der Standardwert (\"Wartende Anrufe\"). Wenn auf einen leeren Wert gesetzt ist, wird die Aufforderung nicht gespielt werden.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Wenn nicht angegeben, wird der Standardwert spielen (\"Das Voraussichtliche Wartezeit\"). Wenn auf einen leeren Wert gesetzt ist, wird die Aufforderung nicht gespielt werden.",
+            "MINUTESANNOUNCE": "Wenn nicht angegeben, wird der Standardwert spielen (\"min\"). Wenn auf einen leeren Wert gesetzt ist, wird die Aufforderung nicht gespielt werden.",
+            "MINUTEANNOUNCE": "Wenn nicht angegeben, wird der Standardwert (\"Minute\"). Wenn auf einen leeren Wert gesetzt ist, wird die Aufforderung nicht gespielt werden.",
+            "SECONDSANNOUNCE": "Wenn nicht angegeben, wird der Standardwert spielen (\"Sekunden\"). Wenn auf einen leeren Wert gesetzt ist, wird die Aufforderung nicht gespielt werden.",
+            "THANKYOUANNOUNCE": "Wenn nicht angegeben, wird der Standardwert spielen (\"Vielen Dank für Ihr Geduld\"). Wenn auf einen leeren Wert gesetzt ist, wird die Aufforderung nicht gespielt werden.",
+            "AFTERCALLWORK": "Wenn aktiv, wird für den Agenten in Pause nach einer abgeschlossenen Anruf in die Warteschlange eingestellt werden.",
+            "AUTOPAUSE": "Aktiviert/deaktiviert das automatische Anhalten der Mitglieder, die es versäumen, um einen Anruf zu beantworten. Wenn aktiv Ursachen dieses Mitglied in allen Warteschlangen er ist Mitglied der angehalten zu werden.",
+            "RINGINUSE": "Verwendet Senden von Anrufen an Mitglieder, deren Status im Einsatz ist zu vermeiden.",
+            "TIMEOUTRESTART": "Wenn die Einstellung Ja lautet, setzt den Timeout für einen Agenten zu beantworten, wenn entweder ein Besetztzeichen oder Staus Status aus dem Kanal empfangen wird.",
+            "MONITORFORMAT": "Gibt das Dateiformat zu verwenden, wenn Sie die Aufnahme. Wenn der Monitor-Format deaktiviert ist, werden die Anrufe nicht aufgezeichnet werden.",
+            "CONTEXT": "Kann ein Anrufer in die Warteschlange verlassen Sie durch Drücken einer einzigen MFV-Ziffer. Wenn ein Kontext angegeben ist und der Anrufer gibt eine Reihe, kann diese Ziffer wird der Versuch unternommen, im Rahmen angegebenen ausgeziffert werden, und Nummernplan Ausführung wird es weiter.",
+            "SETINTERFACEVARIABLES": "Wenn die Einstellung Ja lautet, gerade vor der Anrufer mit einer Warteschlange Mitglied überbrückt werden einige Variablen gesetzt werden (siehe Wiki)",
+            "SETQUEUEVARIABLES": "Wenn die Einstellung Ja lautet, gerade vor der Anrufer mit einer Warteschlange Mitglied überbrückt werden, und kurz vor dem Anrufer die Warteschlange verlassen einige Variablen gesetzt werden (siehe Wiki)",
+            "SETQUEUEENTRYVARIABLES": "Wenn die Einstellung Ja lautet, gerade vor der Anrufer mit einer Warteschlange Mitglied überbrückt werden einige Variablen gesetzt werden (siehe Wiki)",
+            "RECORDING": "Die Anrufaufzeichnung aktivieren",
+            "VOICEMAIL_CONTEXT": "Im Zusammenhang mit der relativen Erweiterung.",
+            "METHOD": "Outbound Dialer Methode.",
+            "MAXCONCURRENTCALLS": "Die maximale Anzahl gleichzeitiger Anrufe, die vom Outbound Dialer entstanden sein wird.",
+            "ORIGINATECALLERIDNAME": "Ausgehende Anrufer-ID-Namen",
+            "ORIGINATECALLERIDNUMBER": "Ausgehende Anrufer-ID-Nummer",
+            "ORIGINATETIMEOUT": "Zeit in Sekunden, die ausgehende Anrufe mit Ursprung Verbindung herzustellen. Wenn die Busverbindungen nicht hergestellt ist, wird der Status stammen, wird keine Antwort sein.",
+            "QUEUETIMEOUT": "Zeit in Sekunden, die ein Anruf in der Warteschlange warten soll, bevor er gelöscht wird",
+            "GLOBALMAXRETRY": "Maximale Anzahl, wie oft ein Kontakt genannt wird, bevor es geschlossen",
+            "CONGESTIONMAXRETRY": "Maximale Anzahl, wie oft ein Kontakt konnte nicht für Staus Grund genannt wird, bevor es geschlossen",
+            "CONGESTIONRETRYTIME": "Zeit in Minuten, bevor Sie es erneut versuchen einen Kontakt für Staus Grund fehlgeschlagen zu erreichen.",
+            "BUSYMAXRETRY": "Maximale Anzahl, wie oft ein Kontakt konnte nicht für Beschäftigte Grund genannt wird, bevor es geschlossen",
+            "BUSYRETRYTIME": "Zeit in Minuten, bevor Sie es erneut versuchen einen Kontakt für Beschäftigte Grund fehlgeschlagen zu erreichen.",
+            "NOANSWERMAXRETRY": "Maximale Anzahl, wie oft ein Kontakt konnte nicht für Keine Antwort Grund genannt wird, bevor es geschlossen",
+            "NOANSWERRETRYTIME": "Zeit in Minuten, bevor Sie es erneut versuchen einen Kontakt für Keine Antwort Reason zu erreichen.",
+            "POWERLEVEL": "Anzahl der Kontakte, für einen verfügbaren Agenten.",
+            "PREDICTIVEOPTIMIZATION": "Ein Faktor in der vorbestimmten Algorithmus zu optimieren.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Prozentsatz, der auf die ausgewählten prädiktive Optimierung Faktor",
+            "CONCURRENTCALLS": "Die maximale Anzahl gleichzeitiger Anrufe, die vom Outbound Dialer für diese Kampagne entstanden sein wird.",
+            "PREDICTIVEINTERVAL": "Zeitintervall in Minuten mit prädiktiver Algorithmus berücksichtigt werden Anrufe zu berechnen für die Optimierung der prädiktive Optimierung Faktor zu generieren",
+            "AGENTTIMEOUT": "Gibt die Anzahl von Sekunden, die ein Agent Gerät klingeln.",
+            "GLOBALINTERVAL": "Globale Zeit, in der sich der Dialer erlaubt ist, Kontakte zu nennen. Bitte achten Sie, wenn Sie dieses Feld nicht ändern. Wir sind nicht verantwortlich oder haftbar für die Nichteinhaltung mit Autodialer Gesetze und Bestimmungen einzuhalten."
+        },
+        "MUSICONHOLD": "Musik auf Halten",
+        "ANNOUNCETOAGENT": "Verkünden auf Agenten",
+        "ANNOUNCEMENTS": "Ankündigungen",
+        "ADVANCED": "Erweiterte",
+        "ANNOUNCEFREQUENCY": "Frequenz ankündigen",
+        "MINANNOUNCEFREQUENCY": "Minimale verkünden Frequenz",
+        "PERIODICANNOUNCEFREQUENCY": "Periodische verkünden Frequenz",
+        "RANDOMPERIODICANNOUNCE": "Random Periodische verkünden",
+        "ANNOUNCEHOLDTIME": "Verkünden. Haltezeit",
+        "ANNOUNCECALLERPOSITION": "Verkünden Anrufer Position",
+        "ANNOUNCEPOSITIONLIMIT": "Verkünden Position Limit",
+        "REPORTHOLDTIMEAGENT": "Bericht Bedienplatz Haltezeit",
+        "PERIODICANNOUNCE": "Periodische verkünden",
+        "HOLDTIMEANNOUNCE": "Hold Zeit verkünden",
+        "YOUARENEXTANNOUNCE": "\"Sie sind weiter' verkünden",
+        "THEREAREANNOUNCE": "'Es gibt' verkünden",
+        "WAITINGCALLSANNOUNCE": "Wartende Anrufe verkünden",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Halten Sie die geschätzte Zeit verkünden",
+        "MINUTESANNOUNCE": "Minuten ankündigen",
+        "MINUTEANNOUNCE": "Minute verkünden",
+        "SECONDSANNOUNCE": "Sekunden verkünden",
+        "THANKYOUANNOUNCE": "\"Danke\" ankündigen",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Arbeit nach Anruf",
+        "AFTERCALLWORKDURATION": "Arbeit nach Anruf Dauer",
+        "RINGINUSE": "Ring im Einsatz",
+        "MEMBERDELAY": "Die Verzögerung",
+        "TIMEOUTRESTART": "Timeout neu starten",
+        "MONITORFORMAT": "Aufzeichnungsformat",
+        "SETINTERFACEVARIABLES": "Set Interface Variablen",
+        "SETQUEUEVARIABLES": "Stellen Variablen",
+        "SETQUEUEENTRYVARIABLES": "Stellen ENTRY-Variablen",
+        "CONTEXT": "Kontext",
+        "SAVE": "Speichern",
+        "SETTINGS": "Einstellungen",
+        "INBOUNDROUTES": "Ankommende Routen",
+        "PHONENUMBER": "Telefonnummer",
+        "ADD_INBOUNDROUTE": "Ankommende Route hinzufügen",
+        "EDIT_INBOUNDROUTE": "Bearbeiten Sie Eingehende Route",
+        "DELETE_INBOUNDROUTE": "Löschen Sie Eingehende Route",
+        "ACTIONS": "Aktionen",
+        "OUTBOUNDROUTES": "Abgehende Routen",
+        "DESTINATIONPATTERN": "Ziel Muster",
+        "ADD_OUTBOUNDROUTE": "Abgehende Route hinzufügen",
+        "EDIT_OUTBOUNDROUTE": "Abgehende Route bearbeiten",
+        "DELETE_OUTBOUNDROUTE": "Abgehende Route löschen",
+        "CUTDIGITS": "Schneiden Sie Ziffern",
+        "RECORDING": "Aufnahme",
+        "RECORDINGFORMAT": "Aufzeichnungsformat",
+        "INTERNALROUTES": "Interne Routen",
+        "ADD_INTERNALROUTE": "Fügen Sie interne Route",
+        "EDIT_INTERNALROUTE": "Interne Route bearbeiten",
+        "DELETE_INTERNALROUTE": "Interne Route löschen",
+        "CONTEXTS": "Kontexte",
+        "ADD_CONTEXT": "Rahmen hinzufügen",
+        "EDIT_CONTEXT": "Bearbeiten Kontext",
+        "DELETE_CONTEXT": "Löschen von Rahmen",
+        "VOICEMAILS": "Voicemails",
+        "ADD_VOICEMAIL": "Voicemail hinzufügen",
+        "EDIT_VOICEMAIL": "Bearbeiten von Voicemail",
+        "DELETE_VOICEMAIL": "Voicemail löschen",
+        "FULLNAME": "Voller Name",
+        "EMAIL": "E-Mail",
+        "MAILBOX": "Mailbox",
+        "PASSWORD": "Kennwort",
+        "CONFIRM_PASSWORD": "Passwort bestätigen",
+        "TIMEZONE": "Zeitzone",
+        "ATTACH": "Befestigen",
+        "ENVELOPE": "Umschlag",
+        "DELETE": "Löschen",
+        "EMAILBODY": "E-Mail-Text",
+        "EMAILSUBJECT": "E-Mail Betreff",
+        "MAXSECONDS": "Max Sekunden",
+        "MAXMESSAGES": "Max. Nachrichten",
+        "MESSAGES": "Nachrichten",
+        "SORT": "Sortieren",
+        "ADD_MUSICONHOLD": "Musik auf Halten",
+        "MUSICONHOLDS": "Musik auf Halten",
+        "EDIT_MUSICONHOLD": "Bearbeiten Musik auf Halten",
+        "DELETE_MUSICONHOLD": "Löschen Sie Musik auf Halten",
+        "DIRECTORY": "Verzeichnis",
+        "AUDIOFILES": "Audiodateien",
+        "RECORDINGS": "Aufnahmen",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Präfix",
+        "OPTIONS": "Optionen",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Chanspy hinzufügen",
+        "EDIT_CHANSPY": "Bearbeiten ChanSpy",
+        "DELETE_CHANSPY": "Löschen ChanSpy",
+        "AGENTS": "Agenten",
+        "TELEPHONES": "Telefone",
+        "QUEUES": "Warteschlangen",
+        "QUEUE_CALLS": "Anrufe aus der Warteschlange",
+        "QUEUE_PARAMETERS": "Queue Parameter",
+        "ABANDONED_CALLS": "Abgebrochene Anrufe",
+        "OUTBOUND_CALLS": "Ausgehende Anrufe",
+        "AGI": "AGI",
+        "DIAL": "Wählen",
+        "INTERNALDIAL": "Interne Wahl",
+        "EXTERNALDIAL": "Externes Wählen",
+        "RINGGROUP": "Ring Gruppe",
+        "PLAYBACK": "Wiedergabe",
+        "QUEUE": "Warteschlange",
+        "SET": "Einstellen",
+        "VOICEMAIL": "Voicemail",
+        "GOTO": "Gehe zu",
+        "HANGUP": "Auflegen",
+        "CUSTOM": "Benutzerdefinierte",
+        "PROJECT": "Cally-Square Projekt",
+        "TECHNOLOGY/RESOURCE": "Technologie / Ressource",
+        "URL": "URL",
+        "EDIT_APP": "Bearbeiten Anwendung",
+        "EDIT_INTERVAL": "Bearbeiten Intervall",
+        "DELETE_APP": "Anwendung löschen",
+        "INTERVALS": "Intervalle",
+        "USER": "Benutzer",
+        "TRUNK": "Amtsleitung",
+        "PHONE": "Telefon",
+        "AUDIO_FILES": "Audiodateien",
+        "ANNOUNCE_OVERRIDES": "Verkünden überschreibt",
+        "MACRO": "Makro",
+        "GOSUB": "GoSub",
+        "RULE": "Regel",
+        "POSITION": "Position",
+        "ANSWER": "Antwort",
+        "VALUE": "Wert",
+        "MAILBOX@CONTEXT": "Mailbox @ Rahmen",
+        "EXTENSION": "Erweiterung",
+        "PRIORITY": "Priorität",
+        "HANGUP_CAUSE": "Auflegen verursachen",
+        "OUTBOUNDDIAL": "Für ausgehende Anrufe wählen",
+        "CALLER_ID": "Anrufer-ID",
+        "NO_MESSAGE_AVAILABLE": "Keine Meldungen vorhanden",
+        "NO_SOUND_AVAILABLE": "Kein Ton verfügbar",
+        "VOICERECORDINGS": "Sprachaufnahmen",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Voice",
+        "REALTIME": "Echtzeit",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Kontext",
+        "NO_MOHSOUND_AVAILABLE": "Keine Wartemusik verfügbar",
+        "FILE": "Datei",
+        "ADD_MOHSOUND": "Musik hinzufügen Auf Klang",
+        "DOWNLOAD_MOHSOUND": "Download Music On Hold Sound",
+        "DELETE_MOHSOUND": "Löschen Sie Musik auf Halten Sound",
+        "UNIQUEID": "Eindeutige ID",
+        "AGENT": "Agent",
+        "TYPE": "Typ",
+        "RATING": "Bewertung",
+        "AUDIO": "Audio",
+        "DATE": "Datum",
+        "NEW_VOICEQUEUE": "Neue Stimme Warteschlange",
+        "NEW_INBOUNDROUTE": "Neue eingehende Route",
+        "NEW_OUTBOUNDROUTE": "Neue ausgehende Route",
+        "NEW_INTERNALROUTE": "Neue interne Route",
+        "NEW_CONTEXT": "Neuen Kontext",
+        "NEW_VOICEMAIL": "Neue Voicemail",
+        "NEW_MUSICONHOLD": "Neue Musik auf Halten",
+        "NEW_CHANSPY": "Neue ChanSpy",
+        "PENALTY": "Strafe",
+        "ADD_TEAM_TO_VOICEQUEUE": "Team Voice Warteschlange hinzufügen",
+        "ADD_AGENT_TO_VOICEQUEUE": "Agent Voice Warteschlange hinzufügen",
+        "EDIT_DIAL": "Kurzwahl bearbeiten",
+        "EDIT_AGI": "Bearbeiten AGI",
+        "EDIT_INTERNALDIAL": "Interne Kurzwahl bearbeiten",
+        "EDIT_EXTERNALDIAL": "Externe Kurzwahl bearbeiten",
+        "EDIT_RINGGROUP": "Gruppe bearbeiten",
+        "EDIT_PLAYBACK": "Bearbeiten Wiedergabe",
+        "EDIT_QUEUE": "Warteschlange bearbeiten",
+        "EDIT_SET": "Bearbeiten",
+        "EDIT_GOTO": "Bearbeiten Gehe zu",
+        "EDIT_HANGUP": "Bearbeiten auflegen",
+        "EDIT_CUSTOM": "Bearbeiten Benutzerdefinierte",
+        "DURATION": "Dauer",
+        "RECEIVED_AT": "Eingegangen am",
+        "YES": "Ja",
+        "NO": "Keine",
+        "HANGUPCAUSE_1": "1 = Nicht zugewiesene Nummer",
+        "HANGUPCAUSE_16": "16=Normail Anruf löschen",
+        "HANGUPCAUSE_17": "17 = Benutzer besetzt",
+        "HANGUPCAUSE_18": "18 = Kein Benutzer reagiert (Telefon Gerät nicht angeschlossen)",
+        "HANGUPCAUSE_21": "21 = Anruf abgewiesen",
+        "HANGUPCAUSE_22": "22 = Anzahl geändert",
+        "HANGUPCAUSE_27": "27 = Ziel nicht in Ordnung",
+        "HANGUPCAUSE_38": "38 = Netzwerk nicht in der richtigen Reihenfolge",
+        "HANGUPCAUSE_41": "41 = Temporärer Ausfall",
+        "RANDOM": "Random",
+        "ALPHABETICAL": "Alphabetisch",
+        "NO_APPS_AVAILABLE": "Keine Anwendungen verfügbar",
+        "DOWNLOAD_VOICERECORDING": "Download Voice Recording",
+        "DELETE_VOICERECORDING": "Löschen Sprachaufzeichnung",
+        "INTERNAL": "Interne",
+        "PHONE_STATE": "Telefonstatus",
+        "PHONE_STATUS": "Telefonstatus",
+        "REGISTERED": "Registriert",
+        "UNREGISTERED": "Unregistrierte",
+        "LAGGED": "Zurück",
+        "REACHABLE": "Erreichbar",
+        "UNREACHABLE": "Nicht erreichbar",
+        "UNKNOWN": "Unbekannt",
+        "NOT_INUSE": "Nicht in Gebrauch",
+        "INUSE": "Im Einsatz",
+        "BUSY": "Besetzt",
+        "INVALID": "Ungültig",
+        "UNAVAILABLE": "Nicht verfügbar",
+        "RINGING": "Klingeln",
+        "ONHOLD": "Auf Halten",
+        "RING": "Ring",
+        "UP": "Bis",
+        "INFO": "Info",
+        "TRUNKS": "Amtsleitungen",
+        "REGISTRY": "Registrierung",
+        "NO_REGISTRY": "Keine registry",
+        "LOGGED_IN": "Angemeldet",
+        "PAUSED": "Angehalten",
+        "WAITING": "Warten",
+        "TALKING": "Sprechen",
+        "DID": "Haben",
+        "CALLER": "Anrufer",
+        "TOTAL": "Insgesamt",
+        "ANSWERED": "Beantwortet",
+        "ABANDONED": "Abgebrochen",
+        "UNMANAGED": "Nicht verwaltete",
+        "AVG_HOLD_TIME": "Durchschnittl. Warteschleifenzeit",
+        "AVG_DURATION": "Av-Dauer",
+        "AVG_BILLABLE": "Avg Fakturierbaren",
+        "SOURCE": "Quelle",
+        "DESTINATION": "Ziel",
+        "REJECTED": "Abgelehnt",
+        "FAILED": "Fehlgeschlagen",
+        "CALLED": "Aufgerufen",
+        "CONNECTED": "Verbunden",
+        "NO_RATING": "Keine Bewertung",
+        "EDIT_VOICERECORDING": "Edit Voice Recording",
+        "APPLICATION_NAME": "Name der Anwendung",
+        "ARGUMENTS": "Argumente",
+        "ENABLED": "Aktiviert",
+        "POWERLEVEL": "Leistung",
+        "DROPRATE": "Absenkgeschwindigkeit",
+        "AGENTBUSYFACTOR": "Agent besetzt Faktor",
+        "PREDICTIVEOPTIMIZATION": "Prädiktive Optimierung",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Prädiktive Optimierung Prozentsatz",
+        "READY": "Bereit",
+        "PAUSE": "Pause",
+        "UNPAUSE": "Pause",
+        "DEFAULT_PAUSE": "Standard Pause",
+        "AGENTADD_QUEUE": "Kampagne hinzufügen Agent in der Warteschlange",
+        "AGENTSADD_QUEUE": "Agents hinzufügen Kampagne in die Warteschlange",
+        "ALL_TEAMS": "Alle Mannschaften",
+        "SELECTED_TEAMS": "Ausgewählte Teams",
+        "ALL_LISTS": "Alle Listen",
+        "SELECTED_LISTS": "Ausgewählte Listen",
+        "ALL_AGENTS": "Alle Agenten",
+        "SELECTED_AGENTS": "Ausgewählte Agenten",
+        "IVRCAMPAIGNS": "IVR-Kampagnen",
+        "CONCURRENTCALLS": "Max. Anzahl gleichzeitiger Anrufe",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Blacklist hinzufügen",
+        "DELETE_IVRCAMPAIGN": "Kampagne löschen",
+        "EDIT_IVRCAMPAIGN": "Kampagne bearbeiten",
+        "NEW_IVRCAMPAIGN": "Neue IVR-Kampagne",
+        "ADD_IVRCAMPAIGN": "Hinzufügen IVR-Kampagne",
+        "LISTADD_IVRCAMPAIGN": "Liste hinzufügen",
+        "BLACKLISTADD_IVRCAMPAIGN": "Blacklist hinzufügen",
+        "HISTORY": "Geschichte",
+        "FINAL": "Endg.",
+        "BLACKLIST": "Schwarze Liste",
+        "PREDICTIVEINTERVAL": "Predictive Intervall",
+        "WAITING_FOR_AGENT": "Warten auf Agenten",
+        "TOTAL_OFFERED": "Insgesamt",
+        "RUNNING": "Ausgeführt",
+        "INTERVAL_IS_OVERTIME": "Intervall ist Überstunden",
+        "TRUNK_IS_NOT_REACHABLE": "Trunk ist nicht erreichbar.",
+        "AGENTS_NOT_LOGGED": "Agent nicht angemeldet",
+        "NOT_ACTIVE": "Nicht Aktiv",
+        "AVAILABLE_CONTACTS_FINISHED": "Kontakte abgeschlossen",
+        "SCHEDULEDAT": "Geplant für",
+        "HOPPERBLACKS": "Hopper Blacklist",
+        "NO_HOPPERBLACK_AVAILABLE": "Keine Reihen verfügbar",
+        "HOPPERFINALS": "Hopper Endg.",
+        "NO_HOPPERFINAL_AVAILABLE": "Keine Reihen verfügbar",
+        "HOPPERHISTORIES": "Hopper Geschichte",
+        "NO_HOPPERHISTORY_AVAILABLE": "Keine Reihen verfügbar",
+        "DELETE_HOPPERHISTORY": "Löschen",
+        "DELETE_HOPPERFINAL": "Löschen",
+        "CONTACTID": "Kontakt-ID",
+        "STARTTIME": "Startzeit",
+        "RESPONSETIME": "Reaktionszeit",
+        "ENDTIME": "Endzeit",
+        "STATUS": "Status",
+        "HOPPERS": "Hopper",
+        "NO_HOPPER_AVAILABLE": "Keine Reihen verfügbar",
+        "EDIT_HOPPER": "Bearbeiten Hopper",
+        "DELETE_HOPPER": "Löschen Hopper",
+        "AGENTTIMEOUT": "Agent Timeout",
+        "DISPOSITION": "Disposition",
+        "REDIRECT_TO_NUMBER": "Umleitung zu einer Nummer",
+        "REDIRECT_TO_AGENT": "Umleiten zu: Ein Agent",
+        "CLOSING": "Schließen",
+        "MANAGED": "Verwaltet",
+        "BACKUPTRUNK": "Backup Trunk",
+        "GLOBALINTERVAL": "Globale Intervall",
+        "RESCHEDULED_CONTACTS": "Neu geplanten Kontakte",
+        "INTERVAL_IS_NULL": "Intervall ist Null",
+        "TIMEZONE_UNKNOW": "Zeitzone Unknow",
+        "INTERVAL_IS_EMPTY": "Intervall ist leer",
+        "LOGOUT": "An-/Abmelden",
+        "EDIT_CAMPAIGN": "Kampagne bearbeiten",
+        "LIMITED": "Begrenzt",
+        "IVR_CAMPAIGNS": "Ivr-Kampagnen",
+        "IS_DISACTIVED": "Ist Disactived",
+        "TOTAL_MANAGED": "Insgesamt verwaltet"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/en.json b/public/app/main/apps/motiondialer/i18n/en.json
new file mode 100644 (file)
index 0000000..0ce6bae
--- /dev/null
@@ -0,0 +1,473 @@
+{
+    "MOTIONDIALER": {
+        "LOGOUT": "Logout",
+        "EDIT_CAMPAIGN": "Edit Campaign",
+        "LIMITED": "Limited",
+        "IVR_CAMPAIGNS": "Ivr Campaigns",
+        "MOTIONDIALER": "Motion Bull",
+        "QUEUECAMPAIGNS": "Queue Campaigns",
+        "IVRCAMPAIGNS": "IVR Campaigns",
+        "MANAGED": "Managed",
+        "AVAILABLE_CONTACTS_FINISHED": "Available contacts finished",
+        "HISTORY": "History",
+        "SCHEDULEDAT": "Scheduled At",
+        "HOPPERBLACKS": "Hopper Blacklist",
+        "NO_HOPPERBLACK_AVAILABLE": "No items available",
+        "HOPPERFINALS": "Hopper Final",
+        "NO_HOPPERFINAL_AVAILABLE": "No items available",
+        "HOPPERHISTORIES": "Hopper History",
+        "NO_HOPPERHISTORY_AVAILABLE": "No items available",
+        "DELETE_HOPPERHISTORY": "Delete",
+        "DELETE_HOPPERFINAL": "Delete",
+        "CONTACTID": "Contact ID",
+        "STARTTIME": "Start Time",
+        "RESPONSETIME": "Response Time",
+        "ENDTIME": "End Time",
+        "STATUS": "Status",
+        "HOPPERS": "Hopper",
+        "NO_HOPPER_AVAILABLE": "No items available",
+        "EDIT_HOPPER": "Edit Hopper",
+        "DELETE_HOPPER": "Delete Hopper",
+        "FINAL": "Final",
+        "BLACKLIST": "Blacklist",
+        "NAME": "Name",
+        "VOICEQUEUES": "Voice Queues",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "BACK": "Back",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "DELETE_VOICEDISPOSITION": "Delete Voice Disposition",
+        "EDIT_VOICEDISPOSITION": "Edit Voice Disposition",
+        "EDIT_VOICEQUEUE": "Edit Voice Queue",
+        "DELETE_VOICEQUEUE": "Delete Voice Queue",
+        "MOHSOUNDS": "Moh Sounds",
+        "STRATEGY": "Strategy",
+        "DESCRIPTION": "Description",
+        "INTERVAL": "Time Interval",
+        "ADD_VOICEQUEUE": "Add Voice Queue",
+        "NEW_QUEUECAMPAIGN": "New Queue Campaign",
+        "ACTIVE": "Active",
+        "METHOD": "Method",
+        "POWERLEVEL": "Power Level",
+        "DROPRATE": "Drop Rate",
+        "AGENTBUSYFACTOR": "Agent Busy Factor",
+        "PREDICTIVEOPTIMIZATION": "Predictive Optimization",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Predictive Optimization Percentage",
+        "PREDICTIVEINTERVAL": "Predictive Interval",
+        "ADD_QUEUECAMPAIGN": "Add Queue Campaign",
+        "CAMPAIGN": "Campaign",
+        "MAXCONCURRENTCALLS": "Max Concurrent Calls",
+        "CONCURRENTCALLS": "Max Concurrent Calls",
+        "ORIGINATE": "Originate",
+        "ORIGINATECALLERIDNAME": "Caller ID Name",
+        "ORIGINATECALLERIDNUMBER": "Caller ID Number",
+        "ORIGINATETIMEOUT": "Originate Timeout",
+        "QUEUEOPTIONS": "Queue Options",
+        "QUEUETIMEOUT": "Queue Timeout",
+        "CALLYSQUAREPROJECT": "Cally Square Project",
+        "RETRYANDFREQUENCY": "Retry Settings",
+        "GLOBAL": "Global",
+        "GLOBALMAXRETRY": "Max Retries",
+        "CONGESTION": "Congestion",
+        "CONGESTIONMAXRETRY": "Max Retries",
+        "CONGESTIONRETRYTIME": "Retry Time [min]",
+        "BUSYMAXRETRY": "Max Retries",
+        "BUSYRETRYTIME": "Retry Time [min]",
+        "NOANSWER": "No Answer",
+        "NOANSWERMAXRETRY": "Max Retries",
+        "NOANSWERRETRYTIME": "Retry Time [min]",
+        "QUEUE_PARAMS": "Queue Parameters",
+        "ORIGINATED": "Originated",
+        "MESSAGE": "Message",
+        "DROPPED": "Dropped",
+        "CREATED_AT": "Created At",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Custom application."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is Required",
+            "TIMEOUT_REQUIRED": "The Timeout is required",
+            "PHONENUMBER_REQUIRED": "The Phone Number is required",
+            "CONTEXT_REQUIRED": "The Context is required",
+            "DESTINATIONPATTERN_REQUIRED": "The Destination Pattern is required",
+            "FULLNAME_REQUIRED": "The Full Name is required",
+            "EMAIL_REQUUIRED": "The Email is required",
+            "EMAIL_MUST_VALID": "The email must be written in a valid format",
+            "MAILBOX_REQUIRED": "The Mailbox is required",
+            "PASSWORD_REQUIRED": "The Password is required",
+            "CONFIRM_NOT_MATCH": "The passwords don't match",
+            "TIMEZONE_REQUIRED": "The Timezone is required",
+            "PREFIX_REQUIRED": "The Prefix is required",
+            "OPTIONS_REQUIRED": "The Options are required",
+            "AFTERCALLWORKDURATION_REQUIRED": "The After Call Work Duration is required",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "The Technology/Resource is required",
+            "PHONE_REQUIRED": "The Phone is required",
+            "VALUE_REQUIRED": "The Value is required",
+            "EXTENSION_REQUIRED": "The Extension is required",
+            "PRIORITY_REQUIRED": "The Priority is required",
+            "GLOBALMAXRETRY_REQUIRED": "Max Retries is required",
+            "CONGESTIONMAXRETRY_REQUIRED": "Max Retries is required",
+            "CONGESTIONRETRYTIME_REQUIRED": "Retry Time is required",
+            "BUSYMAXRETRY_REQUIRED": "Max Retries is required",
+            "BUSYRETRYTIME_REQUIRED": "Retry Time is required",
+            "NOANSWERMAXRETRY_REQUIRED": "Max Retries is required",
+            "NOANSWERRETRYTIME_REQUIRED": "Retry Time is required",
+            "QUEUETIMEOUT_REQUIRED": "Queue Timeout is required",
+            "ORIGINATETIMEOUT_REQUIRED": "Originate Timeout is required",
+            "GLOBALINTERVAL_REQUIRED": "Global Interval is required"
+        },
+        "GENERAL": "General",
+        "AGENTTIMEOUT": "Agent Timeout",
+        "MAXLENGTH": "Maximum Length",
+        "RETRY": "Retry",
+        "WRAPUPTIME": "Wrapup Time",
+        "WEIGHT": "Weight",
+        "JOINWHENEMPTY": "Join when empty",
+        "LEAVEWHENEMPTY": "Leave when empty",
+        "HELP": {
+            "ACTIVE": "Active",
+            "AGENTTIMEOUT": "Specifies the number of seconds to ring an agent’s device.",
+            "MAXLENGTH": "Specifies the maximum number of callers allowed to be waiting in a queue. A value of zero means an unlimited number of callers are allowed in the queue.",
+            "RETRY": "Specifies the number of seconds to wait before attempting the next agent in the queue if the agent timeout value is exhausted while attempting to ring a member of the queue.",
+            "WRAPUPTIME": "The number of seconds to keep a member unavailable in a queue after completing a call.",
+            "WEIGHT": "Defines the weight of a queue. A queue with a higher weight defined will get first priority when members are associated with multiple queues.",
+            "JOINWHENEMPTY": "Controls whether a caller is added to the queue when no members are available.",
+            "LEAVEWHENEMPTY": "Used to control whether callers are kicked out of the queue when members are no longer available to take calls.",
+            "ANNOUNCEFREQUENCY": "Defines how often we should announce the caller’s position and/or estimated hold time in the queue. Set this value to zero to disable.",
+            "MINANNOUNCEFREQUENCY": "Specifies the minimum amount of time that must pass before we announce the caller’s position in the queue again. This is used when the caller’s position may change frequently, to prevent the caller hearing multiple updates in a short period of time.",
+            "PERIODICANNOUNCEFREQUENCY": "Indicates how often we should make periodic announcements to the caller.",
+            "ANNOUNCEPOSITIONLIMIT": "Used if you’ve defined announce-position as either limit or more.",
+            "AFTERCALLWORKDURATION": "The duration of the Pause triggered by the After Call Work option",
+            "MEMBERDELAY": "Used if you want there to be a delay prior to the caller and queue member being connected to each other.",
+            "MUSICONHOLD": "Sets the music class to be used by a particular queue.",
+            "ANNOUNCETOAGENT": "Used for playing an announcement to the agent that answered the call, typically to let him know what queue the caller is coming from.",
+            "RANDOMPERIODICANNOUNCE": "If set to yes, will play the defined periodic announcements in a random order.",
+            "ANNOUNCEHOLDTIME": "Defines whether the estimated hold time should be played along with the periodic announcements.",
+            "ANNOUNCECALLERPOSITION": "Defines whether the caller’s position in the queue should be announced to her. If set to no, the position will never be announced. If set to yes, the caller’s position will always be announced. If the value is set to limit, the caller will hear her position in the queue only if it is within the limit defined by announce-position-limit. If the value is set to more, the caller will hear her position if it is beyond the number defined by announce-position-limit.",
+            "REPORTHOLDTIMEAGENT": "Enables reporting of the caller’s hold time to the queue member prior to bridging.",
+            "PERIODICANNOUNCE": "A set of periodic announcements to be played, played in the order they are defined.",
+            "HOLDTIMEANNOUNCE": "If not defined, will play the default value (“Hold time”). If set to an empty value, the prompt will not be played at all.",
+            "YOUARENEXTANNOUNCE": "If not defined, will play the default value (“You are now first in line”). If set to an empty value, the prompt will not be played at all.",
+            "THEREAREANNOUNCE": "If not defined, will play the default value (“There are”). If set to an empty value, the prompt will not be played at all.",
+            "WAITINGCALLSANNOUNCE": "If not defined, will play the default value (“calls waiting”). If set to an empty value, the prompt will not be played at all.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "If not defined, will play the default value (“The current estimated hold time is”). If set to an empty value, the prompt will not be played at all.",
+            "MINUTESANNOUNCE": "If not defined, will play the default value (“minutes”). If set to an empty value, the prompt will not be played at all.",
+            "MINUTEANNOUNCE": "If not defined, will play the default value (“minute”). If set to an empty value, the prompt will not be played at all.",
+            "SECONDSANNOUNCE": "If not defined, will play the default value (“seconds”). If set to an empty value, the prompt will not be played at all.",
+            "THANKYOUANNOUNCE": "If not defined, will play the default value (“Thank you for your patience”). If set to an empty value, the prompt will not be played at all.",
+            "AFTERCALLWORK": "If active, the agent will be set on Pause after a completed call on the queue",
+            "AUTOPAUSE": "Enables/disables the automatic pausing of members who fail to answer a call. If active causes this member to be paused in all queues he is a member of.",
+            "RINGINUSE": "Used to avoid sending calls to members whose status is In Use.",
+            "TIMEOUTRESTART": "If set to yes, resets the timeout for an agent to answer if either a BUSY or CONGESTION status is received from the channel.",
+            "MONITORFORMAT": "Specifies the file format to use when recording. If monitor-format is inactive, calls will not be recorded.",
+            "CONTEXT": "Allows a caller to exit the queue by pressing a single DTMF digit. If a context is specified and the caller enters a number, that digit will attempt to be matched in the context specified, and dialplan execution will continue there.",
+            "SETINTERFACEVARIABLES": "If set to yes, just prior to the caller being bridged with a queue member some variables will be set(see wiki)",
+            "SETQUEUEVARIABLES": "If set to yes, just prior to the caller being bridged with a queue member and just prior to the caller leaving the queue some variables will be set(see wiki)",
+            "SETQUEUEENTRYVARIABLES": "If set to yes, just prior to the caller being bridged with a queue member some variables will be set(see wiki)",
+            "RECORDING": "Enable the call recording",
+            "VOICEMAIL_CONTEXT": "The context of the relative extension.",
+            "METHOD": "Outbound dialer method.",
+            "POWERLEVEL": "Number of contacts to call for one available agent.",
+            "PREDICTIVEOPTIMIZATION": "A factor to optimize in the predictive algorithm.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Percentage based on the selected predictive optimization factor",
+            "PREDICTIVEINTERVAL": "Time interval in minutes to be considered by the predictive algorithm to calculate amount of calls to generate for optimizing the predictive optimization factor",
+            "MAXCONCURRENTCALLS": "The maximum number of concurrent calls that will be originated by the outbound dialer for this campaign. If set to 0, unlimited calls.",
+            "CONCURRENTCALLS": "The maximum number of concurrent calls that will be originated by the outbound dialer for this campaign.",
+            "ORIGINATECALLERIDNAME": "Outgoing Caller Id Name",
+            "ORIGINATECALLERIDNUMBER": "Outgoing Caller Id Number",
+            "ORIGINATETIMEOUT": "Time in seconds for the originating outbound call to establish connection. If the connectin is not established, the originate status will be No Answer.",
+            "QUEUETIMEOUT": "Time in seconds that a call will wait in the queue before it is dropped. Min 0 and Max 99",
+            "GLOBALMAXRETRY": "Maximum number of times a contact is called before considering it closed",
+            "CONGESTIONMAXRETRY": "Maximum number of times a failed contact for congestion reason is called before considering it closed.",
+            "CONGESTIONRETRYTIME": "Time in minutes before retrying to reach a contact failed for congestion reason.",
+            "BUSYMAXRETRY": "Maximum number of times a failed contact for busy reason is called before considering it closed.",
+            "BUSYRETRYTIME": "Time in minutes before retrying to reach a contact failed for busy reason.",
+            "NOANSWERMAXRETRY": "Maximum number of times a failed contact for no answer reason is called before considering it closed.",
+            "NOANSWERRETRYTIME": "Time in minutes before retrying to reach a contact failed for no answer reason.",
+            "GLOBALINTERVAL": "Global time interval during which the dialer is allowed to call contacts. Please pay close attention when you modify this field. We will not be responsible or liable for your failure to comply with state Autodialer Laws and Regulations."
+        },
+        "MUSICONHOLD": "Music On Hold",
+        "ANNOUNCETOAGENT": "Announce To Agent",
+        "ANNOUNCEMENTS": "Announcements",
+        "ADVANCED": "Advanced",
+        "ANNOUNCEFREQUENCY": "Announce Frequency",
+        "MINANNOUNCEFREQUENCY": "Minimum Announce Frequency",
+        "PERIODICANNOUNCEFREQUENCY": "Periodic Announce Frequency",
+        "RANDOMPERIODICANNOUNCE": "Random Periodic Announce",
+        "ANNOUNCEHOLDTIME": "Announce Hold Time",
+        "ANNOUNCECALLERPOSITION": "Announce Caller Position",
+        "ANNOUNCEPOSITIONLIMIT": "Announce Position Limit",
+        "REPORTHOLDTIMEAGENT": "Report Agent Hold Time",
+        "PERIODICANNOUNCE": "Periodic Announce",
+        "HOLDTIMEANNOUNCE": "Hold Time Announce",
+        "YOUARENEXTANNOUNCE": "'You are next' Announce",
+        "THEREAREANNOUNCE": "'There are' Announce",
+        "WAITINGCALLSANNOUNCE": "Waiting Calls Announce",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Estimated Hold Time Announce",
+        "MINUTESANNOUNCE": "Minutes Announce",
+        "MINUTEANNOUNCE": "Minute Announce",
+        "SECONDSANNOUNCE": "Seconds Announce",
+        "THANKYOUANNOUNCE": "'Thank You' Announce",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "After Call Work",
+        "AFTERCALLWORKDURATION": "After Call Work Duration",
+        "RINGINUSE": "Ring In Use",
+        "MEMBERDELAY": "Member Delay",
+        "TIMEOUTRESTART": "Timeout Restart",
+        "MONITORFORMAT": "Recording Format",
+        "SETINTERFACEVARIABLES": "Set Interface Variables",
+        "SETQUEUEVARIABLES": "Set Queue Variables",
+        "SETQUEUEENTRYVARIABLES": "Set Queue Entry Variables",
+        "CONTEXT": "Context",
+        "SAVE": "Save",
+        "SETTINGS": "Settings",
+        "INBOUNDROUTES": "Inbound Routes",
+        "PHONENUMBER": "Phone Number",
+        "ADD_INBOUNDROUTE": "Add Inbound Route",
+        "EDIT_INBOUNDROUTE": "Edit Inbound Route",
+        "DELETE_INBOUNDROUTE": "Delete Inbound Route",
+        "ACTIONS": "Actions",
+        "OUTBOUNDROUTES": "Outbound Routes",
+        "DESTINATIONPATTERN": "Destination Pattern",
+        "ADD_OUTBOUNDROUTE": "Add Outbound Route",
+        "EDIT_OUTBOUNDROUTE": "Edit Outbound Route",
+        "DELETE_OUTBOUNDROUTE": "Delete Outbound Route",
+        "CUTDIGITS": "Cut Digits",
+        "RECORDING": "Recording",
+        "RECORDINGFORMAT": "Recording format",
+        "INTERNALROUTES": "Internal Routes",
+        "ADD_INTERNALROUTE": "Add Internal Route",
+        "EDIT_INTERNALROUTE": "Edit Internal Route",
+        "DELETE_INTERNALROUTE": "Delete Internal Route",
+        "CONTEXTS": "Contexts",
+        "ADD_CONTEXT": "Add Context",
+        "EDIT_CONTEXT": "Edit Context",
+        "DELETE_CONTEXT": "Delete Context",
+        "VOICEMAILS": "Voicemails",
+        "ADD_VOICEMAIL": "Add Voicemail",
+        "EDIT_VOICEMAIL": "Edit Voicemail",
+        "DELETE_VOICEMAIL": "Delete Voicemail",
+        "FULLNAME": "Full Name",
+        "EMAIL": "Email",
+        "MAILBOX": "Mailbox",
+        "PASSWORD": "Password",
+        "CONFIRM_PASSWORD": "Confirm Password",
+        "TIMEZONE": "Timezone",
+        "ATTACH": "Attach",
+        "ENVELOPE": "Envelope",
+        "DELETE": "Delete",
+        "EMAILBODY": "Email Body",
+        "EMAILSUBJECT": "Email Subject",
+        "MAXSECONDS": "Max Seconds",
+        "MAXMESSAGES": "Max Messages",
+        "MESSAGES": "Messages",
+        "SORT": "Sort",
+        "ADD_MUSICONHOLD": "Add Music On Hold",
+        "MUSICONHOLDS": "Musics On Hold",
+        "EDIT_MUSICONHOLD": "Edit Music On Hold",
+        "DELETE_MUSICONHOLD": "Delete Music On Hold",
+        "DIRECTORY": "Directory",
+        "AUDIOFILES": "Audio Files",
+        "RECORDINGS": "Recordings",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefix",
+        "OPTIONS": "Options",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Add ChanSpy",
+        "EDIT_CHANSPY": "Edit ChanSpy",
+        "DELETE_CHANSPY": "Delete ChanSpy",
+        "AGENTS": "Agents",
+        "TELEPHONES": "Telephones",
+        "QUEUES": "Queues",
+        "QUEUE_CALLS": "Queue Calls",
+        "QUEUE_PARAMETERS": "Queue Parameters",
+        "ABANDONED_CALLS": "Abandoned Calls",
+        "OUTBOUND_CALLS": "Outbound Calls",
+        "AGI": "AGI",
+        "DIAL": "Dial",
+        "INTERNALDIAL": "Internal Dial",
+        "EXTERNALDIAL": "External Dial",
+        "RINGGROUP": "Ring Group",
+        "PLAYBACK": "Playback",
+        "QUEUE": "Queue",
+        "SET": "Set",
+        "VOICEMAIL": "Voicemail",
+        "GOTO": "GoTo",
+        "HANGUP": "Hangup",
+        "CUSTOM": "Custom",
+        "PROJECT": "Cally-Square Project",
+        "TECHNOLOGY/RESOURCE": "Technology/Resource",
+        "URL": "URL",
+        "EDIT_APP": "Edit Application",
+        "EDIT_INTERVAL": "Edit Interval",
+        "DELETE_APP": "Delete Application",
+        "INTERVALS": "Intervals",
+        "USER": "User",
+        "TRUNK": "Trunk",
+        "PHONE": "Phone",
+        "AUDIO_FILES": "Audio Files",
+        "ANNOUNCE_OVERRIDES": "Announce Overrides",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "RULE": "Rule",
+        "POSITION": "Position",
+        "ANSWER": "Answer",
+        "VALUE": "Value",
+        "MAILBOX@CONTEXT": "Mailbox@Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "HANGUP_CAUSE": "Hangup Cause",
+        "OUTBOUNDDIAL": "Outbound Dial",
+        "CALLER_ID": "Caller ID",
+        "NO_MESSAGE_AVAILABLE": "No messages available",
+        "NO_SOUND_AVAILABLE": "No sounds available",
+        "VOICERECORDINGS": "Voice Recordings",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Voice",
+        "REALTIME": "Realtime",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Context",
+        "NO_MOHSOUND_AVAILABLE": "No Music On Hold available",
+        "FILE": "File",
+        "ADD_MOHSOUND": "Add Music On Hold sound",
+        "DOWNLOAD_MOHSOUND": "Download Music On Hold sound",
+        "DELETE_MOHSOUND": "Delete Music On Hold sound",
+        "UNIQUEID": "Unique ID",
+        "AGENT": "Agent",
+        "TYPE": "Type",
+        "RATING": "Rating",
+        "AUDIO": "Audio",
+        "DATE": "Date",
+        "NEW_VOICEQUEUE": "New Voice Queue",
+        "NEW_INBOUNDROUTE": "New Inbound Route",
+        "NEW_OUTBOUNDROUTE": "New Outbound Route",
+        "NEW_INTERNALROUTE": "New Internal Route",
+        "NEW_CONTEXT": "New Context",
+        "NEW_VOICEMAIL": "New Voicemail",
+        "NEW_MUSICONHOLD": "New Music On Hold",
+        "NEW_CHANSPY": "New ChanSpy",
+        "PENALTY": "Penalty",
+        "ADD_TEAM_TO_VOICEQUEUE": "Add Team to Voice Queue",
+        "ADD_AGENT_TO_VOICEQUEUE": "Add Agent to Voice Queue",
+        "EDIT_DIAL": "Edit Dial",
+        "EDIT_AGI": "Edit AGI",
+        "EDIT_INTERNALDIAL": "Edit Internal Dial",
+        "EDIT_EXTERNALDIAL": "Edit External Dial",
+        "EDIT_RINGGROUP": "Edit Ring Group",
+        "EDIT_PLAYBACK": "Edit Playback",
+        "EDIT_QUEUE": "Edit Queue",
+        "EDIT_SET": "Edit Set",
+        "EDIT_GOTO": "Edit GoTo",
+        "EDIT_HANGUP": "Edit Hangup",
+        "EDIT_CUSTOM": "Edit Custom",
+        "DURATION": "Duration",
+        "RECEIVED_AT": "Received At",
+        "YES": "Yes",
+        "NO": "No",
+        "HANGUPCAUSE_1": "1 = Unallocated number",
+        "HANGUPCAUSE_16": "16 = Normail call clearing",
+        "HANGUPCAUSE_17": "17 = User busy",
+        "HANGUPCAUSE_18": "18 = No user responding (telehone device not connected)",
+        "HANGUPCAUSE_21": "21 = Call rejected",
+        "HANGUPCAUSE_22": "22 = Number changed",
+        "HANGUPCAUSE_27": "27 = Destination out of order",
+        "HANGUPCAUSE_38": "38 = Network out of order",
+        "HANGUPCAUSE_41": "41 = Temporary failure",
+        "RANDOM": "Random",
+        "ALPHABETICAL": "Alphabetical",
+        "NO_APPS_AVAILABLE": "No applications available",
+        "DOWNLOAD_VOICERECORDING": "Download Voice Recording",
+        "DELETE_VOICERECORDING": "Delete Voice Recording",
+        "INTERNAL": "Internal",
+        "PHONE_STATE": "Phone State",
+        "PHONE_STATUS": "Phone Status",
+        "REGISTERED": "Registered",
+        "UNREGISTERED": "Unregistered",
+        "LAGGED": "Lagged",
+        "REACHABLE": "Reachable",
+        "UNREACHABLE": "Unreachable",
+        "UNKNOWN": "Unknown",
+        "NOT_INUSE": "Not in use",
+        "INUSE": "In Use",
+        "BUSY": "Busy",
+        "INVALID": "Invalid",
+        "UNAVAILABLE": "Unavailable",
+        "RINGING": "Ringing",
+        "ONHOLD": "On Hold",
+        "RING": "Ring",
+        "UP": "Up",
+        "INFO": "Info",
+        "TRUNKS": "Trunks",
+        "REGISTRY": "Registry",
+        "NO_REGISTRY": "No registry",
+        "LOGGED_IN": "Logged in (SIP connected)",
+        "PAUSED": "Paused",
+        "DISPOSITION": "Disposition",
+        "WAITING": "Waiting",
+        "TALKING": "Talking",
+        "DID": "DID",
+        "CALLER": "Caller",
+        "TOTAL": "Total",
+        "ANSWERED": "Answered",
+        "ABANDONED": "Abandoned",
+        "UNMANAGED": "Unmanaged",
+        "REDIRECT_TO_NUMBER": "Redirect to a number",
+        "REDIRECT_TO_AGENT": "Redirect to an agent",
+        "CLOSING": "Closing",
+        "AVG_HOLD_TIME": "Avg Hold Time",
+        "AVG_DURATION": "Avg Duration",
+        "AVG_BILLABLE": "Avg Billable",
+        "SOURCE": "Source",
+        "DESTINATION": "Destination",
+        "REJECTED": "Rejected",
+        "FAILED": "Failed",
+        "CALLED": "Called",
+        "CONNECTED": "Connected",
+        "NO_RATING": "No rating",
+        "EDIT_VOICERECORDING": "Edit Voice Recording",
+        "APPLICATION_NAME": "Application Name",
+        "ARGUMENTS": "Arguments",
+        "EDIT_QUEUECAMPAIGN": "Edit Campaign",
+        "LISTADD_QUEUECAMPAIGN": "Add List",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Add Blacklist",
+        "TEAMADD_QUEUECAMPAIGN": "Add Team",
+        "AGENTADD_QUEUECAMPAIGN": "Add Agent",
+        "DELETE_QUEUECAMPAIGN": "Delete Campaign",
+        "DELETE_IVRCAMPAIGN": "Delete Campaign",
+        "EDIT_IVRCAMPAIGN": "Edit Campaign",
+        "NEW_IVRCAMPAIGN": "New IVR Campaign",
+        "ADD_IVRCAMPAIGN": "Add IVR Campaign",
+        "LISTADD_IVRCAMPAIGN": "Add List",
+        "BLACKLISTADD_IVRCAMPAIGN": "Add Blacklist",
+        "ENABLED": "Enabled",
+        "READY": "Ready",
+        "PAUSE": "Pause",
+        "UNPAUSE": "Unpause",
+        "DEFAULT_PAUSE": "Default Pause",
+        "AGENTADD_QUEUE": "Add Agent to queue campaign",
+        "AGENTSADD_QUEUE": "Add Agents to queue campaign",
+        "ALL_TEAMS": "All Teams",
+        "SELECTED_TEAMS": "Selected Teams",
+        "ALL_LISTS": "All Lists",
+        "SELECTED_LISTS": "Selected Lists",
+        "ALL_AGENTS": "All Agents",
+        "SELECTED_AGENTS": "Selected Agents",
+        "WAITING_FOR_AGENT": "Waiting for Agent",
+        "TOTAL_OFFERED": "Total Offered",
+        "RUNNING": "Running",
+        "TRUNK_IS_NOT_REACHABLE": "Trunk is Not Reachable",
+        "AGENTS_NOT_LOGGED": "Agent not logged",
+        "NOT_ACTIVE": "Not Active",
+        "IS_DISACTIVED": "Is Disactived",
+        "BACKUPTRUNK": "Backup Trunk",
+        "GLOBALINTERVAL": "Global Interval",
+        "RESCHEDULED_CONTACTS": "Rescheduled contacts",
+        "INTERVAL_IS_OVERTIME": "Out of Interval",
+        "INTERVAL_IS_NULL": "Interval is Null",
+        "TIMEZONE_UNKNOW": "Timezone Unknow",
+        "AVAILABLE_CONTACTS_FINISHED": "Available contacts finished",
+        "INTERVAL_IS_EMPTY": "Interval is Empty",
+        "TOTAL_MANAGED": "Total Managed"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/es.json b/public/app/main/apps/motiondialer/i18n/es.json
new file mode 100644 (file)
index 0000000..7b5dae6
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Marcador de movimiento",
+        "QUEUECAMPAIGNS": "Campañas de cola",
+        "NAME": "Nombre",
+        "VOICEQUEUES": "Colas de voz",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "BACK": "Volver",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "DELETE_VOICEDISPOSITION": "Eliminar la disposición de voz",
+        "EDIT_VOICEDISPOSITION": "Editar voz Disposición",
+        "EDIT_VOICEQUEUE": "Editar voz cola",
+        "DELETE_VOICEQUEUE": "Eliminar la cola de voz",
+        "MOHSOUNDS": "Sonidos de Moh",
+        "STRATEGY": "Estrategia",
+        "DESCRIPTION": "Descripción",
+        "INTERVAL": "Intervalo de tiempo",
+        "ADD_VOICEQUEUE": "Añadir cola de voz",
+        "NEW_QUEUECAMPAIGN": "Nueva campaña de cola",
+        "EDIT_QUEUECAMPAIGN": "Edite la campaña",
+        "TEAMADD_QUEUECAMPAIGN": "Agregar equipo",
+        "AGENTADD_QUEUECAMPAIGN": "Agregar Agente",
+        "LISTADD_QUEUECAMPAIGN": "Agregar lista",
+        "DELETE_QUEUECAMPAIGN": "Borrar campaña",
+        "ACTIVE": "Active",
+        "METHOD": "Método",
+        "ADD_QUEUECAMPAIGN": "Agregar campaña cola",
+        "CAMPAIGN": "Campaña",
+        "MAXCONCURRENTCALLS": "Max llamadas simultáneas",
+        "ORIGINATE": "Se originan",
+        "ORIGINATECALLERIDNAME": "Nombre de ID de llamada",
+        "ORIGINATECALLERIDNUMBER": "Número de ID de llamada",
+        "ORIGINATETIMEOUT": "Se originan Timeout",
+        "QUEUEOPTIONS": "Opciones de cola",
+        "QUEUETIMEOUT": "Tiempo de espera de cola",
+        "CALLYSQUAREPROJECT": "Camente Square Project",
+        "RETRYANDFREQUENCY": "Configuración de reintentos",
+        "GLOBAL": "Global",
+        "GLOBALMAXRETRY": "Máximo de reintentos",
+        "CONGESTION": "La congestión",
+        "CONGESTIONMAXRETRY": "Máximo de reintentos",
+        "CONGESTIONRETRYTIME": "Tiempo de reintento [min].",
+        "BUSYMAXRETRY": "Máximo de reintentos",
+        "BUSYRETRYTIME": "Tiempo de reintento [min].",
+        "NOANSWER": "Sin respuesta",
+        "NOANSWERMAXRETRY": "Máximo de reintentos",
+        "NOANSWERRETRYTIME": "Tiempo de reintento [min].",
+        "QUEUE_PARAMS": "Parámetros de cola",
+        "ORIGINATED": "Originado",
+        "MESSAGE": "Mensaje",
+        "DROPPED": "Descendido",
+        "CREATED_AT": "Creado en",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - aplicación personalizada."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "TIMEOUT_REQUIRED": "El tiempo de espera es necesario",
+            "PHONENUMBER_REQUIRED": "Es necesario introducir el número de teléfono",
+            "CONTEXT_REQUIRED": "El contexto es necesario",
+            "DESTINATIONPATTERN_REQUIRED": "El patrón de destino es obligatorio",
+            "FULLNAME_REQUIRED": "Se requiere el nombre completo",
+            "EMAIL_REQUUIRED": "El correo electrónico es obligatorio",
+            "EMAIL_MUST_VALID": "El correo electrónico debe estar escrito en un formato válido",
+            "MAILBOX_REQUIRED": "El buzón es obligatorio",
+            "PASSWORD_REQUIRED": "Es necesaria la contraseña",
+            "CONFIRM_NOT_MATCH": "Las contraseñas no coinciden.",
+            "TIMEZONE_REQUIRED": "La zona horaria es obligatoria.",
+            "PREFIX_REQUIRED": "El prefijo es obligatorio",
+            "OPTIONS_REQUIRED": "Las opciones son obligatorios",
+            "AFTERCALLWORKDURATION_REQUIRED": "El trabajo posterior a la llamada se requiere una duración",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "La tecnología/recurso es necesario",
+            "PHONE_REQUIRED": "El teléfono es necesario",
+            "VALUE_REQUIRED": "El valor es obligatorio",
+            "EXTENSION_REQUIRED": "La extensión es necesaria",
+            "PRIORITY_REQUIRED": "La prioridad es necesaria",
+            "GLOBALMAXRETRY_REQUIRED": "Máximo de reintentos es requerido",
+            "CONGESTIONMAXRETRY_REQUIRED": "Máximo de reintentos es requerido",
+            "CONGESTIONRETRYTIME_REQUIRED": "Se necesita tiempo de reintento",
+            "BUSYMAXRETRY_REQUIRED": "Máximo de reintentos es requerido",
+            "BUSYRETRYTIME_REQUIRED": "Se necesita tiempo de reintento",
+            "NOANSWERMAXRETRY_REQUIRED": "Máximo de reintentos es requerido",
+            "NOANSWERRETRYTIME_REQUIRED": "Se necesita tiempo de reintento",
+            "QUEUETIMEOUT_REQUIRED": "Se requiere de tiempo de espera de cola",
+            "ORIGINATETIMEOUT_REQUIRED": "Se originan Timeout es requerido",
+            "GLOBALINTERVAL_REQUIRED": "Es necesario intervalo global"
+        },
+        "GENERAL": "General",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Longitud máxima",
+        "RETRY": "Reintentar",
+        "WRAPUPTIME": "Tiempo de cierre",
+        "WEIGHT": "Peso",
+        "JOINWHENEMPTY": "Unirse cuando esté vacía.",
+        "LEAVEWHENEMPTY": "Dejar cuando esté vacía.",
+        "HELP": {
+            "ACTIVE": "Active",
+            "TIMEOUT": "Especifica el número de segundos a la corona de un país miembro del dispositivo.",
+            "MAXLENGTH": "Especifica el número máximo de personas permitido estar esperando en una cola. Un valor de cero significa que un número ilimitado de llamadas están permitidos en la cola.",
+            "RETRY": "Especifica el número de segundos a esperar antes de intentar el siguiente miembro de la cola si el valor de tiempo de espera se agota mientras intentaba llame a un miembro de la cola.",
+            "WRAPUPTIME": "El número de segundos para mantener a un miembro que no está disponible en un cola después de finalizar una llamada.",
+            "WEIGHT": "Define el peso de una cola. Una cola con un peso mayor definido obtendrá primera prioridad cuando los miembros están asociados con varias colas.",
+            "JOINWHENEMPTY": "Controla si el llamante se ha añadido a la cola cuando los miembros no están disponibles.",
+            "LEAVEWHENEMPTY": "Se utiliza para controlar si los llamantes son expulsados de la cola cuando los miembros ya no están disponibles para realizar llamadas.",
+            "ANNOUNCEFREQUENCY": "Define la frecuencia con que debemos anunciar la llamada la posición y/o calcula el tiempo de espera en la cola. Establezca este valor a cero para desactivarla.",
+            "MINANNOUNCEFREQUENCY": "Especifica la cantidad mínima de tiempo que debe pasar antes de que podamos anunciar la llamada la posición en la cola de nuevo. Esto se usa cuando la posición de la persona que llama puede cambiar con frecuencia, para evitar que el llamador audiencia varias actualizaciones en un corto período de tiempo.",
+            "PERIODICANNOUNCEFREQUENCY": "Indica con qué frecuencia deberíamos hacer anuncios periódicos al llamador.",
+            "ANNOUNCEPOSITIONLIMIT": "Si has definido anunciar-posición como limitar o más.",
+            "AFTERCALLWORKDURATION": "La duración de la pausa provocada por el trabajo después de la llamada opción",
+            "MEMBERDELAY": "Se utiliza si desea que haya un retardo antes de que el llamador y la cola estados están conectados uno al otro.",
+            "MUSICONHOLD": "Establece la clase de música para ser utilizado por una cola en particular.",
+            "ANNOUNCETOAGENT": "Utilizado para reproducir un anuncio para el agente que atendió la llamada, normalmente para hacerle saber qué cola el llamador está viniendo.",
+            "RANDOMPERIODICANNOUNCE": "Si se establece en Sí, reproducirá los anuncios periódicos definidos en un orden aleatorio.",
+            "ANNOUNCEHOLDTIME": "Define si se estima que el tiempo de espera debe ser jugado junto con los anuncios periódicos.",
+            "ANNOUNCECALLERPOSITION": "Define si la posición de la llamada en la cola debe ser anunciado a ella. Si se establece en no, la posición nunca será anunciado. Si se establece en Sí, la posición de la llamada siempre será anunciado. Si se establece el valor límite, el llamante escuchará su posición en la cola sólo si está dentro de los límites definidos por anunciar la posición límite. Si el valor es mayor, la persona que llama escuchará su posición si está más allá del número definido por anunciar la posición límite.",
+            "REPORTHOLDTIMEAGENT": "Permite informar del tiempo de espera de la persona que llama a la cola estados antes de salvar.",
+            "PERIODICANNOUNCE": "Un conjunto de anuncios periódicos para ser jugado, jugado en el orden en que se definen.",
+            "HOLDTIMEANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"hold time\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "YOUARENEXTANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"Ahora usted está en primera línea\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "THEREAREANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"Hay\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "WAITINGCALLSANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"llamadas en espera\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"el actual tiempo de espera estimado es\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "MINUTESANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"minutos\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "MINUTEANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"minuto\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "SECONDSANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"S\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "THANKYOUANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"Gracias por su paciencia\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "AFTERCALLWORK": "Si activo, el agente estará en pausa después de que se complete una llamada en la cola.",
+            "AUTOPAUSE": "Activa/desactiva la pausa automática de miembros que no contestar una llamada. Si activo provoca este miembro a ser pausada en todas las colas que él es un miembro de.",
+            "RINGINUSE": "Se utiliza para evitar el envío de llamadas a miembros cuya situación no está en uso.",
+            "TIMEOUTRESTART": "Si se establece en Sí, se restablece el tiempo de espera para un agente para contestar si un estado ocupado o congestión es recibida desde el canal.",
+            "MONITORFORMAT": "Especifica el formato de archivo que se va a utilizar durante la grabación. Si el formato del monitor está inactivo, las llamadas no se grabarán.",
+            "CONTEXT": "Permite a una persona a salir de la cola pulsando un único dígito DTMF. Si se especifica un contexto y el interlocutor introduzca un número, ese dígito intentará ser igualado en el contexto especificado y ejecución dialplan continuará allí.",
+            "SETINTERFACEVARIABLES": "Si se establece en Sí, justo antes de que el cliente se enlaza con una cola estados algunas variables se establecerá(véase wiki)",
+            "SETQUEUEVARIABLES": "Si se establece en Sí, justo antes de que el cliente se enlaza con un miembro de la cola y justo antes de que el llamador dejando la cola algunas variables se establecerá(véase wiki)",
+            "SETQUEUEENTRYVARIABLES": "Si se establece en Sí, justo antes de que el cliente se enlaza con una cola estados algunas variables se establecerá(véase wiki)",
+            "RECORDING": "Habilitar la grabación de llamada",
+            "VOICEMAIL_CONTEXT": "El contexto de la extensión relativa.",
+            "METHOD": "Método del marcador saliente.",
+            "MAXCONCURRENTCALLS": "El número máximo de llamadas simultáneas que se originó por el marcador saliente.",
+            "ORIGINATECALLERIDNAME": "Nombre de ID de llamada saliente",
+            "ORIGINATECALLERIDNUMBER": "Número de ID de llamada saliente",
+            "ORIGINATETIMEOUT": "El tiempo en segundos para que origina la llamada para establecer la conexión. Si el connection no está establecida, el estado se originan ninguna respuesta.",
+            "QUEUETIMEOUT": "Tiempo en segundos que esperará una llamada en la cola antes de que se cae",
+            "GLOBALMAXRETRY": "Número máximo de veces que un contacto se llama antes de considerar cerrada",
+            "CONGESTIONMAXRETRY": "Número máximo de veces que un error de contacto para la congestión razón se llama antes de considerar cerrada",
+            "CONGESTIONRETRYTIME": "Tiempo en minutos antes de intentar llegar a un contacto falló por motivos de congestión",
+            "BUSYMAXRETRY": "Número máximo de veces que una falla de contacto para ocupado razón se llama antes de considerar cerrada",
+            "BUSYRETRYTIME": "Tiempo en minutos antes de intentar llegar a un contacto ha fallado para ocupado razón",
+            "NOANSWERMAXRETRY": "Número máximo de veces que un error de contacto para responder sin razón se llama antes de considerar cerrada",
+            "NOANSWERRETRYTIME": "Tiempo en minutos antes de intentar llegar a un contacto falló por razón sin respuesta",
+            "POWERLEVEL": "Número de contactos para llamar a un agente disponible.",
+            "PREDICTIVEOPTIMIZATION": "Un factor para optimizar el algoritmo predictivo.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Porcentaje basado en el factor de optimización predictiva seleccionado",
+            "CONCURRENTCALLS": "El número máximo de llamadas simultáneas que se originó por el marcador de salida para esta campaña.",
+            "PREDICTIVEINTERVAL": "Intervalo de tiempo en minutos para ser considerado por el algoritmo predictivo para calcular la cantidad de llamadas a generar para optimizar el factor de optimización predictiva",
+            "AGENTTIMEOUT": "Especifica el número de segundos a sonar el dispositivo de un agente.",
+            "GLOBALINTERVAL": "Intervalo de tiempo global durante el cual el comunicador está permitido llamar a contactos. Por favor, preste atención al modificar este campo. No seremos responsables de su incapacidad para cumplir con las leyes y reglamentos Autodialer."
+        },
+        "MUSICONHOLD": "Música en espera",
+        "ANNOUNCETOAGENT": "Anunciar al agente",
+        "ANNOUNCEMENTS": "Anuncios",
+        "ADVANCED": "Advanced",
+        "ANNOUNCEFREQUENCY": "Anunciar la frecuencia",
+        "MINANNOUNCEFREQUENCY": "Anunciar la frecuencia mínima",
+        "PERIODICANNOUNCEFREQUENCY": "Anunciar frecuencia periódica",
+        "RANDOMPERIODICANNOUNCE": "Anuncio periódico aleatorio",
+        "ANNOUNCEHOLDTIME": "Anunciar el tiempo de espera",
+        "ANNOUNCECALLERPOSITION": "Anunciar la posición de llamada",
+        "ANNOUNCEPOSITIONLIMIT": "Anunciar la posición límite",
+        "REPORTHOLDTIMEAGENT": "Informe de tiempo de espera del agente",
+        "PERIODICANNOUNCE": "Anunciar periódica",
+        "HOLDTIMEANNOUNCE": "Tiempo de espera anunciar",
+        "YOUARENEXTANNOUNCE": "\"Usted es el próximo\" anunciar",
+        "THEREAREANNOUNCE": "'hay' anunciar",
+        "WAITINGCALLSANNOUNCE": "Llamadas en espera anunciar",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Calcula el tiempo de espera anunciar",
+        "MINUTESANNOUNCE": "Minutos anunciar",
+        "MINUTEANNOUNCE": "Minuto anunciar",
+        "SECONDSANNOUNCE": "Segundos anunciar",
+        "THANKYOUANNOUNCE": "'Gracias' anunciar",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Trabajo posterior a la llamada",
+        "AFTERCALLWORKDURATION": "Después de llamar a la duración del trabajo",
+        "RINGINUSE": "Anillo en uso",
+        "MEMBERDELAY": "Estados demora",
+        "TIMEOUTRESTART": "Timeout reiniciar",
+        "MONITORFORMAT": "Formato de grabación",
+        "SETINTERFACEVARIABLES": "Establecer variables de interfaz",
+        "SETQUEUEVARIABLES": "Establecer variables de cola",
+        "SETQUEUEENTRYVARIABLES": "Establecer variables de entrada de la cola",
+        "CONTEXT": "Contexto",
+        "SAVE": "Guardar",
+        "SETTINGS": "Configuración",
+        "INBOUNDROUTES": "Rutas entrantes",
+        "PHONENUMBER": "Número de teléfono",
+        "ADD_INBOUNDROUTE": "Agregar rutas entrantes",
+        "EDIT_INBOUNDROUTE": "Editar ruta entrante",
+        "DELETE_INBOUNDROUTE": "Eliminar rutas entrantes",
+        "ACTIONS": "Acciones",
+        "OUTBOUNDROUTES": "Rutas salientes",
+        "DESTINATIONPATTERN": "Patrón de destino",
+        "ADD_OUTBOUNDROUTE": "Agregar ruta saliente",
+        "EDIT_OUTBOUNDROUTE": "Editar ruta saliente",
+        "DELETE_OUTBOUNDROUTE": "Eliminar ruta saliente",
+        "CUTDIGITS": "Cortar dígitos",
+        "RECORDING": "Grabación",
+        "RECORDINGFORMAT": "Formato de grabación",
+        "INTERNALROUTES": "Las rutas internas",
+        "ADD_INTERNALROUTE": "Agregar ruta interna",
+        "EDIT_INTERNALROUTE": "Editar ruta interna",
+        "DELETE_INTERNALROUTE": "Eliminar ruta interna",
+        "CONTEXTS": "Contextos",
+        "ADD_CONTEXT": "Añadir Contexto",
+        "EDIT_CONTEXT": "Contexto de edición",
+        "DELETE_CONTEXT": "Eliminar marco",
+        "VOICEMAILS": "Correos de voz.",
+        "ADD_VOICEMAIL": "Agregar Voicemail",
+        "EDIT_VOICEMAIL": "Editar Voicemail",
+        "DELETE_VOICEMAIL": "Eliminar correo de voz",
+        "FULLNAME": "Nombre completo",
+        "EMAIL": "Correo electrónico",
+        "MAILBOX": "Buzón",
+        "PASSWORD": "Contraseña",
+        "CONFIRM_PASSWORD": "Confirmar contraseña",
+        "TIMEZONE": "Zona horaria",
+        "ATTACH": "Adjuntar",
+        "ENVELOPE": "Sobre",
+        "DELETE": "Eliminar",
+        "EMAILBODY": "El cuerpo del correo electrónico",
+        "EMAILSUBJECT": "El asunto del correo electrónico",
+        "MAXSECONDS": "Max segundos",
+        "MAXMESSAGES": "Número máximo de mensajes",
+        "MESSAGES": "Mensajes",
+        "SORT": "Ordenar",
+        "ADD_MUSICONHOLD": "Agregar música en espera",
+        "MUSICONHOLDS": "Música en espera",
+        "EDIT_MUSICONHOLD": "Editar música en espera",
+        "DELETE_MUSICONHOLD": "Eliminar música en espera",
+        "DIRECTORY": "Directorio",
+        "AUDIOFILES": "Archivos de audio",
+        "RECORDINGS": "Grabaciones",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefijo",
+        "OPTIONS": "Opciones",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Agregar ChanSpy",
+        "EDIT_CHANSPY": "Editar ChanSpy",
+        "DELETE_CHANSPY": "Eliminar ChanSpy",
+        "AGENTS": "Los agentes",
+        "TELEPHONES": "Teléfonos",
+        "QUEUES": "Colas",
+        "QUEUE_CALLS": "Llamadas de cola",
+        "QUEUE_PARAMETERS": "Parámetros de cola",
+        "ABANDONED_CALLS": "Llamadas abandonadas",
+        "OUTBOUND_CALLS": "Llamadas salientes",
+        "AGI": "AGI",
+        "DIAL": "Marcar",
+        "INTERNALDIAL": "Marcación interna",
+        "EXTERNALDIAL": "Marcación externa",
+        "RINGGROUP": "Grupo de anillos",
+        "PLAYBACK": "La reproducción",
+        "QUEUE": "Cola",
+        "SET": "Establecer",
+        "VOICEMAIL": "Voicemail",
+        "GOTO": "GoTo",
+        "HANGUP": "Colgar",
+        "CUSTOM": "Custom",
+        "PROJECT": "Proyecto Cally-Square",
+        "TECHNOLOGY/RESOURCE": "Tecnología/Resource",
+        "URL": "URL",
+        "EDIT_APP": "Aplicación de edición",
+        "EDIT_INTERVAL": "Editar intervalo",
+        "DELETE_APP": "Eliminar la aplicación",
+        "INTERVALS": "Intervalos",
+        "USER": "Usuario",
+        "TRUNK": "Tronco",
+        "PHONE": "Teléfono",
+        "AUDIO_FILES": "Archivos de audio",
+        "ANNOUNCE_OVERRIDES": "Anunciar anula",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "RULE": "Artículo",
+        "POSITION": "Posición",
+        "ANSWER": "Respuesta",
+        "VALUE": "Valor",
+        "MAILBOX@CONTEXT": "Buzón@Contexto",
+        "EXTENSION": "Extensión",
+        "PRIORITY": "Prioridad",
+        "HANGUP_CAUSE": "Causa colgar",
+        "OUTBOUNDDIAL": "Marcación saliente",
+        "CALLER_ID": "Caller ID (identificador de llamadas)",
+        "NO_MESSAGE_AVAILABLE": "No hay mensajes disponibles",
+        "NO_SOUND_AVAILABLE": "No hay sonidos disponibles",
+        "VOICERECORDINGS": "Grabaciones de voz",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Voz",
+        "REALTIME": "Realtime",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Contexto",
+        "NO_MOHSOUND_AVAILABLE": "Música en espera no disponible",
+        "FILE": "Archivo",
+        "ADD_MOHSOUND": "Agregar sonido de música en espera",
+        "DOWNLOAD_MOHSOUND": "Descargar música en espera sonido",
+        "DELETE_MOHSOUND": "Eliminar sonido de música en espera",
+        "UNIQUEID": "Identificador único",
+        "AGENT": "Agent",
+        "TYPE": "Tipo",
+        "RATING": "Rating",
+        "AUDIO": "Audio",
+        "DATE": "Fecha",
+        "NEW_VOICEQUEUE": "Nueva cola de voz",
+        "NEW_INBOUNDROUTE": "Nueva ruta de entrada",
+        "NEW_OUTBOUNDROUTE": "Nueva ruta saliente",
+        "NEW_INTERNALROUTE": "Nueva ruta interna",
+        "NEW_CONTEXT": "Nuevo contexto",
+        "NEW_VOICEMAIL": "Nuevo correo de voz",
+        "NEW_MUSICONHOLD": "Nueva música en espera",
+        "NEW_CHANSPY": "Nueva ChanSpy",
+        "PENALTY": "Pena",
+        "ADD_TEAM_TO_VOICEQUEUE": "Agregar equipo a cola de voz",
+        "ADD_AGENT_TO_VOICEQUEUE": "Agregar agente de cola de voz",
+        "EDIT_DIAL": "Editar marcación",
+        "EDIT_AGI": "Editar AGI",
+        "EDIT_INTERNALDIAL": "Editar marcación interna",
+        "EDIT_EXTERNALDIAL": "Editar marcación externa",
+        "EDIT_RINGGROUP": "Editar grupo de anillos",
+        "EDIT_PLAYBACK": "Editar reproducción",
+        "EDIT_QUEUE": "Editar cola",
+        "EDIT_SET": "Editar",
+        "EDIT_GOTO": "Editar GoTo",
+        "EDIT_HANGUP": "Editar Colgar",
+        "EDIT_CUSTOM": "Editar Custom",
+        "DURATION": "Duración",
+        "RECEIVED_AT": "Recibido en",
+        "YES": "Sí",
+        "NO": "No hay",
+        "HANGUPCAUSE_1": "1 = número sin asignar",
+        "HANGUPCAUSE_16": "16 = llamada Normail borrado",
+        "HANGUPCAUSE_17": "17 = Usuario ocupado",
+        "HANGUPCAUSE_18": "18 = Sin respuesta del usuario (teléfono Dispositivo no conectado)",
+        "HANGUPCAUSE_21": "21 = Llamada rechazada",
+        "HANGUPCAUSE_22": "22 = Número cambiado",
+        "HANGUPCAUSE_27": "27 = Destino fuera de orden.",
+        "HANGUPCAUSE_38": "38 = red fuera de orden.",
+        "HANGUPCAUSE_41": "41 = Error temporal",
+        "RANDOM": "Random",
+        "ALPHABETICAL": "Orden alfabético",
+        "NO_APPS_AVAILABLE": "No hay aplicaciones disponibles",
+        "DOWNLOAD_VOICERECORDING": "Descargar la grabación de voz",
+        "DELETE_VOICERECORDING": "Eliminar la grabación de voz",
+        "INTERNAL": "Interno",
+        "PHONE_STATE": "Estado del teléfono",
+        "PHONE_STATUS": "Estado del teléfono",
+        "REGISTERED": "Registrado",
+        "UNREGISTERED": "Unregistered",
+        "LAGGED": "Retrasado",
+        "REACHABLE": "Accesible",
+        "UNREACHABLE": "Inalcanzable",
+        "UNKNOWN": "Desconocida",
+        "NOT_INUSE": "No en uso",
+        "INUSE": "En uso",
+        "BUSY": "Ocupada",
+        "INVALID": "Invalid",
+        "UNAVAILABLE": "No disponible",
+        "RINGING": "Sonando",
+        "ONHOLD": "En espera",
+        "RING": "Ring",
+        "UP": "Arriba",
+        "INFO": "Info",
+        "TRUNKS": "Enlaces",
+        "REGISTRY": "Registro",
+        "NO_REGISTRY": "No hay registro",
+        "LOGGED_IN": "Iniciar sesión",
+        "PAUSED": "En pausa",
+        "WAITING": "Esperando",
+        "TALKING": "Hablando",
+        "DID": "¿",
+        "CALLER": "Llamador",
+        "TOTAL": "Total",
+        "ANSWERED": "Contestadas",
+        "ABANDONED": "Abandonado",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "Promedio de tiempo de espera",
+        "AVG_DURATION": "Duración AV",
+        "AVG_BILLABLE": "Avg facturable.",
+        "SOURCE": "Fuente",
+        "DESTINATION": "Destino",
+        "REJECTED": "Rechazada",
+        "FAILED": "Error",
+        "CALLED": "Llama",
+        "CONNECTED": "Conectado",
+        "NO_RATING": "Sin calificación",
+        "EDIT_VOICERECORDING": "Editar la grabación de voz",
+        "APPLICATION_NAME": "Nombre de la aplicación",
+        "ARGUMENTS": "Argumentos",
+        "ENABLED": "Activado",
+        "POWERLEVEL": "Nivel de energía",
+        "DROPRATE": "Tasa de caída",
+        "AGENTBUSYFACTOR": "Factor agente ocupado",
+        "PREDICTIVEOPTIMIZATION": "Optimización predictiva",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Porcentaje de optimización predictiva",
+        "READY": "Listo",
+        "PAUSE": "Pausa",
+        "UNPAUSE": "Reanudo",
+        "DEFAULT_PAUSE": "Pausa predeterminada",
+        "AGENTADD_QUEUE": "Agregar Agente de campaña de cola",
+        "AGENTSADD_QUEUE": "Añadir agentes a campaña de cola",
+        "ALL_TEAMS": "Todos los equipos",
+        "SELECTED_TEAMS": "Los equipos seleccionados",
+        "ALL_LISTS": "Todas las listas",
+        "SELECTED_LISTS": "Listas seleccionadas",
+        "ALL_AGENTS": "Todos los agentes",
+        "SELECTED_AGENTS": "Los agentes seleccionados",
+        "IVRCAMPAIGNS": "Campañas IVR",
+        "CONCURRENTCALLS": "Max llamadas simultáneas",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Agregar lista negra",
+        "DELETE_IVRCAMPAIGN": "Borrar campaña",
+        "EDIT_IVRCAMPAIGN": "Edite la campaña",
+        "NEW_IVRCAMPAIGN": "Nueva campaña de IVR",
+        "ADD_IVRCAMPAIGN": "Agregar campaña IVR",
+        "LISTADD_IVRCAMPAIGN": "Agregar lista",
+        "BLACKLISTADD_IVRCAMPAIGN": "Agregar lista negra",
+        "HISTORY": "Historia",
+        "FINAL": "Última",
+        "BLACKLIST": "Lista negra",
+        "PREDICTIVEINTERVAL": "Intervalo de predicción",
+        "WAITING_FOR_AGENT": "Esperando Agent",
+        "TOTAL_OFFERED": "Total ofertado",
+        "RUNNING": "Ejecutando",
+        "INTERVAL_IS_OVERTIME": "Es el intervalo de horas extraordinarias",
+        "TRUNK_IS_NOT_REACHABLE": "Tronco no es accesible",
+        "AGENTS_NOT_LOGGED": "Agente no conectado",
+        "NOT_ACTIVE": "No Activo",
+        "AVAILABLE_CONTACTS_FINISHED": "Contactos disponibles terminado",
+        "SCHEDULEDAT": "Programadas en",
+        "HOPPERBLACKS": "Lista negra de tolva",
+        "NO_HOPPERBLACK_AVAILABLE": "No hay elementos disponibles",
+        "HOPPERFINALS": "Final de tolva",
+        "NO_HOPPERFINAL_AVAILABLE": "No hay elementos disponibles",
+        "HOPPERHISTORIES": "Historia de tolva",
+        "NO_HOPPERHISTORY_AVAILABLE": "No hay elementos disponibles",
+        "DELETE_HOPPERHISTORY": "Eliminar",
+        "DELETE_HOPPERFINAL": "Eliminar",
+        "CONTACTID": "El ID de contacto",
+        "STARTTIME": "Hora de inicio",
+        "RESPONSETIME": "Tiempo de respuesta",
+        "ENDTIME": "Hora de finalización",
+        "STATUS": "El estado",
+        "HOPPERS": "La tolva",
+        "NO_HOPPER_AVAILABLE": "No hay elementos disponibles",
+        "EDIT_HOPPER": "Editar Hopper",
+        "DELETE_HOPPER": "Eliminar la tolva",
+        "AGENTTIMEOUT": "Tiempo de espera del agente",
+        "DISPOSITION": "Disposición",
+        "REDIRECT_TO_NUMBER": "Redirigir a un número",
+        "REDIRECT_TO_AGENT": "Redirigir a un agente",
+        "CLOSING": "Cerrar",
+        "MANAGED": "Managed",
+        "BACKUPTRUNK": "Tronco de backup",
+        "GLOBALINTERVAL": "Intervalo global",
+        "RESCHEDULED_CONTACTS": "Contactos reprogramada",
+        "INTERVAL_IS_NULL": "Intervalo es Null",
+        "TIMEZONE_UNKNOW": "Zona horaria desconocida",
+        "INTERVAL_IS_EMPTY": "Intervalo está vacía.",
+        "LOGOUT": "Cerrar sesión",
+        "EDIT_CAMPAIGN": "Edite la campaña",
+        "LIMITED": "Limited",
+        "IVR_CAMPAIGNS": "Campañas ivr",
+        "IS_DISACTIVED": "Es Disactived",
+        "TOTAL_MANAGED": ""
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/fa.json b/public/app/main/apps/motiondialer/i18n/fa.json
new file mode 100644 (file)
index 0000000..95d0bf6
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "حركت Dialer",
+        "QUEUECAMPAIGNS": "صف مبارزات",
+        "NAME": "نام",
+        "VOICEQUEUES": "صفهای طولانی صدا",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "BACK": "پشت",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "DELETE_VOICEDISPOSITION": "1626 صدا را حذف کنید",
+        "EDIT_VOICEDISPOSITION": "ویرایش صدا 1626",
+        "EDIT_VOICEQUEUE": "ویرایش صدا صف",
+        "DELETE_VOICEQUEUE": "صدای صف حذف می شود",
+        "MOHSOUNDS": "صدای درمانگاه بهداشتي",
+        "STRATEGY": "استراتژي",
+        "DESCRIPTION": "شرح",
+        "INTERVAL": "فاصله زماني",
+        "ADD_VOICEQUEUE": "افزودن صدا صف",
+        "NEW_QUEUECAMPAIGN": "صف مبارزه جدید",
+        "EDIT_QUEUECAMPAIGN": "ویرایش مبارزه",
+        "TEAMADD_QUEUECAMPAIGN": "تيم اضافه کنید",
+        "AGENTADD_QUEUECAMPAIGN": "عامل اضافه کنید",
+        "LISTADD_QUEUECAMPAIGN": "لیست اضافه کنید",
+        "DELETE_QUEUECAMPAIGN": "مبارزه را حذف کنید",
+        "ACTIVE": "فعال",
+        "METHOD": "روش",
+        "ADD_QUEUECAMPAIGN": "صف مبارزه را اضافه کنید",
+        "CAMPAIGN": "مبارزه",
+        "MAXCONCURRENTCALLS": "حداکثر بکاربردن تلفن",
+        "ORIGINATE": "روستانشين",
+        "ORIGINATECALLERIDNAME": "شناسه نام تماس گیرنده",
+        "ORIGINATECALLERIDNUMBER": "شناسه شماره تماس گیرنده",
+        "ORIGINATETIMEOUT": "زمان وقفه روستانشين",
+        "QUEUEOPTIONS": "گزینه های صف",
+        "QUEUETIMEOUT": "صف پایان زمان",
+        "CALLYSQUAREPROJECT": "پروژه ميدان Cally",
+        "RETRYANDFREQUENCY": "دوباره سعی کنید تنظیمات",
+        "GLOBAL": "جهانی",
+        "GLOBALMAXRETRY": "حداکثر Retries",
+        "CONGESTION": "تراکم",
+        "CONGESTIONMAXRETRY": "حداکثر Retries",
+        "CONGESTIONRETRYTIME": "دوباره سعی کنید زمان [حداقل]",
+        "BUSYMAXRETRY": "حداکثر Retries",
+        "BUSYRETRYTIME": "دوباره سعی کنید زمان [حداقل]",
+        "NOANSWER": "پاسخ نه",
+        "NOANSWERMAXRETRY": "حداکثر Retries",
+        "NOANSWERRETRYTIME": "دوباره سعی کنید زمان [حداقل]",
+        "QUEUE_PARAMS": "پارامترهای صف",
+        "ORIGINATED": "1840",
+        "MESSAGE": "ارسال پیام",
+        "DROPPED": "پائين",
+        "CREATED_AT": "ایجاد شده در",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - برنامه کاربردی سفارشی است."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "TIMEOUT_REQUIRED": "در پایان زمان لازم است.",
+            "PHONENUMBER_REQUIRED": "شماره تلفن مورد نیاز است.",
+            "CONTEXT_REQUIRED": "به محتوای مورد نیاز است.",
+            "DESTINATIONPATTERN_REQUIRED": "مقصد الگو لازم است.",
+            "FULLNAME_REQUIRED": "نام کامل لازم است.",
+            "EMAIL_REQUUIRED": "آدرس ایمیل لازم است.",
+            "EMAIL_MUST_VALID": "آدرس ایمیل باید با فرمت معتبر نوشته شده است",
+            "MAILBOX_REQUIRED": "به Mailbox لازم است.",
+            "PASSWORD_REQUIRED": "رمز عبور لازم است.",
+            "CONFIRM_NOT_MATCH": "اسم رمزهای اين بازی نمیکنم",
+            "TIMEZONE_REQUIRED": "به Timezone لازم است.",
+            "PREFIX_REQUIRED": "اين پادتن لازم است.",
+            "OPTIONS_REQUIRED": "گزینه های مورد نیاز هستند.",
+            "AFTERCALLWORKDURATION_REQUIRED": "پس از تماس، مدت زمان کار لازم است.",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "فن آوری/منابع مورد نیاز است.",
+            "PHONE_REQUIRED": "تلفن لازم است.",
+            "VALUE_REQUIRED": "مقدار مورد نیاز است.",
+            "EXTENSION_REQUIRED": "توسعه لازم است.",
+            "PRIORITY_REQUIRED": "اولويت لازم است.",
+            "GLOBALMAXRETRY_REQUIRED": "حداکثر Retries لازم است.",
+            "CONGESTIONMAXRETRY_REQUIRED": "حداکثر Retries لازم است.",
+            "CONGESTIONRETRYTIME_REQUIRED": "دوباره سعی کنید زمان لازم است.",
+            "BUSYMAXRETRY_REQUIRED": "حداکثر Retries لازم است.",
+            "BUSYRETRYTIME_REQUIRED": "دوباره سعی کنید زمان لازم است.",
+            "NOANSWERMAXRETRY_REQUIRED": "حداکثر Retries لازم است.",
+            "NOANSWERRETRYTIME_REQUIRED": "دوباره سعی کنید زمان لازم است.",
+            "QUEUETIMEOUT_REQUIRED": "صف پایان زمان لازم است.",
+            "ORIGINATETIMEOUT_REQUIRED": "روستانشين پایان زمان لازم است.",
+            "GLOBALINTERVAL_REQUIRED": "فاصله زمانی جهانی لازم است."
+        },
+        "GENERAL": "سردار",
+        "TIMEOUT": "پایان زمان مجاز",
+        "MAXLENGTH": "حداکثر طول",
+        "RETRY": "دوباره سعی کنید",
+        "WRAPUPTIME": "زمان Wrapup",
+        "WEIGHT": "وزن",
+        "JOINWHENEMPTY": "پيوستن به وقتی خالی است",
+        "LEAVEWHENEMPTY": "وقتی ترک خالی است",
+        "HELP": {
+            "ACTIVE": "فعال",
+            "TIMEOUT": "تعداد ثانیه تعیین می کند تا یکی از اعضای حلقه را نامگذاری کنید.",
+            "MAXLENGTH": "تعیین می کند، حداکثر تعداد مجاز باشد تا زمانيکه در صف انتظار. مقدار صفر است، یعنی به تعداد نامحدود از تمام ميوه ها بخور مجاز هستند در صف است.",
+            "RETRY": "تعیین می کند تعداد ثانیه صبر کنید قبل از اینکه اقدام به عضو بعدی در صف اگر در پایان زمان فرسوده است در حالي كه ارزش تلاش يك عضو حلقه صف است.",
+            "WRAPUPTIME": "تعداد ثانيه حفظ عضويت در دسترس نیست پس از اتمام صف تلفن است.",
+            "WEIGHT": "وزن يك تعريف صف است. يك صف با وزن بالاتر تعریف شده است که اولویت اول وقتی که اعضای مرتبط با صفهای طولانی چندگانه است.",
+            "JOINWHENEMPTY": "کنترل ها اعم از تماس گیرنده را در صف افزوده است وقتي كه ديگر اعضا موجود است.",
+            "LEAVEWHENEMPTY": "برای استفاده از تمام ميوه ها بخور کنترل اعم از آسیای شرقی هستند که وقتی توی صف که اعضای دیگر موجود نیست را می نامد.",
+            "ANNOUNCEFREQUENCY": "ما بايد تعريف هر چند وقت یکبار اعلام موقعیت تماس گیرنده است و/یا برآورد زمان را نگه دارید، در صف است. این تنظیم مقدار صفر را غیرفعال کنید.",
+            "MINANNOUNCEFREQUENCY": "حداقل مقدار تعیین می کند که باید زمان بگذرد خبرهاى تماس گیرنده را در صف باز شد. این است که وقتی تماس گیرنده استفاده می شود، ممکن است تغییر موضع مکرر، برای جلوگیری از تماس گیرنده با شنيدن چند سئوال را در يك مدت زمان كوتاه است.",
+            "PERIODICANNOUNCEFREQUENCY": "نشان می دهد که هر چند وقت یکبار ما بايد اعلاميه متناوب به تماس گیرنده.",
+            "ANNOUNCEPOSITIONLIMIT": "اگر شما استفاده از تعیین موقعیت را اعلام كنند يا از محدوده یا بیشتر است.",
+            "AFTERCALLWORKDURATION": "به مدت زمان مکث موزیک پس از تماس با این گزینه کار",
+            "MEMBERDELAY": "اگر می خواهید استفاده می شود که تاخير قبل از تماس گیرنده و صف عضو به يكديگر متصل شوند.",
+            "MUSICONHOLD": "آهنگ را تنظیم می کند تا به طبقه مورد استفاده خاص صف است.",
+            "ANNOUNCETOAGENT": "برای نواختن استفاده می شود اطلاعيه اى را به عنوان عامل اين است كه نوعا به دعوت ما پاسخ مثبت به او اجازه دهد که چه صف تماس گیرنده است.",
+            "RANDOMPERIODICANNOUNCE": "اگر بله، تنظیم شده، در يك اطلاعيه هاى متناوب تعریف نظم تصادفی است.",
+            "ANNOUNCEHOLDTIME": "آيا اين تعريف بايد برآورد زمان بازي را نگه دارید همراه با اطلاعيه هاى متناوب است.",
+            "ANNOUNCECALLERPOSITION": "آيا اين تعريف را در موقعیت تماس گیرنده در صف، به او اعلام شود. اگر نه، تنظیم موقعیت را اعلام خواهد كرد. اگر بله، تنظیم موقعیت تماس گیرنده، اعلام خواهد شد. اگر از مقدار تنظیم شده است، محدود خواهد شد صدای تماس گیرنده را در صف موقعيت خود را تنها در چارچوب تعريف شده، محدود است و در حد اعلام موضع است. اگر از مقدار تنظیم شده است، تماس گیرنده موقعیت او را بشنوند اگر فراتر از تعداد تعیین موقعیت و محدوده اعلام كند.",
+            "REPORTHOLDTIMEAGENT": "امکان گزارش دهی از تماس گیرنده، زمان را نگه دارید تا در صف مقدم بر عضو بردارند.",
+            "PERIODICANNOUNCE": "مجموعه ای از اعلاميه متناوب بازي باشد، بازي مي كردند و نظم را در آنها تعیین می شود.",
+            "HOLDTIMEANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"زمان\") را نگه دارید. اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "YOUARENEXTANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"اکنون شما در خط اول\"). اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "THEREAREANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (=))) وجود دارد. اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "WAITINGCALLSANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"انتظار\" می نامد). اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"جاري زمان تخمين زده شده است.\") را نگه دارید. اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "MINUTESANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"دقیقه\"). اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "MINUTEANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"لحظه\"). اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "SECONDSANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"ثانیه\"). اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "THANKYOUANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (= تشکر از شما به خاطر صبر و شكيبايي\"). اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "AFTERCALLWORK": "اگر فعال بود، عامل تنظیم می شود در مکث پس از تكميل در صف تلفن",
+            "AUTOPAUSE": "زیرنویس ها را فعال یا غیرفعال می کند/امکان می دهد به طور خودکار از خراب شدن عيوب لزديكترلن كسانتار عضو كه از پاسخ دادن به تلفن است. اگر علل این عضو فعال را در صفهای طولانی مكث، عضو است.",
+            "RINGINUSE": "به منظور اجتناب از استفاده از ارسال فراخوان برای اعضای آن است که وضعیت مورد استفاده است.",
+            "TIMEOUTRESTART": "اگر بله، تنظیم زمان وقفه nبازنشانی نمایش را عاملي براي پاسخ گويي به هر کدام از شلوغی و تراکم است که وضعیت را از شبكه دريافت كرد.",
+            "MONITORFORMAT": "فرمت فایل را تعیین می کند، به هنگام ضبط استفاده می شود. اگر از مانیتور با فرمت غیرفعال است، خواهان ثبت نخواهد شد.",
+            "CONTEXT": "به تماس گیرنده امکان می دهد تا برای خروج از صف را با فشار دادن یك DTMF رقمی است. اگر یک متن تعیین می شود و به تماس گیرنده شماره وارد شود، اين رقم در تلاش است که ادغام در متن تعیین می شود، و اعدام در dialplan ادامه خواهد داشت.",
+            "SETINTERFACEVARIABLES": "اگر روی بله، درست قبل از تماس گیرنده با بركت بودن صف عضو برخی از متغیرها تنظیم می شود(wiki)",
+            "SETQUEUEVARIABLES": "اگر روی بله، درست قبل از تماس گیرنده در صف، با بركت بودن عضو و فقط قبل از تماس گیرنده را در صف خروج از برخی متغیرها تنظیم می شود(wiki)",
+            "SETQUEUEENTRYVARIABLES": "اگر روی بله، درست قبل از تماس گیرنده با بركت بودن صف عضو برخی از متغیرها تنظیم می شود(wiki)",
+            "RECORDING": "قابلیت ضبط صدا",
+            "VOICEMAIL_CONTEXT": "متن گسترش نسبي است.",
+            "METHOD": "روش dialer هستند.",
+            "MAXCONCURRENTCALLS": "حداکثر تعداد تماس های که مصادف با 1840 dialer هستند.",
+            "ORIGINATECALLERIDNAME": "شیرهای شناسه نام تماس گیرنده",
+            "ORIGINATECALLERIDNUMBER": "شیرهای شماره شناسه تماس گیرنده",
+            "ORIGINATETIMEOUT": "بار در ثانیه برای کارکنان ديگر متعلق به تلفن اتصال برقرار كند. اگه connectin برقرار نيست، وضعيت روستانشين جواب نه خواهد بود.",
+            "QUEUETIMEOUT": "بار در ثانيه تلفن منتظر در صف قبل از پائين است.",
+            "GLOBALMAXRETRY": "حداکثر تعداد بار تماس با نام دارد که پيش از اين با توجه به اينكه بسته شد",
+            "CONGESTIONMAXRETRY": "حداکثر تعداد بار تماس ناموفق به علت تراكم جمعيت قبل از آن نام دارد که با توجه به بسته",
+            "CONGESTIONRETRYTIME": "بار در دقیقه ببندید تا پيش از رسيدن به يك تماس به علت تراکم انجام نشد.",
+            "BUSYMAXRETRY": "حداکثر تعداد بار تماس ناموفق برای سرگرم خرد\" نام دارد پيش از اين با توجه به اينكه بسته شد",
+            "BUSYRETRYTIME": "بار در دقیقه ببندید تا پيش از رسيدن به يك تماس به علت سرگرم انجام نشد.",
+            "NOANSWERMAXRETRY": "حداکثر تعداد بار تماس ناموفق را پاسخي به نام عقل است که پيش از اين با توجه به اينكه بسته شد",
+            "NOANSWERRETRYTIME": "بار در دقیقه ببندید تا پيش از رسيدن به يك تماس با هيچ دليلي براي پاسخ نشد.",
+            "POWERLEVEL": "شماره تماس برای تماس با یک عامل موجود است.",
+            "PREDICTIVEOPTIMIZATION": "عاملي كه در نگرش فيلسوفانه پذيرفت را بهبود بخشید.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "درصدی براساس نگرش عامل بهینه سازی انتخاب می شود",
+            "CONCURRENTCALLS": "حداکثر تعداد تماس های که مصادف با 1840 dialer برای اين مبارزه هستند.",
+            "PREDICTIVEINTERVAL": "فاصله زماني در دقيقه را بايد با نگرش فيلسوفانه پذيرفت محاسبه مقدار تولید برای بهینه سازی تماس های نگرش به عامل بهینه سازی",
+            "AGENTTIMEOUT": "تعداد ثانیه تعیین می کند تا حلقه ای از عمال دستگاه است.",
+            "GLOBALINTERVAL": "فاصله زماني جهاني طي اين مدت dialer اجازه تماس با تلفن است. لطفاً توجه کنید وقتی شما تغییر این رشته است. ما شما را مسئول یا مشمول عدم رعایت قوانین و مقررات دولت Autodialer."
+        },
+        "MUSICONHOLD": "موسيقي را نگه دارید",
+        "ANNOUNCETOAGENT": "عامل را اعلام می کند",
+        "ANNOUNCEMENTS": "اعلامات",
+        "ADVANCED": "پيش رفت.",
+        "ANNOUNCEFREQUENCY": "فرکانس اعلام",
+        "MINANNOUNCEFREQUENCY": "حداقل فرکانس اعلام",
+        "PERIODICANNOUNCEFREQUENCY": "اعلام فرکانس متناوب",
+        "RANDOMPERIODICANNOUNCE": "اعلام ادواري تصادفی",
+        "ANNOUNCEHOLDTIME": "اعلام زمان را نگه دارید",
+        "ANNOUNCECALLERPOSITION": "اعلام موقعیت تماس گیرنده",
+        "ANNOUNCEPOSITIONLIMIT": "اعلام موضع محدود كردن",
+        "REPORTHOLDTIMEAGENT": "گزارش عامل زمان را نگه دارید",
+        "PERIODICANNOUNCE": "اعلام متناوب",
+        "HOLDTIMEANNOUNCE": "اعلام زمان را نگه دارید",
+        "YOUARENEXTANNOUNCE": "- شما بعد از اعلام شوند.",
+        "THEREAREANNOUNCE": "برای اطلاع از وجود دارد.",
+        "WAITINGCALLSANNOUNCE": "در انتظار اعلام مى نامد",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "برآورد زمان اعلام نگهدارید",
+        "MINUTESANNOUNCE": "دقیقه اعلام می کند",
+        "MINUTEANNOUNCE": "دقیقه اعلام می کند",
+        "SECONDSANNOUNCE": "ثانیه اعلام می کند",
+        "THANKYOUANNOUNCE": "'مرسی' اعلام می کند",
+        "AUTOPAUSE": "مکث خودکار",
+        "AFTERCALLWORK": "پس از فراخوان به کار",
+        "AFTERCALLWORKDURATION": "پس از مدت زمان کار تلفن",
+        "RINGINUSE": "در استفاده از حلقه",
+        "MEMBERDELAY": "عضو تاخير",
+        "TIMEOUTRESTART": "پایان زمان راه اندازی",
+        "MONITORFORMAT": "فرمت ضبط",
+        "SETINTERFACEVARIABLES": "رابط کاربری تنظیم متغیرها",
+        "SETQUEUEVARIABLES": "توی صف متغیرها را تنظیم کنید",
+        "SETQUEUEENTRYVARIABLES": "توی صف ورودی تنظیم متغیرها",
+        "CONTEXT": "متن",
+        "SAVE": "ذخیره",
+        "SETTINGS": "تنظیمات",
+        "INBOUNDROUTES": "مسافرانی که مسیرها",
+        "PHONENUMBER": "شماره تلفن همراه",
+        "ADD_INBOUNDROUTE": "مسافرانی که مسیر اضافه کنید",
+        "EDIT_INBOUNDROUTE": "ویرایش مسافرانی که مسیر",
+        "DELETE_INBOUNDROUTE": "مسافرانی که مسیر را حذف کنید",
+        "ACTIONS": "اقدامات",
+        "OUTBOUNDROUTES": "کارکنان ديگر مسيرها",
+        "DESTINATIONPATTERN": "مقصد الگو",
+        "ADD_OUTBOUNDROUTE": "برای مسیر اضافه کنید",
+        "EDIT_OUTBOUNDROUTE": "برای ويرايش مسير",
+        "DELETE_OUTBOUNDROUTE": "برای مسیر را حذف کنید",
+        "CUTDIGITS": "عدد برش",
+        "RECORDING": "ضبط كننده",
+        "RECORDINGFORMAT": "فرمت ضبط",
+        "INTERNALROUTES": "راههاي داخلي",
+        "ADD_INTERNALROUTE": "افزودن مسیر داخلی",
+        "EDIT_INTERNALROUTE": "ویرایش مسیر داخلی",
+        "DELETE_INTERNALROUTE": "مسیر داخلی را حذف کنید",
+        "CONTEXTS": "درباری",
+        "ADD_CONTEXT": "بافت اضافه کنید",
+        "EDIT_CONTEXT": "ویرایش متن",
+        "DELETE_CONTEXT": "متن را حذف کنید",
+        "VOICEMAILS": "Voicemails",
+        "ADD_VOICEMAIL": "افزودن پست صوتی",
+        "EDIT_VOICEMAIL": "ویرایش پست صوتی",
+        "DELETE_VOICEMAIL": "حذف پست صوتی",
+        "FULLNAME": "نام کامل",
+        "EMAIL": "آدرس ایمیل",
+        "MAILBOX": "Mailbox",
+        "PASSWORD": "اسم رمز",
+        "CONFIRM_PASSWORD": "تأیید رمز ورود",
+        "TIMEZONE": "Timezone",
+        "ATTACH": "را وصل کنید",
+        "ENVELOPE": "پاكت",
+        "DELETE": "حذف",
+        "EMAILBODY": "ایمیل بدن",
+        "EMAILSUBJECT": "موضوع ایمیل",
+        "MAXSECONDS": "حداکثر چند ثانیه",
+        "MAXMESSAGES": "حداکثر پیام ها",
+        "MESSAGES": "پیام",
+        "SORT": "این نوع",
+        "ADD_MUSICONHOLD": "افزودن موسيقي را نگه دارید",
+        "MUSICONHOLDS": "۹ آهنگ دسته بندی کرده ايم را نگه دارید",
+        "EDIT_MUSICONHOLD": "ویرایش موسیقی را نگه دارید",
+        "DELETE_MUSICONHOLD": "حذف موسيقي را نگه دارید",
+        "DIRECTORY": "فهرست راهنما",
+        "AUDIOFILES": "فایل های صوتی",
+        "RECORDINGS": "عنوانی",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "وراث",
+        "OPTIONS": "گزینه ها",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "افزودن ChanSpy",
+        "EDIT_CHANSPY": "ویرایش ChanSpy",
+        "DELETE_CHANSPY": "حذف ChanSpy",
+        "AGENTS": "عوامل",
+        "TELEPHONES": "تلفن ها",
+        "QUEUES": "صفهای طولانی",
+        "QUEUE_CALLS": "صف تلفن",
+        "QUEUE_PARAMETERS": "پارامترهای صف",
+        "ABANDONED_CALLS": "تماس های رها",
+        "OUTBOUND_CALLS": "تماس های کارکنان ديگر",
+        "AGI": "AGI",
+        "DIAL": "عناوين | پل ارتباطی | پيوندها | محصولات",
+        "INTERNALDIAL": "عناوين | پل ارتباطی | پيوندها | محصولات داخلی",
+        "EXTERNALDIAL": "عناوين | پل ارتباطی | پيوندها | محصولات خارجی",
+        "RINGGROUP": "گروه حلقه",
+        "PLAYBACK": "کیفیت پخش",
+        "QUEUE": "صف",
+        "SET": "تنظیم",
+        "VOICEMAIL": "پست صوتی",
+        "GOTO": "هيزن",
+        "HANGUP": "Hangup",
+        "CUSTOM": "عرف",
+        "PROJECT": "پروژه Cally-Square",
+        "TECHNOLOGY/RESOURCE": "فن آوری/منابع",
+        "URL": "آدرس کامل",
+        "EDIT_APP": "ویرایش برنامه کاربردی",
+        "EDIT_INTERVAL": "ویرایش فاصله",
+        "DELETE_APP": "حذف برنامه کاربردی",
+        "INTERVALS": "فواصل",
+        "USER": "این کاربر",
+        "TRUNK": "تنه",
+        "PHONE": "تلفن همراه",
+        "AUDIO_FILES": "فایل های صوتی",
+        "ANNOUNCE_OVERRIDES": "تنداب اعلام",
+        "MACRO": "ماکرو",
+        "GOSUB": "GoSub",
+        "RULE": "قانون",
+        "POSITION": "موقعیت",
+        "ANSWER": "پاسخ",
+        "VALUE": "مقدار",
+        "MAILBOX@CONTEXT": "Mailbox@متن",
+        "EXTENSION": "پسوند",
+        "PRIORITY": "اولويت",
+        "HANGUP_CAUSE": "علت Hangup",
+        "OUTBOUNDDIAL": "کارکنان ديگر عناوين | پل ارتباطی | پيوندها | محصولات",
+        "CALLER_ID": "شناسه تماس گیرنده",
+        "NO_MESSAGE_AVAILABLE": "نه پیام موجود است",
+        "NO_SOUND_AVAILABLE": "نه در دسترس بنظر میرسد",
+        "VOICERECORDINGS": "عنوانی صدا",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "صدا",
+        "REALTIME": "Realtime",
+        "ID": "شناسه",
+        "VOICEMAIL_CONTEXT": "متن",
+        "NO_MOHSOUND_AVAILABLE": "هيچ موسيقي را در دسترس نگه دارید",
+        "FILE": "فایل",
+        "ADD_MOHSOUND": "افزودن موسيقي در صدا را نگه دارید",
+        "DOWNLOAD_MOHSOUND": "برای دانلود بر روی آهنگ صدا را نگه دارید",
+        "DELETE_MOHSOUND": "حذف موسیقی روی صدا را نگه دارید",
+        "UNIQUEID": "شناسه منحصر به فرد",
+        "AGENT": "عامل",
+        "TYPE": "نوع دستگاه",
+        "RATING": "درجه بندی",
+        "AUDIO": "های صوتی",
+        "DATE": "تاریخ",
+        "NEW_VOICEQUEUE": "صدای صف جدید",
+        "NEW_INBOUNDROUTE": "مسافرانی که مسیر جدید",
+        "NEW_OUTBOUNDROUTE": "برای مسیر جدید",
+        "NEW_INTERNALROUTE": "مسیر داخلی جدید",
+        "NEW_CONTEXT": "بافت جديد",
+        "NEW_VOICEMAIL": "پست صوتی جدید",
+        "NEW_MUSICONHOLD": "موسیقی جدید را نگه دارید",
+        "NEW_CHANSPY": "ChanSpy جدید",
+        "PENALTY": "مجازات اعدام",
+        "ADD_TEAM_TO_VOICEQUEUE": "افزودن صدا به صف تيم",
+        "ADD_AGENT_TO_VOICEQUEUE": "افزودن صدا به صف عامل",
+        "EDIT_DIAL": "ویرایش عناوين | پل ارتباطی | پيوندها | محصولات",
+        "EDIT_AGI": "ویرایش AGI",
+        "EDIT_INTERNALDIAL": "عناوين | پل ارتباطی | پيوندها | محصولات داخلی ویرایش",
+        "EDIT_EXTERNALDIAL": "ویرایش دگمه خارجی",
+        "EDIT_RINGGROUP": "ویرایش گروه حلقه",
+        "EDIT_PLAYBACK": "ویرایش یک مدیاپلیر",
+        "EDIT_QUEUE": "ویرایش صف",
+        "EDIT_SET": "ویرایش تنظیم",
+        "EDIT_GOTO": "ویرایش هيزن",
+        "EDIT_HANGUP": "ویرایش Hangup",
+        "EDIT_CUSTOM": "ویرایش اختصاصی",
+        "DURATION": "دوام",
+        "RECEIVED_AT": "را دريافت كرد.",
+        "YES": "بله",
+        "NO": "نه",
+        "HANGUPCAUSE_1": "1 = تعداد اعانه تخصيص داده نشده",
+        "HANGUPCAUSE_16": "16 = Normail فراخوان به پاك كردن",
+        "HANGUPCAUSE_17": "17 = مشغول کاربر",
+        "HANGUPCAUSE_18": "18 = بدون پاسخ نمی دهد (telehone کاربر دستگاه متصل نشده)",
+        "HANGUPCAUSE_21": "21 = رد تماس",
+        "HANGUPCAUSE_22": "22 = تعداد تغییر کرد",
+        "HANGUPCAUSE_27": "27 = از مقصد",
+        "HANGUPCAUSE_38": "38 = از نظم شبکه",
+        "HANGUPCAUSE_41": "41 = شكست موقت",
+        "RANDOM": "تصادفی",
+        "ALPHABETICAL": "ترتيب حروف الفبا",
+        "NO_APPS_AVAILABLE": "برنامه های کاربردی موجود نيست",
+        "DOWNLOAD_VOICERECORDING": "صداي ضبط را بارگیری کنید",
+        "DELETE_VOICERECORDING": "صداي ضبط را حذف کنید",
+        "INTERNAL": "داخلی",
+        "PHONE_STATE": "دولت تلفن همراه",
+        "PHONE_STATUS": "وضعیت تلفن همراه",
+        "REGISTERED": "ثبت نام",
+        "UNREGISTERED": "ثبت",
+        "LAGGED": "لنگان لنگان",
+        "REACHABLE": "ای قابل دسترسی نیست",
+        "UNREACHABLE": "سرگذشتهاي شگفتانگيزي درباره او شايع",
+        "UNKNOWN": "ناشناخته",
+        "NOT_INUSE": "در حال استفاده نيست.",
+        "INUSE": "مورد استفاده است",
+        "BUSY": "سرگرم",
+        "INVALID": "نامعتبر است",
+        "UNAVAILABLE": "English عناوين فونت فارسی - مسير فعلی",
+        "RINGING": "زنگ میزند",
+        "ONHOLD": "را نگه دارید",
+        "RING": "حلقه",
+        "UP": "به بالا",
+        "INFO": "اطلاعات توریستی",
+        "TRUNKS": "صندوقها",
+        "REGISTRY": "فهرست",
+        "NO_REGISTRY": "نه فهرست",
+        "LOGGED_IN": "وارد سیستم شوید",
+        "PAUSED": "يك لحظه مكث كرد",
+        "WAITING": "در انتظار",
+        "TALKING": "حرف زدن",
+        "DID": "آیا",
+        "CALLER": "تماس گیرنده",
+        "TOTAL": "کل",
+        "ANSWERED": "پاسخ داد",
+        "ABANDONED": "رها",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "میانگین زمان را نگه دارید",
+        "AVG_DURATION": "ماههاست AV",
+        "AVG_BILLABLE": "میانگین Billable",
+        "SOURCE": "منبع",
+        "DESTINATION": "تا مقصد",
+        "REJECTED": "رد",
+        "FAILED": "انجام نشد.",
+        "CALLED": "به نام",
+        "CONNECTED": "متصل شد",
+        "NO_RATING": "نه درجه بندی",
+        "EDIT_VOICERECORDING": "ویرایش صدا ضبط",
+        "APPLICATION_NAME": "نام برنامه کاربردی",
+        "ARGUMENTS": "دلايل",
+        "ENABLED": "فعال است",
+        "POWERLEVEL": "سطح قدرت",
+        "DROPRATE": "میزان افت",
+        "AGENTBUSYFACTOR": "عامل عامل مشغول",
+        "PREDICTIVEOPTIMIZATION": "بهینه سازی نگرش",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "نگرش درصد بهینه سازی",
+        "READY": "آماده شد",
+        "PAUSE": "مکث",
+        "UNPAUSE": "Unpause",
+        "DEFAULT_PAUSE": "مکثی پیش فرض",
+        "AGENTADD_QUEUE": "افزودن به صف مبارزه با عامل",
+        "AGENTSADD_QUEUE": "افزودن به صف مبارزه با عمال",
+        "ALL_TEAMS": "همه تیم ها",
+        "SELECTED_TEAMS": "تيم هاي برگزيده",
+        "ALL_LISTS": "همه فهرست",
+        "SELECTED_LISTS": "فهرست های انتخابی",
+        "ALL_AGENTS": "همه عوامل",
+        "SELECTED_AGENTS": "عوامل انتخاب شده",
+        "IVRCAMPAIGNS": "تبليغات IVR",
+        "CONCURRENTCALLS": "حداکثر بکاربردن تلفن",
+        "BLACKLISTADD_QUEUECAMPAIGN": "افزودن Blacklist",
+        "DELETE_IVRCAMPAIGN": "مبارزه را حذف کنید",
+        "EDIT_IVRCAMPAIGN": "ویرایش مبارزه",
+        "NEW_IVRCAMPAIGN": "IVR انتخاباتی جدید",
+        "ADD_IVRCAMPAIGN": "افزودن مبارزه IVR",
+        "LISTADD_IVRCAMPAIGN": "لیست اضافه کنید",
+        "BLACKLISTADD_IVRCAMPAIGN": "افزودن Blacklist",
+        "HISTORY": "تاريخ",
+        "FINAL": "آخرين",
+        "BLACKLIST": "Blacklist",
+        "PREDICTIVEINTERVAL": "نگرش فاصله",
+        "WAITING_FOR_AGENT": "انتظار عامل",
+        "TOTAL_OFFERED": "عرضه کل",
+        "RUNNING": "در حال اجرا",
+        "INTERVAL_IS_OVERTIME": "فاصله استانداردهايی است.",
+        "TRUNK_IS_NOT_REACHABLE": "تنه ای قابل دسترسی نیست است.",
+        "AGENTS_NOT_LOGGED": "وارد سیستم عامل ندارد.",
+        "NOT_ACTIVE": "فعال نيست.",
+        "AVAILABLE_CONTACTS_FINISHED": "پس از پایان تماس موجود است",
+        "SCHEDULEDAT": "طبق برنامه در",
+        "HOPPERBLACKS": "هوپر Blacklist",
+        "NO_HOPPERBLACK_AVAILABLE": "نه اقلام موجود است",
+        "HOPPERFINALS": "هوپر فینال",
+        "NO_HOPPERFINAL_AVAILABLE": "نه اقلام موجود است",
+        "HOPPERHISTORIES": "هوپر سابقه",
+        "NO_HOPPERHISTORY_AVAILABLE": "نه اقلام موجود است",
+        "DELETE_HOPPERHISTORY": "حذف",
+        "DELETE_HOPPERFINAL": "حذف",
+        "CONTACTID": "شناسه تماس بگیرید",
+        "STARTTIME": "زمان شروع",
+        "RESPONSETIME": "زمان پاسخ",
+        "ENDTIME": "زمان پایان",
+        "STATUS": "وضعیت",
+        "HOPPERS": "هوپر",
+        "NO_HOPPER_AVAILABLE": "نه اقلام موجود است",
+        "EDIT_HOPPER": "ویرایش هوپر",
+        "DELETE_HOPPER": "هوپر را حذف کنید",
+        "AGENTTIMEOUT": "عامل زمان مجاز",
+        "DISPOSITION": "1626",
+        "REDIRECT_TO_NUMBER": "Redirect به شماره",
+        "REDIRECT_TO_AGENT": "به عاملي براي Redirect",
+        "CLOSING": "بستن",
+        "MANAGED": "موفق",
+        "BACKUPTRUNK": "تهیه پشتیبان از تنه",
+        "GLOBALINTERVAL": "فاصله زمانی جهانی",
+        "RESCHEDULED_CONTACTS": "مربی آدلاید یونایتد استعفا کرد تماس ها",
+        "INTERVAL_IS_NULL": "فاصله پوچ است.",
+        "TIMEZONE_UNKNOW": "Timezone Unknow",
+        "INTERVAL_IS_EMPTY": "فاصله خالی است.",
+        "LOGOUT": "Logout",
+        "EDIT_CAMPAIGN": "ویرایش مبارزه",
+        "LIMITED": "محدود",
+        "IVR_CAMPAIGNS": "تبليغات Ivr",
+        "IS_DISACTIVED": "Disactived است.",
+        "TOTAL_MANAGED": "اداره کل"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/fi.json b/public/app/main/apps/motiondialer/i18n/fi.json
new file mode 100644 (file)
index 0000000..4db2c03
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Motion valitsimeen",
+        "QUEUECAMPAIGNS": "Jono kampanjoita",
+        "NAME": "Nimi",
+        "VOICEQUEUES": "Voice jonot",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "BACK": "Takaisin",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "DELETE_VOICEDISPOSITION": "Poistaa jatkokäsittely",
+        "EDIT_VOICEDISPOSITION": "Muokkaa Voice jatkokäsittely",
+        "EDIT_VOICEQUEUE": "Muokkaa jonoa ääni",
+        "DELETE_VOICEQUEUE": "Poistaa jonosta",
+        "MOHSOUNDS": "Moh äänet",
+        "STRATEGY": "Strategia",
+        "DESCRIPTION": "Kuvaus",
+        "INTERVAL": "Aikaväli",
+        "ADD_VOICEQUEUE": "Lisää ääni jono",
+        "NEW_QUEUECAMPAIGN": "Uusi jono kampanja",
+        "EDIT_QUEUECAMPAIGN": "Kampanjan muokkaus",
+        "TEAMADD_QUEUECAMPAIGN": "Lisää tiimi",
+        "AGENTADD_QUEUECAMPAIGN": "Lisää Agent",
+        "LISTADD_QUEUECAMPAIGN": "Lisää nimi.",
+        "DELETE_QUEUECAMPAIGN": "Poista kampanja",
+        "ACTIVE": "Aktiivinen",
+        "METHOD": "Menetelmä",
+        "ADD_QUEUECAMPAIGN": "Lisää jonoon kampanja",
+        "CAMPAIGN": "Kampanja",
+        "MAXCONCURRENTCALLS": "Max samanaikaista puhelua",
+        "ORIGINATE": "Ovat peräisin",
+        "ORIGINATECALLERIDNAME": "Soittajan nimi",
+        "ORIGINATECALLERIDNUMBER": "Soittajan tunnus",
+        "ORIGINATETIMEOUT": "Ovat peräisin aikakatkaisu",
+        "QUEUEOPTIONS": "Jonon toimintoja",
+        "QUEUETIMEOUT": "Jono aikakatkaisu",
+        "CALLYSQUAREPROJECT": "Hyödynnetä tarpeeksi yrittäjyyskasvatuksen omaisia työtapoja Square projektin",
+        "RETRYANDFREQUENCY": "Retry asetukset",
+        "GLOBAL": "Global",
+        "GLOBALMAXRETRY": "Max uudelleenyritysten enimmäismäärä",
+        "CONGESTION": "Ruuhkat",
+        "CONGESTIONMAXRETRY": "Max uudelleenyritysten enimmäismäärä",
+        "CONGESTIONRETRYTIME": "Retry [min]",
+        "BUSYMAXRETRY": "Max uudelleenyritysten enimmäismäärä",
+        "BUSYRETRYTIME": "Retry [min]",
+        "NOANSWER": "Ei vastausta",
+        "NOANSWERMAXRETRY": "Max uudelleenyritysten enimmäismäärä",
+        "NOANSWERRETRYTIME": "Retry [min]",
+        "QUEUE_PARAMS": "Jono parametrit",
+        "ORIGINATED": "Alkuperä",
+        "MESSAGE": "Viesti",
+        "DROPPED": "Pudonnut",
+        "CREATED_AT": "Luodaan",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - mukautettu sovellus."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "TIMEOUT_REQUIRED": "Aikakatkaisujakso on pakollinen",
+            "PHONENUMBER_REQUIRED": "Puhelinnumero on pakollinen",
+            "CONTEXT_REQUIRED": "Asiayhteys on pakollinen",
+            "DESTINATIONPATTERN_REQUIRED": "Kohteen kuvio on pakollinen",
+            "FULLNAME_REQUIRED": "Koko nimi on annettava",
+            "EMAIL_REQUUIRED": "Sähköpostiosoite on pakollinen",
+            "EMAIL_MUST_VALID": "Sähköposti on kirjoitettava kelvollisessa muodossa",
+            "MAILBOX_REQUIRED": "Postilaatikko on pakollinen",
+            "PASSWORD_REQUIRED": "Salasana on pakollinen",
+            "CONFIRM_NOT_MATCH": "Jos salasana ei täsmää",
+            "TIMEZONE_REQUIRED": "Aikavyöhyke tarvitaan",
+            "PREFIX_REQUIRED": "Etuliite on pakollinen",
+            "OPTIONS_REQUIRED": "Vaihtoehdot ovat tarpeen mukaan",
+            "AFTERCALLWORKDURATION_REQUIRED": "Kun Jälkikäsittelyaika kesto ei tarvita",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Tekniikka/Resurssi ei tarvita",
+            "PHONE_REQUIRED": "Puhelin ei tarvita",
+            "VALUE_REQUIRED": "Arvo on pakollinen",
+            "EXTENSION_REQUIRED": "Laajennus on pakollinen",
+            "PRIORITY_REQUIRED": "Etusijalla on pakollinen",
+            "GLOBALMAXRETRY_REQUIRED": "Max liikeartefaktin ei tarvita",
+            "CONGESTIONMAXRETRY_REQUIRED": "Max liikeartefaktin ei tarvita",
+            "CONGESTIONRETRYTIME_REQUIRED": "Retry tarvittava aika",
+            "BUSYMAXRETRY_REQUIRED": "Max liikeartefaktin ei tarvita",
+            "BUSYRETRYTIME_REQUIRED": "Retry tarvittava aika",
+            "NOANSWERMAXRETRY_REQUIRED": "Max liikeartefaktin ei tarvita",
+            "NOANSWERRETRYTIME_REQUIRED": "Retry tarvittava aika",
+            "QUEUETIMEOUT_REQUIRED": "Jono aikakatkaisu on pakollinen",
+            "ORIGINATETIMEOUT_REQUIRED": "Ovat peräisin aikakatkaisu on pakollinen",
+            "GLOBALINTERVAL_REQUIRED": "Global välejä"
+        },
+        "GENERAL": "Yleistä",
+        "TIMEOUT": "Aikakatkaisu",
+        "MAXLENGTH": "Nostovarren enimmäispituus",
+        "RETRY": "Yritä uudelleen",
+        "WRAPUPTIME": "Lähettämistietojen noutaminen aika",
+        "WEIGHT": "Paino",
+        "JOINWHENEMPTY": "Liity tyhjänä",
+        "LEAVEWHENEMPTY": "Jätä tyhjänä",
+        "HELP": {
+            "ACTIVE": "Aktiivinen",
+            "TIMEOUT": "Määrittää, kuinka monen sekunnin välein soi jäsenen laitteeseen.",
+            "MAXLENGTH": "Tämä asetus määrittää enimmäismäärän soittajat voi odottaa jonossa. Arvo nolla tarkoittaa rajoittamattoman määrän soittajat ovat sallittuja jonossa.",
+            "RETRY": "Määrittää sekuntien määrä ennen seuraavaa jäsentä jonoon, jos timeout on käytetty yritettäessä rengas on jonossa.",
+            "WRAPUPTIME": "Sekuntien määrä pitää jäsenvaltion käytettävissä jonossa purkamisen jälkeen.",
+            "WEIGHT": "Määrittää painon jonoon. Jono on suurempi paino määritetään saavat ensi sijassa kun jäsenet liittyvät useita jonoja.",
+            "JOINWHENEMPTY": "Ohjaa avataanko soittajan lisätään jonoon, kun jäsenet ovat käytettävissä.",
+            "LEAVEWHENEMPTY": "Tämän avulla, onko soittajat potkittiin ulos jonossa, kun parlamentin jäsenet eivät ole enää saatavilla ottaa puheluita.",
+            "ANNOUNCEFREQUENCY": "Määrittää, kuinka usein meidän on tunnustettava soittajan ja/tai arvioitu jonotusaikaan. Arvo on nolla, joka poistetaan käytöstä.",
+            "MINANNOUNCEFREQUENCY": "Asetus määrittää ajan, jonka on läpäistävä ennen tiedotamme soittajan jonon uudelleen. Tätä toimintoa käytetään, kun soittajan asento saattaa muuttua usein, jotta soittaja kuulee useita päivityksiä lyhyessä ajassa.",
+            "PERIODICANNOUNCEFREQUENCY": "Osoittaa, kuinka usein meidän on tehtävä määräajoin nauhoitettuja kuulutuksia soittajalle.",
+            "ANNOUNCEPOSITIONLIMIT": "Jos olet määrittänyt ilmoittaa-asemansa joko rajoittaa tai enemmän.",
+            "AFTERCALLWORKDURATION": "Kesto, kun tauko laukaissut Jälkikäsittelyaika vaihtoehto",
+            "MEMBERDELAY": "Jos haluamme, että on olemassa ennen soittajan jono parlamentin jäseneen toisiinsa.",
+            "MUSICONHOLD": "Asettaa musiikin luokka voidaan käyttää tiettyyn jonoon.",
+            "ANNOUNCETOAGENT": "Käyttää pelaamiseen ilmoittaa, että edustajan vastannut tyypillisesti hänelle mitä jono soittajan tulee.",
+            "RANDOMPERIODICANNOUNCE": "Jos arvoksi määritetään Kyllä, määritelty säännöllinen kuulutukset satunnaisessa järjestyksessä.",
+            "ANNOUNCEHOLDTIME": "Määrittää, onko arvioitu pitoaika tulee pelata yhdessä määräajoin kuulutuksiin.",
+            "ANNOUNCECALLERPOSITION": "Määrittää, onko soittajan jonon täytyy ilmoittaa hänelle. Jos arvoksi määritetään Ei, ei koskaan julkistettu. Jos arvoksi määritetään Kyllä, soittajan sijainti on aina ilmoittanut. Jos arvoksi on määritetty raja, Soittaja kuulee hänen sijaintinsa jonossa vain, jos se on enintään määritetty ilmoittaa asentoa. Jos arvoksi annetaan enemmän, Soittaja kuulee hänen kantaansa, jos se ei ole numero määritetään ilmoittavan asentoa.",
+            "REPORTHOLDTIMEAGENT": "Mahdollistaa raportointi kutsujan pidätysajan jonoon jäsenvaltioiden ennen verkkosiltausta käyttämällä.",
+            "PERIODICANNOUNCE": "Joukko säännölliset ilmoitukset, oli siinä järjestyksessä kuin ne on määritetty.",
+            "HOLDTIMEANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"Pitoaika\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "YOUARENEXTANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"nyt ensimmäisten joukossa\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "THEREAREANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"on\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "WAITINGCALLSANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"Puhelut odottamassa). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"Nykyinen arvioitu pidätysaika on\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "MINUTESANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"min\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "MINUTEANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"min\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "SECONDSANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"s\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "THANKYOUANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"Kiitos kärsivällisyydestäsi\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "AFTERCALLWORK": "Jos aktiivinen, edustaja vaikuttavat tauon jälkeen puhelu loppuun jono",
+            "AUTOPAUSE": "Voit ottaa käyttöön tai poistaa käytöstä automaattisen keskeyttämällä sellaisia jäseniä, jotka eivät vastaa puheluun. Jos aktiivinen aiheuttaa kyseisen voi pysäyttää kaikki jonot hän kuuluu.",
+            "RINGINUSE": "Jotta lähettämässä puheluja jäsentä, joiden tila on käytössä.",
+            "TIMEOUTRESTART": "Jos arvoksi määritetään Kyllä, määrittää aikakatkaisun uudelleen, kun edustaja vastaa huomioidaanko on varattu tai ylikuormituksen tila on vastaanotettu kanavasta.",
+            "MONITORFORMAT": "Määrittää tiedoston muoto, jota käytetään tallennukseen. Jos monitorin näkymä on aktiivinen, vaatii ei tallenneta.",
+            "CONTEXT": "Mahdollistaa soittaja voi poistua jonon painamalla yhtä DTMF-numeroon. Jos yhteydessä on määritetty ja soittajan perussäädön, numero yrittää kohdistaa yhteydessä määritelty ja dialplan suorittaminen jatkuu.",
+            "SETINTERFACEVARIABLES": "Jos arvoksi määritetään Kyllä, juuri ennen kuin soittaja ei yhdistetä jonoon asettaneen muuttujia tulee(katso wiki)",
+            "SETQUEUEVARIABLES": "Jos arvoksi määritetään Kyllä, juuri ennen kuin soittaja ei yhdistetä jonoon ja juuri ennen poistumista soittajan jono joitakin tekijöitä tulee(katso wiki)",
+            "SETQUEUEENTRYVARIABLES": "Jos arvoksi määritetään Kyllä, juuri ennen kuin soittaja ei yhdistetä jonoon asettaneen muuttujia tulee(katso wiki)",
+            "RECORDING": "Jotta puheluiden nauhoitus",
+            "VOICEMAIL_CONTEXT": "Osana suhteellinen jatke.",
+            "METHOD": "Outbound Dialer -menetelmällä.",
+            "MAXCONCURRENTCALLS": "Maksimimäärä samanaikaisia puheluja, jotka on varmasti peräisin outbound dialer.",
+            "ORIGINATECALLERIDNAME": "Lähtevät soittajan nimi",
+            "ORIGINATECALLERIDNUMBER": "Lähtevän puhelun soittajan numero",
+            "ORIGINATETIMEOUT": "Aika sekunteina lähtötuotteisiin lähtevä puhelu yhteyden muodostaminen. Jos liittimellä ei muodostu, ovat peräisin tilaksi tulee ei ole vastausta.",
+            "QUEUETIMEOUT": "Aika sekunteina, jonka odottaa jonossa ennen kuin se putoaa",
+            "GLOBALMAXRETRY": "Enimmäiskertamäärään yhteyshenkilö kutsutaan ennen kuin harkitset äänestyksen päättyneeksi",
+            "CONGESTIONMAXRETRY": "Enimmäiskertamäärään epäonnistunut ota ylikuormituksen vuoksi kutsutaan ennen kuin harkitset äänestyksen päättyneeksi",
+            "CONGESTIONRETRYTIME": "Aika minuutteina, ennen kuin yrität päästä kosketuksiin epäonnistui ylikuormituksen vuoksi",
+            "BUSYMAXRETRY": "Enimmäiskertamäärään epäonnistunut ota kiireisille syy on nimeltään ennen kuin harkitset äänestyksen päättyneeksi",
+            "BUSYRETRYTIME": "Aika minuutteina, ennen kuin yrität päästä kosketuksiin epäonnistui kiireisille syy",
+            "NOANSWERMAXRETRY": "Enimmäiskertamäärään epäonnistunut yhteyshenkilö vastausta tähän on syynä kutsutaan sitä kiinni",
+            "NOANSWERRETRYTIME": "Aika minuutteina, ennen kuin yrität päästä kosketuksiin epäonnistunut vastausta syy",
+            "POWERLEVEL": "Määrän yhteyshenkilöitä, yksi käytettävissä oleva agentti.",
+            "PREDICTIVEOPTIMIZATION": "Tekijänä, joka optimoi, ennustavan algoritmin avulla.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Prosenttiosuus perustuvat valittuun ennustavan optimointi kerroin",
+            "CONCURRENTCALLS": "Maksimimäärä samanaikaisia puheluja, jotka on varmasti peräisin Outbound Dialer -kampanjassa.",
+            "PREDICTIVEINTERVAL": "Aikaväli minuutteina käsitellään ennustava algoritmi laskee määrän puheluja synnyttää optimoimisessa ennustavan optimointi kerroin",
+            "AGENTTIMEOUT": "Määrittää, kuinka monen sekunnin välein soi edustajan laitteeseen.",
+            "GLOBALINTERVAL": "Global aikaväli, jonka aikana valitsimeen voi soittaa yhteyshenkilöille. Ota tiiviisti tätä kenttää muokataan. Emme ole vastuussa minkäänlaisista vahingoista tai, jos käyttäjä ei noudata Autodialer valtion lakeja ja säädöksiä."
+        },
+        "MUSICONHOLD": "Musiikkia puhelun ollessa pidossa",
+        "ANNOUNCETOAGENT": "Ilmoittaa Agent",
+        "ANNOUNCEMENTS": "Ilmoitukset",
+        "ADVANCED": "Tarkennettu",
+        "ANNOUNCEFREQUENCY": "Ilmoita taajuus",
+        "MINANNOUNCEFREQUENCY": "Pienin ilmoittaa taajuus",
+        "PERIODICANNOUNCEFREQUENCY": "Säännölliset ilmoittaa taajuus",
+        "RANDOMPERIODICANNOUNCE": "Satunnainen säännölliset ilmoittaa",
+        "ANNOUNCEHOLDTIME": "Ilmoita pidätysajan",
+        "ANNOUNCECALLERPOSITION": "Ilmoita soittajalle asento",
+        "ANNOUNCEPOSITIONLIMIT": "Ilmoita asennon",
+        "REPORTHOLDTIMEAGENT": "Mietintö Agent pidätysajan",
+        "PERIODICANNOUNCE": "Säännölliset ilmoittaa",
+        "HOLDTIMEANNOUNCE": "Käsittelyajan ilmoittaa",
+        "YOUARENEXTANNOUNCE": "\"Olet seuraava ilmoittaa",
+        "THEREAREANNOUNCE": "\"On\" ilmoittaa",
+        "WAITINGCALLSANNOUNCE": "Odottavien puheluiden ilmoittaa",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Arvioitu Pidätysajan ilmoittaa",
+        "MINUTESANNOUNCE": "Min ilmoittaa",
+        "MINUTEANNOUNCE": "Min ilmoittaa",
+        "SECONDSANNOUNCE": "S ilmoittaa",
+        "THANKYOUANNOUNCE": "Kiitos kaikille ilmoittaa",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Jälkikäsittelyaika",
+        "AFTERCALLWORKDURATION": "Jälkikäsittelyaika kesto",
+        "RINGINUSE": "Rengas on käytössä",
+        "MEMBERDELAY": "Jäsenvaltioiden viive",
+        "TIMEOUTRESTART": "Aikaylitys uudelleenkäynnistys",
+        "MONITORFORMAT": "Tallennusmuoto",
+        "SETINTERFACEVARIABLES": "Säädä käyttöliittymän muuttujat",
+        "SETQUEUEVARIABLES": "Määrittää jonon muuttujat",
+        "SETQUEUEENTRYVARIABLES": "Määrittää jonon muuttujien syöttö",
+        "CONTEXT": "Yhteydessä",
+        "SAVE": "Tallenna",
+        "SETTINGS": "Asetusten määrittäminen",
+        "INBOUNDROUTES": "Lähtevät reitit",
+        "PHONENUMBER": "Puhelinnumero",
+        "ADD_INBOUNDROUTE": "Lisää lähtevät reitti",
+        "EDIT_INBOUNDROUTE": "Muokkaa reitin saapuva",
+        "DELETE_INBOUNDROUTE": "Poista lähtevät reitti",
+        "ACTIONS": "Toimet",
+        "OUTBOUNDROUTES": "Lähtevä reitit",
+        "DESTINATIONPATTERN": "Kohteen kuvio",
+        "ADD_OUTBOUNDROUTE": "Lisää lähtevä reitti",
+        "EDIT_OUTBOUNDROUTE": "Muokkaa lähtevä reitti",
+        "DELETE_OUTBOUNDROUTE": "Poista lähtevä reitti",
+        "CUTDIGITS": "Leikkaa numeroa",
+        "RECORDING": "Tallennus",
+        "RECORDINGFORMAT": "Tallennusmuoto",
+        "INTERNALROUTES": "Kotimaan reitit",
+        "ADD_INTERNALROUTE": "Lisää sisäisiä reitti",
+        "EDIT_INTERNALROUTE": "Muokkaa reitin sisäisen",
+        "DELETE_INTERNALROUTE": "Poista sisäinen reitti",
+        "CONTEXTS": "Potilaslinkin vaihtaminen",
+        "ADD_CONTEXT": "Lisää yhteydessä",
+        "EDIT_CONTEXT": "Muokkaa yhteydessä",
+        "DELETE_CONTEXT": "Poista yhteydessä",
+        "VOICEMAILS": "Vastaajaviestit",
+        "ADD_VOICEMAIL": "Lisää vastaajaan",
+        "EDIT_VOICEMAIL": "Muokkaa vastaajaan",
+        "DELETE_VOICEMAIL": "Poista vastaajaviesti",
+        "FULLNAME": "Täydellinen nimi",
+        "EMAIL": "Sähköposti",
+        "MAILBOX": "Postilaatikkoon",
+        "PASSWORD": "Salasana",
+        "CONFIRM_PASSWORD": "Vahvista salasana",
+        "TIMEZONE": "Aikavyöhyke",
+        "ATTACH": "Kiinnitä",
+        "ENVELOPE": "Kirjekuori",
+        "DELETE": "Poista",
+        "EMAILBODY": "Sähköposti korissa",
+        "EMAILSUBJECT": "Email Subject",
+        "MAXSECONDS": "Enimmäisarvon sekunteina",
+        "MAXMESSAGES": "Max viestit",
+        "MESSAGES": "Viestit",
+        "SORT": "Lajittelujärjestys",
+        "ADD_MUSICONHOLD": "Lisää musiikkia puhelun ollessa pidossa",
+        "MUSICONHOLDS": "Novellin tekstikatkelmia pitoon",
+        "EDIT_MUSICONHOLD": "Muokkaa musiikkia puhelun ollessa pidossa",
+        "DELETE_MUSICONHOLD": "Poista musiikkia puhelun ollessa pidossa",
+        "DIRECTORY": "Hakemisto",
+        "AUDIOFILES": "Äänitiedostot",
+        "RECORDINGS": "Tallenteet",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Etuliite",
+        "OPTIONS": "Vaihtoehdot",
+        "AUTH": "Valt.",
+        "ADD_CHANSPY": "Lisää ChanSpy",
+        "EDIT_CHANSPY": "Muokkaa ChanSpy",
+        "DELETE_CHANSPY": "Poista ChanSpy",
+        "AGENTS": "Aineet",
+        "TELEPHONES": "Puhelimet",
+        "QUEUES": "Jonot",
+        "QUEUE_CALLS": "Puhelut jonossa",
+        "QUEUE_PARAMETERS": "Jono parametrit",
+        "ABANDONED_CALLS": "Hylätyt puhelut",
+        "OUTBOUND_CALLS": "Lähtevien puheluiden",
+        "AGI": "Yhteyttä opastuksen AGI",
+        "DIAL": "Valitsin",
+        "INTERNALDIAL": "Sisäinen valitsin",
+        "EXTERNALDIAL": "Ulkoinen valitsin",
+        "RINGGROUP": "Rengas ryhmä",
+        "PLAYBACK": "Toisto",
+        "QUEUE": "Jono",
+        "SET": "Aseta",
+        "VOICEMAIL": "Vastaaja",
+        "GOTO": "Siirry tietoturvakeskukseen",
+        "HANGUP": "Kirjautumispyynnön",
+        "CUSTOM": "Mukautettu",
+        "PROJECT": "Projektin cally-square",
+        "TECHNOLOGY/RESOURCE": "Tekniikka/Resurssi",
+        "URL": "URL",
+        "EDIT_APP": "Sovellus",
+        "EDIT_INTERVAL": "Muokkaa aikaväli",
+        "DELETE_APP": "Poista sovellus",
+        "INTERVALS": "Huoltovälit",
+        "USER": "Käyttäjä",
+        "TRUNK": "Trunk",
+        "PHONE": "Puhelin",
+        "AUDIO_FILES": "Äänitiedostot",
+        "ANNOUNCE_OVERRIDES": "Ilmoita ohittaa",
+        "MACRO": "Makro",
+        "GOSUB": "GoSub",
+        "RULE": "Sääntö",
+        "POSITION": "Asento",
+        "ANSWER": "Vastaus",
+        "VALUE": "Arvo",
+        "MAILBOX@CONTEXT": "Postilaatikko@yhteydessä",
+        "EXTENSION": "Laajennus",
+        "PRIORITY": "Prioriteetti",
+        "HANGUP_CAUSE": "Kirjautumispyynnön syy",
+        "OUTBOUNDDIAL": "Lähtevä valitsin",
+        "CALLER_ID": "Soittajan tunnus",
+        "NO_MESSAGE_AVAILABLE": "Ei ilmoituksia",
+        "NO_SOUND_AVAILABLE": "Ei käytettävissä",
+        "VOICERECORDINGS": "Äänitallennus",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Ääni",
+        "REALTIME": "Tosiaikainen",
+        "ID": "Tunnus",
+        "VOICEMAIL_CONTEXT": "Yhteydessä",
+        "NO_MOHSOUND_AVAILABLE": "Musiikkia ei pitoon käytettävissä",
+        "FILE": "Tiedosto",
+        "ADD_MOHSOUND": "Lisää musiikkia puhelun ollessa pidossa ääni",
+        "DOWNLOAD_MOHSOUND": "Lataa musiikkia pitoon ääni",
+        "DELETE_MOHSOUND": "Poista musiikkia puhelun ollessa pidossa ääni",
+        "UNIQUEID": "Yksilöivä tunnus",
+        "AGENT": "Agent",
+        "TYPE": "Tyyppi",
+        "RATING": "Luokittelu",
+        "AUDIO": "Äänen",
+        "DATE": "Päivämäärä",
+        "NEW_VOICEQUEUE": "Uudet vastaajaviestit jono",
+        "NEW_INBOUNDROUTE": "Uusi saapuva reitti",
+        "NEW_OUTBOUNDROUTE": "Uusi lähtevä reitti",
+        "NEW_INTERNALROUTE": "Uusi sisäinen reitti",
+        "NEW_CONTEXT": "Uudessa tilanteessa",
+        "NEW_VOICEMAIL": "Uudet vastaajaviestit",
+        "NEW_MUSICONHOLD": "Uutta musiikkia pitoon",
+        "NEW_CHANSPY": "Uusi ChanSpy",
+        "PENALTY": "Kuolemanrangaistuksen poistaminen",
+        "ADD_TEAM_TO_VOICEQUEUE": "Lisää tallisi jonon ääni",
+        "ADD_AGENT_TO_VOICEQUEUE": "Lisää agentin Voice jono",
+        "EDIT_DIAL": "Muokkaa valitsin",
+        "EDIT_AGI": "Muokkaa yhteyttä opastuksen AGI",
+        "EDIT_INTERNALDIAL": "Muokkaa sisäisen puhelinnumeron",
+        "EDIT_EXTERNALDIAL": "Muokata ulkoisten valitsin",
+        "EDIT_RINGGROUP": "Muokkaa rengas ryhmä",
+        "EDIT_PLAYBACK": "Toisto",
+        "EDIT_QUEUE": "Muokkaa jonoa",
+        "EDIT_SET": "Aseta muokkaaminen",
+        "EDIT_GOTO": "Muokkaa GoTo",
+        "EDIT_HANGUP": "Muokkaa kirjautumispyynnön",
+        "EDIT_CUSTOM": "Muokkaa mukautettua",
+        "DURATION": "Kesto",
+        "RECEIVED_AT": "Vastaanotettu",
+        "YES": "Kyllä",
+        "NO": "N:o",
+        "HANGUPCAUSE_1": "1 = Jakamattomien numero",
+        "HANGUPCAUSE_16": "16 = Normail puhelun poisto",
+        "HANGUPCAUSE_17": "17 = Käyttäjän varattu",
+        "HANGUPCAUSE_18": "18 = ei vastaa (telehone laitetta ei ole liitetty)",
+        "HANGUPCAUSE_21": "21 = puhelun hylkääminen",
+        "HANGUPCAUSE_22": "22 = numero muuttunut",
+        "HANGUPCAUSE_27": "27 = kohde on epäkunnossa.",
+        "HANGUPCAUSE_38": "38 = verkosto ei käytössä",
+        "HANGUPCAUSE_41": "41 = tilapäinen vika",
+        "RANDOM": "Satunnainen",
+        "ALPHABETICAL": "Aakkosellinen",
+        "NO_APPS_AVAILABLE": "Ei käytettävissä olevat sovellukset",
+        "DOWNLOAD_VOICERECORDING": "Lataa äänitallennus",
+        "DELETE_VOICERECORDING": "Poista äänitallennus",
+        "INTERNAL": "Sisäinen",
+        "PHONE_STATE": "Puhelimen tila",
+        "PHONE_STATUS": "Puhelimen tila",
+        "REGISTERED": "Rekisteröity",
+        "UNREGISTERED": "Rekisteröimätön",
+        "LAGGED": "Jäänyt",
+        "REACHABLE": "Tavoitettavissa",
+        "UNREACHABLE": "Ei saada yhteyttä",
+        "UNKNOWN": "Tuntematon",
+        "NOT_INUSE": "Ne eivät ole käytössä",
+        "INUSE": "Käytössä",
+        "BUSY": "Varattu",
+        "INVALID": "Virheellinen",
+        "UNAVAILABLE": "Ei saatavissa",
+        "RINGING": "Soiva",
+        "ONHOLD": "Pitoon",
+        "RING": "Rengas",
+        "UP": "Ylös",
+        "INFO": "Info",
+        "TRUNKS": "Arkut",
+        "REGISTRY": "Rekisteri",
+        "NO_REGISTRY": "Rekisteri ei ole",
+        "LOGGED_IN": "Kirjautuneena",
+        "PAUSED": "Keskeytetty",
+        "WAITING": "Odottelua",
+        "TALKING": "Puhumme",
+        "DID": "Ei",
+        "CALLER": "Soittaja",
+        "TOTAL": "Yhteensä",
+        "ANSWERED": "Vastattu",
+        "ABANDONED": "Hylätty",
+        "UNMANAGED": "Hallittu",
+        "AVG_HOLD_TIME": "Keskim. pidätysajan",
+        "AVG_DURATION": "Av kesto",
+        "AVG_BILLABLE": "Välitysyritys avg",
+        "SOURCE": "Lähde",
+        "DESTINATION": "Kohde",
+        "REJECTED": "Hylätty",
+        "FAILED": "Epäonnistui",
+        "CALLED": "Nimeltään",
+        "CONNECTED": "Kytketty",
+        "NO_RATING": "Mitään luokitus",
+        "EDIT_VOICERECORDING": "Muokkaa äänitallennus",
+        "APPLICATION_NAME": "Sovelluksen nimi",
+        "ARGUMENTS": "Perustelut",
+        "ENABLED": "Käytössä",
+        "POWERLEVEL": "Tehon taso",
+        "DROPRATE": "Laskunopeus",
+        "AGENTBUSYFACTOR": "Agentti varattu kerroin",
+        "PREDICTIVEOPTIMIZATION": "Ennustava optimointi",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Ennustava optimointi prosenttiosuus",
+        "READY": "Valmis",
+        "PAUSE": "Tauko",
+        "UNPAUSE": "Unpause",
+        "DEFAULT_PAUSE": "Oletusarvoisen tauon",
+        "AGENTADD_QUEUE": "Lisää Edustajan jonoon kampanja",
+        "AGENTSADD_QUEUE": "Lisää agentteja jono kampanja",
+        "ALL_TEAMS": "Kaikki joukkueet",
+        "SELECTED_TEAMS": "Valittu työryhmille",
+        "ALL_LISTS": "Kaikki luettelot",
+        "SELECTED_LISTS": "Valittu luettelo",
+        "ALL_AGENTS": "Kaikki toimijat",
+        "SELECTED_AGENTS": "Valitut edustajat",
+        "IVRCAMPAIGNS": "IVR-kampanjat",
+        "CONCURRENTCALLS": "Max samanaikaista puhelua",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Lisää Blacklist",
+        "DELETE_IVRCAMPAIGN": "Poista kampanja",
+        "EDIT_IVRCAMPAIGN": "Kampanjan muokkaus",
+        "NEW_IVRCAMPAIGN": "Uusi IVR-kampanja",
+        "ADD_IVRCAMPAIGN": "Lisää IVR-kampanja",
+        "LISTADD_IVRCAMPAIGN": "Lisää nimi.",
+        "BLACKLISTADD_IVRCAMPAIGN": "Lisää Blacklist",
+        "HISTORY": "Historia",
+        "FINAL": "Lopullinen",
+        "BLACKLIST": "Musta lista",
+        "PREDICTIVEINTERVAL": "Ennustava aikaväli",
+        "WAITING_FOR_AGENT": "Odota Agent",
+        "TOTAL_OFFERED": "Tarjotaan yhteensä",
+        "RUNNING": "Käynnissä",
+        "INTERVAL_IS_OVERTIME": "Aikaväli on ylityö",
+        "TRUNK_IS_NOT_REACHABLE": "Tavaratila ei saada yhteyttä",
+        "AGENTS_NOT_LOGGED": "Edustaja ei ole kirjautunut sisään",
+        "NOT_ACTIVE": "Ei aktiivinen",
+        "AVAILABLE_CONTACTS_FINISHED": "Käytettävissä olevat yhteyshenkilöt päättynyt",
+        "SCHEDULEDAT": "Ajoitusajankohta",
+        "HOPPERBLACKS": "Kahvipapusäiliön Blacklist",
+        "NO_HOPPERBLACK_AVAILABLE": "Kohteita ei ole käytettävissä",
+        "HOPPERFINALS": "Kahvipapusäiliön lopullinen",
+        "NO_HOPPERFINAL_AVAILABLE": "Kohteita ei ole käytettävissä",
+        "HOPPERHISTORIES": "Kahvipapusäiliön historia",
+        "NO_HOPPERHISTORY_AVAILABLE": "Kohteita ei ole käytettävissä",
+        "DELETE_HOPPERHISTORY": "Poista",
+        "DELETE_HOPPERFINAL": "Poista",
+        "CONTACTID": "Contact ID",
+        "STARTTIME": "Aloitusaika",
+        "RESPONSETIME": "Vasteaika",
+        "ENDTIME": "Kerran kuukaudessa Kaksi kertaa kuukaudessa Kolme kertaa kuukaudessa",
+        "STATUS": "Tila",
+        "HOPPERS": "Kahvipapusäiliön",
+        "NO_HOPPER_AVAILABLE": "Kohteita ei ole käytettävissä",
+        "EDIT_HOPPER": "Muokkaa Hopper",
+        "DELETE_HOPPER": "Poista Hopper",
+        "AGENTTIMEOUT": "Agentti aikakatkaisu",
+        "DISPOSITION": "Jatkokäsittely",
+        "REDIRECT_TO_NUMBER": "Uudelleenohjaus numero",
+        "REDIRECT_TO_AGENT": "Uudelleenohjaus edustaja",
+        "CLOSING": "Sulkeminen",
+        "MANAGED": "Hallittu",
+        "BACKUPTRUNK": "Backup tavaratilaan",
+        "GLOBALINTERVAL": "Global aikaväli",
+        "RESCHEDULED_CONTACTS": "Uudelleenajoitetut yhteystiedot",
+        "INTERVAL_IS_NULL": "Väli on tyhjä",
+        "TIMEZONE_UNKNOW": "Aikavyöhyke Unknow",
+        "INTERVAL_IS_EMPTY": "Väli on tyhjä",
+        "LOGOUT": "Kirjaudu ulos",
+        "EDIT_CAMPAIGN": "Kampanjan muokkaus",
+        "LIMITED": "Rajoitettu",
+        "IVR_CAMPAIGNS": "Ivr-kampanjat",
+        "IS_DISACTIVED": "On Disactived",
+        "TOTAL_MANAGED": "Total onnistui"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/fr.json b/public/app/main/apps/motiondialer/i18n/fr.json
new file mode 100644 (file)
index 0000000..e0c40cb
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Motion Bull",
+        "QUEUECAMPAIGNS": "Des campagnes d'attente",
+        "NAME": "Nom",
+        "VOICEQUEUES": "Les files d'attente de la voix",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "BACK": "Retour",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "DELETE_VOICEDISPOSITION": "Supprimer la disposition de la voix",
+        "EDIT_VOICEDISPOSITION": "Modifier la disposition de la voix",
+        "EDIT_VOICEQUEUE": "File d'attente voix modifier",
+        "DELETE_VOICEQUEUE": "Supprimer la file d'attente de la voix",
+        "MOHSOUNDS": "Sons Moh",
+        "STRATEGY": "Stratégie",
+        "DESCRIPTION": "Description",
+        "INTERVAL": "L'intervalle de temps",
+        "ADD_VOICEQUEUE": "File d'attente voix Ajouter",
+        "NEW_QUEUECAMPAIGN": "Nouvelle campagne d'attente",
+        "EDIT_QUEUECAMPAIGN": "Campagne Modifier",
+        "TEAMADD_QUEUECAMPAIGN": "Ajouter l'Association",
+        "AGENTADD_QUEUECAMPAIGN": "Ajouter l'Agent",
+        "LISTADD_QUEUECAMPAIGN": "Ajout d'une liste",
+        "DELETE_QUEUECAMPAIGN": "Supprimer la campagne",
+        "ACTIVE": "Actif",
+        "METHOD": "Méthode",
+        "ADD_QUEUECAMPAIGN": "Campagne Ajouter une file d'attente",
+        "CAMPAIGN": "Campagne électorale",
+        "MAXCONCURRENTCALLS": "Appels simultanés maxi",
+        "ORIGINATE": "Originaire",
+        "ORIGINATECALLERIDNAME": "Nom de l'ID de l'appelant",
+        "ORIGINATECALLERIDNUMBER": "Numéro ID de l'appelant",
+        "ORIGINATETIMEOUT": "Délai d'origine",
+        "QUEUEOPTIONS": "Options d'attente",
+        "QUEUETIMEOUT": "Délai d'attente",
+        "CALLYSQUAREPROJECT": "Quement Square",
+        "RETRYANDFREQUENCY": "Les paramètres de nouvel essai",
+        "GLOBAL": "Global",
+        "GLOBALMAXRETRY": "Max Retries",
+        "CONGESTION": "La congestion",
+        "CONGESTIONMAXRETRY": "Max Retries",
+        "CONGESTIONRETRYTIME": "Période de tentatives [min]",
+        "BUSYMAXRETRY": "Max Retries",
+        "BUSYRETRYTIME": "Période de tentatives [min]",
+        "NOANSWER": "Pas de réponse",
+        "NOANSWERMAXRETRY": "Max Retries",
+        "NOANSWERRETRYTIME": "Période de tentatives [min]",
+        "QUEUE_PARAMS": "Les paramètres de file d'attente",
+        "ORIGINATED": "Est issue",
+        "MESSAGE": "Message",
+        "DROPPED": "Abandonné",
+        "CREATED_AT": "Créé à",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - application sur mesure."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "TIMEOUT_REQUIRED": "Le délai est nécessaire",
+            "PHONENUMBER_REQUIRED": "Le numéro de téléphone est requis",
+            "CONTEXT_REQUIRED": "Le contexte est requis",
+            "DESTINATIONPATTERN_REQUIRED": "La destination est nécessaire",
+            "FULLNAME_REQUIRED": "Le nom complet est requis",
+            "EMAIL_REQUUIRED": "L'email est requis",
+            "EMAIL_MUST_VALID": "L'e-mail doit être écrit dans un format valide",
+            "MAILBOX_REQUIRED": "La boîte aux lettres est nécessaire",
+            "PASSWORD_REQUIRED": "Le mot de passe est requis",
+            "CONFIRM_NOT_MATCH": "Les mots de passe ne correspondent pas",
+            "TIMEZONE_REQUIRED": "Le fuseau horaire est requis",
+            "PREFIX_REQUIRED": "Le préfixe est requis",
+            "OPTIONS_REQUIRED": "Les options sont requises",
+            "AFTERCALLWORKDURATION_REQUIRED": "La durée de travail après appel est requis",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "La technologie/ressource est nécessaire",
+            "PHONE_REQUIRED": "Le téléphone est requis",
+            "VALUE_REQUIRED": "Cette valeur est requise",
+            "EXTENSION_REQUIRED": "L'extension est requis",
+            "PRIORITY_REQUIRED": "La priorité est requise",
+            "GLOBALMAXRETRY_REQUIRED": "Max Retries est requis",
+            "CONGESTIONMAXRETRY_REQUIRED": "Max Retries est requis",
+            "CONGESTIONRETRYTIME_REQUIRED": "Période de tentatives est requis",
+            "BUSYMAXRETRY_REQUIRED": "Max Retries est requis",
+            "BUSYRETRYTIME_REQUIRED": "Période de tentatives est requis",
+            "NOANSWERMAXRETRY_REQUIRED": "Max Retries est requis",
+            "NOANSWERRETRYTIME_REQUIRED": "Période de tentatives est requis",
+            "QUEUETIMEOUT_REQUIRED": "Délai d'attente est nécessaire",
+            "ORIGINATETIMEOUT_REQUIRED": "Délai d'origine est requis",
+            "GLOBALINTERVAL_REQUIRED": "Les intervalles sont nécessaires"
+        },
+        "GENERAL": "Général",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Longueur maximale",
+        "RETRY": "Réessayer",
+        "WRAPUPTIME": "Le temps de post-appel",
+        "WEIGHT": "Poids",
+        "JOINWHENEMPTY": "Inscrivez-vous à vide",
+        "LEAVEWHENEMPTY": "Laisser à vide",
+        "HELP": {
+            "ACTIVE": "Actif",
+            "TIMEOUT": "Spécifie le nombre de secondes d'un anneau périphérique du membre.",
+            "MAXLENGTH": "Spécifie le nombre maximum d'appelants autorisés à être en attente dans une file d'attente. Une valeur de zéro signifie un nombre illimité d'appels sont admis dans la file d'attente.",
+            "RETRY": "Spécifie le nombre de secondes à attendre avant d'essayer le membre suivant de la file d'attente si la valeur de temporisation est épuisé lors de la tentative de bague d'un membre de la file d'attente.",
+            "WRAPUPTIME": "Le nombre de secondes durant lequel un membre indisponible dans une file d'attente après avoir terminé un appel.",
+            "WEIGHT": "Définit le poids d'une file d'attente. Une file d'attente avec un poids plus élevé défini aura priorité lorsque les membres sont associés à plusieurs files d'attente.",
+            "JOINWHENEMPTY": "Contrôle si un appelant est ajouté à la file d'attente quand il n'y a pas de membres sont disponibles.",
+            "LEAVEWHENEMPTY": "Utilisé pour contrôler si les appelants sont chassés de la file d'attente quand les membres sont plus disponibles pour prendre des appels.",
+            "ANNOUNCEFREQUENCY": "Définit la fréquence à laquelle nous devrions annoncer le numéro de poste et/ou l'estimation du temps d'attente dans la file d'attente. Définissez cette valeur à zéro pour désactiver.",
+            "MINANNOUNCEFREQUENCY": "Indique le montant minimum qui doit s'écouler avant de nous annoncer le numéro de position dans la file d'attente. Ceci est utilisé lorsque la position de l'appelant peuvent changer fréquemment, pour empêcher l'audition de l'appelant plusieurs mises à jour dans un court laps de temps.",
+            "PERIODICANNOUNCEFREQUENCY": "Indique la fréquence à laquelle on devrait faire des annonces périodiques à l'appelant.",
+            "ANNOUNCEPOSITIONLIMIT": "Utilisé si vous avez défini annoncer-position de limiter ou plus.",
+            "AFTERCALLWORKDURATION": "La durée de la Pause déclenché par l'option de suivi d'appel",
+            "MEMBERDELAY": "Utilisé si vous voulez qu'il y ait un délai avant l'appelant et de la file d'états d'être connectés les uns aux autres.",
+            "MUSICONHOLD": "Définit la classe de musique d'être utilisés par une file d'attente.",
+            "ANNOUNCETOAGENT": "Utilisé pour la lecture d'une annonce à l'agent qui a répondu à l'appel, généralement pour lui faire savoir ce que l'appelant est l'attente.",
+            "RANDOMPERIODICANNOUNCE": "Si défini à Oui, jouera la définie annonces périodiques dans un ordre aléatoire.",
+            "ANNOUNCEHOLDTIME": "Définit si l'estimation du temps d'attente devrait être joué avec les annonces périodiques.",
+            "ANNOUNCECALLERPOSITION": "Définit si le numéro de position dans la file d'attente devrait être annoncé à elle. Si elle est définie sur Non, la position ne sera jamais annoncé. Si défini à Oui, la position de l'appelant sera toujours annoncée. Si la valeur est défini pour limiter, l'appelant entendra sa position dans la file d'attente que si elle est dans la limite définie par annoncer-position-limite. Si la valeur est définie à plus, l'appelant entendra son poste s'il est au-delà du nombre défini par annoncer-position-limite.",
+            "REPORTHOLDTIMEAGENT": "La déclaration permet de tenir le temps de la file d'états avant de combler.",
+            "PERIODICANNOUNCE": "Un ensemble d'annonces périodiques d'être joué, joué dans l'ordre où elles sont définies.",
+            "HOLDTIMEANNOUNCE": "Si non définie, jouera la valeur par défaut (\"le temps d'attente\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "YOUARENEXTANNOUNCE": "Si non définie, jouera la valeur par défaut (\"Vous êtes maintenant en première ligne\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "THEREAREANNOUNCE": "Si non définie, jouera la valeur par défaut (\"Il y a\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "WAITINGCALLSANNOUNCE": "Si non définie, jouera la valeur par défaut (\"appels en attente\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Si non définie, jouera la valeur par défaut (\"le temps d'attente est estimé actuel\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "MINUTESANNOUNCE": "Si non définie, jouera la valeur par défaut (\"minutes\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "MINUTEANNOUNCE": "Si non définie, jouera la valeur par défaut (\"minute\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "SECONDSANNOUNCE": "Si non définie, jouera la valeur par défaut (\"S\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "THANKYOUANNOUNCE": "Si non définie, jouera la valeur par défaut (\"Merci pour votre patience\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "AFTERCALLWORK": "Si actif, l'agent va être mis sur pause après un appel sur la file d'attente",
+            "AUTOPAUSE": "Active/désactive la mise en pause automatique de membres qui ne parviennent pas à répondre à un appel. Les causes actives si ce membre d'être en pause dans toutes les files d'attente Il est membre.",
+            "RINGINUSE": "Utilisé pour éviter d'envoyer des membres dont le statut est En cours d'utilisation.",
+            "TIMEOUTRESTART": "Si défini à Oui, réinitialise la temporisation d'un agent de répondre si l'une d'occupation ou de l'état de la congestion est reçu de la chaîne.",
+            "MONITORFORMAT": "Spécifie le format de fichier à utiliser lors de l'enregistrement. Si le moniteur-format est inactif, les appels ne seront pas enregistrées.",
+            "CONTEXT": "Permet à un appelant pour quitter la file en appuyant sur un seul chiffre DTMF. Si un contexte est spécifié et l'appelant entre un nombre, ce chiffre va tenter de s'accompagner dans le contexte spécifié, et il continuera d'exécution dialplan.",
+            "SETINTERFACEVARIABLES": "Si défini à Oui, juste avant l'appelant via une passerelle avec une file d'états certaines variables seront set(voir image)",
+            "SETQUEUEVARIABLES": "Si défini à Oui, juste avant l'appelant via une passerelle avec une file d'états et à l'appelant juste avant de quitter la file d'certaines variables sera définie(voir image)",
+            "SETQUEUEENTRYVARIABLES": "Si défini à Oui, juste avant l'appelant via une passerelle avec une file d'états certaines variables seront set(voir image)",
+            "RECORDING": "Activer l'enregistrement de l'appel",
+            "VOICEMAIL_CONTEXT": "Le contexte de l'extension.",
+            "METHOD": "Méthode de numérotation sortante.",
+            "MAXCONCURRENTCALLS": "Le nombre maximum d'appels qui seront émis par le numéroteur de sortie.",
+            "ORIGINATECALLERIDNAME": "Nom de l'Id de l'appelant sortant",
+            "ORIGINATECALLERIDNUMBER": "Numéro ID de l'appelant sortant",
+            "ORIGINATETIMEOUT": "Temps en secondes pour l'appel sortant pour établir la connexion. Si la connectin n'est pas établie, l'état d'origine seront Pas de réponse.",
+            "QUEUETIMEOUT": "Temps en secondes qu'un appel va attendre dans la file d'attente avant d'être abandonné",
+            "GLOBALMAXRETRY": "Nombre maximal de fois qu'un contact est appelé avant d'envisager sa fermeture",
+            "CONGESTIONMAXRETRY": "Nombre maximal de fois qu'un contact a échoué pour des raisons de congestion est appelé avant d'envisager sa fermeture",
+            "CONGESTIONRETRYTIME": "Temps en minutes avant de tenter de parvenir à un contact a échoué pour des raisons de congestion",
+            "BUSYMAXRETRY": "Nombre maximal de fois qu'un contact n'a pour raison d'occupation est appelé avant d'envisager sa fermeture",
+            "BUSYRETRYTIME": "Temps en minutes avant de tenter de parvenir à un contact n'a pour raison d'occupation",
+            "NOANSWERMAXRETRY": "Nombre maximal de fois qu'un contact n'a pas de réponse raison est appelé avant d'envisager sa fermeture",
+            "NOANSWERRETRYTIME": "Temps en minutes avant de tenter de parvenir à un contact a échoué pour des raisons de non réponse",
+            "POWERLEVEL": "Nombre de contacts pour appeler pour un agent disponible.",
+            "PREDICTIVEOPTIMIZATION": "Un facteur d'optimisation dans l'algorithme de prédiction.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Pourcentage basé sur le facteur d'optimisation prédictive sélectionné",
+            "CONCURRENTCALLS": "Le nombre maximum d'appels qui seront émis par le numéroteur de sortie pour cette campagne.",
+            "PREDICTIVEINTERVAL": "Intervalle de temps en minutes pour être examiné par l'algorithme prédictif pour calculer le montant d'appels pour générer pour l'optimisation de l'efficacité prédictive des facteurs d'optimisation",
+            "AGENTTIMEOUT": "Spécifie le nombre de secondes d'un anneau périphérique de l'agent.",
+            "GLOBALINTERVAL": "Intervalle de temps à l'échelle mondiale au cours de laquelle le numéroteur est autorisé à appeler des contacts. Veuillez porter une attention particulière lorsque vous modifier ce champ. Nous ne sera pas tenue responsable de votre incapacité à se conformer aux lois et règlements. Numéroteur automatique"
+        },
+        "MUSICONHOLD": "La musique d'attente",
+        "ANNOUNCETOAGENT": "Annoncer à l'Agent",
+        "ANNOUNCEMENTS": "Annonces",
+        "ADVANCED": "Recherche avancée",
+        "ANNOUNCEFREQUENCY": "Fréquence annoncer",
+        "MINANNOUNCEFREQUENCY": "La fréquence minimum annoncer",
+        "PERIODICANNOUNCEFREQUENCY": "Fréquence annoncer périodique",
+        "RANDOMPERIODICANNOUNCE": "Annoncer périodiques aléatoires",
+        "ANNOUNCEHOLDTIME": "Annoncer le temps d'attente",
+        "ANNOUNCECALLERPOSITION": "Annoncer la position de l'appelant",
+        "ANNOUNCEPOSITIONLIMIT": "Limite d'annoncer",
+        "REPORTHOLDTIMEAGENT": "Temps de maintien de l'agent Rapport",
+        "PERIODICANNOUNCE": "Annoncer périodique",
+        "HOLDTIMEANNOUNCE": "Du temps d'attente, annoncer",
+        "YOUARENEXTANNOUNCE": "'Vous êtes next' annoncer",
+        "THEREAREANNOUNCE": "'Il y a' annoncer",
+        "WAITINGCALLSANNOUNCE": "Des appels en attente annoncer",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Le temps d'attente estimé annoncer",
+        "MINUTESANNOUNCE": "Minutes Annoncer",
+        "MINUTEANNOUNCE": "Minute Annoncer",
+        "SECONDSANNOUNCE": "S'annoncer",
+        "THANKYOUANNOUNCE": "\"Merci\" Annoncer",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Après appel",
+        "AFTERCALLWORKDURATION": "Durée de travail après appel",
+        "RINGINUSE": "L'utilisation de bague",
+        "MEMBERDELAY": "Retard Membre",
+        "TIMEOUTRESTART": "Timeout Redémarrer",
+        "MONITORFORMAT": "Format d'enregistrement",
+        "SETINTERFACEVARIABLES": "Définir les variables d'interface",
+        "SETQUEUEVARIABLES": "Les variables d'attente du jeu",
+        "SETQUEUEENTRYVARIABLES": "Définir les variables d'entrée",
+        "CONTEXT": "Contexte",
+        "SAVE": "Sauvegarder",
+        "SETTINGS": "Settings",
+        "INBOUNDROUTES": "Routes entrantes",
+        "PHONENUMBER": "Numéro de téléphone",
+        "ADD_INBOUNDROUTE": "Ajouter Route entrante",
+        "EDIT_INBOUNDROUTE": "Edit Route entrante",
+        "DELETE_INBOUNDROUTE": "Supprimer la Route entrante",
+        "ACTIONS": "Actions",
+        "OUTBOUNDROUTES": "Routes sortantes",
+        "DESTINATIONPATTERN": "Profil de destination",
+        "ADD_OUTBOUNDROUTE": "Voie de départ ajouter",
+        "EDIT_OUTBOUNDROUTE": "Voie de départ modifier",
+        "DELETE_OUTBOUNDROUTE": "Voie de départ supprimer",
+        "CUTDIGITS": "Chiffres coupe",
+        "RECORDING": "L'enregistrement",
+        "RECORDINGFORMAT": "Format d'enregistrement",
+        "INTERNALROUTES": "Les routes internes.",
+        "ADD_INTERNALROUTE": "Ajouter l'acheminement interne",
+        "EDIT_INTERNALROUTE": "Modifier l'acheminement interne",
+        "DELETE_INTERNALROUTE": "Supprimer l'acheminement interne",
+        "CONTEXTS": "Contextes",
+        "ADD_CONTEXT": "Ajouter un contexte",
+        "EDIT_CONTEXT": "Contexte Modifier",
+        "DELETE_CONTEXT": "Supprimer le cadre",
+        "VOICEMAILS": "Messages vocaux",
+        "ADD_VOICEMAIL": "Ajouter la messagerie vocale",
+        "EDIT_VOICEMAIL": "Modifier la messagerie vocale",
+        "DELETE_VOICEMAIL": "Supprimer message",
+        "FULLNAME": "Nom complet",
+        "EMAIL": "Email",
+        "MAILBOX": "Boîte aux lettres",
+        "PASSWORD": "Mot de passe oublié",
+        "CONFIRM_PASSWORD": "Confirmer le mot de passe",
+        "TIMEZONE": "Timezone",
+        "ATTACH": "Fixer",
+        "ENVELOPE": "Envelope",
+        "DELETE": "Supprimer",
+        "EMAILBODY": "Corps de l'e-mail",
+        "EMAILSUBJECT": "L'objet du courriel",
+        "MAXSECONDS": "Max Secondes",
+        "MAXMESSAGES": "Max Messages",
+        "MESSAGES": "Messages",
+        "SORT": "Trier",
+        "ADD_MUSICONHOLD": "Ajouter de la musique en attente",
+        "MUSICONHOLDS": "Musiques en attente",
+        "EDIT_MUSICONHOLD": "Modifier la musique en attente",
+        "DELETE_MUSICONHOLD": "Supprimer la musique d'attente",
+        "DIRECTORY": "Directory",
+        "AUDIOFILES": "Les fichiers audio",
+        "RECORDINGS": "Enregistrements sonores",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefix",
+        "OPTIONS": "Options",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Ajouter ChanSpy",
+        "EDIT_CHANSPY": "Éditer ChanSpy",
+        "DELETE_CHANSPY": "Supprimer ChanSpy",
+        "AGENTS": "Mandataires",
+        "TELEPHONES": "Telephones",
+        "QUEUES": "Files d'attente",
+        "QUEUE_CALLS": "Les appels en file d'attente",
+        "QUEUE_PARAMETERS": "Les paramètres de file d'attente",
+        "ABANDONED_CALLS": "Les appels abandonnés",
+        "OUTBOUND_CALLS": "Les appels sortants",
+        "AGI": "Mga",
+        "DIAL": "Composer",
+        "INTERNALDIAL": "Numérotation interne",
+        "EXTERNALDIAL": "Numérotation externe",
+        "RINGGROUP": "Groupe anneau",
+        "PLAYBACK": "La lecture",
+        "QUEUE": "Queue",
+        "SET": "Set",
+        "VOICEMAIL": "La messagerie vocale",
+        "GOTO": "GoTo",
+        "HANGUP": "Raccroché.",
+        "CUSTOM": "Custom",
+        "PROJECT": "Projet d'Cally-Square",
+        "TECHNOLOGY/RESOURCE": "Ressources/technologie",
+        "URL": "URL",
+        "EDIT_APP": "Modification d'une demande",
+        "EDIT_INTERVAL": "Intervalle d'édition",
+        "DELETE_APP": "Supprimer l'application",
+        "INTERVALS": "Intervalles réguliers",
+        "USER": "User",
+        "TRUNK": "Trunk",
+        "PHONE": "Téléphone",
+        "AUDIO_FILES": "Les fichiers audio",
+        "ANNOUNCE_OVERRIDES": "Annoncer remplace",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "RULE": "La règle",
+        "POSITION": "Poste",
+        "ANSWER": "Répondre à",
+        "VALUE": "Valeur",
+        "MAILBOX@CONTEXT": "Contexte@Boîte aux lettres",
+        "EXTENSION": "Extension",
+        "PRIORITY": "La priorité",
+        "HANGUP_CAUSE": "Cause de raccrochage",
+        "OUTBOUNDDIAL": "Numérotation sortante",
+        "CALLER_ID": "L'identification de l'appelant",
+        "NO_MESSAGE_AVAILABLE": "Aucun message disponible",
+        "NO_SOUND_AVAILABLE": "Pas de sons disponibles",
+        "VOICERECORDINGS": "Les enregistrements vocaux",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Voix",
+        "REALTIME": "Des nouvelles en temps réel",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Contexte",
+        "NO_MOHSOUND_AVAILABLE": "Aucune musique d'attente disponible",
+        "FILE": "Dossier",
+        "ADD_MOHSOUND": "Ajouter une musique d'attente",
+        "DOWNLOAD_MOHSOUND": "Télécharger de la musique en attente sound",
+        "DELETE_MOHSOUND": "Supprimer le son de la musique d'attente",
+        "UNIQUEID": "ID unique",
+        "AGENT": "Agent",
+        "TYPE": "Type",
+        "RATING": "0",
+        "AUDIO": "L'audio",
+        "DATE": "Date",
+        "NEW_VOICEQUEUE": "File d'attente voix nouvelles",
+        "NEW_INBOUNDROUTE": "Nouvelle route entrante",
+        "NEW_OUTBOUNDROUTE": "Nouvelle route sortante",
+        "NEW_INTERNALROUTE": "Nouvelle route interne",
+        "NEW_CONTEXT": "Nouveau contexte",
+        "NEW_VOICEMAIL": "Nouvelle messagerie vocale",
+        "NEW_MUSICONHOLD": "La Nouvelle musique d'attente",
+        "NEW_CHANSPY": "Nouveau ChanSpy",
+        "PENALTY": "De mort",
+        "ADD_TEAM_TO_VOICEQUEUE": "Ajouter à l'équipe d'attente de voix",
+        "ADD_AGENT_TO_VOICEQUEUE": "Ajouter à la file d'attente de la voix de l'Agent",
+        "EDIT_DIAL": "Composition modifiée",
+        "EDIT_AGI": "Éditer les MGA",
+        "EDIT_INTERNALDIAL": "Numérotation interne modifier",
+        "EDIT_EXTERNALDIAL": "Modifier le cadran externe",
+        "EDIT_RINGGROUP": "Modifier groupe anneau",
+        "EDIT_PLAYBACK": "Modifier la lecture",
+        "EDIT_QUEUE": "Modifier la file d'attente",
+        "EDIT_SET": "Ensemble Modifier",
+        "EDIT_GOTO": "Edit GoTo",
+        "EDIT_HANGUP": "Raccrochage Modifier",
+        "EDIT_CUSTOM": "Personnaliser",
+        "DURATION": "Durée",
+        "RECEIVED_AT": "Reçu au",
+        "YES": "Oui",
+        "NO": "Pas de",
+        "HANGUPCAUSE_1": "1  = numéro non attribué",
+        "HANGUPCAUSE_16": "16 Centre d'appel  = Normail",
+        "HANGUPCAUSE_17": "17  = Utilisateur occupé",
+        "HANGUPCAUSE_18": "18  = Pas de réponse de l'utilisateur (téléphone non connecté)",
+        "HANGUPCAUSE_21": "21  = Appel rejeté",
+        "HANGUPCAUSE_22": "22  = numéro modifié",
+        "HANGUPCAUSE_27": "27  = Destination dans le désordre",
+        "HANGUPCAUSE_38": "38  = réseau hors service",
+        "HANGUPCAUSE_41": "41  = défaillance temporaire",
+        "RANDOM": "Random",
+        "ALPHABETICAL": "L'ordre alphabétique",
+        "NO_APPS_AVAILABLE": "Pas d'applications disponibles",
+        "DOWNLOAD_VOICERECORDING": "Télécharger l'enregistrement vocal",
+        "DELETE_VOICERECORDING": "Supprimer l'enregistrement vocal",
+        "INTERNAL": "Régie interne",
+        "PHONE_STATE": "État du téléphone",
+        "PHONE_STATUS": "Etat du téléphone",
+        "REGISTERED": "Date d'inscription",
+        "UNREGISTERED": "Non",
+        "LAGGED": "À la traîne",
+        "REACHABLE": "Accessible",
+        "UNREACHABLE": "Inaccessible",
+        "UNKNOWN": "Inconnu",
+        "NOT_INUSE": "Il n'est pas utilisé",
+        "INUSE": "En cours d'utilisation",
+        "BUSY": "Occupé",
+        "INVALID": "Invalid",
+        "UNAVAILABLE": "Indisponible",
+        "RINGING": "En sonnerie",
+        "ONHOLD": "En attente",
+        "RING": "Ring",
+        "UP": "Jusqu'",
+        "INFO": "Info",
+        "TRUNKS": "Trunks",
+        "REGISTRY": "Greffe",
+        "NO_REGISTRY": "Pas de registre",
+        "LOGGED_IN": "Connecté",
+        "PAUSED": "En pause",
+        "WAITING": "L'attente",
+        "TALKING": "Parler",
+        "DID": "N",
+        "CALLER": "Appelant",
+        "TOTAL": "Total",
+        "ANSWERED": "Répondre",
+        "ABANDONED": "Abandonné",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "Temps de mise en attente",
+        "AVG_DURATION": "Durée av",
+        "AVG_BILLABLE": "Facturable Avg",
+        "SOURCE": "Source",
+        "DESTINATION": "Destination",
+        "REJECTED": "Rejeté",
+        "FAILED": "N",
+        "CALLED": "Appelé",
+        "CONNECTED": "Connecté",
+        "NO_RATING": "Pas de cote",
+        "EDIT_VOICERECORDING": "Éditer l'enregistrement vocal",
+        "APPLICATION_NAME": "Nom de l'application",
+        "ARGUMENTS": "Arguments",
+        "ENABLED": "Activé",
+        "POWERLEVEL": "Niveau de puissance",
+        "DROPRATE": "La vitesse de descente",
+        "AGENTBUSYFACTOR": "Facteur d'occupation de l'agent",
+        "PREDICTIVEOPTIMIZATION": "Optimisation prédictive",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Pourcentage d'optimisation prédictive",
+        "READY": "Prêt",
+        "PAUSE": "Mettre en pause",
+        "UNPAUSE": "Reprendre",
+        "DEFAULT_PAUSE": "Pause par défaut",
+        "AGENTADD_QUEUE": "Ajouter l'agent de campagne d'attente",
+        "AGENTSADD_QUEUE": "Ajouter des agents de campagne d'attente",
+        "ALL_TEAMS": "Toutes les équipes",
+        "SELECTED_TEAMS": "Les équipes sélectionnées",
+        "ALL_LISTS": "Toutes les listes",
+        "SELECTED_LISTS": "Les listes sélectionnées",
+        "ALL_AGENTS": "Tous les Agents",
+        "SELECTED_AGENTS": "Agents sélectionnés",
+        "IVRCAMPAIGNS": "Campagnes IVR",
+        "CONCURRENTCALLS": "Appels simultanés maxi",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Ajouter Blacklist",
+        "DELETE_IVRCAMPAIGN": "Supprimer la campagne",
+        "EDIT_IVRCAMPAIGN": "Campagne Modifier",
+        "NEW_IVRCAMPAIGN": "Nouvelle campagne IVR",
+        "ADD_IVRCAMPAIGN": "Ajouter Campagne IVR",
+        "LISTADD_IVRCAMPAIGN": "Ajout d'une liste",
+        "BLACKLISTADD_IVRCAMPAIGN": "Ajouter Blacklist",
+        "HISTORY": "Histoire",
+        "FINAL": "Dernière",
+        "BLACKLIST": "Liste noire",
+        "PREDICTIVEINTERVAL": "L'intervalle de prévision",
+        "WAITING_FOR_AGENT": "Attente de l'Agent",
+        "TOTAL_OFFERED": "Offert Total",
+        "RUNNING": "L'exécution de",
+        "INTERVAL_IS_OVERTIME": "Les heures supplémentaires est l'intervalle",
+        "TRUNK_IS_NOT_REACHABLE": "Ligne réseau n'est pas accessible",
+        "AGENTS_NOT_LOGGED": "Agent non connecté",
+        "NOT_ACTIVE": "Pas Actif",
+        "AVAILABLE_CONTACTS_FINISHED": "Fini les contacts disponibles",
+        "SCHEDULEDAT": "Service à",
+        "HOPPERBLACKS": "Liste noire de la trémie",
+        "NO_HOPPERBLACK_AVAILABLE": "Pas d'articles disponibles",
+        "HOPPERFINALS": "Finale de la trémie",
+        "NO_HOPPERFINAL_AVAILABLE": "Pas d'articles disponibles",
+        "HOPPERHISTORIES": "Histoire de la trémie",
+        "NO_HOPPERHISTORY_AVAILABLE": "Pas d'articles disponibles",
+        "DELETE_HOPPERHISTORY": "Supprimer",
+        "DELETE_HOPPERFINAL": "Supprimer",
+        "CONTACTID": "L'ID du contact",
+        "STARTTIME": "Temps de démarrage",
+        "RESPONSETIME": "Temps de réponse",
+        "ENDTIME": "L'Heure de fin",
+        "STATUS": "Status",
+        "HOPPERS": "Hopper",
+        "NO_HOPPER_AVAILABLE": "Pas d'articles disponibles",
+        "EDIT_HOPPER": "Éditer Hopper",
+        "DELETE_HOPPER": "Supprimer Hopper",
+        "AGENTTIMEOUT": "Délai d'agent",
+        "DISPOSITION": "Disposition",
+        "REDIRECT_TO_NUMBER": "Redirection vers un numéro",
+        "REDIRECT_TO_AGENT": "Redirection vers un agent",
+        "CLOSING": "Fermer",
+        "MANAGED": "Réussi",
+        "BACKUPTRUNK": "Ligne de sauvegarde",
+        "GLOBALINTERVAL": "L'intervalle global",
+        "RESCHEDULED_CONTACTS": "Contacts reportée",
+        "INTERVAL_IS_NULL": "Intervalle est Null",
+        "TIMEZONE_UNKNOW": "Timezone unknow",
+        "INTERVAL_IS_EMPTY": "Intervalle est vide",
+        "LOGOUT": "Login/Logout",
+        "EDIT_CAMPAIGN": "Campagne Modifier",
+        "LIMITED": "Limited",
+        "IVR_CAMPAIGNS": "Campagnes IVR",
+        "IS_DISACTIVED": "Est Disactived",
+        "TOTAL_MANAGED": "Gestion totale"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/hi.json b/public/app/main/apps/motiondialer/i18n/hi.json
new file mode 100644 (file)
index 0000000..ffacad9
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "प्रस्ताव Dialer",
+        "QUEUECAMPAIGNS": "लोकतंत्रमें अभियान",
+        "NAME": "नाम",
+        "VOICEQUEUES": "वॉयस कतार",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "BACK": "वापिस",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "DELETE_VOICEDISPOSITION": "सरकारीतंत्र आवाज को हटाएं",
+        "EDIT_VOICEDISPOSITION": "सरकारीतंत्र आवाज संपादित करें",
+        "EDIT_VOICEQUEUE": "ध्वनि संपादन कतार",
+        "DELETE_VOICEQUEUE": "वॉयस कतार हटाएं",
+        "MOHSOUNDS": "ध्वनियां Moh",
+        "STRATEGY": "रणनीति",
+        "DESCRIPTION": "वर्णन",
+        "INTERVAL": "उस समय अन्तराल",
+        "ADD_VOICEQUEUE": "ध्वनि स्वर जोड़ें कतार",
+        "NEW_QUEUECAMPAIGN": "नई कतार अभियान",
+        "EDIT_QUEUECAMPAIGN": "संपादित करने के लिए अभियान",
+        "TEAMADD_QUEUECAMPAIGN": "टीम में जोड़ें",
+        "AGENTADD_QUEUECAMPAIGN": "एजेंट जोड़ें",
+        "LISTADD_QUEUECAMPAIGN": "सूची में जोड़ें",
+        "DELETE_QUEUECAMPAIGN": "अभियान को हटाएं",
+        "ACTIVE": "चुस्त",
+        "METHOD": "तरीका",
+        "ADD_QUEUECAMPAIGN": "लोकतंत्रमें अभियान में जोड़ें",
+        "CAMPAIGN": "अभियान",
+        "MAXCONCURRENTCALLS": "अधिकतम समवर्ती कॉल्स",
+        "ORIGINATE": "निकलना",
+        "ORIGINATECALLERIDNAME": "कॉलर ID नाम",
+        "ORIGINATECALLERIDNUMBER": "कॉलर ID संख्या",
+        "ORIGINATETIMEOUT": "उत्पति समयबाह्य",
+        "QUEUEOPTIONS": "लोकतंत्रमें विकल्प",
+        "QUEUETIMEOUT": "लोकतंत्रमें समयबाह्य",
+        "CALLYSQUAREPROJECT": "मूल स् वरूप वर्गाकार परियोजना",
+        "RETRYANDFREQUENCY": "पुनः सेटिंग्स",
+        "GLOBAL": "विश्वव्यापी",
+        "GLOBALMAXRETRY": "अधिकतम पुनर्प्रयासों",
+        "CONGESTION": "भीड़",
+        "CONGESTIONMAXRETRY": "अधिकतम पुनर्प्रयासों",
+        "CONGESTIONRETRYTIME": "[Retry] मिनट का समय",
+        "BUSYMAXRETRY": "अधिकतम पुनर्प्रयासों",
+        "BUSYRETRYTIME": "[Retry] मिनट का समय",
+        "NOANSWER": "हल नहीं",
+        "NOANSWERMAXRETRY": "अधिकतम पुनर्प्रयासों",
+        "NOANSWERRETRYTIME": "[Retry] मिनट का समय",
+        "QUEUE_PARAMS": "लोकतंत्रमें मानदंडों",
+        "ORIGINATED": "उपजीं",
+        "MESSAGE": "संदेश",
+        "DROPPED": "गिरकर",
+        "CREATED_AT": "सृजित",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - कस्टम अनुप्रयोग।"
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "TIMEOUT_REQUIRED": "इस समय की आवश्यकता है।",
+            "PHONENUMBER_REQUIRED": "फ़ोन नंबर की आवश्यकता है।",
+            "CONTEXT_REQUIRED": "इस संदर्भ में अपेक्षित है।",
+            "DESTINATIONPATTERN_REQUIRED": "गंतव् य पद्धति की आवश्यकता है।",
+            "FULLNAME_REQUIRED": "पूरा नाम की आवश्यकता है।",
+            "EMAIL_REQUUIRED": "ईमेल की आवश्यकता है।",
+            "EMAIL_MUST_VALID": "एक मान्य स्वरूप में लिखा होना ईमेल का",
+            "MAILBOX_REQUIRED": "इस मेलबॉक्स अपेक्षित है।",
+            "PASSWORD_REQUIRED": "पासवर्ड की आवश्यकता है।",
+            "CONFIRM_NOT_MATCH": "पासवर्ड मेल नहीं",
+            "TIMEZONE_REQUIRED": "इस समय क्षेत्र की आवश्यकता है।",
+            "PREFIX_REQUIRED": "नाम के साथ अपेक्षित है।",
+            "OPTIONS_REQUIRED": "विकल्प आवश्यक हैं.",
+            "AFTERCALLWORKDURATION_REQUIRED": "कॉल करने के बाद के कार्य की अवधि की आवश्यकता है।",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "प्रौद्योगिकी/संसाधन की आवश्यकता है।",
+            "PHONE_REQUIRED": "फ़ोन की आवश्यकता है।",
+            "VALUE_REQUIRED": "मूल्य की आवश्यकता है।",
+            "EXTENSION_REQUIRED": "के विस्तार की आवश्यकता है।",
+            "PRIORITY_REQUIRED": "प्राथमिकता की आवश्यकता है।",
+            "GLOBALMAXRETRY_REQUIRED": "अधिकतम पुनर्प्रयासों की आवश्यकता है।",
+            "CONGESTIONMAXRETRY_REQUIRED": "अधिकतम पुनर्प्रयासों की आवश्यकता है।",
+            "CONGESTIONRETRYTIME_REQUIRED": "पुनः समय की आवश्यकता है।",
+            "BUSYMAXRETRY_REQUIRED": "अधिकतम पुनर्प्रयासों की आवश्यकता है।",
+            "BUSYRETRYTIME_REQUIRED": "पुनः समय की आवश्यकता है।",
+            "NOANSWERMAXRETRY_REQUIRED": "अधिकतम पुनर्प्रयासों की आवश्यकता है।",
+            "NOANSWERRETRYTIME_REQUIRED": "पुनः समय की आवश्यकता है।",
+            "QUEUETIMEOUT_REQUIRED": "लोकतंत्रमें समयबाह्य अपेक्षित है।",
+            "ORIGINATETIMEOUT_REQUIRED": "उत्पति समयबाह्य अपेक्षित है।",
+            "GLOBALINTERVAL_REQUIRED": "ग्लोबल अंतराल की आवश्यकता है।"
+        },
+        "GENERAL": "सामान्य",
+        "TIMEOUT": "समयबाह्य",
+        "MAXLENGTH": "अधिकतम लंबाई",
+        "RETRY": "पुन: प्रयास करें.",
+        "WRAPUPTIME": "उस समय Wrapup",
+        "WEIGHT": "भार",
+        "JOINWHENEMPTY": "खाली समय में शामिल होंगे।",
+        "LEAVEWHENEMPTY": "खाली छोड़ जब",
+        "HELP": {
+            "ACTIVE": "चुस्त",
+            "TIMEOUT": "निर्दिष्ट करता है कि किसी सदस्य का डिवाइस रिंग सेकंड की संख्या",
+            "MAXLENGTH": "कॉलर्स को अनुमति की अधिकतम संख्या को निर्दिष्ट प्रतीक्षा में है. इसका अर्थ शून्य मूल्य की संख्या असीमित कॉलर्स को अनुमति कतार में हैं।",
+            "RETRY": "निर्दिष्ट करता है कि सेकंड तक प्रतीक्षा करने का प्रयास करने से पहले की संख्या को अगले सदस्य कतार में यदि टाइमआउट मान है जबकि थके हुए एक सदस्य का प्रयास करने के लिए रिंग है.",
+            "WRAPUPTIME": "किसी सदस्य को रखने की संख्या सेकंड में अनुपलब्ध है. कॉल पूरा करने के बाद कतार",
+            "WEIGHT": "एक कतार के भार को परिभाषित करती है। एक कतार से अधिक भार को परिभाषित किया गया है जब सदस्यों पहली प्राथमिकता है। कतार में एकाधिक से जुडे हुए हैं।",
+            "JOINWHENEMPTY": "क्या कोई नियंत्रण नहीं है जब कोई सदस्य जोड़े कतार कॉलर उपलब्ध हैं।",
+            "LEAVEWHENEMPTY": "कॉलर्स को नियंत्रित करने के लिए इस्तेमाल किया जाता है जब सदस्यों की कतार से नि ९ाला क्या अब उपलब्ध नहीं है. कॉल के लिए",
+            "ANNOUNCEFREQUENCY": "हम कितनी परिभाषित की घोषणा करनी चाहिए और/अथवा अनुमानित कॉलर की स् थिति होल्ड समय कतार में है। इस मूल्य निर्धारित करने के लिए शून्य को अक्षम है.",
+            "MINANNOUNCEFREQUENCY": "निर्दिष्ट करता है कि उस समय की न्यूनतम मात्रा की घोषणा करने से पूर्व हम पास होना कॉलर की कतार में पुन: जब यह कॉलर की स्थिति को बदल सकते हैं, प्राय: एकाधिक अपडेट्स को रोकने के लिए कॉलर सुनवाई थोडे समय में है।",
+            "PERIODICANNOUNCEFREQUENCY": "पता चलता है कि किस प्रकार आवधिक घोषणाएं करने चाहिए कि हम अक्सर रखती हैं।",
+            "ANNOUNCEPOSITIONLIMIT": "यदि आपने यहघोषणा की स्थिति के रूप में परिभाषित किया जाता है या सीमा से अधिक है.",
+            "AFTERCALLWORKDURATION": "विराम की अवधि के बाद कार्य कॉल विकल्प",
+            "MEMBERDELAY": "यदि आप चाहते हैं कि वहां का इस्तेमाल करने से पूर्व देरी का एक-दूसरे से जोडा जा रहा है और कॉलर कतार सदस्य",
+            "MUSICONHOLD": "सैट के प्रयोग को विशेष श्रेणी के संगीत की कतार है।",
+            "ANNOUNCETOAGENT": "खेल के लिए इस्तेमाल करने की घोषणा की है कि उनके लिए अपेक्षओं को कॉल का उत्तर एजेंट क्या कतार कॉलर से आ रहा है।",
+            "RANDOMPERIODICANNOUNCE": "यदि हाँ, का मुकाबला करने के लिए आवधिक घोषणाएं की परिभाषा में अनियमित क्रम है।",
+            "ANNOUNCEHOLDTIME": "अनुमान है कि समय-समय पर आयोजित की परिभाषा के साथ आवधिक घोषणाएं बजाई जानी चाहिए।",
+            "ANNOUNCECALLERPOSITION": "परिभाषित किया जाना चाहिए कि क्या कॉलर की स्थिति में घोषणा की है। यदि सेटअप करने के लिए कोई स्थान नहीं होगा की घोषणा की जाए। यदि हाँ, कॉलर की स् थिति सेट करने के लिए सदैव की घोषणा की गई है। यदि मूल्य सेट करने के लिए, अपनी स्थिति को सुनेंगे कॉलर सीमा कतार में ही यह घोषणा कर के दायरे में परिभाषित की स्थिति-सीमा है। यदि मूल्य पर सेट है, तो उसके स्थान पर कॉलर सुनेंगे की संख्या से परे है, स्थिति-सीमा परिभाषित की घोषणा",
+            "REPORTHOLDTIMEAGENT": "समय-समय पर आयोजित की रिपोर्टिंग में समर्थ की कतार के पूर्व सदस्य अनिवार्यआधारभूत है।",
+            "PERIODICANNOUNCE": "खेल खेला जाने की आवधिक घोषणाओं के क्रम में वे को परिभाषित किया गया है।",
+            "HOLDTIMEANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान से खेलना है।'') समय (\"को रोका यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "YOUARENEXTANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"अब आप में प्रथम पंक्ति\"). यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "THEREAREANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"हैं.'' यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "WAITINGCALLSANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान से खेलना है।'') (\"कॉल प्रतीक्षारत यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"चालू होने का अनुमान है।\") को दबाकर रखें यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "MINUTESANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"मिनट)।\" यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "MINUTEANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"मिनट)।\" यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "SECONDSANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"सेकंड)।\" यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "THANKYOUANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"के लिए धन्यवाद\") धैर्य यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "AFTERCALLWORK": "यदि सक्रिय एजेंट को पूरा करने के बाद विराम पर सेट किया जाएगा कतार पर कॉल करें",
+            "AUTOPAUSE": "सदस्यों की स्वचालित किसी वाक्य को सक्षम/अक्षम असफल कॉल का उत्तर देने के लिए है। यदि इस कारण सक्रिय सदस्य को रोका गया है वह किसी सदस्य की कतार में सभी",
+            "RINGINUSE": "कॉल भेजने के लिए सदस्यों से बचने के लिए इस्तेमाल किया जाता है जिसकी स्थिति में प्रयोग में है.",
+            "TIMEOUTRESTART": "यदि हाँ, रीसेट करें पर सेट करने के लिए, यदि उत्तर देने के लिए, व्यस्त या टाइमआउट एजेंट या भीड़-भाड़ दर्जा प्राप्त चैनल है।",
+            "MONITORFORMAT": "निर्दिष्ट करने के लिए, फ़ाइल स्वरूप का प्रयोग करने के लिए रिकॉर्डिंग है। अगर निगरानी-स्वरूप निष्क्रिय कॉल्स नहीं किया जाएगा.",
+            "CONTEXT": "अनुमत कॉलर कतार से बाहर निकलने के लिए दबाकर एक अंकीय DTMF है। यदि कॉलर और विनिर्दिष्ट संख्या के संदर्भ में प्रवेश करने का प्रयास करेंगे कि अंकीय मेल के संदर्भ में विनिर्दिष्ट और वहां रहेंगे निष्पादन dialplan",
+            "SETINTERFACEVARIABLES": "यदि हां, तो पूर्व निर्धारित की जा रही एक कतार में कुछ सदस्य कॉलर खाई फेर किया जाएगा।(देखिए) wiki",
+            "SETQUEUEVARIABLES": "यदि हां, तो पहले से सेट करने के लिए किया जा रहा है और सदस्य एक कतार कॉलर खाई को छोडने की कतार में कुछ फेर से पूर्व कॉलर स्थापित किए जाएंगे।(देखिए) wiki",
+            "SETQUEUEENTRYVARIABLES": "यदि हां, तो पूर्व निर्धारित की जा रही एक कतार में कुछ सदस्य कॉलर खाई फेर किया जाएगा।(देखिए) wiki",
+            "RECORDING": "रिकॉर्डिंग रोकने के लिए कॉल कर सके।",
+            "VOICEMAIL_CONTEXT": "के संदर्भ संबंधी विस्तार है।",
+            "METHOD": "बाह्यवर्ती dialer पद्धति है।",
+            "MAXCONCURRENTCALLS": "समवर्ती सूची की अधिकतम संख्या को हुआ होगा कि कॉल बाह्यवर्ती dialer है।",
+            "ORIGINATECALLERIDNAME": "आउटगोइंग कॉलर ID नाम",
+            "ORIGINATECALLERIDNUMBER": "आउटगोइंग कॉलर ID संख्या",
+            "ORIGINATETIMEOUT": "कॉल करने के लिए समय सेकंड प्रारंम्भिक बाह्यवर्ती संबंध है। यदि connectin स्थापित नहीं है, कोई उत्तर नहीं होगा स्थिति उत्पन्न करना",
+            "QUEUETIMEOUT": "कॉल प्रतीक्षा करेंगे कि सेकंड में समय पहले कतार में छोड दिया है।",
+            "GLOBALMAXRETRY": "एक बार की अधिकतम संख्या को देखते हुए इसे बंद करने से पहले संपर्क का नाम",
+            "CONGESTIONMAXRETRY": "संपर्क के लिए एक बार की अधिकतम संख्या को देखते हुए यह कहा जाता है, इसी कारण से भीडभाड विफल बंद",
+            "CONGESTIONRETRYTIME": "उस समय तक पहुंचने के लिए एक संपर्क में मिनट पहले retrying कारण भीड-भाड में विफल",
+            "BUSYMAXRETRY": "संपर्क के लिए एक बार की अधिकतम संख्या को देखते हुए यह कहा जाता है, इसी कारण व्यस्त विफल पहले बंद",
+            "BUSYRETRYTIME": "उस समय तक पहुंचने के लिए एक मिनट पूर्व में व् यस् त कारण retrying संपर्क में विफल",
+            "NOANSWERMAXRETRY": "संपर्क के लिए एक बार की अधिकतम संख्या में विफल रही है।इस पर विचार करने से पहले कोई जवाब कारण बंद",
+            "NOANSWERRETRYTIME": "उस समय तक पहुंचने के लिए एक संपर्क में मिनट पहले retrying कोई जवाब कारण विफल",
+            "POWERLEVEL": "कॉल करने के लिए उपलब्ध एजेंट संपर्कों की संख्या",
+            "PREDICTIVEOPTIMIZATION": "एक घटक को ऑप् टिमाइज़ करने में पूर्वाभास एल्गोरिद्म है।",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "प्रीडिक्टिव चयनित आधार पर उन्नयन कारक प्रतिशतता",
+            "CONCURRENTCALLS": "समवर्ती सूची की अधिकतम संख्या को हुआ होगा कि कॉल के लिए dialer छुट्टिंयां मनाने के लिए इस अभियान है।",
+            "PREDICTIVEINTERVAL": "समय के अंतराल में मिनट द्वारा विचार किये जाने की गणना करने की राशि जुटाने के लिए कॉल प्रिडिक्टिव एल्गोरिद्म का पूर्वाभास को ईष्टतम बनाने के लिए ऑप्टिमाइज़ कारक",
+            "AGENTTIMEOUT": "निर्दिष्ट सेकंड्स की संख्या को रिंग एजेंट के डिवाइस पर",
+            "GLOBALINTERVAL": "ग्लोबल समय अंतराल के दौरान dialer कॉल करने की अनुमति है. संपर्क कृपया ध्यान देना बंद करने के लिए, जब आप इस संशोधित फ़ील्ड बदलें. हम आपके लिए उत्तरदायी नहीं होंगे या उन्मुक्ति विफलता का पालन करने के लिए राज्य Autodialer कानूनों और विनियमों में है।"
+        },
+        "MUSICONHOLD": "संगीत पर रखें.",
+        "ANNOUNCETOAGENT": "घोषणा के एजेंट",
+        "ANNOUNCEMENTS": "घोषणाओं",
+        "ADVANCED": "उन्नत",
+        "ANNOUNCEFREQUENCY": "आवृत्ति की घोषणा",
+        "MINANNOUNCEFREQUENCY": "आवृत्ति घोषित न्यूनतम",
+        "PERIODICANNOUNCEFREQUENCY": "आवधिक घोषणा की आवृत्ति",
+        "RANDOMPERIODICANNOUNCE": "रैंडम आवधिक की घोषणा की.",
+        "ANNOUNCEHOLDTIME": "समय-समय पर आयोजित की घोषणा",
+        "ANNOUNCECALLERPOSITION": "कॉलर स्थिति की घोषणा",
+        "ANNOUNCEPOSITIONLIMIT": "सीमा की बस्थति की घोषणा",
+        "REPORTHOLDTIMEAGENT": "एजेंट ने समय-समय पर रिपोर्ट",
+        "PERIODICANNOUNCE": "आवधिक की घोषणा की.",
+        "HOLDTIMEANNOUNCE": "उस समय की घोषणा को रोका",
+        "YOUARENEXTANNOUNCE": "आप \"अगला\" की घोषणा की.",
+        "THEREAREANNOUNCE": "'' की घोषणा कर रहे हैं।",
+        "WAITINGCALLSANNOUNCE": "कॉल प्रतीक्षारत की घोषणा की.",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "समय-समय पर आयोजित की घोषणा का अनुमान",
+        "MINUTESANNOUNCE": "मिनट की घोषणा की.",
+        "MINUTEANNOUNCE": "मिनट की घोषणा की.",
+        "SECONDSANNOUNCE": "सेकंड्स की घोषणा की.",
+        "THANKYOUANNOUNCE": "'' की घोषणा आपको धन्यवाद देता हूं।",
+        "AUTOPAUSE": "ऑटो रोकें",
+        "AFTERCALLWORK": "इसके बाद कार्य पर कॉल करें",
+        "AFTERCALLWORKDURATION": "कॉल करने के बाद कार्य अवधि",
+        "RINGINUSE": "रिंग प्रयोग में है",
+        "MEMBERDELAY": "सदस्य विलंब",
+        "TIMEOUTRESTART": "समयबाह्य को पुन: प्रारंभ करें.",
+        "MONITORFORMAT": "रिकॉर्डिंग स्वरूप",
+        "SETINTERFACEVARIABLES": "परिवतीऩ अन्तरापृष्ठ सेट करें",
+        "SETQUEUEVARIABLES": "परिवतीऩ कतार सेट करें",
+        "SETQUEUEENTRYVARIABLES": "परिवतीऩ प्रवेश कतार सेट करें",
+        "CONTEXT": "संदर्भ",
+        "SAVE": "सहेजें",
+        "SETTINGS": "सेटिंग्स",
+        "INBOUNDROUTES": "इनबाउंड मार्ग",
+        "PHONENUMBER": "फ़ोन नंबर",
+        "ADD_INBOUNDROUTE": "रूट इनबाउंड जोड़ें",
+        "EDIT_INBOUNDROUTE": "संपादित करने के लिए इनबाउंड मार्ग",
+        "DELETE_INBOUNDROUTE": "हटाने के लिए इनबाउंड मार्ग",
+        "ACTIONS": "क्रियाएं",
+        "OUTBOUNDROUTES": "छुट्टिंयां मनाने का मार्ग",
+        "DESTINATIONPATTERN": "गंतव् य पद्धति",
+        "ADD_OUTBOUNDROUTE": "रूट बाह्यवर्ती जोड़ें",
+        "EDIT_OUTBOUNDROUTE": "रूट बाह्यवर्ती संपादित करें",
+        "DELETE_OUTBOUNDROUTE": "रूट बाह्यवर्ती हटाएं",
+        "CUTDIGITS": "काटें अंगुलि",
+        "RECORDING": "रिकॉर्डिंग",
+        "RECORDINGFORMAT": "रिकॉर्डिंग स्वरूप",
+        "INTERNALROUTES": "भीतरी मार्गों",
+        "ADD_INTERNALROUTE": "आंतरिक मार्ग पर जोड़ें",
+        "EDIT_INTERNALROUTE": "संपादित करने के लिए आंतरिक मार्ग",
+        "DELETE_INTERNALROUTE": "आंतरिक मार्ग हटाएं",
+        "CONTEXTS": "प्रसंग",
+        "ADD_CONTEXT": "इस संदर्भ में जोड़ें",
+        "EDIT_CONTEXT": "इस संदर्भ संपादित करें",
+        "DELETE_CONTEXT": "इस संदर्भ हटाएं",
+        "VOICEMAILS": "मोबिलबॉक् स प्रो अभी भरा हुआ",
+        "ADD_VOICEMAIL": "वॉयसमेल जोड़ें",
+        "EDIT_VOICEMAIL": "वॉयसमेल संपादित करें",
+        "DELETE_VOICEMAIL": "वॉयसमेल हटाएं",
+        "FULLNAME": "पूरा नाम",
+        "EMAIL": "ई-मेल",
+        "MAILBOX": "मेलबॉक्स",
+        "PASSWORD": "पासवर्ड",
+        "CONFIRM_PASSWORD": "पासवर्ड की पुष्टि करें:",
+        "TIMEZONE": "समय क्षेत्र",
+        "ATTACH": "नत्थी करना",
+        "ENVELOPE": "लिफाफा",
+        "DELETE": "हटाना",
+        "EMAILBODY": "ईमेल शरीर",
+        "EMAILSUBJECT": "ईमेल विषय",
+        "MAXSECONDS": "अधिकतम सेकंड",
+        "MAXMESSAGES": "अधिकतम संदेश",
+        "MESSAGES": "संदेश",
+        "SORT": "सॉर्ट करें",
+        "ADD_MUSICONHOLD": "संगीत पर जोड़ें",
+        "MUSICONHOLDS": "होल्ड पर Musics",
+        "EDIT_MUSICONHOLD": "होल्ड पर संगीत संपादित करें",
+        "DELETE_MUSICONHOLD": "होल्ड पर संगीत हटाएं",
+        "DIRECTORY": "निर्देशिका",
+        "AUDIOFILES": "ऑडियो फ़ाइलें",
+        "RECORDINGS": "रेकाॅर्डिंग",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "प्रिफिक्स",
+        "OPTIONS": "विकल्प",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "ChanSpy जोड़ें",
+        "EDIT_CHANSPY": "ChanSpy संपादित करें",
+        "DELETE_CHANSPY": "ChanSpy हटाएं",
+        "AGENTS": "एजेंटों",
+        "TELEPHONES": "टेलीफोन",
+        "QUEUES": "कतार",
+        "QUEUE_CALLS": "कॉल्स कतार",
+        "QUEUE_PARAMETERS": "लोकतंत्रमें मानदंडों",
+        "ABANDONED_CALLS": "परित्याग कॉल्स",
+        "OUTBOUND_CALLS": "बाह्यवर्ती कॉल्स",
+        "AGI": "AGI",
+        "DIAL": "स् पीड डायल",
+        "INTERNALDIAL": "आंतरिक डायल करें",
+        "EXTERNALDIAL": "बाह्य डायल करें",
+        "RINGGROUP": "रिंग समूह",
+        "PLAYBACK": "प्लेबैक",
+        "QUEUE": "कतार",
+        "SET": "सेट करें",
+        "VOICEMAIL": "वॉयसमेल",
+        "GOTO": "जाएँगे|",
+        "HANGUP": "Hangup",
+        "CUSTOM": "कस्टम",
+        "PROJECT": "Cally-Square परियोजना",
+        "TECHNOLOGY/RESOURCE": "प्रौद्योगिकी/संसाधन",
+        "URL": "URL",
+        "EDIT_APP": "अनुप्रयोग को संपादित करें",
+        "EDIT_INTERVAL": "अंतराल संपादित करें",
+        "DELETE_APP": "अनुप्रयोग हटाएं",
+        "INTERVALS": "अन्तराल",
+        "USER": "उपयोगकर्ता",
+        "TRUNK": "सूंड",
+        "PHONE": "फ़ोन",
+        "AUDIO_FILES": "ऑडियो फ़ाइलें",
+        "ANNOUNCE_OVERRIDES": "जताना Overrides",
+        "MACRO": "स्थूल",
+        "GOSUB": "GoSub",
+        "RULE": "नियम",
+        "POSITION": "की स्थिति",
+        "ANSWER": "उत्तर",
+        "VALUE": "मूल्य",
+        "MAILBOX@CONTEXT": "मेलबॉक्स@वर्ल्ड कप के संदर्भ",
+        "EXTENSION": "विस्तार",
+        "PRIORITY": "प्राथमिकता",
+        "HANGUP_CAUSE": "इससे Hangup",
+        "OUTBOUNDDIAL": "बाह्यवर्ती डायल करें",
+        "CALLER_ID": "कॉलर ID",
+        "NO_MESSAGE_AVAILABLE": "कोई संदेश उपलब्ध",
+        "NO_SOUND_AVAILABLE": "उपलब्ध ध्वनि नहीं",
+        "VOICERECORDINGS": "वॉयस जनाक्रोश",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "आवाज",
+        "REALTIME": "लिएभूकम्पनीय वैधशालाओं",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "संदर्भ",
+        "NO_MOHSOUND_AVAILABLE": "कोई संगीत पर उपलब्ध",
+        "FILE": "फाइल",
+        "ADD_MOHSOUND": "संगीत जोड़ होल्ड पर ध्वनि",
+        "DOWNLOAD_MOHSOUND": "संगीत डाउनलोड करने पर ध्वनि",
+        "DELETE_MOHSOUND": "संगीत हटाएं पर ध्वनि",
+        "UNIQUEID": "अद्वितीय ID",
+        "AGENT": "कर्ता",
+        "TYPE": "प्रकार",
+        "RATING": "रेटिंग",
+        "AUDIO": "ऑडियो",
+        "DATE": "की तारीख",
+        "NEW_VOICEQUEUE": "नए वॉयस कतार",
+        "NEW_INBOUNDROUTE": "नई इनबाउंड मार्ग",
+        "NEW_OUTBOUNDROUTE": "नई छुट्टिंयां मनाने का मार्ग",
+        "NEW_INTERNALROUTE": "नई आंतरिक मार्ग",
+        "NEW_CONTEXT": "नई संदर्भ",
+        "NEW_VOICEMAIL": "नई वॉयसमेल",
+        "NEW_MUSICONHOLD": "नयी संगीत पर रखें.",
+        "NEW_CHANSPY": "नई ChanSpy",
+        "PENALTY": "दण्ड",
+        "ADD_TEAM_TO_VOICEQUEUE": "ध्वनि स्वर जोड़ने के लिए दल कतार",
+        "ADD_AGENT_TO_VOICEQUEUE": "ध्वनि स्वर जोड़ने के एजेंट को कतार",
+        "EDIT_DIAL": "स् पीड डायल संपादित करें",
+        "EDIT_AGI": "AGI संपादित करें",
+        "EDIT_INTERNALDIAL": "स् पीड डायल आंतरिक संपादित करें",
+        "EDIT_EXTERNALDIAL": "स् पीड डायल बाह्य संपादित करें",
+        "EDIT_RINGGROUP": "रिंग समूह संपादित करें",
+        "EDIT_PLAYBACK": "प्लेबैक संपादित करें",
+        "EDIT_QUEUE": "लोकतंत्रमें संपादित करें",
+        "EDIT_SET": "संपादित करने के लिए सेट करें",
+        "EDIT_GOTO": "संपादित करने के लिए जाएँगे|",
+        "EDIT_HANGUP": "Hangup संपादित करें",
+        "EDIT_CUSTOM": "कस्टम संपादित करें",
+        "DURATION": "अवधि के",
+        "RECEIVED_AT": "प्राप्त",
+        "YES": "हां",
+        "NO": "कोई",
+        "HANGUPCAUSE_1": "1 = अनाबंटित संख्या",
+        "HANGUPCAUSE_16": "16 = Normail कॉल उम्मायदों",
+        "HANGUPCAUSE_17": "17 = उपयोगकर्ता व्यस्त",
+        "HANGUPCAUSE_18": "(18) = उपयोगकर्ता प्रत्युत्तर नहीं telehone डिवाइस से कनेक्ट नहीं",
+        "HANGUPCAUSE_21": "21 = कॉल खारिज",
+        "HANGUPCAUSE_22": "22. @नंबर बदल दिया।",
+        "HANGUPCAUSE_27": "27. @गंतव्य के आदेश",
+        "HANGUPCAUSE_38": "38. @नेटवर्क से",
+        "HANGUPCAUSE_41": "41. @अस्थायी असफलता",
+        "RANDOM": "रैंडम",
+        "ALPHABETICAL": "वर्णक्रमानुसारी",
+        "NO_APPS_AVAILABLE": "कोई अनुप्रयोग उपलब्ध",
+        "DOWNLOAD_VOICERECORDING": "रिकॉर्डिंग आवाज डाउनलोड करें",
+        "DELETE_VOICERECORDING": "ध्वनि स्वर रिकॉर्ड हटाना",
+        "INTERNAL": "आंतरिक",
+        "PHONE_STATE": "फ़ोन राज्य",
+        "PHONE_STATUS": "फोन स्थिति",
+        "REGISTERED": "पंजीकृत",
+        "UNREGISTERED": "अपंजीकृत",
+        "LAGGED": "ज्यों",
+        "REACHABLE": "प्राप्य",
+        "UNREACHABLE": "द्वाराजाना दुर्गम",
+        "UNKNOWN": "अज्ञात",
+        "NOT_INUSE": "उपयोग में नहीं",
+        "INUSE": "में उपयोग",
+        "BUSY": "व्यस्त",
+        "INVALID": "अमान्य",
+        "UNAVAILABLE": "अनुपलब्ध",
+        "RINGING": "घंटियां बजने लगी।",
+        "ONHOLD": "होल्ड पर",
+        "RING": "रिंग",
+        "UP": "ऊपर",
+        "INFO": "जानकारी",
+        "TRUNKS": "तनों",
+        "REGISTRY": "रजिस्ट्री",
+        "NO_REGISTRY": "कोई रजिस्टधळ",
+        "LOGGED_IN": "लॉग इन नहीं",
+        "PAUSED": "अनुक्रमणिका रोकी गई",
+        "WAITING": "प्रतीक्षा",
+        "TALKING": "की बात",
+        "DID": "हुआ",
+        "CALLER": "कॉलर",
+        "TOTAL": "कुल",
+        "ANSWERED": "उत्तर",
+        "ABANDONED": "बिगडा हुआ",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "होल्ड वाले समय",
+        "AVG_DURATION": "Av अवधि",
+        "AVG_BILLABLE": "वाले सकते",
+        "SOURCE": "के स्रोत",
+        "DESTINATION": "गंतव् य",
+        "REJECTED": "अस्वीकार",
+        "FAILED": "विफल",
+        "CALLED": "कहा जाता",
+        "CONNECTED": "कनेक्ट किया गया",
+        "NO_RATING": "कोई रेटिंग",
+        "EDIT_VOICERECORDING": "ध्वनि स्वर रिकॉर्ड संपादित करें",
+        "APPLICATION_NAME": "अनुप्रयोग नाम",
+        "ARGUMENTS": "तर्क",
+        "ENABLED": "सक्षम",
+        "POWERLEVEL": "पॉवर स्तर",
+        "DROPRATE": "बीच में ही पढाई छोड देने की दर",
+        "AGENTBUSYFACTOR": "एजेंट व्यस्त कारक",
+        "PREDICTIVEOPTIMIZATION": "प्रिडिक्टिव आप्टीमाइजेशन",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "प्रिडिक्टिव को ईष्टतम बनाने की प्रतिशतता",
+        "READY": "तैयार",
+        "PAUSE": "विराम",
+        "UNPAUSE": "Unpause",
+        "DEFAULT_PAUSE": "डिफ़ॉल्ट रूप से रोकें",
+        "AGENTADD_QUEUE": "लोकतंत्रमें अभियान एजेंट को जोड़ें",
+        "AGENTSADD_QUEUE": "लोकतंत्रमें एजेंटों के अभियान में जोड़ें",
+        "ALL_TEAMS": "सभी टीमें भाग लेंगी।",
+        "SELECTED_TEAMS": "चयनित टीम",
+        "ALL_LISTS": "सभी सूचियां",
+        "SELECTED_LISTS": "चयनित सूचियां",
+        "ALL_AGENTS": "सभी एजेंटों",
+        "SELECTED_AGENTS": "चयनित एजेंटों",
+        "IVRCAMPAIGNS": "IVR अभियान",
+        "CONCURRENTCALLS": "अधिकतम समवर्ती कॉल्स",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Blacklist जोड़ें",
+        "DELETE_IVRCAMPAIGN": "अभियान को हटाएं",
+        "EDIT_IVRCAMPAIGN": "संपादित करने के लिए अभियान",
+        "NEW_IVRCAMPAIGN": "नई IVR अभियान",
+        "ADD_IVRCAMPAIGN": "IVR अभियान में जोड़ें",
+        "LISTADD_IVRCAMPAIGN": "सूची में जोड़ें",
+        "BLACKLISTADD_IVRCAMPAIGN": "Blacklist जोड़ें",
+        "HISTORY": "इतिहास",
+        "FINAL": "फायनल में",
+        "BLACKLIST": "Blacklist",
+        "PREDICTIVEINTERVAL": "प्रिडिक्टिव अंतराल",
+        "WAITING_FOR_AGENT": "एजेंट के लिए प्रतीक्षारत",
+        "TOTAL_OFFERED": "कुल की पेशकश",
+        "RUNNING": "चला",
+        "INTERVAL_IS_OVERTIME": "अंतराल है, समयोपरि",
+        "TRUNK_IS_NOT_REACHABLE": "सूंड का प्रत्युत्तर नहीं है।",
+        "AGENTS_NOT_LOGGED": "एजेंट लॉग इन नहीं",
+        "NOT_ACTIVE": "सक्रिय नहीं",
+        "AVAILABLE_CONTACTS_FINISHED": "संपर्क उपलब्ध स्थान",
+        "SCHEDULEDAT": "अनुसूचित पर",
+        "HOPPERBLACKS": "हॉपर Blacklist",
+        "NO_HOPPERBLACK_AVAILABLE": "कोई आइटम उपलब्ध",
+        "HOPPERFINALS": "हॉपर के फायनल में",
+        "NO_HOPPERFINAL_AVAILABLE": "कोई आइटम उपलब्ध",
+        "HOPPERHISTORIES": "हॉपर इतिहास",
+        "NO_HOPPERHISTORY_AVAILABLE": "कोई आइटम उपलब्ध",
+        "DELETE_HOPPERHISTORY": "हटाना",
+        "DELETE_HOPPERFINAL": "हटाना",
+        "CONTACTID": "संपर्क ID",
+        "STARTTIME": "समय प्रारंभ करें",
+        "RESPONSETIME": "प्रत्युत्तर समय",
+        "ENDTIME": "समाप्ति समय",
+        "STATUS": "की स्थिति",
+        "HOPPERS": "हॉपर",
+        "NO_HOPPER_AVAILABLE": "कोई आइटम उपलब्ध",
+        "EDIT_HOPPER": "हॉपर संपादित करें",
+        "DELETE_HOPPER": "हॉपर को हटाएं",
+        "AGENTTIMEOUT": "एजेंट समयबाह्य",
+        "DISPOSITION": "सरकारीतंत्र",
+        "REDIRECT_TO_NUMBER": "कई फ़ॉर्म सबमिशन",
+        "REDIRECT_TO_AGENT": "एजेंट को फ़ॉर्म सबमिशन",
+        "CLOSING": "बंद",
+        "MANAGED": "संचालित",
+        "BACKUPTRUNK": "बैकअप सूंड",
+        "GLOBALINTERVAL": "ग्लोबल अंतराल",
+        "RESCHEDULED_CONTACTS": "संपर्क को फिर से",
+        "INTERVAL_IS_NULL": "समितिविवाह अंतराल है।",
+        "TIMEZONE_UNKNOW": "Unknow समय क्षेत्र",
+        "INTERVAL_IS_EMPTY": "अंतराल रिक्त है",
+        "LOGOUT": "इसपर",
+        "EDIT_CAMPAIGN": "संपादित करने के लिए अभियान",
+        "LIMITED": "सीमित",
+        "IVR_CAMPAIGNS": "Ivr अभियान",
+        "IS_DISACTIVED": "यह Disactived",
+        "TOTAL_MANAGED": "कुल प्रबंधन"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/it.json b/public/app/main/apps/motiondialer/i18n/it.json
new file mode 100644 (file)
index 0000000..0f70f1b
--- /dev/null
@@ -0,0 +1,476 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Motion Bull",
+        "QUEUECAMPAIGNS": "Campagne Coda",
+        "IVRCAMPAIGNS": "Campagne IVR",
+        "HISTORY": "Storia",
+        "FINAL": "Finale",
+        "BLACKLIST": "Blacklist",
+        "NAME": "Nome",
+        "VOICEQUEUES": "Code Voce",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "BACK": "Indietro",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutto",
+        "SELECT_NONE": "Deseleziona tutto",
+        "DELETE_VOICEDISPOSITION": "Elimina Disposizione Voce",
+        "EDIT_VOICEDISPOSITION": "Modifica Disposizione Voce",
+        "EDIT_VOICEQUEUE": "Modifica Coda Voce",
+        "DELETE_VOICEQUEUE": "Elimina Coda Voce",
+        "MOHSOUNDS": "Suoni Musiche di Attesa",
+        "STRATEGY": "Strategia",
+        "DESCRIPTION": "Descrizione",
+        "ADD_VOICEQUEUE": "Aggiungi Coda Voce",
+        "CREATED_AT": "Creato il",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Applicatione Custom."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "TIMEOUT_REQUIRED": "Il Timeout è richiesto",
+            "PHONENUMBER_REQUIRED": "Il Numero di Telefono è richiesto",
+            "CONTEXT_REQUIRED": "Il Contesto è richiesto",
+            "DESTINATIONPATTERN_REQUIRED": "Il Pattern di Destinazione è richiesto",
+            "FULLNAME_REQUIRED": "Il Nome Completo è richiesto",
+            "EMAIL_REQUIRED": "L' indirizzo email è richiesto",
+            "EMAIL_MUST_VALID": "L' indirizzo email deve essere in un formato valido",
+            "MAILBOX_REQUIRED": "La Mailbox è richiesta",
+            "PASSWORD_REQUIRED": "La Password è richiesta",
+            "CONFIRM_NOT_MATCH": "Le password non coincidono",
+            "TIMEZONE_REQUIRED": "Il Fuso Orario è richiesto",
+            "PREFIX_REQUIRED": "Il Prefisso è richiesto",
+            "OPTIONS_REQUIRED": "Le Opzioni sono richieste",
+            "AFTERCALLWORKDURATION_REQUIRED": "La durata della pausa After Call Work è richiesta",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "La Tecnologia/Risorsa è richiesta",
+            "PHONE_REQUIRED": "Il Telefono è richiesto",
+            "VALUE_REQUIRED": "Il Valore è richiesto",
+            "EXTENSION_REQUIRED": "L'Extension è richiesta",
+            "PRIORITY_REQUIRED": "La Priorità è richiesta",
+            "EMAIL_REQUUIRED": "L'e-mail è obbligatorio",
+            "GLOBALMAXRETRY_REQUIRED": "Max tentativi è richiesto",
+            "CONGESTIONMAXRETRY_REQUIRED": "Max tentativi è richiesto",
+            "CONGESTIONRETRYTIME_REQUIRED": "Tempo di ripetizione è richiesto",
+            "BUSYMAXRETRY_REQUIRED": "Max tentativi è richiesto",
+            "BUSYRETRYTIME_REQUIRED": "Tempo di ripetizione è richiesto",
+            "NOANSWERMAXRETRY_REQUIRED": "Max tentativi è richiesto",
+            "NOANSWERRETRYTIME_REQUIRED": "Tempo di ripetizione è richiesto",
+            "QUEUETIMEOUT_REQUIRED": "Timeout della coda è richiesto",
+            "ORIGINATETIMEOUT_REQUIRED": "Provenire Timeout è richiesto",
+            "GLOBALINTERVAL_REQUIRED": "Intervallo globale è richiesto"
+        },
+        "GENERAL": "Generale",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Lunghezza Massima",
+        "RETRY": "Riprova",
+        "WRAPUPTIME": "Wrapup Time",
+        "WEIGHT": "Peso",
+        "JOINWHENEMPTY": "Entra quando vuota",
+        "LEAVEWHENEMPTY": "Lascia quando vuota",
+        "HELP": {
+            "ACTIVE": "Attivo",
+            "TIMEOUT": "Specifica il numero di secondi per i quali far squillare il dispositivo del membro della coda.",
+            "MAXLENGTH": "Specifica il numero massimo di chiamanti che possono attendere in una coda. Un valore di zero indica un numero illimitato di chiamanti in attesa.",
+            "RETRY": "Specifica il numero di secondi da attendere prima di chiamare il prossimo membro della coda alla scadenza del timeout.",
+            "WRAPUPTIME": "Il numero di secondi in cui tenere un membro della coda in stato 'Non disponibile' dopo aver completato una chiamata.",
+            "WEIGHT": "Definisce il peso di una coda. Una coda con un peso più alto avrà una priorità primaria quando dei membri sono associati a più code.",
+            "JOINWHENEMPTY": "Indica se un chiamante deve essere aggiunto ad una coda quando questa non ha nessun membro.",
+            "LEAVEWHENEMPTY": "Usato per controllare se i chiamanti devono essere buttati fuori da una coda quando non ci sono più membri disponibili a rispondere.",
+            "ANNOUNCEFREQUENCY": "Definisce quanto spesso annunciare la posizione del chiamante e/o il tempo stimato di attesa nella coda. Impostare a zero per disabilitarlo.",
+            "MINANNOUNCEFREQUENCY": "Specifica la minima quantità di tempo tra gli annunci della posizione del chiamante. E' usato quando la posizione del chiamante può cambiare frequentemente, per prevenire che il chiamante ascolti multipli aggiornamente in un breve periodo di tempo.",
+            "PERIODICANNOUNCEFREQUENCY": "Indica quanto spesso riprodurre gli annunci periodici per il chiamante.",
+            "ANNOUNCEPOSITIONLIMIT": "Usato se l' annuncio della posizione del chiamante è stato definito come limit o more.",
+            "AFTERCALLWORKDURATION": "La durata della pausa scatenata dall' evento After Call Work",
+            "MEMBERDELAY": "Usato se si vuole che ci sia un ritardo prima che il chiamante e il membro della coda vengano connessi",
+            "MUSICONHOLD": "Imposta la classe di musica d' attesa da usare per una particolare coda.",
+            "ANNOUNCETOAGENT": "Usato per riprodurre un annuncio all' agente che ha risposto alla chiamata, di solito per informarlo da quale coda arriva il chiamante.",
+            "RANDOMPERIODICANNOUNCE": "Se impostato a yes gli annunci periodici verranno riprodotti in ordine casuale.",
+            "ANNOUNCEHOLDTIME": "Definisce se annunciare il tempo di attesa stimato insieme agli annunci periodici.",
+            "ANNOUNCECALLERPOSITION": "Definisce se annunciare la posizione del chiamante. Se impostato su no la posizione non verrà amai annunciata. Se impostata su yes la posizione verrà sempre annunciata. Se impostato su limit il chiamante ascolterà la sua posizione solo se entro il limite dell' announce position limit. Se è impostato su more il chiamante ascolterà la sua posizione se si trova oltre il limite in announce position limit.",
+            "REPORTHOLDTIMEAGENT": "Abilita l' annuncio del tempo di attesa del chiamante al membro della coda, prima della connessione al canale.",
+            "PERIODICANNOUNCE": "Una serie di annunci periodici da riprodurre, nell' ordine in cui sono definiti.",
+            "HOLDTIMEANNOUNCE": "Se non definito, riproduce il valore di default (“Hold time”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "YOUARENEXTANNOUNCE": "Se non definito, riproduce il valore di default (“You are now first in line”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "THEREAREANNOUNCE": "Se non definito, riproduce il valore di default (“There are”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "WAITINGCALLSANNOUNCE": "Se non definito, riproduce il valore di default (“calls waiting”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Se non definito, riproduce il valore di default (“The current estimated hold time is”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "MINUTESANNOUNCE": "Se non definito, riproduce il valore di default (“minutes”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "MINUTEANNOUNCE": "Se non definito, riproduce il valore di default (“minute”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "SECONDSANNOUNCE": "Se non definito, riproduce il valore di default (“seconds”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "THANKYOUANNOUNCE": "Se non definito, riproduce il valore di default (“Thank you for your patience”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "AFTERCALLWORK": "Se attivo, l'agente verrà messo in Pausa al completamento di una chiamata sulla coda",
+            "AUTOPAUSE": "Abilita/Disabilita la pausa automatica dei membri che falliscono la rispota ad una chiamata. Se attivo mette il membro in pausa su tutte le sue code.",
+            "RINGINUSE": "Usato per evitare di inviare chiamate ai membri il cui stato è In Use.",
+            "TIMEOUTRESTART": "Se impostato a yes, resetta il timeout di un agente per rispondere ad una chiamata se il canale è in stato BUSY o CONGESTION.",
+            "MONITORFORMAT": "Specifica il formato del file di registrazione. Se impostato su inactive le chiamate non verranno registrate.",
+            "CONTEXT": "Abilita il chiamante ad uscire dalla coda premendo un DTMF digit. Se il contesto è specificato e il chiamante inserisce un numero, si cercherà una corrispondenza con quel numero nel contesto specificato e il dialplan contimuerà lì.",
+            "SETINTERFACEVARIABLES": "Se impostato su si, appena prima che il chiamante sia collegato al membro della coda vengono settate alcune variabili(vedi wiki)",
+            "SETQUEUEVARIABLES": "Se impostato su si, appena prima che il chiamante sia collegato al membro della coda e appena prima che il chiamante esca dalla coda vengono settate alcune variabili(vedi wiki)",
+            "SETQUEUEENTRYVARIABLES": "Se impostato su si, appena prima che il chiamante sia collegato al membro della coda vengono settate alcune variabili(vedi wiki)",
+            "RECORDING": "Abilita la registrazione della chiamata",
+            "VOICEMAIL_CONTEXT": "Il contesto dell' extension relativa.",
+            "METHOD": "Generatore di chiamata in uscita metodo.",
+            "MAXCONCURRENTCALLS": "Il numero massimo di chiamate simultanee che sarà originato dal generatore di chiamata in uscita. Chiamate illimitate se il valore è impostato a 0.",
+            "CONCURRENTCALLS": "Il numero massimo di chiamate simultanee che sarà originato dal generatore di chiamata in uscita.",
+            "ORIGINATECALLERIDNAME": "Id chiamante in uscita nome",
+            "ORIGINATECALLERIDNUMBER": "Id chiamante in uscita numero",
+            "ORIGINATETIMEOUT": "Tempo in secondi per il originari della chiamata in uscita per stabilire la connessione. Se Connection non è stabilita la originano lo stato sarà alcuna risposta.",
+            "QUEUETIMEOUT": "Il tempo in secondi in cui una chiamata può attendere nella coda prima di esso è sceso",
+            "GLOBALMAXRETRY": "Numero massimo di volte in cui un contatto viene chiamato prima di considerare chiusa",
+            "CONGESTIONMAXRETRY": "Numero massimo di volte in cui un contatto non è riuscita per il motivo di congestione viene chiamato prima di considerare chiusa",
+            "CONGESTIONRETRYTIME": "Tempo in minuti prima di riprovare a raggiungere un contatto non riuscita per il motivo di congestione",
+            "BUSYMAXRETRY": "Numero massimo di volte in cui un contatto non è riuscita per il motivo occupato viene chiamato prima di considerare chiusa",
+            "BUSYRETRYTIME": "Tempo in minuti prima di riprovare a raggiungere un contatto non riuscita per il motivo di occupato",
+            "NOANSWERMAXRETRY": "Numero massimo di volte in cui un contatto non riuscito per nessun motivo di risposta viene chiamato prima di considerare chiusa",
+            "NOANSWERRETRYTIME": "Tempo in minuti prima di riprovare a raggiungere un contatto non riuscito per nessun motivo di risposta",
+            "POWERLEVEL": "Numero di contatti per chiamare un agente disponibile.",
+            "PREDICTIVEOPTIMIZATION": "Un fattore di ottimizzazione secondo l'algoritmo predittivo.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Percentuale basata sulla scelta di previsione del fattore di ottimizzazione",
+            "PREDICTIVEINTERVAL": "Intervallo di tempo in minuti per essere considerato dall'algoritmo predittivo per calcolare la quantità di chiamate per generare per ottimizzare la previsione del fattore di ottimizzazione",
+            "AGENTTIMEOUT": "Consente di specificare il numero di secondi a squillare il dispositivo di un agente.",
+            "GLOBALINTERVAL": "Global intervallo di tempo durante il quale il generatore di chiamata è consentito di chiamare i contatti. Si prega di prestare particolare attenzione quando si modifica questo campo. Noi non sarà responsabile o responsabile per la mancata osservanza della membro Autodialer leggi e regolamenti."
+        },
+        "MUSICONHOLD": "Musica di attesa",
+        "ANNOUNCETOAGENT": "Annuncia all' Agente",
+        "ANNOUNCEMENTS": "Annunci",
+        "ADVANCED": "Avanzate",
+        "ANNOUNCEFREQUENCY": "Frequenza Annunci",
+        "MINANNOUNCEFREQUENCY": "Frequenza Minima Annunci",
+        "PERIODICANNOUNCEFREQUENCY": "Frequenza Annuncio Periodico",
+        "RANDOMPERIODICANNOUNCE": "Annuncio Periodico Random",
+        "ANNOUNCEHOLDTIME": "Annuncia tempo di attesa",
+        "ANNOUNCECALLERPOSITION": "Annuncia posizione del chiamante",
+        "ANNOUNCEPOSITIONLIMIT": "Limite Annuncio Posizione",
+        "REPORTHOLDTIMEAGENT": "Riferisci tempo di attesa agente",
+        "PERIODICANNOUNCE": "Annuncio Periodico",
+        "HOLDTIMEANNOUNCE": "Annuncio Tempo di Attesa",
+        "YOUARENEXTANNOUNCE": "Annuncio 'Sei il prossimo'",
+        "THEREAREANNOUNCE": "Annuncio 'Ci sono'",
+        "WAITINGCALLSANNOUNCE": "Annuncio Chiamate in Attesa",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Annuncio Tempo di Attesa stimato",
+        "MINUTESANNOUNCE": "Annuncio 'minuti'",
+        "MINUTEANNOUNCE": "Annuncio 'minuto'",
+        "SECONDSANNOUNCE": "Annuncio 'secondi'",
+        "THANKYOUANNOUNCE": "Annuncio 'Grazie'",
+        "AUTOPAUSE": "Pause Automatica",
+        "AFTERCALLWORK": "After Call Work",
+        "AFTERCALLWORKDURATION": "Durata After Call Work",
+        "RINGINUSE": "Squilla in uso",
+        "MEMBERDELAY": "Ritardo Membro",
+        "TIMEOUTRESTART": "Riavvia Timeout",
+        "MONITORFORMAT": "Formato Registrazione",
+        "SETINTERFACEVARIABLES": "Imposta Variabili d' interfaccia",
+        "SETQUEUEVARIABLES": "Imposta Variabili di Coda",
+        "SETQUEUEENTRYVARIABLES": "Imposta Variabili di entrata in Coda",
+        "CONTEXT": "Contesto",
+        "SAVE": "Salva",
+        "SETTINGS": "Impostazioni",
+        "INBOUNDROUTES": "Rotte Inbound",
+        "PHONENUMBER": "Numero di Telefono",
+        "ADD_INBOUNDROUTE": "Aggiungi Rotta Inbound",
+        "EDIT_INBOUNDROUTE": "Modifica Rotta Inbound",
+        "DELETE_INBOUNDROUTE": "Elimina Rotta Inbound",
+        "ACTIONS": "Azioni",
+        "OUTBOUNDROUTES": "Rotte Outbound",
+        "DESTINATIONPATTERN": "Pattern di Destinazione",
+        "ADD_OUTBOUNDROUTE": "Aggiungi Rotta Outbound",
+        "EDIT_OUTBOUNDROUTE": "Modifica Rotta Outbound",
+        "DELETE_OUTBOUNDROUTE": "Elimina Rotta Outbound",
+        "CUTDIGITS": "Cut Digits",
+        "RECORDING": "Registrazione",
+        "RECORDINGFORMAT": "Formato Registrazione",
+        "INTERNALROUTES": "Rotte Interne",
+        "ADD_INTERNALROUTE": "Aggiungi Rotta Interna",
+        "EDIT_INTERNALROUTE": "Modifica Rotta Interna",
+        "DELETE_INTERNALROUTE": "Elimina Rotta Interna",
+        "CONTEXTS": "Contesti",
+        "ADD_CONTEXT": "Aggiungi Contesto",
+        "EDIT_CONTEXT": "Modifica Contesto",
+        "DELETE_CONTEXT": "Elimina Contesto",
+        "VOICEMAILS": "Caselle Vocali",
+        "ADD_VOICEMAIL": "Aggiungi Casella Vocale",
+        "EDIT_VOICEMAIL": "Modifica Casella Vocale",
+        "DELETE_VOICEMAIL": "Elimina Casella Vocale",
+        "FULLNAME": "Nome Completo",
+        "EMAIL": "Email",
+        "MAILBOX": "Mailbox",
+        "PASSWORD": "Password",
+        "CONFIRM_PASSWORD": "Conferma Password",
+        "TIMEZONE": "Fuso Orario",
+        "ATTACH": "Allega",
+        "ENVELOPE": "Incarta",
+        "DELETE": "Elimina",
+        "EMAILBODY": "Corpo Email",
+        "EMAILSUBJECT": "Soggetto Email",
+        "MAXSECONDS": "Max Secondi",
+        "MAXMESSAGES": "Max Messaggi",
+        "MESSAGES": "Messaggi",
+        "SORT": "Ordine",
+        "ADD_MUSICONHOLD": "Aggiungi Musica di Attesa",
+        "MUSICONHOLDS": "Musiche di Attesa",
+        "EDIT_MUSICONHOLD": "Modifica Musiche di Attesa",
+        "DELETE_MUSICONHOLD": "Elimina Musiche di Attesa",
+        "DIRECTORY": "Cartella",
+        "AUDIOFILES": "File Audio",
+        "RECORDINGS": "Registrazioni",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefisso",
+        "OPTIONS": "Opzioni",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Aggiungi ChanSpy",
+        "EDIT_CHANSPY": "Modifica ChanSpy",
+        "DELETE_CHANSPY": "Elimina ChanSpy",
+        "AGENTS": "Agenti",
+        "TELEPHONES": "Telefoni",
+        "QUEUES": "Code",
+        "QUEUE_CALLS": "Chiamate Code",
+        "QUEUE_PARAMETERS": "Parametri Code",
+        "ABANDONED_CALLS": "Chiamate Abbandonate",
+        "OUTBOUND_CALLS": "Chiamate Outbound",
+        "AGI": "AGI",
+        "DIAL": "Dial",
+        "INTERNALDIAL": "Dial Interna",
+        "EXTERNALDIAL": "Dial Esterna",
+        "RINGGROUP": "Ring Group",
+        "PLAYBACK": "Playback",
+        "QUEUE": "Coda",
+        "SET": "Set",
+        "VOICEMAIL": "Casella Vocale",
+        "GOTO": "GoTo",
+        "HANGUP": "Riaggancia",
+        "CUSTOM": "Custom",
+        "PROJECT": "Progetto Cally-Square",
+        "TECHNOLOGY/RESOURCE": "Tecnologia/Risorsa",
+        "URL": "URL",
+        "EDIT_APP": "Modifica Applicazione",
+        "EDIT_INTERVAL": "Modifica Intervallo",
+        "DELETE_APP": "Elimina Applicazione",
+        "INTERVALS": "Intervalli",
+        "USER": "Utente",
+        "TRUNK": "Trunk",
+        "PHONE": "Telefono",
+        "AUDIO_FILES": "File audio",
+        "ANNOUNCE_OVERRIDES": "Announce Ovverride",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "RULE": "Regola",
+        "POSITION": "Posizione",
+        "ANSWER": "Rispondi",
+        "VALUE": "Valore",
+        "MAILBOX@CONTEXT": "Mailbox@Contesto",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priorità",
+        "HANGUP_CAUSE": "Causa Hangup",
+        "OUTBOUNDDIAL": "Dial Outbound",
+        "CALLER_ID": "ID Chiamante",
+        "NO_MESSAGE_AVAILABLE": "Nessun messaggio disponibile",
+        "NO_SOUND_AVAILABLE": "Nessun suono disponibile",
+        "VOICERECORDINGS": "Registrazioni Voce",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Voce",
+        "REALTIME": "Realtime",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Contesto",
+        "NO_MOHSOUND_AVAILABLE": "Nessuna Musica d' Attesa disponibile",
+        "FILE": "File",
+        "ADD_MOHSOUND": "Aggiungi audio Musica di Attesa",
+        "DOWNLOAD_MOHSOUND": "Scarica audio Musica d' Attesa",
+        "DELETE_MOHSOUND": "Elimina audio Musica d' Attesa",
+        "UNIQUEID": "Unique ID",
+        "AGENT": "Agente",
+        "TYPE": "Tipo",
+        "RATING": "Valutazione",
+        "AUDIO": "Audio",
+        "DATE": "Data",
+        "NEW_VOICEQUEUE": "Nuova Coda Voce",
+        "NEW_INBOUNDROUTE": "Nuova Rotta Inbound",
+        "NEW_OUTBOUNDROUTE": "Nuova Rotta Outbound",
+        "NEW_INTERNALROUTE": "Nuova Rotta Interna",
+        "NEW_CONTEXT": "Nuovo Contesto",
+        "NEW_VOICEMAIL": "Nuova Casella Vocale",
+        "NEW_MUSICONHOLD": "Nuova Musica di attesa",
+        "NEW_CHANSPY": "Nuovo ChanSpy",
+        "PENALTY": "Penalità",
+        "ADD_TEAM_TO_VOICEQUEUE": "Aggiungi Team alla coda",
+        "ADD_AGENT_TO_VOICEQUEUE": "Aggiungi Agente alla coda",
+        "EDIT_DIAL": "Modifica Dial",
+        "EDIT_AGI": "Modifica AGI",
+        "EDIT_INTERNALDIAL": "Modifica Dial interna",
+        "EDIT_EXTERNALDIAL": "Modifica dial esterna",
+        "EDIT_RINGGROUP": "Modifica Ring Group",
+        "EDIT_PLAYBACK": "Modifica Playback",
+        "EDIT_QUEUE": "Modifica Coda",
+        "EDIT_SET": "Modifica Set",
+        "EDIT_GOTO": "Modifica GoTo",
+        "EDIT_HANGUP": "Modifica Hangup",
+        "EDIT_CUSTOM": "Modifica Custom",
+        "DURATION": "Durata",
+        "RECEIVED_AT": "Ricevuto il",
+        "YES": "Si",
+        "NO": "No",
+        "HANGUPCAUSE_1": "1 = Numero non allocato",
+        "HANGUPCAUSE_16": "16 = Chiamata completata",
+        "HANGUPCAUSE_17": "17 = Utente occupato",
+        "HANGUPCAUSE_18": "18 = Nessuna risposta da utente (telefono non connesso)",
+        "HANGUPCAUSE_21": "21 = Chiamata rifiutata",
+        "HANGUPCAUSE_22": "22 = Numero cambiato",
+        "HANGUPCAUSE_27": "27 = Destinazione fuori servizio",
+        "HANGUPCAUSE_38": "38 = Rete fuori servizio",
+        "HANGUPCAUSE_41": "41 = Fallimento temporaneo",
+        "RANDOM": "Casuale",
+        "ALPHABETICAL": "Alfabetico",
+        "NO_APPS_AVAILABLE": "Nessuna applicazione disponibile",
+        "DOWNLOAD_VOICERECORDING": "Download Registrazione Voce",
+        "DELETE_VOICERECORDING": "Elimina Registrazione Voce",
+        "INTERNAL": "Interno",
+        "PHONE_STATE": "Stato Telefono",
+        "PHONE_STATUS": "Uso Telefono",
+        "REGISTERED": "Registrato",
+        "UNREGISTERED": "Non registrato",
+        "LAGGED": "Ritardato",
+        "REACHABLE": "Raggiungibile",
+        "UNREACHABLE": "Irraggiungibile",
+        "UNKNOWN": "Sconosciuto",
+        "NOT_INUSE": "Non in uso",
+        "INUSE": "In uso",
+        "BUSY": "Occupato",
+        "INVALID": "Invalido",
+        "UNAVAILABLE": "Non disponibile",
+        "RINGING": "Squilla",
+        "ONHOLD": "In attesa",
+        "RING": "Squilla",
+        "UP": "Rsiposto",
+        "INFO": "Info",
+        "TRUNKS": "Trunk",
+        "REGISTRY": "Registrazione",
+        "NO_REGISTRY": "Nessuna registrazione",
+        "LOGGED_IN": "Connesso",
+        "PAUSED": "In pausa",
+        "WAITING": "In attesa",
+        "TALKING": "In conversazione",
+        "DID": "DID",
+        "CALLER": "Chiamante",
+        "TOTAL": "Totale",
+        "ANSWERED": "Risposte",
+        "ABANDONED": "Abbandonate",
+        "UNMANAGED": "Non gestite",
+        "AVG_HOLD_TIME": "Tempo medio di attesa",
+        "AVG_DURATION": "Durata media",
+        "AVG_BILLABLE": "Fatturabile medio",
+        "SOURCE": "Sorgente",
+        "DESTINATION": "Destinazione",
+        "REJECTED": "Rifiutata",
+        "FAILED": "Fallita",
+        "CALLED": "Called",
+        "CONNECTED": "Connected",
+        "NO_RATING": "No rating",
+        "EDIT_VOICERECORDING": "Edit Voice Recording",
+        "APPLICATION_NAME": "Nome Applicazione",
+        "ARGUMENTS": "Argomenti",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "EDIT_QUEUECAMPAIGN": "Modifica Campagna",
+        "LISTADD_QUEUECAMPAIGN": "Aggiungi Lista",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Aggiungi Blacklist",
+        "TEAMADD_QUEUECAMPAIGN": "Aggiungi Team",
+        "AGENTADD_QUEUECAMPAIGN": "Aggiungi Agente",
+        "DELETE_QUEUECAMPAIGN": "Cancella Campagna",
+        "DELETE_IVRCAMPAIGN": "Cancella Campagna",
+        "EDIT_IVRCAMPAIGN": "Modifica Campagna",
+        "NEW_IVRCAMPAIGN": "Nuova IVR Campagna",
+        "ADD_IVRCAMPAIGN": "Aggiungi IVR Campagna",
+        "LISTADD_IVRCAMPAIGN": "Aggiungi List",
+        "BLACKLISTADD_IVRCAMPAIGN": "Aggiungi Blacklist",
+        "ENABLED": "Abilitato",
+        "INTERVAL": "Intervallo di tempo",
+        "NEW_QUEUECAMPAIGN": "Nuova campagna di coda",
+        "ACTIVE": "Attivo",
+        "METHOD": "Metodo",
+        "ADD_QUEUECAMPAIGN": "Aggiungi campagna di coda",
+        "CAMPAIGN": "Campagna",
+        "MAXCONCURRENTCALLS": "Massimo numero di chiamate simultanee",
+        "CONCURRENTCALLS": "Massimo numero di chiamate simultanee",
+        "ORIGINATE": "Sono originari",
+        "ORIGINATECALLERIDNAME": "ID chiamante",
+        "ORIGINATECALLERIDNUMBER": "Numero ID chiamante",
+        "ORIGINATETIMEOUT": "Timeout di originare",
+        "QUEUEOPTIONS": "Le opzioni della coda",
+        "QUEUETIMEOUT": "Timeout della coda",
+        "CALLYSQUAREPROJECT": "Calmente progetto quadrato",
+        "RETRYANDFREQUENCY": "Le impostazioni delle richiamate",
+        "GLOBAL": "Global",
+        "GLOBALMAXRETRY": "Max tentativi",
+        "CONGESTION": "La congestione",
+        "CONGESTIONMAXRETRY": "Max tentativi",
+        "CONGESTIONRETRYTIME": "Tempo di ripetizione [min]",
+        "BUSYMAXRETRY": "Max tentativi",
+        "BUSYRETRYTIME": "Tempo di ripetizione [min]",
+        "NOANSWER": "Nessuna risposta",
+        "NOANSWERMAXRETRY": "Max tentativi",
+        "NOANSWERRETRYTIME": "Tempo di ripetizione [min]",
+        "QUEUE_PARAMS": "I parametri della coda",
+        "ORIGINATED": "Originato",
+        "MESSAGE": "Messaggio",
+        "DROPPED": "Scesa",
+        "POWERLEVEL": "Il livello di potenza",
+        "DROPRATE": "La velocità di discesa",
+        "AGENTBUSYFACTOR": "Agente Fattore di occupato",
+        "PREDICTIVEOPTIMIZATION": "Ottimizzazione predittiva",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Previsione percentuale di ottimizzazione",
+        "READY": "Ready",
+        "PAUSE": "Pausa",
+        "UNPAUSE": "Esci dalla pausa",
+        "DEFAULT_PAUSE": "Pausa di default",
+        "AGENTADD_QUEUE": "Aggiungi agente a campagna di coda",
+        "AGENTSADD_QUEUE": "Aggiungi agenti a campagna di coda",
+        "ALL_TEAMS": "Tutti i Team",
+        "SELECTED_TEAMS": "Team selezionati",
+        "ALL_LISTS": "Tutte le Liste",
+        "SELECTED_LISTS": "Liste selezionate",
+        "ALL_AGENTS": "Tutti gli Agenti",
+        "SELECTED_AGENTS": "Agenti selezionati",
+        "WAITING_FOR_AGENT": "In attesa di un Agente",
+        "TOTAL_OFFERED": "Totali",
+        "RUNNING": "In esecuzione",
+        "INTERVAL_IS_OVERTIME": "Fuori Intervallo",
+        "TRUNK_IS_NOT_REACHABLE": "Trunk non raggiungibile",
+        "AGENTS_NOT_LOGGED": "Agenti non registrati",
+        "NOT_ACTIVE": "Inattivo",
+        "PREDICTIVEINTERVAL": "Intervallo di previsione",
+        "AVAILABLE_CONTACTS_FINISHED": "Disponibili Contatti terminati",
+        "SCHEDULEDAT": "Pianificato a",
+        "HOPPERBLACKS": "Tramoggia di Blacklist",
+        "NO_HOPPERBLACK_AVAILABLE": "Nessun elemento disponibile",
+        "HOPPERFINALS": "Finale della tramoggia",
+        "NO_HOPPERFINAL_AVAILABLE": "Nessun elemento disponibile",
+        "HOPPERHISTORIES": "Storia della tramoggia",
+        "NO_HOPPERHISTORY_AVAILABLE": "Nessun elemento disponibile",
+        "DELETE_HOPPERHISTORY": "Elimina",
+        "DELETE_HOPPERFINAL": "Elimina",
+        "CONTACTID": "ID del contatto",
+        "STARTTIME": "Ora di avvio",
+        "RESPONSETIME": "Tempo di risposta",
+        "ENDTIME": "Ora di fine",
+        "STATUS": "Lo stato",
+        "HOPPERS": "Tramoggia",
+        "NO_HOPPER_AVAILABLE": "Nessun elemento disponibile",
+        "EDIT_HOPPER": "Modifica di tramoggia",
+        "DELETE_HOPPER": "Eliminare la tramoggia",
+        "AGENTTIMEOUT": "Timeout agente",
+        "DISPOSITION": "Disposizione",
+        "REDIRECT_TO_NUMBER": "Reindirizzare a un numero",
+        "REDIRECT_TO_AGENT": "Reindirizzare a un agente",
+        "CLOSING": "La chiusura",
+        "MANAGED": "Riuscito",
+        "BACKUPTRUNK": "Tronco di backup",
+        "GLOBALINTERVAL": "Intervallo globale",
+        "RESCHEDULED_CONTACTS": "Contatti di ripianificazione",
+        "INTERVAL_IS_NULL": "Intervallo è Null",
+        "TIMEZONE_UNKNOW": "Fuso orario sconosciuto.",
+        "INTERVAL_IS_EMPTY": "Intervallo è vuoto",
+        "LOGOUT": "Logout",
+        "EDIT_CAMPAIGN": "Modifica campagna",
+        "LIMITED": "Limitato",
+        "IVR_CAMPAIGNS": "Campagne IVR",
+        "IS_DISACTIVED": "È Disactived",
+        "TOTAL_MANAGED": "Gestione totale"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/ja.json b/public/app/main/apps/motiondialer/i18n/ja.json
new file mode 100644 (file)
index 0000000..248d6cd
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "モーションダイアラー",
+        "QUEUECAMPAIGNS": "キューキャンペーン",
+        "NAME": "名",
+        "VOICEQUEUES": "ボイスキュー",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "BACK": "背面",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "DELETE_VOICEDISPOSITION": "音声のディスポジションを削除",
+        "EDIT_VOICEDISPOSITION": "音声編集処理",
+        "EDIT_VOICEQUEUE": "ボイスキューの編集",
+        "DELETE_VOICEQUEUE": "ボイスキューを削除",
+        "MOHSOUNDS": "Moh サウンド",
+        "STRATEGY": "戦略",
+        "DESCRIPTION": "説明",
+        "INTERVAL": "時間間隔",
+        "ADD_VOICEQUEUE": "ボイスキューを追加します。",
+        "NEW_QUEUECAMPAIGN": "新しいキューキャンペーン",
+        "EDIT_QUEUECAMPAIGN": "編集キャンペーン",
+        "TEAMADD_QUEUECAMPAIGN": "チームの追加",
+        "AGENTADD_QUEUECAMPAIGN": "エージェントの追加",
+        "LISTADD_QUEUECAMPAIGN": "リストの追加",
+        "DELETE_QUEUECAMPAIGN": "キャンペーンを削除",
+        "ACTIVE": "アクティブ",
+        "METHOD": "メソッド",
+        "ADD_QUEUECAMPAIGN": "キューキャンペーンを追加",
+        "CAMPAIGN": "キャンペーン",
+        "MAXCONCURRENTCALLS": "最大同時コール",
+        "ORIGINATE": "発信",
+        "ORIGINATECALLERIDNAME": "発信者 ID の名前",
+        "ORIGINATECALLERIDNUMBER": "発信者 ID 番号",
+        "ORIGINATETIMEOUT": "発信タイムアウト",
+        "QUEUEOPTIONS": "キューのオプション",
+        "QUEUETIMEOUT": "キューのタイムアウト",
+        "CALLYSQUAREPROJECT": "5 Cally 広場プロジェクト",
+        "RETRYANDFREQUENCY": "再試行の設定",
+        "GLOBAL": "グローバル",
+        "GLOBALMAXRETRY": "最大再試行回数",
+        "CONGESTION": "輻輳",
+        "CONGESTIONMAXRETRY": "最大再試行回数",
+        "CONGESTIONRETRYTIME": "再試行時間 [ 分 ]",
+        "BUSYMAXRETRY": "最大再試行回数",
+        "BUSYRETRYTIME": "再試行時間 [ 分 ]",
+        "NOANSWER": "回答はありません",
+        "NOANSWERMAXRETRY": "最大再試行回数",
+        "NOANSWERRETRYTIME": "再試行時間 [ 分 ]",
+        "QUEUE_PARAMS": "キューのパラメータ",
+        "ORIGINATED": "発信された",
+        "MESSAGE": "メッセージ",
+        "DROPPED": "廃棄された",
+        "CREATED_AT": "で作成された",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "( * )のカスタムアプリケーションです。"
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "TIMEOUT_REQUIRED": "タイムアウトは必須です",
+            "PHONENUMBER_REQUIRED": "電話番号が必要です。",
+            "CONTEXT_REQUIRED": "コンテキストが必要です",
+            "DESTINATIONPATTERN_REQUIRED": "宛先パターンが必要な",
+            "FULLNAME_REQUIRED": "完全な名前が必要です",
+            "EMAIL_REQUUIRED": "E メールは必須です",
+            "EMAIL_MUST_VALID": "メールは有効な形式で記述する必要があります",
+            "MAILBOX_REQUIRED": "メールボックスが必要な",
+            "PASSWORD_REQUIRED": "パスワードが必要です",
+            "CONFIRM_NOT_MATCH": "パスワードが一致しません",
+            "TIMEZONE_REQUIRED": "タイムゾーンが必要です",
+            "PREFIX_REQUIRED": "接頭辞が必要です",
+            "OPTIONS_REQUIRED": "オプションは必要な",
+            "AFTERCALLWORKDURATION_REQUIRED": "コールワーク時間が経過した後では必須です",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "テクノロジー / リソースが必要です",
+            "PHONE_REQUIRED": "の電話番号が必要です",
+            "VALUE_REQUIRED": "の値が必要です",
+            "EXTENSION_REQUIRED": "拡張子が必要です",
+            "PRIORITY_REQUIRED": "優先順位は必要です",
+            "GLOBALMAXRETRY_REQUIRED": "最大再試行回数が必要です",
+            "CONGESTIONMAXRETRY_REQUIRED": "最大再試行回数が必要です",
+            "CONGESTIONRETRYTIME_REQUIRED": "再試行時間が必要です",
+            "BUSYMAXRETRY_REQUIRED": "最大再試行回数が必要です",
+            "BUSYRETRYTIME_REQUIRED": "再試行時間が必要です",
+            "NOANSWERMAXRETRY_REQUIRED": "最大再試行回数が必要です",
+            "NOANSWERRETRYTIME_REQUIRED": "再試行時間が必要です",
+            "QUEUETIMEOUT_REQUIRED": "キューのタイムアウトが必要",
+            "ORIGINATETIMEOUT_REQUIRED": "発信タイムアウトが必要",
+            "GLOBALINTERVAL_REQUIRED": "グローバルインターバルが必要です"
+        },
+        "GENERAL": "一般的な",
+        "TIMEOUT": "タイムアウト",
+        "MAXLENGTH": "最大の長さ",
+        "RETRY": "再試行",
+        "WRAPUPTIME": "まとめ時間",
+        "WEIGHT": "重量",
+        "JOINWHENEMPTY": "空になったときに参加",
+        "LEAVEWHENEMPTY": "空になったときのままにしておき",
+        "HELP": {
+            "ACTIVE": "アクティブ",
+            "TIMEOUT": "メンバーのデバイスをリングの秒数を指定します。",
+            "MAXLENGTH": "キューでの待機を許可された発信者の最大数を指定します。 値が 0 の場合、キュー内の発信者は、無制限の数が許可されています。",
+            "RETRY": "キューのメンバーをリングしようとしているときに、タイムアウト値に到達した場合には、キュー内の次のメンバを試行する前に待機する秒数を指定します。",
+            "WRAPUPTIME": "には、コールの完了後にキュー内のメンバが使用不能のままにしておく秒数を指定します。",
+            "WEIGHT": "キューの重みを定義します。 定義されている高いウェイトを使用してキューのメンバーは複数のキューに関連付けられている場合は、最初の優先度を取得します。",
+            "JOINWHENEMPTY": "コントロールのメンバーが利用可能なときに発信者がキューに追加されているかどうか。",
+            "LEAVEWHENEMPTY": "発信者はメンバーがコールを受信できない場合は、キューからの退出をするかどうかを制御するために使用されています。",
+            "ANNOUNCEFREQUENCY": "私たちは、発信者の位置および / または公表のキューに保留時間の予想する頻度を定義します。 このゼロを無効にするには、値を設定します。",
+            "MINANNOUNCEFREQUENCY": "は、キュー内の発信者の位置を再度を発表する前に通過する必要がある時間の最小量を指定します。 これは、発信者の位置を頻繁に変更する場合は、使用されている発信者には時間の短い期間に複数のアップデートを聞くのを防止します。",
+            "PERIODICANNOUNCEFREQUENCY": "定期的なアナウンスは、発信者を確認する必要がある頻度を示します。",
+            "ANNOUNCEPOSITIONLIMIT": "定義した場合は、いずれかの制限値以上の位置を発表するために使用されます。",
+            "AFTERCALLWORKDURATION": "コールワークオプションを選択した後、によってトリガされた一時停止の期間を",
+            "MEMBERDELAY": "では、発信者とキューメンバーをそれぞれの他のに接続されているの前に遅延が発生する可能性がある場合に使用されます。",
+            "MUSICONHOLD": "特定のキューで使用する音楽のクラスを設定します。",
+            "ANNOUNCETOAGENT": "は、コールに応答したエージェントにアナウンスの再生に使用され、通常は発信者のキューとは彼のことを知っているようにかられてきています。",
+            "RANDOMPERIODICANNOUNCE": "[ はい ] に設定されている場合は、ランダムな順序で定義されている定期的なアナウンスを再生します。",
+            "ANNOUNCEHOLDTIME": "は、保留時間の予想には、定期的なアナウンスと共にを再生するかどうかを定義します。",
+            "ANNOUNCECALLERPOSITION": "は、キュー内の発信者の位置を彼女が発表されるかどうかを定義します。 をいいえに設定した場合、位置は決して発表しました。 Yes の場合は、発信者の位置を常に発表しましたに設定されている場合。 この値は制限を設定している場合、発信者には発表の位置の制限の定義された制限の範囲内である場合のみ、キューの彼女の位置を聞く。 この値はに設定されている場合は、アナウンスの位置に定義された制限数を超えた場合、発信者には彼女の位置を聞く。",
+            "REPORTHOLDTIMEAGENT": "ブリッジの前にキューのメンバーには、発信者の保留時間のレポートをイネーブルにします。",
+            "PERIODICANNOUNCE": "を再生する定期的なアナウンスを設定するには、定義されている順序で再生されます。",
+            "HOLDTIMEANNOUNCE": "定義されていない場合、は、デフォルトの値を再生 ( 「保留時間」)しています。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "YOUARENEXTANNOUNCE": "定義されていない場合、は、デフォルトの値を再生(「ライン」を開始していることが最初)。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "THEREAREANNOUNCE": "定義されていない場合、は、デフォルトの値を再生(「がある」)しています。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "WAITINGCALLSANNOUNCE": "定義されていない場合、は、デフォルトの値 ( 「待機」「コール)を再生します。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "定義されていない場合、は、デフォルトの値を再生(「現在の保留時間の予想は」)しています。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "MINUTESANNOUNCE": "定義されていない場合、は、デフォルトの値を再生(「分」)しています。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "MINUTEANNOUNCE": "定義されていない場合、は、デフォルトの値を再生(「分」)しています。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "SECONDSANNOUNCE": "定義されていない場合、は、デフォルトの値を再生する」(「秒)します。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "THANKYOUANNOUNCE": "定義されていない場合、は、デフォルトの値を再生(「あなたの忍耐をいただきありがとうございました。」 ) 。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "AFTERCALLWORK": "アクティブの場合には、エージェント、キューに、完了したコールの後に一時停止を設定する",
+            "AUTOPAUSE": "/ をイネーブルにコールに応答するには、失敗したことのあるメンバーのを一時停止すると、自動的に無効になります。 アクティブさせられるこれを彼がメンバーのすべてのキューの一時停止がメンバーである場合。",
+            "RINGINUSE": "ステータスが使用されているメンバにコールを送信しないようにするために使用されます。",
+            "TIMEOUTRESTART": "Yes に設定されている場合、エージェントのタイムアウト、ビジーまたは輻輳状態のどちらかですが、チャネルから受信した場合に回答がリセットされます。",
+            "MONITORFORMAT": "録音するときに使用するファイル形式を指定します。 モニタの形式が非アクティブの場合は、コールが録音されていません。",
+            "CONTEXT": "1 つの DTMF ディジットを押してキューを終了するには、発信者がすることができます。 コンテキストが指定されている場合は、発信者が番号を入力し、その番号は、コンテキストで指定された照合するしようとし、実行してダイヤルプランが継続します。",
+            "SETINTERFACEVARIABLES": "はいに設定した場合には、発信者にはキューのメンバーを使用してブリッジされていたいくつかの変数が設定され( wiki を参照してください ) の前に",
+            "SETQUEUEVARIABLES": "[ はい ] に設定されている場合は、キューのメンバーを使用してブリッジされている発信者を前に、発信者をキューするいくつかの変数が設定され( wiki を参照してください ) を離れる前に、",
+            "SETQUEUEENTRYVARIABLES": "はいに設定した場合には、発信者にはキューのメンバーを使用してブリッジされていたいくつかの変数が設定され( wiki を参照してください ) の前に",
+            "RECORDING": "コールの録音を有効にする",
+            "VOICEMAIL_CONTEXT": "相対的な拡張子のコンテキストを指定します。",
+            "METHOD": "アウトバウンドダイヤラ方式。",
+            "MAXCONCURRENTCALLS": "は、アウトバウンドダイヤラによっては発信されている同時コールの最大数を指定します。",
+            "ORIGINATECALLERIDNAME": "発信コールの発信者 ID 名",
+            "ORIGINATECALLERIDNUMBER": "発信コールの発信者 ID 番号",
+            "ORIGINATETIMEOUT": "元のアウトバウンドコールを秒単位で指定します。接続を確立するために、しています。 は、接続が確立されていない場合は、発信と受信のステータスは No と答えます。",
+            "QUEUETIMEOUT": "がドロップされる前に、キュー内のコールが待機する時間を秒数で指定します",
+            "GLOBALMAXRETRY": "閉じているかを検討する前に、連絡先が呼び出された回数の最大数",
+            "CONGESTIONMAXRETRY": "最大回数が閉鎖を検討しているが発生する前に輻輳を何らかの理由で失敗しました連絡先が呼び出され",
+            "CONGESTIONRETRYTIME": "輻輳に何らかの理由で障害が発生し、連絡先への連絡を再試行するまでの分単位の時間",
+            "BUSYMAXRETRY": "最大回数が閉鎖を検討する前に、使用中のため、できませんでした連絡先が呼び出され",
+            "BUSYRETRYTIME": "話中に何らかの理由で障害が発生し、連絡先への連絡を再試行するまでの分単位の時間",
+            "NOANSWERMAXRETRY": "最大回数が閉鎖を検討する前に、回答の理由がないのに失敗しました連絡先が呼び出され",
+            "NOANSWERRETRYTIME": "回答理由がないのに失敗しました。連絡先への連絡を再試行するまでの分単位の時間",
+            "POWERLEVEL": "利用可能な 1 つのエージェントにコールのコンタクトの数。",
+            "PREDICTIVEOPTIMIZATION": "予測アルゴリズムに最適化するための係数。",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "選択した予測最適化係数に基づいて、割合",
+            "CONCURRENTCALLS": "このキャンペーンのためのアウトバウンドダイヤラによって作成されている同時コールの最大数を指定します。",
+            "PREDICTIVEINTERVAL": "分単位で予測アルゴリズムを使用してへのコール量の予測最適化係数の最適化を生成するを計算するために考慮される時間間隔",
+            "AGENTTIMEOUT": "エージェントのデバイスにリングの秒数を指定します。",
+            "GLOBALINTERVAL": "ダイアラーの連絡先にコールが許可されて中にグローバルな時間間隔。 このフィールドを変更したときに、細心の注意を払ってください。 私たちは一切の責任は、障害が発生した状態の電話勧誘販売の法律および規制を遵守することに責任を負いません。"
+        },
+        "MUSICONHOLD": "保留中の音楽",
+        "ANNOUNCETOAGENT": "エージェントを発表",
+        "ANNOUNCEMENTS": "アナウンスメント",
+        "ADVANCED": "高度な",
+        "ANNOUNCEFREQUENCY": "周波数を発表",
+        "MINANNOUNCEFREQUENCY": "最小周波数を発表",
+        "PERIODICANNOUNCEFREQUENCY": "定期的な頻度を発表",
+        "RANDOMPERIODICANNOUNCE": "ランダムな定期的な発表",
+        "ANNOUNCEHOLDTIME": "保留時間を発表",
+        "ANNOUNCECALLERPOSITION": "発信者の位置を発表する",
+        "ANNOUNCEPOSITIONLIMIT": "の位置が制限値を発表",
+        "REPORTHOLDTIMEAGENT": "レポートは、エージェント保留時間",
+        "PERIODICANNOUNCE": "定期的な発表",
+        "HOLDTIMEANNOUNCE": "保留時間を発表",
+        "YOUARENEXTANNOUNCE": "」している「次へ」を発表",
+        "THEREAREANNOUNCE": "」は発表があり",
+        "WAITINGCALLSANNOUNCE": "コールウェイティングを発表",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "保留時間の予想を発表する",
+        "MINUTESANNOUNCE": "分を発表",
+        "MINUTEANNOUNCE": "分を発表",
+        "SECONDSANNOUNCE": "秒数を発表",
+        "THANKYOUANNOUNCE": "「ありがとうございましたことを発表",
+        "AUTOPAUSE": "自動一時停止",
+        "AFTERCALLWORK": "コール後の作業",
+        "AFTERCALLWORKDURATION": "コールワーク時間が経過した後",
+        "RINGINUSE": "を使用してのリング",
+        "MEMBERDELAY": "メンバー遅延",
+        "TIMEOUTRESTART": "タイムアウトを再起動",
+        "MONITORFORMAT": "記録フォーマット",
+        "SETINTERFACEVARIABLES": "インターフェイスの変数を設定できます。",
+        "SETQUEUEVARIABLES": "キューの変数を設定できます。",
+        "SETQUEUEENTRYVARIABLES": "キューのエントリの変数を設定し",
+        "CONTEXT": "コンテキスト",
+        "SAVE": "保存",
+        "SETTINGS": "の設定",
+        "INBOUNDROUTES": "インバウンドルート",
+        "PHONENUMBER": "電話番号",
+        "ADD_INBOUNDROUTE": "インバウンドルートを追加します",
+        "EDIT_INBOUNDROUTE": "インバウンドルートの編集",
+        "DELETE_INBOUNDROUTE": "インバウンドルートの削除",
+        "ACTIONS": "アクション",
+        "OUTBOUNDROUTES": "アウトバウンドルート",
+        "DESTINATIONPATTERN": "宛先パターン",
+        "ADD_OUTBOUNDROUTE": "アウトバウンドルートを追加します",
+        "EDIT_OUTBOUNDROUTE": "アウトバウンドルートの編集",
+        "DELETE_OUTBOUNDROUTE": "アウトバウンドルートの削除",
+        "CUTDIGITS": "カット桁",
+        "RECORDING": "録音",
+        "RECORDINGFORMAT": "記録フォーマット",
+        "INTERNALROUTES": "内部ルート",
+        "ADD_INTERNALROUTE": "内部ルートを追加します",
+        "EDIT_INTERNALROUTE": "内部ルートの編集",
+        "DELETE_INTERNALROUTE": "内部ルートの削除",
+        "CONTEXTS": "コンテキスト",
+        "ADD_CONTEXT": "コンテキストの追加",
+        "EDIT_CONTEXT": "コンテキストの編集",
+        "DELETE_CONTEXT": "コンテキストを削除する",
+        "VOICEMAILS": "ボイスメール",
+        "ADD_VOICEMAIL": "ボイスメールの追加",
+        "EDIT_VOICEMAIL": "ボイスメールの編集",
+        "DELETE_VOICEMAIL": "ボイスメールを削除する",
+        "FULLNAME": "完全な名前",
+        "EMAIL": "電子メール",
+        "MAILBOX": "メールボックス",
+        "PASSWORD": "パスワード",
+        "CONFIRM_PASSWORD": "パスワードを確認します",
+        "TIMEZONE": "タイムゾーン",
+        "ATTACH": "接続",
+        "ENVELOPE": "封筒",
+        "DELETE": "削除",
+        "EMAILBODY": "電子メールの本文",
+        "EMAILSUBJECT": "電子メールの件名",
+        "MAXSECONDS": "最大秒数",
+        "MAXMESSAGES": "最大メッセージ数",
+        "MESSAGES": "メッセージ",
+        "SORT": "並べ替え",
+        "ADD_MUSICONHOLD": "Music On Hold を追加",
+        "MUSICONHOLDS": "保留中の音楽",
+        "EDIT_MUSICONHOLD": "編集保留中の音楽",
+        "DELETE_MUSICONHOLD": "音楽の削除",
+        "DIRECTORY": "ディレクトリ",
+        "AUDIOFILES": "オーディオファイル",
+        "RECORDINGS": "録音",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "接頭辞",
+        "OPTIONS": "オプション",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "追加 ChanSpy",
+        "EDIT_CHANSPY": "編集 ChanSpy",
+        "DELETE_CHANSPY": "削除 ChanSpy",
+        "AGENTS": "エージェント",
+        "TELEPHONES": "電話",
+        "QUEUES": "キュー",
+        "QUEUE_CALLS": "キューコール",
+        "QUEUE_PARAMETERS": "キューのパラメータ",
+        "ABANDONED_CALLS": "放棄されたコール",
+        "OUTBOUND_CALLS": "アウトバウンドコール",
+        "AGI": "AGI",
+        "DIAL": "ダイヤル",
+        "INTERNALDIAL": "内部ダイヤル",
+        "EXTERNALDIAL": "外部ダイヤル",
+        "RINGGROUP": "リンググループ",
+        "PLAYBACK": "再生",
+        "QUEUE": "キュー",
+        "SET": "設定されて",
+        "VOICEMAIL": "ボイスメール",
+        "GOTO": "後藤",
+        "HANGUP": "切る",
+        "CUSTOM": "カスタム",
+        "PROJECT": "Cally-Square プロジェクト",
+        "TECHNOLOGY/RESOURCE": "テクノロジー / リソース",
+        "URL": "URL",
+        "EDIT_APP": "アプリケーションの編集",
+        "EDIT_INTERVAL": "間隔の編集",
+        "DELETE_APP": "アプリケーションを削除します。",
+        "INTERVALS": "間隔",
+        "USER": "ユーザ",
+        "TRUNK": "トランク",
+        "PHONE": "電話",
+        "AUDIO_FILES": "オーディオファイル",
+        "ANNOUNCE_OVERRIDES": "オーバーライドを発表",
+        "MACRO": "マクロ",
+        "GOSUB": "GoSub",
+        "RULE": "ルール",
+        "POSITION": "位置",
+        "ANSWER": "答え",
+        "VALUE": "値",
+        "MAILBOX@CONTEXT": "メールボックス @ コンテキスト",
+        "EXTENSION": "拡張子",
+        "PRIORITY": "優先順位",
+        "HANGUP_CAUSE": "ハングアップさせられる",
+        "OUTBOUNDDIAL": "アウトバウンドダイヤル",
+        "CALLER_ID": "発信者 ID",
+        "NO_MESSAGE_AVAILABLE": "利用可能なメッセージはありません",
+        "NO_SOUND_AVAILABLE": "音を使用できません",
+        "VOICERECORDINGS": "音声録音",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "音声",
+        "REALTIME": "リアルタイム",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "コンテキスト",
+        "NO_MOHSOUND_AVAILABLE": "使用できません保留中の音楽",
+        "FILE": "ファイル",
+        "ADD_MOHSOUND": "音楽のサウンドを押したまま追加する",
+        "DOWNLOAD_MOHSOUND": "音楽のダウンロードにサウンドを保持",
+        "DELETE_MOHSOUND": "音楽のサウンドを削除したままに",
+        "UNIQUEID": "一意の ID",
+        "AGENT": "エージェント",
+        "TYPE": "タイプ",
+        "RATING": "定格",
+        "AUDIO": "オーディオ",
+        "DATE": "日付",
+        "NEW_VOICEQUEUE": "新しいボイスキュー",
+        "NEW_INBOUNDROUTE": "新しいインバウンドルート",
+        "NEW_OUTBOUNDROUTE": "新しいアウトバウンドルート",
+        "NEW_INTERNALROUTE": "新しい内部ルート",
+        "NEW_CONTEXT": "新しいコンテキスト",
+        "NEW_VOICEMAIL": "新規ボイスメール",
+        "NEW_MUSICONHOLD": "新しい Music On Hold",
+        "NEW_CHANSPY": "新しい ChanSpy",
+        "PENALTY": "ペナルティ",
+        "ADD_TEAM_TO_VOICEQUEUE": "チームボイスキューを追加するには",
+        "ADD_AGENT_TO_VOICEQUEUE": "エージェントの音声キューを追加するには",
+        "EDIT_DIAL": "ダイヤル編集",
+        "EDIT_AGI": "AGI を編集",
+        "EDIT_INTERNALDIAL": "内部ダイヤル編集",
+        "EDIT_EXTERNALDIAL": "外部ダイヤル編集",
+        "EDIT_RINGGROUP": "編集リンググループ",
+        "EDIT_PLAYBACK": "編集再生",
+        "EDIT_QUEUE": "「キューの編集",
+        "EDIT_SET": "設定の編集",
+        "EDIT_GOTO": "GoTo の編集",
+        "EDIT_HANGUP": "編集の切断",
+        "EDIT_CUSTOM": "カスタムを編集する",
+        "DURATION": "期間",
+        "RECEIVED_AT": "受信した",
+        "YES": "はい",
+        "NO": "はありません",
+        "HANGUPCAUSE_1": "1 = 未割り当ての番号",
+        "HANGUPCAUSE_16": "16 = Normail コールのクリア",
+        "HANGUPCAUSE_17": "17 = ユーザが話し中",
+        "HANGUPCAUSE_18": "18 = ユーザが応答しない ( 電話が接続されていないデバイス ) がありません",
+        "HANGUPCAUSE_21": "21 = コールは拒否されました。",
+        "HANGUPCAUSE_22": "22 = 番号が変更された",
+        "HANGUPCAUSE_27": "27 = 宛先に問題があります",
+        "HANGUPCAUSE_38": "38 = ネットワークの異常",
+        "HANGUPCAUSE_41": "41 = 一時的な障害が発生した",
+        "RANDOM": "ランダム",
+        "ALPHABETICAL": "アルファベット順",
+        "NO_APPS_AVAILABLE": "使用可能なアプリケーションがありません",
+        "DOWNLOAD_VOICERECORDING": "音声録音をダウンロード",
+        "DELETE_VOICERECORDING": "音声録音を削除",
+        "INTERNAL": "内部",
+        "PHONE_STATE": "電話の状態",
+        "PHONE_STATUS": "電話のステータス",
+        "REGISTERED": "登録されて",
+        "UNREGISTERED": "登録されてい",
+        "LAGGED": "遅れていた",
+        "REACHABLE": "到達可能",
+        "UNREACHABLE": "到達不能",
+        "UNKNOWN": "不明な",
+        "NOT_INUSE": "使用されていません",
+        "INUSE": "を使用して、",
+        "BUSY": "ビジー",
+        "INVALID": "無効な",
+        "UNAVAILABLE": "使用できません",
+        "RINGING": "呼び出し中",
+        "ONHOLD": "保留",
+        "RING": "リング",
+        "UP": "さ",
+        "INFO": "情報",
+        "TRUNKS": "トランク",
+        "REGISTRY": "レジストリ",
+        "NO_REGISTRY": "レジストリはありません",
+        "LOGGED_IN": "ログインして",
+        "PAUSED": "一時停止",
+        "WAITING": "待機中",
+        "TALKING": "話を",
+        "DID": "でした",
+        "CALLER": "発信者",
+        "TOTAL": "合計",
+        "ANSWERED": "応答",
+        "ABANDONED": "放棄された",
+        "UNMANAGED": "管理対象外",
+        "AVG_HOLD_TIME": "平均保留時間",
+        "AVG_DURATION": "Av 期間",
+        "AVG_BILLABLE": "Avg 有償",
+        "SOURCE": "ソース",
+        "DESTINATION": "宛先",
+        "REJECTED": "拒否された",
+        "FAILED": "失敗しました",
+        "CALLED": "と呼ばれる",
+        "CONNECTED": "接続されている",
+        "NO_RATING": "評価されていない",
+        "EDIT_VOICERECORDING": "音声録音を編集する",
+        "APPLICATION_NAME": "アプリケーション名",
+        "ARGUMENTS": "引数",
+        "ENABLED": "有効になっている",
+        "POWERLEVEL": "電源レベル",
+        "DROPRATE": "ドロップ率。",
+        "AGENTBUSYFACTOR": "エージェントがビジー率",
+        "PREDICTIVEOPTIMIZATION": "予測の最適化",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "予測最適化の割合",
+        "READY": "準備ができました",
+        "PAUSE": "一時停止",
+        "UNPAUSE": "一時停止を解除する",
+        "DEFAULT_PAUSE": "デフォルトの一時停止",
+        "AGENTADD_QUEUE": "キャンペーンのエージェントへのキューに追加する",
+        "AGENTSADD_QUEUE": "キャンペーンのエージェントをキューに追加する",
+        "ALL_TEAMS": "すべてのチーム",
+        "SELECTED_TEAMS": "選択したチーム",
+        "ALL_LISTS": "すべてのリスト",
+        "SELECTED_LISTS": "選択したリスト",
+        "ALL_AGENTS": "すべてのエージェント",
+        "SELECTED_AGENTS": "選択されたエージェント",
+        "IVRCAMPAIGNS": "IVR キャンペーン",
+        "CONCURRENTCALLS": "最大同時コール",
+        "BLACKLISTADD_QUEUECAMPAIGN": "ブラックリストに追加",
+        "DELETE_IVRCAMPAIGN": "キャンペーンを削除",
+        "EDIT_IVRCAMPAIGN": "編集キャンペーン",
+        "NEW_IVRCAMPAIGN": "新しい IVR キャンペーン",
+        "ADD_IVRCAMPAIGN": "IVR キャンペーンを追加",
+        "LISTADD_IVRCAMPAIGN": "リストの追加",
+        "BLACKLISTADD_IVRCAMPAIGN": "ブラックリストに追加",
+        "HISTORY": "履歴",
+        "FINAL": "最終的な",
+        "BLACKLIST": "ブラックリスト",
+        "PREDICTIVEINTERVAL": "予測間隔",
+        "WAITING_FOR_AGENT": "エージェントの待機中",
+        "TOTAL_OFFERED": "提供された",
+        "RUNNING": "を実行している",
+        "INTERVAL_IS_OVERTIME": "インターバルは残業",
+        "TRUNK_IS_NOT_REACHABLE": "トランクにはアクセスできません。",
+        "AGENTS_NOT_LOGGED": "エージェントがログインしていません",
+        "NOT_ACTIVE": "アクティブではありません",
+        "AVAILABLE_CONTACTS_FINISHED": "使用可能な連絡先を終了しました",
+        "SCHEDULEDAT": "の予定である。",
+        "HOPPERBLACKS": "ホッパーのブラックリスト",
+        "NO_HOPPERBLACK_AVAILABLE": "使用可能な項目がありません",
+        "HOPPERFINALS": "ホッパー最終",
+        "NO_HOPPERFINAL_AVAILABLE": "使用可能な項目がありません",
+        "HOPPERHISTORIES": "ホッパーの履歴",
+        "NO_HOPPERHISTORY_AVAILABLE": "使用可能な項目がありません",
+        "DELETE_HOPPERHISTORY": "削除",
+        "DELETE_HOPPERFINAL": "削除",
+        "CONTACTID": "連絡先 ID",
+        "STARTTIME": "開始時刻",
+        "RESPONSETIME": "応答時間",
+        "ENDTIME": "終了時間",
+        "STATUS": "ステータス",
+        "HOPPERS": "ホッパー",
+        "NO_HOPPER_AVAILABLE": "使用可能な項目がありません",
+        "EDIT_HOPPER": "ホッパーの編集",
+        "DELETE_HOPPER": "ホッパーを削除",
+        "AGENTTIMEOUT": "エージェントのタイムアウト",
+        "DISPOSITION": "廃棄",
+        "REDIRECT_TO_NUMBER": "番号にリダイレクトします。",
+        "REDIRECT_TO_AGENT": "は、エージェントにリダイレクトします。",
+        "CLOSING": "閉じる",
+        "MANAGED": "管理されて",
+        "BACKUPTRUNK": "バックアップトランク",
+        "GLOBALINTERVAL": "グローバルインターバル",
+        "RESCHEDULED_CONTACTS": "再スケジュールされた連絡先",
+        "INTERVAL_IS_NULL": "間隔が Null です",
+        "TIMEZONE_UNKNOW": "タイムゾーンが不明",
+        "INTERVAL_IS_EMPTY": "間隔が空",
+        "LOGOUT": "ログアウト",
+        "EDIT_CAMPAIGN": "編集キャンペーン",
+        "LIMITED": "限定された",
+        "IVR_CAMPAIGNS": "Ivr キャンペーン",
+        "IS_DISACTIVED": "は Disactived",
+        "TOTAL_MANAGED": "管理対象の合計"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/ko.json b/public/app/main/apps/motiondialer/i18n/ko.json
new file mode 100644 (file)
index 0000000..c3cea13
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Motion 다이얼러",
+        "QUEUECAMPAIGNS": "대기열 캠페인",
+        "NAME": "이름",
+        "VOICEQUEUES": "음성 대기열에",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "BACK": "후면",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "DELETE_VOICEDISPOSITION": "음성 처리 삭제",
+        "EDIT_VOICEDISPOSITION": "음성 처리 편집",
+        "EDIT_VOICEQUEUE": "음성 편집 대기",
+        "DELETE_VOICEQUEUE": "음성 큐를 삭제합니다",
+        "MOHSOUNDS": "Moh 사운드",
+        "STRATEGY": "전략",
+        "DESCRIPTION": "설명",
+        "INTERVAL": "시간 간격",
+        "ADD_VOICEQUEUE": "음성 대기열에 추가",
+        "NEW_QUEUECAMPAIGN": "새 대기열 캠페인",
+        "EDIT_QUEUECAMPAIGN": "편집 캠페인",
+        "TEAMADD_QUEUECAMPAIGN": "팀 추가",
+        "AGENTADD_QUEUECAMPAIGN": "상담원 추가",
+        "LISTADD_QUEUECAMPAIGN": "목록에 추가",
+        "DELETE_QUEUECAMPAIGN": "캠페인 삭제",
+        "ACTIVE": "활성",
+        "METHOD": "메서드",
+        "ADD_QUEUECAMPAIGN": "대기열 캠페인 추가",
+        "CAMPAIGN": "캠페인",
+        "MAXCONCURRENTCALLS": "최대 동시 통화",
+        "ORIGINATE": "시작",
+        "ORIGINATECALLERIDNAME": "호출자 ID 이름",
+        "ORIGINATECALLERIDNUMBER": "발신자는 발신자 ID 번호",
+        "ORIGINATETIMEOUT": "기원한 시간 초과",
+        "QUEUEOPTIONS": "대기열 옵션을",
+        "QUEUETIMEOUT": "대기열 시간 초과",
+        "CALLYSQUAREPROJECT": "Cally 광장 프로젝트",
+        "RETRYANDFREQUENCY": "재시도 설정",
+        "GLOBAL": "글로벌",
+        "GLOBALMAXRETRY": "최대 재시도 횟수",
+        "CONGESTION": "혼잡",
+        "CONGESTIONMAXRETRY": "최대 재시도 횟수",
+        "CONGESTIONRETRYTIME": "재시도 시간[6분]",
+        "BUSYMAXRETRY": "최대 재시도 횟수",
+        "BUSYRETRYTIME": "재시도 시간[6분]",
+        "NOANSWER": "응답 없음",
+        "NOANSWERMAXRETRY": "최대 재시도 횟수",
+        "NOANSWERRETRYTIME": "재시도 시간[6분]",
+        "QUEUE_PARAMS": "대기열 매개 변수",
+        "ORIGINATED": "복사된",
+        "MESSAGE": "메시지",
+        "DROPPED": "떨어졌다.",
+        "CREATED_AT": "생성",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - 사용자 정의 응용 프로그램."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "TIMEOUT_REQUIRED": "시간 제한이 필요합니다.",
+            "PHONENUMBER_REQUIRED": "전화 번호는 필수 항목입니다",
+            "CONTEXT_REQUIRED": "컨텍스트가 필요합니다.",
+            "DESTINATIONPATTERN_REQUIRED": "대상 양식 필요합니다.",
+            "FULLNAME_REQUIRED": "전체 이름이 필요합니다.",
+            "EMAIL_REQUUIRED": "이 전자 메일은 필수",
+            "EMAIL_MUST_VALID": "E-mail 유효한 형식으로 작성되어 있어야 합니다",
+            "MAILBOX_REQUIRED": "사서함이 필요합니다.",
+            "PASSWORD_REQUIRED": "암호 필요",
+            "CONFIRM_NOT_MATCH": "암호가 일치하지 않습니다",
+            "TIMEZONE_REQUIRED": "시간대 가 필요합니다.",
+            "PREFIX_REQUIRED": "접두사가 필수적인",
+            "OPTIONS_REQUIRED": "옵션 필요",
+            "AFTERCALLWORKDURATION_REQUIRED": "통화 작업 시간 이후 필요합니다.",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "기술/자원이 필요합니다.",
+            "PHONE_REQUIRED": "전화가 필요",
+            "VALUE_REQUIRED": "값이 필요합니다.",
+            "EXTENSION_REQUIRED": "내선 번호가 필요합니다.",
+            "PRIORITY_REQUIRED": "우선 필요합니다.",
+            "GLOBALMAXRETRY_REQUIRED": "최대 재시도 횟수 가 필요합니다.",
+            "CONGESTIONMAXRETRY_REQUIRED": "최대 재시도 횟수 가 필요합니다.",
+            "CONGESTIONRETRYTIME_REQUIRED": "재시도 시간 필요",
+            "BUSYMAXRETRY_REQUIRED": "최대 재시도 횟수 가 필요합니다.",
+            "BUSYRETRYTIME_REQUIRED": "재시도 시간 필요",
+            "NOANSWERMAXRETRY_REQUIRED": "최대 재시도 횟수 가 필요합니다.",
+            "NOANSWERRETRYTIME_REQUIRED": "재시도 시간 필요",
+            "QUEUETIMEOUT_REQUIRED": "대기열 시간 필요",
+            "ORIGINATETIMEOUT_REQUIRED": "시작 시간 필요",
+            "GLOBALINTERVAL_REQUIRED": "글로벌 간격이 필요합니다."
+        },
+        "GENERAL": "일반",
+        "TIMEOUT": "시간 초과",
+        "MAXLENGTH": "최대 길이",
+        "RETRY": "재시도",
+        "WRAPUPTIME": "요약 시간",
+        "WEIGHT": "무게",
+        "JOINWHENEMPTY": "방전되면 참가",
+        "LEAVEWHENEMPTY": "빈 나가기",
+        "HELP": {
+            "ACTIVE": "활성",
+            "TIMEOUT": "초 단위로 회원의 단말기 벨소리가 지정합니다.",
+            "MAXLENGTH": "대기열에 대기하고 허용된 발신자 최대 수를 지정합니다. 0 값은 대기열에 있는 발신자는 무제한으로 사용할 수 있음을 의미합니다.",
+            "RETRY": "몇 초 동안 시간 초과 값은 대기열 구성원을 링 시도하는 경우 큐에 있는 품목입니다 시도하기 전에 대기 시간을 지정합니다.",
+            "WRAPUPTIME": "통화 완료 후 대기열에 있는 구성원이 사용할 수 있는 시간(초)입니다.",
+            "WEIGHT": "Queue 의 가중치를 정의합니다. 가중치 정의 대기열 구성원을 여러 대기열에 연결되어 있을 때 우선이 될 것입니다.",
+            "JOINWHENEMPTY": "컨트롤을 사용할 멤버 없을 때 발신자가 대기열에 추가되어 있습니다.",
+            "LEAVEWHENEMPTY": "호출자 멤버에 대한 호출을 수행할 더 이상 사용할 수 없을 때 대기열에 밖으로 걷어찼다 여부를 제어하는 데 사용됩니다.",
+            "ANNOUNCEFREQUENCY": "우리는 발신자의 위치와/공개하거나 얼마나 자주 큐에 예상 대기 시간을 정의합니다. 0일 이 값을 설정합니다.",
+            "MINANNOUNCEFREQUENCY": "대기열에서 대기하고 있는 발신자의 위치를 다시 발표할 때까지 경과되어야 하는 최소 시간을 지정합니다. 이 발신자의 위치를 자주 변경될 수 있는 경우, 발신자 짧은 기간 안에 여러 개의 업데이트를 듣고 단추를 누르지 못하도록 하는 데 사용됩니다.",
+            "PERIODICANNOUNCEFREQUENCY": "발신자 정기적으로 공지 얼마나 자주 해야 한다.",
+            "ANNOUNCEPOSITIONLIMIT": "이미 정의되어 있는 경우 발표 - Position 한계 이상의 사용했습니다.",
+            "AFTERCALLWORKDURATION": "통화 작업 옵션 후 야기된 일시 중지 기간",
+            "MEMBERDELAY": "를 눌러 발신자와 서로 연결되어 있다는 대기열 회원에게 사전 지연이 있을 경우 사용됩니다.",
+            "MUSICONHOLD": "특정 대기열에 의해 사용되는 음악 클래스를 설정합니다.",
+            "ANNOUNCETOAGENT": "통화에 응답한 상담원이 안내문을 재생하는 데 사용되는, 일반적으로 그를 발신자가 대기열에서 어떤 사실을 튀어나오는.",
+            "RANDOMPERIODICANNOUNCE": "Yes로 설정된 경우, 임의의 순서로 정의된 정기적으로 알림을 보냅니다.",
+            "ANNOUNCEHOLDTIME": "예상 대기 시간 정기 발표 함께 재생되야합니다 여부를 정의합니다.",
+            "ANNOUNCECALLERPOSITION": "큐에 있는 발신자의 위치 그녀의 발표한 여부를 정의합니다. No로 설정된 경우 position 결코 발표될 예정이다. Yes 발신자 위치 항상 발표될 예정입니다. 값은 제한을 설정할 경우 발신자가 대기열에서 자신의 위치를 위치 제한에 발표할 정의 한도 내에 있는 경우에만 들립니다. 값이 더 설정되어 있으면 값이 위치 제한에 발표할 정의 수를 넘어서는 경우, 호출자가 자신의 입장을 들을 예정이다.",
+            "REPORTHOLDTIMEAGENT": "이 발신자의 대기 시간을 보고 브리징 전에 큐에 회원이 있습니다.",
+            "PERIODICANNOUNCE": "재생 할 주기적 공지가, 정의된 순서대로 재생됩니다.",
+            "HOLDTIMEANNOUNCE": "정의되지 않은 경우 기본값은 플레이(\"시간을 가질 예정이다. 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "YOUARENEXTANNOUNCE": "정의되지 않은 경우 기본값은 플레이(있거라\" 이제 첫 번째). 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "THEREAREANNOUNCE": "정의되지 않은 경우 기본값은 플레이(있었다\"라고 합니다. 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "WAITINGCALLSANNOUNCE": "정의되지 않은 경우 기본값(\"\"통화 대기) 맡는다. 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "정의되지 않은 경우 기본값은(\"현재 예상 대기 시간이 부탁해요). 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "MINUTESANNOUNCE": "정의되지 않은 경우 기본값은 플레이(이하 \"분\"). 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "MINUTEANNOUNCE": "정의되지 않은 경우 기본값은 플레이(\"분\"). 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "SECONDSANNOUNCE": "정의되지 않은 경우 기본값은 플레이(이하 \"초\"). 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "THANKYOUANNOUNCE": "정의되지 않은 경우 기본값은 플레이(\"기다려\" 주셔서 감사합니다. 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "AFTERCALLWORK": "활성화된 경우 대기열에서 통화가 완료된 후 상담원이 일시 설정됩니다.",
+            "AUTOPAUSE": "/ 사용하면 통화 응답 배하고 멤버 중 일시정지 자동 해제됩니다. 활성화된 모든 대기열 그는 멤버로 잠시 이 회원인 경우.",
+            "RINGINUSE": "통화 상태가 사용 회원에게 보내는 것을 방지하는 데 사용합니다.",
+            "TIMEOUTRESTART": "Yes로 설정된 경우 시간 제한 통화 중 또는 정체 상태는 채널에서 수신할 경우 응답이 다시 설정합니다.",
+            "MONITORFORMAT": "녹음할 때 사용하는 파일 형식을 지정합니다. 모니터 - Format이 작동하지 않을 경우 통화를 녹음할 수 없습니다.",
+            "CONTEXT": "단일 DTMF 숫자를 눌러 대기열 종료 발신자 수 있습니다. 컨텍스트란 지정된 발신자 번호를 입력하면 그 자리 지정된 컨텍스트에 일치시킬 반환하려는 시도할 것이며 dialplan 실행을 계속할 것이다.",
+            "SETINTERFACEVARIABLES": "Yes로 설정된 경우 대기열에 멤버와 연결된 몇 가지 변수를 설정합니다(Wiki 참조) 중인 발신자 전에",
+            "SETQUEUEVARIABLES": "Yes로 설정된 경우 대기열 구성원을 브리징되어 있는 발신자 전에 단순히 발신자가 대기열에서 몇 가지 변수를 설정할 수 있습니다.(Wiki 참조) 떠나기 전에",
+            "SETQUEUEENTRYVARIABLES": "Yes로 설정된 경우 대기열에 멤버와 연결된 몇 가지 변수를 설정합니다(Wiki 참조) 중인 발신자 전에",
+            "RECORDING": "통화 녹음 활성화",
+            "VOICEMAIL_CONTEXT": "상대 내선의 컨텍스트입니다.",
+            "METHOD": "아웃바운드 전화 방법입니다.",
+            "MAXCONCURRENTCALLS": "발신 전화 걸기에서 발신한 될 동시 통화의 최대 수를.",
+            "ORIGINATECALLERIDNAME": "발신 발신자 ID 이름",
+            "ORIGINATECALLERIDNUMBER": "발신 발신자 ID 번호",
+            "ORIGINATETIMEOUT": "원본 아웃바운드 통화에 대해 몇 초 내로 연결할 때. 이 connectin 설정되지 않을 경우 발생하는 상태 응답 없을 것입니다.",
+            "QUEUETIMEOUT": "전송이 끊기면 전까지 콜이 대기할 시간(초)입니다.",
+            "GLOBALMAXRETRY": "전지의 닫힌 고려하기 전에 먼저 연락처를 호출할 최대 수",
+            "CONGESTIONMAXRETRY": "최대 횟수를 닫고서 고려하기 전에 먼저 혼잡을 이유로 실패한 연락처 호출됩니다",
+            "CONGESTIONRETRYTIME": "정체를 이유로 실패 연락처로 다시 시도하기 전에 분 단위 시간",
+            "BUSYMAXRETRY": "최대 횟수를 닫고서 고려하기 전에 먼저 바쁜 이유로 실패한 연락처 호출됩니다",
+            "BUSYRETRYTIME": "바쁜 이유로 실패 연락처로 다시 시도하기 전에 분 단위 시간",
+            "NOANSWERMAXRETRY": "최대 횟수를 닫고서 고려하기 전에 먼저 대답을 이유 없이 고장난 연락처 호출됩니다",
+            "NOANSWERRETRYTIME": "대답을 이유 없이 실패 연락처로 다시 시도하기 전에 분 단위 시간",
+            "POWERLEVEL": "사용 가능한 상담원이 통화 연결 수입니다.",
+            "PREDICTIVEOPTIMIZATION": "예측 알고리즘의 최적화 요소이다.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "선택한 예측 최적화 계수를 기준으로 비율",
+            "CONCURRENTCALLS": "이 캠페인에 대한 발신 전화 걸기에서 발신한 될 동시 통화의 최대 개수.",
+            "PREDICTIVEINTERVAL": "몇 분의 예측 알고리즘에서 통화 금액 예상 최적화 요소 최적화를 위한 Generate를 계산하는 것으로 간주할 수 시간 간격",
+            "AGENTTIMEOUT": "몇 초 동안 상담원의 장치를 벨소리 지정합니다.",
+            "GLOBALINTERVAL": "다이얼러 낮추는 전화를 연락처 허용된 글로벌 시간 간격. 이 필드는 수정할 때 주의 깊게 봐주십시오. 우리는 책임 있는 또는 상태 autodialer 법과 규정을 준수하는 실패에 대한 책임을 지지 않습니다."
+        },
+        "MUSICONHOLD": "음악 대기",
+        "ANNOUNCETOAGENT": "상담원 알림",
+        "ANNOUNCEMENTS": "녹음 메시지",
+        "ADVANCED": "고급",
+        "ANNOUNCEFREQUENCY": "발표할 주파수",
+        "MINANNOUNCEFREQUENCY": "최소 빈도는 발표",
+        "PERIODICANNOUNCEFREQUENCY": "주기적 주파수 발표",
+        "RANDOMPERIODICANNOUNCE": "랜덤 정기 발표",
+        "ANNOUNCEHOLDTIME": "보류 시간 발표",
+        "ANNOUNCECALLERPOSITION": "발신자 입장",
+        "ANNOUNCEPOSITIONLIMIT": "리미트 발표",
+        "REPORTHOLDTIMEAGENT": "보고서는 상담원 보류 시간",
+        "PERIODICANNOUNCE": "정기 발표",
+        "HOLDTIMEANNOUNCE": "보류 시간 발표",
+        "YOUARENEXTANNOUNCE": "'다음에 발표할",
+        "THEREAREANNOUNCE": "발표할 '",
+        "WAITINGCALLSANNOUNCE": "대기 중인 통화 알림",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "예상 대기 시간 발표",
+        "MINUTESANNOUNCE": "분 발표",
+        "MINUTEANNOUNCE": "1분 발표",
+        "SECONDSANNOUNCE": "초 발표할",
+        "THANKYOUANNOUNCE": "'감사' 발표",
+        "AUTOPAUSE": "자동 일시 중지",
+        "AFTERCALLWORK": "통화 후 작업",
+        "AFTERCALLWORKDURATION": "통화 작업 시간 이후",
+        "RINGINUSE": "사용 중인 링",
+        "MEMBERDELAY": "멤버 지연",
+        "TIMEOUTRESTART": "Timeout 다시 시작합니다.",
+        "MONITORFORMAT": "레코딩 포맷",
+        "SETINTERFACEVARIABLES": "인터페이스 변수 설정",
+        "SETQUEUEVARIABLES": "Queue 변수 설정",
+        "SETQUEUEENTRYVARIABLES": "대기열 항목을 변수 설정",
+        "CONTEXT": "컨텍스트",
+        "SAVE": "저장",
+        "SETTINGS": "설정",
+        "INBOUNDROUTES": "수신 경로",
+        "PHONENUMBER": "전화 번호",
+        "ADD_INBOUNDROUTE": "수신 경로 추가",
+        "EDIT_INBOUNDROUTE": "수신 경로 편집",
+        "DELETE_INBOUNDROUTE": "수신 경로 삭제",
+        "ACTIONS": "동작",
+        "OUTBOUNDROUTES": "아웃바운드 경로",
+        "DESTINATIONPATTERN": "대상 양식",
+        "ADD_OUTBOUNDROUTE": "아웃바운드 경로 추가",
+        "EDIT_OUTBOUNDROUTE": "아웃바운드 경로 편집",
+        "DELETE_OUTBOUNDROUTE": "아웃바운드 경로 삭제",
+        "CUTDIGITS": "숫자를 절단",
+        "RECORDING": "녹음",
+        "RECORDINGFORMAT": "레코딩 포맷",
+        "INTERNALROUTES": "노선",
+        "ADD_INTERNALROUTE": "내부 경로 추가",
+        "EDIT_INTERNALROUTE": "내부 경로 편집",
+        "DELETE_INTERNALROUTE": "내부 경로 삭제",
+        "CONTEXTS": "컨텍스트",
+        "ADD_CONTEXT": "컨텍스트를 추가하기",
+        "EDIT_CONTEXT": "편집메뉴나 마우스 오른쪽 버튼",
+        "DELETE_CONTEXT": "컨텍스트를 삭제합니다.",
+        "VOICEMAILS": "음성 메일",
+        "ADD_VOICEMAIL": "음성 메일 추가",
+        "EDIT_VOICEMAIL": "편집 음성 메일",
+        "DELETE_VOICEMAIL": "음성 메일 삭제",
+        "FULLNAME": "전체 이름",
+        "EMAIL": "E-mail",
+        "MAILBOX": "사서함",
+        "PASSWORD": "암호",
+        "CONFIRM_PASSWORD": "암호 확인",
+        "TIMEZONE": "시간대",
+        "ATTACH": "첨부",
+        "ENVELOPE": "봉투",
+        "DELETE": "삭제",
+        "EMAILBODY": "전자 메일 본문",
+        "EMAILSUBJECT": "전자 메일 제목",
+        "MAXSECONDS": "Max Seconds",
+        "MAXMESSAGES": "최대 메시지",
+        "MESSAGES": "메시지",
+        "SORT": "정렬",
+        "ADD_MUSICONHOLD": "음악 대기 추가",
+        "MUSICONHOLDS": "보류 Musics",
+        "EDIT_MUSICONHOLD": "편집 음악 대기",
+        "DELETE_MUSICONHOLD": "음악 삭제 보류",
+        "DIRECTORY": "디렉터리",
+        "AUDIOFILES": "오디오 파일",
+        "RECORDINGS": "녹음",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "접두사",
+        "OPTIONS": "옵션",
+        "AUTH": "인증",
+        "ADD_CHANSPY": "Chanspy 추가",
+        "EDIT_CHANSPY": "편집 ChanSpy",
+        "DELETE_CHANSPY": "Chanspy 삭제",
+        "AGENTS": "상담원",
+        "TELEPHONES": "전화기",
+        "QUEUES": "대기열",
+        "QUEUE_CALLS": "대기열에 저장된 통화",
+        "QUEUE_PARAMETERS": "대기열 매개 변수",
+        "ABANDONED_CALLS": "취소된 통화",
+        "OUTBOUND_CALLS": "아웃바운드 통화",
+        "AGI": "AGI",
+        "DIAL": "다이얼",
+        "INTERNALDIAL": "내부 전화",
+        "EXTERNALDIAL": "외부 전화",
+        "RINGGROUP": "링 그룹",
+        "PLAYBACK": "재생",
+        "QUEUE": "대기열",
+        "SET": "설정",
+        "VOICEMAIL": "음성 메일",
+        "GOTO": "GoTo",
+        "HANGUP": "끊기",
+        "CUSTOM": "사용자 정의",
+        "PROJECT": "Cally-Square 프로젝트",
+        "TECHNOLOGY/RESOURCE": "기술 리소스",
+        "URL": "URL",
+        "EDIT_APP": "편집 응용 프로그램",
+        "EDIT_INTERVAL": "편집 간격",
+        "DELETE_APP": "응용 프로그램 삭제",
+        "INTERVALS": "간격",
+        "USER": "사용자",
+        "TRUNK": "트렁크",
+        "PHONE": "전화",
+        "AUDIO_FILES": "오디오 파일",
+        "ANNOUNCE_OVERRIDES": "오버라이드 발표",
+        "MACRO": "매크로",
+        "GOSUB": "GoSub",
+        "RULE": "규칙",
+        "POSITION": "위치",
+        "ANSWER": "응답",
+        "VALUE": "값",
+        "MAILBOX@CONTEXT": "사서함 @ 컨텍스트",
+        "EXTENSION": "내선 번호",
+        "PRIORITY": "우선 순위",
+        "HANGUP_CAUSE": "끊기 원인",
+        "OUTBOUNDDIAL": "발신 전화",
+        "CALLER_ID": "발신자 ID",
+        "NO_MESSAGE_AVAILABLE": "사용 가능한 메시지 없음",
+        "NO_SOUND_AVAILABLE": "사운드 없음",
+        "VOICERECORDINGS": "음성 녹음",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "음성",
+        "REALTIME": "실시간",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "컨텍스트",
+        "NO_MOHSOUND_AVAILABLE": "사용할 수 있는 음악 없음 보류",
+        "FILE": "파일",
+        "ADD_MOHSOUND": "음악 소리가 길게 추가",
+        "DOWNLOAD_MOHSOUND": "음악 다운로드 사운드 보류",
+        "DELETE_MOHSOUND": "음악 삭제 사운드 보류",
+        "UNIQUEID": "고유 ID",
+        "AGENT": "상담원",
+        "TYPE": "유형",
+        "RATING": "등급",
+        "AUDIO": "오디오",
+        "DATE": "날짜",
+        "NEW_VOICEQUEUE": "새 음성 대기열",
+        "NEW_INBOUNDROUTE": "새로운 수신 경로",
+        "NEW_OUTBOUNDROUTE": "새 아웃바운드 경로",
+        "NEW_INTERNALROUTE": "새 내부 경로",
+        "NEW_CONTEXT": "새로운 상황에 맞는",
+        "NEW_VOICEMAIL": "새 음성 메일",
+        "NEW_MUSICONHOLD": "새 음악 대기",
+        "NEW_CHANSPY": "새로운 ChanSpy",
+        "PENALTY": "페널티",
+        "ADD_TEAM_TO_VOICEQUEUE": "팀 음성 대기열에 추가",
+        "ADD_AGENT_TO_VOICEQUEUE": "상담원에게 음성 대기열에 추가",
+        "EDIT_DIAL": "다이얼 편집",
+        "EDIT_AGI": "AGI 편집",
+        "EDIT_INTERNALDIAL": "내부 다이얼 편집",
+        "EDIT_EXTERNALDIAL": "외부 다이얼 편집",
+        "EDIT_RINGGROUP": "편집 링 그룹",
+        "EDIT_PLAYBACK": "편집할 재생",
+        "EDIT_QUEUE": "편집 대기",
+        "EDIT_SET": "설정 편집",
+        "EDIT_GOTO": "GoTo 편집",
+        "EDIT_HANGUP": "편집 끊기",
+        "EDIT_CUSTOM": "사용자 지정 편집",
+        "DURATION": "지속 시간",
+        "RECEIVED_AT": "모금을",
+        "YES": "예",
+        "NO": "없음",
+        "HANGUPCAUSE_1": "1 = 할당되지 않은 번호",
+        "HANGUPCAUSE_16": "16 = Normail 통화 지우기",
+        "HANGUPCAUSE_17": "17 = 사용 중임",
+        "HANGUPCAUSE_18": "18 = 사용자가 응답하지 않음(연결되지 않은 전화에 장치) 없음",
+        "HANGUPCAUSE_21": "21 = 통화 거부됨",
+        "HANGUPCAUSE_22": "22 = 번호 변경됨",
+        "HANGUPCAUSE_27": "27 = 부적절한 대상",
+        "HANGUPCAUSE_38": "38 = 네트워크가 작동하지 않습니다.",
+        "HANGUPCAUSE_41": "41 = 일시적인 오류입니다.",
+        "RANDOM": "무작위",
+        "ALPHABETICAL": "알파벳",
+        "NO_APPS_AVAILABLE": "사용할 수 있는 응용 프로그램이 없습니다",
+        "DOWNLOAD_VOICERECORDING": "음성 레코딩 다운로드",
+        "DELETE_VOICERECORDING": "음성 녹음 삭제",
+        "INTERNAL": "내부",
+        "PHONE_STATE": "전화 상태",
+        "PHONE_STATUS": "전화 상태",
+        "REGISTERED": "등록",
+        "UNREGISTERED": "등록되지 않은",
+        "LAGGED": "크게 뒤졌다.",
+        "REACHABLE": "도달할 수",
+        "UNREACHABLE": "연결할 수 없음",
+        "UNKNOWN": "알 수 없음",
+        "NOT_INUSE": "사용 중이 아님",
+        "INUSE": "사용",
+        "BUSY": "통화 중",
+        "INVALID": "잘못된",
+        "UNAVAILABLE": "사용 불가능",
+        "RINGING": "벨 울림",
+        "ONHOLD": "보류",
+        "RING": "링",
+        "UP": "위로",
+        "INFO": "정보",
+        "TRUNKS": "트렁크",
+        "REGISTRY": "레지스트리",
+        "NO_REGISTRY": "레지스트리 없음",
+        "LOGGED_IN": "로그인",
+        "PAUSED": "일시 중지됨",
+        "WAITING": "대기",
+        "TALKING": "통화 중",
+        "DID": "않았습니다.",
+        "CALLER": "발신자",
+        "TOTAL": "총",
+        "ANSWERED": "대답했다.",
+        "ABANDONED": "취소된 통화",
+        "UNMANAGED": "비관리",
+        "AVG_HOLD_TIME": "평균 보류 시간",
+        "AVG_DURATION": "Av 지속 시간",
+        "AVG_BILLABLE": "평균 청구",
+        "SOURCE": "소스",
+        "DESTINATION": "대상",
+        "REJECTED": "거부됨",
+        "FAILED": "실패",
+        "CALLED": "함",
+        "CONNECTED": "연결됨",
+        "NO_RATING": "등급",
+        "EDIT_VOICERECORDING": "음성 녹음 편집",
+        "APPLICATION_NAME": "응용 프로그램 이름",
+        "ARGUMENTS": "인수",
+        "ENABLED": "활성화됨",
+        "POWERLEVEL": "전원 수준",
+        "DROPRATE": "드롭 비율",
+        "AGENTBUSYFACTOR": "상담원 통화중 계수",
+        "PREDICTIVEOPTIMIZATION": "예측 가능 최적화",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "예측 가능 최적화 비율",
+        "READY": "준비됨",
+        "PAUSE": "일시 중지",
+        "UNPAUSE": "일시 중지 해제",
+        "DEFAULT_PAUSE": "기본 일시 정지",
+        "AGENTADD_QUEUE": "캠페인 상담원 대기열에 추가",
+        "AGENTSADD_QUEUE": "캠페인 상담원 대기열에 추가",
+        "ALL_TEAMS": "모든 팀이",
+        "SELECTED_TEAMS": "선택한 팀에",
+        "ALL_LISTS": "모든 목록",
+        "SELECTED_LISTS": "선택된 리스트",
+        "ALL_AGENTS": "모든 상담원",
+        "SELECTED_AGENTS": "선택된 상담원",
+        "IVRCAMPAIGNS": "IVR 캠페인",
+        "CONCURRENTCALLS": "최대 동시 통화",
+        "BLACKLISTADD_QUEUECAMPAIGN": "블랙리스트에 추가",
+        "DELETE_IVRCAMPAIGN": "캠페인 삭제",
+        "EDIT_IVRCAMPAIGN": "편집 캠페인",
+        "NEW_IVRCAMPAIGN": "새로운 IVR 캠페인",
+        "ADD_IVRCAMPAIGN": "Ivr 캠페인 추가",
+        "LISTADD_IVRCAMPAIGN": "목록에 추가",
+        "BLACKLISTADD_IVRCAMPAIGN": "블랙리스트에 추가",
+        "HISTORY": "기록",
+        "FINAL": "최종",
+        "BLACKLIST": "차단 목록",
+        "PREDICTIVEINTERVAL": "예측 가능 간격",
+        "WAITING_FOR_AGENT": "상담원 대기",
+        "TOTAL_OFFERED": "총 제공",
+        "RUNNING": "실행",
+        "INTERVAL_IS_OVERTIME": "간격은 시간외 근무",
+        "TRUNK_IS_NOT_REACHABLE": "트렁크 연결할 수 없습니다.",
+        "AGENTS_NOT_LOGGED": "상담원이 로그인하지 않았습니다",
+        "NOT_ACTIVE": "활성화되지 않음",
+        "AVAILABLE_CONTACTS_FINISHED": "사용 가능한 통화 종료",
+        "SCHEDULEDAT": "정기",
+        "HOPPERBLACKS": "호퍼 차단",
+        "NO_HOPPERBLACK_AVAILABLE": "사용 가능한 항목 없음",
+        "HOPPERFINALS": "호퍼 최종",
+        "NO_HOPPERFINAL_AVAILABLE": "사용 가능한 항목 없음",
+        "HOPPERHISTORIES": "호퍼 내역",
+        "NO_HOPPERHISTORY_AVAILABLE": "사용 가능한 항목 없음",
+        "DELETE_HOPPERHISTORY": "삭제",
+        "DELETE_HOPPERFINAL": "삭제",
+        "CONTACTID": "컨택 ID",
+        "STARTTIME": "시작 시간",
+        "RESPONSETIME": "응답 시간",
+        "ENDTIME": "종료 시간",
+        "STATUS": "상태",
+        "HOPPERS": "호퍼 비우기",
+        "NO_HOPPER_AVAILABLE": "사용 가능한 항목 없음",
+        "EDIT_HOPPER": "호퍼 편집",
+        "DELETE_HOPPER": "호퍼 삭제",
+        "AGENTTIMEOUT": "상담원 시간 초과",
+        "DISPOSITION": "폐기",
+        "REDIRECT_TO_NUMBER": "번호 재전송",
+        "REDIRECT_TO_AGENT": "상담원에게 이동",
+        "CLOSING": "닫기",
+        "MANAGED": "관리",
+        "BACKUPTRUNK": "백업 트렁크",
+        "GLOBALINTERVAL": "글로벌 간격",
+        "RESCHEDULED_CONTACTS": "재예약된 연락처",
+        "INTERVAL_IS_NULL": "간격 값은 null 입니다.",
+        "TIMEZONE_UNKNOW": "시간대를 알 수 없는",
+        "INTERVAL_IS_EMPTY": "간격 비어 있습니다.",
+        "LOGOUT": "로그아웃",
+        "EDIT_CAMPAIGN": "편집 캠페인",
+        "LIMITED": "제한",
+        "IVR_CAMPAIGNS": "Ivr 캠페인",
+        "IS_DISACTIVED": "는 Disactived",
+        "TOTAL_MANAGED": "전체 관리"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/nl.json b/public/app/main/apps/motiondialer/i18n/nl.json
new file mode 100644 (file)
index 0000000..302c31e
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Motion Bull",
+        "QUEUECAMPAIGNS": "Wachtrij campagnes",
+        "NAME": "Naam",
+        "VOICEQUEUES": "Voice wachtrijen",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "BACK": "Terug",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "DELETE_VOICEDISPOSITION": "Alle spraakberichten dispositie",
+        "EDIT_VOICEDISPOSITION": "Edit Voice dispositie",
+        "EDIT_VOICEQUEUE": "Edit Voice wachtrij",
+        "DELETE_VOICEQUEUE": "Alle spraakberichten wachtrij",
+        "MOHSOUNDS": "Moh geluiden",
+        "STRATEGY": "Strategie",
+        "DESCRIPTION": "Beschrijving",
+        "INTERVAL": "Tijdsinterval",
+        "ADD_VOICEQUEUE": "Voeg spraak wachtrij",
+        "NEW_QUEUECAMPAIGN": "Nieuwe wachtrij campagne",
+        "EDIT_QUEUECAMPAIGN": "Edit campagne",
+        "TEAMADD_QUEUECAMPAIGN": "Voeg Team",
+        "AGENTADD_QUEUECAMPAIGN": "Voeg Agent",
+        "LISTADD_QUEUECAMPAIGN": "Lijst toevoegen",
+        "DELETE_QUEUECAMPAIGN": "Campagne verwijderen",
+        "ACTIVE": "Actief",
+        "METHOD": "Methode",
+        "ADD_QUEUECAMPAIGN": "Wachtrij toevoegen campagne",
+        "CAMPAIGN": "Campagne",
+        "MAXCONCURRENTCALLS": "Max. gelijktijdige gesprekken",
+        "ORIGINATE": "Oorsprong",
+        "ORIGINATECALLERIDNAME": "Beller-ID naam",
+        "ORIGINATECALLERIDNUMBER": "Beller-ID-nummer",
+        "ORIGINATETIMEOUT": "Oorsprong Timeout",
+        "QUEUEOPTIONS": "Wachtrij-opties",
+        "QUEUETIMEOUT": "Wachtrij Timeout",
+        "CALLYSQUAREPROJECT": "Schrijfsnelheid Square Project",
+        "RETRYANDFREQUENCY": "Probeer instellingen",
+        "GLOBAL": "Wereldwijde",
+        "GLOBALMAXRETRY": "Max 245",
+        "CONGESTION": "Congestie",
+        "CONGESTIONMAXRETRY": "Max 245",
+        "CONGESTIONRETRYTIME": "Probeer tijd [min]",
+        "BUSYMAXRETRY": "Max 245",
+        "BUSYRETRYTIME": "Probeer tijd [min]",
+        "NOANSWER": "Geen antwoord",
+        "NOANSWERMAXRETRY": "Max 245",
+        "NOANSWERRETRYTIME": "Probeer tijd [min]",
+        "QUEUE_PARAMS": "Wachtrij Parameters",
+        "ORIGINATED": "Oorsprong",
+        "MESSAGE": "Bericht",
+        "DROPPED": "Weggevallen",
+        "CREATED_AT": "Gemaakt op",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Aangepaste toepassing."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "TIMEOUT_REQUIRED": "De timeout is vereist",
+            "PHONENUMBER_REQUIRED": "Het telefoonnummer is vereist",
+            "CONTEXT_REQUIRED": "De Context is vereist",
+            "DESTINATIONPATTERN_REQUIRED": "De bestemming patroon is vereist",
+            "FULLNAME_REQUIRED": "De volledige naam is vereist",
+            "EMAIL_REQUUIRED": "Het e-mailadres is vereist",
+            "EMAIL_MUST_VALID": "De e-mail moet worden geschreven in een geldige indeling",
+            "MAILBOX_REQUIRED": "De postbus is vereist",
+            "PASSWORD_REQUIRED": "Het wachtwoord is vereist",
+            "CONFIRM_NOT_MATCH": "De wachtwoorden komen niet overeen",
+            "TIMEZONE_REQUIRED": "De tijdzone is vereist",
+            "PREFIX_REQUIRED": "Het voorvoegsel is vereist",
+            "OPTIONS_REQUIRED": "De opties zijn vereist",
+            "AFTERCALLWORKDURATION_REQUIRED": "De modus Nawerk duur is vereist",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "De technologie/resource is vereist",
+            "PHONE_REQUIRED": "Het telefoonnummer is verplicht",
+            "VALUE_REQUIRED": "De waarde is vereist",
+            "EXTENSION_REQUIRED": "De uitbreiding vereist",
+            "PRIORITY_REQUIRED": "De prioriteit is vereist.",
+            "GLOBALMAXRETRY_REQUIRED": "Max 245is vereist",
+            "CONGESTIONMAXRETRY_REQUIRED": "Max 245is vereist",
+            "CONGESTIONRETRYTIME_REQUIRED": "Probeer tijd nodig",
+            "BUSYMAXRETRY_REQUIRED": "Max 245is vereist",
+            "BUSYRETRYTIME_REQUIRED": "Probeer tijd nodig",
+            "NOANSWERMAXRETRY_REQUIRED": "Max 245is vereist",
+            "NOANSWERRETRYTIME_REQUIRED": "Probeer tijd nodig",
+            "QUEUETIMEOUT_REQUIRED": "Wachtrij Timeout is vereist",
+            "ORIGINATETIMEOUT_REQUIRED": "Timeout afkomstig is vereist",
+            "GLOBALINTERVAL_REQUIRED": "Wereldwijde interval nodig is"
+        },
+        "GENERAL": "Algemeen",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Maximale lengte",
+        "RETRY": "Probeer het opnieuw",
+        "WRAPUPTIME": "Tijdafronding",
+        "WEIGHT": "Gewicht",
+        "JOINWHENEMPTY": "Join als deze leeg is.",
+        "LEAVEWHENEMPTY": "Laat als deze leeg is.",
+        "HELP": {
+            "ACTIVE": "Actief",
+            "TIMEOUT": "Geeft het aantal seconden aan het toestel.",
+            "MAXLENGTH": "Geeft het maximumaantal bellers toegestaan om te wachten in een wachtrij. Een waarde van nul betekent een onbeperkt aantal bellers in de wachtrij kan staan.",
+            "RETRY": "Geeft het aantal seconden te wachten voordat u de volgende lid in de wachtrij als de time-outwaarde is uitgeput wanneer u probeert om een lid van de wachtrij.",
+            "WRAPUPTIME": "Het aantal seconden dat een lidstaat niet in een wachtrij na een gesprek.",
+            "WEIGHT": "Definieert het gewicht van een wachtrij. Een wachtrij met een hoger gewicht opgegeven krijgen voorrang wanneer leden worden geassocieerd met meerdere wachtrijen.",
+            "JOINWHENEMPTY": "Bepaalt of een beller wordt toegevoegd aan de wachtrij wanneer geen leden beschikbaar zijn.",
+            "LEAVEWHENEMPTY": "Gebruikt om te bepalen of de bellers te schoppen uit de wachtrij wanneer leden zijn niet langer beschikbaar bent om gesprekken aan te nemen.",
+            "ANNOUNCEFREQUENCY": "Bepaalt hoe vaak moeten wij de oproeper aankondigen en/of geschatte wachttijd in de wachtrij. Stel deze waarde in op nul wilt uitschakelen.",
+            "MINANNOUNCEFREQUENCY": "Specificeert de minimale hoeveelheid tijd die moet verstrijken voordat we kondigen de beller in de wachtrij weer. Dit wordt gebruikt als de beller positie kunnen regelmatig veranderen, om te voorkomen dat de beller horen meerdere updates in een korte periode van tijd.",
+            "PERIODICANNOUNCEFREQUENCY": "Geeft aan hoe vaak er regelmatig aankondigingen voor de beller.",
+            "ANNOUNCEPOSITIONLIMIT": "Als u hebt opgegeven kondigen-positie als een grenswaarde of meer.",
+            "AFTERCALLWORKDURATION": "De duur van de pauze getriggerd door de modus Nawerk optie",
+            "MEMBERDELAY": "Als u wilt dat er een vertraging voordat de beller en wachtrij lid worden met elkaar verbonden.",
+            "MUSICONHOLD": "Stelt de muziekles te gebruiken door een bepaalde wachtrij.",
+            "ANNOUNCETOAGENT": "Voor een aankondiging speelt naar de agent die het gesprek heeft beantwoord, meestal aan hem laten weten wat wachtrij wordt de beller uit.",
+            "RANDOMPERIODICANNOUNCE": "Als deze optie is ingesteld op ja, speelt de gedefinieerde regelmatig aankondigingen in een willekeurige volgorde afspelen.",
+            "ANNOUNCEHOLDTIME": "Definieert of de geschatte wachttijd moet worden gespeeld, samen met de periodieke aankondigingen.",
+            "ANNOUNCECALLERPOSITION": "Definieert of de beller in de wachtrij moeten worden aangekondigd. Als dit op Nee is ingesteld, zal de situatie nooit worden aangekondigd. Als deze optie is ingesteld op ja, wordt de beller is altijd aangekondigd. Als de waarde wordt ingesteld op maximum, dan hoort de beller haar positie in de wachtrij alleen als deze zich binnen de limiet die is bepaald door kondigen-positie-limiet. Als de waarde wordt ingesteld op meer, dan hoort de beller haar positie als deze hoger is dan het aantal opgegeven door kondigen-positie-limiet.",
+            "REPORTHOLDTIMEAGENT": "Maakt melding van de beller in de wacht tijd in de wachtrij de vóór te overbruggen.",
+            "PERIODICANNOUNCE": "Een set van periodieke aankondigingen kan worden gespeeld, speelde in de volgorde waarin ze zijn opgegeven.",
+            "HOLDTIMEANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"Hold time\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "YOUARENEXTANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"U bent nu eerste in lijn\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "THEREAREANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"Er zijn\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "WAITINGCALLSANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"gesprekken in wachtstand\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"De huidige geschatte wachttijd is\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "MINUTESANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"min\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "MINUTEANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"min\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "SECONDSANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"S\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "THANKYOUANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"bedankt voor je geduld\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "AFTERCALLWORK": "Indien actief, de agent moet worden ingesteld op pauze na een voltooide oproepen in wachtrij",
+            "AUTOPAUSE": "Hiermee schakelt u de automatische onderbreken van leden die verzuimen om een oproep te beantwoorden. Indien actief, veroorzaakt dit lid te worden onderbroken in alle wachtrijen hij lid is.",
+            "RINGINUSE": "Gebruikt om te voorkomen dat gesprekken doorsturen naar leden wier status in gebruik is.",
+            "TIMEOUTRESTART": "Als deze optie is ingesteld op ja, wordt de time-out voor een agent om antwoord als een drukke of overbezetting van het kanaal.",
+            "MONITORFORMAT": "Specificeert het bestandsformaat te gebruiken tijdens de opname. Als monitor-formaat is inactief, gesprekken worden niet geregistreerd.",
+            "CONTEXT": "Kan een beller naar de wachtrij met een enkele druk op DTMF-cijfer. Als een context wordt opgegeven en de beller een aantal, dat cijfer zal proberen aan te passen in het kader van de vastgestelde dialplan uitvoering zal doorgaan.",
+            "SETINTERFACEVARIABLES": "Als deze optie is ingesteld op ja, net voordat de beller worden overbrugd met een wachtrij lid sommige variabelen worden ingesteld (zie wiki)",
+            "SETQUEUEVARIABLES": "Als deze optie is ingesteld op ja, net voordat de beller worden overbrugd met een wachtrij lid en net voordat de beller uit de wachtrij sommige variabelen worden ingesteld (zie wiki)",
+            "SETQUEUEENTRYVARIABLES": "Als deze optie is ingesteld op ja, net voordat de beller worden overbrugd met een wachtrij lid sommige variabelen worden ingesteld (zie wiki)",
+            "RECORDING": "Om de call recording",
+            "VOICEMAIL_CONTEXT": "Het licht van de relatieve verlenging.",
+            "METHOD": "Outbound Dialer-methode.",
+            "MAXCONCURRENTCALLS": "Het maximumaantal gelijktijdige gesprekken die worden veroorzaakt door de Outbound Dialer.",
+            "ORIGINATECALLERIDNAME": "Uitgaande Beller-ID naam",
+            "ORIGINATECALLERIDNUMBER": "Uitgaande Beller-ID-nummer",
+            "ORIGINATETIMEOUT": "Tijd in seconden voor de oorsprong uitgaand gesprek om verbinding te maken. Als de aansluiting niet is gevestigd, wordt de oorsprong staat wordt niet beantwoord.",
+            "QUEUETIMEOUT": "Tijd in seconden dat een oproep in de wachtrij wordt geplaatst voordat het wordt verbroken",
+            "GLOBALMAXRETRY": "Maximum aantal keren dat een contact wordt alvorens zij gesloten",
+            "CONGESTIONMAXRETRY": "Maximumaantal keren mislukte contact voor congestie reden heet alvorens zij gesloten",
+            "CONGESTIONRETRYTIME": "Tijd in minuten voordat u het opnieuw probeert om een contactpersoon mislukt bij congestie reden",
+            "BUSYMAXRETRY": "Maximumaantal keren mislukte contact voor drukke reden heet alvorens zij gesloten",
+            "BUSYRETRYTIME": "Tijd in minuten voordat u het opnieuw probeert om een contactpersoon mislukt voor drukke reden",
+            "NOANSWERMAXRETRY": "Maximumaantal keren mislukte contact bij No Answer reden heet alvorens zij gesloten",
+            "NOANSWERRETRYTIME": "Tijd in minuten voordat u het opnieuw probeert om een contactpersoon mislukt bij No Answer reden",
+            "POWERLEVEL": "Het aantal contacten voor een beschikbare agent.",
+            "PREDICTIVEOPTIMIZATION": "Een factor voor het optimaliseren van de voorspellende algoritme.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Percentage gebaseerd op de geselecteerde voorspellende optimalisatie factor",
+            "CONCURRENTCALLS": "Het maximumaantal gelijktijdige gesprekken die worden veroorzaakt door de Outbound Dialer voor deze campagne.",
+            "PREDICTIVEINTERVAL": "Tijdsinterval in minuten worden onderzocht door de voorspellende algoritme voor het berekenen van het bedrag van de gesprekken te genereren voor het optimaliseren van de voorspellende optimalisatie factor",
+            "AGENTTIMEOUT": "Geeft het aantal seconden aan het apparaat van een agent.",
+            "GLOBALINTERVAL": "Wereldwijde tijdsinterval waarin de beller is toegestaan om contactpersonen te bellen. Aandachtig wanneer u dit veld aanpassen. Wij zijn niet verantwoordelijk of aansprakelijk voor het niet nakomen van staat verbinden met wetten en regels."
+        },
+        "MUSICONHOLD": "Wachtmuziek",
+        "ANNOUNCETOAGENT": "Kondig Agent",
+        "ANNOUNCEMENTS": "Aankondigingen",
+        "ADVANCED": "Geavanceerd",
+        "ANNOUNCEFREQUENCY": "Frequentie aankondigen",
+        "MINANNOUNCEFREQUENCY": "Minimale frequentie aankondigen",
+        "PERIODICANNOUNCEFREQUENCY": "Periodieke aankondiging frequentie",
+        "RANDOMPERIODICANNOUNCE": "Random periodieke aankondiging",
+        "ANNOUNCEHOLDTIME": "Kondig Nadruktijd",
+        "ANNOUNCECALLERPOSITION": "Beller aankondigen positie",
+        "ANNOUNCEPOSITIONLIMIT": "Kondig ondergrenswaarde",
+        "REPORTHOLDTIMEAGENT": "Rapport Agent Nadruktijd",
+        "PERIODICANNOUNCE": "Periodieke aankondiging",
+        "HOLDTIMEANNOUNCE": "Nadruktijd aankondigen",
+        "YOUARENEXTANNOUNCE": "\"U bent volgende' aankondigen",
+        "THEREAREANNOUNCE": "'Er zijn' aankondigen",
+        "WAITINGCALLSANNOUNCE": "Wachtende oproepen aankondigen",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Geschatte wachttijd aankondigen",
+        "MINUTESANNOUNCE": "Notulen aankondigen",
+        "MINUTEANNOUNCE": "Verbaal aankondigen",
+        "SECONDSANNOUNCE": "Seconden aankondigen",
+        "THANKYOUANNOUNCE": "\"Dank u\" aankondigen",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Werk na gesprek",
+        "AFTERCALLWORKDURATION": "Nawerk duur",
+        "RINGINUSE": "Ring in gebruik",
+        "MEMBERDELAY": "De vertraging",
+        "TIMEOUTRESTART": "Timeout herstart",
+        "MONITORFORMAT": "Opnameformaat",
+        "SETINTERFACEVARIABLES": "Stel Interface variabelen",
+        "SETQUEUEVARIABLES": "Setwachtrij variabelen",
+        "SETQUEUEENTRYVARIABLES": "Setwachtrij Entry variabelen",
+        "CONTEXT": "Kader",
+        "SAVE": "Opslaan",
+        "SETTINGS": "Instellingen",
+        "INBOUNDROUTES": "Binnenkomende routes",
+        "PHONENUMBER": "Telefoonnummer",
+        "ADD_INBOUNDROUTE": "Voeg binnenkomende route",
+        "EDIT_INBOUNDROUTE": "Edit Binnenkomende route",
+        "DELETE_INBOUNDROUTE": "Verwijder Inkomende route",
+        "ACTIONS": "Acties",
+        "OUTBOUNDROUTES": "Uitgaande routes",
+        "DESTINATIONPATTERN": "Bestemming patroon",
+        "ADD_OUTBOUNDROUTE": "Voeg uitgaande route",
+        "EDIT_OUTBOUNDROUTE": "Edit uitgaande route",
+        "DELETE_OUTBOUNDROUTE": "Verwijder uitgaande route",
+        "CUTDIGITS": "Snijd cijfers",
+        "RECORDING": "Opname",
+        "RECORDINGFORMAT": "Opnameformaat",
+        "INTERNALROUTES": "Interne verbindingen",
+        "ADD_INTERNALROUTE": "Voeg interne Route",
+        "EDIT_INTERNALROUTE": "Edit interne Route",
+        "DELETE_INTERNALROUTE": "Verwijder inwendige Route",
+        "CONTEXTS": "Contexten",
+        "ADD_CONTEXT": "Voeg context",
+        "EDIT_CONTEXT": "Edit context",
+        "DELETE_CONTEXT": "Context verwijderen",
+        "VOICEMAILS": "Voicemails",
+        "ADD_VOICEMAIL": "Voeg Voicemail",
+        "EDIT_VOICEMAIL": "Voicemail wijzigen",
+        "DELETE_VOICEMAIL": "Voicemail verwijderen",
+        "FULLNAME": "Volledige naam",
+        "EMAIL": "E-mail",
+        "MAILBOX": "Mailbox",
+        "PASSWORD": "Wachtwoord",
+        "CONFIRM_PASSWORD": "Wachtwoord bevestigen",
+        "TIMEZONE": "Tijdzone",
+        "ATTACH": "Bevestig",
+        "ENVELOPE": "Envelop",
+        "DELETE": "Verwijderen",
+        "EMAILBODY": "Hoofdtekst",
+        "EMAILSUBJECT": "E-mail Onderwerp",
+        "MAXSECONDS": "Max seconden",
+        "MAXMESSAGES": "Max berichten",
+        "MESSAGES": "Berichten",
+        "SORT": "Sorteren",
+        "ADD_MUSICONHOLD": "Voeg Wachtmuziek",
+        "MUSICONHOLDS": "Muziek in de wachtstand",
+        "EDIT_MUSICONHOLD": "Edit Wachtmuziek",
+        "DELETE_MUSICONHOLD": "Verwijderen Wachtmuziek",
+        "DIRECTORY": "Directory",
+        "AUDIOFILES": "Audiobestanden",
+        "RECORDINGS": "Opnamen",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Voorvoegsel",
+        "OPTIONS": "Opties",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Voeg ChanSpy",
+        "EDIT_CHANSPY": "ChanSpy bewerken",
+        "DELETE_CHANSPY": "Verwijder ChanSpy",
+        "AGENTS": "Agenten",
+        "TELEPHONES": "Telefoons",
+        "QUEUES": "Wachtrijen",
+        "QUEUE_CALLS": "Oproepen wachtrij",
+        "QUEUE_PARAMETERS": "Wachtrij Parameters",
+        "ABANDONED_CALLS": "Verlaten oproepen",
+        "OUTBOUND_CALLS": "Uitgaande gesprekken",
+        "AGI": "AGI",
+        "DIAL": "Meetklok",
+        "INTERNALDIAL": "Intern bellen",
+        "EXTERNALDIAL": "Externe kiestoon",
+        "RINGGROUP": "Belgroep",
+        "PLAYBACK": "Afspelen",
+        "QUEUE": "Wachtrij",
+        "SET": "Stel",
+        "VOICEMAIL": "Voicemail",
+        "GOTO": "GoTo",
+        "HANGUP": "Ophangen",
+        "CUSTOM": "Aangepaste",
+        "PROJECT": "Cally-Square Project",
+        "TECHNOLOGY/RESOURCE": "Technologie/resource",
+        "URL": "URL",
+        "EDIT_APP": "Toepassing bewerken",
+        "EDIT_INTERVAL": "Interval bewerken",
+        "DELETE_APP": "Toepassing verwijderen",
+        "INTERVALS": "Intervallen",
+        "USER": "Gebruiker",
+        "TRUNK": "Transmissielijn",
+        "PHONE": "Telefoon",
+        "AUDIO_FILES": "Audiobestanden",
+        "ANNOUNCE_OVERRIDES": "Kondig genegeerd.",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "RULE": "Regel",
+        "POSITION": "Positie",
+        "ANSWER": "Antwoord",
+        "VALUE": "Waarde",
+        "MAILBOX@CONTEXT": "Mailbox@context",
+        "EXTENSION": "Uitbreiding",
+        "PRIORITY": "Prioriteit",
+        "HANGUP_CAUSE": "Hangup oorzaak",
+        "OUTBOUNDDIAL": "Uitgaande oproep",
+        "CALLER_ID": "Beller-ID",
+        "NO_MESSAGE_AVAILABLE": "Er zijn geen berichten beschikbaar.",
+        "NO_SOUND_AVAILABLE": "Geen geluiden beschikbaar",
+        "VOICERECORDINGS": "Spraakopnamen",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Spraak",
+        "REALTIME": "Realtime",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Kader",
+        "NO_MOHSOUND_AVAILABLE": "Geen Wachtmuziek beschikbaar",
+        "FILE": "Bestand",
+        "ADD_MOHSOUND": "Voeg Wachtmuziek geluid",
+        "DOWNLOAD_MOHSOUND": "Download muziek tijdens wachtstand geluid",
+        "DELETE_MOHSOUND": "Verwijderen Wachtmuziek geluid",
+        "UNIQUEID": "Unieke ID",
+        "AGENT": "Agent",
+        "TYPE": "Type",
+        "RATING": "Waardering",
+        "AUDIO": "Audio",
+        "DATE": "Datum",
+        "NEW_VOICEQUEUE": "Nieuw spraakbericht wachtrij",
+        "NEW_INBOUNDROUTE": "Nieuwe Inkomende route",
+        "NEW_OUTBOUNDROUTE": "Nieuwe uitgaande route",
+        "NEW_INTERNALROUTE": "Nieuwe interne Route",
+        "NEW_CONTEXT": "Nieuwe context.",
+        "NEW_VOICEMAIL": "Nieuwe voicemail",
+        "NEW_MUSICONHOLD": "Nieuwe Wachtmuziek",
+        "NEW_CHANSPY": "Nieuwe ChanSpy",
+        "PENALTY": "Boete",
+        "ADD_TEAM_TO_VOICEQUEUE": "Voeg Team Voice wachtrij",
+        "ADD_AGENT_TO_VOICEQUEUE": "Voeg Agent Voice wachtrij",
+        "EDIT_DIAL": "Nummer bewerken",
+        "EDIT_AGI": "Edit AGI",
+        "EDIT_INTERNALDIAL": "Edit interne kiestoon",
+        "EDIT_EXTERNALDIAL": "Bewerken externe kiestoon",
+        "EDIT_RINGGROUP": "Edit belgroep",
+        "EDIT_PLAYBACK": "Edit afspelen",
+        "EDIT_QUEUE": "Wachtrij bewerken",
+        "EDIT_SET": "Telefoonpost bewerken",
+        "EDIT_GOTO": "Ga naar bewerken",
+        "EDIT_HANGUP": "Hangup bewerken",
+        "EDIT_CUSTOM": "Bewerk aangep.",
+        "DURATION": "Duur",
+        "RECEIVED_AT": "Ingekomen",
+        "YES": "Ja",
+        "NO": "Nr.",
+        "HANGUPCAUSE_1": "1 = niet toegewezen nummer",
+        "HANGUPCAUSE_16": "16 = Normail gesprek wissen",
+        "HANGUPCAUSE_17": "17 = Gebruiker bezet",
+        "HANGUPCAUSE_18": "18 = geen gebruiker reageert (telefoon toestel niet aangesloten)",
+        "HANGUPCAUSE_21": "21 = gesprek afgewezen",
+        "HANGUPCAUSE_22": "22 = Nummer wijzigen",
+        "HANGUPCAUSE_27": "27 = Bestemming buiten bedrijf",
+        "HANGUPCAUSE_38": "38 = Netwerk buiten bedrijf",
+        "HANGUPCAUSE_41": "41 = Tijdelijke storing",
+        "RANDOM": "Willekeurig",
+        "ALPHABETICAL": "Alfabetische",
+        "NO_APPS_AVAILABLE": "Geen toepassingen beschikbaar",
+        "DOWNLOAD_VOICERECORDING": "Spraakberichten opnemen",
+        "DELETE_VOICERECORDING": "Verwijder spraakopname",
+        "INTERNAL": "Interne",
+        "PHONE_STATE": "Telefoon staat",
+        "PHONE_STATUS": "Telefoonstatus",
+        "REGISTERED": "Geregistreerd",
+        "UNREGISTERED": "Unregistered",
+        "LAGGED": "Achtergebleven.",
+        "REACHABLE": "Bereikbaar",
+        "UNREACHABLE": "Onbereikbaar",
+        "UNKNOWN": "Onbekend",
+        "NOT_INUSE": "Niet in gebruik",
+        "INUSE": "In gebruik",
+        "BUSY": "Bezet",
+        "INVALID": "Ongeldig",
+        "UNAVAILABLE": "Niet beschikbaar",
+        "RINGING": "Belsignaal",
+        "ONHOLD": "In de wachtstand",
+        "RING": "Borgring",
+        "UP": "Omhoog",
+        "INFO": "Info",
+        "TRUNKS": "Trunks",
+        "REGISTRY": "Registreren",
+        "NO_REGISTRY": "Geen registratie",
+        "LOGGED_IN": "Aangemeld",
+        "PAUSED": "Gepauzeerd",
+        "WAITING": "Wachten",
+        "TALKING": "Spreken",
+        "DID": "Wist",
+        "CALLER": "Beller",
+        "TOTAL": "Totaal",
+        "ANSWERED": "Beantwoord",
+        "ABANDONED": "Verlaten",
+        "UNMANAGED": "Onbeheerde",
+        "AVG_HOLD_TIME": "Gem. tijd in wacht",
+        "AVG_DURATION": "Av duur",
+        "AVG_BILLABLE": "Gem factureerbare",
+        "SOURCE": "Bron",
+        "DESTINATION": "Bestemming",
+        "REJECTED": "Afgewezen",
+        "FAILED": "Mislukt",
+        "CALLED": "Naam",
+        "CONNECTED": "Aangesloten",
+        "NO_RATING": "Geen waardering",
+        "EDIT_VOICERECORDING": "Edit spraakopname",
+        "APPLICATION_NAME": "Toepassingsnaam",
+        "ARGUMENTS": "Argumenten",
+        "ENABLED": "Ingeschakeld",
+        "POWERLEVEL": "Vermogensniveau",
+        "DROPRATE": "Daalsnelheid",
+        "AGENTBUSYFACTOR": "Agent drukke factor",
+        "PREDICTIVEOPTIMIZATION": "Voorspellende optimalisatie",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Voorspellende optimalisatie percentage",
+        "READY": "Gereed",
+        "PAUSE": "Pauze",
+        "UNPAUSE": "Door",
+        "DEFAULT_PAUSE": "Standaardinstellingen voor pauze",
+        "AGENTADD_QUEUE": "Agent toevoegen aan wachtrij campagne",
+        "AGENTSADD_QUEUE": "Agenten Toevoegen aan wachtrij campagne",
+        "ALL_TEAMS": "Alle teams",
+        "SELECTED_TEAMS": "Geselecteerde teams",
+        "ALL_LISTS": "Alle lijsten",
+        "SELECTED_LISTS": "Geselecteerde lijsten",
+        "ALL_AGENTS": "Alle gebruikers zijn agenten",
+        "SELECTED_AGENTS": "Geselecteerde agenten",
+        "IVRCAMPAIGNS": "IVR campagnes",
+        "CONCURRENTCALLS": "Max. gelijktijdige gesprekken",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Voeg Blacklist.",
+        "DELETE_IVRCAMPAIGN": "Campagne verwijderen",
+        "EDIT_IVRCAMPAIGN": "Edit campagne",
+        "NEW_IVRCAMPAIGN": "Nieuwe IVR campagne",
+        "ADD_IVRCAMPAIGN": "Voeg IVR campagne",
+        "LISTADD_IVRCAMPAIGN": "Lijst toevoegen",
+        "BLACKLISTADD_IVRCAMPAIGN": "Voeg Blacklist.",
+        "HISTORY": "Geschiedenis",
+        "FINAL": "Def.",
+        "BLACKLIST": "Zwarte lijst",
+        "PREDICTIVEINTERVAL": "Voorspellende Interval",
+        "WAITING_FOR_AGENT": "Wachten op Agent",
+        "TOTAL_OFFERED": "Totaal beschikbaar",
+        "RUNNING": "Draaiende motor",
+        "INTERVAL_IS_OVERTIME": "Interval is overwerk",
+        "TRUNK_IS_NOT_REACHABLE": "Trunk is niet bereikbaar",
+        "AGENTS_NOT_LOGGED": "Agent niet ingelogd",
+        "NOT_ACTIVE": "Niet actief",
+        "AVAILABLE_CONTACTS_FINISHED": "Contactpersonen voltooid",
+        "SCHEDULEDAT": "Gepland op",
+        "HOPPERBLACKS": "Hopper Blacklist.",
+        "NO_HOPPERBLACK_AVAILABLE": "Geen items beschikbaar",
+        "HOPPERFINALS": "Hopper def.",
+        "NO_HOPPERFINAL_AVAILABLE": "Geen items beschikbaar",
+        "HOPPERHISTORIES": "Hopper Geschiedenis",
+        "NO_HOPPERHISTORY_AVAILABLE": "Geen items beschikbaar",
+        "DELETE_HOPPERHISTORY": "Verwijderen",
+        "DELETE_HOPPERFINAL": "Verwijderen",
+        "CONTACTID": "Contact-ID",
+        "STARTTIME": "Begintijd",
+        "RESPONSETIME": "Reactietijd",
+        "ENDTIME": "Eindtijd",
+        "STATUS": "Status",
+        "HOPPERS": "Trechter",
+        "NO_HOPPER_AVAILABLE": "Geen items beschikbaar",
+        "EDIT_HOPPER": "Edit Hopper",
+        "DELETE_HOPPER": "Hopper verwijderen",
+        "AGENTTIMEOUT": "Time-out agent",
+        "DISPOSITION": "Afvoeren",
+        "REDIRECT_TO_NUMBER": "Doorverwijzen naar een nummer",
+        "REDIRECT_TO_AGENT": "Doorverwijzen naar een agent",
+        "CLOSING": "Sluiten",
+        "MANAGED": "Beheerd",
+        "BACKUPTRUNK": "Back-trunk",
+        "GLOBALINTERVAL": "Wereldwijde Interval",
+        "RESCHEDULED_CONTACTS": "Gepland contacten",
+        "INTERVAL_IS_NULL": "Interval is null.",
+        "TIMEZONE_UNKNOW": "Onbekende tijdzone",
+        "INTERVAL_IS_EMPTY": "Interval is leeg",
+        "LOGOUT": "Afmelden",
+        "EDIT_CAMPAIGN": "Edit campagne",
+        "LIMITED": "Beperkt",
+        "IVR_CAMPAIGNS": "Ivr campagnes",
+        "IS_DISACTIVED": "Is Disactived",
+        "TOTAL_MANAGED": "Totale beheerde"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/no.json b/public/app/main/apps/motiondialer/i18n/no.json
new file mode 100644 (file)
index 0000000..cebd2f8
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Motion Bull",
+        "QUEUECAMPAIGNS": "Køen kampanjer",
+        "NAME": "Navn",
+        "VOICEQUEUES": "Voice køer",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "BACK": "Tilbake",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "DELETE_VOICEDISPOSITION": "Slett stemme disposisjon",
+        "EDIT_VOICEDISPOSITION": "Rediger stemme disposisjon",
+        "EDIT_VOICEQUEUE": "Rediger stemme kø",
+        "DELETE_VOICEQUEUE": "Slett stemme kø",
+        "MOHSOUNDS": "Moh lyder",
+        "STRATEGY": "Strategi",
+        "DESCRIPTION": "Beskrivelse",
+        "INTERVAL": "Tidsintervall",
+        "ADD_VOICEQUEUE": "Legg til Voice kø",
+        "NEW_QUEUECAMPAIGN": "Ny kø kampanje",
+        "EDIT_QUEUECAMPAIGN": "Rediger kampanje",
+        "TEAMADD_QUEUECAMPAIGN": "Legg til lag",
+        "AGENTADD_QUEUECAMPAIGN": "Legg til agent",
+        "LISTADD_QUEUECAMPAIGN": "Legge til liste",
+        "DELETE_QUEUECAMPAIGN": "Slette kampanje",
+        "ACTIVE": "Aktiv",
+        "METHOD": "Metode",
+        "ADD_QUEUECAMPAIGN": "Legge til kø-kampanje",
+        "CAMPAIGN": "Kampanje",
+        "MAXCONCURRENTCALLS": "Maks samtidige samtaler",
+        "ORIGINATE": "Stamme",
+        "ORIGINATECALLERIDNAME": "Anroper-ID-navn",
+        "ORIGINATECALLERIDNUMBER": "Anroper-ID-nummer",
+        "ORIGINATETIMEOUT": "Stamme tidsavbrudd",
+        "QUEUEOPTIONS": "Køalternativer",
+        "QUEUETIMEOUT": "Køen tidsavbrudd",
+        "CALLYSQUAREPROJECT": "Sportsbil Square prosjekt",
+        "RETRYANDFREQUENCY": "Prøv Innstillingene",
+        "GLOBAL": "Global",
+        "GLOBALMAXRETRY": "Maks. antall nye forsøk",
+        "CONGESTION": "Flaskehalser",
+        "CONGESTIONMAXRETRY": "Maks. antall nye forsøk",
+        "CONGESTIONRETRYTIME": "Prøv tid [min]",
+        "BUSYMAXRETRY": "Maks. antall nye forsøk",
+        "BUSYRETRYTIME": "Prøv tid [min]",
+        "NOANSWER": "Ingen svar",
+        "NOANSWERMAXRETRY": "Maks. antall nye forsøk",
+        "NOANSWERRETRYTIME": "Prøv tid [min]",
+        "QUEUE_PARAMS": "Køen parametere",
+        "ORIGINATED": "Opprinnelig",
+        "MESSAGE": "Melding",
+        "DROPPED": "Droppet",
+        "CREATED_AT": "Opprettet i",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - tilpasset program."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "TIMEOUT_REQUIRED": "Tidsavbruddet er nødvendig",
+            "PHONENUMBER_REQUIRED": "Telefonnummer er obligatorisk",
+            "CONTEXT_REQUIRED": "Konteksten er nødvendig",
+            "DESTINATIONPATTERN_REQUIRED": "Målet mønster er nødvendig",
+            "FULLNAME_REQUIRED": "Det fulle navnet er nødvendig",
+            "EMAIL_REQUUIRED": "Det er nødvendig med e-post",
+            "EMAIL_MUST_VALID": "E må være skrevet i et gyldig format",
+            "MAILBOX_REQUIRED": "Postboksen er nødvendig",
+            "PASSWORD_REQUIRED": "Passordet er nødvendig",
+            "CONFIRM_NOT_MATCH": "Passordene samsvarer ikke",
+            "TIMEZONE_REQUIRED": "Tidssonen er nødvendig",
+            "PREFIX_REQUIRED": "Prefikset er nødvendig",
+            "OPTIONS_REQUIRED": "Alternativene er nødvendig",
+            "AFTERCALLWORKDURATION_REQUIRED": "Det Etterarbeid varighet er nødvendig",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Teknologien/Ressurs er nødvendig",
+            "PHONE_REQUIRED": "Telefonen er nødvendig",
+            "VALUE_REQUIRED": "Verdien er obligatorisk",
+            "EXTENSION_REQUIRED": "Utvidelsen er nødvendig",
+            "PRIORITY_REQUIRED": "Prioriteten er nødvendig",
+            "GLOBALMAXRETRY_REQUIRED": "Max-forsøk er nødvendig",
+            "CONGESTIONMAXRETRY_REQUIRED": "Max-forsøk er nødvendig",
+            "CONGESTIONRETRYTIME_REQUIRED": "Prøv tid er nødvendig",
+            "BUSYMAXRETRY_REQUIRED": "Max-forsøk er nødvendig",
+            "BUSYRETRYTIME_REQUIRED": "Prøv tid er nødvendig",
+            "NOANSWERMAXRETRY_REQUIRED": "Max-forsøk er nødvendig",
+            "NOANSWERRETRYTIME_REQUIRED": "Prøv tid er nødvendig",
+            "QUEUETIMEOUT_REQUIRED": "Køen tidsavbrudd er nødvendig",
+            "ORIGINATETIMEOUT_REQUIRED": "Stamme tidsavbrudd er nødvendig",
+            "GLOBALINTERVAL_REQUIRED": "Global intervall er nødvendig"
+        },
+        "GENERAL": "Generelt",
+        "TIMEOUT": "Tidsavbrudd",
+        "MAXLENGTH": "Maksimal lengde",
+        "RETRY": "Prøv på nytt",
+        "WRAPUPTIME": "Wrapup tid",
+        "WEIGHT": "Vekt",
+        "JOINWHENEMPTY": "Bli med når den er tom",
+        "LEAVEWHENEMPTY": "La når tom",
+        "HELP": {
+            "ACTIVE": "Aktiv",
+            "TIMEOUT": "Angir antall sekunder til ringen medlem i enheten.",
+            "MAXLENGTH": "Oppgir maksimalt antall innringere være lov å vente i kø. En verdi lik null betyr et ubegrenset antall innringere er tillatt i køen.",
+            "RETRY": "Angir antall sekunder å vente før du prøver den neste medlem i køen hvis den angitte verdien er utslitt og forsøker å ringe et medlem av køen.",
+            "WRAPUPTIME": "Antall sekunder for å holde medlem utilgjengelig i en kø etter fullføring av en samtale.",
+            "WEIGHT": "Definerer vekten til en kø. En kø med en høyere vekt er definert vil få første prioritet når medlemmer er tilknyttet flere køer.",
+            "JOINWHENEMPTY": "Styrer om en innringer er lagt til i køen når ingen medlemmer er tilgjengelig.",
+            "LEAVEWHENEMPTY": "Brukes til å kontrollere om innringerne er sparket ut av køen når medlemmer er ikke lenger tilgjengelig for å ta samtaler.",
+            "ANNOUNCEFREQUENCY": "Definerer hvor ofte vi skal annonsere på innringeren stilling og/eller beregnet ventetid i kø. Denne verdien settes til null for å deaktivere.",
+            "MINANNOUNCEFREQUENCY": "Angir den minste mengden tid som må gå før vi annonserer på innringeren posisjon i køen igjen. Dette brukes når innringeren stilling kan endres ofte, for å hindre at innringeren hører flere oppdateringer i en kort periode.",
+            "PERIODICANNOUNCEFREQUENCY": "Angir hvor ofte vi skal lage periodiske kunngjøringer til innringeren.",
+            "ANNOUNCEPOSITIONLIMIT": "Brukes hvis du har definert annonsere-posisjon som enten begrense eller mer.",
+            "AFTERCALLWORKDURATION": "Varigheten av Pause utløses av Etterarbeid alternativ",
+            "MEMBERDELAY": "Brukes hvis du ønsker det skal være en forsinkelse før til innringer og kø-medlem som er knyttet til hverandre.",
+            "MUSICONHOLD": "Setter musikk klassen som skal brukes av en bestemt kø.",
+            "ANNOUNCETOAGENT": "Brukes til å spille av en meddelelse til agent som besvarte anropet, vanligvis for å la ham vite hva køen innringer kommer fra.",
+            "RANDOMPERIODICANNOUNCE": "Hvis satt til ja, vil spille den definert periodisk kunngjøringer i tilfeldig rekkefølge.",
+            "ANNOUNCEHOLDTIME": "Definerer om den beregnede tiden skal spilles sammen med jevne mellomrom annonseringer.",
+            "ANNOUNCECALLERPOSITION": "Definerer om innringeren posisjon i køen skal være annonsert til henne. Hvis satt til Ingen, stillingen vil aldri bli kunngjort. Hvis satt til ja, for innringeren stilling vil alltid bli kunngjort. Hvis verdien er satt til grense, innringer vil høre hennes posisjon i køen bare hvis det er innenfor grensen som er definert av annonsere-stilling-grense. Hvis verdien er satt til mer, innringer vil høre hennes stilling hvis det utover det som er definert av annonsere-stilling-grense.",
+            "REPORTHOLDTIMEAGENT": "Muliggjør rapportering av innringeren hold tid til køen medlem før bridging.",
+            "PERIODICANNOUNCE": "Et sett med jevne mellomrom annonseringer skal spilles, spilte i den rekkefølgen de er definert.",
+            "HOLDTIMEANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"Hold tid\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "YOUARENEXTANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"Du er nå først i linje\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "THEREAREANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"det er\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "WAITINGCALLSANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"anrop venter\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"Den gjeldende beregnet hold tid er\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "MINUTESANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"minutter\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "MINUTEANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"minutt\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "SECONDSANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"sekunder\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "THANKYOUANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"Takk for tålmodigheten\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "AFTERCALLWORK": "Hvis aktiv, agenten vil bli satt på pause etter en avsluttet samtalen på køen",
+            "AUTOPAUSE": "Aktiverer/deaktiverer automatisk pause av medlemmer som unnlater å svare på et anrop. Hvis aktiv fører dette medlem til å være avslått i alle køer han er medlem av.",
+            "RINGINUSE": "Brukes for å unngå å sende samtaler til medlemmer som er i bruk.",
+            "TIMEOUTRESTART": "Hvis satt til ja, tilbakestiller stille for en agent til å svare hvis enten en opptatt eller flaskehalser status er mottatt fra kanalen.",
+            "MONITORFORMAT": "Angir filformatet til bruk når opptaket. Hvis monitoren-format er inaktiv, samtaler vil ikke bli registrert.",
+            "CONTEXT": "Gjør en innringer til å gå ut av køen ved å trykke en enkelt DTMF siffer. Hvis en kontekst er spesifisert og anroper legger inn et nummer, at tallet vil forsøke å være avkrysset i kontekst angitt, og dialplan utførelsen vil fortsette der.",
+            "SETINTERFACEVARIABLES": "Hvis satt til ja, like før til innringeren blir forbundet med en kø medlem noen variabler blir satt(se wiki)",
+            "SETQUEUEVARIABLES": "Hvis satt til ja, like før til innringeren blir forbundet med en kø-medlem og like før til innringeren forlate køen noen variabler blir satt(se wiki)",
+            "SETQUEUEENTRYVARIABLES": "Hvis satt til ja, like før til innringeren blir forbundet med en kø medlem noen variabler blir satt(se wiki)",
+            "RECORDING": "Aktiverer anropet opptak",
+            "VOICEMAIL_CONTEXT": "Sammenhengen i relativ forlengelse.",
+            "METHOD": "Utgående dialer-metoden.",
+            "MAXCONCURRENTCALLS": "Maksimalt antall samtidige samtaler som skal hentes av utgående dialer.",
+            "ORIGINATECALLERIDNAME": "Utgående anroper-ID-navn",
+            "ORIGINATECALLERIDNUMBER": "Utgående anroper-ID-nummer",
+            "ORIGINATETIMEOUT": "Tid i sekunder for den opprinnelige utgående anrop til å opprette forbindelse. Hvis connectin er ikke etablert, kommer status vil bli ingen svar.",
+            "QUEUETIMEOUT": "Tiden i sekunder som en samtale vil vente i køen før den slippes",
+            "GLOBALMAXRETRY": "Maksimalt antall ganger en kontakt er kalt før man vurderer den lukket",
+            "CONGESTIONMAXRETRY": "Maksimalt antall ganger en mislykket kontakt for flaskehalser grunn kalles før man vurderer den lukket",
+            "CONGESTIONRETRYTIME": "Tid i minutter før du prøver å nå en kontakt mislyktes for flaskehalser årsak",
+            "BUSYMAXRETRY": "Maksimalt antall ganger en mislykket kontakt for travle grunn kalles før man vurderer den lukket",
+            "BUSYRETRYTIME": "Tid i minutter før du prøver å nå en kontakt mislyktes for travle årsak",
+            "NOANSWERMAXRETRY": "Maksimalt antall ganger en mislykket kontakt for ingen svar grunn kalles før man vurderer den lukket",
+            "NOANSWERRETRYTIME": "Tid i minutter før du prøver å nå en kontakt mislyktes for ingen svar årsak",
+            "POWERLEVEL": "Antall kontakter til å ringe for en tilgjengelig agent.",
+            "PREDICTIVEOPTIMIZATION": "En faktor for å optimalisere i prediktiv algoritmen.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Prosent basert på valgte prediktiv optimalisering faktor",
+            "CONCURRENTCALLS": "Maksimalt antall samtidige samtaler som skal hentes av utgående oppringingen for denne kampanjen.",
+            "PREDICTIVEINTERVAL": "Tidsintervall i minutter for å bli vurdert av prediktiv algoritme til å beregne mengden av samtaler til å generere for optimering av prediktiv optimalisering faktor",
+            "AGENTTIMEOUT": "Angir antall sekunder til ringen en agent-enheten.",
+            "GLOBALINTERVAL": "Global tidsintervallet som alarmsentralen er tillatt å ringe kontakter. Vær nøye når du endrer dette feltet. Vi vil ikke være ansvarlig eller erstatningsansvarlig for din manglende samsvar med statlige Autodialer lover og forskrifter."
+        },
+        "MUSICONHOLD": "Musikk på vent",
+        "ANNOUNCETOAGENT": "Annonsere til agent",
+        "ANNOUNCEMENTS": "Kunngjøringer",
+        "ADVANCED": "Avansert",
+        "ANNOUNCEFREQUENCY": "Annonsere frekvens",
+        "MINANNOUNCEFREQUENCY": "Minste annonsere frekvens",
+        "PERIODICANNOUNCEFREQUENCY": "Periodisk annonsere frekvens",
+        "RANDOMPERIODICANNOUNCE": "Tilfeldig periodisk annonsere",
+        "ANNOUNCEHOLDTIME": "Annonsere Hold tid",
+        "ANNOUNCECALLERPOSITION": "Annonsere innringer stilling",
+        "ANNOUNCEPOSITIONLIMIT": "Annonsere stilling grense",
+        "REPORTHOLDTIMEAGENT": "Rapporten Agent Hold tid",
+        "PERIODICANNOUNCE": "Periodisk annonsere",
+        "HOLDTIMEANNOUNCE": "Hold tid annonsere",
+        "YOUARENEXTANNOUNCE": "\"Du er neste' annonsere",
+        "THEREAREANNOUNCE": "\"Det er' annonsere",
+        "WAITINGCALLSANNOUNCE": "Ventende anrop annonsere",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Estimert Hold tid annonsere",
+        "MINUTESANNOUNCE": "Minutter annonsere",
+        "MINUTEANNOUNCE": "Minutt annonsere",
+        "SECONDSANNOUNCE": "Sekunder annonsere",
+        "THANKYOUANNOUNCE": "'Takk' annonsere",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Etterarbeid",
+        "AFTERCALLWORKDURATION": "Etterarbeid varighet",
+        "RINGINUSE": "Ring i bruk",
+        "MEMBERDELAY": "Medlem forsinkelse",
+        "TIMEOUTRESTART": "Tidsavbrudd på nytt",
+        "MONITORFORMAT": "Opptaksformat",
+        "SETINTERFACEVARIABLES": "Sett grensesnitt variabler",
+        "SETQUEUEVARIABLES": "Sett kø variabler",
+        "SETQUEUEENTRYVARIABLES": "Sett kø oppføring variabler",
+        "CONTEXT": "Kontekst",
+        "SAVE": "Lagre",
+        "SETTINGS": "Innstillinger",
+        "INBOUNDROUTES": "Inngående ruter",
+        "PHONENUMBER": "Telefonnummer",
+        "ADD_INBOUNDROUTE": "Legge til inngående rute",
+        "EDIT_INBOUNDROUTE": "Rediger inngående rute",
+        "DELETE_INBOUNDROUTE": "Slett inngående rute",
+        "ACTIONS": "Tiltak",
+        "OUTBOUNDROUTES": "Utgående ruter",
+        "DESTINATIONPATTERN": "Destinasjon mønster",
+        "ADD_OUTBOUNDROUTE": "Legg til utgående rute",
+        "EDIT_OUTBOUNDROUTE": "Rediger utgående rute",
+        "DELETE_OUTBOUNDROUTE": "Slette utgående rute",
+        "CUTDIGITS": "Kutt sifre",
+        "RECORDING": "Opptak",
+        "RECORDINGFORMAT": "Opptaksformat",
+        "INTERNALROUTES": "Interne ruter",
+        "ADD_INTERNALROUTE": "Legg til interne rute",
+        "EDIT_INTERNALROUTE": "Rediger interne rute",
+        "DELETE_INTERNALROUTE": "Slette interne rute",
+        "CONTEXTS": "Kontekster",
+        "ADD_CONTEXT": "Legg kontekst",
+        "EDIT_CONTEXT": "Rediger kontekst",
+        "DELETE_CONTEXT": "Slette kontekst",
+        "VOICEMAILS": "Talemeldinger",
+        "ADD_VOICEMAIL": "Legg til talepost",
+        "EDIT_VOICEMAIL": "Rediger talepost",
+        "DELETE_VOICEMAIL": "Slette talepost",
+        "FULLNAME": "Fullt navn",
+        "EMAIL": "E",
+        "MAILBOX": "Postboks",
+        "PASSWORD": "Passord",
+        "CONFIRM_PASSWORD": "Bekreft passord",
+        "TIMEZONE": "Tidssone",
+        "ATTACH": "Fest",
+        "ENVELOPE": "Konvolutt",
+        "DELETE": "Slette",
+        "EMAILBODY": "E-postteksten",
+        "EMAILSUBJECT": "Emne for e-post",
+        "MAXSECONDS": "Maks sekunder",
+        "MAXMESSAGES": "Maks meldinger",
+        "MESSAGES": "Meldinger",
+        "SORT": "Sortere",
+        "ADD_MUSICONHOLD": "Legg til musikk på vent",
+        "MUSICONHOLDS": "Musikk på vent",
+        "EDIT_MUSICONHOLD": "Rediger musikk på vent",
+        "DELETE_MUSICONHOLD": "Slett musikk på vent",
+        "DIRECTORY": "Katalog",
+        "AUDIOFILES": "Lydfiler",
+        "RECORDINGS": "Opptak",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefiks",
+        "OPTIONS": "Alternativer",
+        "AUTH": "Attest",
+        "ADD_CHANSPY": "Legg ChanSpy",
+        "EDIT_CHANSPY": "Rediger ChanSpy",
+        "DELETE_CHANSPY": "Slette ChanSpy",
+        "AGENTS": "Agenter",
+        "TELEPHONES": "Telefoner",
+        "QUEUES": "Køer",
+        "QUEUE_CALLS": "Køen samtaler",
+        "QUEUE_PARAMETERS": "Køen parametere",
+        "ABANDONED_CALLS": "Forlatt samtaler",
+        "OUTBOUND_CALLS": "Utgående anrop",
+        "AGI": "AGI",
+        "DIAL": "Direkte",
+        "INTERNALDIAL": "Intern direkte",
+        "EXTERNALDIAL": "Ekstern direkte",
+        "RINGGROUP": "Ring gruppe",
+        "PLAYBACK": "Avspilling",
+        "QUEUE": "Kø",
+        "SET": "Sett",
+        "VOICEMAIL": "Talebeskjed",
+        "GOTO": "Gå til",
+        "HANGUP": "Aktiv",
+        "CUSTOM": "Egendefinert",
+        "PROJECT": "Cally-Square prosjekt",
+        "TECHNOLOGY/RESOURCE": "Teknologi/Ressurs",
+        "URL": "URL",
+        "EDIT_APP": "Rediger program",
+        "EDIT_INTERVAL": "Endre intervall",
+        "DELETE_APP": "Slette program",
+        "INTERVALS": "Mellomrom",
+        "USER": "Brukeren",
+        "TRUNK": "Trunk",
+        "PHONE": "Telefon",
+        "AUDIO_FILES": "Lydfiler",
+        "ANNOUNCE_OVERRIDES": "Annonsere overstyrer",
+        "MACRO": "Makro",
+        "GOSUB": "GoSub",
+        "RULE": "Regel",
+        "POSITION": "Stilling",
+        "ANSWER": "Svar",
+        "VALUE": "Verdi",
+        "MAILBOX@CONTEXT": "Postboksen@kontekst",
+        "EXTENSION": "Forlengelse",
+        "PRIORITY": "Prioritet",
+        "HANGUP_CAUSE": "Det forårsake",
+        "OUTBOUNDDIAL": "Utgående direkte",
+        "CALLER_ID": "Innringer-ID",
+        "NO_MESSAGE_AVAILABLE": "Ingen meldinger tilgjengelig",
+        "NO_SOUND_AVAILABLE": "Ingen lyder tilgjengelig",
+        "VOICERECORDINGS": "Taleopptak",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Stemme",
+        "REALTIME": "Sanntid",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Kontekst",
+        "NO_MOHSOUND_AVAILABLE": "Ingen musikk på vent tilgjengelig",
+        "FILE": "Fil",
+        "ADD_MOHSOUND": "Legg til musikk på vent lyd",
+        "DOWNLOAD_MOHSOUND": "Last ned musikk på vent lyd",
+        "DELETE_MOHSOUND": "Slett musikk på vent lyd",
+        "UNIQUEID": "Unik ID",
+        "AGENT": "Agent",
+        "TYPE": "Type",
+        "RATING": "Klassifisering",
+        "AUDIO": "Lyd",
+        "DATE": "Dato",
+        "NEW_VOICEQUEUE": "Ny stemme kø",
+        "NEW_INBOUNDROUTE": "Ny inngående rute",
+        "NEW_OUTBOUNDROUTE": "Ny utgående rute",
+        "NEW_INTERNALROUTE": "Nye interne rute",
+        "NEW_CONTEXT": "Ny kontekst",
+        "NEW_VOICEMAIL": "Ny talebeskjed",
+        "NEW_MUSICONHOLD": "Ny musikk på vent",
+        "NEW_CHANSPY": "Ny ChanSpy",
+        "PENALTY": "Penalty",
+        "ADD_TEAM_TO_VOICEQUEUE": "Legg lag til Voice kø",
+        "ADD_AGENT_TO_VOICEQUEUE": "Legg til Agent til Voice kø",
+        "EDIT_DIAL": "Rediger direkte",
+        "EDIT_AGI": "Rediger AGI",
+        "EDIT_INTERNALDIAL": "Rediger intern direkte",
+        "EDIT_EXTERNALDIAL": "Redigere eksterne direkte",
+        "EDIT_RINGGROUP": "Rediger Ring gruppe",
+        "EDIT_PLAYBACK": "Rediger avspilling",
+        "EDIT_QUEUE": "Rediger kø",
+        "EDIT_SET": "Rediger satt",
+        "EDIT_GOTO": "Rediger GoTo",
+        "EDIT_HANGUP": "Rediger aktiv",
+        "EDIT_CUSTOM": "Rediger egendefinert",
+        "DURATION": "Varighet",
+        "RECEIVED_AT": "Mottatt på",
+        "YES": "Ja",
+        "NO": "Ingen",
+        "HANGUPCAUSE_1": "1 = Ufordelte nummer",
+        "HANGUPCAUSE_16": "16 = Normail call clearing",
+        "HANGUPCAUSE_17": "17 = Brukeren er opptatt",
+        "HANGUPCAUSE_18": "18 = Ingen bruker svarer (telehone enheten ikke tilkoblet)",
+        "HANGUPCAUSE_21": "21 = Samtale avvist",
+        "HANGUPCAUSE_22": "22 = Antall endret",
+        "HANGUPCAUSE_27": "27 = Mål ut av ordre",
+        "HANGUPCAUSE_38": "38 = Nettverk ut av ordre",
+        "HANGUPCAUSE_41": "41 = Midlertidig feil",
+        "RANDOM": "Tilfeldig",
+        "ALPHABETICAL": "Alfabetisk",
+        "NO_APPS_AVAILABLE": "Ingen programmer er tilgjengelig",
+        "DOWNLOAD_VOICERECORDING": "Last ned taleopptak",
+        "DELETE_VOICERECORDING": "Slette taleopptak",
+        "INTERNAL": "Intern",
+        "PHONE_STATE": "Telefonen tilstand",
+        "PHONE_STATUS": "Telefonen status",
+        "REGISTERED": "Registrert",
+        "UNREGISTERED": "Uregistrert",
+        "LAGGED": "Lag",
+        "REACHABLE": "Nås",
+        "UNREACHABLE": "Kan ikke nås",
+        "UNKNOWN": "Ukjent",
+        "NOT_INUSE": "Ikke i bruk",
+        "INUSE": "I bruk",
+        "BUSY": "Opptatt",
+        "INVALID": "Ugyldig",
+        "UNAVAILABLE": "Utilgjengelig",
+        "RINGING": "Ringer",
+        "ONHOLD": "På vent",
+        "RING": "Ring",
+        "UP": "Opp",
+        "INFO": "Info",
+        "TRUNKS": "Trunker",
+        "REGISTRY": "Registeret",
+        "NO_REGISTRY": "Ingen registeret",
+        "LOGGED_IN": "Logget på",
+        "PAUSED": "Midlertidig stoppet",
+        "WAITING": "Venter",
+        "TALKING": "Snakker",
+        "DID": "Gjorde",
+        "CALLER": "Innringer",
+        "TOTAL": "Totalt",
+        "ANSWERED": "Svarte",
+        "ABANDONED": "Forlatt",
+        "UNMANAGED": "Administrert",
+        "AVG_HOLD_TIME": "Gj.sn. Hold tid",
+        "AVG_DURATION": "Av-varighet",
+        "AVG_BILLABLE": "Avg fakturerbare",
+        "SOURCE": "Kilde",
+        "DESTINATION": "Bestemmelsessted",
+        "REJECTED": "Avvist",
+        "FAILED": "Mislyktes",
+        "CALLED": "Kalt",
+        "CONNECTED": "Koblet",
+        "NO_RATING": "Ingen aldersgrense",
+        "EDIT_VOICERECORDING": "Rediger taleopptak",
+        "APPLICATION_NAME": "Programmet navn",
+        "ARGUMENTS": "Argumenter",
+        "ENABLED": "Aktivert",
+        "POWERLEVEL": "Strømforbruk",
+        "DROPRATE": "Senkehastighet",
+        "AGENTBUSYFACTOR": "Agent opptatt faktor",
+        "PREDICTIVEOPTIMIZATION": "Prediktiv optimalisering",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Prediktiv optimalisering prosent",
+        "READY": "Klar",
+        "PAUSE": "Pause",
+        "UNPAUSE": "Unpause",
+        "DEFAULT_PAUSE": "Standard Pause",
+        "AGENTADD_QUEUE": "Legg til Agent til kø-kampanje",
+        "AGENTSADD_QUEUE": "Legg til agenter til kø-kampanje",
+        "ALL_TEAMS": "Alle grupper",
+        "SELECTED_TEAMS": "Valgte lag",
+        "ALL_LISTS": "Alle lister",
+        "SELECTED_LISTS": "Valgt lister",
+        "ALL_AGENTS": "Alle agenter",
+        "SELECTED_AGENTS": "Valgt agenter",
+        "IVRCAMPAIGNS": "IVR-kampanjer",
+        "CONCURRENTCALLS": "Maks samtidige samtaler",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Legg til svarteliste",
+        "DELETE_IVRCAMPAIGN": "Slette kampanje",
+        "EDIT_IVRCAMPAIGN": "Rediger kampanje",
+        "NEW_IVRCAMPAIGN": "Ny IVR-kampanje",
+        "ADD_IVRCAMPAIGN": "Legg til IVR-kampanje",
+        "LISTADD_IVRCAMPAIGN": "Legge til liste",
+        "BLACKLISTADD_IVRCAMPAIGN": "Legg til svarteliste",
+        "HISTORY": "Historikk",
+        "FINAL": "Endelig",
+        "BLACKLIST": "Svarteliste",
+        "PREDICTIVEINTERVAL": "Prediktiv intervall",
+        "WAITING_FOR_AGENT": "Venter for agent",
+        "TOTAL_OFFERED": "Totalt tilbys",
+        "RUNNING": "Kjører",
+        "INTERVAL_IS_OVERTIME": "Intervallet er overtid.",
+        "TRUNK_IS_NOT_REACHABLE": "Bagasjerommet er ikke nås.",
+        "AGENTS_NOT_LOGGED": "Agent ikke logget",
+        "NOT_ACTIVE": "Ikke aktiv",
+        "AVAILABLE_CONTACTS_FINISHED": "Tilgjengelige kontakter ferdig",
+        "SCHEDULEDAT": "Planlagt på",
+        "HOPPERBLACKS": "Hopper svarteliste",
+        "NO_HOPPERBLACK_AVAILABLE": "Ingen elementer er tilgjengelige",
+        "HOPPERFINALS": "Hopper endelig",
+        "NO_HOPPERFINAL_AVAILABLE": "Ingen elementer er tilgjengelige",
+        "HOPPERHISTORIES": "Hopper historikk",
+        "NO_HOPPERHISTORY_AVAILABLE": "Ingen elementer er tilgjengelige",
+        "DELETE_HOPPERHISTORY": "Slette",
+        "DELETE_HOPPERFINAL": "Slette",
+        "CONTACTID": "Kontakt-ID",
+        "STARTTIME": "Start Tid",
+        "RESPONSETIME": "Svartid",
+        "ENDTIME": "Slutt tid",
+        "STATUS": "Status",
+        "HOPPERS": "Hopper",
+        "NO_HOPPER_AVAILABLE": "Ingen elementer er tilgjengelige",
+        "EDIT_HOPPER": "Rediger hopper",
+        "DELETE_HOPPER": "Slett hopper",
+        "AGENTTIMEOUT": "Agent tidsavbrudd",
+        "DISPOSITION": "Disposisjon",
+        "REDIRECT_TO_NUMBER": "Omdiriger til et nummer",
+        "REDIRECT_TO_AGENT": "Omdiriger til en agent",
+        "CLOSING": "Lukke",
+        "MANAGED": "Administrert",
+        "BACKUPTRUNK": "Backup Trunk",
+        "GLOBALINTERVAL": "Global intervall",
+        "RESCHEDULED_CONTACTS": "Omplanlegg kontakter",
+        "INTERVAL_IS_NULL": "Intervallet er null",
+        "TIMEZONE_UNKNOW": "Tidssone ukjent",
+        "INTERVAL_IS_EMPTY": "Intervallet er tom",
+        "LOGOUT": "Logg av",
+        "EDIT_CAMPAIGN": "Rediger kampanje",
+        "LIMITED": "Begrenset",
+        "IVR_CAMPAIGNS": "Ivr-kampanjer",
+        "IS_DISACTIVED": "Er Disactived",
+        "TOTAL_MANAGED": "Totalt klarte"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/pt-PT.json b/public/app/main/apps/motiondialer/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..f07f059
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Motion Discador",
+        "QUEUECAMPAIGNS": "Campanhas de fila",
+        "NAME": "Nome",
+        "VOICEQUEUES": "Filas de voz",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "BACK": "De volta",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "DELETE_VOICEDISPOSITION": "Disposição de eliminar uma mensagem de voz",
+        "EDIT_VOICEDISPOSITION": "Editar a disposição de voz",
+        "EDIT_VOICEQUEUE": "Editar Fila de voz",
+        "DELETE_VOICEQUEUE": "Excluir fila de voz",
+        "MOHSOUNDS": "Moh Sons",
+        "STRATEGY": "Estratégia",
+        "DESCRIPTION": "Descrição",
+        "INTERVAL": "Intervalo de tempo",
+        "ADD_VOICEQUEUE": "Adicionar fila de voz",
+        "NEW_QUEUECAMPAIGN": "Nova fila de campanha",
+        "EDIT_QUEUECAMPAIGN": "Editar Campanha",
+        "TEAMADD_QUEUECAMPAIGN": "Adicionar grupo",
+        "AGENTADD_QUEUECAMPAIGN": "Adicionar Agente",
+        "LISTADD_QUEUECAMPAIGN": "Adicionar lista",
+        "DELETE_QUEUECAMPAIGN": "Excluir campanha",
+        "ACTIVE": "Ativo",
+        "METHOD": "Método",
+        "ADD_QUEUECAMPAIGN": "Adicionar fila de campanha",
+        "CAMPAIGN": "Campanha",
+        "MAXCONCURRENTCALLS": "Máximo de chamadas simultâneas",
+        "ORIGINATE": "Origem",
+        "ORIGINATECALLERIDNAME": "Nome da ID de chamador",
+        "ORIGINATECALLERIDNUMBER": "Número do ID do chamador",
+        "ORIGINATETIMEOUT": "Tempo limite de origem",
+        "QUEUEOPTIONS": "Opções de fila de espera",
+        "QUEUETIMEOUT": "Tempo Limite de fila",
+        "CALLYSQUAREPROJECT": "Camente Square Projeto",
+        "RETRYANDFREQUENCY": "As configurações de rechamada",
+        "GLOBAL": "Global",
+        "GLOBALMAXRETRY": "Máximo de tentativas",
+        "CONGESTION": "O congestionamento",
+        "CONGESTIONMAXRETRY": "Máximo de tentativas",
+        "CONGESTIONRETRYTIME": "Tempo de tentativas [min]",
+        "BUSYMAXRETRY": "Máximo de tentativas",
+        "BUSYRETRYTIME": "Tempo de tentativas [min]",
+        "NOANSWER": "Sem resposta",
+        "NOANSWERMAXRETRY": "Máximo de tentativas",
+        "NOANSWERRETRYTIME": "Tempo de tentativas [min]",
+        "QUEUE_PARAMS": "Os parâmetros de filas",
+        "ORIGINATED": "Originou",
+        "MESSAGE": "Mensagem",
+        "DROPPED": "Caiu",
+        "CREATED_AT": "Criado em",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - aplicativo personalizado."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "TIMEOUT_REQUIRED": "O tempo limite é necessária",
+            "PHONENUMBER_REQUIRED": "O número de telefone é necessário",
+            "CONTEXT_REQUIRED": "O contexto é necessário",
+            "DESTINATIONPATTERN_REQUIRED": "O destino padrão é necessária",
+            "FULLNAME_REQUIRED": "O campo Nome completo é obrigatório",
+            "EMAIL_REQUUIRED": "O Correio Electrónico é obrigatório",
+            "EMAIL_MUST_VALID": "O email deve ser escrito em um formato válido",
+            "MAILBOX_REQUIRED": "A caixa de correio é necessário",
+            "PASSWORD_REQUIRED": "A senha é obrigatória",
+            "CONFIRM_NOT_MATCH": "As senhas não coincidem",
+            "TIMEZONE_REQUIRED": "O fuso horário é obrigatório",
+            "PREFIX_REQUIRED": "O prefixo é requerido",
+            "OPTIONS_REQUIRED": "As opções são necessários",
+            "AFTERCALLWORKDURATION_REQUIRED": "A duração de trabalho após chamada é necessária",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "A tecnologia é necessária/Recursos",
+            "PHONE_REQUIRED": "O telefone é obrigatório",
+            "VALUE_REQUIRED": "O valor é obrigatório",
+            "EXTENSION_REQUIRED": "A extensão é necessária",
+            "PRIORITY_REQUIRED": "A prioridade é necessária",
+            "GLOBALMAXRETRY_REQUIRED": "É necessário o máximo de tentativas",
+            "CONGESTIONMAXRETRY_REQUIRED": "É necessário o máximo de tentativas",
+            "CONGESTIONRETRYTIME_REQUIRED": "É necessário o tempo de repetição",
+            "BUSYMAXRETRY_REQUIRED": "É necessário o máximo de tentativas",
+            "BUSYRETRYTIME_REQUIRED": "É necessário o tempo de repetição",
+            "NOANSWERMAXRETRY_REQUIRED": "É necessário o máximo de tentativas",
+            "NOANSWERRETRYTIME_REQUIRED": "É necessário o tempo de repetição",
+            "QUEUETIMEOUT_REQUIRED": "Fila de espera é necessário",
+            "ORIGINATETIMEOUT_REQUIRED": "Tempo limite de origem é necessária",
+            "GLOBALINTERVAL_REQUIRED": "Intervalo global é necessária"
+        },
+        "GENERAL": "Geral",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Comprimento máximo",
+        "RETRY": "Tentar novamente",
+        "WRAPUPTIME": "Tempo de finalização",
+        "WEIGHT": "Peso",
+        "JOINWHENEMPTY": "Aderir quando vazio",
+        "LEAVEWHENEMPTY": "Deixe quando vazio",
+        "HELP": {
+            "ACTIVE": "Ativo",
+            "TIMEOUT": "Especifica o número de segundos para tocar um dispositivo do membro.",
+            "MAXLENGTH": "Especifica o número máximo de emissores de chamadas permitidos para estar à espera em uma fila. Um valor de zero significa um número ilimitado de chamadores são permitidos na fila.",
+            "RETRY": "Especifica o número de segundos a aguardar antes de tentar o próximo membro na fila se o valor de tempo limite é esgotado ao tentar tocar um membro da fila.",
+            "WRAPUPTIME": "O número de segundos para manter um membro indisponível em uma fila depois de terminar uma chamada.",
+            "WEIGHT": "Define o peso de uma fila. Uma fila com um peso maior definido irá obter a primeira prioridade quando os membros estão associados com várias filas.",
+            "JOINWHENEMPTY": "Controla se um chamador é adicionado à fila quando não os seus membros estiverem disponíveis.",
+            "LEAVEWHENEMPTY": "Usado para controlar se os chamadores são expulsos da fila quando os membros não estão mais disponíveis para atender a chamadas.",
+            "ANNOUNCEFREQUENCY": "Define quantas vezes devemos anunciar a posição do chamador e/ou estimado o tempo de espera na fila. Defina este valor para zero para desativar.",
+            "MINANNOUNCEFREQUENCY": "Especifica a quantidade mínima de tempo que deve decorrer antes de anunciar a posição da chamada na fila novamente. Isso é usado quando a posição do chamador pode alterar frequentemente, para impedir que o chamador ouvir várias atualizações em um curto período de tempo.",
+            "PERIODICANNOUNCEFREQUENCY": "Indica quantas vezes devemos fazer anúncios periódicos para o chamador.",
+            "ANNOUNCEPOSITIONLIMIT": "Usado se você tiver definido anunciar-posição como limite ou mais.",
+            "AFTERCALLWORKDURATION": "A duração da pausa desencadeada pela opção de trabalho após chamada",
+            "MEMBERDELAY": "Usado se você desejar que haja um atraso antes de o chamador e fila membro sendo conectados uns aos outros.",
+            "MUSICONHOLD": "Define a classe de música para ser usado por uma fila em particular.",
+            "ANNOUNCETOAGENT": "Utilizado para reproduzir um anúncio para o agente que atendeu a chamada, normalmente para que ele saiba que fila o chamador é proveniente.",
+            "RANDOMPERIODICANNOUNCE": "Se for definido como sim, vai jogar a anúncios periódicos definidos em ordem aleatória.",
+            "ANNOUNCEHOLDTIME": "Define se o tempo de espera estimado deve ser jogado junto com o anúncios periódicos.",
+            "ANNOUNCECALLERPOSITION": "Define se a posição da chamada na fila deve ser anunciado para ela. Se for definido como Não, a posição nunca será anunciado. Se for definido como sim, a posição do chamador será sempre anunciado. Se o valor for definido para limitar, o chamador ouvirá a sua posição na fila somente se estiver dentro do limite definido pela posição de anunciar-limite. Se o valor for definido para mais, o chamador ouvirá a sua posição se está além do número definido pela posição de anunciar-limite.",
+            "REPORTHOLDTIMEAGENT": "Permite a geração de relatórios de tempo de espera do chamador para a fila de membro antes de bridging.",
+            "PERIODICANNOUNCE": "Um conjunto de anúncios periódicos para ser reproduzido, reproduzidas na ordem em que são definidos.",
+            "HOLDTIMEANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"Hold time\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "YOUARENEXTANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"agora você está na primeira linha\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "THEREAREANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"Existem\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "WAITINGCALLSANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"Chamadas Aguardando\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"o tempo de espera estimado atual é\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "MINUTESANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"minutos\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "MINUTEANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"minuto\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "SECONDSANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"s\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "THANKYOUANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"agradecemos sua paciência\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "AFTERCALLWORK": "Se estiver activo, o agente será definido em pausa depois de concluída uma chamada em fila",
+            "AUTOPAUSE": "Habilita/desabilita a pausa automática dos membros que não atender uma chamada. Se indicar ACTIVO causas este membro para ser pausado em todas as filas que ele é um membro.",
+            "RINGINUSE": "Usado para evitar o envio de chamadas para os membros cujo estatuto está em uso.",
+            "TIMEOUTRESTART": "Se for definido como sim, redefine o tempo limite para um agente atender se quer um sinal de ocupado ou de estado de congestão é recebida do canal.",
+            "MONITORFORMAT": "Especifica o formato do arquivo para usar quando a gravação. Se o monitor de formato é inactivo, as chamadas não serão gravadas.",
+            "CONTEXT": "Permite que um chamador para sair da fila de espera pressionando um único dígito DTMF. Se um contexto é especificado e o chamador insere um número de dígitos, que tentará ser igualada no contexto especificado e execução dialplan continuará lá.",
+            "SETINTERFACEVARIABLES": "Se for definido como Sim, apenas antes de o chamador a ser uma ponte com uma fila membro algumas variáveis será definido(ver wiki)",
+            "SETQUEUEVARIABLES": "Se for definido como Sim, apenas antes de o chamador a ser uma ponte com uma fila de membro e apenas antes de o chamador deixar a fila de algumas variáveis será definido(ver wiki)",
+            "SETQUEUEENTRYVARIABLES": "Se for definido como Sim, apenas antes de o chamador a ser uma ponte com uma fila membro algumas variáveis será definido(ver wiki)",
+            "RECORDING": "Ativar a gravação de chamadas",
+            "VOICEMAIL_CONTEXT": "O contexto da extensão relativa.",
+            "METHOD": "Método do Outbound Dialer.",
+            "MAXCONCURRENTCALLS": "O número máximo de chamadas simultâneas que será originada pelo discador de saída.",
+            "ORIGINATECALLERIDNAME": "Nome da ID de chamador de saída",
+            "ORIGINATECALLERIDNUMBER": "Número de ID de chamador de saída",
+            "ORIGINATETIMEOUT": "Tempo em segundos para o originário da chamada de saída para estabelecer a conexão. Se o Connection não está estabelecida a origem status será sem resposta.",
+            "QUEUETIMEOUT": "Tempo em segundos que uma chamada aguarde na fila antes que ele é eliminado",
+            "GLOBALMAXRETRY": "Número máximo de vezes em que um contato será chamado antes de considerar encerrada",
+            "CONGESTIONMAXRETRY": "Número máximo de vezes que uma falha de contato de congestionamento razão é chamado antes de considerar encerrada",
+            "CONGESTIONRETRYTIME": "Tempo em minutos antes de tentar chegar a um contato falhou por motivo de congestionamento",
+            "BUSYMAXRETRY": "Número máximo de vezes que uma falha de contato para ocupado razão é chamado antes de considerar encerrada",
+            "BUSYRETRYTIME": "Tempo em minutos antes de tentar chegar a um contato falhou por motivo de ocupado",
+            "NOANSWERMAXRETRY": "Número máximo de vezes que uma falha de contato para nenhuma resposta razão é chamado antes de considerar encerrada",
+            "NOANSWERRETRYTIME": "Tempo em minutos antes de tentar chegar a um contato falhou para a razão sem resposta",
+            "POWERLEVEL": "Número de contatos a chamada para um agente disponível.",
+            "PREDICTIVEOPTIMIZATION": "Um fator para otimizar no algoritmo preditivo.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Percentagem com base no fator de otimização preditivo selecionado",
+            "CONCURRENTCALLS": "O número máximo de chamadas simultâneas que será originada pelo discador de saída para esta campanha.",
+            "PREDICTIVEINTERVAL": "Intervalo de tempo em minutos para ser considerado pelo algoritmo preditivo para calcular a quantidade de chamadas para gerar para otimizar o valor preditivo do fator de otimização",
+            "AGENTTIMEOUT": "Especifica o número de segundos para tocar um dispositivo do agente.",
+            "GLOBALINTERVAL": "Global intervalo de tempo durante o qual o discador é permitido para chamar contatos. Por favor preste atenção quando você modificar este campo. Nós não será responsável ou responsáveis por sua falha em cumprir com as leis e regulamentos do Estado Autodialer."
+        },
+        "MUSICONHOLD": "Música em espera",
+        "ANNOUNCETOAGENT": "Anunciar para agente",
+        "ANNOUNCEMENTS": "Anúncios",
+        "ADVANCED": "Avançado",
+        "ANNOUNCEFREQUENCY": "Frequência de anunciar",
+        "MINANNOUNCEFREQUENCY": "Frequência mínima de anunciar",
+        "PERIODICANNOUNCEFREQUENCY": "Frequência periódica de anunciar",
+        "RANDOMPERIODICANNOUNCE": "Anunciar periódicas aleatórias",
+        "ANNOUNCEHOLDTIME": "Anunciar o tempo de espera",
+        "ANNOUNCECALLERPOSITION": "Anunciar a posição do chamador",
+        "ANNOUNCEPOSITIONLIMIT": "Limite da posição de anunciar",
+        "REPORTHOLDTIMEAGENT": "Tempo de Espera de relatório de Agente",
+        "PERIODICANNOUNCE": "Anunciar periódica",
+        "HOLDTIMEANNOUNCE": "O tempo de espera anunciar",
+        "YOUARENEXTANNOUNCE": "\"Você está próximo\" anunciar",
+        "THEREAREANNOUNCE": "\"Existem\" anunciar",
+        "WAITINGCALLSANNOUNCE": "Chamadas em espera anunciar",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Tempo de Espera Estimado anunciar",
+        "MINUTESANNOUNCE": "Minutos anunciar",
+        "MINUTEANNOUNCE": "Minutos de anunciar",
+        "SECONDSANNOUNCE": "Segundos anunciar",
+        "THANKYOUANNOUNCE": "\"Obrigado\" anunciar",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Após o trabalho de chamada",
+        "AFTERCALLWORKDURATION": "Duração de Trabalho após chamada",
+        "RINGINUSE": "Anel em uso",
+        "MEMBERDELAY": "Os Atraso",
+        "TIMEOUTRESTART": "Timeout Reiniciar",
+        "MONITORFORMAT": "Formato de gravação",
+        "SETINTERFACEVARIABLES": "Defina as variáveis de Interface",
+        "SETQUEUEVARIABLES": "Defina as variáveis de fila",
+        "SETQUEUEENTRYVARIABLES": "Defina as variáveis de entrada da fila",
+        "CONTEXT": "Contexto",
+        "SAVE": "Salvar",
+        "SETTINGS": "Definições",
+        "INBOUNDROUTES": "Rotas de entrada",
+        "PHONENUMBER": "Número de telefone",
+        "ADD_INBOUNDROUTE": "Adicionar Rota de entrada",
+        "EDIT_INBOUNDROUTE": "Editar Rota de entrada",
+        "DELETE_INBOUNDROUTE": "Eliminar rota de entrada",
+        "ACTIONS": "Acções",
+        "OUTBOUNDROUTES": "Rotas de saída",
+        "DESTINATIONPATTERN": "Padrão de destino",
+        "ADD_OUTBOUNDROUTE": "Adicionar rota de saída",
+        "EDIT_OUTBOUNDROUTE": "Editar Rota de Saída",
+        "DELETE_OUTBOUNDROUTE": "Eliminar rota de saída",
+        "CUTDIGITS": "Os dígitos de corte",
+        "RECORDING": "A gravação",
+        "RECORDINGFORMAT": "Formato de gravação",
+        "INTERNALROUTES": "Rotas internas",
+        "ADD_INTERNALROUTE": "Adicionar Rota Interna",
+        "EDIT_INTERNALROUTE": "Editar Rota Interna",
+        "DELETE_INTERNALROUTE": "Eliminar rota interna",
+        "CONTEXTS": "Contextos",
+        "ADD_CONTEXT": "Adicionar Contexto",
+        "EDIT_CONTEXT": "Editar Contexto",
+        "DELETE_CONTEXT": "Excluir Contexto",
+        "VOICEMAILS": "Correios",
+        "ADD_VOICEMAIL": "Adicionar correio de voz",
+        "EDIT_VOICEMAIL": "Editar correio de voz",
+        "DELETE_VOICEMAIL": "Excluir a mensagem do correio de voz",
+        "FULLNAME": "Nome completo",
+        "EMAIL": "Email",
+        "MAILBOX": "Caixa de correio",
+        "PASSWORD": "Senha",
+        "CONFIRM_PASSWORD": "Confirmar Senha",
+        "TIMEZONE": "Fuso horário",
+        "ATTACH": "Anexar",
+        "ENVELOPE": "Envelope",
+        "DELETE": "Excluir",
+        "EMAILBODY": "Corpo do e-mail",
+        "EMAILSUBJECT": "Assunto da mensagem de correio electrónico",
+        "MAXSECONDS": "Máximo em segundos",
+        "MAXMESSAGES": "Número máximo de mensagens",
+        "MESSAGES": "Mensagens",
+        "SORT": "Classificar",
+        "ADD_MUSICONHOLD": "Adicionar música em espera",
+        "MUSICONHOLDS": "Músicas em espera",
+        "EDIT_MUSICONHOLD": "Editar Música em espera",
+        "DELETE_MUSICONHOLD": "Eliminar música em espera",
+        "DIRECTORY": "Diretório",
+        "AUDIOFILES": "Arquivos de áudio",
+        "RECORDINGS": "Gravações",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefixo",
+        "OPTIONS": "Opções",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Adicionar ChanSpy",
+        "EDIT_CHANSPY": "Editar ChanSpy",
+        "DELETE_CHANSPY": "Excluir ChanSpy",
+        "AGENTS": "Agentes",
+        "TELEPHONES": "Telefones",
+        "QUEUES": "As filas de espera",
+        "QUEUE_CALLS": "Chamadas na Fila",
+        "QUEUE_PARAMETERS": "Os parâmetros de filas",
+        "ABANDONED_CALLS": "Chamadas abandonadas",
+        "OUTBOUND_CALLS": "Chamadas de saída",
+        "AGI": "A AGI",
+        "DIAL": "Discagem rápida",
+        "INTERNALDIAL": "Discagem interna",
+        "EXTERNALDIAL": "Discagem externa",
+        "RINGGROUP": "Grupo de anel",
+        "PLAYBACK": "Reprodução",
+        "QUEUE": "Fila",
+        "SET": "Definir",
+        "VOICEMAIL": "Correio de voz",
+        "GOTO": "Ir para",
+        "HANGUP": "Desligar",
+        "CUSTOM": "Custom",
+        "PROJECT": "Projecto Cally-Square",
+        "TECHNOLOGY/RESOURCE": "Tecnologia/recurso",
+        "URL": "URL",
+        "EDIT_APP": "Editar aplicativo",
+        "EDIT_INTERVAL": "Editar intervalo",
+        "DELETE_APP": "Exclua aplicativo",
+        "INTERVALS": "Intervalos",
+        "USER": "Usuário",
+        "TRUNK": "Tronco",
+        "PHONE": "Telefone",
+        "AUDIO_FILES": "Arquivos de áudio",
+        "ANNOUNCE_OVERRIDES": "Substituições de anunciar",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "RULE": "Regra",
+        "POSITION": "Posição",
+        "ANSWER": "Resposta",
+        "VALUE": "Valor",
+        "MAILBOX@CONTEXT": "Caixa de correio@Contexto",
+        "EXTENSION": "Extensão",
+        "PRIORITY": "Prioridade",
+        "HANGUP_CAUSE": "Causa de desligamento",
+        "OUTBOUNDDIAL": "Marcação de saída",
+        "CALLER_ID": "ID do chamador",
+        "NO_MESSAGE_AVAILABLE": "Não há mensagens disponíveis",
+        "NO_SOUND_AVAILABLE": "Não há sons disponíveis",
+        "VOICERECORDINGS": "Gravações de voz",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Voz",
+        "REALTIME": "Em tempo real",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Contexto",
+        "NO_MOHSOUND_AVAILABLE": "Nenhuma música em espera disponível",
+        "FILE": "Arquivo",
+        "ADD_MOHSOUND": "Adicionar som de música em espera",
+        "DOWNLOAD_MOHSOUND": "Baixar o som de música em espera",
+        "DELETE_MOHSOUND": "Excluir um som de música em espera",
+        "UNIQUEID": "ID exclusivo",
+        "AGENT": "Agente",
+        "TYPE": "Tipo",
+        "RATING": "Classificação",
+        "AUDIO": "Áudio",
+        "DATE": "Data",
+        "NEW_VOICEQUEUE": "Nova fila de voz",
+        "NEW_INBOUNDROUTE": "Nova rota de entrada",
+        "NEW_OUTBOUNDROUTE": "Nova rota de saída",
+        "NEW_INTERNALROUTE": "Nova rota interna",
+        "NEW_CONTEXT": "Novo contexto",
+        "NEW_VOICEMAIL": "Novo correio de voz",
+        "NEW_MUSICONHOLD": "Nova música em espera",
+        "NEW_CHANSPY": "Novo ChanSpy",
+        "PENALTY": "Sanção",
+        "ADD_TEAM_TO_VOICEQUEUE": "Adicionar grupo de fila de voz",
+        "ADD_AGENT_TO_VOICEQUEUE": "Adicionar agente para fila de voz",
+        "EDIT_DIAL": "Editar discagem rápida",
+        "EDIT_AGI": "Editar a AGI",
+        "EDIT_INTERNALDIAL": "Editar discagem interna",
+        "EDIT_EXTERNALDIAL": "Editar Discagem Externa",
+        "EDIT_RINGGROUP": "Editar Grupo de Anel",
+        "EDIT_PLAYBACK": "Editar a reprodução",
+        "EDIT_QUEUE": "Fila de edição",
+        "EDIT_SET": "Conjunto de edição",
+        "EDIT_GOTO": "Ir para editar",
+        "EDIT_HANGUP": "Editar Desligar",
+        "EDIT_CUSTOM": "Edição personalizada /",
+        "DURATION": "Duração",
+        "RECEIVED_AT": "Recebido em",
+        "YES": "Sim",
+        "NO": "Não",
+        "HANGUPCAUSE_1": "1 = número de Não Alocado",
+        "HANGUPCAUSE_16": "16 = Normail cancelamento da chamada",
+        "HANGUPCAUSE_17": "17 = Usuário ocupado",
+        "HANGUPCAUSE_18": "18 = Sem resposta do usuário (atendimento telefonico dispositivo não conectado)",
+        "HANGUPCAUSE_21": "21 = Chamada rejeitada",
+        "HANGUPCAUSE_22": "22 = número alterado",
+        "HANGUPCAUSE_27": "27 = Destino fora de ordem",
+        "HANGUPCAUSE_38": "38 = Rede fora de ordem",
+        "HANGUPCAUSE_41": "41 = Falha temporária",
+        "RANDOM": "Aleatório",
+        "ALPHABETICAL": "Ordem alfabética",
+        "NO_APPS_AVAILABLE": "Não há aplicativos disponíveis",
+        "DOWNLOAD_VOICERECORDING": "Download de gravação de voz",
+        "DELETE_VOICERECORDING": "Excluir a gravação de voz",
+        "INTERNAL": "Interna",
+        "PHONE_STATE": "Estado do telefone",
+        "PHONE_STATUS": "Status do telefone",
+        "REGISTERED": "Registado",
+        "UNREGISTERED": "Não registrado",
+        "LAGGED": "Lag",
+        "REACHABLE": "Acessível",
+        "UNREACHABLE": "Inalcançável",
+        "UNKNOWN": "Desconhecido",
+        "NOT_INUSE": "Não está em uso",
+        "INUSE": "Em Uso",
+        "BUSY": "Ocupado",
+        "INVALID": "Inválido",
+        "UNAVAILABLE": "Indisponível",
+        "RINGING": "Tocando",
+        "ONHOLD": "Em Espera",
+        "RING": "Anel O",
+        "UP": "Para Cima",
+        "INFO": "Info",
+        "TRUNKS": "Troncos",
+        "REGISTRY": "Registro",
+        "NO_REGISTRY": "Sem registro",
+        "LOGGED_IN": "Conectado",
+        "PAUSED": "Em pausa",
+        "WAITING": "Em espera",
+        "TALKING": "Conversando",
+        "DID": "Não",
+        "CALLER": "Chamador",
+        "TOTAL": "Total",
+        "ANSWERED": "Atendidas",
+        "ABANDONED": "Abandonadas",
+        "UNMANAGED": "Não Gerenciados",
+        "AVG_HOLD_TIME": "Tempo Médio em Espera",
+        "AVG_DURATION": "Duração Av",
+        "AVG_BILLABLE": "O AVG faturáveis",
+        "SOURCE": "Fonte",
+        "DESTINATION": "Destino",
+        "REJECTED": "Rejeitado",
+        "FAILED": "Falhou",
+        "CALLED": "Chamado",
+        "CONNECTED": "Ligado",
+        "NO_RATING": "Sem classificação",
+        "EDIT_VOICERECORDING": "Editar a gravação de voz",
+        "APPLICATION_NAME": "Nome do aplicativo",
+        "ARGUMENTS": "Argumentos",
+        "ENABLED": "Ativado",
+        "POWERLEVEL": "Nível de potência",
+        "DROPRATE": "A taxa de queda",
+        "AGENTBUSYFACTOR": "Fator de ocupado do agente",
+        "PREDICTIVEOPTIMIZATION": "Otimização de preditivo",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Percentagem de otimização preditivo",
+        "READY": "Pronto",
+        "PAUSE": "Pausa",
+        "UNPAUSE": "Unpause",
+        "DEFAULT_PAUSE": "Pausa padrão",
+        "AGENTADD_QUEUE": "Adicionar agente para fila de campanha",
+        "AGENTSADD_QUEUE": "Adicionar agentes a campanha da fila",
+        "ALL_TEAMS": "Todas as equipas",
+        "SELECTED_TEAMS": "Equipes selecionadas",
+        "ALL_LISTS": "Todas as Listas",
+        "SELECTED_LISTS": "Listas Selecionadas",
+        "ALL_AGENTS": "Todos os Agentes",
+        "SELECTED_AGENTS": "Agentes selecionados",
+        "IVRCAMPAIGNS": "Campanhas de RVI",
+        "CONCURRENTCALLS": "Máximo de chamadas simultâneas",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Adicionar lista negra",
+        "DELETE_IVRCAMPAIGN": "Excluir campanha",
+        "EDIT_IVRCAMPAIGN": "Editar Campanha",
+        "NEW_IVRCAMPAIGN": "Nova campanha de RVI",
+        "ADD_IVRCAMPAIGN": "Adicionar IVR Campanha",
+        "LISTADD_IVRCAMPAIGN": "Adicionar lista",
+        "BLACKLISTADD_IVRCAMPAIGN": "Adicionar lista negra",
+        "HISTORY": "História",
+        "FINAL": "Final",
+        "BLACKLIST": "Lista negra",
+        "PREDICTIVEINTERVAL": "Intervalo de previsão",
+        "WAITING_FOR_AGENT": "À espera de agente",
+        "TOTAL_OFFERED": "Total da oferta",
+        "RUNNING": "Executando",
+        "INTERVAL_IS_OVERTIME": "Intervalo é de horas extraordinárias",
+        "TRUNK_IS_NOT_REACHABLE": "Tronco não está acessível",
+        "AGENTS_NOT_LOGGED": "O agente não fez logon",
+        "NOT_ACTIVE": "Não Ativo",
+        "AVAILABLE_CONTACTS_FINISHED": "Disponível de contatos concluída",
+        "SCHEDULEDAT": "Agendado em",
+        "HOPPERBLACKS": "Lista negra da tremonha",
+        "NO_HOPPERBLACK_AVAILABLE": "Itens disponíveis",
+        "HOPPERFINALS": "Final do funil",
+        "NO_HOPPERFINAL_AVAILABLE": "Itens disponíveis",
+        "HOPPERHISTORIES": "História da tremonha",
+        "NO_HOPPERHISTORY_AVAILABLE": "Itens disponíveis",
+        "DELETE_HOPPERHISTORY": "Excluir",
+        "DELETE_HOPPERFINAL": "Excluir",
+        "CONTACTID": "ID do contato",
+        "STARTTIME": "Hora de início",
+        "RESPONSETIME": "Tempo de resposta",
+        "ENDTIME": "Hora de fim",
+        "STATUS": "Estado",
+        "HOPPERS": "Funil",
+        "NO_HOPPER_AVAILABLE": "Itens disponíveis",
+        "EDIT_HOPPER": "Editar Funil",
+        "DELETE_HOPPER": "Excluir do funil",
+        "AGENTTIMEOUT": "Tempo Limite do Agente",
+        "DISPOSITION": "Disposição",
+        "REDIRECT_TO_NUMBER": "Redirecionar para um número",
+        "REDIRECT_TO_AGENT": "Redirecionar para um agente",
+        "CLOSING": "Fechar",
+        "MANAGED": "Gerenciado",
+        "BACKUPTRUNK": "Tronco de backup",
+        "GLOBALINTERVAL": "Intervalo Global",
+        "RESCHEDULED_CONTACTS": "Contatos reprogramados",
+        "INTERVAL_IS_NULL": "Intervalo é Null",
+        "TIMEZONE_UNKNOW": "Fuso horário desconhecido",
+        "INTERVAL_IS_EMPTY": "Intervalo está vazio",
+        "LOGOUT": "Logout",
+        "EDIT_CAMPAIGN": "Editar Campanha",
+        "LIMITED": "Limitado",
+        "IVR_CAMPAIGNS": "Campanhas de RVI",
+        "IS_DISACTIVED": "É Disactived",
+        "TOTAL_MANAGED": "Valor total gerido"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/ru.json b/public/app/main/apps/motiondialer/i18n/ru.json
new file mode 100644 (file)
index 0000000..a8687af
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Движение системы автоматического обзвона",
+        "QUEUECAMPAIGNS": "Очереди кампаний",
+        "NAME": "Имя",
+        "VOICEQUEUES": "Голос очередей",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "BACK": "Назад",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "DELETE_VOICEDISPOSITION": "Удаление голосовых распоряжения",
+        "EDIT_VOICEDISPOSITION": "Редактировать голосовые распоряжения",
+        "EDIT_VOICEQUEUE": "Изменить голос очереди",
+        "DELETE_VOICEQUEUE": "Удаление голосовых очереди",
+        "MOHSOUNDS": "Мз звуки",
+        "STRATEGY": "Стратегия",
+        "DESCRIPTION": "Описание",
+        "INTERVAL": "Интервал времени",
+        "ADD_VOICEQUEUE": "Добавить голосовую очереди",
+        "NEW_QUEUECAMPAIGN": "Новой очереди кампании",
+        "EDIT_QUEUECAMPAIGN": "Изменить кампанию",
+        "TEAMADD_QUEUECAMPAIGN": "Добавить группу",
+        "AGENTADD_QUEUECAMPAIGN": "Добавить оператора",
+        "LISTADD_QUEUECAMPAIGN": "Добавить список",
+        "DELETE_QUEUECAMPAIGN": "Удалить кампанию",
+        "ACTIVE": "Активно",
+        "METHOD": "Метод",
+        "ADD_QUEUECAMPAIGN": "Добавление очереди кампании",
+        "CAMPAIGN": "Кампании",
+        "MAXCONCURRENTCALLS": "Max одновременных вызовов",
+        "ORIGINATE": "Инициировать",
+        "ORIGINATECALLERIDNAME": "Идентификатор вызывающего абонента Name",
+        "ORIGINATECALLERIDNUMBER": "Номер вызывающего абонента",
+        "ORIGINATETIMEOUT": "Инициировать тайм-аут",
+        "QUEUEOPTIONS": "Параметры очереди",
+        "QUEUETIMEOUT": "Время ожидания в очереди",
+        "CALLYSQUAREPROJECT": "Юндкп подкрепить проектную документацию путем систематического квадратных проекта",
+        "RETRYANDFREQUENCY": "Параметры повтора",
+        "GLOBAL": "Глобальной",
+        "GLOBALMAXRETRY": "Максимальное количество попыток",
+        "CONGESTION": "Перегрузка",
+        "CONGESTIONMAXRETRY": "Максимальное количество попыток",
+        "CONGESTIONRETRYTIME": "Время повтора [мин]",
+        "BUSYMAXRETRY": "Максимальное количество попыток",
+        "BUSYRETRYTIME": "Время повтора [мин]",
+        "NOANSWER": "Нет ответа",
+        "NOANSWERMAXRETRY": "Максимальное количество попыток",
+        "NOANSWERRETRYTIME": "Время повтора [мин]",
+        "QUEUE_PARAMS": "Параметры очереди",
+        "ORIGINATED": "Возникла",
+        "MESSAGE": "Сообщение",
+        "DROPPED": "Снизилась",
+        "CREATED_AT": "Созданные в",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - пользовательские приложения."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "TIMEOUT_REQUIRED": "Тайм-аут не требуется",
+            "PHONENUMBER_REQUIRED": "Номер телефона не требуется",
+            "CONTEXT_REQUIRED": "В этом контексте необходимо",
+            "DESTINATIONPATTERN_REQUIRED": "Назначение шаблона не требуется",
+            "FULLNAME_REQUIRED": "В требуется указать полное имя",
+            "EMAIL_REQUUIRED": "Адреса электронной почты не требуется",
+            "EMAIL_MUST_VALID": "Адреса электронной почты должны быть записаны в действительный формат",
+            "MAILBOX_REQUIRED": "Почтовый ящик не требуется",
+            "PASSWORD_REQUIRED": "Пароль не требуется",
+            "CONFIRM_NOT_MATCH": "Пароли не совпадают",
+            "TIMEZONE_REQUIRED": "Часовой пояс не требуется",
+            "PREFIX_REQUIRED": "Префикс не требуется",
+            "OPTIONS_REQUIRED": "Параметры не требуется",
+            "AFTERCALLWORKDURATION_REQUIRED": "После вызова, продолжительность работы не требуется",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Технология/ресурсов не требуется",
+            "PHONE_REQUIRED": "Номер телефона не требуется",
+            "VALUE_REQUIRED": "Это значение требуется",
+            "EXTENSION_REQUIRED": "Такое продление срока действия необходимо",
+            "PRIORITY_REQUIRED": "Приоритет не требуется",
+            "GLOBALMAXRETRY_REQUIRED": "Максимальное количество повторных попыток не требуется",
+            "CONGESTIONMAXRETRY_REQUIRED": "Максимальное количество повторных попыток не требуется",
+            "CONGESTIONRETRYTIME_REQUIRED": "Время попытки не требуется",
+            "BUSYMAXRETRY_REQUIRED": "Максимальное количество повторных попыток не требуется",
+            "BUSYRETRYTIME_REQUIRED": "Время попытки не требуется",
+            "NOANSWERMAXRETRY_REQUIRED": "Максимальное количество повторных попыток не требуется",
+            "NOANSWERRETRYTIME_REQUIRED": "Время попытки не требуется",
+            "QUEUETIMEOUT_REQUIRED": "Время ожидания в очереди не требуется",
+            "ORIGINATETIMEOUT_REQUIRED": "Инициировать Timeout не требуется",
+            "GLOBALINTERVAL_REQUIRED": "Глобальных интервала не требуется"
+        },
+        "GENERAL": "Генеральной",
+        "TIMEOUT": "Превышение лимита времени",
+        "MAXLENGTH": "Максимальная длина",
+        "RETRY": "Повторите попытку",
+        "WRAPUPTIME": "Время подготовки сводки",
+        "WEIGHT": "Вес",
+        "JOINWHENEMPTY": "Присоединиться к при пустом",
+        "LEAVEWHENEMPTY": "Оставьте при пустом",
+        "HELP": {
+            "ACTIVE": "Активно",
+            "TIMEOUT": "Указывает число секунд в кольцо на устройстве.",
+            "MAXLENGTH": "Указывает максимальное число разрешенных абонентов будет в состоянии ожидания в очереди. Нулевое значение означает неограниченное количество абонентов не допускаются в очереди.",
+            "RETRY": "Указывает количество секунд ожидания перед следующей члена в очереди, если значение тайм-аута не иссякнет при попытке кольцо членом очереди.",
+            "WRAPUPTIME": "Количество секунд для поддержания члена недоступна в очереди после завершения вызова.",
+            "WEIGHT": "Определяет вес очереди. Очереди с более высокий вес определяется получите первый приоритет когда члены связаны с несколькими очередями.",
+            "JOINWHENEMPTY": "Управляет ли вызывающий абонент будет добавлен в очередь при отсутствии членов доступны.",
+            "LEAVEWHENEMPTY": "Используется для управления ли абоненты ногами из очереди когда члены больше не доступен для вызовов.",
+            "ANNOUNCEFREQUENCY": "Определяет, как часто мы должны объявить о вызывающем абоненте, положение и/или время удержания в очереди. Задать это значение на ноль, чтобы отключить.",
+            "MINANNOUNCEFREQUENCY": "Указывает минимальное количество времени, которое должно пройти перед тем мы объявляем о абонента в позицию в очереди еще раз. Это значение используется при абонента в положение может меняться очень часто, чтобы предотвратить слушания вызывающего абонента несколько обновлений в короткий период времени.",
+            "PERIODICANNOUNCEFREQUENCY": "Показывает, как часто мы должны сделать периодические объявления для абонента.",
+            "ANNOUNCEPOSITIONLIMIT": "Если вы определены объявить положение либо как ограничение или более.",
+            "AFTERCALLWORKDURATION": "Длительность паузы включается работа после вызова параметр",
+            "MEMBERDELAY": "Если вы хотите быть задержка до вызывающего абонента и очереди членом соединены друг с другом.",
+            "MUSICONHOLD": "Устанавливает музыки класса для использования в конкретной очереди.",
+            "ANNOUNCETOAGENT": "Используется для воспроизведения объявление на оператора, ответил на вызов, обычно ему знать, какие очереди вызывающего абонента.",
+            "RANDOMPERIODICANNOUNCE": "Если установлено значение Да, будет играть определенных периодических объявлений о вакансиях в произвольном порядке.",
+            "ANNOUNCEHOLDTIME": "Определяет по оценкам времени удержания должен воспроизводиться вместе с периодических объявлений.",
+            "ANNOUNCECALLERPOSITION": "Определяет номер вызывающего абонента в очереди должно быть объявлено на нее. Если установлено значение Нет, положение никогда не будет объявлено дополнительно. Если установлено значение Да, абонента в положении всегда будет объявлено дополнительно. Если для этого параметра установлено значение предела, абонент услышит ее положение в очереди только если он находится в пределах заданного предела, объявить-position-предел. Если значение установлено на более абонент услышит ее положение, если она выходит за рамки номер определяется объявить-position-предел.",
+            "REPORTHOLDTIMEAGENT": "Позволяет создавать отчеты о абонента в время удержания в очередь член до моста.",
+            "PERIODICANNOUNCE": "Набор периодических объявлений, воспроизводятся в том порядке они определены.",
+            "HOLDTIMEANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Время удержания\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "YOUARENEXTANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Теперь Вы сначала в линии\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "THEREAREANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Есть\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "WAITINGCALLSANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Вызовов ожидающих\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Оценка текущего времени удержания\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "MINUTESANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Минуты\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "MINUTEANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Минуты\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "SECONDSANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"секунд\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "THANKYOUANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Благодарим вас за ваше терпение\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "AFTERCALLWORK": "Если активно, оператор будет установлен на паузу после полного завершения вызова в очередь",
+            "AUTOPAUSE": "Включение/отключение автоматического приостановки члены Совета, которые не ответить на вызов. Если активно причины этого члена на паузу во всех очередях он является членом.",
+            "RINGINUSE": "Используется для предотвращения отправки вызовов для членов, состояние которого находится в использовании.",
+            "TIMEOUTRESTART": "Если установлено значение Да, Сброс тайм-аут для ответа оператора либо занят или состояние перегрузки будет получено от канала.",
+            "MONITORFORMAT": "Указывает формат файла для использования при записи. Если монитор формата неактивно, вызовы не будут записаны.",
+            "CONTEXT": "Позволяет вызывающему абоненту для выхода из очереди нажатием одной цифры DTMF. Если контекст не указан и абонент вводит номер, цифра будет пытаться быть подобраны в контексте указанного и команду display dialplan analysis исполнения будет и впредь.",
+            "SETINTERFACEVARIABLES": "Если установлено значение Да, просто до абонента, параллельной линии с очередью членов некоторых переменных будет set(см. wiki)",
+            "SETQUEUEVARIABLES": "Если установлено значение Да, просто до абонента, параллельной линии с очередью член и непосредственно до абонента оставив очереди некоторых переменных будет set(см. wiki)",
+            "SETQUEUEENTRYVARIABLES": "Если установлено значение Да, просто до абонента, параллельной линии с очередью членов некоторых переменных будет set(см. wiki)",
+            "RECORDING": "Включение записи вызова",
+            "VOICEMAIL_CONTEXT": "В контексте относительного добавочный номер.",
+            "METHOD": "Номеронабиратель исходящих вызовов метода.",
+            "MAXCONCURRENTCALLS": "Максимальное количество одновременных вызовов, который будет вызван номеронабиратель для автоматических исходящих звонков.",
+            "ORIGINATECALLERIDNAME": "Идентификатор вызываемого абонента Name",
+            "ORIGINATECALLERIDNUMBER": "Исходящий номер вызывающего абонента",
+            "ORIGINATETIMEOUT": "Время в секундах для отправляющей исходящего вызова для установления соединения. Если connectin не установлено, инициировать состояние будет не в состоянии ответить на этот вопрос.",
+            "QUEUETIMEOUT": "Время в секундах, в течение которого вызов будет ожидать в очереди до его падения",
+            "GLOBALMAXRETRY": "Максимальное количество раз в контакт называется до рассмотрения ее закрытой",
+            "CONGESTIONMAXRETRY": "Максимальное количество раз в не контакта для перегрузки причины называется до рассмотрения ее закрытой",
+            "CONGESTIONRETRYTIME": "Время в минутах перед повторной попыткой достичь не удалось связаться с по причине перегрузки",
+            "BUSYMAXRETRY": "Максимальное количество раз в не удалось обратиться за занят причине называется до рассмотрения ее закрытой",
+            "BUSYRETRYTIME": "Время в минутах перед повторной попыткой достичь не удалось связаться с по причине занятости",
+            "NOANSWERMAXRETRY": "Максимальное количество раз в не удалось обратиться за нет ответа причины называется до рассмотрения ее закрытой",
+            "NOANSWERRETRYTIME": "Время в минутах перед повторной попыткой достичь не удалось связаться с для нет ответа причины",
+            "POWERLEVEL": "Количество контактов для вызова для одного из доступных операторов.",
+            "PREDICTIVEOPTIMIZATION": "Коэффициент для оптимизации в Предиктивный алгоритм.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Процент на основе выбранного оптимизации прогнозирования фактором",
+            "CONCURRENTCALLS": "Максимальное количество одновременных вызовов, который будет вызван номеронабиратель для автоматических исходящих звонков для этой кампании.",
+            "PREDICTIVEINTERVAL": "Интервал времени в минутах, которые должны быть рассмотрены Предиктивный алгоритм для вычисления количества вызовов для генерирования для оптимизации оптимизации прогнозирования фактором",
+            "AGENTTIMEOUT": "Указывает количество секунд для кольцо оператора устройства.",
+            "GLOBALINTERVAL": "Глобальной интервал времени, в течение которого система автоматического обзвона не допускается для вызова контактов. Обратите внимание при изменении этой области. Мы не несет ответственности за невыполнение государством Autodialer законов и правил."
+        },
+        "MUSICONHOLD": "Музыка на удержании",
+        "ANNOUNCETOAGENT": "Сообщить оператору",
+        "ANNOUNCEMENTS": "Объявления",
+        "ADVANCED": "Расширенные возможности",
+        "ANNOUNCEFREQUENCY": "Объявить о частоте",
+        "MINANNOUNCEFREQUENCY": "Объявить о минимальной частоты",
+        "PERIODICANNOUNCEFREQUENCY": "Периодические объявить о частоте",
+        "RANDOMPERIODICANNOUNCE": "Случайные периодические объявить о",
+        "ANNOUNCEHOLDTIME": "Объявить о времени удержания",
+        "ANNOUNCECALLERPOSITION": "Объявить о положении вызывающего абонента",
+        "ANNOUNCEPOSITIONLIMIT": "Объявить предельное положение",
+        "REPORTHOLDTIMEAGENT": "Доклад оператор время удержания",
+        "PERIODICANNOUNCE": "Периодические объявить о",
+        "HOLDTIMEANNOUNCE": "Время удержания объявить о",
+        "YOUARENEXTANNOUNCE": "\"Вы далее' объявить о",
+        "THEREAREANNOUNCE": "'Есть' объявить о",
+        "WAITINGCALLSANNOUNCE": "Ожидающих вызовов объявить о",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "По оценкам времени удержания объявить о",
+        "MINUTESANNOUNCE": "Минут объявить о",
+        "MINUTEANNOUNCE": "Минуту объявить о",
+        "SECONDSANNOUNCE": "Секунд объявить о",
+        "THANKYOUANNOUNCE": "\"Спасибо\" объявить о",
+        "AUTOPAUSE": "Автоматическая пауза",
+        "AFTERCALLWORK": "Работа после вызова",
+        "AFTERCALLWORKDURATION": "Работа после вызова продолжительность",
+        "RINGINUSE": "Кольцо в использовании",
+        "MEMBERDELAY": "Член временной задержки",
+        "TIMEOUTRESTART": "Тайм-аут перезапуска",
+        "MONITORFORMAT": "Формат записи",
+        "SETINTERFACEVARIABLES": "Установите интерфейс переменных",
+        "SETQUEUEVARIABLES": "Задать очередь переменных",
+        "SETQUEUEENTRYVARIABLES": "Задать очередь запись переменных",
+        "CONTEXT": "Контексте",
+        "SAVE": "Сохранить",
+        "SETTINGS": "Настройки",
+        "INBOUNDROUTES": "Входящие маршруты",
+        "PHONENUMBER": "Номер телефона",
+        "ADD_INBOUNDROUTE": "Добавить маршрут входящих вызовов",
+        "EDIT_INBOUNDROUTE": "Редактировать маршрут входящих вызовов",
+        "DELETE_INBOUNDROUTE": "Удалить маршрут при обработке входящих вызовов",
+        "ACTIONS": "Действия",
+        "OUTBOUNDROUTES": "Маршруты исходящих вызовов",
+        "DESTINATIONPATTERN": "Схема назначения",
+        "ADD_OUTBOUNDROUTE": "Добавить маршрут исходящих вызовов",
+        "EDIT_OUTBOUNDROUTE": "Редактировать маршрут исходящих вызовов",
+        "DELETE_OUTBOUNDROUTE": "Удалить маршрут исходящих вызовов",
+        "CUTDIGITS": "Разрежьте цифр",
+        "RECORDING": "Запись",
+        "RECORDINGFORMAT": "Формат записи",
+        "INTERNALROUTES": "Внутренние маршруты",
+        "ADD_INTERNALROUTE": "Добавить внутренний маршрут",
+        "EDIT_INTERNALROUTE": "Редактирование внутренних маршрутов",
+        "DELETE_INTERNALROUTE": "Удалить внутреннего маршрута",
+        "CONTEXTS": "Контекстах",
+        "ADD_CONTEXT": "Добавить контексте",
+        "EDIT_CONTEXT": "Правка контекстное",
+        "DELETE_CONTEXT": "Удаление связи",
+        "VOICEMAILS": "Сообщения голосовой почты",
+        "ADD_VOICEMAIL": "Добавить голосовую почту",
+        "EDIT_VOICEMAIL": "Редактировать сообщения голосовой почты",
+        "DELETE_VOICEMAIL": "Удалить голосовую почту",
+        "FULLNAME": "Полное Имя",
+        "EMAIL": "Адрес электронной почты",
+        "MAILBOX": "Почтовый ящик",
+        "PASSWORD": "Пароль",
+        "CONFIRM_PASSWORD": "Подтвердите пароль",
+        "TIMEZONE": "Часовой пояс",
+        "ATTACH": "Прикрепите",
+        "ENVELOPE": "Конверт",
+        "DELETE": "Удалить",
+        "EMAILBODY": "Тело сообщения",
+        "EMAILSUBJECT": "Тема в сообщении электронной почты",
+        "MAXSECONDS": "Max секунд",
+        "MAXMESSAGES": "Max сообщений",
+        "MESSAGES": "Сообщения",
+        "SORT": "Порядок сортировки",
+        "ADD_MUSICONHOLD": "Добавление музыки на удержании",
+        "MUSICONHOLDS": "Разная музыка на удержании",
+        "EDIT_MUSICONHOLD": "Редактирование музыки на удержании",
+        "DELETE_MUSICONHOLD": "Удалить музыка на удержании",
+        "DIRECTORY": "Каталог",
+        "AUDIOFILES": "Звуковые файлы",
+        "RECORDINGS": "Записи",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Префикс",
+        "OPTIONS": "Варианты",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Добавить ChanSpy",
+        "EDIT_CHANSPY": "Редактировать ChanSpy",
+        "DELETE_CHANSPY": "Удалить ChanSpy",
+        "AGENTS": "Операторы",
+        "TELEPHONES": "Телефоны",
+        "QUEUES": "Очереди",
+        "QUEUE_CALLS": "Вызовы в очереди",
+        "QUEUE_PARAMETERS": "Параметры очереди",
+        "ABANDONED_CALLS": "Отмененные вызовы",
+        "OUTBOUND_CALLS": "Исходящие вызовы",
+        "AGI": "AGI",
+        "DIAL": "Диск набора команд",
+        "INTERNALDIAL": "Внутреннего набора",
+        "EXTERNALDIAL": "Внешний диск набора команд",
+        "RINGGROUP": "Кольцо группы",
+        "PLAYBACK": "Воспроизведение",
+        "QUEUE": "Очереди",
+        "SET": "Установить",
+        "VOICEMAIL": "Голосовая почта",
+        "GOTO": "GoTo",
+        "HANGUP": "Отключение",
+        "CUSTOM": "Пользовательский",
+        "PROJECT": "Cally-Square проекта",
+        "TECHNOLOGY/RESOURCE": "Технологии и ресурсов",
+        "URL": "URL",
+        "EDIT_APP": "Изменить приложение",
+        "EDIT_INTERVAL": "Изменить интервал",
+        "DELETE_APP": "Удалить приложения",
+        "INTERVALS": "Интервалы времени",
+        "USER": "Пользователь",
+        "TRUNK": "Сл",
+        "PHONE": "Номер телефона",
+        "AUDIO_FILES": "Звуковые файлы",
+        "ANNOUNCE_OVERRIDES": "Объявить переопределяет",
+        "MACRO": "Макрос",
+        "GOSUB": "For to",
+        "RULE": "Правило",
+        "POSITION": "Положение",
+        "ANSWER": "Ответ",
+        "VALUE": "Значение",
+        "MAILBOX@CONTEXT": "Фотогалерея@контексте",
+        "EXTENSION": "Добавочный номер",
+        "PRIORITY": "Первоочередное внимание",
+        "HANGUP_CAUSE": "Отключение причиной",
+        "OUTBOUNDDIAL": "Набор исходящих вызовов",
+        "CALLER_ID": "Идентификатор вызывающего абонента",
+        "NO_MESSAGE_AVAILABLE": "Нет доступных сообщений",
+        "NO_SOUND_AVAILABLE": "Никаких звуков не доступно",
+        "VOICERECORDINGS": "Запись голоса",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Голосовой связи",
+        "REALTIME": "В режиме реального времени",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Контексте",
+        "NO_MOHSOUND_AVAILABLE": "Нет музыки на удержании имеющихся",
+        "FILE": "Файл",
+        "ADD_MOHSOUND": "Добавление музыки в режиме удержания звука",
+        "DOWNLOAD_MOHSOUND": "Загрузка музыки на удержании звук",
+        "DELETE_MOHSOUND": "Удалить музыка в режиме удержания звука",
+        "UNIQUEID": "Уникальный идентификатор",
+        "AGENT": "Оператор",
+        "TYPE": "Тип",
+        "RATING": "Рейтинг",
+        "AUDIO": "Аудио",
+        "DATE": "Дата",
+        "NEW_VOICEQUEUE": "Новые голосовые очереди",
+        "NEW_INBOUNDROUTE": "Новый маршрут входящих вызовов",
+        "NEW_OUTBOUNDROUTE": "Новый маршрут исходящих вызовов",
+        "NEW_INTERNALROUTE": "Новых внутренних маршрутов",
+        "NEW_CONTEXT": "Новом контексте",
+        "NEW_VOICEMAIL": "Новые сообщения голосовой почты",
+        "NEW_MUSICONHOLD": "Новая музыка на удержании",
+        "NEW_CHANSPY": "Новые ChanSpy",
+        "PENALTY": "Смертная казнь",
+        "ADD_TEAM_TO_VOICEQUEUE": "Добавить группу в очереди голосовой связи",
+        "ADD_AGENT_TO_VOICEQUEUE": "Добавить оператора в очереди голосовой связи",
+        "EDIT_DIAL": "Редактирование набора",
+        "EDIT_AGI": "Редактировать AGI",
+        "EDIT_INTERNALDIAL": "Редактировать внутреннего набора",
+        "EDIT_EXTERNALDIAL": "Редактировать внешний диск набора команд",
+        "EDIT_RINGGROUP": "Редактировать кольцо группы",
+        "EDIT_PLAYBACK": "Воспроизведения в режиме редактирования",
+        "EDIT_QUEUE": "Редактирования очереди",
+        "EDIT_SET": "Редактирование набора",
+        "EDIT_GOTO": "Редактировать GoTo",
+        "EDIT_HANGUP": "Редактировать отключение",
+        "EDIT_CUSTOM": "Редактировать пользовательский",
+        "DURATION": "Продолжительность",
+        "RECEIVED_AT": "Полученные на",
+        "YES": "Да",
+        "NO": "Нет",
+        "HANGUPCAUSE_1": "1 = номер нераспределенных",
+        "HANGUPCAUSE_16": "16 = Normail вызова",
+        "HANGUPCAUSE_17": "17 = пользователь занят",
+        "HANGUPCAUSE_18": "18 = пользователь не отвечает (Вашему телефону устройство не подключено)",
+        "HANGUPCAUSE_21": "На XXI век = Вызов отклонен",
+        "HANGUPCAUSE_22": "22 = Номер борозды изменился",
+        "HANGUPCAUSE_27": "27 = пункт назначения не по порядку",
+        "HANGUPCAUSE_38": "38 = сети",
+        "HANGUPCAUSE_41": "41 = Временный сбой",
+        "RANDOM": "Случайная",
+        "ALPHABETICAL": "В алфавитном порядке",
+        "NO_APPS_AVAILABLE": "Нет доступных приложений",
+        "DOWNLOAD_VOICERECORDING": "Загрузить запись голоса",
+        "DELETE_VOICERECORDING": "Удалить запись голоса",
+        "INTERNAL": "Внутренние",
+        "PHONE_STATE": "Состояние телефона",
+        "PHONE_STATUS": "Состояние телефона",
+        "REGISTERED": "Зарегистрированные",
+        "UNREGISTERED": "Незарегистрированный",
+        "LAGGED": "Отстает",
+        "REACHABLE": "Доступен",
+        "UNREACHABLE": "Недоступен",
+        "UNKNOWN": "Неизвестный",
+        "NOT_INUSE": "Не используется",
+        "INUSE": "В ИСПОЛЬЗОВАНИИ",
+        "BUSY": "Занят",
+        "INVALID": "Неверный",
+        "UNAVAILABLE": "Недоступен",
+        "RINGING": "При звонке",
+        "ONHOLD": "На удержании",
+        "RING": "Кольцо",
+        "UP": "Вверх",
+        "INFO": "Info",
+        "TRUNKS": "Соединительные линии внешней АТС",
+        "REGISTRY": "Реестр",
+        "NO_REGISTRY": "Раздел реестра не",
+        "LOGGED_IN": "Вход в систему",
+        "PAUSED": "Приостановлено",
+        "WAITING": "Ожидание",
+        "TALKING": "Разговор",
+        "DID": "Не",
+        "CALLER": "Вызывающий абонент",
+        "TOTAL": "Итого",
+        "ANSWERED": "Отвеченные",
+        "ABANDONED": "Отмененные",
+        "UNMANAGED": "Неуправляемые коммутаторы",
+        "AVG_HOLD_TIME": "Среднее время удержания",
+        "AVG_DURATION": "Продолжительность Av",
+        "AVG_BILLABLE": "Avg платными",
+        "SOURCE": "Источник",
+        "DESTINATION": "Пункт назначения",
+        "REJECTED": "Отклонено",
+        "FAILED": "Не удалось",
+        "CALLED": "Призвали к",
+        "CONNECTED": "Подключен к",
+        "NO_RATING": "Нет рейтинга",
+        "EDIT_VOICERECORDING": "Редактировать запись голоса",
+        "APPLICATION_NAME": "Имя приложения",
+        "ARGUMENTS": "Аргументы",
+        "ENABLED": "Включена",
+        "POWERLEVEL": "Уровень мощности",
+        "DROPRATE": "Скорость опускания",
+        "AGENTBUSYFACTOR": "Оператор занят фактором",
+        "PREDICTIVEOPTIMIZATION": "Оптимизации прогнозирования",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Оптимизации прогнозирования в процентах",
+        "READY": "Готов к работе",
+        "PAUSE": "Пауза",
+        "UNPAUSE": "Возобновить",
+        "DEFAULT_PAUSE": "По умолчанию пауза",
+        "AGENTADD_QUEUE": "Добавить оператора в очереди кампании",
+        "AGENTSADD_QUEUE": "Добавление операторов в очереди кампании",
+        "ALL_TEAMS": "Все группы",
+        "SELECTED_TEAMS": "Выбранные группы",
+        "ALL_LISTS": "Все списки",
+        "SELECTED_LISTS": "Выбранные списки",
+        "ALL_AGENTS": "Все Операторы",
+        "SELECTED_AGENTS": "Выбранные операторы",
+        "IVRCAMPAIGNS": "Кампаний IVR",
+        "CONCURRENTCALLS": "Max одновременных вызовов",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Добавить Blacklist",
+        "DELETE_IVRCAMPAIGN": "Удалить кампанию",
+        "EDIT_IVRCAMPAIGN": "Изменить кампанию",
+        "NEW_IVRCAMPAIGN": "Новая кампания IVR",
+        "ADD_IVRCAMPAIGN": "Добавить IVR кампании",
+        "LISTADD_IVRCAMPAIGN": "Добавить список",
+        "BLACKLISTADD_IVRCAMPAIGN": "Добавить Blacklist",
+        "HISTORY": "История",
+        "FINAL": "Окончательный",
+        "BLACKLIST": "Черный список",
+        "PREDICTIVEINTERVAL": "Интервал прогнозирования",
+        "WAITING_FOR_AGENT": "Ожидание оператора",
+        "TOTAL_OFFERED": "Общий объем предлагаемых",
+        "RUNNING": "При работающем двигателе",
+        "INTERVAL_IS_OVERTIME": "Интервал - это сверхурочных",
+        "TRUNK_IS_NOT_REACHABLE": "Сл не доступен",
+        "AGENTS_NOT_LOGGED": "Оператор не вошел",
+        "NOT_ACTIVE": "Не активен",
+        "AVAILABLE_CONTACTS_FINISHED": "Доступных контактов по завершении",
+        "SCHEDULEDAT": "Запланировано на",
+        "HOPPERBLACKS": "Бункер Blacklist",
+        "NO_HOPPERBLACK_AVAILABLE": "Нет доступных элементов",
+        "HOPPERFINALS": "Окончательный бункера",
+        "NO_HOPPERFINAL_AVAILABLE": "Нет доступных элементов",
+        "HOPPERHISTORIES": "История бункера",
+        "NO_HOPPERHISTORY_AVAILABLE": "Нет доступных элементов",
+        "DELETE_HOPPERHISTORY": "Удалить",
+        "DELETE_HOPPERFINAL": "Удалить",
+        "CONTACTID": "Идентификатор контакта",
+        "STARTTIME": "Время начала",
+        "RESPONSETIME": "Время отклика",
+        "ENDTIME": "Время окончания",
+        "STATUS": "Статус",
+        "HOPPERS": "Бункер",
+        "NO_HOPPER_AVAILABLE": "Нет доступных элементов",
+        "EDIT_HOPPER": "Редактирование загрузочного бункера",
+        "DELETE_HOPPER": "Удалить загрузочный бункер",
+        "AGENTTIMEOUT": "Время ожидания оператора",
+        "DISPOSITION": "Распоряжения",
+        "REDIRECT_TO_NUMBER": "Перенаправить на номер",
+        "REDIRECT_TO_AGENT": "Перенаправить для оператора",
+        "CLOSING": "Закрытие",
+        "MANAGED": "Управляемый",
+        "BACKUPTRUNK": "Сл резервного копирования",
+        "GLOBALINTERVAL": "Глобальных интервала",
+        "RESCHEDULED_CONTACTS": "Перепланированные контакты",
+        "INTERVAL_IS_NULL": "Интервал имеет значение null",
+        "TIMEZONE_UNKNOW": "Неизвестный часовой пояс",
+        "INTERVAL_IS_EMPTY": "Интервал пуст",
+        "LOGOUT": "Выход из системы",
+        "EDIT_CAMPAIGN": "Изменить кампанию",
+        "LIMITED": "Ограниченный",
+        "IVR_CAMPAIGNS": "Кампаний Ivr",
+        "IS_DISACTIVED": "- Disactived",
+        "TOTAL_MANAGED": "Общее управление"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/sv.json b/public/app/main/apps/motiondialer/i18n/sv.json
new file mode 100644 (file)
index 0000000..a5a88f7
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Motion Bull",
+        "QUEUECAMPAIGNS": "Kön kampanjer",
+        "NAME": "Namn",
+        "VOICEQUEUES": "Voice köer",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "BACK": "Tillbaka",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "DELETE_VOICEDISPOSITION": "Ta bort röstmeddelanden disposition",
+        "EDIT_VOICEDISPOSITION": "Redigera röst disposition",
+        "EDIT_VOICEQUEUE": "Redigera röst kö",
+        "DELETE_VOICEQUEUE": "Ta bort röstmeddelanden kö",
+        "MOHSOUNDS": "Moh-ljud",
+        "STRATEGY": "Strategi",
+        "DESCRIPTION": "Beskrivning",
+        "INTERVAL": "Tidsintervall",
+        "ADD_VOICEQUEUE": "Lägg till röst kö",
+        "NEW_QUEUECAMPAIGN": "Ny kö kampanj",
+        "EDIT_QUEUECAMPAIGN": "Redigera kampanj",
+        "TEAMADD_QUEUECAMPAIGN": "Lägg till grupp",
+        "AGENTADD_QUEUECAMPAIGN": "Lägg till agent",
+        "LISTADD_QUEUECAMPAIGN": "Lägg till lista",
+        "DELETE_QUEUECAMPAIGN": "Ta bort kampanjen",
+        "ACTIVE": "Aktiv",
+        "METHOD": "Metod",
+        "ADD_QUEUECAMPAIGN": "Lägg till kö kampanj",
+        "CAMPAIGN": "Kampanj",
+        "MAXCONCURRENTCALLS": "Max antal samtidiga samtal",
+        "ORIGINATE": "Ursprung",
+        "ORIGINATECALLERIDNAME": "Nummerpresentation med namn",
+        "ORIGINATECALLERIDNUMBER": "Caller ID-nummer",
+        "ORIGINATETIMEOUT": "Ursprung Timeout",
+        "QUEUEOPTIONS": "Köalternativ",
+        "QUEUETIMEOUT": "Tidsgräns för kö",
+        "CALLYSQUAREPROJECT": "Attes Square-projektet",
+        "RETRYANDFREQUENCY": "Försök inställningar",
+        "GLOBAL": "Global",
+        "GLOBALMAXRETRY": "Max återförsök",
+        "CONGESTION": "Överbelastning",
+        "CONGESTIONMAXRETRY": "Max återförsök",
+        "CONGESTIONRETRYTIME": "Försök tid [min]",
+        "BUSYMAXRETRY": "Max återförsök",
+        "BUSYRETRYTIME": "Försök tid [min]",
+        "NOANSWER": "Inget svar",
+        "NOANSWERMAXRETRY": "Max återförsök",
+        "NOANSWERRETRYTIME": "Försök tid [min]",
+        "QUEUE_PARAMS": "Kön parametrar",
+        "ORIGINATED": "Ursprung",
+        "MESSAGE": "Meddelande",
+        "DROPPED": "Tappade",
+        "CREATED_AT": "Skapad",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Anpassad applikation."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "TIMEOUT_REQUIRED": "Väntetiden är obligatoriskt",
+            "PHONENUMBER_REQUIRED": "Telefonnummer är obligatoriskt",
+            "CONTEXT_REQUIRED": "Ramen är obligatoriskt",
+            "DESTINATIONPATTERN_REQUIRED": "Destination mönster krävs",
+            "FULLNAME_REQUIRED": "Det fullständiga namnet är obligatoriskt",
+            "EMAIL_REQUUIRED": "E-post är obligatoriskt",
+            "EMAIL_MUST_VALID": "E måste vara skriven på ett giltigt format",
+            "MAILBOX_REQUIRED": "Det är brevlådan som krävs",
+            "PASSWORD_REQUIRED": "Lösenord krävs",
+            "CONFIRM_NOT_MATCH": "Lösenorden stämmer inte överens",
+            "TIMEZONE_REQUIRED": "Tidzonen är obligatoriskt",
+            "PREFIX_REQUIRED": "Prefixet är obligatoriskt",
+            "OPTIONS_REQUIRED": "Alternativen är obligatoriskt",
+            "AFTERCALLWORKDURATION_REQUIRED": "Det Efterarbete varaktighet krävs",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Tekniken/resursen krävs",
+            "PHONE_REQUIRED": "Telefonen är obligatoriskt",
+            "VALUE_REQUIRED": "Värdet är obligatoriskt",
+            "EXTENSION_REQUIRED": "Förlängning krävs",
+            "PRIORITY_REQUIRED": "Den prioritet som krävs",
+            "GLOBALMAXRETRY_REQUIRED": "Max försök krävs",
+            "CONGESTIONMAXRETRY_REQUIRED": "Max försök krävs",
+            "CONGESTIONRETRYTIME_REQUIRED": "Försök tid krävs",
+            "BUSYMAXRETRY_REQUIRED": "Max försök krävs",
+            "BUSYRETRYTIME_REQUIRED": "Försök tid krävs",
+            "NOANSWERMAXRETRY_REQUIRED": "Max försök krävs",
+            "NOANSWERRETRYTIME_REQUIRED": "Försök tid krävs",
+            "QUEUETIMEOUT_REQUIRED": "Tidsgräns för Kön är obligatoriskt",
+            "ORIGINATETIMEOUT_REQUIRED": "Ursprung Timeout krävs",
+            "GLOBALINTERVAL_REQUIRED": "Globala intervall krävs"
+        },
+        "GENERAL": "Allmänt",
+        "TIMEOUT": "Tidsgräns",
+        "MAXLENGTH": "Maximal längd",
+        "RETRY": "Försök igen",
+        "WRAPUPTIME": "Avslutningstiden",
+        "WEIGHT": "Vikt",
+        "JOINWHENEMPTY": "Delta när tom",
+        "LEAVEWHENEMPTY": "Lämna när tom",
+        "HELP": {
+            "ACTIVE": "Aktiv",
+            "TIMEOUT": "Anger antalet sekunder ringer en medlems-enhet.",
+            "MAXLENGTH": "Anger det maximala antalet kontakter får vänta i en kö. Ett värde på noll innebär ett unlimited nummer av kontakter är tillåtna i kön.",
+            "RETRY": "Anger antalet sekunder att vänta innan nästa medlem i kön om timeout-värdet är förbrukad vid försök att ringen är medlem i kön.",
+            "WRAPUPTIME": "Antalet sekunder för att hålla en annan tillgänglig i kön efter ett samtal.",
+            "WEIGHT": "Definierar vikten av en kö. En kö med en högre vikt definieras får första prioritet när medlemmar associerade med flera köer.",
+            "JOINWHENEMPTY": "Styr om en caller läggs till i kön när inga medlemmar finns.",
+            "LEAVEWHENEMPTY": "Används för att styra om samtalen kan sparkas ut i kön när medlemmar inte längre tillgänglig att ta emot samtal.",
+            "ANNOUNCEFREQUENCY": "Definierar hur ofta vi skall tillkännage caller'sens position och/eller beräknad väntetid i kön. Ställ in det här värdet till noll för att inaktivera.",
+            "MINANNOUNCEFREQUENCY": "Anger den minsta tid som måste gå innan vi tillkännager callers placeringen i kön igen. Detta används när uppringarens position kan ändras ofta, att förhindra uppringare hörde flera uppdateringar inom en kort tidsperiod.",
+            "PERIODICANNOUNCEFREQUENCY": "Anger hur ofta vi bör göra regelbundna meddelanden till den som ringer.",
+            "ANNOUNCEPOSITIONLIMIT": "Om du har definierat tillkännager-position som antingen begränsar eller mer.",
+            "AFTERCALLWORKDURATION": "Varaktigheten av paus triggas av Efterarbete alternativ",
+            "MEMBERDELAY": "Används om du vill ha en fördröjning innan de ringer och kön skall vara anslutna till varandra.",
+            "MUSICONHOLD": "Ställer in musik klass användas av en viss kö.",
+            "ANNOUNCETOAGENT": "Används för att spela in ett meddelande till agenten som besvarat samtalet, typiskt att låta honom veta vad kö ringer från.",
+            "RANDOMPERIODICANNOUNCE": "Om ja, kommer att spela den definierade periodiska meddelanden i en slumpmässig ordning.",
+            "ANNOUNCEHOLDTIME": "Anger om den beräknade väntetiden ska spelas upp tillsammans med periodiska meddelanden.",
+            "ANNOUNCECALLERPOSITION": "Anger om den som ringer i kö ska meddelas till henne. Om nej, aldrig kommer att tillkännages. Om ja, uppringarens läge kommer alltid finnas tillkännaget. Om värdet är inställt på gränsen hör den som ringer henne i kön om det är gränsen som definierats av tillkännager-läge. Om värdet är inställt på mer, hör den som ringer hennes ståndpunkt om det är utöver det antal som definierats av tillkännager-läge.",
+            "REPORTHOLDTIMEAGENT": "Möjliggör rapportering av uppringarens väntetid i kön före bryggning.",
+            "PERIODICANNOUNCE": "En uppsättning av periodiska meddelanden ska spelas upp, spelade i den ordning de anges.",
+            "HOLDTIMEANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"parkeringstid\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "YOUARENEXTANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"Du är nu först i raden\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "THEREAREANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"finns\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "WAITINGCALLSANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"Väntande samtal\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"aktuella beräknade väntetid är\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "MINUTESANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"min\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "MINUTEANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"min\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "SECONDSANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"s\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "THANKYOUANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"Tack för ditt tålamod\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "AFTERCALLWORK": "Om aktiv, agenten ska ställas in på paus efter ett avslutat samtal på kö",
+            "AUTOPAUSE": "Aktiverar/inaktiverar automatisk pausning av ledamöter som inte besvarar ett samtal. Om aktiv, gör detta att göra uppehåll i alla köer han är medlem i.",
+            "RINGINUSE": "Används för att undvika att skicka samtal till medlemmar vars status är i användning.",
+            "TIMEOUTRESTART": "Om inställt på Ja, återställ timeout för en agent att besvara om antingen en upptagen eller överbelastning status erhålls från kanalen.",
+            "MONITORFORMAT": "Anger filens format att använda vid inspelning. Om monitor-formatet är inaktiv, samtal registreras inte.",
+            "CONTEXT": "Gör en caller att lämna kön genom att trycka på en enda DTMF-siffror. Om en angiven och den som ringer in ett nummer, att siffran kommer att matchas i samband angivna och uppringningsplans utförandet fortsätter det.",
+            "SETINTERFACEVARIABLES": "Om ja, strax före den som ringer att överbryggas med en kö medlem vissa variabler kommer att ställa (se wiki)",
+            "SETQUEUEVARIABLES": "Om ja, strax före den som ringer att överbryggas med en kö och strax före den som ringer att lämna kön vissa variabler kommer att ställa (se wiki)",
+            "SETQUEUEENTRYVARIABLES": "Om ja, strax före den som ringer att överbryggas med en kö medlem vissa variabler kommer att ställa (se wiki)",
+            "RECORDING": "Aktivera samtalsinspelning",
+            "VOICEMAIL_CONTEXT": "Den relativa förlängning.",
+            "METHOD": "Outbound dialer metod.",
+            "MAXCONCURRENTCALLS": "Det maximala antalet samtidiga samtal som kommer att hänföras av outbound dialer.",
+            "ORIGINATECALLERIDNAME": "Outgoing Callerlegitimation namn",
+            "ORIGINATECALLERIDNUMBER": "Outgoing Callerlegitimation nummer",
+            "ORIGINATETIMEOUT": "Tid i sekunder för ursprung utgående samtal för att upprätta anslutningen. Om uttaget inte är etablerad, kommer status kommer att svara nej.",
+            "QUEUETIMEOUT": "Tid i sekunder som en uppmaning att vänta i kö innan den tappas",
+            "GLOBALMAXRETRY": "Maximalt antal gånger en kontakt kallas innan du överväger det stängda",
+            "CONGESTIONMAXRETRY": "Maximalt antal gånger en misslyckad kontakt trafikstockningar anledning kallas innan du överväger det stängda",
+            "CONGESTIONRETRYTIME": "Tid i minuter innan ett nytt försök görs att nå en kontakt misslyckades för trafikstockningar anledning",
+            "BUSYMAXRETRY": "Maximalt antal gånger en misslyckad kontakt för upptagen anledningen kallas innan du överväger det stängda",
+            "BUSYRETRYTIME": "Tid i minuter innan ett nytt försök görs att nå en kontakt misslyckades för upptagen anledningen",
+            "NOANSWERMAXRETRY": "Maximalt antal gånger en misslyckad kontakt för inget svar anledning kallas innan du överväger det stängda",
+            "NOANSWERRETRYTIME": "Tid i minuter innan ett nytt försök görs att nå en kontakt misslyckades för inget svar orsak",
+            "POWERLEVEL": "Antal kontakter att ringa för en agent.",
+            "PREDICTIVEOPTIMIZATION": "En faktor för att optimera i prediktiva algoritm.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Procentandel baserat på den valda prediktiv faktor för optimering",
+            "CONCURRENTCALLS": "Det maximala antalet samtidiga samtal som kommer att hänföras av outbound dialer för denna kampanj.",
+            "PREDICTIVEINTERVAL": "Tidsintervall i minuter anses av prediktiv algoritmen för att beräkna mängden samtal för att generera för att optimera prediktiv faktor för optimering",
+            "AGENTTIMEOUT": "Anger antalet sekunder ringer en agents enhet.",
+            "GLOBALINTERVAL": "Global tidsintervall under vilket dialer är tillåtet att ringa upp kontakter. Vänligen uppmärksamma när du ändrar det här fältet. Vi kan inte hållas ansvarigt för din underlåtenhet att följa statliga Autodialer lagar och förordningar."
+        },
+        "MUSICONHOLD": "Musik i vänteläge",
+        "ANNOUNCETOAGENT": "Meddela till agent",
+        "ANNOUNCEMENTS": "Meddelanden",
+        "ADVANCED": "Avancerade",
+        "ANNOUNCEFREQUENCY": "Meddela frekvens",
+        "MINANNOUNCEFREQUENCY": "Minsta tillkännager frekvens",
+        "PERIODICANNOUNCEFREQUENCY": "Periodiska tillkännager frekvens",
+        "RANDOMPERIODICANNOUNCE": "Slumpmässiga periodiska tillkännage",
+        "ANNOUNCEHOLDTIME": "Meddela väntetid",
+        "ANNOUNCECALLERPOSITION": "Tillkännage Caller-läge",
+        "ANNOUNCEPOSITIONLIMIT": "Meddela läge",
+        "REPORTHOLDTIMEAGENT": "Rapporten Agent parkeringstid",
+        "PERIODICANNOUNCE": "Periodiska tillkännage",
+        "HOLDTIMEANNOUNCE": "Håll tid tillkännage",
+        "YOUARENEXTANNOUNCE": "\"Du är nästa\" tillkännage",
+        "THEREAREANNOUNCE": "\"Det finns\" tillkännage",
+        "WAITINGCALLSANNOUNCE": "Väntande samtal meddela",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Beräknad parkeringstid tillkännage",
+        "MINUTESANNOUNCE": "Minuter tillkännage",
+        "MINUTEANNOUNCE": "Minut tillkännage",
+        "SECONDSANNOUNCE": "Sekunder tillkännage",
+        "THANKYOUANNOUNCE": "\"Tack\" tillkännage",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Arbete efter samtal",
+        "AFTERCALLWORKDURATION": "Efterarbete varaktighet",
+        "RINGINUSE": "Ring i användning",
+        "MEMBERDELAY": "Medlemsstaterna fördröjning",
+        "TIMEOUTRESTART": "Timeout omstart",
+        "MONITORFORMAT": "Inspelningsformat",
+        "SETINTERFACEVARIABLES": "Ställa in variabler",
+        "SETQUEUEVARIABLES": "Ange kön variabler",
+        "SETQUEUEENTRYVARIABLES": "Ange kön post variabler",
+        "CONTEXT": "Bakgrund",
+        "SAVE": "Spara",
+        "SETTINGS": "Inställningar",
+        "INBOUNDROUTES": "Inkommande linjer",
+        "PHONENUMBER": "Telefonnummer",
+        "ADD_INBOUNDROUTE": "Lägg Inbound Route",
+        "EDIT_INBOUNDROUTE": "Redigera inkommande rutt",
+        "DELETE_INBOUNDROUTE": "Ta bort inkommande rutt",
+        "ACTIONS": "Åtgärder",
+        "OUTBOUNDROUTES": "Utgående linjer",
+        "DESTINATIONPATTERN": "Destination mönster",
+        "ADD_OUTBOUNDROUTE": "Lägg till utgående rutt",
+        "EDIT_OUTBOUNDROUTE": "Redigera utgående rutt",
+        "DELETE_OUTBOUNDROUTE": "Ta bort utgående rutt",
+        "CUTDIGITS": "Skär siffror",
+        "RECORDING": "Inspelning",
+        "RECORDINGFORMAT": "Inspelningsformat",
+        "INTERNALROUTES": "Inrikesrutter",
+        "ADD_INTERNALROUTE": "Lägg till interna rutt",
+        "EDIT_INTERNALROUTE": "Redigera interna rutt",
+        "DELETE_INTERNALROUTE": "Ta bort interna rutt",
+        "CONTEXTS": "Sammanhang",
+        "ADD_CONTEXT": "Lägg ramen",
+        "EDIT_CONTEXT": "Ändra bakgrund",
+        "DELETE_CONTEXT": "Ta bort ramen",
+        "VOICEMAILS": "Röstmeddelanden",
+        "ADD_VOICEMAIL": "Lägg till röstbrevlådan",
+        "EDIT_VOICEMAIL": "Redigera röstmeddelanden",
+        "DELETE_VOICEMAIL": "Radera röstmeddelande",
+        "FULLNAME": "Fullständigt namn",
+        "EMAIL": "Email",
+        "MAILBOX": "Brevlåda",
+        "PASSWORD": "Lösenord",
+        "CONFIRM_PASSWORD": "Bekräfta lösenord",
+        "TIMEZONE": "Timezone",
+        "ATTACH": "Fäst",
+        "ENVELOPE": "Kuvert",
+        "DELETE": "Ta bort",
+        "EMAILBODY": "Email-kroppen",
+        "EMAILSUBJECT": "Ämnet för e-postmeddelandet",
+        "MAXSECONDS": "Max antal sekunder",
+        "MAXMESSAGES": "Max meddelanden",
+        "MESSAGES": "Meddelanden",
+        "SORT": "Sortera",
+        "ADD_MUSICONHOLD": "Lägga till musik i vänteläge",
+        "MUSICONHOLDS": "Musics på håll",
+        "EDIT_MUSICONHOLD": "Redigera musik i vänteläge",
+        "DELETE_MUSICONHOLD": "Ta bort musik i vänteläge",
+        "DIRECTORY": "Katalog",
+        "AUDIOFILES": "Ljudfiler",
+        "RECORDINGS": "Inspelningar",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefix",
+        "OPTIONS": "Alternativ",
+        "AUTH": "Attestattribut",
+        "ADD_CHANSPY": "Lägg ChanSpy",
+        "EDIT_CHANSPY": "Redigera ChanSpy",
+        "DELETE_CHANSPY": "Ta bort ChanSpy",
+        "AGENTS": "Agenter",
+        "TELEPHONES": "Telefoner",
+        "QUEUES": "Köer",
+        "QUEUE_CALLS": "Kön samtal",
+        "QUEUE_PARAMETERS": "Kön parametrar",
+        "ABANDONED_CALLS": "Övergivna samtal",
+        "OUTBOUND_CALLS": "Utgående samtal",
+        "AGI": "AGI",
+        "DIAL": "Ringa",
+        "INTERNALDIAL": "Inre ring",
+        "EXTERNALDIAL": "Yttre ring",
+        "RINGGROUP": "Ring grupp",
+        "PLAYBACK": "Uppspelning",
+        "QUEUE": "Kö",
+        "SET": "Ställ",
+        "VOICEMAIL": "Röstmeddelande",
+        "GOTO": "GoTo",
+        "HANGUP": "Lägg på",
+        "CUSTOM": "Anpassad",
+        "PROJECT": "Cally-Square projekt",
+        "TECHNOLOGY/RESOURCE": "Teknik/Resurs",
+        "URL": "URL",
+        "EDIT_APP": "Redigera ansökan",
+        "EDIT_INTERVAL": "Redigera intervall",
+        "DELETE_APP": "Ta bort programmet",
+        "INTERVALS": "Intervall",
+        "USER": "Användare",
+        "TRUNK": "Segmentgrupp",
+        "PHONE": "Telefon",
+        "AUDIO_FILES": "Ljudfiler",
+        "ANNOUNCE_OVERRIDES": "Meddela åsidosätter",
+        "MACRO": "Makro",
+        "GOSUB": "GoSub",
+        "RULE": "Regel",
+        "POSITION": "Läge",
+        "ANSWER": "Svar",
+        "VALUE": "Värde",
+        "MAILBOX@CONTEXT": "Brevlåda@sammanhang",
+        "EXTENSION": "Förlängning",
+        "PRIORITY": "Prioritet",
+        "HANGUP_CAUSE": "Lägg orsak",
+        "OUTBOUNDDIAL": "Utgående uppringning",
+        "CALLER_ID": "Nummerpresentation",
+        "NO_MESSAGE_AVAILABLE": "Inga meddelanden finns tillgängliga",
+        "NO_SOUND_AVAILABLE": "Inga ljud tillgängligt",
+        "VOICERECORDINGS": "Röstinspelningar",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Röst",
+        "REALTIME": "Realtime",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Bakgrund",
+        "NO_MOHSOUND_AVAILABLE": "Ingen musik i vänteläge tillgängliga",
+        "FILE": "Fil",
+        "ADD_MOHSOUND": "Lägga till musik i vänteläge ljud",
+        "DOWNLOAD_MOHSOUND": "Download musik håller på ljud",
+        "DELETE_MOHSOUND": "Ta bort musik håller på ljud",
+        "UNIQUEID": "Unikt ID",
+        "AGENT": "Agent",
+        "TYPE": "Typ",
+        "RATING": "Betyg",
+        "AUDIO": "Ljud",
+        "DATE": "Datum",
+        "NEW_VOICEQUEUE": "Ny röst kö",
+        "NEW_INBOUNDROUTE": "Nya inkommande rutt",
+        "NEW_OUTBOUNDROUTE": "Ny utgående rutt",
+        "NEW_INTERNALROUTE": "Nya interna rutt",
+        "NEW_CONTEXT": "Ny ram",
+        "NEW_VOICEMAIL": "Nytt röstmeddelande",
+        "NEW_MUSICONHOLD": "Ny musik i vänteläge",
+        "NEW_CHANSPY": "Nya ChanSpy",
+        "PENALTY": "Dödsstraff",
+        "ADD_TEAM_TO_VOICEQUEUE": "Lägg till Team till röst kö",
+        "ADD_AGENT_TO_VOICEQUEUE": "Lägg medlet på röst kö",
+        "EDIT_DIAL": "Redigera kortnummer",
+        "EDIT_AGI": "Redigera AGI",
+        "EDIT_INTERNALDIAL": "Redigera inre ring",
+        "EDIT_EXTERNALDIAL": "Redigera externa Dial",
+        "EDIT_RINGGROUP": "Redigera Ring grupp",
+        "EDIT_PLAYBACK": "Redigera uppspelning",
+        "EDIT_QUEUE": "Redigera kö",
+        "EDIT_SET": "Redigera in",
+        "EDIT_GOTO": "Redigera GoTo",
+        "EDIT_HANGUP": "Redigera hindern",
+        "EDIT_CUSTOM": "Redigera anpassad",
+        "DURATION": "Varaktighet",
+        "RECEIVED_AT": "Fick vid",
+        "YES": "Ja",
+        "NO": "Nr",
+        "HANGUPCAUSE_1": "1 = Ej allokerat nummer",
+        "HANGUPCAUSE_16": "16 = Normail samtal rensa",
+        "HANGUPCAUSE_17": "17 = Användaren upptagen",
+        "HANGUPCAUSE_18": "18 = Inget svar från användare (telehone enheten är inte ansluten)",
+        "HANGUPCAUSE_21": "21 = Samtal avvisade",
+        "HANGUPCAUSE_22": "22 = Antal ändrat",
+        "HANGUPCAUSE_27": "27 = Mål ur funktion",
+        "HANGUPCAUSE_38": "38 = Nätverk ur funktion",
+        "HANGUPCAUSE_41": "41 = Tillfälligt fel",
+        "RANDOM": "Slumpmässig",
+        "ALPHABETICAL": "Alfabetisk",
+        "NO_APPS_AVAILABLE": "Inga program är tillgängliga",
+        "DOWNLOAD_VOICERECORDING": "Download röstinspelning",
+        "DELETE_VOICERECORDING": "Ta bort röstinspelning",
+        "INTERNAL": "Intern",
+        "PHONE_STATE": "Telefon stat",
+        "PHONE_STATUS": "Telefonstatus",
+        "REGISTERED": "Registrerad",
+        "UNREGISTERED": "Oregistrerade",
+        "LAGGED": "Halkade",
+        "REACHABLE": "Nå",
+        "UNREACHABLE": "Otillgänglig",
+        "UNKNOWN": "Okänd",
+        "NOT_INUSE": "Inte använd",
+        "INUSE": "I ANVÄNDNING",
+        "BUSY": "Upptagen",
+        "INVALID": "Ogiltig",
+        "UNAVAILABLE": "Otillgänglig",
+        "RINGING": "Ringa",
+        "ONHOLD": "På håll",
+        "RING": "Ring",
+        "UP": "Upp",
+        "INFO": "Info",
+        "TRUNKS": "Segment",
+        "REGISTRY": "Registrering",
+        "NO_REGISTRY": "Ingen registrering",
+        "LOGGED_IN": "Inloggad",
+        "PAUSED": "Pausad",
+        "WAITING": "Väntar",
+        "TALKING": "Prata",
+        "DID": "Gjorde",
+        "CALLER": "Uppringare",
+        "TOTAL": "Totalt",
+        "ANSWERED": "Svarade",
+        "ABANDONED": "Övergivna",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "Genomsn. väntetid",
+        "AVG_DURATION": "Av-varaktighet",
+        "AVG_BILLABLE": "Avg Billable",
+        "SOURCE": "Källa",
+        "DESTINATION": "Destination",
+        "REJECTED": "Avvisad",
+        "FAILED": "Misslyckades",
+        "CALLED": "Kallas",
+        "CONNECTED": "Ansluten",
+        "NO_RATING": "Inga betyg",
+        "EDIT_VOICERECORDING": "Redigera röstinspelning",
+        "APPLICATION_NAME": "Programnamn",
+        "ARGUMENTS": "Argument",
+        "ENABLED": "Aktiverad",
+        "POWERLEVEL": "Laddningsnivå",
+        "DROPRATE": "Sänkhastighet",
+        "AGENTBUSYFACTOR": "Agent upptagen faktor",
+        "PREDICTIVEOPTIMIZATION": "Prediktiv optimering",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Prediktiv optimering procentandel",
+        "READY": "Klar",
+        "PAUSE": "Pausa",
+        "UNPAUSE": "Unpause",
+        "DEFAULT_PAUSE": "Standard paus",
+        "AGENTADD_QUEUE": "Lägg medlet till kö kampanj",
+        "AGENTSADD_QUEUE": "Lägg till agenter till kön kampanj",
+        "ALL_TEAMS": "Alla grupper",
+        "SELECTED_TEAMS": "Valda grupper",
+        "ALL_LISTS": "Alla listor",
+        "SELECTED_LISTS": "Valda förteckningar",
+        "ALL_AGENTS": "Alla agenter",
+        "SELECTED_AGENTS": "Valda agenter",
+        "IVRCAMPAIGNS": "IVR-kampanjer",
+        "CONCURRENTCALLS": "Max antal samtidiga samtal",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Lägg Blacklist",
+        "DELETE_IVRCAMPAIGN": "Ta bort kampanjen",
+        "EDIT_IVRCAMPAIGN": "Redigera kampanj",
+        "NEW_IVRCAMPAIGN": "Nya IVR-kampanj",
+        "ADD_IVRCAMPAIGN": "Lägg till IVR-kampanj",
+        "LISTADD_IVRCAMPAIGN": "Lägg till lista",
+        "BLACKLISTADD_IVRCAMPAIGN": "Lägg Blacklist",
+        "HISTORY": "Historik",
+        "FINAL": "Slutlig",
+        "BLACKLIST": "Blacklist",
+        "PREDICTIVEINTERVAL": "Prediktiv intervall",
+        "WAITING_FOR_AGENT": "Väntar för agent",
+        "TOTAL_OFFERED": "Totalt erbjuds",
+        "RUNNING": "Igång",
+        "INTERVAL_IS_OVERTIME": "Intervallet är övertid",
+        "TRUNK_IS_NOT_REACHABLE": "Bagageutrymmet är inte nåbar",
+        "AGENTS_NOT_LOGGED": "Agent ej inloggad",
+        "NOT_ACTIVE": "Inte aktiv",
+        "AVAILABLE_CONTACTS_FINISHED": "Tillgängliga kontakter klar",
+        "SCHEDULEDAT": "Planerad till",
+        "HOPPERBLACKS": "Hopper Blacklist",
+        "NO_HOPPERBLACK_AVAILABLE": "Inga artiklar tillgängliga",
+        "HOPPERFINALS": "Hopper slutliga",
+        "NO_HOPPERFINAL_AVAILABLE": "Inga artiklar tillgängliga",
+        "HOPPERHISTORIES": "Hopper historia",
+        "NO_HOPPERHISTORY_AVAILABLE": "Inga artiklar tillgängliga",
+        "DELETE_HOPPERHISTORY": "Ta bort",
+        "DELETE_HOPPERFINAL": "Ta bort",
+        "CONTACTID": "Kontakt-ID",
+        "STARTTIME": "Starttid",
+        "RESPONSETIME": "Svarstid",
+        "ENDTIME": "Sluttid",
+        "STATUS": "Status",
+        "HOPPERS": "Matningsmagasinet",
+        "NO_HOPPER_AVAILABLE": "Inga artiklar tillgängliga",
+        "EDIT_HOPPER": "Redigera matningsmagasinet",
+        "DELETE_HOPPER": "Ta bort matningsmagasinet",
+        "AGENTTIMEOUT": "Tidsgräns för agent",
+        "DISPOSITION": "Disposition",
+        "REDIRECT_TO_NUMBER": "Omdirigera till ett nummer",
+        "REDIRECT_TO_AGENT": "Omdirigera till en agent",
+        "CLOSING": "Stängning",
+        "MANAGED": "Hanterad",
+        "BACKUPTRUNK": "Backup bagageutrymmet",
+        "GLOBALINTERVAL": "Globala intervall",
+        "RESCHEDULED_CONTACTS": "Omplanerade kontakter",
+        "INTERVAL_IS_NULL": "Intervallet är null",
+        "TIMEZONE_UNKNOW": "Timezone okänt",
+        "INTERVAL_IS_EMPTY": "Intervallet är tom",
+        "LOGOUT": "Utloggning",
+        "EDIT_CAMPAIGN": "Redigera kampanj",
+        "LIMITED": "Begränsad",
+        "IVR_CAMPAIGNS": "Ivr-kampanjer",
+        "IS_DISACTIVED": "Är Disactived",
+        "TOTAL_MANAGED": "Totala hanterade"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/tr.json b/public/app/main/apps/motiondialer/i18n/tr.json
new file mode 100644 (file)
index 0000000..430df4d
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "Hareket Arama",
+        "QUEUECAMPAIGNS": "Kuyruk Kampanyaları",
+        "NAME": "Adı",
+        "VOICEQUEUES": "Ses Kuyrukları",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "BACK": "Geri",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "DELETE_VOICEDISPOSITION": "Delete Voice Nizam",
+        "EDIT_VOICEDISPOSITION": "Edit Ses Nizam",
+        "EDIT_VOICEQUEUE": "Edit Ses Sırası",
+        "DELETE_VOICEQUEUE": "Delete Voice Sırası",
+        "MOHSOUNDS": "Moh Sesler",
+        "STRATEGY": "Strateji",
+        "DESCRIPTION": "Açıklama",
+        "INTERVAL": "Zaman Aralığı",
+        "ADD_VOICEQUEUE": "Add Sesli Sırası",
+        "NEW_QUEUECAMPAIGN": "Yeni Kuyruk Kampanya",
+        "EDIT_QUEUECAMPAIGN": "Kampanya Düzenle",
+        "TEAMADD_QUEUECAMPAIGN": "Add Team",
+        "AGENTADD_QUEUECAMPAIGN": "Add Ajans",
+        "LISTADD_QUEUECAMPAIGN": "Add Listesi",
+        "DELETE_QUEUECAMPAIGN": "Kampanya Sil",
+        "ACTIVE": "Aktif",
+        "METHOD": "Yöntem",
+        "ADD_QUEUECAMPAIGN": "Add Kuyruk Kampanya",
+        "CAMPAIGN": "Kampanya",
+        "MAXCONCURRENTCALLS": "Max Eş Zamanlı Aramalar",
+        "ORIGINATE": "Kaynaklanıyor",
+        "ORIGINATECALLERIDNAME": "Arayan Kimliği Adı",
+        "ORIGINATECALLERIDNUMBER": "Arayan Kimliği Numarası",
+        "ORIGINATETIMEOUT": "Gerçekleştirilen Zaman Aşımı",
+        "QUEUEOPTIONS": "Kuyruk Seçenekleri",
+        "QUEUETIMEOUT": "Kuyruk Zaman Aşımı",
+        "CALLYSQUAREPROJECT": "Etkinleştirir Kare Proje",
+        "RETRYANDFREQUENCY": "Tekrar Ayarları",
+        "GLOBAL": "Küresel",
+        "GLOBALMAXRETRY": "Max Deneme",
+        "CONGESTION": "Sıkışıklığı",
+        "CONGESTIONMAXRETRY": "Max Deneme",
+        "CONGESTIONRETRYTIME": "Tekrar Süresi [dak]",
+        "BUSYMAXRETRY": "Max Deneme",
+        "BUSYRETRYTIME": "Tekrar Süresi [dak]",
+        "NOANSWER": "Yanıt Yok",
+        "NOANSWERMAXRETRY": "Max Deneme",
+        "NOANSWERRETRYTIME": "Tekrar Süresi [dak]",
+        "QUEUE_PARAMS": "Kuyruk Parametreleri",
+        "ORIGINATED": "Başlatmış",
+        "MESSAGE": "Mesaj",
+        "DROPPED": "Düşmüş",
+        "CREATED_AT": "Oluşturulmuş",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Özel uygulama."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "TIMEOUT_REQUIRED": "Zaman Aşımı gerekiyor.",
+            "PHONENUMBER_REQUIRED": "Telefon Numarası gerekli",
+            "CONTEXT_REQUIRED": "Bu bağlamda gerekli",
+            "DESTINATIONPATTERN_REQUIRED": "Hedef Modeli gerekiyor.",
+            "FULLNAME_REQUIRED": "Tam Adı gerekiyor.",
+            "EMAIL_REQUUIRED": "E-posta gerekli",
+            "EMAIL_MUST_VALID": "E-posta mutlaka yazılı geçerli bir format",
+            "MAILBOX_REQUIRED": "Posta gerekli",
+            "PASSWORD_REQUIRED": "Parola gerekli",
+            "CONFIRM_NOT_MATCH": "Parolalar aynı değil",
+            "TIMEZONE_REQUIRED": "Bu Saat Dilimi gerekiyor.",
+            "PREFIX_REQUIRED": "Ön Ek gerekiyor.",
+            "OPTIONS_REQUIRED": "Seçenekler gerekli",
+            "AFTERCALLWORKDURATION_REQUIRED": "Sonra iş arama süresi gereklidir.",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Teknoloji/Kaynak gerekiyor.",
+            "PHONE_REQUIRED": "Telefon gerekiyor.",
+            "VALUE_REQUIRED": "Bu Değer gereklidir",
+            "EXTENSION_REQUIRED": "Uzatma gerekli",
+            "PRIORITY_REQUIRED": "Öncelikli olarak gerekli",
+            "GLOBALMAXRETRY_REQUIRED": "Max Deneme gerekli",
+            "CONGESTIONMAXRETRY_REQUIRED": "Max Deneme gerekli",
+            "CONGESTIONRETRYTIME_REQUIRED": "Tekrar zaman gerekiyor.",
+            "BUSYMAXRETRY_REQUIRED": "Max Deneme gerekli",
+            "BUSYRETRYTIME_REQUIRED": "Tekrar zaman gerekiyor.",
+            "NOANSWERMAXRETRY_REQUIRED": "Max Deneme gerekli",
+            "NOANSWERRETRYTIME_REQUIRED": "Tekrar zaman gerekiyor.",
+            "QUEUETIMEOUT_REQUIRED": "Kuyruk Zaman Aşımı gerekiyor.",
+            "ORIGINATETIMEOUT_REQUIRED": "Gerçekleştirilen Zaman Aşımı gerekiyor.",
+            "GLOBALINTERVAL_REQUIRED": "Küresel Aralığı gereklidir"
+        },
+        "GENERAL": "Genel",
+        "TIMEOUT": "Zaman Aşımı",
+        "MAXLENGTH": "Maksimum Uzunluk",
+        "RETRY": "Yeniden dene",
+        "WRAPUPTIME": "Toparlama Süresi",
+        "WEIGHT": "Ağırlık",
+        "JOINWHENEMPTY": "Üye boş zaman",
+        "LEAVEWHENEMPTY": "Bırakın boş zaman",
+        "HELP": {
+            "ACTIVE": "Aktif",
+            "TIMEOUT": "Saniye cinsinden belirtir. halka bir üyesi.",
+            "MAXLENGTH": "Belirler, maksimum arayanlar izin verilen bekleyen bir kuyruk. Değeri sıfır bir sınırsız sayıda arayanlar izin.",
+            "RETRY": "Sayısını belirler. saniye bekleyin denemeden önce ve sonraki üye sırada, zaman aşımı değeri tükenen erişmeye çalışırken halka bir üyesi.",
+            "WRAPUPTIME": "Saniye sayısını bir üye değil, bir kuyruk tamamladıktan sonra arayın.",
+            "WEIGHT": "Tanımlar, ağırlık, bir kuyruk. Bir kuyruk daha yüksek bir ağırlık tanımlanmış, ilk öncelik, üyeleri ilgili birden fazla kuyrukları.",
+            "JOINWHENEMPTY": "Kontroller bir arayan eklendi. kuyruk hiç üyeleri bulunmaktadır.",
+            "LEAVEWHENEMPTY": "Kumanda etmek için kullanılan arayanların, uçurdu, kuyruk, üyeleri artık göz arama.",
+            "ANNOUNCEFREQUENCY": "Tanımlar ne sıklıkta olmalı, ilan arayan ve/veya tahmini bekleme süresi. Bu değeri sıfır olarak devre dışı.",
+            "MINANNOUNCEFREQUENCY": "Belirten minimum süre geçmelidir, arayan'ın kuyruğu deneyin. Bu, arayan'ın sık sık değişebilir, arayan işitme birden fazla güncellemeler kısa bir süre.",
+            "PERIODICANNOUNCEFREQUENCY": "Ne sıklıkta biz, periyodik duyurular arayan.",
+            "ANNOUNCEPOSITIONLIMIT": "Eğer daha önce tanımlanmış duyurmak-konum olarak da sınırı veya daha fazla.",
+            "AFTERCALLWORKDURATION": "Duraklatma devrede tarafından Çağrı Çalışma seçeneği",
+            "MEMBERDELAY": "Eğer isterseniz orada bir gecikme önceden arayan ve kuyruk üye bağlı.",
+            "MUSICONHOLD": "Setleri, müzik sınıfı tarafından belirli bir kuyruk.",
+            "ANNOUNCETOAGENT": "Oynatmak için kullanılan bir duyuru, temsilciye yanıtlanan çağrı, genellikle kendisini ne kuyruk arayan geliyor.",
+            "RANDOMPERIODICANNOUNCE": "Eğer evet, play, tanımlanan periyodik duyurular rastgele.",
+            "ANNOUNCEHOLDTIME": "Belirler tahmini süresi çalınır ve periyodik duyurular.",
+            "ANNOUNCECALLERPOSITION": "Belirler arayan'ın kuyruğu olmalıdır için duyurdu. Eğer hayır, asla. Eğer evet, arayan'ın konumu her zaman. Eğer değer sınırı, arayan kişinin sesini, kuyruk sadece içinde tanımlanır ve ilan konum. Eğer değeri daha fazla, arayan kişinin sesini konumu. numarası tanımlanan duyurmak-konum-limit.",
+            "REPORTHOLDTIMEAGENT": "Raporlama, arayanın bekletme süresi için kuyruk üye önce köprü.",
+            "PERIODICANNOUNCE": "Bir periyodik duyurular, oynadığı sırada tanımlanmıştır.",
+            "HOLDTIMEANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"Tutma süresi\"). Eğer bir boş değer, sor, çalınan.",
+            "YOUARENEXTANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"şimdi ilk satır\"). Eğer bir boş değer, sor, çalınan.",
+            "THEREAREANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"Var\"). Eğer bir boş değer, sor, çalınan.",
+            "WAITINGCALLSANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"aramalar bekleme\"). Eğer bir boş değer, sor, çalınan.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"geçerli tahmini süresi\"). Eğer bir boş değer, sor, çalınan.",
+            "MINUTESANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"dakika\"). Eğer bir boş değer, sor, çalınan.",
+            "MINUTEANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"dakika\"). Eğer bir boş değer, sor, çalınan.",
+            "SECONDSANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"sn\"). Eğer bir boş değer, sor, çalınan.",
+            "THANKYOUANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"sabrınız için teşekkür ederiz.\"). Eğer bir boş değer, sor, çalınan.",
+            "AFTERCALLWORK": "Eğer aktif, ajan olarak ayarlayın sonra Pause tamamlanmış bir arama sırası",
+            "AUTOPAUSE": "Etkinleştirir/devre dışı bırakır. otomatik çekimde üyeleri başarısız, bir aramayı yanıtlamak için. Aktif ise bu üye olarak duraklatıldı tüm kuyrukları üyesi.",
+            "RINGINUSE": "Engellemek için gönderme çağrıları üyelerin durumu.",
+            "TIMEOUTRESTART": "Eğer yes, sıfırlar ve zaman aşımı bir temsilcinin, cevap ya da meşgul veya tıkanıklık durumu alınan, kanal.",
+            "MONITORFORMAT": "Belirler, dosya formatı kullanmak için kayıt. Eğer monitör-format, akti̇f deği̇l, aramalar kaydedilmez.",
+            "CONTEXT": "Bir arayan çıkmak için kuyruk tek bir DTMF rakam. Eğer bir içerik olarak belirtilen ve arayan bir numarası, basamak girişimi olarak uygun içerik ve dialplan yürütme devam.",
+            "SETINTERFACEVARIABLES": "Eğer evet, hemen öncesinde arayan, köprülenmiş bir kuyruk üye bazı değişkenler,(bakınız wiki).",
+            "SETQUEUEVARIABLES": "Eğer evet, hemen öncesinde arayan, köprülenmiş bir kuyruk üye ve hemen öncesinde arayan ayrılırken kuyruk bazı değişkenler,(bakınız wiki).",
+            "SETQUEUEENTRYVARIABLES": "Eğer evet, hemen öncesinde arayan, köprülenmiş bir kuyruk üye bazı değişkenler,(bakınız wiki).",
+            "RECORDING": "Etkin çağrı kaydı",
+            "VOICEMAIL_CONTEXT": "Bu bağlamda, bağıl uzantısı.",
+            "METHOD": "Giden arama yöntemi.",
+            "MAXCONCURRENTCALLS": "Maksimum eşzamanlı arama. aslının, giden arama.",
+            "ORIGINATECALLERIDNAME": "Giden Arayan Kimliği Adı",
+            "ORIGINATECALLERIDNUMBER": "Giden Arayan Kimliği Numarası",
+            "ORIGINATETIMEOUT": "Saniye olarak zaman, gelmeyen giden çağrı bağlantı. Eğer connectin kurulamıyorsa, gerçekleştirilen durumu Yanıt Yok.",
+            "QUEUETIMEOUT": "Saniye olarak zaman, bir çağrı bekleme, kuyruk, düşmüş",
+            "GLOBALMAXRETRY": "Maksimum sayıda kişi adı önce kapalı",
+            "CONGESTIONMAXRETRY": "Maksimum sayıda başarısız bir kişi için tıkanma nedeni sözde önce kapalı",
+            "CONGESTIONRETRYTIME": "Dakika olarak zaman tekrar denemeden önce bir kişi için başarısız tıkanıklık nedeni",
+            "BUSYMAXRETRY": "Maksimum sayıda başarısız bir kişi yoğun nedeni sözde önce kapalı",
+            "BUSYRETRYTIME": "Dakika olarak zaman tekrar denemeden önce bir kişi başarısız yoğun nedeni",
+            "NOANSWERMAXRETRY": "Maksimum sayıda başarısız bir kişi için hiçbir cevap neden adı önce kapalı",
+            "NOANSWERRETRYTIME": "Dakika olarak zaman tekrar denemeden önce bir kişi başarısız hiçbir cevap nedeni",
+            "POWERLEVEL": "Kişi için kullanılabilir bir ajan.",
+            "PREDICTIVEOPTIMIZATION": "Bir faktörü optimize etmek için tahmini algoritması.",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Yüzde seçilen tahmin optimizasyon faktörü",
+            "CONCURRENTCALLS": "Maksimum eşzamanlı arama. aslının, giden arama için bu kampanya.",
+            "PREDICTIVEINTERVAL": "Zaman aralığı içinde kabul edilen tahmini algoritması hesaplamak miktarda aramaları için optimum tahmini optimizasyon faktörü",
+            "AGENTTIMEOUT": "Saniye cinsinden belirtir. halka bir temsilci.",
+            "GLOBALINTERVAL": "Küresel bir zaman aralığı boyunca arama izin arama kişiler. Lütfen dikkat edin, bu alan. Biz sorumlu veya sorumlu ve uyulmaması Autodialer devletin yasa ve yönetmelikleri."
+        },
+        "MUSICONHOLD": "Bekletme Müziği",
+        "ANNOUNCETOAGENT": "Duyurmak Agent",
+        "ANNOUNCEMENTS": "Duyurular",
+        "ADVANCED": "Gelişmiş",
+        "ANNOUNCEFREQUENCY": "Frekans ilan",
+        "MINANNOUNCEFREQUENCY": "Ilan Minimum Frekans",
+        "PERIODICANNOUNCEFREQUENCY": "Periyodik Haber Frekans",
+        "RANDOMPERIODICANNOUNCE": "Rastgele Periyodik Açıklayacak",
+        "ANNOUNCEHOLDTIME": "Ilan Süresi",
+        "ANNOUNCECALLERPOSITION": "Arayan ilan Konumu",
+        "ANNOUNCEPOSITIONLIMIT": "Haber Sınır Konumu",
+        "REPORTHOLDTIMEAGENT": "Rapor Temsilci Bekletme Süresi",
+        "PERIODICANNOUNCE": "Periyodik Açıklayacak",
+        "HOLDTIMEANNOUNCE": "Bekletme Süresi Açıklayacak",
+        "YOUARENEXTANNOUNCE": "'Bir sonraki' Açıklayacak",
+        "THEREAREANNOUNCE": "'Vardır ilan' ile",
+        "WAITINGCALLSANNOUNCE": "Arama Bekliyor Haber",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Tahmini Süresi Açıklayacak",
+        "MINUTESANNOUNCE": "Dakika Haber",
+        "MINUTEANNOUNCE": "Dakika Haber",
+        "SECONDSANNOUNCE": "Saniye Açıklayacak",
+        "THANKYOUANNOUNCE": "'Teşekkür' Açıklayacak",
+        "AUTOPAUSE": "Otomatik Duraklatma",
+        "AFTERCALLWORK": "Arama yaptıktan sonra Çalışma",
+        "AFTERCALLWORKDURATION": "Sonra iş Arama Süresi",
+        "RINGINUSE": "Halka.",
+        "MEMBERDELAY": "Üye Gecikmesi",
+        "TIMEOUTRESTART": "Zaman Aşımı Yeniden Başlatın",
+        "MONITORFORMAT": "Kayıt Formatı",
+        "SETINTERFACEVARIABLES": "Set Ara Değişkenler",
+        "SETQUEUEVARIABLES": "Set Kuyruk Değişkenler",
+        "SETQUEUEENTRYVARIABLES": "Set Kuyruğu Giriş Değişkenler",
+        "CONTEXT": "Içerik",
+        "SAVE": "Kaydet",
+        "SETTINGS": "Ayarlar",
+        "INBOUNDROUTES": "Gelen Rotalar",
+        "PHONENUMBER": "Telefon Numarası",
+        "ADD_INBOUNDROUTE": "Add Gelen Rota",
+        "EDIT_INBOUNDROUTE": "Edit Gelen Rota",
+        "DELETE_INBOUNDROUTE": "Delete Gelen Rota",
+        "ACTIONS": "Eylemler",
+        "OUTBOUNDROUTES": "Giden Yollar",
+        "DESTINATIONPATTERN": "Hedef Modeli",
+        "ADD_OUTBOUNDROUTE": "Add Giden Yol",
+        "EDIT_OUTBOUNDROUTE": "Edit Giden Yol",
+        "DELETE_OUTBOUNDROUTE": "Delete Giden Yol",
+        "CUTDIGITS": "Kesin rakam",
+        "RECORDING": "Kayıt",
+        "RECORDINGFORMAT": "Kayıt formatı",
+        "INTERNALROUTES": "Dahili Rotalar",
+        "ADD_INTERNALROUTE": "Add Iç Rota",
+        "EDIT_INTERNALROUTE": "Edit Iç Rota",
+        "DELETE_INTERNALROUTE": "Delete Iç Rota",
+        "CONTEXTS": "Bağlam",
+        "ADD_CONTEXT": "İçerik Ekle",
+        "EDIT_CONTEXT": "Edit içerik",
+        "DELETE_CONTEXT": "Sil İçerik",
+        "VOICEMAILS": "Isteyecek",
+        "ADD_VOICEMAIL": "Add Sesli Posta",
+        "EDIT_VOICEMAIL": "Edit Sesli Posta",
+        "DELETE_VOICEMAIL": "Delete Sesli Posta",
+        "FULLNAME": "Tam Adı",
+        "EMAIL": "E-Posta",
+        "MAILBOX": "Posta Kutusu",
+        "PASSWORD": "Parola",
+        "CONFIRM_PASSWORD": "Parolayı Onayla",
+        "TIMEZONE": "Saat Dilimi",
+        "ATTACH": "Bağlayın",
+        "ENVELOPE": "Zarf",
+        "DELETE": "Sil",
+        "EMAILBODY": "E-Posta Gövdesi",
+        "EMAILSUBJECT": "E-posta Konu",
+        "MAXSECONDS": "Max Saniye",
+        "MAXMESSAGES": "Max Mesajlar",
+        "MESSAGES": "Mesajlar",
+        "SORT": "Sıralama",
+        "ADD_MUSICONHOLD": "Müzik Ekle Açık Tutma",
+        "MUSICONHOLDS": "Müzik parçası Açık Tutma",
+        "EDIT_MUSICONHOLD": "Edit Müziği",
+        "DELETE_MUSICONHOLD": "Delete Müziği",
+        "DIRECTORY": "Dizin",
+        "AUDIOFILES": "Ses Dosyaları",
+        "RECORDINGS": "Kayıtlar",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Önek",
+        "OPTIONS": "Seçenekleri",
+        "AUTH": "Kimlik doğrulama",
+        "ADD_CHANSPY": "Add ChanSpy",
+        "EDIT_CHANSPY": "Edit ChanSpy",
+        "DELETE_CHANSPY": "ChanSpy silin",
+        "AGENTS": "Ajanlar",
+        "TELEPHONES": "Telefonlar",
+        "QUEUES": "Sıraları",
+        "QUEUE_CALLS": "Kuyruk Çağrıları",
+        "QUEUE_PARAMETERS": "Kuyruk Parametreleri",
+        "ABANDONED_CALLS": "Terk Edilen Çağrılar",
+        "OUTBOUND_CALLS": "Giden Arama",
+        "AGI": "AGI",
+        "DIAL": "Arama",
+        "INTERNALDIAL": "Dahili Arama",
+        "EXTERNALDIAL": "Harici Arama",
+        "RINGGROUP": "Halka Grup",
+        "PLAYBACK": "Oynatma",
+        "QUEUE": "Kuyruk",
+        "SET": "Set",
+        "VOICEMAIL": "Sesli Posta",
+        "GOTO": "Git",
+        "HANGUP": "Bağlantıyı Kes",
+        "CUSTOM": "Özel",
+        "PROJECT": "Proje Cally-Square",
+        "TECHNOLOGY/RESOURCE": "Teknoloji/Kaynak",
+        "URL": "URL",
+        "EDIT_APP": "Düzenleme Uygulama",
+        "EDIT_INTERVAL": "Edit Aralığı",
+        "DELETE_APP": "Uygulama",
+        "INTERVALS": "Aralıkları",
+        "USER": "Kullanıcı",
+        "TRUNK": "Santral",
+        "PHONE": "Telefon",
+        "AUDIO_FILES": "Ses Dosyaları",
+        "ANNOUNCE_OVERRIDES": "Geçersiz ilan",
+        "MACRO": "Makro",
+        "GOSUB": "GoSub",
+        "RULE": "Kural",
+        "POSITION": "Konum",
+        "ANSWER": "Cevap",
+        "VALUE": "Değer",
+        "MAILBOX@CONTEXT": "Posta kutusu@Içerik",
+        "EXTENSION": "Uzatma",
+        "PRIORITY": "Öncelik",
+        "HANGUP_CAUSE": "Bağlantıyı Kes Neden",
+        "OUTBOUNDDIAL": "Giden Arama",
+        "CALLER_ID": "Arayan kimliği",
+        "NO_MESSAGE_AVAILABLE": "Mesaj yok",
+        "NO_SOUND_AVAILABLE": "Hayır sesleri kullanılabilir",
+        "VOICERECORDINGS": "Ses Kayıtları",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Ses",
+        "REALTIME": "Gerçek Zamanlı",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Içerik",
+        "NO_MOHSOUND_AVAILABLE": "Hayır, Bekletme Müziği mevcuttur",
+        "FILE": "Dosya",
+        "ADD_MOHSOUND": "Add müziği ses",
+        "DOWNLOAD_MOHSOUND": "Yükleme müziği ses",
+        "DELETE_MOHSOUND": "Delete müziği ses",
+        "UNIQUEID": "Benzersiz Kimliği",
+        "AGENT": "Ajan",
+        "TYPE": "Tipi",
+        "RATING": "Derecelendirme",
+        "AUDIO": "Ses",
+        "DATE": "Tarih",
+        "NEW_VOICEQUEUE": "Yeni Ses Sırası",
+        "NEW_INBOUNDROUTE": "Yeni Gelen Rota",
+        "NEW_OUTBOUNDROUTE": "Yeni Giden Yol",
+        "NEW_INTERNALROUTE": "Yeni iç Rota",
+        "NEW_CONTEXT": "Yeni içerik",
+        "NEW_VOICEMAIL": "Yeni Sesli Posta",
+        "NEW_MUSICONHOLD": "Yeni Müziği",
+        "NEW_CHANSPY": "Yeni ChanSpy",
+        "PENALTY": "Cezasının",
+        "ADD_TEAM_TO_VOICEQUEUE": "Add Ekibi Ses Sırası",
+        "ADD_AGENT_TO_VOICEQUEUE": "Add Ajans Ses Sırası",
+        "EDIT_DIAL": "Edit Arama",
+        "EDIT_AGI": "AGI Düzenle",
+        "EDIT_INTERNALDIAL": "Edit Dahili Arama",
+        "EDIT_EXTERNALDIAL": "Edit Harici Arama",
+        "EDIT_RINGGROUP": "Edit Halka Grup",
+        "EDIT_PLAYBACK": "Edit Oynatma",
+        "EDIT_QUEUE": "Edit Sırası",
+        "EDIT_SET": "Edit Set",
+        "EDIT_GOTO": "Edit git",
+        "EDIT_HANGUP": "Edit Bağlantıyı Kes",
+        "EDIT_CUSTOM": "Özel Düzenle",
+        "DURATION": "Süre",
+        "RECEIVED_AT": "Almış",
+        "YES": "Evet",
+        "NO": "Hayır",
+        "HANGUPCAUSE_1": "1 = Ayrılmamış numarası",
+        "HANGUPCAUSE_16": "16 = Normail arama silme",
+        "HANGUPCAUSE_17": "17 = Kullanıcı meşgul",
+        "HANGUPCAUSE_18": "18 = kullanıcı yanıt vermiyor (telehone cihaz bağlı değil).",
+        "HANGUPCAUSE_21": "21 = Çağrı reddedildi",
+        "HANGUPCAUSE_22": "22 = Numarası Değiştirildi",
+        "HANGUPCAUSE_27": "27 = Hedef, sipariş",
+        "HANGUPCAUSE_38": "38 = Ağ",
+        "HANGUPCAUSE_41": "41 = Geçici arıza",
+        "RANDOM": "Rastgele",
+        "ALPHABETICAL": "Alfabetik",
+        "NO_APPS_AVAILABLE": "Hiçbir mevcut uygulamalar",
+        "DOWNLOAD_VOICERECORDING": "Download Ses Kayıt",
+        "DELETE_VOICERECORDING": "Delete Ses Kayıt",
+        "INTERNAL": "Dahili",
+        "PHONE_STATE": "Telefon Devlet",
+        "PHONE_STATUS": "Telefon Durumu",
+        "REGISTERED": "Kayıtlı",
+        "UNREGISTERED": "Kayıtsız",
+        "LAGGED": "Gecikmeli",
+        "REACHABLE": "Ulaşılabiliyor",
+        "UNREACHABLE": "Ulaşılamıyor",
+        "UNKNOWN": "Bilinmeyen",
+        "NOT_INUSE": "Kullanımda değil",
+        "INUSE": "Kullanımı",
+        "BUSY": "Meşgul",
+        "INVALID": "Geçersiz",
+        "UNAVAILABLE": "Kullanılamaz",
+        "RINGING": "Çalıyor",
+        "ONHOLD": "Bekletme",
+        "RING": "Halka",
+        "UP": "Yukarı",
+        "INFO": "Info",
+        "TRUNKS": "Devreleri",
+        "REGISTRY": "Kayıt Defteri",
+        "NO_REGISTRY": "Kayıt yok",
+        "LOGGED_IN": "Oturum Açma",
+        "PAUSED": "Duraklatıldı",
+        "WAITING": "Bekleme",
+        "TALKING": "Konuşma",
+        "DID": "Yaptık",
+        "CALLER": "Arayan",
+        "TOTAL": "Toplam",
+        "ANSWERED": "Yanıtlanan",
+        "ABANDONED": "Terk edilen",
+        "UNMANAGED": "Yönetimsiz",
+        "AVG_HOLD_TIME": "Ort Bekletme Süresi",
+        "AVG_DURATION": "Av Süresi",
+        "AVG_BILLABLE": "Ort Faturalanabilir",
+        "SOURCE": "Kaynak",
+        "DESTINATION": "Hedef",
+        "REJECTED": "Reddedildi",
+        "FAILED": "Başarısız Oldu",
+        "CALLED": "Adı",
+        "CONNECTED": "Bağlı",
+        "NO_RATING": "Hiçbir değeri",
+        "EDIT_VOICERECORDING": "Düzenleme Ses Kayıt",
+        "APPLICATION_NAME": "Uygulama Adı",
+        "ARGUMENTS": "Argümanlar",
+        "ENABLED": "Etkin",
+        "POWERLEVEL": "Güç Seviyesi",
+        "DROPRATE": "İndirme Hızı",
+        "AGENTBUSYFACTOR": "Ajan Kalabalık Faktörü",
+        "PREDICTIVEOPTIMIZATION": "Prediktif Optimizasyonu",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Prediktif İyileştirme Yüzdesi",
+        "READY": "Hazır Değil",
+        "PAUSE": "Duraklatma",
+        "UNPAUSE": "Unpause",
+        "DEFAULT_PAUSE": "Varsayılan Duraklatma",
+        "AGENTADD_QUEUE": "Add Ajans kuyruk kampanya",
+        "AGENTSADD_QUEUE": "Add Ajanlar kuyruk kampanya",
+        "ALL_TEAMS": "Tüm takımlar",
+        "SELECTED_TEAMS": "Seçilen Ekipleri",
+        "ALL_LISTS": "Tüm Liste",
+        "SELECTED_LISTS": "Seçili Listeleri",
+        "ALL_AGENTS": "Tüm Temsilciler",
+        "SELECTED_AGENTS": "Seçilen maddeler",
+        "IVRCAMPAIGNS": "IVR Kampanyaları",
+        "CONCURRENTCALLS": "Max Eş Zamanlı Aramalar",
+        "BLACKLISTADD_QUEUECAMPAIGN": "Kara Liste ekleyin",
+        "DELETE_IVRCAMPAIGN": "Kampanya Sil",
+        "EDIT_IVRCAMPAIGN": "Kampanya Düzenle",
+        "NEW_IVRCAMPAIGN": "Yeni IVR Kampanya",
+        "ADD_IVRCAMPAIGN": "Add IVR Kampanya",
+        "LISTADD_IVRCAMPAIGN": "Add Listesi",
+        "BLACKLISTADD_IVRCAMPAIGN": "Kara Liste ekleyin",
+        "HISTORY": "Geçmişi",
+        "FINAL": "Son",
+        "BLACKLIST": "Kara Liste",
+        "PREDICTIVEINTERVAL": "Tahmin Aralığı",
+        "WAITING_FOR_AGENT": "Bekle Agent",
+        "TOTAL_OFFERED": "Toplam Teklif",
+        "RUNNING": "Çalışıyor",
+        "INTERVAL_IS_OVERTIME": "Aralığı Fazla Mesai",
+        "TRUNK_IS_NOT_REACHABLE": "Santral Ulaşılamıyor",
+        "AGENTS_NOT_LOGGED": "Temsilci Oturum",
+        "NOT_ACTIVE": "Etkin Değil",
+        "AVAILABLE_CONTACTS_FINISHED": "Mevcut kişiler bitti",
+        "SCHEDULEDAT": "Planlanmış,",
+        "HOPPERBLACKS": "Silo Kara Liste",
+        "NO_HOPPERBLACK_AVAILABLE": "Hiçbir öğe",
+        "HOPPERFINALS": "Silo Son",
+        "NO_HOPPERFINAL_AVAILABLE": "Hiçbir öğe",
+        "HOPPERHISTORIES": "Silo Geçmişi",
+        "NO_HOPPERHISTORY_AVAILABLE": "Hiçbir öğe",
+        "DELETE_HOPPERHISTORY": "Sil",
+        "DELETE_HOPPERFINAL": "Sil",
+        "CONTACTID": "Contact ID",
+        "STARTTIME": "Başlangıç Zamanı",
+        "RESPONSETIME": "Yanıt Süresi",
+        "ENDTIME": "Bitiş Zamanı",
+        "STATUS": "Durum",
+        "HOPPERS": "Silo",
+        "NO_HOPPER_AVAILABLE": "Hiçbir öğe",
+        "EDIT_HOPPER": "Teknenin Düzenle",
+        "DELETE_HOPPER": "Teknenin silin",
+        "AGENTTIMEOUT": "Ajan Zaman Aşımı",
+        "DISPOSITION": "Eğiliminin",
+        "REDIRECT_TO_NUMBER": "Yönlendirme için bir numara",
+        "REDIRECT_TO_AGENT": "Yönlendirme için bir temsilci",
+        "CLOSING": "Kapama",
+        "MANAGED": "Yönetilen",
+        "BACKUPTRUNK": "Yedek Telefon",
+        "GLOBALINTERVAL": "Küresel Aralığı",
+        "RESCHEDULED_CONTACTS": "Kişileri yeniden planlanabilir.",
+        "INTERVAL_IS_NULL": "Aralık Boş",
+        "TIMEZONE_UNKNOW": "Saat Dilimi Bilinmiyor",
+        "INTERVAL_IS_EMPTY": "Aralık Boş",
+        "LOGOUT": "Oturum kapatma",
+        "EDIT_CAMPAIGN": "Kampanya Düzenle",
+        "LIMITED": "Sınırlı",
+        "IVR_CAMPAIGNS": "Ivr Kampanyaları",
+        "IS_DISACTIVED": "Disactived,",
+        "TOTAL_MANAGED": "Toplam Yönetilen"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/zh-CN.json b/public/app/main/apps/motiondialer/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..e39a144
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "议案的拨号器",
+        "QUEUECAMPAIGNS": "队列活动",
+        "NAME": "名称",
+        "VOICEQUEUES": "语音队列",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "BACK": "返回",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "DELETE_VOICEDISPOSITION": "删除语音处理",
+        "EDIT_VOICEDISPOSITION": "编辑语音处理",
+        "EDIT_VOICEQUEUE": "编辑语音队列",
+        "DELETE_VOICEQUEUE": "删除语音队列",
+        "MOHSOUNDS": "卫生部的声音。",
+        "STRATEGY": "战略",
+        "DESCRIPTION": "描述",
+        "INTERVAL": "时间间隔",
+        "ADD_VOICEQUEUE": "添加语音消息队列",
+        "NEW_QUEUECAMPAIGN": "新的队列活动",
+        "EDIT_QUEUECAMPAIGN": "编辑活动",
+        "TEAMADD_QUEUECAMPAIGN": "添加组",
+        "AGENTADD_QUEUECAMPAIGN": "添加代理",
+        "LISTADD_QUEUECAMPAIGN": "添加列表",
+        "DELETE_QUEUECAMPAIGN": "删除活动",
+        "ACTIVE": "Active",
+        "METHOD": "方法",
+        "ADD_QUEUECAMPAIGN": "添加队列活动",
+        "CAMPAIGN": "运动",
+        "MAXCONCURRENTCALLS": "最大并发呼叫数",
+        "ORIGINATE": "源自",
+        "ORIGINATECALLERIDNAME": "主叫方 ID 的名称。",
+        "ORIGINATECALLERIDNUMBER": "主叫方 ID 号。",
+        "ORIGINATETIMEOUT": "源自超时",
+        "QUEUEOPTIONS": "队列选项。",
+        "QUEUETIMEOUT": "队列超时",
+        "CALLYSQUAREPROJECT": "邝美云广场项目",
+        "RETRYANDFREQUENCY": "重试设置",
+        "GLOBAL": "全球",
+        "GLOBALMAXRETRY": "最大重试次数。",
+        "CONGESTION": "交通挤塞",
+        "CONGESTIONMAXRETRY": "最大重试次数。",
+        "CONGESTIONRETRYTIME": "重试时间[分钟]",
+        "BUSYMAXRETRY": "最大重试次数。",
+        "BUSYRETRYTIME": "重试时间[分钟]",
+        "NOANSWER": "没有应答",
+        "NOANSWERMAXRETRY": "最大重试次数。",
+        "NOANSWERRETRYTIME": "重试时间[分钟]",
+        "QUEUE_PARAMS": "队列参数。",
+        "ORIGINATED": "源自",
+        "MESSAGE": "消息",
+        "DROPPED": "丢弃",
+        "CREATED_AT": "创建在",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*)-自定义应用程序。"
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "TIMEOUT_REQUIRED": "超时是必需的",
+            "PHONENUMBER_REQUIRED": "手机号码为必填项",
+            "CONTEXT_REQUIRED": "当前的情况是必需的",
+            "DESTINATIONPATTERN_REQUIRED": "目标模式是必需的",
+            "FULLNAME_REQUIRED": "完整的名称是必需的",
+            "EMAIL_REQUUIRED": "“电子邮件是必填的",
+            "EMAIL_MUST_VALID": "电子邮件必须有书面的格式无效",
+            "MAILBOX_REQUIRED": "邮箱是必需的",
+            "PASSWORD_REQUIRED": "密码是必需的",
+            "CONFIRM_NOT_MATCH": "密码不匹配",
+            "TIMEZONE_REQUIRED": "时区是必需的",
+            "PREFIX_REQUIRED": "前缀是必需的",
+            "OPTIONS_REQUIRED": "该选项是必需的",
+            "AFTERCALLWORKDURATION_REQUIRED": "呼叫后工作的持续时间是必需的",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "技术/资源是必需的",
+            "PHONE_REQUIRED": "手机是必需的",
+            "VALUE_REQUIRED": "该值是必需的",
+            "EXTENSION_REQUIRED": "扩展名是必需的",
+            "PRIORITY_REQUIRED": "优先级是必需的",
+            "GLOBALMAXRETRY_REQUIRED": "最大重试次数是必需的",
+            "CONGESTIONMAXRETRY_REQUIRED": "最大重试次数是必需的",
+            "CONGESTIONRETRYTIME_REQUIRED": "重试时间是必需的",
+            "BUSYMAXRETRY_REQUIRED": "最大重试次数是必需的",
+            "BUSYRETRYTIME_REQUIRED": "重试时间是必需的",
+            "NOANSWERMAXRETRY_REQUIRED": "最大重试次数是必需的",
+            "NOANSWERRETRYTIME_REQUIRED": "重试时间是必需的",
+            "QUEUETIMEOUT_REQUIRED": "队列超时是必需的",
+            "ORIGINATETIMEOUT_REQUIRED": "源自超时是必需的",
+            "GLOBALINTERVAL_REQUIRED": "全球性的时间间隔是所需的"
+        },
+        "GENERAL": "总的",
+        "TIMEOUT": "超时",
+        "MAXLENGTH": "最大长度",
+        "RETRY": "重试",
+        "WRAPUPTIME": "话后工作时间",
+        "WEIGHT": "重量",
+        "JOINWHENEMPTY": "加入时空",
+        "LEAVEWHENEMPTY": "离开时空",
+        "HELP": {
+            "ACTIVE": "Active",
+            "TIMEOUT": "指定秒数圈成员的设备。",
+            "MAXLENGTH": "指定消息的最大数目的主叫方可以在队列中等待。 值为零表示无限数量的呼叫方被允许在队列中。",
+            "RETRY": "指定该号码之前等待的秒数。 尝试下一成员在队列中如果超时” 值是用尽而尝试环的队列中。",
+            "WRAPUPTIME": "以秒为单位的成员不可用队列中的作业在完成呼叫。",
+            "WEIGHT": "定义了重量的队列中。 队列中有更高的权重定义将获得第一优先当成员是关联多个队列。",
+            "JOINWHENEMPTY": "控制是否在主叫方被添加到队列中的任何成员都是可用的。",
+            "LEAVEWHENEMPTY": "用于控制是否呼叫方发起的呼叫均被踢出队列中的成员不再是可用的呼叫。",
+            "ANNOUNCEFREQUENCY": "定义了我们应该通知主叫方所持的立场和/或预计的保持时间在队列中。 将此值设置为零以禁用。",
+            "MINANNOUNCEFREQUENCY": "指定的最小时间量必须在通过我们公布的来电者的队列中第一的位置。 这时使用的呼叫者的位置可能会经常更改, 以防止主叫方听到多个更新会在很短的时间。",
+            "PERIODICANNOUNCEFREQUENCY": "表明多久我们应该定期宣布与主叫方通话。",
+            "ANNOUNCEPOSITIONLIMIT": "如果您已经定义的宣布-位置为限制或更多。",
+            "AFTERCALLWORKDURATION": "的的暂停持续时间触发的 “呼叫后工作” 选项。",
+            "MEMBERDELAY": "如果您想要有一定的延迟之前的主叫方和队列成员正在连接到每个其他。",
+            "MUSICONHOLD": "将音乐课所使用的特定队列。",
+            "ANNOUNCETOAGENT": "用于播放语音通知的业务代表应答的呼叫, 通常要让他知道什么是队列中的呼叫方。",
+            "RANDOMPERIODICANNOUNCE": "如果设置为 “是”, 将定义的定期公告, 以随机顺序。",
+            "ANNOUNCEHOLDTIME": "定义是否将估计的保持时间, 应发挥的定期通知。",
+            "ANNOUNCECALLERPOSITION": "定义是否将主叫方的队列中第一的位置应宣布她的。 如果设置为 “否”, 该位置将永远不会被公布。 如果设置为 “是”、“主叫方的立场始终会宣布。 如果将该值设置为限制, 主叫方将听到她的队列中第一的位置只有在所定义的限制宣布--位置的限制。 如果将该值设置为更多的来电者将会听到她的位置如果是超出定义的号码, 宣布--位置的限制。",
+            "REPORTHOLDTIMEAGENT": "使报告的主叫方的保持时间的队列前桥接。",
+            "PERIODICANNOUNCE": "一组定期公布以发挥发挥的顺序定义的。",
+            "HOLDTIMEANNOUNCE": "如果未定义, 将播放默认值(“保持时间”)。 如果设置为空值, 提示无法播放。",
+            "YOUARENEXTANNOUNCE": "如果未定义, 将播放默认值(“您目前在线上是第一位”)。 如果设置为空值, 提示无法播放。",
+            "THEREAREANNOUNCE": "如果未定义, 将播放默认值(“有”)。 如果设置为空值, 提示无法播放。",
+            "WAITINGCALLSANNOUNCE": "如果未定义, 将播放默认值(“呼叫等待”。 如果设置为空值, 提示无法播放。",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "如果未定义, 将播放默认值(“当前估计的保持时间”)。 如果设置为空值, 提示无法播放。",
+            "MINUTESANNOUNCE": "如果未定义, 将播放默认值(“分钟”)。 如果设置为空值, 提示无法播放。",
+            "MINUTEANNOUNCE": "如果未定义, 将播放默认值(“一分钟”)。 如果设置为空值, 提示无法播放。",
+            "SECONDSANNOUNCE": "如果未定义, 将播放默认值(“秒”)。 如果设置为空值, 提示无法播放。",
+            "THANKYOUANNOUNCE": "如果未定义, 将播放默认值(“感谢您的耐心等待”。 如果设置为空值, 提示无法播放。",
+            "AFTERCALLWORK": "如果已激活, 该座席将被设置为 “暂停后完成的呼叫在队列中",
+            "AUTOPAUSE": "使/禁用自动暂停的成员无法应答呼叫。 如果活动的原因该成员将暂停所有队列的他是其中的成员。",
+            "RINGINUSE": "用于避免呼叫发送到成员的地位是在使用中。",
+            "TIMEOUTRESTART": "如果设置为 “是”, 重置超时业务代表应答如果占线或拥塞状态为 “已接收” 的通道。",
+            "MONITORFORMAT": "指定的文件格式时要使用的录制。 如果监护仪-格式是处于非活动状态, 呼叫将不被记录。",
+            "CONTEXT": "允许主叫方退出队列的按单一的 DTMF 数字。 如果指定了环境和主叫方输入的数字, 该数字将尝试匹配指定的环境下, 执行 dialplan 将会继续存在。",
+            "SETINTERFACEVARIABLES": "如果设置为 “是”, 只在主叫方被桥接的队列成员的某些变量将被设置(参见维基百科)",
+            "SETQUEUEVARIABLES": "如果设置为 “是”, 只在主叫方被桥接的队列成员之前, 主叫方离开队列中的某些变量将被设置(参见维基百科)",
+            "SETQUEUEENTRYVARIABLES": "如果设置为 “是”, 只在主叫方被桥接的队列成员的某些变量将被设置(参见维基百科)",
+            "RECORDING": "启用 “呼叫记录",
+            "VOICEMAIL_CONTEXT": "这方面的相关的扩展名。",
+            "METHOD": "呼出拨号程序的方法。",
+            "MAXCONCURRENTCALLS": "最大并发呼叫数, 将发起的呼出拨号程序。",
+            "ORIGINATECALLERIDNAME": "呼出呼叫方 ID 的名称。",
+            "ORIGINATECALLERIDNUMBER": "传出呼叫者的 ID 号。",
+            "ORIGINATETIMEOUT": "以秒为单位的时间为起始的外向呼叫建立连接。 如果缆连接用是不成立的, “发起的地位将无人应答。",
+            "QUEUETIMEOUT": "以秒为单位的时间, 将呼叫在队列中等待它之前被丢弃",
+            "GLOBALMAXRETRY": "最大次数联系人被称为才再考虑关闭",
+            "CONGESTIONMAXRETRY": "最大的失败联系人挤塞的原因称为才再考虑关闭",
+            "CONGESTIONRETRYTIME": "以分钟为单位的时间。 重试之前达成一项联系人失败的拥塞的原因",
+            "BUSYMAXRETRY": "最大的失败联系人忙碌的原因称为才再考虑关闭",
+            "BUSYRETRYTIME": "以分钟为单位的时间。 重试之前达成一项联系人失败的忙的原因",
+            "NOANSWERMAXRETRY": "最大的失败的联系无应答原因称为才再考虑关闭",
+            "NOANSWERRETRYTIME": "以分钟为单位的时间。 重试之前达成一项联系人失败的无应答的原因",
+            "POWERLEVEL": "联系人数量要求一位可用的业务代表。",
+            "PREDICTIVEOPTIMIZATION": "一种优化的预测算法。",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "基于所选的预测优化因素。",
+            "CONCURRENTCALLS": "最大并发呼叫数, 将发起的呼出拨号程序。 这项运动。",
+            "PREDICTIVEINTERVAL": "时间间隔在数分钟内将审议的预测算法的计算量的呼叫生成优化的预测优化因素。",
+            "AGENTTIMEOUT": "指定的秒数, 环座席的设备。",
+            "GLOBALINTERVAL": "全球性的时间间隔的拨号器是允许呼叫的联系人。 请密切注意在您修改此字段。 我们将不负任何责任。 您无法遵守状态的自动拨号器的法律和法规。"
+        },
+        "MUSICONHOLD": "音乐保留",
+        "ANNOUNCETOAGENT": "宣布到座席",
+        "ANNOUNCEMENTS": "公告",
+        "ADVANCED": "高级",
+        "ANNOUNCEFREQUENCY": "公布频率",
+        "MINANNOUNCEFREQUENCY": "最小频率的宣布",
+        "PERIODICANNOUNCEFREQUENCY": "定期公布频率",
+        "RANDOMPERIODICANNOUNCE": "随机定期公布",
+        "ANNOUNCEHOLDTIME": "宣布搁置时间",
+        "ANNOUNCECALLERPOSITION": "主叫方宣布立场。",
+        "ANNOUNCEPOSITIONLIMIT": "发表位置限制",
+        "REPORTHOLDTIMEAGENT": "报告座席保持时间",
+        "PERIODICANNOUNCE": "定期公布",
+        "HOLDTIMEANNOUNCE": "保持时间公布",
+        "YOUARENEXTANNOUNCE": "“你是下的宣布",
+        "THEREAREANNOUNCE": "“有的宣布",
+        "WAITINGCALLSANNOUNCE": "呼叫等待通知",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "估计的保持时间公布",
+        "MINUTESANNOUNCE": "分钟的宣布",
+        "MINUTEANNOUNCE": "分钟的宣布",
+        "SECONDSANNOUNCE": "秒宣布",
+        "THANKYOUANNOUNCE": "“感谢您” 的宣布",
+        "AUTOPAUSE": "自动暂停",
+        "AFTERCALLWORK": "呼叫后工作",
+        "AFTERCALLWORKDURATION": "呼叫后工作的持续时间",
+        "RINGINUSE": "环在使用中",
+        "MEMBERDELAY": "会员延迟",
+        "TIMEOUTRESTART": "超时重新启动",
+        "MONITORFORMAT": "录制格式",
+        "SETINTERFACEVARIABLES": "设置接口变量。",
+        "SETQUEUEVARIABLES": "设置队列中的变量。",
+        "SETQUEUEENTRYVARIABLES": "设置队列项变量。",
+        "CONTEXT": "上下文",
+        "SAVE": "保存",
+        "SETTINGS": "设置",
+        "INBOUNDROUTES": "呼入路由",
+        "PHONENUMBER": "电话号码",
+        "ADD_INBOUNDROUTE": "添加导入路由",
+        "EDIT_INBOUNDROUTE": "编辑入站的路由",
+        "DELETE_INBOUNDROUTE": "删除传入的路由",
+        "ACTIONS": "采取的行动",
+        "OUTBOUNDROUTES": "出站的路由",
+        "DESTINATIONPATTERN": "目标模式",
+        "ADD_OUTBOUNDROUTE": "添加外出的路由",
+        "EDIT_OUTBOUNDROUTE": "编辑出站的路由",
+        "DELETE_OUTBOUNDROUTE": "删除出站的路由",
+        "CUTDIGITS": "切数字",
+        "RECORDING": "录制",
+        "RECORDINGFORMAT": "录制格式",
+        "INTERNALROUTES": "内部路由",
+        "ADD_INTERNALROUTE": "添加内部路由",
+        "EDIT_INTERNALROUTE": "编辑内部的路由",
+        "DELETE_INTERNALROUTE": "删除内部路由",
+        "CONTEXTS": "上下文",
+        "ADD_CONTEXT": "添加环境",
+        "EDIT_CONTEXT": "编辑上下文",
+        "DELETE_CONTEXT": "删除环境",
+        "VOICEMAILS": "语音邮件",
+        "ADD_VOICEMAIL": "添加语音邮件",
+        "EDIT_VOICEMAIL": "编辑语音邮件",
+        "DELETE_VOICEMAIL": "删除语音邮件。",
+        "FULLNAME": "全名。",
+        "EMAIL": "电子邮件",
+        "MAILBOX": "邮箱",
+        "PASSWORD": "密码",
+        "CONFIRM_PASSWORD": "确认密码",
+        "TIMEZONE": "时区",
+        "ATTACH": "连接",
+        "ENVELOPE": "开窗信封",
+        "DELETE": "删除",
+        "EMAILBODY": "电子邮件正文",
+        "EMAILSUBJECT": "电子邮件主题",
+        "MAXSECONDS": "的最大秒数。",
+        "MAXMESSAGES": "最大消息数",
+        "MESSAGES": "讯息",
+        "SORT": "排序",
+        "ADD_MUSICONHOLD": "添加音乐",
+        "MUSICONHOLDS": "音乐保留",
+        "EDIT_MUSICONHOLD": "编辑音乐",
+        "DELETE_MUSICONHOLD": "删除音乐保留",
+        "DIRECTORY": "目录",
+        "AUDIOFILES": "音频文件。",
+        "RECORDINGS": "录像",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "前缀。",
+        "OPTIONS": "选项。",
+        "AUTH": "身份验证",
+        "ADD_CHANSPY": "添加 ChanSpy",
+        "EDIT_CHANSPY": "编辑 ChanSpy",
+        "DELETE_CHANSPY": "删除 ChanSpy",
+        "AGENTS": "座席",
+        "TELEPHONES": "电话",
+        "QUEUES": "队列",
+        "QUEUE_CALLS": "队列中的呼叫",
+        "QUEUE_PARAMETERS": "队列参数。",
+        "ABANDONED_CALLS": "放弃的呼叫",
+        "OUTBOUND_CALLS": "呼出呼叫",
+        "AGI": "阿希",
+        "DIAL": "拨号",
+        "INTERNALDIAL": "内部拨号",
+        "EXTERNALDIAL": "外拨",
+        "RINGGROUP": "振铃组",
+        "PLAYBACK": "播放",
+        "QUEUE": "队列",
+        "SET": "设置",
+        "VOICEMAIL": "语音邮件",
+        "GOTO": "GoTo",
+        "HANGUP": "挂断",
+        "CUSTOM": "自定义",
+        "PROJECT": "Cally-Square 项目",
+        "TECHNOLOGY/RESOURCE": "技术/资源",
+        "URL": "URL。",
+        "EDIT_APP": "编辑应用程序",
+        "EDIT_INTERVAL": "编辑的时间间隔",
+        "DELETE_APP": "删除应用程序",
+        "INTERVALS": "时间间隔",
+        "USER": "用户",
+        "TRUNK": "中继线",
+        "PHONE": "电话",
+        "AUDIO_FILES": "音频文件。",
+        "ANNOUNCE_OVERRIDES": "宣布将覆盖",
+        "MACRO": "宏",
+        "GOSUB": "GoSub",
+        "RULE": "规则",
+        "POSITION": "位置",
+        "ANSWER": "答",
+        "VALUE": "值",
+        "MAILBOX@CONTEXT": "邮箱@上下文",
+        "EXTENSION": "扩展",
+        "PRIORITY": "优先级",
+        "HANGUP_CAUSE": "导致挂起。",
+        "OUTBOUNDDIAL": "呼出拨号",
+        "CALLER_ID": "主叫方 ID",
+        "NO_MESSAGE_AVAILABLE": "没有可用的消息。",
+        "NO_SOUND_AVAILABLE": "没有可用的声音。",
+        "VOICERECORDINGS": "语音录音",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "语音",
+        "REALTIME": "实时",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "上下文",
+        "NO_MOHSOUND_AVAILABLE": "没有音乐保留可用的",
+        "FILE": "文件",
+        "ADD_MOHSOUND": "添加音乐的声音",
+        "DOWNLOAD_MOHSOUND": "下载音乐的声音",
+        "DELETE_MOHSOUND": "删除音乐声音",
+        "UNIQUEID": "独特的 ID",
+        "AGENT": "座席",
+        "TYPE": "类型",
+        "RATING": "评级",
+        "AUDIO": "音频",
+        "DATE": "日期",
+        "NEW_VOICEQUEUE": "新的语音队列",
+        "NEW_INBOUNDROUTE": "新的入站的路由",
+        "NEW_OUTBOUNDROUTE": "新的出站路由",
+        "NEW_INTERNALROUTE": "新的内部路由",
+        "NEW_CONTEXT": "新的上下文。",
+        "NEW_VOICEMAIL": "新的语音邮件",
+        "NEW_MUSICONHOLD": "新音乐",
+        "NEW_CHANSPY": "新 ChanSpy",
+        "PENALTY": "刑罚",
+        "ADD_TEAM_TO_VOICEQUEUE": "添加组至语音队列",
+        "ADD_AGENT_TO_VOICEQUEUE": "代理添加到语音队列",
+        "EDIT_DIAL": "编辑拨号",
+        "EDIT_AGI": "编辑安城",
+        "EDIT_INTERNALDIAL": "编辑内部拨号",
+        "EDIT_EXTERNALDIAL": "编辑外部拨号",
+        "EDIT_RINGGROUP": "编辑铃组",
+        "EDIT_PLAYBACK": "编辑播放",
+        "EDIT_QUEUE": "编辑队列",
+        "EDIT_SET": "编辑设置",
+        "EDIT_GOTO": "编辑 GoTo",
+        "EDIT_HANGUP": "编辑挂断",
+        "EDIT_CUSTOM": "编辑自定义",
+        "DURATION": "持续时间",
+        "RECEIVED_AT": "收到",
+        "YES": "是的",
+        "NO": "无",
+        "HANGUPCAUSE_1": "1 =未分配的号码",
+        "HANGUPCAUSE_16": "16 = Normail 呼叫清除",
+        "HANGUPCAUSE_17": "17 =用户正忙",
+        "HANGUPCAUSE_18": "18 =没有用户响应(可打电话的设备未连接)",
+        "HANGUPCAUSE_21": "21 =呼叫被拒绝",
+        "HANGUPCAUSE_22": "22 =号改变。",
+        "HANGUPCAUSE_27": "27 =目的地时的订单",
+        "HANGUPCAUSE_38": "38 =网络的顺序",
+        "HANGUPCAUSE_41": "41 =临时故障",
+        "RANDOM": "随机存取存储器",
+        "ALPHABETICAL": "按字母顺序排列",
+        "NO_APPS_AVAILABLE": "没有可用的应用程序",
+        "DOWNLOAD_VOICERECORDING": "下载语音录制",
+        "DELETE_VOICERECORDING": "删除录音。",
+        "INTERNAL": "内部",
+        "PHONE_STATE": "电话状态",
+        "PHONE_STATUS": "手机状态",
+        "REGISTERED": "已注册",
+        "UNREGISTERED": "未注册",
+        "LAGGED": "落后",
+        "REACHABLE": "访问",
+        "UNREACHABLE": "不可访问",
+        "UNKNOWN": "未知",
+        "NOT_INUSE": "未使用",
+        "INUSE": "在使用中",
+        "BUSY": "正忙",
+        "INVALID": "无效",
+        "UNAVAILABLE": "不可用。",
+        "RINGING": "振铃",
+        "ONHOLD": "搁置",
+        "RING": "振铃",
+        "UP": "高达",
+        "INFO": "信息",
+        "TRUNKS": "中继线",
+        "REGISTRY": "注册表",
+        "NO_REGISTRY": "无注册表",
+        "LOGGED_IN": "已登录",
+        "PAUSED": "已暂停",
+        "WAITING": "正在等待",
+        "TALKING": "通话",
+        "DID": "没有",
+        "CALLER": "主叫方",
+        "TOTAL": "总",
+        "ANSWERED": "回答",
+        "ABANDONED": "已放弃",
+        "UNMANAGED": "非受管",
+        "AVG_HOLD_TIME": "平均保持时间",
+        "AVG_DURATION": "Av 的持续时间",
+        "AVG_BILLABLE": "平均计费。",
+        "SOURCE": "资料来源",
+        "DESTINATION": "目标位置",
+        "REJECTED": "被拒绝",
+        "FAILED": "失败",
+        "CALLED": "称为",
+        "CONNECTED": "已连接",
+        "NO_RATING": "未评级",
+        "EDIT_VOICERECORDING": "编辑语音录制",
+        "APPLICATION_NAME": "应用程序的名称。",
+        "ARGUMENTS": "参数",
+        "ENABLED": "已启用",
+        "POWERLEVEL": "电源级别",
+        "DROPRATE": "下降速度",
+        "AGENTBUSYFACTOR": "座席繁忙的因素。",
+        "PREDICTIVEOPTIMIZATION": "预测性的优化",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "预测优化比例",
+        "READY": "准备就绪",
+        "PAUSE": "暂停",
+        "UNPAUSE": "取消暂停",
+        "DEFAULT_PAUSE": "默认情况下暂停",
+        "AGENTADD_QUEUE": "代理添加到队列活动",
+        "AGENTSADD_QUEUE": "将座席添加到队列活动",
+        "ALL_TEAMS": "所有的团队",
+        "SELECTED_TEAMS": "选定的组",
+        "ALL_LISTS": "所有的列表",
+        "SELECTED_LISTS": "“已选定” 列表中",
+        "ALL_AGENTS": "所有座席",
+        "SELECTED_AGENTS": "选定的座席",
+        "IVRCAMPAIGNS": "IVR 的运动",
+        "CONCURRENTCALLS": "最大并发呼叫数",
+        "BLACKLISTADD_QUEUECAMPAIGN": "添加黑名单",
+        "DELETE_IVRCAMPAIGN": "删除活动",
+        "EDIT_IVRCAMPAIGN": "编辑活动",
+        "NEW_IVRCAMPAIGN": "新的 IVR 运动",
+        "ADD_IVRCAMPAIGN": "添加 IVR 运动",
+        "LISTADD_IVRCAMPAIGN": "添加列表",
+        "BLACKLISTADD_IVRCAMPAIGN": "添加黑名单",
+        "HISTORY": "历史记录",
+        "FINAL": "最后",
+        "BLACKLIST": "黑名单",
+        "PREDICTIVEINTERVAL": "预测的时间间隔",
+        "WAITING_FOR_AGENT": "等待座席",
+        "TOTAL_OFFERED": "总的提供",
+        "RUNNING": "正在运行",
+        "INTERVAL_IS_OVERTIME": "时间间隔是加班费",
+        "TRUNK_IS_NOT_REACHABLE": "中继线不可访问",
+        "AGENTS_NOT_LOGGED": "业务代表未登录",
+        "NOT_ACTIVE": "未处于活动状态",
+        "AVAILABLE_CONTACTS_FINISHED": "可用的联系人已完成",
+        "SCHEDULEDAT": "计划在",
+        "HOPPERBLACKS": "料斗的黑名单",
+        "NO_HOPPERBLACK_AVAILABLE": "无可用项目",
+        "HOPPERFINALS": "料斗最后",
+        "NO_HOPPERFINAL_AVAILABLE": "无可用项目",
+        "HOPPERHISTORIES": "料斗的历史",
+        "NO_HOPPERHISTORY_AVAILABLE": "无可用项目",
+        "DELETE_HOPPERHISTORY": "删除",
+        "DELETE_HOPPERFINAL": "删除",
+        "CONTACTID": "联系人 ID",
+        "STARTTIME": "开始时间",
+        "RESPONSETIME": "响应时间",
+        "ENDTIME": "结束时间",
+        "STATUS": "状态",
+        "HOPPERS": "料斗",
+        "NO_HOPPER_AVAILABLE": "无可用项目",
+        "EDIT_HOPPER": "编辑料斗",
+        "DELETE_HOPPER": "删除料斗",
+        "AGENTTIMEOUT": "代理超时",
+        "DISPOSITION": "处理",
+        "REDIRECT_TO_NUMBER": "重定向至 “一号",
+        "REDIRECT_TO_AGENT": "重定向至座席",
+        "CLOSING": "关闭",
+        "MANAGED": "受管",
+        "BACKUPTRUNK": "备份中继线",
+        "GLOBALINTERVAL": "全球性的时间间隔",
+        "RESCHEDULED_CONTACTS": "已重新安排的联系人",
+        "INTERVAL_IS_NULL": "时间间隔为空",
+        "TIMEZONE_UNKNOW": "时区未知",
+        "INTERVAL_IS_EMPTY": "时间间隔为空",
+        "LOGOUT": "注销",
+        "EDIT_CAMPAIGN": "编辑活动",
+        "LIMITED": "有限的",
+        "IVR_CAMPAIGNS": "Ivr 的运动",
+        "IS_DISACTIVED": "是 Disactived",
+        "TOTAL_MANAGED": "总的管理"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/motiondialer/i18n/zh-TW.json b/public/app/main/apps/motiondialer/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..4cea779
--- /dev/null
@@ -0,0 +1,474 @@
+{
+    "MOTIONDIALER": {
+        "MOTIONDIALER": "動態 Dialer ( 撥號器 )",
+        "QUEUECAMPAIGNS": "佇列活動",
+        "NAME": "名稱",
+        "VOICEQUEUES": "語音通話佇列",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "BACK": "備份",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "DELETE_VOICEDISPOSITION": "刪除語音處理",
+        "EDIT_VOICEDISPOSITION": "編輯語音處理",
+        "EDIT_VOICEQUEUE": "編輯語音通話佇列",
+        "DELETE_VOICEQUEUE": "刪除語音通話佇列",
+        "MOHSOUNDS": "Moh 音效",
+        "STRATEGY": "策略",
+        "DESCRIPTION": "說明",
+        "INTERVAL": "時間間隔",
+        "ADD_VOICEQUEUE": "新增語音通話佇列",
+        "NEW_QUEUECAMPAIGN": "新增佇列活動",
+        "EDIT_QUEUECAMPAIGN": "編輯活動",
+        "TEAMADD_QUEUECAMPAIGN": "新增群組",
+        "AGENTADD_QUEUECAMPAIGN": "新增值機員",
+        "LISTADD_QUEUECAMPAIGN": "新增清單",
+        "DELETE_QUEUECAMPAIGN": "刪除項目",
+        "ACTIVE": "作用中狀態",
+        "METHOD": "方法",
+        "ADD_QUEUECAMPAIGN": "新增佇列活動",
+        "CAMPAIGN": "行銷活動",
+        "MAXCONCURRENTCALLS": "最大同時通話",
+        "ORIGINATE": "發出",
+        "ORIGINATECALLERIDNAME": "來電者 ID 名稱",
+        "ORIGINATECALLERIDNUMBER": "來電者 ID 號碼",
+        "ORIGINATETIMEOUT": "來自逾時",
+        "QUEUEOPTIONS": "佇列選項",
+        "QUEUETIMEOUT": "佇列中等候逾時",
+        "CALLYSQUAREPROJECT": "會自動控制方形專案",
+        "RETRYANDFREQUENCY": "重新設定",
+        "GLOBAL": "全球",
+        "GLOBALMAXRETRY": "重試次數上限",
+        "CONGESTION": "網路壅塞",
+        "CONGESTIONMAXRETRY": "重試次數上限",
+        "CONGESTIONRETRYTIME": "重試時間 ( 分鐘 )",
+        "BUSYMAXRETRY": "重試次數上限",
+        "BUSYRETRYTIME": "重試時間 ( 分鐘 )",
+        "NOANSWER": "無人接聽",
+        "NOANSWERMAXRETRY": "重試次數上限",
+        "NOANSWERRETRYTIME": "重試時間 ( 分鐘 )",
+        "QUEUE_PARAMS": "佇列參數",
+        "ORIGINATED": "來源",
+        "MESSAGE": "訊息",
+        "DROPPED": "捨棄",
+        "CREATED_AT": "建立在",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "( * ) - 自訂應用程式。"
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "TIMEOUT_REQUIRED": "逾時時間為必要資訊",
+            "PHONENUMBER_REQUIRED": "「電話號碼」為必填欄位",
+            "CONTEXT_REQUIRED": "內容為必填欄位",
+            "DESTINATIONPATTERN_REQUIRED": "目的地型式為必填欄位",
+            "FULLNAME_REQUIRED": "完整名稱」為必填欄位",
+            "EMAIL_REQUUIRED": "電子郵件為必填欄位",
+            "EMAIL_MUST_VALID": "電子郵件必須是書面的格式無效",
+            "MAILBOX_REQUIRED": "信箱為必填欄位",
+            "PASSWORD_REQUIRED": "密碼為必填欄位",
+            "CONFIRM_NOT_MATCH": "密碼不相符",
+            "TIMEZONE_REQUIRED": "Timezone 是必填欄位",
+            "PREFIX_REQUIRED": "前置碼為必填欄位",
+            "OPTIONS_REQUIRED": "選項為必填欄位",
+            "AFTERCALLWORKDURATION_REQUIRED": "「通話後工作時間為必要資訊",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "技術 / 資源為必填欄位",
+            "PHONE_REQUIRED": "「電話」為必填欄位",
+            "VALUE_REQUIRED": "此值為必填欄位",
+            "EXTENSION_REQUIRED": "副檔名是必填欄位",
+            "PRIORITY_REQUIRED": "「優先順序為必填欄位",
+            "GLOBALMAXRETRY_REQUIRED": "重試次數上限是必填欄位",
+            "CONGESTIONMAXRETRY_REQUIRED": "重試次數上限是必填欄位",
+            "CONGESTIONRETRYTIME_REQUIRED": "重試時間為必要資訊",
+            "BUSYMAXRETRY_REQUIRED": "重試次數上限是必填欄位",
+            "BUSYRETRYTIME_REQUIRED": "重試時間為必要資訊",
+            "NOANSWERMAXRETRY_REQUIRED": "重試次數上限是必填欄位",
+            "NOANSWERRETRYTIME_REQUIRED": "重試時間為必要資訊",
+            "QUEUETIMEOUT_REQUIRED": "佇列中等候時間是必填欄位",
+            "ORIGINATETIMEOUT_REQUIRED": "來自逾時為必填欄位",
+            "GLOBALINTERVAL_REQUIRED": "全球時間間隔為必填欄位"
+        },
+        "GENERAL": "通用",
+        "TIMEOUT": "逾時",
+        "MAXLENGTH": "長度上限",
+        "RETRY": "再試一次",
+        "WRAPUPTIME": "整理時間",
+        "WEIGHT": "重量",
+        "JOINWHENEMPTY": "加入當空白",
+        "LEAVEWHENEMPTY": "當留空白",
+        "HELP": {
+            "ACTIVE": "作用中狀態",
+            "TIMEOUT": "指定的秒數以環成員的裝置。",
+            "MAXLENGTH": "指定的最大數目的來電者可等待佇列中。 零值表示無限數量的來電者會被允許在佇列中。",
+            "RETRY": "指定之前等待的秒数下會員在佇列中等候如果逾時的值是累癱了在嘗試鈴成員的佇列。",
+            "WRAPUPTIME": "秒數要保留會員無法在佇列中等候完成通話。",
+            "WEIGHT": "定義的紙張重量的佇列。 佇列中有較高重量定義將會取得第一優先當會員相關的多個佇列。",
+            "JOINWHENEMPTY": "控制是否在來電者被新增到佇列中沒有任何會員均可使用。",
+            "LEAVEWHENEMPTY": "用來控制來電者是否會踢掉出佇列當會員將不再提供可接聽來電。",
+            "ANNOUNCEFREQUENCY": "定義通常是我們應在此宣佈推出「來電者的位置和 / 或預估保留時間在佇列中。 將這個值設定為 0 可停用。",
+            "MINANNOUNCEFREQUENCY": "指定的最低金額應經過多久的時間才能我們在此宣佈推出「來電者的位置在「佇列一次。 這是用來當來電者的位置可能會經常變更 , 以避免來電者聽到多個更新在很短的時間內。",
+            "PERIODICANNOUNCEFREQUENCY": "表示有多久我們應定期公告至來電者。",
+            "ANNOUNCEPOSITIONLIMIT": "如果您已定義發佈位置為限價或更多。",
+            "AFTERCALLWORKDURATION": "時間暫停觸發的通話後工作選項",
+            "MEMBERDELAY": "如果您想要有一種延遲事先來電與佇列成員正在連線到另一台主機。",
+            "MUSICONHOLD": "集音樂類別是由特定的佇列中。",
+            "ANNOUNCETOAGENT": "用於播放公告至值機員接聽來電 , 通常會讓他知道佇列中的來電者是來自。",
+            "RANDOMPERIODICANNOUNCE": "如果設定為「是」 , 將播放定義的定期公告以隨機順序。",
+            "ANNOUNCEHOLDTIME": "定義是否要預估保留時間應在播放時連同定期公告。",
+            "ANNOUNCECALLERPOSITION": "定義是否要來電者的位置在佇列中等候應公佈給她。 如果設定為否 , 位置不會被發佈。 如果設定為「是」、「來電者的位置將會公佈。 如果這個值設定為下限 , 來電者將會聽到她的職位在佇列中只有在所定義的限制發佈位置的限制。 如果這個值設定為較多 , 來電者將會聽到她的職位如果它是超越的號碼來定義發佈位置的限制。",
+            "REPORTHOLDTIMEAGENT": "讓報告的來電者的保留時間至佇列會員之前的橋接。",
+            "PERIODICANNOUNCE": "這是一種週期性宣告才能播放 , 播放留言順序定義。",
+            "HOLDTIMEANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「保留時間」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "YOUARENEXTANNOUNCE": "若未定義 , 將播放的預設值 ( 以下稱「您現在可以先在線」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "THEREAREANNOUNCE": "若未定義 , 將播放的預設值 ( 「有」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "WAITINGCALLSANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「來電待接數量」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「目前的預估等候時間」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "MINUTESANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「分」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "MINUTEANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「分」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "SECONDSANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「秒」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "THANKYOUANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「感謝您的耐心等候」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "AFTERCALLWORK": "如果作用中」、「值機員將會設在暫停在完成通話在佇列",
+            "AUTOPAUSE": "啟用 / 停用「自動暫停的成員無法接聽來電。 如果作用會導致此會員為暫停所有佇列他的成員之一。",
+            "RINGINUSE": "用來避免傳送來電至成員的狀態是在使用中。",
+            "TIMEOUTRESTART": "如果設定為「是」 , 將會重設逾時的值機員可接聽如果是忙線或網路壅塞狀態會收到的通道。",
+            "MONITORFORMAT": "指定的檔案格式時要用錄影。 如果監視器的格式為非作用中通話將不會被記錄下來。",
+            "CONTEXT": "允許來電者離開佇列按一 DTMF 數字。 如果內容是特定的來電者輸入的數字 , 該數字便會嘗試進行匹配的內容中指定之 , 並撥號計畫執行程式將會繼續存在。",
+            "SETINTERFACEVARIABLES": "如果設定為「是」 , 只要事先來電者被以橋接模式的佇列會員部分變數將會設定 ( 請參閱 wiki )",
+            "SETQUEUEVARIABLES": "如果設定為「是」 , 只要事先來電者被以橋接模式的佇列成員和前呼叫者離開佇列部分變數將會設定 ( 請參閱 wiki )",
+            "SETQUEUEENTRYVARIABLES": "如果設定為「是」 , 只要事先來電者被以橋接模式的佇列會員部分變數將會設定 ( 請參閱 wiki )",
+            "RECORDING": "啟用通話記錄",
+            "VOICEMAIL_CONTEXT": "上下文相關的相對的副檔名。",
+            "METHOD": "Outbound Dialer 方法。",
+            "MAXCONCURRENTCALLS": "最大數量的同時通話將會來自外 Dialer ( 撥號器 ) 。",
+            "ORIGINATECALLERIDNAME": "去呼叫者 ID 名稱",
+            "ORIGINATECALLERIDNUMBER": "去呼叫者 ID 號碼",
+            "ORIGINATETIMEOUT": "時間 ( 以秒為單位的原始撥出通話以建立連線。 如果 connectin 沒有既定的起源狀態會無人接聽。",
+            "QUEUETIMEOUT": "時間 ( 以秒為單位的通話將會稍後在「佇列之前就會捨棄",
+            "GLOBALMAXRETRY": "最大次數。連絡人會被稱為再考慮它已關閉",
+            "CONGESTIONMAXRETRY": "最高次數的失敗連絡阻塞原因是稱為再考慮它已關閉",
+            "CONGESTIONRETRYTIME": "以分鐘為單位的時間後再重試連線至某個連絡人失敗的阻塞原因",
+            "BUSYMAXRETRY": "最高次數的失敗連絡人的忙碌原因是稱為再考慮它已關閉",
+            "BUSYRETRYTIME": "以分鐘為單位的時間後再重試連線至某個連絡人失敗的忙碌原因",
+            "NOANSWERMAXRETRY": "最大次數失敗連絡無人接聽理由是稱為再考慮它已關閉",
+            "NOANSWERRETRYTIME": "以分鐘為單位的時間後再重試連線至某個連絡人失敗的無人接聽原因",
+            "POWERLEVEL": "數量的連絡人新增至通話一可用的值機人員。",
+            "PREDICTIVEOPTIMIZATION": "因素來最佳化的預測演算法。",
+            "PREDICTIVEOPTIMIZATIONPERCENTAGE": "多少比例根據選取的預測最佳化外型",
+            "CONCURRENTCALLS": "最大數量的同時通話將會來自外 Dialer ( 撥號器 ) 此項活動。",
+            "PREDICTIVEINTERVAL": "時間間隔 ( 以分鐘為單位 ) 被視為是預測演算法計算數量的來電轉接至產生最佳的預測最佳化外型",
+            "AGENTTIMEOUT": "指定的秒數以環代理的裝置。",
+            "GLOBALINTERVAL": "全球時間間隔拨号器可撥話給聯絡人。 請密切注意當您要修改此欄位。 我們將不負任何責任或義務的遵守狀態自動撥號器相關法律及法規。"
+        },
+        "MUSICONHOLD": "音樂保留通話",
+        "ANNOUNCETOAGENT": "發佈至值機員",
+        "ANNOUNCEMENTS": "公告",
+        "ADVANCED": "進階",
+        "ANNOUNCEFREQUENCY": "發佈頻率",
+        "MINANNOUNCEFREQUENCY": "最小宣佈頻率",
+        "PERIODICANNOUNCEFREQUENCY": "定期公佈頻率",
+        "RANDOMPERIODICANNOUNCE": "隨機定期公佈",
+        "ANNOUNCEHOLDTIME": "宣佈保留時間",
+        "ANNOUNCECALLERPOSITION": "發佈者位置",
+        "ANNOUNCEPOSITIONLIMIT": "宣佈位置限制",
+        "REPORTHOLDTIMEAGENT": "報告值機員保留時間",
+        "PERIODICANNOUNCE": "定期公佈",
+        "HOLDTIMEANNOUNCE": "保留時間公佈",
+        "YOUARENEXTANNOUNCE": "「您是下一次的通告",
+        "THEREAREANNOUNCE": "「有」宣佈",
+        "WAITINGCALLSANNOUNCE": "等候通話發佈",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "預計等候時間公佈",
+        "MINUTESANNOUNCE": "分宣佈",
+        "MINUTEANNOUNCE": "分鐘發佈",
+        "SECONDSANNOUNCE": "秒宣佈",
+        "THANKYOUANNOUNCE": "「謝謝您」宣佈",
+        "AUTOPAUSE": "自動暫停",
+        "AFTERCALLWORK": "通話結束後的後續工作",
+        "AFTERCALLWORKDURATION": "呼叫後工作時間",
+        "RINGINUSE": "環使用中",
+        "MEMBERDELAY": "會員延遲時間",
+        "TIMEOUTRESTART": "逾時重新啟動",
+        "MONITORFORMAT": "錄製格式",
+        "SETINTERFACEVARIABLES": "設定介面變數",
+        "SETQUEUEVARIABLES": "設定佇列變數",
+        "SETQUEUEENTRYVARIABLES": "設定佇列中輸入變數",
+        "CONTEXT": "內容",
+        "SAVE": "儲存",
+        "SETTINGS": "設定",
+        "INBOUNDROUTES": "輸入路由",
+        "PHONENUMBER": "電話號碼",
+        "ADD_INBOUNDROUTE": "新增輸入路由",
+        "EDIT_INBOUNDROUTE": "編輯輸入路由",
+        "DELETE_INBOUNDROUTE": "刪除輸入路由",
+        "ACTIONS": "動作",
+        "OUTBOUNDROUTES": "外路由",
+        "DESTINATIONPATTERN": "目的地型式",
+        "ADD_OUTBOUNDROUTE": "新增外路由",
+        "EDIT_OUTBOUNDROUTE": "編輯外路由",
+        "DELETE_OUTBOUNDROUTE": "刪除外路由",
+        "CUTDIGITS": "裁切數字",
+        "RECORDING": "錄影",
+        "RECORDINGFORMAT": "錄製格式",
+        "INTERNALROUTES": "內部路由器",
+        "ADD_INTERNALROUTE": "新增內部路由",
+        "EDIT_INTERNALROUTE": "編輯內部路由",
+        "DELETE_INTERNALROUTE": "刪除內部路由",
+        "CONTEXTS": "內容",
+        "ADD_CONTEXT": "新增內容",
+        "EDIT_CONTEXT": "編輯內容",
+        "DELETE_CONTEXT": "刪除內容",
+        "VOICEMAILS": "語音信箱",
+        "ADD_VOICEMAIL": "新增語音信箱",
+        "EDIT_VOICEMAIL": "編輯語音信箱",
+        "DELETE_VOICEMAIL": "刪除留言",
+        "FULLNAME": "完整名稱",
+        "EMAIL": "電子郵件",
+        "MAILBOX": "信箱",
+        "PASSWORD": "密碼",
+        "CONFIRM_PASSWORD": "確認密碼",
+        "TIMEZONE": "時區",
+        "ATTACH": "連接",
+        "ENVELOPE": "信封資訊",
+        "DELETE": "刪除",
+        "EMAILBODY": "電子郵件內容",
+        "EMAILSUBJECT": "電子郵件主旨",
+        "MAXSECONDS": "最大秒數",
+        "MAXMESSAGES": "最大訊息",
+        "MESSAGES": "訊息",
+        "SORT": "排序依據",
+        "ADD_MUSICONHOLD": "新增音樂設為保留",
+        "MUSICONHOLDS": "Musics 保留通話",
+        "EDIT_MUSICONHOLD": "編輯音樂設為保留",
+        "DELETE_MUSICONHOLD": "刪除音樂設為保留",
+        "DIRECTORY": "目錄",
+        "AUDIOFILES": "音效檔案",
+        "RECORDINGS": "錄音",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "前置字元",
+        "OPTIONS": "選項",
+        "AUTH": "驗證",
+        "ADD_CHANSPY": "新增 ChanSpy",
+        "EDIT_CHANSPY": "編輯 ChanSpy",
+        "DELETE_CHANSPY": "刪除 ChanSpy",
+        "AGENTS": "值機員",
+        "TELEPHONES": "電話",
+        "QUEUES": "佇列",
+        "QUEUE_CALLS": "佇列通話數",
+        "QUEUE_PARAMETERS": "佇列參數",
+        "ABANDONED_CALLS": "已放棄的通話數",
+        "OUTBOUND_CALLS": "外撥電話",
+        "AGI": "AGI",
+        "DIAL": "撥號",
+        "INTERNALDIAL": "內部撥出",
+        "EXTERNALDIAL": "外接式撥號",
+        "RINGGROUP": "鈴群組",
+        "PLAYBACK": "播放留言",
+        "QUEUE": "佇列",
+        "SET": "設定",
+        "VOICEMAIL": "語音信箱",
+        "GOTO": "「跳到斷線」",
+        "HANGUP": "掛斷",
+        "CUSTOM": "自訂",
+        "PROJECT": "Cally-Square 專案",
+        "TECHNOLOGY/RESOURCE": "技術 / 資源",
+        "URL": "URL",
+        "EDIT_APP": "編輯應用程式",
+        "EDIT_INTERVAL": "編輯時間間隔",
+        "DELETE_APP": "刪除應用程式",
+        "INTERVALS": "時間間隔",
+        "USER": "使用者",
+        "TRUNK": "中繼線",
+        "PHONE": "電話",
+        "AUDIO_FILES": "音效檔案",
+        "ANNOUNCE_OVERRIDES": "宣佈會覆寫",
+        "MACRO": "巨集",
+        "GOSUB": "GoSub",
+        "RULE": "規則",
+        "POSITION": "位置",
+        "ANSWER": "接聽來電",
+        "VALUE": "值",
+        "MAILBOX@CONTEXT": "信箱與內容",
+        "EXTENSION": "分機號碼",
+        "PRIORITY": "優先順序",
+        "HANGUP_CAUSE": "掛斷原因",
+        "OUTBOUNDDIAL": "外撥",
+        "CALLER_ID": "來電者 ID",
+        "NO_MESSAGE_AVAILABLE": "沒有任何訊息",
+        "NO_SOUND_AVAILABLE": "沒有聲音可用性",
+        "VOICERECORDINGS": "語音錄音",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "語音通話",
+        "REALTIME": "即時",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "內容",
+        "NO_MOHSOUND_AVAILABLE": "無音樂保留可用性",
+        "FILE": "檔案",
+        "ADD_MOHSOUND": "新增音樂音效",
+        "DOWNLOAD_MOHSOUND": "下載音樂音效",
+        "DELETE_MOHSOUND": "刪除音樂保留音效",
+        "UNIQUEID": "獨特的識別碼",
+        "AGENT": "值機員",
+        "TYPE": "類型",
+        "RATING": "評等",
+        "AUDIO": "音效",
+        "DATE": "日期",
+        "NEW_VOICEQUEUE": "新的語音通話佇列",
+        "NEW_INBOUNDROUTE": "新增輸入路由",
+        "NEW_OUTBOUNDROUTE": "外傳的新路由",
+        "NEW_INTERNALROUTE": "新增內部路由",
+        "NEW_CONTEXT": "新增內容",
+        "NEW_VOICEMAIL": "新語音留言",
+        "NEW_MUSICONHOLD": "新音樂設為保留",
+        "NEW_CHANSPY": "新 ChanSpy",
+        "PENALTY": "罰款",
+        "ADD_TEAM_TO_VOICEQUEUE": "新增群組語音佇列",
+        "ADD_AGENT_TO_VOICEQUEUE": "新增值機員至語音佇列",
+        "EDIT_DIAL": "編輯撥號",
+        "EDIT_AGI": "編輯 AGI",
+        "EDIT_INTERNALDIAL": "編輯內建撥號",
+        "EDIT_EXTERNALDIAL": "編輯外部撥號",
+        "EDIT_RINGGROUP": "編輯鈴聲群組",
+        "EDIT_PLAYBACK": "編輯播放",
+        "EDIT_QUEUE": "編輯佇列",
+        "EDIT_SET": "編輯設定",
+        "EDIT_GOTO": "編輯跳至",
+        "EDIT_HANGUP": "編輯掛斷",
+        "EDIT_CUSTOM": "編輯自訂",
+        "DURATION": "通話持續時間",
+        "RECEIVED_AT": "接收",
+        "YES": "Yes ( 是 )",
+        "NO": "沒有",
+        "HANGUPCAUSE_1": "1 = 未分配的號碼",
+        "HANGUPCAUSE_16": "16 = Normail 來電清除",
+        "HANGUPCAUSE_17": "17 = 使用者忙線中",
+        "HANGUPCAUSE_18": "18 = 使用者無回應 ( telehone 裝置未連線 )",
+        "HANGUPCAUSE_21": "21 = 來電被拒",
+        "HANGUPCAUSE_22": "22 = 號碼已變更",
+        "HANGUPCAUSE_27": "27 = 目的地的順序",
+        "HANGUPCAUSE_38": "38 = 網路外的醫令",
+        "HANGUPCAUSE_41": "41 = 暫時失敗",
+        "RANDOM": "隨機",
+        "ALPHABETICAL": "按字母順序排列",
+        "NO_APPS_AVAILABLE": "無可用的應用程式",
+        "DOWNLOAD_VOICERECORDING": "下載語音錄音",
+        "DELETE_VOICERECORDING": "刪除語音錄音",
+        "INTERNAL": "內建式",
+        "PHONE_STATE": "電話狀態",
+        "PHONE_STATUS": "電話狀態",
+        "REGISTERED": "已註冊",
+        "UNREGISTERED": "未註冊",
+        "LAGGED": "這段時間",
+        "REACHABLE": "連通性",
+        "UNREACHABLE": "無法到達",
+        "UNKNOWN": "不明",
+        "NOT_INUSE": "非使用中",
+        "INUSE": "使用中",
+        "BUSY": "忙碌中",
+        "INVALID": "無效的",
+        "UNAVAILABLE": "無法使用",
+        "RINGING": "鈴聲",
+        "ONHOLD": "保留通話",
+        "RING": "鈴聲",
+        "UP": "最高",
+        "INFO": "資訊",
+        "TRUNKS": "中繼線運行",
+        "REGISTRY": "登錄",
+        "NO_REGISTRY": "未登錄",
+        "LOGGED_IN": "已登入",
+        "PAUSED": "已暫停",
+        "WAITING": "等候中",
+        "TALKING": "通話中",
+        "DID": "DID",
+        "CALLER": "來電者",
+        "TOTAL": "總金額",
+        "ANSWERED": "接聽數量",
+        "ABANDONED": "已中止",
+        "UNMANAGED": "未受管理",
+        "AVG_HOLD_TIME": "平均保留時間",
+        "AVG_DURATION": "Av 持續時間",
+        "AVG_BILLABLE": "平均可計費",
+        "SOURCE": "來源",
+        "DESTINATION": "目的地",
+        "REJECTED": "遭拒",
+        "FAILED": "失敗",
+        "CALLED": "又稱為",
+        "CONNECTED": "已連線",
+        "NO_RATING": "無評等",
+        "EDIT_VOICERECORDING": "編輯語音錄音",
+        "APPLICATION_NAME": "應用程式名稱",
+        "ARGUMENTS": "引數",
+        "ENABLED": "已啟用",
+        "POWERLEVEL": "功率等級",
+        "DROPRATE": "掉落率",
+        "AGENTBUSYFACTOR": "值機人員忙線規格",
+        "PREDICTIVEOPTIMIZATION": "預測最佳化",
+        "PREDICTIVEOPTIMIZATIONPERCENTAGE": "預測最佳化比例",
+        "READY": "準備就緒",
+        "PAUSE": "暫停",
+        "UNPAUSE": "取消暫停",
+        "DEFAULT_PAUSE": "預設暫停",
+        "AGENTADD_QUEUE": "值機員新增至佇列活動",
+        "AGENTSADD_QUEUE": "將值機員新增到佇列活動",
+        "ALL_TEAMS": "所有群組",
+        "SELECTED_TEAMS": "選取群組",
+        "ALL_LISTS": "所有清單",
+        "SELECTED_LISTS": "選擇清單",
+        "ALL_AGENTS": "所有值機員",
+        "SELECTED_AGENTS": "已選取的值機人員",
+        "IVRCAMPAIGNS": "IVR 活動",
+        "CONCURRENTCALLS": "最大同時通話",
+        "BLACKLISTADD_QUEUECAMPAIGN": "新增黑名單",
+        "DELETE_IVRCAMPAIGN": "刪除項目",
+        "EDIT_IVRCAMPAIGN": "編輯活動",
+        "NEW_IVRCAMPAIGN": "新增 IVR 活動",
+        "ADD_IVRCAMPAIGN": "新增 IVR 活動",
+        "LISTADD_IVRCAMPAIGN": "新增清單",
+        "BLACKLISTADD_IVRCAMPAIGN": "新增黑名單",
+        "HISTORY": "歷程記錄",
+        "FINAL": "最終版",
+        "BLACKLIST": "黑名單",
+        "PREDICTIVEINTERVAL": "預測時間間隔",
+        "WAITING_FOR_AGENT": "等待值機員",
+        "TOTAL_OFFERED": "總數",
+        "RUNNING": "執行",
+        "INTERVAL_IS_OVERTIME": "時間間隔是加班",
+        "TRUNK_IS_NOT_REACHABLE": "主幹是無法接通",
+        "AGENTS_NOT_LOGGED": "值機員尚未登入",
+        "NOT_ACTIVE": "非作用中",
+        "AVAILABLE_CONTACTS_FINISHED": "可用的連絡人已完成",
+        "SCHEDULEDAT": "排程於",
+        "HOPPERBLACKS": "料斗黑名單",
+        "NO_HOPPERBLACK_AVAILABLE": "無項目可供使用",
+        "HOPPERFINALS": "料斗最終版",
+        "NO_HOPPERFINAL_AVAILABLE": "無項目可供使用",
+        "HOPPERHISTORIES": "料斗歷程記錄",
+        "NO_HOPPERHISTORY_AVAILABLE": "無項目可供使用",
+        "DELETE_HOPPERHISTORY": "刪除",
+        "DELETE_HOPPERFINAL": "刪除",
+        "CONTACTID": "聯絡人 ID",
+        "STARTTIME": "開始時間",
+        "RESPONSETIME": "回應時間",
+        "ENDTIME": "結束時間",
+        "STATUS": "狀態",
+        "HOPPERS": "料斗",
+        "NO_HOPPER_AVAILABLE": "無項目可供使用",
+        "EDIT_HOPPER": "編輯料斗",
+        "DELETE_HOPPER": "刪除料斗",
+        "AGENTTIMEOUT": "值機人員等候逾時",
+        "DISPOSITION": "配置",
+        "REDIRECT_TO_NUMBER": "將來電轉接至的號碼",
+        "REDIRECT_TO_AGENT": "將來電轉接給值機人員",
+        "CLOSING": "關閉",
+        "MANAGED": "管理",
+        "BACKUPTRUNK": "備份中繼線",
+        "GLOBALINTERVAL": "全球時間間隔",
+        "RESCHEDULED_CONTACTS": "重新排程 [ 連絡人 ]",
+        "INTERVAL_IS_NULL": "間隔時間為空值",
+        "TIMEZONE_UNKNOW": "時區未知",
+        "INTERVAL_IS_EMPTY": "間隔為空白",
+        "LOGOUT": "登出",
+        "EDIT_CAMPAIGN": "編輯活動",
+        "LIMITED": "有限",
+        "IVR_CAMPAIGNS": "Ivr 活動",
+        "IS_DISACTIVED": "是 Disactived",
+        "TOTAL_MANAGED": "總管理"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/da.json b/public/app/main/apps/openchannel/i18n/da.json
new file mode 100644 (file)
index 0000000..0f3a1b7
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Navnet",
+        "OPENCHANNELQUEUES": "Åben Kanal køer",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten Timeout er påkrævet",
+            "MOTIONADDRESS_REQUIRED": "Motion Adresse skal angives.",
+            "MOTIONADDRESS_MUST_VALID_URL": "Motion adresse skal være skrevet i et gyldigt format",
+            "ACCEPTURL_MUST_VALID_URL": "Det acceptere URL skal være skrevet i et gyldigt format",
+            "TIMEOUT_REQUIRED": "Timeout er påkrævet",
+            "REJECTURL_MUST_VALID_URL": "Reject-URL skal være skrevet i et gyldigt format",
+            "CLOSEURL_MUST_VALID_URL": "Den tætte URL skal være skrevet i et gyldigt format"
+        },
+        "STRATEGY": "Strategi",
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_OPENCHANNELQUEUE": "Tilføj åben kanal kø",
+        "EDIT_OPENCHANNELQUEUE": "Rediger åbne kanal kø",
+        "DELETE_OPENCHANNELQUEUE": "Slette en åben kanal kø",
+        "CREATED_AT": "Oprettet på",
+        "SAVE": "Gem",
+        "SETTINGS": "Indstillinger",
+        "GENERAL": "Generel",
+        "OPENCHANNELACCOUNTS": "Åben Kanal konti",
+        "MOTIONADDRESS": "Motion adresse",
+        "ADD_OPENCHANNELACCOUNT": "Tilføj Open Channel Account",
+        "EDIT_OPENCHANNELACCOUNT": "Rediger Open Channel Account",
+        "DELETE_OPENCHANNELACCOUNT": "Slet Open Channel Account",
+        "API": "API",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Handlinger",
+        "LIST": "Listen",
+        "FIDELITY": "Fidelity",
+        "ACCEPT": "Accepter",
+        "ACCEPTMETHOD": "Acceptere metode",
+        "ACCEPTURL": "Acceptere URL",
+        "REJECT": "Afvis",
+        "REJECTMETHOD": "Afvis metode",
+        "REJECTURL": "Afvis URL",
+        "CLOSE": "Luk",
+        "CLOSEMETHOD": "Luk metode",
+        "CLOSEURL": "Luk URL",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "BACK": "Tilbage",
+        "OPENCHANNEL": "Åben kanal",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "OPENCHANNELDISPOSITIONS": "Åben Kanal Dispositions",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Ingen åben kanal Dispositions tilgængelig",
+        "NEW_OPENCHANNELDISPOSITION": "Ny Åben Kanal Disp.",
+        "ADD_OPENCHANNELDISPOSITION": "Tilføj åben kanal disp.",
+        "EDIT_OPENCHANNELDISPOSITION": "Rediger Open Channel Disp.",
+        "DELETE_OPENCHANNELDISPOSITION": "Slette en åben kanal disp.",
+        "NEW_OPENCHANNELQUEUE": "Ny Åben kanal kø",
+        "NEW_OPENCHANNELACCOUNT": "Nye Open Channel Account",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "ALL_TEAMS": "Alle hold",
+        "SELECTED_TEAMS": "Udvalgte Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/de.json b/public/app/main/apps/openchannel/i18n/de.json
new file mode 100644 (file)
index 0000000..d85f049
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Name",
+        "OPENCHANNELQUEUES": "Offener Kanal Warteschlangen",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "AGENT_TIMEOUT_REQUIRED": "Der Agent Timeout ist erforderlich",
+            "MOTIONADDRESS_REQUIRED": "Die Adresse ist erforderlich",
+            "MOTIONADDRESS_MUST_VALID_URL": "Die Adresse muss in einem gültigen Format",
+            "ACCEPTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+            "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+            "REJECTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+            "CLOSEURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format"
+        },
+        "STRATEGY": "Strategie",
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Beschreibung",
+        "ADD_OPENCHANNELQUEUE": "Fügen Sie im Offenen Kanal Warteschlange",
+        "EDIT_OPENCHANNELQUEUE": "Offener Kanal Warteschlange bearbeiten",
+        "DELETE_OPENCHANNELQUEUE": "Löschen der Warteschlange im Offenen Kanal",
+        "CREATED_AT": "Erstellt am",
+        "SAVE": "Speichern",
+        "SETTINGS": "Einstellungen",
+        "GENERAL": "Allgemein",
+        "OPENCHANNELACCOUNTS": "Offener Kanal Konten",
+        "MOTIONADDRESS": "Motion Adresse",
+        "ADD_OPENCHANNELACCOUNT": "Öffnen Sie den Channel Account hinzufügen",
+        "EDIT_OPENCHANNELACCOUNT": "Öffnen Sie den Channel Account bearbeiten",
+        "DELETE_OPENCHANNELACCOUNT": "Öffnen Sie den Channel Account löschen.",
+        "API": "API",
+        "DISPOSITIONS": "Bestimmungen",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Aktionen",
+        "LIST": "Liste",
+        "FIDELITY": "Treue",
+        "ACCEPT": "Akzeptieren",
+        "ACCEPTMETHOD": "Die Methode",
+        "ACCEPTURL": "URL akzeptieren",
+        "REJECT": "Ablehnen",
+        "REJECTMETHOD": "Methode ablehnen",
+        "REJECTURL": "URL ablehnen",
+        "CLOSE": "In der Nähe",
+        "CLOSEMETHOD": "In der Nähe Methode",
+        "CLOSEURL": "Der URL",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "BACK": "Zurück",
+        "OPENCHANNEL": "Offener Kanal",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "OPENCHANNELDISPOSITIONS": "Offener Kanal Verfügungen",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Keine offenen Kanal Dispositionen verfügbar",
+        "NEW_OPENCHANNELDISPOSITION": "Neue Offene Kanal inspektion",
+        "ADD_OPENCHANNELDISPOSITION": "Fügen Sie im Offenen Kanal inspektion",
+        "EDIT_OPENCHANNELDISPOSITION": "Bearbeiten Sie im Offenen Kanal inspektion",
+        "DELETE_OPENCHANNELDISPOSITION": "Löschen Sie im Offenen Kanal inspektion",
+        "NEW_OPENCHANNELQUEUE": "Neue Offene Kanal Warteschlange",
+        "NEW_OPENCHANNELACCOUNT": "Neue Open Channel Account",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "ALL_TEAMS": "Alle Mannschaften",
+        "SELECTED_TEAMS": "Ausgewählte Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/en.json b/public/app/main/apps/openchannel/i18n/en.json
new file mode 100644 (file)
index 0000000..4cf27a6
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Name",
+        "OPENCHANNELQUEUES": "Open Channel Queues",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is required",
+            "AGENT_TIMEOUT_REQUIRED": "The Agent Timeout is required",
+            "MOTIONADDRESS_REQUIRED": "The Motion Address is required",
+            "MOTIONADDRESS_MUST_VALID_URL": "The Motion Address must be written in a valid format",
+            "ACCEPTURL_MUST_VALID_URL": "The Accept URL must be written in a valid format",
+            "TIMEOUT_REQUIRED": "The Timeout is required",
+            "REJECTURL_MUST_VALID_URL": "The Reject URL must be written in a valid format",
+            "CLOSEURL_MUST_VALID_URL": "The Close URL must be written in a valid format"
+        },
+        "STRATEGY": "Strategy",
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Description",
+        "ADD_OPENCHANNELQUEUE": "Add Open Channel Queue",
+        "EDIT_OPENCHANNELQUEUE": "Edit Open Channel Queue",
+        "DELETE_OPENCHANNELQUEUE": "Delete Open Channel Queue",
+        "CREATED_AT": "Created At",
+        "SAVE": "Save",
+        "SETTINGS": "Settings",
+        "GENERAL": "General",
+        "OPENCHANNELACCOUNTS": "Open Channel Accounts",
+        "MOTIONADDRESS": "Motion Address",
+        "ADD_OPENCHANNELACCOUNT": "Add Open Channel Account",
+        "EDIT_OPENCHANNELACCOUNT": "Edit Open Channel Account",
+        "DELETE_OPENCHANNELACCOUNT": "Delete Open Channel Account",
+        "API": "API",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Actions",
+        "LIST": "List",
+        "FIDELITY": "Fidelity",
+        "ACCEPT": "Accept",
+        "ACCEPTMETHOD": "Accept Method",
+        "ACCEPTURL": "Accept URL",
+        "REJECT": "Reject",
+        "REJECTMETHOD": "Reject Method",
+        "REJECTURL": "Reject URL",
+        "CLOSE": "Close",
+        "CLOSEMETHOD": "Close Method",
+        "CLOSEURL": "Close URL",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "BACK": "Back",
+        "OPENCHANNEL": "Open Channel",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "OPENCHANNELDISPOSITIONS": "Open Channel Dispositions",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "No Open Channel Dispositions available",
+        "NEW_OPENCHANNELDISPOSITION": "New Open Channel Disposition",
+        "ADD_OPENCHANNELDISPOSITION": "Add Open Channel Disposition",
+        "EDIT_OPENCHANNELDISPOSITION": "Edit Open Channel Disposition",
+        "DELETE_OPENCHANNELDISPOSITION": "Delete Open Channel Disposition",
+        "NEW_OPENCHANNELQUEUE": "New Open channel Queue",
+        "NEW_OPENCHANNELACCOUNT": "New Open channel Account",
+        "NO_AVAILABLE_INFO": "No available info",
+        "ALL_TEAMS": "All Teams",
+        "SELECTED_TEAMS": "Selected Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/es.json b/public/app/main/apps/openchannel/i18n/es.json
new file mode 100644 (file)
index 0000000..8e00f39
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Nombre",
+        "OPENCHANNELQUEUES": "Colas de canal abierto",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "AGENT_TIMEOUT_REQUIRED": "El agente se requiere tiempo de espera",
+            "MOTIONADDRESS_REQUIRED": "Se requiere una dirección de movimiento",
+            "MOTIONADDRESS_MUST_VALID_URL": "La dirección de movimiento deben escribirse en un formato válido",
+            "ACCEPTURL_MUST_VALID_URL": "Aceptar la URL debe estar escrito en un formato válido",
+            "TIMEOUT_REQUIRED": "El tiempo de espera es necesario",
+            "REJECTURL_MUST_VALID_URL": "Rechazar la URL debe estar escrito en un formato válido",
+            "CLOSEURL_MUST_VALID_URL": "La estrecha URL debe ser escrito en un formato válido"
+        },
+        "STRATEGY": "Estrategia",
+        "AGENT_TIMEOUT": "Tiempo de espera del agente",
+        "DESCRIPTION": "Descripción",
+        "ADD_OPENCHANNELQUEUE": "Añadir cola de Canal Abierto",
+        "EDIT_OPENCHANNELQUEUE": "Editar canal abierto cola",
+        "DELETE_OPENCHANNELQUEUE": "Eliminar la cola de Canal Abierto",
+        "CREATED_AT": "Creado en",
+        "SAVE": "Guardar",
+        "SETTINGS": "Configuración",
+        "GENERAL": "General",
+        "OPENCHANNELACCOUNTS": "Abrir cuentas de canal",
+        "MOTIONADDRESS": "Dirección de movimiento",
+        "ADD_OPENCHANNELACCOUNT": "Agregar cuenta de Canal Abierto",
+        "EDIT_OPENCHANNELACCOUNT": "Editar Cuenta de Canal Abierto",
+        "DELETE_OPENCHANNELACCOUNT": "Borrar la cuenta del canal abierto",
+        "API": "API",
+        "DISPOSITIONS": "Disposiciones",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acciones",
+        "LIST": "Lista",
+        "FIDELITY": "Fidelidad",
+        "ACCEPT": "Aceptar",
+        "ACCEPTMETHOD": "Aceptar el método",
+        "ACCEPTURL": "Aceptar URL",
+        "REJECT": "Rechazar",
+        "REJECTMETHOD": "Método de rechazo",
+        "REJECTURL": "Rechazar URL",
+        "CLOSE": "Cerrar",
+        "CLOSEMETHOD": "Método Close",
+        "CLOSEURL": "Cerrar URL",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "BACK": "Volver",
+        "OPENCHANNEL": "Canal abierto",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "OPENCHANNELDISPOSITIONS": "Disposiciones de canal abierto",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "No hay disposiciones de canal abierto disponible",
+        "NEW_OPENCHANNELDISPOSITION": "Nueva disposición de Canal Abierto",
+        "ADD_OPENCHANNELDISPOSITION": "Agregar canal abierto Disposición",
+        "EDIT_OPENCHANNELDISPOSITION": "Editar canal abierto Disposición",
+        "DELETE_OPENCHANNELDISPOSITION": "Eliminar la disposición de Canal Abierto",
+        "NEW_OPENCHANNELQUEUE": "Nueva cola de canal abierto",
+        "NEW_OPENCHANNELACCOUNT": "Nueva cuenta de canal abierto",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "ALL_TEAMS": "Todos los equipos",
+        "SELECTED_TEAMS": "Los equipos seleccionados"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/fa.json b/public/app/main/apps/openchannel/i18n/fa.json
new file mode 100644 (file)
index 0000000..4a615e3
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "نام",
+        "OPENCHANNELQUEUES": "صفهای طولانی کانال باز",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "AGENT_TIMEOUT_REQUIRED": "عامل پایان زمان لازم است.",
+            "MOTIONADDRESS_REQUIRED": "آدرس حركت لازم است.",
+            "MOTIONADDRESS_MUST_VALID_URL": "حركت باید آدرس را در یک فرمت معتبر نوشته شده است",
+            "ACCEPTURL_MUST_VALID_URL": "از پذیرفتن باید آدرس کامل را در یک فرمت معتبر نوشته شده است",
+            "TIMEOUT_REQUIRED": "در پایان زمان لازم است.",
+            "REJECTURL_MUST_VALID_URL": "آدرس کامل را رد كند بايد در فرمت معتبر نوشته شده است",
+            "CLOSEURL_MUST_VALID_URL": "آدرس کامل باید بسته به فرمت معتبر نوشته شده است"
+        },
+        "STRATEGY": "استراتژي",
+        "AGENT_TIMEOUT": "عامل زمان مجاز",
+        "DESCRIPTION": "شرح",
+        "ADD_OPENCHANNELQUEUE": "افزودن کانال باز صف",
+        "EDIT_OPENCHANNELQUEUE": "ویرایش کانال باز صف",
+        "DELETE_OPENCHANNELQUEUE": "کانال باز صف حذف می شود",
+        "CREATED_AT": "ایجاد شده در",
+        "SAVE": "ذخیره",
+        "SETTINGS": "تنظیمات",
+        "GENERAL": "سردار",
+        "OPENCHANNELACCOUNTS": "باز کردن حساب های کانال",
+        "MOTIONADDRESS": "حركت آدرس",
+        "ADD_OPENCHANNELACCOUNT": "افزودن اشتراک کانال باز",
+        "EDIT_OPENCHANNELACCOUNT": "ویرایش اشتراک کانال باز",
+        "DELETE_OPENCHANNELACCOUNT": "حذف اشتراک کانال باز",
+        "API": "API",
+        "DISPOSITIONS": "مكتبى",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "اقدامات",
+        "LIST": "فهرست",
+        "FIDELITY": "وفاداري",
+        "ACCEPT": "پذیرفتن",
+        "ACCEPTMETHOD": "اين روش را قبول",
+        "ACCEPTURL": "آدرس کامل قبول",
+        "REJECT": "رد كردن",
+        "REJECTMETHOD": "روش رد",
+        "REJECTURL": "آدرس کامل رد",
+        "CLOSE": "بستن",
+        "CLOSEMETHOD": "روش بستن",
+        "CLOSEURL": "آدرس کامل ببندید",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "BACK": "پشت",
+        "OPENCHANNEL": "کانال را باز کنید",
+        "ID": "شناسه",
+        "TIMEOUT": "پایان زمان مجاز",
+        "OPENCHANNELDISPOSITIONS": "کانال مكتبى را باز کنید",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "هيچ مكتبى کانال باز موجود است",
+        "NEW_OPENCHANNELDISPOSITION": "باز کردن کانال جديد 1626",
+        "ADD_OPENCHANNELDISPOSITION": "افزودن 1626 کانال را باز کنید",
+        "EDIT_OPENCHANNELDISPOSITION": "ویرایش 1626 کانال را باز کنید",
+        "DELETE_OPENCHANNELDISPOSITION": "حذف 1626 کانال را باز کنید",
+        "NEW_OPENCHANNELQUEUE": "باز کردن کانال جدید صف",
+        "NEW_OPENCHANNELACCOUNT": "اشتراک جدید کانال باز",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "ALL_TEAMS": "همه تیم ها",
+        "SELECTED_TEAMS": "تيم هاي برگزيده"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/fi.json b/public/app/main/apps/openchannel/i18n/fi.json
new file mode 100644 (file)
index 0000000..7c60cbb
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Nimi",
+        "OPENCHANNELQUEUES": "Avoimen kanavan jonot",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "AGENT_TIMEOUT_REQUIRED": "Asiakaspalvelijan aikakatkaisu on pakollinen",
+            "MOTIONADDRESS_REQUIRED": "Liikkeen osoite on pakollinen tieto",
+            "MOTIONADDRESS_MUST_VALID_URL": "Liikkeen osoite on kirjoitettava kelvollisessa muodossa",
+            "ACCEPTURL_MUST_VALID_URL": "Hyväksy URL on kirjoitettava kelvollisessa muodossa",
+            "TIMEOUT_REQUIRED": "Aikakatkaisujakso on pakollinen",
+            "REJECTURL_MUST_VALID_URL": "Hylätyt URL on kirjoitettava kelvollisessa muodossa",
+            "CLOSEURL_MUST_VALID_URL": "Sulje URL on kirjoitettava kelvollisessa muodossa"
+        },
+        "STRATEGY": "Strategia",
+        "AGENT_TIMEOUT": "Agentti aikakatkaisu",
+        "DESCRIPTION": "Kuvaus",
+        "ADD_OPENCHANNELQUEUE": "Lisää avointa kanavaa jono",
+        "EDIT_OPENCHANNELQUEUE": "Muokkaa avoimen kanavan jono",
+        "DELETE_OPENCHANNELQUEUE": "Poista avoimen kanavan jono",
+        "CREATED_AT": "Luodaan",
+        "SAVE": "Tallenna",
+        "SETTINGS": "Asetusten määrittäminen",
+        "GENERAL": "Yleistä",
+        "OPENCHANNELACCOUNTS": "Avoimen kanavan tilit",
+        "MOTIONADDRESS": "Liikkeen osoite",
+        "ADD_OPENCHANNELACCOUNT": "Lisää avointa kanavaa tili",
+        "EDIT_OPENCHANNELACCOUNT": "Avaa Edit Channel Account",
+        "DELETE_OPENCHANNELACCOUNT": "Poista Open Channel Account",
+        "API": "API",
+        "DISPOSITIONS": "Yhteisyys",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Toimet",
+        "LIST": "Luettelo",
+        "FIDELITY": "Epätarkkaan äänentoistoon",
+        "ACCEPT": "Hyväksy",
+        "ACCEPTMETHOD": "Hyväksy menetelmä",
+        "ACCEPTURL": "Hyväksy URL",
+        "REJECT": "Hylkää",
+        "REJECTMETHOD": "Hylkää menetelmä",
+        "REJECTURL": "Hylkää URL",
+        "CLOSE": "Sulje",
+        "CLOSEMETHOD": "Sulje menetelmä",
+        "CLOSEURL": "Sulje URL",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "BACK": "Takaisin",
+        "OPENCHANNEL": "Avointa kanavaa",
+        "ID": "Tunnus",
+        "TIMEOUT": "Aikakatkaisu",
+        "OPENCHANNELDISPOSITIONS": "Avoimen kanavan yhteisyys",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Mitään avointa kanavaa yhteisyys käytettävissä",
+        "NEW_OPENCHANNELDISPOSITION": "Uuden avoimen kanavan jatkokäsittely",
+        "ADD_OPENCHANNELDISPOSITION": "Lisää avointa kanavaa jatkokäsittely",
+        "EDIT_OPENCHANNELDISPOSITION": "Muokkaa avoimen kanavan jatkokäsittely",
+        "DELETE_OPENCHANNELDISPOSITION": "Poista avoimen kanavan jatkokäsittely",
+        "NEW_OPENCHANNELQUEUE": "Uuden avoimen kanavan jono",
+        "NEW_OPENCHANNELACCOUNT": "Uuden avoimen channel Account",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "ALL_TEAMS": "Kaikki joukkueet",
+        "SELECTED_TEAMS": "Valittu työryhmille"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/fr.json b/public/app/main/apps/openchannel/i18n/fr.json
new file mode 100644 (file)
index 0000000..5ee6a2a
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Nom",
+        "OPENCHANNELQUEUES": "Les files d'Canal ouvert",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "AGENT_TIMEOUT_REQUIRED": "L'Agent est nécessaire",
+            "MOTIONADDRESS_REQUIRED": "La motion est nécessaire",
+            "MOTIONADDRESS_MUST_VALID_URL": "La motion doit être écrit dans un format valide",
+            "ACCEPTURL_MUST_VALID_URL": "Accepter l'URL doit être écrit dans un format valide",
+            "TIMEOUT_REQUIRED": "Le délai est nécessaire",
+            "REJECTURL_MUST_VALID_URL": "Rejeter l'URL doit être écrit dans un format valide",
+            "CLOSEURL_MUST_VALID_URL": "Fermer l'URL doit être écrit dans un format valide"
+        },
+        "STRATEGY": "Stratégie",
+        "AGENT_TIMEOUT": "Délai d'agent",
+        "DESCRIPTION": "Description",
+        "ADD_OPENCHANNELQUEUE": "Ajouter attente de canal ouvert",
+        "EDIT_OPENCHANNELQUEUE": "Modifier Ouvrir attente de canal",
+        "DELETE_OPENCHANNELQUEUE": "Supprimer d'attente de canal ouvert",
+        "CREATED_AT": "Créé à",
+        "SAVE": "Sauvegarder",
+        "SETTINGS": "Settings",
+        "GENERAL": "Général",
+        "OPENCHANNELACCOUNTS": "Comptes en canal ouvert",
+        "MOTIONADDRESS": "Adresse Motion",
+        "ADD_OPENCHANNELACCOUNT": "Ajouter compte Canal ouvert",
+        "EDIT_OPENCHANNELACCOUNT": "Modifier compte Canal ouvert",
+        "DELETE_OPENCHANNELACCOUNT": "Supprimer compte Canal ouvert",
+        "API": "API",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Actions",
+        "LIST": "Liste",
+        "FIDELITY": "Fidelity",
+        "ACCEPT": "Accepter",
+        "ACCEPTMETHOD": "Méthode d'accepter",
+        "ACCEPTURL": "Accepter URL",
+        "REJECT": "Rejeter",
+        "REJECTMETHOD": "Méthode de rejet",
+        "REJECTURL": "Rejeter les URL",
+        "CLOSE": "Fermer",
+        "CLOSEMETHOD": "Méthode Close",
+        "CLOSEURL": "URL Fermer",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "BACK": "Retour",
+        "OPENCHANNEL": "Canal ouvert",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "OPENCHANNELDISPOSITIONS": "Dispositions Canal ouvert",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Pas d'ouverture de la disposition des canaux disponibles",
+        "NEW_OPENCHANNELDISPOSITION": "Nouvelle disposition Canal ouvert",
+        "ADD_OPENCHANNELDISPOSITION": "Ajouter un canal à la disposition",
+        "EDIT_OPENCHANNELDISPOSITION": "Modifier la disposition de canal ouvert",
+        "DELETE_OPENCHANNELDISPOSITION": "Supprimer la disposition Canal ouvert",
+        "NEW_OPENCHANNELQUEUE": "Nouvelle attente de canal ouvert",
+        "NEW_OPENCHANNELACCOUNT": "Nouveau compte de canal ouvert",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "ALL_TEAMS": "Toutes les équipes",
+        "SELECTED_TEAMS": "Les équipes sélectionnées"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/hi.json b/public/app/main/apps/openchannel/i18n/hi.json
new file mode 100644 (file)
index 0000000..630f945
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "नाम",
+        "OPENCHANNELQUEUES": "खुले चैनल कतार",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "AGENT_TIMEOUT_REQUIRED": "एजेंट समयबाह्य अपेक्षित है।",
+            "MOTIONADDRESS_REQUIRED": "अभिभाषण के प्रस्ताव की आवश्यकता है।",
+            "MOTIONADDRESS_MUST_VALID_URL": "यह प्रस्ताव एक मान्य स्वरूप में लिखा होना पता",
+            "ACCEPTURL_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना URL को स्वीकार करें",
+            "TIMEOUT_REQUIRED": "इस समय की आवश्यकता है।",
+            "REJECTURL_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना URL को अस्वीकार करें",
+            "CLOSEURL_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना URL के निकट"
+        },
+        "STRATEGY": "रणनीति",
+        "AGENT_TIMEOUT": "एजेंट समयबाह्य",
+        "DESCRIPTION": "वर्णन",
+        "ADD_OPENCHANNELQUEUE": "खुले चैनल जोड़ें कतार",
+        "EDIT_OPENCHANNELQUEUE": "संपादित करने के लिए खुले चैनल कतार",
+        "DELETE_OPENCHANNELQUEUE": "खुले चैनल मिटाएं कतार",
+        "CREATED_AT": "सृजित",
+        "SAVE": "सहेजें",
+        "SETTINGS": "सेटिंग्स",
+        "GENERAL": "सामान्य",
+        "OPENCHANNELACCOUNTS": "लेखा चैनल खोलें",
+        "MOTIONADDRESS": "प्रस्ताव के पते",
+        "ADD_OPENCHANNELACCOUNT": "खाता जोड़ने के लिए खुले चैनल",
+        "EDIT_OPENCHANNELACCOUNT": "खाता खोलने के लिए संपादित चैनल",
+        "DELETE_OPENCHANNELACCOUNT": "खाता खोलें चैनल मिटाएं",
+        "API": "नोट्स API",
+        "DISPOSITIONS": "प्रवृतियों",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "क्रियाएं",
+        "LIST": "की सूची",
+        "FIDELITY": "वास्तविक",
+        "ACCEPT": "स्वीकार करना",
+        "ACCEPTMETHOD": "तरीका स्वीकार करें",
+        "ACCEPTURL": "स्वीकार किए गए URL",
+        "REJECT": "अस्वीकार करना",
+        "REJECTMETHOD": "अस्वीकार पद्धति",
+        "REJECTURL": "URL अस्वीकार करें",
+        "CLOSE": "निकट",
+        "CLOSEMETHOD": "निकट पद्धति",
+        "CLOSEURL": "बंद किए गए URL",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "BACK": "वापिस",
+        "OPENCHANNEL": "चैनल खोलें",
+        "ID": "Id",
+        "TIMEOUT": "समयबाह्य",
+        "OPENCHANNELDISPOSITIONS": "चैनल प्रवृतियों खोलें",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "कोई खुले चैनल उपलब्ध प्रवृतियों",
+        "NEW_OPENCHANNELDISPOSITION": "नए चैनल मिजाज खोलें",
+        "ADD_OPENCHANNELDISPOSITION": "सरकारीतंत्र चैनल जोड़ें खोलें",
+        "EDIT_OPENCHANNELDISPOSITION": "सरकारीतंत्र चैनल खोलें संपादित करें",
+        "DELETE_OPENCHANNELDISPOSITION": "सरकारीतंत्र चैनल मिटाएं खोलें",
+        "NEW_OPENCHANNELQUEUE": "नई खुले चैनल कतार",
+        "NEW_OPENCHANNELACCOUNT": "खाता खोलने के नए चैनल",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "ALL_TEAMS": "सभी टीमें भाग लेंगी।",
+        "SELECTED_TEAMS": "चयनित टीम"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/it.json b/public/app/main/apps/openchannel/i18n/it.json
new file mode 100644 (file)
index 0000000..bcbab03
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Nome",
+        "OPENCHANNELQUEUES": "Code Open Channel",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "AGENT_TIMEOUT_REQUIRED": "Il Timeout Agente è richiesto",
+            "MOTIONADDRESS_REQUIRED": "L' indirizzo Motion è richiesto",
+            "MOTIONADDRESS_MUST_VALID_URL": "L' Indirizzo Motion deve essere in un formato valido",
+            "ACCEPTURL_MUST_VALID_URL": "L'URL Accetta deve essere in un formato valido",
+            "TIMEOUT_REQUIRED": "Il Timeout è richiesto",
+            "REJECTURL_MUST_VALID_URL": "L'URL Rifiuta deve essere in un formato valido",
+            "CLOSEURL_MUST_VALID_URL": "L'URL Chiudi deve essere in un formato valido"
+        },
+        "STRATEGY": "Strategia",
+        "AGENT_TIMEOUT": "Timeout Agente",
+        "DESCRIPTION": "Descrizione",
+        "ADD_OPENCHANNELQUEUE": "Aggiungi Coda Open Channel",
+        "EDIT_OPENCHANNELQUEUE": "Modifica Coda Open Channel",
+        "DELETE_OPENCHANNELQUEUE": "Elimina Coda Open Channel",
+        "CREATED_AT": "Creato il",
+        "SAVE": "Salva",
+        "SETTINGS": "Impostazioni",
+        "GENERAL": "Generale",
+        "OPENCHANNELACCOUNTS": "Account Open Channel",
+        "MOTIONADDRESS": "Indirizzo Motion",
+        "ADD_OPENCHANNELACCOUNT": "Aggiungi Account Open Channel",
+        "EDIT_OPENCHANNELACCOUNT": "Modifica Account Open Channel",
+        "DELETE_OPENCHANNELACCOUNT": "Elimina Account Open Channel",
+        "API": "API",
+        "DISPOSITIONS": "Esiti",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Azioni",
+        "LIST": "Lista",
+        "FIDELITY": "Fidelity",
+        "ACCEPT": "Accetta",
+        "ACCEPTMETHOD": "Metodo Accetta",
+        "ACCEPTURL": "URL Accetta",
+        "REJECT": "Rifiuta",
+        "REJECTMETHOD": "Metodo Rifiuta",
+        "REJECTURL": "URL Rifiuta",
+        "CLOSE": "Chiudi",
+        "CLOSEMETHOD": "Metodo Chiudi",
+        "CLOSEURL": "URL Chiudi",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutti",
+        "SELECT_NONE": "Deseleziona tutti",
+        "BACK": "Indietro",
+        "OPENCHANNEL": "Open Channel",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "OPENCHANNELDISPOSITIONS": "Esiti Open Channel",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Nessun Esito Open Channel disponibile",
+        "NEW_OPENCHANNELDISPOSITION": "Nuovo Esito Open Channel",
+        "ADD_OPENCHANNELDISPOSITION": "Aggiungi Esito Open Channel",
+        "EDIT_OPENCHANNELDISPOSITION": "Modifica Esito Open Channel",
+        "DELETE_OPENCHANNELDISPOSITION": "Elimina Esito Open Channel",
+        "NEW_OPENCHANNELQUEUE": "Nuova Coda Open Channel",
+        "NEW_OPENCHANNELACCOUNT": "Nuovo Account Open Channel",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "ALL_TEAMS": "Tutti i Team",
+        "SELECTED_TEAMS": "Team selezionati"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/ja.json b/public/app/main/apps/openchannel/i18n/ja.json
new file mode 100644 (file)
index 0000000..8386c70
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "名",
+        "OPENCHANNELQUEUES": "オープンチャネルキュー",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "AGENT_TIMEOUT_REQUIRED": "エージェントのタイムアウトが必要",
+            "MOTIONADDRESS_REQUIRED": "モーションのアドレスが必要です",
+            "MOTIONADDRESS_MUST_VALID_URL": "モーションアドレスが有効な形式で記述する必要があります",
+            "ACCEPTURL_MUST_VALID_URL": "「同意します URL に有効な形式で記述する必要があります",
+            "TIMEOUT_REQUIRED": "タイムアウトは必須です",
+            "REJECTURL_MUST_VALID_URL": "拒否 URL に有効な形式で記述する必要があります",
+            "CLOSEURL_MUST_VALID_URL": "閉じる URL を指定します。有効な形式で記述する必要があります"
+        },
+        "STRATEGY": "戦略",
+        "AGENT_TIMEOUT": "エージェントのタイムアウト",
+        "DESCRIPTION": "説明",
+        "ADD_OPENCHANNELQUEUE": "オープンチャネルキューを追加します。",
+        "EDIT_OPENCHANNELQUEUE": "編集オープンチャネルキュー",
+        "DELETE_OPENCHANNELQUEUE": "オープンチャネルキューを削除",
+        "CREATED_AT": "で作成された",
+        "SAVE": "保存",
+        "SETTINGS": "の設定",
+        "GENERAL": "一般的な",
+        "OPENCHANNELACCOUNTS": "チャネルアカウント」を開き",
+        "MOTIONADDRESS": "モーションのアドレス",
+        "ADD_OPENCHANNELACCOUNT": "チャネルを開きます。アカウントを追加します",
+        "EDIT_OPENCHANNELACCOUNT": "編集オープンチャネルアカウント",
+        "DELETE_OPENCHANNELACCOUNT": "チャネルを開きます。アカウントを削除します",
+        "API": "API",
+        "DISPOSITIONS": "ディスポジション",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "アクション",
+        "LIST": "リスト",
+        "FIDELITY": "忠実性",
+        "ACCEPT": "受け入れる",
+        "ACCEPTMETHOD": "方法を受け入れる",
+        "ACCEPTURL": "URL を受け入れ",
+        "REJECT": "拒否",
+        "REJECTMETHOD": "拒否メソッド",
+        "REJECTURL": "拒否 URL",
+        "CLOSE": "閉じる",
+        "CLOSEMETHOD": "Close メソッド",
+        "CLOSEURL": "閉じる URL",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "BACK": "背面",
+        "OPENCHANNEL": "チャネルを開きます。",
+        "ID": "Id",
+        "TIMEOUT": "タイムアウト",
+        "OPENCHANNELDISPOSITIONS": "チャネルのディスポジションを開き",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "チャネルのディスポジションはありません開くことができる",
+        "NEW_OPENCHANNELDISPOSITION": "新しいチャネルを開きます。廃棄",
+        "ADD_OPENCHANNELDISPOSITION": "オープンチャネルディスポジションの追加 ]",
+        "EDIT_OPENCHANNELDISPOSITION": "編集オープンチャネル破棄",
+        "DELETE_OPENCHANNELDISPOSITION": "オープンチャネルのディスポジションを削除",
+        "NEW_OPENCHANNELQUEUE": "新しいチャネルを開きます。キュー",
+        "NEW_OPENCHANNELACCOUNT": "新しいチャネルを開きます。アカウント",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "ALL_TEAMS": "すべてのチーム",
+        "SELECTED_TEAMS": "選択したチーム"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/ko.json b/public/app/main/apps/openchannel/i18n/ko.json
new file mode 100644 (file)
index 0000000..d967a34
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "이름",
+        "OPENCHANNELQUEUES": "채널 대기열을 엽니다.",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "AGENT_TIMEOUT_REQUIRED": "상담원은 제한 시간이 필요합니다.",
+            "MOTIONADDRESS_REQUIRED": "동작 주소가 필요합니다.",
+            "MOTIONADDRESS_MUST_VALID_URL": "동작 주소에 유효한 형식으로 작성되어 있어야 합니다",
+            "ACCEPTURL_MUST_VALID_URL": "동의함 URL 유효한 형식으로 작성되어 있어야 합니다",
+            "TIMEOUT_REQUIRED": "시간 제한이 필요합니다.",
+            "REJECTURL_MUST_VALID_URL": "거부 URL 유효한 형식으로 작성되어 있어야 합니다",
+            "CLOSEURL_MUST_VALID_URL": "닫기 URL 유효한 형식으로 작성되어 있어야 합니다"
+        },
+        "STRATEGY": "전략",
+        "AGENT_TIMEOUT": "상담원 시간 초과",
+        "DESCRIPTION": "설명",
+        "ADD_OPENCHANNELQUEUE": "채널을 열어 대기열에 추가",
+        "EDIT_OPENCHANNELQUEUE": "채널을 열어 편집 대기",
+        "DELETE_OPENCHANNELQUEUE": "채널 큐를 삭제합니다",
+        "CREATED_AT": "생성",
+        "SAVE": "저장",
+        "SETTINGS": "설정",
+        "GENERAL": "일반",
+        "OPENCHANNELACCOUNTS": "채널 계정 열기",
+        "MOTIONADDRESS": "모션 주소",
+        "ADD_OPENCHANNELACCOUNT": "채널 계정 추가",
+        "EDIT_OPENCHANNELACCOUNT": "채널 계정 편집",
+        "DELETE_OPENCHANNELACCOUNT": "채널 계정 삭제",
+        "API": "API",
+        "DISPOSITIONS": "의향",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "동작",
+        "LIST": "목록",
+        "FIDELITY": "정확도",
+        "ACCEPT": "수락",
+        "ACCEPTMETHOD": "승인 방법",
+        "ACCEPTURL": "Url 승인",
+        "REJECT": "거부",
+        "REJECTMETHOD": "거부 방법",
+        "REJECTURL": "Reject URL",
+        "CLOSE": "닫기",
+        "CLOSEMETHOD": "Close 메서드",
+        "CLOSEURL": "닫기 URL",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "BACK": "후면",
+        "OPENCHANNEL": "채널",
+        "ID": "Id",
+        "TIMEOUT": "시간 초과",
+        "OPENCHANNELDISPOSITIONS": "채널 의향 열기",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "사용 가능한 열려진 채널 의향 없음",
+        "NEW_OPENCHANNELDISPOSITION": "새 채널 기질을 열기",
+        "ADD_OPENCHANNELDISPOSITION": "채널을 열 처리 추가",
+        "EDIT_OPENCHANNELDISPOSITION": "채널 기질을 열기 편집",
+        "DELETE_OPENCHANNELDISPOSITION": "채널 기질을 오픈 삭제",
+        "NEW_OPENCHANNELQUEUE": "새 채널 대기열을",
+        "NEW_OPENCHANNELACCOUNT": "새 채널 계정",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "ALL_TEAMS": "모든 팀이",
+        "SELECTED_TEAMS": "선택한 팀에"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/nl.json b/public/app/main/apps/openchannel/i18n/nl.json
new file mode 100644 (file)
index 0000000..502fb77
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Naam",
+        "OPENCHANNELQUEUES": "Open kanaal wachtrijen",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "AGENT_TIMEOUT_REQUIRED": "De Agent Timeout is vereist",
+            "MOTIONADDRESS_REQUIRED": "De Motion Adres is vereist.",
+            "MOTIONADDRESS_MUST_VALID_URL": "De Motion adres moet worden geschreven in een geldige indeling",
+            "ACCEPTURL_MUST_VALID_URL": "Accepteer URL moet worden geschreven in een geldige indeling",
+            "TIMEOUT_REQUIRED": "De timeout is vereist",
+            "REJECTURL_MUST_VALID_URL": "De afwijzing URL moet worden geschreven in een geldige indeling",
+            "CLOSEURL_MUST_VALID_URL": "De nauwe URL moet worden geschreven in een geldige indeling"
+        },
+        "STRATEGY": "Strategie",
+        "AGENT_TIMEOUT": "Time-out agent",
+        "DESCRIPTION": "Beschrijving",
+        "ADD_OPENCHANNELQUEUE": "Voeg Open kanaal wachtrij",
+        "EDIT_OPENCHANNELQUEUE": "Edit Open kanaal wachtrij",
+        "DELETE_OPENCHANNELQUEUE": "Verwijderen Open kanaal wachtrij",
+        "CREATED_AT": "Gemaakt op",
+        "SAVE": "Opslaan",
+        "SETTINGS": "Instellingen",
+        "GENERAL": "Algemeen",
+        "OPENCHANNELACCOUNTS": "Open Kanaal Accounts",
+        "MOTIONADDRESS": "Motion adres",
+        "ADD_OPENCHANNELACCOUNT": "Voeg Open Channel Account",
+        "EDIT_OPENCHANNELACCOUNT": "Edit Open Channel Account",
+        "DELETE_OPENCHANNELACCOUNT": "Verwijderen Open Channel Account",
+        "API": "API",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acties",
+        "LIST": "Lijst",
+        "FIDELITY": "Hifi-geluid",
+        "ACCEPT": "Accepteren",
+        "ACCEPTMETHOD": "Accepteren methode",
+        "ACCEPTURL": "URL accepteren",
+        "REJECT": "Afwijzen",
+        "REJECTMETHOD": "Methode afwijzen",
+        "REJECTURL": "URL afwijzen",
+        "CLOSE": "Dicht",
+        "CLOSEMETHOD": "Sluit methode",
+        "CLOSEURL": "Sluit URL",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "BACK": "Terug",
+        "OPENCHANNEL": "Open kanaal",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "OPENCHANNELDISPOSITIONS": "Open kanaal dispositieven",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Geen Open Kanaal Dispositieven beschikbaar",
+        "NEW_OPENCHANNELDISPOSITION": "Nieuwe open kanaal afvoeren",
+        "ADD_OPENCHANNELDISPOSITION": "Voeg Open kanaal afvoeren",
+        "EDIT_OPENCHANNELDISPOSITION": "Edit Open kanaal afvoeren",
+        "DELETE_OPENCHANNELDISPOSITION": "Verwijderen Open kanaal afvoeren",
+        "NEW_OPENCHANNELQUEUE": "Nieuwe open-wachtrij",
+        "NEW_OPENCHANNELACCOUNT": "Nieuwe Open Channel Account",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "ALL_TEAMS": "Alle teams",
+        "SELECTED_TEAMS": "Geselecteerde teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/no.json b/public/app/main/apps/openchannel/i18n/no.json
new file mode 100644 (file)
index 0000000..4cdf716
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Navn",
+        "OPENCHANNELQUEUES": "Åpen kanal køer",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten tidsavbrudd er nødvendig",
+            "MOTIONADDRESS_REQUIRED": "Bevegelsen adresse er påkrevd",
+            "MOTIONADDRESS_MUST_VALID_URL": "Bevegelsen adresse må være skrevet i et gyldig format",
+            "ACCEPTURL_MUST_VALID_URL": "Godta URL må være skrevet i et gyldig format",
+            "TIMEOUT_REQUIRED": "Tidsavbruddet er nødvendig",
+            "REJECTURL_MUST_VALID_URL": "Avvis URL må være skrevet i et gyldig format",
+            "CLOSEURL_MUST_VALID_URL": "Lukk URL må være skrevet i et gyldig format"
+        },
+        "STRATEGY": "Strategi",
+        "AGENT_TIMEOUT": "Agent tidsavbrudd",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_OPENCHANNELQUEUE": "Legg til åpen kanal kø",
+        "EDIT_OPENCHANNELQUEUE": "Rediger åpen kanal kø",
+        "DELETE_OPENCHANNELQUEUE": "Slette åpen kanal kø",
+        "CREATED_AT": "Opprettet i",
+        "SAVE": "Lagre",
+        "SETTINGS": "Innstillinger",
+        "GENERAL": "Generelt",
+        "OPENCHANNELACCOUNTS": "Åpen kanal kontoer",
+        "MOTIONADDRESS": "Motion adresse",
+        "ADD_OPENCHANNELACCOUNT": "Legg til åpen kanal konto",
+        "EDIT_OPENCHANNELACCOUNT": "Rediger åpen kanal konto",
+        "DELETE_OPENCHANNELACCOUNT": "Slette åpen kanal konto",
+        "API": "API",
+        "DISPOSITIONS": "Disposisjoner",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Tiltak",
+        "LIST": "Liste",
+        "FIDELITY": "Fi",
+        "ACCEPT": "Godta",
+        "ACCEPTMETHOD": "Godta metode",
+        "ACCEPTURL": "Godta URL",
+        "REJECT": "Avvis",
+        "REJECTMETHOD": "Avvis metode",
+        "REJECTURL": "Avvis URL",
+        "CLOSE": "Lukk",
+        "CLOSEMETHOD": "Lukk metode",
+        "CLOSEURL": "Lukk URL",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "BACK": "Tilbake",
+        "OPENCHANNEL": "Åpen kanal",
+        "ID": "Id",
+        "TIMEOUT": "Tidsavbrudd",
+        "OPENCHANNELDISPOSITIONS": "Åpen kanal disposisjoner",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Ingen åpen kanal disposisjoner tilgjengelig",
+        "NEW_OPENCHANNELDISPOSITION": "Ny åpen kanal disposisjon",
+        "ADD_OPENCHANNELDISPOSITION": "Legg til åpen kanal disposisjon",
+        "EDIT_OPENCHANNELDISPOSITION": "Rediger åpen kanal disposisjon",
+        "DELETE_OPENCHANNELDISPOSITION": "Slette åpen kanal disposisjon",
+        "NEW_OPENCHANNELQUEUE": "Ny åpen kanal kø",
+        "NEW_OPENCHANNELACCOUNT": "Ny åpen kanal konto",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "ALL_TEAMS": "Alle grupper",
+        "SELECTED_TEAMS": "Valgte lag"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/pt-PT.json b/public/app/main/apps/openchannel/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..195734f
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Nome",
+        "OPENCHANNELQUEUES": "Filas de canal aberto",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "AGENT_TIMEOUT_REQUIRED": "O Tempo Limite do Agente é necessária",
+            "MOTIONADDRESS_REQUIRED": "O Movimento de endereço é obrigatório",
+            "MOTIONADDRESS_MUST_VALID_URL": "A proposta Endereço deve ser escrito em um formato válido",
+            "ACCEPTURL_MUST_VALID_URL": "A aceitar a URL deve ser escrito em um formato válido",
+            "TIMEOUT_REQUIRED": "O tempo limite é necessária",
+            "REJECTURL_MUST_VALID_URL": "A rejeitar a URL deve ser escrito em um formato válido",
+            "CLOSEURL_MUST_VALID_URL": "A FECHAR A URL deve ser escrito em um formato válido"
+        },
+        "STRATEGY": "Estratégia",
+        "AGENT_TIMEOUT": "Tempo Limite do Agente",
+        "DESCRIPTION": "Descrição",
+        "ADD_OPENCHANNELQUEUE": "Adicionar fila de canal aberto",
+        "EDIT_OPENCHANNELQUEUE": "Editar Canal Aberto Fila",
+        "DELETE_OPENCHANNELQUEUE": "Excluir fila do canal aberto",
+        "CREATED_AT": "Criado em",
+        "SAVE": "Salvar",
+        "SETTINGS": "Definições",
+        "GENERAL": "Geral",
+        "OPENCHANNELACCOUNTS": "Abra Contas de Canal",
+        "MOTIONADDRESS": "Endereço de movimento",
+        "ADD_OPENCHANNELACCOUNT": "Adicionar conta de canal aberto",
+        "EDIT_OPENCHANNELACCOUNT": "Editar conta de canal aberto",
+        "DELETE_OPENCHANNELACCOUNT": "Excluir a conta de canal aberto",
+        "API": "API",
+        "DISPOSITIONS": "Disposições",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acções",
+        "LIST": "Lista",
+        "FIDELITY": "Fidelidade",
+        "ACCEPT": "Aceitar",
+        "ACCEPTMETHOD": "Método de Aceitar",
+        "ACCEPTURL": "Aceitar URL",
+        "REJECT": "Rejeitar",
+        "REJECTMETHOD": "Método de rejeição",
+        "REJECTURL": "Rejeitar URL",
+        "CLOSE": "Fechar",
+        "CLOSEMETHOD": "Método de fechar",
+        "CLOSEURL": "Fechar URL",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "BACK": "De volta",
+        "OPENCHANNEL": "Canal aberto",
+        "ID": "Id",
+        "TIMEOUT": "Timeout",
+        "OPENCHANNELDISPOSITIONS": "Canal aberto disposições",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Nenhum canal aberto disposições disponíveis",
+        "NEW_OPENCHANNELDISPOSITION": "Novo Canal Aberto a disposição",
+        "ADD_OPENCHANNELDISPOSITION": "Adicionar canal aberto a disposição",
+        "EDIT_OPENCHANNELDISPOSITION": "Editar Canal Aberto a disposição",
+        "DELETE_OPENCHANNELDISPOSITION": "Excluir canal aberto a disposição",
+        "NEW_OPENCHANNELQUEUE": "Nova fila de canal aberto",
+        "NEW_OPENCHANNELACCOUNT": "Nova conta de canal aberto",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "ALL_TEAMS": "Todas as equipas",
+        "SELECTED_TEAMS": "Equipes selecionadas"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/ru.json b/public/app/main/apps/openchannel/i18n/ru.json
new file mode 100644 (file)
index 0000000..ce0559e
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Имя",
+        "OPENCHANNELQUEUES": "Открыть канал очередей",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "AGENT_TIMEOUT_REQUIRED": "Оператор - тайм-аут требуется",
+            "MOTIONADDRESS_REQUIRED": "Движение адрес не требуется",
+            "MOTIONADDRESS_MUST_VALID_URL": "Движение адрес должен быть записан в действительный формат",
+            "ACCEPTURL_MUST_VALID_URL": "Принять URL должен быть записан в действительный формат",
+            "TIMEOUT_REQUIRED": "Тайм-аут не требуется",
+            "REJECTURL_MUST_VALID_URL": "Отклонить URL должен быть записан в действительный формат",
+            "CLOSEURL_MUST_VALID_URL": "Закрыть адрес URL должен быть записан в действительный формат"
+        },
+        "STRATEGY": "Стратегия",
+        "AGENT_TIMEOUT": "Время ожидания оператора",
+        "DESCRIPTION": "Описание",
+        "ADD_OPENCHANNELQUEUE": "Добавить открытый канал очереди",
+        "EDIT_OPENCHANNELQUEUE": "Редактировать открытый канал очереди",
+        "DELETE_OPENCHANNELQUEUE": "Удалить открытый канал очереди",
+        "CREATED_AT": "Созданные в",
+        "SAVE": "Сохранить",
+        "SETTINGS": "Настройки",
+        "GENERAL": "Генеральной",
+        "OPENCHANNELACCOUNTS": "Открыть канал счетов",
+        "MOTIONADDRESS": "Адрес движения",
+        "ADD_OPENCHANNELACCOUNT": "Добавить открытый канал счета",
+        "EDIT_OPENCHANNELACCOUNT": "Редактировать открытый канал счета",
+        "DELETE_OPENCHANNELACCOUNT": "Удалить открытый канал счета",
+        "API": "API",
+        "DISPOSITIONS": "Распоряжения",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Действия",
+        "LIST": "Список",
+        "FIDELITY": "Четкость",
+        "ACCEPT": "Согласиться с",
+        "ACCEPTMETHOD": "Принять метод",
+        "ACCEPTURL": "Согласиться с URL",
+        "REJECT": "Отклонить",
+        "REJECTMETHOD": "Отклонить метод",
+        "REJECTURL": "Отклонить URL",
+        "CLOSE": "Закрыть",
+        "CLOSEMETHOD": "Закройте метод",
+        "CLOSEURL": "Закрыть URL",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "BACK": "Назад",
+        "OPENCHANNEL": "Открыть канал",
+        "ID": "Id",
+        "TIMEOUT": "Превышение лимита времени",
+        "OPENCHANNELDISPOSITIONS": "Открыть канал распоряжения",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Нет открытого канала ликвидаций имеющихся",
+        "NEW_OPENCHANNELDISPOSITION": "Новый открытый канал распоряжения",
+        "ADD_OPENCHANNELDISPOSITION": "Добавить открытый канал распоряжения",
+        "EDIT_OPENCHANNELDISPOSITION": "Редактировать открытый канал распоряжения",
+        "DELETE_OPENCHANNELDISPOSITION": "Удалить открытый канал распоряжения",
+        "NEW_OPENCHANNELQUEUE": "Новый открытый канал очереди",
+        "NEW_OPENCHANNELACCOUNT": "Новый открытый канал счета",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "ALL_TEAMS": "Все группы",
+        "SELECTED_TEAMS": "Выбранные группы"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/sv.json b/public/app/main/apps/openchannel/i18n/sv.json
new file mode 100644 (file)
index 0000000..ec7f9a7
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Namn",
+        "OPENCHANNELQUEUES": "Öppna kanalen köer",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten Timeout krävs",
+            "MOTIONADDRESS_REQUIRED": "Motion adress krävs",
+            "MOTIONADDRESS_MUST_VALID_URL": "Rörelsen måste vara skrivna på ett giltigt format",
+            "ACCEPTURL_MUST_VALID_URL": "Acceptera URL måste vara skrivna på ett giltigt format",
+            "TIMEOUT_REQUIRED": "Väntetiden är obligatoriskt",
+            "REJECTURL_MUST_VALID_URL": "Avvisa URL måste vara skrivna på ett giltigt format",
+            "CLOSEURL_MUST_VALID_URL": "Stäng URL måste vara skrivna på ett giltigt format"
+        },
+        "STRATEGY": "Strategi",
+        "AGENT_TIMEOUT": "Tidsgräns för agent",
+        "DESCRIPTION": "Beskrivning",
+        "ADD_OPENCHANNELQUEUE": "Lägg till en öppen kanal kö",
+        "EDIT_OPENCHANNELQUEUE": "Redigera öppna kanalen kö",
+        "DELETE_OPENCHANNELQUEUE": "Ta bort öppna kanalen kö",
+        "CREATED_AT": "Skapad",
+        "SAVE": "Spara",
+        "SETTINGS": "Inställningar",
+        "GENERAL": "Allmänt",
+        "OPENCHANNELACCOUNTS": "Öppna kanalen konton",
+        "MOTIONADDRESS": "Motion adress",
+        "ADD_OPENCHANNELACCOUNT": "Lägg till en öppen kanal konto",
+        "EDIT_OPENCHANNELACCOUNT": "Redigera Open Channel Account",
+        "DELETE_OPENCHANNELACCOUNT": "Ta bort öppna Channel Account",
+        "API": "API",
+        "DISPOSITIONS": "Dispositioner",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Åtgärder",
+        "LIST": "Lista",
+        "FIDELITY": "Fidelity",
+        "ACCEPT": "Godta",
+        "ACCEPTMETHOD": "Acceptera metod",
+        "ACCEPTURL": "Acceptera URL",
+        "REJECT": "Avvisa",
+        "REJECTMETHOD": "Förkasta metoden",
+        "REJECTURL": "Avvisa URL",
+        "CLOSE": "Stäng",
+        "CLOSEMETHOD": "Stäng metod",
+        "CLOSEURL": "Stäng URL",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "BACK": "Tillbaka",
+        "OPENCHANNEL": "Öppen kanal",
+        "ID": "Id",
+        "TIMEOUT": "Tidsgräns",
+        "OPENCHANNELDISPOSITIONS": "Öppna kanalen dispositioner",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Ingen öppen kanal dispositioner tillgängliga",
+        "NEW_OPENCHANNELDISPOSITION": "Ny öppen kanal disposition",
+        "ADD_OPENCHANNELDISPOSITION": "Lägg till en öppen kanal disposition",
+        "EDIT_OPENCHANNELDISPOSITION": "Redigera öppna kanalen disposition",
+        "DELETE_OPENCHANNELDISPOSITION": "Ta bort öppna kanalen disposition",
+        "NEW_OPENCHANNELQUEUE": "Ny öppen kanal kö",
+        "NEW_OPENCHANNELACCOUNT": "Ny öppen kanal konto",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "ALL_TEAMS": "Alla grupper",
+        "SELECTED_TEAMS": "Valda grupper"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/tr.json b/public/app/main/apps/openchannel/i18n/tr.json
new file mode 100644 (file)
index 0000000..b4f873a
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "Adı",
+        "OPENCHANNELQUEUES": "Açık Kanal Kuyrukları",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "AGENT_TIMEOUT_REQUIRED": "Ajan zaman gerekiyor.",
+            "MOTIONADDRESS_REQUIRED": "Hareket adresi gerekli",
+            "MOTIONADDRESS_MUST_VALID_URL": "Hareket adres yazılmış olması gerekir. geçerli bir format",
+            "ACCEPTURL_MUST_VALID_URL": "Kabul URL yazılmış olması gerekir. geçerli bir format",
+            "TIMEOUT_REQUIRED": "Zaman Aşımı gerekiyor.",
+            "REJECTURL_MUST_VALID_URL": "Reddetme URL yazılmış olması gerekir. geçerli bir format",
+            "CLOSEURL_MUST_VALID_URL": "Kapat URL yazılmış olması gerekir. geçerli bir format"
+        },
+        "STRATEGY": "Strateji",
+        "AGENT_TIMEOUT": "Ajan Zaman Aşımı",
+        "DESCRIPTION": "Açıklama",
+        "ADD_OPENCHANNELQUEUE": "Add Açık Kanal Sırası",
+        "EDIT_OPENCHANNELQUEUE": "Edit Açık Kanal Sırası",
+        "DELETE_OPENCHANNELQUEUE": "Delete Açık Kanal Sırası",
+        "CREATED_AT": "Oluşturulmuş",
+        "SAVE": "Kaydet",
+        "SETTINGS": "Ayarlar",
+        "GENERAL": "Genel",
+        "OPENCHANNELACCOUNTS": "Açık Kanal Hesapları",
+        "MOTIONADDRESS": "Hareket Adres",
+        "ADD_OPENCHANNELACCOUNT": "Add Açık Kanal Hesabı",
+        "EDIT_OPENCHANNELACCOUNT": "Edit Açık Kanal Hesabı",
+        "DELETE_OPENCHANNELACCOUNT": "Delete Açık Kanal Hesabı",
+        "API": "API",
+        "DISPOSITIONS": "Işlenir",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Eylemler",
+        "LIST": "Listesi",
+        "FIDELITY": "Doğruluğu",
+        "ACCEPT": "Kabul Ediyorum",
+        "ACCEPTMETHOD": "Kabul Yöntemi",
+        "ACCEPTURL": "URL kabul edin",
+        "REJECT": "Reddetme",
+        "REJECTMETHOD": "Reddetme Yöntemi",
+        "REJECTURL": "Ret URL",
+        "CLOSE": "Close",
+        "CLOSEMETHOD": "Close Metodu",
+        "CLOSEURL": "Close URL",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "BACK": "Geri",
+        "OPENCHANNEL": "Açık Kanal",
+        "ID": "Id",
+        "TIMEOUT": "Zaman Aşımı",
+        "OPENCHANNELDISPOSITIONS": "Açık Kanal işlenir",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "Açık Kanal Resmi Senedin kullanılabilir",
+        "NEW_OPENCHANNELDISPOSITION": "Yeni Açık Kanal Nizam",
+        "ADD_OPENCHANNELDISPOSITION": "Add Açık Kanal Nizam",
+        "EDIT_OPENCHANNELDISPOSITION": "Edit Açık Kanal Nizam",
+        "DELETE_OPENCHANNELDISPOSITION": "Delete Açık Kanal Nizam",
+        "NEW_OPENCHANNELQUEUE": "Yeni açık kanal Sırası",
+        "NEW_OPENCHANNELACCOUNT": "Yeni açık kanal Hesabı",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "ALL_TEAMS": "Tüm takımlar",
+        "SELECTED_TEAMS": "Seçilen Ekipleri"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/zh-CN.json b/public/app/main/apps/openchannel/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..6c5de98
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "名称",
+        "OPENCHANNELQUEUES": "打开通道的队列。",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "AGENT_TIMEOUT_REQUIRED": "代理超时是必需的",
+            "MOTIONADDRESS_REQUIRED": "该议案的地址是必填项",
+            "MOTIONADDRESS_MUST_VALID_URL": "该议案的地址必须是书面的格式无效",
+            "ACCEPTURL_MUST_VALID_URL": "接受 URL 必须是书面的格式无效",
+            "TIMEOUT_REQUIRED": "超时是必需的",
+            "REJECTURL_MUST_VALID_URL": "“拒绝” 的 URL 必须是书面的格式无效",
+            "CLOSEURL_MUST_VALID_URL": "关闭 URL 必须是书面的格式无效"
+        },
+        "STRATEGY": "战略",
+        "AGENT_TIMEOUT": "代理超时",
+        "DESCRIPTION": "描述",
+        "ADD_OPENCHANNELQUEUE": "添加打开信道队列。",
+        "EDIT_OPENCHANNELQUEUE": "编辑打开信道队列。",
+        "DELETE_OPENCHANNELQUEUE": "删除打开的信道队列。",
+        "CREATED_AT": "创建在",
+        "SAVE": "保存",
+        "SETTINGS": "设置",
+        "GENERAL": "总的",
+        "OPENCHANNELACCOUNTS": "打开通道帐户",
+        "MOTIONADDRESS": "移动地址",
+        "ADD_OPENCHANNELACCOUNT": "添加打开通道帐户",
+        "EDIT_OPENCHANNELACCOUNT": "编辑打开通道帐户",
+        "DELETE_OPENCHANNELACCOUNT": "删除打开的通道帐户",
+        "API": "API",
+        "DISPOSITIONS": "资产处置",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "采取的行动",
+        "LIST": "列表",
+        "FIDELITY": "保真度",
+        "ACCEPT": "接受",
+        "ACCEPTMETHOD": "接受的方法。",
+        "ACCEPTURL": "接受的 URL。",
+        "REJECT": "拒绝",
+        "REJECTMETHOD": "拒绝方法。",
+        "REJECTURL": "拒绝 URL。",
+        "CLOSE": "关闭",
+        "CLOSEMETHOD": "关闭方法。",
+        "CLOSEURL": "关闭 URL。",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "BACK": "返回",
+        "OPENCHANNEL": "打开通道",
+        "ID": "Id",
+        "TIMEOUT": "超时",
+        "OPENCHANNELDISPOSITIONS": "打开通道的处置",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "没有打开的通道可用的处置",
+        "NEW_OPENCHANNELDISPOSITION": "新打开的通道的处理",
+        "ADD_OPENCHANNELDISPOSITION": "添加打开通道的处理",
+        "EDIT_OPENCHANNELDISPOSITION": "编辑打开通道的处理",
+        "DELETE_OPENCHANNELDISPOSITION": "删除打开的通道的处理",
+        "NEW_OPENCHANNELQUEUE": "新打开的信道队列。",
+        "NEW_OPENCHANNELACCOUNT": "新的开放式通道帐户",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "ALL_TEAMS": "所有的团队",
+        "SELECTED_TEAMS": "选定的组"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/openchannel/i18n/zh-TW.json b/public/app/main/apps/openchannel/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..52e0581
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "OPENCHANNEL": {
+        "NAME": "名稱",
+        "OPENCHANNELQUEUES": "打開通道佇列",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "AGENT_TIMEOUT_REQUIRED": "「值機人員逾時為必填欄位",
+            "MOTIONADDRESS_REQUIRED": "動態地址為必填欄位",
+            "MOTIONADDRESS_MUST_VALID_URL": "動態位址必須以有效的格式",
+            "ACCEPTURL_MUST_VALID_URL": "接受 URL 必須以有效的格式",
+            "TIMEOUT_REQUIRED": "逾時時間為必要資訊",
+            "REJECTURL_MUST_VALID_URL": "拒絕 URL 必須以有效的格式",
+            "CLOSEURL_MUST_VALID_URL": "關閉的 URL 必須以有效的格式"
+        },
+        "STRATEGY": "策略",
+        "AGENT_TIMEOUT": "值機人員等候逾時",
+        "DESCRIPTION": "說明",
+        "ADD_OPENCHANNELQUEUE": "新增開啟通道佇列",
+        "EDIT_OPENCHANNELQUEUE": "編輯開啟通道佇列",
+        "DELETE_OPENCHANNELQUEUE": "刪除開啟通道佇列",
+        "CREATED_AT": "建立在",
+        "SAVE": "儲存",
+        "SETTINGS": "設定",
+        "GENERAL": "通用",
+        "OPENCHANNELACCOUNTS": "開放頻道帳號",
+        "MOTIONADDRESS": "動態位址",
+        "ADD_OPENCHANNELACCOUNT": "新增開放頻道帳號",
+        "EDIT_OPENCHANNELACCOUNT": "編輯開啟通路帳戶",
+        "DELETE_OPENCHANNELACCOUNT": "刪除開啟通路帳戶",
+        "API": "API",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "動作",
+        "LIST": "清單",
+        "FIDELITY": "準確性",
+        "ACCEPT": "接受",
+        "ACCEPTMETHOD": "接受方法",
+        "ACCEPTURL": "接受 URL",
+        "REJECT": "拒絕",
+        "REJECTMETHOD": "排除方法",
+        "REJECTURL": "拒絕 URL",
+        "CLOSE": "關閉",
+        "CLOSEMETHOD": "關閉方法",
+        "CLOSEURL": "關閉 URL",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "BACK": "備份",
+        "OPENCHANNEL": "開放頻道",
+        "ID": "Id",
+        "TIMEOUT": "逾時",
+        "OPENCHANNELDISPOSITIONS": "開放頻道 Dispositions",
+        "NO_OPENCHANNELDISPOSITION_AVAILABLE": "沒有打開通道 Dispositions 可用性",
+        "NEW_OPENCHANNELDISPOSITION": "全新開放通道配置",
+        "ADD_OPENCHANNELDISPOSITION": "新增開啟通道配置",
+        "EDIT_OPENCHANNELDISPOSITION": "編輯開啟通道配置",
+        "DELETE_OPENCHANNELDISPOSITION": "刪除開啟通道配置",
+        "NEW_OPENCHANNELQUEUE": "全新開放通道佇列",
+        "NEW_OPENCHANNELACCOUNT": "新的開放式通路帳戶",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "ALL_TEAMS": "所有群組",
+        "SELECTED_TEAMS": "選取群組"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/da.json b/public/app/main/apps/settings/i18n/da.json
new file mode 100644 (file)
index 0000000..03619db
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "Grænseflade",
+        "TOP_N_PROCESSES": "Top {{værdier}} processer",
+        "SYSTEM": "System",
+        "FILE_SYSTEM": "Filsystem",
+        "PROCESSES": "Processer",
+        "MOUNT_POINT": "Mount",
+        "AVG_LOAD": "Gns. belastning",
+        "TOTAL": "Total",
+        "USED": "Brugt",
+        "FREE": "Gratis",
+        "NAME": "Navnet",
+        "STATE": "Medlemsstat",
+        "CHAT": "Chat",
+        "MAIL": "Mail",
+        "MESSAGING": "Sms",
+        "FAX": "Fax",
+        "OPENCHANNEL": "Åben kanal",
+        "AGENTS": "Agenter",
+        "USERS": "Brugere",
+        "TELEPHONES": "Telefoner",
+        "STAFF": "Personalet",
+        "CHANNELS": "Kanaler",
+        "MODULES": "Moduler",
+        "CM": "Kontakt Manager",
+        "DIALER": "Dialer",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "Tilpasning",
+        "UPDATE": "Opdater",
+        "OTHERS": "Andre",
+        "SETTINGS": "Indstillinger",
+        "GENERAL": "Generel",
+        "SMTP": "SMTP",
+        "NETWORKS": "Netværk",
+        "UPDATES": "Opdateringer",
+        "LICENSE": "Licens",
+        "ID": "Id",
+        "MIN_INTERNAL": "Min Indre",
+        "MIN_MAILBOX": "Min postkasse",
+        "INSTALLED_AT": "Installeret på",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "EDIT_GENERAL": "Rediger de generelle",
+        "SECURE_PASSWORD": "Sikker adgangskode",
+        "LOGO": "Logo",
+        "DEFAULT_LOGO": "Standard Logo",
+        "DEFAULT_LOGIN_LOGO": "Standard Log-logo",
+        "WHITELABEL": "Hvidmærke",
+        "DEFAULT_HEADER_WHITELABEL": "Default Footer White Label",
+        "HEADER_WHITELABEL": "Footer White Label",
+        "CREATED_AT": "Oprettet på",
+        "SAVE": "Gem",
+        "SMTP_HOST": "SMTP Host",
+        "SMTP_USERNAME": "SMTP brugernavn",
+        "DESCRIPTION": "Beskrivelse",
+        "SMTP_PASSWORD": "SMTP Password",
+        "SMTP_PORT": "SMTP-port",
+        "SMTP_SSL": "SMTP SSL",
+        "TYPE": "Type",
+        "ADDRESS": "Adresse",
+        "NEW_NETWORK": "Nyt netværk",
+        "ADD_NETWORK": "Add Network",
+        "HELP": {
+            "ADDRESS": "Adressen på nettet",
+            "LOCALNETADDRESS": "IP-adresse og undernetmaske"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "Adressen er påkrævet",
+            "MIN_INTERNAL_REQUIRED": "Den mindste indvendige er påkrævet",
+            "MIN_MAILBOX_REQUIRED": "Den mindste postkasse er påkrævet",
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "HEADER_WHITELABEL_REQUIRED": "Det whitelabel er påkrævet",
+            "LOCALNETADDRESS_REQUIRED": "Localnet adresse påkrævet",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet skal være gyldigt et gyldigt mønster",
+            "ADDRESS_MUST_VALID_PATTERN": "Adressen skal være gyldig mønster"
+        },
+        "EDIT_NETWORK": "Edit Network",
+        "DELETE_NETWORK": "Delete Network",
+        "BACK": "Tilbage",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "EXPIRATION_DATE": "Udløbsdato",
+        "REQUEST_LICENSE": "Anmodning licens",
+        "EMAIL": "Email",
+        "SEND": "Send",
+        "PLAN": "Planen",
+        "MONTH_TO_MONTH": "Måned til måned",
+        "MOTION_PROCESS_MANAGEMENT": "Motion processtyring",
+        "USEFUL_COMMANDS": "Nyttige kommandoer",
+        "COMMAND": "Kommando",
+        "PM2_LIST": "En liste over alle processer",
+        "PM2_START": "Start en proces af id eller navn",
+        "PM2_STOP": "Stop en proces af id eller navn, indsæt 'alle' for at stoppe alle de aktive processer",
+        "PM2_RESTART": "Start en proces af id eller navn",
+        "PM2_LOGS": "Stream alle log-filen, eller bestemt af en proces-id eller navn",
+        "PASSWORD": "Password",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "STUNADDR": "STUN ADRESSE",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "Nuværende version",
+        "CUSTOMIZATIONS": "Tilpasninger",
+        "LOCALNETADDRESS": "Localnet adresse",
+        "NEW_VERSION": "Ny version",
+        "TOKEN": "Token",
+        "NEW_TOKEN_DETECTED": "Nye Brik registreret",
+        "EXPIRATION_GRAY_PERIOD": "Grå periode udløb",
+        "NEW_TOKEN": "Nye brik",
+        "EXPIRATION_REASON": "Derfor er udløbet",
+        "PRICES": "Priser",
+        "UPDATE_LICENSE": "Opdater licens",
+        "LOGOLOGIN": "Login Logo",
+        "SMTP_SERVICE": "Service",
+        "SMTP_SECURE": "Fastgør",
+        "UPDATING": "Opdatering",
+        "REMOTE_VERSION": "Remote Version",
+        "NO_NEW_VERSION_AVAILABLE": "Ingen ny version tilgængelig",
+        "TRIAL_VERSION": "Prøveversion",
+        "RELOAD": "Reload",
+        "VERIFY": "Kontroller"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/de.json b/public/app/main/apps/settings/i18n/de.json
new file mode 100644 (file)
index 0000000..090dcdb
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "Schnittstelle",
+        "TOP_N_PROCESSES": "Top {{Wert}} Prozesse",
+        "SYSTEM": "System",
+        "FILE_SYSTEM": "File System",
+        "PROCESSES": "Prozesse",
+        "MOUNT_POINT": "Berg",
+        "AVG_LOAD": "AVG Laden",
+        "TOTAL": "Gesamt",
+        "USED": "Verwendet",
+        "FREE": "Kostenlos",
+        "NAME": "Name",
+        "STATE": "Zustand",
+        "CHAT": "Chat",
+        "MAIL": "E-Mail",
+        "MESSAGING": "Sms",
+        "FAX": "Fax",
+        "OPENCHANNEL": "Offener Kanal",
+        "AGENTS": "Agenten",
+        "USERS": "Benutzer",
+        "TELEPHONES": "Telefone",
+        "STAFF": "Personal",
+        "CHANNELS": "Tv",
+        "MODULES": "Module",
+        "CM": "Contacts Manager",
+        "DIALER": "Dialer",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "Anpassung",
+        "UPDATE": "Update",
+        "OTHERS": "Andere",
+        "SETTINGS": "Einstellungen",
+        "GENERAL": "Allgemein",
+        "SMTP": "SMTP",
+        "NETWORKS": "Netzwerke",
+        "UPDATES": "Aktuelles",
+        "LICENSE": "Lizenz",
+        "ID": "Id",
+        "MIN_INTERNAL": "Min. Interne",
+        "MIN_MAILBOX": "Min Mailbox",
+        "INSTALLED_AT": "Installiert",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "EDIT_GENERAL": "Allgemein bearbeiten",
+        "SECURE_PASSWORD": "Sicheres Kennwort",
+        "LOGO": "Logo",
+        "DEFAULT_LOGO": "Standard Logo",
+        "DEFAULT_LOGIN_LOGO": "Login Logo",
+        "WHITELABEL": "White Label",
+        "DEFAULT_HEADER_WHITELABEL": "White Label Standardfußzeile",
+        "HEADER_WHITELABEL": "White Label Fußzeile",
+        "CREATED_AT": "Erstellt am",
+        "SAVE": "Speichern",
+        "SMTP_HOST": "SMTP-Host",
+        "SMTP_USERNAME": "SMTP-Benutzername",
+        "DESCRIPTION": "Beschreibung",
+        "SMTP_PASSWORD": "SMTP-Passwort",
+        "SMTP_PORT": "SMTP-Port",
+        "SMTP_SSL": "SMTP-SSL",
+        "TYPE": "Typ",
+        "ADDRESS": "Adresse",
+        "NEW_NETWORK": "Neues Netzwerk",
+        "ADD_NETWORK": "Netzwerk hinzufügen",
+        "HELP": {
+            "ADDRESS": "Die Adresse des Netzwerks",
+            "LOCALNETADDRESS": "IP-Adresse/Subnetzmaske"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "Die Adresse ist erforderlich",
+            "MIN_INTERNAL_REQUIRED": "Die minimale interne ist erforderlich",
+            "MIN_MAILBOX_REQUIRED": "Die Mailbox ist erforderlich",
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "HEADER_WHITELABEL_REQUIRED": "Die whitelabel ist erforderlich",
+            "LOCALNETADDRESS_REQUIRED": "Localnet Adresse erforderlich",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet gültig sein muss eine gültige Muster",
+            "ADDRESS_MUST_VALID_PATTERN": "Adresse muss eine gültige Muster sein"
+        },
+        "EDIT_NETWORK": "Netzwerk bearbeiten",
+        "DELETE_NETWORK": "Netzwerk löschen",
+        "BACK": "Zurück",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "EXPIRATION_DATE": "Ablaufdatum",
+        "REQUEST_LICENSE": "Lizenz anfordern",
+        "EMAIL": "E-Mail",
+        "SEND": "Senden",
+        "PLAN": "Plan",
+        "MONTH_TO_MONTH": "Von Monat zu Monat",
+        "MOTION_PROCESS_MANAGEMENT": "Motion Process Management",
+        "USEFUL_COMMANDS": "Nützliche Befehle",
+        "COMMAND": "Befehl",
+        "PM2_LIST": "Eine Liste aller Prozesse",
+        "PM2_START": "Starten eines Prozesses durch ID oder Name",
+        "PM2_STOP": "Stoppen Sie einen Prozess-ID oder Name, fügen Sie \"Alle\", um alle aktiven Prozesse",
+        "PM2_RESTART": "Starten Sie einen Prozess, durch ID oder Name",
+        "PM2_LOGS": "Alle Protokolle Stream Datei, oder spezifische eines Prozess-ID oder Name",
+        "PASSWORD": "Passwort",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "STUNADDR": "Die STUN-Adresse",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "Aktuelle Version",
+        "CUSTOMIZATIONS": "Anpassungen",
+        "LOCALNETADDRESS": "Localnet Adresse",
+        "NEW_VERSION": "Neue Version",
+        "TOKEN": "Token",
+        "NEW_TOKEN_DETECTED": "Neue Token erkannt",
+        "EXPIRATION_GRAY_PERIOD": "Grau Zeitraum Ablauf",
+        "NEW_TOKEN": "Neue Token",
+        "EXPIRATION_REASON": "Ablauf Grund",
+        "PRICES": "Preise",
+        "UPDATE_LICENSE": "Lizenz aktualisieren",
+        "LOGOLOGIN": "Login Logo",
+        "SMTP_SERVICE": "Service",
+        "SMTP_SECURE": "Sichere",
+        "UPDATING": "Aktualisierung",
+        "REMOTE_VERSION": "Remote-Version",
+        "NO_NEW_VERSION_AVAILABLE": "Keine neue Version verfügbar",
+        "TRIAL_VERSION": "Testversion",
+        "RELOAD": "Neu laden",
+        "VERIFY": "Überprüfen Sie, ob"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/en.json b/public/app/main/apps/settings/i18n/en.json
new file mode 100644 (file)
index 0000000..16eca6f
--- /dev/null
@@ -0,0 +1,123 @@
+{
+    "SETTINGS": {
+        "RELOAD": "Reload",
+        "VERIFY": "Verify",
+        "INTERFACE": "Interface",
+        "UPDATING": "Updating",
+        "REMOTE_VERSION": "Remote Version",
+        "NO_NEW_VERSION_AVAILABLE": "No new version available",
+        "TOP_N_PROCESSES": "Top {{value}} processes",
+        "SYSTEM": "System",
+        "FILE_SYSTEM": "File System",
+        "PROCESSES": "Processes",
+        "MOUNT_POINT": "Mount",
+        "AVG_LOAD": "AVG Load",
+        "TOTAL": "Total",
+        "USED": "Used",
+        "FREE": "Free",
+        "NAME": "Name",
+        "STATE": "State",
+        "CHAT": "Chat",
+        "MAIL": "Mail",
+        "MESSAGING": "Sms",
+        "FAX": "Fax",
+        "OPENCHANNEL": "Open Channel",
+        "AGENTS": "Agents",
+        "USERS": "Users",
+        "TELEPHONES": "Telephones",
+        "STAFF": "Staff",
+        "CHANNELS": "Channels",
+        "MODULES": "Modules",
+        "CM": "Contacts Manager",
+        "DIALER": "Dialer",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "Customization",
+        "UPDATE": "Update",
+        "OTHERS": "Others",
+        "SETTINGS": "Settings",
+        "GENERAL": "General",
+        "SMTP": "SMTP",
+        "NETWORKS": "Networks",
+        "UPDATES": "Updates",
+        "LICENSE": "License",
+        "ID": "Id",
+        "MIN_INTERNAL": "Min Internal",
+        "MIN_MAILBOX": "Min Mailbox",
+        "INSTALLED_AT": "Installed At",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "EDIT_GENERAL": "Edit General",
+        "SECURE_PASSWORD": "Secure Password",
+        "LOGO": "Logo",
+        "DEFAULT_LOGO": "Default Logo",
+        "DEFAULT_LOGIN_LOGO": "Default Login Logo",
+        "WHITELABEL": "White Label",
+        "DEFAULT_HEADER_WHITELABEL": "Default Header White Label",
+        "HEADER_WHITELABEL": "Header White Label",
+        "CREATED_AT": "Created At",
+        "SAVE": "Save",
+        "NAME": "Name",
+        "SMTP_SERVICE": "Service",
+        "SMTP_HOST": "Host",
+        "SMTP_USERNAME": "Username",
+        "DESCRIPTION": "Description",
+        "SMTP_PASSWORD": "Password",
+        "SMTP_PORT": "Port",
+        "SMTP_SECURE": "Secure",
+        "TYPE": "Type",
+        "ADDRESS": "Address",
+        "NEW_NETWORK": "New Network",
+        "ADD_NETWORK": "Add Network",
+        "HELP": {
+            "ADDRESS": "The external (public) ip address",
+            "LOCALNETADDRESS": "Local ip address/subnet"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "The Address is required",
+            "MIN_INTERNAL_REQUIRED": "The Minimum Internal is required",
+            "MIN_MAILBOX_REQUIRED": "The Minimum Mailbox is required",
+            "NAME_REQUIRED": "The Name is required",
+            "HEADER_WHITELABEL_REQUIRED": "The whitelabel is required",
+            "LOCALNETADDRESS_REQUIRED": "Localnet Address Required",
+            "LOCALNETADDRESS_REQUIRED": "Localnet Address Required",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet must be valid a valid pattern",
+            "ADDRESS_MUST_VALID_PATTERN": "Address must be a valid pattern"
+        },
+        "EDIT_NETWORK": "Edit Network",
+        "DELETE_NETWORK": "Delete Network",
+        "BACK": "Back",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "EXPIRATION_DATE": "Expiration Date",
+        "REQUEST_LICENSE": "Request License",
+        "EMAIL": "Email",
+        "SEND": "Send",
+        "PLAN": "Plan",
+        "MONTH_TO_MONTH": "Month to month",
+        "MOTION_PROCESS_MANAGEMENT": "Motion Process Management",
+        "USEFUL_COMMANDS": "Useful Commands",
+        "COMMAND": "Command",
+        "PM2_LIST": "List all processes",
+        "PM2_START": "Start a process by id or name",
+        "PM2_STOP": "Stop a process by id or name, insert 'all' to stop all the active processes",
+        "PM2_RESTART": "Restart a process by id or name",
+        "PM2_LOGS": "Stream all logs file, or specific of a process id or name",
+        "PASSWORD": "Password",
+        "NO_AVAILABLE_INFO": "No available info",
+        "STUNADDR": "STUN Address",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "Current version",
+        "CUSTOMIZATIONS": "Customizations",
+        "LOCALNETADDRESS": "Localnet Address",
+        "NEW_VERSION": "New Version",
+        "TRIAL_VERSION": "Trial Version",
+        "TOKEN": "Token",
+        "NEW_TOKEN_DETECTED": "New Token Detected",
+        "EXPIRATION_GRAY_PERIOD": "Gray Period Expiration",
+        "NEW_TOKEN": "New Token",
+        "PRICES": "Prices",
+        "UPDATE_LICENSE": "Update License",
+        "LOGOLOGIN": "Login Logo",
+        "EXPIRATION_REASON": "Expiration Reason"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/es.json b/public/app/main/apps/settings/i18n/es.json
new file mode 100644 (file)
index 0000000..7ee4b64
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "Interface",
+        "TOP_N_PROCESSES": "Top {{value}} procesos",
+        "SYSTEM": "Sistema",
+        "FILE_SYSTEM": "Sistema de Archivo",
+        "PROCESSES": "Los procesos",
+        "MOUNT_POINT": "Monte",
+        "AVG_LOAD": "Carga de PROM.",
+        "TOTAL": "Total",
+        "USED": "Usa",
+        "FREE": "Libre",
+        "NAME": "Nombre",
+        "STATE": "Estado",
+        "CHAT": "Chat",
+        "MAIL": "Mail",
+        "MESSAGING": "Sms",
+        "FAX": "Fax",
+        "OPENCHANNEL": "Canal abierto",
+        "AGENTS": "Los agentes",
+        "USERS": "Los usuarios",
+        "TELEPHONES": "Teléfonos",
+        "STAFF": "Personal",
+        "CHANNELS": "Canales",
+        "MODULES": "Módulos",
+        "CM": "Administrador de contactos",
+        "DIALER": "Dialer",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "Personalización",
+        "UPDATE": "Actualizar",
+        "OTHERS": "Otros",
+        "SETTINGS": "Configuración",
+        "GENERAL": "General",
+        "SMTP": "SMTP",
+        "NETWORKS": "Redes",
+        "UPDATES": "Actualizaciones",
+        "LICENSE": "Licencia",
+        "ID": "Id",
+        "MIN_INTERNAL": "Interno mín.",
+        "MIN_MAILBOX": "Buzón mín.",
+        "INSTALLED_AT": "Instalado en",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "EDIT_GENERAL": "Editar General",
+        "SECURE_PASSWORD": "Contraseña segura",
+        "LOGO": "Logo",
+        "DEFAULT_LOGO": "Logotipo predeterminado",
+        "DEFAULT_LOGIN_LOGO": "Logotipo de inicio de sesión predeterminado",
+        "WHITELABEL": "Etiqueta blanca",
+        "DEFAULT_HEADER_WHITELABEL": "Pie de página predeterminado Etiqueta blanca",
+        "HEADER_WHITELABEL": "Etiqueta blanca de pie de página",
+        "CREATED_AT": "Creado en",
+        "SAVE": "Guardar",
+        "SMTP_HOST": "El host SMTP",
+        "SMTP_USERNAME": "Nombre de usuario SMTP",
+        "DESCRIPTION": "Descripción",
+        "SMTP_PASSWORD": "Contraseña SMTP",
+        "SMTP_PORT": "El puerto SMTP",
+        "SMTP_SSL": "SMTP SSL",
+        "TYPE": "Tipo",
+        "ADDRESS": "Dirección",
+        "NEW_NETWORK": "Nueva Red",
+        "ADD_NETWORK": "Añadir red",
+        "HELP": {
+            "ADDRESS": "La dirección de la red",
+            "LOCALNETADDRESS": "Dirección IP/máscara de subred"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "La dirección es obligatoria",
+            "MIN_INTERNAL_REQUIRED": "El mínimo requerido es interna",
+            "MIN_MAILBOX_REQUIRED": "El buzón es mínima requerida",
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "HEADER_WHITELABEL_REQUIRED": "El whitelabel es obligatorio",
+            "LOCALNETADDRESS_REQUIRED": "Localnet dirección requerida",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet debe ser válido un patrón válido",
+            "ADDRESS_MUST_VALID_PATTERN": "La dirección debe ser un modelo válido"
+        },
+        "EDIT_NETWORK": "Editar Red",
+        "DELETE_NETWORK": "Eliminar la red",
+        "BACK": "Volver",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "EXPIRATION_DATE": "Fecha de caducidad",
+        "REQUEST_LICENSE": "Solicitar licencia",
+        "EMAIL": "Correo electrónico",
+        "SEND": "Enviar",
+        "PLAN": "Plan",
+        "MONTH_TO_MONTH": "Mes a mes",
+        "MOTION_PROCESS_MANAGEMENT": "Gestión del proceso de movimiento",
+        "USEFUL_COMMANDS": "Comandos útiles",
+        "COMMAND": "Mando",
+        "PM2_LIST": "Ver una lista de todos los procesos",
+        "PM2_START": "Iniciar un proceso por nombre o ID.",
+        "PM2_STOP": "Detener un proceso por ID o nombre, introduzca 'Todos' para detener todos los procesos activos",
+        "PM2_RESTART": "Reiniciar un proceso por nombre o ID.",
+        "PM2_LOGS": "Transmitir todos los ficheros logs, o específicas de un proceso ID o nombre",
+        "PASSWORD": "Contraseña",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "STUNADDR": "Dirección STUN",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "Versión actual",
+        "CUSTOMIZATIONS": "Personalizaciones",
+        "LOCALNETADDRESS": "Dirección Localnet",
+        "NEW_VERSION": "Nueva versión",
+        "TOKEN": "Token",
+        "NEW_TOKEN_DETECTED": "Nuevo Token detectado",
+        "EXPIRATION_GRAY_PERIOD": "Vencimiento del período gris",
+        "NEW_TOKEN": "Nuevo Token",
+        "EXPIRATION_REASON": "Motivo de caducidad",
+        "PRICES": "Los precios",
+        "UPDATE_LICENSE": "Actualizar licencia",
+        "LOGOLOGIN": "Logotipo de inicio de sesión",
+        "SMTP_SERVICE": "Servicio",
+        "SMTP_SECURE": "Secure",
+        "UPDATING": "Actualización",
+        "REMOTE_VERSION": "Versión remota",
+        "NO_NEW_VERSION_AVAILABLE": "No existe una nueva versión disponible",
+        "TRIAL_VERSION": "Versión de prueba",
+        "RELOAD": "Recargar",
+        "VERIFY": "Verificar"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/fa.json b/public/app/main/apps/settings/i18n/fa.json
new file mode 100644 (file)
index 0000000..1f97a64
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "رابط کاربری",
+        "TOP_N_PROCESSES": "بالا {{ارزش فرايندها}}",
+        "SYSTEM": "سیستم",
+        "FILE_SYSTEM": "سیستم فایل",
+        "PROCESSES": "مراحل",
+        "MOUNT_POINT": "افزون",
+        "AVG_LOAD": "میانگین بارگیری",
+        "TOTAL": "کل",
+        "USED": "استفاده",
+        "FREE": "آزاد",
+        "NAME": "نام",
+        "STATE": "دولت",
+        "CHAT": "چت روم",
+        "MAIL": "پست",
+        "MESSAGING": "Sms",
+        "FAX": "فاكس",
+        "OPENCHANNEL": "کانال را باز کنید",
+        "AGENTS": "عوامل",
+        "USERS": "کاربران",
+        "TELEPHONES": "تلفن ها",
+        "STAFF": "كاركنان",
+        "CHANNELS": "کانال ها",
+        "MODULES": "ماژول ها",
+        "CM": "تماس با مدیر",
+        "DIALER": "Dialer",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "سفارشی سازی",
+        "UPDATE": "به روزآوری",
+        "OTHERS": "ديگران",
+        "SETTINGS": "تنظیمات",
+        "GENERAL": "سردار",
+        "SMTP": "SMTP",
+        "NETWORKS": "شبکه ها",
+        "UPDATES": "موارد به روز",
+        "LICENSE": "این مجوز",
+        "ID": "شناسه",
+        "MIN_INTERNAL": "حداقل داخلی",
+        "MIN_MAILBOX": "در دقیقه Mailbox",
+        "INSTALLED_AT": "در آن نصب نشده است",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "EDIT_GENERAL": "ویرایش کلی",
+        "SECURE_PASSWORD": "رمز عبور ایمن",
+        "LOGO": "آرم",
+        "DEFAULT_LOGO": "آرم پیش فرض",
+        "DEFAULT_LOGIN_LOGO": "فرض آرم ورود به سیستم",
+        "WHITELABEL": "برچسب سفید",
+        "DEFAULT_HEADER_WHITELABEL": "لباس فضانوردهاى روى كره ى برچسب سفید پیش فرض",
+        "HEADER_WHITELABEL": "برچسب سفید لباس فضانوردهاى روى كره ى",
+        "CREATED_AT": "ایجاد شده در",
+        "SAVE": "ذخیره",
+        "SMTP_HOST": "ميزبان SMTP",
+        "SMTP_USERNAME": "نام کاربری SMTP",
+        "DESCRIPTION": "شرح",
+        "SMTP_PASSWORD": "رمز عبور SMTP",
+        "SMTP_PORT": "پورت SMTP",
+        "SMTP_SSL": "English Version اين تارنما توسط دفتر برنامه های SMTP",
+        "TYPE": "نوع دستگاه",
+        "ADDRESS": "آدرس",
+        "NEW_NETWORK": "شبکه جدید",
+        "ADD_NETWORK": "افزودن یک شبکه",
+        "HELP": {
+            "ADDRESS": "آدرس شبکه وجود دارد.",
+            "LOCALNETADDRESS": "آدرس IP/پوشش زیرشبکه"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "آدرس مورد نیاز است.",
+            "MIN_INTERNAL_REQUIRED": "حداقل داخلي، لازم است.",
+            "MIN_MAILBOX_REQUIRED": "Mailbox حداقل مورد نیاز است.",
+            "NAME_REQUIRED": "نام لازم است.",
+            "HEADER_WHITELABEL_REQUIRED": "از whitelabel لازم است.",
+            "LOCALNETADDRESS_REQUIRED": "آدرس Localnet لازم است",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet بايد الگوى معتبر معتبر خواهد بود.",
+            "ADDRESS_MUST_VALID_PATTERN": "آدرس صحیح الگو باشند."
+        },
+        "EDIT_NETWORK": "ویرایش شبکه",
+        "DELETE_NETWORK": "شبکه را حذف کنید",
+        "BACK": "پشت",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "EXPIRATION_DATE": "تاریخ انقضا",
+        "REQUEST_LICENSE": "درخواست مجوز",
+        "EMAIL": "آدرس ایمیل",
+        "SEND": "فرستادن",
+        "PLAN": "طرح",
+        "MONTH_TO_MONTH": "ماه به ماه",
+        "MOTION_PROCESS_MANAGEMENT": "مديريت فرايند حركت",
+        "USEFUL_COMMANDS": "فرمان های مفید",
+        "COMMAND": "فرمان",
+        "PM2_LIST": "لیست تمام جريانات",
+        "PM2_START": "شروع به کار با نام يا شناسه",
+        "PM2_STOP": "توقف روند شناسه يا نام، با وارد کردن 'همه' توقف همه جريانات فعال",
+        "PM2_RESTART": "راه اندازی مجدد یک فرایند با شناسه یا نام",
+        "PM2_LOGS": "جريان تمام گزارشات، یا فایل خاصی از فرایند شناسه يا نام",
+        "PASSWORD": "اسم رمز",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "STUNADDR": "آدرس آمریکای جنوبی",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "نسخه فعلی",
+        "CUSTOMIZATIONS": "Customizations",
+        "LOCALNETADDRESS": "آدرس Localnet",
+        "NEW_VERSION": "نسخه جدید",
+        "TOKEN": "نشانه",
+        "NEW_TOKEN_DETECTED": "نشانه جدید شناسایی شد",
+        "EXPIRATION_GRAY_PERIOD": "مدت زمان انقضا خاکستری",
+        "NEW_TOKEN": "نشانه جدید",
+        "EXPIRATION_REASON": "به همين دليل انقضا",
+        "PRICES": "قيمت",
+        "UPDATE_LICENSE": "این مجوز به روزآوری",
+        "LOGOLOGIN": "آرم ورود به سیستم",
+        "SMTP_SERVICE": "سرویس",
+        "SMTP_SECURE": "ایمن سازی",
+        "UPDATING": "به روزآوری",
+        "REMOTE_VERSION": "در مدل مجهز به کنترل از راه دور",
+        "NO_NEW_VERSION_AVAILABLE": "نسخه جدیدی موجود نیست",
+        "TRIAL_VERSION": "نسخه آزمایشی",
+        "RELOAD": "امارات - آث میلان",
+        "VERIFY": "تأیید کنید"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/fi.json b/public/app/main/apps/settings/i18n/fi.json
new file mode 100644 (file)
index 0000000..d7b77d3
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "Liitäntä",
+        "TOP_N_PROCESSES": "Top {{arvo}} prosesseja",
+        "SYSTEM": "Järjestelmä",
+        "FILE_SYSTEM": "Tiedostojärjestelmä",
+        "PROCESSES": "Prosesseja",
+        "MOUNT_POINT": "Kiinnitys",
+        "AVG_LOAD": "AVG kuormitus",
+        "TOTAL": "Yhteensä",
+        "USED": "Käytetään",
+        "FREE": "Vapaa",
+        "NAME": "Nimi",
+        "STATE": "Tila",
+        "CHAT": "Chat",
+        "MAIL": "Sähköposti",
+        "MESSAGING": "Sms",
+        "FAX": "Faksi",
+        "OPENCHANNEL": "Avointa kanavaa",
+        "AGENTS": "Aineet",
+        "USERS": "Käyttäjät",
+        "TELEPHONES": "Puhelimet",
+        "STAFF": "Henkilökunta",
+        "CHANNELS": "Kanavat",
+        "MODULES": "Moduulit",
+        "CM": "Yhteystietojen hallinta",
+        "DIALER": "Valitsimeen",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "Mukautus",
+        "UPDATE": "Päivitys",
+        "OTHERS": "Muut",
+        "SETTINGS": "Asetusten määrittäminen",
+        "GENERAL": "Yleistä",
+        "SMTP": "SMTP-",
+        "NETWORKS": "Verkot",
+        "UPDATES": "Päivitykset",
+        "LICENSE": "Lisenssi",
+        "ID": "Tunnus",
+        "MIN_INTERNAL": "Min sisäinen",
+        "MIN_MAILBOX": "Min postilaatikkoon",
+        "INSTALLED_AT": "Asennettuna",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "EDIT_GENERAL": "Muuta yleiset",
+        "SECURE_PASSWORD": "Vahva salasana",
+        "LOGO": "Logo",
+        "DEFAULT_LOGO": "Oletus-logo",
+        "DEFAULT_LOGIN_LOGO": "Oletussalasana logo",
+        "WHITELABEL": "Valkoinen tarra",
+        "DEFAULT_HEADER_WHITELABEL": "Oletus alatunniste valkoinen tarra",
+        "HEADER_WHITELABEL": "Alatunniste valkoinen tarra",
+        "CREATED_AT": "Luodaan",
+        "SAVE": "Tallenna",
+        "SMTP_HOST": "SMTP-palvelin",
+        "SMTP_USERNAME": "SMTP-käyttäjätunnus",
+        "DESCRIPTION": "Kuvaus",
+        "SMTP_PASSWORD": "SMTP-salasana",
+        "SMTP_PORT": "SMTP-porttiin",
+        "SMTP_SSL": "SMTP SSL",
+        "TYPE": "Tyyppi",
+        "ADDRESS": "Osoite",
+        "NEW_NETWORK": "Uudet verkkoasetukset",
+        "ADD_NETWORK": "Add Network",
+        "HELP": {
+            "ADDRESS": "Die fehlende Nennung der verkko",
+            "LOCALNETADDRESS": "IP-osoite/Aliverkon peite"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "Osoite on pakollinen",
+            "MIN_INTERNAL_REQUIRED": "Pienin sisäinen ei tarvita",
+            "MIN_MAILBOX_REQUIRED": "Pienin postilaatikko on pakollinen",
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "HEADER_WHITELABEL_REQUIRED": "Kun whitelabel ei tarvita",
+            "LOCALNETADDRESS_REQUIRED": "Localnet tarvitset",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet on oltava kelvollinen kelvollinen kuvio",
+            "ADDRESS_MUST_VALID_PATTERN": "Osoitteen on oltava kelvollinen kuvio"
+        },
+        "EDIT_NETWORK": "Muokkaa verkko",
+        "DELETE_NETWORK": "Poista verkko",
+        "BACK": "Takaisin",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "EXPIRATION_DATE": "Viimeinen käyttöpäivä",
+        "REQUEST_LICENSE": "Pyydä käyttöoikeus",
+        "EMAIL": "Sähköposti",
+        "SEND": "Lähetä",
+        "PLAN": "Suunnitelma",
+        "MONTH_TO_MONTH": "Kuukausittain",
+        "MOTION_PROCESS_MANAGEMENT": "Motion prosessinhallinta",
+        "USEFUL_COMMANDS": "Hyödyllisiä komentoja",
+        "COMMAND": "Ohjaus",
+        "PM2_LIST": "Listaa kaikki prosessit",
+        "PM2_START": "Aloita prosessi, jonka perusteella tunnus tai nimi",
+        "PM2_STOP": "Lopeta prosessi, jonka perusteella tunnus tai nimi, aseta \"kaikki\" lopettamaan kaikki aktiiviset prosessit",
+        "PM2_RESTART": "Käynnistä prosessi, jonka perusteella tunnus tai nimi",
+        "PM2_LOGS": "Suoratoista kaikkea lokit tiedoston tai tietyn prosessin tunnus tai nimi",
+        "PASSWORD": "Salasana",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "STUNADDR": "Yllätä osoite",
+        "CHANGELOG": "Muutosloki",
+        "CURRENT_VERSION": "Nykyinen versio",
+        "CUSTOMIZATIONS": "Mukautukset",
+        "LOCALNETADDRESS": "Localnet osoite",
+        "NEW_VERSION": "Uusi versio",
+        "TOKEN": "Etätunnistin",
+        "NEW_TOKEN_DETECTED": "Uusi etätunnistin tunnistettu",
+        "EXPIRATION_GRAY_PERIOD": "Harmaa kausi päättyy",
+        "NEW_TOKEN": "Uusi etätunnistin",
+        "EXPIRATION_REASON": "Viimeinen syy",
+        "PRICES": "Hinnat",
+        "UPDATE_LICENSE": "Päivitä lisenssi",
+        "LOGOLOGIN": "Kirjaudu logo",
+        "SMTP_SERVICE": "Palvelu",
+        "SMTP_SECURE": "Kiinnitä",
+        "UPDATING": "Päivittäminen",
+        "REMOTE_VERSION": "Etäyhteyden kautta.",
+        "NO_NEW_VERSION_AVAILABLE": "Uutta versiota ei ole saatavilla",
+        "TRIAL_VERSION": "Kokeiluversio",
+        "RELOAD": "Lataa",
+        "VERIFY": "Varmista"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/fr.json b/public/app/main/apps/settings/i18n/fr.json
new file mode 100644 (file)
index 0000000..05c58a3
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "Interface",
+        "TOP_N_PROCESSES": "Haut {{}} traite de la valeur",
+        "SYSTEM": "System",
+        "FILE_SYSTEM": "Système de fichiers",
+        "PROCESSES": "Traite",
+        "MOUNT_POINT": "Mont",
+        "AVG_LOAD": "Charge MOY",
+        "TOTAL": "Total",
+        "USED": "Utilisé",
+        "FREE": "Gratuitement",
+        "NAME": "Nom",
+        "STATE": "State",
+        "CHAT": "Chat",
+        "MAIL": "Mail",
+        "MESSAGING": "Sms",
+        "FAX": "Fax",
+        "OPENCHANNEL": "Canal ouvert",
+        "AGENTS": "Mandataires",
+        "USERS": "Les utilisateurs",
+        "TELEPHONES": "Telephones",
+        "STAFF": "Personnel",
+        "CHANNELS": "Satellite",
+        "MODULES": "Modules",
+        "CM": "Gestionnaire de contacts",
+        "DIALER": "Dialer",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "La personnalisation",
+        "UPDATE": "Mise à jour",
+        "OTHERS": "Autres",
+        "SETTINGS": "Settings",
+        "GENERAL": "Général",
+        "SMTP": "Le protocole SMTP",
+        "NETWORKS": "Networks",
+        "UPDATES": "Mises",
+        "LICENSE": "La licence",
+        "ID": "Id",
+        "MIN_INTERNAL": "Intérieur Min",
+        "MIN_MAILBOX": "Boîte aux lettres Min",
+        "INSTALLED_AT": "Installé à",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "EDIT_GENERAL": "Général Modifier",
+        "SECURE_PASSWORD": "Mot de passe sécurisé",
+        "LOGO": "Logo",
+        "DEFAULT_LOGO": "Logo par défaut",
+        "DEFAULT_LOGIN_LOGO": "Logo de connexion par défaut",
+        "WHITELABEL": "White Label",
+        "DEFAULT_HEADER_WHITELABEL": "White Label Pied de page par défaut",
+        "HEADER_WHITELABEL": "White Label Pied de page",
+        "CREATED_AT": "Créé à",
+        "SAVE": "Sauvegarder",
+        "SMTP_HOST": "L'hôte SMTP",
+        "SMTP_USERNAME": "Nom d'utilisateur SMTP",
+        "DESCRIPTION": "Description",
+        "SMTP_PASSWORD": "Le mot de passe SMTP",
+        "SMTP_PORT": "Port SMTP",
+        "SMTP_SSL": "SSL SMTP",
+        "TYPE": "Type",
+        "ADDRESS": "Répondre",
+        "NEW_NETWORK": "Nouveau réseau",
+        "ADD_NETWORK": "Ajouter Network",
+        "HELP": {
+            "ADDRESS": "L'adresse du réseau",
+            "LOCALNETADDRESS": "L'adresse IP/masque de sous-réseau"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "L'adresse est nécessaire",
+            "MIN_INTERNAL_REQUIRED": "Le minimum requis est interne",
+            "MIN_MAILBOX_REQUIRED": "La boîte aux lettres minimum est requis",
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "HEADER_WHITELABEL_REQUIRED": "L'whitelabel est requis",
+            "LOCALNETADDRESS_REQUIRED": "Adresse Localnet nécessaire",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet doit être valide un modèle valable",
+            "ADDRESS_MUST_VALID_PATTERN": "Adresse doit être un modèle valable"
+        },
+        "EDIT_NETWORK": "Modifier un réseau",
+        "DELETE_NETWORK": "Réseau Supprimer",
+        "BACK": "Retour",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "EXPIRATION_DATE": "Date d'expiration",
+        "REQUEST_LICENSE": "Licence Demande",
+        "EMAIL": "Email",
+        "SEND": "Envoyer",
+        "PLAN": "Planifier",
+        "MONTH_TO_MONTH": "Un mois à l'autre",
+        "MOTION_PROCESS_MANAGEMENT": "La gestion des processus de mouvement",
+        "USEFUL_COMMANDS": "Commandes Utiles",
+        "COMMAND": "La commande",
+        "PM2_LIST": "Liste tous les processus",
+        "PM2_START": "Démarrer un processus par id ou nom",
+        "PM2_STOP": "Arrêter un processus par id ou nom, insérer 'tous' pour arrêter tous les processus actifs",
+        "PM2_RESTART": "Redémarrer un processus par id ou nom",
+        "PM2_LOGS": "Tous les journaux de flux fichier, ou spécifiques d'un id de processus ou d'un nom",
+        "PASSWORD": "Mot de passe oublié",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "STUNADDR": "Adresse STUN",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "Version actuelle",
+        "CUSTOMIZATIONS": "Personnalisations",
+        "LOCALNETADDRESS": "Adresse Localnet",
+        "NEW_VERSION": "Nouvelle Version",
+        "TOKEN": "Coup",
+        "NEW_TOKEN_DETECTED": "Nouveau jeton détecté",
+        "EXPIRATION_GRAY_PERIOD": "Période de fin de gris",
+        "NEW_TOKEN": "Nouveau jeton",
+        "EXPIRATION_REASON": "Raison d'expiration",
+        "PRICES": "Les prix",
+        "UPDATE_LICENSE": "Licence de mise à jour",
+        "LOGOLOGIN": "Logo de connexion",
+        "SMTP_SERVICE": "Publique",
+        "SMTP_SECURE": "Secure",
+        "UPDATING": "La mise à jour",
+        "REMOTE_VERSION": "Version à distance",
+        "NO_NEW_VERSION_AVAILABLE": "Pas de nouvelle version disponible",
+        "TRIAL_VERSION": "Version d'essai",
+        "RELOAD": "Recharger",
+        "VERIFY": "Vérifier"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/hi.json b/public/app/main/apps/settings/i18n/hi.json
new file mode 100644 (file)
index 0000000..66e423e
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "विचार-विमर्श",
+        "TOP_N_PROCESSES": "सूबेदार सुरिन९दर सिनह को सर्वोच्च महत्व}{} प्रक्रियाओं",
+        "SYSTEM": "प्रणाली",
+        "FILE_SYSTEM": "फ़ाइल सिस्टम",
+        "PROCESSES": "प्रक्रियाओं",
+        "MOUNT_POINT": "सजाना",
+        "AVG_LOAD": "भार वाले",
+        "TOTAL": "कुल",
+        "USED": "का इस्तेमाल",
+        "FREE": "मुक्त",
+        "NAME": "नाम",
+        "STATE": "राज्य",
+        "CHAT": "चैट",
+        "MAIL": "मेल",
+        "MESSAGING": "Sms",
+        "FAX": "फ़ैक्स",
+        "OPENCHANNEL": "चैनल खोलें",
+        "AGENTS": "एजेंटों",
+        "USERS": "प्रयोक्ता",
+        "TELEPHONES": "टेलीफोन",
+        "STAFF": "कर्मचारी",
+        "CHANNELS": "माध्यमों",
+        "MODULES": "मॉड्यूल",
+        "CM": "संपर्कों के प्रबंधक",
+        "DIALER": "Dialer",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "अनुकूलन को खो देंगे. क् या",
+        "UPDATE": "अद्यतन",
+        "OTHERS": "अन्य",
+        "SETTINGS": "सेटिंग्स",
+        "GENERAL": "सामान्य",
+        "SMTP": "SMTP",
+        "NETWORKS": "नेटवर्क",
+        "UPDATES": "अपडेट",
+        "LICENSE": "लाइसेंस",
+        "ID": "Id",
+        "MIN_INTERNAL": "मिन आंतरिक",
+        "MIN_MAILBOX": "मिन मेलबॉक्स",
+        "INSTALLED_AT": "संस्थापित",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "EDIT_GENERAL": "सामान्य संपादित करें",
+        "SECURE_PASSWORD": "पासवर्ड सुरक्षित करें",
+        "LOGO": "लोगो",
+        "DEFAULT_LOGO": "डिफ़ॉल्ट लोगो",
+        "DEFAULT_LOGIN_LOGO": "डिफ़ॉल्ट रूप से लॉग इन लोगो",
+        "WHITELABEL": "सफेद लेबल",
+        "DEFAULT_HEADER_WHITELABEL": "डिफ़ॉल्ट पादलेख सफेद लेबल",
+        "HEADER_WHITELABEL": "सफेद पादलेख लेबल",
+        "CREATED_AT": "सृजित",
+        "SAVE": "सहेजें",
+        "SMTP_HOST": "होस्ट SMTP",
+        "SMTP_USERNAME": "उपयोगकर्ता नाम SMTP",
+        "DESCRIPTION": "वर्णन",
+        "SMTP_PASSWORD": "पासवर्ड SMTP",
+        "SMTP_PORT": "SMTP पत्तन",
+        "SMTP_SSL": "SMTP SSL",
+        "TYPE": "प्रकार",
+        "ADDRESS": "पता",
+        "NEW_NETWORK": "नए नेटवर्क",
+        "ADD_NETWORK": "नेटवर्क जोड़ें",
+        "HELP": {
+            "ADDRESS": "नेटवर्क का पता",
+            "LOCALNETADDRESS": "IP पता/सबनेट मास् क"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "इस अभिभाषण की आवश्यकता है।",
+            "MIN_INTERNAL_REQUIRED": "आंतरिक न्यूनतम आवश्यकता है।",
+            "MIN_MAILBOX_REQUIRED": "प्लेन की न्यूनतम आवश्यकता है।",
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "HEADER_WHITELABEL_REQUIRED": "इस whitelabel अपेक्षित है।",
+            "LOCALNETADDRESS_REQUIRED": "पता Localnet अपेक्षित",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "एक मान्य होना Localnet मान्य स्वरूप",
+            "ADDRESS_MUST_VALID_PATTERN": "पता मान्य स्वरूप किया जाना चाहिए।"
+        },
+        "EDIT_NETWORK": "नेटवर्क संपादित करें",
+        "DELETE_NETWORK": "नेटवर्क हटाएं",
+        "BACK": "वापिस",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "EXPIRATION_DATE": "समाप्ति दिनांक",
+        "REQUEST_LICENSE": "मेरा अनुरोध है कि वह लाइसेंस",
+        "EMAIL": "ई-मेल",
+        "SEND": "भेजें",
+        "PLAN": "योजना के",
+        "MONTH_TO_MONTH": "महीनों",
+        "MOTION_PROCESS_MANAGEMENT": "प्रस्ताव की प्रक्रिया प्रबंधन",
+        "USEFUL_COMMANDS": "उपयोगी कमांड्स",
+        "COMMAND": "कमांड",
+        "PM2_LIST": "सभी प्रक्रियाओं की सूची",
+        "PM2_START": "प्रारंभ में प्रक्रिया द्वारा id या नाम",
+        "PM2_STOP": "रोकने के लिए एक प्रक्रिया'' नाम से id या डालें, प्रक्रियाओं को रोकने के लिए और सक्रिय",
+        "PM2_RESTART": "मध्यांतर से एक प्रक्रिया द्वारा id या नाम",
+        "PM2_LOGS": "सभी फ़ाइल या विशिष्ट प्रक्रिया की मुख्यधारा से लॉग id या नाम",
+        "PASSWORD": "पासवर्ड",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "STUNADDR": "पते को हराकर उलटफेर किया",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "वर्तमान संस्करण",
+        "CUSTOMIZATIONS": "आपके द्वारा किए गए",
+        "LOCALNETADDRESS": "Localnet पता",
+        "NEW_VERSION": "नए संस्करण",
+        "TOKEN": "टोकन",
+        "NEW_TOKEN_DETECTED": "नया टोकन का पता लगाया गया है.",
+        "EXPIRATION_GRAY_PERIOD": "ग्रे अवधि समाप्ति",
+        "NEW_TOKEN": "नया टोकन",
+        "EXPIRATION_REASON": "अधीना कारण",
+        "PRICES": "मूल्यों में",
+        "UPDATE_LICENSE": "अद्यतन लाइसेंस",
+        "LOGOLOGIN": "लॉग इन लोगो",
+        "SMTP_SERVICE": "सेवा के",
+        "SMTP_SECURE": "सुरक्षित",
+        "UPDATING": "अद्यतन",
+        "REMOTE_VERSION": "रिमोट संस्करण",
+        "NO_NEW_VERSION_AVAILABLE": "कोई नया संस्करण उपलब्ध",
+        "TRIAL_VERSION": "परीक्षण संस्करण",
+        "RELOAD": "पुन: लोड करें",
+        "VERIFY": "सत्यापित करें"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/it.json b/public/app/main/apps/settings/i18n/it.json
new file mode 100644 (file)
index 0000000..4398c1b
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "Interfaccia",
+        "TOP_N_PROCESSES": "Top {{value}} processi",
+        "SYSTEM": "Sistema",
+        "FILE_SYSTEM": "File System",
+        "MOUNT_POINT": "Mount",
+        "AVG_LOAD": "Carico Medio",
+        "PROCESSES": "Processes",
+        "FREE": "Free",
+        "TOTAL": "Totale",
+        "USED": "Usato",
+        "NAME": "Nome",
+        "STATE": "Stato",
+        "CHAT": "Chat",
+        "MAIL": "Mail",
+        "MESSAGING": "Sms",
+        "FAX": "Fax",
+        "OPENCHANNEL": "Open Channel",
+        "AGENTS": "Agenti",
+        "USERS": "Utenti",
+        "TELEPHONES": "Telefoni",
+        "STAFF": "Staff",
+        "CHANNELS": "Canali",
+        "MODULES": "Moduli",
+        "CM": "Manager Contatti",
+        "DIALER": "Dialer",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "Personalizza",
+        "UPDATE": "Aggiorna",
+        "OTHERS": "Altro",
+        "SETTINGS": "Impostazioni",
+        "GENERAL": "Generale",
+        "SMTP": "SMTP",
+        "NETWORKS": "Reti",
+        "UPDATES": "Aggiornamenti",
+        "LICENSE": "Licenza",
+        "ID": "Id",
+        "MIN_INTERNAL": "Numero Interno minimo",
+        "MIN_MAILBOX": "Numero di Casella Mail minimo",
+        "INSTALLED_AT": "Installato il",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "EDIT_GENERAL": "Modifica Generale",
+        "SECURE_PASSWORD": "Password Sicura",
+        "LOGO": "Logo",
+        "DEFAULT_LOGO": "Default Logo",
+        "DEFAULT_LOGIN_LOGO": "Default Login Logo",
+        "WHITELABEL": "White Label",
+        "DEFAULT_HEADER_WHITELABEL": "Default Footer White Label",
+        "HEADER_WHITELABEL": "Footer White Label",
+        "CREATED_AT": "Creato il",
+        "SAVE": "Salva",
+        "SMTP_HOST": "Host SMTP",
+        "SMTP_USERNAME": "Username SMTP",
+        "DESCRIPTION": "Descrizione",
+        "SMTP_PASSWORD": "Password SMTP",
+        "SMTP_PORT": "Porta SMTP",
+        "SMTP_SSL": "SMTP SSL",
+        "TYPE": "Tipo",
+        "ADDRESS": "Indirizzo",
+        "NEW_NETWORK": "Nuova Rete",
+        "ADD_NETWORK": "Aggiungi Rete",
+        "HELP": {
+            "ADDRESS": "L' indirizzo della rete",
+            "LOCALNETADDRESS": "Indirizzo IP/Subnet mask"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "L' Indirizzo è richiesto",
+            "MIN_INTERNAL_REQUIRED": "Il Numero Interno minimo è richiesto",
+            "MIN_MAILBOX_REQUIRED": "Il Numero di Casella Mail minimo è richiesto",
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "HEADER_WHITELABEL_REQUIRED": "La white label è richiesta",
+            "LOCALNETADDRESS_REQUIRED": "Localnet Indirizzo richiesto",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet deve essere valido un modello valido",
+            "ADDRESS_MUST_VALID_PATTERN": "Indirizzo deve essere un modello valido"
+        },
+        "EDIT_NETWORK": "Modifica Rete",
+        "DELETE_NETWORK": "Elimina Rete",
+        "BACK": "Indietro",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutti",
+        "SELECT_NONE": "Deseleziona tutti",
+        "EXPIRATION_DATE": "Data di scadenza",
+        "REQUEST_LICENSE": "Richiedi Licenza",
+        "EMAIL": "Email",
+        "SEND": "Invia",
+        "PLAN": "Piano",
+        "MONTH_TO_MONTH": "Mese per mese",
+        "MOTION_PROCESS_MANAGEMENT": "Gestione processi Motion",
+        "USEFUL_COMMANDS": "Comandi utili",
+        "COMMAND": "Comando",
+        "PM2_LIST": "Elenca tutti i processi",
+        "PM2_START": "Avvia un processo, specificato da id o dal nome",
+        "PM2_STOP": "Ferma un processo, specificato da id o nome. Inserire 'all' per fermare tutti i processi attivi",
+        "PM2_RESTART": "Riavvia un processo, specificato da id o nome",
+        "PM2_LOGS": "Visualizza i log di tutti i processi, o quello relativo ad un processo se ne viene specificato l' id o il nome",
+        "PASSWORD": "Password",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "STUNADDR": "Indirizzo STUN",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "Versione corrente",
+        "CUSTOMIZATIONS": "Personalizzazioni",
+        "LOCALNETADDRESS": "Indirizzo localnet",
+        "NEW_VERSION": "Nuova versione",
+        "TOKEN": "Token",
+        "NEW_TOKEN_DETECTED": "Nuovo Token rilevato",
+        "EXPIRATION_GRAY_PERIOD": "Scadenza Gray Period",
+        "NEW_TOKEN": "Nuovo Token",
+        "PRICES": "Prezzi",
+        "UPDATE_LICENSE": "Aggiorna Licenza",
+        "LOGOLOGIN": "Login Logo",
+        "EXPIRATION_REASON": "Motivo scadenza",
+        "SMTP_SERVICE": "Service",
+        "SMTP_SECURE": "Sicuro",
+        "UPDATING": "Aggiornamento",
+        "REMOTE_VERSION": "Versione remota",
+        "NO_NEW_VERSION_AVAILABLE": "Nessuna nuova versione disponibile",
+        "TRIAL_VERSION": "Versione di prova",
+        "RELOAD": "Ricaricare",
+        "VERIFY": "Verificare che"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/ja.json b/public/app/main/apps/settings/i18n/ja.json
new file mode 100644 (file)
index 0000000..256625c
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "インターフェイス",
+        "TOP_N_PROCESSES": "Top { { value } } プロセス",
+        "SYSTEM": "システム",
+        "FILE_SYSTEM": "ファイルシステム",
+        "PROCESSES": "プロセス",
+        "MOUNT_POINT": "マウント",
+        "AVG_LOAD": "平均負荷",
+        "TOTAL": "合計",
+        "USED": "使用されて",
+        "FREE": "無料",
+        "NAME": "名",
+        "STATE": "状態",
+        "CHAT": "チャット",
+        "MAIL": "電子メール",
+        "MESSAGING": "Sms",
+        "FAX": "Fax",
+        "OPENCHANNEL": "チャネルを開きます。",
+        "AGENTS": "エージェント",
+        "USERS": "ユーザー",
+        "TELEPHONES": "電話",
+        "STAFF": "スタッフ",
+        "CHANNELS": "チャネル",
+        "MODULES": "モジュール",
+        "CM": "連絡先管理マネージャ",
+        "DIALER": "ダイアラー",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "のカスタマイズ",
+        "UPDATE": "更新",
+        "OTHERS": "他",
+        "SETTINGS": "の設定",
+        "GENERAL": "一般的な",
+        "SMTP": "SMTP",
+        "NETWORKS": "ネットワーク",
+        "UPDATES": "更新",
+        "LICENSE": "ライセンス",
+        "ID": "Id",
+        "MIN_INTERNAL": "最小内部",
+        "MIN_MAILBOX": "分のメールボックス",
+        "INSTALLED_AT": "インストールされている",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "EDIT_GENERAL": "一般的な編集",
+        "SECURE_PASSWORD": "セキュリティで保護されたパスワード",
+        "LOGO": "ロゴ",
+        "DEFAULT_LOGO": "デフォルトのロゴ",
+        "DEFAULT_LOGIN_LOGO": "デフォルトのログインロゴ",
+        "WHITELABEL": "ホワイトラベル",
+        "DEFAULT_HEADER_WHITELABEL": "デフォルトフッターホワイトラベル",
+        "HEADER_WHITELABEL": "フッターのホワイトラベル",
+        "CREATED_AT": "で作成された",
+        "SAVE": "保存",
+        "SMTP_HOST": "SMTP ホストを指定します。",
+        "SMTP_USERNAME": "SMTP ユーザー名",
+        "DESCRIPTION": "説明",
+        "SMTP_PASSWORD": "SMTP パスワード",
+        "SMTP_PORT": "SMTP ポート",
+        "SMTP_SSL": "SMTP サーバーの SSL",
+        "TYPE": "タイプ",
+        "ADDRESS": "アドレス",
+        "NEW_NETWORK": "新しいネットワーク",
+        "ADD_NETWORK": "ネットワークを追加します。",
+        "HELP": {
+            "ADDRESS": "は、ネットワークのアドレス",
+            "LOCALNETADDRESS": "IP アドレス / サブネットマスク"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "アドレスが必要",
+            "MIN_INTERNAL_REQUIRED": "最小の内部が必要です",
+            "MIN_MAILBOX_REQUIRED": "最小のメールボックスが必要です",
+            "NAME_REQUIRED": "名前は必須です",
+            "HEADER_WHITELABEL_REQUIRED": "、 whitelabel は必要な",
+            "LOCALNETADDRESS_REQUIRED": "Localnet のアドレスが必要です",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet に有効なパターンが有効である必要があり",
+            "ADDRESS_MUST_VALID_PATTERN": "アドレスは、有効なパターンの必要があります"
+        },
+        "EDIT_NETWORK": "ネットワークの編集",
+        "DELETE_NETWORK": "ネットワークの削除",
+        "BACK": "背面",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "EXPIRATION_DATE": "有効期限日",
+        "REQUEST_LICENSE": "ライセンス要求",
+        "EMAIL": "電子メール",
+        "SEND": "送信",
+        "PLAN": "計画",
+        "MONTH_TO_MONTH": "の月",
+        "MOTION_PROCESS_MANAGEMENT": "Motion のプロセス管理",
+        "USEFUL_COMMANDS": "便利なコマンド",
+        "COMMAND": "コマンド",
+        "PM2_LIST": "すべてのプロセスをリストする",
+        "PM2_START": "Id または名前を入力してプロセスを開始します。",
+        "PM2_STOP": "Id または名前を入力してプロセスを停止するには、挿入する「すべて」のアクティブなすべてのプロセスを停止する",
+        "PM2_RESTART": "Id または名前を入力してプロセスを再起動する",
+        "PM2_LOGS": "ストリームのすべてのログファイル、またはプロセス ID または名前が特定の",
+        "PASSWORD": "パスワード",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "STUNADDR": "アドレスを気絶させる",
+        "CHANGELOG": "変更履歴",
+        "CURRENT_VERSION": "現在のバージョン",
+        "CUSTOMIZATIONS": "のカスタマイズ",
+        "LOCALNETADDRESS": "Localnet アドレス",
+        "NEW_VERSION": "新しいバージョン",
+        "TOKEN": "トークン",
+        "NEW_TOKEN_DETECTED": "新しいトークンが検出されました",
+        "EXPIRATION_GRAY_PERIOD": "グレーの期間の有効期限",
+        "NEW_TOKEN": "新しいトークン",
+        "EXPIRATION_REASON": "有効期限の理由",
+        "PRICES": "価格",
+        "UPDATE_LICENSE": "ライセンスの更新",
+        "LOGOLOGIN": "ログインロゴ",
+        "SMTP_SERVICE": "サービス",
+        "SMTP_SECURE": "セキュリティ保護された",
+        "UPDATING": "の更新",
+        "REMOTE_VERSION": "リモートのバージョン",
+        "NO_NEW_VERSION_AVAILABLE": "新しいバージョンはご利用いただけません。",
+        "TRIAL_VERSION": "トライアルバージョン",
+        "RELOAD": "再ロード",
+        "VERIFY": "ていることを確認"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/ko.json b/public/app/main/apps/settings/i18n/ko.json
new file mode 100644 (file)
index 0000000..d72f494
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "인터페이스",
+        "TOP_N_PROCESSES": "Top {{value}} 프로세스",
+        "SYSTEM": "시스템",
+        "FILE_SYSTEM": "파일 시스템",
+        "PROCESSES": "프로세스",
+        "MOUNT_POINT": "마운트",
+        "AVG_LOAD": "평균 로드",
+        "TOTAL": "총",
+        "USED": "중고",
+        "FREE": "무료",
+        "NAME": "이름",
+        "STATE": "상태",
+        "CHAT": "채팅",
+        "MAIL": "메일",
+        "MESSAGING": "Sms",
+        "FAX": "팩스",
+        "OPENCHANNEL": "채널",
+        "AGENTS": "상담원",
+        "USERS": "사용자",
+        "TELEPHONES": "전화기",
+        "STAFF": "직원",
+        "CHANNELS": "채널",
+        "MODULES": "모듈",
+        "CM": "연락처 관리자",
+        "DIALER": "전화 걸기",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "사용자 정의",
+        "UPDATE": "업데이트",
+        "OTHERS": "다른",
+        "SETTINGS": "설정",
+        "GENERAL": "일반",
+        "SMTP": "SMTP",
+        "NETWORKS": "네트워크",
+        "UPDATES": "업데이트",
+        "LICENSE": "라이센스",
+        "ID": "Id",
+        "MIN_INTERNAL": "최소 내부",
+        "MIN_MAILBOX": "Min 사서함",
+        "INSTALLED_AT": "설치 시간",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "EDIT_GENERAL": "일반 편집",
+        "SECURE_PASSWORD": "보안 암호",
+        "LOGO": "로고",
+        "DEFAULT_LOGO": "기본 로고",
+        "DEFAULT_LOGIN_LOGO": "기본 로그인 로고",
+        "WHITELABEL": "흰색 라벨",
+        "DEFAULT_HEADER_WHITELABEL": "기본 바닥글 흰색 라벨",
+        "HEADER_WHITELABEL": "바닥글 흰색 라벨",
+        "CREATED_AT": "생성",
+        "SAVE": "저장",
+        "SMTP_HOST": "SMTP 호스트",
+        "SMTP_USERNAME": "SMTP Username",
+        "DESCRIPTION": "설명",
+        "SMTP_PASSWORD": "SMTP 암호",
+        "SMTP_PORT": "SMTP 포트",
+        "SMTP_SSL": "SMTP SSL",
+        "TYPE": "유형",
+        "ADDRESS": "주소",
+        "NEW_NETWORK": "새로운 네트워크",
+        "ADD_NETWORK": "네트워크 추가",
+        "HELP": {
+            "ADDRESS": "네트워크 주소",
+            "LOCALNETADDRESS": "IP 주소/서브넷 마스크"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "주소가 필요합니다.",
+            "MIN_INTERNAL_REQUIRED": "최소 내부 필요합니다.",
+            "MIN_MAILBOX_REQUIRED": "최소 사서함이 필요합니다.",
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "HEADER_WHITELABEL_REQUIRED": "이 whitelabel 필요합니다.",
+            "LOCALNETADDRESS_REQUIRED": "Localnet 주소 필요",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet 유효한 유효한 패턴 합니다.",
+            "ADDRESS_MUST_VALID_PATTERN": "주소는 유효한 패턴 합니다."
+        },
+        "EDIT_NETWORK": "네트워크 편집",
+        "DELETE_NETWORK": "네트워크 삭제",
+        "BACK": "후면",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "EXPIRATION_DATE": "만료 날짜",
+        "REQUEST_LICENSE": "라이센스",
+        "EMAIL": "E-mail",
+        "SEND": "보내기",
+        "PLAN": "계획",
+        "MONTH_TO_MONTH": "한 달에 ______ 매달",
+        "MOTION_PROCESS_MANAGEMENT": "동작 프로세스 관리",
+        "USEFUL_COMMANDS": "유용한 명령",
+        "COMMAND": "명령",
+        "PM2_LIST": "모든 프로세스 나열",
+        "PM2_START": "Id 또는 이름을 가진 프로세스 시작",
+        "PM2_STOP": "Id 또는 이름을 가진 프로세스 중지, 삽입 'ALL'을 진행 중인 모든 프로세스 중지",
+        "PM2_RESTART": "Id 또는 이름을 가진 프로세스 재시작",
+        "PM2_LOGS": "스트림 모든 로그 파일 또는 프로세스 ID 또는 이름을 특정",
+        "PASSWORD": "암호",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "STUNADDR": "무슨 일이든지 주소",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "현재 버전",
+        "CUSTOMIZATIONS": "사용자 정의",
+        "LOCALNETADDRESS": "Localnet 주소",
+        "NEW_VERSION": "새 버전",
+        "TOKEN": "토큰",
+        "NEW_TOKEN_DETECTED": "새 토큰 감지됨",
+        "EXPIRATION_GRAY_PERIOD": "회색 기간 만료",
+        "NEW_TOKEN": "새 토큰",
+        "EXPIRATION_REASON": "만료 사유",
+        "PRICES": "가격",
+        "UPDATE_LICENSE": "업데이트 라이센스",
+        "LOGOLOGIN": "로그인 로고",
+        "SMTP_SERVICE": "서비스",
+        "SMTP_SECURE": "보안",
+        "UPDATING": "업데이트",
+        "REMOTE_VERSION": "원격 버전",
+        "NO_NEW_VERSION_AVAILABLE": "사용 가능한 새 버전이 없습니다",
+        "TRIAL_VERSION": "평가판 버전",
+        "RELOAD": "다시 로드",
+        "VERIFY": "확인"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/nl.json b/public/app/main/apps/settings/i18n/nl.json
new file mode 100644 (file)
index 0000000..1726fab
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "Interface",
+        "TOP_N_PROCESSES": "Top {{value}} processen",
+        "SYSTEM": "Systeem",
+        "FILE_SYSTEM": "Bestandssysteem",
+        "PROCESSES": "Processen",
+        "MOUNT_POINT": "Mount",
+        "AVG_LOAD": "Gem Belasting",
+        "TOTAL": "Totaal",
+        "USED": "Gebruikt",
+        "FREE": "Gratis",
+        "NAME": "Naam",
+        "STATE": "Staat",
+        "CHAT": "Chat",
+        "MAIL": "Mail",
+        "MESSAGING": "Sms",
+        "FAX": "Fax",
+        "OPENCHANNEL": "Open kanaal",
+        "AGENTS": "Agenten",
+        "USERS": "Gebruikers",
+        "TELEPHONES": "Telefoons",
+        "STAFF": "Personeel",
+        "CHANNELS": "Kanalen",
+        "MODULES": "Modules",
+        "CM": "Contact Manager",
+        "DIALER": "Telefoonkiezer",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "Aanpassingsmogelijkheden",
+        "UPDATE": "Update",
+        "OTHERS": "Anderen",
+        "SETTINGS": "Instellingen",
+        "GENERAL": "Algemeen",
+        "SMTP": "SMTP",
+        "NETWORKS": "Netwerken",
+        "UPDATES": "Updates",
+        "LICENSE": "Licentie",
+        "ID": "Id",
+        "MIN_INTERNAL": "Min interne",
+        "MIN_MAILBOX": "Min Mailbox",
+        "INSTALLED_AT": "Geïnstalleerd op",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "EDIT_GENERAL": "Edit algemene",
+        "SECURE_PASSWORD": "Veilige wachtwoorden",
+        "LOGO": "Logo",
+        "DEFAULT_LOGO": "Standaard Logo",
+        "DEFAULT_LOGIN_LOGO": "Standaardaanmeldings-logo",
+        "WHITELABEL": "White Label",
+        "DEFAULT_HEADER_WHITELABEL": "Standaard Voettekst White Label",
+        "HEADER_WHITELABEL": "Footer White Label",
+        "CREATED_AT": "Gemaakt op",
+        "SAVE": "Opslaan",
+        "SMTP_HOST": "SMTP-host",
+        "SMTP_USERNAME": "SMTP-gebruikersnaam",
+        "DESCRIPTION": "Beschrijving",
+        "SMTP_PASSWORD": "SMTP-wachtwoord",
+        "SMTP_PORT": "SMTP-poort",
+        "SMTP_SSL": "SMTP SSL",
+        "TYPE": "Type",
+        "ADDRESS": "Adres",
+        "NEW_NETWORK": "Nieuw netwerk",
+        "ADD_NETWORK": "Netwerkhost toevoegen",
+        "HELP": {
+            "ADDRESS": "Het adres van het netwerk",
+            "LOCALNETADDRESS": "IP-adres/subnetmasker"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "Het adres is vereist.",
+            "MIN_INTERNAL_REQUIRED": "De minimale inwendige is vereist",
+            "MIN_MAILBOX_REQUIRED": "De minimale postbus is vereist",
+            "NAME_REQUIRED": "De naam is verplicht",
+            "HEADER_WHITELABEL_REQUIRED": "De whitelabel is vereist",
+            "LOCALNETADDRESS_REQUIRED": "Adres localnet vereist",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet moet geldig een geldig patroon",
+            "ADDRESS_MUST_VALID_PATTERN": "Adres moet een geldig patroon"
+        },
+        "EDIT_NETWORK": "Edit netwerk",
+        "DELETE_NETWORK": "Netwerk verwijderen",
+        "BACK": "Terug",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "EXPIRATION_DATE": "Vervaldatum",
+        "REQUEST_LICENSE": "Licentie aanvragen",
+        "EMAIL": "E-mail",
+        "SEND": "Verzenden",
+        "PLAN": "Plan",
+        "MONTH_TO_MONTH": "Maand",
+        "MOTION_PROCESS_MANAGEMENT": "Motion Procesbeheer",
+        "USEFUL_COMMANDS": "Nuttige opdrachten",
+        "COMMAND": "Commando",
+        "PM2_LIST": "Lijst alle processen",
+        "PM2_START": "Een proces gestart met id of naam",
+        "PM2_STOP": "Stop een proces-id of naam in te voegen: \"Alle\" om alle actieve processen",
+        "PM2_RESTART": "Start een proces-id of naam",
+        "PM2_LOGS": "Stream alle logboeken bestand of specifieke proces-id of naam",
+        "PASSWORD": "Wachtwoord",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "STUNADDR": "STUN adres",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "Huidige versie",
+        "CUSTOMIZATIONS": "Aanpassingen",
+        "LOCALNETADDRESS": "Adres localnet",
+        "NEW_VERSION": "Nieuwe versie",
+        "TOKEN": "Token",
+        "NEW_TOKEN_DETECTED": "Nieuwe token gedetecteerd",
+        "EXPIRATION_GRAY_PERIOD": "Grijze periode verstrijken",
+        "NEW_TOKEN": "Nieuwe Token",
+        "EXPIRATION_REASON": "Expiratie reden",
+        "PRICES": "Prijzen",
+        "UPDATE_LICENSE": "Update License",
+        "LOGOLOGIN": "Login Logo",
+        "SMTP_SERVICE": "Service",
+        "SMTP_SECURE": "Beveiligen",
+        "UPDATING": "Bijwerken",
+        "REMOTE_VERSION": "Externe versie",
+        "NO_NEW_VERSION_AVAILABLE": "Geen nieuwe versie beschikbaar",
+        "TRIAL_VERSION": "Evaluatieversie",
+        "RELOAD": "Reload",
+        "VERIFY": "Controleren"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/no.json b/public/app/main/apps/settings/i18n/no.json
new file mode 100644 (file)
index 0000000..2b5127c
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "Grensesnitt",
+        "TOP_N_PROCESSES": "Toppen {{value}} prosesser",
+        "SYSTEM": "Systemet",
+        "FILE_SYSTEM": "File System",
+        "PROCESSES": "Prosesser",
+        "MOUNT_POINT": "Montering",
+        "AVG_LOAD": "Gj.sn. last",
+        "TOTAL": "Totalt",
+        "USED": "Brukt",
+        "FREE": "Gratis",
+        "NAME": "Navn",
+        "STATE": "Tilstand",
+        "CHAT": "Chat",
+        "MAIL": "Post",
+        "MESSAGING": "Sms",
+        "FAX": "Faks",
+        "OPENCHANNEL": "Åpen kanal",
+        "AGENTS": "Agenter",
+        "USERS": "Brukere",
+        "TELEPHONES": "Telefoner",
+        "STAFF": "Personale",
+        "CHANNELS": "Kanaler",
+        "MODULES": "Moduler",
+        "CM": "Kontakter Manager",
+        "DIALER": "Dialer",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "Tilpasning",
+        "UPDATE": "Oppdatere",
+        "OTHERS": "Andre",
+        "SETTINGS": "Innstillinger",
+        "GENERAL": "Generelt",
+        "SMTP": "SMTP",
+        "NETWORKS": "Nettverk",
+        "UPDATES": "Oppdateringer",
+        "LICENSE": "Lisens",
+        "ID": "Id",
+        "MIN_INTERNAL": "Min interne",
+        "MIN_MAILBOX": "Min postboks",
+        "INSTALLED_AT": "Er installert på",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "EDIT_GENERAL": "Rediger generelt",
+        "SECURE_PASSWORD": "Sikre passord",
+        "LOGO": "Logoen",
+        "DEFAULT_LOGO": "Standard-logoen",
+        "DEFAULT_LOGIN_LOGO": "Standard pålogging logoen",
+        "WHITELABEL": "Hvit etikett",
+        "DEFAULT_HEADER_WHITELABEL": "Standard bunntekst hvit etikett",
+        "HEADER_WHITELABEL": "Bunnteksten hvit etikett",
+        "CREATED_AT": "Opprettet i",
+        "SAVE": "Lagre",
+        "SMTP_HOST": "SMTP-vert",
+        "SMTP_USERNAME": "SMTP-brukernavn",
+        "DESCRIPTION": "Beskrivelse",
+        "SMTP_PASSWORD": "SMTP-passord",
+        "SMTP_PORT": "SMTP-port",
+        "SMTP_SSL": "SMTP-SSL",
+        "TYPE": "Type",
+        "ADDRESS": "Adresse",
+        "NEW_NETWORK": "Nytt nettverk",
+        "ADD_NETWORK": "Legg til nettverk",
+        "HELP": {
+            "ADDRESS": "Adressen til nettverket",
+            "LOCALNETADDRESS": "IP-adresse/subnettmasken"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "Adressen er nødvendig",
+            "MIN_INTERNAL_REQUIRED": "Den minste interne er nødvendig",
+            "MIN_MAILBOX_REQUIRED": "Den minste postboksen er nødvendig",
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "HEADER_WHITELABEL_REQUIRED": "Det whitelabel er nødvendig",
+            "LOCALNETADDRESS_REQUIRED": "Localnet adresse kreves",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet må være gyldig en gyldig mønster",
+            "ADDRESS_MUST_VALID_PATTERN": "Adressen må være en gyldig mønster"
+        },
+        "EDIT_NETWORK": "Endre nettverk",
+        "DELETE_NETWORK": "Slette nettverket",
+        "BACK": "Tilbake",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "EXPIRATION_DATE": "Utløpsdato",
+        "REQUEST_LICENSE": "Be om lisens",
+        "EMAIL": "E",
+        "SEND": "Send",
+        "PLAN": "Plan",
+        "MONTH_TO_MONTH": "Måned for måned",
+        "MOTION_PROCESS_MANAGEMENT": "Motion Process Management",
+        "USEFUL_COMMANDS": "Nyttige kommandoer",
+        "COMMAND": "Kommando",
+        "PM2_LIST": "Liste over alle prosesser",
+        "PM2_START": "Starte en prosess-ID eller navn",
+        "PM2_STOP": "Stoppe en prosess-ID eller navn, sett inn 'Alle' for å stoppe alle aktive prosesser",
+        "PM2_RESTART": "Starte en prosess-ID eller navn",
+        "PM2_LOGS": "Stream alle logger fil, eller bestemt av en prosess-ID eller navn",
+        "PASSWORD": "Passord",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "STUNADDR": "Svimeslår adresse",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "Gjeldende versjon",
+        "CUSTOMIZATIONS": "Tilpasninger",
+        "LOCALNETADDRESS": "Localnet adresse",
+        "NEW_VERSION": "Ny versjon",
+        "TOKEN": "Brikke",
+        "NEW_TOKEN_DETECTED": "Ny brikke oppdaget",
+        "EXPIRATION_GRAY_PERIOD": "Grå perioden utløper.",
+        "NEW_TOKEN": "Ny brikke",
+        "EXPIRATION_REASON": "Utløpsdato årsak",
+        "PRICES": "Priser",
+        "UPDATE_LICENSE": "Oppdater lisens",
+        "LOGOLOGIN": "Logg inn logoen",
+        "SMTP_SERVICE": "Service",
+        "SMTP_SECURE": "Sikker",
+        "UPDATING": "Oppdatering",
+        "REMOTE_VERSION": "Ekstern versjon",
+        "NO_NEW_VERSION_AVAILABLE": "Ingen ny versjon er tilgjengelig",
+        "TRIAL_VERSION": "Prøveversjon",
+        "RELOAD": "Laste inn",
+        "VERIFY": "Kontroller"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/pt-PT.json b/public/app/main/apps/settings/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..d7567f8
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "Interface",
+        "TOP_N_PROCESSES": "Topo {{valor}} processos",
+        "SYSTEM": "Sistema",
+        "FILE_SYSTEM": "Sistema de arquivo",
+        "PROCESSES": "Processos",
+        "MOUNT_POINT": "Montar",
+        "AVG_LOAD": "O tempo médio de carga",
+        "TOTAL": "Total",
+        "USED": "Usado",
+        "FREE": "Livre",
+        "NAME": "Nome",
+        "STATE": "Estado",
+        "CHAT": "Bate-papo",
+        "MAIL": "Correio electrónico",
+        "MESSAGING": "O SMS",
+        "FAX": "Fax",
+        "OPENCHANNEL": "Canal aberto",
+        "AGENTS": "Agentes",
+        "USERS": "Os usuários",
+        "TELEPHONES": "Telefones",
+        "STAFF": "Pessoal",
+        "CHANNELS": "Canais",
+        "MODULES": "Módulos",
+        "CM": "Gerenciador de contatos",
+        "DIALER": "Discador",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "Personalização",
+        "UPDATE": "Atualizar",
+        "OTHERS": "Outros",
+        "SETTINGS": "Definições",
+        "GENERAL": "Geral",
+        "SMTP": "SMTP",
+        "NETWORKS": "Redes",
+        "UPDATES": "Atualizações",
+        "LICENSE": "Licença",
+        "ID": "Id",
+        "MIN_INTERNAL": "Interna mín",
+        "MIN_MAILBOX": "Min de Correio",
+        "INSTALLED_AT": "Instalado em",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "EDIT_GENERAL": "Editar geral",
+        "SECURE_PASSWORD": "Senha segura",
+        "LOGO": "Logotipo",
+        "DEFAULT_LOGO": "Logotipo padrão",
+        "DEFAULT_LOGIN_LOGO": "Logotipo de Login padrão",
+        "WHITELABEL": "Etiqueta branca",
+        "DEFAULT_HEADER_WHITELABEL": "Etiqueta branca de rodapé padrão",
+        "HEADER_WHITELABEL": "Rodapé Etiqueta branca",
+        "CREATED_AT": "Criado em",
+        "SAVE": "Salvar",
+        "SMTP_HOST": "Host SMTP",
+        "SMTP_USERNAME": "Nome de usuário SMTP",
+        "DESCRIPTION": "Descrição",
+        "SMTP_PASSWORD": "Palavra passe SMTP",
+        "SMTP_PORT": "Porta SMTP",
+        "SMTP_SSL": "SSL SMTP",
+        "TYPE": "Tipo",
+        "ADDRESS": "Endereço",
+        "NEW_NETWORK": "Nova Rede",
+        "ADD_NETWORK": "Adicionar a rede",
+        "HELP": {
+            "ADDRESS": "O endereço da rede",
+            "LOCALNETADDRESS": "A máscara de sub-rede/endereço IP"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "O endereço é obrigatório",
+            "MIN_INTERNAL_REQUIRED": "O mínimo é necessário interno",
+            "MIN_MAILBOX_REQUIRED": "É necessário o mínimo de caixa de correio",
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "HEADER_WHITELABEL_REQUIRED": "A whitelabel é necessária",
+            "LOCALNETADDRESS_REQUIRED": "Localnet Endereço requerido",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet deve ser válido para um padrão válido",
+            "ADDRESS_MUST_VALID_PATTERN": "O endereço deve ser um padrão válido"
+        },
+        "EDIT_NETWORK": "Editar rede",
+        "DELETE_NETWORK": "Excluir redes",
+        "BACK": "De volta",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "EXPIRATION_DATE": "Data de Expiração",
+        "REQUEST_LICENSE": "Pedido de licença",
+        "EMAIL": "Email",
+        "SEND": "Enviar",
+        "PLAN": "Plano",
+        "MONTH_TO_MONTH": "Mês a mês",
+        "MOTION_PROCESS_MANAGEMENT": "Gestão do processo de movimento",
+        "USEFUL_COMMANDS": "Comandos úteis",
+        "COMMAND": "O comando",
+        "PM2_LIST": "Lista todos os processos",
+        "PM2_START": "Iniciar um processo por ID ou nome",
+        "PM2_STOP": "Parar um processo por ID ou nome, insira 'todos' para parar todos os processos ativos",
+        "PM2_RESTART": "Reiniciar um processo por ID ou nome",
+        "PM2_LOGS": "Todos os registros de fluxo de arquivo, ou específicas de um processo ID ou nome",
+        "PASSWORD": "Senha",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "STUNADDR": "Endereço de STUN",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "Versão atual",
+        "CUSTOMIZATIONS": "As personalizações",
+        "LOCALNETADDRESS": "Endereço Localnet",
+        "NEW_VERSION": "Nova Versão",
+        "TOKEN": "Token",
+        "NEW_TOKEN_DETECTED": "Novo Token Detectado",
+        "EXPIRATION_GRAY_PERIOD": "Expiração do Período cinzento",
+        "NEW_TOKEN": "Novo Token",
+        "EXPIRATION_REASON": "Motivo de expiração",
+        "PRICES": "Preços",
+        "UPDATE_LICENSE": "Licença de actualização",
+        "LOGOLOGIN": "Logotipo de login",
+        "SMTP_SERVICE": "Serviço",
+        "SMTP_SECURE": "Prenda",
+        "UPDATING": "A atualização",
+        "REMOTE_VERSION": "Versão Remote",
+        "NO_NEW_VERSION_AVAILABLE": "Nenhuma versão nova disponível",
+        "TRIAL_VERSION": "Versão de teste",
+        "RELOAD": "Recarregar",
+        "VERIFY": "Verifique"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/ru.json b/public/app/main/apps/settings/i18n/ru.json
new file mode 100644 (file)
index 0000000..3761eae
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "Интерфейс",
+        "TOP_N_PROCESSES": "Верхняя {{значение}} процессов",
+        "SYSTEM": "Системы",
+        "FILE_SYSTEM": "Файловой системы",
+        "PROCESSES": "Процессы",
+        "MOUNT_POINT": "Крепление",
+        "AVG_LOAD": "AVG нагрузки",
+        "TOTAL": "Итого",
+        "USED": "Используется",
+        "FREE": "Бесплатно",
+        "NAME": "Имя",
+        "STATE": "Государство",
+        "CHAT": "Чат",
+        "MAIL": "По электронной почте",
+        "MESSAGING": "Sms",
+        "FAX": "Факс",
+        "OPENCHANNEL": "Открыть канал",
+        "AGENTS": "Операторы",
+        "USERS": "Пользователи",
+        "TELEPHONES": "Телефоны",
+        "STAFF": "Персонал",
+        "CHANNELS": "Каналы",
+        "MODULES": "Модули",
+        "CM": "Контакты Manager",
+        "DIALER": "Система автоматического обзвона",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "Пользовательская настройка",
+        "UPDATE": "Обновление",
+        "OTHERS": "Другие",
+        "SETTINGS": "Настройки",
+        "GENERAL": "Генеральной",
+        "SMTP": "Сервер SMTP",
+        "NETWORKS": "Сетей",
+        "UPDATES": "Обновления",
+        "LICENSE": "Лицензии",
+        "ID": "Id",
+        "MIN_INTERNAL": "Мин. Внутренний",
+        "MIN_MAILBOX": "Мин почтового ящика",
+        "INSTALLED_AT": "Установлен на",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "EDIT_GENERAL": "Редактировать общие",
+        "SECURE_PASSWORD": "Безопасный пароль",
+        "LOGO": "Логотип",
+        "DEFAULT_LOGO": "Логотип по умолчанию",
+        "DEFAULT_LOGIN_LOGO": "Введите логин и пароль по умолчанию логотип",
+        "WHITELABEL": "На этикетке белого цвета",
+        "DEFAULT_HEADER_WHITELABEL": "Нижний колонтитул по умолчанию на этикетке белого цвета",
+        "HEADER_WHITELABEL": "Нижний колонтитул этикетке белого цвета",
+        "CREATED_AT": "Созданные в",
+        "SAVE": "Сохранить",
+        "SMTP_HOST": "Узел SMTP",
+        "SMTP_USERNAME": "Имя пользователя SMTP",
+        "DESCRIPTION": "Описание",
+        "SMTP_PASSWORD": "Пароль SMTP",
+        "SMTP_PORT": "Порт SMTP",
+        "SMTP_SSL": "SSL SMTP",
+        "TYPE": "Тип",
+        "ADDRESS": "Адрес",
+        "NEW_NETWORK": "Новая сеть",
+        "ADD_NETWORK": "Добавить сеть",
+        "HELP": {
+            "ADDRESS": "Адрес сети",
+            "LOCALNETADDRESS": "IP-адрес и маску подсети"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "Адрес не требуется",
+            "MIN_INTERNAL_REQUIRED": "Минимальный внутренний не требуется",
+            "MIN_MAILBOX_REQUIRED": "Минимальная почтового ящика не требуется",
+            "NAME_REQUIRED": "Это имя требуется",
+            "HEADER_WHITELABEL_REQUIRED": "В whitelabel не требуется",
+            "LOCALNETADDRESS_REQUIRED": "Адрес Localnet требуется",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet должен быть действительным действительный шаблон",
+            "ADDRESS_MUST_VALID_PATTERN": "Адрес должен быть действительным шаблон"
+        },
+        "EDIT_NETWORK": "Редактировать сети",
+        "DELETE_NETWORK": "Удалить сеть",
+        "BACK": "Назад",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "EXPIRATION_DATE": "Дата окончания срока действия",
+        "REQUEST_LICENSE": "Запрос лицензии",
+        "EMAIL": "Адрес электронной почты",
+        "SEND": "Отправить",
+        "PLAN": "План действий",
+        "MONTH_TO_MONTH": "Месяца в месяц",
+        "MOTION_PROCESS_MANAGEMENT": "Движение процесса управления",
+        "USEFUL_COMMANDS": "Полезных команд",
+        "COMMAND": "Команда",
+        "PM2_LIST": "Список всех процессов",
+        "PM2_START": "Начать процесс по ID или Имя",
+        "PM2_STOP": "Остановить процесс по id или имя, вставьте 'все', чтобы остановить все активные процессы",
+        "PM2_RESTART": "Перезапуск процесса с идентификатором или именем",
+        "PM2_LOGS": "Поток все журналы файл, или конкретных процесса идентификатор или имя",
+        "PASSWORD": "Пароль",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "STUNADDR": "Изумите адрес",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "Текущая версия",
+        "CUSTOMIZATIONS": "Пользовательские настройки",
+        "LOCALNETADDRESS": "Адрес Localnet",
+        "NEW_VERSION": "Новая версия",
+        "TOKEN": "Маркер",
+        "NEW_TOKEN_DETECTED": "Новый маркер обнаружен",
+        "EXPIRATION_GRAY_PERIOD": "Серый Период истечения срока действия",
+        "NEW_TOKEN": "Новый маркер",
+        "EXPIRATION_REASON": "Причина истечения срока действия",
+        "PRICES": "Цены",
+        "UPDATE_LICENSE": "Обновить лицензию",
+        "LOGOLOGIN": "Введите логин и пароль логотип",
+        "SMTP_SERVICE": "Сервис",
+        "SMTP_SECURE": "Закрепите",
+        "UPDATING": "Обновления",
+        "REMOTE_VERSION": "Удаленная версия",
+        "NO_NEW_VERSION_AVAILABLE": "Не доступна новая версия",
+        "TRIAL_VERSION": "Пробная версия",
+        "RELOAD": "Перезагрузить",
+        "VERIFY": "Проверить"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/sv.json b/public/app/main/apps/settings/i18n/sv.json
new file mode 100644 (file)
index 0000000..b594c4f
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "Gränssnitt",
+        "TOP_N_PROCESSES": "Övre {{värde}} processer",
+        "SYSTEM": "Systemet",
+        "FILE_SYSTEM": "Filsystem",
+        "PROCESSES": "Processer",
+        "MOUNT_POINT": "Montera",
+        "AVG_LOAD": "AVG last",
+        "TOTAL": "Totalt",
+        "USED": "Används",
+        "FREE": "Fri",
+        "NAME": "Namn",
+        "STATE": "Stat",
+        "CHAT": "Chatt",
+        "MAIL": "Post",
+        "MESSAGING": "Sms",
+        "FAX": "Fax",
+        "OPENCHANNEL": "Öppen kanal",
+        "AGENTS": "Agenter",
+        "USERS": "Användare",
+        "TELEPHONES": "Telefoner",
+        "STAFF": "Personal",
+        "CHANNELS": "Kanaler",
+        "MODULES": "Moduler",
+        "CM": "Kontakter som chefen",
+        "DIALER": "Dialer",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "Anpassning",
+        "UPDATE": "Uppdatera",
+        "OTHERS": "Andra",
+        "SETTINGS": "Inställningar",
+        "GENERAL": "Allmänt",
+        "SMTP": "SMTP",
+        "NETWORKS": "Nätverk",
+        "UPDATES": "Uppdateringar",
+        "LICENSE": "Licens",
+        "ID": "Id",
+        "MIN_INTERNAL": "Min inre",
+        "MIN_MAILBOX": "Min brevlåda",
+        "INSTALLED_AT": "Installerad",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "EDIT_GENERAL": "Redigera allmän",
+        "SECURE_PASSWORD": "Säkra lösenord",
+        "LOGO": "Logotyp",
+        "DEFAULT_LOGO": "Standard-logotypen",
+        "DEFAULT_LOGIN_LOGO": "Standard Login logotyp",
+        "WHITELABEL": "Vit etikett",
+        "DEFAULT_HEADER_WHITELABEL": "Standard sidfot vit etikett",
+        "HEADER_WHITELABEL": "Sidfoten vit etikett",
+        "CREATED_AT": "Skapad",
+        "SAVE": "Spara",
+        "SMTP_HOST": "SMTP-värd",
+        "SMTP_USERNAME": "SMTP användarnamn",
+        "DESCRIPTION": "Beskrivning",
+        "SMTP_PASSWORD": "SMTP-lösenord",
+        "SMTP_PORT": "SMTP-port",
+        "SMTP_SSL": "SMTP SSL",
+        "TYPE": "Typ",
+        "ADDRESS": "Adress",
+        "NEW_NETWORK": "Nytt nätverk",
+        "ADD_NETWORK": "Lägg till nätverk",
+        "HELP": {
+            "ADDRESS": "Adressen till nätverket",
+            "LOCALNETADDRESS": "IP-adress/Nätmask"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "Adressen är obligatoriskt",
+            "MIN_INTERNAL_REQUIRED": "Den minsta inre krävs",
+            "MIN_MAILBOX_REQUIRED": "Den minsta brevlåda krävs",
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "HEADER_WHITELABEL_REQUIRED": "Den moderator krävs",
+            "LOCALNETADDRESS_REQUIRED": "Localnet adress",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet måste vara giltig giltig mönster",
+            "ADDRESS_MUST_VALID_PATTERN": "Adress måste vara en giltig mönster"
+        },
+        "EDIT_NETWORK": "Edit Network",
+        "DELETE_NETWORK": "Ta bort nätverket",
+        "BACK": "Tillbaka",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "EXPIRATION_DATE": "Utgångsdatum",
+        "REQUEST_LICENSE": "Begäran licens",
+        "EMAIL": "Email",
+        "SEND": "Skicka",
+        "PLAN": "Plan",
+        "MONTH_TO_MONTH": "Månad till månad",
+        "MOTION_PROCESS_MANAGEMENT": "Motion Process Management.",
+        "USEFUL_COMMANDS": "Användbara kommandon",
+        "COMMAND": "Kommando",
+        "PM2_LIST": "Lista alla processer",
+        "PM2_START": "Starta en process av id eller namn",
+        "PM2_STOP": "Stoppa en process av id eller namn, lägg till \"alla\" för att stoppa alla aktiva processer",
+        "PM2_RESTART": "Starta en process av id eller namn",
+        "PM2_LOGS": "Strömma alla loggar filen, eller specifika för en process-id eller namn",
+        "PASSWORD": "Lösenord",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "STUNADDR": "Bedöva adress",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "Aktuell version",
+        "CUSTOMIZATIONS": "Anpassningar",
+        "LOCALNETADDRESS": "Localnet adress",
+        "NEW_VERSION": "Ny version",
+        "TOKEN": "Token",
+        "NEW_TOKEN_DETECTED": "Nytt Token upptäckt",
+        "EXPIRATION_GRAY_PERIOD": "Grå Periodförfallodagen",
+        "NEW_TOKEN": "Nytt token",
+        "EXPIRATION_REASON": "Utgångsdatum anledning",
+        "PRICES": "Priser",
+        "UPDATE_LICENSE": "Uppdatera licens",
+        "LOGOLOGIN": "Login logotyp",
+        "SMTP_SERVICE": "Service",
+        "SMTP_SECURE": "Säker",
+        "UPDATING": "Uppdatering",
+        "REMOTE_VERSION": "Fjärrversion",
+        "NO_NEW_VERSION_AVAILABLE": "Ingen ny version tillgänglig",
+        "TRIAL_VERSION": "Provversion",
+        "RELOAD": "Ladda om",
+        "VERIFY": "Verifiera"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/tr.json b/public/app/main/apps/settings/i18n/tr.json
new file mode 100644 (file)
index 0000000..aaf000f
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "Arabirim",
+        "TOP_N_PROCESSES": "Üst {{değer}} süreçleri",
+        "SYSTEM": "Sistem",
+        "FILE_SYSTEM": "Dosya Sistemi",
+        "PROCESSES": "Işlemler",
+        "MOUNT_POINT": "Montaj",
+        "AVG_LOAD": "Ort. Yük",
+        "TOTAL": "Toplam",
+        "USED": "Kullanılmış",
+        "FREE": "Ücretsiz",
+        "NAME": "Adı",
+        "STATE": "Devlet",
+        "CHAT": "Sohbet",
+        "MAIL": "Posta",
+        "MESSAGING": "Sms",
+        "FAX": "Faks",
+        "OPENCHANNEL": "Açık Kanal",
+        "AGENTS": "Ajanlar",
+        "USERS": "Kullanıcılar",
+        "TELEPHONES": "Telefonlar",
+        "STAFF": "Personel",
+        "CHANNELS": "Kanallar",
+        "MODULES": "Modülleri",
+        "CM": "Kişi Yöneticisi",
+        "DIALER": "Arama",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "Özelleştirme",
+        "UPDATE": "Güncelleştirme",
+        "OTHERS": "Diğerleri",
+        "SETTINGS": "Ayarlar",
+        "GENERAL": "Genel",
+        "SMTP": "SMTP",
+        "NETWORKS": "Ağlar",
+        "UPDATES": "Güncellemeleri",
+        "LICENSE": "Lisans",
+        "ID": "Id",
+        "MIN_INTERNAL": "Min iç",
+        "MIN_MAILBOX": "Min Posta Kutusu",
+        "INSTALLED_AT": "Yüklü",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "EDIT_GENERAL": "Düzenle Genel",
+        "SECURE_PASSWORD": "Güvenli Parola",
+        "LOGO": "Logo",
+        "DEFAULT_LOGO": "Varsayılan Logo",
+        "DEFAULT_LOGIN_LOGO": "Varsayılan Oturum Açma Logo",
+        "WHITELABEL": "Beyaz Etiket",
+        "DEFAULT_HEADER_WHITELABEL": "Varsayılan Altbilgi Beyaz Etiketi",
+        "HEADER_WHITELABEL": "Altbilgi Beyaz Etiketi",
+        "CREATED_AT": "Oluşturulmuş",
+        "SAVE": "Kaydet",
+        "SMTP_HOST": "SMTP Host",
+        "SMTP_USERNAME": "SMTP Kullanıcı Adı",
+        "DESCRIPTION": "Açıklama",
+        "SMTP_PASSWORD": "SMTP Parolası",
+        "SMTP_PORT": "SMTP Bağlantı Noktası",
+        "SMTP_SSL": "SMTP SSL",
+        "TYPE": "Tipi",
+        "ADDRESS": "Adres",
+        "NEW_NETWORK": "Yeni Ağ",
+        "ADD_NETWORK": "Ekle",
+        "HELP": {
+            "ADDRESS": "Adresi, ağ",
+            "LOCALNETADDRESS": "IP adresi/Alt Ağ Maskesi"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "Bu Adresi gerekli",
+            "MIN_INTERNAL_REQUIRED": "Minimum iç gerekli",
+            "MIN_MAILBOX_REQUIRED": "Minimum Posta Kutusu gerekiyor.",
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "HEADER_WHITELABEL_REQUIRED": ", whitelabel gerekiyor.",
+            "LOCALNETADDRESS_REQUIRED": "Localnet Adresi Gerekli",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet geçerli olmalıdır geçerli bir modeli",
+            "ADDRESS_MUST_VALID_PATTERN": "Adres geçerli bir modeli"
+        },
+        "EDIT_NETWORK": "Edit Ağ",
+        "DELETE_NETWORK": "Delete Ağ",
+        "BACK": "Geri",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "EXPIRATION_DATE": "Süre Sonu Tarihi",
+        "REQUEST_LICENSE": "Lisans talebi",
+        "EMAIL": "E-Posta",
+        "SEND": "Gönder",
+        "PLAN": "Planı",
+        "MONTH_TO_MONTH": "Ay ay",
+        "MOTION_PROCESS_MANAGEMENT": "Hareket Işlem Yönetimi",
+        "USEFUL_COMMANDS": "Faydalı Komutlar",
+        "COMMAND": "Komut",
+        "PM2_LIST": "Tüm işlemler",
+        "PM2_START": "Bir süreci id veya name",
+        "PM2_STOP": "Bir süreci id veya name, 'tüm' tüm aktif süreçleri",
+        "PM2_RESTART": "Yeniden bir süreç id veya name",
+        "PM2_LOGS": "Tüm günlükleri dosyası, ya da belirli bir süreç kimliği veya adı",
+        "PASSWORD": "Parola",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "STUNADDR": "Riskti Adresi",
+        "CHANGELOG": "Changelog",
+        "CURRENT_VERSION": "Geçerli sürüm",
+        "CUSTOMIZATIONS": "Özelleştirmeler",
+        "LOCALNETADDRESS": "Localnet Adresi",
+        "NEW_VERSION": "Yeni Sürüm",
+        "TOKEN": "Işaretleyici",
+        "NEW_TOKEN_DETECTED": "Yeni Kart Algılandı",
+        "EXPIRATION_GRAY_PERIOD": "Gri Nokta Süre Sonu",
+        "NEW_TOKEN": "Yeni Kart",
+        "EXPIRATION_REASON": "Sona erme nedeni",
+        "PRICES": "Fiyatlar",
+        "UPDATE_LICENSE": "Güncelleme Lisansı",
+        "LOGOLOGIN": "Login Logo",
+        "SMTP_SERVICE": "Servis",
+        "SMTP_SECURE": "Güvenli",
+        "UPDATING": "Güncelleme",
+        "REMOTE_VERSION": "Uzaktan Sürüm",
+        "NO_NEW_VERSION_AVAILABLE": "Yeni sürümü mevcuttur",
+        "TRIAL_VERSION": "Deneme Sürümü",
+        "RELOAD": "Yükle",
+        "VERIFY": "Doğrulayın"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/zh-CN.json b/public/app/main/apps/settings/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..aef7ef7
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "接口",
+        "TOP_N_PROCESSES": "Top{{}}进程",
+        "SYSTEM": "系统",
+        "FILE_SYSTEM": "文件系统",
+        "PROCESSES": "流程",
+        "MOUNT_POINT": "安装",
+        "AVG_LOAD": "平均负载",
+        "TOTAL": "总",
+        "USED": "使用",
+        "FREE": "免费",
+        "NAME": "名称",
+        "STATE": "状态",
+        "CHAT": "文本交谈",
+        "MAIL": "电子邮件",
+        "MESSAGING": "短信",
+        "FAX": "传真",
+        "OPENCHANNEL": "打开通道",
+        "AGENTS": "座席",
+        "USERS": "用户",
+        "TELEPHONES": "电话",
+        "STAFF": "工作人员",
+        "CHANNELS": "频道",
+        "MODULES": "模块",
+        "CM": "联系人管理器",
+        "DIALER": "拨号程序",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "自定义设置",
+        "UPDATE": "更新。",
+        "OTHERS": "其他人",
+        "SETTINGS": "设置",
+        "GENERAL": "总的",
+        "SMTP": "SMTP",
+        "NETWORKS": "网络",
+        "UPDATES": "更新。",
+        "LICENSE": "许可证",
+        "ID": "Id",
+        "MIN_INTERNAL": "最小内部",
+        "MIN_MAILBOX": "最小的邮箱",
+        "INSTALLED_AT": "安装在",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "EDIT_GENERAL": "编辑常规",
+        "SECURE_PASSWORD": "安全的密码。",
+        "LOGO": "徽标",
+        "DEFAULT_LOGO": "默认徽标",
+        "DEFAULT_LOGIN_LOGO": "默认的登录标识",
+        "WHITELABEL": "白色标签",
+        "DEFAULT_HEADER_WHITELABEL": "“默认页脚” 的白色标签。",
+        "HEADER_WHITELABEL": "页脚的白色标签。",
+        "CREATED_AT": "创建在",
+        "SAVE": "保存",
+        "SMTP_HOST": "SMTP 主机",
+        "SMTP_USERNAME": "SMTP 用户名",
+        "DESCRIPTION": "描述",
+        "SMTP_PASSWORD": "SMTP 密码",
+        "SMTP_PORT": "SMTP 端口。",
+        "SMTP_SSL": "SMTP SSL",
+        "TYPE": "类型",
+        "ADDRESS": "地址",
+        "NEW_NETWORK": "新的网络",
+        "ADD_NETWORK": "添加网络",
+        "HELP": {
+            "ADDRESS": "该网络的地址",
+            "LOCALNETADDRESS": "IP 地址/子网掩码。"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "该地址是必填项",
+            "MIN_INTERNAL_REQUIRED": "最小的内部是必需的",
+            "MIN_MAILBOX_REQUIRED": "最小的邮箱是必需的",
+            "NAME_REQUIRED": "该名称是必需的",
+            "HEADER_WHITELABEL_REQUIRED": "“whitelabel 是必需的",
+            "LOCALNETADDRESS_REQUIRED": "Localnet 地址所需的",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet 必须是有效的有效模式",
+            "ADDRESS_MUST_VALID_PATTERN": "地址必须为有效的模式"
+        },
+        "EDIT_NETWORK": "编辑网络",
+        "DELETE_NETWORK": "删除网络",
+        "BACK": "返回",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "EXPIRATION_DATE": "到期日期",
+        "REQUEST_LICENSE": "请求许可证",
+        "EMAIL": "电子邮件",
+        "SEND": "发送",
+        "PLAN": "计划",
+        "MONTH_TO_MONTH": "每个月的",
+        "MOTION_PROCESS_MANAGEMENT": "运动进程管理",
+        "USEFUL_COMMANDS": "有用的命令。",
+        "COMMAND": "命令",
+        "PM2_LIST": "列表中的所有进程。",
+        "PM2_START": "启动进程的 ID 或名称。",
+        "PM2_STOP": "停止进程的 id” 或 “名称”, 将 “所有” 以停止所有活动的进程",
+        "PM2_RESTART": "重新启动进程的 ID 或名称。",
+        "PM2_LOGS": "流所有的日志文件或特定的进程 ID 或名称。",
+        "PASSWORD": "密码",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "STUNADDR": "眩晕的地址",
+        "CHANGELOG": "更改日志",
+        "CURRENT_VERSION": "当前的版本。",
+        "CUSTOMIZATIONS": "自定义设置。",
+        "LOCALNETADDRESS": "Localnet 地址",
+        "NEW_VERSION": "新的版本。",
+        "TOKEN": "令牌",
+        "NEW_TOKEN_DETECTED": "新检测到的令牌",
+        "EXPIRATION_GRAY_PERIOD": "灰色的期间内到期",
+        "NEW_TOKEN": "新的令牌",
+        "EXPIRATION_REASON": "失效的原因",
+        "PRICES": "价格",
+        "UPDATE_LICENSE": "更新许可证",
+        "LOGOLOGIN": "登录徽标",
+        "SMTP_SERVICE": "服务",
+        "SMTP_SECURE": "安全的",
+        "UPDATING": "正在更新",
+        "REMOTE_VERSION": "远程版本",
+        "NO_NEW_VERSION_AVAILABLE": "没有可用的新版本",
+        "TRIAL_VERSION": "试用版本。",
+        "RELOAD": "重新加载",
+        "VERIFY": "验证"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/settings/i18n/zh-TW.json b/public/app/main/apps/settings/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..38467d6
--- /dev/null
@@ -0,0 +1,122 @@
+{
+    "SETTINGS": {
+        "INTERFACE": "介面",
+        "TOP_N_PROCESSES": "頂端 {{ 值 }} 流程",
+        "SYSTEM": "系統",
+        "FILE_SYSTEM": "檔案系統",
+        "PROCESSES": "處理程序",
+        "MOUNT_POINT": "掛載",
+        "AVG_LOAD": "平均負載",
+        "TOTAL": "總金額",
+        "USED": "用於",
+        "FREE": "免費",
+        "NAME": "名稱",
+        "STATE": "狀態",
+        "CHAT": "文字交談",
+        "MAIL": "郵件",
+        "MESSAGING": "Sms ( 簡訊 )",
+        "FAX": "傳真",
+        "OPENCHANNEL": "開放頻道",
+        "AGENTS": "值機員",
+        "USERS": "使用者",
+        "TELEPHONES": "電話",
+        "STAFF": "人員",
+        "CHANNELS": "頻道",
+        "MODULES": "模組",
+        "CM": "連絡人管理員",
+        "DIALER": "Dialer ( 撥號器 )",
+        "JSCRIPTY": "Jscripty",
+        "CUSTOM": "自訂功能",
+        "UPDATE": "更新",
+        "OTHERS": "其他人",
+        "SETTINGS": "設定",
+        "GENERAL": "通用",
+        "SMTP": "SMTP",
+        "NETWORKS": "網路",
+        "UPDATES": "更新",
+        "LICENSE": "授權",
+        "ID": "Id",
+        "MIN_INTERNAL": "分鐘內",
+        "MIN_MAILBOX": "Min 信箱",
+        "INSTALLED_AT": "安裝。",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "EDIT_GENERAL": "編輯通用",
+        "SECURE_PASSWORD": "安全密碼",
+        "LOGO": "標誌",
+        "DEFAULT_LOGO": "預設標誌",
+        "DEFAULT_LOGIN_LOGO": "預設登入標誌",
+        "WHITELABEL": "白色標籤",
+        "DEFAULT_HEADER_WHITELABEL": "預設的頁尾白色標籤",
+        "HEADER_WHITELABEL": "頁尾白色標籤",
+        "CREATED_AT": "建立在",
+        "SAVE": "儲存",
+        "SMTP_HOST": "SMTP 主機",
+        "SMTP_USERNAME": "SMTP 使用者名稱",
+        "DESCRIPTION": "說明",
+        "SMTP_PASSWORD": "SMTP 密碼",
+        "SMTP_PORT": "SMTP 連接埠",
+        "SMTP_SSL": "SMTP SSL",
+        "TYPE": "類型",
+        "ADDRESS": "位址",
+        "NEW_NETWORK": "新增網路",
+        "ADD_NETWORK": "新增網路",
+        "HELP": {
+            "ADDRESS": "該網路的位址",
+            "LOCALNETADDRESS": "IP 位址 / 子網路遮罩"
+        },
+        "ERRORS": {
+            "ADDRESS_REQUIRED": "地址為必填欄位",
+            "MIN_INTERNAL_REQUIRED": "最低內部為必填欄位",
+            "MIN_MAILBOX_REQUIRED": "最低信箱為必填欄位",
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "HEADER_WHITELABEL_REQUIRED": "Whitelabel 的為必填欄位",
+            "LOCALNETADDRESS_REQUIRED": "Localnet 地址必填欄位",
+            "LOCALNETADDRESS_MUST_VALID_PATTERN": "Localnet 必須是有效的有效模式",
+            "ADDRESS_MUST_VALID_PATTERN": "位址必須是有效圖案"
+        },
+        "EDIT_NETWORK": "編輯網路",
+        "DELETE_NETWORK": "刪除網路",
+        "BACK": "備份",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "EXPIRATION_DATE": "到期日",
+        "REQUEST_LICENSE": "要求授權",
+        "EMAIL": "電子郵件",
+        "SEND": "傳送",
+        "PLAN": "計畫",
+        "MONTH_TO_MONTH": "月至月",
+        "MOTION_PROCESS_MANAGEMENT": "動作程序管理",
+        "USEFUL_COMMANDS": "有用的命令",
+        "COMMAND": "”命令",
+        "PM2_LIST": "列出所有程序",
+        "PM2_START": "啟動程序的代號或名稱",
+        "PM2_STOP": "停止處理程序 ID 或名稱 , 請插入「所有的」來停止所有執行中的程序",
+        "PM2_RESTART": "重新啟動程序的代號或名稱",
+        "PM2_LOGS": "串流所有日誌檔、或特定的程序 ID 或名稱",
+        "PASSWORD": "密碼",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "STUNADDR": "追求極致而當仁不讓位址",
+        "CHANGELOG": "版本記錄",
+        "CURRENT_VERSION": "目前的版本",
+        "CUSTOMIZATIONS": "自訂功能",
+        "LOCALNETADDRESS": "Localnet 地址",
+        "NEW_VERSION": "新版本",
+        "TOKEN": "權杖",
+        "NEW_TOKEN_DETECTED": "新權杖已偵測到",
+        "EXPIRATION_GRAY_PERIOD": "灰階週期到期",
+        "NEW_TOKEN": "新權杖",
+        "EXPIRATION_REASON": "逾期原因",
+        "PRICES": "價格",
+        "UPDATE_LICENSE": "更新授權",
+        "LOGOLOGIN": "登錄標誌",
+        "SMTP_SERVICE": "服務",
+        "SMTP_SECURE": "安全",
+        "UPDATING": "正在更新",
+        "REMOTE_VERSION": "遠端版本",
+        "NO_NEW_VERSION_AVAILABLE": "沒有新版本可供使用",
+        "TRIAL_VERSION": "免費試用版",
+        "RELOAD": "重新載入",
+        "VERIFY": "驗證"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/da.json b/public/app/main/apps/sms/i18n/da.json
new file mode 100644 (file)
index 0000000..a48668c
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "Navnet",
+        "SMSQUEUES": "SMS KØER",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "STRATEGY": "Strategi",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten Timeout er påkrævet",
+            "PHONE_REQUIRED": "Telefonen er påkrævet",
+            "SID_REQUIRED": "SID er påkrævet",
+            "TOKEN_REQUIRED": "Dette token er påkrævet",
+            "USERNAME_REQUIRED": "Brugernavn er påkrævet",
+            "PASSWORD_REQUIRED": "Adgangskoden kræves",
+            "MOTIONADDRESS_REQUIRED": "Motion Adresse skal angives.",
+            "MOTIONADDRESS_MUST_VALID_URL": "Motion adresse skal være skrevet i et gyldigt format",
+            "ACCEPTURL_MUST_VALID_URL": "Det acceptere URL skal være skrevet i et gyldigt format",
+            "TIMEOUT_REQUIRED": "Timeout er påkrævet",
+            "REJECTURL_MUST_VALID_URL": "Reject-URL skal være skrevet i et gyldigt format",
+            "CLOSEURL_MUST_VALID_URL": "Den tætte URL skal være skrevet i et gyldigt format"
+        },
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_SMSQUEUE": "Tilføj SMS kø",
+        "EDIT_SMSQUEUE": "Redigere SMS kø",
+        "DELETE_SMSQUEUE": "Slet SMS kø",
+        "SETTINGS": "Indstillinger",
+        "GENERAL": "Generel",
+        "CREATED_AT": "Oprettet på",
+        "SAVE": "Gem",
+        "SMSACCOUNTS": "SMS konti",
+        "TYPE": "Type",
+        "PHONE": "Telefonen",
+        "SID": "SID",
+        "TOKEN": "Token",
+        "SMSTYPE": "SMS Type",
+        "USERNAME": "Brugernavn",
+        "PASSWORD": "Password",
+        "MOTIONADDRESS": "Motion adresse",
+        "ADD_SMSACCOUNT": "Tilføj SMS KONTO",
+        "EDIT_SMSACCOUNT": "Redigere SMS-konto",
+        "DELETE_SMSACCOUNT": "Slet SMS KONTO",
+        "LIST": "Listen",
+        "FIDELITY": "Fidelity",
+        "API": "API",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Handlinger",
+        "ACCEPT": "Accepter",
+        "ACCEPTMETHOD": "Acceptere metode",
+        "ACCEPTURL": "Acceptere URL",
+        "REJECT": "Afvis",
+        "REJECTMETHOD": "Afvis metode",
+        "REJECTURL": "Afvis URL",
+        "CLOSE": "Luk",
+        "CLOSEMETHOD": "Luk metode",
+        "CLOSEURL": "Luk URL",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "BACK": "Tilbage",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "Bekræft adgangskode",
+        "SMSDISPOSITIONS": "SMS Dispositions",
+        "NO_SMSDISPOSITION_AVAILABLE": "Ingen SMS Dispositions tilgængelig",
+        "NEW_SMSDISPOSITION": "Ny SMS Disp.",
+        "ADD_SMSDISPOSITION": "Tilføj SMS Disp.",
+        "EDIT_SMSDISPOSITION": "Redigere SMS Disp.",
+        "DELETE_SMSDISPOSITION": "Slet SMS Disp.",
+        "NEW_SMSQUEUE": "Ny SMS kø",
+        "NEW_SMSACCOUNT": "Nye SMS-konto",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "ALL_TEAMS": "Alle hold",
+        "SELECTED_TEAMS": "Udvalgte Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/de.json b/public/app/main/apps/sms/i18n/de.json
new file mode 100644 (file)
index 0000000..11c119e
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "Name",
+        "SMSQUEUES": "SMS-Warteschlangen",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "STRATEGY": "Strategie",
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "AGENT_TIMEOUT_REQUIRED": "Der Agent Timeout ist erforderlich",
+            "PHONE_REQUIRED": "Die Telefonnummer ist erforderlich",
+            "SID_REQUIRED": "Die SID ist erforderlich",
+            "TOKEN_REQUIRED": "Das Token ist erforderlich",
+            "USERNAME_REQUIRED": "Der Benutzername ist erforderlich",
+            "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
+            "MOTIONADDRESS_REQUIRED": "Die Adresse ist erforderlich",
+            "MOTIONADDRESS_MUST_VALID_URL": "Die Adresse muss in einem gültigen Format",
+            "ACCEPTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+            "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+            "REJECTURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format",
+            "CLOSEURL_MUST_VALID_URL": "Die URL muss in einem gültigen Format"
+        },
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Beschreibung",
+        "ADD_SMSQUEUE": "SMS-Warteschlange hinzufügen",
+        "EDIT_SMSQUEUE": "SMS-Warteschlange bearbeiten",
+        "DELETE_SMSQUEUE": "SMS-Warteschlange löschen",
+        "SETTINGS": "Einstellungen",
+        "GENERAL": "Allgemein",
+        "CREATED_AT": "Erstellt am",
+        "SAVE": "Speichern",
+        "SMSACCOUNTS": "SMS-Konten",
+        "TYPE": "Typ",
+        "PHONE": "Telefon",
+        "SID": "SID",
+        "TOKEN": "Token",
+        "SMSTYPE": "SMS-Typ",
+        "USERNAME": "Benutzername",
+        "PASSWORD": "Passwort",
+        "MOTIONADDRESS": "Motion Adresse",
+        "ADD_SMSACCOUNT": "SMS-Konto hinzufügen",
+        "EDIT_SMSACCOUNT": "SMS-Konto bearbeiten",
+        "DELETE_SMSACCOUNT": "SMS-Konto löschen.",
+        "LIST": "Liste",
+        "FIDELITY": "Treue",
+        "API": "API",
+        "DISPOSITIONS": "Bestimmungen",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Aktionen",
+        "ACCEPT": "Akzeptieren",
+        "ACCEPTMETHOD": "Die Methode",
+        "ACCEPTURL": "URL akzeptieren",
+        "REJECT": "Ablehnen",
+        "REJECTMETHOD": "Methode ablehnen",
+        "REJECTURL": "URL ablehnen",
+        "CLOSE": "In der Nähe",
+        "CLOSEMETHOD": "In der Nähe Methode",
+        "CLOSEURL": "Der URL",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "BACK": "Zurück",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "Passwort bestätigen",
+        "SMSDISPOSITIONS": "SMS-Bestimmungen",
+        "NO_SMSDISPOSITION_AVAILABLE": "Keine SMS-Verfügungen zur Verfügung",
+        "NEW_SMSDISPOSITION": "Neue SMS-Disposition",
+        "ADD_SMSDISPOSITION": "SMS-Disposition",
+        "EDIT_SMSDISPOSITION": "Bearbeiten Sie SMS-Disposition",
+        "DELETE_SMSDISPOSITION": "SMS löschen Disposition",
+        "NEW_SMSQUEUE": "Neue SMS-Warteschlange",
+        "NEW_SMSACCOUNT": "Neue SMS-Konto",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "ALL_TEAMS": "Alle Mannschaften",
+        "SELECTED_TEAMS": "Ausgewählte Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/en.json b/public/app/main/apps/sms/i18n/en.json
new file mode 100644 (file)
index 0000000..581f009
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "Name",
+        "SMSQUEUES": "SMS Queues",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "STRATEGY": "Strategy",
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is required",
+            "AGENT_TIMEOUT_REQUIRED": "The Agent Timeout is required",
+            "PHONE_REQUIRED": "The Phone is required",
+            "SID_REQUIRED": "The SID is required",
+            "TOKEN_REQUIRED": "The Token is required",
+            "USERNAME_REQUIRED": "The Username is required",
+            "PASSWORD_REQUIRED": "The Password is required",
+            "MOTIONADDRESS_REQUIRED": "The Motion Address is required",
+            "MOTIONADDRESS_MUST_VALID_URL": "The Motion Address must be written in a valid format",
+            "ACCEPTURL_MUST_VALID_URL": "The Accept URL must be written in a valid format",
+            "TIMEOUT_REQUIRED": "The Timeout is required",
+            "REJECTURL_MUST_VALID_URL": "The Reject URL must be written in a valid format",
+            "CLOSEURL_MUST_VALID_URL": "The Close URL must be written in a valid format"
+        },
+        "AGENT_TIMEOUT": "Agent Timeout",
+        "DESCRIPTION": "Description",
+        "ADD_SMSQUEUE": "Add SMS Queue",
+        "EDIT_SMSQUEUE": "Edit SMS Queue",
+        "DELETE_SMSQUEUE": "Delete SMS Queue",
+        "SETTINGS": "Settings",
+        "GENERAL": "General",
+        "CREATED_AT": "Created At",
+        "SAVE": "Save",
+        "SMSACCOUNTS": "SMS Accounts",
+        "TYPE": "Type",
+        "PHONE": "Phone",
+        "SID": "SID",
+        "TOKEN": "Token",
+        "SMSTYPE": "SMS Type",
+        "USERNAME": "Username",
+        "PASSWORD": "Password",
+        "MOTIONADDRESS": "Motion Address",
+        "ADD_SMSACCOUNT": "Add SMS Account",
+        "EDIT_SMSACCOUNT": "Edit SMS Account",
+        "DELETE_SMSACCOUNT": "Delete SMS Account",
+        "LIST": "List",
+        "FIDELITY": "Fidelity",
+        "API": "API",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Actions",
+        "ACCEPT": "Accept",
+        "ACCEPTMETHOD": "Accept Method",
+        "ACCEPTURL": "Accept URL",
+        "REJECT": "Reject",
+        "REJECTMETHOD": "Reject Method",
+        "REJECTURL": "Reject URL",
+        "CLOSE": "Close",
+        "CLOSEMETHOD": "Close Method",
+        "CLOSEURL": "Close URL",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "BACK": "Back",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "Confirm Password",
+        "SMSDISPOSITIONS": "SMS Dispositions",
+        "NO_SMSDISPOSITION_AVAILABLE": "No SMS Dispositions available",
+        "NEW_SMSDISPOSITION": "New SMS Disposition",
+        "ADD_SMSDISPOSITION": "Add SMS Disposition",
+        "EDIT_SMSDISPOSITION": "Edit SMS Disposition",
+        "DELETE_SMSDISPOSITION": "Delete SMS Disposition",
+        "NEW_SMSQUEUE": "New SMS Queue",
+        "NEW_SMSACCOUNT": "New SMS Account",
+        "NO_AVAILABLE_INFO": "No available info",
+        "ALL_TEAMS": "All Teams",
+        "SELECTED_TEAMS": "Selected Teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/es.json b/public/app/main/apps/sms/i18n/es.json
new file mode 100644 (file)
index 0000000..7d722fe
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "Nombre",
+        "SMSQUEUES": "Colas de SMS",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "STRATEGY": "Estrategia",
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "AGENT_TIMEOUT_REQUIRED": "El agente se requiere tiempo de espera",
+            "PHONE_REQUIRED": "El teléfono es necesario",
+            "SID_REQUIRED": "El SID es obligatorio",
+            "TOKEN_REQUIRED": "El token es obligatorio",
+            "USERNAME_REQUIRED": "El nombre de usuario es obligatorio",
+            "PASSWORD_REQUIRED": "Es necesaria la contraseña",
+            "MOTIONADDRESS_REQUIRED": "Se requiere una dirección de movimiento",
+            "MOTIONADDRESS_MUST_VALID_URL": "La dirección de movimiento deben escribirse en un formato válido",
+            "ACCEPTURL_MUST_VALID_URL": "Aceptar la URL debe estar escrito en un formato válido",
+            "TIMEOUT_REQUIRED": "El tiempo de espera es necesario",
+            "REJECTURL_MUST_VALID_URL": "Rechazar la URL debe estar escrito en un formato válido",
+            "CLOSEURL_MUST_VALID_URL": "La estrecha URL debe ser escrito en un formato válido"
+        },
+        "AGENT_TIMEOUT": "Tiempo de espera del agente",
+        "DESCRIPTION": "Descripción",
+        "ADD_SMSQUEUE": "Añadir la cola de SMS",
+        "EDIT_SMSQUEUE": "Editar SMS Queue",
+        "DELETE_SMSQUEUE": "Eliminar la cola de SMS",
+        "SETTINGS": "Configuración",
+        "GENERAL": "General",
+        "CREATED_AT": "Creado en",
+        "SAVE": "Guardar",
+        "SMSACCOUNTS": "Cuentas SMS",
+        "TYPE": "Tipo",
+        "PHONE": "Teléfono",
+        "SID": "SID",
+        "TOKEN": "Token",
+        "SMSTYPE": "Tipo SMS",
+        "USERNAME": "Nombre de usuario",
+        "PASSWORD": "Contraseña",
+        "MOTIONADDRESS": "Dirección de movimiento",
+        "ADD_SMSACCOUNT": "Agregar cuenta de SMS",
+        "EDIT_SMSACCOUNT": "Editar cuenta SMS",
+        "DELETE_SMSACCOUNT": "Eliminar cuenta de SMS",
+        "LIST": "Lista",
+        "FIDELITY": "Fidelidad",
+        "API": "API",
+        "DISPOSITIONS": "Disposiciones",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acciones",
+        "ACCEPT": "Aceptar",
+        "ACCEPTMETHOD": "Aceptar el método",
+        "ACCEPTURL": "Aceptar URL",
+        "REJECT": "Rechazar",
+        "REJECTMETHOD": "Método de rechazo",
+        "REJECTURL": "Rechazar URL",
+        "CLOSE": "Cerrar",
+        "CLOSEMETHOD": "Método Close",
+        "CLOSEURL": "Cerrar URL",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "BACK": "Volver",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "Confirmar contraseña",
+        "SMSDISPOSITIONS": "Disposiciones de SMS",
+        "NO_SMSDISPOSITION_AVAILABLE": "No hay disposiciones SMS disponible",
+        "NEW_SMSDISPOSITION": "Nueva disposición de SMS",
+        "ADD_SMSDISPOSITION": "Añadir la disposición de SMS",
+        "EDIT_SMSDISPOSITION": "Modificar la disposición de SMS",
+        "DELETE_SMSDISPOSITION": "Eliminar la disposición de SMS",
+        "NEW_SMSQUEUE": "Nueva cola de SMS",
+        "NEW_SMSACCOUNT": "Nueva cuenta de SMS",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "ALL_TEAMS": "Todos los equipos",
+        "SELECTED_TEAMS": "Los equipos seleccionados"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/fa.json b/public/app/main/apps/sms/i18n/fa.json
new file mode 100644 (file)
index 0000000..1fd2873
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "نام",
+        "SMSQUEUES": "صفهای طولانی SMS",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "STRATEGY": "استراتژي",
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "AGENT_TIMEOUT_REQUIRED": "عامل پایان زمان لازم است.",
+            "PHONE_REQUIRED": "تلفن لازم است.",
+            "SID_REQUIRED": "گرفتن SID، لازم است.",
+            "TOKEN_REQUIRED": "اين نشانه لازم است.",
+            "USERNAME_REQUIRED": "نام کاربری مورد نیاز است.",
+            "PASSWORD_REQUIRED": "رمز عبور لازم است.",
+            "MOTIONADDRESS_REQUIRED": "آدرس حركت لازم است.",
+            "MOTIONADDRESS_MUST_VALID_URL": "حركت باید آدرس را در یک فرمت معتبر نوشته شده است",
+            "ACCEPTURL_MUST_VALID_URL": "از پذیرفتن باید آدرس کامل را در یک فرمت معتبر نوشته شده است",
+            "TIMEOUT_REQUIRED": "در پایان زمان لازم است.",
+            "REJECTURL_MUST_VALID_URL": "آدرس کامل را رد كند بايد در فرمت معتبر نوشته شده است",
+            "CLOSEURL_MUST_VALID_URL": "آدرس کامل باید بسته به فرمت معتبر نوشته شده است"
+        },
+        "AGENT_TIMEOUT": "عامل زمان مجاز",
+        "DESCRIPTION": "شرح",
+        "ADD_SMSQUEUE": "افزودن SMS صف",
+        "EDIT_SMSQUEUE": "ویرایش SMS صف",
+        "DELETE_SMSQUEUE": "SMS صف حذف می شود",
+        "SETTINGS": "تنظیمات",
+        "GENERAL": "سردار",
+        "CREATED_AT": "ایجاد شده در",
+        "SAVE": "ذخیره",
+        "SMSACCOUNTS": "SMS حسابداري",
+        "TYPE": "نوع دستگاه",
+        "PHONE": "تلفن همراه",
+        "SID": "گرفتن SID",
+        "TOKEN": "نشانه",
+        "SMSTYPE": "نوع SMS",
+        "USERNAME": "نام کاربری",
+        "PASSWORD": "اسم رمز",
+        "MOTIONADDRESS": "حركت آدرس",
+        "ADD_SMSACCOUNT": "افزودن اشتراک SMS",
+        "EDIT_SMSACCOUNT": "ویرایش اشتراک SMS",
+        "DELETE_SMSACCOUNT": "حذف اشتراک SMS",
+        "LIST": "فهرست",
+        "FIDELITY": "وفاداري",
+        "API": "API",
+        "DISPOSITIONS": "مكتبى",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "اقدامات",
+        "ACCEPT": "پذیرفتن",
+        "ACCEPTMETHOD": "اين روش را قبول",
+        "ACCEPTURL": "آدرس کامل قبول",
+        "REJECT": "رد كردن",
+        "REJECTMETHOD": "روش رد",
+        "REJECTURL": "آدرس کامل رد",
+        "CLOSE": "بستن",
+        "CLOSEMETHOD": "روش بستن",
+        "CLOSEURL": "آدرس کامل ببندید",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "BACK": "پشت",
+        "SMS": "SMS",
+        "ID": "شناسه",
+        "CONFIRM_PASSWORD": "تأیید رمز ورود",
+        "SMSDISPOSITIONS": "مكتبى SMS",
+        "NO_SMSDISPOSITION_AVAILABLE": "هيچ مكتبى موجود در SMS",
+        "NEW_SMSDISPOSITION": "1626 SMS جدید",
+        "ADD_SMSDISPOSITION": "افزودن SMS 1626",
+        "EDIT_SMSDISPOSITION": "ویرایش 1626 SMS",
+        "DELETE_SMSDISPOSITION": "SMS 1626 را حذف کنید",
+        "NEW_SMSQUEUE": "توی صف جدید SMS",
+        "NEW_SMSACCOUNT": "اشتراک جدید SMS",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "ALL_TEAMS": "همه تیم ها",
+        "SELECTED_TEAMS": "تيم هاي برگزيده"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/fi.json b/public/app/main/apps/sms/i18n/fi.json
new file mode 100644 (file)
index 0000000..ac52740
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "Nimi",
+        "SMSQUEUES": "SMS-jonosta",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "STRATEGY": "Strategia",
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "AGENT_TIMEOUT_REQUIRED": "Asiakaspalvelijan aikakatkaisu on pakollinen",
+            "PHONE_REQUIRED": "Puhelin ei tarvita",
+            "SID_REQUIRED": "SID ei tarvita",
+            "TOKEN_REQUIRED": "Etätunnistinta ei tarvita",
+            "USERNAME_REQUIRED": "Käyttäjätunnus on pakollinen",
+            "PASSWORD_REQUIRED": "Salasana on pakollinen",
+            "MOTIONADDRESS_REQUIRED": "Liikkeen osoite on pakollinen tieto",
+            "MOTIONADDRESS_MUST_VALID_URL": "Liikkeen osoite on kirjoitettava kelvollisessa muodossa",
+            "ACCEPTURL_MUST_VALID_URL": "Hyväksy URL on kirjoitettava kelvollisessa muodossa",
+            "TIMEOUT_REQUIRED": "Aikakatkaisujakso on pakollinen",
+            "REJECTURL_MUST_VALID_URL": "Hylätyt URL on kirjoitettava kelvollisessa muodossa",
+            "CLOSEURL_MUST_VALID_URL": "Sulje URL on kirjoitettava kelvollisessa muodossa"
+        },
+        "AGENT_TIMEOUT": "Agentti aikakatkaisu",
+        "DESCRIPTION": "Kuvaus",
+        "ADD_SMSQUEUE": "Lisää SMS jono",
+        "EDIT_SMSQUEUE": "Muokkaa SMS jono",
+        "DELETE_SMSQUEUE": "Poista SMS jono",
+        "SETTINGS": "Asetusten määrittäminen",
+        "GENERAL": "Yleistä",
+        "CREATED_AT": "Luodaan",
+        "SAVE": "Tallenna",
+        "SMSACCOUNTS": "SMS-tilit",
+        "TYPE": "Tyyppi",
+        "PHONE": "Puhelin",
+        "SID": "SID",
+        "TOKEN": "Etätunnistin",
+        "SMSTYPE": "SMS-tyyppi",
+        "USERNAME": "Käyttäjätunnus",
+        "PASSWORD": "Salasana",
+        "MOTIONADDRESS": "Liikkeen osoite",
+        "ADD_SMSACCOUNT": "Lisää SMS tili",
+        "EDIT_SMSACCOUNT": "Muokkaa SMS tili",
+        "DELETE_SMSACCOUNT": "Poista SMS tili",
+        "LIST": "Luettelo",
+        "FIDELITY": "Epätarkkaan äänentoistoon",
+        "API": "API",
+        "DISPOSITIONS": "Yhteisyys",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Toimet",
+        "ACCEPT": "Hyväksy",
+        "ACCEPTMETHOD": "Hyväksy menetelmä",
+        "ACCEPTURL": "Hyväksy URL",
+        "REJECT": "Hylkää",
+        "REJECTMETHOD": "Hylkää menetelmä",
+        "REJECTURL": "Hylkää URL",
+        "CLOSE": "Sulje",
+        "CLOSEMETHOD": "Sulje menetelmä",
+        "CLOSEURL": "Sulje URL",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "BACK": "Takaisin",
+        "SMS": "SMS",
+        "ID": "Tunnus",
+        "CONFIRM_PASSWORD": "Vahvista salasana",
+        "SMSDISPOSITIONS": "SMS yhteisyys",
+        "NO_SMSDISPOSITION_AVAILABLE": "No SMS Yhteisyys käytettävissä",
+        "NEW_SMSDISPOSITION": "Uusien tekstiviestien jatkokäsittely",
+        "ADD_SMSDISPOSITION": "Lisää SMS jatkokäsittely",
+        "EDIT_SMSDISPOSITION": "Muokkaa SMS jatkokäsittely",
+        "DELETE_SMSDISPOSITION": "Poista SMS jatkokäsittely",
+        "NEW_SMSQUEUE": "Uusien tekstiviestien jono",
+        "NEW_SMSACCOUNT": "Uusien tekstiviestien tili",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "ALL_TEAMS": "Kaikki joukkueet",
+        "SELECTED_TEAMS": "Valittu työryhmille"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/fr.json b/public/app/main/apps/sms/i18n/fr.json
new file mode 100644 (file)
index 0000000..8b497fc
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "Nom",
+        "SMSQUEUES": "Les files d'SMS",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "STRATEGY": "Stratégie",
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "AGENT_TIMEOUT_REQUIRED": "L'Agent est nécessaire",
+            "PHONE_REQUIRED": "Le téléphone est requis",
+            "SID_REQUIRED": "Le SID est requis",
+            "TOKEN_REQUIRED": "Le jeton est requis",
+            "USERNAME_REQUIRED": "L'utilisateur est nécessaire",
+            "PASSWORD_REQUIRED": "Le mot de passe est requis",
+            "MOTIONADDRESS_REQUIRED": "La motion est nécessaire",
+            "MOTIONADDRESS_MUST_VALID_URL": "La motion doit être écrit dans un format valide",
+            "ACCEPTURL_MUST_VALID_URL": "Accepter l'URL doit être écrit dans un format valide",
+            "TIMEOUT_REQUIRED": "Le délai est nécessaire",
+            "REJECTURL_MUST_VALID_URL": "Rejeter l'URL doit être écrit dans un format valide",
+            "CLOSEURL_MUST_VALID_URL": "Fermer l'URL doit être écrit dans un format valide"
+        },
+        "AGENT_TIMEOUT": "Délai d'agent",
+        "DESCRIPTION": "Description",
+        "ADD_SMSQUEUE": "Ajouter attente SMS",
+        "EDIT_SMSQUEUE": "Edit File SMS",
+        "DELETE_SMSQUEUE": "Supprimer la file d'SMS",
+        "SETTINGS": "Settings",
+        "GENERAL": "Général",
+        "CREATED_AT": "Créé à",
+        "SAVE": "Sauvegarder",
+        "SMSACCOUNTS": "Comptes SMS",
+        "TYPE": "Type",
+        "PHONE": "Téléphone",
+        "SID": "SID",
+        "TOKEN": "Coup",
+        "SMSTYPE": "Type SMS",
+        "USERNAME": "Nom d'utilisateur",
+        "PASSWORD": "Mot de passe oublié",
+        "MOTIONADDRESS": "Adresse Motion",
+        "ADD_SMSACCOUNT": "Ajouter compte SMS",
+        "EDIT_SMSACCOUNT": "Compte SMS Modifier",
+        "DELETE_SMSACCOUNT": "Supprimer compte SMS",
+        "LIST": "Liste",
+        "FIDELITY": "Fidelity",
+        "API": "API",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Actions",
+        "ACCEPT": "Accepter",
+        "ACCEPTMETHOD": "Méthode d'accepter",
+        "ACCEPTURL": "Accepter URL",
+        "REJECT": "Rejeter",
+        "REJECTMETHOD": "Méthode de rejet",
+        "REJECTURL": "Rejeter les URL",
+        "CLOSE": "Fermer",
+        "CLOSEMETHOD": "Méthode Close",
+        "CLOSEURL": "URL Fermer",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "BACK": "Retour",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "Confirmer le mot de passe",
+        "SMSDISPOSITIONS": "Dispositions SMS",
+        "NO_SMSDISPOSITION_AVAILABLE": "Pas de SMS disponible Disposition",
+        "NEW_SMSDISPOSITION": "Nouvelle disposition SMS",
+        "ADD_SMSDISPOSITION": "Ajouter la disposition de SMS",
+        "EDIT_SMSDISPOSITION": "Modifier la disposition de SMS",
+        "DELETE_SMSDISPOSITION": "Supprimer la disposition SMS",
+        "NEW_SMSQUEUE": "File d'un nouveau SMS",
+        "NEW_SMSACCOUNT": "Nouveau compte SMS",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "ALL_TEAMS": "Toutes les équipes",
+        "SELECTED_TEAMS": "Les équipes sélectionnées"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/hi.json b/public/app/main/apps/sms/i18n/hi.json
new file mode 100644 (file)
index 0000000..45ed8a0
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "नाम",
+        "SMSQUEUES": "SMS कतार",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "STRATEGY": "रणनीति",
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "AGENT_TIMEOUT_REQUIRED": "एजेंट समयबाह्य अपेक्षित है।",
+            "PHONE_REQUIRED": "फ़ोन की आवश्यकता है।",
+            "SID_REQUIRED": "हुए हमलोो की आवश्यकता है।",
+            "TOKEN_REQUIRED": "टोकन की आवश्यकता है।",
+            "USERNAME_REQUIRED": "उपयोगकर्ता नाम की आवश्यकता है।",
+            "PASSWORD_REQUIRED": "पासवर्ड की आवश्यकता है।",
+            "MOTIONADDRESS_REQUIRED": "अभिभाषण के प्रस्ताव की आवश्यकता है।",
+            "MOTIONADDRESS_MUST_VALID_URL": "यह प्रस्ताव एक मान्य स्वरूप में लिखा होना पता",
+            "ACCEPTURL_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना URL को स्वीकार करें",
+            "TIMEOUT_REQUIRED": "इस समय की आवश्यकता है।",
+            "REJECTURL_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना URL को अस्वीकार करें",
+            "CLOSEURL_MUST_VALID_URL": "एक मान्य स्वरूप में लिखा होना URL के निकट"
+        },
+        "AGENT_TIMEOUT": "एजेंट समयबाह्य",
+        "DESCRIPTION": "वर्णन",
+        "ADD_SMSQUEUE": "SMS कतार में जोड़ें",
+        "EDIT_SMSQUEUE": "SMS कतार संपादित करें",
+        "DELETE_SMSQUEUE": "SMS कतार हटाएं",
+        "SETTINGS": "सेटिंग्स",
+        "GENERAL": "सामान्य",
+        "CREATED_AT": "सृजित",
+        "SAVE": "सहेजें",
+        "SMSACCOUNTS": "SMS लेखा",
+        "TYPE": "प्रकार",
+        "PHONE": "फ़ोन",
+        "SID": "बताया",
+        "TOKEN": "टोकन",
+        "SMSTYPE": "SMS लिखें",
+        "USERNAME": "उपयोगकर्ता नाम",
+        "PASSWORD": "पासवर्ड",
+        "MOTIONADDRESS": "प्रस्ताव के पते",
+        "ADD_SMSACCOUNT": "खाता जोड़ने के लिए, SMS",
+        "EDIT_SMSACCOUNT": "SMS के कारण संपादित करें",
+        "DELETE_SMSACCOUNT": "SMS खाते को हटाना",
+        "LIST": "की सूची",
+        "FIDELITY": "वास्तविक",
+        "API": "नोट्स API",
+        "DISPOSITIONS": "प्रवृतियों",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "क्रियाएं",
+        "ACCEPT": "स्वीकार करना",
+        "ACCEPTMETHOD": "तरीका स्वीकार करें",
+        "ACCEPTURL": "स्वीकार किए गए URL",
+        "REJECT": "अस्वीकार करना",
+        "REJECTMETHOD": "अस्वीकार पद्धति",
+        "REJECTURL": "URL अस्वीकार करें",
+        "CLOSE": "निकट",
+        "CLOSEMETHOD": "निकट पद्धति",
+        "CLOSEURL": "बंद किए गए URL",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "BACK": "वापिस",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "पासवर्ड की पुष्टि करें:",
+        "SMSDISPOSITIONS": "SMS प्रवृतियों",
+        "NO_SMSDISPOSITION_AVAILABLE": "कोई SMS प्रवृतियों उपलब्ध",
+        "NEW_SMSDISPOSITION": "नई SMS मिजाज",
+        "ADD_SMSDISPOSITION": "SMS मिजाज जोड़ें",
+        "EDIT_SMSDISPOSITION": "SMS के मिजाज को संपादित करें",
+        "DELETE_SMSDISPOSITION": "SMS के मिजाज को हटाएं",
+        "NEW_SMSQUEUE": "नई SMS कतार",
+        "NEW_SMSACCOUNT": "SMS के नए खाते",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "ALL_TEAMS": "सभी टीमें भाग लेंगी।",
+        "SELECTED_TEAMS": "चयनित टीम"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/it.json b/public/app/main/apps/sms/i18n/it.json
new file mode 100644 (file)
index 0000000..3e211ff
--- /dev/null
@@ -0,0 +1,78 @@
+{
+    "SMS": {
+        "NAME": "Nome",
+        "SMSQUEUES": "Code SMS",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "STRATEGY": "Strategia",
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "AGENT_TIMEOUT_REQUIRED": "Il Timeout Agente è richiesto",
+            "PHONE_REQUIRED": "Il Telefono è richiesto",
+            "SID_REQUIRED": "Il SID è richiesto",
+            "TOKEN_REQUIRED": "Il Token è richiesto",
+            "USERNAME_REQUIRED": "Lo Username è richiesto",
+            "PASSWORD_REQUIRED": "La Password è richiesta",
+            "MOTIONADDRESS_REQUIRED": "L' indirizzo Motion è richiesto",
+            "MOTIONADDRESS_MUST_VALID_URL": "L' Indirizzo Motion deve essere in un formato valido",
+            "ACCEPTURL_MUST_VALID_URL": "L'URL Accetta deve essere in un formato valido",
+            "TIMEOUT_REQUIRED": "Il Timeout è richiesto",
+            "REJECTURL_MUST_VALID_URL": "L'URL Rifiuta deve essere in un formato valido",
+            "CLOSEURL_MUST_VALID_URL": "L'URL Chiudi deve essere in un formato valido"
+        },
+        "AGENT_TIMEOUT": "Timeout Agente",
+        "DESCRIPTION": "Descrizione",
+        "ADD_SMSQUEUE": "Aggiungi Coda SMS",
+        "EDIT_SMSQUEUE": "Modifica Coda SMS",
+        "DELETE_SMSQUEUE": "Elimina Coda SMS",
+        "SETTINGS": "Impostazioni",
+        "GENERAL": "Generale",
+        "CREATED_AT": "Creato il",
+        "SAVE": "Salva",
+        "SMSACCOUNTS": "Account SMS",
+        "TYPE": "Tipo",
+        "PHONE": "Telefono",
+        "SID": "SID",
+        "TOKEN": "Token",
+        "SMSTYPE": "Tipo SMS",
+        "USERNAME": "Username",
+        "PASSWORD": "Password",
+        "MOTIONADDRESS": "Indirizzo Motion",
+        "ADD_SMSACCOUNT": "Aggiungi Account SMS",
+        "EDIT_SMSACCOUNT": "Modifica Account SMS",
+        "DELETE_SMSACCOUNT": "Elimina Account SMS",
+        "LIST": "Lista",
+        "FIDELITY": "Fidelity",
+        "API": "API",
+        "DISPOSITIONS": "Esiti",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Azione",
+        "ACCEPT": "Accetta",
+        "ACCEPTMETHOD": "Metodo Accetta",
+        "ACCEPTURL": "URL Accetta",
+        "REJECT": "Rifiuta",
+        "REJECTMETHOD": "Metodo Rifiuta",
+        "REJECTURL": "URL Rifiuta",
+        "CLOSE": "Chiudi",
+        "CLOSEMETHOD": "Metodo Chiudi",
+        "CLOSEURL": "URL Chiudi",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutti",
+        "SELECT_NONE": "Deseleziona tutti",
+        "BACK": "Indietro",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "Conferma Password",
+        "SMSDISPOSITIONS": "Esiti SMS",
+        "NO_SMSDISPOSITIONS_AVAILABLE": "Nessun Esito SMS disponibile",
+        "NEW_SMSDISPOSITION": "Nuovo Esito SMS",
+        "ADD_SMSDISPOSITION": "Aggiungi Esito SMS",
+        "EDIT_SMSDISPOSITION": "Modifica Esito SMS",
+        "DELETE_SMSDISPOSITION": "Elimina Esito SMS",
+        "NEW_SMSQUEUE": "Nuova coda SMS",
+        "NEW_SMSACCOUNT": "Nuovo Account SMS",
+        "NO_SMSDISPOSITION_AVAILABLE": "Nessun SMS Disposizioni disponibili",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "ALL_TEAMS": "Tutti i Team",
+        "SELECTED_TEAMS": "Team selezionati"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/ja.json b/public/app/main/apps/sms/i18n/ja.json
new file mode 100644 (file)
index 0000000..e9f1426
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "名",
+        "SMSQUEUES": "SMS のキュー",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "STRATEGY": "戦略",
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "AGENT_TIMEOUT_REQUIRED": "エージェントのタイムアウトが必要",
+            "PHONE_REQUIRED": "の電話番号が必要です",
+            "SID_REQUIRED": "SID が必要な",
+            "TOKEN_REQUIRED": "トークンが必要",
+            "USERNAME_REQUIRED": "ユーザ名が必要です",
+            "PASSWORD_REQUIRED": "パスワードが必要です",
+            "MOTIONADDRESS_REQUIRED": "モーションのアドレスが必要です",
+            "MOTIONADDRESS_MUST_VALID_URL": "モーションアドレスが有効な形式で記述する必要があります",
+            "ACCEPTURL_MUST_VALID_URL": "「同意します URL に有効な形式で記述する必要があります",
+            "TIMEOUT_REQUIRED": "タイムアウトは必須です",
+            "REJECTURL_MUST_VALID_URL": "拒否 URL に有効な形式で記述する必要があります",
+            "CLOSEURL_MUST_VALID_URL": "閉じる URL を指定します。有効な形式で記述する必要があります"
+        },
+        "AGENT_TIMEOUT": "エージェントのタイムアウト",
+        "DESCRIPTION": "説明",
+        "ADD_SMSQUEUE": "SMS のキューを追加します。",
+        "EDIT_SMSQUEUE": "SMS キューの編集",
+        "DELETE_SMSQUEUE": "SMS のキューを削除",
+        "SETTINGS": "の設定",
+        "GENERAL": "一般的な",
+        "CREATED_AT": "で作成された",
+        "SAVE": "保存",
+        "SMSACCOUNTS": "SMS アカウント",
+        "TYPE": "タイプ",
+        "PHONE": "電話",
+        "SID": "SID",
+        "TOKEN": "トークン",
+        "SMSTYPE": "SMS タイプ",
+        "USERNAME": "ユーザ名",
+        "PASSWORD": "パスワード",
+        "MOTIONADDRESS": "モーションのアドレス",
+        "ADD_SMSACCOUNT": "SMS アカウントを追加します",
+        "EDIT_SMSACCOUNT": "SMS アカウントの編集",
+        "DELETE_SMSACCOUNT": "SMS アカウントを削除します",
+        "LIST": "リスト",
+        "FIDELITY": "忠実性",
+        "API": "API",
+        "DISPOSITIONS": "ディスポジション",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "アクション",
+        "ACCEPT": "受け入れる",
+        "ACCEPTMETHOD": "方法を受け入れる",
+        "ACCEPTURL": "URL を受け入れ",
+        "REJECT": "拒否",
+        "REJECTMETHOD": "拒否メソッド",
+        "REJECTURL": "拒否 URL",
+        "CLOSE": "閉じる",
+        "CLOSEMETHOD": "Close メソッド",
+        "CLOSEURL": "閉じる URL",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "BACK": "背面",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "パスワードを確認します",
+        "SMSDISPOSITIONS": "SMS のディスポジション",
+        "NO_SMSDISPOSITION_AVAILABLE": "SMS のディスポジションを使用できません",
+        "NEW_SMSDISPOSITION": "新規の SMS の気質",
+        "ADD_SMSDISPOSITION": "SMS のディスポジションの追加 ]",
+        "EDIT_SMSDISPOSITION": "SMS を編集処理",
+        "DELETE_SMSDISPOSITION": "SMS のディスポジションを削除",
+        "NEW_SMSQUEUE": "新しい SMS キュー",
+        "NEW_SMSACCOUNT": "新しい SMS アカウント",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "ALL_TEAMS": "すべてのチーム",
+        "SELECTED_TEAMS": "選択したチーム"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/ko.json b/public/app/main/apps/sms/i18n/ko.json
new file mode 100644 (file)
index 0000000..f89425d
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "이름",
+        "SMSQUEUES": "SMS 대기열",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "STRATEGY": "전략",
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "AGENT_TIMEOUT_REQUIRED": "상담원은 제한 시간이 필요합니다.",
+            "PHONE_REQUIRED": "전화가 필요",
+            "SID_REQUIRED": "SID가 필요합니다.",
+            "TOKEN_REQUIRED": "토큰이 필요합니다.",
+            "USERNAME_REQUIRED": "사용자 이름이 필요합니다.",
+            "PASSWORD_REQUIRED": "암호 필요",
+            "MOTIONADDRESS_REQUIRED": "동작 주소가 필요합니다.",
+            "MOTIONADDRESS_MUST_VALID_URL": "동작 주소에 유효한 형식으로 작성되어 있어야 합니다",
+            "ACCEPTURL_MUST_VALID_URL": "동의함 URL 유효한 형식으로 작성되어 있어야 합니다",
+            "TIMEOUT_REQUIRED": "시간 제한이 필요합니다.",
+            "REJECTURL_MUST_VALID_URL": "거부 URL 유효한 형식으로 작성되어 있어야 합니다",
+            "CLOSEURL_MUST_VALID_URL": "닫기 URL 유효한 형식으로 작성되어 있어야 합니다"
+        },
+        "AGENT_TIMEOUT": "상담원 시간 초과",
+        "DESCRIPTION": "설명",
+        "ADD_SMSQUEUE": "Sms 대기열에 추가",
+        "EDIT_SMSQUEUE": "Sms 편집 대기",
+        "DELETE_SMSQUEUE": "Sms 큐를 삭제합니다",
+        "SETTINGS": "설정",
+        "GENERAL": "일반",
+        "CREATED_AT": "생성",
+        "SAVE": "저장",
+        "SMSACCOUNTS": "SMS 계정",
+        "TYPE": "유형",
+        "PHONE": "전화",
+        "SID": "SID",
+        "TOKEN": "토큰",
+        "SMSTYPE": "SMS 종류",
+        "USERNAME": "사용자 이름",
+        "PASSWORD": "암호",
+        "MOTIONADDRESS": "모션 주소",
+        "ADD_SMSACCOUNT": "Sms 계정 추가",
+        "EDIT_SMSACCOUNT": "Sms 계정 편집",
+        "DELETE_SMSACCOUNT": "Sms 계정 삭제",
+        "LIST": "목록",
+        "FIDELITY": "정확도",
+        "API": "API",
+        "DISPOSITIONS": "의향",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "동작",
+        "ACCEPT": "수락",
+        "ACCEPTMETHOD": "승인 방법",
+        "ACCEPTURL": "Url 승인",
+        "REJECT": "거부",
+        "REJECTMETHOD": "거부 방법",
+        "REJECTURL": "Reject URL",
+        "CLOSE": "닫기",
+        "CLOSEMETHOD": "Close 메서드",
+        "CLOSEURL": "닫기 URL",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "BACK": "후면",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "암호 확인",
+        "SMSDISPOSITIONS": "SMS 의향",
+        "NO_SMSDISPOSITION_AVAILABLE": "사용 가능한 SMS 의향 없음",
+        "NEW_SMSDISPOSITION": "새로운 SMS 처리",
+        "ADD_SMSDISPOSITION": "Sms 처리 추가",
+        "EDIT_SMSDISPOSITION": "Sms 처리 편집",
+        "DELETE_SMSDISPOSITION": "Sms 처리 삭제",
+        "NEW_SMSQUEUE": "새로운 SMS 대기열",
+        "NEW_SMSACCOUNT": "새로운 SMS 계정",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "ALL_TEAMS": "모든 팀이",
+        "SELECTED_TEAMS": "선택한 팀에"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/nl.json b/public/app/main/apps/sms/i18n/nl.json
new file mode 100644 (file)
index 0000000..5584c6d
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "Naam",
+        "SMSQUEUES": "SMS-wachtrijen",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "STRATEGY": "Strategie",
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "AGENT_TIMEOUT_REQUIRED": "De Agent Timeout is vereist",
+            "PHONE_REQUIRED": "Het telefoonnummer is verplicht",
+            "SID_REQUIRED": "De SID is vereist",
+            "TOKEN_REQUIRED": "Het token is vereist",
+            "USERNAME_REQUIRED": "De gebruikersnaam is vereist",
+            "PASSWORD_REQUIRED": "Het wachtwoord is vereist",
+            "MOTIONADDRESS_REQUIRED": "De Motion Adres is vereist.",
+            "MOTIONADDRESS_MUST_VALID_URL": "De Motion adres moet worden geschreven in een geldige indeling",
+            "ACCEPTURL_MUST_VALID_URL": "Accepteer URL moet worden geschreven in een geldige indeling",
+            "TIMEOUT_REQUIRED": "De timeout is vereist",
+            "REJECTURL_MUST_VALID_URL": "De afwijzing URL moet worden geschreven in een geldige indeling",
+            "CLOSEURL_MUST_VALID_URL": "De nauwe URL moet worden geschreven in een geldige indeling"
+        },
+        "AGENT_TIMEOUT": "Time-out agent",
+        "DESCRIPTION": "Beschrijving",
+        "ADD_SMSQUEUE": "Voeg SMS wachtrij",
+        "EDIT_SMSQUEUE": "Edit SMS wachtrij",
+        "DELETE_SMSQUEUE": "Verwijder de SMS-wachtrij",
+        "SETTINGS": "Instellingen",
+        "GENERAL": "Algemeen",
+        "CREATED_AT": "Gemaakt op",
+        "SAVE": "Opslaan",
+        "SMSACCOUNTS": "SMS Accounts",
+        "TYPE": "Type",
+        "PHONE": "Telefoon",
+        "SID": "SID",
+        "TOKEN": "Token",
+        "SMSTYPE": "SMS-type",
+        "USERNAME": "Gebruikersnaam",
+        "PASSWORD": "Wachtwoord",
+        "MOTIONADDRESS": "Motion adres",
+        "ADD_SMSACCOUNT": "Voeg SMS Account",
+        "EDIT_SMSACCOUNT": "Edit SMS Account",
+        "DELETE_SMSACCOUNT": "SMS-account",
+        "LIST": "Lijst",
+        "FIDELITY": "Hifi-geluid",
+        "API": "API",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acties",
+        "ACCEPT": "Accepteren",
+        "ACCEPTMETHOD": "Accepteren methode",
+        "ACCEPTURL": "URL accepteren",
+        "REJECT": "Afwijzen",
+        "REJECTMETHOD": "Methode afwijzen",
+        "REJECTURL": "URL afwijzen",
+        "CLOSE": "Dicht",
+        "CLOSEMETHOD": "Sluit methode",
+        "CLOSEURL": "Sluit URL",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "BACK": "Terug",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "Wachtwoord bevestigen",
+        "SMSDISPOSITIONS": "SMS DISPOSITIEVEN",
+        "NO_SMSDISPOSITION_AVAILABLE": "Geen SMS Dispositieven beschikbaar",
+        "NEW_SMSDISPOSITION": "Nieuwe SMS dispositie",
+        "ADD_SMSDISPOSITION": "Voeg SMS dispositie",
+        "EDIT_SMSDISPOSITION": "Edit SMS dispositie",
+        "DELETE_SMSDISPOSITION": "Verwijder de SMS-indeling",
+        "NEW_SMSQUEUE": "Nieuwe SMS-wachtrij",
+        "NEW_SMSACCOUNT": "Nieuwe SMS-account",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "ALL_TEAMS": "Alle teams",
+        "SELECTED_TEAMS": "Geselecteerde teams"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/no.json b/public/app/main/apps/sms/i18n/no.json
new file mode 100644 (file)
index 0000000..5a55dcd
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "Navn",
+        "SMSQUEUES": "SMS-køer",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "STRATEGY": "Strategi",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten tidsavbrudd er nødvendig",
+            "PHONE_REQUIRED": "Telefonen er nødvendig",
+            "SID_REQUIRED": "SID er nødvendig",
+            "TOKEN_REQUIRED": "Tokenet er nødvendig",
+            "USERNAME_REQUIRED": "Brukernavnet er nødvendig",
+            "PASSWORD_REQUIRED": "Passordet er nødvendig",
+            "MOTIONADDRESS_REQUIRED": "Bevegelsen adresse er påkrevd",
+            "MOTIONADDRESS_MUST_VALID_URL": "Bevegelsen adresse må være skrevet i et gyldig format",
+            "ACCEPTURL_MUST_VALID_URL": "Godta URL må være skrevet i et gyldig format",
+            "TIMEOUT_REQUIRED": "Tidsavbruddet er nødvendig",
+            "REJECTURL_MUST_VALID_URL": "Avvis URL må være skrevet i et gyldig format",
+            "CLOSEURL_MUST_VALID_URL": "Lukk URL må være skrevet i et gyldig format"
+        },
+        "AGENT_TIMEOUT": "Agent tidsavbrudd",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_SMSQUEUE": "Legg til SMS-kø",
+        "EDIT_SMSQUEUE": "Redigere SMS-kø",
+        "DELETE_SMSQUEUE": "Slett SMS-kø",
+        "SETTINGS": "Innstillinger",
+        "GENERAL": "Generelt",
+        "CREATED_AT": "Opprettet i",
+        "SAVE": "Lagre",
+        "SMSACCOUNTS": "SMS-kontoer",
+        "TYPE": "Type",
+        "PHONE": "Telefon",
+        "SID": "SID",
+        "TOKEN": "Brikke",
+        "SMSTYPE": "SMS-Type",
+        "USERNAME": "Brukernavn",
+        "PASSWORD": "Passord",
+        "MOTIONADDRESS": "Motion adresse",
+        "ADD_SMSACCOUNT": "Legg til SMS-konto",
+        "EDIT_SMSACCOUNT": "Redigere SMS-konto",
+        "DELETE_SMSACCOUNT": "Slett SMS-konto",
+        "LIST": "Liste",
+        "FIDELITY": "Fi",
+        "API": "API",
+        "DISPOSITIONS": "Disposisjoner",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Tiltak",
+        "ACCEPT": "Godta",
+        "ACCEPTMETHOD": "Godta metode",
+        "ACCEPTURL": "Godta URL",
+        "REJECT": "Avvis",
+        "REJECTMETHOD": "Avvis metode",
+        "REJECTURL": "Avvis URL",
+        "CLOSE": "Lukk",
+        "CLOSEMETHOD": "Lukk metode",
+        "CLOSEURL": "Lukk URL",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "BACK": "Tilbake",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "Bekreft passord",
+        "SMSDISPOSITIONS": "SMS-disposisjoner",
+        "NO_SMSDISPOSITION_AVAILABLE": "Ingen SMS-disposisjoner tilgjengelig",
+        "NEW_SMSDISPOSITION": "Ny SMS disposisjon",
+        "ADD_SMSDISPOSITION": "Legg til SMS-disposisjonen",
+        "EDIT_SMSDISPOSITION": "Redigere SMS disposisjon",
+        "DELETE_SMSDISPOSITION": "Slette SMS disposisjon",
+        "NEW_SMSQUEUE": "Nye SMS-kø",
+        "NEW_SMSACCOUNT": "Nye SMS-konto",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "ALL_TEAMS": "Alle grupper",
+        "SELECTED_TEAMS": "Valgte lag"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/pt-PT.json b/public/app/main/apps/sms/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..56fbad3
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "Nome",
+        "SMSQUEUES": "Filas de SMS",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "STRATEGY": "Estratégia",
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "AGENT_TIMEOUT_REQUIRED": "O Tempo Limite do Agente é necessária",
+            "PHONE_REQUIRED": "O telefone é obrigatório",
+            "SID_REQUIRED": "A SID é necessária",
+            "TOKEN_REQUIRED": "O token é necessário",
+            "USERNAME_REQUIRED": "O nome de usuário é obrigatório",
+            "PASSWORD_REQUIRED": "A senha é obrigatória",
+            "MOTIONADDRESS_REQUIRED": "O Movimento de endereço é obrigatório",
+            "MOTIONADDRESS_MUST_VALID_URL": "A proposta Endereço deve ser escrito em um formato válido",
+            "ACCEPTURL_MUST_VALID_URL": "A aceitar a URL deve ser escrito em um formato válido",
+            "TIMEOUT_REQUIRED": "O tempo limite é necessária",
+            "REJECTURL_MUST_VALID_URL": "A rejeitar a URL deve ser escrito em um formato válido",
+            "CLOSEURL_MUST_VALID_URL": "A FECHAR A URL deve ser escrito em um formato válido"
+        },
+        "AGENT_TIMEOUT": "Tempo Limite do Agente",
+        "DESCRIPTION": "Descrição",
+        "ADD_SMSQUEUE": "Adicionar fila de SMS",
+        "EDIT_SMSQUEUE": "Editar Fila de SMS",
+        "DELETE_SMSQUEUE": "Excluir fila de SMS",
+        "SETTINGS": "Definições",
+        "GENERAL": "Geral",
+        "CREATED_AT": "Criado em",
+        "SAVE": "Salvar",
+        "SMSACCOUNTS": "As contas do SMS",
+        "TYPE": "Tipo",
+        "PHONE": "Telefone",
+        "SID": "SID",
+        "TOKEN": "Token",
+        "SMSTYPE": "Tipo de SMS",
+        "USERNAME": "Nome de usuário",
+        "PASSWORD": "Senha",
+        "MOTIONADDRESS": "Endereço de movimento",
+        "ADD_SMSACCOUNT": "Adicionar conta SMS",
+        "EDIT_SMSACCOUNT": "Editar conta SMS",
+        "DELETE_SMSACCOUNT": "Excluir conta SMS",
+        "LIST": "Lista",
+        "FIDELITY": "Fidelidade",
+        "API": "API",
+        "DISPOSITIONS": "Disposições",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Acções",
+        "ACCEPT": "Aceitar",
+        "ACCEPTMETHOD": "Método de Aceitar",
+        "ACCEPTURL": "Aceitar URL",
+        "REJECT": "Rejeitar",
+        "REJECTMETHOD": "Método de rejeição",
+        "REJECTURL": "Rejeitar URL",
+        "CLOSE": "Fechar",
+        "CLOSEMETHOD": "Método de fechar",
+        "CLOSEURL": "Fechar URL",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "BACK": "De volta",
+        "SMS": "O SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "Confirmar Senha",
+        "SMSDISPOSITIONS": "Disposições do SMS",
+        "NO_SMSDISPOSITION_AVAILABLE": "Nenhuma disposição do SMS disponível",
+        "NEW_SMSDISPOSITION": "Nova disposição do SMS",
+        "ADD_SMSDISPOSITION": "Adicionar disposição SMS",
+        "EDIT_SMSDISPOSITION": "Editar disposição SMS",
+        "DELETE_SMSDISPOSITION": "Eliminar a disposição do SMS",
+        "NEW_SMSQUEUE": "Nova fila de SMS",
+        "NEW_SMSACCOUNT": "Nova conta SMS",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "ALL_TEAMS": "Todas as equipas",
+        "SELECTED_TEAMS": "Equipes selecionadas"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/ru.json b/public/app/main/apps/sms/i18n/ru.json
new file mode 100644 (file)
index 0000000..1778f14
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "Имя",
+        "SMSQUEUES": "Очереди сообщений SMS",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "STRATEGY": "Стратегия",
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "AGENT_TIMEOUT_REQUIRED": "Оператор - тайм-аут требуется",
+            "PHONE_REQUIRED": "Номер телефона не требуется",
+            "SID_REQUIRED": "Значение SID не требуется",
+            "TOKEN_REQUIRED": "Маркер не требуется",
+            "USERNAME_REQUIRED": "Имя пользователя не требуется",
+            "PASSWORD_REQUIRED": "Пароль не требуется",
+            "MOTIONADDRESS_REQUIRED": "Движение адрес не требуется",
+            "MOTIONADDRESS_MUST_VALID_URL": "Движение адрес должен быть записан в действительный формат",
+            "ACCEPTURL_MUST_VALID_URL": "Принять URL должен быть записан в действительный формат",
+            "TIMEOUT_REQUIRED": "Тайм-аут не требуется",
+            "REJECTURL_MUST_VALID_URL": "Отклонить URL должен быть записан в действительный формат",
+            "CLOSEURL_MUST_VALID_URL": "Закрыть адрес URL должен быть записан в действительный формат"
+        },
+        "AGENT_TIMEOUT": "Время ожидания оператора",
+        "DESCRIPTION": "Описание",
+        "ADD_SMSQUEUE": "Добавить сервер SMS очереди",
+        "EDIT_SMSQUEUE": "Редактировать сервер SMS очереди",
+        "DELETE_SMSQUEUE": "Удаление SMS-очереди",
+        "SETTINGS": "Настройки",
+        "GENERAL": "Генеральной",
+        "CREATED_AT": "Созданные в",
+        "SAVE": "Сохранить",
+        "SMSACCOUNTS": "SMS счетов",
+        "TYPE": "Тип",
+        "PHONE": "Номер телефона",
+        "SID": "SID",
+        "TOKEN": "Маркер",
+        "SMSTYPE": "Тип сообщений SMS",
+        "USERNAME": "Имя пользователя",
+        "PASSWORD": "Пароль",
+        "MOTIONADDRESS": "Адрес движения",
+        "ADD_SMSACCOUNT": "Добавить учетную запись сервера SMS",
+        "EDIT_SMSACCOUNT": "Редактировать учетную запись сервера SMS",
+        "DELETE_SMSACCOUNT": "Удалить учетную запись сервера SMS",
+        "LIST": "Список",
+        "FIDELITY": "Четкость",
+        "API": "API",
+        "DISPOSITIONS": "Распоряжения",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Действия",
+        "ACCEPT": "Согласиться с",
+        "ACCEPTMETHOD": "Принять метод",
+        "ACCEPTURL": "Согласиться с URL",
+        "REJECT": "Отклонить",
+        "REJECTMETHOD": "Отклонить метод",
+        "REJECTURL": "Отклонить URL",
+        "CLOSE": "Закрыть",
+        "CLOSEMETHOD": "Закройте метод",
+        "CLOSEURL": "Закрыть URL",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "BACK": "Назад",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "Подтвердите пароль",
+        "SMSDISPOSITIONS": "SMS распоряжения",
+        "NO_SMSDISPOSITION_AVAILABLE": "SMS не распоряжения имеющихся",
+        "NEW_SMSDISPOSITION": "Новые SMS-Disposition",
+        "ADD_SMSDISPOSITION": "Добавить сервер SMS распоряжения",
+        "EDIT_SMSDISPOSITION": "Редактировать сервер SMS распоряжения",
+        "DELETE_SMSDISPOSITION": "Удаление SMS-Disposition",
+        "NEW_SMSQUEUE": "Новые SMS-сообщения очереди ожидания",
+        "NEW_SMSACCOUNT": "Новая учетная запись сервера SMS",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "ALL_TEAMS": "Все группы",
+        "SELECTED_TEAMS": "Выбранные группы"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/sv.json b/public/app/main/apps/sms/i18n/sv.json
new file mode 100644 (file)
index 0000000..808aa9e
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "Namn",
+        "SMSQUEUES": "SMS-köer",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "STRATEGY": "Strategi",
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "AGENT_TIMEOUT_REQUIRED": "Agenten Timeout krävs",
+            "PHONE_REQUIRED": "Telefonen är obligatoriskt",
+            "SID_REQUIRED": "Ffa är obligatoriskt",
+            "TOKEN_REQUIRED": "Token är obligatoriskt",
+            "USERNAME_REQUIRED": "Användarnamn krävs",
+            "PASSWORD_REQUIRED": "Lösenord krävs",
+            "MOTIONADDRESS_REQUIRED": "Motion adress krävs",
+            "MOTIONADDRESS_MUST_VALID_URL": "Rörelsen måste vara skrivna på ett giltigt format",
+            "ACCEPTURL_MUST_VALID_URL": "Acceptera URL måste vara skrivna på ett giltigt format",
+            "TIMEOUT_REQUIRED": "Väntetiden är obligatoriskt",
+            "REJECTURL_MUST_VALID_URL": "Avvisa URL måste vara skrivna på ett giltigt format",
+            "CLOSEURL_MUST_VALID_URL": "Stäng URL måste vara skrivna på ett giltigt format"
+        },
+        "AGENT_TIMEOUT": "Tidsgräns för agent",
+        "DESCRIPTION": "Beskrivning",
+        "ADD_SMSQUEUE": "Lägg till SMS-kö",
+        "EDIT_SMSQUEUE": "Redigera SMS-kö",
+        "DELETE_SMSQUEUE": "Ta bort SMS-kö",
+        "SETTINGS": "Inställningar",
+        "GENERAL": "Allmänt",
+        "CREATED_AT": "Skapad",
+        "SAVE": "Spara",
+        "SMSACCOUNTS": "SMS-konton",
+        "TYPE": "Typ",
+        "PHONE": "Telefon",
+        "SID": "SID",
+        "TOKEN": "Token",
+        "SMSTYPE": "SMS-typ",
+        "USERNAME": "Användarnamn",
+        "PASSWORD": "Lösenord",
+        "MOTIONADDRESS": "Motion adress",
+        "ADD_SMSACCOUNT": "Lägg till SMS-konto",
+        "EDIT_SMSACCOUNT": "Redigera SMS-konto",
+        "DELETE_SMSACCOUNT": "Ta bort SMS-konto",
+        "LIST": "Lista",
+        "FIDELITY": "Fidelity",
+        "API": "API",
+        "DISPOSITIONS": "Dispositioner",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Åtgärder",
+        "ACCEPT": "Godta",
+        "ACCEPTMETHOD": "Acceptera metod",
+        "ACCEPTURL": "Acceptera URL",
+        "REJECT": "Avvisa",
+        "REJECTMETHOD": "Förkasta metoden",
+        "REJECTURL": "Avvisa URL",
+        "CLOSE": "Stäng",
+        "CLOSEMETHOD": "Stäng metod",
+        "CLOSEURL": "Stäng URL",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "BACK": "Tillbaka",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "Bekräfta lösenord",
+        "SMSDISPOSITIONS": "SMS dispositioner",
+        "NO_SMSDISPOSITION_AVAILABLE": "Inga SMS-dispositioner tillgängliga",
+        "NEW_SMSDISPOSITION": "Nya SMS-Disposition",
+        "ADD_SMSDISPOSITION": "Lägg till SMS-Disposition",
+        "EDIT_SMSDISPOSITION": "Redigera SMS Disposition",
+        "DELETE_SMSDISPOSITION": "Ta bort SMS-Disposition",
+        "NEW_SMSQUEUE": "Nya SMS-kö",
+        "NEW_SMSACCOUNT": "Nya SMS-konto",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "ALL_TEAMS": "Alla grupper",
+        "SELECTED_TEAMS": "Valda grupper"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/tr.json b/public/app/main/apps/sms/i18n/tr.json
new file mode 100644 (file)
index 0000000..8a5c036
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "Adı",
+        "SMSQUEUES": "SMS Kuyrukları",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "STRATEGY": "Strateji",
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "AGENT_TIMEOUT_REQUIRED": "Ajan zaman gerekiyor.",
+            "PHONE_REQUIRED": "Telefon gerekiyor.",
+            "SID_REQUIRED": "SID gerekiyor",
+            "TOKEN_REQUIRED": "Belirteç gerekiyor.",
+            "USERNAME_REQUIRED": "Kullanıcı Adı gerekiyor",
+            "PASSWORD_REQUIRED": "Parola gerekli",
+            "MOTIONADDRESS_REQUIRED": "Hareket adresi gerekli",
+            "MOTIONADDRESS_MUST_VALID_URL": "Hareket adres yazılmış olması gerekir. geçerli bir format",
+            "ACCEPTURL_MUST_VALID_URL": "Kabul URL yazılmış olması gerekir. geçerli bir format",
+            "TIMEOUT_REQUIRED": "Zaman Aşımı gerekiyor.",
+            "REJECTURL_MUST_VALID_URL": "Reddetme URL yazılmış olması gerekir. geçerli bir format",
+            "CLOSEURL_MUST_VALID_URL": "Kapat URL yazılmış olması gerekir. geçerli bir format"
+        },
+        "AGENT_TIMEOUT": "Ajan Zaman Aşımı",
+        "DESCRIPTION": "Açıklama",
+        "ADD_SMSQUEUE": "Add SMS Sırası",
+        "EDIT_SMSQUEUE": "Edit SMS Sırası",
+        "DELETE_SMSQUEUE": "SMS Sırası",
+        "SETTINGS": "Ayarlar",
+        "GENERAL": "Genel",
+        "CREATED_AT": "Oluşturulmuş",
+        "SAVE": "Kaydet",
+        "SMSACCOUNTS": "SMS Hesapları",
+        "TYPE": "Tipi",
+        "PHONE": "Telefon",
+        "SID": "SID",
+        "TOKEN": "Işaretleyici",
+        "SMSTYPE": "SMS Tipi",
+        "USERNAME": "Kullanıcı Adı",
+        "PASSWORD": "Parola",
+        "MOTIONADDRESS": "Hareket Adres",
+        "ADD_SMSACCOUNT": "Add SMS Hesabı",
+        "EDIT_SMSACCOUNT": "Edit SMS Hesabı",
+        "DELETE_SMSACCOUNT": "SMS Hesabı",
+        "LIST": "Listesi",
+        "FIDELITY": "Doğruluğu",
+        "API": "API",
+        "DISPOSITIONS": "Işlenir",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "Eylemler",
+        "ACCEPT": "Kabul Ediyorum",
+        "ACCEPTMETHOD": "Kabul Yöntemi",
+        "ACCEPTURL": "URL kabul edin",
+        "REJECT": "Reddetme",
+        "REJECTMETHOD": "Reddetme Yöntemi",
+        "REJECTURL": "Ret URL",
+        "CLOSE": "Close",
+        "CLOSEMETHOD": "Close Metodu",
+        "CLOSEURL": "Close URL",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "BACK": "Geri",
+        "SMS": "SMS",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "Parolayı Onayla",
+        "SMSDISPOSITIONS": "SMS işlenir",
+        "NO_SMSDISPOSITION_AVAILABLE": "SMS yok mevcut işlenir",
+        "NEW_SMSDISPOSITION": "Yeni SMS Nizam",
+        "ADD_SMSDISPOSITION": "Add SMS Nizam",
+        "EDIT_SMSDISPOSITION": "Edit SMS Nizam",
+        "DELETE_SMSDISPOSITION": "SMS Nizam",
+        "NEW_SMSQUEUE": "Yeni SMS Sırası",
+        "NEW_SMSACCOUNT": "Yeni SMS Hesabı",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "ALL_TEAMS": "Tüm takımlar",
+        "SELECTED_TEAMS": "Seçilen Ekipleri"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/zh-CN.json b/public/app/main/apps/sms/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..65ae544
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "名称",
+        "SMSQUEUES": "短信队列。",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "STRATEGY": "战略",
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "AGENT_TIMEOUT_REQUIRED": "代理超时是必需的",
+            "PHONE_REQUIRED": "手机是必需的",
+            "SID_REQUIRED": "SID 是必需的",
+            "TOKEN_REQUIRED": "令牌是必需的",
+            "USERNAME_REQUIRED": "用户名是必需的",
+            "PASSWORD_REQUIRED": "密码是必需的",
+            "MOTIONADDRESS_REQUIRED": "该议案的地址是必填项",
+            "MOTIONADDRESS_MUST_VALID_URL": "该议案的地址必须是书面的格式无效",
+            "ACCEPTURL_MUST_VALID_URL": "接受 URL 必须是书面的格式无效",
+            "TIMEOUT_REQUIRED": "超时是必需的",
+            "REJECTURL_MUST_VALID_URL": "“拒绝” 的 URL 必须是书面的格式无效",
+            "CLOSEURL_MUST_VALID_URL": "关闭 URL 必须是书面的格式无效"
+        },
+        "AGENT_TIMEOUT": "代理超时",
+        "DESCRIPTION": "描述",
+        "ADD_SMSQUEUE": "添加 SMS 队列",
+        "EDIT_SMSQUEUE": "编辑短信队列",
+        "DELETE_SMSQUEUE": "删除短信队列",
+        "SETTINGS": "设置",
+        "GENERAL": "总的",
+        "CREATED_AT": "创建在",
+        "SAVE": "保存",
+        "SMSACCOUNTS": "SMS 帐户。",
+        "TYPE": "类型",
+        "PHONE": "电话",
+        "SID": "SID。",
+        "TOKEN": "令牌",
+        "SMSTYPE": "短信类型",
+        "USERNAME": "用户名",
+        "PASSWORD": "密码",
+        "MOTIONADDRESS": "移动地址",
+        "ADD_SMSACCOUNT": "添加 SMS 帐户",
+        "EDIT_SMSACCOUNT": "编辑短信帐户",
+        "DELETE_SMSACCOUNT": "删除 SMS 帐户",
+        "LIST": "列表",
+        "FIDELITY": "保真度",
+        "API": "API",
+        "DISPOSITIONS": "资产处置",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "采取的行动",
+        "ACCEPT": "接受",
+        "ACCEPTMETHOD": "接受的方法。",
+        "ACCEPTURL": "接受的 URL。",
+        "REJECT": "拒绝",
+        "REJECTMETHOD": "拒绝方法。",
+        "REJECTURL": "拒绝 URL。",
+        "CLOSE": "关闭",
+        "CLOSEMETHOD": "关闭方法。",
+        "CLOSEURL": "关闭 URL。",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "BACK": "返回",
+        "SMS": "短信",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "确认密码",
+        "SMSDISPOSITIONS": "SMS 部署",
+        "NO_SMSDISPOSITION_AVAILABLE": "无短信提供的处置",
+        "NEW_SMSDISPOSITION": "新的短信处理",
+        "ADD_SMSDISPOSITION": "添加 SMS 部署",
+        "EDIT_SMSDISPOSITION": "编辑短信的处理",
+        "DELETE_SMSDISPOSITION": "删除短信的处理",
+        "NEW_SMSQUEUE": "新的 SMS 队列",
+        "NEW_SMSACCOUNT": "新的 SMS 帐户",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "ALL_TEAMS": "所有的团队",
+        "SELECTED_TEAMS": "选定的组"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/sms/i18n/zh-TW.json b/public/app/main/apps/sms/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..bdff4b7
--- /dev/null
@@ -0,0 +1,77 @@
+{
+    "SMS": {
+        "NAME": "名稱",
+        "SMSQUEUES": "SMS ( 簡訊 ) 佇列",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "STRATEGY": "策略",
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "AGENT_TIMEOUT_REQUIRED": "「值機人員逾時為必填欄位",
+            "PHONE_REQUIRED": "「電話」為必填欄位",
+            "SID_REQUIRED": "SID 為必填欄位",
+            "TOKEN_REQUIRED": "該記號為必填欄位",
+            "USERNAME_REQUIRED": "使用者名稱為必要資訊",
+            "PASSWORD_REQUIRED": "密碼為必填欄位",
+            "MOTIONADDRESS_REQUIRED": "動態地址為必填欄位",
+            "MOTIONADDRESS_MUST_VALID_URL": "動態位址必須以有效的格式",
+            "ACCEPTURL_MUST_VALID_URL": "接受 URL 必須以有效的格式",
+            "TIMEOUT_REQUIRED": "逾時時間為必要資訊",
+            "REJECTURL_MUST_VALID_URL": "拒絕 URL 必須以有效的格式",
+            "CLOSEURL_MUST_VALID_URL": "關閉的 URL 必須以有效的格式"
+        },
+        "AGENT_TIMEOUT": "值機人員等候逾時",
+        "DESCRIPTION": "說明",
+        "ADD_SMSQUEUE": "新增文字訊息佇列",
+        "EDIT_SMSQUEUE": "編輯簡訊佇列",
+        "DELETE_SMSQUEUE": "刪除文字訊息佇列",
+        "SETTINGS": "設定",
+        "GENERAL": "通用",
+        "CREATED_AT": "建立在",
+        "SAVE": "儲存",
+        "SMSACCOUNTS": "SMS 帳戶",
+        "TYPE": "類型",
+        "PHONE": "電話",
+        "SID": "SID",
+        "TOKEN": "權杖",
+        "SMSTYPE": "SMS ( 簡訊 ) 類型",
+        "USERNAME": "使用者名稱",
+        "PASSWORD": "密碼",
+        "MOTIONADDRESS": "動態位址",
+        "ADD_SMSACCOUNT": "新增 SMS 帳戶",
+        "EDIT_SMSACCOUNT": "編輯簡訊帳號",
+        "DELETE_SMSACCOUNT": "刪除 SMS 帳戶",
+        "LIST": "清單",
+        "FIDELITY": "準確性",
+        "API": "API",
+        "DISPOSITIONS": "Dispositions",
+        "WEBHOOKS": "WebHooks",
+        "ACTIONS": "動作",
+        "ACCEPT": "接受",
+        "ACCEPTMETHOD": "接受方法",
+        "ACCEPTURL": "接受 URL",
+        "REJECT": "拒絕",
+        "REJECTMETHOD": "排除方法",
+        "REJECTURL": "拒絕 URL",
+        "CLOSE": "關閉",
+        "CLOSEMETHOD": "關閉方法",
+        "CLOSEURL": "關閉 URL",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "BACK": "備份",
+        "SMS": "SMS ( 簡訊 )",
+        "ID": "Id",
+        "CONFIRM_PASSWORD": "確認密碼",
+        "SMSDISPOSITIONS": "SMS Dispositions",
+        "NO_SMSDISPOSITION_AVAILABLE": "無簡訊 Dispositions 可用性",
+        "NEW_SMSDISPOSITION": "新的 SMS 配置",
+        "ADD_SMSDISPOSITION": "新增 SMS 配置",
+        "EDIT_SMSDISPOSITION": "編輯簡訊配置",
+        "DELETE_SMSDISPOSITION": "刪除 SMS 配置",
+        "NEW_SMSQUEUE": "新的 SMS 佇列",
+        "NEW_SMSACCOUNT": "新的 SMS 帳戶",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "ALL_TEAMS": "所有群組",
+        "SELECTED_TEAMS": "選取群組"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/da.json b/public/app/main/apps/staff/i18n/da.json
new file mode 100644 (file)
index 0000000..0cc88a7
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "Brugere",
+        "AGENTS": "Agenter",
+        "TOGGLE_SIDENAV": "Skifte sidenav",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "BACK": "Tilbage",
+        "MULTI_SELECT_TOGGLE": "Vælg skift mellem flere",
+        "SELECT_ALL": "Vælg alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "SELECTED": "Valgt",
+        "DELETE_SELECTED": "Slet valgte",
+        "EXPORT_SELECTED": "Eksporter valgte",
+        "ALL_USERS": "Alle brugere",
+        "ALL_AGENTS": "Alle agenter",
+        "SORT": "Sorter",
+        "NAME": "Navnet",
+        "FULLNAME": "Fulde navn",
+        "A_TO_Z": "(A til Z)",
+        "Z_TO_A": "(Z til A).",
+        "MORE": "Mere",
+        "DELETE_USER": "Slet bruger",
+        "EDIT_USER": "Rediger bruger",
+        "DELETE_AGENT": "Slet Agent",
+        "EDIT_AGENT": "Rediger Agent",
+        "DELETE": "Slet",
+        "SAVE": "Gem",
+        "ADD_USER": "Tilføje bruger",
+        "ADD_AGENT": "Tilføj agent",
+        "NO_RESULTS": "Ingen resultater..",
+        "CLOSE_DIALOG": "Tæt dialog",
+        "NAME_REQUIRED": "Navn (påkrævet)",
+        "USERNAME": "Brugernavn",
+        "SHOW_ALL_FIELDS": "Vis alle felter",
+        "PHONE_NUMBER": "Telefonnummer",
+        "EMAIL": "Email",
+        "PASSWORD": "Password",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "Det fulde navn er påkrævet",
+            "USERNAME_REQUIRED": "Brugernavn er påkrævet",
+            "EMAIL_REQUIRED": "E-mail er påkrævet",
+            "PASSWORD_REQUIRED": "Adgangskoden kræves",
+            "CONFIRM_NOT_MATCH": "Adgangskoderne stemmer ikke overens",
+            "EMAIL_MUST_VALID": "E-mailen skal være skrevet i et gyldigt format",
+            "ACCOUNTNAME_REQUIRED": "Kontonavnet er påkrævet",
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "HOST_REQUIRED": "Værten er påkrævet",
+            "CHATCAPACITY_REQUIRED": "Chat-kapacitet er påkrævet",
+            "MAILCAPACITY_REQUIRED": "E-Mail-kapacitet er påkrævet",
+            "FAXCAPACITY_REQUIRED": "Faxen kapacitet er påkrævet",
+            "SMSCAPACITY_REQUIRED": "SMS kapacitet er påkrævet",
+            "OPENCHANNELCAPACITY_REQUIRED": "Den åbne kanal kapacitet er påkrævet",
+            "SIPEXPIRES_REQUIRED": "SIP eksspiration er påkrævet",
+            "SIPPORT_REQUIRED": "SIP Port kræves",
+            "UNCONDITIONALNUMBER_REQUIRED": "Den ubetingede nummer er påkrævet",
+            "NOREPLYNUMBER_REQUIRED": "No Reply nummer er påkrævet",
+            "BUSYNUMBER_REQUIRED": "Det optagede nummer er påkrævet",
+            "USERNAME_MUST_VALID_PATTERN": "Brugernavnet skal være gyldig {{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "Fjernbetjeningen Port kræves"
+        },
+        "ACCOUNT": "Konto",
+        "VOICE": "Voice",
+        "CREATED_AT": "Oprettet på",
+        "ROLE": "Rolle",
+        "PERSONAL_INFO": "Personal Info",
+        "DESCRIPTION": "Beskrivelse",
+        "CHANGE_AVATAR": "Skift Avatar",
+        "GENERAL": "Generel",
+        "INTERNAL": "Intern",
+        "TRANSPORT": "Transport",
+        "ALLOWCODECS": "Medbringes Codecs",
+        "HELP": {
+            "ALLOWCODECS": "Medbringes Codecs i prioritetsrækkefølge",
+            "TRANSPORT": "Opsætter transporter. Rækkefølgen bestemmer den primære standard transport.",
+            "HOST": "Find den client - IP eller hostname. Hvis du vil have telefonen til at registrere sig, skal du bruge nøgleordet dynamisk i stedet for en IP adresse.",
+            "NAT": "Ændrer adfærden hos stjerne for klienter bag en firewall.Hvis en kommasepareret muligheder er 'nej', Stjerne vil ignorere alle indstillinger og sæt nat=no.",
+            "SIPEXPIRES": "Standard: 160",
+            "SIPPORT": "Standard: 5060",
+            "TYPE": "Bestemmer SIP rolle i stjerne. Bruger: bruges til at autentificere indgående - Peer: til udgående opkald - Ven: dækker både beskrivelse af ovenstående.",
+            "CHATCAPACITY": "Nul betyder ubegrænset.",
+            "MAILCAPACITY": "Nul betyder ubegrænset.",
+            "FAXCAPACITY": "Nul betyder ubegrænset.",
+            "SMSCAPACITY": "Nul betyder ubegrænset.",
+            "OPENCHANNELCAPACITY": "Nul betyder ubegrænset.",
+            "CALLGROUP": "Definerer agentens callgroup",
+            "PICKUPGROUP": "Definerer grupper, hvor agenten kan besvare opkald"
+        },
+        "NEW_PASSWORD": "Ny adgangskode",
+        "CONFIRM_PASSWORD": "Bekræft adgangskode",
+        "LOGININPAUSE": "Login på pause",
+        "HOST": "Host",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "Andre kanaler",
+        "CHATCAPACITY": "Chat kapacitet",
+        "MAILCAPACITY": "Mailkapacitet",
+        "FAXCAPACITY": "Fax kapacitet",
+        "SMSCAPACITY": "Sms kapacitet",
+        "OPENCHANNELCAPACITY": "Åben Kanal kapacitet",
+        "MOTIONBAR": "Motion Bar",
+        "SETTINGS": "Indstillinger",
+        "AUTOANSWER": "Auto Answer",
+        "ENABLESETTINGS": "Aktiverer indstillinger",
+        "CALL_FORWARDING": "Viderestilling",
+        "UNCONDITIONAL": "Ubetinget",
+        "UNCONDITIONALNUMBER": "Ubetinget nummer",
+        "NOREPLY": "Intet svar",
+        "NOREPLYNUMBER": "Ingen svar nummer",
+        "BUSY": "Optaget",
+        "BUSYNUMBER": "Optaget",
+        "REMOTE_CONTROL": "Fjernbetjening",
+        "REMOTECONTROL": "Fjernbetjening",
+        "REMOTECONTROLPORT": "Fjernbetjening Port",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP udløber [sek.]",
+        "SIPPORT": "SIP Port",
+        "PENALTY": "Straf",
+        "ACCOUNTNAME": "Kontonavn",
+        "ADD_TELEPHONE": "Tilføj telefon",
+        "EDIT_TELEPHONE": "Rediger telefon",
+        "DELETE_TELEPHONE": "Slet telefon",
+        "TEAMS": "Hold",
+        "DELETE_TEAM": "Slet Team",
+        "AGENTADD_TEAM": "Tilføj agenter til Team",
+        "EDIT_TEAM": "Rediger Team",
+        "TYPE": "Type",
+        "TELEPHONES": "Telefoner",
+        "CALLERID": "Nummervisning",
+        "ENABLERECORDING": "Aktiverer optagelse",
+        "STAFF": "Personalet",
+        "ID": "Id",
+        "NEW_USER": "Ny bruger",
+        "NEW_AGENT": "Ny agent",
+        "NEW_TELEPHONE": "Ny telefon",
+        "NEW_TEAM": "Nyt hold",
+        "ADD_TEAM": "Tilføj Team",
+        "JOIN_QUEUE": "Join kø",
+        "CAPACITY": "Kapacitet",
+        "AUTOINTERNAL": "Autogenerer Internt varenummer",
+        "ADD_AGENT_TO_TEAM": "Tilføj Agent til Team",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "PERMISSIONS": "Tilladelser",
+        "ADD_AGENT_TO_QUEUE": "Tilføj til kø",
+        "ALL_MODULES_AVAILABLE": "Alle moduler er tilgængelige",
+        "CALLGROUP": "Gruppenummer",
+        "PICKUPGROUP": "Opkaldshentningsgruppe",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Tilføj til kø Agent kampagner",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Tilføj Agent til Voice køer",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Tilføj Agent til Chat køer",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Tilføj Agent til Postkøer",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Tilføj Agent til SMS KØER",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Tilføj Agent åbne kanal køer",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Tilføj Agent til Faxkøer",
+        "QUEUEADD_USER_VOICE_INBOUND": "Tilføj brugeren til Voice køer",
+        "QUEUEADD_USER_CHAT_INBOUND": "Tilføje en bruger til Chat køer",
+        "QUEUEADD_USER_MAIL_INBOUND": "Tilføj brugeren til Postkøer",
+        "QUEUEADD_USER_SMS_INBOUND": "Tilføje en bruger til SMS KØER",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Tilføje en bruger til en åben kanal køer",
+        "QUEUEADD_USER_FAX_INBOUND": "Tilføj brugeren til Faxkøer",
+        "ALL_TEAMS": "Alle hold",
+        "SELECTED_TEAMS": "Udvalgte Teams",
+        "SELECTED_AGENTS": "Udvalgte agenter",
+        "ALL_QUEUES_VOICE_OUTBOUND": "Alle Kø kampagner",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Udvalgte Kampagner kø",
+        "ALL_QUEUES_VOICE_INBOUND": "Alle Voice køer",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Valgt Voice køer",
+        "ALL_QUEUES_CHAT_INBOUND": "Alle Chat køer",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Udvalgte Chat køer",
+        "ALL_QUEUES_MAIL_INBOUND": "Alle Postkøer",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Udvalgte Postkøer",
+        "ALL_QUEUES_SMS_INBOUND": "Alle SMS-køer",
+        "SELECTED_QUEUES_SMS_INBOUND": "Udvalgte SMS KØER",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alle åbne kanal køer",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Valgte en åben kanal køer",
+        "ALL_QUEUES_FAX_INBOUND": "Alle Faxkøer",
+        "SELECTED_QUEUES_FAX_INBOUND": "Udvalgte Faxkøer",
+        "VOICEMAIL": "Telefonsvarer",
+        "CHANGE_PASSWORD": "Skift adgangskode",
+        "CHANGEPASSWORD_AGENT": "Skift adgangskode",
+        "CHANGEPASSWORD_USER": "Skift adgangskode",
+        "CHANGEPASSWORD_TELEPHONE": "Skift adgangskode",
+        "RINGINUSE": "Ringen er i brug"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/de.json b/public/app/main/apps/staff/i18n/de.json
new file mode 100644 (file)
index 0000000..c65337b
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "Benutzer",
+        "AGENTS": "Agenten",
+        "TOGGLE_SIDENAV": "Um sidenav",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "BACK": "Zurück",
+        "MULTI_SELECT_TOGGLE": "Wählen Sie toggle multi",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "SELECTED": "Ausgewählte",
+        "DELETE_SELECTED": "Auswahl löschen",
+        "EXPORT_SELECTED": "Auswahl exportieren",
+        "ALL_USERS": "Alle Benutzer",
+        "ALL_AGENTS": "Alle Agenten",
+        "SORT": "Sortieren",
+        "NAME": "Name",
+        "FULLNAME": "Voller Name",
+        "A_TO_Z": "(A bis Z)",
+        "Z_TO_A": "(Z bis A)",
+        "MORE": "Mehr",
+        "DELETE_USER": "Benutzer löschen",
+        "EDIT_USER": "Benutzer bearbeiten",
+        "DELETE_AGENT": "Bedienplatz löschen",
+        "EDIT_AGENT": "Agent bearbeiten",
+        "DELETE": "Löschen",
+        "SAVE": "Speichern",
+        "ADD_USER": "Benutzer hinzufügen",
+        "ADD_AGENT": "AGENT HINZUFÜGEN",
+        "NO_RESULTS": "Keine Ergebnisse.",
+        "CLOSE_DIALOG": "Dialog schließen",
+        "NAME_REQUIRED": "Name (erforderlich).",
+        "USERNAME": "Benutzername",
+        "SHOW_ALL_FIELDS": "Alle Felder anzeigen",
+        "PHONE_NUMBER": "Telefonnummer",
+        "EMAIL": "E-Mail",
+        "PASSWORD": "Passwort",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "Der Fullname ist erforderlich",
+            "USERNAME_REQUIRED": "Der Benutzername ist erforderlich",
+            "EMAIL_REQUIRED": "Die E-Mail ist erforderlich",
+            "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
+            "CONFIRM_NOT_MATCH": "Die Kennwörter stimmen nicht überein.",
+            "EMAIL_MUST_VALID": "Die e-Mail muss in einem gültigen Format",
+            "ACCOUNTNAME_REQUIRED": "Der Account ist erforderlich.",
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "HOST_REQUIRED": "Der Host wird benötigt",
+            "CHATCAPACITY_REQUIRED": "Die Kapazität ist erforderlich",
+            "MAILCAPACITY_REQUIRED": "Die E-Mail Kapazität erforderlich ist",
+            "FAXCAPACITY_REQUIRED": "Die Kapazität ist erforderlich",
+            "SMSCAPACITY_REQUIRED": "Die SMS-Kapazität erforderlich ist",
+            "OPENCHANNELCAPACITY_REQUIRED": "Der Offene Kanal Kapazität erforderlich ist",
+            "SIPEXPIRES_REQUIRED": "Der SIP-Ablauf ist erforderlich",
+            "SIPPORT_REQUIRED": "Die SIP-Port erforderlich.",
+            "UNCONDITIONALNUMBER_REQUIRED": "Die Zielrufnummer ist erforderlich",
+            "NOREPLYNUMBER_REQUIRED": "Die Nummer ist keine Antwort erforderlich",
+            "BUSYNUMBER_REQUIRED": "Die besetzt ist erforderlich",
+            "USERNAME_MUST_VALID_PATTERN": "Der Benutzername muss gültige {{regex}}.",
+            "REMOTECONTROLPORT_REQUIRED": "Die Fernbedienung Anschluss erforderlich"
+        },
+        "ACCOUNT": "Konto",
+        "VOICE": "Voice",
+        "CREATED_AT": "Erstellt am",
+        "ROLE": "Rolle",
+        "PERSONAL_INFO": "Persönliche Infos",
+        "DESCRIPTION": "Beschreibung",
+        "CHANGE_AVATAR": "Avatar ändern.",
+        "GENERAL": "Allgemein",
+        "INTERNAL": "Interne",
+        "TRANSPORT": "Verkehr",
+        "ALLOWCODECS": "Codecs erlaubt",
+        "HELP": {
+            "ALLOWCODECS": "Erlaubt Codecs in der Reihenfolge ihrer Präferenz",
+            "TRANSPORT": "Festlegen der Standardeinstellungen für Transporte. Die Reihenfolge bestimmt den primären Standard.",
+            "HOST": "Wie finden Sie die Client-IP oder den Host-Namen. Wenn Sie möchten, dass das Telefon zu registrieren, verwenden Sie das Schlüsselwort Dynamic anstelle von Host-IP.",
+            "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall.Wenn der Komma-getrennten Optionen ist \"Nein\", Asterisk ignoriert alle anderen Einstellungen und die nat=No.",
+            "SIPEXPIRES": "Standardeinstellung: 160",
+            "SIPPORT": "Standardeinstellung: 5060",
+            "TYPE": "Legt das SIP-Rolle innerhalb der Sternchen. User: Wird verwendet, um die Authentifizierung für eingehende - Peer: für ausgehende Anrufe - Freund: Deckt sowohl die Eigenschaften der oben genannten.",
+            "CHATCAPACITY": "Null bedeutet unbegrenzt.",
+            "MAILCAPACITY": "Null bedeutet unbegrenzt.",
+            "FAXCAPACITY": "Null bedeutet unbegrenzt.",
+            "SMSCAPACITY": "Null bedeutet unbegrenzt.",
+            "OPENCHANNELCAPACITY": "Null bedeutet unbegrenzt.",
+            "CALLGROUP": "Legt der Agent callgroup",
+            "PICKUPGROUP": "Definiert die Gruppen in denen der Agent Anrufe annehmen können"
+        },
+        "NEW_PASSWORD": "Neues Kennwort",
+        "CONFIRM_PASSWORD": "Passwort bestätigen",
+        "LOGININPAUSE": "Geben Sie Ihren Benutzernamen und Ihr Passwort In der Pause",
+        "HOST": "Host",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "Andere Kanäle",
+        "CHATCAPACITY": "Chat Kapazität",
+        "MAILCAPACITY": "E-Kapazität",
+        "FAXCAPACITY": "Fax Kapazität",
+        "SMSCAPACITY": "Sms-Kapazität",
+        "OPENCHANNELCAPACITY": "Offener Kanal Kapazität",
+        "MOTIONBAR": "Motion Bar",
+        "SETTINGS": "Einstellungen",
+        "AUTOANSWER": "\"Autom. Antwort\"",
+        "ENABLESETTINGS": "Einstellungen aktivieren",
+        "CALL_FORWARDING": "Anrufweiterleitung",
+        "UNCONDITIONAL": "Unbedingte",
+        "UNCONDITIONALNUMBER": "Uneingeschränkte Anzahl",
+        "NOREPLY": "Keine Antwort",
+        "NOREPLYNUMBER": "\"Keine Antwort\"-Nummer",
+        "BUSY": "Besetzt",
+        "BUSYNUMBER": "Nummer besetzt",
+        "REMOTE_CONTROL": "Fernbedienung",
+        "REMOTECONTROL": "Fernbedienung",
+        "REMOTECONTROLPORT": "Fernbedienung",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP läuft [sec]",
+        "SIPPORT": "SIP-Port",
+        "PENALTY": "Strafe",
+        "ACCOUNTNAME": "Account Name",
+        "ADD_TELEPHONE": "Telefon hinzufügen",
+        "EDIT_TELEPHONE": "Telefon bearbeiten",
+        "DELETE_TELEPHONE": "Telefon löschen",
+        "TEAMS": "Teams",
+        "DELETE_TEAM": "Team löschen",
+        "AGENTADD_TEAM": "Hinzufügen von Agenten zu einer Gruppe",
+        "EDIT_TEAM": "Team bearbeiten.",
+        "TYPE": "Typ",
+        "TELEPHONES": "Telefone",
+        "CALLERID": "Die Anrufer-ID",
+        "ENABLERECORDING": "Aktivieren der Aufzeichnung",
+        "STAFF": "Personal",
+        "ID": "Id",
+        "NEW_USER": "Neuer Benutzer",
+        "NEW_AGENT": "Neuer Agent",
+        "NEW_TELEPHONE": "Neues Telefon",
+        "NEW_TEAM": "Neues Team",
+        "ADD_TEAM": "Team hinzufügen",
+        "JOIN_QUEUE": "Melden Sie Warteschlange",
+        "CAPACITY": "Kapazität",
+        "AUTOINTERNAL": "Interne Nummer automatisch generieren",
+        "ADD_AGENT_TO_TEAM": "Hinzufügen von Agenten zu einer Gruppe",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "PERMISSIONS": "Berechtigungen",
+        "ADD_AGENT_TO_QUEUE": "Agent zur Warteschlange hinzufügen",
+        "ALL_MODULES_AVAILABLE": "Alle Module verfügbar",
+        "CALLGROUP": "Gruppenruf",
+        "PICKUPGROUP": "Übernahmegruppe",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Agent in der Warteschlange Kampagnen hinzufügen",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Agent Voice Warteschlangen hinzufügen",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Agent zu chatten Warteschlangen hinzufügen",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Agent Mail Warteschlangen hinzufügen",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Agent sms-Warteschlangen hinzufügen",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Agent zu offenen Kanal Warteschlangen hinzufügen",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Agent fax Warteschlangen hinzufügen",
+        "QUEUEADD_USER_VOICE_INBOUND": "Benutzer stimme Warteschlangen hinzufügen",
+        "QUEUEADD_USER_CHAT_INBOUND": "Benutzer zu chatten Warteschlangen hinzufügen",
+        "QUEUEADD_USER_MAIL_INBOUND": "Benutzer Mail Warteschlangen hinzufügen",
+        "QUEUEADD_USER_SMS_INBOUND": "Benutzer von SMS-Warteschlangen hinzufügen",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Benutzer zum offenen Kanal Warteschlangen hinzufügen",
+        "QUEUEADD_USER_FAX_INBOUND": "Benutzer fax Warteschlangen hinzufügen",
+        "ALL_TEAMS": "Alle Mannschaften",
+        "SELECTED_TEAMS": "Ausgewählte Teams",
+        "SELECTED_AGENTS": "Ausgewählte Agenten",
+        "ALL_QUEUES_VOICE_OUTBOUND": "Alle Queue Kampagnen",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Ausgewählte Warteschlange Kampagnen",
+        "ALL_QUEUES_VOICE_INBOUND": "Alle Warteschlangen",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Ausgewählte Voice Warteschlangen",
+        "ALL_QUEUES_CHAT_INBOUND": "Alle Chat Warteschlangen",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Ausgewählte Chat-warteschlangen",
+        "ALL_QUEUES_MAIL_INBOUND": "Alle E-Mail-Warteschlangen",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Ausgewählte Mail Warteschlangen",
+        "ALL_QUEUES_SMS_INBOUND": "Alle SMS-Warteschlangen",
+        "SELECTED_QUEUES_SMS_INBOUND": "Ausgewählte SMS-Warteschlangen",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alle offenen Kanal Warteschlangen",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Ausgewählten Offenen Kanal Warteschlangen",
+        "ALL_QUEUES_FAX_INBOUND": "Alle Fax Warteschlangen",
+        "SELECTED_QUEUES_FAX_INBOUND": "Ausgewählte Fax Warteschlangen",
+        "VOICEMAIL": "Voicemail",
+        "CHANGE_PASSWORD": "Passwort ändern",
+        "CHANGEPASSWORD_AGENT": "Passwort ändern",
+        "CHANGEPASSWORD_USER": "Passwort ändern",
+        "CHANGEPASSWORD_TELEPHONE": "Passwort ändern",
+        "RINGINUSE": "Ring im Einsatz"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/en.json b/public/app/main/apps/staff/i18n/en.json
new file mode 100644 (file)
index 0000000..9504a57
--- /dev/null
@@ -0,0 +1,185 @@
+{
+    "STAFF": {
+        "RINGINUSE": "Ring In Use",
+        "USERS": "Users",
+        "AGENTS": "Agents",
+        "TOGGLE_SIDENAV": "Toggle sidenav",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "BACK": "Back",
+        "MULTI_SELECT_TOGGLE": "multi select toggle",
+        "SELECT_ALL": "Select all",
+        "SELECT_NONE": "Select None",
+        "SELECTED": "Selected",
+        "DELETE_SELECTED": "Delete selected",
+        "EXPORT_SELECTED": "Export selected",
+        "ALL_USERS": "All users",
+        "ALL_AGENTS": "All agents",
+        "SORT": "sort",
+        "NAME": "Name",
+        "FULLNAME": "Full Name",
+        "A_TO_Z": "(A to Z)",
+        "Z_TO_A": "(Z to A)",
+        "MORE": "More",
+        "DELETE_USER": "Delete User",
+        "EDIT_USER": "Edit User",
+        "DELETE_AGENT": "Delete Agent",
+        "EDIT_AGENT": "Edit Agent",
+        "DELETE": "DELETE",
+        "SAVE": "SAVE",
+        "ADD_USER": "ADD USER",
+        "ADD_AGENT": "ADD AGENT",
+        "NO_RESULTS": "No results..",
+        "CLOSE_DIALOG": "Close dialog",
+        "NAME_REQUIRED": "Name (required)",
+        "USERNAME": "Username",
+        "SHOW_ALL_FIELDS": "Show All Fields",
+        "PHONE_NUMBER": "Phone number",
+        "EMAIL": "Email",
+        "PASSWORD": "Password",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "The Fullname is required",
+            "USERNAME_REQUIRED": "The Username is required",
+            "EMAIL_REQUIRED": "The Email is required",
+            "PASSWORD_REQUIRED": "The password is required",
+            "CONFIRM_NOT_MATCH": "The passwords don't match",
+            "EMAIL_MUST_VALID": "The email must be written in a valid format",
+            "ACCOUNTNAME_REQUIRED": "The Account Name is required",
+            "NAME_REQUIRED": "The Name is required",
+            "HOST_REQUIRED": "The Host is required",
+            "CHATCAPACITY_REQUIRED": "The Chat Capacity is required",
+            "MAILCAPACITY_REQUIRED": "The Mail Capacity is required",
+            "FAXCAPACITY_REQUIRED": "The Fax Capacity is required",
+            "SMSCAPACITY_REQUIRED": "The SMS Capacity is required",
+            "OPENCHANNELCAPACITY_REQUIRED": "The Open Channel Capacity is required",
+            "SIPEXPIRES_REQUIRED": "The SIP expiration is required",
+            "SIPPORT_REQUIRED": "The SIP Port is required",
+            "UNCONDITIONALNUMBER_REQUIRED": "The Unconditional Number is required",
+            "NOREPLYNUMBER_REQUIRED": "The No Reply Number is required",
+            "BUSYNUMBER_REQUIRED": "The Busy Number is required",
+            "USERNAME_MUST_VALID_PATTERN": "The Username must be valid {{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "The Remote Control Port is required"
+        },
+        "ACCOUNT": "Account",
+        "VOICE": "Voice",
+        "CREATED_AT": "Created At",
+        "ROLE": "Role",
+        "PERSONAL_INFO": "Personal Info",
+        "ACCOUNT": "Account",
+        "DESCRIPTION": "Description",
+        "CHANGE_AVATAR": "Change Avatar",
+        "GENERAL": "General",
+        "INTERNAL": "Internal",
+        "TRANSPORT": "Transport",
+        "ALLOWCODECS": "Allowed Codecs",
+        "HELP": {
+            "ALLOWCODECS": "Allowed Codecs in order of preference",
+            "TRANSPORT": "Set the default transports. The order determines the primary default transport.",
+            "HOST": "How to find the client - IP or host name. If you want the phone to register itself, use the keyword dynamic instead of Host IP.",
+            "NAT": "Changes the behaviour of Asterisk for clients behind a firewall.If any of the comma-separated options is 'no', Asterisk will ignore any other settings and set nat=no.",
+            "SIPEXPIRES": "Default: 160",
+            "SIPPORT": "Default: 5060",
+            "TYPE": "Determines the SIP role within asterisk. User: used to authenticate incoming - Peer: for outgoing calls - Friend: covers both characteristics of the above.",
+            "CHATCAPACITY": "Zero means unlimited.",
+            "MAILCAPACITY": "Zero means unlimited.",
+            "FAXCAPACITY": "Zero means unlimited.",
+            "SMSCAPACITY": "Zero means unlimited.",
+            "OPENCHANNELCAPACITY": "Zero means unlimited.",
+            "CALLGROUP": "Defines the agent's callgroup",
+            "PICKUPGROUP": "Defines the groups in which the agent can answer calls"
+        },
+        "NEW_PASSWORD": "New Password",
+        "CONFIRM_PASSWORD": "Confirm Password",
+        "CHANGE_PASSWORD": "Change Password",
+        "CHANGEPASSWORD_AGENT": "Change Password",
+        "CHANGEPASSWORD_USER": "Change Password",
+        "CHANGEPASSWORD_TELEPHONE": "Change Password",
+        "LOGININPAUSE": "Login In Pause",
+        "HOST": "Host",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "Other Channels",
+        "CHATCAPACITY": "Chat Capacity",
+        "MAILCAPACITY": "Mail Capacity",
+        "FAXCAPACITY": "Fax Capacity",
+        "SMSCAPACITY": "Sms Capacity",
+        "OPENCHANNELCAPACITY": "Open Channel Capacity",
+        "MOTIONBAR": "Motion Bar",
+        "SETTINGS": "Settings",
+        "AUTOANSWER": "Auto Answer",
+        "ENABLESETTINGS": "Enable Settings",
+        "CALL_FORWARDING": "Call Forwarding",
+        "UNCONDITIONAL": "Unconditional",
+        "UNCONDITIONALNUMBER": "Unconditional Number",
+        "NOREPLY": "No Reply",
+        "NOREPLYNUMBER": "No Reply Number",
+        "BUSY": "Busy",
+        "BUSYNUMBER": "Busy Number",
+        "REMOTE_CONTROL": "Remote Control",
+        "REMOTECONTROL": "Remote Control",
+        "REMOTECONTROLPORT": "Remote Control Port",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP Expires [sec]",
+        "SIPPORT": "SIP Port",
+        "PENALTY": "Penalty",
+        "ACCOUNTNAME": "Account Name",
+        "ADD_TELEPHONE": "Add Telephone",
+        "EDIT_TELEPHONE": "Edit Telephone",
+        "DELETE_TELEPHONE": "Delete Telephone",
+        "TEAMS": "Teams",
+        "DELETE_TEAM": "Delete Team",
+        "AGENTADD_TEAM": "Add Agents to Team",
+        "EDIT_TEAM": "Edit Team",
+        "TYPE": "Type",
+        "TELEPHONES": "Telephones",
+        "CALLERID": "Caller ID",
+        "ENABLERECORDING": "Enable Recording",
+        "STAFF": "Staff",
+        "ID": "Id",
+        "NEW_USER": "New User",
+        "NEW_AGENT": "New Agent",
+        "NEW_TELEPHONE": "New Telephone",
+        "NEW_TEAM": "New Team",
+        "ADD_TEAM": "Add Team",
+        "JOIN_QUEUE": "Join Queue",
+        "CAPACITY": "Capacity",
+        "AUTOINTERNAL": "Auto generate internal number",
+        "ADD_AGENT_TO_TEAM": "Add Agent to Team",
+        "NO_AVAILABLE_INFO": "No available info",
+        "PERMISSIONS": "Permissions",
+        "ADD_AGENT_TO_QUEUE": "Add Agent to Queue",
+        "ALL_MODULES_AVAILABLE": "All modules available",
+        "CALLGROUP": "Call Group",
+        "PICKUPGROUP": "Pickup Group",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Add Agent to Queue Campaigns",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Add Agent to Voice Queues",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Add Agent to Chat Queues",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Add Agent to Mail Queues",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Add Agent to SMS Queues",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Add Agent to Open Channel Queues",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Add Agent to Fax Queues",
+        "QUEUEADD_USER_VOICE_INBOUND": "Add User to Voice Queues",
+        "QUEUEADD_USER_CHAT_INBOUND": "Add User to Chat Queues",
+        "QUEUEADD_USER_MAIL_INBOUND": "Add User to Mail Queues",
+        "QUEUEADD_USER_SMS_INBOUND": "Add User to SMS Queues",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Add User to Open Channel Queues",
+        "QUEUEADD_USER_FAX_INBOUND": "Add User to Fax Queues",
+        "ALL_TEAMS": "All Teams",
+        "SELECTED_TEAMS": "Selected Teams",
+        "SELECTED_AGENTS": "Selected Agents",
+        "ALL_QUEUES_VOICE_OUTBOUND": "All Queue Campaigns",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Selected Queue Campaigns",
+        "ALL_QUEUES_VOICE_INBOUND": "All Voice Queues",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Selected Voice Queues",
+        "ALL_QUEUES_CHAT_INBOUND": "All Chat Queues",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Selected Chat Queues",
+        "ALL_QUEUES_MAIL_INBOUND": "All Mail Queues",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Selected Mail Queues",
+        "ALL_QUEUES_SMS_INBOUND": "All SMS Queues",
+        "SELECTED_QUEUES_SMS_INBOUND": "Selected SMS Queues",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "All Open Channel Queues",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Selected Open Channel Queues",
+        "ALL_QUEUES_FAX_INBOUND": "All Fax Queues",
+        "SELECTED_QUEUES_FAX_INBOUND": "Selected Fax Queues",
+        "VOICEMAIL": "Voicemail"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/es.json b/public/app/main/apps/staff/i18n/es.json
new file mode 100644 (file)
index 0000000..47e3581
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "Los usuarios",
+        "AGENTS": "Los agentes",
+        "TOGGLE_SIDENAV": "Alternar sidenav",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "BACK": "Volver",
+        "MULTI_SELECT_TOGGLE": "Seleccione alternar múltiples",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "SELECTED": "Seleccionado",
+        "DELETE_SELECTED": "Eliminar seleccionado",
+        "EXPORT_SELECTED": "Exportar selección",
+        "ALL_USERS": "Todos los usuarios",
+        "ALL_AGENTS": "Todos los agentes",
+        "SORT": "Ordenar",
+        "NAME": "Nombre",
+        "FULLNAME": "Nombre completo",
+        "A_TO_Z": "(De la A a la Z)",
+        "Z_TO_A": "(de la Z a la A)",
+        "MORE": "Más",
+        "DELETE_USER": "Eliminar un usuario",
+        "EDIT_USER": "Editar usuario",
+        "DELETE_AGENT": "Eliminar agente",
+        "EDIT_AGENT": "Editar Agent",
+        "DELETE": "Eliminar",
+        "SAVE": "Guardar",
+        "ADD_USER": "Agregar usuario",
+        "ADD_AGENT": "Agregar agente",
+        "NO_RESULTS": "No hay resultados.",
+        "CLOSE_DIALOG": "Cerrar el cuadro de diálogo",
+        "NAME_REQUIRED": "Nombre (requerido)",
+        "USERNAME": "Nombre de usuario",
+        "SHOW_ALL_FIELDS": "Mostrar todos los campos",
+        "PHONE_NUMBER": "Número de teléfono",
+        "EMAIL": "Correo electrónico",
+        "PASSWORD": "Contraseña",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "El Fullname es obligatorio",
+            "USERNAME_REQUIRED": "El nombre de usuario es obligatorio",
+            "EMAIL_REQUIRED": "El correo electrónico es obligatorio",
+            "PASSWORD_REQUIRED": "Es necesaria la contraseña",
+            "CONFIRM_NOT_MATCH": "Las contraseñas no coinciden.",
+            "EMAIL_MUST_VALID": "El correo electrónico debe estar escrito en un formato válido",
+            "ACCOUNTNAME_REQUIRED": "Es necesario el nombre de la cuenta",
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "HOST_REQUIRED": "El Host es obligatorio",
+            "CHATCAPACITY_REQUIRED": "Se requiere la capacidad de Chat",
+            "MAILCAPACITY_REQUIRED": "Se requiere la capacidad de correo",
+            "FAXCAPACITY_REQUIRED": "Se requiere la capacidad de Fax",
+            "SMSCAPACITY_REQUIRED": "Se requiere la capacidad de SMS",
+            "OPENCHANNELCAPACITY_REQUIRED": "El canal abierto se requiere capacidad",
+            "SIPEXPIRES_REQUIRED": "La SIP se requiere de caducidad",
+            "SIPPORT_REQUIRED": "El puerto SIP es obligatorio",
+            "UNCONDITIONALNUMBER_REQUIRED": "El número es necesario incondicional",
+            "NOREPLYNUMBER_REQUIRED": "La respuesta no es necesario el número de",
+            "BUSYNUMBER_REQUIRED": "El concurrido número es necesario",
+            "USERNAME_MUST_VALID_PATTERN": "El nombre de usuario debe ser válida {{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "El control remoto puerto es necesario"
+        },
+        "ACCOUNT": "Cuenta",
+        "VOICE": "Voz",
+        "CREATED_AT": "Creado en",
+        "ROLE": "Papel",
+        "PERSONAL_INFO": "Información personal",
+        "DESCRIPTION": "Descripción",
+        "CHANGE_AVATAR": "Cambiar Avatar",
+        "GENERAL": "General",
+        "INTERNAL": "Interno",
+        "TRANSPORT": "Transporte",
+        "ALLOWCODECS": "Códecs permitidos",
+        "HELP": {
+            "ALLOWCODECS": "Códecs permitidos en orden de preferencia.",
+            "TRANSPORT": "Establecer el valor predeterminado de los transportes. El orden determina el principal transporte predeterminado.",
+            "HOST": "Cómo encontrar el cliente - IP o nombre de host. Si desea que el teléfono para registrarse, utilice la palabra clave dynamic en lugar del host IP.",
+            "NAT": "Cambia el comportamiento de Asterisk para clientes detrás de un firewall.Si ninguna de las opciones separadas por comas es 'no', Asterisco ignorará cualquier otra configuración y definir nat=no.",
+            "SIPEXPIRES": "Valor predeterminado: 160",
+            "SIPPORT": "Valor predeterminado: 5060",
+            "TYPE": "Determina la función SIP en Asterisk. Usuario: usado para autenticar entrante - Peer: para llamadas salientes - Amigo: cubre tanto las características de los anteriores.",
+            "CHATCAPACITY": "Cero significa ilimitado.",
+            "MAILCAPACITY": "Cero significa ilimitado.",
+            "FAXCAPACITY": "Cero significa ilimitado.",
+            "SMSCAPACITY": "Cero significa ilimitado.",
+            "OPENCHANNELCAPACITY": "Cero significa ilimitado.",
+            "CALLGROUP": "Define el agente callgroup",
+            "PICKUPGROUP": "Define los grupos en los que el agente puede responder llamadas"
+        },
+        "NEW_PASSWORD": "Nueva contraseña",
+        "CONFIRM_PASSWORD": "Confirmar contraseña",
+        "LOGININPAUSE": "Entra en pausa",
+        "HOST": "Host",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "Otros canales",
+        "CHATCAPACITY": "La capacidad de chat",
+        "MAILCAPACITY": "Capacidad de correo",
+        "FAXCAPACITY": "Capacidad de fax",
+        "SMSCAPACITY": "Capacidad de SMS",
+        "OPENCHANNELCAPACITY": "Capacidad de canal abierto",
+        "MOTIONBAR": "Barra de movimiento",
+        "SETTINGS": "Configuración",
+        "AUTOANSWER": "Respuesta automática",
+        "ENABLESETTINGS": "Habilitar los ajustes",
+        "CALL_FORWARDING": "Desvío de llamadas",
+        "UNCONDITIONAL": "Incondicional",
+        "UNCONDITIONALNUMBER": "Número incondicional",
+        "NOREPLY": "Sin respuesta",
+        "NOREPLYNUMBER": "Ningún número de respuesta",
+        "BUSY": "Ocupada",
+        "BUSYNUMBER": "Número ocupado",
+        "REMOTE_CONTROL": "Control remoto",
+        "REMOTECONTROL": "Control remoto",
+        "REMOTECONTROLPORT": "Puerto de control remoto",
+        "SIP": "SIP",
+        "SIPEXPIRES": "Caduca SIP [s]",
+        "SIPPORT": "Puerto SIP",
+        "PENALTY": "Pena",
+        "ACCOUNTNAME": "Nombre de cuenta",
+        "ADD_TELEPHONE": "Añadir teléfono",
+        "EDIT_TELEPHONE": "Editar teléfono",
+        "DELETE_TELEPHONE": "Eliminar el teléfono",
+        "TEAMS": "Equipos",
+        "DELETE_TEAM": "Eliminar equipo",
+        "AGENTADD_TEAM": "Añadir agentes a Team",
+        "EDIT_TEAM": "Edit Team",
+        "TYPE": "Tipo",
+        "TELEPHONES": "Teléfonos",
+        "CALLERID": "Caller ID (identificador de llamadas)",
+        "ENABLERECORDING": "Habilitar la grabación",
+        "STAFF": "Personal",
+        "ID": "Id",
+        "NEW_USER": "Nuevo Usuario",
+        "NEW_AGENT": "Nuevo agente",
+        "NEW_TELEPHONE": "Nuevo teléfono",
+        "NEW_TEAM": "Nuevo equipo",
+        "ADD_TEAM": "Agregar equipo",
+        "JOIN_QUEUE": "Unirse a la cola",
+        "CAPACITY": "Capacidad",
+        "AUTOINTERNAL": "Generación automática de número interno",
+        "ADD_AGENT_TO_TEAM": "Agregar Agente al equipo",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "PERMISSIONS": "Permisos",
+        "ADD_AGENT_TO_QUEUE": "Agregar a la cola del agente",
+        "ALL_MODULES_AVAILABLE": "Todos los módulos disponibles",
+        "CALLGROUP": "Grupos de llamadas",
+        "PICKUPGROUP": "Grupo de captura de llamadas",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Agregar Agente para campañas de cola",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Agregar Agente de colas de voz",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Agregar Agente de colas de chat",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Agregar Agente de colas de correo",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Agregar Agente de colas de SMS",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Agregar Agente de colas de Canal Abierto",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Agregar Agente de colas de Fax",
+        "QUEUEADD_USER_VOICE_INBOUND": "Agregar usuario a colas de voz",
+        "QUEUEADD_USER_CHAT_INBOUND": "Agregar usuario a colas de chat",
+        "QUEUEADD_USER_MAIL_INBOUND": "Agregar usuario a colas de correo",
+        "QUEUEADD_USER_SMS_INBOUND": "Agregar usuario a colas de SMS",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Agregar usuario a colas de Canal Abierto",
+        "QUEUEADD_USER_FAX_INBOUND": "Agregar usuario a colas de Fax",
+        "ALL_TEAMS": "Todos los equipos",
+        "SELECTED_TEAMS": "Los equipos seleccionados",
+        "SELECTED_AGENTS": "Los agentes seleccionados",
+        "ALL_QUEUES_VOICE_OUTBOUND": "Todas las campañas de cola",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Campañas de la cola seleccionada",
+        "ALL_QUEUES_VOICE_INBOUND": "Todas las colas de voz",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Colas de voz seleccionado",
+        "ALL_QUEUES_CHAT_INBOUND": "Todas las colas de chat",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Colas de chat seleccionado",
+        "ALL_QUEUES_MAIL_INBOUND": "Todas las colas de correo",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Colas de correo seleccionado",
+        "ALL_QUEUES_SMS_INBOUND": "Todas las colas de SMS",
+        "SELECTED_QUEUES_SMS_INBOUND": "Colas de SMS seleccionado",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "Todas las colas de Canal Abierto",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Colas de canal abierto seleccionado",
+        "ALL_QUEUES_FAX_INBOUND": "Todas las colas de Fax",
+        "SELECTED_QUEUES_FAX_INBOUND": "Colas de Fax seleccionado",
+        "VOICEMAIL": "Voicemail",
+        "CHANGE_PASSWORD": "Cambiar contraseña",
+        "CHANGEPASSWORD_AGENT": "Cambiar contraseña",
+        "CHANGEPASSWORD_USER": "Cambiar contraseña",
+        "CHANGEPASSWORD_TELEPHONE": "Cambiar contraseña",
+        "RINGINUSE": "Anillo en uso"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/fa.json b/public/app/main/apps/staff/i18n/fa.json
new file mode 100644 (file)
index 0000000..6d3ad6b
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "کاربران",
+        "AGENTS": "عوامل",
+        "TOGGLE_SIDENAV": "می توانید Sidenav",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "BACK": "پشت",
+        "MULTI_SELECT_TOGGLE": "می توانید انتخاب کنید چند گذرى",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "SELECTED": "انتخاب می شود",
+        "DELETE_SELECTED": "انتخاب شده را حذف می کند",
+        "EXPORT_SELECTED": "صادرات انتخاب شد",
+        "ALL_USERS": "همه کاربران",
+        "ALL_AGENTS": "همه عوامل",
+        "SORT": "این نوع",
+        "NAME": "نام",
+        "FULLNAME": "نام کامل",
+        "A_TO_Z": "(A تا Z)",
+        "Z_TO_A": "(به) Z",
+        "MORE": "بیشتر",
+        "DELETE_USER": "این کاربر را حذف کنید",
+        "EDIT_USER": "ویرایش اطلاعات کاربر",
+        "DELETE_AGENT": "عامل را حذف کنید",
+        "EDIT_AGENT": "عامل ویرایش",
+        "DELETE": "حذف",
+        "SAVE": "ذخیره",
+        "ADD_USER": "کاربر اضافه کنید",
+        "ADD_AGENT": "عامل اضافه کنید",
+        "NO_RESULTS": "نتیجه ندارد.",
+        "CLOSE_DIALOG": "کادر را ببندید",
+        "NAME_REQUIRED": "نام (مورد نیاز)",
+        "USERNAME": "نام کاربری",
+        "SHOW_ALL_FIELDS": "نمایش همه زمينه ها",
+        "PHONE_NUMBER": "شماره تلفن همراه",
+        "EMAIL": "آدرس ایمیل",
+        "PASSWORD": "اسم رمز",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "به Fullname لازم است.",
+            "USERNAME_REQUIRED": "نام کاربری مورد نیاز است.",
+            "EMAIL_REQUIRED": "آدرس ایمیل لازم است.",
+            "PASSWORD_REQUIRED": "رمز عبور لازم است.",
+            "CONFIRM_NOT_MATCH": "اسم رمزهای اين بازی نمیکنم",
+            "EMAIL_MUST_VALID": "آدرس ایمیل باید با فرمت معتبر نوشته شده است",
+            "ACCOUNTNAME_REQUIRED": "نام اشتراک مورد نیاز است.",
+            "NAME_REQUIRED": "نام لازم است.",
+            "HOST_REQUIRED": "ميزبان لازم است.",
+            "CHATCAPACITY_REQUIRED": "گپ از ظرفيت لازم است.",
+            "MAILCAPACITY_REQUIRED": "ظرفیت لازم را پیدا کرده است.",
+            "FAXCAPACITY_REQUIRED": "از فكس ظرفیت مورد نیاز است.",
+            "SMSCAPACITY_REQUIRED": "از SMS ظرفیت مورد نیاز است.",
+            "OPENCHANNELCAPACITY_REQUIRED": "ظرفیت کانال باز لازم است.",
+            "SIPEXPIRES_REQUIRED": "اين نوشيدني انقضا لازم است.",
+            "SIPPORT_REQUIRED": "باوجود اين پورت مورد نیاز است.",
+            "UNCONDITIONALNUMBER_REQUIRED": "تعداد اين بلا شرط لازم است.",
+            "NOREPLYNUMBER_REQUIRED": "پاسخ به تعداد مورد نیاز است.",
+            "BUSYNUMBER_REQUIRED": "مشغول به تعداد مورد نیاز است.",
+            "USERNAME_MUST_VALID_PATTERN": "باید نام کاربری معتبر {{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "به درگاه کنترل از راه دور مورد نیاز است."
+        },
+        "ACCOUNT": "اشتراک",
+        "VOICE": "صدا",
+        "CREATED_AT": "ایجاد شده در",
+        "ROLE": "نقش",
+        "PERSONAL_INFO": "اطلاعات شخصی",
+        "DESCRIPTION": "شرح",
+        "CHANGE_AVATAR": "تجلي را تغییر دهید",
+        "GENERAL": "سردار",
+        "INTERNAL": "داخلی",
+        "TRANSPORT": "حمل و نقل",
+        "ALLOWCODECS": "Codecs مجاز",
+        "HELP": {
+            "ALLOWCODECS": "Codecs اجازه داد تا در نظم ترجیح میدهید",
+            "TRANSPORT": "تنظیم پیش فرض را در خلسه است. نظام حمل و نقل پیش فرض اولیه را تعیین می کند.",
+            "HOST": "چطور موکل - پيدا کردن IP یا نام میزبان است. اگر می خواهید شماره تلفن خود را ثبت کرده و برای استفاده از واژه كليدى به جای آدرس IP میزبان پویا.",
+            "NAT": "تغییرات در رفتار Asterisk برای مراجعان در پشت یک دیوار آتش است.اگر یکی از گزینه ها از جمله جدا شده است خیر، Asterisk تنظیمات دیگری را ناديده گرفته خواهد شد و 3-1=تنظیم خیر.",
+            "SIPEXPIRES": "فرض: 160",
+            "SIPPORT": "فرض: 5060",
+            "TYPE": "نقش تعيين كننده در داخل نوشيدني asterisk است. کاربر تایید اعتبار ورودی استفاده می شود: - برای تماس های خروجی کمبودى: دوست: - هر دو خصوصیات پوشش بالاتر است.",
+            "CHATCAPACITY": "صفر به معناى نامحدود است.",
+            "MAILCAPACITY": "صفر به معناى نامحدود است.",
+            "FAXCAPACITY": "صفر به معناى نامحدود است.",
+            "SMSCAPACITY": "صفر به معناى نامحدود است.",
+            "OPENCHANNELCAPACITY": "صفر به معناى نامحدود است.",
+            "CALLGROUP": "در تعريف عامل Callgroup",
+            "PICKUPGROUP": "از گروه هایی که می توانند عامل جواب تلفن"
+        },
+        "NEW_PASSWORD": "اسم رمز جدید",
+        "CONFIRM_PASSWORD": "تأیید رمز ورود",
+        "LOGININPAUSE": "وقفه در ورود به سیستم",
+        "HOST": "کشور میزبان",
+        "NAT": "ویتنام میزبان",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "کانال های دیگر",
+        "CHATCAPACITY": "قابليت چت روم",
+        "MAILCAPACITY": "ظرفيت پست",
+        "FAXCAPACITY": "ظرفیت فكس",
+        "SMSCAPACITY": "ظرفیت Sms",
+        "OPENCHANNELCAPACITY": "ظرفیت کانال را باز کنید",
+        "MOTIONBAR": "نوار حركت",
+        "SETTINGS": "تنظیمات",
+        "AUTOANSWER": "پاسخ خودکار",
+        "ENABLESETTINGS": "این تنظیمات را فعال کنید",
+        "CALL_FORWARDING": "باتدبير تلفن",
+        "UNCONDITIONAL": "باستثناي",
+        "UNCONDITIONALNUMBER": "شماره بلاشرط",
+        "NOREPLY": "پاسخ",
+        "NOREPLYNUMBER": "پاسخ شماره",
+        "BUSY": "سرگرم",
+        "BUSYNUMBER": "سرگرم عدد",
+        "REMOTE_CONTROL": "کنترل از راه دور",
+        "REMOTECONTROL": "کنترل از راه دور",
+        "REMOTECONTROLPORT": "درگاه کنترل از راه دور",
+        "SIP": "نوشيدني",
+        "SIPEXPIRES": "ثانیه منقضی شود [نوشيدني]",
+        "SIPPORT": "درگاه نوشيدني",
+        "PENALTY": "مجازات اعدام",
+        "ACCOUNTNAME": "نام اشتراک",
+        "ADD_TELEPHONE": "افزودن تلفن",
+        "EDIT_TELEPHONE": "ویرایش تلفن",
+        "DELETE_TELEPHONE": "حذف تلفن",
+        "TEAMS": "تیم ها",
+        "DELETE_TEAM": "تيم را حذف کنید",
+        "AGENTADD_TEAM": "ماموران را به تيم اضافه کنید",
+        "EDIT_TEAM": "تيم ویرایش",
+        "TYPE": "نوع دستگاه",
+        "TELEPHONES": "تلفن ها",
+        "CALLERID": "شناسه تماس گیرنده",
+        "ENABLERECORDING": "فعال کردن ضبط",
+        "STAFF": "كاركنان",
+        "ID": "شناسه",
+        "NEW_USER": "کاربر جدید",
+        "NEW_AGENT": "عامل جدید",
+        "NEW_TELEPHONE": "تلفن جدید",
+        "NEW_TEAM": "تيم جديد",
+        "ADD_TEAM": "تيم اضافه کنید",
+        "JOIN_QUEUE": "پيوستن به صف",
+        "CAPACITY": "ظرفیت",
+        "AUTOINTERNAL": "ایجاد یک شماره داخلی خودکار",
+        "ADD_AGENT_TO_TEAM": "عامل را به تيم اضافه کنید",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "PERMISSIONS": "مجوزهای",
+        "ADD_AGENT_TO_QUEUE": "عامل به صف اضافه کنید",
+        "ALL_MODULES_AVAILABLE": "تمام ماژول ها موجود است",
+        "CALLGROUP": "گروه تماس",
+        "PICKUPGROUP": "گروه جمع آوری",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "عامل به صف مبارزات خود را اضافه کنید",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "عامل صفهای طولانی به صدا اضافه کنید",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "افزودن عنصر به صفهای طولانی چت روم",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "عامل صفهای طولانی به پست اضافه کنید",
+        "QUEUEADD_AGENT_SMS_INBOUND": "افزودن به صفهای طولانی عامل SMS",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "عامل اضافه کنید تا کانال باز صفها",
+        "QUEUEADD_AGENT_FAX_INBOUND": "عامل صفهای طولانی به فكس را اضافه کنید",
+        "QUEUEADD_USER_VOICE_INBOUND": "افزودن صدا به صفهای طولانی کاربر",
+        "QUEUEADD_USER_CHAT_INBOUND": "افزودن به صفهای طولانی چت کاربر",
+        "QUEUEADD_USER_MAIL_INBOUND": "افزودن به صفهای طولانی پست کاربر",
+        "QUEUEADD_USER_SMS_INBOUND": "افزودن به صفهای طولانی SMS کاربر",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "افزودن کانال باز صفها کاربر",
+        "QUEUEADD_USER_FAX_INBOUND": "افزودن به صفهای طولانی فكس کاربر",
+        "ALL_TEAMS": "همه تیم ها",
+        "SELECTED_TEAMS": "تيم هاي برگزيده",
+        "SELECTED_AGENTS": "عوامل انتخاب شده",
+        "ALL_QUEUES_VOICE_OUTBOUND": "همه صف مبارزات",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "توی صف مبارزات انتخابی",
+        "ALL_QUEUES_VOICE_INBOUND": "صدای همه صفها",
+        "SELECTED_QUEUES_VOICE_INBOUND": "صفهای طولانی صدای انتخاب شده",
+        "ALL_QUEUES_CHAT_INBOUND": "همه صفها چت روم",
+        "SELECTED_QUEUES_CHAT_INBOUND": "صفهای طولانی چت روم انتخاب می شود",
+        "ALL_QUEUES_MAIL_INBOUND": "همه صفها پستی",
+        "SELECTED_QUEUES_MAIL_INBOUND": "صفهای طولانی پیدا کرده انتخاب می شود",
+        "ALL_QUEUES_SMS_INBOUND": "همه صفها SMS",
+        "SELECTED_QUEUES_SMS_INBOUND": "صفهای طولانی انتخاب SMS",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "همه صفها کانال باز",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "صفهای طولانی انتخاب کانال را باز کنید",
+        "ALL_QUEUES_FAX_INBOUND": "همه صفها فكس",
+        "SELECTED_QUEUES_FAX_INBOUND": "صفهای طولانی فكس انتخاب می شود",
+        "VOICEMAIL": "پست صوتی",
+        "CHANGE_PASSWORD": "تغییر اسم رمز",
+        "CHANGEPASSWORD_AGENT": "تغییر اسم رمز",
+        "CHANGEPASSWORD_USER": "تغییر اسم رمز",
+        "CHANGEPASSWORD_TELEPHONE": "تغییر اسم رمز",
+        "RINGINUSE": "در استفاده از حلقه"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/fi.json b/public/app/main/apps/staff/i18n/fi.json
new file mode 100644 (file)
index 0000000..cf3be66
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "Käyttäjät",
+        "AGENTS": "Aineet",
+        "TOGGLE_SIDENAV": "Vaihtaa sidenav",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "BACK": "Takaisin",
+        "MULTI_SELECT_TOGGLE": "Multi valitse",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "SELECTED": "Valittu",
+        "DELETE_SELECTED": "Poista valitut",
+        "EXPORT_SELECTED": "Vie valitut",
+        "ALL_USERS": "Kaikki selaimilla yhteyden muodostaneet käyttäjät",
+        "ALL_AGENTS": "Kaikki toimijat",
+        "SORT": "Lajittelujärjestys",
+        "NAME": "Nimi",
+        "FULLNAME": "Täydellinen nimi",
+        "A_TO_Z": "(A-Z)",
+        "Z_TO_A": "(Z - A)",
+        "MORE": "Lisää",
+        "DELETE_USER": "Poista käyttäjä",
+        "EDIT_USER": "Muokkaa käyttäjää",
+        "DELETE_AGENT": "Poista Agent",
+        "EDIT_AGENT": "Muokkaa Agent",
+        "DELETE": "Poista",
+        "SAVE": "Tallenna",
+        "ADD_USER": "Lisää käyttäjä",
+        "ADD_AGENT": "Lisää AGENT",
+        "NO_RESULTS": "Ei tuloksia.",
+        "CLOSE_DIALOG": "Sulje ikkuna",
+        "NAME_REQUIRED": "Nimi (vaaditaan)",
+        "USERNAME": "Käyttäjätunnus",
+        "SHOW_ALL_FIELDS": "Näytä kaikki kentät",
+        "PHONE_NUMBER": "Puhelinnumero",
+        "EMAIL": "Sähköposti",
+        "PASSWORD": "Salasana",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "Kun Fullname ei tarvita",
+            "USERNAME_REQUIRED": "Käyttäjätunnus on pakollinen",
+            "EMAIL_REQUIRED": "Sähköpostiosoite on pakollinen",
+            "PASSWORD_REQUIRED": "Salasana on pakollinen",
+            "CONFIRM_NOT_MATCH": "Jos salasana ei täsmää",
+            "EMAIL_MUST_VALID": "Sähköposti on kirjoitettava kelvollisessa muodossa",
+            "ACCOUNTNAME_REQUIRED": "Tilin nimi on annettava",
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "HOST_REQUIRED": "Isäntä ei tarvita",
+            "CHATCAPACITY_REQUIRED": "Chat-suorituskykyä vaaditaan",
+            "MAILCAPACITY_REQUIRED": "Postin suorituskykyä vaaditaan",
+            "FAXCAPACITY_REQUIRED": "Faksi suorituskykyä vaaditaan",
+            "SMSCAPACITY_REQUIRED": "SMS suorituskykyä vaaditaan",
+            "OPENCHANNELCAPACITY_REQUIRED": "Avoimesta kanavasta suorituskykyä vaaditaan",
+            "SIPEXPIRES_REQUIRED": "Palvelinliitäntäkotelon vanheneminen ei tarvita",
+            "SIPPORT_REQUIRED": "Palvelinliitäntäkotelon tarvitaan",
+            "UNCONDITIONALNUMBER_REQUIRED": "Varaukseton numero on pakollinen",
+            "NOREPLYNUMBER_REQUIRED": "No vastaus on pakollinen",
+            "BUSYNUMBER_REQUIRED": "Kiireisille numero on pakollinen",
+            "USERNAME_MUST_VALID_PATTERN": "Käyttäjätunnuksen on oltava voimassa {{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "Kaukosäädin tarvitaan"
+        },
+        "ACCOUNT": "Tili",
+        "VOICE": "Ääni",
+        "CREATED_AT": "Luodaan",
+        "ROLE": "Rooli",
+        "PERSONAL_INFO": "Henkilökohtaiset tiedot",
+        "DESCRIPTION": "Kuvaus",
+        "CHANGE_AVATAR": "Vaihda Avatar",
+        "GENERAL": "Yleistä",
+        "INTERNAL": "Sisäinen",
+        "TRANSPORT": "Liikenne",
+        "ALLOWCODECS": "Sallittu koodekit",
+        "HELP": {
+            "ALLOWCODECS": "Sallittu koodekit suosituimmuusjärjestyksessä",
+            "TRANSPORT": "Aseta oletusarvoinen kuljetukset. Järjestys määrittää ensisijaisen oletus kuljetuksen ajaksi.",
+            "HOST": "Miten asiakas - IP-osoite tai isäntänimi. Jos haluat, että puhelin rekisteröivät itsensä, käytä avainsanaa dynaaminen sen sijaan ovat IP-osoite.",
+            "NAT": "Muuttaa käyttäytymistä tähti asiakkaille palomuurin takana.Jos jokin pilkulla erotettuja valinnat on \"ei\", tähti ohittaa kaikki muut asetukset ja määritä nat=no.",
+            "SIPEXPIRES": "Oletus: 160",
+            "SIPPORT": "Oletus: 5060",
+            "TYPE": "Määrittää SIP-asema tähdellä. Käyttäjä: varmentamisessa käytettävät saapuneet - Peer: lähtevät puhelut - ystävä: kattaa molemmat ominaisuudet.",
+            "CHATCAPACITY": "Nolla tarkoittaa rajaton.",
+            "MAILCAPACITY": "Nolla tarkoittaa rajaton.",
+            "FAXCAPACITY": "Nolla tarkoittaa rajaton.",
+            "SMSCAPACITY": "Nolla tarkoittaa rajaton.",
+            "OPENCHANNELCAPACITY": "Nolla tarkoittaa rajaton.",
+            "CALLGROUP": "Määrittää edustajan callgroup",
+            "PICKUPGROUP": "Määrittää ryhmän edustaja voi vastata puheluihin"
+        },
+        "NEW_PASSWORD": "Uusi salasana",
+        "CONFIRM_PASSWORD": "Vahvista salasana",
+        "LOGININPAUSE": "Kirjautuminen on keskeytetty",
+        "HOST": "Host",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "Muita kanavia",
+        "CHATCAPACITY": "Chat-kapasiteetti",
+        "MAILCAPACITY": "Postin kapasiteetti",
+        "FAXCAPACITY": "Faksi kapasiteetti",
+        "SMSCAPACITY": "Sms-kapasiteetti",
+        "OPENCHANNELCAPACITY": "Avoimen kanavan kapasiteetti",
+        "MOTIONBAR": "Motion Bar",
+        "SETTINGS": "Asetusten määrittäminen",
+        "AUTOANSWER": "Automaattinen vastaus",
+        "ENABLESETTINGS": "Ota asetukset",
+        "CALL_FORWARDING": "Soitonsiirto",
+        "UNCONDITIONAL": "Ehdoton",
+        "UNCONDITIONALNUMBER": "Ehdoton numero",
+        "NOREPLY": "Vastausta",
+        "NOREPLYNUMBER": "Vastausta numero",
+        "BUSY": "Varattu",
+        "BUSYNUMBER": "Varattu määrä",
+        "REMOTE_CONTROL": "Kaukosäädin",
+        "REMOTECONTROL": "Kaukosäädin",
+        "REMOTECONTROLPORT": "Kaukosäätimen portti",
+        "SIP": "SIP",
+        "SIPEXPIRES": "Siemaile vanhenee [s]",
+        "SIPPORT": "SIP-portti",
+        "PENALTY": "Kuolemanrangaistuksen poistaminen",
+        "ACCOUNTNAME": "Tilin nimi",
+        "ADD_TELEPHONE": "Puhelimen lisääminen",
+        "EDIT_TELEPHONE": "Puhelimen muokkaaminen",
+        "DELETE_TELEPHONE": "Poista puhelin",
+        "TEAMS": "Tiimit",
+        "DELETE_TEAM": "Poista tiimi",
+        "AGENTADD_TEAM": "Lisää agentteja tiimi",
+        "EDIT_TEAM": "Muokkaa-tiimi",
+        "TYPE": "Tyyppi",
+        "TELEPHONES": "Puhelimet",
+        "CALLERID": "Soittajan tunnus",
+        "ENABLERECORDING": "Ota tallennus",
+        "STAFF": "Henkilökunta",
+        "ID": "Tunnus",
+        "NEW_USER": "Uudelle käyttäjälle.",
+        "NEW_AGENT": "Uusi agentti",
+        "NEW_TELEPHONE": "Uusi puhelin",
+        "NEW_TEAM": "Uusi tiimi",
+        "ADD_TEAM": "Lisää tiimi",
+        "JOIN_QUEUE": "Liity jonoon",
+        "CAPACITY": "Kapasiteetti",
+        "AUTOINTERNAL": "Autom. luo sisäinen numero",
+        "ADD_AGENT_TO_TEAM": "Lisää agentin tiimi",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "PERMISSIONS": "Käyttöoikeudet",
+        "ADD_AGENT_TO_QUEUE": "Lisää Edustajan jonoon",
+        "ALL_MODULES_AVAILABLE": "Kaikki moduulit saatavilla",
+        "CALLGROUP": "Call -ryhmän",
+        "PICKUPGROUP": "Poimintaryhmääsi kuuluvassa alanumerossa.",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Lisää Edustajan jonoon kampanjoita",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Lisää agentin Voice jonot",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Lisää agentin Chat jonot",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Lisää agentin Mail jonot",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Lisää agentin SMS jonot",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Lisää agentin avoimen kanavan jonot",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Lisää agentin faksi jonot",
+        "QUEUEADD_USER_VOICE_INBOUND": "Lisää käyttäjä Voice jonot",
+        "QUEUEADD_USER_CHAT_INBOUND": "Lisää käyttäjä Chat jonot",
+        "QUEUEADD_USER_MAIL_INBOUND": "Lisää käyttäjä Mail jonot",
+        "QUEUEADD_USER_SMS_INBOUND": "Lisää käyttäjä SMS jonot",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Lisää käyttäjä avoimen kanavan jonot",
+        "QUEUEADD_USER_FAX_INBOUND": "Lisää käyttäjä faksi jonot",
+        "ALL_TEAMS": "Kaikki joukkueet",
+        "SELECTED_TEAMS": "Valittu työryhmille",
+        "SELECTED_AGENTS": "Valitut edustajat",
+        "ALL_QUEUES_VOICE_OUTBOUND": "Kaikki jonoon kampanjoita",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Valitun jonon kampanjoita",
+        "ALL_QUEUES_VOICE_INBOUND": "Kaikki Voice jonot",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Valittu ääni jonot",
+        "ALL_QUEUES_CHAT_INBOUND": "Kaikki Chat jonot",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Valitun Chat jonot",
+        "ALL_QUEUES_MAIL_INBOUND": "Kaikki posti jonot",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Valittuna olevan jonot",
+        "ALL_QUEUES_SMS_INBOUND": "Kaikkiin tekstiviestilaatikoihin jonot",
+        "SELECTED_QUEUES_SMS_INBOUND": "Valittu SMS jonot",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "Kaikki avoimen kanavan jonot",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Valittu avoimen kanavan jonot",
+        "ALL_QUEUES_FAX_INBOUND": "Kaikki faksi jonot",
+        "SELECTED_QUEUES_FAX_INBOUND": "Valittu Fax jonot",
+        "VOICEMAIL": "Vastaaja",
+        "CHANGE_PASSWORD": "Salasanan vaihtaminen",
+        "CHANGEPASSWORD_AGENT": "Salasanan vaihtaminen",
+        "CHANGEPASSWORD_USER": "Salasanan vaihtaminen",
+        "CHANGEPASSWORD_TELEPHONE": "Salasanan vaihtaminen",
+        "RINGINUSE": "Rengas on käytössä"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/fr.json b/public/app/main/apps/staff/i18n/fr.json
new file mode 100644 (file)
index 0000000..8b8b434
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "Les utilisateurs",
+        "AGENTS": "Mandataires",
+        "TOGGLE_SIDENAV": "Toggle sidenav",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "BACK": "Retour",
+        "MULTI_SELECT_TOGGLE": "Sélectionnez Basculer multi",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "SELECTED": "Sélectionné",
+        "DELETE_SELECTED": "Supprimer la sélection",
+        "EXPORT_SELECTED": "Sélectionné à l'exportation",
+        "ALL_USERS": "Tous les utilisateurs",
+        "ALL_AGENTS": "Tous les agents",
+        "SORT": "Trier",
+        "NAME": "Nom",
+        "FULLNAME": "Nom complet",
+        "A_TO_Z": "(A à Z)",
+        "Z_TO_A": "(Z à A)",
+        "MORE": "Plus",
+        "DELETE_USER": "Supprimer l'utilisateur",
+        "EDIT_USER": "Modifier l'utilisateur",
+        "DELETE_AGENT": "Supprimer l'Agent",
+        "EDIT_AGENT": "Agent Modifier",
+        "DELETE": "Supprimer",
+        "SAVE": "Sauvegarder",
+        "ADD_USER": "Ajouter un utilisateur",
+        "ADD_AGENT": "Ajouter l'AGENT",
+        "NO_RESULTS": "Aucun résultat..",
+        "CLOSE_DIALOG": "Dialogue de proximité",
+        "NAME_REQUIRED": "Nom (requis)",
+        "USERNAME": "Nom d'utilisateur",
+        "SHOW_ALL_FIELDS": "Afficher tous les champs",
+        "PHONE_NUMBER": "Numéro de téléphone",
+        "EMAIL": "Email",
+        "PASSWORD": "Mot de passe oublié",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "Le nom complet est requis",
+            "USERNAME_REQUIRED": "L'utilisateur est nécessaire",
+            "EMAIL_REQUIRED": "L'email est requis",
+            "PASSWORD_REQUIRED": "Le mot de passe est requis",
+            "CONFIRM_NOT_MATCH": "Les mots de passe ne correspondent pas",
+            "EMAIL_MUST_VALID": "L'e-mail doit être écrit dans un format valide",
+            "ACCOUNTNAME_REQUIRED": "Le nom de compte est requis",
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "HOST_REQUIRED": "L'hôte est nécessaire",
+            "CHATCAPACITY_REQUIRED": "La nécessité d'une capacité de discussion",
+            "MAILCAPACITY_REQUIRED": "La messagerie électronique est requise",
+            "FAXCAPACITY_REQUIRED": "La capacité de télécopie n'est nécessaire",
+            "SMSCAPACITY_REQUIRED": "La capacité SMS est nécessaire",
+            "OPENCHANNELCAPACITY_REQUIRED": "La capacité du canal ouvert est requis",
+            "SIPEXPIRES_REQUIRED": "L'expiration SIP est requis",
+            "SIPPORT_REQUIRED": "Le port SIP est requis",
+            "UNCONDITIONALNUMBER_REQUIRED": "Le numéro de renvoi inconditionnel est requis",
+            "NOREPLYNUMBER_REQUIRED": "La réponse n'est requis",
+            "BUSYNUMBER_REQUIRED": "Le numéro occupé est requise",
+            "USERNAME_MUST_VALID_PATTERN": "L'utilisateur doit être valide {{exrég}}",
+            "REMOTECONTROLPORT_REQUIRED": "Le Port de commande à distance est requis"
+        },
+        "ACCOUNT": "Compte",
+        "VOICE": "Voix",
+        "CREATED_AT": "Créé à",
+        "ROLE": "Rôle",
+        "PERSONAL_INFO": "Infos personnelles",
+        "DESCRIPTION": "Description",
+        "CHANGE_AVATAR": "Modifier votre avatar",
+        "GENERAL": "Général",
+        "INTERNAL": "Régie interne",
+        "TRANSPORT": "Transports",
+        "ALLOWCODECS": "Codecs permis",
+        "HELP": {
+            "ALLOWCODECS": "Admis dans l'ordre de préférence des codecs",
+            "TRANSPORT": "Définir la valeur par défaut de transports. L'ordre détermine le principal défaut des transports.",
+            "HOST": "Comment trouver le client - IP ou nom d'hôte. Si vous voulez que le téléphone s'inscrire lui-même, utilisez le mot-clé au lieu d'adresse IP dynamique.",
+            "NAT": "Change le comportement de Asterisk pour les clients derrière un pare-feu.Si l'une des options séparées par des virgules est 'non', l'astérisque permet de ne pas tenir compte des autres paramètres et définissez le nat =no.",
+            "SIPEXPIRES": "Par défaut : 160",
+            "SIPPORT": "Par défaut : 5060",
+            "TYPE": "Détermine le rôle au sein de SIP Asterisk. Utilisateur : utilisé pour authentifier les - : par les pairs pour les appels sortants - AMI : couvre à la fois les caractéristiques de la ci-dessus.",
+            "CHATCAPACITY": "Zéro signifie illimité.",
+            "MAILCAPACITY": "Zéro signifie illimité.",
+            "FAXCAPACITY": "Zéro signifie illimité.",
+            "SMSCAPACITY": "Zéro signifie illimité.",
+            "OPENCHANNELCAPACITY": "Zéro signifie illimité.",
+            "CALLGROUP": "Définit l'agent's callgroup",
+            "PICKUPGROUP": "Définit les groupes dans lesquels l'agent peut répondre à des appels"
+        },
+        "NEW_PASSWORD": "Nouveau mot de passe",
+        "CONFIRM_PASSWORD": "Confirmer le mot de passe",
+        "LOGININPAUSE": "Login en pause",
+        "HOST": "Host",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "D'autres canaux",
+        "CHATCAPACITY": "Capacité de chat",
+        "MAILCAPACITY": "Courrier électronique",
+        "FAXCAPACITY": "La capacité de télécopie",
+        "SMSCAPACITY": "Capacité sms",
+        "OPENCHANNELCAPACITY": "La capacité de canaux ouverts",
+        "MOTIONBAR": "Barre de mouvement",
+        "SETTINGS": "Settings",
+        "AUTOANSWER": "La fonction Réponse auto.",
+        "ENABLESETTINGS": "Les paramètres d'activation",
+        "CALL_FORWARDING": "Le transfert d'appel",
+        "UNCONDITIONAL": "Inconditionnelle",
+        "UNCONDITIONALNUMBER": "Nombre inconditionnel",
+        "NOREPLY": "Pas de réponse",
+        "NOREPLYNUMBER": "Nombre Aucune réponse",
+        "BUSY": "Occupé",
+        "BUSYNUMBER": "Numéro occupé",
+        "REMOTE_CONTROL": "Contrôle à distance",
+        "REMOTECONTROL": "Contrôle à distance",
+        "REMOTECONTROLPORT": "Port de contrôle à distance",
+        "SIP": "Le SIP",
+        "SIPEXPIRES": "Date d'expiration SIP [sec]",
+        "SIPPORT": "Port SIP",
+        "PENALTY": "De mort",
+        "ACCOUNTNAME": "Nom de compte",
+        "ADD_TELEPHONE": "Ajouter téléphone",
+        "EDIT_TELEPHONE": "Téléphone Modifier",
+        "DELETE_TELEPHONE": "Supprimer Téléphone",
+        "TEAMS": "Equipes",
+        "DELETE_TEAM": "L'équipe de supprimer",
+        "AGENTADD_TEAM": "Ajouter des agents à l'équipe",
+        "EDIT_TEAM": "L'équipe de modifier",
+        "TYPE": "Type",
+        "TELEPHONES": "Telephones",
+        "CALLERID": "L'identification de l'appelant",
+        "ENABLERECORDING": "Activer l'enregistrement",
+        "STAFF": "Personnel",
+        "ID": "Id",
+        "NEW_USER": "Nouvel utilisateur",
+        "NEW_AGENT": "Nouvel agent",
+        "NEW_TELEPHONE": "Nouveau téléphone",
+        "NEW_TEAM": "Nouvelle équipe",
+        "ADD_TEAM": "Ajouter l'Association",
+        "JOIN_QUEUE": "Inscrivez-vous file d",
+        "CAPACITY": "Renforcement",
+        "AUTOINTERNAL": "Générer automatiquement un numéro interne",
+        "ADD_AGENT_TO_TEAM": "Ajouter à l'équipe de l'Agent",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "PERMISSIONS": "Autorisations",
+        "ADD_AGENT_TO_QUEUE": "Ajouter à la file d'attente de l'Agent",
+        "ALL_MODULES_AVAILABLE": "Tous les modules disponibles",
+        "CALLGROUP": "Groupe d'appel",
+        "PICKUPGROUP": "Groupe d'interception",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Ajouter à la file d'agent campagnes électorales",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Ajouter l'agent de files d'attente de la voix",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Ajouter l'agent de files d'attente de discussion",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Ajouter l'agent pour les files d'attente de courrier",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Ajouter l'agent de files d'SMS",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Ajouter l'agent pour ouvrir Files d'attente de canal",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Ajouter l'agent de files d'attente de Fax",
+        "QUEUEADD_USER_VOICE_INBOUND": "Ajouter un utilisateur à files d'vocale",
+        "QUEUEADD_USER_CHAT_INBOUND": "Ajouter un utilisateur à files d'attente de discussion",
+        "QUEUEADD_USER_MAIL_INBOUND": "Ajouter un utilisateur à files d'attente de courrier",
+        "QUEUEADD_USER_SMS_INBOUND": "Ajouter un utilisateur à files d'SMS",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Ajouter un utilisateur à ouvrir des files d'attente de canal",
+        "QUEUEADD_USER_FAX_INBOUND": "Ajouter un utilisateur à des files d'attente de Fax",
+        "ALL_TEAMS": "Toutes les équipes",
+        "SELECTED_TEAMS": "Les équipes sélectionnées",
+        "SELECTED_AGENTS": "Agents sélectionnés",
+        "ALL_QUEUES_VOICE_OUTBOUND": "Toutes les campagnes d'attente",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Des campagnes d'attente sélectionné",
+        "ALL_QUEUES_VOICE_INBOUND": "Toutes les files d'attente de la voix",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Les files d'vocal sélectionné",
+        "ALL_QUEUES_CHAT_INBOUND": "Toutes les files d'attente de discussion",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Files d'attente de discussion sélectionné",
+        "ALL_QUEUES_MAIL_INBOUND": "Toutes les files d'attente de courrier",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Les files d'attente de courrier sélectionné",
+        "ALL_QUEUES_SMS_INBOUND": "Toutes les files d'SMS",
+        "SELECTED_QUEUES_SMS_INBOUND": "Les files d'SMS sélectionné",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "Toutes les files d'attente de canal ouvert",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Certaines files d'Canal ouvert",
+        "ALL_QUEUES_FAX_INBOUND": "Toutes les files d'attente de Fax",
+        "SELECTED_QUEUES_FAX_INBOUND": "Les files d'attente de fax sélectionné",
+        "VOICEMAIL": "La messagerie vocale",
+        "CHANGE_PASSWORD": "Changer de mot de passe",
+        "CHANGEPASSWORD_AGENT": "Changer de mot de passe",
+        "CHANGEPASSWORD_USER": "Changer de mot de passe",
+        "CHANGEPASSWORD_TELEPHONE": "Changer de mot de passe",
+        "RINGINUSE": "L'utilisation de bague"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/hi.json b/public/app/main/apps/staff/i18n/hi.json
new file mode 100644 (file)
index 0000000..6d9d811
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "प्रयोक्ता",
+        "AGENTS": "एजेंटों",
+        "TOGGLE_SIDENAV": "Sidenav टॉगल करें",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "BACK": "वापिस",
+        "MULTI_SELECT_TOGGLE": "एकाधिक चयन टॉगल करें",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "SELECTED": "चयनित",
+        "DELETE_SELECTED": "चयनित हटाएं",
+        "EXPORT_SELECTED": "चयनित निर्यात",
+        "ALL_USERS": "सभी प्रयोक्ताओं",
+        "ALL_AGENTS": "सभी एजेंटों",
+        "SORT": "सॉर्ट करें",
+        "NAME": "नाम",
+        "FULLNAME": "पूरा नाम",
+        "A_TO_Z": "(A से Z)",
+        "Z_TO_A": "(क) से (जेड",
+        "MORE": "अधिक",
+        "DELETE_USER": "उपयोगकर्ता हटाएं",
+        "EDIT_USER": "उपयोगकर्ता को संपादित करें",
+        "DELETE_AGENT": "एजेंट को हटाएं",
+        "EDIT_AGENT": "एजेंट संपादित करें",
+        "DELETE": "हटाना",
+        "SAVE": "सहेजें",
+        "ADD_USER": "उपयोगकर्ता जोड़ें",
+        "ADD_AGENT": "एजेंट जोड़ें",
+        "NO_RESULTS": "कोई परिणाम नहीं है।",
+        "CLOSE_DIALOG": "संवाद बंद करें",
+        "NAME_REQUIRED": "नाम (अपेक्षित)",
+        "USERNAME": "उपयोगकर्ता नाम",
+        "SHOW_ALL_FIELDS": "सभी क्षेत्रों में दिखाएं",
+        "PHONE_NUMBER": "फ़ोन नंबर",
+        "EMAIL": "ई-मेल",
+        "PASSWORD": "पासवर्ड",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "इस Fullname अपेक्षित है।",
+            "USERNAME_REQUIRED": "उपयोगकर्ता नाम की आवश्यकता है।",
+            "EMAIL_REQUIRED": "ईमेल की आवश्यकता है।",
+            "PASSWORD_REQUIRED": "पासवर्ड की आवश्यकता है।",
+            "CONFIRM_NOT_MATCH": "पासवर्ड मेल नहीं",
+            "EMAIL_MUST_VALID": "एक मान्य स्वरूप में लिखा होना ईमेल का",
+            "ACCOUNTNAME_REQUIRED": "खाता नाम की आवश्यकता है।",
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "HOST_REQUIRED": "मेजबान की आवश्यकता है।",
+            "CHATCAPACITY_REQUIRED": "चैट क्षमता आवश्यकता है।",
+            "MAILCAPACITY_REQUIRED": "मेल की क्षमता की आवश्यकता है।",
+            "FAXCAPACITY_REQUIRED": "फ़ैक्स क्षमता आवश्यकता है।",
+            "SMSCAPACITY_REQUIRED": "SMS क्षमता आवश्यकता है।",
+            "OPENCHANNELCAPACITY_REQUIRED": "खुले चैनल क्षमता आवश्यकता है।",
+            "SIPEXPIRES_REQUIRED": "अव्यवहितपूर्व कमरंद की आवश्यकता है।",
+            "SIPPORT_REQUIRED": "इस पत्तन पर अपेक्षित है कमरंद",
+            "UNCONDITIONALNUMBER_REQUIRED": "इस शर्त संख्या की आवश्यकता है।",
+            "NOREPLYNUMBER_REQUIRED": "का कोई उत्तर संख्या की आवश्यकता है।",
+            "BUSYNUMBER_REQUIRED": "व् यस् त संख्या की आवश्यकता है।",
+            "USERNAME_MUST_VALID_PATTERN": "सूबेदार सुरिन९दर सिनह को मान्य उपयोगकर्ता नाम होना regex}}{",
+            "REMOTECONTROLPORT_REQUIRED": "रिमोट कंट्रोल पत्तन की आवश्यकता है।"
+        },
+        "ACCOUNT": "खाते",
+        "VOICE": "आवाज",
+        "CREATED_AT": "सृजित",
+        "ROLE": "भूमिका",
+        "PERSONAL_INFO": "व्यक्तिगत जानकारी",
+        "DESCRIPTION": "वर्णन",
+        "CHANGE_AVATAR": "परिवर्तन के अवतार",
+        "GENERAL": "सामान्य",
+        "INTERNAL": "आंतरिक",
+        "TRANSPORT": "परिवहन",
+        "ALLOWCODECS": "अनुमत Codecs",
+        "HELP": {
+            "ALLOWCODECS": "Codecs के क्रम में वरीयता दी",
+            "TRANSPORT": "डिफ़ॉल्ट केपरिवहन सेट करें क्रम निर्धारण की प्राथमिक डिफ़ॉल्ट परिवहन।",
+            "HOST": "ग्राहक को कैसे - IP होस्ट नाम या है। यदि आप चाहते हैं कि फ़ोन रजिस्\200dटर करने का उपयोग करें. IP होस्ट के बजाय गतिशील कीवर्ड",
+            "NAT": "ग्राहकों के लिए तारांकन के व्यवहार को पीछे फ़ायरवॉल.यदि कोई अलग-अल्पविराम की विकल्प है 'नहीं', तारांकन परटिप्प ाी और स ९सी अन्य सेटिंग्स सेट आइप गीतांजलिश्री का तिरोहित=सं.",
+            "SIPEXPIRES": "डिफ़ॉल्ट: 160",
+            "SIPPORT": "डिफ़ॉल्ट: 5060",
+            "TYPE": "रखावके कमरंद की भूमिका के तारांक लगा। उपयोगकर्ता को प्रमाणित करने के लिए प्रयोग किया :------- मित्र आउटगोइंग कॉल के लिए पीयर इनकमिंग कार्यनिष्पादनके विशेषताओं के ऊपर है।",
+            "CHATCAPACITY": "असीमित अर्थ शून्य",
+            "MAILCAPACITY": "असीमित अर्थ शून्य",
+            "FAXCAPACITY": "असीमित अर्थ शून्य",
+            "SMSCAPACITY": "असीमित अर्थ शून्य",
+            "OPENCHANNELCAPACITY": "असीमित अर्थ शून्य",
+            "CALLGROUP": "इस परिभाषा के एजेंट callgroup",
+            "PICKUPGROUP": "को परिभाषित समूह कॉल का अपने आप उत्तर दें जो एजेंट कर सकते हैं।"
+        },
+        "NEW_PASSWORD": "नया पासवर्ड",
+        "CONFIRM_PASSWORD": "पासवर्ड की पुष्टि करें:",
+        "LOGININPAUSE": "लॉग इन ठहरें",
+        "HOST": "होस्ट",
+        "NAT": "आइप गीतांजलिश्री का तिरोहित",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "अन्य चैनलों",
+        "CHATCAPACITY": "चैट क्षमता",
+        "MAILCAPACITY": "मेल की क्षमता",
+        "FAXCAPACITY": "फैक्स क्षमता",
+        "SMSCAPACITY": "Sms क्षमता",
+        "OPENCHANNELCAPACITY": "खुले चैनल क्षमता",
+        "MOTIONBAR": "प्रस्ताव पट्टी",
+        "SETTINGS": "सेटिंग्स",
+        "AUTOANSWER": "का स् वत: जवाब दें",
+        "ENABLESETTINGS": "सेटिंग्स को सक्षम करें",
+        "CALL_FORWARDING": "कॉल अग्रेषित करना",
+        "UNCONDITIONAL": "शर्त",
+        "UNCONDITIONALNUMBER": "बिना शर्त संख्या",
+        "NOREPLY": "कोई प्रत्युत्तर नहीं",
+        "NOREPLYNUMBER": "कोई प्रत्युत्तर संख्या",
+        "BUSY": "व्यस्त",
+        "BUSYNUMBER": "व् यस् त संख्या",
+        "REMOTE_CONTROL": "रिमोट कंट्रोल",
+        "REMOTECONTROL": "रिमोट कंट्रोल",
+        "REMOTECONTROLPORT": "रिमोट कंट्रोल पत्तन",
+        "SIP": "कमरंद",
+        "SIPEXPIRES": "[Setup] कमरंद की समाप्ति पर दिएजाने का",
+        "SIPPORT": "कमरंद पत्तन",
+        "PENALTY": "दण्ड",
+        "ACCOUNTNAME": "खाता नाम",
+        "ADD_TELEPHONE": "टेलीफोन पर जोड़ें",
+        "EDIT_TELEPHONE": "टेलीफोन संपादित करें",
+        "DELETE_TELEPHONE": "टेलीफोन हटाएं",
+        "TEAMS": "टीमें",
+        "DELETE_TEAM": "टीम को हटाएं",
+        "AGENTADD_TEAM": "टीम के एजेंट जोड़ें",
+        "EDIT_TEAM": "टीम को संपादित करें",
+        "TYPE": "प्रकार",
+        "TELEPHONES": "टेलीफोन",
+        "CALLERID": "कॉलर ID",
+        "ENABLERECORDING": "रिकॉर्डिंग को सक्षम करें",
+        "STAFF": "कर्मचारी",
+        "ID": "Id",
+        "NEW_USER": "नए उपयोगकर्ता",
+        "NEW_AGENT": "नई अभिकर्ता",
+        "NEW_TELEPHONE": "नई टेलीफोन",
+        "NEW_TEAM": "नई टीम",
+        "ADD_TEAM": "टीम में जोड़ें",
+        "JOIN_QUEUE": "कतार में शामिल होंगे।",
+        "CAPACITY": "क्षमता",
+        "AUTOINTERNAL": "स् वत: सृजित आंतरिक संख्या",
+        "ADD_AGENT_TO_TEAM": "एजेंट को टीम में जोड़ें",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "PERMISSIONS": "अनुमतियां",
+        "ADD_AGENT_TO_QUEUE": "एजेंट को कतार में जोड़ें",
+        "ALL_MODULES_AVAILABLE": "सभी उपलब्ध",
+        "CALLGROUP": "समूह कॉल",
+        "PICKUPGROUP": "Pickup समूह",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "लोकतंत्रमें अभियानों एजेंट को जोड़ें",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "ध्वनि स्वर जोड़ने के एजेंट को कतार",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "चैट एजेंट को जोड़ने वाली कतारों",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "मेल जोड़ना एजेंट को कतार",
+        "QUEUEADD_AGENT_SMS_INBOUND": "SMS के एजेंट को जोड़ने वाली कतारों",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "एजेंट को जोड़ने के लिए खुले चैनल कतार",
+        "QUEUEADD_AGENT_FAX_INBOUND": "एजेंट को फैक्स कतार में जोड़ें",
+        "QUEUEADD_USER_VOICE_INBOUND": "उपयोगकर्ता जोड़ें पर वॉयस कतार",
+        "QUEUEADD_USER_CHAT_INBOUND": "उपयोगकर्ता जोड़ें से चैट कतार",
+        "QUEUEADD_USER_MAIL_INBOUND": "उपयोगकर्ता जोड़ें से मेल कतार",
+        "QUEUEADD_USER_SMS_INBOUND": "SMS के लिए उपयोगकर्ता जोड़ें कतार",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "उपयोगकर्ता जोड़ें खोलने चैनल कतार",
+        "QUEUEADD_USER_FAX_INBOUND": "उपयोगकर्ता जोड़ें फैक्स कतार",
+        "ALL_TEAMS": "सभी टीमें भाग लेंगी।",
+        "SELECTED_TEAMS": "चयनित टीम",
+        "SELECTED_AGENTS": "चयनित एजेंटों",
+        "ALL_QUEUES_VOICE_OUTBOUND": "सभी कतार अभियान",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "चयनित कतार अभियान",
+        "ALL_QUEUES_VOICE_INBOUND": "सभी वॉयस कतार",
+        "SELECTED_QUEUES_VOICE_INBOUND": "चयनित आवाज कतार",
+        "ALL_QUEUES_CHAT_INBOUND": "सभी चैट कतार",
+        "SELECTED_QUEUES_CHAT_INBOUND": "चयनित चैट कतार",
+        "ALL_QUEUES_MAIL_INBOUND": "हर मेल कतार",
+        "SELECTED_QUEUES_MAIL_INBOUND": "चयनित मेल कतार",
+        "ALL_QUEUES_SMS_INBOUND": "सभी SMS कतार",
+        "SELECTED_QUEUES_SMS_INBOUND": "चयनित SMS कतार",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "सभी खुले चैनल कतार",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "चयनित खुले चैनल कतार",
+        "ALL_QUEUES_FAX_INBOUND": "सभी फैक्स कतार",
+        "SELECTED_QUEUES_FAX_INBOUND": "चयनित फैक्स कतार",
+        "VOICEMAIL": "वॉयसमेल",
+        "CHANGE_PASSWORD": "पासवर्ड बदलें",
+        "CHANGEPASSWORD_AGENT": "पासवर्ड बदलें",
+        "CHANGEPASSWORD_USER": "पासवर्ड बदलें",
+        "CHANGEPASSWORD_TELEPHONE": "पासवर्ड बदलें",
+        "RINGINUSE": "रिंग प्रयोग में है"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/it.json b/public/app/main/apps/staff/i18n/it.json
new file mode 100644 (file)
index 0000000..ff0036c
--- /dev/null
@@ -0,0 +1,185 @@
+{
+    "STAFF": {
+        "USERS": "Utenti",
+        "AGENTS": "Agenti",
+        "TOGGLE_SIDENAV": "Attiva/Disattiva barra laterale",
+        "SEARCH_FOR_ANYONE": "Cerca per chiunque",
+        "BACK": "Indietro",
+        "MULTI_SELECT_TOGGLE": "Attiva/DIsattiva selezione multipla",
+        "SELECT_ALL": "Seleziona tutto",
+        "SELECT_NONE": "Deseleziona tutto",
+        "SELECTED": "Selezionati",
+        "DELETE_SELECTED": "Elimina selezionati",
+        "EXPORT_SELECTED": "Esporta selezionati",
+        "ALL_USERS": "Tutti gli Utenti",
+        "ALL_AGENTS": "Tutti gli Agenti",
+        "SORT": "Ordina",
+        "NAME": "Nome",
+        "FULLNAME": "Nome completo",
+        "A_TO_Z": "(da A a Z)",
+        "Z_TO_A": "(da Z ad A)",
+        "MORE": "Di più",
+        "DELETE_USER": "Elimina Utente",
+        "EDIT_USER": "Modifica utente",
+        "DELETE_AGENT": "Elimina Agente",
+        "EDIT_AGENT": "Modifica Agente",
+        "DELETE": "ELIMINA",
+        "SAVE": "SALVA",
+        "ADD_USER": "AGGIUNGI UTENTE",
+        "ADD_AGENT": "AGGIUNGI AGENTE",
+        "NO_RESULTS": "Nessun risultato..",
+        "CLOSE_DIALOG": "Chiudi finestra",
+        "NAME_REQUIRED": "Nome (richiesto)",
+        "USERNAME": "Username",
+        "SHOW_ALL_FIELDS": "Mostra tutti i campi",
+        "PHONE_NUMBER": "Numero di telefono",
+        "EMAIL": "Email",
+        "PASSWORD": "Password",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "Il nome completo è richiesto",
+            "USERNAME_REQUIRED": "Lo Username è richiesto",
+            "EMAIL_REQUIRED": "L' indirizzo email è richiesto",
+            "PASSWORD_REQUIRED": "La password è richiesta",
+            "CONFIRM_NOT_MATCH": "Le password non combaciano",
+            "EMAIL_MUST_VALID": "L' indirizzo email deve essere in un formato valido",
+            "ACCOUNTNAME_REQUIRED": "Il nome dell' account è richiesto",
+            "NAME_REQUIRED": "Il nome è richiesto",
+            "HOST_REQUIRED": "The Host is required",
+            "CHATCAPACITY_REQUIRED": "La capacità Chat è richiesta",
+            "MAILCAPACITY_REQUIRED": "La capacità Mail è richiesta",
+            "FAXCAPACITY_REQUIRED": "La capacità Fax è richiesta",
+            "SMSCAPACITY_REQUIRED": "La capacità SMS è richiesta",
+            "OPENCHANNELCAPACITY_REQUIRED": "La capacità Open Channel è richiesta",
+            "SIPEXPIRES_REQUIRED": "La scadenza del SIP è richiesta",
+            "SIPPORT_REQUIRED": "La porta del SIP è richiesta",
+            "UNCONDITIONALNUMBER_REQUIRED": "Il Numero inoltro incondizionato è richiesto",
+            "NOREPLYNUMBER_REQUIRED": "Numero inoltro in caso di nessuna risposta è richiesto",
+            "BUSYNUMBER_REQUIRED": "Il Numero per inoltro se occupato è richiesto",
+            "USERNAME_MUST_VALID_PATTERN": "Lo username deve essere valido {{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "La Porta Controllo Remoto è richiesta"
+        },
+        "ACCOUNT": "Account",
+        "VOICE": "Voce",
+        "CREATED_AT": "Creato il",
+        "ROLE": "Ruolo",
+        "PERSONAL_INFO": "Info Personali",
+        "DESCRIPTION": "Descrizione",
+        "CHANGE_AVATAR": "Cambia Avatar",
+        "GENERAL": "Generale",
+        "INTERNAL": "Interno",
+        "TRANSPORT": "Protocollo",
+        "ALLOWCODECS": "Codecs Abilitati",
+        "HELP": {
+            "ALLOWCODECS": "Vodecs Abilitati in ordine di preferenza",
+            "TRANSPORT": "Imposta il protocollo di default. L' ordine determina il valore primario.",
+            "HOST": "Come trovare il client - IP o nome host. Se si vuole che il telefono si registri autonomamente, usare la stringa 'dynamic' invece dell' IP dell' Host.",
+            "NAT": "Cambia il comportamento di asterisk per i client dietro un firewall. Se almeno una delle opzioni separate da virgola è 'no', Asterisk ignorerà tutte le altre e imposterà nat=no.",
+            "SIPEXPIRES": "Default: 160",
+            "SIPPORT": "Default: 5060",
+            "TYPE": "Determina il ruolo del SIP all' interno di asterisk. User: usato per identificare le chiamate in arrivo - Peer: per le chiamate in uscita - Friend: copre entrambe le caratteristiche di User e Peer.",
+            "CHATCAPACITY": "Zero significa illimitato.",
+            "MAILCAPACITY": "Zero significa illimitato.",
+            "FAXCAPACITY": "Zero significa illimitato.",
+            "SMSCAPACITY": "Zero significa illimitato.",
+            "OPENCHANNELCAPACITY": "Zero significa illimitato.",
+            "CALLGROUP": "Definisce il gruppo chiamata dell' agente",
+            "PICKUPGROUP": "Definisce in quali gruppi l' agente può rispondere alle chiamate"
+        },
+        "NEW_PASSWORD": "Nuova Password",
+        "CONFIRM_PASSWORD": "Conferma Password",
+        "CHANGE_PASSWORD": "Cambia Password",
+        "CHANGEPASSWORD_AGENT": "Cambia Password",
+        "CHANGEPASSWORD_USER": "Cambia Password",
+        "CHANGEPASSWORD_TELEPHONE": "Cambia Password",
+        "LOGININPAUSE": "Login In Pausa",
+        "HOST": "Host",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "Altri Canali",
+        "CHATCAPACITY": "Capacità Chat",
+        "MAILCAPACITY": "Capacità Mail",
+        "FAXCAPACITY": "Capacità Fax",
+        "SMSCAPACITY": "Capacità Sms",
+        "OPENCHANNELCAPACITY": "Capacità Open Channel",
+        "MOTIONBAR": "Motion Bar",
+        "SETTINGS": "Impostazioni",
+        "AUTOANSWER": "Risposta Automatica",
+        "ENABLESETTINGS": "Abilita Impostazioni",
+        "CALL_FORWARDING": "Inoltro della Chiamata",
+        "UNCONDITIONAL": "Inoltro incondizionato",
+        "UNCONDITIONALNUMBER": "Numero inoltro incondizionato",
+        "NOREPLY": "Inoltro in caso di nessuna risposta",
+        "NOREPLYNUMBER": "Numero inoltro in caso di nessuna risposta",
+        "BUSY": "Inoltro se occupato",
+        "BUSYNUMBER": "Numero per inoltro se occupato",
+        "REMOTE_CONTROL": "Controllo Remoto",
+        "REMOTECONTROL": "Controllo Remoto",
+        "REMOTECONTROLPORT": "Porta Controllo Remoto",
+        "SIP": "SIP",
+        "SIPEXPIRES": "Scadenza SIP [sec]",
+        "SIPPORT": "Porta SIP",
+        "PENALTY": "Penalità",
+        "ACCOUNTNAME": "Nome Account",
+        "ADD_TELEPHONE": "Aggiungi Telefono",
+        "EDIT_TELEPHONE": "Modifica Telefono",
+        "DELETE_TELEPHONE": "Elimina Telefono",
+        "TEAMS": "Team",
+        "DELETE_TEAM": "Elimina Team",
+        "AGENTADD_TEAM": "Aggiungi Agenti al Team",
+        "EDIT_TEAM": "Modifica Team",
+        "TYPE": "Tipo",
+        "TELEPHONES": "Telefoni",
+        "CALLERID": "ID Chiamante",
+        "ENABLERECORDING": "Abilita Registrazione",
+        "STAFF": "Staff",
+        "ID": "Id",
+        "NEW_USER": "Nuovo Utente",
+        "NEW_AGENT": "Nuovo Agente",
+        "NEW_TELEPHONE": "Nuovo Telefono",
+        "NEW_TEAM": "Nuovo Team",
+        "ADD_TEAM": "Aggiungi Team",
+        "JOIN_QUEUE": "Aggiungi a Coda",
+        "CAPACITY": "Capacità",
+        "AUTOINTERNAL": "Genera numero interno automaticamente",
+        "ADD_AGENT_TO_TEAM": "Aggiungi Agente a Team",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "PERMISSIONS": "Permessi",
+        "ADD_AGENT_TO_QUEUE": "Aggiungi Agente alla Coda",
+        "ALL_MODULES_AVAILABLE": "Tutti i moduli disponibili",
+        "CALLGROUP": "Call Group",
+        "PICKUPGROUP": "Pickup Group",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Aggiungi Agente a Campagne di coda",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Aggiungi Agente a code Voce",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Aggiungi Agente a code Chat",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Aggiungi Agente a code Mail",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Aggiungi Agente a code SMS",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Aggiungi Agente a code Open Channel",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Aggiungi Agente a code Fax",
+        "QUEUEADD_USER_VOICE_INBOUND": "Aggiungi Utente a code Voce",
+        "QUEUEADD_USER_CHAT_INBOUND": "Aggiungi Utente a code Chat",
+        "QUEUEADD_USER_MAIL_INBOUND": "Aggiungi Utente a code Mail",
+        "QUEUEADD_USER_SMS_INBOUND": "Aggiungi Utente a code SMS",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Aggiungi Utente a code Open Channel",
+        "QUEUEADD_USER_FAX_INBOUND": "Aggiungi Utente a code Fax",
+        "ALL_TEAMS": "Tutti i Team",
+        "SELECTED_TEAMS": "Team selezionati",
+        "SELECTED_AGENTS": "Agenti selezionati",
+        "ALL_QUEUES_VOICE_OUTBOUND": "Tutte le Campagne di coda",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Campagne di coda selezionate",
+        "ALL_QUEUES_VOICE_INBOUND": "Tutte le code",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Code Voce selezionate",
+        "ALL_QUEUES_CHAT_INBOUND": "Tutte le code Chat",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Code Chat selezionate",
+        "ALL_QUEUES_MAIL_INBOUND": "Tutte le code Mail",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Code Mail selezionate",
+        "ALL_QUEUES_SMS_INBOUND": "Tutte le code SMS",
+        "SELECTED_QUEUES_SMS_INBOUND": "Code SMS selezionate",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "Tutte le code Open Channel",
+        "SELECTED_QUEUES_OpenCHANNEL_INBOUND": "Code Open Channel selezionate",
+        "ALL_QUEUES_FAX_INBOUND": "Tutte le code Fax",
+        "SELECTED_QUEUES_FAX_INBOUND": "Code Fax selezionate",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Selezionate il canale aperto di code",
+        "VOICEMAIL": "Voicemail",
+        "RINGINUSE": "Anello in uso"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/ja.json b/public/app/main/apps/staff/i18n/ja.json
new file mode 100644 (file)
index 0000000..7fbc02a
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "ユーザー",
+        "AGENTS": "エージェント",
+        "TOGGLE_SIDENAV": "切り替えのサイドナビ",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "BACK": "背面",
+        "MULTI_SELECT_TOGGLE": "複数選択を切り替え",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "SELECTED": "選択した",
+        "DELETE_SELECTED": "選択したを削除",
+        "EXPORT_SELECTED": "選択したエクスポート",
+        "ALL_USERS": "すべてのユーザー",
+        "ALL_AGENTS": "すべてのエージェント",
+        "SORT": "並べ替え",
+        "NAME": "名",
+        "FULLNAME": "完全な名前",
+        "A_TO_Z": "( A ~ Z )",
+        "Z_TO_A": "( A ~ Z )",
+        "MORE": "詳細",
+        "DELETE_USER": "ユーザを削除する",
+        "EDIT_USER": "ユーザーの編集",
+        "DELETE_AGENT": "エージェントの削除",
+        "EDIT_AGENT": "エージェントの編集",
+        "DELETE": "削除",
+        "SAVE": "保存",
+        "ADD_USER": "ユーザを追加します",
+        "ADD_AGENT": "エージェントの追加",
+        "NO_RESULTS": "検索結果はありません。",
+        "CLOSE_DIALOG": "ダイアログを閉じます。",
+        "NAME_REQUIRED": "名前 ( 必須 )",
+        "USERNAME": "ユーザ名",
+        "SHOW_ALL_FIELDS": "すべてのフィールドを表示します。",
+        "PHONE_NUMBER": "電話番号",
+        "EMAIL": "電子メール",
+        "PASSWORD": "パスワード",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "Fullname の値は ' この必要な",
+            "USERNAME_REQUIRED": "ユーザ名が必要です",
+            "EMAIL_REQUIRED": "E メールは必須です",
+            "PASSWORD_REQUIRED": "パスワードが必要です",
+            "CONFIRM_NOT_MATCH": "パスワードが一致しません",
+            "EMAIL_MUST_VALID": "メールは有効な形式で記述する必要があります",
+            "ACCOUNTNAME_REQUIRED": "アカウント名が必要です",
+            "NAME_REQUIRED": "名前は必須です",
+            "HOST_REQUIRED": "は、ホストが必要です",
+            "CHATCAPACITY_REQUIRED": "チャットの容量が必要です",
+            "MAILCAPACITY_REQUIRED": "メールの容量が必要です",
+            "FAXCAPACITY_REQUIRED": "Fax の容量が必要です",
+            "SMSCAPACITY_REQUIRED": "SMS の容量が必要です",
+            "OPENCHANNELCAPACITY_REQUIRED": "のオープンチャネルの容量が必要です",
+            "SIPEXPIRES_REQUIRED": "SIP の使用期限が必要です",
+            "SIPPORT_REQUIRED": "SIP のポートが必要です",
+            "UNCONDITIONALNUMBER_REQUIRED": "の無条件の番号が必要です。",
+            "NOREPLYNUMBER_REQUIRED": "No 返信番号が必要です。",
+            "BUSYNUMBER_REQUIRED": "使用中の番号が必要です。",
+            "USERNAME_MUST_VALID_PATTERN": "ユーザー名は ' 有効な { regex } } 必要があります",
+            "REMOTECONTROLPORT_REQUIRED": "リモート・コントロールのポートが必要です"
+        },
+        "ACCOUNT": "アカウント",
+        "VOICE": "音声",
+        "CREATED_AT": "で作成された",
+        "ROLE": "役割",
+        "PERSONAL_INFO": "「個人情報」",
+        "DESCRIPTION": "説明",
+        "CHANGE_AVATAR": "アバターの変更",
+        "GENERAL": "一般的な",
+        "INTERNAL": "内部",
+        "TRANSPORT": "交通機関",
+        "ALLOWCODECS": "許可されているコーデック",
+        "HELP": {
+            "ALLOWCODECS": "環境設定の順序で許可される CODEC",
+            "TRANSPORT": "デフォルトの転送を設定します。 順序は、プライマリデフォルトのトランスポートを指定します。",
+            "HOST": "は、クライアントの IP アドレスまたはホスト名を検索する方法を説明します。 電話機を自動登録する自体、する場合に、ホストの IP アドレスの代わりに、ダイナミックには、キーワードを使用します。",
+            "NAT": "ファイアウォールの背後にあるクライアントの場合はアスタリスクの動作を変更できます。カンマのいずれかで区切られたオプションが ' いいえ ' の場合にアスタリスクが付いている他のすべての設定項目を設定し、 nat = no を無視する",
+            "SIPEXPIRES": "デフォルト値 : 160",
+            "SIPPORT": "デフォルト値 : 5060",
+            "TYPE": "アスタリスク内の SIP の役割を決定します。 ユーザは、次の着信を認証するピア : 発信コールの友人のために上記の両方の特性をカバーするために使用されます。",
+            "CHATCAPACITY": "ゼロは制限なしを意味します。",
+            "MAILCAPACITY": "ゼロは制限なしを意味します。",
+            "FAXCAPACITY": "ゼロは制限なしを意味します。",
+            "SMSCAPACITY": "ゼロは制限なしを意味します。",
+            "OPENCHANNELCAPACITY": "ゼロは制限なしを意味します。",
+            "CALLGROUP": "エージェントの callgroup を定義します。",
+            "PICKUPGROUP": "エージェントがコールに応答できますが、グループを定義します。"
+        },
+        "NEW_PASSWORD": "新しいパスワード",
+        "CONFIRM_PASSWORD": "パスワードを確認します",
+        "LOGININPAUSE": "一時停止でのログイン",
+        "HOST": "ホスト",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "他のチャネル",
+        "CHATCAPACITY": "チャットの容量",
+        "MAILCAPACITY": "メールの容量",
+        "FAXCAPACITY": "Fax 容量",
+        "SMSCAPACITY": "Sms の容量",
+        "OPENCHANNELCAPACITY": "オープンチャネルのキャパシティ",
+        "MOTIONBAR": "運動可能バー",
+        "SETTINGS": "の設定",
+        "AUTOANSWER": "自動応答",
+        "ENABLESETTINGS": "設定を有効にします。",
+        "CALL_FORWARDING": "コールの転送",
+        "UNCONDITIONAL": "無条件",
+        "UNCONDITIONALNUMBER": "無条件の数",
+        "NOREPLY": "応答がありません。",
+        "NOREPLYNUMBER": "返信数がありません",
+        "BUSY": "ビジー",
+        "BUSYNUMBER": "ビジーの番号",
+        "REMOTE_CONTROL": "リモート・コントロール",
+        "REMOTECONTROL": "リモート・コントロール",
+        "REMOTECONTROLPORT": "リモート制御ポート",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP の期限が切れる [ 秒 ]",
+        "SIPPORT": "SIP ポート",
+        "PENALTY": "ペナルティ",
+        "ACCOUNTNAME": "アカウント名",
+        "ADD_TELEPHONE": "電話番号の追加",
+        "EDIT_TELEPHONE": "電話の編集",
+        "DELETE_TELEPHONE": "電話を削除",
+        "TEAMS": "チーム",
+        "DELETE_TEAM": "チームを削除します",
+        "AGENTADD_TEAM": "チームにエージェントを追加する",
+        "EDIT_TEAM": "チームの編集",
+        "TYPE": "タイプ",
+        "TELEPHONES": "電話",
+        "CALLERID": "発信者 ID",
+        "ENABLERECORDING": "記録を有効にする",
+        "STAFF": "スタッフ",
+        "ID": "Id",
+        "NEW_USER": "新しいユーザー",
+        "NEW_AGENT": "新しいエージェント",
+        "NEW_TELEPHONE": "新規の電話",
+        "NEW_TEAM": "新しいチーム",
+        "ADD_TEAM": "チームの追加",
+        "JOIN_QUEUE": "キューの結合",
+        "CAPACITY": "容量",
+        "AUTOINTERNAL": "自動内部番号を生成します。",
+        "ADD_AGENT_TO_TEAM": "エージェントをチームに追加",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "PERMISSIONS": "アクセス権",
+        "ADD_AGENT_TO_QUEUE": "エージェントにキューを追加します。",
+        "ALL_MODULES_AVAILABLE": "すべての使用可能なモジュール",
+        "CALLGROUP": "グループコール",
+        "PICKUPGROUP": "ピックアップグループ",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "エージェントキューキャンペーンへの追加",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "エージェントの音声キューを追加するには",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "チャットエージェントキューを追加するには",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "エージェント電子メールのキューを追加するには",
+        "QUEUEADD_AGENT_SMS_INBOUND": "SMS エージェントキューを追加するには",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "エージェントにチャネルを開きます。キューを追加します。",
+        "QUEUEADD_AGENT_FAX_INBOUND": "エージェントの FAX キューを追加するには",
+        "QUEUEADD_USER_VOICE_INBOUND": "ユーザーボイスキューを追加するには",
+        "QUEUEADD_USER_CHAT_INBOUND": "ユーザーのチャットキューを追加するには",
+        "QUEUEADD_USER_MAIL_INBOUND": "ユーザーのメールキューを追加するには",
+        "QUEUEADD_USER_SMS_INBOUND": "ユーザーが SMS のキューを追加するには",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "ユーザにチャネルを開きます。キューを追加します。",
+        "QUEUEADD_USER_FAX_INBOUND": "ユーザのファックスキューを追加するには",
+        "ALL_TEAMS": "すべてのチーム",
+        "SELECTED_TEAMS": "選択したチーム",
+        "SELECTED_AGENTS": "選択されたエージェント",
+        "ALL_QUEUES_VOICE_OUTBOUND": "すべてのキューのキャンペーン",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "選択したキューのキャンペーン",
+        "ALL_QUEUES_VOICE_INBOUND": "すべてのボイスキュー",
+        "SELECTED_QUEUES_VOICE_INBOUND": "選択したボイスキュー",
+        "ALL_QUEUES_CHAT_INBOUND": "すべてのチャットキューの",
+        "SELECTED_QUEUES_CHAT_INBOUND": "選択したチャットのキュー",
+        "ALL_QUEUES_MAIL_INBOUND": "すべての電子メールのキュー",
+        "SELECTED_QUEUES_MAIL_INBOUND": "選択した電子メールのキュー",
+        "ALL_QUEUES_SMS_INBOUND": "すべての SMS のキュー",
+        "SELECTED_QUEUES_SMS_INBOUND": "選択した SMS がキュー",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "開いているすべてのチャネルのキュー",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "選択したチャネルを開きます。キュー",
+        "ALL_QUEUES_FAX_INBOUND": "ファックスのすべてのキュー",
+        "SELECTED_QUEUES_FAX_INBOUND": "選択したファックスキュー",
+        "VOICEMAIL": "ボイスメール",
+        "CHANGE_PASSWORD": "パスワードの変更",
+        "CHANGEPASSWORD_AGENT": "パスワードの変更",
+        "CHANGEPASSWORD_USER": "パスワードの変更",
+        "CHANGEPASSWORD_TELEPHONE": "パスワードの変更",
+        "RINGINUSE": "を使用してのリング"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/ko.json b/public/app/main/apps/staff/i18n/ko.json
new file mode 100644 (file)
index 0000000..ad12db8
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "사용자",
+        "AGENTS": "상담원",
+        "TOGGLE_SIDENAV": "Sidenav 토글",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "BACK": "후면",
+        "MULTI_SELECT_TOGGLE": "멀티 토글",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "SELECTED": "선택한",
+        "DELETE_SELECTED": "선택 항목 삭제",
+        "EXPORT_SELECTED": "선택한 내보내기",
+        "ALL_USERS": "모든 사용자",
+        "ALL_AGENTS": "모든 상담원",
+        "SORT": "정렬",
+        "NAME": "이름",
+        "FULLNAME": "전체 이름",
+        "A_TO_Z": "(a~z)",
+        "Z_TO_A": "(Z)",
+        "MORE": "자세한",
+        "DELETE_USER": "사용자 삭제",
+        "EDIT_USER": "사용자 편집",
+        "DELETE_AGENT": "상담원 삭제",
+        "EDIT_AGENT": "상담원 편집",
+        "DELETE": "삭제",
+        "SAVE": "저장",
+        "ADD_USER": "사용자 추가",
+        "ADD_AGENT": "상담원 추가",
+        "NO_RESULTS": "결과 없음..",
+        "CLOSE_DIALOG": "대화 상자를 닫습니다",
+        "NAME_REQUIRED": "이름 (필수)",
+        "USERNAME": "사용자 이름",
+        "SHOW_ALL_FIELDS": "모든 필드 표시",
+        "PHONE_NUMBER": "전화 번호",
+        "EMAIL": "E-mail",
+        "PASSWORD": "암호",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "Fullname 필수",
+            "USERNAME_REQUIRED": "사용자 이름이 필요합니다.",
+            "EMAIL_REQUIRED": "이 전자 메일은 필수",
+            "PASSWORD_REQUIRED": "암호 필요",
+            "CONFIRM_NOT_MATCH": "암호가 일치하지 않습니다",
+            "EMAIL_MUST_VALID": "E-mail 유효한 형식으로 작성되어 있어야 합니다",
+            "ACCOUNTNAME_REQUIRED": "계정 이름이 필요합니다.",
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "HOST_REQUIRED": "호스트가 필요합니다.",
+            "CHATCAPACITY_REQUIRED": "채트 용량이 필요합니다.",
+            "MAILCAPACITY_REQUIRED": "메일 용량이 필요합니다.",
+            "FAXCAPACITY_REQUIRED": "팩스 장치가 필요한",
+            "SMSCAPACITY_REQUIRED": "SMS 장치가 필요한",
+            "OPENCHANNELCAPACITY_REQUIRED": "열기 채널 용량이 필요합니다.",
+            "SIPEXPIRES_REQUIRED": "SIP 만료는 필수",
+            "SIPPORT_REQUIRED": "SIP 포트가 필요합니다",
+            "UNCONDITIONALNUMBER_REQUIRED": "무조건적인 번호가 필요합니다.",
+            "NOREPLYNUMBER_REQUIRED": "회신 번호 필요",
+            "BUSYNUMBER_REQUIRED": "분주한 번호가 필요합니다.",
+            "USERNAME_MUST_VALID_PATTERN": "사용자 이름이 올바르지 {{regex}} 합니다.",
+            "REMOTECONTROLPORT_REQUIRED": "원격 제어 포트 필요"
+        },
+        "ACCOUNT": "계정",
+        "VOICE": "음성",
+        "CREATED_AT": "생성",
+        "ROLE": "역할",
+        "PERSONAL_INFO": "개인 정보",
+        "DESCRIPTION": "설명",
+        "CHANGE_AVATAR": "아바타 변경",
+        "GENERAL": "일반",
+        "INTERNAL": "내부",
+        "TRANSPORT": "전송",
+        "ALLOWCODECS": "허용된 코덱",
+        "HELP": {
+            "ALLOWCODECS": "선호하는 허용된 코덱",
+            "TRANSPORT": "기본 전송 집합은. 주문 기본 전송 결정합니다.",
+            "HOST": "클라이언트 IP 또는 호스트 이름을 찾는 방법 전화 등록하려고 하려면 호스트 IP 대신 동적 키워드를 사용할 수 있습니다.",
+            "NAT": "방화벽이 클라이언트를 위한 별표 동작을 변경합니다. 쉼표로 구분된 옵션 '아니오', 별표 기타 설정 및 설정 NAT = No. 외면을 받게 된다.",
+            "SIPEXPIRES": "기본값: 160",
+            "SIPPORT": "기본값: 5060",
+            "TYPE": "별표 내에 SIP 역할을 결정합니다. 사용자:수신 피어: 인증하는 발신 통화 - 친구: 모두 위의 특징에 대해 설명합니다.",
+            "CHATCAPACITY": "0은 제한 없음을 의미합니다.",
+            "MAILCAPACITY": "0은 제한 없음을 의미합니다.",
+            "FAXCAPACITY": "0은 제한 없음을 의미합니다.",
+            "SMSCAPACITY": "0은 제한 없음을 의미합니다.",
+            "OPENCHANNELCAPACITY": "0은 제한 없음을 의미합니다.",
+            "CALLGROUP": "상담원의 callgroup 정의합니다",
+            "PICKUPGROUP": "상담원이 통화에 응답할 수 있는 그룹을 정의합니다"
+        },
+        "NEW_PASSWORD": "새 암호",
+        "CONFIRM_PASSWORD": "암호 확인",
+        "LOGININPAUSE": "Pause 로그인",
+        "HOST": "호스트",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "다른 채널",
+        "CHATCAPACITY": "채팅 용량",
+        "MAILCAPACITY": "메일 용량",
+        "FAXCAPACITY": "팩스 용량",
+        "SMSCAPACITY": "Sms 용량",
+        "OPENCHANNELCAPACITY": "채널 용량을",
+        "MOTIONBAR": "동작 도구 모음",
+        "SETTINGS": "설정",
+        "AUTOANSWER": "자동 응답",
+        "ENABLESETTINGS": "설정 사용",
+        "CALL_FORWARDING": "통화 착신 전환",
+        "UNCONDITIONAL": "무조건적인",
+        "UNCONDITIONALNUMBER": "무조건적인 번호",
+        "NOREPLY": "응답 없음",
+        "NOREPLYNUMBER": "회신 번호 없음",
+        "BUSY": "통화 중",
+        "BUSYNUMBER": "통화중 처리 통화 수",
+        "REMOTE_CONTROL": "원격 제어",
+        "REMOTECONTROL": "원격 제어",
+        "REMOTECONTROLPORT": "원격 제어 포트",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP 만료 [sec]",
+        "SIPPORT": "SIP 포트는",
+        "PENALTY": "페널티",
+        "ACCOUNTNAME": "계정 이름",
+        "ADD_TELEPHONE": "전화 추가",
+        "EDIT_TELEPHONE": "전화 편집",
+        "DELETE_TELEPHONE": "전화 삭제",
+        "TEAMS": "팀",
+        "DELETE_TEAM": "팀 삭제",
+        "AGENTADD_TEAM": "3타수 2안타 3타점으로 팀의 상담원에 추가",
+        "EDIT_TEAM": "팀 편집",
+        "TYPE": "유형",
+        "TELEPHONES": "전화기",
+        "CALLERID": "발신자 ID",
+        "ENABLERECORDING": "기록 활성화",
+        "STAFF": "직원",
+        "ID": "Id",
+        "NEW_USER": "새 사용자",
+        "NEW_AGENT": "새 상담원",
+        "NEW_TELEPHONE": "새 전화 번호로 전화 걸기",
+        "NEW_TEAM": "새로운 팀",
+        "ADD_TEAM": "팀 추가",
+        "JOIN_QUEUE": "참가 대기",
+        "CAPACITY": "용량",
+        "AUTOINTERNAL": "자동 내부 번호 생성",
+        "ADD_AGENT_TO_TEAM": "상담원 팀 추가",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "PERMISSIONS": "권한",
+        "ADD_AGENT_TO_QUEUE": "상담원 대기열에 추가",
+        "ALL_MODULES_AVAILABLE": "모든 사용 가능한 모듈",
+        "CALLGROUP": "전화 금지 그룹",
+        "PICKUPGROUP": "당겨받기 그룹",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "서시는 캠페인 상담원 추가",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "상담원에게 음성 대기열에 추가",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "상담원 채팅 대기열에 추가",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "상담원 메일 대기열에 추가",
+        "QUEUEADD_AGENT_SMS_INBOUND": "상담원에게 SMS 대기열에 추가",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "상담원에게 채널을 열어 대기열에 추가",
+        "QUEUEADD_AGENT_FAX_INBOUND": "상담원에게 팩스 대기열에 추가",
+        "QUEUEADD_USER_VOICE_INBOUND": "사용자 음성 대기열에 추가",
+        "QUEUEADD_USER_CHAT_INBOUND": "사용자가 채팅 대기열에 추가",
+        "QUEUEADD_USER_MAIL_INBOUND": "메일을 대기열에 추가",
+        "QUEUEADD_USER_SMS_INBOUND": "사용자가 SMS 대기열에 추가",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "사용자가 채널을 열어 대기열에 추가",
+        "QUEUEADD_USER_FAX_INBOUND": "사용자가 팩스 대기열에 추가",
+        "ALL_TEAMS": "모든 팀이",
+        "SELECTED_TEAMS": "선택한 팀에",
+        "SELECTED_AGENTS": "선택된 상담원",
+        "ALL_QUEUES_VOICE_OUTBOUND": "모든 대기열 캠페인",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "선택한 대기열 캠페인",
+        "ALL_QUEUES_VOICE_INBOUND": "음성으로 모든 대기열",
+        "SELECTED_QUEUES_VOICE_INBOUND": "선택한 음성 대기열에",
+        "ALL_QUEUES_CHAT_INBOUND": "모든 채팅 대기열에",
+        "SELECTED_QUEUES_CHAT_INBOUND": "선택된 채트 대기열",
+        "ALL_QUEUES_MAIL_INBOUND": "모든 메일 대기열",
+        "SELECTED_QUEUES_MAIL_INBOUND": "선택한 대기열을 메일",
+        "ALL_QUEUES_SMS_INBOUND": "모든 SMS 대기열",
+        "SELECTED_QUEUES_SMS_INBOUND": "선택한 SMS 대기열",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "모든 채널 대기열을 엽니다.",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "선택된 채널 대기열을 엽니다.",
+        "ALL_QUEUES_FAX_INBOUND": "모든 팩스 대기열",
+        "SELECTED_QUEUES_FAX_INBOUND": "선택한 팩스 대기열",
+        "VOICEMAIL": "음성 메일",
+        "CHANGE_PASSWORD": "암호 변경",
+        "CHANGEPASSWORD_AGENT": "암호 변경",
+        "CHANGEPASSWORD_USER": "암호 변경",
+        "CHANGEPASSWORD_TELEPHONE": "암호 변경",
+        "RINGINUSE": "사용 중인 링"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/nl.json b/public/app/main/apps/staff/i18n/nl.json
new file mode 100644 (file)
index 0000000..84b0a86
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "Gebruikers",
+        "AGENTS": "Agenten",
+        "TOGGLE_SIDENAV": "Toggle sidenav",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "BACK": "Terug",
+        "MULTI_SELECT_TOGGLE": "Multi wisselen selecteren",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "SELECTED": "Geselecteerd",
+        "DELETE_SELECTED": "Selectie verwijderen",
+        "EXPORT_SELECTED": "Exporteer de geselecteerde",
+        "ALL_USERS": "Alle gebruikers",
+        "ALL_AGENTS": "Alle gebruikers zijn agenten",
+        "SORT": "Sorteren",
+        "NAME": "Naam",
+        "FULLNAME": "Volledige naam",
+        "A_TO_Z": "A t/m Z)",
+        "Z_TO_A": "(Z tot A)",
+        "MORE": "Meer",
+        "DELETE_USER": "Gebruiker verwijderen",
+        "EDIT_USER": "Edit User (Gebruiker bewerken",
+        "DELETE_AGENT": "Agent verwijderen",
+        "EDIT_AGENT": "Edit Agent",
+        "DELETE": "Verwijderen",
+        "SAVE": "Opslaan",
+        "ADD_USER": "Gebruiker toevoegen",
+        "ADD_AGENT": "Voeg agent",
+        "NO_RESULTS": "Geen resultaten.",
+        "CLOSE_DIALOG": "Dialoogvenster sluiten",
+        "NAME_REQUIRED": "Naam (vereist)",
+        "USERNAME": "Gebruikersnaam",
+        "SHOW_ALL_FIELDS": "Toon alle velden",
+        "PHONE_NUMBER": "Telefoonnummer",
+        "EMAIL": "E-mail",
+        "PASSWORD": "Wachtwoord",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "De Fullname is vereist",
+            "USERNAME_REQUIRED": "De gebruikersnaam is vereist",
+            "EMAIL_REQUIRED": "Het e-mailadres is vereist",
+            "PASSWORD_REQUIRED": "Het wachtwoord is vereist",
+            "CONFIRM_NOT_MATCH": "De wachtwoorden komen niet overeen",
+            "EMAIL_MUST_VALID": "De e-mail moet worden geschreven in een geldige indeling",
+            "ACCOUNTNAME_REQUIRED": "Als u de accountnaam is vereist",
+            "NAME_REQUIRED": "De naam is verplicht",
+            "HOST_REQUIRED": "De host is vereist",
+            "CHATCAPACITY_REQUIRED": "De Chat capaciteit is vereist",
+            "MAILCAPACITY_REQUIRED": "De Mail capaciteit is vereist",
+            "FAXCAPACITY_REQUIRED": "De Fax capaciteit is vereist",
+            "SMSCAPACITY_REQUIRED": "De SMS-capaciteit is vereist",
+            "OPENCHANNELCAPACITY_REQUIRED": "Het open kanaal capaciteit is vereist",
+            "SIPEXPIRES_REQUIRED": "De SIP-expiratie is vereist",
+            "SIPPORT_REQUIRED": "De SIP-poort is vereist",
+            "UNCONDITIONALNUMBER_REQUIRED": "De onvoorwaardelijke-nummer is vereist",
+            "NOREPLYNUMBER_REQUIRED": "Het antwoord is vereist",
+            "BUSYNUMBER_REQUIRED": "Het drukke-nummer is vereist",
+            "USERNAME_MUST_VALID_PATTERN": "De Gebruikersnaam moet geldig {{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "De aansluiting voor afstandsbediening vereist"
+        },
+        "ACCOUNT": "Account",
+        "VOICE": "Spraak",
+        "CREATED_AT": "Gemaakt op",
+        "ROLE": "Rol",
+        "PERSONAL_INFO": "Persoonlijke info",
+        "DESCRIPTION": "Beschrijving",
+        "CHANGE_AVATAR": "Wijzig avatar",
+        "GENERAL": "Algemeen",
+        "INTERNAL": "Interne",
+        "TRANSPORT": "Vervoer",
+        "ALLOWCODECS": "Toegestaan codecs",
+        "HELP": {
+            "ALLOWCODECS": "Toegestaan codecs in volgorde van voorkeur",
+            "TRANSPORT": "Stel de standaard transporteert. De volgorde bepaalt de primaire standaard transport.",
+            "HOST": "Hoe vind ik de client - IP of hostnaam. Als u wilt dat de telefoon aan te melden, gebruik het trefwoord dynamische in plaats van Host IP.",
+            "NAT": "Verandert het gedrag van Asterisk voor cliënten achter een firewall.Indien een van de comma-separated opties is 'nee', sterretje negeert andere instellingen en stel nat=no.",
+            "SIPEXPIRES": "Standaard: 160",
+            "SIPPORT": "Standaard: 5060",
+            "TYPE": "Bepaalt de SIP-rol binnen asterisk. Gebruiker: gebruikt ter verificatie van binnenkomend - Peer: voor uitgaande gesprekken - vriend: zowel kenmerken van het bovenstaande.",
+            "CHATCAPACITY": "Nul betekent onbeperkt.",
+            "MAILCAPACITY": "Nul betekent onbeperkt.",
+            "FAXCAPACITY": "Nul betekent onbeperkt.",
+            "SMSCAPACITY": "Nul betekent onbeperkt.",
+            "OPENCHANNELCAPACITY": "Nul betekent onbeperkt.",
+            "CALLGROUP": "Definieert de agent callgroup",
+            "PICKUPGROUP": "Definieert de groepen waarin de agent kan oproepen beantwoorden"
+        },
+        "NEW_PASSWORD": "Nieuw wachtwoord",
+        "CONFIRM_PASSWORD": "Wachtwoord bevestigen",
+        "LOGININPAUSE": "Login In de pauzemodus",
+        "HOST": "Host",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "Andere kanalen",
+        "CHATCAPACITY": "Chat capaciteit",
+        "MAILCAPACITY": "Mail capaciteit",
+        "FAXCAPACITY": "Fax capaciteit",
+        "SMSCAPACITY": "Sms capaciteit",
+        "OPENCHANNELCAPACITY": "Open kanaal capaciteit",
+        "MOTIONBAR": "Motion Bar",
+        "SETTINGS": "Instellingen",
+        "AUTOANSWER": "Automatisch beantwoorden",
+        "ENABLESETTINGS": "Instellingen inschakelen",
+        "CALL_FORWARDING": "Gesprek doorschakelen",
+        "UNCONDITIONAL": "Onvoorwaardelijk",
+        "UNCONDITIONALNUMBER": "Onvoorwaardelijke nummer",
+        "NOREPLY": "Geen antwoord",
+        "NOREPLYNUMBER": "Geen antwoord nummer",
+        "BUSY": "Bezet",
+        "BUSYNUMBER": "Bezet",
+        "REMOTE_CONTROL": "Afstandsbediening",
+        "REMOTECONTROL": "Afstandsbediening",
+        "REMOTECONTROLPORT": "Aansluiting voor afstandsbediening",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP verloopt [sec]",
+        "SIPPORT": "SIP-poort",
+        "PENALTY": "Boete",
+        "ACCOUNTNAME": "Accountnaam",
+        "ADD_TELEPHONE": "Telefoon toevoegen",
+        "EDIT_TELEPHONE": "Telefoon bewerken",
+        "DELETE_TELEPHONE": "Telefoon verwijderen",
+        "TEAMS": "Teams",
+        "DELETE_TEAM": "Team verwijderen",
+        "AGENTADD_TEAM": "Voeg agenten team",
+        "EDIT_TEAM": "Edit Team",
+        "TYPE": "Type",
+        "TELEPHONES": "Telefoons",
+        "CALLERID": "Beller-ID",
+        "ENABLERECORDING": "Opnemen inschakelen",
+        "STAFF": "Personeel",
+        "ID": "Id",
+        "NEW_USER": "Nieuwe gebruiker",
+        "NEW_AGENT": "Nieuwe Agent",
+        "NEW_TELEPHONE": "Nieuwe telefoon",
+        "NEW_TEAM": "Nieuw Team",
+        "ADD_TEAM": "Voeg Team",
+        "JOIN_QUEUE": "Join wachtrij",
+        "CAPACITY": "Capaciteit",
+        "AUTOINTERNAL": "Automatisch genereren van intern nummer",
+        "ADD_AGENT_TO_TEAM": "Voeg agent team",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "PERMISSIONS": "Machtigingen",
+        "ADD_AGENT_TO_QUEUE": "Agent toevoegen aan een wachtrij",
+        "ALL_MODULES_AVAILABLE": "Alle modules beschikbaar",
+        "CALLGROUP": "Groepsgesprek",
+        "PICKUPGROUP": "Groepsgesprekken",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Agent toevoegen aan wachtrij campagnes",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Voeg Agent Voice wachtrijen",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Voeg Agent Chatwachtrijen",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Voeg Agent Mailwachtrijen",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Voeg Agent naar SMS-wachtrijen",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Voeg Agent Open kanaal wachtrijen",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Voeg Agent Faxwachtrijen",
+        "QUEUEADD_USER_VOICE_INBOUND": "Gebruiker toevoegen aan Voice-wachtrijen",
+        "QUEUEADD_USER_CHAT_INBOUND": "Gebruiker toevoegen aan Chatwachtrijen",
+        "QUEUEADD_USER_MAIL_INBOUND": "Gebruiker toevoegen aan Mailwachtrijen",
+        "QUEUEADD_USER_SMS_INBOUND": "Gebruiker toevoegen aan SMS-wachtrijen",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Gebruiker toevoegen aan Open-wachtrijen",
+        "QUEUEADD_USER_FAX_INBOUND": "Gebruiker toevoegen aan Faxwachtrijen",
+        "ALL_TEAMS": "Alle teams",
+        "SELECTED_TEAMS": "Geselecteerde teams",
+        "SELECTED_AGENTS": "Geselecteerde agenten",
+        "ALL_QUEUES_VOICE_OUTBOUND": "Alle Wachtrij campagnes",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Geselecteerde Wachtrij campagnes",
+        "ALL_QUEUES_VOICE_INBOUND": "Alle spraak wachtrijen",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Geselecteerde wachtrijen",
+        "ALL_QUEUES_CHAT_INBOUND": "Alle wachtrijen",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Geselecteerde Chatwachtrijen",
+        "ALL_QUEUES_MAIL_INBOUND": "Alle Mailwachtrijen",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Geselecteerde Mailwachtrijen",
+        "ALL_QUEUES_SMS_INBOUND": "Alle SMS-wachtrijen",
+        "SELECTED_QUEUES_SMS_INBOUND": "Geselecteerde SMS wachtrijen",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alle open kanaal wachtrijen",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Geselecteerde Open kanaal wachtrijen",
+        "ALL_QUEUES_FAX_INBOUND": "Alle Faxwachtrijen",
+        "SELECTED_QUEUES_FAX_INBOUND": "Geselecteerde Faxwachtrijen",
+        "VOICEMAIL": "Voicemail",
+        "CHANGE_PASSWORD": "Wachtwoord wijzigen",
+        "CHANGEPASSWORD_AGENT": "Wachtwoord wijzigen",
+        "CHANGEPASSWORD_USER": "Wachtwoord wijzigen",
+        "CHANGEPASSWORD_TELEPHONE": "Wachtwoord wijzigen",
+        "RINGINUSE": "Ring in gebruik"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/no.json b/public/app/main/apps/staff/i18n/no.json
new file mode 100644 (file)
index 0000000..e55387f
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "Brukere",
+        "AGENTS": "Agenter",
+        "TOGGLE_SIDENAV": "Veksle sidenav",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "BACK": "Tilbake",
+        "MULTI_SELECT_TOGGLE": "Multi velg veksle",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "SELECTED": "Valgt",
+        "DELETE_SELECTED": "Slette valgte",
+        "EXPORT_SELECTED": "Eksporter valgte",
+        "ALL_USERS": "Alle brukere",
+        "ALL_AGENTS": "Alle agenter",
+        "SORT": "Sortere",
+        "NAME": "Navn",
+        "FULLNAME": "Fullt navn",
+        "A_TO_Z": "(A til Z)",
+        "Z_TO_A": "(Z til A)",
+        "MORE": "Mer",
+        "DELETE_USER": "Slett bruker",
+        "EDIT_USER": "Redigere bruker",
+        "DELETE_AGENT": "Slette Agent",
+        "EDIT_AGENT": "Rediger Agent",
+        "DELETE": "Slette",
+        "SAVE": "Lagre",
+        "ADD_USER": "Legg til BRUKER",
+        "ADD_AGENT": "Legg til AGENT",
+        "NO_RESULTS": "Ingen resultater..",
+        "CLOSE_DIALOG": "Lukk dialogboksen",
+        "NAME_REQUIRED": "Navn (obligatorisk)",
+        "USERNAME": "Brukernavn",
+        "SHOW_ALL_FIELDS": "Vis alle felt",
+        "PHONE_NUMBER": "Telefonnummer",
+        "EMAIL": "E",
+        "PASSWORD": "Passord",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "Det Fullname er nødvendig",
+            "USERNAME_REQUIRED": "Brukernavnet er nødvendig",
+            "EMAIL_REQUIRED": "Det er nødvendig med e-post",
+            "PASSWORD_REQUIRED": "Passordet er nødvendig",
+            "CONFIRM_NOT_MATCH": "Passordene samsvarer ikke",
+            "EMAIL_MUST_VALID": "E må være skrevet i et gyldig format",
+            "ACCOUNTNAME_REQUIRED": "Kontonavnet er nødvendig",
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "HOST_REQUIRED": "Verten er nødvendig",
+            "CHATCAPACITY_REQUIRED": "Det Chat kapasitet er nødvendig",
+            "MAILCAPACITY_REQUIRED": "E-kapasitet er nødvendig",
+            "FAXCAPACITY_REQUIRED": "Det faks kapasitet er nødvendig",
+            "SMSCAPACITY_REQUIRED": "SMS-kapasitet er nødvendig",
+            "OPENCHANNELCAPACITY_REQUIRED": "Den åpne kanalen kapasitet er nødvendig",
+            "SIPEXPIRES_REQUIRED": "SIP utløpsdato er nødvendig",
+            "SIPPORT_REQUIRED": "SIP Port er nødvendig",
+            "UNCONDITIONALNUMBER_REQUIRED": "Det ubetinget nummer er obligatorisk",
+            "NOREPLYNUMBER_REQUIRED": "Det ingen svar nummer er obligatorisk",
+            "BUSYNUMBER_REQUIRED": "Det travle nummer er obligatorisk",
+            "USERNAME_MUST_VALID_PATTERN": "Brukernavnet må være gyldig {{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "Fjernkontrollen Port er nødvendig"
+        },
+        "ACCOUNT": "Konto",
+        "VOICE": "Stemme",
+        "CREATED_AT": "Opprettet i",
+        "ROLE": "Rolle",
+        "PERSONAL_INFO": "Personlig info.",
+        "DESCRIPTION": "Beskrivelse",
+        "CHANGE_AVATAR": "Endre avatar",
+        "GENERAL": "Generelt",
+        "INTERNAL": "Intern",
+        "TRANSPORT": "Transport",
+        "ALLOWCODECS": "Tillatt kodeker",
+        "HELP": {
+            "ALLOWCODECS": "Tillatt kodeker i prioritert rekkefølge",
+            "TRANSPORT": "Angi standard transporterer. Rekkefølgen bestemmer den primære standard transport.",
+            "HOST": "Hvordan finne klienten - IP eller vertsnavnet. Hvis du vil at telefonen skal registrere seg, bruk nøkkelord dynamisk i stedet for Host IP.",
+            "NAT": "Endrer oppførselen til stjerne for klienter bak en brannmur.Hvis noen av kommaseparert alternativer er 'Nei', stjerne vil ignorere andre innstillinger og sette nat=Nei.",
+            "SIPEXPIRES": "Standard: 160",
+            "SIPPORT": "Standard: 5060",
+            "TYPE": "Bestemmer SIP rolle innen stjerne. Bruker: brukes til å autentisere innkommende - Peer: for utgående anrop - venn: dekker både egenskapene til ovenfor.",
+            "CHATCAPACITY": "Null betyr ubegrenset.",
+            "MAILCAPACITY": "Null betyr ubegrenset.",
+            "FAXCAPACITY": "Null betyr ubegrenset.",
+            "SMSCAPACITY": "Null betyr ubegrenset.",
+            "OPENCHANNELCAPACITY": "Null betyr ubegrenset.",
+            "CALLGROUP": "Definerer agentens callgroup",
+            "PICKUPGROUP": "Definerer grupper der agent kan svare på anrop"
+        },
+        "NEW_PASSWORD": "Nytt passord",
+        "CONFIRM_PASSWORD": "Bekreft passord",
+        "LOGININPAUSE": "Pålogging i pause",
+        "HOST": "Vert",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "Andre kanaler",
+        "CHATCAPACITY": "Chat kapasitet",
+        "MAILCAPACITY": "Post kapasitet",
+        "FAXCAPACITY": "Faks kapasitet",
+        "SMSCAPACITY": "Sms-kapasitet",
+        "OPENCHANNELCAPACITY": "Åpen kanal kapasitet",
+        "MOTIONBAR": "Motion Bar",
+        "SETTINGS": "Innstillinger",
+        "AUTOANSWER": "Automatisk svar",
+        "ENABLESETTINGS": "Aktiverer innstillinger",
+        "CALL_FORWARDING": "Viderekobling av anrop",
+        "UNCONDITIONAL": "Ubetinget",
+        "UNCONDITIONALNUMBER": "Ubetinget nummer",
+        "NOREPLY": "Ingen svar",
+        "NOREPLYNUMBER": "Ingen svar nummer",
+        "BUSY": "Opptatt",
+        "BUSYNUMBER": "Opptatt nummer",
+        "REMOTE_CONTROL": "Fjernkontroll",
+        "REMOTECONTROL": "Fjernkontroll",
+        "REMOTECONTROLPORT": "Fjernkontroll-port",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP utløper [sek]",
+        "SIPPORT": "SIP port",
+        "PENALTY": "Penalty",
+        "ACCOUNTNAME": "Kontonavn",
+        "ADD_TELEPHONE": "Legg til telefon",
+        "EDIT_TELEPHONE": "Rediger telefonnummer",
+        "DELETE_TELEPHONE": "Slette telefon",
+        "TEAMS": "Lag",
+        "DELETE_TEAM": "Slett laget",
+        "AGENTADD_TEAM": "Legg til agenter til Team",
+        "EDIT_TEAM": "Rediger Team",
+        "TYPE": "Type",
+        "TELEPHONES": "Telefoner",
+        "CALLERID": "Innringer-ID",
+        "ENABLERECORDING": "Aktiverer opptak",
+        "STAFF": "Personale",
+        "ID": "Id",
+        "NEW_USER": "Ny bruker",
+        "NEW_AGENT": "Ny gass",
+        "NEW_TELEPHONE": "Ny telefon",
+        "NEW_TEAM": "Nytt lag",
+        "ADD_TEAM": "Legg til lag",
+        "JOIN_QUEUE": "Bli med i køen",
+        "CAPACITY": "Kapasitet",
+        "AUTOINTERNAL": "Auto-generer internt nummer",
+        "ADD_AGENT_TO_TEAM": "Legg til Agent til Team",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "PERMISSIONS": "Tillatelser",
+        "ADD_AGENT_TO_QUEUE": "Legg til Agent til kø",
+        "ALL_MODULES_AVAILABLE": "Alle moduler tilgjengelig",
+        "CALLGROUP": "Ring gruppe",
+        "PICKUPGROUP": "Pickup-gruppe",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Legg til Agent til kø-kampanjer",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Legg til Agent til Voice køer",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Legg til Agent til å prate køer",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Legg til Agent til post køer",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Legg til Agent til SMS-køer",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Legg til Agent for å åpne kanalen køer",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Legg til Agent til faks køer",
+        "QUEUEADD_USER_VOICE_INBOUND": "Legg brukeren til å stemme køer",
+        "QUEUEADD_USER_CHAT_INBOUND": "Legg brukeren til å prate køer",
+        "QUEUEADD_USER_MAIL_INBOUND": "Legg brukeren til post køer",
+        "QUEUEADD_USER_SMS_INBOUND": "Legg brukeren til SMS-køer",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Legg brukeren til å åpne kanalen køer",
+        "QUEUEADD_USER_FAX_INBOUND": "Legg brukeren til faks køer",
+        "ALL_TEAMS": "Alle grupper",
+        "SELECTED_TEAMS": "Valgte lag",
+        "SELECTED_AGENTS": "Valgt agenter",
+        "ALL_QUEUES_VOICE_OUTBOUND": "Alle kø kampanjer",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Valgte kø kampanjer",
+        "ALL_QUEUES_VOICE_INBOUND": "Alle Voice køer",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Valgt stemme køer",
+        "ALL_QUEUES_CHAT_INBOUND": "Alle Chat køer",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Valgt Chat køer",
+        "ALL_QUEUES_MAIL_INBOUND": "Alle post-køer",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Valgt post køer",
+        "ALL_QUEUES_SMS_INBOUND": "Alle SMS-køer",
+        "SELECTED_QUEUES_SMS_INBOUND": "Valgt SMS køer",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alle åpne kanal køer",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Valgt åpen kanal køer",
+        "ALL_QUEUES_FAX_INBOUND": "Alle faks køer",
+        "SELECTED_QUEUES_FAX_INBOUND": "Valgt faks køer",
+        "VOICEMAIL": "Talebeskjed",
+        "CHANGE_PASSWORD": "Endre passord",
+        "CHANGEPASSWORD_AGENT": "Endre passord",
+        "CHANGEPASSWORD_USER": "Endre passord",
+        "CHANGEPASSWORD_TELEPHONE": "Endre passord",
+        "RINGINUSE": "Ring i bruk"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/pt-PT.json b/public/app/main/apps/staff/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..a42d357
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "Os usuários",
+        "AGENTS": "Agentes",
+        "TOGGLE_SIDENAV": "Alternar sidenav",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "BACK": "De volta",
+        "MULTI_SELECT_TOGGLE": "Seleção múltipla alternar",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "SELECTED": "Selecionada",
+        "DELETE_SELECTED": "Excluir selecionados",
+        "EXPORT_SELECTED": "Exportação Selecionado",
+        "ALL_USERS": "Todos os usuários",
+        "ALL_AGENTS": "Todos os agentes",
+        "SORT": "Classificar",
+        "NAME": "Nome",
+        "FULLNAME": "Nome completo",
+        "A_TO_Z": "(A a Z)",
+        "Z_TO_A": "(Z a A)",
+        "MORE": "Mais",
+        "DELETE_USER": "Eliminar um utilizador",
+        "EDIT_USER": "Editar Usuário",
+        "DELETE_AGENT": "Excluir Agente",
+        "EDIT_AGENT": "Editar Agente",
+        "DELETE": "Excluir",
+        "SAVE": "Salvar",
+        "ADD_USER": "Adicionar usuário",
+        "ADD_AGENT": "Adicionar Agente",
+        "NO_RESULTS": "Sem resultados.",
+        "CLOSE_DIALOG": "Fechar caixa de diálogo",
+        "NAME_REQUIRED": "Nome (obrigatório)",
+        "USERNAME": "Nome de usuário",
+        "SHOW_ALL_FIELDS": "Mostrar Todos os Campos",
+        "PHONE_NUMBER": "Número de telefone",
+        "EMAIL": "Email",
+        "PASSWORD": "Senha",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "O Fullname é necessária",
+            "USERNAME_REQUIRED": "O nome de usuário é obrigatório",
+            "EMAIL_REQUIRED": "O Correio Electrónico é obrigatório",
+            "PASSWORD_REQUIRED": "A senha é obrigatória",
+            "CONFIRM_NOT_MATCH": "As senhas não coincidem",
+            "EMAIL_MUST_VALID": "O email deve ser escrito em um formato válido",
+            "ACCOUNTNAME_REQUIRED": "O nome da conta é necessária",
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "HOST_REQUIRED": "O Host é necessário",
+            "CHATCAPACITY_REQUIRED": "É necessária capacidade de Chat",
+            "MAILCAPACITY_REQUIRED": "O email é necessária capacidade",
+            "FAXCAPACITY_REQUIRED": "A capacidade de Fax é necessário",
+            "SMSCAPACITY_REQUIRED": "É necessária capacidade de SMS",
+            "OPENCHANNELCAPACITY_REQUIRED": "O Canal Aberto é necessária capacidade",
+            "SIPEXPIRES_REQUIRED": "O SIP é necessário de expiração",
+            "SIPPORT_REQUIRED": "A porta SIP é necessário",
+            "UNCONDITIONALNUMBER_REQUIRED": "É necessário o número de Incondicional",
+            "NOREPLYNUMBER_REQUIRED": "O número de resposta não é necessária",
+            "BUSYNUMBER_REQUIRED": "É necessário o Número Ocupado",
+            "USERNAME_MUST_VALID_PATTERN": "O nome de utilizador tem de ser válida {{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "Porta do controle remoto é necessário"
+        },
+        "ACCOUNT": "Conta",
+        "VOICE": "Voz",
+        "CREATED_AT": "Criado em",
+        "ROLE": "Papel",
+        "PERSONAL_INFO": "Informações pessoais",
+        "DESCRIPTION": "Descrição",
+        "CHANGE_AVATAR": "Alterar Avatar",
+        "GENERAL": "Geral",
+        "INTERNAL": "Interna",
+        "TRANSPORT": "Transporte",
+        "ALLOWCODECS": "Codecs permitidos",
+        "HELP": {
+            "ALLOWCODECS": "Codecs permitidos em ordem de preferência",
+            "TRANSPORT": "Defina o padrão de transportes. A ordem determina o transporte primário padrão.",
+            "HOST": "Como encontrar o cliente - O IP ou o nome do host. Se desejar que o telefone para se registrar, use a palavra-chave dinâmica em vez do host IP.",
+            "NAT": "Altera o comportamento do asterisco para clientes atrás de um firewall.Se qualquer uma das opções separadas por vírgula é \"não\", asterisco será ignorar quaisquer outras configurações e defina nat=n°",
+            "SIPEXPIRES": "Padrão: 160",
+            "SIPPORT": "Padrão: 5060",
+            "TYPE": "Determina o papel SIP dentro de asterisco. Usuário: usado para autenticar - Ponto de entrada: para chamadas de saída - amigo: abrange tanto as características do acima.",
+            "CHATCAPACITY": "Zero significa ilimitado.",
+            "MAILCAPACITY": "Zero significa ilimitado.",
+            "FAXCAPACITY": "Zero significa ilimitado.",
+            "SMSCAPACITY": "Zero significa ilimitado.",
+            "OPENCHANNELCAPACITY": "Zero significa ilimitado.",
+            "CALLGROUP": "Define o callgroup do agente",
+            "PICKUPGROUP": "Define os grupos nos quais o agente pode atender chamadas"
+        },
+        "NEW_PASSWORD": "Nova Senha",
+        "CONFIRM_PASSWORD": "Confirmar Senha",
+        "LOGININPAUSE": "Login em pausa",
+        "HOST": "Host",
+        "NAT": "A NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "Outros canais",
+        "CHATCAPACITY": "Capacidade de chat",
+        "MAILCAPACITY": "Capacidade de correio",
+        "FAXCAPACITY": "Capacidade de fax",
+        "SMSCAPACITY": "Capacidade de SMS",
+        "OPENCHANNELCAPACITY": "Capacidade de Canal aberto",
+        "MOTIONBAR": "Barra de movimento",
+        "SETTINGS": "Definições",
+        "AUTOANSWER": "Resposta automática",
+        "ENABLESETTINGS": "Ativar as configurações",
+        "CALL_FORWARDING": "Encaminhamento de chamadas",
+        "UNCONDITIONAL": "Incondicional",
+        "UNCONDITIONALNUMBER": "Número incondicional",
+        "NOREPLY": "Sem resposta",
+        "NOREPLYNUMBER": "Nenhum número de Resposta",
+        "BUSY": "Ocupado",
+        "BUSYNUMBER": "Número Ocupado",
+        "REMOTE_CONTROL": "Controle remoto",
+        "REMOTECONTROL": "Controle remoto",
+        "REMOTECONTROLPORT": "Porta de Controle Remoto",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP expira [sec]",
+        "SIPPORT": "Porta SIP",
+        "PENALTY": "Sanção",
+        "ACCOUNTNAME": "Nome da conta",
+        "ADD_TELEPHONE": "Adicionar telefone",
+        "EDIT_TELEPHONE": "Editar telefone",
+        "DELETE_TELEPHONE": "Excluir Telefone",
+        "TEAMS": "Equipes",
+        "DELETE_TEAM": "Equipe de excluir",
+        "AGENTADD_TEAM": "Adicionar agentes a equipe",
+        "EDIT_TEAM": "Editar equipe",
+        "TYPE": "Tipo",
+        "TELEPHONES": "Telefones",
+        "CALLERID": "ID do chamador",
+        "ENABLERECORDING": "Activar a gravação",
+        "STAFF": "Pessoal",
+        "ID": "Id",
+        "NEW_USER": "Novo Usuário",
+        "NEW_AGENT": "Novo Agente",
+        "NEW_TELEPHONE": "Novo Telefone",
+        "NEW_TEAM": "Nova equipe",
+        "ADD_TEAM": "Adicionar grupo",
+        "JOIN_QUEUE": "Ingressar em fila",
+        "CAPACITY": "Capacidade",
+        "AUTOINTERNAL": "Geração automática de número interno",
+        "ADD_AGENT_TO_TEAM": "Adicionar Agente para a equipe",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "PERMISSIONS": "Permissões",
+        "ADD_AGENT_TO_QUEUE": "Adicionar agente para fila de espera",
+        "ALL_MODULES_AVAILABLE": "Todos os módulos disponíveis",
+        "CALLGROUP": "Grupo de chamada",
+        "PICKUPGROUP": "Grupo de captura",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Adicionar agente para fila de campanhas",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Adicionar agente para filas de voz",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Adicionar agente para filas de bate-papo",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Adicionar agente para filas de correio",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Adicionar agente para filas de SMS",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Adicionar agente para filas de canal aberto",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Adicionar agente para filas de Fax",
+        "QUEUEADD_USER_VOICE_INBOUND": "Adicionar usuário à filas de voz",
+        "QUEUEADD_USER_CHAT_INBOUND": "Adicionar usuário para filas de bate-papo",
+        "QUEUEADD_USER_MAIL_INBOUND": "Adicionar usuário ao Mail filas",
+        "QUEUEADD_USER_SMS_INBOUND": "Adicionar usuário à filas de SMS",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Adicionar usuário ao Canal Aberto filas",
+        "QUEUEADD_USER_FAX_INBOUND": "Adicionar usuário à filas de Fax",
+        "ALL_TEAMS": "Todas as equipas",
+        "SELECTED_TEAMS": "Equipes selecionadas",
+        "SELECTED_AGENTS": "Agentes selecionados",
+        "ALL_QUEUES_VOICE_OUTBOUND": "Todas as campanhas de fila",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Campanhas de filas selecionado",
+        "ALL_QUEUES_VOICE_INBOUND": "Todas as filas de voz",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Filas de voz selecionado",
+        "ALL_QUEUES_CHAT_INBOUND": "Todas as filas de bate-papo",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Filas de chat selecionado",
+        "ALL_QUEUES_MAIL_INBOUND": "Todas as filas de correio",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Filas de correio seleccionado",
+        "ALL_QUEUES_SMS_INBOUND": "Todas as filas de SMS",
+        "SELECTED_QUEUES_SMS_INBOUND": "Filas de SMS selecionado",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "Todas as filas de canal aberto",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Filas de abrir o canal seleccionado",
+        "ALL_QUEUES_FAX_INBOUND": "Todas as filas de Fax",
+        "SELECTED_QUEUES_FAX_INBOUND": "Filas de fax selecionado",
+        "VOICEMAIL": "Correio de voz",
+        "CHANGE_PASSWORD": "Alterar a senha",
+        "CHANGEPASSWORD_AGENT": "Alterar a senha",
+        "CHANGEPASSWORD_USER": "Alterar a senha",
+        "CHANGEPASSWORD_TELEPHONE": "Alterar a senha",
+        "RINGINUSE": "Anel em uso"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/ru.json b/public/app/main/apps/staff/i18n/ru.json
new file mode 100644 (file)
index 0000000..c55445f
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "Пользователи",
+        "AGENTS": "Операторы",
+        "TOGGLE_SIDENAV": "Боковая панель навигации - переключения",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "BACK": "Назад",
+        "MULTI_SELECT_TOGGLE": "Выберите нескольких переключения",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "SELECTED": "Выбранные",
+        "DELETE_SELECTED": "Удалить выбранные",
+        "EXPORT_SELECTED": "Экспорт выбранных",
+        "ALL_USERS": "Все пользователи",
+        "ALL_AGENTS": "Все операторы",
+        "SORT": "Порядок сортировки",
+        "NAME": "Имя",
+        "FULLNAME": "Полное Имя",
+        "A_TO_Z": "(A-Z)",
+        "Z_TO_A": "(Z)",
+        "MORE": "Более",
+        "DELETE_USER": "Удалить пользователя",
+        "EDIT_USER": "Редактировать пользователя",
+        "DELETE_AGENT": "Удалить агента",
+        "EDIT_AGENT": "Редактирование оператора",
+        "DELETE": "Удалить",
+        "SAVE": "Сохранить",
+        "ADD_USER": "Добавить пользователя",
+        "ADD_AGENT": "Добавить оператора",
+        "NO_RESULTS": "Нет результатов.",
+        "CLOSE_DIALOG": "Закрыть диалоговое окно",
+        "NAME_REQUIRED": "Имя (обязательно)",
+        "USERNAME": "Имя пользователя",
+        "SHOW_ALL_FIELDS": "Показать все поля",
+        "PHONE_NUMBER": "Номер телефона",
+        "EMAIL": "Адрес электронной почты",
+        "PASSWORD": "Пароль",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "В Fullname не требуется",
+            "USERNAME_REQUIRED": "Имя пользователя не требуется",
+            "EMAIL_REQUIRED": "Адреса электронной почты не требуется",
+            "PASSWORD_REQUIRED": "Пароль не требуется",
+            "CONFIRM_NOT_MATCH": "Пароли не совпадают",
+            "EMAIL_MUST_VALID": "Адреса электронной почты должны быть записаны в действительный формат",
+            "ACCOUNTNAME_REQUIRED": "Имя учетной записи не требуется",
+            "NAME_REQUIRED": "Это имя требуется",
+            "HOST_REQUIRED": "Хост не требуется",
+            "CHATCAPACITY_REQUIRED": "Чат требуется в",
+            "MAILCAPACITY_REQUIRED": "По электронной почте требуется в",
+            "FAXCAPACITY_REQUIRED": "Факс требуется в",
+            "SMSCAPACITY_REQUIRED": "SMS требуется в",
+            "OPENCHANNELCAPACITY_REQUIRED": "Открытого канала требуется в",
+            "SIPEXPIRES_REQUIRED": "Протокол SIP истечения срока действия не требуется",
+            "SIPPORT_REQUIRED": "Протокол SIP порт не требуется",
+            "UNCONDITIONALNUMBER_REQUIRED": "Безоговорочное номер требуется",
+            "NOREPLYNUMBER_REQUIRED": "В ответ не требуется",
+            "BUSYNUMBER_REQUIRED": "Занят номер требуется",
+            "USERNAME_MUST_VALID_PATTERN": "Имя пользователя должно быть действительным {{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "Пульт дистанционного управления требуется порт"
+        },
+        "ACCOUNT": "Счета",
+        "VOICE": "Голосовой связи",
+        "CREATED_AT": "Созданные в",
+        "ROLE": "Роль",
+        "PERSONAL_INFO": "Личная информация",
+        "DESCRIPTION": "Описание",
+        "CHANGE_AVATAR": "Изменить аватар",
+        "GENERAL": "Генеральной",
+        "INTERNAL": "Внутренние",
+        "TRANSPORT": "Транспорта",
+        "ALLOWCODECS": "Разрешено кодеки",
+        "HELP": {
+            "ALLOWCODECS": "Разрешено кодеки в порядке предпочтения",
+            "TRANSPORT": "Установить значение по умолчанию для транспорта. Порядок определяет основной транспортом по умолчанию.",
+            "HOST": "Как найти клиента - IP или имя хоста. Если Вы хотите телефон для самого Регистра, используйте ключевое слово Dynamic вместо IP-адрес хоста.",
+            "NAT": "Изменяет поведение звездочка для клиентов за брандмауэром.Если любое из разделенных запятыми параметров 'Нет', звездочка будет игнорировать любые другие параметры и настройки NAT=no.",
+            "SIPEXPIRES": "По умолчанию: 160",
+            "SIPPORT": "По умолчанию: 5060",
+            "TYPE": "Определяет роль SIP в Asterisk. Пользователь: используется для проверки подлинности входящих - Одноранговые сети: для исходящих вызовов - друга: охватывает как характеристики выше.",
+            "CHATCAPACITY": "Ноль означает неограниченное количество.",
+            "MAILCAPACITY": "Ноль означает неограниченное количество.",
+            "FAXCAPACITY": "Ноль означает неограниченное количество.",
+            "SMSCAPACITY": "Ноль означает неограниченное количество.",
+            "OPENCHANNELCAPACITY": "Ноль означает неограниченное количество.",
+            "CALLGROUP": "Определяет оператора callgroup",
+            "PICKUPGROUP": "Определяет группы, в которой оператор может ответить на вызовы"
+        },
+        "NEW_PASSWORD": "Новый пароль",
+        "CONFIRM_PASSWORD": "Подтвердите пароль",
+        "LOGININPAUSE": "Введите логин и пароль в режиме паузы",
+        "HOST": "Принимающей",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "Другие каналы",
+        "CHATCAPACITY": "Чат потенциала",
+        "MAILCAPACITY": "Потенциала электронной почты",
+        "FAXCAPACITY": "Возможность работы с факсами",
+        "SMSCAPACITY": "Sms потенциала",
+        "OPENCHANNELCAPACITY": "Открыть канал потенциала",
+        "MOTIONBAR": "Бар движения",
+        "SETTINGS": "Настройки",
+        "AUTOANSWER": "Автоматический ответ",
+        "ENABLESETTINGS": "Включить настройки",
+        "CALL_FORWARDING": "Переадресация вызова",
+        "UNCONDITIONAL": "Безоговорочное",
+        "UNCONDITIONALNUMBER": "Безусловное номер",
+        "NOREPLY": "Нет ответа",
+        "NOREPLYNUMBER": "Ответ не число",
+        "BUSY": "Занят",
+        "BUSYNUMBER": "Занят",
+        "REMOTE_CONTROL": "Пульт дистанционного управления",
+        "REMOTECONTROL": "Пульт дистанционного управления",
+        "REMOTECONTROLPORT": "Пульт дистанционного управления порт",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP истекает [сек]",
+        "SIPPORT": "Порт SIP",
+        "PENALTY": "Смертная казнь",
+        "ACCOUNTNAME": "Имя учетной записи",
+        "ADD_TELEPHONE": "Добавить телефон",
+        "EDIT_TELEPHONE": "Редактировать телефон",
+        "DELETE_TELEPHONE": "Удаление телефона",
+        "TEAMS": "Групп",
+        "DELETE_TEAM": "Удалить группу",
+        "AGENTADD_TEAM": "Добавление операторов в группе",
+        "EDIT_TEAM": "Редактировать информацию о команде",
+        "TYPE": "Тип",
+        "TELEPHONES": "Телефоны",
+        "CALLERID": "Идентификатор вызывающего абонента",
+        "ENABLERECORDING": "Включить запись",
+        "STAFF": "Персонал",
+        "ID": "Id",
+        "NEW_USER": "Новый пользователь",
+        "NEW_AGENT": "Новый оператор",
+        "NEW_TELEPHONE": "Новый телефон",
+        "NEW_TEAM": "Новая группа",
+        "ADD_TEAM": "Добавить группу",
+        "JOIN_QUEUE": "Присоединиться к очереди",
+        "CAPACITY": "Емкость",
+        "AUTOINTERNAL": "Автоматическое создание внутренний номер",
+        "ADD_AGENT_TO_TEAM": "Добавить оператора в группу",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "PERMISSIONS": "Разрешения",
+        "ADD_AGENT_TO_QUEUE": "Добавить оператора в очереди",
+        "ALL_MODULES_AVAILABLE": "Все модули",
+        "CALLGROUP": "Вызов группы",
+        "PICKUPGROUP": "Группы перехвата вызова",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Добавить оператора в очереди кампаний",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Добавить оператора в очереди голосовой связи",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Добавить оператора в чат очередей",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Добавить оператора в очереди сообщений электронной почты",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Добавить оператора в очереди сообщений SMS",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Добавить оператора в открытый канал очередей",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Добавить оператора в очереди факса",
+        "QUEUEADD_USER_VOICE_INBOUND": "Добавить пользователя в очереди голосовой связи",
+        "QUEUEADD_USER_CHAT_INBOUND": "Добавить пользователя в чат очередей",
+        "QUEUEADD_USER_MAIL_INBOUND": "Добавить пользователя в очереди сообщений электронной почты",
+        "QUEUEADD_USER_SMS_INBOUND": "Добавить пользователя в очереди сообщений SMS",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Добавить пользователя открыть канал очередей",
+        "QUEUEADD_USER_FAX_INBOUND": "Добавить пользователя в очереди факса",
+        "ALL_TEAMS": "Все группы",
+        "SELECTED_TEAMS": "Выбранные группы",
+        "SELECTED_AGENTS": "Выбранные операторы",
+        "ALL_QUEUES_VOICE_OUTBOUND": "Все очереди кампаний",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Выбранные очереди кампаний",
+        "ALL_QUEUES_VOICE_INBOUND": "Все голосовые очередей",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Выбранный голос очередей",
+        "ALL_QUEUES_CHAT_INBOUND": "Все очереди чата",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Выбранный чат очередей",
+        "ALL_QUEUES_MAIL_INBOUND": "Все очереди сообщений электронной почты",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Выбранные очереди сообщений электронной почты",
+        "ALL_QUEUES_SMS_INBOUND": "Все очереди сообщений SMS",
+        "SELECTED_QUEUES_SMS_INBOUND": "Выбранные очереди сообщений SMS",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "Все открытые канал очередей",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Выбранные открытый канал очередей",
+        "ALL_QUEUES_FAX_INBOUND": "Все очереди факса",
+        "SELECTED_QUEUES_FAX_INBOUND": "Выбранный факс очередей",
+        "VOICEMAIL": "Голосовая почта",
+        "CHANGE_PASSWORD": "Изменить пароль",
+        "CHANGEPASSWORD_AGENT": "Изменить пароль",
+        "CHANGEPASSWORD_USER": "Изменить пароль",
+        "CHANGEPASSWORD_TELEPHONE": "Изменить пароль",
+        "RINGINUSE": "Кольцо в использовании"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/sv.json b/public/app/main/apps/staff/i18n/sv.json
new file mode 100644 (file)
index 0000000..eb423e7
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "Användare",
+        "AGENTS": "Agenter",
+        "TOGGLE_SIDENAV": "Växla sidenav",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "BACK": "Tillbaka",
+        "MULTI_SELECT_TOGGLE": "Multi välj växla",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "SELECTED": "Vald",
+        "DELETE_SELECTED": "Ta bort markerade",
+        "EXPORT_SELECTED": "Exportera valda",
+        "ALL_USERS": "Alla användare",
+        "ALL_AGENTS": "Alla agenter",
+        "SORT": "Sortera",
+        "NAME": "Namn",
+        "FULLNAME": "Fullständigt namn",
+        "A_TO_Z": "(A till Z)",
+        "Z_TO_A": "(Ö till A)",
+        "MORE": "Mer",
+        "DELETE_USER": "Ta bort användare",
+        "EDIT_USER": "Redigera användare",
+        "DELETE_AGENT": "Ta bort agenten",
+        "EDIT_AGENT": "Redigera Agent",
+        "DELETE": "Ta bort",
+        "SAVE": "Spara",
+        "ADD_USER": "Lägg till användare",
+        "ADD_AGENT": "Lägg till agent",
+        "NO_RESULTS": "Inga resultat.",
+        "CLOSE_DIALOG": "Stäng dialogrutan",
+        "NAME_REQUIRED": "Namn (obligatoriskt)",
+        "USERNAME": "Användarnamn",
+        "SHOW_ALL_FIELDS": "Visa alla fält",
+        "PHONE_NUMBER": "Telefonnummer",
+        "EMAIL": "Email",
+        "PASSWORD": "Lösenord",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "Det Fullname krävs",
+            "USERNAME_REQUIRED": "Användarnamn krävs",
+            "EMAIL_REQUIRED": "E-post är obligatoriskt",
+            "PASSWORD_REQUIRED": "Lösenord krävs",
+            "CONFIRM_NOT_MATCH": "Lösenorden stämmer inte överens",
+            "EMAIL_MUST_VALID": "E måste vara skriven på ett giltigt format",
+            "ACCOUNTNAME_REQUIRED": "Kontonamnet är obligatoriskt",
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "HOST_REQUIRED": "Värd är obligatoriskt",
+            "CHATCAPACITY_REQUIRED": "Chatten kapacitet krävs",
+            "MAILCAPACITY_REQUIRED": "Mail kapacitet krävs",
+            "FAXCAPACITY_REQUIRED": "Fax kapacitet krävs",
+            "SMSCAPACITY_REQUIRED": "SMS-kapacitet krävs",
+            "OPENCHANNELCAPACITY_REQUIRED": "Den öppna kanalen kapacitet krävs",
+            "SIPEXPIRES_REQUIRED": "SIP utandning krävs",
+            "SIPPORT_REQUIRED": "SIP-port krävs",
+            "UNCONDITIONALNUMBER_REQUIRED": "Det ovillkorliga krävs",
+            "NOREPLYNUMBER_REQUIRED": "Inga svar krävs",
+            "BUSYNUMBER_REQUIRED": "Det upptagna numret krävs",
+            "USERNAME_MUST_VALID_PATTERN": "Användarnamnet måste vara giltig {{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "Fjärrkontrollen Port krävs"
+        },
+        "ACCOUNT": "Konto",
+        "VOICE": "Röst",
+        "CREATED_AT": "Skapad",
+        "ROLE": "Roll",
+        "PERSONAL_INFO": "Personlig Info",
+        "DESCRIPTION": "Beskrivning",
+        "CHANGE_AVATAR": "Ändra Avatar",
+        "GENERAL": "Allmänt",
+        "INTERNAL": "Intern",
+        "TRANSPORT": "Transport",
+        "ALLOWCODECS": "Tillåtna codecs",
+        "HELP": {
+            "ALLOWCODECS": "Tillåtna Codecs i prioritetsordning",
+            "TRANSPORT": "Ställ in standard transporter. Avgör det primära förvalda transporter.",
+            "HOST": "Hur klienten - IP eller värdnamn. Om du vill att telefonen ska registrera sig, använda nyckelordet dynamisk istället för Host IP.",
+            "NAT": "Förändringar i beteendet hos Asterisk för beställare bakom en firewall.Om någon av komma-avskilde alternativ är \"nej\", Asterisk kommer att ignorera alla andra inställningar och ställa in nat=no.",
+            "SIPEXPIRES": "Standard: 160",
+            "SIPPORT": "Standard: 5060",
+            "TYPE": "Bestämmer SIP roll inom asterisk. Användare: används för att autentisera inkommande - Kisa: för utgående samtal - vän: omfattar både egenskaper hos ovan.",
+            "CHATCAPACITY": "Noll betyder obegränsade.",
+            "MAILCAPACITY": "Noll betyder obegränsade.",
+            "FAXCAPACITY": "Noll betyder obegränsade.",
+            "SMSCAPACITY": "Noll betyder obegränsade.",
+            "OPENCHANNELCAPACITY": "Noll betyder obegränsade.",
+            "CALLGROUP": "Anger agentens callgroup",
+            "PICKUPGROUP": "Definierar grupper där agenten kan besvara samtal"
+        },
+        "NEW_PASSWORD": "Nytt lösenord",
+        "CONFIRM_PASSWORD": "Bekräfta lösenord",
+        "LOGININPAUSE": "Logga in i paus",
+        "HOST": "Värd",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "Andra kanaler",
+        "CHATCAPACITY": "Pratstund kapacitet",
+        "MAILCAPACITY": "Post kapacitet",
+        "FAXCAPACITY": "Fax kapacitet",
+        "SMSCAPACITY": "Sms-kapacitet",
+        "OPENCHANNELCAPACITY": "Öppna kanalen kapacitet",
+        "MOTIONBAR": "Motion Bar",
+        "SETTINGS": "Inställningar",
+        "AUTOANSWER": "Automatiskt svar",
+        "ENABLESETTINGS": "Aktivera inställningar",
+        "CALL_FORWARDING": "Vidarekoppling av samtal",
+        "UNCONDITIONAL": "Ovillkorlig",
+        "UNCONDITIONALNUMBER": "Ovillkorlig nummer",
+        "NOREPLY": "Inget svar",
+        "NOREPLYNUMBER": "Inget svar Antal",
+        "BUSY": "Upptagen",
+        "BUSYNUMBER": "Upptaget nummer",
+        "REMOTE_CONTROL": "Fjärrkontroll",
+        "REMOTECONTROL": "Fjärrkontroll",
+        "REMOTECONTROLPORT": "Fjärrkontroll",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP upphör [sek]",
+        "SIPPORT": "SIP-port",
+        "PENALTY": "Dödsstraff",
+        "ACCOUNTNAME": "Kontonamn",
+        "ADD_TELEPHONE": "Lägg till telefon",
+        "EDIT_TELEPHONE": "Ändra telefon",
+        "DELETE_TELEPHONE": "Ta bort telefon",
+        "TEAMS": "Team",
+        "DELETE_TEAM": "Ta bort grupp",
+        "AGENTADD_TEAM": "Lägg till agenter till Team",
+        "EDIT_TEAM": "Redigera grupp",
+        "TYPE": "Typ",
+        "TELEPHONES": "Telefoner",
+        "CALLERID": "Nummerpresentation",
+        "ENABLERECORDING": "Aktivera inspelningen",
+        "STAFF": "Personal",
+        "ID": "Id",
+        "NEW_USER": "Ny användare",
+        "NEW_AGENT": "Ny Agent",
+        "NEW_TELEPHONE": "Nytt telefonnummer",
+        "NEW_TEAM": "Nya Team",
+        "ADD_TEAM": "Lägg till grupp",
+        "JOIN_QUEUE": "Förena kö",
+        "CAPACITY": "Kapacitet",
+        "AUTOINTERNAL": "Automatiskt generera internt nummer",
+        "ADD_AGENT_TO_TEAM": "Lägg till Agent Team",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "PERMISSIONS": "Behörigheter",
+        "ADD_AGENT_TO_QUEUE": "Lägg medlet till kö",
+        "ALL_MODULES_AVAILABLE": "Alla moduler är tillgängliga",
+        "CALLGROUP": "Gruppsamtal",
+        "PICKUPGROUP": "Gruppsamtal",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Lägg medlet till kö kampanjer",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Lägg medlet på röst köer",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Lägg medlet att chatta köer",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Lägg till Agent post köer",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Lägg medlet på SMS köer",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Lägg till agent för att öppna kanalen köer",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Lägg medlet till Fax köer",
+        "QUEUEADD_USER_VOICE_INBOUND": "Lägg till användare till Voice köer",
+        "QUEUEADD_USER_CHAT_INBOUND": "Lägg till användare i chatten köer",
+        "QUEUEADD_USER_MAIL_INBOUND": "Lägg till användare till post köer",
+        "QUEUEADD_USER_SMS_INBOUND": "Lägg till användare till SMS-köer",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Lägg till användare att öppna kanalen köer",
+        "QUEUEADD_USER_FAX_INBOUND": "Lägg till användare till Fax köer",
+        "ALL_TEAMS": "Alla grupper",
+        "SELECTED_TEAMS": "Valda grupper",
+        "SELECTED_AGENTS": "Valda agenter",
+        "ALL_QUEUES_VOICE_OUTBOUND": "Alla kön kampanjer",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Valda kön kampanjer",
+        "ALL_QUEUES_VOICE_INBOUND": "Alla röstmeddelanden köer",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Valda rösten köer",
+        "ALL_QUEUES_CHAT_INBOUND": "All chat köer",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Valda Chat köer",
+        "ALL_QUEUES_MAIL_INBOUND": "Alla post köer",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Vald post köer",
+        "ALL_QUEUES_SMS_INBOUND": "Alla SMS-köer",
+        "SELECTED_QUEUES_SMS_INBOUND": "Valt SMS-köer",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "Alla öppna kanalen köer",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Valda öppna kanalen köer",
+        "ALL_QUEUES_FAX_INBOUND": "Alla fax köer",
+        "SELECTED_QUEUES_FAX_INBOUND": "Faxvisare köer",
+        "VOICEMAIL": "Röstmeddelande",
+        "CHANGE_PASSWORD": "Ändra lösenord",
+        "CHANGEPASSWORD_AGENT": "Ändra lösenord",
+        "CHANGEPASSWORD_USER": "Ändra lösenord",
+        "CHANGEPASSWORD_TELEPHONE": "Ändra lösenord",
+        "RINGINUSE": "Ring i användning"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/tr.json b/public/app/main/apps/staff/i18n/tr.json
new file mode 100644 (file)
index 0000000..7284551
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "Kullanıcılar",
+        "AGENTS": "Ajanlar",
+        "TOGGLE_SIDENAV": "Geçiş sidenav",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "BACK": "Geri",
+        "MULTI_SELECT_TOGGLE": "Çoklu seçim geçiş",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "SELECTED": "Seçilen",
+        "DELETE_SELECTED": "Seçilen",
+        "EXPORT_SELECTED": "Seçilen ver",
+        "ALL_USERS": "Tüm kullanıcılar",
+        "ALL_AGENTS": "Tüm temsilciler",
+        "SORT": "Sıralama",
+        "NAME": "Adı",
+        "FULLNAME": "Tam Adı",
+        "A_TO_Z": "(A - Z)",
+        "Z_TO_A": "(Z-A).",
+        "MORE": "Daha fazla",
+        "DELETE_USER": "Kullanıcıyı Sil",
+        "EDIT_USER": "Kullanıcı Düzenle",
+        "DELETE_AGENT": "Temsilci silin",
+        "EDIT_AGENT": "Edit Agent",
+        "DELETE": "Sil",
+        "SAVE": "Kaydet",
+        "ADD_USER": "Kullanıcı EKLE",
+        "ADD_AGENT": "ADD AJANS",
+        "NO_RESULTS": "Sonuç yok..",
+        "CLOSE_DIALOG": "Yakın iletişim",
+        "NAME_REQUIRED": "Adı (gerekli)",
+        "USERNAME": "Kullanıcı Adı",
+        "SHOW_ALL_FIELDS": "Tüm Alanlar",
+        "PHONE_NUMBER": "Telefon numarası",
+        "EMAIL": "E-Posta",
+        "PASSWORD": "Parola",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "Ve Fullname gerekiyor.",
+            "USERNAME_REQUIRED": "Kullanıcı Adı gerekiyor",
+            "EMAIL_REQUIRED": "E-posta gerekli",
+            "PASSWORD_REQUIRED": "Parola gerekli",
+            "CONFIRM_NOT_MATCH": "Parolalar aynı değil",
+            "EMAIL_MUST_VALID": "E-posta mutlaka yazılı geçerli bir format",
+            "ACCOUNTNAME_REQUIRED": "Hesap Adı gerekiyor.",
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "HOST_REQUIRED": "Ana gerekiyor.",
+            "CHATCAPACITY_REQUIRED": "Sohbet kapasite gerekiyor.",
+            "MAILCAPACITY_REQUIRED": "Posta Kapasitesi",
+            "FAXCAPACITY_REQUIRED": "Faks kapasite gerekiyor.",
+            "SMSCAPACITY_REQUIRED": "SMS Kapasitesi",
+            "OPENCHANNELCAPACITY_REQUIRED": "Açık Kanal Kapasitesi",
+            "SIPEXPIRES_REQUIRED": "SIP süre gerekiyor.",
+            "SIPPORT_REQUIRED": "SIP Port gerekiyor.",
+            "UNCONDITIONALNUMBER_REQUIRED": "Ve Koşulsuz Numarası gereklidir",
+            "NOREPLYNUMBER_REQUIRED": "Hiçbir Yanıt Numarası gereklidir",
+            "BUSYNUMBER_REQUIRED": "Meşgul Numarası gereklidir",
+            "USERNAME_MUST_VALID_PATTERN": "Kullanıcı Adı geçerli olmalıdır {{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "Uzaktan Kumanda Bağlantı Noktası gereklidir"
+        },
+        "ACCOUNT": "Hesap",
+        "VOICE": "Ses",
+        "CREATED_AT": "Oluşturulmuş",
+        "ROLE": "Görevi",
+        "PERSONAL_INFO": "Kişisel Bilgiler",
+        "DESCRIPTION": "Açıklama",
+        "CHANGE_AVATAR": "Avatar değiştirin",
+        "GENERAL": "Genel",
+        "INTERNAL": "Dahili",
+        "TRANSPORT": "Taşıma",
+        "ALLOWCODECS": "Izin verilen Codec",
+        "HELP": {
+            "ALLOWCODECS": "Izin verilen Codec, tercihi",
+            "TRANSPORT": "Varsayılan geciktirir. Sipariş belirler, birincil varsayılan taşıma.",
+            "HOST": "Nasıl istemci - IP veya ana bilgisayar adı. Istiyorsanız, telefon kendini, dinamik anahtar yerine, Ana IP.",
+            "NAT": "Değişiklikler, davranış, Yıldız istemciler için bir güvenlik duvarının arkasında.Herhangi bir virgülle ayrılmış seçenekleri 'hayır', Yıldız yok diğer ayarları ve nat=no.",
+            "SIPEXPIRES": "Varsayılan: 160",
+            "SIPPORT": "Varsayılan: 5060",
+            "TYPE": "Belirler, SIP içinde yıldız. Kullanıcı: kimliğini doğrulamak için kullanılan gelen - Eşler: aramaları - Arkadaş: kapakları hem özellikleri.",
+            "CHATCAPACITY": "Sıfır anlamına gelir sınırsız.",
+            "MAILCAPACITY": "Sıfır anlamına gelir sınırsız.",
+            "FAXCAPACITY": "Sıfır anlamına gelir sınırsız.",
+            "SMSCAPACITY": "Sıfır anlamına gelir sınırsız.",
+            "OPENCHANNELCAPACITY": "Sıfır anlamına gelir sınırsız.",
+            "CALLGROUP": "Tanımlar temsilcinin callgroup",
+            "PICKUPGROUP": "Tanımlar, gruplar, ajan aramaları yanıtlama"
+        },
+        "NEW_PASSWORD": "Yeni Parola",
+        "CONFIRM_PASSWORD": "Parolayı Onayla",
+        "LOGININPAUSE": "Oturum Açma Duraklatma",
+        "HOST": "Ana",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "Diğer Kanallar",
+        "CHATCAPACITY": "Sohbet Kapasitesi",
+        "MAILCAPACITY": "Posta Kapasitesi",
+        "FAXCAPACITY": "Fax Kapasite",
+        "SMSCAPACITY": "Sms Kapasitesi",
+        "OPENCHANNELCAPACITY": "Açık Kanal Kapasitesi",
+        "MOTIONBAR": "Hareket Çubuğu",
+        "SETTINGS": "Ayarlar",
+        "AUTOANSWER": "Otomatik Yanıt",
+        "ENABLESETTINGS": "Ayarları etkinleştirmek",
+        "CALL_FORWARDING": "Çağrı iletme",
+        "UNCONDITIONAL": "Koşulsuz",
+        "UNCONDITIONALNUMBER": "Koşulsuz Numarası",
+        "NOREPLY": "Cevap yok.",
+        "NOREPLYNUMBER": "Yanıt Numarası",
+        "BUSY": "Meşgul",
+        "BUSYNUMBER": "Meşgul Numarası",
+        "REMOTE_CONTROL": "Uzaktan Kumanda",
+        "REMOTECONTROL": "Uzaktan Kumanda",
+        "REMOTECONTROLPORT": "Uzaktan kumanda çıkışı",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP Geçerlilik Süresi [sn]",
+        "SIPPORT": "SIP Port",
+        "PENALTY": "Cezasının",
+        "ACCOUNTNAME": "Hesap Adı",
+        "ADD_TELEPHONE": "Telefon Ekle",
+        "EDIT_TELEPHONE": "Edit Telefon",
+        "DELETE_TELEPHONE": "Delete Telefon",
+        "TEAMS": "Takımlar",
+        "DELETE_TEAM": "Delete Team",
+        "AGENTADD_TEAM": "Add Temsilcilerinin Team",
+        "EDIT_TEAM": "Düzenleme Ekibi",
+        "TYPE": "Tipi",
+        "TELEPHONES": "Telefonlar",
+        "CALLERID": "Arayan kimliği",
+        "ENABLERECORDING": "Etkinleştirme Kayıt",
+        "STAFF": "Personel",
+        "ID": "Id",
+        "NEW_USER": "Yeni Kullanıcı",
+        "NEW_AGENT": "Yeni Ajan",
+        "NEW_TELEPHONE": "Yeni Telefon",
+        "NEW_TEAM": "Yeni Ekip",
+        "ADD_TEAM": "Add Team",
+        "JOIN_QUEUE": "Katılma Sırası",
+        "CAPACITY": "Kapasite",
+        "AUTOINTERNAL": "Otomatik üret dahili numarası",
+        "ADD_AGENT_TO_TEAM": "Add Temsilci Ekibi",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "PERMISSIONS": "Izinler",
+        "ADD_AGENT_TO_QUEUE": "Add Ajans Kuyruk",
+        "ALL_MODULES_AVAILABLE": "Tüm modülü bulunmaktadır.",
+        "CALLGROUP": "Çağrı Grup",
+        "PICKUPGROUP": "Toplayıcı Grup",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "Add Ajans Kuyruk Kampanyaları",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "Add Ajans Sesli Kuyrukları",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "Add Ajans Sohbet Kuyrukları",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "Add Ajans Posta Kuyrukları",
+        "QUEUEADD_AGENT_SMS_INBOUND": "Add Ajans SMS Kuyrukları",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "Add Agent Açık Kanal Kuyrukları",
+        "QUEUEADD_AGENT_FAX_INBOUND": "Add Ajans Faks Kuyrukları",
+        "QUEUEADD_USER_VOICE_INBOUND": "Kullanıcı Ekle Sesli Kuyrukları",
+        "QUEUEADD_USER_CHAT_INBOUND": "Kullanıcı Ekle Sohbet Kuyrukları",
+        "QUEUEADD_USER_MAIL_INBOUND": "Kullanıcı Ekle Posta Kuyrukları",
+        "QUEUEADD_USER_SMS_INBOUND": "Kullanıcı ekle SMS Kuyrukları",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Kullanıcı Ekle Açık Kanal Kuyrukları",
+        "QUEUEADD_USER_FAX_INBOUND": "Kullanıcı Ekle Faks Kuyrukları",
+        "ALL_TEAMS": "Tüm takımlar",
+        "SELECTED_TEAMS": "Seçilen Ekipleri",
+        "SELECTED_AGENTS": "Seçilen maddeler",
+        "ALL_QUEUES_VOICE_OUTBOUND": "Sırada tüm Kampanyalar",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "Seçilen Kuyruk Kampanyaları",
+        "ALL_QUEUES_VOICE_INBOUND": "Tüm Ses Kuyrukları",
+        "SELECTED_QUEUES_VOICE_INBOUND": "Seçilen Ses Kuyrukları",
+        "ALL_QUEUES_CHAT_INBOUND": "Tüm Sohbet Kuyrukları",
+        "SELECTED_QUEUES_CHAT_INBOUND": "Seçilen Sohbet Kuyrukları",
+        "ALL_QUEUES_MAIL_INBOUND": "Tüm Posta Kuyrukları",
+        "SELECTED_QUEUES_MAIL_INBOUND": "Seçilen Posta Kuyrukları",
+        "ALL_QUEUES_SMS_INBOUND": "Tüm SMS Kuyrukları",
+        "SELECTED_QUEUES_SMS_INBOUND": "Seçilen SMS Kuyrukları",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "Tüm Açık Kanal Kuyrukları",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "Seçilen Açık Kanal Kuyrukları",
+        "ALL_QUEUES_FAX_INBOUND": "Tüm Faks Kuyrukları",
+        "SELECTED_QUEUES_FAX_INBOUND": "Seçilen Faks Kuyrukları",
+        "VOICEMAIL": "Sesli Posta",
+        "CHANGE_PASSWORD": "Parola Değiştir",
+        "CHANGEPASSWORD_AGENT": "Parola Değiştir",
+        "CHANGEPASSWORD_USER": "Parola Değiştir",
+        "CHANGEPASSWORD_TELEPHONE": "Parola Değiştir",
+        "RINGINUSE": "Halka."
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/zh-CN.json b/public/app/main/apps/staff/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..4a7faae
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "用户",
+        "AGENTS": "座席",
+        "TOGGLE_SIDENAV": "切换 sidenav",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "BACK": "返回",
+        "MULTI_SELECT_TOGGLE": "多选择切换。",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "SELECTED": "选中的",
+        "DELETE_SELECTED": "删除选定项",
+        "EXPORT_SELECTED": "导出选定项",
+        "ALL_USERS": "所有用户",
+        "ALL_AGENTS": "所有座席",
+        "SORT": "排序",
+        "NAME": "名称",
+        "FULLNAME": "全名。",
+        "A_TO_Z": "(A 至 Z)",
+        "Z_TO_A": "(Z 到 A)",
+        "MORE": "更多",
+        "DELETE_USER": "删除用户",
+        "EDIT_USER": "编辑用户",
+        "DELETE_AGENT": "删除业务代表",
+        "EDIT_AGENT": "编辑座席",
+        "DELETE": "删除",
+        "SAVE": "保存",
+        "ADD_USER": "添加用户",
+        "ADD_AGENT": "添加代理",
+        "NO_RESULTS": "没有任何的结果。",
+        "CLOSE_DIALOG": "关闭对话框",
+        "NAME_REQUIRED": "名称(必需)",
+        "USERNAME": "用户名",
+        "SHOW_ALL_FIELDS": "显示所有字段",
+        "PHONE_NUMBER": "电话号码",
+        "EMAIL": "电子邮件",
+        "PASSWORD": "密码",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "的全称是必需的",
+            "USERNAME_REQUIRED": "用户名是必需的",
+            "EMAIL_REQUIRED": "“电子邮件是必填的",
+            "PASSWORD_REQUIRED": "密码是必需的",
+            "CONFIRM_NOT_MATCH": "密码不匹配",
+            "EMAIL_MUST_VALID": "电子邮件必须有书面的格式无效",
+            "ACCOUNTNAME_REQUIRED": "该帐户的名称是必需的",
+            "NAME_REQUIRED": "该名称是必需的",
+            "HOST_REQUIRED": "主机是必需的",
+            "CHATCAPACITY_REQUIRED": "“文本交谈” 的能力是必需的",
+            "MAILCAPACITY_REQUIRED": "邮件的能力是必需的",
+            "FAXCAPACITY_REQUIRED": "传真的能力是必需的",
+            "SMSCAPACITY_REQUIRED": "SMS 的能力是必需的",
+            "OPENCHANNELCAPACITY_REQUIRED": "打开的通道能力是必需的",
+            "SIPEXPIRES_REQUIRED": "SIP 的到期日为必填项",
+            "SIPPORT_REQUIRED": "SIP 端口是必需的",
+            "UNCONDITIONALNUMBER_REQUIRED": "无条件的编号是必需的",
+            "NOREPLYNUMBER_REQUIRED": "在没有答覆编号是必需的",
+            "BUSYNUMBER_REQUIRED": "繁忙的编号是必需的",
+            "USERNAME_MUST_VALID_PATTERN": "用户名必须为有效的{{regex}}",
+            "REMOTECONTROLPORT_REQUIRED": "远程控制端口是必需的"
+        },
+        "ACCOUNT": "帐户",
+        "VOICE": "语音",
+        "CREATED_AT": "创建在",
+        "ROLE": "的作用。",
+        "PERSONAL_INFO": "个人信息",
+        "DESCRIPTION": "描述",
+        "CHANGE_AVATAR": "更改虚拟替身",
+        "GENERAL": "总的",
+        "INTERNAL": "内部",
+        "TRANSPORT": "交通运输",
+        "ALLOWCODECS": "允许使用的编解码器",
+        "HELP": {
+            "ALLOWCODECS": "允许使用的编解码器的首选项",
+            "TRANSPORT": "设置缺省的传输。 该顺序确定主要的默认的传输。",
+            "HOST": "如何找到客户端-服务器的 IP 或主机名。 如果您想要的手机本身注册、使用关键字动态而不是主机的 IP。",
+            "NAT": "改变行为的星号后面的客户端的防火墙。 如果任何的以逗号分隔的-选项是 “不”、星号将会忽略任何其他设置和设置 nat =否。",
+            "SIPEXPIRES": "默认值: 160",
+            "SIPPORT": "缺省值: 5060",
+            "TYPE": "确定了 SIP 的作用范围内的星号。 用户名: 用于验证传入-同行: 呼出电话-朋友: 涵盖了这两个特点。",
+            "CHATCAPACITY": "0 意味着无限的。",
+            "MAILCAPACITY": "0 意味着无限的。",
+            "FAXCAPACITY": "0 意味着无限的。",
+            "SMSCAPACITY": "0 意味着无限的。",
+            "OPENCHANNELCAPACITY": "0 意味着无限的。",
+            "CALLGROUP": "定义代理的 callgroup",
+            "PICKUPGROUP": "定义组中的业务代表可以应答呼叫。"
+        },
+        "NEW_PASSWORD": "新的密码。",
+        "CONFIRM_PASSWORD": "确认密码",
+        "LOGININPAUSE": "登录暂停",
+        "HOST": "主机",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "其他渠道",
+        "CHATCAPACITY": "聊天的能力",
+        "MAILCAPACITY": "电子邮件的能力",
+        "FAXCAPACITY": "传真容量",
+        "SMSCAPACITY": "短信容量",
+        "OPENCHANNELCAPACITY": "打开通道容量",
+        "MOTIONBAR": "运动酒吧",
+        "SETTINGS": "设置",
+        "AUTOANSWER": "自动应答",
+        "ENABLESETTINGS": "启用设置。",
+        "CALL_FORWARDING": "呼叫前转",
+        "UNCONDITIONAL": "无条件",
+        "UNCONDITIONALNUMBER": "无条件的号码",
+        "NOREPLY": "任何答复。",
+        "NOREPLYNUMBER": "没有答覆编号",
+        "BUSY": "正忙",
+        "BUSYNUMBER": "占线号码",
+        "REMOTE_CONTROL": "远程控制",
+        "REMOTECONTROL": "远程控制",
+        "REMOTECONTROLPORT": "远程控制端口",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP 的到期时间[秒]",
+        "SIPPORT": "SIP 端口",
+        "PENALTY": "刑罚",
+        "ACCOUNTNAME": "帐户名称",
+        "ADD_TELEPHONE": "添加电话",
+        "EDIT_TELEPHONE": "编辑电话",
+        "DELETE_TELEPHONE": "删除电话",
+        "TEAMS": "团队",
+        "DELETE_TEAM": "删除工作组",
+        "AGENTADD_TEAM": "将座席添加到组",
+        "EDIT_TEAM": "编辑团队",
+        "TYPE": "类型",
+        "TELEPHONES": "电话",
+        "CALLERID": "主叫方 ID",
+        "ENABLERECORDING": "启用录制",
+        "STAFF": "工作人员",
+        "ID": "Id",
+        "NEW_USER": "新用户",
+        "NEW_AGENT": "新的业务代表",
+        "NEW_TELEPHONE": "新的电话",
+        "NEW_TEAM": "新组",
+        "ADD_TEAM": "添加组",
+        "JOIN_QUEUE": "加入队列",
+        "CAPACITY": "能力",
+        "AUTOINTERNAL": "自动生成内部号。",
+        "ADD_AGENT_TO_TEAM": "添加业务代表组",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "PERMISSIONS": "许可权限",
+        "ADD_AGENT_TO_QUEUE": "代理添加到队列中",
+        "ALL_MODULES_AVAILABLE": "所有模块都可用",
+        "CALLGROUP": "通话组",
+        "PICKUPGROUP": "代答组",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "代理添加到队列活动",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "代理添加到语音队列",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "代理添加到文本交谈的队列",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "代理添加到邮件队列。",
+        "QUEUEADD_AGENT_SMS_INBOUND": "代理添加到 SMS 队列。",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "代理添加到打开的通道的队列。",
+        "QUEUEADD_AGENT_FAX_INBOUND": "代理添加到传真队列。",
+        "QUEUEADD_USER_VOICE_INBOUND": "将用户添加到语音队列",
+        "QUEUEADD_USER_CHAT_INBOUND": "将用户添加到文本交谈的队列",
+        "QUEUEADD_USER_MAIL_INBOUND": "将用户添加到邮件队列。",
+        "QUEUEADD_USER_SMS_INBOUND": "将用户添加到 SMS 队列。",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "将用户添加到打开的通道的队列。",
+        "QUEUEADD_USER_FAX_INBOUND": "将用户添加到传真队列。",
+        "ALL_TEAMS": "所有的团队",
+        "SELECTED_TEAMS": "选定的组",
+        "SELECTED_AGENTS": "选定的座席",
+        "ALL_QUEUES_VOICE_OUTBOUND": "所有队列活动",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "选定的队列活动",
+        "ALL_QUEUES_VOICE_INBOUND": "所有的语音队列",
+        "SELECTED_QUEUES_VOICE_INBOUND": "选定的语音队列",
+        "ALL_QUEUES_CHAT_INBOUND": "所有的聊天队列",
+        "SELECTED_QUEUES_CHAT_INBOUND": "选中 “文本交谈” 队列。",
+        "ALL_QUEUES_MAIL_INBOUND": "所有的邮件队列。",
+        "SELECTED_QUEUES_MAIL_INBOUND": "选中的邮件队列。",
+        "ALL_QUEUES_SMS_INBOUND": "所有的 SMS 队列。",
+        "SELECTED_QUEUES_SMS_INBOUND": "选中的短信队列。",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "所有打开的通道的队列。",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "选中的已经打开的通道的队列。",
+        "ALL_QUEUES_FAX_INBOUND": "所有的传真队列。",
+        "SELECTED_QUEUES_FAX_INBOUND": "选定的传真队列。",
+        "VOICEMAIL": "语音邮件",
+        "CHANGE_PASSWORD": "更改密码",
+        "CHANGEPASSWORD_AGENT": "更改密码",
+        "CHANGEPASSWORD_USER": "更改密码",
+        "CHANGEPASSWORD_TELEPHONE": "更改密码",
+        "RINGINUSE": "环在使用中"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/staff/i18n/zh-TW.json b/public/app/main/apps/staff/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..4d507f8
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "STAFF": {
+        "USERS": "使用者",
+        "AGENTS": "值機員",
+        "TOGGLE_SIDENAV": "切換側邊導覽列",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "BACK": "備份",
+        "MULTI_SELECT_TOGGLE": "多重選擇切換",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "SELECTED": "已選取",
+        "DELETE_SELECTED": "刪除所選",
+        "EXPORT_SELECTED": "選取匯出",
+        "ALL_USERS": "所有的使用者使用",
+        "ALL_AGENTS": "所有值機員",
+        "SORT": "排序依據",
+        "NAME": "名稱",
+        "FULLNAME": "完整名稱",
+        "A_TO_Z": "( A 到 Z )",
+        "Z_TO_A": "( Z 到 A )",
+        "MORE": "更多資訊",
+        "DELETE_USER": "刪除使用者",
+        "EDIT_USER": "編輯使用者",
+        "DELETE_AGENT": "刪除值機員",
+        "EDIT_AGENT": "編輯值機員",
+        "DELETE": "刪除",
+        "SAVE": "儲存",
+        "ADD_USER": "新增使用者",
+        "ADD_AGENT": "新增值機員",
+        "NO_RESULTS": "沒有任何結果。",
+        "CLOSE_DIALOG": "關閉對話方塊",
+        "NAME_REQUIRED": "名稱 ( 必填 )",
+        "USERNAME": "使用者名稱",
+        "SHOW_ALL_FIELDS": "顯示所有欄位",
+        "PHONE_NUMBER": "電話號碼",
+        "EMAIL": "電子郵件",
+        "PASSWORD": "密碼",
+        "ERRORS": {
+            "FULLNAME_REQUIRED": "的全名是必填欄位",
+            "USERNAME_REQUIRED": "使用者名稱為必要資訊",
+            "EMAIL_REQUIRED": "電子郵件為必填欄位",
+            "PASSWORD_REQUIRED": "密碼為必填欄位",
+            "CONFIRM_NOT_MATCH": "密碼不相符",
+            "EMAIL_MUST_VALID": "電子郵件必須是書面的格式無效",
+            "ACCOUNTNAME_REQUIRED": "「帳戶名稱」為必填欄位",
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "HOST_REQUIRED": "主機是必填欄位",
+            "CHATCAPACITY_REQUIRED": "「文字交談」容量是必填欄位",
+            "MAILCAPACITY_REQUIRED": "郵件容量是必填欄位",
+            "FAXCAPACITY_REQUIRED": "傳真容量是必填欄位",
+            "SMSCAPACITY_REQUIRED": "簡訊容量是必填欄位",
+            "OPENCHANNELCAPACITY_REQUIRED": "打開通道容量是必填欄位",
+            "SIPEXPIRES_REQUIRED": "SIP 到期日為必填欄位",
+            "SIPPORT_REQUIRED": "SIP 連接埠為必填欄位",
+            "UNCONDITIONALNUMBER_REQUIRED": "「無條件號碼」為必填欄位",
+            "NOREPLYNUMBER_REQUIRED": "無回覆號碼」為必填欄位",
+            "BUSYNUMBER_REQUIRED": "「忙線時轉撥來電」號碼是必填欄位",
+            "USERNAME_MUST_VALID_PATTERN": "此使用者名稱必須是有效的 {{ regex }}",
+            "REMOTECONTROLPORT_REQUIRED": "遠端控制埠為必填欄位"
+        },
+        "ACCOUNT": "帳號",
+        "VOICE": "語音通話",
+        "CREATED_AT": "建立在",
+        "ROLE": "角色",
+        "PERSONAL_INFO": "個人資訊",
+        "DESCRIPTION": "說明",
+        "CHANGE_AVATAR": "變更顯示圖片",
+        "GENERAL": "通用",
+        "INTERNAL": "內建式",
+        "TRANSPORT": "傳輸層",
+        "ALLOWCODECS": "允許轉碼器",
+        "HELP": {
+            "ALLOWCODECS": "允許使用的編碼 / 解碼器的喜好設定順序",
+            "TRANSPORT": "設定預設的傳輸。 醫令會決定主要預設傳輸。",
+            "HOST": "如何找到用戶端 - IP 或主機名稱。 如果您想要將電話轉接至自己登錄 , 使用關鍵字動態而非主機的 IP 。",
+            "NAT": "改變行為之星號的用戶端防火牆後面。如果有任何逗點分隔選項為「否」 , 星號將會略過所有其他設定值和設定 NAT = No ( 否 ) 。",
+            "SIPEXPIRES": "預設值 : 160",
+            "SIPPORT": "預設值 : 5060",
+            "TYPE": "決定 SIP 角色星號。 使用者 : 用於驗證傳入 - 點對點式 : 撥出電話 - 朋友 : 涵蓋了這兩個特徵的以上。",
+            "CHATCAPACITY": "0 表示沒有限制。",
+            "MAILCAPACITY": "0 表示沒有限制。",
+            "FAXCAPACITY": "0 表示沒有限制。",
+            "SMSCAPACITY": "0 表示沒有限制。",
+            "OPENCHANNELCAPACITY": "0 表示沒有限制。",
+            "CALLGROUP": "定義值機人員的 callgroup",
+            "PICKUPGROUP": "定義群組中的值機人員可以接聽來電"
+        },
+        "NEW_PASSWORD": "新密碼",
+        "CONFIRM_PASSWORD": "確認密碼",
+        "LOGININPAUSE": "登入登入暫停",
+        "HOST": "主機",
+        "NAT": "NAT",
+        "CHANSPY": "ChanSpy",
+        "OTHER_CHANNELS": "其他管道",
+        "CHATCAPACITY": "聊天容量",
+        "MAILCAPACITY": "郵件容量",
+        "FAXCAPACITY": "傳真功能",
+        "SMSCAPACITY": "簡訊容量",
+        "OPENCHANNELCAPACITY": "打開通道容量",
+        "MOTIONBAR": "動作列",
+        "SETTINGS": "設定",
+        "AUTOANSWER": "自動接聽",
+        "ENABLESETTINGS": "啟用設定",
+        "CALL_FORWARDING": "來電轉接",
+        "UNCONDITIONAL": "無條件",
+        "UNCONDITIONALNUMBER": "無條件編號",
+        "NOREPLY": "無回覆",
+        "NOREPLYNUMBER": "無回覆編號",
+        "BUSY": "忙碌中",
+        "BUSYNUMBER": "忙線時轉撥來電」號碼",
+        "REMOTE_CONTROL": "遠端控制",
+        "REMOTECONTROL": "遠端控制",
+        "REMOTECONTROLPORT": "遠端控制連接埠",
+        "SIP": "SIP",
+        "SIPEXPIRES": "SIP 過期 [ 秒 ]",
+        "SIPPORT": "SIP 連接埠",
+        "PENALTY": "罰款",
+        "ACCOUNTNAME": "帳號名稱",
+        "ADD_TELEPHONE": "新增電話",
+        "EDIT_TELEPHONE": "編輯電話",
+        "DELETE_TELEPHONE": "刪除電話",
+        "TEAMS": "團隊",
+        "DELETE_TEAM": "刪除群組",
+        "AGENTADD_TEAM": "值機員新增至群組",
+        "EDIT_TEAM": "編輯群組",
+        "TYPE": "類型",
+        "TELEPHONES": "電話",
+        "CALLERID": "來電者 ID",
+        "ENABLERECORDING": "啟用記錄",
+        "STAFF": "人員",
+        "ID": "Id",
+        "NEW_USER": "新的使用者",
+        "NEW_AGENT": "新的值機員",
+        "NEW_TELEPHONE": "新的電話",
+        "NEW_TEAM": "新增群組",
+        "ADD_TEAM": "新增群組",
+        "JOIN_QUEUE": "加入佇列",
+        "CAPACITY": "容量",
+        "AUTOINTERNAL": "自動產生內部號碼",
+        "ADD_AGENT_TO_TEAM": "值機員新增至群組",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "PERMISSIONS": "許可權",
+        "ADD_AGENT_TO_QUEUE": "值機人員新增到佇列",
+        "ALL_MODULES_AVAILABLE": "所有的模組可供使用",
+        "CALLGROUP": "通話群組",
+        "PICKUPGROUP": "代接群組",
+        "QUEUEADD_AGENT_VOICE_OUTBOUND": "值機員新增至佇列活動",
+        "QUEUEADD_AGENT_VOICE_INBOUND": "新增值機員至語音佇列",
+        "QUEUEADD_AGENT_CHAT_INBOUND": "值機員新增至文字交談」佇列",
+        "QUEUEADD_AGENT_MAIL_INBOUND": "值機員新增至郵件佇列",
+        "QUEUEADD_AGENT_SMS_INBOUND": "新增值機員至 SMS 佇列",
+        "QUEUEADD_AGENT_OPENCHANNEL_INBOUND": "新增值機員以開啟通道佇列",
+        "QUEUEADD_AGENT_FAX_INBOUND": "值機員新增至傳真佇列",
+        "QUEUEADD_USER_VOICE_INBOUND": "新增使用者至語音佇列",
+        "QUEUEADD_USER_CHAT_INBOUND": "將使用者新增到文字交談」佇列",
+        "QUEUEADD_USER_MAIL_INBOUND": "新增使用者至郵件佇列",
+        "QUEUEADD_USER_SMS_INBOUND": "新增使用者至 SMS 佇列",
+        "QUEUEADD_USER_OPENCHANNEL_INBOUND": "新增使用者開啟通道佇列",
+        "QUEUEADD_USER_FAX_INBOUND": "新增使用者至傳真佇列",
+        "ALL_TEAMS": "所有群組",
+        "SELECTED_TEAMS": "選取群組",
+        "SELECTED_AGENTS": "已選取的值機人員",
+        "ALL_QUEUES_VOICE_OUTBOUND": "所有佇列活動",
+        "SELECTED_QUEUES_VOICE_OUTBOUND": "所選取的佇列活動",
+        "ALL_QUEUES_VOICE_INBOUND": "所有語音通話佇列",
+        "SELECTED_QUEUES_VOICE_INBOUND": "選取語音通話佇列",
+        "ALL_QUEUES_CHAT_INBOUND": "所有聊天佇列",
+        "SELECTED_QUEUES_CHAT_INBOUND": "選取的文字交談佇列",
+        "ALL_QUEUES_MAIL_INBOUND": "所有郵件佇列",
+        "SELECTED_QUEUES_MAIL_INBOUND": "選定的郵件佇列",
+        "ALL_QUEUES_SMS_INBOUND": "所有 SMS 佇列",
+        "SELECTED_QUEUES_SMS_INBOUND": "所選簡訊佇列",
+        "ALL_QUEUES_OPENCHANNEL_INBOUND": "所有開啟通道佇列",
+        "SELECTED_QUEUES_OPENCHANNEL_INBOUND": "選取開啟通道佇列",
+        "ALL_QUEUES_FAX_INBOUND": "所有傳真佇列",
+        "SELECTED_QUEUES_FAX_INBOUND": "選取的傳真佇列",
+        "VOICEMAIL": "語音信箱",
+        "CHANGE_PASSWORD": "變更密碼",
+        "CHANGEPASSWORD_AGENT": "變更密碼",
+        "CHANGEPASSWORD_USER": "變更密碼",
+        "CHANGEPASSWORD_TELEPHONE": "變更密碼",
+        "RINGINUSE": "環使用中"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/da.json b/public/app/main/apps/tools/i18n/da.json
new file mode 100644 (file)
index 0000000..c32a80b
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "Navnet",
+        "TRUNKS": "Trunks",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "HOST_REQUIRED": "Værten er påkrævet",
+            "DEFAULTUSER_REQUIRED": "Standardbrugeren er påkrævet",
+            "CALLERID_REQUIRED": "Opkalds-ID er påkrævet",
+            "KEY_REQUIRED": "Den nøgle er påkrævet",
+            "CONFIRM_NOT_MATCH": "Adgangskoderne don' t match",
+            "VALIDITYSTART_REQUIRED": "Starttidspunktet er påkrævet",
+            "VALIDITYEND_REQUIRED": "Sluttidspunktet er påkrævet",
+            "MONTHDAY_REQUIRED": "Den Månedsdag er påkrævet",
+            "HOUR_REQUIRED": "Timen er påkrævet",
+            "CONTENT_REQUIRED": "Indholdet kræves",
+            "URL_REQUIRED": "URL'en er påkrævet",
+            "URL_MUST_VALID_URL": "URL-adressen skal være gyldig",
+            "APPLICATION_REQUIRED": "Ansøgningen skal udfyldes",
+            "ARGUUMENTS_REQUIRED": "Argumenterne er påkrævet",
+            "NAME_MUST_VALID_PATTERN": "Navnet skal være skrevet i et gyldigt format",
+            "ARGUMENTS_REQUIRED": "Argumenterne er påkrævet",
+            "POLLING_INTERVAL_REQUIRED": "Kontrolintervallet er påkrævet",
+            "TITLE_REQUIRED": "Titlen er påkrævet"
+        },
+        "HOST": "Host",
+        "SECRET": "Hemmelig",
+        "DEFAULTUSER": "Standardbrugeren",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_TRUNK": "Tilføj Trunk",
+        "HELP": {
+            "SECRET": "Authentication password skal du kontakte udbyderen.",
+            "HOST": "Domænet eller værtsnavn for udbyderen.",
+            "DEFAULTUSER": "Login Brugernavn skal du kontakte udbyderen.",
+            "CALLERID": "Opkalderens ID i formatet \"navn\" <number>",
+            "REGISTRY": "Bagagerummet register string, der kræves af nogle udbydere, som regel defaultuser:secret@host.",
+            "FROMDOMAIN": "Sæt standardværdier fra:domæne i SIP Messages, der fungerer som en SIP ua (client). Nogle rejsemål kan kræve obligatorisk id-navnet i stedet for kun IP-adresse.",
+            "FROMUSER": "Hvordan dit rovider kender jer. Det er som bruger at sætte i stedet for opkalderens id når du ringer til peer (en anden SIP proxy). Gælder kun for type=peer.",
+            "OUTBOUNDPROXY": "IP_adresse eller DNS SRV name (undtagen _sip._udp præfiks) : SRV name, hostname eller IP-adressen på den udgående SIP Proxy. Send outbound signalerer denne proxy, ikke direkte til enhederne. Gælder kun for type=peer.",
+            "PORT": "Portnummeret vi vil knytte til den eksterne side.",
+            "CONTEXT": "De udnyttelige kontekst til bagagerummet.",
+            "TYPE": "Bestemmer SIP rolle i stjerne. Bruger: bruges til at autentificere indgående - Peer: til udgående opkald - Ven: dækker både beskrivelse af ovenstående.",
+            "DTMFMODE": "Hvordan DTMF (Dual-Tone Multi-Frequency) sendes: RFC2833: standardindstillingen, DTMF sendes med rtp men uden lyden. INBAND: DTMF sendes i audio stream i den aktuelle samtale, stadig høres fra højttalerne. Kræver en høj CPU belastning. INFO: Selvom metoden er meget pålidelig, er det ikke understøttet af alle PBX SIP Trunk og mange enheder.",
+            "NAT": "Ændrer adfærden hos stjerne for klienter bag en firewall.Hvis en kommasepareret muligheder er 'nej', Stjerne vil ignorere alle indstillinger og sæt nat=no.",
+            "QUALIFY": "Afgør, hvornår SIP er opnåeligt.",
+            "ALLOWCODECS": "Medbringes codecs i prioritetsrækkefølge.",
+            "INSECURE": "Angiver hvordan man håndterer forbindelser med peer, så usikre indstillinger.",
+            "CALL_LIMIT": "Det begrænser antallet af indgående og udgående opkald ad gangen.",
+            "DIRECTMEDIA": "Stjerne som standard forsøger at omdirigere RTP media stream, gå direkte fra personen til den opkaldte. Nogle enheder ikke understøtter dette (især hvis en af dem er bag en NAT). Standardindstillingen er Ja. Hvis du har alle klienter bag en NAT, eller af anden grund ønskes stjerne til ophold i signalvejen, kan det være en god ide at slukke for denne funktion.",
+            "CALLCOUNTER": "Aktivér Ring tællere på enheder.",
+            "ADD_PHONE_TO_URI": "Definer hvis udbyderen kræver ';user=phone' på kanten.",
+            "TRUST_REMOTE_PARTY_ID": "Definer hvis Remote-Party-ID skal være pålidelige.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "Status",
+            "ENCRYPTION": "Definer hvis Remote-Party-ID skal sendes (som standard til Ingen).",
+            "TRANSPORT": "Opsætter transporter. Rækkefølgen bestemmer den primære standard transport.",
+            "OTHERFIELDS": "Andre felter for at tilføje i trunks conf filer. Skal skrives ind i stjerne-format (nøgle=værdi) af de enkelte felter i en enkelt række."
+        },
+        "EDIT_TRUNK": "Rediger Trunk",
+        "DELETE_TRUNK": "Slet Trunk",
+        "CREATED_AT": "Oprettet på",
+        "SETTINGS": "Indstillinger",
+        "ADVANCED": "Avanceret",
+        "OTHER": "Andre",
+        "ACTIVE": "Aktiv",
+        "CONTEXT": "Kontekst",
+        "CALLERID": "Nummervisning",
+        "TYPE": "Type",
+        "DTMFMODE": "DTMF TILSTAND",
+        "NAT": "NAT",
+        "QUALIFY": "Kvalificere",
+        "ALLOWCODECS": "Medbringes Codecs",
+        "INSECURE": "Usikker",
+        "REGISTRY": "Registry",
+        "DIRECTMEDIA": "Direct Media",
+        "CALLCOUNTER": "Opkaldstæller",
+        "FROMDOMAIN": "Fra domæne",
+        "FROMUSER": "Fra brugeren",
+        "OUTBOUNDPROXY": "Outbound Proxy",
+        "ADD_PHONE_TO_URI": "Add Phone til URI",
+        "TRUST_REMOTE_PARTY_ID": "Trust ekstern part ID",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Send Fjerndeltageren overskriften ID",
+        "ENCRYPTION": "Kryptering",
+        "PORT": "Port",
+        "TRANSPORT": "Transport",
+        "SAVE": "Gem",
+        "VARIABLES": "Variabler",
+        "ADD_VARIABLE": "Tilføj variabel",
+        "EDIT_VARIABLE": "Rediger variabel",
+        "DELETE_VARIABLE": "Slet variabel",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "TAGS": "Tags",
+        "ADD_TAG": "Læg mærke",
+        "EDIT_TAG": "Rediger Tag",
+        "DELETE_TAG": "Slet Tag",
+        "PAUSES": "Pauser",
+        "ADD_PAUSE": "Tilføj pause",
+        "EDIT_PAUSE": "Edit Pause",
+        "DELETE_PAUSE": "Delete Pause",
+        "CANNEDANSWERS": "Dåse svar",
+        "ADD_CANNEDANSWER": "Tilføj dåse svar",
+        "EDIT_CANNEDANSWER": "Rediger dåse svar",
+        "DELETE_CANNEDANSWER": "Slet svar dåse",
+        "KEY": "Nøgle",
+        "VALUE": "Værdi",
+        "SOUNDS": "Lyde",
+        "EDIT_SOUND": "Rediger lyd",
+        "DELETE_SOUND": "Slette lyd",
+        "FINISH": "Finish",
+        "DROP_TO_UPLOAD": "Slip for upload",
+        "TRIGGERS": "Udløser",
+        "EDIT_TRIGGER": "Rediger Trigger",
+        "DELETE_TRIGGER": "Delete Trigger",
+        "ADD_TRIGGER": "Tilføj Trigger",
+        "DELETE": "Slet",
+        "AUTOMATIONS": "Automationsbranchens",
+        "EDIT_AUTOMATION": "Rediger Automation",
+        "DELETE_AUTOMATION": "Slette Automation",
+        "ADD_AUTOMATION": "Tilføj Automation",
+        "INTERVALS": "Mellemrum",
+        "EDIT_INTERVAL": "Rediger interval",
+        "DELETE_INTERVAL": "Slet Interval",
+        "ADD_INTERVAL": "Tilføj Interval",
+        "TOOLS": "Værktøjer",
+        "ID": "Id",
+        "AUDIO": "Audio",
+        "DOWNLOAD_SOUND": "Download lyd",
+        "UPLOAD_SOUND": "Værktøjer",
+        "CHANNEL": "Kanal",
+        "NEW_TRIGGER": "Ny Trigger",
+        "GENERAL": "Generel",
+        "STATUS": "Status",
+        "CONDITIONS&ACTIONS": "Betingelser & Actions",
+        "ALLCONDITIONS": "Opfylder alle disse betingelser:",
+        "ANYCONDITIONS": "Opfylder en af disse betingelser:",
+        "ACTIONS": "Handlinger:",
+        "NEW_AUTOMATION": "Automatisering",
+        "TIMEOUT": "Timeout",
+        "PEERSTATUS": "Peer Status",
+        "CALL_LIMIT": "Begræns opkald",
+        "OTHERFIELDS": "Andre områder",
+        "NEW_VARIABLE": "Ny variabel",
+        "NEW_TAG": "Nyt tag",
+        "NEW_PAUSE": "Ny Pause",
+        "NEW_CANNEDANSWER": "Ny dåse svar",
+        "CONFIRM_PASSWORD": "Bekræft adgangskode",
+        "NEW_TRUNK": "Nye Trunk",
+        "FROM": "Fra",
+        "TO": "Til",
+        "WEEKDAY": "Ugedag",
+        "MONTHDAY": "Månedsdag",
+        "MONTH": "Måned",
+        "ALWAYS": "Altid",
+        "MON": "Mandag",
+        "TUE": "Tirsdag",
+        "WED": "Onsdag",
+        "THU": "Torsdag",
+        "FRI": "Fredag",
+        "SAT": "Lørdag",
+        "SUN": "Søndag",
+        "JAN": "Januar",
+        "FEB": "Februar",
+        "MAR": "Marts",
+        "APR": "April",
+        "MAY": "Maj",
+        "JUN": "Juni",
+        "JUL": "Juli",
+        "AUG": "August",
+        "SEP": "September",
+        "OCT": "Oktober",
+        "NOV": "November",
+        "DEC": "December",
+        "PASSWORD": "Password",
+        "CUSTOMDASHBOARDS": "Individuelle Dashboards",
+        "NEW_CUSTOMDASHBOARD": "Nyt instrumentbræt",
+        "ADD_CUSTOMDASHBOARD": "Tilføj brugerdefineret dashboard",
+        "EDIT_CUSTOMDASHBOARD": "Rediger brugerdefineret dashboard",
+        "DELETE_CUSTOMDASHBOARD": "Slet brugerdefinerede instrumentpanel",
+        "SCHEDULER": "Scheduler",
+        "NEW_SCHEDULE": "Nyt skema",
+        "ADD_SCHEDULE": "Tilføj planlagt",
+        "EDIT_SCHEDULE": "Redigér skema",
+        "DELETE_SCHEDULE": "Slet plan",
+        "SENDMAIL": "Send en e-mail",
+        "CONFIGURATION": "Konfiguration",
+        "MAIL": "Mail",
+        "REPORTTYPE": "Rapporttype",
+        "REPORT": "Rapport",
+        "OUTPUT": "Udgang",
+        "EXECUTEON": "Udførelse på",
+        "REPORTRANGE": "Rapportområdet",
+        "VALIDITYSTART": "Starttidspunkt",
+        "VALIDITYEND": "Sluttidspunkt",
+        "EXECUTEEVERY": "Udføre alle",
+        "ACCOUNT": "Konto",
+        "EMAILADDRESS": "E-mail adresse",
+        "CURRENTDAY": "Aktuel dag",
+        "DAILY": "Daglig",
+        "WEEKLY": "Ugentlig",
+        "MONTHLY": "Månedlig",
+        "PREVIOUS_DAY": "Forrige dag",
+        "LAST_SEVEN_DAYS": "Sidste syv dage",
+        "LAST_THIRTY_DAYS": "Sidste Thirthy dage",
+        "LAST_MONTH": "Sidste måned",
+        "WEEKDAYS": "Ugedage",
+        "HOUR": "Time",
+        "DEFAULT": "Standard",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 minutter",
+        "30MIN": "30 minutter",
+        "1H": "1 time",
+        "VOICE": "Voice",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Åben kanal",
+        "TEMPLATES": "Skabeloner",
+        "EDIT_TEMPLATE": "Rediger skabelon",
+        "DELETE_TEMPLATE": "Slet skabelon",
+        "NEW_TEMPLATE": "Ny skabelon",
+        "ADD_TEMPLATE": "Tilføj skabelon",
+        "CONTENT": "Indhold",
+        "FIELD": "Felt",
+        "NO_ANYCONDITION_AVAILABLE": "Ingen tilgængelige betingelser",
+        "NO_ALLCONDITION_AVAILABLE": "Ingen tilgængelige betingelser",
+        "NO_ACTION_AVAILABLE": "Ingen mulige handlinger",
+        "ACTION": "Handling",
+        "EDIT_ANYCONDITION": "Rediger tilstand",
+        "DELETE_ANYCONDITION": "Slette tilstand",
+        "NEW_ANYCONDITION": "Ny betingelse",
+        "ADD_ANYCONDITION": "Tilføj betingelse",
+        "EDIT_ALLCONDITION": "Rediger tilstand",
+        "DELETE_ALLCONDITION": "Slette tilstand",
+        "NEW_ALLCONDITION": "Ny betingelse",
+        "ADD_ALLCONDITION": "Tilføj betingelse",
+        "EDIT_ACTION": "Rediger handling",
+        "DELETE_ACTION": "Slettehandling",
+        "NEW_ACTION": "Nye tiltag",
+        "ADD_ACTION": "Tilføj handlings",
+        "QUEUE": "Kø",
+        "CALL_STATUS": "Opkaldsstatus",
+        "OUTBOUND_ROUTE": "Udgående rute",
+        "EQUALS": "Er lig med",
+        "NOT_EQUALS": "Ikke lig med",
+        "CONTACT_MANAGER": "Kontakt Manager",
+        "INTEGRATIONS": "Integrationer",
+        "MOTION_BAR": "Motion Bar",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL FREM",
+        "WEB_POPUP": "Web-Popup",
+        "LIST": "Listen",
+        "INTEGRATION": "Integration",
+        "TEMPLATE": "Skabelon",
+        "URL": "URL",
+        "APPLICATION": "Anvendelse",
+        "ARGUMENTS": "Argumenter",
+        "NO_APPS_AVAILABLE": "Ingen mulige applikationer",
+        "NEW_INTERVAL": "Ny ca.",
+        "OUTBOUNDROUTE": "Udgående rute",
+        "OPERATOR": "Operatøren",
+        "NO_INTERVALS_AVAILABLE": "Ingen intervaller findes",
+        "YES": "Ja",
+        "NO": "Ingen",
+        "SUBJECT": "Genstand",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "BROWSER": "Browser",
+        "INTERVAL": "Interval",
+        "INFO": "Info",
+        "TIME_RANGE": "Tidsområde",
+        "WEEK_DAYS": "Ugedage",
+        "MONTH_DAYS": "Månedens dage",
+        "MONTHS": "Måneder",
+        "DROP_TO_UPLOAD_MESSAGE": "Du kan også lægge lyd her til upload. Kun MP3, WAV, GSM - Max. 15MB",
+        "POLLING_INTERVAL": "Kontrolintervallet(sekunder)",
+        "DASHBOARD": "Dashboard",
+        "NEW_DASHBOARDITEM": "Ny Dashboard-widget",
+        "COUNTER": "Tæller",
+        "IFRAME": "IFrame",
+        "CLOCK": "Ur",
+        "ADD_DASHBOARDITEM": "Tilføj Dashboard-widget",
+        "EDIT_WIDGET": "Rediger Widget",
+        "DELETE_WIDGET": "Slet Widget",
+        "FLIP_WIDGET": "Flip Widget",
+        "TITLE": "Titel",
+        "UPDATE": "Opdater",
+        "LAYOUT": "Layout",
+        "BACKGROUND_COLOR": "Baggrundsfarve",
+        "FOREGROUND_COLOR": "Forgrundsfarve",
+        "FOREGROUND_TITLE_COLOR": "Forgrund Titel farve",
+        "THEME": "Theme",
+        "LIGHT": "Lys",
+        "DARK": "Mørk",
+        "TIMEZONE": "Tidszone",
+        "DIGITAL_FORMAT": "Digital datoformat",
+        "TOOLS_QUERY": "Forespørgsel",
+        "SELECT": "Vælg",
+        "WHERE": "Hvor",
+        "BACK": "Tilbage",
+        "PROJECT": "Projekt",
+        "GOTOREALTIME_TRUNK": "Gå til Realtime Trunk",
+        "GOTO_TRUNK": "Gå til trunk"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/de.json b/public/app/main/apps/tools/i18n/de.json
new file mode 100644 (file)
index 0000000..e603ff5
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "Name",
+        "TRUNKS": "Amtsleitungen",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "HOST_REQUIRED": "Der Host wird benötigt",
+            "DEFAULTUSER_REQUIRED": "Der Standardbenutzer ist erforderlich",
+            "CALLERID_REQUIRED": "Die Anrufer-ID ist erforderlich",
+            "KEY_REQUIRED": "Der Schlüssel ist erforderlich",
+            "CONFIRM_NOT_MATCH": "Die Kennwörter nicht übereinstimmen",
+            "VALIDITYSTART_REQUIRED": "Die Startzeit ist erforderlich",
+            "VALIDITYEND_REQUIRED": "Das Ende der Zeit ist erforderlich",
+            "MONTHDAY_REQUIRED": "Tag des Monats ist erforderlich",
+            "HOUR_REQUIRED": "Die Stunde ist erforderlich",
+            "CONTENT_REQUIRED": "Der Inhalt ist erforderlich",
+            "URL_REQUIRED": "Die URL ist erforderlich",
+            "URL_MUST_VALID_URL": "Die URL muss gültig sein",
+            "APPLICATION_REQUIRED": "Die Anwendung ist erforderlich",
+            "ARGUUMENTS_REQUIRED": "Die Argumente erforderlich sind",
+            "NAME_MUST_VALID_PATTERN": "Der Name muss in einem gültigen Format geschrieben werden",
+            "ARGUMENTS_REQUIRED": "Die Argumente sind erforderlich",
+            "POLLING_INTERVAL_REQUIRED": "Das Abfrageintervall ist erforderlich",
+            "TITLE_REQUIRED": "Der Titel ist erforderlich"
+        },
+        "HOST": "Host",
+        "SECRET": "Geheimnis",
+        "DEFAULTUSER": "Default User",
+        "DESCRIPTION": "Beschreibung",
+        "ADD_TRUNK": "Amtsleitung hinzufügen",
+        "HELP": {
+            "SECRET": "Kennwort für die Authentifizierung, wenden Sie sich an den Anbieter.",
+            "HOST": "Die Domäne oder den Hostnamen für den Anbieter.",
+            "DEFAULTUSER": "Authentifizierung Benutzernamen, wenden Sie sich an den Anbieter.",
+            "CALLERID": "Die Anrufer-ID im Format \"name\" <Nummer>.",
+            "REGISTRY": "Die amtsleitung Registry, die von einigen Anbietern, die in der Regel defaultuser:Secret@host.",
+            "FROMDOMAIN": "Legt Standardeinstellungen von:domain in SIP-Nachrichten als SIP-ua (Client). Einige Ziele können die obligatorische Identität Name anstatt nur die IP-Adresse.",
+            "FROMUSER": "Rovider wie ihr sie kennt. Dies ist der Benutzer, um anstelle der Anrufer-ID beim Tätigen von Anrufen zu anderen Peer (SIP-Proxy). Nur gültig für den Typ=peer.",
+            "OUTBOUNDPROXY": "IP-Adresse oder DNS-SRV-Ressourceneintrag name (ausgenommen die _sip._udp-Präfix): SRV Name, den Hostnamen oder die IP-Adresse des ausgehenden SIP-Proxy. Senden Sie ausgehende Signale zu diesem Proxy und nicht direkt an die Geräte. Nur gültig für den Typ=peer.",
+            "PORT": "Die Nummer des Ports, zu dem Sie eine Verbindung herstellen möchten wir auf der anderen Seite.",
+            "CONTEXT": "Die nutzbaren Rahmen für den Trunk.",
+            "TYPE": "Legt das SIP-Rolle innerhalb der Sternchen. User: Wird verwendet, um die Authentifizierung für eingehende - Peer: für ausgehende Anrufe - Freund: Deckt sowohl die Eigenschaften der oben genannten.",
+            "DTMFMODE": "Wie DTMF (Dual-Tone Multi-Frequency): RFC2833: Die Standardeinstellung, die DTMF gesendet mit RTP, aber außerhalb der Audio Stream. INBAND DTMF gesendet wird: Die in der Audio Stream des aktuellen Gesprächs, wird über die Lautsprecher hörbar. Erfordert eine hohe CPU-Last. INFO: Diese Methode ist zwar sehr zuverlässig, es ist nicht für alle TK-Anlagen und viele SIP-Trunk.",
+            "NAT": "Ändert das Verhalten von Sternchen für Clients hinter einer Firewall.Wenn der Komma-getrennten Optionen ist \"Nein\", Asterisk ignoriert alle anderen Einstellungen und die nat=No.",
+            "QUALIFY": "Legt fest, wann die SIP erreichbar ist.",
+            "ALLOWCODECS": "Erlaubt Codecs in der Reihenfolge ihrer Präferenz.",
+            "INSECURE": "Legt fest, wie Verbindungen mit Peer, dass unsichere Einstellungen.",
+            "CALL_LIMIT": "Die Anzahl der eingehenden und abgehenden Anrufe, die zu einer Zeit.",
+            "DIRECTMEDIA": "Sternchen standardmäßig versucht, die RTP-Stream direkt aus den Anrufer an den Angerufenen. Einige Geräte werden nicht unterstützt wird (vor allem, wenn einer von Ihnen hinter einem NAT-Gerät befindet). Die Standardeinstellung ist Ja. Wenn Sie alle Clients hinter einem NAT-Gerät befindet, oder aus einem anderen Grund nicht möchten, dass Sternchen in der Audiospur, können Sie diese ausschalten.",
+            "CALLCOUNTER": "Aktivieren Sie die Zähler auf Geräte.",
+            "ADD_PHONE_TO_URI": "Legen Sie fest, ob die Provider ';user=Telefon\" an den URI.",
+            "TRUST_REMOTE_PARTY_ID": "Wenn Remote-Party-ID definieren sollte.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "Status",
+            "ENCRYPTION": "Festlegen, ob die Remote-Party-ID gesendet werden soll (standardmäßig auf Nein).",
+            "TRANSPORT": "Festlegen der Standardeinstellungen für Transporte. Die Reihenfolge bestimmt den primären Standard.",
+            "OTHERFIELDS": "Weitere Felder hinzufügen, in der Amtsleitungen conf-Dateien. In Sternchen format (key=value), jedes Feld auf einer Zeile."
+        },
+        "EDIT_TRUNK": "Trunk bearbeiten",
+        "DELETE_TRUNK": "Löschen Sie Trunk",
+        "CREATED_AT": "Erstellt am",
+        "SETTINGS": "Einstellungen",
+        "ADVANCED": "Erweiterte",
+        "OTHER": "Andere",
+        "ACTIVE": "Aktiv",
+        "CONTEXT": "Kontext",
+        "CALLERID": "Die Anrufer-ID",
+        "TYPE": "Typ",
+        "DTMFMODE": "Mfv-Modus",
+        "NAT": "NAT",
+        "QUALIFY": "Qualifizieren",
+        "ALLOWCODECS": "Codecs erlaubt",
+        "INSECURE": "Unsicher",
+        "REGISTRY": "Registrierung",
+        "DIRECTMEDIA": "Direkte Medien",
+        "CALLCOUNTER": "Anrufzähler",
+        "FROMDOMAIN": "Aus der Domäne",
+        "FROMUSER": "Vom Benutzer",
+        "OUTBOUNDPROXY": "Ausgehender Proxy",
+        "ADD_PHONE_TO_URI": "Telefon hinzufügen, URI",
+        "TRUST_REMOTE_PARTY_ID": "Vertrauen Gegenstelle ID",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Senden einer Partner-ID Header",
+        "ENCRYPTION": "Verschlüsselung",
+        "PORT": "Hafen",
+        "TRANSPORT": "Verkehr",
+        "SAVE": "Speichern",
+        "VARIABLES": "Variablen",
+        "ADD_VARIABLE": "Variable hinzufügen",
+        "EDIT_VARIABLE": "Variable bearbeiten",
+        "DELETE_VARIABLE": "Variable löschen",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "TAGS": "Tags",
+        "ADD_TAG": "Variable hinzufügen",
+        "EDIT_TAG": "Variable bearbeiten",
+        "DELETE_TAG": "Variable löschen",
+        "PAUSES": "Pausen",
+        "ADD_PAUSE": "Pause hinzufügen",
+        "EDIT_PAUSE": "Pause bearbeiten",
+        "DELETE_PAUSE": "Pause löschen",
+        "CANNEDANSWERS": "Vorformulierte Antworten",
+        "ADD_CANNEDANSWER": "Fügen Sie vordefinierte Antwort",
+        "EDIT_CANNEDANSWER": "Bearbeiten von vordefinierten Antworten",
+        "DELETE_CANNEDANSWER": "Löschen Sie Spam Antwort",
+        "KEY": "Schlüssel",
+        "VALUE": "Wert",
+        "SOUNDS": "Sounds",
+        "EDIT_SOUND": "Ton bearbeiten",
+        "DELETE_SOUND": "Sound löschen",
+        "FINISH": "Fertig stellen",
+        "DROP_TO_UPLOAD": "Drop hochladen",
+        "TRIGGERS": "Trigger",
+        "EDIT_TRIGGER": "Auslöser bearbeiten",
+        "DELETE_TRIGGER": "Auslöser löschen",
+        "ADD_TRIGGER": "Trigger hinzufügen",
+        "DELETE": "Löschen",
+        "AUTOMATIONS": "Automatisierungen",
+        "EDIT_AUTOMATION": "Bearbeiten einer Automation",
+        "DELETE_AUTOMATION": "Automation löschen",
+        "ADD_AUTOMATION": "Automation hinzufügen",
+        "INTERVALS": "Intervalle",
+        "EDIT_INTERVAL": "Intervall bearbeiten",
+        "DELETE_INTERVAL": "Intervall für Löschen.",
+        "ADD_INTERVAL": "Intervall hinzufügen",
+        "TOOLS": "Werkzeuge",
+        "ID": "Id",
+        "AUDIO": "Audio",
+        "DOWNLOAD_SOUND": "Download Sound",
+        "UPLOAD_SOUND": "Werkzeuge",
+        "CHANNEL": "Kanal",
+        "NEW_TRIGGER": "Neue Trigger",
+        "GENERAL": "Allgemein",
+        "STATUS": "Status",
+        "CONDITIONS&ACTIONS": "Bedingungen und Aktionen",
+        "ALLCONDITIONS": "Alle diese Bedingungen erfüllen:",
+        "ANYCONDITIONS": "Treffen diese Voraussetzungen:",
+        "ACTIONS": "Aktionen:",
+        "NEW_AUTOMATION": "Neue Automation",
+        "TIMEOUT": "Timeout",
+        "PEERSTATUS": "Peer Status",
+        "CALL_LIMIT": "Anrufe beschränken",
+        "OTHERFIELDS": "Andere Felder",
+        "NEW_VARIABLE": "Neue Variable",
+        "NEW_TAG": "Neuer Tag",
+        "NEW_PAUSE": "Neue Pause",
+        "NEW_CANNEDANSWER": "Neue Antwort in Dosen",
+        "CONFIRM_PASSWORD": "Passwort bestätigen",
+        "NEW_TRUNK": "Neue Leitung",
+        "FROM": "Von",
+        "TO": "Zu",
+        "WEEKDAY": "Woche Tag",
+        "MONTHDAY": "Monat Tag",
+        "MONTH": "Monat",
+        "ALWAYS": "Immer",
+        "MON": "Montag",
+        "TUE": "Dienstag",
+        "WED": "Mittwoch",
+        "THU": "Donnerstag",
+        "FRI": "Freitag",
+        "SAT": "Samstag",
+        "SUN": "Sonntag",
+        "JAN": "Januar",
+        "FEB": "Februar",
+        "MAR": "März",
+        "APR": "April",
+        "MAY": "Mai",
+        "JUN": "Juni",
+        "JUL": "Juli",
+        "AUG": "August",
+        "SEP": "September",
+        "OCT": "Oktober",
+        "NOV": "November",
+        "DEC": "Dezember",
+        "PASSWORD": "Passwort",
+        "CUSTOMDASHBOARDS": "Benutzerdefinierte Dashboards",
+        "NEW_CUSTOMDASHBOARD": "Neues benutzerdefiniertes Dashboard",
+        "ADD_CUSTOMDASHBOARD": "Hinzufügen von benutzerdefinierten Dashboard",
+        "EDIT_CUSTOMDASHBOARD": "Benutzerdefinierte Dashboards bearbeiten",
+        "DELETE_CUSTOMDASHBOARD": "Benutzerdefiniertes Dashboard löschen.",
+        "SCHEDULER": "Scheduler",
+        "NEW_SCHEDULE": "Neuer Zeitplan",
+        "ADD_SCHEDULE": "Zeitplan hinzufügen",
+        "EDIT_SCHEDULE": "Zeitplan bearbeiten",
+        "DELETE_SCHEDULE": "Zeitplan löschen",
+        "SENDMAIL": "E-Mail senden",
+        "CONFIGURATION": "Konfiguration",
+        "MAIL": "E-Mail",
+        "REPORTTYPE": "Berichtstyp",
+        "REPORT": "Bericht",
+        "OUTPUT": "Ausgang",
+        "EXECUTEON": "Ausführung",
+        "REPORTRANGE": "Berichtsbereich",
+        "VALIDITYSTART": "Startzeit",
+        "VALIDITYEND": "Endzeit",
+        "EXECUTEEVERY": "Alle ausführen",
+        "ACCOUNT": "Konto",
+        "EMAILADDRESS": "E-Mail Adresse",
+        "CURRENTDAY": "Aktueller Tag",
+        "DAILY": "Täglich",
+        "WEEKLY": "Wöchentlich",
+        "MONTHLY": "Monatlich",
+        "PREVIOUS_DAY": "Vorheriger Tag",
+        "LAST_SEVEN_DAYS": "Letzte sieben Tage",
+        "LAST_THIRTY_DAYS": "33 verbotenen letzte Tage",
+        "LAST_MONTH": "Letzter Monat",
+        "WEEKDAYS": "Woche Tage",
+        "HOUR": "Stunde",
+        "DEFAULT": "Standard",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 Minuten",
+        "30MIN": "30 Minuten",
+        "1H": "1 Stunde",
+        "VOICE": "Voice",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Offener Kanal",
+        "TEMPLATES": "Vorlagen",
+        "EDIT_TEMPLATE": "Vorlage bearbeiten",
+        "DELETE_TEMPLATE": "Vorlage löschen",
+        "NEW_TEMPLATE": "Neue Vorlage",
+        "ADD_TEMPLATE": "Vorlage hinzufügen",
+        "CONTENT": "Inhalt",
+        "FIELD": "Feld",
+        "NO_ANYCONDITION_AVAILABLE": "Keine Bedingungen verfügbar",
+        "NO_ALLCONDITION_AVAILABLE": "Keine Bedingungen verfügbar",
+        "NO_ACTION_AVAILABLE": "Keine Aktionen verfügbar",
+        "ACTION": "Aktion",
+        "EDIT_ANYCONDITION": "Bedingung bearbeiten",
+        "DELETE_ANYCONDITION": "Bedingung löschen",
+        "NEW_ANYCONDITION": "Neue Bedingung",
+        "ADD_ANYCONDITION": "Bedingung hinzufügen",
+        "EDIT_ALLCONDITION": "Bedingung bearbeiten",
+        "DELETE_ALLCONDITION": "Bedingung löschen",
+        "NEW_ALLCONDITION": "Neue Bedingung",
+        "ADD_ALLCONDITION": "Bedingung hinzufügen",
+        "EDIT_ACTION": "Aktion bearbeiten",
+        "DELETE_ACTION": "Aktion löschen",
+        "NEW_ACTION": "Neue Maßnahme",
+        "ADD_ACTION": "Aktion hinzufügen",
+        "QUEUE": "Warteschlange",
+        "CALL_STATUS": "Anrufstatus",
+        "OUTBOUND_ROUTE": "Abgehende Routen",
+        "EQUALS": "Ist gleich",
+        "NOT_EQUALS": "Nicht gleich",
+        "CONTACT_MANAGER": "Contacts Manager",
+        "INTEGRATIONS": "Integrationen",
+        "MOTION_BAR": "Motion Bar",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL Weiterleitung",
+        "WEB_POPUP": "Web Popup",
+        "LIST": "Liste",
+        "INTEGRATION": "Integration",
+        "TEMPLATE": "Vorlage",
+        "URL": "URL",
+        "APPLICATION": "Anwendung",
+        "ARGUMENTS": "Argumente",
+        "NO_APPS_AVAILABLE": "Keine Anwendungen verfügbar",
+        "NEW_INTERVAL": "Neues Intervall",
+        "OUTBOUNDROUTE": "Abgehende Routen",
+        "OPERATOR": "Betreiber",
+        "NO_INTERVALS_AVAILABLE": "Keine Intervalle zur Verfügung",
+        "YES": "Ja",
+        "NO": "Keine",
+        "SUBJECT": "Betreff",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "BROWSER": "Browser",
+        "INTERVAL": "Intervall",
+        "INFO": "Info",
+        "TIME_RANGE": "Zeitbereich",
+        "WEEK_DAYS": "Woche Tage",
+        "MONTH_DAYS": "Monat Tage",
+        "MONTHS": "Monate",
+        "DROP_TO_UPLOAD_MESSAGE": "Sie können auch Audiodateien hier ablegen\" hochzuladen. Nur MP3-, WAV-, GSM-Max. 15 MB",
+        "POLLING_INTERVAL": "Abfrageintervall (Sekunden)",
+        "DASHBOARD": "Armaturenbrett",
+        "NEW_DASHBOARDITEM": "Neue Dashboard Widget",
+        "COUNTER": "Zähler",
+        "IFRAME": "IFrame",
+        "CLOCK": "Uhr",
+        "ADD_DASHBOARDITEM": "Dashboard Widget hinzufügen",
+        "EDIT_WIDGET": "Bearbeiten Widget",
+        "DELETE_WIDGET": "Löschen Widget",
+        "FLIP_WIDGET": "Flip Widget",
+        "TITLE": "Titel",
+        "UPDATE": "Aktualisieren",
+        "LAYOUT": "Layout",
+        "BACKGROUND_COLOR": "Hintergrundfarbe",
+        "FOREGROUND_COLOR": "Vordergrundfarbe",
+        "FOREGROUND_TITLE_COLOR": "Vordergrund Titel Farbe",
+        "THEME": "Thema",
+        "LIGHT": "Licht",
+        "DARK": "Dunkel",
+        "TIMEZONE": "Zeitzone",
+        "DIGITAL_FORMAT": "Digitale Datum Format",
+        "TOOLS_QUERY": "Abfrage",
+        "SELECT": "Wählen Sie",
+        "WHERE": "Wo",
+        "BACK": "Zurück",
+        "PROJECT": "Projekt",
+        "GOTOREALTIME_TRUNK": "In Echtzeit, Trunk gehen",
+        "GOTO_TRUNK": "Um die Leitungsbündel gehen"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/en.json b/public/app/main/apps/tools/i18n/en.json
new file mode 100644 (file)
index 0000000..1cee2bc
--- /dev/null
@@ -0,0 +1,304 @@
+{
+    "TOOLS": {
+        "NAME": "Name",
+        "TRUNKS": "Trunks",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is required",
+            "HOST_REQUIRED": "The Host is required",
+            "DEFAULTUSER_REQUIRED": "The Default User is required",
+            "CALLERID_REQUIRED": "The Caller ID is required",
+            "KEY_REQUIRED": "The Key is required",
+            "CONFIRM_NOT_MATCH": "The Passwords don' t match",
+            "VALIDITYSTART_REQUIRED": "The Start Time is required",
+            "VALIDITYEND_REQUIRED": "The End Time is required",
+            "MONTHDAY_REQUIRED": "The Month Day is required",
+            "HOUR_REQUIRED": "The Hour is required",
+            "CONTENT_REQUIRED": "The Content is required",
+            "URL_REQUIRED": "The URL is required",
+            "URL_MUST_VALID_URL": "The URL must be valid",
+            "APPLICATION_REQUIRED": "The Application is required",
+            "ARGUMENTS_REQUIRED": "The Arguments are required",
+            "NAME_MUST_VALID_PATTERN": "The Name must be written in a valid format",
+            "POLLING_INTERVAL_REQUIRED": "The Polling Interval is required",
+            "TITLE_REQUIRED": "The Title is required"
+        },
+        "HOST": "Host",
+        "SECRET": "Secret",
+        "DEFAULTUSER": "Default User",
+        "DESCRIPTION": "Description",
+        "ADD_TRUNK": "Add Trunk",
+        "HELP": {
+            "SECRET": "Authentication password to contact the provider.",
+            "HOST": "The domain or host name for the provider.",
+            "DEFAULTUSER": "Authentication username to contact the provider.",
+            "CALLERID": "The Caller ID, in the format \"name\" <number>",
+            "REGISTRY": "The trunk registry string, required by some providers, usually defaultuser:secret@host.",
+            "FROMDOMAIN": "Sets default From:domain in SIP messages when acting as a SIP ua (client). Some destinations may require mandatory identity name instead of only the IP address.",
+            "FROMUSER": "How your rovider knows you. This is which user to put instead of callerid when placing calls to peer (another SIP proxy). Valid only for type=peer.",
+            "OUTBOUNDPROXY": "IP_address or DNS SRV name (excluding the _sip._udp prefix) : SRV name, hostname, or IP address of the outbound SIP Proxy. Send outbound signaling to this proxy, not directly to the devices. Valid only for type=peer.",
+            "PORT": "The port number we want to connect to on the remote side.",
+            "CONTEXT": "The exploitable context for the trunk.",
+            "TYPE": "Determines the SIP role within asterisk. User: used to authenticate incoming - Peer: for outgoing calls - Friend: covers both characteristics of the above.",
+            "DTMFMODE": "How DTMF (Dual-Tone Multi-Frequency) are sent: RFC2833: the default mode, the DTMF are sent with RTP but outside the audio stream. INBAND: The DTMF is sent in audio stream of the current conversation, becoming audible from the speakers. Requires a high CPU load. INFO: Although this method is very reliable, it is not supported by all PBX devices and many SIP Trunk.",
+            "NAT": "Changes the behaviour of Asterisk for clients behind a firewall.If any of the comma-separated options is 'no', Asterisk will ignore any other settings and set nat=no.",
+            "QUALIFY": "Determines when the SIP is achievable.",
+            "ALLOWCODECS": "Allowed codecs in order of preference.",
+            "INSECURE": "Specifies how to handle connections with peer, allowing insecure settings.",
+            "CALL_LIMIT": "The limit number of the inbound and outbound calls at a time.",
+            "DIRECTMEDIA": "Asterisk by default tries to redirect the RTP media stream to go directly from the caller to the callee. Some devices do not support this (especially if one of them is behind a NAT). The default setting is YES. If you have all clients behind a NAT, or for some other reason want Asterisk to stay in the audio path, you may want to turn this off.",
+            "CALLCOUNTER": "Enable call counters on devices.",
+            "ADD_PHONE_TO_URI": "Define if the provider requires ';user=phone' on URI.",
+            "TRUST_REMOTE_PARTY_ID": "Define if Remote-Party-ID should be trusted.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "Status",
+            "ENCRYPTION": "Define if Remote-Party-ID should be sent (defaults to no).",
+            "TRANSPORT": "Set the default transports. The order determines the primary default transport.",
+            "OTHERFIELDS": "Other fields to add in the trunks conf files. To be written in asterisk format (key=value), each field on a single row."
+        },
+        "EDIT_TRUNK": "Edit Trunk",
+        "DELETE_TRUNK": "Delete Trunk",
+        "CREATED_AT": "Created At",
+        "SETTINGS": "Settings",
+        "ADVANCED": "Advanced",
+        "OTHER": "Other",
+        "ACTIVE": "Active",
+        "CONTEXT": "Context",
+        "CALLERID": "Caller ID",
+        "TYPE": "Type",
+        "DTMFMODE": "DTMF Mode",
+        "NAT": "NAT",
+        "QUALIFY": "Qualify",
+        "ALLOWCODECS": "Allowed Codecs",
+        "INSECURE": "Insecure",
+        "REGISTRY": "Registry",
+        "DIRECTMEDIA": "Direct Media",
+        "CALLCOUNTER": "Call Counter",
+        "FROMDOMAIN": "From Domain",
+        "FROMUSER": "From User",
+        "OUTBOUNDPROXY": "Outbound Proxy",
+        "ADD_PHONE_TO_URI": "Add Phone to URI",
+        "TRUST_REMOTE_PARTY_ID": "Trust Remote Party ID",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Send Remote Party ID Header",
+        "ENCRYPTION": "Encryption",
+        "PORT": "Port",
+        "TRANSPORT": "Transport",
+        "SAVE": "Save",
+        "VARIABLES": "Variables",
+        "ADD_VARIABLE": "Add Variable",
+        "EDIT_VARIABLE": "Edit Variable",
+        "DELETE_VARIABLE": "Delete Variable",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "TAGS": "Tags",
+        "ADD_TAG": "Add Tag",
+        "EDIT_TAG": "Edit Tag",
+        "DELETE_TAG": "Delete Tag",
+        "PAUSES": "Pauses",
+        "ADD_PAUSE": "Add Pause",
+        "EDIT_PAUSE": "Edit Pause",
+        "DELETE_PAUSE": "Delete Pause",
+        "CANNEDANSWERS": "Canned Answers",
+        "ADD_CANNEDANSWER": "Add Canned Answer",
+        "EDIT_CANNEDANSWER": "Edit Canned Answer",
+        "DELETE_CANNEDANSWER": "Delete Canned Answer",
+        "KEY": "Key",
+        "VALUE": "Value",
+        "SOUNDS": "Sounds",
+        "EDIT_SOUND": "Edit Sound",
+        "DELETE_SOUND": "Delete Sound",
+        "FINISH": "Finish",
+        "DROP_TO_UPLOAD": "Drop To Upload",
+        "TRIGGERS": "Triggers",
+        "EDIT_TRIGGER": "Edit Trigger",
+        "DELETE_TRIGGER": "Delete Trigger",
+        "ADD_TRIGGER": "Add Trigger",
+        "DELETE": "Delete",
+        "AUTOMATIONS": "Automations",
+        "EDIT_AUTOMATION": "Edit Automation",
+        "DELETE_AUTOMATION": "Delete Automation",
+        "ADD_AUTOMATION": "Add Automation",
+        "INTERVALS": "Intervals",
+        "EDIT_INTERVAL": "Edit Interval",
+        "DELETE_INTERVAL": "Delete Interval",
+        "ADD_INTERVAL": "Add Interval",
+        "TOOLS": "Tools",
+        "ID": "Id",
+        "AUDIO": "Audio",
+        "DOWNLOAD_SOUND": "Download Sound",
+        "UPLOAD_SOUND": "Tools",
+        "CHANNEL": "Channel",
+        "NEW_TRIGGER": "New Trigger",
+        "GENERAL": "General",
+        "STATUS": "Status",
+        "CONDITIONS&ACTIONS": "Conditions & Actions",
+        "ALLCONDITIONS": "Meet all these conditions:",
+        "ANYCONDITIONS": "Meet any of these conditions:",
+        "ACTIONS": "Actions:",
+        "NEW_AUTOMATION": "New Automation",
+        "TIMEOUT": "Timeout",
+        "PEERSTATUS": "Peer Status",
+        "CALL_LIMIT": "Calls Limit",
+        "OTHERFIELDS": "Other Fields",
+        "NEW_VARIABLE": "New Variable",
+        "NEW_TAG": "New Tag",
+        "NEW_PAUSE": "New Pause",
+        "NEW_CANNEDANSWER": "New Canned Answer",
+        "CONFIRM_PASSWORD": "Confirm Password",
+        "NEW_TRUNK": "New Trunk",
+        "FROM": "From",
+        "TO": "To",
+        "WEEKDAY": "Week Day",
+        "MONTHDAY": "Month Day",
+        "MONTH": "Month",
+        "ALWAYS": "Always",
+        "MON": "Monday",
+        "TUE": "Tuesday",
+        "WED": "Wednesday",
+        "THU": "Thursday",
+        "FRI": "Friday",
+        "SAT": "Saturday",
+        "SUN": "Sunday",
+        "JAN": "January",
+        "FEB": "February",
+        "MAR": "March",
+        "APR": "April",
+        "MAY": "May",
+        "JUN": "June",
+        "JUL": "July",
+        "AUG": "August",
+        "SEP": "September",
+        "OCT": "October",
+        "NOV": "November",
+        "DEC": "December",
+        "PASSWORD": "Password",
+        "CUSTOMDASHBOARDS": "Custom Dashboards",
+        "NEW_CUSTOMDASHBOARD": "New Custom Dashboard",
+        "ADD_CUSTOMDASHBOARD": "Add Custom Dashboard",
+        "EDIT_CUSTOMDASHBOARD": "Edit Custom Dashboard",
+        "DELETE_CUSTOMDASHBOARD": "Delete Custom Dashboard",
+        "SCHEDULER": "Scheduler",
+        "NEW_SCHEDULE": "New Schedule",
+        "ADD_SCHEDULE": "Add Schedule",
+        "EDIT_SCHEDULE": "Edit Schedule",
+        "DELETE_SCHEDULE": "Delete Schedule",
+        "SENDMAIL": "Send Mail",
+        "CONFIGURATION": "Configuration",
+        "MAIL": "Mail",
+        "REPORTTYPE": "Report Type",
+        "REPORT": "Report",
+        "OUTPUT": "Output",
+        "EXECUTEON": "Execute On",
+        "REPORTRANGE": "Report Range",
+        "VALIDITYSTART": "Start Time",
+        "VALIDITYEND": "End Time",
+        "EXECUTEEVERY": "Execute every",
+        "ACCOUNT": "Account",
+        "EMAILADDRESS": "Email Address",
+        "CURRENTDAY": "Current Day",
+        "DAILY": "Daily",
+        "WEEKLY": "Weekly",
+        "MONTHLY": "Monthly",
+        "PREVIOUS_DAY": "Previous Day",
+        "LAST_SEVEN_DAYS": "Last Seven Days",
+        "LAST_THIRTY_DAYS": "Last Thirthy Days",
+        "LAST_MONTH": "Last Month",
+        "WEEKDAYS": "Week Days",
+        "HOUR": "Hour",
+        "DEFAULT": "Default",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 minutes",
+        "30MIN": "30 minutes",
+        "1H": "1 hour",
+        "VOICE": "Voice",
+        "MAIL": "Mail",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Open Channel",
+        "TEMPLATES": "Templates",
+        "EDIT_TEMPLATE": "Edit Template",
+        "DELETE_TEMPLATE": "Delete Template",
+        "NEW_TEMPLATE": "New Template",
+        "ADD_TEMPLATE": "Add Template",
+        "CONTENT": "Content",
+        "FIELD": "Field",
+        "NO_ANYCONDITION_AVAILABLE": "No Conditions available",
+        "NO_ALLCONDITION_AVAILABLE": "No Conditions available",
+        "NO_ACTION_AVAILABLE": "No Actions available",
+        "ACTION": "Action",
+        "EDIT_ANYCONDITION": "Edit Condition",
+        "DELETE_ANYCONDITION": "Delete Condition",
+        "NEW_ANYCONDITION": "New Condition",
+        "ADD_ANYCONDITION": "Add Condition",
+        "EDIT_ALLCONDITION": "Edit Condition",
+        "DELETE_ALLCONDITION": "Delete Condition",
+        "NEW_ALLCONDITION": "New Condition",
+        "ADD_ALLCONDITION": "Add Condition",
+        "EDIT_ACTION": "Edit Action",
+        "DELETE_ACTION": "Delete Action",
+        "NEW_ACTION": "New Action",
+        "ADD_ACTION": "Add Action",
+        "QUEUE": "Queue",
+        "CALL_STATUS": "Call Status",
+        "OUTBOUNDROUTE": "Outbound Route",
+        "EQUALS": "Equals",
+        "NOT_EQUALS": "Not Equals",
+        "CONTACT_MANAGER": "Contacts Manager",
+        "INTEGRATIONS": "Integrations",
+        "MOTION_BAR": "Motion Bar",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL Forward",
+        "WEB_POPUP": "Web Popup",
+        "LIST": "List",
+        "INTEGRATION": "Integration",
+        "TEMPLATE": "Template",
+        "URL": "URL",
+        "APPLICATION": "Application",
+        "ARGUMENTS": "Arguments",
+        "NO_APPS_AVAILABLE": "No applications available",
+        "NEW_INTERVAL": "New Interval",
+        "OPERATOR": "Operator",
+        "NO_INTERVALS_AVAILABLE": "No intervals available",
+        "YES": "Yes",
+        "NO": "No",
+        "SUBJECT": "Subject",
+        "NO_AVAILABLE_INFO": "No available info",
+        "BROWSER": "Browser",
+        "INTERVAL": "Interval",
+        "INFO": "Info",
+        "TIME_RANGE": "Time Range",
+        "WEEK_DAYS": "Week Days",
+        "MONTH_DAYS": "Month Days",
+        "MONTHS": "Months",
+        "DROP_TO_UPLOAD_MESSAGE": "You can also drop audio here to upload. Only MP3, WAV, GSM - Max. 15MB",
+        "POLLING_INTERVAL": "Polling Interval(seconds)",
+        "DASHBOARD": "Dashboard",
+        "NEW_DASHBOARDITEM": "New Dashboard Widget",
+        "COUNTER": "Counter",
+        "IFRAME": "IFrame",
+        "CLOCK": "Clock",
+        "ADD_DASHBOARDITEM": "Add Dashboard Widget",
+        "EDIT_WIDGET": "Edit Widget",
+        "DELETE_WIDGET": "Delete Widget",
+        "FLIP_WIDGET": "Flip Widget",
+        "TITLE": "Title",
+        "UPDATE": "Update",
+        "LAYOUT": "Layout",
+        "BACKGROUND_COLOR": "Background Color",
+        "FOREGROUND_COLOR": "Foreground Color",
+        "FOREGROUND_TITLE_COLOR": "Foreground Title Color",
+        "THEME": "Theme",
+        "LIGHT": "Light",
+        "DARK": "Dark",
+        "TIMEZONE": "TimeZone",
+        "DIGITAL_FORMAT": "Digital Date Format",
+        "TOOLS_QUERY": "Query",
+        "SELECT": "Select",
+        "WHERE": "Where",
+        "BACK": "Back",
+        "PROJECT": "Project",
+        "GOTOREALTIME_TRUNK": "Go To Realtime Trunk",
+        "GOTO_TRUNK": "Go To Trunk"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/es.json b/public/app/main/apps/tools/i18n/es.json
new file mode 100644 (file)
index 0000000..9fdecf0
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "Nombre",
+        "TRUNKS": "Enlaces",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "HOST_REQUIRED": "El Host es obligatorio",
+            "DEFAULTUSER_REQUIRED": "El usuario predeterminado es obligatorio",
+            "CALLERID_REQUIRED": "El caller ID es necesario",
+            "KEY_REQUIRED": "La clave es necesaria",
+            "CONFIRM_NOT_MATCH": "Las contraseñas no coinciden",
+            "VALIDITYSTART_REQUIRED": "La hora de inicio es obligatorio",
+            "VALIDITYEND_REQUIRED": "La hora de finalización es obligatorio",
+            "MONTHDAY_REQUIRED": "El día del mes es obligatorio",
+            "HOUR_REQUIRED": "La hora es necesario",
+            "CONTENT_REQUIRED": "El contenido es obligatorio",
+            "URL_REQUIRED": "La dirección URL es necesaria",
+            "URL_MUST_VALID_URL": "La URL debe ser válida",
+            "APPLICATION_REQUIRED": "La aplicación es necesaria",
+            "ARGUUMENTS_REQUIRED": "Los argumentos son obligatorios",
+            "NAME_MUST_VALID_PATTERN": "El nombre debe estar escrito en un formato válido",
+            "ARGUMENTS_REQUIRED": "Los argumentos son obligatorios",
+            "POLLING_INTERVAL_REQUIRED": "El intervalo de sondeo es obligatorio",
+            "TITLE_REQUIRED": "El título es obligatorio"
+        },
+        "HOST": "Host",
+        "SECRET": "Secret",
+        "DEFAULTUSER": "Usuario predeterminado",
+        "DESCRIPTION": "Descripción",
+        "ADD_TRUNK": "Agregar tronco",
+        "HELP": {
+            "SECRET": "Contraseña de autenticación para ponerse en contacto con el proveedor.",
+            "HOST": "El dominio o nombre de host para el proveedor.",
+            "DEFAULTUSER": "Nombre de usuario de autenticación para ponerse en contacto con el proveedor.",
+            "CALLERID": "El ID del llamante, en el formato \"nombre\" <número>",
+            "REGISTRY": "La cadena de registro del tronco, requerida por algunos proveedores, generalmente defaultuser:secret@host.",
+            "FROMDOMAIN": "Desde:dominio predeterminado se establece en mensajes SIP cuando actúa como un SIP UA (cliente). Algunos destinos pueden requerir el nombre de identidad obligatorio en lugar de sólo la dirección IP.",
+            "FROMUSER": "Cómo tu rovider sabe usted. Este es el usuario que desea poner en lugar de callerid cuando realice llamadas a punto (otro SIP proxy). Válido sólo para type=peer.",
+            "OUTBOUNDPROXY": "Dirección_IP o nombre DNS SRV (excluyendo el _sip._udp prefijo) : nombre SRV, nombre de host o la dirección IP del proxy SIP salientes. Enviar señales de salida a este proxy, y no directamente a los dispositivos. Válido sólo para type=peer.",
+            "PORT": "El número de puerto que queremos conectar en el lado remoto.",
+            "CONTEXT": "El contexto aprovechables para el tronco.",
+            "TYPE": "Determina la función SIP en Asterisk. Usuario: usado para autenticar entrante - Peer: para llamadas salientes - Amigo: cubre tanto las características de los anteriores.",
+            "DTMFMODE": "Cómo (DTMF Dual-Tone Multi-Frequency) son enviados: RFC2833: el modo predeterminado, el DTMF se envían con RTP pero fuera del flujo de audio. INBAND: El DTMF se envían en audio stream de la conversación actual, haciéndose audible desde los altavoces. Requiere una gran carga de CPU. INFO: Aunque este método es muy fiable, que no es compatible con todos los dispositivos de la PBX y muchos troncal SIP.",
+            "NAT": "Cambia el comportamiento de Asterisk para clientes detrás de un firewall.Si ninguna de las opciones separadas por comas es 'no', Asterisco ignorará cualquier otra configuración y definir nat=no.",
+            "QUALIFY": "Determina cuando la SIP es alcanzable.",
+            "ALLOWCODECS": "Códecs permitidos por orden de preferencia.",
+            "INSECURE": "Especifica cómo manejar conexiones con peer, permitiendo configuraciones inseguras.",
+            "CALL_LIMIT": "Limitar el número de las llamadas entrantes y salientes en un momento.",
+            "DIRECTMEDIA": "Asterisco por defecto intenta redirigir el flujo de datos RTP para ir directamente desde la llamada al destinatario. Algunos dispositivos no admiten esta (especialmente si uno de ellos está detrás de un NAT). El valor predeterminado es yes. Si usted tiene todos los clientes detrás de un NAT, o por alguna otra razón desea asterisco para permanecer en la ruta de audio, puede que desee desactivar esta función.",
+            "CALLCOUNTER": "Habilitar contadores de llamadas en los dispositivos.",
+            "ADD_PHONE_TO_URI": "Definir si el proveedor requiere la ';user=phone' en la URI.",
+            "TRUST_REMOTE_PARTY_ID": "Definir si Remote-Party-ID debe ser de confianza.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "El estado",
+            "ENCRYPTION": "Definir si Remote-Party-ID debe ser enviado (por defecto no).",
+            "TRANSPORT": "Establecer el valor predeterminado de los transportes. El orden determina el principal transporte predeterminado.",
+            "OTHERFIELDS": "Otros campos para añadir archivos conf en los troncos. Al estar escrito en formato de asterisk (clave=valor), cada campo en una sola fila."
+        },
+        "EDIT_TRUNK": "Editar tronco",
+        "DELETE_TRUNK": "Eliminar el tronco",
+        "CREATED_AT": "Creado en",
+        "SETTINGS": "Configuración",
+        "ADVANCED": "Advanced",
+        "OTHER": "Otros",
+        "ACTIVE": "Active",
+        "CONTEXT": "Contexto",
+        "CALLERID": "Caller ID (identificador de llamadas)",
+        "TYPE": "Tipo",
+        "DTMFMODE": "Modo de DTMF",
+        "NAT": "NAT",
+        "QUALIFY": "Calificar",
+        "ALLOWCODECS": "Códecs permitidos",
+        "INSECURE": "La inseguridad",
+        "REGISTRY": "Registro",
+        "DIRECTMEDIA": "Direct Media",
+        "CALLCOUNTER": "El contador de llamadas",
+        "FROMDOMAIN": "Desde el dominio",
+        "FROMUSER": "Del Usuario",
+        "OUTBOUNDPROXY": "Proxy saliente",
+        "ADD_PHONE_TO_URI": "Añadir el teléfono a la URI",
+        "TRUST_REMOTE_PARTY_ID": "Confiar en la parte remota ID",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Enviar parte remota Encabezado de ID.",
+        "ENCRYPTION": "Cifrado",
+        "PORT": "Puerto",
+        "TRANSPORT": "Transporte",
+        "SAVE": "Guardar",
+        "VARIABLES": "Variables",
+        "ADD_VARIABLE": "Agregar variable",
+        "EDIT_VARIABLE": "Editar Variable",
+        "DELETE_VARIABLE": "Eliminar variable",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "TAGS": "Tags",
+        "ADD_TAG": "Agregar etiqueta",
+        "EDIT_TAG": "Editar etiqueta",
+        "DELETE_TAG": "Eliminar etiqueta",
+        "PAUSES": "Pausa",
+        "ADD_PAUSE": "Agregar pausa",
+        "EDIT_PAUSE": "Editar Pausa",
+        "DELETE_PAUSE": "Eliminar una pausa",
+        "CANNEDANSWERS": "Respuestas enlatadas",
+        "ADD_CANNEDANSWER": "Agregar respuesta enlatada",
+        "EDIT_CANNEDANSWER": "Editar respuesta enlatada",
+        "DELETE_CANNEDANSWER": "Eliminar respuesta enlatada",
+        "KEY": "Key",
+        "VALUE": "Valor",
+        "SOUNDS": "Sonidos",
+        "EDIT_SOUND": "Editar sonido",
+        "DELETE_SOUND": "Eliminar sonido",
+        "FINISH": "Finalizar",
+        "DROP_TO_UPLOAD": "Soltar para subir",
+        "TRIGGERS": "Activa",
+        "EDIT_TRIGGER": "Editar desencadenante",
+        "DELETE_TRIGGER": "Desencadenador Delete",
+        "ADD_TRIGGER": "Agregar Trigger",
+        "DELETE": "Eliminar",
+        "AUTOMATIONS": "Automatizaciones",
+        "EDIT_AUTOMATION": "Automatización de edición",
+        "DELETE_AUTOMATION": "Eliminar la automatización",
+        "ADD_AUTOMATION": "Agregar Automatización",
+        "INTERVALS": "Intervalos",
+        "EDIT_INTERVAL": "Editar intervalo",
+        "DELETE_INTERVAL": "Eliminar el intervalo",
+        "ADD_INTERVAL": "Agregar intervalo",
+        "TOOLS": "Herramientas",
+        "ID": "Id",
+        "AUDIO": "Audio",
+        "DOWNLOAD_SOUND": "Descargar sonido",
+        "UPLOAD_SOUND": "Herramientas",
+        "CHANNEL": "Canal",
+        "NEW_TRIGGER": "Nuevo desencadenador",
+        "GENERAL": "General",
+        "STATUS": "El estado",
+        "CONDITIONS&ACTIONS": "Condiciones y acciones",
+        "ALLCONDITIONS": "Satisfacer todas estas condiciones:",
+        "ANYCONDITIONS": "Cumplir alguna de estas condiciones:",
+        "ACTIONS": "Acciones:",
+        "NEW_AUTOMATION": "Automatización de nuevo",
+        "TIMEOUT": "Timeout",
+        "PEERSTATUS": "Estado de pares",
+        "CALL_LIMIT": "Límite de llamadas",
+        "OTHERFIELDS": "Otros campos",
+        "NEW_VARIABLE": "Nueva variable",
+        "NEW_TAG": "Nueva etiqueta",
+        "NEW_PAUSE": "Nueva Pausa",
+        "NEW_CANNEDANSWER": "Nueva respuesta enlatada",
+        "CONFIRM_PASSWORD": "Confirmar contraseña",
+        "NEW_TRUNK": "Nuevo enlace",
+        "FROM": "Desde",
+        "TO": "A",
+        "WEEKDAY": "Día de la semana",
+        "MONTHDAY": "Día del mes",
+        "MONTH": "Mes",
+        "ALWAYS": "Siempre",
+        "MON": "Lunes",
+        "TUE": "Martes",
+        "WED": "Miércoles",
+        "THU": "Jueves",
+        "FRI": "Viernes",
+        "SAT": "Sábado",
+        "SUN": "Domingo",
+        "JAN": "Enero",
+        "FEB": "Febrero",
+        "MAR": "Marzo",
+        "APR": "Abril",
+        "MAY": "Mayo",
+        "JUN": "Junio",
+        "JUL": "Julio",
+        "AUG": "Agosto",
+        "SEP": "Septiembre",
+        "OCT": "Octubre",
+        "NOV": "Noviembre",
+        "DEC": "Diciembre",
+        "PASSWORD": "Contraseña",
+        "CUSTOMDASHBOARDS": "Paneles personalizados",
+        "NEW_CUSTOMDASHBOARD": "Nuevo panel personalizado",
+        "ADD_CUSTOMDASHBOARD": "Agregar panel personalizado",
+        "EDIT_CUSTOMDASHBOARD": "Editar panel personalizado",
+        "DELETE_CUSTOMDASHBOARD": "Borrar panel personalizado",
+        "SCHEDULER": "Scheduler",
+        "NEW_SCHEDULE": "Nuevo calendario",
+        "ADD_SCHEDULE": "Añadir programa",
+        "EDIT_SCHEDULE": "Editar programación",
+        "DELETE_SCHEDULE": "Eliminar programación",
+        "SENDMAIL": "Enviar correo",
+        "CONFIGURATION": "Configuración",
+        "MAIL": "Mail",
+        "REPORTTYPE": "Tipo de informe",
+        "REPORT": "Informe",
+        "OUTPUT": "Salida",
+        "EXECUTEON": "Ejecutar en",
+        "REPORTRANGE": "Intervalo de informes",
+        "VALIDITYSTART": "Hora de inicio",
+        "VALIDITYEND": "Hora de finalización",
+        "EXECUTEEVERY": "Ejecutar cada",
+        "ACCOUNT": "Cuenta",
+        "EMAILADDRESS": "Dirección de correo electrónico",
+        "CURRENTDAY": "Día actual",
+        "DAILY": "A diario",
+        "WEEKLY": "Semanalmente",
+        "MONTHLY": "Mensualmente",
+        "PREVIOUS_DAY": "Día anterior",
+        "LAST_SEVEN_DAYS": "Últimos siete días",
+        "LAST_THIRTY_DAYS": "Últimos días Thirthy",
+        "LAST_MONTH": "El mes pasado",
+        "WEEKDAYS": "Los días de semana",
+        "HOUR": "Hora",
+        "DEFAULT": "Default",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 minutos",
+        "30MIN": "30 minutos",
+        "1H": "1 hora",
+        "VOICE": "Voz",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Canal abierto",
+        "TEMPLATES": "Plantillas",
+        "EDIT_TEMPLATE": "Editar plantilla",
+        "DELETE_TEMPLATE": "Eliminar la plantilla",
+        "NEW_TEMPLATE": "Nueva plantilla",
+        "ADD_TEMPLATE": "Añadir plantilla",
+        "CONTENT": "Contenido",
+        "FIELD": "Campo",
+        "NO_ANYCONDITION_AVAILABLE": "No hay condiciones disponibles",
+        "NO_ALLCONDITION_AVAILABLE": "No hay condiciones disponibles",
+        "NO_ACTION_AVAILABLE": "No hay acciones disponibles",
+        "ACTION": "Acción",
+        "EDIT_ANYCONDITION": "Editar condición",
+        "DELETE_ANYCONDITION": "Eliminar la condición",
+        "NEW_ANYCONDITION": "Nueva condición",
+        "ADD_ANYCONDITION": "Agregar condición",
+        "EDIT_ALLCONDITION": "Editar condición",
+        "DELETE_ALLCONDITION": "Eliminar la condición",
+        "NEW_ALLCONDITION": "Nueva condición",
+        "ADD_ALLCONDITION": "Agregar condición",
+        "EDIT_ACTION": "Editar acción",
+        "DELETE_ACTION": "Acción eliminar",
+        "NEW_ACTION": "Nueva acción",
+        "ADD_ACTION": "Agregar Acción",
+        "QUEUE": "Cola",
+        "CALL_STATUS": "Estado de llamada",
+        "OUTBOUND_ROUTE": "Ruta saliente",
+        "EQUALS": "Es igual a",
+        "NOT_EQUALS": "No es igual a",
+        "CONTACT_MANAGER": "Administrador de contactos",
+        "INTEGRATIONS": "Integraciones",
+        "MOTION_BAR": "Barra de movimiento",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "Reenvío de URL",
+        "WEB_POPUP": "Popup Web",
+        "LIST": "Lista",
+        "INTEGRATION": "Integración",
+        "TEMPLATE": "Plantilla",
+        "URL": "URL",
+        "APPLICATION": "Aplicación",
+        "ARGUMENTS": "Argumentos",
+        "NO_APPS_AVAILABLE": "No hay aplicaciones disponibles",
+        "NEW_INTERVAL": "Nueva Intervall",
+        "OUTBOUNDROUTE": "Ruta saliente",
+        "OPERATOR": "Operador",
+        "NO_INTERVALS_AVAILABLE": "Los intervalos no disponible",
+        "YES": "Sí",
+        "NO": "No hay",
+        "SUBJECT": "Asunto",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "BROWSER": "Navegador",
+        "INTERVAL": "Intervalo",
+        "INFO": "Info",
+        "TIME_RANGE": "Intervalo de tiempo",
+        "WEEK_DAYS": "Los días de semana",
+        "MONTH_DAYS": "Ciertos días del mes",
+        "MONTHS": "Meses",
+        "DROP_TO_UPLOAD_MESSAGE": "También puede caer aquí para cargar audio. Sólo archivos MP3, WAV, GSM - Max. 15MB",
+        "POLLING_INTERVAL": "Intervalo de sondeo (segundos)",
+        "DASHBOARD": "Salpicadero",
+        "NEW_DASHBOARDITEM": "Nuevo widget de Dashboard",
+        "COUNTER": "Counter",
+        "IFRAME": "IFrame",
+        "CLOCK": "Reloj",
+        "ADD_DASHBOARDITEM": "Agregar widget de Dashboard",
+        "EDIT_WIDGET": "Editar Widget",
+        "DELETE_WIDGET": "Eliminar widget",
+        "FLIP_WIDGET": "Flip Widget",
+        "TITLE": "Título",
+        "UPDATE": "Actualizar",
+        "LAYOUT": "Diseño",
+        "BACKGROUND_COLOR": "Color de fondo",
+        "FOREGROUND_COLOR": "Color de primer plano",
+        "FOREGROUND_TITLE_COLOR": "Color del título de primer plano",
+        "THEME": "Tema",
+        "LIGHT": "Luz",
+        "DARK": "Oscuridad",
+        "TIMEZONE": "Zona horaria",
+        "DIGITAL_FORMAT": "Formato de fecha digital",
+        "TOOLS_QUERY": "Consulta",
+        "SELECT": "Seleccione",
+        "WHERE": "Donde",
+        "BACK": "Volver",
+        "PROJECT": "Proyecto",
+        "GOTOREALTIME_TRUNK": "Ir a Realtime tronco",
+        "GOTO_TRUNK": "Ir al tronco"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/fa.json b/public/app/main/apps/tools/i18n/fa.json
new file mode 100644 (file)
index 0000000..8c56aa5
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "نام",
+        "TRUNKS": "صندوقها",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "HOST_REQUIRED": "ميزبان لازم است.",
+            "DEFAULTUSER_REQUIRED": "کاربر پیش فرض لازم است.",
+            "CALLERID_REQUIRED": "شناسه تماس گیرنده لازم است.",
+            "KEY_REQUIRED": "کلید مورد نیاز است.",
+            "CONFIRM_NOT_MATCH": "از دون' t مسابقه اسامی رمز",
+            "VALIDITYSTART_REQUIRED": "شروع زمان لازم است.",
+            "VALIDITYEND_REQUIRED": "پايان زمان لازم است.",
+            "MONTHDAY_REQUIRED": "ماه در روز لازم است.",
+            "HOUR_REQUIRED": "ساعت لازم است.",
+            "CONTENT_REQUIRED": "محتوای مورد نیاز است.",
+            "URL_REQUIRED": "URL مورد نیاز است.",
+            "URL_MUST_VALID_URL": "URL باید معتبر باشد.",
+            "APPLICATION_REQUIRED": "برنامه کاربردی مورد نیاز است.",
+            "ARGUUMENTS_REQUIRED": "دلايل لازم هستند.",
+            "NAME_MUST_VALID_PATTERN": "نام باید با فرمت معتبر نوشته شده است",
+            "ARGUMENTS_REQUIRED": "دلايل لازم هستند.",
+            "POLLING_INTERVAL_REQUIRED": "از حوزه فاصله لازم است.",
+            "TITLE_REQUIRED": "به عنوان مورد نیاز است."
+        },
+        "HOST": "کشور میزبان",
+        "SECRET": "راز",
+        "DEFAULTUSER": "کاربر پیش فرض",
+        "DESCRIPTION": "شرح",
+        "ADD_TRUNK": "افزودن تنه",
+        "HELP": {
+            "SECRET": "اسم رمز را تأیید اعتبار سرویس دهنده تماس بگیرید.",
+            "HOST": "هم در حوزه و يا نام سرویس دهنده را برای میزبان است.",
+            "DEFAULTUSER": "تأیید اعتبار به نام کاربری سرویس دهنده تماس بگیرید.",
+            "CALLERID": "شناسه تماس گیرنده را به نام \"قالب\"> <شماره",
+            "REGISTRY": "ساقة آن سيم های ثبتی، لازم است با برخی از ارائه دهندگان، معمولا defaultuser راز@دقيقه ميزبان است.",
+            "FROMDOMAIN": "مجموعه ای از پیش فرض:وقتي نوشيدني در پيام حوزه به عنوان بازيگری UA نوشيدني (سرویس گیرنده). برخي ممكن است نياز به هويت های تحصيلی الزامی به جاي اينكه فقط به نام IP است.",
+            "FROMUSER": "آیا شما چگونه rovider می داند. این است که کاربر را به جای callerid وقتی طرحی را می نامد (نظیر-نوشيدني ديگر بجنگند). فقط به خاطر نوع معتبر=مقدس طوی هستی.",
+            "OUTBOUNDPROXY": "IP address و DNS SRV (حذف نام اين نوشيدني - خيلى لطف داربد._udp وراث): SRV نام hostname یا IP از کارکنان ديگر نوشيدني بجنگند. برای ارسال به اين نشانهء بجنگند، نه به طور مستقیم به دستگاه های دیگر است. فقط به خاطر نوع معتبر=مقدس طوی هستی.",
+            "PORT": "ما مى خواهيم از شماره پورت برای اتصال از راه دور را بر طرف كرد.",
+            "CONTEXT": "در بافت exploitable برای بالا تنه است.",
+            "TYPE": "نقش تعيين كننده در داخل نوشيدني asterisk است. کاربر تایید اعتبار ورودی استفاده می شود: - برای تماس های خروجی کمبودى: دوست: - هر دو خصوصیات پوشش بالاتر است.",
+            "DTMFMODE": "چگونه Dual-Tone Multi-Frequency (DTMF) فرستاده اند: RFC2833: در حالت پیش فرض، با RTP ارسال DTMF هستند ولی در خارج از سیستم صوتی در جريان است. INBAND: DTMF صوتی فرستاده است که در جریان گفتگو، جاري شدن بوق از بلندگو است. يك بار CPU بالا نیاز دارد. اطلاعات بیشتر: اگرچه اين روش بسيار معتبر است و نه مورد حمايت همه دستگاه ها و بسياري از PBX تنه نوشيدني است.",
+            "NAT": "تغییرات در رفتار Asterisk برای مراجعان در پشت یک دیوار آتش است.اگر یکی از گزینه ها از جمله جدا شده است خیر، Asterisk تنظیمات دیگری را ناديده گرفته خواهد شد و 3-1=تنظیم خیر.",
+            "QUALIFY": "وقتي اين نوشيدني تعيين كننده دست يافتني است.",
+            "ALLOWCODECS": "Codecs اجازه داد تا در نظم و ترتيب تقدم داشت.",
+            "INSECURE": "دستگیره را تعیین می کند که چگونه با کمبودى اتصالات اجازه ناامن، تنظیم می شود.",
+            "CALL_LIMIT": "محدود کردن تعداد مسافرانی که هستند و در هر زمان می نامد.",
+            "DIRECTMEDIA": "به طور پیش فرض مي كوشد Asterisk Redirect RTP را در رسانه ها به جريان مستقيم از تماس گیرنده به callee. برخی از دستگاه های پشتیبانی نکنید (بخصوص اگر یکی از آنها این است که در پشت سر، 3-1). تنظیم پیش فرض: بله. اگر شما تمام مشتريان 3-1 عقب بود، يا دليل ديگر ميخواهند Asterisk ماندن در مسیر صوتی، ممکن است که شما می خواهید این را روشن خاموش می کند.",
+            "CALLCOUNTER": "شمارنده ها در دستگاه های تلفن را فعال کنید.",
+            "ADD_PHONE_TO_URI": "تعریف اگر نیاز به سرویس دهنده کاربر=31 دسامبر 2012 '' در اوري تلفن است.",
+            "TRUST_REMOTE_PARTY_ID": "اگر تعريف شناسه Remote-Party بايد اعتماد كرد.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "وضعیت",
+            "ENCRYPTION": "اگر تعريف شناسه Remote-Party فرستاده شود (نه) را به تنظیمات پیش فرض کارخانه ای برگردانید.",
+            "TRANSPORT": "تنظیم پیش فرض را در خلسه است. نظام حمل و نقل پیش فرض اولیه را تعیین می کند.",
+            "OTHERFIELDS": "ساير رشته ها افزودن فایل conf در كتابی محفوظ شده است. نوشته مى شد با فرمت (کلید asterisk=مقدار) و هر رشته را در یك ردیف است."
+        },
+        "EDIT_TRUNK": "ویرایش تنه",
+        "DELETE_TRUNK": "تنه را حذف کنید",
+        "CREATED_AT": "ایجاد شده در",
+        "SETTINGS": "تنظیمات",
+        "ADVANCED": "پيش رفت.",
+        "OTHER": "ساير",
+        "ACTIVE": "فعال",
+        "CONTEXT": "متن",
+        "CALLERID": "شناسه تماس گیرنده",
+        "TYPE": "نوع دستگاه",
+        "DTMFMODE": "حالت DTMF",
+        "NAT": "ویتنام میزبان",
+        "QUALIFY": "نوجوانان",
+        "ALLOWCODECS": "Codecs مجاز",
+        "INSECURE": "ناامن",
+        "REGISTRY": "فهرست",
+        "DIRECTMEDIA": "رسانه های مستقیم",
+        "CALLCOUNTER": "تماس بگیرید",
+        "FROMDOMAIN": "از حوزه",
+        "FROMUSER": "از این کاربر",
+        "OUTBOUNDPROXY": "کارکنان ديگر بجنگند",
+        "ADD_PHONE_TO_URI": "افزودن به اوري تلفن",
+        "TRUST_REMOTE_PARTY_ID": "شناسه اعتماد حزب از راه دور",
+        "SEND_REMOTE_PARTY_ID_HEADER": "حزب از راه دور ارسال شناسه سرصفحه",
+        "ENCRYPTION": "رمزگذاری",
+        "PORT": "بندر",
+        "TRANSPORT": "حمل و نقل",
+        "SAVE": "ذخیره",
+        "VARIABLES": "متغیرها",
+        "ADD_VARIABLE": "افزودن متغیر",
+        "EDIT_VARIABLE": "ویرایش متغیر",
+        "DELETE_VARIABLE": "حذف متغیر",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "TAGS": "برچسب",
+        "ADD_TAG": "برچسب اضافه کنید",
+        "EDIT_TAG": "ویرایش برچسب",
+        "DELETE_TAG": "برچسب حذف می شود",
+        "PAUSES": "موقتاً متوقف",
+        "ADD_PAUSE": "مکث اضافه کنید",
+        "EDIT_PAUSE": "ویرایش مکث",
+        "DELETE_PAUSE": "مکث را حذف کنید",
+        "CANNEDANSWERS": "پاسخ كردن غذاى كنسرو شده",
+        "ADD_CANNEDANSWER": "پاسخ اضافه كردن غذاى كنسرو شده",
+        "EDIT_CANNEDANSWER": "ویرایش كردن غذاى كنسرو شده پاسخ",
+        "DELETE_CANNEDANSWER": "حذف كردن غذاى كنسرو شده پاسخ",
+        "KEY": "استاديار دانشگاه علوم پزشكي گرگان",
+        "VALUE": "مقدار",
+        "SOUNDS": "بنظر میرسد",
+        "EDIT_SOUND": "ویرایش صدا",
+        "DELETE_SOUND": "حذف صدا",
+        "FINISH": "پایان",
+        "DROP_TO_UPLOAD": "قطره را بارگذاری",
+        "TRIGGERS": "انتلكتوئل",
+        "EDIT_TRIGGER": "ویرایش ماشه",
+        "DELETE_TRIGGER": "ماشه را حذف کنید",
+        "ADD_TRIGGER": "ماشه را اضافه کنید",
+        "DELETE": "حذف",
+        "AUTOMATIONS": "Automations",
+        "EDIT_AUTOMATION": ") اتوماسيون چالشی هميشگی برای ویرایش",
+        "DELETE_AUTOMATION": ") اتوماسيون چالشی هميشگی را حذف کنید",
+        "ADD_AUTOMATION": ") اتوماسيون چالشی هميشگی اضافه کنید",
+        "INTERVALS": "فواصل",
+        "EDIT_INTERVAL": "ویرایش فاصله",
+        "DELETE_INTERVAL": "فاصله را حذف کنید",
+        "ADD_INTERVAL": "افزودن فاصله",
+        "TOOLS": "ابزارها",
+        "ID": "شناسه",
+        "AUDIO": "های صوتی",
+        "DOWNLOAD_SOUND": "دانلود صوت",
+        "UPLOAD_SOUND": "ابزارها",
+        "CHANNEL": "شبكه",
+        "NEW_TRIGGER": "ترفندي جديد",
+        "GENERAL": "سردار",
+        "STATUS": "وضعیت",
+        "CONDITIONS&ACTIONS": "و با اعمال شرايط",
+        "ALLCONDITIONS": "براي مقابله با اين شرايط:",
+        "ANYCONDITIONS": "براي مقابله با اين شرايط:",
+        "ACTIONS": "اقدامات:",
+        "NEW_AUTOMATION": ") اتوماسيون چالشی هميشگی جدید",
+        "TIMEOUT": "پایان زمان مجاز",
+        "PEERSTATUS": "وضعیت کمبودى",
+        "CALL_LIMIT": "محدود کردن تماس ها",
+        "OTHERFIELDS": "ساير رشته ها",
+        "NEW_VARIABLE": "متغیر جدید",
+        "NEW_TAG": "برچسب جدید",
+        "NEW_PAUSE": "مکث جدید",
+        "NEW_CANNEDANSWER": "پاسخ جدید كردن غذاى كنسرو شده",
+        "CONFIRM_PASSWORD": "تأیید رمز ورود",
+        "NEW_TRUNK": "تنه جدید",
+        "FROM": "از",
+        "TO": "به",
+        "WEEKDAY": "روز هفته",
+        "MONTHDAY": "ماه روز",
+        "MONTH": "ماه",
+        "ALWAYS": "همیشه",
+        "MON": "دوشنبه",
+        "TUE": "سه شنبه",
+        "WED": "چهارشنبه",
+        "THU": "پنجشنبه",
+        "FRI": "جمعه",
+        "SAT": "شنبه",
+        "SUN": "يكشنبه",
+        "JAN": "ژانویه",
+        "FEB": "فوریه",
+        "MAR": "مارس",
+        "APR": "آوریل",
+        "MAY": "ماه مه",
+        "JUN": "ماه ژوئن",
+        "JUL": "ماه ژوئيه",
+        "AUG": "در ماه اوت",
+        "SEP": "ماه سپتامبر",
+        "OCT": "ماه اکتبر",
+        "NOV": "ماه نوامبر",
+        "DEC": "دسامبر",
+        "PASSWORD": "اسم رمز",
+        "CUSTOMDASHBOARDS": "عرف Dashboards",
+        "NEW_CUSTOMDASHBOARD": "رسم جديد / داشبورد",
+        "ADD_CUSTOMDASHBOARD": "افزودن اختصاصی / داشبورد",
+        "EDIT_CUSTOMDASHBOARD": "ویرایش اختصاصی / داشبورد",
+        "DELETE_CUSTOMDASHBOARD": "حذف عادت / داشبورد",
+        "SCHEDULER": "Scheduler",
+        "NEW_SCHEDULE": "برنامه جدید",
+        "ADD_SCHEDULE": "افزودن برنامه",
+        "EDIT_SCHEDULE": "ویرایش برنامه",
+        "DELETE_SCHEDULE": "برنامه را حذف کنید",
+        "SENDMAIL": "پستی",
+        "CONFIGURATION": "پیکربندی",
+        "MAIL": "پست",
+        "REPORTTYPE": "نوع گزارش",
+        "REPORT": "گزارش",
+        "OUTPUT": "خروجی",
+        "EXECUTEON": "در اجراي",
+        "REPORTRANGE": "دامنه گزارش",
+        "VALIDITYSTART": "زمان شروع",
+        "VALIDITYEND": "زمان پایان",
+        "EXECUTEEVERY": "اجراي هر",
+        "ACCOUNT": "اشتراک",
+        "EMAILADDRESS": "آدرس ایمیل",
+        "CURRENTDAY": "روز فعلی",
+        "DAILY": "روزانه",
+        "WEEKLY": "هفتگی",
+        "MONTHLY": "ماهانه",
+        "PREVIOUS_DAY": "روز گذشته",
+        "LAST_SEVEN_DAYS": "هفت روز گذشته",
+        "LAST_THIRTY_DAYS": "آخرين روزهاي Thirthy",
+        "LAST_MONTH": "ماه گذشته",
+        "WEEKDAYS": "ايام هفته",
+        "HOUR": "یک ساعت",
+        "DEFAULT": "پیش فرض",
+        "CSV": "با فرمت CSV",
+        "PDF": "PDF",
+        "15MIN": "15 دقیقه",
+        "30MIN": "30 دقیقه",
+        "1H": "1 ساعت",
+        "VOICE": "صدا",
+        "CHAT": "چت روم",
+        "SMS": "SMS",
+        "OPENCHANNEL": "کانال را باز کنید",
+        "TEMPLATES": "Templates",
+        "EDIT_TEMPLATE": "ویرایش الگو",
+        "DELETE_TEMPLATE": "قالبی را حذف کنید",
+        "NEW_TEMPLATE": "الگوی جدید",
+        "ADD_TEMPLATE": "افزودن الگوی",
+        "CONTENT": "محتوا",
+        "FIELD": "رشته",
+        "NO_ANYCONDITION_AVAILABLE": "در شرايط موجود است نه",
+        "NO_ALLCONDITION_AVAILABLE": "در شرايط موجود است نه",
+        "NO_ACTION_AVAILABLE": "اقدامی انجام نشده است",
+        "ACTION": "عمل",
+        "EDIT_ANYCONDITION": "ویرایش شرط",
+        "DELETE_ANYCONDITION": "اين شرط را حذف کنید",
+        "NEW_ANYCONDITION": "شرایط جدید",
+        "ADD_ANYCONDITION": "افزودن شرط",
+        "EDIT_ALLCONDITION": "ویرایش شرط",
+        "DELETE_ALLCONDITION": "اين شرط را حذف کنید",
+        "NEW_ALLCONDITION": "شرایط جدید",
+        "ADD_ALLCONDITION": "افزودن شرط",
+        "EDIT_ACTION": "ویرایش عمل",
+        "DELETE_ACTION": "این اقدام را حذف کنید",
+        "NEW_ACTION": "اقدام جدید",
+        "ADD_ACTION": "این اقدام را اضافه کنید",
+        "QUEUE": "صف",
+        "CALL_STATUS": "وضعیت تماس",
+        "OUTBOUND_ROUTE": "برای مسیر",
+        "EQUALS": "برابران",
+        "NOT_EQUALS": "سجده كردن نيست.",
+        "CONTACT_MANAGER": "تماس با مدیر",
+        "INTEGRATIONS": "Integrations",
+        "MOTION_BAR": "نوار حركت",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "آدرس کامل به جلو",
+        "WEB_POPUP": "وب Popup",
+        "LIST": "فهرست",
+        "INTEGRATION": "یکپارچگی",
+        "TEMPLATE": "الگوی",
+        "URL": "آدرس کامل",
+        "APPLICATION": "برنامه کاربردی",
+        "ARGUMENTS": "دلايل",
+        "NO_APPS_AVAILABLE": "برنامه های کاربردی موجود نيست",
+        "NEW_INTERVAL": "زمانی ایمنی جدید",
+        "OUTBOUNDROUTE": "برای مسیر",
+        "OPERATOR": "اپراتور",
+        "NO_INTERVALS_AVAILABLE": "فواصل موجود نيست",
+        "YES": "بله",
+        "NO": "نه",
+        "SUBJECT": "موضوع",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "BROWSER": "مرورگر",
+        "INTERVAL": "فاصله",
+        "INFO": "اطلاعات توریستی",
+        "TIME_RANGE": "محدوده زمانی",
+        "WEEK_DAYS": "ايام هفته",
+        "MONTH_DAYS": "ماه روز",
+        "MONTHS": "ماه",
+        "DROP_TO_UPLOAD_MESSAGE": "همچنین می توانید در اینجا به قطره های صوتی بارگذاری شود. فقط MP3، WAV، GSM - حداکثر است. 15 مگابایت",
+        "POLLING_INTERVAL": "حوزه انتخابيه فاصله(ثانیه)",
+        "DASHBOARD": "/ داشبورد",
+        "NEW_DASHBOARDITEM": "داشبورد جدید Widget",
+        "COUNTER": "شمارنده",
+        "IFRAME": "IFrame",
+        "CLOCK": "ساعت 3",
+        "ADD_DASHBOARDITEM": "افزودن Widget داشبورد",
+        "EDIT_WIDGET": "ویرایش Widget",
+        "DELETE_WIDGET": "حذف Widget",
+        "FLIP_WIDGET": "میکس Widget",
+        "TITLE": "Title",
+        "UPDATE": "به روزآوری",
+        "LAYOUT": "صفحه آرایی",
+        "BACKGROUND_COLOR": "رنگ زمینه",
+        "FOREGROUND_COLOR": "رنگ پیش زمینه",
+        "FOREGROUND_TITLE_COLOR": "عنوان رنگ پیش زمینه",
+        "THEME": "تم",
+        "LIGHT": "نور",
+        "DARK": "تیره بود",
+        "TIMEZONE": "TimeZone",
+        "DIGITAL_FORMAT": "این تاریخ با فرمت دیجیتال",
+        "TOOLS_QUERY": "پرس",
+        "SELECT": "انتخاب",
+        "WHERE": "در آنجا",
+        "BACK": "پشت",
+        "PROJECT": "پروژه",
+        "GOTOREALTIME_TRUNK": "برو به بالا تنه Realtime",
+        "GOTO_TRUNK": "برو به بالا تنه"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/fi.json b/public/app/main/apps/tools/i18n/fi.json
new file mode 100644 (file)
index 0000000..1faf232
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "Nimi",
+        "TRUNKS": "Arkut",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "HOST_REQUIRED": "Isäntä ei tarvita",
+            "DEFAULTUSER_REQUIRED": "Käyttäjän on pakollinen",
+            "CALLERID_REQUIRED": "Soittajan tunnus on pakollinen",
+            "KEY_REQUIRED": "Avainta ei tarvita",
+            "CONFIRM_NOT_MATCH": "Salasana ei vastaa t",
+            "VALIDITYSTART_REQUIRED": "Aloitusaika on pakollinen",
+            "VALIDITYEND_REQUIRED": "Päättymisaika on pakollinen",
+            "MONTHDAY_REQUIRED": "Kuukausi päivä ei tarvita",
+            "HOUR_REQUIRED": "Siihen asti kunnes tunti on pakollinen",
+            "CONTENT_REQUIRED": "Sisältö on pakollinen",
+            "URL_REQUIRED": "URL-osoite on pakollinen",
+            "URL_MUST_VALID_URL": "URL-osoitteen täytyy olla voimassa",
+            "APPLICATION_REQUIRED": "Sovellus ei tarvita",
+            "ARGUUMENTS_REQUIRED": "Perustelut eivät ole tarpeen mukaan",
+            "NAME_MUST_VALID_PATTERN": "Nimi on kirjoitettava kelvollisessa muodossa",
+            "ARGUMENTS_REQUIRED": "Perustelut eivät ole tarpeen mukaan",
+            "POLLING_INTERVAL_REQUIRED": "Polling välejä",
+            "TITLE_REQUIRED": "Otsikko on pakollinen"
+        },
+        "HOST": "Host",
+        "SECRET": "Salainen",
+        "DEFAULTUSER": "Oletuskäyttäjä.",
+        "DESCRIPTION": "Kuvaus",
+        "ADD_TRUNK": "Lisää tavaratilaan",
+        "HELP": {
+            "SECRET": "Todennus salasanan, ota yhteys palveluntarjoajaan.",
+            "HOST": "Toimialueen tai isäntänimi tarjoajaa.",
+            "DEFAULTUSER": "Todennus käyttäjätunnuksen, ota yhteys palveluntarjoajaan.",
+            "CALLERID": "Soittajan tunnus muodossa \"nimi\" <number>",
+            "REGISTRY": "Tavaratilan rekisterin merkkijono, jota tarvitaan joitakin tarjoajia, yleensä defaultuser:salainen@isäntä.",
+            "FROMDOMAIN": "Määrittää oletusarvot:domain SIP-viestit toimiessaan SIP ua (työasema). Joihinkin kohteisiin voi vaatia pakollista tunnuksen nimi sijaan ja IP-osoitteen.",
+            "FROMUSER": "Miten rovider tietää. Tämä on käyttäjän asettamaan sen sijaan, kun numerontunnistuksen ansiosta soittaminen vertaiselle (toinen SIP proxy). Koskee vain type=kurkistelevat.",
+            "OUTBOUNDPROXY": "IP_Address tai DNS SRV nimi (lukuun ottamatta _sip._udp-etuliite) : SRV nimi, isäntänimi tai IP-osoite lähtevä SIP Proxy. Lähetä lähtevä muistilinkityksen merkiksi proxy, ei suoraan laitteisiin. Koskee vain type=kurkistelevat.",
+            "PORT": "Sen portin numero, haluamme liittää kaukosäätimen puolella.",
+            "CONTEXT": "Jos hyödynnettävien liittyen tavaratilassa.",
+            "TYPE": "Määrittää SIP-asema tähdellä. Käyttäjä: varmentamisessa käytettävät saapuneet - Peer: lähtevät puhelut - ystävä: kattaa molemmat ominaisuudet.",
+            "DTMFMODE": "Miten DTMF (Dual-Tone Multi-Frequency) lähetetään RFC2833: oletustila, DTMF lähetetään, RTP muualla äänen suoratoistoa. INBAND: DTMF lähetetään audio stream nykyisen keskustelun tulossa kaiuttimista. Vaatii paljon suorittimen kuormitusta. INFO: Vaikka tämä menetelmä on erittäin luotettava, ei tue kaikkia PBX-laitteet ja monet SIP käsivarresta vatsan vasemmalle puolelle.",
+            "NAT": "Muuttaa käyttäytymistä tähti asiakkaille palomuurin takana.Jos jokin pilkulla erotettuja valinnat on \"ei\", tähti ohittaa kaikki muut asetukset ja määritä nat=no.",
+            "QUALIFY": "Määrittää, milloin SIP on toteutettavissa.",
+            "ALLOWCODECS": "Sallittu koodekit seuraavassa järjestyksessä.",
+            "INSECURE": "Määrittää, miten yhteyksiä peer, jolloin epävarmoja asetuksia.",
+            "CALL_LIMIT": "Raja-numero saapuvien ja lähtevien puheluiden kerrallaan.",
+            "DIRECTMEDIA": "Tähti oletusarvoisesti yrittää ohjata RTP media stream mennä suoraan puhelun tuntemattomalle vastaajalle (. Jotkin laitteet eivät tue tätä (etenkin, jos jokin niistä on NAT). Oletusasetus on \"KYLLÄ\". Jos sinulla on kaikkien asiakkaiden NAT, tai jostakin muusta syystä haluavat tähti jäämään äänijärjestelmään, haluat ehkä poistaa.",
+            "CALLCOUNTER": "Puhelun laskurit -laitteilla.",
+            "ADD_PHONE_TO_URI": "Määrittää, jos palveluntarjoaja vaatii \";käyttäjän=puhelin\", URI.",
+            "TRUST_REMOTE_PARTY_ID": "Määritä Remote-Party-ID on luotettava.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "Tila",
+            "ENCRYPTION": "Määritä Remote-Party-ID on lähetettävä (oletusarvo).",
+            "TRANSPORT": "Aseta oletusarvoinen kuljetukset. Järjestys määrittää ensisijaisen oletus kuljetuksen ajaksi.",
+            "OTHERFIELDS": "Muihin kenttiin URL-arkut conf. On kirjoitettu tähti format (näppäin = arvo), jokainen kenttä yhdellä rivillä."
+        },
+        "EDIT_TRUNK": "Muokkaa tavaratilaan",
+        "DELETE_TRUNK": "Poista tavaratilaan",
+        "CREATED_AT": "Luodaan",
+        "SETTINGS": "Asetusten määrittäminen",
+        "ADVANCED": "Tarkennettu",
+        "OTHER": "Muut",
+        "ACTIVE": "Aktiivinen",
+        "CONTEXT": "Yhteydessä",
+        "CALLERID": "Soittajan tunnus",
+        "TYPE": "Tyyppi",
+        "DTMFMODE": "DTMF-tilassa",
+        "NAT": "NAT",
+        "QUALIFY": "Edellytysten täyttymiseksi",
+        "ALLOWCODECS": "Sallittu koodekit",
+        "INSECURE": "Epävarmoja",
+        "REGISTRY": "Rekisteri",
+        "DIRECTMEDIA": "Suora Media",
+        "CALLCOUNTER": "Soita laskuri",
+        "FROMDOMAIN": "Toimialueen.",
+        "FROMUSER": "Käyttäjätiedot",
+        "OUTBOUNDPROXY": "Outbound Proxy",
+        "ADD_PHONE_TO_URI": "Lisää puhelimen URI",
+        "TRUST_REMOTE_PARTY_ID": "Luottamus puhuja tunnus",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Lähetä puhuja tunnus otsikko",
+        "ENCRYPTION": "Salaus",
+        "PORT": "Portti",
+        "TRANSPORT": "Liikenne",
+        "SAVE": "Tallenna",
+        "VARIABLES": "Muuttujat",
+        "ADD_VARIABLE": "Lisää muuttuja",
+        "EDIT_VARIABLE": "Muokkaa muuttuja",
+        "DELETE_VARIABLE": "Poista muuttuja",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "TAGS": "Tunnisteet",
+        "ADD_TAG": "Lisää tunniste",
+        "EDIT_TAG": "Muokkaa Tag",
+        "DELETE_TAG": "Poista merkki",
+        "PAUSES": "Keskeyttää",
+        "ADD_PAUSE": "Lisää tauko",
+        "EDIT_PAUSE": "Muokkaa tauko",
+        "DELETE_PAUSE": "Poista Pause",
+        "CANNEDANSWERS": "Purkitettu vastauksia",
+        "ADD_CANNEDANSWER": "Lisää Canned vastaus",
+        "EDIT_CANNEDANSWER": "Muokkaa Canned vastaus",
+        "DELETE_CANNEDANSWER": "Poista Canned vastaus",
+        "KEY": "Avain",
+        "VALUE": "Arvo",
+        "SOUNDS": "Äänet",
+        "EDIT_SOUND": "Muokkaa äänen",
+        "DELETE_SOUND": "Poista ääni",
+        "FINISH": "Viimeistely",
+        "DROP_TO_UPLOAD": "Pudota lataa",
+        "TRIGGERS": "Laukaisee",
+        "EDIT_TRIGGER": "Muokkaa käynnistää",
+        "DELETE_TRIGGER": "Poista Trigger",
+        "ADD_TRIGGER": "Lisää käynnistää",
+        "DELETE": "Poista",
+        "AUTOMATIONS": "Automations",
+        "EDIT_AUTOMATION": "Muokkaa automatisointi",
+        "DELETE_AUTOMATION": "Poista automatisointi",
+        "ADD_AUTOMATION": "Lisää automaatiota",
+        "INTERVALS": "Huoltovälit",
+        "EDIT_INTERVAL": "Muokkaa aikaväli",
+        "DELETE_INTERVAL": "Poista väli",
+        "ADD_INTERVAL": "Lisää väli",
+        "TOOLS": "Työkalut",
+        "ID": "Tunnus",
+        "AUDIO": "Äänen",
+        "DOWNLOAD_SOUND": "Lataa ääni",
+        "UPLOAD_SOUND": "Työkalut",
+        "CHANNEL": "Kanava",
+        "NEW_TRIGGER": "Uusi käynnistys",
+        "GENERAL": "Yleistä",
+        "STATUS": "Tila",
+        "CONDITIONS&ACTIONS": "Ehdot ja toimenpiteet",
+        "ALLCONDITIONS": "Täytä kaikkia näitä ehtoja:",
+        "ANYCONDITIONS": "Yrityksen on täytettävä kaikki seuraavat ehdot täyttyvät:",
+        "ACTIONS": "Toimenpiteet:",
+        "NEW_AUTOMATION": "Uusi automatisointi",
+        "TIMEOUT": "Aikakatkaisu",
+        "PEERSTATUS": "Peer tila",
+        "CALL_LIMIT": "Puhelut raja",
+        "OTHERFIELDS": "Muut kentät",
+        "NEW_VARIABLE": "Uuden muuttujan",
+        "NEW_TAG": "Uutta Tag",
+        "NEW_PAUSE": "Uusi tauko",
+        "NEW_CANNEDANSWER": "Uusi Canned vastaus",
+        "CONFIRM_PASSWORD": "Vahvista salasana",
+        "NEW_TRUNK": "Uusi tavaratilaan",
+        "FROM": "Mistä",
+        "TO": "Voit",
+        "WEEKDAY": "Viikko Päivä",
+        "MONTHDAY": "Kuukauden päivänä",
+        "MONTH": "Kuukausi",
+        "ALWAYS": "Aina",
+        "MON": "Maanantaista",
+        "TUE": "Tiistaina",
+        "WED": "Keskiviikko",
+        "THU": "Torstai",
+        "FRI": "Perjantai",
+        "SAT": "Lauantai",
+        "SUN": "Sunnuntaina",
+        "JAN": "Tammikuu",
+        "FEB": "Helmikuu",
+        "MAR": "Maaliskuu",
+        "APR": "Huhtikuu",
+        "MAY": "Ehkä",
+        "JUN": "Kesäkuu",
+        "JUL": "Heinäkuuta",
+        "AUG": "Elokuu",
+        "SEP": "Syyskuu",
+        "OCT": "Lokakuu",
+        "NOV": "Marraskuu",
+        "DEC": "Joulukuussa",
+        "PASSWORD": "Salasana",
+        "CUSTOMDASHBOARDS": "Mukautettuja mittaristoja",
+        "NEW_CUSTOMDASHBOARD": "Uusi mukautettu kojelauta",
+        "ADD_CUSTOMDASHBOARD": "Lisää mukautettu kojelauta",
+        "EDIT_CUSTOMDASHBOARD": "Muokkaa mukautettua kojelauta",
+        "DELETE_CUSTOMDASHBOARD": "Poista muk kojelauta",
+        "SCHEDULER": "Ajoitus",
+        "NEW_SCHEDULE": "Uusi aikataulu",
+        "ADD_SCHEDULE": "Lisää aikataulu",
+        "EDIT_SCHEDULE": "Muokkaa aikataulu",
+        "DELETE_SCHEDULE": "Poista ajoitus",
+        "SENDMAIL": "Lähetä sähköposti",
+        "CONFIGURATION": "Konfigurointi",
+        "MAIL": "Sähköposti",
+        "REPORTTYPE": "Raportin tyyppi",
+        "REPORT": "Raportti",
+        "OUTPUT": "Lähtö",
+        "EXECUTEON": "Suorittaa",
+        "REPORTRANGE": "Raportin alue",
+        "VALIDITYSTART": "Aloitusaika",
+        "VALIDITYEND": "Kerran kuukaudessa Kaksi kertaa kuukaudessa Kolme kertaa kuukaudessa",
+        "EXECUTEEVERY": "Suoritetaan joka",
+        "ACCOUNT": "Tili",
+        "EMAILADDRESS": "Sähköpostiosoite",
+        "CURRENTDAY": "Nykyinen päivä",
+        "DAILY": "Päivittäin",
+        "WEEKLY": "Viikoittain",
+        "MONTHLY": "Kuukausittain",
+        "PREVIOUS_DAY": "Edellinen päivä",
+        "LAST_SEVEN_DAYS": "Seitsemän viime päivän aikana",
+        "LAST_THIRTY_DAYS": "Viime päivien Thirthy",
+        "LAST_MONTH": "Viime kuussa",
+        "WEEKDAYS": "Viikonpäivät",
+        "HOUR": "Tunnin kuluttua",
+        "DEFAULT": "Oletus",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 minuuttia",
+        "30MIN": "30 minuuttia",
+        "1H": "1 tunti",
+        "VOICE": "Ääni",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Avointa kanavaa",
+        "TEMPLATES": "Mallit",
+        "EDIT_TEMPLATE": "Muokkaa mallia",
+        "DELETE_TEMPLATE": "Poista malli",
+        "NEW_TEMPLATE": "Uusi malli",
+        "ADD_TEMPLATE": "Mallin lisääminen",
+        "CONTENT": "Sisältö",
+        "FIELD": "Kenttä",
+        "NO_ANYCONDITION_AVAILABLE": "Ehtoja ei ole käytettävissä",
+        "NO_ALLCONDITION_AVAILABLE": "Ehtoja ei ole käytettävissä",
+        "NO_ACTION_AVAILABLE": "Toimintoja ei ole käytettävissä",
+        "ACTION": "Toiminta",
+        "EDIT_ANYCONDITION": "Muokkaa kunto",
+        "DELETE_ANYCONDITION": "Poista kunto",
+        "NEW_ANYCONDITION": "Uusi ehto",
+        "ADD_ANYCONDITION": "Lisää kunto",
+        "EDIT_ALLCONDITION": "Muokkaa kunto",
+        "DELETE_ALLCONDITION": "Poista kunto",
+        "NEW_ALLCONDITION": "Uusi ehto",
+        "ADD_ALLCONDITION": "Lisää kunto",
+        "EDIT_ACTION": "Muokkaa toiminta",
+        "DELETE_ACTION": "Poisto",
+        "NEW_ACTION": "Uusien toimien yhteydessä",
+        "ADD_ACTION": "Lisää toiminta",
+        "QUEUE": "Jono",
+        "CALL_STATUS": "Puhelujen tila",
+        "OUTBOUND_ROUTE": "Lähtevä reitti",
+        "EQUALS": "Vastaa",
+        "NOT_EQUALS": "Ei vastaa",
+        "CONTACT_MANAGER": "Yhteystietojen hallinta",
+        "INTEGRATIONS": "Integrointeja",
+        "MOTION_BAR": "Motion Bar",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL eteenpäin",
+        "WEB_POPUP": "Web Popup",
+        "LIST": "Luettelo",
+        "INTEGRATION": "Integrointi",
+        "TEMPLATE": "Malli",
+        "URL": "URL",
+        "APPLICATION": "Sovellus",
+        "ARGUMENTS": "Perustelut",
+        "NO_APPS_AVAILABLE": "Ei käytettävissä olevat sovellukset",
+        "NEW_INTERVAL": "Uuden tauon",
+        "OUTBOUNDROUTE": "Lähtevä reitti",
+        "OPERATOR": "Käyttäjä",
+        "NO_INTERVALS_AVAILABLE": "Ei käytettävissä välit",
+        "YES": "Kyllä",
+        "NO": "N:o",
+        "SUBJECT": "Aihe",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "BROWSER": "Taulukko",
+        "INTERVAL": "Aikaväli",
+        "INFO": "Info",
+        "TIME_RANGE": "Aikaväli",
+        "WEEK_DAYS": "Viikonpäivät",
+        "MONTH_DAYS": "Kuukaudenpäivien",
+        "MONTHS": "Kuukausi",
+        "DROP_TO_UPLOAD_MESSAGE": "Voit myös laskea audio Tääll㤠voit ladata. Vain MP3, WAV, GSM - Max. 15 Mt",
+        "POLLING_INTERVAL": "Kyselyjen väli (sekuntia)",
+        "DASHBOARD": "Kojelauta",
+        "NEW_DASHBOARDITEM": "Uusi kojetaulun Widget",
+        "COUNTER": "Laskuri",
+        "IFRAME": "IFrame",
+        "CLOCK": "Kello",
+        "ADD_DASHBOARDITEM": "Lisää kojelaudan Widget",
+        "EDIT_WIDGET": "Muokkaa Widget",
+        "DELETE_WIDGET": "Poista vimpain",
+        "FLIP_WIDGET": "Flip Widget",
+        "TITLE": "Otsikko",
+        "UPDATE": "Päivitys",
+        "LAYOUT": "Asettelu",
+        "BACKGROUND_COLOR": "Taustaväri",
+        "FOREGROUND_COLOR": "Edustaväri",
+        "FOREGROUND_TITLE_COLOR": "Etualalla otsikon väri",
+        "THEME": "Teema",
+        "LIGHT": "Merkkivalo",
+        "DARK": "Tumma",
+        "TIMEZONE": "Aikavyöhyke",
+        "DIGITAL_FORMAT": "Digitaalinen päivämäärän muoto",
+        "TOOLS_QUERY": "Kysely",
+        "SELECT": "Valitse",
+        "WHERE": "Jos",
+        "BACK": "Takaisin",
+        "PROJECT": "Projektin",
+        "GOTOREALTIME_TRUNK": "Siirry Realtime tavaratilaan",
+        "GOTO_TRUNK": "Siirry tavaratilaan"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/fr.json b/public/app/main/apps/tools/i18n/fr.json
new file mode 100644 (file)
index 0000000..9080f16
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "Nom",
+        "TRUNKS": "Trunks",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "HOST_REQUIRED": "L'hôte est nécessaire",
+            "DEFAULTUSER_REQUIRED": "L'utilisateur par défaut est nécessaire",
+            "CALLERID_REQUIRED": "L'ID de l'appelant est nécessaire",
+            "KEY_REQUIRED": "La clé est nécessaire",
+            "CONFIRM_NOT_MATCH": "Les mots de passe ne correspondent pas",
+            "VALIDITYSTART_REQUIRED": "L'Heure de début est obligatoire",
+            "VALIDITYEND_REQUIRED": "L'Heure de fin est nécessaire",
+            "MONTHDAY_REQUIRED": "Le mois jour est nécessaire",
+            "HOUR_REQUIRED": "L'heure est obligatoire",
+            "CONTENT_REQUIRED": "Le contenu est nécessaire",
+            "URL_REQUIRED": "L'URL est nécessaire",
+            "URL_MUST_VALID_URL": "L'URL doit être valide",
+            "APPLICATION_REQUIRED": "L'Application est requise",
+            "ARGUUMENTS_REQUIRED": "Les arguments sont nécessaires",
+            "NAME_MUST_VALID_PATTERN": "Le nom doit être écrit dans un format valide",
+            "ARGUMENTS_REQUIRED": "Les arguments sont nécessaires",
+            "POLLING_INTERVAL_REQUIRED": "L'intervalle d'interrogation est requis",
+            "TITLE_REQUIRED": "Le titre est requis"
+        },
+        "HOST": "Host",
+        "SECRET": "Secret",
+        "DEFAULTUSER": "Utilisateur par défaut",
+        "DESCRIPTION": "Description",
+        "ADD_TRUNK": "Ajouter Trunk",
+        "HELP": {
+            "SECRET": "Mot de passe d'authentification de contacter le fournisseur.",
+            "HOST": "Le domaine ou nom de l'hôte pour le fournisseur.",
+            "DEFAULTUSER": "Authentification Identifiant de contacter le fournisseur.",
+            "CALLERID": "L'identification de l'appelant, sous la forme \"nom\"  <nombre >",
+            "REGISTRY": "Le tronc, chaîne de registre tenu par certains prestataires, habituellement defaultuser:secret@host.",
+            "FROMDOMAIN": "Définit la valeur par défaut de:domaine dans les messages SIP lorsqu'il agit comme un client SIP (ua). Certaines destinations peuvent exiger l'identité obligatoire nom au lieu de seulement l'adresse IP.",
+            "FROMUSER": "Comment votre rovider vous connaît. Ce qui est de mettre l'utilisateur au lieu de l'appelant lorsque vous passez des appels vers un autre poste (SIP proxy). Valable uniquement pour le type =peer.",
+            "OUTBOUNDPROXY": "L'adresse IP ou nom DNS SRV (excluant le _sip._udp préfixe) : nom d'hôte, SRV, ou l'adresse IP de l'Outbound Proxy SIP. La signalisation d'appels sortants envoyer ce proxy, et non directement à l'appareil. Valable uniquement pour le type =peer.",
+            "PORT": "Le numéro de port nous voulons nous connecter à distance sur le côté.",
+            "CONTEXT": "La source du contexte pour le coffre.",
+            "TYPE": "Détermine le rôle au sein de SIP Asterisk. Utilisateur : utilisé pour authentifier les - : par les pairs pour les appels sortants - AMI : couvre à la fois les caractéristiques de la ci-dessus.",
+            "DTMFMODE": "Comment Dual-Tone Multi-Frequency (DTMF) sont envoyés : RFC2833 : le mode par défaut, les tonalités DTMF sont envoyés avec l'extérieur mais RTP le flux audio. INBAND : Le DTMF est envoyé en flux audio de la conversation en cours, devenir audible depuis les haut-parleurs. Exige un niveau de charge CPU. INFO : Bien que cette méthode est très fiable, il n'est pas pris en charge par tous les appareils PBX et beaucoup de réseau SIP.",
+            "NAT": "Change le comportement de Asterisk pour les clients derrière un pare-feu.Si l'une des options séparées par des virgules est 'non', l'astérisque permet de ne pas tenir compte des autres paramètres et définissez le nat =no.",
+            "QUALIFY": "Détermine quand le SIP est réalisable.",
+            "ALLOWCODECS": "Admis codecs en ordre de préférence.",
+            "INSECURE": "Indique comment gérer les connexions avec les pairs, ce qui permet des réglages d'insécurité alimentaire.",
+            "CALL_LIMIT": "Limite le nombre d'appels entrants et les appels sortants à la fois.",
+            "DIRECTMEDIA": "Astérisque par défaut tente de rediriger le flux RTP pour aller directement à partir de l'appelant à l'appelé. Certains périphériques ne prennent pas en charge cette (surtout si l'un d'eux est derrière un NAT). Le paramètre par défaut est OUI. Si vous avez tous les clients derrière un NAT, ou pour quelque autre raison tiens astérisque pour rester dans le chemin audio, vous pouvez désactiver cette fonction.",
+            "CALLCOUNTER": "Compteurs d'appels Activer sur les périphériques.",
+            "ADD_PHONE_TO_URI": "Définir si le fournisseur demande ';utilisateur =phone' à URI.",
+            "TRUST_REMOTE_PARTY_ID": "Définir si tête Remote-Party-ID doit être fiable.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "Status",
+            "ENCRYPTION": "Définir si tête Remote-Party-ID doit être envoyée (par défaut, aucun).",
+            "TRANSPORT": "Définir la valeur par défaut de transports. L'ordre détermine le principal défaut des transports.",
+            "OTHERFIELDS": "D'autres champs à ajouter dans les troncs. Pour être écrit en format asterisk (clé =valeur), chaque champ d'une seule ligne."
+        },
+        "EDIT_TRUNK": "Tronc Modifier",
+        "DELETE_TRUNK": "Supprimer Trunk",
+        "CREATED_AT": "Créé à",
+        "SETTINGS": "Settings",
+        "ADVANCED": "Recherche avancée",
+        "OTHER": "Autres",
+        "ACTIVE": "Actif",
+        "CONTEXT": "Contexte",
+        "CALLERID": "L'identification de l'appelant",
+        "TYPE": "Type",
+        "DTMFMODE": "Mode DTMF",
+        "NAT": "NAT",
+        "QUALIFY": "Droit",
+        "ALLOWCODECS": "Codecs permis",
+        "INSECURE": "L'insécurité alimentaire",
+        "REGISTRY": "Greffe",
+        "DIRECTMEDIA": "Media Direct",
+        "CALLCOUNTER": "Compteur d'appels",
+        "FROMDOMAIN": "À partir du domaine",
+        "FROMUSER": "De l'utilisateur",
+        "OUTBOUNDPROXY": "Outbound Proxy",
+        "ADD_PHONE_TO_URI": "Ajouter téléphone à URI",
+        "TRUST_REMOTE_PARTY_ID": "Remote ID Tiers de confiance",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Envoyer un interlocuteur distant en-tête ID",
+        "ENCRYPTION": "Encryption",
+        "PORT": "Port",
+        "TRANSPORT": "Transports",
+        "SAVE": "Sauvegarder",
+        "VARIABLES": "Variables",
+        "ADD_VARIABLE": "Add Variable",
+        "EDIT_VARIABLE": "Modifier une variable",
+        "DELETE_VARIABLE": "Supprimer Variable",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "TAGS": "Tags",
+        "ADD_TAG": "Ajouter une balise",
+        "EDIT_TAG": "Tag Modifier",
+        "DELETE_TAG": "Tag Delete",
+        "PAUSES": "Pauses",
+        "ADD_PAUSE": "Ajouter une pause",
+        "EDIT_PAUSE": "Pause Modifier",
+        "DELETE_PAUSE": "Supprimer Mettre en pause",
+        "CANNEDANSWERS": "Réponses en conserve",
+        "ADD_CANNEDANSWER": "Ajouter Réponse en conserve",
+        "EDIT_CANNEDANSWER": "Éditer Répondre en conserve",
+        "DELETE_CANNEDANSWER": "Supprimer réponse en conserve",
+        "KEY": "Key",
+        "VALUE": "Valeur",
+        "SOUNDS": "Sons",
+        "EDIT_SOUND": "Éditer Sound",
+        "DELETE_SOUND": "Supprimer le son",
+        "FINISH": "Terminer",
+        "DROP_TO_UPLOAD": "Drop à télécharger",
+        "TRIGGERS": "Les Triggers",
+        "EDIT_TRIGGER": "Editer le déclencheur",
+        "DELETE_TRIGGER": "Trigger de suppression",
+        "ADD_TRIGGER": "Ajouter déclencheur",
+        "DELETE": "Supprimer",
+        "AUTOMATIONS": "Automations",
+        "EDIT_AUTOMATION": "Automatisation d'édition",
+        "DELETE_AUTOMATION": "Supprimer l'automatisation",
+        "ADD_AUTOMATION": "Ajouter l'automatisation",
+        "INTERVALS": "Intervalles réguliers",
+        "EDIT_INTERVAL": "Intervalle d'édition",
+        "DELETE_INTERVAL": "L'intervalle de suppression",
+        "ADD_INTERVAL": "Intervalle d'ajouter",
+        "TOOLS": "Tools",
+        "ID": "Id",
+        "AUDIO": "L'audio",
+        "DOWNLOAD_SOUND": "Télécharger Sound",
+        "UPLOAD_SOUND": "Tools",
+        "CHANNEL": "Channel",
+        "NEW_TRIGGER": "Nouveau Trigger",
+        "GENERAL": "Général",
+        "STATUS": "Status",
+        "CONDITIONS&ACTIONS": "Conditions et actions",
+        "ALLCONDITIONS": "Toutes les conditions suivantes :",
+        "ANYCONDITIONS": "Rencontrez l'une des conditions suivantes :",
+        "ACTIONS": "Actions :",
+        "NEW_AUTOMATION": "Nouveau",
+        "TIMEOUT": "Timeout",
+        "PEERSTATUS": "Le statut du",
+        "CALL_LIMIT": "Limiter les appels",
+        "OTHERFIELDS": "D'autres domaines",
+        "NEW_VARIABLE": "Nouvelle variable",
+        "NEW_TAG": "Nouvelle balise",
+        "NEW_PAUSE": "Nouvelle Pause",
+        "NEW_CANNEDANSWER": "Nouvelle réponse en conserve",
+        "CONFIRM_PASSWORD": "Confirmer le mot de passe",
+        "NEW_TRUNK": "Nouvelle ligne",
+        "FROM": "À partir de",
+        "TO": "À",
+        "WEEKDAY": "Semaine Jour",
+        "MONTHDAY": "Mois Jour",
+        "MONTH": "Mois",
+        "ALWAYS": "Toujours",
+        "MON": "Lundi",
+        "TUE": "Mardi",
+        "WED": "Mercredi",
+        "THU": "Jeudi",
+        "FRI": "Vendredi",
+        "SAT": "Samedi",
+        "SUN": "Dimanche",
+        "JAN": "Janvier",
+        "FEB": "Février",
+        "MAR": "Mars",
+        "APR": "Avril",
+        "MAY": "Peut",
+        "JUN": "Juin",
+        "JUL": "Juillet",
+        "AUG": "Août",
+        "SEP": "Septembre",
+        "OCT": "Octobre",
+        "NOV": "Novembre",
+        "DEC": "Décembre",
+        "PASSWORD": "Mot de passe oublié",
+        "CUSTOMDASHBOARDS": "Tableaux de Bord Personnalisés",
+        "NEW_CUSTOMDASHBOARD": "Nouveau tableau de bord personnalisé",
+        "ADD_CUSTOMDASHBOARD": "Ajouter un tableau de bord personnalisé",
+        "EDIT_CUSTOMDASHBOARD": "Tableau de Bord Personnalisé Modifier",
+        "DELETE_CUSTOMDASHBOARD": "Supprimer le tableau de bord personnalisé",
+        "SCHEDULER": "Scheduler",
+        "NEW_SCHEDULE": "Nouveau calendrier",
+        "ADD_SCHEDULE": "Ajouter l'annexe",
+        "EDIT_SCHEDULE": "Modifier l'annexe",
+        "DELETE_SCHEDULE": "Supprimer la planification",
+        "SENDMAIL": "Envoyer un Mail",
+        "CONFIGURATION": "Configuration",
+        "MAIL": "Mail",
+        "REPORTTYPE": "Type de rapport",
+        "REPORT": "Rapport",
+        "OUTPUT": "Output",
+        "EXECUTEON": "Exécuter sur",
+        "REPORTRANGE": "Plage du rapport",
+        "VALIDITYSTART": "Temps de démarrage",
+        "VALIDITYEND": "L'Heure de fin",
+        "EXECUTEEVERY": "Exécuter tous les",
+        "ACCOUNT": "Compte",
+        "EMAILADDRESS": "Adresse e-mail",
+        "CURRENTDAY": "Journée en cours",
+        "DAILY": "Tous les jours",
+        "WEEKLY": "Une fois par semaine",
+        "MONTHLY": "Tous les mois",
+        "PREVIOUS_DAY": "Jour précédent",
+        "LAST_SEVEN_DAYS": "Depuis sept jours",
+        "LAST_THIRTY_DAYS": "Dernière trente jours",
+        "LAST_MONTH": "Le mois dernier",
+        "WEEKDAYS": "Les jours de semaine",
+        "HOUR": "Heure",
+        "DEFAULT": "Valeur par défaut",
+        "CSV": "Fichier CSV",
+        "PDF": "PDF",
+        "15MIN": "15 minutes",
+        "30MIN": "30 minutes",
+        "1H": "1 heure",
+        "VOICE": "Voix",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Canal ouvert",
+        "TEMPLATES": "Templates",
+        "EDIT_TEMPLATE": "Modifier le modèle",
+        "DELETE_TEMPLATE": "Supprimer un modèle",
+        "NEW_TEMPLATE": "Nouveau modèle",
+        "ADD_TEMPLATE": "Ajouter un masque de",
+        "CONTENT": "Content",
+        "FIELD": "Domaine",
+        "NO_ANYCONDITION_AVAILABLE": "Pas de conditions disponibles",
+        "NO_ALLCONDITION_AVAILABLE": "Pas de conditions disponibles",
+        "NO_ACTION_AVAILABLE": "Aucune action disponible",
+        "ACTION": "Action",
+        "EDIT_ANYCONDITION": "L'état d'édition",
+        "DELETE_ANYCONDITION": "Supprimer la condition",
+        "NEW_ANYCONDITION": "État neuf",
+        "ADD_ANYCONDITION": "Ajouter une condition",
+        "EDIT_ALLCONDITION": "L'état d'édition",
+        "DELETE_ALLCONDITION": "Supprimer la condition",
+        "NEW_ALLCONDITION": "État neuf",
+        "ADD_ALLCONDITION": "Ajouter une condition",
+        "EDIT_ACTION": "L'action Modifier",
+        "DELETE_ACTION": "Action de suppression",
+        "NEW_ACTION": "Nouvelle action",
+        "ADD_ACTION": "Ajouter Action",
+        "QUEUE": "Queue",
+        "CALL_STATUS": "L'état de l'appel",
+        "OUTBOUND_ROUTE": "Route d'appels sortants",
+        "EQUALS": "Est égal à",
+        "NOT_EQUALS": "Pas égaux",
+        "CONTACT_MANAGER": "Gestionnaire de contacts",
+        "INTEGRATIONS": "Integrations",
+        "MOTION_BAR": "Barre de mouvement",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL de l'avant",
+        "WEB_POPUP": "Popup Web",
+        "LIST": "Liste",
+        "INTEGRATION": "Integration",
+        "TEMPLATE": "Template",
+        "URL": "URL",
+        "APPLICATION": "Application",
+        "ARGUMENTS": "Arguments",
+        "NO_APPS_AVAILABLE": "Pas d'applications disponibles",
+        "NEW_INTERVAL": "Nouvelle plage",
+        "OUTBOUNDROUTE": "Route d'appels sortants",
+        "OPERATOR": "Opérateur",
+        "NO_INTERVALS_AVAILABLE": "Aucun intervalle disponible",
+        "YES": "Oui",
+        "NO": "Pas de",
+        "SUBJECT": "Sous réserve",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "BROWSER": "Browser",
+        "INTERVAL": "Interval",
+        "INFO": "Info",
+        "TIME_RANGE": "La plage de temps",
+        "WEEK_DAYS": "Les jours de semaine",
+        "MONTH_DAYS": "Mois Jours",
+        "MONTHS": "Mois",
+        "DROP_TO_UPLOAD_MESSAGE": "Vous pouvez également déposer ici audio à télécharger. Seul le format MP3, WAV, GSM - Max. 15Mo",
+        "POLLING_INTERVAL": "L'intervalle d'interrogation (secondes)",
+        "DASHBOARD": "Planche de bord",
+        "NEW_DASHBOARDITEM": "Nouveau widget Dashboard.",
+        "COUNTER": "Counter",
+        "IFRAME": "IFrame",
+        "CLOCK": "Réveil",
+        "ADD_DASHBOARDITEM": "Ajouter un widget Dashboard.",
+        "EDIT_WIDGET": "Widget Modifier",
+        "DELETE_WIDGET": "Supprimer Widget",
+        "FLIP_WIDGET": "Widget flip",
+        "TITLE": "Titre",
+        "UPDATE": "Mise à jour",
+        "LAYOUT": "La mise en page",
+        "BACKGROUND_COLOR": "Couleur d'arrière-plan",
+        "FOREGROUND_COLOR": "Couleur de premier plan",
+        "FOREGROUND_TITLE_COLOR": "Avant-plan Couleur de titre",
+        "THEME": "Thème",
+        "LIGHT": "La lumière",
+        "DARK": "Dark",
+        "TIMEZONE": "TimeZone",
+        "DIGITAL_FORMAT": "Format de date numérique",
+        "TOOLS_QUERY": "Query",
+        "SELECT": "Sélectionnez",
+        "WHERE": "Où",
+        "BACK": "Retour",
+        "PROJECT": "Projet",
+        "GOTOREALTIME_TRUNK": "Rendez-Realtime Trunk",
+        "GOTO_TRUNK": "Rendez-Trunk"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/hi.json b/public/app/main/apps/tools/i18n/hi.json
new file mode 100644 (file)
index 0000000..491d800
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "नाम",
+        "TRUNKS": "तनों",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "HOST_REQUIRED": "मेजबान की आवश्यकता है।",
+            "DEFAULTUSER_REQUIRED": "डिफ़ॉल्ट उपयोगकर्ता की आवश्यकता है।",
+            "CALLERID_REQUIRED": "कॉलर ID अपेक्षित है।",
+            "KEY_REQUIRED": "कुंजी की आवश्यकता है।",
+            "CONFIRM_NOT_MATCH": "पासवर्ड मेल नहीं है।' '",
+            "VALIDITYSTART_REQUIRED": "प्रारंभ समय की आवश्यकता है।",
+            "VALIDITYEND_REQUIRED": "की समाप्ति समय की आवश्यकता है।",
+            "MONTHDAY_REQUIRED": "इस माह के दिन की आवश्यकता है।",
+            "HOUR_REQUIRED": "समय की आवश्यकता है।",
+            "CONTENT_REQUIRED": "सामग्री की आवश्यकता है।",
+            "URL_REQUIRED": "URL की आवश्यकता है।",
+            "URL_MUST_VALID_URL": "URL सही होना चाहिए।",
+            "APPLICATION_REQUIRED": "अनुप्रयोग की आवश्यकता है।",
+            "ARGUUMENTS_REQUIRED": "तर्कों को आवश्यक हैं.",
+            "NAME_MUST_VALID_PATTERN": "एक मान्य स्वरूप का नाम लिखा होना",
+            "ARGUMENTS_REQUIRED": "तर्कों को आवश्यक हैं.",
+            "POLLING_INTERVAL_REQUIRED": "पोलिंग अंतराल की आवश्यकता है।",
+            "TITLE_REQUIRED": "शीर्षक की आवश्यकता है।"
+        },
+        "HOST": "होस्ट",
+        "SECRET": "गुप्त",
+        "DEFAULTUSER": "डिफ़ॉल्ट उपयोगकर्ता",
+        "DESCRIPTION": "वर्णन",
+        "ADD_TRUNK": "सूंड जोड़ें",
+        "HELP": {
+            "SECRET": "प्रमाणीकरण के लिए पासवर्ड के संपर्क में है।",
+            "HOST": "डोमेन नाम या होस्ट नाम के प्रदाता है।",
+            "DEFAULTUSER": "उपयोगकर्ता प्रमाणीकरण प्रदाता से संपर्क",
+            "CALLERID": "कॉलर ID, प्रपत्र में ''नाम\" <नंबर>",
+            "REGISTRY": "सूंड रजिस्ट्री तार द्वारा अपेक्षित है, कुछ सेवायों, आमतौर पर defaultuser:गुप्त@वर्ल्ड कप के मेजबान है।",
+            "FROMDOMAIN": "डिफ़ॉल्ट रूप से, जब संदेश में जबरदस्त अशनकारी सैट:डोमेन के रूप में एक जबरदस्त अशनकारी ua (ग्राहक)। कुछ स्थानों की पहचान की आवश्यकता हो सकती है. IP पता नाम के बजाय केवल अनिवार्य",
+            "FROMUSER": "आप जानते हैं कि आपके rovider यह जो उपयोगकर्ता को देने की बजाय, जब callerid कॉल्स को जोड़ (दूसरा) छद्म कमरंद वैध केवल टाइप=झांकना.",
+            "OUTBOUNDPROXY": "IP पता और DNS SRV दवाइयों के नाम को छोड़कर (_। कमरंद_udp प्रिफिक्स) : SRV नाम, hostname या IP पता के बाह्यवर्ती कमरंद छद्म हैं। भेजने के लिए सिग्नलिंग छुट्टिंयां मनाने नहीं होता है, तो डिवाइसेज़ को सीधे वैध केवल टाइप=झांकना.",
+            "PORT": "हम चाहते हैं कि पोर्ट नंबर को कनेक् ट करने के लिए रिमोट कंट्रोल पर है।",
+            "CONTEXT": "इस संदर्भ में प्रतिवर्ष सूंड के लिए",
+            "TYPE": "रखावके कमरंद की भूमिका के तारांक लगा। उपयोगकर्ता को प्रमाणित करने के लिए प्रयोग किया :------- मित्र आउटगोइंग कॉल के लिए पीयर इनकमिंग कार्यनिष्पादनके विशेषताओं के ऊपर है।",
+            "DTMFMODE": "(DTMF कैसे Dual-Tone Multi-Frequency) में भेजे गए हैं : लिखेंगे2833: डिफ़ॉल्ट मोड से बाहर भेजा जाता है, लेकिन RTP DTMF से ऑडियो सिद्धहोगा। INBAND : वर्तमान नदी में भेजा जाता है DTMF ऑडियो योग्य बनने से स्पीकर्स से बातचीत अधिक भार सीपीयू की आवश् यकता यद्यपि इस तरीके से बहुत अधिक विश्वसनीय जानकारी:, यह सभी डिवाइसेज़ PBX द्वारा समर्थित नहीं हैं और कई कमरंद सूंड",
+            "NAT": "ग्राहकों के लिए तारांकन के व्यवहार को पीछे फ़ायरवॉल.यदि कोई अलग-अल्पविराम की विकल्प है 'नहीं', तारांकन परटिप्प ाी और स ९सी अन्य सेटिंग्स सेट आइप गीतांजलिश्री का तिरोहित=सं.",
+            "QUALIFY": "जब यह निर्धारित करता है। इसमें प्रौद्योगिकीयप्रतिबंधक कमरंद",
+            "ALLOWCODECS": "वरीयता के क्रम में अनुमति codecs",
+            "INSECURE": "निर्दिष्ट करता है कि किस प्रकार से निपटने के लिए कनेक्शंस की अनुमति देने के साथ जोड़, असुरक्षित सेटिंग्स",
+            "CALL_LIMIT": "सीमा की संख्या को एक ही समय में प्रतिकूलअन्तवर्ती तथा बाह्यवर्ती कॉल्स",
+            "DIRECTMEDIA": "डिफ़ॉल्ट रूप से, आपके मीडिया स्ट्रीम की कोशिश क्षेत्रीयपरिवहन तारांकन RTP जाने से सीधे संपर्क कर्ता को कॉल प्राप्तकर्ता है। कुछ डिवाइसेज़ का समर्थन नहीं करते, विशेषकर यदि उनमें से एक के पीछे यह (आइप गीतांजलिश्री का तिरोहित)। डिफॉल्ट सेटिंग हाँ। यदि आपने सभी ग्राहकोन के पीछे एक आइप गीतांजलिश्री का तिरोहित, तारांकन में रहना चाहते हैं या किसी अन्य कारण से, आप चाहते हैं कि यह चालू करने के लिए ऑडियो मार्ग बंद है.",
+            "CALLCOUNTER": "सक्षम डिवाइसेज़ पर काउंटर पर कॉल करें",
+            "ADD_PHONE_TO_URI": "यदि प्रदाता को परिभाषित करने के लिए '' पर फ़ोन नंबर=उपयोगकर्ता वंशवृक्ष उरी है।",
+            "TRUST_REMOTE_PARTY_ID": "यदि Remote-Party परिभाषित किया जाना चाहिए। इस पर विश्वास-ID",
+            "SEND_REMOTE_PARTY_ID_HEADER": "की स्थिति",
+            "ENCRYPTION": "यदि परिभाषित Remote-Party-ID भेजा जाना चाहिए। (डिफ़ॉल्ट नहीं है।",
+            "TRANSPORT": "डिफ़ॉल्ट केपरिवहन सेट करें क्रम निर्धारण की प्राथमिक डिफ़ॉल्ट परिवहन।",
+            "OTHERFIELDS": "अन्य क्षेत्रों के तनों में जोड़ने के लिए, तदनुसार फ़ाइलें शामिल हैं. तारांकन (=कुंजी को लिखित में प्रत्येक क्षेत्र), मूल्य का स्वरूप एक पंक् ति है।"
+        },
+        "EDIT_TRUNK": "सूंड संपादित करें",
+        "DELETE_TRUNK": "सूंड हटाएं",
+        "CREATED_AT": "सृजित",
+        "SETTINGS": "सेटिंग्स",
+        "ADVANCED": "उन्नत",
+        "OTHER": "अन्य",
+        "ACTIVE": "चुस्त",
+        "CONTEXT": "संदर्भ",
+        "CALLERID": "कॉलर ID",
+        "TYPE": "प्रकार",
+        "DTMFMODE": "DTMF मोड",
+        "NAT": "आइप गीतांजलिश्री का तिरोहित",
+        "QUALIFY": "विश्व कप के लिए क्वालिफाई",
+        "ALLOWCODECS": "अनुमत Codecs",
+        "INSECURE": "असुरक्षित",
+        "REGISTRY": "रजिस्ट्री",
+        "DIRECTMEDIA": "प्रत्यक्ष मीडिया",
+        "CALLCOUNTER": "कॉल काउंटर",
+        "FROMDOMAIN": "डोमेन नाम से",
+        "FROMUSER": "उपयोगकर्ता से",
+        "OUTBOUNDPROXY": "प्रॉक्सी बाह्यवर्ती",
+        "ADD_PHONE_TO_URI": "फ़ोन नंबर जोड़ें के उरी",
+        "TRUST_REMOTE_PARTY_ID": "न्यास सुदूर पार्टी ID",
+        "SEND_REMOTE_PARTY_ID_HEADER": "रिमोट पार्टी ID शीर्षलेख भेजें",
+        "ENCRYPTION": "एन्क्रिप्शन",
+        "PORT": "पोर्ट",
+        "TRANSPORT": "परिवहन",
+        "SAVE": "सहेजें",
+        "VARIABLES": "फेर",
+        "ADD_VARIABLE": "परिवर्तनीय जोड़ें",
+        "EDIT_VARIABLE": "परिवर्तनीय संपादित करें",
+        "DELETE_VARIABLE": "परिवर्तनीय हटाएं",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "TAGS": "टैग्स",
+        "ADD_TAG": "मौजूदासंदर्भ में जोड़ें",
+        "EDIT_TAG": "मौजूदासंदर्भ संपादित करें",
+        "DELETE_TAG": "मौजूदासंदर्भ हटाएं",
+        "PAUSES": "चलाना रोकता",
+        "ADD_PAUSE": "रूकें जोड़ें",
+        "EDIT_PAUSE": "संपादित करने के लिए, विराम",
+        "DELETE_PAUSE": "विराम को हटाएं",
+        "CANNEDANSWERS": "डिब्बाबंद उत्तर",
+        "ADD_CANNEDANSWER": "डिब्बाबंद उत्तर में जोड़ें",
+        "EDIT_CANNEDANSWER": "डिब्बाबंद उत्तर संपादित करें",
+        "DELETE_CANNEDANSWER": "डिब्बाबंद उत्तर को हटाएं",
+        "KEY": "कुंजी दबाएं",
+        "VALUE": "मूल्य",
+        "SOUNDS": "ध्वनियां",
+        "EDIT_SOUND": "ध्वनि संपादन",
+        "DELETE_SOUND": "ध्वनि हटाएं",
+        "FINISH": "समाप्त करना",
+        "DROP_TO_UPLOAD": "अपलोड छोड़ें",
+        "TRIGGERS": "अगली अवस्था",
+        "EDIT_TRIGGER": "घटमाओं संपादित करें",
+        "DELETE_TRIGGER": "घटमाओं हटाएं",
+        "ADD_TRIGGER": "घटमाओं जोड़ें",
+        "DELETE": "हटाना",
+        "AUTOMATIONS": "Automations",
+        "EDIT_AUTOMATION": "स्वचालन संपादित करें",
+        "DELETE_AUTOMATION": "स्वचालन हटाएं",
+        "ADD_AUTOMATION": "स्वचालन जोड़ें",
+        "INTERVALS": "अन्तराल",
+        "EDIT_INTERVAL": "अंतराल संपादित करें",
+        "DELETE_INTERVAL": "अंतराल को हटाएं",
+        "ADD_INTERVAL": "अंतराल पर जोड़ें",
+        "TOOLS": "औजार",
+        "ID": "Id",
+        "AUDIO": "ऑडियो",
+        "DOWNLOAD_SOUND": "ध्वनि डाउनलोड करें",
+        "UPLOAD_SOUND": "औजार",
+        "CHANNEL": "चैनल",
+        "NEW_TRIGGER": "नई घटमाओं",
+        "GENERAL": "सामान्य",
+        "STATUS": "की स्थिति",
+        "CONDITIONS&ACTIONS": "परिस् थितियों और क्रियाएं",
+        "ALLCONDITIONS": "इन सभी शर्तों को पूरा",
+        "ANYCONDITIONS": "इन स्थितियों से मिलने वाले किसी भी है:",
+        "ACTIONS": "में से कोई एक क्रिया करें:",
+        "NEW_AUTOMATION": "नई आॅटोमेशन",
+        "TIMEOUT": "समयबाह्य",
+        "PEERSTATUS": "पीयर स्थिति",
+        "CALL_LIMIT": "कॉल्स सीमा",
+        "OTHERFIELDS": "अन्य क्षेत्रों",
+        "NEW_VARIABLE": "नई परिवर्तनीय",
+        "NEW_TAG": "नया टैग",
+        "NEW_PAUSE": "नई रोकें",
+        "NEW_CANNEDANSWER": "नई डिब्बाबंद उत्तर",
+        "CONFIRM_PASSWORD": "पासवर्ड की पुष्टि करें:",
+        "NEW_TRUNK": "नई सूंड",
+        "FROM": "से",
+        "TO": "करना",
+        "WEEKDAY": "सप्ताह के दिन",
+        "MONTHDAY": "माह के दिन",
+        "MONTH": "माह",
+        "ALWAYS": "हमेशा",
+        "MON": "सोमवार को",
+        "TUE": "मंगलवार",
+        "WED": "बुधवार",
+        "THU": "बृहस्पतिवार",
+        "FRI": "शुक्रवार को",
+        "SAT": "शनिवार को",
+        "SUN": "रविवार को",
+        "JAN": "जनवरी",
+        "FEB": "फरवरी",
+        "MAR": "मार्च",
+        "APR": "अप्रैल",
+        "MAY": "मई",
+        "JUN": "जून",
+        "JUL": "जुलाई",
+        "AUG": "अगस्त",
+        "SEP": "सितम्बर",
+        "OCT": "अक्टूबर",
+        "NOV": "नवम्बर",
+        "DEC": "दिसम्बर",
+        "PASSWORD": "पासवर्ड",
+        "CUSTOMDASHBOARDS": "कस्टम Dashboards",
+        "NEW_CUSTOMDASHBOARD": "नई कस्टम डैशबोर्ड छिपाएं",
+        "ADD_CUSTOMDASHBOARD": "डैशबोर्ड कस्टम जोड़ें",
+        "EDIT_CUSTOMDASHBOARD": "डैशबोर्ड कस्टम संपादित करें",
+        "DELETE_CUSTOMDASHBOARD": "कस्टम डैशबोर्ड छिपाएं",
+        "SCHEDULER": "Scheduler",
+        "NEW_SCHEDULE": "नई अनुसूची",
+        "ADD_SCHEDULE": "अनुसूची में जोड़ें",
+        "EDIT_SCHEDULE": "अनुसूची संपादित करें",
+        "DELETE_SCHEDULE": "अनुसूची को हटाएं",
+        "SENDMAIL": "मेल भेजें",
+        "CONFIGURATION": "विन्यास",
+        "MAIL": "मेल",
+        "REPORTTYPE": "रिपोर्ट लिखना",
+        "REPORT": "प्रतिवेदन",
+        "OUTPUT": "उत् पादन में",
+        "EXECUTEON": "को निष्पादित करे।",
+        "REPORTRANGE": "प्रतिवेदन रेंज",
+        "VALIDITYSTART": "समय प्रारंभ करें",
+        "VALIDITYEND": "समाप्ति समय",
+        "EXECUTEEVERY": "प्रत्येक को निष्पादित करे।",
+        "ACCOUNT": "खाते",
+        "EMAILADDRESS": "ईमेल पता",
+        "CURRENTDAY": "वर्तमान दिवस",
+        "DAILY": "दैनिक",
+        "WEEKLY": "साप्ताहिक",
+        "MONTHLY": "मासिक",
+        "PREVIOUS_DAY": "पिछला दिन",
+        "LAST_SEVEN_DAYS": "पिछले 7 दिनों",
+        "LAST_THIRTY_DAYS": "पिछले दिनों Thirthy",
+        "LAST_MONTH": "गत माह",
+        "WEEKDAYS": "सप्ताह के दिनों में",
+        "HOUR": "घंटा",
+        "DEFAULT": "डिफ़ॉल्ट",
+        "CSV": "CSV",
+        "PDF": "PDF टू गो",
+        "15MIN": "15 मिनट",
+        "30MIN": "30 मिनट",
+        "1H": "1 घंटे",
+        "VOICE": "आवाज",
+        "CHAT": "चैट",
+        "SMS": "SMS",
+        "OPENCHANNEL": "चैनल खोलें",
+        "TEMPLATES": "टेम्पलेट",
+        "EDIT_TEMPLATE": "संपादित करने के लिए टेम्पलेट",
+        "DELETE_TEMPLATE": "हटाने के लिए टेम्पलेट",
+        "NEW_TEMPLATE": "नई टेम्पलेट",
+        "ADD_TEMPLATE": "टेम्पलेट जोड़ें",
+        "CONTENT": "सामग्री",
+        "FIELD": "क्षेत्र में",
+        "NO_ANYCONDITION_AVAILABLE": "कोई भी उपलब् ध परिस् थितियों",
+        "NO_ALLCONDITION_AVAILABLE": "कोई भी उपलब् ध परिस् थितियों",
+        "NO_ACTION_AVAILABLE": "उपलब्ध नहीं",
+        "ACTION": "की गई कार्यवाही",
+        "EDIT_ANYCONDITION": "स्थिति संपादित करें",
+        "DELETE_ANYCONDITION": "स्थिति को हटाएं",
+        "NEW_ANYCONDITION": "नई स्थिति",
+        "ADD_ANYCONDITION": "शर्त पर जोड़ें",
+        "EDIT_ALLCONDITION": "स्थिति संपादित करें",
+        "DELETE_ALLCONDITION": "स्थिति को हटाएं",
+        "NEW_ALLCONDITION": "नई स्थिति",
+        "ADD_ALLCONDITION": "शर्त पर जोड़ें",
+        "EDIT_ACTION": "की गई कार्रवाई संपादित करें",
+        "DELETE_ACTION": "की गई कार्रवाई को हटाएं",
+        "NEW_ACTION": "नए कार्य",
+        "ADD_ACTION": "की गई कार्रवाई जोड़ें",
+        "QUEUE": "कतार",
+        "CALL_STATUS": "कॉल का दर्जा",
+        "OUTBOUND_ROUTE": "छुट्टिंयां मनाने का मार्ग",
+        "EQUALS": "बराबर",
+        "NOT_EQUALS": "नहीं होता",
+        "CONTACT_MANAGER": "संपर्कों के प्रबंधक",
+        "INTEGRATIONS": "एकीकरण",
+        "MOTION_BAR": "प्रस्ताव पट्टी",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL आगे",
+        "WEB_POPUP": "वेब पॉपअप",
+        "LIST": "की सूची",
+        "INTEGRATION": "एकीकरण",
+        "TEMPLATE": "टेम्पलेट",
+        "URL": "URL",
+        "APPLICATION": "अनुप्रयोग",
+        "ARGUMENTS": "तर्क",
+        "NO_APPS_AVAILABLE": "कोई अनुप्रयोग उपलब्ध",
+        "NEW_INTERVAL": "नई Intervall",
+        "OUTBOUNDROUTE": "छुट्टिंयां मनाने का मार्ग",
+        "OPERATOR": "आॅपरेटर",
+        "NO_INTERVALS_AVAILABLE": "कोई अंतराल उपलब्ध",
+        "YES": "हां",
+        "NO": "कोई",
+        "SUBJECT": "विषय",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "BROWSER": "ब्राउज़र",
+        "INTERVAL": "अन्तराल",
+        "INFO": "जानकारी",
+        "TIME_RANGE": "समय सीमा",
+        "WEEK_DAYS": "सप्ताह के दिनों में",
+        "MONTH_DAYS": "माह के दिन",
+        "MONTHS": "महीनों",
+        "DROP_TO_UPLOAD_MESSAGE": "ऑडियो को छोड कर सकते हैं कि यहां अपलोड है। Mp3, केवल GSM, WAV - अधिकतम. 15 MB",
+        "POLLING_INTERVAL": "पोलिंग अवधि (सेकंड)",
+        "DASHBOARD": "डैशबोर्ड छिपाएं",
+        "NEW_DASHBOARDITEM": "नई डैशबोर्ड Widget",
+        "COUNTER": "जवाबी",
+        "IFRAME": "IFrame",
+        "CLOCK": "घड़ी",
+        "ADD_DASHBOARDITEM": "डैशबोर्ड Widget जोड़ें",
+        "EDIT_WIDGET": "Widget संपादित करें",
+        "DELETE_WIDGET": "Widget हटाएं",
+        "FLIP_WIDGET": "आपके द्वारा फ्लिप Widget",
+        "TITLE": "शीर्षक",
+        "UPDATE": "अद्यतन",
+        "LAYOUT": "लेआउट",
+        "BACKGROUND_COLOR": "पृष्ठभूमि रंग",
+        "FOREGROUND_COLOR": "अग्रभूमि रंग",
+        "FOREGROUND_TITLE_COLOR": "अग्रभूमि शीर्षक रंग",
+        "THEME": "विषयवस्तु",
+        "LIGHT": "प्रकाश",
+        "DARK": "अंधेरे",
+        "TIMEZONE": "समय क्षेत्र",
+        "DIGITAL_FORMAT": "डिजिटल दिनांक स्वरूप",
+        "TOOLS_QUERY": "पूछा गया प्रश्न",
+        "SELECT": "का चयन करें.",
+        "WHERE": "जहां",
+        "BACK": "वापिस",
+        "PROJECT": "परियोजना",
+        "GOTOREALTIME_TRUNK": "के लिएभूकम्पनीय वैधशालाओं सूंड",
+        "GOTO_TRUNK": "सूंड से"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/it.json b/public/app/main/apps/tools/i18n/it.json
new file mode 100644 (file)
index 0000000..55064ef
--- /dev/null
@@ -0,0 +1,304 @@
+{
+    "TOOLS": {
+        "NAME": "Nome",
+        "TRUNKS": "Trunk",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "HOST_REQUIRED": "L' Host è richiesto",
+            "DEFAULTUSER_REQUIRED": "Il Default User è richiesto",
+            "CALLERID_REQUIRED": "Il Caller ID è richiesto",
+            "KEY_REQUIRED": "La Chiave è richiesta",
+            "CONFIRM_NOT_MATCH": "Le password non combaciano",
+            "VALIDITYSTART_REQUIRED": "Il Tempo di Inizio è richiesto",
+            "VALIDITYEND_REQUIRED": "Il Tempo di Fine è richiesto",
+            "MONTHDAY_REQUIRED": "Il Giorno del Mese è richiesto",
+            "HOUR_REQUIRED": "L' Ora è richiesta",
+            "CONTENT_REQUIRED": "Il Contenuto è richiesto",
+            "URL_REQUIRED": "L'URL è richiesto",
+            "URL_MUST_VALID_URL": "L' URL deve essere in un formato valido",
+            "APPLICATION_REQUIRED": "L'Applicazione è richiesta",
+            "ARGUUMENTS_REQUIRED": "Gli Argomenti sono richiesti",
+            "NAME_MUST_VALID_PATTERN": "Il nome deve essere valido",
+            "POLLING_INTERVAL_REQUIRED": "L'intervallo di polling è richiesto",
+            "TITLE_REQUIRED": "Il Titolo è richiesto",
+            "ARGUMENTS_REQUIRED": "Gli argomenti sono richiesti"
+        },
+        "HOST": "Host",
+        "SECRET": "Segreto",
+        "DEFAULTUSER": "Default User",
+        "DESCRIPTION": "Descrizione",
+        "ADD_TRUNK": "Aggiungi Trunk",
+        "HELP": {
+            "SECRET": "La password di autenticazione per contattare il provider provider.",
+            "HOST": "Il dominio o il nome dell' host per il provider.",
+            "DEFAULTUSER": "Lo username di autenticazione per contattare il provider.",
+            "CALLERID": "Il Caller ID, nel formato \"name\" <number>",
+            "REGISTRY": "La stringa di resitrazione del trunk, richiesta da alcuni provider. Solitamente è nel formato defaultuser:secret@host.",
+            "FROMDOMAIN": "Imposta il valore di default From:domain nei messaggi SIP quando in modalità SIP ua (client). Alcune destinazioni potrebbero richiedere il nome dell' host per intero invece del solo indirizzo IP.",
+            "FROMUSER": "L' autenticazione con il provider. E' il valore dell' user da inserire al posto del Caller ID quando si fanno chiamate _to_ peer ( verso un altro proxy SIP). Valido solo per type=peer.",
+            "OUTBOUNDPROXY": "IP_address o DNS SRV name (escludendo il prefisso _sip._udp) : nome SRV, hostname o indirizzo IP del proxy SIP outbound. Invia la segnalazione a questo proxy, non direttamente al dispositivo. Valido solo per type=peer.",
+            "PORT": "La porta alla quale ci si vuole connettere sul lato remoto.",
+            "CONTEXT": "Il contesto del trunk.",
+            "TYPE": "Determina il ruolo del SIP all' interno di asterisk. User: usato per identificare le chiamate in arrivo - Peer: per le chiamate in uscita - Friend: copre entrambe le caratteristiche di User e Peer.",
+            "DTMFMODE": "Come i DTMF(Dual-Tone Multi-Frequency) sono inviati: RFC2833: la modalità di default, i DTMF vengono inviati con l' RTP ma separatamente dallo stream audio. INBAND: Il DTMF è inviato nello stream audio della conversazione in corso, risultando udibile dai partecipanti. Comporta un grosso carico sulla CPU. INFO: Nonostante questo metodi sia molto affidabile, non è supportato da tutti i dispositivi PBX e da molti Trunk SIP.",
+            "NAT": "Cambia il comportamento di Asterisk per i client dietro ad un fireewall. Se una qualsiasi dei valori selezionati è 'no', Asterisk ignorerà tutti gli altri valori e imposterà il nat=no.",
+            "QUALIFY": "Determina quando il SIP è raggiungibile.",
+            "ALLOWCODECS": "Codecs abilitati in ordine di preferenza.",
+            "INSECURE": "Specifica come gestire le connessioni con il peer, permettendo impostazioni poco sicure.",
+            "CALL_LIMIT": "Il limite di chiamate entranti e uscenti allo stesso tempo.",
+            "DIRECTMEDIA": "Asterisk cerca di default di redirezionare lo stream RTP direttamente dal chiamante al chiamato. Alcuni dispositivi non lo supportano, specialmente se sono dietro NAT.",
+            "CALLCOUNTER": "Abilita il conteggio delle chiamate sui dispositivi.",
+            "ADD_PHONE_TO_URI": "Definisce se il provider richiede la stringa ';user=phone' sull' URI.",
+            "TRUST_REMOTE_PARTY_ID": "Definisce se il Remote-Party-ID deve essere considerato affidabile.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "Definisce se il Remote-Party-ID deve essere inviato (default a no).",
+            "ENCRYPTION": "Definisce se offrire lo stream SMTP crittato sulle chiamate outbound. Le chiamate falliranno con codice errore HANGUPCAUSE=58 se il peer non supporta l' SRTP. Default a no.",
+            "TRANSPORT": "Imposta il transport di default. L' ordine determina il valore di default primario.",
+            "OTHERFIELDS": "Altri campi da aggiungere nel file di configurazione dei trunk. Da scrivere nel formato asterisk (chiave=valore), ogni campo su una singola riga."
+        },
+        "EDIT_TRUNK": "Modifica Trunk",
+        "DELETE_TRUNK": "Elimina Trunk",
+        "CREATED_AT": "Creato il",
+        "SETTINGS": "Impostazioni",
+        "ADVANCED": "Avanzate",
+        "OTHER": "Altro",
+        "ACTIVE": "Attivo",
+        "CONTEXT": "Contesto",
+        "CALLERID": "Caller ID",
+        "TYPE": "Tipo",
+        "DTMFMODE": "Modalità DTMF",
+        "NAT": "NAT",
+        "QUALIFY": "Qualifica",
+        "ALLOWCODECS": "Codecs consentiti",
+        "INSECURE": "Impostazioni non sicure",
+        "REGISTRY": "Registry",
+        "DIRECTMEDIA": "Direct Media",
+        "CALLCOUNTER": "Contatore Chiamate",
+        "FROMDOMAIN": "Dominio di provenienza",
+        "FROMUSER": "Utente di provenienza",
+        "OUTBOUNDPROXY": "Proxy Outbound",
+        "ADD_PHONE_TO_URI": "Aggiungi telefono all' URI",
+        "TRUST_REMOTE_PARTY_ID": "Remote-Party-ID affidabile",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Invia header Remote-Party-ID",
+        "ENCRYPTION": "Crittografia",
+        "PORT": "Porta",
+        "TRANSPORT": "Protocollo",
+        "SAVE": "Salva",
+        "VARIABLES": "Variabili",
+        "ADD_VARIABLE": "Aggiungi Variabile",
+        "EDIT_VARIABLE": "Modifica Variabile",
+        "DELETE_VARIABLE": "Elimina Variabile",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutti",
+        "SELECT_NONE": "Deseleziona tutti",
+        "TAGS": "Tag",
+        "ADD_TAG": "Aggiungi Tag",
+        "EDIT_TAG": "Modifica Tag",
+        "DELETE_TAG": "Elimina Tag",
+        "PAUSES": "Pause",
+        "ADD_PAUSE": "Aggiungi Pausa",
+        "EDIT_PAUSE": "Modifica Pausa",
+        "DELETE_PAUSE": "Elimina Pausa",
+        "CANNEDANSWERS": "Risposte Predefinite",
+        "ADD_CANNEDANSWER": "Aggiungi Risposta Predefinita",
+        "EDIT_CANNEDANSWER": "Modifica Risposta Predefinita",
+        "DELETE_CANNEDANSWER": "Elimina Risposta Predefinita",
+        "KEY": "Chiave",
+        "VALUE": "Valore",
+        "SOUNDS": "Suoni",
+        "EDIT_SOUND": "Modifica Suono",
+        "DELETE_SOUND": "Elimina Suono",
+        "FINISH": "Fine",
+        "DROP_TO_UPLOAD": "Rilascia per caricare file",
+        "TRIGGERS": "Trigger",
+        "EDIT_TRIGGER": "Modifica Trigger",
+        "DELETE_TRIGGER": "Elimina Trigger",
+        "ADD_TRIGGER": "Aggiungi Trigger",
+        "DELETE": "Elimina",
+        "AUTOMATIONS": "Automazione",
+        "EDIT_AUTOMATION": "Modifica Automazione",
+        "DELETE_AUTOMATION": "Elimina Automazione",
+        "ADD_AUTOMATION": "Aggiungi Automazione",
+        "INTERVALS": "Intervallo",
+        "EDIT_INTERVAL": "Modifica Intervallo",
+        "DELETE_INTERVAL": "Elimina Intervallo",
+        "ADD_INTERVAL": "Aggiungi Intervallo",
+        "TOOLS": "Strumenti",
+        "ID": "Id",
+        "AUDIO": "Audio",
+        "DOWNLOAD_SOUND": "Download Souno",
+        "UPLOAD_SOUND": "Strumenti",
+        "CHANNEL": "Canale",
+        "NEW_TRIGGER": "Nuovo Trigger",
+        "GENERAL": "Generale",
+        "STATUS": "Stato",
+        "CONDITIONS&ACTIONS": "Condizioni & Azioni",
+        "ALLCONDITIONS": "Soddisfa tutte le seguenti condizioni:",
+        "ANYCONDITIONS": "Soddisfa una qualsiasi delle seguenti condizioni:",
+        "ACTIONS": "Azioni:",
+        "NEW_AUTOMATION": "Nuova Automazione",
+        "TIMEOUT": "Timeout",
+        "PEERSTATUS": "Stato Peer",
+        "CALL_LIMIT": "Limite Chiamate",
+        "OTHERFIELDS": "Altri Campi",
+        "NEW_VARIABLE": "Nuova Variabile",
+        "NEW_TAG": "Nuovo Tag",
+        "NEW_PAUSE": "Nuova Pausa",
+        "NEW_CANNEDANSWER": "Nuova Risposta Predefinita",
+        "CONFIRM_PASSWORD": "Conferma Password",
+        "NEW_TRUNK": "Nuovo Trunk",
+        "FROM": "Da",
+        "TO": "A",
+        "WEEKDAY": "Giorno della settimana",
+        "MONTHDAY": "Giorno del mese",
+        "MONTH": "Mese",
+        "ALWAYS": "Sempre",
+        "MON": "Lunedì",
+        "TUE": "Martedì",
+        "WED": "Mercoledì",
+        "THU": "Gioved'",
+        "FRI": "Venerdì",
+        "SAT": "Sabato",
+        "SUN": "Domenica",
+        "JAN": "Gennaio",
+        "FEB": "Febbraio",
+        "MAR": "Marzo",
+        "APR": "Aprile",
+        "MAY": "Maggio",
+        "JUN": "Giugno",
+        "JUL": "Luglio",
+        "AUG": "Agosto",
+        "SEP": "Settembre",
+        "OCT": "Ottobre",
+        "NOV": "Novembre",
+        "DEC": "Dicembre",
+        "PASSWORD": "Password",
+        "CUSTOMDASHBOARDS": "Dashboard Personalizzate",
+        "NEW_CUSTOMDASHBOARD": "Nuova Dashboard Personalizzata",
+        "ADD_CUSTOMDASHBOARD": "Aggiungi Dashboard Personalizzata",
+        "EDIT_CUSTOMDASHBOARD": "Modifica Dashboard Personalizzata",
+        "DELETE_CUSTOMDASHBOARD": "Elimina Dashboard Personalizzata",
+        "SCHEDULER": "Pianificazione",
+        "NEW_SCHEDULE": "Nuova Pianificazione",
+        "ADD_SCHEDULE": "Aggiungi Pianificazione",
+        "EDIT_SCHEDULE": "Modifica Pianificazione",
+        "DELETE_SCHEDULE": "Elimina Pianificazione",
+        "SENDMAIL": "Invia Mail",
+        "CONFIGURATION": "Configurazione",
+        "MAIL": "Mail",
+        "REPORTTYPE": "Tipo Report",
+        "REPORT": "Report",
+        "OUTPUT": "Output",
+        "EXECUTEON": "Esegui",
+        "REPORTRANGE": "Intervallo Report",
+        "VALIDITYSTART": "Tempo di Inizio",
+        "VALIDITYEND": "Tempo di Fine",
+        "EXECUTEEVERY": "Esegui ogni",
+        "ACCOUNT": "Account",
+        "EMAILADDRESS": "Indirizzo Email",
+        "CURRENTDAY": "Giorno corrente",
+        "DAILY": "Giornalmente",
+        "WEEKLY": "Settimanalmente",
+        "MONTHLY": "Mensilmente",
+        "PREVIOUS_DAY": "Giorno precedente",
+        "LAST_SEVEN_DAYS": "Ultimi 7 giorni",
+        "LAST_THIRTY_DAYS": "Ultimi 30 giorni",
+        "LAST_MONTH": "Ultimo mese",
+        "WEEKDAYS": "Giorni della settimana",
+        "HOUR": "Ora",
+        "DEFAULT": "Default",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 minuti",
+        "30MIN": "30 minuti",
+        "1H": "1 ora",
+        "VOICE": "Voce",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Open Channel",
+        "TEMPLATES": "Modelli",
+        "EDIT_TEMPLATE": "Modifica Modello",
+        "DELETE_TEMPLATE": "Elimina Modello",
+        "NEW_TEMPLATE": "Nuovo Modello",
+        "ADD_TEMPLATE": "Aggiungi Modello",
+        "CONTENT": "Contenuto",
+        "FIELD": "Campo",
+        "NO_ANYCONDITION_AVAILABLE": "Nessuna condizione disponibile",
+        "NO_ALLCONDITION_AVAILABLE": "Nessuna condizione disponibile",
+        "NO_ACTION_AVAILABLE": "Nessuna azione disponibile",
+        "ACTION": "Azione",
+        "EDIT_ANYCONDITION": "Modifica Condizione",
+        "DELETE_ANYCONDITION": "Elimina Condizione",
+        "NEW_ANYCONDITION": "Nuova Condizione",
+        "ADD_ANYCONDITION": "Aggiungi Condizione",
+        "EDIT_ALLCONDITION": "Modifica Condizione",
+        "DELETE_ALLCONDITION": "Elimina Condizione",
+        "NEW_ALLCONDITION": "Nuova Condizione",
+        "ADD_ALLCONDITION": "Aggiungi Condizione",
+        "EDIT_ACTION": "Modifica Azione",
+        "DELETE_ACTION": "Elimina Azione",
+        "NEW_ACTION": "Nuova Azione",
+        "ADD_ACTION": "Aggiungi Azione",
+        "QUEUE": "Coda",
+        "CALL_STATUS": "Stato chiamata",
+        "OUTBOUNDROUTE": "Rotta Outbound",
+        "EQUALS": "Uguale a",
+        "NOT_EQUALS": "Diverso da",
+        "CONTACT_MANAGER": "Manager Contatti",
+        "INTEGRATIONS": "Integrazioni",
+        "MOTION_BAR": "Motion Bar",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "Inoltro URL",
+        "WEB_POPUP": "Popup Web",
+        "LIST": "Lista",
+        "INTEGRATION": "Integrazione",
+        "TEMPLATE": "Modello",
+        "URL": "URL",
+        "APPLICATION": "Applicazione",
+        "ARGUMENTS": "Argomenti",
+        "NO_APPS_AVAILABLE": "Nessuna applicazione disponibile",
+        "NEW_INTERVAL": "Nuovo Intervallo",
+        "OPERATOR": "Operatore",
+        "NO_INTERVALS_AVAILABLE": "Nessun intervallo disponibile",
+        "YES": "Si",
+        "NO": "No",
+        "SUBJECT": "Soggetto",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "BROWSER": "Browser",
+        "INTERVAL": "Intervallo",
+        "INFO": "Info",
+        "TIME_RANGE": "Intervallo di tempo",
+        "WEEK_DAYS": "Giorni della settimana",
+        "MONTH_DAYS": "Giorni del mese",
+        "MONTHS": "Mesi",
+        "DROP_TO_UPLOAD_MESSAGE": "Puoi anche trascinare qui i tuoi audio da caricare. Solo MP3, WAV, GSM - Max. 15MB",
+        "POLLING_INTERVAL": "Intervallo Polling(secondi)",
+        "DASHBOARD": "Dashboard",
+        "NEW_DASHBOARDITEM": "Nuovo Widget Dashboard",
+        "COUNTER": "Contatore",
+        "IFRAME": "IFrame",
+        "CLOCK": "Orologio",
+        "ADD_DASHBOARDITEM": "Aggiungi Widget Dashboard",
+        "EDIT_WIDGET": "Modifica Widget",
+        "DELETE_WIDGET": "Elimina Widget",
+        "FLIP_WIDGET": "Capovolgi Widget",
+        "TITLE": "Titolo",
+        "UPDATE": "Aggiorna",
+        "LAYOUT": "Layout",
+        "BACKGROUND_COLOR": "Colore di sfondo",
+        "FOREGROUND_COLOR": "Colore in primo piano",
+        "FOREGROUND_TITLE_COLOR": "Colore Titolo in primo piano",
+        "THEME": "Tema",
+        "LIGHT": "Chiaro",
+        "DARK": "Scuro",
+        "TIMEZONE": "Fuso Orario",
+        "DIGITAL_FORMAT": "Formato Data Digitale",
+        "TOOLS_QUERY": "Query",
+        "SELECT": "Select",
+        "WHERE": "Where",
+        "BACK": "Indietro",
+        "PROJECT": "Progetto",
+        "GOTOREALTIME_TRUNK": "Andare al trunk in tempo reale",
+        "GOTO_TRUNK": "Vai a linea"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/ja.json b/public/app/main/apps/tools/i18n/ja.json
new file mode 100644 (file)
index 0000000..438a08c
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "名",
+        "TRUNKS": "トランク",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "HOST_REQUIRED": "は、ホストが必要です",
+            "DEFAULTUSER_REQUIRED": "デフォルトのユーザーが必要です",
+            "CALLERID_REQUIRED": "は、発信者 ID が必要です。",
+            "KEY_REQUIRED": "キーが必要です",
+            "CONFIRM_NOT_MATCH": "パスワードは、 Don ’ t が一致し",
+            "VALIDITYSTART_REQUIRED": "開始時間が必要な",
+            "VALIDITYEND_REQUIRED": "終了時間が必要な",
+            "MONTHDAY_REQUIRED": "の月日が必要です",
+            "HOUR_REQUIRED": "時間が必要な",
+            "CONTENT_REQUIRED": "コンテンツは必要に応じて",
+            "URL_REQUIRED": "の URL が必要です",
+            "URL_MUST_VALID_URL": "URL が有効である必要があり",
+            "APPLICATION_REQUIRED": "は、アプリケーションが必要です",
+            "ARGUUMENTS_REQUIRED": "の引数が必要です",
+            "NAME_MUST_VALID_PATTERN": "名前は、有効な形式で記述する必要があります",
+            "ARGUMENTS_REQUIRED": "の引数が必要です",
+            "POLLING_INTERVAL_REQUIRED": "ポーリングの間隔が必要です",
+            "TITLE_REQUIRED": "タイトルが必要です"
+        },
+        "HOST": "ホスト",
+        "SECRET": "シークレット",
+        "DEFAULTUSER": "デフォルトのユーザー",
+        "DESCRIPTION": "説明",
+        "ADD_TRUNK": "トランクを追加します。",
+        "HELP": {
+            "SECRET": "認証パスワードはプロバイダに連絡してください。",
+            "HOST": "プロバイダのドメイン名またはホスト名を指定します。",
+            "DEFAULTUSER": "認証ユーザ名をプロバイダに連絡してください。",
+            "CALLERID": "は、発信者 ID は、形式の「名前」 < 番号 > で",
+            "REGISTRY": "は、一部のプロバイダーが必要なトランクのレジストリの文字列は、通常、 defaultuser : @ ホストの秘密である。",
+            "FROMDOMAIN": "デフォルトから設定します。 SIP UA (クライアント)として動作するときに SIP メッセージのドメインです。 一部の宛先ではなく、必須の ID 名は、 IP アドレスのみが必要な場合があります。",
+            "FROMUSER": "お使いのプロバイダの方法を知っている。 これは、ユーザーが通話をピア(別の SIP プロキシ)を配置するときに、発信者番号の代わりにすることにした。 では、ピアのタイプにのみ有効です。",
+            "OUTBOUNDPROXY": "IP アドレスまたは DNS SRV 名 ( sip は除外されます。 UDP の接頭辞) : SRV 名、ホスト名、またはアウトバウンドの SIP プロキシの IP アドレスを入力します。 アウトバウンドのシグナリングは、このプロキシにするには、デバイスに直接送信します。 では、ピアのタイプにのみ有効です。",
+            "PORT": "ポートは、リモート側での接続をしたい数。",
+            "CONTEXT": "トランクの攻撃可能なコンテキストを指定します。",
+            "TYPE": "アスタリスク内の SIP の役割を決定します。 ユーザは、次の着信を認証するピア : 発信コールの友人のために上記の両方の特性をカバーするために使用されます。",
+            "DTMFMODE": "DTMF ( デュアルトーンマルチ周波数 ) が送信される方法は、次の RFC 2833 : デフォルトのモードを開始するには、 DTMF は、 RTP を使用して送信されますが、オーディオストリームの範囲外にあります。 インバンド : DTMF は現在の会話のオーディオストリームで送信されるため、スピーカーからの音になっています。 CPU の負荷が高くなる必要があります。 情報 : この方法は、非常に信頼性の高いですが、すべての PBX がデバイスおよび多くの SIP トランクではサポートされていません。",
+            "NAT": "ファイアウォールの背後にあるクライアントの場合はアスタリスクの動作を変更できます。カンマのいずれかで区切られたオプションが ' いいえ ' の場合にアスタリスクが付いている他のすべての設定項目を設定し、 nat = no を無視する",
+            "QUALIFY": "SIP が達成可能かどうかを決定します。",
+            "ALLOWCODECS": "環境設定の順序で許可されてコーデックに対応しています。",
+            "INSECURE": "ピアとは、安全でない設定を許可する接続を処理する方法を指定します。",
+            "CALL_LIMIT": "は、一度にインバウンドコールとアウトバウンドコールの数を制限します。",
+            "DIRECTMEDIA": "デフォルトでアスタリスクは、 RTP メディアストリームの発信者からの着信側に直接移動するには」にリダイレクトします。 一部のデバイスでは、この(それらの 1 つが NAT の背後にある)場合は、特にサポートしていません。 デフォルトの設定は YES です。 は、 NAT の背後にある場合、またはその他の理由で、すべてのクライアントにアスタリスクが付きます。オーディオパスでの滞在を希望している場合、これをオフにすることをお勧めします。",
+            "CALLCOUNTER": "デバイス上のコールカウンタをイネーブルにします。",
+            "ADD_PHONE_TO_URI": "は、プロバイダーが必要です」の場合を定義します。ユーザー = URI に電話します。",
+            "TRUST_REMOTE_PARTY_ID": "Remote-party-id 信頼するかどうかを定義します。",
+            "SEND_REMOTE_PARTY_ID_HEADER": "ステータス",
+            "ENCRYPTION": "Remote-party-id 送信する必要がある ( デフォルトは no ) にするかを定義します。",
+            "TRANSPORT": "デフォルトの転送を設定します。 順序は、プライマリデフォルトのトランスポートを指定します。",
+            "OTHERFIELDS": "では、トランク内の他のフィールドに conf ファイルを追加します。 でアスタリスク形式(キー = 値 ) は、 1 つの行上の各フィールドに書き込まれます。"
+        },
+        "EDIT_TRUNK": "トランクの編集",
+        "DELETE_TRUNK": "トランクを削除",
+        "CREATED_AT": "で作成された",
+        "SETTINGS": "の設定",
+        "ADVANCED": "高度な",
+        "OTHER": "その他の",
+        "ACTIVE": "アクティブ",
+        "CONTEXT": "コンテキスト",
+        "CALLERID": "発信者 ID",
+        "TYPE": "タイプ",
+        "DTMFMODE": "DTMF モード",
+        "NAT": "NAT",
+        "QUALIFY": "資格を",
+        "ALLOWCODECS": "許可されているコーデック",
+        "INSECURE": "安全ではない",
+        "REGISTRY": "レジストリ",
+        "DIRECTMEDIA": "ダイレクト・メディア・",
+        "CALLCOUNTER": "コールカウンタ",
+        "FROMDOMAIN": "ドメインからの",
+        "FROMUSER": "ユーザーからの",
+        "OUTBOUNDPROXY": "アウトバウンドプロキシ",
+        "ADD_PHONE_TO_URI": "電話を URI の追加",
+        "TRUST_REMOTE_PARTY_ID": "信頼リモートサードパーティの ID",
+        "SEND_REMOTE_PARTY_ID_HEADER": "リモートパーティ ID ヘッダを送信する",
+        "ENCRYPTION": "暗号化",
+        "PORT": "ポート",
+        "TRANSPORT": "交通機関",
+        "SAVE": "保存",
+        "VARIABLES": "変数",
+        "ADD_VARIABLE": "変数を追加します。",
+        "EDIT_VARIABLE": "変数の編集",
+        "DELETE_VARIABLE": "変数を削除する",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "TAGS": "タグ",
+        "ADD_TAG": "タグの追加",
+        "EDIT_TAG": "タグの編集",
+        "DELETE_TAG": "タグを削除する",
+        "PAUSES": "一時停止",
+        "ADD_PAUSE": "一時停止を追加",
+        "EDIT_PAUSE": "編集の一時停止",
+        "DELETE_PAUSE": "一時停止を削除",
+        "CANNEDANSWERS": "缶詰の回答",
+        "ADD_CANNEDANSWER": "缶詰の回答の追加",
+        "EDIT_CANNEDANSWER": "缶詰にされたアンサーの編集",
+        "DELETE_CANNEDANSWER": "缶詰にされた答えを削除",
+        "KEY": "キー",
+        "VALUE": "値",
+        "SOUNDS": "サウンド",
+        "EDIT_SOUND": "サウンドの編集",
+        "DELETE_SOUND": "サウンドを削除する",
+        "FINISH": "完了",
+        "DROP_TO_UPLOAD": "アップロードのドロップ",
+        "TRIGGERS": "トリガー",
+        "EDIT_TRIGGER": "トリガーの編集",
+        "DELETE_TRIGGER": "トリガを削除する",
+        "ADD_TRIGGER": "トリガーの追加 ]",
+        "DELETE": "削除",
+        "AUTOMATIONS": "オートメーション",
+        "EDIT_AUTOMATION": "編集の自動化",
+        "DELETE_AUTOMATION": "自動化を削除します",
+        "ADD_AUTOMATION": "自動化を追加",
+        "INTERVALS": "間隔",
+        "EDIT_INTERVAL": "間隔の編集",
+        "DELETE_INTERVAL": "間隔を削除",
+        "ADD_INTERVAL": "間隔を追加します。",
+        "TOOLS": "ツール",
+        "ID": "Id",
+        "AUDIO": "オーディオ",
+        "DOWNLOAD_SOUND": "ダウンロードサウンド",
+        "UPLOAD_SOUND": "ツール",
+        "CHANNEL": "チャネル",
+        "NEW_TRIGGER": "新しいトリガ",
+        "GENERAL": "一般的な",
+        "STATUS": "ステータス",
+        "CONDITIONS&ACTIONS": "条件とアクション",
+        "ALLCONDITIONS": "これらのすべての条件を満たす必要があります。",
+        "ANYCONDITIONS": "これらの条件のいずれかに適合します。",
+        "ACTIONS": "アクション :",
+        "NEW_AUTOMATION": "新しい自動化",
+        "TIMEOUT": "タイムアウト",
+        "PEERSTATUS": "ピアのステータス",
+        "CALL_LIMIT": "通話の転送の制限",
+        "OTHERFIELDS": "その他のフィールド",
+        "NEW_VARIABLE": "新しい変数",
+        "NEW_TAG": "新しいタグ",
+        "NEW_PAUSE": "新しい一時停止",
+        "NEW_CANNEDANSWER": "新しい缶詰の答え",
+        "CONFIRM_PASSWORD": "パスワードを確認します",
+        "NEW_TRUNK": "新しいトランク",
+        "FROM": "から",
+        "TO": "を",
+        "WEEKDAY": "週の日",
+        "MONTHDAY": "月日",
+        "MONTH": "月",
+        "ALWAYS": "常に",
+        "MON": "月曜日",
+        "TUE": "火曜日",
+        "WED": "水曜日",
+        "THU": "木曜日",
+        "FRI": "金曜日",
+        "SAT": "土曜日",
+        "SUN": "日曜日",
+        "JAN": "1 月",
+        "FEB": "2 月",
+        "MAR": "3 月",
+        "APR": "4 月",
+        "MAY": "お",
+        "JUN": "6 月",
+        "JUL": "7 月",
+        "AUG": "8 月",
+        "SEP": "9 月",
+        "OCT": "10 月",
+        "NOV": "11 月",
+        "DEC": "12 月",
+        "PASSWORD": "パスワード",
+        "CUSTOMDASHBOARDS": "カスタムダッシュボード",
+        "NEW_CUSTOMDASHBOARD": "新しいカスタムダッシュボード",
+        "ADD_CUSTOMDASHBOARD": "カスタムダッシュボードの追加",
+        "EDIT_CUSTOMDASHBOARD": "カスタムダッシュボードの編集",
+        "DELETE_CUSTOMDASHBOARD": "カスタムダッシュボードの削除",
+        "SCHEDULER": "スケジューラ",
+        "NEW_SCHEDULE": "スケジュールの新規作成",
+        "ADD_SCHEDULE": "スケジュールの追加",
+        "EDIT_SCHEDULE": "スケジュールの編集",
+        "DELETE_SCHEDULE": "スケジュールを削除する",
+        "SENDMAIL": "メールを送信する",
+        "CONFIGURATION": "設定",
+        "MAIL": "電子メール",
+        "REPORTTYPE": "レポートタイプ",
+        "REPORT": "レポート",
+        "OUTPUT": "出力",
+        "EXECUTEON": "実行します。",
+        "REPORTRANGE": "レポートの範囲",
+        "VALIDITYSTART": "開始時刻",
+        "VALIDITYEND": "終了時間",
+        "EXECUTEEVERY": "実行間隔",
+        "ACCOUNT": "アカウント",
+        "EMAILADDRESS": "電子メールアドレス",
+        "CURRENTDAY": "現在の日",
+        "DAILY": "毎日",
+        "WEEKLY": "ウィークリー",
+        "MONTHLY": "毎月の",
+        "PREVIOUS_DAY": "前日",
+        "LAST_SEVEN_DAYS": "過去 7 日間",
+        "LAST_THIRTY_DAYS": "最終日 Thirthy",
+        "LAST_MONTH": "最後の月",
+        "WEEKDAYS": "週の日",
+        "HOUR": "時間",
+        "DEFAULT": "デフォルト",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 分",
+        "30MIN": "30 分",
+        "1H": "1 時間",
+        "VOICE": "音声",
+        "CHAT": "チャット",
+        "SMS": "SMS",
+        "OPENCHANNEL": "チャネルを開きます。",
+        "TEMPLATES": "テンプレート",
+        "EDIT_TEMPLATE": "テンプレートの編集",
+        "DELETE_TEMPLATE": "テンプレートを削除します。",
+        "NEW_TEMPLATE": "新しいテンプレート",
+        "ADD_TEMPLATE": "テンプレートを追加します。",
+        "CONTENT": "コンテンツ",
+        "FIELD": "フィールド",
+        "NO_ANYCONDITION_AVAILABLE": "条件はご利用いただけません。",
+        "NO_ALLCONDITION_AVAILABLE": "条件はご利用いただけません。",
+        "NO_ACTION_AVAILABLE": "アクションは利用できません",
+        "ACTION": "アクション",
+        "EDIT_ANYCONDITION": "条件の編集",
+        "DELETE_ANYCONDITION": "条件を削除します",
+        "NEW_ANYCONDITION": "新しい条件",
+        "ADD_ANYCONDITION": "条件を追加します。",
+        "EDIT_ALLCONDITION": "条件の編集",
+        "DELETE_ALLCONDITION": "条件を削除します",
+        "NEW_ALLCONDITION": "新しい条件",
+        "ADD_ALLCONDITION": "条件を追加します。",
+        "EDIT_ACTION": "アクションの編集",
+        "DELETE_ACTION": "アクションの削除",
+        "NEW_ACTION": "新しいアクション",
+        "ADD_ACTION": "アクションの追加",
+        "QUEUE": "キュー",
+        "CALL_STATUS": "コールステータス",
+        "OUTBOUND_ROUTE": "アウトバウンドルート",
+        "EQUALS": "等しい",
+        "NOT_EQUALS": "等しくない",
+        "CONTACT_MANAGER": "連絡先管理マネージャ",
+        "INTEGRATIONS": "統合",
+        "MOTION_BAR": "運動可能バー",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL 転送",
+        "WEB_POPUP": "Web ポップアップ",
+        "LIST": "リスト",
+        "INTEGRATION": "統合",
+        "TEMPLATE": "テンプレート",
+        "URL": "URL",
+        "APPLICATION": "アプリケーション",
+        "ARGUMENTS": "引数",
+        "NO_APPS_AVAILABLE": "使用可能なアプリケーションがありません",
+        "NEW_INTERVAL": "新しい待っ",
+        "OUTBOUNDROUTE": "アウトバウンドルート",
+        "OPERATOR": "演算子",
+        "NO_INTERVALS_AVAILABLE": "利用可能な間隔がありません",
+        "YES": "はい",
+        "NO": "はありません",
+        "SUBJECT": "件名",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "BROWSER": "ブラウザ",
+        "INTERVAL": "間隔",
+        "INFO": "情報",
+        "TIME_RANGE": "時間範囲",
+        "WEEK_DAYS": "週の日",
+        "MONTH_DAYS": "月日",
+        "MONTHS": "か月",
+        "DROP_TO_UPLOAD_MESSAGE": "オーディオをここにドロップしてアップロードすることもできます。 MP 3 、 WAV 、 GSM のみの Max 。 15 MB",
+        "POLLING_INTERVAL": "ポーリング間隔 ( 秒 )",
+        "DASHBOARD": "ダッシュボード",
+        "NEW_DASHBOARDITEM": "新しいダッシュボードウィジェット",
+        "COUNTER": "カウンタ",
+        "IFRAME": "IFrame",
+        "CLOCK": "クロック",
+        "ADD_DASHBOARDITEM": "ダッシュボードウィジェットを追加します。",
+        "EDIT_WIDGET": "ウィジェットの編集",
+        "DELETE_WIDGET": "ウィジェットを削除",
+        "FLIP_WIDGET": "フリップウィジェット",
+        "TITLE": "タイトル",
+        "UPDATE": "更新",
+        "LAYOUT": "レイアウト",
+        "BACKGROUND_COLOR": "背景色",
+        "FOREGROUND_COLOR": "前景の色",
+        "FOREGROUND_TITLE_COLOR": "前景のタイトルの色",
+        "THEME": "テーマ",
+        "LIGHT": "ライト",
+        "DARK": "暗い",
+        "TIMEZONE": "タイムゾーン",
+        "DIGITAL_FORMAT": "デジタル日付形式",
+        "TOOLS_QUERY": "クエリ",
+        "SELECT": "を選択します",
+        "WHERE": "ここで",
+        "BACK": "背面",
+        "PROJECT": "プロジェクト",
+        "GOTOREALTIME_TRUNK": "リアルタイム・トランクに移動",
+        "GOTO_TRUNK": "トランクに移動"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/ko.json b/public/app/main/apps/tools/i18n/ko.json
new file mode 100644 (file)
index 0000000..d38ec5c
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "이름",
+        "TRUNKS": "트렁크",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "HOST_REQUIRED": "호스트가 필요합니다.",
+            "DEFAULTUSER_REQUIRED": "기본 사용자가 필요합니다",
+            "CALLERID_REQUIRED": "발신자 ID가 필요합니다.",
+            "KEY_REQUIRED": "키가 필요합니다.",
+            "CONFIRM_NOT_MATCH": "비밀번호는 그리고그 일치하지 않음",
+            "VALIDITYSTART_REQUIRED": "시작 시간이 필요합니다.",
+            "VALIDITYEND_REQUIRED": "종료 시간 필요",
+            "MONTHDAY_REQUIRED": "월 일 필요합니다.",
+            "HOUR_REQUIRED": "시간은 필요합니다.",
+            "CONTENT_REQUIRED": "내용이 필요합니다.",
+            "URL_REQUIRED": "이 URL은 필수 항목입니다.",
+            "URL_MUST_VALID_URL": "URL이 잘못 합니다.",
+            "APPLICATION_REQUIRED": "응용 프로그램이 필요합니다.",
+            "ARGUUMENTS_REQUIRED": "인수가 필요합니다.",
+            "NAME_MUST_VALID_PATTERN": "이름이 유효한 형식으로 작성되어 있어야 합니다",
+            "ARGUMENTS_REQUIRED": "인수가 필요합니다.",
+            "POLLING_INTERVAL_REQUIRED": "폴링 간격이 필요합니다.",
+            "TITLE_REQUIRED": "제목은 필수"
+        },
+        "HOST": "호스트",
+        "SECRET": "비밀",
+        "DEFAULTUSER": "기본 사용자",
+        "DESCRIPTION": "설명",
+        "ADD_TRUNK": "트렁크 추가",
+        "HELP": {
+            "SECRET": "인증 암호를 사용하여 공급자에게 문의하십시오.",
+            "HOST": "공급자의 도메인 또는 호스트 이름입니다.",
+            "DEFAULTUSER": "인증 아이디 공급자에게 문의하십시오.",
+            "CALLERID": "통화자 ID 형식을 \"이름\"입니다",
+            "REGISTRY": "일부 공급자에 필요한 트렁크 레지스트리 string, 보통 defaultuser : secret@ 호스트.",
+            "FROMDOMAIN": "기본 보낸사람: SIP Ua(클라이언트) 역할을 할 때 SIP 메시지를 도메인 설정합니다. 일부 대상으로 대신 필수 ID 이름을 단지 IP 주소를 요구할 수 있습니다.",
+            "FROMUSER": "당신의 있으려면 공 급자 조직을 먼저 작성해야 방법을 알 수 있습니다. 이는 사용자가 전화를 걸 때 피어(다른 SIP Proxy) callerid 대신 넣었습니다. = 피어 형식에 대해서만 유효합니다.",
+            "OUTBOUNDPROXY": "IP_주소 또는 DNS SRV 이름(_sip 제외한 udp_Prefix) : SRV 이름, 호스트 이름 또는 발신 SIP 프록시 IP 주소입니다. 발신 신호 이 프록시에 적용되며 장치에 직접 보내지. = 피어 형식에 대해서만 유효합니다.",
+            "PORT": "포트 우리는 원격측에 있는 연결할 번호를.",
+            "CONTEXT": "트렁크에 대한 악용 가능한 상황.",
+            "TYPE": "별표 내에 SIP 역할을 결정합니다. 사용자:수신 피어: 인증하는 발신 통화 - 친구: 모두 위의 특징에 대해 설명합니다.",
+            "DTMFMODE": "Dtmf(Dual-Tone Multi Frequency 다중 주파수) : RFC 2833: 기본 모드를 DTMF Rtp 함께 전송되지 오디오 스트림 밖에서 만나실 수 있습니다. INBAND: DTMF는 현 대화에 오디오 스트림, 스피커에서 들리지 되고 보냈다. 높은 CPU 로드 합니다. 정보: 이 메서드는 매우 신뢰할 수 있지만, 모든 PBX 장치 및 많은 SIP 트렁크 지원하지 않습니다.",
+            "NAT": "방화벽이 클라이언트를 위한 별표 동작을 변경합니다. 쉼표로 구분된 옵션 '아니오', 별표 기타 설정 및 설정 NAT = No. 외면을 받게 된다.",
+            "QUALIFY": "Sip 만들지는 시기를 결정합니다.",
+            "ALLOWCODECS": "선호하는 허용된 코덱.",
+            "INSECURE": "피어, 안전하지 않은 설정을 허용하는 연결을 처리하는 방법을 지정합니다.",
+            "CALL_LIMIT": "한 번에 인바운드 및 아웃바운드 통화 수를 제한합니다.",
+            "DIRECTMEDIA": "기본적으로 별표로 이동한 RTP 미디어 스트림에 발신자로부터 수신자에게 직접 이동합니다. 일부 장치는 이 (특히 그 중 하나가 NAT 배후에)를 지원하지 않습니다. 기본 설정은 Yes입니다. Nat 또는 기타 이유로 인해 뒤에 모든 클라이언트가 별표 오디오 경로 원하시는 있는 경우, 이를 끌 수 있습니다.",
+            "CALLCOUNTER": "장치에서 통화 카운터 활성화.",
+            "ADD_PHONE_TO_URI": "공급자가 필요합니다';user=URI에 전화 를 정의하는 것입니다.",
+            "TRUST_REMOTE_PARTY_ID": "Remote-party-Id 신뢰할 수 있는 하는지 여부를 정의합니다.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "상태",
+            "ENCRYPTION": "Remote-party-Id(기본값 없음) 하는지 여부를 정의합니다.",
+            "TRANSPORT": "기본 전송 집합은. 주문 기본 전송 결정합니다.",
+            "OTHERFIELDS": "자가용의 트렁크가 다른 필드를.conf 파일을 추가합니다. 에서 별표( 키=값), 단일 행에 각 필드를 작성할 수 있습니다."
+        },
+        "EDIT_TRUNK": "편집 트렁크",
+        "DELETE_TRUNK": "트렁크 삭제",
+        "CREATED_AT": "생성",
+        "SETTINGS": "설정",
+        "ADVANCED": "고급",
+        "OTHER": "기타",
+        "ACTIVE": "활성",
+        "CONTEXT": "컨텍스트",
+        "CALLERID": "발신자 ID",
+        "TYPE": "유형",
+        "DTMFMODE": "DTMF 모드",
+        "NAT": "NAT",
+        "QUALIFY": "자격 요건",
+        "ALLOWCODECS": "허용된 코덱",
+        "INSECURE": "안전하지 않은",
+        "REGISTRY": "레지스트리",
+        "DIRECTMEDIA": "직접 미디어",
+        "CALLCOUNTER": "통화 카운터",
+        "FROMDOMAIN": "도메인에서",
+        "FROMUSER": "사용자로부터",
+        "OUTBOUNDPROXY": "아웃바운드 프록시",
+        "ADD_PHONE_TO_URI": "Uri 전화 추가",
+        "TRUST_REMOTE_PARTY_ID": "신뢰 원격측을 ID",
+        "SEND_REMOTE_PARTY_ID_HEADER": "원격 상대방이 Id 헤더를 보냅니다",
+        "ENCRYPTION": "암호화",
+        "PORT": "포트",
+        "TRANSPORT": "전송",
+        "SAVE": "저장",
+        "VARIABLES": "변수",
+        "ADD_VARIABLE": "변수 추가",
+        "EDIT_VARIABLE": "변수 편집",
+        "DELETE_VARIABLE": "변수 삭제",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "TAGS": "태그",
+        "ADD_TAG": "태그 추가",
+        "EDIT_TAG": "태그 편집",
+        "DELETE_TAG": "태그 삭제",
+        "PAUSES": "일시 중지",
+        "ADD_PAUSE": "일시 중지 추가",
+        "EDIT_PAUSE": "편집 일시 중지",
+        "DELETE_PAUSE": "일시 삭제",
+        "CANNEDANSWERS": "통조림 답변",
+        "ADD_CANNEDANSWER": "녹음된 응답 추가",
+        "EDIT_CANNEDANSWER": "통조림 응답 편집",
+        "DELETE_CANNEDANSWER": "통조림 답변 삭제",
+        "KEY": "키",
+        "VALUE": "값",
+        "SOUNDS": "사운드",
+        "EDIT_SOUND": "사운드 편집",
+        "DELETE_SOUND": "사운드 삭제",
+        "FINISH": "마침",
+        "DROP_TO_UPLOAD": "업로드 취소",
+        "TRIGGERS": "트리거",
+        "EDIT_TRIGGER": "트리거 편집",
+        "DELETE_TRIGGER": "트리거 삭제",
+        "ADD_TRIGGER": "트리거 추가",
+        "DELETE": "삭제",
+        "AUTOMATIONS": "Automations",
+        "EDIT_AUTOMATION": "편집 자동화",
+        "DELETE_AUTOMATION": "자동화 삭제",
+        "ADD_AUTOMATION": "자동화 추가",
+        "INTERVALS": "간격",
+        "EDIT_INTERVAL": "편집 간격",
+        "DELETE_INTERVAL": "간격 삭제",
+        "ADD_INTERVAL": "간격을 추가하거나",
+        "TOOLS": "도구",
+        "ID": "Id",
+        "AUDIO": "오디오",
+        "DOWNLOAD_SOUND": "다운로드 사운드",
+        "UPLOAD_SOUND": "도구",
+        "CHANNEL": "채널",
+        "NEW_TRIGGER": "새로운 트리거",
+        "GENERAL": "일반",
+        "STATUS": "상태",
+        "CONDITIONS&ACTIONS": "조건식 및 동작",
+        "ALLCONDITIONS": "이러한 모든 조건을 만족시켜야 합니다.",
+        "ANYCONDITIONS": "다음 조건 중 하나라도 충족하는:",
+        "ACTIONS": "동작:",
+        "NEW_AUTOMATION": "새 자동화",
+        "TIMEOUT": "시간 초과",
+        "PEERSTATUS": "피어 상태",
+        "CALL_LIMIT": "통화 제한",
+        "OTHERFIELDS": "다른 필드",
+        "NEW_VARIABLE": "새 변수",
+        "NEW_TAG": "새 태그",
+        "NEW_PAUSE": "새로운 일시 중지",
+        "NEW_CANNEDANSWER": "새로운 통조림 응답",
+        "CONFIRM_PASSWORD": "암호 확인",
+        "NEW_TRUNK": "새 트렁크",
+        "FROM": "에서",
+        "TO": "클릭하여",
+        "WEEKDAY": "요일",
+        "MONTHDAY": "월 일",
+        "MONTH": "달",
+        "ALWAYS": "항상",
+        "MON": "월요일",
+        "TUE": "화요일",
+        "WED": "수요일",
+        "THU": "목요일",
+        "FRI": "금요일",
+        "SAT": "토요일",
+        "SUN": "일요일",
+        "JAN": "1월",
+        "FEB": "2월",
+        "MAR": "3월",
+        "APR": "4월",
+        "MAY": "5월",
+        "JUN": "6월",
+        "JUL": "7월",
+        "AUG": "8월",
+        "SEP": "9월",
+        "OCT": "10월",
+        "NOV": "11월",
+        "DEC": "12월",
+        "PASSWORD": "암호",
+        "CUSTOMDASHBOARDS": "사용자 정의 대시보드",
+        "NEW_CUSTOMDASHBOARD": "새 사용자 정의 대시보드",
+        "ADD_CUSTOMDASHBOARD": "사용자 정의 대시보드 추가",
+        "EDIT_CUSTOMDASHBOARD": "사용자 정의 대시보드 편집",
+        "DELETE_CUSTOMDASHBOARD": "사용자 정의 대시보드 삭제",
+        "SCHEDULER": "스케줄러",
+        "NEW_SCHEDULE": "새 일정",
+        "ADD_SCHEDULE": "일정 추가",
+        "EDIT_SCHEDULE": "일정 편집",
+        "DELETE_SCHEDULE": "일정 삭제",
+        "SENDMAIL": "메일 보내기",
+        "CONFIGURATION": "구성",
+        "MAIL": "메일",
+        "REPORTTYPE": "보고서 유형",
+        "REPORT": "보고서",
+        "OUTPUT": "출력",
+        "EXECUTEON": "실행 시",
+        "REPORTRANGE": "보고서 범위",
+        "VALIDITYSTART": "시작 시간",
+        "VALIDITYEND": "종료 시간",
+        "EXECUTEEVERY": "모든 실행",
+        "ACCOUNT": "계정",
+        "EMAILADDRESS": "전자 메일 주소",
+        "CURRENTDAY": "현재 날짜",
+        "DAILY": "매일",
+        "WEEKLY": "매주",
+        "MONTHLY": "월별",
+        "PREVIOUS_DAY": "이전 일",
+        "LAST_SEVEN_DAYS": "지난 7일간",
+        "LAST_THIRTY_DAYS": "지난 며칠 동안 Thirthy",
+        "LAST_MONTH": "지난 달",
+        "WEEKDAYS": "요일",
+        "HOUR": "시간",
+        "DEFAULT": "기본",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15분",
+        "30MIN": "30분",
+        "1H": "1시간",
+        "VOICE": "음성",
+        "CHAT": "채팅",
+        "SMS": "SMS",
+        "OPENCHANNEL": "채널",
+        "TEMPLATES": "템플릿",
+        "EDIT_TEMPLATE": "템플릿 편집",
+        "DELETE_TEMPLATE": "템플릿 삭제",
+        "NEW_TEMPLATE": "새 템플릿",
+        "ADD_TEMPLATE": "템플릿 추가",
+        "CONTENT": "콘텐츠",
+        "FIELD": "필드",
+        "NO_ANYCONDITION_AVAILABLE": "사용 조건",
+        "NO_ALLCONDITION_AVAILABLE": "사용 조건",
+        "NO_ACTION_AVAILABLE": "사용 가능한 조치 없음",
+        "ACTION": "조치",
+        "EDIT_ANYCONDITION": "조건",
+        "DELETE_ANYCONDITION": "조건을 삭제하십시오",
+        "NEW_ANYCONDITION": "새 조건",
+        "ADD_ANYCONDITION": "조건 추가",
+        "EDIT_ALLCONDITION": "조건",
+        "DELETE_ALLCONDITION": "조건을 삭제하십시오",
+        "NEW_ALLCONDITION": "새 조건",
+        "ADD_ALLCONDITION": "조건 추가",
+        "EDIT_ACTION": "작업 편집",
+        "DELETE_ACTION": "작업 삭제",
+        "NEW_ACTION": "새 작업",
+        "ADD_ACTION": "작업 추가",
+        "QUEUE": "대기열",
+        "CALL_STATUS": "통화 상태",
+        "OUTBOUND_ROUTE": "아웃바운드 경로",
+        "EQUALS": "Equals",
+        "NOT_EQUALS": "같지 않음",
+        "CONTACT_MANAGER": "연락처 관리자",
+        "INTEGRATIONS": "통합",
+        "MOTION_BAR": "동작 도구 모음",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL이 전달",
+        "WEB_POPUP": "웹 팝업",
+        "LIST": "목록",
+        "INTEGRATION": "통합",
+        "TEMPLATE": "템플릿",
+        "URL": "URL",
+        "APPLICATION": "응용 프로그램",
+        "ARGUMENTS": "인수",
+        "NO_APPS_AVAILABLE": "사용할 수 있는 응용 프로그램이 없습니다",
+        "NEW_INTERVAL": "새로운 기다린",
+        "OUTBOUNDROUTE": "아웃바운드 경로",
+        "OPERATOR": "운영자",
+        "NO_INTERVALS_AVAILABLE": "사용 가능한 간격을 없음",
+        "YES": "예",
+        "NO": "없음",
+        "SUBJECT": "제목",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "BROWSER": "브라우저",
+        "INTERVAL": "간격",
+        "INFO": "정보",
+        "TIME_RANGE": "시간 범위",
+        "WEEK_DAYS": "요일",
+        "MONTH_DAYS": "월별 날짜를",
+        "MONTHS": "개월",
+        "DROP_TO_UPLOAD_MESSAGE": "또한 오디오 여기에 놓으십시오 업로드할 수 있습니다. MP3, WAV, GSM-Max. 15MB",
+        "POLLING_INTERVAL": "폴링 간격(초)",
+        "DASHBOARD": "대시보드",
+        "NEW_DASHBOARDITEM": "새 대시보드 위젯",
+        "COUNTER": "카운터",
+        "IFRAME": "IFrame",
+        "CLOCK": "클럭",
+        "ADD_DASHBOARDITEM": "대시보드 위젯 추가",
+        "EDIT_WIDGET": "위젯 편집",
+        "DELETE_WIDGET": "위젯 삭제",
+        "FLIP_WIDGET": "Flip 위젯",
+        "TITLE": "제목",
+        "UPDATE": "업데이트",
+        "LAYOUT": "레이아웃",
+        "BACKGROUND_COLOR": "배경 색상",
+        "FOREGROUND_COLOR": "전경 색상",
+        "FOREGROUND_TITLE_COLOR": "전경 제목 색상",
+        "THEME": "테마",
+        "LIGHT": "표시등",
+        "DARK": "어두운",
+        "TIMEZONE": "시간대",
+        "DIGITAL_FORMAT": "디지털 날짜 형식",
+        "TOOLS_QUERY": "쿼리",
+        "SELECT": "선택",
+        "WHERE": "여기서",
+        "BACK": "후면",
+        "PROJECT": "프로젝트",
+        "GOTOREALTIME_TRUNK": "실시간 트렁크 이동",
+        "GOTO_TRUNK": "트렁크 이동"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/nl.json b/public/app/main/apps/tools/i18n/nl.json
new file mode 100644 (file)
index 0000000..050ee0c
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "Naam",
+        "TRUNKS": "Trunks",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "HOST_REQUIRED": "De host is vereist",
+            "DEFAULTUSER_REQUIRED": "De standaardgebruiker is vereist",
+            "CALLERID_REQUIRED": "De beller-ID is vereist.",
+            "KEY_REQUIRED": "De sleutel is vereist",
+            "CONFIRM_NOT_MATCH": "De wachtwoorden Don' t match",
+            "VALIDITYSTART_REQUIRED": "De Starttijd is vereist",
+            "VALIDITYEND_REQUIRED": "De eindtijd is vereist",
+            "MONTHDAY_REQUIRED": "De Maand Dag is vereist",
+            "HOUR_REQUIRED": "Het Uur is vereist",
+            "CONTENT_REQUIRED": "De inhoud is vereist",
+            "URL_REQUIRED": "De URL is vereist",
+            "URL_MUST_VALID_URL": "De URL moet gelden.",
+            "APPLICATION_REQUIRED": "De toepassing vereist",
+            "ARGUUMENTS_REQUIRED": "De argumenten zijn vereist",
+            "NAME_MUST_VALID_PATTERN": "De naam moet worden geschreven in een geldige indeling",
+            "ARGUMENTS_REQUIRED": "De argumenten zijn vereist",
+            "POLLING_INTERVAL_REQUIRED": "Het pollinginterval is vereist",
+            "TITLE_REQUIRED": "De titel is vereist"
+        },
+        "HOST": "Host",
+        "SECRET": "Geheime",
+        "DEFAULTUSER": "Standaardgebruiker",
+        "DESCRIPTION": "Beschrijving",
+        "ADD_TRUNK": "Voeg transmissielijn",
+        "HELP": {
+            "SECRET": "Verificatiewachtwoord om contact op te nemen met de aanbieder.",
+            "HOST": "Het domein of de hostnaam voor de leverancier.",
+            "DEFAULTUSER": "Authenticatie Gebruikersnaam contact op te nemen met de aanbieder.",
+            "CALLERID": "De beller-ID in de notatie \"naam\" <number>",
+            "REGISTRY": "De kofferbak register string, vereist door sommige providers, meestal defaultuser:geheime@host.",
+            "FROMDOMAIN": "Stelt standaard vanaf:domein in SIP-berichten als SIP ua (client). Sommige bestemmingen eisen verplicht identiteit in plaats van alleen het IP-adres.",
+            "FROMUSER": "Hoe uw rovider weet je. Dit is die gebruiker om in plaats van de beller bij het plaatsen van oproepen naar peer (een andere SIP-proxy). Alleen geldig voor type=peer.",
+            "OUTBOUNDPROXY": "IP_adres of DNS SRV-naam (exclusief de _sip._udp prefix) : SRV naam, hostnaam of IP-adres van de uitgaande SIP-proxy. Stuur uitgaande signalen aan deze volmacht, niet rechtstreeks aan de apparaten. Alleen geldig voor type=peer.",
+            "PORT": "Het poortnummer we willen aansluiten op op de afstandsbediening.",
+            "CONTEXT": "De misbruikgevoelige context voor de kofferbak.",
+            "TYPE": "Bepaalt de SIP-rol binnen asterisk. Gebruiker: gebruikt ter verificatie van binnenkomend - Peer: voor uitgaande gesprekken - vriend: zowel kenmerken van het bovenstaande.",
+            "DTMFMODE": "Hoe DTMF (Tweetonig piepsignaal, Multi-Frequency) verzonden: RFC2833: de standaardmodus, DTMF zijn verzonden met RTP maar buiten de audiostream. INBAND: DTMF wordt verzonden in de audiostream van het huidige gesprek, steeds hoorbaar uit de luidsprekers. Vereist een hoge CPU belasting. INFO: Hoewel deze methode is zeer betrouwbaar is, is niet ondersteund door alle PBX-apparaten en vele SIP Transmissielijn.",
+            "NAT": "Verandert het gedrag van Asterisk voor cliënten achter een firewall.Indien een van de comma-separated opties is 'nee', sterretje negeert andere instellingen en stel nat=no.",
+            "QUALIFY": "Bepaalt wanneer de SIP is haalbaar.",
+            "ALLOWCODECS": "Toegestaan codecs in volgorde van voorkeur.",
+            "INSECURE": "Specificeert hoe om te gaan met peer, waardoor onveilige instellingen.",
+            "CALL_LIMIT": "Het maximum aantal inkomende en uitgaande oproepen.",
+            "DIRECTMEDIA": "Asterisk standaard probeert om een heroriëntatie van de RTP Mediastroom rechtstreeks vanuit de beller naar de gebelde. Sommige apparaten bieden geen ondersteuning voor deze (vooral wanneer één van hen zich achter een NAT). De standaardinstelling is YES (JA). Als u alle clients achter een NAT, of om een andere reden wilt Asterisk verblijven in het audiopad, wilt u misschien om dit uit te schakelen.",
+            "CALLCOUNTER": "Bel tellers op apparaten.",
+            "ADD_PHONE_TO_URI": "Definieer als de provider vereist ';user=phone' op URI.",
+            "TRUST_REMOTE_PARTY_ID": "Definieer als header Remote-Party-ID mogen worden vertrouwd.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "Status",
+            "ENCRYPTION": "Definieer als header Remote-Party-ID moet worden verzonden (standaard op nee).",
+            "TRANSPORT": "Stel de standaard transporteert. De volgorde bepaalt de primaire standaard transport.",
+            "OTHERFIELDS": "Andere velden toe te voegen in de trunks conf bestanden. Wordt geschreven in asterisk format (key=value), elk veld op een enkele rij."
+        },
+        "EDIT_TRUNK": "Edit transmissielijn",
+        "DELETE_TRUNK": "Verwijderen",
+        "CREATED_AT": "Gemaakt op",
+        "SETTINGS": "Instellingen",
+        "ADVANCED": "Geavanceerd",
+        "OTHER": "Andere",
+        "ACTIVE": "Actief",
+        "CONTEXT": "Kader",
+        "CALLERID": "Beller-ID",
+        "TYPE": "Type",
+        "DTMFMODE": "DTMF-modus",
+        "NAT": "NAT",
+        "QUALIFY": "Kwalificeren",
+        "ALLOWCODECS": "Toegestaan codecs",
+        "INSECURE": "Onbeveiligd",
+        "REGISTRY": "Registreren",
+        "DIRECTMEDIA": "Direct Media",
+        "CALLCOUNTER": "Bel teller",
+        "FROMDOMAIN": "Domein",
+        "FROMUSER": "Van gebruiker",
+        "OUTBOUNDPROXY": "Uitgaande proxy.",
+        "ADD_PHONE_TO_URI": "Telefoon toevoegen aan URI",
+        "TRUST_REMOTE_PARTY_ID": "Trust Gesprekpartner ID",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Stuur Gesprekpartner ID voorzetstuk",
+        "ENCRYPTION": "Versleuteling",
+        "PORT": "Poort",
+        "TRANSPORT": "Vervoer",
+        "SAVE": "Opslaan",
+        "VARIABLES": "Variabelen",
+        "ADD_VARIABLE": "Variabele toevoegen",
+        "EDIT_VARIABLE": "Variabele bewerken",
+        "DELETE_VARIABLE": "Variabele verwijderen",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "TAGS": "Tags",
+        "ADD_TAG": "Tag toevoegen",
+        "EDIT_TAG": "Code bewerken",
+        "DELETE_TAG": "Tag verwijderen",
+        "PAUSES": "Pauzes",
+        "ADD_PAUSE": "Pauze toevoegen",
+        "EDIT_PAUSE": "Edit Pause",
+        "DELETE_PAUSE": "Pauze verwijderen",
+        "CANNEDANSWERS": "Ingeblikte antwoorden",
+        "ADD_CANNEDANSWER": "Voeg ingeblikt antwoord",
+        "EDIT_CANNEDANSWER": "Edit ingeblikt antwoord",
+        "DELETE_CANNEDANSWER": "Verwijder ingeblikt antwoord",
+        "KEY": "Sleutel",
+        "VALUE": "Waarde",
+        "SOUNDS": "Geluiden",
+        "EDIT_SOUND": "Geluid bewerken",
+        "DELETE_SOUND": "Geluid wissen",
+        "FINISH": "Afwerking",
+        "DROP_TO_UPLOAD": "Drop om te uploaden",
+        "TRIGGERS": "Triggers",
+        "EDIT_TRIGGER": "Trigger bewerken",
+        "DELETE_TRIGGER": "Trigger verwijderen",
+        "ADD_TRIGGER": "Voeg trigger",
+        "DELETE": "Verwijderen",
+        "AUTOMATIONS": "Automations",
+        "EDIT_AUTOMATION": "Edit Automation",
+        "DELETE_AUTOMATION": "Wis automatisering",
+        "ADD_AUTOMATION": "Automatisering toevoegen",
+        "INTERVALS": "Intervallen",
+        "EDIT_INTERVAL": "Interval bewerken",
+        "DELETE_INTERVAL": "Interval wissen",
+        "ADD_INTERVAL": "Voeg Interval",
+        "TOOLS": "Hulpmiddelen",
+        "ID": "Id",
+        "AUDIO": "Audio",
+        "DOWNLOAD_SOUND": "Geluid downloaden",
+        "UPLOAD_SOUND": "Hulpmiddelen",
+        "CHANNEL": "Kanaal",
+        "NEW_TRIGGER": "Nieuwe trigger",
+        "GENERAL": "Algemeen",
+        "STATUS": "Status",
+        "CONDITIONS&ACTIONS": "Voorwaarden & acties",
+        "ALLCONDITIONS": "Als aan al deze voorwaarden:",
+        "ANYCONDITIONS": "Aan één van deze voorwaarden voldoet:",
+        "ACTIONS": "Acties:",
+        "NEW_AUTOMATION": "Nieuwe automatisering",
+        "TIMEOUT": "Timeout",
+        "PEERSTATUS": "Peer Status",
+        "CALL_LIMIT": "Oproepen beperken",
+        "OTHERFIELDS": "Andere velden",
+        "NEW_VARIABLE": "Nieuwe variabele",
+        "NEW_TAG": "Nieuwe Tag",
+        "NEW_PAUSE": "Nieuwe pauze",
+        "NEW_CANNEDANSWER": "Nieuwe ingeblikt antwoord",
+        "CONFIRM_PASSWORD": "Wachtwoord bevestigen",
+        "NEW_TRUNK": "Nieuwe transmissielijn",
+        "FROM": "Uit",
+        "TO": "Naar",
+        "WEEKDAY": "Week Dag",
+        "MONTHDAY": "Maand dag",
+        "MONTH": "Maand",
+        "ALWAYS": "Altijd",
+        "MON": "Maandag",
+        "TUE": "Dinsdag",
+        "WED": "Woensdag",
+        "THU": "Donderdag",
+        "FRI": "Vrijdag",
+        "SAT": "Zaterdag",
+        "SUN": "Zondag",
+        "JAN": "Januari",
+        "FEB": "Februari",
+        "MAR": "Maart",
+        "APR": "April",
+        "MAY": "Mei",
+        "JUN": "Juni",
+        "JUL": "Juli",
+        "AUG": "Augustus",
+        "SEP": "September",
+        "OCT": "Oktober",
+        "NOV": "November",
+        "DEC": "December",
+        "PASSWORD": "Wachtwoord",
+        "CUSTOMDASHBOARDS": "Aangepaste dashboards",
+        "NEW_CUSTOMDASHBOARD": "Nieuwe Custom Dashboard",
+        "ADD_CUSTOMDASHBOARD": "Voeg aangepaste dashboard",
+        "EDIT_CUSTOMDASHBOARD": "Bewerk aangep dashboard",
+        "DELETE_CUSTOMDASHBOARD": "Verwijder aangepaste dashboard",
+        "SCHEDULER": "Scheduler",
+        "NEW_SCHEDULE": "Nieuw rooster",
+        "ADD_SCHEDULE": "Chema toevoegen",
+        "EDIT_SCHEDULE": "Edit Schedule",
+        "DELETE_SCHEDULE": "Afroeporder verwijderen",
+        "SENDMAIL": "E-mailbericht verzenden",
+        "CONFIGURATION": "Configuratie",
+        "MAIL": "Mail",
+        "REPORTTYPE": "Rapporttype",
+        "REPORT": "Rapport",
+        "OUTPUT": "Uitgang",
+        "EXECUTEON": "Uitgevoerd op",
+        "REPORTRANGE": "Rapportbereik",
+        "VALIDITYSTART": "Begintijd",
+        "VALIDITYEND": "Eindtijd",
+        "EXECUTEEVERY": "Telkens uitgevoerd",
+        "ACCOUNT": "Account",
+        "EMAILADDRESS": "E-mail adres",
+        "CURRENTDAY": "Huidige datum",
+        "DAILY": "Dagelijks",
+        "WEEKLY": "Wekelijks",
+        "MONTHLY": "Maandelijks",
+        "PREVIOUS_DAY": "Vorige dag",
+        "LAST_SEVEN_DAYS": "Laatste 7 Dagen",
+        "LAST_THIRTY_DAYS": "Laatste Thirthy dagen",
+        "LAST_MONTH": "Vorige maand",
+        "WEEKDAYS": "Werkdagen",
+        "HOUR": "Uur",
+        "DEFAULT": "Standaard",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 minuten",
+        "30MIN": "30 minuten",
+        "1H": "1 uur",
+        "VOICE": "Spraak",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Open kanaal",
+        "TEMPLATES": "Sjablonen",
+        "EDIT_TEMPLATE": "Sjabloon bewerken",
+        "DELETE_TEMPLATE": "Sjabloon verwijderen",
+        "NEW_TEMPLATE": "Nieuwe sjabloon",
+        "ADD_TEMPLATE": "Sjabloon toevoegen",
+        "CONTENT": "Inhoud",
+        "FIELD": "Veld",
+        "NO_ANYCONDITION_AVAILABLE": "Geen voorwaarden beschikbaar",
+        "NO_ALLCONDITION_AVAILABLE": "Geen voorwaarden beschikbaar",
+        "NO_ACTION_AVAILABLE": "Geen acties beschikbaar",
+        "ACTION": "Actie",
+        "EDIT_ANYCONDITION": "Edit staat",
+        "DELETE_ANYCONDITION": "Voorwaarde verwijderen",
+        "NEW_ANYCONDITION": "Nieuwe voorwaarde",
+        "ADD_ANYCONDITION": "Voorwaarde toevoegen",
+        "EDIT_ALLCONDITION": "Edit staat",
+        "DELETE_ALLCONDITION": "Voorwaarde verwijderen",
+        "NEW_ALLCONDITION": "Nieuwe voorwaarde",
+        "ADD_ALLCONDITION": "Voorwaarde toevoegen",
+        "EDIT_ACTION": "Actie wijzigen",
+        "DELETE_ACTION": "Actie verwijderen",
+        "NEW_ACTION": "Nieuwe maatregel",
+        "ADD_ACTION": "Actie toevoegen",
+        "QUEUE": "Wachtrij",
+        "CALL_STATUS": "Oproepstatus",
+        "OUTBOUND_ROUTE": "Uitgaande Route",
+        "EQUALS": "Is gelijk aan",
+        "NOT_EQUALS": "Is niet gelijk aan",
+        "CONTACT_MANAGER": "Contact Manager",
+        "INTEGRATIONS": "Integraties",
+        "MOTION_BAR": "Motion Bar",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL doorsturen",
+        "WEB_POPUP": "Web Popup",
+        "LIST": "Lijst",
+        "INTEGRATION": "Integratie",
+        "TEMPLATE": "Sjabloon",
+        "URL": "URL",
+        "APPLICATION": "Toepassing",
+        "ARGUMENTS": "Argumenten",
+        "NO_APPS_AVAILABLE": "Geen toepassingen beschikbaar",
+        "NEW_INTERVAL": "Nieuwe schakel",
+        "OUTBOUNDROUTE": "Uitgaande Route",
+        "OPERATOR": "Bestuurder",
+        "NO_INTERVALS_AVAILABLE": "Geen intervallen beschikbaar",
+        "YES": "Ja",
+        "NO": "Nr.",
+        "SUBJECT": "Onderwerp",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "BROWSER": "Browser",
+        "INTERVAL": "Interval",
+        "INFO": "Info",
+        "TIME_RANGE": "Tijdbereik",
+        "WEEK_DAYS": "Werkdagen",
+        "MONTH_DAYS": "Dagen van de maand",
+        "MONTHS": "Maanden",
+        "DROP_TO_UPLOAD_MESSAGE": "U kunt ook audio hier te uploaden. Alleen MP3-, WAV-, GSM - Max. 15MB",
+        "POLLING_INTERVAL": "Pollinginterval(s)",
+        "DASHBOARD": "Dashboard",
+        "NEW_DASHBOARDITEM": "Nieuw dashboard Widget",
+        "COUNTER": "Teller",
+        "IFRAME": "IFrame",
+        "CLOCK": "Klok",
+        "ADD_DASHBOARDITEM": "Voeg Dashboard Widget",
+        "EDIT_WIDGET": "Edit Widget",
+        "DELETE_WIDGET": "Widget verwijderen",
+        "FLIP_WIDGET": "Flip Widget",
+        "TITLE": "Titel",
+        "UPDATE": "Update",
+        "LAYOUT": "Lay-out",
+        "BACKGROUND_COLOR": "Achtergrondkleur",
+        "FOREGROUND_COLOR": "Voorgrondkleur",
+        "FOREGROUND_TITLE_COLOR": "Voorgrond Titel kleur",
+        "THEME": "Thema",
+        "LIGHT": "Licht",
+        "DARK": "Dark",
+        "TIMEZONE": "Tijdzone",
+        "DIGITAL_FORMAT": "Digitale Datumnotatie",
+        "TOOLS_QUERY": "Query",
+        "SELECT": "Selecteer",
+        "WHERE": "Waar",
+        "BACK": "Terug",
+        "PROJECT": "Project",
+        "GOTOREALTIME_TRUNK": "Ga naar Realtime transmissielijn",
+        "GOTO_TRUNK": "Ga naar transmissielijn"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/no.json b/public/app/main/apps/tools/i18n/no.json
new file mode 100644 (file)
index 0000000..3575ffa
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "Navn",
+        "TRUNKS": "Trunker",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "HOST_REQUIRED": "Verten er nødvendig",
+            "DEFAULTUSER_REQUIRED": "Standard bruker er nødvendig",
+            "CALLERID_REQUIRED": "Innringer-ID er obligatorisk",
+            "KEY_REQUIRED": "Nøkkelen er nødvendig",
+            "CONFIRM_NOT_MATCH": "Passordene don' t kamp",
+            "VALIDITYSTART_REQUIRED": "Start tid er nødvendig",
+            "VALIDITYEND_REQUIRED": "Sluttiden er nødvendig",
+            "MONTHDAY_REQUIRED": "Måned dag er nødvendig",
+            "HOUR_REQUIRED": "Timen er nødvendig",
+            "CONTENT_REQUIRED": "Innholdet er nødvendig",
+            "URL_REQUIRED": "URL er nødvendig",
+            "URL_MUST_VALID_URL": "Urlen må være gyldig",
+            "APPLICATION_REQUIRED": "Programmet er nødvendig",
+            "ARGUUMENTS_REQUIRED": "Argumentene er nødvendig",
+            "NAME_MUST_VALID_PATTERN": "Navnet må være skrevet i et gyldig format",
+            "ARGUMENTS_REQUIRED": "Argumentene er nødvendig",
+            "POLLING_INTERVAL_REQUIRED": "Verifiseringsintervallet er nødvendig",
+            "TITLE_REQUIRED": "Tittelen er nødvendig"
+        },
+        "HOST": "Vert",
+        "SECRET": "Hemmelige",
+        "DEFAULTUSER": "Standard bruker",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_TRUNK": "Legg til trunk",
+        "HELP": {
+            "SECRET": "Godkjenning av passord for å kontakte leverandøren.",
+            "HOST": "Domenet eller vertsnavnet for leverandøren.",
+            "DEFAULTUSER": "Autentisering brukernavn for å kontakte leverandøren.",
+            "CALLERID": "Innringer-ID, i formatet \"Navn\" <nummer>",
+            "REGISTRY": "Bagasjerommet registeret streng, som kreves av noen leverandører, vanligvis defaultuser:hemmelig@host.",
+            "FROMDOMAIN": "Angir standard fra:domene i SIP meldinger når den fungerer som en SIP ua (klient). Noen destinasjoner kan kreve obligatorisk id-navn i stedet for bare IP-adressen.",
+            "FROMUSER": "Hvordan din rovider vet du. Dette er som å legge i stedet for, slik at de når foreta anrop til peer (en annen SIP proxy). Bare gyldig for type=peer.",
+            "OUTBOUNDPROXY": "IP_adresse eller DNS SRV navn (unntatt _sip._udp-prefiks) : SRV navn, vertsnavnet eller IP-adressen til den utgående SIP Proxy. Sende utgående signalering til denne proxy, ikke direkte til enhetene. Bare gyldig for type=peer.",
+            "PORT": "Portnummeret vi ønsker å koble til på ekstern side.",
+            "CONTEXT": "Det utnyttbare konteksten for samband.",
+            "TYPE": "Bestemmer SIP rolle innen stjerne. Bruker: brukes til å autentisere innkommende - Peer: for utgående anrop - venn: dekker både egenskapene til ovenfor.",
+            "DTMFMODE": "Hvordan DTMF (Dual-Tone Multi-Frequency) er sendt: RFC2833: standard modus, DTMF sendes med RTP, men utenfor audio stream. INBAND: DTMF sendes i audio stream av gjeldende samtale, blir hørbar fra høyttalerne. Krever en høy CPU-belastning. INFO: Selv om denne metoden er svært pålitelige, er det ikke støttes av alle PBX-enheter og mange SIP Trunk.",
+            "NAT": "Endrer oppførselen til stjerne for klienter bak en brannmur.Hvis noen av kommaseparert alternativer er 'Nei', stjerne vil ignorere andre innstillinger og sette nat=Nei.",
+            "QUALIFY": "Avgjør når SIP er oppnåelig.",
+            "ALLOWCODECS": "Tillatt kodeker i prioritert rekkefølge.",
+            "INSECURE": "Angir hvordan å håndtere forbindelser med peer, noe usikre innstillinger.",
+            "CALL_LIMIT": "Grensen nummeret på innkommende og utgående anrop på en gang.",
+            "DIRECTMEDIA": "Stjerne som standard prøver å omdirigere RTP media stream for å gå direkte fra innringeren til mottakeren. Noen enheter støtter ikke dette (spesielt hvis en av dem er bak et NAT). Standardinnstillingen er Ja. Hvis du har alle klienter bak en NAT, eller for noen annen grunn ønsker stjerne å bo i lyd-banen, ønsker du kanskje å slå dette av.",
+            "CALLCOUNTER": "Aktiverer samtaleteller på enhetene.",
+            "ADD_PHONE_TO_URI": "Definere hvis leverandøren krever ';user=telefonen' på URI.",
+            "TRUST_REMOTE_PARTY_ID": "Definere om Remote-Party-ID skal være klarert.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "Status",
+            "ENCRYPTION": "Definere om Remote-Party-ID skal sendes (standard til Ingen).",
+            "TRANSPORT": "Angi standard transporterer. Rekkefølgen bestemmer den primære standard transport.",
+            "OTHERFIELDS": "Andre felter for å legge til i samband konf filer. Å være skrevet i stjerne-format (key=verdi), hvert felt på en enkelt linje."
+        },
+        "EDIT_TRUNK": "Rediger Trunk",
+        "DELETE_TRUNK": "Slette Trunk",
+        "CREATED_AT": "Opprettet i",
+        "SETTINGS": "Innstillinger",
+        "ADVANCED": "Avansert",
+        "OTHER": "Andre",
+        "ACTIVE": "Aktiv",
+        "CONTEXT": "Kontekst",
+        "CALLERID": "Innringer-ID",
+        "TYPE": "Type",
+        "DTMFMODE": "DTMF-modus",
+        "NAT": "NAT",
+        "QUALIFY": "Kvalifisere",
+        "ALLOWCODECS": "Tillatt kodeker",
+        "INSECURE": "Usikkert",
+        "REGISTRY": "Registeret",
+        "DIRECTMEDIA": "Direkte Media",
+        "CALLCOUNTER": "Ring teller",
+        "FROMDOMAIN": "Fra domene",
+        "FROMUSER": "Fra bruker",
+        "OUTBOUNDPROXY": "Utgående Proxy",
+        "ADD_PHONE_TO_URI": "Legg til telefon til URI",
+        "TRUST_REMOTE_PARTY_ID": "Trust Remote foretaks-ID",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Send ekstern part ID-hode",
+        "ENCRYPTION": "Kryptering",
+        "PORT": "Port",
+        "TRANSPORT": "Transport",
+        "SAVE": "Lagre",
+        "VARIABLES": "Variabler",
+        "ADD_VARIABLE": "Legg til variabel",
+        "EDIT_VARIABLE": "Rediger variabel",
+        "DELETE_VARIABLE": "Slette variabel",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "TAGS": "Tags",
+        "ADD_TAG": "Legg til Tag",
+        "EDIT_TAG": "Rediger id",
+        "DELETE_TAG": "Slette Tag",
+        "PAUSES": "Pauser",
+        "ADD_PAUSE": "Legg til pause",
+        "EDIT_PAUSE": "Rediger Pause",
+        "DELETE_PAUSE": "Slett Pause",
+        "CANNEDANSWERS": "Hermetiske svar",
+        "ADD_CANNEDANSWER": "Tilsett hermetiske svar",
+        "EDIT_CANNEDANSWER": "Rediger hermetiske svar",
+        "DELETE_CANNEDANSWER": "Slette hermetiske svar",
+        "KEY": "Tasten",
+        "VALUE": "Verdi",
+        "SOUNDS": "Lyder",
+        "EDIT_SOUND": "Rediger lyd",
+        "DELETE_SOUND": "Slette lyd",
+        "FINISH": "Fullfør",
+        "DROP_TO_UPLOAD": "Slippe å laste opp",
+        "TRIGGERS": "Utløser",
+        "EDIT_TRIGGER": "Rediger Trigger",
+        "DELETE_TRIGGER": "Slett utløser",
+        "ADD_TRIGGER": "Legg til Trigger",
+        "DELETE": "Slette",
+        "AUTOMATIONS": "Automations",
+        "EDIT_AUTOMATION": "Redigere automatisering",
+        "DELETE_AUTOMATION": "Slette automatisering",
+        "ADD_AUTOMATION": "Legg til automatisering",
+        "INTERVALS": "Mellomrom",
+        "EDIT_INTERVAL": "Endre intervall",
+        "DELETE_INTERVAL": "Slette intervall",
+        "ADD_INTERVAL": "Legg intervall",
+        "TOOLS": "Verktøy",
+        "ID": "Id",
+        "AUDIO": "Lyd",
+        "DOWNLOAD_SOUND": "Last ned lyd",
+        "UPLOAD_SOUND": "Verktøy",
+        "CHANNEL": "Kanal",
+        "NEW_TRIGGER": "Ny Trigger",
+        "GENERAL": "Generelt",
+        "STATUS": "Status",
+        "CONDITIONS&ACTIONS": "Betingelser og tiltak",
+        "ALLCONDITIONS": "Oppfyller alle disse vilkårene:",
+        "ANYCONDITIONS": "Møt noen av disse betingelsene:",
+        "ACTIONS": "Tiltak:",
+        "NEW_AUTOMATION": "Ny automatisering",
+        "TIMEOUT": "Tidsavbrudd",
+        "PEERSTATUS": "Peer status",
+        "CALL_LIMIT": "Anrop grense",
+        "OTHERFIELDS": "Andre felt",
+        "NEW_VARIABLE": "Ny variabel",
+        "NEW_TAG": "Ny id",
+        "NEW_PAUSE": "Ny Pause",
+        "NEW_CANNEDANSWER": "Ny hermetiske svar",
+        "CONFIRM_PASSWORD": "Bekreft passord",
+        "NEW_TRUNK": "Ny Trunk",
+        "FROM": "Fra",
+        "TO": "Til",
+        "WEEKDAY": "Ukedag",
+        "MONTHDAY": "Måned dag",
+        "MONTH": "Måned",
+        "ALWAYS": "Alltid",
+        "MON": "Mandag",
+        "TUE": "Tirsdag",
+        "WED": "Onsdag",
+        "THU": "Torsdag",
+        "FRI": "Fredag",
+        "SAT": "Lørdag",
+        "SUN": "Søndag",
+        "JAN": "Januar",
+        "FEB": "Februar",
+        "MAR": "Mars",
+        "APR": "April",
+        "MAY": "Kan",
+        "JUN": "Juni",
+        "JUL": "Juli",
+        "AUG": "August",
+        "SEP": "September",
+        "OCT": "Oktober",
+        "NOV": "November",
+        "DEC": "Desember",
+        "PASSWORD": "Passord",
+        "CUSTOMDASHBOARDS": "Egendefinert instrumentbord",
+        "NEW_CUSTOMDASHBOARD": "Ny egendefinert dashbord",
+        "ADD_CUSTOMDASHBOARD": "Legg til egendefinert dashbord",
+        "EDIT_CUSTOMDASHBOARD": "Rediger egendefinert dashbord",
+        "DELETE_CUSTOMDASHBOARD": "Slette tilpasset dashbordet",
+        "SCHEDULER": "Planleggingsfunksjon",
+        "NEW_SCHEDULE": "Nytt skjema",
+        "ADD_SCHEDULE": "Legg til",
+        "EDIT_SCHEDULE": "Rediger plan",
+        "DELETE_SCHEDULE": "Slett plan",
+        "SENDMAIL": "Send mail",
+        "CONFIGURATION": "Konfigurasjon",
+        "MAIL": "Post",
+        "REPORTTYPE": "Rapporttype",
+        "REPORT": "Rapport",
+        "OUTPUT": "Utgang",
+        "EXECUTEON": "Kjøre på",
+        "REPORTRANGE": "Rapporten utvalg",
+        "VALIDITYSTART": "Start Tid",
+        "VALIDITYEND": "Slutt tid",
+        "EXECUTEEVERY": "Utføre hver",
+        "ACCOUNT": "Konto",
+        "EMAILADDRESS": "E-postadresse",
+        "CURRENTDAY": "Gjeldende dag",
+        "DAILY": "Daglig",
+        "WEEKLY": "Ukentlig",
+        "MONTHLY": "Månedlig",
+        "PREVIOUS_DAY": "Forrige dag",
+        "LAST_SEVEN_DAYS": "Siste syv dager",
+        "LAST_THIRTY_DAYS": "Siste Thirthy dager",
+        "LAST_MONTH": "Siste måned",
+        "WEEKDAYS": "Uke dager",
+        "HOUR": "Time",
+        "DEFAULT": "Standard",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 minutter",
+        "30MIN": "30 minutter",
+        "1H": "1 time",
+        "VOICE": "Stemme",
+        "CHAT": "Chat",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Åpen kanal",
+        "TEMPLATES": "Maler",
+        "EDIT_TEMPLATE": "Redigere malen",
+        "DELETE_TEMPLATE": "Slette malen",
+        "NEW_TEMPLATE": "Ny mal",
+        "ADD_TEMPLATE": "Legge til mal",
+        "CONTENT": "Innhold",
+        "FIELD": "Feltet",
+        "NO_ANYCONDITION_AVAILABLE": "Ingen betingelser tilgjengelig",
+        "NO_ALLCONDITION_AVAILABLE": "Ingen betingelser tilgjengelig",
+        "NO_ACTION_AVAILABLE": "Ingen tilgjengelige handlinger",
+        "ACTION": "Tiltak",
+        "EDIT_ANYCONDITION": "Rediger tilstand",
+        "DELETE_ANYCONDITION": "Slette tilstand",
+        "NEW_ANYCONDITION": "Ny tilstand",
+        "ADD_ANYCONDITION": "Legg tilstand",
+        "EDIT_ALLCONDITION": "Rediger tilstand",
+        "DELETE_ALLCONDITION": "Slette tilstand",
+        "NEW_ALLCONDITION": "Ny tilstand",
+        "ADD_ALLCONDITION": "Legg tilstand",
+        "EDIT_ACTION": "Redigere tiltak",
+        "DELETE_ACTION": "Slette handlingen",
+        "NEW_ACTION": "Nytt tiltak",
+        "ADD_ACTION": "Legg til handling",
+        "QUEUE": "Kø",
+        "CALL_STATUS": "Samtalestatus",
+        "OUTBOUND_ROUTE": "Utgående rute",
+        "EQUALS": "Er lik",
+        "NOT_EQUALS": "Er ikke lik",
+        "CONTACT_MANAGER": "Kontakter Manager",
+        "INTEGRATIONS": "Integreringer",
+        "MOTION_BAR": "Motion Bar",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL forover",
+        "WEB_POPUP": "Web Popup",
+        "LIST": "Liste",
+        "INTEGRATION": "Integrering",
+        "TEMPLATE": "Mal",
+        "URL": "URL",
+        "APPLICATION": "Programmet",
+        "ARGUMENTS": "Argumenter",
+        "NO_APPS_AVAILABLE": "Ingen programmer er tilgjengelig",
+        "NEW_INTERVAL": "Ny vente",
+        "OUTBOUNDROUTE": "Utgående rute",
+        "OPERATOR": "Føreren",
+        "NO_INTERVALS_AVAILABLE": "Ingen intervaller tilgjengelig",
+        "YES": "Ja",
+        "NO": "Ingen",
+        "SUBJECT": "Emne",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "BROWSER": "Webleser",
+        "INTERVAL": "Intervall",
+        "INFO": "Info",
+        "TIME_RANGE": "Tidsintervall",
+        "WEEK_DAYS": "Uke dager",
+        "MONTH_DAYS": "Måned dager",
+        "MONTHS": "Måneder",
+        "DROP_TO_UPLOAD_MESSAGE": "Du kan også slippe lyd her å laste opp. Bare MP3, WAV, GSM - Maks. 15 MB",
+        "POLLING_INTERVAL": "Kontrollintervallet(sekunder)",
+        "DASHBOARD": "Dashbordet",
+        "NEW_DASHBOARDITEM": "Ny Dashboard widget",
+        "COUNTER": "Teller",
+        "IFRAME": "IFrame",
+        "CLOCK": "Klokke",
+        "ADD_DASHBOARDITEM": "Legg til Dashboard-widget",
+        "EDIT_WIDGET": "Rediger widget",
+        "DELETE_WIDGET": "Slette widget",
+        "FLIP_WIDGET": "Flip-widget",
+        "TITLE": "Tittel",
+        "UPDATE": "Oppdatere",
+        "LAYOUT": "Layout",
+        "BACKGROUND_COLOR": "Bakgrunnsfarge",
+        "FOREGROUND_COLOR": "Forgrunnsfarge",
+        "FOREGROUND_TITLE_COLOR": "Forgrunnen tittel farge",
+        "THEME": "Tema",
+        "LIGHT": "Lys",
+        "DARK": "Mørk",
+        "TIMEZONE": "Tidssone",
+        "DIGITAL_FORMAT": "Digital Dato Format",
+        "TOOLS_QUERY": "Spørring",
+        "SELECT": "Velg",
+        "WHERE": "Der",
+        "BACK": "Tilbake",
+        "PROJECT": "Prosjekt",
+        "GOTOREALTIME_TRUNK": "Gå til Realtime Trunk",
+        "GOTO_TRUNK": "Gå til trunk"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/pt-PT.json b/public/app/main/apps/tools/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..7706e75
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "Nome",
+        "TRUNKS": "Troncos",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "HOST_REQUIRED": "O Host é necessário",
+            "DEFAULTUSER_REQUIRED": "O utilizador padrão é necessária",
+            "CALLERID_REQUIRED": "O ID do chamador é necessária",
+            "KEY_REQUIRED": "A chave é necessário",
+            "CONFIRM_NOT_MATCH": "As senhas não coincidem",
+            "VALIDITYSTART_REQUIRED": "A hora de início é obrigatório",
+            "VALIDITYEND_REQUIRED": "A hora de fim é necessário",
+            "MONTHDAY_REQUIRED": "Mês Dia é requerido",
+            "HOUR_REQUIRED": "A hora é necessária",
+            "CONTENT_REQUIRED": "O conteúdo é necessária",
+            "URL_REQUIRED": "O URL é necessária",
+            "URL_MUST_VALID_URL": "O URL deve ser válido",
+            "APPLICATION_REQUIRED": "O aplicativo é obrigatório",
+            "ARGUUMENTS_REQUIRED": "Os argumentos são necessários",
+            "NAME_MUST_VALID_PATTERN": "O nome deve ser escrito em um formato válido",
+            "ARGUMENTS_REQUIRED": "Os argumentos são necessários",
+            "POLLING_INTERVAL_REQUIRED": "O intervalo de polling é necessária",
+            "TITLE_REQUIRED": "O Título é obrigatório"
+        },
+        "HOST": "Host",
+        "SECRET": "Segredo",
+        "DEFAULTUSER": "Usuário Padrão",
+        "DESCRIPTION": "Descrição",
+        "ADD_TRUNK": "Adicionar tronco",
+        "HELP": {
+            "SECRET": "Senha de autenticação para entrar em contato com o provedor de serviços.",
+            "HOST": "O domínio ou o nome do host para o fornecedor.",
+            "DEFAULTUSER": "Nome de usuário de autenticação para entrar em contato com o provedor de serviços.",
+            "CALLERID": "A ID do chamador, no formato \"nome\" <número>",
+            "REGISTRY": "O tronco string do registro, exigido por alguns provedores, geralmente defaultuser:secret@host.",
+            "FROMDOMAIN": "Define o padrão de domínio:em mensagens SIP quando atuando como um SIP ua (cliente). Alguns destinos podem exigir identidade obrigatória de um nome em vez de apenas o endereço IP.",
+            "FROMUSER": "Como o seu rovider sabe que você. Isto é o que o usuário para colocar em vez de das quando efectuar chamadas a ponto (outro proxy SIP). Válido apenas para o tipo=peer.",
+            "OUTBOUNDPROXY": "Endereço_IP ou nome DNS SRV (excluindo o _sip._udp prefixo) : SRV nome, hostname ou endereço IP do Outbound Proxy SIP. Sinalização de saída para enviar este proxy, não diretamente aos dispositivos. Válido apenas para o tipo=peer.",
+            "PORT": "O número da porta que deseja se conectar no lado remoto.",
+            "CONTEXT": "O contexto para o tronco exploráveis.",
+            "TYPE": "Determina o papel SIP dentro de asterisco. Usuário: usado para autenticar - Ponto de entrada: para chamadas de saída - amigo: abrange tanto as características do acima.",
+            "DTMFMODE": "Como DTMF (Dual-Tone Multi-Frequency) são enviadas: RFC2833: o modo padrão, o DTMF são enviados com a RTP mas fora do fluxo de áudio. INBAND: o DTMF é enviado no fluxo de áudio da conversa atual se tornar audível a partir dos altifalantes. Requer um alto uso de CPU. INFO: Embora este método seja muito confiável, ele não é suportado por todos os dispositivos de PBX e muitos tronco SIP.",
+            "NAT": "Altera o comportamento do asterisco para clientes atrás de um firewall.Se qualquer uma das opções separadas por vírgula é \"não\", asterisco será ignorar quaisquer outras configurações e defina nat=n°",
+            "QUALIFY": "Determina quando o SIP é exequível.",
+            "ALLOWCODECS": "Codecs permitidos em ordem de preferência.",
+            "INSECURE": "Especifica como manipular as ligações com os seus pares, permitindo configurações inseguro.",
+            "CALL_LIMIT": "O número limite de chamadas de entrada e de saída de cada vez.",
+            "DIRECTMEDIA": "Asterisco por padrão tenta redirecionar o fluxo de mídia RTP para ir diretamente a partir do chamador para a chamada. Alguns dispositivos não suportam esta (especialmente se um deles está por trás de uma NAT). A configuração padrão é Sim. Se você tiver todos os clientes por trás de uma NAT ou por alguma outra razão queremos asterisco para permanecer no caminho de áudio, você pode querer transformar esta desligado.",
+            "CALLCOUNTER": "O contadores de chamadas em dispositivos.",
+            "ADD_PHONE_TO_URI": "Definir se o provedor exige ';usuário=phone\" no URI.",
+            "TRUST_REMOTE_PARTY_ID": "Definir se o cabeçalho Remote-Party-ID deve ser confiável.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "Estado",
+            "ENCRYPTION": "Definir se o cabeçalho Remote-Party-ID deve ser enviada (padrões para não).",
+            "TRANSPORT": "Defina o padrão de transportes. A ordem determina o transporte primário padrão.",
+            "OTHERFIELDS": "Outros campos para adicionar nos troncos arquivos conf. Para ser escritos em formato de asterisco (key=valor), cada campo em uma única linha."
+        },
+        "EDIT_TRUNK": "Editar tronco",
+        "DELETE_TRUNK": "Excluir tronco",
+        "CREATED_AT": "Criado em",
+        "SETTINGS": "Definições",
+        "ADVANCED": "Avançado",
+        "OTHER": "Outros",
+        "ACTIVE": "Ativo",
+        "CONTEXT": "Contexto",
+        "CALLERID": "ID do chamador",
+        "TYPE": "Tipo",
+        "DTMFMODE": "Modo DTMF",
+        "NAT": "A NAT",
+        "QUALIFY": "Qualificar",
+        "ALLOWCODECS": "Codecs permitidos",
+        "INSECURE": "Inseguro",
+        "REGISTRY": "Registro",
+        "DIRECTMEDIA": "Direct Media",
+        "CALLCOUNTER": "Contador de chamada",
+        "FROMDOMAIN": "Do domínio",
+        "FROMUSER": "A partir do modo de utilizador",
+        "OUTBOUNDPROXY": "Proxy de saída",
+        "ADD_PHONE_TO_URI": "Adicionar telefone para a URI",
+        "TRUST_REMOTE_PARTY_ID": "Confiança Id Parte remota",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Enviar cabeçalho de ID de Parte remota",
+        "ENCRYPTION": "Criptografia",
+        "PORT": "Porto",
+        "TRANSPORT": "Transporte",
+        "SAVE": "Salvar",
+        "VARIABLES": "Variáveis",
+        "ADD_VARIABLE": "Acrescentar variável",
+        "EDIT_VARIABLE": "Editar variável",
+        "DELETE_VARIABLE": "Exclusão de variáveis",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "TAGS": "Tags",
+        "ADD_TAG": "Adicionar a Tag",
+        "EDIT_TAG": "Editar Tag",
+        "DELETE_TAG": "Excluir Tag",
+        "PAUSES": "Pausa",
+        "ADD_PAUSE": "Adicionar pausa",
+        "EDIT_PAUSE": "Editar Pausa",
+        "DELETE_PAUSE": "Excluir uma pausa",
+        "CANNEDANSWERS": "Conservas de respostas",
+        "ADD_CANNEDANSWER": "Adicionar resposta enlatada",
+        "EDIT_CANNEDANSWER": "Editar resposta enlatada",
+        "DELETE_CANNEDANSWER": "Excluir as conservas de resposta",
+        "KEY": "A chave",
+        "VALUE": "Valor",
+        "SOUNDS": "Sons",
+        "EDIT_SOUND": "Editar o som",
+        "DELETE_SOUND": "Excluir o som",
+        "FINISH": "Concluir",
+        "DROP_TO_UPLOAD": "Gota para fazer upload",
+        "TRIGGERS": "Gatilhos",
+        "EDIT_TRIGGER": "Editar disparar",
+        "DELETE_TRIGGER": "Excluir disparar",
+        "ADD_TRIGGER": "Adicionar disparar",
+        "DELETE": "Excluir",
+        "AUTOMATIONS": "Line",
+        "EDIT_AUTOMATION": "Automação de Editar",
+        "DELETE_AUTOMATION": "Automação de excluir",
+        "ADD_AUTOMATION": "Adicionar a automação",
+        "INTERVALS": "Intervalos",
+        "EDIT_INTERVAL": "Editar intervalo",
+        "DELETE_INTERVAL": "Intervalo de excluir",
+        "ADD_INTERVAL": "Adicionar Intervalo",
+        "TOOLS": "Ferramentas",
+        "ID": "Id",
+        "AUDIO": "Áudio",
+        "DOWNLOAD_SOUND": "Transferir sons",
+        "UPLOAD_SOUND": "Ferramentas",
+        "CHANNEL": "Canal",
+        "NEW_TRIGGER": "Novo gatilho",
+        "GENERAL": "Geral",
+        "STATUS": "Estado",
+        "CONDITIONS&ACTIONS": "Condições e ações",
+        "ALLCONDITIONS": "Face a todas estas condições:",
+        "ANYCONDITIONS": "Atender a qualquer destas condições:",
+        "ACTIONS": "Ações:",
+        "NEW_AUTOMATION": "Automação de novo",
+        "TIMEOUT": "Timeout",
+        "PEERSTATUS": "Status de ponto",
+        "CALL_LIMIT": "Limite de chamadas",
+        "OTHERFIELDS": "Outros campos",
+        "NEW_VARIABLE": "Nova Variável",
+        "NEW_TAG": "Nova Tag",
+        "NEW_PAUSE": "Nova Pausa",
+        "NEW_CANNEDANSWER": "Nova resposta enlatada",
+        "CONFIRM_PASSWORD": "Confirmar Senha",
+        "NEW_TRUNK": "Novo tronco",
+        "FROM": "A partir de",
+        "TO": "A",
+        "WEEKDAY": "Dia da semana",
+        "MONTHDAY": "Dia do Mês",
+        "MONTH": "Mês",
+        "ALWAYS": "Sempre",
+        "MON": "Segunda-feira",
+        "TUE": "Terça-feira",
+        "WED": "Quarta-feira",
+        "THU": "Quinta-feira",
+        "FRI": "Sexta-feira",
+        "SAT": "Sábado",
+        "SUN": "Domingo",
+        "JAN": "De janeiro de",
+        "FEB": "De fevereiro",
+        "MAR": "De Março",
+        "APR": "De abril",
+        "MAY": "De Maio",
+        "JUN": "De Junho",
+        "JUL": "De julho",
+        "AUG": "De agosto",
+        "SEP": "De setembro",
+        "OCT": "De outubro de",
+        "NOV": "Novembro de",
+        "DEC": "De dezembro de",
+        "PASSWORD": "Senha",
+        "CUSTOMDASHBOARDS": "Painéis personalizados",
+        "NEW_CUSTOMDASHBOARD": "Novo painel personalizado",
+        "ADD_CUSTOMDASHBOARD": "Adicionar painel personalizado",
+        "EDIT_CUSTOMDASHBOARD": "Editar painel personalizado",
+        "DELETE_CUSTOMDASHBOARD": "Excluir painel personalizado",
+        "SCHEDULER": "Scheduler",
+        "NEW_SCHEDULE": "Novo horário",
+        "ADD_SCHEDULE": "Adicionar calendário",
+        "EDIT_SCHEDULE": "Editar Agendamento",
+        "DELETE_SCHEDULE": "Excluir a programação",
+        "SENDMAIL": "Enviar Correio",
+        "CONFIGURATION": "Configuração",
+        "MAIL": "Correio electrónico",
+        "REPORTTYPE": "Tipo de relatório",
+        "REPORT": "Relatório",
+        "OUTPUT": "Saída",
+        "EXECUTEON": "Executar Em",
+        "REPORTRANGE": "Intervalo do Relatório",
+        "VALIDITYSTART": "Hora de início",
+        "VALIDITYEND": "Hora de fim",
+        "EXECUTEEVERY": "Executar a cada",
+        "ACCOUNT": "Conta",
+        "EMAILADDRESS": "Endereço de e-mail",
+        "CURRENTDAY": "Dia atual",
+        "DAILY": "Diariamente",
+        "WEEKLY": "Semanalmente",
+        "MONTHLY": "Mensal",
+        "PREVIOUS_DAY": "Dia anterior",
+        "LAST_SEVEN_DAYS": "Últimos 7 Dias",
+        "LAST_THIRTY_DAYS": "Última Thirthy Dias",
+        "LAST_MONTH": "Último mês",
+        "WEEKDAYS": "Dias da semana",
+        "HOUR": "Hora",
+        "DEFAULT": "Padrão",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "Quinze minutos",
+        "30MIN": "Trinta minutos",
+        "1H": "1 hora",
+        "VOICE": "Voz",
+        "CHAT": "Bate-papo",
+        "SMS": "O SMS",
+        "OPENCHANNEL": "Canal aberto",
+        "TEMPLATES": "Modelos",
+        "EDIT_TEMPLATE": "Editar Modelo",
+        "DELETE_TEMPLATE": "Excluir Modelo",
+        "NEW_TEMPLATE": "Novo Modelo",
+        "ADD_TEMPLATE": "Adicionar modelo",
+        "CONTENT": "Conteúdo",
+        "FIELD": "Campo",
+        "NO_ANYCONDITION_AVAILABLE": "Condições não disponível",
+        "NO_ALLCONDITION_AVAILABLE": "Condições não disponível",
+        "NO_ACTION_AVAILABLE": "Sem Acções Disponíveis",
+        "ACTION": "Acção",
+        "EDIT_ANYCONDITION": "Editar condição",
+        "DELETE_ANYCONDITION": "Excluir o Estado",
+        "NEW_ANYCONDITION": "Nova Condição",
+        "ADD_ANYCONDITION": "Adicionar Condição",
+        "EDIT_ALLCONDITION": "Editar condição",
+        "DELETE_ALLCONDITION": "Excluir o Estado",
+        "NEW_ALLCONDITION": "Nova Condição",
+        "ADD_ALLCONDITION": "Adicionar Condição",
+        "EDIT_ACTION": "Editar ação",
+        "DELETE_ACTION": "Ação de exclusão",
+        "NEW_ACTION": "Nova Ação",
+        "ADD_ACTION": "Adicionar ação",
+        "QUEUE": "Fila",
+        "CALL_STATUS": "Status da chamada",
+        "OUTBOUND_ROUTE": "Rota de saída",
+        "EQUALS": "É igual a",
+        "NOT_EQUALS": "Não é Igual",
+        "CONTACT_MANAGER": "Gerenciador de contatos",
+        "INTEGRATIONS": "Integrações",
+        "MOTION_BAR": "Barra de movimento",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "Encaminhamento de URL",
+        "WEB_POPUP": "Pop-up da web",
+        "LIST": "Lista",
+        "INTEGRATION": "Integração",
+        "TEMPLATE": "Modelo",
+        "URL": "URL",
+        "APPLICATION": "Aplicação",
+        "ARGUMENTS": "Argumentos",
+        "NO_APPS_AVAILABLE": "Não há aplicativos disponíveis",
+        "NEW_INTERVAL": "Novo Intervalo",
+        "OUTBOUNDROUTE": "Rota de saída",
+        "OPERATOR": "Operador",
+        "NO_INTERVALS_AVAILABLE": "Intervalos não disponível",
+        "YES": "Sim",
+        "NO": "Não",
+        "SUBJECT": "Objecto",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "BROWSER": "Navegador",
+        "INTERVAL": "Intervalo",
+        "INFO": "Info",
+        "TIME_RANGE": "Intervalo de tempo",
+        "WEEK_DAYS": "Dias da semana",
+        "MONTH_DAYS": "Mês Dias",
+        "MONTHS": "Meses",
+        "DROP_TO_UPLOAD_MESSAGE": "Você também pode cair aqui para fazer upload de áudio. Apenas arquivos MP3, WAV, GSM - Max. 15MB",
+        "POLLING_INTERVAL": "O intervalo de polling(s)",
+        "DASHBOARD": "Painel de bordo",
+        "NEW_DASHBOARDITEM": "Novo painel de bordo Widget",
+        "COUNTER": "Contador",
+        "IFRAME": "IFrame",
+        "CLOCK": "Relógio",
+        "ADD_DASHBOARDITEM": "Adicionar Widget de painel de bordo",
+        "EDIT_WIDGET": "Editar o Widget",
+        "DELETE_WIDGET": "Excluir o Widget",
+        "FLIP_WIDGET": "Flip Widget",
+        "TITLE": "Título",
+        "UPDATE": "Atualizar",
+        "LAYOUT": "Layout",
+        "BACKGROUND_COLOR": "Cor de fundo",
+        "FOREGROUND_COLOR": "Cor de primeiro plano",
+        "FOREGROUND_TITLE_COLOR": "Título do primeiro plano a cores",
+        "THEME": "Tema",
+        "LIGHT": "Luz",
+        "DARK": "Escuro",
+        "TIMEZONE": "Fuso Horário",
+        "DIGITAL_FORMAT": "Formato de data digital",
+        "TOOLS_QUERY": "Consulta",
+        "SELECT": "Selecione",
+        "WHERE": "Onde",
+        "BACK": "De volta",
+        "PROJECT": "Projecto",
+        "GOTOREALTIME_TRUNK": "Vá para o tronco em tempo real",
+        "GOTO_TRUNK": "Vá para o Tronco"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/ru.json b/public/app/main/apps/tools/i18n/ru.json
new file mode 100644 (file)
index 0000000..3d4793f
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "Имя",
+        "TRUNKS": "Соединительные линии внешней АТС",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "HOST_REQUIRED": "Хост не требуется",
+            "DEFAULTUSER_REQUIRED": "По умолчанию имя пользователя не требуется",
+            "CALLERID_REQUIRED": "Идентификатор вызывающего абонента не требуется",
+            "KEY_REQUIRED": "Ключ не требуется",
+            "CONFIRM_NOT_MATCH": "Пароли не' t соответствует",
+            "VALIDITYSTART_REQUIRED": "Время запуска не требуется",
+            "VALIDITYEND_REQUIRED": "Время окончания не требуется",
+            "MONTHDAY_REQUIRED": "Месяц день не требуется",
+            "HOUR_REQUIRED": "Час не требуется",
+            "CONTENT_REQUIRED": "Содержимое не требуется",
+            "URL_REQUIRED": "URL-адрес не требуется",
+            "URL_MUST_VALID_URL": "URL-адрес должен быть действительным",
+            "APPLICATION_REQUIRED": "Приложения не требуется",
+            "ARGUUMENTS_REQUIRED": "Аргументы не требуется",
+            "NAME_MUST_VALID_PATTERN": "Имя должно быть записано в действительный формат",
+            "ARGUMENTS_REQUIRED": "Аргументы не требуется",
+            "POLLING_INTERVAL_REQUIRED": "Интервал опроса не требуется",
+            "TITLE_REQUIRED": "Название не требуется"
+        },
+        "HOST": "Принимающей",
+        "SECRET": "Секрет",
+        "DEFAULTUSER": "Имя пользователя по умолчанию",
+        "DESCRIPTION": "Описание",
+        "ADD_TRUNK": "Добавить СЛ",
+        "HELP": {
+            "SECRET": "Пароль аутентификации для обратитесь к поставщику услуг.",
+            "HOST": "Домен или имя хоста для поставщика услуг.",
+            "DEFAULTUSER": "Имя пользователя аутентификации связаться с поставщиком услуг.",
+            "CALLERID": "Идентификатор вызывающего абонента в формате \"Имя\" <number>",
+            "REGISTRY": "Магистральный реестра строки, требуются некоторыми поставщиками услуг, обычно defaultuser:secret@host.",
+            "FROMDOMAIN": "Устанавливает значение по умолчанию:домен в сообщений SIP, когда они выступают в качестве SIP-ua (клиент). Некоторые назначения могут потребовать обязательных удостоверений личности имя вместо только IP-адрес.",
+            "FROMUSER": "Как ваш п оставщиков могли предоставлять услуги знает вас. Это которой пользователю ввести вместо от идентификаторавызывающего абонента при совершении вызовов для сверстников (Другой прокси-сервер SIP). Действителен только для type=peer.",
+            "OUTBOUNDPROXY": "IP_адрес или DNS SRV имя (исключая _sip._udp префикс) : SRV имя, имя хоста или IP адрес исходящего прокси-сервера SIP. Отправка исходящих вызовов для данного прокси не непосредственно к устройствам. Действителен только для type=peer.",
+            "PORT": "Номер порта мы хотим для подключения к удаленной стороне.",
+            "CONTEXT": "В этом контексте пригодными для соединительной линии.",
+            "TYPE": "Определяет роль SIP в Asterisk. Пользователь: используется для проверки подлинности входящих - Одноранговые сети: для исходящих вызовов - друга: охватывает как характеристики выше.",
+            "DTMFMODE": "Как DTMF (двухтональный многочастотный набор значений Dual-Tone Multi) отправляются: RFC2833: режим по умолчанию, DTMF отправляются с RTP, но за пределами аудио поток. Внутриполосный: DTMF отправляется в аудио поток текущего разговора становится слышен из громкоговорителей. Требует высокой загрузки ЦП. INFO: Хотя этот метод является очень надежной, она поддерживается не всеми устройствами офисной АТС и многие SIP.",
+            "NAT": "Изменяет поведение звездочка для клиентов за брандмауэром.Если любое из разделенных запятыми параметров 'Нет', звездочка будет игнорировать любые другие параметры и настройки NAT=no.",
+            "QUALIFY": "Определяет, когда SIP - это достижимая цель.",
+            "ALLOWCODECS": "Разрешено кодеки в порядке их предпочтения.",
+            "INSECURE": "Указывает способ соединения ручки с одноранговой сети, позволяя небезопасных настроек.",
+            "CALL_LIMIT": "Предельное количество входящих и исходящих вызовов в то время.",
+            "DIRECTMEDIA": "Звездочка по умолчанию пытается переориентировать RTP поток перейти непосредственно от вызывающего абонента для вызываемого абонента. Некоторые устройства не поддерживают этот (особенно если один из них находится за NAT). По умолчанию параметр имеет значение \"Да\". Если у вас есть все клиенты за NAT или по любой иной причине хотите звездочка на пребывание в звуковой тракт, если вы хотите включить эту off (выкл.).",
+            "CALLCOUNTER": "Включить счетчики вызовов на устройствах.",
+            "ADD_PHONE_TO_URI": "Определить, если поставщик требует ';user=Телефон' на URI.",
+            "TRUST_REMOTE_PARTY_ID": "Определите Remote-Party-ID должен быть надежным.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "Статус",
+            "ENCRYPTION": "Определите Remote-Party-ID должны быть отправлены (по умолчанию отсутствует).",
+            "TRANSPORT": "Установить значение по умолчанию для транспорта. Порядок определяет основной транспортом по умолчанию.",
+            "OTHERFIELDS": "Другие поля для добавления в соединительные линии conf файлы. Должны быть записаны в формате звездочка (клавиша=значение), каждое поле на одной строке."
+        },
+        "EDIT_TRUNK": "Редактировать СЛ",
+        "DELETE_TRUNK": "Удалить СЛ",
+        "CREATED_AT": "Созданные в",
+        "SETTINGS": "Настройки",
+        "ADVANCED": "Расширенные возможности",
+        "OTHER": "Другие",
+        "ACTIVE": "Активно",
+        "CONTEXT": "Контексте",
+        "CALLERID": "Идентификатор вызывающего абонента",
+        "TYPE": "Тип",
+        "DTMFMODE": "В режиме DTMF",
+        "NAT": "NAT",
+        "QUALIFY": "Претендовать",
+        "ALLOWCODECS": "Разрешено кодеки",
+        "INSECURE": "Небезопасные",
+        "REGISTRY": "Реестр",
+        "DIRECTMEDIA": "Direct Media",
+        "CALLCOUNTER": "Счетчик вызовов",
+        "FROMDOMAIN": "Из домена",
+        "FROMUSER": "От пользователя",
+        "OUTBOUNDPROXY": "Исходящий прокси",
+        "ADD_PHONE_TO_URI": "Добавить телефон для URI",
+        "TRUST_REMOTE_PARTY_ID": "Целевой идентификатора удаленного абонента",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Отправка идентификатора удаленного абонента жатки",
+        "ENCRYPTION": "Шифрование данных",
+        "PORT": "Порт",
+        "TRANSPORT": "Транспорта",
+        "SAVE": "Сохранить",
+        "VARIABLES": "Переменные",
+        "ADD_VARIABLE": "Добавить переменную",
+        "EDIT_VARIABLE": "Редактирование переменной",
+        "DELETE_VARIABLE": "Удалить переменную",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "TAGS": "Теги индексов",
+        "ADD_TAG": "Добавить метки",
+        "EDIT_TAG": "Изменить тег индекса",
+        "DELETE_TAG": "Удалить метку",
+        "PAUSES": "Приостановка",
+        "ADD_PAUSE": "Добавление паузы",
+        "EDIT_PAUSE": "Редактировать Пауза",
+        "DELETE_PAUSE": "Удалить паузы",
+        "CANNEDANSWERS": "Ответы консервов",
+        "ADD_CANNEDANSWER": "Добавить консервированных ответ",
+        "EDIT_CANNEDANSWER": "Редактировать консервированных ответ",
+        "DELETE_CANNEDANSWER": "Удалить ответ консервов",
+        "KEY": "Ключ зажигания",
+        "VALUE": "Значение",
+        "SOUNDS": "Звуки",
+        "EDIT_SOUND": "Редактирование звука",
+        "DELETE_SOUND": "Удалить звуковой",
+        "FINISH": "Готово",
+        "DROP_TO_UPLOAD": "Раскрывающийся список для загрузки",
+        "TRIGGERS": "Триггеры",
+        "EDIT_TRIGGER": "Изменить триггер",
+        "DELETE_TRIGGER": "Удалить триггер",
+        "ADD_TRIGGER": "Добавить триггер",
+        "DELETE": "Удалить",
+        "AUTOMATIONS": "Измерительные машины",
+        "EDIT_AUTOMATION": "Редактировать автоматизации",
+        "DELETE_AUTOMATION": "Удалить автоматизации",
+        "ADD_AUTOMATION": "Автоматизация",
+        "INTERVALS": "Интервалы времени",
+        "EDIT_INTERVAL": "Изменить интервал",
+        "DELETE_INTERVAL": "Удалить интервал",
+        "ADD_INTERVAL": "Добавить интервал",
+        "TOOLS": "Инструменты",
+        "ID": "Id",
+        "AUDIO": "Аудио",
+        "DOWNLOAD_SOUND": "Загрузить звук",
+        "UPLOAD_SOUND": "Инструменты",
+        "CHANNEL": "Канал",
+        "NEW_TRIGGER": "Новый триггер",
+        "GENERAL": "Генеральной",
+        "STATUS": "Статус",
+        "CONDITIONS&ACTIONS": "Условия и действия",
+        "ALLCONDITIONS": "Выполнить все эти условия:",
+        "ANYCONDITIONS": "Удовлетворить любое из этих условий:",
+        "ACTIONS": "Действия:",
+        "NEW_AUTOMATION": "Новые средства автоматизации",
+        "TIMEOUT": "Превышение лимита времени",
+        "PEERSTATUS": "Экспертный статус",
+        "CALL_LIMIT": "Призывает ограничить",
+        "OTHERFIELDS": "Другие поля",
+        "NEW_VARIABLE": "Новой переменной",
+        "NEW_TAG": "Новую метку",
+        "NEW_PAUSE": "Новая Пауза",
+        "NEW_CANNEDANSWER": "Новые консервы ответ",
+        "CONFIRM_PASSWORD": "Подтвердите пароль",
+        "NEW_TRUNK": "Новой группе соединительных линий",
+        "FROM": "Из",
+        "TO": "Для",
+        "WEEKDAY": "День недели",
+        "MONTHDAY": "День месяца",
+        "MONTH": "Месяц",
+        "ALWAYS": "Всегда",
+        "MON": "Понедельник",
+        "TUE": "Во вторник",
+        "WED": "Среду",
+        "THU": "Четверг",
+        "FRI": "Пятница",
+        "SAT": "Суббота",
+        "SUN": "Воскресенье",
+        "JAN": "Январь",
+        "FEB": "Февраля",
+        "MAR": "Марта",
+        "APR": "Апреля",
+        "MAY": "Мая",
+        "JUN": "Июнь",
+        "JUL": "Июля",
+        "AUG": "Августа",
+        "SEP": "Сентябрь",
+        "OCT": "Октября",
+        "NOV": "Ноябрь",
+        "DEC": "Декабрь",
+        "PASSWORD": "Пароль",
+        "CUSTOMDASHBOARDS": "Custom инструментальных панелей",
+        "NEW_CUSTOMDASHBOARD": "Новый пользовательский приборной панели",
+        "ADD_CUSTOMDASHBOARD": "Добавить пользовательские приборной панели",
+        "EDIT_CUSTOMDASHBOARD": "Редактировать пользовательский приборной панели",
+        "DELETE_CUSTOMDASHBOARD": "Удалить пользовательские приборной панели",
+        "SCHEDULER": "Планировщик",
+        "NEW_SCHEDULE": "Новый График",
+        "ADD_SCHEDULE": "Добавить расписание",
+        "EDIT_SCHEDULE": "Редактирование расписания",
+        "DELETE_SCHEDULE": "Удалить график",
+        "SENDMAIL": "Отправка сообщения электронной почты",
+        "CONFIGURATION": "Конфигурация",
+        "MAIL": "По электронной почте",
+        "REPORTTYPE": "Тип отчета",
+        "REPORT": "Доклад",
+        "OUTPUT": "Выход",
+        "EXECUTEON": "Выполнить на",
+        "REPORTRANGE": "Доклад диапазон",
+        "VALIDITYSTART": "Время начала",
+        "VALIDITYEND": "Время окончания",
+        "EXECUTEEVERY": "Выполнить все",
+        "ACCOUNT": "Счета",
+        "EMAILADDRESS": "Адрес электронной почты",
+        "CURRENTDAY": "Текущий день",
+        "DAILY": "Ежедневно",
+        "WEEKLY": "Еженедельно",
+        "MONTHLY": "За месяц",
+        "PREVIOUS_DAY": "Предыдущий день",
+        "LAST_SEVEN_DAYS": "За последние семь дней",
+        "LAST_THIRTY_DAYS": "В прошлом Thirthy дней",
+        "LAST_MONTH": "В прошлом месяце",
+        "WEEKDAYS": "Дни недели",
+        "HOUR": "Час",
+        "DEFAULT": "По умолчанию",
+        "CSV": "CSV",
+        "PDF": "В ФОРМАТЕ PDF",
+        "15MIN": "15 минут",
+        "30MIN": "30 минут",
+        "1H": "1 час",
+        "VOICE": "Голосовой связи",
+        "CHAT": "Чат",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Открыть канал",
+        "TEMPLATES": "Шаблоны",
+        "EDIT_TEMPLATE": "Изменить шаблон",
+        "DELETE_TEMPLATE": "Удаление шаблона",
+        "NEW_TEMPLATE": "Новый шаблон",
+        "ADD_TEMPLATE": "Добавить шаблон",
+        "CONTENT": "Содержание",
+        "FIELD": "Поле",
+        "NO_ANYCONDITION_AVAILABLE": "Условия не доступно",
+        "NO_ALLCONDITION_AVAILABLE": "Условия не доступно",
+        "NO_ACTION_AVAILABLE": "Действия недоступны",
+        "ACTION": "Действий",
+        "EDIT_ANYCONDITION": "Изменить состояние",
+        "DELETE_ANYCONDITION": "Удалить условие",
+        "NEW_ANYCONDITION": "Новое состояние",
+        "ADD_ANYCONDITION": "Добавить условие",
+        "EDIT_ALLCONDITION": "Изменить состояние",
+        "DELETE_ALLCONDITION": "Удалить условие",
+        "NEW_ALLCONDITION": "Новое состояние",
+        "ADD_ALLCONDITION": "Добавить условие",
+        "EDIT_ACTION": "Редактировать действие",
+        "DELETE_ACTION": "Удаление действий",
+        "NEW_ACTION": "Новое Действие",
+        "ADD_ACTION": "Добавить действие",
+        "QUEUE": "Очереди",
+        "CALL_STATUS": "Состояние вызова",
+        "OUTBOUND_ROUTE": "Маршрут исходящих вызовов",
+        "EQUALS": "Равно",
+        "NOT_EQUALS": "Не равняется",
+        "CONTACT_MANAGER": "Контакты Manager",
+        "INTEGRATIONS": "Интеграция",
+        "MOTION_BAR": "Бар движения",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL вперед",
+        "WEB_POPUP": "Web всплывающее окно",
+        "LIST": "Список",
+        "INTEGRATION": "Интеграция",
+        "TEMPLATE": "Шаблон",
+        "URL": "URL",
+        "APPLICATION": "Приложение",
+        "ARGUMENTS": "Аргументы",
+        "NO_APPS_AVAILABLE": "Нет доступных приложений",
+        "NEW_INTERVAL": "Новые включите ее снова через",
+        "OUTBOUNDROUTE": "Маршрут исходящих вызовов",
+        "OPERATOR": "Оператор",
+        "NO_INTERVALS_AVAILABLE": "Нет доступных интервалов",
+        "YES": "Да",
+        "NO": "Нет",
+        "SUBJECT": "При условии",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "BROWSER": "Браузер",
+        "INTERVAL": "Пробег до очередной замены масла",
+        "INFO": "Info",
+        "TIME_RANGE": "Диапазон времени",
+        "WEEK_DAYS": "Дни недели",
+        "MONTH_DAYS": "Месяц дней",
+        "MONTHS": "Месяцев",
+        "DROP_TO_UPLOAD_MESSAGE": "Также можно перетащить аудио для загрузки здесь. Только MP3, WAV, GSM - Max. 15МБ",
+        "POLLING_INTERVAL": "Интервал опроса (секунд)",
+        "DASHBOARD": "Приборной Панели",
+        "NEW_DASHBOARDITEM": "Новый виджет на приборной панели",
+        "COUNTER": "Счетчик",
+        "IFRAME": "IFrame",
+        "CLOCK": "Часы",
+        "ADD_DASHBOARDITEM": "Добавить виджет на приборной панели",
+        "EDIT_WIDGET": "Редактировать виджет",
+        "DELETE_WIDGET": "Удалить виджет",
+        "FLIP_WIDGET": "Flip виджет",
+        "TITLE": "Название",
+        "UPDATE": "Обновление",
+        "LAYOUT": "Компоновка",
+        "BACKGROUND_COLOR": "Цвет фона",
+        "FOREGROUND_COLOR": "Основной цвет",
+        "FOREGROUND_TITLE_COLOR": "На переднем плане название цвета",
+        "THEME": "Темы",
+        "LIGHT": "Лампа",
+        "DARK": "Темный",
+        "TIMEZONE": "Часовой пояс",
+        "DIGITAL_FORMAT": "Цифровой формат даты",
+        "TOOLS_QUERY": "Запрос",
+        "SELECT": "Выберите",
+        "WHERE": "Где",
+        "BACK": "Назад",
+        "PROJECT": "Проект",
+        "GOTOREALTIME_TRUNK": "Перейдите к в режиме реального времени СЛ",
+        "GOTO_TRUNK": "Перейдите к соединительной линии"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/sv.json b/public/app/main/apps/tools/i18n/sv.json
new file mode 100644 (file)
index 0000000..b166fdf
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "Namn",
+        "TRUNKS": "Segment",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "HOST_REQUIRED": "Värd är obligatoriskt",
+            "DEFAULTUSER_REQUIRED": "Den förvalda användaren krävs",
+            "CALLERID_REQUIRED": "Uppringar-ID är obligatoriskt",
+            "KEY_REQUIRED": "Nyckeln är obligatoriskt",
+            "CONFIRM_NOT_MATCH": "Lösenord don' t matchar",
+            "VALIDITYSTART_REQUIRED": "Starttiden är obligatoriskt",
+            "VALIDITYEND_REQUIRED": "Utgången tid",
+            "MONTHDAY_REQUIRED": "Månad dag krävs",
+            "HOUR_REQUIRED": "En timme är obligatoriskt",
+            "CONTENT_REQUIRED": "Innehållet är obligatoriskt",
+            "URL_REQUIRED": "URL krävs",
+            "URL_MUST_VALID_URL": "URL:en måste vara giltig",
+            "APPLICATION_REQUIRED": "Ansökan krävs",
+            "ARGUUMENTS_REQUIRED": "De argument som krävs",
+            "NAME_MUST_VALID_PATTERN": "Namnet måste skrivas i ett giltigt format",
+            "ARGUMENTS_REQUIRED": "De argument som krävs",
+            "POLLING_INTERVAL_REQUIRED": "Pollintervallet krävs",
+            "TITLE_REQUIRED": "Titeln är obligatoriskt"
+        },
+        "HOST": "Värd",
+        "SECRET": "Hemliga",
+        "DEFAULTUSER": "Standardanvändare",
+        "DESCRIPTION": "Beskrivning",
+        "ADD_TRUNK": "Lägg till bagageutrymmet",
+        "HELP": {
+            "SECRET": "Legitimation lösenord kontakta leverantören.",
+            "HOST": "Domänen eller värdnamnet för leverantören.",
+            "DEFAULTUSER": "Autentisering användarnamn kontakta leverantören.",
+            "CALLERID": "Nummerpresentation, i formatet \"namn\" <nummer>",
+            "REGISTRY": "Bagageutrymmet registry sträng, krävs av vissa leverantörer, vanligtvis defaultuser:hemliga@host.",
+            "FROMDOMAIN": "Ställer in förvalda från:domän i SIP-meddelanden när de agerar som en SIP ua (klient). Vissa destinationer kan kräva obligatorisk id-namnet istället för bara IP-adressen.",
+            "FROMUSER": "Hur din leverantör vet du. Det är som att sätta i stället för callerid när samtal till peer (en annan SIP-proxy). Endast giltig för type=peer.",
+            "OUTBOUNDPROXY": "IP_adress eller DNS SRV-namn (exklusive _sip._udp prefix) : SRV namn, värdnamn eller IP-adress för utgående SIP-Proxy. Skicka utgående signaler till denna proxy, inte direkt till enheterna. Endast giltig för type=peer.",
+            "PORT": "Det portnummer som vi vill ansluta till på fjärrkontrollen.",
+            "CONTEXT": "Den exploaterbara sammanhang för bagageutrymmet.",
+            "TYPE": "Bestämmer SIP roll inom asterisk. Användare: används för att autentisera inkommande - Kisa: för utgående samtal - vän: omfattar både egenskaper hos ovan.",
+            "DTMFMODE": "Hur DTMF (Dual-Tone Multi-Frequency) skickas: RFC2833: standardläget DTMF skickas med RTP, men utanför ljudström. INBAND: DTMF skickas i ljudströmmen i den aktuella konversationen blir ljud ur högtalarna. Kräver en hög CPU-belastning. INFO: Även om denna metod är mycket tillförlitliga, det stöds inte av alla PBX-enheter och flera SIP-trunk.",
+            "NAT": "Förändringar i beteendet hos Asterisk för beställare bakom en firewall.Om någon av komma-avskilde alternativ är \"nej\", Asterisk kommer att ignorera alla andra inställningar och ställa in nat=no.",
+            "QUALIFY": "Avgör när SIP är genomförbara.",
+            "ALLOWCODECS": "Tillåtna codecs i prioritetsordning.",
+            "INSECURE": "Anger hur du hanterar anslutningar med peer, så osäkra inställningar.",
+            "CALL_LIMIT": "Gränsen antal inkommande och utgående samtal på en och samma gång.",
+            "DIRECTMEDIA": "Asterisk som standard försöker omdirigera RTP medieström gå direkt från kunden till den uppringde. Vissa enheter stöder inte detta (särskilt om en av dem är bakom en NAT). Standardinställningen är Ja. Om du har alla klienter bakom en NAT, eller av någon annan anledning vill Asterisk i ljudväg, du kanske vill slå det.",
+            "CALLCOUNTER": "Aktivera samtalsräknare på enheter.",
+            "ADD_PHONE_TO_URI": "Ange om leverantören kräver ';user=phone\" på URI.",
+            "TRUST_REMOTE_PARTY_ID": "Definiera om Remote-Party-ID ska vara tillförlitliga.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "Status",
+            "ENCRYPTION": "Definiera om Remote-Party-ID ska skickas (standard är ingen).",
+            "TRANSPORT": "Ställ in standard transporter. Avgör det primära förvalda transporter.",
+            "OTHERFIELDS": "Andra områden att lägga i segment conf filer. Att vara skrivna i asterisk-format (key=värde), varje fält på en enda rad."
+        },
+        "EDIT_TRUNK": "Redigera bagageutrymmet",
+        "DELETE_TRUNK": "Ta bort bakluckan",
+        "CREATED_AT": "Skapad",
+        "SETTINGS": "Inställningar",
+        "ADVANCED": "Avancerade",
+        "OTHER": "Andra",
+        "ACTIVE": "Aktiv",
+        "CONTEXT": "Bakgrund",
+        "CALLERID": "Nummerpresentation",
+        "TYPE": "Typ",
+        "DTMFMODE": "DTMF-läge",
+        "NAT": "NAT",
+        "QUALIFY": "Kvalificera",
+        "ALLOWCODECS": "Tillåtna codecs",
+        "INSECURE": "Insecure",
+        "REGISTRY": "Registrering",
+        "DIRECTMEDIA": "Direct Media",
+        "CALLCOUNTER": "Ring räknare",
+        "FROMDOMAIN": "Från domän",
+        "FROMUSER": "Från användaren",
+        "OUTBOUNDPROXY": "Utgående Proxy",
+        "ADD_PHONE_TO_URI": "Lägg till telefon till URI",
+        "TRUST_REMOTE_PARTY_ID": "Trust avlägsen part-ID",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Skicka avlägsen part ID-rubriken",
+        "ENCRYPTION": "Kryptering",
+        "PORT": "Port",
+        "TRANSPORT": "Transport",
+        "SAVE": "Spara",
+        "VARIABLES": "Variabler",
+        "ADD_VARIABLE": "Adderar variabel",
+        "EDIT_VARIABLE": "Redigera variabel",
+        "DELETE_VARIABLE": "Radera variabel",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "TAGS": "Etiketter",
+        "ADD_TAG": "Lägg till etikett",
+        "EDIT_TAG": "Redigera etikett",
+        "DELETE_TAG": "Ta bort etikett",
+        "PAUSES": "Pauser",
+        "ADD_PAUSE": "Lägg till paus",
+        "EDIT_PAUSE": "Redigera paus",
+        "DELETE_PAUSE": "Ta bort Pause",
+        "CANNEDANSWERS": "Färdiga svar",
+        "ADD_CANNEDANSWER": "Lägg till färdiga svar",
+        "EDIT_CANNEDANSWER": "Redigera färdiga svar",
+        "DELETE_CANNEDANSWER": "Ta bort färdiga svar",
+        "KEY": "Nyckel",
+        "VALUE": "Värde",
+        "SOUNDS": "Ljud",
+        "EDIT_SOUND": "Redigera ljud",
+        "DELETE_SOUND": "Ta bort ljud",
+        "FINISH": "Avsluta",
+        "DROP_TO_UPLOAD": "Tappar du vill överföra",
+        "TRIGGERS": "Avtryckare",
+        "EDIT_TRIGGER": "Redigera avtryckare",
+        "DELETE_TRIGGER": "Ta bort trigger",
+        "ADD_TRIGGER": "Lägg Trigger",
+        "DELETE": "Ta bort",
+        "AUTOMATIONS": "Automations",
+        "EDIT_AUTOMATION": "Redigera automatisering",
+        "DELETE_AUTOMATION": "Ta bort automatisering",
+        "ADD_AUTOMATION": "Lägg till automatisering",
+        "INTERVALS": "Intervall",
+        "EDIT_INTERVAL": "Redigera intervall",
+        "DELETE_INTERVAL": "Ta bort intervall",
+        "ADD_INTERVAL": "Lägg till intervall",
+        "TOOLS": "Verktyg",
+        "ID": "Id",
+        "AUDIO": "Ljud",
+        "DOWNLOAD_SOUND": "Hämta ljud",
+        "UPLOAD_SOUND": "Verktyg",
+        "CHANNEL": "Kanal",
+        "NEW_TRIGGER": "Ny triggning",
+        "GENERAL": "Allmänt",
+        "STATUS": "Status",
+        "CONDITIONS&ACTIONS": "Villkor & åtgärder",
+        "ALLCONDITIONS": "Uppfyller alla dessa villkor:",
+        "ANYCONDITIONS": "Uppfyller något av dessa villkor:",
+        "ACTIONS": "Åtgärder:",
+        "NEW_AUTOMATION": "Nya automatisering",
+        "TIMEOUT": "Tidsgräns",
+        "PEERSTATUS": "Peer status",
+        "CALL_LIMIT": "Europaparlamentet uppmanar gräns",
+        "OTHERFIELDS": "Övriga fält",
+        "NEW_VARIABLE": "En ny variabel",
+        "NEW_TAG": "Nya Tag",
+        "NEW_PAUSE": "Nya paus",
+        "NEW_CANNEDANSWER": "Nya färdiga svar",
+        "CONFIRM_PASSWORD": "Bekräfta lösenord",
+        "NEW_TRUNK": "Nya bagageutrymmet",
+        "FROM": "Från",
+        "TO": "Till",
+        "WEEKDAY": "Veckodag",
+        "MONTHDAY": "Månad Dag",
+        "MONTH": "Månad",
+        "ALWAYS": "Alltid",
+        "MON": "Måndag",
+        "TUE": "Tisdag",
+        "WED": "Onsdag",
+        "THU": "Torsdag",
+        "FRI": "Fredag",
+        "SAT": "Lördag",
+        "SUN": "Söndag",
+        "JAN": "Januari",
+        "FEB": "Februari",
+        "MAR": "Mars",
+        "APR": "April",
+        "MAY": "Kan",
+        "JUN": "Juni",
+        "JUL": "Juli",
+        "AUG": "Augusti",
+        "SEP": "September",
+        "OCT": "Oktober",
+        "NOV": "November",
+        "DEC": "December",
+        "PASSWORD": "Lösenord",
+        "CUSTOMDASHBOARDS": "Anpassade instrumentpaneler",
+        "NEW_CUSTOMDASHBOARD": "Nya anpassade instrumentpaneler",
+        "ADD_CUSTOMDASHBOARD": "Lägg till anpassade instrumentpaneler",
+        "EDIT_CUSTOMDASHBOARD": "Redigera anpassad instrumentpanel",
+        "DELETE_CUSTOMDASHBOARD": "Radera Anpassade instrumentpaneler",
+        "SCHEDULER": "Schemaläggaren",
+        "NEW_SCHEDULE": "Nytt schema",
+        "ADD_SCHEDULE": "Lägg schema",
+        "EDIT_SCHEDULE": "Redigera schema",
+        "DELETE_SCHEDULE": "Radera schema",
+        "SENDMAIL": "Skicka mail",
+        "CONFIGURATION": "Konfiguration",
+        "MAIL": "Post",
+        "REPORTTYPE": "Rapporttyp",
+        "REPORT": "Rapport",
+        "OUTPUT": "Utgång",
+        "EXECUTEON": "Utför på",
+        "REPORTRANGE": "Rapportintervallet",
+        "VALIDITYSTART": "Starttid",
+        "VALIDITYEND": "Sluttid",
+        "EXECUTEEVERY": "Utför varje",
+        "ACCOUNT": "Konto",
+        "EMAILADDRESS": "E-postadress",
+        "CURRENTDAY": "Aktuell dag",
+        "DAILY": "Dagligen",
+        "WEEKLY": "Veckovis",
+        "MONTHLY": "Månadsvis",
+        "PREVIOUS_DAY": "Föregående dag",
+        "LAST_SEVEN_DAYS": "Senaste 7 dagarna",
+        "LAST_THIRTY_DAYS": "Sista Thirthy dagar",
+        "LAST_MONTH": "Förra månaden",
+        "WEEKDAYS": "Veckodag",
+        "HOUR": "Timme",
+        "DEFAULT": "Standard",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 minuter",
+        "30MIN": "30 minuter",
+        "1H": "1 timme",
+        "VOICE": "Röst",
+        "CHAT": "Chatt",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Öppen kanal",
+        "TEMPLATES": "Mallar",
+        "EDIT_TEMPLATE": "Redigera mall",
+        "DELETE_TEMPLATE": "Ta bort mall",
+        "NEW_TEMPLATE": "Ny mall",
+        "ADD_TEMPLATE": "Lägg till mall",
+        "CONTENT": "Innehåll",
+        "FIELD": "Fält",
+        "NO_ANYCONDITION_AVAILABLE": "Inga tillgängliga villkor",
+        "NO_ALLCONDITION_AVAILABLE": "Inga tillgängliga villkor",
+        "NO_ACTION_AVAILABLE": "Inga tillgängliga åtgärder",
+        "ACTION": "Åtgärd",
+        "EDIT_ANYCONDITION": "Redigera skick",
+        "DELETE_ANYCONDITION": "Ta bort villkor",
+        "NEW_ANYCONDITION": "Ny skick",
+        "ADD_ANYCONDITION": "Lägg till villkor",
+        "EDIT_ALLCONDITION": "Redigera skick",
+        "DELETE_ALLCONDITION": "Ta bort villkor",
+        "NEW_ALLCONDITION": "Ny skick",
+        "ADD_ALLCONDITION": "Lägg till villkor",
+        "EDIT_ACTION": "Åtgärden redigera",
+        "DELETE_ACTION": "Borttagningsåtgärd",
+        "NEW_ACTION": "Ny åtgärd",
+        "ADD_ACTION": "Lägg till en åtgärd",
+        "QUEUE": "Kö",
+        "CALL_STATUS": "Samtalsstatus",
+        "OUTBOUND_ROUTE": "Utgående rutt",
+        "EQUALS": "Är lika med",
+        "NOT_EQUALS": "Inte lika med",
+        "CONTACT_MANAGER": "Kontakter som chefen",
+        "INTEGRATIONS": "Integrationer",
+        "MOTION_BAR": "Motion Bar",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL framåt",
+        "WEB_POPUP": "Web-popup",
+        "LIST": "Lista",
+        "INTEGRATION": "Integrering",
+        "TEMPLATE": "Mall",
+        "URL": "URL",
+        "APPLICATION": "Tillämpning",
+        "ARGUMENTS": "Argument",
+        "NO_APPS_AVAILABLE": "Inga program är tillgängliga",
+        "NEW_INTERVAL": "Nya väntar",
+        "OUTBOUNDROUTE": "Utgående rutt",
+        "OPERATOR": "Operatör",
+        "NO_INTERVALS_AVAILABLE": "Inga intervall tillgängliga",
+        "YES": "Ja",
+        "NO": "Nr",
+        "SUBJECT": "Föremål",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "BROWSER": "Webbläsare",
+        "INTERVAL": "Intervall",
+        "INFO": "Info",
+        "TIME_RANGE": "Tidsintervall",
+        "WEEK_DAYS": "Veckodag",
+        "MONTH_DAYS": "Dagar i månaden",
+        "MONTHS": "Månader",
+        "DROP_TO_UPLOAD_MESSAGE": "Du kan också släppa ljud här till uploaden. Endast MP3, WAV, GSM - Max. 15MB",
+        "POLLING_INTERVAL": "Registreringsintervall (sekunder)",
+        "DASHBOARD": "Instrumentbräda",
+        "NEW_DASHBOARDITEM": "Nya dashboard widget",
+        "COUNTER": "Räknare",
+        "IFRAME": "IFrame",
+        "CLOCK": "Klocka",
+        "ADD_DASHBOARDITEM": "Lägg till dashboard widget",
+        "EDIT_WIDGET": "Redigera widget",
+        "DELETE_WIDGET": "Ta bort widget",
+        "FLIP_WIDGET": "Flip widget",
+        "TITLE": "Avdelning",
+        "UPDATE": "Uppdatera",
+        "LAYOUT": "Layout",
+        "BACKGROUND_COLOR": "Bakgrundsfärg",
+        "FOREGROUND_COLOR": "Förgrundsfärg",
+        "FOREGROUND_TITLE_COLOR": "Förgrund benämning färg",
+        "THEME": "Tema",
+        "LIGHT": "Bakgrund",
+        "DARK": "Mörk",
+        "TIMEZONE": "TimeZone",
+        "DIGITAL_FORMAT": "Digital datumformat",
+        "TOOLS_QUERY": "Fråga",
+        "SELECT": "Välj",
+        "WHERE": "Där",
+        "BACK": "Tillbaka",
+        "PROJECT": "Projektet",
+        "GOTOREALTIME_TRUNK": "Gå till Realtime bagageutrymmet",
+        "GOTO_TRUNK": "Gå till bagageutrymmet"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/tr.json b/public/app/main/apps/tools/i18n/tr.json
new file mode 100644 (file)
index 0000000..b565883
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "Adı",
+        "TRUNKS": "Devreleri",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "HOST_REQUIRED": "Ana gerekiyor.",
+            "DEFAULTUSER_REQUIRED": "Varsayılan Kullanıcı gerekli",
+            "CALLERID_REQUIRED": "Arayan kimliği gerekiyor",
+            "KEY_REQUIRED": "Anahtar gerekiyor.",
+            "CONFIRM_NOT_MATCH": "Parolalar don' t match",
+            "VALIDITYSTART_REQUIRED": "Başlangıç süresi gerekiyor.",
+            "VALIDITYEND_REQUIRED": "Son zaman gerekiyor.",
+            "MONTHDAY_REQUIRED": "Bu Ay Gün gerekiyor.",
+            "HOUR_REQUIRED": "Saat gerekiyor.",
+            "CONTENT_REQUIRED": "Içerik gerekiyor.",
+            "URL_REQUIRED": "URL gerekli",
+            "URL_MUST_VALID_URL": "URL geçerli olmalıdır.",
+            "APPLICATION_REQUIRED": "Uygulama gerekiyor.",
+            "ARGUUMENTS_REQUIRED": "Bu argümanlar gereklidir",
+            "NAME_MUST_VALID_PATTERN": "Ad yazılmış olması gerekir. geçerli bir format",
+            "ARGUMENTS_REQUIRED": "Bu argümanlar gereklidir",
+            "POLLING_INTERVAL_REQUIRED": "Yoklama aralığı gereklidir",
+            "TITLE_REQUIRED": "Başlık gerekiyor."
+        },
+        "HOST": "Ana",
+        "SECRET": "Gizli",
+        "DEFAULTUSER": "Varsayılan Kullanıcı",
+        "DESCRIPTION": "Açıklama",
+        "ADD_TRUNK": "Add Santral",
+        "HELP": {
+            "SECRET": "Kimlik doğrulama şifre iletişim sağlayıcısı.",
+            "HOST": "Etki alanı veya ana bilgisayar adı, sağlayıcısı.",
+            "DEFAULTUSER": "Kimlik doğrulama kullanıcı adı iletişim sağlayıcısı.",
+            "CALLERID": "Arayan kimliği, format \"ad\" <numarası>",
+            "REGISTRY": "Santral kayıt dize, bazı sağlayıcılar, genellikle defaultuser:gizli@host.",
+            "FROMDOMAIN": "Varsayılan ayarlar:etki SIP mesajlarını etkili bir SIP ua (istemci). Bazı hedefler gerektirebilir zorunlu kimlik adı yerine sadece IP adresi.",
+            "FROMUSER": "Nasıl bilir rovider. Bu kullanıcı, bunun yerine, callerid, arama yapma eşler arası (başka bir SIP proxy). Geçerli sadece type=eşler.",
+            "OUTBOUNDPROXY": "IP_adresi veya DNS SRV adı (hariç, _sip._udp önek) : SRV adı, ana bilgisayar adı veya IP adresi outbound SIP Proxy. Send giden sinyal bu proxy, doğrudan. Geçerli sadece type=eşler.",
+            "PORT": "Bağlantı noktası numarası biz bağlanmak uzaktan.",
+            "CONTEXT": "Bu yararlanma için içerik.",
+            "TYPE": "Belirler, SIP içinde yıldız. Kullanıcı: kimliğini doğrulamak için kullanılan gelen - Eşler: aramaları - Arkadaş: kapakları hem özellikleri.",
+            "DTMFMODE": "Nasıl DTMF (Çift Tonlu Çoklu Frekans) gönderilir: RFC2833: varsayılan mod, DTMF gönderilen RTP dışında ses akışı. Makineye kurulan: DTMF, ses akışı mevcut konuşma, giderek sesli hoparlörler. Bir yüksek CPU yükü. Bilgi: Bu yöntem, çok güvenilir, desteklenen tüm PBX cihazları ve birçok SIP Trunk.",
+            "NAT": "Değişiklikler, davranış, Yıldız istemciler için bir güvenlik duvarının arkasında.Herhangi bir virgülle ayrılmış seçenekleri 'hayır', Yıldız yok diğer ayarları ve nat=no.",
+            "QUALIFY": "Belirler, SIP, achievable.",
+            "ALLOWCODECS": "Izin verilen codec, tercihi.",
+            "INSECURE": "Nasıl belirler, bağlantılar ile eş, böylece dengesiz ayarları.",
+            "CALL_LIMIT": "Limit, gelen ve giden aramalar.",
+            "DIRECTMEDIA": "Yıldız varsayılan olarak çalışır, yönlendir RTP ortam akışı doğrudan arayan, aranan kişi. Bazı aygıtlar bu (özellikle eğer biri bir NAT). Varsayılan ayar, EVET. Eğer tüm istemcilerin bir NAT veya bazı diğer nedeni yıldız istiyorsanız, ses yolu, bu.",
+            "CALLCOUNTER": "Arama sayaçlarını cihazlar.",
+            "ADD_PHONE_TO_URI": "Define, sağlayıcısının ';user=telefon', URI.",
+            "TRUST_REMOTE_PARTY_ID": "Define eğer Remote-Party-ID.",
+            "SEND_REMOTE_PARTY_ID_HEADER": "Durum",
+            "ENCRYPTION": "Define eğer Remote-Party-ID gönderilmesi gerekir (varsayılan olarak).",
+            "TRANSPORT": "Varsayılan geciktirir. Sipariş belirler, birincil varsayılan taşıma.",
+            "OTHERFIELDS": "Diğer alanlar eklemek için, santrallerin conf dosyaları. Olarak yazılı yıldız biçimi (anahtar=değer), her alanda bir tek sıra."
+        },
+        "EDIT_TRUNK": "Düzenleme Santral",
+        "DELETE_TRUNK": "Delete Santral",
+        "CREATED_AT": "Oluşturulmuş",
+        "SETTINGS": "Ayarlar",
+        "ADVANCED": "Gelişmiş",
+        "OTHER": "Diğer",
+        "ACTIVE": "Aktif",
+        "CONTEXT": "Içerik",
+        "CALLERID": "Arayan kimliği",
+        "TYPE": "Tipi",
+        "DTMFMODE": "DTMF Modu",
+        "NAT": "NAT",
+        "QUALIFY": "Ödemesine",
+        "ALLOWCODECS": "Izin verilen Codec",
+        "INSECURE": "Dengesiz",
+        "REGISTRY": "Kayıt Defteri",
+        "DIRECTMEDIA": "Direct Media",
+        "CALLCOUNTER": "Arama Sayacı",
+        "FROMDOMAIN": "Etki Alanı",
+        "FROMUSER": "Kullanıcı",
+        "OUTBOUNDPROXY": "Outbound Proxy",
+        "ADD_PHONE_TO_URI": "Telefon Ekle - URI",
+        "TRUST_REMOTE_PARTY_ID": "Güven Uzaktan Parti Kimliği",
+        "SEND_REMOTE_PARTY_ID_HEADER": "Send Uzaktan Parti Kimliği Ön Takım",
+        "ENCRYPTION": "Şifreleme",
+        "PORT": "Bağlantı Noktası",
+        "TRANSPORT": "Taşıma",
+        "SAVE": "Kaydet",
+        "VARIABLES": "Değişkenler",
+        "ADD_VARIABLE": "Add Değişken",
+        "EDIT_VARIABLE": "Edit Değişken",
+        "DELETE_VARIABLE": "Delete Değişken",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "TAGS": "Etiketler",
+        "ADD_TAG": "Etiket ekleme",
+        "EDIT_TAG": "Etiket Düzenle",
+        "DELETE_TAG": "Delete Etiketi",
+        "PAUSES": "Duraklar",
+        "ADD_PAUSE": "Duraklama Ekle",
+        "EDIT_PAUSE": "Edit Duraklatma",
+        "DELETE_PAUSE": "Delete Duraklatma",
+        "CANNEDANSWERS": "Konserve Cevaplar",
+        "ADD_CANNEDANSWER": "Add Konserve Cevap",
+        "EDIT_CANNEDANSWER": "Edit Konserve Cevap",
+        "DELETE_CANNEDANSWER": "Delete Konserve Cevap",
+        "KEY": "Anahtar",
+        "VALUE": "Değer",
+        "SOUNDS": "Sesler",
+        "EDIT_SOUND": "Edit Ses",
+        "DELETE_SOUND": "Delete Ses",
+        "FINISH": "Kaplama",
+        "DROP_TO_UPLOAD": "İndirme Yükleme",
+        "TRIGGERS": "Birleşince",
+        "EDIT_TRIGGER": "Edit Ateşleme",
+        "DELETE_TRIGGER": "Delete Trigger",
+        "ADD_TRIGGER": "Add Ateşleme",
+        "DELETE": "Sil",
+        "AUTOMATIONS": "Otomasyonun hayata geçirilmesidir",
+        "EDIT_AUTOMATION": "Edit Otomasyon",
+        "DELETE_AUTOMATION": "Delete Otomasyon",
+        "ADD_AUTOMATION": "Add Otomasyon",
+        "INTERVALS": "Aralıkları",
+        "EDIT_INTERVAL": "Edit Aralığı",
+        "DELETE_INTERVAL": "Silme Aralığı",
+        "ADD_INTERVAL": "Aralık Ekle",
+        "TOOLS": "Araçlar",
+        "ID": "Id",
+        "AUDIO": "Ses",
+        "DOWNLOAD_SOUND": "Download Ses",
+        "UPLOAD_SOUND": "Araçlar",
+        "CHANNEL": "Kanal",
+        "NEW_TRIGGER": "Yeni Ateşleme",
+        "GENERAL": "Genel",
+        "STATUS": "Durum",
+        "CONDITIONS&ACTIONS": "Şartları ve eylemler",
+        "ALLCONDITIONS": "Bütün bu koşullar:",
+        "ANYCONDITIONS": "Herhangi bir bu koşulları:",
+        "ACTIONS": "Eylemler:",
+        "NEW_AUTOMATION": "Yeni Otomasyon",
+        "TIMEOUT": "Zaman Aşımı",
+        "PEERSTATUS": "Eş Durumu",
+        "CALL_LIMIT": "Aramalar Sınırı",
+        "OTHERFIELDS": "Diğer Alanlar",
+        "NEW_VARIABLE": "Yeni Değişken",
+        "NEW_TAG": "Yeni Etiketi",
+        "NEW_PAUSE": "Yeni Duraklatma",
+        "NEW_CANNEDANSWER": "Yeni Kayıt Yaptıran Cevap",
+        "CONFIRM_PASSWORD": "Parolayı Onayla",
+        "NEW_TRUNK": "Yeni santral",
+        "FROM": ",",
+        "TO": "-",
+        "WEEKDAY": "Hafta Gün",
+        "MONTHDAY": "Ay Gün",
+        "MONTH": "Ay",
+        "ALWAYS": "Her zaman",
+        "MON": "Pazartesi",
+        "TUE": "Salı",
+        "WED": "Çarşamba",
+        "THU": "Perşembe",
+        "FRI": "Cuma",
+        "SAT": "Cumartesi",
+        "SUN": "Pazar",
+        "JAN": "Ocak",
+        "FEB": "Şubat",
+        "MAR": "Mart",
+        "APR": "Nisan",
+        "MAY": "Gerekebilir",
+        "JUN": "Haziran",
+        "JUL": "Temmuz",
+        "AUG": "Ağustos",
+        "SEP": "Eylül",
+        "OCT": "Ekim",
+        "NOV": "Kasım",
+        "DEC": "Aralık",
+        "PASSWORD": "Parola",
+        "CUSTOMDASHBOARDS": "Özel Panolar",
+        "NEW_CUSTOMDASHBOARD": "Yeni Özel Torpido",
+        "ADD_CUSTOMDASHBOARD": "Özel Torpido",
+        "EDIT_CUSTOMDASHBOARD": "Edit Özel Torpido",
+        "DELETE_CUSTOMDASHBOARD": "Delete Özel Torpido",
+        "SCHEDULER": "Zamanlayıcısı",
+        "NEW_SCHEDULE": "Yeni Takvim",
+        "ADD_SCHEDULE": "Program Ekle",
+        "EDIT_SCHEDULE": "Edit Programı",
+        "DELETE_SCHEDULE": "Delete Programı",
+        "SENDMAIL": "Posta Gönder",
+        "CONFIGURATION": "Yapılandırma",
+        "MAIL": "Posta",
+        "REPORTTYPE": "Rapor Türü",
+        "REPORT": "Raporu",
+        "OUTPUT": "Çıkış",
+        "EXECUTEON": "Execute On",
+        "REPORTRANGE": "Rapor Aralığı",
+        "VALIDITYSTART": "Başlangıç Zamanı",
+        "VALIDITYEND": "Bitiş Zamanı",
+        "EXECUTEEVERY": "Execute her",
+        "ACCOUNT": "Hesap",
+        "EMAILADDRESS": "E-Posta Adresi",
+        "CURRENTDAY": "Geçerli Gün",
+        "DAILY": "Günlük",
+        "WEEKLY": "Haftalık",
+        "MONTHLY": "Aylık",
+        "PREVIOUS_DAY": "Önceki Gün",
+        "LAST_SEVEN_DAYS": "Son yedi gün",
+        "LAST_THIRTY_DAYS": "Thirthy Son Gün",
+        "LAST_MONTH": "Geçen Ay",
+        "WEEKDAYS": "Hafta Gün",
+        "HOUR": "Saat",
+        "DEFAULT": "Varsayılan",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 dakika",
+        "30MIN": "30 dakika",
+        "1H": "1 saat",
+        "VOICE": "Ses",
+        "CHAT": "Sohbet",
+        "SMS": "SMS",
+        "OPENCHANNEL": "Açık Kanal",
+        "TEMPLATES": "Şablonları",
+        "EDIT_TEMPLATE": "Şablon Düzenle",
+        "DELETE_TEMPLATE": "Sil Şablonu",
+        "NEW_TEMPLATE": "Yeni Şablon",
+        "ADD_TEMPLATE": "Add Template",
+        "CONTENT": "Içerik",
+        "FIELD": "Alan",
+        "NO_ANYCONDITION_AVAILABLE": "Hayır Şartları mevcut",
+        "NO_ALLCONDITION_AVAILABLE": "Hayır Şartları mevcut",
+        "NO_ACTION_AVAILABLE": "Eylem Yok",
+        "ACTION": "Eylem",
+        "EDIT_ANYCONDITION": "Edit Durumu",
+        "DELETE_ANYCONDITION": "Durumunu Sil",
+        "NEW_ANYCONDITION": "Yeni Durumu",
+        "ADD_ANYCONDITION": "Add Durumu",
+        "EDIT_ALLCONDITION": "Edit Durumu",
+        "DELETE_ALLCONDITION": "Durumunu Sil",
+        "NEW_ALLCONDITION": "Yeni Durumu",
+        "ADD_ALLCONDITION": "Add Durumu",
+        "EDIT_ACTION": "Edit Eylem",
+        "DELETE_ACTION": "Silme işlemi",
+        "NEW_ACTION": "Yeni işlem",
+        "ADD_ACTION": "Add Eylem",
+        "QUEUE": "Kuyruk",
+        "CALL_STATUS": "Arama Durumu",
+        "OUTBOUND_ROUTE": "Giden Yol",
+        "EQUALS": "Eşittir",
+        "NOT_EQUALS": "Eşit Değil",
+        "CONTACT_MANAGER": "Kişi Yöneticisi",
+        "INTEGRATIONS": "Entegrasyonları",
+        "MOTION_BAR": "Hareket Çubuğu",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL ileri",
+        "WEB_POPUP": "Web Açılır",
+        "LIST": "Listesi",
+        "INTEGRATION": "Entegrasyon",
+        "TEMPLATE": "Şablon",
+        "URL": "URL",
+        "APPLICATION": "Uygulama",
+        "ARGUMENTS": "Argümanlar",
+        "NO_APPS_AVAILABLE": "Hiçbir mevcut uygulamalar",
+        "NEW_INTERVAL": "Yeni Bekledikten",
+        "OUTBOUNDROUTE": "Giden Yol",
+        "OPERATOR": "Sürücü",
+        "NO_INTERVALS_AVAILABLE": "Hiçbir zaman aralıkları bulunmaktadır",
+        "YES": "Evet",
+        "NO": "Hayır",
+        "SUBJECT": "Konu",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "BROWSER": "Tarayıcı",
+        "INTERVAL": "Aralığı",
+        "INFO": "Info",
+        "TIME_RANGE": "Zaman Aralığı",
+        "WEEK_DAYS": "Hafta Gün",
+        "MONTH_DAYS": "Ay Gün",
+        "MONTHS": "Ay",
+        "DROP_TO_UPLOAD_MESSAGE": "Ayrıca, ses düşmesi için buraya yükleyin. Sadece MP3, WAV, GSM - Maks. 15MB",
+        "POLLING_INTERVAL": "Yoklama aralığı(saniye)",
+        "DASHBOARD": "Torpido",
+        "NEW_DASHBOARDITEM": "Yeni Torpido Widget",
+        "COUNTER": "Sayaç",
+        "IFRAME": "IFrame",
+        "CLOCK": "Saat",
+        "ADD_DASHBOARDITEM": "Add Torpido Widget",
+        "EDIT_WIDGET": "Düzenle Widget",
+        "DELETE_WIDGET": "Widget silin",
+        "FLIP_WIDGET": "Flip Widget",
+        "TITLE": "Başlık",
+        "UPDATE": "Güncelleştirme",
+        "LAYOUT": "Düzen",
+        "BACKGROUND_COLOR": "Arka Plan Rengi",
+        "FOREGROUND_COLOR": "Ön Plan Rengi",
+        "FOREGROUND_TITLE_COLOR": "Plan Başlık Renk",
+        "THEME": "Tema",
+        "LIGHT": "Işığı",
+        "DARK": "Koyu",
+        "TIMEZONE": "Saat Dilimi",
+        "DIGITAL_FORMAT": "Dijital Tarih Formatı",
+        "TOOLS_QUERY": "Sorgu",
+        "SELECT": "Seçim",
+        "WHERE": "Burada",
+        "BACK": "Geri",
+        "PROJECT": "Proje",
+        "GOTOREALTIME_TRUNK": "Gi̇t Gerçek Zamanlı Santral",
+        "GOTO_TRUNK": "Gi̇t Ana"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/zh-CN.json b/public/app/main/apps/tools/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..4afaa86
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "名称",
+        "TRUNKS": "中继线",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "HOST_REQUIRED": "主机是必需的",
+            "DEFAULTUSER_REQUIRED": "默认的用户是必需的",
+            "CALLERID_REQUIRED": "主叫方 ID 是必需的",
+            "KEY_REQUIRED": "关键的是必需的",
+            "CONFIRM_NOT_MATCH": "密码不匹配",
+            "VALIDITYSTART_REQUIRED": "启动所需的时间",
+            "VALIDITYEND_REQUIRED": "结束时间是必需的",
+            "MONTHDAY_REQUIRED": "在月日是必需的",
+            "HOUR_REQUIRED": "小时是必需的",
+            "CONTENT_REQUIRED": "内容是必需的",
+            "URL_REQUIRED": "URL 是必需的",
+            "URL_MUST_VALID_URL": "URL 必须是有效的",
+            "APPLICATION_REQUIRED": "应用程序是必需的",
+            "ARGUUMENTS_REQUIRED": "该参数是必需的",
+            "NAME_MUST_VALID_PATTERN": "该名称必须是书面的格式无效",
+            "ARGUMENTS_REQUIRED": "该参数是必需的",
+            "POLLING_INTERVAL_REQUIRED": "轮询间隔是必需的",
+            "TITLE_REQUIRED": "标题是必需的"
+        },
+        "HOST": "主机",
+        "SECRET": "秘密",
+        "DEFAULTUSER": "默认的用户",
+        "DESCRIPTION": "描述",
+        "ADD_TRUNK": "添加中继线",
+        "HELP": {
+            "SECRET": "身份验证密码, 请与提供商联系。",
+            "HOST": "域或主机提供商名称。",
+            "DEFAULTUSER": "验证用户名, 请与提供商联系。",
+            "CALLERID": "主叫方 ID 的格式, 在 “name” <",
+            "REGISTRY": "“中继线群注册表字符串所需要的某些提供商, 通常是用户: 秘密@主机。",
+            "FROMDOMAIN": "默认情况下设置为从: 域的 SIP 消息时作为 SIP ua(客户端)。 某些目标可能需要强制性的标识名称而不是 IP 地址。",
+            "FROMUSER": "如何您的提供商是否知悉你。 这是该用户而不是来电显示拨打电话时要对等(另一种 SIP 代理服务器)。 仅适用于类型=点。",
+            "OUTBOUNDPROXY": "IP 地址或 DNS 服务器的名称(不包括_ sip _ udp 的前缀): 服务器名称、主机名或 IP 地址 SIP 呼出代理服务器。 发送出站信号, 该代理服务器, 而不是直接连接到设备。 仅适用于类型=点。",
+            "PORT": "端口编号, 我们要连接到远程端上。",
+            "CONTEXT": "可利用上下文的中继线。",
+            "TYPE": "确定了 SIP 的作用范围内的星号。 用户名: 用于验证传入-同行: 呼出电话-朋友: 涵盖了这两个特点。",
+            "DTMFMODE": "如何 DTMF(双音多频)发送: RFC2833: 默认模式、双音多频发送 RTP 以外的音频流。 : 带内 DTMF 发送音频数据流的当前对话, 成为声音的扬声器。 需要较高的 CPU 负载。 信息: 尽管这种方法非常可靠, 它是不受支持的所有 PBX 设备和许多的 SIP 中继。",
+            "NAT": "改变行为的星号后面的客户端的防火墙。 如果任何的以逗号分隔的-选项是 “不”、星号将会忽略任何其他设置和设置 nat =否。",
+            "QUALIFY": "确定当 SIP 是可以实现的。",
+            "ALLOWCODECS": "允许使用的编解码器的首选项。",
+            "INSECURE": "指定如何处理与同级, 允许不安全的设置。",
+            "CALL_LIMIT": "在 “限制的呼入呼叫和呼出呼叫的时间。",
+            "DIRECTMEDIA": "星号在默认情况下会尝试重定向的 RTP 媒体流直接从主叫方与被叫方。 有些设备不支持这种(特别是如果他们是位于 NAT 后面)。 默认设置为 “是”。 如果您所有的客户机位于 NAT 后面, 或因其他理由而想要的星号留在音频路径, 您可能想要关闭此功能。",
+            "CALLCOUNTER": "启用呼叫计数器上的设备。",
+            "ADD_PHONE_TO_URI": "定义如果提供商要求”; 用户=手机” 上的 URI。",
+            "TRUST_REMOTE_PARTY_ID": "定义如果 Remote-Party-ID 应该是可信的。",
+            "SEND_REMOTE_PARTY_ID_HEADER": "状态",
+            "ENCRYPTION": "定义如果 Remote-Party-ID 应该是发送(默认值为 no)。",
+            "TRANSPORT": "设置缺省的传输。 该顺序确定主要的默认的传输。",
+            "OTHERFIELDS": "其他字段以添加的中继线的配置文件。 写在星号格式(键=值), 每个字段的一行中。"
+        },
+        "EDIT_TRUNK": "编辑中继线",
+        "DELETE_TRUNK": "删除中继线",
+        "CREATED_AT": "创建在",
+        "SETTINGS": "设置",
+        "ADVANCED": "高级",
+        "OTHER": "其他",
+        "ACTIVE": "Active",
+        "CONTEXT": "上下文",
+        "CALLERID": "主叫方 ID",
+        "TYPE": "类型",
+        "DTMFMODE": "DTMF 模式",
+        "NAT": "NAT",
+        "QUALIFY": "符合",
+        "ALLOWCODECS": "允许使用的编解码器",
+        "INSECURE": "不安全的",
+        "REGISTRY": "注册表",
+        "DIRECTMEDIA": "直接媒体",
+        "CALLCOUNTER": "呼叫计数器",
+        "FROMDOMAIN": "从域名",
+        "FROMUSER": "从用户",
+        "OUTBOUNDPROXY": "“呼出代理",
+        "ADD_PHONE_TO_URI": "添加电话以开放的",
+        "TRUST_REMOTE_PARTY_ID": "信任远程通话方 ID",
+        "SEND_REMOTE_PARTY_ID_HEADER": "远程发送方 ID 标题",
+        "ENCRYPTION": "加密",
+        "PORT": "端口",
+        "TRANSPORT": "交通运输",
+        "SAVE": "保存",
+        "VARIABLES": "变量。",
+        "ADD_VARIABLE": "添加变量",
+        "EDIT_VARIABLE": "编辑变量",
+        "DELETE_VARIABLE": "删除变量",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "TAGS": "标签",
+        "ADD_TAG": "添加标记",
+        "EDIT_TAG": "编辑标记",
+        "DELETE_TAG": "删除标记",
+        "PAUSES": "暂停",
+        "ADD_PAUSE": "添加暂停",
+        "EDIT_PAUSE": "编辑暂停",
+        "DELETE_PAUSE": "删除暂停",
+        "CANNEDANSWERS": "罐装的答案",
+        "ADD_CANNEDANSWER": "添加罐头答案",
+        "EDIT_CANNEDANSWER": "编辑罐头答案",
+        "DELETE_CANNEDANSWER": "删除罐头答案",
+        "KEY": "密钥",
+        "VALUE": "值",
+        "SOUNDS": "声音。",
+        "EDIT_SOUND": "编辑声音",
+        "DELETE_SOUND": "删除声音",
+        "FINISH": "完成",
+        "DROP_TO_UPLOAD": "下上传",
+        "TRIGGERS": "触发器",
+        "EDIT_TRIGGER": "编辑触发器",
+        "DELETE_TRIGGER": "删除触发器",
+        "ADD_TRIGGER": "添加触发器",
+        "DELETE": "删除",
+        "AUTOMATIONS": "自动化系",
+        "EDIT_AUTOMATION": "编辑自动化",
+        "DELETE_AUTOMATION": "删除自动操作",
+        "ADD_AUTOMATION": "添加自动操作",
+        "INTERVALS": "时间间隔",
+        "EDIT_INTERVAL": "编辑的时间间隔",
+        "DELETE_INTERVAL": "删除的间隔",
+        "ADD_INTERVAL": "添加时间间隔",
+        "TOOLS": "工具",
+        "ID": "Id",
+        "AUDIO": "音频",
+        "DOWNLOAD_SOUND": "下载的声音",
+        "UPLOAD_SOUND": "工具",
+        "CHANNEL": "通道",
+        "NEW_TRIGGER": "新的触发器",
+        "GENERAL": "总的",
+        "STATUS": "状态",
+        "CONDITIONS&ACTIONS": "条件和操作",
+        "ALLCONDITIONS": "满足以下所有条件:",
+        "ANYCONDITIONS": "满足这些条件:",
+        "ACTIONS": "采取的行动:",
+        "NEW_AUTOMATION": "新的自动化",
+        "TIMEOUT": "超时",
+        "PEERSTATUS": "对等状态。",
+        "CALL_LIMIT": "呼叫限制",
+        "OTHERFIELDS": "其他字段",
+        "NEW_VARIABLE": "新的变量。",
+        "NEW_TAG": "新建标签",
+        "NEW_PAUSE": "新的暂停",
+        "NEW_CANNEDANSWER": "新罐头答案",
+        "CONFIRM_PASSWORD": "确认密码",
+        "NEW_TRUNK": "新的中继线",
+        "FROM": "来自",
+        "TO": "到",
+        "WEEKDAY": "星期一",
+        "MONTHDAY": "月日",
+        "MONTH": "个月",
+        "ALWAYS": "始终",
+        "MON": "星期一",
+        "TUE": "星期二",
+        "WED": "周三",
+        "THU": "星期四",
+        "FRI": "星期五",
+        "SAT": "星期六",
+        "SUN": "星期日",
+        "JAN": "1月",
+        "FEB": "2月",
+        "MAR": "3 月",
+        "APR": "4月",
+        "MAY": "5 月",
+        "JUN": "6月",
+        "JUL": "7月",
+        "AUG": "8月",
+        "SEP": "9月",
+        "OCT": "10月",
+        "NOV": "11月",
+        "DEC": "12月",
+        "PASSWORD": "密码",
+        "CUSTOMDASHBOARDS": "自定义的仪表板",
+        "NEW_CUSTOMDASHBOARD": "新的自定义的仪表板",
+        "ADD_CUSTOMDASHBOARD": "添加自定义的仪表板",
+        "EDIT_CUSTOMDASHBOARD": "编辑自定义的仪表板",
+        "DELETE_CUSTOMDASHBOARD": "删除自定义的仪表板",
+        "SCHEDULER": "调度程序",
+        "NEW_SCHEDULE": "新订的附表",
+        "ADD_SCHEDULE": "添加计划",
+        "EDIT_SCHEDULE": "编辑计划",
+        "DELETE_SCHEDULE": "删除日程表",
+        "SENDMAIL": "发送邮件",
+        "CONFIGURATION": "配置",
+        "MAIL": "电子邮件",
+        "REPORTTYPE": "报告类型",
+        "REPORT": "报告",
+        "OUTPUT": "输出",
+        "EXECUTEON": "执行。",
+        "REPORTRANGE": "报告的范围",
+        "VALIDITYSTART": "开始时间",
+        "VALIDITYEND": "结束时间",
+        "EXECUTEEVERY": "执行每个",
+        "ACCOUNT": "帐户",
+        "EMAILADDRESS": "电子邮件地址",
+        "CURRENTDAY": "当前日期",
+        "DAILY": "每天",
+        "WEEKLY": "每周的",
+        "MONTHLY": "每月的",
+        "PREVIOUS_DAY": "前一天",
+        "LAST_SEVEN_DAYS": "过去的 7 天",
+        "LAST_THIRTY_DAYS": "最后一天 Thirthy",
+        "LAST_MONTH": "上个月",
+        "WEEKDAYS": "周天",
+        "HOUR": "小时",
+        "DEFAULT": "默认值",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 分钟",
+        "30MIN": "30 分钟",
+        "1H": "1 小时",
+        "VOICE": "语音",
+        "CHAT": "文本交谈",
+        "SMS": "短信",
+        "OPENCHANNEL": "打开通道",
+        "TEMPLATES": "模板。",
+        "EDIT_TEMPLATE": "编辑模板。",
+        "DELETE_TEMPLATE": "删除模板。",
+        "NEW_TEMPLATE": "新的模板。",
+        "ADD_TEMPLATE": "添加模板。",
+        "CONTENT": "内容",
+        "FIELD": "字段",
+        "NO_ANYCONDITION_AVAILABLE": "没有可用的条件。",
+        "NO_ALLCONDITION_AVAILABLE": "没有可用的条件。",
+        "NO_ACTION_AVAILABLE": "没有可用的操作",
+        "ACTION": "《行动纲领》",
+        "EDIT_ANYCONDITION": "编辑条件",
+        "DELETE_ANYCONDITION": "删除条件",
+        "NEW_ANYCONDITION": "新条件",
+        "ADD_ANYCONDITION": "添加条件",
+        "EDIT_ALLCONDITION": "编辑条件",
+        "DELETE_ALLCONDITION": "删除条件",
+        "NEW_ALLCONDITION": "新条件",
+        "ADD_ALLCONDITION": "添加条件",
+        "EDIT_ACTION": "编辑操作",
+        "DELETE_ACTION": "“删除” 操作。",
+        "NEW_ACTION": "新的《行动纲领》",
+        "ADD_ACTION": "添加行动。",
+        "QUEUE": "队列",
+        "CALL_STATUS": "呼叫状态",
+        "OUTBOUND_ROUTE": "出站的路由",
+        "EQUALS": "等于",
+        "NOT_EQUALS": "不等于",
+        "CONTACT_MANAGER": "联系人管理器",
+        "INTEGRATIONS": "集成。",
+        "MOTION_BAR": "运动酒吧",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL 转发",
+        "WEB_POPUP": "网站弹出式窗口",
+        "LIST": "列表",
+        "INTEGRATION": "一体化",
+        "TEMPLATE": "模板。",
+        "URL": "URL。",
+        "APPLICATION": "应用程序",
+        "ARGUMENTS": "参数",
+        "NO_APPS_AVAILABLE": "没有可用的应用程序",
+        "NEW_INTERVAL": "新的间隔时间",
+        "OUTBOUNDROUTE": "出站的路由",
+        "OPERATOR": "操作员",
+        "NO_INTERVALS_AVAILABLE": "没有可用的时间间隔",
+        "YES": "是的",
+        "NO": "无",
+        "SUBJECT": "主题",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "BROWSER": "浏览器",
+        "INTERVAL": "时间间隔",
+        "INFO": "信息",
+        "TIME_RANGE": "时间范围",
+        "WEEK_DAYS": "周天",
+        "MONTH_DAYS": "月日",
+        "MONTHS": "个月",
+        "DROP_TO_UPLOAD_MESSAGE": "您也可以在这里音频上传。 只有 MP3、WAV, GSM -最大。 15MB",
+        "POLLING_INTERVAL": "轮询时间间隔(秒)",
+        "DASHBOARD": "仪表板",
+        "NEW_DASHBOARDITEM": "新的仪表板小部件",
+        "COUNTER": "计数器",
+        "IFRAME": "IFrame",
+        "CLOCK": "时钟",
+        "ADD_DASHBOARDITEM": "添加面板小工具",
+        "EDIT_WIDGET": "编辑窗口部件",
+        "DELETE_WIDGET": "删除窗口小部件",
+        "FLIP_WIDGET": "翻转小工具",
+        "TITLE": "标题",
+        "UPDATE": "更新。",
+        "LAYOUT": "布局",
+        "BACKGROUND_COLOR": "背景颜色",
+        "FOREGROUND_COLOR": "前景颜色",
+        "FOREGROUND_TITLE_COLOR": "前台标题的颜色",
+        "THEME": "主题",
+        "LIGHT": "指示灯",
+        "DARK": "深色",
+        "TIMEZONE": "时区",
+        "DIGITAL_FORMAT": "数字化的日期格式",
+        "TOOLS_QUERY": "查询",
+        "SELECT": "选择",
+        "WHERE": "在哪里",
+        "BACK": "返回",
+        "PROJECT": "项目",
+        "GOTOREALTIME_TRUNK": "转至实时中继线",
+        "GOTO_TRUNK": "转至中继线"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/tools/i18n/zh-TW.json b/public/app/main/apps/tools/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..643ae0a
--- /dev/null
@@ -0,0 +1,305 @@
+{
+    "TOOLS": {
+        "NAME": "名稱",
+        "TRUNKS": "中繼線運行",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "HOST_REQUIRED": "主機是必填欄位",
+            "DEFAULTUSER_REQUIRED": "預設的使用者為必填欄位",
+            "CALLERID_REQUIRED": "「來電者 ID 」為必填欄位",
+            "KEY_REQUIRED": "該金鑰為必填欄位",
+            "CONFIRM_NOT_MATCH": "密碼不符合 t",
+            "VALIDITYSTART_REQUIRED": "開始時間為必要資訊",
+            "VALIDITYEND_REQUIRED": "結束時間為必要資訊",
+            "MONTHDAY_REQUIRED": "月日為必填欄位",
+            "HOUR_REQUIRED": "小時為必填欄位",
+            "CONTENT_REQUIRED": "其內容為必填欄位",
+            "URL_REQUIRED": "「 URL 」為必填欄位",
+            "URL_MUST_VALID_URL": "URL 必須是有效的",
+            "APPLICATION_REQUIRED": "應用程式是必填欄位",
+            "ARGUUMENTS_REQUIRED": "引數為必填欄位",
+            "NAME_MUST_VALID_PATTERN": "名稱必須以有效的格式",
+            "ARGUMENTS_REQUIRED": "引數為必填欄位",
+            "POLLING_INTERVAL_REQUIRED": "輪詢間隔為必填欄位",
+            "TITLE_REQUIRED": "「職稱」為必填欄位"
+        },
+        "HOST": "主機",
+        "SECRET": "秘密",
+        "DEFAULTUSER": "預設的使用者",
+        "DESCRIPTION": "說明",
+        "ADD_TRUNK": "新增中繼線",
+        "HELP": {
+            "SECRET": "驗證密碼聯絡供應商。",
+            "HOST": "網域或主機名稱提供者。",
+            "DEFAULTUSER": "驗證使用者名稱聯繫供應商。",
+            "CALLERID": "「來電者 ID 」、「名稱」 < 號碼 >",
+            "REGISTRY": "主登錄字串所要求的某些供應商、通常 defaultuser : 秘密在主機上。",
+            "FROMDOMAIN": "設定預設值 : 網域的 SIP 訊息當作為 SIP ua ( 用戶端 ) 。 某些目的地可能會要求強制性識別名稱 ( 而非只是 IP 位址。",
+            "FROMUSER": "如何讓您的 rovider 知道您。 這是哪個使用者可將代替來電者 ID 在撥打電話到點 ( 另一 SIP 代理伺服器 ) 。 有效的類型 = 對等。",
+            "OUTBOUNDPROXY": "IP _ 位址或 DNS 伺服器名稱 ( 不含 _ SIP 。 _ UDP 首 ) : 伺服器名稱、主機名稱或 IP 位址的「外傳 SIP 代理伺服器。 傳送輸出訊號給此代理伺服器 , 而不是直接傳送至裝置。 有效的類型 = 對等。",
+            "PORT": "連接埠號碼我們想要連線到遠端。",
+            "CONTEXT": "弱點利用上下文的主幹。",
+            "TYPE": "決定 SIP 角色星號。 使用者 : 用於驗證傳入 - 點對點式 : 撥出電話 - 朋友 : 涵蓋了這兩個特徵的以上。",
+            "DTMFMODE": "如何 DTMF ( 配合多頻 (DTMF) ) 傳送 : RFC2833 : 預設的模式、 DTMF 傳送與 RTP 但外部音訊串流。 頻帶內 : DTMF 傳送音訊串流的目前的交談、成為聲音從揚聲器。 需要很高的 CPU 負載。 資訊 : 雖然這個方法是非常可靠、不受所有 PBX 裝置和許多 SIP 中繼線。",
+            "NAT": "改變行為之星號的用戶端防火牆後面。如果有任何逗點分隔選項為「否」 , 星號將會略過所有其他設定值和設定 NAT = No ( 否 ) 。",
+            "QUALIFY": "決定當 SIP 可達成。",
+            "ALLOWCODECS": "允許轉碼器的偏好設定。",
+            "INSECURE": "指定如何處理連線的同儕 , 讓安全性設定。",
+            "CALL_LIMIT": "限定數量的內傳與外傳通話的時間。",
+            "DIRECTMEDIA": "星號依預設會嘗試重新導向的 RTP 媒體串流到直接從您的來電者至受話者。 部分裝置不支援此 ( 特別是如果其中一台位於 NAT ) 。 預設的設定為「是」。 如果您有所有的用戶端在 NAT 、或其他原因而想要星號留在音效路徑 , 您可能要關閉此功能。",
+            "CALLCOUNTER": "啟用通話計數器的裝置。",
+            "ADD_PHONE_TO_URI": "定義如果供應商需要 ' ; 使用者 = 電話」在 URI 。",
+            "TRUST_REMOTE_PARTY_ID": "定義如果 Remote-Party ID 應該是可以信任的網站。",
+            "SEND_REMOTE_PARTY_ID_HEADER": "狀態",
+            "ENCRYPTION": "定義如果 Remote-Party ID 應該傳送 ( 預設為否 ) 。",
+            "TRANSPORT": "設定預設的傳輸。 醫令會決定主要預設傳輸。",
+            "OTHERFIELDS": "其他欄位以新增中繼 conf 檔。 是以星號標示格式 ( 按鍵 = 值 ) 、每個欄位在單一列。"
+        },
+        "EDIT_TRUNK": "編輯中繼線",
+        "DELETE_TRUNK": "刪除中繼線",
+        "CREATED_AT": "建立在",
+        "SETTINGS": "設定",
+        "ADVANCED": "進階",
+        "OTHER": "其他",
+        "ACTIVE": "作用中狀態",
+        "CONTEXT": "內容",
+        "CALLERID": "來電者 ID",
+        "TYPE": "類型",
+        "DTMFMODE": "DTMF 模式",
+        "NAT": "NAT",
+        "QUALIFY": "是否符合資格",
+        "ALLOWCODECS": "允許轉碼器",
+        "INSECURE": "不安全",
+        "REGISTRY": "登錄",
+        "DIRECTMEDIA": "直接列印材質",
+        "CALLCOUNTER": "呼叫計數",
+        "FROMDOMAIN": "從網域",
+        "FROMUSER": "從使用者",
+        "OUTBOUNDPROXY": "外傳代理",
+        "ADD_PHONE_TO_URI": "新增電話 URI",
+        "TRUST_REMOTE_PARTY_ID": "信任遠端廠商 ID",
+        "SEND_REMOTE_PARTY_ID_HEADER": "傳送遠端廠商 ID 標題",
+        "ENCRYPTION": "加密",
+        "PORT": "連接埠",
+        "TRANSPORT": "傳輸層",
+        "SAVE": "儲存",
+        "VARIABLES": "變數",
+        "ADD_VARIABLE": "新增變數",
+        "EDIT_VARIABLE": "編輯變數",
+        "DELETE_VARIABLE": "刪除變數",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "TAGS": "標籤",
+        "ADD_TAG": "新增標籤",
+        "EDIT_TAG": "編輯標示",
+        "DELETE_TAG": "刪除標籤",
+        "PAUSES": "暫停",
+        "ADD_PAUSE": "新增暫停",
+        "EDIT_PAUSE": "編輯暫停",
+        "DELETE_PAUSE": "刪除暫停",
+        "CANNEDANSWERS": "罐頭答案",
+        "ADD_CANNEDANSWER": "新增罐頭答案",
+        "EDIT_CANNEDANSWER": "編輯聯合附接聽",
+        "DELETE_CANNEDANSWER": "刪除罐頭答案",
+        "KEY": "金鑰",
+        "VALUE": "值",
+        "SOUNDS": "音效",
+        "EDIT_SOUND": "編輯音效",
+        "DELETE_SOUND": "刪除音效",
+        "FINISH": "完成",
+        "DROP_TO_UPLOAD": "拉上傳",
+        "TRIGGERS": "事件觸發器",
+        "EDIT_TRIGGER": "編輯觸發程式",
+        "DELETE_TRIGGER": "刪除觸發器",
+        "ADD_TRIGGER": "將觸發器",
+        "DELETE": "刪除",
+        "AUTOMATIONS": "Automations",
+        "EDIT_AUTOMATION": "編輯自動化",
+        "DELETE_AUTOMATION": "刪除自動化",
+        "ADD_AUTOMATION": "新增自動化",
+        "INTERVALS": "時間間隔",
+        "EDIT_INTERVAL": "編輯時間間隔",
+        "DELETE_INTERVAL": "刪除時間間隔",
+        "ADD_INTERVAL": "新增時間",
+        "TOOLS": "工具",
+        "ID": "Id",
+        "AUDIO": "音效",
+        "DOWNLOAD_SOUND": "下載音效",
+        "UPLOAD_SOUND": "工具",
+        "CHANNEL": "通道",
+        "NEW_TRIGGER": "新觸發器",
+        "GENERAL": "通用",
+        "STATUS": "狀態",
+        "CONDITIONS&ACTIONS": "條件與動作",
+        "ALLCONDITIONS": "滿足所有這些條件 :",
+        "ANYCONDITIONS": "符合上述任何一種狀況 :",
+        "ACTIONS": "動作 :",
+        "NEW_AUTOMATION": "新增自動化",
+        "TIMEOUT": "逾時",
+        "PEERSTATUS": "點狀態",
+        "CALL_LIMIT": "通話限制",
+        "OTHERFIELDS": "其他欄位",
+        "NEW_VARIABLE": "新變數",
+        "NEW_TAG": "新標籤",
+        "NEW_PAUSE": "新增暫停",
+        "NEW_CANNEDANSWER": "新罐頭答案",
+        "CONFIRM_PASSWORD": "確認密碼",
+        "NEW_TRUNK": "新幹線",
+        "FROM": "從",
+        "TO": "至",
+        "WEEKDAY": "週日",
+        "MONTHDAY": "月日",
+        "MONTH": "月份",
+        "ALWAYS": "永遠",
+        "MON": "星期一",
+        "TUE": "星期二",
+        "WED": "三",
+        "THU": "星期四",
+        "FRI": "星期五",
+        "SAT": "星期六",
+        "SUN": "星期日",
+        "JAN": "1 月 1 日",
+        "FEB": "2 月",
+        "MAR": "3 月",
+        "APR": "4 月",
+        "MAY": "可能",
+        "JUN": "6 月",
+        "JUL": "7 月",
+        "AUG": "8",
+        "SEP": "2008 年 9 月",
+        "OCT": "10",
+        "NOV": "11",
+        "DEC": "十二月",
+        "PASSWORD": "密碼",
+        "CUSTOMDASHBOARDS": "自訂的顯示面板",
+        "NEW_CUSTOMDASHBOARD": "新增自訂的顯示面板",
+        "ADD_CUSTOMDASHBOARD": "新增自訂的顯示面板",
+        "EDIT_CUSTOMDASHBOARD": "編輯自訂的顯示面板",
+        "DELETE_CUSTOMDASHBOARD": "刪除自訂的顯示面板",
+        "SCHEDULER": "排程器",
+        "NEW_SCHEDULE": "新增排程",
+        "ADD_SCHEDULE": "新增排程",
+        "EDIT_SCHEDULE": "編輯排程",
+        "DELETE_SCHEDULE": "刪除排程",
+        "SENDMAIL": "傳送郵件",
+        "CONFIGURATION": "組態設定",
+        "MAIL": "郵件",
+        "REPORTTYPE": "報告類型",
+        "REPORT": "報告",
+        "OUTPUT": "輸出",
+        "EXECUTEON": "執行",
+        "REPORTRANGE": "報告範圍",
+        "VALIDITYSTART": "開始時間",
+        "VALIDITYEND": "結束時間",
+        "EXECUTEEVERY": "執行每個",
+        "ACCOUNT": "帳號",
+        "EMAILADDRESS": "電子郵件位址",
+        "CURRENTDAY": "目前日",
+        "DAILY": "每天",
+        "WEEKLY": "每週一次",
+        "MONTHLY": "每月一次",
+        "PREVIOUS_DAY": "前一天",
+        "LAST_SEVEN_DAYS": "最後 7 天",
+        "LAST_THIRTY_DAYS": "最後 Thirthy 天",
+        "LAST_MONTH": "上個月",
+        "WEEKDAYS": "週日",
+        "HOUR": "小時",
+        "DEFAULT": "預設值",
+        "CSV": "CSV",
+        "PDF": "PDF",
+        "15MIN": "15 分鐘",
+        "30MIN": "30 分鐘",
+        "1H": "1 小時",
+        "VOICE": "語音通話",
+        "CHAT": "文字交談",
+        "SMS": "SMS ( 簡訊 )",
+        "OPENCHANNEL": "開放頻道",
+        "TEMPLATES": "範本",
+        "EDIT_TEMPLATE": "編輯範本",
+        "DELETE_TEMPLATE": "刪除範本",
+        "NEW_TEMPLATE": "新增範本",
+        "ADD_TEMPLATE": "新增範本",
+        "CONTENT": "內容",
+        "FIELD": "欄位",
+        "NO_ANYCONDITION_AVAILABLE": "沒有任何條件可供使用",
+        "NO_ALLCONDITION_AVAILABLE": "沒有任何條件可供使用",
+        "NO_ACTION_AVAILABLE": "沒有可用的動作",
+        "ACTION": "動作",
+        "EDIT_ANYCONDITION": "編輯條件",
+        "DELETE_ANYCONDITION": "刪除條件",
+        "NEW_ANYCONDITION": "新增條件",
+        "ADD_ANYCONDITION": "新增條件",
+        "EDIT_ALLCONDITION": "編輯條件",
+        "DELETE_ALLCONDITION": "刪除條件",
+        "NEW_ALLCONDITION": "新增條件",
+        "ADD_ALLCONDITION": "新增條件",
+        "EDIT_ACTION": "編輯動作",
+        "DELETE_ACTION": "刪除動作",
+        "NEW_ACTION": "新增動作",
+        "ADD_ACTION": "新增動作",
+        "QUEUE": "佇列",
+        "CALL_STATUS": "通話狀態",
+        "OUTBOUND_ROUTE": "外路由",
+        "EQUALS": "等於",
+        "NOT_EQUALS": "不就等於",
+        "CONTACT_MANAGER": "連絡人管理員",
+        "INTEGRATIONS": "整合",
+        "MOTION_BAR": "動作列",
+        "JSCRIPTY": "Jscripty",
+        "URL_FORWARD": "URL 轉寄",
+        "WEB_POPUP": "網頁快顯視窗",
+        "LIST": "清單",
+        "INTEGRATION": "整合",
+        "TEMPLATE": "範本",
+        "URL": "URL",
+        "APPLICATION": "應用程式",
+        "ARGUMENTS": "引數",
+        "NO_APPS_AVAILABLE": "無可用的應用程式",
+        "NEW_INTERVAL": "新稍候",
+        "OUTBOUNDROUTE": "外路由",
+        "OPERATOR": "操作員",
+        "NO_INTERVALS_AVAILABLE": "每隔一段時間未使用",
+        "YES": "Yes ( 是 )",
+        "NO": "沒有",
+        "SUBJECT": "主旨",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "BROWSER": "瀏覽器",
+        "INTERVAL": "時間間隔",
+        "INFO": "資訊",
+        "TIME_RANGE": "時間範圍",
+        "WEEK_DAYS": "週日",
+        "MONTH_DAYS": "月日",
+        "MONTHS": "個月",
+        "DROP_TO_UPLOAD_MESSAGE": "您也可以在下拉音效這裡上傳。 只有 MP 3 、 WAV 、 GSM - 最大。 15 MB",
+        "POLLING_INTERVAL": "輪詢間隔 ( 秒 )",
+        "DASHBOARD": "主控台",
+        "NEW_DASHBOARDITEM": "新的儀表板小工具",
+        "COUNTER": "計數器",
+        "IFRAME": "IFrame",
+        "CLOCK": "時脈速度",
+        "ADD_DASHBOARDITEM": "主控台新增小工具",
+        "EDIT_WIDGET": "編輯小工具",
+        "DELETE_WIDGET": "刪除小工具",
+        "FLIP_WIDGET": "翻蓋小工具",
+        "TITLE": "標題",
+        "UPDATE": "更新",
+        "LAYOUT": "版面配置",
+        "BACKGROUND_COLOR": "背景色彩",
+        "FOREGROUND_COLOR": "前景色彩",
+        "FOREGROUND_TITLE_COLOR": "前景標題色彩",
+        "THEME": "佈景主題",
+        "LIGHT": "指示燈",
+        "DARK": "暗",
+        "TIMEZONE": "時區",
+        "DIGITAL_FORMAT": "數位日期格式",
+        "TOOLS_QUERY": "查詢",
+        "SELECT": "選取",
+        "WHERE": "其中",
+        "BACK": "備份",
+        "PROJECT": "專案",
+        "GOTOREALTIME_TRUNK": "移至即時中繼線",
+        "GOTO_TRUNK": "跳到主幹"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/da.json b/public/app/main/apps/voice/i18n/da.json
new file mode 100644 (file)
index 0000000..90185e8
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Navnet",
+        "VOICEQUEUES": "Voice køer",
+        "SEARCH_FOR_ANYONE": "Søg efter alle",
+        "BACK": "Tilbage",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Vælg Alle",
+        "SELECT_NONE": "Vælg Ingen",
+        "DELETE_VOICEDISPOSITION": "Slet Disp.",
+        "EDIT_VOICEDISPOSITION": "Redigere en indstilling",
+        "EDIT_VOICEQUEUE": "Redigere en kø",
+        "DELETE_VOICEQUEUE": "Slet kø",
+        "MOHSOUNDS": "Moh lyde",
+        "STRATEGY": "Strategi",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_VOICEQUEUE": "Læg stemme kø",
+        "CREATED_AT": "Oprettet på",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er påkrævet",
+            "TIMEOUT_REQUIRED": "Timeout er påkrævet",
+            "PHONENUMBER_REQUIRED": "Telefonnummeret er påkrævet",
+            "CONTEXT_REQUIRED": "Konteksten er påkrævet",
+            "DESTINATIONPATTERN_REQUIRED": "Destinationen mønster er påkrævet",
+            "FULLNAME_REQUIRED": "Det fulde navn er påkrævet",
+            "EMAIL_REQUIRED": "E-mail er påkrævet",
+            "EMAIL_MUST_VALID": "E-mailen skal være skrevet i et gyldigt format",
+            "MAILBOX_REQUIRED": "Postkassen er påkrævet",
+            "PASSWORD_REQUIRED": "Adgangskoden kræves",
+            "CONFIRM_NOT_MATCH": "Adgangskoderne stemmer ikke overens",
+            "TIMEZONE_REQUIRED": "Tidszonen er påkrævet",
+            "PREFIX_REQUIRED": "Præfikset er påkrævet",
+            "OPTIONS_REQUIRED": "Mulighederne er påkrævet",
+            "AFTERCALLWORKDURATION_REQUIRED": "Det Efterarbejde varighed er påkrævet",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Teknologien/ressource er påkrævet",
+            "PHONE_REQUIRED": "Telefonen er påkrævet",
+            "VALUE_REQUIRED": "Værdien er nødvendig",
+            "EXTENSION_REQUIRED": "Den udvidelse er nødvendig",
+            "PRIORITY_REQUIRED": "Indsatsen er påkrævet",
+            "NAME_MUST_VALID_PATTERN": "Navnet skal være skrevet i et gyldigt format",
+            "APPLICATION_REQUIRED": "Ansøgningen skal udfyldes",
+            "APPLICATION_NAME_REQUIRED": "Programnavnet er påkrævet"
+        },
+        "GENERAL": "Generel",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Maksimal længde",
+        "RETRY": "Prøv igen",
+        "WRAPUPTIME": "Afslutningstiden",
+        "WEIGHT": "Vægt",
+        "JOINWHENEMPTY": "Deltag når tom",
+        "LEAVEWHENEMPTY": "Lad når tom",
+        "HELP": {
+            "TIMEOUT": "Angiver antallet af sekunder for at ringe med et medlems enhed.",
+            "MAXLENGTH": "Angiver det maksimale antal personer tilladt at vente i en kø. Værdien nul betyder ubegrænset antal opkald er tilladt i køen.",
+            "RETRY": "Angiver det antal sekunder, der skal ventes før den næste i køen hvis filtimeout er opbrugt, mens man forsøger at ringe op til en anden i køen.",
+            "WRAPUPTIME": "Antallet af sekunder for at holde medlem utilgængelig i en kø efter et opkald.",
+            "WEIGHT": "Definerer vægten af en kø. En kø med en højere vægt vil få førsteprioritet, når medlemmer er tilknyttet flere køer.",
+            "JOINWHENEMPTY": "Bestemmer, om en person er føjet til køen, når medlemmerne ikke er tilgængelige.",
+            "LEAVEWHENEMPTY": "Bruges til at kontrollere, om personer er sparket ud af køen, når medlemmer ikke længere er tilgængelig til at modtage opkald.",
+            "ANNOUNCEFREQUENCY": "Angiver, hvor ofte vi skal annoncere opkaldets position og/eller anslået ventetid i køen. Sæt værdien til 0 for at deaktivere.",
+            "MINANNOUNCEFREQUENCY": "Angiver den minimale mængde tid, der skal gå, inden vi annoncerer kaldets placering i køen igen. Dette bruges når den opkaldendes position kan skifte hyppigere for at undgå personen høre flere opdateringer i en kort periode.",
+            "PERIODICANNOUNCEFREQUENCY": "Angiver, hvor ofte vi skal foretage regelmæssige beskeder til personen.",
+            "ANNOUNCEPOSITIONLIMIT": "Hvis du har defineret announce-position som enten begrænser eller mere.",
+            "AFTERCALLWORKDURATION": "Varigheden af pausen startet af Efterarbejde indstilling",
+            "MEMBERDELAY": "Hvis du ønsker, at der skal være en forsinkelse før personen, og køen kan være forbundet med hinanden.",
+            "MUSICONHOLD": "Sæt musikken klasse, der skal bruges ved en bestemt kø.",
+            "ANNOUNCETOAGENT": "Bruges til at spille en bekendtgørelse til agenten, der besvarede opkaldet, typisk at lade ham vide, hvad køen personen kommer fra.",
+            "RANDOMPERIODICANNOUNCE": "Hvis sat til ja, vil spille de definerede regelmæssige beskeder i en tilfældig rækkefølge.",
+            "ANNOUNCEHOLDTIME": "Definerer om den anslåede ventetid bør spilles sammen med regelmæssige beskeder.",
+            "ANNOUNCECALLERPOSITION": "Definerer om opkaldets position i køen, skal du oplyse til hende. Hvis der ingen holdning vil aldrig blive offentliggjort. Hvis sat til Ja, opkaldets position vil altid blive annonceret. Hvis værdien er indstillet til grænsen, der ringer, høre hendes position i køen, hvis det er inden for rammerne defineret ved at annoncere stillinger-grænsen. Hvis værdien er mere vedkommende, der ringer, høre hendes holdning, hvis det overstiger det antal, der er defineret ved at annoncere stillinger-grænsen.",
+            "REPORTHOLDTIMEAGENT": "Gør rapportering på kalderens holdetid til køen medlem forud for brobygning.",
+            "PERIODICANNOUNCE": "En række regelmæssige beskeder der skal spilles, spilles i den rækkefølge, som de er defineret.",
+            "HOLDTIMEANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"hold\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "YOUARENEXTANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"You are now first in line\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "THEREAREANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"Er\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "WAITINGCALLSANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"ventende opkald\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"Den anslåede aktuelle hold-tid\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "MINUTESANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"protokollen\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "MINUTEANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"minut\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "SECONDSANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"sekunder\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "THANKYOUANNOUNCE": "Hvis der ikke er defineret, vil spille standardværdien (\"Tak for jeres tålmodighed\"). Hvis indstillet til en tom værdi, spørg ikke afspilles overhovedet.",
+            "AFTERCALLWORK": "Hvis aktiv, vil agenten blive sat på pause efter et afsluttet opkald i kø",
+            "AUTOPAUSE": "Aktiverer/deaktiverer automatisk afbrydelse af medlemmer der undlader at besvare et opkald. Hvis aktiv, skyldes det, at der holdes pause i alle køer, han er medlem af.",
+            "RINGINUSE": "Bruges til at undgå at sende opkald til medlemmer, hvis status er i brug.",
+            "TIMEOUTRESTART": "Hvis sat til Ja, nulstiller timeout for en agent at besvare hvis enten optaget eller overbelastning status modtages fra kanalen.",
+            "MONITORFORMAT": "Angiver filformatet til brug ved optagelse. Hvis skærm-format er inaktiv, vil ikke blive registreret.",
+            "CONTEXT": "Gør det muligt for en person at forlade køen ved at trykke en enkelt DTMF ciffer. Hvis en sammenhæng er specificeret, og opkalderen indtaster en række tal, som vil prøve at blive matchet i forbindelse angivet, og opkaldsplanen udførelsen fortsætter der.",
+            "SETINTERFACEVARIABLES": "Hvis sat til ja, lige inden de ringer, er forbundet med en kø-nogle variabler bliver sat(se wiki)",
+            "SETQUEUEVARIABLES": "Hvis sat til ja, lige inden de ringer, er forbundet med en anden kø og lige inden personen forlader køen nogle variabler bliver sat(se wiki)",
+            "SETQUEUEENTRYVARIABLES": "Hvis sat til ja, lige inden de ringer, er forbundet med en kø-nogle variabler bliver sat(se wiki)",
+            "RECORDING": "Aktivering af optagelse af opkald",
+            "VOICEMAIL_CONTEXT": "På baggrund af den relative forlængelse."
+        },
+        "MUSICONHOLD": "Musik ved parkeret opkald",
+        "ANNOUNCETOAGENT": "Annoncere til agent",
+        "ANNOUNCEMENTS": "Spots",
+        "ADVANCED": "Avanceret",
+        "ANNOUNCEFREQUENCY": "Annoncere frekvens",
+        "MINANNOUNCEFREQUENCY": "Annoncere Frekvens min.",
+        "PERIODICANNOUNCEFREQUENCY": "Periodisk Annoncere frekvens",
+        "RANDOMPERIODICANNOUNCE": "Tilfældige periodiske annoncere",
+        "ANNOUNCEHOLDTIME": "Annoncere parkeret tid",
+        "ANNOUNCECALLERPOSITION": "Annoncere Opkalds Position",
+        "ANNOUNCEPOSITIONLIMIT": "Annoncere bordposition",
+        "REPORTHOLDTIMEAGENT": "Rapporten Agent parkeret tid",
+        "PERIODICANNOUNCE": "Periodisk annoncere",
+        "HOLDTIMEANNOUNCE": "Parkeret tid annoncere",
+        "YOUARENEXTANNOUNCE": "\"Du er næste\" annoncere",
+        "THEREAREANNOUNCE": "'Der er' annoncere",
+        "WAITINGCALLSANNOUNCE": "Ventende opkald annoncere",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Estimeret Parkeringstid annoncere",
+        "MINUTESANNOUNCE": "Minutter præsentere",
+        "MINUTEANNOUNCE": "Minut annoncere",
+        "SECONDSANNOUNCE": "Sekunder annoncere",
+        "THANKYOUANNOUNCE": "Tak annoncere",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Efter Opkaldsarbejde",
+        "AFTERCALLWORKDURATION": "Efterarbejde varighed",
+        "RINGINUSE": "Ringen er i brug",
+        "MEMBERDELAY": "Medlem forsinkelse",
+        "TIMEOUTRESTART": "Timeout genstart",
+        "MONITORFORMAT": "Optagelsesformat",
+        "SETINTERFACEVARIABLES": "Indstil brugerflade variabler",
+        "SETQUEUEVARIABLES": "Sæt Kø variabler",
+        "SETQUEUEENTRYVARIABLES": "Indstil Queue Entry variabler",
+        "CONTEXT": "Kontekst",
+        "SAVE": "Gem",
+        "SETTINGS": "Indstillinger",
+        "INBOUNDROUTES": "Indkommende ruter",
+        "PHONENUMBER": "Telefonnummer",
+        "ADD_INBOUNDROUTE": "Tilføj Inbound Route",
+        "EDIT_INBOUNDROUTE": "Rediger indgående rute",
+        "DELETE_INBOUNDROUTE": "Slet indgående rute",
+        "ACTIONS": "Handlinger",
+        "OUTBOUNDROUTES": "Udgående ruter",
+        "DESTINATIONPATTERN": "Destination mønster",
+        "ADD_OUTBOUNDROUTE": "Tilføj Udgående rute",
+        "EDIT_OUTBOUNDROUTE": "Rediger udgående rute",
+        "DELETE_OUTBOUNDROUTE": "Slette Udgående rute",
+        "CUTDIGITS": "Skær cifre",
+        "RECORDING": "Optagelse",
+        "RECORDINGFORMAT": "Optagelsesformat",
+        "INTERNALROUTES": "Indenrigsruter",
+        "ADD_INTERNALROUTE": "Tilføj intern rute",
+        "EDIT_INTERNALROUTE": "Rediger Intern rute",
+        "DELETE_INTERNALROUTE": "Slette Intern rute",
+        "CONTEXTS": "Sammenhænge",
+        "ADD_CONTEXT": "Føjer kontekst",
+        "EDIT_CONTEXT": "Rediger forbindelse",
+        "DELETE_CONTEXT": "Slette rammer",
+        "VOICEMAILS": "Voicemails",
+        "ADD_VOICEMAIL": "Tilføj Voicemail",
+        "EDIT_VOICEMAIL": "Rediger Voicemail",
+        "DELETE_VOICEMAIL": "Slette Voicemail",
+        "FULLNAME": "Fulde navn",
+        "EMAIL": "Email",
+        "MAILBOX": "Postkasse",
+        "PASSWORD": "Password",
+        "CONFIRM_PASSWORD": "Bekræft adgangskode",
+        "TIMEZONE": "Tidszone",
+        "ATTACH": "Fastgør",
+        "ENVELOPE": "Kuvert",
+        "DELETE": "Slet",
+        "EMAILBODY": "Email Body",
+        "EMAILSUBJECT": "E-mail emne",
+        "MAXSECONDS": "Max sekunder",
+        "MAXMESSAGES": "Max meddelelser",
+        "MESSAGES": "Meddelelser",
+        "SORT": "Sorter",
+        "ADD_MUSICONHOLD": "Tilføj musik på hold",
+        "MUSICONHOLDS": "Bifag i venteposition",
+        "EDIT_MUSICONHOLD": "Rediger musik på hold",
+        "DELETE_MUSICONHOLD": "Slette musik på hold",
+        "DIRECTORY": "Kategorier",
+        "AUDIOFILES": "Lydfiler",
+        "RECORDINGS": "Optagelser",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Præfiks",
+        "OPTIONS": "Valgmuligheder",
+        "AUTH": "Godk.",
+        "ADD_CHANSPY": "Tilføj ChanSpy",
+        "EDIT_CHANSPY": "Rediger ChanSpy",
+        "DELETE_CHANSPY": "Slet ChanSpy",
+        "AGENTS": "Agenter",
+        "TELEPHONES": "Telefoner",
+        "QUEUES": "Køer",
+        "QUEUE_CALLS": "Opkald i kø",
+        "QUEUE_PARAMETERS": "Køen parametre",
+        "ABANDONED_CALLS": "Afbrudte opkald",
+        "OUTBOUND_CALLS": "Udgående opkald",
+        "AGI": "AGI",
+        "DIAL": "Dial",
+        "INTERNALDIAL": "Interne opkald",
+        "EXTERNALDIAL": "Eksterne opkald",
+        "RINGGROUP": "Ring gruppe",
+        "PLAYBACK": "Afspilning",
+        "QUEUE": "Kø",
+        "SET": "Indstil",
+        "VOICEMAIL": "Telefonsvarer",
+        "GOTO": "GoTo",
+        "HANGUP": "Hangup",
+        "CUSTOM": "Brugerdefineret",
+        "PROJECT": "Cally-Square projekt",
+        "TECHNOLOGY/RESOURCE": "Teknologi/Ressource",
+        "URL": "URL",
+        "EDIT_APP": "Redigeringsprogram",
+        "EDIT_INTERVAL": "Rediger interval",
+        "DELETE_APP": "Sletteprogrammer",
+        "INTERVALS": "Mellemrum",
+        "USER": "Bruger",
+        "TRUNK": "Trunk",
+        "PHONE": "Telefonen",
+        "AUDIO_FILES": "Lydfiler",
+        "ANNOUNCE_OVERRIDES": "Annoncere tilsidesætter",
+        "MACRO": "Makro",
+        "GOSUB": "GoSub",
+        "RULE": "Regel",
+        "POSITION": "Position",
+        "ANSWER": "Svar",
+        "VALUE": "Værdi",
+        "MAILBOX@CONTEXT": "Postkasse@sammenhæng",
+        "EXTENSION": "Udvidelse",
+        "PRIORITY": "Prioritet",
+        "HANGUP_CAUSE": "Hangup årsag",
+        "OUTBOUNDDIAL": "Udgående opkald",
+        "CALLER_ID": "Nummervisning",
+        "NO_MESSAGE_AVAILABLE": "Der findes ingen meddelelser",
+        "NO_SOUND_AVAILABLE": "Ingen lyde tilgængelige",
+        "VOICERECORDINGS": "Stemmeoptagelser",
+        "CHANSPIES": "Chan Spies",
+        "VOICE": "Voice",
+        "REALTIME": "Realtime",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Kontekst",
+        "NO_MOHSOUND_AVAILABLE": "Ingen musik på Hold til rådighed",
+        "FILE": "Fil",
+        "ADD_MOHSOUND": "Tilføj musik på Hold lyd",
+        "DOWNLOAD_MOHSOUND": "Download musik på Hold lyd",
+        "DELETE_MOHSOUND": "Slette musik på Hold lyd",
+        "UNIQUEID": "Unikt ID",
+        "AGENT": "Agent",
+        "TYPE": "Type",
+        "RATING": "Rating",
+        "AUDIO": "Audio",
+        "DATE": "Dato",
+        "NEW_VOICEQUEUE": "Nye voicemail kø",
+        "NEW_INBOUNDROUTE": "Nye indkommende rute",
+        "NEW_OUTBOUNDROUTE": "Nye Udgående rute",
+        "NEW_INTERNALROUTE": "Nye interne rute",
+        "NEW_CONTEXT": "Ny forbindelse",
+        "NEW_VOICEMAIL": "Nye voicemail",
+        "NEW_MUSICONHOLD": "Ny musik på hold",
+        "NEW_CHANSPY": "Nye ChanSpy",
+        "PENALTY": "Straf",
+        "ADD_TEAM_TO_VOICEQUEUE": "Føj holdet til Voice kø",
+        "ADD_AGENT_TO_VOICEQUEUE": "Tilføj til kø Agent Voice",
+        "EDIT_DIAL": "Rediger Dial",
+        "EDIT_AGI": "Rediger AGI",
+        "EDIT_INTERNALDIAL": "Rediger Intern Dial",
+        "EDIT_EXTERNALDIAL": "Rediger eksternt opkald",
+        "EDIT_RINGGROUP": "Rediger Ring gruppe",
+        "EDIT_PLAYBACK": "Videoredigering",
+        "EDIT_QUEUE": "Rediger kø",
+        "EDIT_SET": "Rediger Indstil",
+        "EDIT_GOTO": "Rediger GoTo",
+        "EDIT_HANGUP": "Rediger Hangup",
+        "EDIT_CUSTOM": "Rediger brugerdefineret",
+        "DURATION": "Varighed",
+        "RECEIVED_AT": "Modtaget på",
+        "YES": "Ja",
+        "NO": "Ingen",
+        "HANGUPCAUSE_1": "1 = Ikke tildelte nummer",
+        "HANGUPCAUSE_16": "16 = Normail opkaldsfrigivelse",
+        "HANGUPCAUSE_17": "17 = Bruger optaget",
+        "HANGUPCAUSE_18": "18 = Ingen brugersvar (telehone enhed ikke tilsluttet).",
+        "HANGUPCAUSE_21": "21 = afvist opkald",
+        "HANGUPCAUSE_22": "22 = Antal ændret",
+        "HANGUPCAUSE_27": "27 = Destination ikke i drift",
+        "HANGUPCAUSE_38": "38 = Netværk ude af drift",
+        "HANGUPCAUSE_41": "41 = midlertidig fejl",
+        "RANDOM": "Tilfældig",
+        "ALPHABETICAL": "Alfabetisk",
+        "NO_APPS_AVAILABLE": "Ingen mulige applikationer",
+        "DOWNLOAD_VOICERECORDING": "Download stemmeoptagelse",
+        "DELETE_VOICERECORDING": "Slette Taleoptagelser",
+        "INTERNAL": "Intern",
+        "PHONE_STATE": "Telefonens tilstand",
+        "PHONE_STATUS": "Telefonstatus",
+        "REGISTERED": "Registreret",
+        "UNREGISTERED": "Uregistreret",
+        "LAGGED": "Laggede",
+        "REACHABLE": "Nås",
+        "UNREACHABLE": "Ikke tilgængelig",
+        "UNKNOWN": "Ukendt",
+        "NOT_INUSE": "Ikke i brug",
+        "INUSE": "I BRUG",
+        "BUSY": "Optaget",
+        "INVALID": "Ugyldig",
+        "UNAVAILABLE": "Ikke tilgængelig",
+        "RINGING": "Ringer",
+        "ONHOLD": "Parkeret",
+        "RING": "Ring",
+        "UP": "Op",
+        "INFO": "Info",
+        "TRUNKS": "Trunks",
+        "REGISTRY": "Registry",
+        "NO_REGISTRY": "Ingen registreringsdatabase",
+        "LOGGED_IN": "Logget ind",
+        "PAUSED": "Pause",
+        "WAITING": "Ventende",
+        "TALKING": "Samtale",
+        "DID": "Vidste",
+        "CALLER": "Opkalder",
+        "TOTAL": "Total",
+        "ANSWERED": "Besvaret",
+        "ABANDONED": "Afbrudt",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "Gennemsnitlig parkeringstid",
+        "AVG_DURATION": "Av varighed",
+        "AVG_BILLABLE": "Avg fakturerbare",
+        "SOURCE": "Kilde",
+        "DESTINATION": "Destination",
+        "REJECTED": "Afvist",
+        "FAILED": "Mislykkedes",
+        "CALLED": "Kaldet",
+        "CONNECTED": "Tilsluttet",
+        "NO_RATING": "Ingen bedømmelse",
+        "EDIT_VOICERECORDING": "Rediger stemmeoptagelse",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Custom application."
+        },
+        "APPLICATION_NAME": "Programnavn",
+        "ARGUMENTS": "Argumenter",
+        "NO_AVAILABLE_INFO": "Der er ingen tilgængelig info",
+        "ADD_AGENT_TO_QUEUE": "Tilføj til kø",
+        "DEFAULT_PAUSE": "Standard PAUSE",
+        "PAUSE": "Pause",
+        "UNPAUSE": "Unpause",
+        "REDIRECT_TO_NUMBER": "Omdiriger til nummer",
+        "REDIRECT_TO_AGENT": "Omdiriger til agent",
+        "AGENTADD_VOICEQUEUE": "Tilføj til kø agent voice",
+        "APPLICATION": "Anvendelse",
+        "FILES": "Filer",
+        "FORMAT": "Format",
+        "MODE": "Mode",
+        "RECORD": "Registrer",
+        "TEAMADD_VOICEQUEUE": "Føj holdet til voicequeue",
+        "NEW_MOHSOUND": "Ny musik på Hold lyd",
+        "DOWNLOAD_MESSAGE": "Download",
+        "DELETE_MESSAGE": "Slet",
+        "QUEUE_PARAMS": "Køen parametre",
+        "TOTAL_OFFERED": "Samlet udbydes",
+        "READY": "Klar",
+        "AGENTADD_QUEUE": "Tilføj Agent til voice køer",
+        "AGENTSADD_QUEUE": "Tilføj til kø stemme",
+        "ALL_TEAMS": "Alle hold",
+        "SELECTED_TEAMS": "Udvalgte Teams",
+        "ALL_AGENTS": "Alle agenter",
+        "SELECTED_AGENTS": "Udvalgte agenter",
+        "CLOSING": "Lukning",
+        "TAGS": "Tags",
+        "WAITING_FOR_AGENTS": "Ventende for agenter",
+        "EDIT_OUTBOUNDDIAL": "Rediger udgående opkald",
+        "VARIABLE": "Variabel",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Kan ikke afspille lydfiler gsm",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "Log af",
+        "TRUNK_STATUS": "Trunk Status",
+        "WAITING_FOR_AGENT": "Ventende for agenter",
+        "ACCOUNTNAME": "Kontonavn"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/de.json b/public/app/main/apps/voice/i18n/de.json
new file mode 100644 (file)
index 0000000..072ea18
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Name",
+        "VOICEQUEUES": "Voice Warteschlangen",
+        "SEARCH_FOR_ANYONE": "Suche für Jedermann",
+        "BACK": "Zurück",
+        "SELECTED": "Ausgewählte",
+        "SELECT_ALL": "Alle auswählen",
+        "SELECT_NONE": "Wählen Sie \"Keine\"",
+        "DELETE_VOICEDISPOSITION": "Disposition löschen",
+        "EDIT_VOICEDISPOSITION": "Edit Voice Disposition",
+        "EDIT_VOICEQUEUE": "Edit Voice Warteschlange",
+        "DELETE_VOICEQUEUE": "Warteschlange löschen",
+        "MOHSOUNDS": "Die MOH-Sounds",
+        "STRATEGY": "Strategie",
+        "DESCRIPTION": "Beschreibung",
+        "ADD_VOICEQUEUE": "Hinzufügen von Warteschlangen",
+        "CREATED_AT": "Erstellt am",
+        "ERRORS": {
+            "NAME_REQUIRED": "Der Name ist erforderlich",
+            "TIMEOUT_REQUIRED": "Der Timeout ist erforderlich",
+            "PHONENUMBER_REQUIRED": "Die Telefonnummer ist erforderlich",
+            "CONTEXT_REQUIRED": "Der Rahmen ist erforderlich",
+            "DESTINATIONPATTERN_REQUIRED": "Das Ziel-pattern ist erforderlich",
+            "FULLNAME_REQUIRED": "Der vollständige Name ist erforderlich",
+            "EMAIL_REQUIRED": "Die E-Mail ist erforderlich",
+            "EMAIL_MUST_VALID": "Die e-Mail muss in einem gültigen Format",
+            "MAILBOX_REQUIRED": "Die Mailbox ist erforderlich",
+            "PASSWORD_REQUIRED": "Das Kennwort ist erforderlich",
+            "CONFIRM_NOT_MATCH": "Die Kennwörter stimmen nicht überein.",
+            "TIMEZONE_REQUIRED": "Die Zeitzone ist erforderlich",
+            "PREFIX_REQUIRED": "Das Präfix ist erforderlich",
+            "OPTIONS_REQUIRED": "Die Optionen sind Erforderlich",
+            "AFTERCALLWORKDURATION_REQUIRED": "Die Arbeit nach Anruf Dauer ist erforderlich",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Die Technologie/Ressource erforderlich ist",
+            "PHONE_REQUIRED": "Die Telefonnummer ist erforderlich",
+            "VALUE_REQUIRED": "Der Wert ist erforderlich",
+            "EXTENSION_REQUIRED": "Die Verlängerung ist erforderlich",
+            "PRIORITY_REQUIRED": "Die Priorität ist erforderlich",
+            "NAME_MUST_VALID_PATTERN": "Der Name muss in einem gültigen Format geschrieben werden",
+            "APPLICATION_REQUIRED": "Die Anwendung ist erforderlich",
+            "APPLICATION_NAME_REQUIRED": "Der Name der Anwendung ist erforderlich"
+        },
+        "GENERAL": "Allgemein",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Maximale Länge",
+        "RETRY": "Versuchen Sie es erneut",
+        "WRAPUPTIME": "-Zeit",
+        "WEIGHT": "Gewicht",
+        "JOINWHENEMPTY": "Melden Sie wenn sie leer sind",
+        "LEAVEWHENEMPTY": "Wenn sie leer lassen",
+        "HELP": {
+            "TIMEOUT": "Gibt die Anzahl von Sekunden an, die das Gerät.",
+            "MAXLENGTH": "Gibt die maximale Anzahl der Anrufer, die in der Warteschlange. Ein Wert von Null bedeutet, dass eine unbegrenzte Anzahl von Anrufern in der Warteschlange sind erlaubt.",
+            "RETRY": "Gibt die Anzahl der Sekunden, die gewartet wird, bevor das nächste Mitglied in die Warteschlange, wenn der Wert für die Zeitüberschreitung erschöpft ist, während versucht wird, den ein Mitglied der Warteschlange.",
+            "WRAPUPTIME": "Die Anzahl der Sekunden, die ein Mitglied in einer Warteschlange verfügbar, nachdem Sie einen Anruf.",
+            "WEIGHT": "Legt das Gewicht einer Warteschlange. Eine Warteschlange mit einem höheren Gewicht definiert werden erste Priorität, wenn Mitglieder, die mit mehreren Warteschlangen.",
+            "JOINWHENEMPTY": "Steuert, ob ein Anrufer wird zur Warteschlange hinzugefügt werden, wenn keine Mitglieder verfügbar sind.",
+            "LEAVEWHENEMPTY": "Zur Kontrolle, ob die Anrufer aus der Warteschlange, wenn die Mitglieder nicht mehr bereit sind, Anrufe zu beantworten.",
+            "ANNOUNCEFREQUENCY": "Legt fest, wie oft sollten wir den Anrufer ankündigen und/oder geschätzte Wartezeit in der Warteschlange. Setzen Sie diesen Wert auf Null, um die Funktion zu deaktivieren.",
+            "MINANNOUNCEFREQUENCY": "Gibt die minimale Zeit, die verstreichen müssen, bevor wir Ihnen die Anrufer in der Warteschlange wieder. Dieser wird verwendet, wenn der Anrufer die Position kann sich häufig ändern, um zu verhindern, dass der Anrufer hören mehrere Updates in einem kurzen Zeitraum.",
+            "PERIODICANNOUNCEFREQUENCY": "Gibt an, wie oft wir sollten regelmäßige Ansagen, die dem Anrufer vorgespielt werden.",
+            "ANNOUNCEPOSITIONLIMIT": "Sie kann verwendet werden, wenn Sie definiert haben, verkünden-Position entweder als Begrenzung oder mehr.",
+            "AFTERCALLWORKDURATION": "Die Dauer der Pause durch die Option \"Arbeit nach Anruf",
+            "MEMBERDELAY": "Sie kann verwendet werden, wenn Sie wollen, dass es eine Verzögerung, bevor der Anrufer und Mitglied der Warteschlange, die miteinander verbunden sind.",
+            "MUSICONHOLD": "Setzt die Musik klasse verwendet werden, die von einer bestimmten Warteschlange an.",
+            "ANNOUNCETOAGENT": "Für die Wiedergabe einer Ansage auf den Agenten, der den Anruf entgegengenommen hat, ihn wissen zu lassen, was der Anrufer die Warteschlange aus.",
+            "RANDOMPERIODICANNOUNCE": "Falls auf Ja eingestellt, wird die festgelegte regelmäßige Mitteilungen in einer zufälligen Reihenfolge.",
+            "ANNOUNCEHOLDTIME": "Legt fest, ob die geschätzte Wartezeit gespielt werden sollte zusammen mit den regelmäßigen Ankündigungen.",
+            "ANNOUNCECALLERPOSITION": "Legt fest, ob es sich bei dem Anrufer seine Position in der Warteschlange mitgeteilt werden sollten. Wenn die Einstellung Nein lautet, die Position wird nicht bekannt gegeben. Falls auf Ja eingestellt, wird die Position des Anrufers wird immer bekannt gegeben. Wenn der Wert überschritten wird, wird der Anrufer hört ihre Position in der Warteschlange nur, wenn er sich innerhalb der Grenze von AK-Position. Wenn der Wert auf Mehr, hört der Anrufer ihre Position, wenn es über die Zahl von AK-Position.",
+            "REPORTHOLDTIMEAGENT": "Die Berichterstattung über die CLI des Anrufers mit der Zeit in der Warteschleife in der Warteschlange vor.",
+            "PERIODICANNOUNCE": "Eine Reihe von regelmäßigen Mitteilungen gespielt zu werden, in der Reihenfolge wiedergegeben, in der sie definiert sind.",
+            "HOLDTIMEANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Hold\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+            "YOUARENEXTANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Sie sind jetzt in erster Linie\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+            "THEREAREANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Es gibt\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+            "WAITINGCALLSANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Wartende Anrufe\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Die voraussichtliche Wartezeit ist\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+            "MINUTESANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"min\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+            "MINUTEANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"min\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+            "SECONDSANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Sekunden\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+            "THANKYOUANNOUNCE": "Wenn nicht definiert, wird die Standardeinstellung (\"Vielen Dank für Ihre Geduld.\"). Wenn Sie auf einen leeren Wert, wird die Aufforderung werden nicht gespielt.",
+            "AFTERCALLWORK": "Wenn der Agent aktiv ist, wird auf eine Pause nach einer abgeschlossenen Anruf in der Warteschlange",
+            "AUTOPAUSE": "Aktiviert/Deaktiviert die automatische Unterbrechung der Mitglieder, die es versäumen, um einen Anruf zu beantworten. Wenn aktiv, wird diese Mitgliedstaaten angehalten zu werden in allen Warteschlangen er Mitglied ist.",
+            "RINGINUSE": "Verwendet werden, um zu vermeiden, Senden von Anrufen an Mitglieder, deren Status im Einsatz ist.",
+            "TIMEOUTRESTART": "Falls auf Ja eingestellt, wird das Timeout für einen Agenten zu beantworten, wenn entweder ein Besetztzeichen oder wird mit dem Status \"Überlastung des Kanals.",
+            "MONITORFORMAT": "Gibt das Dateiformat zu verwenden, wenn die Aufnahme. Wenn der Monitor-Format deaktiviert ist, werden die Anrufe nicht aufgezeichnet werden.",
+            "CONTEXT": "Ermöglicht einem Anrufer zu beenden, die die Warteschlange durch Drücken einer einzigen Taste MFV-Ziffer. Wenn Sie einen Kontext angegeben ist und der Anrufer gibt eine Zahl, Ziffer wird versuchen, die angepasst werden können, im Rahmen festgelegt, und es wird auch weiterhin die Ausführung Nummernplan.",
+            "SETINTERFACEVARIABLES": "Falls auf Ja eingestellt, kurz vor dem Anrufer, die mit einer Warteschlange, die einige Variablen werden(siehe wiki)",
+            "SETQUEUEVARIABLES": "Falls auf Ja eingestellt, kurz vor dem Anrufer, die mit einer Warteschlange und kurz vor dem Anrufer die Warteschlange verlassen einige Variablen werden(siehe wiki)",
+            "SETQUEUEENTRYVARIABLES": "Falls auf Ja eingestellt, kurz vor dem Anrufer, die mit einer Warteschlange, die einige Variablen werden(siehe wiki)",
+            "RECORDING": "Aktivieren der Aufzeichnung",
+            "VOICEMAIL_CONTEXT": "Im Rahmen der relativen Erweiterung."
+        },
+        "MUSICONHOLD": "Musik auf Halten",
+        "ANNOUNCETOAGENT": "Geben Sie Agent",
+        "ANNOUNCEMENTS": "Ankündigungen",
+        "ADVANCED": "Erweiterte",
+        "ANNOUNCEFREQUENCY": "Frequenz ankündigen",
+        "MINANNOUNCEFREQUENCY": "Minimale Frequenz ankündigen",
+        "PERIODICANNOUNCEFREQUENCY": "Periodische Frequenz ankündigen",
+        "RANDOMPERIODICANNOUNCE": "Random Periodische verkünden",
+        "ANNOUNCEHOLDTIME": "Geben Sie Zeit",
+        "ANNOUNCECALLERPOSITION": "Position des Anrufers bekannt",
+        "ANNOUNCEPOSITIONLIMIT": "Geben Position Limit",
+        "REPORTHOLDTIMEAGENT": "Bericht Agenten",
+        "PERIODICANNOUNCE": "Periodische verkünden",
+        "HOLDTIMEANNOUNCE": "Zeit in der Warteschleife verkünden",
+        "YOUARENEXTANNOUNCE": "\"Sie sind weiter' verkünden",
+        "THEREAREANNOUNCE": "'Es gibt' verkünden",
+        "WAITINGCALLSANNOUNCE": "Wartende Anrufe,",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Geschätzte Zeit halten,",
+        "MINUTESANNOUNCE": "Minuten ankündigen",
+        "MINUTEANNOUNCE": "Minute verkünden",
+        "SECONDSANNOUNCE": "Sekunden,",
+        "THANKYOUANNOUNCE": "'Vielen Dank' verkünden",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Arbeit nach Anruf",
+        "AFTERCALLWORKDURATION": "Arbeit nach Anruf Dauer",
+        "RINGINUSE": "Ring in Verwendung",
+        "MEMBERDELAY": "Die Verzögerung",
+        "TIMEOUTRESTART": "Timeout starten",
+        "MONITORFORMAT": "Aufzeichnungsformat",
+        "SETINTERFACEVARIABLES": "Die Interface- Variablen",
+        "SETQUEUEVARIABLES": "Die Warteschlange Variablen",
+        "SETQUEUEENTRYVARIABLES": "Die Warteschlange ENTRY-Variablen",
+        "CONTEXT": "Kontext",
+        "SAVE": "Speichern",
+        "SETTINGS": "Einstellungen",
+        "INBOUNDROUTES": "Ankommende Routen",
+        "PHONENUMBER": "Telefonnummer",
+        "ADD_INBOUNDROUTE": "Eingehende Route hinzufügen",
+        "EDIT_INBOUNDROUTE": "Route für eingehende Anrufe bearbeiten.",
+        "DELETE_INBOUNDROUTE": "Löschen der Route für eingehende Anrufe",
+        "ACTIONS": "Aktionen",
+        "OUTBOUNDROUTES": "Abgehende Routen",
+        "DESTINATIONPATTERN": "Ziel Muster",
+        "ADD_OUTBOUNDROUTE": "Ausgehende Route hinzufügen",
+        "EDIT_OUTBOUNDROUTE": "Abgehende Route bearbeiten",
+        "DELETE_OUTBOUNDROUTE": "Abgehende Route löschen",
+        "CUTDIGITS": "Die Ziffern",
+        "RECORDING": "Aufnahme",
+        "RECORDINGFORMAT": "Aufzeichnungsformat",
+        "INTERNALROUTES": "Interne Routen",
+        "ADD_INTERNALROUTE": "Fügen Sie interne Routen",
+        "EDIT_INTERNALROUTE": "Interne Route bearbeiten",
+        "DELETE_INTERNALROUTE": "Interne Routen löschen",
+        "CONTEXTS": "Kontexte",
+        "ADD_CONTEXT": "Rahmen hinzufügen",
+        "EDIT_CONTEXT": "Kontext bearbeiten",
+        "DELETE_CONTEXT": "Löschen von Rahmen",
+        "VOICEMAILS": "Von Voicemails",
+        "ADD_VOICEMAIL": "Fügen Sie Voicemail",
+        "EDIT_VOICEMAIL": "Bearbeiten von Voicemail",
+        "DELETE_VOICEMAIL": "Voicemail löschen",
+        "FULLNAME": "Voller Name",
+        "EMAIL": "E-Mail",
+        "MAILBOX": "Mailbox",
+        "PASSWORD": "Passwort",
+        "CONFIRM_PASSWORD": "Passwort bestätigen",
+        "TIMEZONE": "Zeitzone",
+        "ATTACH": "Befestigen Sie",
+        "ENVELOPE": "Umschlag",
+        "DELETE": "Löschen",
+        "EMAILBODY": "E-Mail-Text",
+        "EMAILSUBJECT": "Betreff der E-Mail",
+        "MAXSECONDS": "In Sekunden",
+        "MAXMESSAGES": "Max. Nachrichten",
+        "MESSAGES": "Nachrichten",
+        "SORT": "Sortieren",
+        "ADD_MUSICONHOLD": "Hinzufügen von Musik auf Halten",
+        "MUSICONHOLDS": "Musik auf Halten",
+        "EDIT_MUSICONHOLD": "Bearbeiten Musik auf Halten",
+        "DELETE_MUSICONHOLD": "Löschen Sie Musik auf Halten",
+        "DIRECTORY": "Verzeichnis",
+        "AUDIOFILES": "Audiodateien",
+        "RECORDINGS": "Aufnahmen",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Präfix",
+        "OPTIONS": "Optionen",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Fügen Sie ChanSpy",
+        "EDIT_CHANSPY": "Bearbeiten Sie ChanSpy",
+        "DELETE_CHANSPY": "Löschen Sie ChanSpy",
+        "AGENTS": "Agenten",
+        "TELEPHONES": "Telefone",
+        "QUEUES": "Warteschlangen",
+        "QUEUE_CALLS": "Anrufe aus einer Warteschlange",
+        "QUEUE_PARAMETERS": "Queue Parameter",
+        "ABANDONED_CALLS": "Abgebrochene Anrufe",
+        "OUTBOUND_CALLS": "Ausgehende Anrufe",
+        "AGI": "AGI",
+        "DIAL": "Kurzwahl",
+        "INTERNALDIAL": "Interne Wahl",
+        "EXTERNALDIAL": "Externes Wählen",
+        "RINGGROUP": "Ring-Gruppe",
+        "PLAYBACK": "Wiedergabe",
+        "QUEUE": "Warteschlange",
+        "SET": "Set",
+        "VOICEMAIL": "Voicemail",
+        "GOTO": "Gehe zu",
+        "HANGUP": "Auflegen",
+        "CUSTOM": "Benutzerdefinierte",
+        "PROJECT": "Cally-Square Projekt",
+        "TECHNOLOGY/RESOURCE": "Technologie-/Ressourcen",
+        "URL": "URL",
+        "EDIT_APP": "Anwendung bearbeiten.",
+        "EDIT_INTERVAL": "Intervall bearbeiten",
+        "DELETE_APP": "Anwendung löschen",
+        "INTERVALS": "Intervalle",
+        "USER": "Benutzer",
+        "TRUNK": "Amtsleitung",
+        "PHONE": "Telefon",
+        "AUDIO_FILES": "Audiodateien",
+        "ANNOUNCE_OVERRIDES": "Überschreibt ankündigen",
+        "MACRO": "Makro",
+        "GOSUB": "GoSub",
+        "RULE": "Regel",
+        "POSITION": "Position",
+        "ANSWER": "Antwort",
+        "VALUE": "Wert",
+        "MAILBOX@CONTEXT": "Mailbox@Kontext",
+        "EXTENSION": "Erweiterung",
+        "PRIORITY": "Priorität",
+        "HANGUP_CAUSE": "Ursache auflegen",
+        "OUTBOUNDDIAL": "Wählen Sie für abgehende Anrufe",
+        "CALLER_ID": "Die Anrufer-ID",
+        "NO_MESSAGE_AVAILABLE": "Keine Meldungen vorhanden",
+        "NO_SOUND_AVAILABLE": "Kein Ton verfügbar",
+        "VOICERECORDINGS": "Sprachaufnahmen",
+        "CHANSPIES": "Chan Spies",
+        "VOICE": "Voice",
+        "REALTIME": "Echtzeit",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Kontext",
+        "NO_MOHSOUND_AVAILABLE": "Keine Wartemusik verfügbar",
+        "FILE": "Datei",
+        "ADD_MOHSOUND": "Hinzufügen von Musik auf Halten sound",
+        "DOWNLOAD_MOHSOUND": "Download Music-on-Hold sound",
+        "DELETE_MOHSOUND": "Löschen Sie Music On Hold sound",
+        "UNIQUEID": "Eindeutige ID",
+        "AGENT": "Agent",
+        "TYPE": "Typ",
+        "RATING": "Bewertung",
+        "AUDIO": "Audio",
+        "DATE": "Datum",
+        "NEW_VOICEQUEUE": "Neue Stimme der Warteschlange",
+        "NEW_INBOUNDROUTE": "Neue Route für eingehende Anrufe",
+        "NEW_OUTBOUNDROUTE": "Neue abgehende Route",
+        "NEW_INTERNALROUTE": "Neue interne Routen",
+        "NEW_CONTEXT": "Neue Kontext",
+        "NEW_VOICEMAIL": "Neue Voicemail",
+        "NEW_MUSICONHOLD": "Neue Musik auf Halten",
+        "NEW_CHANSPY": "Neue ChanSpy",
+        "PENALTY": "Strafe",
+        "ADD_TEAM_TO_VOICEQUEUE": "Team hinzufügen, Warteschlange",
+        "ADD_AGENT_TO_VOICEQUEUE": "Hinzufügen von Agenten der Warteschlange an die Mailbox",
+        "EDIT_DIAL": "Wählen Sie Bearbeiten.",
+        "EDIT_AGI": "AGI bearbeiten",
+        "EDIT_INTERNALDIAL": "Interne Wahl bearbeiten.",
+        "EDIT_EXTERNALDIAL": "Wählen Sie Externen bearbeiten",
+        "EDIT_RINGGROUP": "Gruppe bearbeiten",
+        "EDIT_PLAYBACK": "Bearbeiten Sie die Wiedergabe",
+        "EDIT_QUEUE": "Bearbeiten von Warteschlangen",
+        "EDIT_SET": "Bearbeiten",
+        "EDIT_GOTO": "Gehe zu bearbeiten.",
+        "EDIT_HANGUP": "Bearbeiten Sie Auflegen",
+        "EDIT_CUSTOM": "Bearbeiten von benutzerdefinierten",
+        "DURATION": "Dauer",
+        "RECEIVED_AT": "Empfangen am",
+        "YES": "Ja",
+        "NO": "Keine",
+        "HANGUPCAUSE_1": "1 = Nicht zugewiesene Nummer",
+        "HANGUPCAUSE_16": "16 = Normail Anruf löschen",
+        "HANGUPCAUSE_17": "17 = Benutzer besetzt",
+        "HANGUPCAUSE_18": "18 = Keine Reaktion (Telefon Gerät nicht verbunden)",
+        "HANGUPCAUSE_21": "21 = Anruf abgelehnt",
+        "HANGUPCAUSE_22": "22 = Anzahl geändert",
+        "HANGUPCAUSE_27": "27 = Ziel nicht in Ordnung",
+        "HANGUPCAUSE_38": "38 = Netzwerk aus, um",
+        "HANGUPCAUSE_41": "41 = vorübergehende Störung",
+        "RANDOM": "Random",
+        "ALPHABETICAL": "Alphabetisch",
+        "NO_APPS_AVAILABLE": "Keine Anwendungen verfügbar",
+        "DOWNLOAD_VOICERECORDING": "Download Voice Recording",
+        "DELETE_VOICERECORDING": "Löschen von Voice Recording",
+        "INTERNAL": "Interne",
+        "PHONE_STATE": "Telefonstatus",
+        "PHONE_STATUS": "Telefonstatus",
+        "REGISTERED": "Registriert",
+        "UNREGISTERED": "Unregistrierte",
+        "LAGGED": "Zurück",
+        "REACHABLE": "Erreichbar",
+        "UNREACHABLE": "Nicht erreichbar",
+        "UNKNOWN": "Unbekannt",
+        "NOT_INUSE": "Nicht in Gebrauch",
+        "INUSE": "Im Einsatz",
+        "BUSY": "Besetzt",
+        "INVALID": "Ungültig",
+        "UNAVAILABLE": "Nicht verfügbar",
+        "RINGING": "Klingeln",
+        "ONHOLD": "Auf Halten",
+        "RING": "Ring",
+        "UP": "Bis",
+        "INFO": "Info",
+        "TRUNKS": "Amtsleitungen",
+        "REGISTRY": "Registrierung",
+        "NO_REGISTRY": "Keine registry",
+        "LOGGED_IN": "Angemeldet",
+        "PAUSED": "Angehalten",
+        "WAITING": "Warten",
+        "TALKING": "Sprechen",
+        "DID": "Haben",
+        "CALLER": "Anrufer",
+        "TOTAL": "Insgesamt",
+        "ANSWERED": "Beantwortet",
+        "ABANDONED": "Abgebrochen",
+        "UNMANAGED": "Nicht verwaltete",
+        "AVG_HOLD_TIME": "Durchschnittl. Warteschleifenzeit",
+        "AVG_DURATION": "Av-Dauer",
+        "AVG_BILLABLE": "Avg Fakturierbaren",
+        "SOURCE": "Quelle",
+        "DESTINATION": "Ziel",
+        "REJECTED": "Abgelehnt",
+        "FAILED": "Fehlgeschlagen",
+        "CALLED": "Aufgerufen",
+        "CONNECTED": "Verbunden",
+        "NO_RATING": "Keine Bewertung",
+        "EDIT_VOICERECORDING": "Edit Voice Recording",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Benutzerdefinierte Anwendung."
+        },
+        "APPLICATION_NAME": "Name der Anwendung",
+        "ARGUMENTS": "Argumente",
+        "NO_AVAILABLE_INFO": "Keine verfügbaren Info",
+        "ADD_AGENT_TO_QUEUE": "Agent zur Warteschlange hinzufügen",
+        "DEFAULT_PAUSE": "Standard PAUSE",
+        "PAUSE": "Pause",
+        "UNPAUSE": "Pause",
+        "REDIRECT_TO_NUMBER": "Umleiten zu: Anzahl",
+        "REDIRECT_TO_AGENT": "Umleiten zu: Agent",
+        "AGENTADD_VOICEQUEUE": "Hinzufügen von Agenten der Warteschlange an die Mailbox",
+        "APPLICATION": "Anwendung",
+        "FILES": "Dateien",
+        "FORMAT": "Format",
+        "MODE": "Modus",
+        "RECORD": "Datensatz",
+        "TEAMADD_VOICEQUEUE": "Hinzufügen Team voicequeue",
+        "NEW_MOHSOUND": "Neue Musik auf Halten",
+        "DOWNLOAD_MESSAGE": "Download",
+        "DELETE_MESSAGE": "Löschen",
+        "QUEUE_PARAMS": "Queue Parameter",
+        "TOTAL_OFFERED": "Insgesamt",
+        "READY": "Bereit",
+        "AGENTADD_QUEUE": "Agent hinzufügen Warteschlangen zu Voice",
+        "AGENTSADD_QUEUE": "Hinzufügen von Agenten der Warteschlange an die Mailbox",
+        "ALL_TEAMS": "Alle Mannschaften",
+        "SELECTED_TEAMS": "Ausgewählte Teams",
+        "ALL_AGENTS": "Alle Agenten",
+        "SELECTED_AGENTS": "Ausgewählte Agenten",
+        "CLOSING": "Schließen",
+        "TAGS": "Tags",
+        "WAITING_FOR_AGENTS": "Warten auf Agenten",
+        "EDIT_OUTBOUNDDIAL": "Bearbeiten ausgehenden DFÜ",
+        "VARIABLE": "Variable",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Nicht gsm-Audiodateien",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "An-/Abmelden",
+        "TRUNK_STATUS": "Trunk Status",
+        "WAITING_FOR_AGENT": "Warten auf Agenten",
+        "ACCOUNTNAME": "Konto Name"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/en.json b/public/app/main/apps/voice/i18n/en.json
new file mode 100644 (file)
index 0000000..46b92f5
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Name",
+        "LOGOUT": "LOGOUT",
+        "VOICEQUEUES": "Voice Queues",
+        "SEARCH_FOR_ANYONE": "Search for anyone",
+        "BACK": "Back",
+        "SELECTED": "Selected",
+        "SELECT_ALL": "Select All",
+        "SELECT_NONE": "Select None",
+        "DELETE_VOICEDISPOSITION": "Delete Voice Disposition",
+        "EDIT_VOICEDISPOSITION": "Edit Voice Disposition",
+        "EDIT_VOICEQUEUE": "Edit Voice Queue",
+        "DELETE_VOICEQUEUE": "Delete Voice Queue",
+        "MOHSOUNDS": "Moh Sounds",
+        "STRATEGY": "Strategy",
+        "DESCRIPTION": "Description",
+        "ADD_VOICEQUEUE": "Add Voice Queue",
+        "CREATED_AT": "Created At",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Can't play gsm audio files",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Custom application."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "The Name is Required",
+            "APPLICATION_NAME_REQUIRED": "The Application Name is Required",
+            "TIMEOUT_REQUIRED": "The Timeout is required",
+            "PHONENUMBER_REQUIRED": "The Phone Number is required",
+            "CONTEXT_REQUIRED": "The Context is required",
+            "DESTINATIONPATTERN_REQUIRED": "The Destination Pattern is required",
+            "FULLNAME_REQUIRED": "The Full Name is required",
+            "EMAIL_REQUIRED": "The Email is required",
+            "EMAIL_MUST_VALID": "The email must be written in a valid format",
+            "MAILBOX_REQUIRED": "The Mailbox is required",
+            "PASSWORD_REQUIRED": "The Password is required",
+            "CONFIRM_NOT_MATCH": "The passwords don't match",
+            "TIMEZONE_REQUIRED": "The Timezone is required",
+            "PREFIX_REQUIRED": "The Prefix is required",
+            "OPTIONS_REQUIRED": "The Options are required",
+            "AFTERCALLWORKDURATION_REQUIRED": "The After Call Work Duration is required",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "The Technology/Resource is required",
+            "PHONE_REQUIRED": "The Phone is required",
+            "VALUE_REQUIRED": "The Value is required",
+            "EXTENSION_REQUIRED": "The Extension is required",
+            "PRIORITY_REQUIRED": "The Priority is required",
+            "NAME_MUST_VALID_PATTERN": "The Name must be written in a valid format",
+            "APPLICATION_REQUIRED": "The Application is required"
+        },
+        "GENERAL": "General",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Maximum Length",
+        "RETRY": "Retry",
+        "WRAPUPTIME": "Wrapup Time",
+        "WEIGHT": "Weight",
+        "JOINWHENEMPTY": "Join when empty",
+        "LEAVEWHENEMPTY": "Leave when empty",
+        "HELP": {
+            "TIMEOUT": "Specifies the number of seconds to ring a member’s device.",
+            "MAXLENGTH": "Specifies the maximum number of callers allowed to be waiting in a queue. A value of zero means an unlimited number of callers are allowed in the queue.",
+            "RETRY": "Specifies the number of seconds to wait before attempting the next member in the queue if the timeout value is exhausted while attempting to ring a member of the queue.",
+            "WRAPUPTIME": "The number of seconds to keep a member unavailable in a queue after completing a call.",
+            "WEIGHT": "Defines the weight of a queue. A queue with a higher weight defined will get first priority when members are associated with multiple queues.",
+            "JOINWHENEMPTY": "Controls whether a caller is added to the queue when no members are available.",
+            "LEAVEWHENEMPTY": "Used to control whether callers are kicked out of the queue when members are no longer available to take calls.",
+            "ANNOUNCEFREQUENCY": "Defines how often we should announce the caller’s position and/or estimated hold time in the queue. Set this value to zero to disable.",
+            "MINANNOUNCEFREQUENCY": "Specifies the minimum amount of time that must pass before we announce the caller’s position in the queue again. This is used when the caller’s position may change frequently, to prevent the caller hearing multiple updates in a short period of time.",
+            "PERIODICANNOUNCEFREQUENCY": "Indicates how often we should make periodic announcements to the caller.",
+            "ANNOUNCEPOSITIONLIMIT": "Used if you’ve defined announce-position as either limit or more.",
+            "AFTERCALLWORKDURATION": "The duration of the Pause triggered by the After Call Work option",
+            "MEMBERDELAY": "Used if you want there to be a delay prior to the caller and queue member being connected to each other.",
+            "MUSICONHOLD": "Sets the music class to be used by a particular queue.",
+            "ANNOUNCETOAGENT": "Used for playing an announcement to the agent that answered the call, typically to let him know what queue the caller is coming from.",
+            "RANDOMPERIODICANNOUNCE": "If set to yes, will play the defined periodic announcements in a random order.",
+            "ANNOUNCEHOLDTIME": "Defines whether the estimated hold time should be played along with the periodic announcements.",
+            "ANNOUNCECALLERPOSITION": "Defines whether the caller’s position in the queue should be announced to her. If set to no, the position will never be announced. If set to yes, the caller’s position will always be announced. If the value is set to limit, the caller will hear her position in the queue only if it is within the limit defined by announce-position-limit. If the value is set to more, the caller will hear her position if it is beyond the number defined by announce-position-limit.",
+            "REPORTHOLDTIMEAGENT": "Enables reporting of the caller’s hold time to the queue member prior to bridging.",
+            "PERIODICANNOUNCE": "A set of periodic announcements to be played, played in the order they are defined.",
+            "HOLDTIMEANNOUNCE": "If not defined, will play the default value (“Hold time”). If set to an empty value, the prompt will not be played at all.",
+            "YOUARENEXTANNOUNCE": "If not defined, will play the default value (“You are now first in line”). If set to an empty value, the prompt will not be played at all.",
+            "THEREAREANNOUNCE": "If not defined, will play the default value (“There are”). If set to an empty value, the prompt will not be played at all.",
+            "WAITINGCALLSANNOUNCE": "If not defined, will play the default value (“calls waiting”). If set to an empty value, the prompt will not be played at all.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "If not defined, will play the default value (“The current estimated hold time is”). If set to an empty value, the prompt will not be played at all.",
+            "MINUTESANNOUNCE": "If not defined, will play the default value (“minutes”). If set to an empty value, the prompt will not be played at all.",
+            "MINUTEANNOUNCE": "If not defined, will play the default value (“minute”). If set to an empty value, the prompt will not be played at all.",
+            "SECONDSANNOUNCE": "If not defined, will play the default value (“seconds”). If set to an empty value, the prompt will not be played at all.",
+            "THANKYOUANNOUNCE": "If not defined, will play the default value (“Thank you for your patience”). If set to an empty value, the prompt will not be played at all.",
+            "AFTERCALLWORK": "If active, the agent will be set on Pause after a completed call on the queue",
+            "AUTOPAUSE": "Enables/disables the automatic pausing of members who fail to answer a call. If active causes this member to be paused in all queues he is a member of.",
+            "RINGINUSE": "Used to avoid sending calls to members whose status is In Use.",
+            "TIMEOUTRESTART": "If set to yes, resets the timeout for an agent to answer if either a BUSY or CONGESTION status is received from the channel.",
+            "MONITORFORMAT": "Specifies the file format to use when recording. If monitor-format is inactive, calls will not be recorded.",
+            "CONTEXT": "Allows a caller to exit the queue by pressing a single DTMF digit. If a context is specified and the caller enters a number, that digit will attempt to be matched in the context specified, and dialplan execution will continue there.",
+            "SETINTERFACEVARIABLES": "If set to yes, just prior to the caller being bridged with a queue member some variables will be set(see wiki)",
+            "SETQUEUEVARIABLES": "If set to yes, just prior to the caller being bridged with a queue member and just prior to the caller leaving the queue some variables will be set(see wiki)",
+            "SETQUEUEENTRYVARIABLES": "If set to yes, just prior to the caller being bridged with a queue member some variables will be set(see wiki)",
+            "RECORDING": "Enable the call recording",
+            "VOICEMAIL_CONTEXT": "The context of the relative extension."
+        },
+        "MUSICONHOLD": "Music On Hold",
+        "ANNOUNCETOAGENT": "Announce To Agent",
+        "ANNOUNCEMENTS": "Announcements",
+        "ADVANCED": "Advanced",
+        "ANNOUNCEFREQUENCY": "Announce Frequency",
+        "MINANNOUNCEFREQUENCY": "Minimum Announce Frequency",
+        "PERIODICANNOUNCEFREQUENCY": "Periodic Announce Frequency",
+        "RANDOMPERIODICANNOUNCE": "Random Periodic Announce",
+        "ANNOUNCEHOLDTIME": "Announce Hold Time",
+        "ANNOUNCECALLERPOSITION": "Announce Caller Position",
+        "ANNOUNCEPOSITIONLIMIT": "Announce Position Limit",
+        "REPORTHOLDTIMEAGENT": "Report Agent Hold Time",
+        "PERIODICANNOUNCE": "Periodic Announce",
+        "HOLDTIMEANNOUNCE": "Hold Time Announce",
+        "YOUARENEXTANNOUNCE": "'You are next' Announce",
+        "THEREAREANNOUNCE": "'There are' Announce",
+        "WAITINGCALLSANNOUNCE": "Waiting Calls Announce",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Estimated Hold Time Announce",
+        "MINUTESANNOUNCE": "Minutes Announce",
+        "MINUTEANNOUNCE": "Minute Announce",
+        "SECONDSANNOUNCE": "Seconds Announce",
+        "THANKYOUANNOUNCE": "'Thank You' Announce",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "After Call Work",
+        "AFTERCALLWORKDURATION": "After Call Work Duration",
+        "RINGINUSE": "Ring In Use",
+        "MEMBERDELAY": "Member Delay",
+        "TIMEOUTRESTART": "Timeout Restart",
+        "MONITORFORMAT": "Recording Format",
+        "SETINTERFACEVARIABLES": "Set Interface Variables",
+        "SETQUEUEVARIABLES": "Set Queue Variables",
+        "SETQUEUEENTRYVARIABLES": "Set Queue Entry Variables",
+        "VARIABLE": "Variable",
+        "CONTEXT": "Context",
+        "SAVE": "Save",
+        "SETTINGS": "Settings",
+        "INBOUNDROUTES": "Inbound Routes",
+        "PHONENUMBER": "Phone Number",
+        "ADD_INBOUNDROUTE": "Add Inbound Route",
+        "EDIT_INBOUNDROUTE": "Edit Inbound Route",
+        "DELETE_INBOUNDROUTE": "Delete Inbound Route",
+        "ACTIONS": "Actions",
+        "OUTBOUNDROUTES": "Outbound Routes",
+        "DESTINATIONPATTERN": "Destination Pattern",
+        "ADD_OUTBOUNDROUTE": "Add Outbound Route",
+        "EDIT_OUTBOUNDROUTE": "Edit Outbound Route",
+        "DELETE_OUTBOUNDROUTE": "Delete Outbound Route",
+        "CUTDIGITS": "Cut Digits",
+        "RECORDING": "Recording",
+        "RECORDINGFORMAT": "Recording format",
+        "INTERNALROUTES": "Internal Routes",
+        "ADD_INTERNALROUTE": "Add Internal Route",
+        "EDIT_INTERNALROUTE": "Edit Internal Route",
+        "DELETE_INTERNALROUTE": "Delete Internal Route",
+        "CONTEXTS": "Contexts",
+        "ADD_CONTEXT": "Add Context",
+        "EDIT_CONTEXT": "Edit Context",
+        "DELETE_CONTEXT": "Delete Context",
+        "VOICEMAILS": "Voicemails",
+        "ADD_VOICEMAIL": "Add Voicemail",
+        "EDIT_VOICEMAIL": "Edit Voicemail",
+        "DELETE_VOICEMAIL": "Delete Voicemail",
+        "FULLNAME": "Full Name",
+        "EMAIL": "Email",
+        "MAILBOX": "Mailbox",
+        "PASSWORD": "Password",
+        "CONFIRM_PASSWORD": "Confirm Password",
+        "TIMEZONE": "Timezone",
+        "ATTACH": "Attach",
+        "ENVELOPE": "Envelope",
+        "DELETE": "Delete",
+        "EMAILBODY": "Email Body",
+        "EMAILSUBJECT": "Email Subject",
+        "MAXSECONDS": "Max Seconds",
+        "MAXMESSAGES": "Max Messages",
+        "MESSAGES": "Messages",
+        "SORT": "Sort",
+        "ADD_MUSICONHOLD": "Add Music On Hold",
+        "MUSICONHOLDS": "Musics On Hold",
+        "EDIT_MUSICONHOLD": "Edit Music On Hold",
+        "DELETE_MUSICONHOLD": "Delete Music On Hold",
+        "DIRECTORY": "Directory",
+        "AUDIOFILES": "Audio Files",
+        "RECORDINGS": "Recordings",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefix",
+        "OPTIONS": "Options",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Add ChanSpy",
+        "EDIT_CHANSPY": "Edit ChanSpy",
+        "DELETE_CHANSPY": "Delete ChanSpy",
+        "AGENTS": "Agents",
+        "TELEPHONES": "Telephones",
+        "QUEUES": "Queues",
+        "QUEUE_CALLS": "Queue Calls",
+        "QUEUE_PARAMETERS": "Queue Parameters",
+        "ABANDONED_CALLS": "Abandoned Calls",
+        "OUTBOUND_CALLS": "Outbound Calls",
+        "AGI": "Agi",
+        "DIAL": "Dial",
+        "CALLYSQUARE": "CallySquare",
+        "INTERNALDIAL": "Internal Dial",
+        "EXTERNALDIAL": "External Dial",
+        "RINGGROUP": "Ring Group",
+        "PLAYBACK": "Playback",
+        "QUEUE": "Queue",
+        "SET": "Set",
+        "VOICEMAIL": "Voicemail",
+        "GOTO": "GoTo",
+        "HANGUP": "Hangup",
+        "CUSTOM": "Custom",
+        "PROJECT": "Cally-Square Project",
+        "TECHNOLOGY/RESOURCE": "Technology/Resource",
+        "URL": "URL",
+        "EDIT_APP": "Edit Application",
+        "EDIT_INTERVAL": "Edit Interval",
+        "DELETE_APP": "Delete Application",
+        "INTERVALS": "Intervals",
+        "USER": "User",
+        "TRUNK": "Trunk",
+        "PHONE": "Phone",
+        "AUDIO_FILES": "Audio Files",
+        "ANNOUNCE_OVERRIDES": "Announce Overrides",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "RULE": "Rule",
+        "POSITION": "Position",
+        "ANSWER": "Answer",
+        "VALUE": "Value",
+        "MAILBOX@CONTEXT": "Mailbox@Context",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priority",
+        "HANGUP_CAUSE": "Hangup Cause",
+        "OUTBOUNDDIAL": "Outbound Dial",
+        "CALLER_ID": "Caller ID",
+        "NO_MESSAGE_AVAILABLE": "No messages available",
+        "NO_SOUND_AVAILABLE": "No sounds available",
+        "VOICERECORDINGS": "Voice Recordings",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Voice",
+        "REALTIME": "Realtime",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Context",
+        "NO_MOHSOUND_AVAILABLE": "No Music On Hold available",
+        "FILE": "File",
+        "ADD_MOHSOUND": "Add Music On Hold sound",
+        "DOWNLOAD_MOHSOUND": "Download Music On Hold sound",
+        "DELETE_MOHSOUND": "Delete Music On Hold sound",
+        "UNIQUEID": "Unique ID",
+        "AGENT": "Agent",
+        "TYPE": "Type",
+        "RATING": "Rating",
+        "AUDIO": "Audio",
+        "DATE": "Date",
+        "NEW_VOICEQUEUE": "New Voice Queue",
+        "NEW_INBOUNDROUTE": "New Inbound Route",
+        "NEW_OUTBOUNDROUTE": "New Outbound Route",
+        "NEW_INTERNALROUTE": "New Internal Route",
+        "NEW_CONTEXT": "New Context",
+        "NEW_VOICEMAIL": "New Voicemail",
+        "NEW_MUSICONHOLD": "New Music On Hold",
+        "NEW_CHANSPY": "New ChanSpy",
+        "PENALTY": "Penalty",
+        "ADD_TEAM_TO_VOICEQUEUE": "Add Team to Voice Queue",
+        "ADD_AGENT_TO_VOICEQUEUE": "Add Agent to Voice Queue",
+        "EDIT_DIAL": "Edit Dial",
+        "EDIT_AGI": "Edit AGI",
+        "EDIT_INTERNALDIAL": "Edit Internal Dial",
+        "EDIT_EXTERNALDIAL": "Edit External Dial",
+        "EDIT_RINGGROUP": "Edit Ring Group",
+        "EDIT_PLAYBACK": "Edit Playback",
+        "EDIT_QUEUE": "Edit Queue",
+        "EDIT_SET": "Edit Set",
+        "EDIT_GOTO": "Edit GoTo",
+        "EDIT_HANGUP": "Edit Hangup",
+        "EDIT_CUSTOM": "Edit Custom",
+        "DURATION": "Duration",
+        "RECEIVED_AT": "Received At",
+        "YES": "Yes",
+        "NO": "No",
+        "HANGUPCAUSE_1": "1 = Unallocated number",
+        "HANGUPCAUSE_16": "16 = Normail call clearing",
+        "HANGUPCAUSE_17": "17 = User busy",
+        "HANGUPCAUSE_18": "18 = No user responding (telehone device not connected)",
+        "HANGUPCAUSE_21": "21 = Call rejected",
+        "HANGUPCAUSE_22": "22 = Number changed",
+        "HANGUPCAUSE_27": "27 = Destination out of order",
+        "HANGUPCAUSE_38": "38 = Network out of order",
+        "HANGUPCAUSE_41": "41 = Temporary failure",
+        "RANDOM": "Random",
+        "ALPHABETICAL": "Alphabetical",
+        "NO_APPS_AVAILABLE": "No applications available",
+        "DOWNLOAD_VOICERECORDING": "Download Voice Recording",
+        "DELETE_VOICERECORDING": "Delete Voice Recording",
+        "INTERNAL": "Internal",
+        "PHONE_STATE": "Phone State",
+        "PHONE_STATUS": "Phone Status",
+        "TRUNK_STATUS": "Trunk Status",
+        "REGISTERED": "Registered",
+        "UNREGISTERED": "Unregistered",
+        "LAGGED": "Lagged",
+        "REACHABLE": "Reachable",
+        "UNREACHABLE": "Unreachable",
+        "UNKNOWN": "Unknown",
+        "NOT_INUSE": "Not in use",
+        "INUSE": "In Use",
+        "BUSY": "Busy",
+        "INVALID": "Invalid",
+        "UNAVAILABLE": "Unavailable",
+        "RINGING": "Ringing",
+        "ONHOLD": "On Hold",
+        "RING": "Ring",
+        "UP": "Up",
+        "INFO": "Info",
+        "TRUNKS": "Trunks",
+        "REGISTRY": "Registry",
+        "NO_REGISTRY": "No registry",
+        "LOGGED_IN": "Logged in (SIP connected)",
+        "PAUSED": "Paused",
+        "WAITING": "Waiting",
+        "TALKING": "Talking",
+        "DID": "DID",
+        "CALLER": "Caller",
+        "TOTAL": "Total",
+        "ANSWERED": "Answered",
+        "ABANDONED": "Abandoned",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "Avg Hold Time",
+        "AVG_DURATION": "Av Duration",
+        "AVG_BILLABLE": "Avg Billable",
+        "SOURCE": "Source",
+        "DESTINATION": "Destination",
+        "REJECTED": "Rejected",
+        "FAILED": "Failed",
+        "CALLED": "Called",
+        "CONNECTED": "Connected",
+        "NO_RATING": "No rating",
+        "EDIT_VOICERECORDING": "Edit Voice Recording",
+        "APPLICATION_NAME": "Application Name",
+        "ARGUMENTS": "Arguments",
+        "NO_AVAILABLE_INFO": "No available info",
+        "ADD_AGENT_TO_QUEUE": "Add Agent to Queue",
+        "DEFAULT_PAUSE": "DEFAULT PAUSE",
+        "PAUSE": "Pause",
+        "UNPAUSE": "Unpause",
+        "HANGUP": "Hangup",
+        "REDIRECT_TO_NUMBER": "Redirect to Number",
+        "REDIRECT_TO_AGENT": "Redirect to Agent",
+        "AGENTADD_VOICEQUEUE": "Add agent to voice queue",
+        "APPLICATION": "Application",
+        "FILES": "Files",
+        "FORMAT": "Format",
+        "MODE": "Mode",
+        "RECORD": "Record",
+        "TEAMADD_VOICEQUEUE": "Add team to voicequeue",
+        "NEW_MOHSOUND": "New Music on Hold sound",
+        "DOWNLOAD_MESSAGE": "Download",
+        "DELETE_MESSAGE": "Delete",
+        "QUEUE_PARAMS": "Queue Parameters",
+        "TOTAL_OFFERED": "Total Offered",
+        "READY": "Ready",
+        "AGENTADD_QUEUE": "Add Agent to voice queues",
+        "AGENTSADD_QUEUE": "Add Agents to voice queue",
+        "ALL_TEAMS": "All Teams",
+        "SELECTED_TEAMS": "Selected Teams",
+        "ALL_AGENTS": "All Agents",
+        "SELECTED_AGENTS": "Selected Agents",
+        "CLOSING": "Closing",
+        "TAGS": "Tags",
+        "WAITING_FOR_AGENT": "Waiting for Agents",
+        "EDIT_OUTBOUNDDIAL": "Edit Outbound Dial",
+        "ACCOUNTNAME": "Account Name"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/es.json b/public/app/main/apps/voice/i18n/es.json
new file mode 100644 (file)
index 0000000..a418990
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Nombre",
+        "VOICEQUEUES": "Colas de voz",
+        "SEARCH_FOR_ANYONE": "Buscar a alguien",
+        "BACK": "Volver",
+        "SELECTED": "Seleccionado",
+        "SELECT_ALL": "Seleccionar todo",
+        "SELECT_NONE": "Seleccione Ninguno",
+        "DELETE_VOICEDISPOSITION": "Eliminar la disposición de voz",
+        "EDIT_VOICEDISPOSITION": "Editar voz Disposición",
+        "EDIT_VOICEQUEUE": "Editar voz cola",
+        "DELETE_VOICEQUEUE": "Eliminar la cola de voz",
+        "MOHSOUNDS": "Sonidos de Moh",
+        "STRATEGY": "Estrategia",
+        "DESCRIPTION": "Descripción",
+        "ADD_VOICEQUEUE": "Añadir cola de voz",
+        "CREATED_AT": "Creado en",
+        "ERRORS": {
+            "NAME_REQUIRED": "El nombre es obligatorio",
+            "TIMEOUT_REQUIRED": "El tiempo de espera es necesario",
+            "PHONENUMBER_REQUIRED": "Es necesario introducir el número de teléfono",
+            "CONTEXT_REQUIRED": "El contexto es necesario",
+            "DESTINATIONPATTERN_REQUIRED": "El patrón de destino es obligatorio",
+            "FULLNAME_REQUIRED": "Se requiere el nombre completo",
+            "EMAIL_REQUIRED": "El correo electrónico es obligatorio",
+            "EMAIL_MUST_VALID": "El correo electrónico debe estar escrito en un formato válido",
+            "MAILBOX_REQUIRED": "El buzón es obligatorio",
+            "PASSWORD_REQUIRED": "Es necesaria la contraseña",
+            "CONFIRM_NOT_MATCH": "Las contraseñas no coinciden.",
+            "TIMEZONE_REQUIRED": "La zona horaria es obligatoria.",
+            "PREFIX_REQUIRED": "El prefijo es obligatorio",
+            "OPTIONS_REQUIRED": "Las opciones son obligatorios",
+            "AFTERCALLWORKDURATION_REQUIRED": "El trabajo posterior a la llamada se requiere una duración",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "La tecnología/recurso es necesario",
+            "PHONE_REQUIRED": "El teléfono es necesario",
+            "VALUE_REQUIRED": "El valor es obligatorio",
+            "EXTENSION_REQUIRED": "La extensión es necesaria",
+            "PRIORITY_REQUIRED": "La prioridad es necesaria",
+            "NAME_MUST_VALID_PATTERN": "El nombre debe estar escrito en un formato válido",
+            "APPLICATION_REQUIRED": "La aplicación es necesaria",
+            "APPLICATION_NAME_REQUIRED": "Se requiere el nombre de la aplicación."
+        },
+        "GENERAL": "General",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Longitud máxima",
+        "RETRY": "Reintentar",
+        "WRAPUPTIME": "Tiempo de cierre",
+        "WEIGHT": "Peso",
+        "JOINWHENEMPTY": "Unirse cuando esté vacía.",
+        "LEAVEWHENEMPTY": "Dejar cuando esté vacía.",
+        "HELP": {
+            "TIMEOUT": "Especifica el número de segundos a la corona de un país miembro del dispositivo.",
+            "MAXLENGTH": "Especifica el número máximo de personas permitido estar esperando en una cola. Un valor de cero significa que un número ilimitado de llamadas están permitidos en la cola.",
+            "RETRY": "Especifica el número de segundos a esperar antes de intentar el siguiente miembro de la cola si el valor de tiempo de espera se agota mientras intentaba llame a un miembro de la cola.",
+            "WRAPUPTIME": "El número de segundos para mantener a un miembro que no está disponible en un cola después de finalizar una llamada.",
+            "WEIGHT": "Define el peso de una cola. Una cola con un peso mayor definido obtendrá primera prioridad cuando los miembros están asociados con varias colas.",
+            "JOINWHENEMPTY": "Controla si el llamante se ha añadido a la cola cuando los miembros no están disponibles.",
+            "LEAVEWHENEMPTY": "Se utiliza para controlar si los llamantes son expulsados de la cola cuando los miembros ya no están disponibles para realizar llamadas.",
+            "ANNOUNCEFREQUENCY": "Define la frecuencia con que debemos anunciar la llamada la posición y/o calcula el tiempo de espera en la cola. Establezca este valor a cero para desactivarla.",
+            "MINANNOUNCEFREQUENCY": "Especifica la cantidad mínima de tiempo que debe pasar antes de que podamos anunciar la llamada la posición en la cola de nuevo. Esto se usa cuando la posición de la persona que llama puede cambiar con frecuencia, para evitar que el llamador audiencia varias actualizaciones en un corto período de tiempo.",
+            "PERIODICANNOUNCEFREQUENCY": "Indica con qué frecuencia deberíamos hacer anuncios periódicos al llamador.",
+            "ANNOUNCEPOSITIONLIMIT": "Si has definido anunciar-posición como limitar o más.",
+            "AFTERCALLWORKDURATION": "La duración de la pausa provocada por el trabajo después de la llamada opción",
+            "MEMBERDELAY": "Se utiliza si desea que haya un retardo antes de que el llamador y la cola estados están conectados uno al otro.",
+            "MUSICONHOLD": "Establece la clase de música para ser utilizado por una cola en particular.",
+            "ANNOUNCETOAGENT": "Utilizado para reproducir un anuncio para el agente que atendió la llamada, normalmente para hacerle saber qué cola el llamador está viniendo.",
+            "RANDOMPERIODICANNOUNCE": "Si se establece en Sí, reproducirá los anuncios periódicos definidos en un orden aleatorio.",
+            "ANNOUNCEHOLDTIME": "Define si se estima que el tiempo de espera debe ser jugado junto con los anuncios periódicos.",
+            "ANNOUNCECALLERPOSITION": "Define si la posición de la llamada en la cola debe ser anunciado a ella. Si se establece en no, la posición nunca será anunciado. Si se establece en Sí, la posición de la llamada siempre será anunciado. Si se establece el valor límite, el llamante escuchará su posición en la cola sólo si está dentro de los límites definidos por anunciar la posición límite. Si el valor es mayor, la persona que llama escuchará su posición si está más allá del número definido por anunciar la posición límite.",
+            "REPORTHOLDTIMEAGENT": "Permite informar del tiempo de espera de la persona que llama a la cola estados antes de salvar.",
+            "PERIODICANNOUNCE": "Un conjunto de anuncios periódicos para ser jugado, jugado en el orden en que se definen.",
+            "HOLDTIMEANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"hold time\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "YOUARENEXTANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"Ahora usted está en primera línea\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "THEREAREANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"Hay\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "WAITINGCALLSANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"llamadas en espera\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"el actual tiempo de espera estimado es\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "MINUTESANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"minutos\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "MINUTEANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"minuto\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "SECONDSANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"S\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "THANKYOUANNOUNCE": "Si no se define, se reproducirá el valor predeterminado (\"Gracias por su paciencia\"). Si se establece en un valor vacío, el indicador no se reproducirán en todos.",
+            "AFTERCALLWORK": "Si activo, el agente estará en pausa después de que se complete una llamada en la cola.",
+            "AUTOPAUSE": "Activa/desactiva la pausa automática de miembros que no contestar una llamada. Si activo provoca este miembro a ser pausada en todas las colas que él es un miembro de.",
+            "RINGINUSE": "Se utiliza para evitar el envío de llamadas a miembros cuya situación no está en uso.",
+            "TIMEOUTRESTART": "Si se establece en Sí, se restablece el tiempo de espera para un agente para contestar si un estado ocupado o congestión es recibida desde el canal.",
+            "MONITORFORMAT": "Especifica el formato de archivo que se va a utilizar durante la grabación. Si el formato del monitor está inactivo, las llamadas no se grabarán.",
+            "CONTEXT": "Permite a una persona a salir de la cola pulsando un único dígito DTMF. Si se especifica un contexto y el interlocutor introduzca un número, ese dígito intentará ser igualado en el contexto especificado y ejecución dialplan continuará allí.",
+            "SETINTERFACEVARIABLES": "Si se establece en Sí, justo antes de que el cliente se enlaza con una cola estados algunas variables se establecerá(véase wiki)",
+            "SETQUEUEVARIABLES": "Si se establece en Sí, justo antes de que el cliente se enlaza con un miembro de la cola y justo antes de que el llamador dejando la cola algunas variables se establecerá(véase wiki)",
+            "SETQUEUEENTRYVARIABLES": "Si se establece en Sí, justo antes de que el cliente se enlaza con una cola estados algunas variables se establecerá(véase wiki)",
+            "RECORDING": "Habilitar la grabación de llamada",
+            "VOICEMAIL_CONTEXT": "El contexto de la extensión relativa."
+        },
+        "MUSICONHOLD": "Música en espera",
+        "ANNOUNCETOAGENT": "Anunciar al agente",
+        "ANNOUNCEMENTS": "Anuncios",
+        "ADVANCED": "Advanced",
+        "ANNOUNCEFREQUENCY": "Anunciar la frecuencia",
+        "MINANNOUNCEFREQUENCY": "Anunciar la frecuencia mínima",
+        "PERIODICANNOUNCEFREQUENCY": "Anunciar frecuencia periódica",
+        "RANDOMPERIODICANNOUNCE": "Anuncio periódico aleatorio",
+        "ANNOUNCEHOLDTIME": "Anunciar el tiempo de espera",
+        "ANNOUNCECALLERPOSITION": "Anunciar la posición de llamada",
+        "ANNOUNCEPOSITIONLIMIT": "Anunciar la posición límite",
+        "REPORTHOLDTIMEAGENT": "Informe de tiempo de espera del agente",
+        "PERIODICANNOUNCE": "Anunciar periódica",
+        "HOLDTIMEANNOUNCE": "Tiempo de espera anunciar",
+        "YOUARENEXTANNOUNCE": "\"Usted es el próximo\" anunciar",
+        "THEREAREANNOUNCE": "'hay' anunciar",
+        "WAITINGCALLSANNOUNCE": "Llamadas en espera anunciar",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Calcula el tiempo de espera anunciar",
+        "MINUTESANNOUNCE": "Minutos anunciar",
+        "MINUTEANNOUNCE": "Minuto anunciar",
+        "SECONDSANNOUNCE": "Segundos anunciar",
+        "THANKYOUANNOUNCE": "'Gracias' anunciar",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Trabajo posterior a la llamada",
+        "AFTERCALLWORKDURATION": "Después de llamar a la duración del trabajo",
+        "RINGINUSE": "Anillo en uso",
+        "MEMBERDELAY": "Estados demora",
+        "TIMEOUTRESTART": "Timeout reiniciar",
+        "MONITORFORMAT": "Formato de grabación",
+        "SETINTERFACEVARIABLES": "Establecer variables de interfaz",
+        "SETQUEUEVARIABLES": "Establecer variables de cola",
+        "SETQUEUEENTRYVARIABLES": "Establecer variables de entrada de la cola",
+        "CONTEXT": "Contexto",
+        "SAVE": "Guardar",
+        "SETTINGS": "Configuración",
+        "INBOUNDROUTES": "Rutas entrantes",
+        "PHONENUMBER": "Número de teléfono",
+        "ADD_INBOUNDROUTE": "Agregar rutas entrantes",
+        "EDIT_INBOUNDROUTE": "Editar ruta entrante",
+        "DELETE_INBOUNDROUTE": "Eliminar rutas entrantes",
+        "ACTIONS": "Acciones",
+        "OUTBOUNDROUTES": "Rutas salientes",
+        "DESTINATIONPATTERN": "Patrón de destino",
+        "ADD_OUTBOUNDROUTE": "Agregar ruta saliente",
+        "EDIT_OUTBOUNDROUTE": "Editar ruta saliente",
+        "DELETE_OUTBOUNDROUTE": "Eliminar ruta saliente",
+        "CUTDIGITS": "Cortar dígitos",
+        "RECORDING": "Grabación",
+        "RECORDINGFORMAT": "Formato de grabación",
+        "INTERNALROUTES": "Las rutas internas",
+        "ADD_INTERNALROUTE": "Agregar ruta interna",
+        "EDIT_INTERNALROUTE": "Editar ruta interna",
+        "DELETE_INTERNALROUTE": "Eliminar ruta interna",
+        "CONTEXTS": "Contextos",
+        "ADD_CONTEXT": "Añadir Contexto",
+        "EDIT_CONTEXT": "Contexto de edición",
+        "DELETE_CONTEXT": "Eliminar marco",
+        "VOICEMAILS": "Correos de voz.",
+        "ADD_VOICEMAIL": "Agregar Voicemail",
+        "EDIT_VOICEMAIL": "Editar Voicemail",
+        "DELETE_VOICEMAIL": "Eliminar correo de voz",
+        "FULLNAME": "Nombre completo",
+        "EMAIL": "Correo electrónico",
+        "MAILBOX": "Buzón",
+        "PASSWORD": "Contraseña",
+        "CONFIRM_PASSWORD": "Confirmar contraseña",
+        "TIMEZONE": "Zona horaria",
+        "ATTACH": "Adjuntar",
+        "ENVELOPE": "Sobre",
+        "DELETE": "Eliminar",
+        "EMAILBODY": "El cuerpo del correo electrónico",
+        "EMAILSUBJECT": "El asunto del correo electrónico",
+        "MAXSECONDS": "Max segundos",
+        "MAXMESSAGES": "Número máximo de mensajes",
+        "MESSAGES": "Mensajes",
+        "SORT": "Ordenar",
+        "ADD_MUSICONHOLD": "Agregar música en espera",
+        "MUSICONHOLDS": "Música en espera",
+        "EDIT_MUSICONHOLD": "Editar música en espera",
+        "DELETE_MUSICONHOLD": "Eliminar música en espera",
+        "DIRECTORY": "Directorio",
+        "AUDIOFILES": "Archivos de audio",
+        "RECORDINGS": "Grabaciones",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefijo",
+        "OPTIONS": "Opciones",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Agregar ChanSpy",
+        "EDIT_CHANSPY": "Editar ChanSpy",
+        "DELETE_CHANSPY": "Eliminar ChanSpy",
+        "AGENTS": "Los agentes",
+        "TELEPHONES": "Teléfonos",
+        "QUEUES": "Colas",
+        "QUEUE_CALLS": "Llamadas de cola",
+        "QUEUE_PARAMETERS": "Parámetros de cola",
+        "ABANDONED_CALLS": "Llamadas abandonadas",
+        "OUTBOUND_CALLS": "Llamadas salientes",
+        "AGI": "AGI",
+        "DIAL": "Marcar",
+        "INTERNALDIAL": "Marcación interna",
+        "EXTERNALDIAL": "Marcación externa",
+        "RINGGROUP": "Grupo de anillos",
+        "PLAYBACK": "La reproducción",
+        "QUEUE": "Cola",
+        "SET": "Establecer",
+        "VOICEMAIL": "Voicemail",
+        "GOTO": "GoTo",
+        "HANGUP": "Colgar",
+        "CUSTOM": "Custom",
+        "PROJECT": "Proyecto Cally-Square",
+        "TECHNOLOGY/RESOURCE": "Tecnología/Resource",
+        "URL": "URL",
+        "EDIT_APP": "Aplicación de edición",
+        "EDIT_INTERVAL": "Editar intervalo",
+        "DELETE_APP": "Eliminar la aplicación",
+        "INTERVALS": "Intervalos",
+        "USER": "Usuario",
+        "TRUNK": "Tronco",
+        "PHONE": "Teléfono",
+        "AUDIO_FILES": "Archivos de audio",
+        "ANNOUNCE_OVERRIDES": "Anunciar anula",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "RULE": "Artículo",
+        "POSITION": "Posición",
+        "ANSWER": "Respuesta",
+        "VALUE": "Valor",
+        "MAILBOX@CONTEXT": "Buzón@Contexto",
+        "EXTENSION": "Extensión",
+        "PRIORITY": "Prioridad",
+        "HANGUP_CAUSE": "Causa colgar",
+        "OUTBOUNDDIAL": "Marcación saliente",
+        "CALLER_ID": "Caller ID (identificador de llamadas)",
+        "NO_MESSAGE_AVAILABLE": "No hay mensajes disponibles",
+        "NO_SOUND_AVAILABLE": "No hay sonidos disponibles",
+        "VOICERECORDINGS": "Grabaciones de voz",
+        "CHANSPIES": "Chan espías",
+        "VOICE": "Voz",
+        "REALTIME": "Realtime",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Contexto",
+        "NO_MOHSOUND_AVAILABLE": "Música en espera no disponible",
+        "FILE": "Archivo",
+        "ADD_MOHSOUND": "Agregar sonido de música en espera",
+        "DOWNLOAD_MOHSOUND": "Descargar música en espera sonido",
+        "DELETE_MOHSOUND": "Eliminar sonido de música en espera",
+        "UNIQUEID": "Identificador único",
+        "AGENT": "Agent",
+        "TYPE": "Tipo",
+        "RATING": "Rating",
+        "AUDIO": "Audio",
+        "DATE": "Fecha",
+        "NEW_VOICEQUEUE": "Nueva cola de voz",
+        "NEW_INBOUNDROUTE": "Nueva ruta de entrada",
+        "NEW_OUTBOUNDROUTE": "Nueva ruta saliente",
+        "NEW_INTERNALROUTE": "Nueva ruta interna",
+        "NEW_CONTEXT": "Nuevo contexto",
+        "NEW_VOICEMAIL": "Nuevo correo de voz",
+        "NEW_MUSICONHOLD": "Nueva música en espera",
+        "NEW_CHANSPY": "Nueva ChanSpy",
+        "PENALTY": "Pena",
+        "ADD_TEAM_TO_VOICEQUEUE": "Agregar equipo a cola de voz",
+        "ADD_AGENT_TO_VOICEQUEUE": "Agregar agente de cola de voz",
+        "EDIT_DIAL": "Editar marcación",
+        "EDIT_AGI": "Editar AGI",
+        "EDIT_INTERNALDIAL": "Editar marcación interna",
+        "EDIT_EXTERNALDIAL": "Editar marcación externa",
+        "EDIT_RINGGROUP": "Editar grupo de anillos",
+        "EDIT_PLAYBACK": "Editar reproducción",
+        "EDIT_QUEUE": "Editar cola",
+        "EDIT_SET": "Editar",
+        "EDIT_GOTO": "Editar GoTo",
+        "EDIT_HANGUP": "Editar Colgar",
+        "EDIT_CUSTOM": "Editar Custom",
+        "DURATION": "Duración",
+        "RECEIVED_AT": "Recibido en",
+        "YES": "Sí",
+        "NO": "No hay",
+        "HANGUPCAUSE_1": "1 = número sin asignar",
+        "HANGUPCAUSE_16": "16 = llamada Normail borrado",
+        "HANGUPCAUSE_17": "17 = Usuario ocupado",
+        "HANGUPCAUSE_18": "18 = Sin respuesta del usuario (teléfono Dispositivo no conectado)",
+        "HANGUPCAUSE_21": "21 = Llamada rechazada",
+        "HANGUPCAUSE_22": "22 = Número cambiado",
+        "HANGUPCAUSE_27": "27 = Destino fuera de orden.",
+        "HANGUPCAUSE_38": "38 = red fuera de orden.",
+        "HANGUPCAUSE_41": "41 = Error temporal",
+        "RANDOM": "Random",
+        "ALPHABETICAL": "Orden alfabético",
+        "NO_APPS_AVAILABLE": "No hay aplicaciones disponibles",
+        "DOWNLOAD_VOICERECORDING": "Descargar la grabación de voz",
+        "DELETE_VOICERECORDING": "Eliminar la grabación de voz",
+        "INTERNAL": "Interno",
+        "PHONE_STATE": "Estado del teléfono",
+        "PHONE_STATUS": "Estado del teléfono",
+        "REGISTERED": "Registrado",
+        "UNREGISTERED": "Unregistered",
+        "LAGGED": "Retrasado",
+        "REACHABLE": "Accesible",
+        "UNREACHABLE": "Inalcanzable",
+        "UNKNOWN": "Desconocida",
+        "NOT_INUSE": "No en uso",
+        "INUSE": "En uso",
+        "BUSY": "Ocupada",
+        "INVALID": "Invalid",
+        "UNAVAILABLE": "No disponible",
+        "RINGING": "Sonando",
+        "ONHOLD": "En espera",
+        "RING": "Ring",
+        "UP": "Arriba",
+        "INFO": "Info",
+        "TRUNKS": "Enlaces",
+        "REGISTRY": "Registro",
+        "NO_REGISTRY": "No hay registro",
+        "LOGGED_IN": "Iniciar sesión",
+        "PAUSED": "En pausa",
+        "WAITING": "Esperando",
+        "TALKING": "Hablando",
+        "DID": "¿",
+        "CALLER": "Llamador",
+        "TOTAL": "Total",
+        "ANSWERED": "Contestadas",
+        "ABANDONED": "Abandonado",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "Promedio de tiempo de espera",
+        "AVG_DURATION": "Duración AV",
+        "AVG_BILLABLE": "Avg facturable.",
+        "SOURCE": "Fuente",
+        "DESTINATION": "Destino",
+        "REJECTED": "Rechazada",
+        "FAILED": "Error",
+        "CALLED": "Llama",
+        "CONNECTED": "Conectado",
+        "NO_RATING": "Sin calificación",
+        "EDIT_VOICERECORDING": "Editar la grabación de voz",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - aplicación personalizada."
+        },
+        "APPLICATION_NAME": "Nombre de la aplicación",
+        "ARGUMENTS": "Argumentos",
+        "NO_AVAILABLE_INFO": "No hay información disponible",
+        "ADD_AGENT_TO_QUEUE": "Agregar a la cola del agente",
+        "DEFAULT_PAUSE": "Pausa predeterminada",
+        "PAUSE": "Pausa",
+        "UNPAUSE": "Reanudo",
+        "REDIRECT_TO_NUMBER": "Redirigir a número",
+        "REDIRECT_TO_AGENT": "Redirigir al agente",
+        "AGENTADD_VOICEQUEUE": "Agregar agente de cola de voz",
+        "APPLICATION": "Aplicación",
+        "FILES": "Archivos",
+        "FORMAT": "Formato",
+        "MODE": "Mode",
+        "RECORD": "Grabar",
+        "TEAMADD_VOICEQUEUE": "Agregar equipo voicequeue",
+        "NEW_MOHSOUND": "Nuevo sonido de música en espera",
+        "DOWNLOAD_MESSAGE": "Descargar",
+        "DELETE_MESSAGE": "Eliminar",
+        "QUEUE_PARAMS": "Parámetros de cola",
+        "TOTAL_OFFERED": "Total ofertado",
+        "READY": "Listo",
+        "AGENTADD_QUEUE": "Agregar Agente de colas de voz",
+        "AGENTSADD_QUEUE": "Añadir agentes a cola de voz",
+        "ALL_TEAMS": "Todos los equipos",
+        "SELECTED_TEAMS": "Los equipos seleccionados",
+        "ALL_AGENTS": "Todos los agentes",
+        "SELECTED_AGENTS": "Los agentes seleccionados",
+        "CLOSING": "Cerrar",
+        "TAGS": "Tags",
+        "WAITING_FOR_AGENTS": "Esperando para agentes",
+        "EDIT_OUTBOUNDDIAL": "Editar marcación saliente",
+        "VARIABLE": "Variable",
+        "CANT_PLAY_GSM_AUDIO_FILES": "No puede reproducir archivos de audio GSM",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "Cerrar sesión",
+        "TRUNK_STATUS": "Estado troncal",
+        "WAITING_FOR_AGENT": "Esperando para agentes",
+        "ACCOUNTNAME": "Nombre de cuenta"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/fa.json b/public/app/main/apps/voice/i18n/fa.json
new file mode 100644 (file)
index 0000000..6e41d91
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "نام",
+        "VOICEQUEUES": "صفهای طولانی صدا",
+        "SEARCH_FOR_ANYONE": "در جستجوی کسی",
+        "BACK": "پشت",
+        "SELECTED": "انتخاب می شود",
+        "SELECT_ALL": "همه را انتخاب کنید",
+        "SELECT_NONE": "هيچ كدام را انتخاب کنید",
+        "DELETE_VOICEDISPOSITION": "1626 صدا را حذف کنید",
+        "EDIT_VOICEDISPOSITION": "ویرایش صدا 1626",
+        "EDIT_VOICEQUEUE": "ویرایش صدا صف",
+        "DELETE_VOICEQUEUE": "صدای صف حذف می شود",
+        "MOHSOUNDS": "صدای درمانگاه بهداشتي",
+        "STRATEGY": "استراتژي",
+        "DESCRIPTION": "شرح",
+        "ADD_VOICEQUEUE": "افزودن صدا صف",
+        "CREATED_AT": "ایجاد شده در",
+        "ERRORS": {
+            "NAME_REQUIRED": "نام لازم است.",
+            "TIMEOUT_REQUIRED": "در پایان زمان لازم است.",
+            "PHONENUMBER_REQUIRED": "شماره تلفن مورد نیاز است.",
+            "CONTEXT_REQUIRED": "به محتوای مورد نیاز است.",
+            "DESTINATIONPATTERN_REQUIRED": "مقصد الگو لازم است.",
+            "FULLNAME_REQUIRED": "نام کامل لازم است.",
+            "EMAIL_REQUIRED": "آدرس ایمیل لازم است.",
+            "EMAIL_MUST_VALID": "آدرس ایمیل باید با فرمت معتبر نوشته شده است",
+            "MAILBOX_REQUIRED": "به Mailbox لازم است.",
+            "PASSWORD_REQUIRED": "رمز عبور لازم است.",
+            "CONFIRM_NOT_MATCH": "اسم رمزهای اين بازی نمیکنم",
+            "TIMEZONE_REQUIRED": "به Timezone لازم است.",
+            "PREFIX_REQUIRED": "اين پادتن لازم است.",
+            "OPTIONS_REQUIRED": "گزینه های مورد نیاز هستند.",
+            "AFTERCALLWORKDURATION_REQUIRED": "پس از تماس، مدت زمان کار لازم است.",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "فن آوری/منابع مورد نیاز است.",
+            "PHONE_REQUIRED": "تلفن لازم است.",
+            "VALUE_REQUIRED": "مقدار مورد نیاز است.",
+            "EXTENSION_REQUIRED": "توسعه لازم است.",
+            "PRIORITY_REQUIRED": "اولويت لازم است.",
+            "NAME_MUST_VALID_PATTERN": "نام باید با فرمت معتبر نوشته شده است",
+            "APPLICATION_REQUIRED": "برنامه کاربردی مورد نیاز است.",
+            "APPLICATION_NAME_REQUIRED": "نام برنامه کاربردی مورد نیاز است."
+        },
+        "GENERAL": "سردار",
+        "TIMEOUT": "پایان زمان مجاز",
+        "MAXLENGTH": "حداکثر طول",
+        "RETRY": "دوباره سعی کنید",
+        "WRAPUPTIME": "زمان Wrapup",
+        "WEIGHT": "وزن",
+        "JOINWHENEMPTY": "پيوستن به وقتی خالی است",
+        "LEAVEWHENEMPTY": "وقتی ترک خالی است",
+        "HELP": {
+            "TIMEOUT": "تعداد ثانیه تعیین می کند تا یکی از اعضای حلقه را نامگذاری کنید.",
+            "MAXLENGTH": "تعیین می کند، حداکثر تعداد مجاز باشد تا زمانيکه در صف انتظار. مقدار صفر است، یعنی به تعداد نامحدود از تمام ميوه ها بخور مجاز هستند در صف است.",
+            "RETRY": "تعیین می کند تعداد ثانیه صبر کنید قبل از اینکه اقدام به عضو بعدی در صف اگر در پایان زمان فرسوده است در حالي كه ارزش تلاش يك عضو حلقه صف است.",
+            "WRAPUPTIME": "تعداد ثانيه حفظ عضويت در دسترس نیست پس از اتمام صف تلفن است.",
+            "WEIGHT": "وزن يك تعريف صف است. يك صف با وزن بالاتر تعریف شده است که اولویت اول وقتی که اعضای مرتبط با صفهای طولانی چندگانه است.",
+            "JOINWHENEMPTY": "کنترل ها اعم از تماس گیرنده را در صف افزوده است وقتي كه ديگر اعضا موجود است.",
+            "LEAVEWHENEMPTY": "برای استفاده از تمام ميوه ها بخور کنترل اعم از آسیای شرقی هستند که وقتی توی صف که اعضای دیگر موجود نیست را می نامد.",
+            "ANNOUNCEFREQUENCY": "ما بايد تعريف هر چند وقت یکبار اعلام موقعیت تماس گیرنده است و/یا برآورد زمان را نگه دارید، در صف است. این تنظیم مقدار صفر را غیرفعال کنید.",
+            "MINANNOUNCEFREQUENCY": "حداقل مقدار تعیین می کند که باید زمان بگذرد خبرهاى تماس گیرنده را در صف باز شد. این است که وقتی تماس گیرنده استفاده می شود، ممکن است تغییر موضع مکرر، برای جلوگیری از تماس گیرنده با شنيدن چند سئوال را در يك مدت زمان كوتاه است.",
+            "PERIODICANNOUNCEFREQUENCY": "نشان می دهد که هر چند وقت یکبار ما بايد اعلاميه متناوب به تماس گیرنده.",
+            "ANNOUNCEPOSITIONLIMIT": "اگر شما استفاده از تعیین موقعیت را اعلام كنند يا از محدوده یا بیشتر است.",
+            "AFTERCALLWORKDURATION": "به مدت زمان مکث موزیک پس از تماس با این گزینه کار",
+            "MEMBERDELAY": "اگر می خواهید استفاده می شود که تاخير قبل از تماس گیرنده و صف عضو به يكديگر متصل شوند.",
+            "MUSICONHOLD": "آهنگ را تنظیم می کند تا به طبقه مورد استفاده خاص صف است.",
+            "ANNOUNCETOAGENT": "برای نواختن استفاده می شود اطلاعيه اى را به عنوان عامل اين است كه نوعا به دعوت ما پاسخ مثبت به او اجازه دهد که چه صف تماس گیرنده است.",
+            "RANDOMPERIODICANNOUNCE": "اگر بله، تنظیم شده، در يك اطلاعيه هاى متناوب تعریف نظم تصادفی است.",
+            "ANNOUNCEHOLDTIME": "آيا اين تعريف بايد برآورد زمان بازي را نگه دارید همراه با اطلاعيه هاى متناوب است.",
+            "ANNOUNCECALLERPOSITION": "آيا اين تعريف را در موقعیت تماس گیرنده در صف، به او اعلام شود. اگر نه، تنظیم موقعیت را اعلام خواهد كرد. اگر بله، تنظیم موقعیت تماس گیرنده، اعلام خواهد شد. اگر از مقدار تنظیم شده است، محدود خواهد شد صدای تماس گیرنده را در صف موقعيت خود را تنها در چارچوب تعريف شده، محدود است و در حد اعلام موضع است. اگر از مقدار تنظیم شده است، تماس گیرنده موقعیت او را بشنوند اگر فراتر از تعداد تعیین موقعیت و محدوده اعلام كند.",
+            "REPORTHOLDTIMEAGENT": "امکان گزارش دهی از تماس گیرنده، زمان را نگه دارید تا در صف مقدم بر عضو بردارند.",
+            "PERIODICANNOUNCE": "مجموعه ای از اعلاميه متناوب بازي باشد، بازي مي كردند و نظم را در آنها تعیین می شود.",
+            "HOLDTIMEANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"زمان\") را نگه دارید. اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "YOUARENEXTANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"اکنون شما در خط اول\"). اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "THEREAREANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (=))) وجود دارد. اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "WAITINGCALLSANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"انتظار\" می نامد). اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"جاري زمان تخمين زده شده است.\") را نگه دارید. اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "MINUTESANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"دقیقه\"). اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "MINUTEANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"لحظه\"). اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "SECONDSANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (\"ثانیه\"). اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "THANKYOUANNOUNCE": "اگر نه، برای تعیین مقدار پیش فرض (= تشکر از شما به خاطر صبر و شكيبايي\"). اگر به تنظیم مقدار خالی بوجود بياوريم، بازي نخواهد بود.",
+            "AFTERCALLWORK": "اگر فعال بود، عامل تنظیم می شود در مکث پس از تكميل در صف تلفن",
+            "AUTOPAUSE": "زیرنویس ها را فعال یا غیرفعال می کند/امکان می دهد به طور خودکار از خراب شدن عيوب لزديكترلن كسانتار عضو كه از پاسخ دادن به تلفن است. اگر علل این عضو فعال را در صفهای طولانی مكث، عضو است.",
+            "RINGINUSE": "به منظور اجتناب از استفاده از ارسال فراخوان برای اعضای آن است که وضعیت مورد استفاده است.",
+            "TIMEOUTRESTART": "اگر بله، تنظیم زمان وقفه nبازنشانی نمایش را عاملي براي پاسخ گويي به هر کدام از شلوغی و تراکم است که وضعیت را از شبكه دريافت كرد.",
+            "MONITORFORMAT": "فرمت فایل را تعیین می کند، به هنگام ضبط استفاده می شود. اگر از مانیتور با فرمت غیرفعال است، خواهان ثبت نخواهد شد.",
+            "CONTEXT": "به تماس گیرنده امکان می دهد تا برای خروج از صف را با فشار دادن یك DTMF رقمی است. اگر یک متن تعیین می شود و به تماس گیرنده شماره وارد شود، اين رقم در تلاش است که ادغام در متن تعیین می شود، و اعدام در dialplan ادامه خواهد داشت.",
+            "SETINTERFACEVARIABLES": "اگر روی بله، درست قبل از تماس گیرنده با بركت بودن صف عضو برخی از متغیرها تنظیم می شود(wiki)",
+            "SETQUEUEVARIABLES": "اگر روی بله، درست قبل از تماس گیرنده در صف، با بركت بودن عضو و فقط قبل از تماس گیرنده را در صف خروج از برخی متغیرها تنظیم می شود(wiki)",
+            "SETQUEUEENTRYVARIABLES": "اگر روی بله، درست قبل از تماس گیرنده با بركت بودن صف عضو برخی از متغیرها تنظیم می شود(wiki)",
+            "RECORDING": "قابلیت ضبط صدا",
+            "VOICEMAIL_CONTEXT": "متن گسترش نسبي است."
+        },
+        "MUSICONHOLD": "موسيقي را نگه دارید",
+        "ANNOUNCETOAGENT": "عامل را اعلام می کند",
+        "ANNOUNCEMENTS": "اعلامات",
+        "ADVANCED": "پيش رفت.",
+        "ANNOUNCEFREQUENCY": "فرکانس اعلام",
+        "MINANNOUNCEFREQUENCY": "حداقل فرکانس اعلام",
+        "PERIODICANNOUNCEFREQUENCY": "اعلام فرکانس متناوب",
+        "RANDOMPERIODICANNOUNCE": "اعلام ادواري تصادفی",
+        "ANNOUNCEHOLDTIME": "اعلام زمان را نگه دارید",
+        "ANNOUNCECALLERPOSITION": "اعلام موقعیت تماس گیرنده",
+        "ANNOUNCEPOSITIONLIMIT": "اعلام موضع محدود كردن",
+        "REPORTHOLDTIMEAGENT": "گزارش عامل زمان را نگه دارید",
+        "PERIODICANNOUNCE": "اعلام متناوب",
+        "HOLDTIMEANNOUNCE": "اعلام زمان را نگه دارید",
+        "YOUARENEXTANNOUNCE": "- شما بعد از اعلام شوند.",
+        "THEREAREANNOUNCE": "برای اطلاع از وجود دارد.",
+        "WAITINGCALLSANNOUNCE": "در انتظار اعلام مى نامد",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "برآورد زمان اعلام نگهدارید",
+        "MINUTESANNOUNCE": "دقیقه اعلام می کند",
+        "MINUTEANNOUNCE": "دقیقه اعلام می کند",
+        "SECONDSANNOUNCE": "ثانیه اعلام می کند",
+        "THANKYOUANNOUNCE": "'مرسی' اعلام می کند",
+        "AUTOPAUSE": "مکث خودکار",
+        "AFTERCALLWORK": "پس از فراخوان به کار",
+        "AFTERCALLWORKDURATION": "پس از مدت زمان کار تلفن",
+        "RINGINUSE": "در استفاده از حلقه",
+        "MEMBERDELAY": "عضو تاخير",
+        "TIMEOUTRESTART": "پایان زمان راه اندازی",
+        "MONITORFORMAT": "فرمت ضبط",
+        "SETINTERFACEVARIABLES": "رابط کاربری تنظیم متغیرها",
+        "SETQUEUEVARIABLES": "توی صف متغیرها را تنظیم کنید",
+        "SETQUEUEENTRYVARIABLES": "توی صف ورودی تنظیم متغیرها",
+        "CONTEXT": "متن",
+        "SAVE": "ذخیره",
+        "SETTINGS": "تنظیمات",
+        "INBOUNDROUTES": "مسافرانی که مسیرها",
+        "PHONENUMBER": "شماره تلفن همراه",
+        "ADD_INBOUNDROUTE": "مسافرانی که مسیر اضافه کنید",
+        "EDIT_INBOUNDROUTE": "ویرایش مسافرانی که مسیر",
+        "DELETE_INBOUNDROUTE": "مسافرانی که مسیر را حذف کنید",
+        "ACTIONS": "اقدامات",
+        "OUTBOUNDROUTES": "کارکنان ديگر مسيرها",
+        "DESTINATIONPATTERN": "مقصد الگو",
+        "ADD_OUTBOUNDROUTE": "برای مسیر اضافه کنید",
+        "EDIT_OUTBOUNDROUTE": "برای ويرايش مسير",
+        "DELETE_OUTBOUNDROUTE": "برای مسیر را حذف کنید",
+        "CUTDIGITS": "عدد برش",
+        "RECORDING": "ضبط كننده",
+        "RECORDINGFORMAT": "فرمت ضبط",
+        "INTERNALROUTES": "راههاي داخلي",
+        "ADD_INTERNALROUTE": "افزودن مسیر داخلی",
+        "EDIT_INTERNALROUTE": "ویرایش مسیر داخلی",
+        "DELETE_INTERNALROUTE": "مسیر داخلی را حذف کنید",
+        "CONTEXTS": "درباری",
+        "ADD_CONTEXT": "بافت اضافه کنید",
+        "EDIT_CONTEXT": "ویرایش متن",
+        "DELETE_CONTEXT": "متن را حذف کنید",
+        "VOICEMAILS": "Voicemails",
+        "ADD_VOICEMAIL": "افزودن پست صوتی",
+        "EDIT_VOICEMAIL": "ویرایش پست صوتی",
+        "DELETE_VOICEMAIL": "حذف پست صوتی",
+        "FULLNAME": "نام کامل",
+        "EMAIL": "آدرس ایمیل",
+        "MAILBOX": "Mailbox",
+        "PASSWORD": "اسم رمز",
+        "CONFIRM_PASSWORD": "تأیید رمز ورود",
+        "TIMEZONE": "Timezone",
+        "ATTACH": "را وصل کنید",
+        "ENVELOPE": "پاكت",
+        "DELETE": "حذف",
+        "EMAILBODY": "ایمیل بدن",
+        "EMAILSUBJECT": "موضوع ایمیل",
+        "MAXSECONDS": "حداکثر چند ثانیه",
+        "MAXMESSAGES": "حداکثر پیام ها",
+        "MESSAGES": "پیام",
+        "SORT": "این نوع",
+        "ADD_MUSICONHOLD": "افزودن موسيقي را نگه دارید",
+        "MUSICONHOLDS": "۹ آهنگ دسته بندی کرده ايم را نگه دارید",
+        "EDIT_MUSICONHOLD": "ویرایش موسیقی را نگه دارید",
+        "DELETE_MUSICONHOLD": "حذف موسيقي را نگه دارید",
+        "DIRECTORY": "فهرست راهنما",
+        "AUDIOFILES": "فایل های صوتی",
+        "RECORDINGS": "عنوانی",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "وراث",
+        "OPTIONS": "گزینه ها",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "افزودن ChanSpy",
+        "EDIT_CHANSPY": "ویرایش ChanSpy",
+        "DELETE_CHANSPY": "حذف ChanSpy",
+        "AGENTS": "عوامل",
+        "TELEPHONES": "تلفن ها",
+        "QUEUES": "صفهای طولانی",
+        "QUEUE_CALLS": "صف تلفن",
+        "QUEUE_PARAMETERS": "پارامترهای صف",
+        "ABANDONED_CALLS": "تماس های رها",
+        "OUTBOUND_CALLS": "تماس های کارکنان ديگر",
+        "AGI": "AGI",
+        "DIAL": "عناوين | پل ارتباطی | پيوندها | محصولات",
+        "INTERNALDIAL": "عناوين | پل ارتباطی | پيوندها | محصولات داخلی",
+        "EXTERNALDIAL": "عناوين | پل ارتباطی | پيوندها | محصولات خارجی",
+        "RINGGROUP": "گروه حلقه",
+        "PLAYBACK": "کیفیت پخش",
+        "QUEUE": "صف",
+        "SET": "تنظیم",
+        "VOICEMAIL": "پست صوتی",
+        "GOTO": "هيزن",
+        "HANGUP": "Hangup",
+        "CUSTOM": "عرف",
+        "PROJECT": "پروژه Cally-Square",
+        "TECHNOLOGY/RESOURCE": "فن آوری/منابع",
+        "URL": "آدرس کامل",
+        "EDIT_APP": "ویرایش برنامه کاربردی",
+        "EDIT_INTERVAL": "ویرایش فاصله",
+        "DELETE_APP": "حذف برنامه کاربردی",
+        "INTERVALS": "فواصل",
+        "USER": "این کاربر",
+        "TRUNK": "تنه",
+        "PHONE": "تلفن همراه",
+        "AUDIO_FILES": "فایل های صوتی",
+        "ANNOUNCE_OVERRIDES": "تنداب اعلام",
+        "MACRO": "ماکرو",
+        "GOSUB": "GoSub",
+        "RULE": "قانون",
+        "POSITION": "موقعیت",
+        "ANSWER": "پاسخ",
+        "VALUE": "مقدار",
+        "MAILBOX@CONTEXT": "Mailbox@متن",
+        "EXTENSION": "پسوند",
+        "PRIORITY": "اولويت",
+        "HANGUP_CAUSE": "علت Hangup",
+        "OUTBOUNDDIAL": "کارکنان ديگر عناوين | پل ارتباطی | پيوندها | محصولات",
+        "CALLER_ID": "شناسه تماس گیرنده",
+        "NO_MESSAGE_AVAILABLE": "نه پیام موجود است",
+        "NO_SOUND_AVAILABLE": "نه در دسترس بنظر میرسد",
+        "VOICERECORDINGS": "عنوانی صدا",
+        "CHANSPIES": "جاسوسان Chan",
+        "VOICE": "صدا",
+        "REALTIME": "Realtime",
+        "ID": "شناسه",
+        "VOICEMAIL_CONTEXT": "متن",
+        "NO_MOHSOUND_AVAILABLE": "هيچ موسيقي را در دسترس نگه دارید",
+        "FILE": "فایل",
+        "ADD_MOHSOUND": "افزودن موسيقي در صدا را نگه دارید",
+        "DOWNLOAD_MOHSOUND": "برای دانلود بر روی آهنگ صدا را نگه دارید",
+        "DELETE_MOHSOUND": "حذف موسیقی روی صدا را نگه دارید",
+        "UNIQUEID": "شناسه منحصر به فرد",
+        "AGENT": "عامل",
+        "TYPE": "نوع دستگاه",
+        "RATING": "درجه بندی",
+        "AUDIO": "های صوتی",
+        "DATE": "تاریخ",
+        "NEW_VOICEQUEUE": "صدای صف جدید",
+        "NEW_INBOUNDROUTE": "مسافرانی که مسیر جدید",
+        "NEW_OUTBOUNDROUTE": "برای مسیر جدید",
+        "NEW_INTERNALROUTE": "مسیر داخلی جدید",
+        "NEW_CONTEXT": "بافت جديد",
+        "NEW_VOICEMAIL": "پست صوتی جدید",
+        "NEW_MUSICONHOLD": "موسیقی جدید را نگه دارید",
+        "NEW_CHANSPY": "ChanSpy جدید",
+        "PENALTY": "مجازات اعدام",
+        "ADD_TEAM_TO_VOICEQUEUE": "افزودن صدا به صف تيم",
+        "ADD_AGENT_TO_VOICEQUEUE": "افزودن صدا به صف عامل",
+        "EDIT_DIAL": "ویرایش عناوين | پل ارتباطی | پيوندها | محصولات",
+        "EDIT_AGI": "ویرایش AGI",
+        "EDIT_INTERNALDIAL": "عناوين | پل ارتباطی | پيوندها | محصولات داخلی ویرایش",
+        "EDIT_EXTERNALDIAL": "ویرایش دگمه خارجی",
+        "EDIT_RINGGROUP": "ویرایش گروه حلقه",
+        "EDIT_PLAYBACK": "ویرایش یک مدیاپلیر",
+        "EDIT_QUEUE": "ویرایش صف",
+        "EDIT_SET": "ویرایش تنظیم",
+        "EDIT_GOTO": "ویرایش هيزن",
+        "EDIT_HANGUP": "ویرایش Hangup",
+        "EDIT_CUSTOM": "ویرایش اختصاصی",
+        "DURATION": "دوام",
+        "RECEIVED_AT": "را دريافت كرد.",
+        "YES": "بله",
+        "NO": "نه",
+        "HANGUPCAUSE_1": "1 = تعداد اعانه تخصيص داده نشده",
+        "HANGUPCAUSE_16": "16 = Normail فراخوان به پاك كردن",
+        "HANGUPCAUSE_17": "17 = مشغول کاربر",
+        "HANGUPCAUSE_18": "18 = بدون پاسخ نمی دهد (telehone کاربر دستگاه متصل نشده)",
+        "HANGUPCAUSE_21": "21 = رد تماس",
+        "HANGUPCAUSE_22": "22 = تعداد تغییر کرد",
+        "HANGUPCAUSE_27": "27 = از مقصد",
+        "HANGUPCAUSE_38": "38 = از نظم شبکه",
+        "HANGUPCAUSE_41": "41 = شكست موقت",
+        "RANDOM": "تصادفی",
+        "ALPHABETICAL": "ترتيب حروف الفبا",
+        "NO_APPS_AVAILABLE": "برنامه های کاربردی موجود نيست",
+        "DOWNLOAD_VOICERECORDING": "صداي ضبط را بارگیری کنید",
+        "DELETE_VOICERECORDING": "صداي ضبط را حذف کنید",
+        "INTERNAL": "داخلی",
+        "PHONE_STATE": "دولت تلفن همراه",
+        "PHONE_STATUS": "وضعیت تلفن همراه",
+        "REGISTERED": "ثبت نام",
+        "UNREGISTERED": "ثبت",
+        "LAGGED": "لنگان لنگان",
+        "REACHABLE": "ای قابل دسترسی نیست",
+        "UNREACHABLE": "سرگذشتهاي شگفتانگيزي درباره او شايع",
+        "UNKNOWN": "ناشناخته",
+        "NOT_INUSE": "در حال استفاده نيست.",
+        "INUSE": "مورد استفاده است",
+        "BUSY": "سرگرم",
+        "INVALID": "نامعتبر است",
+        "UNAVAILABLE": "English عناوين فونت فارسی - مسير فعلی",
+        "RINGING": "زنگ میزند",
+        "ONHOLD": "را نگه دارید",
+        "RING": "حلقه",
+        "UP": "به بالا",
+        "INFO": "اطلاعات توریستی",
+        "TRUNKS": "صندوقها",
+        "REGISTRY": "فهرست",
+        "NO_REGISTRY": "نه فهرست",
+        "LOGGED_IN": "وارد سیستم شوید",
+        "PAUSED": "يك لحظه مكث كرد",
+        "WAITING": "در انتظار",
+        "TALKING": "حرف زدن",
+        "DID": "آیا",
+        "CALLER": "تماس گیرنده",
+        "TOTAL": "کل",
+        "ANSWERED": "پاسخ داد",
+        "ABANDONED": "رها",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "میانگین زمان را نگه دارید",
+        "AVG_DURATION": "ماههاست AV",
+        "AVG_BILLABLE": "میانگین Billable",
+        "SOURCE": "منبع",
+        "DESTINATION": "تا مقصد",
+        "REJECTED": "رد",
+        "FAILED": "انجام نشد.",
+        "CALLED": "به نام",
+        "CONNECTED": "متصل شد",
+        "NO_RATING": "نه درجه بندی",
+        "EDIT_VOICERECORDING": "ویرایش صدا ضبط",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - برنامه کاربردی سفارشی است."
+        },
+        "APPLICATION_NAME": "نام برنامه کاربردی",
+        "ARGUMENTS": "دلايل",
+        "NO_AVAILABLE_INFO": "اطلاعات در دسترس نیست",
+        "ADD_AGENT_TO_QUEUE": "عامل به صف اضافه کنید",
+        "DEFAULT_PAUSE": "مکثی پیش فرض",
+        "PAUSE": "مکث",
+        "UNPAUSE": "Unpause",
+        "REDIRECT_TO_NUMBER": "Redirect به شماره",
+        "REDIRECT_TO_AGENT": "عامل به Redirect",
+        "AGENTADD_VOICEQUEUE": "افزودن صدا به صف عامل",
+        "APPLICATION": "برنامه کاربردی",
+        "FILES": "فایل ها",
+        "FORMAT": "قالب بندی",
+        "MODE": "حالت",
+        "RECORD": "ثبت",
+        "TEAMADD_VOICEQUEUE": "افزودن تيم Voicequeue",
+        "NEW_MOHSOUND": "آهنگ جدید بر روی صدا را نگه دارید",
+        "DOWNLOAD_MESSAGE": "دانلود",
+        "DELETE_MESSAGE": "حذف",
+        "QUEUE_PARAMS": "پارامترهای صف",
+        "TOTAL_OFFERED": "عرضه کل",
+        "READY": "آماده شد",
+        "AGENTADD_QUEUE": "عامل صفهای طولانی به صدا اضافه کنید",
+        "AGENTSADD_QUEUE": "ماموران به صف صدا اضافه کنید",
+        "ALL_TEAMS": "همه تیم ها",
+        "SELECTED_TEAMS": "تيم هاي برگزيده",
+        "ALL_AGENTS": "همه عوامل",
+        "SELECTED_AGENTS": "عوامل انتخاب شده",
+        "CLOSING": "بستن",
+        "TAGS": "برچسب",
+        "WAITING_FOR_AGENTS": "در انتظار عاملان",
+        "EDIT_OUTBOUNDDIAL": "برای ویرایش عناوين | پل ارتباطی | پيوندها | محصولات",
+        "VARIABLE": "متغیر",
+        "CANT_PLAY_GSM_AUDIO_FILES": "نمیتوانم gsm پخش فایل های صوتی",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "LOGOUT",
+        "TRUNK_STATUS": "وضعیت تنه",
+        "WAITING_FOR_AGENT": "در انتظار عاملان",
+        "ACCOUNTNAME": "نام اشتراک"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/fi.json b/public/app/main/apps/voice/i18n/fi.json
new file mode 100644 (file)
index 0000000..57cc21f
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Nimi",
+        "VOICEQUEUES": "Voice jonot",
+        "SEARCH_FOR_ANYONE": "Etsi joku",
+        "BACK": "Takaisin",
+        "SELECTED": "Valittu",
+        "SELECT_ALL": "Valitse kaikki",
+        "SELECT_NONE": "Valitse None (Ei mitään)",
+        "DELETE_VOICEDISPOSITION": "Poistaa jatkokäsittely",
+        "EDIT_VOICEDISPOSITION": "Muokkaa Voice jatkokäsittely",
+        "EDIT_VOICEQUEUE": "Muokkaa jonoa ääni",
+        "DELETE_VOICEQUEUE": "Poistaa jonosta",
+        "MOHSOUNDS": "Moh äänet",
+        "STRATEGY": "Strategia",
+        "DESCRIPTION": "Kuvaus",
+        "ADD_VOICEQUEUE": "Lisää ääni jono",
+        "CREATED_AT": "Luodaan",
+        "ERRORS": {
+            "NAME_REQUIRED": "Nimi on pakollinen",
+            "TIMEOUT_REQUIRED": "Aikakatkaisujakso on pakollinen",
+            "PHONENUMBER_REQUIRED": "Puhelinnumero on pakollinen",
+            "CONTEXT_REQUIRED": "Asiayhteys on pakollinen",
+            "DESTINATIONPATTERN_REQUIRED": "Kohteen kuvio on pakollinen",
+            "FULLNAME_REQUIRED": "Koko nimi on annettava",
+            "EMAIL_REQUIRED": "Sähköpostiosoite on pakollinen",
+            "EMAIL_MUST_VALID": "Sähköposti on kirjoitettava kelvollisessa muodossa",
+            "MAILBOX_REQUIRED": "Postilaatikko on pakollinen",
+            "PASSWORD_REQUIRED": "Salasana on pakollinen",
+            "CONFIRM_NOT_MATCH": "Jos salasana ei täsmää",
+            "TIMEZONE_REQUIRED": "Aikavyöhyke tarvitaan",
+            "PREFIX_REQUIRED": "Etuliite on pakollinen",
+            "OPTIONS_REQUIRED": "Vaihtoehdot ovat tarpeen mukaan",
+            "AFTERCALLWORKDURATION_REQUIRED": "Kun Jälkikäsittelyaika kesto ei tarvita",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Tekniikka/Resurssi ei tarvita",
+            "PHONE_REQUIRED": "Puhelin ei tarvita",
+            "VALUE_REQUIRED": "Arvo on pakollinen",
+            "EXTENSION_REQUIRED": "Laajennus on pakollinen",
+            "PRIORITY_REQUIRED": "Etusijalla on pakollinen",
+            "NAME_MUST_VALID_PATTERN": "Nimi on kirjoitettava kelvollisessa muodossa",
+            "APPLICATION_REQUIRED": "Sovellus ei tarvita",
+            "APPLICATION_NAME_REQUIRED": "Sovelluksen nimi on pakollinen"
+        },
+        "GENERAL": "Yleistä",
+        "TIMEOUT": "Aikakatkaisu",
+        "MAXLENGTH": "Nostovarren enimmäispituus",
+        "RETRY": "Yritä uudelleen",
+        "WRAPUPTIME": "Lähettämistietojen noutaminen aika",
+        "WEIGHT": "Paino",
+        "JOINWHENEMPTY": "Liity tyhjänä",
+        "LEAVEWHENEMPTY": "Jätä tyhjänä",
+        "HELP": {
+            "TIMEOUT": "Määrittää, kuinka monen sekunnin välein soi jäsenen laitteeseen.",
+            "MAXLENGTH": "Tämä asetus määrittää enimmäismäärän soittajat voi odottaa jonossa. Arvo nolla tarkoittaa rajoittamattoman määrän soittajat ovat sallittuja jonossa.",
+            "RETRY": "Määrittää sekuntien määrä ennen seuraavaa jäsentä jonoon, jos timeout on käytetty yritettäessä rengas on jonossa.",
+            "WRAPUPTIME": "Sekuntien määrä pitää jäsenvaltion käytettävissä jonossa purkamisen jälkeen.",
+            "WEIGHT": "Määrittää painon jonoon. Jono on suurempi paino määritetään saavat ensi sijassa kun jäsenet liittyvät useita jonoja.",
+            "JOINWHENEMPTY": "Ohjaa avataanko soittajan lisätään jonoon, kun jäsenet ovat käytettävissä.",
+            "LEAVEWHENEMPTY": "Tämän avulla, onko soittajat potkittiin ulos jonossa, kun parlamentin jäsenet eivät ole enää saatavilla ottaa puheluita.",
+            "ANNOUNCEFREQUENCY": "Määrittää, kuinka usein meidän on tunnustettava soittajan ja/tai arvioitu jonotusaikaan. Arvo on nolla, joka poistetaan käytöstä.",
+            "MINANNOUNCEFREQUENCY": "Asetus määrittää ajan, jonka on läpäistävä ennen tiedotamme soittajan jonon uudelleen. Tätä toimintoa käytetään, kun soittajan asento saattaa muuttua usein, jotta soittaja kuulee useita päivityksiä lyhyessä ajassa.",
+            "PERIODICANNOUNCEFREQUENCY": "Osoittaa, kuinka usein meidän on tehtävä määräajoin nauhoitettuja kuulutuksia soittajalle.",
+            "ANNOUNCEPOSITIONLIMIT": "Jos olet määrittänyt ilmoittaa-asemansa joko rajoittaa tai enemmän.",
+            "AFTERCALLWORKDURATION": "Kesto, kun tauko laukaissut Jälkikäsittelyaika vaihtoehto",
+            "MEMBERDELAY": "Jos haluamme, että on olemassa ennen soittajan jono parlamentin jäseneen toisiinsa.",
+            "MUSICONHOLD": "Asettaa musiikin luokka voidaan käyttää tiettyyn jonoon.",
+            "ANNOUNCETOAGENT": "Käyttää pelaamiseen ilmoittaa, että edustajan vastannut tyypillisesti hänelle mitä jono soittajan tulee.",
+            "RANDOMPERIODICANNOUNCE": "Jos arvoksi määritetään Kyllä, määritelty säännöllinen kuulutukset satunnaisessa järjestyksessä.",
+            "ANNOUNCEHOLDTIME": "Määrittää, onko arvioitu pitoaika tulee pelata yhdessä määräajoin kuulutuksiin.",
+            "ANNOUNCECALLERPOSITION": "Määrittää, onko soittajan jonon täytyy ilmoittaa hänelle. Jos arvoksi määritetään Ei, ei koskaan julkistettu. Jos arvoksi määritetään Kyllä, soittajan sijainti on aina ilmoittanut. Jos arvoksi on määritetty raja, Soittaja kuulee hänen sijaintinsa jonossa vain, jos se on enintään määritetty ilmoittaa asentoa. Jos arvoksi annetaan enemmän, Soittaja kuulee hänen kantaansa, jos se ei ole numero määritetään ilmoittavan asentoa.",
+            "REPORTHOLDTIMEAGENT": "Mahdollistaa raportointi kutsujan pidätysajan jonoon jäsenvaltioiden ennen verkkosiltausta käyttämällä.",
+            "PERIODICANNOUNCE": "Joukko säännölliset ilmoitukset, oli siinä järjestyksessä kuin ne on määritetty.",
+            "HOLDTIMEANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"Pitoaika\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "YOUARENEXTANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"nyt ensimmäisten joukossa\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "THEREAREANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"on\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "WAITINGCALLSANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"Puhelut odottamassa). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"Nykyinen arvioitu pidätysaika on\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "MINUTESANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"min\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "MINUTEANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"min\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "SECONDSANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"s\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "THANKYOUANNOUNCE": "Jos ei ole määritelty, oletusarvoa (\"Kiitos kärsivällisyydestäsi\"). Jos tämä on tyhjä arvo, kysy ei ollut lainkaan.",
+            "AFTERCALLWORK": "Jos aktiivinen, edustaja vaikuttavat tauon jälkeen puhelu loppuun jono",
+            "AUTOPAUSE": "Voit ottaa käyttöön tai poistaa käytöstä automaattisen keskeyttämällä sellaisia jäseniä, jotka eivät vastaa puheluun. Jos aktiivinen aiheuttaa kyseisen voi pysäyttää kaikki jonot hän kuuluu.",
+            "RINGINUSE": "Jotta lähettämässä puheluja jäsentä, joiden tila on käytössä.",
+            "TIMEOUTRESTART": "Jos arvoksi määritetään Kyllä, määrittää aikakatkaisun uudelleen, kun edustaja vastaa huomioidaanko on varattu tai ylikuormituksen tila on vastaanotettu kanavasta.",
+            "MONITORFORMAT": "Määrittää tiedoston muoto, jota käytetään tallennukseen. Jos monitorin näkymä on aktiivinen, vaatii ei tallenneta.",
+            "CONTEXT": "Mahdollistaa soittaja voi poistua jonon painamalla yhtä DTMF-numeroon. Jos yhteydessä on määritetty ja soittajan perussäädön, numero yrittää kohdistaa yhteydessä määritelty ja dialplan suorittaminen jatkuu.",
+            "SETINTERFACEVARIABLES": "Jos arvoksi määritetään Kyllä, juuri ennen kuin soittaja ei yhdistetä jonoon asettaneen muuttujia tulee(katso wiki)",
+            "SETQUEUEVARIABLES": "Jos arvoksi määritetään Kyllä, juuri ennen kuin soittaja ei yhdistetä jonoon ja juuri ennen poistumista soittajan jono joitakin tekijöitä tulee(katso wiki)",
+            "SETQUEUEENTRYVARIABLES": "Jos arvoksi määritetään Kyllä, juuri ennen kuin soittaja ei yhdistetä jonoon asettaneen muuttujia tulee(katso wiki)",
+            "RECORDING": "Jotta puheluiden nauhoitus",
+            "VOICEMAIL_CONTEXT": "Osana suhteellinen jatke."
+        },
+        "MUSICONHOLD": "Musiikkia puhelun ollessa pidossa",
+        "ANNOUNCETOAGENT": "Ilmoittaa Agent",
+        "ANNOUNCEMENTS": "Ilmoitukset",
+        "ADVANCED": "Tarkennettu",
+        "ANNOUNCEFREQUENCY": "Ilmoita taajuus",
+        "MINANNOUNCEFREQUENCY": "Pienin ilmoittaa taajuus",
+        "PERIODICANNOUNCEFREQUENCY": "Säännölliset ilmoittaa taajuus",
+        "RANDOMPERIODICANNOUNCE": "Satunnainen säännölliset ilmoittaa",
+        "ANNOUNCEHOLDTIME": "Ilmoita pidätysajan",
+        "ANNOUNCECALLERPOSITION": "Ilmoita soittajalle asento",
+        "ANNOUNCEPOSITIONLIMIT": "Ilmoita asennon",
+        "REPORTHOLDTIMEAGENT": "Mietintö Agent pidätysajan",
+        "PERIODICANNOUNCE": "Säännölliset ilmoittaa",
+        "HOLDTIMEANNOUNCE": "Käsittelyajan ilmoittaa",
+        "YOUARENEXTANNOUNCE": "\"Olet seuraava ilmoittaa",
+        "THEREAREANNOUNCE": "\"On\" ilmoittaa",
+        "WAITINGCALLSANNOUNCE": "Odottavien puheluiden ilmoittaa",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Arvioitu Pidätysajan ilmoittaa",
+        "MINUTESANNOUNCE": "Min ilmoittaa",
+        "MINUTEANNOUNCE": "Min ilmoittaa",
+        "SECONDSANNOUNCE": "S ilmoittaa",
+        "THANKYOUANNOUNCE": "Kiitos kaikille ilmoittaa",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Jälkikäsittelyaika",
+        "AFTERCALLWORKDURATION": "Jälkikäsittelyaika kesto",
+        "RINGINUSE": "Rengas on käytössä",
+        "MEMBERDELAY": "Jäsenvaltioiden viive",
+        "TIMEOUTRESTART": "Aikaylitys uudelleenkäynnistys",
+        "MONITORFORMAT": "Tallennusmuoto",
+        "SETINTERFACEVARIABLES": "Säädä käyttöliittymän muuttujat",
+        "SETQUEUEVARIABLES": "Määrittää jonon muuttujat",
+        "SETQUEUEENTRYVARIABLES": "Määrittää jonon muuttujien syöttö",
+        "CONTEXT": "Yhteydessä",
+        "SAVE": "Tallenna",
+        "SETTINGS": "Asetusten määrittäminen",
+        "INBOUNDROUTES": "Lähtevät reitit",
+        "PHONENUMBER": "Puhelinnumero",
+        "ADD_INBOUNDROUTE": "Lisää lähtevät reitti",
+        "EDIT_INBOUNDROUTE": "Muokkaa reitin saapuva",
+        "DELETE_INBOUNDROUTE": "Poista lähtevät reitti",
+        "ACTIONS": "Toimet",
+        "OUTBOUNDROUTES": "Lähtevä reitit",
+        "DESTINATIONPATTERN": "Kohteen kuvio",
+        "ADD_OUTBOUNDROUTE": "Lisää lähtevä reitti",
+        "EDIT_OUTBOUNDROUTE": "Muokkaa lähtevä reitti",
+        "DELETE_OUTBOUNDROUTE": "Poista lähtevä reitti",
+        "CUTDIGITS": "Leikkaa numeroa",
+        "RECORDING": "Tallennus",
+        "RECORDINGFORMAT": "Tallennusmuoto",
+        "INTERNALROUTES": "Kotimaan reitit",
+        "ADD_INTERNALROUTE": "Lisää sisäisiä reitti",
+        "EDIT_INTERNALROUTE": "Muokkaa reitin sisäisen",
+        "DELETE_INTERNALROUTE": "Poista sisäinen reitti",
+        "CONTEXTS": "Potilaslinkin vaihtaminen",
+        "ADD_CONTEXT": "Lisää yhteydessä",
+        "EDIT_CONTEXT": "Muokkaa yhteydessä",
+        "DELETE_CONTEXT": "Poista yhteydessä",
+        "VOICEMAILS": "Vastaajaviestit",
+        "ADD_VOICEMAIL": "Lisää vastaajaan",
+        "EDIT_VOICEMAIL": "Muokkaa vastaajaan",
+        "DELETE_VOICEMAIL": "Poista vastaajaviesti",
+        "FULLNAME": "Täydellinen nimi",
+        "EMAIL": "Sähköposti",
+        "MAILBOX": "Postilaatikkoon",
+        "PASSWORD": "Salasana",
+        "CONFIRM_PASSWORD": "Vahvista salasana",
+        "TIMEZONE": "Aikavyöhyke",
+        "ATTACH": "Kiinnitä",
+        "ENVELOPE": "Kirjekuori",
+        "DELETE": "Poista",
+        "EMAILBODY": "Sähköposti korissa",
+        "EMAILSUBJECT": "Email Subject",
+        "MAXSECONDS": "Enimmäisarvon sekunteina",
+        "MAXMESSAGES": "Max viestit",
+        "MESSAGES": "Viestit",
+        "SORT": "Lajittelujärjestys",
+        "ADD_MUSICONHOLD": "Lisää musiikkia puhelun ollessa pidossa",
+        "MUSICONHOLDS": "Novellin tekstikatkelmia pitoon",
+        "EDIT_MUSICONHOLD": "Muokkaa musiikkia puhelun ollessa pidossa",
+        "DELETE_MUSICONHOLD": "Poista musiikkia puhelun ollessa pidossa",
+        "DIRECTORY": "Hakemisto",
+        "AUDIOFILES": "Äänitiedostot",
+        "RECORDINGS": "Tallenteet",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Etuliite",
+        "OPTIONS": "Vaihtoehdot",
+        "AUTH": "Valt.",
+        "ADD_CHANSPY": "Lisää ChanSpy",
+        "EDIT_CHANSPY": "Muokkaa ChanSpy",
+        "DELETE_CHANSPY": "Poista ChanSpy",
+        "AGENTS": "Aineet",
+        "TELEPHONES": "Puhelimet",
+        "QUEUES": "Jonot",
+        "QUEUE_CALLS": "Puhelut jonossa",
+        "QUEUE_PARAMETERS": "Jono parametrit",
+        "ABANDONED_CALLS": "Hylätyt puhelut",
+        "OUTBOUND_CALLS": "Lähtevien puheluiden",
+        "AGI": "Yhteyttä opastuksen AGI",
+        "DIAL": "Valitsin",
+        "INTERNALDIAL": "Sisäinen valitsin",
+        "EXTERNALDIAL": "Ulkoinen valitsin",
+        "RINGGROUP": "Rengas ryhmä",
+        "PLAYBACK": "Toisto",
+        "QUEUE": "Jono",
+        "SET": "Aseta",
+        "VOICEMAIL": "Vastaaja",
+        "GOTO": "Siirry tietoturvakeskukseen",
+        "HANGUP": "Kirjautumispyynnön",
+        "CUSTOM": "Mukautettu",
+        "PROJECT": "Projektin cally-square",
+        "TECHNOLOGY/RESOURCE": "Tekniikka/Resurssi",
+        "URL": "URL",
+        "EDIT_APP": "Sovellus",
+        "EDIT_INTERVAL": "Muokkaa aikaväli",
+        "DELETE_APP": "Poista sovellus",
+        "INTERVALS": "Huoltovälit",
+        "USER": "Käyttäjä",
+        "TRUNK": "Trunk",
+        "PHONE": "Puhelin",
+        "AUDIO_FILES": "Äänitiedostot",
+        "ANNOUNCE_OVERRIDES": "Ilmoita ohittaa",
+        "MACRO": "Makro",
+        "GOSUB": "GoSub",
+        "RULE": "Sääntö",
+        "POSITION": "Asento",
+        "ANSWER": "Vastaus",
+        "VALUE": "Arvo",
+        "MAILBOX@CONTEXT": "Postilaatikko@yhteydessä",
+        "EXTENSION": "Laajennus",
+        "PRIORITY": "Prioriteetti",
+        "HANGUP_CAUSE": "Kirjautumispyynnön syy",
+        "OUTBOUNDDIAL": "Lähtevä valitsin",
+        "CALLER_ID": "Soittajan tunnus",
+        "NO_MESSAGE_AVAILABLE": "Ei ilmoituksia",
+        "NO_SOUND_AVAILABLE": "Ei käytettävissä",
+        "VOICERECORDINGS": "Äänitallennus",
+        "CHANSPIES": "Chan vakoojat",
+        "VOICE": "Ääni",
+        "REALTIME": "Tosiaikainen",
+        "ID": "Tunnus",
+        "VOICEMAIL_CONTEXT": "Yhteydessä",
+        "NO_MOHSOUND_AVAILABLE": "Musiikkia ei pitoon käytettävissä",
+        "FILE": "Tiedosto",
+        "ADD_MOHSOUND": "Lisää musiikkia puhelun ollessa pidossa ääni",
+        "DOWNLOAD_MOHSOUND": "Lataa musiikkia pitoon ääni",
+        "DELETE_MOHSOUND": "Poista musiikkia puhelun ollessa pidossa ääni",
+        "UNIQUEID": "Yksilöivä tunnus",
+        "AGENT": "Agent",
+        "TYPE": "Tyyppi",
+        "RATING": "Luokittelu",
+        "AUDIO": "Äänen",
+        "DATE": "Päivämäärä",
+        "NEW_VOICEQUEUE": "Uudet vastaajaviestit jono",
+        "NEW_INBOUNDROUTE": "Uusi saapuva reitti",
+        "NEW_OUTBOUNDROUTE": "Uusi lähtevä reitti",
+        "NEW_INTERNALROUTE": "Uusi sisäinen reitti",
+        "NEW_CONTEXT": "Uudessa tilanteessa",
+        "NEW_VOICEMAIL": "Uudet vastaajaviestit",
+        "NEW_MUSICONHOLD": "Uutta musiikkia pitoon",
+        "NEW_CHANSPY": "Uusi ChanSpy",
+        "PENALTY": "Kuolemanrangaistuksen poistaminen",
+        "ADD_TEAM_TO_VOICEQUEUE": "Lisää tallisi jonon ääni",
+        "ADD_AGENT_TO_VOICEQUEUE": "Lisää agentin Voice jono",
+        "EDIT_DIAL": "Muokkaa valitsin",
+        "EDIT_AGI": "Muokkaa yhteyttä opastuksen AGI",
+        "EDIT_INTERNALDIAL": "Muokkaa sisäisen puhelinnumeron",
+        "EDIT_EXTERNALDIAL": "Muokata ulkoisten valitsin",
+        "EDIT_RINGGROUP": "Muokkaa rengas ryhmä",
+        "EDIT_PLAYBACK": "Toisto",
+        "EDIT_QUEUE": "Muokkaa jonoa",
+        "EDIT_SET": "Aseta muokkaaminen",
+        "EDIT_GOTO": "Muokkaa GoTo",
+        "EDIT_HANGUP": "Muokkaa kirjautumispyynnön",
+        "EDIT_CUSTOM": "Muokkaa mukautettua",
+        "DURATION": "Kesto",
+        "RECEIVED_AT": "Vastaanotettu",
+        "YES": "Kyllä",
+        "NO": "N:o",
+        "HANGUPCAUSE_1": "1 = Jakamattomien numero",
+        "HANGUPCAUSE_16": "16 = Normail puhelun poisto",
+        "HANGUPCAUSE_17": "17 = Käyttäjän varattu",
+        "HANGUPCAUSE_18": "18 = ei vastaa (telehone laitetta ei ole liitetty)",
+        "HANGUPCAUSE_21": "21 = puhelun hylkääminen",
+        "HANGUPCAUSE_22": "22 = numero muuttunut",
+        "HANGUPCAUSE_27": "27 = kohde on epäkunnossa.",
+        "HANGUPCAUSE_38": "38 = verkosto ei käytössä",
+        "HANGUPCAUSE_41": "41 = tilapäinen vika",
+        "RANDOM": "Satunnainen",
+        "ALPHABETICAL": "Aakkosellinen",
+        "NO_APPS_AVAILABLE": "Ei käytettävissä olevat sovellukset",
+        "DOWNLOAD_VOICERECORDING": "Lataa äänitallennus",
+        "DELETE_VOICERECORDING": "Poista äänitallennus",
+        "INTERNAL": "Sisäinen",
+        "PHONE_STATE": "Puhelimen tila",
+        "PHONE_STATUS": "Puhelimen tila",
+        "REGISTERED": "Rekisteröity",
+        "UNREGISTERED": "Rekisteröimätön",
+        "LAGGED": "Jäänyt",
+        "REACHABLE": "Tavoitettavissa",
+        "UNREACHABLE": "Ei saada yhteyttä",
+        "UNKNOWN": "Tuntematon",
+        "NOT_INUSE": "Ne eivät ole käytössä",
+        "INUSE": "Käytössä",
+        "BUSY": "Varattu",
+        "INVALID": "Virheellinen",
+        "UNAVAILABLE": "Ei saatavissa",
+        "RINGING": "Soiva",
+        "ONHOLD": "Pitoon",
+        "RING": "Rengas",
+        "UP": "Ylös",
+        "INFO": "Info",
+        "TRUNKS": "Arkut",
+        "REGISTRY": "Rekisteri",
+        "NO_REGISTRY": "Rekisteri ei ole",
+        "LOGGED_IN": "Kirjautuneena",
+        "PAUSED": "Keskeytetty",
+        "WAITING": "Odottelua",
+        "TALKING": "Puhumme",
+        "DID": "Ei",
+        "CALLER": "Soittaja",
+        "TOTAL": "Yhteensä",
+        "ANSWERED": "Vastattu",
+        "ABANDONED": "Hylätty",
+        "UNMANAGED": "Hallittu",
+        "AVG_HOLD_TIME": "Keskim. pidätysajan",
+        "AVG_DURATION": "Av kesto",
+        "AVG_BILLABLE": "Välitysyritys avg",
+        "SOURCE": "Lähde",
+        "DESTINATION": "Kohde",
+        "REJECTED": "Hylätty",
+        "FAILED": "Epäonnistui",
+        "CALLED": "Nimeltään",
+        "CONNECTED": "Kytketty",
+        "NO_RATING": "Mitään luokitus",
+        "EDIT_VOICERECORDING": "Muokkaa äänitallennus",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - mukautettu sovellus."
+        },
+        "APPLICATION_NAME": "Sovelluksen nimi",
+        "ARGUMENTS": "Perustelut",
+        "NO_AVAILABLE_INFO": "Ei saatavana olevasta lataustehosta",
+        "ADD_AGENT_TO_QUEUE": "Lisää Edustajan jonoon",
+        "DEFAULT_PAUSE": "Oletusarvoisen tauon",
+        "PAUSE": "Tauko",
+        "UNPAUSE": "Unpause",
+        "REDIRECT_TO_NUMBER": "Uudelleenohjaus numero",
+        "REDIRECT_TO_AGENT": "Uudelleenohjaus Agent",
+        "AGENTADD_VOICEQUEUE": "Lisää agentin voice jono",
+        "APPLICATION": "Sovellus",
+        "FILES": "Tiedostot",
+        "FORMAT": "Muoto",
+        "MODE": "Tila",
+        "RECORD": "Tallennus",
+        "TEAMADD_VOICEQUEUE": "Lisää tallisi voicequeue",
+        "NEW_MOHSOUND": "Uutta musiikkia pitoon ääni",
+        "DOWNLOAD_MESSAGE": "Lataa",
+        "DELETE_MESSAGE": "Poista",
+        "QUEUE_PARAMS": "Jono parametrit",
+        "TOTAL_OFFERED": "Tarjotaan yhteensä",
+        "READY": "Valmis",
+        "AGENTADD_QUEUE": "Lisää agentin voice jonot",
+        "AGENTSADD_QUEUE": "Lisää agentteja voice jono",
+        "ALL_TEAMS": "Kaikki joukkueet",
+        "SELECTED_TEAMS": "Valittu työryhmille",
+        "ALL_AGENTS": "Kaikki toimijat",
+        "SELECTED_AGENTS": "Valitut edustajat",
+        "CLOSING": "Sulkeminen",
+        "TAGS": "Tunnisteet",
+        "WAITING_FOR_AGENTS": "Odota aineet",
+        "EDIT_OUTBOUNDDIAL": "Muokkaa lähtevä valitsin",
+        "VARIABLE": "Muuttuja",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Toistaminen ei onnistu gsm-äänitiedostoja",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "Kirjaudu ulos",
+        "TRUNK_STATUS": "Takaluukun tila",
+        "WAITING_FOR_AGENT": "Odota aineet",
+        "ACCOUNTNAME": "Tilin nimi"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/fr.json b/public/app/main/apps/voice/i18n/fr.json
new file mode 100644 (file)
index 0000000..559f79c
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Nom",
+        "VOICEQUEUES": "Les files d'attente de la voix",
+        "SEARCH_FOR_ANYONE": "Vous pouvez chercher n'importe qui",
+        "BACK": "Retour",
+        "SELECTED": "Sélectionné",
+        "SELECT_ALL": "Sélectionnez tous les",
+        "SELECT_NONE": "Sélectionnez Aucun",
+        "DELETE_VOICEDISPOSITION": "Supprimer la disposition de la voix",
+        "EDIT_VOICEDISPOSITION": "Modifier la disposition de la voix",
+        "EDIT_VOICEQUEUE": "File d'attente voix modifier",
+        "DELETE_VOICEQUEUE": "Supprimer la file d'attente de la voix",
+        "MOHSOUNDS": "Sons Moh",
+        "STRATEGY": "Stratégie",
+        "DESCRIPTION": "Description",
+        "ADD_VOICEQUEUE": "File d'attente voix Ajouter",
+        "CREATED_AT": "Créé à",
+        "ERRORS": {
+            "NAME_REQUIRED": "Le nom est obligatoire",
+            "TIMEOUT_REQUIRED": "Le délai est nécessaire",
+            "PHONENUMBER_REQUIRED": "Le numéro de téléphone est requis",
+            "CONTEXT_REQUIRED": "Le contexte est requis",
+            "DESTINATIONPATTERN_REQUIRED": "La destination est nécessaire",
+            "FULLNAME_REQUIRED": "Le nom complet est requis",
+            "EMAIL_REQUIRED": "L'email est requis",
+            "EMAIL_MUST_VALID": "L'e-mail doit être écrit dans un format valide",
+            "MAILBOX_REQUIRED": "La boîte aux lettres est nécessaire",
+            "PASSWORD_REQUIRED": "Le mot de passe est requis",
+            "CONFIRM_NOT_MATCH": "Les mots de passe ne correspondent pas",
+            "TIMEZONE_REQUIRED": "Le fuseau horaire est requis",
+            "PREFIX_REQUIRED": "Le préfixe est requis",
+            "OPTIONS_REQUIRED": "Les options sont requises",
+            "AFTERCALLWORKDURATION_REQUIRED": "La durée de travail après appel est requis",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "La technologie/ressource est nécessaire",
+            "PHONE_REQUIRED": "Le téléphone est requis",
+            "VALUE_REQUIRED": "Cette valeur est requise",
+            "EXTENSION_REQUIRED": "L'extension est requis",
+            "PRIORITY_REQUIRED": "La priorité est requise",
+            "NAME_MUST_VALID_PATTERN": "Le nom doit être écrit dans un format valide",
+            "APPLICATION_REQUIRED": "L'Application est requise",
+            "APPLICATION_NAME_REQUIRED": "Le nom de l'application n'est nécessaire"
+        },
+        "GENERAL": "Général",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Longueur maximale",
+        "RETRY": "Réessayer",
+        "WRAPUPTIME": "Le temps de post-appel",
+        "WEIGHT": "Poids",
+        "JOINWHENEMPTY": "Inscrivez-vous à vide",
+        "LEAVEWHENEMPTY": "Laisser à vide",
+        "HELP": {
+            "TIMEOUT": "Spécifie le nombre de secondes d'un anneau périphérique du membre.",
+            "MAXLENGTH": "Spécifie le nombre maximum d'appelants autorisés à être en attente dans une file d'attente. Une valeur de zéro signifie un nombre illimité d'appels sont admis dans la file d'attente.",
+            "RETRY": "Spécifie le nombre de secondes à attendre avant d'essayer le membre suivant de la file d'attente si la valeur de temporisation est épuisé lors de la tentative de bague d'un membre de la file d'attente.",
+            "WRAPUPTIME": "Le nombre de secondes durant lequel un membre indisponible dans une file d'attente après avoir terminé un appel.",
+            "WEIGHT": "Définit le poids d'une file d'attente. Une file d'attente avec un poids plus élevé défini aura priorité lorsque les membres sont associés à plusieurs files d'attente.",
+            "JOINWHENEMPTY": "Contrôle si un appelant est ajouté à la file d'attente quand il n'y a pas de membres sont disponibles.",
+            "LEAVEWHENEMPTY": "Utilisé pour contrôler si les appelants sont chassés de la file d'attente quand les membres sont plus disponibles pour prendre des appels.",
+            "ANNOUNCEFREQUENCY": "Définit la fréquence à laquelle nous devrions annoncer le numéro de poste et/ou l'estimation du temps d'attente dans la file d'attente. Définissez cette valeur à zéro pour désactiver.",
+            "MINANNOUNCEFREQUENCY": "Indique le montant minimum qui doit s'écouler avant de nous annoncer le numéro de position dans la file d'attente. Ceci est utilisé lorsque la position de l'appelant peuvent changer fréquemment, pour empêcher l'audition de l'appelant plusieurs mises à jour dans un court laps de temps.",
+            "PERIODICANNOUNCEFREQUENCY": "Indique la fréquence à laquelle on devrait faire des annonces périodiques à l'appelant.",
+            "ANNOUNCEPOSITIONLIMIT": "Utilisé si vous avez défini annoncer-position de limiter ou plus.",
+            "AFTERCALLWORKDURATION": "La durée de la Pause déclenché par l'option de suivi d'appel",
+            "MEMBERDELAY": "Utilisé si vous voulez qu'il y ait un délai avant l'appelant et de la file d'états d'être connectés les uns aux autres.",
+            "MUSICONHOLD": "Définit la classe de musique d'être utilisés par une file d'attente.",
+            "ANNOUNCETOAGENT": "Utilisé pour la lecture d'une annonce à l'agent qui a répondu à l'appel, généralement pour lui faire savoir ce que l'appelant est l'attente.",
+            "RANDOMPERIODICANNOUNCE": "Si défini à Oui, jouera la définie annonces périodiques dans un ordre aléatoire.",
+            "ANNOUNCEHOLDTIME": "Définit si l'estimation du temps d'attente devrait être joué avec les annonces périodiques.",
+            "ANNOUNCECALLERPOSITION": "Définit si le numéro de position dans la file d'attente devrait être annoncé à elle. Si elle est définie sur Non, la position ne sera jamais annoncé. Si défini à Oui, la position de l'appelant sera toujours annoncée. Si la valeur est défini pour limiter, l'appelant entendra sa position dans la file d'attente que si elle est dans la limite définie par annoncer-position-limite. Si la valeur est définie à plus, l'appelant entendra son poste s'il est au-delà du nombre défini par annoncer-position-limite.",
+            "REPORTHOLDTIMEAGENT": "La déclaration permet de tenir le temps de la file d'états avant de combler.",
+            "PERIODICANNOUNCE": "Un ensemble d'annonces périodiques d'être joué, joué dans l'ordre où elles sont définies.",
+            "HOLDTIMEANNOUNCE": "Si non définie, jouera la valeur par défaut (\"le temps d'attente\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "YOUARENEXTANNOUNCE": "Si non définie, jouera la valeur par défaut (\"Vous êtes maintenant en première ligne\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "THEREAREANNOUNCE": "Si non définie, jouera la valeur par défaut (\"Il y a\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "WAITINGCALLSANNOUNCE": "Si non définie, jouera la valeur par défaut (\"appels en attente\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Si non définie, jouera la valeur par défaut (\"le temps d'attente est estimé actuel\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "MINUTESANNOUNCE": "Si non définie, jouera la valeur par défaut (\"minutes\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "MINUTEANNOUNCE": "Si non définie, jouera la valeur par défaut (\"minute\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "SECONDSANNOUNCE": "Si non définie, jouera la valeur par défaut (\"S\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "THANKYOUANNOUNCE": "Si non définie, jouera la valeur par défaut (\"Merci pour votre patience\"). Si elle est définie sur une valeur vide, le message ne sera pas joué du tout.",
+            "AFTERCALLWORK": "Si actif, l'agent va être mis sur pause après un appel sur la file d'attente",
+            "AUTOPAUSE": "Active/désactive la mise en pause automatique de membres qui ne parviennent pas à répondre à un appel. Les causes actives si ce membre d'être en pause dans toutes les files d'attente Il est membre.",
+            "RINGINUSE": "Utilisé pour éviter d'envoyer des membres dont le statut est En cours d'utilisation.",
+            "TIMEOUTRESTART": "Si défini à Oui, réinitialise la temporisation d'un agent de répondre si l'une d'occupation ou de l'état de la congestion est reçu de la chaîne.",
+            "MONITORFORMAT": "Spécifie le format de fichier à utiliser lors de l'enregistrement. Si le moniteur-format est inactif, les appels ne seront pas enregistrées.",
+            "CONTEXT": "Permet à un appelant pour quitter la file en appuyant sur un seul chiffre DTMF. Si un contexte est spécifié et l'appelant entre un nombre, ce chiffre va tenter de s'accompagner dans le contexte spécifié, et il continuera d'exécution dialplan.",
+            "SETINTERFACEVARIABLES": "Si défini à Oui, juste avant l'appelant via une passerelle avec une file d'états certaines variables seront set(voir image)",
+            "SETQUEUEVARIABLES": "Si défini à Oui, juste avant l'appelant via une passerelle avec une file d'états et à l'appelant juste avant de quitter la file d'certaines variables sera définie(voir image)",
+            "SETQUEUEENTRYVARIABLES": "Si défini à Oui, juste avant l'appelant via une passerelle avec une file d'états certaines variables seront set(voir image)",
+            "RECORDING": "Activer l'enregistrement de l'appel",
+            "VOICEMAIL_CONTEXT": "Le contexte de l'extension."
+        },
+        "MUSICONHOLD": "La musique d'attente",
+        "ANNOUNCETOAGENT": "Annoncer à l'Agent",
+        "ANNOUNCEMENTS": "Annonces",
+        "ADVANCED": "Recherche avancée",
+        "ANNOUNCEFREQUENCY": "Fréquence annoncer",
+        "MINANNOUNCEFREQUENCY": "La fréquence minimum annoncer",
+        "PERIODICANNOUNCEFREQUENCY": "Fréquence annoncer périodique",
+        "RANDOMPERIODICANNOUNCE": "Annoncer périodiques aléatoires",
+        "ANNOUNCEHOLDTIME": "Annoncer le temps d'attente",
+        "ANNOUNCECALLERPOSITION": "Annoncer la position de l'appelant",
+        "ANNOUNCEPOSITIONLIMIT": "Limite d'annoncer",
+        "REPORTHOLDTIMEAGENT": "Temps de maintien de l'agent Rapport",
+        "PERIODICANNOUNCE": "Annoncer périodique",
+        "HOLDTIMEANNOUNCE": "Du temps d'attente, annoncer",
+        "YOUARENEXTANNOUNCE": "'Vous êtes next' annoncer",
+        "THEREAREANNOUNCE": "'Il y a' annoncer",
+        "WAITINGCALLSANNOUNCE": "Des appels en attente annoncer",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Le temps d'attente estimé annoncer",
+        "MINUTESANNOUNCE": "Minutes Annoncer",
+        "MINUTEANNOUNCE": "Minute Annoncer",
+        "SECONDSANNOUNCE": "S'annoncer",
+        "THANKYOUANNOUNCE": "\"Merci\" Annoncer",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Après appel",
+        "AFTERCALLWORKDURATION": "Durée de travail après appel",
+        "RINGINUSE": "L'utilisation de bague",
+        "MEMBERDELAY": "Retard Membre",
+        "TIMEOUTRESTART": "Timeout Redémarrer",
+        "MONITORFORMAT": "Format d'enregistrement",
+        "SETINTERFACEVARIABLES": "Définir les variables d'interface",
+        "SETQUEUEVARIABLES": "Les variables d'attente du jeu",
+        "SETQUEUEENTRYVARIABLES": "Définir les variables d'entrée",
+        "CONTEXT": "Contexte",
+        "SAVE": "Sauvegarder",
+        "SETTINGS": "Settings",
+        "INBOUNDROUTES": "Routes entrantes",
+        "PHONENUMBER": "Numéro de téléphone",
+        "ADD_INBOUNDROUTE": "Ajouter Route entrante",
+        "EDIT_INBOUNDROUTE": "Edit Route entrante",
+        "DELETE_INBOUNDROUTE": "Supprimer la Route entrante",
+        "ACTIONS": "Actions",
+        "OUTBOUNDROUTES": "Routes sortantes",
+        "DESTINATIONPATTERN": "Profil de destination",
+        "ADD_OUTBOUNDROUTE": "Voie de départ ajouter",
+        "EDIT_OUTBOUNDROUTE": "Voie de départ modifier",
+        "DELETE_OUTBOUNDROUTE": "Voie de départ supprimer",
+        "CUTDIGITS": "Chiffres coupe",
+        "RECORDING": "L'enregistrement",
+        "RECORDINGFORMAT": "Format d'enregistrement",
+        "INTERNALROUTES": "Les routes internes.",
+        "ADD_INTERNALROUTE": "Ajouter l'acheminement interne",
+        "EDIT_INTERNALROUTE": "Modifier l'acheminement interne",
+        "DELETE_INTERNALROUTE": "Supprimer l'acheminement interne",
+        "CONTEXTS": "Contextes",
+        "ADD_CONTEXT": "Ajouter un contexte",
+        "EDIT_CONTEXT": "Contexte Modifier",
+        "DELETE_CONTEXT": "Supprimer le cadre",
+        "VOICEMAILS": "Messages vocaux",
+        "ADD_VOICEMAIL": "Ajouter la messagerie vocale",
+        "EDIT_VOICEMAIL": "Modifier la messagerie vocale",
+        "DELETE_VOICEMAIL": "Supprimer message",
+        "FULLNAME": "Nom complet",
+        "EMAIL": "Email",
+        "MAILBOX": "Boîte aux lettres",
+        "PASSWORD": "Mot de passe oublié",
+        "CONFIRM_PASSWORD": "Confirmer le mot de passe",
+        "TIMEZONE": "Timezone",
+        "ATTACH": "Fixer",
+        "ENVELOPE": "Envelope",
+        "DELETE": "Supprimer",
+        "EMAILBODY": "Corps de l'e-mail",
+        "EMAILSUBJECT": "L'objet du courriel",
+        "MAXSECONDS": "Max Secondes",
+        "MAXMESSAGES": "Max Messages",
+        "MESSAGES": "Messages",
+        "SORT": "Trier",
+        "ADD_MUSICONHOLD": "Ajouter de la musique en attente",
+        "MUSICONHOLDS": "Musiques en attente",
+        "EDIT_MUSICONHOLD": "Modifier la musique en attente",
+        "DELETE_MUSICONHOLD": "Supprimer la musique d'attente",
+        "DIRECTORY": "Directory",
+        "AUDIOFILES": "Les fichiers audio",
+        "RECORDINGS": "Enregistrements sonores",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefix",
+        "OPTIONS": "Options",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Ajouter ChanSpy",
+        "EDIT_CHANSPY": "Éditer ChanSpy",
+        "DELETE_CHANSPY": "Supprimer ChanSpy",
+        "AGENTS": "Mandataires",
+        "TELEPHONES": "Telephones",
+        "QUEUES": "Files d'attente",
+        "QUEUE_CALLS": "Les appels en file d'attente",
+        "QUEUE_PARAMETERS": "Les paramètres de file d'attente",
+        "ABANDONED_CALLS": "Les appels abandonnés",
+        "OUTBOUND_CALLS": "Les appels sortants",
+        "AGI": "Mga",
+        "DIAL": "Composer",
+        "INTERNALDIAL": "Numérotation interne",
+        "EXTERNALDIAL": "Numérotation externe",
+        "RINGGROUP": "Groupe anneau",
+        "PLAYBACK": "La lecture",
+        "QUEUE": "Queue",
+        "SET": "Set",
+        "VOICEMAIL": "La messagerie vocale",
+        "GOTO": "GoTo",
+        "HANGUP": "Raccroché.",
+        "CUSTOM": "Custom",
+        "PROJECT": "Projet d'Cally-Square",
+        "TECHNOLOGY/RESOURCE": "Ressources/technologie",
+        "URL": "URL",
+        "EDIT_APP": "Modification d'une demande",
+        "EDIT_INTERVAL": "Intervalle d'édition",
+        "DELETE_APP": "Supprimer l'application",
+        "INTERVALS": "Intervalles réguliers",
+        "USER": "User",
+        "TRUNK": "Trunk",
+        "PHONE": "Téléphone",
+        "AUDIO_FILES": "Les fichiers audio",
+        "ANNOUNCE_OVERRIDES": "Annoncer remplace",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "RULE": "La règle",
+        "POSITION": "Poste",
+        "ANSWER": "Répondre à",
+        "VALUE": "Valeur",
+        "MAILBOX@CONTEXT": "Contexte@Boîte aux lettres",
+        "EXTENSION": "Extension",
+        "PRIORITY": "La priorité",
+        "HANGUP_CAUSE": "Cause de raccrochage",
+        "OUTBOUNDDIAL": "Numérotation sortante",
+        "CALLER_ID": "L'identification de l'appelant",
+        "NO_MESSAGE_AVAILABLE": "Aucun message disponible",
+        "NO_SOUND_AVAILABLE": "Pas de sons disponibles",
+        "VOICERECORDINGS": "Les enregistrements vocaux",
+        "CHANSPIES": "Chan Spies",
+        "VOICE": "Voix",
+        "REALTIME": "Des nouvelles en temps réel",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Contexte",
+        "NO_MOHSOUND_AVAILABLE": "Aucune musique d'attente disponible",
+        "FILE": "Dossier",
+        "ADD_MOHSOUND": "Ajouter une musique d'attente",
+        "DOWNLOAD_MOHSOUND": "Télécharger de la musique en attente sound",
+        "DELETE_MOHSOUND": "Supprimer le son de la musique d'attente",
+        "UNIQUEID": "ID unique",
+        "AGENT": "Agent",
+        "TYPE": "Type",
+        "RATING": "0",
+        "AUDIO": "L'audio",
+        "DATE": "Date",
+        "NEW_VOICEQUEUE": "File d'attente voix nouvelles",
+        "NEW_INBOUNDROUTE": "Nouvelle route entrante",
+        "NEW_OUTBOUNDROUTE": "Nouvelle route sortante",
+        "NEW_INTERNALROUTE": "Nouvelle route interne",
+        "NEW_CONTEXT": "Nouveau contexte",
+        "NEW_VOICEMAIL": "Nouvelle messagerie vocale",
+        "NEW_MUSICONHOLD": "La Nouvelle musique d'attente",
+        "NEW_CHANSPY": "Nouveau ChanSpy",
+        "PENALTY": "De mort",
+        "ADD_TEAM_TO_VOICEQUEUE": "Ajouter à l'équipe d'attente de voix",
+        "ADD_AGENT_TO_VOICEQUEUE": "Ajouter à la file d'attente de la voix de l'Agent",
+        "EDIT_DIAL": "Composition modifiée",
+        "EDIT_AGI": "Éditer les MGA",
+        "EDIT_INTERNALDIAL": "Numérotation interne modifier",
+        "EDIT_EXTERNALDIAL": "Modifier le cadran externe",
+        "EDIT_RINGGROUP": "Modifier groupe anneau",
+        "EDIT_PLAYBACK": "Modifier la lecture",
+        "EDIT_QUEUE": "Modifier la file d'attente",
+        "EDIT_SET": "Ensemble Modifier",
+        "EDIT_GOTO": "Edit GoTo",
+        "EDIT_HANGUP": "Raccrochage Modifier",
+        "EDIT_CUSTOM": "Personnaliser",
+        "DURATION": "Durée",
+        "RECEIVED_AT": "Reçu au",
+        "YES": "Oui",
+        "NO": "Pas de",
+        "HANGUPCAUSE_1": "1  = numéro non attribué",
+        "HANGUPCAUSE_16": "16 Centre d'appel  = Normail",
+        "HANGUPCAUSE_17": "17  = Utilisateur occupé",
+        "HANGUPCAUSE_18": "18  = Pas de réponse de l'utilisateur (téléphone non connecté)",
+        "HANGUPCAUSE_21": "21  = Appel rejeté",
+        "HANGUPCAUSE_22": "22  = numéro modifié",
+        "HANGUPCAUSE_27": "27  = Destination dans le désordre",
+        "HANGUPCAUSE_38": "38  = réseau hors service",
+        "HANGUPCAUSE_41": "41  = défaillance temporaire",
+        "RANDOM": "Random",
+        "ALPHABETICAL": "L'ordre alphabétique",
+        "NO_APPS_AVAILABLE": "Pas d'applications disponibles",
+        "DOWNLOAD_VOICERECORDING": "Télécharger l'enregistrement vocal",
+        "DELETE_VOICERECORDING": "Supprimer l'enregistrement vocal",
+        "INTERNAL": "Régie interne",
+        "PHONE_STATE": "État du téléphone",
+        "PHONE_STATUS": "Etat du téléphone",
+        "REGISTERED": "Date d'inscription",
+        "UNREGISTERED": "Non",
+        "LAGGED": "À la traîne",
+        "REACHABLE": "Accessible",
+        "UNREACHABLE": "Inaccessible",
+        "UNKNOWN": "Inconnu",
+        "NOT_INUSE": "Il n'est pas utilisé",
+        "INUSE": "En cours d'utilisation",
+        "BUSY": "Occupé",
+        "INVALID": "Invalid",
+        "UNAVAILABLE": "Indisponible",
+        "RINGING": "En sonnerie",
+        "ONHOLD": "En attente",
+        "RING": "Ring",
+        "UP": "Jusqu'",
+        "INFO": "Info",
+        "TRUNKS": "Trunks",
+        "REGISTRY": "Greffe",
+        "NO_REGISTRY": "Pas de registre",
+        "LOGGED_IN": "Connecté",
+        "PAUSED": "En pause",
+        "WAITING": "L'attente",
+        "TALKING": "Parler",
+        "DID": "N",
+        "CALLER": "Appelant",
+        "TOTAL": "Total",
+        "ANSWERED": "Répondre",
+        "ABANDONED": "Abandonné",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "Temps de mise en attente",
+        "AVG_DURATION": "Durée av",
+        "AVG_BILLABLE": "Facturable Avg",
+        "SOURCE": "Source",
+        "DESTINATION": "Destination",
+        "REJECTED": "Rejeté",
+        "FAILED": "N",
+        "CALLED": "Appelé",
+        "CONNECTED": "Connecté",
+        "NO_RATING": "Pas de cote",
+        "EDIT_VOICERECORDING": "Éditer l'enregistrement vocal",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - application sur mesure."
+        },
+        "APPLICATION_NAME": "Nom de l'application",
+        "ARGUMENTS": "Arguments",
+        "NO_AVAILABLE_INFO": "Aucune information disponible",
+        "ADD_AGENT_TO_QUEUE": "Ajouter à la file d'attente de l'Agent",
+        "DEFAULT_PAUSE": "PAUSE PAR DÉFAUT",
+        "PAUSE": "Mettre en pause",
+        "UNPAUSE": "Reprendre",
+        "REDIRECT_TO_NUMBER": "Nombre de redirection",
+        "REDIRECT_TO_AGENT": "Rediriger à l'Agent",
+        "AGENTADD_VOICEQUEUE": "Ajouter à la file d'attente de la voix de l'agent",
+        "APPLICATION": "Application",
+        "FILES": "Files",
+        "FORMAT": "Présentation",
+        "MODE": "Mode",
+        "RECORD": "Notice",
+        "TEAMADD_VOICEQUEUE": "Ajouter à l'équipe de voicequeue",
+        "NEW_MOHSOUND": "Nouveau son de la musique d'attente",
+        "DOWNLOAD_MESSAGE": "Télécharger",
+        "DELETE_MESSAGE": "Supprimer",
+        "QUEUE_PARAMS": "Les paramètres de file d'attente",
+        "TOTAL_OFFERED": "Offert Total",
+        "READY": "Prêt",
+        "AGENTADD_QUEUE": "Ajouter l'agent de files d'attente de la voix",
+        "AGENTSADD_QUEUE": "Ajouter des Agents d'attente de la voix",
+        "ALL_TEAMS": "Toutes les équipes",
+        "SELECTED_TEAMS": "Les équipes sélectionnées",
+        "ALL_AGENTS": "Tous les Agents",
+        "SELECTED_AGENTS": "Agents sélectionnés",
+        "CLOSING": "Fermer",
+        "TAGS": "Tags",
+        "WAITING_FOR_AGENTS": "Pour les agents en attente",
+        "EDIT_OUTBOUNDDIAL": "Modifier Ligne sortante",
+        "VARIABLE": "Variable",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Ne pouvez pas jouer des fichiers audio gsm",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "Login/Logout",
+        "TRUNK_STATUS": "L'état de tronc",
+        "WAITING_FOR_AGENT": "Pour les agents en attente",
+        "ACCOUNTNAME": "Nom de compte"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/hi.json b/public/app/main/apps/voice/i18n/hi.json
new file mode 100644 (file)
index 0000000..035d351
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "नाम",
+        "VOICEQUEUES": "वॉयस कतार",
+        "SEARCH_FOR_ANYONE": "किसी भी व्यक्ति की तलाश",
+        "BACK": "वापिस",
+        "SELECTED": "चयनित",
+        "SELECT_ALL": "सभी का चयन करें",
+        "SELECT_NONE": "किसी का भी चयन",
+        "DELETE_VOICEDISPOSITION": "सरकारीतंत्र आवाज को हटाएं",
+        "EDIT_VOICEDISPOSITION": "सरकारीतंत्र आवाज संपादित करें",
+        "EDIT_VOICEQUEUE": "ध्वनि संपादन कतार",
+        "DELETE_VOICEQUEUE": "वॉयस कतार हटाएं",
+        "MOHSOUNDS": "ध्वनियां Moh",
+        "STRATEGY": "रणनीति",
+        "DESCRIPTION": "वर्णन",
+        "ADD_VOICEQUEUE": "ध्वनि स्वर जोड़ें कतार",
+        "CREATED_AT": "सृजित",
+        "ERRORS": {
+            "NAME_REQUIRED": "नाम की आवश्यकता है।",
+            "TIMEOUT_REQUIRED": "इस समय की आवश्यकता है।",
+            "PHONENUMBER_REQUIRED": "फ़ोन नंबर की आवश्यकता है।",
+            "CONTEXT_REQUIRED": "इस संदर्भ में अपेक्षित है।",
+            "DESTINATIONPATTERN_REQUIRED": "गंतव् य पद्धति की आवश्यकता है।",
+            "FULLNAME_REQUIRED": "पूरा नाम की आवश्यकता है।",
+            "EMAIL_REQUIRED": "ईमेल की आवश्यकता है।",
+            "EMAIL_MUST_VALID": "एक मान्य स्वरूप में लिखा होना ईमेल का",
+            "MAILBOX_REQUIRED": "इस मेलबॉक्स अपेक्षित है।",
+            "PASSWORD_REQUIRED": "पासवर्ड की आवश्यकता है।",
+            "CONFIRM_NOT_MATCH": "पासवर्ड मेल नहीं",
+            "TIMEZONE_REQUIRED": "इस समय क्षेत्र की आवश्यकता है।",
+            "PREFIX_REQUIRED": "नाम के साथ अपेक्षित है।",
+            "OPTIONS_REQUIRED": "विकल्प आवश्यक हैं.",
+            "AFTERCALLWORKDURATION_REQUIRED": "कॉल करने के बाद के कार्य की अवधि की आवश्यकता है।",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "प्रौद्योगिकी/संसाधन की आवश्यकता है।",
+            "PHONE_REQUIRED": "फ़ोन की आवश्यकता है।",
+            "VALUE_REQUIRED": "मूल्य की आवश्यकता है।",
+            "EXTENSION_REQUIRED": "के विस्तार की आवश्यकता है।",
+            "PRIORITY_REQUIRED": "प्राथमिकता की आवश्यकता है।",
+            "NAME_MUST_VALID_PATTERN": "एक मान्य स्वरूप का नाम लिखा होना",
+            "APPLICATION_REQUIRED": "अनुप्रयोग की आवश्यकता है।",
+            "APPLICATION_NAME_REQUIRED": "अनुप्रयोग नाम की आवश्यकता है।"
+        },
+        "GENERAL": "सामान्य",
+        "TIMEOUT": "समयबाह्य",
+        "MAXLENGTH": "अधिकतम लंबाई",
+        "RETRY": "पुन: प्रयास करें.",
+        "WRAPUPTIME": "उस समय Wrapup",
+        "WEIGHT": "भार",
+        "JOINWHENEMPTY": "खाली समय में शामिल होंगे।",
+        "LEAVEWHENEMPTY": "खाली छोड़ जब",
+        "HELP": {
+            "TIMEOUT": "निर्दिष्ट करता है कि किसी सदस्य का डिवाइस रिंग सेकंड की संख्या",
+            "MAXLENGTH": "कॉलर्स को अनुमति की अधिकतम संख्या को निर्दिष्ट प्रतीक्षा में है. इसका अर्थ शून्य मूल्य की संख्या असीमित कॉलर्स को अनुमति कतार में हैं।",
+            "RETRY": "निर्दिष्ट करता है कि सेकंड तक प्रतीक्षा करने का प्रयास करने से पहले की संख्या को अगले सदस्य कतार में यदि टाइमआउट मान है जबकि थके हुए एक सदस्य का प्रयास करने के लिए रिंग है.",
+            "WRAPUPTIME": "किसी सदस्य को रखने की संख्या सेकंड में अनुपलब्ध है. कॉल पूरा करने के बाद कतार",
+            "WEIGHT": "एक कतार के भार को परिभाषित करती है। एक कतार से अधिक भार को परिभाषित किया गया है जब सदस्यों पहली प्राथमिकता है। कतार में एकाधिक से जुडे हुए हैं।",
+            "JOINWHENEMPTY": "क्या कोई नियंत्रण नहीं है जब कोई सदस्य जोड़े कतार कॉलर उपलब्ध हैं।",
+            "LEAVEWHENEMPTY": "कॉलर्स को नियंत्रित करने के लिए इस्तेमाल किया जाता है जब सदस्यों की कतार से नि ९ाला क्या अब उपलब्ध नहीं है. कॉल के लिए",
+            "ANNOUNCEFREQUENCY": "हम कितनी परिभाषित की घोषणा करनी चाहिए और/अथवा अनुमानित कॉलर की स् थिति होल्ड समय कतार में है। इस मूल्य निर्धारित करने के लिए शून्य को अक्षम है.",
+            "MINANNOUNCEFREQUENCY": "निर्दिष्ट करता है कि उस समय की न्यूनतम मात्रा की घोषणा करने से पूर्व हम पास होना कॉलर की कतार में पुन: जब यह कॉलर की स्थिति को बदल सकते हैं, प्राय: एकाधिक अपडेट्स को रोकने के लिए कॉलर सुनवाई थोडे समय में है।",
+            "PERIODICANNOUNCEFREQUENCY": "पता चलता है कि किस प्रकार आवधिक घोषणाएं करने चाहिए कि हम अक्सर रखती हैं।",
+            "ANNOUNCEPOSITIONLIMIT": "यदि आपने यहघोषणा की स्थिति के रूप में परिभाषित किया जाता है या सीमा से अधिक है.",
+            "AFTERCALLWORKDURATION": "विराम की अवधि के बाद कार्य कॉल विकल्प",
+            "MEMBERDELAY": "यदि आप चाहते हैं कि वहां का इस्तेमाल करने से पूर्व देरी का एक-दूसरे से जोडा जा रहा है और कॉलर कतार सदस्य",
+            "MUSICONHOLD": "सैट के प्रयोग को विशेष श्रेणी के संगीत की कतार है।",
+            "ANNOUNCETOAGENT": "खेल के लिए इस्तेमाल करने की घोषणा की है कि उनके लिए अपेक्षओं को कॉल का उत्तर एजेंट क्या कतार कॉलर से आ रहा है।",
+            "RANDOMPERIODICANNOUNCE": "यदि हाँ, का मुकाबला करने के लिए आवधिक घोषणाएं की परिभाषा में अनियमित क्रम है।",
+            "ANNOUNCEHOLDTIME": "अनुमान है कि समय-समय पर आयोजित की परिभाषा के साथ आवधिक घोषणाएं बजाई जानी चाहिए।",
+            "ANNOUNCECALLERPOSITION": "परिभाषित किया जाना चाहिए कि क्या कॉलर की स्थिति में घोषणा की है। यदि सेटअप करने के लिए कोई स्थान नहीं होगा की घोषणा की जाए। यदि हाँ, कॉलर की स् थिति सेट करने के लिए सदैव की घोषणा की गई है। यदि मूल्य सेट करने के लिए, अपनी स्थिति को सुनेंगे कॉलर सीमा कतार में ही यह घोषणा कर के दायरे में परिभाषित की स्थिति-सीमा है। यदि मूल्य पर सेट है, तो उसके स्थान पर कॉलर सुनेंगे की संख्या से परे है, स्थिति-सीमा परिभाषित की घोषणा",
+            "REPORTHOLDTIMEAGENT": "समय-समय पर आयोजित की रिपोर्टिंग में समर्थ की कतार के पूर्व सदस्य अनिवार्यआधारभूत है।",
+            "PERIODICANNOUNCE": "खेल खेला जाने की आवधिक घोषणाओं के क्रम में वे को परिभाषित किया गया है।",
+            "HOLDTIMEANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान से खेलना है।'') समय (\"को रोका यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "YOUARENEXTANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"अब आप में प्रथम पंक्ति\"). यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "THEREAREANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"हैं.'' यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "WAITINGCALLSANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान से खेलना है।'') (\"कॉल प्रतीक्षारत यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"चालू होने का अनुमान है।\") को दबाकर रखें यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "MINUTESANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"मिनट)।\" यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "MINUTEANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"मिनट)।\" यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "SECONDSANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"सेकंड)।\" यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "THANKYOUANNOUNCE": "परिभाषित नहीं किया गया, तो डिफ़ॉल्ट मान पर खेलना (\"के लिए धन्यवाद\") धैर्य यदि सेट करने के लिए, संकेत मान रिक्त नहीं खेले।",
+            "AFTERCALLWORK": "यदि सक्रिय एजेंट को पूरा करने के बाद विराम पर सेट किया जाएगा कतार पर कॉल करें",
+            "AUTOPAUSE": "सदस्यों की स्वचालित किसी वाक्य को सक्षम/अक्षम असफल कॉल का उत्तर देने के लिए है। यदि इस कारण सक्रिय सदस्य को रोका गया है वह किसी सदस्य की कतार में सभी",
+            "RINGINUSE": "कॉल भेजने के लिए सदस्यों से बचने के लिए इस्तेमाल किया जाता है जिसकी स्थिति में प्रयोग में है.",
+            "TIMEOUTRESTART": "यदि हाँ, रीसेट करें पर सेट करने के लिए, यदि उत्तर देने के लिए, व्यस्त या टाइमआउट एजेंट या भीड़-भाड़ दर्जा प्राप्त चैनल है।",
+            "MONITORFORMAT": "निर्दिष्ट करने के लिए, फ़ाइल स्वरूप का प्रयोग करने के लिए रिकॉर्डिंग है। अगर निगरानी-स्वरूप निष्क्रिय कॉल्स नहीं किया जाएगा.",
+            "CONTEXT": "अनुमत कॉलर कतार से बाहर निकलने के लिए दबाकर एक अंकीय DTMF है। यदि कॉलर और विनिर्दिष्ट संख्या के संदर्भ में प्रवेश करने का प्रयास करेंगे कि अंकीय मेल के संदर्भ में विनिर्दिष्ट और वहां रहेंगे निष्पादन dialplan",
+            "SETINTERFACEVARIABLES": "यदि हां, तो पूर्व निर्धारित की जा रही एक कतार में कुछ सदस्य कॉलर खाई फेर किया जाएगा।(देखिए) wiki",
+            "SETQUEUEVARIABLES": "यदि हां, तो पहले से सेट करने के लिए किया जा रहा है और सदस्य एक कतार कॉलर खाई को छोडने की कतार में कुछ फेर से पूर्व कॉलर स्थापित किए जाएंगे।(देखिए) wiki",
+            "SETQUEUEENTRYVARIABLES": "यदि हां, तो पूर्व निर्धारित की जा रही एक कतार में कुछ सदस्य कॉलर खाई फेर किया जाएगा।(देखिए) wiki",
+            "RECORDING": "रिकॉर्डिंग रोकने के लिए कॉल कर सके।",
+            "VOICEMAIL_CONTEXT": "के संदर्भ संबंधी विस्तार है।"
+        },
+        "MUSICONHOLD": "संगीत पर रखें.",
+        "ANNOUNCETOAGENT": "घोषणा के एजेंट",
+        "ANNOUNCEMENTS": "घोषणाओं",
+        "ADVANCED": "उन्नत",
+        "ANNOUNCEFREQUENCY": "आवृत्ति की घोषणा",
+        "MINANNOUNCEFREQUENCY": "आवृत्ति घोषित न्यूनतम",
+        "PERIODICANNOUNCEFREQUENCY": "आवधिक घोषणा की आवृत्ति",
+        "RANDOMPERIODICANNOUNCE": "रैंडम आवधिक की घोषणा की.",
+        "ANNOUNCEHOLDTIME": "समय-समय पर आयोजित की घोषणा",
+        "ANNOUNCECALLERPOSITION": "कॉलर स्थिति की घोषणा",
+        "ANNOUNCEPOSITIONLIMIT": "सीमा की बस्थति की घोषणा",
+        "REPORTHOLDTIMEAGENT": "एजेंट ने समय-समय पर रिपोर्ट",
+        "PERIODICANNOUNCE": "आवधिक की घोषणा की.",
+        "HOLDTIMEANNOUNCE": "उस समय की घोषणा को रोका",
+        "YOUARENEXTANNOUNCE": "आप \"अगला\" की घोषणा की.",
+        "THEREAREANNOUNCE": "'' की घोषणा कर रहे हैं।",
+        "WAITINGCALLSANNOUNCE": "कॉल प्रतीक्षारत की घोषणा की.",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "समय-समय पर आयोजित की घोषणा का अनुमान",
+        "MINUTESANNOUNCE": "मिनट की घोषणा की.",
+        "MINUTEANNOUNCE": "मिनट की घोषणा की.",
+        "SECONDSANNOUNCE": "सेकंड्स की घोषणा की.",
+        "THANKYOUANNOUNCE": "'' की घोषणा आपको धन्यवाद देता हूं।",
+        "AUTOPAUSE": "ऑटो रोकें",
+        "AFTERCALLWORK": "इसके बाद कार्य पर कॉल करें",
+        "AFTERCALLWORKDURATION": "कॉल करने के बाद कार्य अवधि",
+        "RINGINUSE": "रिंग प्रयोग में है",
+        "MEMBERDELAY": "सदस्य विलंब",
+        "TIMEOUTRESTART": "समयबाह्य को पुन: प्रारंभ करें.",
+        "MONITORFORMAT": "रिकॉर्डिंग स्वरूप",
+        "SETINTERFACEVARIABLES": "परिवतीऩ अन्तरापृष्ठ सेट करें",
+        "SETQUEUEVARIABLES": "परिवतीऩ कतार सेट करें",
+        "SETQUEUEENTRYVARIABLES": "परिवतीऩ प्रवेश कतार सेट करें",
+        "CONTEXT": "संदर्भ",
+        "SAVE": "सहेजें",
+        "SETTINGS": "सेटिंग्स",
+        "INBOUNDROUTES": "इनबाउंड मार्ग",
+        "PHONENUMBER": "फ़ोन नंबर",
+        "ADD_INBOUNDROUTE": "रूट इनबाउंड जोड़ें",
+        "EDIT_INBOUNDROUTE": "संपादित करने के लिए इनबाउंड मार्ग",
+        "DELETE_INBOUNDROUTE": "हटाने के लिए इनबाउंड मार्ग",
+        "ACTIONS": "क्रियाएं",
+        "OUTBOUNDROUTES": "छुट्टिंयां मनाने का मार्ग",
+        "DESTINATIONPATTERN": "गंतव् य पद्धति",
+        "ADD_OUTBOUNDROUTE": "रूट बाह्यवर्ती जोड़ें",
+        "EDIT_OUTBOUNDROUTE": "रूट बाह्यवर्ती संपादित करें",
+        "DELETE_OUTBOUNDROUTE": "रूट बाह्यवर्ती हटाएं",
+        "CUTDIGITS": "काटें अंगुलि",
+        "RECORDING": "रिकॉर्डिंग",
+        "RECORDINGFORMAT": "रिकॉर्डिंग स्वरूप",
+        "INTERNALROUTES": "भीतरी मार्गों",
+        "ADD_INTERNALROUTE": "आंतरिक मार्ग पर जोड़ें",
+        "EDIT_INTERNALROUTE": "संपादित करने के लिए आंतरिक मार्ग",
+        "DELETE_INTERNALROUTE": "आंतरिक मार्ग हटाएं",
+        "CONTEXTS": "प्रसंग",
+        "ADD_CONTEXT": "इस संदर्भ में जोड़ें",
+        "EDIT_CONTEXT": "इस संदर्भ संपादित करें",
+        "DELETE_CONTEXT": "इस संदर्भ हटाएं",
+        "VOICEMAILS": "मोबिलबॉक् स प्रो अभी भरा हुआ",
+        "ADD_VOICEMAIL": "वॉयसमेल जोड़ें",
+        "EDIT_VOICEMAIL": "वॉयसमेल संपादित करें",
+        "DELETE_VOICEMAIL": "वॉयसमेल हटाएं",
+        "FULLNAME": "पूरा नाम",
+        "EMAIL": "ई-मेल",
+        "MAILBOX": "मेलबॉक्स",
+        "PASSWORD": "पासवर्ड",
+        "CONFIRM_PASSWORD": "पासवर्ड की पुष्टि करें:",
+        "TIMEZONE": "समय क्षेत्र",
+        "ATTACH": "नत्थी करना",
+        "ENVELOPE": "लिफाफा",
+        "DELETE": "हटाना",
+        "EMAILBODY": "ईमेल शरीर",
+        "EMAILSUBJECT": "ईमेल विषय",
+        "MAXSECONDS": "अधिकतम सेकंड",
+        "MAXMESSAGES": "अधिकतम संदेश",
+        "MESSAGES": "संदेश",
+        "SORT": "सॉर्ट करें",
+        "ADD_MUSICONHOLD": "संगीत पर जोड़ें",
+        "MUSICONHOLDS": "होल्ड पर Musics",
+        "EDIT_MUSICONHOLD": "होल्ड पर संगीत संपादित करें",
+        "DELETE_MUSICONHOLD": "होल्ड पर संगीत हटाएं",
+        "DIRECTORY": "निर्देशिका",
+        "AUDIOFILES": "ऑडियो फ़ाइलें",
+        "RECORDINGS": "रेकाॅर्डिंग",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "प्रिफिक्स",
+        "OPTIONS": "विकल्प",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "ChanSpy जोड़ें",
+        "EDIT_CHANSPY": "ChanSpy संपादित करें",
+        "DELETE_CHANSPY": "ChanSpy हटाएं",
+        "AGENTS": "एजेंटों",
+        "TELEPHONES": "टेलीफोन",
+        "QUEUES": "कतार",
+        "QUEUE_CALLS": "कॉल्स कतार",
+        "QUEUE_PARAMETERS": "लोकतंत्रमें मानदंडों",
+        "ABANDONED_CALLS": "परित्याग कॉल्स",
+        "OUTBOUND_CALLS": "बाह्यवर्ती कॉल्स",
+        "AGI": "AGI",
+        "DIAL": "स् पीड डायल",
+        "INTERNALDIAL": "आंतरिक डायल करें",
+        "EXTERNALDIAL": "बाह्य डायल करें",
+        "RINGGROUP": "रिंग समूह",
+        "PLAYBACK": "प्लेबैक",
+        "QUEUE": "कतार",
+        "SET": "सेट करें",
+        "VOICEMAIL": "वॉयसमेल",
+        "GOTO": "जाएँगे|",
+        "HANGUP": "Hangup",
+        "CUSTOM": "कस्टम",
+        "PROJECT": "Cally-Square परियोजना",
+        "TECHNOLOGY/RESOURCE": "प्रौद्योगिकी/संसाधन",
+        "URL": "URL",
+        "EDIT_APP": "अनुप्रयोग को संपादित करें",
+        "EDIT_INTERVAL": "अंतराल संपादित करें",
+        "DELETE_APP": "अनुप्रयोग हटाएं",
+        "INTERVALS": "अन्तराल",
+        "USER": "उपयोगकर्ता",
+        "TRUNK": "सूंड",
+        "PHONE": "फ़ोन",
+        "AUDIO_FILES": "ऑडियो फ़ाइलें",
+        "ANNOUNCE_OVERRIDES": "जताना Overrides",
+        "MACRO": "स्थूल",
+        "GOSUB": "GoSub",
+        "RULE": "नियम",
+        "POSITION": "की स्थिति",
+        "ANSWER": "उत्तर",
+        "VALUE": "मूल्य",
+        "MAILBOX@CONTEXT": "मेलबॉक्स@वर्ल्ड कप के संदर्भ",
+        "EXTENSION": "विस्तार",
+        "PRIORITY": "प्राथमिकता",
+        "HANGUP_CAUSE": "इससे Hangup",
+        "OUTBOUNDDIAL": "बाह्यवर्ती डायल करें",
+        "CALLER_ID": "कॉलर ID",
+        "NO_MESSAGE_AVAILABLE": "कोई संदेश उपलब्ध",
+        "NO_SOUND_AVAILABLE": "उपलब्ध ध्वनि नहीं",
+        "VOICERECORDINGS": "वॉयस जनाक्रोश",
+        "CHANSPIES": "चान नीचा",
+        "VOICE": "आवाज",
+        "REALTIME": "लिएभूकम्पनीय वैधशालाओं",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "संदर्भ",
+        "NO_MOHSOUND_AVAILABLE": "कोई संगीत पर उपलब्ध",
+        "FILE": "फाइल",
+        "ADD_MOHSOUND": "संगीत जोड़ होल्ड पर ध्वनि",
+        "DOWNLOAD_MOHSOUND": "संगीत डाउनलोड करने पर ध्वनि",
+        "DELETE_MOHSOUND": "संगीत हटाएं पर ध्वनि",
+        "UNIQUEID": "अद्वितीय ID",
+        "AGENT": "कर्ता",
+        "TYPE": "प्रकार",
+        "RATING": "रेटिंग",
+        "AUDIO": "ऑडियो",
+        "DATE": "की तारीख",
+        "NEW_VOICEQUEUE": "नए वॉयस कतार",
+        "NEW_INBOUNDROUTE": "नई इनबाउंड मार्ग",
+        "NEW_OUTBOUNDROUTE": "नई छुट्टिंयां मनाने का मार्ग",
+        "NEW_INTERNALROUTE": "नई आंतरिक मार्ग",
+        "NEW_CONTEXT": "नई संदर्भ",
+        "NEW_VOICEMAIL": "नई वॉयसमेल",
+        "NEW_MUSICONHOLD": "नयी संगीत पर रखें.",
+        "NEW_CHANSPY": "नई ChanSpy",
+        "PENALTY": "दण्ड",
+        "ADD_TEAM_TO_VOICEQUEUE": "ध्वनि स्वर जोड़ने के लिए दल कतार",
+        "ADD_AGENT_TO_VOICEQUEUE": "ध्वनि स्वर जोड़ने के एजेंट को कतार",
+        "EDIT_DIAL": "स् पीड डायल संपादित करें",
+        "EDIT_AGI": "AGI संपादित करें",
+        "EDIT_INTERNALDIAL": "स् पीड डायल आंतरिक संपादित करें",
+        "EDIT_EXTERNALDIAL": "स् पीड डायल बाह्य संपादित करें",
+        "EDIT_RINGGROUP": "रिंग समूह संपादित करें",
+        "EDIT_PLAYBACK": "प्लेबैक संपादित करें",
+        "EDIT_QUEUE": "लोकतंत्रमें संपादित करें",
+        "EDIT_SET": "संपादित करने के लिए सेट करें",
+        "EDIT_GOTO": "संपादित करने के लिए जाएँगे|",
+        "EDIT_HANGUP": "Hangup संपादित करें",
+        "EDIT_CUSTOM": "कस्टम संपादित करें",
+        "DURATION": "अवधि के",
+        "RECEIVED_AT": "प्राप्त",
+        "YES": "हां",
+        "NO": "कोई",
+        "HANGUPCAUSE_1": "1 = अनाबंटित संख्या",
+        "HANGUPCAUSE_16": "16 = Normail कॉल उम्मायदों",
+        "HANGUPCAUSE_17": "17 = उपयोगकर्ता व्यस्त",
+        "HANGUPCAUSE_18": "(18) = उपयोगकर्ता प्रत्युत्तर नहीं telehone डिवाइस से कनेक्ट नहीं",
+        "HANGUPCAUSE_21": "21 = कॉल खारिज",
+        "HANGUPCAUSE_22": "22. @नंबर बदल दिया।",
+        "HANGUPCAUSE_27": "27. @गंतव्य के आदेश",
+        "HANGUPCAUSE_38": "38. @नेटवर्क से",
+        "HANGUPCAUSE_41": "41. @अस्थायी असफलता",
+        "RANDOM": "रैंडम",
+        "ALPHABETICAL": "वर्णक्रमानुसारी",
+        "NO_APPS_AVAILABLE": "कोई अनुप्रयोग उपलब्ध",
+        "DOWNLOAD_VOICERECORDING": "रिकॉर्डिंग आवाज डाउनलोड करें",
+        "DELETE_VOICERECORDING": "ध्वनि स्वर रिकॉर्ड हटाना",
+        "INTERNAL": "आंतरिक",
+        "PHONE_STATE": "फ़ोन राज्य",
+        "PHONE_STATUS": "फोन स्थिति",
+        "REGISTERED": "पंजीकृत",
+        "UNREGISTERED": "अपंजीकृत",
+        "LAGGED": "ज्यों",
+        "REACHABLE": "प्राप्य",
+        "UNREACHABLE": "द्वाराजाना दुर्गम",
+        "UNKNOWN": "अज्ञात",
+        "NOT_INUSE": "उपयोग में नहीं",
+        "INUSE": "में उपयोग",
+        "BUSY": "व्यस्त",
+        "INVALID": "अमान्य",
+        "UNAVAILABLE": "अनुपलब्ध",
+        "RINGING": "घंटियां बजने लगी।",
+        "ONHOLD": "होल्ड पर",
+        "RING": "रिंग",
+        "UP": "ऊपर",
+        "INFO": "जानकारी",
+        "TRUNKS": "तनों",
+        "REGISTRY": "रजिस्ट्री",
+        "NO_REGISTRY": "कोई रजिस्टधळ",
+        "LOGGED_IN": "लॉग इन नहीं",
+        "PAUSED": "अनुक्रमणिका रोकी गई",
+        "WAITING": "प्रतीक्षा",
+        "TALKING": "की बात",
+        "DID": "हुआ",
+        "CALLER": "कॉलर",
+        "TOTAL": "कुल",
+        "ANSWERED": "उत्तर",
+        "ABANDONED": "बिगडा हुआ",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "होल्ड वाले समय",
+        "AVG_DURATION": "Av अवधि",
+        "AVG_BILLABLE": "वाले सकते",
+        "SOURCE": "के स्रोत",
+        "DESTINATION": "गंतव् य",
+        "REJECTED": "अस्वीकार",
+        "FAILED": "विफल",
+        "CALLED": "कहा जाता",
+        "CONNECTED": "कनेक्ट किया गया",
+        "NO_RATING": "कोई रेटिंग",
+        "EDIT_VOICERECORDING": "ध्वनि स्वर रिकॉर्ड संपादित करें",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - कस्टम अनुप्रयोग।"
+        },
+        "APPLICATION_NAME": "अनुप्रयोग नाम",
+        "ARGUMENTS": "तर्क",
+        "NO_AVAILABLE_INFO": "जानकारी उपलब्ध नहीं",
+        "ADD_AGENT_TO_QUEUE": "एजेंट को कतार में जोड़ें",
+        "DEFAULT_PAUSE": "डिफ़ॉल्ट रूप से रोकें",
+        "PAUSE": "विराम",
+        "UNPAUSE": "Unpause",
+        "REDIRECT_TO_NUMBER": "क्षेत्रीयपरिवहन की संख्या",
+        "REDIRECT_TO_AGENT": "एजेंट को फ़ॉर्म सबमिशन",
+        "AGENTADD_VOICEQUEUE": "ध्वनि स्वर जोड़ने के एजेंट को कतार",
+        "APPLICATION": "अनुप्रयोग",
+        "FILES": "फाइलें",
+        "FORMAT": "स्वरूप",
+        "MODE": "मोड",
+        "RECORD": "रिकार्ड",
+        "TEAMADD_VOICEQUEUE": "टीम को जोड़ते voicequeue",
+        "NEW_MOHSOUND": "नयी संगीत पर ध्वनि",
+        "DOWNLOAD_MESSAGE": "डाउनलोड करें",
+        "DELETE_MESSAGE": "हटाना",
+        "QUEUE_PARAMS": "लोकतंत्रमें मानदंडों",
+        "TOTAL_OFFERED": "कुल की पेशकश",
+        "READY": "तैयार",
+        "AGENTADD_QUEUE": "ध्वनि स्वर जोड़ने के एजेंट को कतार",
+        "AGENTSADD_QUEUE": "ध्वनि स्वर जोड़ने के एजेंटों को कतार",
+        "ALL_TEAMS": "सभी टीमें भाग लेंगी।",
+        "SELECTED_TEAMS": "चयनित टीम",
+        "ALL_AGENTS": "सभी एजेंटों",
+        "SELECTED_AGENTS": "चयनित एजेंटों",
+        "CLOSING": "बंद",
+        "TAGS": "टैग्स",
+        "WAITING_FOR_AGENTS": "एजेंटों के लिए प्रतीक्षारत",
+        "EDIT_OUTBOUNDDIAL": "स् पीड डायल बाह्यवर्ती संपादित करें",
+        "VARIABLE": "परिवर्तनीय",
+        "CANT_PLAY_GSM_AUDIO_FILES": "ऑडियो फ़ाइलें चलाना gsm सहेजा नहीं जा सकता.",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "इसपर",
+        "TRUNK_STATUS": "सूंड का दर्जा",
+        "WAITING_FOR_AGENT": "एजेंटों के लिए प्रतीक्षारत",
+        "ACCOUNTNAME": "खाता नाम"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/it.json b/public/app/main/apps/voice/i18n/it.json
new file mode 100644 (file)
index 0000000..585e144
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Nome",
+        "VOICEQUEUES": "Code Voce",
+        "SEARCH_FOR_ANYONE": "Cerca",
+        "BACK": "Indietro",
+        "SELECTED": "Selezionati",
+        "SELECT_ALL": "Seleziona tutto",
+        "SELECT_NONE": "Deseleziona tutto",
+        "DELETE_VOICEDISPOSITION": "Elimina Disposizione Voce",
+        "EDIT_VOICEDISPOSITION": "Modifica Disposizione Voce",
+        "EDIT_VOICEQUEUE": "Modifica Coda Voce",
+        "DELETE_VOICEQUEUE": "Elimina Coda Voce",
+        "MOHSOUNDS": "Suoni Musiche di Attesa",
+        "STRATEGY": "Strategia",
+        "DESCRIPTION": "Descrizione",
+        "ADD_VOICEQUEUE": "Aggiungi Coda Voce",
+        "CREATED_AT": "Creato il",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Applicatione Custom."
+        },
+        "ERRORS": {
+            "NAME_REQUIRED": "Il Nome è richiesto",
+            "TIMEOUT_REQUIRED": "Il Timeout è richiesto",
+            "PHONENUMBER_REQUIRED": "Il Numero di Telefono è richiesto",
+            "CONTEXT_REQUIRED": "Il Contesto è richiesto",
+            "DESTINATIONPATTERN_REQUIRED": "Il Pattern di Destinazione è richiesto",
+            "FULLNAME_REQUIRED": "Il Nome Completo è richiesto",
+            "EMAIL_REQUIRED": "L' indirizzo email è richiesto",
+            "EMAIL_MUST_VALID": "L' indirizzo email deve essere in un formato valido",
+            "MAILBOX_REQUIRED": "La Mailbox è richiesta",
+            "PASSWORD_REQUIRED": "La Password è richiesta",
+            "CONFIRM_NOT_MATCH": "Le password non coincidono",
+            "TIMEZONE_REQUIRED": "Il Fuso Orario è richiesto",
+            "PREFIX_REQUIRED": "Il Prefisso è richiesto",
+            "OPTIONS_REQUIRED": "Le Opzioni sono richieste",
+            "AFTERCALLWORKDURATION_REQUIRED": "La durata della pausa After Call Work è richiesta",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "La Tecnologia/Risorsa è richiesta",
+            "PHONE_REQUIRED": "Il Telefono è richiesto",
+            "VALUE_REQUIRED": "Il Valore è richiesto",
+            "EXTENSION_REQUIRED": "L'Extension è richiesta",
+            "PRIORITY_REQUIRED": "La Priorità è richiesta",
+            "NAME_MUST_VALID_PATTERN": "Il nome deve essere in un formato valido",
+            "APPLICATION_REQUIRED": "L'Applicazione è richeista",
+            "APPLICATION_NAME_REQUIRED": "Il nome dell'applicazione è richiesto"
+        },
+        "GENERAL": "Generale",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Lunghezza Massima",
+        "RETRY": "Riprova",
+        "WRAPUPTIME": "Wrapup Time",
+        "WEIGHT": "Peso",
+        "JOINWHENEMPTY": "Entra quando vuota",
+        "LEAVEWHENEMPTY": "Lascia quando vuota",
+        "HELP": {
+            "TIMEOUT": "Specifica il numero di secondi per i quali far squillare il dispositivo del membro della coda.",
+            "MAXLENGTH": "Specifica il numero massimo di chiamanti che possono attendere in una coda. Un valore di zero indica un numero illimitato di chiamanti in attesa.",
+            "RETRY": "Specifica il numero di secondi da attendere prima di chiamare il prossimo membro della coda alla scadenza del timeout.",
+            "WRAPUPTIME": "Il numero di secondi in cui tenere un membro della coda in stato 'Non disponibile' dopo aver completato una chiamata.",
+            "WEIGHT": "Definisce il peso di una coda. Una coda con un peso più alto avrà una priorità primaria quando dei membri sono associati a più code.",
+            "JOINWHENEMPTY": "Indica se un chiamante deve essere aggiunto ad una coda quando questa non ha nessun membro.",
+            "LEAVEWHENEMPTY": "Usato per controllare se i chiamanti devono essere buttati fuori da una coda quando non ci sono più membri disponibili a rispondere.",
+            "ANNOUNCEFREQUENCY": "Definisce quanto spesso annunciare la posizione del chiamante e/o il tempo stimato di attesa nella coda. Impostare a zero per disabilitarlo.",
+            "MINANNOUNCEFREQUENCY": "Specifica la minima quantità di tempo tra gli annunci della posizione del chiamante. E' usato quando la posizione del chiamante può cambiare frequentemente, per prevenire che il chiamante ascolti multipli aggiornamente in un breve periodo di tempo.",
+            "PERIODICANNOUNCEFREQUENCY": "Indica quanto spesso riprodurre gli annunci periodici per il chiamante.",
+            "ANNOUNCEPOSITIONLIMIT": "Usato se l' annuncio della posizione del chiamante è stato definito come limit o more.",
+            "AFTERCALLWORKDURATION": "La durata della pausa scatenata dall' evento After Call Work",
+            "MEMBERDELAY": "Usato se si vuole che ci sia un ritardo prima che il chiamante e il membro della coda vengano connessi",
+            "MUSICONHOLD": "Imposta la classe di musica d' attesa da usare per una particolare coda.",
+            "ANNOUNCETOAGENT": "Usato per riprodurre un annuncio all' agente che ha risposto alla chiamata, di solito per informarlo da quale coda arriva il chiamante.",
+            "RANDOMPERIODICANNOUNCE": "Se impostato a yes gli annunci periodici verranno riprodotti in ordine casuale.",
+            "ANNOUNCEHOLDTIME": "Definisce se annunciare il tempo di attesa stimato insieme agli annunci periodici.",
+            "ANNOUNCECALLERPOSITION": "Definisce se annunciare la posizione del chiamante. Se impostato su no la posizione non verrà amai annunciata. Se impostata su yes la posizione verrà sempre annunciata. Se impostato su limit il chiamante ascolterà la sua posizione solo se entro il limite dell' announce position limit. Se è impostato su more il chiamante ascolterà la sua posizione se si trova oltre il limite in announce position limit.",
+            "REPORTHOLDTIMEAGENT": "Abilita l' annuncio del tempo di attesa del chiamante al membro della coda, prima della connessione al canale.",
+            "PERIODICANNOUNCE": "Una serie di annunci periodici da riprodurre, nell' ordine in cui sono definiti.",
+            "HOLDTIMEANNOUNCE": "Se non definito, riproduce il valore di default (“Hold time”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "YOUARENEXTANNOUNCE": "Se non definito, riproduce il valore di default (“You are now first in line”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "THEREAREANNOUNCE": "Se non definito, riproduce il valore di default (“There are”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "WAITINGCALLSANNOUNCE": "Se non definito, riproduce il valore di default (“calls waiting”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Se non definito, riproduce il valore di default (“The current estimated hold time is”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "MINUTESANNOUNCE": "Se non definito, riproduce il valore di default (“minutes”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "MINUTEANNOUNCE": "Se non definito, riproduce il valore di default (“minute”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "SECONDSANNOUNCE": "Se non definito, riproduce il valore di default (“seconds”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "THANKYOUANNOUNCE": "Se non definito, riproduce il valore di default (“Thank you for your patience”). Se impostato su un valore vuoto non verrà riprodotto.",
+            "AFTERCALLWORK": "Se attivo, l'agente verrà messo in Pausa al completamento di una chiamata sulla coda",
+            "AUTOPAUSE": "Abilita/Disabilita la pausa automatica dei membri che falliscono la rispota ad una chiamata. Se attivo mette il membro in pausa su tutte le sue code.",
+            "RINGINUSE": "Usato per evitare di inviare chiamate ai membri il cui stato è In Use.",
+            "TIMEOUTRESTART": "Se impostato a yes, resetta il timeout di un agente per rispondere ad una chiamata se il canale è in stato BUSY o CONGESTION.",
+            "MONITORFORMAT": "Specifica il formato del file di registrazione. Se impostato su inactive le chiamate non verranno registrate.",
+            "CONTEXT": "Abilita il chiamante ad uscire dalla coda premendo un DTMF digit. Se il contesto è specificato e il chiamante inserisce un numero, si cercherà una corrispondenza con quel numero nel contesto specificato e il dialplan contimuerà lì.",
+            "SETINTERFACEVARIABLES": "Se impostato su si, appena prima che il chiamante sia collegato al membro della coda vengono settate alcune variabili(vedi wiki)",
+            "SETQUEUEVARIABLES": "Se impostato su si, appena prima che il chiamante sia collegato al membro della coda e appena prima che il chiamante esca dalla coda vengono settate alcune variabili(vedi wiki)",
+            "SETQUEUEENTRYVARIABLES": "Se impostato su si, appena prima che il chiamante sia collegato al membro della coda vengono settate alcune variabili(vedi wiki)",
+            "RECORDING": "Abilita la registrazione della chiamata",
+            "VOICEMAIL_CONTEXT": "Il contesto dell' extension relativa."
+        },
+        "MUSICONHOLD": "Musica di attesa",
+        "ANNOUNCETOAGENT": "Annuncia all' Agente",
+        "ANNOUNCEMENTS": "Annunci",
+        "ADVANCED": "Avanzate",
+        "ANNOUNCEFREQUENCY": "Frequenza Annunci",
+        "MINANNOUNCEFREQUENCY": "Frequenza Minima Annunci",
+        "PERIODICANNOUNCEFREQUENCY": "Frequenza Annuncio Periodico",
+        "RANDOMPERIODICANNOUNCE": "Annuncio Periodico Random",
+        "ANNOUNCEHOLDTIME": "Annuncia tempo di attesa",
+        "ANNOUNCECALLERPOSITION": "Annuncia posizione del chiamante",
+        "ANNOUNCEPOSITIONLIMIT": "Limite Annuncio Posizione",
+        "REPORTHOLDTIMEAGENT": "Riferisci tempo di attesa agente",
+        "PERIODICANNOUNCE": "Annuncio Periodico",
+        "HOLDTIMEANNOUNCE": "Annuncio Tempo di Attesa",
+        "YOUARENEXTANNOUNCE": "Annuncio 'Sei il prossimo'",
+        "THEREAREANNOUNCE": "Annuncio 'Ci sono'",
+        "WAITINGCALLSANNOUNCE": "Annuncio Chiamate in Attesa",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Annuncio Tempo di Attesa stimato",
+        "MINUTESANNOUNCE": "Annuncio 'minuti'",
+        "MINUTEANNOUNCE": "Annuncio 'minuto'",
+        "SECONDSANNOUNCE": "Annuncio 'secondi'",
+        "THANKYOUANNOUNCE": "Annuncio 'Grazie'",
+        "AUTOPAUSE": "Pause Automatica",
+        "AFTERCALLWORK": "After Call Work",
+        "AFTERCALLWORKDURATION": "Durata After Call Work",
+        "RINGINUSE": "Squilla in uso",
+        "MEMBERDELAY": "Ritardo Membro",
+        "TIMEOUTRESTART": "Riavvia Timeout",
+        "MONITORFORMAT": "Formato Registrazione",
+        "SETINTERFACEVARIABLES": "Imposta Variabili d' interfaccia",
+        "SETQUEUEVARIABLES": "Imposta Variabili di Coda",
+        "SETQUEUEENTRYVARIABLES": "Imposta Variabili di entrata in Coda",
+        "CONTEXT": "Contesto",
+        "SAVE": "Salva",
+        "SETTINGS": "Impostazioni",
+        "INBOUNDROUTES": "Rotte Inbound",
+        "PHONENUMBER": "Numero di Telefono",
+        "ADD_INBOUNDROUTE": "Aggiungi Rotta Inbound",
+        "EDIT_INBOUNDROUTE": "Modifica Rotta Inbound",
+        "DELETE_INBOUNDROUTE": "Elimina Rotta Inbound",
+        "ACTIONS": "Azioni",
+        "OUTBOUNDROUTES": "Rotte Outbound",
+        "DESTINATIONPATTERN": "Pattern di Destinazione",
+        "ADD_OUTBOUNDROUTE": "Aggiungi Rotta Outbound",
+        "EDIT_OUTBOUNDROUTE": "Modifica Rotta Outbound",
+        "DELETE_OUTBOUNDROUTE": "Elimina Rotta Outbound",
+        "CUTDIGITS": "Cut Digits",
+        "RECORDING": "Registrazione",
+        "RECORDINGFORMAT": "Formato Registrazione",
+        "INTERNALROUTES": "Rotte Interne",
+        "ADD_INTERNALROUTE": "Aggiungi Rotta Interna",
+        "EDIT_INTERNALROUTE": "Modifica Rotta Interna",
+        "DELETE_INTERNALROUTE": "Elimina Rotta Interna",
+        "CONTEXTS": "Contesti",
+        "ADD_CONTEXT": "Aggiungi Contesto",
+        "EDIT_CONTEXT": "Modifica Contesto",
+        "DELETE_CONTEXT": "Elimina Contesto",
+        "VOICEMAILS": "Caselle Vocali",
+        "ADD_VOICEMAIL": "Aggiungi Casella Vocale",
+        "EDIT_VOICEMAIL": "Modifica Casella Vocale",
+        "DELETE_VOICEMAIL": "Elimina Casella Vocale",
+        "FULLNAME": "Nome Completo",
+        "EMAIL": "Email",
+        "MAILBOX": "Mailbox",
+        "PASSWORD": "Password",
+        "CONFIRM_PASSWORD": "Conferma Password",
+        "TIMEZONE": "Fuso Orario",
+        "ATTACH": "Allega",
+        "ENVELOPE": "Incarta",
+        "DELETE": "Elimina",
+        "EMAILBODY": "Corpo Email",
+        "EMAILSUBJECT": "Soggetto Email",
+        "MAXSECONDS": "Max Secondi",
+        "MAXMESSAGES": "Max Messaggi",
+        "MESSAGES": "Messaggi",
+        "SORT": "Ordine",
+        "ADD_MUSICONHOLD": "Aggiungi Musica di Attesa",
+        "MUSICONHOLDS": "Musiche di Attesa",
+        "EDIT_MUSICONHOLD": "Modifica Musiche di Attesa",
+        "DELETE_MUSICONHOLD": "Elimina Musiche di Attesa",
+        "DIRECTORY": "Cartella",
+        "AUDIOFILES": "File Audio",
+        "RECORDINGS": "Registrazioni",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefisso",
+        "OPTIONS": "Opzioni",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Aggiungi ChanSpy",
+        "EDIT_CHANSPY": "Modifica ChanSpy",
+        "DELETE_CHANSPY": "Elimina ChanSpy",
+        "AGENTS": "Agenti",
+        "TELEPHONES": "Telefoni",
+        "QUEUES": "Code",
+        "QUEUE_CALLS": "Chiamate Code",
+        "QUEUE_PARAMETERS": "Parametri Code",
+        "ABANDONED_CALLS": "Chiamate Abbandonate",
+        "OUTBOUND_CALLS": "Chiamate Outbound",
+        "AGI": "AGI",
+        "DIAL": "Dial",
+        "INTERNALDIAL": "Dial Interna",
+        "EXTERNALDIAL": "Dial Esterna",
+        "RINGGROUP": "Ring Group",
+        "PLAYBACK": "Playback",
+        "QUEUE": "Coda",
+        "SET": "Set",
+        "VOICEMAIL": "Casella Vocale",
+        "GOTO": "GoTo",
+        "HANGUP": "Riaggancia",
+        "CUSTOM": "Custom",
+        "PROJECT": "Progetto Cally-Square",
+        "TECHNOLOGY/RESOURCE": "Tecnologia/Risorsa",
+        "URL": "URL",
+        "EDIT_APP": "Modifica Applicazione",
+        "EDIT_INTERVAL": "Modifica Intervallo",
+        "DELETE_APP": "Elimina Applicazione",
+        "INTERVALS": "Intervalli",
+        "USER": "Utente",
+        "TRUNK": "Trunk",
+        "PHONE": "Telefono",
+        "AUDIO_FILES": "File audio",
+        "ANNOUNCE_OVERRIDES": "Announce Ovverride",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "RULE": "Regola",
+        "POSITION": "Posizione",
+        "ANSWER": "Rispondi",
+        "VALUE": "Valore",
+        "MAILBOX@CONTEXT": "Mailbox@Contesto",
+        "EXTENSION": "Extension",
+        "PRIORITY": "Priorità",
+        "HANGUP_CAUSE": "Causa Hangup",
+        "OUTBOUNDDIAL": "Dial Outbound",
+        "CALLER_ID": "ID Chiamante",
+        "NO_MESSAGE_AVAILABLE": "Nessun messaggio disponibile",
+        "NO_SOUND_AVAILABLE": "Nessun suono disponibile",
+        "VOICERECORDINGS": "Registrazioni Voce",
+        "CHANSPIES": "ChanSpy",
+        "VOICE": "Voce",
+        "REALTIME": "Realtime",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Contesto",
+        "NO_MOHSOUND_AVAILABLE": "Nessuna Musica d' Attesa disponibile",
+        "FILE": "File",
+        "ADD_MOHSOUND": "Aggiungi audio Musica di Attesa",
+        "DOWNLOAD_MOHSOUND": "Scarica audio Musica d' Attesa",
+        "DELETE_MOHSOUND": "Elimina audio Musica d' Attesa",
+        "UNIQUEID": "Unique ID",
+        "AGENT": "Agente",
+        "TYPE": "Tipo",
+        "RATING": "Valutazione",
+        "AUDIO": "Audio",
+        "DATE": "Data",
+        "NEW_VOICEQUEUE": "Nuova Coda Voce",
+        "NEW_INBOUNDROUTE": "Nuova Rotta Inbound",
+        "NEW_OUTBOUNDROUTE": "Nuova Rotta Outbound",
+        "NEW_INTERNALROUTE": "Nuova Rotta Interna",
+        "NEW_CONTEXT": "Nuovo Contesto",
+        "NEW_VOICEMAIL": "Nuova Casella Vocale",
+        "NEW_MUSICONHOLD": "Nuova Musica di attesa",
+        "NEW_CHANSPY": "Nuovo ChanSpy",
+        "PENALTY": "Penalità",
+        "ADD_TEAM_TO_VOICEQUEUE": "Aggiungi Team alla coda",
+        "ADD_AGENT_TO_VOICEQUEUE": "Aggiungi Agente alla coda",
+        "EDIT_DIAL": "Modifica Dial",
+        "EDIT_AGI": "Modifica AGI",
+        "EDIT_INTERNALDIAL": "Modifica Dial interna",
+        "EDIT_EXTERNALDIAL": "Modifica dial esterna",
+        "EDIT_RINGGROUP": "Modifica Ring Group",
+        "EDIT_PLAYBACK": "Modifica Playback",
+        "EDIT_QUEUE": "Modifica Coda",
+        "EDIT_SET": "Modifica Set",
+        "EDIT_GOTO": "Modifica GoTo",
+        "EDIT_HANGUP": "Modifica Hangup",
+        "EDIT_CUSTOM": "Modifica Custom",
+        "DURATION": "Durata",
+        "RECEIVED_AT": "Ricevuto il",
+        "YES": "Si",
+        "NO": "No",
+        "HANGUPCAUSE_1": "1 = Numero non allocato",
+        "HANGUPCAUSE_16": "16 = Chiamata completata",
+        "HANGUPCAUSE_17": "17 = Utente occupato",
+        "HANGUPCAUSE_18": "18 = Nessuna risposta da utente (telefono non connesso)",
+        "HANGUPCAUSE_21": "21 = Chiamata rifiutata",
+        "HANGUPCAUSE_22": "22 = Numero cambiato",
+        "HANGUPCAUSE_27": "27 = Destinazione fuori servizio",
+        "HANGUPCAUSE_38": "38 = Rete fuori servizio",
+        "HANGUPCAUSE_41": "41 = Fallimento temporaneo",
+        "RANDOM": "Casuale",
+        "ALPHABETICAL": "Alfabetico",
+        "NO_APPS_AVAILABLE": "Nessuna applicazione disponibile",
+        "DOWNLOAD_VOICERECORDING": "Download Registrazione Voce",
+        "DELETE_VOICERECORDING": "Elimina Registrazione Voce",
+        "INTERNAL": "Interno",
+        "PHONE_STATE": "Stato Telefono",
+        "PHONE_STATUS": "Uso Telefono",
+        "REGISTERED": "Registrato",
+        "UNREGISTERED": "Non registrato",
+        "LAGGED": "Ritardato",
+        "REACHABLE": "Raggiungibile",
+        "UNREACHABLE": "Irraggiungibile",
+        "UNKNOWN": "Sconosciuto",
+        "NOT_INUSE": "Non in uso",
+        "INUSE": "In uso",
+        "BUSY": "Occupato",
+        "INVALID": "Invalido",
+        "UNAVAILABLE": "Non disponibile",
+        "RINGING": "Squilla",
+        "ONHOLD": "In attesa",
+        "RING": "Squilla",
+        "UP": "Rsiposto",
+        "INFO": "Info",
+        "TRUNKS": "Trunk",
+        "REGISTRY": "Registrazione",
+        "NO_REGISTRY": "Nessuna registrazione",
+        "LOGGED_IN": "Connesso",
+        "PAUSED": "In pausa",
+        "WAITING": "In attesa",
+        "TALKING": "In conversazione",
+        "DID": "DID",
+        "CALLER": "Chiamante",
+        "TOTAL": "Totale",
+        "ANSWERED": "Risposte",
+        "ABANDONED": "Abbandonate",
+        "UNMANAGED": "Non gestite",
+        "AVG_HOLD_TIME": "Tempo medio di attesa",
+        "AVG_DURATION": "Durata media",
+        "AVG_BILLABLE": "Fatturabile medio",
+        "SOURCE": "Sorgente",
+        "DESTINATION": "Destinazione",
+        "REJECTED": "Rifiutata",
+        "FAILED": "Fallita",
+        "CALLED": "Called",
+        "CONNECTED": "Connected",
+        "NO_RATING": "No rating",
+        "EDIT_VOICERECORDING": "Edit Voice Recording",
+        "APPLICATION_NAME": "Nome Applicazione",
+        "ARGUMENTS": "Argomenti",
+        "NO_AVAILABLE_INFO": "Nessuna informazione disponibile",
+        "ADD_AGENT_TO_QUEUE": "Aggiungi Agente alla Coda",
+        "DEFAULT_PAUSE": "PAUSA DI DEFAULT",
+        "PAUSE": "Pausa",
+        "UNPAUSE": "Riprendi",
+        "REDIRECT_TO_NUMBER": "Reindirizza verso il numero",
+        "REDIRECT_TO_AGENT": "Reindirizza verso l'Agente",
+        "AGENTADD_VOICEQUEUE": "Aggiungi agente alla coda",
+        "APPLICATION": "Applicazione",
+        "FILES": "Files",
+        "FORMAT": "Formato",
+        "MODE": "Modo",
+        "RECORD": "Registra",
+        "TEAMADD_VOICEQUEUE": "Aggiungi team alla coda",
+        "NEW_MOHSOUND": "Nuova musica di attesa",
+        "DOWNLOAD_MESSAGE": "Download",
+        "DELETE_MESSAGE": "Elimina",
+        "QUEUE_PARAMS": "Parametri coda",
+        "TOTAL_OFFERED": "Totali Offerte",
+        "READY": "Ready",
+        "AGENTADD_QUEUE": "Aggiungi agente alle code voce",
+        "AGENTSADD_QUEUE": "Aggiungi agenti alla coda voce",
+        "ALL_TEAMS": "Tutti i Team",
+        "SELECTED_TEAMS": "Team selezionati",
+        "ALL_AGENTS": "Tutti gli Agenti",
+        "SELECTED_AGENTS": "Agenti selezionati",
+        "CLOSING": "Chiusura",
+        "TAGS": "Tag",
+        "WAITING_FOR_AGENTS": "In attesa di agenti",
+        "EDIT_OUTBOUNDDIAL": "Modifica Dial Outbound",
+        "VARIABLE": "Variabile",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Impossibile riprodurre il gsm di file audio",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "LOGOUT",
+        "TRUNK_STATUS": "Lo stato di linea",
+        "WAITING_FOR_AGENT": "In attesa per gli agenti",
+        "ACCOUNTNAME": "Nome account"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/ja.json b/public/app/main/apps/voice/i18n/ja.json
new file mode 100644 (file)
index 0000000..aed16c2
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "名",
+        "VOICEQUEUES": "ボイスキュー",
+        "SEARCH_FOR_ANYONE": "だれでものための検索",
+        "BACK": "背面",
+        "SELECTED": "選択した",
+        "SELECT_ALL": "すべてを選択します",
+        "SELECT_NONE": "「なし」を選択します。",
+        "DELETE_VOICEDISPOSITION": "音声のディスポジションを削除",
+        "EDIT_VOICEDISPOSITION": "音声編集処理",
+        "EDIT_VOICEQUEUE": "ボイスキューの編集",
+        "DELETE_VOICEQUEUE": "ボイスキューを削除",
+        "MOHSOUNDS": "Moh サウンド",
+        "STRATEGY": "戦略",
+        "DESCRIPTION": "説明",
+        "ADD_VOICEQUEUE": "ボイスキューを追加します。",
+        "CREATED_AT": "で作成された",
+        "ERRORS": {
+            "NAME_REQUIRED": "名前は必須です",
+            "TIMEOUT_REQUIRED": "タイムアウトは必須です",
+            "PHONENUMBER_REQUIRED": "電話番号が必要です。",
+            "CONTEXT_REQUIRED": "コンテキストが必要です",
+            "DESTINATIONPATTERN_REQUIRED": "宛先パターンが必要な",
+            "FULLNAME_REQUIRED": "完全な名前が必要です",
+            "EMAIL_REQUIRED": "E メールは必須です",
+            "EMAIL_MUST_VALID": "メールは有効な形式で記述する必要があります",
+            "MAILBOX_REQUIRED": "メールボックスが必要な",
+            "PASSWORD_REQUIRED": "パスワードが必要です",
+            "CONFIRM_NOT_MATCH": "パスワードが一致しません",
+            "TIMEZONE_REQUIRED": "タイムゾーンが必要です",
+            "PREFIX_REQUIRED": "接頭辞が必要です",
+            "OPTIONS_REQUIRED": "オプションは必要な",
+            "AFTERCALLWORKDURATION_REQUIRED": "コールワーク時間が経過した後では必須です",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "テクノロジー / リソースが必要です",
+            "PHONE_REQUIRED": "の電話番号が必要です",
+            "VALUE_REQUIRED": "の値が必要です",
+            "EXTENSION_REQUIRED": "拡張子が必要です",
+            "PRIORITY_REQUIRED": "優先順位は必要です",
+            "NAME_MUST_VALID_PATTERN": "名前は、有効な形式で記述する必要があります",
+            "APPLICATION_REQUIRED": "は、アプリケーションが必要です",
+            "APPLICATION_NAME_REQUIRED": "アプリケーションの名前が必要です"
+        },
+        "GENERAL": "一般的な",
+        "TIMEOUT": "タイムアウト",
+        "MAXLENGTH": "最大の長さ",
+        "RETRY": "再試行",
+        "WRAPUPTIME": "まとめ時間",
+        "WEIGHT": "重量",
+        "JOINWHENEMPTY": "空になったときに参加",
+        "LEAVEWHENEMPTY": "空になったときのままにしておき",
+        "HELP": {
+            "TIMEOUT": "メンバーのデバイスをリングの秒数を指定します。",
+            "MAXLENGTH": "キューでの待機を許可された発信者の最大数を指定します。 値が 0 の場合、キュー内の発信者は、無制限の数が許可されています。",
+            "RETRY": "キューのメンバーをリングしようとしているときに、タイムアウト値に到達した場合には、キュー内の次のメンバを試行する前に待機する秒数を指定します。",
+            "WRAPUPTIME": "には、コールの完了後にキュー内のメンバが使用不能のままにしておく秒数を指定します。",
+            "WEIGHT": "キューの重みを定義します。 定義されている高いウェイトを使用してキューのメンバーは複数のキューに関連付けられている場合は、最初の優先度を取得します。",
+            "JOINWHENEMPTY": "コントロールのメンバーが利用可能なときに発信者がキューに追加されているかどうか。",
+            "LEAVEWHENEMPTY": "発信者はメンバーがコールを受信できない場合は、キューからの退出をするかどうかを制御するために使用されています。",
+            "ANNOUNCEFREQUENCY": "私たちは、発信者の位置および / または公表のキューに保留時間の予想する頻度を定義します。 このゼロを無効にするには、値を設定します。",
+            "MINANNOUNCEFREQUENCY": "は、キュー内の発信者の位置を再度を発表する前に通過する必要がある時間の最小量を指定します。 これは、発信者の位置を頻繁に変更する場合は、使用されている発信者には時間の短い期間に複数のアップデートを聞くのを防止します。",
+            "PERIODICANNOUNCEFREQUENCY": "定期的なアナウンスは、発信者を確認する必要がある頻度を示します。",
+            "ANNOUNCEPOSITIONLIMIT": "定義した場合は、いずれかの制限値以上の位置を発表するために使用されます。",
+            "AFTERCALLWORKDURATION": "コールワークオプションを選択した後、によってトリガされた一時停止の期間を",
+            "MEMBERDELAY": "では、発信者とキューメンバーをそれぞれの他のに接続されているの前に遅延が発生する可能性がある場合に使用されます。",
+            "MUSICONHOLD": "特定のキューで使用する音楽のクラスを設定します。",
+            "ANNOUNCETOAGENT": "は、コールに応答したエージェントにアナウンスの再生に使用され、通常は発信者のキューとは彼のことを知っているようにかられてきています。",
+            "RANDOMPERIODICANNOUNCE": "[ はい ] に設定されている場合は、ランダムな順序で定義されている定期的なアナウンスを再生します。",
+            "ANNOUNCEHOLDTIME": "は、保留時間の予想には、定期的なアナウンスと共にを再生するかどうかを定義します。",
+            "ANNOUNCECALLERPOSITION": "は、キュー内の発信者の位置を彼女が発表されるかどうかを定義します。 をいいえに設定した場合、位置は決して発表しました。 Yes の場合は、発信者の位置を常に発表しましたに設定されている場合。 この値は制限を設定している場合、発信者には発表の位置の制限の定義された制限の範囲内である場合のみ、キューの彼女の位置を聞く。 この値はに設定されている場合は、アナウンスの位置に定義された制限数を超えた場合、発信者には彼女の位置を聞く。",
+            "REPORTHOLDTIMEAGENT": "ブリッジの前にキューのメンバーには、発信者の保留時間のレポートをイネーブルにします。",
+            "PERIODICANNOUNCE": "を再生する定期的なアナウンスを設定するには、定義されている順序で再生されます。",
+            "HOLDTIMEANNOUNCE": "定義されていない場合、は、デフォルトの値を再生 ( 「保留時間」)しています。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "YOUARENEXTANNOUNCE": "定義されていない場合、は、デフォルトの値を再生(「ライン」を開始していることが最初)。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "THEREAREANNOUNCE": "定義されていない場合、は、デフォルトの値を再生(「がある」)しています。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "WAITINGCALLSANNOUNCE": "定義されていない場合、は、デフォルトの値 ( 「待機」「コール)を再生します。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "定義されていない場合、は、デフォルトの値を再生(「現在の保留時間の予想は」)しています。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "MINUTESANNOUNCE": "定義されていない場合、は、デフォルトの値を再生(「分」)しています。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "MINUTEANNOUNCE": "定義されていない場合、は、デフォルトの値を再生(「分」)しています。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "SECONDSANNOUNCE": "定義されていない場合、は、デフォルトの値を再生する」(「秒)します。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "THANKYOUANNOUNCE": "定義されていない場合、は、デフォルトの値を再生(「あなたの忍耐をいただきありがとうございました。」 ) 。 空の値を指定する場合は、プロンプトが表示され、まったく再生されません。",
+            "AFTERCALLWORK": "アクティブの場合には、エージェント、キューに、完了したコールの後に一時停止を設定する",
+            "AUTOPAUSE": "/ をイネーブルにコールに応答するには、失敗したことのあるメンバーのを一時停止すると、自動的に無効になります。 アクティブさせられるこれを彼がメンバーのすべてのキューの一時停止がメンバーである場合。",
+            "RINGINUSE": "ステータスが使用されているメンバにコールを送信しないようにするために使用されます。",
+            "TIMEOUTRESTART": "Yes に設定されている場合、エージェントのタイムアウト、ビジーまたは輻輳状態のどちらかですが、チャネルから受信した場合に回答がリセットされます。",
+            "MONITORFORMAT": "録音するときに使用するファイル形式を指定します。 モニタの形式が非アクティブの場合は、コールが録音されていません。",
+            "CONTEXT": "1 つの DTMF ディジットを押してキューを終了するには、発信者がすることができます。 コンテキストが指定されている場合は、発信者が番号を入力し、その番号は、コンテキストで指定された照合するしようとし、実行してダイヤルプランが継続します。",
+            "SETINTERFACEVARIABLES": "はいに設定した場合には、発信者にはキューのメンバーを使用してブリッジされていたいくつかの変数が設定され( wiki を参照してください ) の前に",
+            "SETQUEUEVARIABLES": "[ はい ] に設定されている場合は、キューのメンバーを使用してブリッジされている発信者を前に、発信者をキューするいくつかの変数が設定され( wiki を参照してください ) を離れる前に、",
+            "SETQUEUEENTRYVARIABLES": "はいに設定した場合には、発信者にはキューのメンバーを使用してブリッジされていたいくつかの変数が設定され( wiki を参照してください ) の前に",
+            "RECORDING": "コールの録音を有効にする",
+            "VOICEMAIL_CONTEXT": "相対的な拡張子のコンテキストを指定します。"
+        },
+        "MUSICONHOLD": "保留中の音楽",
+        "ANNOUNCETOAGENT": "エージェントを発表",
+        "ANNOUNCEMENTS": "アナウンスメント",
+        "ADVANCED": "高度な",
+        "ANNOUNCEFREQUENCY": "周波数を発表",
+        "MINANNOUNCEFREQUENCY": "最小周波数を発表",
+        "PERIODICANNOUNCEFREQUENCY": "定期的な頻度を発表",
+        "RANDOMPERIODICANNOUNCE": "ランダムな定期的な発表",
+        "ANNOUNCEHOLDTIME": "保留時間を発表",
+        "ANNOUNCECALLERPOSITION": "発信者の位置を発表する",
+        "ANNOUNCEPOSITIONLIMIT": "の位置が制限値を発表",
+        "REPORTHOLDTIMEAGENT": "レポートは、エージェント保留時間",
+        "PERIODICANNOUNCE": "定期的な発表",
+        "HOLDTIMEANNOUNCE": "保留時間を発表",
+        "YOUARENEXTANNOUNCE": "」している「次へ」を発表",
+        "THEREAREANNOUNCE": "」は発表があり",
+        "WAITINGCALLSANNOUNCE": "コールウェイティングを発表",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "保留時間の予想を発表する",
+        "MINUTESANNOUNCE": "分を発表",
+        "MINUTEANNOUNCE": "分を発表",
+        "SECONDSANNOUNCE": "秒数を発表",
+        "THANKYOUANNOUNCE": "「ありがとうございましたことを発表",
+        "AUTOPAUSE": "自動一時停止",
+        "AFTERCALLWORK": "コール後の作業",
+        "AFTERCALLWORKDURATION": "コールワーク時間が経過した後",
+        "RINGINUSE": "を使用してのリング",
+        "MEMBERDELAY": "メンバー遅延",
+        "TIMEOUTRESTART": "タイムアウトを再起動",
+        "MONITORFORMAT": "記録フォーマット",
+        "SETINTERFACEVARIABLES": "インターフェイスの変数を設定できます。",
+        "SETQUEUEVARIABLES": "キューの変数を設定できます。",
+        "SETQUEUEENTRYVARIABLES": "キューのエントリの変数を設定し",
+        "CONTEXT": "コンテキスト",
+        "SAVE": "保存",
+        "SETTINGS": "の設定",
+        "INBOUNDROUTES": "インバウンドルート",
+        "PHONENUMBER": "電話番号",
+        "ADD_INBOUNDROUTE": "インバウンドルートを追加します",
+        "EDIT_INBOUNDROUTE": "インバウンドルートの編集",
+        "DELETE_INBOUNDROUTE": "インバウンドルートの削除",
+        "ACTIONS": "アクション",
+        "OUTBOUNDROUTES": "アウトバウンドルート",
+        "DESTINATIONPATTERN": "宛先パターン",
+        "ADD_OUTBOUNDROUTE": "アウトバウンドルートを追加します",
+        "EDIT_OUTBOUNDROUTE": "アウトバウンドルートの編集",
+        "DELETE_OUTBOUNDROUTE": "アウトバウンドルートの削除",
+        "CUTDIGITS": "カット桁",
+        "RECORDING": "録音",
+        "RECORDINGFORMAT": "記録フォーマット",
+        "INTERNALROUTES": "内部ルート",
+        "ADD_INTERNALROUTE": "内部ルートを追加します",
+        "EDIT_INTERNALROUTE": "内部ルートの編集",
+        "DELETE_INTERNALROUTE": "内部ルートの削除",
+        "CONTEXTS": "コンテキスト",
+        "ADD_CONTEXT": "コンテキストの追加",
+        "EDIT_CONTEXT": "コンテキストの編集",
+        "DELETE_CONTEXT": "コンテキストを削除する",
+        "VOICEMAILS": "ボイスメール",
+        "ADD_VOICEMAIL": "ボイスメールの追加",
+        "EDIT_VOICEMAIL": "ボイスメールの編集",
+        "DELETE_VOICEMAIL": "ボイスメールを削除する",
+        "FULLNAME": "完全な名前",
+        "EMAIL": "電子メール",
+        "MAILBOX": "メールボックス",
+        "PASSWORD": "パスワード",
+        "CONFIRM_PASSWORD": "パスワードを確認します",
+        "TIMEZONE": "タイムゾーン",
+        "ATTACH": "接続",
+        "ENVELOPE": "封筒",
+        "DELETE": "削除",
+        "EMAILBODY": "電子メールの本文",
+        "EMAILSUBJECT": "電子メールの件名",
+        "MAXSECONDS": "最大秒数",
+        "MAXMESSAGES": "最大メッセージ数",
+        "MESSAGES": "メッセージ",
+        "SORT": "並べ替え",
+        "ADD_MUSICONHOLD": "Music On Hold を追加",
+        "MUSICONHOLDS": "保留中の音楽",
+        "EDIT_MUSICONHOLD": "編集保留中の音楽",
+        "DELETE_MUSICONHOLD": "音楽の削除",
+        "DIRECTORY": "ディレクトリ",
+        "AUDIOFILES": "オーディオファイル",
+        "RECORDINGS": "録音",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "接頭辞",
+        "OPTIONS": "オプション",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "追加 ChanSpy",
+        "EDIT_CHANSPY": "編集 ChanSpy",
+        "DELETE_CHANSPY": "削除 ChanSpy",
+        "AGENTS": "エージェント",
+        "TELEPHONES": "電話",
+        "QUEUES": "キュー",
+        "QUEUE_CALLS": "キューコール",
+        "QUEUE_PARAMETERS": "キューのパラメータ",
+        "ABANDONED_CALLS": "放棄されたコール",
+        "OUTBOUND_CALLS": "アウトバウンドコール",
+        "AGI": "AGI",
+        "DIAL": "ダイヤル",
+        "INTERNALDIAL": "内部ダイヤル",
+        "EXTERNALDIAL": "外部ダイヤル",
+        "RINGGROUP": "リンググループ",
+        "PLAYBACK": "再生",
+        "QUEUE": "キュー",
+        "SET": "設定されて",
+        "VOICEMAIL": "ボイスメール",
+        "GOTO": "後藤",
+        "HANGUP": "切る",
+        "CUSTOM": "カスタム",
+        "PROJECT": "Cally-Square プロジェクト",
+        "TECHNOLOGY/RESOURCE": "テクノロジー / リソース",
+        "URL": "URL",
+        "EDIT_APP": "アプリケーションの編集",
+        "EDIT_INTERVAL": "間隔の編集",
+        "DELETE_APP": "アプリケーションを削除します。",
+        "INTERVALS": "間隔",
+        "USER": "ユーザ",
+        "TRUNK": "トランク",
+        "PHONE": "電話",
+        "AUDIO_FILES": "オーディオファイル",
+        "ANNOUNCE_OVERRIDES": "オーバーライドを発表",
+        "MACRO": "マクロ",
+        "GOSUB": "GoSub",
+        "RULE": "ルール",
+        "POSITION": "位置",
+        "ANSWER": "答え",
+        "VALUE": "値",
+        "MAILBOX@CONTEXT": "メールボックス @ コンテキスト",
+        "EXTENSION": "拡張子",
+        "PRIORITY": "優先順位",
+        "HANGUP_CAUSE": "ハングアップさせられる",
+        "OUTBOUNDDIAL": "アウトバウンドダイヤル",
+        "CALLER_ID": "発信者 ID",
+        "NO_MESSAGE_AVAILABLE": "利用可能なメッセージはありません",
+        "NO_SOUND_AVAILABLE": "音を使用できません",
+        "VOICERECORDINGS": "音声録音",
+        "CHANSPIES": "チャンの B ・スピース",
+        "VOICE": "音声",
+        "REALTIME": "リアルタイム",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "コンテキスト",
+        "NO_MOHSOUND_AVAILABLE": "使用できません保留中の音楽",
+        "FILE": "ファイル",
+        "ADD_MOHSOUND": "音楽のサウンドを押したまま追加する",
+        "DOWNLOAD_MOHSOUND": "音楽のダウンロードにサウンドを保持",
+        "DELETE_MOHSOUND": "音楽のサウンドを削除したままに",
+        "UNIQUEID": "一意の ID",
+        "AGENT": "エージェント",
+        "TYPE": "タイプ",
+        "RATING": "定格",
+        "AUDIO": "オーディオ",
+        "DATE": "日付",
+        "NEW_VOICEQUEUE": "新しいボイスキュー",
+        "NEW_INBOUNDROUTE": "新しいインバウンドルート",
+        "NEW_OUTBOUNDROUTE": "新しいアウトバウンドルート",
+        "NEW_INTERNALROUTE": "新しい内部ルート",
+        "NEW_CONTEXT": "新しいコンテキスト",
+        "NEW_VOICEMAIL": "新規ボイスメール",
+        "NEW_MUSICONHOLD": "新しい Music On Hold",
+        "NEW_CHANSPY": "新しい ChanSpy",
+        "PENALTY": "ペナルティ",
+        "ADD_TEAM_TO_VOICEQUEUE": "チームボイスキューを追加するには",
+        "ADD_AGENT_TO_VOICEQUEUE": "エージェントの音声キューを追加するには",
+        "EDIT_DIAL": "ダイヤル編集",
+        "EDIT_AGI": "AGI を編集",
+        "EDIT_INTERNALDIAL": "内部ダイヤル編集",
+        "EDIT_EXTERNALDIAL": "外部ダイヤル編集",
+        "EDIT_RINGGROUP": "編集リンググループ",
+        "EDIT_PLAYBACK": "編集再生",
+        "EDIT_QUEUE": "「キューの編集",
+        "EDIT_SET": "設定の編集",
+        "EDIT_GOTO": "GoTo の編集",
+        "EDIT_HANGUP": "編集の切断",
+        "EDIT_CUSTOM": "カスタムを編集する",
+        "DURATION": "期間",
+        "RECEIVED_AT": "受信した",
+        "YES": "はい",
+        "NO": "はありません",
+        "HANGUPCAUSE_1": "1 = 未割り当ての番号",
+        "HANGUPCAUSE_16": "16 = Normail コールのクリア",
+        "HANGUPCAUSE_17": "17 = ユーザが話し中",
+        "HANGUPCAUSE_18": "18 = ユーザが応答しない ( 電話が接続されていないデバイス ) がありません",
+        "HANGUPCAUSE_21": "21 = コールは拒否されました。",
+        "HANGUPCAUSE_22": "22 = 番号が変更された",
+        "HANGUPCAUSE_27": "27 = 宛先に問題があります",
+        "HANGUPCAUSE_38": "38 = ネットワークの異常",
+        "HANGUPCAUSE_41": "41 = 一時的な障害が発生した",
+        "RANDOM": "ランダム",
+        "ALPHABETICAL": "アルファベット順",
+        "NO_APPS_AVAILABLE": "使用可能なアプリケーションがありません",
+        "DOWNLOAD_VOICERECORDING": "音声録音をダウンロード",
+        "DELETE_VOICERECORDING": "音声録音を削除",
+        "INTERNAL": "内部",
+        "PHONE_STATE": "電話の状態",
+        "PHONE_STATUS": "電話のステータス",
+        "REGISTERED": "登録されて",
+        "UNREGISTERED": "登録されてい",
+        "LAGGED": "遅れていた",
+        "REACHABLE": "到達可能",
+        "UNREACHABLE": "到達不能",
+        "UNKNOWN": "不明な",
+        "NOT_INUSE": "使用されていません",
+        "INUSE": "を使用して、",
+        "BUSY": "ビジー",
+        "INVALID": "無効な",
+        "UNAVAILABLE": "使用できません",
+        "RINGING": "呼び出し中",
+        "ONHOLD": "保留",
+        "RING": "リング",
+        "UP": "さ",
+        "INFO": "情報",
+        "TRUNKS": "トランク",
+        "REGISTRY": "レジストリ",
+        "NO_REGISTRY": "レジストリはありません",
+        "LOGGED_IN": "ログインして",
+        "PAUSED": "一時停止",
+        "WAITING": "待機中",
+        "TALKING": "話を",
+        "DID": "でした",
+        "CALLER": "発信者",
+        "TOTAL": "合計",
+        "ANSWERED": "応答",
+        "ABANDONED": "放棄された",
+        "UNMANAGED": "管理対象外",
+        "AVG_HOLD_TIME": "平均保留時間",
+        "AVG_DURATION": "Av 期間",
+        "AVG_BILLABLE": "Avg 有償",
+        "SOURCE": "ソース",
+        "DESTINATION": "宛先",
+        "REJECTED": "拒否された",
+        "FAILED": "失敗しました",
+        "CALLED": "と呼ばれる",
+        "CONNECTED": "接続されている",
+        "NO_RATING": "評価されていない",
+        "EDIT_VOICERECORDING": "音声録音を編集する",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "( * )のカスタムアプリケーションです。"
+        },
+        "APPLICATION_NAME": "アプリケーション名",
+        "ARGUMENTS": "引数",
+        "NO_AVAILABLE_INFO": "使用可能な情報はありません",
+        "ADD_AGENT_TO_QUEUE": "エージェントにキューを追加します。",
+        "DEFAULT_PAUSE": "デフォルトの一時停止",
+        "PAUSE": "一時停止",
+        "UNPAUSE": "一時停止を解除する",
+        "REDIRECT_TO_NUMBER": "を数」にリダイレクトします。",
+        "REDIRECT_TO_AGENT": "エージェントにリダイレクトします。",
+        "AGENTADD_VOICEQUEUE": "エージェントの音声キューを追加するには",
+        "APPLICATION": "アプリケーション",
+        "FILES": "ファイル",
+        "FORMAT": "フォーマット",
+        "MODE": "モード",
+        "RECORD": "レコード",
+        "TEAMADD_VOICEQUEUE": "チームに追加する voicequeue",
+        "NEW_MOHSOUND": "保留音で新しい音楽",
+        "DOWNLOAD_MESSAGE": "ダウンロード",
+        "DELETE_MESSAGE": "削除",
+        "QUEUE_PARAMS": "キューのパラメータ",
+        "TOTAL_OFFERED": "提供された",
+        "READY": "準備ができました",
+        "AGENTADD_QUEUE": "エージェントの音声キューを追加するには",
+        "AGENTSADD_QUEUE": "エージェントは、音声キューを追加するには",
+        "ALL_TEAMS": "すべてのチーム",
+        "SELECTED_TEAMS": "選択したチーム",
+        "ALL_AGENTS": "すべてのエージェント",
+        "SELECTED_AGENTS": "選択されたエージェント",
+        "CLOSING": "閉じる",
+        "TAGS": "タグ",
+        "WAITING_FOR_AGENTS": "エージェントを待機しています",
+        "EDIT_OUTBOUNDDIAL": "アウトバウンドダイヤル編集",
+        "VARIABLE": "変数",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Gsm でオーディオファイルを再生できません。",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "ログアウト",
+        "TRUNK_STATUS": "トランクステータス",
+        "WAITING_FOR_AGENT": "エージェントを待機しています",
+        "ACCOUNTNAME": "アカウント名"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/ko.json b/public/app/main/apps/voice/i18n/ko.json
new file mode 100644 (file)
index 0000000..578ab31
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "이름",
+        "VOICEQUEUES": "음성 대기열에",
+        "SEARCH_FOR_ANYONE": "누구나 검색",
+        "BACK": "후면",
+        "SELECTED": "선택한",
+        "SELECT_ALL": "모두 선택",
+        "SELECT_NONE": "선택 안 함",
+        "DELETE_VOICEDISPOSITION": "음성 처리 삭제",
+        "EDIT_VOICEDISPOSITION": "음성 처리 편집",
+        "EDIT_VOICEQUEUE": "음성 편집 대기",
+        "DELETE_VOICEQUEUE": "음성 큐를 삭제합니다",
+        "MOHSOUNDS": "Moh 사운드",
+        "STRATEGY": "전략",
+        "DESCRIPTION": "설명",
+        "ADD_VOICEQUEUE": "음성 대기열에 추가",
+        "CREATED_AT": "생성",
+        "ERRORS": {
+            "NAME_REQUIRED": "이름이 필요합니다",
+            "TIMEOUT_REQUIRED": "시간 제한이 필요합니다.",
+            "PHONENUMBER_REQUIRED": "전화 번호는 필수 항목입니다",
+            "CONTEXT_REQUIRED": "컨텍스트가 필요합니다.",
+            "DESTINATIONPATTERN_REQUIRED": "대상 양식 필요합니다.",
+            "FULLNAME_REQUIRED": "전체 이름이 필요합니다.",
+            "EMAIL_REQUIRED": "이 전자 메일은 필수",
+            "EMAIL_MUST_VALID": "E-mail 유효한 형식으로 작성되어 있어야 합니다",
+            "MAILBOX_REQUIRED": "사서함이 필요합니다.",
+            "PASSWORD_REQUIRED": "암호 필요",
+            "CONFIRM_NOT_MATCH": "암호가 일치하지 않습니다",
+            "TIMEZONE_REQUIRED": "시간대 가 필요합니다.",
+            "PREFIX_REQUIRED": "접두사가 필수적인",
+            "OPTIONS_REQUIRED": "옵션 필요",
+            "AFTERCALLWORKDURATION_REQUIRED": "통화 작업 시간 이후 필요합니다.",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "기술/자원이 필요합니다.",
+            "PHONE_REQUIRED": "전화가 필요",
+            "VALUE_REQUIRED": "값이 필요합니다.",
+            "EXTENSION_REQUIRED": "내선 번호가 필요합니다.",
+            "PRIORITY_REQUIRED": "우선 필요합니다.",
+            "NAME_MUST_VALID_PATTERN": "이름이 유효한 형식으로 작성되어 있어야 합니다",
+            "APPLICATION_REQUIRED": "응용 프로그램이 필요합니다.",
+            "APPLICATION_NAME_REQUIRED": "응용 프로그램 이름이 필요합니다."
+        },
+        "GENERAL": "일반",
+        "TIMEOUT": "시간 초과",
+        "MAXLENGTH": "최대 길이",
+        "RETRY": "재시도",
+        "WRAPUPTIME": "요약 시간",
+        "WEIGHT": "무게",
+        "JOINWHENEMPTY": "방전되면 참가",
+        "LEAVEWHENEMPTY": "빈 나가기",
+        "HELP": {
+            "TIMEOUT": "초 단위로 회원의 단말기 벨소리가 지정합니다.",
+            "MAXLENGTH": "대기열에 대기하고 허용된 발신자 최대 수를 지정합니다. 0 값은 대기열에 있는 발신자는 무제한으로 사용할 수 있음을 의미합니다.",
+            "RETRY": "몇 초 동안 시간 초과 값은 대기열 구성원을 링 시도하는 경우 큐에 있는 품목입니다 시도하기 전에 대기 시간을 지정합니다.",
+            "WRAPUPTIME": "통화 완료 후 대기열에 있는 구성원이 사용할 수 있는 시간(초)입니다.",
+            "WEIGHT": "Queue 의 가중치를 정의합니다. 가중치 정의 대기열 구성원을 여러 대기열에 연결되어 있을 때 우선이 될 것입니다.",
+            "JOINWHENEMPTY": "컨트롤을 사용할 멤버 없을 때 발신자가 대기열에 추가되어 있습니다.",
+            "LEAVEWHENEMPTY": "호출자 멤버에 대한 호출을 수행할 더 이상 사용할 수 없을 때 대기열에 밖으로 걷어찼다 여부를 제어하는 데 사용됩니다.",
+            "ANNOUNCEFREQUENCY": "우리는 발신자의 위치와/공개하거나 얼마나 자주 큐에 예상 대기 시간을 정의합니다. 0일 이 값을 설정합니다.",
+            "MINANNOUNCEFREQUENCY": "대기열에서 대기하고 있는 발신자의 위치를 다시 발표할 때까지 경과되어야 하는 최소 시간을 지정합니다. 이 발신자의 위치를 자주 변경될 수 있는 경우, 발신자 짧은 기간 안에 여러 개의 업데이트를 듣고 단추를 누르지 못하도록 하는 데 사용됩니다.",
+            "PERIODICANNOUNCEFREQUENCY": "발신자 정기적으로 공지 얼마나 자주 해야 한다.",
+            "ANNOUNCEPOSITIONLIMIT": "이미 정의되어 있는 경우 발표 - Position 한계 이상의 사용했습니다.",
+            "AFTERCALLWORKDURATION": "통화 작업 옵션 후 야기된 일시 중지 기간",
+            "MEMBERDELAY": "를 눌러 발신자와 서로 연결되어 있다는 대기열 회원에게 사전 지연이 있을 경우 사용됩니다.",
+            "MUSICONHOLD": "특정 대기열에 의해 사용되는 음악 클래스를 설정합니다.",
+            "ANNOUNCETOAGENT": "통화에 응답한 상담원이 안내문을 재생하는 데 사용되는, 일반적으로 그를 발신자가 대기열에서 어떤 사실을 튀어나오는.",
+            "RANDOMPERIODICANNOUNCE": "Yes로 설정된 경우, 임의의 순서로 정의된 정기적으로 알림을 보냅니다.",
+            "ANNOUNCEHOLDTIME": "예상 대기 시간 정기 발표 함께 재생되야합니다 여부를 정의합니다.",
+            "ANNOUNCECALLERPOSITION": "큐에 있는 발신자의 위치 그녀의 발표한 여부를 정의합니다. No로 설정된 경우 position 결코 발표될 예정이다. Yes 발신자 위치 항상 발표될 예정입니다. 값은 제한을 설정할 경우 발신자가 대기열에서 자신의 위치를 위치 제한에 발표할 정의 한도 내에 있는 경우에만 들립니다. 값이 더 설정되어 있으면 값이 위치 제한에 발표할 정의 수를 넘어서는 경우, 호출자가 자신의 입장을 들을 예정이다.",
+            "REPORTHOLDTIMEAGENT": "이 발신자의 대기 시간을 보고 브리징 전에 큐에 회원이 있습니다.",
+            "PERIODICANNOUNCE": "재생 할 주기적 공지가, 정의된 순서대로 재생됩니다.",
+            "HOLDTIMEANNOUNCE": "정의되지 않은 경우 기본값은 플레이(\"시간을 가질 예정이다. 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "YOUARENEXTANNOUNCE": "정의되지 않은 경우 기본값은 플레이(있거라\" 이제 첫 번째). 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "THEREAREANNOUNCE": "정의되지 않은 경우 기본값은 플레이(있었다\"라고 합니다. 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "WAITINGCALLSANNOUNCE": "정의되지 않은 경우 기본값(\"\"통화 대기) 맡는다. 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "정의되지 않은 경우 기본값은(\"현재 예상 대기 시간이 부탁해요). 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "MINUTESANNOUNCE": "정의되지 않은 경우 기본값은 플레이(이하 \"분\"). 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "MINUTEANNOUNCE": "정의되지 않은 경우 기본값은 플레이(\"분\"). 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "SECONDSANNOUNCE": "정의되지 않은 경우 기본값은 플레이(이하 \"초\"). 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "THANKYOUANNOUNCE": "정의되지 않은 경우 기본값은 플레이(\"기다려\" 주셔서 감사합니다. 빈 값으로 설정된 경우 프롬프트 전혀 재생되지 않습니다.",
+            "AFTERCALLWORK": "활성화된 경우 대기열에서 통화가 완료된 후 상담원이 일시 설정됩니다.",
+            "AUTOPAUSE": "/ 사용하면 통화 응답 배하고 멤버 중 일시정지 자동 해제됩니다. 활성화된 모든 대기열 그는 멤버로 잠시 이 회원인 경우.",
+            "RINGINUSE": "통화 상태가 사용 회원에게 보내는 것을 방지하는 데 사용합니다.",
+            "TIMEOUTRESTART": "Yes로 설정된 경우 시간 제한 통화 중 또는 정체 상태는 채널에서 수신할 경우 응답이 다시 설정합니다.",
+            "MONITORFORMAT": "녹음할 때 사용하는 파일 형식을 지정합니다. 모니터 - Format이 작동하지 않을 경우 통화를 녹음할 수 없습니다.",
+            "CONTEXT": "단일 DTMF 숫자를 눌러 대기열 종료 발신자 수 있습니다. 컨텍스트란 지정된 발신자 번호를 입력하면 그 자리 지정된 컨텍스트에 일치시킬 반환하려는 시도할 것이며 dialplan 실행을 계속할 것이다.",
+            "SETINTERFACEVARIABLES": "Yes로 설정된 경우 대기열에 멤버와 연결된 몇 가지 변수를 설정합니다(Wiki 참조) 중인 발신자 전에",
+            "SETQUEUEVARIABLES": "Yes로 설정된 경우 대기열 구성원을 브리징되어 있는 발신자 전에 단순히 발신자가 대기열에서 몇 가지 변수를 설정할 수 있습니다.(Wiki 참조) 떠나기 전에",
+            "SETQUEUEENTRYVARIABLES": "Yes로 설정된 경우 대기열에 멤버와 연결된 몇 가지 변수를 설정합니다(Wiki 참조) 중인 발신자 전에",
+            "RECORDING": "통화 녹음 활성화",
+            "VOICEMAIL_CONTEXT": "상대 내선의 컨텍스트입니다."
+        },
+        "MUSICONHOLD": "음악 대기",
+        "ANNOUNCETOAGENT": "상담원 알림",
+        "ANNOUNCEMENTS": "녹음 메시지",
+        "ADVANCED": "고급",
+        "ANNOUNCEFREQUENCY": "발표할 주파수",
+        "MINANNOUNCEFREQUENCY": "최소 빈도는 발표",
+        "PERIODICANNOUNCEFREQUENCY": "주기적 주파수 발표",
+        "RANDOMPERIODICANNOUNCE": "랜덤 정기 발표",
+        "ANNOUNCEHOLDTIME": "보류 시간 발표",
+        "ANNOUNCECALLERPOSITION": "발신자 입장",
+        "ANNOUNCEPOSITIONLIMIT": "리미트 발표",
+        "REPORTHOLDTIMEAGENT": "보고서는 상담원 보류 시간",
+        "PERIODICANNOUNCE": "정기 발표",
+        "HOLDTIMEANNOUNCE": "보류 시간 발표",
+        "YOUARENEXTANNOUNCE": "'다음에 발표할",
+        "THEREAREANNOUNCE": "발표할 '",
+        "WAITINGCALLSANNOUNCE": "대기 중인 통화 알림",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "예상 대기 시간 발표",
+        "MINUTESANNOUNCE": "분 발표",
+        "MINUTEANNOUNCE": "1분 발표",
+        "SECONDSANNOUNCE": "초 발표할",
+        "THANKYOUANNOUNCE": "'감사' 발표",
+        "AUTOPAUSE": "자동 일시 중지",
+        "AFTERCALLWORK": "통화 후 작업",
+        "AFTERCALLWORKDURATION": "통화 작업 시간 이후",
+        "RINGINUSE": "사용 중인 링",
+        "MEMBERDELAY": "멤버 지연",
+        "TIMEOUTRESTART": "Timeout 다시 시작합니다.",
+        "MONITORFORMAT": "레코딩 포맷",
+        "SETINTERFACEVARIABLES": "인터페이스 변수 설정",
+        "SETQUEUEVARIABLES": "Queue 변수 설정",
+        "SETQUEUEENTRYVARIABLES": "대기열 항목을 변수 설정",
+        "CONTEXT": "컨텍스트",
+        "SAVE": "저장",
+        "SETTINGS": "설정",
+        "INBOUNDROUTES": "수신 경로",
+        "PHONENUMBER": "전화 번호",
+        "ADD_INBOUNDROUTE": "수신 경로 추가",
+        "EDIT_INBOUNDROUTE": "수신 경로 편집",
+        "DELETE_INBOUNDROUTE": "수신 경로 삭제",
+        "ACTIONS": "동작",
+        "OUTBOUNDROUTES": "아웃바운드 경로",
+        "DESTINATIONPATTERN": "대상 양식",
+        "ADD_OUTBOUNDROUTE": "아웃바운드 경로 추가",
+        "EDIT_OUTBOUNDROUTE": "아웃바운드 경로 편집",
+        "DELETE_OUTBOUNDROUTE": "아웃바운드 경로 삭제",
+        "CUTDIGITS": "숫자를 절단",
+        "RECORDING": "녹음",
+        "RECORDINGFORMAT": "레코딩 포맷",
+        "INTERNALROUTES": "노선",
+        "ADD_INTERNALROUTE": "내부 경로 추가",
+        "EDIT_INTERNALROUTE": "내부 경로 편집",
+        "DELETE_INTERNALROUTE": "내부 경로 삭제",
+        "CONTEXTS": "컨텍스트",
+        "ADD_CONTEXT": "컨텍스트를 추가하기",
+        "EDIT_CONTEXT": "편집메뉴나 마우스 오른쪽 버튼",
+        "DELETE_CONTEXT": "컨텍스트를 삭제합니다.",
+        "VOICEMAILS": "음성 메일",
+        "ADD_VOICEMAIL": "음성 메일 추가",
+        "EDIT_VOICEMAIL": "편집 음성 메일",
+        "DELETE_VOICEMAIL": "음성 메일 삭제",
+        "FULLNAME": "전체 이름",
+        "EMAIL": "E-mail",
+        "MAILBOX": "사서함",
+        "PASSWORD": "암호",
+        "CONFIRM_PASSWORD": "암호 확인",
+        "TIMEZONE": "시간대",
+        "ATTACH": "첨부",
+        "ENVELOPE": "봉투",
+        "DELETE": "삭제",
+        "EMAILBODY": "전자 메일 본문",
+        "EMAILSUBJECT": "전자 메일 제목",
+        "MAXSECONDS": "Max Seconds",
+        "MAXMESSAGES": "최대 메시지",
+        "MESSAGES": "메시지",
+        "SORT": "정렬",
+        "ADD_MUSICONHOLD": "음악 대기 추가",
+        "MUSICONHOLDS": "보류 Musics",
+        "EDIT_MUSICONHOLD": "편집 음악 대기",
+        "DELETE_MUSICONHOLD": "음악 삭제 보류",
+        "DIRECTORY": "디렉터리",
+        "AUDIOFILES": "오디오 파일",
+        "RECORDINGS": "녹음",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "접두사",
+        "OPTIONS": "옵션",
+        "AUTH": "인증",
+        "ADD_CHANSPY": "Chanspy 추가",
+        "EDIT_CHANSPY": "편집 ChanSpy",
+        "DELETE_CHANSPY": "Chanspy 삭제",
+        "AGENTS": "상담원",
+        "TELEPHONES": "전화기",
+        "QUEUES": "대기열",
+        "QUEUE_CALLS": "대기열에 저장된 통화",
+        "QUEUE_PARAMETERS": "대기열 매개 변수",
+        "ABANDONED_CALLS": "취소된 통화",
+        "OUTBOUND_CALLS": "아웃바운드 통화",
+        "AGI": "AGI",
+        "DIAL": "다이얼",
+        "INTERNALDIAL": "내부 전화",
+        "EXTERNALDIAL": "외부 전화",
+        "RINGGROUP": "링 그룹",
+        "PLAYBACK": "재생",
+        "QUEUE": "대기열",
+        "SET": "설정",
+        "VOICEMAIL": "음성 메일",
+        "GOTO": "GoTo",
+        "HANGUP": "끊기",
+        "CUSTOM": "사용자 정의",
+        "PROJECT": "Cally-Square 프로젝트",
+        "TECHNOLOGY/RESOURCE": "기술 리소스",
+        "URL": "URL",
+        "EDIT_APP": "편집 응용 프로그램",
+        "EDIT_INTERVAL": "편집 간격",
+        "DELETE_APP": "응용 프로그램 삭제",
+        "INTERVALS": "간격",
+        "USER": "사용자",
+        "TRUNK": "트렁크",
+        "PHONE": "전화",
+        "AUDIO_FILES": "오디오 파일",
+        "ANNOUNCE_OVERRIDES": "오버라이드 발표",
+        "MACRO": "매크로",
+        "GOSUB": "GoSub",
+        "RULE": "규칙",
+        "POSITION": "위치",
+        "ANSWER": "응답",
+        "VALUE": "값",
+        "MAILBOX@CONTEXT": "사서함 @ 컨텍스트",
+        "EXTENSION": "내선 번호",
+        "PRIORITY": "우선 순위",
+        "HANGUP_CAUSE": "끊기 원인",
+        "OUTBOUNDDIAL": "발신 전화",
+        "CALLER_ID": "발신자 ID",
+        "NO_MESSAGE_AVAILABLE": "사용 가능한 메시지 없음",
+        "NO_SOUND_AVAILABLE": "사운드 없음",
+        "VOICERECORDINGS": "음성 녹음",
+        "CHANSPIES": "Chan 간첩",
+        "VOICE": "음성",
+        "REALTIME": "실시간",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "컨텍스트",
+        "NO_MOHSOUND_AVAILABLE": "사용할 수 있는 음악 없음 보류",
+        "FILE": "파일",
+        "ADD_MOHSOUND": "음악 소리가 길게 추가",
+        "DOWNLOAD_MOHSOUND": "음악 다운로드 사운드 보류",
+        "DELETE_MOHSOUND": "음악 삭제 사운드 보류",
+        "UNIQUEID": "고유 ID",
+        "AGENT": "상담원",
+        "TYPE": "유형",
+        "RATING": "등급",
+        "AUDIO": "오디오",
+        "DATE": "날짜",
+        "NEW_VOICEQUEUE": "새 음성 대기열",
+        "NEW_INBOUNDROUTE": "새로운 수신 경로",
+        "NEW_OUTBOUNDROUTE": "새 아웃바운드 경로",
+        "NEW_INTERNALROUTE": "새 내부 경로",
+        "NEW_CONTEXT": "새로운 상황에 맞는",
+        "NEW_VOICEMAIL": "새 음성 메일",
+        "NEW_MUSICONHOLD": "새 음악 대기",
+        "NEW_CHANSPY": "새로운 ChanSpy",
+        "PENALTY": "페널티",
+        "ADD_TEAM_TO_VOICEQUEUE": "팀 음성 대기열에 추가",
+        "ADD_AGENT_TO_VOICEQUEUE": "상담원에게 음성 대기열에 추가",
+        "EDIT_DIAL": "다이얼 편집",
+        "EDIT_AGI": "AGI 편집",
+        "EDIT_INTERNALDIAL": "내부 다이얼 편집",
+        "EDIT_EXTERNALDIAL": "외부 다이얼 편집",
+        "EDIT_RINGGROUP": "편집 링 그룹",
+        "EDIT_PLAYBACK": "편집할 재생",
+        "EDIT_QUEUE": "편집 대기",
+        "EDIT_SET": "설정 편집",
+        "EDIT_GOTO": "GoTo 편집",
+        "EDIT_HANGUP": "편집 끊기",
+        "EDIT_CUSTOM": "사용자 지정 편집",
+        "DURATION": "지속 시간",
+        "RECEIVED_AT": "모금을",
+        "YES": "예",
+        "NO": "없음",
+        "HANGUPCAUSE_1": "1 = 할당되지 않은 번호",
+        "HANGUPCAUSE_16": "16 = Normail 통화 지우기",
+        "HANGUPCAUSE_17": "17 = 사용 중임",
+        "HANGUPCAUSE_18": "18 = 사용자가 응답하지 않음(연결되지 않은 전화에 장치) 없음",
+        "HANGUPCAUSE_21": "21 = 통화 거부됨",
+        "HANGUPCAUSE_22": "22 = 번호 변경됨",
+        "HANGUPCAUSE_27": "27 = 부적절한 대상",
+        "HANGUPCAUSE_38": "38 = 네트워크가 작동하지 않습니다.",
+        "HANGUPCAUSE_41": "41 = 일시적인 오류입니다.",
+        "RANDOM": "무작위",
+        "ALPHABETICAL": "알파벳",
+        "NO_APPS_AVAILABLE": "사용할 수 있는 응용 프로그램이 없습니다",
+        "DOWNLOAD_VOICERECORDING": "음성 레코딩 다운로드",
+        "DELETE_VOICERECORDING": "음성 녹음 삭제",
+        "INTERNAL": "내부",
+        "PHONE_STATE": "전화 상태",
+        "PHONE_STATUS": "전화 상태",
+        "REGISTERED": "등록",
+        "UNREGISTERED": "등록되지 않은",
+        "LAGGED": "크게 뒤졌다.",
+        "REACHABLE": "도달할 수",
+        "UNREACHABLE": "연결할 수 없음",
+        "UNKNOWN": "알 수 없음",
+        "NOT_INUSE": "사용 중이 아님",
+        "INUSE": "사용",
+        "BUSY": "통화 중",
+        "INVALID": "잘못된",
+        "UNAVAILABLE": "사용 불가능",
+        "RINGING": "벨 울림",
+        "ONHOLD": "보류",
+        "RING": "링",
+        "UP": "위로",
+        "INFO": "정보",
+        "TRUNKS": "트렁크",
+        "REGISTRY": "레지스트리",
+        "NO_REGISTRY": "레지스트리 없음",
+        "LOGGED_IN": "로그인",
+        "PAUSED": "일시 중지됨",
+        "WAITING": "대기",
+        "TALKING": "통화 중",
+        "DID": "않았습니다.",
+        "CALLER": "발신자",
+        "TOTAL": "총",
+        "ANSWERED": "대답했다.",
+        "ABANDONED": "취소된 통화",
+        "UNMANAGED": "비관리",
+        "AVG_HOLD_TIME": "평균 보류 시간",
+        "AVG_DURATION": "Av 지속 시간",
+        "AVG_BILLABLE": "평균 청구",
+        "SOURCE": "소스",
+        "DESTINATION": "대상",
+        "REJECTED": "거부됨",
+        "FAILED": "실패",
+        "CALLED": "함",
+        "CONNECTED": "연결됨",
+        "NO_RATING": "등급",
+        "EDIT_VOICERECORDING": "음성 녹음 편집",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - 사용자 정의 응용 프로그램."
+        },
+        "APPLICATION_NAME": "응용 프로그램 이름",
+        "ARGUMENTS": "인수",
+        "NO_AVAILABLE_INFO": "사용 가능한 정보가 없습니다",
+        "ADD_AGENT_TO_QUEUE": "상담원 대기열에 추가",
+        "DEFAULT_PAUSE": "기본 일시 정지",
+        "PAUSE": "일시 중지",
+        "UNPAUSE": "일시 중지 해제",
+        "REDIRECT_TO_NUMBER": "번호 재전송",
+        "REDIRECT_TO_AGENT": "상담원 이동",
+        "AGENTADD_VOICEQUEUE": "상담원 추가 음성 대기열",
+        "APPLICATION": "응용 프로그램",
+        "FILES": "파일",
+        "FORMAT": "형식",
+        "MODE": "모드",
+        "RECORD": "레코드",
+        "TEAMADD_VOICEQUEUE": "팀 추가 voicequeue.",
+        "NEW_MOHSOUND": "보류 중인 사운드 신곡을",
+        "DOWNLOAD_MESSAGE": "다운로드",
+        "DELETE_MESSAGE": "삭제",
+        "QUEUE_PARAMS": "대기열 매개 변수",
+        "TOTAL_OFFERED": "총 제공",
+        "READY": "준비됨",
+        "AGENTADD_QUEUE": "상담원에게 음성 대기열에 추가",
+        "AGENTSADD_QUEUE": "상담원이 음성 대기열에 추가",
+        "ALL_TEAMS": "모든 팀이",
+        "SELECTED_TEAMS": "선택한 팀에",
+        "ALL_AGENTS": "모든 상담원",
+        "SELECTED_AGENTS": "선택된 상담원",
+        "CLOSING": "닫기",
+        "TAGS": "태그",
+        "WAITING_FOR_AGENTS": "상담원 대기",
+        "EDIT_OUTBOUNDDIAL": "아웃바운드 다이얼 편집",
+        "VARIABLE": "변수",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Gsm 오디오 파일을 재생할 수 없습니다.",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "로그아웃",
+        "TRUNK_STATUS": "트렁크 상태",
+        "WAITING_FOR_AGENT": "상담원 대기",
+        "ACCOUNTNAME": "계정 이름"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/nl.json b/public/app/main/apps/voice/i18n/nl.json
new file mode 100644 (file)
index 0000000..d6bb051
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Naam",
+        "VOICEQUEUES": "Voice wachtrijen",
+        "SEARCH_FOR_ANYONE": "Zoeken voor iedereen",
+        "BACK": "Terug",
+        "SELECTED": "Geselecteerd",
+        "SELECT_ALL": "Alles selecteren",
+        "SELECT_NONE": "Selecteer None (Geen).",
+        "DELETE_VOICEDISPOSITION": "Alle spraakberichten dispositie",
+        "EDIT_VOICEDISPOSITION": "Edit Voice dispositie",
+        "EDIT_VOICEQUEUE": "Edit Voice wachtrij",
+        "DELETE_VOICEQUEUE": "Alle spraakberichten wachtrij",
+        "MOHSOUNDS": "Moh geluiden",
+        "STRATEGY": "Strategie",
+        "DESCRIPTION": "Beschrijving",
+        "ADD_VOICEQUEUE": "Voeg spraak wachtrij",
+        "CREATED_AT": "Gemaakt op",
+        "ERRORS": {
+            "NAME_REQUIRED": "De naam is verplicht",
+            "TIMEOUT_REQUIRED": "De timeout is vereist",
+            "PHONENUMBER_REQUIRED": "Het telefoonnummer is vereist",
+            "CONTEXT_REQUIRED": "De Context is vereist",
+            "DESTINATIONPATTERN_REQUIRED": "De bestemming patroon is vereist",
+            "FULLNAME_REQUIRED": "De volledige naam is vereist",
+            "EMAIL_REQUIRED": "Het e-mailadres is vereist",
+            "EMAIL_MUST_VALID": "De e-mail moet worden geschreven in een geldige indeling",
+            "MAILBOX_REQUIRED": "De postbus is vereist",
+            "PASSWORD_REQUIRED": "Het wachtwoord is vereist",
+            "CONFIRM_NOT_MATCH": "De wachtwoorden komen niet overeen",
+            "TIMEZONE_REQUIRED": "De tijdzone is vereist",
+            "PREFIX_REQUIRED": "Het voorvoegsel is vereist",
+            "OPTIONS_REQUIRED": "De opties zijn vereist",
+            "AFTERCALLWORKDURATION_REQUIRED": "De modus Nawerk duur is vereist",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "De technologie/resource is vereist",
+            "PHONE_REQUIRED": "Het telefoonnummer is verplicht",
+            "VALUE_REQUIRED": "De waarde is vereist",
+            "EXTENSION_REQUIRED": "De uitbreiding vereist",
+            "PRIORITY_REQUIRED": "De prioriteit is vereist.",
+            "NAME_MUST_VALID_PATTERN": "De naam moet worden geschreven in een geldige indeling",
+            "APPLICATION_REQUIRED": "De toepassing vereist",
+            "APPLICATION_NAME_REQUIRED": "De toepassingsnaam is vereist"
+        },
+        "GENERAL": "Algemeen",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Maximale lengte",
+        "RETRY": "Probeer het opnieuw",
+        "WRAPUPTIME": "Tijdafronding",
+        "WEIGHT": "Gewicht",
+        "JOINWHENEMPTY": "Join als deze leeg is.",
+        "LEAVEWHENEMPTY": "Laat als deze leeg is.",
+        "HELP": {
+            "TIMEOUT": "Geeft het aantal seconden aan het toestel.",
+            "MAXLENGTH": "Geeft het maximumaantal bellers toegestaan om te wachten in een wachtrij. Een waarde van nul betekent een onbeperkt aantal bellers in de wachtrij kan staan.",
+            "RETRY": "Geeft het aantal seconden te wachten voordat u de volgende lid in de wachtrij als de time-outwaarde is uitgeput wanneer u probeert om een lid van de wachtrij.",
+            "WRAPUPTIME": "Het aantal seconden dat een lidstaat niet in een wachtrij na een gesprek.",
+            "WEIGHT": "Definieert het gewicht van een wachtrij. Een wachtrij met een hoger gewicht opgegeven krijgen voorrang wanneer leden worden geassocieerd met meerdere wachtrijen.",
+            "JOINWHENEMPTY": "Bepaalt of een beller wordt toegevoegd aan de wachtrij wanneer geen leden beschikbaar zijn.",
+            "LEAVEWHENEMPTY": "Gebruikt om te bepalen of de bellers te schoppen uit de wachtrij wanneer leden zijn niet langer beschikbaar bent om gesprekken aan te nemen.",
+            "ANNOUNCEFREQUENCY": "Bepaalt hoe vaak moeten wij de oproeper aankondigen en/of geschatte wachttijd in de wachtrij. Stel deze waarde in op nul wilt uitschakelen.",
+            "MINANNOUNCEFREQUENCY": "Specificeert de minimale hoeveelheid tijd die moet verstrijken voordat we kondigen de beller in de wachtrij weer. Dit wordt gebruikt als de beller positie kunnen regelmatig veranderen, om te voorkomen dat de beller horen meerdere updates in een korte periode van tijd.",
+            "PERIODICANNOUNCEFREQUENCY": "Geeft aan hoe vaak er regelmatig aankondigingen voor de beller.",
+            "ANNOUNCEPOSITIONLIMIT": "Als u hebt opgegeven kondigen-positie als een grenswaarde of meer.",
+            "AFTERCALLWORKDURATION": "De duur van de pauze getriggerd door de modus Nawerk optie",
+            "MEMBERDELAY": "Als u wilt dat er een vertraging voordat de beller en wachtrij lid worden met elkaar verbonden.",
+            "MUSICONHOLD": "Stelt de muziekles te gebruiken door een bepaalde wachtrij.",
+            "ANNOUNCETOAGENT": "Voor een aankondiging speelt naar de agent die het gesprek heeft beantwoord, meestal aan hem laten weten wat wachtrij wordt de beller uit.",
+            "RANDOMPERIODICANNOUNCE": "Als deze optie is ingesteld op ja, speelt de gedefinieerde regelmatig aankondigingen in een willekeurige volgorde afspelen.",
+            "ANNOUNCEHOLDTIME": "Definieert of de geschatte wachttijd moet worden gespeeld, samen met de periodieke aankondigingen.",
+            "ANNOUNCECALLERPOSITION": "Definieert of de beller in de wachtrij moeten worden aangekondigd. Als dit op Nee is ingesteld, zal de situatie nooit worden aangekondigd. Als deze optie is ingesteld op ja, wordt de beller is altijd aangekondigd. Als de waarde wordt ingesteld op maximum, dan hoort de beller haar positie in de wachtrij alleen als deze zich binnen de limiet die is bepaald door kondigen-positie-limiet. Als de waarde wordt ingesteld op meer, dan hoort de beller haar positie als deze hoger is dan het aantal opgegeven door kondigen-positie-limiet.",
+            "REPORTHOLDTIMEAGENT": "Maakt melding van de beller in de wacht tijd in de wachtrij de vóór te overbruggen.",
+            "PERIODICANNOUNCE": "Een set van periodieke aankondigingen kan worden gespeeld, speelde in de volgorde waarin ze zijn opgegeven.",
+            "HOLDTIMEANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"Hold time\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "YOUARENEXTANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"U bent nu eerste in lijn\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "THEREAREANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"Er zijn\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "WAITINGCALLSANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"gesprekken in wachtstand\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"De huidige geschatte wachttijd is\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "MINUTESANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"min\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "MINUTEANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"min\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "SECONDSANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"S\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "THANKYOUANNOUNCE": "Als niet gedefinieerd, speelt de standaardwaarde (\"bedankt voor je geduld\"). Indien ingesteld op een lege waarde, worden niet afgespeeld.",
+            "AFTERCALLWORK": "Indien actief, de agent moet worden ingesteld op pauze na een voltooide oproepen in wachtrij",
+            "AUTOPAUSE": "Hiermee schakelt u de automatische onderbreken van leden die verzuimen om een oproep te beantwoorden. Indien actief, veroorzaakt dit lid te worden onderbroken in alle wachtrijen hij lid is.",
+            "RINGINUSE": "Gebruikt om te voorkomen dat gesprekken doorsturen naar leden wier status in gebruik is.",
+            "TIMEOUTRESTART": "Als deze optie is ingesteld op ja, wordt de time-out voor een agent om antwoord als een drukke of overbezetting van het kanaal.",
+            "MONITORFORMAT": "Specificeert het bestandsformaat te gebruiken tijdens de opname. Als monitor-formaat is inactief, gesprekken worden niet geregistreerd.",
+            "CONTEXT": "Kan een beller naar de wachtrij met een enkele druk op DTMF-cijfer. Als een context wordt opgegeven en de beller een aantal, dat cijfer zal proberen aan te passen in het kader van de vastgestelde dialplan uitvoering zal doorgaan.",
+            "SETINTERFACEVARIABLES": "Als deze optie is ingesteld op ja, net voordat de beller worden overbrugd met een wachtrij lid sommige variabelen worden ingesteld (zie wiki)",
+            "SETQUEUEVARIABLES": "Als deze optie is ingesteld op ja, net voordat de beller worden overbrugd met een wachtrij lid en net voordat de beller uit de wachtrij sommige variabelen worden ingesteld (zie wiki)",
+            "SETQUEUEENTRYVARIABLES": "Als deze optie is ingesteld op ja, net voordat de beller worden overbrugd met een wachtrij lid sommige variabelen worden ingesteld (zie wiki)",
+            "RECORDING": "Om de call recording",
+            "VOICEMAIL_CONTEXT": "Het licht van de relatieve verlenging."
+        },
+        "MUSICONHOLD": "Wachtmuziek",
+        "ANNOUNCETOAGENT": "Kondig Agent",
+        "ANNOUNCEMENTS": "Aankondigingen",
+        "ADVANCED": "Geavanceerd",
+        "ANNOUNCEFREQUENCY": "Frequentie aankondigen",
+        "MINANNOUNCEFREQUENCY": "Minimale frequentie aankondigen",
+        "PERIODICANNOUNCEFREQUENCY": "Periodieke aankondiging frequentie",
+        "RANDOMPERIODICANNOUNCE": "Random periodieke aankondiging",
+        "ANNOUNCEHOLDTIME": "Kondig Nadruktijd",
+        "ANNOUNCECALLERPOSITION": "Beller aankondigen positie",
+        "ANNOUNCEPOSITIONLIMIT": "Kondig ondergrenswaarde",
+        "REPORTHOLDTIMEAGENT": "Rapport Agent Nadruktijd",
+        "PERIODICANNOUNCE": "Periodieke aankondiging",
+        "HOLDTIMEANNOUNCE": "Nadruktijd aankondigen",
+        "YOUARENEXTANNOUNCE": "\"U bent volgende' aankondigen",
+        "THEREAREANNOUNCE": "'Er zijn' aankondigen",
+        "WAITINGCALLSANNOUNCE": "Wachtende oproepen aankondigen",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Geschatte wachttijd aankondigen",
+        "MINUTESANNOUNCE": "Notulen aankondigen",
+        "MINUTEANNOUNCE": "Verbaal aankondigen",
+        "SECONDSANNOUNCE": "Seconden aankondigen",
+        "THANKYOUANNOUNCE": "\"Dank u\" aankondigen",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Werk na gesprek",
+        "AFTERCALLWORKDURATION": "Nawerk duur",
+        "RINGINUSE": "Ring in gebruik",
+        "MEMBERDELAY": "De vertraging",
+        "TIMEOUTRESTART": "Timeout herstart",
+        "MONITORFORMAT": "Opnameformaat",
+        "SETINTERFACEVARIABLES": "Stel Interface variabelen",
+        "SETQUEUEVARIABLES": "Setwachtrij variabelen",
+        "SETQUEUEENTRYVARIABLES": "Setwachtrij Entry variabelen",
+        "CONTEXT": "Kader",
+        "SAVE": "Opslaan",
+        "SETTINGS": "Instellingen",
+        "INBOUNDROUTES": "Binnenkomende routes",
+        "PHONENUMBER": "Telefoonnummer",
+        "ADD_INBOUNDROUTE": "Voeg binnenkomende route",
+        "EDIT_INBOUNDROUTE": "Edit Binnenkomende route",
+        "DELETE_INBOUNDROUTE": "Verwijder Inkomende route",
+        "ACTIONS": "Acties",
+        "OUTBOUNDROUTES": "Uitgaande routes",
+        "DESTINATIONPATTERN": "Bestemming patroon",
+        "ADD_OUTBOUNDROUTE": "Voeg uitgaande route",
+        "EDIT_OUTBOUNDROUTE": "Edit uitgaande route",
+        "DELETE_OUTBOUNDROUTE": "Verwijder uitgaande route",
+        "CUTDIGITS": "Snijd cijfers",
+        "RECORDING": "Opname",
+        "RECORDINGFORMAT": "Opnameformaat",
+        "INTERNALROUTES": "Interne verbindingen",
+        "ADD_INTERNALROUTE": "Voeg interne Route",
+        "EDIT_INTERNALROUTE": "Edit interne Route",
+        "DELETE_INTERNALROUTE": "Verwijder inwendige Route",
+        "CONTEXTS": "Contexten",
+        "ADD_CONTEXT": "Voeg context",
+        "EDIT_CONTEXT": "Edit context",
+        "DELETE_CONTEXT": "Context verwijderen",
+        "VOICEMAILS": "Voicemails",
+        "ADD_VOICEMAIL": "Voeg Voicemail",
+        "EDIT_VOICEMAIL": "Voicemail wijzigen",
+        "DELETE_VOICEMAIL": "Voicemail verwijderen",
+        "FULLNAME": "Volledige naam",
+        "EMAIL": "E-mail",
+        "MAILBOX": "Mailbox",
+        "PASSWORD": "Wachtwoord",
+        "CONFIRM_PASSWORD": "Wachtwoord bevestigen",
+        "TIMEZONE": "Tijdzone",
+        "ATTACH": "Bevestig",
+        "ENVELOPE": "Envelop",
+        "DELETE": "Verwijderen",
+        "EMAILBODY": "Hoofdtekst",
+        "EMAILSUBJECT": "E-mail Onderwerp",
+        "MAXSECONDS": "Max seconden",
+        "MAXMESSAGES": "Max berichten",
+        "MESSAGES": "Berichten",
+        "SORT": "Sorteren",
+        "ADD_MUSICONHOLD": "Voeg Wachtmuziek",
+        "MUSICONHOLDS": "Muziek in de wachtstand",
+        "EDIT_MUSICONHOLD": "Edit Wachtmuziek",
+        "DELETE_MUSICONHOLD": "Verwijderen Wachtmuziek",
+        "DIRECTORY": "Directory",
+        "AUDIOFILES": "Audiobestanden",
+        "RECORDINGS": "Opnamen",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Voorvoegsel",
+        "OPTIONS": "Opties",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Voeg ChanSpy",
+        "EDIT_CHANSPY": "ChanSpy bewerken",
+        "DELETE_CHANSPY": "Verwijder ChanSpy",
+        "AGENTS": "Agenten",
+        "TELEPHONES": "Telefoons",
+        "QUEUES": "Wachtrijen",
+        "QUEUE_CALLS": "Oproepen wachtrij",
+        "QUEUE_PARAMETERS": "Wachtrij Parameters",
+        "ABANDONED_CALLS": "Verlaten oproepen",
+        "OUTBOUND_CALLS": "Uitgaande gesprekken",
+        "AGI": "AGI",
+        "DIAL": "Meetklok",
+        "INTERNALDIAL": "Intern bellen",
+        "EXTERNALDIAL": "Externe kiestoon",
+        "RINGGROUP": "Belgroep",
+        "PLAYBACK": "Afspelen",
+        "QUEUE": "Wachtrij",
+        "SET": "Stel",
+        "VOICEMAIL": "Voicemail",
+        "GOTO": "GoTo",
+        "HANGUP": "Ophangen",
+        "CUSTOM": "Aangepaste",
+        "PROJECT": "Cally-Square Project",
+        "TECHNOLOGY/RESOURCE": "Technologie/resource",
+        "URL": "URL",
+        "EDIT_APP": "Toepassing bewerken",
+        "EDIT_INTERVAL": "Interval bewerken",
+        "DELETE_APP": "Toepassing verwijderen",
+        "INTERVALS": "Intervallen",
+        "USER": "Gebruiker",
+        "TRUNK": "Transmissielijn",
+        "PHONE": "Telefoon",
+        "AUDIO_FILES": "Audiobestanden",
+        "ANNOUNCE_OVERRIDES": "Kondig genegeerd.",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "RULE": "Regel",
+        "POSITION": "Positie",
+        "ANSWER": "Antwoord",
+        "VALUE": "Waarde",
+        "MAILBOX@CONTEXT": "Mailbox@context",
+        "EXTENSION": "Uitbreiding",
+        "PRIORITY": "Prioriteit",
+        "HANGUP_CAUSE": "Hangup oorzaak",
+        "OUTBOUNDDIAL": "Uitgaande oproep",
+        "CALLER_ID": "Beller-ID",
+        "NO_MESSAGE_AVAILABLE": "Er zijn geen berichten beschikbaar.",
+        "NO_SOUND_AVAILABLE": "Geen geluiden beschikbaar",
+        "VOICERECORDINGS": "Spraakopnamen",
+        "CHANSPIES": "Chan Spies",
+        "VOICE": "Spraak",
+        "REALTIME": "Realtime",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Kader",
+        "NO_MOHSOUND_AVAILABLE": "Geen Wachtmuziek beschikbaar",
+        "FILE": "Bestand",
+        "ADD_MOHSOUND": "Voeg Wachtmuziek geluid",
+        "DOWNLOAD_MOHSOUND": "Download muziek tijdens wachtstand geluid",
+        "DELETE_MOHSOUND": "Verwijderen Wachtmuziek geluid",
+        "UNIQUEID": "Unieke ID",
+        "AGENT": "Agent",
+        "TYPE": "Type",
+        "RATING": "Waardering",
+        "AUDIO": "Audio",
+        "DATE": "Datum",
+        "NEW_VOICEQUEUE": "Nieuw spraakbericht wachtrij",
+        "NEW_INBOUNDROUTE": "Nieuwe Inkomende route",
+        "NEW_OUTBOUNDROUTE": "Nieuwe uitgaande route",
+        "NEW_INTERNALROUTE": "Nieuwe interne Route",
+        "NEW_CONTEXT": "Nieuwe context.",
+        "NEW_VOICEMAIL": "Nieuwe voicemail",
+        "NEW_MUSICONHOLD": "Nieuwe Wachtmuziek",
+        "NEW_CHANSPY": "Nieuwe ChanSpy",
+        "PENALTY": "Boete",
+        "ADD_TEAM_TO_VOICEQUEUE": "Voeg Team Voice wachtrij",
+        "ADD_AGENT_TO_VOICEQUEUE": "Voeg Agent Voice wachtrij",
+        "EDIT_DIAL": "Nummer bewerken",
+        "EDIT_AGI": "Edit AGI",
+        "EDIT_INTERNALDIAL": "Edit interne kiestoon",
+        "EDIT_EXTERNALDIAL": "Bewerken externe kiestoon",
+        "EDIT_RINGGROUP": "Edit belgroep",
+        "EDIT_PLAYBACK": "Edit afspelen",
+        "EDIT_QUEUE": "Wachtrij bewerken",
+        "EDIT_SET": "Telefoonpost bewerken",
+        "EDIT_GOTO": "Ga naar bewerken",
+        "EDIT_HANGUP": "Hangup bewerken",
+        "EDIT_CUSTOM": "Bewerk aangep.",
+        "DURATION": "Duur",
+        "RECEIVED_AT": "Ingekomen",
+        "YES": "Ja",
+        "NO": "Nr.",
+        "HANGUPCAUSE_1": "1 = niet toegewezen nummer",
+        "HANGUPCAUSE_16": "16 = Normail gesprek wissen",
+        "HANGUPCAUSE_17": "17 = Gebruiker bezet",
+        "HANGUPCAUSE_18": "18 = geen gebruiker reageert (telefoon toestel niet aangesloten)",
+        "HANGUPCAUSE_21": "21 = gesprek afgewezen",
+        "HANGUPCAUSE_22": "22 = Nummer wijzigen",
+        "HANGUPCAUSE_27": "27 = Bestemming buiten bedrijf",
+        "HANGUPCAUSE_38": "38 = Netwerk buiten bedrijf",
+        "HANGUPCAUSE_41": "41 = Tijdelijke storing",
+        "RANDOM": "Willekeurig",
+        "ALPHABETICAL": "Alfabetische",
+        "NO_APPS_AVAILABLE": "Geen toepassingen beschikbaar",
+        "DOWNLOAD_VOICERECORDING": "Spraakberichten opnemen",
+        "DELETE_VOICERECORDING": "Verwijder spraakopname",
+        "INTERNAL": "Interne",
+        "PHONE_STATE": "Telefoon staat",
+        "PHONE_STATUS": "Telefoonstatus",
+        "REGISTERED": "Geregistreerd",
+        "UNREGISTERED": "Unregistered",
+        "LAGGED": "Achtergebleven.",
+        "REACHABLE": "Bereikbaar",
+        "UNREACHABLE": "Onbereikbaar",
+        "UNKNOWN": "Onbekend",
+        "NOT_INUSE": "Niet in gebruik",
+        "INUSE": "In gebruik",
+        "BUSY": "Bezet",
+        "INVALID": "Ongeldig",
+        "UNAVAILABLE": "Niet beschikbaar",
+        "RINGING": "Belsignaal",
+        "ONHOLD": "In de wachtstand",
+        "RING": "Borgring",
+        "UP": "Omhoog",
+        "INFO": "Info",
+        "TRUNKS": "Trunks",
+        "REGISTRY": "Registreren",
+        "NO_REGISTRY": "Geen registratie",
+        "LOGGED_IN": "Aangemeld",
+        "PAUSED": "Gepauzeerd",
+        "WAITING": "Wachten",
+        "TALKING": "Spreken",
+        "DID": "Wist",
+        "CALLER": "Beller",
+        "TOTAL": "Totaal",
+        "ANSWERED": "Beantwoord",
+        "ABANDONED": "Verlaten",
+        "UNMANAGED": "Onbeheerde",
+        "AVG_HOLD_TIME": "Gem. tijd in wacht",
+        "AVG_DURATION": "Av duur",
+        "AVG_BILLABLE": "Gem factureerbare",
+        "SOURCE": "Bron",
+        "DESTINATION": "Bestemming",
+        "REJECTED": "Afgewezen",
+        "FAILED": "Mislukt",
+        "CALLED": "Naam",
+        "CONNECTED": "Aangesloten",
+        "NO_RATING": "Geen waardering",
+        "EDIT_VOICERECORDING": "Edit spraakopname",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Aangepaste toepassing."
+        },
+        "APPLICATION_NAME": "Toepassingsnaam",
+        "ARGUMENTS": "Argumenten",
+        "NO_AVAILABLE_INFO": "Geen beschikbare informatie",
+        "ADD_AGENT_TO_QUEUE": "Agent toevoegen aan een wachtrij",
+        "DEFAULT_PAUSE": "Standaardinstellingen voor pauze",
+        "PAUSE": "Pauze",
+        "UNPAUSE": "Door",
+        "REDIRECT_TO_NUMBER": "Doorverwijzen naar nummer",
+        "REDIRECT_TO_AGENT": "Doorverwijzen naar agent",
+        "AGENTADD_VOICEQUEUE": "Voeg agent voice wachtrij",
+        "APPLICATION": "Toepassing",
+        "FILES": "Bestanden",
+        "FORMAT": "Formaat",
+        "MODE": "Modus",
+        "RECORD": "Opnemen",
+        "TEAMADD_VOICEQUEUE": "Voeg team voicequeue",
+        "NEW_MOHSOUND": "Nieuwe Muziek tijdens wachtstand geluid",
+        "DOWNLOAD_MESSAGE": "Download",
+        "DELETE_MESSAGE": "Verwijderen",
+        "QUEUE_PARAMS": "Wachtrij Parameters",
+        "TOTAL_OFFERED": "Totaal beschikbaar",
+        "READY": "Gereed",
+        "AGENTADD_QUEUE": "Voeg Agent voice wachtrijen",
+        "AGENTSADD_QUEUE": "Voeg Agents voice wachtrij",
+        "ALL_TEAMS": "Alle teams",
+        "SELECTED_TEAMS": "Geselecteerde teams",
+        "ALL_AGENTS": "Alle gebruikers zijn agenten",
+        "SELECTED_AGENTS": "Geselecteerde agenten",
+        "CLOSING": "Sluiten",
+        "TAGS": "Tags",
+        "WAITING_FOR_AGENTS": "Wachten voor agenten",
+        "EDIT_OUTBOUNDDIAL": "Edit Outbound Dial",
+        "VARIABLE": "Variabele",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Can't play gsm audiobestanden",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "Afmelden",
+        "TRUNK_STATUS": "Trunk Status",
+        "WAITING_FOR_AGENT": "Wachten voor agenten",
+        "ACCOUNTNAME": "Accountnaam"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/no.json b/public/app/main/apps/voice/i18n/no.json
new file mode 100644 (file)
index 0000000..08a8f6d
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Navn",
+        "VOICEQUEUES": "Voice køer",
+        "SEARCH_FOR_ANYONE": "Søk etter alle",
+        "BACK": "Tilbake",
+        "SELECTED": "Valgt",
+        "SELECT_ALL": "Velg alle",
+        "SELECT_NONE": "Velg ingen",
+        "DELETE_VOICEDISPOSITION": "Slett stemme disposisjon",
+        "EDIT_VOICEDISPOSITION": "Rediger stemme disposisjon",
+        "EDIT_VOICEQUEUE": "Rediger stemme kø",
+        "DELETE_VOICEQUEUE": "Slett stemme kø",
+        "MOHSOUNDS": "Moh lyder",
+        "STRATEGY": "Strategi",
+        "DESCRIPTION": "Beskrivelse",
+        "ADD_VOICEQUEUE": "Legg til Voice kø",
+        "CREATED_AT": "Opprettet i",
+        "ERRORS": {
+            "NAME_REQUIRED": "Navnet er nødvendig",
+            "TIMEOUT_REQUIRED": "Tidsavbruddet er nødvendig",
+            "PHONENUMBER_REQUIRED": "Telefonnummer er obligatorisk",
+            "CONTEXT_REQUIRED": "Konteksten er nødvendig",
+            "DESTINATIONPATTERN_REQUIRED": "Målet mønster er nødvendig",
+            "FULLNAME_REQUIRED": "Det fulle navnet er nødvendig",
+            "EMAIL_REQUIRED": "Det er nødvendig med e-post",
+            "EMAIL_MUST_VALID": "E må være skrevet i et gyldig format",
+            "MAILBOX_REQUIRED": "Postboksen er nødvendig",
+            "PASSWORD_REQUIRED": "Passordet er nødvendig",
+            "CONFIRM_NOT_MATCH": "Passordene samsvarer ikke",
+            "TIMEZONE_REQUIRED": "Tidssonen er nødvendig",
+            "PREFIX_REQUIRED": "Prefikset er nødvendig",
+            "OPTIONS_REQUIRED": "Alternativene er nødvendig",
+            "AFTERCALLWORKDURATION_REQUIRED": "Det Etterarbeid varighet er nødvendig",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Teknologien/Ressurs er nødvendig",
+            "PHONE_REQUIRED": "Telefonen er nødvendig",
+            "VALUE_REQUIRED": "Verdien er obligatorisk",
+            "EXTENSION_REQUIRED": "Utvidelsen er nødvendig",
+            "PRIORITY_REQUIRED": "Prioriteten er nødvendig",
+            "NAME_MUST_VALID_PATTERN": "Navnet må være skrevet i et gyldig format",
+            "APPLICATION_REQUIRED": "Programmet er nødvendig",
+            "APPLICATION_NAME_REQUIRED": "Navnet på programmet er nødvendig"
+        },
+        "GENERAL": "Generelt",
+        "TIMEOUT": "Tidsavbrudd",
+        "MAXLENGTH": "Maksimal lengde",
+        "RETRY": "Prøv på nytt",
+        "WRAPUPTIME": "Wrapup tid",
+        "WEIGHT": "Vekt",
+        "JOINWHENEMPTY": "Bli med når den er tom",
+        "LEAVEWHENEMPTY": "La når tom",
+        "HELP": {
+            "TIMEOUT": "Angir antall sekunder til ringen medlem i enheten.",
+            "MAXLENGTH": "Oppgir maksimalt antall innringere være lov å vente i kø. En verdi lik null betyr et ubegrenset antall innringere er tillatt i køen.",
+            "RETRY": "Angir antall sekunder å vente før du prøver den neste medlem i køen hvis den angitte verdien er utslitt og forsøker å ringe et medlem av køen.",
+            "WRAPUPTIME": "Antall sekunder for å holde medlem utilgjengelig i en kø etter fullføring av en samtale.",
+            "WEIGHT": "Definerer vekten til en kø. En kø med en høyere vekt er definert vil få første prioritet når medlemmer er tilknyttet flere køer.",
+            "JOINWHENEMPTY": "Styrer om en innringer er lagt til i køen når ingen medlemmer er tilgjengelig.",
+            "LEAVEWHENEMPTY": "Brukes til å kontrollere om innringerne er sparket ut av køen når medlemmer er ikke lenger tilgjengelig for å ta samtaler.",
+            "ANNOUNCEFREQUENCY": "Definerer hvor ofte vi skal annonsere på innringeren stilling og/eller beregnet ventetid i kø. Denne verdien settes til null for å deaktivere.",
+            "MINANNOUNCEFREQUENCY": "Angir den minste mengden tid som må gå før vi annonserer på innringeren posisjon i køen igjen. Dette brukes når innringeren stilling kan endres ofte, for å hindre at innringeren hører flere oppdateringer i en kort periode.",
+            "PERIODICANNOUNCEFREQUENCY": "Angir hvor ofte vi skal lage periodiske kunngjøringer til innringeren.",
+            "ANNOUNCEPOSITIONLIMIT": "Brukes hvis du har definert annonsere-posisjon som enten begrense eller mer.",
+            "AFTERCALLWORKDURATION": "Varigheten av Pause utløses av Etterarbeid alternativ",
+            "MEMBERDELAY": "Brukes hvis du ønsker det skal være en forsinkelse før til innringer og kø-medlem som er knyttet til hverandre.",
+            "MUSICONHOLD": "Setter musikk klassen som skal brukes av en bestemt kø.",
+            "ANNOUNCETOAGENT": "Brukes til å spille av en meddelelse til agent som besvarte anropet, vanligvis for å la ham vite hva køen innringer kommer fra.",
+            "RANDOMPERIODICANNOUNCE": "Hvis satt til ja, vil spille den definert periodisk kunngjøringer i tilfeldig rekkefølge.",
+            "ANNOUNCEHOLDTIME": "Definerer om den beregnede tiden skal spilles sammen med jevne mellomrom annonseringer.",
+            "ANNOUNCECALLERPOSITION": "Definerer om innringeren posisjon i køen skal være annonsert til henne. Hvis satt til Ingen, stillingen vil aldri bli kunngjort. Hvis satt til ja, for innringeren stilling vil alltid bli kunngjort. Hvis verdien er satt til grense, innringer vil høre hennes posisjon i køen bare hvis det er innenfor grensen som er definert av annonsere-stilling-grense. Hvis verdien er satt til mer, innringer vil høre hennes stilling hvis det utover det som er definert av annonsere-stilling-grense.",
+            "REPORTHOLDTIMEAGENT": "Muliggjør rapportering av innringeren hold tid til køen medlem før bridging.",
+            "PERIODICANNOUNCE": "Et sett med jevne mellomrom annonseringer skal spilles, spilte i den rekkefølgen de er definert.",
+            "HOLDTIMEANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"Hold tid\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "YOUARENEXTANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"Du er nå først i linje\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "THEREAREANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"det er\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "WAITINGCALLSANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"anrop venter\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"Den gjeldende beregnet hold tid er\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "MINUTESANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"minutter\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "MINUTEANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"minutt\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "SECONDSANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"sekunder\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "THANKYOUANNOUNCE": "Hvis det ikke er definert, vil spille standardverdien (\"Takk for tålmodigheten\"). Hvis satt til en tom verdi, vil meldingen ikke bli spilt på alle.",
+            "AFTERCALLWORK": "Hvis aktiv, agenten vil bli satt på pause etter en avsluttet samtalen på køen",
+            "AUTOPAUSE": "Aktiverer/deaktiverer automatisk pause av medlemmer som unnlater å svare på et anrop. Hvis aktiv fører dette medlem til å være avslått i alle køer han er medlem av.",
+            "RINGINUSE": "Brukes for å unngå å sende samtaler til medlemmer som er i bruk.",
+            "TIMEOUTRESTART": "Hvis satt til ja, tilbakestiller stille for en agent til å svare hvis enten en opptatt eller flaskehalser status er mottatt fra kanalen.",
+            "MONITORFORMAT": "Angir filformatet til bruk når opptaket. Hvis monitoren-format er inaktiv, samtaler vil ikke bli registrert.",
+            "CONTEXT": "Gjør en innringer til å gå ut av køen ved å trykke en enkelt DTMF siffer. Hvis en kontekst er spesifisert og anroper legger inn et nummer, at tallet vil forsøke å være avkrysset i kontekst angitt, og dialplan utførelsen vil fortsette der.",
+            "SETINTERFACEVARIABLES": "Hvis satt til ja, like før til innringeren blir forbundet med en kø medlem noen variabler blir satt(se wiki)",
+            "SETQUEUEVARIABLES": "Hvis satt til ja, like før til innringeren blir forbundet med en kø-medlem og like før til innringeren forlate køen noen variabler blir satt(se wiki)",
+            "SETQUEUEENTRYVARIABLES": "Hvis satt til ja, like før til innringeren blir forbundet med en kø medlem noen variabler blir satt(se wiki)",
+            "RECORDING": "Aktiverer anropet opptak",
+            "VOICEMAIL_CONTEXT": "Sammenhengen i relativ forlengelse."
+        },
+        "MUSICONHOLD": "Musikk på vent",
+        "ANNOUNCETOAGENT": "Annonsere til agent",
+        "ANNOUNCEMENTS": "Kunngjøringer",
+        "ADVANCED": "Avansert",
+        "ANNOUNCEFREQUENCY": "Annonsere frekvens",
+        "MINANNOUNCEFREQUENCY": "Minste annonsere frekvens",
+        "PERIODICANNOUNCEFREQUENCY": "Periodisk annonsere frekvens",
+        "RANDOMPERIODICANNOUNCE": "Tilfeldig periodisk annonsere",
+        "ANNOUNCEHOLDTIME": "Annonsere Hold tid",
+        "ANNOUNCECALLERPOSITION": "Annonsere innringer stilling",
+        "ANNOUNCEPOSITIONLIMIT": "Annonsere stilling grense",
+        "REPORTHOLDTIMEAGENT": "Rapporten Agent Hold tid",
+        "PERIODICANNOUNCE": "Periodisk annonsere",
+        "HOLDTIMEANNOUNCE": "Hold tid annonsere",
+        "YOUARENEXTANNOUNCE": "\"Du er neste' annonsere",
+        "THEREAREANNOUNCE": "\"Det er' annonsere",
+        "WAITINGCALLSANNOUNCE": "Ventende anrop annonsere",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Estimert Hold tid annonsere",
+        "MINUTESANNOUNCE": "Minutter annonsere",
+        "MINUTEANNOUNCE": "Minutt annonsere",
+        "SECONDSANNOUNCE": "Sekunder annonsere",
+        "THANKYOUANNOUNCE": "'Takk' annonsere",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Etterarbeid",
+        "AFTERCALLWORKDURATION": "Etterarbeid varighet",
+        "RINGINUSE": "Ring i bruk",
+        "MEMBERDELAY": "Medlem forsinkelse",
+        "TIMEOUTRESTART": "Tidsavbrudd på nytt",
+        "MONITORFORMAT": "Opptaksformat",
+        "SETINTERFACEVARIABLES": "Sett grensesnitt variabler",
+        "SETQUEUEVARIABLES": "Sett kø variabler",
+        "SETQUEUEENTRYVARIABLES": "Sett kø oppføring variabler",
+        "CONTEXT": "Kontekst",
+        "SAVE": "Lagre",
+        "SETTINGS": "Innstillinger",
+        "INBOUNDROUTES": "Inngående ruter",
+        "PHONENUMBER": "Telefonnummer",
+        "ADD_INBOUNDROUTE": "Legge til inngående rute",
+        "EDIT_INBOUNDROUTE": "Rediger inngående rute",
+        "DELETE_INBOUNDROUTE": "Slett inngående rute",
+        "ACTIONS": "Tiltak",
+        "OUTBOUNDROUTES": "Utgående ruter",
+        "DESTINATIONPATTERN": "Destinasjon mønster",
+        "ADD_OUTBOUNDROUTE": "Legg til utgående rute",
+        "EDIT_OUTBOUNDROUTE": "Rediger utgående rute",
+        "DELETE_OUTBOUNDROUTE": "Slette utgående rute",
+        "CUTDIGITS": "Kutt sifre",
+        "RECORDING": "Opptak",
+        "RECORDINGFORMAT": "Opptaksformat",
+        "INTERNALROUTES": "Interne ruter",
+        "ADD_INTERNALROUTE": "Legg til interne rute",
+        "EDIT_INTERNALROUTE": "Rediger interne rute",
+        "DELETE_INTERNALROUTE": "Slette interne rute",
+        "CONTEXTS": "Kontekster",
+        "ADD_CONTEXT": "Legg kontekst",
+        "EDIT_CONTEXT": "Rediger kontekst",
+        "DELETE_CONTEXT": "Slette kontekst",
+        "VOICEMAILS": "Talemeldinger",
+        "ADD_VOICEMAIL": "Legg til talepost",
+        "EDIT_VOICEMAIL": "Rediger talepost",
+        "DELETE_VOICEMAIL": "Slette talepost",
+        "FULLNAME": "Fullt navn",
+        "EMAIL": "E",
+        "MAILBOX": "Postboks",
+        "PASSWORD": "Passord",
+        "CONFIRM_PASSWORD": "Bekreft passord",
+        "TIMEZONE": "Tidssone",
+        "ATTACH": "Fest",
+        "ENVELOPE": "Konvolutt",
+        "DELETE": "Slette",
+        "EMAILBODY": "E-postteksten",
+        "EMAILSUBJECT": "Emne for e-post",
+        "MAXSECONDS": "Maks sekunder",
+        "MAXMESSAGES": "Maks meldinger",
+        "MESSAGES": "Meldinger",
+        "SORT": "Sortere",
+        "ADD_MUSICONHOLD": "Legg til musikk på vent",
+        "MUSICONHOLDS": "Musikk på vent",
+        "EDIT_MUSICONHOLD": "Rediger musikk på vent",
+        "DELETE_MUSICONHOLD": "Slett musikk på vent",
+        "DIRECTORY": "Katalog",
+        "AUDIOFILES": "Lydfiler",
+        "RECORDINGS": "Opptak",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefiks",
+        "OPTIONS": "Alternativer",
+        "AUTH": "Attest",
+        "ADD_CHANSPY": "Legg ChanSpy",
+        "EDIT_CHANSPY": "Rediger ChanSpy",
+        "DELETE_CHANSPY": "Slette ChanSpy",
+        "AGENTS": "Agenter",
+        "TELEPHONES": "Telefoner",
+        "QUEUES": "Køer",
+        "QUEUE_CALLS": "Køen samtaler",
+        "QUEUE_PARAMETERS": "Køen parametere",
+        "ABANDONED_CALLS": "Forlatt samtaler",
+        "OUTBOUND_CALLS": "Utgående anrop",
+        "AGI": "AGI",
+        "DIAL": "Direkte",
+        "INTERNALDIAL": "Intern direkte",
+        "EXTERNALDIAL": "Ekstern direkte",
+        "RINGGROUP": "Ring gruppe",
+        "PLAYBACK": "Avspilling",
+        "QUEUE": "Kø",
+        "SET": "Sett",
+        "VOICEMAIL": "Talebeskjed",
+        "GOTO": "Gå til",
+        "HANGUP": "Aktiv",
+        "CUSTOM": "Egendefinert",
+        "PROJECT": "Cally-Square prosjekt",
+        "TECHNOLOGY/RESOURCE": "Teknologi/Ressurs",
+        "URL": "URL",
+        "EDIT_APP": "Rediger program",
+        "EDIT_INTERVAL": "Endre intervall",
+        "DELETE_APP": "Slette program",
+        "INTERVALS": "Mellomrom",
+        "USER": "Brukeren",
+        "TRUNK": "Trunk",
+        "PHONE": "Telefon",
+        "AUDIO_FILES": "Lydfiler",
+        "ANNOUNCE_OVERRIDES": "Annonsere overstyrer",
+        "MACRO": "Makro",
+        "GOSUB": "GoSub",
+        "RULE": "Regel",
+        "POSITION": "Stilling",
+        "ANSWER": "Svar",
+        "VALUE": "Verdi",
+        "MAILBOX@CONTEXT": "Postboksen@kontekst",
+        "EXTENSION": "Forlengelse",
+        "PRIORITY": "Prioritet",
+        "HANGUP_CAUSE": "Det forårsake",
+        "OUTBOUNDDIAL": "Utgående direkte",
+        "CALLER_ID": "Innringer-ID",
+        "NO_MESSAGE_AVAILABLE": "Ingen meldinger tilgjengelig",
+        "NO_SOUND_AVAILABLE": "Ingen lyder tilgjengelig",
+        "VOICERECORDINGS": "Taleopptak",
+        "CHANSPIES": "Chan speidere.",
+        "VOICE": "Stemme",
+        "REALTIME": "Sanntid",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Kontekst",
+        "NO_MOHSOUND_AVAILABLE": "Ingen musikk på vent tilgjengelig",
+        "FILE": "Fil",
+        "ADD_MOHSOUND": "Legg til musikk på vent lyd",
+        "DOWNLOAD_MOHSOUND": "Last ned musikk på vent lyd",
+        "DELETE_MOHSOUND": "Slett musikk på vent lyd",
+        "UNIQUEID": "Unik ID",
+        "AGENT": "Agent",
+        "TYPE": "Type",
+        "RATING": "Klassifisering",
+        "AUDIO": "Lyd",
+        "DATE": "Dato",
+        "NEW_VOICEQUEUE": "Ny stemme kø",
+        "NEW_INBOUNDROUTE": "Ny inngående rute",
+        "NEW_OUTBOUNDROUTE": "Ny utgående rute",
+        "NEW_INTERNALROUTE": "Nye interne rute",
+        "NEW_CONTEXT": "Ny kontekst",
+        "NEW_VOICEMAIL": "Ny talebeskjed",
+        "NEW_MUSICONHOLD": "Ny musikk på vent",
+        "NEW_CHANSPY": "Ny ChanSpy",
+        "PENALTY": "Penalty",
+        "ADD_TEAM_TO_VOICEQUEUE": "Legg lag til Voice kø",
+        "ADD_AGENT_TO_VOICEQUEUE": "Legg til Agent til Voice kø",
+        "EDIT_DIAL": "Rediger direkte",
+        "EDIT_AGI": "Rediger AGI",
+        "EDIT_INTERNALDIAL": "Rediger intern direkte",
+        "EDIT_EXTERNALDIAL": "Redigere eksterne direkte",
+        "EDIT_RINGGROUP": "Rediger Ring gruppe",
+        "EDIT_PLAYBACK": "Rediger avspilling",
+        "EDIT_QUEUE": "Rediger kø",
+        "EDIT_SET": "Rediger satt",
+        "EDIT_GOTO": "Rediger GoTo",
+        "EDIT_HANGUP": "Rediger aktiv",
+        "EDIT_CUSTOM": "Rediger egendefinert",
+        "DURATION": "Varighet",
+        "RECEIVED_AT": "Mottatt på",
+        "YES": "Ja",
+        "NO": "Ingen",
+        "HANGUPCAUSE_1": "1 = Ufordelte nummer",
+        "HANGUPCAUSE_16": "16 = Normail call clearing",
+        "HANGUPCAUSE_17": "17 = Brukeren er opptatt",
+        "HANGUPCAUSE_18": "18 = Ingen bruker svarer (telehone enheten ikke tilkoblet)",
+        "HANGUPCAUSE_21": "21 = Samtale avvist",
+        "HANGUPCAUSE_22": "22 = Antall endret",
+        "HANGUPCAUSE_27": "27 = Mål ut av ordre",
+        "HANGUPCAUSE_38": "38 = Nettverk ut av ordre",
+        "HANGUPCAUSE_41": "41 = Midlertidig feil",
+        "RANDOM": "Tilfeldig",
+        "ALPHABETICAL": "Alfabetisk",
+        "NO_APPS_AVAILABLE": "Ingen programmer er tilgjengelig",
+        "DOWNLOAD_VOICERECORDING": "Last ned taleopptak",
+        "DELETE_VOICERECORDING": "Slette taleopptak",
+        "INTERNAL": "Intern",
+        "PHONE_STATE": "Telefonen tilstand",
+        "PHONE_STATUS": "Telefonen status",
+        "REGISTERED": "Registrert",
+        "UNREGISTERED": "Uregistrert",
+        "LAGGED": "Lag",
+        "REACHABLE": "Nås",
+        "UNREACHABLE": "Kan ikke nås",
+        "UNKNOWN": "Ukjent",
+        "NOT_INUSE": "Ikke i bruk",
+        "INUSE": "I bruk",
+        "BUSY": "Opptatt",
+        "INVALID": "Ugyldig",
+        "UNAVAILABLE": "Utilgjengelig",
+        "RINGING": "Ringer",
+        "ONHOLD": "På vent",
+        "RING": "Ring",
+        "UP": "Opp",
+        "INFO": "Info",
+        "TRUNKS": "Trunker",
+        "REGISTRY": "Registeret",
+        "NO_REGISTRY": "Ingen registeret",
+        "LOGGED_IN": "Logget på",
+        "PAUSED": "Midlertidig stoppet",
+        "WAITING": "Venter",
+        "TALKING": "Snakker",
+        "DID": "Gjorde",
+        "CALLER": "Innringer",
+        "TOTAL": "Totalt",
+        "ANSWERED": "Svarte",
+        "ABANDONED": "Forlatt",
+        "UNMANAGED": "Administrert",
+        "AVG_HOLD_TIME": "Gj.sn. Hold tid",
+        "AVG_DURATION": "Av-varighet",
+        "AVG_BILLABLE": "Avg fakturerbare",
+        "SOURCE": "Kilde",
+        "DESTINATION": "Bestemmelsessted",
+        "REJECTED": "Avvist",
+        "FAILED": "Mislyktes",
+        "CALLED": "Kalt",
+        "CONNECTED": "Koblet",
+        "NO_RATING": "Ingen aldersgrense",
+        "EDIT_VOICERECORDING": "Rediger taleopptak",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - tilpasset program."
+        },
+        "APPLICATION_NAME": "Programmet navn",
+        "ARGUMENTS": "Argumenter",
+        "NO_AVAILABLE_INFO": "Ingen tilgjengelig info",
+        "ADD_AGENT_TO_QUEUE": "Legg til Agent til kø",
+        "DEFAULT_PAUSE": "Standard PAUSE",
+        "PAUSE": "Pause",
+        "UNPAUSE": "Unpause",
+        "REDIRECT_TO_NUMBER": "Omdiriger til nummer",
+        "REDIRECT_TO_AGENT": "Omdiriger til agent",
+        "AGENTADD_VOICEQUEUE": "Legg til agent til voice kø",
+        "APPLICATION": "Programmet",
+        "FILES": "Filer",
+        "FORMAT": "Format",
+        "MODE": "Modus",
+        "RECORD": "Posten",
+        "TEAMADD_VOICEQUEUE": "Legg lag til voicequeue",
+        "NEW_MOHSOUND": "Ny musikk på vent lyd",
+        "DOWNLOAD_MESSAGE": "Last ned",
+        "DELETE_MESSAGE": "Slette",
+        "QUEUE_PARAMS": "Køen parametere",
+        "TOTAL_OFFERED": "Totalt tilbys",
+        "READY": "Klar",
+        "AGENTADD_QUEUE": "Legg til Agent til voice køer",
+        "AGENTSADD_QUEUE": "Legg til agenter til å stemme kø",
+        "ALL_TEAMS": "Alle grupper",
+        "SELECTED_TEAMS": "Valgte lag",
+        "ALL_AGENTS": "Alle agenter",
+        "SELECTED_AGENTS": "Valgt agenter",
+        "CLOSING": "Lukke",
+        "TAGS": "Tags",
+        "WAITING_FOR_AGENTS": "Venter for agenter",
+        "EDIT_OUTBOUNDDIAL": "Rediger utgående direkte",
+        "VARIABLE": "Variabel",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Kan ikke spille av gsm-filer",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "Logg av",
+        "TRUNK_STATUS": "Trunk status",
+        "WAITING_FOR_AGENT": "Venter for agenter",
+        "ACCOUNTNAME": "Kontonavn"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/pt-PT.json b/public/app/main/apps/voice/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..c66551c
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Nome",
+        "VOICEQUEUES": "Filas de voz",
+        "SEARCH_FOR_ANYONE": "Pesquisar todos",
+        "BACK": "De volta",
+        "SELECTED": "Selecionada",
+        "SELECT_ALL": "Selecionar todas",
+        "SELECT_NONE": "Selecione Nenhum",
+        "DELETE_VOICEDISPOSITION": "Disposição de eliminar uma mensagem de voz",
+        "EDIT_VOICEDISPOSITION": "Editar a disposição de voz",
+        "EDIT_VOICEQUEUE": "Editar Fila de voz",
+        "DELETE_VOICEQUEUE": "Excluir fila de voz",
+        "MOHSOUNDS": "Moh Sons",
+        "STRATEGY": "Estratégia",
+        "DESCRIPTION": "Descrição",
+        "ADD_VOICEQUEUE": "Adicionar fila de voz",
+        "CREATED_AT": "Criado em",
+        "ERRORS": {
+            "NAME_REQUIRED": "O Nome é obrigatório",
+            "TIMEOUT_REQUIRED": "O tempo limite é necessária",
+            "PHONENUMBER_REQUIRED": "O número de telefone é necessário",
+            "CONTEXT_REQUIRED": "O contexto é necessário",
+            "DESTINATIONPATTERN_REQUIRED": "O destino padrão é necessária",
+            "FULLNAME_REQUIRED": "O campo Nome completo é obrigatório",
+            "EMAIL_REQUIRED": "O Correio Electrónico é obrigatório",
+            "EMAIL_MUST_VALID": "O email deve ser escrito em um formato válido",
+            "MAILBOX_REQUIRED": "A caixa de correio é necessário",
+            "PASSWORD_REQUIRED": "A senha é obrigatória",
+            "CONFIRM_NOT_MATCH": "As senhas não coincidem",
+            "TIMEZONE_REQUIRED": "O fuso horário é obrigatório",
+            "PREFIX_REQUIRED": "O prefixo é requerido",
+            "OPTIONS_REQUIRED": "As opções são necessários",
+            "AFTERCALLWORKDURATION_REQUIRED": "A duração de trabalho após chamada é necessária",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "A tecnologia é necessária/Recursos",
+            "PHONE_REQUIRED": "O telefone é obrigatório",
+            "VALUE_REQUIRED": "O valor é obrigatório",
+            "EXTENSION_REQUIRED": "A extensão é necessária",
+            "PRIORITY_REQUIRED": "A prioridade é necessária",
+            "NAME_MUST_VALID_PATTERN": "O nome deve ser escrito em um formato válido",
+            "APPLICATION_REQUIRED": "O aplicativo é obrigatório",
+            "APPLICATION_NAME_REQUIRED": "O nome do aplicativo é obrigatório"
+        },
+        "GENERAL": "Geral",
+        "TIMEOUT": "Timeout",
+        "MAXLENGTH": "Comprimento máximo",
+        "RETRY": "Tentar novamente",
+        "WRAPUPTIME": "Tempo de finalização",
+        "WEIGHT": "Peso",
+        "JOINWHENEMPTY": "Aderir quando vazio",
+        "LEAVEWHENEMPTY": "Deixe quando vazio",
+        "HELP": {
+            "TIMEOUT": "Especifica o número de segundos para tocar um dispositivo do membro.",
+            "MAXLENGTH": "Especifica o número máximo de emissores de chamadas permitidos para estar à espera em uma fila. Um valor de zero significa um número ilimitado de chamadores são permitidos na fila.",
+            "RETRY": "Especifica o número de segundos a aguardar antes de tentar o próximo membro na fila se o valor de tempo limite é esgotado ao tentar tocar um membro da fila.",
+            "WRAPUPTIME": "O número de segundos para manter um membro indisponível em uma fila depois de terminar uma chamada.",
+            "WEIGHT": "Define o peso de uma fila. Uma fila com um peso maior definido irá obter a primeira prioridade quando os membros estão associados com várias filas.",
+            "JOINWHENEMPTY": "Controla se um chamador é adicionado à fila quando não os seus membros estiverem disponíveis.",
+            "LEAVEWHENEMPTY": "Usado para controlar se os chamadores são expulsos da fila quando os membros não estão mais disponíveis para atender a chamadas.",
+            "ANNOUNCEFREQUENCY": "Define quantas vezes devemos anunciar a posição do chamador e/ou estimado o tempo de espera na fila. Defina este valor para zero para desativar.",
+            "MINANNOUNCEFREQUENCY": "Especifica a quantidade mínima de tempo que deve decorrer antes de anunciar a posição da chamada na fila novamente. Isso é usado quando a posição do chamador pode alterar frequentemente, para impedir que o chamador ouvir várias atualizações em um curto período de tempo.",
+            "PERIODICANNOUNCEFREQUENCY": "Indica quantas vezes devemos fazer anúncios periódicos para o chamador.",
+            "ANNOUNCEPOSITIONLIMIT": "Usado se você tiver definido anunciar-posição como limite ou mais.",
+            "AFTERCALLWORKDURATION": "A duração da pausa desencadeada pela opção de trabalho após chamada",
+            "MEMBERDELAY": "Usado se você desejar que haja um atraso antes de o chamador e fila membro sendo conectados uns aos outros.",
+            "MUSICONHOLD": "Define a classe de música para ser usado por uma fila em particular.",
+            "ANNOUNCETOAGENT": "Utilizado para reproduzir um anúncio para o agente que atendeu a chamada, normalmente para que ele saiba que fila o chamador é proveniente.",
+            "RANDOMPERIODICANNOUNCE": "Se for definido como sim, vai jogar a anúncios periódicos definidos em ordem aleatória.",
+            "ANNOUNCEHOLDTIME": "Define se o tempo de espera estimado deve ser jogado junto com o anúncios periódicos.",
+            "ANNOUNCECALLERPOSITION": "Define se a posição da chamada na fila deve ser anunciado para ela. Se for definido como Não, a posição nunca será anunciado. Se for definido como sim, a posição do chamador será sempre anunciado. Se o valor for definido para limitar, o chamador ouvirá a sua posição na fila somente se estiver dentro do limite definido pela posição de anunciar-limite. Se o valor for definido para mais, o chamador ouvirá a sua posição se está além do número definido pela posição de anunciar-limite.",
+            "REPORTHOLDTIMEAGENT": "Permite a geração de relatórios de tempo de espera do chamador para a fila de membro antes de bridging.",
+            "PERIODICANNOUNCE": "Um conjunto de anúncios periódicos para ser reproduzido, reproduzidas na ordem em que são definidos.",
+            "HOLDTIMEANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"Hold time\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "YOUARENEXTANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"agora você está na primeira linha\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "THEREAREANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"Existem\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "WAITINGCALLSANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"Chamadas Aguardando\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"o tempo de espera estimado atual é\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "MINUTESANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"minutos\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "MINUTEANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"minuto\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "SECONDSANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"s\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "THANKYOUANNOUNCE": "Caso não seja definido, vai jogar o valor padrão (\"agradecemos sua paciência\"). Se for definido para um valor vazio, o prompt não será jogado em todo.",
+            "AFTERCALLWORK": "Se estiver activo, o agente será definido em pausa depois de concluída uma chamada em fila",
+            "AUTOPAUSE": "Habilita/desabilita a pausa automática dos membros que não atender uma chamada. Se indicar ACTIVO causas este membro para ser pausado em todas as filas que ele é um membro.",
+            "RINGINUSE": "Usado para evitar o envio de chamadas para os membros cujo estatuto está em uso.",
+            "TIMEOUTRESTART": "Se for definido como sim, redefine o tempo limite para um agente atender se quer um sinal de ocupado ou de estado de congestão é recebida do canal.",
+            "MONITORFORMAT": "Especifica o formato do arquivo para usar quando a gravação. Se o monitor de formato é inactivo, as chamadas não serão gravadas.",
+            "CONTEXT": "Permite que um chamador para sair da fila de espera pressionando um único dígito DTMF. Se um contexto é especificado e o chamador insere um número de dígitos, que tentará ser igualada no contexto especificado e execução dialplan continuará lá.",
+            "SETINTERFACEVARIABLES": "Se for definido como Sim, apenas antes de o chamador a ser uma ponte com uma fila membro algumas variáveis será definido(ver wiki)",
+            "SETQUEUEVARIABLES": "Se for definido como Sim, apenas antes de o chamador a ser uma ponte com uma fila de membro e apenas antes de o chamador deixar a fila de algumas variáveis será definido(ver wiki)",
+            "SETQUEUEENTRYVARIABLES": "Se for definido como Sim, apenas antes de o chamador a ser uma ponte com uma fila membro algumas variáveis será definido(ver wiki)",
+            "RECORDING": "Ativar a gravação de chamadas",
+            "VOICEMAIL_CONTEXT": "O contexto da extensão relativa."
+        },
+        "MUSICONHOLD": "Música em espera",
+        "ANNOUNCETOAGENT": "Anunciar para agente",
+        "ANNOUNCEMENTS": "Anúncios",
+        "ADVANCED": "Avançado",
+        "ANNOUNCEFREQUENCY": "Frequência de anunciar",
+        "MINANNOUNCEFREQUENCY": "Frequência mínima de anunciar",
+        "PERIODICANNOUNCEFREQUENCY": "Frequência periódica de anunciar",
+        "RANDOMPERIODICANNOUNCE": "Anunciar periódicas aleatórias",
+        "ANNOUNCEHOLDTIME": "Anunciar o tempo de espera",
+        "ANNOUNCECALLERPOSITION": "Anunciar a posição do chamador",
+        "ANNOUNCEPOSITIONLIMIT": "Limite da posição de anunciar",
+        "REPORTHOLDTIMEAGENT": "Tempo de Espera de relatório de Agente",
+        "PERIODICANNOUNCE": "Anunciar periódica",
+        "HOLDTIMEANNOUNCE": "O tempo de espera anunciar",
+        "YOUARENEXTANNOUNCE": "\"Você está próximo\" anunciar",
+        "THEREAREANNOUNCE": "\"Existem\" anunciar",
+        "WAITINGCALLSANNOUNCE": "Chamadas em espera anunciar",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Tempo de Espera Estimado anunciar",
+        "MINUTESANNOUNCE": "Minutos anunciar",
+        "MINUTEANNOUNCE": "Minutos de anunciar",
+        "SECONDSANNOUNCE": "Segundos anunciar",
+        "THANKYOUANNOUNCE": "\"Obrigado\" anunciar",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Após o trabalho de chamada",
+        "AFTERCALLWORKDURATION": "Duração de Trabalho após chamada",
+        "RINGINUSE": "Anel em uso",
+        "MEMBERDELAY": "Os Atraso",
+        "TIMEOUTRESTART": "Timeout Reiniciar",
+        "MONITORFORMAT": "Formato de gravação",
+        "SETINTERFACEVARIABLES": "Defina as variáveis de Interface",
+        "SETQUEUEVARIABLES": "Defina as variáveis de fila",
+        "SETQUEUEENTRYVARIABLES": "Defina as variáveis de entrada da fila",
+        "CONTEXT": "Contexto",
+        "SAVE": "Salvar",
+        "SETTINGS": "Definições",
+        "INBOUNDROUTES": "Rotas de entrada",
+        "PHONENUMBER": "Número de telefone",
+        "ADD_INBOUNDROUTE": "Adicionar Rota de entrada",
+        "EDIT_INBOUNDROUTE": "Editar Rota de entrada",
+        "DELETE_INBOUNDROUTE": "Eliminar rota de entrada",
+        "ACTIONS": "Acções",
+        "OUTBOUNDROUTES": "Rotas de saída",
+        "DESTINATIONPATTERN": "Padrão de destino",
+        "ADD_OUTBOUNDROUTE": "Adicionar rota de saída",
+        "EDIT_OUTBOUNDROUTE": "Editar Rota de Saída",
+        "DELETE_OUTBOUNDROUTE": "Eliminar rota de saída",
+        "CUTDIGITS": "Os dígitos de corte",
+        "RECORDING": "A gravação",
+        "RECORDINGFORMAT": "Formato de gravação",
+        "INTERNALROUTES": "Rotas internas",
+        "ADD_INTERNALROUTE": "Adicionar Rota Interna",
+        "EDIT_INTERNALROUTE": "Editar Rota Interna",
+        "DELETE_INTERNALROUTE": "Eliminar rota interna",
+        "CONTEXTS": "Contextos",
+        "ADD_CONTEXT": "Adicionar Contexto",
+        "EDIT_CONTEXT": "Editar Contexto",
+        "DELETE_CONTEXT": "Excluir Contexto",
+        "VOICEMAILS": "Correios",
+        "ADD_VOICEMAIL": "Adicionar correio de voz",
+        "EDIT_VOICEMAIL": "Editar correio de voz",
+        "DELETE_VOICEMAIL": "Excluir a mensagem do correio de voz",
+        "FULLNAME": "Nome completo",
+        "EMAIL": "Email",
+        "MAILBOX": "Caixa de correio",
+        "PASSWORD": "Senha",
+        "CONFIRM_PASSWORD": "Confirmar Senha",
+        "TIMEZONE": "Fuso horário",
+        "ATTACH": "Anexar",
+        "ENVELOPE": "Envelope",
+        "DELETE": "Excluir",
+        "EMAILBODY": "Corpo do e-mail",
+        "EMAILSUBJECT": "Assunto da mensagem de correio electrónico",
+        "MAXSECONDS": "Máximo em segundos",
+        "MAXMESSAGES": "Número máximo de mensagens",
+        "MESSAGES": "Mensagens",
+        "SORT": "Classificar",
+        "ADD_MUSICONHOLD": "Adicionar música em espera",
+        "MUSICONHOLDS": "Músicas em espera",
+        "EDIT_MUSICONHOLD": "Editar Música em espera",
+        "DELETE_MUSICONHOLD": "Eliminar música em espera",
+        "DIRECTORY": "Diretório",
+        "AUDIOFILES": "Arquivos de áudio",
+        "RECORDINGS": "Gravações",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefixo",
+        "OPTIONS": "Opções",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Adicionar ChanSpy",
+        "EDIT_CHANSPY": "Editar ChanSpy",
+        "DELETE_CHANSPY": "Excluir ChanSpy",
+        "AGENTS": "Agentes",
+        "TELEPHONES": "Telefones",
+        "QUEUES": "As filas de espera",
+        "QUEUE_CALLS": "Chamadas na Fila",
+        "QUEUE_PARAMETERS": "Os parâmetros de filas",
+        "ABANDONED_CALLS": "Chamadas abandonadas",
+        "OUTBOUND_CALLS": "Chamadas de saída",
+        "AGI": "A AGI",
+        "DIAL": "Discagem rápida",
+        "INTERNALDIAL": "Discagem interna",
+        "EXTERNALDIAL": "Discagem externa",
+        "RINGGROUP": "Grupo de anel",
+        "PLAYBACK": "Reprodução",
+        "QUEUE": "Fila",
+        "SET": "Definir",
+        "VOICEMAIL": "Correio de voz",
+        "GOTO": "Ir para",
+        "HANGUP": "Desligar",
+        "CUSTOM": "Custom",
+        "PROJECT": "Projecto Cally-Square",
+        "TECHNOLOGY/RESOURCE": "Tecnologia/recurso",
+        "URL": "URL",
+        "EDIT_APP": "Editar aplicativo",
+        "EDIT_INTERVAL": "Editar intervalo",
+        "DELETE_APP": "Exclua aplicativo",
+        "INTERVALS": "Intervalos",
+        "USER": "Usuário",
+        "TRUNK": "Tronco",
+        "PHONE": "Telefone",
+        "AUDIO_FILES": "Arquivos de áudio",
+        "ANNOUNCE_OVERRIDES": "Substituições de anunciar",
+        "MACRO": "Macro",
+        "GOSUB": "GoSub",
+        "RULE": "Regra",
+        "POSITION": "Posição",
+        "ANSWER": "Resposta",
+        "VALUE": "Valor",
+        "MAILBOX@CONTEXT": "Caixa de correio@Contexto",
+        "EXTENSION": "Extensão",
+        "PRIORITY": "Prioridade",
+        "HANGUP_CAUSE": "Causa de desligamento",
+        "OUTBOUNDDIAL": "Marcação de saída",
+        "CALLER_ID": "ID do chamador",
+        "NO_MESSAGE_AVAILABLE": "Não há mensagens disponíveis",
+        "NO_SOUND_AVAILABLE": "Não há sons disponíveis",
+        "VOICERECORDINGS": "Gravações de voz",
+        "CHANSPIES": "Chan espiões",
+        "VOICE": "Voz",
+        "REALTIME": "Em tempo real",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Contexto",
+        "NO_MOHSOUND_AVAILABLE": "Nenhuma música em espera disponível",
+        "FILE": "Arquivo",
+        "ADD_MOHSOUND": "Adicionar som de música em espera",
+        "DOWNLOAD_MOHSOUND": "Baixar o som de música em espera",
+        "DELETE_MOHSOUND": "Excluir um som de música em espera",
+        "UNIQUEID": "ID exclusivo",
+        "AGENT": "Agente",
+        "TYPE": "Tipo",
+        "RATING": "Classificação",
+        "AUDIO": "Áudio",
+        "DATE": "Data",
+        "NEW_VOICEQUEUE": "Nova fila de voz",
+        "NEW_INBOUNDROUTE": "Nova rota de entrada",
+        "NEW_OUTBOUNDROUTE": "Nova rota de saída",
+        "NEW_INTERNALROUTE": "Nova rota interna",
+        "NEW_CONTEXT": "Novo contexto",
+        "NEW_VOICEMAIL": "Novo correio de voz",
+        "NEW_MUSICONHOLD": "Nova música em espera",
+        "NEW_CHANSPY": "Novo ChanSpy",
+        "PENALTY": "Sanção",
+        "ADD_TEAM_TO_VOICEQUEUE": "Adicionar grupo de fila de voz",
+        "ADD_AGENT_TO_VOICEQUEUE": "Adicionar agente para fila de voz",
+        "EDIT_DIAL": "Editar discagem rápida",
+        "EDIT_AGI": "Editar a AGI",
+        "EDIT_INTERNALDIAL": "Editar discagem interna",
+        "EDIT_EXTERNALDIAL": "Editar Discagem Externa",
+        "EDIT_RINGGROUP": "Editar Grupo de Anel",
+        "EDIT_PLAYBACK": "Editar a reprodução",
+        "EDIT_QUEUE": "Fila de edição",
+        "EDIT_SET": "Conjunto de edição",
+        "EDIT_GOTO": "Ir para editar",
+        "EDIT_HANGUP": "Editar Desligar",
+        "EDIT_CUSTOM": "Edição personalizada /",
+        "DURATION": "Duração",
+        "RECEIVED_AT": "Recebido em",
+        "YES": "Sim",
+        "NO": "Não",
+        "HANGUPCAUSE_1": "1 = número de Não Alocado",
+        "HANGUPCAUSE_16": "16 = Normail cancelamento da chamada",
+        "HANGUPCAUSE_17": "17 = Usuário ocupado",
+        "HANGUPCAUSE_18": "18 = Sem resposta do usuário (atendimento telefonico dispositivo não conectado)",
+        "HANGUPCAUSE_21": "21 = Chamada rejeitada",
+        "HANGUPCAUSE_22": "22 = número alterado",
+        "HANGUPCAUSE_27": "27 = Destino fora de ordem",
+        "HANGUPCAUSE_38": "38 = Rede fora de ordem",
+        "HANGUPCAUSE_41": "41 = Falha temporária",
+        "RANDOM": "Aleatório",
+        "ALPHABETICAL": "Ordem alfabética",
+        "NO_APPS_AVAILABLE": "Não há aplicativos disponíveis",
+        "DOWNLOAD_VOICERECORDING": "Download de gravação de voz",
+        "DELETE_VOICERECORDING": "Excluir a gravação de voz",
+        "INTERNAL": "Interna",
+        "PHONE_STATE": "Estado do telefone",
+        "PHONE_STATUS": "Status do telefone",
+        "REGISTERED": "Registado",
+        "UNREGISTERED": "Não registrado",
+        "LAGGED": "Lag",
+        "REACHABLE": "Acessível",
+        "UNREACHABLE": "Inalcançável",
+        "UNKNOWN": "Desconhecido",
+        "NOT_INUSE": "Não está em uso",
+        "INUSE": "Em Uso",
+        "BUSY": "Ocupado",
+        "INVALID": "Inválido",
+        "UNAVAILABLE": "Indisponível",
+        "RINGING": "Tocando",
+        "ONHOLD": "Em Espera",
+        "RING": "Anel O",
+        "UP": "Para Cima",
+        "INFO": "Info",
+        "TRUNKS": "Troncos",
+        "REGISTRY": "Registro",
+        "NO_REGISTRY": "Sem registro",
+        "LOGGED_IN": "Conectado",
+        "PAUSED": "Em pausa",
+        "WAITING": "Em espera",
+        "TALKING": "Conversando",
+        "DID": "Não",
+        "CALLER": "Chamador",
+        "TOTAL": "Total",
+        "ANSWERED": "Atendidas",
+        "ABANDONED": "Abandonadas",
+        "UNMANAGED": "Não Gerenciados",
+        "AVG_HOLD_TIME": "Tempo Médio em Espera",
+        "AVG_DURATION": "Duração Av",
+        "AVG_BILLABLE": "O AVG faturáveis",
+        "SOURCE": "Fonte",
+        "DESTINATION": "Destino",
+        "REJECTED": "Rejeitado",
+        "FAILED": "Falhou",
+        "CALLED": "Chamado",
+        "CONNECTED": "Ligado",
+        "NO_RATING": "Sem classificação",
+        "EDIT_VOICERECORDING": "Editar a gravação de voz",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - aplicativo personalizado."
+        },
+        "APPLICATION_NAME": "Nome do aplicativo",
+        "ARGUMENTS": "Argumentos",
+        "NO_AVAILABLE_INFO": "Sem informações disponíveis",
+        "ADD_AGENT_TO_QUEUE": "Adicionar agente para fila de espera",
+        "DEFAULT_PAUSE": "Pausa padrão",
+        "PAUSE": "Pausa",
+        "UNPAUSE": "Unpause",
+        "REDIRECT_TO_NUMBER": "Redirecionar para número",
+        "REDIRECT_TO_AGENT": "Redirecionar para agente",
+        "AGENTADD_VOICEQUEUE": "Adicionar agente para fila de voz",
+        "APPLICATION": "Aplicação",
+        "FILES": "Arquivos",
+        "FORMAT": "Formato",
+        "MODE": "Mode",
+        "RECORD": "Gravar",
+        "TEAMADD_VOICEQUEUE": "Adicionar grupo de voicequeue",
+        "NEW_MOHSOUND": "Novo som de música em espera",
+        "DOWNLOAD_MESSAGE": "Download",
+        "DELETE_MESSAGE": "Excluir",
+        "QUEUE_PARAMS": "Os parâmetros de filas",
+        "TOTAL_OFFERED": "Total da oferta",
+        "READY": "Pronto",
+        "AGENTADD_QUEUE": "Adicionar agente para filas de voz",
+        "AGENTSADD_QUEUE": "Adicionar agentes a fila de voz",
+        "ALL_TEAMS": "Todas as equipas",
+        "SELECTED_TEAMS": "Equipes selecionadas",
+        "ALL_AGENTS": "Todos os Agentes",
+        "SELECTED_AGENTS": "Agentes selecionados",
+        "CLOSING": "Fechar",
+        "TAGS": "Tags",
+        "WAITING_FOR_AGENTS": "Aguardando para agentes",
+        "EDIT_OUTBOUNDDIAL": "Editar discagem de saída",
+        "VARIABLE": "Variável",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Não consigo reproduzir arquivos de áudio gsm",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "LOGOUT",
+        "TRUNK_STATUS": "Status do tronco",
+        "WAITING_FOR_AGENT": "Aguardando para agentes",
+        "ACCOUNTNAME": "Nome da conta"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/ru.json b/public/app/main/apps/voice/i18n/ru.json
new file mode 100644 (file)
index 0000000..e55c083
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Имя",
+        "VOICEQUEUES": "Голос очередей",
+        "SEARCH_FOR_ANYONE": "Для поиска любого",
+        "BACK": "Назад",
+        "SELECTED": "Выбранные",
+        "SELECT_ALL": "Выбрать все",
+        "SELECT_NONE": "Выберите пункт None",
+        "DELETE_VOICEDISPOSITION": "Удаление голосовых распоряжения",
+        "EDIT_VOICEDISPOSITION": "Редактировать голосовые распоряжения",
+        "EDIT_VOICEQUEUE": "Изменить голос очереди",
+        "DELETE_VOICEQUEUE": "Удаление голосовых очереди",
+        "MOHSOUNDS": "Мз звуки",
+        "STRATEGY": "Стратегия",
+        "DESCRIPTION": "Описание",
+        "ADD_VOICEQUEUE": "Добавить голосовую очереди",
+        "CREATED_AT": "Созданные в",
+        "ERRORS": {
+            "NAME_REQUIRED": "Это имя требуется",
+            "TIMEOUT_REQUIRED": "Тайм-аут не требуется",
+            "PHONENUMBER_REQUIRED": "Номер телефона не требуется",
+            "CONTEXT_REQUIRED": "В этом контексте необходимо",
+            "DESTINATIONPATTERN_REQUIRED": "Назначение шаблона не требуется",
+            "FULLNAME_REQUIRED": "В требуется указать полное имя",
+            "EMAIL_REQUIRED": "Адреса электронной почты не требуется",
+            "EMAIL_MUST_VALID": "Адреса электронной почты должны быть записаны в действительный формат",
+            "MAILBOX_REQUIRED": "Почтовый ящик не требуется",
+            "PASSWORD_REQUIRED": "Пароль не требуется",
+            "CONFIRM_NOT_MATCH": "Пароли не совпадают",
+            "TIMEZONE_REQUIRED": "Часовой пояс не требуется",
+            "PREFIX_REQUIRED": "Префикс не требуется",
+            "OPTIONS_REQUIRED": "Параметры не требуется",
+            "AFTERCALLWORKDURATION_REQUIRED": "После вызова, продолжительность работы не требуется",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Технология/ресурсов не требуется",
+            "PHONE_REQUIRED": "Номер телефона не требуется",
+            "VALUE_REQUIRED": "Это значение требуется",
+            "EXTENSION_REQUIRED": "Такое продление срока действия необходимо",
+            "PRIORITY_REQUIRED": "Приоритет не требуется",
+            "NAME_MUST_VALID_PATTERN": "Имя должно быть записано в действительный формат",
+            "APPLICATION_REQUIRED": "Приложения не требуется",
+            "APPLICATION_NAME_REQUIRED": "Имя приложения не требуется"
+        },
+        "GENERAL": "Генеральной",
+        "TIMEOUT": "Превышение лимита времени",
+        "MAXLENGTH": "Максимальная длина",
+        "RETRY": "Повторите попытку",
+        "WRAPUPTIME": "Время подготовки сводки",
+        "WEIGHT": "Вес",
+        "JOINWHENEMPTY": "Присоединиться к при пустом",
+        "LEAVEWHENEMPTY": "Оставьте при пустом",
+        "HELP": {
+            "TIMEOUT": "Указывает число секунд в кольцо на устройстве.",
+            "MAXLENGTH": "Указывает максимальное число разрешенных абонентов будет в состоянии ожидания в очереди. Нулевое значение означает неограниченное количество абонентов не допускаются в очереди.",
+            "RETRY": "Указывает количество секунд ожидания перед следующей члена в очереди, если значение тайм-аута не иссякнет при попытке кольцо членом очереди.",
+            "WRAPUPTIME": "Количество секунд для поддержания члена недоступна в очереди после завершения вызова.",
+            "WEIGHT": "Определяет вес очереди. Очереди с более высокий вес определяется получите первый приоритет когда члены связаны с несколькими очередями.",
+            "JOINWHENEMPTY": "Управляет ли вызывающий абонент будет добавлен в очередь при отсутствии членов доступны.",
+            "LEAVEWHENEMPTY": "Используется для управления ли абоненты ногами из очереди когда члены больше не доступен для вызовов.",
+            "ANNOUNCEFREQUENCY": "Определяет, как часто мы должны объявить о вызывающем абоненте, положение и/или время удержания в очереди. Задать это значение на ноль, чтобы отключить.",
+            "MINANNOUNCEFREQUENCY": "Указывает минимальное количество времени, которое должно пройти перед тем мы объявляем о абонента в позицию в очереди еще раз. Это значение используется при абонента в положение может меняться очень часто, чтобы предотвратить слушания вызывающего абонента несколько обновлений в короткий период времени.",
+            "PERIODICANNOUNCEFREQUENCY": "Показывает, как часто мы должны сделать периодические объявления для абонента.",
+            "ANNOUNCEPOSITIONLIMIT": "Если вы определены объявить положение либо как ограничение или более.",
+            "AFTERCALLWORKDURATION": "Длительность паузы включается работа после вызова параметр",
+            "MEMBERDELAY": "Если вы хотите быть задержка до вызывающего абонента и очереди членом соединены друг с другом.",
+            "MUSICONHOLD": "Устанавливает музыки класса для использования в конкретной очереди.",
+            "ANNOUNCETOAGENT": "Используется для воспроизведения объявление на оператора, ответил на вызов, обычно ему знать, какие очереди вызывающего абонента.",
+            "RANDOMPERIODICANNOUNCE": "Если установлено значение Да, будет играть определенных периодических объявлений о вакансиях в произвольном порядке.",
+            "ANNOUNCEHOLDTIME": "Определяет по оценкам времени удержания должен воспроизводиться вместе с периодических объявлений.",
+            "ANNOUNCECALLERPOSITION": "Определяет номер вызывающего абонента в очереди должно быть объявлено на нее. Если установлено значение Нет, положение никогда не будет объявлено дополнительно. Если установлено значение Да, абонента в положении всегда будет объявлено дополнительно. Если для этого параметра установлено значение предела, абонент услышит ее положение в очереди только если он находится в пределах заданного предела, объявить-position-предел. Если значение установлено на более абонент услышит ее положение, если она выходит за рамки номер определяется объявить-position-предел.",
+            "REPORTHOLDTIMEAGENT": "Позволяет создавать отчеты о абонента в время удержания в очередь член до моста.",
+            "PERIODICANNOUNCE": "Набор периодических объявлений, воспроизводятся в том порядке они определены.",
+            "HOLDTIMEANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Время удержания\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "YOUARENEXTANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Теперь Вы сначала в линии\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "THEREAREANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Есть\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "WAITINGCALLSANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Вызовов ожидающих\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Оценка текущего времени удержания\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "MINUTESANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Минуты\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "MINUTEANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Минуты\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "SECONDSANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"секунд\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "THANKYOUANNOUNCE": "Если не определено, будет играть значение по умолчанию (\"Благодарим вас за ваше терпение\"). Если установлено на пустое значение, запрос не будет воспроизводиться на всех.",
+            "AFTERCALLWORK": "Если активно, оператор будет установлен на паузу после полного завершения вызова в очередь",
+            "AUTOPAUSE": "Включение/отключение автоматического приостановки члены Совета, которые не ответить на вызов. Если активно причины этого члена на паузу во всех очередях он является членом.",
+            "RINGINUSE": "Используется для предотвращения отправки вызовов для членов, состояние которого находится в использовании.",
+            "TIMEOUTRESTART": "Если установлено значение Да, Сброс тайм-аут для ответа оператора либо занят или состояние перегрузки будет получено от канала.",
+            "MONITORFORMAT": "Указывает формат файла для использования при записи. Если монитор формата неактивно, вызовы не будут записаны.",
+            "CONTEXT": "Позволяет вызывающему абоненту для выхода из очереди нажатием одной цифры DTMF. Если контекст не указан и абонент вводит номер, цифра будет пытаться быть подобраны в контексте указанного и команду display dialplan analysis исполнения будет и впредь.",
+            "SETINTERFACEVARIABLES": "Если установлено значение Да, просто до абонента, параллельной линии с очередью членов некоторых переменных будет set(см. wiki)",
+            "SETQUEUEVARIABLES": "Если установлено значение Да, просто до абонента, параллельной линии с очередью член и непосредственно до абонента оставив очереди некоторых переменных будет set(см. wiki)",
+            "SETQUEUEENTRYVARIABLES": "Если установлено значение Да, просто до абонента, параллельной линии с очередью членов некоторых переменных будет set(см. wiki)",
+            "RECORDING": "Включение записи вызова",
+            "VOICEMAIL_CONTEXT": "В контексте относительного добавочный номер."
+        },
+        "MUSICONHOLD": "Музыка на удержании",
+        "ANNOUNCETOAGENT": "Сообщить оператору",
+        "ANNOUNCEMENTS": "Объявления",
+        "ADVANCED": "Расширенные возможности",
+        "ANNOUNCEFREQUENCY": "Объявить о частоте",
+        "MINANNOUNCEFREQUENCY": "Объявить о минимальной частоты",
+        "PERIODICANNOUNCEFREQUENCY": "Периодические объявить о частоте",
+        "RANDOMPERIODICANNOUNCE": "Случайные периодические объявить о",
+        "ANNOUNCEHOLDTIME": "Объявить о времени удержания",
+        "ANNOUNCECALLERPOSITION": "Объявить о положении вызывающего абонента",
+        "ANNOUNCEPOSITIONLIMIT": "Объявить предельное положение",
+        "REPORTHOLDTIMEAGENT": "Доклад оператор время удержания",
+        "PERIODICANNOUNCE": "Периодические объявить о",
+        "HOLDTIMEANNOUNCE": "Время удержания объявить о",
+        "YOUARENEXTANNOUNCE": "\"Вы далее' объявить о",
+        "THEREAREANNOUNCE": "'Есть' объявить о",
+        "WAITINGCALLSANNOUNCE": "Ожидающих вызовов объявить о",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "По оценкам времени удержания объявить о",
+        "MINUTESANNOUNCE": "Минут объявить о",
+        "MINUTEANNOUNCE": "Минуту объявить о",
+        "SECONDSANNOUNCE": "Секунд объявить о",
+        "THANKYOUANNOUNCE": "\"Спасибо\" объявить о",
+        "AUTOPAUSE": "Автоматическая пауза",
+        "AFTERCALLWORK": "Работа после вызова",
+        "AFTERCALLWORKDURATION": "Работа после вызова продолжительность",
+        "RINGINUSE": "Кольцо в использовании",
+        "MEMBERDELAY": "Член временной задержки",
+        "TIMEOUTRESTART": "Тайм-аут перезапуска",
+        "MONITORFORMAT": "Формат записи",
+        "SETINTERFACEVARIABLES": "Установите интерфейс переменных",
+        "SETQUEUEVARIABLES": "Задать очередь переменных",
+        "SETQUEUEENTRYVARIABLES": "Задать очередь запись переменных",
+        "CONTEXT": "Контексте",
+        "SAVE": "Сохранить",
+        "SETTINGS": "Настройки",
+        "INBOUNDROUTES": "Входящие маршруты",
+        "PHONENUMBER": "Номер телефона",
+        "ADD_INBOUNDROUTE": "Добавить маршрут входящих вызовов",
+        "EDIT_INBOUNDROUTE": "Редактировать маршрут входящих вызовов",
+        "DELETE_INBOUNDROUTE": "Удалить маршрут при обработке входящих вызовов",
+        "ACTIONS": "Действия",
+        "OUTBOUNDROUTES": "Маршруты исходящих вызовов",
+        "DESTINATIONPATTERN": "Схема назначения",
+        "ADD_OUTBOUNDROUTE": "Добавить маршрут исходящих вызовов",
+        "EDIT_OUTBOUNDROUTE": "Редактировать маршрут исходящих вызовов",
+        "DELETE_OUTBOUNDROUTE": "Удалить маршрут исходящих вызовов",
+        "CUTDIGITS": "Разрежьте цифр",
+        "RECORDING": "Запись",
+        "RECORDINGFORMAT": "Формат записи",
+        "INTERNALROUTES": "Внутренние маршруты",
+        "ADD_INTERNALROUTE": "Добавить внутренний маршрут",
+        "EDIT_INTERNALROUTE": "Редактирование внутренних маршрутов",
+        "DELETE_INTERNALROUTE": "Удалить внутреннего маршрута",
+        "CONTEXTS": "Контекстах",
+        "ADD_CONTEXT": "Добавить контексте",
+        "EDIT_CONTEXT": "Правка контекстное",
+        "DELETE_CONTEXT": "Удаление связи",
+        "VOICEMAILS": "Сообщения голосовой почты",
+        "ADD_VOICEMAIL": "Добавить голосовую почту",
+        "EDIT_VOICEMAIL": "Редактировать сообщения голосовой почты",
+        "DELETE_VOICEMAIL": "Удалить голосовую почту",
+        "FULLNAME": "Полное Имя",
+        "EMAIL": "Адрес электронной почты",
+        "MAILBOX": "Почтовый ящик",
+        "PASSWORD": "Пароль",
+        "CONFIRM_PASSWORD": "Подтвердите пароль",
+        "TIMEZONE": "Часовой пояс",
+        "ATTACH": "Прикрепите",
+        "ENVELOPE": "Конверт",
+        "DELETE": "Удалить",
+        "EMAILBODY": "Тело сообщения",
+        "EMAILSUBJECT": "Тема в сообщении электронной почты",
+        "MAXSECONDS": "Max секунд",
+        "MAXMESSAGES": "Max сообщений",
+        "MESSAGES": "Сообщения",
+        "SORT": "Порядок сортировки",
+        "ADD_MUSICONHOLD": "Добавление музыки на удержании",
+        "MUSICONHOLDS": "Разная музыка на удержании",
+        "EDIT_MUSICONHOLD": "Редактирование музыки на удержании",
+        "DELETE_MUSICONHOLD": "Удалить музыка на удержании",
+        "DIRECTORY": "Каталог",
+        "AUDIOFILES": "Звуковые файлы",
+        "RECORDINGS": "Записи",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Префикс",
+        "OPTIONS": "Варианты",
+        "AUTH": "Auth",
+        "ADD_CHANSPY": "Добавить ChanSpy",
+        "EDIT_CHANSPY": "Редактировать ChanSpy",
+        "DELETE_CHANSPY": "Удалить ChanSpy",
+        "AGENTS": "Операторы",
+        "TELEPHONES": "Телефоны",
+        "QUEUES": "Очереди",
+        "QUEUE_CALLS": "Вызовы в очереди",
+        "QUEUE_PARAMETERS": "Параметры очереди",
+        "ABANDONED_CALLS": "Отмененные вызовы",
+        "OUTBOUND_CALLS": "Исходящие вызовы",
+        "AGI": "AGI",
+        "DIAL": "Диск набора команд",
+        "INTERNALDIAL": "Внутреннего набора",
+        "EXTERNALDIAL": "Внешний диск набора команд",
+        "RINGGROUP": "Кольцо группы",
+        "PLAYBACK": "Воспроизведение",
+        "QUEUE": "Очереди",
+        "SET": "Установить",
+        "VOICEMAIL": "Голосовая почта",
+        "GOTO": "GoTo",
+        "HANGUP": "Отключение",
+        "CUSTOM": "Пользовательский",
+        "PROJECT": "Cally-Square проекта",
+        "TECHNOLOGY/RESOURCE": "Технологии и ресурсов",
+        "URL": "URL",
+        "EDIT_APP": "Изменить приложение",
+        "EDIT_INTERVAL": "Изменить интервал",
+        "DELETE_APP": "Удалить приложения",
+        "INTERVALS": "Интервалы времени",
+        "USER": "Пользователь",
+        "TRUNK": "Сл",
+        "PHONE": "Номер телефона",
+        "AUDIO_FILES": "Звуковые файлы",
+        "ANNOUNCE_OVERRIDES": "Объявить переопределяет",
+        "MACRO": "Макрос",
+        "GOSUB": "For to",
+        "RULE": "Правило",
+        "POSITION": "Положение",
+        "ANSWER": "Ответ",
+        "VALUE": "Значение",
+        "MAILBOX@CONTEXT": "Фотогалерея@контексте",
+        "EXTENSION": "Добавочный номер",
+        "PRIORITY": "Первоочередное внимание",
+        "HANGUP_CAUSE": "Отключение причиной",
+        "OUTBOUNDDIAL": "Набор исходящих вызовов",
+        "CALLER_ID": "Идентификатор вызывающего абонента",
+        "NO_MESSAGE_AVAILABLE": "Нет доступных сообщений",
+        "NO_SOUND_AVAILABLE": "Никаких звуков не доступно",
+        "VOICERECORDINGS": "Запись голоса",
+        "CHANSPIES": "Чан шпионы",
+        "VOICE": "Голосовой связи",
+        "REALTIME": "В режиме реального времени",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Контексте",
+        "NO_MOHSOUND_AVAILABLE": "Нет музыки на удержании имеющихся",
+        "FILE": "Файл",
+        "ADD_MOHSOUND": "Добавление музыки в режиме удержания звука",
+        "DOWNLOAD_MOHSOUND": "Загрузка музыки на удержании звук",
+        "DELETE_MOHSOUND": "Удалить музыка в режиме удержания звука",
+        "UNIQUEID": "Уникальный идентификатор",
+        "AGENT": "Оператор",
+        "TYPE": "Тип",
+        "RATING": "Рейтинг",
+        "AUDIO": "Аудио",
+        "DATE": "Дата",
+        "NEW_VOICEQUEUE": "Новые голосовые очереди",
+        "NEW_INBOUNDROUTE": "Новый маршрут входящих вызовов",
+        "NEW_OUTBOUNDROUTE": "Новый маршрут исходящих вызовов",
+        "NEW_INTERNALROUTE": "Новых внутренних маршрутов",
+        "NEW_CONTEXT": "Новом контексте",
+        "NEW_VOICEMAIL": "Новые сообщения голосовой почты",
+        "NEW_MUSICONHOLD": "Новая музыка на удержании",
+        "NEW_CHANSPY": "Новые ChanSpy",
+        "PENALTY": "Смертная казнь",
+        "ADD_TEAM_TO_VOICEQUEUE": "Добавить группу в очереди голосовой связи",
+        "ADD_AGENT_TO_VOICEQUEUE": "Добавить оператора в очереди голосовой связи",
+        "EDIT_DIAL": "Редактирование набора",
+        "EDIT_AGI": "Редактировать AGI",
+        "EDIT_INTERNALDIAL": "Редактировать внутреннего набора",
+        "EDIT_EXTERNALDIAL": "Редактировать внешний диск набора команд",
+        "EDIT_RINGGROUP": "Редактировать кольцо группы",
+        "EDIT_PLAYBACK": "Воспроизведения в режиме редактирования",
+        "EDIT_QUEUE": "Редактирования очереди",
+        "EDIT_SET": "Редактирование набора",
+        "EDIT_GOTO": "Редактировать GoTo",
+        "EDIT_HANGUP": "Редактировать отключение",
+        "EDIT_CUSTOM": "Редактировать пользовательский",
+        "DURATION": "Продолжительность",
+        "RECEIVED_AT": "Полученные на",
+        "YES": "Да",
+        "NO": "Нет",
+        "HANGUPCAUSE_1": "1 = номер нераспределенных",
+        "HANGUPCAUSE_16": "16 = Normail вызова",
+        "HANGUPCAUSE_17": "17 = пользователь занят",
+        "HANGUPCAUSE_18": "18 = пользователь не отвечает (Вашему телефону устройство не подключено)",
+        "HANGUPCAUSE_21": "На XXI век = Вызов отклонен",
+        "HANGUPCAUSE_22": "22 = Номер борозды изменился",
+        "HANGUPCAUSE_27": "27 = пункт назначения не по порядку",
+        "HANGUPCAUSE_38": "38 = сети",
+        "HANGUPCAUSE_41": "41 = Временный сбой",
+        "RANDOM": "Случайная",
+        "ALPHABETICAL": "В алфавитном порядке",
+        "NO_APPS_AVAILABLE": "Нет доступных приложений",
+        "DOWNLOAD_VOICERECORDING": "Загрузить запись голоса",
+        "DELETE_VOICERECORDING": "Удалить запись голоса",
+        "INTERNAL": "Внутренние",
+        "PHONE_STATE": "Состояние телефона",
+        "PHONE_STATUS": "Состояние телефона",
+        "REGISTERED": "Зарегистрированные",
+        "UNREGISTERED": "Незарегистрированный",
+        "LAGGED": "Отстает",
+        "REACHABLE": "Доступен",
+        "UNREACHABLE": "Недоступен",
+        "UNKNOWN": "Неизвестный",
+        "NOT_INUSE": "Не используется",
+        "INUSE": "В ИСПОЛЬЗОВАНИИ",
+        "BUSY": "Занят",
+        "INVALID": "Неверный",
+        "UNAVAILABLE": "Недоступен",
+        "RINGING": "При звонке",
+        "ONHOLD": "На удержании",
+        "RING": "Кольцо",
+        "UP": "Вверх",
+        "INFO": "Info",
+        "TRUNKS": "Соединительные линии внешней АТС",
+        "REGISTRY": "Реестр",
+        "NO_REGISTRY": "Раздел реестра не",
+        "LOGGED_IN": "Вход в систему",
+        "PAUSED": "Приостановлено",
+        "WAITING": "Ожидание",
+        "TALKING": "Разговор",
+        "DID": "Не",
+        "CALLER": "Вызывающий абонент",
+        "TOTAL": "Итого",
+        "ANSWERED": "Отвеченные",
+        "ABANDONED": "Отмененные",
+        "UNMANAGED": "Неуправляемые коммутаторы",
+        "AVG_HOLD_TIME": "Среднее время удержания",
+        "AVG_DURATION": "Продолжительность Av",
+        "AVG_BILLABLE": "Avg платными",
+        "SOURCE": "Источник",
+        "DESTINATION": "Пункт назначения",
+        "REJECTED": "Отклонено",
+        "FAILED": "Не удалось",
+        "CALLED": "Призвали к",
+        "CONNECTED": "Подключен к",
+        "NO_RATING": "Нет рейтинга",
+        "EDIT_VOICERECORDING": "Редактировать запись голоса",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - пользовательские приложения."
+        },
+        "APPLICATION_NAME": "Имя приложения",
+        "ARGUMENTS": "Аргументы",
+        "NO_AVAILABLE_INFO": "Нет доступной информации",
+        "ADD_AGENT_TO_QUEUE": "Добавить оператора в очереди",
+        "DEFAULT_PAUSE": "По умолчанию пауза",
+        "PAUSE": "Пауза",
+        "UNPAUSE": "Возобновить",
+        "REDIRECT_TO_NUMBER": "Перенаправить на номер",
+        "REDIRECT_TO_AGENT": "Перенаправить для оператора",
+        "AGENTADD_VOICEQUEUE": "Добавить оператора в очереди голосовой связи",
+        "APPLICATION": "Приложение",
+        "FILES": "Файлы",
+        "FORMAT": "Формат",
+        "MODE": "Режим работы",
+        "RECORD": "Запись",
+        "TEAMADD_VOICEQUEUE": "Добавить группу voicequeue",
+        "NEW_MOHSOUND": "Новая музыка на удержании звук",
+        "DOWNLOAD_MESSAGE": "Загрузить",
+        "DELETE_MESSAGE": "Удалить",
+        "QUEUE_PARAMS": "Параметры очереди",
+        "TOTAL_OFFERED": "Общий объем предлагаемых",
+        "READY": "Готов к работе",
+        "AGENTADD_QUEUE": "Добавить оператора в очереди голосовой связи",
+        "AGENTSADD_QUEUE": "Добавление операторов в очереди голосовой связи",
+        "ALL_TEAMS": "Все группы",
+        "SELECTED_TEAMS": "Выбранные группы",
+        "ALL_AGENTS": "Все Операторы",
+        "SELECTED_AGENTS": "Выбранные операторы",
+        "CLOSING": "Закрытие",
+        "TAGS": "Теги индексов",
+        "WAITING_FOR_AGENTS": "Ожидание для операторов",
+        "EDIT_OUTBOUNDDIAL": "Редактирование набора исходящих вызовов",
+        "VARIABLE": "Переменная",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Не удается воспроизвести gsm аудио файлов",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "Выход из системы",
+        "TRUNK_STATUS": "Состояния СЛ",
+        "WAITING_FOR_AGENT": "Ожидание для операторов",
+        "ACCOUNTNAME": "Имя учетной записи"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/sv.json b/public/app/main/apps/voice/i18n/sv.json
new file mode 100644 (file)
index 0000000..30e3719
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Namn",
+        "VOICEQUEUES": "Voice köer",
+        "SEARCH_FOR_ANYONE": "Sökning för någon",
+        "BACK": "Tillbaka",
+        "SELECTED": "Vald",
+        "SELECT_ALL": "Markera alla",
+        "SELECT_NONE": "Välj ingen",
+        "DELETE_VOICEDISPOSITION": "Ta bort röstmeddelanden disposition",
+        "EDIT_VOICEDISPOSITION": "Redigera röst disposition",
+        "EDIT_VOICEQUEUE": "Redigera röst kö",
+        "DELETE_VOICEQUEUE": "Ta bort röstmeddelanden kö",
+        "MOHSOUNDS": "Moh-ljud",
+        "STRATEGY": "Strategi",
+        "DESCRIPTION": "Beskrivning",
+        "ADD_VOICEQUEUE": "Lägg till röst kö",
+        "CREATED_AT": "Skapad",
+        "ERRORS": {
+            "NAME_REQUIRED": "Namnet är obligatoriskt",
+            "TIMEOUT_REQUIRED": "Väntetiden är obligatoriskt",
+            "PHONENUMBER_REQUIRED": "Telefonnummer är obligatoriskt",
+            "CONTEXT_REQUIRED": "Ramen är obligatoriskt",
+            "DESTINATIONPATTERN_REQUIRED": "Destination mönster krävs",
+            "FULLNAME_REQUIRED": "Det fullständiga namnet är obligatoriskt",
+            "EMAIL_REQUIRED": "E-post är obligatoriskt",
+            "EMAIL_MUST_VALID": "E måste vara skriven på ett giltigt format",
+            "MAILBOX_REQUIRED": "Det är brevlådan som krävs",
+            "PASSWORD_REQUIRED": "Lösenord krävs",
+            "CONFIRM_NOT_MATCH": "Lösenorden stämmer inte överens",
+            "TIMEZONE_REQUIRED": "Tidzonen är obligatoriskt",
+            "PREFIX_REQUIRED": "Prefixet är obligatoriskt",
+            "OPTIONS_REQUIRED": "Alternativen är obligatoriskt",
+            "AFTERCALLWORKDURATION_REQUIRED": "Det Efterarbete varaktighet krävs",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Tekniken/resursen krävs",
+            "PHONE_REQUIRED": "Telefonen är obligatoriskt",
+            "VALUE_REQUIRED": "Värdet är obligatoriskt",
+            "EXTENSION_REQUIRED": "Förlängning krävs",
+            "PRIORITY_REQUIRED": "Den prioritet som krävs",
+            "NAME_MUST_VALID_PATTERN": "Namnet måste skrivas i ett giltigt format",
+            "APPLICATION_REQUIRED": "Ansökan krävs",
+            "APPLICATION_NAME_REQUIRED": "Ansökan Namn är obligatoriskt"
+        },
+        "GENERAL": "Allmänt",
+        "TIMEOUT": "Tidsgräns",
+        "MAXLENGTH": "Maximal längd",
+        "RETRY": "Försök igen",
+        "WRAPUPTIME": "Avslutningstiden",
+        "WEIGHT": "Vikt",
+        "JOINWHENEMPTY": "Delta när tom",
+        "LEAVEWHENEMPTY": "Lämna när tom",
+        "HELP": {
+            "TIMEOUT": "Anger antalet sekunder ringer en medlems-enhet.",
+            "MAXLENGTH": "Anger det maximala antalet kontakter får vänta i en kö. Ett värde på noll innebär ett unlimited nummer av kontakter är tillåtna i kön.",
+            "RETRY": "Anger antalet sekunder att vänta innan nästa medlem i kön om timeout-värdet är förbrukad vid försök att ringen är medlem i kön.",
+            "WRAPUPTIME": "Antalet sekunder för att hålla en annan tillgänglig i kön efter ett samtal.",
+            "WEIGHT": "Definierar vikten av en kö. En kö med en högre vikt definieras får första prioritet när medlemmar associerade med flera köer.",
+            "JOINWHENEMPTY": "Styr om en caller läggs till i kön när inga medlemmar finns.",
+            "LEAVEWHENEMPTY": "Används för att styra om samtalen kan sparkas ut i kön när medlemmar inte längre tillgänglig att ta emot samtal.",
+            "ANNOUNCEFREQUENCY": "Definierar hur ofta vi skall tillkännage caller'sens position och/eller beräknad väntetid i kön. Ställ in det här värdet till noll för att inaktivera.",
+            "MINANNOUNCEFREQUENCY": "Anger den minsta tid som måste gå innan vi tillkännager callers placeringen i kön igen. Detta används när uppringarens position kan ändras ofta, att förhindra uppringare hörde flera uppdateringar inom en kort tidsperiod.",
+            "PERIODICANNOUNCEFREQUENCY": "Anger hur ofta vi bör göra regelbundna meddelanden till den som ringer.",
+            "ANNOUNCEPOSITIONLIMIT": "Om du har definierat tillkännager-position som antingen begränsar eller mer.",
+            "AFTERCALLWORKDURATION": "Varaktigheten av paus triggas av Efterarbete alternativ",
+            "MEMBERDELAY": "Används om du vill ha en fördröjning innan de ringer och kön skall vara anslutna till varandra.",
+            "MUSICONHOLD": "Ställer in musik klass användas av en viss kö.",
+            "ANNOUNCETOAGENT": "Används för att spela in ett meddelande till agenten som besvarat samtalet, typiskt att låta honom veta vad kö ringer från.",
+            "RANDOMPERIODICANNOUNCE": "Om ja, kommer att spela den definierade periodiska meddelanden i en slumpmässig ordning.",
+            "ANNOUNCEHOLDTIME": "Anger om den beräknade väntetiden ska spelas upp tillsammans med periodiska meddelanden.",
+            "ANNOUNCECALLERPOSITION": "Anger om den som ringer i kö ska meddelas till henne. Om nej, aldrig kommer att tillkännages. Om ja, uppringarens läge kommer alltid finnas tillkännaget. Om värdet är inställt på gränsen hör den som ringer henne i kön om det är gränsen som definierats av tillkännager-läge. Om värdet är inställt på mer, hör den som ringer hennes ståndpunkt om det är utöver det antal som definierats av tillkännager-läge.",
+            "REPORTHOLDTIMEAGENT": "Möjliggör rapportering av uppringarens väntetid i kön före bryggning.",
+            "PERIODICANNOUNCE": "En uppsättning av periodiska meddelanden ska spelas upp, spelade i den ordning de anges.",
+            "HOLDTIMEANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"parkeringstid\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "YOUARENEXTANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"Du är nu först i raden\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "THEREAREANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"finns\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "WAITINGCALLSANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"Väntande samtal\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"aktuella beräknade väntetid är\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "MINUTESANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"min\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "MINUTEANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"min\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "SECONDSANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"s\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "THANKYOUANNOUNCE": "Om det inte definieras kommer att spela standardvärdet (\"Tack för ditt tålamod\"). Om du ställer in ett tomt värde, prompten kommer inte spelas alls.",
+            "AFTERCALLWORK": "Om aktiv, agenten ska ställas in på paus efter ett avslutat samtal på kö",
+            "AUTOPAUSE": "Aktiverar/inaktiverar automatisk pausning av ledamöter som inte besvarar ett samtal. Om aktiv, gör detta att göra uppehåll i alla köer han är medlem i.",
+            "RINGINUSE": "Används för att undvika att skicka samtal till medlemmar vars status är i användning.",
+            "TIMEOUTRESTART": "Om inställt på Ja, återställ timeout för en agent att besvara om antingen en upptagen eller överbelastning status erhålls från kanalen.",
+            "MONITORFORMAT": "Anger filens format att använda vid inspelning. Om monitor-formatet är inaktiv, samtal registreras inte.",
+            "CONTEXT": "Gör en caller att lämna kön genom att trycka på en enda DTMF-siffror. Om en angiven och den som ringer in ett nummer, att siffran kommer att matchas i samband angivna och uppringningsplans utförandet fortsätter det.",
+            "SETINTERFACEVARIABLES": "Om ja, strax före den som ringer att överbryggas med en kö medlem vissa variabler kommer att ställa (se wiki)",
+            "SETQUEUEVARIABLES": "Om ja, strax före den som ringer att överbryggas med en kö och strax före den som ringer att lämna kön vissa variabler kommer att ställa (se wiki)",
+            "SETQUEUEENTRYVARIABLES": "Om ja, strax före den som ringer att överbryggas med en kö medlem vissa variabler kommer att ställa (se wiki)",
+            "RECORDING": "Aktivera samtalsinspelning",
+            "VOICEMAIL_CONTEXT": "Den relativa förlängning."
+        },
+        "MUSICONHOLD": "Musik i vänteläge",
+        "ANNOUNCETOAGENT": "Meddela till agent",
+        "ANNOUNCEMENTS": "Meddelanden",
+        "ADVANCED": "Avancerade",
+        "ANNOUNCEFREQUENCY": "Meddela frekvens",
+        "MINANNOUNCEFREQUENCY": "Minsta tillkännager frekvens",
+        "PERIODICANNOUNCEFREQUENCY": "Periodiska tillkännager frekvens",
+        "RANDOMPERIODICANNOUNCE": "Slumpmässiga periodiska tillkännage",
+        "ANNOUNCEHOLDTIME": "Meddela väntetid",
+        "ANNOUNCECALLERPOSITION": "Tillkännage Caller-läge",
+        "ANNOUNCEPOSITIONLIMIT": "Meddela läge",
+        "REPORTHOLDTIMEAGENT": "Rapporten Agent parkeringstid",
+        "PERIODICANNOUNCE": "Periodiska tillkännage",
+        "HOLDTIMEANNOUNCE": "Håll tid tillkännage",
+        "YOUARENEXTANNOUNCE": "\"Du är nästa\" tillkännage",
+        "THEREAREANNOUNCE": "\"Det finns\" tillkännage",
+        "WAITINGCALLSANNOUNCE": "Väntande samtal meddela",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Beräknad parkeringstid tillkännage",
+        "MINUTESANNOUNCE": "Minuter tillkännage",
+        "MINUTEANNOUNCE": "Minut tillkännage",
+        "SECONDSANNOUNCE": "Sekunder tillkännage",
+        "THANKYOUANNOUNCE": "\"Tack\" tillkännage",
+        "AUTOPAUSE": "Auto Pause",
+        "AFTERCALLWORK": "Arbete efter samtal",
+        "AFTERCALLWORKDURATION": "Efterarbete varaktighet",
+        "RINGINUSE": "Ring i användning",
+        "MEMBERDELAY": "Medlemsstaterna fördröjning",
+        "TIMEOUTRESTART": "Timeout omstart",
+        "MONITORFORMAT": "Inspelningsformat",
+        "SETINTERFACEVARIABLES": "Ställa in variabler",
+        "SETQUEUEVARIABLES": "Ange kön variabler",
+        "SETQUEUEENTRYVARIABLES": "Ange kön post variabler",
+        "CONTEXT": "Bakgrund",
+        "SAVE": "Spara",
+        "SETTINGS": "Inställningar",
+        "INBOUNDROUTES": "Inkommande linjer",
+        "PHONENUMBER": "Telefonnummer",
+        "ADD_INBOUNDROUTE": "Lägg Inbound Route",
+        "EDIT_INBOUNDROUTE": "Redigera inkommande rutt",
+        "DELETE_INBOUNDROUTE": "Ta bort inkommande rutt",
+        "ACTIONS": "Åtgärder",
+        "OUTBOUNDROUTES": "Utgående linjer",
+        "DESTINATIONPATTERN": "Destination mönster",
+        "ADD_OUTBOUNDROUTE": "Lägg till utgående rutt",
+        "EDIT_OUTBOUNDROUTE": "Redigera utgående rutt",
+        "DELETE_OUTBOUNDROUTE": "Ta bort utgående rutt",
+        "CUTDIGITS": "Skär siffror",
+        "RECORDING": "Inspelning",
+        "RECORDINGFORMAT": "Inspelningsformat",
+        "INTERNALROUTES": "Inrikesrutter",
+        "ADD_INTERNALROUTE": "Lägg till interna rutt",
+        "EDIT_INTERNALROUTE": "Redigera interna rutt",
+        "DELETE_INTERNALROUTE": "Ta bort interna rutt",
+        "CONTEXTS": "Sammanhang",
+        "ADD_CONTEXT": "Lägg ramen",
+        "EDIT_CONTEXT": "Ändra bakgrund",
+        "DELETE_CONTEXT": "Ta bort ramen",
+        "VOICEMAILS": "Röstmeddelanden",
+        "ADD_VOICEMAIL": "Lägg till röstbrevlådan",
+        "EDIT_VOICEMAIL": "Redigera röstmeddelanden",
+        "DELETE_VOICEMAIL": "Radera röstmeddelande",
+        "FULLNAME": "Fullständigt namn",
+        "EMAIL": "Email",
+        "MAILBOX": "Brevlåda",
+        "PASSWORD": "Lösenord",
+        "CONFIRM_PASSWORD": "Bekräfta lösenord",
+        "TIMEZONE": "Timezone",
+        "ATTACH": "Fäst",
+        "ENVELOPE": "Kuvert",
+        "DELETE": "Ta bort",
+        "EMAILBODY": "Email-kroppen",
+        "EMAILSUBJECT": "Ämnet för e-postmeddelandet",
+        "MAXSECONDS": "Max antal sekunder",
+        "MAXMESSAGES": "Max meddelanden",
+        "MESSAGES": "Meddelanden",
+        "SORT": "Sortera",
+        "ADD_MUSICONHOLD": "Lägga till musik i vänteläge",
+        "MUSICONHOLDS": "Musics på håll",
+        "EDIT_MUSICONHOLD": "Redigera musik i vänteläge",
+        "DELETE_MUSICONHOLD": "Ta bort musik i vänteläge",
+        "DIRECTORY": "Katalog",
+        "AUDIOFILES": "Ljudfiler",
+        "RECORDINGS": "Inspelningar",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Prefix",
+        "OPTIONS": "Alternativ",
+        "AUTH": "Attestattribut",
+        "ADD_CHANSPY": "Lägg ChanSpy",
+        "EDIT_CHANSPY": "Redigera ChanSpy",
+        "DELETE_CHANSPY": "Ta bort ChanSpy",
+        "AGENTS": "Agenter",
+        "TELEPHONES": "Telefoner",
+        "QUEUES": "Köer",
+        "QUEUE_CALLS": "Kön samtal",
+        "QUEUE_PARAMETERS": "Kön parametrar",
+        "ABANDONED_CALLS": "Övergivna samtal",
+        "OUTBOUND_CALLS": "Utgående samtal",
+        "AGI": "AGI",
+        "DIAL": "Ringa",
+        "INTERNALDIAL": "Inre ring",
+        "EXTERNALDIAL": "Yttre ring",
+        "RINGGROUP": "Ring grupp",
+        "PLAYBACK": "Uppspelning",
+        "QUEUE": "Kö",
+        "SET": "Ställ",
+        "VOICEMAIL": "Röstmeddelande",
+        "GOTO": "GoTo",
+        "HANGUP": "Lägg på",
+        "CUSTOM": "Anpassad",
+        "PROJECT": "Cally-Square projekt",
+        "TECHNOLOGY/RESOURCE": "Teknik/Resurs",
+        "URL": "URL",
+        "EDIT_APP": "Redigera ansökan",
+        "EDIT_INTERVAL": "Redigera intervall",
+        "DELETE_APP": "Ta bort programmet",
+        "INTERVALS": "Intervall",
+        "USER": "Användare",
+        "TRUNK": "Segmentgrupp",
+        "PHONE": "Telefon",
+        "AUDIO_FILES": "Ljudfiler",
+        "ANNOUNCE_OVERRIDES": "Meddela åsidosätter",
+        "MACRO": "Makro",
+        "GOSUB": "GoSub",
+        "RULE": "Regel",
+        "POSITION": "Läge",
+        "ANSWER": "Svar",
+        "VALUE": "Värde",
+        "MAILBOX@CONTEXT": "Brevlåda@sammanhang",
+        "EXTENSION": "Förlängning",
+        "PRIORITY": "Prioritet",
+        "HANGUP_CAUSE": "Lägg orsak",
+        "OUTBOUNDDIAL": "Utgående uppringning",
+        "CALLER_ID": "Nummerpresentation",
+        "NO_MESSAGE_AVAILABLE": "Inga meddelanden finns tillgängliga",
+        "NO_SOUND_AVAILABLE": "Inga ljud tillgängligt",
+        "VOICERECORDINGS": "Röstinspelningar",
+        "CHANSPIES": "Chan spioner",
+        "VOICE": "Röst",
+        "REALTIME": "Realtime",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Bakgrund",
+        "NO_MOHSOUND_AVAILABLE": "Ingen musik i vänteläge tillgängliga",
+        "FILE": "Fil",
+        "ADD_MOHSOUND": "Lägga till musik i vänteläge ljud",
+        "DOWNLOAD_MOHSOUND": "Download musik håller på ljud",
+        "DELETE_MOHSOUND": "Ta bort musik håller på ljud",
+        "UNIQUEID": "Unikt ID",
+        "AGENT": "Agent",
+        "TYPE": "Typ",
+        "RATING": "Betyg",
+        "AUDIO": "Ljud",
+        "DATE": "Datum",
+        "NEW_VOICEQUEUE": "Ny röst kö",
+        "NEW_INBOUNDROUTE": "Nya inkommande rutt",
+        "NEW_OUTBOUNDROUTE": "Ny utgående rutt",
+        "NEW_INTERNALROUTE": "Nya interna rutt",
+        "NEW_CONTEXT": "Ny ram",
+        "NEW_VOICEMAIL": "Nytt röstmeddelande",
+        "NEW_MUSICONHOLD": "Ny musik i vänteläge",
+        "NEW_CHANSPY": "Nya ChanSpy",
+        "PENALTY": "Dödsstraff",
+        "ADD_TEAM_TO_VOICEQUEUE": "Lägg till Team till röst kö",
+        "ADD_AGENT_TO_VOICEQUEUE": "Lägg medlet på röst kö",
+        "EDIT_DIAL": "Redigera kortnummer",
+        "EDIT_AGI": "Redigera AGI",
+        "EDIT_INTERNALDIAL": "Redigera inre ring",
+        "EDIT_EXTERNALDIAL": "Redigera externa Dial",
+        "EDIT_RINGGROUP": "Redigera Ring grupp",
+        "EDIT_PLAYBACK": "Redigera uppspelning",
+        "EDIT_QUEUE": "Redigera kö",
+        "EDIT_SET": "Redigera in",
+        "EDIT_GOTO": "Redigera GoTo",
+        "EDIT_HANGUP": "Redigera hindern",
+        "EDIT_CUSTOM": "Redigera anpassad",
+        "DURATION": "Varaktighet",
+        "RECEIVED_AT": "Fick vid",
+        "YES": "Ja",
+        "NO": "Nr",
+        "HANGUPCAUSE_1": "1 = Ej allokerat nummer",
+        "HANGUPCAUSE_16": "16 = Normail samtal rensa",
+        "HANGUPCAUSE_17": "17 = Användaren upptagen",
+        "HANGUPCAUSE_18": "18 = Inget svar från användare (telehone enheten är inte ansluten)",
+        "HANGUPCAUSE_21": "21 = Samtal avvisade",
+        "HANGUPCAUSE_22": "22 = Antal ändrat",
+        "HANGUPCAUSE_27": "27 = Mål ur funktion",
+        "HANGUPCAUSE_38": "38 = Nätverk ur funktion",
+        "HANGUPCAUSE_41": "41 = Tillfälligt fel",
+        "RANDOM": "Slumpmässig",
+        "ALPHABETICAL": "Alfabetisk",
+        "NO_APPS_AVAILABLE": "Inga program är tillgängliga",
+        "DOWNLOAD_VOICERECORDING": "Download röstinspelning",
+        "DELETE_VOICERECORDING": "Ta bort röstinspelning",
+        "INTERNAL": "Intern",
+        "PHONE_STATE": "Telefon stat",
+        "PHONE_STATUS": "Telefonstatus",
+        "REGISTERED": "Registrerad",
+        "UNREGISTERED": "Oregistrerade",
+        "LAGGED": "Halkade",
+        "REACHABLE": "Nå",
+        "UNREACHABLE": "Otillgänglig",
+        "UNKNOWN": "Okänd",
+        "NOT_INUSE": "Inte använd",
+        "INUSE": "I ANVÄNDNING",
+        "BUSY": "Upptagen",
+        "INVALID": "Ogiltig",
+        "UNAVAILABLE": "Otillgänglig",
+        "RINGING": "Ringa",
+        "ONHOLD": "På håll",
+        "RING": "Ring",
+        "UP": "Upp",
+        "INFO": "Info",
+        "TRUNKS": "Segment",
+        "REGISTRY": "Registrering",
+        "NO_REGISTRY": "Ingen registrering",
+        "LOGGED_IN": "Inloggad",
+        "PAUSED": "Pausad",
+        "WAITING": "Väntar",
+        "TALKING": "Prata",
+        "DID": "Gjorde",
+        "CALLER": "Uppringare",
+        "TOTAL": "Totalt",
+        "ANSWERED": "Svarade",
+        "ABANDONED": "Övergivna",
+        "UNMANAGED": "Unmanaged",
+        "AVG_HOLD_TIME": "Genomsn. väntetid",
+        "AVG_DURATION": "Av-varaktighet",
+        "AVG_BILLABLE": "Avg Billable",
+        "SOURCE": "Källa",
+        "DESTINATION": "Destination",
+        "REJECTED": "Avvisad",
+        "FAILED": "Misslyckades",
+        "CALLED": "Kallas",
+        "CONNECTED": "Ansluten",
+        "NO_RATING": "Inga betyg",
+        "EDIT_VOICERECORDING": "Redigera röstinspelning",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Anpassad applikation."
+        },
+        "APPLICATION_NAME": "Programnamn",
+        "ARGUMENTS": "Argument",
+        "NO_AVAILABLE_INFO": "Inga tillgängliga info",
+        "ADD_AGENT_TO_QUEUE": "Lägg medlet till kö",
+        "DEFAULT_PAUSE": "Standard paus",
+        "PAUSE": "Pausa",
+        "UNPAUSE": "Unpause",
+        "REDIRECT_TO_NUMBER": "Omdirigera till nummer",
+        "REDIRECT_TO_AGENT": "Omdirigera till agent",
+        "AGENTADD_VOICEQUEUE": "Lägg medlet på röst kö",
+        "APPLICATION": "Tillämpning",
+        "FILES": "Filer",
+        "FORMAT": "Format",
+        "MODE": "Läge",
+        "RECORD": "Spela in",
+        "TEAMADD_VOICEQUEUE": "Lägg till team till voicequeue",
+        "NEW_MOHSOUND": "Ny musik håller på ljud",
+        "DOWNLOAD_MESSAGE": "Download",
+        "DELETE_MESSAGE": "Ta bort",
+        "QUEUE_PARAMS": "Kön parametrar",
+        "TOTAL_OFFERED": "Totalt erbjuds",
+        "READY": "Klar",
+        "AGENTADD_QUEUE": "Lägg medlet på röst köer",
+        "AGENTSADD_QUEUE": "Lägg till agenter till voice kö",
+        "ALL_TEAMS": "Alla grupper",
+        "SELECTED_TEAMS": "Valda grupper",
+        "ALL_AGENTS": "Alla agenter",
+        "SELECTED_AGENTS": "Valda agenter",
+        "CLOSING": "Stängning",
+        "TAGS": "Etiketter",
+        "WAITING_FOR_AGENTS": "Väntar för agenter",
+        "EDIT_OUTBOUNDDIAL": "Redigera utgående uppringning",
+        "VARIABLE": "Variabel",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Det går inte att spela upp gsm-ljudfiler",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "Utloggning",
+        "TRUNK_STATUS": "Däcktrycksstatus",
+        "WAITING_FOR_AGENT": "Väntar för agenter",
+        "ACCOUNTNAME": "Kontonamn"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/tr.json b/public/app/main/apps/voice/i18n/tr.json
new file mode 100644 (file)
index 0000000..c28af1b
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "Adı",
+        "VOICEQUEUES": "Ses Kuyrukları",
+        "SEARCH_FOR_ANYONE": "Arama herkesin",
+        "BACK": "Geri",
+        "SELECTED": "Seçilen",
+        "SELECT_ALL": "Tümünü Seç",
+        "SELECT_NONE": "Hiçbiri",
+        "DELETE_VOICEDISPOSITION": "Delete Voice Nizam",
+        "EDIT_VOICEDISPOSITION": "Edit Ses Nizam",
+        "EDIT_VOICEQUEUE": "Edit Ses Sırası",
+        "DELETE_VOICEQUEUE": "Delete Voice Sırası",
+        "MOHSOUNDS": "Moh Sesler",
+        "STRATEGY": "Strateji",
+        "DESCRIPTION": "Açıklama",
+        "ADD_VOICEQUEUE": "Add Sesli Sırası",
+        "CREATED_AT": "Oluşturulmuş",
+        "ERRORS": {
+            "NAME_REQUIRED": "Adı gerekiyor",
+            "TIMEOUT_REQUIRED": "Zaman Aşımı gerekiyor.",
+            "PHONENUMBER_REQUIRED": "Telefon Numarası gerekli",
+            "CONTEXT_REQUIRED": "Bu bağlamda gerekli",
+            "DESTINATIONPATTERN_REQUIRED": "Hedef Modeli gerekiyor.",
+            "FULLNAME_REQUIRED": "Tam Adı gerekiyor.",
+            "EMAIL_REQUIRED": "E-posta gerekli",
+            "EMAIL_MUST_VALID": "E-posta mutlaka yazılı geçerli bir format",
+            "MAILBOX_REQUIRED": "Posta gerekli",
+            "PASSWORD_REQUIRED": "Parola gerekli",
+            "CONFIRM_NOT_MATCH": "Parolalar aynı değil",
+            "TIMEZONE_REQUIRED": "Bu Saat Dilimi gerekiyor.",
+            "PREFIX_REQUIRED": "Ön Ek gerekiyor.",
+            "OPTIONS_REQUIRED": "Seçenekler gerekli",
+            "AFTERCALLWORKDURATION_REQUIRED": "Sonra iş arama süresi gereklidir.",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "Teknoloji/Kaynak gerekiyor.",
+            "PHONE_REQUIRED": "Telefon gerekiyor.",
+            "VALUE_REQUIRED": "Bu Değer gereklidir",
+            "EXTENSION_REQUIRED": "Uzatma gerekli",
+            "PRIORITY_REQUIRED": "Öncelikli olarak gerekli",
+            "NAME_MUST_VALID_PATTERN": "Ad yazılmış olması gerekir. geçerli bir format",
+            "APPLICATION_REQUIRED": "Uygulama gerekiyor.",
+            "APPLICATION_NAME_REQUIRED": "Uygulama Adı gerekiyor."
+        },
+        "GENERAL": "Genel",
+        "TIMEOUT": "Zaman Aşımı",
+        "MAXLENGTH": "Maksimum Uzunluk",
+        "RETRY": "Yeniden dene",
+        "WRAPUPTIME": "Toparlama Süresi",
+        "WEIGHT": "Ağırlık",
+        "JOINWHENEMPTY": "Üye boş zaman",
+        "LEAVEWHENEMPTY": "Bırakın boş zaman",
+        "HELP": {
+            "TIMEOUT": "Saniye cinsinden belirtir. halka bir üyesi.",
+            "MAXLENGTH": "Belirler, maksimum arayanlar izin verilen bekleyen bir kuyruk. Değeri sıfır bir sınırsız sayıda arayanlar izin.",
+            "RETRY": "Sayısını belirler. saniye bekleyin denemeden önce ve sonraki üye sırada, zaman aşımı değeri tükenen erişmeye çalışırken halka bir üyesi.",
+            "WRAPUPTIME": "Saniye sayısını bir üye değil, bir kuyruk tamamladıktan sonra arayın.",
+            "WEIGHT": "Tanımlar, ağırlık, bir kuyruk. Bir kuyruk daha yüksek bir ağırlık tanımlanmış, ilk öncelik, üyeleri ilgili birden fazla kuyrukları.",
+            "JOINWHENEMPTY": "Kontroller bir arayan eklendi. kuyruk hiç üyeleri bulunmaktadır.",
+            "LEAVEWHENEMPTY": "Kumanda etmek için kullanılan arayanların, uçurdu, kuyruk, üyeleri artık göz arama.",
+            "ANNOUNCEFREQUENCY": "Tanımlar ne sıklıkta olmalı, ilan arayan ve/veya tahmini bekleme süresi. Bu değeri sıfır olarak devre dışı.",
+            "MINANNOUNCEFREQUENCY": "Belirten minimum süre geçmelidir, arayan'ın kuyruğu deneyin. Bu, arayan'ın sık sık değişebilir, arayan işitme birden fazla güncellemeler kısa bir süre.",
+            "PERIODICANNOUNCEFREQUENCY": "Ne sıklıkta biz, periyodik duyurular arayan.",
+            "ANNOUNCEPOSITIONLIMIT": "Eğer daha önce tanımlanmış duyurmak-konum olarak da sınırı veya daha fazla.",
+            "AFTERCALLWORKDURATION": "Duraklatma devrede tarafından Çağrı Çalışma seçeneği",
+            "MEMBERDELAY": "Eğer isterseniz orada bir gecikme önceden arayan ve kuyruk üye bağlı.",
+            "MUSICONHOLD": "Setleri, müzik sınıfı tarafından belirli bir kuyruk.",
+            "ANNOUNCETOAGENT": "Oynatmak için kullanılan bir duyuru, temsilciye yanıtlanan çağrı, genellikle kendisini ne kuyruk arayan geliyor.",
+            "RANDOMPERIODICANNOUNCE": "Eğer evet, play, tanımlanan periyodik duyurular rastgele.",
+            "ANNOUNCEHOLDTIME": "Belirler tahmini süresi çalınır ve periyodik duyurular.",
+            "ANNOUNCECALLERPOSITION": "Belirler arayan'ın kuyruğu olmalıdır için duyurdu. Eğer hayır, asla. Eğer evet, arayan'ın konumu her zaman. Eğer değer sınırı, arayan kişinin sesini, kuyruk sadece içinde tanımlanır ve ilan konum. Eğer değeri daha fazla, arayan kişinin sesini konumu. numarası tanımlanan duyurmak-konum-limit.",
+            "REPORTHOLDTIMEAGENT": "Raporlama, arayanın bekletme süresi için kuyruk üye önce köprü.",
+            "PERIODICANNOUNCE": "Bir periyodik duyurular, oynadığı sırada tanımlanmıştır.",
+            "HOLDTIMEANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"Tutma süresi\"). Eğer bir boş değer, sor, çalınan.",
+            "YOUARENEXTANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"şimdi ilk satır\"). Eğer bir boş değer, sor, çalınan.",
+            "THEREAREANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"Var\"). Eğer bir boş değer, sor, çalınan.",
+            "WAITINGCALLSANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"aramalar bekleme\"). Eğer bir boş değer, sor, çalınan.",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"geçerli tahmini süresi\"). Eğer bir boş değer, sor, çalınan.",
+            "MINUTESANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"dakika\"). Eğer bir boş değer, sor, çalınan.",
+            "MINUTEANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"dakika\"). Eğer bir boş değer, sor, çalınan.",
+            "SECONDSANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"sn\"). Eğer bir boş değer, sor, çalınan.",
+            "THANKYOUANNOUNCE": "Eğer tanımlı değilse, boşluk varsayılan değer (\"sabrınız için teşekkür ederiz.\"). Eğer bir boş değer, sor, çalınan.",
+            "AFTERCALLWORK": "Eğer aktif, ajan olarak ayarlayın sonra Pause tamamlanmış bir arama sırası",
+            "AUTOPAUSE": "Etkinleştirir/devre dışı bırakır. otomatik çekimde üyeleri başarısız, bir aramayı yanıtlamak için. Aktif ise bu üye olarak duraklatıldı tüm kuyrukları üyesi.",
+            "RINGINUSE": "Engellemek için gönderme çağrıları üyelerin durumu.",
+            "TIMEOUTRESTART": "Eğer yes, sıfırlar ve zaman aşımı bir temsilcinin, cevap ya da meşgul veya tıkanıklık durumu alınan, kanal.",
+            "MONITORFORMAT": "Belirler, dosya formatı kullanmak için kayıt. Eğer monitör-format, akti̇f deği̇l, aramalar kaydedilmez.",
+            "CONTEXT": "Bir arayan çıkmak için kuyruk tek bir DTMF rakam. Eğer bir içerik olarak belirtilen ve arayan bir numarası, basamak girişimi olarak uygun içerik ve dialplan yürütme devam.",
+            "SETINTERFACEVARIABLES": "Eğer evet, hemen öncesinde arayan, köprülenmiş bir kuyruk üye bazı değişkenler,(bakınız wiki).",
+            "SETQUEUEVARIABLES": "Eğer evet, hemen öncesinde arayan, köprülenmiş bir kuyruk üye ve hemen öncesinde arayan ayrılırken kuyruk bazı değişkenler,(bakınız wiki).",
+            "SETQUEUEENTRYVARIABLES": "Eğer evet, hemen öncesinde arayan, köprülenmiş bir kuyruk üye bazı değişkenler,(bakınız wiki).",
+            "RECORDING": "Etkin çağrı kaydı",
+            "VOICEMAIL_CONTEXT": "Bu bağlamda, bağıl uzantısı."
+        },
+        "MUSICONHOLD": "Bekletme Müziği",
+        "ANNOUNCETOAGENT": "Duyurmak Agent",
+        "ANNOUNCEMENTS": "Duyurular",
+        "ADVANCED": "Gelişmiş",
+        "ANNOUNCEFREQUENCY": "Frekans ilan",
+        "MINANNOUNCEFREQUENCY": "Ilan Minimum Frekans",
+        "PERIODICANNOUNCEFREQUENCY": "Periyodik Haber Frekans",
+        "RANDOMPERIODICANNOUNCE": "Rastgele Periyodik Açıklayacak",
+        "ANNOUNCEHOLDTIME": "Ilan Süresi",
+        "ANNOUNCECALLERPOSITION": "Arayan ilan Konumu",
+        "ANNOUNCEPOSITIONLIMIT": "Haber Sınır Konumu",
+        "REPORTHOLDTIMEAGENT": "Rapor Temsilci Bekletme Süresi",
+        "PERIODICANNOUNCE": "Periyodik Açıklayacak",
+        "HOLDTIMEANNOUNCE": "Bekletme Süresi Açıklayacak",
+        "YOUARENEXTANNOUNCE": "'Bir sonraki' Açıklayacak",
+        "THEREAREANNOUNCE": "'Vardır ilan' ile",
+        "WAITINGCALLSANNOUNCE": "Arama Bekliyor Haber",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "Tahmini Süresi Açıklayacak",
+        "MINUTESANNOUNCE": "Dakika Haber",
+        "MINUTEANNOUNCE": "Dakika Haber",
+        "SECONDSANNOUNCE": "Saniye Açıklayacak",
+        "THANKYOUANNOUNCE": "'Teşekkür' Açıklayacak",
+        "AUTOPAUSE": "Otomatik Duraklatma",
+        "AFTERCALLWORK": "Arama yaptıktan sonra Çalışma",
+        "AFTERCALLWORKDURATION": "Sonra iş Arama Süresi",
+        "RINGINUSE": "Halka.",
+        "MEMBERDELAY": "Üye Gecikmesi",
+        "TIMEOUTRESTART": "Zaman Aşımı Yeniden Başlatın",
+        "MONITORFORMAT": "Kayıt Formatı",
+        "SETINTERFACEVARIABLES": "Set Ara Değişkenler",
+        "SETQUEUEVARIABLES": "Set Kuyruk Değişkenler",
+        "SETQUEUEENTRYVARIABLES": "Set Kuyruğu Giriş Değişkenler",
+        "CONTEXT": "Içerik",
+        "SAVE": "Kaydet",
+        "SETTINGS": "Ayarlar",
+        "INBOUNDROUTES": "Gelen Rotalar",
+        "PHONENUMBER": "Telefon Numarası",
+        "ADD_INBOUNDROUTE": "Add Gelen Rota",
+        "EDIT_INBOUNDROUTE": "Edit Gelen Rota",
+        "DELETE_INBOUNDROUTE": "Delete Gelen Rota",
+        "ACTIONS": "Eylemler",
+        "OUTBOUNDROUTES": "Giden Yollar",
+        "DESTINATIONPATTERN": "Hedef Modeli",
+        "ADD_OUTBOUNDROUTE": "Add Giden Yol",
+        "EDIT_OUTBOUNDROUTE": "Edit Giden Yol",
+        "DELETE_OUTBOUNDROUTE": "Delete Giden Yol",
+        "CUTDIGITS": "Kesin rakam",
+        "RECORDING": "Kayıt",
+        "RECORDINGFORMAT": "Kayıt formatı",
+        "INTERNALROUTES": "Dahili Rotalar",
+        "ADD_INTERNALROUTE": "Add Iç Rota",
+        "EDIT_INTERNALROUTE": "Edit Iç Rota",
+        "DELETE_INTERNALROUTE": "Delete Iç Rota",
+        "CONTEXTS": "Bağlam",
+        "ADD_CONTEXT": "İçerik Ekle",
+        "EDIT_CONTEXT": "Edit içerik",
+        "DELETE_CONTEXT": "Sil İçerik",
+        "VOICEMAILS": "Isteyecek",
+        "ADD_VOICEMAIL": "Add Sesli Posta",
+        "EDIT_VOICEMAIL": "Edit Sesli Posta",
+        "DELETE_VOICEMAIL": "Delete Sesli Posta",
+        "FULLNAME": "Tam Adı",
+        "EMAIL": "E-Posta",
+        "MAILBOX": "Posta Kutusu",
+        "PASSWORD": "Parola",
+        "CONFIRM_PASSWORD": "Parolayı Onayla",
+        "TIMEZONE": "Saat Dilimi",
+        "ATTACH": "Bağlayın",
+        "ENVELOPE": "Zarf",
+        "DELETE": "Sil",
+        "EMAILBODY": "E-Posta Gövdesi",
+        "EMAILSUBJECT": "E-posta Konu",
+        "MAXSECONDS": "Max Saniye",
+        "MAXMESSAGES": "Max Mesajlar",
+        "MESSAGES": "Mesajlar",
+        "SORT": "Sıralama",
+        "ADD_MUSICONHOLD": "Müzik Ekle Açık Tutma",
+        "MUSICONHOLDS": "Müzik parçası Açık Tutma",
+        "EDIT_MUSICONHOLD": "Edit Müziği",
+        "DELETE_MUSICONHOLD": "Delete Müziği",
+        "DIRECTORY": "Dizin",
+        "AUDIOFILES": "Ses Dosyaları",
+        "RECORDINGS": "Kayıtlar",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "Önek",
+        "OPTIONS": "Seçenekleri",
+        "AUTH": "Kimlik doğrulama",
+        "ADD_CHANSPY": "Add ChanSpy",
+        "EDIT_CHANSPY": "Edit ChanSpy",
+        "DELETE_CHANSPY": "ChanSpy silin",
+        "AGENTS": "Ajanlar",
+        "TELEPHONES": "Telefonlar",
+        "QUEUES": "Sıraları",
+        "QUEUE_CALLS": "Kuyruk Çağrıları",
+        "QUEUE_PARAMETERS": "Kuyruk Parametreleri",
+        "ABANDONED_CALLS": "Terk Edilen Çağrılar",
+        "OUTBOUND_CALLS": "Giden Arama",
+        "AGI": "AGI",
+        "DIAL": "Arama",
+        "INTERNALDIAL": "Dahili Arama",
+        "EXTERNALDIAL": "Harici Arama",
+        "RINGGROUP": "Halka Grup",
+        "PLAYBACK": "Oynatma",
+        "QUEUE": "Kuyruk",
+        "SET": "Set",
+        "VOICEMAIL": "Sesli Posta",
+        "GOTO": "Git",
+        "HANGUP": "Bağlantıyı Kes",
+        "CUSTOM": "Özel",
+        "PROJECT": "Proje Cally-Square",
+        "TECHNOLOGY/RESOURCE": "Teknoloji/Kaynak",
+        "URL": "URL",
+        "EDIT_APP": "Düzenleme Uygulama",
+        "EDIT_INTERVAL": "Edit Aralığı",
+        "DELETE_APP": "Uygulama",
+        "INTERVALS": "Aralıkları",
+        "USER": "Kullanıcı",
+        "TRUNK": "Santral",
+        "PHONE": "Telefon",
+        "AUDIO_FILES": "Ses Dosyaları",
+        "ANNOUNCE_OVERRIDES": "Geçersiz ilan",
+        "MACRO": "Makro",
+        "GOSUB": "GoSub",
+        "RULE": "Kural",
+        "POSITION": "Konum",
+        "ANSWER": "Cevap",
+        "VALUE": "Değer",
+        "MAILBOX@CONTEXT": "Posta kutusu@Içerik",
+        "EXTENSION": "Uzatma",
+        "PRIORITY": "Öncelik",
+        "HANGUP_CAUSE": "Bağlantıyı Kes Neden",
+        "OUTBOUNDDIAL": "Giden Arama",
+        "CALLER_ID": "Arayan kimliği",
+        "NO_MESSAGE_AVAILABLE": "Mesaj yok",
+        "NO_SOUND_AVAILABLE": "Hayır sesleri kullanılabilir",
+        "VOICERECORDINGS": "Ses Kayıtları",
+        "CHANSPIES": "Chan Yönetmiştir",
+        "VOICE": "Ses",
+        "REALTIME": "Gerçek Zamanlı",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "Içerik",
+        "NO_MOHSOUND_AVAILABLE": "Hayır, Bekletme Müziği mevcuttur",
+        "FILE": "Dosya",
+        "ADD_MOHSOUND": "Add müziği ses",
+        "DOWNLOAD_MOHSOUND": "Yükleme müziği ses",
+        "DELETE_MOHSOUND": "Delete müziği ses",
+        "UNIQUEID": "Benzersiz Kimliği",
+        "AGENT": "Ajan",
+        "TYPE": "Tipi",
+        "RATING": "Derecelendirme",
+        "AUDIO": "Ses",
+        "DATE": "Tarih",
+        "NEW_VOICEQUEUE": "Yeni Ses Sırası",
+        "NEW_INBOUNDROUTE": "Yeni Gelen Rota",
+        "NEW_OUTBOUNDROUTE": "Yeni Giden Yol",
+        "NEW_INTERNALROUTE": "Yeni iç Rota",
+        "NEW_CONTEXT": "Yeni içerik",
+        "NEW_VOICEMAIL": "Yeni Sesli Posta",
+        "NEW_MUSICONHOLD": "Yeni Müziği",
+        "NEW_CHANSPY": "Yeni ChanSpy",
+        "PENALTY": "Cezasının",
+        "ADD_TEAM_TO_VOICEQUEUE": "Add Ekibi Ses Sırası",
+        "ADD_AGENT_TO_VOICEQUEUE": "Add Ajans Ses Sırası",
+        "EDIT_DIAL": "Edit Arama",
+        "EDIT_AGI": "AGI Düzenle",
+        "EDIT_INTERNALDIAL": "Edit Dahili Arama",
+        "EDIT_EXTERNALDIAL": "Edit Harici Arama",
+        "EDIT_RINGGROUP": "Edit Halka Grup",
+        "EDIT_PLAYBACK": "Edit Oynatma",
+        "EDIT_QUEUE": "Edit Sırası",
+        "EDIT_SET": "Edit Set",
+        "EDIT_GOTO": "Edit git",
+        "EDIT_HANGUP": "Edit Bağlantıyı Kes",
+        "EDIT_CUSTOM": "Özel Düzenle",
+        "DURATION": "Süre",
+        "RECEIVED_AT": "Almış",
+        "YES": "Evet",
+        "NO": "Hayır",
+        "HANGUPCAUSE_1": "1 = Ayrılmamış numarası",
+        "HANGUPCAUSE_16": "16 = Normail arama silme",
+        "HANGUPCAUSE_17": "17 = Kullanıcı meşgul",
+        "HANGUPCAUSE_18": "18 = kullanıcı yanıt vermiyor (telehone cihaz bağlı değil).",
+        "HANGUPCAUSE_21": "21 = Çağrı reddedildi",
+        "HANGUPCAUSE_22": "22 = Numarası Değiştirildi",
+        "HANGUPCAUSE_27": "27 = Hedef, sipariş",
+        "HANGUPCAUSE_38": "38 = Ağ",
+        "HANGUPCAUSE_41": "41 = Geçici arıza",
+        "RANDOM": "Rastgele",
+        "ALPHABETICAL": "Alfabetik",
+        "NO_APPS_AVAILABLE": "Hiçbir mevcut uygulamalar",
+        "DOWNLOAD_VOICERECORDING": "Download Ses Kayıt",
+        "DELETE_VOICERECORDING": "Delete Ses Kayıt",
+        "INTERNAL": "Dahili",
+        "PHONE_STATE": "Telefon Devlet",
+        "PHONE_STATUS": "Telefon Durumu",
+        "REGISTERED": "Kayıtlı",
+        "UNREGISTERED": "Kayıtsız",
+        "LAGGED": "Gecikmeli",
+        "REACHABLE": "Ulaşılabiliyor",
+        "UNREACHABLE": "Ulaşılamıyor",
+        "UNKNOWN": "Bilinmeyen",
+        "NOT_INUSE": "Kullanımda değil",
+        "INUSE": "Kullanımı",
+        "BUSY": "Meşgul",
+        "INVALID": "Geçersiz",
+        "UNAVAILABLE": "Kullanılamaz",
+        "RINGING": "Çalıyor",
+        "ONHOLD": "Bekletme",
+        "RING": "Halka",
+        "UP": "Yukarı",
+        "INFO": "Info",
+        "TRUNKS": "Devreleri",
+        "REGISTRY": "Kayıt Defteri",
+        "NO_REGISTRY": "Kayıt yok",
+        "LOGGED_IN": "Oturum Açma",
+        "PAUSED": "Duraklatıldı",
+        "WAITING": "Bekleme",
+        "TALKING": "Konuşma",
+        "DID": "Yaptık",
+        "CALLER": "Arayan",
+        "TOTAL": "Toplam",
+        "ANSWERED": "Yanıtlanan",
+        "ABANDONED": "Terk edilen",
+        "UNMANAGED": "Yönetimsiz",
+        "AVG_HOLD_TIME": "Ort Bekletme Süresi",
+        "AVG_DURATION": "Av Süresi",
+        "AVG_BILLABLE": "Ort Faturalanabilir",
+        "SOURCE": "Kaynak",
+        "DESTINATION": "Hedef",
+        "REJECTED": "Reddedildi",
+        "FAILED": "Başarısız Oldu",
+        "CALLED": "Adı",
+        "CONNECTED": "Bağlı",
+        "NO_RATING": "Hiçbir değeri",
+        "EDIT_VOICERECORDING": "Düzenleme Ses Kayıt",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*) - Özel uygulama."
+        },
+        "APPLICATION_NAME": "Uygulama Adı",
+        "ARGUMENTS": "Argümanlar",
+        "NO_AVAILABLE_INFO": "Mevcut bilgisi",
+        "ADD_AGENT_TO_QUEUE": "Add Ajans Kuyruk",
+        "DEFAULT_PAUSE": "Varsayılan DURAKLATMA",
+        "PAUSE": "Duraklatma",
+        "UNPAUSE": "Unpause",
+        "REDIRECT_TO_NUMBER": "Yönlendirme Numarası",
+        "REDIRECT_TO_AGENT": "Yeniden Agent",
+        "AGENTADD_VOICEQUEUE": "Add ajans ses sırası",
+        "APPLICATION": "Uygulama",
+        "FILES": "Dosyalar",
+        "FORMAT": "Biçimi",
+        "MODE": "Modu",
+        "RECORD": "Kayıt",
+        "TEAMADD_VOICEQUEUE": "Add ekibi voicequeue",
+        "NEW_MOHSOUND": "Yeni müziği ses",
+        "DOWNLOAD_MESSAGE": "Yükleme",
+        "DELETE_MESSAGE": "Sil",
+        "QUEUE_PARAMS": "Kuyruk Parametreleri",
+        "TOTAL_OFFERED": "Toplam Teklif",
+        "READY": "Hazır Değil",
+        "AGENTADD_QUEUE": "Add Ajans sesli kuyrukları",
+        "AGENTSADD_QUEUE": "Add temsilcileri, ses sırası",
+        "ALL_TEAMS": "Tüm takımlar",
+        "SELECTED_TEAMS": "Seçilen Ekipleri",
+        "ALL_AGENTS": "Tüm Temsilciler",
+        "SELECTED_AGENTS": "Seçilen maddeler",
+        "CLOSING": "Kapama",
+        "TAGS": "Etiketler",
+        "WAITING_FOR_AGENTS": "Bekle Ajanlar",
+        "EDIT_OUTBOUNDDIAL": "Edit Giden Arama",
+        "VARIABLE": "Değişken",
+        "CANT_PLAY_GSM_AUDIO_FILES": "Can't play gsm ses dosyaları",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "Oturum kapatma",
+        "TRUNK_STATUS": "Bagaj Durumu",
+        "WAITING_FOR_AGENT": "Bekle Ajanlar",
+        "ACCOUNTNAME": "Hesap Adı"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/zh-CN.json b/public/app/main/apps/voice/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..7b7bae8
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "名称",
+        "VOICEQUEUES": "语音队列",
+        "SEARCH_FOR_ANYONE": "搜索任何人",
+        "BACK": "返回",
+        "SELECTED": "选中的",
+        "SELECT_ALL": "选择所有",
+        "SELECT_NONE": "选择 “无”",
+        "DELETE_VOICEDISPOSITION": "删除语音处理",
+        "EDIT_VOICEDISPOSITION": "编辑语音处理",
+        "EDIT_VOICEQUEUE": "编辑语音队列",
+        "DELETE_VOICEQUEUE": "删除语音队列",
+        "MOHSOUNDS": "卫生部的声音。",
+        "STRATEGY": "战略",
+        "DESCRIPTION": "描述",
+        "ADD_VOICEQUEUE": "添加语音消息队列",
+        "CREATED_AT": "创建在",
+        "ERRORS": {
+            "NAME_REQUIRED": "该名称是必需的",
+            "TIMEOUT_REQUIRED": "超时是必需的",
+            "PHONENUMBER_REQUIRED": "手机号码为必填项",
+            "CONTEXT_REQUIRED": "当前的情况是必需的",
+            "DESTINATIONPATTERN_REQUIRED": "目标模式是必需的",
+            "FULLNAME_REQUIRED": "完整的名称是必需的",
+            "EMAIL_REQUIRED": "“电子邮件是必填的",
+            "EMAIL_MUST_VALID": "电子邮件必须有书面的格式无效",
+            "MAILBOX_REQUIRED": "邮箱是必需的",
+            "PASSWORD_REQUIRED": "密码是必需的",
+            "CONFIRM_NOT_MATCH": "密码不匹配",
+            "TIMEZONE_REQUIRED": "时区是必需的",
+            "PREFIX_REQUIRED": "前缀是必需的",
+            "OPTIONS_REQUIRED": "该选项是必需的",
+            "AFTERCALLWORKDURATION_REQUIRED": "呼叫后工作的持续时间是必需的",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "技术/资源是必需的",
+            "PHONE_REQUIRED": "手机是必需的",
+            "VALUE_REQUIRED": "该值是必需的",
+            "EXTENSION_REQUIRED": "扩展名是必需的",
+            "PRIORITY_REQUIRED": "优先级是必需的",
+            "NAME_MUST_VALID_PATTERN": "该名称必须是书面的格式无效",
+            "APPLICATION_REQUIRED": "应用程序是必需的",
+            "APPLICATION_NAME_REQUIRED": "应用程序名称是必需的"
+        },
+        "GENERAL": "总的",
+        "TIMEOUT": "超时",
+        "MAXLENGTH": "最大长度",
+        "RETRY": "重试",
+        "WRAPUPTIME": "话后工作时间",
+        "WEIGHT": "重量",
+        "JOINWHENEMPTY": "加入时空",
+        "LEAVEWHENEMPTY": "离开时空",
+        "HELP": {
+            "TIMEOUT": "指定秒数圈成员的设备。",
+            "MAXLENGTH": "指定消息的最大数目的主叫方可以在队列中等待。 值为零表示无限数量的呼叫方被允许在队列中。",
+            "RETRY": "指定该号码之前等待的秒数。 尝试下一成员在队列中如果超时” 值是用尽而尝试环的队列中。",
+            "WRAPUPTIME": "以秒为单位的成员不可用队列中的作业在完成呼叫。",
+            "WEIGHT": "定义了重量的队列中。 队列中有更高的权重定义将获得第一优先当成员是关联多个队列。",
+            "JOINWHENEMPTY": "控制是否在主叫方被添加到队列中的任何成员都是可用的。",
+            "LEAVEWHENEMPTY": "用于控制是否呼叫方发起的呼叫均被踢出队列中的成员不再是可用的呼叫。",
+            "ANNOUNCEFREQUENCY": "定义了我们应该通知主叫方所持的立场和/或预计的保持时间在队列中。 将此值设置为零以禁用。",
+            "MINANNOUNCEFREQUENCY": "指定的最小时间量必须在通过我们公布的来电者的队列中第一的位置。 这时使用的呼叫者的位置可能会经常更改, 以防止主叫方听到多个更新会在很短的时间。",
+            "PERIODICANNOUNCEFREQUENCY": "表明多久我们应该定期宣布与主叫方通话。",
+            "ANNOUNCEPOSITIONLIMIT": "如果您已经定义的宣布-位置为限制或更多。",
+            "AFTERCALLWORKDURATION": "的的暂停持续时间触发的 “呼叫后工作” 选项。",
+            "MEMBERDELAY": "如果您想要有一定的延迟之前的主叫方和队列成员正在连接到每个其他。",
+            "MUSICONHOLD": "将音乐课所使用的特定队列。",
+            "ANNOUNCETOAGENT": "用于播放语音通知的业务代表应答的呼叫, 通常要让他知道什么是队列中的呼叫方。",
+            "RANDOMPERIODICANNOUNCE": "如果设置为 “是”, 将定义的定期公告, 以随机顺序。",
+            "ANNOUNCEHOLDTIME": "定义是否将估计的保持时间, 应发挥的定期通知。",
+            "ANNOUNCECALLERPOSITION": "定义是否将主叫方的队列中第一的位置应宣布她的。 如果设置为 “否”, 该位置将永远不会被公布。 如果设置为 “是”、“主叫方的立场始终会宣布。 如果将该值设置为限制, 主叫方将听到她的队列中第一的位置只有在所定义的限制宣布--位置的限制。 如果将该值设置为更多的来电者将会听到她的位置如果是超出定义的号码, 宣布--位置的限制。",
+            "REPORTHOLDTIMEAGENT": "使报告的主叫方的保持时间的队列前桥接。",
+            "PERIODICANNOUNCE": "一组定期公布以发挥发挥的顺序定义的。",
+            "HOLDTIMEANNOUNCE": "如果未定义, 将播放默认值(“保持时间”)。 如果设置为空值, 提示无法播放。",
+            "YOUARENEXTANNOUNCE": "如果未定义, 将播放默认值(“您目前在线上是第一位”)。 如果设置为空值, 提示无法播放。",
+            "THEREAREANNOUNCE": "如果未定义, 将播放默认值(“有”)。 如果设置为空值, 提示无法播放。",
+            "WAITINGCALLSANNOUNCE": "如果未定义, 将播放默认值(“呼叫等待”。 如果设置为空值, 提示无法播放。",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "如果未定义, 将播放默认值(“当前估计的保持时间”)。 如果设置为空值, 提示无法播放。",
+            "MINUTESANNOUNCE": "如果未定义, 将播放默认值(“分钟”)。 如果设置为空值, 提示无法播放。",
+            "MINUTEANNOUNCE": "如果未定义, 将播放默认值(“一分钟”)。 如果设置为空值, 提示无法播放。",
+            "SECONDSANNOUNCE": "如果未定义, 将播放默认值(“秒”)。 如果设置为空值, 提示无法播放。",
+            "THANKYOUANNOUNCE": "如果未定义, 将播放默认值(“感谢您的耐心等待”。 如果设置为空值, 提示无法播放。",
+            "AFTERCALLWORK": "如果已激活, 该座席将被设置为 “暂停后完成的呼叫在队列中",
+            "AUTOPAUSE": "使/禁用自动暂停的成员无法应答呼叫。 如果活动的原因该成员将暂停所有队列的他是其中的成员。",
+            "RINGINUSE": "用于避免呼叫发送到成员的地位是在使用中。",
+            "TIMEOUTRESTART": "如果设置为 “是”, 重置超时业务代表应答如果占线或拥塞状态为 “已接收” 的通道。",
+            "MONITORFORMAT": "指定的文件格式时要使用的录制。 如果监护仪-格式是处于非活动状态, 呼叫将不被记录。",
+            "CONTEXT": "允许主叫方退出队列的按单一的 DTMF 数字。 如果指定了环境和主叫方输入的数字, 该数字将尝试匹配指定的环境下, 执行 dialplan 将会继续存在。",
+            "SETINTERFACEVARIABLES": "如果设置为 “是”, 只在主叫方被桥接的队列成员的某些变量将被设置(参见维基百科)",
+            "SETQUEUEVARIABLES": "如果设置为 “是”, 只在主叫方被桥接的队列成员之前, 主叫方离开队列中的某些变量将被设置(参见维基百科)",
+            "SETQUEUEENTRYVARIABLES": "如果设置为 “是”, 只在主叫方被桥接的队列成员的某些变量将被设置(参见维基百科)",
+            "RECORDING": "启用 “呼叫记录",
+            "VOICEMAIL_CONTEXT": "这方面的相关的扩展名。"
+        },
+        "MUSICONHOLD": "音乐保留",
+        "ANNOUNCETOAGENT": "宣布到座席",
+        "ANNOUNCEMENTS": "公告",
+        "ADVANCED": "高级",
+        "ANNOUNCEFREQUENCY": "公布频率",
+        "MINANNOUNCEFREQUENCY": "最小频率的宣布",
+        "PERIODICANNOUNCEFREQUENCY": "定期公布频率",
+        "RANDOMPERIODICANNOUNCE": "随机定期公布",
+        "ANNOUNCEHOLDTIME": "宣布搁置时间",
+        "ANNOUNCECALLERPOSITION": "主叫方宣布立场。",
+        "ANNOUNCEPOSITIONLIMIT": "发表位置限制",
+        "REPORTHOLDTIMEAGENT": "报告座席保持时间",
+        "PERIODICANNOUNCE": "定期公布",
+        "HOLDTIMEANNOUNCE": "保持时间公布",
+        "YOUARENEXTANNOUNCE": "“你是下的宣布",
+        "THEREAREANNOUNCE": "“有的宣布",
+        "WAITINGCALLSANNOUNCE": "呼叫等待通知",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "估计的保持时间公布",
+        "MINUTESANNOUNCE": "分钟的宣布",
+        "MINUTEANNOUNCE": "分钟的宣布",
+        "SECONDSANNOUNCE": "秒宣布",
+        "THANKYOUANNOUNCE": "“感谢您” 的宣布",
+        "AUTOPAUSE": "自动暂停",
+        "AFTERCALLWORK": "呼叫后工作",
+        "AFTERCALLWORKDURATION": "呼叫后工作的持续时间",
+        "RINGINUSE": "环在使用中",
+        "MEMBERDELAY": "会员延迟",
+        "TIMEOUTRESTART": "超时重新启动",
+        "MONITORFORMAT": "录制格式",
+        "SETINTERFACEVARIABLES": "设置接口变量。",
+        "SETQUEUEVARIABLES": "设置队列中的变量。",
+        "SETQUEUEENTRYVARIABLES": "设置队列项变量。",
+        "CONTEXT": "上下文",
+        "SAVE": "保存",
+        "SETTINGS": "设置",
+        "INBOUNDROUTES": "呼入路由",
+        "PHONENUMBER": "电话号码",
+        "ADD_INBOUNDROUTE": "添加导入路由",
+        "EDIT_INBOUNDROUTE": "编辑入站的路由",
+        "DELETE_INBOUNDROUTE": "删除传入的路由",
+        "ACTIONS": "采取的行动",
+        "OUTBOUNDROUTES": "出站的路由",
+        "DESTINATIONPATTERN": "目标模式",
+        "ADD_OUTBOUNDROUTE": "添加外出的路由",
+        "EDIT_OUTBOUNDROUTE": "编辑出站的路由",
+        "DELETE_OUTBOUNDROUTE": "删除出站的路由",
+        "CUTDIGITS": "切数字",
+        "RECORDING": "录制",
+        "RECORDINGFORMAT": "录制格式",
+        "INTERNALROUTES": "内部路由",
+        "ADD_INTERNALROUTE": "添加内部路由",
+        "EDIT_INTERNALROUTE": "编辑内部的路由",
+        "DELETE_INTERNALROUTE": "删除内部路由",
+        "CONTEXTS": "上下文",
+        "ADD_CONTEXT": "添加环境",
+        "EDIT_CONTEXT": "编辑上下文",
+        "DELETE_CONTEXT": "删除环境",
+        "VOICEMAILS": "语音邮件",
+        "ADD_VOICEMAIL": "添加语音邮件",
+        "EDIT_VOICEMAIL": "编辑语音邮件",
+        "DELETE_VOICEMAIL": "删除语音邮件。",
+        "FULLNAME": "全名。",
+        "EMAIL": "电子邮件",
+        "MAILBOX": "邮箱",
+        "PASSWORD": "密码",
+        "CONFIRM_PASSWORD": "确认密码",
+        "TIMEZONE": "时区",
+        "ATTACH": "连接",
+        "ENVELOPE": "开窗信封",
+        "DELETE": "删除",
+        "EMAILBODY": "电子邮件正文",
+        "EMAILSUBJECT": "电子邮件主题",
+        "MAXSECONDS": "的最大秒数。",
+        "MAXMESSAGES": "最大消息数",
+        "MESSAGES": "讯息",
+        "SORT": "排序",
+        "ADD_MUSICONHOLD": "添加音乐",
+        "MUSICONHOLDS": "音乐保留",
+        "EDIT_MUSICONHOLD": "编辑音乐",
+        "DELETE_MUSICONHOLD": "删除音乐保留",
+        "DIRECTORY": "目录",
+        "AUDIOFILES": "音频文件。",
+        "RECORDINGS": "录像",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "前缀。",
+        "OPTIONS": "选项。",
+        "AUTH": "身份验证",
+        "ADD_CHANSPY": "添加 ChanSpy",
+        "EDIT_CHANSPY": "编辑 ChanSpy",
+        "DELETE_CHANSPY": "删除 ChanSpy",
+        "AGENTS": "座席",
+        "TELEPHONES": "电话",
+        "QUEUES": "队列",
+        "QUEUE_CALLS": "队列中的呼叫",
+        "QUEUE_PARAMETERS": "队列参数。",
+        "ABANDONED_CALLS": "放弃的呼叫",
+        "OUTBOUND_CALLS": "呼出呼叫",
+        "AGI": "阿希",
+        "DIAL": "拨号",
+        "INTERNALDIAL": "内部拨号",
+        "EXTERNALDIAL": "外拨",
+        "RINGGROUP": "振铃组",
+        "PLAYBACK": "播放",
+        "QUEUE": "队列",
+        "SET": "设置",
+        "VOICEMAIL": "语音邮件",
+        "GOTO": "GoTo",
+        "HANGUP": "挂断",
+        "CUSTOM": "自定义",
+        "PROJECT": "Cally-Square 项目",
+        "TECHNOLOGY/RESOURCE": "技术/资源",
+        "URL": "URL。",
+        "EDIT_APP": "编辑应用程序",
+        "EDIT_INTERVAL": "编辑的时间间隔",
+        "DELETE_APP": "删除应用程序",
+        "INTERVALS": "时间间隔",
+        "USER": "用户",
+        "TRUNK": "中继线",
+        "PHONE": "电话",
+        "AUDIO_FILES": "音频文件。",
+        "ANNOUNCE_OVERRIDES": "宣布将覆盖",
+        "MACRO": "宏",
+        "GOSUB": "GoSub",
+        "RULE": "规则",
+        "POSITION": "位置",
+        "ANSWER": "答",
+        "VALUE": "值",
+        "MAILBOX@CONTEXT": "邮箱@上下文",
+        "EXTENSION": "扩展",
+        "PRIORITY": "优先级",
+        "HANGUP_CAUSE": "导致挂起。",
+        "OUTBOUNDDIAL": "呼出拨号",
+        "CALLER_ID": "主叫方 ID",
+        "NO_MESSAGE_AVAILABLE": "没有可用的消息。",
+        "NO_SOUND_AVAILABLE": "没有可用的声音。",
+        "VOICERECORDINGS": "语音录音",
+        "CHANSPIES": "陈的间谍",
+        "VOICE": "语音",
+        "REALTIME": "实时",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "上下文",
+        "NO_MOHSOUND_AVAILABLE": "没有音乐保留可用的",
+        "FILE": "文件",
+        "ADD_MOHSOUND": "添加音乐的声音",
+        "DOWNLOAD_MOHSOUND": "下载音乐的声音",
+        "DELETE_MOHSOUND": "删除音乐声音",
+        "UNIQUEID": "独特的 ID",
+        "AGENT": "座席",
+        "TYPE": "类型",
+        "RATING": "评级",
+        "AUDIO": "音频",
+        "DATE": "日期",
+        "NEW_VOICEQUEUE": "新的语音队列",
+        "NEW_INBOUNDROUTE": "新的入站的路由",
+        "NEW_OUTBOUNDROUTE": "新的出站路由",
+        "NEW_INTERNALROUTE": "新的内部路由",
+        "NEW_CONTEXT": "新的上下文。",
+        "NEW_VOICEMAIL": "新的语音邮件",
+        "NEW_MUSICONHOLD": "新音乐",
+        "NEW_CHANSPY": "新 ChanSpy",
+        "PENALTY": "刑罚",
+        "ADD_TEAM_TO_VOICEQUEUE": "添加组至语音队列",
+        "ADD_AGENT_TO_VOICEQUEUE": "代理添加到语音队列",
+        "EDIT_DIAL": "编辑拨号",
+        "EDIT_AGI": "编辑安城",
+        "EDIT_INTERNALDIAL": "编辑内部拨号",
+        "EDIT_EXTERNALDIAL": "编辑外部拨号",
+        "EDIT_RINGGROUP": "编辑铃组",
+        "EDIT_PLAYBACK": "编辑播放",
+        "EDIT_QUEUE": "编辑队列",
+        "EDIT_SET": "编辑设置",
+        "EDIT_GOTO": "编辑 GoTo",
+        "EDIT_HANGUP": "编辑挂断",
+        "EDIT_CUSTOM": "编辑自定义",
+        "DURATION": "持续时间",
+        "RECEIVED_AT": "收到",
+        "YES": "是的",
+        "NO": "无",
+        "HANGUPCAUSE_1": "1 =未分配的号码",
+        "HANGUPCAUSE_16": "16 = Normail 呼叫清除",
+        "HANGUPCAUSE_17": "17 =用户正忙",
+        "HANGUPCAUSE_18": "18 =没有用户响应(可打电话的设备未连接)",
+        "HANGUPCAUSE_21": "21 =呼叫被拒绝",
+        "HANGUPCAUSE_22": "22 =号改变。",
+        "HANGUPCAUSE_27": "27 =目的地时的订单",
+        "HANGUPCAUSE_38": "38 =网络的顺序",
+        "HANGUPCAUSE_41": "41 =临时故障",
+        "RANDOM": "随机存取存储器",
+        "ALPHABETICAL": "按字母顺序排列",
+        "NO_APPS_AVAILABLE": "没有可用的应用程序",
+        "DOWNLOAD_VOICERECORDING": "下载语音录制",
+        "DELETE_VOICERECORDING": "删除录音。",
+        "INTERNAL": "内部",
+        "PHONE_STATE": "电话状态",
+        "PHONE_STATUS": "手机状态",
+        "REGISTERED": "已注册",
+        "UNREGISTERED": "未注册",
+        "LAGGED": "落后",
+        "REACHABLE": "访问",
+        "UNREACHABLE": "不可访问",
+        "UNKNOWN": "未知",
+        "NOT_INUSE": "未使用",
+        "INUSE": "在使用中",
+        "BUSY": "正忙",
+        "INVALID": "无效",
+        "UNAVAILABLE": "不可用。",
+        "RINGING": "振铃",
+        "ONHOLD": "搁置",
+        "RING": "振铃",
+        "UP": "高达",
+        "INFO": "信息",
+        "TRUNKS": "中继线",
+        "REGISTRY": "注册表",
+        "NO_REGISTRY": "无注册表",
+        "LOGGED_IN": "已登录",
+        "PAUSED": "已暂停",
+        "WAITING": "正在等待",
+        "TALKING": "通话",
+        "DID": "没有",
+        "CALLER": "主叫方",
+        "TOTAL": "总",
+        "ANSWERED": "回答",
+        "ABANDONED": "已放弃",
+        "UNMANAGED": "非受管",
+        "AVG_HOLD_TIME": "平均保持时间",
+        "AVG_DURATION": "Av 的持续时间",
+        "AVG_BILLABLE": "平均计费。",
+        "SOURCE": "资料来源",
+        "DESTINATION": "目标位置",
+        "REJECTED": "被拒绝",
+        "FAILED": "失败",
+        "CALLED": "称为",
+        "CONNECTED": "已连接",
+        "NO_RATING": "未评级",
+        "EDIT_VOICERECORDING": "编辑语音录制",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "(*)-自定义应用程序。"
+        },
+        "APPLICATION_NAME": "应用程序的名称。",
+        "ARGUMENTS": "参数",
+        "NO_AVAILABLE_INFO": "无可用的信息",
+        "ADD_AGENT_TO_QUEUE": "代理添加到队列中",
+        "DEFAULT_PAUSE": "默认情况下暂停",
+        "PAUSE": "暂停",
+        "UNPAUSE": "取消暂停",
+        "REDIRECT_TO_NUMBER": "重定向至 “号码",
+        "REDIRECT_TO_AGENT": "重定向至座席",
+        "AGENTADD_VOICEQUEUE": "代理添加到语音队列",
+        "APPLICATION": "应用程序",
+        "FILES": "文件",
+        "FORMAT": "格式",
+        "MODE": "模式",
+        "RECORD": "记录",
+        "TEAMADD_VOICEQUEUE": "添加组至 voicequeue",
+        "NEW_MOHSOUND": "新音乐的声音",
+        "DOWNLOAD_MESSAGE": "下载",
+        "DELETE_MESSAGE": "删除",
+        "QUEUE_PARAMS": "队列参数。",
+        "TOTAL_OFFERED": "总的提供",
+        "READY": "准备就绪",
+        "AGENTADD_QUEUE": "代理添加到语音队列",
+        "AGENTSADD_QUEUE": "将座席添加到语音队列",
+        "ALL_TEAMS": "所有的团队",
+        "SELECTED_TEAMS": "选定的组",
+        "ALL_AGENTS": "所有座席",
+        "SELECTED_AGENTS": "选定的座席",
+        "CLOSING": "关闭",
+        "TAGS": "标签",
+        "WAITING_FOR_AGENTS": "等待座席",
+        "EDIT_OUTBOUNDDIAL": "编辑出站拨号",
+        "VARIABLE": "变量",
+        "CANT_PLAY_GSM_AUDIO_FILES": "不能播放 gsm 音频文件。",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "注销",
+        "TRUNK_STATUS": "中继线状态",
+        "WAITING_FOR_AGENT": "等待座席",
+        "ACCOUNTNAME": "帐户名称"
+    }
+}
\ No newline at end of file
diff --git a/public/app/main/apps/voice/i18n/zh-TW.json b/public/app/main/apps/voice/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..933ba79
--- /dev/null
@@ -0,0 +1,372 @@
+{
+    "VOICE": {
+        "NAME": "名稱",
+        "VOICEQUEUES": "語音通話佇列",
+        "SEARCH_FOR_ANYONE": "搜尋使用者",
+        "BACK": "備份",
+        "SELECTED": "已選取",
+        "SELECT_ALL": "全部選取",
+        "SELECT_NONE": "選取「無」",
+        "DELETE_VOICEDISPOSITION": "刪除語音處理",
+        "EDIT_VOICEDISPOSITION": "編輯語音處理",
+        "EDIT_VOICEQUEUE": "編輯語音通話佇列",
+        "DELETE_VOICEQUEUE": "刪除語音通話佇列",
+        "MOHSOUNDS": "Moh 音效",
+        "STRATEGY": "策略",
+        "DESCRIPTION": "說明",
+        "ADD_VOICEQUEUE": "新增語音通話佇列",
+        "CREATED_AT": "建立在",
+        "ERRORS": {
+            "NAME_REQUIRED": "「名稱」為必填欄位",
+            "TIMEOUT_REQUIRED": "逾時時間為必要資訊",
+            "PHONENUMBER_REQUIRED": "「電話號碼」為必填欄位",
+            "CONTEXT_REQUIRED": "內容為必填欄位",
+            "DESTINATIONPATTERN_REQUIRED": "目的地型式為必填欄位",
+            "FULLNAME_REQUIRED": "完整名稱」為必填欄位",
+            "EMAIL_REQUIRED": "電子郵件為必填欄位",
+            "EMAIL_MUST_VALID": "電子郵件必須是書面的格式無效",
+            "MAILBOX_REQUIRED": "信箱為必填欄位",
+            "PASSWORD_REQUIRED": "密碼為必填欄位",
+            "CONFIRM_NOT_MATCH": "密碼不相符",
+            "TIMEZONE_REQUIRED": "Timezone 是必填欄位",
+            "PREFIX_REQUIRED": "前置碼為必填欄位",
+            "OPTIONS_REQUIRED": "選項為必填欄位",
+            "AFTERCALLWORKDURATION_REQUIRED": "「通話後工作時間為必要資訊",
+            "TECHNOLOGY/RESOURCE_REQUIRED": "技術 / 資源為必填欄位",
+            "PHONE_REQUIRED": "「電話」為必填欄位",
+            "VALUE_REQUIRED": "此值為必填欄位",
+            "EXTENSION_REQUIRED": "副檔名是必填欄位",
+            "PRIORITY_REQUIRED": "「優先順序為必填欄位",
+            "NAME_MUST_VALID_PATTERN": "名稱必須以有效的格式",
+            "APPLICATION_REQUIRED": "應用程式是必填欄位",
+            "APPLICATION_NAME_REQUIRED": "應用程式名稱」為必填欄位"
+        },
+        "GENERAL": "通用",
+        "TIMEOUT": "逾時",
+        "MAXLENGTH": "長度上限",
+        "RETRY": "再試一次",
+        "WRAPUPTIME": "整理時間",
+        "WEIGHT": "重量",
+        "JOINWHENEMPTY": "加入當空白",
+        "LEAVEWHENEMPTY": "當留空白",
+        "HELP": {
+            "TIMEOUT": "指定的秒數以環成員的裝置。",
+            "MAXLENGTH": "指定的最大數目的來電者可等待佇列中。 零值表示無限數量的來電者會被允許在佇列中。",
+            "RETRY": "指定之前等待的秒数下會員在佇列中等候如果逾時的值是累癱了在嘗試鈴成員的佇列。",
+            "WRAPUPTIME": "秒數要保留會員無法在佇列中等候完成通話。",
+            "WEIGHT": "定義的紙張重量的佇列。 佇列中有較高重量定義將會取得第一優先當會員相關的多個佇列。",
+            "JOINWHENEMPTY": "控制是否在來電者被新增到佇列中沒有任何會員均可使用。",
+            "LEAVEWHENEMPTY": "用來控制來電者是否會踢掉出佇列當會員將不再提供可接聽來電。",
+            "ANNOUNCEFREQUENCY": "定義通常是我們應在此宣佈推出「來電者的位置和 / 或預估保留時間在佇列中。 將這個值設定為 0 可停用。",
+            "MINANNOUNCEFREQUENCY": "指定的最低金額應經過多久的時間才能我們在此宣佈推出「來電者的位置在「佇列一次。 這是用來當來電者的位置可能會經常變更 , 以避免來電者聽到多個更新在很短的時間內。",
+            "PERIODICANNOUNCEFREQUENCY": "表示有多久我們應定期公告至來電者。",
+            "ANNOUNCEPOSITIONLIMIT": "如果您已定義發佈位置為限價或更多。",
+            "AFTERCALLWORKDURATION": "時間暫停觸發的通話後工作選項",
+            "MEMBERDELAY": "如果您想要有一種延遲事先來電與佇列成員正在連線到另一台主機。",
+            "MUSICONHOLD": "集音樂類別是由特定的佇列中。",
+            "ANNOUNCETOAGENT": "用於播放公告至值機員接聽來電 , 通常會讓他知道佇列中的來電者是來自。",
+            "RANDOMPERIODICANNOUNCE": "如果設定為「是」 , 將播放定義的定期公告以隨機順序。",
+            "ANNOUNCEHOLDTIME": "定義是否要預估保留時間應在播放時連同定期公告。",
+            "ANNOUNCECALLERPOSITION": "定義是否要來電者的位置在佇列中等候應公佈給她。 如果設定為否 , 位置不會被發佈。 如果設定為「是」、「來電者的位置將會公佈。 如果這個值設定為下限 , 來電者將會聽到她的職位在佇列中只有在所定義的限制發佈位置的限制。 如果這個值設定為較多 , 來電者將會聽到她的職位如果它是超越的號碼來定義發佈位置的限制。",
+            "REPORTHOLDTIMEAGENT": "讓報告的來電者的保留時間至佇列會員之前的橋接。",
+            "PERIODICANNOUNCE": "這是一種週期性宣告才能播放 , 播放留言順序定義。",
+            "HOLDTIMEANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「保留時間」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "YOUARENEXTANNOUNCE": "若未定義 , 將播放的預設值 ( 以下稱「您現在可以先在線」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "THEREAREANNOUNCE": "若未定義 , 將播放的預設值 ( 「有」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "WAITINGCALLSANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「來電待接數量」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "ESTIMATEDHOLDTIMEANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「目前的預估等候時間」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "MINUTESANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「分」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "MINUTEANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「分」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "SECONDSANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「秒」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "THANKYOUANNOUNCE": "若未定義 , 將播放的預設值 ( 下稱「感謝您的耐心等候」 ) 。 如果設為空值 , 提示字元將無法播放。",
+            "AFTERCALLWORK": "如果作用中」、「值機員將會設在暫停在完成通話在佇列",
+            "AUTOPAUSE": "啟用 / 停用「自動暫停的成員無法接聽來電。 如果作用會導致此會員為暫停所有佇列他的成員之一。",
+            "RINGINUSE": "用來避免傳送來電至成員的狀態是在使用中。",
+            "TIMEOUTRESTART": "如果設定為「是」 , 將會重設逾時的值機員可接聽如果是忙線或網路壅塞狀態會收到的通道。",
+            "MONITORFORMAT": "指定的檔案格式時要用錄影。 如果監視器的格式為非作用中通話將不會被記錄下來。",
+            "CONTEXT": "允許來電者離開佇列按一 DTMF 數字。 如果內容是特定的來電者輸入的數字 , 該數字便會嘗試進行匹配的內容中指定之 , 並撥號計畫執行程式將會繼續存在。",
+            "SETINTERFACEVARIABLES": "如果設定為「是」 , 只要事先來電者被以橋接模式的佇列會員部分變數將會設定 ( 請參閱 wiki )",
+            "SETQUEUEVARIABLES": "如果設定為「是」 , 只要事先來電者被以橋接模式的佇列成員和前呼叫者離開佇列部分變數將會設定 ( 請參閱 wiki )",
+            "SETQUEUEENTRYVARIABLES": "如果設定為「是」 , 只要事先來電者被以橋接模式的佇列會員部分變數將會設定 ( 請參閱 wiki )",
+            "RECORDING": "啟用通話記錄",
+            "VOICEMAIL_CONTEXT": "上下文相關的相對的副檔名。"
+        },
+        "MUSICONHOLD": "音樂保留通話",
+        "ANNOUNCETOAGENT": "發佈至值機員",
+        "ANNOUNCEMENTS": "公告",
+        "ADVANCED": "進階",
+        "ANNOUNCEFREQUENCY": "發佈頻率",
+        "MINANNOUNCEFREQUENCY": "最小宣佈頻率",
+        "PERIODICANNOUNCEFREQUENCY": "定期公佈頻率",
+        "RANDOMPERIODICANNOUNCE": "隨機定期公佈",
+        "ANNOUNCEHOLDTIME": "宣佈保留時間",
+        "ANNOUNCECALLERPOSITION": "發佈者位置",
+        "ANNOUNCEPOSITIONLIMIT": "宣佈位置限制",
+        "REPORTHOLDTIMEAGENT": "報告值機員保留時間",
+        "PERIODICANNOUNCE": "定期公佈",
+        "HOLDTIMEANNOUNCE": "保留時間公佈",
+        "YOUARENEXTANNOUNCE": "「您是下一次的通告",
+        "THEREAREANNOUNCE": "「有」宣佈",
+        "WAITINGCALLSANNOUNCE": "等候通話發佈",
+        "ESTIMATEDHOLDTIMEANNOUNCE": "預計等候時間公佈",
+        "MINUTESANNOUNCE": "分宣佈",
+        "MINUTEANNOUNCE": "分鐘發佈",
+        "SECONDSANNOUNCE": "秒宣佈",
+        "THANKYOUANNOUNCE": "「謝謝您」宣佈",
+        "AUTOPAUSE": "自動暫停",
+        "AFTERCALLWORK": "通話結束後的後續工作",
+        "AFTERCALLWORKDURATION": "呼叫後工作時間",
+        "RINGINUSE": "環使用中",
+        "MEMBERDELAY": "會員延遲時間",
+        "TIMEOUTRESTART": "逾時重新啟動",
+        "MONITORFORMAT": "錄製格式",
+        "SETINTERFACEVARIABLES": "設定介面變數",
+        "SETQUEUEVARIABLES": "設定佇列變數",
+        "SETQUEUEENTRYVARIABLES": "設定佇列中輸入變數",
+        "CONTEXT": "內容",
+        "SAVE": "儲存",
+        "SETTINGS": "設定",
+        "INBOUNDROUTES": "輸入路由",
+        "PHONENUMBER": "電話號碼",
+        "ADD_INBOUNDROUTE": "新增輸入路由",
+        "EDIT_INBOUNDROUTE": "編輯輸入路由",
+        "DELETE_INBOUNDROUTE": "刪除輸入路由",
+        "ACTIONS": "動作",
+        "OUTBOUNDROUTES": "外路由",
+        "DESTINATIONPATTERN": "目的地型式",
+        "ADD_OUTBOUNDROUTE": "新增外路由",
+        "EDIT_OUTBOUNDROUTE": "編輯外路由",
+        "DELETE_OUTBOUNDROUTE": "刪除外路由",
+        "CUTDIGITS": "裁切數字",
+        "RECORDING": "錄影",
+        "RECORDINGFORMAT": "錄製格式",
+        "INTERNALROUTES": "內部路由器",
+        "ADD_INTERNALROUTE": "新增內部路由",
+        "EDIT_INTERNALROUTE": "編輯內部路由",
+        "DELETE_INTERNALROUTE": "刪除內部路由",
+        "CONTEXTS": "內容",
+        "ADD_CONTEXT": "新增內容",
+        "EDIT_CONTEXT": "編輯內容",
+        "DELETE_CONTEXT": "刪除內容",
+        "VOICEMAILS": "語音信箱",
+        "ADD_VOICEMAIL": "新增語音信箱",
+        "EDIT_VOICEMAIL": "編輯語音信箱",
+        "DELETE_VOICEMAIL": "刪除留言",
+        "FULLNAME": "完整名稱",
+        "EMAIL": "電子郵件",
+        "MAILBOX": "信箱",
+        "PASSWORD": "密碼",
+        "CONFIRM_PASSWORD": "確認密碼",
+        "TIMEZONE": "時區",
+        "ATTACH": "連接",
+        "ENVELOPE": "信封資訊",
+        "DELETE": "刪除",
+        "EMAILBODY": "電子郵件內容",
+        "EMAILSUBJECT": "電子郵件主旨",
+        "MAXSECONDS": "最大秒數",
+        "MAXMESSAGES": "最大訊息",
+        "MESSAGES": "訊息",
+        "SORT": "排序依據",
+        "ADD_MUSICONHOLD": "新增音樂設為保留",
+        "MUSICONHOLDS": "Musics 保留通話",
+        "EDIT_MUSICONHOLD": "編輯音樂設為保留",
+        "DELETE_MUSICONHOLD": "刪除音樂設為保留",
+        "DIRECTORY": "目錄",
+        "AUDIOFILES": "音效檔案",
+        "RECORDINGS": "錄音",
+        "CHANSPY": "ChanSpy",
+        "PREFIX": "前置字元",
+        "OPTIONS": "選項",
+        "AUTH": "驗證",
+        "ADD_CHANSPY": "新增 ChanSpy",
+        "EDIT_CHANSPY": "編輯 ChanSpy",
+        "DELETE_CHANSPY": "刪除 ChanSpy",
+        "AGENTS": "值機員",
+        "TELEPHONES": "電話",
+        "QUEUES": "佇列",
+        "QUEUE_CALLS": "佇列通話數",
+        "QUEUE_PARAMETERS": "佇列參數",
+        "ABANDONED_CALLS": "已放棄的通話數",
+        "OUTBOUND_CALLS": "外撥電話",
+        "AGI": "AGI",
+        "DIAL": "撥號",
+        "INTERNALDIAL": "內部撥出",
+        "EXTERNALDIAL": "外接式撥號",
+        "RINGGROUP": "鈴群組",
+        "PLAYBACK": "播放留言",
+        "QUEUE": "佇列",
+        "SET": "設定",
+        "VOICEMAIL": "語音信箱",
+        "GOTO": "「跳到斷線」",
+        "HANGUP": "掛斷",
+        "CUSTOM": "自訂",
+        "PROJECT": "Cally-Square 專案",
+        "TECHNOLOGY/RESOURCE": "技術 / 資源",
+        "URL": "URL",
+        "EDIT_APP": "編輯應用程式",
+        "EDIT_INTERVAL": "編輯時間間隔",
+        "DELETE_APP": "刪除應用程式",
+        "INTERVALS": "時間間隔",
+        "USER": "使用者",
+        "TRUNK": "中繼線",
+        "PHONE": "電話",
+        "AUDIO_FILES": "音效檔案",
+        "ANNOUNCE_OVERRIDES": "宣佈會覆寫",
+        "MACRO": "巨集",
+        "GOSUB": "GoSub",
+        "RULE": "規則",
+        "POSITION": "位置",
+        "ANSWER": "接聽來電",
+        "VALUE": "值",
+        "MAILBOX@CONTEXT": "信箱與內容",
+        "EXTENSION": "分機號碼",
+        "PRIORITY": "優先順序",
+        "HANGUP_CAUSE": "掛斷原因",
+        "OUTBOUNDDIAL": "外撥",
+        "CALLER_ID": "來電者 ID",
+        "NO_MESSAGE_AVAILABLE": "沒有任何訊息",
+        "NO_SOUND_AVAILABLE": "沒有聲音可用性",
+        "VOICERECORDINGS": "語音錄音",
+        "CHANSPIES": "Chan 間諜",
+        "VOICE": "語音通話",
+        "REALTIME": "即時",
+        "ID": "Id",
+        "VOICEMAIL_CONTEXT": "內容",
+        "NO_MOHSOUND_AVAILABLE": "無音樂保留可用性",
+        "FILE": "檔案",
+        "ADD_MOHSOUND": "新增音樂音效",
+        "DOWNLOAD_MOHSOUND": "下載音樂音效",
+        "DELETE_MOHSOUND": "刪除音樂保留音效",
+        "UNIQUEID": "獨特的識別碼",
+        "AGENT": "值機員",
+        "TYPE": "類型",
+        "RATING": "評等",
+        "AUDIO": "音效",
+        "DATE": "日期",
+        "NEW_VOICEQUEUE": "新的語音通話佇列",
+        "NEW_INBOUNDROUTE": "新增輸入路由",
+        "NEW_OUTBOUNDROUTE": "外傳的新路由",
+        "NEW_INTERNALROUTE": "新增內部路由",
+        "NEW_CONTEXT": "新增內容",
+        "NEW_VOICEMAIL": "新語音留言",
+        "NEW_MUSICONHOLD": "新音樂設為保留",
+        "NEW_CHANSPY": "新 ChanSpy",
+        "PENALTY": "罰款",
+        "ADD_TEAM_TO_VOICEQUEUE": "新增群組語音佇列",
+        "ADD_AGENT_TO_VOICEQUEUE": "新增值機員至語音佇列",
+        "EDIT_DIAL": "編輯撥號",
+        "EDIT_AGI": "編輯 AGI",
+        "EDIT_INTERNALDIAL": "編輯內建撥號",
+        "EDIT_EXTERNALDIAL": "編輯外部撥號",
+        "EDIT_RINGGROUP": "編輯鈴聲群組",
+        "EDIT_PLAYBACK": "編輯播放",
+        "EDIT_QUEUE": "編輯佇列",
+        "EDIT_SET": "編輯設定",
+        "EDIT_GOTO": "編輯跳至",
+        "EDIT_HANGUP": "編輯掛斷",
+        "EDIT_CUSTOM": "編輯自訂",
+        "DURATION": "通話持續時間",
+        "RECEIVED_AT": "接收",
+        "YES": "Yes ( 是 )",
+        "NO": "沒有",
+        "HANGUPCAUSE_1": "1 = 未分配的號碼",
+        "HANGUPCAUSE_16": "16 = Normail 來電清除",
+        "HANGUPCAUSE_17": "17 = 使用者忙線中",
+        "HANGUPCAUSE_18": "18 = 使用者無回應 ( telehone 裝置未連線 )",
+        "HANGUPCAUSE_21": "21 = 來電被拒",
+        "HANGUPCAUSE_22": "22 = 號碼已變更",
+        "HANGUPCAUSE_27": "27 = 目的地的順序",
+        "HANGUPCAUSE_38": "38 = 網路外的醫令",
+        "HANGUPCAUSE_41": "41 = 暫時失敗",
+        "RANDOM": "隨機",
+        "ALPHABETICAL": "按字母順序排列",
+        "NO_APPS_AVAILABLE": "無可用的應用程式",
+        "DOWNLOAD_VOICERECORDING": "下載語音錄音",
+        "DELETE_VOICERECORDING": "刪除語音錄音",
+        "INTERNAL": "內建式",
+        "PHONE_STATE": "電話狀態",
+        "PHONE_STATUS": "電話狀態",
+        "REGISTERED": "已註冊",
+        "UNREGISTERED": "未註冊",
+        "LAGGED": "這段時間",
+        "REACHABLE": "連通性",
+        "UNREACHABLE": "無法到達",
+        "UNKNOWN": "不明",
+        "NOT_INUSE": "非使用中",
+        "INUSE": "使用中",
+        "BUSY": "忙碌中",
+        "INVALID": "無效的",
+        "UNAVAILABLE": "無法使用",
+        "RINGING": "鈴聲",
+        "ONHOLD": "保留通話",
+        "RING": "鈴聲",
+        "UP": "最高",
+        "INFO": "資訊",
+        "TRUNKS": "中繼線運行",
+        "REGISTRY": "登錄",
+        "NO_REGISTRY": "未登錄",
+        "LOGGED_IN": "已登入",
+        "PAUSED": "已暫停",
+        "WAITING": "等候中",
+        "TALKING": "通話中",
+        "DID": "DID",
+        "CALLER": "來電者",
+        "TOTAL": "總金額",
+        "ANSWERED": "接聽數量",
+        "ABANDONED": "已中止",
+        "UNMANAGED": "未受管理",
+        "AVG_HOLD_TIME": "平均保留時間",
+        "AVG_DURATION": "Av 持續時間",
+        "AVG_BILLABLE": "平均可計費",
+        "SOURCE": "來源",
+        "DESTINATION": "目的地",
+        "REJECTED": "遭拒",
+        "FAILED": "失敗",
+        "CALLED": "又稱為",
+        "CONNECTED": "已連線",
+        "NO_RATING": "無評等",
+        "EDIT_VOICERECORDING": "編輯語音錄音",
+        "LEGEND": {
+            "CUSTOM_APPLICATION": "( * ) - 自訂應用程式。"
+        },
+        "APPLICATION_NAME": "應用程式名稱",
+        "ARGUMENTS": "引數",
+        "NO_AVAILABLE_INFO": "無可用資訊",
+        "ADD_AGENT_TO_QUEUE": "值機人員新增到佇列",
+        "DEFAULT_PAUSE": "預設暫停",
+        "PAUSE": "暫停",
+        "UNPAUSE": "取消暫停",
+        "REDIRECT_TO_NUMBER": "轉接號碼",
+        "REDIRECT_TO_AGENT": "將來電轉接給值機人員",
+        "AGENTADD_VOICEQUEUE": "新增值機員至語音佇列",
+        "APPLICATION": "應用程式",
+        "FILES": "檔案",
+        "FORMAT": "格式化",
+        "MODE": "模式",
+        "RECORD": "記錄",
+        "TEAMADD_VOICEQUEUE": "新增群組 voicequeue",
+        "NEW_MOHSOUND": "新的音樂保留音效",
+        "DOWNLOAD_MESSAGE": "下載",
+        "DELETE_MESSAGE": "刪除",
+        "QUEUE_PARAMS": "佇列參數",
+        "TOTAL_OFFERED": "總數",
+        "READY": "準備就緒",
+        "AGENTADD_QUEUE": "新增值機員至語音佇列",
+        "AGENTSADD_QUEUE": "將值機員新增到語音佇列",
+        "ALL_TEAMS": "所有群組",
+        "SELECTED_TEAMS": "選取群組",
+        "ALL_AGENTS": "所有值機員",
+        "SELECTED_AGENTS": "已選取的值機人員",
+        "CLOSING": "關閉",
+        "TAGS": "標籤",
+        "WAITING_FOR_AGENTS": "等待值機員",
+        "EDIT_OUTBOUNDDIAL": "編輯外撥",
+        "VARIABLE": "變數",
+        "CANT_PLAY_GSM_AUDIO_FILES": "無法播放 gsm 音效檔案",
+        "CALLYSQUARE": "CallySquare",
+        "LOGOUT": "登出",
+        "TRUNK_STATUS": "中繼線狀態",
+        "WAITING_FOR_AGENT": "等待值機員",
+        "ACCOUNTNAME": "帳號名稱"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/da.json b/public/app/quick-panel/i18n/da.json
new file mode 100644 (file)
index 0000000..2057881
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "I DAG",
+        "MONDAY": "Mandag",
+        "TUESDAY": "Tirsdag",
+        "WEDNESDAY": "Onsdag",
+        "THURSDAY": "Torsdag",
+        "FRIDAY": "Fredag",
+        "SATURDAY": "Lørdag",
+        "SUNDAY": "Søndag",
+        "JANUARY": "Januar",
+        "FEBRUARY": "Februar",
+        "MARCH": "Marts",
+        "APRIL": "April",
+        "MAY": "Maj",
+        "JUNE": "Juni",
+        "JULY": "Juli",
+        "AUGUST": "August",
+        "SEPTEMBER": "September",
+        "OCTOBER": "Oktober",
+        "NOVEMBER": "November",
+        "DECEMBER": "December",
+        "CHAT": "CHAT",
+        "ACTIVITY": "Aktivitet",
+        "FRIENDS": "Venner",
+        "APP_SERVERS": "Applikationsservere",
+        "USER_STATS": "Bruger statistik",
+        "EVENTS": "Begivenheder",
+        "NOTES": "Noter",
+        "QUICK_SETTINGS": "Hurtig indstilling",
+        "NOTIFICATIONS": "Advisering",
+        "CLOUD_SYNC": "Cloud Sync",
+        "RETRO_THRUSTERS": "Retro kabelvogne",
+        "RECENT": "Seneste",
+        "START_NEW_CHAT": "Begynd ny chat",
+        "BACK": "Tilbage",
+        "CALL": "Opkald",
+        "MORE": "Mere",
+        "SEND_MESSAGE": "Send besked",
+        "REPLY_PLACEHOLDER": "Skriv og tryk enter for at sende besked",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Kontakt xCALLY Motion støtte",
+        "EXPIRATION_DATE": "Udløbsdato",
+        "EXPIRATION_REASON": "Derfor er udløbet",
+        "LICENSE": "Licens",
+        "NEW_TOKEN": "Nye brik",
+        "OLD_TOKEN": "Gamle Token",
+        "SEND_EMAIL_TO": "Send email til"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/de.json b/public/app/quick-panel/i18n/de.json
new file mode 100644 (file)
index 0000000..9527ab4
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "Heute",
+        "MONDAY": "Montag",
+        "TUESDAY": "Dienstag",
+        "WEDNESDAY": "Mittwoch",
+        "THURSDAY": "Donnerstag",
+        "FRIDAY": "Freitag",
+        "SATURDAY": "Samstag",
+        "SUNDAY": "Sonntag",
+        "JANUARY": "Januar",
+        "FEBRUARY": "Februar",
+        "MARCH": "März",
+        "APRIL": "April",
+        "MAY": "Mai",
+        "JUNE": "Juni",
+        "JULY": "Juli",
+        "AUGUST": "August",
+        "SEPTEMBER": "September",
+        "OCTOBER": "Oktober",
+        "NOVEMBER": "November",
+        "DECEMBER": "Dezember",
+        "CHAT": "CHAT",
+        "ACTIVITY": "Aktivität",
+        "FRIENDS": "Freunde",
+        "APP_SERVERS": "Anwendungsserver",
+        "USER_STATS": "Benutzer Stats",
+        "EVENTS": "Veranstaltungen",
+        "NOTES": "Hinweise",
+        "QUICK_SETTINGS": "Schnelle Einstellungen",
+        "NOTIFICATIONS": "Benachrichtigungen",
+        "CLOUD_SYNC": "Cloud Synchronisieren",
+        "RETRO_THRUSTERS": "Retro Triebwerke",
+        "RECENT": "Die jüngsten",
+        "START_NEW_CHAT": "Neuen Chat starten",
+        "BACK": "Zurück",
+        "CALL": "Anruf",
+        "MORE": "Mehr",
+        "SEND_MESSAGE": "Nachricht senden",
+        "REPLY_PLACEHOLDER": "Geben Sie ein, und drücken Sie die Eingabetaste, um Nachricht senden",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Kontakt xCALLY Motion Support",
+        "EXPIRATION_DATE": "Ablaufdatum",
+        "EXPIRATION_REASON": "Ablauf Grund",
+        "LICENSE": "Lizenz",
+        "NEW_TOKEN": "Neue Token",
+        "OLD_TOKEN": "Alte Token",
+        "SEND_EMAIL_TO": "E-Mail senden an"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/en.json b/public/app/quick-panel/i18n/en.json
new file mode 100644 (file)
index 0000000..4fbee1b
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "TODAY",
+        "MONDAY": "Monday",
+        "TUESDAY": "Tuesday",
+        "WEDNESDAY": "Wednesday",
+        "THURSDAY": "Thursday",
+        "FRIDAY": "Friday",
+        "SATURDAY": "Saturday",
+        "SUNDAY": "Sunday",
+        "JANUARY": "January",
+        "FEBRUARY": "February",
+        "MARCH": "March",
+        "APRIL": "April",
+        "MAY": "May",
+        "JUNE": "June",
+        "JULY": "July",
+        "AUGUST": "August",
+        "SEPTEMBER": "September",
+        "OCTOBER": "October",
+        "NOVEMBER": "November",
+        "DECEMBER": "December",
+        "CHAT": "CHAT",
+        "ACTIVITY": "ACTIVITY",
+        "FRIENDS": "Friends",
+        "APP_SERVERS": "Application Servers",
+        "USER_STATS": "User Stats",
+        "EVENTS": "Events",
+        "NOTES": "Notes",
+        "QUICK_SETTINGS": "Quick Settings",
+        "NOTIFICATIONS": "Notifications",
+        "CLOUD_SYNC": "Cloud Sync",
+        "RETRO_THRUSTERS": "Retro Thrusters",
+        "RECENT": "Recent",
+        "START_NEW_CHAT": "Start New Chat",
+        "BACK": "Back",
+        "CALL": "Call",
+        "MORE": "More",
+        "SEND_MESSAGE": "Send message",
+        "REPLY_PLACEHOLDER": "Type and hit enter to send message",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Contact xCALLY Motion Support",
+        "EXPIRATION_DATE": "Expiration Date",
+        "EXPIRATION_REASON": "Expiration Reason",
+        "LICENSE": "License",
+        "NEW_TOKEN": "New Token",
+        "OLD_TOKEN": "Old Token",
+        "SEND_EMAIL_TO": "Send Email To"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/es.json b/public/app/quick-panel/i18n/es.json
new file mode 100644 (file)
index 0000000..ceb2f04
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "Hoy",
+        "MONDAY": "Lunes",
+        "TUESDAY": "Martes",
+        "WEDNESDAY": "Miércoles",
+        "THURSDAY": "Jueves",
+        "FRIDAY": "Viernes",
+        "SATURDAY": "Sábado",
+        "SUNDAY": "Domingo",
+        "JANUARY": "Enero",
+        "FEBRUARY": "Febrero",
+        "MARCH": "Marzo",
+        "APRIL": "Abril",
+        "MAY": "Mayo",
+        "JUNE": "Junio",
+        "JULY": "Julio",
+        "AUGUST": "Agosto",
+        "SEPTEMBER": "Septiembre",
+        "OCTOBER": "Octubre",
+        "NOVEMBER": "Noviembre",
+        "DECEMBER": "Diciembre",
+        "CHAT": "CHAT",
+        "ACTIVITY": "Actividad",
+        "FRIENDS": "Amigos",
+        "APP_SERVERS": "Servidores de aplicaciones",
+        "USER_STATS": "Estadísticas de usuario",
+        "EVENTS": "Eventos",
+        "NOTES": "Notas",
+        "QUICK_SETTINGS": "Configuración rápida",
+        "NOTIFICATIONS": "Notificaciones",
+        "CLOUD_SYNC": "Cloud Sync",
+        "RETRO_THRUSTERS": "Propulsores Retro",
+        "RECENT": "Los últimos",
+        "START_NEW_CHAT": "Iniciar nuevo chat",
+        "BACK": "Volver",
+        "CALL": "Llame",
+        "MORE": "Más",
+        "SEND_MESSAGE": "Enviar mensaje",
+        "REPLY_PLACEHOLDER": "Escriba y pulse Intro para enviar mensaje",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Póngase en contacto con soporte de movimiento xCALLY",
+        "EXPIRATION_DATE": "Fecha de caducidad",
+        "EXPIRATION_REASON": "Motivo de caducidad",
+        "LICENSE": "Licencia",
+        "NEW_TOKEN": "Nuevo Token",
+        "OLD_TOKEN": "Token viejo",
+        "SEND_EMAIL_TO": "Enviar correo electrónico a"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/fa.json b/public/app/quick-panel/i18n/fa.json
new file mode 100644 (file)
index 0000000..b31e9ac
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "امروز",
+        "MONDAY": "دوشنبه",
+        "TUESDAY": "سه شنبه",
+        "WEDNESDAY": "چهارشنبه",
+        "THURSDAY": "پنجشنبه",
+        "FRIDAY": "جمعه",
+        "SATURDAY": "شنبه",
+        "SUNDAY": "يكشنبه",
+        "JANUARY": "ژانویه",
+        "FEBRUARY": "فوریه",
+        "MARCH": "مارس",
+        "APRIL": "آوریل",
+        "MAY": "ماه مه",
+        "JUNE": "ماه ژوئن",
+        "JULY": "ماه ژوئيه",
+        "AUGUST": "در ماه اوت",
+        "SEPTEMBER": "ماه سپتامبر",
+        "OCTOBER": "ماه اکتبر",
+        "NOVEMBER": "ماه نوامبر",
+        "DECEMBER": "دسامبر",
+        "CHAT": "چت روم",
+        "ACTIVITY": "فعالیت ها",
+        "FRIENDS": "دوستان",
+        "APP_SERVERS": "سرورهای برنامه کاربردی",
+        "USER_STATS": "کاربر Stats",
+        "EVENTS": "حوادث",
+        "NOTES": "يادداشت ها",
+        "QUICK_SETTINGS": "تنظیمات سریع",
+        "NOTIFICATIONS": "اطلاعیه ها",
+        "CLOUD_SYNC": "ابر همگامی",
+        "RETRO_THRUSTERS": "آیینه های جانبی Thrusters",
+        "RECENT": "اخیرا",
+        "START_NEW_CHAT": "راه اندازی چت روم جدید",
+        "BACK": "پشت",
+        "CALL": "تلفن",
+        "MORE": "بیشتر",
+        "SEND_MESSAGE": "ارسال پیام",
+        "REPLY_PLACEHOLDER": "ماشین تایپ و ارسال پیام را وارد کنید",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "حركت xCALLY پشتیبانی تماس بگیرید",
+        "EXPIRATION_DATE": "تاریخ انقضا",
+        "EXPIRATION_REASON": "به همين دليل انقضا",
+        "LICENSE": "این مجوز",
+        "NEW_TOKEN": "نشانه جدید",
+        "OLD_TOKEN": "نشانه پير",
+        "SEND_EMAIL_TO": "فرستادن به ایمیل"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/fi.json b/public/app/quick-panel/i18n/fi.json
new file mode 100644 (file)
index 0000000..b2028aa
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "Tänään",
+        "MONDAY": "Maanantaista",
+        "TUESDAY": "Tiistaina",
+        "WEDNESDAY": "Keskiviikko",
+        "THURSDAY": "Torstai",
+        "FRIDAY": "Perjantai",
+        "SATURDAY": "Lauantai",
+        "SUNDAY": "Sunnuntaina",
+        "JANUARY": "Tammikuu",
+        "FEBRUARY": "Helmikuu",
+        "MARCH": "Maaliskuu",
+        "APRIL": "Huhtikuu",
+        "MAY": "Ehkä",
+        "JUNE": "Kesäkuu",
+        "JULY": "Heinäkuuta",
+        "AUGUST": "Elokuu",
+        "SEPTEMBER": "Syyskuu",
+        "OCTOBER": "Lokakuu",
+        "NOVEMBER": "Marraskuu",
+        "DECEMBER": "Joulukuussa",
+        "CHAT": "CHAT",
+        "ACTIVITY": "Toiminto",
+        "FRIENDS": "Kaverit",
+        "APP_SERVERS": "Sovelluspalvelimet.",
+        "USER_STATS": "Käyttäjä Stats",
+        "EVENTS": "Tapahtumat",
+        "NOTES": "Huomautukset",
+        "QUICK_SETTINGS": "Pika-asetukset",
+        "NOTIFICATIONS": "Muistutukset",
+        "CLOUD_SYNC": "Cloud Sync",
+        "RETRO_THRUSTERS": "Retro takia lentomekaniikka",
+        "RECENT": "Viimeaikaiset",
+        "START_NEW_CHAT": "Aloita uusi chat",
+        "BACK": "Takaisin",
+        "CALL": "Soita",
+        "MORE": "Lisää",
+        "SEND_MESSAGE": "Lähetä viesti",
+        "REPLY_PLACEHOLDER": "Tyyppi ja enter sanoman lähettäminen",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Ota xCALLY liikkeen tuki",
+        "EXPIRATION_DATE": "Viimeinen käyttöpäivä",
+        "EXPIRATION_REASON": "Viimeinen syy",
+        "LICENSE": "Lisenssi",
+        "NEW_TOKEN": "Uusi etätunnistin",
+        "OLD_TOKEN": "Vanha etätunnistin",
+        "SEND_EMAIL_TO": "Lähettää sähköpostia"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/fr.json b/public/app/quick-panel/i18n/fr.json
new file mode 100644 (file)
index 0000000..2f2eac0
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "Aujourd'hui",
+        "MONDAY": "Lundi",
+        "TUESDAY": "Mardi",
+        "WEDNESDAY": "Mercredi",
+        "THURSDAY": "Jeudi",
+        "FRIDAY": "Vendredi",
+        "SATURDAY": "Samedi",
+        "SUNDAY": "Dimanche",
+        "JANUARY": "Janvier",
+        "FEBRUARY": "Février",
+        "MARCH": "Mars",
+        "APRIL": "Avril",
+        "MAY": "Peut",
+        "JUNE": "Juin",
+        "JULY": "Juillet",
+        "AUGUST": "Août",
+        "SEPTEMBER": "Septembre",
+        "OCTOBER": "Octobre",
+        "NOVEMBER": "Novembre",
+        "DECEMBER": "Décembre",
+        "CHAT": "CHAT",
+        "ACTIVITY": "Activité",
+        "FRIENDS": "Les amis",
+        "APP_SERVERS": "Les serveurs d'application",
+        "USER_STATS": "Statistiques des utilisateurs",
+        "EVENTS": "Events",
+        "NOTES": "Note",
+        "QUICK_SETTINGS": "Paramètres rapides",
+        "NOTIFICATIONS": "Notifications Me",
+        "CLOUD_SYNC": "Cloud Sync",
+        "RETRO_THRUSTERS": "Propulseurs rétro",
+        "RECENT": "Les récentes",
+        "START_NEW_CHAT": "Démarrer nouveau chat",
+        "BACK": "Retour",
+        "CALL": "Appel",
+        "MORE": "Plus",
+        "SEND_MESSAGE": "Envoyer un message",
+        "REPLY_PLACEHOLDER": "Type et appuyez sur Entrée pour envoyer un message",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Contactez xCALLY Soutien Motion",
+        "EXPIRATION_DATE": "Date d'expiration",
+        "EXPIRATION_REASON": "Raison d'expiration",
+        "LICENSE": "La licence",
+        "NEW_TOKEN": "Nouveau jeton",
+        "OLD_TOKEN": "Jeton ancien",
+        "SEND_EMAIL_TO": "Envoyez un courriel à"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/hi.json b/public/app/quick-panel/i18n/hi.json
new file mode 100644 (file)
index 0000000..2a92f53
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "आज",
+        "MONDAY": "सोमवार को",
+        "TUESDAY": "मंगलवार",
+        "WEDNESDAY": "बुधवार",
+        "THURSDAY": "बृहस्पतिवार",
+        "FRIDAY": "शुक्रवार को",
+        "SATURDAY": "शनिवार को",
+        "SUNDAY": "रविवार को",
+        "JANUARY": "जनवरी",
+        "FEBRUARY": "फरवरी",
+        "MARCH": "मार्च",
+        "APRIL": "अप्रैल",
+        "MAY": "मई",
+        "JUNE": "जून",
+        "JULY": "जुलाई",
+        "AUGUST": "अगस्त",
+        "SEPTEMBER": "सितम्बर",
+        "OCTOBER": "अक्टूबर",
+        "NOVEMBER": "नवम्बर",
+        "DECEMBER": "दिसम्बर",
+        "CHAT": "चैट",
+        "ACTIVITY": "गतिविधि",
+        "FRIENDS": "मित्रों",
+        "APP_SERVERS": "अनुप्रयोग सर्वर",
+        "USER_STATS": "उपयोगकर्ता आंकड़े",
+        "EVENTS": "घटनाक्रम",
+        "NOTES": "करती",
+        "QUICK_SETTINGS": "त्वरित सेटिंग्स",
+        "NOTIFICATIONS": "सूचनाएं",
+        "CLOUD_SYNC": "बादल सिंक",
+        "RETRO_THRUSTERS": "रेट्रो Thrusters",
+        "RECENT": "हाल में",
+        "START_NEW_CHAT": "नई चैट प्रारंभ करें",
+        "BACK": "वापिस",
+        "CALL": "कॉल",
+        "MORE": "अधिक",
+        "SEND_MESSAGE": "इसे संदेश भेजें",
+        "REPLY_PLACEHOLDER": "संदेश भेजने में प्रवेश हुआ और लिखें",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "संपर्क xCALLY प्रस्ताव का समर्थन",
+        "EXPIRATION_DATE": "समाप्ति दिनांक",
+        "EXPIRATION_REASON": "अधीना कारण",
+        "LICENSE": "लाइसेंस",
+        "NEW_TOKEN": "नया टोकन",
+        "OLD_TOKEN": "प्राचीन सांकेतिक",
+        "SEND_EMAIL_TO": "को ईमेल भेजें"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/it.json b/public/app/quick-panel/i18n/it.json
new file mode 100644 (file)
index 0000000..2e3e933
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "OGGI",
+        "MONDAY": "Lunedì",
+        "TUESDAY": "Martedì",
+        "WEDNESDAY": "Mercoledì",
+        "THURSDAY": "Giovedì",
+        "FRIDAY": "Venerdì",
+        "SATURDAY": "Sabato",
+        "SUNDAY": "Domenica",
+        "JANUARY": "Gennaio",
+        "FEBRUARY": "Febbraio",
+        "MARCH": "Marzo",
+        "APRIL": "Aprile",
+        "MAY": "Maggio",
+        "JUNE": "Giugno",
+        "JULY": "Luglio",
+        "AUGUST": "Agosto",
+        "SEPTEMBER": "Settembre",
+        "OCTOBER": "Ottobre",
+        "NOVEMBER": "Novembre",
+        "DECEMBER": "Dicembre",
+        "CHAT": "CHAT",
+        "ACTIVITY": "ATTIVITA",
+        "FRIENDS": "Amici",
+        "APP_SERVERS": "Application Servers",
+        "USER_STATS": "Statistiche Utenti",
+        "EVENTS": "Eventi",
+        "NOTES": "Note",
+        "QUICK_SETTINGS": "Impostazioni Veloci",
+        "NOTIFICATIONS": "Notifiche",
+        "CLOUD_SYNC": "Cloud Sync",
+        "RETRO_THRUSTERS": "Retro Thrusters",
+        "RECENT": "Recenti",
+        "START_NEW_CHAT": "Inizia nuova Chat",
+        "BACK": "Indietro",
+        "CALL": "Chiamata",
+        "MORE": "More",
+        "SEND_MESSAGE": "Invia Messaggio",
+        "REPLY_PLACEHOLDER": "Scrivi e premi Invio per inviare il messaggio",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Contatta il Supporto di xCALLY Motion",
+        "EXPIRATION_DATE": "Data di scadenza",
+        "EXPIRATION_REASON": "Motivo di scadenza",
+        "LICENSE": "Licenza",
+        "NEW_TOKEN": "Nuovo Token",
+        "OLD_TOKEN": "Vecchio Token",
+        "SEND_EMAIL_TO": "Invia Email a"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/ja.json b/public/app/quick-panel/i18n/ja.json
new file mode 100644 (file)
index 0000000..de5f74e
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "今日",
+        "MONDAY": "月曜日",
+        "TUESDAY": "火曜日",
+        "WEDNESDAY": "水曜日",
+        "THURSDAY": "木曜日",
+        "FRIDAY": "金曜日",
+        "SATURDAY": "土曜日",
+        "SUNDAY": "日曜日",
+        "JANUARY": "1 月",
+        "FEBRUARY": "2 月",
+        "MARCH": "3 月",
+        "APRIL": "4 月",
+        "MAY": "お",
+        "JUNE": "6 月",
+        "JULY": "7 月",
+        "AUGUST": "8 月",
+        "SEPTEMBER": "9 月",
+        "OCTOBER": "10 月",
+        "NOVEMBER": "11 月",
+        "DECEMBER": "12 月",
+        "CHAT": "チャット",
+        "ACTIVITY": "アクティビティ",
+        "FRIENDS": "友達",
+        "APP_SERVERS": "アプリケーションサーバ",
+        "USER_STATS": "ユーザの統計情報",
+        "EVENTS": "イベント",
+        "NOTES": "ノート",
+        "QUICK_SETTINGS": "クイック設定",
+        "NOTIFICATIONS": "通知",
+        "CLOUD_SYNC": "クラウド同期",
+        "RETRO_THRUSTERS": "レトロスラスタ",
+        "RECENT": "最近の",
+        "START_NEW_CHAT": "新しいチャットを開始",
+        "BACK": "背面",
+        "CALL": "コール",
+        "MORE": "詳細",
+        "SEND_MESSAGE": "メッセージを送信する",
+        "REPLY_PLACEHOLDER": "入力したメッセージを送信するにを入力します。",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "XCALLY モーションサポートにお問い合わせください",
+        "EXPIRATION_DATE": "有効期限日",
+        "EXPIRATION_REASON": "有効期限の理由",
+        "LICENSE": "ライセンス",
+        "NEW_TOKEN": "新しいトークン",
+        "OLD_TOKEN": "古いトークン",
+        "SEND_EMAIL_TO": "に電子メールを送信します"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/ko.json b/public/app/quick-panel/i18n/ko.json
new file mode 100644 (file)
index 0000000..043b50a
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "오늘",
+        "MONDAY": "월요일",
+        "TUESDAY": "화요일",
+        "WEDNESDAY": "수요일",
+        "THURSDAY": "목요일",
+        "FRIDAY": "금요일",
+        "SATURDAY": "토요일",
+        "SUNDAY": "일요일",
+        "JANUARY": "1월",
+        "FEBRUARY": "2월",
+        "MARCH": "3월",
+        "APRIL": "4월",
+        "MAY": "5월",
+        "JUNE": "6월",
+        "JULY": "7월",
+        "AUGUST": "8월",
+        "SEPTEMBER": "9월",
+        "OCTOBER": "10월",
+        "NOVEMBER": "11월",
+        "DECEMBER": "12월",
+        "CHAT": "채팅",
+        "ACTIVITY": "활동",
+        "FRIENDS": "친구",
+        "APP_SERVERS": "애플리케이션 서버",
+        "USER_STATS": "사용자 통계",
+        "EVENTS": "이벤트",
+        "NOTES": "메모",
+        "QUICK_SETTINGS": "빠른 설정",
+        "NOTIFICATIONS": "알림",
+        "CLOUD_SYNC": "클라우드 동기화",
+        "RETRO_THRUSTERS": "레트로 시카고 컵스의 마크 프라이어 타석 때는",
+        "RECENT": "최근",
+        "START_NEW_CHAT": "새 채팅 시작",
+        "BACK": "후면",
+        "CALL": "통화",
+        "MORE": "자세한",
+        "SEND_MESSAGE": "메시지 보내기",
+        "REPLY_PLACEHOLDER": "메시지 전송을 입력한 후 Enter를 누릅니다",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Xcally 동작 지원 문의",
+        "EXPIRATION_DATE": "만료 날짜",
+        "EXPIRATION_REASON": "만료 사유",
+        "LICENSE": "라이센스",
+        "NEW_TOKEN": "새 토큰",
+        "OLD_TOKEN": "오래된 토큰",
+        "SEND_EMAIL_TO": "전자 메일을 보내십시오."
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/nl.json b/public/app/quick-panel/i18n/nl.json
new file mode 100644 (file)
index 0000000..c4c4c07
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "Vandaag",
+        "MONDAY": "Maandag",
+        "TUESDAY": "Dinsdag",
+        "WEDNESDAY": "Woensdag",
+        "THURSDAY": "Donderdag",
+        "FRIDAY": "Vrijdag",
+        "SATURDAY": "Zaterdag",
+        "SUNDAY": "Zondag",
+        "JANUARY": "Januari",
+        "FEBRUARY": "Februari",
+        "MARCH": "Maart",
+        "APRIL": "April",
+        "MAY": "Mei",
+        "JUNE": "Juni",
+        "JULY": "Juli",
+        "AUGUST": "Augustus",
+        "SEPTEMBER": "September",
+        "OCTOBER": "Oktober",
+        "NOVEMBER": "November",
+        "DECEMBER": "December",
+        "CHAT": "CHAT",
+        "ACTIVITY": "Activiteit",
+        "FRIENDS": "Vrienden",
+        "APP_SERVERS": "Toepassingsservers",
+        "USER_STATS": "Gebruikersstatistieken",
+        "EVENTS": "Evenementen",
+        "NOTES": "Aantekeningen",
+        "QUICK_SETTINGS": "Snelle instellingen",
+        "NOTIFICATIONS": "Notificaties",
+        "CLOUD_SYNC": "Cloud Sync",
+        "RETRO_THRUSTERS": "Retro Thrusters",
+        "RECENT": "Recente",
+        "START_NEW_CHAT": "Nieuwe chatsessie starten",
+        "BACK": "Terug",
+        "CALL": "Gesprek",
+        "MORE": "Meer",
+        "SEND_MESSAGE": "Bericht verzenden",
+        "REPLY_PLACEHOLDER": "Typ en druk op enter om het bericht te verzenden",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Contact xCALLY Motion Support",
+        "EXPIRATION_DATE": "Vervaldatum",
+        "EXPIRATION_REASON": "Expiratie reden",
+        "LICENSE": "Licentie",
+        "NEW_TOKEN": "Nieuwe Token",
+        "OLD_TOKEN": "Oude Token",
+        "SEND_EMAIL_TO": "Stuur een email naar"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/no.json b/public/app/quick-panel/i18n/no.json
new file mode 100644 (file)
index 0000000..6c78a6f
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "I DAG",
+        "MONDAY": "Mandag",
+        "TUESDAY": "Tirsdag",
+        "WEDNESDAY": "Onsdag",
+        "THURSDAY": "Torsdag",
+        "FRIDAY": "Fredag",
+        "SATURDAY": "Lørdag",
+        "SUNDAY": "Søndag",
+        "JANUARY": "Januar",
+        "FEBRUARY": "Februar",
+        "MARCH": "Mars",
+        "APRIL": "April",
+        "MAY": "Kan",
+        "JUNE": "Juni",
+        "JULY": "Juli",
+        "AUGUST": "August",
+        "SEPTEMBER": "September",
+        "OCTOBER": "Oktober",
+        "NOVEMBER": "November",
+        "DECEMBER": "Desember",
+        "CHAT": "CHAT",
+        "ACTIVITY": "Aktiviteten",
+        "FRIENDS": "Venner",
+        "APP_SERVERS": "Programmet servere",
+        "USER_STATS": "Brukerstatistikk",
+        "EVENTS": "Hendelser",
+        "NOTES": "Merknader",
+        "QUICK_SETTINGS": "Rask innstillinger",
+        "NOTIFICATIONS": "Notifications",
+        "CLOUD_SYNC": "Cloud Sync",
+        "RETRO_THRUSTERS": "Retro trustere",
+        "RECENT": "Siste",
+        "START_NEW_CHAT": "Start ny chat",
+        "BACK": "Tilbake",
+        "CALL": "Anrop",
+        "MORE": "Mer",
+        "SEND_MESSAGE": "Send melding",
+        "REPLY_PLACEHOLDER": "Skriv inn og trykk Enter for å sende meldingen",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Kontakt xCALLY motion-støtte",
+        "EXPIRATION_DATE": "Utløpsdato",
+        "EXPIRATION_REASON": "Utløpsdato årsak",
+        "LICENSE": "Lisens",
+        "NEW_TOKEN": "Ny brikke",
+        "OLD_TOKEN": "Gamle brikke",
+        "SEND_EMAIL_TO": "Send e-post til"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/pt-PT.json b/public/app/quick-panel/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..fcc25ec
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "Hoje",
+        "MONDAY": "Segunda-feira",
+        "TUESDAY": "Terça-feira",
+        "WEDNESDAY": "Quarta-feira",
+        "THURSDAY": "Quinta-feira",
+        "FRIDAY": "Sexta-feira",
+        "SATURDAY": "Sábado",
+        "SUNDAY": "Domingo",
+        "JANUARY": "De janeiro de",
+        "FEBRUARY": "De fevereiro",
+        "MARCH": "De Março",
+        "APRIL": "De abril",
+        "MAY": "De Maio",
+        "JUNE": "De Junho",
+        "JULY": "De julho",
+        "AUGUST": "De agosto",
+        "SEPTEMBER": "De setembro",
+        "OCTOBER": "De outubro de",
+        "NOVEMBER": "Novembro de",
+        "DECEMBER": "De dezembro de",
+        "CHAT": "Bate-papo",
+        "ACTIVITY": "Actividade",
+        "FRIENDS": "Amigos",
+        "APP_SERVERS": "Servidores de aplicativos",
+        "USER_STATS": "Estatísticas do usuário",
+        "EVENTS": "Eventos",
+        "NOTES": "Notas",
+        "QUICK_SETTINGS": "Configurações rápidas",
+        "NOTIFICATIONS": "Notificações",
+        "CLOUD_SYNC": "Sincronização de nuvem",
+        "RETRO_THRUSTERS": "Retro propulsores",
+        "RECENT": "Recentes",
+        "START_NEW_CHAT": "Iniciar Nova Conversação",
+        "BACK": "De volta",
+        "CALL": "Chamada",
+        "MORE": "Mais",
+        "SEND_MESSAGE": "Enviar mensagem",
+        "REPLY_PLACEHOLDER": "Tipo e pressione Enter para enviar a mensagem",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Entre em contato com o suporte de movimento xCALLY",
+        "EXPIRATION_DATE": "Data de Expiração",
+        "EXPIRATION_REASON": "Motivo de expiração",
+        "LICENSE": "Licença",
+        "NEW_TOKEN": "Novo Token",
+        "OLD_TOKEN": "Token de antigo",
+        "SEND_EMAIL_TO": "Enviar Email Para"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/ru.json b/public/app/quick-panel/i18n/ru.json
new file mode 100644 (file)
index 0000000..91eb70e
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "Сегодня",
+        "MONDAY": "Понедельник",
+        "TUESDAY": "Во вторник",
+        "WEDNESDAY": "Среду",
+        "THURSDAY": "Четверг",
+        "FRIDAY": "Пятница",
+        "SATURDAY": "Суббота",
+        "SUNDAY": "Воскресенье",
+        "JANUARY": "Январь",
+        "FEBRUARY": "Февраля",
+        "MARCH": "Марта",
+        "APRIL": "Апреля",
+        "MAY": "Мая",
+        "JUNE": "Июнь",
+        "JULY": "Июля",
+        "AUGUST": "Августа",
+        "SEPTEMBER": "Сентябрь",
+        "OCTOBER": "Октября",
+        "NOVEMBER": "Ноябрь",
+        "DECEMBER": "Декабрь",
+        "CHAT": "Чат",
+        "ACTIVITY": "Вид деятельности",
+        "FRIENDS": "Друзья",
+        "APP_SERVERS": "Серверы приложений",
+        "USER_STATS": "Статистика пользователя",
+        "EVENTS": "События",
+        "NOTES": "Примечания",
+        "QUICK_SETTINGS": "Быстрые настройки",
+        "NOTIFICATIONS": "Уведомления",
+        "CLOUD_SYNC": "Cloud Sync",
+        "RETRO_THRUSTERS": "Ретро ускорители",
+        "RECENT": "В последнее время",
+        "START_NEW_CHAT": "Начать новый сеанс чата",
+        "BACK": "Назад",
+        "CALL": "Вызов",
+        "MORE": "Более",
+        "SEND_MESSAGE": "Отправить сообщение",
+        "REPLY_PLACEHOLDER": "Тип и нажмите enter для отправки сообщения",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Контакт xCALLY поддержки движения",
+        "EXPIRATION_DATE": "Дата окончания срока действия",
+        "EXPIRATION_REASON": "Причина истечения срока действия",
+        "LICENSE": "Лицензии",
+        "NEW_TOKEN": "Новый маркер",
+        "OLD_TOKEN": "Старый маркер",
+        "SEND_EMAIL_TO": "Отправьте сообщение электронной почты на адрес"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/sv.json b/public/app/quick-panel/i18n/sv.json
new file mode 100644 (file)
index 0000000..a05f2ec
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "Idag",
+        "MONDAY": "Måndag",
+        "TUESDAY": "Tisdag",
+        "WEDNESDAY": "Onsdag",
+        "THURSDAY": "Torsdag",
+        "FRIDAY": "Fredag",
+        "SATURDAY": "Lördag",
+        "SUNDAY": "Söndag",
+        "JANUARY": "Januari",
+        "FEBRUARY": "Februari",
+        "MARCH": "Mars",
+        "APRIL": "April",
+        "MAY": "Kan",
+        "JUNE": "Juni",
+        "JULY": "Juli",
+        "AUGUST": "Augusti",
+        "SEPTEMBER": "September",
+        "OCTOBER": "Oktober",
+        "NOVEMBER": "November",
+        "DECEMBER": "December",
+        "CHAT": "Chatt",
+        "ACTIVITY": "Aktivitet",
+        "FRIENDS": "Vänner",
+        "APP_SERVERS": "Programservrar",
+        "USER_STATS": "Användarstatistik",
+        "EVENTS": "Händelser",
+        "NOTES": "Anteckningar",
+        "QUICK_SETTINGS": "Snabbinställningar",
+        "NOTIFICATIONS": "Notifiering",
+        "CLOUD_SYNC": "Cloud Sync",
+        "RETRO_THRUSTERS": "Retro styrpropellrar",
+        "RECENT": "Senaste",
+        "START_NEW_CHAT": "Starta en ny chatt",
+        "BACK": "Tillbaka",
+        "CALL": "Samtal",
+        "MORE": "Mer",
+        "SEND_MESSAGE": "Skicka meddelande",
+        "REPLY_PLACEHOLDER": "Typ och tryck enter för att skicka meddelandet",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Kontakta xCALLY Motion stöd",
+        "EXPIRATION_DATE": "Utgångsdatum",
+        "EXPIRATION_REASON": "Utgångsdatum anledning",
+        "LICENSE": "Licens",
+        "NEW_TOKEN": "Nytt token",
+        "OLD_TOKEN": "Gamla token",
+        "SEND_EMAIL_TO": "Skicka e-post till"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/tr.json b/public/app/quick-panel/i18n/tr.json
new file mode 100644 (file)
index 0000000..c8c99c6
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "Bugün",
+        "MONDAY": "Pazartesi",
+        "TUESDAY": "Salı",
+        "WEDNESDAY": "Çarşamba",
+        "THURSDAY": "Perşembe",
+        "FRIDAY": "Cuma",
+        "SATURDAY": "Cumartesi",
+        "SUNDAY": "Pazar",
+        "JANUARY": "Ocak",
+        "FEBRUARY": "Şubat",
+        "MARCH": "Mart",
+        "APRIL": "Nisan",
+        "MAY": "Gerekebilir",
+        "JUNE": "Haziran",
+        "JULY": "Temmuz",
+        "AUGUST": "Ağustos",
+        "SEPTEMBER": "Eylül",
+        "OCTOBER": "Ekim",
+        "NOVEMBER": "Kasım",
+        "DECEMBER": "Aralık",
+        "CHAT": "Sohbet",
+        "ACTIVITY": "Etkinlik",
+        "FRIENDS": "Arkadaşlar",
+        "APP_SERVERS": "Uygulama Sunucuları",
+        "USER_STATS": "Kullanıcı istatistikleri",
+        "EVENTS": "Etkinlikler",
+        "NOTES": "Notlar",
+        "QUICK_SETTINGS": "Hızlı Ayarlar",
+        "NOTIFICATIONS": "Bildirimleri",
+        "CLOUD_SYNC": "Bulut Eşitleme",
+        "RETRO_THRUSTERS": "Retro Thrusters",
+        "RECENT": "Son",
+        "START_NEW_CHAT": "Yeni Sohbet Başlat",
+        "BACK": "Geri",
+        "CALL": "Arama",
+        "MORE": "Daha fazla",
+        "SEND_MESSAGE": "Mesaj Gönder",
+        "REPLY_PLACEHOLDER": "Tipi ve hit girin mesaj gönder",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "Kişi xCALLY Hareket Desteği",
+        "EXPIRATION_DATE": "Süre Sonu Tarihi",
+        "EXPIRATION_REASON": "Sona erme nedeni",
+        "LICENSE": "Lisans",
+        "NEW_TOKEN": "Yeni Kart",
+        "OLD_TOKEN": "Eski Kart",
+        "SEND_EMAIL_TO": "E-Posta Gönder"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/zh-CN.json b/public/app/quick-panel/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..36873a5
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "今天",
+        "MONDAY": "星期一",
+        "TUESDAY": "星期二",
+        "WEDNESDAY": "周三",
+        "THURSDAY": "星期四",
+        "FRIDAY": "星期五",
+        "SATURDAY": "星期六",
+        "SUNDAY": "星期日",
+        "JANUARY": "1月",
+        "FEBRUARY": "2月",
+        "MARCH": "3 月",
+        "APRIL": "4月",
+        "MAY": "5 月",
+        "JUNE": "6月",
+        "JULY": "7月",
+        "AUGUST": "8月",
+        "SEPTEMBER": "9月",
+        "OCTOBER": "10月",
+        "NOVEMBER": "11月",
+        "DECEMBER": "12月",
+        "CHAT": "文本交谈",
+        "ACTIVITY": "活动",
+        "FRIENDS": "朋友",
+        "APP_SERVERS": "应用程序服务器",
+        "USER_STATS": "用户统计数据",
+        "EVENTS": "事件",
+        "NOTES": "备注",
+        "QUICK_SETTINGS": "快速设置",
+        "NOTIFICATIONS": "通知。",
+        "CLOUD_SYNC": "云同步",
+        "RETRO_THRUSTERS": "复古的推进器",
+        "RECENT": "最近的",
+        "START_NEW_CHAT": "开始新的聊天",
+        "BACK": "返回",
+        "CALL": "呼叫",
+        "MORE": "更多",
+        "SEND_MESSAGE": "发送消息",
+        "REPLY_PLACEHOLDER": "键入并按 Enter 键发送消息",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "联系 xCALLY 议案的支持。",
+        "EXPIRATION_DATE": "到期日期",
+        "EXPIRATION_REASON": "失效的原因",
+        "LICENSE": "许可证",
+        "NEW_TOKEN": "新的令牌",
+        "OLD_TOKEN": "旧令牌",
+        "SEND_EMAIL_TO": "发送电子邮件至"
+    }
+}
\ No newline at end of file
diff --git a/public/app/quick-panel/i18n/zh-TW.json b/public/app/quick-panel/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..56c47d8
--- /dev/null
@@ -0,0 +1,49 @@
+{
+    "QUICKPANEL": {
+        "TODAY": "¡ ] 今日 ¡ ^",
+        "MONDAY": "星期一",
+        "TUESDAY": "星期二",
+        "WEDNESDAY": "三",
+        "THURSDAY": "星期四",
+        "FRIDAY": "星期五",
+        "SATURDAY": "星期六",
+        "SUNDAY": "星期日",
+        "JANUARY": "1 月 1 日",
+        "FEBRUARY": "2 月",
+        "MARCH": "3 月",
+        "APRIL": "4 月",
+        "MAY": "可能",
+        "JUNE": "6 月",
+        "JULY": "7 月",
+        "AUGUST": "8",
+        "SEPTEMBER": "2008 年 9 月",
+        "OCTOBER": "10",
+        "NOVEMBER": "11",
+        "DECEMBER": "十二月",
+        "CHAT": "文字交談",
+        "ACTIVITY": "活動",
+        "FRIENDS": "朋友",
+        "APP_SERVERS": "應用程式伺服器",
+        "USER_STATS": "使用者統計資料",
+        "EVENTS": "活動",
+        "NOTES": "注意事項",
+        "QUICK_SETTINGS": "快速設定",
+        "NOTIFICATIONS": "通知",
+        "CLOUD_SYNC": "雲端同步處理",
+        "RETRO_THRUSTERS": "復古 Thrusters",
+        "RECENT": "最新",
+        "START_NEW_CHAT": "開始新的文字交談",
+        "BACK": "備份",
+        "CALL": "通話",
+        "MORE": "更多資訊",
+        "SEND_MESSAGE": "傳送訊息",
+        "REPLY_PLACEHOLDER": "類型並按下 Enter 鍵以傳送訊息",
+        "CONTACT_XCALLY_MOTION_SUPPORT": "聯絡 xCALLY 動態技術支援",
+        "EXPIRATION_DATE": "到期日",
+        "EXPIRATION_REASON": "逾期原因",
+        "LICENSE": "授權",
+        "NEW_TOKEN": "新權杖",
+        "OLD_TOKEN": "舊權杖",
+        "SEND_EMAIL_TO": "傳送電子郵件至"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/da.json b/public/app/toolbar/i18n/da.json
new file mode 100644 (file)
index 0000000..7a2d205
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Skifte navigation",
+        "TOGGLE_NAVIGATION_FOLD": "Skifte navigation fold",
+        "TOGGLE_NAVIGATION_MODE": "Skifte navigationstilstand",
+        "SEARCH": "Søg",
+        "USER_SETTINGS": "Brugerindstillinger",
+        "TOGGLE_QUICK_PANEL": "Slå hurtig panel",
+        "ENGLISH": "Engelsk",
+        "ITALIAN": "Italiensk",
+        "FRENCH": "Fransk",
+        "KOREAN": "Koreansk",
+        "SPANISH": "Spansk",
+        "SWEDISH": "Svensk",
+        "RUSSIAN": "Russisk",
+        "GERMAN": "Tysk",
+        "JAPANESE": "Japansk",
+        "CHINESESIMPLIFIED": "Kinesisk (simplificeret) Kinesisk (traditionelt)",
+        "CHINESETRADITIONAL": "Traditionelt kinesisk",
+        "DUTCH": "Hollandsk",
+        "FINNISH": "Finsk",
+        "DANISH": "Dansk",
+        "PORTUGUESE": "Portugisisk",
+        "NORWEGIAN": "Norske",
+        "HINDI": "Hindi",
+        "TURKISH": "Tyrkisk",
+        "PERSIAN": "Persisk",
+        "LOGIN_TIME": "Login tid",
+        "PAUSE_TIME": "Pausetid",
+        "PREVIEW": "Preview",
+        "CONFIRM_PASSWORD": "Bekræft adgangskode",
+        "NEW_PASSWORD": "Ny adgangskode",
+        "OLD_PASSWORD": "Gammel adgangskode",
+        "SAVE": "Gem",
+        "TRIAL_VERSION": "Prøveversion"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/de.json b/public/app/toolbar/i18n/de.json
new file mode 100644 (file)
index 0000000..c58a952
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Navigation wechseln",
+        "TOGGLE_NAVIGATION_FOLD": "Navigation wechseln Fach",
+        "TOGGLE_NAVIGATION_MODE": "Navigation Modus umschalten",
+        "SEARCH": "Suche",
+        "USER_SETTINGS": "Benutzereinstellungen",
+        "TOGGLE_QUICK_PANEL": "Um schnelle Panel",
+        "ENGLISH": "Englisch",
+        "ITALIAN": "Italienisch",
+        "FRENCH": "Französisch",
+        "KOREAN": "Koreanisch",
+        "SPANISH": "Spanisch",
+        "SWEDISH": "Schwedisch",
+        "RUSSIAN": "Russisch",
+        "GERMAN": "Deutsch",
+        "JAPANESE": "Japanisch",
+        "CHINESESIMPLIFIED": "Vereinfachtes Chinesisch",
+        "CHINESETRADITIONAL": "Traditionelles Chinesisch",
+        "DUTCH": "Niederländisch",
+        "FINNISH": "Finnische",
+        "DANISH": "Dänisch",
+        "PORTUGUESE": "Portugiesisch",
+        "NORWEGIAN": "Norwegisch",
+        "HINDI": "Hindi",
+        "TURKISH": "Türkisch",
+        "PERSIAN": "Persisch",
+        "LOGIN_TIME": "Login Zeit",
+        "PAUSE_TIME": "Pausenzeit",
+        "PREVIEW": "Vorschau",
+        "CONFIRM_PASSWORD": "Passwort bestätigen",
+        "NEW_PASSWORD": "Neues Passwort",
+        "OLD_PASSWORD": "Altes Passwort",
+        "SAVE": "Speichern",
+        "TRIAL_VERSION": "Testversion"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/en.json b/public/app/toolbar/i18n/en.json
new file mode 100644 (file)
index 0000000..d61314f
--- /dev/null
@@ -0,0 +1,40 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Toggle navigation",
+        "TOGGLE_NAVIGATION_FOLD": "Toggle navigation fold",
+        "TOGGLE_NAVIGATION_MODE": "Toggle navigation mode",
+        "SEARCH": "Search",
+        "USER_SETTINGS": "User settings",
+        "TOGGLE_QUICK_PANEL": "Toggle quick panel",
+        "SOMEONE_LOGGED_YOU_OUT": "Someone logged you out, do you want to stay logged?",
+        "STAY_LOGGED": "Stay logged",
+        "WARNING": "Warning",
+        "ENGLISH": "English",
+        "ITALIAN": "Italian",
+        "FRENCH": "French",
+        "KOREAN": "Korean",
+        "SPANISH": "Spanish",
+        "SWEDISH": "Swedish",
+        "RUSSIAN": "Russian",
+        "GERMAN": "German",
+        "JAPANESE": "Japanese",
+        "CHINESESIMPLIFIED": "Chinese Simplified",
+        "CHINESETRADITIONAL": "Chinese Traditional",
+        "DUTCH": "Dutch",
+        "FINNISH": "Finnish",
+        "DANISH": "Danish",
+        "PORTUGUESE": "Portuguese",
+        "NORWEGIAN": "Norwegian",
+        "HINDI": "Hindi",
+        "TURKISH": "Turkish",
+        "PERSIAN": "Persian",
+        "LOGIN_TIME": "Login Time",
+        "PAUSE_TIME": "Pause Time",
+        "PREVIEW": "Preview",
+        "CONFIRM_PASSWORD": "Confirm Password",
+        "NEW_PASSWORD": "New Password",
+        "OLD_PASSWORD": "Old Password",
+        "SAVE": "Save",
+        "TRIAL_VERSION": "Trial Version"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/es.json b/public/app/toolbar/i18n/es.json
new file mode 100644 (file)
index 0000000..9aafa58
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Alternar la navegación",
+        "TOGGLE_NAVIGATION_FOLD": "Alternar plegado de navegación",
+        "TOGGLE_NAVIGATION_MODE": "Alternar el modo de navegación",
+        "SEARCH": "Buscar",
+        "USER_SETTINGS": "La configuración de usuario",
+        "TOGGLE_QUICK_PANEL": "Panel Toggle Quick",
+        "ENGLISH": "Inglés",
+        "ITALIAN": "El italiano",
+        "FRENCH": "Francés",
+        "KOREAN": "Coreano",
+        "SPANISH": "Español",
+        "SWEDISH": "Sueco",
+        "RUSSIAN": "Federación",
+        "GERMAN": "Alemán",
+        "JAPANESE": "Japonés",
+        "CHINESESIMPLIFIED": "Chino simplificado.",
+        "CHINESETRADITIONAL": "Chino tradicional",
+        "DUTCH": "Holandés",
+        "FINNISH": "Finnish",
+        "DANISH": "Danés",
+        "PORTUGUESE": "Portugués",
+        "NORWEGIAN": "Noruego",
+        "HINDI": "Hindi",
+        "TURKISH": "Turco",
+        "PERSIAN": "El persa",
+        "LOGIN_TIME": "Hora de inicio de sesión",
+        "PAUSE_TIME": "Tiempo de pausa",
+        "PREVIEW": "Vista previa",
+        "CONFIRM_PASSWORD": "Confirmar contraseña",
+        "NEW_PASSWORD": "Nueva contraseña",
+        "OLD_PASSWORD": "Contraseña antigua.",
+        "SAVE": "Guardar",
+        "TRIAL_VERSION": "Versión de prueba"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/fa.json b/public/app/toolbar/i18n/fa.json
new file mode 100644 (file)
index 0000000..59c3456
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "می توانید سیستم كمكی ناوبری",
+        "TOGGLE_NAVIGATION_FOLD": "می توانید دفعه سیستم كمكی ناوبری",
+        "TOGGLE_NAVIGATION_MODE": "می توانید حالت سیستم كمكی ناوبری",
+        "SEARCH": "جستجو",
+        "USER_SETTINGS": "تنظیمات کاربر",
+        "TOGGLE_QUICK_PANEL": "خیلی سریع می توانید صفحه نشانگرها",
+        "ENGLISH": "زبان انگليسي",
+        "ITALIAN": "ايتاليايي",
+        "FRENCH": "فرانسه",
+        "KOREAN": "کره جنوبی",
+        "SPANISH": "اسپانيا",
+        "SWEDISH": "سوئدی ها",
+        "RUSSIAN": "روسي",
+        "GERMAN": "آلمان",
+        "JAPANESE": "ژاپن",
+        "CHINESESIMPLIFIED": "خلاصه چيني",
+        "CHINESETRADITIONAL": "سنتي چيني",
+        "DUTCH": "هلند",
+        "FINNISH": "فنلاندی",
+        "DANISH": "دانمارکی",
+        "PORTUGUESE": "پرتغال",
+        "NORWEGIAN": "نروژي",
+        "HINDI": "پوشد",
+        "TURKISH": "ترکی",
+        "PERSIAN": "فارسی",
+        "LOGIN_TIME": "در زمان ورود به سیستم",
+        "PAUSE_TIME": "زمان مکث",
+        "PREVIEW": "پیش نمایش",
+        "CONFIRM_PASSWORD": "تأیید رمز ورود",
+        "NEW_PASSWORD": "اسم رمز جدید",
+        "OLD_PASSWORD": "اسم رمز",
+        "SAVE": "ذخیره",
+        "TRIAL_VERSION": "نسخه آزمایشی"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/fi.json b/public/app/toolbar/i18n/fi.json
new file mode 100644 (file)
index 0000000..dc63367
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Vaihda navigointi",
+        "TOGGLE_NAVIGATION_FOLD": "Vaihda navigointijärjestelmän taitto",
+        "TOGGLE_NAVIGATION_MODE": "Vaihda navigoinnin käyttötila",
+        "SEARCH": "Haku",
+        "USER_SETTINGS": "Käyttäjän asetukset",
+        "TOGGLE_QUICK_PANEL": "Ota nopea paneeli",
+        "ENGLISH": "English",
+        "ITALIAN": "Italian",
+        "FRENCH": "Ranskan",
+        "KOREAN": "Korean",
+        "SPANISH": "Espanjan",
+        "SWEDISH": "Ruotsin",
+        "RUSSIAN": "Venäjän",
+        "GERMAN": "Saksan",
+        "JAPANESE": "Japanilainen",
+        "CHINESESIMPLIFIED": "Yksinkertaistettu kiina",
+        "CHINESETRADITIONAL": "Perinteinen kiina",
+        "DUTCH": "Hollannin",
+        "FINNISH": "Suomen",
+        "DANISH": "Tanskan",
+        "PORTUGUESE": "Portugalin",
+        "NORWEGIAN": "Norja",
+        "HINDI": "Hindin",
+        "TURKISH": "Turkin",
+        "PERSIAN": "Persialais",
+        "LOGIN_TIME": "Kirjaudu aika",
+        "PAUSE_TIME": "Tauon pituus",
+        "PREVIEW": "Esikatselu",
+        "CONFIRM_PASSWORD": "Vahvista salasana",
+        "NEW_PASSWORD": "Uusi salasana",
+        "OLD_PASSWORD": "Vanha salasana",
+        "SAVE": "Tallenna",
+        "TRIAL_VERSION": "Kokeiluversio"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/fr.json b/public/app/toolbar/i18n/fr.json
new file mode 100644 (file)
index 0000000..784b107
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Activer/désactiver la navigation",
+        "TOGGLE_NAVIGATION_FOLD": "Activer/désactiver la navigation fold",
+        "TOGGLE_NAVIGATION_MODE": "Basculer en mode navigation",
+        "SEARCH": "Recherchez",
+        "USER_SETTINGS": "Les paramètres de l'utilisateur",
+        "TOGGLE_QUICK_PANEL": "Basculer le panneau rapide",
+        "ENGLISH": "English",
+        "ITALIAN": "L'Italien",
+        "FRENCH": "Le Français",
+        "KOREAN": "Le coréen",
+        "SPANISH": "L'Espagnol",
+        "SWEDISH": "Swedish",
+        "RUSSIAN": "Fédération",
+        "GERMAN": "L'allemand",
+        "JAPANESE": "Japanese",
+        "CHINESESIMPLIFIED": "Chinois simplifié",
+        "CHINESETRADITIONAL": "Chinois traditionnel",
+        "DUTCH": "Dutch",
+        "FINNISH": "Finnish",
+        "DANISH": "Le danois",
+        "PORTUGUESE": "Le portugais",
+        "NORWEGIAN": "Norwegian",
+        "HINDI": "L'Hindi",
+        "TURKISH": "Bain turc",
+        "PERSIAN": "Persian",
+        "LOGIN_TIME": "Temps de connexion",
+        "PAUSE_TIME": "Temps de pause",
+        "PREVIEW": "Aperçu",
+        "CONFIRM_PASSWORD": "Confirmer le mot de passe",
+        "NEW_PASSWORD": "Nouveau mot de passe",
+        "OLD_PASSWORD": "L'ancien mot de passe",
+        "SAVE": "Sauvegarder",
+        "TRIAL_VERSION": "Version d'essai"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/hi.json b/public/app/toolbar/i18n/hi.json
new file mode 100644 (file)
index 0000000..291b080
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "नेविगेशन टॉगल करें",
+        "TOGGLE_NAVIGATION_FOLD": "नेविगेशन गुना टॉगल करें",
+        "TOGGLE_NAVIGATION_MODE": "नेविगेशन मोड को टॉगल करें",
+        "SEARCH": "खोज",
+        "USER_SETTINGS": "उपयोगकर्ता सेटिंग्स",
+        "TOGGLE_QUICK_PANEL": "टॉगल करने के लिए त्वरित पैनल",
+        "ENGLISH": "अंग्रेजी",
+        "ITALIAN": "इतालवी",
+        "FRENCH": "फ्रेंच",
+        "KOREAN": "कोरियाई",
+        "SPANISH": "स्पेन",
+        "SWEDISH": "स्वीडिश",
+        "RUSSIAN": "रूसी",
+        "GERMAN": "जर्मन",
+        "JAPANESE": "जापानी",
+        "CHINESESIMPLIFIED": "चीनी सरलीकृत",
+        "CHINESETRADITIONAL": "चीनी पारंपरिक",
+        "DUTCH": "डचों",
+        "FINNISH": "फ़िनिश",
+        "DANISH": "डेनिश",
+        "PORTUGUESE": "पुर्तगाल",
+        "NORWEGIAN": "नॉर्वेजियाई",
+        "HINDI": "हिंदी",
+        "TURKISH": "तुर्की",
+        "PERSIAN": "फारसी",
+        "LOGIN_TIME": "उस समय लॉग इन करें.",
+        "PAUSE_TIME": "उस समय रुकें.",
+        "PREVIEW": "पूर्वावलोकन",
+        "CONFIRM_PASSWORD": "पासवर्ड की पुष्टि करें:",
+        "NEW_PASSWORD": "नया पासवर्ड",
+        "OLD_PASSWORD": "पुराना पासवर्ड",
+        "SAVE": "सहेजें",
+        "TRIAL_VERSION": "परीक्षण संस्करण"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/it.json b/public/app/toolbar/i18n/it.json
new file mode 100644 (file)
index 0000000..d9dbeff
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Toggle navigation",
+        "TOGGLE_NAVIGATION_FOLD": "Toggle navigation fold",
+        "TOGGLE_NAVIGATION_MODE": "Toggle navigation mode",
+        "SEARCH": "Ricerca",
+        "USER_SETTINGS": "Impostazioni Utente",
+        "TOGGLE_QUICK_PANEL": "Toggle quick panel",
+        "ENGLISH": "Inglese",
+        "ITALIAN": "Italiano",
+        "FRENCH": "Francese",
+        "KOREAN": "Coreano",
+        "SPANISH": "Spagnolo",
+        "SWEDISH": "Svedese",
+        "RUSSIAN": "Russo",
+        "GERMAN": "Tedesco",
+        "JAPANESE": "Giapponese",
+        "CHINESESIMPLIFIED": "Cinese semplificato",
+        "CHINESETRADITIONAL": "Cinese tradizionale",
+        "DUTCH": "Olandese",
+        "FINNISH": "Finlandese",
+        "DANISH": "Danese",
+        "PORTUGUESE": "Portoghese",
+        "NORWEGIAN": "Norwegian",
+        "HINDI": "Hindi",
+        "TURKISH": "Turco",
+        "PERSIAN": "Persiano",
+        "LOGIN_TIME": "Tempo di Login",
+        "PAUSE_TIME": "Tempo di Pausa",
+        "PREVIEW": "Anteprima",
+        "CONFIRM_PASSWORD": "Conferma Password",
+        "NEW_PASSWORD": "Nuova Password",
+        "OLD_PASSWORD": "Vecchia Password",
+        "SAVE": "Salva",
+        "TRIAL_VERSION": "Versione di prova"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/ja.json b/public/app/toolbar/i18n/ja.json
new file mode 100644 (file)
index 0000000..7a9eda9
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "切り替えのナビゲーション",
+        "TOGGLE_NAVIGATION_FOLD": "切り替えナビゲーション折り",
+        "TOGGLE_NAVIGATION_MODE": "切り替えナビゲーションモード",
+        "SEARCH": "検索",
+        "USER_SETTINGS": "ユーザー設定",
+        "TOGGLE_QUICK_PANEL": "クイック切り替えパネル",
+        "ENGLISH": "英語",
+        "ITALIAN": "イタリア語",
+        "FRENCH": "フランス語",
+        "KOREAN": "韓国語",
+        "SPANISH": "スペイン語",
+        "SWEDISH": "スウェーデン語",
+        "RUSSIAN": "ロシア語",
+        "GERMAN": "ドイツ",
+        "JAPANESE": "日本",
+        "CHINESESIMPLIFIED": "簡体字中国語",
+        "CHINESETRADITIONAL": "中国の伝統的な",
+        "DUTCH": "オランダ語",
+        "FINNISH": "フィンランド語",
+        "DANISH": "デンマーク語",
+        "PORTUGUESE": "ポルトガル語",
+        "NORWEGIAN": "ノルウェー語",
+        "HINDI": "ヒンディー語",
+        "TURKISH": "トルコ語",
+        "PERSIAN": "ペルシャ",
+        "LOGIN_TIME": "ログイン時間",
+        "PAUSE_TIME": "一時停止時間",
+        "PREVIEW": "プレビュー",
+        "CONFIRM_PASSWORD": "パスワードを確認します",
+        "NEW_PASSWORD": "新しいパスワード",
+        "OLD_PASSWORD": "古いパスワード",
+        "SAVE": "保存",
+        "TRIAL_VERSION": "トライアルバージョン"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/ko.json b/public/app/toolbar/i18n/ko.json
new file mode 100644 (file)
index 0000000..0d90e29
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "토글 탐색",
+        "TOGGLE_NAVIGATION_FOLD": "토글 네비게이션 접기",
+        "TOGGLE_NAVIGATION_MODE": "토글 탐색 모드",
+        "SEARCH": "검색",
+        "USER_SETTINGS": "사용자 설정",
+        "TOGGLE_QUICK_PANEL": "퀵 패널 토글",
+        "ENGLISH": "영어",
+        "ITALIAN": "이탈리아",
+        "FRENCH": "프랑스",
+        "KOREAN": "한국",
+        "SPANISH": "스페인어",
+        "SWEDISH": "스웨덴어",
+        "RUSSIAN": "러시아어",
+        "GERMAN": "독일어",
+        "JAPANESE": "일본",
+        "CHINESESIMPLIFIED": "중국어 간체",
+        "CHINESETRADITIONAL": "중국어 번체",
+        "DUTCH": "네덜란드",
+        "FINNISH": "핀란드어",
+        "DANISH": "덴마크어",
+        "PORTUGUESE": "포르투갈",
+        "NORWEGIAN": "노르웨이",
+        "HINDI": "힌디어",
+        "TURKISH": "터키",
+        "PERSIAN": "페르시아",
+        "LOGIN_TIME": "로그인 시간",
+        "PAUSE_TIME": "일시 중지 시간",
+        "PREVIEW": "미리 보기",
+        "CONFIRM_PASSWORD": "암호 확인",
+        "NEW_PASSWORD": "새 암호",
+        "OLD_PASSWORD": "이전 암호",
+        "SAVE": "저장",
+        "TRIAL_VERSION": "평가판 버전"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/nl.json b/public/app/toolbar/i18n/nl.json
new file mode 100644 (file)
index 0000000..969d375
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Toggle navigatie",
+        "TOGGLE_NAVIGATION_FOLD": "Toggle navigation vouwen",
+        "TOGGLE_NAVIGATION_MODE": "Toggle navigatiemodus",
+        "SEARCH": "Zoeken",
+        "USER_SETTINGS": "Gebruikersinstellingen",
+        "TOGGLE_QUICK_PANEL": "Wisselen snel panel",
+        "ENGLISH": "Engels",
+        "ITALIAN": "Italiaans",
+        "FRENCH": "Frans",
+        "KOREAN": "Koreaans",
+        "SPANISH": "Spaans",
+        "SWEDISH": "Zweeds",
+        "RUSSIAN": "Russisch",
+        "GERMAN": "Duits",
+        "JAPANESE": "Japanse",
+        "CHINESESIMPLIFIED": "Vereenvoudigd Chinees",
+        "CHINESETRADITIONAL": "Traditioneel Chinees",
+        "DUTCH": "Nederlands",
+        "FINNISH": "Finse",
+        "DANISH": "Deens",
+        "PORTUGUESE": "Portugees",
+        "NORWEGIAN": "Noors",
+        "HINDI": "Hindi",
+        "TURKISH": "Turks",
+        "PERSIAN": "Perzische",
+        "LOGIN_TIME": "Aanmeldingstijd",
+        "PAUSE_TIME": "Pauzetijd",
+        "PREVIEW": "Afdrukvoorbeeld",
+        "CONFIRM_PASSWORD": "Wachtwoord bevestigen",
+        "NEW_PASSWORD": "Nieuw wachtwoord",
+        "OLD_PASSWORD": "Oud wachtwoord",
+        "SAVE": "Opslaan",
+        "TRIAL_VERSION": "Evaluatieversie"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/no.json b/public/app/toolbar/i18n/no.json
new file mode 100644 (file)
index 0000000..43b16a0
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Veksle navigering",
+        "TOGGLE_NAVIGATION_FOLD": "Veksle navigasjon bretting",
+        "TOGGLE_NAVIGATION_MODE": "Veksle navigering modus",
+        "SEARCH": "Søk",
+        "USER_SETTINGS": "Bruker innstillinger",
+        "TOGGLE_QUICK_PANEL": "Veksle raskt panel",
+        "ENGLISH": "Engelsk",
+        "ITALIAN": "Italiensk",
+        "FRENCH": "Fransk",
+        "KOREAN": "Koreansk",
+        "SPANISH": "Spansk",
+        "SWEDISH": "Svensk",
+        "RUSSIAN": "Russisk",
+        "GERMAN": "Tysk",
+        "JAPANESE": "Japansk",
+        "CHINESESIMPLIFIED": "Forenklet kinesisk",
+        "CHINESETRADITIONAL": "Tradisjonell kinesisk",
+        "DUTCH": "Nederlandsk",
+        "FINNISH": "Finsk",
+        "DANISH": "Dansk",
+        "PORTUGUESE": "Portugisisk",
+        "NORWEGIAN": "Norsk",
+        "HINDI": "Hindi",
+        "TURKISH": "Tyrkisk",
+        "PERSIAN": "Persiske",
+        "LOGIN_TIME": "Pålogging",
+        "PAUSE_TIME": "Pause tid",
+        "PREVIEW": "Forhåndsvisning",
+        "CONFIRM_PASSWORD": "Bekreft passord",
+        "NEW_PASSWORD": "Nytt passord",
+        "OLD_PASSWORD": "Gammelt passord",
+        "SAVE": "Lagre",
+        "TRIAL_VERSION": "Prøveversjon"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/pt-PT.json b/public/app/toolbar/i18n/pt-PT.json
new file mode 100644 (file)
index 0000000..26e98a2
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Alternar a navegação",
+        "TOGGLE_NAVIGATION_FOLD": "Alternar o recolhimento de navegação",
+        "TOGGLE_NAVIGATION_MODE": "Alternar entre o modo de navegação",
+        "SEARCH": "Pesquisar",
+        "USER_SETTINGS": "As configurações do usuário",
+        "TOGGLE_QUICK_PANEL": "Alternar o painel rápido",
+        "ENGLISH": "Inglês",
+        "ITALIAN": "Italiano",
+        "FRENCH": "Francês",
+        "KOREAN": "Coreano",
+        "SPANISH": "Espanhol",
+        "SWEDISH": "Sueco",
+        "RUSSIAN": "Rússia",
+        "GERMAN": "Alemão",
+        "JAPANESE": "Japonês",
+        "CHINESESIMPLIFIED": "Chinês simplificado",
+        "CHINESETRADITIONAL": "Chinês Tradicional",
+        "DUTCH": "Holandês",
+        "FINNISH": "Finlandês",
+        "DANISH": "Dinamarquês",
+        "PORTUGUESE": "Português",
+        "NORWEGIAN": "Norueguês",
+        "HINDI": "O Hindi",
+        "TURKISH": "Banho turco",
+        "PERSIAN": "Persa",
+        "LOGIN_TIME": "O tempo de início de sessão",
+        "PAUSE_TIME": "Tempo de pausa",
+        "PREVIEW": "Visualização",
+        "CONFIRM_PASSWORD": "Confirmar Senha",
+        "NEW_PASSWORD": "Nova Senha",
+        "OLD_PASSWORD": "Senha antiga",
+        "SAVE": "Salvar",
+        "TRIAL_VERSION": "Versão de teste"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/ru.json b/public/app/toolbar/i18n/ru.json
new file mode 100644 (file)
index 0000000..cbfb9e4
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Переключение системы навигации",
+        "TOGGLE_NAVIGATION_FOLD": "Переключения складывания системы навигации",
+        "TOGGLE_NAVIGATION_MODE": "Переключение в режим навигации",
+        "SEARCH": "Поиск",
+        "USER_SETTINGS": "Настройки пользователя",
+        "TOGGLE_QUICK_PANEL": "Переключения быстрые панели",
+        "ENGLISH": "На английском языке",
+        "ITALIAN": "Итальянский",
+        "FRENCH": "По-французски",
+        "KOREAN": "Корейский",
+        "SPANISH": "Испанский",
+        "SWEDISH": "Шведский",
+        "RUSSIAN": "Российская",
+        "GERMAN": "Немецкий",
+        "JAPANESE": "На японском языке",
+        "CHINESESIMPLIFIED": "Китайский упрощенный",
+        "CHINESETRADITIONAL": "Китайский традиционный",
+        "DUTCH": "Голландский",
+        "FINNISH": "Финский",
+        "DANISH": "Датский",
+        "PORTUGUESE": "Португальский",
+        "NORWEGIAN": "Норвежский",
+        "HINDI": "Хинди",
+        "TURKISH": "Турецкий",
+        "PERSIAN": "Персидский",
+        "LOGIN_TIME": "Время входа",
+        "PAUSE_TIME": "Время паузы",
+        "PREVIEW": "Предварительный просмотр",
+        "CONFIRM_PASSWORD": "Подтвердите пароль",
+        "NEW_PASSWORD": "Новый пароль",
+        "OLD_PASSWORD": "Старый пароль",
+        "SAVE": "Сохранить",
+        "TRIAL_VERSION": "Пробная версия"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/sv.json b/public/app/toolbar/i18n/sv.json
new file mode 100644 (file)
index 0000000..67dde62
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Växla mellan navigation",
+        "TOGGLE_NAVIGATION_FOLD": "Växla mellan navigation vik",
+        "TOGGLE_NAVIGATION_MODE": "Växla navigationsläge",
+        "SEARCH": "Sök",
+        "USER_SETTINGS": "Användarinställningar",
+        "TOGGLE_QUICK_PANEL": "Växla snabbt på instrumentpanelen",
+        "ENGLISH": "Engelska",
+        "ITALIAN": "Italienska",
+        "FRENCH": "Franska",
+        "KOREAN": "Koreanska",
+        "SPANISH": "Spanska",
+        "SWEDISH": "Svenska",
+        "RUSSIAN": "Ryska",
+        "GERMAN": "Tyska",
+        "JAPANESE": "Japanska",
+        "CHINESESIMPLIFIED": "Förenklad kinesiska",
+        "CHINESETRADITIONAL": "Traditionell kinesiska",
+        "DUTCH": "Holländska",
+        "FINNISH": "Finska",
+        "DANISH": "Danska",
+        "PORTUGUESE": "Portugisiska",
+        "NORWEGIAN": "Norska",
+        "HINDI": "Hindi",
+        "TURKISH": "Turkiska",
+        "PERSIAN": "Persiska",
+        "LOGIN_TIME": "Inloggningstid",
+        "PAUSE_TIME": "Uppehåll",
+        "PREVIEW": "Förhandsgranska",
+        "CONFIRM_PASSWORD": "Bekräfta lösenord",
+        "NEW_PASSWORD": "Nytt lösenord",
+        "OLD_PASSWORD": "Gammalt lösenord",
+        "SAVE": "Spara",
+        "TRIAL_VERSION": "Provversion"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/tr.json b/public/app/toolbar/i18n/tr.json
new file mode 100644 (file)
index 0000000..41b23b9
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "Geçiş seyir sistemi",
+        "TOGGLE_NAVIGATION_FOLD": "Geçiş seyir katlama",
+        "TOGGLE_NAVIGATION_MODE": "Geçiş seyir modu",
+        "SEARCH": "Arama",
+        "USER_SETTINGS": "Kullanıcı ayarları",
+        "TOGGLE_QUICK_PANEL": "Geçiş hızlı panel",
+        "ENGLISH": "İngilizce",
+        "ITALIAN": "İtalyan",
+        "FRENCH": "Fransızca",
+        "KOREAN": "Kore Dili",
+        "SPANISH": "İspanyolca",
+        "SWEDISH": "İsveççe",
+        "RUSSIAN": "Rusça",
+        "GERMAN": "Almanca",
+        "JAPANESE": "Japonca",
+        "CHINESESIMPLIFIED": "Basitleştirilmiş Çince",
+        "CHINESETRADITIONAL": "Geleneksel Çince",
+        "DUTCH": "Felemenkçe",
+        "FINNISH": "Finlandiya",
+        "DANISH": "Danimarka",
+        "PORTUGUESE": "Portekizce",
+        "NORWEGIAN": "Norveççe",
+        "HINDI": "Hintçe",
+        "TURKISH": "Türk",
+        "PERSIAN": "Basra",
+        "LOGIN_TIME": "Oturum Süresi",
+        "PAUSE_TIME": "Duraklatma Süresi",
+        "PREVIEW": "Önizleme",
+        "CONFIRM_PASSWORD": "Parolayı Onayla",
+        "NEW_PASSWORD": "Yeni Parola",
+        "OLD_PASSWORD": "Eski Parola",
+        "SAVE": "Kaydet",
+        "TRIAL_VERSION": "Deneme Sürümü"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/zh-CN.json b/public/app/toolbar/i18n/zh-CN.json
new file mode 100644 (file)
index 0000000..cf700b6
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "切换导航",
+        "TOGGLE_NAVIGATION_FOLD": "切换导航折叠",
+        "TOGGLE_NAVIGATION_MODE": "切换的导航模式。",
+        "SEARCH": "搜索",
+        "USER_SETTINGS": "用户设置",
+        "TOGGLE_QUICK_PANEL": "快速切换面板",
+        "ENGLISH": "英文",
+        "ITALIAN": "意大利语",
+        "FRENCH": "法国",
+        "KOREAN": "韩国",
+        "SPANISH": "西班牙文",
+        "SWEDISH": "瑞典语",
+        "RUSSIAN": "俄罗斯",
+        "GERMAN": "德国",
+        "JAPANESE": "日本",
+        "CHINESESIMPLIFIED": "简体中文",
+        "CHINESETRADITIONAL": "繁体中文",
+        "DUTCH": "荷兰语",
+        "FINNISH": "芬兰语",
+        "DANISH": "丹麦语",
+        "PORTUGUESE": "葡萄牙语",
+        "NORWEGIAN": "挪威语",
+        "HINDI": "印地语",
+        "TURKISH": "土耳其语",
+        "PERSIAN": "波斯文",
+        "LOGIN_TIME": "登录时间",
+        "PAUSE_TIME": "暂停时间",
+        "PREVIEW": "预览",
+        "CONFIRM_PASSWORD": "确认密码",
+        "NEW_PASSWORD": "新的密码。",
+        "OLD_PASSWORD": "旧的密码",
+        "SAVE": "保存",
+        "TRIAL_VERSION": "试用版本。"
+    }
+}
\ No newline at end of file
diff --git a/public/app/toolbar/i18n/zh-TW.json b/public/app/toolbar/i18n/zh-TW.json
new file mode 100644 (file)
index 0000000..6e17eb9
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "TOOLBAR": {
+        "TOGGLE_NAVIGATION": "切換瀏覽",
+        "TOGGLE_NAVIGATION_FOLD": "切換導覽摺疊",
+        "TOGGLE_NAVIGATION_MODE": "切換瀏覽模式",
+        "SEARCH": "搜尋",
+        "USER_SETTINGS": "使用者設定",
+        "TOGGLE_QUICK_PANEL": "快速切換面板",
+        "ENGLISH": "英文版",
+        "ITALIAN": "義大利文",
+        "FRENCH": "法文版",
+        "KOREAN": "韓文版",
+        "SPANISH": "西班牙文",
+        "SWEDISH": "瑞典文",
+        "RUSSIAN": "俄文版",
+        "GERMAN": "德文版",
+        "JAPANESE": "日文版",
+        "CHINESESIMPLIFIED": "簡體中文",
+        "CHINESETRADITIONAL": "繁體中文",
+        "DUTCH": "荷蘭文",
+        "FINNISH": "芬蘭文",
+        "DANISH": "丹麥文",
+        "PORTUGUESE": "葡萄牙文",
+        "NORWEGIAN": "挪威文",
+        "HINDI": "印度",
+        "TURKISH": "土耳其文",
+        "PERSIAN": "波斯",
+        "LOGIN_TIME": "登入時間",
+        "PAUSE_TIME": "暫停時間",
+        "PREVIEW": "預覽列印",
+        "CONFIRM_PASSWORD": "確認密碼",
+        "NEW_PASSWORD": "新密碼",
+        "OLD_PASSWORD": "舊密碼",
+        "SAVE": "儲存",
+        "TRIAL_VERSION": "免費試用版"
+    }
+}
\ No newline at end of file
diff --git a/public/assets/angular-material-assets/icons/avatar-icons.svg b/public/assets/angular-material-assets/icons/avatar-icons.svg
new file mode 100644 (file)
index 0000000..20bb670
--- /dev/null
@@ -0,0 +1,240 @@
+<svg><defs>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-1" x="128">
+        <path fill="#FF8A80" d="M0 0h128v128H0z"/>
+        <path fill="#FFE0B2"
+              d="M36.3 94.8c6.4 7.3 16.2 12.1 27.3 12.4 10.7-.3 20.3-4.7 26.7-11.6l.2.1c-17-13.3-12.9-23.4-8.5-28.6 1.3-1.2 2.8-2.5 4.4-3.9l13.1-11c1.5-1.2 2.6-3 2.9-5.1.6-4.4-2.5-8.4-6.9-9.1-1.5-.2-3 0-4.3.6-.3-1.3-.4-2.7-1.6-3.5-1.4-.9-2.8-1.7-4.2-2.5-7.1-3.9-14.9-6.6-23-7.9-5.4-.9-11-1.2-16.1.7-3.3 1.2-6.1 3.2-8.7 5.6-1.3 1.2-2.5 2.4-3.7 3.7l-1.8 1.9c-.3.3-.5.6-.8.8-.1.1-.2 0-.4.2.1.2.1.5.1.6-1-.3-2.1-.4-3.2-.2-4.4.6-7.5 4.7-6.9 9.1.3 2.1 1.3 3.8 2.8 5.1l11 9.3c1.8 1.5 3.3 3.8 4.6 5.7 1.5 2.3 2.8 4.9 3.5 7.6 1.7 6.8-.8 13.4-5.4 18.4-.5.6-1.1 1-1.4 1.7-.2.6-.4 1.3-.6 2-.4 1.5-.5 3.1-.3 4.6.4 3.1 1.8 6.1 4.1 8.2 3.3 3 8 4 12.4 4.5 5.2.6 10.5.7 15.7.2 4.5-.4 9.1-1.2 13-3.4 5.6-3.1 9.6-8.9 10.5-15.2M76.4 46c.9 0 1.6.7 1.6 1.6 0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6-.1-.9.7-1.6 1.6-1.6zm-25.7 0c.9 0 1.6.7 1.6 1.6 0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6-.1-.9.7-1.6 1.6-1.6z"/>
+        <path fill="#E0F7FA"
+              d="M105.3 106.1c-.9-1.3-1.3-1.9-1.3-1.9l-.2-.3c-.6-.9-1.2-1.7-1.9-2.4-3.2-3.5-7.3-5.4-11.4-5.7 0 0 .1 0 .1.1l-.2-.1c-6.4 6.9-16 11.3-26.7 11.6-11.2-.3-21.1-5.1-27.5-12.6-.1.2-.2.4-.2.5-3.1.9-6 2.7-8.4 5.4l-.2.2s-.5.6-1.5 1.7c-.9 1.1-2.2 2.6-3.7 4.5-3.1 3.9-7.2 9.5-11.7 16.6-.9 1.4-1.7 2.8-2.6 4.3h109.6c-3.4-7.1-6.5-12.8-8.9-16.9-1.5-2.2-2.6-3.8-3.3-5z"/>
+        <circle fill="#444" cx="76.3" cy="47.5" r="2"/>
+        <circle fill="#444" cx="50.7" cy="47.6" r="2"/>
+        <path fill="#444"
+              d="M48.1 27.4c4.5 5.9 15.5 12.1 42.4 8.4-2.2-6.9-6.8-12.6-12.6-16.4C95.1 20.9 92 10 92 10c-1.4 5.5-11.1 4.4-11.1 4.4H62.1c-1.7-.1-3.4 0-5.2.3-12.8 1.8-22.6 11.1-25.7 22.9 10.6-1.9 15.3-7.6 16.9-10.2z"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-10" x="256" y="256">
+        <path fill="#FFCC80" d="M41.6 123.8s0 .1-.1.1l.3-.4c-.1.2-.1.2-.2.3z"/>
+        <path fill="#8C9EFF" d="M0 0h128v128H0z"/>
+        <path fill="#C2C2C2"
+              d="M34.8 79.5c-2.5-3.4-5.9-6.4-6.9-10.3v-.1l-.6-.5c-.3-1.2.6-2 .5-3l-2.4-1h-6.9s0 17 17.4 17.3c-.9-.9-.7-1.8-1.1-2.4z"/>
+        <path fill="#CFD8DC"
+              d="M21.9 64.2l-.1-.3c0-.1 0-.2-.1-.4v-1l.1-.3c.1-.1.1-.2.1-.3.1-.1.1-.2.1-.2.2-.4.1-.8-.2-1.1-.4-.4-1-.4-1.3 0l-.2.2-.2.2c-.1.1-.2.2-.3.4l-.3.6-.3.6c-.1.2-.2.4-.2.7 0 .2-.1.5-.1.8v.5h3c.2-.2.1-.3 0-.4z"/>
+        <path fill="#eee"
+              d="M116.5 65.2c.1.1.2.1.2.2 0-.1-.1-.2-.2-.2zm8.2 6.1l.6.3c-.3-.1-.4-.2-.6-.3zm1.7 1l.6.3c-.2 0-.4-.1-.6-.3zm-3.4-2.1l.5.3c-.2 0-.4-.2-.5-.3zm-8-6.5zm-.1 64.1c-12-17.2-7.6-52-3.1-67.6v-.1c-3.5-4.2-7.8-11.7-10.2-18.7-1.7-5-4-8.8-6.4-11.8l-1.6-2-10.7 11.8c-1.5 2.1-3.3 1.8-4.1-.6l-7.1-17.3c-.3-.9-.3-1.9 0-2.7.3-1.1-.1-2.1.7-3l-2-.1c-1.3 0-2.5.1-3.7.3-1.7-.3-3.4-.5-5.1-.5-11.9 0-21.9 8.1-24.8 19.2-.5 1.8-.7 3.7-.8 5.6-1.2 3.6-4.2 7.7-11.5 8.4 1.3.4 2.2 1.9 2 3.6l-.5 2.8c-.3 2-1.2 2.4-2.2.9l1.6 8.6.2.9c.1 1.1.3 2.2.6 3.4 1 4 3.2 8.2 7.8 10.9.3.6 1 1.3 2 2.1 8.2 6.7 36 20.7 27.8 46.1h51.3c0-.1-.1-.1-.2-.2zM34.5 59.3c.5 0 1 .4 1 1 0 .5-.4 1-1 1-.5 0-1-.4-1-1s.4-1 1-1zm7.4 3.9c.5 0 1 .4 1 1 0 .5-.4 1-1 1-.5 0-1-.4-1-1 0-.5.5-1 1-1zm-1-8.5c-.5 0-1-.4-1-1 0-.5.4-1 1-1 .5 0 1 .4 1 1s-.5 1-1 1zm3.9-10.9c-.9 0-1.6-.7-1.6-1.6 0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6 0 .9-.7 1.6-1.6 1.6zm73.3 22.7c.1.1.2.2.4.3-.2-.1-.3-.2-.4-.3zm3.2 2.6l.5.3-.5-.3zm-1.6-1.3l.4.3c-.1 0-.3-.1-.4-.3z"/>
+        <path fill="#C2C2C2"
+              d="M114.9 127.8l.2.2H128V73.2l-1-.6-.6-.3-1.2-.7-.6-.3-1.2-.7-.5-.3-1.2-.8-.5-.3-1.2-.9-.4-.3-1.2-1c-.1-.1-.2-.2-.4-.3l-1.3-1.2c-.1-.1-.2-.1-.2-.2l-1.5-1.5c-1.5-1.6-3-3.3-4.4-5.1-4.6 15.4-13 52.7 4.3 69.1z"/>
+        <path fill="#646464"
+              d="M26 55.1l.4-2.8c.2-1.8-.6-3.2-2-3.6-.3-.1-.7-.2-1.1-.1-2 .1-2.7 1.9-1.6 3.8l1.8 3.3c.1.2.2.3.3.4 1 1.3 1.9 1 2.2-1z"/>
+        <circle fill="#444" cx="44.8" cy="42.2" r="2"/>
+        <circle fill="#CFD8DC" cx="34.5" cy="60.3" r="1"/>
+        <circle fill="#CFD8DC" cx="40.9" cy="53.7" r="1"/>
+        <circle fill="#CFD8DC" cx="41.9" cy="64.2" r="1"/>
+        <path fill="#646464"
+              d="M70.7 18.8c-.3.8-.3 1.8 0 2.7l8.1 19.3c.8 2.5 2.6 2.7 4.1.6l12.3-11.8 1.4-1.3c.3-.4.5-.9.6-1.3.4-1.2.3-2.4-.1-3.6-1.1-4.3-5.6-8.9-11.2-10.3-5.6-1.4-10.9-.2-13.6 2.7-.8.8-1.3 1.8-1.6 3z"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-11" y="128">
+        <path fill="#FFCC80" d="M41.6 123.8s0 .1-.1.1l.3-.4c-.1.2-.1.2-.2.3z"/>
+        <path fill="#FFFF8D" d="M0 0h128v128H0z"/>
+        <path fill="#F4B400"
+              d="M110.3 91.4l-.5-.5c.1.2.3.4.5.5zm-4.4-4.5l.4.5c-.1-.2-.3-.4-.4-.5zm9.8 9.5c.2.2.4.4.7.6-.3-.2-.5-.4-.7-.6zM104.3 85c.2.2.3.4.5.5-.2-.1-.4-.3-.5-.5zm3.7 4.1zm16.9 14l.9.6c-.3-.3-.6-.4-.9-.6zm-28.5-29l.1.2c-.1 0-.1-.1-.1-.2zm15.2 18.6c.2.2.4.4.7.6l-.7-.6zm10 8.2l.9.6-.9-.6zm-18.8-17.7l.4.5c-.1-.1-.3-.3-.4-.5zm-1.4-1.7c.1.1.1.2.2.2-.1 0-.1-.1-.2-.2zm12.2 13l.7.6c-.2-.1-.5-.4-.7-.6zm-15-16.8c.1.1.1.2.2.2l-.2-.2zm-1.2-1.8l.2.3c0-.1-.1-.2-.2-.3zm28.4 27.7l-.9-.6-2.4-1.5-.9-.6c-1-.7-2.1-1.4-3.1-2.2l-2.2-1.8c-.2-.2-.4-.4-.7-.6-.5-.4-1-.8-1.4-1.2l-.7-.6-1.3-1.2-.7-.6c-.5-.4-.9-.9-1.3-1.3l-.5-.5-1.8-1.8c-.6-.6-1.1-1.2-1.6-1.8l-.4-.5-1.2-1.3c-.2-.2-.3-.4-.5-.5l-1.1-1.3-.4-.5-1.2-1.5c-.1-.1-.1-.2-.2-.2-.9-1.2-1.8-2.4-2.6-3.6-.1-.1-.1-.2-.2-.2l-1-1.5-.2-.3c-.3-.5-.6-1-1-1.5l-.1-.2c-1.1-1.8-2-3.5-2.9-5.2-3.1-6-4.8-11.4-5.7-15.9-.2-.9-.3-1.7-.4-2.6L85 13l-8 10.2c-3.7-2.6-8.2-4.2-13.1-4.2s-9.4 1.5-13.1 4.1L42.7 13l-1.8 29-7.7 71.8h.2c-.1 1-.2 2-.2 3 0 4 .8 7.7 2.1 11.2H128v-23.1c-.7-.4-1.5-.8-2.2-1.3zM55 38.4c-.9 0-1.6-.7-1.6-1.6 0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6 0 .8-.7 1.6-1.6 1.6zm17.9 0c-.9 0-1.6-.7-1.6-1.6 0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6 0 .8-.7 1.6-1.6 1.6z"/>
+        <circle fill="#444" cx="72.9" cy="36.7" r="2"/>
+        <circle fill="#444" cx="55" cy="36.7" r="2"/>
+        <path fill="#444" d="M61.6 39.5c-.5 1-.1 1.7 1 1.7h4.6c1.1 0 1.6-.8 1-1.7l-2.3-4c-.5-1-1.4-1-2 0l-2.3 4z"/>
+        <path fill="#FF5722"
+              d="M92.5 102.7c8.3 11.3 23.6 14.4 35.5 7.8v-5.6l-2.2-1.3-.9-.6-2.4-1.5-.9-.6c-1-.7-2.1-1.4-3.1-2.2l-2.2-1.8c-.2-.2-.4-.4-.7-.6-.5-.4-1-.8-1.4-1.2l-.7-.6-1.3-1.2-.7-.6c-.5-.4-.9-.9-1.3-1.3l-.5-.5-1.8-1.8c-.6-.6-1.1-1.2-1.6-1.8l-.4-.5-1.2-1.3c-.2-.2-.3-.4-.5-.5l-1.1-1.3-.4-.5-1.2-1.5c-.1-.1-.1-.2-.2-.2-.9-1.2-1.8-2.4-2.6-3.6-.1-.1-.1-.2-.2-.2l-1-1.5-.2-.3c-.3-.5-.6-1-1-1.5l-.1-.2c-1.1-1.8-2-3.5-2.9-5.2-7.7 9.4-8.4 23.4-.8 33.7z"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-12" x="128" y="128">
+        <path fill="#B9F6CA" d="M0 0h128v128H0z"/>
+        <path fill="#444"
+              d="M50.4 75.7c-1.6-1.6-3.2-2.9-4.7-4-.9-.6-1-1.7-1.7-2.2-1.8-1-3.2-5.9-5.3-3.4l-.5.8-.4-.9c-1.3-1.2-1-.4-1.3-2.3-.5-4.2 1.2-7.2 5.1-7.8 1-.1 2-.1 2.9.2 9.5-1.8 13.7-7.4 15.2-10 4 5.7 14.3 11.4 38.3 7.8 2.8-4.7 4.5-10.2 4.5-16C102.4 20.8 88.6 7 71.6 7c-6.7 0-12.8 2.1-17.9 5.7L27.9 31C16.3 36.6 8.3 48.5 8.3 62.2c0 19.1 15.5 34.6 34.6 34.6 4.6 0 9-.9 13-2.5.2-8.4-1.4-14.5-5.5-18.6zm-5.9-21.6z"/>
+        <path fill="#8D6E63"
+              d="M73.7 122c6.1.5 13.4-.3 22-3.5-.1-.7-.3-1.4-.5-2.1-.3-1.3-3.8-21.4-4-28.1-.1-7.3.8-11.9 2-14.7h8.7l-2.5-10.1c-.2-2.4-.4-4.7-.7-6.6-.2-1.8-.3-2.3-.8-3.9-24 3.6-34.2-3.7-38.2-9.4-1.4 2.5-5.7 8.8-15.3 10.5-.9-.3-1.9-.3-2.9-.2-3.9.6-6.7 4.5-6.1 8.8.3 2 1.2 3.6 2.5 4.8.2.1 1.5.6 3.3 1.7.7.4 1.6.9 2.4 1.6 1.5 1.1 3.1 2.4 4.7 4 4 4.1 7.6 10.2 7.4 18.5-.1 4.9-1.6 10.6-5.1 17.2.1 0 7.3 10.2 23.1 11.5zM44.5 54.1z"/>
+        <path fill="#FFCC80" d="M41.6 123.8s.1-.2.2-.3c-.1.2-.1.2-.2.3z"/>
+        <circle fill="#444" cx="83.5" cy="63.1" r="2"/>
+        <path fill="#0097A7"
+              d="M73.7 122c-15.9-1.3-23-11.5-23-11.5-2.1 4-5.1 8.4-8.9 13.1l-.3.4c-.5.6-1.1 1.3-1.7 2-.5.6-1 1.3-1.6 2.1h59.7c-.7-3.2-1.5-6.4-2.1-9.5-8.7 3.1-16 3.9-22.1 3.4z"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-13" x="256">
+        <path fill="#448AFF" d="M0 0h128v128H0z"/>
+        <g fill="#00BFA5">
+            <path d="M73 18.7c-4.8 0-9.7.8-14 2.3-.1.1-.2.2-.4.3l-7.3 4.6c-.6.4-1.4.4-2 .1-.3-.2-.6-.4-.8-.7l-.7-1.1c-.6-1-.3-2.2.6-2.8l7.3-4.6c.4-.2.8-.3 1.2-.3-5.5-3-23.7-10.7-33.7 10.7-11.8 25.4 11 50.2-14.4 62.6 0 0 26.2 13.7 40.9-24.8 3.7 3.2 8.8 5.8 16 7.4-.6-5.6.8-9.8-2.1-12.8-1.3-1.4-2.7-1.5-4-2.4-.7-.5-1.4-.9-2-1.3-1.5-.9-2.6-1.3-2.8-1.4-1.1-1-1.9-2.4-2.1-4.1-.5-3.6-2.2-6.9 1.1-7.4.8-.1 1.6-.1 2.4.2 8-1.5 11.6-6.7 12.8-8.9 3.4 4.8 11.7 9.8 31.9 6.8.3 1.1.6 1.2.8 2.4l.5-1.3c-.1-13-13.2-23.5-29.2-23.5zM56.1 43.2zm5.3 46.5s6 8.6 19.4 9.7c5.1.4 11.3-.3 18.6-2.9-.1-.6-.3-1.2-.4-1.7-.2-1.1-3.2-18-3.4-23.6-.2-6.2.6-10 1.6-12.4h7.3l-2.1-8.5c-.1-2-.4-3.9-.6-5.6 0-.3-.1-.7-.2-1-.2-1.1-.4-2.3-.8-3.4-20.2 3-28.5-2-31.9-6.8-1.2 2.1-4.8 7.4-12.8 8.9-.8-.2-1.6-.3-2.4-.2-3.3.5-5.6 3.8-5.1 7.4.2 1.7 1 3.1 2.1 4.1.2.1 1.3.5 2.8 1.4.6.4 1.3.8 2 1.3 1.3.9 2.6 2 4 3.4 2.9 3 5.6 7.2 6.1 12.8.5 4.5-.6 10.2-4.2 17.1zm27.5-41.2c.7 0 1.3.6 1.3 1.3s-.6 1.3-1.3 1.3-1.3-.6-1.3-1.3.6-1.3 1.3-1.3zm-32.8-5.3c.1-.1 0-.1 0 0zm-2.4 57.7l.2-.2-.2.2z"/>
+            <circle cx="88.9" cy="49.8" r="2"/>
+            <path d="M80.8 99.3c-13.3-1.1-19.4-9.7-19.4-9.7-1.8 3.4-4.3 7.1-7.5 11l-.3.3c-.4.5-.9 1.1-1.4 1.7-.7.9-1.6 2.1-2.8 3.7-2.3 3.2-5.4 7.8-8.8 13.5-1.4 2.4-2.9 5.1-4.4 8 0 0 0 .1-.1.1h71.3c-.6-1.6-1.3-3.2-1.7-4.8-2.2-8.6-4.6-17.9-6.5-26.8-7.2 2.8-13.3 3.5-18.4 3zM55.7 16.7l-7.3 4.6c-1 .6-1.3 1.9-.6 2.8l.7 1.1c.2.3.5.6.8.7.6.3 1.4.3 2-.1l7.3-4.6.4-.3c.7-.7.8-1.7.3-2.5l-.7-1.1c-.4-.6-1-.9-1.6-1-.5 0-1 .1-1.3.4z"/>
+        </g>
+        <path fill="#444"
+              d="M73 18.7c-4.8 0-9.7.8-14 2.3-.1.1-.2.2-.4.3l-7.3 4.6c-.6.4-1.4.4-2 .1-.3-.2-.6-.4-.8-.7l-.7-1.1c-.6-1-.3-2.2.6-2.8l7.3-4.6c.4-.2.8-.3 1.2-.3-5.5-3-23.7-10.7-33.7 10.7-11.8 25.4 11 50.2-14.4 62.6 0 0 26.2 13.7 40.9-24.8 3.7 3.2 8.8 5.8 16 7.4-.6-5.6.8-9.8-2.1-12.8-1.3-1.4-2.7-1.5-4-2.4-.7-.5-1.4-.9-2-1.3-1.5-.9-2.6-1.3-2.8-1.4-1.1-1-1.9-2.4-2.1-4.1-.5-3.6-2.2-6.9 1.1-7.4.8-.1 1.6-.1 2.4.2 8-1.5 11.6-6.7 12.8-8.9 3.4 4.8 11.7 9.8 31.9 6.8.3 1.1.6 1.2.8 2.4l.5-1.3c-.1-13-13.2-23.5-29.2-23.5zM56.1 43.2z"/>
+        <path fill="#FFE0B2"
+              d="M61.4 89.7s6 8.6 19.4 9.7c5.1.4 11.3-.3 18.6-2.9-.1-.6-.3-1.2-.4-1.7-.2-1.1-3.2-18-3.4-23.6-.2-6.2.6-10 1.6-12.4h7.3l-2.1-8.5c-.1-2-.4-3.9-.6-5.6 0-.3-.1-.7-.2-1-.2-1.1-.4-2.3-.8-3.4-20.2 3-28.5-2-31.9-6.8-1.2 2.1-4.8 7.4-12.8 8.9-.8-.2-1.6-.3-2.4-.2-3.3.5-5.6 3.8-5.1 7.4.2 1.7 1 3.1 2.1 4.1.2.1 1.3.5 2.8 1.4.6.4 1.3.8 2 1.3 1.3.9 2.6 2 4 3.4 2.9 3 5.6 7.2 6.1 12.8.5 4.5-.6 10.2-4.2 17.1zm27.5-41.2c.7 0 1.3.6 1.3 1.3s-.6 1.3-1.3 1.3-1.3-.6-1.3-1.3.6-1.3 1.3-1.3zm-32.8-5.3c.1-.1 0-.1 0 0z"/>
+        <path fill="#FFCC80" d="M53.7 100.9l.2-.2-.2.2z"/>
+        <circle fill="#444" cx="88.9" cy="49.8" r="2"/>
+        <path fill="#FF5722"
+              d="M80.8 99.3c-13.3-1.1-19.4-9.7-19.4-9.7-1.8 3.4-4.3 7.1-7.5 11l-.3.3c-.4.5-.9 1.1-1.4 1.7-.7.9-1.6 2.1-2.8 3.7-2.3 3.2-5.4 7.8-8.8 13.5-1.4 2.4-2.9 5.1-4.4 8 0 0 0 .1-.1.1h71.3c-.6-1.6-1.3-3.2-1.7-4.8-2.2-8.6-4.6-17.9-6.5-26.8-7.2 2.8-13.3 3.5-18.4 3z"/>
+        <path fill="#00BFA5"
+              d="M55.7 16.7l-7.3 4.6c-1 .6-1.3 1.9-.6 2.8l.7 1.1c.2.3.5.6.8.7.6.3 1.4.3 2-.1l7.3-4.6.4-.3c.7-.7.8-1.7.3-2.5l-.7-1.1c-.4-.6-1-.9-1.6-1-.5 0-1 .1-1.3.4z"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-14" x="256" y="128">
+        <path fill="#B388FF" d="M0 0h128v128H0z"/>
+        <path fill="#1C3AA9" d="M70.5 128h12.4c-5.1-15.8-6.6-23.9-7.2-28.4-1.9 8.8-4 19.3-5.2 28.4z"/>
+        <path d="M92.9 32.8l-.2.1c.1 0 .2 0 .2-.1zm-1.2.5l-.7.1.7-.1zm.6-.2l-.3.1.3-.1zm-52 .3c-.2 0-.5 0-.7-.1.3 0 .5.1.7.1zm-.9-.2l-.5-.1.5.1zm-.7-.2c-.2-.1-.4-.2-.5-.3.1.1.3.2.5.3z"
+              fill="none"/>
+        <path fill="#2A56C6" d="M82.9 90.8v.2-.2z"/>
+        <path fill="#FFE0B2"
+              d="M31.2 47.2zM45.8 93c5.8 5.5 13.6 9.1 22.3 9.3 2.8-.1 5.4-.5 8-1.2l.8-3.8c4.3-19.3 9.7-37.4 15-52.9h6.9L94 36.2c-.2-1.2-.4-2.5-.7-3.6l-.4.3-.2.1-.4.2-.3.1-.3.1-.7.1H40.3c-.2 0-.5 0-.7-.1-.1 0-.1 0-.2-.1l-.5-.1-.2-.1c-.2-.1-.4-.2-.5-.3 0 0-.1 0-.1-.1-.1.2-.1.4-.1.7-1-.3-2-.4-3-.3-4.1.6-6.9 4.7-6.3 9.1.3 2 1.2 3.8 2.6 5 .3.1 1.6.7 3.4 1.7.8.4 1.6 1 2.5 1.6 1.5 1.1 3.2 2.5 4.9 4.1 0 0 16.3 12.3 3.4 38 .1.2.2.3.3.4zm34.1-51.9c.8 0 1.5.7 1.5 1.6 0 .9-.7 1.6-1.5 1.6s-1.5-.7-1.5-1.6.6-1.6 1.5-1.6z"/>
+        <path fill="#2A56C6"
+              d="M68.1 102.3c-8.7-.2-16.5-3.8-22.3-9.3-.1-.1-.2-.2-.4-.3-3-.2-7.6.2-10.8.6-4.6.6-9.6 1.3-15 2.4-3.6.7-8.1 1.9-19.7 5.3v27h71.4c1.3-9.1 2.9-18.1 4.7-26.9-2.5.7-5.1 1.1-7.9 1.2z"/>
+        <path fill="#6D4C41" d="M61.8 9.8c-7.3 1.1-13.6 5.1-17.9 10.8h43.7C81.5 12.7 71.9 8.3 61.8 9.8z"/>
+        <path fill="#E65100"
+              d="M38.7 33l.2.1c.2.1.3.1.5.1.1 0 .1 0 .2.1l.7.1H91c.2 0 .5 0 .7-.1l.3-.1.3-.1c.1 0 .3-.1.4-.2l.2-.1.4-.3c1-.7 1.6-1.9 1.6-3.2v-4.8c0-2.2-1.8-4-4-4H40.4c-2.2 0-4 1.8-4 4v4.8c0 1.4.7 2.6 1.8 3.3 0 0 .1 0 .1.1s.2.2.4.3z"/>
+        <ellipse fill="#444" cx="79.9" cy="42.7" rx="2" ry="2.2"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-15" y="256">
+        <path fill="#FF80AB" d="M0 0h128v128H0z"/>
+        <path fill="#5D4037"
+              d="M87.3 11.7c-7.6 0-14.1 4.9-16.4 11.7-2.8-1.6-5.9-2.7-9.1-3.1-13.9-2.1-26.9 7.1-31.1 21.1 5 .8 9.5 3.1 13.4 3.1 1.4-.6 3-.9 4.6-.9 1.1 0 2.2.2 3.3.5 10-1.3 15.2-5.2 17.9-9 .3.5.6 1 1 1.6v.1c2.1 3.1 6.6 7.7 14.7 9.2.9-.3 1.9-.4 3-.2 1.5.2 2.8-1.1 3.8-.1 7-2.2 12.2-8.8 12.2-16.5 0-9.7-7.8-17.5-17.3-17.5z"/>
+        <path d="M70.9 36.6c-.4-.6-.8-1.2-1-1.6.2.5.5 1 1 1.6z" fill="none"/>
+        <path fill="#5D4037" d="M85.6 45.9z"/>
+        <path fill="#FFCC80"
+              d="M48.6 63.8c5.6 0 10.1-4.5 10.1-10.1s-4.5-10.1-10.1-10.1-10.1 4.5-10.1 10.1c.1 5.5 4.6 10.1 10.1 10.1zm-1.7-10.5c0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6 0-.9.7-1.6 1.6-1.6.9-.1 1.6.7 1.6 1.6zm38.7-7.4z"/>
+        <path fill="#F9A825"
+              d="M35.6 117.3c0 2.5 2.1 4.6 4.6 4.6s4.6-2.1 4.6-4.6c0-1.7-.9-3.2-2.3-4-.8-.2-1.8-.3-2.7-.6-2.3.3-4.2 2.2-4.2 4.6z"/>
+        <circle fill="#F9A825" cx="64.3" cy="117.1" r="4.6"/>
+        <path fill="#F9A825"
+              d="M83.4 117.3c0 2.5 2.1 4.6 4.6 4.6 1.5 0 2.8-.7 3.7-1.8l-.7-.9-.6-.8c-.6-.7-1.3-1.5-1.8-2.1l-.3-.4c-.4-.5-.8-.9-1.2-1.5-.3-.4-.6-.8-.9-1.3-1.7.8-2.8 2.4-2.8 4.2z"/>
+        <path fill="#FFEE58"
+              d="M91.6 119.8c-.8 1-2.1 1.7-3.5 1.7-2.4 0-4.4-2-4.4-4.4 0-1.8 1-3.3 2.5-4-3-3.9-5.3-7.5-7.2-11 .2.1-7.3 10.6-23.7 12-3.8.3-8 .1-12.8-.8 1.3.8 2.2 2.2 2.2 3.8 0 2.4-2 4.4-4.4 4.4s-4.4-2-4.4-4.4c0-2.3 1.8-4.2 4-4.4-2.4-.6-4.8-1.3-7.4-2.2-1.2 5.7-2.6 11.6-4.1 17.5h69c-1.4-2-2.6-3.8-3.7-5.3m-29.4-1.2c-2.4 0-4.4-2-4.4-4.4s2-4.4 4.4-4.4 4.4 2 4.4 4.4c0 2.4-2 4.4-4.4 4.4z"/>
+        <path fill="#FFCC80"
+              d="M92.4 45.6c-1-1-2.4-1.7-3.8-1.9-1-.2-2-.1-3 .2-8.1-1.5-12.6-6.1-14.7-9.2-.5-.7-.8-1.2-1.1-1.7-2.7 3.8-7.9 7.7-17.9 9l.9.3-9.4.4.6-.3c-3.9 0-8.3-.4-13.4-1.1-.5 1.7-.9 3.5-1.2 5.3-.2 1.8-.5 3.8-.6 6l-.3 2-2.3 9.4h9c1.2 3 2.1 7.7 1.9 15.3-.2 6.9-3.9 27.7-4.2 29-.1.7-.3 1.4-.5 2.1 2.6.9 5 2 7.3 2.5l2.7.5c4.8.9 9.2 1.4 13 1.1 16.4-1.3 24-12 24-12-9.8-18.4-4.6-30.7 2.1-37.5 1.6-1.7 3.3-3 4.9-4.1.9-.6 1.7-1.2 2.5-1.6 1.8-1.1 3.2-1.6 3.4-1.7 1.3-1.2 2.3-3 2.6-5 .3-2.6-.7-5.3-2.5-7zm-32.9 2.7c.5 1 .8 2 1 3.1l-1-3.1z"/>
+        <path fill="#DB4437"
+              d="M36.6 54.7c.5 6.2 5.7 11.1 12 11.1 6.7 0 12.1-5.4 12.1-12.1 0-5.5-3.7-10.2-8.8-11.6-1-.3-2.1-.5-3.3-.5-1.6 0-3.2.3-4.6.9-4.1 1.7-7.1 5.6-7.4 10.2h-7.7l-.1.9-.3 1.1h8.1zm12-11.1c5.6 0 10.1 4.5 10.1 10.1s-4.5 10.1-10.1 10.1-10.1-4.5-10.1-10.1c.1-5.6 4.6-10.1 10.1-10.1z"/>
+        <circle fill="#444" cx="45.3" cy="53.3" r="2"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-16" x="128" y="256">
+        <path fill="#B388FF" d="M0 0h128v128H0z"/>
+        <path fill="#444"
+              d="M58.4 24c4.2 5.9 23.9 10.2 38.9 4.6-4.2-14-17.1-23.2-31.1-21.1-11.7 1.8-20.8 11.2-23.7 22.9 7 3.2 14.5-3.8 15.9-6.4z"/>
+        <path fill="#689F38"
+              d="M72.7 101.3C56.3 100 48.8 89.4 48.8 89.4c-2.2 4.2-5.2 8.7-9.2 13.5l-.3.4-1.7 2c-.9 1.1-2 2.6-3.4 4.5-2.8 3.9-6.6 9.5-10.8 16.6l-.8 1.4h80.1c-2.5-9.8-5.1-20.3-7.3-30.2-8.9 3.4-16.5 4.3-22.7 3.7z"/>
+        <path fill="#FFCC80"
+              d="M101.8 51.3l-2.6-10.4c-.2-2.5-.5-4.9-.7-6.9-.2-1.9-.6-3.6-1.2-5.3-24.8 3.7-35-2.5-39.1-8.4-1.5 2.6-5.8 8.4-15.6 10.2-.1.2-.1.5-.1.7-.9-.3-1.9-.4-3-.2-4.1.6-6.9 4.7-6.3 9.1.3 2 1.2 3.8 2.6 5 .3.1 1.6.7 3.4 1.7.8.4 1.6 1 2.5 1.6 1.5 1.1 3.2 2.5 4.9 4.1 6.6 6.8 12.1 18.6 2.4 37 0 0 7.4 10.6 23.8 11.9 6.3.5 13.8-.3 22.8-3.6l-.5-2.1c-.3-1.4-4-22.1-4.2-29-.2-7.6.7-12.3 1.9-15.3h9zM81.1 40.5c0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6 0 .9-.7 1.6-1.6 1.6-.9.1-1.6-.7-1.6-1.6zm-41.7 62.8s0 .1-.1.1l.3-.4c0 .1-.1.2-.2.3z"/>
+        <circle fill="#444" cx="82.7" cy="40.5" r="2"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-2">
+        <path fill="#B9F6CA" d="M0 0h128v128H0z"/>
+        <path fill="#FFCC80"
+              d="M70.1 122.5l.6-.1c6.1-.8 12-2.4 17.7-4.8 1.2-.5 2.4-1.1 3.2-2.1 1.3-1.7-.1-5.6-.5-7.7-.7-3.8-1.3-7.7-1.9-11.5-.7-4.5-1.5-9.1-1.6-13.7-.2-7.6.7-12.3 1.9-15.3h9l-2.6-10.4c-.2-2.4-.4-4.8-.7-6.8-.2-1.9-.6-3.6-1.2-5.3-14.9 2.2-24.5.9-30.7-1.8l-23.1 4.5-.7.1h-.7c-.4-.1-.9-.2-1.2-.4-.4 0-.9 0-1.4.1-4.1.6-6.9 4.7-6.3 9.1.3 2 1.2 3.8 2.6 5 .3.1 1.6.7 3.4 1.7.8.4 1.6 1 2.5 1.6 1.5 1.1 3.2 2.5 4.9 4.1 5.8 5.9 8.4 13.8 7.4 22-.6 4.7-2.2 9.4-4.4 13.6-.5 1-1 1.6-1.1 2.8-.1 1.1-.1 2.3.1 3.4.4 2.3 1.5 4.4 3 6.2 2.6 3.1 6.4 5 10.4 5.8 3.8.4 7.6.3 11.4-.1zm9.5-67.6c.9 0 1.6.7 1.6 1.6 0 .9-.7 1.6-1.6 1.6s-1.6-.7-1.6-1.6c-.1-.8.7-1.6 1.6-1.6zM128 97.7c-3.3 1.9-6.6 3.7-9.9 5.3-3.2 1.5-6.3 2.9-9.6 4.2-.9.4-2.1.5-2.9 1.1-1.1.8-1.9 2.5-2.3 3.7-.6 1.6-.6 3.4.3 4.8.8 1.2 2.1 2 3.5 2.6 5.9 2.9 12.2 5.1 18.6 6.5 1.4.3 2.3 1.8 2.4.1V97.9c-.1.1-.1-.1-.1-.2z"/>
+        <path d="M38.9 47.4zm.7 0z" fill="none"/>
+        <path fill="#444" d="M94.2 44.9c-.8-2.6-1.8-5-3.2-7.2l-7.2 1.4-20.4 4c6.3 2.7 15.9 4 30.8 1.8z"/>
+        <path fill="#E65100"
+              d="M38.9 48.4h.7c.2 0 .5 0 .7-.1l23.1-4.5 20.4-4 23.3-4.5c1.9-.4 3.2-2 2.9-3.6-.3-1.6-2.1-2.6-4.1-2.3l-19.6 3.8-1.3-6.8C83 15.5 70 8.7 55.9 11.5c-14 2.7-23.7 13.9-21.6 24.9h.1l1.7 9v.7c.2.8.7 1.4 1.4 1.9.5.1 1 .3 1.4.4z"/>
+        <circle fill="#444" cx="79.6" cy="56.5" r="2"/>
+        <path fill="#689F38"
+              d="M128 128v-1.8L106.3 108l-.4.2-2.9 1.3c-3 1.3-6 2.6-9.2 3.8l-1.4.5c-9 3.3-16.5 4.1-22.8 3.6-16.4-1.3-23.8-11.9-23.8-11.9-2.2 4.2-5.2 8.7-9.2 13.5l-.3.4-1.7 2c-.9 1.1-2 2.6-3.4 4.5-.4.6-.9 1.3-1.4 2l98.2.1z"/>
+        <path fill="#FFCC80" d="M36.3 119.3s.1-.2.2-.3c-.1.1-.2.2-.2.3z"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-3" x="384">
+        <path fill="#80D8FF" d="M0 0h128v128H0z"/>
+        <path fill="#5D4037"
+              d="M53.7 68.3c.9-.1 1.7-.3 2-.9.1-.2.2-.4.2-.6.2-1-.2-2-.5-3-1.2-3.2-2-6.4-2.2-9.8-.3-3.9.4-7.8 1-11.6l12.7-8.1c.8-.5 1.8-1.5 2.7-1.7.9-.3 2.4.6 3.3.8 1.3.4 2.6.6 4 .9 5.4.9 10.9.7 16.2-.6 1.3-.3 2.7-1.1 4-1.3-.3-2.1-1.5-4.3-2.5-6.1-1-1.9-2.2-3.7-3.6-5.3-2.7-3.2-6-5.8-9.8-7.5-3.3-1.5-6.8-2.4-10.4-2.5 0 0-50.8-8.1-42.4 56.4l12.8.5 8.7.3c.9-.1 2.5.2 3.8.1z"/>
+        <path d="M59.5 25.7l-.3-.4c0 .2.1.3.3.4zm-1-1.2c-.2-.2-.3-.4-.4-.6.1.2.2.4.4.6zm.4.6l-.3-.4.3.4zm1.1 1.2l-.4-.4c.2.1.3.3.4.4zM46.3 56.2zm.5.4l.3.3-.3-.3zm-.2-.2l.2.2-.2-.2zm-.2-.2l.1.1-.1-.1zm14.3-29.3l-.4-.4c.1.1.2.3.4.4zm8.6 4.7l-1-.3c.3 0 .6.2 1 .3zm1.3.3c-.4-.1-.8-.2-1.1-.3.3.1.7.2 1.1.3zm-23.4 25l.4.4c-.2-.1-.3-.3-.4-.4zm27-24.2l-.9-.2c.3.1.6.2.9.2zm-12.8-5.2l-.5-.4c.1.1.3.2.5.4zm6.7 3.7c-.3-.1-.6-.2-.9-.4.2.1.6.2.9.4zm-5.9-3.1l-.6-.5.6.5zm3.7 2.2c-1.4-.6-2.6-1.3-3.6-2.1 1 .7 2.2 1.4 3.6 2.1zm1.1.4l-.9-.4c.2.2.5.3.9.4zm20.1 2.7h-.8.8zm-3.2 0h1.4-1.4zm-3.9 0l1.9.1c-.6 0-1.1 0-1.7-.1H80zm2 0h1.6H82zm6.1-.1c.3 0 .7 0 1-.1h-.2c-.2.1-.5.1-.8.1zm6.2-.6l-.7.1c1.2-.1 2.4-.3 3.6-.5l-2.2.3c-.2.1-.5.1-.7.1zm-3.4.4c-.3 0-.6 0-.8.1.9-.1 1.9-.2 2.9-.3l-.8.1c-.5 0-.9 0-1.3.1zM51.1 61.9c.2.3.4.6.5 1-.2-.4-.3-.7-.5-1zm-3.5-4.6c.8.8 1.8 1.9 2.8 3.5-1-1.5-2-2.7-2.8-3.5zm2.9 3.6l.6.9c-.3-.3-.5-.6-.6-.9zm1.2 2.1l.6 1.1c-.3-.4-.4-.8-.6-1.1zm26.5-29.8l-.9-.1c-.2 0-.3 0-.5-.1l-.9-.1h-.2c1.3.2 2.6.3 4 .4-.3 0-.6 0-.9-.1-.2.1-.4.1-.6 0zm-3.8-.4l1.1.2-.9-.1c-.1-.1-.2-.1-.2-.1zm-3.7-.8c.7.2 1.5.4 2.3.5l-.9-.2-1.4-.3zM52.2 64.1c.6 1.2 1.1 2.6 1.5 4.1-.4-1.5-.9-2.9-1.5-4.1z"
+              fill="none"/>
+        <path fill="#E65100"
+              d="M101.3 128h.3c-2.4-9.5-4.8-19.4-6.8-28.7-7.6 2.7-39.3.6-45.1-5.1-2.5 4.9-6 10.3-10.8 16.2H97l4.3 17.6z"/>
+        <path fill="#2A56C6" d="M97.2 92.5v-.2.2z"/>
+        <path fill="#00838F" d="M39.2 107.1l.3-.4-.3.3v.1z"/>
+        <path fill="#EE8100"
+              d="M101.6 128c-1.5-5.8-3-11.8-4.3-17.7H38.9c-.9 1.1-2.1 2.2-3.1 3.3-.2.2-.3.4-.5.5-4 4.6-7.5 9.2-10.4 13.8h76.7z"/>
+        <path fill="#FFE0B2"
+              d="M72.4 103.8c5.9-.2 14.8-1.8 22.4-4.5-.3-1.4-.6-2.7-.8-4.1-1.9-9.4-3.2-18.1-3.4-25-.5-19.6 6.6-20.2 6.6-20.2h2.1c0-4.2-.5-8.8-.9-12.3-.2-1.9-.6-3.6-1.2-5.3l-3.6.5-.6.1-2.9.3c-.3 0-.6 0-.9.1-.3 0-.7 0-1 .1-.3 0-.7 0-1 .1h-5.1c-.7 0-1.3 0-1.9-.1h-.3c-1.4-.1-2.8-.2-4-.4h-.2l-1.1-.2h-.2l-.9-.2c-.1 0-.2 0-.3-.1l-2.3-.5h-.1c-.4-.1-.8-.2-1.1-.3-.1 0-.1 0-.2-.1l-1-.3c-.1 0-.1 0-.2-.1-.3-.1-.6-.2-.9-.4-.1 0-.1 0-.2-.1l-.9-.4s-.1 0-.1-.1c-1.4-.6-2.6-1.3-3.6-2.1l-.1-.1-.6-.5-.2-.2-.5-.4-.2-.2-.4-.4-.2-.2-.4-.4-.2-.2-.3-.4-.2-.2-.3-.4-.1-.2c-.2-.2-.3-.4-.4-.6l-8 24.9-11.2-14.1c-4.1.6-6.9 4.7-6.3 9.1.3 2 1.2 3.8 2.6 5 .3.1 1.6.7 3.4 1.7.8.4 1.6 1 2.5 1.6 1.5 1.1 3.2 2.5 4.9 4.1h.1l.1.1.2.2.1.1.3.3.1.1.4.4c.8.8 1.8 1.9 2.8 3.5v.1l.6.9s0 .1.1.1c.2.3.4.6.5 1 0 0 0 .1.1.1l.6 1.1c.6 1.2 1.1 2.6 1.5 4.1 1.7 6.2 1.6 14.8-4 25.9 5.6 5.8 13.6 9.4 22.5 9.7z"/>
+        <circle fill="#444" cx="84.2" cy="44.1" r="2"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-4" x="384" y="128">
+        <path fill="#84FFFF" d="M0 0h128v128H0z"/>
+        <path fill="#444"
+              d="M28 54.2c1-.2 1.5.5 2.8.8 1.3.3 2.7.2 4-.2 2.2-.7 4.1-2.1 6.1-3.4 12.6-8.2 28.9-10.4 43.2-5.8 3 1 6 2.3 8 4.7.9 1.1 1.6 2.4 2.5 3.6s2.1 2.2 3.5 2.4c5.2.8 4.9-8.6 4.9-11.8 0-21.3-17.3-38.6-38.6-38.6S25.8 23.2 25.8 44.5c0 3.2.2 7 1.4 10 .3-.1.6-.2.8-.3z"/>
+        <path fill="#8D6E63"
+              d="M44.3 103.5c0 .2-.1.4-.1.5-.5 3.9.3 7.9 2.3 11.3 2.1 3.7 5.4 6.6 9.2 8.3 3.1 1.4 6.5 2.1 10 2.1 5.3-.1 10.6-2 14.2-5.9 1.9-2.1 3.2-4.6 4.5-7.1.9-1.7 1.8-3.4 2.5-5.2.6-1.7.6-2.3-.5-3.6-2.2-2.6-4.1-5.7-4.9-9.1-.9-4.1.3-9.7 3.5-12.6 1.3-1.2 2.8-2.5 4.4-3.9l13.1-11c1.5-1.2 2.6-3 2.9-5.1.4-3.2-1.1-6.3-3.7-7.9-.5-.3-.9-.5-1.5-.7h-.1c-.2-.1-.5-.2-.7-.2h-.1c-.3-.1-.6-.1-.8-.2-1.4-.2-2.8 0-4 .5-.8-14-13.9-11-29.9-11-14.6 0-26.8-2.5-29.4 7.8-.2.9-.5 2-.8 3.1-1.2-.4-2.4-.6-3.8-.4-.3 0-.6.1-.9.2l-.3.1-.6.2-.3.1-.6.3-.2.1-.8.5c-2.3 1.7-3.6 4.5-3.2 7.6.3 2.1 1.3 3.8 2.8 5.1 0 0 10.9 9.3 11 9.3 4.6 3.9 8.2 10.7 8.6 16.7.1 1.8 0 3.7-.5 5.5-.1 1.5-1 3-1.3 4.6z"/>
+        <path d="M100.4 53.6zm-.8-.3h-.1.1zm-70.5.3l-.3.1c.1 0 .2 0 .3-.1zm-.9.4l-.2.1s.1 0 .2-.1zm1.7-.7l-.3.1c.2 0 .3-.1.3-.1z"
+              fill="none"/>
+        <path fill="#8D6E63" d="M39.3 109.5c-.1.1-.1.2-.1.2l.5-.6c-.1.1-.2.3-.4.4z"/>
+        <path fill="#FFEB3B"
+              d="M62.8 128h6.8l-3.4-5zm-23.6-18.3c-.1.2-.2.4-.2.5-3.1.9-6 2.7-8.4 5.4l-.2.2s-.5.6-1.5 1.7c-.9 1.1-2.2 2.6-3.7 4.5-1.3 1.6-2.8 3.6-4.4 5.8h28.6l-10.2-18.1zm72.3 16.6c-1.3-2.2-2.3-3.9-3.1-5.1-.9-1.3-1.3-2-1.3-2l-.2-.3c-.6-.9-1.2-1.7-1.9-2.4-3.1-3.4-7-5.2-10.9-5.7l-.3.4L83.6 128h28.9c-.3-.6-.7-1.2-1-1.7z"/>
+        <circle fill="#444" cx="79.5" cy="62.7" r="2"/>
+        <circle fill="#444" cx="53.8" cy="62.8" r="2"/>
+        <path fill="#F57F17"
+              d="M65.7 122.3l.5-.4L44 103.5l-4.3 5.6-.5.6L49.4 128h13.4l3.4-5zm0 0l.5.7 3.4 5h14l10.1-16.8.3-.4-6.4-6.2-.4.3-21 17z"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-5" x="384" y="256">
+        <path fill="#FFFF8D" d="M0 0h128v128H0z"/>
+        <path fill="#C2C2C2" d="M51.7 31.4v-22s-19.6 2.5-15.8 29.9c11 0 14.8-4.3 15.8-7.9z"/>
+        <path fill="#848484"
+              d="M94.1 39.8c.1-1 0-2-.1-3 0-1-.1-1.9-.2-2.9-.2-1.8-.4-3.5-.8-5.2-.6-2.9-1.5-5.8-2.9-8.4-1.1-2.2-2.6-4.2-4.3-6-1.6-1.6-3.3-2.9-5.3-3.9-1.8-1-3.8-1.7-5.8-2.2-2-.5-4-.8-6-.9-1.9-.1-3.8-.1-5.7 0-1.7.1-3.3.3-5 .6-1.3.2-2.5.5-3.8.8l-2.2.6-.4.1v20.8c0 1-.1 1.8.4 2.7.2.3.5.6.6.9.3.9.7 1.8 1.2 2.7 1.1 1.8 2.7 3.4 4.7 4.3 2.4 1.1 5.1 1.4 7.8 1.6 4.8.3 9.6.4 14.3.3 2.2 0 4.3-.3 6.4-.9 1.2-.3 2.4-.6 3.6-1 .6-.2 1.2-.4 1.8-.5.6-.2 1.2-.5 1.7-.5z"/>
+        <path fill="#FFE0B2"
+              d="M66.8 116.8l17.9-8.7 3.1-8.2c-15.1-17 1.2-31.6 2.3-32.5h.1l13.2-11.1c1.5-1.2 2.5-3 2.8-5 .6-4.4-2.5-8.4-6.9-9.1-1.5-.2-3 0-4.3.6-.2-1-.5-1.9-.8-2.9-26.9 3.7-37.9-2.5-42.4-8.4-1.6 2.6-5.1 6.1-15.8 7.9-.2.9-.5 2-.8 3.1-1.2-.4-2.4-.6-3.8-.4-4.4.6-7.5 4.7-6.9 9.1.3 2 1.3 3.8 2.8 5l7.5 6.4c4.2 4.5 18.4 21.7 9 37l.7 3.7 4.7 4.6 17.6 8.9z"/>
+        <path fill="#055524" d="M39.8 104.7zm54.3-.4l-.8 1.5-6.8 12.1V128H128v-2.3z"/>
+        <path fill="#FFE0B2" d="M40.4 103.9c-.2.2-.3.4-.5.5 0 0-.1.1-.1.2v.1l.6-.8z"/>
+        <circle fill="#444" cx="80" cy="51.7" r="2"/>
+        <circle fill="#444" cx="54.3" cy="51.7" r="2"/>
+        <path fill="#055524"
+              d="M39.8 104.7c-3.2.9-6.1 2.7-8.6 5.5l-.2.2s-.5.6-1.5 1.7c-.9 1.1-2.2 2.6-3.7 4.5-2.3 2.9-5.1 6.7-8.3 11.4h31v-7.8l-8.7-15.5z"/>
+        <path fill="#848484" d="M65.3 67.3s2.7 9.8 14.5 9.8c0 0 3.9-18.5-14.5-18.5v8.7z"/>
+        <path fill="#C2C2C2" d="M65.3 67.3v-8.7C46.9 58.6 50.8 77 50.8 77c11.8 0 14.5-9.7 14.5-9.7z"/>
+        <path fill="#A7FFEB" d="M80.9 128h5.6v-10.1zm-21 0h13.8l-6.9-10zm-11.5 0h4.3l-4.3-7.8z"/>
+        <path fill="#1DE9B6"
+              d="M66.8 118l-.5-.8.5-.4-22.9-17.3h-.1l-3.4 4.4-.6.8 8.6 15.5 4.3 7.8h7.2zm26.5-12.2l.8-1.5-6.4-4.4-20.9 16.9-.5.4.5.8 6.9 10h7.2l5.6-10.1z"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-6" y="384">
+        <path fill="#FF8A80" d="M0 0h128v128H0z"/>
+        <path fill="#F2A600"
+              d="M30.3 43.7c3.1-.4 6.1 1 7.7 3.4 10.3-2 11-11.5 12.6-14.1 4.5 5.8 13.3 17.8 39.5 14.5 1.6-2.7 4.7-4.3 8-3.8.4 0 .7-1.9 1-1.8-.1-2.2-.3-4.4-.8-6.4v-.1C94.9 19.6 80.8 7.8 64 7.8c-15 0-27.8 9.4-32.8 22.6C29.8 34 29 38 28.9 42.1l.7 1.8.7-.2z"/>
+        <path d="M89.1 102.8l.4-.3c-.1 0-.3.1-.4.3zm2.2-1.9l-.5.4c.2-.2.3-.3.5-.4zm-18 9.2c-.1 0-.2 0-.3.1.1-.1.2-.1.3-.1zm-2.4.4h-.2.2zm16.1-6.2l.3-.2-.3.2zm-9 4.5l.5-.2-.5.2zm4.9-2.1l.2-.1c-.1.1-.1.1-.2.1zm2-1.1l.5-.3-.5.3zm-4.6 2.3l.4-.2c-.1.1-.2.2-.4.2zm12.6-8.6zM30.3 41.7c-.3 0-.5.1-.7.1.2 0 .5 0 .7-.1zm35.9 69.2c-.6 0-1.2 0-1.9-.1.6 0 1.2.1 1.9.1z"
+              fill="none"/>
+        <path fill="#F2A600"
+              d="M41.5 101.3l.8.7c-.3-.3-.5-.5-.8-.7zm1.4 1.1c.2.2.5.4.8.6-.3-.2-.6-.4-.8-.6zm1.3 1.1c.2.2.5.4.8.5-.2-.1-.5-.3-.8-.5zm54.1-68.1zM38.7 98.3c.4.4.8.8 1.1 1.3-.4-.4-.8-.8-1.1-1.3zm-7.6-67.9zm15.4 74.7l.5.3-.5-.3zm4.6 2.4l.3.1c-.1 0-.2 0-.3-.1zm-3.1-1.6l.5.3c-.2-.1-.4-.2-.5-.3zm13.6 4.6l-.9-.1.9.1zM88.9 67c-1.6 1.4-3.1 2.7-4.4 3.9-3.3 3.8-6.3 10.3-1 18.7 5.7-8.1 10.6-17.7 13.2-29.1L88.9 67zM41 100.8l-.8-.8.8.8zm8.5 6l.4.2c-.1-.1-.2-.2-.4-.2zm9.5 3.3h.1-.1zm-46.1 17.3c4.5-7.1 8.6-12.7 11.7-16.6 1.5-2 2.8-3.5 3.7-4.5 1-1.1 1.5-1.7 1.5-1.7l.2-.2c2.4-2.7 5.3-4.5 8.4-5.4.1-.2.2-.4.2-.5 0-.1 0-.2.1-.2 13.6-13.3 4.7-26.5-1.5-32.9l-4.4-3.8c-2.6 8.7-8.5 18.2-20.1 26.9-6.4 4.1-10.6 11.4-10.6 19.7 0 8.2 4.1 15.4 10.4 19.8l.4-.6z"/>
+        <path fill="#FFE0B2"
+              d="M67.1 110.9h-2 2zM38.8 98.1c-.4.3 2.1 5.6 2.5 5.9 1.8 1.8 4.1 2.2 6.3 3.5 4.8 2.7 10.2 3.6 15.6 4.2 5.7.6 11.5-.5 16.8-2.6 2.5-1 4.8-2.3 7-3.8 1.2-.8 2.2-1.6 3.3-2.6.4-.3 2.4-3.6 2.7-3.3-4-3.3-8-6.9-10.4-11.6-2.2-4.2-2.6-9.1-.5-13.4 1.7-3.3 4.5-5.6 7.3-7.9 2.2-1.8 4.3-3.6 6.5-5.5l4.7-3.9c1-.8 2.1-1.6 2.8-2.7 1.5-2 1.9-4.6 1.2-7-1.4-4.8-7.1-7.2-11.5-4.9-1 .5-1.9 1.3-2.6 2.2l-.5.7-1.1.1c-.8.1-1.6.2-2.4.2-2.6.2-5.3.3-7.9.1-6.8-.3-13.5-2.1-19.1-6-3.6-2.4-6.3-5.6-8.9-9-.5.9-.8 1.9-1.1 2.8-.5 1.4-1 2.7-1.6 4-1.7 3.3-4.5 5.8-8.2 6.9-.5.2-1.1.3-1.7.4-.3-.5-.7-.9-1.1-1.3-.9-.6-2.1-1.3-3.3-1.6-2.5-.7-5.2-.2-7.2 1.4-3.9 3.1-4 9.2-.1 12.5l10.5 8.9c2.4 2 4.3 4.8 5.9 7.4 2.1 3.5 3.4 7.6 3.2 11.7-.3 5.6-3.3 10.4-7.1 14.2-.1.1 13.6-13.3 0 0z"/>
+        <path fill="#80DEEA"
+              d="M93 99.4l-.2-.1-1.5 1.5-.5.4c-.4.4-.9.8-1.3 1.1l-.4.3c-.6.5-1.2.9-1.8 1.3l-.3.2c-.5.4-1.1.7-1.6 1l-.5.3-1.8 1-.2.1c-.7.4-1.4.7-2.1 1l-.4.2-1.8.7-.5.2c-.8.3-1.5.5-2.3.7l-2.4.6c-.1 0-.2 0-.3.1l-2.1.4h-.2c-1.5.2-3 .3-4.5.4h2-1.9c-.6 0-1.2 0-1.9-.1l-2.7-.3-.9-.1-1.6-.3h-.1c-2.7-.6-5.2-1.4-7.6-2.4l-.3-.1c-.4-.2-.8-.4-1.2-.5l-.4-.2c-.4-.2-.7-.4-1-.5l-.5-.3-1-.6-.5-.3c-.5-.3-1-.6-1.5-1-.3-.2-.5-.4-.8-.5l-.6-.5-.8-.6-.6-.5c-.3-.2-.5-.4-.8-.7l-.5-.5-.8-.8-.4-.4c-.4-.4-.8-.8-1.1-1.3-.1.2-.2.4-.2.5-3.1.9-6 2.7-8.4 5.4l-.2.2s-.5.6-1.5 1.7c-.9 1.1-2.2 2.6-3.7 4.5-3.1 3.9-7.2 9.5-11.7 16.6-.1.2-.2.4-.4.6H118c-2.7-5.4-5.1-9.8-7.1-13.1-1.3-2.2-2.3-3.9-3.1-5.1-.9-1.3-1.3-2-1.3-2l-.2-.3c-.6-.9-1.2-1.7-1.9-2.4-3.3-3.3-7.4-5.2-11.4-5.5z"/>
+        <circle fill="#444" cx="78.9" cy="51.3" r="2"/>
+        <circle fill="#444" cx="53.2" cy="51.3" r="2"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-7" x="128" y="384">
+        <path fill="#FFCC80" d="M41.6 123.8s0 .1-.1.1l.3-.4c-.1.2-.1.2-.2.3z"/>
+        <path fill="#80D8FF" d="M0 0h128v128H0z"/>
+        <path fill="#5D4037"
+              d="M29.3 123.1c4.1-6.9 7.8-12.4 10.5-16.2 1.4-1.9 2.5-3.4 3.3-4.4l1.7-2s0-.1.1-.1l.3-.3C49 95.4 51.9 91 54.1 87c9.5-17.8 6.1-29.3-.3-35.9-1.6-1.6-3.2-2.9-4.7-4-.9-.6-1.7-1.1-2.4-1.6-1.8-1-3.1-1.6-3.3-1.7-1.3-1.2-2.2-2.9-2.5-4.9-.5-4.3 2.2-6.2 6.1-6.8 1-.1 2-.1 2.9.2 9.6-1.8 11.9-8 13.3-10.6 4 5.7 13.9 9.8 38 6.1C97.1 14.3 84.5 5.4 71 7.4c-4.4.7-8.3 2.4-11.8 4.9l-.1.1c-1.1.8-2.1 1.6-3 2.6l-35 30C12.9 49.8 7.3 58.8 7.3 69.1c0 2.7.4 5.3 1.1 7.8.3 4.9-.1 11.7-2.9 18.6-.2.5-.5 1-.7 1.6-1.2 3.2-1.9 6.6-1.9 10.2 0 8.2 3.5 15.6 9.1 20.7h14.5c1-1.7 1.9-3.4 2.8-4.9zm20.5-90.8z"/>
+        <path fill="#FFCC80"
+              d="M63.1 19.8c-1.4 2.6-5.7 8.8-15.3 10.6-.9-.3-1.9-.3-2.9-.2-3.9.6-6.7 4.5-6.1 8.8.3 2 1.2 3.7 2.5 4.9.2.1 1.5.6 3.3 1.7.7.4 1.6 1 2.4 1.6 1.5 1.1 3.1 2.4 4.7 4 6.4 6.6 11.8 18.1 2.3 35.9 0 0 7.3 15.5 23.2 16.9 6.1.5 13.3-5.6 22.1-8.8-.1-.7-.3-1.4-.5-2.1-.3-1.3-3.9-21.5-4.1-28.2-.2-7.4.7-11.9 1.9-14.8h8.8L103 39.7c-.2-2.4-.4-4.7-.7-6.7-.2-1.8-.6-3.5-1.1-5.2-24.2 3.7-34-2.3-38.1-8zm22.3 19.6c0-.9.7-1.6 1.6-1.6.9 0 1.6.7 1.6 1.6 0 .9-.7 1.6-1.6 1.6-.9 0-1.6-.7-1.6-1.6zm-35.6-7.1zm-4.9 68.1s0 .1-.1.1l.3-.4-.2.3z"/>
+        <circle fill="#444" cx="86.9" cy="39.4" r="2"/>
+        <path fill="#00BFA5"
+              d="M77.2 98.5C61.3 97.2 54.1 87 54.1 87c-2.2 4-5.1 8.4-8.9 13.1l-.3.4c-.5.7-1.1 1.3-1.7 2-.8 1-2 2.5-3.3 4.4-2.8 3.8-6.5 9.2-10.5 16.2-.9 1.6-1.8 3.2-2.8 4.9h80.8l-.3-1c-2.6-10.3-5.4-21.4-7.7-31.9-8.8 3.1-16.1 3.9-22.2 3.4z"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-8" x="256" y="384">
+        <path fill="#FFCC80" d="M41.6 123.8s.1-.2.2-.3c-.1.2-.1.2-.2.3z"/>
+        <path fill="#B388FF" d="M0 0h128v128H0z"/>
+        <path d="M64.1 34.5c-.1.1-.2.2-.3.2.1-.1.2-.2.3-.2zm.9-.7c-.1.1-.2.1-.2.2l.2-.2zm-1.9 1.3c-.1.1-.2.2-.4.2.2 0 .3-.1.4-.2zm-5.4 2.6l-.5.2c.2-.1.4-.2.5-.2zm2.8-1.1l-.2.1s.1-.1.2-.1zm-1.3.5l-.4.2c.1 0 .2-.1.4-.2zm8.8-6.3l-.2.3c.1-.1.2-.2.2-.3zm-1.9 2.1l-.3.2.3-.2zm1.4-1.4l-.3.3c.1-.2.2-.3.3-.3zm-.7.6l-.3.3c.2-.1.3-.2.3-.3zM62 35.8l-.3.2.3-.2zm5 47l-.3 1.6.3-1.6zM56.2 38.1l-.5.1c.1 0 .3 0 .5-.1zm10.4 46.5c-.1.5-.2 1.1-.4 1.6.2-.5.3-1 .4-1.6zm.6-3.6l-.2 1.6c.1-.5.1-1 .2-1.6zm-5.6-20.8c.1.1.2.3.4.4l-.4-.4zm7.5-30.9l-.6.9c.5-.7.9-1.3 1.2-1.8-.1.2-.3.5-.5.7 0 .1 0 .2-.1.2zM67.2 81c1-10.6-2.4-17.3-5.2-20.4 2.7 3.1 6.2 9.8 5.2 20.4zm-1 5.5c-.1.6-.3 1.1-.5 1.7.2-.6.4-1.2.5-1.7zm-5.6-27.4l.2.2c-.1 0-.2-.1-.2-.2zm-.3-.2s.1.1.2.1c-.1 0-.1 0-.2-.1zm-.2-.1zm-.1-.1zm1.7 38.2c-.1-.1-.2-.2-.4-.3l.1.1.3.2zm-.5-37.1l.3.3-.3-.3zm-.3-.4l.3.3c-.2-.1-.2-.2-.3-.3z"
+              fill="none"/>
+        <path fill="#2A56C6" d="M98.8 94.8v.2-.2z"/>
+        <path fill="#FFE0B2" d="M2.8 109.6L0 110.8V128h15.5L2.8 109.6z"/>
+        <path fill="#DD2C00"
+              d="M91.9 128h5.6c-3.8-12-4.4-16-4.9-20.1-.1-.5-.5-2.4-.5-2.9-2.6.7-5.2 1.1-8 1.2-8.7-.2-16.5-3.8-22.3-9.3l-.2-.2-.1-.1c-2.9.2-7.6.2-10.8.6-4.6.6-9.6 1.3-15 2.4-4.7.9-11.2 2.7-33.3 9.3l.5.7L15.5 128h70.2"/>
+        <path fill="#FFEB3B"
+              d="M66.2 86.5c0-.1 0-.1.1-.2.1-.6.3-1.1.4-1.6v-.2l.3-1.6v-.1l.2-1.6c1-10.6-2.4-17.3-5.2-20.4-.1-.1-.2-.3-.4-.4l-.1-.1-.3-.3-.1-.1-.3-.3-.1-.1-.2-.2-.1-.1c-.1-.1-.1-.1-.2-.1 0 0-.1 0-.1-.1l-.1-.1s-.1 0-.1-.1c-1.6-1.7-3.3-3-4.9-4.1-.9-.6-1.7-1.2-2.5-1.6-1.8-1.1-3.2-1.6-3.4-1.7-1.3-1.2-2.3-3-2.6-5-.6-4.4.3-6.4 4.3-7.1 1-.2 2-.1 3 .2l.1-.7c.6-.1 1.1-.2 1.6-.4l.5-.1 1.1-.3.5-.2 1-.3.4-.2c.4-.1.7-.3 1.1-.5l.2-.1 1.2-.6.3-.2c.3-.1.5-.3.8-.5.1-.1.3-.2.4-.2.2-.1.4-.3.7-.4.1-.1.2-.2.3-.2l.7-.5c.1-.1.2-.1.2-.2.3-.2.5-.4.8-.7.1-.1.2-.1.2-.2l.5-.5.3-.3.4-.4.3-.3.3-.4c.1-.1.2-.2.2-.3.2-.2.3-.4.4-.6l.6-.9.1-.2c.2-.3.3-.5.5-.7 4.2 5.9 14.5 10.4 39.3 6.7-4.2-14-17.3-23.5-31.3-21.4-5.3.8-10.1 3.2-14 6.6l-.2.2c-.5.4-1 .9-1.4 1.4-5.3 4.8-23.3 19.8-52.2 26.5-3.9 0-7.4 1.6-9.9 4.2v19.3c.3.3.6.6.9.8l-.3.9S30.9 96.4 64 90.3l1.6-1.8c0-.1 0-.1.1-.2.2-.7.4-1.3.5-1.8z"/>
+        <path fill="#FFE0B2"
+              d="M84 106.2c2.8-.1 5.4-.5 8-1.2l.8-3.8c4.3-19.3 9.7-37.4 15-52.9h6.9l-4.8-8.2c-.2-1.9-.6-3.6-1.2-5.3-24.8 3.7-35-2.5-39.1-8.4-.3.5-.7 1.1-1.2 1.8l-.4.6-.2.3-.3.4-.3.3-.4.4-.3.3-.5.5s-.1 0-.2.1c-.3.2-.5.4-.8.7-.1.1-.2.1-.2.2-.2.2-.4.3-.7.5-.1.1-.2.2-.3.2-.2.1-.4.3-.7.4-.1.1-.2.2-.4.2l-.8.5-.3.2-1.2.6-.2.1-1.1.5-.4.2c-.3.1-.6.2-1 .3l-.5.2c-.3.1-.7.2-1.1.3l-.5.1-1.6.4c-.1.2-.1.5-.1.7-.9-.3-1.9-.4-3-.2-4.1.6-6.9 4.7-6.3 9.1.3 2 1.2 3.8 2.6 5 .3.1 1.6.7 3.4 1.7.8.4 1.6 1 2.5 1.6 1.5 1.1 3.2 2.5 4.9 4.1l.1.1.1.1.1.1s.1.1.2.1c0 0 .1 0 .1.1l.2.2.1.1.3.3.1.1.3.3.1.1s.2.3.4.4c2.7 3.1 7.2 9.8 6.2 20.4l-.2 1.6v.1l-.3 1.6v.2c-.1.5-.2 1.1-.4 1.6 0 .1 0 .1-.1.2-.1.6-.3 1.1-.5 1.7 0 .1 0 .1-.1.2-.8 2.6-1.8 5.3-3.3 8.3.1.1.2.2.4.3 5.7 5.6 13.5 9.1 22.2 9.3z"/>
+        <path fill="#DD2C00" d="M85.6 128h5.1"/>
+        <circle fill="#444" cx="95.8" cy="46.5" r="2"/>
+    </svg>
+    <svg viewBox="0 0 128 128" height="128" width="128" id="svg-9" x="384" y="384">
+        <path fill="#FFCC80" d="M41.6 123.8s0 .1-.1.1l.3-.4c-.1.2-.1.2-.2.3z"/>
+        <path fill="#FFFF8D" d="M0 0h128v128H0z"/>
+        <path fill="#C2C2C2"
+              d="M83.2 26.6c.1-.9.2-1.8.2-2.7C83.4 13.5 75 5 64.6 5s-18.8 8.4-18.8 18.8c0 1.4.2 2.7.4 4 5.4-4 12.2-6.4 19.4-6.4 6.5.1 12.5 2 17.6 5.2z"/>
+        <path fill="#848484"
+              d="M41.4 58.4c9.6-1.9 10.3-10.7 11.7-13.2 4.2 5.4 12.4 16.6 36.8 13.5 1.5-2.5 4.4-6 7.4-5.6.3 0 .6.1 1 .2C98 42 92 32.1 83.1 26.5 78 23.3 72 21.4 65.6 21.4c-7.3 0-14 2.4-19.4 6.4-7.9 5.9-13.1 15.2-13.3 25.7.4-.1.9 1.7 1.4 1.7 2.8-.4 5.6 1 7.1 3.2z"/>
+        <path fill="#FF5722"
+              d="M109.6 121.5c-1.2-2-2.2-3.6-2.9-4.8l-1.2-1.8-.2-.3c-.5-.8-1.1-1.6-1.8-2.3-3.1-3.3-6.9-5.1-10.8-5.3 0 0 .1 0 .1.1l-.2-.1c-3.4 3.7-7.8 6.6-12.7 8.5V128h33.4c-1.4-2.5-2.6-4.7-3.7-6.5zM42 106l-.2.5c-2.9.8-5.6 2.5-7.8 5.1l-.2.2s-.5.6-1.4 1.6c-.9 1-2 2.4-3.5 4.2-2.1 2.6-4.7 6.1-7.5 10.4h28v-15.7c-2.8-1.7-5.3-3.8-7.4-6.3z"/>
+        <path fill="#E0F7FA" d="M67.7 117.7c-6.8-.2-13.1-2.1-18.3-5.4V128h30.5v-12.6c-3.8 1.4-7.9 2.2-12.2 2.3z"/>
+        <path fill="#FFE0B2"
+              d="M42 106c2.1 2.4 4.6 4.5 7.4 6.3 5.2 3.3 11.5 5.3 18.3 5.4 4.3-.1 8.4-.9 12.1-2.3 5-1.9 9.3-4.8 12.7-8.5l.2.1s-.1 0-.1-.1c-15.7-12.3-12-21.7-7.8-26.6 1.3-1.1 2.6-2.3 4.1-3.6l12.2-10.3c1.4-1.2 2.4-2.8 2.7-4.8.5-3.8-1.9-7.3-5.4-8.2-.3-.1-.6-.2-1-.2-3.1-.4-5.9 1.1-7.4 3.6-24.4 3.1-32.7-8.1-36.8-13.5-1.5 2.4-2.1 11.3-11.7 13.2-1.6-2.3-4.3-3.6-7.2-3.2l-1.4.3c-3.4 1.1-5.5 4.5-5 8.1.3 1.9 1.3 3.6 2.6 4.7l10.2 8.7c5.8 6 14.1 18.3 1.4 30.7-.1.1-.1.2-.1.2zm37.6-45.3c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c-.1-.9.6-1.5 1.5-1.5zm-24 0c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5c-.1-.9.6-1.5 1.5-1.5z"/>
+        <circle fill="#444" cx="79.6" cy="62.2" r="2"/>
+        <circle fill="#444" cx="55.6" cy="62.2" r="2"/>
+    </svg>
+ </defs></svg>
diff --git a/public/assets/angular-material-assets/img/100-0.jpeg b/public/assets/angular-material-assets/img/100-0.jpeg
new file mode 100644 (file)
index 0000000..dfac4ab
Binary files /dev/null and b/public/assets/angular-material-assets/img/100-0.jpeg differ
diff --git a/public/assets/angular-material-assets/img/100-1.jpeg b/public/assets/angular-material-assets/img/100-1.jpeg
new file mode 100644 (file)
index 0000000..8c12d97
Binary files /dev/null and b/public/assets/angular-material-assets/img/100-1.jpeg differ
diff --git a/public/assets/angular-material-assets/img/100-2.jpeg b/public/assets/angular-material-assets/img/100-2.jpeg
new file mode 100644 (file)
index 0000000..6098cc0
Binary files /dev/null and b/public/assets/angular-material-assets/img/100-2.jpeg differ
diff --git a/public/assets/angular-material-assets/img/angular.png b/public/assets/angular-material-assets/img/angular.png
new file mode 100644 (file)
index 0000000..64d4524
Binary files /dev/null and b/public/assets/angular-material-assets/img/angular.png differ
diff --git a/public/assets/angular-material-assets/img/bg9.jpg b/public/assets/angular-material-assets/img/bg9.jpg
new file mode 100644 (file)
index 0000000..bbd16fa
Binary files /dev/null and b/public/assets/angular-material-assets/img/bg9.jpg differ
diff --git a/public/assets/angular-material-assets/img/bgWhitePaper.jpg b/public/assets/angular-material-assets/img/bgWhitePaper.jpg
new file mode 100644 (file)
index 0000000..6329d82
Binary files /dev/null and b/public/assets/angular-material-assets/img/bgWhitePaper.jpg differ
diff --git a/public/assets/angular-material-assets/img/docArrow.png b/public/assets/angular-material-assets/img/docArrow.png
new file mode 100644 (file)
index 0000000..a307653
Binary files /dev/null and b/public/assets/angular-material-assets/img/docArrow.png differ
diff --git a/public/assets/angular-material-assets/img/donut.jpg b/public/assets/angular-material-assets/img/donut.jpg
new file mode 100644 (file)
index 0000000..bd5b9c9
Binary files /dev/null and b/public/assets/angular-material-assets/img/donut.jpg differ
diff --git a/public/assets/angular-material-assets/img/icons/addShoppingCart.svg b/public/assets/angular-material-assets/img/icons/addShoppingCart.svg
new file mode 100644 (file)
index 0000000..b374b90
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g id="addShoppingCart"><g id="add-shopping-cart"><path d="M11 9h2V6h3V4h-3V1h-2v3H8v2h3v3zm-4 9c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-9.83-3.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.86-7.01L19.42 4h-.01l-1.1 2-2.76 5H8.53l-.13-.27L6.16 6l-.95-2-.94-2H1v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.13 0-.25-.11-.25-.25z"/></g></svg>
diff --git a/public/assets/angular-material-assets/img/icons/android.svg b/public/assets/angular-material-assets/img/icons/android.svg
new file mode 100644 (file)
index 0000000..306b4e1
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g id="android"><path d="M6 18c0 .55.45 1 1 1h1v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h2v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h1c.55 0 1-.45 1-1V8H6v10zM3.5 8C2.67 8 2 8.67 2 9.5v7c0 .83.67 1.5 1.5 1.5S5 17.33 5 16.5v-7C5 8.67 4.33 8 3.5 8zm17 0c-.83 0-1.5.67-1.5 1.5v7c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5v-7c0-.83-.67-1.5-1.5-1.5zm-4.97-5.84l1.3-1.3c.2-.2.2-.51 0-.71-.2-.2-.51-.2-.71 0l-1.48 1.48C13.85 1.23 12.95 1 12 1c-.96 0-1.86.23-2.66.63L7.85.15c-.2-.2-.51-.2-.71 0-.2.2-.2.51 0 .71l1.31 1.31C6.97 3.26 6 5.01 6 7h12c0-1.99-.97-3.75-2.47-4.84zM10 5H9V4h1v1zm5 0h-1V4h1v1z"/></g></svg>
diff --git a/public/assets/angular-material-assets/img/icons/angular-logo.svg b/public/assets/angular-material-assets/img/icons/angular-logo.svg
new file mode 100644 (file)
index 0000000..513382a
--- /dev/null
@@ -0,0 +1,16 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="-10 -10 120 120">
+  <defs>
+    <filter id="shadow" x="-50%" y="-50%" width="200%" height="200%">
+      <feOffset result="offOut" in="SourceAlpha" dx="0" dy="0"></feOffset>
+      <feGaussianBlur result="blurOut" in="offOut" stdDeviation="3"></feGaussianBlur>
+      <feComponentTransfer in="blurOut" result="opacityOut">
+        <feFuncA type="linear" slope="0.5"></feFuncA>
+      </feComponentTransfer>
+      <feBlend in="SourceGraphic" in2="opacityOut" mode="normal"></feBlend>
+    </filter>
+  </defs>
+  <path d="      M 5 18.25      L 50 2.25      L 96 18      L 88.5 77      L 50 98.25      L 12 77.25      Z" fill="black" filter="url(#shadow)" class="outline"></path>
+  <path d="      M 5 18.25      L 50 2.25      L 50 98.25      L 12 77.25      Z" fill="#de3641" class="left"></path>
+  <path d="      M 50 2.25      L 96 18      L 88.5 77      L 50 98.25      Z" fill="#b13138" class="right"></path>
+  <path d="      M 50 13      L 79.25 75.5      L 69.25 75.5      L 63 61.25      L 50 61.25      L 50 52.75      L 59.5 52.75      L 50 33.1      L 42 52.75      L 50 52.75      L 50 61.25      L 38.1 61.25      L 32.5 75.5      L 21.75 75.5      Z" fill="white" class="letter"></path>
+</svg>
\ No newline at end of file
diff --git a/public/assets/angular-material-assets/img/icons/bower-logo.svg b/public/assets/angular-material-assets/img/icons/bower-logo.svg
new file mode 100644 (file)
index 0000000..e78c9c1
--- /dev/null
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+   width="512px" height="512px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
+<g>
+       <g id="leaf">
+               <path fill="#00ACEE" d="M434.625,63.496c-67.822,0-118.399,71.68-95.018,123.167C435.596,186.664,396.518,98.058,434.625,63.496z"
+                       />
+       </g>
+       <path id="body" fill="#FFCC2F" d="M456.534,256.992c0-22.79-108.627-34.129-169.139-37.663
+               c-60.511-3.533-281.592,38.389-255.42,93.813c26.173,55.426,92.581,114.358,167.313,114.358c38.716,0,83.584-27.284,86.053-77.38
+               C330.121,335.163,456.534,334.371,456.534,256.992z"/>
+       <path id="wing_tip" fill="#2BAF2B" d="M400.981,272.143c7.02,7.104-15.222,26.295-34.606,17.262
+               c8.731,19.688-29.676,36.064-48.336,22.026c1.998,15.865-36.122,24.996-48.285,7.292c3.136,8.441,5.757,14.898,8.229,20.209
+               c-0.029-0.09-0.046-0.149-0.046-0.149c6.324,8.279,14.929,14.939,52.394,14.939c57.727,0,150.97-43.849,150.97-76.039
+               c0-26.643-9.992-29.14-27.196-27.198c-17.208,1.942-107.17,11.291-126.306,7.534C338.182,260.229,390.54,270.259,400.981,272.143z"
+               />
+       <path id="head" fill="#EF5734" d="M198.51,48.82c-110.382,0-221.179,109.721-168.451,261.056
+               c35.817,21.53,83.576,12.995,94.278,1.532c16.178,5.171,30.612,7.347,43.513,7.347c67.047,0,124.34-71.235,124.34-160.257
+               C292.189,67.196,231.93,48.82,198.51,48.82z"/>
+       <path id="eye_rim" fill="#FFCC2F" d="M153.308,146.522c0,24.632,19.969,44.603,44.603,44.603c24.633,0,44.603-19.971,44.603-44.603
+               c0-24.633-19.97-44.603-44.603-44.603C173.277,101.92,153.308,121.89,153.308,146.522z"/>
+       <path id="eye" fill="#543729" d="M171.207,146.522c0,14.747,11.956,26.704,26.704,26.704c14.748,0,26.703-11.957,26.703-26.704
+               c0-14.748-11.955-26.704-26.703-26.704C183.163,119.819,171.207,131.774,171.207,146.522z"/>
+       <ellipse id="pupil_highlight" fill="#FFFFFF" cx="197.91" cy="134.674" rx="15.56" ry="9.675"/>
+       <path id="beak" fill="#CECECE" d="M289.401,123.675c-20.275,11.807-19.604,50.03-10.595,68.681
+               c17.445-6.466,41.752-19.291,45.527-21.585c3.773-2.293-2.088-10.989,12.559-10.989c20.315,0,38.684,6.348,43.956,8.634
+               C377.511,161.547,335.758,123.675,289.401,123.675z"/>
+       <path id="outline" fill="#543729" d="M502.214,250.797c-26.335-25.305-158.017-41.1-199.568-45.698
+               c2.014-4.754,3.726-9.669,5.142-14.731c5.665-2.481,11.776-4.789,18.101-6.716c0.77,2.272,4.397,10.98,6.465,15.112
+               c83.553,2.305,87.844-62.09,91.24-79.732c3.323-17.25,3.154-33.917,31.812-64.388C412.709,42.201,351.31,73.928,330.742,121.15
+               c-7.728-2.896-15.474-5.035-23.136-6.357c-5.488-22.146-34.077-83.845-109.097-83.845c-48.585,0-97.581,20.063-134.421,55.045
+               c-19.852,18.85-35.445,41.234-46.344,66.53C5.97,179.851,0,209.94,0,241.957C0,353.462,76.126,451.18,119.139,451.18
+               c18.784,0,34.943-14.067,38.736-26.675c3.181,8.645,12.938,35.522,16.142,42.364c4.737,10.117,26.642,18.872,36.229,8.373
+               c12.326,6.849,34.943,10.973,47.27-7.289c23.739,5.022,44.728-9.135,45.184-26.026c11.649-0.622,17.363-16.978,14.819-30.001
+               c-1.875-9.591-21.904-44-29.719-55.877c15.468,12.58,54.644,16.142,59.401,0.008c24.936,19.571,63.797,9.301,66.879-6.619
+               c30.301,7.874,65.054-9.417,59.348-30.359C522.102,315.711,515.872,263.921,502.214,250.797z M375.456,164.958
+               c-12.821-5.033-29.084-8.217-40.482-8.217c-16.164,0-26.009,9.16-41.218,9.16c-3.193,0-10.812,0.016-16.926-2.162
+               c4.021,4.217,9.025,6.505,18.725,6.505c5.793,0,17.263-2.958,26.553-5.752c0.129,1.956,0.334,3.898,0.61,5.826
+               c-17.402,4.161-35.664,15.231-40.949,18.105c-11.755-25.958-1.65-50.505,7.697-61.837
+               C331.331,126.686,365.144,155.433,375.456,164.958z M393.557,163.001l-6.406-5.979c-6.575-6.159-13.43-11.731-20.469-16.678
+               c10.483-20.801,23.658-43.514,40.298-57.565c-18.314,7.381-36.397,29.445-47.089,53.03c-5.448-3.464-10.98-6.554-16.561-9.255
+               c14.913-31.834,49.568-58.42,87.762-60.497C405.509,89.257,415.114,135.563,393.557,163.001z M341.006,184.7
+               c-2.821-6.114-5.677-16.27-5.328-22.239c4.753-0.112,13.868,1.67,15.335,2.016c-0.557,2.803-0.855,8.944-0.866,9.739
+               c0.903-1.556,3.41-6.922,4.43-9.029c9.127,1.744,21.126,4.659,28.161,7.938C374.478,178.473,360.439,184.293,341.006,184.7z
+                M283.971,112.911c-33.381,33.832-20.199,76.63-8.046,95.976c-17.29,28.761-51.28,48.437-90.765,57.389
+               c44.328,0,70.397-11.409,85.563-22.586c9.677-7.131,14.928-14.17,17.608-18.088c65.72,4.251,169.783,25.423,179.935,32.281
+               c4.074,2.753,8.278,8.842,8.895,14.668c-49.387-6.914-138.407-14.188-161.719-15.424c16.549,2.347,137.241,25.202,158.163,30.552
+               c-6.368,10.384-20.872,17.715-42.733,12.621c11.812,16.093-11.125,35.399-43.071,24.766c7.032,15.799-21.413,30.021-53.741,13.555
+               c0.411,15.805-40.105,17.626-56.123,0.162c0.306,2.082,2.207,6.066,3.028,7.809c-5.162,46.15-42.961,74.783-81.677,74.783
+               c-94.794,0-177.375-76.989-177.375-179.417c0-108.292,80.03-189.096,176.597-189.096
+               C253.842,52.861,278.836,96.412,283.971,112.911z"/>
+</g>
+</svg>
\ No newline at end of file
diff --git a/public/assets/angular-material-assets/img/icons/cake.svg b/public/assets/angular-material-assets/img/icons/cake.svg
new file mode 100644 (file)
index 0000000..512fae0
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g id="cake"><path d="M12 6c1.11 0 2-.9 2-2 0-.38-.1-.73-.29-1.03L12 0l-1.71 2.97c-.19.3-.29.65-.29 1.03 0 1.1.9 2 2 2zm4.6 9.99l-1.07-1.07-1.08 1.07c-1.3 1.3-3.58 1.31-4.89 0l-1.07-1.07-1.09 1.07C6.75 16.64 5.88 17 4.96 17c-.73 0-1.4-.23-1.96-.61V21c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-4.61c-.56.38-1.23.61-1.96.61-.92 0-1.79-.36-2.44-1.01zM18 9h-5V7h-2v2H6c-1.66 0-3 1.34-3 3v1.54c0 1.08.88 1.96 1.96 1.96.52 0 1.02-.2 1.38-.57l2.14-2.13 2.13 2.13c.74.74 2.03.74 2.77 0l2.14-2.13 2.13 2.13c.37.37.86.57 1.38.57 1.08 0 1.96-.88 1.96-1.96V12C21 10.34 19.66 9 18 9z"/></g></svg>
\ No newline at end of file
diff --git a/public/assets/angular-material-assets/img/icons/codepen-logo.svg b/public/assets/angular-material-assets/img/icons/codepen-logo.svg
new file mode 100644 (file)
index 0000000..c26d0b0
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500" viewBox="0 0 500 500"><path d="M250 0C111.928 0 0 111.927 0 250c0 138.077 111.927 250 250 250 138.073 0 250-111.923 250-250C500 111.928 388.073 0 250 0zm0 458.943C134.79 458.943 41.06 365.21 41.06 250c0-115.207 93.73-208.94 208.94-208.94S458.94 134.793 458.94 250c0 115.21-93.73 208.943-208.94 208.943z"/><path d="M404.462 201.172c-.028-.195-.076-.382-.11-.577-.064-.374-.134-.748-.23-1.114-.058-.22-.14-.43-.207-.64-.106-.327-.212-.652-.342-.97-.09-.22-.196-.438-.297-.65-.14-.3-.285-.593-.452-.877-.122-.212-.25-.416-.377-.618-.18-.277-.362-.546-.562-.806-.146-.195-.3-.39-.454-.578-.21-.243-.43-.487-.663-.716-.174-.178-.346-.357-.528-.52-.245-.22-.497-.432-.753-.634-.198-.155-.395-.31-.602-.456-.078-.05-.146-.114-.22-.163L257.37 97.656c-4.465-2.976-10.275-2.976-14.74 0l-141.294 94.196c-.073.05-.142.114-.22.163-.207.146-.402.3-.597.456-.26.204-.513.416-.753.634-.187.164-.357.342-.533.52-.23.23-.45.474-.658.717-.16.19-.313.384-.46.578-.194.26-.382.53-.556.806-.134.203-.26.406-.382.618-.163.284-.31.577-.45.877-.103.21-.21.43-.298.65-.13.317-.236.642-.34.968-.07.21-.147.422-.21.642-.096.366-.16.74-.23 1.114-.032.195-.08.382-.106.577-.077.57-.122 1.147-.122 1.733V297.1c0 .585.044 1.162.122 1.74.025.188.074.382.106.568.07.374.134.748.23 1.114.063.22.14.432.21.643.104.324.21.65.34.975.09.222.195.433.297.645.143.3.29.592.45.885.123.204.25.406.383.61.174.276.362.545.557.806.146.203.3.39.46.577.207.243.426.488.657.716.175.177.346.356.533.52.24.22.492.43.752.634.194.155.39.31.597.454.077.05.146.115.22.163L242.63 402.35c2.232 1.487 4.803 2.236 7.372 2.236 2.566 0 5.135-.75 7.368-2.236l141.295-94.197c.074-.047.142-.112.22-.162.207-.145.403-.3.602-.454.256-.203.508-.414.752-.635.182-.163.353-.343.527-.52.232-.23.452-.474.664-.717.155-.187.31-.374.455-.577.2-.26.383-.53.562-.806.126-.204.255-.406.377-.61.167-.293.312-.585.452-.885.1-.212.206-.423.297-.645.13-.324.235-.65.342-.975.068-.21.15-.423.206-.643.1-.366.168-.74.233-1.114.033-.187.08-.38.11-.568.072-.578.118-1.155.118-1.74v-94.197c0-.585-.045-1.162-.118-1.73zm-141.176-67.64l104.088 69.388-46.493 31.103-57.594-38.527v-61.963zm-26.57 0v61.964l-57.593 38.527-46.497-31.103 104.09-69.387zm-114.726 94.24L155.228 250l-33.238 22.233V227.77zm114.725 138.7l-104.088-69.39 46.497-31.093 57.592 38.52v61.96zM250 281.43L203.014 250 250 218.574l46.986 31.428L250 281.432zm13.286 85.04v-61.963l57.595-38.52 46.494 31.093-104.088 69.388zm114.724-94.238L344.777 250l33.233-22.23v44.464z"/></svg>
\ No newline at end of file
diff --git a/public/assets/angular-material-assets/img/icons/copy.svg b/public/assets/angular-material-assets/img/icons/copy.svg
new file mode 100644 (file)
index 0000000..51ab2e6
--- /dev/null
@@ -0,0 +1 @@
+<svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"><g><g><rect fill="none" width="24" height="24"/><path fill="#7d7d7d" d="M16,1H4C2.9,1,2,1.9,2,3v14h2V3h12V1z M19,5H8C6.9,5,6,5.9,6,7v14c0,1.1,0.9,2,2,2h11c1.1,0,2-0.9,2-2V7C21,5.9,20.1,5,19,5z M19,21H8V7h11V21z"/></g></g></svg>
diff --git a/public/assets/angular-material-assets/img/icons/copy2.svg b/public/assets/angular-material-assets/img/icons/copy2.svg
new file mode 100644 (file)
index 0000000..8609b58
--- /dev/null
@@ -0,0 +1 @@
+<svg version="1.1" x="0px" y="0px" width="48px" height="48px" viewBox="0 0 48 48" enable-background="new 0 0 48 48" xml:space="preserve"><g><g><rect fill="none" width="48" height="48"/><path fill="#7d7d7d" d="M32,2H8C5.8,2,4,3.8,4,6v28h4V6h24V2z M38,10H16c-2.2,0-4,1.8-4,4v28c0,2.2,1.8,4,4,4h22c2.2,0,4-1.8,4-4V14C42,11.8,40.2,10,38,10z M38,42H16V14h22V42z"/></g></g></svg>
diff --git a/public/assets/angular-material-assets/img/icons/facebook.svg b/public/assets/angular-material-assets/img/icons/facebook.svg
new file mode 100644 (file)
index 0000000..a18345d
--- /dev/null
@@ -0,0 +1 @@
+<svg version="1.1" x="0px" y="0px" width="48px" height="48px" viewBox="0 0 48 48" enable-background="new 0 0 48 48" xml:space="preserve"><g><g><g><path fill="#7d7d7d" d="M40,4H8C5.8,4,4,5.8,4,8l0,32c0,2.2,1.8,4,4,4h32c2.2,0,4-1.8,4-4V8C44,5.8,42.2,4,40,4z M38,8v6h-4c-1.1,0-2,0.9-2,2v4h6v6h-6v14h-6V26h-4v-6h4v-5c0-3.9,3.1-7,7-7H38z"/></g><g><rect fill="none" width="48" height="48"/></g></g></g></svg>
diff --git a/public/assets/angular-material-assets/img/icons/favorite.svg b/public/assets/angular-material-assets/img/icons/favorite.svg
new file mode 100644 (file)
index 0000000..a54d02d
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M0 0h24v24h-24z" fill="none"/>
+    <path d="M12 21.35l-1.45-1.32c-5.15-4.67-8.55-7.75-8.55-11.53 0-3.08 2.42-5.5 5.5-5.5 1.74 0 3.41.81 4.5 2.09 1.09-1.28 2.76-2.09 4.5-2.09 3.08 0 5.5 2.42 5.5 5.5 0 3.78-3.4 6.86-8.55 11.54l-1.45 1.31z"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/github-icon.svg b/public/assets/angular-material-assets/img/icons/github-icon.svg
new file mode 100644 (file)
index 0000000..609b349
--- /dev/null
@@ -0,0 +1,3 @@
+<svg height="1024" width="1024" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
+  <path d="M512 0C229.252 0 0 229.25199999999995 0 512c0 226.251 146.688 418.126 350.155 485.813 25.593 4.686 34.937-11.125 34.937-24.626 0-12.188-0.469-52.562-0.718-95.314-128.708 23.46-161.707-31.541-172.469-60.373-5.525-14.809-30.407-60.249-52.398-72.263-17.988-9.828-43.26-33.237-0.917-33.735 40.434-0.476 69.348 37.308 78.471 52.75 45.938 77.749 119.876 55.627 148.999 42.5 4.654-32.999 17.902-55.627 32.501-68.373-113.657-12.939-233.22-56.875-233.22-253.063 0-55.94 19.968-101.561 52.658-137.404-5.22-12.999-22.844-65.095 5.063-135.563 0 0 42.937-13.749 140.811 52.501 40.811-11.406 84.594-17.031 128.124-17.22 43.499 0.188 87.314 5.874 128.188 17.28 97.689-66.311 140.686-52.501 140.686-52.501 28 70.532 10.375 122.564 5.124 135.499 32.811 35.844 52.626 81.468 52.626 137.404 0 196.686-119.751 240-233.813 252.686 18.439 15.876 34.748 47.001 34.748 94.748 0 68.437-0.686 123.627-0.686 140.501 0 13.625 9.312 29.561 35.25 24.562C877.436 929.998 1024 738.126 1024 512 1024 229.25199999999995 794.748 0 512 0z" />
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/github.svg b/public/assets/angular-material-assets/img/icons/github.svg
new file mode 100644 (file)
index 0000000..71faa13
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="8 11 33 28">
+<path fill="#333" d="M11.828,18.179c0,0-3.344,3.499-2.763,9.192 c0.581,5.694,4.186,10.392,16.208,10.392c12.021,0,15.045-6.275,15.116-11.436c0.071-5.159-2.253-7.46-3.344-8.243 c0,0,0.007-3.704-0.343-5.661c0,0-1.85-0.219-5.845,2.07c0,0-5.454-0.533-12.722,0.065c0,0-3.053-2.04-6.129-2.574 C12.006,11.984,11.496,15.196,11.828,18.179z"/>
+<path fill="#E2B89F" d="M17.211,23.815h14.916c0,0,4.227-0.475,4.227,6.44 c0.034,6.086-11.139,5.693-11.139,5.693s-12.236,0.486-12.243-6.269C12.956,23.579,17.211,23.815,17.211,23.815z"/>
+<g>
+       <g>
+               <path fill="#9C584F" d="M30.767,26.591c0.959,0,1.737,1.25,1.737,2.787 c0,1.54-0.778,2.788-1.737,2.788c-0.958,0-1.736-1.248-1.736-2.788C29.03,27.841,29.809,26.591,30.767,26.591z"/>
+               <path fill="#FFFFFF" d="M30.767,32.666c-1.254,0-2.236-1.444-2.236-3.288c0-1.843,0.982-3.287,2.236-3.287 c1.255,0,2.237,1.444,2.237,3.287C33.004,31.222,32.021,32.666,30.767,32.666z M30.767,27.091c-0.585,0-1.236,0.939-1.236,2.287 c0,1.349,0.651,2.288,1.236,2.288s1.237-0.939,1.237-2.288C32.004,28.03,31.352,27.091,30.767,27.091z"/>
+       </g>
+</g>
+<g>
+       <g>
+               <path fill="#9C584F" d="M18.767,26.591c0.959,0,1.737,1.25,1.737,2.787 c0,1.54-0.778,2.788-1.737,2.788c-0.958,0-1.736-1.248-1.736-2.788C17.03,27.841,17.809,26.591,18.767,26.591z"/>
+               <path fill="#FFFFFF" d="M18.767,32.666c-1.254,0-2.236-1.444-2.236-3.288c0-1.843,0.982-3.287,2.236-3.287 c1.254,0,2.237,1.444,2.237,3.287C21.004,31.222,20.021,32.666,18.767,32.666z M18.767,27.091c-0.585,0-1.236,0.939-1.236,2.287 c0,1.349,0.651,2.288,1.236,2.288c0.585,0,1.237-0.939,1.237-2.288C20.004,28.03,19.352,27.091,18.767,27.091z"/>
+       </g>
+</g>
+<path fill="#9C584F" d="M24.076,32.705c0,0,0.499-1.418,1.109-0.089 c0,0-0.457,0.297-0.285,0.996l1.428,0.546h-3.23l1.28-0.575C24.378,33.583,24.562,32.527,24.076,32.705z"/>
+</svg>
\ No newline at end of file
diff --git a/public/assets/angular-material-assets/img/icons/hangout.svg b/public/assets/angular-material-assets/img/icons/hangout.svg
new file mode 100644 (file)
index 0000000..d16fde7
--- /dev/null
@@ -0,0 +1 @@
+<svg version="1.1" x="0px" y="0px" width="48px" height="48px" viewBox="0 0 48 48" enable-background="new 0 0 48 48" xml:space="preserve"><g><g><path fill="#159F5C" d="M23,4C13.6,4,6,11.6,6,21s7.6,17,17,17h1v7c9.7-4.7,16-15,16-24C40,11.6,32.4,4,23,4z M22,22l-2,4h-3l2-4h-3v-6h6V22zM30,22l-2,4h-3l2-4h-3v-6h6V22z"/><rect x="0" fill="none" width="48" height="48"/></g></g></svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_access_time_24px.svg b/public/assets/angular-material-assets/img/icons/ic_access_time_24px.svg
new file mode 100644 (file)
index 0000000..9d30d21
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+     height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+    <g>
+        <rect x="-618" y="-440" fill="none" width="1400" height="3600"/>
+    </g>
+</g>
+<g id="Labels">
+</g>
+<g id="Icon">
+    <g>
+        <g>
+            <path fill-opacity="0.9" d="M12,2C6.5,2,2,6.5,2,12s4.5,10,10,10c5.5,0,10-4.5,10-10S17.5,2,12,2z M12,20c-4.4,0-8-3.6-8-8
+                s3.6-8,8-8c4.4,0,8,3.6,8,8S16.4,20,12,20z"/>
+        </g>
+        <rect fill="none" width="24" height="24"/>
+        <polygon fill-opacity="0.9" points="12.5,7 11,7 11,13 16.2,16.2 17,14.9 12.5,12.2       "/>
+    </g>
+</g>
+<g id="Grid" display="none">
+    <g display="inline">
+    </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_arrow_back_24px.svg b/public/assets/angular-material-assets/img/icons/ic_arrow_back_24px.svg
new file mode 100644 (file)
index 0000000..aeb9ec3
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+     height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+    <g>
+        <rect x="-618" y="-568" fill="none" width="1400" height="3600"/>
+    </g>
+</g>
+<g id="Label">
+</g>
+<g id="Icon">
+    <g>
+        <rect fill="none" width="24" height="24"/>
+        <path d="M20,11H7.8l5.6-5.6L12,4l-8,8l8,8l1.4-1.4L7.8,13H20V11z"/>
+    </g>
+</g>
+<g id="Grid" display="none">
+    <g display="inline">
+    </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_build_24px.svg b/public/assets/angular-material-assets/img/icons/ic_build_24px.svg
new file mode 100644 (file)
index 0000000..dcf349f
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path fill-rule="evenodd" clip-rule="evenodd" fill="none" d="M0 0h24v24H0z"/>
+    <path d="M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_card_giftcard_24px.svg b/public/assets/angular-material-assets/img/icons/ic_card_giftcard_24px.svg
new file mode 100644 (file)
index 0000000..c134fa3
--- /dev/null
@@ -0,0 +1,4 @@
+<svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
+    <path d="M20 6h-2.18c.11-.31.18-.65.18-1 0-1.66-1.34-3-3-3-1.05 0-1.96.54-2.5 1.35l-.5.67-.5-.68C10.96 2.54 10.05 2 9 2 7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z"/>
+    <path d="M0 0h24v24H0z" fill="none"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_chevron_right_24px.svg b/public/assets/angular-material-assets/img/icons/ic_chevron_right_24px.svg
new file mode 100644 (file)
index 0000000..9d4c76c
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+        height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+       <g>
+               <rect x="-618" y="-1336" fill="none" width="1400" height="3600"/>
+       </g>
+</g>
+<g id="Label">
+</g>
+<g id="Icon">
+       <g>
+               <polygon points="10,6 8.6,7.4 13.2,12 8.6,16.6 10,18 16,12              "/>
+               <rect fill="none" width="24" height="24"/>
+       </g>
+</g>
+<g id="Grid" display="none">
+       <g display="inline">
+       </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_close_24px.svg b/public/assets/angular-material-assets/img/icons/ic_close_24px.svg
new file mode 100644 (file)
index 0000000..865788b
--- /dev/null
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
\ No newline at end of file
diff --git a/public/assets/angular-material-assets/img/icons/ic_code_24px.svg b/public/assets/angular-material-assets/img/icons/ic_code_24px.svg
new file mode 100644 (file)
index 0000000..cf4d036
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path fill="none" d="M0 0h24v24H0V0z"/>
+    <path d="M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_comment_24px.svg b/public/assets/angular-material-assets/img/icons/ic_comment_24px.svg
new file mode 100644 (file)
index 0000000..ffe633e
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+     height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+    <g>
+        <rect x="-618" y="-1464" fill="none" width="1400" height="3600"/>
+    </g>
+</g>
+<g id="Labels">
+</g>
+<g id="Icon">
+    <g>
+        <path d="M22,4c0-1.1-0.9-2-2-2H4C2.9,2,2,2.9,2,4v12c0,1.1,0.9,2,2,2h14l4,4L22,4z M18,14H6v-2h12V14z M18,11H6V9h12V11z M18,8H6
+            V6h12V8z"/>
+        <rect x="0" fill="none" width="24" height="24"/>
+    </g>
+</g>
+<g id="Grid" display="none">
+    <g display="inline">
+    </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_email_24px.svg b/public/assets/angular-material-assets/img/icons/ic_email_24px.svg
new file mode 100644 (file)
index 0000000..d5db160
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M20 4h-16c-1.1 0-1.99.9-1.99 2l-.01 12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-12c0-1.1-.9-2-2-2zm0 4l-8 5-8-5v-2l8 5 8-5v2z"/>
+    <path d="M0 0h24v24h-24z" fill="none"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_euro_24px.svg b/public/assets/angular-material-assets/img/icons/ic_euro_24px.svg
new file mode 100644 (file)
index 0000000..abaadd4
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
+        <g id="Desktop-HD" sketch:type="MSArtboardGroup" fill="#000000">
+            <g id="euro" sketch:type="MSLayerGroup" transform="translate(4.928571, 3.000000)">
+                <path d="M13.3295171,13.848956 C12.7717614,14.1408877 11.5268981,14.5372503 10.3117026,14.5372503 C8.98732947,14.5372503 7.74127945,14.1408877 6.89515215,13.1855827 C6.49641614,12.7381914 6.20567113,12.1258468 6.0205437,11.3319349 L12.6685173,11.3319349 L12.6685173,9.45217947 L5.65147555,9.45217947 L5.65147555,9.02852246 C5.65147555,8.73659074 5.65147555,8.47432688 5.67639655,8.20731616 L12.669704,8.20731616 L12.669704,6.32756069 L6.07513256,6.32756069 C6.26263342,5.63926639 6.52371057,5.03048195 6.92363329,4.60682495 C7.74246616,3.62541221 8.91019304,3.17564749 10.1550564,3.17564749 C11.3168497,3.17564749 12.4311744,3.52098135 13.1194687,3.81172636 L13.8587917,0.793911872 C12.9046734,0.371441579 11.4770561,0 9.88685892,0 C7.3722113,0 5.25273954,1.00514702 3.77172009,2.7282562 C2.92559278,3.68118779 2.2634062,4.89994338 1.94418005,6.32874741 L0.168855444,6.32874741 L0.168855444,8.20731616 L1.65343504,8.20731616 C1.65343504,8.47432688 1.62614062,8.73777745 1.62614062,9.00241475 L1.62614062,9.45217947 L0.168855444,9.45217947 L0.168855444,11.3331216 L1.89196462,11.3331216 C2.1304942,12.7393781 2.65858206,13.8750637 3.37417079,14.7745931 C4.85875039,16.7338585 7.21319158,17.7935943 9.83345677,17.7935943 C11.5292715,17.7935943 13.0660666,17.2904275 13.965596,16.789634 L13.3295171,13.848956 L13.3295171,13.848956 Z" id="Shape" sketch:type="MSShapeGroup"></path>
+            </g>
+        </g>
+    </g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_insert_drive_file_24px.svg b/public/assets/angular-material-assets/img/icons/ic_insert_drive_file_24px.svg
new file mode 100644 (file)
index 0000000..4c074e0
--- /dev/null
@@ -0,0 +1,6 @@
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="24px"
+     height="24px" viewBox="0 0 24 24">
+<g>
+    <path d="M6,2C4.9,2,4,2.9,4,4l0,16c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V8l-6-6H6z M13,9V3.5L18.5,9H13z"/>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_label_24px.svg b/public/assets/angular-material-assets/img/icons/ic_label_24px.svg
new file mode 100644 (file)
index 0000000..c17cd8d
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+     height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+    <g>
+        <rect x="-618" y="-568" fill="none" width="1400" height="3600"/>
+    </g>
+</g>
+<g id="Label">
+</g>
+<g id="Icon">
+    <g>
+        <rect fill="none" width="24" height="24"/>
+        <path d="M17.6,5.8C17.3,5.3,16.7,5,16,5L5,5C3.9,5,3,5.9,3,7v10c0,1.1,0.9,2,2,2l11,0c0.7,0,1.3-0.3,1.6-0.8L22,12L17.6,5.8z"/>
+    </g>
+</g>
+<g id="Grid" display="none">
+    <g display="inline">
+    </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_launch_24px.svg b/public/assets/angular-material-assets/img/icons/ic_launch_24px.svg
new file mode 100644 (file)
index 0000000..5ca5643
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+        height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+       <g>
+               <rect x="-618" y="-824" fill="none" width="1400" height="3600"/>
+       </g>
+</g>
+<g id="Label">
+</g>
+<g id="Icon">
+       <g>
+               <rect fill="none" width="24" height="24"/>
+               <path d="M19,19H5V5h7V3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2v-7h-2V19z M14,3v2h3.6l-9.8,9.8l1.4,1.4L19,6.4
+                       V10h2V3H14z" />
+       </g>
+</g>
+<g id="Grid" display="none">
+       <g display="inline">
+       </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_menu_24px.svg b/public/assets/angular-material-assets/img/icons/ic_menu_24px.svg
new file mode 100644 (file)
index 0000000..e2dd3d2
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+     height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+    <g>
+        <rect x="-618" y="-2232" fill="none" width="1400" height="3600"/>
+    </g>
+</g>
+<g id="Label">
+</g>
+<g id="Icon">
+    <g>
+        <rect fill="none" width="24" height="24"/>
+        <path d="M3,18h18v-2H3V18z M3,13h18v-2H3V13z M3,6v2h18V6H3z"/>
+    </g>
+</g>
+<g id="Grid" display="none">
+    <g display="inline">
+    </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_more_vert_24px.svg b/public/assets/angular-material-assets/img/icons/ic_more_vert_24px.svg
new file mode 100644 (file)
index 0000000..deb8f64
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+     height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+    <g>
+        <rect x="-618" y="-2488" fill="none" width="1400" height="3600"/>
+    </g>
+</g>
+<g id="Label">
+</g>
+<g id="Icon">
+    <g>
+        <rect fill="none" width="24" height="24"/>
+        <path d="M12,8c1.1,0,2-0.9,2-2s-0.9-2-2-2c-1.1,0-2,0.9-2,2S10.9,8,12,8z M12,10c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2
+            S13.1,10,12,10z M12,16c-1.1,0-2,0.9-2,2s0.9,2,2,2c1.1,0,2-0.9,2-2S13.1,16,12,16z"/>
+    </g>
+</g>
+<g id="Grid" display="none">
+    <g display="inline">
+    </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_ondemand_video_24px.svg b/public/assets/angular-material-assets/img/icons/ic_ondemand_video_24px.svg
new file mode 100644 (file)
index 0000000..1c4c90a
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path fill="none" d="M0 0h24v24H0V0z"/>
+    <path d="M21 3H3c-1.11 0-2 .89-2 2v12c0 1.1.89 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.11-.9-2-2-2zm0 14H3V5h18v12zm-5-6l-7 4V7z"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_people_24px.svg b/public/assets/angular-material-assets/img/icons/ic_people_24px.svg
new file mode 100644 (file)
index 0000000..45592be
--- /dev/null
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+     height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+    <g>
+        <rect x="-618" y="-2616" fill="none" width="1400" height="3600"/>
+    </g>
+</g>
+<g id="Label">
+</g>
+<g id="Icon">
+    <g>
+        <g>
+            <rect fill="none" width="24" height="24"/>
+        </g>
+        <path d="M16,11c1.7,0,3-1.3,3-3c0-1.7-1.3-3-3-3c-1.7,0-3,1.3-3,3C13,9.7,14.3,11,16,11z M8,11c1.7,0,3-1.3,3-3c0-1.7-1.3-3-3-3
+            C6.3,5,5,6.3,5,8C5,9.7,6.3,11,8,11z M8,13c-2.3,0-7,1.2-7,3.5V19h14v-2.5C15,14.2,10.3,13,8,13z M16,13c-0.3,0-0.6,0-1,0.1
+            c1.2,0.8,2,2,2,3.4V19h6v-2.5C23,14.2,18.3,13,16,13z"/>
+    </g>
+</g>
+<g id="Grid" display="none">
+    <g display="inline">
+    </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_person_24px.svg b/public/assets/angular-material-assets/img/icons/ic_person_24px.svg
new file mode 100644 (file)
index 0000000..6ce9d1e
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/>
+    <path d="M0 0h24v24h-24z" fill="none"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_phone_24px.svg b/public/assets/angular-material-assets/img/icons/ic_phone_24px.svg
new file mode 100644 (file)
index 0000000..79abfad
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M0 0h24v24h-24z" fill="none"/>
+    <path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1v3.49c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_photo_24px.svg b/public/assets/angular-material-assets/img/icons/ic_photo_24px.svg
new file mode 100644 (file)
index 0000000..771b4a1
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+        height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+       <g>
+               <rect x="-618" y="-2616" fill="none" width="1400" height="3600"/>
+       </g>
+</g>
+<g id="Label">
+</g>
+<g id="Icon">
+       <g>
+               <rect x="0" fill="none" width="24" height="24"/>
+               <path d="M21,19V5c0-1.1-0.9-2-2-2H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14C20.1,21,21,20.1,21,19z M8.5,13.5l2.5,3l3.5-4.5l4.5,6
+                       H5L8.5,13.5z"/>
+       </g>
+</g>
+<g id="Grid" display="none">
+       <g display="inline">
+       </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_place_24px.svg b/public/assets/angular-material-assets/img/icons/ic_place_24px.svg
new file mode 100644 (file)
index 0000000..6a441cd
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 2c-3.87 0-7 3.13-7 7 0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/>
+    <path d="M0 0h24v24h-24z" fill="none"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_play_arrow_24px.svg b/public/assets/angular-material-assets/img/icons/ic_play_arrow_24px.svg
new file mode 100644 (file)
index 0000000..30d64fa
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+        height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+       <g>
+               <rect x="-618" y="-2232" fill="none" width="1400" height="3600"/>
+       </g>
+</g>
+<g id="Label">
+</g>
+<g id="Icon">
+       <g>
+               <polygon points="8,5 8,19 19,12                 " style="fill:#f3f3f3;" />
+               <rect fill="none" width="24" height="24"/>
+       </g>
+</g>
+<g id="Grid" display="none">
+       <g display="inline">
+       </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_play_circle_fill_24px.svg b/public/assets/angular-material-assets/img/icons/ic_play_circle_fill_24px.svg
new file mode 100644 (file)
index 0000000..5518b34
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M0 0h24v24H0z" fill="none"/>
+    <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_refresh_24px.svg b/public/assets/angular-material-assets/img/icons/ic_refresh_24px.svg
new file mode 100644 (file)
index 0000000..bfd3c59
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+     height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+    <g>
+        <rect x="-618" y="-2616" fill="none" width="1400" height="3600"/>
+    </g>
+</g>
+<g id="Label">
+</g>
+<g id="Icon">
+    <g>
+        <path d="M17.6,6.4C16.2,4.9,14.2,4,12,4c-4.4,0-8,3.6-8,8s3.6,8,8,8c3.7,0,6.8-2.6,7.7-6h-2.1c-0.8,2.3-3,4-5.6,4
+            c-3.3,0-6-2.7-6-6s2.7-6,6-6c1.7,0,3.1,0.7,4.2,1.8L13,11h7V4L17.6,6.4z"/>
+        <rect fill="none" width="24" height="24"/>
+    </g>
+</g>
+<g id="Grid" display="none">
+    <g display="inline">
+    </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_school_24px.svg b/public/assets/angular-material-assets/img/icons/ic_school_24px.svg
new file mode 100644 (file)
index 0000000..460deb6
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M0 0h24v24H0z" fill="none"/>
+    <path d="M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/ic_visibility_24px.svg b/public/assets/angular-material-assets/img/icons/ic_visibility_24px.svg
new file mode 100644 (file)
index 0000000..19768e3
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+        height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+       <g>
+               <rect x="-618" y="-1592" fill="none" width="1400" height="3600"/>
+       </g>
+</g>
+<g id="Label">
+</g>
+<g id="Icon">
+       <g>
+               <rect fill="none" width="24" height="24"/>
+               <path d="M12,4.5C7,4.5,2.7,7.6,1,12c1.7,4.4,6,7.5,11,7.5c5,0,9.3-3.1,11-7.5C21.3,7.6,17,4.5,12,4.5z M12,17c-2.8,0-5-2.2-5-5
+                       s2.2-5,5-5c2.8,0,5,2.2,5,5S14.8,17,12,17z M12,9c-1.7,0-3,1.3-3,3s1.3,3,3,3c1.7,0,3-1.3,3-3S13.7,9,12,9z"/>
+       </g>
+</g>
+<g id="Grid" display="none">
+       <g display="inline">
+       </g>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/launch.svg b/public/assets/angular-material-assets/img/icons/launch.svg
new file mode 100644 (file)
index 0000000..70de58e
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M0 0h24v24h-24z" fill="none"/>
+    <path d="M19 19h-14v-14h7v-2h-7c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zm-5-16v2h3.59l-9.83 9.83 1.41 1.41 9.83-9.83v3.59h2v-7h-7z"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/list_control_down.png b/public/assets/angular-material-assets/img/icons/list_control_down.png
new file mode 100644 (file)
index 0000000..696604b
Binary files /dev/null and b/public/assets/angular-material-assets/img/icons/list_control_down.png differ
diff --git a/public/assets/angular-material-assets/img/icons/mail.svg b/public/assets/angular-material-assets/img/icons/mail.svg
new file mode 100644 (file)
index 0000000..8a36e49
--- /dev/null
@@ -0,0 +1 @@
+<svg version="1.1" x="0px" y="0px" width="48px" height="48px" viewBox="0 0 48 48" enable-background="new 0 0 48 48" xml:space="preserve"><g><g><path fill="#7d7d7d" d="M40,8H8c-2.2,0-4,1.8-4,4l0,24c0,2.2,1.8,4,4,4h32c2.2,0,4-1.8,4-4V12C44,9.8,42.2,8,40,8z M40,16L24,26L8,16v-4l16,10l16-10V16z"/><rect fill="none" width="48" height="48"/></g></g></svg>
diff --git a/public/assets/angular-material-assets/img/icons/menu.svg b/public/assets/angular-material-assets/img/icons/menu.svg
new file mode 100644 (file)
index 0000000..b2de22a
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
+    <path d="M0 0h18v18h-18z" fill="none"/>
+    <path d="M2 13.5h14v-1.5h-14v1.5zm0-4h14v-1.5h-14v1.5zm0-5.5v1.5h14v-1.5h-14z"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/message.svg b/public/assets/angular-material-assets/img/icons/message.svg
new file mode 100644 (file)
index 0000000..10d347d
--- /dev/null
@@ -0,0 +1 @@
+<svg version="1.1" x="0px" y="0px" width="48px" height="48px" viewBox="0 0 48 48" enable-background="new 0 0 48 48" xml:space="preserve"><g><g><path fill="#7d7d7d" d="M40,4H8C5.8,4,4,5.8,4,8l0,36l8-8h28c2.2,0,4-1.8,4-4V8C44,5.8,42.2,4,40,4z M36,28H12v-4h24V28z M36,22H12v-4h24V22zM36,16H12v-4h24V16z"/><rect x="0" fill="none" width="48" height="48"/></g></g></svg>
diff --git a/public/assets/angular-material-assets/img/icons/more_vert.svg b/public/assets/angular-material-assets/img/icons/more_vert.svg
new file mode 100644 (file)
index 0000000..6e1d96d
--- /dev/null
@@ -0,0 +1,4 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
+    <path d="M0 0h18v18h-18z" fill="none"/>
+    <path d="M9 5.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zm0 2c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/npm-logo.svg b/public/assets/angular-material-assets/img/icons/npm-logo.svg
new file mode 100644 (file)
index 0000000..b0f6397
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" width="540px" height="210px" viewBox="0 0 18 7">
+<path fill="#CB3837" d="M0,0h18v6H9v1H5V6H0V0z M1,5h2V2h1v3h1V1H1V5z M6,1v5h2V5h2V1H6z M8,2h1v2H8V2z M11,1v4h2V2h1v3h1V2h1v3h1V1H11z"/>
+<polygon fill="#FFFFFF" points="1,5 3,5 3,2 4,2 4,5 5,5 5,1 1,1 "/>
+<path fill="#FFFFFF" d="M6,1v5h2V5h2V1H6z M9,4H8V2h1V4z"/>
+<polygon fill="#FFFFFF" points="11,1 11,5 13,5 13,2 14,2 14,5 15,5 15,2 16,2 16,5 17,5 17,1 "/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/octicon-repo.svg b/public/assets/angular-material-assets/img/icons/octicon-repo.svg
new file mode 100644 (file)
index 0000000..2bf9537
--- /dev/null
@@ -0,0 +1,5 @@
+<svg xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="0 0 48 48">
+<path d="M21,12h-3v3h3V12z M21,6h-3v3h3V6z M39,0C37.5,0,10.5,0,9,0S6,1.5,6,3s0,34.5,0,36s1.5,3,3,3s6,0,6,0v6l4.5-4.5L24,48v-6
+       c0,0,13.5,0,15,0s3-1.5,3-3s0-34.5,0-36S40.5,0,39,0z M39,37.5c0,0.75-0.703,1.5-1.5,1.5S24,39,24,39v-3h-9v3c0,0-3.703,0-4.5,0
+       S9,38.203,9,37.5S9,33,9,33h30C39,33,39,36.75,39,37.5z M39,30H15V3h24.047L39,30z M21,24h-3v3h3V24z M21,18h-3v3h3V18z"/>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/print.svg b/public/assets/angular-material-assets/img/icons/print.svg
new file mode 100644 (file)
index 0000000..91365b2
--- /dev/null
@@ -0,0 +1 @@
+<svg version="1.1" x="0px" y="0px" width="24px"height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"><g><g><g><path d="M19,8H5c-1.7,0-3,1.3-3,3v6h4v4h12v-4h4v-6C22,9.3,20.7,8,19,8z M16,19H8v-5h8V19z M19,12c-0.6,0-1-0.4-1-1s0.4-1,1-1c0.6,0,1,0.4,1,1S19.6,12,19,12z M18,3H6v4h12V3z" fill="#7d7d7d"/></g><rect fill="none" width="24" height="24"/></g></g></svg>
diff --git a/public/assets/angular-material-assets/img/icons/separator.svg b/public/assets/angular-material-assets/img/icons/separator.svg
new file mode 100644 (file)
index 0000000..d8fa31d
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+         viewBox="0 0 4 6" enable-background="new 0 0 4 6" xml:space="preserve">
+<g>
+       <polygon fill="#FFFFFF" points="3.719,3 0.968,0.25 0.281,0.938 2.344,3 0.281,5.062 0.968,5.75   "/>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/sets/communication-icons.svg b/public/assets/angular-material-assets/img/icons/sets/communication-icons.svg
new file mode 100644 (file)
index 0000000..1e2fbb0
--- /dev/null
@@ -0,0 +1,41 @@
+<svg><defs>
+<g id="business"><path d="M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z"/></g>
+<g id="call"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></g>
+<g id="call-end"><path d="M12 9c-1.6 0-3.15.25-4.6.72v3.1c0 .39-.23.74-.56.9-.98.49-1.87 1.12-2.66 1.85-.18.18-.43.28-.7.28-.28 0-.53-.11-.71-.29L.29 13.08c-.18-.17-.29-.42-.29-.7 0-.28.11-.53.29-.71C3.34 8.78 7.46 7 12 7s8.66 1.78 11.71 4.67c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-2.48 2.48c-.18.18-.43.29-.71.29-.27 0-.52-.11-.7-.28-.79-.74-1.69-1.36-2.67-1.85-.33-.16-.56-.5-.56-.9v-3.1C15.15 9.25 13.6 9 12 9z"/></g>
+<g id="call-made"><path d="M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5z"/></g>
+<g id="call-merge"><path d="M17 20.41L18.41 19 15 15.59 13.59 17 17 20.41zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5 7.5 8z"/></g>
+<g id="call-missed"><path d="M19.59 7L12 14.59 6.41 9H11V7H3v8h2v-4.59l7 7 9-9z"/></g>
+<g id="call-received"><path d="M20 5.41L18.59 4 7 15.59V9H5v10h10v-2H8.41z"/></g>
+<g id="call-split"><path d="M14 4l2.29 2.29-2.88 2.88 1.42 1.42 2.88-2.88L20 10V4zm-4 0H4v6l2.29-2.29 4.71 4.7V20h2v-8.41l-5.29-5.3z"/></g>
+<g id="chat"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 9h12v2H6V9zm8 5H6v-2h8v2zm4-6H6V6h12v2z"/></g>
+<g id="clear-all"><path d="M5 13h14v-2H5v2zm-2 4h14v-2H3v2zM7 7v2h14V7H7z"/></g>
+<g id="comment"><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18zM18 14H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z"/></g>
+<g id="contacts"><path d="M20 0H4v2h16V0zM4 24h16v-2H4v2zM20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 2.75c1.24 0 2.25 1.01 2.25 2.25s-1.01 2.25-2.25 2.25S9.75 10.24 9.75 9 10.76 6.75 12 6.75zM17 17H7v-1.5c0-1.67 3.33-2.5 5-2.5s5 .83 5 2.5V17z"/></g>
+<g id="dialer-sip"><path d="M17 3h-1v5h1V3zm-2 2h-2V4h2V3h-3v3h2v1h-2v1h3V5zm3-2v5h1V6h2V3h-3zm2 2h-1V4h1v1zm0 10.5c-1.25 0-2.45-.2-3.57-.57-.35-.11-.74-.03-1.01.24l-2.2 2.2c-2.83-1.44-5.15-3.75-6.59-6.59l2.2-2.21c.27-.26.35-.65.24-1C8.7 6.45 8.5 5.25 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z"/></g>
+<g id="dialpad"><path d="M12 19c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"/></g>
+<g id="dnd-on"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31C15.55 19.37 13.85 20 12 20zm6.31-3.1L7.1 5.69C8.45 4.63 10.15 4 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z"/></g>
+<g id="email"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></g>
+<g id="forum"><path d="M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z"/></g>
+<g id="import-export"><path d="M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z"/></g>
+<g id="invert-colors-off"><path d="M20.65 20.87l-2.35-2.35-6.3-6.29-3.56-3.57-1.42-1.41L4.27 4.5 3 5.77l2.78 2.78c-2.55 3.14-2.36 7.76.56 10.69C7.9 20.8 9.95 21.58 12 21.58c1.79 0 3.57-.59 5.03-1.78l2.7 2.7L21 21.23l-.35-.36zM12 19.59c-1.6 0-3.11-.62-4.24-1.76C6.62 16.69 6 15.19 6 13.59c0-1.32.43-2.57 1.21-3.6L12 14.77v4.82zM12 5.1v4.58l7.25 7.26c1.37-2.96.84-6.57-1.6-9.01L12 2.27l-3.7 3.7 1.41 1.41L12 5.1z"/></g>
+<g id="invert-colors-on"><path d="M17.66 7.93L12 2.27 6.34 7.93c-3.12 3.12-3.12 8.19 0 11.31C7.9 20.8 9.95 21.58 12 21.58c2.05 0 4.1-.78 5.66-2.34 3.12-3.12 3.12-8.19 0-11.31zM12 19.59c-1.6 0-3.11-.62-4.24-1.76C6.62 16.69 6 15.19 6 13.59s.62-3.11 1.76-4.24L12 5.1v14.49z"/></g>
+<g id="live-help"><path d="M19 2H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 16h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 11.9 13 12.5 13 14h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"/></g>
+<g id="location-off"><path d="M12 6.5c1.38 0 2.5 1.12 2.5 2.5 0 .74-.33 1.39-.83 1.85l3.63 3.63c.98-1.86 1.7-3.8 1.7-5.48 0-3.87-3.13-7-7-7-1.98 0-3.76.83-5.04 2.15l3.19 3.19c.46-.52 1.11-.84 1.85-.84zm4.37 9.6l-4.63-4.63-.11-.11L3.27 3 2 4.27l3.18 3.18C5.07 7.95 5 8.47 5 9c0 5.25 7 13 7 13s1.67-1.85 3.38-4.35L18.73 21 20 19.73l-3.63-3.63z"/></g>
+<g id="location-on"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></g>
+<g id="message"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z"/></g>
+<g id="messenger"><path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z"/></g>
+<g id="no-sim"><path d="M18.99 5c0-1.1-.89-2-1.99-2h-7L7.66 5.34 19 16.68 18.99 5zM3.65 3.88L2.38 5.15 5 7.77V19c0 1.1.9 2 2 2h10.01c.35 0 .67-.1.96-.26l1.88 1.88 1.27-1.27L3.65 3.88z"/></g>
+<g id="phone"><path d="M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z"/></g>
+<g id="portable-wifi-off"><path d="M17.56 14.24c.28-.69.44-1.45.44-2.24 0-3.31-2.69-6-6-6-.79 0-1.55.16-2.24.44l1.62 1.62c.2-.03.41-.06.62-.06 2.21 0 4 1.79 4 4 0 .21-.02.42-.05.63l1.61 1.61zM12 4c4.42 0 8 3.58 8 8 0 1.35-.35 2.62-.95 3.74l1.47 1.47C21.46 15.69 22 13.91 22 12c0-5.52-4.48-10-10-10-1.91 0-3.69.55-5.21 1.47l1.46 1.46C9.37 4.34 10.65 4 12 4zM3.27 2.5L2 3.77l2.1 2.1C2.79 7.57 2 9.69 2 12c0 3.7 2.01 6.92 4.99 8.65l1-1.73C5.61 17.53 4 14.96 4 12c0-1.76.57-3.38 1.53-4.69l1.43 1.44C6.36 9.68 6 10.8 6 12c0 2.22 1.21 4.15 3 5.19l1-1.74c-1.19-.7-2-1.97-2-3.45 0-.65.17-1.25.44-1.79l1.58 1.58L10 12c0 1.1.9 2 2 2l.21-.02.01.01 7.51 7.51L21 20.23 4.27 3.5l-1-1z"/></g>
+<g id="quick-contacts-dialer"><path d="M22 3H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1zm3.85-4h1.64L21 16l-1.99 1.99c-1.31-.98-2.28-2.38-2.73-3.99-.18-.64-.28-1.31-.28-2s.1-1.36.28-2c.45-1.62 1.42-3.01 2.73-3.99L21 8l-1.51 2h-1.64c-.22.63-.35 1.3-.35 2s.13 1.37.35 2z"/></g>
+<g id="quick-contacts-mail"><path d="M21 8V7l-3 2-3-2v1l3 2 3-2zm1-5H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1zm8-6h-8V6h8v6z"/></g>
+<g id="ring-volume"><path d="M23.71 16.67C20.66 13.78 16.54 12 12 12 7.46 12 3.34 13.78.29 16.67c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73s3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.66 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71 0-.27-.11-.52-.29-.7zM21.16 6.26l-1.41-1.41-3.56 3.55 1.41 1.41s3.45-3.52 3.56-3.55zM13 2h-2v5h2V2zM6.4 9.81L7.81 8.4 4.26 4.84 2.84 6.26c.11.03 3.56 3.55 3.56 3.55z"/></g>
+<g id="stay-current-landscape"><path d="M1.01 7L1 17c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2zM19 7v10H5V7h14z"/></g>
+<g id="stay-current-portrait"><path d="M17 1.01L7 1c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z"/></g>
+<g id="stay-primary-landscape"><path d="M1.01 7L1 17c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2zM19 7v10H5V7h14z"/></g>
+<g id="stay-primary-portrait"><path d="M17 1.01L7 1c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z"/></g>
+<g id="swap-calls"><path d="M18 4l-4 4h3v7c0 1.1-.9 2-2 2s-2-.9-2-2V8c0-2.21-1.79-4-4-4S5 5.79 5 8v7H2l4 4 4-4H7V8c0-1.1.9-2 2-2s2 .9 2 2v7c0 2.21 1.79 4 4 4s4-1.79 4-4V8h3l-4-4z"/></g>
+<g id="textsms"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 11H7V9h2v2zm4 0h-2V9h2v2zm4 0h-2V9h2v2z"/></g>
+<g id="voicemail"><path d="M18.5 6C15.46 6 13 8.46 13 11.5c0 1.33.47 2.55 1.26 3.5H9.74c.79-.95 1.26-2.17 1.26-3.5C11 8.46 8.54 6 5.5 6S0 8.46 0 11.5 2.46 17 5.5 17h13c3.04 0 5.5-2.46 5.5-5.5S21.54 6 18.5 6zm-13 9C3.57 15 2 13.43 2 11.5S3.57 8 5.5 8 9 9.57 9 11.5 7.43 15 5.5 15zm13 0c-1.93 0-3.5-1.57-3.5-3.5S16.57 8 18.5 8 22 9.57 22 11.5 20.43 15 18.5 15z"/></g>
+<g id="vpn-key"><path d="M12.65 10C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z"/></g>
+</defs></svg>
diff --git a/public/assets/angular-material-assets/img/icons/sets/core-icons.svg b/public/assets/angular-material-assets/img/icons/sets/core-icons.svg
new file mode 100644 (file)
index 0000000..60c9e7b
--- /dev/null
@@ -0,0 +1,33 @@
+<svg><defs>
+<g id="3d-rotation"><path d="M7.52 21.48C4.25 19.94 1.91 16.76 1.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32zm.89-6.52c-.19 0-.37-.03-.52-.08-.16-.06-.29-.13-.4-.24-.11-.1-.2-.22-.26-.37-.06-.14-.09-.3-.09-.47h-1.3c0 .36.07.68.21.95.14.27.33.5.56.69.24.18.51.32.82.41.3.1.62.15.96.15.37 0 .72-.05 1.03-.15.32-.1.6-.25.83-.44s.42-.43.55-.72c.13-.29.2-.61.2-.97 0-.19-.02-.38-.07-.56-.05-.18-.12-.35-.23-.51-.1-.16-.24-.3-.4-.43-.17-.13-.37-.23-.61-.31.2-.09.37-.2.52-.33.15-.13.27-.27.37-.42.1-.15.17-.3.22-.46.05-.16.07-.32.07-.48 0-.36-.06-.68-.18-.96-.12-.28-.29-.51-.51-.69-.2-.19-.47-.33-.77-.43C9.1 8.05 8.76 8 8.39 8c-.36 0-.69.05-1 .16-.3.11-.57.26-.79.45-.21.19-.38.41-.51.67-.12.26-.18.54-.18.85h1.3c0-.17.03-.32.09-.45s.14-.25.25-.34c.11-.09.23-.17.38-.22.15-.05.3-.08.48-.08.4 0 .7.1.89.31.19.2.29.49.29.86 0 .18-.03.34-.08.49-.05.15-.14.27-.25.37-.11.1-.25.18-.41.24-.16.06-.36.09-.58.09H7.5v1.03h.77c.22 0 .42.02.6.07s.33.13.45.23c.12.11.22.24.29.4.07.16.1.35.1.57 0 .41-.12.72-.35.93-.23.23-.55.33-.95.33zm8.55-5.92c-.32-.33-.7-.59-1.14-.77-.43-.18-.92-.27-1.46-.27H12v8h2.3c.55 0 1.06-.09 1.51-.27.45-.18.84-.43 1.16-.76.32-.33.57-.73.74-1.19.17-.47.26-.99.26-1.57v-.4c0-.58-.09-1.1-.26-1.57-.18-.47-.43-.87-.75-1.2zm-.39 3.16c0 .42-.05.79-.14 1.13-.1.33-.24.62-.43.85-.19.23-.43.41-.71.53-.29.12-.62.18-.99.18h-.91V9.12h.97c.72 0 1.27.23 1.64.69.38.46.57 1.12.57 1.99v.4zM12 0l-.66.03 3.81 3.81 1.33-1.33c3.27 1.55 5.61 4.72 5.96 8.48h1.5C23.44 4.84 18.29 0 12 0z"/></g>
+<g id="accessibility"><path d="M12 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 7h-6v13h-2v-6h-2v6H9V9H3V7h18v2z"/></g>
+<g id="account-balance"><path d="M4 10v7h3v-7H4zm6 0v7h3v-7h-3zM2 22h19v-3H2v3zm14-12v7h3v-7h-3zm-4.5-9L2 6v2h19V6l-9.5-5z"/></g>
+<g id="account-balance-wallet"><path d="M21 18v1c0 1.1-.9 2-2 2H5c-1.11 0-2-.9-2-2V5c0-1.1.89-2 2-2h14c1.1 0 2 .9 2 2v1h-9c-1.11 0-2 .9-2 2v8c0 1.1.89 2 2 2h9zm-9-2h10V8H12v8zm4-2.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"/></g>
+<g id="account-box"><path d="M3 5v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5c-1.11 0-2 .9-2 2zm12 4c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1H6v-1z"/></g>
+<g id="account-child"><circle cx="12" cy="13.49" r="1.5"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 2.5c1.24 0 2.25 1.01 2.25 2.25S13.24 9 12 9 9.75 7.99 9.75 6.75 10.76 4.5 12 4.5zm5 10.56v2.5c-.45.41-.96.77-1.5 1.05v-.68c0-.34-.17-.65-.46-.92-.65-.62-1.89-1.02-3.04-1.02-.96 0-1.96.28-2.65.73l-.17.12-.21.17c.78.47 1.63.72 2.54.82l1.33.15c.37.04.66.36.66.75 0 .29-.16.53-.4.66-.28.15-.64.09-.95.09-.35 0-.69-.01-1.03-.05-.5-.06-.99-.17-1.46-.33-.49-.16-.97-.38-1.42-.64-.22-.13-.44-.27-.65-.43l-.31-.24c-.04-.02-.28-.18-.28-.23v-4.28c0-1.58 2.63-2.78 5-2.78s5 1.2 5 2.78v1.78z"/></g>
+<g id="account-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/></g>
+<g id="add"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></g>
+<g id="add-box"><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"/></g>
+<g id="add-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z"/></g>
+<g id="add-circle-outline"><path d="M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/></g>
+<g id="add-shopping-cart"><path d="M11 9h2V6h3V4h-3V1h-2v3H8v2h3v3zm-4 9c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-9.83-3.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.86-7.01L19.42 4h-.01l-1.1 2-2.76 5H8.53l-.13-.27L6.16 6l-.95-2-.94-2H1v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.13 0-.25-.11-.25-.25z"/></g>
+<g id="alarm"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g>
+<g id="alarm-add"><path d="M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z"/></g>
+<g id="alarm-off"><path d="M12 6c3.87 0 7 3.13 7 7 0 .84-.16 1.65-.43 2.4l1.52 1.52c.58-1.19.91-2.51.91-3.92 0-4.97-4.03-9-9-9-1.41 0-2.73.33-3.92.91L9.6 6.43C10.35 6.16 11.16 6 12 6zm10-.28l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM2.92 2.29L1.65 3.57 2.98 4.9l-1.11.93 1.42 1.42 1.11-.94.8.8C3.83 8.69 3 10.75 3 13c0 4.97 4.02 9 9 9 2.25 0 4.31-.83 5.89-2.2l2.2 2.2 1.27-1.27L3.89 3.27l-.97-.98zm13.55 16.1C15.26 19.39 13.7 20 12 20c-3.87 0-7-3.13-7-7 0-1.7.61-3.26 1.61-4.47l9.86 9.86zM8.02 3.28L6.6 1.86l-.86.71 1.42 1.42.86-.71z"/></g>
+<g id="alarm-on"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-1.46-5.47L8.41 12.4l-1.06 1.06 3.18 3.18 6-6-1.06-1.06-4.93 4.95z"/></g>
+<g id="android"><path d="M6 18c0 .55.45 1 1 1h1v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h2v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h1c.55 0 1-.45 1-1V8H6v10zM3.5 8C2.67 8 2 8.67 2 9.5v7c0 .83.67 1.5 1.5 1.5S5 17.33 5 16.5v-7C5 8.67 4.33 8 3.5 8zm17 0c-.83 0-1.5.67-1.5 1.5v7c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5v-7c0-.83-.67-1.5-1.5-1.5zm-4.97-5.84l1.3-1.3c.2-.2.2-.51 0-.71-.2-.2-.51-.2-.71 0l-1.48 1.48C13.85 1.23 12.95 1 12 1c-.96 0-1.86.23-2.66.63L7.85.15c-.2-.2-.51-.2-.71 0-.2.2-.2.51 0 .71l1.31 1.31C6.97 3.26 6 5.01 6 7h12c0-1.99-.97-3.75-2.47-4.84zM10 5H9V4h1v1zm5 0h-1V4h1v1z"/></g>
+<g id="announcement"><path d="M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v-2h2v2z"/></g>
+<g id="apps"><path d="M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z"/></g>
+<g id="archive"><path d="M20.54 5.23l-1.39-1.68C18.88 3.21 18.47 3 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z"/></g>
+<g id="arrow-back"><path d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></g>
+<g id="arrow-drop-down"><path d="M7 10l5 5 5-5z"/></g>
+<g id="arrow-drop-down-circle"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 12l-4-4h8l-4 4z"/></g>
+<g id="arrow-drop-up"><path d="M7 14l5-5 5 5z"/></g>
+<g id="cached"><path d="M19 8l-4 4h3c0 3.31-2.69 6-6 6-1.01 0-1.97-.25-2.8-.7l-1.46 1.46C8.97 19.54 10.43 20 12 20c4.42 0 8-3.58 8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46C15.03 4.46 13.57 4 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z"/></g>
+<g id="check"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></g>
+<g id="undo"><path d="M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z"/></g>
+<g id="redo"><path d="M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16c1.05-3.19 4.05-5.5 7.6-5.5 1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z"/></g>
+<g id="content-copy"><path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/></g>
+<g id="content-cut"><path d="M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm0 12c-1.1 0-2-.89-2-2s.9-2 2-2 2 .89 2 2-.9 2-2 2zm6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zM19 3l-6 6 2 2 7-7V3z"/></g>
+<g id="content-paste"><path d="M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z"/></g>
+</defs></svg>
diff --git a/public/assets/angular-material-assets/img/icons/sets/device-icons.svg b/public/assets/angular-material-assets/img/icons/sets/device-icons.svg
new file mode 100644 (file)
index 0000000..cc5bfd7
--- /dev/null
@@ -0,0 +1,77 @@
+<svg><defs>
+<g id="access-alarm"><path d="M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g>
+<g id="access-alarms"><path d="M22 5.7l-4.6-3.9-1.3 1.5 4.6 3.9L22 5.7zM7.9 3.4L6.6 1.9 2 5.7l1.3 1.5 4.6-3.8zM12.5 8H11v6l4.7 2.9.8-1.2-4-2.4V8zM12 4c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7z"/></g>
+<g id="access-time"><path fill-opacity=".9" d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zM12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"/></g>
+<g id="add-alarm"><path d="M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z"/></g>
+<g id="airplanemode-off"><path d="M13 9V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v3.68l7.83 7.83L21 16v-2l-8-5zM3 5.27l4.99 4.99L2 14v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-3.73L18.73 21 20 19.73 4.27 4 3 5.27z"/></g>
+<g id="airplanemode-on"><path d="M10.18 9"/><path d="M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z"/></g>
+<g id="battery-20"><path d="M7 17v3.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V17H7z"/><path fill-opacity=".3" d="M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V17h10V5.33z"/></g>
+<g id="battery-30"><path fill-opacity=".3" d="M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V15h10V5.33z"/><path d="M7 15v5.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V15H7z"/></g>
+<g id="battery-50"><path fill-opacity=".3" d="M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V13h10V5.33z"/><path d="M7 13v7.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V13H7z"/></g>
+<g id="battery-60"><path fill-opacity=".3" d="M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V11h10V5.33z"/><path d="M7 11v9.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V11H7z"/></g>
+<g id="battery-80"><path fill-opacity=".3" d="M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V9h10V5.33z"/><path d="M7 9v11.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V9H7z"/></g>
+<g id="battery-90"><path fill-opacity=".3" d="M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V8h10V5.33z"/><path d="M7 8v12.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V8H7z"/></g>
+<g id="battery-alert"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM13 18h-2v-2h2v2zm0-4h-2V9h2v5z"/></g>
+<g id="battery-charging-20"><path d="M11 20v-3H7v3.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V17h-4.4L11 20z"/><path fill-opacity=".3" d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V17h4v-2.5H9L13 7v5.5h2L12.6 17H17V5.33C17 4.6 16.4 4 15.67 4z"/></g>
+<g id="battery-charging-30"><path fill-opacity=".3" d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v9.17h2L13 7v5.5h2l-1.07 2H17V5.33C17 4.6 16.4 4 15.67 4z"/><path d="M11 20v-5.5H7v6.17C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V14.5h-3.07L11 20z"/></g>
+<g id="battery-charging-50"><path d="M14.47 13.5L11 20v-5.5H9l.53-1H7v7.17C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V13.5h-2.53z"/><path fill-opacity=".3" d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v8.17h2.53L13 7v5.5h2l-.53 1H17V5.33C17 4.6 16.4 4 15.67 4z"/></g>
+<g id="battery-charging-60"><path fill-opacity=".3" d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V11h3.87L13 7v4h4V5.33C17 4.6 16.4 4 15.67 4z"/><path d="M13 12.5h2L11 20v-5.5H9l1.87-3.5H7v9.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V11h-4v1.5z"/></g>
+<g id="battery-charging-80"><path fill-opacity=".3" d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V9h4.93L13 7v2h4V5.33C17 4.6 16.4 4 15.67 4z"/><path d="M13 12.5h2L11 20v-5.5H9L11.93 9H7v11.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V9h-4v3.5z"/></g>
+<g id="battery-charging-90"><path fill-opacity=".3" d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V8h5.47L13 7v1h4V5.33C17 4.6 16.4 4 15.67 4z"/><path d="M13 12.5h2L11 20v-5.5H9L12.47 8H7v12.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V8h-4v4.5z"/></g>
+<g id="battery-charging-full"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM11 20v-5.5H9L13 7v5.5h2L11 20z"/></g>
+<g id="battery-full"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4z"/></g>
+<g id="battery-std"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4z"/></g>
+<g id="battery-unknown"><path d="M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zm-2.72 13.95h-1.9v-1.9h1.9v1.9zm1.35-5.26s-.38.42-.67.71c-.48.48-.83 1.15-.83 1.6h-1.6c0-.83.46-1.52.93-2l.93-.94c.27-.27.44-.65.44-1.06 0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5H9c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .66-.27 1.26-.7 1.69z"/></g>
+<g id="bluetooth"><path d="M17.71 7.71L12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88z"/></g>
+<g id="bluetooth-connected"><path d="M7 12l-2-2-2 2 2 2 2-2zm10.71-4.29L12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88zM19 10l-2 2 2 2 2-2-2-2z"/></g>
+<g id="bluetooth-disabled"><path d="M13 5.83l1.88 1.88-1.6 1.6 1.41 1.41 3.02-3.02L12 2h-1v5.03l2 2v-3.2zM5.41 4L4 5.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l4.29-4.29 2.3 2.29L20 18.59 5.41 4zM13 18.17v-3.76l1.88 1.88L13 18.17z"/></g>
+<g id="bluetooth-searching"><path d="M14.24 12.01l2.32 2.32c.28-.72.44-1.51.44-2.33 0-.82-.16-1.59-.43-2.31l-2.33 2.32zm5.29-5.3l-1.26 1.26c.63 1.21.98 2.57.98 4.02s-.36 2.82-.98 4.02l1.2 1.2c.97-1.54 1.54-3.36 1.54-5.31-.01-1.89-.55-3.67-1.48-5.19zm-3.82 1L10 2H9v7.59L4.41 5 3 6.41 8.59 12 3 17.59 4.41 19 9 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM11 5.83l1.88 1.88L11 9.59V5.83zm1.88 10.46L11 18.17v-3.76l1.88 1.88z"/></g>
+<g id="brightness-auto"><path d="M10.85 12.65h2.3L12 9l-1.15 3.65zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM14.3 16l-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9h-1.9z"/></g>
+<g id="brightness-high"><path d="M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"/></g>
+<g id="brightness-low"><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"/></g>
+<g id="brightness-medium"><path d="M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"/></g>
+<g id="data-usage"><path d="M13 2.05v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53C16.17 17.98 14.21 19 12 19z"/></g>
+<g id="developer-mode"><path d="M7 5h10v2h2V3c0-1.1-.9-1.99-2-1.99L7 1c-1.1 0-2 .9-2 2v4h2V5zm8.41 11.59L20 12l-4.59-4.59L14 8.83 17.17 12 14 15.17l1.41 1.42zM10 15.17L6.83 12 10 8.83 8.59 7.41 4 12l4.59 4.59L10 15.17zM17 19H7v-2H5v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v2z"/></g>
+<g id="devices"><path d="M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z"/></g>
+<g id="dvr"><path d="M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12zm-2-9H8v2h11V8zm0 4H8v2h11v-2zM7 8H5v2h2V8zm0 4H5v2h2v-2z"/></g>
+<g id="gps-fixed"><path d="M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g>
+<g id="gps-not-fixed"><path d="M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g>
+<g id="gps-off"><path d="M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06c-1.13.12-2.19.46-3.16.97l1.5 1.5C10.16 5.19 11.06 5 12 5c3.87 0 7 3.13 7 7 0 .94-.19 1.84-.52 2.65l1.5 1.5c.5-.96.84-2.02.97-3.15H23v-2h-2.06zM3 4.27l2.04 2.04C3.97 7.62 3.25 9.23 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c1.77-.2 3.38-.91 4.69-1.98L19.73 21 21 19.73 4.27 3 3 4.27zm13.27 13.27C15.09 18.45 13.61 19 12 19c-3.87 0-7-3.13-7-7 0-1.61.55-3.09 1.46-4.27l9.81 9.81z"/></g>
+<g id="location-disabled"><path d="M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06c-1.13.12-2.19.46-3.16.97l1.5 1.5C10.16 5.19 11.06 5 12 5c3.87 0 7 3.13 7 7 0 .94-.19 1.84-.52 2.65l1.5 1.5c.5-.96.84-2.02.97-3.15H23v-2h-2.06zM3 4.27l2.04 2.04C3.97 7.62 3.25 9.23 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c1.77-.2 3.38-.91 4.69-1.98L19.73 21 21 19.73 4.27 3 3 4.27zm13.27 13.27C15.09 18.45 13.61 19 12 19c-3.87 0-7-3.13-7-7 0-1.61.55-3.09 1.46-4.27l9.81 9.81z"/></g>
+<g id="location-searching"><path d="M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"/></g>
+<g id="multitrack-audio"><path d="M7 18h2V6H7v12zm4 4h2V2h-2v20zm-8-8h2v-4H3v4zm12 4h2V6h-2v12zm4-8v4h2v-4h-2z"/></g>
+<g id="network-cell"><path fill-opacity=".3" d="M2 22h20V2z"/><path d="M17 7L2 22h15z"/></g>
+<g id="network-wifi"><path fill-opacity=".3" d="M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/><path d="M3.53 10.95l8.46 10.54.01.01.01-.01 8.46-10.54C20.04 10.62 16.81 8 12 8c-4.81 0-8.04 2.62-8.47 2.95z"/></g>
+<g id="nfc"><path d="M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H4V4h16v16zM18 6h-5c-1.1 0-2 .9-2 2v2.28c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V8h3v8H8V8h2V6H6v12h12V6z"/></g>
+<g id="now-wallpaper"><path d="M4 4h7V2H4c-1.1 0-2 .9-2 2v7h2V4zm6 9l-4 5h12l-3-4-2.03 2.71L10 13zm7-4.5c0-.83-.67-1.5-1.5-1.5S14 7.67 14 8.5s.67 1.5 1.5 1.5S17 9.33 17 8.5zM20 2h-7v2h7v7h2V4c0-1.1-.9-2-2-2zm0 18h-7v2h7c1.1 0 2-.9 2-2v-7h-2v7zM4 13H2v7c0 1.1.9 2 2 2h7v-2H4v-7z"/></g>
+<g id="now-widgets"><path d="M13 13v8h8v-8h-8zM3 21h8v-8H3v8zM3 3v8h8V3H3zm13.66-1.31L11 7.34 16.66 13l5.66-5.66-5.66-5.65z"/></g>
+<g id="screen-lock-landscape"><path d="M21 5H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-2 12H5V7h14v10zm-9-1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1v-1c0-1.11-.9-2-2-2-1.11 0-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1zm.8-6c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2v1h-2.4v-1z"/></g>
+<g id="screen-lock-portrait"><path d="M10 16h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1v-1c0-1.11-.9-2-2-2-1.11 0-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1zm.8-6c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2v1h-2.4v-1zM17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 18H7V5h10v14z"/></g>
+<g id="screen-lock-rotation"><path d="M23.25 12.77l-2.57-2.57-1.41 1.41 2.22 2.22-5.66 5.66L4.51 8.17l5.66-5.66 2.1 2.1 1.41-1.41L11.23.75c-.59-.59-1.54-.59-2.12 0L2.75 7.11c-.59.59-.59 1.54 0 2.12l12.02 12.02c.59.59 1.54.59 2.12 0l6.36-6.36c.59-.59.59-1.54 0-2.12zM8.47 20.48C5.2 18.94 2.86 15.76 2.5 12H1c.51 6.16 5.66 11 11.95 11l.66-.03-3.81-3.82-1.33 1.33zM16 9h5c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1v-.5C21 1.12 19.88 0 18.5 0S16 1.12 16 2.5V3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.8-6.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V3h-3.4v-.5z"/></g>
+<g id="screen-rotation"><path d="M16.48 2.52c3.27 1.55 5.61 4.72 5.97 8.48h1.5C23.44 4.84 18.29 0 12 0l-.66.03 3.81 3.81 1.33-1.32zm-6.25-.77c-.59-.59-1.54-.59-2.12 0L1.75 8.11c-.59.59-.59 1.54 0 2.12l12.02 12.02c.59.59 1.54.59 2.12 0l6.36-6.36c.59-.59.59-1.54 0-2.12L10.23 1.75zm4.6 19.44L2.81 9.17l6.36-6.36 12.02 12.02-6.36 6.36zm-7.31.29C4.25 19.94 1.91 16.76 1.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32z"/></g>
+<g id="sd-storage"><path d="M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z"/></g>
+<g id="settings-system-daydream"><path d="M9 16h6.5c1.38 0 2.5-1.12 2.5-2.5S16.88 11 15.5 11h-.05c-.24-1.69-1.69-3-3.45-3-1.4 0-2.6.83-3.16 2.02h-.16C7.17 10.18 6 11.45 6 13c0 1.66 1.34 3 3 3zM21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z"/></g>
+<g id="signal-cellular-0-bar"><path fill-opacity=".3" d="M2 22h20V2z"/></g>
+<g id="signal-cellular-1-bar"><path fill-opacity=".3" d="M2 22h20V2z"/><path d="M12 12L2 22h10z"/></g>
+<g id="signal-cellular-2-bar"><path fill-opacity=".3" d="M2 22h20V2z"/><path d="M14 10L2 22h12z"/></g>
+<g id="signal-cellular-3-bar"><path fill-opacity=".3" d="M2 22h20V2z"/><path d="M17 7L2 22h15z"/></g>
+<g id="signal-cellular-4-bar"><path d="M2 22h20V2z"/></g>
+<g id="signal-cellular-connected-no-internet-0-bar"><path fill-opacity=".3" d="M22 8V2L2 22h16V8z"/><path d="M20 22h2v-2h-2v2zm0-12v8h2v-8h-2z"/></g>
+<g id="signal-cellular-connected-no-internet-1-bar"><path fill-opacity=".3" d="M22 8V2L2 22h16V8z"/><path d="M20 10v8h2v-8h-2zm-8 12V12L2 22h10zm8 0h2v-2h-2v2z"/></g>
+<g id="signal-cellular-connected-no-internet-2-bar"><path fill-opacity=".3" d="M22 8V2L2 22h16V8z"/><path d="M14 22V10L2 22h12zm6-12v8h2v-8h-2zm0 12h2v-2h-2v2z"/></g>
+<g id="signal-cellular-connected-no-internet-3-bar"><path fill-opacity=".3" d="M22 8V2L2 22h16V8z"/><path d="M17 22V7L2 22h15zm3-12v8h2v-8h-2zm0 12h2v-2h-2v2z"/></g>
+<g id="signal-cellular-connected-no-internet-4-bar"><path d="M20 18h2v-8h-2v8zm0 4h2v-2h-2v2zM2 22h16V8h4V2L2 22z"/></g>
+<g id="signal-cellular-no-sim"><path d="M18.99 5c0-1.1-.89-2-1.99-2h-7L7.66 5.34 19 16.68 18.99 5zM3.65 3.88L2.38 5.15 5 7.77V19c0 1.1.9 2 2 2h10.01c.35 0 .67-.1.96-.26l1.88 1.88 1.27-1.27L3.65 3.88z"/></g>
+<g id="signal-cellular-null"><path d="M20 6.83V20H6.83L20 6.83M22 2L2 22h20V2z"/></g>
+<g id="signal-cellular-off"><path d="M21 1l-8.59 8.59L21 18.18V1zM4.77 4.5L3.5 5.77l6.36 6.36L1 21h17.73l2 2L22 21.73 4.77 4.5z"/></g>
+<g id="signal-wifi-0-bar"><path fill-opacity=".3" d="M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/></g>
+<g id="signal-wifi-1-bar"><path fill-opacity=".3" d="M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/><path d="M6.67 14.86L12 21.49v.01l.01-.01 5.33-6.63C17.06 14.65 15.03 13 12 13s-5.06 1.65-5.33 1.86z"/></g>
+<g id="signal-wifi-2-bar"><path fill-opacity=".3" d="M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/><path d="M4.79 12.52l7.2 8.98H12l.01-.01 7.2-8.98C18.85 12.24 16.1 10 12 10s-6.85 2.24-7.21 2.52z"/></g>
+<g id="signal-wifi-3-bar"><path fill-opacity=".3" d="M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/><path d="M3.53 10.95l8.46 10.54.01.01.01-.01 8.46-10.54C20.04 10.62 16.81 8 12 8c-4.81 0-8.04 2.62-8.47 2.95z"/></g>
+<g id="signal-wifi-4-bar"><path d="M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z"/></g>
+<g id="signal-wifi-off"><path d="M23.64 7c-.45-.34-4.93-4-11.64-4-1.5 0-2.89.19-4.15.48L18.18 13.8 23.64 7zm-6.6 8.22L3.27 1.44 2 2.72l2.05 2.06C1.91 5.76.59 6.82.36 7l11.63 14.49.01.01.01-.01 3.9-4.86 3.32 3.32 1.27-1.27-3.46-3.46z"/></g>
+<g id="storage"><path d="M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z"/></g>
+<g id="usb"><path d="M15 7v4h1v2h-3V5h2l-3-4-3 4h2v8H8v-2.07c.7-.37 1.2-1.08 1.2-1.93 0-1.21-.99-2.2-2.2-2.2-1.21 0-2.2.99-2.2 2.2 0 .85.5 1.56 1.2 1.93V13c0 1.11.89 2 2 2h3v3.05c-.71.37-1.2 1.1-1.2 1.95 0 1.22.99 2.2 2.2 2.2 1.21 0 2.2-.98 2.2-2.2 0-.85-.49-1.58-1.2-1.95V15h3c1.11 0 2-.89 2-2v-2h1V7h-4z"/></g>
+<g id="wifi-lock"><path d="M20.5 9.5c.28 0 .55.04.81.08L24 6c-3.34-2.51-7.5-4-12-4S3.34 3.49 0 6l12 16 3.5-4.67V14.5c0-2.76 2.24-5 5-5zM23 16v-1.5c0-1.38-1.12-2.5-2.5-2.5S18 13.12 18 14.5V16c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-1 0h-3v-1.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V16z"/></g>
+<g id="wifi-tethering"><path d="M12 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 2c0-3.31-2.69-6-6-6s-6 2.69-6 6c0 2.22 1.21 4.15 3 5.19l1-1.74c-1.19-.7-2-1.97-2-3.45 0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.48-.81 2.75-2 3.45l1 1.74c1.79-1.04 3-2.97 3-5.19zM12 3C6.48 3 2 7.48 2 13c0 3.7 2.01 6.92 4.99 8.65l1-1.73C5.61 18.53 4 15.96 4 13c0-4.42 3.58-8 8-8s8 3.58 8 8c0 2.96-1.61 5.53-4 6.92l1 1.73c2.99-1.73 5-4.95 5-8.65 0-5.52-4.48-10-10-10z"/></g>
+</defs></svg>
diff --git a/public/assets/angular-material-assets/img/icons/sets/social-icons.svg b/public/assets/angular-material-assets/img/icons/sets/social-icons.svg
new file mode 100644 (file)
index 0000000..3b39255
--- /dev/null
@@ -0,0 +1,26 @@
+<svg><defs>
+<g id="cake"><path d="M12 6c1.11 0 2-.9 2-2 0-.38-.1-.73-.29-1.03L12 0l-1.71 2.97c-.19.3-.29.65-.29 1.03 0 1.1.9 2 2 2zm4.6 9.99l-1.07-1.07-1.08 1.07c-1.3 1.3-3.58 1.31-4.89 0l-1.07-1.07-1.09 1.07C6.75 16.64 5.88 17 4.96 17c-.73 0-1.4-.23-1.96-.61V21c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-4.61c-.56.38-1.23.61-1.96.61-.92 0-1.79-.36-2.44-1.01zM18 9h-5V7h-2v2H6c-1.66 0-3 1.34-3 3v1.54c0 1.08.88 1.96 1.96 1.96.52 0 1.02-.2 1.38-.57l2.14-2.13 2.13 2.13c.74.74 2.03.74 2.77 0l2.14-2.13 2.13 2.13c.37.37.86.57 1.38.57 1.08 0 1.96-.88 1.96-1.96V12C21 10.34 19.66 9 18 9z"/></g>
+<g id="domain"><path d="M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z"/></g>
+<g id="group"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></g>
+<g id="group-add"><path d="M8 10H5V7H3v3H0v2h3v3h2v-3h3v-2zm10 1c1.66 0 2.99-1.34 2.99-3S19.66 5 18 5c-.32 0-.63.05-.91.14.57.81.9 1.79.9 2.86s-.34 2.04-.9 2.86c.28.09.59.14.91.14zm-5 0c1.66 0 2.99-1.34 2.99-3S14.66 5 13 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm6.62 2.16c.83.73 1.38 1.66 1.38 2.84v2h3v-2c0-1.54-2.37-2.49-4.38-2.84zM13 13c-2 0-6 1-6 3v2h12v-2c0-2-4-3-6-3z"/></g>
+<g id="location-city"><path d="M15 11V5l-3-3-3 3v2H3v14h18V11h-6zm-8 8H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm6 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm6 12h-2v-2h2v2zm0-4h-2v-2h2v2z"/></g>
+<g id="mood"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z"/></g>
+<g id="notifications"><path d="M11.5 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6.5-6v-5.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-2.87.68-5 3.25-5 6.32V16l-2 2v1h17v-1l-2-2z"/></g>
+<g id="notifications-none"><path d="M11.5 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6.5-6v-5.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-2.87.68-5 3.25-5 6.32V16l-2 2v1h17v-1l-2-2zm-2 1H7v-6.5C7 8.01 9.01 6 11.5 6S16 8.01 16 10.5V17z"/></g>
+<g id="notifications-off"><path d="M11.5 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zM18 10.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-.51.12-.99.32-1.45.56L18 14.18V10.5zm-.27 8.5l2 2L21 19.73 4.27 3 3 4.27l2.92 2.92C5.34 8.16 5 9.29 5 10.5V16l-2 2v1h14.73z"/></g>
+<g id="notifications-on"><path d="M6.58 3.58L5.15 2.15C2.76 3.97 1.18 6.8 1.03 10h2c.15-2.65 1.51-4.97 3.55-6.42zM19.97 10h2c-.15-3.2-1.73-6.03-4.13-7.85l-1.43 1.43c2.05 1.45 3.41 3.77 3.56 6.42zm-1.97.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-2.87.68-5 3.25-5 6.32V16l-2 2v1h17v-1l-2-2v-5.5zM11.5 22c.14 0 .27-.01.4-.04.65-.13 1.19-.58 1.44-1.18.1-.24.16-.5.16-.78h-4c0 1.1.9 2 2 2z"/></g>
+<g id="notifications-paused"><path d="M11.5 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6.5-6v-5.5c0-3.07-2.13-5.64-5-6.32V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v.68c-2.87.68-5 3.25-5 6.32V16l-2 2v1h17v-1l-2-2zm-4-6.2l-2.8 3.4H14V15H9v-1.8l2.8-3.4H9V8h5v1.8z"/></g>
+<g id="pages"><path d="M3 5v6h5L7 7l4 1V3H5c-1.1 0-2 .9-2 2zm5 8H3v6c0 1.1.9 2 2 2h6v-5l-4 1 1-4zm9 4l-4-1v5h6c1.1 0 2-.9 2-2v-6h-5l1 4zm2-14h-6v5l4-1-1 4h5V5c0-1.1-.9-2-2-2z"/></g>
+<g id="party-mode"><path d="M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 3c1.63 0 3.06.79 3.98 2H12c-1.66 0-3 1.34-3 3 0 .35.07.69.18 1H7.1c-.06-.32-.1-.66-.1-1 0-2.76 2.24-5 5-5zm0 10c-1.63 0-3.06-.79-3.98-2H12c1.66 0 3-1.34 3-3 0-.35-.07-.69-.18-1h2.08c.07.32.1.66.1 1 0 2.76-2.24 5-5 5z"/></g>
+<g id="people"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></g>
+<g id="people-outline"><path d="M16.5 13c-1.2 0-3.07.34-4.5 1-1.43-.67-3.3-1-4.5-1C5.33 13 1 14.08 1 16.25V19h22v-2.75c0-2.17-4.33-3.25-6.5-3.25zm-4 4.5h-10v-1.25c0-.54 2.56-1.75 5-1.75s5 1.21 5 1.75v1.25zm9 0H14v-1.25c0-.46-.2-.86-.52-1.22.88-.3 1.96-.53 3.02-.53 2.44 0 5 1.21 5 1.75v1.25zM7.5 12c1.93 0 3.5-1.57 3.5-3.5S9.43 5 7.5 5 4 6.57 4 8.5 5.57 12 7.5 12zm0-5.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 5.5c1.93 0 3.5-1.57 3.5-3.5S18.43 5 16.5 5 13 6.57 13 8.5s1.57 3.5 3.5 3.5zm0-5.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2z"/></g>
+<g id="person"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></g>
+<g id="person-add"><path d="M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></g>
+<g id="person-outline"><path d="M12 5.9c1.16 0 2.1.94 2.1 2.1s-.94 2.1-2.1 2.1S9.9 9.16 9.9 8s.94-2.1 2.1-2.1m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z"/></g>
+<g id="plus-one"><path d="M10 8H8v4H4v2h4v4h2v-4h4v-2h-4zm4.5-1.92V7.9l2.5-.5V18h2V5z"/></g>
+<g id="poll"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"/></g>
+<g id="public"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/></g>
+<g id="school"><path d="M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z"/></g>
+<g id="share"><path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"/></g>
+<g id="whatshot"><path d="M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04 0 2.65-2.15 4.8-4.8 4.8z"/></g>
+</defs></svg>
\ No newline at end of file
diff --git a/public/assets/angular-material-assets/img/icons/share-arrow.svg b/public/assets/angular-material-assets/img/icons/share-arrow.svg
new file mode 100644 (file)
index 0000000..2d6befc
--- /dev/null
@@ -0,0 +1 @@
+<svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"><g><g><path fill="#7d7d7d" d="M21,11l-7-7v4C7,9,4,14,3,19c2.5-3.5,6-5.1,11-5.1V18L21,11z"/><rect fill="none" width="24" height="24"/></g></g></svg>
diff --git a/public/assets/angular-material-assets/img/icons/tabs-arrow.svg b/public/assets/angular-material-assets/img/icons/tabs-arrow.svg
new file mode 100644 (file)
index 0000000..c7b7986
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+        viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
+<g id="Header">
+       <g>
+               <rect x="-618" y="-1208" fill="none" width="1400" height="3600"/>
+       </g>
+</g>
+<g id="Label">
+</g>
+<polygon points="15.4,7.4 14,6 8,12 14,18 15.4,16.6 10.8,12 "/>
+<g id="Grid" display="none">
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/icons/toggle-arrow.svg b/public/assets/angular-material-assets/img/icons/toggle-arrow.svg
new file mode 100644 (file)
index 0000000..0c5b64d
--- /dev/null
@@ -0,0 +1,4 @@
+<svg version="1.1" x="0px" y="0px" viewBox="0 0 48 48">
+  <path d="M24 16l-12 12 2.83 2.83 9.17-9.17 9.17 9.17 2.83-2.83z"/>
+  <path d="M0 0h48v48h-48z" fill="none"/>
+</svg>
\ No newline at end of file
diff --git a/public/assets/angular-material-assets/img/icons/twitter.svg b/public/assets/angular-material-assets/img/icons/twitter.svg
new file mode 100644 (file)
index 0000000..e4f85eb
--- /dev/null
@@ -0,0 +1,2 @@
+<svg version="1.1" x="0px" y="0px" width="48px" height="48px" viewBox="0 0 48 48" enable-background="new 0 0 48 48" xml:space="preserve"><g><g><g><path fill="#7d7d7d" d="M40,4H8C5.8,4,4,5.8,4,8l0,32c0,2.2,1.8,4,4,4h32c2.2,0,4-1.8,4-4V8C44,5.8,42.2,4,40,4z M35.4,18.7c-0.1,9.2-6,15.6-14.8,16c-3.6,0.2-6.3-1-8.6-2.5c2.7,0.4,6-0.6,7.8-2.2c-2.6-0.3-4.2-1.6-4.9-3.8c0.8,0.1,1.6,0.1,2.3-0.1
+c-2.4-0.8-4.1-2.3-4.2-5.3c0.7,0.3,1.4,0.6,2.3,0.6c-1.8-1-3.1-4.7-1.6-7.2c2.6,2.9,5.8,5.3,11,5.6c-1.3-5.6,6.1-8.6,9.2-4.9c1.3-0.3,2.4-0.8,3.4-1.3c-0.4,1.3-1.2,2.2-2.2,2.9c1.1-0.1,2.1-0.4,2.9-0.8C37.5,16.9,36.4,17.9,35.4,18.7z"/></g><g><rect fill="none" width="48" height="48"/></g></g></g></svg>
diff --git a/public/assets/angular-material-assets/img/icons/upload.svg b/public/assets/angular-material-assets/img/icons/upload.svg
new file mode 100644 (file)
index 0000000..6a673db
--- /dev/null
@@ -0,0 +1 @@
+<svg version="1.1" x="0px" y="0px" width="24px" height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve"><g><g><rect x="-618" y="-2232" fill="none" width="1400" height="3600"/></g></g><g><g><rect fill="none" width="24" height="24"/><path fill="#7d7d7d" d="M19.4,10c-0.7-3.4-3.7-6-7.4-6C9.1,4,6.6,5.6,5.4,8C2.3,8.4,0,10.9,0,14c0,3.3,2.7,6,6,6h13c2.8,0,5-2.2,5-5C24,12.4,21.9,10.2,19.4,10z M14,13v4h-4v-4H7l5-5l5,5H14z"/></g></g></svg>
diff --git a/public/assets/angular-material-assets/img/list/60.jpeg b/public/assets/angular-material-assets/img/list/60.jpeg
new file mode 100644 (file)
index 0000000..f0acea4
Binary files /dev/null and b/public/assets/angular-material-assets/img/list/60.jpeg differ
diff --git a/public/assets/angular-material-assets/img/logo.svg b/public/assets/angular-material-assets/img/logo.svg
new file mode 100644 (file)
index 0000000..a04b2c8
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+        viewBox="0 0 100 100" enable-background="new 0 0 100 100" xml:space="preserve">
+<g id="Layer_1">
+  <path d="M 50 0 L 100 14 L 92 80 L 50 100 L 8 80 L 0 14 Z" fill="#b2b2b2"></path>
+  <path d="M 50 5 L 6 18 L 13.5 77 L 50 94 Z" fill="#E42939" md-fill-level="700"></path>
+  <path d="M 50 5 L 94 18 L 86.5 77 L 50 94 Z" fill="#B72833" md-fill-level="900"></path>
+  <path d="M 50 7 L 83 75 L 72 75 L 65 59 L 50 59 L 50 50 L 61 50 L 50 26 Z" fill="#b2b2b2"></path>
+  <path d="M 50 7 L 17 75 L 28 75 L 35 59 L 50 59 L 50 50 L 39 50 L 50 26 Z" fill="#fff"></path>
+</g>
+</svg>
diff --git a/public/assets/angular-material-assets/img/mangues.jpg b/public/assets/angular-material-assets/img/mangues.jpg
new file mode 100644 (file)
index 0000000..556d853
Binary files /dev/null and b/public/assets/angular-material-assets/img/mangues.jpg differ
diff --git a/public/assets/angular-material-assets/img/testimonials/logo-bradgreen@2x.fw.png b/public/assets/angular-material-assets/img/testimonials/logo-bradgreen@2x.fw.png
new file mode 100644 (file)
index 0000000..b36da3f
Binary files /dev/null and b/public/assets/angular-material-assets/img/testimonials/logo-bradgreen@2x.fw.png differ
diff --git a/public/assets/angular-material-assets/img/testimonials/logo-bradgreen@2x.png b/public/assets/angular-material-assets/img/testimonials/logo-bradgreen@2x.png
new file mode 100644 (file)
index 0000000..4bde407
Binary files /dev/null and b/public/assets/angular-material-assets/img/testimonials/logo-bradgreen@2x.png differ
diff --git a/public/assets/angular-material-assets/img/testimonials/logo-maxlynch@2x.fw.png b/public/assets/angular-material-assets/img/testimonials/logo-maxlynch@2x.fw.png
new file mode 100644 (file)
index 0000000..36a7f3c
Binary files /dev/null and b/public/assets/angular-material-assets/img/testimonials/logo-maxlynch@2x.fw.png differ
diff --git a/public/assets/angular-material-assets/img/testimonials/logo-maxlynch@2x.png b/public/assets/angular-material-assets/img/testimonials/logo-maxlynch@2x.png
new file mode 100644 (file)
index 0000000..8522b5c
Binary files /dev/null and b/public/assets/angular-material-assets/img/testimonials/logo-maxlynch@2x.png differ
diff --git a/public/assets/angular-material-assets/img/testimonials/logo-thomasburleson@2x.png b/public/assets/angular-material-assets/img/testimonials/logo-thomasburleson@2x.png
new file mode 100644 (file)
index 0000000..6ab404b
Binary files /dev/null and b/public/assets/angular-material-assets/img/testimonials/logo-thomasburleson@2x.png differ
diff --git a/public/assets/angular-material-assets/img/testimonials/quote.png b/public/assets/angular-material-assets/img/testimonials/quote.png
new file mode 100644 (file)
index 0000000..a9f2a73
Binary files /dev/null and b/public/assets/angular-material-assets/img/testimonials/quote.png differ
diff --git a/public/assets/angular-material-assets/img/testimonials/testimonial-hampton@2x.png b/public/assets/angular-material-assets/img/testimonials/testimonial-hampton@2x.png
new file mode 100644 (file)
index 0000000..65abe71
Binary files /dev/null and b/public/assets/angular-material-assets/img/testimonials/testimonial-hampton@2x.png differ
diff --git a/public/assets/angular-material-assets/img/testimonials/testimonial-holly@2x.png b/public/assets/angular-material-assets/img/testimonials/testimonial-holly@2x.png
new file mode 100644 (file)
index 0000000..ebb9f3f
Binary files /dev/null and b/public/assets/angular-material-assets/img/testimonials/testimonial-holly@2x.png differ
diff --git a/public/assets/angular-material-assets/img/testimonials/testimonial-james@2x.png b/public/assets/angular-material-assets/img/testimonials/testimonial-james@2x.png
new file mode 100644 (file)
index 0000000..93865c4
Binary files /dev/null and b/public/assets/angular-material-assets/img/testimonials/testimonial-james@2x.png differ
diff --git a/public/assets/angular-material-assets/img/washedout.png b/public/assets/angular-material-assets/img/washedout.png
new file mode 100644 (file)
index 0000000..c39a84e
Binary files /dev/null and b/public/assets/angular-material-assets/img/washedout.png differ
diff --git a/public/assets/icons/fonts/icomoon.eot b/public/assets/icons/fonts/icomoon.eot
new file mode 100644 (file)
index 0000000..7869169
Binary files /dev/null and b/public/assets/icons/fonts/icomoon.eot differ
diff --git a/public/assets/icons/fonts/icomoon.svg b/public/assets/icons/fonts/icomoon.svg
new file mode 100644 (file)
index 0000000..d75c88c
--- /dev/null
@@ -0,0 +1,1299 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>Generated by IcoMoon</metadata>
+<defs>
+<font id="icomoon" horiz-adv-x="1024">
+<font-face units-per-em="1024" ascent="960" descent="-64" />
+<missing-glyph horiz-adv-x="1024" />
+<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
+<glyph unicode="&#xe600;" glyph-name="account-alert" d="M426.667 768c94.255 0 170.667-76.41 170.667-170.667 0-94.255-76.412-170.667-170.667-170.667-94.257 0-170.667 76.412-170.667 170.667 0 94.257 76.41 170.667 170.667 170.667zM426.667 341.334c188.514 0 341.333-76.412 341.333-170.667v-85.333h-682.667v85.333c0 94.255 152.82 170.667 341.333 170.667zM853.333 426.667v213.333h85.333v-213.333h-85.333zM853.333 256v85.333h85.333v-85.333h-85.333z" />
+<glyph unicode="&#xe601;" glyph-name="account-box-outline" d="M810.637 128.081l-597.333-0.043v597.377h597.333zM810.637 810.749h-597.333c-47.104 0-85.333-38.229-85.333-85.333v-597.335c0-47.147 38.229-85.333 85.333-85.333h597.333c47.104 0 85.333 38.187 85.333 85.333v597.335c0 47.104-38.229 85.333-85.333 85.333zM703.97 245.415c0 64-128 96-192 96s-192-32-192-96v-32h384zM511.97 416.081c52.992 0 96 42.923 96 96.001 0 52.992-43.008 96-96 96s-96.001-43.008-96.001-96c0-53.079 43.009-96.001 96.001-96.001z" />
+<glyph unicode="&#xe602;" glyph-name="account-box" d="M255.974 213.334c0 85.333 170.667 132.267 256 132.267s256-46.933 256-132.267v-42.667h-512zM639.974 554.667c0-70.741-57.344-128-128-128s-128 57.259-128 128c0 70.656 57.344 128 128 128s128-57.344 128-128zM127.974 725.334v-597.333c0-47.104 38.144-85.333 85.333-85.333h597.333c47.083 0 85.333 38.229 85.333 85.333v597.333c0 47.104-38.251 85.333-85.333 85.333h-597.333c-47.189 0-85.333-38.229-85.333-85.333z" />
+<glyph unicode="&#xe603;" glyph-name="account-check" d="M384 725.334c82.475 0 149.333-66.859 149.333-149.333s-66.859-149.333-149.333-149.333c-82.474 0-149.333 66.859-149.333 149.333s66.859 149.333 149.333 149.333zM384 352c164.949 0 298.667-66.859 298.667-149.333v-74.667h-597.333v74.667c0 82.475 133.718 149.333 298.667 149.333zM725.333 398.328l-117.333 128 49.673 49.673 67.661-67.661 152.994 152.994 49.673-60.34-202.667-202.666z" />
+<glyph unicode="&#xe604;" glyph-name="account-circle" d="M511.966 119.544c-106.837 0-200.832 54.566-255.915 137.382 1.109 84.779 170.837 131.413 255.915 131.413s254.805-46.635 255.915-131.413c-55.083-82.816-149.077-137.382-255.915-137.382zM511.966 725.409c70.656 0 128-57.344 128-128 0-70.742-57.344-127.999-128-127.999s-128 57.257-128 127.999c0 70.656 57.344 128 128 128zM511.966 853.409c-235.648 0-426.667-190.976-426.667-426.665 0-235.648 191.019-426.667 426.667-426.667s426.667 191.019 426.667 426.667c0 235.689-191.019 426.665-426.667 426.665z" />
+<glyph unicode="&#xe605;" glyph-name="account-key" d="M469.333 512v-85.333h-42.667v-85.333h-85.333v85.333h-92.617c-17.572-49.715-64.984-85.333-120.716-85.333-70.692 0-128 57.306-128 128 0 70.692 57.307 128 128 128 55.732 0 103.145-35.619 120.716-85.333h220.617zM128 512c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667zM682.667 341.334c113.792 0 341.333-56.96 341.333-170.667v-85.333h-682.667v85.333c0 113.707 227.541 170.667 341.333 170.667zM682.667 426.667c-94.208 0-170.667 76.501-170.667 170.667 0 94.208 76.459 170.667 170.667 170.667s170.667-76.459 170.667-170.667c0-94.165-76.459-170.667-170.667-170.667z" />
+<glyph unicode="&#xe606;" glyph-name="account-location" d="M767.97 256.081h-512v38.4c0 85.376 170.624 132.267 256 132.267 85.333 0 256-46.891 256-132.267zM511.97 712.616c63.616 0 115.2-51.584 115.2-115.2 0-63.659-51.584-115.201-115.2-115.201s-115.2 51.543-115.2 115.201c0 63.616 51.584 115.2 115.2 115.2zM810.637 853.416h-597.333c-47.147 0-85.333-38.187-85.333-85.333v-597.335c0-47.147 38.186-85.333 85.333-85.333h170.667l128-128 128 128h170.667c47.061 0 85.333 38.187 85.333 85.333v597.335c0 47.147-38.272 85.333-85.333 85.333z" />
+<glyph unicode="&#xe607;" glyph-name="account-minus" d="M639.974 341.419c-113.792 0-341.334-56.96-341.334-170.667v-85.333h682.667v85.333c0 113.707-227.541 170.667-341.333 170.667zM42.641 512.087v-85.335h341.333v85.335zM639.974 426.752c94.208 0 170.667 76.501 170.667 170.668 0 94.208-76.459 170.667-170.667 170.667s-170.667-76.459-170.667-170.667c0-94.167 76.459-170.668 170.667-170.668z" />
+<glyph unicode="&#xe608;" glyph-name="account-multiple-outline" d="M704 661.334c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333zM704 426.667c82.347 0 149.333 66.987 149.333 149.333s-66.987 149.333-149.333 149.333c-82.347 0-149.333-66.987-149.333-149.333s66.987-149.333 149.333-149.333zM320 661.334c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333zM320 426.667c82.347 0 149.333 66.987 149.333 149.333s-66.987 149.333-149.333 149.333c-82.347 0-149.333-66.987-149.333-149.333s66.987-149.333 149.333-149.333zM917.333 192h-320v53.333c0 19.627-8.533 36.693-22.187 52.053 37.547 12.8 83.627 22.613 128.853 22.613 104.107 0 213.333-51.627 213.333-74.667zM533.333 192h-426.667v53.333c0 23.040 109.227 74.667 213.333 74.667s213.333-51.627 213.333-74.667zM704 384c-51.2 0-130.987-14.507-192-42.667-61.013 28.587-140.8 42.667-192 42.667-92.587 0-277.333-46.080-277.333-138.667v-117.333h938.667v117.333c0 92.587-184.747 138.667-277.333 138.667z" />
+<glyph unicode="&#xe609;" glyph-name="account-multiple-plus" d="M554.654 384.081c-85.333 0-256-42.709-256-128v-85.333h512v85.333c0 85.291-170.667 128-256 128zM837.15 377.25c35.371-30.929 58.837-70.737 58.837-121.169v-85.333h128v85.333c0 65.749-101.291 106.086-186.837 121.169zM554.654 469.415c70.699 0 127.573 57.345 127.573 128.001s-56.875 128-127.573 128c-70.699 0-128-57.344-128-128s57.301-128.001 128-128.001zM767.987 469.415c70.699 0 127.573 57.345 127.573 128.001s-56.875 128-127.573 128c-13.611 0-26.709-2.176-39.040-6.144 24.192-34.603 38.613-76.501 38.613-121.856s-14.421-87.255-38.613-121.857c12.331-3.968 25.429-6.144 39.040-6.144zM341.321 512.083h-128v128h-85.333v-128h-128v-85.335h128v-128h85.333v128h128v85.335z" />
+<glyph unicode="&#xe60a;" glyph-name="account-multiple" d="M682.641 384.081c-12.373 0-26.325-0.768-41.173-2.304 49.451-35.712 83.84-83.755 83.84-147.029v-106.667h256v106.667c0 99.499-199.125 149.333-298.667 149.333zM341.307 384.081c-99.585 0-298.667-49.835-298.667-149.333v-106.667h597.334v106.667c0 99.499-199.125 149.333-298.667 149.333zM341.307 469.415c70.699 0 127.574 57.345 127.574 128.001s-56.875 128-127.574 128c-70.699 0-128-57.344-128-128s57.301-128.001 128-128.001zM682.641 469.415c70.699 0 127.573 57.345 127.573 128.001s-56.875 128-127.573 128c-70.699 0-128-57.344-128-128s57.301-128.001 128-128.001z" />
+<glyph unicode="&#xe60b;" glyph-name="account-network" d="M554.667 256v-85.333h42.667c23.565 0 42.667-19.102 42.667-42.667h298.667v-85.333h-298.667c0-23.565-19.102-42.667-42.667-42.667h-170.667c-23.564 0-42.666 19.102-42.666 42.667h-298.667v85.333h298.667c0 23.565 19.102 42.667 42.666 42.667h42.667v85.333h-256v64c0 82.475 133.718 149.333 298.667 149.333s298.667-66.859 298.667-149.333v-64h-256zM512 853.334c82.475 0 149.333-66.859 149.333-149.333s-66.859-149.333-149.333-149.333c-82.475 0-149.333 66.859-149.333 149.333s66.859 149.333 149.333 149.333z" />
+<glyph unicode="&#xe60c;" glyph-name="account-outline" d="M511.974 384.081c-113.792 0-341.334-56.96-341.334-170.667v-128h682.667v128c0 113.707-227.541 170.667-341.333 170.667zM511.974 768.083c-94.209 0-170.667-76.458-170.667-170.667 0-94.167 76.458-170.668 170.667-170.668s170.667 76.501 170.667 170.668c0 94.208-76.459 170.667-170.667 170.667zM511.974 303.015c126.891 0 260.267-62.165 260.267-89.6v-46.933h-520.534v46.933c0 27.435 133.376 89.6 260.268 89.6zM511.974 687.016c49.408 0 89.6-40.192 89.6-89.6s-40.192-89.601-89.6-89.601c-49.408 0-89.601 40.193-89.601 89.601s40.193 89.6 89.601 89.6z" />
+<glyph unicode="&#xe60d;" glyph-name="account-plus" d="M639.974 341.419c-113.792 0-341.334-56.96-341.334-170.667v-85.333h682.667v85.333c0 113.707-227.541 170.667-341.333 170.667zM255.974 512.087v128h-85.333v-128h-128v-85.335h128v-128h85.333v128h128v85.335zM639.974 426.752c94.208 0 170.667 76.501 170.667 170.668 0 94.208-76.459 170.667-170.667 170.667s-170.667-76.459-170.667-170.667c0-94.167 76.459-170.668 170.667-170.668z" />
+<glyph unicode="&#xe60e;" glyph-name="account-remove" d="M639.974 341.419c113.792 0 341.333-56.96 341.333-170.667v-85.333h-682.667v85.333c0 113.707 227.542 170.667 341.334 170.667zM639.97 426.752c-94.208 0-170.667 76.501-170.667 170.668 0 94.208 76.459 170.667 170.667 170.667 94.212 0 170.667-76.459 170.667-170.667 0-94.166-76.454-170.668-170.667-170.668zM213.331 529.672l90.511 90.511 60.34-60.34-90.511-90.509 90.51-90.513-60.339-60.339-90.51 90.513-90.51-90.513-60.34 60.343 90.509 90.509-90.51 90.508 60.34 60.34 90.51-90.51z" />
+<glyph unicode="&#xe60f;" glyph-name="account-search" d="M640 341.334c113.792 0 341.333-56.96 341.333-170.667v-85.333h-682.667v85.333c0 113.707 227.541 170.667 341.333 170.667zM640 426.667c-94.208 0-170.667 76.501-170.667 170.667 0 94.208 76.459 170.667 170.667 170.667s170.667-76.459 170.667-170.667c0-94.165-76.459-170.667-170.667-170.667zM117.647 313.306c-16.663-16.661-43.677-16.661-60.34 0-16.662 16.666-16.662 43.678 0 60.343l83.167 83.166c-7.997 16.708-12.474 35.426-12.474 55.185 0 70.692 57.307 128 128 128s128-57.308 128-128c0-70.694-57.308-128-128-128-19.761 0-38.476 4.476-55.186 12.476l-83.167-83.17zM256 554.667c-23.564 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667z" />
+<glyph unicode="&#xe610;" glyph-name="account-switch" d="M682.667 554.667c99.541 0 298.667-49.835 298.667-149.333v-106.667h-256v106.667c0 63.275-34.389 111.317-83.84 147.029l41.173 2.304zM341.333 554.667c99.541 0 298.667-49.835 298.667-149.333v-106.667h-597.333v106.667c0 99.499 199.083 149.333 298.667 149.333zM341.333 640c-70.698 0-128 57.344-128 128s57.302 128 128 128c70.7 0 127.573-57.344 127.573-128s-56.874-128-127.573-128zM682.667 640c-70.699 0-128 57.344-128 128s57.301 128 128 128c70.699 0 127.573-57.344 127.573-128s-56.875-128-127.573-128zM384 224v-96h256v96l138.667-138.667-138.667-138.667v96h-256v-96l-138.667 138.667 138.667 138.667z" />
+<glyph unicode="&#xe611;" glyph-name="account" d="M512 768c94.255 0 170.667-76.41 170.667-170.667 0-94.255-76.412-170.667-170.667-170.667-94.257 0-170.667 76.412-170.667 170.667 0 94.257 76.41 170.667 170.667 170.667zM512 341.334c188.514 0 341.333-76.412 341.333-170.667v-85.333h-682.667v85.333c0 94.255 152.82 170.667 341.333 170.667z" />
+<glyph unicode="&#xe612;" glyph-name="airballoon" d="M469.333-42.666c-47.128 0-85.333 38.204-85.333 85.333v85.333h256v-85.333c0-47.13-38.204-85.333-85.333-85.333h-85.333zM512 896c30.161 0 59.409-3.912 87.262-11.256 49.946-66.991 83.405-189.743 83.405-330.077 0-97.387-16.111-186.308-42.667-298.667 0-47.13-38.204-85.333-85.333-85.333h-85.333c-47.128 0-85.333 38.204-85.333 85.333-26.554 112.358-42.667 201.28-42.667 298.667 0 140.334 33.457 263.086 83.403 330.077 27.855 7.344 57.103 11.256 87.264 11.256zM853.333 597.333c0-135.59-79.057-338.048-193.591-393.122 40.427 77.641 65.591 229.504 65.591 350.455s-25.165 230.147-65.591 307.79c114.534-55.077 193.591-129.535 193.591-265.123zM170.667 597.333c0 135.589 79.058 210.046 193.591 265.123-40.428-77.643-65.591-186.839-65.591-307.79s25.164-272.815 65.592-350.455c-114.534 55.074-193.592 257.532-193.592 393.122z" />
+<glyph unicode="&#xe613;" glyph-name="airplane-off" d="M134.246 713.757l212.736-212.735-255.403-159.616v-85.333l341.333 106.667v-234.667l-85.333-64v-64l149.333 42.667 149.333-42.667v64l-85.333 64v159.019l244.352-244.352 54.272 54.315-670.976 671.017zM560.913 554.738v234.667c0 35.371-28.672 64-64 64s-64-28.629-64-64v-157.098l333.952-333.908 135.381-42.325v85.333l-341.333 213.332z" />
+<glyph unicode="&#xe614;" glyph-name="airplane" d="M895.974 256.086v85.333l-341.333 213.331v234.667c0 35.371-28.672 64-64 64s-64-28.629-64-64v-234.667l-341.333-213.331v-85.333l341.333 106.667v-234.667l-85.333-64v-64l149.333 42.667 149.333-42.667v64l-85.333 64v234.667l341.333-106.667z" />
+<glyph unicode="&#xe615;" glyph-name="alarm-check" d="M449.707 318.72l-90.88 90.88-45.227-45.227 135.68-135.68 256 256-45.227 45.227-210.347-211.2zM512 85.334c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667c165.12 0 298.667-133.547 298.667-298.667s-133.547-298.667-298.667-298.667zM512 768c-212.053 0-384-171.947-384-384s171.52-384 384-384c212.053 0 384 171.947 384 384s-171.947 384-384 384zM336.213 794.027l-54.613 65.28-196.267-164.267 55.040-65.28 195.84 164.267zM938.667 694.614l-196.267 164.693-55.040-65.28 196.267-164.693 55.040 65.28z" />
+<glyph unicode="&#xe616;" glyph-name="alarm-multiple" d="M396.459 799.957l-176.256-147.849-49.536 58.761 176.64 147.84 49.152-58.752zM938.667 710.485l-49.536-58.752-176.64 148.224 49.536 58.752 176.64-148.224zM554.667 768c188.514 0 341.333-152.82 341.333-341.333s-152.819-341.333-341.333-341.333-341.333 152.819-341.333 341.333c0 188.513 152.82 341.333 341.333 341.333zM554.667 682.667c-141.385 0-256-114.615-256-256s114.615-256 256-256c141.385 0 256 114.615 256 256s-114.615 256-256 256zM512 618.667h64v-193.468l137.267-62.434-26.496-58.257-174.771 79.492v234.667zM42.667 341.334c0 105.988 48.309 200.697 124.11 263.304-24.895-54.169-38.776-114.448-38.776-177.97l2.684-48.124-2.685-37.21c0-97.19 54.162-181.734 133.949-225.088 55.543-52.395 125.144-90.044 202.55-106.701-25.813-6.238-52.77-9.545-80.499-9.545-188.513 0-341.333 152.819-341.333 341.333z" />
+<glyph unicode="&#xe617;" glyph-name="alarm-off" d="M342.187 798.72l-60.587 60.587-36.693-30.293 60.587-60.587zM702.72 154.027c-51.627-42.667-118.187-68.693-190.72-68.693-165.12 0-298.667 133.547-298.667 298.667 0 72.533 26.027 139.093 68.693 190.72zM124.587 840.96l-54.187-54.613 56.747-56.747-47.36-39.68 60.587-60.587 47.36 40.107 34.133-34.133c-58.453-67.413-93.867-155.307-93.867-251.307 0-212.053 171.52-384 384-384 96 0 183.893 35.413 251.307 93.867l93.867-93.867 54.187 54.187-786.773 786.773zM938.667 694.614l-196.267 164.693-55.040-65.28 196.267-164.693 55.040 65.28zM512 682.667c165.12 0 298.667-133.547 298.667-298.667 0-35.84-6.827-70.4-18.347-102.4l64.853-64.853c24.747 50.773 38.827 107.093 38.827 167.253 0 212.053-171.947 384-384 384-60.16 0-116.48-14.080-167.253-38.827l64.853-64.853c32 11.52 66.56 18.347 102.4 18.347z" />
+<glyph unicode="&#xe618;" glyph-name="alarm-plus" d="M554.667 554.667h-85.333v-128h-128v-85.333h128v-128h85.333v128h128v85.333h-128zM512 85.334c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667c165.12 0 298.667-133.547 298.667-298.667s-133.547-298.667-298.667-298.667zM512 768c-212.053 0-384-171.947-384-384s171.52-384 384-384c212.053 0 384 171.947 384 384s-171.947 384-384 384zM938.667 694.614l-196.267 164.693-55.040-65.28 196.267-164.693zM336.213 794.027l-54.613 65.28-196.267-164.267 55.040-65.28 195.84 164.267z" />
+<glyph unicode="&#xe619;" glyph-name="alarm" d="M512 85.334c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667c165.12 0 298.667-133.547 298.667-298.667s-133.547-298.667-298.667-298.667zM512 768c-212.053 0-384-171.947-384-384s171.52-384 384-384c212.053 0 384 171.947 384 384s-171.947 384-384 384zM533.333 597.334h-64v-256l202.667-121.6 32 52.48-170.667 101.12v224zM336.213 794.027l-54.613 65.28-196.267-164.267 55.040-65.28 195.84 164.267zM938.667 694.614l-196.267 164.693-55.040-65.28 196.267-164.693 55.040 65.28z" />
+<glyph unicode="&#xe61a;" glyph-name="album" d="M512 469.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM512 234.667c-106.24 0-192 85.76-192 192s85.76 192 192 192c106.24 0 192-85.76 192-192s-85.76-192-192-192zM512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667c235.52 0 426.667 191.147 426.667 426.667s-191.147 426.667-426.667 426.667z" />
+<glyph unicode="&#xe61b;" glyph-name="alert-box" d="M213.333 810.666h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM554.641 384.086v255.998h-85.333v-255.998h85.333zM554.641 213.419v85.333h-85.333v-85.333h85.333z" />
+<glyph unicode="&#xe61c;" glyph-name="alert-circle" d="M554.641 384.086h-85.333v255.998h85.333zM554.641 213.419h-85.333v85.333h85.333zM511.974 853.417c-235.648 0-426.667-191.018-426.667-426.665 0-235.652 191.019-426.667 426.667-426.667s426.667 191.014 426.667 426.667c0 235.646-191.019 426.665-426.667 426.665z" />
+<glyph unicode="&#xe61d;" glyph-name="alert-octagon" d="M554.641 384.086h-85.333v255.998h85.333zM511.974 200.619c-30.592 0-55.467 24.832-55.467 55.467 0 30.588 24.875 55.462 55.467 55.462s55.467-24.875 55.467-55.462c0-30.635-24.875-55.467-55.467-55.467zM671.036 810.75h-318.146l-224.916-224.937v-318.126l224.916-224.934h318.146l224.939 224.934v318.126l-224.939 224.937z" />
+<glyph unicode="&#xe61e;" glyph-name="alert" d="M554.667 341.334h-85.333v170.668h85.333zM554.667 170.667h-85.333v85.333h85.333zM42.667 42.667h938.667l-469.333 810.668-469.333-810.668z" />
+<glyph unicode="&#xe61f;" glyph-name="alpha" d="M771.413 179.341c-19.533-5.781-37.026-8.674-52.48-8.674-51.106 0-85.572 37.734-103.394 113.207h-2.133c-41.911-81.54-100.646-122.308-176.213-122.308-55.847 0-100.576 21.12-134.188 63.36s-50.418 95.595-50.418 160.068c0 73.579 19.058 133.619 57.173 180.126s89.695 69.76 154.739 69.76c35.174 0 66.513-9.719 94.007-29.156s48.354-46.791 62.579-82.062h1.707l30.293 102.115h109.227l-91.166-226.703c10.052-53.188 20.693-89.387 31.927-108.587 11.238-19.2 25.86-28.8 43.878-28.8 9.766 0 18.202 1.519 25.314 4.553l-0.853-86.899zM589.794 402.633c-9.289 48.542-23.654 85.734-43.093 111.572-19.435 25.837-42.714 38.756-69.828 38.756-34.987 0-62.911-15.692-83.77-47.074-20.859-31.386-31.289-70.071-31.289-116.053 0-41.532 9.055-76.305 27.165-104.32 18.109-28.019 42.335-42.027 72.675-42.027 25.6 0 48.973 12.041 70.114 36.122 21.146 24.085 38.733 59.452 52.766 106.099l5.261 16.926z" />
+<glyph unicode="&#xe620;" glyph-name="alphabetical" d="M256 469.334c47.128 0 85.333-38.204 85.333-85.333v-170.667h-170.667c-47.128 0-85.333 38.204-85.333 85.333v85.333c0 47.13 38.205 85.333 85.333 85.333h85.333zM170.667 384v-85.333h85.333v85.333h-85.333zM853.333 384v-85.333h85.333v-85.333h-85.333c-47.13 0-85.333 38.204-85.333 85.333v85.333c0 47.13 38.204 85.333 85.333 85.333h85.333v-85.333h-85.333zM512 640v-170.667h85.333c47.13 0 85.333-38.204 85.333-85.333v-85.333c0-47.13-38.204-85.333-85.333-85.333h-85.333c-47.13 0-85.333 38.204-85.333 85.333v341.333h85.333zM512 298.667h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe621;" glyph-name="amazon-clouddrive" d="M210.824 464.316c12.197 0 23.988-1.741 35.137-4.988 0.018 91.468 74.174 165.613 165.647 165.613 69.403 0 128.834-42.682 153.482-103.227 24.777 32.246 63.731 53.031 107.537 53.031 74.85 0 135.531-60.679 135.531-135.53 0-10.62-1.225-20.958-3.533-30.878 10.517 3.742 21.845 5.781 33.651 5.781 55.445 0 100.39-44.949 100.39-100.395 0-55.441-44.945-100.39-100.39-100.39s-566.967 0-627.453 0c-69.306 0-125.49 56.183-125.49 125.491 0 69.303 56.184 125.491 125.49 125.491z" />
+<glyph unicode="&#xe622;" glyph-name="amazon" d="M679.701 209.605c-7.573-6.788-18.487-7.245-27.008-2.662-37.978 31.556-44.779 46.144-65.532 76.181-62.746-63.923-107.191-83.093-188.463-83.093-96.25 0-171.101 59.388-171.101 178.167 0 92.8 50.259 155.898 121.906 186.833 62.023 27.225 148.651 32.171 214.938 39.597v14.847c0 27.22 2.142 59.396-13.888 82.898-13.905 21.040-40.649 29.701-64.162 29.701-43.601 0-82.374-22.343-91.883-68.645-1.988-10.301-9.498-20.489-19.869-21.014l-110.787 11.992c-9.358 2.108-19.767 9.611-17.057 23.895 25.452 134.422 146.839 175.032 255.626 175.032 55.616 0 128.324-14.847 172.177-56.919 55.603-51.969 50.257-121.26 50.257-196.737v-178.096c0-53.572 22.251-77.073 43.145-105.946 7.292-10.394 8.939-22.767-0.367-30.357l-87.667-75.93-0.265 0.256zM564.442 488.32v24.742c-82.688 0-170.023-17.707-170.023-115.068 0-49.485 25.668-82.906 69.509-82.906 32.085 0 60.958 19.793 79.13 51.968 22.464 39.599 21.385 76.715 21.385 121.263zM860.139 105.114c-92.979-68.617-227.789-105.114-343.868-105.114-162.693 0-309.189 60.134-420.059 160.247-8.702 7.855-0.938 18.598 9.525 12.51 119.611-69.606 267.523-111.526 420.301-111.526 103.057 0 216.35 21.389 320.589 65.6 15.718 6.673 28.898-10.359 13.513-21.717zM898.837 149.282c-11.9 15.232-78.626 7.223-108.595 3.635-9.079-1.088-10.487 6.835-2.3 12.587 53.222 37.385 140.429 26.586 150.566 14.076 10.219-12.629-2.671-100.066-52.557-141.798-7.671-6.421-14.967-2.995-11.567 5.487 11.221 28.028 36.352 90.786 24.452 106.014z" />
+<glyph unicode="&#xe623;" glyph-name="ambulance" d="M767.974 149.415c35.328 0 64 28.672 64 64s-28.672 64-64 64c-35.328 0-64-28.672-64-64s28.672-64 64-64zM831.974 533.416h-106.667v-106.668h190.464l-83.797 106.668zM255.975 149.415c35.328 0 64 28.672 64 64s-28.672 64-64 64c-35.328 0-64-28.672-64-64s28.672-64 64-64zM853.308 597.416l128-170.668v-213.333h-85.333c0-70.699-57.301-128-128-128s-128 57.301-128 128h-256c0-70.699-57.301-128-128-128s-128 57.301-128 128h-85.333v469.335c0 47.147 38.187 85.333 85.333 85.333h597.333v-170.667h128zM341.333 682.667v-128h-128v-85.333h128v-128h85.333v128h128v85.333h-128v128h-85.333z" />
+<glyph unicode="&#xe624;" glyph-name="android-debug-bridge" d="M639.974 554.749c-23.595 0-42.667 19.115-42.667 42.667s19.072 42.667 42.667 42.667c23.595 0 42.667-19.115 42.667-42.667s-19.072-42.667-42.667-42.667zM383.974 554.749c-23.595 0-42.667 19.115-42.667 42.667s19.072 42.667 42.667 42.667c23.595 0 42.667-19.115 42.667-42.667s-19.072-42.667-42.667-42.667zM687.889 752.339l89.545 89.558-35.187 35.242-98.304-98.347c-39.979 19.797-84.395 31.957-131.968 31.957s-91.99-12.16-131.969-31.957l-98.347 98.347-35.157-35.242 89.557-89.558c-74.069-54.315-122.752-141.312-122.752-240.256v-42.668h597.334v42.668c0 98.944-48.683 185.941-122.752 240.256zM213.307 256.081c0-164.949 133.717-298.667 298.668-298.667s298.667 133.717 298.667 298.667v170.667h-597.334v-170.667z" />
+<glyph unicode="&#xe625;" glyph-name="android-studio" d="M469.333 853.334h85.333v-85.333h21.333c35.345 0 64-28.654 64-64v-149.333l-18.679-18.681 70.042-121.317c47.3 46.451 76.638 111.132 76.638 182.665h85.333c0-103.24-45.837-195.776-118.263-258.363l133.879-231.893 5.717-95.232-79.616 52.565-131.157 227.166c-45.743-22.771-97.323-35.575-151.893-35.575s-106.149 12.804-151.895 35.575l-131.154-227.166-79.617-52.565 5.716 95.232 247.631 428.91-18.68 18.68v149.333c0 35.346 28.654 64 64 64h21.333v85.333zM402.89 365.684c33.1-15.616 70.083-24.35 109.11-24.35 39.023 0 76.011 8.734 109.107 24.35l-62.255 107.836h-0.316c-26.274-26.278-66.799-26.278-93.073 0h-0.316l-62.258-107.836zM512 682.667c-23.565 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xe626;" glyph-name="android" d="M639.974 725.417h-42.667v42.667h42.667zM426.641 725.417h-42.667v42.667h42.667zM662.673 846.675l55.637 55.638c8.32 8.362 8.32 21.846 0 30.208-8.32 8.32-21.845 8.32-30.165 0l-63.019-63.062c-34.176 16.896-72.491 26.625-113.152 26.625-40.875 0-79.36-9.857-113.623-26.839l-63.273 63.276c-8.362 8.32-21.846 8.32-30.208 0-8.32-8.362-8.32-21.846 0-30.208l55.979-55.935c-63.49-46.594-104.875-121.516-104.875-206.295h512c0 84.951-41.557 160.042-105.301 206.591zM874.641 597.417c-35.328 0-64-28.63-64-64v-298.665c0-35.371 28.672-64 64-64s64 28.629 64 64v298.665c0 35.37-28.672 64-64 64zM149.307 597.417c-35.328 0-64-28.63-64-64v-298.665c0-35.371 28.672-64 64-64s64 28.629 64 64v298.665c0 35.37-28.672 64-64 64zM255.974 170.752c0-23.514 19.156-42.667 42.667-42.667h42.667v-149.333c0-35.371 28.672-64 64-64s64 28.629 64 64v149.333h85.333v-149.333c0-35.371 28.672-64 64-64s64 28.629 64 64v149.333h42.667c23.509 0 42.667 19.153 42.667 42.667v426.665h-512v-426.665z" />
+<glyph unicode="&#xe627;" glyph-name="apple-finder" d="M170.667 768h336.525c24.307 46.618 53.146 90.586 87.27 127.838l47.206-47.203c-18.146-25.317-34.466-52.493-49.143-80.635h260.809c47.13 0 85.333-38.205 85.333-85.333v-554.667c0-47.13-38.204-85.333-85.333-85.333h-216.512l14.315-52.45-78.242-30.942-21.346 83.392h-380.881c-47.128 0-85.333 38.204-85.333 85.333v554.667c0 47.128 38.205 85.333 85.333 85.333zM170.667 682.667v-554.666h364.386c-2.236 14.042-4.271 28.335-6.037 42.812-5.641-0.098-11.315-0.145-17.015-0.145-117.453 0-222.59 20.506-293.028 52.817l38.843 69.918c40.992-22.071 133.525-37.402 254.185-37.402 3.401 0 6.775 0.013 10.133 0.034-1.033 28.476-0.691 57.079 1.421 85.299h-139.555c0 0 17.204 172.043 84.387 341.333h-297.719zM853.333 128v554.666h-299.614c-37.564-94.658-59.503-190.178-71.548-256h122.509c-8.294-54.601-8.794-111.842-4.612-167.706 77.261 5.474 135.791 18.112 166.118 34.441l38.839-69.918c-50.202-23.027-118.033-40.060-195.388-47.949 2.466-16.196 5.218-32.077 8.162-47.535h235.533zM256 597.334h85.333v-128h-85.333v128zM682.667 597.334h85.333v-128h-85.333v128z" />
+<glyph unicode="&#xe628;" glyph-name="apple-ios" d="M853.333 554.667v85.333h-170.667c-46.933 0-85.333-38.4-85.333-85.333v-85.333c0-46.933 38.4-85.333 85.333-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 38.4 85.333 85.333v85.333c0 46.933-38.4 85.333-85.333 85.333h-85.333v85.333zM469.333 298.667h-85.333v256h85.333zM469.333 640h-85.333c-46.933 0-85.333-38.4-85.333-85.333v-256c0-46.933 38.4-85.333 85.333-85.333h85.333c46.933 0 85.333 38.4 85.333 85.333v256c0 46.933-38.4 85.333-85.333 85.333zM170.667 213.334h85.333v256h-85.333zM170.667 554.667h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe629;" glyph-name="apple-mobileme" d="M938.667 296.768c0-93.21-74.999-168.768-167.539-168.768h-518.256c-92.539 0-167.538 75.558-167.538 168.768 0 84.19 61.155 153.933 141.179 166.686-1.043 5.918-1.612 11.985-1.612 18.244 0 59.059 47.503 106.941 106.193 106.941 26.169 0 50.156-9.529 68.551-25.382 32.995 74.818 75.282 143.113 193.801 143.113 143.74 0 211.819-111.711 211.819-229.574 0-4.932-0.192-9.813-0.478-14.647 76.42-15.684 133.879-83.763 133.879-165.38z" />
+<glyph unicode="&#xe62a;" glyph-name="apple-safari" d="M512 853.334c235.639 0 426.667-191.025 426.667-426.667 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667 0 235.642 191.025 426.667 426.667 426.667zM512 768c-188.513 0-341.333-152.82-341.333-341.333 0-89.105 34.144-170.236 90.061-231.023l160.765 321.529 321.53 160.765c-60.787 55.918-141.918 90.061-231.023 90.061zM512 85.334c188.514 0 341.333 152.819 341.333 341.333 0 89.103-34.142 170.231-90.057 231.017l-160.764-321.53-321.532-160.764c60.786-55.915 141.915-90.057 231.019-90.057zM512 426.663l-32.683 32.687-65.367-130.735 130.736 65.365-32.687 32.683zM512 192h42.667v-64h-42.667v64zM677.555 260.758l30.17 30.17 45.257-45.252-30.174-30.17-45.252 45.252zM746.001 426.445v42.667h64v-42.667h-64zM512 661.334h-42.667v64h42.667v-64zM346.445 592.574l-30.17-30.17-45.255 45.255 30.17 30.17 45.255-45.255zM278 426.889v-42.667h-64v42.667h64z" />
+<glyph unicode="&#xe62b;" glyph-name="apple" d="M798.165 105.895c-35.465-52.023-72.149-103.727-130.069-104.811-57.003-1.084-75.277 33.869-140.322 33.869-65.114 0-85.483-32.785-139.303-34.953-55.916-2.099-98.434 56.188-134.191 107.977-73.050 105.89-128.805 299.405-53.821 430 37.132 64.856 103.668 105.891 175.77 106.975 54.912 1.014 106.787-37.137 140.327-37.137 33.591 0 96.555 45.804 162.748 39.086 27.708-1.148 105.472-11.2 155.413-84.505-3.947-2.602-92.821-54.47-91.738-162.527 1.088-129.079 112.759-171.985 114.057-172.57-1.011-3.034-17.852-61.252-58.871-121.404zM554.978 788.697c30.656 36.035 82.453 62.838 125.201 64.639 5.461-50.054-14.613-100.178-44.262-136.296-29.709-36.053-78.34-64.138-126.067-60.388-6.485 48.971 17.57 100.044 45.129 132.046z" />
+<glyph unicode="&#xe62c;" glyph-name="appnet" d="M617.553 548.601c25.481 61.877 72.798 207.469 80.077 232.948s25.481 29.118 36.399 29.118h87.356c14.558 0 22.75-10.92 19.11-29.119-91.908-323.944-153.783-418.578-153.783-440.415 0-54.601 58.236-156.514 112.832-156.514 32.759 0 25.481 47.317 61.879 47.317h69.154c10.923 0 21.841-10.918 21.841-29.116 0-18.202-20.245-160.154-158.562-160.154-138.313 0-189.952 167.202-189.952 167.202-18.197-36.399-124.663-167.202-255.695-167.202-232.948 0-276.625 247.505-276.625 393.101 0 145.591 69.156 374.899 265.706 374.899 196.552 0 280.264-262.066 280.264-262.066zM191.697 446.686c0-83.716-3.64-258.428 149.686-262.067 86.901-3.639 166.978 105.553 204.968 192.909-52.548 181.992-88.947 291.187-205.422 291.187-156.512-3.64-149.232-222.028-149.232-222.028z" />
+<glyph unicode="&#xe62d;" glyph-name="apps" d="M682.641 85.415h170.667v170.667h-170.667zM682.641 341.415h170.667v170.668h-170.667zM426.64 597.416h170.668v170.667h-170.668zM682.641 597.416h170.667v170.667h-170.667zM426.64 341.415h170.668v170.668h-170.668zM170.64 341.415h170.667v170.668h-170.667zM170.64 85.415h170.667v170.667h-170.667zM426.64 85.415h170.668v170.667h-170.668zM170.64 597.416h170.667v170.667h-170.667v-170.667z" />
+<glyph unicode="&#xe62e;" glyph-name="archive" d="M128 810.667h768v-170.667h-768v170.667zM170.667 597.333h682.667v-554.666h-682.667v554.666zM405.333 469.334c-11.782 0-21.333-9.553-21.333-21.333v-64h256v64c0 11.78-9.553 21.333-21.333 21.333h-213.333z" />
+<glyph unicode="&#xe62f;" glyph-name="arrange-bring-forward" d="M85.333 853.334h597.333v-597.333h-597.333v597.333zM938.667 597.334v-597.333h-597.333v170.667h85.333v-85.333h426.667v426.667h-85.333v85.333h170.667z" />
+<glyph unicode="&#xe630;" glyph-name="arrange-bring-to-front" d="M85.333 853.334h384v-170.666h-85.333v85.333h-213.333v-213.333h85.333v-85.333h-170.667v384zM938.667 384v-384h-384v170.667h85.333v-85.333h213.333v213.333h-85.333v85.333h170.667zM341.333 597.334h341.333v-341.333h-341.333v341.333z" />
+<glyph unicode="&#xe631;" glyph-name="arrange-send-backward" d="M85.333 853.334h597.333v-597.333h-597.333v597.333zM938.667 597.334v-597.333h-597.333v170.667h426.667v426.667h170.667zM170.667 768v-426.667h426.667v426.667h-426.667z" />
+<glyph unicode="&#xe632;" glyph-name="arrange-send-to-back" d="M85.333 853.334h384v-384h-384v384zM384 768h-213.333v-213.333h213.333v213.333zM938.667 384v-384h-384v384h384zM640 85.334h213.333v213.333h-213.333v-213.333zM682.667 597.334v-128h-128v128h128zM469.333 256h-128v128h128v-128z" />
+<glyph unicode="&#xe633;" glyph-name="arrow-all" d="M554.667 469.334h213.333l-64 64 60.561 60.563 167.228-167.229-167.228-167.228-60.561 60.561 64.444 64h-213.777v-213.333l64 64 60.561-60.565-167.228-167.223-167.227 167.228 60.56 60.561 64-64v213.333h-213.333l64-64-60.563-60.561-167.227 167.228 167.228 167.227 60.563-60.561-64-64h213.333v213.333l-64-64-60.563 60.564 167.229 167.227 167.228-167.227-60.561-60.564-64 64v-213.333z" />
+<glyph unicode="&#xe634;" glyph-name="arrow-bottom-left" d="M810.667 665.173l-60.16 60.16-451.84-451.839v281.173h-85.333v-426.667h426.667v85.333h-281.173l451.84 451.839z" />
+<glyph unicode="&#xe635;" glyph-name="arrow-bottom-right" d="M213.334 665.173l60.16 60.16 451.84-451.839v281.173h85.333v-426.667h-426.667v85.333h281.173l-451.84 451.839z" />
+<glyph unicode="&#xe636;" glyph-name="arrow-collapse" d="M831.684 806.693l60.339-60.34-191.684-191.686h152.994v-85.333h-298.667v298.667h85.333v-152.994l191.684 191.686zM892.028 106.978l-60.343-60.339-191.684 191.689v-152.994h-85.333v298.667h298.667v-85.333h-152.994l191.689-191.689zM192.314 806.693l191.686-191.686v152.993h85.333v-298.666h-298.667v85.333h152.994l-191.686 191.686 60.34 60.34zM131.974 106.978l191.686 191.689h-152.994v85.333h298.667v-298.667h-85.333v152.994l-191.686-191.689-60.34 60.339z" />
+<glyph unicode="&#xe637;" glyph-name="arrow-down-bold-circle-outline" d="M512 213.334l-213.332 213.333h127.998v170.667h170.667v-170.667h128l-213.333-213.333zM512 853.334c235.639 0 426.667-191.025 426.667-426.667 0-235.644-191.027-426.667-426.667-426.667-235.642 0-426.667 191.023-426.667 426.667 0 235.641 191.025 426.667 426.667 426.667zM512 768c-188.513 0-341.333-152.82-341.333-341.333s152.82-341.333 341.333-341.333 341.333 152.819 341.333 341.333c0 188.513-152.819 341.333-341.333 341.333z" />
+<glyph unicode="&#xe638;" glyph-name="arrow-down-bold-circle" d="M512 853.334c235.639 0 426.667-191.025 426.667-426.667 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667 0 235.641 191.025 426.667 426.667 426.667zM512 213.334l213.333 213.333h-128v170.667h-170.667v-170.667h-127.998l213.332-213.333z" />
+<glyph unicode="&#xe639;" glyph-name="arrow-down-bold-hexagon-outline" d="M512 213.334l-213.333 213.333h128v170.667h170.667v-170.667h128l-213.333-213.333zM896 234.667c0-16.265-9.101-30.4-22.485-37.602l-337.348-189.568c-6.869-4.727-15.194-7.497-24.166-7.497s-17.297 2.769-24.166 7.497l-337.341 189.564c-13.389 7.198-22.492 21.342-22.492 37.606v384c0 16.266 9.103 30.406 22.492 37.605l337.341 189.563c6.869 4.73 15.194 7.499 24.166 7.499 8.969 0 17.293-2.769 24.166-7.498l337.348-189.567c13.385-7.2 22.485-21.338 22.485-37.601v-384zM512.038 761.561l-298.705-167.86v-334.070l298.705-167.859 298.628 167.859v334.073l-298.628 167.856z" />
+<glyph unicode="&#xe63a;" glyph-name="arrow-down-bold" d="M426.667 768h170.667v-384.444l149.555 149.554 103.006-103.005-337.894-337.894-337.895 337.894 103.007 103.005 149.555-149.554v384.444z" />
+<glyph unicode="&#xe63b;" glyph-name="arrow-down" d="M469.333 768h85.333v-512.444l234.889 234.889 60.339-60.339-337.894-337.894-337.895 337.894 60.34 60.339 234.889-234.889v512.444z" />
+<glyph unicode="&#xe63c;" glyph-name="arrow-expand" d="M405.019 380.028l60.338-60.339-191.684-191.689h152.994v-85.333h-298.667v298.667h85.333v-152.994l191.686 191.689zM465.361 533.647l-60.341-60.341-191.686 191.688v-152.993h-85.333v298.666h298.667v-85.333h-152.994l191.688-191.687zM618.982 380.028l191.684-191.689v152.994h85.333v-298.667h-298.667v85.333h152.994l-191.684 191.689 60.339 60.339zM558.639 533.647l191.689 191.686h-152.994v85.333h298.667v-298.667h-85.333v152.994l-191.689-191.688-60.339 60.341z" />
+<glyph unicode="&#xe63d;" glyph-name="arrow-left-bold-circle-outline" d="M298.667 426.667l213.333 213.331v-127.998h170.667v-170.667h-170.667v-128l-213.333 213.333zM938.667 426.667c0-235.644-191.027-426.667-426.667-426.667-235.642 0-426.667 191.023-426.667 426.667 0 235.641 191.025 426.666 426.667 426.666 235.639 0 426.667-191.025 426.667-426.666zM853.333 426.667c0 188.513-152.819 341.333-341.333 341.333s-341.333-152.82-341.333-341.333c0-188.514 152.82-341.333 341.333-341.333s341.333 152.819 341.333 341.333z" />
+<glyph unicode="&#xe63e;" glyph-name="arrow-left-bold-circle" d="M938.667 426.667c0-235.644-191.027-426.667-426.667-426.667-235.642 0-426.667 191.023-426.667 426.667 0 235.641 191.025 426.666 426.667 426.666 235.639 0 426.667-191.025 426.667-426.666zM298.667 426.667l213.333-213.333v128h170.667v170.667h-170.667v127.998l-213.333-213.331z" />
+<glyph unicode="&#xe63f;" glyph-name="arrow-left-bold-hexagon-outline" d="M298.667 426.667l213.333 213.332v-127.998h170.667v-170.667h-170.667v-128l-213.333 213.333zM896 234.667c0-16.265-9.101-30.4-22.485-37.602l-337.348-189.568c-6.869-4.727-15.194-7.497-24.166-7.497s-17.297 2.769-24.166 7.497l-337.341 189.564c-13.389 7.198-22.492 21.342-22.492 37.606v384c0 16.266 9.103 30.406 22.492 37.605l337.341 189.563c6.869 4.73 15.194 7.499 24.166 7.499 8.969 0 17.293-2.769 24.166-7.498l337.348-189.567c13.385-7.2 22.485-21.338 22.485-37.601v-384zM512.038 761.561l-298.705-167.86v-334.070l298.705-167.859 298.628 167.859v334.073l-298.628 167.856z" />
+<glyph unicode="&#xe640;" glyph-name="arrow-left-bold" d="M853.333 512v-170.667h-384.444l149.555-149.555-103.006-103.006-337.896 337.894 337.896 337.895 103.006-103.007-149.555-149.555h384.444z" />
+<glyph unicode="&#xe641;" glyph-name="arrow-left" d="M853.333 469.334v-85.333h-512.445l234.889-234.889-60.339-60.339-337.896 337.894 337.896 337.895 60.339-60.34-234.889-234.889h512.445z" />
+<glyph unicode="&#xe642;" glyph-name="arrow-right-bold-circle-outline" d="M725.333 426.667l-213.333-213.333v128h-170.668v170.668h170.668v128l213.333-213.335zM85.333 426.667c0 235.641 191.025 426.666 426.667 426.666 235.639 0 426.667-191.025 426.667-426.666 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667zM170.667 426.667c0-188.514 152.82-341.333 341.333-341.333s341.333 152.819 341.333 341.333c0 188.513-152.819 341.333-341.333 341.333s-341.333-152.82-341.333-341.333z" />
+<glyph unicode="&#xe643;" glyph-name="arrow-right-bold-circle" d="M85.333 426.667c0 235.641 191.025 426.667 426.667 426.667 235.639 0 426.667-191.025 426.667-426.667 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667zM725.333 426.667l-213.333 213.335v-128h-170.667v-170.668h170.667v-128l213.333 213.333z" />
+<glyph unicode="&#xe644;" glyph-name="arrow-right-bold-hexagon-outline" d="M725.333 426.667l-213.333-213.333v128h-170.667v170.667h170.667v128l213.333-213.333zM896 234.667c0-16.265-9.101-30.4-22.485-37.602l-337.348-189.568c-6.869-4.727-15.194-7.497-24.166-7.497s-17.297 2.769-24.166 7.497l-337.341 189.564c-13.389 7.198-22.492 21.342-22.492 37.606v384c0 16.266 9.103 30.406 22.492 37.605l337.341 189.563c6.869 4.73 15.194 7.499 24.166 7.499 8.969 0 17.293-2.769 24.166-7.498l337.348-189.567c13.385-7.2 22.485-21.338 22.485-37.601v-384zM512.038 761.561l-298.705-167.86v-334.070l298.705-167.859 298.628 167.859v334.073l-298.628 167.856z" />
+<glyph unicode="&#xe645;" glyph-name="arrow-right-bold" d="M170.667 512v-170.667h384.444l-149.554-149.555 103.005-103.006 337.894 337.894-337.894 337.895-103.005-103.007 149.554-149.555h-384.444z" />
+<glyph unicode="&#xe646;" glyph-name="arrow-right" d="M170.667 469.334v-85.333h512.444l-234.889-234.889 60.339-60.339 337.894 337.894-337.894 337.895-60.339-60.34 234.889-234.889h-512.444z" />
+<glyph unicode="&#xe647;" glyph-name="arrow-top-left" d="M810.667 188.16l-60.16-60.16-451.84 451.84v-281.173h-85.333v426.667h426.666v-85.333h-281.173l451.84-451.84z" />
+<glyph unicode="&#xe648;" glyph-name="arrow-top-right" d="M213.334 188.16l451.84 451.84h-281.173v85.333h426.667v-426.667h-85.333v281.173l-451.84-451.84-60.16 60.16z" />
+<glyph unicode="&#xe649;" glyph-name="arrow-up-bold-circle-outline" d="M512 639.999l213.333-213.332h-128v-170.667h-170.667v170.667h-127.998l213.332 213.332zM512-0c-235.642 0-426.667 191.023-426.667 426.667 0 235.641 191.025 426.666 426.667 426.666 235.639 0 426.667-191.025 426.667-426.666 0-235.644-191.027-426.667-426.667-426.667zM512 85.334c188.514 0 341.333 152.819 341.333 341.333s-152.819 341.333-341.333 341.333c-188.514 0-341.333-152.82-341.333-341.333s152.82-341.333 341.333-341.333z" />
+<glyph unicode="&#xe64a;" glyph-name="arrow-up-bold-circle" d="M512-0c-235.642 0-426.667 191.027-426.667 426.667 0 235.642 191.025 426.667 426.667 426.667 235.639 0 426.667-191.025 426.667-426.667 0-235.639-191.027-426.667-426.667-426.667zM512 640l-213.332-213.333h127.998v-170.667h170.667v170.667h128l-213.333 213.333z" />
+<glyph unicode="&#xe64b;" glyph-name="arrow-up-bold-hexagon-outline" d="M512 640l213.333-213.333h-128v-170.667h-170.667v170.667h-128l213.333 213.333zM896 234.667c0-16.265-9.101-30.4-22.485-37.602l-337.348-189.568c-6.869-4.727-15.194-7.497-24.166-7.497s-17.297 2.769-24.166 7.497l-337.341 189.564c-13.389 7.198-22.492 21.342-22.492 37.606v384c0 16.266 9.103 30.406 22.492 37.605l337.341 189.563c6.869 4.73 15.194 7.499 24.166 7.499 8.969 0 17.293-2.769 24.166-7.498l337.348-189.567c13.385-7.2 22.485-21.338 22.485-37.601v-384zM512.038 761.561l-298.705-167.86v-334.070l298.705-167.859 298.628 167.859v334.073l-298.628 167.856z" />
+<glyph unicode="&#xe64c;" glyph-name="arrow-up-bold" d="M597.333 85.334h-170.667l-0.001 384.444-149.555-149.555-103.006 103.006 337.895 337.896 337.894-337.896-103.006-103.006-149.555 149.111v-384z" />
+<glyph unicode="&#xe64d;" glyph-name="arrow-up" d="M554.667 85.334h-85.333v512.445l-234.889-234.889-60.34 60.339 337.895 337.896 337.894-337.896-60.339-60.339-234.889 234.889v-512.445z" />
+<glyph unicode="&#xe64e;" glyph-name="at" d="M743.364 298.667c15.795 38.797 24.636 82.193 24.636 128 0 164.949-114.615 298.666-256 298.666s-256-133.717-256-298.666c0-164.949 114.615-298.667 256-298.667 65.566 0 128 0 170.667 33.382v-99.345c-42.667-19.371-108.497-19.371-170.667-19.371-188.513 0-341.333 171.921-341.333 384 0 212.077 152.82 384 341.333 384s341.333-171.923 341.333-384c0-78.938-21.171-152.316-57.481-213.333h-198.519v64.030c-27.106-39.514-64.883-64.030-106.667-64.030-82.475 0-149.333 95.514-149.333 213.333s66.859 213.333 149.333 213.333c41.783 0 79.561-24.517 106.667-64.031v21.364h85.333v-298.667h60.698zM512 554.667c-47.13 0-85.333-57.306-85.333-128s38.204-128 85.333-128c47.13 0 85.333 57.306 85.333 128s-38.204 128-85.333 128z" />
+<glyph unicode="&#xe64f;" glyph-name="attachment" d="M320 170.667c-129.707 0-234.667 104.96-234.667 234.667s104.96 234.667 234.667 234.667h448c94.293 0 170.667-76.373 170.667-170.667s-76.373-170.667-170.667-170.667h-362.667c-58.88 0-106.667 47.787-106.667 106.667s47.787 106.667 106.667 106.667h320v-64h-320c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667h362.667c58.88 0 106.667 47.787 106.667 106.667s-47.787 106.667-106.667 106.667h-448c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667h405.333v-64h-405.333z" />
+<glyph unicode="&#xe650;" glyph-name="audiobook" d="M767.974 0.086h-512.001c-47.084 0-85.333 38.225-85.333 85.333v682.665c0 47.104 38.25 85.333 85.333 85.333h42.667v-298.667l106.667 64 106.668-64v298.667h256c47.147 0 85.333-38.229 85.333-85.333v-682.665c0-47.108-38.187-85.333-85.333-85.333zM554.667 298.667c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333v213.333h128v85.333h-170.667v-224.751c-12.553 7.262-27.123 11.418-42.667 11.418z" />
+<glyph unicode="&#xe651;" glyph-name="auto-fix" d="M319.973 699.812l-106.667-59.732 59.733 106.667-59.733 106.667 106.667-59.733 106.667 59.733-59.733-106.667 59.733-106.667-106.667 59.732zM831.974 281.686l106.667 59.733-59.733-106.667 59.733-106.667-106.667 59.733-106.667-59.733 59.733 106.667-59.733 106.667 106.667-59.733zM938.641 853.416l-59.733-106.667 59.733-106.667-106.667 59.732-106.667-59.732 59.733 106.667-59.733 106.667 106.667-59.732 106.667 59.732zM569.276 393.541l103.893 103.893-90.496 90.54-103.893-103.938 90.496-90.496zM613.137 627.569l99.669-99.67c16.683-16.641 16.683-43.649 0-60.332l-497.666-497.664c-16.683-16.64-43.691-16.64-60.331 0l-99.669 99.669c-16.683 16.683-16.683 43.691 0 60.331l497.666 497.666c16.683 16.682 43.691 16.682 60.331 0z" />
+<glyph unicode="&#xe652;" glyph-name="auto-upload" d="M228.241 399.019l49.066 155.735 49.066-155.735zM234.641 640.087l-136.534-384.002h81.068l29.866 85.333h136.534l29.866-85.333h81.068l-136.534 384.002zM469.308 85.419h469.333v85.333h-469.333zM597.308 256.086h213.333v213.333h128l-234.667 234.668-234.667-234.668h128v-213.333z" />
+<glyph unicode="&#xe653;" glyph-name="baby" d="M789.333 768c58.91 0 106.667-47.756 106.667-106.667s-47.757-106.667-106.667-106.667c-58.91 0-106.667 47.756-106.667 106.667s47.757 106.667 106.667 106.667zM192 85.334c-35.346 0-64 28.655-64 64s28.654 64 64 64h298.667c35.345 0 64-28.655 64-64s-28.655-64-64-64h-298.667zM686.519 128.137l-59.87 170.53h-157.316l-181.333 181.333c0 0 96 106.667 245.333 106.666 128 0 142.869-42.733 152.060-68.913l121.899-347.215c11.712-33.348-5.833-69.879-39.185-81.587-33.348-11.708-69.879 5.837-81.587 39.185z" />
+<glyph unicode="&#xe654;" glyph-name="backburger" d="M213.718 384l170.888-170.889-60.34-60.339-273.895 273.894 273.895 273.894 60.34-60.34-170.888-170.888h682.282v-85.333h-682.282zM896 682.667v-85.333h-426.667v85.333h426.667zM896 256v-85.333h-426.667v85.333h426.667z" />
+<glyph unicode="&#xe655;" glyph-name="backup-restore" d="M512 810.667c-212.053 0-384-171.947-384-384h-128l170.667-170.667 170.667 170.667h-128c0 165.12 133.547 298.667 298.667 298.667s298.667-133.547 298.667-298.667c0-165.12-133.547-298.667-298.667-298.667-64.427 0-124.16 20.907-173.227 55.467l-60.587-61.44c64.853-49.493 145.92-79.36 233.813-79.36 212.053 0 384 171.947 384 384s-171.947 384-384 384zM597.333 426.667c0 46.933-38.4 85.333-85.333 85.333s-85.333-38.4-85.333-85.333c0-46.933 38.4-85.333 85.333-85.333s85.333 38.4 85.333 85.333z" />
+<glyph unicode="&#xe656;" glyph-name="bank" d="M490.667 896l-405.333-213.333v-85.333h810.667v85.333zM682.667 512v-298.667h128v298.667zM85.333-0h810.667v128h-810.667zM426.667 512v-298.667h128v298.667zM170.667 512v-298.667h128v298.667h-128z" />
+<glyph unicode="&#xe657;" glyph-name="barcode" d="M85.333 682.667h85.333v-512h-85.333v512zM213.333 682.667h42.667v-512h-42.667v512zM298.667 682.667h128v-512h-128v512zM469.333 682.667h42.667v-512h-42.667v512zM597.333 682.667h85.333v-512h-85.333v512zM725.333 682.667h128v-512h-128v512zM896 682.667h42.667v-512h-42.667v512z" />
+<glyph unicode="&#xe658;" glyph-name="barley" d="M312.889 156.446c-35.555 49.775-35.555 106.667-35.555 163.554 71.111-42.667 142.222-85.333 177.779-135.113l14.221-23.876v97.152c-63.667 38.455-124.451 77.491-156.445 122.283-35.555 49.775-35.555 106.667-35.555 163.554 71.111-42.667 142.222-85.333 177.779-135.113l14.221-23.876v97.152c-63.667 38.456-124.451 77.489-156.445 122.281-35.555 49.777-35.555 106.667-35.555 163.555 71.111-42.667 142.222-85.333 177.779-135.111 4.484-6.282 8.405-12.678 11.831-19.173-7.518 25.347-12.301 50.823-12.544 76.517-0.61 64.711 27.58 130.795 55.765 196.879 29.414-63.338 58.825-126.676 59.435-191.387 0.252-26.8-4.433-53.835-12.015-81.009 3.298 6.151 7.049 12.213 11.302 18.173 35.558 49.778 106.667 92.445 177.779 135.111 0-56.889 0-113.778-35.554-163.555-31.996-44.792-92.779-83.825-156.446-122.281v-97.152l14.221 23.876c35.558 49.779 106.667 92.446 177.779 135.113 0-56.887 0-113.779-35.554-163.554-31.996-44.791-92.779-83.827-156.446-122.283v-97.152l14.221 23.876c35.558 49.779 106.667 92.446 177.779 135.113 0-56.887 0-113.779-35.554-163.554-31.996-44.791-92.779-83.827-156.446-122.283v-76.83h-85.333v76.83c-63.667 38.455-124.451 77.491-156.445 122.283z" />
+<glyph unicode="&#xe659;" glyph-name="barrel" d="M768 128h42.667v-85.333h-597.333v85.333h42.667v256h-42.667v85.333h42.667v256h-42.667v85.333h597.333v-85.333h-42.667v-256h42.667v-85.333h-42.667v-256zM384 384c0-70.694 57.306-128 128-128s128 57.306 128 128c0 85.333-128 229.333-128 229.333s-128-144-128-229.333z" />
+<glyph unicode="&#xe65a;" glyph-name="basecamp" d="M144.547 271.369c0.721 4.019 1.565 8.013 2.494 11.985 1.765 7.458 3.908 14.831 6.403 22.101 9.551 27.955 24.005 53.879 39.503 78.916 7.702 12.412 15.584 24.713 23.427 37.030 8.005 12.587 16.172 25.097 25.362 36.851 14.92 19.081 33.253 39.65 57.031 47.334 33.415 10.786 58.407-23.996 77.736-45.47 11.002-12.186 22.848-25.015 37.996-31.974 6.98-3.204 14.587-4.855 22.271-4.378 11.191 0.713 21.12 8.405 29.466 15.313 22.861 18.927 41.451 42.854 59.187 66.423 19.443 25.797 38.221 52.135 60.51 75.642 9.105 9.629 18.876 22.401 31.966 26.662 5.879 1.94 12.425 1.343 18.112-1.274 3.132-1.436 5.978-3.45 8.444-5.844 2.752-2.709 6.071-4.849 9.199-7.197 23.902-18.071 46.003-38.48 66.867-59.941 18.116-18.668 35.379-38.203 51.883-58.367 16.030-19.695 31.488-39.757 44.86-61.508 16.124-26.487 29.786-54.349 44.864-81.459 13.751-24.742 27.695-53.342 13.943-81.242-0.759-1.472-1.519-2.944-2.372-4.352-24.375-41.207-68.288-66.876-111.731-83.678-52.258-20.211-108.501-29.841-164.177-33.732-57.57-4.041-115.806-3.853-173.304 1.536-51.938 4.873-104.236 14.127-153.101 32.994-40.832 15.774-80.212 39.087-107.528 74.078-6.374 8.171-12.017 16.896-16.835 26.086-0.57 1.092-1.139 2.21-1.708 3.332-0.786 1.63-1.091 2.295-0.768 4.13zM88.919 233.673c6.004-8.853 12.492-17.378 19.406-25.545 13.819-16.286 29.383-31.049 46.237-44.147 35.852-27.831 77.196-47.812 120.17-61.871 49.7-16.294 101.676-24.981 153.679-29.308 60.305-5.018 121.481-4.954 181.615 1.374 55.77 5.862 111.347 17.451 163.516 38.204 46.281 18.377 88.777 44.629 125.952 77.815 9.583 8.614 18.97 17.801 26.56 28.258 6.541 8.828 11.665 18.59 12.612 29.666 1.045 12.988-1.041 26.197-3.605 38.865-2.842 14.054-6.635 27.883-10.146 41.758-1.327 5.056-2.56 10.112-3.699 15.189-13.658 60.122-34.428 118.673-62.788 173.437-23.902 46.4-53.495 90.206-87.829 129.529-32.055 36.73-69.427 68.861-112.201 92.262-22.763 12.421-46.857 22.336-71.612 29.774-13.372 4.029-27.029 7.34-40.781 10.017-3.511 0.69-7.019 1.579-10.624 1.579-4.553 0-9.105 0-13.658 0-8.725 0-17.455 0-26.18 0-3.981 0-7.966 0.186-11.951-0.296-3.601-0.44-7.3-0.954-10.906-1.551-7.019-1.135-13.884-2.524-20.753-4.168-13.602-3.27-26.983-7.544-40.015-12.666-26.054-10.244-50.743-23.869-73.781-39.759-45.005-31.034-84.091-70.533-116.994-114.131-34.874-46.237-62.75-97.636-84.271-151.375-22.887-57.152-38.697-117.043-48.467-177.822-1.262-7.799-3.073-15.898-3.073-23.795 0-4.254 0-8.495 0-12.719 0-2.035-0.047-3.132 1.071-4.817 0.835-1.259 1.65-2.5 2.513-3.759z" />
+<glyph unicode="&#xe65b;" glyph-name="basket-fill" d="M128 853.334h128v-128h-128v128zM256 640h128v-128h-128v128zM341.333 853.333h128v-128h-128v128zM725.333 469.334l-213.333 213.333h128v170.666h170.667v-170.666h128l-213.333-213.333zM320-0c-33.309 0-62.161 19.085-76.217 46.916l-0.251-0.068-111.215 318.43-4.317 18.722c0 23.565 19.102 42.667 42.667 42.667h682.666c23.561 0 42.667-19.102 42.667-42.667l-1.788-12.262-113.997-324.821c-14.054-27.831-42.906-46.916-76.215-46.916h-384zM324.573 85.334h374.768l93.175 256h-561.12l93.176-256z" />
+<glyph unicode="&#xe65c;" glyph-name="basket-unfill" d="M128 512h128v128h-128v-128zM213.333 725.334h128v128h-128v-128zM341.334 512h128v128h-128v-128zM725.333 896l-213.333-213.333h128v-170.666h170.667v170.666h128l-213.333 213.333zM320-0c-33.309 0-62.161 19.085-76.217 46.916l-0.251-0.068-111.215 318.43-4.317 18.722c0 23.565 19.102 42.667 42.667 42.667h682.666c23.561 0 42.667-19.102 42.667-42.667l-1.788-12.262-113.997-324.821c-14.054-27.831-42.906-46.916-76.215-46.916h-384zM324.573 85.334h374.768l93.175 256h-561.12l93.176-256z" />
+<glyph unicode="&#xe65d;" glyph-name="basket" d="M234.667 42.667c-33.309 0-62.161 19.085-76.217 46.916l-0.251-0.068-111.215 403.763-4.317 18.722c0 23.564 19.102 42.666 42.667 42.666h195.327l196.387 280.473c7.718 11.001 20.493 18.194 34.953 18.194 14.677 0 27.627-7.413 35.302-18.7l196.036-279.967h195.328c23.565 0 42.667-19.102 42.667-42.666l-1.788-12.262-113.997-410.155c-14.054-27.831-42.906-46.916-76.215-46.916h-554.667zM512 736.279l-127.167-181.613h254.335l-127.168 181.613zM512 384c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333z" />
+<glyph unicode="&#xe65e;" glyph-name="battery-10" d="M682.637 170.744l-341.304-0.077-0.025 512.083h341.333zM711.1 768.084h-71.125v85.333h-256v-85.333h-71.126c-31.416 0-56.874-25.471-56.874-56.875v-654.249c0-31.407 25.458-56.875 56.874-56.875h398.251c31.415 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.459 56.875-56.875 56.875z" />
+<glyph unicode="&#xe65f;" glyph-name="battery-20" d="M682.641 213.419h-341.333v469.331h341.333zM711.1 768.084h-71.125v85.333h-256v-85.333h-71.126c-31.416 0-56.874-25.471-56.874-56.875v-654.249c0-31.407 25.458-56.875 56.874-56.875h398.251c31.415 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.459 56.875-56.875 56.875z" />
+<glyph unicode="&#xe660;" glyph-name="battery-30" d="M682.641 298.752h-341.333v383.998h341.333zM711.1 768.084h-71.125v85.333h-256v-85.333h-71.126c-31.416 0-56.874-25.471-56.874-56.875v-654.249c0-31.407 25.458-56.875 56.874-56.875h398.251c31.415 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.459 56.875-56.875 56.875z" />
+<glyph unicode="&#xe661;" glyph-name="battery-40" d="M682.667 341.334h-341.334l-0.025 341.417h341.334zM711.1 768.084h-71.125v85.333h-256v-85.333h-71.126c-31.416 0-56.874-25.471-56.874-56.875v-654.249c0-31.407 25.458-56.875 56.874-56.875h398.252c31.415 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.459 56.875-56.875 56.875z" />
+<glyph unicode="&#xe662;" glyph-name="battery-50" d="M682.667 384h-341.334l-0.025 298.75h341.334zM711.1 768.084h-71.125v85.333h-256v-85.333h-71.126c-31.416 0-56.874-25.471-56.874-56.875v-654.249c0-31.407 25.458-56.875 56.874-56.875h398.252c31.415 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.459 56.875-56.875 56.875z" />
+<glyph unicode="&#xe663;" glyph-name="battery-60" d="M682.637 426.744h-341.331l0.003 256.006h341.333zM711.1 768.084h-71.125v85.333h-256v-85.333h-71.126c-31.416 0-56.874-25.471-56.874-56.875v-654.249c0-31.407 25.458-56.875 56.874-56.875h398.251c31.415 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.459 56.875-56.875 56.875z" />
+<glyph unicode="&#xe664;" glyph-name="battery-70" d="M682.637 512.078h-341.335l0.005 170.672h341.334zM711.1 768.084h-71.125v85.333h-256v-85.333h-71.126c-31.416 0-56.874-25.471-56.874-56.875v-654.249c0-31.407 25.458-56.875 56.874-56.875h398.252c31.403 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.472 56.875-56.875 56.875z" />
+<glyph unicode="&#xe665;" glyph-name="battery-80" d="M682.641 554.75h-341.334v128h341.334zM711.1 768.084h-71.125v85.333h-256v-85.333h-71.126c-31.416 0-56.874-25.471-56.874-56.875v-654.249c0-31.407 25.458-56.875 56.874-56.875h398.252c31.403 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.472 56.875-56.875 56.875z" />
+<glyph unicode="&#xe666;" glyph-name="battery-90" d="M682.641 597.417h-341.334v85.333h341.334zM711.1 768.084h-71.125v85.333h-256v-85.333h-71.125c-31.404 0-56.875-25.471-56.875-56.875v-654.249c0-31.407 25.471-56.875 56.875-56.875h398.251c31.403 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.472 56.875-56.875 56.875z" />
+<glyph unicode="&#xe667;" glyph-name="battery-alert" d="M554.641 341.419h-85.333v213.331h85.333zM554.641 170.752h-85.333v85.333h85.333zM711.1 768.084h-71.125v85.333h-256v-85.333h-71.125c-31.404 0-56.875-25.471-56.875-56.875v-654.249c0-31.407 25.471-56.875 56.875-56.875h398.251c31.403 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.472 56.875-56.875 56.875z" />
+<glyph unicode="&#xe668;" glyph-name="battery-charging-20" d="M983.479 469.419h-128v298.665l-213.333-426.665h128v-341.333zM514.146 213.419h-341.334v469.331h341.334zM542.605 768.084h-71.125v85.333h-256v-85.333h-71.125c-31.404 0-56.875-25.471-56.875-56.875v-654.249c0-31.407 25.472-56.875 56.875-56.875h398.251c31.403 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.472 56.875-56.875 56.875z" />
+<glyph unicode="&#xe669;" glyph-name="battery-charging-30" d="M511.974 298.752h-341.334v383.998h341.334zM540.433 768.084h-71.125v85.333h-256v-85.333h-71.125c-31.404 0-56.875-25.471-56.875-56.875v-654.249c0-31.407 25.471-56.875 56.875-56.875h398.251c31.403 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.472 56.875-56.875 56.875zM981.308 469.419h-128v298.665l-213.333-426.665h128v-341.333l213.333 469.333z" />
+<glyph unicode="&#xe66a;" glyph-name="battery-charging-40" d="M981.308 469.419h-128v298.665l-213.333-426.665h128v-341.333zM511.974 384.086h-341.334v298.665h341.334zM540.433 768.084h-71.125v85.333h-256v-85.333h-71.125c-31.404 0-56.875-25.471-56.875-56.875v-654.249c0-31.407 25.471-56.875 56.875-56.875h398.251c31.403 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.472 56.875-56.875 56.875z" />
+<glyph unicode="&#xe66b;" glyph-name="battery-charging-60" d="M511.974 469.419h-341.332v213.331h341.332zM540.433 768.084h-71.125v85.333h-255.999v-85.333h-71.125c-31.404 0-56.875-25.471-56.875-56.875v-654.249c0-31.407 25.472-56.875 56.875-56.875h398.249c31.403 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.472 56.875-56.875 56.875zM981.308 469.419h-128v298.665l-213.333-426.665h128v-341.333l213.333 469.333z" />
+<glyph unicode="&#xe66c;" glyph-name="battery-charging-80" d="M981.308 469.419h-128v298.665l-213.333-426.665h128v-341.333zM511.974 554.75h-341.334v128h341.334zM540.433 768.084h-71.125v85.333h-256v-85.333h-71.125c-31.404 0-56.875-25.471-56.875-56.875v-654.249c0-31.407 25.471-56.875 56.875-56.875h398.251c31.403 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.472 56.875-56.875 56.875z" />
+<glyph unicode="&#xe66d;" glyph-name="battery-charging-90" d="M981.308 469.419h-128v298.665l-213.333-426.665h128v-341.333zM511.974 597.417h-341.334v85.333h341.334zM540.433 768.084h-71.125v85.333h-256v-85.333h-71.125c-31.404 0-56.875-25.471-56.875-56.875v-654.249c0-31.407 25.471-56.875 56.875-56.875h398.251c31.403 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.472 56.875-56.875 56.875z" />
+<glyph unicode="&#xe66e;" glyph-name="battery-charging-100" d="M981.308 469.419h-128v298.665l-213.333-426.665h128v-341.333zM540.433 768.084h-71.125v85.333h-256v-85.333h-71.125c-31.404 0-56.875-25.471-56.875-56.875v-654.249c0-31.407 25.471-56.875 56.875-56.875h398.251c31.403 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.472 56.875-56.875 56.875z" />
+<glyph unicode="&#xe66f;" glyph-name="battery-minus" d="M711.1 768.084c31.415 0 56.875-25.472 56.875-56.875v-654.249c0-31.403-25.459-56.875-56.875-56.875h-398.251c-31.416 0-56.874 25.472-56.874 56.875v654.249c0 31.403 25.458 56.875 56.874 56.875h71.126l0.026 85.25 255.974 0.083v-85.333h71.125zM341.333 426.663v-85.333h341.333v85.333z" />
+<glyph unicode="&#xe670;" glyph-name="battery-negative" d="M497.792 768c31.415 0 56.875-25.472 56.875-56.875v-654.25c0-31.403-25.459-56.875-56.875-56.875h-398.251c-31.416 0-56.874 25.472-56.874 56.875v654.25c0 31.403 25.458 56.875 56.874 56.875h71.126l0.026 85.25 255.974 0.084v-85.333h71.125zM640.026 426.582h341.333v-85.333h-341.333v85.333zM128 384h341.333v298.667h-341.333v-298.667z" />
+<glyph unicode="&#xe671;" glyph-name="battery-outline" d="M682.667 85.334h-341.334l-0.025 597.417h341.333zM711.1 768.084h-71.125v85.333h-256v-85.333h-71.126c-31.416 0-56.874-25.471-56.874-56.875v-654.249c0-31.407 25.458-56.875 56.874-56.875h398.251c31.415 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.459 56.875-56.875 56.875z" />
+<glyph unicode="&#xe672;" glyph-name="battery-plus" d="M711.1 768.084c31.415 0 56.875-25.472 56.875-56.875v-654.249c0-31.403-25.459-56.875-56.875-56.875h-398.251c-31.416 0-56.874 25.472-56.874 56.875v654.249c0 31.403 25.458 56.875 56.874 56.875h71.126l0.026 85.25 255.974 0.083v-85.333h71.125zM682.667 341.329v85.333l-128 0.004v127.997h-85.333v-127.997l-128-0.004v-85.333l128 0.004v-128.004h85.333v128.004l128-0.004z" />
+<glyph unicode="&#xe673;" glyph-name="battery-positive" d="M497.792 768c31.415 0 56.875-25.472 56.875-56.875v-654.25c0-31.403-25.459-56.875-56.875-56.875h-398.251c-31.416 0-56.874 25.472-56.874 56.875v654.25c0 31.403 25.458 56.875 56.874 56.875h71.126l0.026 85.25 255.974 0.084v-85.333h71.125zM981.359 341.248l-128 0.004v-128.004h-85.333v128.004l-128-0.004v85.333l128 0.004v127.997h85.333v-127.997l128-0.004v-85.333zM128 384h341.333v298.667h-341.333v-298.667z" />
+<glyph unicode="&#xe674;" glyph-name="battery-standard" d="M682.641 426.752h-341.333v255.998h341.333zM711.1 768.084h-71.125v85.333h-256v-85.333h-71.125c-31.417 0-56.875-25.471-56.875-56.875v-654.249c0-31.407 25.458-56.875 56.875-56.875h398.25c31.415 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.459 56.875-56.875 56.875z" />
+<glyph unicode="&#xe675;" glyph-name="battery-unknown" d="M642.816 415.915l-38.187-39.168c-22.912-22.908-39.253-43.051-46.251-77.995h-86.912c4.864 38.49 21.717 73.263 47.829 99.328l53.035 53.675c15.403 15.445 24.96 36.779 24.96 60.332 0 47.104-38.187 85.333-85.333 85.333-47.104 0-85.335-38.229-85.335-85.333h-85.332c0 94.252 76.416 170.667 170.667 170.667 94.293 0 170.667-76.415 170.667-170.667 0-37.548-15.189-71.554-39.808-96.172zM554.624 128.086h-85.333v85.333h85.333zM711.083 768.087h-71.125v85.333h-256.002v-85.333h-71.082c-31.445 0-56.917-25.471-56.917-56.916v-654.206c0-31.403 25.472-56.879 56.917-56.879h398.209c31.403 0 56.875 25.476 56.875 56.879v654.206c0 31.445-25.472 56.916-56.875 56.916z" />
+<glyph unicode="&#xe676;" glyph-name="battery" d="M711.1 768.084h-71.125v85.333h-256v-85.333h-71.126c-31.416 0-56.874-25.471-56.874-56.875v-654.249c0-31.407 25.458-56.875 56.874-56.875h398.251c31.415 0 56.875 25.468 56.875 56.875v654.249c0 31.404-25.459 56.875-56.875 56.875z" />
+<glyph unicode="&#xe677;" glyph-name="beach" d="M639.979 147.542c91.085 14.080 192.209 23.125 298.688 23.125v-170.667h-725.333c0 27.644 136.34 91.119 341.312 132.382v277.431c-36.011-10.722-66.325-34.658-85.325-66.185-26.129 43.366-73.677 72.371-127.999 72.371-54.313 0-101.855-28.996-127.988-72.354 1.489 152.687 150.282 278.102 341.312 294.531v1.824c0 23.564 19.102 42.667 42.667 42.667 23.561 0 42.667-19.103 42.667-42.667v-1.821c191.036-16.421 339.844-141.841 341.333-294.533-26.133 43.358-73.677 72.354-127.991 72.354-54.319 0-101.867-29.005-128-72.371-18.999 31.535-49.323 55.475-85.342 66.189v-262.276zM298.667 853.334c0-117.821-95.513-213.333-213.333-213.333v213.333h213.333z" />
+<glyph unicode="&#xe678;" glyph-name="beaker-empty-outline" d="M213.333 128c0-23.565 19.102-42.667 42.667-42.667h512c23.565 0 42.667 19.102 42.667 42.667 0 9.122-2.863 17.574-7.74 24.512l-248.26 430.001v185.488h-85.333v-185.488l-248.261-430c-4.876-6.938-7.739-15.39-7.739-24.512zM256-0c-70.693 0-128 57.306-128 128 0 25.732 7.593 49.69 20.66 69.756l235.34 407.621v77.289c-23.564 0-42.667 19.103-42.667 42.667v42.666c0 47.128 38.205 85.333 85.333 85.333h170.667c47.13 0 85.333-38.205 85.333-85.333v-42.666c0-23.564-19.102-42.667-42.667-42.667v-77.289l235.341-407.622c13.065-20.066 20.659-44.023 20.659-69.756 0-70.69-57.306-128-128-128h-512z" />
+<glyph unicode="&#xe679;" glyph-name="beaker-empty" d="M256-0c-70.692 0-128 57.306-128 128 0 25.732 7.593 49.69 20.66 69.756l235.34 407.622v77.289c-23.564 0-42.667 19.103-42.667 42.667v42.666c0 47.128 38.205 85.333 85.333 85.333h170.667c47.13 0 85.333-38.205 85.333-85.333v-42.666c0-23.564-19.102-42.667-42.667-42.667v-77.289l235.341-407.622c13.065-20.066 20.659-44.023 20.659-69.756 0-70.69-57.306-128-128-128h-512z" />
+<glyph unicode="&#xe67a;" glyph-name="beaker-outline" d="M213.333 128c0-23.565 19.103-42.667 42.667-42.667h512c23.565 0 42.667 19.102 42.667 42.667 0 9.122-2.863 17.574-7.74 24.512l-248.26 430.001v185.488h-85.333v-185.488l-248.261-430c-4.876-6.938-7.739-15.39-7.739-24.512zM256-0c-70.692 0-128 57.306-128 128 0 25.732 7.593 49.69 20.66 69.756l235.34 407.621v77.289c-23.564 0-42.667 19.103-42.667 42.667v42.667c0 47.128 38.205 85.333 85.333 85.333h170.667c47.13 0 85.333-38.205 85.333-85.333v-42.666c0-23.564-19.102-42.667-42.667-42.667v-77.289l235.341-407.622c13.065-20.066 20.659-44.023 20.659-69.756 0-70.69-57.306-128-128-128h-512zM554.667 256l57.161 57.161 82.27-142.494h-364.196l113.504 196.595 111.262-111.262zM533.333 426.667c11.78 0 21.333-9.553 21.333-21.333s-9.553-21.333-21.333-21.333c-11.78 0-21.333 9.553-21.333 21.333s9.553 21.333 21.333 21.333z" />
+<glyph unicode="&#xe67b;" glyph-name="beaker" d="M256-0c-70.692 0-128 57.306-128 128 0 25.732 7.593 49.69 20.66 69.756l235.34 407.622v77.289c-23.564 0-42.667 19.103-42.667 42.667v42.666c0 47.128 38.205 85.333 85.333 85.333h170.667c47.13 0 85.333-38.205 85.333-85.333v-42.666c0-23.564-19.102-42.667-42.667-42.667v-77.289l235.341-407.622c13.065-20.066 20.659-44.023 20.659-69.756 0-70.69-57.306-128-128-128h-512zM213.333 128c0-23.565 19.102-42.667 42.667-42.667h512c23.565 0 42.667 19.102 42.667 42.667 0 9.122-2.863 17.574-7.74 24.512l-97.515 168.9-108.079-108.079-216.278 216.277-159.983-277.099c-4.876-6.938-7.739-15.39-7.739-24.512zM554.667 512c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xe67c;" glyph-name="beats" d="M298.667 426.667c0-117.82 95.512-213.333 213.333-213.333 117.82 0 213.333 95.514 213.333 213.333s-95.514 213.333-213.333 213.333c-48.026 0-92.345-15.87-128-42.651v236.451c40.407 12.691 83.405 19.533 128 19.533 235.639 0 426.667-191.025 426.667-426.667 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667 0 157.927 85.802 295.814 213.333 369.586v-369.586zM618.667 426.667c0-15.578-8.346-29.201-20.809-36.651l-81.178-61.171c-7.202-5.547-16.222-8.845-26.014-8.845-23.565 0-42.667 19.102-42.667 42.667v128c0 23.564 19.102 42.667 42.667 42.667 9.796 0 18.816-3.3 26.018-8.849l81.173-61.167c12.463-7.45 20.809-21.073 20.809-36.651z" />
+<glyph unicode="&#xe67d;" glyph-name="beer" d="M170.667 853.334h640l-85.333-853.333h-469.333l-85.333 853.333zM264.533 768l68.267-682.667h42.667l-58.286 582.858c44.452 13.972 104.856 19.105 152.152-28.192 66.445-66.445 184.627-29.415 233.69-9.767l13.777 137.767h-452.267z" />
+<glyph unicode="&#xe67e;" glyph-name="behance" d="M835.49 415.002c-1.873 26.428-10.705 46.447-26.577 60.109-15.778 13.722-35.469 20.608-58.953 20.608-25.574 0-45.299-7.369-59.341-21.82-14.11-14.43-22.908-34.061-26.5-58.897zM935.39 424.905c2.59-17.374 3.738-42.577 3.277-75.52h-276.937c1.536-38.242 14.724-64.964 39.761-80.26 15.078-9.596 33.374-14.281 54.822-14.281 22.575 0 41.007 5.717 55.194 17.459 7.723 6.217 14.537 15.010 20.425 26.082h101.513c-2.667-22.566-14.891-45.478-36.838-68.745-34.039-36.975-81.766-55.531-143.053-55.531-50.633 0-95.266 15.646-133.995 46.814-38.618 31.275-58.005 82.005-58.005 152.375 0 65.988 17.408 116.484 52.339 151.644 35.059 35.228 80.303 52.751 136.068 52.751 33.058 0 62.861-5.897 89.438-17.789 26.517-11.892 48.41-30.609 65.673-56.328 15.595-22.643 25.651-48.832 30.319-78.673zM408.664 338.526c0 27.597-11.279 46.656-33.781 56.887-12.575 5.811-30.336 8.781-53.098 8.998h-113.975v-141.508h112.216c23.040 0 40.893 3.004 53.765 9.31 23.224 11.58 34.874 33.609 34.874 66.313zM207.81 492.322h112.364c23.077 0 41.764 4.403 56.136 13.163 14.353 8.762 21.521 24.332 21.521 46.693 0 24.701-9.483 41.097-28.523 48.986-16.353 5.481-37.281 8.307-62.673 8.307h-98.826zM499.861 408.717c13.798-21.355 20.685-47.317 20.685-77.769 0-31.509-7.778-59.767-23.595-84.732-10.057-16.529-22.558-30.49-37.559-41.715-16.909-12.992-36.93-21.897-59.932-26.667-23.077-4.766-48.060-7.168-74.971-7.168h-239.156v531.021h256.454c64.655-1.063 110.475-19.78 137.534-56.563 16.243-22.559 24.282-49.632 24.282-81.085 0-32.468-8.149-58.44-24.542-78.182-9.114-11.059-22.596-21.129-40.431-30.212 27.021-9.899 47.522-25.472 61.231-46.929zM856.064 626.53h-213.854v53.121h213.854v-53.121z" />
+<glyph unicode="&#xe67f;" glyph-name="bell-off" d="M597.333 85.334c0-47.13-38.204-85.333-85.333-85.333s-85.333 38.204-85.333 85.333h170.667zM842.15 18.505l-109.495 109.495h-604.655l128 128v256c0 27.911 4.467 54.779 12.725 79.929l-120.483 120.482 60.34 60.34 693.908-693.907-60.339-60.339zM469.333 764.46v46.206c0 23.564 19.102 42.666 42.667 42.666s42.667-19.102 42.667-42.666v-46.206c121.075-20.312 213.333-125.612 213.333-252.46v-177.988l-393.783 393.784c28.378 18.156 60.573 30.868 95.116 36.664z" />
+<glyph unicode="&#xe680;" glyph-name="bell-outline" d="M682.641 213.415h-384v277.333c0 106.025 85.974 191.998 192 191.998s192-85.973 192-191.998zM767.974 256.081v234.667c0 131.113-91.093 240.681-213.333 269.609v29.056c0 35.328-28.672 64-64 64s-64-28.672-64-64v-29.056c-122.24-28.928-213.333-138.496-213.333-269.609v-234.667l-85.333-85.333v-42.667h725.334v42.667zM490.641 0.081c47.147 0 85.333 38.246 85.333 85.333h-170.667c0-47.087 38.23-85.333 85.334-85.333z" />
+<glyph unicode="&#xe681;" glyph-name="bell-ring-outline" d="M682.654 213.415v277.333c0 106.028-85.973 192.001-192 192.001s-192.001-85.973-192.001-192.001v-277.333h384.001zM767.987 256.081l85.333-85.333v-42.667h-725.335v42.667l85.333 85.333v234.667c0 131.116 91.094 240.684 213.333 269.612v29.056c0 35.328 28.673 64 64.001 64s64-28.672 64-64v-29.056c122.24-28.928 213.333-138.496 213.333-269.612v-234.667zM490.654 0.081c-47.104 0-85.335 38.251-85.335 85.333h170.668c0-47.083-38.187-85.333-85.333-85.333zM852.241 512.083c-6.613 113.067-64.768 212.125-151.595 274.005l60.885 60.885c102.144-77.781 169.557-198.187 176.043-334.891h-85.333zM280.633 786.088c-86.826-61.88-144.981-160.938-151.595-274.005h-85.333c6.485 136.704 73.899 257.109 176.043 334.89l60.885-60.885z" />
+<glyph unicode="&#xe682;" glyph-name="bell-ring" d="M490.641 0.081c5.888 0 11.648 0.585 17.195 1.707 27.776 5.713 50.645 24.875 61.44 50.419 4.309 10.21 6.699 21.431 6.699 33.207h-170.667c0-47.083 38.23-85.333 85.334-85.333zM767.974 490.748c0 131.116-91.093 240.684-213.333 269.612v29.056c0 35.328-28.672 64-64 64s-64-28.672-64-64v-29.056c-122.24-28.928-213.333-138.496-213.333-269.612v-234.667l-85.333-85.333v-42.667h725.334v42.667l-85.333 85.333zM852.241 512.083h85.333c-6.485 136.704-73.899 257.109-176.043 334.891l-60.885-60.885c86.827-61.88 144.981-160.939 151.595-274.005zM280.635 786.088l-60.885 60.885c-102.144-77.781-169.557-198.187-176.043-334.891h85.333c6.613 113.067 64.768 212.125 151.595 274.005z" />
+<glyph unicode="&#xe683;" glyph-name="bell-sleep" d="M597.308 520.612l-119.467-145.068h119.467v-76.8h-213.334v76.8l119.467 145.068h-119.467v76.8h213.334zM767.974 256.077v234.667c0 131.116-91.093 240.684-213.333 269.612v29.056c0 35.328-28.672 64-64 64s-64-28.672-64-64v-29.056c-122.24-28.928-213.333-138.496-213.333-269.612v-234.667l-85.333-85.333v-42.667h725.334v42.667zM490.641 0.077c47.147 0 85.333 38.229 85.333 85.333h-170.667c0-47.104 38.23-85.333 85.334-85.333z" />
+<glyph unicode="&#xe684;" glyph-name="bell" d="M597.333 85.334c0-47.13-38.204-85.333-85.333-85.333s-85.333 38.204-85.333 85.333h170.667zM512 853.333c23.565 0 42.667-19.102 42.667-42.666v-46.207c121.075-20.312 213.333-125.612 213.333-252.46v-256l128-128h-768l128 128v256.001c0 126.848 92.258 232.148 213.333 252.46v46.205c0 23.564 19.102 42.666 42.667 42.666z" />
+<glyph unicode="&#xe685;" glyph-name="beta" d="M393.671 188.020v-235.806h-100.124v699.875c0 61.535 18.252 110.459 54.755 146.773s85.524 54.471 147.058 54.471c58.786 0 105.079-14.365 138.88-43.093s50.701-68.551 50.701-119.467c0-35.082-11.093-67.817-33.28-98.205s-51.008-51.271-86.468-62.649v-1.849c53.76-8.249 94.741-27.685 122.948-58.311s42.313-69.687 42.313-117.193c0-56.602-19.533-102.588-58.594-137.954-39.066-35.366-90.453-53.047-154.172-53.047-45.321 0-86.66 8.815-124.017 26.453zM457.387 480.141v81.921c37.073 4.457 67.58 18.275 91.52 41.458s35.913 49.28 35.913 78.293c0 59.733-29.965 89.6-89.886 89.6-32.614 0-57.647-10.383-75.093-31.147s-26.169-50.015-26.169-87.751v-374.755c38.875-22.852 76.802-34.274 113.777-34.274 35.746 0 63.646 9.361 83.699 28.087s30.080 44.919 30.080 78.579c0 76.608-54.613 119.94-163.84 129.988z" />
+<glyph unicode="&#xe686;" glyph-name="bike" d="M213.321 64.081c-82.475 0-149.333 66.859-149.333 149.333s66.859 149.333 149.333 149.333c82.475 0 149.333-66.859 149.333-149.333s-66.859-149.333-149.333-149.333zM213.321 426.748c-117.845 0-213.333-95.488-213.333-213.333 0-117.803 95.488-213.333 213.333-213.333 117.803 0 213.333 95.531 213.333 213.333 0 117.845-95.531 213.333-213.333 213.333zM631.454 512.083h179.2v76.8h-136.619l-82.517 139.349c-12.629 21.333-35.883 35.584-62.464 35.584-20.011 0-38.144-8.106-51.285-21.248l-157.739-157.738c-13.184-13.141-21.376-31.317-21.376-51.413 0-26.839 14.251-49.537 36.267-62.79l142.933-86.545v-213.333h76.8v276.395l-96 71.34 98.987 99.413zM810.654 64.081c-82.475 0-149.333 66.859-149.333 149.333s66.859 149.333 149.333 149.333c82.475 0 149.333-66.859 149.333-149.333s-66.859-149.333-149.333-149.333zM810.654 426.748c-117.845 0-213.333-95.488-213.333-213.333 0-117.803 95.488-213.333 213.333-213.333 117.803 0 213.333 95.531 213.333 213.333 0 117.845-95.531 213.333-213.333 213.333zM682.654 733.949c42.325 0 76.8 34.432 76.8 76.8s-34.475 76.8-76.8 76.8c-42.453 0-76.8-34.432-76.8-76.8s34.347-76.8 76.8-76.8z" />
+<glyph unicode="&#xe687;" glyph-name="bing" d="M213.333 167.821l413.154 224-114.487 54.758-69.687 159.287 368.354-119.467v-179.2l-428.089-258.846-169.245 119.467v637.157l170.667-58.311v-426.667l-170.667-152.179z" />
+<glyph unicode="&#xe688;" glyph-name="binoculars" d="M469.333 682.667h85.333v-298.667h-85.333v298.667zM384 85.334c0-23.565-19.103-42.667-42.667-42.667h-128c-23.564 0-42.667 19.102-42.667 42.667v213.333l85.333 384h170.667v-298.666c0-23.565-19.103-42.667-42.667-42.667v-256zM426.667 725.333h-128v85.333h128v-85.333zM640 85.334v256c-23.565 0-42.667 19.102-42.667 42.667v298.667h170.667l85.333-384v-213.333c0-23.565-19.102-42.667-42.667-42.667h-128c-23.565 0-42.667 19.102-42.667 42.667zM597.333 725.334v85.333h128v-85.333h-128z" />
+<glyph unicode="&#xe689;" glyph-name="bio" d="M725.333 426.667h128c47.13 0 85.333-38.204 85.333-85.333v-128c0-47.13-38.204-85.333-85.333-85.333h-128c-47.13 0-85.333 38.204-85.333 85.333v128c0 47.13 38.204 85.333 85.333 85.333zM725.333 341.334v-128h128v128h-128zM85.333 640h213.333c47.128 0 85.333-38.205 85.333-85.333v-85.333c0-47.13-38.205-85.333-85.333-85.333 47.128 0 85.333-38.204 85.333-85.333v-85.333c0-47.13-38.205-85.333-85.333-85.333h-213.333v512zM170.667 554.667v-128h128v128h-128zM170.667 213.334h128v128h-128v-128zM469.333 384h85.333v-256h-85.333v256zM469.333 554.667h85.333v-85.333h-85.333v85.333z" />
+<glyph unicode="&#xe68a;" glyph-name="bitbucket" d="M511.936 692.807c130.731-0.207 236.749 22.16 236.796 49.982 0.043 27.828-105.899 50.54-236.629 50.746-130.734 0.212-236.755-22.16-236.799-49.982s105.901-50.534 236.633-50.746zM512 324.463c64.892 0 117.495 52.612 117.495 117.495 0 64.896-52.604 117.496-117.495 117.496s-117.495-52.6-117.495-117.496c0-64.883 52.603-117.495 117.495-117.495zM512.004 853.333c203.473 0 369.617-54.703 369.617-122.624 0-17.891-44.373-274.411-61.978-376.141-7.889-45.623-125.79-112.516-307.55-112.516v0.542l-0.188-0.542c-181.761 0-299.661 66.893-307.553 112.516-17.602 101.73-61.972 358.25-61.972 376.141 0 67.921 166.145 122.624 369.624 122.624zM777.655 252.613c6.716 0 13.077-4.514 13.077-14.46l-0.294-3.127c-14.127-75.61-24.448-129.259-26.261-137.429-12.335-55.62-121.135-97.591-252.169-97.596h-0.017c-131.032 0.004-239.836 41.975-252.169 97.596-1.812 8.171-12.135 61.82-26.261 137.429l-0.295 3.127c0 9.946 6.364 14.46 13.076 14.46 5.618 0 10.123-3.981 10.123-3.981s91.021-72.073 255.534-72.081c164.514 0.009 255.535 72.081 255.535 72.081s4.501 3.981 10.121 3.981zM570.769 441.997c0-32.525-26.364-58.884-58.884-58.884s-58.884 26.359-58.884 58.884c0 32.525 26.364 58.88 58.884 58.88s58.884-26.355 58.884-58.88z" />
+<glyph unicode="&#xe68b;" glyph-name="black-mesa" d="M512 853.334c235.639 0 426.667-191.025 426.667-426.667 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667 0 235.641 191.025 426.667 426.667 426.667zM512 768c-188.513 0-341.333-152.82-341.333-341.333 0-101.948 44.694-193.455 115.556-256h97.777v256h341.333l91.84-153.067c23.134 46.037 36.16 98.031 36.16 153.067 0 188.513-152.819 341.333-341.333 341.333z" />
+<glyph unicode="&#xe68c;" glyph-name="blackberry" d="M232.46 500.229c40.628 0 88.276-32.934 88.276-73.562s-47.648-73.562-88.276-73.562h-147.127l29.425 147.123h117.701zM261.885 735.632c40.628 0 88.276-32.935 88.276-73.563s-47.648-73.563-88.276-73.563h-147.126l29.425 147.127h117.701zM556.139 735.632c40.627 0 88.273-32.935 88.273-73.563s-47.646-73.563-88.273-73.563h-154.483l29.423 147.127h125.060zM526.711 500.229c40.627 0 88.277-32.934 88.277-73.562s-47.65-73.562-88.277-73.562h-154.481l29.425 147.123h125.056zM467.861 264.828c40.627 0 88.277-32.934 88.277-73.562 0-40.631-47.65-73.566-88.277-73.566h-147.125l29.425 147.127h117.7zM791.539 353.105c40.627 0 88.277-32.939 88.277-73.566s-47.65-73.562-88.277-73.562h-147.123l29.423 147.127h117.7zM850.389 588.506c40.627 0 88.277-32.935 88.277-73.563 0-40.626-47.65-73.565-88.277-73.565h-147.123l29.423 147.128h117.7z" />
+<glyph unicode="&#xe68d;" glyph-name="blinds" d="M128 853.334h768c23.565 0 42.667-19.103 42.667-42.667v-85.333c0-23.564-19.102-42.667-42.667-42.667h-42.667v-298.667c0-23.565-19.102-42.667-42.667-42.667h-256v-92.617c49.715-17.57 85.333-64.986 85.333-120.717 0-70.694-57.306-128-128-128s-128 57.306-128 128c0 55.731 35.619 103.147 85.333 120.717v92.617h-256c-23.564 0-42.667 19.102-42.667 42.667v298.667h-42.667c-23.564 0-42.667 19.102-42.667 42.667v85.333c0 23.564 19.103 42.667 42.667 42.667zM512 170.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xe68e;" glyph-name="block-helper" d="M512 938.667c282.769 0 512-229.231 512-512s-229.231-512-512-512c-282.77 0-512 229.231-512 512s229.23 512 512 512zM512 853.333c-235.642 0-426.667-191.025-426.667-426.666 0-102.455 36.111-196.476 96.301-270.025l600.39 600.39c-73.549 60.189-167.569 96.301-270.025 96.301zM512-0c235.639 0 426.667 191.027 426.667 426.667 0 102.454-36.113 196.474-96.303 270.026l-600.39-600.39c73.552-60.19 167.572-96.303 270.026-96.303z" />
+<glyph unicode="&#xe68f;" glyph-name="blogger" d="M597.308 384.081h-172.798c-23.596 0-42.667-19.072-42.667-42.667s19.070-42.667 42.667-42.667h172.798c23.595 0 42.667 19.072 42.667 42.667s-19.072 42.667-42.667 42.667zM424.509 512.083h110.932c23.552 0 42.667 19.072 42.667 42.667s-19.115 42.667-42.667 42.667h-110.932c-23.596 0-42.667-19.072-42.667-42.667s19.070-42.667 42.667-42.667zM682.641 554.749v-42.667c0-23.596 19.076-42.668 42.667-42.668 23.595 0 42.667-19.072 42.667-42.667v-128c0-70.656-57.301-128-128-128h-255.999c-70.699 0-128 57.344-128 128v298.668c0 70.656 57.301 128 128 128h170.665c70.699 0 128-57.344 128-128zM853.308 853.416h-682.665c-47.147 0-84.906-38.186-84.906-85.333l-0.427-682.668c0-47.083 38.186-85.333 85.333-85.333h682.665c47.104 0 85.333 38.251 85.333 85.333v682.668c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe690;" glyph-name="bluetooth-audio" d="M549.474 243.58l-80.171-80.171v160.341zM469.303 690.088l80.171-80.171-80.171-80.171zM670.135 609.917l-243.498 243.499h-42.667v-323.669l-195.669 195.669-60.331-60.331 238.336-238.337-238.336-238.336 60.331-60.331 195.669 195.669v-323.669h42.667l243.498 243.499-183.168 183.168zM833.207 652.328l-53.931-53.931c26.709-51.456 42.027-109.697 42.027-171.649s-15.317-120.192-42.027-171.648l51.157-51.14c41.301 65.69 65.536 143.13 65.536 226.458 0 81.408-23.211 157.185-62.763 221.911zM607.629 426.279l98.987-98.944c11.904 30.891 18.688 64.341 18.688 99.413 0 34.816-6.699 68.011-18.432 98.732l-99.243-99.202z" />
+<glyph unicode="&#xe691;" glyph-name="bluetooth-connect" d="M810.641 512.083l-85.333-85.335 85.333-85.333 85.333 85.333zM634.812 243.58l-80.171-80.171v160.341zM554.641 690.088l80.171-80.171-80.171-80.171zM755.473 609.917l-243.499 243.499h-42.667v-323.669l-195.669 195.669-60.331-60.331 238.336-238.337-238.336-238.336 60.331-60.331 195.669 195.669v-323.669h42.667l243.499 243.499-183.168 183.168zM298.641 426.748l-85.333 85.335-85.333-85.335 85.333-85.333 85.333 85.333z" />
+<glyph unicode="&#xe692;" glyph-name="bluetooth-settings" d="M634.88 328.96l-80.213-80.213v160.427l80.213-80.213zM554.667 775.254l80.213-80.213-80.213-80.213zM755.627 695.040l-243.627 243.627h-42.667v-323.84l-195.84 195.84-60.16-60.16 238.507-238.507-238.507-238.507 60.16-60.16 195.84 195.84v-323.84h42.667l243.627 243.627-183.467 183.040 183.467 183.040zM640-85.333h85.333v85.333h-85.333zM298.667-85.333h85.333v85.333h-85.333zM469.333-85.333h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe693;" glyph-name="bluetooth-transfer" d="M627.486 609.835l-183.168-183.168 183.168-183.168-243.501-243.499h-42.667v323.669l-195.669-195.669-60.331 60.331 238.336 238.336-238.336 238.336 60.331 60.331 195.669-195.669v323.669h42.667l243.501-243.499zM426.652 690.006v-160.341l80.169 80.171-80.169 80.171zM506.82 243.499l-80.169 80.171v-160.341l80.169 80.171zM938.679 597.253h-85.333v-128h-85.333v128h-85.333l128 170.667 128-170.667zM938.679 255.919l-128-170.667-128 170.667h85.333v128h85.333v-128h85.333z" />
+<glyph unicode="&#xe694;" glyph-name="bluetooth" d="M634.807 243.58l-80.171-80.171v160.341zM554.637 690.088l80.171-80.171-80.171-80.171zM755.469 609.917l-243.499 243.499h-42.667v-323.669l-195.669 195.669-60.331-60.331 238.336-238.337-238.336-238.336 60.331-60.331 195.669 195.669v-323.669h42.667l243.499 243.499-183.168 183.168 183.168 183.169z" />
+<glyph unicode="&#xe695;" glyph-name="blur-linear" d="M554.667 213.334c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM554.667 384c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM554.667 554.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM725.333 405.334c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333zM725.333 576c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333zM128 810.667v-85.333h768v85.333zM725.333 234.667c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333zM384 213.334c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM213.333 362.667c35.413 0 64 28.587 64 64s-28.587 64-64 64c-35.413 0-64-28.587-64-64s28.587-64 64-64zM213.333 533.334c35.413 0 64 28.587 64 64s-28.587 64-64 64c-35.413 0-64-28.587-64-64s28.587-64 64-64zM128 42.667h768v85.333h-768zM384 554.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM384 384c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM213.333 192c35.413 0 64 28.587 64 64s-28.587 64-64 64c-35.413 0-64-28.587-64-64s28.587-64 64-64z" />
+<glyph unicode="&#xe696;" glyph-name="blur-off" d="M128 362.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM256 213.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM426.667 64c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM128 533.334c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM256 384c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM896 362.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM426.667 213.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM106.667 713.814l161.28-161.28-11.947 2.133c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667 0 4.267-1.28 8.107-2.56 11.947l119.893-119.893c-30.293-4.693-53.333-31.147-53.333-62.72 0-35.413 28.587-64 64-64 31.573 0 58.027 23.040 62.72 53.333l119.893-119.893c-3.84 1.28-7.68 2.56-11.947 2.56-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667 0 4.267-1.28 8.107-2.56 11.947l161.28-161.28 54.613 54.187-692.48 692.48-54.187-54.187zM597.333 64c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM768 640c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM768 469.334c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM768 298.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM426.667 640c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM896 490.667c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333zM426.667 789.334c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333zM597.333 789.334c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333zM588.8 448.854l8.533-0.853c35.413 0 64 28.587 64 64s-28.587 64-64 64c-35.413 0-64-28.587-64-64l0.853-8.533c3.84-28.587 26.027-50.773 54.613-54.613zM597.333 640c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667z" />
+<glyph unicode="&#xe697;" glyph-name="blur-radial" d="M597.333 384c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM597.333 234.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM512 85.334c-188.587 0-341.333 152.747-341.333 341.333s152.747 341.333 341.333 341.333c188.587 0 341.333-152.747 341.333-341.333s-152.747-341.333-341.333-341.333zM512 853.334c-235.52 0-426.667-191.147-426.667-426.667s191.147-426.667 426.667-426.667c235.52 0 426.667 191.147 426.667 426.667s-191.147 426.667-426.667 426.667zM725.333 533.334c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM725.333 362.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM597.333 618.667c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333zM597.333 554.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM426.667 618.667c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333zM298.667 362.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM426.667 234.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM298.667 533.334c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM426.667 384c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM426.667 554.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667z" />
+<glyph unicode="&#xe698;" glyph-name="blur" d="M597.333 576c-35.413 0-64-28.587-64-64s28.587-64 64-64c35.413 0 64 28.587 64 64s-28.587 64-64 64zM597.333 405.334c-35.413 0-64-28.587-64-64s28.587-64 64-64c35.413 0 64 28.587 64 64s-28.587 64-64 64zM426.667 213.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM426.667 576c-35.413 0-64-28.587-64-64s28.587-64 64-64c35.413 0 64 28.587 64 64s-28.587 64-64 64zM597.333 64c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM597.333 213.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM896 362.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM768 725.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM768 554.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM768 213.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM768 384c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM426.667 405.334c-35.413 0-64-28.587-64-64s28.587-64 64-64c35.413 0 64 28.587 64 64s-28.587 64-64 64zM426.667 640c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM426.667 789.334c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333zM426.667 64c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM128 362.667c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM597.333 789.334c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333zM597.333 640c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM896 490.667c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333zM256 725.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM128 533.334c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM256 554.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM256 213.334c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM256 384c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667z" />
+<glyph unicode="&#xe699;" glyph-name="bone" d="M341.333 341.334c0-70.694-57.308-128-128-128s-128 57.306-128 128c0 32.785 12.324 62.686 32.593 85.333-20.269 22.647-32.593 52.548-32.593 85.333 0 70.692 57.308 128 128 128s128-57.308 128-128c56.889-3.554 113.779-7.113 170.667-7.113s113.779 3.558 170.667 7.113c0 70.692 57.306 128 128 128s128-57.308 128-128c0-32.785-12.326-62.686-32.593-85.333 20.267-22.647 32.593-52.548 32.593-85.333 0-70.694-57.306-128-128-128s-128 57.306-128 128c-56.887 3.554-113.779 7.113-170.667 7.113s-113.778-3.558-170.667-7.113z" />
+<glyph unicode="&#xe69a;" glyph-name="book-multiple-variant" d="M810.662 170.637l-426.662 0.043c-47.084 0-85.333 38.229-85.333 85.333l-0.001 511.98c0 47.104 38.25 85.333 85.333 85.333l426.663-0.042c47.142 0 85.329-38.229 85.329-85.333l0.004-511.981c0-47.104-38.187-85.333-85.333-85.333zM426.665 554.639l85.331 63.972 85.333-63.983 0.004 213.372h-170.667l-0.002-213.361zM725.333 85.334v-85.333h-512c-47.128 0-85.333 38.204-85.333 85.333v597.333h85.333v-597.333h512z" />
+<glyph unicode="&#xe69b;" glyph-name="book-multiple" d="M810.662 170.637l-426.662 0.043c-47.084 0-85.333 38.229-85.333 85.333l-0.001 511.98c0 47.104 38.25 85.333 85.333 85.333h42.667l-0.001-213.354 85.331 63.972 85.333-63.983 0.004 213.357 213.329-0.035c47.142 0 85.329-38.229 85.329-85.333l0.004-511.981c0-47.104-38.187-85.333-85.333-85.333zM725.333 85.334v-85.333h-512c-47.128 0-85.333 38.204-85.333 85.333v597.333h85.333v-597.333h512z" />
+<glyph unicode="&#xe69c;" glyph-name="book-open" d="M469.333 128v426.667c0 47.128-38.204 85.333-85.333 85.333h-170.667v-426.667h170.667c47.13 0 85.333-38.204 85.333-85.333zM554.667 554.667v-426.667c0 47.13 38.204 85.333 85.333 85.333h170.667v426.666h-170.667c-47.13 0-85.333-38.205-85.333-85.333zM896 128h-256c-47.13 0-85.333-38.204-85.333-85.333h-85.333c0 47.13-38.204 85.333-85.333 85.333h-256v597.333h256c47.13 0 85.334-38.205 85.334-85.333h85.333c0 47.128 38.204 85.333 85.333 85.333h256v-597.333z" />
+<glyph unicode="&#xe69d;" glyph-name="book-variant" d="M256 768h213.333v-341.333l-106.667 64-106.667-64zM768 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe69e;" glyph-name="book" d="M767.974 0.086c47.147 0 85.333 38.225 85.333 85.333v682.665c0 47.104-38.187 85.333-85.333 85.333h-256v-298.667l-106.668 64-106.667-64v298.667h-42.667c-47.084 0-85.333-38.229-85.333-85.333v-682.665c0-47.108 38.25-85.333 85.333-85.333h512.001z" />
+<glyph unicode="&#xe69f;" glyph-name="bookmark-check" d="M725.308 810.75c47.147 0 85.333-38.229 85.333-85.333v-682.665l-298.667 128-298.667-128 0.469 682.665c0 47.104 37.76 85.333 84.864 85.333h426.667zM469.333 341.035l266.667 266.666-60.331 60.331-206.336-206.335-110.335 110.335-60.331-60.33 170.666-170.667z" />
+<glyph unicode="&#xe6a0;" glyph-name="bookmark-music" d="M725.308 810.75c47.147 0 85.333-38.229 85.333-85.333v-682.665l-298.667 128-298.667-128 0.469 682.665c0 47.104 37.76 85.333 84.864 85.333h426.667zM469.333 469.334c-47.128 0-85.333-38.204-85.333-85.333s38.205-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333v213.333h128v85.333h-170.667v-224.751c-12.553 7.262-27.123 11.418-42.667 11.418z" />
+<glyph unicode="&#xe6a1;" glyph-name="bookmark-outline-plus" d="M725.308 170.752v554.665h-426.667v-554.665l213.333 92.843 213.333-92.843zM725.308 810.75c47.147 0 85.333-38.229 85.333-85.333v-682.665l-298.667 128-298.667-128 0.47 682.665c0 47.104 37.76 85.333 84.864 85.333h426.667zM469.333 640h85.333v-85.333h85.333v-85.333h-85.333v-85.333h-85.333v85.333h-85.333v85.333h85.333v85.333z" />
+<glyph unicode="&#xe6a2;" glyph-name="bookmark-outline" d="M725.308 170.752l-213.333 92.843-213.333-92.843v554.665h426.667zM725.308 810.75h-426.667c-47.104 0-84.864-38.229-84.864-85.333l-0.469-682.665 298.667 128 298.667-128v682.665c0 47.104-38.187 85.333-85.333 85.333z" />
+<glyph unicode="&#xe6a3;" glyph-name="bookmark-plus" d="M725.308 810.75c47.147 0 85.333-38.229 85.333-85.333v-682.665l-298.667 128-298.667-128 0.469 682.665c0 47.104 37.76 85.333 84.864 85.333h426.667zM469.333 640v-85.333h-85.333v-85.333h85.333v-85.333h85.333v85.333h85.333v85.333h-85.333v85.333h-85.333z" />
+<glyph unicode="&#xe6a4;" glyph-name="bookmark-remove" d="M725.308 810.75c47.147 0 85.333-38.229 85.333-85.333v-682.665l-298.667 128-298.667-128 0.469 682.665c0 47.104 37.76 85.333 84.864 85.333h426.667zM348.628 572.423l103.007-103.008-103.007-103.006 60.34-60.339 103.007 103.006 103.006-103.006 60.339 60.339-103.006 103.010 103.006 103.004-60.339 60.34-103.006-103.006-103.007 103.006-60.34-60.34z" />
+<glyph unicode="&#xe6a5;" glyph-name="bookmark" d="M725.308 810.75h-426.667c-47.104 0-84.864-38.229-84.864-85.333l-0.469-682.665 298.667 128 298.667-128v682.665c0 47.104-38.187 85.333-85.333 85.333z" />
+<glyph unicode="&#xe6a6;" glyph-name="border-all" d="M810.641 469.415h-256v255.999h256zM810.641 128.081h-256v256h256zM469.308 469.415h-256.001v255.999h256.001zM469.308 128.081h-256.001v256h256.001zM127.974 42.748h768.001v767.999h-768.001v-767.999z" />
+<glyph unicode="&#xe6a7;" glyph-name="border-bottom" d="M213.308 298.752h-85.333v-85.333h85.333zM127.974 42.752h768v85.333h-768zM213.308 469.419h-85.333v-85.333h85.333zM810.641 554.75h85.333v85.333h-85.333zM810.641 725.417h85.333v85.333h-85.333zM213.308 640.084h-85.333v-85.333h85.333zM810.641 213.419h85.333v85.333h-85.333zM810.641 384.086h85.333v85.333h-85.333zM725.308 810.75h-85.333v-85.333h85.333zM554.641 810.75h-85.333v-85.333h85.333zM725.308 469.419h-85.333v-85.333h85.333zM554.641 640.084h-85.333v-85.333h85.333zM213.308 810.75h-85.333v-85.333h85.333zM554.641 469.419h-85.333v-85.333h85.333zM383.974 810.75h-85.333v-85.333h85.333zM554.641 298.752h-85.333v-85.333h85.333zM383.974 469.419h-85.333v-85.333h85.333v85.333z" />
+<glyph unicode="&#xe6a8;" glyph-name="border-color" d="M883.465 766.249c16.683 16.683 16.683 43.648 0 60.331l-99.669 99.669c-16.64 16.682-43.648 16.682-60.331 0l-83.499-83.499 160-160zM757.299 640.084l-160 160-426.667-426.665v-160h160l426.667 426.665z" />
+<glyph unicode="&#xe6a9;" glyph-name="border-horizontal" d="M810.641 42.752h85.333v85.333h-85.333zM639.974 42.752h85.333v85.333h-85.333zM469.308 213.419h85.333v85.333h-85.333zM810.641 554.75h85.333v85.333h-85.333zM810.641 725.417h85.333v85.333h-85.333zM127.974 384.086h768v85.333h-768zM469.308 42.752h85.333v85.333h-85.333zM810.641 213.419h85.333v85.333h-85.333zM554.641 810.75h-85.333v-85.333h85.333zM554.641 640.084h-85.333v-85.333h85.333zM725.308 810.75h-85.333v-85.333h85.333zM383.974 810.75h-85.333v-85.333h85.333zM213.308 810.75h-85.333v-85.333h85.333zM298.641 42.752h85.333v85.333h-85.333zM127.974 213.419h85.333v85.333h-85.333zM213.308 640.084h-85.333v-85.333h85.333zM127.974 42.752h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe6aa;" glyph-name="border-inside" d="M810.641 213.419h85.333v85.333h-85.333zM810.641 42.752h85.333v85.333h-85.333zM554.641 810.75h-85.333v-341.331h-341.334v-85.333h341.334v-341.333h85.333v341.333h341.333v85.333h-341.333zM639.974 42.752h85.333v85.333h-85.333zM810.641 725.417h85.333v85.333h-85.333zM810.641 554.75h85.333v85.333h-85.333zM725.308 810.75h-85.333v-85.333h85.333zM213.307 810.75h-85.333v-85.333h85.333zM383.974 810.75h-85.333v-85.333h85.333zM127.974 213.419h85.333v85.333h-85.333zM213.307 640.084h-85.333v-85.333h85.333zM298.641 42.752h85.333v85.333h-85.333zM127.974 42.752h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe6ab;" glyph-name="border-left" d="M639.974 725.417h85.333v85.333h-85.333zM639.974 384.086h85.333v85.333h-85.333zM810.641 42.752h85.333v85.333h-85.333zM810.641 384.086h85.333v85.333h-85.333zM810.641 725.417h85.333v85.333h-85.333zM810.641 213.419h85.333v85.333h-85.333zM639.974 42.752h85.333v85.333h-85.333zM810.641 554.75h85.333v85.333h-85.333zM127.974 42.752h85.333v767.998h-85.333zM298.641 384.086h85.333v85.333h-85.333zM298.641 725.417h85.333v85.333h-85.333zM298.641 42.752h85.333v85.333h-85.333zM469.308 384.086h85.333v85.333h-85.333zM469.308 554.75h85.333v85.333h-85.333zM469.308 725.417h85.333v85.333h-85.333zM469.308 213.419h85.333v85.333h-85.333zM469.308 42.752h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe6ac;" glyph-name="border-none" d="M639.974 725.417h85.333v85.333h-85.333zM639.974 384.086h85.333v85.333h-85.333zM639.974 42.752h85.333v85.333h-85.333zM469.308 725.417h85.333v85.333h-85.333zM810.641 725.417h85.333v85.333h-85.333zM469.308 554.75h85.333v85.333h-85.333zM810.641 554.75h85.333v85.333h-85.333zM810.641 42.752h85.333v85.333h-85.333zM810.641 384.086h85.333v85.333h-85.333zM810.641 213.419h85.333v85.333h-85.333zM469.308 384.086h85.333v85.333h-85.333zM127.974 725.417h85.333v85.333h-85.333zM127.974 554.75h85.333v85.333h-85.333zM127.974 384.086h85.333v85.333h-85.333zM127.974 213.419h85.333v85.333h-85.333zM127.974 42.752h85.333v85.333h-85.333zM469.308 42.752h85.333v85.333h-85.333zM469.308 213.419h85.333v85.333h-85.333zM298.641 42.752h85.333v85.333h-85.333zM298.641 384.086h85.333v85.333h-85.333zM298.641 725.417h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe6ad;" glyph-name="border-outside" d="M383.974 469.419h-85.333v-85.333h85.333zM554.641 298.752h-85.333v-85.333h85.333zM810.641 128.086h-597.333v597.331h597.333zM127.974 42.752h768v767.998h-768zM725.308 469.419h-85.333v-85.333h85.333zM554.641 469.419h-85.333v-85.333h85.333zM554.641 640.084h-85.333v-85.333h85.333v85.333z" />
+<glyph unicode="&#xe6ae;" glyph-name="border-right" d="M469.308 554.75h85.333v85.333h-85.333zM469.308 725.417h85.333v85.333h-85.333zM469.308 384.086h85.333v85.333h-85.333zM639.974 725.417h85.333v85.333h-85.333zM639.974 42.752h85.333v85.333h-85.333zM810.641 42.752h85.333v767.998h-85.333zM639.974 384.086h85.333v85.333h-85.333zM469.308 213.419h85.333v85.333h-85.333zM127.975 554.75h85.333v85.333h-85.333zM127.975 213.419h85.333v85.333h-85.333zM127.975 384.086h85.333v85.333h-85.333zM469.308 42.752h85.333v85.333h-85.333zM127.975 42.752h85.333v85.333h-85.333zM298.642 384.086h85.333v85.333h-85.333zM298.642 725.417h85.333v85.333h-85.333zM127.975 725.417h85.333v85.333h-85.333zM298.642 42.752h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe6af;" glyph-name="border-top" d="M639.974 384.086h85.333v85.333h-85.333zM810.641 42.752h85.333v85.333h-85.333zM469.308 554.75h85.333v85.333h-85.333zM639.974 42.752h85.333v85.333h-85.333zM810.641 213.419h85.333v85.333h-85.333zM127.975 725.417h768v85.333h-768zM810.641 384.086h85.333v85.333h-85.333zM810.641 554.75h85.333v85.333h-85.333zM469.308 213.419h85.333v85.333h-85.333zM127.975 554.75h85.333v85.333h-85.333zM127.975 384.086h85.333v85.333h-85.333zM127.975 42.752h85.333v85.333h-85.333zM127.975 213.419h85.333v85.333h-85.333zM469.308 42.752h85.333v85.333h-85.333zM469.308 384.086h85.333v85.333h-85.333zM298.641 384.086h85.333v85.333h-85.333zM298.641 42.752h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe6b0;" glyph-name="border-vertical" d="M639.974 384.086h85.333v85.333h-85.333zM639.974 42.752h85.333v85.333h-85.333zM639.974 725.417h85.333v85.333h-85.333zM810.641 554.75h85.333v85.333h-85.333zM810.641 725.417h85.333v85.333h-85.333zM810.641 384.086h85.333v85.333h-85.333zM810.641 42.752h85.333v85.333h-85.333zM469.308 42.752h85.333v767.998h-85.333zM810.641 213.419h85.333v85.333h-85.333zM298.641 725.417h85.333v85.333h-85.333zM127.974 213.419h85.333v85.333h-85.333zM127.974 42.752h85.333v85.333h-85.333zM127.974 384.086h85.333v85.333h-85.333zM298.641 384.086h85.333v85.333h-85.333zM298.641 42.752h85.333v85.333h-85.333zM127.974 725.417h85.333v85.333h-85.333zM127.974 554.75h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe6b1;" glyph-name="bowling" d="M512 853.334c235.639 0 426.667-191.025 426.667-426.667 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667 0 235.641 191.025 426.667 426.667 426.667zM533.333 469.334c-35.345 0-64-28.655-64-64s28.655-64 64-64c35.345 0 64 28.655 64 64s-28.655 64-64 64zM512 725.334c-47.13 0-85.333-38.205-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333zM253.131 576.389c-23.564-40.814-9.58-93.005 31.234-116.565 40.815-23.565 93.004-9.583 116.568 31.232s9.58 93.004-31.234 116.567c-40.815 23.564-93.004 9.58-116.568-31.234z" />
+<glyph unicode="&#xe6b2;" glyph-name="box-download" d="M213.146 810.667h597.845l73.741-127.718-0.235-0.134c7.313-12.585 11.503-27.211 11.503-42.815v-512c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v512c0 15.445 4.104 29.932 11.28 42.43l-0.129 0.074 73.995 128.162zM237.779 768l-24.634-42.667h597.846l-24.631 42.667h-548.581zM298.667 426.667l213.333-213.333 213.333 213.333h-128v85.333h-170.667v-85.333h-128z" />
+<glyph unicode="&#xe6b3;" glyph-name="box-upload" d="M213.146 810.667h597.845l73.741-127.718-0.235-0.134c7.313-12.585 11.503-27.211 11.503-42.815v-512c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v512c0 15.445 4.104 29.932 11.28 42.43l-0.129 0.074 73.995 128.162zM237.779 768l-24.634-42.667h597.846l-24.631 42.667h-548.581zM298.667 298.667h128v-85.333h170.667v85.333h128l-213.333 213.333-213.333-213.333z" />
+<glyph unicode="&#xe6b4;" glyph-name="box" d="M656.533 339.776v0.021c-0.013 60.386-48.964 109.321-109.338 109.321-60.382 0-109.325-48.934-109.338-109.321v-0.021c0.013-60.373 48.956-109.312 109.338-109.312 60.373 0 109.325 48.939 109.338 109.312zM729.476 339.776c0-100.663-81.609-182.285-182.285-182.285-69.794 0-130.399 39.253-161.025 96.862-30.627-57.609-91.233-96.862-161.029-96.862-99.659 0-180.587 80-182.207 179.268h-0.076v302.437h0.017c0.42 19.788 16.562 35.709 36.454 35.709s36.035-15.921 36.458-35.709l0.017-0.019v-153.524c30.46 22.874 68.314 36.432 109.336 36.432 69.795 0 130.402-39.244 161.029-96.852 30.627 57.609 91.235 96.852 161.025 96.852 100.676 0 182.285-81.612 182.285-182.288v-0.021zM334.476 339.776v0.021c-0.011 60.386-48.958 109.321-109.338 109.321-60.379 0-109.325-48.934-109.336-109.321v-0.021c0.012-60.373 48.957-109.312 109.336-109.312 60.38 0 109.327 48.939 109.338 109.312zM974.686 214.857l-0.009-0.004c4.719-6.579 6.95-14.221 6.844-21.769-0.145-10.906-5.158-21.623-14.562-28.685-6.558-4.932-14.238-7.305-21.854-7.305-10.842 0-21.559 4.821-28.749 13.956l-80.572 107.708-80.585-107.695c-7.181-9.148-17.894-13.969-28.74-13.969-7.612 0-15.296 2.381-21.858 7.313-9.604 7.211-14.63 18.244-14.558 29.393 0.038 7.317 2.274 14.682 6.848 21.052l-0.004 0.026 93.342 124.774-93.338 124.804c-4.663 6.494-6.895 14.029-6.848 21.487 0.060 10.999 5.077 21.841 14.558 28.962 15.906 11.947 38.374 8.913 50.598-6.66l0.013 0.017 80.572-107.708 80.585 107.699c12.22 15.569 34.688 18.604 50.59 6.659 9.685-7.274 14.711-18.423 14.562-29.665-0.094-7.228-2.325-14.494-6.844-20.791l0.009-0.026-93.346-124.779 93.346-124.796z" />
+<glyph unicode="&#xe6b5;" glyph-name="briefcase-checked" d="M448 192l-149.333 149.333 60.331 60.331 89.003-89.003 220.843 220.843 60.331-60.331zM426.667 768h170.667v-85.333h-170.667zM853.333 682.667h-170.667v85.333l-85.333 85.333h-170.667l-85.333-85.333v-85.333h-170.667c-47.189 0-84.864-38.186-84.864-85.333l-0.469-469.333c0-47.147 38.144-85.333 85.333-85.333h682.667c47.147 0 85.333 38.187 85.333 85.333v469.333c0 47.147-38.187 85.333-85.333 85.333z" />
+<glyph unicode="&#xe6b6;" glyph-name="briefcase-download" d="M511.974 128.081l-213.334 213.333h128v170.668h170.667v-170.668h128zM426.641 768.083h170.667v-85.333h-170.667zM853.308 682.749h-170.667v85.333l-85.333 85.333h-170.667l-85.333-85.333v-85.333h-170.667c-47.189 0-84.864-38.186-84.864-85.333l-0.469-469.335c0-47.147 38.144-85.333 85.333-85.333h682.667c47.147 0 85.333 38.187 85.333 85.333v469.335c0 47.147-38.187 85.333-85.333 85.333z" />
+<glyph unicode="&#xe6b7;" glyph-name="briefcase-upload" d="M853.308 682.749c47.147 0 85.333-38.187 85.333-85.333v-469.335c0-47.147-38.187-85.333-85.333-85.333h-682.667c-47.189 0-85.333 38.187-85.333 85.333l0.469 469.335c0 47.147 37.675 85.333 84.864 85.333h170.667v85.333l85.333 85.333h170.667l85.333-85.333v-85.333h170.667zM426.641 768.083v-85.333h170.667v85.333h-170.667zM512 554.667l-213.333-213.333h128v-170.667h170.667v170.667h128l-213.333 213.333z" />
+<glyph unicode="&#xe6b8;" glyph-name="briefcase" d="M597.308 682.75h-170.667v85.333h170.667zM853.308 682.75h-170.667v85.333l-85.333 85.333h-170.667l-85.333-85.333v-85.333h-170.667c-47.147 0-84.906-38.143-84.906-85.333l-0.427-469.331c0-47.194 38.186-85.333 85.333-85.333h682.667c47.147 0 85.333 38.14 85.333 85.333v469.331c0 47.19-38.187 85.333-85.333 85.333z" />
+<glyph unicode="&#xe6b9;" glyph-name="brightness-1" d="M512 853.334c235.639 0 426.667-191.025 426.667-426.667 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667 0 235.642 191.025 426.667 426.667 426.667z" />
+<glyph unicode="&#xe6ba;" glyph-name="brightness-2" d="M426.667 853.334c-77.653 0-150.613-21.333-213.333-57.6 127.573-73.817 213.333-211.2 213.333-369.067s-85.76-295.253-213.333-369.067c62.72-36.267 135.68-57.6 213.333-57.6 235.52 0 426.667 191.147 426.667 426.667s-191.147 426.667-426.667 426.667z" />
+<glyph unicode="&#xe6bb;" glyph-name="brightness-3" d="M384 853.334c-44.8 0-87.467-6.833-128-19.627 173.227-54.187 298.667-215.893 298.667-407.040s-125.44-352.853-298.667-407.040c40.533-12.8 83.2-19.627 128-19.627 235.52 0 426.667 191.147 426.667 426.667s-191.147 426.667-426.667 426.667z" />
+<glyph unicode="&#xe6bc;" glyph-name="brightness-4" d="M512 170.667c-37.973 0-74.24 8.533-106.667 23.467 87.893 40.533 149.333 129.28 149.333 232.533s-61.44 192-149.333 232.533c32.427 14.933 68.693 23.467 106.667 23.467 141.227 0 256-114.773 256-256s-114.773-256-256-256zM853.333 567.894v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107l141.227 141.227-141.227 141.227z" />
+<glyph unicode="&#xe6bd;" glyph-name="brightness-5" d="M512 170.667c-141.227 0-256 114.773-256 256s114.773 256 256 256c141.227 0 256-114.773 256-256s-114.773-256-256-256zM853.333 285.44l141.227 141.227-141.227 141.227v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107z" />
+<glyph unicode="&#xe6be;" glyph-name="brightness-6" d="M512 170.667v512c141.227 0 256-114.773 256-256s-114.773-256-256-256zM853.333 285.44l141.227 141.227-141.227 141.227v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107z" />
+<glyph unicode="&#xe6bf;" glyph-name="brightness-7" d="M512 597.334c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667c94.293 0 170.667 76.373 170.667 170.667s-76.373 170.667-170.667 170.667zM512 170.667c-141.227 0-256 114.773-256 256s114.773 256 256 256c141.227 0 256-114.773 256-256s-114.773-256-256-256zM853.333 567.894v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107l141.227 141.227-141.227 141.227z" />
+<glyph unicode="&#xe6c0;" glyph-name="brightness-auto" d="M610.133 256l-29.867 85.333h-136.533l-29.867-85.333h-81.067l136.533 384h85.333l136.533-384h-81.067zM853.333 567.894v200.107h-200.107l-141.227 141.227-141.227-141.227h-200.107v-200.107l-141.227-141.227 141.227-141.227v-200.107h200.107l141.227-141.227 141.227 141.227h200.107v200.107l141.227 141.227-141.227 141.227zM462.933 398.934h98.133l-49.067 155.733-49.067-155.733z" />
+<glyph unicode="&#xe6c1;" glyph-name="brightness" d="M170.666 768h199.951l141.388 141.386 141.385-141.386h199.945v-199.945l141.389-141.388-141.389-141.385v-199.949h-199.949l-141.385-141.385-141.383 141.385h-199.951v199.949l-141.383 141.385 141.383 141.383v199.95zM512 682.667v-512c141.385 0 256 114.615 256 256s-114.615 256-256 256z" />
+<glyph unicode="&#xe6c2;" glyph-name="broom" d="M826.197 822.536l60.339-60.34-243.977-243.976c45.747-65.356 52.062-144.264 13.807-195.626l-269.775 269.773c51.364 38.254 130.272 31.939 195.629-13.808l243.977 243.976zM252.968 188.967c-85.832 85.833-138.202 188.382-152.867 283.597l208.379 89.304 317.388-317.388-89.306-208.38c-95.215 14.665-197.763 67.034-283.596 152.866z" />
+<glyph unicode="&#xe6c3;" glyph-name="brush" d="M883.627 741.12l-57.173 57.173c-16.64 16.64-43.52 16.64-60.16 0l-382.293-382.293 117.333-117.333 382.293 382.293c16.64 16.64 16.64 43.52 0 60.16zM298.667 341.334c-70.827 0-128-57.173-128-128 0-55.893-49.493-85.333-85.333-85.333 39.253-52.053 106.24-85.333 170.667-85.333 94.293 0 170.667 76.373 170.667 170.667 0 70.827-57.173 128-128 128z" />
+<glyph unicode="&#xe6c4;" glyph-name="bug" d="M597.333 426.667h-170.667v85.333h170.667zM597.333 256h-170.667v85.333h170.667zM853.333 597.334h-119.893c-19.2 33.28-45.653 61.867-77.653 83.627l69.547 69.547-60.16 60.16-92.587-92.587c-19.627 4.693-39.68 7.253-60.587 7.253s-40.96-2.56-60.16-7.253l-93.013 92.587-60.16-60.16 69.12-69.547c-31.573-21.76-58.027-50.347-77.227-83.627h-119.893v-85.333h89.173c-2.133-14.080-3.84-28.16-3.84-42.667v-42.667h-85.333v-85.333h85.333v-42.667c0-14.507 1.707-28.587 3.84-42.667h-89.173v-85.333h119.893c44.373-76.373 126.72-128 221.44-128s177.067 51.627 221.44 128h119.893v85.333h-89.173c2.133 14.080 3.84 28.16 3.84 42.667v42.667h85.333v85.333h-85.333v42.667c0 14.507-1.707 28.587-3.84 42.667h89.173v85.333z" />
+<glyph unicode="&#xe6c5;" glyph-name="bulletin-board" d="M513.664 832.001l-107.141-106.667h213.334l-106.193 106.667zM170.667 640v-554.667h682.667v554.667h-682.667zM512 938.667l213.333-213.333h128c46.933 0 85.333-38.4 85.333-85.333v-554.667c0-46.933-38.4-85.333-85.333-85.333h-682.667c-46.933 0-85.333 38.4-85.333 85.333v554.667c0 46.933 38.4 85.333 85.333 85.333h128l213.333 213.333zM298.662 170.667v170.667h213.333v-170.667h-213.333zM597.329 213.334v298.667h170.667v-298.667h-170.667zM255.996 426.667v128h213.333v-128h-213.333z" />
+<glyph unicode="&#xe6c6;" glyph-name="bullhorn" d="M682.667 426.667v-170.667c0-23.565-19.102-42.667-42.667-42.667-7.113 0-14.221 0-40.294 21.333-26.078 21.333-71.113 64-117.333 85.333-42.641 19.682-86.292 21.205-130.019 21.325l51.523-141.559 1.457-7.765c0-11.78-9.551-21.333-21.333-21.333h-85.333c-9.393 0-17.368 6.071-20.216 14.502l-56.839 156.164h-8.278c-23.564 0-42.667 19.102-42.667 42.667-47.128 0-85.333 38.204-85.333 85.333 0 47.128 38.205 85.333 85.333 85.333 0 23.564 19.102 42.667 42.667 42.667h128c47.407 0 94.814 0 141.039 21.333 46.221 21.333 91.255 64 117.333 85.333 26.074 21.333 33.182 21.333 40.294 21.333 23.565 0 42.667-19.102 42.667-42.667v-170.666c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667zM896 469.334c0-58.91-23.881-112.243-62.485-150.848l-60.339 60.339c23.164 23.164 37.491 55.164 37.491 90.509s-14.327 67.346-37.491 90.509l60.339 60.34c38.605-38.606 62.485-91.939 62.485-150.849z" />
+<glyph unicode="&#xe6c7;" glyph-name="bus" d="M767.974 469.415h-512v213.335h512zM703.974 213.415c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.371 0 64-28.672 64-64s-28.629-64-64-64zM319.974 213.415c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.371 0 64-28.672 64-64s-28.629-64-64-64zM170.641 256.081c0-37.76 16.64-71.339 42.667-94.763v-75.904c0-23.552 19.115-42.667 42.667-42.667h42.667c23.595 0 42.667 19.115 42.667 42.667v42.667h341.334v-42.667c0-23.552 19.072-42.667 42.667-42.667h42.667c23.552 0 42.667 19.115 42.667 42.667v75.904c26.027 23.424 42.667 57.003 42.667 94.763v426.668c0 149.333-152.832 170.667-341.333 170.667s-341.334-21.333-341.334-170.667v-426.668z" />
+<glyph unicode="&#xe6c8;" glyph-name="cake-variant" d="M895.974 42.748v170.667c0 47.147-38.187 85.333-85.333 85.333h-42.667v128c0 47.147-38.187 85.335-85.333 85.335h-128v85.333h-85.333v-85.333h-128.001c-47.147 0-85.333-38.188-85.333-85.335v-128h-42.667c-47.147 0-85.333-38.187-85.333-85.333v-170.667h-85.333v-85.333h938.667v85.333zM511.974 640.083c47.147 0 85.333 38.23 85.333 85.333 0 16.043-4.437 31.104-12.16 43.904l-73.173 126.763-73.173-126.763c-7.723-12.8-12.161-27.861-12.161-43.904 0-47.104 38.188-85.333 85.334-85.333z" />
+<glyph unicode="&#xe6c9;" glyph-name="cake" d="M490.667 917.334c21.333-10.667 64-80.872 64-128s-28.655-64-64-64c-35.345 0-64 6.205-64 53.333s42.667 74.667 64 138.667zM789.333 554.667c106.039 0 192-85.961 192-192 0-66.569-33.877-125.227-85.333-159.667v-245.666h-768v245.666c-51.455 34.441-85.333 93.099-85.333 159.667 0 106.039 85.961 192 192 192h192v128h128v-128h234.667zM512 256c58.91 0 106.667 47.757 106.667 106.667h64c0-58.91 47.757-106.667 106.667-106.667s106.667 47.757 106.667 106.667c0 58.91-47.757 106.667-106.667 106.667h-554.667c-58.91 0-106.667-47.757-106.667-106.667s47.756-106.667 106.667-106.667c58.91 0 106.667 47.757 106.667 106.667h64c0-58.91 47.757-106.667 106.667-106.667z" />
+<glyph unicode="&#xe6ca;" glyph-name="calculator" d="M298.666 853.333h426.667c47.13 0 85.333-38.205 85.333-85.333v-682.666c0-47.13-38.204-85.333-85.333-85.333h-426.667c-47.128 0-85.333 38.204-85.333 85.333v682.666c0 47.128 38.205 85.333 85.333 85.333zM298.666 767.999v-170.667h426.667v170.667h-426.667zM298.666 512v-85.333h85.333v85.333h-85.333zM469.333 512v-85.333h85.333v85.333h-85.333zM640 512v-85.333h85.333v85.333h-85.333zM298.666 341.334v-85.333h85.334v85.333h-85.334zM469.333 341.334v-85.333h85.333v85.333h-85.333zM640 341.334v-85.333h85.333v85.333h-85.333zM298.667 170.667v-85.333h85.333v85.333h-85.333zM469.333 170.667v-85.333h85.333v85.333h-85.333zM640 170.667v-85.333h85.333v85.333h-85.333z" />
+<glyph unicode="&#xe6cb;" glyph-name="calendar-blank" d="M810.641 128.081h-597.333v469.335h597.333zM682.641 896.082v-85.334h-341.335v85.334h-85.333v-85.334h-42.667c-47.189 0-84.907-38.186-84.907-85.333l-0.426-597.334c0-47.104 38.144-85.333 85.333-85.333h597.335c47.061 0 85.333 38.229 85.333 85.333v597.334c0 47.147-38.272 85.333-85.333 85.333h-42.667v85.334z" />
+<glyph unicode="&#xe6cc;" glyph-name="calendar-check-multiple" d="M896 213.334v384h-597.333v-384h597.333zM896 810.667c46.933 0 85.333-38.4 85.333-85.333v-512c0-46.933-38.4-85.333-85.333-85.333h-597.333c-47.36 0-85.333 38.4-85.333 85.333l0.427 512c0 46.933 37.547 85.333 84.907 85.333h42.667v85.333h85.333v-85.333h341.334v85.333h85.333v-85.333h42.667zM747.947 466.774l-189.44-189.44-114.347 114.347 45.227 45.227 69.12-69.12 144.213 144.213 45.227-45.227zM128 42.667h597.333v-85.333h-597.333c-47.36 0-85.333 38.4-85.333 85.333l0.427 512h84.907v-512z" />
+<glyph unicode="&#xe6cd;" glyph-name="calendar-check" d="M810.667 128h-597.333v469.333h597.333zM810.667 810.667h-42.667v85.333h-85.333v-85.333h-341.333v85.333h-85.333v-85.333h-42.667c-47.36 0-84.907-38.4-84.907-85.333l-0.427-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM705.28 466.774l-45.227 45.227-208.213-208.213-90.453 90.453-45.227-45.227 135.68-135.68 253.44 253.44z" />
+<glyph unicode="&#xe6ce;" glyph-name="calendar-clock" d="M640 384h64v-120.448l104.030-60.062-32-55.424-136.030 78.537v157.397zM810.641 597.416h-597.333v-469.335h199.395c-18.405 38.775-28.702 82.146-28.702 127.919 0 164.949 133.717 298.667 298.667 298.667 45.798 0 89.186-10.308 127.974-28.73v71.479zM213.306 42.748c-47.189 0-85.333 38.229-85.333 85.333l0.427 597.334c0 47.147 37.717 85.333 84.906 85.333h42.667v85.333h85.333v-85.333h341.335v85.333h85.333v-85.333h42.667c47.061 0 85.333-38.186 85.333-85.333v-260.366c52.8-53.871 85.359-127.659 85.359-209.050 0-164.949-133.717-298.667-298.667-298.667-81.421 0-155.23 32.58-209.105 85.414h-260.256zM682.667 462.767c-114.197 0-206.771-92.574-206.771-206.767 0-114.197 92.574-206.771 206.771-206.771s206.771 92.574 206.771 206.771c0 114.193-92.574 206.767-206.771 206.767z" />
+<glyph unicode="&#xe6cf;" glyph-name="calendar-multiple" d="M896 213.334v384h-597.333v-384h597.333zM896 810.666c46.933 0 85.333-38.4 85.333-85.333v-511.999c0-46.933-38.4-85.333-85.333-85.333h-597.334c-47.36 0-85.333 38.4-85.333 85.333l0.427 511.999c0 46.934 37.546 85.333 84.906 85.333h42.667v85.333h85.333v-85.333h341.334v85.333h85.333v-85.333h42.667zM128 42.667h597.333v-85.333h-597.333c-47.36 0-85.333 38.4-85.333 85.333l0.427 512h84.907v-512zM810.667 298.667h-170.667v170.667h170.667v-170.667z" />
+<glyph unicode="&#xe6d0;" glyph-name="calendar-plus" d="M810.641 128.081l-0.004 512h-597.334l0.005-512h597.333zM682.641 896.082h85.333v-85.333h42.667c47.061 0 85.333-38.186 85.333-85.333v-597.334c0-47.104-38.272-85.333-85.333-85.333h-597.335c-47.189 0-85.333 38.229-85.333 85.333l0.427 597.334c0 47.147 37.717 85.333 84.906 85.333h42.667v85.333h85.333v-85.333h341.335v85.333zM469.333 554.667h85.333v-128h128v-85.333h-128v-128h-85.333v128h-128v85.333h128v128z" />
+<glyph unicode="&#xe6d1;" glyph-name="calendar-remove" d="M810.667 128h-597.333v469.333h597.333zM810.667 810.667h-42.667v85.333h-85.333v-85.333h-341.333v85.333h-85.333v-85.333h-42.667c-47.36 0-84.907-38.4-84.907-85.333l-0.427-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM397.227 213.334l104.107 104.107 104.107-104.107 45.227 45.227-104.107 104.107 104.107 104.107-45.227 45.227-104.107-104.107-104.107 104.107-45.227-45.227 104.107-104.107-104.107-104.107 45.227-45.227z" />
+<glyph unicode="&#xe6d2;" glyph-name="calendar-select" d="M469.333 426.667h256v-256h-256v256zM213.333 768h42.667v85.333h85.333v-85.333h341.333v85.333h85.333v-85.333h42.667c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM213.333 554.667v-469.333h597.333v469.333h-597.333zM554.667 341.334v-85.333h85.333v85.333h-85.333z" />
+<glyph unicode="&#xe6d3;" glyph-name="calendar-text" d="M597.333 341.334h-298.667v-85.333h298.667zM810.667 128h-597.333v469.333h597.333zM810.667 810.667h-42.667v85.333h-85.333v-85.333h-341.333v85.333h-85.333v-85.333h-42.667c-47.36 0-84.907-38.4-84.907-85.333l-0.427-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM725.333 512h-426.667v-85.333h426.667v85.333z" />
+<glyph unicode="&#xe6d4;" glyph-name="calendar-today" d="M298.667 512h213.333v-213.333h-213.333zM810.667 128h-597.333v469.333h597.333zM810.667 810.667h-42.667v85.333h-85.333v-85.333h-341.333v85.333h-85.333v-85.333h-42.667c-47.36 0-84.907-38.4-84.907-85.333l-0.427-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe6d5;" glyph-name="calendar" d="M810.641 128.081h-597.333v469.335h597.333zM682.641 896.083v-85.333h-341.333v85.333h-85.333v-85.333h-42.667c-47.189 0-84.907-38.186-84.907-85.333l-0.426-597.335c0-47.104 38.144-85.333 85.333-85.333h597.333c47.061 0 85.333 38.229 85.333 85.333v597.335c0 47.147-38.272 85.333-85.333 85.333h-42.667v85.333zM725.308 426.748h-213.333v-213.333h213.333v213.333z" />
+<glyph unicode="&#xe6d6;" glyph-name="camcorder-box-off" d="M256 597.334h31.018l310.315-310.315v-31.019h-341.333zM96.982 896.001l-54.315-54.315 85.461-85.461c-25.471-14.763-42.794-41.984-42.794-73.557v-512c0-47.104 38.229-85.333 85.333-85.333h628.352l85.333-85.333 54.315 54.315zM853.333 768.001h-519.765l170.667-170.667h93.099v-93.099l24.149-24.107 146.517 117.206v-263.766l169.941-169.941c0.213 2.347 0.725 4.651 0.725 7.040v512c0 47.102-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe6d7;" glyph-name="camcorder-box" d="M767.974 256.086l-170.667 136.533v-136.533h-341.332v341.331h341.332v-136.535l170.667 136.535zM853.308 768.084h-682.665c-47.104 0-85.333-38.229-85.333-85.333v-511.998c0-47.108 38.229-85.333 85.333-85.333h682.665c47.104 0 85.333 38.225 85.333 85.333v511.998c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe6d8;" glyph-name="camcorder-off" d="M139.617 853.417l-54.315-54.315 116.395-116.352h-31.061c-23.552 0-42.667-19.114-42.667-42.667v-426.665c0-23.552 19.115-42.667 42.667-42.667h512.002c8.747 0 16.469 3.285 23.211 7.804l135.851-135.804 54.272 54.315zM895.97 661.417l-170.667-170.665v149.331c0 23.552-19.115 42.667-42.667 42.667h-263.724l477.058-477.058v455.725z" />
+<glyph unicode="&#xe6d9;" glyph-name="camcorder" d="M725.333 490.667v149.332c0 23.552-19.115 42.667-42.667 42.667h-512c-23.552 0-42.667-19.115-42.667-42.667v-426.665c0-23.552 19.114-42.667 42.667-42.667h512c23.552 0 42.667 19.115 42.667 42.667v149.333l170.667-170.667v469.332l-170.667-170.665z" />
+<glyph unicode="&#xe6da;" glyph-name="camera-front-variant" d="M256 938.667h512c47.13 0 85.333-38.205 85.333-85.333v-853.333c0-47.13-38.204-85.333-85.333-85.333h-512c-47.128 0-85.333 38.204-85.333 85.333v853.333c0 47.128 38.205 85.333 85.333 85.333zM512 682.667c70.694 0 128-57.308 128-128 0-70.694-57.306-128-128-128s-128 57.306-128 128c0 70.692 57.306 128 128 128zM469.333 895.999v-85.333h85.333v85.333h-85.333zM256 768v-533.333c0 58.91 114.615 106.667 256 106.667s256-47.757 256-106.667v533.333h-512zM554.667 170.667h-170.667v-85.333h170.667v-85.333l128 128-128 128v-85.333z" />
+<glyph unicode="&#xe6db;" glyph-name="camera-front" d="M298.667 853.334h426.667v-448c0 71.253-142.080 106.667-213.333 106.667s-213.333-35.413-213.333-106.667zM725.333 938.667h-426.667c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM512 597.334c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333c-46.933 0-84.907-38.4-84.907-85.333s37.973-85.333 84.907-85.333zM597.333 85.334v-85.333h213.333v85.333zM426.667 85.334h-213.333v-85.333h213.333v-85.333l128 128-128 128v-85.333z" />
+<glyph unicode="&#xe6dc;" glyph-name="camera-iris" d="M585.869 298.748l-166.443-288.299c29.824-6.613 60.715-10.368 92.544-10.368 102.315 0 196.139 36.096 269.653 96.128l-156.331 270.805zM104.887 298.748c39.211-124.757 134.315-224.384 255.829-270.549l156.203 270.549zM364.173 426.748l-166.315 288.044c-69.675-75.947-112.555-176.853-112.555-288.044 0-29.227 2.987-57.771 8.576-85.333h319.573zM930.061 512.083h-319.573l12.331-21.335 203.264-352.043c69.675 75.947 112.555 176.853 112.555 288.043 0 29.227-2.987 57.771-8.576 85.335zM919.053 554.749c-39.211 124.758-134.315 224.384-255.787 270.55l-156.203-270.55zM401.122 490.748l203.392 352.3c-29.824 6.613-60.715 10.368-92.544 10.368-102.315 0-196.139-36.096-269.653-96.128l156.331-270.807 2.475 4.267z" />
+<glyph unicode="&#xe6dd;" glyph-name="camera-party-mode" d="M511.974 213.415c-69.547 0-130.731 33.792-169.728 85.333h169.728c70.699 0 128 57.301 128 128 0 15.061-3.072 29.269-7.851 42.667h88.875c2.816-13.781 4.309-28.032 4.309-42.667 0-117.803-95.531-213.333-213.333-213.333zM511.974 640.083c69.547 0 130.731-33.792 169.728-85.333h-169.728c-70.699 0-128-57.303-128-128.001 0-15.061 3.072-29.269 7.85-42.667h-88.874c-2.816 13.781-4.31 28.032-4.31 42.667 0 117.804 95.531 213.335 213.334 213.335zM853.308 768.083h-135.339l-77.995 85.333h-256l-77.995-85.333h-135.339c-47.104 0-85.333-38.186-85.333-85.333v-512.001c0-47.083 38.229-85.333 85.333-85.333h682.667c47.104 0 85.333 38.251 85.333 85.333v512.001c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe6de;" glyph-name="camera-rear-variant" d="M256 938.667h512c47.13 0 85.333-38.205 85.333-85.333v-853.333c0-47.13-38.204-85.333-85.333-85.333h-512c-47.128 0-85.333 38.204-85.333 85.333v853.333c0 47.128 38.205 85.333 85.333 85.333zM512 853.333c-47.13 0-85.333-38.205-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333zM554.667 170.667h-170.667v-85.333h170.667v-85.333l128 128-128 128v-85.333z" />
+<glyph unicode="&#xe6df;" glyph-name="camera-rear" d="M512 682.667c-47.36 0-85.333 38.4-85.333 85.333s37.973 85.333 84.907 85.333c46.933 0 85.333-38.4 85.333-85.333 0.427-46.933-37.973-85.333-84.907-85.333zM725.333 938.667h-426.667c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h426.667c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM597.333 85.334v-85.333h213.333v85.333zM426.667 85.334h-213.333v-85.333h213.333v-85.333l128 128-128 128v-85.333z" />
+<glyph unicode="&#xe6e0;" glyph-name="camera-switch" d="M639.974 277.415v106.667h-255.999v-106.667l-149.333 149.333 149.333 149.335v-106.668h255.999v106.668l149.333-149.335zM853.308 768.083h-135.339l-77.995 85.333h-255.999l-77.995-85.333h-135.339c-47.104 0-85.333-38.229-85.333-85.333v-512.001c0-47.147 38.229-85.333 85.333-85.333h682.665c47.104 0 85.333 38.187 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe6e1;" glyph-name="camera-timer" d="M210.615 667.896c-16.663 16.662-16.663 43.677 0 60.34s43.677 16.663 60.34 0l301.7-241.357c33.323-33.327 33.323-87.356 0-120.683-33.327-33.323-87.356-33.323-120.683 0l-241.357 301.7zM511.974 85.415c188.501 0 341.333 152.789 341.333 341.333 0 94.237-38.178 179.553-99.908 241.318l60.331 60.33c77.18-77.207 124.911-183.851 124.911-301.648 0-235.648-191.019-426.667-426.667-426.667-235.622 0-426.623 190.976-426.667 426.586h85.333c0.044-188.506 152.859-341.252 341.334-341.252zM512 896c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.205-85.333 85.333s38.204 85.333 85.333 85.333z" />
+<glyph unicode="&#xe6e2;" glyph-name="camera" d="M170.667 767.999l128 0.001 85.333 85.333h256l85.333-85.333 128-0.001c47.125 0 85.333-38.205 85.333-85.333v-511.999c0-47.13-38.208-85.333-85.333-85.333h-682.667c-47.128 0-85.333 38.204-85.333 85.333v511.999c0 47.128 38.205 85.333 85.333 85.333zM512 640c-117.821 0-213.333-95.513-213.333-213.333s95.513-213.333 213.333-213.333c117.82 0 213.333 95.514 213.333 213.333s-95.514 213.333-213.333 213.333zM512 554.667c70.69 0 128-57.31 128-128 0-70.694-57.31-128-128-128-70.694 0-128 57.306-128 128 0 70.69 57.306 128 128 128z" />
+<glyph unicode="&#xe6e3;" glyph-name="cancel" d="M512 853.334c235.639 0 426.667-191.025 426.667-426.667 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667 0 235.641 191.025 426.667 426.667 426.667zM361.15 637.856l-60.34-60.34 150.85-150.849-150.85-150.848 60.34-60.339 150.85 150.848 150.848-150.852 60.339 60.343-150.848 150.848 150.848 150.849-60.339 60.34-150.848-150.85-150.85 150.85z" />
+<glyph unicode="&#xe6e4;" glyph-name="candycane" d="M426.667 512c0-47.13-38.205-85.333-85.333-85.333s-85.333 38.204-85.333 85.333v85.333c0 26.714 4.092 52.472 11.683 76.683l158.984-158.984v-3.032zM512 853.333c31.424 0 61.53-5.662 89.344-16.023l-90.662-154.654c-35.2-0.533-65.229-22.376-77.76-53.199l-123.898 123.897c46.804 60.8 120.314 99.978 202.977 99.978zM757.726 669.362l-160.393-160.396v88.367c0 16.012-4.412 30.993-12.083 43.796l89.954 153.443c38.822-32.158 67.994-75.558 82.522-125.21zM768 380.34l-170.667-170.667v178.615l170.667 170.667v-178.616zM768 85.334c0-47.13-38.204-85.333-85.333-85.333s-85.333 38.204-85.333 85.333v3.661l170.667 170.667v-174.327z" />
+<glyph unicode="&#xe6e5;" glyph-name="car-wash" d="M213.308 384.081l64 192.001h469.333l64-192.001zM746.641 170.748c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.371 0 64-28.672 64-64s-28.629-64-64-64zM277.308 170.748c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.371 0 64-28.672 64-64s-28.629-64-64-64zM807.185 596.947c-8.661 25.131-32.512 43.136-60.544 43.136h-469.333c-28.032 0-51.84-18.005-60.501-43.136l-88.832-255.532v-341.333c0-23.552 19.115-42.667 42.667-42.667h42.667c23.595 0 42.667 19.115 42.667 42.667v42.667h512v-42.667c0-23.552 19.115-42.667 42.667-42.667h42.667c23.595 0 42.667 19.115 42.667 42.667v341.333zM298.641 725.416c35.371 0 64 28.63 64 64 0 42.667-64 115.2-64 115.2s-64-72.533-64-115.2c0-35.37 28.629-64 64-64zM511.974 725.416c35.371 0 64 28.63 64 64 0 42.667-64 115.2-64 115.2s-64-72.533-64-115.2c0-35.37 28.629-64 64-64zM725.308 725.416c35.371 0 64 28.63 64 64 0 42.667-64 115.2-64 115.2s-64-72.533-64-115.2c0-35.37 28.629-64 64-64z" />
+<glyph unicode="&#xe6e6;" glyph-name="car" d="M213.308 469.415l64 192.001h469.333l64-192.001zM746.641 256.081c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.371 0 64-28.672 64-64s-28.629-64-64-64zM277.308 256.081c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.371 0 64-28.672 64-64s-28.629-64-64-64zM807.185 682.28c-8.661 25.131-32.512 43.136-60.544 43.136h-469.333c-28.032 0-51.84-18.005-60.501-43.136l-88.832-255.532v-341.333c0-23.552 19.115-42.667 42.667-42.667h42.667c23.595 0 42.667 19.115 42.667 42.667v42.667h512v-42.667c0-23.552 19.115-42.667 42.667-42.667h42.667c23.595 0 42.667 19.115 42.667 42.667v341.333l-88.789 255.532z" />
+<glyph unicode="&#xe6e7;" glyph-name="carrot" d="M682.667 512l-8.533-42.667h-98.133c-11.78 0-21.333-9.553-21.333-21.333s9.553-21.333 21.333-21.333h89.6l-42.667-213.333h-89.6c-11.78 0-21.333-9.553-21.333-21.333s9.553-21.333 21.333-21.333h81.067l-17.067-85.333c0-47.13-38.204-85.333-85.333-85.333s-85.333 38.204-85.333 85.333l-42.667 213.333h64c11.78 0 21.333 9.553 21.333 21.333s-9.553 21.333-21.333 21.333h-72.533l-34.133 170.667c0 51.078 39.891 95.168 97.583 115.703l-59.193 85.816c-13.379 19.398-8.5 45.968 10.897 59.348s45.966 8.5 59.346-10.897l19.366-28.076v76.774c0 23.564 19.102 42.667 42.667 42.667s42.667-19.103 42.667-42.667v-97.469l63.031 74.348c15.236 17.974 42.159 20.192 60.134 4.954s20.19-42.162 4.954-60.136l-90.901-107.223c54.003-21.492 90.782-64.095 90.782-113.14z" />
+<glyph unicode="&#xe6e8;" glyph-name="cart-outline" d="M725.308 170.748c47.104 0 85.333-38.187 85.333-85.333s-38.229-85.333-85.333-85.333c-47.147 0-84.907 38.187-84.907 85.333s37.76 85.333 84.907 85.333zM42.641 853.416h139.35l40.404-85.333h630.913c23.552 0 42.667-19.072 42.667-42.667 0-7.467-1.92-14.507-5.291-20.565l-152.576-276.866c-14.592-26.197-42.539-43.904-74.624-43.904h-317.824l-38.272-69.504-1.365-5.163c0-5.931 4.778-10.667 10.667-10.667h493.952v-85.333h-512c-47.147 0-85.333 38.187-85.333 85.333 0 14.848 3.798 28.843 10.453 41.003l57.672 104.619-153.458 323.713h-85.333v85.333zM298.641 170.748c47.104 0 85.333-38.187 85.333-85.333s-38.229-85.333-85.333-85.333c-47.147 0-84.907 38.187-84.907 85.333s37.76 85.333 84.907 85.333zM682.667 469.334l118.519 213.333h-539.26l100.741-213.333h320z" />
+<glyph unicode="&#xe6e9;" glyph-name="cart" d="M725.308 170.748c-47.147 0-84.907-38.187-84.907-85.333s37.76-85.333 84.907-85.333c47.104 0 85.333 38.187 85.333 85.333s-38.229 85.333-85.333 85.333zM42.641 853.416v-85.333h85.333l153.458-323.713-57.672-104.619c-6.656-12.16-10.453-26.155-10.453-41.003 0-47.147 38.187-85.333 85.333-85.333h512v85.333h-493.952c-5.888 0-10.667 4.736-10.667 10.667 0 1.877 0.512 3.669 1.365 5.163l38.272 69.504h317.824c32.085 0 60.032 17.707 74.624 43.904l152.576 276.866c3.371 6.059 5.291 13.098 5.291 20.565 0 23.595-19.115 42.667-42.667 42.667h-630.912l-40.405 85.333zM298.641 170.748c-47.147 0-84.907-38.187-84.907-85.333s37.76-85.333 84.907-85.333c47.104 0 85.333 38.187 85.333 85.333s-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe6ea;" glyph-name="cash-100" d="M85.333 725.334h853.333v-640h-853.333v640zM853.333 170.667v469.333h-682.667v-469.333h682.667zM725.333 597.334c0-47.128 38.204-85.333 85.333-85.333v-213.333c-47.13 0-85.333-38.204-85.333-85.333h-426.667c0 47.13-38.205 85.333-85.333 85.333v213.333c47.128 0 85.333 38.205 85.333 85.333h426.667zM725.333 384v42.667c0 47.13-28.655 85.333-64 85.333s-64-38.204-64-85.333v-42.667c0-47.13 28.655-85.333 64-85.333s64 38.204 64 85.333zM661.333 469.334c11.78 0 21.333-9.553 21.333-21.333v-85.333c0-11.78-9.553-21.333-21.333-21.333-11.785 0-21.333 9.553-21.333 21.333v85.333c0 11.78 9.549 21.333 21.333 21.333zM554.667 384v42.667c0 47.13-28.655 85.333-64 85.333s-64-38.204-64-85.333v-42.667c0-47.13 28.655-85.333 64-85.333s64 38.204 64 85.333zM490.667 469.334c11.78 0 21.333-9.553 21.333-21.333v-85.333c0-11.78-9.553-21.333-21.333-21.333-11.785 0-21.333 9.553-21.333 21.333v85.333c0 11.78 9.549 21.333 21.333 21.333zM341.333 298.667h42.667v213.333h-42.667l-42.667-21.333v-42.667l42.667 21.333v-170.667z" />
+<glyph unicode="&#xe6eb;" glyph-name="cash-multiple" d="M213.333 682.667h768v-512h-768v512zM597.333 554.667c70.69 0 128-57.309 128-128 0-70.694-57.31-128-128-128-70.694 0-128 57.306-128 128 0 70.69 57.306 128 128 128zM384 597.334c0-47.129-38.205-85.333-85.333-85.333v-170.667c47.128 0 85.333-38.204 85.333-85.333h426.667c0 47.13 38.204 85.333 85.333 85.333v170.667c-47.13 0-85.333 38.205-85.333 85.333h-426.667zM42.667 512h85.333v-426.667h682.667v-85.333h-768v512z" />
+<glyph unicode="&#xe6ec;" glyph-name="cash-usd" d="M853.308 170.748h-682.667v512.001h682.667zM853.308 768.083h-682.667c-47.189 0-84.916-38.187-84.916-85.333l-0.417-512.001c0-47.147 38.144-85.333 85.333-85.333h682.667c47.147 0 85.333 38.187 85.333 85.333v512.001c0 47.147-38.187 85.333-85.333 85.333zM469.308 213.415h85.333v42.667h42.667c23.552 0 42.667 19.115 42.667 42.667v128c0 23.552-19.115 42.667-42.667 42.667h-128v42.668h170.667v85.333h-85.333v42.667h-85.333v-42.667h-42.667c-23.552 0-42.667-19.114-42.667-42.667v-128.001c0-23.552 19.115-42.667 42.667-42.667h128v-42.667h-170.667v-85.333h85.333v-42.667z" />
+<glyph unicode="&#xe6ed;" glyph-name="cash" d="M128 682.667h768v-512h-768v512zM512 554.667c70.69 0 128-57.309 128-128 0-70.694-57.31-128-128-128-70.694 0-128 57.306-128 128 0 70.69 57.306 128 128 128zM298.667 597.333c0-47.128-38.205-85.333-85.333-85.333v-170.667c47.128 0 85.333-38.204 85.333-85.333h426.667c0 47.13 38.204 85.333 85.333 85.333v170.667c-47.13 0-85.333 38.205-85.333 85.332h-426.667z" />
+<glyph unicode="&#xe6ee;" glyph-name="cast-connected" d="M895.974 810.749h-768c-47.147 0-85.333-38.229-85.333-85.333v-128h85.333v128h768v-597.335h-298.667v-85.333h298.667c47.083 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.251 85.333-85.333 85.333zM42.641 512.083v-85.335c212.096 0 384-171.904 384-384h85.333c0 259.2-210.176 469.335-469.333 469.335zM810.641 640.083h-597.333v-69.717c168.96-54.613 302.336-187.991 356.949-356.951h240.384zM42.641 341.415v-85.333c117.845 0 213.333-95.488 213.333-213.333h85.333c0 164.949-133.75 298.667-298.667 298.667zM42.641 170.748v-128h128c0 70.656-57.333 128-128 128z" />
+<glyph unicode="&#xe6ef;" glyph-name="cast" d="M42.64 512.083v-85.335c212.096 0 384-171.904 384-384h85.334c0 259.2-210.177 469.335-469.334 469.335zM42.64 341.415v-85.333c117.845 0 213.333-95.488 213.333-213.333h85.333c0 164.949-133.76 298.667-298.667 298.667zM42.64 170.748v-128h128c0 70.656-57.344 128-128 128zM895.974 810.749h-768.001c-47.147 0-85.333-38.229-85.333-85.333v-128h85.333v128h768.001v-597.335h-298.667v-85.333h298.667c47.083 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.251 85.333-85.333 85.333z" />
+<glyph unicode="&#xe6f0;" glyph-name="castle" d="M85.333 384h85.333v-85.333h85.333v85.333h85.333v-85.333h85.333v85.333h85.333v-85.333h85.333v213.333l128 128v256h85.333l170.667-85.333-170.667-85.333v-85.333l128-128v-512h-469.333v128c0 47.13-38.204 85.333-85.333 85.333-47.128 0-85.333-38.204-85.333-85.333v-128h-213.333v384zM768 512c-23.565 0-42.667-22.925-42.667-51.2v-76.8h85.333v76.8c0 28.275-19.102 51.2-42.667 51.2z" />
+<glyph unicode="&#xe6f1;" glyph-name="cat" d="M512 597.334l-56.802-3.823c-36.691 43.53-139.278 153.156-241.865 153.156 0 0-84.11-126.165-1.815-294.993-23.406-35.183-37.724-53.615-40.396-95.881l-82.955-12.373 9.021-41.707 75.294 10.837 5.913-30.174-67.080-40.213 20.172-37.833 61.594 37.948c49.077-104.247 173.357-156.945 318.918-156.945s269.841 52.698 318.916 156.945l61.594-37.948 20.173 37.833-67.081 40.213 5.914 30.174 75.294-10.837 9.024 41.707-82.957 12.373c-2.671 42.266-16.99 60.698-40.397 95.881 82.295 168.827-1.813 294.993-1.813 294.993-102.588 0-205.175-109.626-241.865-153.156l-56.802 3.823zM384 469.334c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667zM640 469.334c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667zM469.333 341.334h85.333l-29.76-59.516c7.398-27.174 32.247-47.151 61.76-47.151 35.345 0 64 28.655 64 64h21.333c0-47.13-38.204-85.333-85.333-85.333-31.872 0-59.665 17.476-74.317 43.366l-0.35-0.7-0.35 0.7c-14.652-25.89-42.445-43.366-74.317-43.366-47.128 0-85.333 38.204-85.333 85.333h21.333c0-35.345 28.654-64 64-64 29.513 0 54.362 19.977 61.76 47.151l-29.76 59.516z" />
+<glyph unicode="&#xe6f2;" glyph-name="cellphone-android" d="M735.974 170.748h-448v597.335h448zM597.308 42.748h-170.667v42.667h170.667zM682.641 896.083h-341.333c-70.699 0-128-57.301-128-128v-682.668c0-70.699 57.301-128 128-128h341.333c70.699 0 128 57.301 128 128v682.668c0 70.7-57.301 128-128 128z" />
+<glyph unicode="&#xe6f3;" glyph-name="cellphone-dock" d="M682.641 298.748h-341.333v426.668h341.333zM682.641 895.656l-341.333 0.427c-47.147 0-85.333-38.229-85.333-85.333v-597.335c0-47.104 38.187-85.333 85.333-85.333h341.333c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.229 84.906-85.333 84.906zM341.308-42.585h341.333v85.333h-341.333v-85.333z" />
+<glyph unicode="&#xe6f4;" glyph-name="cellphone-iphone" d="M682.641 170.748h-384v597.335h384zM490.641 0.081c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.328 0 64-28.672 64-64s-28.672-64-64-64zM661.308 896.083h-341.334c-58.923 0-106.667-47.744-106.667-106.667v-725.335c0-58.923 47.744-106.667 106.667-106.667h341.334c58.923 0 106.667 47.744 106.667 106.667v725.335c0 58.923-47.744 106.667-106.667 106.667z" />
+<glyph unicode="&#xe6f5;" glyph-name="cellphone-link-off" d="M981.333 597.334h-256c-23.467 0-42.667-19.2-42.667-42.667v-178.347l85.333-85.333v221.013h170.667v-298.667h-93.013l128-128h7.68c23.467 0 42.667 19.2 42.667 42.667v426.667c0 23.467-19.2 42.667-42.667 42.667zM170.667 671.147l457.813-457.813h-457.813v457.813zM81.92 868.267l-54.187-54.187 77.653-77.653c-12.373-14.507-20.053-33.28-20.053-53.76v-469.333h-85.333v-128h756.48l100.267-100.267 54.187 54.187-829.013 829.013zM938.667 682.667v85.333h-647.68l85.333-85.333h562.347z" />
+<glyph unicode="&#xe6f6;" glyph-name="cellphone-link" d="M938.667 213.334h-170.667v298.667h170.667zM981.333 597.334h-256c-23.467 0-42.667-19.2-42.667-42.667v-426.667c0-23.467 19.2-42.667 42.667-42.667h256c23.467 0 42.667 19.2 42.667 42.667v426.667c0 23.467-19.2 42.667-42.667 42.667zM170.667 682.667h768v85.333h-768c-46.933 0-85.333-38.4-85.333-85.333v-469.333h-85.333v-128h597.333v128h-426.667v469.333z" />
+<glyph unicode="&#xe6f7;" glyph-name="cellphone-settings" d="M682.667 256h-341.333v512h341.333zM682.667 938.24l-341.333 0.427c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h341.333c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 84.907-85.333 84.907zM640-85.333h85.333v85.333h-85.333zM469.333-85.333h85.333v85.333h-85.333zM298.667-85.333h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe6f8;" glyph-name="cellphone" d="M725.308 128.081h-426.667v597.335h426.667zM725.308 895.656l-426.667 0.427c-47.147 0-85.333-38.229-85.333-85.333v-768.001c0-47.104 38.186-85.333 85.333-85.333h426.667c47.104 0 85.333 38.229 85.333 85.333v768.001c0 47.104-38.229 84.906-85.333 84.906z" />
+<glyph unicode="&#xe6f9;" glyph-name="chair-school" d="M938.667 725.334v-85.333h-212.954l-148.322-213.333h105.276v-85.333h-65.57l158.118-341.333h-94.042l-39.531 85.333h-369.251l-44.093-85.333h-96.052l176.374 341.333h-9.953c-19.163 0-35.376 12.634-40.763 30.029l-135.532 403.515 40.446 13.585c22.338 7.503 46.528-4.524 54.031-26.861l112.497-334.934h186.781l148.322 213.333h-152.448v85.333h426.667zM404.672 341.334l-88.187-170.667h285.627l-79.057 170.667h-118.383z" />
+<glyph unicode="&#xe6fa;" glyph-name="chart-arc" d="M690.18 102.43l-85.628 148.314c41.993 30.985 70.908 78.673 76.941 133.257h171.221c-6.827-117.713-69.798-220.365-162.534-281.57zM554.667 638.828v171.222c183.305-10.633 330.082-157.41 340.715-340.716h-171.221c-9.839 88.994-80.499 159.657-169.493 169.494zM298.667 405.334c0-27.366 5.725-53.397 16.044-76.954l-148.314-85.632c-24.567 48.905-38.397 104.128-38.397 162.586 0 193.134 150.968 351.007 341.333 362.050v-171.222c-95.999-10.612-170.667-91.999-170.667-190.828zM490.667 42.667c-126.588 0-238.027 64.858-302.903 163.153l148.311 85.628c34.963-47.381 91.189-78.114 154.592-78.114 27.366 0 53.393 5.726 76.954 16.043l85.632-148.314c-48.905-24.567-104.128-38.396-162.586-38.396z" />
+<glyph unicode="&#xe6fb;" glyph-name="chart-areaspline" d="M744.661 290.808l194.005 336.023v-584.164h-853.333v768h85.333v-534.865l234.461 406.1 277.841-160.411 180.608 312.826 73.903-42.667-223.279-386.726-277.841 160.41-252.493-437.334h96.533l187.319 322.701 276.941-159.893z" />
+<glyph unicode="&#xe6fc;" glyph-name="chart-bar" d="M938.667 42.667h-853.333v768h85.333v-682.667h85.333v384h170.667v-384h85.333v554.667h170.667v-554.667h85.333v213.333h170.667v-298.667z" />
+<glyph unicode="&#xe6fd;" glyph-name="chart-histogram" d="M128 810.667h85.333v-426.667h170.667v256h170.667v-170.667h170.667v-170.667h170.667v-256h-768v768z" />
+<glyph unicode="&#xe6fe;" glyph-name="chart-line" d="M682.97 436.156l180.608 312.828 73.903-42.667-223.279-386.726-277.841 160.41-203.226-352h705.532v-85.333h-853.333v768h85.333v-620.198l234.462 406.1 277.841-160.412z" />
+<glyph unicode="&#xe6ff;" glyph-name="chart-pie" d="M896 469.334h-341.333v341.333c188.514 0 341.333-152.82 341.333-341.333zM810.667 384c0-118.69-60.578-223.232-152.508-284.39l-164.194 284.39h316.702zM469.333 42.667c-118.691 0-223.232 60.578-284.391 152.508l276.583 159.684 159.701-276.617c-45.743-22.771-97.323-35.575-151.893-35.575zM128 384c0 188.513 152.82 341.333 341.333 341.333v-316.702l-305.757-176.529c-22.77 45.747-35.576 97.327-35.576 151.898z" />
+<glyph unicode="&#xe700;" glyph-name="check-all" d="M17.642 366.422l238.337-238.336 60.33 60.331-238.336 238.336zM949.013 700.414l-451.669-451.667-178.005 178.005-60.331-60.331 238.336-238.336 512 511.998zM767.979 640.084l-60.331 60.331-270.635-270.637 60.331-60.331 270.635 270.637z" />
+<glyph unicode="&#xe701;" glyph-name="check-bookmark" d="M213.333 895.998h597.334c47.125 0 85.333-38.205 85.333-85.333v-554.664c0-30.327-15.821-56.96-39.663-72.094l-344.337-226.573-344.369 226.59c-23.822 15.138-39.63 41.762-39.63 72.077l-0.001 554.664c0 47.128 38.205 85.333 85.333 85.333zM426.667 256l384 384-60.339 60.34-323.661-323.661-152.994 152.995-60.34-60.34 213.333-213.333z" />
+<glyph unicode="&#xe702;" glyph-name="check-circle" d="M469.333 256l-192 192 60.34 60.339 131.66-131.661 366.327 366.328 60.339-60.34-426.667-426.667zM512 853.333c57.843 0 112.994-11.51 163.294-32.364l-66.799-66.8c-30.596 9.001-62.985 13.831-96.495 13.831-188.513 0-341.333-152.82-341.333-341.333s152.82-341.333 341.333-341.333 341.333 152.819 341.333 341.333h85.333c0-235.644-191.027-426.667-426.667-426.667-235.642 0-426.667 191.023-426.667 426.667 0 235.641 191.025 426.666 426.667 426.666z" />
+<glyph unicode="&#xe703;" glyph-name="check" d="M896 640l-512-512-234.667 234.667 60.34 60.339 174.327-174.327 451.661 451.661 60.339-60.34z" />
+<glyph unicode="&#xe704;" glyph-name="checkbox-blank-circle-outline" d="M511.974 85.415c-188.502 0-341.334 152.832-341.334 341.333 0 188.503 152.832 341.335 341.334 341.335s341.333-152.832 341.333-341.335c0-188.501-152.832-341.333-341.333-341.333zM511.974 853.416c-235.649 0-426.667-191.019-426.667-426.668 0-235.648 191.018-426.667 426.667-426.667s426.667 191.019 426.667 426.667c0 235.649-191.019 426.668-426.667 426.668z" />
+<glyph unicode="&#xe705;" glyph-name="checkbox-blank-circle" d="M511.974 853.416c-235.648 0-426.667-191.019-426.667-426.668 0-235.648 191.019-426.667 426.667-426.667 235.605 0 426.667 191.019 426.667 426.667s-191.061 426.668-426.667 426.668z" />
+<glyph unicode="&#xe706;" glyph-name="checkbox-blank-outline" d="M810.641 810.749h-597.334c-47.147 0-85.333-38.187-85.333-85.333v-597.335c0-47.147 38.187-85.333 85.333-85.333h597.334c47.104 0 85.333 38.187 85.333 85.333v597.335c0 47.147-38.229 85.333-85.333 85.333zM810.641 725.416v-597.335l-597.334-0.043v597.377h597.334z" />
+<glyph unicode="&#xe707;" glyph-name="checkbox-blank" d="M810.641 810.749h-597.333c-47.147 0-84.907-38.187-84.907-85.333l-0.426-597.335c0-47.147 38.187-85.333 85.333-85.333h597.333c47.104 0 85.333 38.187 85.333 85.333v597.335c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe708;" glyph-name="checkbox-marked-circle-outline" d="M853.308 426.748c0-188.501-152.832-341.333-341.333-341.333s-341.334 152.832-341.334 341.333c0 188.503 152.832 341.335 341.334 341.335 32.597 0 64.043-4.864 93.909-13.397l67.072 67.072c-49.707 20.284-103.979 31.659-160.981 31.659-235.649 0-426.667-191.019-426.667-426.668s191.018-426.667 426.667-426.667 426.667 191.019 426.667 426.667zM337.638 508.412l-60.331-60.331 192-192 426.667 426.668-60.331 60.331-366.336-366.337-131.67 131.669z" />
+<glyph unicode="&#xe709;" glyph-name="checkbox-marked-circle" d="M426.641 213.415l-213.333 213.333 60.331 60.331 153.003-153.003 323.67 323.671 60.331-60.331zM511.974 853.416c-235.648 0-426.667-191.019-426.667-426.668 0-235.648 191.019-426.667 426.667-426.667 235.605 0 426.667 191.019 426.667 426.667s-191.061 426.668-426.667 426.668z" />
+<glyph unicode="&#xe70a;" glyph-name="checkbox-marked-outline" d="M810.641 128.081l-597.333-0.043v597.377h426.667v85.333h-426.667c-47.147 0-85.333-38.187-85.333-85.333v-597.335c0-47.147 38.187-85.333 85.333-85.333h597.333c47.104 0 85.333 38.187 85.333 85.333v341.333h-85.333zM337.638 508.412l-60.331-60.331 192-192 426.667 426.668-60.331 60.331-366.336-366.337-131.669 131.669z" />
+<glyph unicode="&#xe70b;" glyph-name="checkbox-marked" d="M426.641 213.415l-213.333 213.333 60.331 60.331 153.003-153.003 323.669 323.671 60.331-60.331zM810.641 810.749h-597.333c-47.189 0-85.333-38.187-85.333-85.333v-597.335c0-47.147 38.144-85.333 85.333-85.333h597.333c47.147 0 85.333 38.187 85.333 85.333v597.335c0 47.147-38.187 85.333-85.333 85.333z" />
+<glyph unicode="&#xe70c;" glyph-name="checkbox-multiple-blank-outline" d="M853.303 256.081l0.030 511.919-512.031 0.082 0.005-512.044 511.996 0.043zM938.637 256.081c0-47.147-38.229-85.333-85.333-85.333h-511.996c-47.147 0-85.333 38.187-85.333 85.333l-0.005 512.001c0 47.147 38.186 85.333 85.333 85.333l512.031-0.082c47.13 0 85.333-38.205 85.333-85.333l-0.030-511.919zM682.667 85.334v-85.333h-511.999c-47.147 0-85.333 38.187-85.333 85.333l-0.003 554.666h85.333l0.003-554.708 511.999 0.043z" />
+<glyph unicode="&#xe70d;" glyph-name="checkbox-multiple-blank" d="M938.637 256.081c0-47.147-38.229-85.333-85.333-85.333h-511.996c-47.147 0-85.333 38.187-85.333 85.333l-0.005 512.001c0 47.147 38.186 85.333 85.333 85.333l512.031-0.082c47.13 0 85.333-38.205 85.333-85.333l-0.030-511.919zM682.662 85.334v-85.333h-511.995c-47.147 0-85.333 38.187-85.333 85.333l-0.003 554.665h85.333l0.003-554.708 511.995 0.043z" />
+<glyph unicode="&#xe70e;" glyph-name="checkbox-multiple-marked-outline" d="M853.303 256.081l-0.004 256.001h85.333l0.004-256.001c0-47.147-38.229-85.333-85.333-85.333h-511.996c-47.147 0-85.333 38.187-85.333 85.333l-0.005 512.001c0 47.147 38.186 85.333 85.333 85.333h341.33v-85.333h-341.33l0.005-512.044 511.996 0.043zM465.638 636.413l131.669-131.67 280.994 281.003 60.331-60.33-341.325-341.334-192 192.001 60.331 60.331zM682.667 85.334v-85.333h-511.999c-47.147 0-85.333 38.187-85.333 85.333l-0.003 554.666h85.333l0.003-554.708 511.999 0.043z" />
+<glyph unicode="&#xe70f;" glyph-name="checkbox-multiple-marked" d="M938.637 256.081c0-47.147-38.229-85.333-85.333-85.333h-511.996c-47.147 0-85.333 38.187-85.333 85.333l-0.005 512.001c0 47.147 38.186 85.333 85.333 85.333l512.031-0.082c47.13 0 85.333-38.205 85.333-85.333l-0.030-511.919zM682.662 85.334v-85.333h-511.995c-47.147 0-85.333 38.187-85.333 85.333l-0.003 554.666h85.333l0.003-554.708 511.995 0.043zM554.662 341.334l298.667 298.666-60.331 60.33-238.336-238.335-131.669 131.669-60.331-60.331 192-192z" />
+<glyph unicode="&#xe710;" glyph-name="checkerboard" d="M128 810.667h768v-768h-768v768zM213.333 725.334v-298.667h298.667v-298.667h298.667v298.667h-298.667v298.667h-298.667z" />
+<glyph unicode="&#xe711;" glyph-name="chevron-double-down" d="M707.669 700.331l60.331-60.331-256-256-256 256 60.332 60.331 195.668-195.669 195.669 195.669zM707.669 444.331l60.331-60.331-256-256-256 256 60.332 60.331 195.668-195.669 195.669 195.669z" />
+<glyph unicode="&#xe712;" glyph-name="chevron-double-left" d="M785.664 622.337l-60.331 60.33-256-256 256-256 60.331 60.331-195.669 195.669 195.669 195.67zM529.664 622.337l-60.331 60.33-256-256 256-256 60.331 60.331-195.669 195.669 195.669 195.67z" />
+<glyph unicode="&#xe713;" glyph-name="chevron-double-right" d="M238.336 622.337l60.331 60.33 256-256-256-256-60.331 60.331 195.669 195.669-195.669 195.67zM494.336 622.337l60.331 60.33 256-256-256-256-60.331 60.331 195.669 195.669-195.669 195.67z" />
+<glyph unicode="&#xe714;" glyph-name="chevron-double-up" d="M316.33 153.003l-60.33 60.331 256 256 256-256-60.331-60.331-195.669 195.669-195.67-195.669zM316.33 409.003l-60.33 60.331 256 256 256-256-60.331-60.331-195.669 195.669-195.67-195.669z" />
+<glyph unicode="&#xe715;" glyph-name="chevron-down" d="M316.308 572.413l195.67-195.671 195.669 195.671 60.331-60.331-256-256.001-256.001 256.001 60.331 60.331z" />
+<glyph unicode="&#xe716;" glyph-name="chevron-left" d="M657.643 231.079l-195.669 195.669 195.669 195.671-60.331 60.331-256-256.001 256-256 60.331 60.331z" />
+<glyph unicode="&#xe717;" glyph-name="chevron-right" d="M366.305 231.083l195.671 195.669-195.671 195.67 60.331 60.331 256.001-256.001-256.001-256-60.331 60.331z" />
+<glyph unicode="&#xe718;" glyph-name="chevron-up" d="M316.31 281.084l195.669 195.669 195.669-195.669 60.331 60.331-256 256.001-256-256.001 60.331-60.331z" />
+<glyph unicode="&#xe719;" glyph-name="church" d="M469.333 853.334h85.333v-85.333h85.333v-85.333h-85.333v-145.067l384-153.6v-85.333l-85.333 34.133v-332.8h-256v213.333c0 47.13-38.204 85.333-85.333 85.333s-85.333-38.204-85.333-85.333v-213.333h-256v332.8l-85.333-34.133v85.333l384 153.6v145.067h-85.333v85.333h85.333v85.333zM256 85.334h85.333v213.333l-42.667 42.667-42.666-42.667v-213.333zM682.667 85.334h85.333v213.333l-42.667 42.667-42.667-42.667v-213.333z" />
+<glyph unicode="&#xe71a;" glyph-name="cisco-webex" d="M512 810.667c212.079 0 384-171.923 384-384 0-212.079-171.921-384-384-384-212.077 0-384 171.921-384 384 0 212.077 171.923 384 384 384zM253.439 575.982c-82.474-142.851-33.53-325.512 109.319-407.986s441.517 434.832 298.665 517.306c-142.848 82.474-325.51 33.53-407.984-109.32z" />
+<glyph unicode="&#xe71b;" glyph-name="city" d="M810.641 298.748h-85.333v85.333h85.333zM810.641 128.081h-85.333v85.333h85.333zM554.641 640.083h-85.333v85.333h85.333zM554.641 469.415h-85.333v85.335h85.333zM554.641 298.748h-85.333v85.333h85.333zM554.641 128.081h-85.333v85.333h85.333zM298.641 469.415h-85.333v85.335h85.333zM298.641 298.748h-85.333v85.333h85.333zM298.641 128.081h-85.333v85.333h85.333zM639.974 469.415v256.001l-128 128-128-128v-85.333h-256v-597.335h768v426.667h-256z" />
+<glyph unicode="&#xe71c;" glyph-name="clapperboard" d="M938.662 768l-0.009-597.337c0-47.125-38.204-85.333-85.333-85.333h-682.667c-47.129 0-85.333 38.208-85.333 85.333v511.999c0 47.128 38.205 85.333 85.333 85.333h31.248l123.163-213.325h128l-123.163 213.325h85.335l123.162-213.324h128l-123.162 213.324h85.333l123.162-213.325h128l-123.162 213.325 182.093 0.005z" />
+<glyph unicode="&#xe71d;" glyph-name="clipboard-account" d="M768 128h-512v59.733c0 85.333 170.667 132.267 256 132.267s256-46.933 256-132.267zM512 640c70.827 0 128-57.173 128-128s-57.173-128-128-128c-70.827 0-128 57.173-128 128s57.173 128 128 128zM512 810.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM810.667 810.667h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe71e;" glyph-name="clipboard-alert" d="M512 725.334c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM554.667 341.334h-85.333v256h85.333zM554.667 170.667h-85.333v85.333h85.333zM810.667 810.667h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe71f;" glyph-name="clipboard-arrow-down" d="M512 170.667l-213.333 213.333h128v170.667h170.667v-170.667h128zM512 810.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM810.667 810.667h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe720;" glyph-name="clipboard-arrow-left" d="M682.667 298.667h-170.667v-128l-213.333 213.333 213.333 213.333v-128h170.667zM512 810.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM810.667 810.667h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe721;" glyph-name="clipboard-check" d="M426.667 213.334l-170.667 170.667 60.16 60.16 110.507-110.080 281.173 281.173 60.16-60.587zM512 810.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM810.667 810.667h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe722;" glyph-name="clipboard-outline" d="M298.674 597.338v85.332h-85.335v-554.67h597.332v554.67h-85.329v-85.332h-426.668zM384.006 768.002c0 70.692 57.304 128.001 127.999 128.001 70.69 0 128-57.309 128-128.001l170.654-0.005c47.13 0 85.333-38.205 85.333-85.332v-554.664c0-47.13-38.204-85.333-85.333-85.333h-597.325c-47.128 0-85.333 38.204-85.333 85.333v554.664c0 47.127 38.205 85.332 85.333 85.332l170.672 0.005zM512.004 810.67c-23.565 0-42.667-19.101-42.667-42.667 0-23.564 19.102-42.667 42.667-42.667s42.667 19.103 42.667 42.667c0 23.566-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xe723;" glyph-name="clipboard-text" d="M725.333 554.667h-426.667v85.333h426.667zM725.333 384h-426.667v85.333h426.667zM597.333 213.334h-298.667v85.333h298.667zM512 810.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM810.667 810.667h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe724;" glyph-name="clipboard" d="M384.006 768.002c0 70.692 57.304 128.001 127.999 128.001 70.69 0 128-57.309 128-128.001l170.654-0.005c47.13 0 85.333-38.205 85.333-85.332v-554.664c0-47.13-38.204-85.333-85.333-85.333h-597.325c-47.128 0-85.333 38.204-85.333 85.333v554.664c0 47.127 38.205 85.332 85.333 85.332l170.672 0.005zM512.004 810.67c-23.569 0-42.667-19.101-42.667-42.668 0-23.564 19.102-42.666 42.667-42.666 23.561 0 42.667 19.103 42.667 42.666 0 23.566-19.102 42.668-42.667 42.668z" />
+<glyph unicode="&#xe725;" glyph-name="clippy" d="M640 277.334c0-58.91-47.757-106.667-106.667-106.667s-106.667 47.757-106.667 106.667v74.667c0 17.673 14.327 32 32 32s32-14.327 32-32v-74.667c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v154.189c-37.286 11.716-64 43.324-64 80.478 0 47.128 42.978 85.333 96 85.333 53.018 0 96-38.205 96-85.333 0-37.154-26.714-68.766-64-80.478v-154.189zM352 597.332c53.019 0 96-38.205 96-85.332 0-37.154-26.714-68.766-64.001-80.478v-228.855c0-76.582 62.085-138.667 138.667-138.667s138.667 62.084 138.667 138.667v149.333c0 17.673 14.327 32 32 32s32-14.327 32-32v-149.333c0-111.932-90.739-202.667-202.667-202.667-111.93 0-202.667 90.735-202.667 202.667v228.855c-37.286 11.712-64 43.324-64 80.478 0 47.127 42.98 85.332 96 85.332zM429.069 677.195l-18.158-62.262c-17.313 9.156-37.439 14.4-58.912 14.4-38.873 0-73.331-17.186-94.682-43.655l-51.188 38.391c26.999 34.348 67.368 58.822 113.87 66.615v2.649c0 88.366 71.635 160 160 160 88.367 0 160-71.634 160-160v-2.649c46.502-7.793 86.869-32.268 113.869-66.615l-51.187-38.391c-21.35 26.47-55.808 43.655-94.682 43.655-21.474 0-41.6-5.244-58.91-14.399l-18.163 62.261c14.123 6.25 29.244 10.836 45.073 13.489v2.649c0 53.019-42.982 96-96 96s-96-42.981-96-96v-2.649c15.83-2.653 30.948-7.238 45.069-13.489zM608 544c-23.565 0-42.667-14.327-42.667-32s19.102-32 42.667-32c23.565 0 42.667 14.327 42.667 32s-19.102 32-42.667 32zM352 544c-23.564 0-42.667-14.327-42.667-32s19.102-32 42.667-32c23.564 0 42.667 14.327 42.667 32s-19.103 32-42.667 32z" />
+<glyph unicode="&#xe726;" glyph-name="clock-fast" d="M640 768c188.514 0 341.333-152.82 341.333-341.333s-152.819-341.333-341.333-341.333c-188.514 0-341.333 152.819-341.333 341.333s152.819 341.333 341.333 341.333zM640 682.667c-141.385 0-256-114.615-256-256s114.615-256 256-256c141.385 0 256 114.615 256 256s-114.615 256-256 256zM597.333 597.333h64v-161.356l99.46-99.46-45.257-45.257-118.204 118.208v187.865zM85.333 170.667c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667h163.503c13.31-30.464 30.075-59.072 49.8-85.333h-213.302zM128 384c-23.564 0-42.666 19.102-42.666 42.667s19.102 42.667 42.666 42.667h87.44l-2.106-42.667 2.107-42.667h-87.441zM170.666 597.332c-23.564 0-42.667 19.103-42.667 42.667s19.103 42.667 42.667 42.667l127.968 0.001c-19.724-26.26-36.489-54.869-49.799-85.334h-78.169z" />
+<glyph unicode="&#xe727;" glyph-name="clock" d="M511.974 85.419c188.587 0 341.333 152.828 341.333 341.333 0 188.501-152.747 341.331-341.333 341.331s-341.334-152.83-341.334-341.331c0-188.506 152.747-341.333 341.334-341.333zM511.761 853.413c235.776 0 426.88-191.017 426.88-426.665 0-235.652-191.104-426.667-426.88-426.667-235.821 0-426.455 191.014-426.455 426.667 0 235.648 190.634 426.665 426.455 426.665zM533.308 640.080v-223.999l192-113.882-32.128-52.523-223.872 134.404v255.999h64z" />
+<glyph unicode="&#xe728;" glyph-name="close-circle-outline" d="M512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333c188.16 0 341.333-153.173 341.333-341.333s-153.173-341.333-341.333-341.333zM512 853.334c-235.947 0-426.667-190.72-426.667-426.667s190.72-426.667 426.667-426.667c235.947 0 426.667 190.72 426.667 426.667s-190.72 426.667-426.667 426.667zM622.507 597.334l-110.507-110.507-110.507 110.507-60.16-60.16 110.507-110.507-110.507-110.507 60.16-60.16 110.507 110.507 110.507-110.507 60.16 60.16-110.507 110.507 110.507 110.507-60.16 60.16z" />
+<glyph unicode="&#xe729;" glyph-name="close-circle" d="M512 853.334c235.947 0 426.667-190.72 426.667-426.667s-190.72-426.667-426.667-426.667c-235.947 0-426.667 190.72-426.667 426.667s190.72 426.667 426.667 426.667zM665.173 639.999l-153.173-153.172-153.174 153.172-60.16-60.16 153.174-153.172-153.174-153.173 60.16-60.16 153.174 153.173 153.173-153.173 60.16 60.16-153.173 153.173 153.173 153.172-60.16 60.16z" />
+<glyph unicode="&#xe72a;" glyph-name="close-network" d="M622.306 682.667l-110.306-110.306-110.307 110.306-60.36-60.32 110.327-110.326-110.327-110.327 60.319-60.361 110.348 110.349 110.349-110.349 60.318 60.361-110.327 110.327 110.327 110.327-60.361 60.319zM725.333 810.667c47.061 0 85.333-38.229 85.333-85.333v-426.666c0-47.104-38.272-85.333-85.333-85.333h-170.667v-85.333h42.667c23.565 0 42.667-19.102 42.667-42.667h298.667v-85.333h-298.667c0-23.565-19.102-42.667-42.667-42.667h-170.667c-23.564 0-42.667 19.102-42.667 42.667h-298.667v85.333h298.667c0 23.565 19.103 42.667 42.667 42.667h42.667v85.333h-170.667c-47.189 0-85.333 38.229-85.333 85.333v426.666c0 47.104 38.144 85.333 85.333 85.333h426.667z" />
+<glyph unicode="&#xe72b;" glyph-name="close" d="M810.667 665.174l-60.16 60.16-238.507-238.507-238.507 238.507-60.16-60.16 238.507-238.507-238.507-238.507 60.16-60.16 238.507 238.507 238.507-238.507 60.16 60.16-238.507 238.507 238.507 238.507z" />
+<glyph unicode="&#xe72c;" glyph-name="closed-caption" d="M767.974 469.419h-64v21.333h-85.333v-128h85.333v21.333h64v-42.667c0-23.552-19.072-42.667-42.667-42.667h-128c-23.595 0-42.667 19.115-42.667 42.667v170.665c0 23.552 19.072 42.667 42.667 42.667h128c23.595 0 42.667-19.114 42.667-42.667zM469.308 469.419h-64.001v21.333h-85.333v-128h85.333v21.333h64.001v-42.667c0-23.552-19.072-42.667-42.668-42.667h-128c-23.595 0-42.667 19.115-42.667 42.667v170.665c0 23.552 19.072 42.667 42.667 42.667h128c23.596 0 42.668-19.114 42.668-42.667zM810.641 768.084h-597.334c-47.147 0-85.333-38.229-85.333-85.333v-511.998c0-47.108 38.187-85.333 85.333-85.333h597.334c47.083 0 85.333 38.225 85.333 85.333v511.998c0 47.104-38.251 85.333-85.333 85.333z" />
+<glyph unicode="&#xe72d;" glyph-name="cloud-check" d="M426.654 213.415l-149.333 149.333 60.331 60.331 89.003-89.003 220.843 220.844 60.331-60.332zM825.801 510.545c-29.056 146.817-158.464 257.537-313.813 257.537-123.392 0-230.272-69.931-283.691-172.203-128.341-13.823-228.309-122.412-228.309-254.465 0-141.397 114.603-256 256-256h554.667c117.803 0 213.333 95.488 213.333 213.333 0 112.64-87.595 203.904-198.187 211.797z" />
+<glyph unicode="&#xe72e;" glyph-name="cloud-circle" d="M703.974 256.081h-362.667c-70.699 0-128 57.301-128 128s57.301 128.001 128 128.001c2.005 0 3.883-0.513 5.845-0.599 18.816 73.815 85.163 128.599 164.821 128.599 94.251 0 170.667-76.415 170.667-170.668h21.333c58.923 0 106.667-47.744 106.667-106.667s-47.744-106.667-106.667-106.667zM511.974 853.416c-235.648 0-426.667-191.018-426.667-426.668 0-235.648 191.019-426.667 426.667-426.667s426.667 191.019 426.667 426.667c0 235.65-191.019 426.668-426.667 426.668z" />
+<glyph unicode="&#xe72f;" glyph-name="cloud-download" d="M725.321 384.081l-213.333-213.333-213.333 213.333h128v170.668h170.667v-170.668zM825.801 510.545c-29.056 146.817-158.464 257.537-313.813 257.537-123.392 0-230.272-69.931-283.691-172.203-128.341-13.823-228.309-122.412-228.309-254.465 0-141.397 114.603-256 256-256h554.667c117.803 0 213.333 95.488 213.333 213.333 0 112.64-87.595 203.904-198.187 211.797z" />
+<glyph unicode="&#xe730;" glyph-name="cloud-outline-off" d="M329.666 512.083l341.331-341.335h-415.017c-94.251 0-170.667 76.416-170.667 170.667s76.416 170.668 170.667 170.668zM127.981 713.768l117.333-116.906c-136.192-5.845-245.333-117.804-245.333-255.447 0-141.397 114.645-256 256-256h500.35l85.333-85.333 54.315 54.272-713.684 713.729zM825.792 510.545c-29.056 146.817-158.464 257.537-313.813 257.537-63.019 0-121.598-18.517-171.091-50.005l62.379-62.379c32.51 17.109 69.417 27.051 108.713 27.051 129.621 0 234.667-105.045 234.667-234.668v-21.333h64c70.699 0 128-57.301 128-128 0-48.341-27.136-89.941-66.688-111.701l61.914-61.952c54.396 38.656 90.108 101.845 90.108 173.653 0 112.64-87.552 203.904-198.187 211.797z" />
+<glyph unicode="&#xe731;" glyph-name="cloud-outline" d="M810.654 170.748h-554.667c-94.25 0-170.667 76.416-170.667 170.667s76.416 170.668 170.667 170.668h30.379c27.904 98.432 118.23 170.667 225.621 170.667 129.579 0 234.667-105.045 234.667-234.668v-21.333h64c70.699 0 128-57.301 128-128s-57.301-128-128-128zM825.801 510.545c-29.056 146.817-158.464 257.537-313.813 257.537-123.392 0-230.272-69.931-283.691-172.203-128.341-13.823-228.309-122.412-228.309-254.465 0-141.397 114.602-256 256-256h554.667c117.803 0 213.333 95.488 213.333 213.333 0 112.64-87.595 203.904-198.187 211.797z" />
+<glyph unicode="&#xe732;" glyph-name="cloud-upload" d="M597.321 384.081v-170.667h-170.666v170.667h-128l213.333 213.335 213.333-213.335zM825.801 510.545c-29.056 146.817-158.464 257.537-313.813 257.537-123.392 0-230.272-69.931-283.691-172.203-128.341-13.823-228.309-122.412-228.309-254.465 0-141.397 114.603-256 256-256h554.667c117.803 0 213.333 95.488 213.333 213.333 0 112.64-87.595 203.904-198.187 211.797z" />
+<glyph unicode="&#xe733;" glyph-name="cloud" d="M825.801 510.554c-29.065 146.818-158.464 257.538-313.813 257.538-123.393 0-230.273-69.931-283.709-172.246-128.324-13.781-228.292-122.412-228.292-254.423 0-141.397 114.603-256 256-256h554.668c117.803 0 213.333 95.488 213.333 213.333 0 112.64-87.595 203.904-198.187 211.797z" />
+<glyph unicode="&#xe734;" glyph-name="code-array" d="M127.974 725.334c0 47.104 38.144 85.333 85.333 85.333h597.333c47.083 0 85.333-38.229 85.333-85.333v-597.333c0-47.104-38.251-85.333-85.333-85.333h-597.333c-47.189 0-85.333 38.229-85.333 85.333v597.333zM256 682.667v-512h170.667v85.333h-85.333v341.333h85.333v85.333h-170.667zM682.667 256h-85.333v-85.333h170.667v512h-170.667v-85.333h85.333v-341.333z" />
+<glyph unicode="&#xe735;" glyph-name="code-braces" d="M341.333 810.667c-47.128 0-85.333-38.203-85.333-85.333v-170.667c0-47.13-38.205-85.333-85.333-85.333h-42.667v-85.333h42.667c47.128 0 85.333-38.204 85.333-85.333v-170.667c0-47.13 39.612-73.903 85.333-85.333h85.333v85.333h-85.333v213.333c0 47.13-38.205 85.333-85.333 85.333 47.128 0 85.333 38.204 85.333 85.333v213.333h85.333v85.333zM682.667 810.667c47.13 0 85.333-38.203 85.333-85.333v-170.667c0-47.13 38.204-85.333 85.333-85.333h42.667v-85.333h-42.667c-47.13 0-85.333-38.204-85.333-85.333v-170.667c0-47.13-39.612-73.903-85.333-85.333h-85.333v85.333h85.333v213.333c0 47.13 38.204 85.333 85.333 85.333-47.13 0-85.333 38.204-85.333 85.333v213.333h-85.333v85.333h85.333z" />
+<glyph unicode="&#xe736;" glyph-name="code-equal" d="M256 383.915h213.333v-85.333h-213.333zM554.667 384h213.333v-85.333h-213.333zM554.667 554.584h213.333v-85.335h-213.333zM256 554.584h213.333v-85.335h-213.333zM213.333 810.667c-47.189 0-85.333-38.229-85.333-85.333v-597.333c0-47.104 38.144-85.333 85.333-85.333h597.333c47.061 0 85.333 38.229 85.333 85.333v597.333c0 47.104-38.272 85.333-85.333 85.333h-597.333z" />
+<glyph unicode="&#xe737;" glyph-name="code-greater-than-or-equal" d="M554.667 384h213.333v-85.333h-213.333zM554.667 554.584h213.333v-85.335h-213.333zM294.75 622.667l196.169-196.085-196.169-196.083-60.333 60.335 135.833 135.748-135.833 135.752zM213.333 810.667c-47.189 0-85.333-38.229-85.333-85.333v-597.333c0-47.104 38.144-85.333 85.333-85.333h597.333c47.061 0 85.333 38.229 85.333 85.333v597.333c0 47.104-38.272 85.333-85.333 85.333h-597.333z" />
+<glyph unicode="&#xe738;" glyph-name="code-greater-than" d="M444.083 622.667l196.169-196.085-196.169-196.083-60.335 60.335 135.834 135.748-135.834 135.752zM213.333 810.667c-47.189 0-85.333-38.229-85.333-85.333v-597.333c0-47.104 38.144-85.333 85.333-85.333h597.333c47.061 0 85.333 38.229 85.333 85.333v597.333c0 47.104-38.272 85.333-85.333 85.333h-597.333z" />
+<glyph unicode="&#xe739;" glyph-name="code-less-than-or-equal" d="M554.667 384h213.333v-85.333h-213.333zM554.667 554.584h213.333v-85.335h-213.333zM430.583 622.667l60.335-60.333-135.835-135.752 135.835-135.748-60.335-60.335-196.167 196.083zM213.333 810.667c-47.189 0-85.333-38.229-85.333-85.333v-597.333c0-47.104 38.144-85.333 85.333-85.333h597.333c47.061 0 85.333 38.229 85.333 85.333v597.333c0 47.104-38.272 85.333-85.333 85.333h-597.333z" />
+<glyph unicode="&#xe73a;" glyph-name="code-less-than" d="M579.917 622.667l-196.167-196.085 196.167-196.083 60.335 60.335-135.834 135.748 135.834 135.752zM810.667 810.667c47.189 0 85.333-38.229 85.333-85.333v-597.333c0-47.104-38.144-85.333-85.333-85.333h-597.333c-47.061 0-85.333 38.229-85.333 85.333v597.333c0 47.104 38.272 85.333 85.333 85.333h597.333z" />
+<glyph unicode="&#xe73b;" glyph-name="code-not-equal-variant" d="M469.333 661.25v-120.667l-114.001-114.002 114.001-113.997v-120.67l-234.667 234.667zM554.667 664.25l237.666-237.669-237.666-237.666v120.67l117.001 116.996-117.001 117.002zM213.333 810.667c-47.189 0-85.333-38.229-85.333-85.333v-597.333c0-47.104 38.144-85.333 85.333-85.333h597.333c47.061 0 85.333 38.229 85.333 85.333v597.333c0 47.104-38.272 85.333-85.333 85.333h-597.333z" />
+<glyph unicode="&#xe73c;" glyph-name="code-not-equal" d="M256 298.582h85.333v-85.333h-85.333zM469.333 384h298.667v-85.333h-298.667zM469.333 554.584h298.667v-85.335h-298.667zM256 639.917h85.333v-256.002h-85.333zM213.333 810.667c-47.189 0-85.333-38.229-85.333-85.333v-597.333c0-47.104 38.144-85.333 85.333-85.333h597.333c47.061 0 85.333 38.229 85.333 85.333v597.333c0 47.104-38.272 85.333-85.333 85.333h-597.333z" />
+<glyph unicode="&#xe73d;" glyph-name="code-string" d="M128 725.334c0 47.104 38.144 85.333 85.333 85.333h597.333c47.083 0 85.333-38.229 85.333-85.333v-597.333c0-47.104-38.251-85.333-85.333-85.333h-597.333c-47.189 0-85.333 38.229-85.333 85.333v597.333zM533.333 469.334h-42.667c-35.345 0-64 28.655-64 64s28.655 64 64 64h42.667c35.345 0 64-28.654 64-64h85.333c0 82.474-66.859 149.333-149.333 149.333h-42.667c-82.474 0-149.332-66.859-149.332-149.333s66.859-149.334 149.332-149.334h42.667c35.345 0 64-28.651 64-64 0-35.345-28.655-64-64-64h-42.667c-35.345 0-64 28.655-64 64h-85.332c0-82.475 66.859-149.333 149.332-149.333h42.667c82.475 0 149.333 66.859 149.333 149.333s-66.859 149.333-149.333 149.333z" />
+<glyph unicode="&#xe73e;" glyph-name="code-tags" d="M622.933 230.4l196.267 196.267-196.267 196.267 59.733 59.733 256-256-256-256-59.733 59.733zM401.067 230.4l-196.267 196.267 196.267 196.267-59.733 59.733-256-256 256-256 59.733 59.733z" />
+<glyph unicode="&#xe73f;" glyph-name="codepen" d="M829.995 371.448l-82.56 55.228 82.56 55.223zM545.003 137.349v153.924l143.074 95.689 115.494-77.244zM512.004 348.6l-116.726 78.076 116.726 78.071 116.715-78.071zM478.997 137.349l-258.572 172.369 115.505 77.244 143.067-95.689zM194.005 481.899l82.567-55.223-82.567-55.228zM478.997 716.001v-153.926l-143.067-95.707-115.505 77.265zM545.003 716.001l258.569-172.367-115.494-77.265-143.074 95.707zM895.706 547.976c-0.073 0.485-0.192 0.948-0.273 1.433-0.162 0.932-0.333 1.862-0.576 2.769-0.141 0.545-0.346 1.070-0.512 1.594-0.265 0.81-0.529 1.618-0.853 2.404-0.222 0.545-0.482 1.091-0.734 1.615-0.346 0.75-0.708 1.478-1.122 2.182-0.303 0.527-0.627 1.033-0.939 1.536-0.444 0.689-0.9 1.356-1.399 2.002-0.358 0.485-0.742 0.969-1.126 1.435-0.525 0.604-1.071 1.21-1.647 1.777-0.431 0.442-0.862 0.887-1.314 1.292-0.606 0.545-1.229 1.072-1.869 1.576-0.491 0.384-0.981 0.768-1.493 1.131-0.192 0.122-0.363 0.283-0.546 0.405l-350.997 233.998c-11.085 7.392-25.523 7.392-36.612 0l-350.996-233.998c-0.183-0.122-0.355-0.283-0.545-0.405-0.516-0.363-1.001-0.747-1.486-1.131-0.646-0.503-1.274-1.030-1.867-1.576-0.466-0.405-0.89-0.85-1.324-1.292-0.574-0.567-1.12-1.173-1.636-1.777-0.394-0.466-0.778-0.951-1.141-1.435-0.485-0.646-0.951-1.313-1.385-2.002-0.334-0.503-0.646-1.009-0.948-1.536-0.405-0.704-0.768-1.432-1.123-2.182-0.252-0.524-0.514-1.070-0.736-1.615-0.323-0.786-0.585-1.594-0.85-2.404-0.172-0.524-0.363-1.049-0.514-1.594-0.244-0.908-0.405-1.838-0.577-2.769-0.079-0.485-0.201-0.948-0.262-1.433-0.193-1.414-0.302-2.849-0.302-4.303v-233.998c0-1.455 0.109-2.889 0.302-4.322 0.061-0.469 0.183-0.947 0.262-1.412 0.172-0.93 0.334-1.86 0.577-2.769 0.151-0.546 0.341-1.071 0.514-1.596 0.265-0.806 0.527-1.617 0.85-2.423 0.222-0.55 0.484-1.075 0.736-1.596 0.355-0.747 0.718-1.472 1.123-2.202 0.302-0.508 0.614-1.011 0.948-1.515 0.434-0.687 0.9-1.357 1.385-2.001 0.363-0.508 0.747-0.969 1.141-1.434 0.516-0.606 1.062-1.212 1.636-1.779 0.434-0.444 0.858-0.887 1.324-1.289 0.593-0.55 1.221-1.075 1.867-1.579 0.485-0.388 0.969-0.768 1.486-1.131 0.191-0.124 0.363-0.286 0.545-0.401l350.996-234.001c5.547-3.699 11.93-5.555 18.313-5.555 6.374 0 12.753 1.856 18.3 5.555l350.997 234.001c0.183 0.115 0.354 0.277 0.546 0.401 0.512 0.363 1.003 0.742 1.493 1.131 0.64 0.503 1.263 1.028 1.869 1.579 0.452 0.401 0.883 0.845 1.314 1.289 0.576 0.567 1.122 1.173 1.647 1.779 0.384 0.465 0.768 0.926 1.126 1.434 0.499 0.644 0.956 1.314 1.399 2.001 0.311 0.503 0.636 1.007 0.939 1.515 0.414 0.73 0.777 1.455 1.122 2.202 0.252 0.521 0.512 1.045 0.734 1.596 0.324 0.806 0.589 1.617 0.853 2.423 0.166 0.525 0.371 1.050 0.512 1.596 0.243 0.909 0.414 1.839 0.576 2.769 0.081 0.465 0.201 0.943 0.273 1.412 0.179 1.434 0.294 2.867 0.294 4.322v233.998c0 1.454-0.115 2.889-0.294 4.303z" />
+<glyph unicode="&#xe740;" glyph-name="coffee-to-go" d="M128 127.992v85.333l597.777 0.004-74.884 74.889 60.339 60.339 177.89-177.894-177.89-177.894-60.339 60.339 74.884 74.889-597.777-0.004zM725.338 597.334v128h-85.333v-128h85.333zM725.338 810.667c47.147 0 85.333-38.187 85.333-85.333v-128c0-47.147-38.187-85.333-85.333-85.333h-85.333l0.004-42.662c0-94.251-76.416-170.667-170.667-170.667l-170.67-0.004c-94.251 0-170.667 76.416-170.667 170.667l-0.005 341.328 597.338 0.005z" />
+<glyph unicode="&#xe741;" glyph-name="coffee" d="M85.308 42.748h768v85.333h-768zM853.308 597.416h-85.333v128h85.333zM853.308 810.749h-682.667v-426.668c0-94.251 76.416-170.667 170.667-170.667h256c94.251 0 170.667 76.416 170.667 170.667v128.001h85.333c47.147 0 85.333 38.187 85.333 85.333v128c0 47.147-38.187 85.333-85.333 85.333z" />
+<glyph unicode="&#xe742;" glyph-name="cog-box" d="M735.974 426.744c0-9.899-0.896-19.584-2.133-29.141l63.147-49.408c5.547-4.518 7.253-12.587 3.499-19.068l-59.733-103.424c-3.712-6.485-11.52-9.092-18.261-6.532l-74.411 29.995c-15.36-11.814-32.213-21.798-50.432-29.35l-11.179-79.147c-1.152-7.125-7.339-12.591-14.763-12.591h-119.467c-7.424 0-13.653 5.466-14.763 12.591l-11.179 79.147c-18.219 7.509-35.072 17.536-50.475 29.35l-74.367-29.995c-6.742-2.56-14.507 0.047-18.262 6.532l-59.733 103.424c-3.756 6.481-2.134 14.549 3.499 19.068l63.104 49.408c-1.238 9.557-2.091 19.243-2.091 29.141s0.853 19.588 2.091 29.146l-63.104 49.404c-5.633 4.527-7.254 12.59-3.499 19.075l59.733 103.424c3.755 6.484 11.52 9.088 18.262 6.528l74.367-29.995c15.404 11.859 32.256 21.844 50.475 29.396l11.179 79.104c1.109 7.125 7.339 12.586 14.763 12.586h119.467c7.424 0 13.611-5.461 14.763-12.586l11.179-79.104c18.219-7.552 35.072-17.578 50.475-29.396l74.368 29.995c6.741 2.56 14.549-0.044 18.261-6.528l59.733-103.424c3.755-6.484 2.048-14.548-3.499-19.075l-63.147-49.404c1.237-9.557 2.133-19.247 2.133-29.146zM810.641 810.745h-597.334c-47.147 0-85.333-38.229-85.333-85.333v-597.335c0-47.104 38.186-85.333 85.333-85.333h597.334c47.147 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.187 85.333-85.333 85.333zM511.974 512.078c-47.147 0-85.334-38.231-85.334-85.335s38.187-85.333 85.334-85.333c47.104 0 85.333 38.229 85.333 85.333s-38.229 85.335-85.333 85.335z" />
+<glyph unicode="&#xe743;" glyph-name="cog" d="M511.974 277.419c-82.475 0-149.334 66.859-149.334 149.333 0 82.47 66.859 149.331 149.334 149.331s149.333-66.861 149.333-149.331c0-82.475-66.859-149.333-149.333-149.333zM828.945 385.105c1.792 13.696 2.987 27.524 2.987 41.647 0 14.118-1.195 27.947-2.987 41.643l90.155 70.569c8.021 6.484 10.368 18.005 5.035 27.221l-85.333 147.797c-5.291 9.216-16.469 12.971-26.112 9.258l-106.197-42.794c-22.016 16.896-46.123 31.19-72.107 41.943l-16 113.065c-1.621 10.156-10.453 17.964-21.077 17.964h-170.667c-10.667 0-19.456-7.807-21.077-17.964l-16-113.023c-26.027-10.794-50.134-25.089-72.15-41.984l-106.155 42.794c-9.642 3.713-20.822-0.042-26.112-9.258l-85.333-147.797c-5.333-9.216-2.987-20.737 5.035-27.221l90.112-70.569c-1.792-13.653-2.987-27.524-2.987-41.643 0-14.123 1.195-27.994 2.987-41.647l-90.112-70.528c-8.022-6.524-10.368-18.044-5.035-27.264l85.333-147.793c5.29-9.216 16.47-12.975 26.112-9.259l106.198 42.795c22.016-16.896 46.122-31.189 72.107-41.946l16-113.062c1.621-10.159 10.41-17.963 21.077-17.963h170.667c10.624 0 19.456 7.804 21.077 17.963l16 113.062c25.941 10.795 50.048 25.050 72.064 41.984l106.24-42.833c9.643-3.716 20.821 0.043 26.112 9.259l85.333 147.793c5.333 9.22 2.987 20.74-5.035 27.264l-90.155 70.528z" />
+<glyph unicode="&#xe744;" glyph-name="coin" d="M512 853.334c235.639 0 426.667-191.025 426.667-426.667 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667 0 235.642 191.025 426.667 426.667 426.667zM512 768c-188.513 0-341.333-152.82-341.333-341.333s152.82-341.333 341.333-341.333 341.333 152.819 341.333 341.333c0 188.513-152.819 341.333-341.333 341.333zM469.333 213.334v42.667h-85.333v85.333h170.667v42.667h-128c-23.552 0-42.667 19.115-42.667 42.667v128c0 23.552 19.115 42.667 42.667 42.667h42.667v42.667h85.333v-42.667h85.333v-85.333h-170.667v-42.667h128c23.552 0 42.667-19.115 42.667-42.667v-128c0-23.552-19.115-42.667-42.667-42.667h-42.667v-42.667h-85.333z" />
+<glyph unicode="&#xe745;" glyph-name="color-helper" d="M-0.013-85.248h1024v170.667l-1023.988-0.085-0.012-170.581z" />
+<glyph unicode="&#xe746;" glyph-name="comment-account-outline" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.953-12.382-29.724-12.493l-0.053-0.060h-21.333zM426.666 256v-131.213l131.213 131.213h295.454v511.999h-682.667v-511.999h256zM682.667 341.334h-341.333v42.667c0 56.832 113.792 85.333 170.667 85.333s170.667-28.501 170.667-85.333v-42.667zM512 682.667c47.083 0 85.333-38.229 85.333-85.333 0-47.061-38.251-85.333-85.333-85.333s-85.333 38.272-85.333 85.333c0 47.104 38.251 85.333 85.333 85.333z" />
+<glyph unicode="&#xe747;" glyph-name="comment-account" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.954-12.382-29.725-12.493l-0.053-0.060h-21.333zM682.667 341.334v42.667c0 56.832-113.792 85.333-170.667 85.333s-170.667-28.501-170.667-85.333v-42.667h341.333zM512 682.667c-47.083 0-85.333-38.229-85.333-85.333 0-47.061 38.251-85.333 85.333-85.333s85.333 38.272 85.333 85.333c0 47.104-38.251 85.333-85.333 85.333z" />
+<glyph unicode="&#xe748;" glyph-name="comment-alert-outline" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.953-12.382-29.724-12.493l-0.053-0.060h-21.333zM426.666 256v-131.213l131.213 131.213h295.454v511.999h-682.667v-511.999h256zM554.667 512h-85.333v170.667h85.333v-170.667zM554.667 341.334h-85.333v85.333h85.333v-85.333z" />
+<glyph unicode="&#xe749;" glyph-name="comment-alert" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.954-12.382-29.725-12.493l-0.053-0.060h-21.333zM554.667 512v170.667h-85.333v-170.667h85.333zM554.667 341.334v85.333h-85.333v-85.333h85.333z" />
+<glyph unicode="&#xe74a;" glyph-name="comment-check-outline" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.953-12.382-29.724-12.493l-0.053-0.060h-21.333zM426.666 256v-131.213l131.213 131.213h295.454v511.999h-682.667v-511.999h256zM703.996 597.331l-234.662-234.664-149.333 149.333 60.34 60.339 88.994-88.994 174.323 174.325 60.339-60.34z" />
+<glyph unicode="&#xe74b;" glyph-name="comment-check" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.954-12.382-29.725-12.493l-0.053-0.060h-21.333zM426.667 298.667l341.333 341.333-60.169 60.583-281.165-281.17-110.507 110.080-60.16-60.16 170.667-170.667z" />
+<glyph unicode="&#xe74c;" glyph-name="comment-multipe-outline" d="M512.026-42.666c-23.565 0-42.667 19.102-42.667 42.667v128h-170.665c-47.128 0-85.333 38.204-85.333 85.333l0.401 426.748c0 47.147 37.802 85.333 84.906 85.333h597.333c47.104 0 85.333-38.186 85.333-85.333v-426.667c0-47.104-38.229-85.333-85.333-85.333l-174.737-0.068-158.123-158.127c-8.222-8.218-18.957-12.382-29.726-12.493l-0.055-0.060h-21.333zM554.692 213.334v-131.213l131.213 131.213h210.121v426.665h-597.332v-426.665h255.999zM128 298.667h-85.333v512c0 46.933 38.4 85.333 85.333 85.333h682.666v-85.333h-682.666v-512z" />
+<glyph unicode="&#xe74d;" glyph-name="comment-outline" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.953-12.382-29.724-12.493l-0.053-0.060h-21.333zM426.666 256v-131.213l131.213 131.213h295.454v511.999h-682.667v-511.999h256z" />
+<glyph unicode="&#xe74e;" glyph-name="comment-plus-outline" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.953-12.382-29.724-12.493l-0.053-0.060h-21.333zM426.666 256v-131.213l131.213 131.213h295.454v511.999h-682.667v-511.999h256zM469.333 682.667h85.333v-128h128v-85.333h-128v-128h-85.333v128h-128v85.333h128v128z" />
+<glyph unicode="&#xe74f;" glyph-name="comment-processing-outline" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.953-12.382-29.724-12.493l-0.053-0.060h-21.333zM426.666 256v-131.213l131.213 131.213h295.454v511.999h-682.667v-511.999h256zM725.333 469.334h-85.333v85.333h85.333v-85.333zM554.667 469.334h-85.333v85.333h85.333v-85.333zM384 469.334h-85.333v85.333h85.333v-85.333z" />
+<glyph unicode="&#xe750;" glyph-name="comment-processing" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.953-12.382-29.724-12.493l-0.053-0.060h-21.333zM725.333 469.334v85.333h-85.333v-85.333h85.333zM554.667 469.334v85.333h-85.333v-85.333h85.333zM384 469.334v85.333h-85.333v-85.333h85.333z" />
+<glyph unicode="&#xe751;" glyph-name="comment-remove-outline" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.953-12.382-29.724-12.493l-0.053-0.060h-21.333zM426.666 256v-131.213l131.213 131.213h295.454v511.998h-682.667v-511.998h256zM401.672 682.667l110.328-110.327 110.327 110.327 60.339-60.34-110.327-110.327 110.327-110.327-60.339-60.339-110.327 110.327-110.327-110.327-60.34 60.339 110.327 110.327-110.327 110.325 60.338 60.341z" />
+<glyph unicode="&#xe752;" glyph-name="comment-text-outline" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.953-12.382-29.724-12.493l-0.053-0.060h-21.333zM426.666 256v-131.213l131.213 131.213h295.454v511.999h-682.667v-511.999h256zM256 640h512v-85.333h-512v85.333zM256 469.334h384v-85.333h-384v85.333z" />
+<glyph unicode="&#xe753;" glyph-name="comment-text" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.954-12.382-29.725-12.493l-0.053-0.060h-21.333zM213.334 725.333v-85.333h597.333v85.333h-597.333zM213.333 554.667v-85.333h341.333v85.333h-341.333zM213.333 384v-85.333h426.667v85.333h-426.667z" />
+<glyph unicode="&#xe754;" glyph-name="comment" d="M384-0c-23.564 0-42.667 19.102-42.667 42.667v128h-170.666c-47.128 0-85.333 38.204-85.333 85.333l0.401 512.082c0 47.147 37.802 85.333 84.906 85.333h682.667c47.104 0 85.333-38.186 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333l-260.070-0.068-158.127-158.127c-8.218-8.218-18.954-12.382-29.725-12.493l-0.053-0.060h-21.333z" />
+<glyph unicode="&#xe755;" glyph-name="compare" d="M810.641 810.749h-213.333v-85.333h213.333v-554.668l-213.333 256v-384h213.333c47.104 0 85.333 38.187 85.333 85.333v597.335c0 47.147-38.229 85.333-85.333 85.333zM426.641 170.748h-213.333l213.333 256zM426.641 810.749h-213.333c-47.147 0-85.333-38.187-85.333-85.333v-597.335c0-47.147 38.186-85.333 85.333-85.333h213.333v-85.333h85.334v938.668h-85.334v-85.333z" />
+<glyph unicode="&#xe756;" glyph-name="compass-outline" d="M298.667 213.334l136.533 290.133 290.133 136.533-136.533-290.133-290.133-136.533zM512 465.067c-21.21 0-38.4-17.19-38.4-38.4s17.19-38.4 38.4-38.4c21.21 0 38.4 17.19 38.4 38.4s-17.19 38.4-38.4 38.4zM512 853.333c235.639 0 426.667-191.025 426.667-426.666 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667 0 235.642 191.025 426.666 426.667 426.666zM512 768c-188.513 0-341.333-152.82-341.333-341.333s152.82-341.333 341.333-341.333c188.514 0 341.333 152.819 341.333 341.333s-152.819 341.333-341.333 341.333z" />
+<glyph unicode="&#xe757;" glyph-name="compass" d="M605.517 333.21l-349.526-162.479 162.432 349.571 349.568 162.43zM511.991 853.399c-235.648 0-426.667-191.018-426.667-426.668 0-235.601 191.019-426.667 426.667-426.667s426.667 191.066 426.667 426.667c0 235.65-191.019 426.668-426.667 426.668zM511.991 473.669c-25.899 0-46.933-20.992-46.933-46.938 0-25.899 21.035-46.929 46.933-46.929 25.941 0 46.933 21.030 46.933 46.929 0 25.946-20.992 46.938-46.933 46.938z" />
+<glyph unicode="&#xe758;" glyph-name="console" d="M853.291 128.081v512.001h-682.659v-512.044l682.659 0.043zM853.291 810.749c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.147-38.229-85.333-85.333-85.333h-682.661c-47.104 0-85.333 38.187-85.333 85.333v597.335c0 47.104 38.229 85.333 85.333 85.333h682.661zM554.667 213.334v85.333h213.333v-85.333h-213.333zM408.763 383.595l-171.071 171.072h120.68l140.901-140.902c16.661-16.661 16.661-43.678 0-60.339l-140.093-140.092h-120.68l170.263 170.261z" />
+<glyph unicode="&#xe759;" glyph-name="content-copy" d="M810.667 42.667h-469.333v597.333h469.333zM810.667 725.334h-469.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h469.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM682.667 896h-512c-46.933 0-85.333-38.4-85.333-85.333v-597.333h85.333v597.333h512v85.333z" />
+<glyph unicode="&#xe75a;" glyph-name="content-cut" d="M810.667 810.667l-256-256 85.333-85.333 298.667 298.667v42.667zM512 405.334c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM256 85.334c-46.933 0-85.333 37.973-85.333 85.333s38.4 85.333 85.333 85.333c46.933 0 85.333-37.973 85.333-85.333s-38.4-85.333-85.333-85.333zM256 597.334c-46.933 0-85.333 37.973-85.333 85.333s38.4 85.333 85.333 85.333c46.933 0 85.333-37.973 85.333-85.333s-38.4-85.333-85.333-85.333zM411.307 612.694c9.813 21.333 15.36 44.8 15.36 69.973 0 94.293-76.373 170.667-170.667 170.667s-170.667-76.373-170.667-170.667c0-94.293 76.373-170.667 170.667-170.667 25.173 0 48.64 5.547 69.973 15.36l100.693-100.693-100.693-100.693c-21.333 9.813-44.8 15.36-69.973 15.36-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667c94.293 0 170.667 76.373 170.667 170.667 0 25.173-5.547 48.64-15.36 69.973l100.693 100.693 298.667-298.667h128v42.667l-527.36 527.36z" />
+<glyph unicode="&#xe75b;" glyph-name="content-duplicate" d="M469.333 213.334h-298.667c-46.933 0-85.333 38.4-85.333 85.333v512c0 46.933 38.4 85.333 85.333 85.333h512v-85.333h-512v-512h298.667v85.333l170.667-128-170.667-128v85.333zM810.667 42.667v597.333h-469.333v-256h-85.333v256c0 46.933 38.4 85.333 85.333 85.333h469.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333h-469.333c-46.933 0-85.333 38.4-85.333 85.333v85.333h85.333v-85.333h469.333z" />
+<glyph unicode="&#xe75c;" glyph-name="content-paste" d="M810.667 85.334h-597.333v682.667h85.333v-128h426.667v128h85.333zM512 853.334c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM810.667 853.334h-178.347c-17.92 49.493-64.853 85.333-120.32 85.333s-102.4-35.84-120.32-85.333h-178.347c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe75d;" glyph-name="content-save-all" d="M725.333 640v170.667h-426.667v-170.667h426.667zM597.333 213.334c70.827 0 128 57.173 128 128s-57.173 128-128 128c-70.827 0-128-57.173-128-128s57.173-128 128-128zM810.667 896l170.667-170.667v-512c0-46.933-38.4-85.333-85.333-85.333h-597.333c-47.36 0-85.333 38.4-85.333 85.333v597.333c0 46.933 37.973 85.333 85.333 85.333h512zM42.668 639.999h85.333l-0.001-597.332h597.333v-85.333h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.332z" />
+<glyph unicode="&#xe75e;" glyph-name="content-save" d="M640 554.667h-426.667v170.667h426.667zM512 128c-70.827 0-128 57.173-128 128s57.173 128 128 128c70.827 0 128-57.173 128-128s-57.173-128-128-128zM725.333 810.667h-512c-47.36 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v512l-170.667 170.667z" />
+<glyph unicode="&#xe75f;" glyph-name="contrast-box" d="M725.308 277.415h-213.333v-64h213.333zM810.641 128.081l-597.334-0.043 597.334 597.377zM234.641 618.749h85.333v85.333h64v-85.333h85.334v-64h-85.334v-85.335h-64v85.335h-85.333zM810.641 810.749h-597.334c-47.147 0-85.333-38.187-85.333-85.333v-597.335c0-47.147 38.187-85.333 85.333-85.333h597.334c47.104 0 85.333 38.187 85.333 85.333v597.335c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe760;" glyph-name="contrast-circle" d="M511.97 85.415c-94.251 0-179.584 38.187-241.365 99.968l482.73 482.732c61.781-61.738 99.968-147.115 99.968-241.367 0-188.544-152.832-341.333-341.333-341.333zM255.97 597.416h85.333v85.333h64v-85.333h85.333v-64h-85.333v-85.335h-64v85.335h-85.333zM511.97 853.416c-235.648 0-426.667-191.019-426.667-426.668 0-235.648 191.019-426.667 426.667-426.667s426.667 191.019 426.667 426.667c0 235.649-191.019 426.668-426.667 426.668zM511.97 256.081h213.333v64h-213.333v-64z" />
+<glyph unicode="&#xe761;" glyph-name="contrast" d="M186.918 46.836c-25.658 8.346-45.98 28.514-54.53 54.080l705.364 705.364c25.566-8.55 45.734-28.872 54.080-54.53l-704.914-704.914zM853.329 255.996v-85.333l-298.662 0.004v85.333l298.662-0.004zM127.997 682.664l128.003 0.003-0.003 127.998h85.333l0.003-127.998 127.997-0.003v-85.332l-127.996 0.003-0.003-128.004h-85.334l0.003 128.003-128.003-0.003v85.333z" />
+<glyph unicode="&#xe762;" glyph-name="controller-xbox" d="M512 680.157c73.621 0 285.282 184.052 395.712-36.811 110.43-220.861 82.825-515.346 9.203-515.346-184.051 0-73.621 184.051-404.915 184.051s-220.863-184.051-404.915-184.051c-73.621 0-101.229 294.485 9.203 515.346 110.432 220.863 322.091 36.811 395.712 36.811zM512 618.667c-35.345 0-64-28.654-64-64s28.655-64 64-64c35.345 0 64 28.654 64 64s-28.655 64-64 64z" />
+<glyph unicode="&#xe763;" glyph-name="cow" d="M448 170.667c11.78 0 21.333-9.553 21.333-21.333s-9.553-21.333-21.333-21.333c-11.78 0-21.333 9.553-21.333 21.333s9.553 21.333 21.333 21.333zM576 170.667c11.78 0 21.333-9.553 21.333-21.333s-9.553-21.333-21.333-21.333c-11.78 0-21.333 9.553-21.333 21.333s9.553 21.333 21.333 21.333zM426.667 469.334c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667zM597.333 469.334c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667zM768 170.667c0-94.255-114.615-170.667-256-170.667s-256 76.412-256 170.667c0 38.421 19.043 73.877 51.181 102.4-32.138 42.786-51.181 95.97-51.181 153.6l5.26 51.878c-23.056-6.251-51.025-6.255-73.558 0.205-43.423 12.45-109.186 61.117-99.444 95.095s91.302 40.399 134.725 27.948c25.352-7.27 52.199-25.129 68.215-45.496l24.276 34.435c-25.766 47.011-16.809 177.269 111.191 219.936l-3.925-5.876-0.106-0.171c-11.622-18.702-42.368-78.202-10.101-141.995 30.58 12.906 64.189 20.041 99.466 20.041s68.885-7.135 99.465-20.041c32.269 63.793 1.523 123.293-10.099 141.995l-4.032 6.046c128-42.667 136.956-172.925 111.189-219.936l24.277-34.435c16.017 20.367 42.863 38.226 68.215 45.496 43.422 12.451 124.983 6.029 134.724-27.948 9.745-33.977-56.021-82.644-99.443-95.094-22.532-6.46-50.5-6.455-73.557-0.205l5.261-51.878c0-57.63-19.042-110.814-51.183-153.6 32.141-28.523 51.183-63.979 51.183-102.4zM512 256c-94.257 0-170.667-38.204-170.667-85.333s76.41-85.333 170.667-85.333c94.255 0 170.667 38.204 170.667 85.333s-76.412 85.333-170.667 85.333zM512 341.334c47.885 0 92.702-8.764 131.034-24.021 24.742 29.615 39.633 67.746 39.633 109.355 0 94.256-76.412 170.666-170.667 170.666-94.257 0-170.667-76.41-170.667-170.666 0-41.609 14.89-79.74 39.632-109.355 38.332 15.258 83.146 24.021 131.035 24.021zM601.365 804.621l-0.107 0.17z" />
+<glyph unicode="&#xe764;" glyph-name="credit-card-multiple" d="M895.953 597.375v85.333l-597.323 0.020v-85.333l597.323-0.020zM895.962 256.064l-0.013 213.299-597.324 0.021 0.016-213.299 597.321-0.021zM895.953 768.042c47.147 0 85.333-38.142 85.333-85.333l0.009-426.644c0-47.194-38.182-85.333-85.333-85.333l-597.321 0.021c-47.148 0-85.333 38.14-85.333 85.333l0.416 426.644c0 47.191 37.759 85.333 84.907 85.333l597.323-0.021zM128 85.334h640v-85.333l-639.99 0.021c-47.148 0-85.333 38.144-85.333 85.333l-0.010 469.312h85.333v-469.333z" />
+<glyph unicode="&#xe765;" glyph-name="credit-card" d="M853.308 597.417h-682.667v85.333h682.667zM853.308 170.752h-682.667v256h682.667zM853.308 768.084h-682.667c-47.147 0-84.906-38.143-84.906-85.333l-0.427-511.998c0-47.194 38.186-85.333 85.333-85.333h682.667c47.147 0 85.333 38.14 85.333 85.333v511.998c0 47.19-38.187 85.333-85.333 85.333z" />
+<glyph unicode="&#xe766;" glyph-name="crop-free" d="M810.641 810.749h-170.667v-85.333h170.667v-170.667h85.333v170.667c0 47.104-38.187 85.333-85.333 85.333zM810.641 128.081h-170.667v-85.333h170.667c47.147 0 85.333 38.187 85.333 85.333v170.667h-85.333zM213.308 298.748h-85.333v-170.667c0-47.147 38.229-85.333 85.333-85.333h170.667v85.333h-170.667zM127.974 725.416v-170.667h85.333v170.667h170.667v85.333h-170.667c-47.104 0-85.333-38.229-85.333-85.333z" />
+<glyph unicode="&#xe767;" glyph-name="crop-landscape" d="M810.641 213.415h-597.333v426.668h597.333zM810.641 725.416h-597.333c-47.104 0-85.333-38.229-85.333-85.333v-426.668c0-47.147 38.229-85.333 85.333-85.333h597.333c47.147 0 85.333 38.187 85.333 85.333v426.668c0 47.104-38.187 85.333-85.333 85.333z" />
+<glyph unicode="&#xe768;" glyph-name="crop-portrait" d="M725.308 128.081h-426.666v597.335h426.666zM725.308 810.749h-426.666c-47.104 0-85.333-38.229-85.333-85.333v-597.335c0-47.147 38.229-85.333 85.333-85.333h426.666c47.147 0 85.333 38.187 85.333 85.333v597.335c0 47.104-38.187 85.333-85.333 85.333z" />
+<glyph unicode="&#xe769;" glyph-name="crop-square" d="M767.974 170.748h-512v512.001h512zM767.974 768.083h-512c-47.104 0-85.333-38.229-85.333-85.333v-512.001c0-47.147 38.229-85.333 85.333-85.333h512c47.147 0 85.333 38.187 85.333 85.333v512.001c0 47.104-38.187 85.333-85.333 85.333z" />
+<glyph unicode="&#xe76a;" glyph-name="crop" d="M298.641 213.415v682.668h-85.333v-170.667h-170.667v-85.333h170.667v-426.668c0-47.147 38.229-85.333 85.333-85.333h426.667v-170.667h85.333v170.667h170.667v85.333zM725.308 298.748h85.333v341.335c0 47.147-38.187 85.333-85.333 85.333h-341.333v-85.333h341.333v-341.335z" />
+<glyph unicode="&#xe76b;" glyph-name="crosshairs-gps" d="M512 597.334c94.255 0 170.667-76.41 170.667-170.667 0-94.255-76.412-170.667-170.667-170.667-94.257 0-170.667 76.412-170.667 170.667 0 94.257 76.41 170.667 170.667 170.667zM130.344 384h-87.677v85.333h87.677c19.676 177.989 161.001 319.314 338.99 338.989v87.677h85.333v-87.677c177.988-19.676 319.313-161.001 338.991-338.989h87.676v-85.333h-87.676c-19.678-177.988-161.003-319.313-338.991-338.991v-87.676h-85.333v87.676c-177.989 19.678-319.314 161.003-338.99 338.991zM512 725.333c-164.949 0-298.667-133.718-298.667-298.666s133.717-298.667 298.667-298.667c164.949 0 298.667 133.717 298.667 298.667s-133.717 298.666-298.667 298.666z" />
+<glyph unicode="&#xe76c;" glyph-name="crosshairs" d="M130.344 384h-87.677v85.333h87.677c19.676 177.989 161.001 319.314 338.99 338.989v87.677h85.333v-87.677c177.988-19.676 319.313-161.001 338.991-338.989h87.676v-85.333h-87.676c-19.678-177.988-161.003-319.313-338.991-338.991v-87.676h-85.333v87.676c-177.989 19.678-319.314 161.003-338.99 338.991zM512 725.333c-164.949 0-298.667-133.718-298.667-298.666s133.717-298.667 298.667-298.667c164.949 0 298.667 133.717 298.667 298.667s-133.717 298.666-298.667 298.666z" />
+<glyph unicode="&#xe76d;" glyph-name="crown" d="M213.333 256l-85.333 469.333 234.666-298.666 149.334 298.666 149.333-298.666 234.667 298.666-85.333-469.333h-597.333zM810.667 128c0-23.565-19.102-42.667-42.667-42.667h-512c-23.564 0-42.667 19.102-42.667 42.667v42.667h597.333v-42.667z" />
+<glyph unicode="&#xe76e;" glyph-name="cube-outline" d="M896 234.667c0-16.265-9.101-30.4-22.485-37.602l-337.348-189.568c-6.869-4.727-15.194-7.497-24.166-7.497s-17.297 2.769-24.166 7.497l-337.341 189.564c-13.389 7.198-22.492 21.342-22.492 37.606v384c0 16.266 9.103 30.406 22.492 37.605l337.341 189.563c6.869 4.73 15.194 7.498 24.166 7.498s17.293-2.768 24.166-7.498l337.348-189.567c13.385-7.2 22.485-21.338 22.485-37.601v-384zM512.038 761.561l-254.279-142.894 254.279-142.895 254.217 142.895-254.217 142.894zM213.333 259.631l256-143.859v286.123l-256 143.855v-286.118zM810.667 259.631v286.118l-256-143.855v-286.161l256 143.898z" />
+<glyph unicode="&#xe76f;" glyph-name="cube-unfolded" d="M256 554.667v213.333h298.667v-213.333h426.667v-298.667h-213.333v-213.333h-298.667v213.333h-426.667v298.667h213.333zM682.667 256h-128v-128h128v128zM341.333 554.667h128v128h-128v-128zM256 341.334v128h-128v-128h128zM768 469.334v-128h128v128h-128zM554.667 469.334v-128h128v128h-128zM341.333 469.334v-128h128v128h-128z" />
+<glyph unicode="&#xe770;" glyph-name="cube" d="M896 234.667c0-16.265-9.101-30.4-22.485-37.602l-337.348-189.568c-6.869-4.727-15.194-7.497-24.166-7.497s-17.297 2.769-24.166 7.497l-337.341 189.564c-13.389 7.198-22.492 21.342-22.492 37.606v384c0 16.266 9.103 30.406 22.492 37.605l337.341 189.563c6.869 4.73 15.194 7.498 24.166 7.498s17.293-2.768 24.166-7.498l337.348-189.567c13.385-7.2 22.485-21.338 22.485-37.601v-384zM512.038 761.561l-254.279-142.894 254.279-142.895 254.217 142.895-254.217 142.894z" />
+<glyph unicode="&#xe771;" glyph-name="cup-water" d="M781.85 597.416h-539.732l-18.859 170.667h577.45zM511.983 128.081c-70.699 0-127.999 57.301-127.999 128 0 85.333 127.999 230.4 127.999 230.4s128-145.067 128-230.4c0-70.699-57.301-128-128-128zM127.984 853.416l85.931-777.943c4.906-42.453 40.96-75.392 84.736-75.392h426.666c43.733 0 79.787 32.939 84.736 75.392l85.931 777.943h-767.999z" />
+<glyph unicode="&#xe772;" glyph-name="cup" d="M781.85 597.416h-539.732l-18.859 170.667h577.45zM127.984 853.416l85.931-777.942c4.906-42.453 40.96-75.392 84.736-75.392h426.666c43.733 0 79.787 32.939 84.736 75.392l85.931 777.942h-767.999z" />
+<glyph unicode="&#xe773;" glyph-name="currency-btc" d="M192 725.334h149.333v128h85.333v-128h64v128h85.333v-128c234.667 0 234.667-256 106.667-266.666 170.667 10.667 213.333-330.667-106.667-330.667v-128h-85.333v128h-64v-128h-85.333v128h-149.333l21.333 85.333h42.667c23.564 0 42.667 19.102 42.667 42.667v341.333c0 23.564-19.103 42.667-42.667 42.667h-64v85.333zM426.667 640v-170.667c0 0 192-10.667 192 85.332s-192 85.334-192 85.335zM426.667 405.334v-191.834c0 0 234.667-0.166 234.667 95.834s-234.667 96-234.667 96z" />
+<glyph unicode="&#xe774;" glyph-name="currency-eur" d="M301.691 469.334l-3.025-42.667 3.025-42.667h438.413l-36.105-85.333h-376.592c47.934-100.902 150.783-170.667 269.925-170.667 95.189 0 179.977 44.531 234.667 113.894v-119.206c-64.892-50.167-146.295-80.021-234.667-80.021-167.198 0-309.434 106.854-362.15 256h-149.85l42.667 85.333h87.677l-2.344 42.667 2.344 42.667h-130.344l42.667 85.333h107.184c52.715 149.145 194.952 256 362.15 256 107.533 0 204.74-44.2 274.449-115.423l-36.983-87.413c-54.571 71.424-140.638 117.502-237.466 117.502-119.142 0-221.99-69.762-269.925-170.667h484.901l-36.105-85.333h-474.513z" />
+<glyph unicode="&#xe775;" glyph-name="currency-gbp" d="M277.333 42.667v53.333c39.921 19.767 74.184 50.428 98.43 87.565 24.245 37.141 36.698 79.014 37.357 125.619l-1.172 41.971-3.514 32.845h-109.767v85.333h102.383c-6.33 35.268-10.12 72.285-11.368 117.415 1.089 69.861 21.702 124.475 61.838 163.843s93.257 59.392 159.369 60.075c30.447-0.253 56.277-3.064 77.495-8.432s37.969-11.773 50.249-19.215l-23.437-74.329c-10.5 6.107-24.371 11.482-41.609 16.124s-38.135 7.085-62.699 7.33c-45.367-0.904-78.281-14.926-98.739-42.065-20.463-27.14-30.519-61.974-30.178-104.503l4.395-63.86 8.747-52.382h166.221v-85.333h-158.281c4.019-43.14 2.078-85.231-5.82-126.276-13.107-51.405-39.006-94.647-77.695-129.724h348.462v-85.333h-490.667z" />
+<glyph unicode="&#xe776;" glyph-name="currency-inr" d="M341.333 810.667h426.667l-42.667-85.333h-138.974c20.403-24.705 35.849-53.658 44.809-85.333h136.832l-42.667-85.333h-86.289c-9.89-109.722-95.296-197.662-203.844-211.452v-2.146l-29.724 0.098 255.682-298.5h-106.667l-255.825 298.667v85.333l106.667-0.209v0.209c75.23 0 137.468 55.633 147.823 128h-254.49l42.667 85.333h198.963c-23.966 50.452-75.392 85.333-134.963 85.333h-106.667l42.667 85.333z" />
+<glyph unicode="&#xe777;" glyph-name="currency-rub" d="M256 512h42.667v298.667h320c106.039 0 192-85.961 192-192s-85.961-192-192-192h-234.667v-85.333h256v-85.333h-256v-213.333h-85.333v213.333h-42.667v85.333h42.667v85.333h-42.667v85.333zM618.667 725.334h-234.667v-213.333h234.667c58.91 0 106.667 47.756 106.667 106.666s-47.757 106.667-106.667 106.667z" />
+<glyph unicode="&#xe778;" glyph-name="currency-try" d="M810.667 426.667c0-212.079-171.921-384-384-384h-85.333v351.019l-128-46.592v90.812l128 46.588v75.651l-128-46.588v90.81l128 46.588v159.713h85.333v-128.654l213.333 77.647v-90.81l-213.333-77.647v-75.651l213.333 77.647v-90.808l-213.333-77.649v-296.742c164.949 0 298.667 133.717 298.667 298.667h85.333z" />
+<glyph unicode="&#xe779;" glyph-name="currency-usd" d="M503.467 473.6c-96.853 25.173-128 51.2-128 91.733 0 46.507 43.093 78.933 115.2 78.933 75.947 0 104.107-36.267 106.667-89.6h94.293c-2.987 73.387-47.787 140.8-136.96 162.56v93.44h-128v-92.16c-82.773-17.92-149.333-71.68-149.333-154.027 0-98.56 81.493-147.627 200.533-176.213 106.667-25.6 128-63.147 128-102.827 0-29.44-20.907-76.373-115.2-76.373-87.893 0-122.453 39.253-127.147 89.6h-93.867c5.12-93.44 75.093-145.92 157.013-163.413v-92.587h128v91.733c83.2 15.787 149.333 64 149.333 151.467 0 121.173-103.68 162.56-200.533 187.733z" />
+<glyph unicode="&#xe77a;" glyph-name="cursor-default-outline" d="M429.589 329.972c21.355 9.958 46.741 0.721 56.7-20.638l98.364-212.762 77.086 35.947-99.174 212.681c-9.958 21.355-0.717 46.741 20.638 56.7l12.207 3.61 98.074 19.063-352.15 295.49v-459.995l77.645 62.878 10.612 7.027zM581.794 1.084c-21.355-9.958-46.741-0.717-56.7 20.638l-93.047 202.018-106.771-86.426c-7.296-5.828-16.546-9.314-26.609-9.314-23.564 0-42.667 19.102-42.667 42.667v640c0 23.564 19.102 42.667 42.667 42.667 10.451 0 20.025-3.758 27.444-9.996l0.44 0.524 490.269-411.383c18.048-15.147 20.403-42.061 5.257-60.113-6.468-7.706-15.083-12.553-24.235-14.396l-134.839-26.24 94.11-201.818c9.958-21.355 0.717-46.741-20.638-56.7l-154.679-72.128z" />
+<glyph unicode="&#xe77b;" glyph-name="cursor-default" d="M581.794 1.084c-21.355-9.958-46.741-0.717-56.7 20.638l-93.047 202.018-106.771-86.426c-7.296-5.828-16.546-9.314-26.609-9.314-23.564 0-42.667 19.102-42.667 42.667v640c0 23.564 19.102 42.667 42.667 42.667 10.451 0 20.025-3.758 27.443-9.996l0.44 0.524 490.269-411.383c18.048-15.147 20.403-42.061 5.257-60.113-6.468-7.71-15.083-12.553-24.235-14.396l-134.839-26.24 94.11-201.818c9.958-21.355 0.717-46.741-20.638-56.7l-154.679-72.128z" />
+<glyph unicode="&#xe77c;" glyph-name="cursor-move" d="M554.667 682.667v-213.333h213.333v138.667l181.333-181.333-181.333-181.333v138.667h-213.333v-213.333h138.667l-181.333-181.333-181.333 181.333h138.667v213.333h-213.333v-138.667l-181.333 181.333 181.333 181.333v-138.667h213.333v213.333h-138.667l181.333 181.333 181.333-181.333h-138.667z" />
+<glyph unicode="&#xe77d;" glyph-name="cursor-pointer" d="M426.667 853.333c47.13 0 85.333-38.205 85.333-85.333v-192.001c0 0 85.333 10.667 85.333-32 0 0 85.333 10.667 85.333-31.999 0 0 85.333 10.666 85.333-32 0 0 85.333 10.667 85.333-32v-149.333c0-42.667-128-256-128-298.667h-341.333c0 0-85.333 298.667-213.333 384 0 0-42.667 256 170.667 42.667v341.333c0 47.128 38.205 85.333 85.333 85.333z" />
+<glyph unicode="&#xe77e;" glyph-name="data" d="M554.684 853.311v-129.213c144.717-20.765 255.987-144.859 255.987-295.288 0-38.199-7.479-74.603-20.561-108.19l110.963-65.451c23.787 53.116 37.598 111.68 37.598 173.641 0 221.169-168.354 403.012-383.987 424.502zM469.346 853.332c-215.819-21.286-384.012-203.193-384.012-424.523 0-235.644 190.656-426.662 426.448-426.662 141.248 0 266.095 68.83 343.774 174.468l-110.763 65.327c-54.716-68.105-138.573-111.799-232.789-111.799-164.993 0-298.665 133.734-298.665 298.667 0 150.429 111.271 274.523 256.007 295.288v129.234z" />
+<glyph unicode="&#xe77f;" glyph-name="debug-step-into" d="M512-0c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333zM554.667 853.334v-469.777l192.222 192.22 60.339-60.34-295.228-295.229-295.229 295.23 60.34 60.34 192.222-192.22v469.777h85.333z" />
+<glyph unicode="&#xe780;" glyph-name="debug-step-out" d="M512-0c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333zM554.667 256h-85.333v427.112l-192.222-192.223-60.34 60.342 295.229 295.227 295.228-295.227-60.339-60.342-192.222 192.223v-427.112z" />
+<glyph unicode="&#xe781;" glyph-name="debug-step-over" d="M512 341.334c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333zM1001.015 560.434l-67.87-293.968-293.965 67.87 162.833 101.751c-60.241 96.806-167.603 161.246-290.014 161.246-168.523 0-308.521-122.129-336.318-282.705l-84.051 14.818c34.812 200.643 209.772 353.22 420.369 353.22 152.93 0 287.066-80.459 362.394-201.353l126.622 79.12z" />
+<glyph unicode="&#xe782;" glyph-name="decimal-decrease" d="M512 213.334l128-128v85.333h256v85.333h-256v85.333l-128-128zM384 725.333c70.691 0 128-57.307 128-128v-127.999c0-70.694-57.31-128-128-128-70.693 0-128 57.306-128 128v127.999c0 70.693 57.308 128 128 128zM384 640c-23.564 0-42.667-19.103-42.667-42.667v-128c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v128c0 23.564-19.102 42.667-42.667 42.667zM170.667 426.667c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667z" />
+<glyph unicode="&#xe783;" glyph-name="decimal-increase" d="M938.667 213.334l-128-128v85.333h-256v85.333h256v85.333l128-128zM384 725.333c70.691 0 128-57.308 128-128v-128c0-70.694-57.31-128-128-128-70.693 0-128 57.306-128 128v128c0 70.692 57.308 128 128 128zM384 640c-23.564 0-42.667-19.103-42.667-42.667v-128c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v128c0 23.564-19.102 42.667-42.667 42.667zM682.667 725.333c70.694 0 128-57.307 128-128v-128c0-70.694-57.306-128-128-128s-128 57.306-128 128v128c0 70.692 57.306 128 128 128zM682.667 640c-23.565 0-42.667-19.103-42.667-42.667v-128c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v128c0 23.564-19.102 42.667-42.667 42.667zM170.667 426.667c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667z" />
+<glyph unicode="&#xe784;" glyph-name="delete-variant" d="M897.212 810.667l-130.257-738.718c-6.421-40.772-41.715-71.949-84.288-71.949h-341.333c-42.575 0-77.868 31.181-84.29 71.953l-130.255 738.714h770.424zM228.484 725.333l112.849-640h341.333l112.849 640h-567.032zM384 170.667v170.667h170.667v-170.667h-170.667zM554.667 376.235l-135.764 135.765 135.764 135.764 135.765-135.764-135.765-135.765z" />
+<glyph unicode="&#xe785;" glyph-name="delete" d="M810.667 768h-149.333l-42.667 42.667h-213.333l-42.667-42.667h-149.333v-85.333h597.333zM256 128c0-46.933 38.4-85.333 85.333-85.333h341.333c46.933 0 85.333 38.4 85.333 85.333v512h-512v-512z" />
+<glyph unicode="&#xe786;" glyph-name="deskphone" d="M213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM640 725.333v-597.333h170.667v597.333h-170.667zM213.333 725.333v-170.667h341.333v170.667h-341.333zM213.333 469.334v-85.333h85.333v85.333h-85.333zM341.333 469.334v-85.333h85.334v85.333h-85.334zM469.333 469.334v-85.333h85.333v85.333h-85.333zM213.333 341.334v-85.333h85.333v85.333h-85.333zM341.333 341.334v-85.333h85.333v85.333h-85.333zM469.333 341.334v-85.333h85.333v85.333h-85.333zM469.333 213.334v-85.333h85.333v85.333h-85.333zM341.333 213.334v-85.333h85.333v85.333h-85.333zM213.333 213.334v-85.333h85.333v85.333h-85.333z" />
+<glyph unicode="&#xe787;" glyph-name="desktop-mac" d="M895.974 341.415h-768v426.668h768zM895.974 853.416h-768c-47.147 0-85.333-38.229-85.333-85.333v-512.001c0-47.147 38.187-85.333 85.333-85.333h298.667l-85.333-128v-42.667h341.333v42.667l-85.333 128h298.667c47.104 0 85.333 38.187 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe788;" glyph-name="desktop-tower" d="M341.333 853.334h341.333c47.13 0 85.333-38.205 85.333-85.333v-682.667c0-47.13-38.204-85.333-85.333-85.333h-341.333c-47.128 0-85.333 38.204-85.333 85.333v682.667c0 47.128 38.205 85.333 85.333 85.333zM341.333 768v-85.333h341.333v85.333h-341.333zM682.667 597.334h-341.333v-85.333h341.333v85.333zM682.667 170.667h-85.333v-85.333h85.333v85.333z" />
+<glyph unicode="&#xe789;" glyph-name="details" d="M272.213 682.667h480l-240.213-426.667-239.787 426.667zM128 768l384-682.667 384 682.667h-768z" />
+<glyph unicode="&#xe78a;" glyph-name="deviantart" d="M256 682.667h256l85.333 170.667h170.667v-170.667l-149.333-298.667h149.333v-213.333h-256l-85.333-170.667h-170.667v170.667l149.333 298.667h-149.333v213.333z" />
+<glyph unicode="&#xe78b;" glyph-name="diamond" d="M682.667 554.667h128l-213.333-298.667zM426.667 554.667h170.667l-85.333-341.333zM213.333 554.667h128l85.333-298.667zM640 768h85.333l85.333-128h-128zM469.333 768h85.333l42.667-128h-170.667zM298.667 768h85.333l-42.667-128h-128zM256 853.334l-170.667-256 426.667-597.333 426.667 597.333-170.667 256h-512z" />
+<glyph unicode="&#xe78c;" glyph-name="dice-1" d="M213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM512 512c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333z" />
+<glyph unicode="&#xe78d;" glyph-name="dice-2" d="M213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM298.667 725.334c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.205 85.333 85.333s-38.205 85.333-85.333 85.333zM725.333 298.667c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333z" />
+<glyph unicode="&#xe78e;" glyph-name="dice-3" d="M213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM512 512c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333zM298.667 725.334c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.205 85.333 85.333s-38.205 85.333-85.333 85.333zM725.333 298.667c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333z" />
+<glyph unicode="&#xe78f;" glyph-name="dice-4" d="M213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM298.666 725.333c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.205 85.333 85.333s-38.205 85.333-85.333 85.333zM725.333 298.667c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333zM725.333 725.333c-47.13 0-85.333-38.205-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333zM298.667 298.667c-47.128 0-85.333-38.204-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.204 85.333 85.333s-38.205 85.333-85.333 85.333z" />
+<glyph unicode="&#xe790;" glyph-name="dice-5" d="M213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM298.666 725.333c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.205 85.333 85.333s-38.205 85.333-85.333 85.333zM725.333 298.667c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333zM725.333 725.333c-47.13 0-85.333-38.205-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333zM512 512c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333zM298.667 298.667c-47.128 0-85.333-38.204-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.204 85.333 85.333s-38.205 85.333-85.333 85.333z" />
+<glyph unicode="&#xe791;" glyph-name="dice-6" d="M213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM298.666 725.333c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.334 38.205 85.334 85.333s-38.205 85.333-85.334 85.333zM725.333 298.667c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333zM725.333 512c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333zM725.333 725.333c-47.13 0-85.333-38.205-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333zM298.667 512c-47.128 0-85.333-38.204-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.204 85.333 85.333s-38.205 85.333-85.333 85.333zM298.667 298.667c-47.128 0-85.333-38.204-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.204 85.333 85.333s-38.205 85.333-85.333 85.333z" />
+<glyph unicode="&#xe792;" glyph-name="dice" d="M896 234.667c0-16.265-9.101-30.4-22.485-37.602l-337.348-189.568c-6.869-4.727-15.194-7.497-24.166-7.497s-17.297 2.769-24.166 7.501l-337.341 189.559c-13.389 7.198-22.492 21.342-22.492 37.606v384c0 16.267 9.103 30.407 22.492 37.605l337.341 189.563c6.869 4.73 15.194 7.499 24.166 7.499s17.297-2.769 24.166-7.498l337.348-189.568c13.385-7.199 22.485-21.338 22.485-37.601v-384zM234.667 327.851c-23.564 13.338-42.667 5.047-42.667-18.517s19.102-53.478 42.667-66.816c23.564-13.333 42.667-5.043 42.667 18.522s-19.103 53.478-42.667 66.812zM234.666 498.518c-23.564 13.338-42.666 5.047-42.666-18.517s19.102-53.478 42.666-66.816c23.564-13.333 42.667-5.043 42.667 18.522s-19.102 53.478-42.667 66.812zM405.333 231.262c-23.564 13.338-42.667 5.047-42.667-18.517s19.102-53.478 42.667-66.816c23.565-13.333 42.667-5.043 42.667 18.522 0 23.561-19.102 53.474-42.667 66.812zM320 364.89c-23.564 13.338-42.667 5.047-42.667-18.517s19.102-53.478 42.667-66.816c23.564-13.333 42.667-5.043 42.667 18.522s-19.103 53.478-42.667 66.812zM405.333 401.929c-23.564 13.338-42.667 5.047-42.667-18.517s19.102-53.478 42.667-66.816c23.565-13.338 42.667-5.043 42.667 18.522 0 23.561-19.102 53.474-42.667 66.812zM789.333 327.851c-23.565-13.333-42.667-43.247-42.667-66.812s19.102-31.855 42.667-18.522c23.565 13.338 42.667 43.251 42.667 66.816s-19.102 31.855-42.667 18.517zM789.333 498.518c-23.565-13.333-42.667-43.247-42.667-66.812s19.102-31.855 42.667-18.522c23.565 13.338 42.667 43.251 42.667 66.816s-19.102 31.855-42.667 18.517zM618.667 231.262c-23.565-13.338-42.667-43.251-42.667-66.812 0-23.565 19.102-31.859 42.667-18.522s42.667 43.251 42.667 66.816c0 23.565-19.102 31.855-42.667 18.517zM618.667 401.929c-23.565-13.338-42.667-43.251-42.667-66.812 0-23.565 19.102-31.859 42.667-18.522s42.667 43.251 42.667 66.816c0 23.561-19.102 31.855-42.667 18.517zM703.654 607.11c23.33 13.739 25.702 34.428 5.295 46.21s-55.863 10.196-79.194-3.543c-23.334-13.739-25.702-34.428-5.295-46.21 20.403-11.782 55.863-10.196 79.194 3.543zM386.871 592.936c23.332 13.739 25.702 34.428 5.295 46.21s-55.864 10.196-79.196-3.543c-23.331-13.739-25.702-34.428-5.295-46.21s55.864-10.196 79.196 3.543zM545.263 600.023c23.33 13.739 25.702 34.428 5.295 46.21s-55.863 10.196-79.198-3.543c-23.33-13.739-25.702-34.428-5.295-46.21s55.868-10.196 79.198 3.543z" />
+<glyph unicode="&#xe793;" glyph-name="directions" d="M597.308 320.081v106.667h-170.667v-128h-85.333v170.667c0 23.595 19.072 42.668 42.667 42.668h213.333v106.667l149.333-149.335zM926.14 456.871l-384.128 384.044c-16.597 16.683-43.648 16.683-60.245-0.043l-384-384.001c-16.64-16.683-16.682-43.648 0-60.331l384-384c16.725-16.58 43.648-16.64 60.331 0l384.043 384c16.683 16.683 16.683 43.648 0 60.331z" />
+<glyph unicode="&#xe794;" glyph-name="disk-alert" d="M426.641 341.415c-47.147 0-85.333 38.229-85.333 85.333 0 47.147 38.187 85.335 85.333 85.335 47.104 0 85.333-38.188 85.333-85.335 0-47.104-38.229-85.333-85.333-85.333zM426.641 768.083c-188.501 0-341.333-152.832-341.333-341.335 0-188.544 152.832-341.333 341.333-341.333s341.333 152.789 341.333 341.333c0 188.503-152.832 341.335-341.333 341.335zM853.308 426.748h85.333v213.335h-85.333zM853.308 256.081h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe795;" glyph-name="disqus-outline" d="M507.733 320h-46.933v213.333h46.933c68.267 0 115.2-38.4 115.2-106.667s-46.933-106.667-115.2-106.667zM507.733 640h-162.133v-426.667h157.867c149.333 0 238.933 89.6 238.933 213.333v0c0 123.733-85.333 213.333-234.667 213.333zM512 85.334c-81.067 0-157.867 29.867-217.6 81.067l-29.867 25.6-72.533-8.533 29.867 68.267-12.8 34.133c-21.333 46.933-29.867 93.867-29.867 145.067 0 187.733 153.6 341.333 337.067 341.333s332.8-157.867 332.8-345.6c0-187.733-153.6-341.333-337.067-341.333zM512 853.334c-234.667 0-422.4-192-422.4-426.667 0-64 12.8-123.733 38.4-179.2l-68.267-174.933 183.467 25.6c72.533-64 170.667-102.4 273.067-102.4 234.667 0 422.4 192 422.4 426.667s-192 430.933-426.667 430.933z" />
+<glyph unicode="&#xe796;" glyph-name="disqus" d="M515.358-0c-104.415 0-199.878 38.148-273.667 101.261l-181.673-24.806 70.187 173.21c-24.439 53.948-38.147 113.826-38.147 177.003 0 235.615 189.511 426.667 423.301 426.667 233.766 0 423.309-191.052 423.309-426.667 0-235.678-189.513-426.667-423.309-426.667zM746.5 427.9v1.178c0 123.116-86.818 210.923-236.54 210.923h-161.666v-426.667h159.29c150.865-0.030 238.916 91.447 238.916 214.566zM511.748 318.153h-47.283v216.975h47.283c69.474 0 115.584-39.601 115.584-107.906v-1.169c0-68.894-46.11-107.9-115.584-107.9z" />
+<glyph unicode="&#xe797;" glyph-name="division-box" d="M725.308 384.081v85.333h-426.667v-85.333h426.667zM810.641 810.747c47.061 0 85.333-38.229 85.333-85.333v-597.332c0-47.104-38.272-85.333-85.333-85.333h-597.333c-47.189 0-85.333 38.229-85.333 85.333v597.332c0 47.104 38.144 85.333 85.333 85.333h597.333zM512 640c-23.565 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667zM512 298.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xe798;" glyph-name="division" d="M810.641 384.086h-597.335v85.333h597.335v-85.333zM512 725.334c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.205-85.333 85.333s38.204 85.333 85.333 85.333zM512 298.667c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333z" />
+<glyph unicode="&#xe799;" glyph-name="dns" d="M298.667 554.667c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333zM853.333 810.667h-682.667c-23.467 0-42.667-19.2-42.667-42.667v-256c0-23.467 19.2-42.667 42.667-42.667h682.667c23.467 0 42.667 19.2 42.667 42.667v256c0 23.467-19.2 42.667-42.667 42.667zM298.667 128c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333zM853.333 384h-682.667c-23.467 0-42.667-19.2-42.667-42.667v-256c0-23.467 19.2-42.667 42.667-42.667h682.667c23.467 0 42.667 19.2 42.667 42.667v256c0 23.467-19.2 42.667-42.667 42.667z" />
+<glyph unicode="&#xe79a;" glyph-name="document" d="M213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM298.667 640v-85.333h426.667v85.333h-426.667zM298.667 469.334v-85.333h426.667v85.333h-426.667zM298.667 298.667v-85.333h298.667v85.333h-298.667z" />
+<glyph unicode="&#xe79b;" glyph-name="domain" d="M768 298.667h-85.333v-85.333h85.333zM768 469.334h-85.333v-85.333h85.333zM853.333 128h-341.333v85.333h85.333v85.333h-85.333v85.333h85.333v85.333h-85.333v85.333h341.333zM426.667 640h-85.333v85.333h85.333zM426.667 469.334h-85.333v85.333h85.333zM426.667 298.667h-85.333v85.333h85.333zM426.667 128h-85.333v85.333h85.333zM256 640h-85.333v85.333h85.333zM256 469.334h-85.333v85.333h85.333zM256 298.667h-85.333v85.333h85.333zM256 128h-85.333v85.333h85.333zM512 640v170.667h-426.667v-768h853.333v597.333h-426.667z" />
+<glyph unicode="&#xe79c;" glyph-name="dots-horizontal" d="M682.667 426.667c0 47.13 38.204 85.333 85.333 85.333s85.333-38.204 85.333-85.333c0-47.13-38.204-85.333-85.333-85.333s-85.333 38.204-85.333 85.333zM426.667 426.667c0 47.13 38.204 85.333 85.333 85.333s85.333-38.204 85.333-85.333c0-47.13-38.204-85.333-85.333-85.333s-85.333 38.204-85.333 85.333zM170.667 426.667c0 47.13 38.205 85.333 85.333 85.333s85.333-38.204 85.333-85.333c0-47.13-38.205-85.333-85.333-85.333s-85.333 38.204-85.333 85.333z" />
+<glyph unicode="&#xe79d;" glyph-name="dots-vertical" d="M512 256c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333zM512 512c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333zM512 768c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.205-85.333 85.333s38.204 85.333 85.333 85.333z" />
+<glyph unicode="&#xe79e;" glyph-name="download" d="M213.308 85.415h597.333v85.333h-597.333zM810.641 554.749h-170.667v256h-256v-256h-170.667l298.667-298.668 298.667 298.668z" />
+<glyph unicode="&#xe79f;" glyph-name="drag-horizontal" d="M128 298.667v85.333h85.333v-85.333h-85.333zM128 469.334v85.332h85.333v-85.332h-85.333zM298.667 298.667v85.333h85.333v-85.333h-85.333zM298.667 469.334v85.332h85.333v-85.332h-85.333zM469.333 298.667v85.333h85.333v-85.333h-85.333zM469.333 469.334v85.333h85.333v-85.333h-85.333zM640 298.667v85.333h85.333v-85.333h-85.333zM640 469.334v85.333h85.333v-85.333h-85.333zM810.667 298.667v85.333h85.333v-85.333h-85.333zM810.667 469.334v85.333h85.333v-85.333h-85.333z" />
+<glyph unicode="&#xe7a0;" glyph-name="drag-vertical" d="M384 810.667h85.333v-85.333h-85.333v85.333zM554.667 810.667h85.333v-85.333h-85.333v85.333zM384 640h85.333v-85.333h-85.333v85.333zM554.667 640h85.333v-85.333h-85.333v85.333zM384 469.334h85.333v-85.333h-85.333v85.333zM554.667 469.334h85.333v-85.333h-85.333v85.333zM384 298.667h85.333v-85.333h-85.333v85.333zM554.667 298.667h85.333v-85.333h-85.333v85.333zM384 128h85.333v-85.333h-85.333v85.333zM554.667 128h85.333v-85.333h-85.333v85.333z" />
+<glyph unicode="&#xe7a1;" glyph-name="drag" d="M298.667 128v85.333h85.333v-85.333h-85.333zM469.333 128v85.333h85.333v-85.333h-85.333zM640 128v85.333h85.333v-85.333h-85.333zM298.667 298.667v85.333h85.333v-85.333h-85.333zM469.333 298.667v85.333h85.333v-85.333h-85.333zM640 298.667v85.333h85.333v-85.333h-85.333zM298.667 469.334v85.333h85.333v-85.333h-85.333zM469.333 469.334v85.333h85.333v-85.333h-85.333zM640 469.334v85.333h85.333v-85.333h-85.333zM298.667 640v85.333h85.333v-85.333h-85.333zM469.333 640v85.333h85.333v-85.333h-85.333zM640 640v85.333h85.333v-85.333h-85.333z" />
+<glyph unicode="&#xe7a2;" glyph-name="drawing-box" d="M767.974 170.748h-256v246.955c-28.117-25.941-65.408-42.155-106.667-42.155-87.211 0-157.867 70.699-157.867 157.868s70.656 157.867 157.867 157.867c87.168 0 157.867-70.699 157.867-157.867 0-41.26-16.213-78.551-42.155-106.668h246.955zM810.641 810.749h-597.334c-47.147 0-85.333-38.229-85.333-85.333v-597.335c0-47.104 38.187-85.333 85.333-85.333h597.334c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe7a3;" glyph-name="drawing" d="M362.667 810.667c129.604 0 234.667-105.064 234.667-234.667 0-56.731-20.13-108.762-53.641-149.333h352.307v-384h-384v352.307c-40.572-33.51-92.602-53.641-149.333-53.641-129.603 0-234.667 105.062-234.667 234.667 0 129.603 105.064 234.667 234.667 234.667z" />
+<glyph unicode="&#xe7a4;" glyph-name="dribbble-box" d="M213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM643.878 235.013c-11.814 57.856-26.679 110.020-43.008 156.578l48.448 3.401c27.81 0 58.342-3.46 91.46-10.987-11.482-61.611-47.125-114.671-96.9-148.992zM512 193.634c-51.836 0-99.689 17.152-138.449 45.931 8.23 13.581 25.951 39.625 54.092 66.556 28.937 27.742 68.894 56.294 121.058 73.293 17.724-49.711 33.783-106.543 45.995-170.513-25.749-9.809-53.559-15.266-82.697-15.266zM278.973 426.654l0.133 3.366 25.486-0.465c46.858 0.311 128.628 4.228 211.521 30.383l13.41-30.839c-55.356-18.513-98.961-48-131.216-77.367-30.995-28.275-51.968-56.269-64.247-74.974-34.246 40.606-55.087 92.766-55.087 149.897zM409.059 635.391c16.195-19.109 48.584-61.121 83.161-126.736-70.351-20.937-141.168-25.847-184.043-25.835l-3.651 0.013-18.584 0.269c16.725 66.896 62.521 122.303 123.117 152.289zM512 659.676c54.955 0 105.395-19.215 145.284-51.205-30.528-36.563-70.882-63.059-114.423-81.754-30.596 59.182-60.198 101.519-80.371 127.404 15.991 3.544 32.521 5.556 49.51 5.556zM694.985 570.487c29.137-37.002 47.386-82.824 49.711-132.859-33.715 7.147-65.574 10.633-95.309 10.633l-0.201 0.013c-23.893 0-46.327-2.172-67.499-5.922l-15.595 36.279c47.121 20.668 92.322 50.076 128.892 91.857zM512 725.336c-164.997-0.014-298.667-133.724-298.667-298.682 0-164.928 133.67-298.65 298.667-298.65 164.932 0 298.667 133.722 298.667 298.65 0 164.958-133.734 298.668-298.667 298.682z" />
+<glyph unicode="&#xe7a5;" glyph-name="dribbble" d="M700.399 152.871c-16.879 82.65-38.118 157.175-61.44 223.689 21.615 3.089 44.279 4.851 68.267 4.851h0.947c39.727 0 83.341-4.941 130.654-15.693-16.401-88.013-67.319-163.819-138.428-212.847zM512 93.76c-74.052 0-142.412 24.503-197.783 65.613 11.757 19.401 37.073 56.606 77.274 95.083 41.341 39.633 98.416 80.422 172.942 104.704 25.314-71.019 48.26-152.209 65.707-243.588-36.787-14.016-76.514-21.811-118.14-21.811zM179.106 426.646c0 1.566 0.095 3.17 0.19 4.809 9.481-0.35 21.617-0.661 36.314-0.661h0.095c66.94 0.444 183.751 6.037 302.176 43.405 6.447-14.101 12.8-28.796 19.153-44.062-79.078-26.445-141.37-68.57-187.45-110.524-44.279-40.393-74.24-80.384-91.782-107.102-48.923 58.005-78.695 132.518-78.695 214.135zM364.943 724.841c23.135-27.297 69.404-87.315 118.804-181.050-100.504-29.913-201.672-36.928-262.922-36.911-1.707 0-3.413 0-5.12 0.017h-0.095c-10.335 0-19.153 0.154-26.549 0.388 23.894 95.566 89.316 174.717 175.882 217.555zM512 759.533c78.507 0 150.566-27.449 207.552-73.149-43.618-52.234-101.265-90.084-163.465-116.793-43.708 84.546-85.995 145.028-114.82 182.006 22.852 5.064 46.46 7.936 70.733 7.936zM773.406 632.121c41.621-52.859 67.695-118.319 71.014-189.8-48.166 10.21-93.675 15.189-136.154 15.189v0.017h-0.286c-34.133 0-66.18-3.098-96.427-8.457-7.394 17.997-14.788 35.273-22.281 51.827 67.319 29.524 131.887 71.536 184.132 131.223zM512 853.334c-235.709-0.020-426.666-191.034-426.666-426.688 0-235.614 190.957-426.645 426.666-426.645 235.614 0 426.667 191.031 426.667 426.645 0 235.655-191.053 426.668-426.667 426.688z" />
+<glyph unicode="&#xe7a6;" glyph-name="drone" d="M938.667 469.334h-42.667l-42.667 85.333h-266.667l96-149.333h-85.333l-138.667 149.333h-288c-23.564 0-85.333 19.102-85.333 42.667s64 106.665 149.333 106.666c85.334 0 92.445-42.666 149.334-63.999h512c23.565 0 42.667-19.103 42.667-42.667v-128zM458.667 661.333l138.667 149.334h85.333l-96-149.334h-128zM768 469.334v64h74.667l-32-63.999h-42.667zM128 128c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c94.257 0 170.666-76.412 170.666-170.667 0-23.565-19.102-42.667-42.667-42.667s-42.666 19.102-42.666 42.667c0 47.13-38.205 85.333-85.333 85.333zM469.333 42.667c0-23.565-19.102-42.667-42.667-42.667s-42.667 19.102-42.667 42.667c0 141.385-114.615 256-256 256-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c188.513 0 341.333-152.819 341.333-341.333z" />
+<glyph unicode="&#xe7a7;" glyph-name="dropbox" d="M512.542 317.445l184.969-153.489 79.151 51.674v-57.933l-264.119-158.387-264.124 158.387v57.933l79.151-51.674 184.973 153.489zM327.569 832.689l184.427-153.933 184.435 153.933 263.569-172.090-182.246-145.941 182.246-145.95-263.569-172.087-184.435 153.941-184.427-153.941-263.569 172.087 182.246 145.95-182.246 145.941 263.569 172.090zM511.996 354.829l261.491 159.829-261.491 159.831-261.483-159.831 261.483-159.829z" />
+<glyph unicode="&#xe7a8;" glyph-name="drupal" d="M873.28 313.562c0-27.264-9.092-72.708-27.268-104.521s-31.812-40.9-59.076-40.9c-31.812 4.544-90.889 95.433-131.789 99.977-49.988 0-154.509-104.521-240.851-104.521-49.988 0-68.166 9.088-81.799 18.18-27.266 18.176-36.355 45.44-36.355 81.796 0 68.164 63.621 127.245 140.876 127.245 99.977 0 168.141-99.977 218.129-95.433 40.9 0 122.701 81.796 163.597 81.796 40.9 9.092 54.537-36.352 54.537-63.62zM709.679 713.468c-45.444 27.267-86.34 40.899-131.785 68.166-27.268 18.177-63.62 59.077-95.433 95.432-13.632-59.077-22.724-81.799-45.444-99.976-45.444-31.811-68.166-45.444-109.065-63.622-31.811-18.177-199.953-118.154-199.953-336.285 0-218.129 186.319-377.182 386.274-377.182 204.497 0 381.726 149.965 381.726 372.638 9.088 222.676-159.053 322.652-186.321 340.829z" />
+<glyph unicode="&#xe7a9;" glyph-name="duck" d="M362.667 725.334c-35.346 0-64-28.654-64-64s28.654-64 64-64c35.346 0 64 28.654 64 64s-28.654 64-64 64zM426.667 853.333c117.82 0 213.333-95.512 213.333-213.333 0-72.401-36.066-136.379-91.213-174.946 67.106-6.263 143.159-21.696 219.213-59.721 128-64 170.667 21.333 170.667 21.333s-42.667-384-298.667-384h-256c0 0-213.333 0-213.333 213.333 0 127.97 127.938 170.645 85.364 255.936-170.697 0.064-170.697 149.397-170.697 149.397 42.667-21.333 95.712-20.702 128.518-6.358 7.685 110.833 100.029 198.358 212.816 198.358z" />
+<glyph unicode="&#xe7aa;" glyph-name="dumbbell" d="M180.131 336.158l-30.17 30.17c-33.325 33.323-33.325 87.356 0 120.678 33.325 33.325 87.355 33.325 120.68 0l110.013-110.012 181.019 181.018-110.012 110.013c-33.326 33.325-33.326 87.355 0 120.68 33.323 33.325 87.356 33.325 120.678 0l301.7-301.699c33.323-33.323 33.323-87.356 0-120.678-33.327-33.327-87.356-33.327-120.683 0l-110.012 110.012-181.018-181.018 110.012-110.016c33.327-33.323 33.327-87.351 0-120.678-33.323-33.323-87.356-33.323-120.678 0l-271.529 271.531zM134.877 109.884l45.255 45.252-60.34 60.343c-16.662 16.661-16.662 43.674 0 60.339 16.663 16.661 43.677 16.661 60.34 0l181.019-181.022c16.662-16.661 16.662-43.678 0-60.339s-43.677-16.661-60.34 0l-60.34 60.339-45.255-45.252-60.34 60.339zM828.783 803.79l60.339-60.34-45.252-45.255 60.339-60.34c16.661-16.663 16.661-43.677 0-60.34s-43.678-16.663-60.339 0l-181.022 181.019c-16.661 16.663-16.661 43.677 0 60.34 16.666 16.662 43.678 16.662 60.339 0l60.343-60.34 45.252 45.255z" />
+<glyph unicode="&#xe7ab;" glyph-name="earth-off" d="M938.667 713.879l-63.351-63.351c40.162-65.062 63.334-141.724 63.334-223.802 0-235.605-191.019-426.667-426.667-426.667-82.074 0-158.733 23.177-223.794 63.343l-63.401-63.403-54.121 54.49 713.51 713.51 54.49-54.121zM763.546 196.625c55.595 60.715 89.771 141.312 89.771 230.101 0 58.372-14.669 113.285-40.512 161.292l-180.1-180.104c4.595-6.805 7.279-15.010 7.279-23.855v-128h42.667c38.016 0 69.888-25.045 80.896-59.435zM469.316 88.38v82.347c-20.634 0-39.548 7.322-54.298 19.503l-64.16-64.158c36.095-19.341 76.073-32.393 118.458-37.692zM639.983 743.016v-17.621c0-47.104-38.229-85.333-85.333-85.333h-85.333v-85.333c0-23.552-19.115-42.667-42.667-42.667h-85.333v-85.335h92.975l-89.153-89.152-165.614 165.611c-5.632-24.619-8.875-50.133-8.875-76.459 0-74.441 23.859-143.266 64.342-199.3l-61.050-61.052c-55.571 72.047-88.625 162.347-88.625 260.352 0 235.649 191.019 426.668 426.667 426.668 98.018 0 188.318-33.051 260.361-88.617l-61.111-61.111c-21.943 15.796-45.841 29.055-71.249 39.349z" />
+<glyph unicode="&#xe7ac;" glyph-name="earth" d="M763.546 196.625c-11.008 34.389-42.88 59.435-80.896 59.435h-42.667v128c0 23.595-19.115 42.667-42.667 42.667h-256v85.335h85.333c23.552 0 42.667 19.115 42.667 42.667v85.333h85.333c47.104 0 85.333 38.229 85.333 85.333v17.621c125.013-50.645 213.333-173.056 213.333-316.289 0-88.789-34.176-169.387-89.771-230.101zM469.316 88.38c-168.32 21.035-298.667 164.352-298.667 338.347 0 26.325 3.243 51.84 8.875 76.459l204.458-204.459v-42.667c0-47.104 38.187-85.333 85.334-85.333zM511.983 853.395c-235.648 0-426.667-191.019-426.667-426.668 0-235.605 191.019-426.667 426.667-426.667s426.667 191.061 426.667 426.667c0 235.649-191.019 426.668-426.667 426.668z" />
+<glyph unicode="&#xe7ad;" glyph-name="ebay" d="M162.336 490.368c-34.814 0-70.091-22.042-70.091-60.685h136.763c0 36.399-27.027 60.685-66.672 60.685zM164.046 521.998c87.889 0 113.472-57.644 114.505-96.671v178.727h47.865v-117.957c0 0 20.289 35.258 85.585 35.258 69.726 0 111.011-49.249 111.011-110.48 0-7.488-0.58-14.72-1.711-21.658 11.281 31.663 50.313 47.3 114.539 47.3h58.125v10.257c0 28.821-25.378 43.81-58.125 43.81-50.394 0-52.992-31.842-52.992-31.842h-49.574c0 8.717 6.383 63.254 105.984 63.254 33.924 0 71.053-7.083 89.967-34.996l-14.089 26.438h55.774l80.043-160.356 79.859 160.356h50.526l-145.463-285.493h-52.996l41.975 79.586-89.135 167.279c3.913-9.591 6.114-21.018 6.114-34.607v-103.053c0-11.921 1.711-30.558 1.711-30.558h-44.075c0 0-1.173 15.040-1.173 30.293 0 0-22.362-38.357-91.785-38.357-50.935 0-88.627 24.525-88.627 69.606 0 2.53 0.124 4.988 0.371 7.373-13.193-46.327-52.83-76.395-106.36-76.395-62.84 0-85.95 36.156-85.95 36.156 0-13.696-1.681-28.676-1.681-28.676h-46.773c0 0 1.061 20.864 1.061 35.721v55.782h-187.39c0-39.433 29.954-67.567 71.603-67.567 51.136 0 61.65 35.895 61.65 35.895h49.042c0 0-6.489-66.667-107.701-66.667-85.988 0-123.086 42.274-123.086 109.41 0 84.74 55.169 112.829 121.376 112.829zM399.927 488.982c-50.295 0-73.51-39.851-73.51-78.532 0-41.51 25.871-78.959 73.831-78.959 40.187 0 73.19 31.394 73.19 79.386 0 44.757-28.578 78.106-73.511 78.106zM693.965 405.743c-75.268 0-126.502-0.235-126.502-37.606 0-20.54 15.215-38.251 50.697-38.251 64.798 0 75.806 44.348 75.806 62.187v13.67z" />
+<glyph unicode="&#xe7ae;" glyph-name="edge" d="M116.768 477.538c46.615 519.202 843.902 519.202 787.642-117.342h-536.882c0-183.245 247.543-241.114 466.154-117.342v-180.032c-268.442-143.061-620.467-38.579-620.467 274.871 0 234.69 212.181 310.234 212.181 310.234s-59.475-75.549-61.082-138.24h305.414c0 303.805-417.934 191.285-552.958-32.149z" />
+<glyph unicode="&#xe7af;" glyph-name="eject" d="M512 725.334l-284.587-426.667h569.173zM213.333 213.334h597.333v-85.333h-597.333v85.333z" />
+<glyph unicode="&#xe7b0;" glyph-name="elevation-decline" d="M896 42.667h-768v416l275.394-158.997 160.766 92.817 331.84-191.59v-158.229zM128 557.201v93.466l275.394-158.997 160.766 92.817 331.84-191.59v-93.466l-331.84 191.59-160.766-92.817-275.394 158.997z" />
+<glyph unicode="&#xe7b1;" glyph-name="elevation-rise" d="M128 42.667v158.229l331.84 191.59 160.768-92.817 275.392 158.997v-416h-768zM896 557.201l-275.396-158.997-160.764 92.817-331.84-191.59v93.466l331.84 191.59 160.768-92.817 275.392 158.997v-93.466z" />
+<glyph unicode="&#xe7b2;" glyph-name="elevator" d="M298.667 853.334l170.667-170.667h-128v-170.666h-85.333v170.666h-128l170.667 170.667zM725.333 512l-170.667 170.666h128v170.666h85.333v-170.666h128l-170.667-170.666zM298.667 426.667h426.667c47.13 0 85.333-38.204 85.333-85.333v-256c0-47.13-38.204-85.333-85.333-85.333h-426.667c-47.128 0-85.333 38.204-85.333 85.333v256c0 47.13 38.205 85.333 85.333 85.333zM298.667 341.334v-256h426.667v256h-426.667z" />
+<glyph unicode="&#xe7b3;" glyph-name="email-open" d="M938.667 597.334v-426.667c0-47.13-38.204-85.333-85.333-85.333h-682.667c-47.128 0-85.333 38.204-85.333 85.333v426.667c0 32.162 17.792 60.168 44.071 74.712l382.596 220.892 382.588-220.887c26.283-14.543 44.079-42.551 44.079-74.716zM170.667 597.334l341.333-213.333 341.333 213.333-341.333 213.333-341.333-213.333z" />
+<glyph unicode="&#xe7b4;" glyph-name="email-secure" d="M874.667 938.667c58.88 0 106.667-47.787 106.667-106.667v-21.333c23.467 0 42.667-19.2 42.667-42.667v-170.666c0-23.467-19.2-42.667-42.667-42.667h-213.333c-23.467 0-42.667 19.2-42.667 42.667v170.666c0 23.467 19.2 42.667 42.667 42.667v21.333c0 58.88 47.787 106.667 106.667 106.667zM512 469.325l-341.333 213.333v-85.333l341.333-213.333 178.419 111.514c21.525-16.427 48.414-26.18 77.581-26.18h170.667v-298.667c0-46.933-38.4-85.333-85.333-85.333h-682.667c-46.933 0-85.333 38.4-85.333 85.333l0.427 512c0 46.933 37.973 85.333 84.907 85.333h469.333v-170.667c0-15.199 2.65-29.78 7.509-43.305l-135.509-84.695zM874.667 896c-35.345 0-64-28.654-64-64v-21.333h128v21.333c0 35.346-28.655 64-64 64z" />
+<glyph unicode="&#xe7b5;" glyph-name="email" d="M853.308 597.416l-341.333-213.335-341.333 213.335v85.333l341.333-213.335 341.333 213.335zM853.308 768.083h-682.667c-47.147 0-84.907-38.186-84.907-85.333l-0.426-512.001c0-47.104 38.187-85.333 85.333-85.333h682.667c47.104 0 85.333 38.229 85.333 85.333v512.001c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe7b6;" glyph-name="emoticon-cool" d="M810.667 512c0-58.91-90.423-106.667-149.333-106.667s-117.333 47.757-117.333 106.667h-64c0-58.91-58.423-106.667-117.333-106.667s-149.333 47.757-149.333 106.667h-31.913c-7.020-27.273-10.753-55.868-10.753-85.333 0-188.514 152.82-341.333 341.333-341.333s341.333 152.819 341.333 341.333c0 29.466-3.733 58.061-10.752 85.333h-31.915zM512 768.001c-126.342 0-236.651-68.642-295.669-170.667h591.34c-59.021 102.025-169.327 170.667-295.671 170.667zM938.667 426.667c0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.666 191.027-426.666 426.667 0 235.642 191.025 426.667 426.666 426.667 235.639 0 426.667-191.025 426.667-426.667zM512 203.512c-74.769 0-140.556 30.771-178.649 77.35l60.473 60.471c19.298-30.827 64.941-52.489 118.176-52.489s98.88 21.662 118.178 52.489l60.471-60.471c-38.093-46.579-103.881-77.35-178.65-77.35z" />
+<glyph unicode="&#xe7b7;" glyph-name="emoticon-devil" d="M64.032 849.637c38.509-38.065 100.949-70.092 178.559-92.1 73.46 59.887 167.241 95.796 269.409 95.796 102.165 0 195.947-35.91 269.41-95.797 77.606 22.008 140.049 54.036 178.556 92.1-1.203-69.6-36.42-133.471-94.554-183.846 46.242-68.208 73.254-150.511 73.254-239.124 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667 0 88.612 27.013 170.915 73.254 239.124-58.133 50.375-93.349 114.246-94.555 183.846zM853.333 426.667c0 188.513-152.819 341.333-341.333 341.333s-341.333-152.82-341.333-341.333c0-188.514 152.82-341.333 341.333-341.333s341.333 152.819 341.333 341.333zM448 512c0-34.133-29.867-64-64-64s-64 29.867-64 64v64l128-64zM704 512c0-34.133-29.867-64-64-64s-64 29.867-64 64l128 64v-64zM512 203.508c-74.769 0-140.557 30.775-178.649 77.355l60.473 60.471c19.298-30.827 64.941-52.489 118.176-52.489s98.88 21.662 118.174 52.489l60.476-60.471c-38.093-46.579-103.881-77.355-178.65-77.355z" />
+<glyph unicode="&#xe7b8;" glyph-name="emoticon-happy" d="M853.333 426.667c0 188.513-152.819 341.333-341.333 341.333s-341.333-152.82-341.333-341.333c0-188.514 152.82-341.333 341.333-341.333s341.333 152.819 341.333 341.333zM938.667 426.667c0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667 0 235.642 191.025 426.666 426.667 426.666 235.639 0 426.667-191.025 426.667-426.666zM426.667 533.334c0-34.133-29.867-64-64-64s-64 29.867-64 64c0 34.133 29.867 64 64 64s64-29.867 64-64zM725.333 533.334c0-34.133-29.867-64-64-64s-64 29.867-64 64c0 34.133 29.867 64 64 64s64-29.867 64-64zM512 203.508c-74.769 0-140.557 30.775-178.649 77.355l60.473 60.471c19.298-30.827 64.941-52.489 118.176-52.489s98.88 21.662 118.174 52.489l60.476-60.471c-38.093-46.579-103.881-77.355-178.65-77.355z" />
+<glyph unicode="&#xe7b9;" glyph-name="emoticon-neutral" d="M362.641 469.415c-35.371 0-64 28.672-64 64.001 0 35.328 28.629 64 64 64s64-28.672 64-64c0-35.329-28.629-64.001-64-64.001zM661.308 469.415c-35.371 0-64 28.672-64 64.001s28.629 64 64 64c35.371 0 64-28.672 64-64s-28.629-64.001-64-64.001zM511.974 85.415c188.587 0 341.333 152.832 341.333 341.333s-152.747 341.334-341.333 341.334c-188.588 0-341.335-152.832-341.335-341.334s152.747-341.333 341.335-341.333zM511.761 853.415c235.776 0 426.88-191.018 426.88-426.667s-191.104-426.667-426.88-426.667c-235.82 0-426.455 191.019-426.455 426.667s190.634 426.667 426.455 426.667zM384 341.334h256c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-256c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667z" />
+<glyph unicode="&#xe7ba;" glyph-name="emoticon-poop" d="M384 469.334c23.564 0 42.667-38.204 42.667-85.333s-19.103-85.333-42.667-85.333c-23.564 0-42.667 38.204-42.667 85.333s19.102 85.333 42.667 85.333zM640 469.334c23.565 0 42.667-38.204 42.667-85.333s-19.102-85.333-42.667-85.333c-23.565 0-42.667 38.204-42.667 85.333s19.102 85.333 42.667 85.333zM416 864c0 0 266.667-96 224-266.666 0 0 170.667 0 96-149.333 0 0 179.75-18.923 129.408-163.682-53.589-50.782-67.546-65.847-118.741-102.985l120.064 68.553c43.994-21.653 173.214-99.26 29.269-207.219-170.667-128-426.667-10.667-512-10.667s-170.667-32-213.333-32c-42.667 0-85.333 42.667-85.333 128s85.333 128 128 128c0 0-128 128 85.333 213.333 0 0-85.333 128 85.333 170.667 0 0-42.667 42.667 0 85.333s32 96 32 138.666zM341.333 213.334c56.889-49.779 113.779-99.554 170.667-99.554s113.779 49.775 170.667 99.554h-341.333zM384 512c-47.128 0-85.333-57.306-85.333-128s38.205-128 85.333-128c47.13 0 85.333 57.306 85.333 128s-38.204 128-85.333 128zM640 512c-47.13 0-85.333-57.306-85.333-128s38.204-128 85.333-128c47.13 0 85.333 57.306 85.333 128s-38.204 128-85.333 128z" />
+<glyph unicode="&#xe7bb;" glyph-name="emoticon-sad" d="M853.333 426.667c0 187.733-153.6 341.333-341.333 341.333s-341.333-153.6-341.333-341.333c0-187.733 153.6-341.333 341.333-341.333s341.333 153.6 341.333 341.333zM938.667 426.667c0-234.667-192-426.667-426.667-426.667s-426.667 192-426.667 426.667c0 234.667 192 426.666 426.667 426.666s426.667-192 426.667-426.666zM661.333 597.334c34.133 0 64-29.867 64-64s-29.867-64-64-64c-34.133 0-64 29.867-64 64s29.867 64 64 64zM426.667 533.334c0-34.133-29.867-64-64-64s-64 29.867-64 64c0 34.133 29.867 64 64 64s64-29.867 64-64zM512 341.334c74.769 0 140.557-30.771 178.65-77.35l-60.476-60.471c-19.294 30.822-64.939 52.489-118.174 52.489s-98.878-21.666-118.176-52.489l-60.473 60.471c38.092 46.579 103.88 77.35 178.649 77.35z" />
+<glyph unicode="&#xe7bc;" glyph-name="emoticon-tongue" d="M384 597.334c47.13 0 85.333-38.205 85.333-85.333 0-15.543-4.156-30.114-11.418-42.667-14.754 25.506-42.33 42.667-73.916 42.667s-59.163-17.161-73.917-42.667c-7.261 12.553-11.416 27.123-11.416 42.667 0 47.128 38.205 85.333 85.333 85.333zM640 597.334c47.13 0 85.333-38.205 85.333-85.333 0-15.543-4.156-30.114-11.418-42.667-14.754 25.506-42.33 42.667-73.916 42.667s-59.162-17.161-73.916-42.667c-7.262 12.553-11.418 27.123-11.418 42.667 0 47.128 38.204 85.333 85.333 85.333zM511.974 85.415c188.587 0 341.333 152.832 341.333 341.333s-152.747 341.334-341.333 341.334c-188.588 0-341.335-152.832-341.335-341.334s152.747-341.333 341.335-341.333zM511.761 853.415c235.776 0 426.88-191.018 426.88-426.667s-191.104-426.667-426.88-426.667c-235.82 0-426.455 191.019-426.455 426.667s190.634 426.667 426.455 426.667zM384 384h256c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667c0-85.333-38.204-128-85.333-128s-85.333 42.667-85.333 128h-85.334c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667z" />
+<glyph unicode="&#xe7bd;" glyph-name="emoticon" d="M511.974 192.081c99.413 0 183.68 62.123 217.899 149.333h-435.797c34.219-87.211 118.485-149.333 217.899-149.333zM362.641 469.415c35.37 0 64 28.672 64 64.001 0 35.328-28.63 64-64 64s-64-28.672-64-64c0-35.329 28.629-64.001 64-64.001zM661.308 469.415c35.371 0 64 28.672 64 64.001 0 35.328-28.629 64-64 64s-64-28.672-64-64c0-35.329 28.629-64.001 64-64.001zM511.974 85.415c-188.587 0-341.334 152.832-341.334 341.333 0 188.503 152.747 341.335 341.334 341.335s341.333-152.832 341.333-341.335c0-188.501-152.747-341.333-341.333-341.333zM511.761 853.416c-235.819 0-426.454-191.019-426.454-426.668 0-235.648 190.635-426.667 426.454-426.667 235.776 0 426.88 191.019 426.88 426.667s-191.104 426.668-426.88 426.668z" />
+<glyph unicode="&#xe7be;" glyph-name="engine-outline" d="M341.333 512h341.333v-341.333h-213.333l-85.333 85.333h-85.333v213.333zM298.667 768v-85.333h128v-85.333h-128l-85.333-85.333v-128h-85.333v128h-85.333v-341.333h85.333v128h85.333v-128h128l85.333-85.333h341.333v170.667h85.333v-128h128v426.667h-128v-128h-85.333v170.667h-256v85.333h128v85.333h-341.333z" />
+<glyph unicode="&#xe7bf;" glyph-name="engine" d="M298.667 768v-85.333h128v-85.333h-128l-85.333-85.333v-128h-85.333v128h-85.333v-341.333h85.333v128h85.333v-128h128l85.333-85.333h341.333v170.667h85.333v-128h128v426.667h-128v-128h-85.333v170.667h-256v85.333h128v85.333h-341.333z" />
+<glyph unicode="&#xe7c0;" glyph-name="equal-box" d="M725.308 256.047v85.333h-426.668v-85.333h426.668zM810.641 810.747c47.061 0 85.333-38.229 85.333-85.333v-597.332c0-47.104-38.272-85.333-85.333-85.333h-597.333c-47.189 0-85.333 38.229-85.333 85.333v597.332c0 47.104 38.144 85.333 85.333 85.333h597.333zM725.333 512v85.333h-426.667v-85.333h426.667z" />
+<glyph unicode="&#xe7c1;" glyph-name="equal" d="M810.667 512h-597.333v85.333h597.333v-85.333zM810.667 256h-597.333v85.333h597.333v-85.333z" />
+<glyph unicode="&#xe7c2;" glyph-name="eraser" d="M693.018 786.875l211.191-211.189c33.323-33.324 33.323-87.353 0-120.68l-392.209-392.209c-66.65-66.65-174.709-66.65-241.359 0l-150.85 150.852c-33.324 33.323-33.324 87.351 0 120.678l452.548 452.548c33.327 33.324 87.356 33.324 120.678 0zM180.131 273.989l150.849-150.852c33.325-33.323 87.355-33.323 120.68 0l150.848 150.852-211.188 211.187-211.189-211.187z" />
+<glyph unicode="&#xe7c3;" glyph-name="escalator" d="M853.333 597.334h-44.941l-512-512h-125.726c-47.128 0-85.333 38.204-85.333 85.333s38.205 85.333 85.333 85.333h55.034l72.966 72.964v183.036c0 23.564 19.102 42.667 42.667 42.667h42.667c23.564 0 42.667-19.103 42.667-42.667v-55.036l311.031 311.036h115.635c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333zM362.667 725.334c35.346 0 64-28.654 64-64s-28.654-64-64-64c-35.346 0-64 28.654-64 64s28.654 64 64 64z" />
+<glyph unicode="&#xe7c4;" glyph-name="etsy" d="M286.562 52.015c64.703 2.816 143.292 0 219.9 0 79.087 0 160.064 5.261 223.838 0 25.758-2.125 49.468-17.557 70.703-3.9 16.388 21.107 4.233 49.442 7.859 77.828 6.874 53.918 56.589 118.541-15.727 132.301-30.805-28.079-10.039-54.724-27.477-89.506-21.111-42.095-96.802-56.661-168.862-62.242-61.841-4.8-170.245-10.995-192.435 31.125-18.734 35.546-7.869 90.684-7.869 136.183 0 51.473-5.522 100.736 7.869 140.092 78.562-5.743 180.173 26.185 235.631-7.787 37.094-22.733 16.004-67.23 58.91-81.702 29.53 7.919 13.764 46.097 11.767 81.702-1.271 22.959-1.169 55.215 0 81.724 1.579 35.769 15.398 77.275-23.573 77.812-30.605-23.788-7.586-63.43-39.27-85.595-10.121-7.095-32.107-10.099-47.095-11.686-58.846-6.212-151.168-1.143-200.303 7.791-6.769 71.712-6.179 169.436 0 241.249 26.671 26.484 88.022 27.405 129.6 27.243 72.845-0.282 186.445-6.349 208.132-42.802 11.797-19.834 2.449-61.348 23.565-66.145 42.496-9.696 21.841 66.119 23.573 101.173 1.28 26.279 12.898 43.194 7.838 62.261-13.751 18.786-34.244 9.371-47.104 7.775-133.649-16.523-336.609-7.775-479.108-7.775-17.018 0-46.746 8.484-58.908-11.675-8.219-44.954 53.138-26.365 74.612-50.586 6.982-7.879 17.3-42.675 19.63-66.163 6.214-62.365 0-157.605 0-249.031 0-96.606 7.34-194.057 0-252.941-2.552-20.561-14.961-53.675-19.63-58.359-26.757-26.731-97.486 2.867-90.333-54.49 24.853-16.725 60.854-5.333 94.268-3.874z" />
+<glyph unicode="&#xe7c5;" glyph-name="evernote" d="M643.691 442.437c0 0 8.145 54.498 39.735 54.498 31.612 0 75.017-72.772 75.017-72.772s-99.017 18.274-114.752 18.274zM810.039 738.693c-14.741 25.411-91.874 54.69-131.904 54.69-39.983 0-103.151 0-103.151 0s-33.118 59.951-110.98 59.951c-77.927 0-72.684-34.732-72.684-64.389v-119.894l-35.318-37.281h-163.092c0 0-45.947-30.388-45.947-96.075s20.385-294.59 157.26-315.761c161.944-25.088 189.669 50.176 189.669 59.221 0 38.114 0.956 95.868 0.956 95.868s47.428-90.607 119.040-90.607c71.616 0 113.259-41.139 113.259-83.494 0-42.402 0-78.391 0-78.391s-2.667-49.067-44.753-49.067c-42.155 0-89.877 0-89.877 0s-29.495 22.972-29.495 54.746c0 31.761 14.421 40.393 31.262 40.393 16.828 0 30.66-1.954 30.66-1.954v66.825c0 0-135.633 0.883-135.633-102.967 0-103.825 70.933-130.505 127.804-130.505 56.811 0 92.642 0 92.642 0s167.283 21.513 167.283 352c0 330.525-52.245 361.264-66.999 386.693zM320.058 669.44l-138.316 0.152 173.293 174.355 0.038-140.62-35.015-33.887z" />
+<glyph unicode="&#xe7c6;" glyph-name="exclamation" d="M469.333 746.667h85.333v-469.333h-85.333v469.333zM554.667 192v-85.333h-85.333v85.333h85.333z" />
+<glyph unicode="&#xe7c7;" glyph-name="exit-to-app" d="M810.641 810.75h-597.334c-47.147 0-85.333-38.229-85.333-85.333v-170.667h85.333v170.667h597.334v-597.331h-597.334v170.667h-85.333v-170.667c0-47.108 38.187-85.333 85.333-85.333h597.334c47.104 0 85.333 38.225 85.333 85.333v597.331c0 47.104-38.229 85.333-85.333 85.333zM430.268 273.75l60.373-60.331 213.333 213.333-213.333 213.331-60.373-60.331 110.336-110.334h-412.63v-85.333h412.63l-110.336-110.336z" />
+<glyph unicode="&#xe7c8;" glyph-name="export" d="M981.333 426.667l-170.667 170.665v-127.999h-384v-85.333h384v-128zM42.667 170.667v511.999c0 47.36 38.4 85.333 85.333 85.333l512 0.001c46.933 0 85.333-37.973 85.333-85.333v-128h-85.333v128h-512v-511.999h512v128h85.333v-128c0-46.933-38.4-85.333-85.333-85.333h-512c-46.933 0-85.333 37.973-85.333 85.333z" />
+<glyph unicode="&#xe7c9;" glyph-name="eye-off" d="M504.934 554.037l134.315-134.312c0.128 2.385 0.725 4.608 0.725 7.040 0 70.694-57.301 127.998-128 127.998-2.432 0-4.651-0.596-7.040-0.727zM321.211 520.503l66.005-65.962c-2.005-8.964-3.242-18.219-3.242-27.776 0-70.699 57.302-128 128-128 9.6 0 18.859 1.233 27.776 3.2l66.005-65.967c-28.416-13.995-59.989-22.566-93.781-22.566-117.803 0-213.334 95.484-213.334 213.333 0 33.792 8.576 65.323 22.57 93.738zM85.307 756.448l116.651-116.693c-70.4-55.125-125.995-128.425-159.318-212.99 73.728-187.264 255.914-320 469.334-320 66.133 0 129.237 12.796 187.051 35.921l18.091-18.044 124.544-124.587 54.315 54.31-756.352 756.355zM511.974 640.097c117.803 0 213.333-95.532 213.333-213.332 0-27.563-5.632-53.722-15.147-77.909l124.672-124.672c64.341 53.803 115.243 123.221 146.475 202.581-73.728 187.261-255.872 319.998-469.333 319.998-59.733 0-116.865-10.708-169.985-29.781l92.076-92.076c24.192 9.516 50.347 15.19 77.909 15.19z" />
+<glyph unicode="&#xe7ca;" glyph-name="eye" d="M511.974 554.747c-70.699 0-128-57.3-128-127.999s57.301-128 128-128c70.699 0 128 57.301 128 128s-57.301 127.999-128 127.999zM511.974 213.415c-117.802 0-213.333 95.531-213.333 213.333s95.531 213.332 213.333 213.332 213.333-95.531 213.333-213.332c0-117.803-95.531-213.333-213.333-213.333zM511.974 746.747c-213.418 0-395.605-132.737-469.333-319.999 73.728-187.264 255.915-320 469.333-320 213.461 0 395.605 132.736 469.333 320-73.728 187.262-255.872 319.999-469.333 319.999z" />
+<glyph unicode="&#xe7cb;" glyph-name="eyedropper-variant" d="M295.253 128l-81.92 81.92 343.893 343.893 81.92-81.92zM883.627 698.454l-99.84 99.84c-16.64 16.64-43.52 16.64-60.16 0l-133.12-133.12-82.347 81.493-60.16-60.16 60.587-60.587-380.587-380.587v-202.667h202.667l380.587 380.587 60.587-60.587 60.16 60.16-81.92 81.92 133.12 133.12c17.067 17.067 17.067 43.947 0.427 60.587z" />
+<glyph unicode="&#xe7cc;" glyph-name="eyedropper" d="M825.438 438.405l-90.509-90.509-60.339 60.339-328.969-328.964-196.288-79.27-64 64 79.27 196.288 328.965 328.966-60.339 60.341 90.509 90.51 301.7-301.7zM714.982 810.665c49.984 49.987 131.029 49.987 181.018 0s49.988-131.031 0-181.018l-81.988-81.987-181.018 181.018 81.988 81.987zM237.125 212.13l-45.125-105.463 105.464 45.124 316.782 316.783-60.339 60.341-316.783-316.785z" />
+<glyph unicode="&#xe7cd;" glyph-name="facebook-box" d="M810.641 768.083v-128h-85.333c-23.552 0-42.667-19.072-42.667-42.667v-85.333h128v-128.001h-128v-298.667h-128v298.667h-85.333v128.001h85.333v106.667c0 82.517 66.859 149.333 149.333 149.333zM853.308 853.416h-682.667c-47.104 0-84.906-38.186-84.906-85.333l-0.427-682.668c0-47.083 38.229-85.333 85.333-85.333h682.667c47.104 0 85.333 38.251 85.333 85.333v682.668c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe7ce;" glyph-name="facebook" d="M725.312 853.334v-0.083h0.026v-170.666h-85.338c-29.44 0-42.667-34.507-42.667-64v-106.665h128v-170.667h-128v-341.333l-170.688 0.081 0.021 341.252h-128v170.667h128l0.004 170.666c0 94.257 76.407 170.666 170.667 170.666l127.974 0.082z" />
+<glyph unicode="&#xe7cf;" glyph-name="factory" d="M170.667 170.667v-85.333h170.667v85.333h-170.667zM170.667 341.334v-85.333h426.667v85.333h-426.667zM426.667 170.667v-85.333h170.667v85.333h-170.667zM682.667 341.334v-85.333h170.667v85.333h-170.667zM682.667 170.667v-85.333h170.667v85.333h-170.667zM85.333-0v597.333l213.333-170.666v170.666l213.333-170.666v170.666l213.333-170.666 42.667 426.666h128l42.667-426.667v-426.667h-853.333z" />
+<glyph unicode="&#xe7d0;" glyph-name="fan" d="M512 469.334c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667zM533.333 853.334c192 0 196.753-152.288 96-202.666-42.219-21.11-60.941-65.72-69.077-105.409 20.535-8.364 38.409-21.906 51.998-39.006 157.79 85.396 327.522 51.978 327.522-100.254 0-192-152.286-196.753-202.667-96-21.248 42.496-66.304 61.184-106.185 69.239-8.218-20.582-21.619-38.532-38.596-52.233 84.74-157.517 51.149-326.562-100.774-326.562-191.999 0-196.754 152.29-95.999 202.667 41.957 20.979 60.705 65.165 68.927 104.666-20.834 8.337-38.967 21.986-52.719 39.279-157.542-84.804-326.653-51.23-326.653 100.723 0 191.999 152.288 196.754 202.666 95.999 21.132-42.265 65.812-60.978 105.53-69.102 8.364 20.655 21.964 38.634 39.153 52.285-84.613 157.463-50.989 326.374 100.873 326.374z" />
+<glyph unicode="&#xe7d1;" glyph-name="fast-forward" d="M554.641 682.75v-511.998l362.667 256zM170.639 170.752l362.668 256-362.668 255.998v-511.998z" />
+<glyph unicode="&#xe7d2;" glyph-name="ferry" d="M255.974 682.749h512v-169.173l-256 83.84-256-83.84zM168.294 128.081h2.346c68.352 0 128.937 37.632 170.667 85.333 41.685-47.701 102.272-85.333 170.667-85.333 68.352 0 128.939 37.632 170.667 85.333 41.685-47.701 102.272-85.333 170.667-85.333h2.347l80.811 285.184c3.627 10.923 2.688 22.912-2.603 33.152-5.333 10.24-14.549 17.877-25.643 21.205l-54.912 18.005v197.121c0 47.147-38.229 85.333-85.333 85.333h-128v128h-256v-128h-128c-47.104 0-85.333-38.187-85.333-85.333v-197.121l-54.912-18.005c-11.094-3.328-20.31-10.965-25.643-21.205-5.292-10.24-6.229-22.229-2.601-33.152zM853.308 42.748c-59.349 0-118.656 20.053-170.667 56.491-104.021-72.917-237.355-72.917-341.334 0-52.010-36.437-111.318-56.491-170.667-56.491h-85.333v-85.333h85.333c58.667 0 116.906 14.793 170.667 42.411 107.478-55.253 233.814-55.253 341.334 0 53.76-27.618 112-42.411 170.667-42.411h85.333v85.333h-85.333z" />
+<glyph unicode="&#xe7d3;" glyph-name="file-cloud" d="M554.641 554.749h234.667l-234.667 234.667v-234.667zM255.974 853.416h341.334l256-256v-512.001c0-47.104-38.229-85.333-85.333-85.333h-512.428c-47.104 0-84.906 38.229-84.906 85.333l0.427 682.668c0 47.104 37.759 85.333 84.906 85.333zM668.907 297.899c-14.532 73.408-79.232 128.768-156.907 128.768-61.696 0-115.136-34.965-141.854-86.123-64.162-6.891-114.146-61.205-114.146-127.211 0-70.699 57.301-128 128-128h277.333c58.901 0 106.667 47.744 106.667 106.667 0 56.32-43.797 101.952-99.093 105.899z" />
+<glyph unicode="&#xe7d4;" glyph-name="file-delimited" d="M554.641 554.749h234.667l-234.667 234.667v-234.667zM255.974 853.416h341.334l256-256v-512.001c0-47.104-38.229-85.333-85.333-85.333h-512.428c-47.104 0-84.906 38.229-84.906 85.333l0.427 682.668c0 47.104 37.759 85.333 84.906 85.333zM597.333 298.667v170.667h-170.667v-170.667h98.133c12.8-85.333-12.8-128-110.933-186.935l49.067-34.931c91.733 51.2 134.4 179.2 134.4 221.867z" />
+<glyph unicode="&#xe7d5;" glyph-name="file-document-box" d="M597.734 213.415h-299.094v85.333h299.094zM725.734 384.081h-427.094v85.333h427.094zM725.734 554.749h-427.094v85.333h427.094zM810.641 810.749h-597.334c-47.147 0-85.333-38.229-85.333-85.333v-597.335c0-47.104 38.187-85.333 85.333-85.333h597.334c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe7d6;" glyph-name="file-document" d="M554.641 554.749h234.667l-234.667 234.667v-234.667zM255.974 853.416h341.334l256-256v-512.001c0-47.104-38.229-85.333-85.333-85.333h-512.428c-47.104 0-84.906 38.229-84.906 85.333l0.427 682.668c0 47.104 37.759 85.333 84.906 85.333zM640 170.667v85.333h-384.426v-85.333h384.426zM768 341.334v85.333h-512.426v-85.333h512.426z" />
+<glyph unicode="&#xe7d7;" glyph-name="file-excel-box" d="M691.183 213.415h-85.333l-93.867 162.133-93.867-162.133h-85.333l136.534 213.333-136.534 213.335h85.333l93.867-162.135 93.867 162.135h85.333l-136.533-213.335zM810.65 810.749h-597.333c-47.147 0-85.333-38.229-85.333-85.333v-597.335c0-47.104 38.186-85.333 85.333-85.333h597.333c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe7d8;" glyph-name="file-excel" d="M256 853.334h341.333l256-256v-512c0-47.13-38.204-85.333-85.333-85.333h-512c-47.128 0-85.333 38.204-85.333 85.333v682.667c0 47.128 38.205 85.333 85.333 85.333zM554.667 789.332v-234.667h234.667l-234.667 234.667zM725.333 469.334h-170.667v-85.333h42.667l-85.333-71.113-85.333 71.113h42.667v85.333h-170.667v-85.333h42.667l128-106.667-128-106.667h-42.667v-85.333h170.667v85.333h-42.667l85.333 71.113 85.333-71.113h-42.667v-85.333h170.667v85.333h-42.667l-128 106.667 128 106.667h42.667v85.333z" />
+<glyph unicode="&#xe7d9;" glyph-name="file-find" d="M384 384c0-70.827 57.173-128 128-128s128 57.173 128 128c0 70.827-57.173 128-128 128s-128-57.173-128-128zM853.333 102.827v494.507l-256 256h-341.333c-46.933 0-84.907-38.4-84.907-85.333l-0.427-682.667c0-46.933 37.973-85.333 84.907-85.333h512.427c19.2 0 36.267 6.4 50.773 17.067l-189.013 189.013c-34.133-22.187-74.24-35.413-117.76-35.413-117.76 0-213.333 95.573-213.333 213.333s95.573 213.333 213.333 213.333c117.76 0 213.333-95.573 213.333-213.333 0-43.52-13.227-83.627-35.413-117.333l163.413-163.84z" />
+<glyph unicode="&#xe7da;" glyph-name="file-hidden" d="M554.641 554.749h42.692v-85.416h-128v170.667h85.308v-85.251zM789.308 554.749l-90.295 90.295 53.333 53.332 100.962-100.961v-85.415h-85.308v-42.667h-128v85.415h149.308zM554.667 789.39v63.943h-42.667v-85.333h42.641v-85.334h-85.308v85.333h-85.334v85.333h-42.667v-85.333h-85.333v-42.667h-84.959l0.026 42.749c0 47.104 37.759 85.332 84.906 85.332h341.334l100.732-100.732-53.333-53.333-90.039 90.040zM853.308 85.415c0-47.104-38.229-85.333-85.333-85.333h-85.308v85.252h85.333v42.667h85.308v-42.586zM768 298.667h85.308v-128h-85.308v128zM512 0.081v85.252h128v-85.252h-128zM341.333 0.081v85.252h128v-85.252h-128zM255.546 0.081c-47.104 0-84.906 38.229-84.906 85.333l0.053 85.252h85.306v-85.333h42.667v-85.252h-43.12zM170.801 341.334h85.199v-128h-85.28l0.080 128zM170.907 512h85.092v-128h-85.173l0.080 128zM768 469.334h85.308v-128h-85.308v128zM171.014 682.666h84.986v-128h-85.066l0.080 128z" />
+<glyph unicode="&#xe7db;" glyph-name="file-image-box" d="M362.641 362.748l106.667-128.256 149.333 192.256 192-256h-597.334zM895.974 128.081v597.335c0 47.147-38.229 85.333-85.333 85.333h-597.334c-47.104 0-85.333-38.186-85.333-85.333v-597.335c0-47.147 38.229-85.333 85.333-85.333h597.334c47.104 0 85.333 38.187 85.333 85.333z" />
+<glyph unicode="&#xe7dc;" glyph-name="file-image" d="M554.641 554.749h234.667l-234.667 234.667v-234.667zM255.974 853.415h341.334l256-256v-512.001c0-47.104-38.229-85.333-85.333-85.333h-512.428c-47.104 0-84.906 38.229-84.906 85.333l0.427 682.668c0 47.104 37.759 85.333 84.906 85.333zM256 85.334h512v341.333l-170.667-170.667-85.333 85.333-256-256zM341.333 554.667c-47.128 0-85.333-38.205-85.333-85.333 0-47.13 38.205-85.333 85.333-85.333s85.333 38.204 85.333 85.333c0 47.128-38.205 85.333-85.333 85.333z" />
+<glyph unicode="&#xe7dd;" glyph-name="file-multiple" d="M640 640h234.667l-234.667 234.667v-234.667zM341.333 938.667h341.333l256-256v-512c0-47.104-38.229-85.333-85.333-85.333h-512.427c-47.104 0-84.906 38.229-84.906 85.333l0.427 682.667c0 47.104 37.759 85.333 84.906 85.333zM170.667 768v-768h682.667v-85.333h-682.667c-46.933 0-85.333 38.4-85.333 85.333v768h85.333z" />
+<glyph unicode="&#xe7de;" glyph-name="file-music" d="M554.641 554.749h234.667l-234.667 234.667v-234.667zM255.974 853.415h341.334l256-256v-512.001c0-47.104-38.229-85.333-85.333-85.333h-512.428c-47.104 0-84.906 38.229-84.906 85.333l0.427 682.668c0 47.104 37.759 85.333 84.906 85.333zM384 256c-47.128 0-85.333-38.204-85.333-85.333s38.205-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333v213.333h128v85.333h-170.667v-224.751c-12.552 7.262-27.124 11.418-42.667 11.418z" />
+<glyph unicode="&#xe7df;" glyph-name="file-outline" d="M554.641 554.749h234.667l-234.667 234.667v-234.667zM255.974 853.416h341.334l256-256v-512.001c0-47.104-38.229-85.333-85.333-85.333h-512.428c-47.104 0-84.906 38.229-84.906 85.333l0.427 682.668c0 47.104 37.759 85.333 84.906 85.333zM469.333 768h-213.333v-682.667h512v384h-298.667v298.667z" />
+<glyph unicode="&#xe7e0;" glyph-name="file-pdf-box" d="M487.787 472.103c-9.899-31.872-24.107-65.664-43.349-102.741-8.405-16.171-16.597-31.36-21.035-44.203l4.651 1.792v-0.043c54.144 20.907 105.344 32.853 142.549 39.467-6.485 4.565-12.501 9.216-17.835 13.824-25.216 21.717-47.488 53.291-64.981 91.904zM764.011 309.415c-6.912-8.277-20.011-12.757-38.357-12.757-32.683 0-84.395 9.771-127.36 31.531-74.453-7.723-129.365-17.877-172.715-32-2.262-0.853-4.992-1.877-7.85-3.029-53.035-90.539-92.203-130.944-126.891-130.944-6.529 0-12.843 1.493-18.731 4.437l-20.48 13.44-0.982 2.219c-3.37 7.381-3.968 14.72-2.26 22.997 4.522 22.571 27.904 58.24 80.298 90.368 8.107 5.931 20.693 12.928 37.973 20.907 12.63 22.272 26.284 48.128 40.62 77.013 21.845 43.733 35.413 87.211 46.379 124.759l-0.171 0.512c-15.701 51.669-25.173 82.73-9.344 139.307 4.651 16.469 17.835 33.109 33.92 33.109l10.069-0.086c9.984 0 18.987-3.583 25.899-10.41 28.117-28.117 15.232-96.725 0.939-153.387-0.683-2.773-1.152-4.651-1.493-6.017 16.811-48.129 40.917-86.828 68.096-109.1 10.88-8.619 23.253-17.024 36.779-24.96 19.456 2.133 38.059 3.157 55.381 3.157 52.907 0 84.693-9.557 97.195-29.312 4.523-7.040 6.357-15.189 5.248-23.509-0.341-10.837-4.48-20.565-12.16-28.245zM810.645 810.749h-597.334c-47.146 0-85.333-38.186-85.333-85.333v-597.335c0-47.104 38.188-85.333 85.333-85.333h597.334c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.147-38.229 85.333-85.333 85.333zM747.2 339.537c-4.736 4.565-22.229 15.189-81.792 15.189-2.944 0-5.931 0-9.771-4.267 31.488-13.696 61.739-21.845 81.152-21.845 2.987 0 5.76 0.213 8.32 0.597l1.451 0.299c2.048 0.683 3.413 1.323 3.84 5.504-0.64 1.067-1.621 2.731-3.2 4.523zM355.392 277.5c-9.046-5.291-16.043-9.899-20.31-13.44-30.55-27.691-49.494-55.68-51.84-72.235 19.371 6.699 44.501 34.688 72.15 85.675zM484.075 572.116l2.304 1.621c3.115 13.824 5.163 25.642 6.869 35.115l1.28 6.954c4.139 23.082 3.584 36.395-4.139 46.72l-6.315 2.133c-0.811-1.237-2.048-3.072-2.859-5.034-7.125-17.707-6.869-49.025 2.859-87.509z" />
+<glyph unicode="&#xe7e1;" glyph-name="file-pdf" d="M597.333 554.666h234.667l-234.667 234.667v-234.667zM298.667 853.333h341.333l256-256v-511.999c0-47.104-38.229-85.333-85.333-85.333h-512.427c-47.104 0-84.906 38.229-84.906 85.333l0.427 682.666c0 47.104 37.759 85.333 84.906 85.333zM509.12 408.103c17.493-38.613 39.765-70.187 64.981-91.904l17.835-13.824c-37.205-6.613-88.405-18.56-142.549-39.467v0.043l-4.651-1.792 21.035 44.203c19.243 37.077 33.451 70.869 43.349 102.741zM785.344 245.415c7.68 7.68 11.819 17.408 12.156 28.245 1.114 8.32-0.721 16.469-5.248 23.509-12.501 19.755-44.284 29.312-97.19 29.312l-55.381-3.157-36.779 24.96c-27.183 22.272-51.285 60.971-68.096 109.099l1.493 6.016c14.293 56.661 27.179 125.271-0.943 153.387-6.908 6.826-15.91 10.41-25.894 10.41l-10.069 0.087c-16.090 0-29.269-16.64-33.92-33.109-15.829-56.576-6.357-87.638 9.344-139.308l0.166-0.512c-10.965-37.547-24.529-81.024-46.379-124.757l-40.616-77.013-37.974-20.907c-52.394-32.128-75.776-67.797-80.297-90.368-1.708-8.277-1.111-15.616 2.26-22.997l0.981-2.219 20.481-13.44 18.729-4.437c34.687 0 73.856 40.405 126.893 130.944l7.846 3.029c43.349 14.123 98.266 24.277 172.719 32 42.965-21.76 94.677-31.531 127.356-31.531 18.351 0 31.445 4.48 38.362 12.757zM768.529 275.537l3.2-4.523c-0.427-4.181-1.792-4.821-3.836-5.504l-1.451-0.299-8.32-0.597c-19.418 0-49.668 8.149-81.152 21.845 3.84 4.267 6.822 4.267 9.771 4.267 59.563 0 77.052-10.624 81.788-15.189zM376.724 213.5c-27.649-50.987-52.778-78.976-72.149-85.675 2.345 16.555 21.29 44.544 51.84 72.235l20.309 13.44zM505.408 508.113c-9.728 38.485-9.988 69.803-2.859 87.509l2.859 5.035 6.31-2.134c7.727-10.324 8.282-23.637 4.143-46.719l-1.28-6.955-6.869-35.116-2.304-1.621z" />
+<glyph unicode="&#xe7e2;" glyph-name="file-powerpoint-box" d="M418.101 367.019h106.665c64 0 92.203 11.652 119.467 34.987 27.264 23.343 38.4 56.704 38.4 100.181 0 41.474-10.624 74.795-38.4 100.055-27.733 25.215-54.272 37.844-119.467 37.844h-183.465v-426.667h76.8v153.6zM810.633 810.753c47.147 0 85.333-38.229 85.333-85.333v-597.334c0-47.147-38.187-85.333-85.333-85.333h-597.332c-47.103 0-85.333 38.187-85.333 85.333v597.334c0 47.104 38.231 85.333 85.333 85.333h597.332zM418.1 426.748v153.602h98.132c28.207 0 50.048-10.583 64-25.601 13.995-15.017 21.333-30.634 21.333-53.121 0-23.676-7.723-40.448-21.333-53.547-13.611-13.141-29.739-21.333-58.752-21.333h-103.38z" />
+<glyph unicode="&#xe7e3;" glyph-name="file-powerpoint" d="M256 853.334h341.333l256-256v-512c0-47.13-38.204-85.333-85.333-85.333h-512c-47.128 0-85.333 38.204-85.333 85.333v682.667c0 47.128 38.205 85.333 85.333 85.333zM554.667 789.334v-234.667h234.667l-234.667 234.667zM341.333 469.334v-85.333h42.667v-256h-42.667v-42.667h170.667v42.667h-42.667v85.333h85.333c70.69 0 128 57.306 128 128 0 70.69-57.31 128-128 128h-213.333zM554.667 384c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-85.333v85.333h85.333z" />
+<glyph unicode="&#xe7e4;" glyph-name="file-presentation-box" d="M810.641 256.081h-597.334v341.335h597.334zM810.641 810.749h-597.334c-47.147 0-84.906-38.229-84.906-85.333v-597.335c0-47.104 37.759-85.333 84.906-85.333h597.334c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe7e5;" glyph-name="file-video" d="M554.641 554.749h234.667l-234.667 234.667v-234.667zM255.974 853.416h341.334l256-256v-512.001c0-47.104-38.229-85.333-85.333-85.333h-512.428c-47.104 0-84.906 38.229-84.906 85.333l0.427 682.668c0 47.104 37.759 85.333 84.906 85.333zM725.333 128v256l-128-93.867v93.867h-298.667v-256h298.667v93.867l128-93.867z" />
+<glyph unicode="&#xe7e6;" glyph-name="file-word-box" d="M661.308 213.415h-64l-85.333 320.001-85.332-320.001h-64l-102.4 426.668h72.532l65.793-320.3 83.54 320.3h59.733l84.139-320.3 65.195 320.3h72.533zM810.641 810.749h-597.332c-47.147 0-85.333-38.229-85.333-85.333v-597.335c0-47.104 38.186-85.333 85.333-85.333h597.332c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe7e7;" glyph-name="file-word" d="M256 853.334h341.333l256-256v-512c0-47.13-38.204-85.333-85.333-85.333h-512c-47.128 0-85.333 38.204-85.333 85.333v682.667c0 47.128 38.205 85.333 85.333 85.333zM554.667 789.333v-234.667h234.667l-234.667 234.667zM298.667 384l64-298.667h85.334l64 128 64-128h85.333l64 298.667h42.667v85.333h-170.667v-85.333h42.667l-38.4-179.2-46.933 93.867h-85.333l-46.934-93.867-38.4 179.2h42.667v85.333h-170.667v-85.333h42.667z" />
+<glyph unicode="&#xe7e8;" glyph-name="file-xml" d="M554.641 554.749h234.667l-234.667 234.667v-234.667zM255.974 853.416h341.334l256-256v-512.001c0-47.104-38.229-85.333-85.333-85.333h-512.428c-47.104 0-84.906 38.229-84.906 85.333l0.427 682.668c0 47.104 37.759 85.333 84.906 85.333zM261.187 277.334l159.686-159.684 60.339 60.339-99.345 99.345 99.345 99.345-60.339 60.339-159.686-159.684zM737.212 277.334l-159.684 159.684-60.339-60.339 99.345-99.345-99.345-99.345 60.339-60.339 159.684 159.684z" />
+<glyph unicode="&#xe7e9;" glyph-name="file" d="M554.641 554.749v234.667l234.667-234.667zM255.974 853.416c-47.147 0-84.906-38.229-84.906-85.333l-0.427-682.668c0-47.104 37.802-85.333 84.906-85.333h512.428c47.104 0 85.333 38.229 85.333 85.333v512.001l-256 256h-341.334z" />
+<glyph unicode="&#xe7ea;" glyph-name="fill" d="M810.667 448c0 0-85.333-92.459-85.333-149.333 0-47.104 38.229-85.333 85.333-85.333s85.333 38.229 85.333 85.333c0 56.875-85.333 149.333-85.333 149.333zM627.998 512.889l-405.833-0.889 204.501 204.459 201.331-203.57zM706.603 557.27l-381.44 381.397-60.331-60.331 101.504-101.504-219.605-219.563c-24.96-25.003-24.96-65.536 0-90.539l234.667-234.667c12.501-12.501 28.885-18.731 45.269-18.731s32.768 6.229 45.269 18.731l234.667 234.667c24.96 25.003 24.96 65.536 0 90.539zM0 85.334h1024v-170.667h-1024v170.667z" />
+<glyph unicode="&#xe7eb;" glyph-name="film" d="M149.333 810.667h64v51.2c0 18.851 15.282 34.133 34.133 34.133h187.733c18.85 0 34.133-15.282 34.133-34.133v-51.2h64c35.345 0 64-28.654 64-64v-21.333h341.333v-640h-341.333v-21.333c0-35.345-28.655-64-64-64h-384c-35.346 0-64 28.655-64 64v682.667c0 35.346 28.654 64 64 64zM768 640v-85.333h85.333v85.333h-85.333zM597.333 640v-85.333h85.333v85.333h-85.333zM426.667 640v-85.333h85.333v85.333h-85.333zM597.333 256v-85.333h85.333v85.333h-85.333zM768 256v-85.333h85.333v85.333h-85.333zM426.667 256v-85.333h85.333v85.333h-85.333z" />
+<glyph unicode="&#xe7ec;" glyph-name="filmstrip-off" d="M42.667 756.545l54.49 54.122 798.818-798.818-54.097-54.515-159.236 159.236v-73.818h-341.334v85.333h-85.333v-85.333h-85.333v585.819l-127.974 127.974zM767.974 554.75v85.333h-85.333v-85.333h85.333zM767.974 384.081v85.333h-85.333v-85.333h85.333zM767.974 298.752h-50.291l-426.665 426.665h50.289v85.333h341.334v-85.333h85.333v85.333h85.333v-647.622l-85.333 85.333v50.291zM341.307 384.081v73.822l-11.512 11.511h-73.821v-85.333h85.333zM341.307 213.419v85.333h-85.333v-85.333h85.333zM255.974 810.75v-50.289l-50.289 50.289h50.289z" />
+<glyph unicode="&#xe7ed;" glyph-name="filmstrip" d="M767.974 554.75h-85.333v85.333h85.333zM767.974 384.086h-85.333v85.333h85.333zM767.974 213.419h-85.333v85.333h85.333zM341.307 554.75h-85.333v85.333h85.333zM341.307 384.086h-85.333v85.333h85.333zM341.307 213.419h-85.333v85.333h85.333zM767.974 810.75v-85.333h-85.333v85.333h-341.334v-85.333h-85.333v85.333h-85.333v-767.998h85.333v85.333h85.333v-85.333h341.334v85.333h85.333v-85.333h85.333v767.998h-85.333z" />
+<glyph unicode="&#xe7ee;" glyph-name="filter-outline" d="M128 853.333l768-0.479v-84.854h-3.383l-252.617-252.615v-554.169l-256 256v298.796l-251.988 251.988h-4.012v85.333zM469.333 252.561l85.333-85.333v387.439h3.934l213.333 213.333h-519.242l213.335-213.333h3.307v-302.106z" />
+<glyph unicode="&#xe7ef;" glyph-name="filter-remove-outline" d="M628.574 49.989l121.438 121.438-121.438 119.919 60.339 60.339 121.438-119.919 119.923 119.919 60.339-60.339-119.919-119.919 119.919-121.438-60.339-60.339-119.923 121.438-121.438-121.438-60.339 60.339zM85.333 853.334l768-0.479v-84.854h-3.383l-252.617-252.615v-554.17l-256 256v298.797l-251.987 251.987h-4.013v85.333zM426.666 252.561l85.334-85.333v387.439h3.934l213.333 213.333h-519.242l213.333-213.333h3.308v-302.106z" />
+<glyph unicode="&#xe7f0;" glyph-name="filter-remove" d="M629.649 49.989l121.438 121.438-121.438 119.919 60.339 60.339 121.438-119.919 119.919 119.919 60.339-60.339-119.919-119.919 119.919-121.438-60.339-60.339-119.919 121.438-121.438-121.438-60.339 60.339zM85.333 853.334l768-0.479v-84.854h-3.383l-295.283-295.284v-511.501l-170.667 170.667v341.461l-294.653 294.656h-4.013v85.333z" />
+<glyph unicode="&#xe7f1;" glyph-name="filter-variant" d="M256 384h512v85.333h-512zM128 682.667v-85.333h768v85.333zM426.667 170.667h170.667v85.333h-170.667v-85.333z" />
+<glyph unicode="&#xe7f2;" glyph-name="filter" d="M128 853.334l768-0.479v-84.854h-3.383l-295.283-295.284v-511.501l-170.667 170.667v341.461l-294.654 294.656h-4.013v85.333z" />
+<glyph unicode="&#xe7f3;" glyph-name="fire" d="M499.695 128.081c-75.989 0-137.558 59.947-137.558 133.888 0 69.248 44.587 117.888 120.022 133.163 75.392 15.232 153.557 51.452 196.949 109.909 16.683-55.083 25.387-112.981 25.387-172.16 0-112.922-91.861-204.8-204.8-204.8zM575.983 910.205c0 0 31.573-112.981 31.573-204.715 0-87.979-57.685-159.275-145.621-159.275-88.022 0-154.753 71.296-154.753 159.275l1.152 15.403c-85.931-102.727-137.685-235.052-137.685-379.479 0-188.501 152.832-341.333 341.333-341.333s341.333 152.832 341.333 341.333c0 230.145-110.635 435.329-277.333 568.791z" />
+<glyph unicode="&#xe7f4;" glyph-name="fish" d="M512 85.334l32.23 128.922c-138.117 7.996-262.915 67.234-299.071 145.161-3.46-20.459-9.328-39.155-17.604-53.636-28.445-49.779-85.333-49.779-142.222-49.779 47.128 0 64 66.859 64 149.333s-16.872 149.333-64 149.333c56.889 0 113.777 0 142.222-49.779 8.276-14.481 14.144-33.178 17.604-53.636 28.104 60.574 109.763 109.852 209.603 132.553l-70.763 141.529c85.333 0 170.667 0 227.554-28.444 48.030-24.014 75.785-68.301 100.378-115.747 124.723-29.739 226.735-97.268 226.735-175.809 0-80.192-106.342-148.902-234.624-177.634-35.396-46.754-69.965-90.214-99.597-113.92-35.558-28.446-64-28.446-92.446-28.446zM725.333 469.334c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xe7f5;" glyph-name="flag-checkered-variant" d="M256 810.667c23.564 0 42.667-19.102 42.667-42.667v-37.333c45.333 18.667 106.667 37.333 170.667 37.333 128 0 128-85.333 213.333-85.333 128 0 170.667 85.333 170.667 85.333v-341.333c0 0-42.667-85.333-170.667-85.333s-128 85.333-213.333 85.333c-128 0-170.667-85.333-170.667-85.333v-298.667h-85.333v725.333c0 23.564 19.102 42.667 42.667 42.667zM469.333 565.334c52.096 0 88.29-27.83 128-49.509v-60.404c25.331-15.808 52.096-28.753 85.333-28.753 85.333 0 85.333 21.333 85.333 21.333v53.333c0 0-42.667-10.667-85.333-10.667-33.237 0-60.002 11.328-85.333 25.158v56.927c25.331-15.806 52.096-28.751 85.333-28.751 85.333 0 85.333 10.667 85.333 10.667v64c0 0-42.667-21.333-85.333-21.333-33.237 0-60.002 12.945-85.333 28.751v-53.334c-39.71 24.776-75.904 56.582-128 56.582v53.333c-85.333 0-170.667-53.334-170.667-53.334v-53.333c0 0 85.334 53.334 170.667 53.334v-64c-85.333 0-170.667-53.333-170.667-53.333v-64c0 0 85.333 64 170.667 64v53.333z" />
+<glyph unicode="&#xe7f6;" glyph-name="flag-checkered" d="M614.4 682.667h238.933v-426.667h-298.667l-17.067 85.333h-238.933v-298.667h-85.333v725.333h384l17.067-85.333zM597.333 341.334h85.333v85.333h85.333v85.333h-85.333v85.333h-85.333v-85.333l-42.667 85.333v85.334h-85.333v-85.333h-85.333v85.333h-85.333v-85.333h85.333v-85.333h-85.333v-85.333h85.333v85.333h85.333v-85.333h85.333v85.333l42.667-85.333v-85.333zM469.333 512v85.333h85.333v-85.333h-85.333zM597.333 512h85.333v-85.333h-85.333v85.333z" />
+<glyph unicode="&#xe7f7;" glyph-name="flag-outline-variant" d="M256 810.667c23.564 0 42.667-19.102 42.667-42.667v-37.333c45.333 18.667 106.667 37.333 170.667 37.333 128 0 128-85.333 213.333-85.333 128 0 170.667 85.333 170.667 85.333v-341.333c0 0-42.667-85.333-170.667-85.333s-128 85.333-213.333 85.333c-128 0-170.667-85.333-170.667-85.333v-298.667h-85.333v725.333c0 23.564 19.102 42.667 42.667 42.667zM298.667 629.333v-181.333c0 0 85.333 64 170.667 64s128-85.333 213.333-85.333c85.333 0 85.333 42.667 85.333 42.667v149.333c0 0-42.667-21.333-85.333-21.333-85.333 0-128 85.333-213.333 85.333s-170.667-53.334-170.667-53.334z" />
+<glyph unicode="&#xe7f8;" glyph-name="flag-outline" d="M618.667 682.667h234.667v-426.667h-298.667l-21.333 85.333h-234.667v-298.667h-85.333v725.333h384l21.333-85.334zM298.667 682.667v-256h255.996l21.338-85.333h192v256h-170.667l-21.333 85.333h-277.333z" />
+<glyph unicode="&#xe7f9;" glyph-name="flag-triangle" d="M298.667 853.334h85.333v-853.333h-85.333v853.333zM810.667 554.667l-341.333-238.933v477.866l341.333-238.933z" />
+<glyph unicode="&#xe7fa;" glyph-name="flag-variant" d="M256 810.667c23.564 0 42.667-19.102 42.667-42.667v-37.333c45.333 18.667 106.667 37.333 170.667 37.333 128 0 128-85.333 213.333-85.333 128 0 170.667 85.333 170.667 85.333v-341.333c0 0-42.667-85.333-170.667-85.333s-128 85.333-213.333 85.333c-128 0-170.667-85.333-170.667-85.333v-298.667h-85.333v725.333c0 23.564 19.102 42.667 42.667 42.667z" />
+<glyph unicode="&#xe7fb;" glyph-name="flag" d="M614.4 682.667l-17.067 85.333h-384v-725.333h85.333v298.667h238.933l17.067-85.333h298.667v426.667h-238.933z" />
+<glyph unicode="&#xe7fc;" glyph-name="flash-auto" d="M718.933 612.267l49.067 155.733 49.067-155.733zM810.667 853.334h-85.333l-136.533-384h81.067l29.867 85.333h136.533l29.867-85.333h81.067zM128 853.334v-512h128v-384l298.667 512h-170.667l170.667 384h-426.667z" />
+<glyph unicode="&#xe7fd;" glyph-name="flash-off" d="M725.333 512h-170.667l170.667 341.333h-426.667v-93.013l360.96-360.96zM139.52 810.667l-54.187-54.187 213.333-213.333v-159.147h128v-384l152.747 261.973 177.067-176.64 54.187 54.187-671.147 671.147z" />
+<glyph unicode="&#xe7fe;" glyph-name="flash" d="M298.667 853.334v-469.333h128v-384l298.667 512h-170.667l170.667 341.333h-426.667z" />
+<glyph unicode="&#xe7ff;" glyph-name="flashlight-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-159.211 159.211v-159.211h-256v415.211l-298.667 298.668zM768 725.333l-128-213.333h-135.565l-213.334 213.333h476.899zM768 768h-512v85.333h512v-85.333zM640 469.334v-92.898l-92.898 92.898h92.898z" />
+<glyph unicode="&#xe800;" glyph-name="flashlight" d="M384 512l-128 213.333h512l-128-213.333h-256zM768 768h-512v85.333h512v-85.333zM384-0v469.333h256v-469.333h-256zM512 384c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xe801;" glyph-name="flattr" d="M896 554.667v-256c0-141.385-114.615-256-256-256h-451.633l283.821 283.823c13.269 13.269 26.543 26.539 33.178 25.476s6.635-16.461 6.635-31.855v-106.778h85.333c70.694 0 128 57.306 128 128v238.3l170.667 170.666v-195.633zM128 298.667v256c0 141.385 114.615 256 256 256h451.631l-283.819-283.822c-13.269-13.27-26.543-26.54-33.178-25.477s-6.635 16.46-6.635 31.857v106.776h-85.334c-70.692 0-128-57.308-128-128v-238.302l-170.666-170.667v195.635z" />
+<glyph unicode="&#xe802;" glyph-name="flickr-after" d="M896 426.667c0-94.257-76.41-170.667-170.667-170.667s-170.667 76.41-170.667 170.667c0 94.257 76.41 170.667 170.667 170.667s170.667-76.41 170.667-170.667z" />
+<glyph unicode="&#xe803;" glyph-name="flickr-before" d="M469.333 426.667c0-94.257-76.41-170.667-170.667-170.667s-170.667 76.41-170.667 170.667c0 94.257 76.41 170.667 170.667 170.667s170.667-76.41 170.667-170.667z" />
+<glyph unicode="&#xe804;" glyph-name="flip-to-back" d="M639.974 213.419h85.333v85.333h-85.333zM639.974 725.417h85.333v85.333h-85.333zM213.307 640.084h-85.333v-511.998c0-47.108 38.186-85.333 85.333-85.333h512v85.333h-512zM810.641 213.419c47.061 0 85.333 38.225 85.333 85.333h-85.333zM810.641 554.75h85.333v85.333h-85.333zM810.641 384.086h85.333v85.333h-85.333zM383.974 213.419v85.333h-85.333c0-47.108 38.186-85.333 85.333-85.333zM554.641 810.75h-85.333v-85.333h85.333zM810.641 810.75v-85.333h85.333c0 47.104-38.272 85.333-85.333 85.333zM554.641 298.752h-85.333v-85.333h85.333zM383.974 810.75c-47.147 0-85.333-38.229-85.333-85.333h85.333zM383.974 469.419h-85.333v-85.333h85.333zM383.974 640.084h-85.333v-85.333h85.333v85.333z" />
+<glyph unicode="&#xe805;" glyph-name="flip-to-front" d="M298.641 42.752h85.333v85.333h-85.333zM469.308 42.752h85.333v85.333h-85.333zM810.641 298.752h-426.667v426.665h426.667zM810.641 810.75h-426.667c-47.147 0-85.333-38.229-85.333-85.333v-426.665c0-47.108 38.186-85.333 85.333-85.333h426.667c47.061 0 85.333 38.225 85.333 85.333v426.665c0 47.104-38.272 85.333-85.333 85.333zM639.974 42.752h85.333v85.333h-85.333zM127.974 554.75h85.333v85.333h-85.333zM213.307 42.752v85.333h-85.333c0-47.108 38.186-85.333 85.333-85.333zM127.974 213.419h85.333v85.333h-85.333zM127.974 384.086h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe806;" glyph-name="floppy" d="M192-0l-106.667 106.667v661.333c0 47.128 38.205 85.333 85.333 85.333h682.667c47.13 0 85.333-38.205 85.333-85.333v-682.666c0-47.13-38.204-85.333-85.333-85.333h-128v298.667c0 23.565-19.102 42.667-42.667 42.667h-384c-23.564 0-42.667-19.102-42.667-42.667v-298.667h-64zM213.333 768v-256c0-23.565 19.102-42.667 42.666-42.667h512c23.565 0 42.667 19.102 42.667 42.667v256h-597.333zM341.333 256h128v-170.667h-128v170.667zM853.333 768v-42.667h42.667v42.667h-42.667z" />
+<glyph unicode="&#xe807;" glyph-name="flower" d="M127.974 384.081c0-212.096 171.904-384 384-384 0 212.096-171.905 384-384 384zM511.974 704.083c58.923 0 106.667-47.744 106.667-106.667s-47.744-106.668-106.667-106.668c-58.923 0-106.667 47.746-106.667 106.668s47.744 106.667 106.667 106.667zM239.035 501.415c0-58.923 47.73-106.667 106.667-106.667 22.443 0 43.264 7.040 60.416 18.859-0.171-2.731-0.811-5.376-0.811-8.192 0-58.923 47.744-106.667 106.667-106.667s106.667 47.744 106.667 106.667c0 2.816-0.64 5.461-0.853 8.192 17.195-11.819 38.016-18.859 60.459-18.859 58.935 0 106.667 47.744 106.667 106.667 0 42.498-25.003 78.85-60.928 96.001 35.925 17.152 60.928 53.504 60.928 96 0 58.923-47.731 106.667-106.667 106.667-22.443 0-43.264-7.040-60.459-18.859 0.213 2.731 0.853 5.376 0.853 8.192 0 58.923-47.744 106.667-106.667 106.667s-106.667-47.744-106.667-106.667c0-2.816 0.64-5.461 0.811-8.192-17.152 11.819-37.973 18.859-60.416 18.859-58.936 0-106.667-47.744-106.667-106.667 0-42.496 25.003-78.848 60.928-96-35.926-17.152-60.928-53.504-60.928-96.001zM511.974 0.081c212.096 0 384 171.904 384 384-212.096 0-384-171.904-384-384z" />
+<glyph unicode="&#xe808;" glyph-name="folder-account" d="M810.641 213.415h-341.333v42.667c0 56.832 113.792 85.333 170.667 85.333s170.667-28.501 170.667-85.333zM639.974 554.749c47.083 0 85.333-38.229 85.333-85.335 0-47.061-38.251-85.333-85.333-85.333s-85.333 38.272-85.333 85.333c0 47.106 38.251 85.335 85.333 85.335zM853.308 682.749h-341.333l-85.333 85.333h-256c-47.147 0-84.916-38.229-84.916-85.333l-0.417-512.001c0-47.104 38.187-85.333 85.333-85.333h682.667c47.083 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.251 85.333-85.333 85.333z" />
+<glyph unicode="&#xe809;" glyph-name="folder-download" d="M853.308 682.749c47.083 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.251-85.333-85.333-85.333h-682.667c-47.147 0-85.333 38.229-85.333 85.333l0.417 512.001c0 47.104 37.77 85.333 84.916 85.333h256l85.333-85.333h341.333zM821.333 384h-138.667v170.666h-85.333v-170.666h-138.667l181.333-181.333z" />
+<glyph unicode="&#xe80a;" glyph-name="folder-google-drive" d="M586.645 554.749h102.016l121.173-213.335h-125.056l-109.269 193.75zM780.821 213.415h-236.672l59.733 106.667h218.112l11.093-19.584zM490.645 213.415l-46.933 91.179 121.131 211.756 64.043-113.623-106.069-189.312zM853.312 682.749h-341.333l-85.333 85.333h-256c-47.147 0-84.907-38.229-84.907-85.333l-0.427-512.001c0-47.104 38.187-85.333 85.333-85.333h682.667c47.104 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe80b;" glyph-name="folder-image" d="M213.333 213.334l192 256 149.333-192.427 106.667 128.427 149.333-192zM853.333 682.667h-341.333l-85.333 85.333h-256c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe80c;" glyph-name="folder-lock-open" d="M853.308 682.749c47.104 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.229-85.333-85.333-85.333h-682.667c-47.148 0-85.333 38.229-85.333 85.333l0.427 512.001c0 47.104 37.759 85.333 84.906 85.333h256l85.334-85.333h341.333zM810.667 213.334v170.667h-213.333v85.333c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667h85.333c0 70.691-57.31 127.999-128 127.999-70.694 0-128-57.308-128-127.999v-85.333h-42.667v-170.667h341.333z" />
+<glyph unicode="&#xe80d;" glyph-name="folder-lock" d="M853.308 682.749c47.104 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.229-85.333-85.333-85.333h-682.667c-47.148 0-85.333 38.229-85.333 85.333l0.427 512.001c0 47.104 37.759 85.333 84.906 85.333h256l85.334-85.333h341.333zM810.667 213.334v170.667h-42.667v42.667c0 70.69-57.306 127.999-128 127.999s-128-57.309-128-127.999v-42.667h-42.667v-170.667h341.333zM640 469.334c23.565 0 42.667-19.102 42.667-42.667v-42.667h-85.333v42.667c0 23.565 19.102 42.667 42.667 42.667z" />
+<glyph unicode="&#xe80e;" glyph-name="folder-move" d="M383.974 170.748v128h-170.667v170.667h170.667v128.001l213.334-213.335zM853.308 682.749h-341.333l-85.334 85.333h-256c-47.147 0-85.333-38.229-85.333-85.333v-512.001c0-47.104 38.187-85.333 85.333-85.333h682.667c47.104 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe80f;" glyph-name="folder-multiple-image" d="M298.667 298.667l192 256 149.333-192.427 106.667 128.427 149.333-192zM938.667 768h-341.333l-85.333 85.333h-256c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM85.333 682.667h-85.333v-213.333h0.427l-0.427-384c0-46.933 38.4-85.333 85.333-85.333h768v85.333h-768v597.333z" />
+<glyph unicode="&#xe810;" glyph-name="folder-multiple-outline" d="M938.667 768c46.933 0 85.333-38.4 85.333-85.333v-426.667c0-46.933-38.4-85.333-85.333-85.333h-682.667c-46.933 0-85.333 38.4-85.333 85.333l0.427 512c0 46.933 37.973 85.333 84.907 85.333h256l85.333-85.333h341.333zM85.333 682.667v-597.333h768v-85.333h-768c-46.933 0-85.333 38.4-85.333 85.333l0.427 384h-0.427v213.333h85.333zM256 682.667v-426.667h682.667v426.667h-682.667z" />
+<glyph unicode="&#xe811;" glyph-name="folder-multiple" d="M938.667 768h-341.333l-85.333 85.333h-256c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333zM85.333 682.667h-85.333v-213.333h0.427l-0.427-384c0-46.933 38.4-85.333 85.333-85.333h768v85.333h-768v597.333z" />
+<glyph unicode="&#xe812;" glyph-name="folder-outline-lock" d="M853.308 170.748v426.668h-682.667v-426.668h682.667zM853.308 682.749c47.104 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.229-85.333-85.333-85.333h-682.667c-47.148 0-85.333 38.229-85.333 85.333l0.427 512.001c0 47.104 37.759 85.333 84.906 85.333h256l85.334-85.333h341.333zM384 256v128h42.667v42.667c0 47.13 38.204 85.333 85.333 85.333s85.333-38.204 85.333-85.333v-42.667h42.667v-128h-256zM554.667 384v42.667c0 23.565-19.102 42.667-42.667 42.667s-42.667-19.102-42.667-42.667v-42.667h85.333z" />
+<glyph unicode="&#xe813;" glyph-name="folder-outline" d="M853.308 170.748h-682.667v426.668h682.667zM853.308 682.749h-341.333l-85.334 85.333h-256c-47.147 0-84.906-38.229-84.906-85.333l-0.427-512.001c0-47.104 38.186-85.333 85.333-85.333h682.667c47.104 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe814;" glyph-name="folder-plus" d="M426.639 768.083l85.335-85.333h341.333c47.083 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.251-85.333-85.333-85.333h-682.668c-47.147 0-85.333 38.229-85.333 85.333l0.427 512.001c0 47.104 37.76 85.333 84.907 85.333h256zM640 554.667v-128h-128v-85.333h128v-128h85.333v128h128v85.333h-128v128h-85.333z" />
+<glyph unicode="&#xe815;" glyph-name="folder-remove" d="M426.639 768.083l85.335-85.333h341.333c47.083 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.251-85.333-85.333-85.333h-682.668c-47.147 0-85.333 38.229-85.333 85.333l0.427 512.001c0 47.104 37.76 85.333 84.907 85.333h256zM531.819 474.509l90.509-90.509-90.509-90.509 60.339-60.339 90.509 90.509 90.509-90.509 60.339 60.339-90.509 90.509 90.509 90.509-60.339 60.34-90.509-90.51-90.509 90.51-60.339-60.34z" />
+<glyph unicode="&#xe816;" glyph-name="folder-upload" d="M853.333 682.667c47.083 0 85.333-38.229 85.333-85.333v-426.667c0-47.104-38.251-85.333-85.333-85.333h-682.667c-47.147 0-85.333 38.229-85.333 85.333l0.417 512c0 47.104 37.77 85.333 84.916 85.333h256l85.333-85.333h341.333zM458.667 384h138.667v-170.667h85.333v170.667h138.667l-181.333 181.333z" />
+<glyph unicode="&#xe817;" glyph-name="folder" d="M426.639 768.083h-256c-47.147 0-84.907-38.229-84.907-85.333l-0.427-512.001c0-47.104 38.187-85.333 85.333-85.333h682.668c47.083 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.251 85.333-85.333 85.333h-341.333l-85.335 85.333z" />
+<glyph unicode="&#xe818;" glyph-name="food-apple" d="M853.333 512c85.333-128-128-512-213.333-512s-85.333 42.667-128 42.667c-42.667 0-42.667-42.667-128-42.667s-298.667 384-213.333 512c85.333 128 213.333 128 298.667 85.333v128.001c-239.728-131.029-294.129 51.863-294.129 51.863s113.673 153.256 294.129-51.863v85.333h85.333v-213.334c85.333 42.667 213.333 42.667 298.667-85.333z" />
+<glyph unicode="&#xe819;" glyph-name="food-variant" d="M938.667 170.667c0-94.255-76.412-170.667-170.667-170.667h-128c-94.255 0-170.667 76.412-170.667 170.667v85.333h289.86l117.564 203.631 66.513-38.4-95.398-165.231h90.795v-85.333zM384-0h-298.667c0 128 0 256 14.222 391.113 11.376 108.070 31.851 220.69 54.147 334.221h-25.702v85.333h213.333v-85.333h-25.703c22.296-113.531 42.771-226.15 54.147-334.221 14.223-135.113 14.223-263.113 14.223-391.113z" />
+<glyph unicode="&#xe81a;" glyph-name="food" d="M661.333 42.667l-64 554.667h95.322l-48.516 193.629 74.496 18.667 53.197-212.296h166.835l-64-554.667h-213.333zM213.333 469.334h213.333c70.69 0 128-57.306 128-128h-469.333c0 70.694 57.308 128 128 128zM554.667 170.667c0-70.694-57.31-128-128-128h-213.333c-70.693 0-128 57.306-128 128h469.333zM128 298.667h213.333l64-64 64 64h42.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-384c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667z" />
+<glyph unicode="&#xe81b;" glyph-name="football-helmet" d="M576 426.667c-35.345 0-64-28.655-64-64s28.655-64 64-64c35.345 0 64 28.655 64 64s-28.655 64-64 64zM576 810.667c200.294 0 362.667-152.82 362.667-341.333 0-69.167 0-128-38.677-213.333-174.656 0-217.323-170.667-366.656-170.667-92.902 0-137.644 73.314-147.304 170.714l-2.030-0.047h-32.405l-54.794-183.441c-6.22-20.826-26.924-33.361-47.818-29.892h-120.982c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667v128c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667h160.025l20.494 68.608c-21.78 10.645-46.988 16.725-73.853 16.725l-18.237-0.947-3.095 43.614c0 188.513 162.371 341.333 362.667 341.333zM213.333 256v-128h10.968l38.234 128h-49.202z" />
+<glyph unicode="&#xe81c;" glyph-name="football" d="M320.924 617.743c70.396 70.397 160.906 120.68 249.738 142.469 88.836 21.789 175.991 15.085 223.061 8.241 47.074-6.844 54.054-13.828 60.762-60.759 6.703-46.931 13.129-133.809-8.802-222.501-21.926-88.695-72.209-179.204-142.609-249.6-70.396-70.4-160.905-120.683-249.6-142.609-88.692-21.931-175.57-15.505-222.501-8.802-46.931 6.707-53.915 13.687-60.759 60.762-6.844 47.070-13.549 134.225 8.241 223.061 21.789 88.832 72.073 179.342 142.469 249.738zM311.478 265.152l39.006-39.010 51.503 51.503 51.504-51.503 39.006 39.006-51.503 51.507 71.006 71.006 51.503-51.503 39.006 39.006-51.503 51.503 71.006 71.006 51.503-51.503 39.006 39.006-51.503 51.503 51.503 51.504-39.006 39.007-51.503-51.504-51.503 51.503-39.006-39.007 51.503-51.503-71.006-71.006-51.503 51.503-39.007-39.006 51.504-51.503-71.007-71.006-51.503 51.503-39.006-39.006 51.503-51.503-51.503-51.503z" />
+<glyph unicode="&#xe81d;" glyph-name="format-align-center" d="M128 810.667h768v-85.333h-768v85.333zM298.667 640h426.667v-85.333h-426.667v85.333zM128 469.334h768v-85.333h-768v85.333zM298.667 298.667h426.667v-85.333h-426.667v85.333zM128 128h768v-85.333h-768v85.333z" />
+<glyph unicode="&#xe81e;" glyph-name="format-align-justify" d="M128 810.667h768v-85.333h-768v85.333zM128 640h768v-85.333h-768v85.333zM128 469.334h768v-85.333h-768v85.333zM128 298.667h768v-85.333h-768v85.333zM128 128h768v-85.333h-768v85.333z" />
+<glyph unicode="&#xe81f;" glyph-name="format-align-left" d="M128 810.667h768v-85.333h-768v85.333zM128 640h512v-85.333h-512v85.333zM128 469.334h768v-85.333h-768v85.333zM128 298.667h512v-85.333h-512v85.333zM128 128h768v-85.333h-768v85.333z" />
+<glyph unicode="&#xe820;" glyph-name="format-align-right" d="M128 810.667h768v-85.333h-768v85.333zM384 640h512v-85.333h-512v85.333zM128 469.334h768v-85.333h-768v85.333zM384 298.667h512v-85.333h-512v85.333zM128 128h768v-85.333h-768v85.333z" />
+<glyph unicode="&#xe821;" glyph-name="format-bold" d="M575.974 277.419h-149.335v128h149.335c35.328 0 64-28.672 64-64s-28.672-64-64-64zM426.64 661.417h128.001c35.328 0 64-28.672 64-64s-28.672-64-64-64h-128.001zM665.574 478.464c41.216 28.753 70.4 75.39 70.4 118.953 0 96.214-74.453 170.667-170.667 170.667h-266.668v-597.331h300.46c89.344 0 158.208 72.448 158.208 161.788 0 64.687-36.821 120.064-91.733 145.924z" />
+<glyph unicode="&#xe822;" glyph-name="format-clear" d="M256 725.334v-7.68l120.32-120.32h102.4l-30.72-71.68 89.6-89.6 68.693 161.28h247.040v128h-597.333zM139.52 725.334l-54.187-54.187 297.387-297.387-105.387-245.76h128l66.987 156.16 241.493-241.493 54.187 54.187-628.48 628.48z" />
+<glyph unicode="&#xe823;" glyph-name="format-color-fill" d="M810.641 448.043c0 0-85.333-92.459-85.333-149.333 0-47.104 38.229-85.333 85.333-85.333s85.333 38.229 85.333 85.333c0 56.875-85.333 149.333-85.333 149.333zM222.139 512.042l204.501 204.458 204.502-204.458zM706.577 557.311l-381.44 381.397-60.331-60.331 101.504-101.504-219.605-219.563c-24.96-25.003-24.96-65.535 0-90.538l234.667-234.667c12.501-12.501 28.885-18.731 45.269-18.731s32.768 6.229 45.27 18.731l234.667 234.667c24.96 25.003 24.96 65.535 0 90.538z" />
+<glyph unicode="&#xe824;" glyph-name="format-color" d="M410.641 426.752l101.334 270.206 101.333-270.206zM469.308 810.75l-234.667-597.331h96l48 128h266.667l48-128h96l-234.667 597.331h-85.333z" />
+<glyph unicode="&#xe825;" glyph-name="format-float-center" d="M384 640h256v-256h-256v256zM128 810.667h768v-85.333h-768v85.333zM128 298.667h768v-85.333h-768v85.333zM128 128h597.333v-85.333h-597.333v85.333z" />
+<glyph unicode="&#xe826;" glyph-name="format-float-left" d="M128 640h256v-256h-256v256zM128 810.667h768v-85.333h-768v85.333zM896 640v-85.333h-426.667v85.333h426.667zM896 469.334v-85.333h-426.667v85.333h426.667zM128 298.667h597.333v-85.333h-597.333v85.333zM128 128h768v-85.333h-768v85.333z" />
+<glyph unicode="&#xe827;" glyph-name="format-float-none" d="M128 640h256v-256h-256v256zM128 810.667h768v-85.333h-768v85.333zM896 469.334v-85.333h-426.667v85.333h426.667zM128 298.667h597.333v-85.333h-597.333v85.333zM128 128h768v-85.333h-768v85.333z" />
+<glyph unicode="&#xe828;" glyph-name="format-float-right" d="M640 640h256v-256h-256v256zM128 810.667h768v-85.333h-768v85.333zM554.667 640v-85.333h-426.667v85.333h426.667zM384 469.334v-85.333h-256v85.333h256zM128 298.667h597.333v-85.333h-597.333v85.333zM128 128h768v-85.333h-768v85.333z" />
+<glyph unicode="&#xe829;" glyph-name="format-header-1" d="M128 768h85.333v-256h170.667v256h85.333v-597.333h-85.333v256h-170.667v-256h-85.333v597.333zM597.333 170.667v85.333h85.333v413.466l-106.667-61.584v98.535l106.667 61.584h85.333v-512h85.333v-85.333h-256z" />
+<glyph unicode="&#xe82a;" glyph-name="format-header-2" d="M128 768h85.333v-256h170.667v256h85.333v-597.333h-85.333v256h-170.667v-256h-85.333v597.333zM896 170.667h-256c-47.13 0-85.333 38.204-85.333 85.333 0 22.494 8.704 42.953 22.925 58.197l208.081 222.796c15.441 15.442 24.994 36.776 24.994 60.34 0 47.128-38.204 85.333-85.333 85.333s-85.333-38.205-85.333-85.333h-85.333c0 94.257 76.412 170.667 170.667 170.667s170.667-76.41 170.667-170.667c0-47.128-19.102-89.796-49.988-120.678l-206.012-220.655h256v-85.333z" />
+<glyph unicode="&#xe82b;" glyph-name="format-header-3" d="M128 768h85.333v-256h170.667v256h85.333v-597.333h-85.333v256h-170.667v-256h-85.333v597.333zM640 768h170.667c47.13 0 85.333-38.205 85.333-85.333v-426.667c0-47.13-38.204-85.333-85.333-85.333h-170.667c-47.13 0-85.333 38.204-85.333 85.333v42.667h85.333v-42.667h170.667v170.667h-170.667v85.333h170.667v170.667h-170.667v-42.667h-85.333v42.667c0 47.128 38.204 85.333 85.333 85.333z" />
+<glyph unicode="&#xe82c;" glyph-name="format-header-4" d="M128 768h85.333v-256h170.667v256h85.333v-597.333h-85.333v256h-170.667v-256h-85.333v597.333zM768 170.667v213.333h-213.333v85.333l213.333 298.667h85.333v-298.667h42.667v-85.333h-42.667v-213.333h-85.333zM768 469.334v152.88l-108.646-152.88h108.646z" />
+<glyph unicode="&#xe82d;" glyph-name="format-header-5" d="M128 768h85.333v-256h170.667v256h85.333v-597.333h-85.333v256h-170.667v-256h-85.333v597.333zM640 768h213.333v-85.333h-213.333v-170.667h85.333c94.255 0 170.667-76.412 170.667-170.667s-76.412-170.667-170.667-170.667h-85.333c-47.13 0-85.333 38.204-85.333 85.333v42.667h85.333v-42.667h85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333h-85.333c-47.13 0-85.333 38.204-85.333 85.333v170.667c0 47.128 38.204 85.333 85.333 85.333z" />
+<glyph unicode="&#xe82e;" glyph-name="format-header-6" d="M128 768h85.333v-256h170.667v256h85.333v-597.333h-85.333v256h-170.667v-256h-85.333v597.333zM640 768h170.667c47.13 0 85.333-38.205 85.333-85.333v-42.667h-85.333v42.667h-170.667v-170.667h170.667c47.13 0 85.333-38.204 85.333-85.333v-170.667c0-47.13-38.204-85.333-85.333-85.333h-170.667c-47.13 0-85.333 38.204-85.333 85.333v426.667c0 47.128 38.204 85.333 85.333 85.333zM640 426.667v-170.667h170.667v170.667h-170.667z" />
+<glyph unicode="&#xe82f;" glyph-name="format-header-decrease" d="M170.667 768h85.333v-256h170.667v256h85.333v-597.333h-85.333v256h-170.667v-256h-85.333v597.333zM871.040 622.347l-153.045-153.013 153.045-152.994-60.331-60.331-213.376 213.325 213.376 213.344 60.331-60.331z" />
+<glyph unicode="&#xe830;" glyph-name="format-header-down" d="M85.333 768h85.333v-256h170.667v256h85.333v-597.333h-85.333v256h-170.667v-256h-85.333v597.333zM878.345 572.374l-153.011-153.045-152.994 153.045-60.331-60.332 213.325-213.375 213.342 213.375-60.331 60.332z" />
+<glyph unicode="&#xe831;" glyph-name="format-header-equal" d="M170.667 768h85.333v-256h170.667v256h85.333v-597.333h-85.333v256h-170.667v-256h-85.333v597.333zM597.333 512v85.333h298.667v-85.333h-298.667zM597.333 426.667h298.667v-85.333h-298.667v85.333z" />
+<glyph unicode="&#xe832;" glyph-name="format-header-increase" d="M170.667 768h85.333v-256h170.667v256h85.333v-597.333h-85.333v256h-170.667v-256h-85.333v597.333zM622.293 622.347l153.045-153.013-153.045-152.994 60.331-60.331 213.376 213.325-213.376 213.344-60.331-60.331z" />
+<glyph unicode="&#xe833;" glyph-name="format-header-pound" d="M128 768h85.333v-256h170.667v256h85.333v-597.333h-85.333v256h-170.667v-256h-85.333v597.333zM554.667 597.334h98.739l13.406 128h85.333l-13.406-128h85.333l13.406 128h85.333l-13.406-128h71.927v-85.333h-80.866l-8.934-85.333h89.801v-85.333h-98.739l-13.406-128h-85.333l13.406 128h-85.333l-13.406-128h-85.333l13.406 128h-71.927v85.333h80.866l8.934 85.333h-89.801v85.333zM729.801 512l-8.934-85.333h85.333l8.934 85.333h-85.333z" />
+<glyph unicode="&#xe834;" glyph-name="format-header-up" d="M85.333 768h85.333v-256h170.667v256h85.333v-597.333h-85.333v256h-170.667v-256h-85.333v597.333zM878.345 323.627l-153.011 153.045-152.994-153.045-60.331 60.331 213.325 213.376 213.342-213.376-60.331-60.331z" />
+<glyph unicode="&#xe835;" glyph-name="format-indent-decrease" d="M469.333 384h426.667v85.333h-426.667zM469.333 554.667h426.667v85.333h-426.667zM128 810.667v-85.333h768v85.333zM128 42.667h768v85.333h-768zM128 426.667l170.667-170.667v341.333zM469.333 213.334h426.667v85.333h-426.667v-85.333z" />
+<glyph unicode="&#xe836;" glyph-name="format-indent-increase" d="M469.333 384h426.667v85.333h-426.667zM469.333 554.667h426.667v85.333h-426.667zM128 810.667v-85.333h768v85.333zM469.333 213.334h426.667v85.333h-426.667zM128 597.334v-341.333l170.667 170.667zM128 42.667h768v85.333h-768v-85.333z" />
+<glyph unicode="&#xe837;" glyph-name="format-italic" d="M426.667 768v-128h94.464l-146.261-341.333h-118.869v-128h341.333v128h-94.464l146.261 341.333h118.869v128h-341.333z" />
+<glyph unicode="&#xe838;" glyph-name="format-line-spacing" d="M426.641 384.086h512v85.333h-512zM426.641 128.086h512v85.333h-512zM426.641 640.084h512v85.333h-512zM255.974 640.084h106.667l-149.333 149.333-149.333-149.333h106.667v-426.665h-106.667l149.333-149.333 149.333 149.333h-106.667v426.665z" />
+<glyph unicode="&#xe839;" glyph-name="format-list-bulleted" d="M298.667 725.334v-85.333h597.333v85.333zM298.667 384h597.333v85.333h-597.333zM298.667 128h597.333v85.333h-597.333zM170.667 227.414c-31.573 0-56.747-25.6-56.747-56.747s25.6-56.747 56.747-56.747c31.147 0 56.747 25.6 56.747 56.747s-25.173 56.747-56.747 56.747zM170.667 746.667c-35.413 0-64-28.587-64-64s28.587-64 64-64c35.413 0 64 28.587 64 64s-28.587 64-64 64zM170.667 490.667c-35.413 0-64-28.587-64-64s28.587-64 64-64c35.413 0 64 28.587 64 64s-28.587 64-64 64z" />
+<glyph unicode="&#xe83a;" glyph-name="format-list-numbers" d="M298.64 384.086h597.334v85.333h-597.334zM298.64 128.086h597.334v85.333h-597.334zM298.64 640.084h597.334v85.333h-597.334zM85.307 469.419h76.8l-76.8-89.604v-38.396h128v42.667h-76.8l76.8 89.6v38.398h-128zM127.974 597.417h42.667v170.667h-85.333v-42.667h42.667zM85.307 213.419h85.333v-21.333h-42.667v-42.667h42.667v-21.333h-85.333v-42.667h128v170.667h-128v-42.667z" />
+<glyph unicode="&#xe83b;" glyph-name="format-object-inline" d="M341.333 640l213.333-426.666h-426.667l213.333 426.666zM128 810.667h768v-85.333h-768v85.333zM896 298.667v-85.333h-298.667v85.333h298.667zM128 128h768v-85.333h-768v85.333z" />
+<glyph unicode="&#xe83c;" glyph-name="format-object-square" d="M512 640l213.333-426.667h-426.667l213.333 426.667zM128 810.667h768v-85.333h-768v85.333zM128 640h128v-85.333h-128v85.333zM896 640v-85.333h-128v85.333h128zM128 469.334h128v-85.333h-128v85.333zM896 469.334v-85.333h-128v85.333h128zM128 298.667h128v-85.333h-128v85.333zM896 298.667v-85.333h-128v85.333h128zM128 128h768v-85.333h-768v85.333z" />
+<glyph unicode="&#xe83d;" glyph-name="format-object-tight" d="M512 640l213.333-426.667h-426.667l213.333 426.667zM128 810.667h768v-85.333h-768v85.333zM128 640h256v-85.333h-256v85.333zM896 640v-85.333h-256v85.333h256zM128 469.334h170.667v-85.333h-170.667v85.333zM896 469.334v-85.333h-170.667v85.333h170.667zM128 298.667h128v-85.333h-128v85.333zM896 298.667v-85.333h-128v85.333h128zM128 128h768v-85.333h-768v85.333z" />
+<glyph unicode="&#xe83e;" glyph-name="format-object-top-bottom" d="M512 640l213.333-426.667h-426.667l213.333 426.667zM128 810.667h768v-85.333h-768v85.333zM128 128h768v-85.333h-768v85.333z" />
+<glyph unicode="&#xe83f;" glyph-name="format-paint" d="M767.974 768.084v42.667c0 23.552-19.115 42.667-42.667 42.667h-512c-23.552 0-42.667-19.114-42.667-42.667v-170.667c0-23.552 19.115-42.667 42.667-42.667h512c23.552 0 42.667 19.115 42.667 42.667v42.667h42.667v-170.667h-426.667v-469.331c0-23.552 19.115-42.667 42.667-42.667h85.333c23.552 0 42.667 19.115 42.667 42.667v384h341.333v341.331h-128z" />
+<glyph unicode="&#xe840;" glyph-name="format-paragraph" d="M554.667 768c94.255 0 170.667-76.41 170.667-170.667 0-94.255-76.412-170.667-170.667-170.667h-85.333v-256h-85.333v597.333h170.667zM554.667 512c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333h-85.333v-170.667h85.333z" />
+<glyph unicode="&#xe841;" glyph-name="format-quote" d="M597.333 213.334h128l85.333 170.667v256h-256v-256h128zM256 213.334h128l85.333 170.667v256h-256v-256h128l-85.333-170.667z" />
+<glyph unicode="&#xe842;" glyph-name="format-size" d="M128 426.667h128v-298.667h128v298.667h128v128h-384zM384 768v-128h213.333v-512h128v512h213.333v128h-554.667z" />
+<glyph unicode="&#xe843;" glyph-name="format-strikethrough" d="M128 341.334h768v85.333h-768zM213.333 768v-128h213.333v-128h170.667v128h213.333v128zM426.667 128h170.667v128h-170.667v-128z" />
+<glyph unicode="&#xe844;" glyph-name="format-subscript" d="M682.667 622.506l-195.84-195.839 195.84-195.84-60.16-60.16-195.84 195.84-195.84-195.84-60.16 60.16 195.84 195.84-195.84 195.839 60.16 60.16 195.84-195.839 195.84 195.839 60.16-60.16zM932.198 41.387h-208.337v42.5l38.234 34.295c32.256 27.614 56.38 50.82 72.367 69.628 15.987 18.803 24.179 36.365 24.576 52.676 0.102 12.028-3.746 21.982-11.55 29.862-7.804 7.876-20.186 11.959-37.15 12.245-12.821-0.277-24.614-2.825-35.388-7.65l-27.878-16.29-19.571 49.975c11.294 8.981 25.233 16.457 41.818 22.421s34.961 9.058 55.13 9.289c33.229-0.585 58.551-9.591 75.972-27.025s26.193-39.791 26.317-67.068c-0.593-23.974-8.209-46.037-22.852-66.193-14.647-20.151-32.781-39.445-54.404-57.882l-27.311-22.157v-0.887h110.029v-57.741z" />
+<glyph unicode="&#xe845;" glyph-name="format-superscript" d="M682.667 622.506l-195.84-195.839 195.84-195.84-60.16-60.16-195.84 195.84-195.84-195.84-60.16 60.16 195.84 195.84-195.84 195.839 60.16 60.16 195.84-195.839 195.84 195.839 60.16-60.16zM932.181 555.378h-208.337v42.499l38.234 34.298c32.256 27.612 56.38 50.821 72.367 69.626s24.179 36.364 24.576 52.676c0.107 12.029-3.746 21.984-11.55 29.862s-20.186 11.961-37.15 12.248c-12.817-0.277-24.614-2.828-35.388-7.651l-27.874-16.291-19.571 49.975c11.294 8.983 25.229 16.457 41.813 22.422s34.961 9.060 55.13 9.287c33.229-0.584 58.556-9.592 75.972-27.025 17.421-17.433 26.193-39.788 26.317-67.067-0.589-23.975-8.209-46.039-22.852-66.191s-32.781-39.447-54.404-57.883l-27.307-22.156v-0.886h110.025v-57.742z" />
+<glyph unicode="&#xe846;" glyph-name="format-text" d="M789.333 768l49.694-185.458-41.212-11.043c-19.315 37.056-38.63 74.112-61.376 92.64s-48.926 18.528-75.106 18.528h-106.667v-448c0-21.333 0-42.667 14.221-53.333 14.225-10.667 42.667-10.667 71.113-10.667v-42.667h-256v42.667c28.445 0 56.887 0 71.113 10.667 14.221 10.667 14.221 32 14.221 53.333v448h-106.667c-26.179 0-52.359 0-75.106-18.528s-42.060-55.584-61.374-92.64l-41.213 11.043 49.693 185.458h554.666z" />
+<glyph unicode="&#xe847;" glyph-name="format-textdirection-l-to-r" d="M896 170.667l-170.667 170.667v-128h-512v-85.333h512v-128zM384 512v-213.333h85.333v469.333h85.333v-469.333h85.333v469.333h85.333v85.333h-341.333c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667z" />
+<glyph unicode="&#xe848;" glyph-name="format-textdirection-r-to-l" d="M341.333 213.334v128l-170.667-170.667 170.667-170.667v128h512v85.333zM426.667 512v-213.333h85.333v469.333h85.333v-469.333h85.333v469.333h85.333v85.333h-341.333c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667z" />
+<glyph unicode="&#xe849;" glyph-name="format-underline" d="M213.333 42.667h597.333v85.333h-597.333v-85.333zM512 213.334c141.355 0 256 114.645 256 256v341.333h-106.667v-341.333c0-82.475-66.859-149.333-149.333-149.333s-149.333 66.859-149.333 149.333v341.333h-106.667v-341.333c0-141.355 114.645-256 256-256z" />
+<glyph unicode="&#xe84a;" glyph-name="forum" d="M725.333 426.667v384c0 23.467-19.2 42.667-42.667 42.667h-554.667c-23.467 0-42.667-19.2-42.667-42.667v-597.333l170.667 170.667h426.667c23.467 0 42.667 19.2 42.667 42.667zM896 682.667h-85.333v-384h-554.667v-85.333c0-23.467 19.2-42.667 42.667-42.667h469.333l170.667-170.667v640c0 23.467-19.2 42.667-42.667 42.667z" />
+<glyph unicode="&#xe84b;" glyph-name="forward" d="M512 597.334v170.667l341.333-341.333-341.333-341.333v170.667h-341.333v341.333h341.333z" />
+<glyph unicode="&#xe84c;" glyph-name="foursquare" d="M725.333 725.334l-18.227-105.907c-2.283-10.766-15.838-22.093-28.407-22.093-12.565 0-166.699 0-166.699 0-19.955 0-44.907-13.604-44.907-33.541l-0.098-17.699c0-19.954 25.033-34.094 45.005-34.094 0 0 125.73 0 139.806 0 14.093 0 27.925-15.454 24.875-30.498-3.059-15.066-39.040-109.594-40.759-117.833-1.724-8.247-11.166-22.336-27.921-22.336-14.118 0-122.825 0-122.825 0-22.374 0-29.137-2.923-44.1-21.521-14.976-18.615-130.973-153.284-130.973-153.284-1.363-1.566-11.436 2.428-11.436 4.139v554.667c0 12.734 26.065 42.667 42.667 42.667 0 0 348.407 0 362.667 0 13.449 0 24.764-26.153 21.333-42.667zM725.001 322.215c5.082 20.557 76.156 329.766 95.194 422.363zM749.914 853.334c0 0-392.457 0-455.278 0-62.831 0-81.303-47.25-81.303-77.005 0-29.777 0-723.375 0-723.375 0-33.519 18.013-45.948 28.13-50.048 10.127-4.105 38.061-7.561 54.798 11.755 0 0 200.878 232.064 204.569 235.755 5.585 5.585 5.585 5.585 11.17 5.585 11.17 0 94.016 0 139.063 0 58.436 0 67.831 41.673 73.937 66.214 5.082 20.557 76.156 329.766 95.194 422.363 14.532 70.663-3.422 108.756-70.281 108.756z" />
+<glyph unicode="&#xe84d;" glyph-name="fridge" d="M384 42.667v-42.667h-85.333v42.667c-47.128 0-85.333 38.204-85.333 85.333v640c0 47.128 38.205 85.333 85.333 85.333h426.667c47.13 0 85.333-38.205 85.333-85.333v-640c0-47.13-38.204-85.333-85.333-85.333v-42.667h-85.333v42.667h-256zM298.666 768v-213.333h426.667v213.333h-426.667zM298.666 128h426.667v341.333h-426.667v-341.333zM341.333 426.667h85.333v-128h-85.333v128zM341.333 682.667h85.333v-85.333h-85.333v85.333z" />
+<glyph unicode="&#xe84e;" glyph-name="fullscreen-exit" d="M597.333 341.334h213.333v-85.333h-128v-128h-85.333v213.333zM213.333 341.334h213.333v-213.333h-85.333v128h-128v85.333zM341.333 725.334h85.333v-213.333h-213.333v85.333h128v128zM810.667 597.334v-85.333h-213.333v213.333h85.333v-128h128z" />
+<glyph unicode="&#xe84f;" glyph-name="fullscreen" d="M213.333 725.334h213.333v-85.333h-128v-128h-85.333v213.333zM597.333 725.333h213.333v-213.333h-85.333v128h-128v85.333zM725.333 341.334h85.333v-213.333h-213.333v85.333h128v128zM426.667 213.334v-85.333h-213.333v213.333h85.333v-128h128z" />
+<glyph unicode="&#xe850;" glyph-name="function" d="M665.545 713.041c-46.95 4.108-88.341-30.622-92.446-77.571l-10.803-123.47h120.371v-85.333h-127.838l-18.918-216.239c-8.213-93.901-90.991-163.358-184.891-155.145-55.732 4.877-102.855 36.019-130.237 80.166l63.822 63.821c10.179-31.74 38.564-55.889 73.852-58.978 46.949-4.109 88.34 30.622 92.445 77.572l18.27 208.802h-127.838v85.333h135.305l11.452 130.906c8.213 93.898 90.991 163.357 184.892 155.142 55.731-4.876 102.852-36.020 130.236-80.165l-63.821-63.821c-10.18 31.741-38.566 55.891-73.852 58.978z" />
+<glyph unicode="&#xe851;" glyph-name="gamepad-variant" d="M298.667 682.667h426.667c141.385 0 256-114.615 256-256s-114.615-256-256-256c-75.819 0-143.94 32.96-190.814 85.333h-45.039c-46.874-52.373-114.995-85.333-190.814-85.333-141.385 0-256 114.615-256 256s114.615 256 256 256zM256 554.667v-85.333h-85.333v-85.333h85.333v-85.333h85.333v85.333h85.333v85.333h-85.333v85.333h-85.333zM661.333 426.667c-35.345 0-64-28.655-64-64s28.655-64 64-64c35.345 0 64 28.655 64 64s-28.655 64-64 64zM789.333 554.667c-35.345 0-64-28.654-64-64s28.655-64 64-64c35.345 0 64 28.655 64 64s-28.655 64-64 64z" />
+<glyph unicode="&#xe852;" glyph-name="gamepad" d="M703.974 554.749l-128-128.001 128-128h234.667v256.001zM383.974 234.748v-234.667h256v234.667l-128 128zM319.974 554.749h-234.667v-256.001h234.667l128 128zM639.974 618.749v234.667h-256v-234.667l128-128.001 128 128.001z" />
+<glyph unicode="&#xe853;" glyph-name="gas-station" d="M767.974 512.083c-23.552 0-42.667 19.115-42.667 42.667s19.115 42.667 42.667 42.667c23.552 0 42.667-19.114 42.667-42.667s-19.115-42.667-42.667-42.667zM511.974 512.083h-256v213.333h256zM843.409 630.184l0.512 0.512-158.72 158.72-45.227-45.269 90.027-89.984c-40.107-15.36-68.693-53.931-68.693-99.413 0-58.924 47.744-106.668 106.667-106.668 15.189 0 29.568 3.285 42.667 9.003v-307.669c0-23.552-19.115-42.667-42.667-42.667s-42.667 19.115-42.667 42.667v192c0 47.147-38.229 85.333-85.333 85.333h-42.667v298.668c0 47.147-38.229 85.333-85.333 85.333h-256c-47.147 0-85.333-38.187-85.333-85.333v-682.668h426.667v320h64v-213.333c0-58.923 47.744-106.667 106.667-106.667s106.667 47.744 106.667 106.667v405.335c0 29.44-11.947 56.107-31.232 75.435z" />
+<glyph unicode="&#xe854;" glyph-name="gavel" d="M98.014 73.28l409.881 409.882-60.339 60.34-30.17-30.17c-16.662-16.662-43.677-16.662-60.34 0l-30.17 30.17c-16.662 16.663-16.662 43.677 0 60.34l241.359 241.359c16.661 16.662 43.678 16.663 60.339 0l30.17-30.17c16.666-16.663 16.666-43.678 0-60.34l-30.17-30.17 60.339-60.34c16.666 16.662 43.678 16.662 60.343 0 16.661-16.662 16.661-43.677-0.004-60.34l60.343-60.34 30.17 30.17c16.661 16.662 43.678 16.662 60.339 0l30.17-30.17c16.661-16.662 16.661-43.679 0-60.34l-241.361-241.357c-16.661-16.666-43.674-16.666-60.339 0l-30.17 30.17c-16.661 16.661-16.661 43.678 0 60.339l30.17 30.17-60.339 60.339-409.881-409.882c-16.662-16.661-43.677-16.661-60.34 0s-16.663 43.678 0 60.339zM853.333 128c47.13 0 85.333-38.204 85.333-85.333v-42.667h-426.667v42.667c0 47.13 38.204 85.333 85.333 85.333h256z" />
+<glyph unicode="&#xe855;" glyph-name="gender-female" d="M512 768c141.385 0 256-114.615 256-256 0-126.848-92.258-232.149-213.333-252.459v-88.875h85.333v-85.333h-85.333v-85.333h-85.333v85.333h-85.333v85.333h85.333v88.875c-121.076 20.309-213.333 125.611-213.333 252.459 0 141.385 114.615 256 256 256zM512 682.667c-94.257 0-170.667-76.41-170.667-170.667 0-94.255 76.41-170.667 170.667-170.667 94.255 0 170.667 76.412 170.667 170.667s-76.412 170.667-170.667 170.667z" />
+<glyph unicode="&#xe856;" glyph-name="gender-male-female" d="M750.144 768h-152.811v85.333h298.667v-298.667h-85.333v153.178l-163.418-163.418c22.383-33.749 35.418-74.231 35.418-117.76 0-103.211-73.293-189.299-170.667-209.067v-89.6h85.333v-85.333h-85.333v-85.333h-85.333v85.333h-85.333v85.333h85.333v89.6c-97.376 19.767-170.667 105.856-170.667 209.067 0 117.821 95.513 213.333 213.333 213.333 43.435 0 83.836-12.98 117.538-35.272l163.273 163.271zM469.333 554.667c-70.693 0-128-57.31-128-128 0-70.694 57.307-128 128-128 70.69 0 128 57.306 128 128 0 70.69-57.306 128-128 128z" />
+<glyph unicode="&#xe857;" glyph-name="gender-male" d="M384 554.667c55.241 0 106.398-17.497 148.224-47.253l217.92 217.92h-195.477v85.333h341.333v-341.333h-85.333v195.845l-218.074-218.070c29.85-41.869 47.407-93.107 47.407-148.442 0-141.385-114.615-256-256-256s-256 114.615-256 256c0 141.385 114.615 256 256 256zM384 469.334c-94.257 0-170.667-76.412-170.667-170.667s76.41-170.667 170.667-170.667c94.255 0 170.667 76.412 170.667 170.667s-76.412 170.667-170.667 170.667z" />
+<glyph unicode="&#xe858;" glyph-name="gender-transgender" d="M835.477 810.667h-195.477v85.333h341.333v-341.333h-85.333v195.845l-206.084-206.085c22.383-33.749 35.418-74.231 35.418-117.76 0-103.211-73.293-189.299-170.667-209.067v-89.6h85.333v-85.333h-85.333v-85.333h-85.333v85.333h-85.333v85.333h85.333v89.6c-97.376 19.767-170.667 105.856-170.667 209.067 0 43.226 12.856 83.447 34.953 117.055l-50.422 50.618-59.682-59.364-60.178 60.5 59.638 59.32-94.976 95.345v-152.809h-85.333v298.667h298.667v-85.333h-153.178l95.321-95.692 61.364 61.037 60.178-60.501-61.32-60.992 50.061-50.257c33.841 22.577 74.507 35.738 118.24 35.738 43.435 0 83.836-12.98 117.538-35.272l205.939 205.938zM512 554.667c-70.694 0-128-57.31-128-128 0-70.694 57.306-128 128-128s128 57.306 128 128c0 70.694-57.306 128-128 128z" />
+<glyph unicode="&#xe859;" glyph-name="gift" d="M938.667 426.667v-341.333c0-47.13-38.204-85.333-85.333-85.333h-682.667c-47.128 0-85.333 38.204-85.333 85.333v341.333c-23.564 0-42.667 19.102-42.667 42.667v128c0 47.128 38.205 85.333 85.333 85.333h135.284c-4.717 13.345-7.284 27.706-7.284 42.667 0 70.692 57.308 128 128 128 42.607 0 80.35-20.817 103.616-52.835l0.23 0.168 24.154-33.242 24.154 33.242 0.23-0.168c23.266 32.018 61.009 52.835 103.616 52.835 70.694 0 128-57.308 128-128 0-14.961-2.569-29.321-7.283-42.667h135.283c47.13 0 85.333-38.205 85.333-85.333v-128c0-23.565-19.102-42.667-42.667-42.667zM170.666 85.334h298.667v341.333h-298.667v-341.333zM853.333 85.334v341.333h-298.667v-341.333h298.667zM384 767.999c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.564 0 42.667 19.103 42.667 42.667s-19.103 42.667-42.667 42.667zM640 767.999c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.103 42.667 42.667s-19.102 42.667-42.667 42.667zM128 597.334v-85.333h341.333v85.333h-341.333zM554.667 597.334v-85.333h341.333v85.333h-341.333z" />
+<glyph unicode="&#xe85a;" glyph-name="git" d="M110.74 487.006l246.957 246.957 71.866-71.869c-10.009-37.163 6.31-76.746 39.77-96.006v-236.173c-25.506-14.754-42.667-42.33-42.667-73.916 0-47.13 38.204-85.333 85.333-85.333s85.333 38.204 85.333 85.333c0 31.586-17.161 59.162-42.667 73.916v207.078l88.222-88.226c-1.882-7.049-2.889-14.455-2.889-22.101 0-47.13 38.204-85.333 85.333-85.333s85.333 38.204 85.333 85.333c0 47.13-38.204 85.333-85.333 85.333-7.646 0-15.053-1.007-22.101-2.889l-108.8 108.794c10.901 40.467-9.417 83.804-49.088 100.644-18.244 7.743-37.67 8.652-55.433 3.879l-71.875 71.874 33.624 33.623c33.323 33.324 87.356 33.324 120.678 0l340.919-340.92c33.327-33.323 33.327-87.356 0-120.678l-340.919-340.919c-33.323-33.327-87.356-33.327-120.678 0l-340.92 340.919c-33.325 33.323-33.325 87.356 0 120.678z" />
+<glyph unicode="&#xe85b;" glyph-name="github-box" d="M170.667 853.334h682.667c47.13 0 85.333-38.205 85.333-85.333v-682.667c0-47.13-38.204-85.333-85.333-85.333h-219.883c-15.211 3.46-15.671 32.247-15.671 42.368l0.525 117.047c0 39.799-13.645 65.843-28.945 79.014 95.027 10.564 194.799 46.63 194.799 210.539 0 46.579-16.503 84.667-43.849 114.493 4.373 10.794 19.017 54.174-4.271 112.916 0 0-35.75 11.472-117.21-43.739-34.078 9.464-70.566 14.196-106.816 14.361-36.275-0.165-72.789-4.897-106.813-14.361-81.512 55.211-117.318 43.739-117.318 43.739-23.232-58.742-8.591-102.122-4.19-112.916-27.293-29.826-43.925-67.913-43.925-114.493 0-163.499 99.61-200.102 194.35-210.871-12.18-10.667-23.207-29.466-27.083-57.037-24.308-10.927-86.122-29.751-124.18 35.447 0 0-22.525 40.956-65.35 43.972 0 0-41.673 0.538-2.934-25.937 0 0 27.974-13.12 47.383-62.413 0 0 25.040-82.978 143.719-57.195l0.576-72.567c0-10.099-0.719-39.087-16.087-42.368h-219.494c-47.128 0-85.333 38.204-85.333 85.333v682.667c0 47.128 38.205 85.333 85.333 85.333z" />
+<glyph unicode="&#xe85c;" glyph-name="github" d="M511.962 853.334c-235.578 0-426.628-191.024-426.628-426.692 0-188.493 122.241-348.412 291.787-404.838 21.347-3.913 29.126 9.259 29.126 20.565 0 10.129-0.367 36.962-0.576 72.567-118.679-25.783-143.72 57.195-143.72 57.195-19.409 49.289-47.383 62.413-47.383 62.413-38.739 26.475 2.934 25.937 2.934 25.937 42.825-3.017 65.35-43.972 65.35-43.972 38.058-65.199 99.873-46.374 124.18-35.452 3.876 27.575 14.903 46.374 27.083 57.041-94.739 10.769-194.35 47.373-194.35 210.871 0 46.579 16.632 84.667 43.925 114.493-4.401 10.794-19.043 54.174 4.19 112.917 0 0 35.806 11.472 117.318-43.739 34.024 9.463 70.538 14.196 106.813 14.361 36.25-0.165 72.738-4.898 106.816-14.361 81.459 55.211 117.21 43.739 117.21 43.739 23.287-58.743 8.644-102.123 4.271-112.917 27.345-29.826 43.849-67.913 43.849-114.493 0-163.908-99.772-199.974-194.799-210.539 15.3-13.171 28.945-39.211 28.945-79.014 0-57.037-0.525-103.057-0.525-117.047 0-11.409 7.701-24.683 29.338-20.514 169.412 56.529 291.55 216.346 291.55 404.787 0 235.668-191.049 426.692-426.705 426.692z" />
+<glyph unicode="&#xe85d;" glyph-name="glass-flute" d="M341.333 853.335h341.333c-14.221-128-28.446-256-53.333-334.223-24.887-78.224-60.446-106.666-78.221-181.332-17.779-74.667-17.779-195.554 7.108-252.446 24.892-56.887 74.667-49.779 99.558-53.333 24.887-3.554 24.887-17.779 24.887-32h-341.333c0 14.221 0 28.446 24.889 32s74.665-3.554 99.557 53.333c24.887 56.892 24.887 177.779 7.108 252.446-17.775 74.667-53.332 103.108-78.221 181.332-24.889 78.222-39.111 206.222-53.333 334.223zM426.667 768c3.149-44.11 6.302-88.22 10.069-128h150.528c3.767 39.78 6.921 83.89 10.069 128h-170.667z" />
+<glyph unicode="&#xe85e;" glyph-name="glass-mug" d="M426.667 768v-128h341.333v128h-341.333zM341.333 853.333h554.667v-42.667l-42.667-42.667v-682.667l42.667-42.667v-42.667h-597.333v42.667l42.667 42.667v59.755l-162.207 75.379c-30.099 13.184-51.127 43.234-51.127 78.199v298.667c0 47.128 38.205 85.333 85.333 85.333h128v85.333l-42.667 42.667v42.666h42.667zM213.333 298.667l128-59.482v358.148h-128v-298.666z" />
+<glyph unicode="&#xe85f;" glyph-name="glass-stange" d="M341.333 853.333h341.334v-853.333h-341.334v853.332zM426.666 768v-128h170.667v128h-170.667z" />
+<glyph unicode="&#xe860;" glyph-name="glass-tulip" d="M341.333 853.335h341.333c-14.221-28.445-28.446-56.889-17.779-128s46.225-184.889 28.446-244.741c-17.779-59.853-88.887-65.775-124.446-133.333-35.554-67.554-35.554-196.74-10.667-257.779 24.892-61.035 74.667-53.926 99.558-57.481 24.887-3.554 24.887-17.779 24.887-32h-341.333c0 14.221 0 28.446 24.889 32s74.665-3.554 99.557 57.485c24.887 61.035 24.887 190.221-10.667 257.775-35.557 67.554-106.668 73.481-124.446 133.333s17.778 173.629 28.445 244.741-3.556 99.555-17.778 128zM426.666 768c0-50.817-7.285-92.668-15.181-128h197.321c-5.871 35.331-11.473 77.182-11.473 127.999h-170.667z" />
+<glyph unicode="&#xe861;" glyph-name="glasses" d="M127.872 512c-10.283 0-19.243-3.712-25.173-10.453-5.931-6.699-8.533-16.043-7.253-26.24l21.248-127.659c3.413-26.88 28.459-48.981 53.845-48.981h128c27.221 0 58.027 24.021 64.64 50.475l44.8 136.149c1.408 5.931 0.469 13.696-3.541 18.773-3.968 5.12-11.264 7.936-20.565 7.936h-256zM298.539 213.334h-128c-68.992 0-129.706 53.632-138.24 122.027l-21.248 127.659c-4.565 36.053 5.632 70.059 27.691 95.019s54.528 39.296 89.13 39.296h256c35.627 0 67.627-14.848 87.851-40.747 5.065-6.499 9.276-13.548 12.608-21.009 18.163 3.831 36.983 3.828 55.142-0.009 3.319 7.497 7.531 14.534 12.591 21.018 20.224 25.899 52.224 40.747 87.808 40.747h256c34.645 0 67.072-14.336 89.173-39.296 22.016-25.003 32.213-59.008 27.904-93.355l-21.76-131.029c-8.32-66.731-69.035-120.32-137.941-120.32h-128c-66.645 0-131.371 50.603-147.456 115.157l-38.336 115.806c-16.448 11.836-38.848 11.814-55.249-0.064l-39.108-118.814c-15.275-61.525-80.043-112.085-146.56-112.085zM639.872 512c-9.259 0-16.555-2.816-20.523-7.893-4.011-5.12-4.949-12.885-2.731-21.888l43.093-130.048c7.467-29.483 38.272-53.504 65.536-53.504h128c25.387 0 50.389 22.101 53.547 47.275l21.76 131.029c1.024 8.491-1.579 17.835-7.509 24.576-5.973 6.741-14.891 10.453-25.173 10.453h-256z" />
+<glyph unicode="&#xe862;" glyph-name="gmail" d="M853.308 170.748h-85.333v373.335l-256-160.001-256 160.001v-373.335h-85.333v512.001h51.2l290.134-181.335 290.133 181.335h51.2zM853.308 768.083h-682.667c-47.147 0-84.907-38.186-84.907-85.333l-0.426-512.001c0-47.104 38.187-85.333 85.333-85.333h682.667c47.104 0 85.333 38.229 85.333 85.333v512.001c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe863;" glyph-name="google-chrome" d="M511.996 85.415l147.797 256-0.64 0.384c14.549 25.088 23.509 53.845 23.509 84.949 0 51.285-23.083 96.727-58.88 128.001h204.501c16-39.552 25.045-82.689 25.045-128.001 0-188.501-152.832-341.333-341.333-341.333zM170.662 426.748c0 62.165 16.853 120.236 45.867 170.412l147.712-255.788 0.555 0.341c29.568-50.944 84.053-85.632 147.2-85.632 19.371 0 37.632 3.925 54.997 9.856l-102.144-176.896c-166.144 22.997-294.187 165.248-294.187 337.707zM639.996 426.748c0-70.656-57.344-128-128-128-70.699 0-128 57.344-128 128s57.301 128.001 128 128.001c70.656 0 128-57.345 128-128.001zM511.996 768.083c126.251 0 236.245-68.736 295.253-170.667h-295.253c-82.731 0-151.637-58.88-167.296-136.961l-101.632 176.002c62.464 80 159.573 131.626 268.928 131.626zM511.996 853.416c-235.691 0-426.667-191.018-426.667-426.668 0-235.648 190.976-426.667 426.667-426.667 235.648 0 426.667 191.019 426.667 426.667 0 235.65-191.019 426.668-426.667 426.668z" />
+<glyph unicode="&#xe864;" glyph-name="google-circles-communities" d="M639.974 426.748c-47.147 0-85.333-38.187-85.333-85.333 0-47.083 38.187-85.333 85.333-85.333 47.104 0 85.333 38.251 85.333 85.333 0 47.147-38.229 85.333-85.333 85.333zM511.974 85.415c-188.501 0-341.333 152.832-341.333 341.333 0 188.545 152.832 341.335 341.333 341.335s341.333-152.789 341.333-341.335c0-188.501-152.832-341.333-341.333-341.333zM511.974 853.416c-235.648 0-426.667-191.019-426.667-426.668 0-235.648 191.019-426.667 426.667-426.667s426.667 191.019 426.667 426.667c0 235.649-191.019 426.668-426.667 426.668zM597.308 554.749c0 47.147-38.229 85.333-85.333 85.333-47.147 0-85.333-38.186-85.333-85.333 0-47.084 38.187-85.335 85.333-85.335 47.104 0 85.333 38.251 85.333 85.335zM383.974 426.748c-47.104 0-85.333-38.187-85.333-85.333 0-47.083 38.229-85.333 85.333-85.333s85.333 38.251 85.333 85.333c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe865;" glyph-name="google-circles-extended" d="M767.974 128.081c-47.147 0-85.333 38.187-85.333 85.333s38.187 85.333 85.333 85.333c47.147 0 85.333-38.187 85.333-85.333s-38.187-85.333-85.333-85.333zM767.974 384.081c-94.251 0-170.667-76.416-170.667-170.667s76.416-170.667 170.667-170.667c94.251 0 170.667 76.416 170.667 170.667s-76.416 170.667-170.667 170.667zM511.974 465.148c-44.757 0-81.067-36.314-81.067-81.067 0-44.749 36.309-81.067 81.067-81.067s81.067 36.318 81.067 81.067c0 44.753-36.309 81.067-81.067 81.067zM255.975 128.081c-47.147 0-85.333 38.187-85.333 85.333s38.187 85.333 85.333 85.333c47.147 0 85.333-38.187 85.333-85.333s-38.187-85.333-85.333-85.333zM255.975 384.081c-94.251 0-170.667-76.416-170.667-170.667s76.416-170.667 170.667-170.667c94.251 0 170.667 76.416 170.667 170.667s-76.416 170.667-170.667 170.667zM511.974 768.083c47.147 0 85.333-38.186 85.333-85.333s-38.187-85.333-85.333-85.333c-47.147 0-85.333 38.187-85.333 85.333s38.186 85.333 85.333 85.333zM511.974 512.083c94.251 0 170.667 76.416 170.667 170.667s-76.416 170.667-170.667 170.667c-94.25 0-170.666-76.416-170.666-170.667s76.416-170.667 170.666-170.667z" />
+<glyph unicode="&#xe866;" glyph-name="google-circles-invite" d="M213.334 512c-47.147 0-85.333-38.187-85.333-85.333s38.186-85.333 85.333-85.333c47.147 0 85.333 38.187 85.333 85.333s-38.187 85.333-85.333 85.333zM213.333 256c-94.251 0-170.667 76.416-170.667 170.667s76.416 170.666 170.667 170.666c94.25 0 170.666-76.416 170.666-170.666s-76.416-170.667-170.666-170.667zM448 469.334h149.333v128l170.667-170.667-170.667-170.667v128h-149.333v85.333zM213.333 682.667c-19.251 0-38.006-2.125-56.043-6.153 83.087 131.87 230 219.487 397.376 219.487 259.204 0 469.333-210.128 469.333-469.333 0-259.204-210.129-469.333-469.333-469.333-167.377 0-314.289 87.616-397.376 219.486 18.037-4.028 36.792-6.153 56.043-6.153 33.968 0 66.391 6.618 96.050 18.628 62.054-64.107 149.014-103.962 245.283-103.962 188.514 0 341.333 152.819 341.333 341.333 0 188.513-152.819 341.333-341.333 341.333-96.269 0-183.229-39.854-245.283-103.962-29.659 12.013-62.082 18.629-96.050 18.629z" />
+<glyph unicode="&#xe867;" glyph-name="google-circles" d="M710.703 299.486l14.592-0.725c43.221 0 84.437 8.363 122.496 22.997-29.824-182.357-187.691-321.664-378.496-321.664-212.053 0-384 171.904-384 384 0 190.807 139.349 348.673 321.707 378.497-14.634-38.059-23.040-79.275-23.040-122.496l0.726-14.634c-99.755-34.944-171.392-129.666-171.392-241.367 0-141.397 114.646-256 256-256 111.701 0 206.421 71.637 241.408 171.392zM725.308 512.083c70.699 0 128 57.301 128 128s-57.301 128-128 128c-70.699 0-128-57.301-128-128s57.301-128 128-128zM725.308 896.083c141.355 0 256-114.602 256-256s-114.645-256.001-256-256.001c-141.397 0-256 114.603-256 256.001s114.603 256 256 256z" />
+<glyph unicode="&#xe868;" glyph-name="google-controller-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-256 256h-202.949l-127.464-127.462c-13.512-13.513-32.179-21.871-52.798-21.871-41.237 0-74.667 33.429-74.667 74.667l0.836 11.209 42.515 314.449c3.675 43.655 21.958 83.155 49.944 113.593l-93.295 93.295zM213.333 512v-42.667h85.333v-85.333h42.667v73.877l-54.121 54.123h-73.879zM704 682.667c100.54 0 183.031-77.279 191.317-175.676l42.513-314.449 0.836-11.209c0-28.045-15.462-52.476-38.323-65.242l-566.575 566.575h370.232zM704 597.333c-17.673 0-32-14.327-32-32s14.327-32 32-32c17.673 0 32 14.327 32 32s-14.327 32-32 32zM629.333 522.667c-17.673 0-32-14.327-32-32s14.327-32 32-32c17.673 0 32 14.327 32 32s-14.327 32-32 32zM778.667 522.667c-17.673 0-32-14.327-32-32s14.327-32 32-32c17.673 0 32 14.327 32 32s-14.327 32-32 32zM704 448c-17.673 0-32-14.327-32-32s14.327-32 32-32c17.673 0 32 14.327 32 32s-14.327 32-32 32z" />
+<glyph unicode="&#xe869;" glyph-name="google-controller" d="M340.262 256l-127.464-127.462c-13.512-13.513-32.179-21.871-52.798-21.871-41.237 0-74.667 33.429-74.667 74.667l0.836 11.209 42.515 314.449c8.284 98.397 90.775 175.676 191.316 175.676h384c100.54 0 183.031-77.279 191.317-175.676l42.513-314.449 0.836-11.209c0-41.237-33.429-74.667-74.667-74.667-20.621 0-39.287 8.358-52.796 21.871l-127.467 127.462h-343.476zM298.666 597.333v-85.333h-85.333v-42.667h85.333v-85.333h42.667v85.333h85.333v42.667h-85.333v85.333h-42.667zM704 597.333c-17.673 0-32-14.327-32-32s14.327-32 32-32c17.673 0 32 14.327 32 32s-14.327 32-32 32zM629.333 522.667c-17.673 0-32-14.327-32-32s14.327-32 32-32c17.673 0 32 14.327 32 32s-14.327 32-32 32zM778.667 522.667c-17.673 0-32-14.327-32-32s14.327-32 32-32c17.673 0 32 14.327 32 32s-14.327 32-32 32zM704 448c-17.673 0-32-14.327-32-32s14.327-32 32-32c17.673 0 32 14.327 32 32s-14.327 32-32 32z" />
+<glyph unicode="&#xe86a;" glyph-name="google-drive" d="M328.994 788.541l-279.893-489.772 146.133-255.701 279.851 489.218zM415.223 298.769l-146.432-256h559.744l146.304 256zM950.434 341.436l-292.565 512.001h-291.797l-0.213-0.341 292.395-511.66h292.181z" />
+<glyph unicode="&#xe86b;" glyph-name="google-earth" d="M528.892 616.25c-119.467 112.853-217.302 81.365-259.499 62.208 31.829 30.72 69.376 55.424 111.061 72.363 118.742 4.395 252.374-18.56 326.315-124.203 0 0 103.381-178.391 140.416-99.84 9.429-31.703 14.72-65.239 14.72-100.012 0-12.715-0.811-25.259-2.091-37.632-86.827 9.984-205.909 109.013-330.923 227.116zM814.758 251.917c-40.064-15.829-90.069-42.752-168.747-42.752-80.384 0-150.656 32-238.081 59.691-79.488 25.216-108.884 64-163.925 64-27.989 0-41.984-28.117-49.792-51.84-20.352 44.416-32.085 93.653-32.085 145.749 0 34.304 5.162 67.371 14.378 98.689 53.888 67.755 136.277 109.355 254.166 18.304 0 0 265.856-199.041 417.749-212.268-7.979-28.16-19.328-54.784-33.664-79.573zM512.038 76.856c-47.957 0-93.612 9.728-135.211 27.136-26.581 63.275-26.155 112.853 47.787 88.107 0 0 167.126-64.811 343.083-3.627-63.872-68.523-154.667-111.616-255.659-111.616zM512.038 853.433c-235.648 0-426.667-191.018-426.667-426.668 0-235.691 191.019-426.667 426.667-426.667 235.605 0 426.667 190.976 426.667 426.667 0 235.65-191.061 426.668-426.667 426.668z" />
+<glyph unicode="&#xe86c;" glyph-name="google-glass" d="M554.641 469.415v-106.667h250.411c-26.155-149.632-143.403-256-293.077-256-176.469 0-320 143.531-320 320s143.531 320.001 320 320.001c89.045 0 166.4-37.888 220.16-99.883l75.733 75.776c-72.149 80.512-175.275 130.773-295.893 130.773-235.648 0-426.667-191.018-426.667-426.668 0-235.648 191.019-426.667 426.667-426.667 235.605 0 405.333 191.019 405.333 426.667v42.667h-362.667z" />
+<glyph unicode="&#xe86d;" glyph-name="google-maps" d="M768 896c117.82 0 213.333-95.513 213.333-213.333 0-105.8-213.333-341.333-202.667-469.333 0-5.892-4.774-10.667-10.667-10.667s-10.667 4.774-10.667 10.667c10.667 128-202.667 363.534-202.667 469.333 0 117.821 95.514 213.333 213.333 213.333zM768 768c-47.13 0-85.333-38.205-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333zM170.667 810.667h369.971c-24.422-40.194-38.485-87.378-38.485-137.846 0-41.983 26.957-100.359 63.275-165.582l-478.897-478.895-1.197 14.323v682.667c0 47.128 38.205 85.333 85.333 85.333zM705.216 261.338l-102.336 102.336 29.257 29.257c26.027-44.066 51.857-88.73 73.079-131.593zM828.198-42.666h-631.659l315.831 315.831 315.827-315.831zM938.667 451.755v-409.088l-1.092-13.687-143.74 143.735c26.752 84.638 89.984 185.762 144.832 279.040zM285.326 405.581c-44.908 0-73.587 20.13-73.587 49.958 0 29.73 26.505 39.236 35.767 42.624 17.607 5.901 40.29 6.686 44.138 6.686l9.559-0.354c31.96-22.844 45.556-32.93 45.556-54.357 0-23.898-24.614-44.557-61.434-44.557zM236.070 648.43c0 29.839 17.728 43.396 36.294 43.396 35.686 0 54.129-46.595 54.129-74.748 0-34.714-27.908-41.371-38.967-41.371-33.337 0-51.456 41.303-51.456 72.723zM339.334 525.088l-14.609 11.464c-4.888 4.037-11.045 9.344-11.045 19.146 0 9.897 7.372 17.431 13.124 21.887 17.634 13.691 34.66 28.326 34.66 58.572 0 27.936-17.148 43.976-27.464 52.969h23.561l16.878 16.878h-84.172c-58.869 0-89.086-36.672-89.086-77.313 0-31.433 24.155-65.134 67.24-65.134h10.829l-4.726-17.553c0-13.718 5.698-19.389 12.449-27.004-18.903-1.228-54.198-5.78-80.202-21.684-24.803-14.771-30.812-35.482-30.812-50.551 0-31.095 27.855-60.762 88.709-60.762 72.236 0 108.422 39.927 108.422 79.369 0 29.094-15.312 44.164-33.756 59.718z" />
+<glyph unicode="&#xe86e;" glyph-name="google-pages" d="M810.641 810.749h-256v-213.333l170.667 42.667-42.667-170.668h213.333v256.001c0 47.147-38.229 85.333-85.333 85.333zM725.308 213.415l-170.667 42.667v-213.333h256c47.104 0 85.333 38.251 85.333 85.333v256h-213.333zM341.307 384.081h-213.333v-256c0-47.083 38.186-85.333 85.333-85.333h256v213.333l-170.667-42.667zM127.974 725.416v-256.001h213.333l-42.667 170.668 170.667-42.667v213.333h-256c-47.147 0-85.333-38.186-85.333-85.333z" />
+<glyph unicode="&#xe86f;" glyph-name="google-play" d="M128 64v725.333c0 25.311 14.693 47.19 36.015 57.574l420.113-420.116-420.282-420.279c-21.231 10.415-35.846 32.243-35.846 57.489zM717.41 293.513l-459.366-265.216 362.291 362.291 97.075-97.075zM860.198 477.517c15.279-11.695 25.135-30.123 25.135-50.85 0-20.416-9.557-38.596-24.444-50.313l-97.574-56.337-106.778 106.773 106.705 106.706 96.956-55.98zM258.313 825.017l459.025-265.018-97.003-97.002-362.022 362.019z" />
+<glyph unicode="&#xe870;" glyph-name="google-plus-box" d="M810.641 426.748h-85.333v-85.333h-42.667v85.333h-85.333v42.667h85.333v85.335h42.667v-85.335h85.333zM386.789 119.548c-119.294 0-173.482 66.645-173.482 128.597 0 19.285 6.016 67.814 63.104 101.803 32.81 20.096 78.891 33.323 134.057 38.656-8.062 10.667-14.377 23.356-14.377 42.27 0 6.626 0.768 13.197 2.304 19.853h-16.385c-84.266 0-134.57 66.007-134.57 129.836 0 73.856 54.911 153.387 175.489 153.387h179.797l-47.275-47.274h-30.549c17.408-18.091 38.272-47.744 38.272-92.118 0-59.904-31.488-89.307-66.56-116.524-6.741-5.248-18.091-16.256-18.091-30.933 0-12.629 10.368-21.12 16.811-26.325 5.717-4.693 12.587-9.472 20.011-14.635 34.645-24.192 81.963-57.344 81.963-122.807 0-75.541-54.997-163.785-210.519-163.785zM853.308 853.416h-682.667c-47.104 0-84.906-38.186-84.906-85.333l-0.427-682.668c0-47.083 38.229-85.333 85.333-85.333h682.667c47.104 0 85.333 38.251 85.333 85.333v682.668c0 47.147-38.229 85.333-85.333 85.333zM450.79 349.564c-4.352 0.384-7.765 0.384-13.397 0.384h-0.939c-11.095 0-49.194-2.133-77.569-11.648-27.476-10.069-60.245-30.805-60.245-72.576 0-46.037 44.245-94.976 126.294-94.976 65.066 0 103.936 42.795 103.936 84.181 0 32.896-19.541 52.693-78.080 94.635zM477.841 560.125c0 43.477-26.837 128.768-88.875 128.768-27.18 0-56.192-18.688-56.192-71.168 0-50.432 26.667-125.1 83.969-125.1 2.474 0 61.099 0.768 61.099 67.5z" />
+<glyph unicode="&#xe871;" glyph-name="google-plus" d="M396.765-12.71c-141.91 0-232.534 63.62-232.534 157.871 0 93.948 83.755 123.989 113.025 134.694 55.637 18.65 127.316 21.12 139.476 21.12 13.057 0 19.713 0 30.209-1.109 100.992-72.188 143.957-104.060 143.957-171.776 0-75.516-77.781-140.8-194.134-140.8zM241.117 754.696c0 94.292 56.022 137.13 114.689 137.13 112.768 0 171.051-147.242 171.051-236.203 0-109.695-88.192-130.732-123.136-130.732-105.344 0-162.603 130.519-162.603 229.805zM567.433 364.937l-46.165 36.224c-15.445 12.757-34.901 29.525-34.901 60.497 0 31.279 23.296 55.085 41.472 69.165 55.723 43.263 109.525 89.513 109.525 185.088 0 88.276-54.187 138.964-86.784 167.38h74.453l53.333 53.333h-265.984c-186.027 0-281.514-115.883-281.514-244.31 0-99.328 76.331-205.821 212.479-205.821h34.219c-5.333-14.891-14.933-35.844-14.933-55.467 0-43.349 18.006-61.274 39.34-85.333-59.734-3.883-171.264-18.266-253.44-68.523-78.379-46.677-97.366-112.128-97.366-159.748 0-98.257 88.021-192 280.32-192 228.267 0 342.613 126.17 342.613 250.795 0 91.951-48.384 139.563-106.667 188.719zM895.966 512.092v128h-85.333v-128h-128v-85.335h128v-128h85.333v128h128v85.335h-128z" />
+<glyph unicode="&#xe872;" glyph-name="google" d="M524.766-12.71c-141.91 0-232.534 63.62-232.534 157.871 0 93.948 83.755 123.989 113.025 134.694 55.637 18.65 127.317 21.12 139.477 21.12 13.056 0 19.712 0 30.208-1.109 100.992-72.188 143.957-104.060 143.957-171.776 0-75.516-77.781-140.8-194.133-140.8zM369.117 754.696c0 94.292 56.022 137.13 114.689 137.13 112.768 0 171.051-147.242 171.051-236.203 0-109.695-88.192-130.732-123.136-130.732-105.344 0-162.604 130.519-162.604 229.805zM695.433 364.937l-46.165 36.224c-15.445 12.757-34.901 29.525-34.901 60.497 0 31.279 23.296 55.085 41.472 69.165 55.723 43.263 109.525 89.513 109.525 185.088 0 88.276-54.187 138.964-86.784 167.38h74.453l53.333 53.333h-265.984c-186.028 0-281.515-115.883-281.515-244.31 0-99.328 76.331-205.821 212.48-205.821h34.219c-5.333-14.891-14.933-35.844-14.933-55.467 0-43.349 18.005-61.274 39.339-85.333-59.733-3.883-171.264-18.266-253.44-68.523-78.379-46.677-97.366-112.128-97.366-159.748 0-98.257 88.021-192 280.32-192 228.267 0 342.613 126.17 342.613 250.795 0 91.951-48.384 139.563-106.667 188.719z" />
+<glyph unicode="&#xe873;" glyph-name="grid-off" d="M0 820.544l54.49 54.121 905.51-905.509-54.123-54.49-85.333 85.333h-648.877c-47.128 0-85.333 38.204-85.333 85.333l-0.952 649.83-85.382 85.381zM426.667 768v-156.899l-85.333 85.333v71.565h-71.565l-85.333 85.333h668.898c47.13 0 85.333-38.205 85.333-85.333l0.981-669.88-85.457 85.457-0.107 72.422h-72.316l-85.333 85.333h157.521l-0.247 170.667h-171.042v-156.898l-85.333 85.333v71.565h-71.565l-85.333 85.333h156.898v170.667h-170.667zM682.667 768.001v-170.667h170.918l-0.252 170.667h-170.667zM682.667 85.334h52.544l-52.544 52.544v-52.544zM170.917 597.333h52.294l-52.371 52.371 0.077-52.371zM426.667 341.334h52.544l-52.544 52.544v-52.544zM597.333 85.334v137.877l-32.789 32.789h-137.877v-170.667h170.667zM341.334 85.334v170.667h-169.917l0.25-170.667h169.667zM341.333 341.334v137.877l-32.789 32.789h-137.503l0.25-170.667h170.042z" />
+<glyph unicode="&#xe874;" glyph-name="grid" d="M426.667 768v-170.667h170.667v170.667h-170.667zM682.667 768.001v-170.667h170.918l-0.252 170.667h-170.667zM682.667 512v-170.667h171.294l-0.252 170.667h-171.042zM682.667 256v-170.667h171.665l-0.247 170.667h-171.418zM597.333 85.334v170.667h-170.667v-170.667h170.667zM341.334 85.334v170.667h-169.917l0.25-170.667h169.667zM341.333 341.334v170.667h-170.292l0.25-170.667h170.042zM341.333 597.334v170.667h-170.667l0.25-170.667h170.417zM426.667 341.334h170.667v170.667h-170.667v-170.667zM170.667 853.333l682.667 0.001c47.13 0 85.333-38.205 85.333-85.333l1.003-682.667c0-47.13-38.208-85.333-85.333-85.333h-682.669c-47.128 0-85.334 38.204-85.334 85.333l-1 682.667c0 47.128 38.205 85.333 85.333 85.333z" />
+<glyph unicode="&#xe875;" glyph-name="group" d="M341.333 597.334v-170.667h213.333v170.667h-213.333zM42.667 896h170.667v-42.667h597.333v42.667h170.667v-170.667h-42.667v-597.333h42.667v-170.667h-170.667v42.667h-597.333v-42.667h-170.667v170.667h42.667v597.333h-42.667v170.667zM213.333 128v-42.667h597.333v42.667h42.667v597.333h-42.667v42.667h-597.333v-42.667h-42.667v-597.333h42.667zM256 682.667h384v-170.666h128v-341.333h-426.667v170.667h-85.333v341.333zM640 341.334h-213.333v-85.333h256v170.667h-42.667v-85.333z" />
+<glyph unicode="&#xe876;" glyph-name="hand-pointing-right" d="M896.026 554.667c23.565 0 42.667-19.103 42.667-42.667s-19.102-42.667-42.667-42.667h-190.857l-5.521-51.614-93.623-210.62c-9.434-21.414-31.462-36.433-57.161-36.433h-186.197c-34.259 0-63.976 31.031-63.976 64v277.335c0 16.483 6.951 31.415 18.184 42.224l179.232 209.479 32.892-31.505c8.439-8.092 13.653-19.292 13.653-31.655l-1.024-9.437-72.269-136.439 426.667-0.001zM85.333 170.667l0.024 341.335h128v-341.335h-128.024z" />
+<glyph unicode="&#xe877;" glyph-name="hanger" d="M885.555 241.652l-0.021-0.038c31.774-18.47 53.133-52.881 53.133-92.279 0-58.91-47.757-106.667-106.667-106.667h-640c-58.91 0-106.667 47.757-106.667 106.667 0 39.398 21.361 73.809 53.132 92.279l-0.021 0.038 330.889 191.036c0 0 0 36.646 42.667 79.313 42.667 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.205-85.333-85.333h-85.333c0 94.257 76.41 170.667 170.667 170.667 94.255 0 170.667-76.41 170.667-170.667 0-79.246-54.012-145.877-127.228-165.090l330.116-190.592zM192 128h640c7.369 0 14.532 3.827 18.479 10.667 5.892 10.202 2.398 23.249-7.812 29.141l-330.667 190.95-330.666-190.95c-10.209-5.892-13.705-18.94-7.814-29.141 3.949-6.839 11.113-10.667 18.48-10.667zM469.333 432.687l42.667 79.313c47.13 0 85.333 38.205 85.333 85.333z" />
+<glyph unicode="&#xe878;" glyph-name="hangouts" d="M639.974 469.415l-42.667-85.333h-64l42.667 85.333h-64v128.001h128zM469.308 469.415l-42.666-85.333h-64l42.667 85.333h-64v128.001h128zM490.641 853.416c-200.277 0-362.666-162.389-362.666-362.668 0-200.277 162.389-362.667 362.666-362.667h21.333v-149.333c207.317 100.011 341.333 320 341.333 512 0 200.279-162.389 362.668-362.667 362.668z" />
+<glyph unicode="&#xe879;" glyph-name="harddisk" d="M256 853.334h512c47.13 0 85.333-38.205 85.333-85.333v-682.667c0-47.13-38.204-85.333-85.333-85.333h-512c-47.128 0-85.333 38.204-85.333 85.333v682.667c0 47.128 38.205 85.333 85.333 85.333zM512 768c-141.385 0-256-114.615-256-256s114.615-256 260.361-255.966l-37.551 95.223c-11.78 20.407-4.787 46.502 15.62 58.287l36.949 21.333c20.407 11.78 46.502 4.787 58.283-15.62l82.108-103.296c58.658 46.912 96.23 119.087 96.23 200.038 0 141.385-114.615 256-256 256zM512 554.667c23.565 0 42.667-19.103 42.667-42.666 0-23.565-19.102-42.667-42.667-42.667s-42.667 19.102-42.667 42.667c0 23.564 19.102 42.666 42.667 42.666zM298.667 170.667c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667zM515.763 372.591l106.133-269.163 110.852 64-180.036 226.496-36.949-21.333z" />
+<glyph unicode="&#xe87a;" glyph-name="headphones-box" d="M307.174 170.748c-28.288 0-51.2 22.912-51.2 51.2v204.8c0 141.143 114.859 256.001 256 256.001s256-114.858 256-256.001v-204.8c0-28.288-22.912-51.2-51.2-51.2h-119.467v170.667h85.333v85.333c0 94.124-76.544 170.668-170.667 170.668s-170.667-76.544-170.667-170.668v-85.333h85.333v-170.667zM810.641 810.749h-597.333c-47.147 0-85.333-38.229-85.333-85.333v-597.335c0-47.104 38.187-85.333 85.333-85.333h597.333c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe87b;" glyph-name="headphones-dots" d="M511.974 896.083c212.096 0 384-171.904 384-384v-298.668c0-70.699-57.301-128-128-128h-128v341.333h170.667v85.335c0 164.95-133.717 298.667-298.667 298.667s-298.667-133.717-298.667-298.667v-85.335h170.667v-341.333h-128c-70.699 0-128 57.301-128 128v298.668c0 212.096 171.904 384 384 384zM640-85.333v85.333h85.333v-85.333h-85.333zM469.333-85.333v85.333h85.333v-85.333h-85.333zM298.667-85.333v85.333h85.333v-85.333h-85.333z" />
+<glyph unicode="&#xe87c;" glyph-name="headphones" d="M511.974 896.083c-212.096 0-384-171.904-384-384v-298.668c0-70.699 57.301-128 128-128h128v341.333h-170.667v85.335c0 164.949 133.717 298.667 298.667 298.667s298.667-133.717 298.667-298.667v-85.335h-170.667v-341.333h128c70.699 0 128 57.301 128 128v298.668c0 212.096-171.904 384-384 384z" />
+<glyph unicode="&#xe87d;" glyph-name="headset-dock" d="M85.333 170.667h298.667v506.623c-73.61-18.946-128-85.766-128-165.29v-42.667h85.333v-256h-85.333c-47.128 0-85.333 38.204-85.333 85.333v213.333c0 141.385 114.615 256 256 256h42.667c141.385 0 256-114.615 256-256v-85.333h42.667v128h85.333v-128c0-47.13-38.204-85.333-85.333-85.333h-42.667v-42.667c0-47.13-38.204-85.333-85.333-85.333h-85.333v256h85.333v42.667c0 79.524-54.391 146.344-128 165.29v-506.624h426.667v-85.333h-853.333v85.333z" />
+<glyph unicode="&#xe87e;" glyph-name="headset-off" d="M960 735.212l-88.341-88.343c15.718-41.937 24.316-87.357 24.316-134.786v-426.668c0-70.699-57.301-128-128-128h-256v85.333h298.667v42.667h-170.667v329.771l-256-256v-73.771h-73.769l-106.749-106.748-54.121 54.49 756.176 756.177 54.49-54.121zM511.974 896.083c107.998 0 205.577-44.573 275.345-116.328l-60.352-60.355c-54.323 56.319-130.569 91.349-214.993 91.349-164.95 0-298.667-133.717-298.667-298.667v-85.335h170.667v-50.338l-234.311-234.313c-13.697 20.382-21.689 44.915-21.689 71.317v298.668c0 212.096 171.904 384 384 384zM810.641 426.748v85.335c0 22.81-2.556 45.024-7.403 66.369l-151.701-151.703h159.104z" />
+<glyph unicode="&#xe87f;" glyph-name="headset" d="M511.974 896.083c-212.096 0-384-171.904-384-384v-298.668c0-70.699 57.301-128 128-128h128v341.333h-170.667v85.335c0 164.949 133.717 298.667 298.667 298.667s298.667-133.717 298.667-298.667v-85.335h-170.667v-341.333h170.667v-42.667h-298.667v-85.333h256c70.699 0 128 57.301 128 128v426.668c0 212.096-171.904 384-384 384z" />
+<glyph unicode="&#xe880;" glyph-name="heart-box-outline" d="M512 213.334l-30.912 28.096c-109.846 99.669-182.421 165.525-182.421 246.080 0 65.792 51.541 117.335 117.333 117.335 37.141 0 72.725-17.239 96-44.502 23.275 27.263 58.859 44.502 96 44.502 65.792 0 117.333-51.543 117.333-117.335 0-80.555-72.576-146.411-182.421-246.080l-30.912-28.096zM213.333 810.666h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM213.333 725.334v-597.333h597.333v597.333h-597.333z" />
+<glyph unicode="&#xe881;" glyph-name="heart-box" d="M213.333 810.666h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM512 213.334l30.912 28.096c109.845 99.669 182.421 165.525 182.421 246.080 0 65.792-51.541 117.334-117.333 117.334-37.141 0-72.725-17.238-96-44.501-23.275 27.263-58.859 44.501-96 44.501-65.792 0-117.333-51.543-117.333-117.334 0-80.555 72.576-146.411 182.421-246.080l30.912-28.096z" />
+<glyph unicode="&#xe882;" glyph-name="heart-broken" d="M511.97 27.734l-61.824 56.188c-219.689 199.343-364.841 331.055-364.841 492.165 0 131.584 103.081 234.667 234.667 234.667 28.418 0 56.381-5.046 82.683-14.331l152.012-256.693-170.667-213.333 127.97-298.662zM703.97 810.753c131.584 0 234.667-103.083 234.667-234.667 0-161.11-145.152-292.822-364.843-492.165l-61.786-56.158-42.675 298.633 192 213.332-112.947 216.796c43.584 33.988 98.671 54.228 155.584 54.228z" />
+<glyph unicode="&#xe883;" glyph-name="heart-outline" d="M516.454 147.106l-4.48-4.053-4.48 4.053c-202.838 184.107-336.854 305.702-336.854 428.969 0 85.12 64.213 149.333 149.333 149.333 65.621 0 129.664-42.325 152.192-100.737h79.616c22.528 58.412 86.571 100.737 152.192 100.737 85.12 0 149.333-64.213 149.333-149.333 0-123.267-134.016-244.863-336.853-428.969zM703.974 810.743c-74.283 0-145.451-34.432-192-89.003-46.549 54.57-117.718 89.003-192 89.003-131.585 0-234.667-103.084-234.667-234.667 0-161.070 145.152-292.777 364.843-492.163l61.824-56.145 61.824 56.145c219.691 199.386 364.843 331.093 364.843 492.163 0 131.583-103.083 234.667-234.667 234.667z" />
+<glyph unicode="&#xe884;" glyph-name="heart" d="M511.974 27.746l-61.824 56.192c-219.691 199.339-364.843 331.055-364.843 492.163 0 131.583 103.082 234.667 234.667 234.667 74.283 0 145.451-34.476 192-89.003 46.549 54.526 117.717 89.003 192 89.003 131.584 0 234.667-103.084 234.667-234.667 0-161.108-145.152-292.825-364.843-492.163l-61.824-56.192z" />
+<glyph unicode="&#xe885;" glyph-name="help-circle" d="M642.82 458.59l-38.187-39.164c-30.891-30.891-50.005-56.661-50.005-120.661h-85.333v21.333c0 47.104 19.115 89.771 50.005 120.661l53.035 53.675c15.403 15.445 24.96 36.777 24.96 60.329 0 47.104-38.187 85.333-85.333 85.333-47.104 0-85.334-38.229-85.334-85.333h-85.333c0 94.25 76.417 170.667 170.668 170.667 94.293 0 170.667-76.417 170.667-170.667 0-37.547-15.189-71.55-39.808-96.173zM554.628 128.098h-85.333v85.333h85.333zM511.962 853.43c-235.648 0-426.668-191.018-426.668-426.665 0-235.691 191.020-426.667 426.668-426.667 235.691 0 426.667 190.976 426.667 426.667 0 235.647-190.976 426.665-426.667 426.665z" />
+<glyph unicode="&#xe886;" glyph-name="help" d="M426.667 128h128v-128h-128v128zM512 853.333c141.385 0 256-114.615 256-256-14.221-56.889-28.446-113.779-64-156.446s-92.446-71.108-120.887-106.667c-28.446-35.554-28.446-78.221-28.446-120.887h-128c0 71.113 0 131.554 28.446 174.221 28.442 42.667 85.333 67.558 120.887 96 35.554 28.446 49.779 71.113 64 113.779 0 70.692-57.306 128-128 128s-128-57.307-128-128h-128c0 141.385 114.615 256 256 256z" />
+<glyph unicode="&#xe887;" glyph-name="hexagon-outline" d="M896 234.667c0-16.265-9.101-30.4-22.485-37.602l-337.348-189.568c-6.869-4.727-15.194-7.497-24.166-7.497s-17.297 2.769-24.166 7.497l-337.341 189.564c-13.389 7.198-22.492 21.342-22.492 37.606v384c0 16.266 9.103 30.406 22.492 37.605l337.341 189.563c6.869 4.73 15.194 7.498 24.166 7.498s17.293-2.768 24.166-7.498l337.348-189.567c13.385-7.2 22.485-21.338 22.485-37.601v-384zM512.038 761.561l-298.705-167.859v-334.070l298.705-167.859 298.628 167.859v334.073l-298.628 167.856z" />
+<glyph unicode="&#xe888;" glyph-name="hexagon" d="M896 234.667c0-16.265-9.101-30.4-22.485-37.602l-337.348-189.568c-6.869-4.727-15.194-7.497-24.166-7.497s-17.297 2.769-24.166 7.497l-337.341 189.564c-13.389 7.198-22.492 21.342-22.492 37.606v384c0 16.266 9.103 30.406 22.492 37.605l337.341 189.563c6.869 4.73 15.194 7.498 24.166 7.498s17.293-2.768 24.166-7.498l337.348-189.567c13.385-7.2 22.485-21.338 22.485-37.601v-384z" />
+<glyph unicode="&#xe889;" glyph-name="history" d="M469.308 640.084v-218.199l201.173-119.125 32.896 54.831-170.069 101.163v181.331zM533.094 853.417c-150.444 0-281.131-82.005-350.891-203.604l-96.896 96.937v-277.331h277.333l-117.419 117.417c51.584 107.221 161.068 181.247 288.086 181.247 176.811 0 320-143.273 320-319.998 0-176.73-143.189-320-320-320-139.308 0-257.451 89.126-301.398 213.333h-89.302c46.806-172.032 203.478-298.667 390.486-298.667 224 0 405.547 181.457 405.547 405.333 0 223.87-181.547 405.331-405.547 405.331z" />
+<glyph unicode="&#xe88a;" glyph-name="hololens" d="M512 597.334c0 0 426.667 0 426.667-128 0 0 3.644-143.437-10.667-138.667-32 138.667-416 138.667-416 138.667s-384 0-416-138.667c-14.311-4.77-10.667 138.667-10.668 138.667 0 128 426.667 128 426.667 128zM512 426.667c341.333 0 373.333-96 373.333-96-42.667-128-74.667-160-245.333-160-128 0-85.333 64-128 64s0-64-128-64c-170.666 0-202.667 32-245.333 160 0 0 32 96 373.333 96z" />
+<glyph unicode="&#xe88b;" glyph-name="home-modern" d="M256 42.667v554.666c0 47.128 38.205 85.334 85.334 85.334l341.333 128v-128.001c47.13 0 85.333-38.205 85.333-85.333v-554.666h-256v213.333h-170.667v-213.333h-85.333zM597.333 128h85.333v128h-85.333v-128zM341.333 384h85.333v170.666h-85.333v-170.666zM512 384h170.667v170.666h-170.667v-170.666z" />
+<glyph unicode="&#xe88c;" glyph-name="home-variant" d="M341.297 85.398l-127.99 0.021v341.333h-128l426.667 383.998 426.667-383.998h-128v-341.333l-298.679-0.021v256h-170.665v-256zM597.333 341.334v-128h128v128h-128z" />
+<glyph unicode="&#xe88d;" glyph-name="home" d="M426.641 85.419v256h170.667v-256h213.333v341.333h128l-426.667 383.998-426.667-383.998h128v-341.333h213.333z" />
+<glyph unicode="&#xe88e;" glyph-name="hops" d="M896 426.667c0 0-362.667 85.333-362.667 426.667 0 0 362.667 0 362.667-426.667zM128 426.667c0 426.666 362.667 426.667 362.667 426.667 0-341.333-362.667-426.667-362.667-426.667zM512 661.333c0 0 42.453-91.986 127.364-170.005-9.702-156.885-127.364-235.328-127.364-235.328s-117.664 78.443-127.366 235.328c84.912 78.019 127.366 170.005 127.366 170.005zM885.333 373.334c0 0-32-160-117.333-245.333 0 0-105.212 70.14-156.655 178.628 30.763 52.689 50.112 115.059 60.774 157.129 58.56-44.949 127.881-79.757 213.214-90.423zM661.333 160c-42.667-85.333-149.333-149.333-149.333-149.333s-106.667 64-149.333 149.333c0 0 46.661 38.882 79.053 104.73 19.866-23.735 43.157-42.355 70.281-51.396 27.123 9.041 50.415 27.661 70.281 51.396 32.393-65.847 79.053-104.73 79.053-104.73zM138.667 373.334c85.333 10.667 154.652 45.474 213.215 90.423 10.659-42.069 30.009-104.439 60.774-157.129-51.445-108.489-156.656-178.628-156.656-178.628-85.333 85.333-117.333 245.333-117.333 245.333z" />
+<glyph unicode="&#xe88f;" glyph-name="hospital-building" d="M85.333-0v640c0 23.564 19.103 42.667 42.667 42.667h170.667v170.667h426.667v-170.667h170.667c23.565 0 42.667-19.103 42.667-42.667v-640h-341.333v213.333h-170.667v-213.333h-341.333zM384 768v-256h85.334v85.333h85.333v-85.333h85.333v256h-85.333v-85.333h-85.333v85.333h-85.334zM170.667 85.334h170.666v128h-170.666v-128zM170.667 298.667h170.667v128h-170.667v-128zM682.667 85.334h170.667v128h-170.667v-128zM682.667 298.667h170.667v128h-170.667v-128zM426.667 298.667h170.667v128h-170.667v-128z" />
+<glyph unicode="&#xe890;" glyph-name="hospital-marker" d="M511.97 853.413c164.907 0 298.667-133.715 298.667-298.667 0-223.999-298.667-554.665-298.667-554.665s-298.666 330.667-298.666 554.665c0 164.951 133.76 298.667 298.666 298.667zM384 682.667v-256h85.333v85.333h85.333v-85.333h85.333v256h-85.333v-85.333h-85.333v85.333h-85.333z" />
+<glyph unicode="&#xe891;" glyph-name="hospital" d="M767.974 341.415h-170.667v-170.667h-170.667v170.667h-170.667v170.668h170.667v170.667h170.667v-170.667h170.667zM810.641 810.749h-597.334c-47.147 0-84.906-38.187-84.906-85.333l-0.427-597.335c0-47.147 38.186-85.333 85.333-85.333h597.334c47.104 0 85.333 38.187 85.333 85.333v597.335c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe892;" glyph-name="hotel" d="M810.641 640.083h-341.333v-298.668h-341.334v384.001h-85.333v-640.001h85.333v128h768v-128h85.333v384c0 94.252-76.416 170.668-170.667 170.668zM298.641 384.081c70.699 0 128 57.301 128 128.001 0 70.699-57.301 128-128 128s-128-57.301-128-128c0-70.7 57.301-128.001 128-128.001z" />
+<glyph unicode="&#xe893;" glyph-name="houzz-box" d="M512 768.442l-195.825-115.2v-226.566l195.825 115.191v226.575zM512 541.867v-456.977l195.823 115.2v456.977l-195.823-115.2zM512 311.467l-195.825 115.191v-230.391l195.825 115.2zM212.45 810.667h599.1c46.080 0 84.45-38.37 84.45-84.45v-599.1c0-46.080-38.37-84.45-84.45-84.45h-599.1c-46.080 0-84.45 38.37-84.45 84.45v599.1c0 46.080 38.37 84.45 84.45 84.45z" />
+<glyph unicode="&#xe894;" glyph-name="human-child" d="M512 853.334c70.69 0 128-57.308 128-128s-57.306-128-128-128c-70.694 0-128 57.307-128 128s57.306 128 128 128zM469.333-0h-128v256h-85.333v298.667h512v-298.667h-85.333v-256h-128v170.667h-85.333v-170.667z" />
+<glyph unicode="&#xe895;" glyph-name="human-male-female" d="M320 853.334c47.128 0 85.333-38.205 85.333-85.333s-38.205-85.333-85.333-85.333c-47.128 0-85.333 38.205-85.333 85.333s38.205 85.333 85.333 85.333zM256 640h128c47.13 0 85.333-38.205 85.333-85.333v-234.666h-64v-320h-170.667v320h-64v234.666c0 47.128 38.205 85.333 85.333 85.333zM704 853.333c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.205-85.333 85.333s38.204 85.333 85.333 85.333zM640-0v256h-128l110.413 323.754c10.714 34.885 43.191 60.246 81.587 60.246s70.869-25.361 81.587-60.245l110.413-323.755h-128v-256h-128z" />
+<glyph unicode="&#xe896;" glyph-name="human" d="M895.974 554.745h-256v-554.668h-85.333v256h-85.333v-256h-85.334v554.668h-256v85.333h768zM511.974 853.412c47.104 0 85.333-38.185 85.333-85.333 0-47.104-38.229-85.333-85.333-85.333-47.147 0-85.334 38.229-85.334 85.333 0 47.148 38.187 85.333 85.334 85.333z" />
+<glyph unicode="&#xe897;" glyph-name="image-album" d="M256 128l128 164.693 91.307-110.080 128 164.693 164.693-219.307h-512zM256 768h213.333v-341.333l-106.667 64-106.667-64zM768 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v682.667c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe898;" glyph-name="image-area-close" d="M511.974-42.585l-170.667 170.667h341.334l-170.667-170.667zM853.333 810.667c47.104 0 85.333-38.229 85.333-85.333v-426.667c0-47.104-38.229-85.333-85.333-85.333h-682.667c-47.147 0-85.333 38.229-85.333 85.333l0.426 426.667c0 47.104 37.76 85.333 84.907 85.333h682.667zM213.333 341.334h597.333l-192 256-149.333-192.256-106.667 128.256-149.333-192z" />
+<glyph unicode="&#xe899;" glyph-name="image-area" d="M853.308 725.416c47.104 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.229-85.333-85.333-85.333h-682.666c-47.147 0-85.333 38.229-85.333 85.333l0.426 426.668c0 47.104 37.76 85.333 84.907 85.333h682.666zM213.333 256h597.333l-192 256-149.333-192.256-106.667 128.256-149.333-192z" />
+<glyph unicode="&#xe89a;" glyph-name="image-broken" d="M810.62 810.667c47.151 0 85.38-38.208 85.38-85.333v-256h-85.333v-85.333h-85.333v-85.333h-85.333v-85.333h-85.333v-85.333h-85.333v-85.333h-256.382c-47.146 0-84.951 38.208-84.951 85.333v597.333c0 47.125 37.806 85.333 84.951 85.333h597.668zM896 298.667v-170.667c0-47.108-38.204-85.308-85.333-85.333h-170.667v85.333h85.333v85.333h85.333v85.333h85.333zM810.615 575.999c0 11.778-9.553 21.333-21.346 21.333h-554.971c-11.785 0-21.347-9.556-21.347-21.333v-298.666c0-11.78 9.562-21.333 21.347-21.333h235.035v42.667h85.333v85.333h85.333v85.333h85.333v85.333h85.282v21.333z" />
+<glyph unicode="&#xe89b;" glyph-name="image-filter-black-white" d="M810.667 128l-298.667 341.333v-341.333h-298.667l298.667 341.333v256h298.667zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe89c;" glyph-name="image-filter-center-focus" d="M512 554.667c-70.827 0-128-57.173-128-128s57.173-128 128-128c70.827 0 128 57.173 128 128s-57.173 128-128 128zM810.667 128h-170.667v-85.333h170.667c46.933 0 85.333 38.4 85.333 85.333v170.667h-85.333zM810.667 810.667h-170.667v-85.333h170.667v-170.667h85.333v170.667c0 46.933-38.4 85.333-85.333 85.333zM213.333 725.334h170.667v85.333h-170.667c-46.933 0-85.333-38.4-85.333-85.333v-170.667h85.333zM213.333 298.667h-85.333v-170.667c0-46.933 38.4-85.333 85.333-85.333h170.667v85.333h-170.667v170.667z" />
+<glyph unicode="&#xe89d;" glyph-name="image-filter-drama" d="M810.667 170.667h-554.667c-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667c94.293 0 170.667-76.373 170.667-170.667h85.333c0 117.76-79.36 216.747-187.733 246.613 43.093 57.173 110.933 94.72 187.733 94.72 129.28 0 234.667-105.387 234.667-234.667v-21.333h64c70.4 0 128-57.6 128-128s-57.6-128-128-128zM825.6 510.294c-29.013 147.2-158.293 257.707-313.6 257.707-123.307 0-229.973-69.973-283.307-172.373-128.427-13.653-228.693-122.027-228.693-254.293 0-141.227 114.773-256 256-256h554.667c117.76 0 213.333 95.573 213.333 213.333 0 112.64-87.467 203.947-198.4 211.627z" />
+<glyph unicode="&#xe89e;" glyph-name="image-filter-frames" d="M768 597.334h-512v-426.667h512zM853.333 85.334h-682.667v597.333h192.853l150.187 149.333 148.48-149.333h191.147zM853.333 768h-170.667l-170.667 170.667-170.667-170.667h-170.667c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe89f;" glyph-name="image-filter-hdr" d="M597.333 682.667l-160-213.333 121.6-162.133-68.267-51.2c-72.107 96-192 256-192 256l-256-341.333h938.667l-384 512z" />
+<glyph unicode="&#xe8a0;" glyph-name="image-filter-none" d="M896 213.334h-597.333v597.333h597.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667z" />
+<glyph unicode="&#xe8a1;" glyph-name="image-filter-tilt-shift" d="M242.347 96.427c63.147-51.627 141.653-85.76 226.987-94.293v86.187c-62.293 7.68-119.040 32.427-166.4 69.12zM554.667 88.32v-86.187c85.76 8.533 163.84 42.667 226.987 94.293l-61.013 61.013c-46.933-36.693-103.68-61.44-165.973-69.12zM781.227 217.6l61.013-61.013c51.627 63.147 85.76 141.653 94.293 226.987h-86.187c-7.68-61.867-32.427-118.613-69.12-165.973zM640 426.667c0 70.827-57.173 128-128 128s-128-57.173-128-128c0-70.827 57.173-128 128-128s128 57.173 128 128zM173.653 384h-86.187c8.533-85.76 42.667-163.84 94.293-226.987l61.013 61.013c-36.693 46.933-61.44 103.68-69.12 165.973zM242.773 635.734l-61.013 60.587c-51.627-63.147-85.76-141.227-94.293-226.987h86.187c7.68 62.293 32.427 119.040 69.12 166.4zM850.347 469.334h86.187c-8.533 85.76-42.667 163.84-94.293 226.987l-61.013-60.587c36.693-47.36 61.44-104.107 69.12-166.4zM781.653 756.907c-63.147 51.627-141.227 85.76-226.987 94.293v-86.187c62.293-7.68 119.040-32.427 166.4-69.12zM469.333 765.014v86.187c-85.76-8.533-163.84-42.667-226.987-94.293l60.587-61.013c47.36 36.693 104.107 61.44 166.4 69.12z" />
+<glyph unicode="&#xe8a2;" glyph-name="image-filter-vintage" d="M512 256c-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667c94.293 0 170.667-76.373 170.667-170.667s-76.373-170.667-170.667-170.667zM797.867 409.6c-11.947 6.827-24.32 12.373-36.693 17.067 12.373 4.693 24.747 10.24 36.693 17.067 81.92 47.36 127.573 133.12 128 221.44-76.373 43.947-173.653 47.36-256 0-11.947-6.827-23.040-14.933-33.28-23.040 2.133 13.227 3.413 26.88 3.413 40.533 0 94.72-51.627 177.067-128 221.44-76.373-44.373-128-126.72-128-221.44 0-13.653 1.28-27.307 3.413-40.533-10.24 8.533-21.333 16.64-33.28 23.467-81.92 47.36-179.2 43.947-256 0 0-88.32 45.653-174.080 128-221.44 11.947-6.827 24.32-12.373 36.693-17.067-12.373-4.693-24.747-10.24-36.693-17.067-81.92-47.36-127.573-133.12-128-221.44 76.373-43.947 173.653-47.36 256 0 11.947 6.827 23.040 14.933 33.28 23.040-2.133-13.653-3.413-27.307-3.413-40.96 0-94.72 51.627-177.067 128-221.44 76.373 44.373 128 126.72 128 221.44 0 13.653-1.28 27.307-3.413 40.533 10.24-8.533 21.333-16.213 33.28-23.040 81.92-47.36 179.2-43.947 256 0-0.427 88.32-46.080 174.080-128 221.44z" />
+<glyph unicode="&#xe8a3;" glyph-name="image-filter" d="M896 213.334h-597.333v597.333h597.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667zM680.96 499.627l-117.333-151.040-83.627 100.693-117.333-150.613h469.333l-151.040 200.96z" />
+<glyph unicode="&#xe8a4;" glyph-name="image" d="M810.62 810.667h-597.666c-47.151 0-84.953-38.208-84.953-85.333v-597.333c0-47.125 37.802-85.333 84.953-85.333h597.666c47.151 0 85.38 38.208 85.38 85.333v597.333c0 47.125-38.229 85.333-85.38 85.333zM810.62 277.334c0-11.78-9.557-21.333-21.346-21.333h-554.975c-11.788 0-21.345 9.553-21.345 21.333v298.667c0 11.781 9.558 21.333 21.345 21.333h554.975c11.789 0 21.346-9.552 21.346-21.333v-298.667z" />
+<glyph unicode="&#xe8a5;" glyph-name="import" d="M597.333 426.667l-170.667 170.667v-128h-341.333v-85.333h341.333v-128zM853.333 170.667v511.999c0 47.36-38.4 85.333-85.333 85.333h-512c-46.933 0-85.333-37.973-85.333-85.333v-128h85.333v128h512v-511.999h-512v128h-85.333v-128c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 37.973 85.333 85.333z" />
+<glyph unicode="&#xe8a6;" glyph-name="inbox" d="M682.667 512h-85.333v128h-170.667v-128h-85.333l170.667-170.667zM810.667 298.667h-170.667c0-70.827-57.173-128-128-128s-128 57.173-128 128h-171.093v426.667h597.76zM810.667 810.667h-597.76c-46.933 0-84.48-38.4-84.48-85.333l-0.427-597.333c0-46.933 37.973-85.333 84.907-85.333h597.76c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe8a7;" glyph-name="indent" d="M85.333 810.667h853.333v-128h-853.333v128zM384 597.333h554.667v-128h-554.667v127.999zM384 384h554.667v-128h-554.667v128zM85.333 170.667h853.333v-128h-853.333v128zM128 597.334l170.667-170.667-170.667-170.667h-42.667v341.333h42.667z" />
+<glyph unicode="&#xe8a8;" glyph-name="information-outline" d="M469.308 554.75h85.333v85.333h-85.333zM511.974 85.419c-188.204 0-341.334 153.126-341.334 341.333 0 188.201 153.13 341.331 341.334 341.331s341.333-153.13 341.333-341.331c0-188.207-153.131-341.333-341.333-341.333zM511.974 853.417c-235.649 0-426.667-191.018-426.667-426.665 0-235.652 191.018-426.667 426.667-426.667s426.667 191.014 426.667 426.667c0 235.646-191.019 426.665-426.667 426.665zM469.308 213.419h85.333v256h-85.333v-256z" />
+<glyph unicode="&#xe8a9;" glyph-name="information" d="M554.641 554.75h-85.333v85.333h85.333zM554.641 213.419h-85.333v256h85.333zM511.974 853.417c-235.647 0-426.665-191.018-426.665-426.665 0-235.652 191.018-426.667 426.665-426.667s426.667 191.014 426.667 426.667c0 235.646-191.019 426.665-426.667 426.665z" />
+<glyph unicode="&#xe8aa;" glyph-name="instagram" d="M853.308 661.416c0-11.776-9.557-21.333-21.333-21.333h-85.333c-11.776 0-21.333 9.557-21.333 21.333v85.333c0 11.776 9.557 21.333 21.333 21.333h85.333c11.776 0 21.333-9.557 21.333-21.333zM191.973 85.415c-11.776 0-21.333 9.557-21.333 21.333v362.667h89.174c-2.347-13.914-3.84-28.075-3.84-42.667 0-141.355 114.603-256 256.002-256 141.355 0 256 114.645 256 256 0 14.592-1.502 28.753-3.836 42.667h89.169v-362.667c0-11.776-9.557-21.333-21.333-21.333zM511.974 597.416c94.251 0 170.667-76.416 170.667-170.668 0-94.251-76.416-170.667-170.667-170.667-94.252 0-170.668 76.416-170.668 170.667s76.416 170.668 170.668 170.668zM853.308 853.416h-682.668c-47.147 0-84.907-38.187-84.907-85.333l-0.427-682.668c0-47.083 38.187-85.333 85.333-85.333h682.668c47.083 0 85.333 38.251 85.333 85.333v682.668c0 47.147-38.251 85.333-85.333 85.333z" />
+<glyph unicode="&#xe8ab;" glyph-name="instapaper" d="M426.667 725.333c0 23.564-19.103 42.667-42.667 42.667h-42.667v85.333h341.333v-85.333h-42.667c-23.565 0-42.667-19.103-42.667-42.667v-597.333c0-23.565 19.102-42.667 42.667-42.667h42.667v-85.333h-341.333v85.333h42.667c23.564 0 42.667 19.102 42.667 42.667v597.333z" />
+<glyph unicode="&#xe8ac;" glyph-name="internet-explorer" d="M554.667 810.667l43.524-2.44c118.507 54.228 222.332 60.548 276.109 5.941 42.65-43.305 46.502-117.495 18.325-205.031 29.367-54.276 46.042-116.427 46.042-182.471l-2.342-42.667h-548.911c15.813-97.374 84.684-170.667 167.253-170.667 55.838 0 105.408 33.519 136.546 85.333h225.604c-52.715-149.146-194.953-256-362.15-256-54.511 0-106.372 11.358-153.34 31.838-124.861-60.847-235.412-70.174-291.507-13.214-67.188 68.22-38.093 213.103 60.847 365.67 39.829 61.884 91.118 125.137 152.114 185.207l34.845 32.972c-50.171-29.39-113.896-74.327-179.005-140.343 36.092 174.612 190.74 305.869 376.046 305.869zM554.667 640c-76.42 0-141.106-62.781-162.854-149.333h325.708c-21.747 86.551-86.438 149.333-162.854 149.333zM855.923 765.37c-28.053 28.487-78.694 30.483-141.559 10.615 63.194-28.937 117.175-74.518 156.335-131.133 13.862 52.775 10.039 95.321-14.775 120.517zM165.85 85.769c35.524-36.070 107.26-29.666 194.169 9.818-78.822 46.438-139.606 120.226-169.309 208.311-51.145-96.969-63.647-178.743-24.861-218.129z" />
+<glyph unicode="&#xe8ad;" glyph-name="invert-colors" d="M511.974 103.109v0c-68.395 0-132.652 26.62-180.992 75.008-48.384 48.341-75.008 112.593-75.008 180.992 0 68.352 26.624 132.651 75.008 180.991l181.035 181.034zM753.34 600.472l-241.365 241.323-241.324-241.323c-133.333-133.335-133.333-349.442 0-482.729 66.603-66.645 153.942-99.968 241.324-99.968s174.763 33.323 241.365 99.968c133.291 133.286 133.291 349.436 0 482.729z" />
+<glyph unicode="&#xe8ae;" glyph-name="jira" d="M512 853.334c37.205 0 67.371-30.162 67.371-67.369s-30.165-67.369-67.371-67.369c-37.205 0-67.366 30.162-67.366 67.369s30.161 67.369 67.366 67.369zM332.351 808.421c37.207 0 67.368-30.161 67.368-67.368s-30.161-67.369-67.368-67.369c-37.207 0-67.369 30.162-67.369 67.369s30.161 67.368 67.369 67.368zM691.648 808.421c37.21 0 67.371-30.162 67.371-67.369s-30.161-67.369-67.371-67.369c-37.205 0-67.366 30.162-67.366 67.369s30.161 67.369 67.366 67.369zM503.578 471.578c-89.823 89.826-67.366 134.738-67.366 134.738h157.193c0-67.369-89.826-134.738-89.826-134.738zM593.404 22.456c0 0 0 89.826-179.649 269.474s-202.105 224.562-224.561 359.299c0 0 16.842 22.456 39.298 0s72.983-39.298 117.895-39.298c0 0 44.913-140.352 168.421-230.174 0 0 162.807 168.419 162.807 235.788 0 0 50.526-11.228 112.282 33.684 0 0 42.125 22.283 44.911 0 5.615-44.912-39.3-202.106-224.563-359.298 0 0 117.897-134.737 106.667-269.474h-123.507zM391.299 247.019l95.438-106.667c-44.911-44.915-50.526-140.352-50.526-140.352h-134.737c22.456 179.648 89.824 247.019 89.824 247.019z" />
+<glyph unicode="&#xe8af;" glyph-name="jsfiddle" d="M867.456 478.136c66.85-27.426 113.877-92.322 113.877-168.107 0-100.544-82.769-182.029-184.858-182.029h-566.076c-103.111 1.57-187.733 84.838-187.733 186.735 0 68.156 37.285 127.565 92.75 160.047-3.802 11.93-5.822 24.644-5.822 37.81 0 70.055 57.674 126.851 128.823 126.851 29.681 0 56.962-10.004 78.753-26.639 44.913 92.655 140.658 156.817 251.873 156.817 154.227 0 279.245-123.12 279.245-274.994 0-5.559-0.495-11.004-0.832-16.491zM393.181 475.546c-75.465 0-136.641-53.862-136.641-120.303 0-66.445 61.176-120.307 136.641-120.307 44.246 0 83.58 18.517 108.549 47.228l-43.081 48.546c-14.11-18.556-41.67-31.552-65.468-31.552-33.664 0-60.954 25.109-60.954 56.085 0 30.972 27.29 56.081 60.954 56.081 20.088 0 38.763-10.039 57.507-22.161 18.743-12.117 49.737-55.287 74.381-82.931 62.656-62.537 94.793-68.028 131.891-68.028 75.465 0 136.64 53.862 136.64 120.303 0 66.445-61.175 120.307-136.64 120.307-44.245 0-83.58-18.517-108.553-47.228l43.085-48.546c14.11 18.556 41.668 31.552 65.468 31.552 33.664 0 60.954-25.109 60.954-56.085 0-30.972-27.29-56.081-60.954-56.081-20.087 0-38.767 10.039-57.51 22.161-18.743 12.117-49.737 55.287-74.381 82.931-62.652 62.532-94.793 68.028-131.887 68.028z" />
+<glyph unicode="&#xe8b0;" glyph-name="keg" d="M213.333-0v85.333h42.667l-0.089 170.667h-42.578v85.333h42.534l-0.067 128h-42.467v170.667h256v170.667h-42.667v42.667h170.667v-42.667h-42.667v-170.667h256v-170.667h-42.867l0.068-128h42.799v-85.333h-42.756l0.090-170.667h42.667v-85.333h-597.333zM725.333 554.667c0 23.564-19.102 42.667-42.667 42.667h-85.333c-23.565 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667h85.333c23.565 0 42.667 19.102 42.667 42.666z" />
+<glyph unicode="&#xe8b1;" glyph-name="key-change" d="M277.333 853.333c83.598 0 154.718-53.428 181.073-128h480.26v-128h-170.667v-128h-128v128h-181.594c-26.355-74.572-97.475-128-181.073-128-106.039 0-192 85.961-192 192s85.961 192 192 192zM277.333 725.333c-35.346 0-64-28.654-64-64s28.654-64 64-64c35.346 0 64 28.654 64 64s-28.654 64-64 64zM277.333 384c83.598 0 154.718-53.427 181.073-128h480.26v-128h-85.333v-128h-85.333v128h-85.333v-128h-128v128h-96.26c-26.355-74.573-97.475-128-181.073-128-106.039 0-192 85.961-192 192s85.961 192 192 192zM277.333 256c-35.346 0-64-28.655-64-64s28.654-64 64-64c35.346 0 64 28.655 64 64s-28.654 64-64 64z" />
+<glyph unicode="&#xe8b2;" glyph-name="key-minus" d="M277.333 810.667c83.598 0 154.718-53.427 181.073-128h480.26v-128h-170.667v-128h-128v128h-181.594c-26.355-74.573-97.475-128-181.073-128-106.039 0-192 85.961-192 192s85.961 192 192 192zM277.333 682.667c-35.346 0-64-28.654-64-64s28.654-64 64-64c35.346 0 64 28.654 64 64s-28.654 64-64 64zM341.333 213.334h341.333v-85.333h-341.333v85.333z" />
+<glyph unicode="&#xe8b3;" glyph-name="key-plus" d="M277.333 810.667c83.598 0 154.718-53.427 181.073-128h480.26v-128h-170.667v-128h-128v128h-181.594c-26.355-74.573-97.475-128-181.073-128-106.039 0-192 85.961-192 192s85.961 192 192 192zM277.333 682.667c-35.346 0-64-28.654-64-64s28.654-64 64-64c35.346 0 64 28.654 64 64s-28.654 64-64 64zM341.333 213.334h128v128h85.333v-128h128v-85.333h-128v-128h-85.333v128h-128v85.333z" />
+<glyph unicode="&#xe8b4;" glyph-name="key-remove" d="M277.333 810.667c83.598 0 154.718-53.427 181.073-128h480.26v-128h-170.667v-128h-128v128h-181.594c-26.355-74.573-97.475-128-181.073-128-106.039 0-192 85.961-192 192s85.961 192 192 192zM277.333 682.667c-35.346 0-64-28.654-64-64s28.654-64 64-64c35.346 0 64 28.654 64 64s-28.654 64-64 64zM622.507 341.334l60.16-60.16-110.507-110.507 110.507-110.507-60.16-60.16-110.507 110.507-110.507-110.507-60.16 60.16 110.507 110.507-110.507 110.507 60.16 60.16 110.507-110.507 110.507 110.507z" />
+<glyph unicode="&#xe8b5;" glyph-name="key-variant" d="M938.667 170.667v-170.667h-170.667v128h-128v128h-128l-96.302 96.303c-23.534-7.134-48.502-10.97-74.365-10.97-141.385 0-256 114.615-256 256s114.615 256 256 256c141.385 0 256-114.615 256-256 0-25.863-3.836-50.831-10.97-74.365l352.303-352.302zM298.667 725.334c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.205 85.333 85.333s-38.205 85.333-85.333 85.333z" />
+<glyph unicode="&#xe8b6;" glyph-name="key" d="M298.667 341.334c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333zM539.733 512c-34.987 99.413-129.707 170.667-241.067 170.667-141.227 0-256-114.773-256-256s114.773-256 256-256c111.36 0 206.080 71.253 241.067 170.667h185.6v-170.667h170.667v170.667h85.333v170.667h-441.6z" />
+<glyph unicode="&#xe8b7;" glyph-name="keyboard-backspace" d="M895.974 469.415h-604.672l153.002 153.004-60.331 60.331-256-256.001 256-256 60.331 60.331-153.002 153.003h604.672v85.333z" />
+<glyph unicode="&#xe8b8;" glyph-name="keyboard-caps" d="M255.974 170.748h512v85.333h-512zM511.974 579.75l195.669-195.669 60.331 60.331-256 256-256-256 60.331-60.331 195.67 195.669z" />
+<glyph unicode="&#xe8b9;" glyph-name="keyboard-close" d="M511.974-42.585l170.667 170.667h-341.334zM810.641 597.416h-85.333v85.333h85.333zM810.641 469.415h-85.333v85.335h85.333zM682.641 597.416h-85.333v85.333h85.333zM682.641 469.415h-85.333v85.335h85.333zM682.641 298.748h-341.334v85.333h341.334zM298.641 597.416h-85.333v85.333h85.333zM298.641 469.415h-85.333v85.335h85.333zM341.307 554.749h85.333v-85.335h-85.333zM341.307 682.749h85.333v-85.333h-85.333zM469.308 554.749h85.333v-85.335h-85.333zM469.308 682.749h85.333v-85.333h-85.333zM853.308 810.749h-682.667c-47.147 0-84.907-38.229-84.907-85.333l-0.426-426.668c0-47.104 38.187-85.333 85.333-85.333h682.667c47.104 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe8ba;" glyph-name="keyboard-off" d="M42.667 756.545l54.49 54.122 756.177-756.177-54.123-54.49-128.081 128.081h-500.488c-47.147 0-85.333 38.229-85.333 85.333l0.426 426.668c0 20.561 7.195 39.432 19.225 54.17l-62.293 62.292zM810.641 512.083v85.333h-85.333v-85.333h85.333zM810.641 384.081v85.333h-85.333v-85.333h85.333zM682.641 512.083v85.333h-85.333v-85.333h85.333zM682.641 384.081v85.333h-85.333v-50.287l-92.954 92.955h50.287v85.333h-85.333v-50.289l-178.289 178.289h562.289c47.104 0 85.333-38.229 85.333-85.333v-426.668c0-36.651-23.147-67.934-55.612-80.009l-250.675 250.675h50.287zM341.308 298.748v-85.333h244.488l-85.333 85.333h-159.155zM213.308 512.083h73.821l-73.821 73.821v-73.821zM298.641 384.081v85.333h-85.333v-85.333h85.333zM341.308 384.081h73.821l-73.821 73.822v-73.822z" />
+<glyph unicode="&#xe8bb;" glyph-name="keyboard-return" d="M810.641 640.083v-170.668h-562.005l153.003 153.004-60.331 60.331-256-256.001 256-256 60.331 60.331-153.003 153.003h647.339v256.001h-85.333z" />
+<glyph unicode="&#xe8bc;" glyph-name="keyboard-tab" d="M853.308 170.748h85.333v512.001h-85.333zM494.31 622.419l153.003-153.004h-604.672v-85.333h604.672l-153.003-153.003 60.331-60.331 256 256-256 256.001-60.331-60.331z" />
+<glyph unicode="&#xe8bd;" glyph-name="keyboard-variant" d="M256 256h512v-85.333h-512v85.333zM256 384v-85.333h-170.666v85.333h170.666zM298.666 298.667v85.333h128v-85.333h-128zM469.333 298.667v85.333h85.333v-85.333h-85.333zM597.333 298.667v85.333h128v-85.333h-128zM768 298.667v85.333h170.667v-85.333h-170.667zM85.333 512h128v-85.333h-128v85.333zM810.667 426.667v85.333h128v-85.333h-128zM768 426.667h-85.333v85.333h85.333v-85.333zM341.333 426.667h-85.333v85.333h85.333v-85.333zM512 426.667h-128v85.333h128v-85.333zM640 426.667h-85.333v85.333h85.333v-85.333zM85.333 554.667v85.333h85.333v-85.333h-85.333zM213.333 554.667v85.333h85.333v-85.333h-85.333zM341.333 554.667v85.333h85.333v-85.333h-85.333zM469.333 554.667v85.333h85.333v-85.333h-85.333zM597.333 554.667v85.333h85.333v-85.333h-85.333zM725.333 554.667v85.333h213.333v-85.333h-213.333z" />
+<glyph unicode="&#xe8be;" glyph-name="keyboard" d="M810.641 512.083h-85.333v85.333h85.333zM810.641 384.081h-85.333v85.333h85.333zM682.641 512.083h-85.333v85.333h85.333zM682.641 384.081h-85.333v85.333h85.333zM682.641 213.415h-341.333v85.333h341.333zM298.641 512.083h-85.333v85.333h85.333zM298.641 384.081h-85.333v85.333h85.333zM341.308 469.415h85.333v-85.333h-85.333zM341.308 597.416h85.333v-85.333h-85.333zM469.308 469.415h85.333v-85.333h-85.333zM469.308 597.416h85.333v-85.333h-85.333zM853.308 725.416h-682.666c-47.147 0-84.907-38.229-84.907-85.333l-0.426-426.668c0-47.104 38.187-85.333 85.333-85.333h682.666c47.104 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe8bf;" glyph-name="label-outline" d="M682.641 213.419h-469.333v426.665h469.333l151.339-213.331zM752.316 689.365c-15.445 21.844-40.917 36.052-69.675 36.052l-469.333-0.427c-47.084 0-85.333-37.802-85.333-84.906v-426.665c0-47.108 38.25-84.907 85.333-84.907l469.333-0.427c28.757 0 54.229 14.246 69.675 36.049l186.325 262.618-186.325 262.612z" />
+<glyph unicode="&#xe8c0;" glyph-name="label" d="M752.311 689.375c-15.445 21.804-40.917 36.055-69.675 36.055l-469.333-0.427c-47.104 0-85.333-37.802-85.333-84.906v-426.665c0-47.147 38.229-84.907 85.333-84.907l469.333-0.427c28.757 0 54.229 14.208 69.675 36.011l186.325 262.656-186.325 262.61z" />
+<glyph unicode="&#xe8c1;" glyph-name="language-csharp" d="M490.487 257.14l17.766-103.919c-11.238-5.999-28.937-11.614-53.094-16.849s-52.756-8.026-85.796-8.371c-94.040 1.873-164.866 29.773-212.477 83.695s-71.462 122.615-71.553 206.089c2.044 98.344 30.81 174.039 86.298 227.085s125.437 79.868 209.845 80.465c32.132-0.301 59.723-3.008 82.767-8.123 23.049-5.114 40.141-10.831 51.277-17.148l-25.839-106.334-44.109 14.784c-17.276 4.135-37.028 6.301-59.251 6.496-49.594 0.070-90.508-15.589-122.74-46.976s-48.921-78.918-50.065-142.598c0.42-57.993 15.729-103.501 45.926-136.525 30.197-33.028 72.759-49.847 127.686-50.47l56.524 5.21c18.338 3.379 33.95 7.876 46.835 13.491zM592.695 128l27.029 170.667h-64l13.517 85.333h64l13.517 85.333h-64l13.517 85.333h63.996l27.034 170.666h85.333l-27.034-170.666h42.671l27.029 170.667h85.333l-27.029-170.667h64l-13.517-85.333h-64l-13.517-85.333h64l-13.517-85.333h-64l-27.029-170.667h-85.333l27.029 170.667h-42.667l-27.029-170.667h-85.333zM718.575 384h42.667l13.517 85.333h-42.667l-13.517-85.333z" />
+<glyph unicode="&#xe8c2;" glyph-name="language-css3" d="M214.039 810.67l-28.487-142.436h579.752l-18.091-92.006h-580.14l-28.102-142.435h579.753l-32.337-162.453-233.673-77.38-202.49 77.38 13.859 70.447h-142.436l-33.876-170.923 334.917-128.192 386.118 128.192 51.2 257.152 10.394 51.588 65.826 331.066h-722.188z" />
+<glyph unicode="&#xe8c3;" glyph-name="language-html5" d="M512 189.334l173.756 48.171 23.258 260.275h-308.942l-7.749 86.811h324.409l7.59 84.778h-424.646l22.868-256.364h293.805l-9.839-109.952-94.511-25.51-94.534 25.459-6.302 70.618h-85.102l12.142-136.115 173.796-48.171zM173.587 810.666h676.828l-61.705-691.246-276.877-76.753-276.618 76.791-61.629 691.208z" />
+<glyph unicode="&#xe8c4;" glyph-name="language-javascript" d="M128 810.667h768v-768h-768v768zM329.935 168.871c17.012-36.087 50.525-65.98 108.26-65.98 63.927 0 107.746 34.022 107.746 108.774v246.417h-72.171v-245.393c0-36.087-14.955-45.363-38.669-45.363-24.74 0-35.055 17.011-46.393 37.111l-58.773-35.567zM585.143 176.602c21.133-41.758 64.439-73.719 131.456-73.719 68.565 0 119.603 35.571 119.603 100.531 0 60.314-34.543 87.117-95.893 113.412l-18.039 7.731c-30.929 13.406-44.335 22.17-44.335 43.823 0 17.523 13.406 30.929 34.543 30.929 20.621 0 34.018-8.764 46.391-30.929l56.196 36.083c-23.714 41.762-56.708 57.745-102.588 57.745-64.444 0-105.685-41.246-105.685-95.377 0-58.769 34.543-86.609 86.613-108.77l18.039-7.74c32.994-14.43 52.582-23.194 52.582-47.94 0-20.621-19.068-35.575-48.973-35.575-35.571 0-55.676 18.56-71.147 43.823l-58.765-34.027z" />
+<glyph unicode="&#xe8c5;" glyph-name="language-python-text" d="M85.333 695.911c295.383 196.922 388.053-56.413 395.776-195.418s-127.422-314.261-297.315-198.426v-229.743l-98.461 65.643v557.943zM179.934 623.084v-229.736c154.449-92.672 207.538-16.414 207.538 114.867 0 185.338-107.147 192.093-207.538 114.868zM643.277 761.551c0 0-7.723-148.648 0-295.375 15.445-146.726 196.924-32.823 196.924-32.823v295.378l98.466-12.010v-394.327c0-262.562-262.566-250.069-262.566-250.069l-32.828 98.462c229.747 0 200.789 152.090 200.789 152.090-278.007-108.113-299.243 77.653-299.243 77.653v295.381l98.458 65.641z" />
+<glyph unicode="&#xe8c6;" glyph-name="language-python" d="M816.759 618.668c67.328 0 121.907-54.579 121.907-121.904v-161.527c0-67.324-54.579-121.903-121.907-121.903h-304.759c0-16.832 13.645-41.143 30.473-41.143h182.865v-71.62c0-67.328-54.579-121.907-121.907-121.907h-182.858c-67.326 0-121.905 54.579-121.905 121.907l-0.004 160c0 67.328 54.583 121.907 121.909 121.907h223.997c67.328 0 121.907 54.579 121.907 121.907v114.284h50.283zM633.903 115.81c-16.832 0-30.477-12.847-30.477-38.093 0-25.25 13.645-30.477 30.477-30.477s30.477 5.227 30.477 30.477c0 25.246-13.645 38.093-30.477 38.093zM207.239 192c-67.327 0-121.905 54.579-121.905 121.903v161.527c0 67.325 54.579 121.904 121.905 121.904h304.761c0 16.832-13.645 41.143-30.473 41.143h-182.863v71.619c0 67.327 54.579 121.905 121.905 121.905h182.857c67.328 0 121.907-54.579 121.907-121.905v-160.001c0-67.327-54.579-121.906-121.907-121.906h-223.996c-67.327 0-121.905-54.579-121.905-121.907v-114.283h-50.286zM390.097 694.857c16.832 0 30.476 12.847 30.476 38.094s-13.644 30.474-30.476 30.474c-16.832 0-30.476-5.227-30.476-30.474s13.644-38.094 30.476-38.094z" />
+<glyph unicode="&#xe8c7;" glyph-name="laptop-chromebook" d="M511.987 128.081c-23.552 0-42.667 19.115-42.667 42.667s19.115 42.667 42.667 42.667c23.552 0 42.667-19.115 42.667-42.667s-19.115-42.667-42.667-42.667zM170.653 725.416h682.667v-469.335h-682.667zM853.321 170.748c47.104 0 84.907 38.229 84.907 85.333l0.427 469.335c0 47.104-38.229 85.333-85.333 85.333h-682.667c-47.146 0-85.333-38.229-85.333-85.333v-469.335c0-47.104 38.187-85.333 85.333-85.333h-170.666c0-47.104 38.187-85.333 85.333-85.333h853.334c47.104 0 85.333 38.229 85.333 85.333h-170.667z" />
+<glyph unicode="&#xe8c8;" glyph-name="laptop-mac" d="M170.653 725.416h682.667v-426.668h-682.667zM853.321 170.748v42.667c47.104 0 84.907 38.229 84.907 85.333l0.427 426.668c0 47.104-38.229 85.333-85.333 85.333h-682.667c-47.104 0-85.333-38.229-85.333-85.333v-426.668c0-47.104 38.229-85.333 85.333-85.333v-42.667h-170.666v-85.333h1024v85.333h-170.667z" />
+<glyph unicode="&#xe8c9;" glyph-name="laptop-windows" d="M853.321 298.748h-682.667v426.668h682.667zM597.321 170.748h-170.667v42.667h170.667zM938.654 170.748v640.001h-853.334v-640.001h-85.333v-85.333h1024v85.333h-85.333z" />
+<glyph unicode="&#xe8ca;" glyph-name="laptop" d="M170.654 682.749h682.667v-426.668h-682.667zM853.321 170.748c47.104 0 84.907 38.229 84.907 85.333l0.427 426.668c0 47.104-38.229 85.333-85.333 85.333h-682.667c-47.147 0-85.333-38.229-85.333-85.333v-426.668c0-47.104 38.187-85.333 85.333-85.333h-170.667v-85.333h1024v85.333h-170.667z" />
+<glyph unicode="&#xe8cb;" glyph-name="lastfm" d="M768.286 173.598c-88.841 0.358-136.252 44.126-169.152 121.237l-9.387 21.039-81.161 186.266c-26.833 65.933-93.677 110.478-169.054 110.478-101.926 0-184.605-83.276-184.605-185.981 0-102.711 82.679-185.988 184.605-185.988 71.111 0 133.026 40.486 163.84 99.849l32.9-76.211c-46.647-57.203-117.475-93.619-196.74-93.619-140.326 0-254.199 114.526-254.199 255.97 0 141.36 113.873 256.029 254.199 256.029 106.001 0 191.62-56.975 235.046-157.943 3.315-7.831 45.982-108.305 83.247-193.809 23.040-52.928 42.667-88.017 106.381-90.197 62.673-2.163 105.626 36.22 105.626 84.745 0 47.407-32.713 58.795-88.085 77.329-99.46 32.998-150.848 66.146-150.848 145.561 0 77.473 52.339 129.138 137.387 129.138 55.467 0 95.475-24.823 123.162-74.316l-54.327-27.961c-20.574 28.871-43.14 40.268-71.868 40.268-39.919 0-68.365-27.971-68.365-65.157 0-52.792 46.839-60.766 112.452-82.441 88.273-28.949 129.327-62.007 129.327-144.585 0-86.707-73.86-149.845-170.381-149.7z" />
+<glyph unicode="&#xe8cc;" glyph-name="launch" d="M597.308 810.75v-85.333h153.003l-419.371-419.326 60.331-60.373 419.371 419.369v-153.003h85.333v298.667zM810.641 128.086h-597.333v597.331h298.667v85.333h-298.667c-47.147 0-85.333-38.229-85.333-85.333v-597.331c0-47.108 38.187-85.333 85.333-85.333h597.333c47.104 0 85.333 38.225 85.333 85.333v298.667h-85.333v-298.667z" />
+<glyph unicode="&#xe8cd;" glyph-name="layers-off" d="M139.52 896l-54.187-54.187 180.053-180.053-137.387-107.093 69.547-54.187 314.453-244.48 89.6 69.547 61.013-61.013-150.613-116.907-314.453 244.48-69.547-53.76 384-298.667 211.2 164.267 161.28-161.28 54.187 54.187-799.147 799.147zM826.027 500.48l69.973 54.187-384 298.667-124.16-96.853 335.787-336.213 102.4 80.213zM845.227 299.094l50.773 39.253-61.013 61.013-50.773-39.253 61.013-61.013z" />
+<glyph unicode="&#xe8ce;" glyph-name="layers" d="M512 256l384 298.667-384 298.667-384-298.667 69.547-54.187zM511.573 147.627l-314.453 244.48-69.12-53.76 384-298.667 384 298.667-69.547 54.187-314.88-244.907z" />
+<glyph unicode="&#xe8cf;" glyph-name="leaf" d="M725.333 597.334c-384-85.333-473.551-348.403-562.512-569.289l80.684-27.78 40.681 97.83c20.591-7.151 41.674-12.762 57.147-12.762 469.333 0 597.333 725.333 597.333 725.333-42.667-85.333-341.333-96-554.667-138.667s-298.667-224-298.667-309.333c0-85.333 74.667-160 74.667-160 138.667 394.667 565.333 394.667 565.333 394.667z" />
+<glyph unicode="&#xe8d0;" glyph-name="library-books" d="M810.667 640h-426.667v85.333h426.667zM640 298.667h-256v85.333h256zM810.667 469.334h-426.667v85.333h426.667zM853.333 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM170.667 682.667h-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333v85.333h-597.333v597.333z" />
+<glyph unicode="&#xe8d1;" glyph-name="library-music" d="M170.667 682.667h-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333v85.333h-597.333zM768 640h-128v-234.667c0-58.88-47.787-106.667-106.667-106.667s-106.667 47.787-106.667 106.667c0 58.88 47.787 106.667 106.667 106.667 24.32 0 46.080-8.107 64-21.76v235.093h170.667zM853.333 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe8d2;" glyph-name="library-plus" d="M810.667 469.334h-170.667v-170.667h-85.333v170.667h-170.667v85.333h170.667v170.667h85.333v-170.667h170.667zM853.333 853.334h-512c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333zM170.667 682.667h-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333v85.333h-597.333v597.333z" />
+<glyph unicode="&#xe8d3;" glyph-name="library" d="M511.974 597.416c70.699 0 128 57.301 128 128s-57.301 128-128 128c-70.699 0-128-57.301-128-128s57.302-128 128-128zM511.974 446.161c-100.865 93.569-235.563 151.255-384 151.255v-469.335c148.437 0 283.136-57.685 384-151.253 100.864 93.568 235.563 151.253 384 151.253v469.335c-148.437 0-283.136-57.685-384-151.255z" />
+<glyph unicode="&#xe8d4;" glyph-name="lightbulb-outline" d="M511.974 853.416c164.949 0 298.667-133.717 298.667-298.667 0-101.463-50.688-190.935-128-244.908v-96.427c0-23.552-19.115-42.667-42.667-42.667h-256c-23.552 0-42.667 19.115-42.667 42.667v96.427c-77.312 53.973-128 143.445-128 244.908 0 164.95 133.717 298.667 298.666 298.667zM383.975 42.748v42.667h256v-42.667c0-23.552-19.115-42.667-42.667-42.667h-170.666c-23.552 0-42.667 19.115-42.667 42.667zM512 768c-117.821 0-213.333-95.513-213.333-213.333 0-87.479 52.655-162.662 128-195.584v-103.083h170.667v103.083c75.345 32.922 128 108.105 128 195.584 0 117.821-95.514 213.333-213.333 213.333z" />
+<glyph unicode="&#xe8d5;" glyph-name="lightbulb" d="M511.974 853.416c-164.949 0-298.666-133.717-298.666-298.667 0-101.463 50.688-190.935 128-244.908v-96.427c0-23.552 19.115-42.667 42.667-42.667h256c23.552 0 42.667 19.115 42.667 42.667v96.427c77.312 53.973 128 143.445 128 244.908 0 164.949-133.717 298.667-298.667 298.667zM383.975 42.748c0-23.552 19.115-42.667 42.667-42.667h170.666c23.552 0 42.667 19.115 42.667 42.667v42.667h-256v-42.667z" />
+<glyph unicode="&#xe8d6;" glyph-name="link-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-170.743 170.743h-73.822v73.826l-139.511 139.507h-73.823v73.826l-107.135 107.133c-41.248-32.005-67.799-82.053-67.799-138.292 0-96.593 78.339-174.929 174.934-174.929h128.001v-81.071h-128.001c-141.354 0-256 114.607-256 256 0 78.626 35.45 148.97 91.23 195.927l-91.207 91.207zM682.645 682.745c141.44 0 256-114.603 256-256.001 0-94.558-51.238-177.139-127.484-221.47l-60.331 60.331c62.729 26.586 106.748 88.734 106.748 161.139 0 96.6-78.336 174.937-174.933 174.937h-128v81.064h128zM341.311 682.745h128.001v-81.065h-54.558l-80.956 80.956 7.513 0.108zM682.645 469.41v-85.333h-50.287l-85.333 85.333h135.62z" />
+<glyph unicode="&#xe8d7;" glyph-name="link-variant-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-206.089 206.089-111.292-111.292c-83.313-83.311-218.388-83.311-301.699 0-83.312 83.315-83.312 218.389 0 301.7l63.386 63.386c-0.355-34.995 5.404-70.042 17.276-103.403l-20.323-20.322c-49.987-49.988-49.987-131.034 0-181.018 49.987-49.988 131.032-49.988 181.019 0l111.294 111.292-68.642 68.638c-0.265-10.556-4.429-21.026-12.48-29.082-16.666-16.661-43.679-16.661-60.342 0-44.998 45.001-65.692 105.097-62.081 163.985l-243.904 243.905zM542.165 758.533c83.311 83.311 218.389 83.311 301.7 0s83.311-218.386 0-301.7l-63.386-63.381c0.354 34.995-5.406 70.046-17.276 103.403l20.322 20.324c49.988 49.987 49.988 131.032 0 181.019s-131.029 49.987-181.018 0l-142.135-142.135-60.339 60.339 142.131 142.132zM572.339 547.348c16.661 16.662 43.678 16.662 60.339 0 58.428-58.426 75.878-142.313 52.356-215.947l-75.639 75.639c-2.394 29.158-14.746 57.655-37.056 79.966-16.661 16.666-16.661 43.679 0 60.341z" />
+<glyph unicode="&#xe8d8;" glyph-name="link-variant" d="M451.661 366.328c16.661-16.661 16.661-43.678 0-60.339-16.666-16.661-43.679-16.661-60.342 0-83.312 83.311-83.312 218.387 0 301.699l0.001-0.001 150.845 150.846c83.311 83.312 218.389 83.311 301.7 0s83.311-218.387 0-301.7l-63.386-63.381c0.354 34.995-5.402 70.046-17.276 103.403l20.322 20.324c49.988 49.987 49.988 131.032 0 181.019s-131.029 49.987-181.018 0l-150.848-150.849c-49.989-49.986-49.989-131.031 0-181.020zM572.339 547.348c16.661 16.662 43.678 16.662 60.339 0 83.311-83.313 83.311-218.387 0-301.698v0l-150.848-150.852c-83.313-83.311-218.388-83.311-301.699 0-83.311 83.315-83.312 218.389 0 301.7l63.386 63.386c-0.355-34.995 5.404-70.042 17.276-103.403l-20.323-20.322c-49.987-49.988-49.987-131.034 0-181.018 49.987-49.988 131.032-49.988 181.019 0l150.85 150.848c49.988 49.988 49.988 131.034 0 181.018-16.661 16.666-16.661 43.679 0 60.341z" />
+<glyph unicode="&#xe8d9;" glyph-name="link" d="M682.645 682.745h-128v-81.065h128c96.597 0 174.933-78.336 174.933-174.936 0-96.593-78.336-174.929-174.933-174.929h-128v-81.071h128c141.44 0 256 114.607 256 256 0 141.4-114.56 256.001-256 256.001zM166.378 426.744c0 96.6 78.337 174.936 174.933 174.936h128.001v81.065h-128.001c-141.354 0-256-114.601-256-256.001 0-141.393 114.646-256 256-256h128.001v81.071h-128.001c-96.596 0-174.933 78.336-174.933 174.929zM341.311 384.077h341.334v85.333h-341.334v-85.333z" />
+<glyph unicode="&#xe8da;" glyph-name="linkedin-box" d="M810.641 128.081h-128v226.133c0 35.328-28.672 64-64 64s-64-28.672-64-64v-226.133h-128v384.001h128v-51.201c22.101 35.755 67.669 59.735 106.667 59.735 82.475 0 149.333-66.86 149.333-149.335zM277.308 584.104c-42.709 0-77.355 34.56-77.355 77.312s34.645 77.355 77.355 77.355c42.709 0 77.312-34.603 77.312-77.355s-34.603-77.312-77.312-77.312zM341.308 128.081h-128v384.001h128zM853.308 853.416h-682.667c-47.147 0-84.916-38.187-84.916-85.333l-0.417-682.668c0-47.083 38.187-85.333 85.333-85.333h682.667c47.083 0 85.333 38.251 85.333 85.333v682.668c0 47.147-38.251 85.333-85.333 85.333z" />
+<glyph unicode="&#xe8db;" glyph-name="linkedin" d="M896 42.667h-170.667v288c0 45.167-50.684 82.953-95.851 82.953s-74.816-37.786-74.816-82.953v-288h-170.667v512h170.667v-85.333c28.258 45.714 100.54 75.21 150.4 75.21 105.451 0 190.933-87.097 190.933-192.543v-309.333zM298.666 42.667h-170.667v512h170.667v-512zM213.333 810.667c47.128 0 85.333-38.205 85.333-85.333s-38.205-85.333-85.333-85.333c-47.128 0-85.333 38.205-85.333 85.333s38.205 85.333 85.333 85.333z" />
+<glyph unicode="&#xe8dc;" glyph-name="linode" d="M303.391 122.65l96.28-102.195-16.481 112.533-102.879 101.18 23.080-111.518zM407.086-0l-0.94 0.090-0.938 0.269-0.714 0.346-1.14 0.905-108.399 115.076c-0.652 0.691-1.094 1.545-1.286 2.466l-26.803 129.451-0.077 1.621c0.082 0.678 0.296 1.327 0.622 1.907 0.424 0.755 1.038 1.399 1.798 1.865l28.786 17.604-43.441 40.917c-0.765 0.721-1.287 1.655-1.501 2.684l-34.594 167.151-0.068 1.677c0.085 0.683 0.305 1.327 0.636 1.903 0.425 0.742 1.039 1.387 1.807 1.847l0.435 0.23 45.12 21.483-62.409 48.641c-0.966 0.751-1.614 1.81-1.865 2.997l-45.981 222.083-0.061 1.692 0.278 1.129c0.354 0.956 0.993 1.806 1.869 2.417l1.399 0.693 206.078 64.191c1.237 0.388 2.572 0.287 3.746-0.28l151.683-73.233c1.37-0.907 2.227-2.411 2.3-4.063l9.417-220.294c0.081-1.986-0.986-3.84-2.743-4.759l-56.081-29.18 60.194-40.445c1.267-0.986 2.005-2.509 1.988-4.13l2.483-58.214 57.566 35.191c1.698 1.041 3.836 1.003 5.495-0.098l40.013-26.428 1.045 52.224c0.034 1.737 0.96 3.341 2.445 4.25l98.364 60.135c1.574 0.969 3.541 1.002 5.15 0.118l116.693-64.669c1.451-0.866 2.377-2.394 2.47-4.083l-0.034-0.981-16.175-119.684c-0.179-1.301-0.853-2.496-1.882-3.319l-91.187-72.674c-0.316-0.252-0.657-0.465-1.015-0.631-0.687-0.32-1.434-0.478-2.249-0.478-0.542 0.009-1.088 0.102-1.617 0.282-0.243 0.090-0.486 0.192-0.725 0.316-0.269 0.145-0.525 0.316-0.759 0.499l-33.749 23.488-3.401-55.932c-0.090-1.451-0.777-2.795-1.92-3.708l-111.552-88.96-1.216-0.806c-0.691-0.329-1.434-0.491-2.185-0.491s-1.506 0.171-2.206 0.495l-1.092 0.708-46.583 39.206 3.26-76.275c0.068-1.626-0.644-3.191-1.924-4.22l-139.442-111.087-0.96-0.61c-0.706-0.354-1.467-0.512-2.225-0.512zM720.422 375.45c0.589-0.397 1.079-0.9 1.455-1.476 0.521-0.798 0.815-1.732 0.836-2.705l-0.004-0.401-0.004-0.030-3.443-56.687 31.872-22.182 9.617 111.219-107.895 67.234-0.998-49.694 68.565-45.278zM592.090 282.513l-49.199 37.551 0.375-8.802c0.085-1.771-0.768-3.456-2.253-4.454l-37.103-24.998 40.35-32.939 1.152-1.327c0.431-0.721 0.687-1.549 0.725-2.415l1.647-38.545 45.261-38.101-0.956 114.031zM262.75 318.857l108.13-101.867-22.817 155.925-116.621 97.161 31.308-151.219zM211.749 565.043l122.15-95.197-32.385 221.107-132.939 82.661 43.174-208.57zM771.017 403.077l-9.429-108.937 80.265 63.983 14.31 105.899-85.146-60.945zM603.281 167.966l101.777 81.178 6.784 111.629-109.508-78.332 0.947-114.475zM541.303 118.588l-4.988 116.663-142.804-102.17 17.35-118.413 130.442 103.919zM311.884 690.732l32.949-224.897 177.655 92.443-8.977 209.929-201.626-77.476zM358.409 372.873l23.548-160.887 150.967 101.705-6.601 154.761-167.915-95.578z" />
+<glyph unicode="&#xe8dd;" glyph-name="linux" d="M562.287 320c-27.772-32.401-72.802-32.401-100.574 0l-144.082 169.668c-12.181-32.213-18.964-67.989-18.964-105.668 0-71.194 24.218-135.599 63.308-182.003 65.626-4.322 119.788-29.517 140.724-73.758 3.085-0.158 6.187-0.239 18.748 0.009 20.787 42.889 73.796 66.496 138.202 70.967 40.482 46.592 65.685 112.158 65.685 184.785 0 37.679-6.784 73.455-18.965 105.668l-144.081-169.668zM853.333 53.334c0-23.565-29.769-53.333-53.333-53.333h-234.667c-23.565 0-53.333 29.769-53.333 53.333 0-23.565-29.769-53.333-53.333-53.333h-234.667c-23.564 0-53.334 29.769-53.334 53.333 0 55.543 40.195 104.017 98.24 132.318-34.985 55.902-55.573 124.378-55.573 198.349-42.667-85.333-98.261-109.252-124.283-85.333s-12.537 92.535 43.278 153.254c31.51 34.278 80.456 76.196 115.761 92.029 13.654 29.363 30.95 56.177 51.199 79.654l-0.621 16.394c0 117.821 95.513 213.333 213.334 213.333s213.333-95.512 213.333-213.333l-0.623-16.394c20.25-23.477 37.547-50.291 51.2-79.654 35.307-15.833 84.25-57.751 115.763-92.029 55.812-60.719 69.299-129.335 43.277-153.254s-81.617 0-124.284 85.333c0-74.714-21.005-143.817-56.631-200.026 58.615-27.328 99.298-74.761 99.298-130.641zM421.49 554.667c-17.673-20.619-17.673-54.050 0-74.666l53.334-64c17.673-20.621 46.327-20.621 64 0l53.333 64c17.673 20.617 17.673 54.048 0 74.666h-170.668zM426.667 714.667c-23.564 0-42.667-27.538-42.667-74.667s19.102-74.667 42.667-74.667c23.565 0 42.667 27.538 42.667 74.667s-19.102 74.667-42.667 74.667zM597.333 714.667c-23.565 0-42.667-27.538-42.667-74.667s19.102-74.667 42.667-74.667c23.565 0 42.667 27.538 42.667 74.667s-19.102 74.667-42.667 74.667z" />
+<glyph unicode="&#xe8de;" glyph-name="lock-outline" d="M511.974 213.419c-47.147 0-85.333 38.225-85.333 85.333 0 47.104 38.187 85.333 85.333 85.333 47.104 0 85.333-38.229 85.333-85.333 0-47.108-38.229-85.333-85.333-85.333zM767.974 85.419v426.665h-512v-426.665h512zM767.974 597.417c47.104 0 85.333-38.229 85.333-85.333v-426.665c0-47.108-38.229-85.333-85.333-85.333h-512c-47.147 0-85.333 38.225-85.333 85.333v426.665c0 47.104 38.187 85.333 85.333 85.333h42.667v85.333c0 117.802 95.53 213.333 213.333 213.333s213.333-95.531 213.333-213.333v-85.333h42.667zM512 810.667c-70.694 0-128-57.307-128-128v-85.333h256v85.333c0 70.693-57.31 128-128 128z" />
+<glyph unicode="&#xe8df;" glyph-name="lock-unlocked-outline" d="M768 85.338v426.666h-512v-426.666h512zM768 597.337c47.104 0 85.333-38.229 85.333-85.333v-426.666c0-47.104-38.229-85.333-85.333-85.333h-512c-47.147 0-85.333 38.229-85.333 85.333v426.666c0 47.104 38.187 85.333 85.333 85.333l384-0.003v85.333c0 70.692-57.306 128-128 128s-128-57.308-128-128l-85.333 0.003c0 117.802 95.53 213.333 213.333 213.333s213.333-95.531 213.333-213.333v-85.333h42.667zM512 213.338c-47.147 0-85.333 38.229-85.333 85.333s38.187 85.333 85.333 85.333c47.104 0 85.333-38.229 85.333-85.333s-38.229-85.333-85.333-85.333z" />
+<glyph unicode="&#xe8e0;" glyph-name="lock-unlocked" d="M768 597.334c47.104 0 85.333-38.229 85.333-85.333v-426.667c0-47.104-38.229-85.333-85.333-85.333h-512c-47.147 0-85.333 38.229-85.333 85.333v426.667c0 47.104 38.187 85.333 85.333 85.333l384-0.004v85.333c0 70.693-57.306 128-128 128s-128-57.307-128-128l-85.333 0.004c0 117.802 95.53 213.333 213.333 213.333s213.333-95.531 213.333-213.333v-85.333h42.667zM512 213.334c47.104 0 85.333 38.229 85.333 85.333s-38.229 85.333-85.333 85.333c-47.147 0-85.333-38.229-85.333-85.333s38.187-85.333 85.333-85.333z" />
+<glyph unicode="&#xe8e1;" glyph-name="lock" d="M511.974 213.419c47.147 0 85.333 38.225 85.333 85.333 0 47.104-38.187 85.333-85.333 85.333-47.104 0-85.333-38.229-85.333-85.333 0-47.108 38.229-85.333 85.333-85.333zM767.974 597.413c47.104 0 85.333-38.229 85.333-85.333v-426.665c0-47.104-38.229-85.333-85.333-85.333h-512.001c-47.104 0-85.333 38.229-85.333 85.333v426.665c0 47.104 38.23 85.333 85.333 85.333h42.667v85.333c0 117.802 95.531 213.333 213.334 213.333s213.333-95.531 213.333-213.333v-85.333h42.667zM512 810.667c-70.694 0-128-57.308-128-128v-85.333h256v85.333c0 70.692-57.306 128-128 128z" />
+<glyph unicode="&#xe8e2;" glyph-name="login" d="M426.667 202.667v138.667h-298.666v170.667h298.666v138.667l224-224-224-224zM341.333 853.332l384-0.001c47.125 0 85.333-38.204 85.333-85.332v-682.665c0-47.13-38.208-85.333-85.333-85.333h-384c-47.128 0-85.333 38.204-85.333 85.333v170.667h85.333v-170.667h384v682.665h-384v-170.666h-85.333v170.666c0 47.128 38.205 85.333 85.333 85.333z" />
+<glyph unicode="&#xe8e3;" glyph-name="logout" d="M725.329 202.667v138.667h-298.663v170.667h298.663v138.667l224-224-224-224zM554.667 853.333c47.13 0 85.333-38.205 85.333-85.333v-170.666h-85.333v170.666l-384-0.001v-682.665h384v170.667h85.333v-170.667c0-47.13-38.204-85.333-85.333-85.333h-384c-47.128 0-85.333 38.204-85.333 85.333v682.665c0 47.128 38.205 85.332 85.333 85.332l384 0.002z" />
+<glyph unicode="&#xe8e4;" glyph-name="looks" d="M512 682.667c-258.987 0-469.333-210.347-469.333-469.333h85.333c0 211.627 172.373 384 384 384s384-172.373 384-384h85.333c0 258.987-210.347 469.333-469.333 469.333zM512 512c-164.693 0-298.667-133.973-298.667-298.667h85.333c0 117.76 95.573 213.333 213.333 213.333s213.333-95.573 213.333-213.333h85.333c0 164.693-133.973 298.667-298.667 298.667z" />
+<glyph unicode="&#xe8e5;" glyph-name="loupe" d="M512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333c188.16 0 341.333-153.173 341.333-341.333s-153.173-341.333-341.333-341.333zM512 853.334c-235.093 0-426.667-191.573-426.667-426.667s191.573-426.667 426.667-426.667h341.333c46.933 0 85.333 38.4 85.333 85.333v341.333c0 235.093-191.573 426.667-426.667 426.667zM554.667 640h-85.333v-170.667h-170.667v-85.333h170.667v-170.667h85.333v170.667h170.667v85.333h-170.667v170.667z" />
+<glyph unicode="&#xe8e6;" glyph-name="lumx" d="M527.087 864.13l331.866-331.869-271.526-271.529-60.339 60.339 211.187 211.19-271.531 271.529 60.343 60.34zM677.935 532.261l-60.339-60.338-181.022 181.017-211.188-211.191-60.34 60.343 271.528 271.527 241.361-241.359zM436.574 592.601l60.339-60.34-211.187-211.19 271.531-271.526-60.343-60.339-331.867 331.866 271.528 271.53zM346.065 321.071l60.34 60.339 181.021-181.018 211.187 211.187 60.339-60.339-271.526-271.526-241.361 241.357z" />
+<glyph unicode="&#xe8e7;" glyph-name="magnet-on" d="M128 640v-256c0-212.096 171.904-384 384-384s384 171.904 384 384v256h-170.667v-256c0-117.803-95.531-213.333-213.333-213.333s-213.333 95.531-213.333 213.333v256zM725.333 725.334h170.667v128h-170.667zM128 725.334h170.667v128h-170.667zM554.667 874.667l-170.667-320h85.333v-234.667l170.667 320h-85.333v234.667z" />
+<glyph unicode="&#xe8e8;" glyph-name="magnet" d="M128 640v-256c0-212.096 171.904-384 384-384s384 171.904 384 384v256h-170.667v-256c0-117.803-95.531-213.333-213.333-213.333s-213.333 95.531-213.333 213.333v256zM725.333 725.334h170.667v128h-170.667zM128 725.334h170.667v128h-170.667z" />
+<glyph unicode="&#xe8e9;" glyph-name="magnify-minus" d="M384 853.334c164.949 0 298.667-133.718 298.667-298.667 0-67.085-22.118-129.007-59.46-178.867l34.466-34.466h24.994l256-256-85.333-85.333-256 256v24.994l-34.466 34.466c-49.86-37.342-111.782-59.46-178.867-59.46-164.949 0-298.667 133.717-298.667 298.667s133.718 298.667 298.667 298.667zM213.333 597.333v-85.333h341.333v85.333h-341.333z" />
+<glyph unicode="&#xe8ea;" glyph-name="magnify-plus" d="M384 853.334c164.949 0 298.667-133.718 298.667-298.667 0-67.085-22.118-129.007-59.46-178.867l34.466-34.466h24.994l256-256-85.333-85.333-256 256v24.994l-34.466 34.466c-49.86-37.342-111.782-59.46-178.867-59.46-164.949 0-298.667 133.717-298.667 298.667s133.718 298.667 298.667 298.667zM341.333 725.333v-128h-128v-85.333h128v-128h85.333v128h128v85.333h-128v128h-85.333z" />
+<glyph unicode="&#xe8eb;" glyph-name="magnify" d="M405.333 810.667c153.169 0 277.333-124.166 277.333-277.333 0-68.902-25.131-131.938-66.722-180.442l11.558-11.558h33.83l213.333-213.333-64-64-213.333 213.333v33.83l-11.558 11.558c-48.503-41.591-111.539-66.722-180.442-66.722-153.167 0-277.333 124.164-277.333 277.333 0 153.167 124.166 277.333 277.333 277.333zM405.333 725.333c-106.039 0-192-85.961-192-192s85.961-192 192-192c106.039 0 192 85.961 192 192s-85.961 192-192 192z" />
+<glyph unicode="&#xe8ec;" glyph-name="mail-ru" d="M659.405 430.422c-4.855 94.365-74.889 151.108-159.467 151.108h-3.187c-97.606 0-151.742-76.761-151.742-163.942 0-97.638 65.494-159.296 151.358-159.296 95.744 0 158.703 70.123 163.255 153.075zM497.229 665.937c65.225 0 126.532-28.815 171.563-73.948v-0.175c0 21.674 14.571 38.003 34.833 38.003l5.116 0.034c31.671 0 38.165-29.976 38.165-39.461l0.166-336.941c-2.236-22.046 22.758-33.425 36.621-19.298 54.106 55.603 118.822 285.828-33.63 419.224-142.093 124.372-332.742 103.869-434.132 33.984-107.785-74.343-176.755-238.856-109.756-393.377 73.028-168.576 282.017-218.825 406.224-168.704 62.899 25.395 91.947-59.635 26.624-87.411-98.705-42.065-373.417-37.828-501.742 184.478-86.703 150.11-82.086 414.23 147.869 551.066 175.914 104.669 407.837 75.678 547.686-70.378 146.189-152.684 137.668-438.588-4.928-549.807-64.606-50.475-160.559-1.323-159.945 72.273l-0.661 24.064c-44.992-44.642-104.849-70.686-170.074-70.686-128.865 0-242.251 113.399-242.251 242.214 0 130.157 113.386 244.846 242.251 244.846z" />
+<glyph unicode="&#xe8ed;" glyph-name="map-marker-circle" d="M511.974 85.415c-188.502 0-341.334 152.832-341.334 341.333 0 188.503 152.832 341.335 341.334 341.335s341.333-152.832 341.333-341.335c0-188.501-152.832-341.333-341.333-341.333zM511.974 853.416c-235.648 0-426.667-191.019-426.667-426.668 0-235.648 191.019-426.667 426.667-426.667s426.667 191.019 426.667 426.667c0 235.649-191.019 426.668-426.667 426.668zM511.974 405.415c-35.328 0-64 28.672-64 64 0 35.371 28.672 64.001 64 64.001 35.371 0 64-28.631 64-64.001 0-35.328-28.629-64-64-64zM511.974 631.55c-89.516 0-162.134-72.576-162.134-162.135 0-128 162.134-277.333 162.134-277.333s162.133 149.333 162.133 277.333c0 89.559-72.619 162.135-162.133 162.135z" />
+<glyph unicode="&#xe8ee;" glyph-name="map-marker-multiple" d="M597.333 448c58.923 0 106.667 47.744 106.667 106.667s-47.744 106.667-106.667 106.667c-58.88 0-106.667-47.745-106.667-106.667s47.787-106.667 106.667-106.667zM597.333 853.334c164.907 0 298.667-133.717 298.667-298.667 0-224-298.667-554.667-298.667-554.667s-298.667 330.667-298.667 554.667c0 164.95 133.76 298.667 298.667 298.667zM213.333 554.667c-0.667-191.001 216.666-455.001 256.269-504.085l-42.935-50.581c0 0-298.666 330.667-298.666 554.667 0 135.336 90.043 249.647 213.454 286.33-78.63-70.317-128.121-172.544-128.121-286.33z" />
+<glyph unicode="&#xe8ef;" glyph-name="map-marker-off" d="M698.598 251.742l-559.019 558.979-54.272-54.315 135.595-135.594c-4.821-21.247-7.595-43.307-7.595-66.047 0-224 298.667-554.667 298.667-554.667s71.168 78.976 144 185.643l143.019-142.976 54.315 54.31zM511.974 661.432c58.923 0 106.667-47.789 106.667-106.667 0-31.445-13.867-59.435-35.499-78.933l154.965-154.97c41.685 79.322 72.533 162.052 72.533 233.903 0 164.948-133.76 298.667-298.667 298.667-84.437 0-160.555-35.2-214.869-91.565l135.936-135.935c19.499 21.633 47.518 35.5 78.933 35.5z" />
+<glyph unicode="&#xe8f0;" glyph-name="map-marker-radius" d="M511.97 853.415c141.35 0 256-113.658 256-253.866 0-190.401-256-471.468-256-471.468s-256 281.067-256 471.468c0 140.208 114.651 253.866 256 253.866zM512 682.667c-47.13 0-85.333-38.205-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333zM853.333 128c0-94.255-152.819-170.667-341.333-170.667s-341.333 76.412-341.333 170.667c0 54.993 52.021 103.91 132.801 135.125l27.011-38.579c-46.032-19.285-74.479-45.862-74.479-75.213 0-58.91 114.615-106.667 256-106.667s256 47.757 256 106.667c0 29.35-28.446 55.927-74.479 75.217l27.012 38.575c80.777-31.215 132.8-80.132 132.8-135.125z" />
+<glyph unicode="&#xe8f1;" glyph-name="map-marker" d="M511.97 448.081c-58.88 0-106.667 47.744-106.667 106.665s47.787 106.667 106.667 106.667c58.923 0 106.667-47.745 106.667-106.667s-47.744-106.665-106.667-106.665zM511.97 853.413c-164.906 0-298.666-133.716-298.666-298.667 0-223.999 298.666-554.665 298.666-554.665s298.667 330.667 298.667 554.665c0 164.951-133.76 298.667-298.667 298.667z" />
+<glyph unicode="&#xe8f2;" glyph-name="map" d="M639.974 128.081l-256 89.899v507.436l256-89.898zM874.641 810.749c-2.347 0-4.565-0.256-6.656-1.066l-228.011-88.534-256 89.6-240.512-80.981c-8.96-2.987-15.488-10.71-15.488-20.48v-645.207c0-11.776 9.557-21.333 21.333-21.333 2.346 0 4.565 0.256 6.699 1.067l227.968 88.533 256-89.6 240.555 80.981c8.96 3.115 15.445 10.709 15.445 20.523v645.164c0 11.818-9.515 21.333-21.333 21.333z" />
+<glyph unicode="&#xe8f3;" glyph-name="margin" d="M624.384 649.491l-73.903 42.667 238.852 157.702-17.148-285.702-73.903 42.667-325.716-564.157h-98.534l350.351 606.824zM746.667 426.667c82.475 0 149.333-74.18 149.333-192s-66.859-192-149.333-192c-82.475 0-149.333 74.18-149.333 192s66.859 192 149.333 192zM746.667 341.334c-35.345 0-64-35.972-64-106.667s28.655-106.667 64-106.667c35.345 0 64 35.972 64 106.667s-28.655 106.667-64 106.667zM320 725.333c82.474 0 149.333-74.179 149.333-192s-66.859-192-149.333-192c-82.475 0-149.333 74.18-149.333 192s66.859 192 149.333 192zM320 640c-35.346 0-64-35.974-64-106.666 0-70.694 28.654-106.667 64-106.667s64 35.972 64 106.667c0 70.692-28.654 106.666-64 106.666z" />
+<glyph unicode="&#xe8f4;" glyph-name="markdown" d="M85.333 256v341.333h85.333l128-128 128 128h85.334v-341.333h-85.334v220.655l-128-128-128 128v-220.655h-85.333zM682.667 597.333h128v-170.666h106.667l-170.667-192-170.667 192h106.667v170.666z" />
+<glyph unicode="&#xe8f5;" glyph-name="marker-check" d="M426.641 256.081l-213.333 213.333 60.331 60.332 153.003-153.004 323.669 323.671 60.331-60.331zM810.641 896.083h-597.333c-47.147 0-84.907-38.187-84.907-85.333l-0.427-551.895c0-29.44 14.933-55.424 37.632-70.741l346.155-230.699 346.172 230.699c22.682 15.317 37.623 41.301 37.623 70.741l0.418 551.895c0 47.147-38.251 85.333-85.333 85.333z" />
+<glyph unicode="&#xe8f6;" glyph-name="martini" d="M319.974 640.083l-85.333 85.333h554.667l-85.333-85.333zM469.308 384.081v-256h-213.333v-85.333h512v85.333h-213.333v256l341.333 341.335v85.333h-768v-85.333l341.333-341.335z" />
+<glyph unicode="&#xe8f7;" glyph-name="material-ui" d="M341.333 229.837v52.979l256 147.802v199.482l-213.333-123.168-213.333 123.168v-246.1l-42.667-24.636-42.667 24.636v341.333l45.525 26.284 253.142-146.152 253.141 146.152 45.525-26.284v-343.983l-216.55-125.026 172.809-99.772 214.409 123.789v188.992l42.667 24.631 42.667-24.631v-238.259l-299.742-173.056-297.591 171.819zM938.667 522.667l-42.667-24.635-42.667 24.635v50.033l42.667 24.634 42.667-24.634v-50.033z" />
+<glyph unicode="&#xe8f8;" glyph-name="maxcdn" d="M878.771 653.276c-37.141 45.869-94.498 72.057-157.585 72.057h-595.148l71.181-152.51-95.129-444.823h155.931l95.191 444.823 133.204 0.059-95.093-444.882h155.927l95.1 444.882h78.835c17.058 0 30.929-5.538 38.946-15.517 8.188-9.98 10.684-24.665 7.078-41.296l-83.021-388.069h155.908l76.233 356.186c13.15 61.679-0.572 123.347-37.559 169.091z" />
+<glyph unicode="&#xe8f9;" glyph-name="medium" d="M938.667 635.734h-46.933c-12.8 0-42.667-12.8-42.667-25.6v-413.867c0-12.8 34.133-21.333 42.667-21.333h46.933v-89.6h-302.933v89.6h59.733v426.667h-12.8l-145.067-516.267h-115.2l-145.067 516.267h-8.533v-426.667h59.733v-89.6h-243.2v89.6h34.133c12.8 0 25.6 8.533 25.6 21.333v413.867c0 12.8-12.8 25.6-25.6 25.6h-34.133v89.6h315.733l102.4-366.933h4.267l102.4 366.933h328.533v-89.6z" />
+<glyph unicode="&#xe8fa;" glyph-name="memory" d="M725.308 213.415h-426.667v426.668h426.667zM895.974 469.415v85.335h-85.333v85.333c0 47.104-38.229 85.333-85.333 85.333h-85.333v85.333h-85.333v-85.333h-85.333v85.333h-85.333v-85.333h-85.333c-47.147 0-85.333-38.229-85.333-85.333v-85.333h-85.333v-85.335h85.333v-85.333h-85.333v-85.333h85.333v-85.333c0-47.147 38.187-85.333 85.333-85.333h85.333v-85.333h85.333v85.333h85.333v-85.333h85.333v85.333h85.333c47.104 0 85.333 38.187 85.333 85.333v85.333h85.333v85.333h-85.333v85.333zM554.641 384.081h-85.333v85.333h85.333zM639.974 554.749h-256v-256.001h256v256.001z" />
+<glyph unicode="&#xe8fb;" glyph-name="menu-down" d="M298.667 512l213.333-213.333 213.333 213.333h-426.667z" />
+<glyph unicode="&#xe8fc;" glyph-name="menu-left" d="M597.333 640l-213.333-213.333 213.333-213.333v426.667z" />
+<glyph unicode="&#xe8fd;" glyph-name="menu-right" d="M426.667 213.334l213.333 213.333-213.333 213.333v-426.667z" />
+<glyph unicode="&#xe8fe;" glyph-name="menu-up" d="M298.667 298.667l213.333 213.333 213.333-213.333h-426.667z" />
+<glyph unicode="&#xe8ff;" glyph-name="menu" d="M128 682.667h768v-85.333h-768v85.333zM128 469.334h768v-85.333h-768v85.333zM128 256h768v-85.333h-768v85.333z" />
+<glyph unicode="&#xe900;" glyph-name="message-alert" d="M554.641 512.083h-85.333v170.667h85.333zM554.641 341.415h-85.333v85.333h85.333zM853.308 853.416h-682.668c-47.104 0-84.864-38.186-84.864-85.333l-0.469-768.001 170.667 170.667h597.334c47.083 0 85.333 38.229 85.333 85.333v512.001c0 47.147-38.251 85.333-85.333 85.333z" />
+<glyph unicode="&#xe901;" glyph-name="message-draw" d="M767.974 341.415h-320l85.333 85.333h234.667zM255.974 341.415v105.6l293.462 293.506c8.363 8.32 21.845 8.32 30.208 0l75.392-75.435c8.363-8.32 8.363-21.845 0-30.165l-293.461-293.505zM853.308 853.416h-682.667c-47.104 0-84.906-38.187-84.906-85.333l-0.427-768.001 170.667 170.667h597.334c47.104 0 85.333 38.187 85.333 85.333v512.001c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe902;" glyph-name="message-image" d="M213.307 341.415l149.333 192.001 106.667-128.257 149.333 192.257 192-256.001zM853.308 853.416h-682.667c-47.104 0-84.864-38.186-84.864-85.333l-0.469-768.001 170.667 170.667h597.334c47.104 0 85.333 38.229 85.333 85.333v512.001c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe903;" glyph-name="message-processing" d="M725.308 469.415h-85.333v85.335h85.333zM554.641 469.415h-85.333v85.335h85.333zM383.974 469.415h-85.333v85.335h85.333zM853.308 853.416h-682.667c-47.104 0-84.906-38.186-84.906-85.333l-0.427-768.001 170.667 170.667h597.334c47.104 0 85.333 38.229 85.333 85.333v512.001c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe904;" glyph-name="message-reply" d="M938.202 768.084c0 47.104-37.803 85.333-84.907 85.333h-682.665c-47.104 0-85.333-38.229-85.333-85.333v-511.998c0-47.108 38.229-85.333 85.333-85.333h597.332l170.667-170.667-0.427 767.998z" />
+<glyph unicode="&#xe905;" glyph-name="message-text-outline" d="M853.308 853.416c47.083 0 85.333-38.187 85.333-85.333v-512.001c0-47.104-38.251-85.333-85.333-85.333h-597.334l-170.667-170.667 0.469 768.001c0 47.147 37.76 85.333 84.864 85.333h682.668zM170.667 768v-561.988l49.987 49.988h632.68v512h-682.667zM256 640h512v-85.333h-512v85.333zM256 469.334h384v-85.333h-384v85.333z" />
+<glyph unicode="&#xe906;" glyph-name="message-text" d="M853.308 853.416c47.083 0 85.333-38.187 85.333-85.333v-512.001c0-47.104-38.251-85.333-85.333-85.333h-597.334l-170.667-170.667 0.469 768.001c0 47.147 37.76 85.333 84.864 85.333h682.668zM213.321 725.375v-85.333h597.333v85.333h-597.333zM213.321 554.708v-85.332h341.333v85.332h-341.333zM213.321 384.043v-85.333h426.667v85.333h-426.667z" />
+<glyph unicode="&#xe907;" glyph-name="message-video" d="M767.974 341.415l-170.667 136.533v-136.533h-341.333v341.335h341.333v-136.533l170.667 136.533zM853.308 853.416h-682.667c-47.104 0-84.864-38.186-84.864-85.333l-0.469-768.001 170.667 170.667h597.333c47.104 0 85.333 38.229 85.333 85.333v512.001c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe908;" glyph-name="message" d="M853.308 853.416h-682.668c-47.104 0-84.864-38.186-84.864-85.333l-0.469-768.001 170.667 170.667h597.334c47.083 0 85.333 38.229 85.333 85.333v512.001c0 47.147-38.251 85.333-85.333 85.333z" />
+<glyph unicode="&#xe909;" glyph-name="microphone-dots" d="M810.641 512.084h-72.576c0-127.998-108.245-217.598-226.091-217.598s-226.134 89.6-226.134 217.598h-72.533c0-145.705 116.011-265.939 256.001-286.637v-140.028h85.333v140.028c139.904 20.698 256 140.932 256 286.637zM639.974-85.248h85.333v85.333h-85.333zM469.308-85.248h85.333v85.333h-85.333zM511.974 384.086c70.699 0 127.573 57.34 127.573 127.998l0.384 256c0 70.742-57.259 128-127.957 128-70.656 0-128.001-57.258-128.001-128v-256c0-70.658 57.345-127.998 128.001-127.998zM298.64-85.248h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe90a;" glyph-name="microphone-off" d="M810.671 469.355c0-50.773-14.336-98.347-38.613-139.819l-52.437 52.437c11.819 26.24 18.517 55.637 18.517 87.381h72.533zM639.296 462.302l-255.232 255.231v7.809c0 70.741 57.259 128 127.957 128 70.613 0 128-57.259 128-128v-256l-0.725-7.040zM182.314 810.667l713.686-713.685-54.315-54.315-178.603 178.645c-33.067-19.371-69.76-32.853-108.416-38.571v-140.075h-85.333v140.075c-139.904 20.651-256 140.928-256 286.592h72.576c0-128 108.245-217.557 226.090-217.557 34.56 0 68.181 7.893 98.603 22.016l-70.827 70.784-27.776-3.243c-70.656 0-127.574 57.344-127.574 128l-0.043 30.677-256.384 256.342 54.314 54.314z" />
+<glyph unicode="&#xe90b;" glyph-name="microphone-outline" d="M738.057 469.419c0-128-108.245-217.6-226.091-217.6s-226.133 89.6-226.133 217.6h-72.533c0-145.707 116.011-265.941 256-286.639v-140.028h85.333v140.028c139.904 20.698 256 140.932 256 286.639zM460.766 729.683c0 28.247 22.997 51.2 51.2 51.2s51.157-23.083 51.157-51.2l-0.341-264.53c0-28.25-22.827-51.2-50.816-51.2-28.203 0-51.2 22.95-51.2 51.2zM511.966 341.419c70.699 0 127.573 57.34 127.573 128l0.384 255.998c0 70.742-57.259 128-127.957 128-70.656 0-128-57.258-128-128v-255.998c0-70.66 57.344-128 128-128z" />
+<glyph unicode="&#xe90c;" glyph-name="microphone-settings" d="M810.667 512h-72.533c0-128-108.373-217.6-226.133-217.6s-226.133 89.6-226.133 217.6h-72.533c0-145.493 116.053-265.813 256-286.72v-139.947h85.333v139.947c139.947 20.907 256 141.227 256 286.72zM640-85.333h85.333v85.333h-85.333zM469.333-85.333h85.333v85.333h-85.333zM512 384c70.827 0 127.573 57.173 127.573 128l0.427 256c0 70.827-57.173 128-128 128s-128-57.173-128-128v-256c0-70.827 57.173-128 128-128zM298.667-85.333h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe90d;" glyph-name="microphone-variant-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-116.898 116.902c-5.722-89.084-79.787-159.569-170.313-159.569-94.257 0-170.667 76.412-170.667 170.667v42.667h-42.667l-35.807 349.116c-14.743 14.856-26.772 32.408-35.282 51.852l-142.244 142.244zM384 810.667c94.255 0 170.667-76.41 170.667-170.667h-178.232l-116.838 116.838c31.131 33.135 75.351 53.829 124.403 53.829zM505.139 519.783l-0.789-7.698-85.248 85.249h130.189c-7.663-29.769-23.155-56.395-44.151-77.551zM469.333 170.667h-42.667v-42.667c0-47.13 38.204-85.333 85.333-85.333s85.333 38.204 85.333 85.333v73.877l-113.19 113.19-14.81-144.401zM768 512h85.333l-42.667-42.667 42.667-42.667h-85.333c-47.13 0-85.333-38.204-85.333-85.333v-7.565l-72.533 72.533c25.557 62.033 86.613 105.698 157.867 105.698zM341.333 426.667c0-23.565 19.102-42.667 42.667-42.667 8.855 0 17.079 2.697 23.897 7.313l-59.249 59.251c-4.618-6.818-7.315-15.044-7.315-23.898z" />
+<glyph unicode="&#xe90e;" glyph-name="microphone-variant" d="M384 810.667c94.255 0 170.667-76.41 170.667-170.667h-341.333c0 94.257 76.41 170.667 170.667 170.667zM505.139 519.783l-35.806-349.116h-42.667v-42.667c0-47.13 38.204-85.333 85.333-85.333s85.333 38.204 85.333 85.333v213.333c0 94.255 76.412 170.667 170.667 170.667h85.333l-42.667-42.667 42.667-42.667h-85.333c-47.13 0-85.333-38.204-85.333-85.333v-213.333c0-94.255-76.412-170.667-170.667-170.667s-170.667 76.412-170.667 170.667v42.667h-42.667l-35.807 349.116c-20.996 21.156-36.488 47.782-44.15 77.551h330.58c-7.663-29.769-23.155-56.395-44.151-77.551zM384 469.334c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.564 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xe90f;" glyph-name="microphone" d="M511.996 853.322c70.694 0 128-57.306 128-127.998v-255.994c0-70.694-57.306-128-128-128s-128.001 57.306-128.001 128v255.994c0 70.693 57.306 127.998 128.001 127.998zM810.667 469.334c0-150.464-111.262-274.94-256-295.642v-131.025h-85.333v131.025c-144.738 20.702-256 145.178-256 295.642h85.333c0-117.82 95.512-213.333 213.333-213.333s213.333 95.514 213.333 213.333h85.333z" />
+<glyph unicode="&#xe910;" glyph-name="minus-box" d="M725.308 384.086h-426.668v85.333h426.668zM810.641 810.75h-597.335c-47.189 0-85.333-38.229-85.333-85.333v-597.331c0-47.108 38.144-85.333 85.333-85.333h597.335c47.061 0 85.333 38.225 85.333 85.333v597.331c0 47.104-38.272 85.333-85.333 85.333z" />
+<glyph unicode="&#xe911;" glyph-name="minus-circle-outline" d="M511.974 85.406c-188.204 0-341.334 153.135-341.334 341.333 0 188.205 153.13 341.335 341.334 341.335s341.333-153.13 341.333-341.335c0-188.198-153.131-341.333-341.333-341.333zM511.974 853.408c-235.649 0-426.667-191.018-426.667-426.669 0-235.644 191.018-426.667 426.667-426.667s426.667 191.023 426.667 426.667c0 235.651-191.019 426.669-426.667 426.669zM298.641 384.073h426.667v85.333h-426.667z" />
+<glyph unicode="&#xe912;" glyph-name="minus-circle" d="M725.308 384.086h-426.665v85.333h426.665zM511.974 853.417c-235.647 0-426.665-191.018-426.665-426.665 0-235.652 191.018-426.667 426.665-426.667s426.667 191.014 426.667 426.667c0 235.646-191.019 426.665-426.667 426.665z" />
+<glyph unicode="&#xe913;" glyph-name="minus-network" d="M682.667 469.355v85.333h-341.333v-85.333h341.333zM725.333 810.667c47.061 0 85.333-38.229 85.333-85.333v-426.667c0-47.104-38.272-85.333-85.333-85.333h-170.667v-85.333h42.667c23.565 0 42.667-19.102 42.667-42.667h298.667v-85.333h-298.667c0-23.565-19.102-42.667-42.667-42.667h-170.667c-23.564 0-42.666 19.102-42.666 42.667h-298.667v85.333h298.667c0 23.565 19.102 42.667 42.666 42.667h42.667v85.333h-170.667c-47.189 0-85.333 38.229-85.333 85.333v426.667c0 47.104 38.144 85.333 85.333 85.333h426.667z" />
+<glyph unicode="&#xe914;" glyph-name="minus" d="M810.641 384.086h-597.332l0.022 85.244 597.31 0.090v-85.333z" />
+<glyph unicode="&#xe915;" glyph-name="monitor-multiple" d="M938.628 213.329v426.666h-682.665v-426.666h682.665zM938.628 725.329c47.104 0 85.333-38.229 85.333-85.333v-426.666c0-47.147-38.229-85.333-85.333-85.333l-255.991 0.004v-85.333h85.333v-85.333h-341.335v85.333h85.335v85.333l-256.006-0.004c-47.148 0-85.333 38.187-85.333 85.333v426.666c0 47.104 38.185 85.333 85.333 85.333h682.665zM85.333 810.589v-511.999h-85.333v511.999c0 47.104 38.186 85.333 85.333 85.333h768v-85.333h-768z" />
+<glyph unicode="&#xe916;" glyph-name="monitor" d="M895.974 256.081h-768v512.001h768zM895.974 853.416h-768c-47.147 0-85.333-38.229-85.333-85.333v-512.001c0-47.147 38.186-85.333 85.333-85.333h298.667v-85.333h-85.333v-85.333h341.334v85.333h-85.333v85.333h298.667c47.104 0 85.333 38.187 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe917;" glyph-name="more" d="M810.654 362.748c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.328 0 64-28.672 64-64s-28.672-64-64-64zM597.321 362.748c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.328 0 64-28.672 64-64s-28.672-64-64-64zM383.987 362.748c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.328 0 64-28.672 64-64s-28.672-64-64-64zM938.654 810.749h-640c-29.44 0-52.651-14.933-68.010-37.632l-230.656-346.156 230.656-346.155c15.36-22.741 41.344-38.059 70.784-38.059h637.227c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe918;" glyph-name="mouse-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-51.699 51.699c-61.257-58.423-144.209-94.298-235.537-94.298-188.502 0-341.334 152.832-341.334 341.333v170.667h159.168l-85.333 85.335h-73.835c0 23.011 2.279 45.486 6.623 67.212l-91.93 91.93zM469.308 893.126v-338.389h-7.607l-214.836 214.834c54.141 66.591 132.921 112.368 222.443 123.555zM853.308 469.402v-170.667c0-40.555-7.074-79.462-20.058-115.55l-286.217 286.217h306.274zM554.641 893.126c168.32-21.035 298.667-164.352 298.667-338.39h-298.667v338.39z" />
+<glyph unicode="&#xe919;" glyph-name="mouse-variant-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-61.325 61.325c-37.252-62.289-105.365-103.991-183.219-103.991-117.82 0-213.334 95.514-213.334 213.333v46.933c-97.376 19.767-170.666 105.856-170.666 209.067v128h73.879l-159.212 159.212zM597.333 640h-170.667v209.065c97.374-19.766 170.667-105.856 170.667-209.065zM341.333 849.065v-173.963l-111.918 111.918c29.528 31.038 68.308 53.193 111.918 62.045zM597.333 426.667l-0.128-7.437-135.437 135.436h135.565v-127.999zM426.667 217.6v-46.933c0-70.694 57.306-128 128-128 54.583 0 101.193 34.167 119.595 82.283l-145.246 145.25c-28.13-26.082-63.305-44.672-102.349-52.599zM682.667 384c0 94.255 76.412 170.666 170.667 170.666h85.333l-42.667-42.666 42.667-42.667h-85.333c-47.13 0-85.333-38.204-85.333-85.333v-135.565l-85.333 85.333v50.231z" />
+<glyph unicode="&#xe91a;" glyph-name="mouse-variant" d="M597.333 640h-170.667v209.066c97.374-19.766 170.667-105.857 170.667-209.066zM170.667 640c0 103.209 73.291 189.299 170.666 209.065v-209.065h-170.666zM597.333 426.667c0-103.211-73.293-189.299-170.667-209.067v-46.933c0-70.694 57.306-128 128-128 70.69 0 128 57.306 128 128v213.333c0 94.255 76.412 170.666 170.667 170.666h85.333l-42.667-42.666 42.667-42.667h-85.333c-47.13 0-85.333-38.204-85.333-85.333v0-213.333c0-117.82-95.514-213.333-213.333-213.333s-213.334 95.514-213.334 213.333v46.933c-97.376 19.767-170.666 105.856-170.666 209.067v128h426.667v-128z" />
+<glyph unicode="&#xe91b;" glyph-name="mouse" d="M469.308 893.126c-168.321-21.034-298.667-164.352-298.667-338.389h298.667zM170.641 298.735c0-188.501 152.832-341.333 341.334-341.333s341.333 152.832 341.333 341.333v170.667h-682.667zM554.641 893.126v-338.389h298.667c0 174.038-130.347 317.356-298.667 338.389z" />
+<glyph unicode="&#xe91c;" glyph-name="movie" d="M768 768l85.333-170.667h-128l-85.333 170.667h-85.333l85.333-170.667h-128l-85.333 170.667h-85.333l85.333-170.667h-128l-85.333 170.667h-42.667c-46.933 0-84.907-38.4-84.907-85.333l-0.427-512c0-46.933 38.4-85.333 85.333-85.333h682.667c46.933 0 85.333 38.4 85.333 85.333v597.333h-170.667z" />
+<glyph unicode="&#xe91d;" glyph-name="multiplication-box" d="M810.641 810.747c47.061 0 85.333-38.229 85.333-85.333v-597.332c0-47.104-38.272-85.333-85.333-85.333h-597.333c-47.189 0-85.333 38.229-85.333 85.333v597.332c0 47.104 38.144 85.333 85.333 85.333h597.333zM469.333 213.334h85.333v139.499l120.725-69.7 42.667 73.899-120.751 69.717 120.751 69.713-42.667 73.903-120.725-69.7v139.336h-85.333v-139.366l-120.778 69.731-42.667-73.9 120.753-69.717-120.753-69.717 42.667-73.903 120.777 69.734v-139.529z" />
+<glyph unicode="&#xe91e;" glyph-name="multiplication" d="M469.333 810.667h85.333l-0.324-310.144 268.676 154.748 42.667-73.901-268.352-154.563 268.753-155.537-42.667-73.899-269.231 155.81-0.32-310.515h-85.333l0.32 310.144-268.675-154.748-42.667 73.899 269.153 155.025-267.954 155.076 42.667 73.901 267.63-154.89 0.324 309.594z" />
+<glyph unicode="&#xe91f;" glyph-name="music-box-outline" d="M682.667 554.667h-128v-234.667c0-58.88-47.787-106.667-106.667-106.667s-106.667 47.787-106.667 106.667c0 58.88 47.787 106.667 106.667 106.667 24.32 0 46.080-8.107 64-21.76v235.093h170.667v-85.333zM810.667 810.666c46.933 0 85.333-38.4 85.333-85.333v-597.332c0-46.933-38.4-85.333-85.333-85.333h-597.334c-46.933 0-85.333 38.4-85.333 85.333v597.332c0 46.933 38.4 85.333 85.333 85.333h597.334zM213.333 725.334v-597.333h597.333v597.333h-597.333z" />
+<glyph unicode="&#xe920;" glyph-name="music-box" d="M682.667 554.667h-128v-234.667c0-58.88-47.787-106.667-106.667-106.667s-106.667 47.787-106.667 106.667c0 58.88 47.787 106.667 106.667 106.667 24.32 0 46.080-8.107 64-21.76v235.093h170.667zM810.667 810.666h-597.334c-46.933 0-85.333-38.4-85.333-85.333v-597.332c0-46.933 38.4-85.333 85.333-85.333h597.334c46.933 0 85.333 38.4 85.333 85.333v597.332c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe921;" glyph-name="music-circle" d="M682.667 554.667v85.333h-170.667v-235.093c-17.92 13.653-39.68 21.76-64 21.76-58.88 0-106.667-47.787-106.667-106.667s47.787-106.667 106.667-106.667c58.88 0 106.667 47.787 106.667 106.667v234.667h128zM512 853.334c235.639 0 426.667-191.025 426.667-426.667 0-235.644-191.027-426.667-426.667-426.667-235.642 0-426.667 191.023-426.667 426.667 0 235.642 191.025 426.667 426.667 426.667z" />
+<glyph unicode="&#xe922;" glyph-name="music-note-eighth" d="M85.335 256h169.556c57.185 97.378 178.56 170.667 292.091 170.667 35.951 0 67.341-7.351 93.018-20.489v447.155h85.333c0 0 0-85.333 85.333-170.667 128-128 64-256 64-256s21.333 85.333-64 170.667c-42.667 42.667-85.333 64-85.333 64v-405.333h213.333v-85.333h-254.891c-57.182-97.374-178.56-170.667-292.088-170.667-113.53 0-181.554 73.293-167.855 170.667h-138.498v85.333z" />
+<glyph unicode="&#xe923;" glyph-name="music-note-half" d="M85.334 256h169.557c57.184 97.374 178.56 170.667 292.092 170.667 35.951 0 67.341-7.351 93.018-20.489v447.155h85.333v-597.333h213.333v-85.333h-254.891c-57.186-97.374-178.56-170.667-292.089-170.667s-181.554 73.293-167.855 170.667h-138.498v85.333zM500.39 298.667c-58.91 0-120.571-38.204-137.724-85.333s16.698-85.333 75.606-85.333c58.914 0 120.576 38.204 137.728 85.333s-16.7 85.333-75.61 85.333z" />
+<glyph unicode="&#xe924;" glyph-name="music-note-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-244.544 244.544v-73.877c0-94.255-85.961-170.667-192-170.667s-192 76.412-192 170.667c0 94.255 85.961 170.667 192 170.667 22.441 0 43.982-3.422 64-9.711v40.922l-341.333 341.334zM512 853.333c18.551 0 35.725-5.92 49.724-15.976 111.424-80.008 222.852-160.016 253.675-253.353s-4.732-200.004-68.732-306.671c106.667 277.333-192 341.333-192 341.333v-156.898l-128 128v178.232c0 47.128 38.204 85.333 85.333 85.333z" />
+<glyph unicode="&#xe925;" glyph-name="music-note-quarter" d="M85.335 256h169.556c57.185 97.378 178.56 170.667 292.091 170.667 35.951 0 67.341-7.351 93.018-20.489v447.155h85.333v-597.333h213.333v-85.333h-254.891c-57.182-97.374-178.56-170.667-292.089-170.667s-181.553 73.293-167.855 170.667h-138.498v85.333z" />
+<glyph unicode="&#xe926;" glyph-name="music-note-sixteenth" d="M85.335 256h169.556c57.185 97.378 178.56 170.667 292.091 170.667 35.951 0 67.341-7.351 93.018-20.489v447.155h85.333c0 0 0-85.333 85.333-170.667 128-128 64-256 64-256s21.333 85.333-64 170.667c-36.348 36.349-72.7 57.215-82.667 62.597 5.803-31.026 24.213-89.478 82.667-147.93 128-128 64-256 64-256h64v-85.333h-254.891c-57.182-97.374-178.56-170.667-292.089-170.667s-181.553 73.293-167.855 170.667h-138.498v85.333zM725.333 256h149.333c0 0 21.333 85.333-64 170.667-42.667 42.667-85.333 64-85.333 64v-234.667z" />
+<glyph unicode="&#xe927;" glyph-name="music-note-whole" d="M543.057 512c-58.91 0-120.57-38.204-137.724-85.333s16.698-85.333 75.606-85.333c58.914 0 120.576 38.204 137.728 85.333s-16.7 85.333-75.61 85.333zM85.333 469.334h212.224c57.184 97.376 178.56 170.667 292.092 170.667 113.527 0 181.551-73.291 167.855-170.667h181.163v-85.333h-212.224c-57.186-97.374-178.56-170.667-292.087-170.667-113.532 0-181.556 73.293-167.857 170.667h-181.165v85.333z" />
+<glyph unicode="&#xe928;" glyph-name="music-note" d="M512 853.334c18.551 0 35.725-5.921 49.724-15.976 111.424-80.008 222.852-160.016 253.675-253.353s-4.732-200.004-68.732-306.671c106.667 277.333-192 341.333-192 341.333v-448c0-94.255-85.961-170.667-192-170.667s-192 76.412-192 170.667c0 94.255 85.961 170.667 192 170.667 22.441 0 43.982-3.422 64-9.711v436.378c0 47.128 38.204 85.333 85.333 85.333z" />
+<glyph unicode="&#xe929;" glyph-name="nature-people" d="M192 469.334c35.413 0 64 28.587 64 64s-28.587 64-64 64c-35.413 0-64-28.587-64-64s28.587-64 64-64zM945.92 547.414c0 165.12-133.547 298.667-298.667 298.667s-298.667-133.547-298.667-298.667c0-148.053 107.52-270.507 248.747-293.973v-168.107h-341.333v128h42.667v170.667c0 23.467-19.2 42.667-42.667 42.667h-128c-23.467 0-42.667-19.2-42.667-42.667v-170.667h42.667v-213.333h682.667v85.333h-128v165.547c148.053 17.493 263.253 143.36 263.253 296.533z" />
+<glyph unicode="&#xe92a;" glyph-name="nature" d="M554.667 250.88c148.053 17.493 263.253 143.36 263.253 296.533 0 165.12-133.547 298.667-298.667 298.667s-298.667-133.547-298.667-298.667c0-148.053 107.52-270.507 248.747-293.973v-168.107h-256v-85.333h597.333v85.333h-256v165.547z" />
+<glyph unicode="&#xe92b;" glyph-name="navigation" d="M511.974 853.416l-320-780.503 30.165-30.165 289.835 128 289.835-128 30.165 30.165-320 780.503z" />
+<glyph unicode="&#xe92c;" glyph-name="needle" d="M475.58 290.902l-60.338 60.339 60.338 60.339 60.343-60.339 60.339 60.339-60.339 60.343 60.339 60.338 60.339-60.338 60.339 60.338-120.678 120.68-301.7-301.7 120.68-120.678 60.338 60.339zM131.216 127.557l133.176 133.175-90.51 90.509 422.38 422.38 90.509-90.51 60.339 60.34-60.339 60.34 60.339 60.34 181.018-181.019-60.339-60.34-60.339 60.34-60.339-60.34 90.509-90.51-422.377-422.378-90.51 90.509-193.516-193.515v120.678z" />
+<glyph unicode="&#xe92d;" glyph-name="nest-protect" d="M511.974 170.748c141.397 0 256 114.603 256 256 0 141.399-114.603 256.001-256 256.001-141.44 0-256-114.602-256-256.001 0-141.397 114.56-256 256-256zM810.641 810.749c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.229-85.333-85.333-85.333h-597.334c-47.148 0-85.333 38.229-85.333 85.333v597.335c0 47.104 38.186 85.333 85.333 85.333h597.334zM341.307 426.748c0 94.21 76.458 170.668 170.667 170.668s170.667-76.458 170.667-170.668c0-94.208-76.459-170.667-170.667-170.667s-170.667 76.459-170.667 170.667z" />
+<glyph unicode="&#xe92e;" glyph-name="nest-thermostat" d="M723.162 215.561l-90.496 90.496c30.891 30.891 49.963 73.557 49.963 120.704 0 31.573-9.131 60.8-24.149 86.188l92.459 92.416c37.333-49.835 59.691-111.532 59.691-178.604 0-82.475-33.408-157.141-87.467-211.2zM511.962 725.429c67.115 0 128.768-22.4 178.645-59.733l-92.459-92.416c-25.344 14.976-54.571 24.15-86.187 24.15-94.251 0-170.668-76.417-170.668-170.668 0-47.147 19.115-89.813 50.005-120.704l-90.496-90.496c-54.059 54.059-87.509 128.725-87.509 211.2 0 164.951 133.718 298.668 298.668 298.668zM511.962 853.429c-235.648 0-426.668-191.020-426.668-426.668s191.020-426.667 426.668-426.667c235.648 0 426.667 191.019 426.667 426.667s-191.019 426.668-426.667 426.668z" />
+<glyph unicode="&#xe92f;" glyph-name="newspaper" d="M853.333 469.334h-682.667v128h682.667zM853.333 384h-298.667v42.667h298.667zM853.333 298.667h-298.667v42.667h298.667zM853.333 213.334h-298.667v42.667h298.667zM853.333 128h-298.667v42.667h298.667zM512 128h-341.333v298.667h341.333zM867.541 739.54l-71.083 71.127-71.125-71.127-71.125 71.127-71.083-71.127-71.125 71.127-71.125-71.127-71.082 71.127-71.126-71.127-71.126 71.127-71.082-71.127-71.126 71.127v-682.667c0-47.104 38.187-85.333 85.333-85.333h682.667c47.104 0 84.907 38.229 84.907 85.333l0.427 682.667-71.125-71.127z" />
+<glyph unicode="&#xe930;" glyph-name="nfc-tap" d="M512 512c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333zM170.667 768h298.667c47.13 0 85.333-38.205 85.333-85.333v-128h-85.333v128h-298.667v-213.333h85.333v85.333l128-128-128-128v85.333h-85.333c-47.128 0-85.333 38.204-85.333 85.333v213.333c0 47.128 38.205 85.333 85.333 85.333zM853.333 85.334h-298.667c-47.13 0-85.333 38.204-85.333 85.333v128h85.333v-128h298.667v213.333h-85.333v-85.333l-128 128 128 128v-85.333h85.333c47.13 0 85.333-38.204 85.333-85.333v-213.333c0-47.13-38.204-85.333-85.333-85.333z" />
+<glyph unicode="&#xe931;" glyph-name="nfc-variant" d="M768.188 682.75h-213.333c-47.147 0-85.333-38.229-85.333-85.333v-97.154c-25.387-14.801-42.667-42.022-42.667-73.51 0-47.108 38.187-85.333 85.333-85.333 47.104 0 85.333 38.225 85.333 85.333 0 31.488-17.28 58.709-42.667 73.51v97.154h128v-341.331h-341.333v341.331h85.333v85.333h-170.666v-511.998h511.999zM853.521 85.419h-682.666v682.665h682.666zM853.521 853.417h-682.666c-47.148 0-85.334-38.229-85.334-85.333v-682.665c0-47.108 38.186-85.333 85.334-85.333h682.666c47.104 0 85.333 38.225 85.333 85.333v682.665c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe932;" glyph-name="nfc" d="M451.853 611.762c0 0 25.438 11.561 41.621-6.937 16.188-18.499 57.809-90.181 57.809-161.863 0-71.68-18.496-147.989-36.996-173.423-18.5-25.438-36.996-25.438-50.871-16.188s-228.92 173.423-240.482 178.048c-11.561 4.625-16.186-6.938-4.625-69.367 11.562-62.434-6.937-80.934-23.123-83.247-16.186-2.308-64.745 11.563-67.057 141.056-2.312 129.488 32.372 150.299 48.559 150.299 30.414 0 261.35-208.484 277.478-205.796 13.875 2.313 20.813 90.18-6.938 159.549-30.043 75.112 4.625 87.868 4.625 87.869zM823.561 741.251c77.67-154.242 72.93-300.086 72.311-315.476 0.619-13.41 5.359-159.45-72.311-313.694 0 0-20.233-23.121-50.291-9.25-30.063 13.875-19.657 50.871-19.657 50.871s62.938 121.515 61.278 270.758l0.030 2.313c1.63 149.269-61.308 272.856-61.308 272.856s-10.406 36.997 19.657 50.871c30.059 13.874 50.291-9.25 50.291-9.25zM672.917 671.881c63.351-115.616 59.059-230.716 58.441-246.106 0.619-13.41 4.911-123.866-58.355-248.841 0 0-20.233-23.121-50.291-9.25-30.063 13.875-19.657 50.871-19.657 50.871s40.721 57.92 47.317 205.905l0.030 2.313c-4.314 147.991-47.433 203.486-47.433 203.486s-10.402 36.998 19.657 50.871c30.059 13.874 50.291-9.25 50.291-9.25z" />
+<glyph unicode="&#xe933;" glyph-name="no" d="M512 853.334c235.639 0 426.667-191.025 426.667-426.667 0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667 0 235.641 191.025 426.667 426.667 426.667zM512 768c-78.878 0-151.508-26.755-209.307-71.686l478.956-478.953c44.928 57.796 71.684 130.428 71.684 209.306 0 188.513-152.819 341.333-341.333 341.333zM170.667 426.667c0-188.514 152.82-341.333 341.333-341.333 78.878 0 151.509 26.756 209.306 71.684l-478.953 478.956c-44.931-57.8-71.686-130.429-71.686-209.307z" />
+<glyph unicode="&#xe934;" glyph-name="not-equal" d="M896 512h-512v85.333h512v-85.333zM896 256h-512v85.333h512v-85.333zM170.667 725.334h85.333v-469.333h-85.333v469.333zM256 170.667v-85.333h-85.333v85.333h85.333z" />
+<glyph unicode="&#xe935;" glyph-name="note-outline" d="M597.295 512.072h234.667l-234.667 234.667v-234.667zM213.297 810.739h426.665l256-256v-426.666c0-47.104-38.229-85.333-85.333-85.333h-597.759c-47.104 0-84.906 38.229-84.906 85.333l0.427 597.332c0 47.104 37.759 85.333 84.906 85.333zM213.333 725.334v-597.333h597.333v298.667h-298.667v298.667h-298.667z" />
+<glyph unicode="&#xe936;" glyph-name="note-text" d="M597.295 512.072h234.667l-234.667 234.667v-234.667zM213.297 810.739h426.665l256-256v-426.666c0-47.104-38.229-85.333-85.333-85.333h-597.759c-47.104 0-84.906 38.229-84.906 85.333l0.427 597.332c0 47.104 37.759 85.333 84.906 85.333zM213.333 426.667v-85.333h597.333v85.333h-597.333zM213.333 256v-85.333h384v85.333h-384z" />
+<glyph unicode="&#xe937;" glyph-name="note" d="M597.295 512.072v234.667l234.667-234.667zM213.297 810.739c-47.148 0-84.906-38.229-84.906-85.333l-0.427-597.333c0-47.104 37.802-85.333 84.906-85.333h597.758c47.104 0 85.333 38.229 85.333 85.333v426.666l-256 256h-426.665z" />
+<glyph unicode="&#xe938;" glyph-name="numeric-0-box-multiple-outline" d="M896 213.334v597.333h-597.333v-597.333h597.333zM896 896c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.934 38.4 85.333 85.333 85.333h597.333zM128 725.333v-682.666h682.667v-85.333h-682.667c-46.933 0-85.333 38.4-85.333 85.333v682.666h85.333zM554.667 725.334h85.333c47.13 0 85.333-38.205 85.333-85.333v-256c0-47.13-38.204-85.333-85.333-85.333h-85.333c-47.13 0-85.333 38.204-85.333 85.333v256c0 47.128 38.204 85.333 85.333 85.333zM554.667 640v-256h85.333v256h-85.333z" />
+<glyph unicode="&#xe939;" glyph-name="numeric-0-box-outline" d="M810.667 128v597.334h-597.333v-597.334h597.333zM810.667 810.667c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333zM469.333 640.001h85.333c47.13 0 85.333-38.205 85.333-85.334v-256c0-47.13-38.204-85.333-85.333-85.333h-85.333c-47.129 0-85.333 38.204-85.333 85.333v256c0 47.128 38.205 85.334 85.333 85.334zM469.333 554.667v-256h85.333v256h-85.333z" />
+<glyph unicode="&#xe93a;" glyph-name="numeric-0-box" d="M810.667 810.667c46.933 0 85.333-38.4 85.333-85.333v-597.334c0-46.933-38.4-85.333-85.333-85.333h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.334c0 46.933 38.4 85.333 85.333 85.333h597.333zM469.333 640c-47.129 0-85.334-38.205-85.334-85.333v-256c0-47.13 38.205-85.333 85.334-85.333h85.333c47.13 0 85.333 38.204 85.333 85.333v256c0 47.128-38.204 85.333-85.333 85.333h-85.333zM469.333 554.667h85.333v-256h-85.333v256z" />
+<glyph unicode="&#xe93b;" glyph-name="numeric-1-box-multiple-outline" d="M896 213.334h-597.333v597.333h597.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM597.333 298.667h85.333v426.667h-170.667v-85.333h85.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667z" />
+<glyph unicode="&#xe93c;" glyph-name="numeric-1-box-outline" d="M810.667 128h-597.333v597.333h597.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM512 213.334h85.333v426.667h-170.667v-85.333h85.333z" />
+<glyph unicode="&#xe93d;" glyph-name="numeric-1-box" d="M597.333 213.334h-85.333v341.333h-85.333v85.333h170.667zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe93e;" glyph-name="numeric-2-box-multiple-outline" d="M725.333 384h-170.667v85.333h85.333c46.933 0 85.333 37.973 85.333 85.333v85.333c0 47.36-38.4 85.333-85.333 85.333h-170.667v-85.333h170.667v-85.333h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-170.667h256zM896 213.334h-597.333v597.333h597.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667z" />
+<glyph unicode="&#xe93f;" glyph-name="numeric-2-box-outline" d="M640 298.667h-170.667v85.333h85.333c46.933 0 85.333 37.973 85.333 85.333v85.333c0 47.36-38.4 85.334-85.333 85.334h-170.667v-85.334h170.667v-85.333h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-170.667h256zM810.667 128h-597.333v597.333h597.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe940;" glyph-name="numeric-2-box" d="M640 469.334c0-47.36-38.4-85.333-85.333-85.333h-85.333v-85.333h170.667v-85.333h-256v170.667c0 47.36 38.4 85.333 85.333 85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe941;" glyph-name="numeric-3-box-multiple-outline" d="M725.333 384v64c0 35.413-28.587 64-64 64 35.413 0 64 28.587 64 64v64c0 47.36-38.4 85.333-85.333 85.333h-170.667v-85.333h170.667v-85.333h-85.333v-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667zM896 213.334h-597.333v597.333h597.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe942;" glyph-name="numeric-3-box-outline" d="M640 298.667v64c0 35.413-28.582 64-64 64 35.418 0 64 28.587 64 64v64c0 47.36-38.4 85.333-85.333 85.333h-170.667v-85.333h170.667v-85.333h-85.333v-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333zM810.667 128h-597.333v597.333h597.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe943;" glyph-name="numeric-3-box" d="M640.427 490.667c0-35.413-28.587-64-64-64 35.413 0 64-28.587 64-64v-64c0-47.36-38.4-85.333-85.333-85.333h-170.667v85.333h170.667v85.333h-85.333v85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333zM811.093 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe944;" glyph-name="numeric-4-box-multiple-outline" d="M896 213.334h-597.333v597.333h597.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM640 298.667h85.333v426.667h-85.333v-170.667h-85.333v170.667h-85.333v-256h170.667zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667z" />
+<glyph unicode="&#xe945;" glyph-name="numeric-4-box-outline" d="M810.667 128h-597.333v597.334h597.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM554.667 213.334h85.333v426.667h-85.333v-170.667h-85.333v170.667h-85.333v-256h170.667z" />
+<glyph unicode="&#xe946;" glyph-name="numeric-4-box" d="M640 213.334h-85.333v170.667h-170.667v256h85.333v-170.667h85.333v170.667h85.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe947;" glyph-name="numeric-5-box-multiple-outline" d="M725.333 384v85.333c0 47.36-38.4 85.333-85.333 85.333h-85.333v85.333h170.667v85.333h-256v-256h170.667v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667zM896 213.334h-597.333v597.333h597.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe948;" glyph-name="numeric-5-box-outline" d="M640 298.667v85.333c0 47.36-38.4 85.333-85.333 85.333h-85.333v85.333h170.667v85.334h-256v-256h170.667v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333zM810.667 128h-597.333v597.333h597.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe949;" glyph-name="numeric-5-box" d="M640 554.667h-170.667v-85.333h85.333c46.933 0 85.333-37.973 85.333-85.333v-85.333c0-47.36-38.4-85.333-85.333-85.333h-170.667v85.333h170.667v85.333h-170.667v256h256zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe94a;" glyph-name="numeric-6-box-multiple-outline" d="M554.667 469.334h85.333v-85.333h-85.333zM554.667 298.667h85.333c46.933 0 85.333 37.973 85.333 85.333v85.333c0 47.36-38.4 85.333-85.333 85.333h-85.333v85.333h170.667v85.333h-170.667c-46.933 0-85.333-37.973-85.333-85.333v-256c0-47.36 38.4-85.333 85.333-85.333zM896 213.334h-597.333v597.333h597.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667z" />
+<glyph unicode="&#xe94b;" glyph-name="numeric-6-box-outline" d="M469.333 384h85.333v-85.333h-85.333zM469.333 213.334h85.333c46.933 0 85.333 37.973 85.333 85.333v85.333c0 47.36-38.4 85.333-85.333 85.333h-85.333v85.333h170.667v85.333h-170.667c-46.933 0-85.333-37.973-85.333-85.333v-256c0-47.36 38.4-85.333 85.333-85.333zM810.667 128h-597.333v597.333h597.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe94c;" glyph-name="numeric-6-box" d="M640 554.667h-170.667v-85.333h85.333c46.933 0 85.333-37.973 85.333-85.333v-85.333c0-47.36-38.4-85.333-85.333-85.333h-85.333c-46.933 0-85.333 37.973-85.333 85.333v256c0 47.36 38.4 85.333 85.333 85.333h170.667zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM469.333 298.667h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe94d;" glyph-name="numeric-7-box-multiple-outline" d="M554.667 298.667l170.667 341.333v85.333h-256v-85.333h170.667l-170.667-341.333zM896 213.334h-597.333v597.333h597.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667z" />
+<glyph unicode="&#xe94e;" glyph-name="numeric-7-box-outline" d="M469.333 213.334l170.667 341.333v85.334h-256v-85.334h170.666l-170.666-341.333zM810.667 128h-597.333v597.333h597.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe94f;" glyph-name="numeric-7-box" d="M810.667 810.667c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333zM469.333 213.334l170.667 341.333v85.334h-256v-85.334h170.666l-170.666-341.333h85.333z" />
+<glyph unicode="&#xe950;" glyph-name="numeric-8-box-multiple-outline" d="M554.667 469.334h85.333v-85.333h-85.333zM554.667 640h85.333v-85.333h-85.333zM554.667 298.667h85.333c46.933 0 85.333 37.973 85.333 85.333v64c0 35.413-28.587 64-64 64 35.413 0 64 28.587 64 64v64c0 47.36-38.4 85.333-85.333 85.333h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-64c0-35.413 28.587-64 64-64-35.413 0-64-28.587-64-64v-64c0-47.36 38.4-85.333 85.333-85.333zM896 213.334h-597.333v597.333h597.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667z" />
+<glyph unicode="&#xe951;" glyph-name="numeric-8-box-outline" d="M469.333 384h85.333v-85.333h-85.333zM469.333 554.667h85.333v-85.333h-85.333zM469.333 213.334h85.333c46.933 0 85.333 37.973 85.333 85.333v64c0 35.413-28.582 64-64 64 35.418 0 64 28.587 64 64v64c0 47.36-38.4 85.333-85.333 85.333h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-64c0-35.413 28.587-64 64-64-35.413 0-64-28.587-64-64v-64c0-47.36 38.4-85.333 85.333-85.333zM810.667 128h-597.333v597.333h597.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe952;" glyph-name="numeric-8-box" d="M810.667 810.667c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333zM469.333 213.334h85.333c46.933 0 85.333 37.973 85.333 85.333v64c0 35.413-28.582 64-64 64 35.418 0 64 28.587 64 64v64c0 47.36-38.4 85.333-85.333 85.333h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-64c0-35.413 28.587-64 64-64-35.413 0-64-28.587-64-64v-64c0-47.36 38.4-85.333 85.333-85.333zM469.333 384h85.333v-85.333h-85.333v85.333zM469.333 554.667h85.333v-85.333h-85.333v85.333z" />
+<glyph unicode="&#xe953;" glyph-name="numeric-9-box-multiple-outline" d="M640 554.667h-85.333v85.333h85.333zM640 725.334h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-85.333c0-47.36 38.4-85.333 85.333-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333v256c0 47.36-38.4 85.333-85.333 85.333zM896 213.334h-597.333v597.333h597.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667z" />
+<glyph unicode="&#xe954;" glyph-name="numeric-9-box-outline" d="M554.667 469.334h-85.333v85.333h85.333zM554.667 640h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-85.333c0-47.36 38.4-85.333 85.333-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333v256c0 47.36-38.4 85.333-85.333 85.333zM810.667 128h-597.333v597.333h597.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe955;" glyph-name="numeric-9-box" d="M810.667 810.667c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333zM554.667 469.334h-85.333v85.333h85.333v-85.333zM554.667 640h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-85.333c0-47.36 38.4-85.333 85.333-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333v256c0 47.36-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xe956;" glyph-name="numeric-9-plus-box-multiple-outline" d="M896 554.667h-85.333v85.333h-85.333v-85.333h-85.333v-85.333h85.333v-85.333h85.333v85.333h85.333v-256h-597.333v597.333h597.333zM896 896h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM469.333 554.667v42.667h42.667v-42.667zM597.333 426.667v170.667c0 47.36-38.4 85.333-85.333 85.333h-42.667c-46.933 0-85.333-37.973-85.333-85.333v-42.667c0-47.36 38.4-85.333 85.333-85.333h42.667v-42.667h-128v-85.333h128c46.933 0 85.333 37.973 85.333 85.333zM128 725.334h-85.333v-682.667c0-46.933 38.4-85.333 85.333-85.333h682.667v85.333h-682.667v682.667z" />
+<glyph unicode="&#xe957;" glyph-name="numeric-9-plus-box-outline" d="M810.667 469.334h-85.333v85.333h-85.333v-85.333h-85.333v-85.333h85.333v-85.333h85.333v85.333h85.333v-256h-597.333v597.334h597.333zM810.667 810.667h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333zM384 469.334v42.667h42.667v-42.667zM512 341.334v170.667c0 47.36-38.4 85.333-85.333 85.333h-42.667c-46.933 0-85.333-37.973-85.333-85.333v-42.667c0-47.36 38.4-85.333 85.333-85.333h42.667v-42.667h-128v-85.333h128c46.933 0 85.333 37.973 85.333 85.333z" />
+<glyph unicode="&#xe958;" glyph-name="numeric-9-plus-box" d="M896 725.334v-597.333c0-46.933-38.4-85.333-85.333-85.333h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333zM810.667 469.334h-85.333v85.333h-85.333v-85.333h-85.333v-85.333h85.333v-85.333h85.333v85.333h85.333v85.333zM426.667 640h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-85.333c0-47.36 38.4-85.333 85.333-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333v256c0 47.36-38.4 85.333-85.333 85.333zM341.333 554.667h85.333v-85.333h-85.333v85.333z" />
+<glyph unicode="&#xe959;" glyph-name="numeric" d="M170.667 213.334v341.333h-85.333v85.333h170.667v-426.667h-85.333zM938.667 298.667c0-47.36-38.4-85.333-85.333-85.333h-170.667v85.333h170.667v85.333h-85.333v85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333v-64c0-35.413-28.582-64-64-64 35.418 0 64-28.587 64-64v-64zM597.333 298.667v-85.333h-256v170.667c0 47.36 38.4 85.333 85.333 85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333v-85.333c0-47.36-38.4-85.333-85.333-85.333h-85.333v-85.333h170.667z" />
+<glyph unicode="&#xe95a;" glyph-name="nutriton" d="M938.667 170.667c0-94.255-76.412-170.667-170.667-170.667h-170.667c-94.259 0-170.667 76.412-170.667 170.667v85.333h512v-85.333zM170.667 810.666h426.667c47.13 0 85.333-38.205 85.333-85.333v-383.999h-341.333v-213.333h-170.667c-47.128 0-85.333 38.204-85.333 85.333v511.999c0 47.128 38.205 85.333 85.333 85.333zM170.667 682.666v-85.333h85.333v85.333h-85.333zM597.333 597.333v85.333h-256v-85.333h256zM170.667 512v-85.333h85.333v85.333h-85.333zM341.333 512v-85.333h256v85.333h-256zM170.667 341.334v-85.333h85.333v85.333h-85.333z" />
+<glyph unicode="&#xe95b;" glyph-name="odnoklassniki" d="M760.956 395.042c-12.194 24.491-45.969 44.868-90.85 9.506-60.663-47.799-158.106-47.799-158.106-47.799s-97.441 0-158.105 47.799c-44.883 35.362-78.654 14.985-90.847-9.506-21.259-42.705 2.761-63.347 56.96-98.138 46.295-29.722 109.905-40.823 150.985-44.975l-34.291-34.287c-48.298-48.299-94.919-94.921-127.266-127.27-19.34-19.332-19.34-50.692 0-70.033l5.835-5.837c19.34-19.337 50.694-19.332 70.034 0l127.267 127.27c48.303-48.299 94.921-94.921 127.27-127.266 19.337-19.337 50.697-19.337 70.033 0l5.833 5.833c19.345 19.345 19.341 50.701 0 70.037l-161.66 161.66c41.109 4.237 104.038 15.394 149.948 44.868 54.195 34.79 78.212 55.433 56.96 98.138zM512 743.616c58.684 0 106.257-47.572 106.257-106.252s-47.573-106.252-106.257-106.252c-58.679 0-106.251 47.571-106.251 106.252 0 58.679 47.572 106.252 106.251 106.252zM512 421.393c119.279 0 215.974 96.694 215.974 215.971 0 119.275-96.695 215.969-215.974 215.969s-215.97-96.694-215.97-215.969c0-119.277 96.692-215.971 215.97-215.971z" />
+<glyph unicode="&#xe95c;" glyph-name="office" d="M127.999 170.667l170.667 53.333 0.001 415.999 298.666 85.333-0.004-618.67-447.999 53.333 448.003-159.996 256 53.333v735.997l-258.031 64.003-467.304-160.002 0.001-522.665z" />
+<glyph unicode="&#xe95d;" glyph-name="oil" d="M938.667 405.334c0 0 85.333-92.459 85.333-149.333 0-47.104-38.229-85.333-85.333-85.333s-85.333 38.229-85.333 85.333c0 56.875 85.333 149.333 85.333 149.333zM256 682.667h170.667c23.565 0 42.667-19.103 42.667-42.667s-19.102-42.667-42.667-42.667h-42.667v-85.333h85.333c31.582 0 59.157-17.156 73.911-42.658l277.542 160.238 139.273-80.407c20.407-11.782 27.396-37.876 15.616-58.284s-37.875-27.401-58.283-15.616l-89.673 51.771-155.665-269.623c-14.545-26.287-42.556-44.087-74.722-44.087h-384c-47.128 0-85.333 38.204-85.333 85.333v128c0 47.13 38.205 85.333 85.333 85.333h85.333v85.333h-42.667c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667zM213.333 426.667v-128h384l87.987 152.397-147.802-85.333-38.788 60.937h-285.397zM16.157 545.83l72.837 72.836c16.662 16.663 43.677 16.663 60.34 0s16.663-43.677 0-60.34l-72.836-72.835c-16.663-16.661-43.678-16.661-60.34 0s-16.662 43.676 0 60.339z" />
+<glyph unicode="&#xe95e;" glyph-name="omega" d="M816.926 128h-245.76v91.021c91.021 69.026 136.533 154.786 136.533 257.28 0 63.717-18.086 114.135-54.259 151.255s-82.893 55.68-140.16 55.68c-57.741 0-105.007-18.655-141.796-55.965s-55.182-88.249-55.182-152.817c0-101.547 45.511-186.692 136.532-255.433v-91.021h-245.759v91.021h151.893c-101.262 65.805-151.893 154.978-151.893 267.52 0 89.317 27.852 159.598 83.555 210.846s129.067 76.871 220.089 76.871c93.013 0 167.3-25.41 222.861-76.231 55.565-50.821 83.345-121.031 83.345-210.633 0-112.542-51.106-202.001-153.318-268.373h153.318v-91.021z" />
+<glyph unicode="&#xe95f;" glyph-name="onedrive" d="M856.619 356.694c46.481-7.262 82.048-47.467 82.048-95.983 0-37.905-21.717-70.716-53.376-86.729l-7.275-3.315-487.115 0.017c-61.844 0.388-111.863 50.624-111.863 112.563 0 62.174 50.404 112.58 112.58 112.58l9.277-0.414-0.288 8.631c0 77.82 63.087 140.906 140.906 140.906 54.669 0 102.037-31.16 125.397-76.671 19.324 12.676 42.415 20.075 67.255 20.075 67.823 0 122.807-54.985 122.807-122.807l-0.354-8.853zM376.441 419.913c-68.704-7.578-122.322-65.975-122.322-136.666 0-28.787 8.964-55.565 24.223-77.705h-76.425c-64.388 0-116.584 52.194-116.584 116.582 0 61.538 47.691 111.906 108.124 116.245l-3.11 28.373c0 72.497 58.771 131.268 131.268 131.268 27.175 0 52.422-8.259 73.367-22.401 29.745 59.629 91.306 100.609 162.47 100.609 94.007 0 171.319-71.472 180.57-163.041l-3.857 0.093c-20.215 0-40.004-4.1-58.325-11.989-30.908 42.831-80.418 68.587-134.327 68.587-86.084 0-157.059-65.937-165.072-149.957z" />
+<glyph unicode="&#xe960;" glyph-name="open-in-app" d="M512 512l-170.667-170.667h128v-256h85.333v256h128zM810.667 768h-597.333c-47.36 0-85.333-38.4-85.333-85.333v-512c0-46.933 37.973-85.333 85.333-85.333h170.667v85.333h-170.667v426.667h597.333v-426.667h-170.667v-85.333h170.667c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-37.973 85.333-85.333 85.333z" />
+<glyph unicode="&#xe961;" glyph-name="open-in-new" d="M597.333 810.667v-85.333h153.173l-419.413-419.413 60.16-60.16 419.413 419.413v-153.173h85.333v298.667zM810.667 128h-597.333v597.333h298.667v85.333h-298.667c-47.36 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 37.973-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v298.667h-85.333v-298.667z" />
+<glyph unicode="&#xe962;" glyph-name="ornament-variant" d="M512 895.999c70.694 0 128-57.307 128-128v-42.666c23.565 0 42.667-19.103 42.667-42.667v-45.664c102.025-59.018 170.667-169.329 170.667-295.669 0-188.514-152.819-341.333-341.333-341.333s-341.333 152.819-341.333 341.333c0 126.34 68.642 236.651 170.667 295.669v45.664c0 23.564 19.102 42.667 42.667 42.667v42.666c0 70.692 57.306 128 128 128zM512 810.666c-23.565 0-42.667-19.103-42.667-42.667v-42.666h85.333v42.667c0 23.564-19.106 42.666-42.667 42.666zM512 597.333c-75.819 0-143.939-32.96-190.815-85.332h381.629c-46.874 52.372-114.995 85.332-190.814 85.332zM512 85.334c75.819 0 143.94 32.96 190.814 85.333h-381.629c46.875-52.373 114.996-85.333 190.815-85.333zM512 426.667c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333zM768 341.334c0 29.483-4.983 57.805-14.157 84.164-40.393-6.746-71.177-41.86-71.177-84.164s30.784-77.419 71.177-84.164c9.173 26.359 14.157 54.682 14.157 84.164zM256 341.334c0-29.483 4.984-57.805 14.157-84.164 40.391 6.746 71.177 41.86 71.177 84.164s-30.786 77.419-71.177 84.164c-9.172-26.359-14.157-54.682-14.157-84.164z" />
+<glyph unicode="&#xe963;" glyph-name="ornament" d="M512 895.999c70.694 0 128-57.307 128-128v-42.666c23.565 0 42.667-19.103 42.667-42.667v-45.664c102.025-59.018 170.667-169.329 170.667-295.669 0-188.514-152.819-341.333-341.333-341.333s-341.333 152.819-341.333 341.333c0 126.34 68.642 236.651 170.667 295.669v45.664c0 23.564 19.102 42.667 42.667 42.667v42.666c0 70.692 57.306 128 128 128zM512 810.666c-23.565 0-42.667-19.103-42.667-42.667v-42.666h85.333v42.667c0 23.564-19.102 42.666-42.667 42.666zM512 597.333c-75.819 0-143.939-32.96-190.815-85.333h381.629c-46.874 52.373-114.995 85.333-190.814 85.333zM270.566 256h53.094l-67.015 67.017c1.65-23.343 6.43-45.82 13.921-67.017zM536.994 256l-170.667 170.667h-92.654l170.666-170.667h92.655zM753.434 426.667h-53.094l67.017-67.017c-1.651 23.343-6.43 45.82-13.922 67.017zM487.006 426.667l170.667-170.667h92.655l-170.667 170.667h-92.655zM512 85.334c75.819 0 143.94 32.96 190.814 85.333h-381.629c46.875-52.373 114.996-85.333 190.815-85.333z" />
+<glyph unicode="&#xe964;" glyph-name="outbox" d="M597.333 341.351h-170.668v128l-85.334-0.009 170.665 170.668 170.662-170.659h-85.325v-128zM212.909 298.663v426.676h597.749v-426.676h-170.667c0-70.686-57.284-128-128-128-70.686 0-127.996 57.314-127.996 128h-171.087zM810.658 810.667h-597.749c-47.125 0-84.472-38.203-84.472-85.329l-0.438-597.343c0-47.125 37.784-85.329 84.91-85.329h597.749c47.125 0 85.342 38.204 85.342 85.329v597.343c0 47.125-38.217 85.329-85.342 85.329z" />
+<glyph unicode="&#xe965;" glyph-name="outdent" d="M85.333 810.667h853.333v-128h-853.333v128zM384 597.333h554.667v-128h-554.667v127.999zM384 384h554.667v-128h-554.667v128zM85.333 170.667h853.333v-128h-853.333v128zM256 597.334l-170.667-170.667 170.667-170.667h42.667v341.333h-42.667z" />
+<glyph unicode="&#xe966;" glyph-name="owl" d="M512 255.753c23.68-35.712 55.94-64.913 93.833-84.919l-93.833-93.833-93.833 93.833c37.893 20.006 70.153 49.207 93.833 84.919zM725.333 460.997c-47.13 0-85.333-38.204-85.333-85.333 0-47.125 38.204-85.329 85.333-85.329s85.333 38.204 85.333 85.329c0 47.13-38.204 85.333-85.333 85.333zM298.667 460.997c-47.128 0-85.333-38.204-85.333-85.333 0-47.125 38.205-85.329 85.333-85.329s85.333 38.204 85.333 85.329c0 47.13-38.205 85.333-85.333 85.333zM725.333 567.668c94.255 0 170.667-76.412 170.667-170.671 0-94.255-76.412-170.667-170.667-170.667s-170.667 76.412-170.667 170.667c0 94.259 76.412 170.671 170.667 170.671zM298.667 567.668c94.257 0 170.667-76.412 170.667-170.671 0-94.255-76.41-170.667-170.667-170.667s-170.667 76.412-170.667 170.667c0 94.259 76.41 170.671 170.667 170.671zM95.75 897.001c74.917-158.667 20.668-276.599-29.417-393.333-15.473-33.438-23.546-69.82-23.667-106.671 0-141.385 114.615-256 256-256 8.999 0.055 17.974 0.759 26.917 1.758l186.417-186.419 186.415 186.419c8.943-0.998 17.92-1.702 26.918-1.758 141.385 0 256.094 114.615 256 256-0.026 36.851-8.192 73.233-23.667 106.671-50.082 116.734-104.333 234.667-29.414 393.333-112.555-88.7-272.951-158.393-416.252-158.667-143.302 0.274-303.699 69.967-416.25 158.667z" />
+<glyph unicode="&#xe967;" glyph-name="package-down" d="M218.453 725.334l34.56 42.667h512l40.107-42.667zM512 192l-234.667 234.667h149.333v85.333h170.667v-85.333h149.333l-234.667-234.667zM876.373 715.52l-59.307 71.68c-11.52 14.507-29.013 23.467-49.067 23.467h-512c-20.053 0-37.547-8.96-49.493-23.467l-58.88-71.68c-12.373-14.507-19.627-33.707-19.627-54.187v-533.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333v533.333c0 20.48-7.249 39.68-19.627 54.187z" />
+<glyph unicode="&#xe968;" glyph-name="package-up" d="M876.373 715.52c12.373-14.507 19.627-33.707 19.627-54.187v-533.333c0-46.933-38.4-85.333-85.333-85.333h-597.333c-46.933 0-85.333 38.4-85.333 85.333v533.333c0 20.48 7.253 39.68 19.627 54.187l58.88 71.68c11.947 14.507 29.44 23.467 49.493 23.467h512c20.053 0 37.547-8.96 49.067-23.467l59.307-71.68zM218.453 725.333h586.667l-40.107 42.667h-512l-34.56-42.667zM512 533.334l-234.667-234.667h149.333v-85.333h170.667v85.333h149.333l-234.667 234.667z" />
+<glyph unicode="&#xe969;" glyph-name="package-variant-closed" d="M896 234.667c0-16.265-9.101-30.4-22.485-37.602l-337.348-189.568c-6.869-4.727-15.194-7.497-24.166-7.497s-17.297 2.769-24.166 7.497l-337.341 189.564c-13.389 7.198-22.492 21.342-22.492 37.606v384c0 16.266 9.103 30.406 22.492 37.605l337.341 189.563c6.869 4.73 15.194 7.498 24.166 7.498s17.293-2.768 24.166-7.498l337.348-189.567c13.385-7.2 22.485-21.338 22.485-37.601v-384zM512.038 761.561l-80.853-45.437 250.825-144.812 84.245 47.355-254.217 142.894zM257.76 618.667l254.279-142.895 83.494 46.932-250.834 144.819-86.939-48.856zM213.333 259.631l256-143.859v286.123l-256 143.855v-286.118zM810.667 259.631v286.118l-256-143.855v-286.161l256 143.898z" />
+<glyph unicode="&#xe96a;" glyph-name="package-variant" d="M85.212 471.079c-20.407 11.78-27.399 37.875-15.617 58.283l64 110.851c4.798 8.311 11.97 14.396 20.165 17.895l334.074 187.727c6.869 4.73 15.194 7.498 24.166 7.498s17.293-2.768 24.166-7.498l337.348-189.567c8.081-4.346 14.596-11.218 18.496-19.561l62.093-107.548c11.78-20.407 4.787-46.502-15.62-58.282l-42.483-24.529v-211.682c0-16.265-9.101-30.4-22.485-37.602l-337.348-189.568c-6.869-4.727-15.194-7.497-24.166-7.497s-17.297 2.769-24.166 7.497l-337.341 189.564c-13.389 7.198-22.492 21.342-22.492 37.606v236.471c-12.783-7.415-29.071-7.983-42.788-0.060zM512.038 761.56l-0.038-0.022v-285.745l0.038-0.021 254.217 142.895-254.217 142.894zM213.333 259.631l256-143.859v286.123l-256 143.855v-286.118zM810.667 259.631v137.451l-213.973-123.537c-13.44-7.761-29.35-7.377-42.027-0.354v-157.457l256 143.898zM590.976 368.777l267.891 154.667-24.905 43.14-267.891-154.667 24.905-43.14z" />
+<glyph unicode="&#xe96b;" glyph-name="package" d="M218.453 725.334h586.667l-40.107 42.667h-512l-34.56-42.667zM876.373 715.52c12.378-14.507 19.627-33.707 19.627-54.187v-533.333c0-46.933-38.4-85.333-85.333-85.333h-597.333c-46.933 0-85.333 38.4-85.333 85.333v533.333c0 20.48 7.253 39.68 19.627 54.187l58.88 71.68c11.947 14.507 29.44 23.467 49.493 23.467h512c20.053 0 37.547-8.96 49.067-23.467l59.307-71.68zM256 170.667h256v128h-256v-128z" />
+<glyph unicode="&#xe96c;" glyph-name="palette-advanced" d="M938.667-0h-512.002v85.333h512.002v-85.333zM85.334-0v85.333h298.664v-85.333h-298.664zM768 170.667v341.333h170.667v-341.333h-170.667zM768 810.667h170.667v-256h-170.667v256zM85.334 170.667v640h597.333v-640h-597.333zM384 317.334c70.613 0 128 57.387 128 128 0 85.333-128 229.333-128 229.333s-128-144-128-229.333c0-70.613 57.387-128 128-128z" />
+<glyph unicode="&#xe96d;" glyph-name="palette" d="M746.667 426.667c-35.413 0-64 28.587-64 64s28.587 64 64 64c35.413 0 64-28.587 64-64s-28.587-64-64-64zM618.667 597.334c-35.413 0-64 28.587-64 64s28.587 64 64 64c35.413 0 64-28.587 64-64s-28.587-64-64-64zM405.333 597.334c-35.413 0-64 28.587-64 64s28.587 64 64 64c35.413 0 64-28.587 64-64s-28.587-64-64-64zM277.333 426.667c-35.413 0-64 28.587-64 64s28.587 64 64 64c35.413 0 64-28.587 64-64s-28.587-64-64-64zM512 810.667c-212.053 0-384-171.947-384-384s171.947-384 384-384c35.413 0 64 28.587 64 64 0 16.64-6.4 31.573-16.64 43.093-9.813 11.093-16.213 26.027-16.213 42.24 0 35.413 28.587 64 64 64h75.52c117.76 0 213.333 95.573 213.333 213.333 0 188.587-171.947 341.333-384 341.333z" />
+<glyph unicode="&#xe96e;" glyph-name="panda" d="M512 810.667c74.21 0 143.501-21.050 202.231-57.504 27.328 35 69.922 57.504 117.769 57.504 82.475 0 149.333-66.859 149.333-149.333 0-64.101-40.388-118.769-97.105-139.945 7.689-30.299 11.772-62.034 11.772-94.721 0-212.079-171.921-384-384-384-212.077 0-384 171.921-384 384 0 32.687 4.084 64.422 11.771 94.721-56.716 21.176-97.104 75.844-97.104 139.945 0 82.475 66.859 149.333 149.333 149.333 47.848 0 90.441-22.504 117.77-57.504 58.73 36.454 128.020 57.504 202.23 57.504zM512 725.334c-164.949 0-298.667-133.718-298.667-298.667s133.717-298.667 298.667-298.667c164.949 0 298.667 133.717 298.667 298.667s-133.717 298.667-298.667 298.667zM690.79 499.324c15.245-56.9-4.685-111.684-44.518-122.355-39.829-10.675-84.48 26.803-99.729 83.708-15.245 56.902 4.685 111.683 44.514 122.356 39.834 10.673 84.484-26.804 99.733-83.709zM333.211 499.324c15.247 56.905 59.898 94.382 99.732 83.709 39.829-10.673 59.759-65.455 44.514-122.356-15.249-56.905-59.899-94.383-99.731-83.708-39.832 10.671-59.762 65.455-44.515 122.355zM512 341.334c25.391 0 48.188-8.316 63.821-21.513l-42.487-42.556c0.038-17.643 14.349-31.932 32-31.932 17.673 0 32 14.327 32 32 0 11.78 9.553 21.333 21.333 21.333s21.333-9.553 21.333-21.333c0-41.237-33.429-74.667-74.667-74.667-20.894 0-39.782 8.58-53.333 22.413-13.551-13.833-32.439-22.413-53.333-22.413-41.237 0-74.667 33.429-74.667 74.667 0 11.78 9.551 21.333 21.333 21.333s21.333-9.553 21.333-21.333c0-17.673 14.327-32 32-32s32 14.327 32 32l-42.487 42.487c15.633 13.197 38.43 21.513 63.821 21.513z" />
+<glyph unicode="&#xe96f;" glyph-name="pandora" d="M719.936 608.996c0-92.657-51.247-169.507-161.609-169.507h-112.35v342.888h112.35c110.362 0 161.609-78.806 161.609-173.381zM445.978 269.978v96.563h112.35c202.999 0 315.311 106.436 315.311 242.455 0 139.908-112.311 244.338-315.311 244.338h-407.968v-39.421c132.060 0 155.712-31.537 155.712-228.568v-315.367c0-197.069-23.652-230.558-155.712-230.558v-39.42h451.296v39.42c-132.041 0-155.678 33.489-155.678 230.558z" />
+<glyph unicode="&#xe970;" glyph-name="panorama-fisheye" d="M512 85.334c-188.16 0-341.333 153.173-341.333 341.333s153.173 341.333 341.333 341.333c188.16 0 341.333-153.173 341.333-341.333s-153.173-341.333-341.333-341.333zM512 853.334c-235.947 0-426.667-190.72-426.667-426.667s190.72-426.667 426.667-426.667c235.947 0 426.667 190.72 426.667 426.667s-190.72 426.667-426.667 426.667z" />
+<glyph unicode="&#xe971;" glyph-name="panorama-horizontal" d="M914.347 768c-4.267 0-8.533-0.853-13.227-2.56-125.44-46.933-257.28-69.973-389.12-69.973s-263.68 23.467-389.12 69.973c-4.693 1.707-9.387 2.56-13.227 2.56-14.507 0-24.32-9.813-24.32-26.88v-629.333c0-16.64 9.813-26.453 24.32-26.453 4.267 0 8.533 0.853 13.227 2.56 125.44 46.933 257.28 69.973 389.12 69.973s263.68-23.467 389.12-69.973c4.693-1.707 8.96-2.56 13.227-2.56 14.080 0 24.32 9.813 24.32 26.88v628.907c0 17.067-10.24 26.88-24.32 26.88zM853.333 659.627v-465.493c-110.933 32.853-225.28 49.493-341.333 49.493s-230.4-16.64-341.333-49.493v465.493c110.933-32.853 225.28-49.493 341.333-49.493 116.053-0.427 230.4 16.213 341.333 49.493z" />
+<glyph unicode="&#xe972;" glyph-name="panorama-vertical" d="M279.040 85.334c32.853 110.933 49.493 225.28 49.493 341.333s-16.64 230.4-49.493 341.333h465.493c-32.853-110.933-49.493-225.28-49.493-341.333s16.64-230.4 49.493-341.333zM850.773 37.547c-46.933 125.44-69.973 257.28-69.973 389.12s23.467 263.68 69.973 389.12c1.707 4.693 2.56 9.387 2.56 13.227 0 14.507-9.813 24.32-26.88 24.32h-628.907c-17.067 0-26.88-9.813-26.88-24.32 0-4.267 0.853-8.533 2.56-13.227 46.933-125.44 70.4-257.28 70.4-389.12s-23.467-263.68-69.973-389.12c-2.133-4.693-2.987-9.387-2.987-13.227 0-14.080 9.813-24.32 26.88-24.32h629.333c16.64 0 26.88 10.24 26.88 24.32-0.427 4.267-1.28 8.533-2.987 13.227z" />
+<glyph unicode="&#xe973;" glyph-name="panorama-wide-angle" d="M512 768c-116.48 0-222.72-10.24-339.2-30.72l-39.68-6.827-10.667-38.4c-24.747-88.32-37.12-177.067-37.12-265.387s12.373-177.067 37.12-265.387l10.667-37.973 39.68-6.827c116.48-20.907 222.72-31.147 339.2-31.147s222.72 10.24 339.2 30.72l39.68 6.827 10.667 37.973c24.747 88.747 37.12 177.493 37.12 265.813s-12.373 177.067-37.12 265.387l-10.667 37.973-39.68 6.827c-116.48 20.907-222.72 31.147-339.2 31.147zM512 682.667c104.533 0 200.96-8.533 311.040-27.307 20.053-75.947 30.293-152.747 30.293-228.693s-10.24-152.747-30.293-228.693c-110.080-18.773-206.507-27.307-311.040-27.307s-200.96 8.533-311.040 27.307c-20.053 75.947-30.293 152.747-30.293 228.693s10.24 152.747 30.293 228.693c110.080 18.773 206.507 27.307 311.040 27.307z" />
+<glyph unicode="&#xe974;" glyph-name="panorama" d="M362.667 405.334l106.667-128.427 149.333 192.427 192-256h-597.333zM981.333 170.667v512c0 46.933-38.4 85.333-85.333 85.333h-768c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h768c46.933 0 85.333 38.4 85.333 85.333z" />
+<glyph unicode="&#xe975;" glyph-name="paper-cut-vertical" d="M487.846 800.666l24.154-33.242 24.154 33.242 0.23-0.168c23.266 32.018 61.009 52.835 103.616 52.835 70.694 0 128-57.308 128-128 0-14.961-2.569-29.321-7.283-42.667h92.617c47.13 0 85.333-38.205 85.333-85.333v-512c0-47.13-38.204-85.333-85.333-85.333h-682.667c-47.128 0-85.333 38.204-85.333 85.333v512c0 47.128 38.205 85.333 85.333 85.333h92.617c-4.717 13.345-7.284 27.706-7.284 42.667 0 70.692 57.308 128 128 128 42.607 0 80.35-20.817 103.616-52.835l0.23 0.168zM170.667 597.333v-511.999h298.667c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667h298.667v511.999h-217.758l90.522-124.59-69.039-50.155-126.959 174.745h-36.198l-126.962-174.745-69.036 50.155 90.519 124.59h-217.755zM384 768c-23.564 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667c23.564 0 42.667 19.103 42.667 42.667s-19.103 42.667-42.667 42.667zM640 768c-23.565 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.103 42.667 42.667s-19.102 42.667-42.667 42.667zM512 256c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667zM512 384c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667zM512 512c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667z" />
+<glyph unicode="&#xe976;" glyph-name="paperclip" d="M704 682.667v-490.667c0-94.293-76.373-170.667-170.667-170.667s-170.667 76.373-170.667 170.667v533.333c0 58.88 47.787 106.667 106.667 106.667s106.667-47.787 106.667-106.667v-448c0-23.467-19.2-42.667-42.667-42.667s-42.667 19.2-42.667 42.667v405.333h-64v-405.333c0-58.88 47.787-106.667 106.667-106.667s106.667 47.787 106.667 106.667v448c0 94.293-76.373 170.667-170.667 170.667s-170.667-76.373-170.667-170.667v-533.333c0-129.707 104.96-234.667 234.667-234.667s234.667 104.96 234.667 234.667v490.667h-64z" />
+<glyph unicode="&#xe977;" glyph-name="parking" d="M563.174 469.415h-136.534v170.668h136.534c47.104 0 85.333-38.187 85.333-85.333 0-47.148-38.229-85.335-85.333-85.335zM554.641 810.749h-298.667v-768.001h170.667v256h128c141.355 0 256 114.603 256 256.001s-114.645 256-256 256z" />
+<glyph unicode="&#xe978;" glyph-name="pause-circle-outline" d="M554.641 250.198h85.333v341.331h-85.333zM511.974 79.531c-188.204 0-341.334 153.088-341.334 341.333 0 188.201 153.13 341.331 341.334 341.331s341.333-153.13 341.333-341.331c0-188.245-153.131-341.333-341.333-341.333zM511.974 847.529c-235.649 0-426.667-191.018-426.667-426.665 0-235.691 191.018-426.667 426.667-426.667s426.667 190.976 426.667 426.667c0 235.646-191.019 426.665-426.667 426.665zM383.974 250.198h85.334v341.331h-85.334v-341.331z" />
+<glyph unicode="&#xe979;" glyph-name="pause-circle" d="M639.974 250.198h-85.333v341.331h85.333zM469.308 250.198h-85.334v341.331h85.334zM511.974 847.529c-235.649 0-426.667-191.018-426.667-426.665 0-235.691 191.018-426.667 426.667-426.667s426.667 190.976 426.667 426.667c0 235.646-191.019 426.665-426.667 426.665z" />
+<glyph unicode="&#xe97a;" glyph-name="pause-octagon-outline" d="M640 256h-85.333v341.333h85.333v-341.333zM469.333 256h-85.333v341.333h85.333v-341.333zM671.061 810.667l224.939-224.937v-318.124l-224.939-224.939h-318.145l-224.916 224.939v318.124l224.916 224.937h318.145zM635.716 725.334h-247.448l-174.935-174.952v-247.431l174.935-174.95h247.448l174.95 174.95v247.431l-174.95 174.952z" />
+<glyph unicode="&#xe97b;" glyph-name="pause-octagon" d="M671.061 810.667l224.939-224.937v-318.124l-224.939-224.939h-318.145l-224.916 224.939v318.124l224.916 224.937h318.145zM640 256v341.333h-85.333v-341.333h85.333zM469.333 256v341.333h-85.333v-341.333h85.333z" />
+<glyph unicode="&#xe97c;" glyph-name="pause" d="M597.308 122.155h170.667v597.332h-170.667zM255.974 122.155h170.667v597.332h-170.667v-597.332z" />
+<glyph unicode="&#xe97d;" glyph-name="paw" d="M356.28 810.193c50.269 7.623 103.628-47.516 119.129-123.153 15.543-75.636-12.663-143.1-62.931-150.723-50.311-7.623-103.63 47.516-119.172 123.153-15.5 75.594 12.705 143.1 62.974 150.723zM661.786 810.206c50.27-7.623 78.477-75.128 62.976-150.722-15.543-75.636-68.86-130.776-119.172-123.153-50.27 7.623-78.477 75.086-62.933 150.723 15.501 75.636 68.86 130.776 119.13 123.153zM128.901 614.597c47.898 20.836 113.92-16.601 147.462-83.598 33.498-66.999 21.81-138.231-26.087-159.022-47.94-20.838-113.921 16.602-147.462 83.597-33.499 66.998-21.81 138.188 26.087 159.023zM895.1 614.597c47.898-20.836 59.584-92.026 26.086-159.023-33.54-66.995-99.52-104.435-147.46-83.639-47.898 20.834-59.588 92.066-26.086 159.065 33.54 66.997 99.563 104.434 147.46 83.598zM824.828 154.479c1.779-40.145-29.009-84.655-65.643-101.171-77.414-34.897-167.070 37.649-251.981 37.649-84.909 0-176.046-75.721-251.979-37.649-41.376 20.749-71.19 76.399-65.642 122.347 7.708 63.906 83.98 97.702 129.167 143.522 60.094 60.86 102.952 174.101 188.454 174.101 85.504 0 130.483-111.211 188.459-174.101 47.305-51.285 126.033-94.989 129.165-164.698z" />
+<glyph unicode="&#xe97e;" glyph-name="pen" d="M883.465 638.247c-14.263-14.264-28.527-28.529-28.821-42.499-0.29-13.97 13.385-27.647 27.059-41.324 20.113-20.113 40.226-40.226 39.441-61.129-0.789-20.902-22.477-42.59-44.169-64.277l-176.29-176.294-60.339 60.343 181.018 181.018-41.024 41.026-60.395-60.401-160 159.999 163.52 163.538c16.683 16.686 43.691 16.686 60.331 0l99.669-99.668c16.683-16.637 16.683-43.645 0-60.332zM127.965 202.752l408.078 408.053 160-159.998-408.078-408.055h-160v160z" />
+<glyph unicode="&#xe97f;" glyph-name="pencil-box-outline" d="M810.662 128v597.333h-597.331v-597.376l597.331 0.043zM810.658 810.664c47.104 0 85.333-38.229 85.333-85.333v-597.331c0-47.147-38.229-85.333-85.333-85.333h-597.33c-47.104 0-85.333 38.187-85.333 85.333v597.331c0 47.104 38.229 85.333 85.333 85.333h597.33zM712.678 539.701l-42.82-42.817-87.646 87.648 42.82 42.819c9.139 9.14 23.932 9.14 33.050 0l54.596-54.6c9.139-9.114 9.139-23.909 0-33.050zM298.813 301.133l258.623 258.623 87.65-87.649-258.624-258.624h-87.649v87.65z" />
+<glyph unicode="&#xe980;" glyph-name="pencil-box" d="M810.658 810.664c47.104 0 85.333-38.229 85.333-85.333v-597.331c0-47.147-38.229-85.333-85.333-85.333h-597.33c-47.104 0-85.333 38.187-85.333 85.333v597.331c0 47.104 38.229 85.333 85.333 85.333h597.33zM712.678 539.7c9.139 9.141 9.139 23.936 0 33.050l-54.601 54.6c-9.114 9.14-23.906 9.14-33.045 0l-42.82-42.819 87.646-87.648 42.82 42.817zM298.813 301.133v-87.65h87.649l258.624 258.624-87.65 87.649-258.623-258.623z" />
+<glyph unicode="&#xe981;" glyph-name="pencil" d="M883.465 638.248c16.683 16.685 16.683 43.693 0 60.331l-99.669 99.669c-16.64 16.685-43.648 16.685-60.331 0l-78.165-78.164 160-160zM127.964 202.752v-160h160l472.108 472.105-160 160-472.108-472.105z" />
+<glyph unicode="&#xe982;" glyph-name="people" d="M341.333 725.334c70.692 0 128-57.308 128-128s-57.308-128-128-128c-70.692 0-128 57.307-128 128s57.308 128 128 128zM682.667 725.333c70.69 0 128-57.307 128-128s-57.31-128-128-128c-70.694 0-128 57.307-128 128s57.306 128 128 128zM341.333 384c164.949 0 298.667-57.306 298.667-128v-128h-597.333v128c0 70.694 133.718 128 298.667 128zM682.667 384c164.949 0 298.667-57.306 298.667-128v-128h-256v128c0 47.68-28.151 91.703-75.729 127.223l33.062 0.777z" />
+<glyph unicode="&#xe983;" glyph-name="percent" d="M298.667 768c70.692 0 128-57.308 128-128s-57.308-128-128-128c-70.692 0-128 57.307-128 128s57.308 128 128 128zM725.333 341.334c70.694 0 128-57.306 128-128s-57.306-128-128-128c-70.694 0-128 57.306-128 128s57.306 128 128 128zM853.333 707.66l-622.327-622.327-60.34 60.339 622.327 622.327 60.339-60.34z" />
+<glyph unicode="&#xe984;" glyph-name="person-box" d="M213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM512 682.667c-70.694 0-128-57.307-128-128 0-70.694 57.306-128 128-128s128 57.306 128 128c0 70.692-57.306 128-128 128zM512 341.334c-141.385 0-256-57.306-256-128v-42.667h512v42.667c0 70.694-114.615 128-256 128z" />
+<glyph unicode="&#xe985;" glyph-name="person-minus" d="M42.667 512h341.333v-85.333h-341.333v85.333zM640 768c94.255 0 170.667-76.41 170.667-170.667 0-94.255-76.412-170.667-170.667-170.667s-170.667 76.412-170.667 170.667c0 94.257 76.412 170.667 170.667 170.667zM981.333 213.334v-128h-682.667v128c0 70.694 152.819 128 341.333 128s341.333-57.306 341.333-128z" />
+<glyph unicode="&#xe986;" glyph-name="person-plus" d="M42.667 512h128v128h85.333v-128h128v-85.333h-128v-128h-85.333v128h-128v85.333zM640 768c94.255 0 170.667-76.41 170.667-170.667 0-94.255-76.412-170.667-170.667-170.667s-170.667 76.412-170.667 170.667c0 94.257 76.412 170.667 170.667 170.667zM981.333 213.334v-128h-682.667v128c0 70.69 152.819 128 341.333 128s341.333-57.306 341.333-128z" />
+<glyph unicode="&#xe987;" glyph-name="pharmacy" d="M682.641 341.415h-128v-128h-85.333v128h-128v85.333h128v128.001h85.333v-128.001h128zM895.974 725.416h-112.853l48.853 134.187-100.224 36.48-62.123-170.667h-541.654v-85.333l85.333-256.001-85.333-256v-85.333h768v85.333l-85.333 256 85.333 256.001v85.333z" />
+<glyph unicode="&#xe988;" glyph-name="phone-bluetooth" d="M853.308 277.415c-53.205 0-104.405 8.576-152.405 24.235-14.763 4.779-31.616 1.28-43.349-10.453l-93.867-93.995c-120.875 61.483-219.648 160.171-281.132 280.96l93.867 94.21c11.733 11.69 15.232 28.544 10.41 43.306-15.658 47.957-24.192 99.2-24.192 152.405 0 23.595-19.072 42.667-42.667 42.667h-149.333c-23.595 0-42.667-19.072-42.667-42.667 0-400.582 324.736-725.335 725.334-725.335 23.595 0 42.667 19.072 42.667 42.667v149.333c0 23.595-19.072 42.667-42.667 42.667zM767.974 631.251l40.064-40.064-40.064-40.107zM767.974 814.419l40.064-40.106-40.064-40.064zM627.473 533.416l97.835 97.835v-161.836h21.333l121.728 121.772-91.563 91.563 91.563 91.563-121.728 121.77h-21.333v-161.835l-97.835 97.835-30.165-30.165 119.168-119.168-119.168-119.168 30.165-30.165z" />
+<glyph unicode="&#xe989;" glyph-name="phone-dots" d="M810.641 469.419h85.333v85.331h-85.333zM853.308 277.419c-53.205 0-104.405 8.572-152.405 24.23-14.763 4.779-31.616 1.284-43.349-10.449l-93.867-93.999c-120.875 61.483-219.648 160.175-281.131 280.964l93.867 94.207c11.734 11.69 15.232 28.541 10.411 43.305-15.659 47.959-24.192 99.2-24.192 152.406 0 23.594-19.072 42.667-42.667 42.667h-149.333c-23.594 0-42.667-19.073-42.667-42.667 0-400.595 324.736-725.331 725.333-725.331 23.595 0 42.667 19.072 42.667 42.667v149.333c0 23.59-19.072 42.667-42.667 42.667zM725.308 554.75h-85.333v-85.331h85.333zM554.641 554.75h-85.333v-85.331h85.333v85.331z" />
+<glyph unicode="&#xe98a;" glyph-name="phone-forward" d="M853.308 277.415c-53.205 0-104.405 8.576-152.405 24.235-14.763 4.779-31.616 1.28-43.349-10.453l-93.867-93.995c-120.875 61.483-219.648 160.171-281.132 280.96l93.867 94.21c11.733 11.69 15.232 28.544 10.453 43.306-15.659 48-24.234 99.2-24.234 152.405 0 23.595-19.072 42.667-42.667 42.667h-149.333c-23.595 0-42.667-19.072-42.667-42.667 0-400.582 324.736-725.335 725.334-725.335 23.595 0 42.667 19.072 42.667 42.667v149.333c0 23.595-19.072 42.667-42.667 42.667zM767.974 469.415l213.333 213.335-213.333 213.333v-128h-170.667v-170.667h170.667v-128.001z" />
+<glyph unicode="&#xe98b;" glyph-name="phone-hangup" d="M511.987 554.745c-68.416 0-134.4-10.75-196.224-30.633l-0.043-132.483c0-16.806-9.728-31.36-23.9-38.315-41.636-20.945-79.865-47.612-113.7-79.019-7.68-7.505-18.176-12.117-29.781-12.117-11.769 0-22.435 4.779-30.165 12.506l-105.685 105.724c-7.723 7.68-12.501 18.347-12.501 30.123 0 11.823 4.779 22.528 12.544 30.255 130.048 123.517 305.92 199.293 499.456 199.293s369.408-75.776 499.456-199.293c7.765-7.727 12.544-18.432 12.544-30.255 0-11.776-4.779-22.443-12.501-30.123l-105.685-105.724c-7.731-7.727-18.398-12.506-30.165-12.506-11.605 0-22.101 4.612-29.781 12.117-33.835 31.407-72.064 58.074-113.698 79.019-14.174 6.955-23.902 21.508-23.902 38.315l-0.043 132.483c-61.824 19.883-127.808 30.633-196.224 30.633z" />
+<glyph unicode="&#xe98c;" glyph-name="phone-in-talk" d="M639.974 426.748h85.333c0 117.847-95.488 213.335-213.333 213.335v-85.333c70.656 0 128-57.345 128-128.001zM810.641 426.748h85.333c0 212.097-171.904 384.001-384 384.001v-85.333c164.907 0 298.667-133.717 298.667-298.668zM853.308 277.415c-53.205 0-104.405 8.576-152.405 24.235-14.763 4.779-31.616 1.28-43.349-10.453l-93.867-93.995c-120.875 61.483-219.648 160.171-281.132 280.96l93.867 94.21c11.733 11.733 15.232 28.544 10.41 43.306-15.658 47.957-24.192 99.2-24.192 152.405 0 23.595-19.072 42.667-42.667 42.667h-149.333c-23.595 0-42.667-19.072-42.667-42.667 0-400.582 324.736-725.335 725.334-725.335 23.595 0 42.667 19.072 42.667 42.667v149.333c0 23.595-19.072 42.667-42.667 42.667z" />
+<glyph unicode="&#xe98d;" glyph-name="phone-incoming" d="M170.667 810.667c-23.467 0-42.667-19.2-42.667-42.667 0-400.64 324.693-725.333 725.333-725.333 23.467 0 42.667 19.2 42.667 42.667v149.333c0 23.467-19.2 42.667-42.667 42.667-53.333 0-104.546 8.546-152.333 24.333-14.933 4.693-31.552 1.271-43.499-10.249l-93.837-93.833c-120.747 61.44-219.808 159.991-281.248 281.165l93.917 94.251c11.947 11.093 15.36 27.733 10.667 42.667-15.787 47.787-24.333 98.999-24.333 152.333 0 23.467-19.2 42.667-42.667 42.667h-149.333zM810.667 469.334v64h-149.333l234.667 234.667-42.667 42.667-234.667-234.667v149.333h-64v-256h256z" />
+<glyph unicode="&#xe98e;" glyph-name="phone-locked" d="M819.183 768.083h-145.067v21.248c0 40.107 32.384 72.619 72.491 72.619 40.064 0 72.576-32.512 72.576-72.619zM853.316 768.083v21.248c0 58.965-47.787 106.752-106.752 106.752-58.923 0-106.581-47.787-106.581-106.752v-21.248c-23.595 0-42.667-19.115-42.667-42.667v-170.667c0-23.552 19.072-42.667 42.667-42.667h213.333c23.552 0 42.667 19.115 42.667 42.667v170.667c0 23.552-19.115 42.667-42.667 42.667zM853.316 277.415c-53.205 0-104.448 8.576-152.448 24.235-14.72 4.779-31.573 1.28-43.307-10.453l-93.867-93.995c-120.875 61.483-219.606 160.171-281.131 280.96l93.867 94.21c11.69 11.69 15.189 28.544 10.453 43.306-15.702 48-24.235 99.2-24.235 152.405 0 23.595-19.116 42.667-42.667 42.667h-149.333c-23.552 0-42.667-19.072-42.667-42.667 0-400.582 324.736-725.335 725.333-725.335 23.552 0 42.667 19.072 42.667 42.667v149.333c0 23.595-19.115 42.667-42.667 42.667z" />
+<glyph unicode="&#xe98f;" glyph-name="phone-log" d="M853.308 277.415c23.595 0 42.667-19.072 42.667-42.667v-149.333c0-23.595-19.072-42.667-42.667-42.667-400.597 0-725.334 324.753-725.334 725.335 0 23.595 19.071 42.667 42.667 42.667h149.333c23.596 0 42.667-19.072 42.667-42.667 0-53.205 8.535-104.448 24.191-152.405 4.823-14.763 1.323-31.573-10.41-43.306l-93.868-94.21c61.485-120.789 160.258-219.477 281.133-280.96l93.867 93.995c11.733 11.733 28.587 15.232 43.349 10.453 48-15.659 99.2-24.235 152.405-24.235zM512 853.333h85.333v-85.333h-85.333v85.333zM682.667 853.333h256v-85.333h-256v85.333zM512 682.667h85.333v-85.333h-85.333v85.333zM682.667 682.667h256v-85.333h-256v85.333zM512 512h85.333v-85.333h-85.333v85.333zM682.667 512h256v-85.333h-256v85.333z" />
+<glyph unicode="&#xe990;" glyph-name="phone-missed" d="M1011.447 227.435c-130.048 123.563-305.92 199.296-499.456 199.296s-369.409-75.733-499.457-199.296c-7.766-7.723-12.544-18.432-12.544-30.208s4.737-22.443 12.501-30.165l105.643-105.728c7.766-7.723 18.432-12.501 30.208-12.501 11.605 0 22.1 4.651 29.823 12.117 33.793 31.445 72.022 58.112 113.707 79.061 14.122 6.912 23.85 21.461 23.85 38.315v132.437c61.824 19.925 127.788 30.635 196.268 30.635 68.437 0 134.4-10.709 196.224-30.635v-132.437c0-16.853 9.771-31.403 23.893-38.315 41.685-20.949 79.915-47.616 113.707-79.061 7.723-7.467 18.219-12.117 29.781-12.117 11.819 0 22.485 4.779 30.208 12.501l105.685 105.728c7.765 7.723 12.501 18.389 12.501 30.165s-4.779 22.485-12.544 30.208zM277.324 704.064l234.668-234.667 298.667 298.667-42.667 42.667-256-256-192.001 192h149.335v64h-256.001v-256h64v149.333z" />
+<glyph unicode="&#xe991;" glyph-name="phone-outgoing" d="M170.667 810.667c-23.467 0-42.667-19.2-42.667-42.667 0-400.64 324.693-725.333 725.333-725.333 23.467 0 42.667 19.2 42.667 42.667v149.333c0 23.467-19.2 42.667-42.667 42.667-53.333 0-104.546 8.546-152.333 24.333-14.933 4.693-31.552 1.271-43.499-10.249l-93.837-93.833c-120.747 61.44-219.808 159.991-281.248 281.165l93.917 94.251c11.947 11.093 15.36 27.733 10.667 42.667-15.787 47.787-24.333 98.999-24.333 152.333 0 23.467-19.2 42.667-42.667 42.667h-149.333zM640 810.667v-64h149.333l-234.667-234.667 42.667-42.667 234.667 234.667v-149.333h64v256h-256z" />
+<glyph unicode="&#xe992;" glyph-name="phone-paused" d="M810.641 512.083h85.333v298.667h-85.333zM853.308 277.415c-53.205 0-104.405 8.576-152.405 24.235-14.763 4.779-31.616 1.28-43.349-10.453l-93.867-93.995c-120.875 61.483-219.648 160.171-281.132 280.96l93.867 94.21c11.733 11.733 15.232 28.544 10.41 43.306-15.658 47.957-24.192 99.2-24.192 152.405 0 23.595-19.072 42.667-42.667 42.667h-149.333c-23.595 0-42.667-19.072-42.667-42.667 0-400.582 324.736-725.335 725.334-725.335 23.595 0 42.667 19.072 42.667 42.667v149.333c0 23.595-19.072 42.667-42.667 42.667zM725.308 810.749h-85.333v-298.667h85.333v298.667z" />
+<glyph unicode="&#xe993;" glyph-name="phone" d="M282.573 478.166c61.482-120.789 160.256-219.52 281.131-280.96l93.867 93.995c11.733 11.733 28.587 15.189 43.349 10.453 47.957-15.659 99.2-24.235 152.405-24.235 23.552 0 42.667-19.072 42.667-42.667v-149.333c0-23.595-19.115-42.667-42.667-42.667-400.597 0-725.377 324.736-725.377 725.335 0 23.594 19.115 42.667 42.667 42.667h149.333c23.595 0 42.667-19.072 42.667-42.667 0-53.206 8.577-104.448 24.236-152.406 4.779-14.762 1.28-31.616-10.412-43.307l-93.866-94.209z" />
+<glyph unicode="&#xe994;" glyph-name="picture" d="M170.667 853.333h682.667c47.13 0 85.333-38.205 85.333-85.333v-682.667c0-47.13-38.204-85.333-85.333-85.333h-682.667c-47.128 0-85.333 38.204-85.333 85.333v682.667c0 47.128 38.205 85.333 85.333 85.333zM298.667 768c-58.91 0-106.667-47.756-106.667-106.667s47.756-106.667 106.667-106.667c58.91 0 106.667 47.756 106.667 106.667s-47.756 106.667-106.667 106.667zM170.667 170.667v-85.333h682.667v256l-128 128-256-256-128 128-170.667-170.667z" />
+<glyph unicode="&#xe995;" glyph-name="pig" d="M405.333 554.667c-35.346 0-64-28.654-64-64 0-35.345 28.654-64 64-64 35.345 0 64 28.655 64 64s-28.655 64-64 64zM618.667 554.667c-35.345 0-64-28.654-64-64s28.655-64 64-64c35.345 0 64 28.655 64 64s-28.655 64-64 64zM512 768l29.141-1.089c40.171 33.461 91.119 61.049 129.728 71.395 79.667 21.346 220.169 5.381 238.468-62.902 13.18-49.196-30.409-112.126-97.523-151.447 52.676-65.734 84.186-149.165 84.186-239.955 0-212.079-171.921-384-384-384-212.078 0-384 171.921-384 384 0 90.79 31.508 174.221 84.186 239.955-67.118 39.322-110.705 102.252-97.524 151.447 18.296 68.283 158.801 84.248 238.466 62.902 38.612-10.346 89.559-37.934 129.73-71.395l29.141 1.089zM426.666 256c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667c-23.564 0-42.666 19.102-42.666 42.667s19.102 42.667 42.666 42.667zM597.333 256c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667zM512 384c-117.821 0-213.334-99.977-213.334-170.667 0-70.694 95.513-128 213.334-128 117.82 0 213.333 57.306 213.333 128 0 70.69-95.514 170.667-213.333 170.667zM331.043 755.88c-18.968 5.082-135.409-2.939-135.409-2.939s94.355-74.405 113.323-79.487c18.967-5.082 107.976-9.156 114.075 13.606 6.101 22.761-73.021 63.738-91.989 68.82zM692.958 755.88c-18.97-5.082-98.091-46.059-91.989-68.82 6.097-22.761 95.108-18.688 114.074-13.606 18.97 5.082 113.323 79.487 113.323 79.487s-116.442 8.021-135.407 2.939z" />
+<glyph unicode="&#xe996;" glyph-name="pill" d="M180.131 456.837l301.699 301.698c99.972 99.974 262.063 99.974 362.035 0 99.977-99.974 99.977-262.065 0-362.037l-301.696-301.7c-99.977-99.972-262.065-99.972-362.039 0-99.974 99.977-99.974 262.067 0 362.039zM240.47 396.497c-44.668-44.668-59.4-107.938-44.195-164.873l255.386 255.381 181.018-181.018 150.848 150.848c66.65 66.65 66.65 174.71 0 241.36s-174.707 66.65-241.357 0l-301.699-301.699z" />
+<glyph unicode="&#xe997;" glyph-name="pin-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-253.103 253.103v-253.022h-68.267v256h-221.867v85.333l85.333 85.333v31.155l-255.974 255.975zM682.641 426.748l85.333-85.333v-85.333h-7.62l-419.047 419.046v92.955h-42.667v85.333h426.667v-85.333h-42.667v-341.335z" />
+<glyph unicode="&#xe998;" glyph-name="pin" d="M682.641 426.748v341.335h42.667v85.333h-426.667v-85.333h42.667v-341.335l-85.333-85.333v-85.333h221.867v-256h68.267v256h221.867v85.333l-85.333 85.333z" />
+<glyph unicode="&#xe999;" glyph-name="pine-tree-box" d="M170.667 853.334h682.667c47.13 0 85.333-38.205 85.333-85.333v-682.667c0-47.13-38.204-85.333-85.333-85.333h-682.667c-47.128 0-85.333 38.204-85.333 85.333v682.667c0 47.128 38.205 85.333 85.333 85.333zM469.333 128h85.333v85.333h213.333l-170.667 170.667h128l-170.667 170.667h128l-170.667 170.667-170.667-170.667h128l-170.667-170.667h128l-170.667-170.667h213.333v-85.333z" />
+<glyph unicode="&#xe99a;" glyph-name="pine-tree" d="M426.667 42.667v128h-298.667l213.333 213.333h-128l213.333 213.333h-128l213.333 213.333 213.333-213.333h-128l213.333-213.333h-128l213.333-213.333h-298.667v-128h-170.667z" />
+<glyph unicode="&#xe99b;" glyph-name="pinterest-box" d="M554.641 247.54c-34.219 0-66.901 14.464-90.283 39.253l-40.619-136.533-2.901-8.832-1.365 0.469c-8.363-13.824-23.211-22.357-39.765-22.357-25.856 0-46.933 21.035-46.933 46.976 0 2.176 0.256 4.224 0.597 6.187l-0.725 0.299 2.304 7.595 78.891 237.312c0 0-8.533 26.155-8.533 62.848 0 73.345 39.339 95.319 70.997 95.319s60.459-11.307 60.459-55.979c0-57.345-37.931-86.7-37.931-128.129 0-31.573 25.728-57.259 57.31-57.259 99.575 0 135.031 75.093 135.031 145.365 0 92.929-80.384 168.535-179.2 168.535s-179.2-75.605-179.2-168.535c0.043-28.757 8.021-57.344 23.125-82.56 3.968-6.656 6.059-14.165 6.059-21.973 0-23.552-19.151-42.667-42.667-42.667-15.189 0-29.397 8.107-36.992 21.12-22.784 38.229-34.859 81.835-34.859 126.080 0 139.991 118.656 253.868 264.533 253.868s264.533-113.877 264.533-253.868c0-112-69.461-232.533-221.867-232.533zM853.308 853.407h-682.667c-47.147 0-84.907-38.187-84.907-85.333l-0.427-682.668c0-47.104 38.187-85.333 85.333-85.333h682.667c47.104 0 85.333 38.229 85.333 85.333v682.668c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe99c;" glyph-name="pinterest" d="M565.308 202.74c-42.773 0-83.627 18.082-112.853 49.067l-50.773-170.667-3.627-11.038-1.707 0.585c-10.453-17.28-29.013-27.947-49.707-27.947-32.32 0-58.667 26.295-58.667 58.722 0 2.718 0.32 5.278 0.747 7.731l-0.907 0.375 2.88 9.493 98.613 296.64c0 0-10.667 32.691-10.667 78.558 0 91.681 49.173 119.148 88.747 119.148s75.575-14.134 75.575-69.973c0-71.682-47.415-108.375-47.415-160.16 0-39.467 32.158-71.573 71.633-71.573 124.471 0 168.794 93.867 168.794 181.705 0 116.161-100.48 210.668-224 210.668s-224-94.507-224-210.668c0.053-35.947 10.027-71.68 28.907-103.198 4.96-8.32 7.573-17.707 7.573-27.469 0-29.44-23.939-53.333-53.333-53.333-18.987 0-36.747 10.133-46.24 26.402-28.48 47.787-43.573 102.293-43.573 157.598 0 174.988 148.32 317.335 330.667 317.335 182.345 0 330.667-142.346 330.667-317.335 0-139.998-86.827-290.667-277.333-290.667z" />
+<glyph unicode="&#xe99d;" glyph-name="pizza" d="M511.974 298.748c-47.104 0-85.334 38.187-85.334 85.333s38.23 85.333 85.334 85.333c47.104 0 85.333-38.187 85.333-85.333s-38.229-85.333-85.333-85.333zM298.641 640.083c0 47.147 38.186 85.333 85.333 85.333 47.104 0 85.334-38.187 85.334-85.333s-38.229-85.333-85.334-85.333c-47.147 0-85.333 38.187-85.333 85.333zM511.974 853.416c-152.193 0-289.024-65.877-383.532-170.624l383.532-682.711 383.701 682.497c-94.507 104.875-231.381 170.837-383.701 170.837z" />
+<glyph unicode="&#xe99e;" glyph-name="plane" d="M85.773 42.667l895.573 384-895.573 384-0.427-298.667 640-85.333-640-85.333 0.427-298.667z" />
+<glyph unicode="&#xe99f;" glyph-name="play-box-outline" d="M810.641 128.081l-597.334-0.043v597.377h597.334zM810.641 810.749h-597.334c-47.104 0-85.333-38.229-85.333-85.333v-597.335c0-47.147 38.229-85.333 85.333-85.333h597.334c47.104 0 85.333 38.187 85.333 85.333v597.335c0 47.104-38.229 85.333-85.333 85.333zM426.641 597.416v-341.335l213.334 170.667-213.334 170.668z" />
+<glyph unicode="&#xe9a0;" glyph-name="play-circle-outline" d="M511.974 79.497c-188.202 0-341.332 153.126-341.332 341.333 0 188.201 153.13 341.332 341.332 341.332s341.333-153.13 341.333-341.332c0-188.207-153.131-341.333-341.333-341.333zM511.974 847.495c-235.647 0-426.665-191.018-426.665-426.665 0-235.652 191.018-426.667 426.665-426.667s426.667 191.014 426.667 426.667c0 235.647-191.019 426.665-426.667 426.665zM426.642 228.83l255.999 192-255.999 191.998v-383.998z" />
+<glyph unicode="&#xe9a1;" glyph-name="play-circle" d="M426.641 228.847v384.002l256-192.002zM511.974 847.516c-235.649 0-426.667-191.018-426.667-426.669 0-235.648 191.018-426.667 426.667-426.667s426.667 191.019 426.667 426.667c0 235.651-191.019 426.669-426.667 426.669z" />
+<glyph unicode="&#xe9a2;" glyph-name="play" d="M341.307 719.495v-597.332l469.334 298.667-469.334 298.665z" />
+<glyph unicode="&#xe9a3;" glyph-name="playlist-minus" d="M85.333 256h341.333v85.333h-341.333zM512 341.334v-85.333h426.667v85.333zM597.333 682.667h-512v-85.333h512zM597.333 512h-512v-85.333h512v85.333z" />
+<glyph unicode="&#xe9a4;" glyph-name="playlist-plus" d="M85.333 256h341.333v85.333h-341.333zM768 341.334v170.667h-85.333v-170.667h-170.667v-85.333h170.667v-170.667h85.333v170.667h170.667v85.333zM597.333 682.667h-512v-85.333h512zM597.333 512h-512v-85.333h512v85.333z" />
+<glyph unicode="&#xe9a5;" glyph-name="playstation" d="M404.989 756.439c59.139-10.958 145.432-36.953 191.764-52.564 117.948-40.495 157.909-90.815 157.909-204.291 0-110.72-68.331-152.597-155.068-110.72v206.138c0 24.155-4.437 46.444-27.23 52.751-17.284 5.579-28.134-10.551-28.134-34.693v-516.164l-139.241 44.156v615.387zM570.641 186.88l223.953 79.808c25.34 9.067 29.257 21.909 8.674 28.668-20.663 6.788-58.065 4.791-83.435-4.305l-149.193-52.506v83.657l8.593 2.876c0 0 43.14 15.253 103.765 21.956 60.608 6.677 134.848-0.875 193.088-22.955 65.711-20.813 73.118-51.358 56.457-72.439-16.747-21.043-57.626-36.087-57.626-36.087l-304.277-109.257v80.585zM149.596 195.286c-67.439 18.995-78.694 58.517-48.010 81.289 28.485 21.056 76.743 36.954 76.743 36.954l199.65 70.942v-80.828l-143.616-51.443c-25.447-9.173-29.302-21.995-8.719-28.762 20.661-6.763 57.987-4.847 83.418 4.309l68.918 24.956v-72.371l-13.774-2.3c-68.949-11.281-142.305-6.613-214.608 17.254z" />
+<glyph unicode="&#xe9a6;" glyph-name="plus-box" d="M725.308 384.081h-170.667v-170.667h-85.333v170.667h-170.667v85.333h170.667v170.665h85.333v-170.665h170.667zM810.641 810.747h-597.333c-47.189 0-85.333-38.229-85.333-85.333v-597.332c0-47.104 38.144-85.333 85.333-85.333h597.333c47.061 0 85.333 38.229 85.333 85.333v597.332c0 47.104-38.272 85.333-85.333 85.333z" />
+<glyph unicode="&#xe9a7;" glyph-name="plus-circle-outline" d="M511.974 85.419c-188.203 0-341.333 153.126-341.333 341.333 0 188.201 153.131 341.331 341.333 341.331s341.333-153.13 341.333-341.331c0-188.207-153.131-341.333-341.333-341.333zM511.974 853.417c-235.648 0-426.667-191.018-426.667-426.665 0-235.652 191.019-426.667 426.667-426.667s426.667 191.014 426.667 426.667c0 235.646-191.019 426.665-426.667 426.665zM554.641 640.084h-85.333v-170.665h-170.667v-85.333h170.667v-170.667h85.333v170.667h170.667v85.333h-170.667v170.665z" />
+<glyph unicode="&#xe9a8;" glyph-name="plus-circle" d="M725.308 384.086h-170.667v-170.667h-85.333v170.667h-170.667v85.333h170.667v170.665h85.333v-170.665h170.667zM511.974 853.417c-235.648 0-426.667-191.018-426.667-426.665 0-235.652 191.019-426.667 426.667-426.667s426.667 191.014 426.667 426.667c0 235.646-191.019 426.665-426.667 426.665z" />
+<glyph unicode="&#xe9a9;" glyph-name="plus-network" d="M682.667 469.355v85.333h-128v128h-85.333v-128h-128v-85.333h128v-128h85.333v128h128zM725.333 810.667c47.061 0 85.333-38.229 85.333-85.333v-426.667c0-47.104-38.272-85.333-85.333-85.333h-170.667v-85.333h42.667c23.565 0 42.667-19.102 42.667-42.667h298.667v-85.333h-298.667c0-23.565-19.102-42.667-42.667-42.667h-170.667c-23.564 0-42.666 19.102-42.666 42.667h-298.667v85.333h298.667c0 23.565 19.102 42.667 42.666 42.667h42.667v85.333h-170.667c-47.189 0-85.333 38.229-85.333 85.333v426.667c0 47.104 38.144 85.333 85.333 85.333h426.667z" />
+<glyph unicode="&#xe9aa;" glyph-name="plus-one" d="M426.641 597.416v-170.668h170.667v-85.333h-170.667v-170.667h-85.333v170.667h-170.667v85.333h170.667v170.668h85.333zM618.641 679.332l192 46.080v-554.668h-85.333v452.268l-106.667-21.333v77.653z" />
+<glyph unicode="&#xe9ab;" glyph-name="plus" d="M810.641 384.086h-256v-256h-85.333v256h-256.002v85.333h256.002v255.998h85.333v-255.998h256v-85.333z" />
+<glyph unicode="&#xe9ac;" glyph-name="pocket" d="M938.667 426.667c0-235.639-191.027-426.667-426.667-426.667-235.642 0-426.667 191.027-426.667 426.667v320c0 58.91 47.756 106.666 106.667 106.666h640c58.91 0 106.667-47.756 106.667-106.666v-320zM677.722 586.866l-165.534-165.532-165.8 165.799c-24.993 24.993-65.516 24.993-90.509 0s-24.993-65.516 0-90.51l210.656-211.456c24.994-24.994 65.515-24.994 90.509 0l211.187 211.191c24.994 24.992 24.994 65.514 0 90.507s-65.515 24.993-90.509 0z" />
+<glyph unicode="&#xe9ad;" glyph-name="poll-box" d="M725.308 213.415h-85.333v170.667h85.333zM554.641 213.415h-85.333v426.668h85.333zM383.974 213.415h-85.333v298.668h85.333zM810.641 810.749h-597.334c-47.147 0-85.333-38.187-85.333-85.333v-597.335c0-47.083 38.187-85.333 85.333-85.333h597.334c47.104 0 85.333 38.251 85.333 85.333v597.335c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe9ae;" glyph-name="poll" d="M128-0v597.333h170.667v-597.333h-170.667zM426.666-0v853.333h170.667v-853.333h-170.667zM725.333-0v341.333h170.667v-341.333h-170.667z" />
+<glyph unicode="&#xe9af;" glyph-name="polymer" d="M810.641 768.084h-170.667l-336.853-538.967-111.147 197.636 192 341.331h-170.667l-192-341.331 192-341.333h170.667l336.854 538.964 111.147-197.631-192-341.333h170.667l192 341.333-192 341.331z" />
+<glyph unicode="&#xe9b0;" glyph-name="popcorn" d="M298.667-0h-95.999c0 0-32 0-39.954 57.668l-75.555 718.438-1.824 13.226c0 35.346 38.205 64 85.333 64 47.037 0 85.185-28.543 85.332-63.795 0.147 35.252 38.295 63.796 85.333 63.796 47.128 0 85.333-28.654 85.333-64 0 35.346 38.204 64 85.334 64 46.562 0 84.416-27.97 85.291-64.358l0.043 0.358c0 35.346 38.204 64 85.333 64 47.036 0 85.184-28.544 85.333-63.796 0.145 35.252 38.293 63.795 85.333 63.795 47.125 0 85.333-28.654 85.333-64l-1.826-13.225-75.554-718.438c-7.953-57.668-39.953-57.668-39.953-57.668h-522.667zM761.677 728.22c-12.732 23.337-43.311 39.779-79.010 39.779-34.428 0-69.79-15.292-86.345-37.315l-8.457-645.351h122.893l50.918 642.886zM427.678 730.684c-16.556 22.022-51.916 37.315-86.345 37.315-35.699 0-66.278-16.442-79.011-39.779l50.92-642.886h122.893l-8.457 645.35z" />
+<glyph unicode="&#xe9b1;" glyph-name="pound-box" d="M128 725.334c0 47.104 38.144 85.333 85.333 85.333h597.333c47.083 0 85.333-38.229 85.333-85.333v-597.333c0-47.104-38.251-85.333-85.333-85.333h-597.333c-47.189 0-85.333 38.229-85.333 85.333v597.333zM298.667 170.667h85.333l15.046 85.333h170.665l-15.044-85.333h85.333l15.044 85.333h85.333l15.049 85.333h-85.333l30.093 170.667h85.333l15.049 85.332h-85.338l15.049 85.334h-85.333l-15.049-85.334h-170.662l15.044 85.334h-85.332l-15.047-85.334h-85.333l-15.047-85.333h85.333l-30.093-170.667h-85.333l-15.047-85.333h85.333l-15.046-85.333zM444.186 512h170.667l-30.093-170.667h-170.667l30.093 170.667z" />
+<glyph unicode="&#xe9b2;" glyph-name="pound" d="M230.957 42.667l30.093 170.667h-170.666l15.046 85.333h170.667l45.139 256h-170.666l15.046 85.333h170.667l30.093 170.667h85.332l-30.092-170.667h255.999l30.093 170.667h85.333l-30.093-170.667h170.667l-15.044-85.333h-170.667l-45.141-255.999h170.667l-15.044-85.333h-170.667l-30.097-170.667h-85.333l30.097 170.667h-256.002l-30.093-170.667h-85.333zM406.569 554.667l-45.139-256h255.999l45.141 255.999h-256.001z" />
+<glyph unicode="&#xe9b3;" glyph-name="power-settings" d="M640-85.333h85.333v85.333h-85.333zM706.56 749.227l-61.867-61.867c73.813-44.8 123.307-125.44 123.307-218.027 0-141.227-114.773-256-256-256s-256 114.773-256 256c0 92.587 49.493 173.227 122.88 218.453l-61.44 61.44c-88.747-61.44-146.773-163.84-146.773-279.893 0-188.587 152.747-341.333 341.333-341.333s341.333 152.747 341.333 341.333c0 116.053-58.027 218.453-146.773 279.893zM554.667 853.334h-85.333v-426.667h85.333zM469.333-85.333h85.333v85.333h-85.333zM298.667-85.333h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xe9b4;" glyph-name="power-socket" d="M640 298.667h85.333v170.667h-85.333zM298.667 298.667h85.333v170.667h-85.333zM469.333 384h85.333v170.667h-85.333zM376.747 640h271.787l162.133-162.133v-264.533h-597.333v264.533zM341.333 725.334l-213.333-213.333v-384h768v384l-213.333 213.333h-341.333z" />
+<glyph unicode="&#xe9b5;" glyph-name="power" d="M706.56 706.56l-61.867-61.867c73.813-44.8 123.307-125.44 123.307-218.027 0-141.227-114.773-256-256-256s-256 114.773-256 256c0 92.587 49.493 173.227 122.88 218.453l-61.44 61.44c-88.747-61.44-146.773-163.84-146.773-279.893 0-188.587 152.747-341.333 341.333-341.333s341.333 152.747 341.333 341.333c0 116.053-58.027 218.453-146.773 279.893zM554.667 810.667h-85.333v-426.666h85.333z" />
+<glyph unicode="&#xe9b6;" glyph-name="presentation-play" d="M85.333 810.667h341.333c0 47.128 38.204 85.333 85.333 85.333s85.333-38.205 85.333-85.333h341.333v-85.333h-42.667v-469.333h-245.333l74.667-256h-85.333l-74.667 256h-106.667l-74.667-256h-85.333l74.667 256h-245.333v469.333h-42.667v85.333zM213.333 725.333v-384h597.333v384h-597.333zM505.754 432.913c-3.861-3.857-9.195-6.246-15.087-6.246-11.78 0-21.333 9.553-21.333 21.333v170.666c0 11.782 9.553 21.333 21.333 21.333 5.892 0 11.226-2.388 15.087-6.249l59.58-59.581c13.611-13.612 27.226-27.224 27.226-40.837s-13.615-27.225-27.226-40.836l-59.58-59.584z" />
+<glyph unicode="&#xe9b7;" glyph-name="presentation" d="M85.333 810.667h341.333c0 47.128 38.204 85.333 85.333 85.333s85.333-38.205 85.333-85.333h341.333v-85.333h-42.667v-469.333h-245.333l74.667-256h-85.333l-74.667 256h-106.667l-74.667-256h-85.333l74.667 256h-245.333v469.333h-42.667v85.333zM213.333 725.333v-384h597.333v384h-597.333z" />
+<glyph unicode="&#xe9b8;" glyph-name="printer-3d" d="M810.667 682.667c23.595 0 42.667 19.072 42.667 42.667s-19.072 42.667-42.667 42.667c-23.595 0-42.667-19.072-42.667-42.667s19.072-42.667 42.667-42.667zM810.667 853.333c70.699 0 128-57.301 128-128v-256h-170.641v170.584h-512l-0.026-170.584h-170.667v256c0 70.656 57.344 128 128 128h597.333zM767.974 160c0-16.265-9.101-30.4-22.485-37.602l-209.353-114.901c-6.869-4.727-15.194-7.497-24.162-7.497-8.973 0-17.297 2.769-24.166 7.501l-209.342 114.893c-13.389 7.198-22.492 21.342-22.492 37.606v224c0 16.265 9.103 30.409 22.492 37.606l209.342 104.228c6.869 4.73 15.194 7.499 24.166 7.499 8.969 0 17.293-2.769 24.166-7.498l209.348-104.233c13.385-7.202 22.485-21.338 22.485-37.602v-224zM512.013 441.562l-126.279-57.562 126.279-68.228 126.217 68.228-126.217 57.562zM341.307 184.965l128-69.193v126.123l-128 69.188v-126.118zM682.641 184.965v126.118l-128-69.188v-126.161l128 69.231z" />
+<glyph unicode="&#xe9b9;" glyph-name="printer" d="M767.974 810.749h-512v-170.667h512zM810.641 426.748c-23.595 0-42.667 19.072-42.667 42.667s19.072 42.668 42.667 42.668c23.595 0 42.667-19.073 42.667-42.668s-19.072-42.667-42.667-42.667zM682.641 128.081h-341.334v213.333h341.334zM810.641 597.416h-597.334c-70.656 0-128-57.344-128-128.001v-256h170.667v-170.667h512v170.667h170.667v256c0 70.7-57.301 128.001-128 128.001z" />
+<glyph unicode="&#xe9ba;" glyph-name="pulse" d="M128 384h119.089l183.819 350.119 50.287-381.983 136.836 174.512 142.647-142.648h135.322v-85.333h-170.667l-99.558 99.558-202.687-258.492-41.674 316.544-82.748-157.611h-170.667v85.333z" />
+<glyph unicode="&#xe9bb;" glyph-name="puzzle" d="M874.641 469.419h-64v170.665c0 47.104-38.229 85.333-85.333 85.333h-170.667v64c0 58.922-47.744 106.667-106.667 106.667s-106.667-47.745-106.667-106.667v-64h-170.667c-47.104 0-84.906-38.229-84.906-85.333l-0.129-162.131h63.702c63.616 0 115.2-51.584 115.2-115.2 0-63.62-51.584-115.204-115.2-115.204h-63.872l-0.128-162.129c0-47.108 38.229-85.333 85.333-85.333h162.133v64c0 63.616 51.584 115.2 115.201 115.2s115.2-51.584 115.2-115.2v-64h162.133c47.104 0 85.333 38.225 85.333 85.333v170.667h64c58.923 0 106.667 47.744 106.667 106.667 0 58.918-47.744 106.667-106.667 106.667z" />
+<glyph unicode="&#xe9bc;" glyph-name="qrcode" d="M213.334 725.334h85.333v-85.333h-85.333v85.333zM42.667 895.999h426.667v-426.665h-426.667v426.665zM128 810.666v-256h256v256h-256zM213.333 213.334h85.333v-85.333h-85.333v85.333zM42.667 384h426.667v-426.667h-426.667v426.667zM128 298.667v-256h256v256h-256zM725.333 725.333h85.333v-85.333h-85.333v85.333zM554.667 895.999h426.662v-426.665h-426.662v426.665zM640 810.666v-256h256v256h-256zM554.667 384h170.667v-85.333h85.333v85.333h170.667v-85.333h-170.667v-85.333h170.667v-256h-170.667v85.333h-170.667v-85.333h-85.333v85.333h85.333v85.333h-85.333v256zM896 42.667v85.333h-85.333v-85.333h85.333zM810.667 213.334h-85.333v85.333h-85.333v-170.667h170.667v85.333z" />
+<glyph unicode="&#xe9bd;" glyph-name="quadcopter" d="M234.667 896c106.039 0 192-85.961 192-192 0-37.57-10.791-72.62-29.442-102.218l4.448-4.448h220.655l4.446 4.448c-18.65 29.599-29.44 64.649-29.44 102.218 0 106.039 85.961 192 192 192s192-85.961 192-192c0-106.039-85.961-192-192-192-37.568 0-72.619 10.791-102.217 29.442l-47.117-47.115v-135.322l47.117-47.117c29.598 18.654 64.649 29.444 102.217 29.444 106.039 0 192-85.961 192-192s-85.961-192-192-192c-106.039 0-192 85.961-192 192 0 37.568 10.79 72.619 29.44 102.217l-4.446 4.45h-220.655l-4.448-4.45c18.651-29.598 29.442-64.649 29.442-102.217 0-106.039-85.961-192-192-192s-192 85.961-192 192c0 106.039 85.961 192 192 192 37.57 0 72.619-10.79 102.218-29.44l47.115 47.113v135.322l-47.116 47.114c-29.599-18.651-64.648-29.442-102.218-29.442-106.039 0-192 85.961-192 192s85.961 192 192 192zM234.666 810.666c-58.91 0-106.666-47.756-106.666-106.667s47.756-106.667 106.666-106.667c58.91 0 106.667 47.756 106.667 106.667s-47.756 106.667-106.667 106.667zM234.666 256c-58.91 0-106.666-47.757-106.666-106.667s47.756-106.667 106.666-106.667c58.91 0 106.667 47.757 106.667 106.667s-47.756 106.667-106.667 106.667zM789.333 810.666c-58.91 0-106.667-47.756-106.667-106.667s47.757-106.667 106.667-106.667c58.91 0 106.667 47.756 106.667 106.667s-47.757 106.667-106.667 106.667zM789.333 256c-58.91 0-106.667-47.757-106.667-106.667s47.757-106.667 106.667-106.667c58.91 0 106.667 47.757 106.667 106.667s-47.757 106.667-106.667 106.667zM166.861 202.556l48.276-27.87c5.403 4.169 12.177 6.647 19.529 6.647 17.673 0 32-14.327 32-32l-0.278-4.237 48.274-27.874-12.19-21.111-48.277 27.87c-5.403-4.169-12.177-6.647-19.529-6.647-17.673 0-32 14.327-32 32l0.278 4.237-48.274 27.874 12.19 21.111zM154.671 671.89l48.274 27.871-0.278 4.239c0 17.673 14.327 32 32 32 7.353 0 14.126-2.48 19.53-6.649l48.276 27.872 12.191-21.114-48.274-27.871 0.278-4.238c0-17.673-14.327-32-32-32-7.352 0-14.126 2.479-19.529 6.648l-48.276-27.873-12.191 21.115zM721.527 757.224l48.277-27.873c5.402 4.169 12.177 6.649 19.529 6.649 17.673 0 32-14.327 32-32l-0.277-4.239 48.273-27.871-12.19-21.114-48.277 27.872c-5.402-4.169-12.177-6.648-19.529-6.648-17.673 0-32 14.327-32 32l0.277 4.238-48.273 27.872 12.19 21.115zM709.338 117.223l47.996 32.111c0 17.673 14.327 32 32 32 7.351 0 14.127-2.479 19.529-6.647l48.277 27.87 12.19-21.111-47.996-32.111c0-17.673-14.327-32-32-32-7.351 0-14.127 2.479-19.529 6.647l-48.277-27.87-12.19 21.111z" />
+<glyph unicode="&#xe9be;" glyph-name="quality-high" d="M618.641 362.752h85.333v128h-85.333zM767.974 341.419c0-23.552-19.072-42.667-42.667-42.667h-32v-64h-64v64h-32c-23.595 0-42.667 19.115-42.667 42.667v170.665c0 23.552 19.072 42.667 42.667 42.667h128c23.595 0 42.667-19.114 42.667-42.667zM469.308 298.752h-64v85.333h-85.333v-85.333h-64v255.998h64v-106.665h85.333v106.665h64zM810.641 768.084h-597.333c-47.147 0-85.333-38.229-85.333-85.333v-511.998c0-47.108 38.187-85.333 85.333-85.333h597.333c47.104 0 85.333 38.225 85.333 85.333v511.998c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe9bf;" glyph-name="question-mark-circle" d="M512 853.334c-235.643 0-426.667-191.002-426.667-426.667s191.023-426.667 426.667-426.667c235.665 0 426.667 191.002 426.667 426.667s-191.002 426.667-426.667 426.667zM554.667 128h-85.333v85.333h85.333v-85.333zM642.846 458.509l-38.191-39.164c-30.882-30.886-49.988-56.678-49.988-120.678h-85.333v21.325c0 47.125 19.106 89.792 49.98 120.674l53.030 53.666c15.437 15.445 24.99 36.774 24.99 60.335 0 47.13-38.208 85.333-85.333 85.333s-85.333-38.204-85.333-85.333h-85.333c0 94.259 76.416 170.667 170.667 170.667 94.259 0 170.667-76.407 170.667-170.667 0-37.551-15.219-71.548-39.821-96.158z" />
+<glyph unicode="&#xe9c0;" glyph-name="quick-reply" d="M554.667 170.667l-298.667 298.667 298.667 298.667v-170.667c341.333 0 469.333-469.333 469.333-469.333s-128 213.333-469.333 213.333v-170.667zM298.667 170.667l-298.667 298.667 298.667 298.667v-128l-170.667-170.667 170.667-170.667v-128z" />
+<glyph unicode="&#xe9c1;" glyph-name="quicktime" d="M512 810.667c212.079 0 384-171.923 384-384 0-75.093-21.555-145.148-58.812-204.322l58.812-58.816v-78.195c0-23.565-19.102-42.667-42.667-42.667h-77.828l-58.957 58.957c-59.221-37.346-129.361-58.957-204.548-58.957-212.077 0-384 171.921-384 384 0 212.077 171.923 384 384 384zM512 640c-117.821 0-213.333-95.513-213.333-213.333s95.512-213.333 213.333-213.333c27.563 0 53.909 5.227 78.093 14.746l-123.034 123.034c-33.323 33.323-33.323 87.356 0 120.678 33.327 33.327 87.356 33.327 120.678 0l122.953-122.953c9.455 24.111 14.643 50.364 14.643 77.828 0 117.821-95.514 213.333-213.333 213.333z" />
+<glyph unicode="&#xe9c2;" glyph-name="rabbit" d="M938.667 192c0-35.345-28.655-64-64-64-24.666 0-46.071 13.952-56.759 34.398-19.063-41.643-22.494-85.798-16.29-116.954 9.050-45.444-33.617-45.444-33.617-45.444h-341.333c-42.667 0-85.333 0-92.445 21.333s21.333 64 92.445 85.333l37.453 8.73c-215.714 150.626 47.881 225.937 47.881 225.937-85.333 42.667-170.667-10.667-170.667-53.333 0-85.333 19.435-115.725 10.667-128-53.333-74.667-96-160-96-160h-106.667c-21.333 128 106.667 42.667 106.667 128 0 42.667 56.042 91.486 21.333 149.333-36.724 61.205-24.279 115.388-7 150.455-40.231 2.65-112.351 11.563-142.333 41.545-42.667 42.667 85.333 213.333 170.667 213.333 29.182 0 48.384-4.99 64.433-14.969l50.191 144.85c7.715 22.266 32.018 34.061 54.286 26.346 22.263-7.715 34.061-32.019 26.347-54.284l-32.299-93.206 85.645 49.446c20.403 11.782 46.498 4.79 58.283-15.617 11.78-20.407 4.791-46.502-15.616-58.284l-146.748-84.723 26.146-27.559c85.333-85.333 197.952-0.413 277.333-53.333 164.757-109.841 161.626-197.589 138.462-246.182 30.37-4.996 53.538-31.369 53.538-63.151zM244.499 600.067c-19.535-13.177-33.533-34.993-20.356-54.528s48.538-18.726 68.074-5.549c19.535 13.177 15.847 33.731 2.67 53.267s-30.852 19.988-50.388 6.811z" />
+<glyph unicode="&#xe9c3;" glyph-name="radiator" d="M339.257 811.151l-60.7-94.063 60.7-94.062-0.284-0.147-85.181-132-73.901 38.174 60.736 94.119-60.605 93.915 85.333 132.236 73.901-38.173zM595.255 815.16l-60.698-94.062 60.698-94.062-0.282-0.147-85.18-131.998-73.903 38.173 60.736 94.119-60.604 93.916 85.333 132.235 73.899-38.173zM852.642 815.16l-60.702-94.062 60.702-94.062-0.286-0.147-85.18-131.998-73.899 38.173 60.736 94.119-60.608 93.916 85.333 132.235 73.903-38.173zM85.333-0v341.333c0 47.13 38.205 85.333 85.333 85.333h682.667c47.13 0 85.333-38.204 85.333-85.333v-341.333h-85.333v85.333h-682.667v-85.333h-85.333zM256 341.334c-23.564 0-42.666-19.102-42.666-42.667v-85.333c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v85.333c0 23.565-19.102 42.667-42.667 42.667zM426.667 341.334c-23.564 0-42.667-19.102-42.667-42.667v-85.333c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v85.333c0 23.565-19.102 42.667-42.667 42.667zM597.333 341.334c-23.565 0-42.667-19.102-42.667-42.667v-85.333c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v85.333c0 23.565-19.102 42.667-42.667 42.667zM768 341.334c-23.565 0-42.667-19.102-42.667-42.667v-85.333c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667v85.333c0 23.565-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xe9c4;" glyph-name="radio-tower" d="M512 512c47.13 0 85.333-38.204 85.333-85.333 0-20.932-7.539-40.107-20.049-54.955l135.292-371.712h-90.807l-109.769 301.585-109.768-301.585h-90.81l135.293 371.712c-12.51 14.848-20.049 34.022-20.049 54.955 0 47.13 38.204 85.333 85.333 85.333zM512 597.334c-94.257 0-170.667-76.41-170.667-170.667 0-22.012 4.166-43.046 11.753-62.366l-37.197-102.195c-37.378 44.497-59.89 101.901-59.89 164.561 0 141.385 114.615 256 256 256s256-114.615 256-256c0-62.66-22.511-120.064-59.891-164.561l-37.197 102.195c7.586 19.319 11.755 40.354 11.755 62.366 0 94.257-76.412 170.667-170.667 170.667zM512 767.999c-188.513 0-341.333-152.82-341.333-341.332 0-100.634 43.548-191.095 112.828-253.568l-30.99-85.141c-101.642 77.986-167.171 200.695-167.171 338.709 0 235.641 191.025 426.666 426.667 426.666 235.639 0 426.667-191.025 426.667-426.666 0-138.014-65.527-260.723-167.172-338.709l-30.989 85.141c69.278 62.473 112.828 152.934 112.828 253.568 0 188.512-152.819 341.332-341.333 341.332z" />
+<glyph unicode="&#xe9c5;" glyph-name="radio" d="M853.333 682.667c47.13 0 85.333-38.205 85.333-85.333v-512c0-47.13-38.204-85.333-85.333-85.333h-682.667c-47.128 0-85.333 38.204-85.333 85.333v512c0 36.252 22.606 67.224 54.49 79.589l530.342 219.675 32.657-78.838-326.143-135.092h476.654zM853.333 597.333h-682.667v-170.666h512v85.333h85.333v-85.333h85.333v170.666zM298.667 341.334c-70.693 0-128-57.306-128-128s57.307-128 128-128c70.692 0 128 57.306 128 128s-57.308 128-128 128z" />
+<glyph unicode="&#xe9c6;" glyph-name="radioactive" d="M512 512c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333zM512-0c-83.324 0-161.072 23.885-226.766 65.186l142.154 213.231c24.939-14.263 53.824-22.417 84.612-22.417s59.674 8.154 84.612 22.417l142.153-213.231c-65.694-41.301-143.441-65.186-226.765-65.186zM85.333 426.667c0 176.826 107.567 328.529 260.836 393.242l95.145-237.856c-58.982-26.874-99.981-86.342-99.981-155.385h-256zM682.667 426.667c0 69.043-40.998 128.511-99.981 155.385l95.142 237.856c153.271-64.713 260.838-216.415 260.838-393.242h-256z" />
+<glyph unicode="&#xe9c7;" glyph-name="radiobox-blank" d="M511.974 85.415c-188.501 0-341.333 152.832-341.333 341.333 0 188.503 152.832 341.335 341.333 341.335s341.333-152.832 341.333-341.335c0-188.501-152.832-341.333-341.333-341.333zM511.974 853.416c-235.648 0-426.667-191.019-426.667-426.668 0-235.648 191.018-426.667 426.667-426.667s426.667 191.019 426.667 426.667c0 235.649-191.019 426.668-426.667 426.668z" />
+<glyph unicode="&#xe9c8;" glyph-name="radiobox-marked" d="M511.974 85.415c-188.501 0-341.333 152.832-341.333 341.333 0 188.503 152.832 341.335 341.333 341.335s341.333-152.832 341.333-341.335c0-188.501-152.832-341.333-341.333-341.333zM511.974 853.416c-235.648 0-426.667-191.019-426.667-426.668 0-235.648 191.019-426.667 426.667-426.667s426.667 191.019 426.667 426.667c0 235.649-191.019 426.668-426.667 426.668zM511.974 640.083c-117.845 0-213.333-95.488-213.333-213.335 0-117.845 95.488-213.333 213.333-213.333 117.803 0 213.333 95.488 213.333 213.333 0 117.847-95.531 213.335-213.333 213.335z" />
+<glyph unicode="&#xe9c9;" glyph-name="raspberrypi" d="M853.333 597.334h85.333v-85.333h-85.333v85.333zM170.667 725.334h682.667c47.13 0 85.333-38.205 85.333-85.333h-128v-85.333h-597.333v-170.666h128v-128h469.334v-42.667h128c0-47.13-38.204-85.333-85.333-85.333h-170.667v-42.667h-85.333v42.667h-128v-42.667h-170.667v42.667h-128c-47.128 0-85.333 38.204-85.333 85.333v426.667c0 47.128 38.205 85.333 85.333 85.333zM810.667 298.667h-426.667v213.333h426.667v-42.667h128v-85.333h-128v-85.333zM554.667 426.667v-85.333h85.333v85.333h-85.333zM213.333 682.667v-85.333h42.666v85.333h-42.666zM298.666 682.667v-85.333h42.667v85.333h-42.667zM384 682.667v-85.333h42.667v85.333h-42.667zM469.333 682.667v-85.333h42.667v85.333h-42.667zM554.667 682.667v-85.333h42.667v85.333h-42.667zM640 682.667v-85.333h42.667v85.333h-42.667zM853.333 341.334h85.333v-85.333h-85.333v85.333z" />
+<glyph unicode="&#xe9ca;" glyph-name="rdio" d="M823.121 475.973c2.355-16.149 3.58-32.585 3.58-49.306 0-196.753-166.144-356.267-371.145-356.267-204.914 0-371.077 159.514-371.077 356.267s166.163 356.267 371.077 356.267c40.209 0 78.912-6.176 115.174-17.576l0.068-215.28c0 0-110.588 60.518-209.467-10.545-98.89-70.967-80.279-145.454-80.279-145.454s4.627-117.615 144.16-117.615c156.018 0 200.212 142.033 200.212 142.033v324.82c30.097-14.82 58.065-33.441 84.932-54.438 66.334-41.041 135.249-67.453 214.054-65.458 0 0 15.108 3.231 15.108-26.791 0-16.245-5.807-34.867-22.097-52.442 0 0-31.010-46.267-94.302-68.215z" />
+<glyph unicode="&#xe9cb;" glyph-name="read" d="M921.165 444.16l60.169-60.16-404.907-405.333-217.173 217.173 60.16 60.16 156.587-157.013 345.165 345.173zM170.667 256v554.667h213.333c94.255 0 170.667-76.41 170.667-170.667 0-65.752-37.184-122.82-91.669-151.321l134.336-232.678h-85.333l-123.168 213.333h-132.832v-213.333h-85.333zM256 554.667h128c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333h-128v-170.667z" />
+<glyph unicode="&#xe9cc;" glyph-name="readability" d="M512 768c134.383 0 248.034-101.428 285.542-240.952-28.442-21.503-47.625-54.612-50.5-92.279l-7.846-89.702c-75.733 37.828-151.462 74.487-227.196 74.487-75.682 0-151.364-36.612-227.046-74.411l-7.997 91.409c-2.864 37.491-21.878 70.464-50.099 91.975 37.912 138.761 151.235 239.473 285.141 239.473zM727.671 213.334h-431.185l-9.446 107.964c74.986 37.427 149.972 73.37 224.959 73.37 75.038 0 150.071-35.989 225.109-73.446l-9.438-107.887zM213.333 128v42.667l-54.703 149.734-9.297-0.401c-58.91 0-106.667 47.757-106.667 106.667s47.756 106.666 106.667 106.666c56.133 0 102.14-43.362 106.352-98.415l21.648-264.252v-42.667h-64zM810.667 128h-64v42.667l21.649 264.252c4.211 55.053 50.219 98.415 106.351 98.415 58.91 0 106.667-47.757 106.667-106.667s-47.757-106.667-106.667-106.667l-9.297 0.401-54.703-149.734v-42.667z" />
+<glyph unicode="&#xe9cd;" glyph-name="receipt" d="M127.974 0.086l64 64 64-64 64 64 64-64 64 64 64-64 64 64 64-64 64 64 64-64 64 64 64-64v853.331l-64-64-64 64-64-64-64 64-64-64-64 64-64-64-64 64-64-64-64 64-64-64-64 64zM767.974 554.75h-512v85.333h512zM767.974 384.086h-512v85.333h512zM767.974 213.419h-512v85.333h512v-85.333z" />
+<glyph unicode="&#xe9ce;" glyph-name="recycle" d="M931.162 280.559l-106.667-184.751c-20.949-36.288-59.998-55.607-99.162-53.141h-85.333v-85.333l-106.667 192 106.667 192v-85.333h120.299l-94.771 164.147 184.755 106.666 76.826-133.068c22.17-32.764 25.165-76.625 4.053-113.186zM392.949 807.957h213.332c41.903 0 78.161-24.159 95.603-59.308l42.667-73.901 73.903 42.667-112.947-188.376-219.605-3.624 73.899 42.667-60.151 104.183-94.768-164.147-184.752 106.667 76.826 133.067c17.29 35.58 53.778 60.105 95.995 60.105zM215.631 95.749l-106.667 184.751c-20.95 36.288-18.157 79.765 3.56 112.448l42.667 73.903-73.901 42.667 219.611-3.627 112.943-188.373-73.901 42.667-60.15-104.183h189.54v-213.333h-153.652c-39.458-2.816-78.942 16.521-100.050 53.082z" />
+<glyph unicode="&#xe9cf;" glyph-name="reddit" d="M384 437.334c29.455 0 53.333-23.876 53.333-53.333s-23.878-53.333-53.333-53.333c-29.455 0-53.333 23.876-53.333 53.333s23.878 53.333 53.333 53.333zM640 437.334c29.453 0 53.333-23.881 53.333-53.333 0-29.457-23.881-53.333-53.333-53.333-29.457 0-53.333 23.876-53.333 53.333 0 29.453 23.876 53.333 53.333 53.333zM810.667 810.667c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.205-85.329 86.223l-146.906 39.363-45.197-168.67c87.812-3.457 167.77-28.221 230.135-67.256 18.551 15.605 42.492 25.007 68.629 25.007 58.91 0 106.667-47.756 106.667-106.666 0-36.634-18.466-68.954-46.601-88.158l3.934-39.842c0-153.169-171.921-277.333-384-277.333-212.077 0-384 124.164-384 277.333l3.933 39.842c-28.133 19.204-46.6 51.524-46.6 88.158 0 58.91 47.756 106.667 106.667 106.667 26.138 0 50.080-9.401 68.629-25.007 61.958 38.781 141.281 63.476 228.416 67.186l53.696 200.39c3.051 11.38 14.746 18.134 26.129 15.085l167.548-44.895c14.673 25.823 42.428 43.241 74.249 43.241zM810.667 768c-23.565 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.103 42.667 42.667s-19.102 42.667-42.667 42.667zM512 554.667c-188.513 0-341.333-105.062-341.333-234.667s152.82-234.667 341.333-234.667c188.514 0 341.333 105.062 341.333 234.667s-152.819 234.667-341.333 234.667zM192 512c-35.346 0-64-28.655-64-64 0-17.19 6.775-32.794 17.801-44.292 16.315 37.265 43.232 71.121 78.194 99.733-9.413 5.444-20.34 8.559-31.996 8.559zM896 448c0 35.345-28.655 64-64 64-11.657 0-22.583-3.115-31.996-8.559 34.961-28.612 61.879-62.468 78.195-99.733 11.025 11.499 17.801 27.102 17.801 44.292zM374.775 241.515c51.892-38.848 222.558-38.848 274.449 0 9.651 6.758 22.95 4.412 29.709-5.239s4.412-22.955-5.239-29.713c-76.361-46.562-247.027-46.562-323.392 0.004-9.651 6.754-11.997 20.058-5.239 29.709s20.060 11.998 29.711 5.239z" />
+<glyph unicode="&#xe9d0;" glyph-name="redo-variant" d="M448 640c-153.167 0-277.333-124.166-277.333-277.333 0-153.169 124.166-277.333 277.333-277.333h149.333v85.333h-149.333c-106.039 0-192 85.961-192 192s85.961 192 192 192h241.92l-131.413-131.84 60.16-60.16 234.667 234.667-234.667 234.665-60.587-60.16 131.84-131.838h-241.92zM768 170.667h-85.333v-85.333h85.333v85.333z" />
+<glyph unicode="&#xe9d1;" glyph-name="redo" d="M785.067 486.4c-78.933 68.693-181.333 110.933-294.4 110.933-198.4 0-366.080-129.28-424.96-308.053l100.693-33.28c44.8 136.107 172.8 234.667 324.267 234.667 83.2 0 159.147-30.72 218.453-80.213l-154.453-154.453h384v384l-153.6-153.6z" />
+<glyph unicode="&#xe9d2;" glyph-name="refresh" d="M753.067 667.734c-61.867 61.867-146.773 100.267-241.067 100.267-188.587 0-340.907-152.747-340.907-341.333s152.32-341.333 340.907-341.333c159.147 0 291.84 108.8 329.813 256h-88.747c-34.987-99.413-129.707-170.667-241.067-170.667-141.227 0-256 114.773-256 256s114.773 256 256 256c70.827 0 133.973-29.44 180.053-75.947l-137.387-137.387h298.667v298.667l-100.267-100.267z" />
+<glyph unicode="&#xe9d3;" glyph-name="relative-scale" d="M853.303 170.748l-682.667-0.043v512.044h682.667zM853.303 768.083h-682.667c-47.147 0-85.333-38.187-85.333-85.333v-512.001c0-47.147 38.186-85.333 85.333-85.333h682.667c47.104 0 85.333 38.187 85.333 85.333v512.001c0 47.147-38.229 85.333-85.333 85.333zM511.97 512.083h-85.333v-85.335h85.333zM341.303 512.083h-85.333v-85.335h85.333zM682.637 341.415h-85.333v-85.333h85.333zM682.637 512.083h-85.333v-85.335h85.333v85.335z" />
+<glyph unicode="&#xe9d4;" glyph-name="reload" d="M810.317 426.816h141.798l-211.191-211.187-211.187 211.187h194.291c0.303 65.472-23.531 130.939-73.613 181.021-99.861 99.862-262.176 99.862-362.039 0-99.862-99.86-99.862-262.177 0-362.039 78.743-78.741 196.108-95.339 291.139-49.779l62.754-62.754c-130.944-77.231-301.699-60.339-414.233 52.194-133.351 133.35-133.049 349.065 0.302 482.416 133.349 133.348 349.065 133.652 482.416 0.302 66.675-66.675 99.563-153.866 99.563-241.361z" />
+<glyph unicode="&#xe9d5;" glyph-name="remote" d="M512 938.667c-129.707 0-247.040-52.48-331.947-137.387l60.16-60.16c69.547 69.12 165.547 112.213 271.787 112.213s202.24-43.093 271.36-112.64l60.16 60.16c-84.48 85.333-201.813 137.813-331.52 137.813zM300.8 680.534l60.16-60.16c38.827 38.4 92.16 62.293 151.040 62.293s112.213-23.893 151.040-62.293l60.16 60.16c-54.187 54.187-128.853 87.467-211.2 87.467s-157.013-33.28-211.2-87.467zM512 298.667c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333zM640 554.667h-256c-23.467 0-42.667-19.2-42.667-42.667v-512c0-23.467 19.2-42.667 42.667-42.667h256c23.467 0 42.667 19.2 42.667 42.667v512c0 23.467-19.2 42.667-42.667 42.667z" />
+<glyph unicode="&#xe9d6;" glyph-name="rename-box" d="M767.974 213.415h-320l85.333 85.333h234.667zM255.974 213.415v105.6l336.128 336.129c8.363 8.363 21.845 8.363 30.208 0l75.392-75.392c8.363-8.32 8.363-21.845 0-30.165l-336.128-336.172zM810.641 810.749h-597.334c-47.147 0-85.333-38.229-85.333-85.333v-597.335c0-47.104 38.186-85.333 85.333-85.333h597.334c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe9d7;" glyph-name="repeat-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-128 128h-372.544v-128l-170.667 170.667 170.667 170.667v-128h287.211l-287.211 287.211v-31.211h-85.333v116.545l-128 128zM725.333 384h85.333v-178.231l-85.333 85.333v92.898zM725.333 725.333v128l170.667-170.667-170.667-170.666v128h-348.899l-85.333 85.333h434.232z" />
+<glyph unicode="&#xe9d8;" glyph-name="repeat-once" d="M554.667 298.667v256h-42.667l-85.333-42.667v-42.667h64v-170.667zM725.333 213.334h-426.667v128l-170.667-170.667 170.667-170.667v128h512v256h-85.333zM298.667 640h426.667v-128l170.667 170.667-170.667 170.667v-128h-512v-256h85.333v170.667z" />
+<glyph unicode="&#xe9d9;" glyph-name="repeat" d="M725.333 213.334h-426.667v128l-170.667-170.667 170.667-170.667v128h512v256h-85.333zM298.667 640h426.667v-128l170.667 170.667-170.667 170.667v-128h-512v-256h85.333v170.667z" />
+<glyph unicode="&#xe9da;" glyph-name="replay" d="M512 725.334v170.667l-213.333-213.333 213.333-213.333v170.667c141.227 0 256-114.773 256-256s-114.773-256-256-256c-141.227 0-256 114.773-256 256h-85.333c0-188.587 152.747-341.333 341.333-341.333s341.333 152.747 341.333 341.333c0 188.587-152.747 341.333-341.333 341.333z" />
+<glyph unicode="&#xe9db;" glyph-name="reply-all" d="M554.667 554.667v170.667l-298.667-298.667 298.667-298.667v174.933c213.333 0 362.667-68.267 469.333-217.6-42.667 213.333-170.667 426.667-469.333 469.333zM298.667 597.334v128l-298.667-298.667 298.667-298.667v128l-170.667 170.667 170.667 170.667z" />
+<glyph unicode="&#xe9dc;" glyph-name="reply" d="M426.667 554.667v170.667l-298.667-298.667 298.667-298.667v174.933c213.333 0 362.667-68.267 469.333-217.6-42.667 213.333-170.667 426.667-469.333 469.333z" />
+<glyph unicode="&#xe9dd;" glyph-name="reproduction" d="M542.929 377.438l38.165 38.17c-0.969 53.133 29.581 120.086 85.414 175.921 83.311 83.312 191.373 110.327 241.361 60.34 49.984-49.987 22.972-158.049-60.339-241.36-55.838-55.834-122.79-86.383-175.927-85.414l-38.165-38.165c-14.391-14.391-36.506-16.354-53.001-5.884-35.959-12.877-69.090-28.578-87.403-59.098-22.63-37.713-22.63-98.052-46.515-134.507-23.883-36.454-71.652-49.028-121.935-49.028s-111.251 4.254-155.878 67.81l105.594-17.523c24.366-3.366 87.996 22.626 111.88 59.081s23.885 96.794 46.51 134.507c20.066 33.442 57.924 49.092 97.801 62.724-0.614 11.661 3.533 23.522 12.437 32.427zM298.667 853.333c117.821 0 213.333-95.512 213.333-213.333s-95.513-213.333-213.333-213.333c-117.821 0-213.333 95.512-213.333 213.333s95.512 213.333 213.333 213.333zM298.667 768c-70.693 0-128-57.308-128-128s57.307-128 128-128c70.692 0 128 57.307 128 128s-57.308 128-128 128z" />
+<glyph unicode="&#xe9de;" glyph-name="resize-bottom-right" d="M938.667-0h-85.333v85.333h85.333v-85.333zM938.667 170.667h-85.333v85.333h85.333v-85.333zM768-0h-85.333v85.333h85.333v-85.333zM768 170.667h-85.333v85.333h85.333v-85.333zM597.333-0h-85.333v85.333h85.333v-85.333zM938.667 341.334h-85.333v85.333h85.333v-85.333z" />
+<glyph unicode="&#xe9df;" glyph-name="responsive" d="M170.667 682.667v-426.667l213.346-0.068v170.654c0 47.125 38.205 85.333 85.333 85.333h213.333c47.13 0 85.333-38.208 85.333-85.333v-170.586h85.321v426.667h-682.667zM0 85.334v85.333h170.667c-47.147 0-85.333 38.229-85.333 85.333v426.667c0 47.104 38.187 85.333 85.333 85.333h682.667c47.104 0 85.333-38.229 85.333-85.333l-0.427-426.667c0-47.104-37.803-85.333-84.907-85.333h170.667v-85.333l-255.987-0.081c0-47.13-38.204-85.333-85.333-85.333h-213.333c-47.128 0-85.333 38.204-85.333 85.333v0.009l-384.013 0.073zM490.679 85.253c-11.78 0-21.333-9.553-21.333-21.333 0-11.785 9.553-21.333 21.333-21.333s21.333 9.549 21.333 21.333c0 11.78-9.553 21.333-21.333 21.333zM661.346 85.253c-11.78 0-21.333-9.553-21.333-21.333 0-11.785 9.553-21.333 21.333-21.333s21.333 9.549 21.333 21.333c0 11.78-9.553 21.333-21.333 21.333zM554.679 85.253v-42.667h42.667v42.667h-42.667zM469.346 426.586v-298.667h213.333v298.667h-213.333z" />
+<glyph unicode="&#xe9e0;" glyph-name="restore" d="M213.333 810.667h469.333v-85.333h-469.333v-512h-85.333v512c0 47.128 38.205 85.333 85.333 85.333zM384 640h426.667c47.13 0 85.333-38.205 85.333-85.333v-426.667c0-47.13-38.204-85.333-85.333-85.333h-426.667c-47.128 0-85.333 38.204-85.333 85.333v426.667c0 47.128 38.205 85.333 85.333 85.333zM384 554.667v-426.667h426.667v426.667h-426.667z" />
+<glyph unicode="&#xe9e1;" glyph-name="rewind" d="M490.641 426.752l362.667-256v511.998zM469.308 170.752v511.998l-362.666-255.998 362.666-256z" />
+<glyph unicode="&#xe9e2;" glyph-name="ribbon" d="M572.331 114.71l135.296-135.292 60.331 60.331-135.296 135.292zM662.827 446.575l-150.869-150.827-150.827 150.827c-38.613 38.613-62.507 91.946-62.507 150.824 0 117.846 95.531 213.333 213.334 213.333 117.845 0 213.333-95.487 213.333-213.333 0-58.878-23.851-112.21-62.464-150.824zM720.981 384.064c55.339 54.234 89.643 129.795 89.643 213.335 0 164.95-133.717 298.666-298.667 298.666s-298.667-133.716-298.667-298.666c0-83.539 34.432-159.020 89.728-213.202l-0.085-0.132 148.694-148.693-195.67-195.622 60.331-60.331 404.694 404.646z" />
+<glyph unicode="&#xe9e3;" glyph-name="road" d="M469.333 256h85.333v-170.667h-85.333zM469.333 512h85.333v-170.667h-85.333zM469.333 768h85.333v-170.667h-85.333zM170.667-0h682.667v853.333h-682.667v-853.333z" />
+<glyph unicode="&#xe9e4;" glyph-name="rocket" d="M119.791 336.158l120.68 120.678 108.245 21.649c137.257 186.7 400.22 280.050 495.153 280.050 0-94.933-93.35-357.895-280.051-495.154l-21.649-108.245-120.679-120.678-30.17 150.848c-60.34 0-60.34 0-90.51 30.174-30.17 30.17-30.17 30.17-30.17 90.509l-150.85 30.17zM240.471 215.48l60.34-60.343-113.673-113.673h-60.34v60.339l113.674 113.677zM180.131 275.819l52.797-7.543-104.3-104.303v60.343l51.503 51.503zM353.608 147.597l7.543-52.8-51.504-51.503h-60.34l104.301 104.303zM554.667 533.334c-35.345 0-64-28.655-64-64s28.655-64 64-64c35.345 0 64 28.655 64 64s-28.655 64-64 64z" />
+<glyph unicode="&#xe9e5;" glyph-name="rotate-3d" d="M512 725.334c212.079 0 384-114.615 384-256 0-71.693-44.203-136.499-115.43-182.972 45.581 37.171 72.764 84.036 72.764 134.972 0 120.766-152.819 218.667-341.333 218.667v-128l-170.667 170.667 170.667 170.667v-128zM512 128c-212.078 0-384 114.615-384 256 0 71.693 44.204 136.499 115.431 182.972-45.581-37.17-72.765-84.036-72.765-134.972 0-120.768 152.82-218.667 341.333-218.667v128l170.667-170.667-170.667-170.667v128z" />
+<glyph unicode="&#xe9e6;" glyph-name="rotate-left-variant" d="M170.667 853.334h128c47.128 0 85.333-38.205 85.333-85.333v-682.667c0-47.13-38.205-85.333-85.333-85.333h-128c-47.128 0-85.333 38.204-85.333 85.333v682.667c0 47.128 38.205 85.333 85.333 85.333zM853.333 298.667c47.13 0 85.333-38.204 85.333-85.333v-128c0-47.13-38.204-85.333-85.333-85.333h-384v298.667h384zM597.333 768c188.501 0 341.333-152.832 341.333-341.333l-2.679-42.667h-86.221l3.567 42.667c0 141.397-114.603 256-256 256v-128l-170.667 170.666 170.667 170.667v-128z" />
+<glyph unicode="&#xe9e7;" glyph-name="rotate-left" d="M554.667 765.014v130.987l-194.133-194.133 194.133-189.867v166.827c121.173-20.48 213.333-125.44 213.333-252.16s-92.16-231.68-213.333-252.16v-86.187c168.533 20.907 298.667 164.267 298.667 338.347s-130.133 317.44-298.667 338.347zM302.933 157.014c49.493-38.4 107.093-61.44 166.4-68.693v86.613c-37.12 6.4-72.96 20.907-104.96 43.947l-61.44-61.867zM259.84 384h-86.187c7.253-59.307 30.72-116.48 69.12-165.973l60.16 60.587c-22.187 32-37.12 67.84-43.093 105.387zM303.36 574.72l-60.16 60.587c-38.4-49.493-62.293-106.667-69.547-165.973h86.187c5.973 37.12 20.907 73.387 43.52 105.387z" />
+<glyph unicode="&#xe9e8;" glyph-name="rotate-right-variant" d="M426.667 768v128l170.667-170.666-170.667-170.667v128c-141.397 0-256-114.603-256-256l3.565-42.667h-86.22l-2.679 42.667c0 188.501 152.832 341.333 341.333 341.333zM725.333 853.333h128c47.13 0 85.333-38.205 85.333-85.333v-682.666c0-47.13-38.204-85.333-85.333-85.333h-128c-47.13 0-85.333 38.204-85.333 85.333v682.666c0 47.128 38.204 85.333 85.333 85.333zM170.667 298.667h384v-298.667h-384c-47.128 0-85.333 38.204-85.333 85.333v128c0 47.13 38.205 85.333 85.333 85.333z" />
+<glyph unicode="&#xe9e9;" glyph-name="rotate-right" d="M720.64 278.187l60.587-60.16c38.4 49.493 61.867 106.667 69.12 165.973h-86.187c-5.973-37.12-20.48-73.387-43.52-105.813zM554.667 174.934v-86.187c59.307 7.253 116.907 30.293 166.4 68.693l-61.44 61.44c-32-23.040-67.84-37.973-104.96-43.947zM850.347 469.334c-7.253 59.307-30.72 116.48-69.12 165.973l-60.587-60.587c23.040-32 37.547-68.267 43.52-105.387zM663.467 701.867l-194.133 194.133v-130.987c-168.107-20.907-298.667-164.267-298.667-338.347s130.133-317.44 298.667-338.347v86.187c-121.173 20.48-213.333 125.44-213.333 252.16s92.16 231.68 213.333 252.16v-166.827l194.133 189.867z" />
+<glyph unicode="&#xe9ea;" glyph-name="routes" d="M469.333 512h-256l-85.333 85.333 85.333 85.333h256v128l42.667 42.666 42.667-42.666v-42.667h256l85.333-85.333-85.333-85.333h-256v-85.333h256l85.333-85.333-85.333-85.333h-256v-256c47.13 0 85.333-38.204 85.333-85.333h-256c0 47.13 38.205 85.333 85.333 85.333v426.667z" />
+<glyph unicode="&#xe9eb;" glyph-name="rss-box" d="M213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM320 298.667c-35.346 0-64-28.655-64-64s28.654-64 64-64c35.346 0 64 28.655 64 64s-28.654 64-64 64zM256 512v-85.333c141.385 0 256-114.615 256-256h85.333c0 188.514-152.819 341.333-341.333 341.333zM256 682.667v-85.333c235.64 0 426.667-191.027 426.667-426.666h85.333c0 282.769-229.231 512-512 512z" />
+<glyph unicode="&#xe9ec;" glyph-name="ruler" d="M59.452 155.136l75.425 75.426 60.34-60.339 45.255 45.257-60.34 60.339 60.34 60.339 105.595-105.596 45.254 45.257-105.594 105.591 60.34 60.339 60.34-60.339 45.255 45.257-60.34 60.339 60.34 60.34 105.596-105.597 45.252 45.257-105.596 105.595 60.343 60.339 60.339-60.34 45.252 45.255-60.339 60.34 60.339 60.34 105.596-105.594 45.257 45.254-105.596 105.595 75.426 75.425 181.018-181.019-724.077-724.077-181.019 181.018z" />
+<glyph unicode="&#xe9ed;" glyph-name="run" d="M730.334 512.083l-45.824 77.398-31.275-122.37 106.197-193.707v-273.323h-76.8v213.333l-99.456 132.608-68.092-192.431-205.755-89.596-44.797 64.004 178.944 105.493 107.187 420.414-89.899-28.032v-156.461h-76.8v221.868l231.467 72.192 20.949 3.072c26.539 0 49.749-14.251 62.379-35.542l85.333-142.122h154.539v-76.8h-208.299zM725.299 776.616c-42.453 0-76.8 34.432-76.8 76.757 0 42.496 34.347 76.844 76.8 76.844 42.325 0 76.8-34.347 76.8-76.844 0-42.324-34.475-76.757-76.8-76.757zM298.667 554.667v-85.333h-128c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667h128zM394.667 384l-21.333-85.333h-160c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667h181.333zM298.667 725.334v-85.333h-170.667c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667h170.667z" />
+<glyph unicode="&#xe9ee;" glyph-name="sale" d="M795.75 817.211l26.121-164.931 149.551-76.199-75.81-148.786 76.198-149.551-151.002-76.937-26.078-164.651-165.777 26.257-118.076-118.080-118.684 118.686-164.932-26.125-26.256 165.777-148.787 75.81 76.199 149.551-75.811 148.787 149.804 76.329 25.868 163.325 164.932-26.123 118.682 118.683 118.080-118.078 165.777 26.257zM405.333 640c-35.346 0-64-28.654-64-64s28.654-64 64-64c35.345 0 64 28.654 64 64s-28.655 64-64 64zM618.667 341.334c-35.345 0-64-28.655-64-64s28.655-64 64-64c35.345 0 64 28.655 64 64s-28.655 64-64 64zM359.006 213.334l366.327 366.327-60.339 60.34-366.327-366.327 60.34-60.339z" />
+<glyph unicode="&#xe9ef;" glyph-name="satellite-variant" d="M495.842 895.372l241.361-241.359-90.509-90.51-90.513 90.51-60.339-60.34 99.345-99.345-49.673-49.673 19.597-19.597c39.501 18.453 87.974 11.371 120.589-21.239l-150.852-150.852c-32.61 32.614-39.693 81.088-21.239 120.589l-19.597 19.597-49.673-49.673-99.345 99.345-60.34-60.339 90.51-90.513-90.51-90.509-241.359 241.361 90.51 90.509 90.51-90.509 60.34 60.339-120.68 120.679c-33.325 33.325-33.324 87.355 0 120.68l30.17 30.17c33.325 33.325 87.355 33.325 120.679 0l120.68-120.679 60.339 60.34-90.509 90.51 90.509 90.51zM768 341.334c0-94.255-76.412-170.667-170.667-170.667v85.333c47.13 0 85.333 38.204 85.333 85.333h85.333zM938.667 341.334c0-188.514-152.819-341.333-341.333-341.333v85.333c141.385 0 256 114.615 256 256h85.333z" />
+<glyph unicode="&#xe9f0;" glyph-name="satellite" d="M213.303 170.748l149.333 192 106.667-128.256 149.333 192.256 192-256zM213.303 426.748v85.335c117.845 0 213.333 95.957 213.333 213.76h85.333c0-164.949-133.717-299.095-298.667-299.095zM213.303 725.843h128c0-70.699-57.302-128.427-128-128.427zM810.637 810.749h-597.333c-47.104 0-85.333-38.187-85.333-85.333v-597.335c0-47.147 38.229-85.333 85.333-85.333h597.333c47.104 0 85.333 38.187 85.333 85.333v597.335c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xe9f1;" glyph-name="scale-bathroom" d="M213.333 853.334h597.333c47.13 0 85.333-38.205 85.333-85.333v-682.667c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v682.667c0 47.128 38.205 85.333 85.333 85.333zM512 768c-94.257 0-170.667-76.41-170.667-170.667h139.149l-17.604 118.272 87.637-118.272h132.151c0 94.257-76.412 170.667-170.667 170.667zM213.333 512v-426.667h597.333v426.667h-597.333z" />
+<glyph unicode="&#xe9f2;" glyph-name="scale" d="M361.022 296.209l-60.34-60.339-58.522 58.522c-36.593-47.164-61.094-104.179-68.852-166.391h82.692v-85.333h-170.666v42.667c0 206.417 146.582 378.598 341.333 418.133v85.333l-341.333 136.533v85.333h853.333v-85.333l-341.333-136.533v-85.333c194.752-39.535 341.333-211.716 341.333-418.133v-42.667h-170.667v85.333h82.692c-7.757 62.217-32.26 119.228-68.851 166.391l-58.522-58.522-60.339 60.339 58.577 58.577c-47.262 36.809-104.457 61.453-166.891 69.239v-82.692h-85.333v82.692c-62.432-7.787-119.629-32.431-166.889-69.239l58.577-58.577zM512 170.667c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333c-13.534 0-26.334 3.149-37.7 8.759l-164.215 76.574 164.22 76.574c11.366 5.611 24.162 8.759 37.696 8.759z" />
+<glyph unicode="&#xe9f3;" glyph-name="school" d="M511.974 810.749l-469.334-256 469.334-256.001 384 209.451v-294.784h85.333v341.335zM213.307 376.316v-170.667l298.667-162.901 298.667 162.901v170.667l-298.667-162.901-298.667 162.901z" />
+<glyph unicode="&#xe9f4;" glyph-name="screen-rotation-lock" d="M716.8 832c0 40.107 32.427 72.533 72.533 72.533s72.533-32.427 72.533-72.533v-21.333h-145.067v21.333zM682.667 554.667h213.333c23.467 0 42.667 19.2 42.667 42.667v170.667c0 23.467-19.2 42.667-42.667 42.667v21.333c0 58.88-47.787 106.667-106.667 106.667s-106.667-47.787-106.667-106.667v-21.333c-23.467 0-42.667-19.2-42.667-42.667v-170.667c0-23.467 19.2-42.667 42.667-42.667zM361.387 64.854c-139.52 65.707-239.36 201.387-254.72 361.813h-64c21.76-262.827 241.493-469.333 509.867-469.333l28.16 1.28-162.56 162.987-56.747-56.747zM992 393.814l-109.653 109.653-60.16-60.16 94.72-94.72-241.493-241.493-482.987 482.987 241.493 241.493 89.6-89.6 60.16 60.16-104.533 104.533c-25.173 25.173-65.707 25.173-90.453 0l-271.36-271.36c-25.173-25.173-25.173-65.707 0-90.453l512.853-512.853c25.173-25.173 65.707-25.173 90.453 0l271.36 271.36c25.173 25.173 25.173 65.707 0 90.453z" />
+<glyph unicode="&#xe9f5;" glyph-name="screen-rotation" d="M320.853 22.187c-139.52 65.707-239.36 201.387-254.72 361.813h-64c21.76-262.827 241.493-469.333 509.867-469.333l28.16 1.28-162.56 162.56zM632.747 34.56l-512.853 512.853 271.36 271.36 512.853-512.853zM436.48 864c-25.173 25.173-65.707 25.173-90.453 0l-271.36-271.36c-25.173-25.173-25.173-65.707 0-90.453l512.853-512.853c25.173-25.173 65.707-25.173 90.453 0l271.36 271.36c25.173 25.173 25.173 65.707 0 90.453l-512.853 512.853zM703.147 831.147c139.52-66.133 239.36-201.387 254.72-361.813h64c-21.76 262.827-241.493 469.333-509.867 469.333l-28.16-1.28 162.56-162.56 56.747 56.32z" />
+<glyph unicode="&#xe9f6;" glyph-name="script" d="M597.333 85.334c47.13 0 85.333 38.204 85.333 85.333v554.667h-298.667c-23.564 0-42.667-19.103-42.667-42.667v-426.667h-128v469.333c0 70.692 57.309 128 128.002 128h469.332c70.69 0 128-57.308 128-128v-42.666h-170.667v-554.667c0-70.694-57.31-128-128-128h-426.667c-70.692 0-128 57.306-128 128v42.667h426.667c0-47.13 38.204-85.333 85.333-85.333z" />
+<glyph unicode="&#xe9f7;" glyph-name="security-network" d="M554.667 170.667h42.667c23.565 0 42.667-19.102 42.667-42.667h298.667v-85.333h-298.667c0-23.565-19.102-42.667-42.667-42.667h-170.667c-23.564 0-42.666 19.102-42.666 42.667h-298.667v85.333h298.667c0 23.565 19.102 42.667 42.666 42.667h42.667v70.839c-124.86 51.456-213.333 185.152-213.333 327.383v170.667l256 113.778 256-113.778v-170.667c0-142.226-88.495-275.922-213.333-327.383v-70.839zM512 768l-170.667-72.296v-141.037h170.667v213.333zM512 554.667v-256c81.604 19.977 170.667 125.581 170.667 213.333v42.667h-170.667z" />
+<glyph unicode="&#xe9f8;" glyph-name="security" d="M511.974 427.175h298.667c-22.571-175.744-139.776-332.416-298.667-381.269v380.843h-298.665v243.202l298.665 132.736zM511.974 896.083l-383.999-170.667v-256.001c0-236.928 163.669-458.069 383.999-512 220.288 53.931 384 275.072 384 512v256.001l-384 170.667z" />
+<glyph unicode="&#xe9f9;" glyph-name="select-all" d="M384 554.667h256v-256h-256zM298.667 213.334h426.667v426.667h-426.667zM640 725.334h85.333v85.333h-85.333zM640 42.667h85.333v85.333h-85.333zM810.667 213.334h85.333v85.333h-85.333zM810.667 554.667h85.333v85.333h-85.333zM810.667 42.667c46.933 0 85.333 38.4 85.333 85.333h-85.333zM810.667 384h85.333v85.333h-85.333zM469.333 42.667h85.333v85.333h-85.333zM384 810.667h-85.333v-85.333h85.333zM128 213.334h85.333v85.333h-85.333zM213.333 42.667v85.333h-85.333c0-46.933 38.4-85.333 85.333-85.333zM810.667 810.667v-85.333h85.333c0 46.933-38.4 85.333-85.333 85.333zM554.667 810.667h-85.333v-85.333h85.333zM128 554.667h85.333v85.333h-85.333zM298.667 42.667h85.333v85.333h-85.333zM128 384h85.333v85.333h-85.333zM128 725.334h85.333v85.333c-46.933 0-85.333-38.4-85.333-85.333z" />
+<glyph unicode="&#xe9fa;" glyph-name="select-inverse" d="M213.334 810.667h85.333v-85.333h85.333v85.333h85.333v-85.333h85.333v85.333h85.333v-85.333h85.333v85.333h85.333v-85.333h85.333v-85.333h-85.333v-85.333h85.333v-85.333h-85.333v-85.333h85.333v-85.333h-85.333v-85.333h85.333v-85.333h-85.333v-85.333h-85.333v85.333h-85.333v-85.333h-85.333v85.333h-85.333v-85.333h-85.333v85.333h-85.333v-85.333h-85.333v85.333h-85.333v85.333h85.333v85.333h-85.333v85.333h85.333v85.333h-85.333v85.333h85.333v85.333h-85.333v85.334h85.334v85.333z" />
+<glyph unicode="&#xe9fb;" glyph-name="select-off" d="M42.667 756.545l54.49 54.122 798.843-798.844-54.123-54.49-116.544 116.544v-31.211h-85.333v85.333h31.211l-457.877 457.878v-31.212h-85.334v85.333h31.213l-116.546 116.546zM853.333 810.666c23.565 0 42.667-19.102 42.667-42.667v-42.666h-85.333v85.333h42.667zM640 725.333v85.333h85.333v-85.333h-85.333zM469.333 725.333v85.333h85.333v-85.333h-85.333zM298.666 725.333v85.333h85.334v-85.333h-85.334zM469.333 42.667v85.333h85.333v-85.333h-85.333zM298.666 42.667v85.333h85.334v-85.333h-85.334zM170.666 42.667c-23.564 0-42.667 19.102-42.667 42.667v42.667h85.334v-85.333h-42.667zM128 298.667h85.334v-85.333h-85.334v85.333zM896 298.667v-85.333h-85.333v85.333h85.333zM128 469.334h85.334v-85.333h-85.334v85.333zM896 469.334v-85.333h-85.333v85.333h85.333zM896 639.999v-85.333h-85.333v85.333h85.333z" />
+<glyph unicode="&#xe9fc;" glyph-name="select" d="M170.667 810.667h42.667v-85.333h-85.333v42.667c0 23.564 19.102 42.667 42.667 42.667zM853.333 810.667c23.565 0 42.667-19.103 42.667-42.667v-42.667h-85.333v85.333h42.667zM640 725.333v85.333h85.333v-85.333h-85.333zM469.333 725.333v85.333h85.333v-85.333h-85.333zM298.667 725.333v85.333h85.333v-85.333h-85.333zM896 85.334c0-23.565-19.102-42.667-42.667-42.667h-42.667v85.333h85.333v-42.667zM640 42.667v85.333h85.333v-85.333h-85.333zM469.333 42.667v85.333h85.333v-85.333h-85.333zM298.667 42.667v85.333h85.333v-85.333h-85.333zM170.667 42.667c-23.564 0-42.667 19.102-42.667 42.667v42.667h85.333v-85.333h-42.667zM128 298.667h85.333v-85.333h-85.333v85.333zM896 298.667v-85.333h-85.333v85.333h85.333zM128 469.334h85.333v-85.333h-85.333v85.333zM896 469.334v-85.333h-85.333v85.333h85.333zM128 640h85.333v-85.333h-85.333v85.333zM896 640v-85.333h-85.333v85.333h85.333z" />
+<glyph unicode="&#xe9fd;" glyph-name="send" d="M85.76 42.667l895.573 384-895.573 384-0.427-298.667 640-85.333-640-85.333 0.427-298.667z" />
+<glyph unicode="&#xe9fe;" glyph-name="server-minus" d="M170.667 768h682.667c23.565 0 42.667-19.103 42.667-42.667v-170.667c0-23.564-19.102-42.667-42.667-42.667h-682.667c-23.564 0-42.667 19.102-42.667 42.667v170.667c0 23.564 19.103 42.667 42.667 42.667zM384 597.333h42.667v85.333h-42.667v-85.333zM213.333 682.667v-85.333h85.333v85.333h-85.333zM341.333 256h341.333v-85.333h-341.333v85.333z" />
+<glyph unicode="&#xe9ff;" glyph-name="server-network-off" d="M554.667 170.667h42.667c23.565 0 42.667-19.102 42.667-42.667h31.211l-116.544 116.544v-73.877zM938.667 128v-50.231l-50.231 50.231h50.231zM896 11.823l-54.123-54.49-85.333 85.333h-116.544c0-23.565-19.102-42.667-42.667-42.667h-170.667c-23.564 0-42.666 19.102-42.666 42.667h-298.667v85.333h298.667c0 23.565 19.102 42.667 42.666 42.667h42.667v85.333h-298.667c-23.564 0-42.667 19.102-42.667 42.667v170.667c0 23.565 19.102 42.667 42.667 42.667h116.545l-85.334 85.333h-31.211c-23.564 0-42.667 19.103-42.667 42.667v31.211l-85.333 85.333 54.49 54.121 798.843-798.843zM170.667 853.333h682.667c23.565 0 42.667-19.102 42.667-42.666v-170.667c0-23.564-19.102-42.667-42.667-42.667h-434.232l-120.435 120.435v50.231h-50.231l-84.763 84.763c2.276 0.375 4.612 0.57 6.994 0.57zM853.333 512c23.565 0 42.667-19.102 42.667-42.667v-170.667c0-23.565-19.102-42.667-42.667-42.667h-92.898l-256 256h348.898zM384 682.666h42.667v85.333h-42.667v-85.333zM384 341.334h42.667v31.211l-42.667 42.667v-73.877zM213.333 426.667v-85.333h85.333v85.333h-85.333z" />
+<glyph unicode="&#xea00;" glyph-name="server-network" d="M554.667 170.667h42.667c23.565 0 42.667-19.102 42.667-42.667h298.667v-85.333h-298.667c0-23.565-19.102-42.667-42.667-42.667h-170.667c-23.564 0-42.666 19.102-42.666 42.667h-298.667v85.333h298.667c0 23.565 19.102 42.667 42.666 42.667h42.667v85.333h-298.667c-23.564 0-42.667 19.102-42.667 42.667v170.667c0 23.565 19.102 42.667 42.667 42.667h682.667c23.565 0 42.667-19.102 42.667-42.667v-170.667c0-23.565-19.102-42.667-42.667-42.667h-298.667v-85.333zM170.667 853.334h682.667c23.565 0 42.667-19.102 42.667-42.667v-170.666c0-23.564-19.102-42.667-42.667-42.667h-682.667c-23.564 0-42.667 19.102-42.667 42.667v170.666c0 23.564 19.103 42.667 42.667 42.667zM384 682.667h42.667v85.333h-42.667v-85.333zM384 341.334h42.667v85.333h-42.667v-85.333zM213.333 768v-85.333h85.333v85.333h-85.333zM213.333 426.667v-85.333h85.333v85.333h-85.333z" />
+<glyph unicode="&#xea01;" glyph-name="server-off" d="M170.667 896h682.667c23.565 0 42.667-19.103 42.667-42.667v-170.667c0-23.564-19.102-42.667-42.667-42.667h-476.899l-85.333 85.333h7.564v85.333h-85.333v-7.565l-76.382 76.382c7.805 10.050 20.006 16.516 33.716 16.516zM938.667-30.843l-54.123-54.49-42.667 42.667h-671.211c-23.564 0-42.667 19.102-42.667 42.667v170.667c0 23.565 19.103 42.667 42.667 42.667h415.211l-85.333 85.333h-329.877c-23.564 0-42.667 19.102-42.667 42.667v170.667c0 23.564 19.102 42.666 42.667 42.666h73.878l-87.582 87.582c-12.541 4.251-22.464 14.174-26.714 26.715l-87.582 87.581 54.49 54.121 841.51-841.509zM853.333 554.666c23.565 0 42.667-19.102 42.667-42.666v-170.667c0-23.565-19.102-42.667-42.667-42.667h-135.565l-256 255.999h391.565zM853.333 213.334c23.565 0 42.667-19.102 42.667-42.667v-50.231l-92.898 92.898h50.231zM384 725.333h42.667v85.333h-42.667v-85.333zM384 384h31.212l-31.212 31.211v-31.211zM384 42.667h42.667v85.333h-42.667v-85.333zM213.333 469.334v-85.333h85.333v85.333h-85.333zM213.333 128v-85.333h85.333v85.333h-85.333z" />
+<glyph unicode="&#xea02;" glyph-name="server-plus" d="M170.667 768h682.667c23.565 0 42.667-19.103 42.667-42.667v-170.667c0-23.564-19.102-42.667-42.667-42.667h-682.667c-23.564 0-42.667 19.102-42.667 42.667v170.667c0 23.564 19.103 42.667 42.667 42.667zM384 597.333h42.667v85.333h-42.667v-85.333zM213.333 682.667v-85.333h85.333v85.333h-85.333zM341.333 256h128v128h85.333v-128h128v-85.333h-128v-128h-85.333v128h-128v85.333z" />
+<glyph unicode="&#xea03;" glyph-name="server-remove" d="M170.667 768h682.667c23.565 0 42.667-19.103 42.667-42.667v-170.667c0-23.564-19.102-42.667-42.667-42.667h-682.667c-23.564 0-42.667 19.102-42.667 42.667v170.667c0 23.564 19.103 42.667 42.667 42.667zM383.999 597.332h42.667v85.333h-42.667v-85.333zM213.333 682.666v-85.333h85.333v85.333h-85.333zM451.661 213.334l-110.327 110.327 60.339 60.339 110.328-110.327 110.327 110.327 60.339-60.339-110.327-110.327 110.327-110.327-60.339-60.339-110.327 110.327-110.327-110.327-60.34 60.339 110.327 110.327z" />
+<glyph unicode="&#xea04;" glyph-name="server-security" d="M128 896h682.667c23.565 0 42.667-19.102 42.667-42.667v-170.666c0-23.564-19.102-42.667-42.667-42.667h-682.667c-23.564 0-42.667 19.102-42.667 42.667v170.666c0 23.564 19.103 42.667 42.667 42.667zM128 554.666h682.667c23.565 0 42.667-19.102 42.667-42.666v-28.442l-106.667 47.406-277.333-123.259v-109.039h-341.333c-23.564 0-42.667 19.102-42.667 42.667v170.667c0 23.564 19.102 42.666 42.667 42.666zM128 213.334h341.457c2.445-96.098 41.924-187.942 104.631-256h-446.089c-23.564 0-42.667 19.102-42.667 42.667v170.667c0 23.565 19.103 42.667 42.667 42.667zM341.333 725.333h42.667v85.333h-42.667v-85.333zM341.333 384h42.667v85.333h-42.667v-85.333zM341.333 42.667h42.667v85.333h-42.667v-85.333zM170.667 810.667v-85.333h85.333v85.333h-85.333zM170.667 469.334v-85.333h85.333v85.333h-85.333zM170.667 128v-85.333h85.333v85.333h-85.333zM746.667 426.667l192-85.333v-128c0-118.464-81.856-229.035-192-256-110.165 26.965-192 137.536-192 256v128l192 85.333zM746.667 343.706l-106.667-47.407v-113.779c0-65.813 45.466-127.241 106.667-142.221v303.407z" />
+<glyph unicode="&#xea05;" glyph-name="server" d="M170.667 896h682.667c23.565 0 42.667-19.103 42.667-42.667v-170.667c0-23.564-19.102-42.667-42.667-42.667h-682.667c-23.564 0-42.667 19.102-42.667 42.667v170.667c0 23.564 19.102 42.667 42.667 42.667zM170.667 554.667h682.667c23.565 0 42.667-19.103 42.667-42.666v-170.667c0-23.565-19.102-42.667-42.667-42.667h-682.667c-23.564 0-42.667 19.102-42.667 42.667v170.667c0 23.564 19.102 42.666 42.667 42.666zM170.667 213.334h682.667c23.565 0 42.667-19.102 42.667-42.667v-170.667c0-23.565-19.102-42.667-42.667-42.667h-682.667c-23.564 0-42.667 19.102-42.667 42.667v170.667c0 23.565 19.103 42.667 42.667 42.667zM384 725.333h42.667v85.333h-42.667v-85.333zM384 384h42.667v85.333h-42.667v-85.333zM384 42.667h42.667v85.333h-42.667v-85.333zM213.333 810.667v-85.333h85.333v85.333h-85.333zM213.333 469.334v-85.333h85.333v85.333h-85.333zM213.333 128v-85.333h85.333v85.333h-85.333z" />
+<glyph unicode="&#xea06;" glyph-name="shape-plus" d="M85.333 853.334h384v-384h-384v384zM746.667 853.333c106.039 0 192-85.961 192-192s-85.961-192-192-192c-106.039 0-192 85.961-192 192s85.961 192 192 192zM277.333 341.334l192-341.333h-384l192 341.333zM810.667 213.334h128v-85.333h-128v-128h-85.333v128h-128v85.333h128v128h85.333v-128z" />
+<glyph unicode="&#xea07;" glyph-name="share-variant" d="M767.974 252.519c-32.384 0-61.568-12.672-83.755-32.939l-304.085 177.408c2.304 9.6 3.84 19.456 3.84 29.739 0 10.325-1.536 20.181-3.84 29.781l300.843 175.489c22.869-21.291 53.291-34.603 86.997-34.603 70.656 0 128 57.344 128 128 0 70.699-57.344 128-128 128s-128-57.301-128-128c0-10.283 1.536-20.139 3.84-29.739l-300.843-175.488c-22.869 21.291-53.291 34.56-86.997 34.56-70.656 0-128-57.303-128-128.001 0-70.656 57.344-128 128-128 33.706 0 64.128 13.312 86.997 34.603l303.957-177.323c-2.048-9.003-3.413-18.261-3.413-27.947 0-68.693 55.765-124.416 124.459-124.416s124.459 55.723 124.459 124.416c0 68.736-55.765 124.459-124.459 124.459z" />
+<glyph unicode="&#xea08;" glyph-name="share" d="M895.974 469.415l-298.667 298.668v-170.667c-298.667-42.667-426.667-256.001-469.333-469.335 106.667 149.333 256 217.6 469.333 217.6v-174.933l298.667 298.667z" />
+<glyph unicode="&#xea09;" glyph-name="shield-outline" d="M896 469.334c0-236.8-163.831-458.24-384-512-220.166 53.76-384 275.2-384 512v255.999l384 170.668 384-170.668v-255.999zM512 42.667c160 42.667 298.667 233.007 298.667 417.186v210.063l-298.667 132.975-298.667-132.975v-210.063c0-184.179 138.666-374.519 298.667-417.186z" />
+<glyph unicode="&#xea0a;" glyph-name="shield" d="M512 896l-384-170.667v-256c0-236.8 163.84-458.24 384-512 220.169 53.76 384 275.2 384 512v256l-384 170.667z" />
+<glyph unicode="&#xea0b;" glyph-name="shopping-music" d="M511.974 810.749c-70.699 0-128-57.301-128-128h256c0 70.699-57.301 128-128 128zM810.637 682.748c47.104 0 85.333-38.187 85.333-85.333v-512c0-47.147-38.229-85.333-85.333-85.333h-597.331c-47.148 0-85.333 38.187-85.333 85.333l0.427 512c0 47.147 37.759 85.333 84.906 85.333h85.333c0 117.803 95.531 213.333 213.331 213.333 117.803 0 213.333-95.53 213.333-213.333h85.333zM384 128l320 213.333-320 170.667v-384z" />
+<glyph unicode="&#xea0c;" glyph-name="shopping" d="M511.974 384.081c-117.803 0-213.334 95.531-213.334 213.335h85.333c0-70.698 57.302-128.001 128-128.001s128 57.303 128 128.001h85.333c0-117.804-95.531-213.335-213.333-213.335zM511.974 810.749c70.699 0 128-57.301 128-128h-256c0 70.699 57.302 128 128 128zM810.641 682.749h-85.333c0 117.803-95.531 213.333-213.333 213.333s-213.334-95.531-213.334-213.333h-85.333c-47.147 0-84.906-38.187-84.906-85.333l-0.427-512.001c0-47.147 38.186-85.333 85.333-85.333h597.334c47.104 0 85.333 38.187 85.333 85.333v512.001c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xea0d;" glyph-name="shuffle" d="M632.747 366.507l-60.16-60.16 133.547-133.547-87.467-87.467h234.667v234.667l-87.040-87.040-133.547 133.547zM618.667 768l87.040-87.040-535.040-535.467 60.16-60.16 535.467 535.040 87.040-87.040v234.667zM451.84 547.414l-221.013 220.587-60.16-60.16 220.587-220.587 60.587 60.16z" />
+<glyph unicode="&#xea0e;" glyph-name="sigma" d="M213.333 768h554.667v-213.333h-42.667l-42.667 128h-253.325l153.212-218.807-175.421-250.526h275.534l42.667 85.333h42.667v-213.333h-554.667l239.006 341.333-239.006 341.333z" />
+<glyph unicode="&#xea0f;" glyph-name="sign-caution" d="M85.333 810.667h853.333v-426.667h-170.667v-341.333h-85.333v341.333h-341.333v-341.333h-85.333v341.333h-170.667v426.667zM809.596 469.334l43.738 43.738v120.679l-164.42-164.418h120.683zM568.235 469.334l256 256h-120.678l-256-256h120.678zM326.877 469.334l256.001 256h-120.683l-255.998-256h120.68zM220.838 725.334l-50.171-50.171v-120.68l170.851 170.851h-120.68z" />
+<glyph unicode="&#xea10;" glyph-name="signal" d="M128 42.667h128v128h-128zM341.333 42.667h128v298.667h-128zM554.667 42.667h128v512h-128zM768 42.667h128v768h-128v-768z" />
+<glyph unicode="&#xea11;" glyph-name="silverware-fork" d="M218.496 30.238l-60.33 60.331 411.976 412.019-8.785 8.785c-33.323 33.323-33.323 87.353 0 120.678l186.197 186.195 39.006-39.006-138.351-138.353 40.836-40.837 138.351 138.353 39.006-39.007-138.351-138.353 40.836-40.837 138.351 138.353 39.006-39.007-186.193-186.197c-33.327-33.323-87.356-33.323-120.678 0l-8.883 8.883-411.994-412.002z" />
+<glyph unicode="&#xea12;" glyph-name="silverware-spoon" d="M634.965 446.75l-416.469-416.512-60.33 60.331 416.469 416.512c-30.379 65.068-9.045 156.887 58.88 224.812 81.621 81.664 198.485 97.152 260.949 34.688 62.507-62.464 46.976-179.328-34.688-260.951-67.883-67.925-159.744-89.301-224.811-58.88z" />
+<glyph unicode="&#xea13;" glyph-name="silverware-variant" d="M345.6 369.434l-178.646 178.604c-66.645 66.688-66.645 174.721 0 241.366l299.307-299.265-120.661-120.704zM572.331 384.073l293.461-293.504-60.331-60.331-293.504 293.504-293.461-293.504-60.33 60.331 411.976 412.019-8.785 8.785c-33.323 33.323-33.323 87.353 0 120.678l186.197 186.195 39.006-39.006-138.351-138.353 40.836-40.837 138.351 138.353 39.006-39.007-138.351-138.353 40.836-40.837 138.351 138.353 39.006-39.007-186.193-186.197c-33.327-33.323-87.356-33.323-120.678 0l-8.883 8.883-58.159-58.167z" />
+<glyph unicode="&#xea14;" glyph-name="silverware" d="M345.6 369.434l-178.646 178.604c-66.645 66.688-66.645 174.721 0 241.366l299.307-299.265-120.661-120.704zM634.965 446.75l-62.635-62.677 293.461-293.504-60.331-60.331-293.504 293.504-293.461-293.504-60.33 60.331 416.469 416.512c-30.379 65.068-9.045 156.887 58.88 224.812 81.621 81.664 198.485 97.152 260.949 34.688 62.507-62.464 46.976-179.328-34.688-260.951-67.883-67.925-159.744-89.301-224.811-58.88z" />
+<glyph unicode="&#xea15;" glyph-name="sim-alert" d="M554.641 384.081h-85.333v213.335h85.333zM554.641 213.415h-85.333v85.333h85.333zM767.974 853.416h-341.334l-255.063-256-0.937-512.001c0-46.933 38.401-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v682.668c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xea16;" glyph-name="sim" d="M767.974 597.416h-85.333v170.667h85.333zM639.974 597.416h-85.333v170.667h85.333zM511.974 597.416h-85.334v170.667h85.334zM767.974 853.416h-341.334l-255.061-256-0.939-512.001c0-46.933 38.4-85.333 85.333-85.333h512c46.933 0 85.333 38.4 85.333 85.333v682.668c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xea17;" glyph-name="sitemap" d="M384 853.334v-256h85.333v-128h-256c-47.275 0-85.333-38.059-85.333-85.333v-128h-85.333v-256h256v256h-85.333v128h256v-128h-85.333v-256h256v256h-85.333v128h256v-128h-85.333v-256h256v256h-85.333v128c0 47.275-38.059 85.333-85.333 85.333h-256v128h85.333v256h-256z" />
+<glyph unicode="&#xea18;" glyph-name="skip-next" d="M682.641 164.864h85.333v511.998h-85.333zM255.974 164.864l362.667 256-362.667 255.998v-511.998z" />
+<glyph unicode="&#xea19;" glyph-name="skip-previous" d="M255.974 164.86v512.001h85.333v-512.001h-85.333zM405.307 420.847l362.667 256.002v-512.002l-362.667 256z" />
+<glyph unicode="&#xea1a;" glyph-name="skype-business" d="M513.468 233.212c-113.769 0-164.655 55.919-164.655 97.847 0 21.513 15.867 36.561 37.754 36.561 48.671 0 36.078-69.901 126.9-69.901 46.49 0 72.175 25.246 72.175 51.098 0 15.543-7.667 32.751-38.289 40.294l-101.175 25.271c-81.498 20.433-96.285 64.478-96.285 105.895 0 85.987 80.954 118.268 156.986 118.268 70.025 0 152.576-38.699 152.576-90.288 0-22.108-19.14-34.954-40.998-34.954-41.553 0-33.907 57.502-117.585 57.502-41.54 0-64.55-18.803-64.55-45.714 0-26.86 32.815-35.427 61.278-41.929l74.901-16.623c82.035-18.27 102.844-66.167 102.844-111.283 0-69.867-53.636-122.044-161.877-122.044zM768.444 683.111c87.693-87.691 121.088-209.114 100.19-322.5 17.425-30.908 27.366-66.598 27.366-104.61 0-117.82-95.514-213.333-213.333-213.333-38.012 0-73.702 9.941-104.61 27.366-113.387-20.898-234.81 12.497-322.501 100.19-87.69 87.689-121.087 209.114-100.19 322.5-17.425 30.909-27.366 66.599-27.366 104.61 0 117.821 95.513 213.333 213.333 213.333 38.011 0 73.701-9.941 104.61-27.366 113.387 20.897 234.812-12.5 322.5-100.19zM341.333 725.333c-70.693 0-128-57.307-128-128 0-33.627 12.967-64.225 34.173-87.066-30.090-95.479-7.294-204.023 68.389-279.706s184.226-98.479 279.705-68.39c22.839-21.205 53.44-34.172 87.066-34.172 70.694 0 128 57.306 128 128 0 33.626-12.966 64.226-34.172 87.066 30.089 95.479 7.292 204.022-68.39 279.705s-184.226 98.479-279.706 68.389c-22.841 21.206-53.439 34.173-87.066 34.173z" />
+<glyph unicode="&#xea1b;" glyph-name="skype" d="M768.444 683.111c87.693-87.69 121.088-209.114 100.19-322.5 17.425-30.908 27.366-66.598 27.366-104.61 0-117.82-95.514-213.333-213.333-213.333-38.012 0-73.702 9.941-104.61 27.366-113.387-20.898-234.81 12.497-322.5 100.19-87.691 87.689-121.088 209.114-100.19 322.5-17.425 30.909-27.366 66.599-27.366 104.61 0 117.821 95.513 213.333 213.333 213.333 38.011 0 73.701-9.941 104.61-27.366 113.387 20.897 234.812-12.5 322.5-100.19zM513.651 206.345c122.594 0 183.334 59.093 183.334 138.223 0 51.098-23.565 105.344-116.471 126.037l-84.834 18.825c-32.235 7.364-69.402 17.067-69.402 47.488 0 30.479 26.061 51.775 73.11 51.775 94.771 0 86.114-65.125 133.175-65.125 24.751 0 46.43 14.549 46.43 39.588 0 58.429-93.491 102.257-172.8 102.257-86.115 0-177.8-36.56-177.8-133.946 0-46.905 16.747-96.791 109.051-119.933l114.586-28.625c34.684-8.538 43.366-28.032 43.366-45.632 0-29.282-29.090-57.869-81.745-57.869-102.862 0-88.597 79.164-143.722 79.164-24.789 0-42.76-17.045-42.76-41.408 0-47.488 57.632-110.818 186.482-110.818z" />
+<glyph unicode="&#xea1c;" glyph-name="sleep-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-256 256h-159.211v85.333l33.885 39.991-332.552 332.553zM981.333 426.667h-256v85.333l144.606 170.667h-144.606v85.333h256v-85.333l-144.265-170.666h144.265v-85.333zM419.101 597.333h220.899v-85.333l-62.101-73.463-158.797 158.796zM298.667 85.334h-256v85.333l144.605 170.667h-144.605v85.333h256v-85.333l-144.265-170.667h144.265v-85.333z" />
+<glyph unicode="&#xea1d;" glyph-name="sleep" d="M981.333 426.667h-256v85.333l144.606 170.667h-144.606v85.333h256v-85.333l-144.265-170.667h144.265v-85.333zM640 256h-256v85.333l144.606 170.667h-144.606v85.333h256v-85.333l-144.265-170.667h144.265v-85.333zM298.667 85.334h-256v85.333l144.605 170.667h-144.605v85.333h256v-85.333l-144.265-170.667h144.265v-85.333z" />
+<glyph unicode="&#xea1e;" glyph-name="smoking-off" d="M675.157 341.334l170.667-170.667h92.843v170.667zM85.333 170.667h128v170.667h-128zM139.819 768l-54.485-54.101 104.235-104.235c-64.512-38.4-104.107-107.904-104.235-182.997h85.333c0 53.077 32.725 100.651 82.304 119.595l204.928-204.928h-159.232v-170.667h329.899l170.667-170.667 54.101 54.485zM426.667 810.667v-42.667c-0.085-46.592-25.472-89.429-66.261-111.915l61.739-61.739c56.277 39.936 89.771 104.661 89.856 173.653v42.667h-85.333z" />
+<glyph unicode="&#xea1f;" glyph-name="smoking" d="M298.667 128h640v170.667h-640zM85.334 128h128v170.667h-128zM426.667 768v-42.667c0-70.699-57.301-128-128-128-117.803 0-213.333-95.531-213.333-213.333h85.333c0 70.699 57.301 128 128 128 117.803 0 213.333 95.531 213.333 213.333v42.667h-85.333z" />
+<glyph unicode="&#xea20;" glyph-name="snapchat" d="M512 66.274c-50.569-0.128-81.148 21.491-108.128 40.58-19.34 13.662-37.58 26.56-58.947 30.114-49.193 2.624-63.558-0.196-90.363-4.587-4.504 0-9.973 0.998-12.256 8.785-7.484 32.149-9.759 40.892-15.121 41.719-57.353 8.845-91.241 21.888-97.992 37.67-1.455 9.685 1.867 13.815 6.51 14.588 45.546 7.497 86.044 31.573 120.379 71.578 26.596 30.967 39.656 60.557 41.061 63.825 6.819 13.871 8.136 25.472 4.127 34.918-7.39 17.429-31.864 25.195-58.931 34.018-14.355 5.67-37.963 17.651-34.818 34.185 2.291 12.058 18.239 20.454 40.549 18.577 14.565-6.827 27.67-10.283 38.935-10.283 14.014 0 20.783 5.333 22.42 6.852-4.673 75.283-8.776 140.406 7.882 177.751 49.857 111.784 155.59 120.479 194.694 120.552 39.104-0.073 144.836-8.768 194.692-120.552 16.661-37.345 12.557-102.468 7.885-177.751 1.634-1.519 8.405-6.852 22.417-6.852 11.264 0 24.371 3.456 38.938 10.283 22.306 1.877 38.255-6.519 40.546-18.577 3.145-16.533-20.463-28.514-34.816-34.185-27.068-8.823-51.541-16.589-58.931-34.018-4.011-9.446-2.692-21.047 4.126-34.918 1.404-3.268 14.464-32.858 41.062-63.825 34.334-40.004 74.833-64.081 120.38-71.578 4.642-0.772 7.962-4.902 6.507-14.588-6.75-15.782-40.636-28.826-97.993-37.67-5.359-0.828-7.633-9.57-15.117-41.719-2.287-7.787-7.753-8.785-12.258-8.785-26.803 4.39-41.169 7.211-90.364 4.587-21.367-3.554-39.607-16.452-58.948-30.114-26.978-19.089-57.557-40.708-108.126-40.58z" />
+<glyph unicode="&#xea21;" glyph-name="snowman" d="M725.333 213.334c0-117.82-95.514-213.333-213.333-213.333s-213.333 95.514-213.333 213.333c0 63.714 27.929 120.9 72.212 159.991-18.645 27.354-29.546 60.407-29.546 96.009 0 5.845 0.294 11.618 0.867 17.31l-127.284 73.488-8.849 6.778-108.541-29.084-11.043 41.213 94.496 25.321-84.723 48.915 21.333 36.951 84.723-48.915-25.32 94.497 41.213 11.043 29.083-108.542 10.294-4.274 114.92-66.349c16.285 23.056 38.142 41.897 63.61 54.56-31.608 23.307-52.113 60.804-52.113 103.090 0 70.692 57.306 128 128 128s128-57.308 128-128c0-42.287-20.506-79.783-52.113-103.090 25.468-12.664 47.326-31.504 63.612-54.56l114.918 66.349 10.291 4.274 29.086 108.542 41.212-11.043-25.318-94.497 84.723 48.915 21.333-36.951-84.723-48.915 94.494-25.321-11.042-41.213-108.54 29.084-8.849-6.778-127.283-73.488 0.866-17.31c0-35.601-10.901-68.655-29.547-96.009 44.284-39.091 72.213-96.277 72.213-159.991z" />
+<glyph unicode="&#xea22;" glyph-name="sofa" d="M298.667 682.667h85.333c47.13 0 85.333-38.205 85.333-85.333v-170.667h-256v170.667c0 47.128 38.205 85.333 85.333 85.333zM640 682.667h85.333c47.13 0 85.333-38.205 85.333-85.333v-170.667h-256v170.667c0 47.128 38.204 85.333 85.333 85.333zM42.667 554.667h42.667c23.564 0 42.667-19.102 42.667-42.666v-85.333c0-47.13 38.205-85.333 85.333-85.333h597.333c47.13 0 85.333 38.204 85.333 85.333v85.333c0 23.564 19.102 42.666 42.667 42.666h42.667c23.565 0 42.667-19.102 42.667-42.666v-384h-128v85.333h-768v-85.333h-128v384c0 23.564 19.103 42.666 42.667 42.666z" />
+<glyph unicode="&#xea23;" glyph-name="sort-alphabetical" d="M394.667 725.334l138.667 138.667 138.667-138.667h-277.333zM672 128l-138.667-138.667-138.666 138.667h277.333zM379.347 328.418h-123.354l-30.679-114.688h-100.984l131.663 426.099h127.828l133.555-426.099h-104.794l-33.235 114.688zM270.054 397.709h95.232l-26.844 90.534-11.345 41.152-10.386 41.143h-1.278l-9.667-41.514-10.146-41.848-25.565-89.468zM557.001 214.328v52.608l202.479 288.972v2.486h-183.556v80.839h308.45v-56.46l-198.063-285.108v-2.496h201.212v-80.841h-330.522z" />
+<glyph unicode="&#xea24;" glyph-name="sort-ascending" d="M426.667 469.253v-85.333l341.359 0.081v85.333l-341.359-0.081zM426.667 725.25v-85.333l170.692 0.083v85.333l-170.692-0.083zM426.692 213.334l-0.026-85.414h512l0.026 85.414h-512zM256 639.917h106.667l-149.333 149.333-149.333-149.333h106.667l0.026-554.583h85.333l-0.025 554.583z" />
+<glyph unicode="&#xea25;" glyph-name="sort-descending" d="M426.641 384.086v85.333l341.359-0.085v-85.333l-341.359 0.085zM426.641 128.086v85.333l170.692-0.085v-85.333l-170.692 0.085zM426.666 639.999l-0.025 85.418h512l0.026-85.418h-512zM255.974 213.419h106.667l-149.333-149.333-149.333 149.333h106.667l0.026 554.581h85.333l-0.025-554.581z" />
+<glyph unicode="&#xea26;" glyph-name="sort-numeric" d="M332.057 639.716c55.268-1.559 94.9-22.266 118.9-62.124s35.716-89.515 35.157-148.966c0.124-66.163-12.749-118.345-38.609-156.535-25.861-38.195-65.441-57.685-118.741-58.47-53.454 1.37-92.502 21.807-117.145 61.316-24.643 39.505-36.948 89.869-36.913 151.087-0.181 62.409 12.57 113.311 38.254 152.707s65.382 59.725 119.098 60.986zM330.74 570.425c-18.729 0.122-33.626-11.666-44.691-35.366-11.066-23.698-16.588-60.046-16.567-109.036-0.117-48.371 5.268-84.339 16.155-107.904 10.887-23.569 26.141-35.307 45.761-35.209 39.411 0 59.391 48.137 59.94 144.414-0.11 94.537-20.309 142.237-60.599 143.101zM568.922 213.62v75.661l18.005-0.951 23.147 0.951 44.241 8.218c14.562 4.476 27.738 10.769 39.526 18.889 13.935 10.001 25.472 21.679 34.603 35.029 9.135 13.35 15.701 27.324 19.703 41.916l-1.984 0.585c-18.765-17.865-47.467-26.991-86.097-27.379-36.233 0.213-66.479 10.999-90.739 32.363-24.265 21.363-36.868 52.023-37.815 91.985 0.717 42.092 15.185 77.152 43.396 105.18s65.869 42.577 112.973 43.651c53.158-1.297 92.339-18.775 117.547-52.431s37.705-75.703 37.495-126.148c-0.192-41.003-6.383-77.478-18.577-109.423-12.19-31.94-29.235-58.688-51.132-80.235-19.644-17.83-43.145-31.607-70.498-41.331s-57.613-15.232-90.773-16.529h-43.021zM685.231 570.425c-17.562-0.323-31.77-7.114-42.62-20.372-10.854-13.258-16.294-31.041-16.32-53.349-0.030-18.645 4.992-34.381 15.066-47.206 10.074-12.821 25.361-19.503 45.862-20.045 13.619 0.23 25.126 3.004 34.522 8.329 9.395 5.321 16.431 11.814 21.111 19.477 3.418 4.958 5.184 13.15 5.295 24.572 0.235 23.211-4.54 43.555-14.323 61.029-9.779 17.474-25.98 26.663-48.593 27.566zM394.667 725.334l138.667 138.667 138.667-138.667h-277.333zM672 128l-138.667-138.667-138.666 138.667h277.333z" />
+<glyph unicode="&#xea27;" glyph-name="sort-variant" d="M128 384h512v85.333h-512zM128 682.667v-85.333h768v85.333zM128 170.667h256v85.333h-256v-85.333z" />
+<glyph unicode="&#xea28;" glyph-name="sort" d="M426.667 384v85.333h341.333v-85.333h-341.333zM426.667 128v85.333h170.667v-85.333h-170.667zM426.692 639.915l-0.026 85.419h512l0.026-85.419h-512zM256 213.334h106.667l-149.333-149.333-149.333 149.333h106.667v426.667h-106.667l149.333 149.333 149.333-149.333h-106.667v-426.667z" />
+<glyph unicode="&#xea29;" glyph-name="soundcloud" d="M493.175 560.014v-346.681h373.922v0.418c78.733 5.005 114.236 53.918 114.236 113.472 0 62.997-47.582 113.894-111.629 113.894-16.439 0-29.965-3.341-44.262-9.493-10.253 99.917-95.036 178.035-199.424 178.035-51.055 0-97.476-18.772-132.843-49.645zM455.817 516.628c-12.851 7.613-26.679 13.558-41.365 17.626v-320.92h59.034v326.969c-6.46-7.405-12.373-15.436-17.668-23.674zM355.388 539.677v-326.344h39.383v325.092c-8.073 1.252-16.385 1.772-24.833 1.772-4.933 0-9.783-0.207-14.55-0.521zM276.687 512.143v-298.809h39.351v318.104c-14.060-4.693-27.274-11.264-39.351-19.295zM206.182 404.404c-2.691 1.668-5.361 3.337-8.229 4.8v-195.87h39.351v261.888c-15.665-20.442-26.585-44.535-31.122-70.818zM119.241 417.336v-200.038c9.303-2.607 19.107-3.964 29.214-3.964h10.158v207.548c-3.401 0.316-6.779 0.525-10.221 0.525-10.127 0-19.889-1.459-29.151-4.070zM42.666 317.317c0-31.706 14.445-60.075 37.213-79.266v158.532c-22.768-19.085-37.213-47.561-37.213-79.266z" />
+<glyph unicode="&#xea2a;" glyph-name="source-fork" d="M682.667 128c0-94.255-76.412-170.667-170.667-170.667-94.257 0-170.667 76.412-170.667 170.667 0 79.522 54.39 146.342 128 165.291 0 27.9 0 55.799-30.502 100.036-30.499 44.233-91.499 104.802-152.5 165.369-29.012-5.418-59.809-3.377-89.551 7.447-88.572 32.238-134.24 130.173-102.002 218.746s130.173 134.24 218.745 102.002c88.572-32.238 134.242-130.173 102.003-218.745-10.825-29.742-29.058-54.646-51.857-73.387 17.261-58.771 148.331-168.092 148.331-189.425 0 21.333 131.068 130.655 148.331 189.426-22.801 18.741-41.033 43.645-51.857 73.387-32.239 88.572 13.431 186.508 102.003 218.745s186.505-13.431 218.743-102.003c32.239-88.572-13.431-186.508-102.003-218.745-29.739-10.825-60.54-12.866-89.549-7.448-61.001-60.567-122.001-121.136-152.503-165.369-30.498-44.237-30.498-72.137-30.498-100.036 73.609-18.948 128-85.769 128-165.291zM512 213.334c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333zM284.338 806.705c-44.286 16.119-93.254-6.716-109.373-51.002s6.715-93.254 51.001-109.373c44.286-16.119 93.254 6.715 109.373 51.001s-6.715 93.254-51.002 109.373zM739.661 806.705c-44.284-16.119-67.119-65.087-50.999-109.373s65.084-67.12 109.372-51.001c44.284 16.119 67.119 65.087 50.999 109.373-16.115 44.286-65.084 67.12-109.372 51.002z" />
+<glyph unicode="&#xea2b;" glyph-name="source-pull" d="M256 853.334c94.257 0 170.667-76.41 170.667-170.667 0-79.524-54.39-146.344-128-165.29v-181.42c73.609-18.948 128-85.769 128-165.291 0-94.255-76.41-170.667-170.667-170.667s-170.667 76.412-170.667 170.667c0 79.522 54.39 146.342 128 165.291v181.42c-73.61 18.946-128 85.766-128 165.29 0 94.257 76.41 170.667 170.667 170.667zM256 768c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.205 85.333 85.333s-38.205 85.333-85.333 85.333zM256 256c-47.128 0-85.333-38.204-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.204 85.333 85.333s-38.205 85.333-85.333 85.333zM938.667 170.667c0-94.255-76.412-170.667-170.667-170.667s-170.667 76.412-170.667 170.667c0 79.522 54.391 146.342 128 165.291v304.043h-85.333v-138.666l-181.333 181.333 181.333 181.333v-138.666h85.333c47.13 0 85.333-38.205 85.333-85.334v-304.043c73.609-18.948 128-85.769 128-165.291zM768 256c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333z" />
+<glyph unicode="&#xea2c;" glyph-name="speaker-off" d="M85.333 713.878l54.49 54.122 756.177-756.176-54.123-54.49-62.268 62.268c-14.754-12.194-33.677-19.52-54.302-19.52l-426.665 0.427c-47.148 0-85.333 37.803-85.333 84.907v500.488l-127.976 127.975zM511.974 170.748c-70.656 0-127.999 57.344-127.999 128 0 32.401 12.058 62.003 31.93 84.557l-60.42 60.42c-35.273-38.050-56.844-88.99-56.844-144.977 0-117.845 95.573-213.333 213.332-213.333 55.979 0 106.927 21.559 144.986 56.836l-60.425 60.425c-22.558-19.87-52.16-31.927-84.561-31.927zM725.308 298.748c0 117.845-95.531 213.333-213.333 213.333l-7.492-0.128-285.852 285.852c12.066 32.463 43.326 55.609 80.012 55.609h426.665c47.104 0 85.333-38.229 85.333-85.333v-562.287l-85.461 85.461 0.128 7.492zM511.974 768.081c-47.189 0-85.332-38.229-85.332-85.333s38.143-85.333 85.332-85.333c47.061 0 85.333 38.229 85.333 85.333s-38.272 85.333-85.333 85.333z" />
+<glyph unicode="&#xea2d;" glyph-name="speaker" d="M511.974 426.748c-70.656 0-127.999-57.344-127.999-128s57.343-128 127.999-128c70.656 0 128 57.344 128 128s-57.344 128-128 128zM511.974 85.415c-117.759 0-213.332 95.488-213.332 213.333s95.573 213.335 213.332 213.335c117.803 0 213.333-95.489 213.333-213.335s-95.531-213.333-213.333-213.333zM511.974 768.083c47.061 0 85.333-38.229 85.333-85.333s-38.272-85.333-85.333-85.333c-47.189 0-85.332 38.229-85.332 85.333s38.143 85.333 85.332 85.333zM725.308 853.416h-426.665c-47.147 0-85.333-38.229-85.333-85.333v-682.668c0-47.104 38.186-84.907 85.333-84.907l426.665-0.427c47.104 0 85.333 38.229 85.333 85.333v682.668c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xea2e;" glyph-name="speedometer" d="M512 256c-70.694 0-128 57.306-128 128 0 47.757 26.153 89.404 64.917 111.403l413.303 239.546-235.913-408.613c-21.090-41.724-64.358-70.336-114.308-70.336zM512 810.667c77.133 0 149.483-20.467 211.917-56.265l-89.502-51.676c-37.999 14.604-79.275 22.608-122.415 22.607-188.513 0-341.333-152.82-341.333-341.333 0-94.208 38.167-179.507 99.882-241.267l0.222 0.222c16.662-16.661 16.662-43.678 0-60.339-16.632-16.631-43.578-16.661-60.248-0.094l-0.222-0.222c-77.211 77.214-124.968 183.881-124.968 301.7 0 235.641 191.025 426.667 426.667 426.667zM938.667 384c0-117.82-47.757-224.486-124.966-301.7l-0.094 0.094c-16.678-16.439-43.529-16.367-60.117 0.222-16.661 16.661-16.661 43.678 0 60.339l0.094-0.090c61.636 61.751 99.75 146.991 99.75 241.135 0 43.593-8.175 85.278-23.070 123.61l51.563 89.307c36.156-62.663 56.841-135.375 56.841-212.917z" />
+<glyph unicode="&#xea2f;" glyph-name="spellcheck" d="M921.173 444.16l-345.173-345.173-156.587 157.013-60.16-60.16 217.173-217.173 404.907 405.333zM274.347 469.334l88.32 235.52 88.32-235.52zM531.2 256h89.173l-218.027 554.667h-79.36l-218.027-554.667h89.173l47.787 128h240.64l48.64-128z" />
+<glyph unicode="&#xea30;" glyph-name="spotify" d="M763.733 473.6c-136.533 81.065-364.797 89.596-494.93 49.067-21.332-6.403-42.671 6.397-49.068 25.601-6.403 21.332 6.397 42.664 25.601 49.068 151.465 44.799 401.068 36.261 558.934-57.606 19.196-10.666 25.596-36.267 14.929-55.463-10.667-14.938-36.267-21.333-55.467-10.667zM759.467 354.134c-10.667-14.938-29.862-21.333-44.8-10.667-115.196 70.4-290.129 91.729-424.531 49.067-17.070-4.271-36.267 4.262-40.536 21.333-4.262 17.067 4.269 36.267 21.338 40.533 155.728 46.933 347.729 23.467 479.996-57.604 12.8-6.396 19.2-27.729 8.533-42.662zM708.271 236.8c-8.538-12.8-23.467-17.071-36.267-8.533-100.271 61.862-226.133 74.662-375.472 40.529-14.929-4.262-27.729 6.404-31.998 19.204-4.269 14.929 6.403 27.729 19.198 32 162.139 36.267 302.935 21.333 413.872-46.933 14.929-6.404 17.062-23.467 10.667-36.267zM512 853.333c-234.665 0-426.667-192.001-426.667-426.666 0-234.667 192.001-426.667 426.667-426.667 234.667 0 426.667 192 426.667 426.667 0 234.665-189.867 426.666-426.667 426.666z" />
+<glyph unicode="&#xea31;" glyph-name="spotlight-beam" d="M384 234.667l39.006 39.006 222.417-222.417-39.006-39.006-222.417 222.417zM661.333 512l39.006 39.006 222.417-222.417-39.006-39.006-222.417 222.417zM286.798 822.535l146.115-146.116-170.665-170.669-146.117 146.118c-33.325 33.324-33.325 87.354 0 120.679l49.987 49.987c33.325 33.325 87.355 33.325 120.68 0zM621.7 618.667l30.17-30.17-301.7-301.7-30.17 30.17-36.718 149.478 188.94 188.939 149.478-36.718z" />
+<glyph unicode="&#xea32;" glyph-name="spotlight" d="M85.333 682.667l217.299-108.649c-29.378-41.666-46.633-92.494-46.633-147.351s17.254-105.685 46.633-147.349l-217.299-108.651v512zM256 810.667h512l-108.651-174.632c-41.664 29.378-92.493 46.633-147.349 46.633s-105.684-17.255-147.351-46.633l-108.65 174.632zM938.667 682.667v-512l-217.301 108.651c29.38 41.664 46.635 92.493 46.635 147.349s-17.254 105.684-46.635 147.35l217.301 108.65zM768 42.667h-512l108.649 174.63c41.666-29.376 92.494-46.63 147.351-46.63s105.685 17.254 147.349 46.63l108.651-174.63zM512 597.334c94.255 0 170.667-76.41 170.667-170.667 0-94.255-76.412-170.667-170.667-170.667-94.257 0-170.667 76.412-170.667 170.667 0 94.257 76.41 170.667 170.667 170.667zM512 512c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333z" />
+<glyph unicode="&#xea33;" glyph-name="spreadsheet" d="M810.667 810.667h-597.333c-47.125 0-84.896-38.208-84.896-85.333l-0.333-128h-0.104v-469.333c0-47.125 38.208-85.333 85.333-85.333h597.333c47.125 0 85.333 38.208 85.333 85.333v597.333c0 47.125-38.208 85.333-85.333 85.333zM810.667 469.334h-341.333v-341.333h-85.333v341.333h-170.667v85.333h170.667v170.667h85.333v-170.667h341.333v-85.333z" />
+<glyph unicode="&#xea34;" glyph-name="square-inc-cash" d="M234.667 938.665h554.667c129.6 0 234.667-105.064 234.667-234.666v-554.665c0-129.604-105.067-234.667-234.667-234.667h-554.667c-129.603 0-234.667 105.062-234.667 234.667v554.665c0 129.603 105.064 234.666 234.667 234.666zM656.427 290.966c0-67.379-38.093-111.983-108.096-118.127v227.819c72.461-22.404 108.096-44.77 108.096-109.692zM497.050 681.971v-207.543c-55.991 15.194-111.78 40.508-111.78 104.692 0 63.324 49.030 98.632 111.78 102.851zM661.585 614.551l43.213 33.792c-38.298 48.906-90.441 80.241-156.548 86.958v41.247h-51.2v-40.428c-90.685-5.898-169.411-60.785-169.411-160.399 0-106.374 88.023-139.552 169.368-161.504l0.043-241.83c-47.514 5.039-100.762 27.648-137.216 82.534l-48.333-32.073c38.175-57.425 105.021-93.918 185.549-100.676v-45.427l17.818 0.043h33.463v44.361c106.458 7.902 164.169 77.862 164.169 171.499 0 109.239-80.529 144.098-164.169 168.55v219.504c48.414-7.291 85.073-30.597 113.254-66.15z" />
+<glyph unicode="&#xea35;" glyph-name="square-inc" d="M256 810.667h512c70.694 0 128-57.308 128-128v-512c0-70.694-57.306-128-128-128h-512c-70.693 0-128 57.306-128 128v512c0 70.692 57.307 128 128 128zM298.667 682.667c-23.564 0-42.667-19.102-42.667-42.667v-426.666c0-23.565 19.102-42.667 42.667-42.667h426.667c23.565 0 42.667 19.102 42.667 42.667v426.666c0 23.564-19.102 42.667-42.667 42.667h-426.667zM405.333 554.667h213.333c11.78 0 21.333-9.551 21.333-21.333v-213.333c0-11.78-9.553-21.333-21.333-21.333h-213.333c-11.782 0-21.333 9.553-21.333 21.333v213.333c0 11.782 9.551 21.333 21.333 21.333z" />
+<glyph unicode="&#xea36;" glyph-name="stackoverflow" d="M170.667 341.334h64v-277.333h469.333v277.333h64v-341.333h-597.333v341.333zM641.472 117.701h-353.105v70.622h353.105v-70.622zM636.544 228.6l-352.242 24.631 4.926 70.447 352.244-24.631-4.928-70.447zM641.579 323.994l-341.070 91.392 18.278 68.215 341.071-91.392-18.278-68.215zM661.244 422.486l-305.796 176.553 35.31 61.159 305.797-176.55-35.311-61.163zM709.628 497.506l-207.548 285.666 57.135 41.51 207.548-285.667-57.135-41.509zM783.241 547.221l-43.034 350.471 70.093 8.606 43.034-350.471-70.093-8.606z" />
+<glyph unicode="&#xea37;" glyph-name="star-circle" d="M692.48 170.667l-180.48 108.8-180.48-108.8 47.787 205.227-159.147 137.813 209.92 17.92 81.92 193.707 81.92-193.28 209.92-17.92-159.147-137.813 47.787-205.653zM511.573 853.334c-235.52 0-426.24-191.147-426.24-426.667s190.72-426.667 426.24-426.667c235.947 0 427.093 191.147 427.093 426.667s-191.147 426.667-427.093 426.667z" />
+<glyph unicode="&#xea38;" glyph-name="star-half" d="M511.974 260.506v396.844l72.96-172.204 186.88-16.043-141.739-122.795 42.453-182.656zM938.641 522.993l-306.816 26.325-119.851 282.752-119.851-282.752-306.816-26.325 232.747-201.644-69.76-299.947 263.68 159.061 263.68-159.061-69.76 299.947 232.747 201.644z" />
+<glyph unicode="&#xea39;" glyph-name="star-of-david" d="M512 853.334l123.17-213.333h246.336l-123.17-213.333 123.17-213.333h-246.336l-123.17-213.333-123.168 213.333h-246.336l123.168 213.333-123.168 213.333h246.336l123.168 213.333zM733.7 298.667l-24.631 42.667-24.636-42.667h49.267zM512 682.667l-24.631-42.666h49.263l-24.631 42.666zM290.298 298.667h49.267l-24.634 42.667-24.634-42.667zM733.7 554.667h-49.267l24.636-42.667 24.631 42.667zM512 170.667l24.631 42.667h-49.263l24.631-42.667zM290.298 554.667l24.634-42.667 24.634 42.667h-49.267zM659.802 426.667l-73.903 128h-147.797l-73.903-128 73.903-128h147.797l73.903 128z" />
+<glyph unicode="&#xea3a;" glyph-name="star-outline" d="M511.974 281.844l-160.555-96.853 42.453 182.656-141.739 122.795 186.88 16.043 72.96 172.204 72.96-172.204 186.88-16.043-141.739-122.795 42.453-182.656zM938.641 544.33l-306.816 26.326-119.851 282.752-119.851-282.752-306.816-26.326 232.747-201.687-69.76-299.904 263.68 159.061 263.68-159.061-69.76 299.904 232.747 201.687z" />
+<glyph unicode="&#xea3b;" glyph-name="star" d="M511.974 201.78l263.68-159.019-69.76 299.904 232.747 201.644-306.816 26.368-119.851 282.752-119.851-282.752-306.816-26.368 232.747-201.644-69.76-299.904 263.68 159.019z" />
+<glyph unicode="&#xea3c;" glyph-name="steam" d="M859.43 606.477c50.492 0 91.426-40.934 91.426-91.429 0-50.493-40.934-91.427-91.426-91.427-50.496 0-91.43 40.934-91.43 91.427 0 50.495 40.934 91.429 91.43 91.429zM128 643.048c70.692 0 128-57.308 128-128l-0.696-13.428 270.9-140.484c21.466 16.265 48.218 25.911 77.227 25.911l91.426 128.001c0 90.89 73.681 164.571 164.574 164.571 90.889 0 164.57-73.681 164.57-164.571s-73.681-164.571-164.57-164.571l-128-91.43c0-70.69-57.31-128-128-128-70.694 0-128 57.31-128 128 0 1.604 0.026 3.2 0.085 4.787l-277.614 143.97c-20.096-13.129-44.108-20.757-69.902-20.757-70.693 0-128 57.31-128 128.001s57.307 128 128 128zM641.412 301.389c26.991-13.756 37.726-46.788 23.97-73.783-13.751-26.995-46.788-37.726-73.779-23.974l-78.421 40.67c7.053-43.482 44.774-76.681 90.249-76.681 50.492 0 91.426 40.934 91.426 91.426 0 50.496-40.934 91.43-91.426 91.43-14.131 0-27.511-3.204-39.458-8.93l77.44-40.158zM128 606.476c-50.495 0-91.429-40.934-91.429-91.429 0-50.493 40.934-91.427 91.429-91.427 10.44 0 20.471 1.749 29.816 4.971l-60.7 31.479c-26.994 13.756-37.728 46.788-23.974 73.782s46.788 37.728 73.783 23.974l72.355-37.523c-2.723 48.049-42.549 86.173-91.28 86.173zM859.43 643.048c-70.694 0-128-57.307-128-128 0-70.691 57.306-128.001 128-128.001 70.69 0 128 57.31 128 128.001 0 70.693-57.31 128-128 128z" />
+<glyph unicode="&#xea3d;" glyph-name="stethoscope" d="M810.496 597.76c24.064 0 42.667-18.603 42.667-42.667s-18.603-42.667-42.667-42.667c-24.064 0-42.667 18.603-42.667 42.667s18.603 42.667 42.667 42.667zM85.163 854.187v-384c0.128-127.147 93.44-234.667 219.307-253.013 26.752-128.427 140.117-217.173 271.531-217.173 153.173 0 277.333 124.16 277.333 277.333v157.44c49.493 17.792 85.333 64.853 85.333 119.893 0 70.4-57.6 128-128 128s-128-57.6-128-128c0-55.040 35.968-102.4 85.333-119.893l0.171-153.6c0-106.667-85.333-192-192-192-85.333 0-157.184 51.627-182.784 128.427 118.613 25.6 203.947 132.267 203.947 251.733v384h-170.667v-128h85.333v-256c0-94.293-76.373-170.667-170.667-170.667s-170.667 76.8-170.667 170.667v256h85.333v128l-170.837 0.853z" />
+<glyph unicode="&#xea3e;" glyph-name="stocking" d="M725.333 853.334c47.13 0 85.333-38.205 85.333-85.333v-128c0-47.128-38.204-85.333-85.333-85.333v-341.333c0-36.053-22.362-66.889-53.969-79.386l-266.653-124.343c-42.713-19.917-93.484-1.438-113.402 41.276l-36.063 77.338c-19.917 42.714-1.438 93.487 41.275 113.404l130.145 60.689v252.356c-47.128 0-85.333 38.205-85.333 85.333v128c0 47.128 38.205 85.333 85.333 85.333h298.667zM426.667 768v-128h298.667v128h-298.667z" />
+<glyph unicode="&#xea3f;" glyph-name="stop" d="M768 170.667h-512l-0.005 511.995 512.005 0.005v-512z" />
+<glyph unicode="&#xea40;" glyph-name="store-24-hour" d="M682.641 426.748h-42.667v85.335h-85.333v128h42.667v-85.333h42.667v85.333h42.667zM469.308 512.083h-85.333v-42.668h85.333v-42.667h-128v128.001h85.333v42.667h-85.333v42.667h128zM810.641 640.083v128h-597.333v-128h-128v-554.668h341.333v170.667h170.667v-170.667h341.333v554.668h-128z" />
+<glyph unicode="&#xea41;" glyph-name="store" d="M511.974 170.752h-256v170.667h256zM895.974 341.419v85.333l-42.667 213.335h-682.667l-42.667-213.335v-85.333h42.667v-256h426.667v256h170.667v-256h85.333v256zM853.308 768.087h-682.667v-85.333h682.667v85.333z" />
+<glyph unicode="&#xea42;" glyph-name="stove" d="M256 341.334h85.333l128-128h-85.333l-128 128zM170.667 768h42.667v42.667c0 23.564 19.102 42.667 42.667 42.667h170.667c23.565 0 42.667-19.102 42.667-42.667v-42.667h85.333v42.666c0 23.564 19.102 42.667 42.667 42.667h170.667c23.565 0 42.667-19.102 42.667-42.667v-42.666h42.667c47.13 0 85.333-38.205 85.333-85.333v-554.666c0-47.13-38.204-85.333-85.333-85.333v-42.667h-128v42.667h-426.667v-42.667h-128v42.667c-47.128 0-85.333 38.204-85.333 85.333v554.666c0 47.128 38.205 85.333 85.333 85.333zM768 640c23.565 0 42.667-19.103 42.667-42.667s-19.102-42.667-42.667-42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667zM597.333 640c23.565 0 42.667-19.103 42.667-42.667s-19.102-42.667-42.667-42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667zM853.333 682.667h-682.667v-170.667h682.667v170.667zM170.667 128h682.667v298.667h-682.667v-298.667zM256 640c23.564 0 42.667-19.103 42.667-42.667s-19.103-42.667-42.667-42.667c-23.564 0-42.667 19.103-42.667 42.667s19.103 42.667 42.667 42.667zM554.667 341.334h85.333l128-128h-85.333l-128 128z" />
+<glyph unicode="&#xea43;" glyph-name="subway" d="M767.974 469.415h-213.333v213.335h213.333zM703.974 213.415c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.371 0 64-28.672 64-64s-28.629-64-64-64zM469.308 469.415h-213.333v213.335h213.333zM319.974 213.415c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.37 0 64-28.672 64-64s-28.63-64-64-64zM511.974 853.416c-188.501 0-341.333-21.333-341.333-170.667v-405.335c0-82.475 66.944-149.333 149.333-149.333l-64-64v-21.333h512v21.333l-64 64c82.56 0 149.333 66.859 149.333 149.333v405.335c0 149.333-152.832 170.667-341.333 170.667z" />
+<glyph unicode="&#xea44;" glyph-name="sunglasses" d="M298.539 213.334h-128c-68.992 0-129.706 53.632-138.24 122.027l-21.248 127.659c-4.565 36.053 5.632 70.059 27.691 95.018s54.528 39.296 89.13 39.296h256c35.627 0 67.627-14.848 87.851-40.747 5.065-6.499 9.276-13.548 12.608-21.008 18.163 3.831 36.983 3.828 55.142-0.009 3.319 7.497 7.531 14.534 12.591 21.018 20.224 25.899 52.224 40.747 87.808 40.747h256c34.645 0 67.072-14.336 89.173-39.296 22.016-25.002 32.213-59.008 27.904-93.354l-21.76-131.029c-8.32-66.731-69.035-120.32-137.941-120.32h-128c-66.645 0-131.371 50.603-147.456 115.157l-38.336 115.806c-16.448 11.836-38.848 11.814-55.249-0.064l-39.108-118.814c-15.275-61.525-80.043-112.085-146.56-112.085z" />
+<glyph unicode="&#xea45;" glyph-name="swap-horizontal" d="M895.974 554.75l-170.24 170.667v-128h-299.094v-85.333h299.094v-127.998zM298.214 469.419l-170.24-170.667 170.24-170.667v128h299.094v85.333h-299.094v128z" />
+<glyph unicode="&#xea46;" glyph-name="swap-vertical" d="M383.974 810.75l-170.667-170.24h128v-299.092h85.333v299.092h128zM682.641 212.988v299.095h-85.333v-299.095h-128l170.667-170.236 170.667 170.236h-128z" />
+<glyph unicode="&#xea47;" glyph-name="swim" d="M85.334 170.667c94.815 42.667 189.63 85.333 284.445 85.333s189.629-85.333 284.442-85.333c94.818 0 189.632 85.333 284.446 85.333v-128c-94.814 0-189.628-85.333-284.446-85.333-94.814 0-189.628 85.333-284.442 85.333s-189.629-42.667-284.445-85.333v128zM369.777 384c-32.937 0-65.873-5.15-98.81-13.658l209.843 146.934-44.16 52.631c-6.234 7.416-9.984 16.982-9.984 27.426 0 14.674 7.407 27.617 18.688 35.296l244.16 170.963 48.943-69.901-206.511-144.601 223.087-265.864c-33.604-13.841-67.209-24.559-100.813-24.559-94.814 0-189.628 85.333-284.443 85.333zM768 640c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333z" />
+<glyph unicode="&#xea48;" glyph-name="sword" d="M295.253 725.334h-81.92l384-384 41.813 40.107zM851.627 122.88l-35.84-35.84c-16.64-16.64-43.52-16.64-60.16 0l-133.12 133.12-114.347-113.493-60.16 60.16 60.587 60.587-380.587 380.587v202.667h202.667l380.587-380.587 60.587 60.587 60.16-60.16-113.92-113.92 133.12-133.12c17.067-17.067 17.067-43.947 0.427-60.587z" />
+<glyph unicode="&#xea49;" glyph-name="sync-alert" d="M469.333 384h85.333v256h-85.333zM896 768h-256v-256l95.573 95.573c46.080-46.507 75.093-110.080 75.093-180.907 0-111.36-71.253-206.080-170.667-241.067v-89.173c147.2 37.973 256 171.093 256 330.24 0 94.293-38.827 179.2-100.693 240.64zM469.333 213.334h85.333v85.333h-85.333zM128 426.667c0-94.293 38.827-179.2 100.693-240.64l-100.693-100.693h256v256l-95.573-95.573c-46.080 46.507-75.093 110.080-75.093 180.907 0 111.36 71.253 206.080 170.667 241.067v89.173c-147.2-37.973-256-171.093-256-330.24z" />
+<glyph unicode="&#xea4a;" glyph-name="sync-off" d="M853.333 768h-256v-256l95.573 95.573c46.080-46.507 75.093-110.080 75.093-180.907 0-42.667-10.667-82.773-29.013-118.187l62.293-62.293c32.853 52.053 52.053 113.92 52.053 180.48 0 94.293-38.827 179.2-100.693 240.64l100.693 100.693zM122.027 707.84l100.693-100.693c-32.853-52.053-52.053-113.92-52.053-180.48 0-94.293 38.827-179.2 100.693-240.64l-100.693-100.693h256v256l-95.573-95.573c-46.080 46.507-75.093 110.080-75.093 180.907 0 42.667 10.667 82.773 29.013 118.187l344.747-344.747c-10.667-5.547-21.333-10.667-32.853-14.507v-89.173c34.133 8.96 66.133 23.040 95.147 40.96l100.693-100.693 54.187 54.187-670.293 671.147-54.613-54.187zM426.667 667.734v89.173c-34.133-8.96-66.133-23.040-95.147-40.96l62.293-62.293c10.667 5.12 21.333 10.24 32.853 14.080z" />
+<glyph unicode="&#xea4b;" glyph-name="sync" d="M512 170.667c-141.227 0-256 114.773-256 256 0 43.093 10.667 84.053 29.867 119.467l-62.293 62.293c-33.28-52.48-52.907-114.773-52.907-181.76 0-188.587 152.747-341.333 341.333-341.333v-128l170.667 170.667-170.667 170.667zM512 768v128l-170.667-170.667 170.667-170.667v128c141.227 0 256-114.773 256-256 0-43.093-10.667-84.053-29.867-119.467l62.293-62.293c33.28 52.48 52.907 114.773 52.907 181.76 0 188.587-152.747 341.333-341.333 341.333z" />
+<glyph unicode="&#xea4c;" glyph-name="tab-unselected" d="M639.974 42.752h85.333v85.333h-85.333zM469.308 42.752h85.333v85.333l-85.333-0.043zM810.641 384.086h85.333v85.333h-85.333zM810.641 42.752c47.104 0 85.333 38.225 85.333 85.333h-85.333zM298.641 725.417h85.333v85.333h-85.333zM810.641 213.419h85.333v85.333h-85.333zM810.641 810.75h-341.333v-256h426.667v170.667c0 47.104-38.229 85.333-85.333 85.333zM213.307 42.752v85.333h-85.333c0-47.108 38.186-85.333 85.333-85.333zM127.974 213.419h85.333v85.333h-85.333zM298.641 42.752h85.333v85.291l-85.333-0.047zM127.974 725.417h85.333v85.333c-47.147 0-85.333-38.229-85.333-85.333zM127.974 384.086h85.333v85.333h-85.333zM127.974 554.75h85.333v85.333h-85.333v-85.333z" />
+<glyph unicode="&#xea4d;" glyph-name="tab" d="M810.641 128.086l-597.334-0.090v597.421h298.667v-170.667h298.667zM810.641 810.75h-597.334c-47.104 0-85.333-38.229-85.333-85.333v-597.331c0-47.108 38.229-85.333 85.333-85.333h597.334c47.104 0 85.333 38.225 85.333 85.333v597.331c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xea4e;" glyph-name="table-column-plus-after" d="M469.333 853.333c47.13 0 85.333-38.205 85.333-85.333v-682.666c0-47.13-38.204-85.333-85.333-85.333h-384v853.333h384zM170.667 512v-170.667h298.667v170.667h-298.667zM170.667 256v-170.667h298.667v170.667h-298.667zM170.667 768v-170.666h298.667v170.667h-298.667zM640 469.334h128v128h85.333v-128h128v-85.333h-128v-128h-85.333v128h-128v85.333z" />
+<glyph unicode="&#xea4f;" glyph-name="table-column-plus-before" d="M554.667 853.333c-47.13 0-85.333-38.205-85.333-85.333v-682.666c0-47.125 38.204-85.333 85.333-85.333h384v853.333h-384zM853.333 512v-170.667h-298.667v170.667h298.667zM853.333 256v-170.667h-298.667v170.667h298.667zM853.333 768v-170.667h-298.667v170.666h298.667zM384.001 469.334h-128v128h-85.333v-128h-128v-85.333h128v-128h85.333v128h128v85.333z" />
+<glyph unicode="&#xea50;" glyph-name="table-column-remove" d="M170.667 853.333h298.667c47.13 0 85.333-38.205 85.333-85.333v-682.666c0-47.13-38.204-85.333-85.333-85.333h-298.667c-47.128 0-85.333 38.204-85.333 85.333v682.666c0 47.129 38.205 85.333 85.333 85.333zM170.667 512v-170.667h298.667v170.667h-298.667zM170.667 256v-170.667h298.667v170.667h-298.667zM170.667 768v-170.666h298.667v170.666h-298.667zM750.327 426.667l-110.327 110.327 60.339 60.34 110.327-110.327 110.327 110.327 60.339-60.34-110.327-110.327 110.327-110.327-60.339-60.339-110.327 110.327-110.327-110.327-60.339 60.339 110.327 110.327z" />
+<glyph unicode="&#xea51;" glyph-name="table-column-width" d="M213.334 597.334h597.333c47.13 0 85.333-38.205 85.333-85.333v-426.667c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v426.667c0 47.128 38.205 85.333 85.333 85.333zM213.333 426.667v-128h256v128h-256zM554.667 426.667v-128h256v128h-256zM213.333 213.334v-128h256v128h-256zM554.667 213.334v-128h256v128h-256zM469.333 853.333h426.667v-170.666h-85.333v85.333h-256v-85.333h-85.333v170.666z" />
+<glyph unicode="&#xea52;" glyph-name="table-edit" d="M926.020 369.037l-42.816-42.82-87.65 87.65 42.82 42.82c9.139 9.139 23.932 9.139 33.050 0l54.596-54.601c9.139-9.114 9.139-23.91 0-33.050zM512.154 130.471l258.624 258.62 87.65-87.646-258.624-258.624h-87.65v87.65zM170.667 853.333h597.333c47.13 0 85.333-38.205 85.333-85.333v-177.987l-163.345-163.346h-177.988v-177.988l-78.012-78.012h-263.322c-47.128 0-85.333 38.204-85.333 85.333v512c0 47.128 38.205 85.333 85.333 85.333zM170.667 682.667v-170.666h256v170.666h-256zM512 682.667v-170.666h256v170.666h-256zM170.667 426.667v-170.667h256v170.667h-256z" />
+<glyph unicode="&#xea53;" glyph-name="table-large" d="M170.668 810.667h682.666c47.13 0 85.333-38.205 85.333-85.333v-640c0-47.13-38.204-85.333-85.333-85.333h-682.666c-47.128 0-85.333 38.204-85.333 85.333v640c0 47.128 38.205 85.333 85.333 85.333zM170.668 640v-128h170.666v128h-170.666zM426.667 640v-128h170.667v128h-170.667zM853.333 512v128h-170.667v-128h170.667zM170.668 426.667v-128h170.666v128h-170.666zM170.667 85.334h170.666v128h-170.666v-128zM426.666 426.667v-128h170.667v128h-170.667zM426.666 85.334h170.667v128h-170.667v-128zM853.333 85.334v128h-170.667v-128h170.667zM853.333 426.667h-170.667v-128h170.667v128z" />
+<glyph unicode="&#xea54;" glyph-name="table-row-height" d="M128 725.334h512c47.125 0 85.333-38.205 85.333-85.333v-426.667c0-47.13-38.208-85.333-85.333-85.333h-512c-47.128 0-85.333 38.204-85.333 85.333v426.667c0 47.128 38.205 85.333 85.333 85.333zM128 554.667v-128h213.332v128h-213.333zM426.666 554.667v-128h213.334v128h-213.334zM128 341.334v-128h213.332v128h-213.333zM426.666 341.334v-128h213.334v128h-213.334zM981.333 341.334v298.667h-170.667v-85.333h85.333v-128h-85.333v-85.333h170.667z" />
+<glyph unicode="&#xea55;" glyph-name="table-row-plus-after" d="M938.667 512c0-47.13-38.208-85.333-85.333-85.333h-682.667c-47.128 0-85.333 38.204-85.333 85.333v298.667h85.333v-85.333h170.667v85.333h85.333v-85.333h170.667v85.333h85.333v-85.333h170.667v85.333h85.333v-298.667zM170.667 512h170.666v128h-170.666v-128zM426.665 512h170.668v128h-170.668v-128zM853.333 512v128h-170.667v-128h170.667zM469.333 341.334h85.333v-128h128v-85.333h-128v-128h-85.333v128h-128v85.333h128v128z" />
+<glyph unicode="&#xea56;" glyph-name="table-row-plus-before" d="M938.667 341.334c0 47.13-38.208 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333v-298.667h85.333v85.333h170.667v-85.333h85.333v85.333h170.667v-85.333h85.333v85.333h170.667v-85.333h85.333v298.667zM170.667 341.334h170.666v-128h-170.666v128zM426.665 341.334h170.668v-128h-170.668v128zM853.333 341.334v-128h-170.667v128h170.667zM469.333 512h85.333v128h128v85.333h-128v128h-85.333v-128h-128v-85.333h128v-128z" />
+<glyph unicode="&#xea57;" glyph-name="table-row-remove" d="M401.673 384l110.327-110.327 110.327 110.327 60.339-60.339-110.327-110.327 110.327-110.327-60.339-60.339-110.327 110.327-110.327-110.327-60.339 60.339 110.327 110.327-110.327 110.327 60.34 60.339zM938.662 554.667c0-47.129-38.204-85.333-85.329-85.333h-682.667c-47.128 0-85.333 38.204-85.333 85.333l0.002 128c0 47.128 38.205 85.333 85.333 85.333h682.665c47.13 0 85.333-38.205 85.333-85.333l-0.004-128zM170.666 554.666h170.666l0.002 128.001h-170.666l-0.002-128.001zM426.665 554.666h170.668v128l-170.667 0.001-0.002-128.001zM682.667 554.667h170.667v128.001h-170.667v-128z" />
+<glyph unicode="&#xea58;" glyph-name="table" d="M213.333 768h597.333c47.13 0 85.333-38.205 85.333-85.333v-512c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v512c0 47.128 38.205 85.333 85.333 85.333zM213.333 597.334v-170.667h256v170.667h-256zM554.667 597.334v-170.667h256v170.667h-256zM213.333 341.334v-170.667h256v170.667h-256zM554.667 341.334v-170.667h256v170.667h-256z" />
+<glyph unicode="&#xea59;" glyph-name="tablet-android" d="M821.308 128.043h-618.667v682.665h618.667zM597.308 0.043h-170.667v42.667h170.667zM767.974 938.708h-512c-70.699 0-128-57.301-128-128v-767.998c0-70.703 57.301-128 128-128h512c70.699 0 128 57.297 128 128v767.998c0 70.699-57.301 128-128 128z" />
+<glyph unicode="&#xea5a;" glyph-name="tablet-ipad" d="M810.641 128.043h-640v682.665h640zM490.641-42.624c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.328 0 64-28.672 64-64s-28.672-64-64-64zM789.308 938.708h-597.334c-58.923 0-106.667-47.743-106.667-106.666v-810.665c0-58.927 47.744-106.667 106.667-106.667h597.334c58.923 0 106.667 47.74 106.667 106.667v810.665c0 58.923-47.744 106.666-106.667 106.666z" />
+<glyph unicode="&#xea5b;" glyph-name="tablet" d="M810.641 170.748h-597.334v512.001h597.334zM895.974 768.083h-768c-47.147 0-85.333-38.229-85.333-85.333v-512.001c0-47.104 38.186-85.333 85.333-85.333h768c47.104 0 84.907 38.229 84.907 85.333l0.427 512.001c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xea5c;" glyph-name="tag-faces" d="M639.987 170.748c-141.483 0-256.001 114.603-256.001 256 0 141.399 114.518 256.001 256.001 256.001 141.397 0 256-114.603 256-256.001s-114.603-256-256-256zM170.653 384.081c-23.542 0-42.667 19.115-42.667 42.667s19.125 42.667 42.667 42.667c23.542 0 42.667-19.115 42.667-42.667s-19.125-42.667-42.667-42.667zM938.654 810.323l-613.164 0.426c-28.203 0-53.248-13.696-68.796-34.816l-256.708-349.399 256.708-348.971c15.548-21.12 40.593-34.816 68.796-34.816h613.164c47.083 0 85.333 38.187 85.333 85.333v597.335c0 47.147-38.251 84.907-85.333 84.907zM554.654 469.415c23.552 0 42.667 19.115 42.667 42.668s-19.115 42.667-42.667 42.667c-23.552 0-42.667-19.114-42.667-42.667s19.115-42.668 42.667-42.668zM639.987 256.081c79.445 0 143.083 54.545 162.133 128h-324.267c19.051-73.455 82.645-128 162.133-128zM725.321 469.415c23.552 0 42.667 19.115 42.667 42.668s-19.115 42.667-42.667 42.667c-23.552 0-42.667-19.114-42.667-42.667s19.115-42.668 42.667-42.668z" />
+<glyph unicode="&#xea5d;" glyph-name="tag-multiple" d="M234.613 554.688c35.371 0 64 28.674 64 64 0 35.368-28.629 64-64 64-35.328 0-64-28.632-64-64 0-35.326 28.672-64 64-64zM742.818 444.583c15.531-15.445 25.131-36.864 25.131-60.544 0-23.552-9.515-44.843-24.96-60.331l-213.333-213.333c-15.445-15.403-36.779-25.003-60.373-25.003-23.509 0-44.842 9.557-60.33 25.003l-298.581 298.581c-15.488 15.445-25.088 36.821-25.088 60.416l-0.003 213.312c0 47.146 38.229 85.333 85.333 85.333l213.336 0.020c23.595 0 44.928-9.514 60.373-24.962l298.496-298.494zM577.549 695.196l42.667 42.665 293.321-293.318c15.531-15.445 25.131-36.864 25.131-60.544 0-23.552-9.515-44.843-24.96-60.331l-229.513-229.513-42.667 42.667 243.806 247.177-307.785 311.196z" />
+<glyph unicode="&#xea5e;" glyph-name="tag-outline" d="M234.619 640.063c35.371 0 64 28.674 64 64 0 35.368-28.629 64-64 64-35.328 0-64-28.632-64-64 0-35.326 28.672-64 64-64zM913.489 444.604c15.531-15.445 25.131-36.864 25.131-60.544 0-23.552-9.515-44.843-24.96-60.331l-298.667-298.667c-15.445-15.403-36.779-25.003-60.373-25.003-23.509 0-44.843 9.557-60.331 25.003l-383.916 383.915c-15.488 15.445-25.088 36.821-25.088 60.416v298.666c0 47.146 38.229 85.333 85.333 85.333h298.668c23.595 0 44.928-9.514 60.373-24.962l383.829-383.827zM554.667 85.334l298.667 298.667-362.667 362.666-298.667-298.666 362.667-362.667z" />
+<glyph unicode="&#xea5f;" glyph-name="tag-text-outline" d="M234.619 640.063c35.371 0 64 28.674 64 64 0 35.368-28.629 64-64 64-35.328 0-64-28.632-64-64 0-35.326 28.672-64 64-64zM913.489 444.604c15.531-15.445 25.131-36.864 25.131-60.544 0-23.552-9.515-44.843-24.96-60.331l-298.667-298.667c-15.445-15.403-36.779-25.003-60.373-25.003-23.509 0-44.843 9.557-60.331 25.003l-383.916 383.915c-15.488 15.445-25.088 36.821-25.088 60.416v298.666c0 47.146 38.229 85.333 85.333 85.333h298.668c23.595 0 44.928-9.514 60.373-24.962l383.829-383.826zM554.667 85.334l298.667 298.667-362.667 362.666-298.667-298.666 362.667-362.667zM430.327 558.326l60.339 60.34 234.667-234.666-60.339-60.343-234.667 234.669zM323.66 451.661l60.34 60.339 170.667-170.671-60.343-60.339-170.663 170.671z" />
+<glyph unicode="&#xea60;" glyph-name="tag" d="M234.619 640.063c-35.328 0-64 28.672-64 64 0 35.37 28.672 64 64 64 35.371 0 64-28.63 64-64 0-35.328-28.629-64-64-64zM913.489 444.604l-383.829 383.828c-15.445 15.445-36.779 24.961-60.373 24.961h-298.668c-47.104 0-85.333-38.188-85.333-85.333v-298.667c0-23.595 9.6-44.971 25.088-60.416l383.916-383.915c15.488-15.445 36.821-25.003 60.331-25.003 23.595 0 44.928 9.6 60.373 25.003l298.667 298.667c15.445 15.488 24.96 36.779 24.96 60.331 0 23.68-9.6 45.099-25.131 60.544z" />
+<glyph unicode="&#xea61;" glyph-name="taxi" d="M213.308 469.415l64 192.001h469.333l64-192.001zM746.641 256.081c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.371 0 64-28.672 64-64s-28.629-64-64-64zM277.308 256.081c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.371 0 64-28.672 64-64s-28.629-64-64-64zM807.185 682.28c-8.661 25.131-32.512 43.136-60.544 43.136h-106.667v85.333h-256v-85.333h-106.667c-28.032 0-51.84-18.005-60.501-43.136l-88.832-255.532v-341.333c0-23.552 19.115-42.667 42.667-42.667h42.667c23.595 0 42.667 19.115 42.667 42.667v42.667h512v-42.667c0-23.552 19.115-42.667 42.667-42.667h42.667c23.595 0 42.667 19.115 42.667 42.667v341.333l-88.789 255.532z" />
+<glyph unicode="&#xea62;" glyph-name="teamviewer" d="M810.662 810.665c47.104 0 85.333-38.229 85.333-85.333v-597.332c0-47.147-38.229-85.333-85.333-85.333h-597.331c-47.104 0-85.333 38.187-85.333 85.333v597.332c0 47.104 38.229 85.333 85.333 85.333h597.331zM512 725.333c-164.949 0-298.667-133.717-298.667-298.666s133.717-298.667 298.667-298.667c164.949 0 298.667 133.717 298.667 298.667s-133.717 298.666-298.667 298.666zM298.667 426.667l128 128v-85.333h170.667v85.333l128-128-128-128v85.333h-170.667v-85.333l-128 128z" />
+<glyph unicode="&#xea63;" glyph-name="telegram" d="M417.176 143.087l12.038 180.292 327.902 295.854c14.391 12.773-3.145 19.002-22.251 7.416l-404.702-255.322-174.807 54.558c-37.751 11.558-38.022 37.5 8.476 56.149l681.216 262.741c31.113 14.126 61.141-7.472 49.263-55.091l-116.006-546.667c-8.102-38.848-31.573-48.141-64.098-30.195l-176.704 130.551-84.966-82.607c-9.843-9.621-17.681-17.681-35.359-17.681z" />
+<glyph unicode="&#xea64;" glyph-name="television-guide" d="M896 213.334v512h-768v-512h768zM896 810.667c46.933 0 85.333-38.4 85.333-85.333l-0.427-512c0-46.933-37.973-85.333-84.907-85.333h-213.333v-85.333h-341.333v85.333h-213.333c-46.933 0-85.333 38.4-85.333 85.333v512c0 46.933 38.4 85.333 85.333 85.333h768zM213.333 640h256v-170.666h-256v170.666zM213.333 384h256v-85.333h-256v85.333zM554.667 640h256v-85.333h-256v85.333zM554.667 469.334h256v-170.667h-256v170.667z" />
+<glyph unicode="&#xea65;" glyph-name="television" d="M896 213.334h-768v512h768zM896 810.667h-768c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h213.333v-85.333h341.333v85.333h213.333c46.933 0 84.915 38.4 84.915 85.333l0.418 512c0 46.933-38.4 85.333-85.333 85.333z" />
+<glyph unicode="&#xea66;" glyph-name="temperature-celsius" d="M704 725.334c66.193 0 127.689-20.097 178.726-54.522l-49.421-123.546c-34.121 31.103-79.497 50.069-129.306 50.069-106.039 0-192-85.961-192-192s85.961-192 192-192c43.814 0 84.203 14.677 116.514 39.381l48.614-121.54c-48.205-29.099-104.713-45.841-165.129-45.841-176.73 0-320 143.27-320 320s143.27 320 320 320zM256 810.667c70.692 0 128-57.308 128-128s-57.308-128-128-128c-70.692 0-128 57.307-128 128s57.308 128 128 128zM256 725.334c-23.564 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667z" />
+<glyph unicode="&#xea67;" glyph-name="temperature-fahrenheit" d="M469.333 85.334v640h384v-128h-256v-128h213.333v-128h-213.333v-256h-128zM256 810.667c70.692 0 128-57.308 128-128s-57.308-128-128-128c-70.693 0-128 57.307-128 128s57.308 128 128 128zM256 725.334c-23.564 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667z" />
+<glyph unicode="&#xea68;" glyph-name="temperature-kelvin" d="M213.333 810.667c70.692 0 128-57.308 128-128s-57.307-128-128-128c-70.692 0-128 57.308-128 128s57.308 128 128 128zM213.333 725.334c-23.564 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667zM426.667 725.334h128v-256l213.333 256h171.204l-218.91-246.451 218.372-393.549h-154.338l-154.739 291.43-74.923-84.352v-207.078h-128v640z" />
+<glyph unicode="&#xea69;" glyph-name="tennis" d="M512 853.334c105.877 0 202.752-38.566 277.333-102.418-91.405-78.254-149.333-194.487-149.333-324.249s57.929-245.995 149.333-324.25c-74.581-63.851-171.456-102.417-277.333-102.417-105.879 0-202.751 38.566-277.333 102.417 91.406 78.255 149.333 194.487 149.333 324.25s-57.927 245.995-149.333 324.249c74.583 63.851 171.454 102.417 277.333 102.417zM938.667 426.667c0-98.97-33.698-190.071-90.249-262.455-75.209 62.613-123.085 156.945-123.085 262.455 0 105.512 47.876 199.843 123.085 262.455 56.55-72.382 90.249-163.483 90.249-262.455zM85.333 426.667c0 98.971 33.698 190.072 90.247 262.455 75.212-62.612 123.087-156.943 123.087-262.455 0-105.51-47.875-199.842-123.087-262.455-56.549 72.384-90.247 163.486-90.247 262.455z" />
+<glyph unicode="&#xea6a;" glyph-name="tent" d="M170.667 682.667c0-50.973 16.759-96.726 42.667-128-70.693 0-128 57.307-128 128s57.308 128 128.665 127.998c-26.572-31.273-43.332-77.026-43.332-127.998zM85.333 42.667v85.333h117.632l309.035 606.515 309.035-606.515h117.632v-85.333h-853.333zM512 546.552l-213.263-418.552h426.528l-213.265 418.552z" />
+<glyph unicode="&#xea6b;" glyph-name="terrain" d="M597.308 682.749l-160-213.335 121.6-162.133-68.267-51.2c-72.021 96-192 256.001-192 256.001l-256-341.335h938.667l-384 512.001z" />
+<glyph unicode="&#xea6c;" glyph-name="text-to-speech-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-228.177 228.181c-35.746-72.422-104.73-125.5-187.034-139.307v-88.875h-85.333v88.875c-121.076 20.309-213.333 125.611-213.333 252.459h85.333c0-94.259 76.41-170.667 170.666-170.667 77.795 0 143.433 52.049 163.985 123.226l-78.652 78.652v-31.211c0-47.13-38.205-85.333-85.333-85.333s-85.333 38.204-85.333 85.333v201.878l-170.667 170.667zM913.673 536.994l-181.018-181.021 42.854 156.028h-178.176c-47.13 0-85.333 38.205-85.333 85.333v170.666c0 47.128 38.204 85.333 85.333 85.333h256c47.13 0 85.333-38.205 85.333-85.333v-170.666c0-23.564-9.553-44.898-24.994-60.34z" />
+<glyph unicode="&#xea6d;" glyph-name="text-to-speech" d="M341.334 640c47.128 0 85.333-38.205 85.333-85.333v-213.333c0-47.13-38.205-85.333-85.333-85.333s-85.333 38.204-85.333 85.333v213.333c0 47.128 38.205 85.333 85.333 85.333zM597.333 341.334c0-126.848-92.258-232.149-213.333-252.459v-88.875h-85.333v88.875c-121.076 20.309-213.333 125.611-213.333 252.459h85.333c0-94.255 76.41-170.667 170.666-170.667 94.255 0 170.667 76.412 170.667 170.667h85.333zM913.673 536.994l-181.018-181.021 42.854 156.028h-178.176c-47.13 0-85.333 38.205-85.333 85.333v170.666c0 47.128 38.204 85.333 85.333 85.333h256c47.13 0 85.333-38.205 85.333-85.333v-170.666c0-23.564-9.553-44.898-24.994-60.34z" />
+<glyph unicode="&#xea6e;" glyph-name="texture" d="M396.373 42.667h120.747l378.88 378.88v120.747zM810.667 42.667c23.467 0 44.8 9.387 60.16 25.173 15.787 15.36 25.173 36.693 25.173 60.16v85.333l-170.667-170.667zM213.333 810.667c-46.933 0-85.333-38.4-85.333-85.333v-85.333l170.667 170.667zM506.88 810.667l-378.88-378.88v-120.747l499.627 499.627zM832.427 807.254l-701.013-701.013c3.84-14.507 11.52-27.733 21.76-38.4 10.667-10.24 23.893-17.92 38.4-21.76l701.44 701.013c-8.107 29.44-31.147 52.48-60.587 60.16z" />
+<glyph unicode="&#xea6f;" glyph-name="theater" d="M170.667 298.667h85.333c47.128 0 85.333-38.204 85.333-85.333v-85.333h42.667v85.333c0 47.13 38.205 85.333 85.333 85.333h85.333c47.13 0 85.333-38.204 85.333-85.333v-85.333h42.667v85.333c0 47.13 38.204 85.333 85.333 85.333h85.333c47.13 0 85.333-38.204 85.333-85.333v-85.333h42.667v-128h-938.667v128h42.667v85.333c0 47.13 38.205 85.333 85.333 85.333zM469.333 640l170.667-128-170.667-128v256zM170.667 853.333h682.667c47.13 0 85.333-38.205 85.333-85.333v-406.831c-25.105 14.519-54.246 22.831-85.333 22.831v384h-682.667v-384c-31.086 0-60.23-8.311-85.333-22.831v406.831c0 47.128 38.205 85.333 85.333 85.333z" />
+<glyph unicode="&#xea70;" glyph-name="theme-light-dark" d="M320 853.333c-76.333-49.128-128-135.863-128-234.666s51.667-185.54 129.457-234.662c-131.060-0.004-236.124 105.058-236.124 234.662 0 129.603 105.064 234.666 234.667 234.666zM813.7 788.706l60.339-60.34-663.738-663.738-60.34 60.339 663.739 663.739zM549.948 685.466l-63.296 39.805-61.443-42.605 18.299 72.497-59.507 45.271 74.603 5 24.666 70.583 27.81-69.406 74.752-1.648-57.417-47.895 21.534-71.602zM409.023 531.772l-49.228 30.96-47.79-33.137 14.232 56.386-46.283 35.211 58.024 3.889 19.185 54.898 21.629-53.983 58.14-1.282-44.657-37.252 16.747-55.691zM810.667 362.667c0-129.604-105.062-234.667-234.667-234.667-52.13 0-100.292 16.998-139.238 45.756l328.149 328.149c28.757-38.95 45.756-87.108 45.756-139.238zM622.972 81.818l118.259 48.986-10.146-142.75-108.113 93.764zM807.701 196.911l48.986 118.259 93.764-108.113-142.75-10.146zM856.939 408.918l-48.981 118.258 142.75-10.145-93.769-108.113zM410.819 131.051l118.257-48.986-108.112-93.764-10.144 142.75z" />
+<glyph unicode="&#xea71;" glyph-name="thermometer-lines" d="M725.333 810.667l170.667-0.001v-85.333l-170.667 0.001v85.333zM725.333 639.999l170.667-0.001v-85.333l-170.667 0.001v85.333zM725.333 469.334h170.667v-85.333h-138.867l-31.799 38.357v46.976zM896 298.667v-85.333h-85.333c0 29.653-4.322 58.295-12.369 85.333h97.702zM725.333 213.334c0-117.82-95.514-213.333-213.333-213.333-117.821 0-213.333 95.514-213.333 213.333 0 69.794 33.517 131.763 85.333 170.684v341.316c0 70.693 57.306 128 128 128 70.69 0 128-57.307 128-128v-341.316c51.814-38.921 85.333-100.89 85.333-170.684zM469.333 597.331v-263.281c-49.715-17.57-85.333-64.986-85.333-120.717 0-70.694 57.306-128 128-128 70.69 0 128 57.306 128 128 0 55.731-35.618 103.147-85.333 120.717l-0.004 263.281h-85.329zM298.666 810.667v-85.333l-170.665-0.001v85.333l170.665 0.001zM298.667 640v-85.333l-170.666-0.001v85.333l170.666 0.001zM298.667 469.334v-46.976l-31.8-38.357h-138.865v85.333h170.666zM128 298.667h97.701c-8.047-27.038-12.368-55.68-12.368-85.333h-85.333v85.333z" />
+<glyph unicode="&#xea72;" glyph-name="thermometer" d="M725.333 213.334c0-117.82-95.514-213.333-213.333-213.333-117.821 0-213.333 95.514-213.333 213.333 0 69.794 33.517 131.763 85.333 170.684v341.316c0 70.693 57.306 128 128 128 70.69 0 128-57.307 128-128v-341.316c51.814-38.921 85.333-100.89 85.333-170.684zM469.333 597.331v-263.281c-49.715-17.57-85.333-64.986-85.333-120.717 0-70.694 57.306-128 128-128 70.69 0 128 57.306 128 128 0 55.731-35.618 103.147-85.333 120.717l-0.004 263.281h-85.329z" />
+<glyph unicode="&#xea73;" glyph-name="thumb-down-outline" d="M810.641 298.752v511.998h170.667v-511.998h-170.667zM639.974 810.75c47.104 0 85.333-38.229 85.333-85.333v-426.665c0-23.556-9.557-44.89-25.003-60.331l-281.003-281.003-45.228 45.013c-11.606 11.563-18.772 27.563-18.772 45.222l1.408 13.483 40.705 194.948h-269.441c-47.148 0-85.333 38.187-85.333 85.333v85.329c0 10.965 2.262 21.423 6.016 31.019l128.726 300.931c12.97 30.59 43.264 52.052 78.592 52.052h384zM640 725.334h-385.119l-126.881-298.914v-85.086h374.822l-48.218-226.846 185.395 185.391v425.455z" />
+<glyph unicode="&#xea74;" glyph-name="thumb-down" d="M810.641 298.752h170.667v511.998h-170.667zM639.974 810.75h-384c-35.328 0-65.621-21.461-78.592-52.052l-128.725-300.931c-3.754-9.596-6.016-20.049-6.016-31.014v-85.333c0-47.147 38.186-85.333 85.333-85.333h269.44l-40.703-194.944c-0.896-4.356-1.409-8.832-1.409-13.487 0-17.664 7.167-33.664 18.774-45.227l45.226-45.009 281.003 281.003c15.445 15.445 25.003 36.779 25.003 60.331v426.665c0 47.104-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xea75;" glyph-name="thumb-up-outline" d="M213.333 554.667v-512h-170.667v512h170.667zM384 42.667c-47.104 0-85.333 38.229-85.333 85.333v426.667c0 23.552 9.557 44.885 25.003 60.33l281.002 281.003 45.227-45.014c11.605-11.562 18.773-27.562 18.773-45.225l-1.408-13.483-40.704-194.944h269.44c47.147 0 85.333-38.188 85.333-85.333v-85.333c0-10.965-2.261-21.419-6.016-31.019l-128.725-300.928c-12.971-30.592-43.264-52.053-78.592-52.053h-384zM383.974 128.086h385.118l126.882 298.91v85.088h-374.822l48.218 226.848-185.396-185.394v-425.452z" />
+<glyph unicode="&#xea76;" glyph-name="thumb-up" d="M981.308 512.084c0 47.146-38.187 85.333-85.333 85.333h-269.44l40.704 194.943c0.896 4.354 1.408 8.833 1.408 13.484 0 17.664-7.168 33.664-18.773 45.227l-45.227 45.013-281.003-281.003c-15.445-15.445-25.003-36.778-25.003-60.331v-426.665c0-47.108 38.229-85.333 85.333-85.333h384c35.328 0 65.621 21.457 78.592 52.049l128.725 300.932c3.755 9.596 6.016 20.049 6.016 31.019v85.331zM42.641 42.752h170.667v511.998h-170.667v-511.998z" />
+<glyph unicode="&#xea77;" glyph-name="thumbs-up-down" d="M960 490.667h-288c-26.453 0-49.067-16.213-58.88-38.827l-96.427-225.707c-2.987-7.253-4.693-15.36-4.693-23.467v-53.333c0-23.467 19.2-42.667 42.667-42.667h221.013l-28.16-135.68-0.853-10.24c0-13.227 5.547-25.173 14.080-34.133l33.707-33.28 210.773 210.773c11.52 11.52 18.773 27.733 18.773 45.227v277.333c0 35.413-28.587 64-64 64zM512 661.334c0 23.467-19.2 42.667-42.667 42.667h-221.013l28.16 135.68 0.853 9.813c0 13.227-5.547 25.173-14.080 34.133l-33.707 33.707-210.773-210.773c-11.52-11.52-18.773-27.733-18.773-45.227v-277.333c0-35.413 28.587-64 64-64h288c26.453 0 49.067 16.213 58.88 38.827l96.427 225.707c2.987 7.253 4.693 15.36 4.693 23.467v53.333z" />
+<glyph unicode="&#xea78;" glyph-name="ticket-account" d="M853.291 426.757c0-47.147 38.229-85.333 85.333-85.333v-170.667c0-47.147-38.187-85.333-85.333-85.333h-682.667c-47.104 0-85.333 38.187-85.333 85.333l0.171 170.667c47.061 0.085 85.163 38.229 85.163 85.333 0 47.019-38.059 85.12-85.035 85.292l0.171 170.709c0 47.104 37.76 85.333 84.864 85.333h682.667c47.147 0 85.333-38.229 85.333-85.333v-170.667c-47.104 0-85.333-38.231-85.333-85.335zM704 245.334c0 64-128 96-192 96s-191.998-32-191.998-96v-32h383.998v32zM512 416c52.992 0 96 42.923 96 96 0 52.992-43.008 96-96 96s-96-43.008-96-96c0-53.077 43.008-96 96-96z" />
+<glyph unicode="&#xea79;" glyph-name="ticket" d="M664.619 221.957l-152.661 98.133-152.619-98.133 45.952 175.616-140.331 114.775 181.12 10.624 65.877 168.32 65.92-168.32 181.12-10.624-140.373-114.775zM853.291 426.757c0 47.104 38.229 85.335 85.333 85.335v170.667c0 47.104-38.187 85.333-85.333 85.333h-682.667c-47.104 0-84.864-38.229-84.864-85.333l-0.171-170.709c46.976-0.172 85.035-38.274 85.035-85.292 0-47.104-38.101-85.248-85.163-85.333l-0.171-170.667c0-47.147 38.229-85.333 85.333-85.333h682.667c47.147 0 85.333 38.187 85.333 85.333v170.667c-47.104 0-85.333 38.187-85.333 85.333z" />
+<glyph unicode="&#xea7a;" glyph-name="tie" d="M565.333 703.999l74.667-533.332-117.333-170.667h-21.333l-117.334 170.667 74.667 533.332-74.667 106.667v42.667h256v-42.667l-74.667-106.668z" />
+<glyph unicode="&#xea7b;" glyph-name="tile-four" d="M128 725.334h341.333v-298.667h-341.333v298.667zM512 725.334h341.333v-298.667h-341.333v298.667zM128 384h341.333v-298.667h-341.333v298.667zM512 384h341.333v-298.667h-341.333v298.667z" />
+<glyph unicode="&#xea7c;" glyph-name="timelapse" d="M511.974 85.415c-188.544 0-341.333 152.789-341.333 341.333 0 188.503 152.832 341.335 341.333 341.335s341.333-152.789 341.333-341.335c0-188.501-152.832-341.333-341.333-341.333zM511.974 853.416c-235.648 0-426.667-191.019-426.667-426.668 0-235.648 191.019-426.667 426.667-426.667s426.667 191.019 426.667 426.667c0 235.649-191.019 426.668-426.667 426.668zM693.009 607.784c-50.005 49.963-115.533 74.923-181.035 74.965v-256.001l-181.041-181.035c100.017-99.968 262.108-99.925 362.076 0 99.968 100.011 99.968 262.059 0 362.071z" />
+<glyph unicode="&#xea7d;" glyph-name="timer-3" d="M890.453 325.547c-5.973 11.947-14.933 22.613-26.88 31.573s-26.027 16.64-43.093 22.613c-17.067 5.973-36.267 11.52-57.6 16.213-14.933 2.987-27.307 6.4-37.12 9.813s-17.493 6.827-23.467 10.667c-5.973 3.84-9.813 8.107-11.947 12.8s-3.413 10.24-3.413 16.64c0 6.4 1.28 11.947 3.84 17.493s6.4 10.667 11.52 14.507c5.12 4.267 11.52 7.68 19.2 10.24s17.067 3.84 27.307 3.84c10.667 0 20.053-1.707 28.16-4.693s14.933-7.253 20.48-12.373c5.547-5.12 9.387-11.093 12.373-17.92 2.56-6.827 4.267-13.653 4.267-20.907h83.2c0 16.64-3.413 32-10.24 46.507s-16.64 26.88-29.44 37.547c-12.8 10.667-28.16 18.773-46.507 25.173s-39.253 9.387-62.293 9.387c-21.76 0-41.813-2.987-59.307-8.96s-32.853-14.080-45.227-24.32c-12.373-10.24-21.76-22.187-28.587-35.84s-9.813-27.733-9.813-43.093c0-15.36 3.413-29.013 9.813-40.96s15.787-22.187 27.307-31.147c11.52-8.96 25.6-16.213 41.813-22.613 16.213-5.973 34.56-11.093 54.187-15.36 16.64-3.413 30.293-7.253 40.533-11.093s18.347-8.107 24.32-12.373c5.547-4.267 9.387-9.387 11.52-14.507s2.987-10.667 2.987-16.64c0-13.653-5.547-24.32-17.067-32.853s-28.16-12.373-49.92-12.373c-9.387 0-18.347 0.853-27.307 3.413-8.96 2.133-17.067 5.547-23.893 10.24-7.253 4.693-12.8 11.093-17.493 18.773s-7.253 17.493-7.68 28.587h-80.64c0-15.36 3.413-30.293 10.24-44.8s16.64-27.733 29.867-39.68c13.227-11.52 29.44-20.907 49.067-28.16s41.813-10.667 67.413-10.667c22.613 0 43.093 2.56 61.44 8.107s34.133 13.227 47.36 23.040c13.227 9.813 23.040 21.76 30.293 35.413s10.667 28.587 10.667 45.227c-0.853 17.067-3.84 31.573-10.24 43.52zM495.36 385.28c-6.827 10.24-15.36 19.627-26.453 27.733-10.667 8.107-23.893 14.933-39.68 20.48 12.8 5.973 24.32 12.8 34.133 21.333s17.92 17.493 24.32 27.307c6.4 9.813 11.52 19.627 14.507 30.293 3.413 10.24 4.693 20.907 4.693 31.147 0 23.467-3.84 44.373-11.947 62.293-7.68 17.92-18.773 32.853-33.28 45.227-14.080 11.947-31.147 21.333-51.2 27.307-19.2 5.547-41.387 8.533-65.28 8.533-23.467 0-45.227-3.413-64.853-10.24-20.053-7.253-37.12-17.067-51.2-29.44s-25.6-26.88-33.28-43.947c-8.533-16.64-12.373-35.413-12.373-55.040h84.48c0 11.093 2.133 20.907 5.973 29.44s9.387 16.213 16.213 22.187c7.253 5.973 15.36 10.667 24.747 14.080s19.627 5.12 31.147 5.12c26.027 0 45.227-6.827 58.027-20.053s18.773-32 18.773-56.32c0-11.52-1.707-22.187-5.12-31.573s-8.96-17.493-16.213-24.32c-7.253-6.827-16.213-11.947-26.88-15.787s-23.467-5.547-37.973-5.547h-49.92v-66.987h50.347c14.507 0 27.307-1.707 38.827-4.693 11.52-3.413 21.333-8.107 29.44-14.933s14.507-15.36 18.773-26.027c4.267-10.24 6.827-23.040 6.827-37.12 0-26.453-7.68-46.507-22.613-60.587s-35.84-20.907-61.867-20.907c-12.373 0-23.893 1.707-34.133 5.547-10.24 3.413-18.773 8.533-26.027 15.36s-12.8 14.507-16.64 23.893c-3.84 9.387-5.973 19.627-5.973 30.72h-84.907c0-23.467 4.693-43.947 13.653-61.867s21.333-32.853 36.693-44.8c15.36-11.947 32.853-20.907 52.907-26.88s40.96-8.96 63.147-8.96c24.32 0 46.507 3.413 67.413 9.813s38.827 16.213 53.76 29.013c15.36 12.8 27.307 28.16 35.84 46.933 8.533 18.347 12.8 39.68 12.8 63.147 0 12.373-1.707 24.747-4.693 36.693-3.413 10.667-8.107 21.76-14.933 32.427z" />
+<glyph unicode="&#xea7e;" glyph-name="timer-10" d="M550.4 374.614c0-25.6-1.707-47.36-5.12-65.28s-8.533-32.427-15.36-43.52c-6.827-11.093-15.36-19.2-25.173-24.32s-21.76-7.68-34.987-7.68c-12.8 0-24.747 2.56-34.987 7.68s-18.773 13.227-25.6 24.32c-6.827 11.093-12.373 25.6-16.213 43.52s-5.547 39.68-5.547 65.28v106.667c0 25.6 1.707 47.36 5.547 64.853s8.96 31.573 16.213 42.667c6.827 10.667 15.36 18.347 25.6 23.467 10.24 4.693 21.76 7.253 34.56 7.253 13.227 0 24.747-2.56 34.56-7.253 10.24-4.693 18.773-12.373 25.6-23.467 6.827-10.667 12.373-24.747 15.787-42.24s5.547-39.253 5.547-64.853v-107.093zM589.653 637.867c-14.507 17.067-32 29.867-52.48 37.547-20.053 7.68-43.093 11.52-67.84 11.52s-47.36-3.84-67.84-11.52c-20.48-7.68-37.973-20.053-52.48-37.547s-25.6-39.68-33.707-67.84c-7.68-27.733-11.947-61.867-11.947-101.973v-81.92c0-40.107 3.84-74.24 11.947-101.973 8.107-28.16 19.2-50.773 34.133-68.267 14.507-17.493 32-30.293 52.48-37.973s43.093-11.947 67.84-11.947c25.173 0 47.787 3.84 67.84 11.947 20.48 7.68 37.547 20.48 52.053 37.973s25.6 40.107 33.28 68.267c7.68 27.733 11.947 61.867 11.947 101.973v81.92c0 40.107-3.84 74.24-11.947 101.973-7.68 28.16-18.773 50.773-33.28 67.84zM1014.613 325.547c-5.973 11.947-14.933 22.613-26.88 31.573s-26.027 16.64-43.093 22.613c-17.067 5.973-36.267 11.52-57.6 16.213-14.933 2.987-27.307 6.4-37.12 9.813s-17.493 6.827-23.467 10.667c-5.973 3.84-9.813 8.107-11.947 12.8s-3.413 10.24-3.413 16.64c0 5.973 1.28 11.947 3.84 17.493s6.4 10.667 11.52 14.507c5.12 4.267 11.52 7.68 19.2 10.24s17.067 3.84 27.307 3.84c10.667 0 20.053-1.707 28.16-4.693s14.933-7.253 20.48-12.373c5.547-5.12 9.387-11.093 12.373-17.92 2.56-6.827 4.267-13.653 4.267-20.907h83.2c0 16.64-3.413 32-10.24 46.507s-16.64 26.88-29.44 37.547c-12.8 10.667-28.16 18.773-46.507 25.173s-39.253 9.387-62.293 9.387c-21.76 0-41.813-2.987-59.307-8.96s-32.853-14.080-45.227-24.32c-12.373-10.24-21.76-22.187-28.587-35.84s-9.813-27.733-9.813-43.093c0-15.36 3.413-29.44 9.813-40.96 6.4-11.947 15.36-22.187 27.307-31.147 11.52-8.96 25.6-16.213 41.813-22.613 16.213-5.973 34.56-11.093 54.187-15.36 16.64-3.413 30.293-7.253 40.533-11.093s18.347-8.107 24.32-12.373c5.547-4.267 9.387-9.387 11.52-14.507s2.987-10.667 2.987-16.64c0-13.653-5.547-24.32-17.067-32.853s-28.16-12.373-49.92-12.373c-9.387 0-18.347 0.853-27.307 3.413-8.96 2.133-17.067 5.547-23.893 10.24-7.253 4.693-12.8 11.093-17.493 18.773s-7.253 17.493-7.68 28.587h-80.64c0-15.36 3.413-30.293 10.24-44.8s16.64-27.733 29.867-39.68c13.227-11.52 29.44-20.907 49.067-28.16s41.813-10.667 67.413-10.667c22.613 0 43.093 2.56 61.44 8.107s34.133 13.227 47.36 23.040c13.227 9.813 23.040 21.76 30.293 35.413s10.667 28.587 10.667 45.227c-0.853 17.067-3.84 31.573-10.24 43.52zM0 609.28v-71.68l128 42.667v-409.6h85.333v512h-10.667l-202.667-73.387z" />
+<glyph unicode="&#xea7f;" glyph-name="timer-off" d="M512 85.334c-165.12 0-298.667 133.547-298.667 298.667 0 54.613 14.933 105.813 40.533 150.187l407.893-407.893c-43.947-26.027-95.147-40.96-149.76-40.96zM128.853 768l-54.187-54.187 117.333-117.76c-40.533-60.587-64-133.547-64-212.053 0-212.053 171.52-384 384-384 78.507 0 151.467 23.467 212.48 64l106.667-106.667 54.187 54.187-756.48 756.48zM469.333 535.894l85.333-85.333v146.773h-85.333zM640 896h-256v-85.333h256zM812.373 744.534l-60.587-60.587c-66.133 52.48-149.333 84.053-239.787 84.053-78.080 0-150.613-23.467-211.2-63.147l62.293-62.293c43.52 25.173 94.72 40.107 148.907 40.107 165.12 0 298.667-133.547 298.667-298.667 0-54.187-14.933-105.387-40.107-148.907l61.867-61.867c40.107 60.16 63.573 132.693 63.573 210.773 0 90.453-31.573 173.653-84.053 239.36l60.587 60.587-60.16 60.587z" />
+<glyph unicode="&#xea80;" glyph-name="timer-sand" d="M853.333 853.334v-85.333h-85.333v-188.34l-152.994-152.994 152.994-152.994v-188.339h85.333v-85.333h-682.667v85.333h85.333v188.339l152.993 152.994-152.993 152.993v188.34h-85.333v85.333h682.667zM682.667 238.328l-128 128v120.678l128 128v152.993h-341.333v-152.994l128-128v-120.678l-128-128v-24.994h85.333l85.333 85.333 85.333-85.333h85.333v24.994zM512 554.667l-85.333 85.333h170.667l-85.333-85.333z" />
+<glyph unicode="&#xea81;" glyph-name="timer" d="M512 85.334c-165.12 0-298.667 133.547-298.667 298.667s133.547 298.667 298.667 298.667c165.12 0 298.667-133.547 298.667-298.667s-133.547-298.667-298.667-298.667zM811.947 623.36l60.587 60.587c-18.347 21.76-38.4 42.24-60.16 60.16l-60.587-60.587c-66.133 52.907-149.333 84.48-239.787 84.48-212.053 0-384-171.947-384-384s171.52-384 384-384c212.48 0 384 171.947 384 384 0 90.453-31.573 173.653-84.053 239.36zM469.333 341.334h85.333v256h-85.333zM640 896h-256v-85.333h256v85.333z" />
+<glyph unicode="&#xea82;" glyph-name="timetable" d="M597.333 426.667h64v-120.448l104.030-60.062-32-55.424-136.030 78.537v157.397zM170.667 853.333h597.333c47.13 0 85.333-38.205 85.333-85.333v-260.308c52.787-53.871 85.333-127.646 85.333-209.024 0-164.949-133.717-298.667-298.667-298.667-81.378 0-155.153 32.546-209.024 85.333h-260.309c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM170.667 298.667v-128h199.408c-18.429 38.797-28.742 82.193-28.742 128h-170.667zM170.667 597.333h256v128h-256v-128zM768 597.333v128h-256v-128h256zM170.667 384h183.034c14.633 49.165 41.584 93.026 77.275 128h-260.309v-128zM640 505.434c-114.197 0-206.771-92.574-206.771-206.767 0-114.197 92.574-206.771 206.771-206.771 114.193 0 206.767 92.574 206.767 206.771 0 114.193-92.574 206.767-206.767 206.767z" />
+<glyph unicode="&#xea83;" glyph-name="toggle-switch-off" d="M298.663 639.997c117.824 0 213.332-95.511 213.332-213.334 0-117.82-95.511-213.333-213.332-213.333s-213.333 95.514-213.333 213.333c0 117.824 95.508 213.334 213.333 213.334zM853.333 341.325h-256v170.667h256c47.13 0 85.329-38.204 85.329-85.333 0-47.125-38.204-85.333-85.329-85.333zM298.667 554.667c-70.692 0-128-57.306-128-128s57.307-128 128-128c70.692 0 128 57.306 128 128s-57.308 128-128 128z" />
+<glyph unicode="&#xea84;" glyph-name="toggle-switch-on" d="M725.333 639.997c117.824 0 213.333-95.511 213.333-213.334 0-117.82-95.514-213.333-213.333-213.333-117.824 0-213.333 95.514-213.333 213.333 0 117.824 95.505 213.334 213.333 213.334zM170.663 341.325c-47.129 0-85.333 38.208-85.333 85.333 0 47.13 38.203 85.333 85.332 85.333h256v-170.667h-255.998z" />
+<glyph unicode="&#xea85;" glyph-name="tooltip-edit" d="M170.667 853.334h682.667c47.13 0 85.333-38.205 85.333-85.333v-512c0-47.13-38.204-85.333-85.333-85.333h-170.667l-170.667-170.667-170.667 170.667h-170.667c-47.128 0-85.333 38.204-85.333 85.333v512c0 47.128 38.205 85.333 85.333 85.333zM768 341.334v85.333h-234.667l-85.333-85.333h320zM256 341.334h105.601l293.461 293.503c8.363 8.321 8.363 21.846 0 30.166l-75.392 75.435c-8.363 8.32-21.845 8.32-30.208 0l-293.462-293.503v-105.6z" />
+<glyph unicode="&#xea86;" glyph-name="tooltip-image" d="M170.667 853.334h682.667c47.13 0 85.333-38.205 85.333-85.333v-512c0-47.13-38.204-85.333-85.333-85.333h-170.667l-170.667-170.667-170.667 170.667h-170.667c-47.128 0-85.333 38.204-85.333 85.333v512c0 47.128 38.205 85.333 85.333 85.333zM810.667 298.667v341.333l-170.667-170.666-85.333 85.333-256-256h512zM298.667 725.334c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333c47.128 0 85.333 38.205 85.333 85.333s-38.205 85.333-85.333 85.333z" />
+<glyph unicode="&#xea87;" glyph-name="tooltip-outline-plus" d="M170.667 853.334h682.667c47.13 0 85.333-38.205 85.333-85.333v-512c0-47.13-38.204-85.333-85.333-85.333h-170.667l-170.667-170.667-170.667 170.667h-170.667c-47.128 0-85.333 38.204-85.333 85.333v512c0 47.128 38.205 85.333 85.333 85.333zM170.667 768v-512h206.013l135.321-135.322 135.322 135.322h206.012v512h-682.667zM469.333 682.667h85.333v-128h128v-85.333h-128v-128h-85.333v128h-128v85.333h128v128z" />
+<glyph unicode="&#xea88;" glyph-name="tooltip-outline" d="M170.667 853.334h682.667c47.13 0 85.333-38.205 85.333-85.333v-512c0-47.13-38.204-85.333-85.333-85.333h-170.667l-170.667-170.667-170.667 170.667h-170.667c-47.128 0-85.333 38.204-85.333 85.333v512c0 47.128 38.205 85.333 85.333 85.333zM170.667 768v-512h206.013l135.32-135.322 135.322 135.322h206.012v512h-682.667z" />
+<glyph unicode="&#xea89;" glyph-name="tooltip-text" d="M170.667 853.334h682.667c47.13 0 85.333-38.205 85.333-85.333v-512c0-47.13-38.204-85.333-85.333-85.333h-170.667l-170.667-170.667-170.667 170.667h-170.667c-47.128 0-85.333 38.204-85.333 85.333v512c0 47.128 38.205 85.333 85.333 85.333zM213.333 725.333v-85.333h597.333v85.333h-597.333zM213.333 554.667v-85.333h426.667v85.333h-426.667zM213.333 384v-85.333h512v85.333h-512z" />
+<glyph unicode="&#xea8a;" glyph-name="tooltip" d="M170.667 853.334h682.667c47.13 0 85.333-38.205 85.333-85.333v-512c0-47.13-38.204-85.333-85.333-85.333h-170.667l-170.667-170.667-170.667 170.667h-170.667c-47.128 0-85.333 38.204-85.333 85.333v512c0 47.128 38.205 85.333 85.333 85.333z" />
+<glyph unicode="&#xea8b;" glyph-name="tor" d="M512 341.334c-42.667 0-128-42.667-128-85.333 0-85.333 128-85.333 128-85.333v42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667v42.667zM512 128c0 0-170.667 21.333-170.667 106.667 0 128 128 160 170.667 160v53.333c-42.667 0-213.333-64-213.333-192 0-170.667 213.333-170.667 213.333-170.667v42.667zM429.751 638.659l50.701-22.555c18.432 104.314 67.371 172.827 67.371 172.827-18.133-43.522-30.14-79.691-38.089-108.507 51.908 106.884 156.16 172.91 156.16 172.91-50.419-50.419-87.134-104.752-112.661-150.463 67.729 71.645 160.964 118.261 160.964 118.262-114.586-73.334-166.541-189.724-179.268-222.145l23.561-3.264c0-22.128 0.068-42.935 10.803-59.035 32.201-80.504 198.707-87.48 198.707-280.688s-171.874-256-263.113-256c-91.235 0-291.554 41.327-291.554 256s211.052 216.286 248.619 302.155c5.367 16.101-32.201 80.503-32.201 80.503z" />
+<glyph unicode="&#xea8c;" glyph-name="traffic-light" d="M512.017 554.749c-47.147 0-85.333 38.187-85.333 85.333s38.187 85.333 85.333 85.333c47.147 0 85.333-38.187 85.333-85.333s-38.187-85.333-85.333-85.333zM512.017 341.415c-47.147 0-85.333 38.187-85.333 85.333s38.187 85.335 85.333 85.335c47.147 0 85.333-38.188 85.333-85.335s-38.187-85.333-85.333-85.333zM512.017 128.081c-47.147 0-85.333 38.187-85.333 85.333s38.187 85.333 85.333 85.333c47.147 0 85.333-38.187 85.333-85.333s-38.187-85.333-85.333-85.333zM853.308 512.083h-128v48.725c73.515 18.987 128 85.163 128 164.608h-128v42.667c0 23.552-19.072 42.667-42.667 42.667h-341.334c-23.552 0-42.667-19.115-42.667-42.667v-42.667h-128c0-79.445 54.528-145.621 128-164.608v-48.725h-128c0-79.447 54.528-145.623 128-164.609v-48.725h-128c0-79.445 54.528-145.621 128-164.608v-48.725c0-23.552 19.115-42.667 42.667-42.667h341.334c23.595 0 42.667 19.115 42.667 42.667v48.725c73.515 18.987 128 85.163 128 164.608h-128v48.725c73.515 18.987 128 85.163 128 164.609z" />
+<glyph unicode="&#xea8d;" glyph-name="train" d="M767.974 512.083h-512v213.333h512zM511.974 213.415c-47.147 0-85.333 38.187-85.333 85.333s38.187 85.333 85.333 85.333c47.147 0 85.333-38.187 85.333-85.333s-38.187-85.333-85.333-85.333zM170.641 277.415c0-82.475 66.944-149.333 149.333-149.333l-64-64v-21.333h512v21.333l-64 64c82.56 0 149.333 66.859 149.333 149.333v448.001c0 149.333-152.832 170.667-341.333 170.667s-341.333-21.333-341.333-170.667v-448.001z" />
+<glyph unicode="&#xea8e;" glyph-name="tram" d="M725.333 170.667c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667c25.6 0 42.667-17.067 42.667-42.667s-17.067-42.667-42.667-42.667zM285.867 482.134l12.8 145.067c0 29.867 25.6 55.467 55.467 55.467h311.467c34.133 0 59.733-25.6 59.733-55.467l12.8-140.8c0-29.867-25.6-55.467-55.467-55.467h-341.333c-29.867-4.267-55.467 21.333-55.467 51.2zM298.667 170.667c-25.6 0-42.667 17.067-42.667 42.667s17.067 42.667 42.667 42.667c25.6 0 42.667-17.067 42.667-42.667s-17.067-42.667-42.667-42.667zM810.667 682.667c0 46.933-38.4 85.333-85.333 85.333h-85.333c0 46.933-38.4 85.333-85.333 85.333h-85.333c-46.933 0-85.333-38.4-85.333-85.333h-85.333c-46.933 0-85.333-38.4-85.333-85.333l-42.667-512c0-46.933 38.4-85.333 85.333-85.333h85.333l-42.667-85.333h430.933l-42.667 85.333h81.067c46.933 0 85.333 38.4 85.333 85.333l-42.667 512z" />
+<glyph unicode="&#xea8f;" glyph-name="transcribe-close" d="M511.974-42.585l-170.667 170.667h341.334l-170.667-170.667zM853.333 810.667c47.104 0 85.333-38.229 85.333-85.333v-426.667c0-47.104-38.229-85.333-85.333-85.333h-682.667c-47.147 0-85.333 38.229-85.333 85.333l0.426 426.667c0 47.104 37.76 85.333 84.907 85.333h682.667zM768.026 298.586v85.333h-234.667l-85.333-85.333h320zM256.025 298.586h105.601l293.461 293.502c8.363 8.321 8.363 21.847 0 30.166l-75.392 75.435c-8.363 8.32-21.845 8.32-30.208 0l-293.462-293.503v-105.6z" />
+<glyph unicode="&#xea90;" glyph-name="transcribe" d="M853.308 725.416c47.104 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.229-85.333-85.333-85.333h-682.666c-47.147 0-85.333 38.229-85.333 85.333l0.426 426.668c0 47.104 37.76 85.333 84.907 85.333h682.666zM768 213.334v85.333h-234.667l-85.333-85.333h320zM256 213.334h105.601l293.46 293.504c8.363 8.32 8.363 21.846 0 30.165l-75.392 75.435c-8.363 8.32-21.845 8.32-30.208 0l-293.461-293.504v-105.6z" />
+<glyph unicode="&#xea91;" glyph-name="transfer" d="M128 597.334h85.333v-341.333h-85.333v341.333zM298.667 597.334h85.333v-341.333h-85.333v341.333zM469.333 597.334h85.333v-341.333h-85.333v341.333zM640 117.334v618.667l309.333-309.333-309.333-309.333z" />
+<glyph unicode="&#xea92;" glyph-name="trash" d="M341.329 42.663c-47.128 0-85.333 38.204-85.333 85.333l0.004 512.004h512l-0.004-512.004c0-47.13-38.204-85.333-85.333-85.333h-341.333zM213.331 682.666v85.332h149.333l42.667 42.667 213.335 0.002 42.667-42.667 149.333-0.002-0.004-85.333h-597.331z" />
+<glyph unicode="&#xea93;" glyph-name="tree" d="M469.333 42.667v181.594c-20.019-7.078-41.557-10.927-64-10.927-106.039 0-192 85.961-192 192 0 53.99 22.284 102.775 58.156 137.658-9.969 23.221-15.489 48.803-15.489 75.675 0 106.039 85.961 192 192 192 66.675 0 125.41-33.986 159.834-85.579 3.588 0.163 7.202 0.246 10.833 0.246 129.604 0 234.667-105.064 234.667-234.667s-105.062-234.667-234.667-234.667c-22.187 0-43.657 3.081-64 8.832v-222.165h-85.333z" />
+<glyph unicode="&#xea94;" glyph-name="trello" d="M170.667 810.667h682.667c23.565 0 42.667-19.103 42.667-42.667v-682.667c0-23.565-19.102-42.667-42.667-42.667h-682.667c-23.564 0-42.667 19.102-42.667 42.667v682.667c0 23.564 19.102 42.667 42.667 42.667zM234.667 725.334c-11.782 0-21.333-9.551-21.333-21.333v-512c0-11.78 9.551-21.333 21.333-21.333h213.333c11.78 0 21.333 9.553 21.333 21.333v512c0 11.782-9.553 21.333-21.333 21.333h-213.333zM576 725.334c-11.78 0-21.333-9.551-21.333-21.333v-256c0-11.785 9.549-21.333 21.333-21.333h213.333c11.78 0 21.333 9.549 21.333 21.333v256c0 11.782-9.553 21.333-21.333 21.333h-213.333z" />
+<glyph unicode="&#xea95;" glyph-name="trending-down" d="M682.667 170.667l97.707 97.707-208.213 208.213-170.667-170.667-316.16 316.587 60.16 60.16 256-256 170.667 170.667 268.8-268.373 97.707 97.707v-256h-256z" />
+<glyph unicode="&#xea96;" glyph-name="trending-neutral" d="M938.667 426.667l-170.667 170.667v-128h-640v-85.333h640v-128l170.667 170.667z" />
+<glyph unicode="&#xea97;" glyph-name="trending-up" d="M682.667 682.667l97.707-97.707-208.213-208.213-170.667 170.667-316.16-316.587 60.16-60.16 256 256 170.667-170.667 268.8 268.373 97.707-97.707v256h-256z" />
+<glyph unicode="&#xea98;" glyph-name="truck" d="M767.974 149.415c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.328 0 64-28.672 64-64s-28.672-64-64-64zM831.974 533.416l83.797-106.668h-190.464v106.668zM255.975 149.415c-35.328 0-64 28.672-64 64s28.672 64 64 64c35.328 0 64-28.672 64-64s-28.672-64-64-64zM853.308 597.416h-128v170.667h-597.333c-47.147 0-85.333-38.187-85.333-85.333v-469.335h85.333c0-70.699 57.301-128 128-128s128 57.301 128 128h256c0-70.699 57.301-128 128-128s128 57.301 128 128h85.333v213.333l-128 170.668z" />
+<glyph unicode="&#xea99;" glyph-name="tshirt-crew" d="M682.667 42.667h-341.333c-23.564 0-42.667 19.102-42.667 42.667v338.21l-55.32-44.655c-16.662-16.661-43.677-16.661-60.34 0l-120.68 120.678c-16.662 16.663-16.662 43.678 0 60.34l250.758 250.759h70.915c0-47.128 57.306-85.333 128-85.333 70.69 0 128 38.205 128 85.333h70.916l250.756-250.759c16.661-16.662 16.661-43.677 0-60.34l-120.678-120.678c-16.661-16.661-43.678-16.661-60.339 0l-55.322 44.655v-338.21c0-23.565-19.102-42.667-42.667-42.667zM871.164 529.737l-183.761 183.76c-13.069-15.070-29.094-28.375-47.403-39.377-35.657-21.425-79.974-34.121-128-34.121-72.691 0-136.887 29.083-175.404 73.497l-183.759-183.759 60.34-60.34 127.935 85.268h42.889v-426.665h256v426.665h42.889l127.936-85.268 60.339 60.34z" />
+<glyph unicode="&#xea9a;" glyph-name="tshirt-v" d="M682.667 42.667h-341.333c-23.564 0-42.667 19.102-42.667 42.667v338.21l-55.32-44.655c-16.662-16.661-43.677-16.661-60.34 0l-120.68 120.678c-16.662 16.664-16.662 43.679 0 60.341l250.758 250.759h70.915c0-47.128 42.666-128 128-181.333 85.333 53.333 128 134.205 128 181.333h70.916l250.756-250.759c16.661-16.662 16.661-43.677 0-60.341l-120.678-120.678c-16.661-16.661-43.678-16.661-60.339 0l-55.322 44.655v-338.21c0-23.565-19.102-42.667-42.667-42.667zM871.164 529.737l-183.761 183.76c-47.403-73.497-90.069-126.831-175.403-169.498-85.333 42.668-128 96.001-175.404 169.498l-183.76-183.76 60.34-60.34 127.935 85.268h42.888v-426.666h256v426.666h42.889l127.936-85.268 60.339 60.34z" />
+<glyph unicode="&#xea9b;" glyph-name="tumblr-reblog" d="M160 213.334l181.333 181.333v-138.667h426.667v192l85.333 85.333v-277.333c0-47.13-38.204-85.333-85.333-85.333h-426.667v-138.667l-181.333 181.333zM864 640l-181.333-181.333v138.667l-426.667 0.001v-192.001l-85.333-85.333v277.334c0 47.128 38.205 85.333 85.334 85.333l426.667-0.001v138.666l181.333-181.332z" />
+<glyph unicode="&#xea9c;" glyph-name="tumblr" d="M682.641 469.415h-128v-166.4c0-31.275 6.144-46.933 46.933-46.933h81.067v-128c0 0-43.874-4.292-89.6-4.292-112.896 0-166.4 69.274-166.4 145.092v200.533h-85.333v119.468c102.741 8.533 111.744 87.125 119.467 136.533h93.867v-128h128zM853.308 853.416h-682.667c-47.147 0-84.907-38.187-84.907-85.333l-0.427-682.668c0-47.083 38.187-85.333 85.333-85.333h682.667c47.104 0 85.333 38.251 85.333 85.333v682.668c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xea9d;" glyph-name="twitch" d="M170.667 853.333h768v-511.999l-213.333-213.333h-170.667l-128-128h-128v128h-213.333v554.666l85.333 170.667zM853.333 384v384h-597.334v-512h128v-128l128 128h213.333l128 128zM640 640h85.333v-213.333h-85.333v213.333zM512 640v-213.333h-85.333v213.333h85.333z" />
+<glyph unicode="&#xea9e;" glyph-name="twitter-box" d="M755.516 540.665c-2.731-197.079-128.725-332.076-316.8-340.567-77.567-3.499-133.844 21.461-182.74 52.565 57.344-9.173 128.384 13.739 166.485 46.336-56.235 5.504-89.429 34.091-105.131 80.085 16.213-2.859 33.323-2.091 48.811 1.237-50.688 17.024-86.912 48.341-88.875 114.005 14.293-6.485 29.141-12.587 48.811-13.739-38.016 21.589-65.976 100.481-33.835 152.748 56.363-61.824 124.16-112.171 235.391-118.997-27.904 119.339 130.475 184.107 196.608 103.893 28.032 5.419 50.731 16 72.619 27.605-8.96-27.776-26.368-47.104-47.616-62.677 23.211 3.157 43.904 8.832 61.397 17.536-10.752-22.613-34.688-42.965-55.125-60.032zM853.308 853.412h-682.666c-47.104 0-84.907-38.187-84.907-85.333l-0.427-682.668c0-47.104 38.229-85.333 85.333-85.333h682.666c47.104 0 85.333 38.229 85.333 85.333v682.668c0 47.147-38.229 85.333-85.333 85.333z" />
+<glyph unicode="&#xea9f;" glyph-name="twitter-circle" d="M755.516 540.665c20.437 17.067 44.373 37.419 55.125 60.032-17.493-8.704-38.187-14.379-61.397-17.536 21.248 15.573 38.656 34.901 47.616 62.677-21.888-11.605-44.587-22.187-72.619-27.605-66.133 80.213-224.512 15.445-196.608-103.893-111.231 6.827-179.028 57.173-235.391 118.997-32.142-52.266-4.182-131.159 33.835-152.748-19.669 1.152-34.517 7.253-48.811 13.739 1.963-65.664 38.187-96.981 88.875-114.005-15.488-3.328-32.597-4.096-48.81-1.237 15.701-45.995 48.896-74.581 105.13-80.085-38.101-32.597-109.141-55.509-166.485-46.336 48.896-31.104 105.173-56.064 182.74-52.565 188.075 8.491 314.069 143.488 316.8 340.567zM512 853.333c235.639 0 426.667-191.025 426.667-426.666 0-235.644-191.027-426.667-426.667-426.667-235.642 0-426.667 191.023-426.667 426.667 0 235.641 191.025 426.666 426.667 426.666z" />
+<glyph unicode="&#xeaa0;" glyph-name="twitter-retweet" d="M256 693.334l181.333-181.333h-138.667v-256h277.334l85.333-85.333h-362.667c-47.128 0-85.333 38.204-85.333 85.333v256h-138.666l181.333 181.333zM768 160l-181.333 181.333h138.667v256h-277.333l-85.333 85.334h362.667c47.13 0 85.333-38.205 85.333-85.333v-256h138.667l-181.333-181.333z" />
+<glyph unicode="&#xeaa1;" glyph-name="twitter" d="M958.259 682.139c-32.836-14.564-68.13-24.407-105.165-28.833 37.798 22.662 66.837 58.546 80.508 101.306-35.383-20.986-74.569-36.224-116.279-44.434-33.399 35.587-80.986 57.822-133.653 57.822-101.124 0-183.117-81.983-183.117-183.106 0-14.351 1.621-28.327 4.745-41.73-152.183 7.637-287.11 80.536-377.421 191.321-15.763-27.044-24.793-58.498-24.793-92.057 0-63.529 32.326-119.575 81.46-152.414-30.013 0.956-58.252 9.19-82.937 22.905-0.017-0.765-0.017-1.529-0.017-2.301 0-88.721 63.119-162.726 146.885-179.55-15.364-4.186-31.541-6.426-48.241-6.426-11.799 0-23.27 1.152-34.452 3.285 23.302-72.742 90.926-125.687 171.054-127.159-62.668-49.118-141.622-78.391-227.414-78.391-14.78 0-29.356 0.87-43.68 2.564 81.035-51.955 177.286-82.274 280.692-82.274 336.806 0 520.989 279.019 520.989 520.995 0 7.938-0.179 15.835-0.533 23.69 35.78 25.817 66.825 58.066 91.371 94.787z" />
+<glyph unicode="&#xeaa2;" glyph-name="ubuntu" d="M938.675 426.62c0-235.563-191.057-426.62-426.675-426.62-235.606 0-426.673 191.057-426.673 426.62 0 235.714 191.068 426.714 426.673 426.714 235.618 0 426.675-191 426.675-426.714zM611.904 608.485c24.512-14.111 55.855-5.752 69.99 18.788 14.178 24.433 5.764 55.827-18.761 69.965-24.512 14.138-55.855 5.739-69.99-18.761-14.101-24.513-5.769-55.854 18.761-69.992zM506.982 277.031c-22.511 0-43.878 4.945-63.031 13.897l-35.601-63.799c29.7-14.797 63.206-23.049 98.633-23.049 20.617 0 40.559 2.782 59.507 8.051 3.332 20.629 15.59 39.526 35.025 50.842 19.529 11.264 41.984 12.322 61.525 4.894 37.871 37.359 62.532 88.038 66.146 144.538l-73.054 1.007c-6.746-76.48-70.895-136.38-149.15-136.38zM506.982 576.513c78.255 0 142.404-59.98 149.15-136.572l73.054 1.182c-3.614 56.448-28.275 107.154-66.146 144.408-19.541-7.311-42.052-6.276-61.525 5.013-19.435 11.261-31.693 30.158-35.025 50.787-18.948 5.214-38.891 8.104-59.507 8.104-35.426 0-68.932-8.332-98.633-23.076l35.601-63.81c19.153 8.937 40.521 13.964 63.031 13.964zM357.294 426.676c0 50.697 25.065 95.488 63.595 122.569l-37.428 62.829c-44.861-29.97-78.271-75.811-92.154-129.487 16.248-13.227 26.529-33.306 26.529-55.91 0-22.43-10.281-42.522-26.529-55.799 13.883-53.636 47.293-99.452 92.154-129.434l37.428 62.801c-38.53 27.055-63.595 71.795-63.595 122.432zM611.904 244.95c-24.529-14.046-32.862-45.453-18.761-69.897 14.135-24.555 45.478-32.926 69.99-18.816 24.525 14.153 32.969 45.466 18.816 70.003-14.191 24.516-45.534 32.9-70.046 18.709zM245.882 477.974c-28.33 0-51.204-22.955-51.204-51.298 0-28.22 22.874-51.217 51.204-51.217 28.357 0 51.258 22.997 51.258 51.217 0 28.343-22.9 51.298-51.258 51.298z" />
+<glyph unicode="&#xeaa3;" glyph-name="umbrella-outline" d="M512 768c131.968-0.128 248.192-86.869 285.909-213.333h-571.989c37.717 126.549 154.027 213.291 286.080 213.333zM512 853.334c-212.096 0-384-171.904-384-384h341.333v-341.333c0-23.552-19.115-42.667-42.667-42.667s-42.667 19.115-42.667 42.667h-85.333c0-70.699 57.301-128 128-128s128 57.301 128 128v341.333h341.333c0 212.096-171.904 384-384 384z" />
+<glyph unicode="&#xeaa4;" glyph-name="umbrella" d="M512 853.334c-212.096 0-384-171.904-384-384h341.333v-341.333c0-23.552-19.115-42.667-42.667-42.667s-42.667 19.115-42.667 42.667h-85.333c0-70.699 57.301-128 128-128s128 57.301 128 128v341.333h341.333c0 212.096-171.904 384-384 384z" />
+<glyph unicode="&#xeaa5;" glyph-name="undo-variant" d="M576 640c153.165 0 277.333-124.166 277.333-277.333 0-153.169-124.169-277.333-277.333-277.333h-149.335v85.333h149.335c106.039 0 192 85.961 192 192s-85.961 192-192 192h-241.92l131.413-131.84-60.161-60.16-234.666 234.667 234.666 234.665 60.588-60.16-131.84-131.838h241.92zM256 170.667h85.333v-85.333h-85.333v85.333z" />
+<glyph unicode="&#xeaa6;" glyph-name="undo" d="M533.333 597.334c-113.067 0-215.467-42.24-294.4-110.933l-153.6 153.6v-384h384l-154.453 154.453c59.307 49.493 134.827 80.213 218.453 80.213 151.040 0 279.467-98.56 324.267-234.667l101.12 33.28c-59.307 178.773-226.987 308.053-425.387 308.053z" />
+<glyph unicode="&#xeaa7;" glyph-name="unfold-less" d="M707.84 707.84l-60.587 60.16-135.253-135.253-135.253 135.253-60.587-60.16 195.84-195.84zM316.16 145.494l60.587-60.16 135.253 135.253 135.253-135.253 60.16 60.16-195.413 195.84-195.84-195.84z" />
+<glyph unicode="&#xeaa8;" glyph-name="unfold-more" d="M512 163.414l-135.253 135.253-60.16-60.16 195.413-195.84 195.84 195.84-60.587 60.16zM512 689.92l135.253-135.253 60.16 60.16-195.413 195.84-195.84-195.84 60.587-60.16 135.253 135.253z" />
+<glyph unicode="&#xeaa9;" glyph-name="ungroup" d="M85.333 853.334h170.667v-42.667h298.667v42.666h170.667v-170.666h-42.667v-128h85.333v42.667h170.667v-170.667h-42.667v-256h42.667v-170.667h-170.667v42.667h-256v-42.667h-170.667v170.667h42.666v85.333h-128v-42.667h-170.667v170.667h42.667v298.667h-42.667v170.667zM768 426.667v42.667h-85.333v-85.333h42.667v-170.667h-170.667v42.667h-85.333v-85.333h42.667v-42.667h256v42.667h42.667v256h-42.667zM554.667 682.667v42.666h-298.667v-42.667h-42.667v-298.666h42.667v-42.667h128v85.333h-42.667v170.666h170.667v-42.666h85.333v128h-42.667zM512 426.667h-42.667v-85.333h85.333v42.667h42.667v85.333h-85.333v-42.667z" />
+<glyph unicode="&#xeaaa;" glyph-name="untappd" d="M614.963 767.837c0 0 22.327-16.365 23.556-30.060 0.38-4.534-9.86-6.088-12.224-9.504-2.364-3.39 0.862-9.396-1.382-11.741-2.206-2.326-6.758-2.453-10.112-8.751-3.324-6.333-99.964-199.766-114.125-222.759-6.106-17.037-11.093-78.127-15.718-86.443-4.655-8.333-214.435-306.513-222.167-315.507-20.937-24.465-78.757-10.688-122.756 20.962-41.846 30.059-65.78 79.292-49.933 102.409 6.706 9.796 214.843 309.050 221.085 316.273 6.261 7.197 62.010 32.668 75.94 44.199 16.802 21.136 165.82 177.841 170.615 183.13 4.809 5.279 3.371 9.604 4.809 12.485 1.455 2.899 8.171 1.917 10.577 5.306 2.398 3.353-1.916 12.477 2.398 13.922 4.326 1.435 20.211 0.481 39.437-13.922zM462.818 749.242l37.939-39.674-62.882-66.871-34.148 66.789c-3.389 6.325-7.96 6.397-10.196 8.742-2.245 2.326 0.918 8.369-1.454 11.767-2.39 3.408-12.458 2.381-12.376 6.933 0.091 4.579 6.343 19.255 26.398 32.577 0 0 22.944 15.657 36.294 12.186 4.407-1.145 2.462-11.35 4.885-14.712 2.436-3.362 9.182-2.344 10.633-5.225 1.472-2.89 0.064-7.242 4.907-12.513zM935.13 206.964c16.094-27.989-16.35-78.025-60.983-108.992-42.47-29.449-97.041-35.567-113.587-12.813-6.98 9.634-219.985 306.722-224.691 315.038-4.745 8.324-10.108 69.559-16.311 86.609l-1.156 1.916c12.86 23.653 39.458 75.867 67.49 131.37 24.073-25.516 43.644-46.607 49.169-53.449 14.029-11.477 70.106-36.675 76.42-43.881 6.289-7.197 217.732-305.476 223.65-315.797z" />
+<glyph unicode="&#xeaab;" glyph-name="upload" d="M383.974 256.086v255.998h-170.667l298.667 298.667 298.667-298.667h-170.667v-255.998h-256zM213.306 85.415v85.333h597.335v-85.333h-597.335z" />
+<glyph unicode="&#xeaac;" glyph-name="usb" d="M639.974 640.083v-170.668h42.667v-85.333h-128v341.335h85.333l-128 170.667-128-170.667h85.333v-341.335h-128v88.32c30.037 15.659 51.2 46.124 51.2 82.348 0 51.84-42.027 93.867-93.867 93.867s-93.867-42.027-93.867-93.867c0-36.224 21.163-66.689 51.2-82.348v-88.32c0-47.147 38.144-85.333 85.333-85.333h128v-130.176c-30.293-15.573-51.2-46.763-51.2-83.157 0-51.84 42.027-93.867 93.867-93.867s93.867 42.027 93.867 93.867c0 36.395-20.949 67.584-51.2 83.157v130.176h128c47.147 0 85.333 38.187 85.333 85.333v85.333h42.667v170.668h-170.667z" />
+<glyph unicode="&#xeaad;" glyph-name="vector-curve" d="M789.333 853.334c35.345 0 64-28.654 64-64s-28.655-64-64-64c-9.882 0-19.238 2.239-27.593 6.237l-157.585-157.584 13.508-20.188c94.362 54.813 204.019 86.201 321.003 86.201l42.667-1.399v-85.551l-42.667 1.617c-109.969 0-212.463-32.002-298.675-87.202-0.998-92.774-76.015-167.791-168.789-168.789-55.2-86.212-87.203-188.706-87.203-298.675l1.617-42.667h-85.55l-1.399 42.667c0 116.983 31.388 226.641 86.201 321.003l-20.188 13.508-157.584-157.585c3.998-8.354 6.237-17.711 6.237-27.593 0-35.345-28.654-64-64-64s-64 28.655-64 64c0 35.345 28.654 64 64 64 9.88 0 19.238-2.24 27.593-6.238l157.584 157.585c-22.465 28.898-35.843 65.212-35.843 104.653 0 94.257 76.41 170.667 170.667 170.667 39.441 0 75.755-13.377 104.653-35.843l157.585 157.583c-3.998 8.355-6.238 17.713-6.238 27.593 0 35.346 28.655 64 64 64zM469.333 554.667c-47.129 0-85.334-38.205-85.334-85.333 0-47.13 38.205-85.333 85.334-85.333s85.333 38.204 85.333 85.333c0 47.128-38.204 85.333-85.333 85.333z" />
+<glyph unicode="&#xeaae;" glyph-name="vector-point" d="M512 85.334l-213.333-85.333 213.333 469.333 213.333-469.333-213.333 85.333zM341.333 853.333h341.333v-128h256v-85.333h-256v-128h-341.333v128h-256v85.333h256v128zM426.667 768v-170.666h170.667v170.666h-170.667z" />
+<glyph unicode="&#xeaaf;" glyph-name="vector-square" d="M85.333 853.334h256v-85.333h341.333v85.333h256v-256h-85.333v-341.333h85.333v-256h-256v85.333h-341.333v-85.333h-256v256h85.333v341.333h-85.333v256zM682.667 597.334v85.333h-341.333v-85.333h-85.333v-341.333h85.333v-85.333h341.333v85.333h85.333v341.333h-85.333zM170.667 768v-85.333h85.333v85.333h-85.333zM768 768v-85.333h85.333v85.333h-85.333zM170.667 170.667v-85.333h85.333v85.333h-85.333zM768 170.667v-85.333h85.333v85.333h-85.333z" />
+<glyph unicode="&#xeab0;" glyph-name="verified" d="M426.667 213.334l-170.667 170.667 60.16 60.16 110.507-110.080 281.173 281.173 60.16-60.587zM512 896l-384-170.667v-256c0-236.8 163.84-458.24 384-512 220.16 53.76 384 275.2 384 512v256l-384 170.667z" />
+<glyph unicode="&#xeab1;" glyph-name="vibration" d="M682.667 128h-341.333v597.333h341.333zM704 810.667h-384c-35.413 0-64-28.587-64-64v-640c0-35.413 28.587-64 64-64h384c35.413 0 64 28.587 64 64v640c0 35.413-28.587 64-64 64zM810.667 213.334h85.333v426.667h-85.333zM938.667 554.667v-256h85.333v256zM128 213.334h85.333v426.667h-85.333zM0 298.667h85.333v256h-85.333v-256z" />
+<glyph unicode="&#xeab2;" glyph-name="video-off" d="M139.618 853.413l-54.315-54.315 116.394-116.352h-31.061c-23.552 0-42.667-19.115-42.667-42.667v-426.665c0-23.552 19.115-42.667 42.667-42.667h512c8.747 0 16.469 3.285 23.211 7.808l135.851-135.808 54.272 54.315zM895.97 661.413l-170.667-170.665v149.332c0 23.552-19.115 42.667-42.667 42.667h-263.723l477.056-477.059v455.726z" />
+<glyph unicode="&#xeab3;" glyph-name="video-switch" d="M554.641 277.415v106.667h-256v-106.667l-149.333 149.333 149.333 149.335v-106.668h256v106.668l149.333-149.335zM767.974 533.416v149.333c0 23.552-19.072 42.667-42.667 42.667h-597.333c-23.595 0-42.667-19.115-42.667-42.667v-512.001c0-23.552 19.072-42.667 42.667-42.667h597.333c23.595 0 42.667 19.115 42.667 42.667v149.333l170.667-170.667v554.668l-170.667-170.667z" />
+<glyph unicode="&#xeab4;" glyph-name="video" d="M725.333 490.667v149.332c0 23.552-19.115 42.667-42.667 42.667h-512c-23.552 0-42.667-19.115-42.667-42.667v-426.665c0-23.552 19.114-42.667 42.667-42.667h512c23.552 0 42.667 19.115 42.667 42.667v149.333l170.667-170.667v469.332l-170.667-170.665z" />
+<glyph unicode="&#xeab5;" glyph-name="view-agenda" d="M853.333 810.667h-725.333c-23.467 0-42.667-19.2-42.667-42.667v-256c0-23.467 19.2-42.667 42.667-42.667h725.333c23.467 0 42.667 19.2 42.667 42.667v256c0 23.467-19.2 42.667-42.667 42.667zM853.333 384h-725.333c-23.467 0-42.667-19.2-42.667-42.667v-256c0-23.467 19.2-42.667 42.667-42.667h725.333c23.467 0 42.667 19.2 42.667 42.667v256c0 23.467-19.2 42.667-42.667 42.667z" />
+<glyph unicode="&#xeab6;" glyph-name="view-array" d="M341.333 170.667h384v554.667h-384zM768 725.334v-554.667h128v554.667zM170.667 170.667h128v554.667h-128v-554.667z" />
+<glyph unicode="&#xeab7;" glyph-name="view-carousel" d="M768 682.667v-469.333h170.667v469.333zM85.333 213.334h170.667v469.333h-170.667zM298.667 128h426.667v640h-426.667v-640z" />
+<glyph unicode="&#xeab8;" glyph-name="view-column" d="M682.667 725.334v-554.667h213.333v554.667zM170.667 170.667h213.333v554.667h-213.333zM426.667 170.667h213.333v554.667h-213.333v-554.667z" />
+<glyph unicode="&#xeab9;" glyph-name="view-dashboard" d="M554.667 810.667v-256h341.333v256zM554.667 42.667h341.333v426.667h-341.333zM128 42.667h341.333v256h-341.333zM128 384h341.333v426.667h-341.333v-426.667z" />
+<glyph unicode="&#xeaba;" glyph-name="view-day" d="M85.333 810.667v-128h810.667v128zM853.333 597.334h-725.333c-23.467 0-42.667-19.2-42.667-42.667v-256c0-23.467 19.2-42.667 42.667-42.667h725.333c23.467 0 42.667 19.2 42.667 42.667v256c0 23.467-19.2 42.667-42.667 42.667zM85.333 42.667h810.667v128h-810.667v-128z" />
+<glyph unicode="&#xeabb;" glyph-name="view-headline" d="M170.667 725.334v-85.333h725.333v85.333zM170.667 469.334h725.333v85.333h-725.333zM170.667 128h725.333v85.333h-725.333zM170.667 298.667h725.333v85.333h-725.333v-85.333z" />
+<glyph unicode="&#xeabc;" glyph-name="view-list" d="M384 725.334v-170.667h512v170.667zM384 128h512v170.667h-512zM384 341.334h512v170.667h-512zM170.667 554.667h170.667v170.667h-170.667zM170.667 128h170.667v170.667h-170.667zM170.667 341.334h170.667v170.667h-170.667v-170.667z" />
+<glyph unicode="&#xeabd;" glyph-name="view-module" d="M682.667 725.334v-256h213.333v256zM426.667 469.334h213.333v256h-213.333zM682.667 170.667h213.333v256h-213.333zM426.667 170.667h213.333v256h-213.333zM170.667 170.667h213.333v256h-213.333zM170.667 469.334h213.333v256h-213.333v-256z" />
+<glyph unicode="&#xeabe;" glyph-name="view-quilt" d="M426.667 725.334v-256h469.333v256zM682.667 170.667h213.333v256h-213.333zM170.667 170.667h213.333v554.667h-213.333zM426.667 170.667h213.333v256h-213.333v-256z" />
+<glyph unicode="&#xeabf;" glyph-name="view-stream" d="M170.667 725.334v-256h725.333v256zM170.667 170.667h725.333v256h-725.333v-256z" />
+<glyph unicode="&#xeac0;" glyph-name="view-week" d="M554.667 725.334h-128c-23.467 0-42.667-19.2-42.667-42.667v-512c0-23.467 19.2-42.667 42.667-42.667h128c23.467 0 42.667 19.2 42.667 42.667v512c0 23.467-19.2 42.667-42.667 42.667zM853.333 725.334h-128c-23.467 0-42.667-19.2-42.667-42.667v-512c0-23.467 19.2-42.667 42.667-42.667h128c23.467 0 42.667 19.2 42.667 42.667v512c0 23.467-19.2 42.667-42.667 42.667zM256 725.334h-128c-23.467 0-42.667-19.2-42.667-42.667v-512c0-23.467 19.2-42.667 42.667-42.667h128c23.467 0 42.667 19.2 42.667 42.667v512c0 23.467-19.2 42.667-42.667 42.667z" />
+<glyph unicode="&#xeac1;" glyph-name="vimeo" d="M938.667 622.069c-3.802-83.265-61.845-197.284-174.118-341.996-116.075-151.159-214.281-226.739-294.618-226.739-49.751 0-91.88 46.012-126.271 138.086-22.978 84.39-45.939 168.777-68.917 253.167-25.545 92.023-52.942 138.092-82.24 138.092-6.386 0-28.73-13.469-66.999-40.29l-40.17 51.846c42.137 37.093 83.699 74.182 124.595 111.325 56.194 48.649 98.381 74.237 126.495 76.822 66.449 6.394 107.345-39.111 122.692-136.518 16.585-105.101 28.066-170.472 34.517-196.055 19.153-87.194 40.222-130.739 63.249-130.739 17.865 0 44.706 28.284 80.495 84.834 35.75 56.567 54.903 99.605 57.489 129.167 5.094 48.816-14.067 73.286-57.489 73.286-20.442 0-41.51-4.711-63.185-14.028 41.95 137.701 122.125 204.579 240.448 200.765 87.727-2.584 129.079-59.583 124.028-171.025z" />
+<glyph unicode="&#xeac2;" glyph-name="vine" d="M848.644 428.864c-19.785-4.561-38.921-6.571-56.145-6.571-96.9 0-171.503 67.674-171.503 185.346 0 57.676 22.298 87.67 53.833 87.67 29.999 0 49.997-26.916 49.997-81.521 0-31.047-8.316-65.071-14.455-85.201 0 0 29.862-52.089 111.514-36.102 17.34 38.489 26.761 88.338 26.761 132.067 0 117.671-59.989 186.115-169.971 186.115-113.041 0-179.187-86.906-179.187-201.498 0-113.522 53.069-210.964 140.574-255.363-36.796-73.609-83.618-138.445-132.446-187.298-88.596 107.102-168.688 249.975-201.553 528.802h-130.706c60.388-464.371 240.351-612.233 287.933-640.623 26.918-16.154 50.091-15.386 74.705-1.536 38.635 21.969 154.645 137.958 218.944 273.818 26.991 0.077 59.418 3.174 91.708 10.47v91.426z" />
+<glyph unicode="&#xeac3;" glyph-name="vk-box" d="M213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333zM735.424 340.186c-50.108 46.49-43.375 38.959 17.079 119.65 36.817 48.973 51.627 78.888 47.040 91.678-4.459 12.159-31.556 9.045-31.556 9.045l-90.078-0.631c0 0-6.729 0.968-11.652-1.977-4.796-2.987-7.91-9.719-7.91-9.719s-14.302-37.951-33.195-70.177c-40.094-68.198-56.209-71.65-62.771-67.524-15.147 9.843-11.362 39.59-11.362 60.791 0 65.929 10.057 93.529-19.563 100.597-9.677 2.272-16.913 3.955-41.903 4.081-32.183 0.337-59.324 0-74.763-7.531-10.35-5.091-18.259-16.282-13.295-16.955 5.89-0.631 19.395-3.618 26.464-13.295 9.34-12.495 9.003-40.768 9.003-40.768s5.261-77.581-12.495-87.258c-12.159-6.562-28.736 6.899-64.413 68.702-18.385 31.556-32.185 66.56-32.185 66.56l-7.405 10.182-13.8 5.596-85.617-0.337c0 0-12.832 0.169-17.586-5.427-4.123-5.091-0.336-14.473-0.336-14.473s67.063-155.122 142.793-234.004c69.546-72.495 148.602-64.247 148.602-64.247h35.802c0 0 10.688-2.313 16.282 3.575 5.090 5.427 4.924 12.331 4.924 12.331s-0.674 48.004 21.542 55.070c22.003 7.070 50.274-46.362 80.188-66.893 22.511-15.441 39.757-12.16 39.757-12.16l80.064 1.135c0 0 41.737 2.65 21.837 35.511-1.472 2.816-11.486 24.316-59.49 68.873z" />
+<glyph unicode="&#xeac4;" glyph-name="vk-circle" d="M512 853.334c235.639 0 426.667-191.025 426.667-426.667 0-235.644-191.027-426.667-426.667-426.667-235.642 0-426.667 191.023-426.667 426.667 0 235.642 191.025 426.667 426.667 426.667zM735.424 340.186c-50.108 46.49-43.375 38.959 17.084 119.654 36.813 48.969 51.622 78.884 47.036 91.674-4.459 12.159-31.556 9.046-31.556 9.046l-90.078-0.631c0 0-6.729 0.968-11.652-1.978-4.796-2.987-7.91-9.719-7.91-9.719s-14.302-37.947-33.195-70.178c-40.094-68.198-56.209-71.65-62.771-67.524-15.147 9.843-11.358 39.59-11.358 60.791 0 65.929 10.052 93.529-19.567 100.597-9.677 2.272-16.913 3.955-41.903 4.081-32.183 0.336-59.324 0-74.763-7.531-10.35-5.091-18.259-16.282-13.295-16.955 5.89-0.631 19.395-3.618 26.464-13.295 9.34-12.495 9.003-40.768 9.003-40.768s5.261-77.581-12.495-87.258c-12.159-6.562-28.736 6.899-64.413 68.702-18.386 31.556-32.186 66.56-32.186 66.56l-7.405 10.182-13.8 5.595-85.617-0.336c0 0-12.832 0.168-17.586-5.428-4.123-5.091-0.336-14.473-0.336-14.473s67.063-155.122 142.794-234.004c69.545-72.491 148.601-64.247 148.601-64.247h35.802c0 0 10.688-2.313 16.282 3.575 5.090 5.427 4.924 12.331 4.924 12.331s-0.674 48.004 21.542 55.070c22.003 7.070 50.274-46.362 80.188-66.893 22.511-15.441 39.757-12.16 39.757-12.16l80.064 1.135c0 0 41.737 2.65 21.837 35.511-1.472 2.816-11.486 24.316-59.49 68.873z" />
+<glyph unicode="&#xeac5;" glyph-name="vk" d="M833.873 315.755c66.010-61.265 79.778-90.825 81.801-94.703 27.362-45.18-30.025-48.823-30.025-48.823l-110.089-1.562c0 0-23.718-4.514-54.665 16.717-41.131 28.233-80.009 101.7-110.263 91.981-30.545-9.715-29.619-75.725-29.619-75.725s0.235-9.485-6.767-16.947c-7.693-8.102-22.387-4.919-22.387-4.919h-49.229c0 0-108.701-11.337-204.326 88.337-104.129 108.467-196.342 321.759-196.342 321.759s-5.206 12.901 0.463 19.9c6.537 7.694 24.181 7.463 24.181 7.463l117.724 0.463c0 0 11.049-2.025 18.975-7.694 6.537-4.975 10.182-14 10.182-14s18.974-48.131 44.255-91.518c49.056-84.979 71.849-103.492 88.567-94.468 24.411 13.303 17.181 119.98 17.181 119.98s0.463 38.875-12.38 56.056c-9.719 13.305-28.288 17.413-36.387 18.28-6.826 0.926 4.049 16.314 18.281 23.313 21.231 10.355 58.542 10.818 102.8 10.355 34.359-0.174 44.309-2.487 57.617-5.612 40.725-9.719 26.901-47.668 26.901-138.32 0-29.154-5.21-70.054 15.616-83.593 9.024-5.666 31.181-0.922 86.315 92.851 25.971 44.312 45.641 96.492 45.641 96.492s4.284 9.256 10.876 13.363c6.771 4.049 16.026 2.719 16.026 2.719l123.857 0.868c0 0 37.252 4.281 43.388-12.438 6.302-17.586-14.059-58.717-64.678-126.054-83.127-110.955-92.386-100.599-23.488-164.523z" />
+<glyph unicode="&#xeac6;" glyph-name="voicemail" d="M789.321 298.752c-82.475 0-149.333 66.859-149.333 149.333 0 82.472 66.859 149.331 149.333 149.331s149.333-66.859 149.333-149.331c0-82.475-66.859-149.333-149.333-149.333zM234.655 298.752c-82.474 0-149.333 66.859-149.333 149.333 0 82.472 66.859 149.331 149.333 149.331s149.333-66.859 149.333-149.331c0-82.475-66.859-149.333-149.333-149.333zM789.321 682.75c-129.621 0-234.667-105.044-234.667-234.665 0-56.751 20.139-108.762 53.632-149.333h-192.597c33.493 40.572 53.632 92.582 53.632 149.333 0 129.62-105.044 234.665-234.666 234.665s-234.667-105.044-234.667-234.665c0-129.626 105.044-234.667 234.667-234.667h554.666c129.621 0 234.667 105.041 234.667 234.667 0 129.62-105.045 234.665-234.667 234.665z" />
+<glyph unicode="&#xeac7;" glyph-name="volume-high" d="M597.308 800.914v-88.020c123.349-36.735 213.333-150.912 213.333-286.124 0-135.249-89.984-249.429-213.333-286.161v-88.021c170.965 38.865 298.667 191.445 298.667 374.182 0 182.7-127.701 335.319-298.667 374.145zM703.974 426.769c0 75.311-43.52 140.377-106.667 171.822v-343.683c63.147 31.492 106.667 96.516 106.667 171.861zM127.974 554.771v-256.002h170.667l213.333-213.333v682.668l-213.333-213.333h-170.667z" />
+<glyph unicode="&#xeac8;" glyph-name="volume-low" d="M298.641 554.747v-255.999h170.667l213.333-213.333v682.665l-213.333-213.333h-170.667z" />
+<glyph unicode="&#xeac9;" glyph-name="volume-medium" d="M213.308 554.75v-255.998h170.667l213.333-213.333v682.665l-213.333-213.333zM789.308 426.752c0 75.345-43.52 140.37-106.667 171.816v-343.634c63.147 31.445 106.667 96.469 106.667 171.819z" />
+<glyph unicode="&#xeaca;" glyph-name="volume-off" d="M511.974 768.084l-89.216-89.216 89.216-89.216zM182.289 810.75l-54.315-54.315 201.685-201.685h-201.685v-255.998h170.667l213.333-213.333v287.014l181.547-181.547c-28.587-22.054-60.757-39.68-96.213-50.257v-88.021c58.752 13.355 112.171 40.401 157.227 77.265l87.125-87.121 54.315 54.315-384 384zM810.641 426.752c0-40.068-8.704-77.824-22.997-112.73l64.597-64.597c27.733 53.082 43.733 113.284 43.733 177.327 0 182.74-127.701 335.357-298.667 374.185v-88.065c123.349-36.693 213.333-150.87 213.333-286.121zM703.974 426.752c0 75.345-43.52 140.37-106.667 171.86v-94.296l104.704-104.7c1.28 8.875 1.963 17.916 1.963 27.136z" />
+<glyph unicode="&#xeacb;" glyph-name="volume" d="M128 554.666l170.666-0.001 213.334 213.334v-682.666l-213.334 213.333h-170.667l0.001 255.999zM895.996 426.663c0-182.746-127.654-335.68-298.662-374.481v88.183c123.366 36.719 213.329 151.002 213.329 286.298s-89.963 249.58-213.329 286.298v88.189c171.008-38.804 298.662-191.736 298.662-374.487zM725.333 426.667c0-87.479-52.655-162.662-128-195.584v391.166c75.345-32.919 128-108.102 128-195.582z" />
+<glyph unicode="&#xeacc;" glyph-name="vpn" d="M384 725.334h256l-128-128-128 128zM448.704 313.233c-13.696-15.138-22.037-35.213-22.037-57.233 0-47.13 38.204-85.333 85.333-85.333s85.333 38.204 85.333 85.333c0 23.565-9.553 44.898-24.994 60.339l60.339 60.339c30.886-30.882 49.988-73.549 49.988-120.678 0-94.255-76.412-170.667-170.667-170.667-94.257 0-170.667 76.412-170.667 170.667 0 45.521 17.823 86.882 46.871 117.483l-0.184 0.183 301.84 301.555c30.895 30.958 73.613 50.112 120.806 50.112 94.255 0 170.667-76.41 170.667-170.667 0-94.255-76.412-170.667-170.667-170.667-47.13 0-89.796 19.102-120.678 49.988l60.339 60.339c15.441-15.441 36.774-24.994 60.339-24.994 47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333c-23.565 0-44.898-9.551-60.339-24.993l-301.623-301.773zM273.673 615.007c-15.442 15.442-36.776 24.993-60.34 24.993-47.128 0-85.333-38.205-85.333-85.333 0-47.13 38.205-85.333 85.333-85.333 23.564 0 44.898 9.553 60.34 24.994l60.34-60.339c-30.885-30.886-73.551-49.988-120.68-49.988-94.257 0-170.667 76.412-170.667 170.667 0 94.257 76.41 170.667 170.667 170.667 47.192 0 89.91-19.154 120.804-50.112l0.143 0.144 117.619-117.62-60.512-60.512-117.714 117.774z" />
+<glyph unicode="&#xeacd;" glyph-name="walk" d="M602.334 512.083h208.299v76.8h-154.539l-85.333 142.122c-12.629 21.291-35.84 35.542-62.379 35.542-7.296 0-14.336-1.067-20.949-3.072l-231.467-72.192v-221.868h76.8v156.46l89.899 28.032-166.699-653.826h76.8l122.411 345.941 99.456-132.608v-213.333h76.8v273.323l-106.197 193.707 31.275 122.369zM597.299 776.616c42.325 0 76.8 34.432 76.8 76.757 0 42.496-34.475 76.843-76.8 76.843-42.453 0-76.8-34.347-76.8-76.843 0-42.325 34.347-76.757 76.8-76.757z" />
+<glyph unicode="&#xeace;" glyph-name="wallet-giftcard" d="M853.333 341.334h-682.667v256h216.747l-88.747-120.747 69.12-49.92 144.213 196.267 144.213-196.267 69.12 49.92-88.747 120.747h216.747zM853.333 128h-682.667v85.333h682.667zM384 768c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM640 768c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM853.333 682.667h-93.013c4.693 13.227 7.68 27.733 7.68 42.667 0 70.827-57.173 128-128 128-44.8 0-83.627-23.040-106.667-57.6l-21.333-28.587-21.333 29.013c-23.040 34.133-61.867 57.173-106.667 57.173-70.827 0-128-57.173-128-128 0-14.933 2.987-29.44 7.68-42.667h-93.013c-47.36 0-84.907-37.973-84.907-85.333l-0.427-469.333c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v469.333c0 47.36-37.973 85.333-85.333 85.333z" />
+<glyph unicode="&#xeacf;" glyph-name="wallet-membership" d="M853.333 512h-682.667v256h682.667zM853.333 298.667h-682.667v85.333h682.667zM853.333 853.334h-682.667c-47.36 0-85.333-37.973-85.333-85.333v-469.333c0-47.36 37.973-85.333 85.333-85.333h170.667v-213.333l170.667 85.333 170.667-85.333v213.333h170.667c47.36 0 85.333 37.973 85.333 85.333v469.333c0 47.36-37.973 85.333-85.333 85.333z" />
+<glyph unicode="&#xead0;" glyph-name="wallet-travel" d="M853.333 341.334h-682.667v256h128v-85.333h85.333v85.333h256v-85.333h85.333v85.333h128zM853.333 128h-682.667v85.333h682.667zM384 768h256v-85.333h-256zM853.333 682.667h-128v85.333c0 47.36-37.973 85.333-85.333 85.333h-256c-47.36 0-85.333-37.973-85.333-85.333v-85.333h-128c-47.36 0-85.333-37.973-85.333-85.333v-469.333c0-47.36 37.973-85.333 85.333-85.333h682.667c47.36 0 85.333 37.973 85.333 85.333v469.333c0 47.36-37.973 85.333-85.333 85.333z" />
+<glyph unicode="&#xead1;" glyph-name="wallet" d="M422.152 465.942c-5.709 49.972-21.317 98.428-47.78 141.146-12.74 20.333-13.527 45.699-6.272 65.047 3.515 9.674 8.69 18.898 17.239 27.898 8.69 9.225 18.364 14.174 27.251 17.689 8.802 3.628 15.045 5.062 27.363 5.062 14.707 0 29.218-4.612 41.284-12.543l18.786-17.464 4.723-6.693c47.36-78.321 72.418-168.286 72.418-260.245l-1.097-32.849c-5.175-80.627-29.781-158.835-71.629-227.934-13.948-22.976-38.443-36.698-65.271-36.698l-22.078 3.401-17.464 7.676c-21.429 12.966-34.057 34.957-36.25 58.133-1.322 13.722 1.097 27.785 7.481 40.747l3.178 5.935c33.184 54.473 50.649 117.329 50.649 181.589l-2.531 40.102zM869.47 602.251c13.077-57.005 19.883-116.879 19.883-176.411 0-60.326-6.805-119.296-19.883-176.529l-11.644-45.052c-14.059-50.761-30.204-90.074-46.148-120.055-13.948-25.395-41.058-41.536-70.195-41.536-11.951 0-23.398 2.53-34.253 7.676-23.62 11.337-38.473 31.979-43.618 54.618l-2.082 18.56c0 17.237 7.031 32.085 7.565 33.408 39.881 84.369 60.1 174.754 60.1 268.911 0 94.040-20.109 184.651-60.745 270.341-18.897 39.765-1.997 87.77 37.879 106.669 10.884 5.175 22.413 7.818 34.283 7.818 30.767 0 59.226-17.914 72.388-45.699 24.721-51.858 43.729-106.556 56.469-162.717zM687.893 533.647c6.076-35.364 9.101-71.328 9.101-107.808 0-84.672-16.35-166.293-48.644-243.234-3.669 64.418-18.961 126.178-44.318 182.647l2.871 30.289 1.097 32.845c0 88.544-23.228 175.236-67.23 251.467 56.636-41.334 106.923-91.304 147.123-146.206zM169.696 491.644c-35.153 18.897-48.427 62.714-29.641 97.979 12.739 23.623 37.122 38.247 64.035 38.247 11.756 0 23.511-2.981 34.057-8.577 54.841-29.361 104.655-68.847 144.705-114.162l6.365-38.093 2.531-40.102c0-61.308-15.895-121.335-46.172-174.025-21.159 102.933-84.546 189.901-175.879 238.733z" />
+<glyph unicode="&#xead2;" glyph-name="washing-machine" d="M632.678 462.012c66.65-66.65 66.65-174.707 0-241.357s-174.707-66.65-241.358 0l241.358 241.357zM256 853.333h512c47.13 0 85.333-38.205 85.333-85.333v-682.667c0-47.13-38.204-85.333-85.333-85.333h-512c-47.128 0-85.333 38.204-85.333 85.333v682.667c0 47.128 38.205 85.333 85.333 85.333zM298.667 768c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.564 0 42.667 19.103 42.667 42.667s-19.103 42.667-42.667 42.667zM426.667 768c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.103 42.667 42.667s-19.102 42.667-42.667 42.667zM512 597.334c-141.385 0-256-114.615-256-256s114.615-256 256-256c141.385 0 256 114.615 256 256s-114.615 256-256 256z" />
+<glyph unicode="&#xead3;" glyph-name="watch-export" d="M597.346 469.295h213.777l-106.884 106.887 60.339 60.34 209.89-209.893-209.89-209.899-60.339 60.339 106.884 106.893h-213.777v85.333zM512 170.667c-141.354 0-256 114.603-256 256s114.646 256 256 256c59.831 0 114.863-20.518 158.447-54.903l60.442 60.443-7.518 6.109-40.704 244.352h-341.333l-40.746-244.352c-79.063-62.506-129.92-159.061-129.92-267.648s50.858-205.141 129.92-267.648l40.746-244.352h341.333l40.704 244.352 7.471 6.071-60.442 60.442c-43.575-34.359-98.59-54.865-158.4-54.865z" />
+<glyph unicode="&#xead4;" glyph-name="watch-import" d="M85.333 469.334h213.778l-106.886 106.889 60.34 60.34 209.891-209.895-209.89-209.894-60.34 60.339 106.886 106.889h-213.778v85.333zM511.974 170.71c141.355 0 256 114.598 256 256 0 141.396-114.645 255.998-256 255.998-59.831 0-114.863-20.519-158.445-54.903l-60.443 60.443 7.516 6.109 40.705 244.352h341.334l40.747-244.352c79.061-62.506 129.92-159.061 129.92-267.646 0-108.587-50.859-205.146-129.92-267.652l-40.747-244.348h-341.334l-40.705 244.348-7.472 6.071 60.444 60.446c43.575-34.364 98.589-54.865 158.4-54.865z" />
+<glyph unicode="&#xead5;" glyph-name="watch" d="M255.974 426.71c0 141.395 114.603 255.998 256 255.998 141.355 0 256-114.603 256-255.998 0-141.397-114.645-256-256-256-141.398 0-256 114.603-256 256zM853.308 426.71c0 108.585-50.859 205.14-129.92 267.647l-40.747 244.351h-341.334l-40.704-244.351c-79.104-62.465-129.962-159.061-129.962-267.647 0-108.591 50.858-205.184 129.962-267.652l40.704-244.348h341.334l40.747 244.348c79.061 62.507 129.92 159.061 129.92 267.652z" />
+<glyph unicode="&#xead6;" glyph-name="water-off" d="M730.453 208.214l-505.6 505.6-54.187-54.613 141.653-141.654c-32.853-61.866-56.32-124.586-56.32-176.213 0-141.227 114.773-256 256-256 64.853 0 123.733 24.32 168.96 64l112.205-112.213 54.195 54.187-116.907 116.907zM768 341.334c0 170.667-256 460.8-256 460.8s-56.747-64.427-116.48-150.187l366.507-366.507c3.84 17.92 5.973 36.693 5.973 55.893z" />
+<glyph unicode="&#xead7;" glyph-name="water-pump" d="M810.667 320c0 0 85.333-92.459 85.333-149.333 0-47.104-38.229-85.333-85.333-85.333s-85.333 38.229-85.333 85.333c0 56.875 85.333 149.333 85.333 149.333zM213.333 170.667v384c-47.128 0-85.333 38.205-85.333 85.333s38.205 85.333 85.333 85.333v42.667c0 47.128 38.205 85.333 85.333 85.333h85.334c47.129 0 85.333-38.205 85.333-85.333v-42.667h341.333c47.13 0 85.333-38.205 85.333-85.333v-170.666c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-170.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667v85.333h-256v-384h42.667c47.13 0 85.333-38.204 85.333-85.333v-85.333h-512v85.333c0 47.13 38.205 85.333 85.333 85.333h42.667z" />
+<glyph unicode="&#xead8;" glyph-name="water" d="M512 85.334c-141.227 0-256 114.773-256 256 0 170.667 256 458.667 256 458.667s256-288 256-458.667c0-141.227-114.773-256-256-256z" />
+<glyph unicode="&#xead9;" glyph-name="weather-cloudy" d="M256 128c-117.821 0-213.333 95.514-213.333 213.333 0 117.794 95.47 213.291 213.255 213.333 41.795 100.222 140.71 170.667 256.078 170.667 146.466 0 266.415-113.542 276.629-257.408l22.037 1.408c94.255 0 170.667-76.412 170.667-170.667s-76.412-170.667-170.667-170.667h-554.667zM810.667 384h-85.333v42.667c0 117.821-95.514 213.333-213.333 213.333-106.119 0-194.141-77.482-210.579-178.961-14.116 5.359-29.426 8.294-45.421 8.294-70.692 0-128-57.306-128-128s57.308-128 128-128h554.667c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333z" />
+<glyph unicode="&#xeada;" glyph-name="weather-fog" d="M128 298.667h426.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-426.667c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667zM682.667 298.667h213.333c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-213.333c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667zM42.667 426.667c0 117.795 95.471 213.291 213.255 213.333 41.795 100.222 140.71 170.666 256.078 170.666 146.466 0 266.415-113.542 276.629-257.41l22.037 1.41c93.559 0 169.536-75.285 170.641-170.667h-85.308c0 47.13-38.204 85.333-85.333 85.333h-85.333v42.667c0 117.821-95.514 213.333-213.333 213.333-106.119 0-194.141-77.482-210.579-178.96-14.116 5.359-29.426 8.293-45.421 8.293-70.692 0-128-57.309-128-128 0-14.959 2.567-29.321 7.284-42.667h-88.349l-4.268 42.667zM128 128h85.333c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667h-85.333c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667zM341.333 128h554.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-554.667c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667z" />
+<glyph unicode="&#xeadb;" glyph-name="weather-hail" d="M256 341.334c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667c-117.821 0-213.333 95.514-213.333 213.333 0 117.795 95.47 213.291 213.255 213.333 41.795 100.222 140.71 170.666 256.078 170.666 146.466 0 266.415-113.542 276.629-257.409l22.037 1.41c94.255 0 170.667-76.41 170.667-170.667 0-94.255-76.412-170.667-170.667-170.667h-42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667h42.667c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333h-85.333v42.667c0 117.821-95.514 213.333-213.333 213.333-106.119 0-194.141-77.483-210.579-178.96-14.116 5.359-29.426 8.293-45.421 8.293-70.692 0-128-57.308-128-128 0-70.694 57.308-128 128-128zM426.667 170.667c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333c-47.128 0-85.333 38.204-85.333 85.333s38.205 85.333 85.333 85.333zM618.667 256c35.345 0 64-28.655 64-64s-28.655-64-64-64c-35.345 0-64 28.655-64 64s28.655 64 64 64zM448 426.667c35.345 0 64-28.655 64-64s-28.655-64-64-64c-35.346 0-64 28.655-64 64s28.654 64 64 64z" />
+<glyph unicode="&#xeadc;" glyph-name="weather-lightning" d="M256 256c-117.821 0-213.333 95.514-213.333 213.333 0 117.795 95.47 213.291 213.255 213.333 41.795 100.222 140.71 170.666 256.078 170.666 146.466 0 266.415-113.542 276.629-257.409l22.037 1.41c94.255 0 170.667-76.41 170.667-170.667 0-94.255-76.412-170.667-170.667-170.667h-42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667h42.667c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333h-85.333v42.667c0 117.821-95.514 213.333-213.333 213.333-106.119 0-194.141-77.483-210.579-178.96-14.116 5.359-29.426 8.293-45.421 8.293-70.692 0-128-57.308-128-128 0-70.694 57.308-128 128-128h42.667c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667h-42.667zM512 469.334h128l-85.333-170.667h85.333l-160-298.667 32 213.333h-106.667l106.667 256z" />
+<glyph unicode="&#xeadd;" glyph-name="weather-night" d="M757.474 764.153l-108.066-82.815 38.75-130.518-112.158 77.185-112.158-77.185 38.75 130.518-108.064 82.815 136.105 3.48 45.367 128.367 45.367-128.367 136.107-3.48zM906.667 469.419l-69.871-53.547 25.054-84.386-72.516 49.903-72.516-49.903 25.054 84.386-69.871 53.547 88 2.249 29.333 82.999 29.333-82.999 88-2.249zM809.421 258.343c35.418 3.371 73.502-47.053 50.637-79.104-13.581-19.038-28.911-37.214-45.999-54.298-166.622-166.622-436.772-166.622-603.396 0-166.624 166.626-166.624 436.776 0 603.399 17.084 17.084 35.256 32.416 54.294 45.997 32.053 22.866 82.475-15.22 79.108-50.638-11.625-122.3 29.389-248.657 123.041-342.315 93.653-93.653 220.015-134.665 342.315-123.042zM739.584 171.917c-121.131 6.882-240.277 56.593-332.817 149.129-92.539 92.54-142.25 211.689-149.132 332.817-119.772-134.028-115.316-339.895 13.367-468.578 128.683-128.687 334.552-133.141 468.581-13.367z" />
+<glyph unicode="&#xeade;" glyph-name="weather-partlycloudy" d="M543.62 705.198c100.599-44.789 154.163-151.662 135.663-255.406 54.332-46.946 88.717-116.352 88.717-193.792l-0.102-7.322c13.376 4.74 27.772 7.322 42.769 7.322 70.694 0 128-57.306 128-128s-57.306-128-128-128h-554.667c-94.257 0-170.667 76.412-170.667 170.667s76.41 170.667 170.667 170.667l11.612-0.482c-55.166 66.526-71.348 161.118-33.817 245.416 52.714 118.398 191.428 171.645 309.825 118.931zM508.915 627.242c-75.345 33.545-163.619-0.339-197.164-75.683-19.404-43.582-16.247-91.492 4.448-130.63 46.96 55.693 117.248 91.072 195.801 91.072 29.943 0 58.688-5.141 85.393-14.588-2.458 54.714-35.042 106.037-88.478 129.83zM578.33 783.154c-23.334 10.388-47.245 17.759-71.296 22.28l106.005 55.676 38.686-123.27c-21.798 17.941-46.349 33.273-73.395 45.314zM259.798 749.228c-20.663-15.012-39.001-32.034-54.942-50.604l4.785 119.64 126.098-28.132c-26.436-9.907-51.99-23.503-75.941-40.905zM766.976 524.26c-2.671 25.401-8.243 49.794-16.354 72.884l101.222-63.964-87.415-95.138c4.642 27.849 5.641 56.777 2.547 86.218zM129.912 456.41c2.67-25.404 8.242-49.796 16.353-72.883l-101.219 63.962 87.412 95.139c-4.639-27.848-5.64-56.777-2.546-86.217zM810.667 170.667h-128v85.333c0 94.255-76.412 170.667-170.667 170.667-94.257 0-170.667-76.412-170.667-170.667h-85.333c-47.128 0-85.333-38.204-85.333-85.333s38.205-85.333 85.333-85.333h554.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xeadf;" glyph-name="weather-pouring" d="M384 426.667c22.761-6.097 36.269-29.495 30.17-52.254l-55.215-206.067c-6.099-22.758-29.495-36.267-52.256-30.17-22.761 6.101-36.268 29.495-30.17 52.258l55.215 206.063c6.099 22.763 29.495 36.271 52.256 30.17zM554.667 426.667c22.758-6.101 36.267-29.495 30.17-52.258l-88.346-329.702c-6.097-22.758-29.495-36.267-52.254-30.17-22.763 6.101-36.27 29.495-30.171 52.258l88.343 329.702c6.101 22.758 29.495 36.267 52.258 30.17zM725.333 426.667c22.763-6.097 36.271-29.495 30.17-52.258l-55.215-206.063c-6.097-22.758-29.495-36.267-52.254-30.17-22.763 6.101-36.271 29.495-30.17 52.258l55.215 206.063c6.097 22.763 29.491 36.267 52.254 30.17zM725.333 512v42.667c0 117.821-95.514 213.333-213.333 213.333-106.119 0-194.141-77.483-210.579-178.96-14.116 5.359-29.426 8.293-45.421 8.293-70.692 0-128-57.308-128-128 0-47.343 25.703-88.683 63.916-110.827l0.163 0.282c20.407-11.78 27.399-37.875 15.617-58.283-11.768-20.382-37.814-27.383-58.211-15.659l-0.171-0.294c-63.756 36.885-106.649 105.826-106.649 184.781 0 117.795 95.47 213.291 213.255 213.333 41.795 100.222 140.71 170.666 256.079 170.666 146.466 0 266.415-113.542 276.629-257.409l22.037 1.41c94.255 0 170.667-76.41 170.667-170.667 0-63.164-34.317-118.315-85.321-147.827l-0.166 0.29c-20.395-11.725-46.447-4.727-58.214 15.659-11.78 20.407-4.791 46.502 15.616 58.283l0.162-0.277c25.463 14.767 42.59 42.317 42.59 73.873 0 47.13-38.204 85.333-85.333 85.333h-85.333z" />
+<glyph unicode="&#xeae0;" glyph-name="weather-rainy" d="M256 341.334c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667c-117.821 0-213.333 95.514-213.333 213.333 0 117.795 95.47 213.291 213.255 213.333 41.795 100.222 140.71 170.666 256.078 170.666 146.466 0 266.415-113.542 276.629-257.409l22.037 1.41c94.255 0 170.667-76.41 170.667-170.667 0-94.255-76.412-170.667-170.667-170.667h-42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667h42.667c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333h-85.333v42.667c0 117.821-95.514 213.333-213.333 213.333-106.119 0-194.141-77.483-210.579-178.96-14.116 5.359-29.426 8.293-45.421 8.293-70.692 0-128-57.308-128-128 0-70.694 57.308-128 128-128zM632.683 270.021c66.645-66.645 66.645-164.058 0-230.703-33.301-33.323-76.996-39.317-120.687-39.317s-87.36 5.995-120.661 39.317c-66.668 66.645-66.668 164.036 0 230.703l120.687 199.334 120.661-199.334zM572.339 226.475l-60.331 104.196-60.343-104.196c-33.335-34.846-33.335-85.751 0-120.585 16.649-17.421 38.485-20.553 60.331-20.553s43.691 3.132 60.343 20.553c33.323 34.833 33.323 85.751 0 120.585z" />
+<glyph unicode="&#xeae1;" glyph-name="weather-snowy" d="M256 341.334c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667c-117.821 0-213.333 95.514-213.333 213.333 0 117.795 95.47 213.291 213.255 213.333 41.795 100.222 140.71 170.666 256.078 170.666 146.466 0 266.415-113.542 276.629-257.409l22.037 1.41c94.255 0 170.667-76.41 170.667-170.667 0-94.255-76.412-170.667-170.667-170.667h-42.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667h42.667c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333h-85.333v42.667c0 117.821-95.514 213.333-213.333 213.333-106.119 0-194.141-77.483-210.579-178.96-14.116 5.359-29.426 8.293-45.421 8.293-70.692 0-128-57.308-128-128 0-70.694 57.308-128 128-128zM336.106 167.706l93.471 25.045-68.426 68.425c-16.662 16.661-16.662 43.678 0 60.339 16.662 16.666 43.677 16.666 60.34 0l68.425-68.42 25.041 93.466c6.101 22.763 29.495 36.271 52.258 30.17 22.763-6.097 36.267-29.495 30.17-52.254l-25.045-93.47 93.47 25.045c22.758 6.097 46.157-7.407 52.254-30.17 6.101-22.763-7.407-46.157-30.17-52.258l-93.466-25.041 68.42-68.425c16.666-16.661 16.666-43.678 0-60.339-16.661-16.666-43.678-16.666-60.339 0l-68.425 68.425-25.045-93.47c-6.097-22.763-29.491-36.271-52.254-30.17-22.763 6.097-36.269 29.495-30.17 52.254l25.046 93.47-93.469-25.045c-22.761-6.097-46.157 7.407-52.256 30.17s7.409 46.157 30.17 52.254z" />
+<glyph unicode="&#xeae2;" glyph-name="weather-sunny" d="M512 640c117.82 0 213.333-95.513 213.333-213.333s-95.514-213.333-213.333-213.333c-117.821 0-213.333 95.514-213.333 213.333s95.512 213.333 213.333 213.333zM512 554.667c-70.694 0-128-57.309-128-128 0-70.694 57.306-128 128-128 70.69 0 128 57.306 128 128 0 70.69-57.31 128-128 128zM512 853.333l102.148-145.924c-31.872 11.598-66.27 17.924-102.148 17.924s-70.281-6.326-102.147-17.924l102.147 145.924zM142.718 639.615l177.448 15.5c-25.978-21.8-48.657-48.428-66.596-79.5s-29.661-64.025-35.551-97.424l-75.301 161.424zM143.162 212.95l75.3 161.421c5.89-33.395 17.612-66.351 35.551-97.421 17.939-31.074 40.618-57.702 66.596-79.501l-177.447 15.501zM880.896 639.837l-75.298-161.424c-5.892 33.399-17.613 66.353-35.554 97.424-17.937 31.071-40.614 57.7-66.594 79.5l177.446-15.5zM880.452 213.615l-177.446-15.501c25.975 21.803 48.657 48.431 66.594 79.501 17.941 31.070 29.662 64.026 35.55 97.425l75.302-161.425zM511.113 0.888l-102.149 145.924c31.868-11.597 66.27-17.924 102.149-17.924s70.276 6.327 102.144 17.924l-102.144-145.924z" />
+<glyph unicode="&#xeae3;" glyph-name="weather-sunset-down" d="M128 426.667h170.667c0 117.822 95.513 213.335 213.333 213.335s213.333-95.513 213.333-213.335h170.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-768c-23.564 0-42.666 19.102-42.666 42.667s19.102 42.667 42.666 42.667zM640 426.667c0 70.694-57.31 128.001-128 128.001-70.694 0-128-57.306-128-128.001h256zM512 853.334l102.148-145.923c-31.872 11.598-66.27 17.924-102.148 17.924s-70.281-6.327-102.147-17.924l102.147 145.923zM142.718 639.616l177.448 15.5c-25.978-21.8-48.657-48.428-66.597-79.5s-29.66-64.026-35.55-97.425l-75.301 161.425zM880.896 639.839l-75.298-161.425c-5.892 33.399-17.613 66.354-35.554 97.425-17.937 31.071-40.614 57.7-66.594 79.5l177.446-15.5zM542.391 55.164l132.745 132.745c16.666 16.666 16.666 43.678 0 60.343-16.661 16.661-43.674 16.661-60.339 0l-102.814-102.814-102.811 102.814c-16.662 16.661-43.677 16.661-60.34 0-16.663-16.666-16.663-43.678 0-60.343l132.747-132.745c8.397-8.397 19.418-12.561 30.421-12.497 10.991-0.055 22.003 4.109 30.391 12.497z" />
+<glyph unicode="&#xeae4;" glyph-name="weather-sunset-up" d="M128 426.667h170.667c0 117.821 95.512 213.333 213.333 213.333s213.333-95.513 213.333-213.333h170.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-768c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667zM640 426.667c0 70.69-57.31 128-128 128-70.694 0-128-57.309-128-128h256zM512 853.332l102.148-145.923c-31.872 11.598-66.27 17.924-102.148 17.924s-70.281-6.326-102.147-17.924l102.147 145.923zM142.718 639.615l177.447 15.5c-25.978-21.8-48.657-48.428-66.596-79.5s-29.66-64.029-35.55-97.424l-75.301 161.424zM880.896 639.837l-75.298-161.424c-5.892 33.399-17.613 66.353-35.554 97.424-17.937 31.072-40.619 57.7-66.594 79.5l177.446-15.5zM542.404 243.405l132.749-132.749c16.661-16.661 16.661-43.674 0-60.339-16.661-16.661-43.678-16.661-60.339 0l-102.814 102.814-102.813-102.814c-16.662-16.661-43.677-16.661-60.34 0-16.662 16.666-16.663 43.678 0 60.339l132.749 132.749c8.393 8.397 19.418 12.561 30.421 12.497 10.991 0.055 22.003-4.109 30.387-12.497z" />
+<glyph unicode="&#xeae5;" glyph-name="weather-sunset" d="M128 426.667h170.667c0 117.821 95.512 213.333 213.333 213.333s213.333-95.513 213.333-213.333h170.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-768c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667zM213.333 256h597.333c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-597.333c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667zM725.333 85.334c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-426.667c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667h426.667zM640 426.667c0 70.69-57.31 128-128 128-70.694 0-128-57.309-128-128h256zM512 853.333l102.148-145.924c-31.872 11.598-66.27 17.924-102.148 17.924s-70.281-6.326-102.147-17.924l102.147 145.924zM142.718 639.615l177.447 15.5c-25.978-21.8-48.657-48.428-66.596-79.5s-29.66-64.024-35.55-97.424l-75.301 161.424zM880.896 639.837l-75.298-161.424c-5.892 33.399-17.613 66.353-35.554 97.424-17.937 31.071-40.614 57.7-66.594 79.5l177.446-15.5z" />
+<glyph unicode="&#xeae6;" glyph-name="weather-windy-variant" d="M256 682.667l29.465-2.534c27.011 99.79 118.2 173.201 226.535 173.201 129.604 0 234.667-105.064 234.667-234.666l-3.49-40.552c19.593 12.182 42.718 19.218 67.49 19.218 70.694 0 128-57.308 128-128 0-70.694-57.306-128-128-128h-554.667c-94.257 0-170.667 76.412-170.667 170.667 0 94.257 76.41 170.667 170.667 170.667zM256 597.333c-47.128 0-85.333-38.205-85.333-85.332 0-47.13 38.205-85.333 85.333-85.333h554.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-149.333v106.666c0 82.474-66.859 149.333-149.333 149.333s-149.334-66.859-149.334-149.333v-21.333h-106.667zM768 170.667h-597.333c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667h597.333c70.69 0 128-57.306 128-128s-57.31-128-128-128c-35.345 0-67.345 14.327-90.509 37.491-16.661 16.661-16.666 43.678 0 60.339 16.661 16.661 43.678 16.661 60.339 0 7.718-7.723 18.385-12.497 30.17-12.497 23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xeae7;" glyph-name="weather-windy" d="M170.667 512c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667h341.333c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333c-23.565 0-44.898-9.551-60.339-24.993-16.661-16.663-43.678-16.663-60.34 0s-16.663 43.677 0 60.34c30.885 30.884 73.55 49.987 120.68 49.987 94.255 0 170.667-76.41 170.667-170.666s-76.412-170.667-170.667-170.667h-341.333zM810.667 426.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667c-11.785 0-22.451-4.774-30.17-12.497-16.661-16.661-43.678-16.661-60.339 0-16.666 16.663-16.661 43.678 0 60.34 23.164 23.163 55.164 37.49 90.509 37.49 70.69 0 128-57.308 128-128 0-70.694-57.31-128-128-128h-597.333c-23.564 0-42.667 19.102-42.667 42.667s19.103 42.667 42.667 42.667h597.333zM768 170.667h-597.333c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667h597.333c70.69 0 128-57.306 128-128s-57.31-128-128-128c-35.345 0-67.345 14.327-90.509 37.491-16.661 16.661-16.666 43.678 0 60.339 16.661 16.661 43.678 16.661 60.339 0 7.718-7.723 18.385-12.497 30.17-12.497 23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xeae8;" glyph-name="web" d="M698.057 341.419c3.499 28.028 5.931 56.358 5.931 85.333 0 28.971-2.432 57.301-5.931 85.331h144.043c7.083-27.309 11.221-55.806 11.221-85.331 0-29.53-4.139-58.027-11.221-85.333zM622.622 104.15c25.6 47.488 45.056 98.603 58.837 151.936h125.824c-40.917-70.571-106.283-125.013-184.661-151.936zM611.785 341.419h-199.637c-4.053 27.947-6.827 56.273-6.827 85.333 0 29.056 2.774 57.382 6.827 85.331h199.637c4.053-27.949 6.869-56.275 6.869-85.331 0-29.060-2.816-57.387-6.869-85.333zM511.902 86.955c-35.499 51.2-63.232 108.070-81.451 169.131h163.029c-18.261-61.060-45.995-117.931-81.579-169.131zM342.43 597.417h-125.824c40.875 70.656 106.24 125.185 184.661 152.021-25.6-47.487-45.056-98.601-58.837-152.021zM216.605 256.086h125.824c13.781-53.376 33.237-104.538 58.837-152.021-78.422 26.833-143.786 81.361-184.661 152.021zM181.789 341.419c-7.039 27.307-11.136 55.804-11.136 85.333 0 29.525 4.096 58.022 11.136 85.331h144.086c-3.499-28.030-5.888-56.361-5.888-85.331 0-28.975 2.389-57.306 5.888-85.333zM511.902 766.547c35.584-51.2 63.317-108.073 81.579-169.13h-163.029c18.219 61.057 45.952 117.93 81.451 169.13zM807.283 597.417h-125.824c-13.781 53.333-33.237 104.448-58.837 151.935 78.379-26.922 143.744-81.365 184.661-151.935zM511.731 853.417c-235.777 0-426.411-191.018-426.411-426.665 0-235.652 190.634-426.667 426.411-426.667 235.819 0 426.923 191.014 426.923 426.667 0 235.646-191.104 426.665-426.923 426.665z" />
+<glyph unicode="&#xeae9;" glyph-name="webcam" d="M512 853.334c164.949 0 298.667-133.718 298.667-298.667s-133.717-298.667-298.667-298.667c-164.949 0-298.667 133.717-298.667 298.667s133.718 298.667 298.667 298.667zM512 767.999c-117.821 0-213.334-95.513-213.334-213.333 0-117.823 95.512-213.332 213.334-213.332 117.82 0 213.333 95.509 213.333 213.332 0 117.821-95.514 213.333-213.333 213.333zM512 682.667c70.69 0 128-57.308 128-128 0-70.694-57.31-128-128-128-70.694 0-128 57.306-128 128 0 70.692 57.306 128 128 128zM256-0c-47.128 0-85.333 38.204-85.333 85.333 0 16.081 4.449 31.125 12.184 43.968l77.949 134.921c67.336-58.291 155.15-93.555 251.201-93.555s183.863 35.264 251.2 93.555l77.948-134.921c7.735-12.843 12.186-27.887 12.186-43.968 0-47.13-38.204-85.333-85.333-85.333h-512z" />
+<glyph unicode="&#xeaea;" glyph-name="weight-kilogram" d="M512 810.667c94.255 0 170.667-76.41 170.667-170.666 0-31.086-8.311-60.231-22.831-85.334h108.164c40.631 0 74.628-28.397 83.23-66.428 85.922-341.815 87.437-350.852 87.437-360.239 0-47.13-38.204-85.333-85.333-85.333h-682.667c-47.128 0-85.333 38.204-85.333 85.333 0 9.387 1.516 18.423 87.435 360.239 8.602 38.031 42.601 66.428 83.232 66.428h108.166c-14.521 25.103-22.832 54.248-22.832 85.334 0 94.256 76.41 170.666 170.667 170.666zM512 725.333c-47.13 0-85.334-38.205-85.334-85.333s38.204-85.333 85.334-85.333c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333zM385.593 279.894l57.97-109.227h73.216l-87.095 142.622 80.213 115.883h-74.697l-56.889-101.948h-20.423v101.948h-60.302v-258.505h60.302v109.227h27.705zM738.701 206.392v95.347h-100.975v-47.33h40.73v-32.316l-14.933-5.632-25.967-2.103c-15.172 0-26.965 5.393-35.388 16.183-8.418 10.79-12.629 25.041-12.629 42.752v53.589c0 17.259 4.267 31.339 12.8 42.24 8.533 10.906 19.797 16.358 33.792 16.358s24.397-3.435 31.206-10.3c6.805-6.865 11.217-17.084 13.227-30.66h56.375l0.341 1.079c-2.236 26.965-11.652 48.243-28.245 63.829s-41.54 23.381-74.837 23.381c-30.72 0-55.825-9.882-75.319-29.641s-29.244-45.188-29.244-76.288v-53.931c0-31.364 9.984-56.858 29.952-76.484s45.956-29.44 77.969-29.44c25.259 0 46.238 3.964 62.946 11.887 16.708 7.927 29.44 17.088 38.199 27.477z" />
+<glyph unicode="&#xeaeb;" glyph-name="weight" d="M512 810.667c94.255 0 170.667-76.41 170.667-170.666 0-31.086-8.311-60.231-22.831-85.334h108.164c40.631 0 74.628-28.397 83.23-66.428 85.922-341.815 87.437-350.852 87.437-360.239 0-47.13-38.204-85.333-85.333-85.333h-682.667c-47.128 0-85.333 38.204-85.333 85.333 0 9.387 1.516 18.423 87.435 360.239 8.602 38.031 42.601 66.428 83.232 66.428h108.166c-14.521 25.103-22.832 54.248-22.832 85.334 0 94.256 76.41 170.666 170.667 170.666zM512 725.334c-47.13 0-85.333-38.205-85.333-85.334s38.204-85.333 85.333-85.333c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.334-85.333 85.334z" />
+<glyph unicode="&#xeaec;" glyph-name="whatsapp" d="M714.581 343.202c10.398-5.692 17.378-8.627 19.87-13.141 2.492-4.527 1.702-25.779-8.073-50.206-9.775-24.435-53.999-46.729-73.523-47.753-19.507-1.054-20.049-15.232-126.332 31.292-106.268 46.549-170.209 159.714-175.249 166.993-5.040 7.258-41.15 59.145-39.198 111.34 1.952 52.213 30.323 76.859 40.444 87.092 10.121 10.274 21.711 12.489 28.786 12.226l20.312-1.648c6.189-0.236 15.162 2.963 23.206-18.595l29.771-79.989c2.449-5.4 3.985-11.658 0.179-18.609l-11.273-17.3-16.614-17.993c-5.511-5.082-11.271-10.62-5.469-21.461 5.802-10.859 25.796-46.391 56.285-75.699 39.155-37.645 72.939-50.15 83.354-55.842 10.411-5.717 16.627-5.082 23.095 1.775l35.153 40.32c7.462 10.368 14.468 8.329 24.064 4.429l71.211-37.231zM512 853.334c235.639 0 426.667-191.025 426.667-426.667 0-235.644-191.027-426.667-426.667-426.667-83.959 0-162.258 24.252-228.268 66.133l-198.398-66.133 66.133 198.4c-41.881 66.010-66.133 144.307-66.133 228.267 0 235.642 191.025 426.667 426.667 426.667zM512 768c-188.513 0-341.333-152.82-341.333-341.333 0-73.284 23.095-141.175 62.403-196.787l-41.070-123.213 123.211 41.071c55.615-39.309 123.505-62.404 196.789-62.404 188.514 0 341.333 152.819 341.333 341.333 0 188.513-152.819 341.333-341.333 341.333z" />
+<glyph unicode="&#xeaed;" glyph-name="wheelchair-accessibility" d="M785.067 460.8l-174.933-8.533 98.133 110.933c8.533 12.8 12.8 34.133 8.533 55.467-4.267 12.8-8.533 25.6-21.333 34.133l-230.4 136.533c-17.067 12.8-42.667 8.533-59.733-4.267l-115.2-106.667c-21.333-21.333-25.6-51.2-4.267-72.533 17.067-21.333 51.2-21.333 72.533-4.267l85.333 76.8 81.067-46.933-179.2-183.467c-4.267-4.267-4.267-8.533-8.533-8.533-21.333-8.533-42.667-17.067-59.733-29.867l64-64c21.333 8.533 42.667 17.067 64 17.067 81.067 0 149.333-68.267 149.333-149.333 0-25.6-4.267-46.933-17.067-64l64-64c25.6 38.4 38.4 81.067 38.4 128 0 51.2-17.067 102.4-46.933 140.8l140.8 12.8-8.533-204.8c-4.267-29.867 17.067-51.2 46.933-55.467h4.267c25.6 0 46.933 21.333 51.2 46.933l8.533 251.733c0 12.8-4.267 29.867-12.8 38.4-12.8 12.8-25.6 17.067-38.4 17.067zM768 704c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333zM533.333 17.067c-38.4-25.6-81.067-38.4-128-38.4-128 0-234.667 106.667-234.667 234.667 0 46.933 12.8 89.6 38.4 128l64-64c-8.533-21.333-17.067-42.667-17.067-64 0-81.067 68.267-149.333 149.333-149.333 25.6 0 46.933 4.267 64 17.067l64-64z" />
+<glyph unicode="&#xeaee;" glyph-name="white-balance-auto" d="M439.454 256.081l-29.867 85.333h-136.533l-29.867-85.333h-81.067l136.533 384.001h85.333l136.533-384.001zM938.654 640.083l-51.371-268.46-63.829 268.46h-68.267l-63.573-268.46-51.627 268.46h-32.469c-62.549 77.952-158.464 128-266.197 128-188.501 0-341.333-152.789-341.333-341.335 0-188.544 152.832-341.333 341.333-341.333 133.717 0 249.173 77.099 305.207 189.099l4.126-18.432h74.667l64 260.268 64-260.268h74.667l87.467 384.001zM292.254 399.015h98.133l-49.067 155.735-49.067-155.735z" />
+<glyph unicode="&#xeaef;" glyph-name="white-balance-incandescent" d="M735.663 164.062l76.587-76.587 60.331 60.373-76.587 76.544zM853.295 405.428h128v85.333h-128zM639.962 669.536v205.227h-256v-205.227c-76.416-44.288-128-126.763-128-221.442 0-141.397 114.646-256 256-256 141.397 0 256 114.603 256 256 0 94.679-51.541 177.153-128 221.442zM170.628 490.761h-128v-85.333h128zM469.295-19.106c13.483-0.085 85.333 0 85.333 0v125.867h-85.333zM151.386 147.849l60.331-60.373 76.587 76.587-60.331 60.331-76.587-76.544z" />
+<glyph unicode="&#xeaf0;" glyph-name="white-balance-irradescent" d="M211.712 87.476l76.587 76.587-60.331 60.331-76.587-76.544zM151.381 748.34l76.587-76.586 60.331 60.331-76.587 76.587zM872.576 147.849l-76.587 76.544-60.331-60.331 76.587-76.587zM554.624-19.106v125.867h-85.333v-125.867c13.483-0.085 85.333 0 85.333 0zM812.245 808.671l-76.587-76.587 60.331-60.331 76.587 76.586zM469.291 789.429h85.333v125.866h-85.333zM213.291 320.094h597.333v256.002h-597.333v-256.002z" />
+<glyph unicode="&#xeaf1;" glyph-name="white-balance-sunny" d="M151.368 147.832l60.331-60.373 76.586 76.587-60.33 60.331zM469.321-19.123c13.483-0.085 85.333 0 85.333 0v125.867h-85.333zM511.987 704.078c-141.398 0-256-114.602-256-256.001 0-141.355 114.602-256 256-256 141.355 0 256 114.645 256 256 0 141.399-114.645 256.001-256 256.001zM853.321 405.41h128v85.333h-128zM735.646 164.045l76.587-76.587 60.331 60.373-76.587 76.544zM872.563 748.324l-60.331 60.374-76.587-76.587 60.331-60.331zM554.654 915.279h-85.333v-125.867h85.333zM170.654 490.744h-128v-85.333h128zM288.285 732.111l-76.586 76.587-60.331-60.374 76.588-76.544 60.33 60.331z" />
+<glyph unicode="&#xeaf2;" glyph-name="wifi" d="M512 42.667l153.609 204.813c-42.786 32.141-95.974 51.187-153.609 51.187s-110.822-19.046-153.609-51.187l153.609-204.813zM512 810.667c-172.905 0-332.465-57.139-460.827-153.564l76.804-102.406c106.968 80.354 239.935 127.97 384.023 127.97 144.085 0 277.052-47.616 384.021-127.97l76.804 102.406c-128.363 96.425-287.919 153.564-460.826 153.564zM512 554.667c-115.27 0-221.643-38.093-307.218-102.374l76.804-102.409c64.181 48.213 143.961 76.783 230.414 76.783 86.451 0 166.234-28.57 230.413-76.783l76.804 102.409c-85.572 64.282-191.949 102.374-307.217 102.374z" />
+<glyph unicode="&#xeaf3;" glyph-name="wii" d="M761.37 215.932h-80.183v262.178h80.183v-262.178zM768.947 572.728c0-26.329-21.338-47.673-47.676-47.673-26.313 0-47.667 21.344-47.667 47.673 0 26.318 21.355 47.671 47.667 47.671 26.338 0 47.676-21.354 47.676-47.671zM931.085 215.932h-80.171v262.178h80.171v-262.178zM938.667 572.728c0-26.329-21.342-47.673-47.667-47.673s-47.663 21.344-47.663 47.673c0 26.318 21.338 47.671 47.663 47.671s47.667-21.354 47.667-47.671zM550.46 595.119h85.231l-90.283-317.786c0 0-12.279-65.732-63.923-65.732s-63.913 65.732-63.913 65.732l-57.066 207.283-57.044-207.283c0 0-12.281-65.732-63.924-65.732s-63.924 65.732-63.924 65.732l-90.281 317.786h85.231l73.663-282.406 59.235 228.957c13.716 57.782 57.044 57.055 57.044 57.055s43.339 0.727 57.066-57.055l59.224-228.957 73.664 282.406z" />
+<glyph unicode="&#xeaf4;" glyph-name="wikipedia" d="M638.746 130.117l-109.282 257.391c-43.298-84.954-91.273-173.239-132.327-257.254-0.227-0.435-19.841-0.179-19.85 0.077-62.745 146.419-127.793 291.874-190.839 438.177-14.622 35.764-65.818 93.298-100.844 92.971-0.013 4.156-0.207 13.415-0.264 19.031l215.994 0.102-0.147-18.781c-25.367-1.182-69.195-17.363-57.85-45.367 30.456-65.725 138.246-320.382 167.379-385.030 20.337 39.787 77.101 145.852 100.465 190.699-18.321 37.594-78.874 177.981-97.028 213.345-13.692 23.046-48.049 25.87-74.516 26.266 0.009 5.921 0.33 10.452 0.191 18.543l189.896-0.585v-17.243c-25.715-0.714-50.048-10.278-39.036-34.848 25.54-53.025 40.448-90.764 63.932-139.8 7.501 14.362 45.854 93.099 64.158 134.674 11.068 27.615-5.449 37.981-51.721 39.225 0.614 4.544 0.213 13.669 0.597 18.017 59.046 0.222 148.207 0.429 163.989 0.667l0.085-17.944c-30.135-1.169-61.312-17.23-77.602-42.148l-78.967-163.774c8.674-21.687 84.582-190.336 92.587-209.041l163.273 376.8c-11.614 30.516-48.674 37.329-63.164 37.673 0.102 4.852 0.111 12.265 0.154 18.441l170.436-1.296 0.23-0.861-0.294-16.204c-37.389-1.126-60.518-21.119-74.334-53.897-33.967-76.719-137.792-319.712-207.091-478.074-0.094-0.085-18.167 0.030-18.21 0.051z" />
+<glyph unicode="&#xeaf5;" glyph-name="window-close" d="M574.204 426.663l236.459-236.51 0.004-62.153-62.182-0.009-236.446 236.497-236.503-236.506-62.202 0.017-0.003 62.114 236.543 236.544-236.543 236.482 0.003 62.195 62.153-0.011 236.548-236.497 236.497 236.497 62.135 0.011-0.009-62.223-236.454-236.45z" />
+<glyph unicode="&#xeaf6;" glyph-name="window-closed" d="M256 469.334h170.667v85.333h170.667v-85.333h170.667v298.667h-512v-298.666zM768 384h-512v-298.667h512v298.667zM256 853.333h512c47.13 0 85.333-38.205 85.333-85.333v-682.667c0-47.13-38.204-85.333-85.333-85.333h-512c-47.128 0-85.333 38.204-85.333 85.333v682.666c0 47.128 38.205 85.333 85.333 85.333z" />
+<glyph unicode="&#xeaf7;" glyph-name="window-maximize" d="M170.667 768h682.667v-682.666h-682.667v682.667zM256 597.334v-426.667h512v426.667h-512z" />
+<glyph unicode="&#xeaf8;" glyph-name="window-minimize" d="M853.333 341.334h-682.667v170.667h682.667z" />
+<glyph unicode="&#xeaf9;" glyph-name="window-open" d="M256 597.334h170.667v85.333h170.667v-85.333h170.667v170.667h-512v-170.666zM768 512h-512v-213.333h512v213.333zM256 85.334h512v128h-512v-128zM256 853.333h512c47.13 0 85.333-38.205 85.333-85.333v-682.667c0-47.13-38.204-85.333-85.333-85.333h-512c-47.128 0-85.333 38.204-85.333 85.333v682.666c0 47.128 38.205 85.333 85.333 85.333z" />
+<glyph unicode="&#xeafa;" glyph-name="window-restore" d="M170.663 597.33l170.653-0.014-0.014 170.653 512.014 0.014v-512h-170.667l0.013-170.654h-511.999v512.001zM682.662 597.337l-0.013-256.020h85.325v341.333l-341.346-0.014 0.014-85.312 256.020 0.014zM255.993 426.667v-256l341.332-0.013 0.004 256.009-341.336 0.004z" />
+<glyph unicode="&#xeafb;" glyph-name="windows" d="M128 426.667v224l256 56.471v-276.707l-256-3.763zM853.333 810.667v-373.333l-426.667-6.276v285.492l426.667 94.118zM128 384l256-3.763v-290.513l-256 48.943v245.333zM853.333 373.334v-373.333l-426.667 81.57v298.039l426.667-6.276z" />
+<glyph unicode="&#xeafc;" glyph-name="wordpress" d="M520.627 277.76l-109.036-265.839c32.142-7.757 65.801-11.921 100.408-11.921 35.84 0 70.639 4.446 103.919 12.676zM879.219 637.636c8.060-38.41 6.353-84.956-9.387-136.136-41.246-133.299-143.458-373.026-182.993-464.32 148.48 66.035 251.827 213.713 251.827 385.229 0 78.618-21.713 152.221-59.447 215.227zM183.751 569.994c0 0-20.765 26.394-42.667 26.394h-22.376c-21.523-47.302-33.375-110.781-33.375-169.059 0-175.113 107.614-325.342 261.025-389.393zM133.499 634.23c71.206 132.446 213.903 219.104 378.501 219.104 106.573 0 203.853-45.315 278.66-109.268-21.333 4.162-44.655-0.474-68.173-13.908-54.989-31.503-73.007-120.526-1.707-165.274 44.565-27.719 60.399-97.254 58.88-139.732-1.421-42.475-103.441-237.837-103.441-237.837l-99.366 340.39c0 0-3.413 23.934-3.413 30.84 0 8.609 2.846 19.3 8.247 25.355 3.699 4.068 9.293 12.487 16.026 12.487h47.027v37.842h-255.999v-37.842h7.964c8.343 0 16.592-11.258 24.463-19.299 9.385-9.65 21.144-45.883 35.365-83.444l37.261-122.321-80.212-185.045-88.084 369.713c0 0 2.655 25.354 7.965 29.612 3.413 3.027 8.817 10.784 14.98 10.784h2.371v37.842h-217.316z" />
+<glyph unicode="&#xeafd;" glyph-name="worker" d="M512 298.667c-188.587 0-341.333-76.373-341.333-170.667v-85.333h682.666v85.333c0 94.293-152.747 170.667-341.333 170.667zM341.333 554.667c0-94.251 76.416-170.667 170.667-170.667s170.667 76.416 170.667 170.667zM490.667 853.334c-13.013 0-21.333-8.96-21.333-21.333v-128h-42.667v106.667c0 0-96-36.651-96-160 0 0-32-6.059-32-53.333h426.667c-2.133 47.275-32 53.333-32 53.333 0 123.349-96 160-96 160v-106.667h-42.667v128c0 12.373-8.32 21.333-21.333 21.333h-42.667z" />
+<glyph unicode="&#xeafe;" glyph-name="wunderlist" d="M725.333 192l-213.333 106.667-213.333-106.667v533.333h-85.333v-597.333h597.333v597.333h-85.333v-533.333zM511.991 408.892l95.881-57.826-25.365 109.056 84.634 73.324-111.569 9.588-43.58 102.818-43.584-102.818-111.566-9.588 84.635-73.324-25.368-109.056 95.883 57.826zM213.333 810.667h597.333c47.13 0 85.333-38.205 85.333-85.333v-597.333c0-47.13-38.204-85.333-85.333-85.333h-597.333c-47.128 0-85.333 38.204-85.333 85.333v597.333c0 47.128 38.205 85.333 85.333 85.333z" />
+<glyph unicode="&#xeaff;" glyph-name="xbox-controller-off" d="M85.333 713.879l54.49 54.122 713.51-713.51-54.123-54.49-266.667 266.667h-159.211c-85.333 0-117.333-96-202.667-138.667-84.704 0-148.387 126.118 17.873 482.673l-103.206 103.206zM397.905 672.951h228.19c56.572 52.382 176.67-18.732 176.67-18.732l18.569-35.552h10.381c150.46-319.193 118.921-456.605 51.021-484.966l-557.485 557.485c26.751 3.121 53.388-0.394 72.655-18.234zM512 640c-23.565 0-42.667-19.103-42.667-42.667s19.102-42.667 42.667-42.667c23.565 0 42.667 19.103 42.667 42.667s-19.102 42.667-42.667 42.667z" />
+<glyph unicode="&#xeb00;" glyph-name="xbox-controller" d="M373.333 266.667c-85.333 0-117.333-96-202.667-138.667-85.333 0-149.333 128 21.62 490.666h10.38l18.567 35.552c0 0 120.099 71.115 176.671 18.732h228.19c56.572 52.383 176.67-18.732 176.67-18.732l18.569-35.552h10.381c170.953-362.666 106.953-490.666 21.619-490.666-85.333 42.667-117.333 138.667-202.667 138.667h-277.333zM512 640c-23.565 0-42.667-19.102-42.667-42.666s19.102-42.667 42.667-42.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.666-42.667 42.666z" />
+<glyph unicode="&#xeb01;" glyph-name="xbox" d="M274.185 779.839c2.446 2.57 6.012 5.347 8.25 6.798 66.751 43.401 143.991 66.697 229.646 66.697 80.021 0 155.187-22.177 219.162-60.561 4.685-2.736 17.289-11.482 23.795-19.441-61.734 68.189-243.409-78.013-243.409-78.013-62.857 48.416-120.527 81.412-163.604 93.102-35.946 9.865-60.864 1.782-72.556-7.462zM825.148 716.5c-1.946 2.114-4.062 4.062-5.969 6.176-15.548 17.161-34.829 21.347-51.989 20.228-15.881-5.015-88.602-31.255-178.321-115.942 0 0 100.911-98.117 162.773-198.513 61.858-100.399 98.756-179.238 76.117-288.717 68.826 75.776 110.908 176.337 110.908 286.933 0 111.879-43.076 213.727-113.519 289.833zM670.959 385.545c-27.529 30.758-68.16 74.825-122.099 128.42-11.652 11.648-24.132 23.793-37.231 36.436 0 0-19.614-19.607-45.193-45.514-32.879-33.037-75.334-76.271-98.967-101.35-41.958-44.851-162.275-185.583-169.074-264.422 0 0-26.742 62.468 32.049 206.763 38.392 94.387 154.356 236.069 202.781 282.246 0 0-44.195 48.707-99.752 82.241l-1.949 1.285c-26.742 15.876-55.888 28.187-83.916 29.804-28.649-1.948-46.767-23.006-46.767-23.006-71.767-76.272-115.508-178.907-115.508-291.782 0-235.571 191.131-426.667 426.748-426.667 125.047 0 237.611 53.931 315.678 139.571 0 0.162-8.913 56.538-66.419 137.165-13.431 18.944-62.852 77.888-90.381 108.809z" />
+<glyph unicode="&#xeb02;" glyph-name="xda" d="M-2.192 222.332l138.495 163.008-138.495 163.005 65.369 54.851 128.823-151.48 128.823 151.48 65.369-54.851-138.494-163.005 138.495-163.008-65.369-54.852-128.823 151.484-128.823-151.484-65.369 54.852zM1024 213.334c0-23.565-19.102-42.667-42.667-42.667h-128c-47.13 0-85.333 38.204-85.333 85.333v85.333c0 47.13 38.204 85.333 85.333 85.333h85.333v85.333h-170.667v85.333h213.333c23.36-0.241 42.667-19.252 42.667-42.667zM938.667 341.334h-85.333v-85.333h85.333v85.333zM682.667 213.334c0-23.565-19.102-42.667-42.667-42.667h-128c-47.13 0-85.333 38.204-85.333 85.333v256c0 47.128 38.204 85.333 85.333 85.333h85.333v128h85.333v-512zM597.333 256v256h-85.333v-256h85.333z" />
+<glyph unicode="&#xeb03;" glyph-name="xml" d="M550.106 811.147l83.469-17.742-159.68-751.216-83.467 17.741 159.678 751.217zM835.661 426.983l-152.994 152.992v120.679l273.988-273.987-273.988-273.506v120.828l152.994 152.994zM67.346 426.535l273.987 273.989v-120.679l-152.994-152.994 152.994-152.994v-120.828l-273.987 273.506z" />
+<glyph unicode="&#xeb04;" glyph-name="yeast" d="M768 341.334c94.255 0 170.667-76.412 170.667-170.667s-76.412-170.667-170.667-170.667c-94.255 0-170.667 76.412-170.667 170.667l3.891 36.407c-1.719 29.935-7.189 55.855-23.091 70.618-8.67 8.047-20.442 12.783-34.231 15.351-40.772-23.561-88.094-37.043-138.569-37.043-153.167 0-277.333 124.164-277.333 277.333 0 153.167 124.166 277.333 277.333 277.333 153.169 0 277.333-124.166 277.333-277.333 0-50.475-13.483-97.796-37.043-138.569 2.569-13.79 7.305-25.562 15.351-34.231 14.763-15.902 40.683-21.372 70.618-23.091l36.407 3.891zM320 512c35.346 0 64-28.655 64-64s-28.654-64-64-64c-35.346 0-64 28.655-64 64s28.654 64 64 64zM405.333 725.334c-106.039 0-192-85.961-192-192s85.961-192 192-192c106.039 0 192 85.961 192 192s-85.961 192-192 192z" />
+<glyph unicode="&#xeb05;" glyph-name="yelp" d="M451.785 852.657c27.435 0.043 39.893-10.837 42.411-40.619l8.96-135.467 10.283-176.77c0.853-15.275-0.811-30.336-7.467-44.203-9.429-19.285-30.848-24.107-47.957-11.136-10.624 8.064-18.219 18.859-24.917 30.208l-159.189 269.741c-15.36 26.155-10.795 43.349 14.763 59.605 32.043 20.352 126.635 48.555 163.115 48.64zM632.922 305.131l10.923-2.816 164.864-59.349c28.032-10.368 35.541-26.411 24.277-53.931-19.797-48.171-50.347-89.088-89.685-122.965-19.541-16.806-38.869-14.037-51.541 7.381l-97.152 168.917c-16.683 30.165 4.181 64.811 38.315 62.763zM191.014 341.824c0.171 30.976 1.92 61.312 11.477 90.496 9.387 28.629 25.088 36.949 52.608 25.6l155.904-65.963c19.499-8.192 30.72-21.589 29.653-43.819-1.024-22.229-15.403-31.573-34.176-37.76l-157.056-51.925c-29.781-9.6-45.227-0.811-51.584 29.568-3.712 17.963-6.912 36.267-6.827 53.803zM510.549 41.852c-0.811-33.877-15.616-47.061-49.152-41.173-44.416 7.893-85.675 24.913-121.899 52.348-17.707 13.359-21.632 34.645-8.533 52.395l115.584 151.936c9.856 12.8 24.235 15.531 39.211 9.899 16.384-6.229 24.917-19.029 25.131-36.437l-0.341-188.966zM616.721 370.356c-31.061-0.256-52.181 33.963-34.603 60.117 35.456 52.907 72.747 104.535 110.293 155.949 12.587 17.28 30.251 18.773 46.293 4.224 39.595-35.968 68.224-79.618 84.267-130.818 6.101-19.285-1.664-36.608-19.499-41.6l-159.488-41.685-27.264-6.187z" />
+<glyph unicode="&#xeb06;" glyph-name="youtube-play" d="M426.641 234.752v383.998l256-191.998zM853.393 751.016c-25.685 8.406-183.501 17.068-341.419 17.068-157.824 0-315.648-7.979-341.333-16.383-66.731-22.018-85.333-171.521-85.333-324.948 0-153.434 18.603-302.933 85.333-324.954 25.685-8.401 183.509-16.38 341.333-16.38 157.918 0 315.733 7.979 341.419 16.38 66.645 22.020 84.821 171.52 84.821 324.954 0 153.428-18.176 302.248-84.821 324.264z" />
+<glyph unicode="&#xeb07;" glyph-name="youtube" d="M382.195 294.196h-38.833v22.481c-14.721-16.875-27.201-25.395-40.805-25.395-11.936 0-20.224 5.628-24.375 15.804-2.522 6.182-4.31 15.842-4.31 30.029v163.507h38.832v-167.595c0.905-5.734 3.342-7.829 8.28-7.829 7.433 0 14.159 6.455 22.377 18.048v157.376h38.833v-206.426zM206.426 355.508l0.020 81.754c2.044 20.437-4.313 30.016-16.371 30.016s-18.394-9.579-16.35-30.016v-81.754c-2.044-20.437 4.289-30.579 16.347-30.579s18.397 10.142 16.354 30.579zM245.259 433.174v-73.579c0-21.935-3.613-37.090-11.445-47.415-10.344-14.076-27.387-21.534-43.738-21.534s-33.1 7.458-43.43 21.534c-7.957 10.325-11.753 25.481-11.753 47.415l0.038 73.399c0 22.059 4.268 38.805 12.225 49.229 10.33 14.123 24.413 19.9 42.92 19.9 16.351 0 32.575-5.777 42.921-19.9 7.832-10.423 12.263-26.991 12.263-49.050zM91.973 406.605v-112.41h-40.876v112.41c0 0-42.357 137.816-51.095 163.504h42.92l28.684-107.658 28.543 107.658h42.92l-51.095-163.504zM1017.907 547.816c0 0 6.093-49.162 6.093-98.331v-46.097c0-49.161-6.093-98.325-6.093-98.325s-5.965-41.865-24.265-60.305c-23.206-24.201-49.22-24.32-61.15-25.737-85.402-6.144-213.641-6.336-213.641-6.336s-158.677 1.442-207.501 6.106c-13.581 2.534-44.083 1.766-67.294 25.967-18.301 18.441-24.256 60.305-24.256 60.305s-6.103 49.165-6.103 98.325v46.097c0 49.169 6.103 98.331 6.103 98.331s5.955 41.868 24.256 60.305c23.211 24.197 49.22 24.319 61.15 25.734 85.402 6.146 213.508 6.146 213.508 6.146h0.269c0 0 128.107 0 213.508-6.146 11.93-1.415 37.943-1.537 61.15-25.734 18.3-18.438 24.265-60.305 24.265-60.305zM899.281 443.478c0 19.102 5.239 24.311 17.596 24.311 12.267 0 17.148-5.675 17.148-24.567v-22.31l-34.743-0.038v22.605zM972.928 390.255l-0.009 41.779c0 21.828-4.297 37.798-12.032 48.128-10.372 13.973-25.105 21.372-43.669 21.372-18.889 0-33.621-7.398-44.322-21.372-7.863-10.33-12.45-27.204-12.45-49.033v-71.535c0-21.7 5.043-36.894 12.907-47.113 10.697-13.956 25.429-20.924 44.787-20.924 19.332 0 34.513 7.309 44.749 22.14 4.501 6.545 7.407 13.969 8.657 22.17 0.333 3.703 1.314 12.143 1.314 24.068v5.79h-38.831c0-14.844 0.064-23.671-0.277-25.685-2.112-9.89-7.424-14.844-16.533-14.844-12.698 0-18.065 9.493-17.937 28.352v36.706h73.647zM797.090 353.464c0-20.437-4.817-28.267-15.488-28.267-6.093 0-13.111 3.132-19.302 9.318l0.047 123.951c6.187 6.106 13.163 9.323 19.255 9.323 10.671 0 15.488-6.003 15.488-26.441v-87.885zM801.395 501.854c-13.611 0-27.14-8.371-39.095-23.078l0.047 89.29h-36.791v-273.87h36.791l0.051 20.578c12.361-15.296 25.843-23.215 38.997-23.215 14.733 0 25.502 7.889 30.438 23.074 2.47 8.657 4.087 21.986 4.087 40.875v81.754c0 19.345-2.479 32.572-4.949 40.785-4.937 15.296-14.844 23.808-29.577 23.808zM694.899 294.196v204.382h-38.831v-155.332c-8.222-11.593-14.946-18.048-22.379-18.048-4.941 0-7.377 2.095-8.282 7.829v165.551h-38.831v-161.463c0-14.187 1.788-23.846 4.309-30.029 4.151-10.176 12.437-15.804 24.375-15.804 13.602 0 26.082 8.521 40.806 25.395v-22.481h38.831zM547.746 294.196v235.037h44.962v38.833l-128.759-0.043v-38.79h42.918v-235.037h40.879z" />
+<glyph unicode="&#xeb08;" glyph-name="zip-box" d="M597.308 213.415h-85.333v85.333h-85.333v85.333h85.333v-85.333h85.333zM597.308 554.749h-85.333v-85.335h85.333v-85.333h-85.333v85.333h-85.333v85.335h85.333v85.333h-85.333v85.333h85.333v-85.333h85.333zM810.641 810.749h-597.333c-47.147 0-85.333-38.229-85.333-85.333v-597.335c0-47.104 38.187-85.333 85.333-85.333h597.333c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.229 85.333-85.333 85.333z" />
+</font></defs></svg>
\ No newline at end of file
diff --git a/public/assets/icons/fonts/icomoon.ttf b/public/assets/icons/fonts/icomoon.ttf
new file mode 100644 (file)
index 0000000..0a5f2ef
Binary files /dev/null and b/public/assets/icons/fonts/icomoon.ttf differ
diff --git a/public/assets/icons/fonts/icomoon.woff b/public/assets/icons/fonts/icomoon.woff
new file mode 100644 (file)
index 0000000..e83189f
Binary files /dev/null and b/public/assets/icons/fonts/icomoon.woff differ
diff --git a/public/assets/icons/selection.json b/public/assets/icons/selection.json
new file mode 100644 (file)
index 0000000..27e6ab4
--- /dev/null
@@ -0,0 +1,29693 @@
+{
+    "IcoMoonType": "selection",
+    "icons": [{
+        "icon": {
+            "paths": [
+                "M426.667 170.667c94.255 0 170.667 76.41 170.667 170.667 0 94.255-76.412 170.667-170.667 170.667-94.257 0-170.667-76.412-170.667-170.667 0-94.257 76.41-170.667 170.667-170.667zM426.667 597.333c188.514 0 341.333 76.412 341.333 170.667v85.333h-682.667v-85.333c0-94.255 152.82-170.667 341.333-170.667zM853.333 512v-213.333h85.333v213.333h-85.333zM853.333 682.667v-85.333h85.333v85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-alert"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1274,
+            "id": 1288,
+            "prevSize": 24,
+            "code": 58880,
+            "name": "account-alert"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 0
+    }, {
+        "icon": {
+            "paths": [
+                "M810.637 810.586l-597.333 0.043v-597.377h597.333zM810.637 127.918h-597.333c-47.104 0-85.333 38.229-85.333 85.333v597.335c0 47.147 38.229 85.333 85.333 85.333h597.333c47.104 0 85.333-38.187 85.333-85.333v-597.335c0-47.104-38.229-85.333-85.333-85.333zM703.97 693.252c0-64-128-96-192-96s-192 32-192 96v32h384zM511.97 522.586c52.992 0 96-42.923 96-96.001 0-52.992-43.008-96-96-96s-96.001 43.008-96.001 96c0 53.079 43.009 96.001 96.001 96.001z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1275,
+            "id": 1287,
+            "prevSize": 24,
+            "code": 58881,
+            "name": "account-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1
+    }, {
+        "icon": {
+            "paths": [
+                "M255.974 725.333c0-85.333 170.667-132.267 256-132.267s256 46.933 256 132.267v42.667h-512zM639.974 384c0 70.741-57.344 128-128 128s-128-57.259-128-128c0-70.656 57.344-128 128-128s128 57.344 128 128zM127.974 213.333v597.333c0 47.104 38.144 85.333 85.333 85.333h597.333c47.083 0 85.333-38.229 85.333-85.333v-597.333c0-47.104-38.251-85.333-85.333-85.333h-597.333c-47.189 0-85.333 38.229-85.333 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1276,
+            "id": 1286,
+            "prevSize": 24,
+            "code": 58882,
+            "name": "account-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 2
+    }, {
+        "icon": {
+            "paths": [
+                "M384 213.333c82.475 0 149.333 66.859 149.333 149.333s-66.859 149.333-149.333 149.333c-82.474 0-149.333-66.859-149.333-149.333s66.859-149.333 149.333-149.333zM384 586.667c164.949 0 298.667 66.859 298.667 149.333v74.667h-597.333v-74.667c0-82.475 133.718-149.333 298.667-149.333zM725.333 540.339l-117.333-128 49.673-49.673 67.661 67.661 152.994-152.994 49.673 60.34-202.667 202.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-check"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1277,
+            "id": 1285,
+            "prevSize": 24,
+            "code": 58883,
+            "name": "account-check"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 3
+    }, {
+        "icon": {
+            "paths": [
+                "M511.966 819.123c-106.837 0-200.832-54.566-255.915-137.382 1.109-84.779 170.837-131.413 255.915-131.413s254.805 46.635 255.915 131.413c-55.083 82.816-149.077 137.382-255.915 137.382zM511.966 213.258c70.656 0 128 57.344 128 128 0 70.742-57.344 127.999-128 127.999s-128-57.257-128-127.999c0-70.656 57.344-128 128-128zM511.966 85.258c-235.648 0-426.667 190.976-426.667 426.665 0 235.648 191.019 426.667 426.667 426.667s426.667-191.019 426.667-426.667c0-235.689-191.019-426.665-426.667-426.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1278,
+            "id": 1284,
+            "prevSize": 24,
+            "code": 58884,
+            "name": "account-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 4
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 426.667v85.333h-42.667v85.333h-85.333v-85.333h-92.617c-17.572 49.715-64.984 85.333-120.716 85.333-70.692 0-128-57.306-128-128 0-70.692 57.307-128 128-128 55.732 0 103.145 35.619 120.716 85.333h220.617zM128 426.667c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667zM682.667 597.333c113.792 0 341.333 56.96 341.333 170.667v85.333h-682.667v-85.333c0-113.707 227.541-170.667 341.333-170.667zM682.667 512c-94.208 0-170.667-76.501-170.667-170.667 0-94.208 76.459-170.667 170.667-170.667s170.667 76.459 170.667 170.667c0 94.165-76.459 170.667-170.667 170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-key"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1279,
+            "id": 1283,
+            "prevSize": 24,
+            "code": 58885,
+            "name": "account-key"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 5
+    }, {
+        "icon": {
+            "paths": [
+                "M767.97 682.586h-512v-38.4c0-85.376 170.624-132.267 256-132.267 85.333 0 256 46.891 256 132.267zM511.97 226.051c63.616 0 115.2 51.584 115.2 115.2 0 63.659-51.584 115.201-115.2 115.201s-115.2-51.543-115.2-115.201c0-63.616 51.584-115.2 115.2-115.2zM810.637 85.251h-597.333c-47.147 0-85.333 38.187-85.333 85.333v597.335c0 47.147 38.186 85.333 85.333 85.333h170.667l128 128 128-128h170.667c47.061 0 85.333-38.187 85.333-85.333v-597.335c0-47.147-38.272-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-location"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1280,
+            "id": 1282,
+            "prevSize": 24,
+            "code": 58886,
+            "name": "account-location"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 6
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 597.248c-113.792 0-341.334 56.96-341.334 170.667v85.333h682.667v-85.333c0-113.707-227.541-170.667-341.333-170.667zM42.641 426.58v85.335h341.333v-85.335zM639.974 511.915c94.208 0 170.667-76.501 170.667-170.668 0-94.208-76.459-170.667-170.667-170.667s-170.667 76.459-170.667 170.667c0 94.167 76.459 170.668 170.667 170.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-minus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1281,
+            "id": 1281,
+            "prevSize": 24,
+            "code": 58887,
+            "name": "account-minus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 7
+    }, {
+        "icon": {
+            "paths": [
+                "M704 277.333c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333zM704 512c82.347 0 149.333-66.987 149.333-149.333s-66.987-149.333-149.333-149.333c-82.347 0-149.333 66.987-149.333 149.333s66.987 149.333 149.333 149.333zM320 277.333c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333zM320 512c82.347 0 149.333-66.987 149.333-149.333s-66.987-149.333-149.333-149.333c-82.347 0-149.333 66.987-149.333 149.333s66.987 149.333 149.333 149.333zM917.333 746.667h-320v-53.333c0-19.627-8.533-36.693-22.187-52.053 37.547-12.8 83.627-22.613 128.853-22.613 104.107 0 213.333 51.627 213.333 74.667zM533.333 746.667h-426.667v-53.333c0-23.040 109.227-74.667 213.333-74.667s213.333 51.627 213.333 74.667zM704 554.667c-51.2 0-130.987 14.507-192 42.667-61.013-28.587-140.8-42.667-192-42.667-92.587 0-277.333 46.080-277.333 138.667v117.333h938.667v-117.333c0-92.587-184.747-138.667-277.333-138.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1282,
+            "id": 1280,
+            "prevSize": 24,
+            "code": 58888,
+            "name": "account-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 8
+    }, {
+        "icon": {
+            "paths": [
+                "M554.654 554.586c-85.333 0-256 42.709-256 128v85.333h512v-85.333c0-85.291-170.667-128-256-128zM837.15 561.417c35.371 30.929 58.837 70.737 58.837 121.169v85.333h128v-85.333c0-65.749-101.291-106.086-186.837-121.169zM554.654 469.252c70.699 0 127.573-57.345 127.573-128.001s-56.875-128-127.573-128c-70.699 0-128 57.344-128 128s57.301 128.001 128 128.001zM767.987 469.252c70.699 0 127.573-57.345 127.573-128.001s-56.875-128-127.573-128c-13.611 0-26.709 2.176-39.040 6.144 24.192 34.603 38.613 76.501 38.613 121.856s-14.421 87.255-38.613 121.857c12.331 3.968 25.429 6.144 39.040 6.144zM341.321 426.584h-128v-128h-85.333v128h-128v85.335h128v128h85.333v-128h128v-85.335z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-multiple-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1283,
+            "id": 1279,
+            "prevSize": 24,
+            "code": 58889,
+            "name": "account-multiple-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 9
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 554.586c-12.373 0-26.325 0.768-41.173 2.304 49.451 35.712 83.84 83.755 83.84 147.029v106.667h256v-106.667c0-99.499-199.125-149.333-298.667-149.333zM341.307 554.586c-99.585 0-298.667 49.835-298.667 149.333v106.667h597.334v-106.667c0-99.499-199.125-149.333-298.667-149.333zM341.307 469.252c70.699 0 127.574-57.345 127.574-128.001s-56.875-128-127.574-128c-70.699 0-128 57.344-128 128s57.301 128.001 128 128.001zM682.641 469.252c70.699 0 127.573-57.345 127.573-128.001s-56.875-128-127.573-128c-70.699 0-128 57.344-128 128s57.301 128.001 128 128.001z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-multiple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1284,
+            "id": 1278,
+            "prevSize": 24,
+            "code": 58890,
+            "name": "account-multiple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 10
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 682.667v85.333h42.667c23.565 0 42.667 19.102 42.667 42.667h298.667v85.333h-298.667c0 23.565-19.102 42.667-42.667 42.667h-170.667c-23.564 0-42.666-19.102-42.666-42.667h-298.667v-85.333h298.667c0-23.565 19.102-42.667 42.666-42.667h42.667v-85.333h-256v-64c0-82.475 133.718-149.333 298.667-149.333s298.667 66.859 298.667 149.333v64h-256zM512 85.333c82.475 0 149.333 66.859 149.333 149.333s-66.859 149.333-149.333 149.333c-82.475 0-149.333-66.859-149.333-149.333s66.859-149.333 149.333-149.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-network"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1285,
+            "id": 1277,
+            "prevSize": 24,
+            "code": 58891,
+            "name": "account-network"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 11
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 554.586c-113.792 0-341.334 56.96-341.334 170.667v128h682.667v-128c0-113.707-227.541-170.667-341.333-170.667zM511.974 170.584c-94.209 0-170.667 76.458-170.667 170.667 0 94.167 76.458 170.668 170.667 170.668s170.667-76.501 170.667-170.668c0-94.208-76.459-170.667-170.667-170.667zM511.974 635.652c126.891 0 260.267 62.165 260.267 89.6v46.933h-520.534v-46.933c0-27.435 133.376-89.6 260.268-89.6zM511.974 251.651c49.408 0 89.6 40.192 89.6 89.6s-40.192 89.601-89.6 89.601c-49.408 0-89.601-40.193-89.601-89.601s40.193-89.6 89.601-89.6z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1286,
+            "id": 1276,
+            "prevSize": 24,
+            "code": 58892,
+            "name": "account-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 12
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 597.248c-113.792 0-341.334 56.96-341.334 170.667v85.333h682.667v-85.333c0-113.707-227.541-170.667-341.333-170.667zM255.974 426.58v-128h-85.333v128h-128v85.335h128v128h85.333v-128h128v-85.335zM639.974 511.915c94.208 0 170.667-76.501 170.667-170.668 0-94.208-76.459-170.667-170.667-170.667s-170.667 76.459-170.667 170.667c0 94.167 76.459 170.668 170.667 170.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1287,
+            "id": 1275,
+            "prevSize": 24,
+            "code": 58893,
+            "name": "account-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 13
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 597.248c113.792 0 341.333 56.96 341.333 170.667v85.333h-682.667v-85.333c0-113.707 227.542-170.667 341.334-170.667zM639.97 511.915c-94.208 0-170.667-76.501-170.667-170.668 0-94.208 76.459-170.667 170.667-170.667 94.212 0 170.667 76.459 170.667 170.667 0 94.166-76.454 170.668-170.667 170.668zM213.331 408.995l90.511-90.511 60.34 60.34-90.511 90.509 90.51 90.513-60.339 60.339-90.51-90.513-90.51 90.513-60.34-60.343 90.509-90.509-90.51-90.508 60.34-60.34 90.51 90.51z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-remove"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1288,
+            "id": 1274,
+            "prevSize": 24,
+            "code": 58894,
+            "name": "account-remove"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 14
+    }, {
+        "icon": {
+            "paths": [
+                "M640 597.333c113.792 0 341.333 56.96 341.333 170.667v85.333h-682.667v-85.333c0-113.707 227.541-170.667 341.333-170.667zM640 512c-94.208 0-170.667-76.501-170.667-170.667 0-94.208 76.459-170.667 170.667-170.667s170.667 76.459 170.667 170.667c0 94.165-76.459 170.667-170.667 170.667zM117.647 625.361c-16.663 16.661-43.677 16.661-60.34 0-16.662-16.666-16.662-43.678 0-60.343l83.167-83.166c-7.997-16.708-12.474-35.426-12.474-55.185 0-70.692 57.307-128 128-128s128 57.308 128 128c0 70.694-57.308 128-128 128-19.761 0-38.476-4.476-55.186-12.476l-83.167 83.17zM256 384c-23.564 0-42.667 19.103-42.667 42.667s19.102 42.667 42.667 42.667c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-search"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1289,
+            "id": 1273,
+            "prevSize": 24,
+            "code": 58895,
+            "name": "account-search"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 15
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 384c99.541 0 298.667 49.835 298.667 149.333v106.667h-256v-106.667c0-63.275-34.389-111.317-83.84-147.029l41.173-2.304zM341.333 384c99.541 0 298.667 49.835 298.667 149.333v106.667h-597.333v-106.667c0-99.499 199.083-149.333 298.667-149.333zM341.333 298.667c-70.698 0-128-57.344-128-128s57.302-128 128-128c70.7 0 127.573 57.344 127.573 128s-56.874 128-127.573 128zM682.667 298.667c-70.699 0-128-57.344-128-128s57.301-128 128-128c70.699 0 127.573 57.344 127.573 128s-56.875 128-127.573 128zM384 714.667v96h256v-96l138.667 138.667-138.667 138.667v-96h-256v96l-138.667-138.667 138.667-138.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account-switch"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1290,
+            "id": 1272,
+            "prevSize": 24,
+            "code": 58896,
+            "name": "account-switch"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 16
+    }, {
+        "icon": {
+            "paths": [
+                "M512 170.667c94.255 0 170.667 76.41 170.667 170.667 0 94.255-76.412 170.667-170.667 170.667-94.257 0-170.667-76.412-170.667-170.667 0-94.257 76.41-170.667 170.667-170.667zM512 597.333c188.514 0 341.333 76.412 341.333 170.667v85.333h-682.667v-85.333c0-94.255 152.82-170.667 341.333-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "account"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1291,
+            "id": 1271,
+            "prevSize": 24,
+            "code": 58897,
+            "name": "account"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 17
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 981.333c-47.128 0-85.333-38.204-85.333-85.333v-85.333h256v85.333c0 47.13-38.204 85.333-85.333 85.333h-85.333zM512 42.667c30.161 0 59.409 3.912 87.262 11.256 49.946 66.991 83.405 189.743 83.405 330.077 0 97.387-16.111 186.308-42.667 298.667 0 47.13-38.204 85.333-85.333 85.333h-85.333c-47.128 0-85.333-38.204-85.333-85.333-26.554-112.358-42.667-201.28-42.667-298.667 0-140.334 33.457-263.086 83.403-330.077 27.855-7.344 57.103-11.256 87.264-11.256zM853.333 341.334c0 135.59-79.057 338.048-193.591 393.122 40.427-77.641 65.591-229.504 65.591-350.455s-25.165-230.147-65.591-307.79c114.534 55.077 193.591 129.535 193.591 265.123zM170.667 341.334c0-135.589 79.058-210.046 193.591-265.123-40.428 77.643-65.591 186.839-65.591 307.79s25.164 272.815 65.592 350.455c-114.534-55.074-193.592-257.532-193.592-393.122z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "airballoon"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1292,
+            "id": 1270,
+            "prevSize": 24,
+            "code": 58898,
+            "name": "airballoon"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 18
+    }, {
+        "icon": {
+            "paths": [
+                "M134.246 224.91l212.736 212.735-255.403 159.616v85.333l341.333-106.667v234.667l-85.333 64v64l149.333-42.667 149.333 42.667v-64l-85.333-64v-159.019l244.352 244.352 54.272-54.315-670.976-671.017zM560.913 383.929v-234.667c0-35.371-28.672-64-64-64s-64 28.629-64 64v157.098l333.952 333.908 135.381 42.325v-85.333l-341.333-213.332z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "airplane-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1293,
+            "id": 1269,
+            "prevSize": 24,
+            "code": 58899,
+            "name": "airplane-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 19
+    }, {
+        "icon": {
+            "paths": [
+                "M895.974 682.581v-85.333l-341.333-213.331v-234.667c0-35.371-28.672-64-64-64s-64 28.629-64 64v234.667l-341.333 213.331v85.333l341.333-106.667v234.667l-85.333 64v64l149.333-42.667 149.333 42.667v-64l-85.333-64v-234.667l341.333 106.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "airplane"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1294,
+            "id": 1268,
+            "prevSize": 24,
+            "code": 58900,
+            "name": "airplane"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 20
+    }, {
+        "icon": {
+            "paths": [
+                "M449.707 619.947l-90.88-90.88-45.227 45.227 135.68 135.68 256-256-45.227-45.227-210.347 211.2zM512 853.333c-165.12 0-298.667-133.547-298.667-298.667s133.547-298.667 298.667-298.667c165.12 0 298.667 133.547 298.667 298.667s-133.547 298.667-298.667 298.667zM512 170.667c-212.053 0-384 171.947-384 384s171.52 384 384 384c212.053 0 384-171.947 384-384s-171.947-384-384-384zM336.213 144.64l-54.613-65.28-196.267 164.267 55.040 65.28 195.84-164.267zM938.667 244.053l-196.267-164.693-55.040 65.28 196.267 164.693 55.040-65.28z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "alarm-check"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1295,
+            "id": 1267,
+            "prevSize": 24,
+            "code": 58901,
+            "name": "alarm-check"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 21
+    }, {
+        "icon": {
+            "paths": [
+                "M396.459 138.71l-176.256 147.849-49.536-58.761 176.64-147.84 49.152 58.752zM938.667 228.182l-49.536 58.752-176.64-148.224 49.536-58.752 176.64 148.224zM554.667 170.667c188.514 0 341.333 152.82 341.333 341.333 0 188.514-152.819 341.333-341.333 341.333s-341.333-152.819-341.333-341.333c0-188.513 152.82-341.333 341.333-341.333zM554.667 256c-141.385 0-256 114.615-256 256s114.615 256 256 256c141.385 0 256-114.615 256-256s-114.615-256-256-256zM512 320h64v193.468l137.267 62.434-26.496 58.257-174.771-79.492v-234.667zM42.667 597.333c0-105.988 48.309-200.697 124.11-263.304-24.895 54.169-38.776 114.448-38.776 177.97l2.684 48.124-2.685 37.21c0 97.19 54.162 181.734 133.949 225.088 55.543 52.395 125.144 90.044 202.55 106.701-25.813 6.238-52.77 9.545-80.499 9.545-188.513 0-341.333-152.819-341.333-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "alarm-multiple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1296,
+            "id": 1266,
+            "prevSize": 24,
+            "code": 58902,
+            "name": "alarm-multiple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 22
+    }, {
+        "icon": {
+            "paths": [
+                "M342.187 139.947l-60.587-60.587-36.693 30.293 60.587 60.587zM702.72 784.64c-51.627 42.667-118.187 68.693-190.72 68.693-165.12 0-298.667-133.547-298.667-298.667 0-72.533 26.027-139.093 68.693-190.72zM124.587 97.707l-54.187 54.613 56.747 56.747-47.36 39.68 60.587 60.587 47.36-40.107 34.133 34.133c-58.453 67.413-93.867 155.307-93.867 251.307 0 212.053 171.52 384 384 384 96 0 183.893-35.413 251.307-93.867l93.867 93.867 54.187-54.187-786.773-786.773zM938.667 244.053l-196.267-164.693-55.040 65.28 196.267 164.693 55.040-65.28zM512 256c165.12 0 298.667 133.547 298.667 298.667 0 35.84-6.827 70.4-18.347 102.4l64.853 64.853c24.747-50.773 38.827-107.093 38.827-167.253 0-212.053-171.947-384-384-384-60.16 0-116.48 14.080-167.253 38.827l64.853 64.853c32-11.52 66.56-18.347 102.4-18.347z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "alarm-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1297,
+            "id": 1265,
+            "prevSize": 24,
+            "code": 58903,
+            "name": "alarm-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 23
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 384h-85.333v128h-128v85.333h128v128h85.333v-128h128v-85.333h-128zM512 853.333c-165.12 0-298.667-133.547-298.667-298.667s133.547-298.667 298.667-298.667c165.12 0 298.667 133.547 298.667 298.667s-133.547 298.667-298.667 298.667zM512 170.667c-212.053 0-384 171.947-384 384s171.52 384 384 384c212.053 0 384-171.947 384-384s-171.947-384-384-384zM938.667 244.053l-196.267-164.693-55.040 65.28 196.267 164.693zM336.213 144.64l-54.613-65.28-196.267 164.267 55.040 65.28 195.84-164.267z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "alarm-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1298,
+            "id": 1264,
+            "prevSize": 24,
+            "code": 58904,
+            "name": "alarm-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 24
+    }, {
+        "icon": {
+            "paths": [
+                "M512 853.333c-165.12 0-298.667-133.547-298.667-298.667s133.547-298.667 298.667-298.667c165.12 0 298.667 133.547 298.667 298.667s-133.547 298.667-298.667 298.667zM512 170.667c-212.053 0-384 171.947-384 384s171.52 384 384 384c212.053 0 384-171.947 384-384s-171.947-384-384-384zM533.333 341.333h-64v256l202.667 121.6 32-52.48-170.667-101.12v-224zM336.213 144.64l-54.613-65.28-196.267 164.267 55.040 65.28 195.84-164.267zM938.667 244.053l-196.267-164.693-55.040 65.28 196.267 164.693 55.040-65.28z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "alarm"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1299,
+            "id": 1263,
+            "prevSize": 24,
+            "code": 58905,
+            "name": "alarm"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 25
+    }, {
+        "icon": {
+            "paths": [
+                "M512 469.333c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM512 704c-106.24 0-192-85.76-192-192s85.76-192 192-192c106.24 0 192 85.76 192 192s-85.76 192-192 192zM512 85.333c-235.52 0-426.667 191.147-426.667 426.667s191.147 426.667 426.667 426.667c235.52 0 426.667-191.147 426.667-426.667s-191.147-426.667-426.667-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "album"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1300,
+            "id": 1262,
+            "prevSize": 24,
+            "code": 58906,
+            "name": "album"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 26
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128.001h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM554.641 554.581v-255.998h-85.333v255.998h85.333zM554.641 725.248v-85.333h-85.333v85.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "alert-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1301,
+            "id": 1261,
+            "prevSize": 24,
+            "code": 58907,
+            "name": "alert-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 27
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 554.581h-85.333v-255.998h85.333zM554.641 725.248h-85.333v-85.333h85.333zM511.974 85.25c-235.648 0-426.667 191.018-426.667 426.665 0 235.652 191.019 426.667 426.667 426.667s426.667-191.014 426.667-426.667c0-235.646-191.019-426.665-426.667-426.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "alert-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1302,
+            "id": 1260,
+            "prevSize": 24,
+            "code": 58908,
+            "name": "alert-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 28
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 554.581h-85.333v-255.998h85.333zM511.974 738.048c-30.592 0-55.467-24.832-55.467-55.467 0-30.588 24.875-55.462 55.467-55.462s55.467 24.875 55.467 55.462c0 30.635-24.875 55.467-55.467 55.467zM671.036 127.917h-318.146l-224.916 224.937v318.126l224.916 224.934h318.146l224.939-224.934v-318.126l-224.939-224.937z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "alert-octagon"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1303,
+            "id": 1259,
+            "prevSize": 24,
+            "code": 58909,
+            "name": "alert-octagon"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 29
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 597.333h-85.333v-170.668h85.333zM554.667 768h-85.333v-85.333h85.333zM42.667 896h938.667l-469.333-810.668-469.333 810.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "alert"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1304,
+            "id": 1258,
+            "prevSize": 24,
+            "code": 58910,
+            "name": "alert"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 30
+    }, {
+        "icon": {
+            "paths": [
+                "M771.413 759.326c-19.533 5.781-37.026 8.674-52.48 8.674-51.106 0-85.572-37.734-103.394-113.207h-2.133c-41.911 81.54-100.646 122.308-176.213 122.308-55.847 0-100.576-21.12-134.188-63.36s-50.418-95.595-50.418-160.068c0-73.579 19.058-133.619 57.173-180.126s89.695-69.76 154.739-69.76c35.174 0 66.513 9.719 94.007 29.156s48.354 46.791 62.579 82.062h1.707l30.293-102.115h109.227l-91.166 226.703c10.052 53.188 20.693 89.387 31.927 108.587 11.238 19.2 25.86 28.8 43.878 28.8 9.766 0 18.202-1.519 25.314-4.553l-0.853 86.899zM589.794 536.034c-9.289-48.542-23.654-85.734-43.093-111.572-19.435-25.837-42.714-38.756-69.828-38.756-34.987 0-62.911 15.692-83.77 47.074-20.859 31.386-31.289 70.071-31.289 116.053 0 41.532 9.055 76.305 27.165 104.32 18.109 28.019 42.335 42.027 72.675 42.027 25.6 0 48.973-12.041 70.114-36.122 21.146-24.085 38.733-59.452 52.766-106.099l5.261-16.926z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "alpha"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1305,
+            "id": 1257,
+            "prevSize": 24,
+            "code": 58911,
+            "name": "alpha"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 31
+    }, {
+        "icon": {
+            "paths": [
+                "M256 469.333c47.128 0 85.333 38.204 85.333 85.333l0 170.667h-170.667c-47.128 0-85.333-38.204-85.333-85.333v-85.333c0-47.13 38.205-85.333 85.333-85.333h85.333zM170.667 554.667v85.333h85.333v-85.333h-85.333zM853.333 554.667v85.333h85.333v85.333h-85.333c-47.13 0-85.333-38.204-85.333-85.333v-85.333c0-47.13 38.204-85.333 85.333-85.333h85.333v85.333h-85.333zM512 298.667v170.667h85.333c47.13 0 85.333 38.204 85.333 85.333v85.333c0 47.13-38.204 85.333-85.333 85.333h-85.333c-47.13 0-85.333-38.204-85.333-85.333v-341.333h85.333zM512 640h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "alphabetical"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1306,
+            "id": 1256,
+            "prevSize": 24,
+            "code": 58912,
+            "name": "alphabetical"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 32
+    }, {
+        "icon": {
+            "paths": [
+                "M210.824 474.351c12.197 0 23.988 1.741 35.137 4.988 0.018-91.468 74.174-165.613 165.647-165.613 69.403 0 128.834 42.682 153.482 103.227 24.777-32.246 63.731-53.031 107.537-53.031 74.85 0 135.531 60.679 135.531 135.53 0 10.62-1.225 20.958-3.533 30.878 10.517-3.742 21.845-5.781 33.651-5.781 55.445 0 100.39 44.949 100.39 100.395 0 55.441-44.945 100.39-100.39 100.39s-566.967 0-627.453 0c-69.306 0-125.49-56.183-125.49-125.491 0-69.303 56.184-125.491 125.49-125.491z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "amazon-clouddrive"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1307,
+            "id": 1255,
+            "prevSize": 24,
+            "code": 58913,
+            "name": "amazon-clouddrive"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 33
+    }, {
+        "icon": {
+            "paths": [
+                "M679.701 729.062c-7.573 6.788-18.487 7.245-27.008 2.662-37.978-31.556-44.779-46.144-65.532-76.181-62.746 63.923-107.191 83.093-188.463 83.093-96.25 0-171.101-59.388-171.101-178.167 0-92.8 50.259-155.898 121.906-186.833 62.023-27.225 148.651-32.171 214.938-39.597v-14.847c0-27.22 2.142-59.396-13.888-82.898-13.905-21.040-40.649-29.701-64.162-29.701-43.601 0-82.374 22.343-91.883 68.645-1.988 10.301-9.498 20.489-19.869 21.014l-110.787-11.992c-9.358-2.108-19.767-9.611-17.057-23.895 25.452-134.422 146.839-175.032 255.626-175.032 55.616 0 128.324 14.847 172.177 56.919 55.603 51.969 50.257 121.26 50.257 196.737v178.096c0 53.572 22.251 77.073 43.145 105.946 7.292 10.394 8.939 22.767-0.367 30.357l-87.667 75.93-0.265-0.256zM564.442 450.347v-24.742c-82.688 0-170.023 17.707-170.023 115.068 0 49.485 25.668 82.906 69.509 82.906 32.085 0 60.958-19.793 79.13-51.968 22.464-39.599 21.385-76.715 21.385-121.263zM860.139 833.553c-92.979 68.617-227.789 105.114-343.868 105.114-162.693 0-309.189-60.134-420.059-160.247-8.702-7.855-0.938-18.598 9.525-12.51 119.611 69.606 267.523 111.526 420.301 111.526 103.057 0 216.35-21.389 320.589-65.6 15.718-6.673 28.898 10.359 13.513 21.717zM898.837 789.385c-11.9-15.232-78.626-7.223-108.595-3.635-9.079 1.088-10.487-6.835-2.3-12.587 53.222-37.385 140.429-26.586 150.566-14.076 10.219 12.629-2.671 100.066-52.557 141.798-7.671 6.421-14.967 2.995-11.567-5.487 11.221-28.028 36.352-90.786 24.452-106.014z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "amazon"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1308,
+            "id": 1254,
+            "prevSize": 24,
+            "code": 58914,
+            "name": "amazon"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 34
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 789.252c35.328 0 64-28.672 64-64s-28.672-64-64-64c-35.328 0-64 28.672-64 64s28.672 64 64 64zM831.974 405.251h-106.667v106.668h190.464l-83.797-106.668zM255.975 789.252c35.328 0 64-28.672 64-64s-28.672-64-64-64c-35.328 0-64 28.672-64 64s28.672 64 64 64zM853.308 341.251l128 170.668v213.333h-85.333c0 70.699-57.301 128-128 128s-128-57.301-128-128h-256c0 70.699-57.301 128-128 128s-128-57.301-128-128h-85.333v-469.335c0-47.147 38.187-85.333 85.333-85.333h597.333v170.667h128zM341.333 256v128h-128v85.333h128v128h85.333v-128h128v-85.333h-128v-128h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "ambulance"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1309,
+            "id": 1253,
+            "prevSize": 24,
+            "code": 58915,
+            "name": "ambulance"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 35
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 383.918c-23.595 0-42.667-19.115-42.667-42.667s19.072-42.667 42.667-42.667c23.595 0 42.667 19.115 42.667 42.667s-19.072 42.667-42.667 42.667zM383.974 383.918c-23.595 0-42.667-19.115-42.667-42.667s19.072-42.667 42.667-42.667c23.595 0 42.667 19.115 42.667 42.667s-19.072 42.667-42.667 42.667zM687.889 186.328l89.545-89.558-35.187-35.242-98.304 98.347c-39.979-19.797-84.395-31.957-131.968-31.957s-91.99 12.16-131.969 31.957l-98.347-98.347-35.157 35.242 89.557 89.558c-74.069 54.315-122.752 141.312-122.752 240.256v42.668h597.334v-42.668c0-98.944-48.683-185.941-122.752-240.256zM213.307 682.586c0 164.949 133.717 298.667 298.668 298.667s298.667-133.717 298.667-298.667v-170.667h-597.334v170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "android-debug-bridge"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1310,
+            "id": 1252,
+            "prevSize": 24,
+            "code": 58916,
+            "name": "android-debug-bridge"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 36
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 85.333h85.333v85.333l21.333 0c35.345 0 64 28.654 64 64v149.333l-18.679 18.681 70.042 121.317c47.3-46.451 76.638-111.132 76.638-182.665l85.333 0c0 103.24-45.837 195.776-118.263 258.363l133.879 231.893 5.717 95.232-79.616-52.565-131.157-227.166c-45.743 22.771-97.323 35.575-151.893 35.575s-106.149-12.804-151.895-35.575l-131.154 227.166-79.617 52.565 5.716-95.232 247.631-428.91-18.68-18.68v-149.333c0-35.346 28.654-64 64-64l21.333-0v-85.333zM402.89 572.983c33.1 15.616 70.083 24.35 109.11 24.35 39.023 0 76.011-8.734 109.107-24.35l-62.255-107.836h-0.316c-26.274 26.278-66.799 26.278-93.073 0h-0.316l-62.258 107.836zM512 256c-23.565 0-42.667 19.103-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "android-studio"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1311,
+            "id": 1251,
+            "prevSize": 24,
+            "code": 58917,
+            "name": "android-studio"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 37
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 213.25h-42.667v-42.667h42.667zM426.641 213.25h-42.667v-42.667h42.667zM662.673 91.992l55.637-55.638c8.32-8.362 8.32-21.846 0-30.208-8.32-8.32-21.845-8.32-30.165 0l-63.019 63.062c-34.176-16.896-72.491-26.625-113.152-26.625-40.875 0-79.36 9.857-113.623 26.839l-63.273-63.276c-8.362-8.32-21.846-8.32-30.208 0-8.32 8.362-8.32 21.846 0 30.208l55.979 55.935c-63.49 46.594-104.875 121.516-104.875 206.295h512c0-84.951-41.557-160.042-105.301-206.591zM874.641 341.25c-35.328 0-64 28.63-64 64v298.665c0 35.371 28.672 64 64 64s64-28.629 64-64v-298.665c0-35.37-28.672-64-64-64zM149.307 341.25c-35.328 0-64 28.63-64 64v298.665c0 35.371 28.672 64 64 64s64-28.629 64-64v-298.665c0-35.37-28.672-64-64-64zM255.974 767.915c0 23.514 19.156 42.667 42.667 42.667h42.667v149.333c0 35.371 28.672 64 64 64s64-28.629 64-64v-149.333h85.333v149.333c0 35.371 28.672 64 64 64s64-28.629 64-64v-149.333h42.667c23.509 0 42.667-19.153 42.667-42.667v-426.665h-512v426.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "android"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1312,
+            "id": 1250,
+            "prevSize": 24,
+            "code": 58918,
+            "name": "android"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 38
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 170.667h336.525c24.307-46.618 53.146-90.586 87.27-127.838l47.206 47.203c-18.146 25.317-34.466 52.493-49.143 80.635h260.809c47.13 0 85.333 38.205 85.333 85.333v554.667c0 47.13-38.204 85.333-85.333 85.333h-216.512l14.315 52.45-78.242 30.942-21.346-83.392h-380.881c-47.128 0-85.333-38.204-85.333-85.333v-554.667c0-47.128 38.205-85.333 85.333-85.333zM170.667 256v554.666h364.386c-2.236-14.042-4.271-28.335-6.037-42.812-5.641 0.098-11.315 0.145-17.015 0.145-117.453 0-222.59-20.506-293.028-52.817l38.843-69.918c40.992 22.071 133.525 37.402 254.185 37.402 3.401 0 6.775-0.013 10.133-0.034-1.033-28.476-0.691-57.079 1.421-85.299h-139.555c0 0 17.204-172.043 84.387-341.333h-297.719zM853.333 810.667v-554.666h-299.614c-37.564 94.658-59.503 190.178-71.548 256h122.509c-8.294 54.601-8.794 111.842-4.612 167.706 77.261-5.474 135.791-18.112 166.118-34.441l38.839 69.918c-50.202 23.027-118.033 40.060-195.388 47.949 2.466 16.196 5.218 32.077 8.162 47.535h235.533zM256 341.333h85.333v128h-85.333v-128zM682.667 341.333h85.333v128h-85.333v-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "apple-finder"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1313,
+            "id": 1249,
+            "prevSize": 24,
+            "code": 58919,
+            "name": "apple-finder"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 39
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 384v-85.333h-170.667c-46.933 0-85.333 38.4-85.333 85.333v85.333c0 46.933 38.4 85.333 85.333 85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-38.4 85.333-85.333v-85.333c0-46.933-38.4-85.333-85.333-85.333h-85.333v-85.333zM469.333 640h-85.333v-256h85.333zM469.333 298.667h-85.333c-46.933 0-85.333 38.4-85.333 85.333v256c0 46.933 38.4 85.333 85.333 85.333h85.333c46.933 0 85.333-38.4 85.333-85.333v-256c0-46.933-38.4-85.333-85.333-85.333zM170.667 725.333h85.333v-256h-85.333zM170.667 384h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "apple-ios"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1314,
+            "id": 1248,
+            "prevSize": 24,
+            "code": 58920,
+            "name": "apple-ios"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 40
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 641.899c0 93.21-74.999 168.768-167.539 168.768h-518.256c-92.539 0-167.538-75.558-167.538-168.768 0-84.19 61.155-153.933 141.179-166.686-1.043-5.918-1.612-11.985-1.612-18.244 0-59.059 47.503-106.941 106.193-106.941 26.169 0 50.156 9.529 68.551 25.382 32.995-74.818 75.282-143.113 193.801-143.113 143.74 0 211.819 111.711 211.819 229.574 0 4.932-0.192 9.813-0.478 14.647 76.42 15.684 133.879 83.763 133.879 165.38z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "apple-mobileme"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1315,
+            "id": 1247,
+            "prevSize": 24,
+            "code": 58921,
+            "name": "apple-mobileme"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 41
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c235.639 0 426.667 191.025 426.667 426.667 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667zM512 170.667c-188.513 0-341.333 152.82-341.333 341.333 0 89.105 34.144 170.236 90.061 231.023l160.765-321.529 321.53-160.765c-60.787-55.918-141.918-90.061-231.023-90.061zM512 853.333c188.514 0 341.333-152.819 341.333-341.333 0-89.103-34.142-170.231-90.057-231.017l-160.764 321.53-321.532 160.764c60.786 55.915 141.915 90.057 231.019 90.057zM512 512.004l-32.683-32.687-65.367 130.735 130.736-65.365-32.687-32.683zM512 746.667h42.667v64h-42.667v-64zM677.555 677.909l30.17-30.17 45.257 45.252-30.174 30.17-45.252-45.252zM746.001 512.222v-42.667h64v42.667h-64zM512 277.333h-42.667v-64h42.667v64zM346.445 346.093l-30.17 30.17-45.255-45.255 30.17-30.17 45.255 45.255zM278 511.778v42.667h-64v-42.667h64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "apple-safari"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1316,
+            "id": 1246,
+            "prevSize": 24,
+            "code": 58922,
+            "name": "apple-safari"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 42
+    }, {
+        "icon": {
+            "paths": [
+                "M798.165 832.772c-35.465 52.023-72.149 103.727-130.069 104.811-57.003 1.084-75.277-33.869-140.322-33.869-65.114 0-85.483 32.785-139.303 34.953-55.916 2.099-98.434-56.188-134.191-107.977-73.050-105.89-128.805-299.405-53.821-430 37.132-64.856 103.668-105.891 175.77-106.975 54.912-1.014 106.787 37.137 140.327 37.137 33.591 0 96.555-45.804 162.748-39.086 27.708 1.148 105.472 11.2 155.413 84.505-3.947 2.602-92.821 54.47-91.738 162.527 1.088 129.079 112.759 171.985 114.057 172.57-1.011 3.034-17.852 61.252-58.871 121.404zM554.978 149.97c30.656-36.035 82.453-62.838 125.201-64.639 5.461 50.054-14.613 100.178-44.262 136.296-29.709 36.053-78.34 64.138-126.067 60.388-6.485-48.971 17.57-100.044 45.129-132.046z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "apple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1317,
+            "id": 1245,
+            "prevSize": 24,
+            "code": 58923,
+            "name": "apple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 43
+    }, {
+        "icon": {
+            "paths": [
+                "M617.553 390.066c25.481-61.877 72.798-207.469 80.077-232.948s25.481-29.118 36.399-29.118h87.356c14.558 0 22.75 10.92 19.11 29.119-91.908 323.944-153.783 418.578-153.783 440.415 0 54.601 58.236 156.514 112.832 156.514 32.759 0 25.481-47.317 61.879-47.317h69.154c10.923 0 21.841 10.918 21.841 29.116 0 18.202-20.245 160.154-158.562 160.154-138.313 0-189.952-167.202-189.952-167.202-18.197 36.399-124.663 167.202-255.695 167.202-232.948 0-276.625-247.505-276.625-393.101 0-145.591 69.156-374.899 265.706-374.899 196.552 0 280.264 262.066 280.264 262.066zM191.697 491.981c0 83.716-3.64 258.428 149.686 262.067 86.901 3.639 166.978-105.553 204.968-192.909-52.548-181.992-88.947-291.187-205.422-291.187-156.512 3.64-149.232 222.028-149.232 222.028z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "appnet"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1318,
+            "id": 1244,
+            "prevSize": 24,
+            "code": 58924,
+            "name": "appnet"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 44
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 853.252h170.667v-170.667h-170.667zM682.641 597.252h170.667v-170.668h-170.667zM426.64 341.251h170.668v-170.667h-170.668zM682.641 341.251h170.667v-170.667h-170.667zM426.64 597.252h170.668v-170.668h-170.668zM170.64 597.252h170.667v-170.668h-170.667zM170.64 853.252h170.667v-170.667h-170.667zM426.64 853.252h170.668v-170.667h-170.668zM170.64 341.251h170.667v-170.667h-170.667v170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "apps"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1319,
+            "id": 1243,
+            "prevSize": 24,
+            "code": 58925,
+            "name": "apps"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 45
+    }, {
+        "icon": {
+            "paths": [
+                "M128 128h768v170.667h-768v-170.667zM170.667 341.334h682.667v554.666h-682.667v-554.666zM405.333 469.333c-11.782 0-21.333 9.553-21.333 21.333v64h256v-64c0-11.78-9.553-21.333-21.333-21.333h-213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "archive"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1320,
+            "id": 1242,
+            "prevSize": 24,
+            "code": 58926,
+            "name": "archive"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 46
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 85.333h597.333v597.333h-597.333v-597.333zM938.667 341.333v597.333h-597.333v-170.667h85.333v85.333h426.667v-426.667h-85.333v-85.333h170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrange-bring-forward"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1321,
+            "id": 1241,
+            "prevSize": 24,
+            "code": 58927,
+            "name": "arrange-bring-forward"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 47
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 85.333l384 0v170.666h-85.333v-85.333l-213.333 0v213.333h85.333v85.333h-170.667v-384zM938.667 554.667v384h-384v-170.667h85.333v85.333h213.333v-213.333h-85.333v-85.333h170.667zM341.333 341.333h341.333v341.333h-341.333v-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrange-bring-to-front"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1322,
+            "id": 1240,
+            "prevSize": 24,
+            "code": 58928,
+            "name": "arrange-bring-to-front"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 48
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 85.333h597.333v597.333h-597.333v-597.333zM938.667 341.333v597.333h-597.333v-170.667h426.667v-426.667h170.667zM170.667 170.667v426.667h426.667v-426.667h-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrange-send-backward"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1323,
+            "id": 1239,
+            "prevSize": 24,
+            "code": 58929,
+            "name": "arrange-send-backward"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 49
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 85.333l384 0v384h-384v-384zM384 170.667h-213.333v213.333l213.333-0v-213.333zM938.667 554.667v384h-384v-384h384zM640 853.333h213.333v-213.333h-213.333v213.333zM682.667 341.333v128h-128v-128h128zM469.333 682.667h-128v-128h128v128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrange-send-to-back"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1324,
+            "id": 1238,
+            "prevSize": 24,
+            "code": 58930,
+            "name": "arrange-send-to-back"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 50
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 469.333h213.333l-64-64 60.561-60.563 167.228 167.229-167.228 167.228-60.561-60.561 64.444-64h-213.777v213.333l64-64 60.561 60.565-167.228 167.223-167.227-167.228 60.56-60.561 64 64v-213.333h-213.333l64 64-60.563 60.561-167.227-167.228 167.228-167.227 60.563 60.561-64 64h213.333v-213.333l-64 64-60.563-60.564 167.229-167.227 167.228 167.227-60.561 60.564-64-64v213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-all"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1325,
+            "id": 1237,
+            "prevSize": 24,
+            "code": 58931,
+            "name": "arrow-all"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 51
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 273.494l-60.16-60.16-451.84 451.839v-281.173h-85.333v426.667h426.667v-85.333h-281.173l451.84-451.839z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-bottom-left"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1326,
+            "id": 1236,
+            "prevSize": 24,
+            "code": 58932,
+            "name": "arrow-bottom-left"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 52
+    }, {
+        "icon": {
+            "paths": [
+                "M213.334 273.494l60.16-60.16 451.84 451.839v-281.173h85.333v426.667h-426.667v-85.333h281.173l-451.84-451.839z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-bottom-right"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1327,
+            "id": 1235,
+            "prevSize": 24,
+            "code": 58933,
+            "name": "arrow-bottom-right"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 53
+    }, {
+        "icon": {
+            "paths": [
+                "M831.684 131.974l60.339 60.34-191.684 191.686h152.994v85.333h-298.667v-298.667h85.333v152.994l191.684-191.686zM892.028 831.689l-60.343 60.339-191.684-191.689v152.994h-85.333v-298.667h298.667v85.333h-152.994l191.689 191.689zM192.314 131.974l191.686 191.686v-152.993h85.333v298.666h-298.667v-85.333h152.994l-191.686-191.686 60.34-60.34zM131.974 831.689l191.686-191.689h-152.994v-85.333h298.667v298.667h-85.333v-152.994l-191.686 191.689-60.34-60.339z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-collapse"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1328,
+            "id": 1234,
+            "prevSize": 24,
+            "code": 58934,
+            "name": "arrow-collapse"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 54
+    }, {
+        "icon": {
+            "paths": [
+                "M512 725.333l-213.332-213.333h127.998v-170.667h170.667v170.667h128l-213.333 213.333zM512 85.333c235.639 0 426.667 191.025 426.667 426.667 0 235.644-191.027 426.667-426.667 426.667-235.642 0-426.667-191.023-426.667-426.667 0-235.641 191.025-426.667 426.667-426.667zM512 170.667c-188.513 0-341.333 152.82-341.333 341.333 0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-down-bold-circle-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1329,
+            "id": 1233,
+            "prevSize": 24,
+            "code": 58935,
+            "name": "arrow-down-bold-circle-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 55
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c235.639 0 426.667 191.025 426.667 426.667 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.641 191.025-426.667 426.667-426.667zM512 725.333l213.333-213.333h-128v-170.667h-170.667v170.667h-127.998l213.332 213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-down-bold-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1330,
+            "id": 1232,
+            "prevSize": 24,
+            "code": 58936,
+            "name": "arrow-down-bold-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 56
+    }, {
+        "icon": {
+            "paths": [
+                "M512 725.333l-213.333-213.333h128v-170.667h170.667v170.667h128l-213.333 213.333zM896 704c0 16.265-9.101 30.4-22.485 37.602l-337.348 189.568c-6.869 4.727-15.194 7.497-24.166 7.497s-17.297-2.769-24.166-7.497l-337.341-189.564c-13.389-7.198-22.492-21.342-22.492-37.606v-384c0-16.266 9.103-30.406 22.492-37.605l337.341-189.563c6.869-4.73 15.194-7.499 24.166-7.499 8.969 0 17.293 2.769 24.166 7.498l337.348 189.567c13.385 7.2 22.485 21.338 22.485 37.601v384zM512.038 177.106l-298.705 167.86v334.070l298.705 167.859 298.628-167.859v-334.073l-298.628-167.856z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-down-bold-hexagon-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1331,
+            "id": 1231,
+            "prevSize": 24,
+            "code": 58937,
+            "name": "arrow-down-bold-hexagon-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 57
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 170.667h170.667v384.444l149.555-149.554 103.006 103.005-337.894 337.894-337.895-337.894 103.007-103.005 149.555 149.554v-384.444z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-down-bold"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1332,
+            "id": 1230,
+            "prevSize": 24,
+            "code": 58938,
+            "name": "arrow-down-bold"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 58
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 170.667h85.333v512.444l234.889-234.889 60.339 60.339-337.894 337.894-337.895-337.894 60.34-60.339 234.889 234.889v-512.444z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-down"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1333,
+            "id": 1229,
+            "prevSize": 24,
+            "code": 58939,
+            "name": "arrow-down"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 59
+    }, {
+        "icon": {
+            "paths": [
+                "M405.019 558.639l60.338 60.339-191.684 191.689h152.994v85.333h-298.667v-298.667h85.333v152.994l191.686-191.689zM465.361 405.020l-60.341 60.341-191.686-191.688v152.993h-85.333v-298.666l298.667-0v85.333h-152.994l191.688 191.687zM618.982 558.639l191.684 191.689v-152.994h85.333v298.667h-298.667v-85.333h152.994l-191.684-191.689 60.339-60.339zM558.639 405.020l191.689-191.686h-152.994v-85.333h298.667v298.667h-85.333v-152.994l-191.689 191.688-60.339-60.341z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-expand"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1334,
+            "id": 1228,
+            "prevSize": 24,
+            "code": 58940,
+            "name": "arrow-expand"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 60
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 512l213.333-213.331v127.998h170.667v170.667h-170.667v128l-213.333-213.333zM938.667 512c0 235.644-191.027 426.667-426.667 426.667-235.642 0-426.667-191.023-426.667-426.667 0-235.641 191.025-426.666 426.667-426.666 235.639 0 426.667 191.025 426.667 426.666zM853.333 512c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-left-bold-circle-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1335,
+            "id": 1227,
+            "prevSize": 24,
+            "code": 58941,
+            "name": "arrow-left-bold-circle-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 61
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 512c0 235.644-191.027 426.667-426.667 426.667-235.642 0-426.667-191.023-426.667-426.667 0-235.641 191.025-426.666 426.667-426.666 235.639 0 426.667 191.025 426.667 426.666zM298.667 512l213.333 213.333v-128h170.667v-170.667h-170.667v-127.998l-213.333 213.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-left-bold-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1336,
+            "id": 1226,
+            "prevSize": 24,
+            "code": 58942,
+            "name": "arrow-left-bold-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 62
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 512l213.333-213.332v127.998h170.667v170.667h-170.667v128l-213.333-213.333zM896 704c0 16.265-9.101 30.4-22.485 37.602l-337.348 189.568c-6.869 4.727-15.194 7.497-24.166 7.497s-17.297-2.769-24.166-7.497l-337.341-189.564c-13.389-7.198-22.492-21.342-22.492-37.606v-384c0-16.266 9.103-30.406 22.492-37.605l337.341-189.563c6.869-4.73 15.194-7.499 24.166-7.499 8.969 0 17.293 2.769 24.166 7.498l337.348 189.567c13.385 7.2 22.485 21.338 22.485 37.601v384zM512.038 177.106l-298.705 167.86v334.070l298.705 167.859 298.628-167.859v-334.073l-298.628-167.856z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-left-bold-hexagon-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1337,
+            "id": 1225,
+            "prevSize": 24,
+            "code": 58943,
+            "name": "arrow-left-bold-hexagon-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 63
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 426.667v170.667h-384.444l149.555 149.555-103.006 103.006-337.896-337.894 337.896-337.895 103.006 103.007-149.555 149.555h384.444z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-left-bold"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1338,
+            "id": 1224,
+            "prevSize": 24,
+            "code": 58944,
+            "name": "arrow-left-bold"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 64
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 469.333v85.333h-512.445l234.889 234.889-60.339 60.339-337.896-337.894 337.896-337.895 60.339 60.34-234.889 234.889h512.445z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-left"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1339,
+            "id": 1223,
+            "prevSize": 24,
+            "code": 58945,
+            "name": "arrow-left"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 65
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 512l-213.333 213.333v-128h-170.668v-170.668h170.668v-128l213.333 213.335zM85.333 512c0-235.641 191.025-426.666 426.667-426.666 235.639 0 426.667 191.025 426.667 426.666 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667zM170.667 512c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-right-bold-circle-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1340,
+            "id": 1222,
+            "prevSize": 24,
+            "code": 58946,
+            "name": "arrow-right-bold-circle-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 66
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 512c0-235.641 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667zM725.333 512l-213.333-213.335v128h-170.667v170.668h170.667v128l213.333-213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-right-bold-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1341,
+            "id": 1221,
+            "prevSize": 24,
+            "code": 58947,
+            "name": "arrow-right-bold-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 67
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 512l-213.333 213.333v-128h-170.667v-170.667h170.667v-128l213.333 213.333zM896 704c0 16.265-9.101 30.4-22.485 37.602l-337.348 189.568c-6.869 4.727-15.194 7.497-24.166 7.497s-17.297-2.769-24.166-7.497l-337.341-189.564c-13.389-7.198-22.492-21.342-22.492-37.606v-384c0-16.266 9.103-30.406 22.492-37.605l337.341-189.563c6.869-4.73 15.194-7.499 24.166-7.499 8.969 0 17.293 2.769 24.166 7.498l337.348 189.567c13.385 7.2 22.485 21.338 22.485 37.601v384zM512.038 177.106l-298.705 167.86v334.070l298.705 167.859 298.628-167.859v-334.073l-298.628-167.856z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-right-bold-hexagon-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1342,
+            "id": 1220,
+            "prevSize": 24,
+            "code": 58948,
+            "name": "arrow-right-bold-hexagon-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 68
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 426.667v170.667h384.444l-149.554 149.555 103.005 103.006 337.894-337.894-337.894-337.895-103.005 103.007 149.554 149.555h-384.444z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-right-bold"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1343,
+            "id": 1219,
+            "prevSize": 24,
+            "code": 58949,
+            "name": "arrow-right-bold"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 69
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 469.333v85.333h512.444l-234.889 234.889 60.339 60.339 337.894-337.894-337.894-337.895-60.339 60.34 234.889 234.889h-512.444z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-right"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1344,
+            "id": 1218,
+            "prevSize": 24,
+            "code": 58950,
+            "name": "arrow-right"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 70
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 750.507l-60.16 60.16-451.84-451.84v281.173h-85.333v-426.667h426.666v85.333h-281.173l451.84 451.84z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-top-left"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1345,
+            "id": 1217,
+            "prevSize": 24,
+            "code": 58951,
+            "name": "arrow-top-left"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 71
+    }, {
+        "icon": {
+            "paths": [
+                "M213.334 750.507l451.84-451.84h-281.173v-85.333h426.667v426.667h-85.333v-281.173l-451.84 451.84-60.16-60.16z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-top-right"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1346,
+            "id": 1216,
+            "prevSize": 24,
+            "code": 58952,
+            "name": "arrow-top-right"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 72
+    }, {
+        "icon": {
+            "paths": [
+                "M512 298.668l213.333 213.332h-128v170.667h-170.667v-170.667h-127.998l213.332-213.332zM512 938.667c-235.642 0-426.667-191.023-426.667-426.667 0-235.641 191.025-426.666 426.667-426.666 235.639 0 426.667 191.025 426.667 426.666 0 235.644-191.027 426.667-426.667 426.667zM512 853.333c188.514 0 341.333-152.819 341.333-341.333s-152.819-341.333-341.333-341.333c-188.514 0-341.333 152.82-341.333 341.333s152.82 341.333 341.333 341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-up-bold-circle-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1347,
+            "id": 1215,
+            "prevSize": 24,
+            "code": 58953,
+            "name": "arrow-up-bold-circle-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 73
+    }, {
+        "icon": {
+            "paths": [
+                "M512 938.667c-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667 235.639 0 426.667 191.025 426.667 426.667 0 235.639-191.027 426.667-426.667 426.667zM512 298.667l-213.332 213.333h127.998v170.667h170.667v-170.667h128l-213.333-213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-up-bold-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1348,
+            "id": 1214,
+            "prevSize": 24,
+            "code": 58954,
+            "name": "arrow-up-bold-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 74
+    }, {
+        "icon": {
+            "paths": [
+                "M512 298.667l213.333 213.333h-128v170.667h-170.667v-170.667h-128l213.333-213.333zM896 704c0 16.265-9.101 30.4-22.485 37.602l-337.348 189.568c-6.869 4.727-15.194 7.497-24.166 7.497s-17.297-2.769-24.166-7.497l-337.341-189.564c-13.389-7.198-22.492-21.342-22.492-37.606v-384c0-16.266 9.103-30.406 22.492-37.605l337.341-189.563c6.869-4.73 15.194-7.499 24.166-7.499 8.969 0 17.293 2.769 24.166 7.498l337.348 189.567c13.385 7.2 22.485 21.338 22.485 37.601v384zM512.038 177.106l-298.705 167.86v334.070l298.705 167.859 298.628-167.859v-334.073l-298.628-167.856z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-up-bold-hexagon-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1349,
+            "id": 1213,
+            "prevSize": 24,
+            "code": 58955,
+            "name": "arrow-up-bold-hexagon-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 75
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 853.333h-170.667l-0.001-384.444-149.555 149.555-103.006-103.006 337.895-337.896 337.894 337.896-103.006 103.006-149.555-149.111v384z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-up-bold"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1350,
+            "id": 1212,
+            "prevSize": 24,
+            "code": 58956,
+            "name": "arrow-up-bold"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 76
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 853.333h-85.333v-512.445l-234.889 234.889-60.34-60.339 337.895-337.896 337.894 337.896-60.339 60.339-234.889-234.889v512.445z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "arrow-up"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1351,
+            "id": 1211,
+            "prevSize": 24,
+            "code": 58957,
+            "name": "arrow-up"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 77
+    }, {
+        "icon": {
+            "paths": [
+                "M743.364 640c15.795-38.797 24.636-82.193 24.636-128 0-164.949-114.615-298.666-256-298.666s-256 133.717-256 298.666c0 164.949 114.615 298.667 256 298.667 65.566 0 128 0 170.667-33.382v99.345c-42.667 19.371-108.497 19.371-170.667 19.371-188.513 0-341.333-171.921-341.333-384 0-212.077 152.82-384 341.333-384s341.333 171.923 341.333 384c0 78.938-21.171 152.316-57.481 213.333h-198.519v-64.030c-27.106 39.514-64.883 64.030-106.667 64.030-82.475 0-149.333-95.514-149.333-213.333s66.859-213.333 149.333-213.333c41.783 0 79.561 24.517 106.667 64.031v-21.364h85.333v298.667h60.698zM512 384c-47.13 0-85.333 57.306-85.333 128s38.204 128 85.333 128c47.13 0 85.333-57.306 85.333-128s-38.204-128-85.333-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "at"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1352,
+            "id": 1210,
+            "prevSize": 24,
+            "code": 58958,
+            "name": "at"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 78
+    }, {
+        "icon": {
+            "paths": [
+                "M320 768c-129.707 0-234.667-104.96-234.667-234.667s104.96-234.667 234.667-234.667h448c94.293 0 170.667 76.373 170.667 170.667s-76.373 170.667-170.667 170.667h-362.667c-58.88 0-106.667-47.787-106.667-106.667s47.787-106.667 106.667-106.667h320v64h-320c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667h362.667c58.88 0 106.667-47.787 106.667-106.667s-47.787-106.667-106.667-106.667h-448c-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667h405.333v64h-405.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "attachment"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1353,
+            "id": 1209,
+            "prevSize": 24,
+            "code": 58959,
+            "name": "attachment"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 79
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 938.581h-512.001c-47.084 0-85.333-38.225-85.333-85.333v-682.665c0-47.104 38.25-85.333 85.333-85.333h42.667v298.667l106.667-64 106.668 64v-298.667h256c47.147 0 85.333 38.229 85.333 85.333v682.665c0 47.108-38.187 85.333-85.333 85.333zM554.667 640c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333v-213.333h128v-85.333h-170.667v224.751c-12.553-7.262-27.123-11.418-42.667-11.418z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "audiobook"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1354,
+            "id": 1208,
+            "prevSize": 24,
+            "code": 58960,
+            "name": "audiobook"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 80
+    }, {
+        "icon": {
+            "paths": [
+                "M319.973 238.855l-106.667 59.732 59.733-106.667-59.733-106.667 106.667 59.733 106.667-59.733-59.733 106.667 59.733 106.667-106.667-59.732zM831.974 656.981l106.667-59.733-59.733 106.667 59.733 106.667-106.667-59.733-106.667 59.733 59.733-106.667-59.733-106.667 106.667 59.733zM938.641 85.251l-59.733 106.667 59.733 106.667-106.667-59.732-106.667 59.732 59.733-106.667-59.733-106.667 106.667 59.732 106.667-59.732zM569.276 545.126l103.893-103.893-90.496-90.54-103.893 103.938 90.496 90.496zM613.137 311.098l99.669 99.67c16.683 16.641 16.683 43.649 0 60.332l-497.666 497.664c-16.683 16.64-43.691 16.64-60.331 0l-99.669-99.669c-16.683-16.683-16.683-43.691 0-60.331l497.666-497.666c16.683-16.682 43.691-16.682 60.331 0z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "auto-fix"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1355,
+            "id": 1207,
+            "prevSize": 24,
+            "code": 58961,
+            "name": "auto-fix"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 81
+    }, {
+        "icon": {
+            "paths": [
+                "M228.241 539.648l49.066-155.735 49.066 155.735zM234.641 298.58l-136.534 384.002h81.068l29.866-85.333h136.534l29.866 85.333h81.068l-136.534-384.002zM469.308 853.248h469.333v-85.333h-469.333zM597.308 682.581h213.333v-213.333h128l-234.667-234.668-234.667 234.668h128v213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "auto-upload"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1356,
+            "id": 1206,
+            "prevSize": 24,
+            "code": 58962,
+            "name": "auto-upload"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 82
+    }, {
+        "icon": {
+            "paths": [
+                "M789.333 170.667c58.91 0 106.667 47.756 106.667 106.667s-47.757 106.667-106.667 106.667c-58.91 0-106.667-47.756-106.667-106.667s47.757-106.667 106.667-106.667zM192 853.333c-35.346 0-64-28.655-64-64s28.654-64 64-64h298.667c35.345 0 64 28.655 64 64s-28.655 64-64 64h-298.667zM686.519 810.53l-59.87-170.53h-157.316l-181.333-181.333c0 0 96-106.667 245.333-106.666 128 0 142.869 42.733 152.060 68.913l121.899 347.215c11.712 33.348-5.833 69.879-39.185 81.587-33.348 11.708-69.879-5.837-81.587-39.185z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "baby"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1357,
+            "id": 1205,
+            "prevSize": 24,
+            "code": 58963,
+            "name": "baby"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 83
+    }, {
+        "icon": {
+            "paths": [
+                "M213.718 554.667l170.888 170.889-60.34 60.339-273.895-273.894 273.895-273.894 60.34 60.34-170.888 170.888h682.282v85.333h-682.282zM896 256v85.333l-426.667 0v-85.333l426.667-0zM896 682.667v85.333h-426.667v-85.333h426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "backburger"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1358,
+            "id": 1204,
+            "prevSize": 24,
+            "code": 58964,
+            "name": "backburger"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 84
+    }, {
+        "icon": {
+            "paths": [
+                "M512 128c-212.053 0-384 171.947-384 384h-128l170.667 170.667 170.667-170.667h-128c0-165.12 133.547-298.667 298.667-298.667s298.667 133.547 298.667 298.667c0 165.12-133.547 298.667-298.667 298.667-64.427 0-124.16-20.907-173.227-55.467l-60.587 61.44c64.853 49.493 145.92 79.36 233.813 79.36 212.053 0 384-171.947 384-384s-171.947-384-384-384zM597.333 512c0-46.933-38.4-85.333-85.333-85.333s-85.333 38.4-85.333 85.333c0 46.933 38.4 85.333 85.333 85.333s85.333-38.4 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "backup-restore"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1359,
+            "id": 1203,
+            "prevSize": 24,
+            "code": 58965,
+            "name": "backup-restore"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 85
+    }, {
+        "icon": {
+            "paths": [
+                "M490.667 42.667l-405.333 213.333v85.333h810.667v-85.333zM682.667 426.667v298.667h128v-298.667zM85.333 938.667h810.667v-128h-810.667zM426.667 426.667v298.667h128v-298.667zM170.667 426.667v298.667h128v-298.667h-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bank"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1360,
+            "id": 1202,
+            "prevSize": 24,
+            "code": 58966,
+            "name": "bank"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 86
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 256h85.333v512h-85.333v-512zM213.333 256h42.667v512h-42.667v-512zM298.667 256h128v512h-128v-512zM469.333 256h42.667v512h-42.667v-512zM597.333 256h85.333v512h-85.333v-512zM725.333 256h128v512h-128v-512zM896 256h42.667v512h-42.667v-512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "barcode"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1361,
+            "id": 1201,
+            "prevSize": 24,
+            "code": 58967,
+            "name": "barcode"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 87
+    }, {
+        "icon": {
+            "paths": [
+                "M312.889 782.221c-35.555-49.775-35.555-106.667-35.555-163.554 71.111 42.667 142.222 85.333 177.779 135.113l14.221 23.876v-97.152c-63.667-38.455-124.451-77.491-156.445-122.283-35.555-49.775-35.555-106.667-35.555-163.554 71.111 42.667 142.222 85.333 177.779 135.113l14.221 23.876v-97.152c-63.667-38.456-124.451-77.489-156.445-122.281-35.555-49.777-35.555-106.667-35.555-163.555 71.111 42.667 142.222 85.333 177.779 135.111 4.484 6.282 8.405 12.678 11.831 19.173-7.518-25.347-12.301-50.823-12.544-76.517-0.61-64.711 27.58-130.795 55.765-196.879 29.414 63.338 58.825 126.676 59.435 191.387 0.252 26.8-4.433 53.835-12.015 81.009 3.298-6.151 7.049-12.213 11.302-18.173 35.558-49.778 106.667-92.445 177.779-135.111 0 56.889 0 113.778-35.554 163.555-31.996 44.792-92.779 83.825-156.446 122.281v97.152l14.221-23.876c35.558-49.779 106.667-92.446 177.779-135.113 0 56.887 0 113.779-35.554 163.554-31.996 44.791-92.779 83.827-156.446 122.283v97.152l14.221-23.876c35.558-49.779 106.667-92.446 177.779-135.113 0 56.887 0 113.779-35.554 163.554-31.996 44.791-92.779 83.827-156.446 122.283v76.83h-85.333v-76.83c-63.667-38.455-124.451-77.491-156.445-122.283z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "barley"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1362,
+            "id": 1200,
+            "prevSize": 24,
+            "code": 58968,
+            "name": "barley"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 88
+    }, {
+        "icon": {
+            "paths": [
+                "M768 810.667h42.667v85.333h-597.333v-85.333h42.667v-256h-42.667v-85.333h42.667v-256h-42.667v-85.333h597.333v85.333h-42.667v256h42.667v85.333h-42.667v256zM384 554.667c0 70.694 57.306 128 128 128s128-57.306 128-128c0-85.333-128-229.333-128-229.333s-128 144-128 229.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "barrel"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1363,
+            "id": 1199,
+            "prevSize": 24,
+            "code": 58969,
+            "name": "barrel"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 89
+    }, {
+        "icon": {
+            "paths": [
+                "M144.547 667.298c0.721-4.019 1.565-8.013 2.494-11.985 1.765-7.458 3.908-14.831 6.403-22.101 9.551-27.955 24.005-53.879 39.503-78.916 7.702-12.412 15.584-24.713 23.427-37.030 8.005-12.587 16.172-25.097 25.362-36.851 14.92-19.081 33.253-39.65 57.031-47.334 33.415-10.786 58.407 23.996 77.736 45.47 11.002 12.186 22.848 25.015 37.996 31.974 6.98 3.204 14.587 4.855 22.271 4.378 11.191-0.713 21.12-8.405 29.466-15.313 22.861-18.927 41.451-42.854 59.187-66.423 19.443-25.797 38.221-52.135 60.51-75.642 9.105-9.629 18.876-22.401 31.966-26.662 5.879-1.94 12.425-1.343 18.112 1.274 3.132 1.436 5.978 3.45 8.444 5.844 2.752 2.709 6.071 4.849 9.199 7.197 23.902 18.071 46.003 38.48 66.867 59.941 18.116 18.668 35.379 38.203 51.883 58.367 16.030 19.695 31.488 39.757 44.86 61.508 16.124 26.487 29.786 54.349 44.864 81.459 13.751 24.742 27.695 53.342 13.943 81.242-0.759 1.472-1.519 2.944-2.372 4.352-24.375 41.207-68.288 66.876-111.731 83.678-52.258 20.211-108.501 29.841-164.177 33.732-57.57 4.041-115.806 3.853-173.304-1.536-51.938-4.873-104.236-14.127-153.101-32.994-40.832-15.774-80.212-39.087-107.528-74.078-6.374-8.171-12.017-16.896-16.835-26.086-0.57-1.092-1.139-2.21-1.708-3.332-0.786-1.63-1.091-2.295-0.768-4.13zM88.919 704.994c6.004 8.853 12.492 17.378 19.406 25.545 13.819 16.286 29.383 31.049 46.237 44.147 35.852 27.831 77.196 47.812 120.17 61.871 49.7 16.294 101.676 24.981 153.679 29.308 60.305 5.018 121.481 4.954 181.615-1.374 55.77-5.862 111.347-17.451 163.516-38.204 46.281-18.377 88.777-44.629 125.952-77.815 9.583-8.614 18.97-17.801 26.56-28.258 6.541-8.828 11.665-18.59 12.612-29.666 1.045-12.988-1.041-26.197-3.605-38.865-2.842-14.054-6.635-27.883-10.146-41.758-1.327-5.056-2.56-10.112-3.699-15.189-13.658-60.122-34.428-118.673-62.788-173.437-23.902-46.4-53.495-90.206-87.829-129.529-32.055-36.73-69.427-68.861-112.201-92.262-22.763-12.421-46.857-22.336-71.612-29.774-13.372-4.029-27.029-7.34-40.781-10.017-3.511-0.69-7.019-1.579-10.624-1.579-4.553 0-9.105 0-13.658 0-8.725 0-17.455 0-26.18 0-3.981 0-7.966-0.186-11.951 0.296-3.601 0.44-7.3 0.954-10.906 1.551-7.019 1.135-13.884 2.524-20.753 4.168-13.602 3.27-26.983 7.544-40.015 12.666-26.054 10.244-50.743 23.869-73.781 39.759-45.005 31.034-84.091 70.533-116.994 114.131-34.874 46.237-62.75 97.636-84.271 151.375-22.887 57.152-38.697 117.043-48.467 177.822-1.262 7.799-3.073 15.898-3.073 23.795 0 4.254 0 8.495 0 12.719 0 2.035-0.047 3.132 1.071 4.817 0.835 1.259 1.65 2.5 2.513 3.759z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "basecamp"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1364,
+            "id": 1198,
+            "prevSize": 24,
+            "code": 58970,
+            "name": "basecamp"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 90
+    }, {
+        "icon": {
+            "paths": [
+                "M128 85.333h128v128h-128v-128zM256 298.667h128v128h-128v-128zM341.333 85.334h128v128h-128v-128zM725.333 469.333l-213.333-213.333h128v-170.666h170.667v170.666h128l-213.333 213.333zM320 938.667c-33.309 0-62.161-19.085-76.217-46.916l-0.251 0.068-111.215-318.43-4.317-18.722c0-23.565 19.102-42.667 42.667-42.667h682.666c23.561 0 42.667 19.102 42.667 42.667l-1.788 12.262-113.997 324.821c-14.054 27.831-42.906 46.916-76.215 46.916h-384zM324.573 853.333h374.768l93.175-256h-561.12l93.176 256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "basket-fill"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1365,
+            "id": 1197,
+            "prevSize": 24,
+            "code": 58971,
+            "name": "basket-fill"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 91
+    }, {
+        "icon": {
+            "paths": [
+                "M128 426.667h128v-128h-128v128zM213.333 213.333h128v-128h-128v128zM341.334 426.667h128v-128h-128v128zM725.333 42.667l-213.333 213.333h128v170.666h170.667v-170.666h128l-213.333-213.333zM320 938.667c-33.309 0-62.161-19.085-76.217-46.916l-0.251 0.068-111.215-318.43-4.317-18.722c0-23.565 19.102-42.667 42.667-42.667h682.666c23.561 0 42.667 19.102 42.667 42.667l-1.788 12.262-113.997 324.821c-14.054 27.831-42.906 46.916-76.215 46.916h-384zM324.573 853.333h374.768l93.175-256h-561.12l93.176 256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "basket-unfill"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1366,
+            "id": 1196,
+            "prevSize": 24,
+            "code": 58972,
+            "name": "basket-unfill"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 92
+    }, {
+        "icon": {
+            "paths": [
+                "M234.667 896c-33.309 0-62.161-19.085-76.217-46.916l-0.251 0.068-111.215-403.763-4.317-18.722c0-23.564 19.102-42.666 42.667-42.666h195.327l196.387-280.473c7.718-11.001 20.493-18.194 34.953-18.194 14.677 0 27.627 7.413 35.302 18.7l196.036 279.967h195.328c23.565 0 42.667 19.102 42.667 42.666l-1.788 12.262-113.997 410.155c-14.054 27.831-42.906 46.916-76.215 46.916h-554.667zM512 202.388l-127.167 181.613h254.335l-127.168-181.613zM512 554.667c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "basket"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1367,
+            "id": 1195,
+            "prevSize": 24,
+            "code": 58973,
+            "name": "basket"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 93
+    }, {
+        "icon": {
+            "paths": [
+                "M682.637 767.923l-341.304 0.077-0.025-512.083h341.333zM711.1 170.583h-71.125v-85.333h-256v85.333h-71.126c-31.416 0-56.874 25.471-56.874 56.875v654.249c0 31.407 25.458 56.875 56.874 56.875h398.251c31.415 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.459-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-10"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1368,
+            "id": 1194,
+            "prevSize": 24,
+            "code": 58974,
+            "name": "battery-10"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 94
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 725.248h-341.333v-469.331h341.333zM711.1 170.583h-71.125v-85.333h-256v85.333h-71.126c-31.416 0-56.874 25.471-56.874 56.875v654.249c0 31.407 25.458 56.875 56.874 56.875h398.251c31.415 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.459-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-20"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1369,
+            "id": 1193,
+            "prevSize": 24,
+            "code": 58975,
+            "name": "battery-20"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 95
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 639.915h-341.333v-383.998h341.333zM711.1 170.583h-71.125v-85.333h-256v85.333h-71.126c-31.416 0-56.874 25.471-56.874 56.875v654.249c0 31.407 25.458 56.875 56.874 56.875h398.251c31.415 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.459-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-30"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1370,
+            "id": 1192,
+            "prevSize": 24,
+            "code": 58976,
+            "name": "battery-30"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 96
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 597.333h-341.334l-0.025-341.417h341.334zM711.1 170.583h-71.125v-85.333h-256v85.333h-71.126c-31.416 0-56.874 25.471-56.874 56.875v654.249c0 31.407 25.458 56.875 56.874 56.875h398.252c31.415 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.459-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-40"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1371,
+            "id": 1191,
+            "prevSize": 24,
+            "code": 58977,
+            "name": "battery-40"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 97
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 554.667h-341.334l-0.025-298.75h341.334zM711.1 170.583h-71.125v-85.333h-256v85.333h-71.126c-31.416 0-56.874 25.471-56.874 56.875v654.249c0 31.407 25.458 56.875 56.874 56.875h398.252c31.415 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.459-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-50"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1372,
+            "id": 1190,
+            "prevSize": 24,
+            "code": 58978,
+            "name": "battery-50"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 98
+    }, {
+        "icon": {
+            "paths": [
+                "M682.637 511.923h-341.331l0.003-256.006h341.333zM711.1 170.583h-71.125v-85.333h-256v85.333h-71.126c-31.416 0-56.874 25.471-56.874 56.875v654.249c0 31.407 25.458 56.875 56.874 56.875h398.251c31.415 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.459-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-60"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1373,
+            "id": 1189,
+            "prevSize": 24,
+            "code": 58979,
+            "name": "battery-60"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 99
+    }, {
+        "icon": {
+            "paths": [
+                "M682.637 426.589h-341.335l0.005-170.672h341.334zM711.1 170.583h-71.125v-85.333h-256v85.333h-71.126c-31.416 0-56.874 25.471-56.874 56.875v654.249c0 31.407 25.458 56.875 56.874 56.875h398.252c31.403 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.472-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-70"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1374,
+            "id": 1188,
+            "prevSize": 24,
+            "code": 58980,
+            "name": "battery-70"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 100
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 383.917h-341.334v-128h341.334zM711.1 170.583h-71.125v-85.333h-256v85.333h-71.126c-31.416 0-56.874 25.471-56.874 56.875v654.249c0 31.407 25.458 56.875 56.874 56.875h398.252c31.403 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.472-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-80"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1375,
+            "id": 1187,
+            "prevSize": 24,
+            "code": 58981,
+            "name": "battery-80"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 101
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 341.25h-341.334v-85.333h341.334zM711.1 170.583h-71.125v-85.333h-256v85.333h-71.125c-31.404 0-56.875 25.471-56.875 56.875v654.249c0 31.407 25.471 56.875 56.875 56.875h398.251c31.403 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.472-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-90"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1376,
+            "id": 1186,
+            "prevSize": 24,
+            "code": 58982,
+            "name": "battery-90"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 102
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 597.248h-85.333v-213.331h85.333zM554.641 767.915h-85.333v-85.333h85.333zM711.1 170.583h-71.125v-85.333h-256v85.333h-71.125c-31.404 0-56.875 25.471-56.875 56.875v654.249c0 31.407 25.471 56.875 56.875 56.875h398.251c31.403 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.472-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-alert"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1377,
+            "id": 1185,
+            "prevSize": 24,
+            "code": 58983,
+            "name": "battery-alert"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 103
+    }, {
+        "icon": {
+            "paths": [
+                "M983.479 469.248h-128v-298.665l-213.333 426.665h128v341.333zM514.146 725.248h-341.334v-469.331h341.334zM542.605 170.583h-71.125v-85.333h-256v85.333h-71.125c-31.404 0-56.875 25.471-56.875 56.875v654.249c0 31.407 25.472 56.875 56.875 56.875h398.251c31.403 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.472-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-charging-20"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1378,
+            "id": 1184,
+            "prevSize": 24,
+            "code": 58984,
+            "name": "battery-charging-20"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 104
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 639.915h-341.334v-383.998h341.334zM540.433 170.583h-71.125v-85.333h-256v85.333h-71.125c-31.404 0-56.875 25.471-56.875 56.875v654.249c0 31.407 25.471 56.875 56.875 56.875h398.251c31.403 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.472-56.875-56.875-56.875zM981.308 469.248h-128v-298.665l-213.333 426.665h128v341.333l213.333-469.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-charging-30"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1379,
+            "id": 1183,
+            "prevSize": 24,
+            "code": 58985,
+            "name": "battery-charging-30"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 105
+    }, {
+        "icon": {
+            "paths": [
+                "M981.308 469.248h-128v-298.665l-213.333 426.665h128v341.333zM511.974 554.581h-341.334v-298.665h341.334zM540.433 170.583h-71.125v-85.333h-256v85.333h-71.125c-31.404 0-56.875 25.471-56.875 56.875v654.249c0 31.407 25.471 56.875 56.875 56.875h398.251c31.403 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.472-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-charging-40"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1380,
+            "id": 1182,
+            "prevSize": 24,
+            "code": 58986,
+            "name": "battery-charging-40"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 106
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 469.248h-341.332v-213.331h341.332zM540.433 170.583h-71.125v-85.333h-255.999v85.333h-71.125c-31.404 0-56.875 25.471-56.875 56.875v654.249c0 31.407 25.472 56.875 56.875 56.875h398.249c31.403 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.472-56.875-56.875-56.875zM981.308 469.248h-128v-298.665l-213.333 426.665h128v341.333l213.333-469.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-charging-60"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1381,
+            "id": 1181,
+            "prevSize": 24,
+            "code": 58987,
+            "name": "battery-charging-60"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 107
+    }, {
+        "icon": {
+            "paths": [
+                "M981.308 469.248h-128v-298.665l-213.333 426.665h128v341.333zM511.974 383.917h-341.334v-128h341.334zM540.433 170.583h-71.125v-85.333h-256v85.333h-71.125c-31.404 0-56.875 25.471-56.875 56.875v654.249c0 31.407 25.471 56.875 56.875 56.875h398.251c31.403 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.472-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-charging-80"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1382,
+            "id": 1180,
+            "prevSize": 24,
+            "code": 58988,
+            "name": "battery-charging-80"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 108
+    }, {
+        "icon": {
+            "paths": [
+                "M981.308 469.248h-128v-298.665l-213.333 426.665h128v341.333zM511.974 341.25h-341.334v-85.333h341.334zM540.433 170.583h-71.125v-85.333h-256v85.333h-71.125c-31.404 0-56.875 25.471-56.875 56.875v654.249c0 31.407 25.471 56.875 56.875 56.875h398.251c31.403 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.472-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-charging-90"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1383,
+            "id": 1179,
+            "prevSize": 24,
+            "code": 58989,
+            "name": "battery-charging-90"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 109
+    }, {
+        "icon": {
+            "paths": [
+                "M981.308 469.248h-128v-298.665l-213.333 426.665h128v341.333zM540.433 170.583h-71.125v-85.333h-256v85.333h-71.125c-31.404 0-56.875 25.471-56.875 56.875v654.249c0 31.407 25.471 56.875 56.875 56.875h398.251c31.403 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.472-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-charging-100"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1384,
+            "id": 1178,
+            "prevSize": 24,
+            "code": 58990,
+            "name": "battery-charging-100"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 110
+    }, {
+        "icon": {
+            "paths": [
+                "M711.1 170.583c31.415 0 56.875 25.472 56.875 56.875v654.249c0 31.403-25.459 56.875-56.875 56.875h-398.251c-31.416 0-56.874-25.472-56.874-56.875v-654.249c0-31.403 25.458-56.875 56.874-56.875h71.126l0.026-85.25 255.974-0.083v85.333h71.125zM341.333 512.004v85.333h341.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-minus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1385,
+            "id": 1177,
+            "prevSize": 24,
+            "code": 58991,
+            "name": "battery-minus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 111
+    }, {
+        "icon": {
+            "paths": [
+                "M497.792 170.667c31.415 0 56.875 25.472 56.875 56.875v654.25c0 31.403-25.459 56.875-56.875 56.875h-398.251c-31.416 0-56.874-25.472-56.874-56.875v-654.25c0-31.403 25.458-56.875 56.874-56.875h71.126l0.026-85.25 255.974-0.084v85.333h71.125zM640.026 512.085h341.333v85.333h-341.333v-85.333zM128 554.667h341.333v-298.667h-341.333v298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-negative"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1386,
+            "id": 1176,
+            "prevSize": 24,
+            "code": 58992,
+            "name": "battery-negative"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 112
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 853.333h-341.334l-0.025-597.417h341.333zM711.1 170.583h-71.125v-85.333h-256v85.333h-71.126c-31.416 0-56.874 25.471-56.874 56.875v654.249c0 31.407 25.458 56.875 56.874 56.875h398.251c31.415 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.459-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1387,
+            "id": 1175,
+            "prevSize": 24,
+            "code": 58993,
+            "name": "battery-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 113
+    }, {
+        "icon": {
+            "paths": [
+                "M711.1 170.583c31.415 0 56.875 25.472 56.875 56.875v654.249c0 31.403-25.459 56.875-56.875 56.875h-398.251c-31.416 0-56.874-25.472-56.874-56.875v-654.249c0-31.403 25.458-56.875 56.874-56.875h71.126l0.026-85.25 255.974-0.083v85.333h71.125zM682.667 597.338v-85.333l-128-0.004v-127.997h-85.333v127.997l-128 0.004v85.333l128-0.004v128.004h85.333v-128.004l128 0.004z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1388,
+            "id": 1174,
+            "prevSize": 24,
+            "code": 58994,
+            "name": "battery-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 114
+    }, {
+        "icon": {
+            "paths": [
+                "M497.792 170.667c31.415 0 56.875 25.472 56.875 56.875v654.25c0 31.403-25.459 56.875-56.875 56.875h-398.251c-31.416 0-56.874-25.472-56.874-56.875v-654.25c0-31.403 25.458-56.875 56.874-56.875h71.126l0.026-85.25 255.974-0.084v85.333h71.125zM981.359 597.419l-128-0.004v128.004h-85.333v-128.004l-128 0.004v-85.333l128-0.004v-127.997h85.333v127.997l128 0.004v85.333zM128 554.667h341.333v-298.667h-341.333v298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-positive"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1389,
+            "id": 1173,
+            "prevSize": 24,
+            "code": 58995,
+            "name": "battery-positive"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 115
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 511.915h-341.333v-255.998h341.333zM711.1 170.583h-71.125v-85.333h-256v85.333h-71.125c-31.417 0-56.875 25.471-56.875 56.875v654.249c0 31.407 25.458 56.875 56.875 56.875h398.25c31.415 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.459-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-standard"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1390,
+            "id": 1172,
+            "prevSize": 24,
+            "code": 58996,
+            "name": "battery-standard"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 116
+    }, {
+        "icon": {
+            "paths": [
+                "M642.816 522.752l-38.187 39.168c-22.912 22.908-39.253 43.051-46.251 77.995h-86.912c4.864-38.49 21.717-73.263 47.829-99.328l53.035-53.675c15.403-15.445 24.96-36.779 24.96-60.332 0-47.104-38.187-85.333-85.333-85.333-47.104 0-85.335 38.229-85.335 85.333h-85.332c0-94.252 76.416-170.667 170.667-170.667 94.293 0 170.667 76.415 170.667 170.667 0 37.548-15.189 71.554-39.808 96.172zM554.624 810.581h-85.333v-85.333h85.333zM711.083 170.58h-71.125v-85.333h-256.002v85.333h-71.082c-31.445 0-56.917 25.471-56.917 56.916v654.206c0 31.403 25.472 56.879 56.917 56.879h398.209c31.403 0 56.875-25.476 56.875-56.879v-654.206c0-31.445-25.472-56.916-56.875-56.916z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery-unknown"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1391,
+            "id": 1171,
+            "prevSize": 24,
+            "code": 58997,
+            "name": "battery-unknown"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 117
+    }, {
+        "icon": {
+            "paths": [
+                "M711.1 170.583h-71.125v-85.333h-256v85.333h-71.126c-31.416 0-56.874 25.471-56.874 56.875v654.249c0 31.407 25.458 56.875 56.874 56.875h398.251c31.415 0 56.875-25.468 56.875-56.875v-654.249c0-31.404-25.459-56.875-56.875-56.875z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "battery"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1392,
+            "id": 1170,
+            "prevSize": 24,
+            "code": 58998,
+            "name": "battery"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 118
+    }, {
+        "icon": {
+            "paths": [
+                "M639.979 791.125c91.085-14.080 192.209-23.125 298.688-23.125v170.667h-725.333c0-27.644 136.34-91.119 341.312-132.382v-277.431c-36.011 10.722-66.325 34.658-85.325 66.185-26.129-43.366-73.677-72.371-127.999-72.371-54.313 0-101.855 28.996-127.988 72.354 1.489-152.687 150.282-278.102 341.312-294.531v-1.824c0-23.564 19.102-42.667 42.667-42.667 23.561 0 42.667 19.103 42.667 42.667v1.821c191.036 16.421 339.844 141.841 341.333 294.533-26.133-43.358-73.677-72.354-127.991-72.354-54.319 0-101.867 29.005-128 72.371-18.999-31.535-49.323-55.475-85.342-66.189v262.276zM298.667 85.333c0 117.821-95.513 213.333-213.333 213.333v-213.333h213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "beach"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1393,
+            "id": 1169,
+            "prevSize": 24,
+            "code": 58999,
+            "name": "beach"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 119
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 810.667c0 23.565 19.102 42.667 42.667 42.667h512c23.565 0 42.667-19.102 42.667-42.667 0-9.122-2.863-17.574-7.74-24.512l-248.26-430.001v-185.488l-85.333 0v185.488l-248.261 430c-4.876 6.938-7.739 15.39-7.739 24.512zM256 938.667c-70.693 0-128-57.306-128-128 0-25.732 7.593-49.69 20.66-69.756l235.34-407.621v-77.289c-23.564 0-42.667-19.103-42.667-42.667v-42.666c0-47.128 38.205-85.333 85.333-85.333l170.667-0c47.13 0 85.333 38.205 85.333 85.333v42.666c0 23.564-19.102 42.667-42.667 42.667v77.289l235.341 407.622c13.065 20.066 20.659 44.023 20.659 69.756 0 70.69-57.306 128-128 128h-512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "beaker-empty-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1394,
+            "id": 1168,
+            "prevSize": 24,
+            "code": 59000,
+            "name": "beaker-empty-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 120
+    }, {
+        "icon": {
+            "paths": [
+                "M256 938.667c-70.692 0-128-57.306-128-128 0-25.732 7.593-49.69 20.66-69.756l235.34-407.622v-77.289c-23.564 0-42.667-19.103-42.667-42.667v-42.666c0-47.128 38.205-85.333 85.333-85.333l170.667-0c47.13 0 85.333 38.205 85.333 85.333v42.666c0 23.564-19.102 42.667-42.667 42.667v77.289l235.341 407.622c13.065 20.066 20.659 44.023 20.659 69.756 0 70.69-57.306 128-128 128h-512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "beaker-empty"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1395,
+            "id": 1167,
+            "prevSize": 24,
+            "code": 59001,
+            "name": "beaker-empty"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 121
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 810.667c0 23.565 19.103 42.667 42.667 42.667h512c23.565 0 42.667-19.102 42.667-42.667 0-9.122-2.863-17.574-7.74-24.512l-248.26-430.001v-185.488l-85.333 0v185.488l-248.261 430c-4.876 6.938-7.739 15.39-7.739 24.512zM256 938.667c-70.692 0-128-57.306-128-128 0-25.732 7.593-49.69 20.66-69.756l235.34-407.621v-77.289c-23.564 0-42.667-19.103-42.667-42.667v-42.667c0-47.128 38.205-85.333 85.333-85.333l170.667-0c47.13 0 85.333 38.205 85.333 85.333v42.666c0 23.564-19.102 42.667-42.667 42.667v77.289l235.341 407.622c13.065 20.066 20.659 44.023 20.659 69.756 0 70.69-57.306 128-128 128h-512zM554.667 682.667l57.161-57.161 82.27 142.494h-364.196l113.504-196.595 111.262 111.262zM533.333 512c11.78 0 21.333 9.553 21.333 21.333s-9.553 21.333-21.333 21.333c-11.78 0-21.333-9.553-21.333-21.333s9.553-21.333 21.333-21.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "beaker-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1396,
+            "id": 1166,
+            "prevSize": 24,
+            "code": 59002,
+            "name": "beaker-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 122
+    }, {
+        "icon": {
+            "paths": [
+                "M256 938.667c-70.692 0-128-57.306-128-128 0-25.732 7.593-49.69 20.66-69.756l235.34-407.622v-77.289c-23.564 0-42.667-19.103-42.667-42.667v-42.666c0-47.128 38.205-85.333 85.333-85.333l170.667-0c47.13 0 85.333 38.205 85.333 85.333v42.666c0 23.564-19.102 42.667-42.667 42.667v77.289l235.341 407.622c13.065 20.066 20.659 44.023 20.659 69.756 0 70.69-57.306 128-128 128h-512zM213.333 810.667c0 23.565 19.102 42.667 42.667 42.667h512c23.565 0 42.667-19.102 42.667-42.667 0-9.122-2.863-17.574-7.74-24.512l-97.515-168.9-108.079 108.079-216.278-216.277-159.983 277.099c-4.876 6.938-7.739 15.39-7.739 24.512zM554.667 426.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "beaker"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1397,
+            "id": 1165,
+            "prevSize": 24,
+            "code": 59003,
+            "name": "beaker"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 123
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 512c0 117.82 95.512 213.333 213.333 213.333 117.82 0 213.333-95.514 213.333-213.333s-95.514-213.333-213.333-213.333c-48.026 0-92.345 15.87-128 42.651v-236.451c40.407-12.691 83.405-19.533 128-19.533 235.639 0 426.667 191.025 426.667 426.667 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-157.927 85.802-295.814 213.333-369.586v369.586zM618.667 512c0 15.578-8.346 29.201-20.809 36.651l-81.178 61.171c-7.202 5.547-16.222 8.845-26.014 8.845-23.565 0-42.667-19.102-42.667-42.667v-128c0-23.564 19.102-42.667 42.667-42.667 9.796 0 18.816 3.3 26.018 8.849l81.173 61.167c12.463 7.45 20.809 21.073 20.809 36.651z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "beats"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1398,
+            "id": 1164,
+            "prevSize": 24,
+            "code": 59004,
+            "name": "beats"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 124
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.333h640l-85.333 853.333h-469.333l-85.333-853.333zM264.533 170.667l68.267 682.667h42.667l-58.286-582.858c44.452-13.972 104.856-19.105 152.152 28.192 66.445 66.445 184.627 29.415 233.69 9.767l13.777-137.767h-452.267z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "beer"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1399,
+            "id": 1163,
+            "prevSize": 24,
+            "code": 59005,
+            "name": "beer"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 125
+    }, {
+        "icon": {
+            "paths": [
+                "M835.49 523.665c-1.873-26.428-10.705-46.447-26.577-60.109-15.778-13.722-35.469-20.608-58.953-20.608-25.574 0-45.299 7.369-59.341 21.82-14.11 14.43-22.908 34.061-26.5 58.897zM935.39 513.762c2.59 17.374 3.738 42.577 3.277 75.52h-276.937c1.536 38.242 14.724 64.964 39.761 80.26 15.078 9.596 33.374 14.281 54.822 14.281 22.575 0 41.007-5.717 55.194-17.459 7.723-6.217 14.537-15.010 20.425-26.082h101.513c-2.667 22.566-14.891 45.478-36.838 68.745-34.039 36.975-81.766 55.531-143.053 55.531-50.633 0-95.266-15.646-133.995-46.814-38.618-31.275-58.005-82.005-58.005-152.375 0-65.988 17.408-116.484 52.339-151.644 35.059-35.228 80.303-52.751 136.068-52.751 33.058 0 62.861 5.897 89.438 17.789 26.517 11.892 48.41 30.609 65.673 56.328 15.595 22.643 25.651 48.832 30.319 78.673zM408.664 600.141c0-27.597-11.279-46.656-33.781-56.887-12.575-5.811-30.336-8.781-53.098-8.998h-113.975v141.508h112.216c23.040 0 40.893-3.004 53.765-9.31 23.224-11.58 34.874-33.609 34.874-66.313zM207.81 446.345h112.364c23.077 0 41.764-4.403 56.136-13.163 14.353-8.762 21.521-24.332 21.521-46.693 0-24.701-9.483-41.097-28.523-48.986-16.353-5.481-37.281-8.307-62.673-8.307h-98.826zM499.861 529.95c13.798 21.355 20.685 47.317 20.685 77.769 0 31.509-7.778 59.767-23.595 84.732-10.057 16.529-22.558 30.49-37.559 41.715-16.909 12.992-36.93 21.897-59.932 26.667-23.077 4.766-48.060 7.168-74.971 7.168h-239.156v-531.021h256.454c64.655 1.063 110.475 19.78 137.534 56.563 16.243 22.559 24.282 49.632 24.282 81.085 0 32.468-8.149 58.44-24.542 78.182-9.114 11.059-22.596 21.129-40.431 30.212 27.021 9.899 47.522 25.472 61.231 46.929zM856.064 312.137h-213.854v-53.121h213.854v53.121z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "behance"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1400,
+            "id": 1162,
+            "prevSize": 24,
+            "code": 59006,
+            "name": "behance"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 126
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 853.333c0 47.13-38.204 85.333-85.333 85.333s-85.333-38.204-85.333-85.333h170.667zM842.15 920.162l-109.495-109.495h-604.655l128-128v-256c0-27.911 4.467-54.779 12.725-79.929l-120.483-120.482 60.34-60.34 693.908 693.907-60.339 60.339zM469.333 174.207v-46.206c0-23.564 19.102-42.666 42.667-42.666s42.667 19.102 42.667 42.666v46.206c121.075 20.312 213.333 125.612 213.333 252.46v177.988l-393.783-393.784c28.378-18.156 60.573-30.868 95.116-36.664z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bell-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1401,
+            "id": 1161,
+            "prevSize": 24,
+            "code": 59007,
+            "name": "bell-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 127
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 725.252h-384v-277.333c0-106.025 85.974-191.998 192-191.998s192 85.973 192 191.998zM767.974 682.586v-234.667c0-131.113-91.093-240.681-213.333-269.609v-29.056c0-35.328-28.672-64-64-64s-64 28.672-64 64v29.056c-122.24 28.928-213.333 138.496-213.333 269.609v234.667l-85.333 85.333v42.667h725.334v-42.667zM490.641 938.586c47.147 0 85.333-38.246 85.333-85.333h-170.667c0 47.087 38.23 85.333 85.334 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bell-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1402,
+            "id": 1160,
+            "prevSize": 24,
+            "code": 59008,
+            "name": "bell-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 128
+    }, {
+        "icon": {
+            "paths": [
+                "M682.654 725.252v-277.333c0-106.028-85.973-192.001-192-192.001s-192.001 85.973-192.001 192.001v277.333h384.001zM767.987 682.586l85.333 85.333v42.667h-725.335v-42.667l85.333-85.333v-234.667c0-131.116 91.094-240.684 213.333-269.612v-29.056c0-35.328 28.673-64 64.001-64s64 28.672 64 64v29.056c122.24 28.928 213.333 138.496 213.333 269.612v234.667zM490.654 938.586c-47.104 0-85.335-38.251-85.335-85.333h170.668c0 47.083-38.187 85.333-85.333 85.333zM852.241 426.584c-6.613-113.067-64.768-212.125-151.595-274.005l60.885-60.885c102.144 77.781 169.557 198.187 176.043 334.891h-85.333zM280.633 152.579c-86.826 61.88-144.981 160.938-151.595 274.005h-85.333c6.485-136.704 73.899-257.109 176.043-334.89l60.885 60.885z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bell-ring-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1403,
+            "id": 1159,
+            "prevSize": 24,
+            "code": 59009,
+            "name": "bell-ring-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 129
+    }, {
+        "icon": {
+            "paths": [
+                "M490.641 938.586c5.888 0 11.648-0.585 17.195-1.707 27.776-5.713 50.645-24.875 61.44-50.419 4.309-10.21 6.699-21.431 6.699-33.207h-170.667c0 47.083 38.23 85.333 85.334 85.333zM767.974 447.919c0-131.116-91.093-240.684-213.333-269.612v-29.056c0-35.328-28.672-64-64-64s-64 28.672-64 64v29.056c-122.24 28.928-213.333 138.496-213.333 269.612v234.667l-85.333 85.333v42.667h725.334v-42.667l-85.333-85.333zM852.241 426.584h85.333c-6.485-136.704-73.899-257.109-176.043-334.891l-60.885 60.885c86.827 61.88 144.981 160.939 151.595 274.005zM280.635 152.579l-60.885-60.885c-102.144 77.781-169.557 198.187-176.043 334.891h85.333c6.613-113.067 64.768-212.125 151.595-274.005z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bell-ring"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1404,
+            "id": 1158,
+            "prevSize": 24,
+            "code": 59010,
+            "name": "bell-ring"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 130
+    }, {
+        "icon": {
+            "paths": [
+                "M597.308 418.055l-119.467 145.068h119.467v76.8h-213.334v-76.8l119.467-145.068h-119.467v-76.8h213.334zM767.974 682.59v-234.667c0-131.116-91.093-240.684-213.333-269.612v-29.056c0-35.328-28.672-64-64-64s-64 28.672-64 64v29.056c-122.24 28.928-213.333 138.496-213.333 269.612v234.667l-85.333 85.333v42.667h725.334v-42.667zM490.641 938.59c47.147 0 85.333-38.229 85.333-85.333h-170.667c0 47.104 38.23 85.333 85.334 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bell-sleep"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1405,
+            "id": 1157,
+            "prevSize": 24,
+            "code": 59011,
+            "name": "bell-sleep"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 131
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 853.333c0 47.13-38.204 85.333-85.333 85.333s-85.333-38.204-85.333-85.333h170.667zM512 85.334c23.565 0 42.667 19.102 42.667 42.666v46.207c121.075 20.312 213.333 125.612 213.333 252.46v256l128 128h-768l128-128 0-256.001c0-126.848 92.258-232.148 213.333-252.46v-46.205c0-23.564 19.102-42.666 42.667-42.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bell"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1406,
+            "id": 1156,
+            "prevSize": 24,
+            "code": 59012,
+            "name": "bell"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 132
+    }, {
+        "icon": {
+            "paths": [
+                "M393.671 750.647v235.806h-100.124v-699.875c0-61.535 18.252-110.459 54.755-146.773s85.524-54.471 147.058-54.471c58.786 0 105.079 14.365 138.88 43.093s50.701 68.551 50.701 119.467c0 35.082-11.093 67.817-33.28 98.205s-51.008 51.271-86.468 62.649v1.849c53.76 8.249 94.741 27.685 122.948 58.311s42.313 69.687 42.313 117.193c0 56.602-19.533 102.588-58.594 137.954-39.066 35.366-90.453 53.047-154.172 53.047-45.321 0-86.66-8.815-124.017-26.453zM457.387 458.526v-81.921c37.073-4.457 67.58-18.275 91.52-41.458s35.913-49.28 35.913-78.293c0-59.733-29.965-89.6-89.886-89.6-32.614 0-57.647 10.383-75.093 31.147s-26.169 50.015-26.169 87.751v374.755c38.875 22.852 76.802 34.274 113.777 34.274 35.746 0 63.646-9.361 83.699-28.087s30.080-44.919 30.080-78.579c0-76.608-54.613-119.94-163.84-129.988z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "beta"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1407,
+            "id": 1155,
+            "prevSize": 24,
+            "code": 59013,
+            "name": "beta"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 133
+    }, {
+        "icon": {
+            "paths": [
+                "M213.321 874.586c-82.475 0-149.333-66.859-149.333-149.333s66.859-149.333 149.333-149.333c82.475 0 149.333 66.859 149.333 149.333s-66.859 149.333-149.333 149.333zM213.321 511.919c-117.845 0-213.333 95.488-213.333 213.333 0 117.803 95.488 213.333 213.333 213.333 117.803 0 213.333-95.531 213.333-213.333 0-117.845-95.531-213.333-213.333-213.333zM631.454 426.584h179.2v-76.8h-136.619l-82.517-139.349c-12.629-21.333-35.883-35.584-62.464-35.584-20.011 0-38.144 8.106-51.285 21.248l-157.739 157.738c-13.184 13.141-21.376 31.317-21.376 51.413 0 26.839 14.251 49.537 36.267 62.79l142.933 86.545v213.333h76.8v-276.395l-96-71.34 98.987-99.413zM810.654 874.586c-82.475 0-149.333-66.859-149.333-149.333s66.859-149.333 149.333-149.333c82.475 0 149.333 66.859 149.333 149.333s-66.859 149.333-149.333 149.333zM810.654 511.919c-117.845 0-213.333 95.488-213.333 213.333 0 117.803 95.488 213.333 213.333 213.333 117.803 0 213.333-95.531 213.333-213.333 0-117.845-95.531-213.333-213.333-213.333zM682.654 204.718c42.325 0 76.8-34.432 76.8-76.8s-34.475-76.8-76.8-76.8c-42.453 0-76.8 34.432-76.8 76.8s34.347 76.8 76.8 76.8z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bike"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1408,
+            "id": 1154,
+            "prevSize": 24,
+            "code": 59014,
+            "name": "bike"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 134
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 770.846l413.154-224-114.487-54.758-69.687-159.287 368.354 119.467v179.2l-428.089 258.846-169.245-119.467v-637.157l170.667 58.311v426.667l-170.667 152.179z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bing"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1409,
+            "id": 1153,
+            "prevSize": 24,
+            "code": 59015,
+            "name": "bing"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 135
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 256h85.333v298.667h-85.333v-298.667zM384 853.333c0 23.565-19.103 42.667-42.667 42.667h-128c-23.564 0-42.667-19.102-42.667-42.667v-213.333l85.333-384h170.667v298.666c0 23.565-19.103 42.667-42.667 42.667v256zM426.667 213.334h-128v-85.333h128v85.333zM640 853.333v-256c-23.565 0-42.667-19.102-42.667-42.667v-298.667h170.667l85.333 384v213.333c0 23.565-19.102 42.667-42.667 42.667h-128c-23.565 0-42.667-19.102-42.667-42.667zM597.333 213.333v-85.333h128v85.333h-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "binoculars"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1410,
+            "id": 1152,
+            "prevSize": 24,
+            "code": 59016,
+            "name": "binoculars"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 136
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 512h128c47.13 0 85.333 38.204 85.333 85.333v128c0 47.13-38.204 85.333-85.333 85.333h-128c-47.13 0-85.333-38.204-85.333-85.333v-128c0-47.13 38.204-85.333 85.333-85.333zM725.333 597.333v128h128v-128h-128zM85.333 298.667h213.333c47.128 0 85.333 38.205 85.333 85.333v85.333c0 47.13-38.205 85.333-85.333 85.333 47.128 0 85.333 38.204 85.333 85.333v85.333c0 47.13-38.205 85.333-85.333 85.333h-213.333v-512zM170.667 384v128h128v-128h-128zM170.667 725.333h128v-128h-128v128zM469.333 554.667h85.333v256h-85.333v-256zM469.333 384h85.333v85.333h-85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bio"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1411,
+            "id": 1151,
+            "prevSize": 24,
+            "code": 59017,
+            "name": "bio"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 137
+    }, {
+        "icon": {
+            "paths": [
+                "M511.936 245.86c130.731 0.207 236.749-22.16 236.796-49.982 0.043-27.828-105.899-50.54-236.629-50.746-130.734-0.212-236.755 22.16-236.799 49.982s105.901 50.534 236.633 50.746zM512 614.204c64.892 0 117.495-52.612 117.495-117.495 0-64.896-52.604-117.496-117.495-117.496s-117.495 52.6-117.495 117.496c0 64.883 52.603 117.495 117.495 117.495zM512.004 85.334c203.473 0 369.617 54.703 369.617 122.624 0 17.891-44.373 274.411-61.978 376.141-7.889 45.623-125.79 112.516-307.55 112.516v-0.542l-0.188 0.542c-181.761 0-299.661-66.893-307.553-112.516-17.602-101.73-61.972-358.25-61.972-376.141 0-67.921 166.145-122.624 369.624-122.624zM777.655 686.054c6.716 0 13.077 4.514 13.077 14.46l-0.294 3.127c-14.127 75.61-24.448 129.259-26.261 137.429-12.335 55.62-121.135 97.591-252.169 97.596h-0.017c-131.032-0.004-239.836-41.975-252.169-97.596-1.812-8.171-12.135-61.82-26.261-137.429l-0.295-3.127c0-9.946 6.364-14.46 13.076-14.46 5.618 0 10.123 3.981 10.123 3.981s91.021 72.073 255.534 72.081c164.514-0.009 255.535-72.081 255.535-72.081s4.501-3.981 10.121-3.981zM570.769 496.67c0 32.525-26.364 58.884-58.884 58.884s-58.884-26.359-58.884-58.884c0-32.525 26.364-58.88 58.884-58.88s58.884 26.355 58.884 58.88z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bitbucket"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1412,
+            "id": 1150,
+            "prevSize": 24,
+            "code": 59018,
+            "name": "bitbucket"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 138
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c235.639 0 426.667 191.025 426.667 426.667 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.641 191.025-426.667 426.667-426.667zM512 170.667c-188.513 0-341.333 152.82-341.333 341.333 0 101.948 44.694 193.455 115.556 256h97.777v-256h341.333l91.84 153.067c23.134-46.037 36.16-98.031 36.16-153.067 0-188.513-152.819-341.333-341.333-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "black-mesa"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1413,
+            "id": 1149,
+            "prevSize": 24,
+            "code": 59019,
+            "name": "black-mesa"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 139
+    }, {
+        "icon": {
+            "paths": [
+                "M232.46 438.438c40.628 0 88.276 32.934 88.276 73.562s-47.648 73.562-88.276 73.562h-147.127l29.425-147.123h117.701zM261.885 203.035c40.628 0 88.276 32.935 88.276 73.563s-47.648 73.563-88.276 73.563l-147.126 0 29.425-147.127 117.701 0zM556.139 203.035c40.627 0 88.273 32.935 88.273 73.563s-47.646 73.563-88.273 73.563l-154.483 0 29.423-147.127 125.060 0zM526.711 438.438c40.627 0 88.277 32.934 88.277 73.562s-47.65 73.562-88.277 73.562h-154.481l29.425-147.123h125.056zM467.861 673.839c40.627 0 88.277 32.934 88.277 73.562 0 40.631-47.65 73.566-88.277 73.566h-147.125l29.425-147.127h117.7zM791.539 585.562c40.627 0 88.277 32.939 88.277 73.566s-47.65 73.562-88.277 73.562h-147.123l29.423-147.127h117.7zM850.389 350.161c40.627 0 88.277 32.935 88.277 73.563 0 40.626-47.65 73.565-88.277 73.565h-147.123l29.423-147.128 117.7 0z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "blackberry"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1414,
+            "id": 1148,
+            "prevSize": 24,
+            "code": 59020,
+            "name": "blackberry"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 140
+    }, {
+        "icon": {
+            "paths": [
+                "M128 85.333h768c23.565 0 42.667 19.103 42.667 42.667v85.333c0 23.564-19.102 42.667-42.667 42.667h-42.667v298.667c0 23.565-19.102 42.667-42.667 42.667h-256v92.617c49.715 17.57 85.333 64.986 85.333 120.717 0 70.694-57.306 128-128 128s-128-57.306-128-128c0-55.731 35.619-103.147 85.333-120.717v-92.617h-256c-23.564 0-42.667-19.102-42.667-42.667v-298.667h-42.667c-23.564 0-42.667-19.102-42.667-42.667v-85.333c0-23.564 19.103-42.667 42.667-42.667zM512 768c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "blinds"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1415,
+            "id": 1147,
+            "prevSize": 24,
+            "code": 59021,
+            "name": "blinds"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 141
+    }, {
+        "icon": {
+            "paths": [
+                "M512 0c282.769 0 512 229.231 512 512s-229.231 512-512 512c-282.77 0-512-229.231-512-512s229.23-512 512-512zM512 85.334c-235.642 0-426.667 191.025-426.667 426.666 0 102.455 36.111 196.476 96.301 270.025l600.39-600.39c-73.549-60.189-167.569-96.301-270.025-96.301zM512 938.667c235.639 0 426.667-191.027 426.667-426.667 0-102.454-36.113-196.474-96.303-270.026l-600.39 600.39c73.552 60.19 167.572 96.303 270.026 96.303z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "block-helper"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1416,
+            "id": 1146,
+            "prevSize": 24,
+            "code": 59022,
+            "name": "block-helper"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 142
+    }, {
+        "icon": {
+            "paths": [
+                "M597.308 554.586h-172.798c-23.596 0-42.667 19.072-42.667 42.667s19.070 42.667 42.667 42.667h172.798c23.595 0 42.667-19.072 42.667-42.667s-19.072-42.667-42.667-42.667zM424.509 426.584h110.932c23.552 0 42.667-19.072 42.667-42.667s-19.115-42.667-42.667-42.667h-110.932c-23.596 0-42.667 19.072-42.667 42.667s19.070 42.667 42.667 42.667zM682.641 383.918v42.667c0 23.596 19.076 42.668 42.667 42.668 23.595 0 42.667 19.072 42.667 42.667v128c0 70.656-57.301 128-128 128h-255.999c-70.699 0-128-57.344-128-128v-298.668c0-70.656 57.301-128 128-128h170.665c70.699 0 128 57.344 128 128zM853.308 85.251h-682.665c-47.147 0-84.906 38.186-84.906 85.333l-0.427 682.668c0 47.083 38.186 85.333 85.333 85.333h682.665c47.104 0 85.333-38.251 85.333-85.333v-682.668c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "blogger"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1417,
+            "id": 1145,
+            "prevSize": 24,
+            "code": 59023,
+            "name": "blogger"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 143
+    }, {
+        "icon": {
+            "paths": [
+                "M549.474 695.087l-80.171 80.171v-160.341zM469.303 248.579l80.171 80.171-80.171 80.171zM670.135 328.75l-243.498-243.499h-42.667v323.669l-195.669-195.669-60.331 60.331 238.336 238.337-238.336 238.336 60.331 60.331 195.669-195.669v323.669h42.667l243.498-243.499-183.168-183.168zM833.207 286.339l-53.931 53.931c26.709 51.456 42.027 109.697 42.027 171.649s-15.317 120.192-42.027 171.648l51.157 51.14c41.301-65.69 65.536-143.13 65.536-226.458 0-81.408-23.211-157.185-62.763-221.911zM607.629 512.388l98.987 98.944c11.904-30.891 18.688-64.341 18.688-99.413 0-34.816-6.699-68.011-18.432-98.732l-99.243 99.202z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bluetooth-audio"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1418,
+            "id": 1144,
+            "prevSize": 24,
+            "code": 59024,
+            "name": "bluetooth-audio"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 144
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 426.584l-85.333 85.335 85.333 85.333 85.333-85.333zM634.812 695.087l-80.171 80.171v-160.341zM554.641 248.579l80.171 80.171-80.171 80.171zM755.473 328.75l-243.499-243.499h-42.667v323.669l-195.669-195.669-60.331 60.331 238.336 238.337-238.336 238.336 60.331 60.331 195.669-195.669v323.669h42.667l243.499-243.499-183.168-183.168zM298.641 511.919l-85.333-85.335-85.333 85.335 85.333 85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bluetooth-connect"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1419,
+            "id": 1143,
+            "prevSize": 24,
+            "code": 59025,
+            "name": "bluetooth-connect"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 145
+    }, {
+        "icon": {
+            "paths": [
+                "M634.88 609.707l-80.213 80.213v-160.427l80.213 80.213zM554.667 163.413l80.213 80.213-80.213 80.213zM755.627 243.627l-243.627-243.627h-42.667v323.84l-195.84-195.84-60.16 60.16 238.507 238.507-238.507 238.507 60.16 60.16 195.84-195.84v323.84h42.667l243.627-243.627-183.467-183.040 183.467-183.040zM640 1024h85.333v-85.333h-85.333zM298.667 1024h85.333v-85.333h-85.333zM469.333 1024h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bluetooth-settings"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1420,
+            "id": 1142,
+            "prevSize": 24,
+            "code": 59026,
+            "name": "bluetooth-settings"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 146
+    }, {
+        "icon": {
+            "paths": [
+                "M627.486 328.832l-183.168 183.168 183.168 183.168-243.501 243.499h-42.667v-323.669l-195.669 195.669-60.331-60.331 238.336-238.336-238.336-238.336 60.331-60.331 195.669 195.669v-323.669h42.667l243.501 243.499zM426.652 248.661v160.341l80.169-80.171-80.169-80.171zM506.82 695.168l-80.169-80.171v160.341l80.169-80.171zM938.679 341.414h-85.333v128h-85.333v-128h-85.333l128-170.667 128 170.667zM938.679 682.748l-128 170.667-128-170.667h85.333v-128h85.333v128h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bluetooth-transfer"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1421,
+            "id": 1141,
+            "prevSize": 24,
+            "code": 59027,
+            "name": "bluetooth-transfer"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 147
+    }, {
+        "icon": {
+            "paths": [
+                "M634.807 695.087l-80.171 80.171v-160.341zM554.637 248.579l80.171 80.171-80.171 80.171zM755.469 328.75l-243.499-243.499h-42.667v323.669l-195.669-195.669-60.331 60.331 238.336 238.337-238.336 238.336 60.331 60.331 195.669-195.669v323.669h42.667l243.499-243.499-183.168-183.168 183.168-183.169z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bluetooth"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1422,
+            "id": 1140,
+            "prevSize": 24,
+            "code": 59028,
+            "name": "bluetooth"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 148
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 725.333c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM554.667 554.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM554.667 384c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM725.333 533.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333zM725.333 362.667c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333zM128 128v85.333h768v-85.333zM725.333 704c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333zM384 725.333c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM213.333 576c35.413 0 64-28.587 64-64s-28.587-64-64-64c-35.413 0-64 28.587-64 64s28.587 64 64 64zM213.333 405.333c35.413 0 64-28.587 64-64s-28.587-64-64-64c-35.413 0-64 28.587-64 64s28.587 64 64 64zM128 896h768v-85.333h-768zM384 384c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM384 554.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM213.333 746.667c35.413 0 64-28.587 64-64s-28.587-64-64-64c-35.413 0-64 28.587-64 64s28.587 64 64 64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "blur-linear"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1423,
+            "id": 1139,
+            "prevSize": 24,
+            "code": 59029,
+            "name": "blur-linear"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 149
+    }, {
+        "icon": {
+            "paths": [
+                "M128 576c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM256 725.333c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM426.667 874.667c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM128 405.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM256 554.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM896 576c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM426.667 725.333c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM106.667 224.853l161.28 161.28-11.947-2.133c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667 0-4.267-1.28-8.107-2.56-11.947l119.893 119.893c-30.293 4.693-53.333 31.147-53.333 62.72 0 35.413 28.587 64 64 64 31.573 0 58.027-23.040 62.72-53.333l119.893 119.893c-3.84-1.28-7.68-2.56-11.947-2.56-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667 0-4.267-1.28-8.107-2.56-11.947l161.28 161.28 54.613-54.187-692.48-692.48-54.187 54.187zM597.333 874.667c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM768 298.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM768 469.333c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM768 640c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM426.667 298.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM896 448c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333zM426.667 149.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333zM597.333 149.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333zM588.8 489.813l8.533 0.853c35.413 0 64-28.587 64-64s-28.587-64-64-64c-35.413 0-64 28.587-64 64l0.853 8.533c3.84 28.587 26.027 50.773 54.613 54.613zM597.333 298.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "blur-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1424,
+            "id": 1138,
+            "prevSize": 24,
+            "code": 59030,
+            "name": "blur-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 150
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 554.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM597.333 704c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM512 853.333c-188.587 0-341.333-152.747-341.333-341.333s152.747-341.333 341.333-341.333c188.587 0 341.333 152.747 341.333 341.333s-152.747 341.333-341.333 341.333zM512 85.333c-235.52 0-426.667 191.147-426.667 426.667s191.147 426.667 426.667 426.667c235.52 0 426.667-191.147 426.667-426.667s-191.147-426.667-426.667-426.667zM725.333 405.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM725.333 576c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM597.333 320c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333zM597.333 384c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM426.667 320c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333zM298.667 576c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM426.667 704c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM298.667 405.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM426.667 554.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM426.667 384c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "blur-radial"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1425,
+            "id": 1137,
+            "prevSize": 24,
+            "code": 59031,
+            "name": "blur-radial"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 151
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 362.667c-35.413 0-64 28.587-64 64s28.587 64 64 64c35.413 0 64-28.587 64-64s-28.587-64-64-64zM597.333 533.333c-35.413 0-64 28.587-64 64s28.587 64 64 64c35.413 0 64-28.587 64-64s-28.587-64-64-64zM426.667 725.333c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM426.667 362.667c-35.413 0-64 28.587-64 64s28.587 64 64 64c35.413 0 64-28.587 64-64s-28.587-64-64-64zM597.333 874.667c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM597.333 725.333c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM896 576c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM768 213.333c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM768 384c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM768 725.333c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM768 554.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM426.667 533.333c-35.413 0-64 28.587-64 64s28.587 64 64 64c35.413 0 64-28.587 64-64s-28.587-64-64-64zM426.667 298.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM426.667 149.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333zM426.667 874.667c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM128 576c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM597.333 149.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333zM597.333 298.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667zM896 448c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333zM256 213.333c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM128 405.333c-11.947 0-21.333 9.387-21.333 21.333s9.387 21.333 21.333 21.333c11.947 0 21.333-9.387 21.333-21.333s-9.387-21.333-21.333-21.333zM256 384c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM256 725.333c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667zM256 554.667c-23.467 0-42.667 19.2-42.667 42.667s19.2 42.667 42.667 42.667c23.467 0 42.667-19.2 42.667-42.667s-19.2-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "blur"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1426,
+            "id": 1136,
+            "prevSize": 24,
+            "code": 59032,
+            "name": "blur"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 152
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 597.333c0 70.694-57.308 128-128 128s-128-57.306-128-128c0-32.785 12.324-62.686 32.593-85.333-20.269-22.647-32.593-52.548-32.593-85.333 0-70.692 57.308-128 128-128s128 57.308 128 128c56.889 3.554 113.779 7.113 170.667 7.113s113.779-3.558 170.667-7.113c0-70.692 57.306-128 128-128s128 57.308 128 128c0 32.785-12.326 62.686-32.593 85.333 20.267 22.647 32.593 52.548 32.593 85.333 0 70.694-57.306 128-128 128s-128-57.306-128-128c-56.887-3.554-113.779-7.113-170.667-7.113s-113.778 3.558-170.667 7.113z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bone"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1427,
+            "id": 1135,
+            "prevSize": 24,
+            "code": 59033,
+            "name": "bone"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 153
+    }, {
+        "icon": {
+            "paths": [
+                "M810.662 768.030l-426.662-0.043c-47.084 0-85.333-38.229-85.333-85.333l-0.001-511.98c0-47.104 38.25-85.333 85.333-85.333l426.663 0.042c47.142 0 85.329 38.229 85.329 85.333l0.004 511.981c0 47.104-38.187 85.333-85.333 85.333zM426.665 384.028l85.331-63.972 85.333 63.983 0.004-213.372h-170.667l-0.002 213.361zM725.333 853.333v85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-597.333l85.333-0v597.333h512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "book-multiple-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1428,
+            "id": 1134,
+            "prevSize": 24,
+            "code": 59034,
+            "name": "book-multiple-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 154
+    }, {
+        "icon": {
+            "paths": [
+                "M810.662 768.030l-426.662-0.043c-47.084 0-85.333-38.229-85.333-85.333l-0.001-511.98c0-47.104 38.25-85.333 85.333-85.333h42.667l-0.001 213.354 85.331-63.972 85.333 63.983 0.004-213.357 213.329 0.035c47.142 0 85.329 38.229 85.329 85.333l0.004 511.981c0 47.104-38.187 85.333-85.333 85.333zM725.333 853.333v85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-597.333h85.333v597.333h512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "book-multiple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1429,
+            "id": 1133,
+            "prevSize": 24,
+            "code": 59035,
+            "name": "book-multiple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 155
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 810.667v-426.667c0-47.128-38.204-85.333-85.333-85.333h-170.667v426.667h170.667c47.13 0 85.333 38.204 85.333 85.333zM554.667 384v426.667c0-47.13 38.204-85.333 85.333-85.333h170.667v-426.666h-170.667c-47.13 0-85.333 38.205-85.333 85.333zM896 810.667h-256c-47.13 0-85.333 38.204-85.333 85.333h-85.333c0-47.13-38.204-85.333-85.333-85.333h-256v-597.333h256c47.13 0 85.334 38.205 85.334 85.333h85.333c0-47.128 38.204-85.333 85.333-85.333h256v597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "book-open"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1430,
+            "id": 1132,
+            "prevSize": 24,
+            "code": 59036,
+            "name": "book-open"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 156
+    }, {
+        "icon": {
+            "paths": [
+                "M256 170.667h213.333v341.333l-106.667-64-106.667 64zM768 85.333h-512c-46.933 0-85.333 38.4-85.333 85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h512c46.933 0 85.333-38.4 85.333-85.333v-682.667c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "book-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1431,
+            "id": 1131,
+            "prevSize": 24,
+            "code": 59037,
+            "name": "book-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 157
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 938.581c47.147 0 85.333-38.225 85.333-85.333v-682.665c0-47.104-38.187-85.333-85.333-85.333h-256v298.667l-106.668-64-106.667 64v-298.667h-42.667c-47.084 0-85.333 38.229-85.333 85.333v682.665c0 47.108 38.25 85.333 85.333 85.333h512.001z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "book"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1432,
+            "id": 1130,
+            "prevSize": 24,
+            "code": 59038,
+            "name": "book"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 158
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 127.917c47.147 0 85.333 38.229 85.333 85.333v682.665l-298.667-128-298.667 128 0.469-682.665c0-47.104 37.76-85.333 84.864-85.333h426.667zM469.333 597.632l266.667-266.666-60.331-60.331-206.336 206.335-110.335-110.335-60.331 60.33 170.666 170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bookmark-check"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1433,
+            "id": 1129,
+            "prevSize": 24,
+            "code": 59039,
+            "name": "bookmark-check"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 159
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 127.917c47.147 0 85.333 38.229 85.333 85.333v682.665l-298.667-128-298.667 128 0.469-682.665c0-47.104 37.76-85.333 84.864-85.333h426.667zM469.333 469.333c-47.128 0-85.333 38.204-85.333 85.333s38.205 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333v-213.333h128v-85.333h-170.667v224.751c-12.553-7.262-27.123-11.418-42.667-11.418z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bookmark-music"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1434,
+            "id": 1128,
+            "prevSize": 24,
+            "code": 59040,
+            "name": "bookmark-music"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 160
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 767.915v-554.665h-426.667v554.665l213.333-92.843 213.333 92.843zM725.308 127.917c47.147 0 85.333 38.229 85.333 85.333v682.665l-298.667-128-298.667 128 0.47-682.665c0-47.104 37.76-85.333 84.864-85.333h426.667zM469.333 298.667h85.333v85.333h85.333v85.333h-85.333v85.333h-85.333v-85.333h-85.333v-85.333h85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bookmark-outline-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1435,
+            "id": 1127,
+            "prevSize": 24,
+            "code": 59041,
+            "name": "bookmark-outline-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 161
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 767.915l-213.333-92.843-213.333 92.843v-554.665h426.667zM725.308 127.917h-426.667c-47.104 0-84.864 38.229-84.864 85.333l-0.469 682.665 298.667-128 298.667 128v-682.665c0-47.104-38.187-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bookmark-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1436,
+            "id": 1126,
+            "prevSize": 24,
+            "code": 59042,
+            "name": "bookmark-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 162
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 127.917c47.147 0 85.333 38.229 85.333 85.333v682.665l-298.667-128-298.667 128 0.469-682.665c0-47.104 37.76-85.333 84.864-85.333h426.667zM469.333 298.667v85.333h-85.333v85.333h85.333v85.333h85.333v-85.333h85.333v-85.333h-85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bookmark-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1437,
+            "id": 1125,
+            "prevSize": 24,
+            "code": 59043,
+            "name": "bookmark-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 163
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 127.917c47.147 0 85.333 38.229 85.333 85.333v682.665l-298.667-128-298.667 128 0.469-682.665c0-47.104 37.76-85.333 84.864-85.333h426.667zM348.628 366.244l103.007 103.008-103.007 103.006 60.34 60.339 103.007-103.006 103.006 103.006 60.339-60.339-103.006-103.010 103.006-103.004-60.339-60.34-103.006 103.006-103.007-103.006-60.34 60.34z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bookmark-remove"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1438,
+            "id": 1124,
+            "prevSize": 24,
+            "code": 59044,
+            "name": "bookmark-remove"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 164
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 127.917h-426.667c-47.104 0-84.864 38.229-84.864 85.333l-0.469 682.665 298.667-128 298.667 128v-682.665c0-47.104-38.187-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bookmark"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1439,
+            "id": 1123,
+            "prevSize": 24,
+            "code": 59045,
+            "name": "bookmark"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 165
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 469.252h-256v-255.999h256zM810.641 810.586h-256v-256h256zM469.308 469.252h-256.001v-255.999h256.001zM469.308 810.586h-256.001v-256h256.001zM127.974 895.919h768.001v-767.999h-768.001v767.999z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "border-all"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1440,
+            "id": 1122,
+            "prevSize": 24,
+            "code": 59046,
+            "name": "border-all"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 166
+    }, {
+        "icon": {
+            "paths": [
+                "M213.308 639.915h-85.333v85.333h85.333zM127.974 895.915h768v-85.333h-768zM213.308 469.248h-85.333v85.333h85.333zM810.641 383.917h85.333v-85.333h-85.333zM810.641 213.25h85.333v-85.333h-85.333zM213.308 298.583h-85.333v85.333h85.333zM810.641 725.248h85.333v-85.333h-85.333zM810.641 554.581h85.333v-85.333h-85.333zM725.308 127.917h-85.333v85.333h85.333zM554.641 127.917h-85.333v85.333h85.333zM725.308 469.248h-85.333v85.333h85.333zM554.641 298.583h-85.333v85.333h85.333zM213.308 127.917h-85.333v85.333h85.333zM554.641 469.248h-85.333v85.333h85.333zM383.974 127.917h-85.333v85.333h85.333zM554.641 639.915h-85.333v85.333h85.333zM383.974 469.248h-85.333v85.333h85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "border-bottom"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1441,
+            "id": 1121,
+            "prevSize": 24,
+            "code": 59047,
+            "name": "border-bottom"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 167
+    }, {
+        "icon": {
+            "paths": [
+                "M883.465 172.418c16.683-16.683 16.683-43.648 0-60.331l-99.669-99.669c-16.64-16.682-43.648-16.682-60.331 0l-83.499 83.499 160 160zM757.299 298.583l-160-160-426.667 426.665v160h160l426.667-426.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "border-color"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1442,
+            "id": 1120,
+            "prevSize": 24,
+            "code": 59048,
+            "name": "border-color"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 168
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 895.915h85.333v-85.333h-85.333zM639.974 895.915h85.333v-85.333h-85.333zM469.308 725.248h85.333v-85.333h-85.333zM810.641 383.917h85.333v-85.333h-85.333zM810.641 213.25h85.333v-85.333h-85.333zM127.974 554.581h768v-85.333h-768zM469.308 895.915h85.333v-85.333h-85.333zM810.641 725.248h85.333v-85.333h-85.333zM554.641 127.917h-85.333v85.333h85.333zM554.641 298.583h-85.333v85.333h85.333zM725.308 127.917h-85.333v85.333h85.333zM383.974 127.917h-85.333v85.333h85.333zM213.308 127.917h-85.333v85.333h85.333zM298.641 895.915h85.333v-85.333h-85.333zM127.974 725.248h85.333v-85.333h-85.333zM213.308 298.583h-85.333v85.333h85.333zM127.974 895.915h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "border-horizontal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1443,
+            "id": 1119,
+            "prevSize": 24,
+            "code": 59049,
+            "name": "border-horizontal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 169
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 725.248h85.333v-85.333h-85.333zM810.641 895.915h85.333v-85.333h-85.333zM554.641 127.917h-85.333v341.331h-341.334v85.333h341.334v341.333h85.333v-341.333h341.333v-85.333h-341.333zM639.974 895.915h85.333v-85.333h-85.333zM810.641 213.25h85.333v-85.333h-85.333zM810.641 383.917h85.333v-85.333h-85.333zM725.308 127.917h-85.333v85.333h85.333zM213.307 127.917h-85.333v85.333h85.333zM383.974 127.917h-85.333v85.333h85.333zM127.974 725.248h85.333v-85.333h-85.333zM213.307 298.583h-85.333v85.333h85.333zM298.641 895.915h85.333v-85.333h-85.333zM127.974 895.915h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "border-inside"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1444,
+            "id": 1118,
+            "prevSize": 24,
+            "code": 59050,
+            "name": "border-inside"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 170
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 213.25h85.333v-85.333h-85.333zM639.974 554.581h85.333v-85.333h-85.333zM810.641 895.915h85.333v-85.333h-85.333zM810.641 554.581h85.333v-85.333h-85.333zM810.641 213.25h85.333v-85.333h-85.333zM810.641 725.248h85.333v-85.333h-85.333zM639.974 895.915h85.333v-85.333h-85.333zM810.641 383.917h85.333v-85.333h-85.333zM127.974 895.915h85.333v-767.998h-85.333zM298.641 554.581h85.333v-85.333h-85.333zM298.641 213.25h85.333v-85.333h-85.333zM298.641 895.915h85.333v-85.333h-85.333zM469.308 554.581h85.333v-85.333h-85.333zM469.308 383.917h85.333v-85.333h-85.333zM469.308 213.25h85.333v-85.333h-85.333zM469.308 725.248h85.333v-85.333h-85.333zM469.308 895.915h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "border-left"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1445,
+            "id": 1117,
+            "prevSize": 24,
+            "code": 59051,
+            "name": "border-left"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 171
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 213.25h85.333v-85.333h-85.333zM639.974 554.581h85.333v-85.333h-85.333zM639.974 895.915h85.333v-85.333h-85.333zM469.308 213.25h85.333v-85.333h-85.333zM810.641 213.25h85.333v-85.333h-85.333zM469.308 383.917h85.333v-85.333h-85.333zM810.641 383.917h85.333v-85.333h-85.333zM810.641 895.915h85.333v-85.333h-85.333zM810.641 554.581h85.333v-85.333h-85.333zM810.641 725.248h85.333v-85.333h-85.333zM469.308 554.581h85.333v-85.333h-85.333zM127.974 213.25h85.333v-85.333h-85.333zM127.974 383.917h85.333v-85.333h-85.333zM127.974 554.581h85.333v-85.333h-85.333zM127.974 725.248h85.333v-85.333h-85.333zM127.974 895.915h85.333v-85.333h-85.333zM469.308 895.915h85.333v-85.333h-85.333zM469.308 725.248h85.333v-85.333h-85.333zM298.641 895.915h85.333v-85.333h-85.333zM298.641 554.581h85.333v-85.333h-85.333zM298.641 213.25h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "border-none"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1446,
+            "id": 1116,
+            "prevSize": 24,
+            "code": 59052,
+            "name": "border-none"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 172
+    }, {
+        "icon": {
+            "paths": [
+                "M383.974 469.248h-85.333v85.333h85.333zM554.641 639.915h-85.333v85.333h85.333zM810.641 810.581h-597.333v-597.331h597.333zM127.974 895.915h768v-767.998h-768zM725.308 469.248h-85.333v85.333h85.333zM554.641 469.248h-85.333v85.333h85.333zM554.641 298.583h-85.333v85.333h85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "border-outside"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1447,
+            "id": 1115,
+            "prevSize": 24,
+            "code": 59053,
+            "name": "border-outside"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 173
+    }, {
+        "icon": {
+            "paths": [
+                "M469.308 383.917h85.333v-85.333h-85.333zM469.308 213.25h85.333v-85.333h-85.333zM469.308 554.581h85.333v-85.333h-85.333zM639.974 213.25h85.333v-85.333h-85.333zM639.974 895.915h85.333v-85.333h-85.333zM810.641 895.915h85.333v-767.998h-85.333zM639.974 554.581h85.333v-85.333h-85.333zM469.308 725.248h85.333v-85.333h-85.333zM127.975 383.917h85.333v-85.333h-85.333zM127.975 725.248h85.333v-85.333h-85.333zM127.975 554.581h85.333v-85.333h-85.333zM469.308 895.915h85.333v-85.333h-85.333zM127.975 895.915h85.333v-85.333h-85.333zM298.642 554.581h85.333v-85.333h-85.333zM298.642 213.25h85.333v-85.333h-85.333zM127.975 213.25h85.333v-85.333h-85.333zM298.642 895.915h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "border-right"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1448,
+            "id": 1114,
+            "prevSize": 24,
+            "code": 59054,
+            "name": "border-right"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 174
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 554.581h85.333v-85.333h-85.333zM810.641 895.915h85.333v-85.333h-85.333zM469.308 383.917h85.333v-85.333h-85.333zM639.974 895.915h85.333v-85.333h-85.333zM810.641 725.248h85.333v-85.333h-85.333zM127.975 213.25h768v-85.333h-768zM810.641 554.581h85.333v-85.333h-85.333zM810.641 383.917h85.333v-85.333h-85.333zM469.308 725.248h85.333v-85.333h-85.333zM127.975 383.917h85.333v-85.333h-85.333zM127.975 554.581h85.333v-85.333h-85.333zM127.975 895.915h85.333v-85.333h-85.333zM127.975 725.248h85.333v-85.333h-85.333zM469.308 895.915h85.333v-85.333h-85.333zM469.308 554.581h85.333v-85.333h-85.333zM298.641 554.581h85.333v-85.333h-85.333zM298.641 895.915h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "border-top"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1449,
+            "id": 1113,
+            "prevSize": 24,
+            "code": 59055,
+            "name": "border-top"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 175
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 554.581h85.333v-85.333h-85.333zM639.974 895.915h85.333v-85.333h-85.333zM639.974 213.25h85.333v-85.333h-85.333zM810.641 383.917h85.333v-85.333h-85.333zM810.641 213.25h85.333v-85.333h-85.333zM810.641 554.581h85.333v-85.333h-85.333zM810.641 895.915h85.333v-85.333h-85.333zM469.308 895.915h85.333v-767.998h-85.333zM810.641 725.248h85.333v-85.333h-85.333zM298.641 213.25h85.333v-85.333h-85.333zM127.974 725.248h85.333v-85.333h-85.333zM127.974 895.915h85.333v-85.333h-85.333zM127.974 554.581h85.333v-85.333h-85.333zM298.641 554.581h85.333v-85.333h-85.333zM298.641 895.915h85.333v-85.333h-85.333zM127.974 213.25h85.333v-85.333h-85.333zM127.974 383.917h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "border-vertical"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1450,
+            "id": 1112,
+            "prevSize": 24,
+            "code": 59056,
+            "name": "border-vertical"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 176
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c235.639 0 426.667 191.025 426.667 426.667 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.641 191.025-426.667 426.667-426.667zM533.333 469.333c-35.345 0-64 28.655-64 64s28.655 64 64 64c35.345 0 64-28.655 64-64s-28.655-64-64-64zM512 213.333c-47.13 0-85.333 38.205-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333zM253.131 362.278c-23.564 40.814-9.58 93.005 31.234 116.565 40.815 23.565 93.004 9.583 116.568-31.232s9.58-93.004-31.234-116.567c-40.815-23.564-93.004-9.58-116.568 31.234z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bowling"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1451,
+            "id": 1111,
+            "prevSize": 24,
+            "code": 59057,
+            "name": "bowling"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 177
+    }, {
+        "icon": {
+            "paths": [
+                "M213.146 128h597.845l73.741 127.718-0.235 0.134c7.313 12.585 11.503 27.211 11.503 42.815v512c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-512c0-15.445 4.104-29.932 11.28-42.43l-0.129-0.074 73.995-128.162zM237.779 170.667l-24.634 42.667 597.846 0-24.631-42.667h-548.581zM298.667 512l213.333 213.333 213.333-213.333h-128v-85.333h-170.667v85.333h-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "box-download"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1452,
+            "id": 1110,
+            "prevSize": 24,
+            "code": 59058,
+            "name": "box-download"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 178
+    }, {
+        "icon": {
+            "paths": [
+                "M213.146 128h597.845l73.741 127.718-0.235 0.134c7.313 12.585 11.503 27.211 11.503 42.815v512c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-512c0-15.445 4.104-29.932 11.28-42.43l-0.129-0.074 73.995-128.162zM237.779 170.667l-24.634 42.667 597.846 0-24.631-42.667h-548.581zM298.667 640h128v85.333h170.667v-85.333h128l-213.333-213.333-213.333 213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "box-upload"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1453,
+            "id": 1109,
+            "prevSize": 24,
+            "code": 59059,
+            "name": "box-upload"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 179
+    }, {
+        "icon": {
+            "paths": [
+                "M656.533 598.891v-0.021c-0.013-60.386-48.964-109.321-109.338-109.321-60.382 0-109.325 48.934-109.338 109.321v0.021c0.013 60.373 48.956 109.312 109.338 109.312 60.373 0 109.325-48.939 109.338-109.312zM729.476 598.891c0 100.663-81.609 182.285-182.285 182.285-69.794 0-130.399-39.253-161.025-96.862-30.627 57.609-91.233 96.862-161.029 96.862-99.659 0-180.587-80-182.207-179.268h-0.076v-302.437h0.017c0.42-19.788 16.562-35.709 36.454-35.709s36.035 15.921 36.458 35.709l0.017 0.019v153.524c30.46-22.874 68.314-36.432 109.336-36.432 69.795 0 130.402 39.244 161.029 96.852 30.627-57.609 91.235-96.852 161.025-96.852 100.676 0 182.285 81.612 182.285 182.288v0.021zM334.476 598.891v-0.021c-0.011-60.386-48.958-109.321-109.338-109.321-60.379 0-109.325 48.934-109.336 109.321v0.021c0.012 60.373 48.957 109.312 109.336 109.312 60.38 0 109.327-48.939 109.338-109.312zM974.686 723.81l-0.009 0.004c4.719 6.579 6.95 14.221 6.844 21.769-0.145 10.906-5.158 21.623-14.562 28.685-6.558 4.932-14.238 7.305-21.854 7.305-10.842 0-21.559-4.821-28.749-13.956l-80.572-107.708-80.585 107.695c-7.181 9.148-17.894 13.969-28.74 13.969-7.612 0-15.296-2.381-21.858-7.313-9.604-7.211-14.63-18.244-14.558-29.393 0.038-7.317 2.274-14.682 6.848-21.052l-0.004-0.026 93.342-124.774-93.338-124.804c-4.663-6.494-6.895-14.029-6.848-21.487 0.060-10.999 5.077-21.841 14.558-28.962 15.906-11.947 38.374-8.913 50.598 6.66l0.013-0.017 80.572 107.708 80.585-107.699c12.22-15.569 34.688-18.604 50.59-6.659 9.685 7.274 14.711 18.423 14.562 29.665-0.094 7.228-2.325 14.494-6.844 20.791l0.009 0.026-93.346 124.779 93.346 124.796z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1454,
+            "id": 1108,
+            "prevSize": 24,
+            "code": 59060,
+            "name": "box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 180
+    }, {
+        "icon": {
+            "paths": [
+                "M448 746.667l-149.333-149.333 60.331-60.331 89.003 89.003 220.843-220.843 60.331 60.331zM426.667 170.667h170.667v85.333h-170.667zM853.333 256h-170.667v-85.333l-85.333-85.333h-170.667l-85.333 85.333v85.333h-170.667c-47.189 0-84.864 38.186-84.864 85.333l-0.469 469.333c0 47.147 38.144 85.333 85.333 85.333h682.667c47.147 0 85.333-38.187 85.333-85.333v-469.333c0-47.147-38.187-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "briefcase-checked"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1455,
+            "id": 1107,
+            "prevSize": 24,
+            "code": 59061,
+            "name": "briefcase-checked"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 181
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 810.586l-213.334-213.333h128v-170.668h170.667v170.668h128zM426.641 170.584h170.667v85.333h-170.667zM853.308 255.918h-170.667v-85.333l-85.333-85.333h-170.667l-85.333 85.333v85.333h-170.667c-47.189 0-84.864 38.186-84.864 85.333l-0.469 469.335c0 47.147 38.144 85.333 85.333 85.333h682.667c47.147 0 85.333-38.187 85.333-85.333v-469.335c0-47.147-38.187-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "briefcase-download"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1456,
+            "id": 1106,
+            "prevSize": 24,
+            "code": 59062,
+            "name": "briefcase-download"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 182
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 255.918c47.147 0 85.333 38.187 85.333 85.333v469.335c0 47.147-38.187 85.333-85.333 85.333h-682.667c-47.189 0-85.333-38.187-85.333-85.333l0.469-469.335c0-47.147 37.675-85.333 84.864-85.333h170.667v-85.333l85.333-85.333h170.667l85.333 85.333v85.333h170.667zM426.641 170.584v85.333h170.667v-85.333h-170.667zM512 384l-213.333 213.333h128v170.667h170.667v-170.667h128l-213.333-213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "briefcase-upload"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1457,
+            "id": 1105,
+            "prevSize": 24,
+            "code": 59063,
+            "name": "briefcase-upload"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 183
+    }, {
+        "icon": {
+            "paths": [
+                "M597.308 255.917h-170.667v-85.333h170.667zM853.308 255.917h-170.667v-85.333l-85.333-85.333h-170.667l-85.333 85.333v85.333h-170.667c-47.147 0-84.906 38.143-84.906 85.333l-0.427 469.331c0 47.194 38.186 85.333 85.333 85.333h682.667c47.147 0 85.333-38.14 85.333-85.333v-469.331c0-47.19-38.187-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "briefcase"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1458,
+            "id": 1104,
+            "prevSize": 24,
+            "code": 59064,
+            "name": "briefcase"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 184
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c235.639 0 426.667 191.025 426.667 426.667 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "brightness-1"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1459,
+            "id": 1103,
+            "prevSize": 24,
+            "code": 59065,
+            "name": "brightness-1"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 185
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 85.333c-77.653 0-150.613 21.333-213.333 57.6 127.573 73.817 213.333 211.2 213.333 369.067s-85.76 295.253-213.333 369.067c62.72 36.267 135.68 57.6 213.333 57.6 235.52 0 426.667-191.147 426.667-426.667s-191.147-426.667-426.667-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "brightness-2"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1460,
+            "id": 1102,
+            "prevSize": 24,
+            "code": 59066,
+            "name": "brightness-2"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 186
+    }, {
+        "icon": {
+            "paths": [
+                "M384 85.333c-44.8 0-87.467 6.833-128 19.627 173.227 54.187 298.667 215.893 298.667 407.040s-125.44 352.853-298.667 407.040c40.533 12.8 83.2 19.627 128 19.627 235.52 0 426.667-191.147 426.667-426.667s-191.147-426.667-426.667-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "brightness-3"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1461,
+            "id": 1101,
+            "prevSize": 24,
+            "code": 59067,
+            "name": "brightness-3"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 187
+    }, {
+        "icon": {
+            "paths": [
+                "M512 768c-37.973 0-74.24-8.533-106.667-23.467 87.893-40.533 149.333-129.28 149.333-232.533s-61.44-192-149.333-232.533c32.427-14.933 68.693-23.467 106.667-23.467 141.227 0 256 114.773 256 256s-114.773 256-256 256zM853.333 370.773v-200.107h-200.107l-141.227-141.227-141.227 141.227h-200.107v200.107l-141.227 141.227 141.227 141.227v200.107h200.107l141.227 141.227 141.227-141.227h200.107v-200.107l141.227-141.227-141.227-141.227z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "brightness-4"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1462,
+            "id": 1100,
+            "prevSize": 24,
+            "code": 59068,
+            "name": "brightness-4"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 188
+    }, {
+        "icon": {
+            "paths": [
+                "M512 768c-141.227 0-256-114.773-256-256s114.773-256 256-256c141.227 0 256 114.773 256 256s-114.773 256-256 256zM853.333 653.227l141.227-141.227-141.227-141.227v-200.107h-200.107l-141.227-141.227-141.227 141.227h-200.107v200.107l-141.227 141.227 141.227 141.227v200.107h200.107l141.227 141.227 141.227-141.227h200.107v-200.107z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "brightness-5"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1463,
+            "id": 1099,
+            "prevSize": 24,
+            "code": 59069,
+            "name": "brightness-5"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 189
+    }, {
+        "icon": {
+            "paths": [
+                "M512 768v-512c141.227 0 256 114.773 256 256s-114.773 256-256 256zM853.333 653.227l141.227-141.227-141.227-141.227v-200.107h-200.107l-141.227-141.227-141.227 141.227h-200.107v200.107l-141.227 141.227 141.227 141.227v200.107h200.107l141.227 141.227 141.227-141.227h200.107v-200.107z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "brightness-6"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1464,
+            "id": 1098,
+            "prevSize": 24,
+            "code": 59070,
+            "name": "brightness-6"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 190
+    }, {
+        "icon": {
+            "paths": [
+                "M512 341.333c-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667c94.293 0 170.667-76.373 170.667-170.667s-76.373-170.667-170.667-170.667zM512 768c-141.227 0-256-114.773-256-256s114.773-256 256-256c141.227 0 256 114.773 256 256s-114.773 256-256 256zM853.333 370.773v-200.107h-200.107l-141.227-141.227-141.227 141.227h-200.107v200.107l-141.227 141.227 141.227 141.227v200.107h200.107l141.227 141.227 141.227-141.227h200.107v-200.107l141.227-141.227-141.227-141.227z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "brightness-7"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1465,
+            "id": 1097,
+            "prevSize": 24,
+            "code": 59071,
+            "name": "brightness-7"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 191
+    }, {
+        "icon": {
+            "paths": [
+                "M610.133 682.667l-29.867-85.333h-136.533l-29.867 85.333h-81.067l136.533-384h85.333l136.533 384h-81.067zM853.333 370.773v-200.107h-200.107l-141.227-141.227-141.227 141.227h-200.107v200.107l-141.227 141.227 141.227 141.227v200.107h200.107l141.227 141.227 141.227-141.227h200.107v-200.107l141.227-141.227-141.227-141.227zM462.933 539.733h98.133l-49.067-155.733-49.067 155.733z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "brightness-auto"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1466,
+            "id": 1096,
+            "prevSize": 24,
+            "code": 59072,
+            "name": "brightness-auto"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 192
+    }, {
+        "icon": {
+            "paths": [
+                "M170.666 170.667h199.951l141.388-141.386 141.385 141.386h199.945v199.945l141.389 141.388-141.389 141.385v199.949h-199.949l-141.385 141.385-141.383-141.385h-199.951v-199.949l-141.383-141.385 141.383-141.383v-199.95zM512 256v512c141.385 0 256-114.615 256-256s-114.615-256-256-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "brightness"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1467,
+            "id": 1095,
+            "prevSize": 24,
+            "code": 59073,
+            "name": "brightness"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 193
+    }, {
+        "icon": {
+            "paths": [
+                "M826.197 116.131l60.339 60.34-243.977 243.976c45.747 65.356 52.062 144.264 13.807 195.626l-269.775-269.773c51.364-38.254 130.272-31.939 195.629 13.808l243.977-243.976zM252.968 749.7c-85.832-85.833-138.202-188.382-152.867-283.597l208.379-89.304 317.388 317.388-89.306 208.38c-95.215-14.665-197.763-67.034-283.596-152.866z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "broom"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1468,
+            "id": 1094,
+            "prevSize": 24,
+            "code": 59074,
+            "name": "broom"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 194
+    }, {
+        "icon": {
+            "paths": [
+                "M883.627 197.547l-57.173-57.173c-16.64-16.64-43.52-16.64-60.16 0l-382.293 382.293 117.333 117.333 382.293-382.293c16.64-16.64 16.64-43.52 0-60.16zM298.667 597.333c-70.827 0-128 57.173-128 128 0 55.893-49.493 85.333-85.333 85.333 39.253 52.053 106.24 85.333 170.667 85.333 94.293 0 170.667-76.373 170.667-170.667 0-70.827-57.173-128-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "brush"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1469,
+            "id": 1093,
+            "prevSize": 24,
+            "code": 59075,
+            "name": "brush"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 195
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 512h-170.667v-85.333h170.667zM597.333 682.667h-170.667v-85.333h170.667zM853.333 341.333h-119.893c-19.2-33.28-45.653-61.867-77.653-83.627l69.547-69.547-60.16-60.16-92.587 92.587c-19.627-4.693-39.68-7.253-60.587-7.253s-40.96 2.56-60.16 7.253l-93.013-92.587-60.16 60.16 69.12 69.547c-31.573 21.76-58.027 50.347-77.227 83.627h-119.893v85.333h89.173c-2.133 14.080-3.84 28.16-3.84 42.667v42.667h-85.333v85.333h85.333v42.667c0 14.507 1.707 28.587 3.84 42.667h-89.173v85.333h119.893c44.373 76.373 126.72 128 221.44 128s177.067-51.627 221.44-128h119.893v-85.333h-89.173c2.133-14.080 3.84-28.16 3.84-42.667v-42.667h85.333v-85.333h-85.333v-42.667c0-14.507-1.707-28.587-3.84-42.667h89.173v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bug"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1470,
+            "id": 1092,
+            "prevSize": 24,
+            "code": 59076,
+            "name": "bug"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 196
+    }, {
+        "icon": {
+            "paths": [
+                "M513.664 106.666l-107.141 106.667 213.334-0-106.193-106.667zM170.667 298.667v554.667h682.667v-554.667h-682.667zM512 0l213.333 213.333h128c46.933 0 85.333 38.4 85.333 85.333v554.667c0 46.933-38.4 85.333-85.333 85.333h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-554.667c0-46.933 38.4-85.333 85.333-85.333h128l213.333-213.333zM298.662 768v-170.667h213.333v170.667h-213.333zM597.329 725.333v-298.667h170.667v298.667h-170.667zM255.996 512v-128h213.333v128h-213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bulletin-board"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1471,
+            "id": 1091,
+            "prevSize": 24,
+            "code": 59077,
+            "name": "bulletin-board"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 197
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 512v170.667c0 23.565-19.102 42.667-42.667 42.667-7.113 0-14.221 0-40.294-21.333-26.078-21.333-71.113-64-117.333-85.333-42.641-19.682-86.292-21.205-130.019-21.325l51.523 141.559 1.457 7.765c0 11.78-9.551 21.333-21.333 21.333h-85.333c-9.393 0-17.368-6.071-20.216-14.502l-56.839-156.164h-8.278c-23.564 0-42.667-19.102-42.667-42.667-47.128 0-85.333-38.204-85.333-85.333 0-47.128 38.205-85.333 85.333-85.333 0-23.564 19.102-42.667 42.667-42.667h128c47.407 0 94.814 0 141.039-21.333 46.221-21.333 91.255-64 117.333-85.333 26.074-21.333 33.182-21.333 40.294-21.333 23.565 0 42.667 19.102 42.667 42.667v170.666c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667zM896 469.333c0 58.91-23.881 112.243-62.485 150.848l-60.339-60.339c23.164-23.164 37.491-55.164 37.491-90.509s-14.327-67.346-37.491-90.509l60.339-60.34c38.605 38.606 62.485 91.939 62.485 150.849z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bullhorn"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1472,
+            "id": 1090,
+            "prevSize": 24,
+            "code": 59078,
+            "name": "bullhorn"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 198
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 469.252h-512v-213.335h512zM703.974 725.252c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.371 0 64 28.672 64 64s-28.629 64-64 64zM319.974 725.252c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.371 0 64 28.672 64 64s-28.629 64-64 64zM170.641 682.586c0 37.76 16.64 71.339 42.667 94.763v75.904c0 23.552 19.115 42.667 42.667 42.667h42.667c23.595 0 42.667-19.115 42.667-42.667v-42.667h341.334v42.667c0 23.552 19.072 42.667 42.667 42.667h42.667c23.552 0 42.667-19.115 42.667-42.667v-75.904c26.027-23.424 42.667-57.003 42.667-94.763v-426.668c0-149.333-152.832-170.667-341.333-170.667s-341.334 21.333-341.334 170.667v426.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "bus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1473,
+            "id": 1089,
+            "prevSize": 24,
+            "code": 59079,
+            "name": "bus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 199
+    }, {
+        "icon": {
+            "paths": [
+                "M895.974 895.919v-170.667c0-47.147-38.187-85.333-85.333-85.333h-42.667v-128c0-47.147-38.187-85.335-85.333-85.335h-128v-85.333h-85.333v85.333h-128.001c-47.147 0-85.333 38.188-85.333 85.335v128h-42.667c-47.147 0-85.333 38.187-85.333 85.333v170.667h-85.333v85.333h938.667v-85.333zM511.974 298.584c47.147 0 85.333-38.23 85.333-85.333 0-16.043-4.437-31.104-12.16-43.904l-73.173-126.763-73.173 126.763c-7.723 12.8-12.161 27.861-12.161 43.904 0 47.104 38.188 85.333 85.334 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cake-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1474,
+            "id": 1088,
+            "prevSize": 24,
+            "code": 59080,
+            "name": "cake-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 200
+    }, {
+        "icon": {
+            "paths": [
+                "M490.667 21.333c21.333 10.667 64 80.872 64 128s-28.655 64-64 64c-35.345 0-64-6.205-64-53.333s42.667-74.667 64-138.667zM789.333 384c106.039 0 192 85.961 192 192 0 66.569-33.877 125.227-85.333 159.667v245.666h-768v-245.666c-51.455-34.441-85.333-93.099-85.333-159.667 0-106.039 85.961-192 192-192l192 0v-128l128-0v128h234.667zM512 682.667c58.91 0 106.667-47.757 106.667-106.667h64c0 58.91 47.757 106.667 106.667 106.667s106.667-47.757 106.667-106.667c0-58.91-47.757-106.667-106.667-106.667h-554.667c-58.91 0-106.667 47.757-106.667 106.667s47.756 106.667 106.667 106.667c58.91 0 106.667-47.757 106.667-106.667h64c0 58.91 47.757 106.667 106.667 106.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cake"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1475,
+            "id": 1087,
+            "prevSize": 24,
+            "code": 59081,
+            "name": "cake"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 201
+    }, {
+        "icon": {
+            "paths": [
+                "M298.666 85.334h426.667c47.13 0 85.333 38.205 85.333 85.333v682.666c0 47.13-38.204 85.333-85.333 85.333h-426.667c-47.128 0-85.333-38.204-85.333-85.333v-682.666c0-47.128 38.205-85.333 85.333-85.333zM298.666 170.668v170.667h426.667v-170.667h-426.667zM298.666 426.667v85.333h85.333v-85.333h-85.333zM469.333 426.667v85.333h85.333v-85.333h-85.333zM640 426.667v85.333h85.333v-85.333h-85.333zM298.666 597.333v85.333h85.334v-85.333h-85.334zM469.333 597.333v85.333h85.333v-85.333h-85.333zM640 597.333v85.333h85.333v-85.333h-85.333zM298.667 768v85.333h85.333v-85.333h-85.333zM469.333 768v85.333h85.333v-85.333h-85.333zM640 768v85.333h85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "calculator"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1476,
+            "id": 1086,
+            "prevSize": 24,
+            "code": 59082,
+            "name": "calculator"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 202
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 810.586h-597.333v-469.335h597.333zM682.641 42.585v85.334h-341.335v-85.334h-85.333v85.334h-42.667c-47.189 0-84.907 38.186-84.907 85.333l-0.426 597.334c0 47.104 38.144 85.333 85.333 85.333h597.335c47.061 0 85.333-38.229 85.333-85.333v-597.334c0-47.147-38.272-85.333-85.333-85.333h-42.667v-85.334z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "calendar-blank"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1477,
+            "id": 1085,
+            "prevSize": 24,
+            "code": 59083,
+            "name": "calendar-blank"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 203
+    }, {
+        "icon": {
+            "paths": [
+                "M896 725.333v-384h-597.333v384h597.333zM896 128c46.933 0 85.333 38.4 85.333 85.333v512c0 46.933-38.4 85.333-85.333 85.333h-597.333c-47.36 0-85.333-38.4-85.333-85.333l0.427-512c0-46.933 37.547-85.333 84.907-85.333h42.667v-85.333h85.333v85.333h341.334v-85.333h85.333v85.333h42.667zM747.947 471.893l-189.44 189.44-114.347-114.347 45.227-45.227 69.12 69.12 144.213-144.213 45.227 45.227zM128 896h597.333v85.333h-597.333c-47.36 0-85.333-38.4-85.333-85.333l0.427-512h84.907v512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "calendar-check-multiple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1478,
+            "id": 1084,
+            "prevSize": 24,
+            "code": 59084,
+            "name": "calendar-check-multiple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 204
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 810.667h-597.333v-469.333h597.333zM810.667 128h-42.667v-85.333h-85.333v85.333h-341.333v-85.333h-85.333v85.333h-42.667c-47.36 0-84.907 38.4-84.907 85.333l-0.427 597.333c0 46.933 37.973 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM705.28 471.893l-45.227-45.227-208.213 208.213-90.453-90.453-45.227 45.227 135.68 135.68 253.44-253.44z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "calendar-check"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1479,
+            "id": 1083,
+            "prevSize": 24,
+            "code": 59085,
+            "name": "calendar-check"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 205
+    }, {
+        "icon": {
+            "paths": [
+                "M640 554.667h64v120.448l104.030 60.062-32 55.424-136.030-78.537v-157.397zM810.641 341.251h-597.333v469.335h199.395c-18.405-38.775-28.702-82.146-28.702-127.919 0-164.949 133.717-298.667 298.667-298.667 45.798 0 89.186 10.308 127.974 28.73v-71.479zM213.306 895.919c-47.189 0-85.333-38.229-85.333-85.333l0.427-597.334c0-47.147 37.717-85.333 84.906-85.333h42.667v-85.333h85.333v85.333h341.335v-85.333h85.333v85.333h42.667c47.061 0 85.333 38.186 85.333 85.333v260.366c52.8 53.871 85.359 127.659 85.359 209.050 0 164.949-133.717 298.667-298.667 298.667-81.421 0-155.23-32.58-209.105-85.414h-260.256zM682.667 475.9c-114.197 0-206.771 92.574-206.771 206.767 0 114.197 92.574 206.771 206.771 206.771s206.771-92.574 206.771-206.771c0-114.193-92.574-206.767-206.771-206.767z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "calendar-clock"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1480,
+            "id": 1082,
+            "prevSize": 24,
+            "code": 59086,
+            "name": "calendar-clock"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 206
+    }, {
+        "icon": {
+            "paths": [
+                "M896 725.333v-384h-597.333v384h597.333zM896 128.001c46.933 0 85.333 38.4 85.333 85.333v511.999c0 46.933-38.4 85.333-85.333 85.333h-597.334c-47.36 0-85.333-38.4-85.333-85.333l0.427-511.999c0-46.934 37.546-85.333 84.906-85.333h42.667v-85.333h85.333v85.333h341.334v-85.333h85.333v85.333h42.667zM128 896h597.333v85.333h-597.333c-47.36 0-85.333-38.4-85.333-85.333l0.427-512h84.907v512zM810.667 640h-170.667v-170.667h170.667v170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "calendar-multiple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1481,
+            "id": 1081,
+            "prevSize": 24,
+            "code": 59087,
+            "name": "calendar-multiple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 207
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 810.586l-0.004-512h-597.334l0.005 512h597.333zM682.641 42.585h85.333v85.333h42.667c47.061 0 85.333 38.186 85.333 85.333v597.334c0 47.104-38.272 85.333-85.333 85.333h-597.335c-47.189 0-85.333-38.229-85.333-85.333l0.427-597.334c0-47.147 37.717-85.333 84.906-85.333h42.667v-85.333h85.333v85.333h341.335v-85.333zM469.333 384h85.333v128h128v85.333h-128v128h-85.333v-128h-128v-85.333h128v-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "calendar-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1482,
+            "id": 1080,
+            "prevSize": 24,
+            "code": 59088,
+            "name": "calendar-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 208
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 810.667h-597.333v-469.333h597.333zM810.667 128h-42.667v-85.333h-85.333v85.333h-341.333v-85.333h-85.333v85.333h-42.667c-47.36 0-84.907 38.4-84.907 85.333l-0.427 597.333c0 46.933 37.973 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM397.227 725.333l104.107-104.107 104.107 104.107 45.227-45.227-104.107-104.107 104.107-104.107-45.227-45.227-104.107 104.107-104.107-104.107-45.227 45.227 104.107 104.107-104.107 104.107 45.227 45.227z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "calendar-remove"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1483,
+            "id": 1079,
+            "prevSize": 24,
+            "code": 59089,
+            "name": "calendar-remove"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 209
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 512h256v256h-256v-256zM213.333 170.667h42.667v-85.333h85.333v85.333h341.333v-85.333h85.333v85.333h42.667c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM213.333 384v469.333h597.333v-469.333h-597.333zM554.667 597.333v85.333h85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "calendar-select"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1484,
+            "id": 1078,
+            "prevSize": 24,
+            "code": 59090,
+            "name": "calendar-select"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 210
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 597.333h-298.667v85.333h298.667zM810.667 810.667h-597.333v-469.333h597.333zM810.667 128h-42.667v-85.333h-85.333v85.333h-341.333v-85.333h-85.333v85.333h-42.667c-47.36 0-84.907 38.4-84.907 85.333l-0.427 597.333c0 46.933 37.973 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM725.333 426.667h-426.667v85.333h426.667v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "calendar-text"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1485,
+            "id": 1077,
+            "prevSize": 24,
+            "code": 59091,
+            "name": "calendar-text"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 211
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 426.667h213.333v213.333h-213.333zM810.667 810.667h-597.333v-469.333h597.333zM810.667 128h-42.667v-85.333h-85.333v85.333h-341.333v-85.333h-85.333v85.333h-42.667c-47.36 0-84.907 38.4-84.907 85.333l-0.427 597.333c0 46.933 37.973 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "calendar-today"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1486,
+            "id": 1076,
+            "prevSize": 24,
+            "code": 59092,
+            "name": "calendar-today"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 212
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 810.586h-597.333v-469.335h597.333zM682.641 42.584v85.333h-341.333v-85.333h-85.333v85.333h-42.667c-47.189 0-84.907 38.186-84.907 85.333l-0.426 597.335c0 47.104 38.144 85.333 85.333 85.333h597.333c47.061 0 85.333-38.229 85.333-85.333v-597.335c0-47.147-38.272-85.333-85.333-85.333h-42.667v-85.333zM725.308 511.919h-213.333v213.333h213.333v-213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "calendar"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1487,
+            "id": 1075,
+            "prevSize": 24,
+            "code": 59093,
+            "name": "calendar"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 213
+    }, {
+        "icon": {
+            "paths": [
+                "M256 341.333h31.018l310.315 310.315v31.019h-341.333zM96.982 42.666l-54.315 54.315 85.461 85.461c-25.471 14.763-42.794 41.984-42.794 73.557v512c0 47.104 38.229 85.333 85.333 85.333h628.352l85.333 85.333 54.315-54.315zM853.333 170.666h-519.765l170.667 170.667h93.099v93.099l24.149 24.107 146.517-117.206v263.766l169.941 169.941c0.213-2.347 0.725-4.651 0.725-7.040v-512c0-47.102-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camcorder-box-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1488,
+            "id": 1074,
+            "prevSize": 24,
+            "code": 59094,
+            "name": "camcorder-box-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 214
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 682.581l-170.667-136.533v136.533h-341.332v-341.331h341.332v136.535l170.667-136.535zM853.308 170.583h-682.665c-47.104 0-85.333 38.229-85.333 85.333v511.998c0 47.108 38.229 85.333 85.333 85.333h682.665c47.104 0 85.333-38.225 85.333-85.333v-511.998c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camcorder-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1489,
+            "id": 1073,
+            "prevSize": 24,
+            "code": 59095,
+            "name": "camcorder-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 215
+    }, {
+        "icon": {
+            "paths": [
+                "M139.617 85.25l-54.315 54.315 116.395 116.352h-31.061c-23.552 0-42.667 19.114-42.667 42.667v426.665c0 23.552 19.115 42.667 42.667 42.667h512.002c8.747 0 16.469-3.285 23.211-7.804l135.851 135.804 54.272-54.315zM895.97 277.25l-170.667 170.665v-149.331c0-23.552-19.115-42.667-42.667-42.667h-263.724l477.058 477.058v-455.725z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camcorder-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1490,
+            "id": 1072,
+            "prevSize": 24,
+            "code": 59096,
+            "name": "camcorder-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 216
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 448v-149.332c0-23.552-19.115-42.667-42.667-42.667h-512c-23.552 0-42.667 19.115-42.667 42.667v426.665c0 23.552 19.114 42.667 42.667 42.667h512c23.552 0 42.667-19.115 42.667-42.667v-149.333l170.667 170.667v-469.332l-170.667 170.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camcorder"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1491,
+            "id": 1071,
+            "prevSize": 24,
+            "code": 59097,
+            "name": "camcorder"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 217
+    }, {
+        "icon": {
+            "paths": [
+                "M256 0h512c47.13 0 85.333 38.205 85.333 85.333v853.333c0 47.13-38.204 85.333-85.333 85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-853.333c0-47.128 38.205-85.333 85.333-85.333zM512 256c70.694 0 128 57.308 128 128 0 70.694-57.306 128-128 128s-128-57.306-128-128c0-70.692 57.306-128 128-128zM469.333 42.668v85.333h85.333v-85.333h-85.333zM256 170.667l-0 533.333c0-58.91 114.615-106.667 256-106.667s256 47.757 256 106.667v-533.333h-512zM554.667 768h-170.667v85.333h170.667v85.333l128-128-128-128v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camera-front-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1492,
+            "id": 1070,
+            "prevSize": 24,
+            "code": 59098,
+            "name": "camera-front-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 218
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 85.333h426.667v448c0-71.253-142.080-106.667-213.333-106.667s-213.333 35.413-213.333 106.667zM725.333 0h-426.667c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h426.667c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM512 341.333c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333c-46.933 0-84.907 38.4-84.907 85.333s37.973 85.333 84.907 85.333zM597.333 853.333v85.333h213.333v-85.333zM426.667 853.333h-213.333v85.333h213.333v85.333l128-128-128-128v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camera-front"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1493,
+            "id": 1069,
+            "prevSize": 24,
+            "code": 59099,
+            "name": "camera-front"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 219
+    }, {
+        "icon": {
+            "paths": [
+                "M585.869 639.919l-166.443 288.299c29.824 6.613 60.715 10.368 92.544 10.368 102.315 0 196.139-36.096 269.653-96.128l-156.331-270.805zM104.887 639.919c39.211 124.757 134.315 224.384 255.829 270.549l156.203-270.549zM364.173 511.919l-166.315-288.044c-69.675 75.947-112.555 176.853-112.555 288.044 0 29.227 2.987 57.771 8.576 85.333h319.573zM930.061 426.584h-319.573l12.331 21.335 203.264 352.043c69.675-75.947 112.555-176.853 112.555-288.043 0-29.227-2.987-57.771-8.576-85.335zM919.053 383.918c-39.211-124.758-134.315-224.384-255.787-270.55l-156.203 270.55zM401.122 447.919l203.392-352.3c-29.824-6.613-60.715-10.368-92.544-10.368-102.315 0-196.139 36.096-269.653 96.128l156.331 270.807 2.475-4.267z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camera-iris"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1494,
+            "id": 1068,
+            "prevSize": 24,
+            "code": 59100,
+            "name": "camera-iris"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 220
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 725.252c-69.547 0-130.731-33.792-169.728-85.333h169.728c70.699 0 128-57.301 128-128 0-15.061-3.072-29.269-7.851-42.667h88.875c2.816 13.781 4.309 28.032 4.309 42.667 0 117.803-95.531 213.333-213.333 213.333zM511.974 298.584c69.547 0 130.731 33.792 169.728 85.333h-169.728c-70.699 0-128 57.303-128 128.001 0 15.061 3.072 29.269 7.85 42.667h-88.874c-2.816-13.781-4.31-28.032-4.31-42.667 0-117.804 95.531-213.335 213.334-213.335zM853.308 170.584h-135.339l-77.995-85.333h-256l-77.995 85.333h-135.339c-47.104 0-85.333 38.186-85.333 85.333v512.001c0 47.083 38.229 85.333 85.333 85.333h682.667c47.104 0 85.333-38.251 85.333-85.333v-512.001c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camera-party-mode"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1495,
+            "id": 1067,
+            "prevSize": 24,
+            "code": 59101,
+            "name": "camera-party-mode"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 221
+    }, {
+        "icon": {
+            "paths": [
+                "M256 0h512c47.13 0 85.333 38.205 85.333 85.333v853.333c0 47.13-38.204 85.333-85.333 85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-853.333c0-47.128 38.205-85.333 85.333-85.333zM512 85.334c-47.13 0-85.333 38.205-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333zM554.667 768h-170.667v85.333h170.667v85.333l128-128-128-128v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camera-rear-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1496,
+            "id": 1066,
+            "prevSize": 24,
+            "code": 59102,
+            "name": "camera-rear-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 222
+    }, {
+        "icon": {
+            "paths": [
+                "M512 256c-47.36 0-85.333-38.4-85.333-85.333s37.973-85.333 84.907-85.333c46.933 0 85.333 38.4 85.333 85.333 0.427 46.933-37.973 85.333-84.907 85.333zM725.333 0h-426.667c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h426.667c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM597.333 853.333v85.333h213.333v-85.333zM426.667 853.333h-213.333v85.333h213.333v85.333l128-128-128-128v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camera-rear"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1497,
+            "id": 1065,
+            "prevSize": 24,
+            "code": 59103,
+            "name": "camera-rear"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 223
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 661.252v-106.667h-255.999v106.667l-149.333-149.333 149.333-149.335v106.668h255.999v-106.668l149.333 149.335zM853.308 170.584h-135.339l-77.995-85.333h-255.999l-77.995 85.333h-135.339c-47.104 0-85.333 38.229-85.333 85.333v512.001c0 47.147 38.229 85.333 85.333 85.333h682.665c47.104 0 85.333-38.187 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camera-switch"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1498,
+            "id": 1064,
+            "prevSize": 24,
+            "code": 59104,
+            "name": "camera-switch"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 224
+    }, {
+        "icon": {
+            "paths": [
+                "M210.615 270.771c-16.663-16.662-16.663-43.677 0-60.34s43.677-16.663 60.34 0l301.7 241.357c33.323 33.327 33.323 87.356 0 120.683-33.327 33.323-87.356 33.323-120.683 0l-241.357-301.7zM511.974 853.252c188.501 0 341.333-152.789 341.333-341.333 0-94.237-38.178-179.553-99.908-241.318l60.331-60.33c77.18 77.207 124.911 183.851 124.911 301.648 0 235.648-191.019 426.667-426.667 426.667-235.622 0-426.623-190.976-426.667-426.586h85.333c0.044 188.506 152.859 341.252 341.334 341.252zM512 42.667c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.205-85.333-85.333s38.204-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camera-timer"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1499,
+            "id": 1063,
+            "prevSize": 24,
+            "code": 59105,
+            "name": "camera-timer"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 225
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 170.668l128-0.001 85.333-85.333h256l85.333 85.333 128 0.001c47.125 0 85.333 38.205 85.333 85.333v511.999c0 47.13-38.208 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333v-511.999c0-47.128 38.205-85.333 85.333-85.333zM512 298.667c-117.821 0-213.333 95.513-213.333 213.333s95.513 213.333 213.333 213.333c117.82 0 213.333-95.514 213.333-213.333s-95.514-213.333-213.333-213.333zM512 384c70.69 0 128 57.31 128 128 0 70.694-57.31 128-128 128-70.694 0-128-57.306-128-128 0-70.69 57.306-128 128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "camera"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1500,
+            "id": 1062,
+            "prevSize": 24,
+            "code": 59106,
+            "name": "camera"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 226
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c235.639 0 426.667 191.025 426.667 426.667 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.641 191.025-426.667 426.667-426.667zM361.15 300.811l-60.34 60.34 150.85 150.849-150.85 150.848 60.34 60.339 150.85-150.848 150.848 150.852 60.339-60.343-150.848-150.848 150.848-150.849-60.339-60.34-150.848 150.85-150.85-150.85z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cancel"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1501,
+            "id": 1061,
+            "prevSize": 24,
+            "code": 59107,
+            "name": "cancel"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 227
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 426.667c0 47.13-38.205 85.333-85.333 85.333s-85.333-38.204-85.333-85.333v-85.333c0-26.714 4.092-52.472 11.683-76.683l158.984 158.984v3.032zM512 85.334c31.424 0 61.53 5.662 89.344 16.023l-90.662 154.654c-35.2 0.533-65.229 22.376-77.76 53.199l-123.898-123.897c46.804-60.8 120.314-99.978 202.977-99.978zM757.726 269.305l-160.393 160.396v-88.367c0-16.012-4.412-30.993-12.083-43.796l89.954-153.443c38.822 32.158 67.994 75.558 82.522 125.21zM768 558.327l-170.667 170.667v-178.615l170.667-170.667v178.616zM768 853.333c0 47.13-38.204 85.333-85.333 85.333s-85.333-38.204-85.333-85.333v-3.661l170.667-170.667v174.327z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "candycane"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1502,
+            "id": 1060,
+            "prevSize": 24,
+            "code": 59108,
+            "name": "candycane"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 228
+    }, {
+        "icon": {
+            "paths": [
+                "M213.308 554.586l64-192.001h469.333l64 192.001zM746.641 767.919c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.371 0 64 28.672 64 64s-28.629 64-64 64zM277.308 767.919c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.371 0 64 28.672 64 64s-28.629 64-64 64zM807.185 341.72c-8.661-25.131-32.512-43.136-60.544-43.136h-469.333c-28.032 0-51.84 18.005-60.501 43.136l-88.832 255.532v341.333c0 23.552 19.115 42.667 42.667 42.667h42.667c23.595 0 42.667-19.115 42.667-42.667v-42.667h512v42.667c0 23.552 19.115 42.667 42.667 42.667h42.667c23.595 0 42.667-19.115 42.667-42.667v-341.333zM298.641 213.251c35.371 0 64-28.63 64-64 0-42.667-64-115.2-64-115.2s-64 72.533-64 115.2c0 35.37 28.629 64 64 64zM511.974 213.251c35.371 0 64-28.63 64-64 0-42.667-64-115.2-64-115.2s-64 72.533-64 115.2c0 35.37 28.629 64 64 64zM725.308 213.251c35.371 0 64-28.63 64-64 0-42.667-64-115.2-64-115.2s-64 72.533-64 115.2c0 35.37 28.629 64 64 64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "car-wash"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1503,
+            "id": 1059,
+            "prevSize": 24,
+            "code": 59109,
+            "name": "car-wash"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 229
+    }, {
+        "icon": {
+            "paths": [
+                "M213.308 469.252l64-192.001h469.333l64 192.001zM746.641 682.586c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.371 0 64 28.672 64 64s-28.629 64-64 64zM277.308 682.586c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.371 0 64 28.672 64 64s-28.629 64-64 64zM807.185 256.387c-8.661-25.131-32.512-43.136-60.544-43.136h-469.333c-28.032 0-51.84 18.005-60.501 43.136l-88.832 255.532v341.333c0 23.552 19.115 42.667 42.667 42.667h42.667c23.595 0 42.667-19.115 42.667-42.667v-42.667h512v42.667c0 23.552 19.115 42.667 42.667 42.667h42.667c23.595 0 42.667-19.115 42.667-42.667v-341.333l-88.789-255.532z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "car"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1504,
+            "id": 1058,
+            "prevSize": 24,
+            "code": 59110,
+            "name": "car"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 230
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 426.667l-8.533 42.667h-98.133c-11.78 0-21.333 9.553-21.333 21.333s9.553 21.333 21.333 21.333h89.6l-42.667 213.333h-89.6c-11.78 0-21.333 9.553-21.333 21.333s9.553 21.333 21.333 21.333h81.067l-17.067 85.333c0 47.13-38.204 85.333-85.333 85.333s-85.333-38.204-85.333-85.333l-42.667-213.333h64c11.78 0 21.333-9.553 21.333-21.333s-9.553-21.333-21.333-21.333h-72.533l-34.133-170.667c0-51.078 39.891-95.168 97.583-115.703l-59.193-85.816c-13.379-19.398-8.5-45.968 10.897-59.348s45.966-8.5 59.346 10.897l19.366 28.076v-76.774c0-23.564 19.102-42.667 42.667-42.667s42.667 19.103 42.667 42.667v97.469l63.031-74.348c15.236-17.974 42.159-20.192 60.134-4.954s20.19 42.162 4.954 60.136l-90.901 107.223c54.003 21.492 90.782 64.095 90.782 113.14z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "carrot"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1505,
+            "id": 1057,
+            "prevSize": 24,
+            "code": 59111,
+            "name": "carrot"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 231
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 767.919c47.104 0 85.333 38.187 85.333 85.333s-38.229 85.333-85.333 85.333c-47.147 0-84.907-38.187-84.907-85.333s37.76-85.333 84.907-85.333zM42.641 85.251h139.35l40.404 85.333h630.913c23.552 0 42.667 19.072 42.667 42.667 0 7.467-1.92 14.507-5.291 20.565l-152.576 276.866c-14.592 26.197-42.539 43.904-74.624 43.904h-317.824l-38.272 69.504-1.365 5.163c0 5.931 4.778 10.667 10.667 10.667h493.952v85.333h-512c-47.147 0-85.333-38.187-85.333-85.333 0-14.848 3.798-28.843 10.453-41.003l57.672-104.619-153.458-323.713h-85.333v-85.333zM298.641 767.919c47.104 0 85.333 38.187 85.333 85.333s-38.229 85.333-85.333 85.333c-47.147 0-84.907-38.187-84.907-85.333s37.76-85.333 84.907-85.333zM682.667 469.333l118.519-213.333h-539.26l100.741 213.333h320z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cart-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1506,
+            "id": 1056,
+            "prevSize": 24,
+            "code": 59112,
+            "name": "cart-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 232
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 767.919c-47.147 0-84.907 38.187-84.907 85.333s37.76 85.333 84.907 85.333c47.104 0 85.333-38.187 85.333-85.333s-38.229-85.333-85.333-85.333zM42.641 85.251v85.333h85.333l153.458 323.713-57.672 104.619c-6.656 12.16-10.453 26.155-10.453 41.003 0 47.147 38.187 85.333 85.333 85.333h512v-85.333h-493.952c-5.888 0-10.667-4.736-10.667-10.667 0-1.877 0.512-3.669 1.365-5.163l38.272-69.504h317.824c32.085 0 60.032-17.707 74.624-43.904l152.576-276.866c3.371-6.059 5.291-13.098 5.291-20.565 0-23.595-19.115-42.667-42.667-42.667h-630.912l-40.405-85.333zM298.641 767.919c-47.147 0-84.907 38.187-84.907 85.333s37.76 85.333 84.907 85.333c47.104 0 85.333-38.187 85.333-85.333s-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cart"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1507,
+            "id": 1055,
+            "prevSize": 24,
+            "code": 59113,
+            "name": "cart"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 233
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 213.333h853.333v640h-853.333v-640zM853.333 768v-469.333h-682.667v469.333h682.667zM725.333 341.333c0 47.128 38.204 85.333 85.333 85.333v213.333c-47.13 0-85.333 38.204-85.333 85.333h-426.667c0-47.13-38.205-85.333-85.333-85.333v-213.333c47.128 0 85.333-38.205 85.333-85.333h426.667zM725.333 554.667v-42.667c0-47.13-28.655-85.333-64-85.333s-64 38.204-64 85.333v42.667c0 47.13 28.655 85.333 64 85.333s64-38.204 64-85.333zM661.333 469.333c11.78 0 21.333 9.553 21.333 21.333v85.333c0 11.78-9.553 21.333-21.333 21.333-11.785 0-21.333-9.553-21.333-21.333v-85.333c0-11.78 9.549-21.333 21.333-21.333zM554.667 554.667v-42.667c0-47.13-28.655-85.333-64-85.333s-64 38.204-64 85.333v42.667c0 47.13 28.655 85.333 64 85.333s64-38.204 64-85.333zM490.667 469.333c11.78 0 21.333 9.553 21.333 21.333v85.333c0 11.78-9.553 21.333-21.333 21.333-11.785 0-21.333-9.553-21.333-21.333v-85.333c0-11.78 9.549-21.333 21.333-21.333zM341.333 640h42.667v-213.333h-42.667l-42.667 21.333v42.667l42.667-21.333v170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cash-100"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1508,
+            "id": 1054,
+            "prevSize": 24,
+            "code": 59114,
+            "name": "cash-100"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 234
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 256h768v512h-768v-512zM597.333 384c70.69 0 128 57.309 128 128 0 70.694-57.31 128-128 128-70.694 0-128-57.306-128-128 0-70.69 57.306-128 128-128zM384 341.333c0 47.129-38.205 85.333-85.333 85.333v170.667c47.128 0 85.333 38.204 85.333 85.333h426.667c0-47.13 38.204-85.333 85.333-85.333v-170.667c-47.13 0-85.333-38.205-85.333-85.333l-426.667-0zM42.667 426.667h85.333v426.667h682.667v85.333h-768v-512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cash-multiple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1509,
+            "id": 1053,
+            "prevSize": 24,
+            "code": 59115,
+            "name": "cash-multiple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 235
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 767.919h-682.667v-512.001h682.667zM853.308 170.584h-682.667c-47.189 0-84.916 38.187-84.916 85.333l-0.417 512.001c0 47.147 38.144 85.333 85.333 85.333h682.667c47.147 0 85.333-38.187 85.333-85.333v-512.001c0-47.147-38.187-85.333-85.333-85.333zM469.308 725.252h85.333v-42.667h42.667c23.552 0 42.667-19.115 42.667-42.667v-128c0-23.552-19.115-42.667-42.667-42.667h-128v-42.668h170.667v-85.333h-85.333v-42.667h-85.333v42.667h-42.667c-23.552 0-42.667 19.114-42.667 42.667v128.001c0 23.552 19.115 42.667 42.667 42.667h128v42.667h-170.667v85.333h85.333v42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cash-usd"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1510,
+            "id": 1052,
+            "prevSize": 24,
+            "code": 59116,
+            "name": "cash-usd"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 236
+    }, {
+        "icon": {
+            "paths": [
+                "M128 256h768v512h-768v-512zM512 384c70.69 0 128 57.309 128 128 0 70.694-57.31 128-128 128-70.694 0-128-57.306-128-128 0-70.69 57.306-128 128-128zM298.667 341.334c0 47.128-38.205 85.333-85.333 85.333l-0 170.667c47.128 0 85.333 38.204 85.333 85.333h426.667c0-47.13 38.204-85.333 85.333-85.333v-170.667c-47.13 0-85.333-38.205-85.333-85.332l-426.667-0z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cash"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1511,
+            "id": 1051,
+            "prevSize": 24,
+            "code": 59117,
+            "name": "cash"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 237
+    }, {
+        "icon": {
+            "paths": [
+                "M895.974 127.918h-768c-47.147 0-85.333 38.229-85.333 85.333v128h85.333v-128h768v597.335h-298.667v85.333h298.667c47.083 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.251-85.333-85.333-85.333zM42.641 426.584v85.335c212.096 0 384 171.904 384 384h85.333c0-259.2-210.176-469.335-469.333-469.335zM810.641 298.584h-597.333v69.717c168.96 54.613 302.336 187.991 356.949 356.951h240.384zM42.641 597.252v85.333c117.845 0 213.333 95.488 213.333 213.333h85.333c0-164.949-133.75-298.667-298.667-298.667zM42.641 767.919v128h128c0-70.656-57.333-128-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cast-connected"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1512,
+            "id": 1050,
+            "prevSize": 24,
+            "code": 59118,
+            "name": "cast-connected"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 238
+    }, {
+        "icon": {
+            "paths": [
+                "M42.64 426.584v85.335c212.096 0 384 171.904 384 384h85.334c0-259.2-210.177-469.335-469.334-469.335zM42.64 597.252v85.333c117.845 0 213.333 95.488 213.333 213.333h85.333c0-164.949-133.76-298.667-298.667-298.667zM42.64 767.919v128h128c0-70.656-57.344-128-128-128zM895.974 127.918h-768.001c-47.147 0-85.333 38.229-85.333 85.333v128h85.333v-128h768.001v597.335h-298.667v85.333h298.667c47.083 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.251-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cast"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1513,
+            "id": 1049,
+            "prevSize": 24,
+            "code": 59119,
+            "name": "cast"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 239
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 554.667h85.333v85.333h85.333v-85.333h85.333v85.333h85.333v-85.333h85.333v85.333h85.333v-213.333l128-128v-256h85.333l170.667 85.333-170.667 85.333v85.333l128 128v512h-469.333v-128c0-47.13-38.204-85.333-85.333-85.333-47.128 0-85.333 38.204-85.333 85.333v128h-213.333v-384zM768 426.667c-23.565 0-42.667 22.925-42.667 51.2v76.8h85.333v-76.8c0-28.275-19.102-51.2-42.667-51.2z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "castle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1514,
+            "id": 1048,
+            "prevSize": 24,
+            "code": 59120,
+            "name": "castle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 240
+    }, {
+        "icon": {
+            "paths": [
+                "M512 341.333l-56.802 3.823c-36.691-43.53-139.278-153.156-241.865-153.156 0 0-84.11 126.165-1.815 294.993-23.406 35.183-37.724 53.615-40.396 95.881l-82.955 12.373 9.021 41.707 75.294-10.837 5.913 30.174-67.080 40.213 20.172 37.833 61.594-37.948c49.077 104.247 173.357 156.945 318.918 156.945s269.841-52.698 318.916-156.945l61.594 37.948 20.173-37.833-67.081-40.213 5.914-30.174 75.294 10.837 9.024-41.707-82.957-12.373c-2.671-42.266-16.99-60.698-40.397-95.881 82.295-168.827-1.813-294.993-1.813-294.993-102.588 0-205.175 109.626-241.865 153.156l-56.802-3.823zM384 469.333c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667zM640 469.333c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667zM469.333 597.333h85.333l-29.76 59.516c7.398 27.174 32.247 47.151 61.76 47.151 35.345 0 64-28.655 64-64h21.333c0 47.13-38.204 85.333-85.333 85.333-31.872 0-59.665-17.476-74.317-43.366l-0.35 0.7-0.35-0.7c-14.652 25.89-42.445 43.366-74.317 43.366-47.128 0-85.333-38.204-85.333-85.333h21.333c0 35.345 28.654 64 64 64 29.513 0 54.362-19.977 61.76-47.151l-29.76-59.516z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cat"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1515,
+            "id": 1047,
+            "prevSize": 24,
+            "code": 59121,
+            "name": "cat"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 241
+    }, {
+        "icon": {
+            "paths": [
+                "M735.974 767.919h-448v-597.335h448zM597.308 895.919h-170.667v-42.667h170.667zM682.641 42.584h-341.333c-70.699 0-128 57.301-128 128v682.668c0 70.699 57.301 128 128 128h341.333c70.699 0 128-57.301 128-128v-682.668c0-70.7-57.301-128-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cellphone-android"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1516,
+            "id": 1046,
+            "prevSize": 24,
+            "code": 59122,
+            "name": "cellphone-android"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 242
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 639.919h-341.333v-426.668h341.333zM682.641 43.011l-341.333-0.427c-47.147 0-85.333 38.229-85.333 85.333v597.335c0 47.104 38.187 85.333 85.333 85.333h341.333c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.229-84.906-85.333-84.906zM341.308 981.252h341.333v-85.333h-341.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cellphone-dock"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1517,
+            "id": 1045,
+            "prevSize": 24,
+            "code": 59123,
+            "name": "cellphone-dock"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 243
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 767.919h-384v-597.335h384zM490.641 938.586c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.328 0 64 28.672 64 64s-28.672 64-64 64zM661.308 42.584h-341.334c-58.923 0-106.667 47.744-106.667 106.667v725.335c0 58.923 47.744 106.667 106.667 106.667h341.334c58.923 0 106.667-47.744 106.667-106.667v-725.335c0-58.923-47.744-106.667-106.667-106.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cellphone-iphone"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1518,
+            "id": 1044,
+            "prevSize": 24,
+            "code": 59124,
+            "name": "cellphone-iphone"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 244
+    }, {
+        "icon": {
+            "paths": [
+                "M981.333 341.333h-256c-23.467 0-42.667 19.2-42.667 42.667v178.347l85.333 85.333v-221.013h170.667v298.667h-93.013l128 128h7.68c23.467 0 42.667-19.2 42.667-42.667v-426.667c0-23.467-19.2-42.667-42.667-42.667zM170.667 267.52l457.813 457.813h-457.813v-457.813zM81.92 70.4l-54.187 54.187 77.653 77.653c-12.373 14.507-20.053 33.28-20.053 53.76v469.333h-85.333v128h756.48l100.267 100.267 54.187-54.187-829.013-829.013zM938.667 256v-85.333h-647.68l85.333 85.333h562.347z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cellphone-link-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1519,
+            "id": 1043,
+            "prevSize": 24,
+            "code": 59125,
+            "name": "cellphone-link-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 245
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 725.333h-170.667v-298.667h170.667zM981.333 341.333h-256c-23.467 0-42.667 19.2-42.667 42.667v426.667c0 23.467 19.2 42.667 42.667 42.667h256c23.467 0 42.667-19.2 42.667-42.667v-426.667c0-23.467-19.2-42.667-42.667-42.667zM170.667 256h768v-85.333h-768c-46.933 0-85.333 38.4-85.333 85.333v469.333h-85.333v128h597.333v-128h-426.667v-469.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cellphone-link"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1520,
+            "id": 1042,
+            "prevSize": 24,
+            "code": 59126,
+            "name": "cellphone-link"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 246
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 682.667h-341.333v-512h341.333zM682.667 0.427l-341.333-0.427c-46.933 0-85.333 38.4-85.333 85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h341.333c46.933 0 85.333-38.4 85.333-85.333v-682.667c0-46.933-38.4-84.907-85.333-84.907zM640 1024h85.333v-85.333h-85.333zM469.333 1024h85.333v-85.333h-85.333zM298.667 1024h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cellphone-settings"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1521,
+            "id": 1041,
+            "prevSize": 24,
+            "code": 59127,
+            "name": "cellphone-settings"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 247
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 810.586h-426.667v-597.335h426.667zM725.308 43.011l-426.667-0.427c-47.147 0-85.333 38.229-85.333 85.333v768.001c0 47.104 38.186 85.333 85.333 85.333h426.667c47.104 0 85.333-38.229 85.333-85.333v-768.001c0-47.104-38.229-84.906-85.333-84.906z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cellphone"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1522,
+            "id": 1040,
+            "prevSize": 24,
+            "code": 59128,
+            "name": "cellphone"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 248
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 213.333v85.333h-212.954l-148.322 213.333h105.276v85.333h-65.57l158.118 341.333h-94.042l-39.531-85.333h-369.251l-44.093 85.333h-96.052l176.374-341.333h-9.953c-19.163 0-35.376-12.634-40.763-30.029l-135.532-403.515 40.446-13.585c22.338-7.503 46.528 4.524 54.031 26.861l112.497 334.934h186.781l148.322-213.333h-152.448v-85.333h426.667zM404.672 597.333l-88.187 170.667h285.627l-79.057-170.667h-118.383z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chair-school"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1523,
+            "id": 1039,
+            "prevSize": 24,
+            "code": 59129,
+            "name": "chair-school"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 249
+    }, {
+        "icon": {
+            "paths": [
+                "M690.18 836.237l-85.628-148.314c41.993-30.985 70.908-78.673 76.941-133.257h171.221c-6.827 117.713-69.798 220.365-162.534 281.57zM554.667 299.839v-171.222c183.305 10.633 330.082 157.41 340.715 340.716h-171.221c-9.839-88.994-80.499-159.657-169.493-169.494zM298.667 533.333c0 27.366 5.725 53.397 16.044 76.954l-148.314 85.632c-24.567-48.905-38.397-104.128-38.397-162.586 0-193.134 150.968-351.007 341.333-362.050v171.222c-95.999 10.612-170.667 91.999-170.667 190.828zM490.667 896c-126.588 0-238.027-64.858-302.903-163.153l148.311-85.628c34.963 47.381 91.189 78.114 154.592 78.114 27.366 0 53.393-5.726 76.954-16.043l85.632 148.314c-48.905 24.567-104.128 38.396-162.586 38.396z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chart-arc"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1524,
+            "id": 1038,
+            "prevSize": 24,
+            "code": 59130,
+            "name": "chart-arc"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 250
+    }, {
+        "icon": {
+            "paths": [
+                "M744.661 647.859l194.005-336.023v584.164h-853.333v-768h85.333v534.865l234.461-406.1 277.841 160.411 180.608-312.826 73.903 42.667-223.279 386.726-277.841-160.41-252.493 437.334h96.533l187.319-322.701 276.941 159.893z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chart-areaspline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1525,
+            "id": 1037,
+            "prevSize": 24,
+            "code": 59131,
+            "name": "chart-areaspline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 251
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 896h-853.333v-768h85.333v682.667h85.333v-384h170.667v384h85.333v-554.667h170.667v554.667h85.333v-213.333h170.667v298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chart-bar"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1526,
+            "id": 1036,
+            "prevSize": 24,
+            "code": 59132,
+            "name": "chart-bar"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 252
+    }, {
+        "icon": {
+            "paths": [
+                "M128 128h85.333v426.667h170.667v-256h170.667v170.667h170.667v170.667h170.667v256h-768v-768z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chart-histogram"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1527,
+            "id": 1035,
+            "prevSize": 24,
+            "code": 59133,
+            "name": "chart-histogram"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 253
+    }, {
+        "icon": {
+            "paths": [
+                "M682.97 502.511l180.608-312.828 73.903 42.667-223.279 386.726-277.841-160.41-203.226 352h705.532v85.333h-853.333v-768h85.333v620.198l234.462-406.1 277.841 160.412z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chart-line"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1528,
+            "id": 1034,
+            "prevSize": 24,
+            "code": 59134,
+            "name": "chart-line"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 254
+    }, {
+        "icon": {
+            "paths": [
+                "M896 469.333h-341.333v-341.333c188.514 0 341.333 152.82 341.333 341.333zM810.667 554.667c0 118.69-60.578 223.232-152.508 284.39l-164.194-284.39h316.702zM469.333 896c-118.691 0-223.232-60.578-284.391-152.508l276.583-159.684 159.701 276.617c-45.743 22.771-97.323 35.575-151.893 35.575zM128 554.667c0-188.513 152.82-341.333 341.333-341.333v316.702l-305.757 176.529c-22.77-45.747-35.576-97.327-35.576-151.898z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chart-pie"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1529,
+            "id": 1033,
+            "prevSize": 24,
+            "code": 59135,
+            "name": "chart-pie"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 255
+    }, {
+        "icon": {
+            "paths": [
+                "M17.642 572.245l238.337 238.336 60.33-60.331-238.336-238.336zM949.013 238.253l-451.669 451.667-178.005-178.005-60.331 60.331 238.336 238.336 512-511.998zM767.979 298.583l-60.331-60.331-270.635 270.637 60.331 60.331 270.635-270.637z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "check-all"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1530,
+            "id": 1032,
+            "prevSize": 24,
+            "code": 59136,
+            "name": "check-all"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 256
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 42.669h597.334c47.125 0 85.333 38.205 85.333 85.333v554.664c0 30.327-15.821 56.96-39.663 72.094l-344.337 226.573-344.369-226.59c-23.822-15.138-39.63-41.762-39.63-72.077l-0.001-554.664c0-47.128 38.205-85.333 85.333-85.333zM426.667 682.667l384-384-60.339-60.34-323.661 323.661-152.994-152.995-60.34 60.34 213.333 213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "check-bookmark"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1531,
+            "id": 1031,
+            "prevSize": 24,
+            "code": 59137,
+            "name": "check-bookmark"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 257
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 682.667l-192-192 60.34-60.339 131.66 131.661 366.327-366.328 60.339 60.34-426.667 426.667zM512 85.334c57.843 0 112.994 11.51 163.294 32.364l-66.799 66.8c-30.596-9.001-62.985-13.831-96.495-13.831-188.513 0-341.333 152.82-341.333 341.333 0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333h85.333c0 235.644-191.027 426.667-426.667 426.667-235.642 0-426.667-191.023-426.667-426.667 0-235.641 191.025-426.666 426.667-426.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "check-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1532,
+            "id": 1030,
+            "prevSize": 24,
+            "code": 59138,
+            "name": "check-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 258
+    }, {
+        "icon": {
+            "paths": [
+                "M896 298.667l-512 512-234.667-234.667 60.34-60.339 174.327 174.327 451.661-451.661 60.339 60.34z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "check"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1533,
+            "id": 1029,
+            "prevSize": 24,
+            "code": 59139,
+            "name": "check"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 259
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 853.252c-188.502 0-341.334-152.832-341.334-341.333 0-188.503 152.832-341.335 341.334-341.335s341.333 152.832 341.333 341.335c0 188.501-152.832 341.333-341.333 341.333zM511.974 85.251c-235.649 0-426.667 191.019-426.667 426.668 0 235.648 191.018 426.667 426.667 426.667s426.667-191.019 426.667-426.667c0-235.649-191.019-426.668-426.667-426.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkbox-blank-circle-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1534,
+            "id": 1028,
+            "prevSize": 24,
+            "code": 59140,
+            "name": "checkbox-blank-circle-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 260
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 85.251c-235.648 0-426.667 191.019-426.667 426.668 0 235.648 191.019 426.667 426.667 426.667 235.605 0 426.667-191.019 426.667-426.667 0-235.649-191.061-426.668-426.667-426.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkbox-blank-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1535,
+            "id": 1027,
+            "prevSize": 24,
+            "code": 59141,
+            "name": "checkbox-blank-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 261
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 127.918h-597.334c-47.147 0-85.333 38.187-85.333 85.333v597.335c0 47.147 38.187 85.333 85.333 85.333h597.334c47.104 0 85.333-38.187 85.333-85.333v-597.335c0-47.147-38.229-85.333-85.333-85.333zM810.641 213.251v597.335l-597.334 0.043v-597.377h597.334z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkbox-blank-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1536,
+            "id": 1026,
+            "prevSize": 24,
+            "code": 59142,
+            "name": "checkbox-blank-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 262
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 127.918h-597.333c-47.147 0-84.907 38.187-84.907 85.333l-0.426 597.335c0 47.147 38.187 85.333 85.333 85.333h597.333c47.104 0 85.333-38.187 85.333-85.333v-597.335c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkbox-blank"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1537,
+            "id": 1025,
+            "prevSize": 24,
+            "code": 59143,
+            "name": "checkbox-blank"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 263
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 511.919c0 188.501-152.832 341.333-341.333 341.333s-341.334-152.832-341.334-341.333c0-188.503 152.832-341.335 341.334-341.335 32.597 0 64.043 4.864 93.909 13.397l67.072-67.072c-49.707-20.284-103.979-31.659-160.981-31.659-235.649 0-426.667 191.019-426.667 426.668 0 235.648 191.018 426.667 426.667 426.667s426.667-191.019 426.667-426.667zM337.638 430.255l-60.331 60.331 192 192 426.667-426.668-60.331-60.331-366.336 366.337-131.67-131.669z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkbox-marked-circle-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1538,
+            "id": 1024,
+            "prevSize": 24,
+            "code": 59144,
+            "name": "checkbox-marked-circle-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 264
+    }, {
+        "icon": {
+            "paths": [
+                "M426.641 725.252l-213.333-213.333 60.331-60.331 153.003 153.003 323.67-323.671 60.331 60.331zM511.974 85.251c-235.648 0-426.667 191.019-426.667 426.668 0 235.648 191.019 426.667 426.667 426.667 235.605 0 426.667-191.019 426.667-426.667 0-235.649-191.061-426.668-426.667-426.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkbox-marked-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1539,
+            "id": 1023,
+            "prevSize": 24,
+            "code": 59145,
+            "name": "checkbox-marked-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 265
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 810.586l-597.333 0.043v-597.377h426.667v-85.333h-426.667c-47.147 0-85.333 38.187-85.333 85.333v597.335c0 47.147 38.187 85.333 85.333 85.333h597.333c47.104 0 85.333-38.187 85.333-85.333v-341.333h-85.333zM337.638 430.255l-60.331 60.331 192 192 426.667-426.668-60.331-60.331-366.336 366.337-131.669-131.669z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkbox-marked-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1540,
+            "id": 1022,
+            "prevSize": 24,
+            "code": 59146,
+            "name": "checkbox-marked-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 266
+    }, {
+        "icon": {
+            "paths": [
+                "M426.641 725.252l-213.333-213.333 60.331-60.331 153.003 153.003 323.669-323.671 60.331 60.331zM810.641 127.918h-597.333c-47.189 0-85.333 38.187-85.333 85.333v597.335c0 47.147 38.144 85.333 85.333 85.333h597.333c47.147 0 85.333-38.187 85.333-85.333v-597.335c0-47.147-38.187-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkbox-marked"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1541,
+            "id": 1021,
+            "prevSize": 24,
+            "code": 59147,
+            "name": "checkbox-marked"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 267
+    }, {
+        "icon": {
+            "paths": [
+                "M853.303 682.586l0.030-511.919-512.031-0.082 0.005 512.044 511.996-0.043zM938.637 682.586c0 47.147-38.229 85.333-85.333 85.333h-511.996c-47.147 0-85.333-38.187-85.333-85.333l-0.005-512.001c0-47.147 38.186-85.333 85.333-85.333l512.031 0.082c47.13 0 85.333 38.205 85.333 85.333l-0.030 511.919zM682.667 853.333v85.333h-511.999c-47.147 0-85.333-38.187-85.333-85.333l-0.003-554.666h85.333l0.003 554.708 511.999-0.043z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkbox-multiple-blank-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1542,
+            "id": 1020,
+            "prevSize": 24,
+            "code": 59148,
+            "name": "checkbox-multiple-blank-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 268
+    }, {
+        "icon": {
+            "paths": [
+                "M938.637 682.586c0 47.147-38.229 85.333-85.333 85.333h-511.996c-47.147 0-85.333-38.187-85.333-85.333l-0.005-512.001c0-47.147 38.186-85.333 85.333-85.333l512.031 0.082c47.13 0 85.333 38.205 85.333 85.333l-0.030 511.919zM682.662 853.333v85.333h-511.995c-47.147 0-85.333-38.187-85.333-85.333l-0.003-554.665h85.333l0.003 554.708 511.995-0.043z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkbox-multiple-blank"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1543,
+            "id": 1019,
+            "prevSize": 24,
+            "code": 59149,
+            "name": "checkbox-multiple-blank"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 269
+    }, {
+        "icon": {
+            "paths": [
+                "M853.303 682.586l-0.004-256.001h85.333l0.004 256.001c0 47.147-38.229 85.333-85.333 85.333h-511.996c-47.147 0-85.333-38.187-85.333-85.333l-0.005-512.001c0-47.147 38.186-85.333 85.333-85.333l341.33-0v85.333h-341.33l0.005 512.044 511.996-0.043zM465.638 302.254l131.669 131.67 280.994-281.003 60.331 60.33-341.325 341.334-192-192.001 60.331-60.331zM682.667 853.333v85.333h-511.999c-47.147 0-85.333-38.187-85.333-85.333l-0.003-554.666h85.333l0.003 554.708 511.999-0.043z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkbox-multiple-marked-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1544,
+            "id": 1018,
+            "prevSize": 24,
+            "code": 59150,
+            "name": "checkbox-multiple-marked-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 270
+    }, {
+        "icon": {
+            "paths": [
+                "M938.637 682.586c0 47.147-38.229 85.333-85.333 85.333h-511.996c-47.147 0-85.333-38.187-85.333-85.333l-0.005-512.001c0-47.147 38.186-85.333 85.333-85.333l512.031 0.082c47.13 0 85.333 38.205 85.333 85.333l-0.030 511.919zM682.662 853.333v85.333h-511.995c-47.147 0-85.333-38.187-85.333-85.333l-0.003-554.666h85.333l0.003 554.708 511.995-0.043zM554.662 597.333l298.667-298.666-60.331-60.33-238.336 238.335-131.669-131.669-60.331 60.331 192 192z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkbox-multiple-marked"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1545,
+            "id": 1017,
+            "prevSize": 24,
+            "code": 59151,
+            "name": "checkbox-multiple-marked"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 271
+    }, {
+        "icon": {
+            "paths": [
+                "M128 128h768v768h-768v-768zM213.333 213.333v298.667h298.667v298.667h298.667v-298.667h-298.667v-298.667h-298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "checkerboard"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1546,
+            "id": 1016,
+            "prevSize": 24,
+            "code": 59152,
+            "name": "checkerboard"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 272
+    }, {
+        "icon": {
+            "paths": [
+                "M707.669 238.336l60.331 60.331-256 256-256-256 60.332-60.331 195.668 195.669 195.669-195.669zM707.669 494.336l60.331 60.331-256 256-256-256 60.332-60.331 195.668 195.669 195.669-195.669z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chevron-double-down"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1547,
+            "id": 1015,
+            "prevSize": 24,
+            "code": 59153,
+            "name": "chevron-double-down"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 273
+    }, {
+        "icon": {
+            "paths": [
+                "M785.664 316.33l-60.331-60.33-256 256 256 256 60.331-60.331-195.669-195.669 195.669-195.67zM529.664 316.33l-60.331-60.33-256 256 256 256 60.331-60.331-195.669-195.669 195.669-195.67z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chevron-double-left"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1548,
+            "id": 1014,
+            "prevSize": 24,
+            "code": 59154,
+            "name": "chevron-double-left"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 274
+    }, {
+        "icon": {
+            "paths": [
+                "M238.336 316.33l60.331-60.33 256 256-256 256-60.331-60.331 195.669-195.669-195.669-195.67zM494.336 316.33l60.331-60.33 256 256-256 256-60.331-60.331 195.669-195.669-195.669-195.67z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chevron-double-right"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1549,
+            "id": 1013,
+            "prevSize": 24,
+            "code": 59155,
+            "name": "chevron-double-right"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 275
+    }, {
+        "icon": {
+            "paths": [
+                "M316.33 785.664l-60.33-60.331 256-256 256 256-60.331 60.331-195.669-195.669-195.67 195.669zM316.33 529.664l-60.33-60.331 256-256 256 256-60.331 60.331-195.669-195.669-195.67 195.669z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chevron-double-up"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1550,
+            "id": 1012,
+            "prevSize": 24,
+            "code": 59156,
+            "name": "chevron-double-up"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 276
+    }, {
+        "icon": {
+            "paths": [
+                "M316.308 366.254l195.67 195.671 195.669-195.671 60.331 60.331-256 256.001-256.001-256.001 60.331-60.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chevron-down"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1551,
+            "id": 1011,
+            "prevSize": 24,
+            "code": 59157,
+            "name": "chevron-down"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 277
+    }, {
+        "icon": {
+            "paths": [
+                "M657.643 707.588l-195.669-195.669 195.669-195.671-60.331-60.331-256 256.001 256 256 60.331-60.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chevron-left"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1552,
+            "id": 1010,
+            "prevSize": 24,
+            "code": 59158,
+            "name": "chevron-left"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 278
+    }, {
+        "icon": {
+            "paths": [
+                "M366.305 707.584l195.671-195.669-195.671-195.67 60.331-60.331 256.001 256.001-256.001 256-60.331-60.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chevron-right"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1553,
+            "id": 1009,
+            "prevSize": 24,
+            "code": 59159,
+            "name": "chevron-right"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 279
+    }, {
+        "icon": {
+            "paths": [
+                "M316.31 657.583l195.669-195.669 195.669 195.669 60.331-60.331-256-256.001-256 256.001 60.331 60.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "chevron-up"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1554,
+            "id": 1008,
+            "prevSize": 24,
+            "code": 59160,
+            "name": "chevron-up"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 280
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 85.333h85.333v85.333h85.333v85.333h-85.333v145.067l384 153.6v85.333l-85.333-34.133v332.8h-256v-213.333c0-47.13-38.204-85.333-85.333-85.333s-85.333 38.204-85.333 85.333v213.333h-256v-332.8l-85.333 34.133v-85.333l384-153.6v-145.067h-85.333v-85.333h85.333v-85.333zM256 853.333h85.333v-213.333l-42.667-42.667-42.666 42.667v213.333zM682.667 853.333h85.333v-213.333l-42.667-42.667-42.667 42.667v213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "church"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1555,
+            "id": 1007,
+            "prevSize": 24,
+            "code": 59161,
+            "name": "church"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 281
+    }, {
+        "icon": {
+            "paths": [
+                "M512 128c212.079 0 384 171.923 384 384 0 212.079-171.921 384-384 384-212.077 0-384-171.921-384-384 0-212.077 171.923-384 384-384zM253.439 362.685c-82.474 142.851-33.53 325.512 109.319 407.986s441.517-434.832 298.665-517.306c-142.848-82.474-325.51-33.53-407.984 109.32z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cisco-webex"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1556,
+            "id": 1006,
+            "prevSize": 24,
+            "code": 59162,
+            "name": "cisco-webex"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 282
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 639.919h-85.333v-85.333h85.333zM810.641 810.586h-85.333v-85.333h85.333zM554.641 298.584h-85.333v-85.333h85.333zM554.641 469.252h-85.333v-85.335h85.333zM554.641 639.919h-85.333v-85.333h85.333zM554.641 810.586h-85.333v-85.333h85.333zM298.641 469.252h-85.333v-85.335h85.333zM298.641 639.919h-85.333v-85.333h85.333zM298.641 810.586h-85.333v-85.333h85.333zM639.974 469.252v-256.001l-128-128-128 128v85.333h-256v597.335h768v-426.667h-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "city"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1557,
+            "id": 1005,
+            "prevSize": 24,
+            "code": 59163,
+            "name": "city"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 283
+    }, {
+        "icon": {
+            "paths": [
+                "M938.662 170.667l-0.009 597.337c0 47.125-38.204 85.333-85.333 85.333h-682.667c-47.129 0-85.333-38.208-85.333-85.333v-511.999c0-47.128 38.205-85.333 85.333-85.333h31.248l123.163 213.325h128l-123.163-213.325h85.335l123.162 213.324h128l-123.162-213.324h85.333l123.162 213.325h128l-123.162-213.325 182.093-0.005z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "clapperboard"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1558,
+            "id": 1004,
+            "prevSize": 24,
+            "code": 59164,
+            "name": "clapperboard"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 284
+    }, {
+        "icon": {
+            "paths": [
+                "M768 810.667h-512v-59.733c0-85.333 170.667-132.267 256-132.267s256 46.933 256 132.267zM512 298.667c70.827 0 128 57.173 128 128s-57.173 128-128 128c-70.827 0-128-57.173-128-128s57.173-128 128-128zM512 128c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM810.667 128h-178.347c-17.92-49.493-64.853-85.333-120.32-85.333s-102.4 35.84-120.32 85.333h-178.347c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "clipboard-account"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1559,
+            "id": 1003,
+            "prevSize": 24,
+            "code": 59165,
+            "name": "clipboard-account"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 285
+    }, {
+        "icon": {
+            "paths": [
+                "M512 213.333c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667zM554.667 597.333h-85.333v-256h85.333zM554.667 768h-85.333v-85.333h85.333zM810.667 128h-178.347c-17.92-49.493-64.853-85.333-120.32-85.333s-102.4 35.84-120.32 85.333h-178.347c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "clipboard-alert"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1560,
+            "id": 1002,
+            "prevSize": 24,
+            "code": 59166,
+            "name": "clipboard-alert"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 286
+    }, {
+        "icon": {
+            "paths": [
+                "M512 768l-213.333-213.333h128v-170.667h170.667v170.667h128zM512 128c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM810.667 128h-178.347c-17.92-49.493-64.853-85.333-120.32-85.333s-102.4 35.84-120.32 85.333h-178.347c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "clipboard-arrow-down"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1561,
+            "id": 1001,
+            "prevSize": 24,
+            "code": 59167,
+            "name": "clipboard-arrow-down"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 287
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 640h-170.667v128l-213.333-213.333 213.333-213.333v128h170.667zM512 128c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM810.667 128h-178.347c-17.92-49.493-64.853-85.333-120.32-85.333s-102.4 35.84-120.32 85.333h-178.347c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "clipboard-arrow-left"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1562,
+            "id": 1000,
+            "prevSize": 24,
+            "code": 59168,
+            "name": "clipboard-arrow-left"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 288
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 725.333l-170.667-170.667 60.16-60.16 110.507 110.080 281.173-281.173 60.16 60.587zM512 128c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM810.667 128h-178.347c-17.92-49.493-64.853-85.333-120.32-85.333s-102.4 35.84-120.32 85.333h-178.347c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "clipboard-check"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1563,
+            "id": 999,
+            "prevSize": 24,
+            "code": 59169,
+            "name": "clipboard-check"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 289
+    }, {
+        "icon": {
+            "paths": [
+                "M298.674 341.329v-85.332h-85.335v554.67h597.332v-554.67h-85.329v85.332h-426.668zM384.006 170.665c0-70.692 57.304-128.001 127.999-128.001 70.69 0 128 57.309 128 128.001l170.654 0.005c47.13 0 85.333 38.205 85.333 85.332v554.664c0 47.13-38.204 85.333-85.333 85.333h-597.325c-47.128 0-85.333-38.204-85.333-85.333v-554.664c0-47.127 38.205-85.332 85.333-85.332l170.672-0.005zM512.004 127.997c-23.565 0-42.667 19.101-42.667 42.667 0 23.564 19.102 42.667 42.667 42.667s42.667-19.103 42.667-42.667c0-23.566-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "clipboard-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1564,
+            "id": 998,
+            "prevSize": 24,
+            "code": 59170,
+            "name": "clipboard-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 290
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 384h-426.667v-85.333h426.667zM725.333 554.667h-426.667v-85.333h426.667zM597.333 725.333h-298.667v-85.333h298.667zM512 128c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM810.667 128h-178.347c-17.92-49.493-64.853-85.333-120.32-85.333s-102.4 35.84-120.32 85.333h-178.347c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "clipboard-text"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1565,
+            "id": 997,
+            "prevSize": 24,
+            "code": 59171,
+            "name": "clipboard-text"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 291
+    }, {
+        "icon": {
+            "paths": [
+                "M384.006 170.665c0-70.692 57.304-128.001 127.999-128.001 70.69 0 128 57.309 128 128.001l170.654 0.005c47.13 0 85.333 38.205 85.333 85.332v554.664c0 47.13-38.204 85.333-85.333 85.333h-597.325c-47.128 0-85.333-38.204-85.333-85.333v-554.664c0-47.127 38.205-85.332 85.333-85.332l170.672-0.005zM512.004 127.997c-23.569 0-42.667 19.101-42.667 42.668 0 23.564 19.102 42.666 42.667 42.666 23.561 0 42.667-19.103 42.667-42.666 0-23.566-19.102-42.668-42.667-42.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "clipboard"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1566,
+            "id": 996,
+            "prevSize": 24,
+            "code": 59172,
+            "name": "clipboard"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 292
+    }, {
+        "icon": {
+            "paths": [
+                "M640 661.333c0 58.91-47.757 106.667-106.667 106.667s-106.667-47.757-106.667-106.667v-74.667c0-17.673 14.327-32 32-32s32 14.327 32 32v74.667c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667v-154.189c-37.286-11.716-64-43.324-64-80.478 0-47.128 42.978-85.333 96-85.333 53.018 0 96 38.205 96 85.333 0 37.154-26.714 68.766-64 80.478v154.189zM352 341.335c53.019 0 96 38.205 96 85.332 0 37.154-26.714 68.766-64.001 80.478l0 228.855c0 76.582 62.085 138.667 138.667 138.667s138.667-62.084 138.667-138.667v-149.333c0-17.673 14.327-32 32-32s32 14.327 32 32v149.333c0 111.932-90.739 202.667-202.667 202.667-111.93 0-202.667-90.735-202.667-202.667v-228.855c-37.286-11.712-64-43.324-64-80.478 0-47.127 42.98-85.332 96-85.332zM429.069 261.472l-18.158 62.262c-17.313-9.156-37.439-14.4-58.912-14.4-38.873 0-73.331 17.186-94.682 43.655l-51.188-38.391c26.999-34.348 67.368-58.822 113.87-66.615v-2.649c0-88.366 71.635-160 160-160 88.367 0 160 71.634 160 160v2.649c46.502 7.793 86.869 32.268 113.869 66.615l-51.187 38.391c-21.35-26.47-55.808-43.655-94.682-43.655-21.474 0-41.6 5.244-58.91 14.399l-18.163-62.261c14.123-6.25 29.244-10.836 45.073-13.489v-2.649c0-53.019-42.982-96-96-96s-96 42.981-96 96v2.649c15.83 2.653 30.948 7.238 45.069 13.489zM608 394.667c-23.565 0-42.667 14.327-42.667 32s19.102 32 42.667 32c23.565 0 42.667-14.327 42.667-32s-19.102-32-42.667-32zM352 394.667c-23.564 0-42.667 14.327-42.667 32s19.102 32 42.667 32c23.564 0 42.667-14.327 42.667-32s-19.103-32-42.667-32z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "clippy"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1567,
+            "id": 995,
+            "prevSize": 24,
+            "code": 59173,
+            "name": "clippy"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 293
+    }, {
+        "icon": {
+            "paths": [
+                "M640 170.667c188.514 0 341.333 152.82 341.333 341.333s-152.819 341.333-341.333 341.333c-188.514 0-341.333-152.819-341.333-341.333s152.819-341.333 341.333-341.333zM640 256c-141.385 0-256 114.615-256 256s114.615 256 256 256c141.385 0 256-114.615 256-256s-114.615-256-256-256zM597.333 341.334h64v161.356l99.46 99.46-45.257 45.257-118.204-118.208v-187.865zM85.333 768c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h163.503c13.31 30.464 30.075 59.072 49.8 85.333h-213.302zM128 554.667c-23.564 0-42.666-19.102-42.666-42.667s19.102-42.667 42.666-42.667h87.44l-2.106 42.667 2.107 42.667h-87.441zM170.666 341.335c-23.564 0-42.667-19.103-42.667-42.667s19.103-42.667 42.667-42.667l127.968-0.001c-19.724 26.26-36.489 54.869-49.799 85.334l-78.169 0z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "clock-fast"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1568,
+            "id": 994,
+            "prevSize": 24,
+            "code": 59174,
+            "name": "clock-fast"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 294
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 853.248c188.587 0 341.333-152.828 341.333-341.333 0-188.501-152.747-341.331-341.333-341.331s-341.334 152.83-341.334 341.331c0 188.506 152.747 341.333 341.334 341.333zM511.761 85.254c235.776 0 426.88 191.017 426.88 426.665 0 235.652-191.104 426.667-426.88 426.667-235.821 0-426.455-191.014-426.455-426.667 0-235.648 190.634-426.665 426.455-426.665zM533.308 298.587v223.999l192 113.882-32.128 52.523-223.872-134.404v-255.999h64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "clock"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1569,
+            "id": 993,
+            "prevSize": 24,
+            "code": 59175,
+            "name": "clock"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 295
+    }, {
+        "icon": {
+            "paths": [
+                "M512 853.333c-188.16 0-341.333-153.173-341.333-341.333s153.173-341.333 341.333-341.333c188.16 0 341.333 153.173 341.333 341.333s-153.173 341.333-341.333 341.333zM512 85.333c-235.947 0-426.667 190.72-426.667 426.667s190.72 426.667 426.667 426.667c235.947 0 426.667-190.72 426.667-426.667s-190.72-426.667-426.667-426.667zM622.507 341.333l-110.507 110.507-110.507-110.507-60.16 60.16 110.507 110.507-110.507 110.507 60.16 60.16 110.507-110.507 110.507 110.507 60.16-60.16-110.507-110.507 110.507-110.507-60.16-60.16z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "close-circle-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1570,
+            "id": 992,
+            "prevSize": 24,
+            "code": 59176,
+            "name": "close-circle-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 296
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c235.947 0 426.667 190.72 426.667 426.667s-190.72 426.667-426.667 426.667c-235.947 0-426.667-190.72-426.667-426.667s190.72-426.667 426.667-426.667zM665.173 298.668l-153.173 153.172-153.174-153.172-60.16 60.16 153.174 153.172-153.174 153.173 60.16 60.16 153.174-153.173 153.173 153.173 60.16-60.16-153.173-153.173 153.173-153.172-60.16-60.16z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "close-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1571,
+            "id": 991,
+            "prevSize": 24,
+            "code": 59177,
+            "name": "close-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 297
+    }, {
+        "icon": {
+            "paths": [
+                "M622.306 256l-110.306 110.306-110.307-110.306-60.36 60.32 110.327 110.326-110.327 110.327 60.319 60.361 110.348-110.349 110.349 110.349 60.318-60.361-110.327-110.327 110.327-110.327-60.361-60.319zM725.333 128c47.061 0 85.333 38.229 85.333 85.333v426.666c0 47.104-38.272 85.333-85.333 85.333h-170.667v85.333h42.667c23.565 0 42.667 19.102 42.667 42.667h298.667v85.333h-298.667c0 23.565-19.102 42.667-42.667 42.667h-170.667c-23.564 0-42.667-19.102-42.667-42.667h-298.667v-85.333h298.667c0-23.565 19.103-42.667 42.667-42.667h42.667v-85.333h-170.667c-47.189 0-85.333-38.229-85.333-85.333v-426.666c0-47.104 38.144-85.333 85.333-85.333h426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "close-network"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1572,
+            "id": 990,
+            "prevSize": 24,
+            "code": 59178,
+            "name": "close-network"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 298
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 273.493l-60.16-60.16-238.507 238.507-238.507-238.507-60.16 60.16 238.507 238.507-238.507 238.507 60.16 60.16 238.507-238.507 238.507 238.507 60.16-60.16-238.507-238.507 238.507-238.507z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "close"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1573,
+            "id": 989,
+            "prevSize": 24,
+            "code": 59179,
+            "name": "close"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 299
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 469.248h-64v-21.333h-85.333v128h85.333v-21.333h64v42.667c0 23.552-19.072 42.667-42.667 42.667h-128c-23.595 0-42.667-19.115-42.667-42.667v-170.665c0-23.552 19.072-42.667 42.667-42.667h128c23.595 0 42.667 19.114 42.667 42.667zM469.308 469.248h-64.001v-21.333h-85.333v128h85.333v-21.333h64.001v42.667c0 23.552-19.072 42.667-42.668 42.667h-128c-23.595 0-42.667-19.115-42.667-42.667v-170.665c0-23.552 19.072-42.667 42.667-42.667h128c23.596 0 42.668 19.114 42.668 42.667zM810.641 170.583h-597.334c-47.147 0-85.333 38.229-85.333 85.333v511.998c0 47.108 38.187 85.333 85.333 85.333h597.334c47.083 0 85.333-38.225 85.333-85.333v-511.998c0-47.104-38.251-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "closed-caption"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1574,
+            "id": 988,
+            "prevSize": 24,
+            "code": 59180,
+            "name": "closed-caption"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 300
+    }, {
+        "icon": {
+            "paths": [
+                "M426.654 725.252l-149.333-149.333 60.331-60.331 89.003 89.003 220.843-220.844 60.331 60.332zM825.801 428.122c-29.056-146.817-158.464-257.537-313.813-257.537-123.392 0-230.272 69.931-283.691 172.203-128.341 13.823-228.309 122.412-228.309 254.465 0 141.397 114.603 256 256 256h554.667c117.803 0 213.333-95.488 213.333-213.333 0-112.64-87.595-203.904-198.187-211.797z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cloud-check"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1575,
+            "id": 987,
+            "prevSize": 24,
+            "code": 59181,
+            "name": "cloud-check"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 301
+    }, {
+        "icon": {
+            "paths": [
+                "M703.974 682.586h-362.667c-70.699 0-128-57.301-128-128s57.301-128.001 128-128.001c2.005 0 3.883 0.513 5.845 0.599 18.816-73.815 85.163-128.599 164.821-128.599 94.251 0 170.667 76.415 170.667 170.668h21.333c58.923 0 106.667 47.744 106.667 106.667s-47.744 106.667-106.667 106.667zM511.974 85.251c-235.648 0-426.667 191.018-426.667 426.668 0 235.648 191.019 426.667 426.667 426.667s426.667-191.019 426.667-426.667c0-235.65-191.019-426.668-426.667-426.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cloud-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1576,
+            "id": 986,
+            "prevSize": 24,
+            "code": 59182,
+            "name": "cloud-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 302
+    }, {
+        "icon": {
+            "paths": [
+                "M725.321 554.586l-213.333 213.333-213.333-213.333h128v-170.668h170.667v170.668zM825.801 428.122c-29.056-146.817-158.464-257.537-313.813-257.537-123.392 0-230.272 69.931-283.691 172.203-128.341 13.823-228.309 122.412-228.309 254.465 0 141.397 114.603 256 256 256h554.667c117.803 0 213.333-95.488 213.333-213.333 0-112.64-87.595-203.904-198.187-211.797z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cloud-download"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1577,
+            "id": 985,
+            "prevSize": 24,
+            "code": 59183,
+            "name": "cloud-download"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 303
+    }, {
+        "icon": {
+            "paths": [
+                "M329.666 426.584l341.331 341.335h-415.017c-94.251 0-170.667-76.416-170.667-170.667s76.416-170.668 170.667-170.668zM127.981 224.899l117.333 116.906c-136.192 5.845-245.333 117.804-245.333 255.447 0 141.397 114.645 256 256 256h500.35l85.333 85.333 54.315-54.272-713.684-713.729zM825.792 428.122c-29.056-146.817-158.464-257.537-313.813-257.537-63.019 0-121.598 18.517-171.091 50.005l62.379 62.379c32.51-17.109 69.417-27.051 108.713-27.051 129.621 0 234.667 105.045 234.667 234.668v21.333h64c70.699 0 128 57.301 128 128 0 48.341-27.136 89.941-66.688 111.701l61.914 61.952c54.396-38.656 90.108-101.845 90.108-173.653 0-112.64-87.552-203.904-198.187-211.797z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cloud-outline-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1578,
+            "id": 984,
+            "prevSize": 24,
+            "code": 59184,
+            "name": "cloud-outline-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 304
+    }, {
+        "icon": {
+            "paths": [
+                "M810.654 767.919h-554.667c-94.25 0-170.667-76.416-170.667-170.667s76.416-170.668 170.667-170.668h30.379c27.904-98.432 118.23-170.667 225.621-170.667 129.579 0 234.667 105.045 234.667 234.668v21.333h64c70.699 0 128 57.301 128 128s-57.301 128-128 128zM825.801 428.122c-29.056-146.817-158.464-257.537-313.813-257.537-123.392 0-230.272 69.931-283.691 172.203-128.341 13.823-228.309 122.412-228.309 254.465 0 141.397 114.602 256 256 256h554.667c117.803 0 213.333-95.488 213.333-213.333 0-112.64-87.595-203.904-198.187-211.797z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cloud-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1579,
+            "id": 983,
+            "prevSize": 24,
+            "code": 59185,
+            "name": "cloud-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 305
+    }, {
+        "icon": {
+            "paths": [
+                "M597.321 554.586v170.667h-170.666v-170.667h-128l213.333-213.335 213.333 213.335zM825.801 428.122c-29.056-146.817-158.464-257.537-313.813-257.537-123.392 0-230.272 69.931-283.691 172.203-128.341 13.823-228.309 122.412-228.309 254.465 0 141.397 114.603 256 256 256h554.667c117.803 0 213.333-95.488 213.333-213.333 0-112.64-87.595-203.904-198.187-211.797z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cloud-upload"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1580,
+            "id": 982,
+            "prevSize": 24,
+            "code": 59186,
+            "name": "cloud-upload"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 306
+    }, {
+        "icon": {
+            "paths": [
+                "M825.801 428.113c-29.065-146.818-158.464-257.538-313.813-257.538-123.393 0-230.273 69.931-283.709 172.246-128.324 13.781-228.292 122.412-228.292 254.423 0 141.397 114.603 256 256 256h554.668c117.803 0 213.333-95.488 213.333-213.333 0-112.64-87.595-203.904-198.187-211.797z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cloud"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1581,
+            "id": 981,
+            "prevSize": 24,
+            "code": 59187,
+            "name": "cloud"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 307
+    }, {
+        "icon": {
+            "paths": [
+                "M127.974 213.333c0-47.104 38.144-85.333 85.333-85.333h597.333c47.083 0 85.333 38.229 85.333 85.333v597.333c0 47.104-38.251 85.333-85.333 85.333h-597.333c-47.189 0-85.333-38.229-85.333-85.333v-597.333zM256 256v512h170.667v-85.333h-85.333v-341.333h85.333v-85.333h-170.667zM682.667 682.667h-85.333v85.333h170.667v-512l-170.667-0v85.333h85.333v341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "code-array"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1582,
+            "id": 980,
+            "prevSize": 24,
+            "code": 59188,
+            "name": "code-array"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 308
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 128c-47.128 0-85.333 38.203-85.333 85.333v170.667c0 47.13-38.205 85.333-85.333 85.333h-42.667v85.333h42.667c47.128 0 85.333 38.204 85.333 85.333v170.667c0 47.13 39.612 73.903 85.333 85.333h85.333v-85.333h-85.333v-213.333c0-47.13-38.205-85.333-85.333-85.333 47.128 0 85.333-38.204 85.333-85.333v-213.333h85.333v-85.333zM682.667 128c47.13 0 85.333 38.203 85.333 85.333v170.667c0 47.13 38.204 85.333 85.333 85.333h42.667v85.333h-42.667c-47.13 0-85.333 38.204-85.333 85.333v170.667c0 47.13-39.612 73.903-85.333 85.333h-85.333v-85.333h85.333v-213.333c0-47.13 38.204-85.333 85.333-85.333-47.13 0-85.333-38.204-85.333-85.333v-213.333h-85.333v-85.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "code-braces"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1583,
+            "id": 979,
+            "prevSize": 24,
+            "code": 59189,
+            "name": "code-braces"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 309
+    }, {
+        "icon": {
+            "paths": [
+                "M256 554.752h213.333v85.333h-213.333zM554.667 554.667h213.333v85.333h-213.333zM554.667 384.083h213.333v85.335h-213.333zM256 384.083h213.333v85.335h-213.333zM213.333 128c-47.189 0-85.333 38.229-85.333 85.333v597.333c0 47.104 38.144 85.333 85.333 85.333h597.333c47.061 0 85.333-38.229 85.333-85.333v-597.333c0-47.104-38.272-85.333-85.333-85.333h-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "code-equal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1584,
+            "id": 978,
+            "prevSize": 24,
+            "code": 59190,
+            "name": "code-equal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 310
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 554.667h213.333v85.333h-213.333zM554.667 384.083h213.333v85.335h-213.333zM294.75 316l196.169 196.085-196.169 196.083-60.333-60.335 135.833-135.748-135.833-135.752zM213.333 128c-47.189 0-85.333 38.229-85.333 85.333v597.333c0 47.104 38.144 85.333 85.333 85.333h597.333c47.061 0 85.333-38.229 85.333-85.333v-597.333c0-47.104-38.272-85.333-85.333-85.333h-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "code-greater-than-or-equal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1585,
+            "id": 977,
+            "prevSize": 24,
+            "code": 59191,
+            "name": "code-greater-than-or-equal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 311
+    }, {
+        "icon": {
+            "paths": [
+                "M444.083 316l196.169 196.085-196.169 196.083-60.335-60.335 135.834-135.748-135.834-135.752zM213.333 128c-47.189 0-85.333 38.229-85.333 85.333v597.333c0 47.104 38.144 85.333 85.333 85.333h597.333c47.061 0 85.333-38.229 85.333-85.333v-597.333c0-47.104-38.272-85.333-85.333-85.333h-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "code-greater-than"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1586,
+            "id": 976,
+            "prevSize": 24,
+            "code": 59192,
+            "name": "code-greater-than"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 312
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 554.667h213.333v85.333h-213.333zM554.667 384.083h213.333v85.335h-213.333zM430.583 316l60.335 60.333-135.835 135.752 135.835 135.748-60.335 60.335-196.167-196.083zM213.333 128c-47.189 0-85.333 38.229-85.333 85.333v597.333c0 47.104 38.144 85.333 85.333 85.333h597.333c47.061 0 85.333-38.229 85.333-85.333v-597.333c0-47.104-38.272-85.333-85.333-85.333h-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "code-less-than-or-equal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1587,
+            "id": 975,
+            "prevSize": 24,
+            "code": 59193,
+            "name": "code-less-than-or-equal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 313
+    }, {
+        "icon": {
+            "paths": [
+                "M579.917 316l-196.167 196.085 196.167 196.083 60.335-60.335-135.834-135.748 135.834-135.752zM810.667 128c47.189 0 85.333 38.229 85.333 85.333v597.333c0 47.104-38.144 85.333-85.333 85.333h-597.333c-47.061 0-85.333-38.229-85.333-85.333v-597.333c0-47.104 38.272-85.333 85.333-85.333h597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "code-less-than"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1588,
+            "id": 974,
+            "prevSize": 24,
+            "code": 59194,
+            "name": "code-less-than"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 314
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 277.417v120.667l-114.001 114.002 114.001 113.997v120.67l-234.667-234.667zM554.667 274.417l237.666 237.669-237.666 237.666v-120.67l117.001-116.996-117.001-117.002zM213.333 128c-47.189 0-85.333 38.229-85.333 85.333v597.333c0 47.104 38.144 85.333 85.333 85.333h597.333c47.061 0 85.333-38.229 85.333-85.333v-597.333c0-47.104-38.272-85.333-85.333-85.333h-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "code-not-equal-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1589,
+            "id": 973,
+            "prevSize": 24,
+            "code": 59195,
+            "name": "code-not-equal-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 315
+    }, {
+        "icon": {
+            "paths": [
+                "M256 640.085h85.333v85.333h-85.333zM469.333 554.667h298.667v85.333h-298.667zM469.333 384.083h298.667v85.335h-298.667zM256 298.75h85.333v256.002h-85.333zM213.333 128c-47.189 0-85.333 38.229-85.333 85.333v597.333c0 47.104 38.144 85.333 85.333 85.333h597.333c47.061 0 85.333-38.229 85.333-85.333v-597.333c0-47.104-38.272-85.333-85.333-85.333h-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "code-not-equal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1590,
+            "id": 972,
+            "prevSize": 24,
+            "code": 59196,
+            "name": "code-not-equal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 316
+    }, {
+        "icon": {
+            "paths": [
+                "M128 213.333c0-47.104 38.144-85.333 85.333-85.333h597.333c47.083 0 85.333 38.229 85.333 85.333v597.333c0 47.104-38.251 85.333-85.333 85.333h-597.333c-47.189 0-85.333-38.229-85.333-85.333v-597.333zM533.333 469.333h-42.667c-35.345 0-64-28.655-64-64s28.655-64 64-64h42.667c35.345 0 64 28.654 64 64l85.333 0c0-82.474-66.859-149.333-149.333-149.333l-42.667-0c-82.474 0-149.332 66.859-149.332 149.333s66.859 149.334 149.332 149.334h42.667c35.345 0 64 28.651 64 64 0 35.345-28.655 64-64 64h-42.667c-35.345 0-64-28.655-64-64h-85.332c0 82.475 66.859 149.333 149.332 149.333h42.667c82.475 0 149.333-66.859 149.333-149.333s-66.859-149.333-149.333-149.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "code-string"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1591,
+            "id": 971,
+            "prevSize": 24,
+            "code": 59197,
+            "name": "code-string"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 317
+    }, {
+        "icon": {
+            "paths": [
+                "M622.933 708.267l196.267-196.267-196.267-196.267 59.733-59.733 256 256-256 256-59.733-59.733zM401.067 708.267l-196.267-196.267 196.267-196.267-59.733-59.733-256 256 256 256 59.733-59.733z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "code-tags"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1592,
+            "id": 970,
+            "prevSize": 24,
+            "code": 59198,
+            "name": "code-tags"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 318
+    }, {
+        "icon": {
+            "paths": [
+                "M829.995 567.219l-82.56-55.228 82.56-55.223zM545.003 801.318v-153.924l143.074-95.689 115.494 77.244zM512.004 590.067l-116.726-78.076 116.726-78.071 116.715 78.071zM478.997 801.318l-258.572-172.369 115.505-77.244 143.067 95.689zM194.005 456.768l82.567 55.223-82.567 55.228zM478.997 222.666v153.926l-143.067 95.707-115.505-77.265zM545.003 222.666l258.569 172.367-115.494 77.265-143.074-95.707zM895.706 390.691c-0.073-0.485-0.192-0.948-0.273-1.433-0.162-0.932-0.333-1.862-0.576-2.769-0.141-0.545-0.346-1.070-0.512-1.594-0.265-0.81-0.529-1.618-0.853-2.404-0.222-0.545-0.482-1.091-0.734-1.615-0.346-0.75-0.708-1.478-1.122-2.182-0.303-0.527-0.627-1.033-0.939-1.536-0.444-0.689-0.9-1.356-1.399-2.002-0.358-0.485-0.742-0.969-1.126-1.435-0.525-0.604-1.071-1.21-1.647-1.777-0.431-0.442-0.862-0.887-1.314-1.292-0.606-0.545-1.229-1.072-1.869-1.576-0.491-0.384-0.981-0.768-1.493-1.131-0.192-0.122-0.363-0.283-0.546-0.405l-350.997-233.998c-11.085-7.392-25.523-7.392-36.612 0l-350.996 233.998c-0.183 0.122-0.355 0.283-0.545 0.405-0.516 0.363-1.001 0.747-1.486 1.131-0.646 0.503-1.274 1.030-1.867 1.576-0.466 0.405-0.89 0.85-1.324 1.292-0.574 0.567-1.12 1.173-1.636 1.777-0.394 0.466-0.778 0.951-1.141 1.435-0.485 0.646-0.951 1.313-1.385 2.002-0.334 0.503-0.646 1.009-0.948 1.536-0.405 0.704-0.768 1.432-1.123 2.182-0.252 0.524-0.514 1.070-0.736 1.615-0.323 0.786-0.585 1.594-0.85 2.404-0.172 0.524-0.363 1.049-0.514 1.594-0.244 0.908-0.405 1.838-0.577 2.769-0.079 0.485-0.201 0.948-0.262 1.433-0.193 1.414-0.302 2.849-0.302 4.303v233.998c0 1.455 0.109 2.889 0.302 4.322 0.061 0.469 0.183 0.947 0.262 1.412 0.172 0.93 0.334 1.86 0.577 2.769 0.151 0.546 0.341 1.071 0.514 1.596 0.265 0.806 0.527 1.617 0.85 2.423 0.222 0.55 0.484 1.075 0.736 1.596 0.355 0.747 0.718 1.472 1.123 2.202 0.302 0.508 0.614 1.011 0.948 1.515 0.434 0.687 0.9 1.357 1.385 2.001 0.363 0.508 0.747 0.969 1.141 1.434 0.516 0.606 1.062 1.212 1.636 1.779 0.434 0.444 0.858 0.887 1.324 1.289 0.593 0.55 1.221 1.075 1.867 1.579 0.485 0.388 0.969 0.768 1.486 1.131 0.191 0.124 0.363 0.286 0.545 0.401l350.996 234.001c5.547 3.699 11.93 5.555 18.313 5.555 6.374 0 12.753-1.856 18.3-5.555l350.997-234.001c0.183-0.115 0.354-0.277 0.546-0.401 0.512-0.363 1.003-0.742 1.493-1.131 0.64-0.503 1.263-1.028 1.869-1.579 0.452-0.401 0.883-0.845 1.314-1.289 0.576-0.567 1.122-1.173 1.647-1.779 0.384-0.465 0.768-0.926 1.126-1.434 0.499-0.644 0.956-1.314 1.399-2.001 0.311-0.503 0.636-1.007 0.939-1.515 0.414-0.73 0.777-1.455 1.122-2.202 0.252-0.521 0.512-1.045 0.734-1.596 0.324-0.806 0.589-1.617 0.853-2.423 0.166-0.525 0.371-1.050 0.512-1.596 0.243-0.909 0.414-1.839 0.576-2.769 0.081-0.465 0.201-0.943 0.273-1.412 0.179-1.434 0.294-2.867 0.294-4.322v-233.998c0-1.454-0.115-2.889-0.294-4.303z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "codepen"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1593,
+            "id": 969,
+            "prevSize": 24,
+            "code": 59199,
+            "name": "codepen"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 319
+    }, {
+        "icon": {
+            "paths": [
+                "M128 810.675v-85.333l597.777-0.004-74.884-74.889 60.339-60.339 177.89 177.894-177.89 177.894-60.339-60.339 74.884-74.889-597.777 0.004zM725.338 341.333v-128h-85.333v128h85.333zM725.338 128c47.147 0 85.333 38.187 85.333 85.333v128c0 47.147-38.187 85.333-85.333 85.333h-85.333l0.004 42.662c0 94.251-76.416 170.667-170.667 170.667l-170.67 0.004c-94.251 0-170.667-76.416-170.667-170.667l-0.005-341.328 597.338-0.005z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "coffee-to-go"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1594,
+            "id": 968,
+            "prevSize": 24,
+            "code": 59200,
+            "name": "coffee-to-go"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 320
+    }, {
+        "icon": {
+            "paths": [
+                "M85.308 895.919h768v-85.333h-768zM853.308 341.251h-85.333v-128h85.333zM853.308 127.918h-682.667v426.668c0 94.251 76.416 170.667 170.667 170.667h256c94.251 0 170.667-76.416 170.667-170.667v-128.001h85.333c47.147 0 85.333-38.187 85.333-85.333v-128c0-47.147-38.187-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "coffee"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1595,
+            "id": 967,
+            "prevSize": 24,
+            "code": 59201,
+            "name": "coffee"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 321
+    }, {
+        "icon": {
+            "paths": [
+                "M735.974 511.923c0 9.899-0.896 19.584-2.133 29.141l63.147 49.408c5.547 4.518 7.253 12.587 3.499 19.068l-59.733 103.424c-3.712 6.485-11.52 9.092-18.261 6.532l-74.411-29.995c-15.36 11.814-32.213 21.798-50.432 29.35l-11.179 79.147c-1.152 7.125-7.339 12.591-14.763 12.591h-119.467c-7.424 0-13.653-5.466-14.763-12.591l-11.179-79.147c-18.219-7.509-35.072-17.536-50.475-29.35l-74.367 29.995c-6.742 2.56-14.507-0.047-18.262-6.532l-59.733-103.424c-3.756-6.481-2.134-14.549 3.499-19.068l63.104-49.408c-1.238-9.557-2.091-19.243-2.091-29.141s0.853-19.588 2.091-29.146l-63.104-49.404c-5.633-4.527-7.254-12.59-3.499-19.075l59.733-103.424c3.755-6.484 11.52-9.088 18.262-6.528l74.367 29.995c15.404-11.859 32.256-21.844 50.475-29.396l11.179-79.104c1.109-7.125 7.339-12.586 14.763-12.586h119.467c7.424 0 13.611 5.461 14.763 12.586l11.179 79.104c18.219 7.552 35.072 17.578 50.475 29.396l74.368-29.995c6.741-2.56 14.549 0.044 18.261 6.528l59.733 103.424c3.755 6.484 2.048 14.548-3.499 19.075l-63.147 49.404c1.237 9.557 2.133 19.247 2.133 29.146zM810.641 127.922h-597.334c-47.147 0-85.333 38.229-85.333 85.333v597.335c0 47.104 38.186 85.333 85.333 85.333h597.334c47.147 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.187-85.333-85.333-85.333zM511.974 426.589c-47.147 0-85.334 38.231-85.334 85.335s38.187 85.333 85.334 85.333c47.104 0 85.333-38.229 85.333-85.333s-38.229-85.335-85.333-85.335z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cog-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1596,
+            "id": 966,
+            "prevSize": 24,
+            "code": 59202,
+            "name": "cog-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 322
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 661.248c-82.475 0-149.334-66.859-149.334-149.333 0-82.47 66.859-149.331 149.334-149.331s149.333 66.861 149.333 149.331c0 82.475-66.859 149.333-149.333 149.333zM828.945 553.562c1.792-13.696 2.987-27.524 2.987-41.647 0-14.118-1.195-27.947-2.987-41.643l90.155-70.569c8.021-6.484 10.368-18.005 5.035-27.221l-85.333-147.797c-5.291-9.216-16.469-12.971-26.112-9.258l-106.197 42.794c-22.016-16.896-46.123-31.19-72.107-41.943l-16-113.065c-1.621-10.156-10.453-17.964-21.077-17.964h-170.667c-10.667 0-19.456 7.807-21.077 17.964l-16 113.023c-26.027 10.794-50.134 25.089-72.15 41.984l-106.155-42.794c-9.642-3.713-20.822 0.042-26.112 9.258l-85.333 147.797c-5.333 9.216-2.987 20.737 5.035 27.221l90.112 70.569c-1.792 13.653-2.987 27.524-2.987 41.643 0 14.123 1.195 27.994 2.987 41.647l-90.112 70.528c-8.022 6.524-10.368 18.044-5.035 27.264l85.333 147.793c5.29 9.216 16.47 12.975 26.112 9.259l106.198-42.795c22.016 16.896 46.122 31.189 72.107 41.946l16 113.062c1.621 10.159 10.41 17.963 21.077 17.963h170.667c10.624 0 19.456-7.804 21.077-17.963l16-113.062c25.941-10.795 50.048-25.050 72.064-41.984l106.24 42.833c9.643 3.716 20.821-0.043 26.112-9.259l85.333-147.793c5.333-9.22 2.987-20.74-5.035-27.264l-90.155-70.528z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cog"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1597,
+            "id": 965,
+            "prevSize": 24,
+            "code": 59203,
+            "name": "cog"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 323
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c235.639 0 426.667 191.025 426.667 426.667 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667zM512 170.667c-188.513 0-341.333 152.82-341.333 341.333 0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333c0-188.513-152.819-341.333-341.333-341.333zM469.333 725.333v-42.667h-85.333v-85.333h170.667v-42.667h-128c-23.552 0-42.667-19.115-42.667-42.667v-128c0-23.552 19.115-42.667 42.667-42.667h42.667v-42.667h85.333v42.667h85.333v85.333h-170.667v42.667h128c23.552 0 42.667 19.115 42.667 42.667v128c0 23.552-19.115 42.667-42.667 42.667h-42.667v42.667h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "coin"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1598,
+            "id": 964,
+            "prevSize": 24,
+            "code": 59204,
+            "name": "coin"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 324
+    }, {
+        "icon": {
+            "paths": [
+                "M-0.013 1023.915h1024v-170.667l-1023.988 0.085-0.012 170.581z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "color-helper"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1599,
+            "id": 963,
+            "prevSize": 24,
+            "code": 59205,
+            "name": "color-helper"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 325
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.953 12.382-29.724 12.493l-0.053 0.060h-21.333zM426.666 682.667v131.213l131.213-131.213h295.454v-511.999h-682.667l0 511.999h256zM682.667 597.333h-341.333v-42.667c0-56.832 113.792-85.333 170.667-85.333s170.667 28.501 170.667 85.333v42.667zM512 256c47.083 0 85.333 38.229 85.333 85.333 0 47.061-38.251 85.333-85.333 85.333s-85.333-38.272-85.333-85.333c0-47.104 38.251-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-account-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1600,
+            "id": 962,
+            "prevSize": 24,
+            "code": 59206,
+            "name": "comment-account-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 326
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.954 12.382-29.725 12.493l-0.053 0.060h-21.333zM682.667 597.333v-42.667c0-56.832-113.792-85.333-170.667-85.333s-170.667 28.501-170.667 85.333v42.667h341.333zM512 256c-47.083 0-85.333 38.229-85.333 85.333 0 47.061 38.251 85.333 85.333 85.333s85.333-38.272 85.333-85.333c0-47.104-38.251-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-account"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1601,
+            "id": 961,
+            "prevSize": 24,
+            "code": 59207,
+            "name": "comment-account"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 327
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.953 12.382-29.724 12.493l-0.053 0.060h-21.333zM426.666 682.667v131.213l131.213-131.213h295.454v-511.999h-682.667l0 511.999h256zM554.667 426.667h-85.333v-170.667h85.333v170.667zM554.667 597.333h-85.333v-85.333h85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-alert-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1602,
+            "id": 960,
+            "prevSize": 24,
+            "code": 59208,
+            "name": "comment-alert-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 328
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.954 12.382-29.725 12.493l-0.053 0.060h-21.333zM554.667 426.667v-170.667h-85.333v170.667h85.333zM554.667 597.333v-85.333h-85.333v85.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-alert"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1603,
+            "id": 959,
+            "prevSize": 24,
+            "code": 59209,
+            "name": "comment-alert"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 329
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.953 12.382-29.724 12.493l-0.053 0.060h-21.333zM426.666 682.667v131.213l131.213-131.213h295.454v-511.999h-682.667v511.999h256zM703.996 341.336l-234.662 234.664-149.333-149.333 60.34-60.339 88.994 88.994 174.323-174.325 60.339 60.34z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-check-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1604,
+            "id": 958,
+            "prevSize": 24,
+            "code": 59210,
+            "name": "comment-check-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 330
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.954 12.382-29.725 12.493l-0.053 0.060h-21.333zM426.667 640l341.333-341.333-60.169-60.583-281.165 281.17-110.507-110.080-60.16 60.16 170.667 170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-check"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1605,
+            "id": 957,
+            "prevSize": 24,
+            "code": 59211,
+            "name": "comment-check"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 331
+    }, {
+        "icon": {
+            "paths": [
+                "M512.026 981.333c-23.565 0-42.667-19.102-42.667-42.667v-128h-170.665c-47.128 0-85.333-38.204-85.333-85.333l0.401-426.748c0-47.147 37.802-85.333 84.906-85.333h597.333c47.104 0 85.333 38.186 85.333 85.333v426.667c0 47.104-38.229 85.333-85.333 85.333l-174.737 0.068-158.123 158.127c-8.222 8.218-18.957 12.382-29.726 12.493l-0.055 0.060h-21.333zM554.692 725.333v131.213l131.213-131.213h210.121v-426.665h-597.332v426.665h255.999zM128 640h-85.333l0-512c0-46.933 38.4-85.333 85.333-85.333h682.666v85.333h-682.666l-0 512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-multipe-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1606,
+            "id": 956,
+            "prevSize": 24,
+            "code": 59212,
+            "name": "comment-multipe-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 332
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.953 12.382-29.724 12.493l-0.053 0.060h-21.333zM426.666 682.667l0 131.213 131.213-131.213h295.454v-511.999h-682.667l0 511.999h256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1607,
+            "id": 955,
+            "prevSize": 24,
+            "code": 59213,
+            "name": "comment-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 333
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.953 12.382-29.724 12.493l-0.053 0.060h-21.333zM426.666 682.667v131.213l131.213-131.213h295.454v-511.999h-682.667l0 511.999h256zM469.333 256h85.333v128h128v85.333h-128v128h-85.333v-128h-128v-85.333h128v-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-plus-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1608,
+            "id": 954,
+            "prevSize": 24,
+            "code": 59214,
+            "name": "comment-plus-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 334
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.953 12.382-29.724 12.493l-0.053 0.060h-21.333zM426.666 682.667l0 131.213 131.213-131.213h295.454v-511.999h-682.667l0 511.999h256zM725.333 469.333h-85.333v-85.333h85.333v85.333zM554.667 469.333h-85.333v-85.333h85.333v85.333zM384 469.333h-85.333v-85.333h85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-processing-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1609,
+            "id": 953,
+            "prevSize": 24,
+            "code": 59215,
+            "name": "comment-processing-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 335
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.953 12.382-29.724 12.493l-0.053 0.060h-21.333zM725.333 469.333v-85.333h-85.333v85.333h85.333zM554.667 469.333v-85.333h-85.333v85.333h85.333zM384 469.333v-85.333h-85.333v85.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-processing"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1610,
+            "id": 952,
+            "prevSize": 24,
+            "code": 59216,
+            "name": "comment-processing"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 336
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.953 12.382-29.724 12.493l-0.053 0.060h-21.333zM426.666 682.667l0 131.213 131.213-131.213h295.454v-511.998h-682.667v511.998h256zM401.672 256l110.328 110.327 110.327-110.327 60.339 60.34-110.327 110.327 110.327 110.327-60.339 60.339-110.327-110.327-110.327 110.327-60.34-60.339 110.327-110.327-110.327-110.325 60.338-60.341z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-remove-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1611,
+            "id": 951,
+            "prevSize": 24,
+            "code": 59217,
+            "name": "comment-remove-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 337
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.953 12.382-29.724 12.493l-0.053 0.060h-21.333zM426.666 682.667v131.213l131.213-131.213h295.454v-511.999h-682.667v511.999h256zM256 298.667h512v85.333h-512v-85.333zM256 469.333h384v85.333h-384v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-text-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1612,
+            "id": 950,
+            "prevSize": 24,
+            "code": 59218,
+            "name": "comment-text-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 338
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.954 12.382-29.725 12.493l-0.053 0.060h-21.333zM213.334 213.334l-0 85.333h597.333v-85.333h-597.333zM213.333 384v85.333h341.333v-85.333h-341.333zM213.333 554.667v85.333h426.667v-85.333h-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment-text"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1613,
+            "id": 949,
+            "prevSize": 24,
+            "code": 59219,
+            "name": "comment-text"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 339
+    }, {
+        "icon": {
+            "paths": [
+                "M384 938.667c-23.564 0-42.667-19.102-42.667-42.667l-0-128h-170.666c-47.128 0-85.333-38.204-85.333-85.333l0.401-512.082c0-47.147 37.802-85.333 84.906-85.333h682.667c47.104 0 85.333 38.186 85.333 85.333v512.001c0 47.104-38.229 85.333-85.333 85.333l-260.070 0.068-158.127 158.127c-8.218 8.218-18.954 12.382-29.725 12.493l-0.053 0.060h-21.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "comment"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1614,
+            "id": 948,
+            "prevSize": 24,
+            "code": 59220,
+            "name": "comment"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 340
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 127.918h-213.333v85.333h213.333v554.668l-213.333-256v384h213.333c47.104 0 85.333-38.187 85.333-85.333v-597.335c0-47.147-38.229-85.333-85.333-85.333zM426.641 767.919h-213.333l213.333-256zM426.641 127.918h-213.333c-47.147 0-85.333 38.187-85.333 85.333v597.335c0 47.147 38.186 85.333 85.333 85.333h213.333v85.333h85.334v-938.668h-85.334v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "compare"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1615,
+            "id": 947,
+            "prevSize": 24,
+            "code": 59221,
+            "name": "compare"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 341
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 725.333l136.533-290.133 290.133-136.533-136.533 290.133-290.133 136.533zM512 473.6c-21.21 0-38.4 17.19-38.4 38.4s17.19 38.4 38.4 38.4c21.21 0 38.4-17.19 38.4-38.4s-17.19-38.4-38.4-38.4zM512 85.334c235.639 0 426.667 191.025 426.667 426.666 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.666 426.667-426.666zM512 170.667c-188.513 0-341.333 152.82-341.333 341.333s152.82 341.333 341.333 341.333c188.514 0 341.333-152.819 341.333-341.333s-152.819-341.333-341.333-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "compass-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1616,
+            "id": 946,
+            "prevSize": 24,
+            "code": 59222,
+            "name": "compass-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 342
+    }, {
+        "icon": {
+            "paths": [
+                "M605.517 605.457l-349.526 162.479 162.432-349.571 349.568-162.43zM511.991 85.268c-235.648 0-426.667 191.018-426.667 426.668 0 235.601 191.019 426.667 426.667 426.667s426.667-191.066 426.667-426.667c0-235.65-191.019-426.668-426.667-426.668zM511.991 464.998c-25.899 0-46.933 20.992-46.933 46.938 0 25.899 21.035 46.929 46.933 46.929 25.941 0 46.933-21.030 46.933-46.929 0-25.946-20.992-46.938-46.933-46.938z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "compass"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1617,
+            "id": 945,
+            "prevSize": 24,
+            "code": 59223,
+            "name": "compass"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 343
+    }, {
+        "icon": {
+            "paths": [
+                "M853.291 810.586v-512.001h-682.659l0 512.044 682.659-0.043zM853.291 127.918c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.147-38.229 85.333-85.333 85.333h-682.661c-47.104 0-85.333-38.187-85.333-85.333v-597.335c0-47.104 38.229-85.333 85.333-85.333h682.661zM554.667 725.333v-85.333h213.333v85.333h-213.333zM408.763 555.072l-171.071-171.072h120.68l140.901 140.902c16.661 16.661 16.661 43.678 0 60.339l-140.093 140.092h-120.68l170.263-170.261z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "console"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1618,
+            "id": 944,
+            "prevSize": 24,
+            "code": 59224,
+            "name": "console"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 344
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 896h-469.333v-597.333h469.333zM810.667 213.333h-469.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h469.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM682.667 42.667h-512c-46.933 0-85.333 38.4-85.333 85.333v597.333h85.333v-597.333h512v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "content-copy"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1619,
+            "id": 943,
+            "prevSize": 24,
+            "code": 59225,
+            "name": "content-copy"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 345
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 128l-256 256 85.333 85.333 298.667-298.667v-42.667zM512 533.333c-11.947 0-21.333-9.387-21.333-21.333s9.387-21.333 21.333-21.333c11.947 0 21.333 9.387 21.333 21.333s-9.387 21.333-21.333 21.333zM256 853.333c-46.933 0-85.333-37.973-85.333-85.333s38.4-85.333 85.333-85.333c46.933 0 85.333 37.973 85.333 85.333s-38.4 85.333-85.333 85.333zM256 341.333c-46.933 0-85.333-37.973-85.333-85.333s38.4-85.333 85.333-85.333c46.933 0 85.333 37.973 85.333 85.333s-38.4 85.333-85.333 85.333zM411.307 325.973c9.813-21.333 15.36-44.8 15.36-69.973 0-94.293-76.373-170.667-170.667-170.667s-170.667 76.373-170.667 170.667c0 94.293 76.373 170.667 170.667 170.667 25.173 0 48.64-5.547 69.973-15.36l100.693 100.693-100.693 100.693c-21.333-9.813-44.8-15.36-69.973-15.36-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667c94.293 0 170.667-76.373 170.667-170.667 0-25.173-5.547-48.64-15.36-69.973l100.693-100.693 298.667 298.667h128v-42.667l-527.36-527.36z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "content-cut"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1620,
+            "id": 942,
+            "prevSize": 24,
+            "code": 59226,
+            "name": "content-cut"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 346
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 725.333h-298.667c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h512v85.333h-512v512h298.667v-85.333l170.667 128-170.667 128v-85.333zM810.667 896v-597.333h-469.333v256h-85.333v-256c0-46.933 38.4-85.333 85.333-85.333h469.333c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333h-469.333c-46.933 0-85.333-38.4-85.333-85.333v-85.333h85.333v85.333h469.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "content-duplicate"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1621,
+            "id": 941,
+            "prevSize": 24,
+            "code": 59227,
+            "name": "content-duplicate"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 347
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 853.333h-597.333v-682.667h85.333v128h426.667v-128h85.333zM512 85.333c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM810.667 85.333h-178.347c-17.92-49.493-64.853-85.333-120.32-85.333s-102.4 35.84-120.32 85.333h-178.347c-46.933 0-85.333 38.4-85.333 85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-682.667c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "content-paste"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1622,
+            "id": 940,
+            "prevSize": 24,
+            "code": 59228,
+            "name": "content-paste"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 348
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 298.667v-170.667h-426.667v170.667h426.667zM597.333 725.333c70.827 0 128-57.173 128-128s-57.173-128-128-128c-70.827 0-128 57.173-128 128s57.173 128 128 128zM810.667 42.667l170.667 170.667v512c0 46.933-38.4 85.333-85.333 85.333h-597.333c-47.36 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 37.973-85.333 85.333-85.333h512zM42.668 298.668h85.333l-0.001 597.332h597.333v85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333l0-597.332z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "content-save-all"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1623,
+            "id": 939,
+            "prevSize": 24,
+            "code": 59229,
+            "name": "content-save-all"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 349
+    }, {
+        "icon": {
+            "paths": [
+                "M640 384h-426.667v-170.667h426.667zM512 810.667c-70.827 0-128-57.173-128-128s57.173-128 128-128c70.827 0 128 57.173 128 128s-57.173 128-128 128zM725.333 128h-512c-47.36 0-85.333 38.4-85.333 85.333v597.333c0 46.933 37.973 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-512l-170.667-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "content-save"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1624,
+            "id": 938,
+            "prevSize": 24,
+            "code": 59230,
+            "name": "content-save"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 350
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 661.252h-213.333v64h213.333zM810.641 810.586l-597.334 0.043 597.334-597.377zM234.641 319.918h85.333v-85.333h64v85.333h85.334v64h-85.334v85.335h-64v-85.335h-85.333zM810.641 127.918h-597.334c-47.147 0-85.333 38.187-85.333 85.333v597.335c0 47.147 38.187 85.333 85.333 85.333h597.334c47.104 0 85.333-38.187 85.333-85.333v-597.335c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "contrast-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1625,
+            "id": 937,
+            "prevSize": 24,
+            "code": 59231,
+            "name": "contrast-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 351
+    }, {
+        "icon": {
+            "paths": [
+                "M511.97 853.252c-94.251 0-179.584-38.187-241.365-99.968l482.73-482.732c61.781 61.738 99.968 147.115 99.968 241.367 0 188.544-152.832 341.333-341.333 341.333zM255.97 341.251h85.333v-85.333h64v85.333h85.333v64h-85.333v85.335h-64v-85.335h-85.333zM511.97 85.251c-235.648 0-426.667 191.019-426.667 426.668 0 235.648 191.019 426.667 426.667 426.667s426.667-191.019 426.667-426.667c0-235.649-191.019-426.668-426.667-426.668zM511.97 682.586h213.333v-64h-213.333v64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "contrast-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1626,
+            "id": 936,
+            "prevSize": 24,
+            "code": 59232,
+            "name": "contrast-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 352
+    }, {
+        "icon": {
+            "paths": [
+                "M186.918 891.831c-25.658-8.346-45.98-28.514-54.53-54.080l705.364-705.364c25.566 8.55 45.734 28.872 54.080 54.53l-704.914 704.914zM853.329 682.671v85.333l-298.662-0.004v-85.333l298.662 0.004zM127.997 256.003l128.003-0.003-0.003-127.998h85.333l0.003 127.998 127.997 0.003v85.332l-127.996-0.003-0.003 128.004h-85.334l0.003-128.003-128.003 0.003v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "contrast"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1627,
+            "id": 935,
+            "prevSize": 24,
+            "code": 59233,
+            "name": "contrast"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 353
+    }, {
+        "icon": {
+            "paths": [
+                "M512 258.51c73.621 0 285.282-184.052 395.712 36.811 110.43 220.861 82.825 515.346 9.203 515.346-184.051 0-73.621-184.051-404.915-184.051s-220.863 184.051-404.915 184.051c-73.621 0-101.229-294.485 9.203-515.346 110.432-220.863 322.091-36.811 395.712-36.811zM512 320c-35.345 0-64 28.654-64 64s28.655 64 64 64c35.345 0 64-28.654 64-64s-28.655-64-64-64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "controller-xbox"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1628,
+            "id": 934,
+            "prevSize": 24,
+            "code": 59234,
+            "name": "controller-xbox"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 354
+    }, {
+        "icon": {
+            "paths": [
+                "M448 768c11.78 0 21.333 9.553 21.333 21.333s-9.553 21.333-21.333 21.333c-11.78 0-21.333-9.553-21.333-21.333s9.553-21.333 21.333-21.333zM576 768c11.78 0 21.333 9.553 21.333 21.333s-9.553 21.333-21.333 21.333c-11.78 0-21.333-9.553-21.333-21.333s9.553-21.333 21.333-21.333zM426.667 469.333c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667zM597.333 469.333c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667zM768 768c0 94.255-114.615 170.667-256 170.667s-256-76.412-256-170.667c0-38.421 19.043-73.877 51.181-102.4-32.138-42.786-51.181-95.97-51.181-153.6l5.26-51.878c-23.056 6.251-51.025 6.255-73.558-0.205-43.423-12.45-109.186-61.117-99.444-95.095s91.302-40.399 134.725-27.948c25.352 7.27 52.199 25.129 68.215 45.496l24.276-34.435c-25.766-47.011-16.809-177.269 111.191-219.936l-3.925 5.876-0.106 0.171c-11.622 18.702-42.368 78.202-10.101 141.995 30.58-12.906 64.189-20.041 99.466-20.041s68.885 7.135 99.465 20.041c32.269-63.793 1.523-123.293-10.099-141.995l-4.032-6.046c128 42.667 136.956 172.925 111.189 219.936l24.277 34.435c16.017-20.367 42.863-38.226 68.215-45.496 43.422-12.451 124.983-6.029 134.724 27.948 9.745 33.977-56.021 82.644-99.443 95.094-22.532 6.46-50.5 6.455-73.557 0.205l5.261 51.878c0 57.63-19.042 110.814-51.183 153.6 32.141 28.523 51.183 63.979 51.183 102.4zM512 682.667c-94.257 0-170.667 38.204-170.667 85.333s76.41 85.333 170.667 85.333c94.255 0 170.667-38.204 170.667-85.333s-76.412-85.333-170.667-85.333zM512 597.333c47.885 0 92.702 8.764 131.034 24.021 24.742-29.615 39.633-67.746 39.633-109.355 0-94.256-76.412-170.666-170.667-170.666-94.257 0-170.667 76.41-170.667 170.666 0 41.609 14.89 79.74 39.632 109.355 38.332-15.258 83.146-24.021 131.035-24.021zM601.365 134.046l-0.107-0.17z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cow"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1629,
+            "id": 933,
+            "prevSize": 24,
+            "code": 59235,
+            "name": "cow"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 355
+    }, {
+        "icon": {
+            "paths": [
+                "M895.953 341.292v-85.333l-597.323-0.020v85.333l597.323 0.020zM895.962 682.603l-0.013-213.299-597.324-0.021 0.016 213.299 597.321 0.021zM895.953 170.625c47.147 0 85.333 38.142 85.333 85.333l0.009 426.644c0 47.194-38.182 85.333-85.333 85.333l-597.321-0.021c-47.148 0-85.333-38.14-85.333-85.333l0.416-426.644c0-47.191 37.759-85.333 84.907-85.333l597.323 0.021zM128 853.333h640v85.333l-639.99-0.021c-47.148 0-85.333-38.144-85.333-85.333l-0.010-469.312h85.333v469.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "credit-card-multiple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1630,
+            "id": 932,
+            "prevSize": 24,
+            "code": 59236,
+            "name": "credit-card-multiple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 356
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 341.25h-682.667v-85.333h682.667zM853.308 767.915h-682.667v-256h682.667zM853.308 170.583h-682.667c-47.147 0-84.906 38.143-84.906 85.333l-0.427 511.998c0 47.194 38.186 85.333 85.333 85.333h682.667c47.147 0 85.333-38.14 85.333-85.333v-511.998c0-47.19-38.187-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "credit-card"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1631,
+            "id": 931,
+            "prevSize": 24,
+            "code": 59237,
+            "name": "credit-card"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 357
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 127.918h-170.667v85.333h170.667v170.667h85.333v-170.667c0-47.104-38.187-85.333-85.333-85.333zM810.641 810.586h-170.667v85.333h170.667c47.147 0 85.333-38.187 85.333-85.333v-170.667h-85.333zM213.308 639.919h-85.333v170.667c0 47.147 38.229 85.333 85.333 85.333h170.667v-85.333h-170.667zM127.974 213.251v170.667h85.333v-170.667h170.667v-85.333h-170.667c-47.104 0-85.333 38.229-85.333 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "crop-free"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1632,
+            "id": 930,
+            "prevSize": 24,
+            "code": 59238,
+            "name": "crop-free"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 358
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 725.252h-597.333v-426.668h597.333zM810.641 213.251h-597.333c-47.104 0-85.333 38.229-85.333 85.333v426.668c0 47.147 38.229 85.333 85.333 85.333h597.333c47.147 0 85.333-38.187 85.333-85.333v-426.668c0-47.104-38.187-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "crop-landscape"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1633,
+            "id": 929,
+            "prevSize": 24,
+            "code": 59239,
+            "name": "crop-landscape"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 359
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 810.586h-426.666v-597.335h426.666zM725.308 127.918h-426.666c-47.104 0-85.333 38.229-85.333 85.333v597.335c0 47.147 38.229 85.333 85.333 85.333h426.666c47.147 0 85.333-38.187 85.333-85.333v-597.335c0-47.104-38.187-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "crop-portrait"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1634,
+            "id": 928,
+            "prevSize": 24,
+            "code": 59240,
+            "name": "crop-portrait"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 360
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 767.919h-512v-512.001h512zM767.974 170.584h-512c-47.104 0-85.333 38.229-85.333 85.333v512.001c0 47.147 38.229 85.333 85.333 85.333h512c47.147 0 85.333-38.187 85.333-85.333v-512.001c0-47.104-38.187-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "crop-square"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1635,
+            "id": 927,
+            "prevSize": 24,
+            "code": 59241,
+            "name": "crop-square"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 361
+    }, {
+        "icon": {
+            "paths": [
+                "M298.641 725.252v-682.668h-85.333v170.667h-170.667v85.333h170.667v426.668c0 47.147 38.229 85.333 85.333 85.333h426.667v170.667h85.333v-170.667h170.667v-85.333zM725.308 639.919h85.333v-341.335c0-47.147-38.187-85.333-85.333-85.333h-341.333v85.333h341.333v341.335z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "crop"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1636,
+            "id": 926,
+            "prevSize": 24,
+            "code": 59242,
+            "name": "crop"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 362
+    }, {
+        "icon": {
+            "paths": [
+                "M512 341.333c94.255 0 170.667 76.41 170.667 170.667 0 94.255-76.412 170.667-170.667 170.667-94.257 0-170.667-76.412-170.667-170.667 0-94.257 76.41-170.667 170.667-170.667zM130.344 554.667h-87.677v-85.333h87.677c19.676-177.989 161.001-319.314 338.99-338.989v-87.677h85.333v87.677c177.988 19.676 319.313 161.001 338.991 338.989h87.676v85.333h-87.676c-19.678 177.988-161.003 319.313-338.991 338.991v87.676h-85.333v-87.676c-177.989-19.678-319.314-161.003-338.99-338.991zM512 213.334c-164.949 0-298.667 133.718-298.667 298.666s133.717 298.667 298.667 298.667c164.949 0 298.667-133.717 298.667-298.667s-133.717-298.666-298.667-298.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "crosshairs-gps"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1637,
+            "id": 925,
+            "prevSize": 24,
+            "code": 59243,
+            "name": "crosshairs-gps"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 363
+    }, {
+        "icon": {
+            "paths": [
+                "M130.344 554.667h-87.677v-85.333h87.677c19.676-177.989 161.001-319.314 338.99-338.989v-87.677h85.333v87.677c177.988 19.676 319.313 161.001 338.991 338.989h87.676v85.333h-87.676c-19.678 177.988-161.003 319.313-338.991 338.991v87.676h-85.333v-87.676c-177.989-19.678-319.314-161.003-338.99-338.991zM512 213.334c-164.949 0-298.667 133.718-298.667 298.666s133.717 298.667 298.667 298.667c164.949 0 298.667-133.717 298.667-298.667s-133.717-298.666-298.667-298.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "crosshairs"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1638,
+            "id": 924,
+            "prevSize": 24,
+            "code": 59244,
+            "name": "crosshairs"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 364
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 682.667l-85.333-469.333 234.666 298.666 149.334-298.666 149.333 298.666 234.667-298.666-85.333 469.333h-597.333zM810.667 810.667c0 23.565-19.102 42.667-42.667 42.667h-512c-23.564 0-42.667-19.102-42.667-42.667l-0-42.667h597.333v42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "crown"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1639,
+            "id": 923,
+            "prevSize": 24,
+            "code": 59245,
+            "name": "crown"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 365
+    }, {
+        "icon": {
+            "paths": [
+                "M896 704c0 16.265-9.101 30.4-22.485 37.602l-337.348 189.568c-6.869 4.727-15.194 7.497-24.166 7.497s-17.297-2.769-24.166-7.497l-337.341-189.564c-13.389-7.198-22.492-21.342-22.492-37.606v-384c0-16.266 9.103-30.406 22.492-37.605l337.341-189.563c6.869-4.73 15.194-7.498 24.166-7.498s17.293 2.768 24.166 7.498l337.348 189.567c13.385 7.2 22.485 21.338 22.485 37.601v384zM512.038 177.106l-254.279 142.894 254.279 142.895 254.217-142.895-254.217-142.894zM213.333 679.036l256 143.859v-286.123l-256-143.855v286.118zM810.667 679.036v-286.118l-256 143.855v286.161l256-143.898z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cube-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1640,
+            "id": 922,
+            "prevSize": 24,
+            "code": 59246,
+            "name": "cube-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 366
+    }, {
+        "icon": {
+            "paths": [
+                "M256 384v-213.333h298.667v213.333h426.667v298.667h-213.333v213.333h-298.667v-213.333h-426.667v-298.667h213.333zM682.667 682.667h-128v128h128v-128zM341.333 384h128v-128h-128v128zM256 597.333v-128h-128v128h128zM768 469.333v128h128v-128h-128zM554.667 469.333v128h128v-128h-128zM341.333 469.333v128h128v-128h-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cube-unfolded"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1641,
+            "id": 921,
+            "prevSize": 24,
+            "code": 59247,
+            "name": "cube-unfolded"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 367
+    }, {
+        "icon": {
+            "paths": [
+                "M896 704c0 16.265-9.101 30.4-22.485 37.602l-337.348 189.568c-6.869 4.727-15.194 7.497-24.166 7.497s-17.297-2.769-24.166-7.497l-337.341-189.564c-13.389-7.198-22.492-21.342-22.492-37.606v-384c0-16.266 9.103-30.406 22.492-37.605l337.341-189.563c6.869-4.73 15.194-7.498 24.166-7.498s17.293 2.768 24.166 7.498l337.348 189.567c13.385 7.2 22.485 21.338 22.485 37.601v384zM512.038 177.106l-254.279 142.894 254.279 142.895 254.217-142.895-254.217-142.894z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cube"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1642,
+            "id": 920,
+            "prevSize": 24,
+            "code": 59248,
+            "name": "cube"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 368
+    }, {
+        "icon": {
+            "paths": [
+                "M781.85 341.251h-539.732l-18.859-170.667h577.45zM511.983 810.586c-70.699 0-127.999-57.301-127.999-128 0-85.333 127.999-230.4 127.999-230.4s128 145.067 128 230.4c0 70.699-57.301 128-128 128zM127.984 85.251l85.931 777.943c4.906 42.453 40.96 75.392 84.736 75.392h426.666c43.733 0 79.787-32.939 84.736-75.392l85.931-777.943h-767.999z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cup-water"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1643,
+            "id": 919,
+            "prevSize": 24,
+            "code": 59249,
+            "name": "cup-water"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 369
+    }, {
+        "icon": {
+            "paths": [
+                "M781.85 341.251h-539.732l-18.859-170.667h577.45zM127.984 85.251l85.931 777.942c4.906 42.453 40.96 75.392 84.736 75.392h426.666c43.733 0 79.787-32.939 84.736-75.392l85.931-777.942h-767.999z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cup"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1644,
+            "id": 918,
+            "prevSize": 24,
+            "code": 59250,
+            "name": "cup"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 370
+    }, {
+        "icon": {
+            "paths": [
+                "M192 213.333h149.333v-128h85.333v128h64v-128h85.333v128c234.667-0 234.667 256 106.667 266.666 170.667-10.667 213.333 330.667-106.667 330.667v128h-85.333v-128h-64v128h-85.333v-128h-149.333l21.333-85.333h42.667c23.564 0 42.667-19.102 42.667-42.667v-341.333c0-23.564-19.103-42.667-42.667-42.667h-64v-85.333zM426.667 298.667v170.667c0 0 192 10.667 192-85.332 0-96-192-85.334-192-85.335zM426.667 533.333v191.834c0 0 234.667 0.166 234.667-95.834s-234.667-96-234.667-96z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "currency-btc"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1645,
+            "id": 917,
+            "prevSize": 24,
+            "code": 59251,
+            "name": "currency-btc"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 371
+    }, {
+        "icon": {
+            "paths": [
+                "M301.691 469.333l-3.025 42.667 3.025 42.667h438.413l-36.105 85.333h-376.592c47.934 100.902 150.783 170.667 269.925 170.667 95.189 0 179.977-44.531 234.667-113.894v119.206c-64.892 50.167-146.295 80.021-234.667 80.021-167.198 0-309.434-106.854-362.15-256h-149.85l42.667-85.333h87.677l-2.344-42.667 2.344-42.667h-130.344l42.667-85.333h107.184c52.715-149.145 194.952-256 362.15-256 107.533 0 204.74 44.2 274.449 115.423l-36.983 87.413c-54.571-71.424-140.638-117.502-237.466-117.502-119.142 0-221.99 69.762-269.925 170.667h484.901l-36.105 85.333h-474.513z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "currency-eur"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1646,
+            "id": 916,
+            "prevSize": 24,
+            "code": 59252,
+            "name": "currency-eur"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 372
+    }, {
+        "icon": {
+            "paths": [
+                "M277.333 896v-53.333c39.921-19.767 74.184-50.428 98.43-87.565 24.245-37.141 36.698-79.014 37.357-125.619l-1.172-41.971-3.514-32.845h-109.767v-85.333h102.383c-6.33-35.268-10.12-72.285-11.368-117.415 1.089-69.861 21.702-124.475 61.838-163.843s93.257-59.392 159.369-60.075c30.447 0.253 56.277 3.064 77.495 8.432s37.969 11.773 50.249 19.215l-23.437 74.329c-10.5-6.107-24.371-11.482-41.609-16.124s-38.135-7.085-62.699-7.33c-45.367 0.904-78.281 14.926-98.739 42.065-20.463 27.14-30.519 61.974-30.178 104.503l4.395 63.86 8.747 52.382h166.221v85.333h-158.281c4.019 43.14 2.078 85.231-5.82 126.276-13.107 51.405-39.006 94.647-77.695 129.724h348.462v85.333h-490.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "currency-gbp"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1647,
+            "id": 915,
+            "prevSize": 24,
+            "code": 59253,
+            "name": "currency-gbp"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 373
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 128h426.667l-42.667 85.333h-138.974c20.403 24.705 35.849 53.658 44.809 85.333h136.832l-42.667 85.333h-86.289c-9.89 109.722-95.296 197.662-203.844 211.452v2.146l-29.724-0.098 255.682 298.5h-106.667l-255.825-298.667v-85.333l106.667 0.209v-0.209c75.23 0 137.468-55.633 147.823-128h-254.49l42.667-85.333h198.963c-23.966-50.452-75.392-85.333-134.963-85.333h-106.667l42.667-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "currency-inr"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1648,
+            "id": 914,
+            "prevSize": 24,
+            "code": 59254,
+            "name": "currency-inr"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 374
+    }, {
+        "icon": {
+            "paths": [
+                "M256 426.667h42.667v-298.667h320c106.039 0 192 85.961 192 192s-85.961 192-192 192h-234.667v85.333h256v85.333h-256v213.333h-85.333v-213.333h-42.667v-85.333h42.667v-85.333h-42.667v-85.333zM618.667 213.333h-234.667v213.333h234.667c58.91 0 106.667-47.756 106.667-106.666s-47.757-106.667-106.667-106.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "currency-rub"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1649,
+            "id": 913,
+            "prevSize": 24,
+            "code": 59255,
+            "name": "currency-rub"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 375
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 512c0 212.079-171.921 384-384 384h-85.333v-351.019l-128 46.592v-90.812l128-46.588v-75.651l-128 46.588v-90.81l128-46.588v-159.713h85.333v128.654l213.333-77.647v90.81l-213.333 77.647v75.651l213.333-77.647v90.808l-213.333 77.649v296.742c164.949 0 298.667-133.717 298.667-298.667h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "currency-try"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1650,
+            "id": 912,
+            "prevSize": 24,
+            "code": 59256,
+            "name": "currency-try"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 376
+    }, {
+        "icon": {
+            "paths": [
+                "M503.467 465.067c-96.853-25.173-128-51.2-128-91.733 0-46.507 43.093-78.933 115.2-78.933 75.947 0 104.107 36.267 106.667 89.6h94.293c-2.987-73.387-47.787-140.8-136.96-162.56v-93.44h-128v92.16c-82.773 17.92-149.333 71.68-149.333 154.027 0 98.56 81.493 147.627 200.533 176.213 106.667 25.6 128 63.147 128 102.827 0 29.44-20.907 76.373-115.2 76.373-87.893 0-122.453-39.253-127.147-89.6h-93.867c5.12 93.44 75.093 145.92 157.013 163.413v92.587h128v-91.733c83.2-15.787 149.333-64 149.333-151.467 0-121.173-103.68-162.56-200.533-187.733z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "currency-usd"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1651,
+            "id": 911,
+            "prevSize": 24,
+            "code": 59257,
+            "name": "currency-usd"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 377
+    }, {
+        "icon": {
+            "paths": [
+                "M429.589 608.695c21.355-9.958 46.741-0.721 56.7 20.638l98.364 212.762 77.086-35.947-99.174-212.681c-9.958-21.355-0.717-46.741 20.638-56.7l12.207-3.61 98.074-19.063-352.15-295.49v459.995l77.645-62.878 10.612-7.027zM581.794 937.583c-21.355 9.958-46.741 0.717-56.7-20.638l-93.047-202.018-106.771 86.426c-7.296 5.828-16.546 9.314-26.609 9.314-23.564 0-42.667-19.102-42.667-42.667v-640c0-23.564 19.102-42.667 42.667-42.667 10.451 0 20.025 3.758 27.444 9.996l0.44-0.524 490.269 411.383c18.048 15.147 20.403 42.061 5.257 60.113-6.468 7.706-15.083 12.553-24.235 14.396l-134.839 26.24 94.11 201.818c9.958 21.355 0.717 46.741-20.638 56.7l-154.679 72.128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cursor-default-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1652,
+            "id": 910,
+            "prevSize": 24,
+            "code": 59258,
+            "name": "cursor-default-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 378
+    }, {
+        "icon": {
+            "paths": [
+                "M581.794 937.583c-21.355 9.958-46.741 0.717-56.7-20.638l-93.047-202.018-106.771 86.426c-7.296 5.828-16.546 9.314-26.609 9.314-23.564 0-42.667-19.102-42.667-42.667v-640c0-23.564 19.102-42.667 42.667-42.667 10.451 0 20.025 3.758 27.443 9.996l0.44-0.524 490.269 411.383c18.048 15.147 20.403 42.061 5.257 60.113-6.468 7.71-15.083 12.553-24.235 14.396l-134.839 26.24 94.11 201.818c9.958 21.355 0.717 46.741-20.638 56.7l-154.679 72.128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cursor-default"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1653,
+            "id": 909,
+            "prevSize": 24,
+            "code": 59259,
+            "name": "cursor-default"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 379
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 256v213.333h213.333v-138.667l181.333 181.333-181.333 181.333v-138.667h-213.333v213.333h138.667l-181.333 181.333-181.333-181.333h138.667v-213.333h-213.333v138.667l-181.333-181.333 181.333-181.333v138.667h213.333v-213.333h-138.667l181.333-181.333 181.333 181.333-138.667-0z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cursor-move"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1654,
+            "id": 908,
+            "prevSize": 24,
+            "code": 59260,
+            "name": "cursor-move"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 380
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 85.334c47.13 0 85.333 38.205 85.333 85.333v192.001c0 0 85.333-10.667 85.333 32 0 0 85.333-10.667 85.333 31.999 0 0 85.333-10.666 85.333 32 0 0 85.333-10.667 85.333 32v149.333c0 42.667-128 256-128 298.667h-341.333c0 0-85.333-298.667-213.333-384 0 0-42.667-256 170.667-42.667v-341.333c0-47.128 38.205-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "cursor-pointer"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1655,
+            "id": 907,
+            "prevSize": 24,
+            "code": 59261,
+            "name": "cursor-pointer"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 381
+    }, {
+        "icon": {
+            "paths": [
+                "M554.684 85.356v129.213c144.717 20.765 255.987 144.859 255.987 295.288 0 38.199-7.479 74.603-20.561 108.19l110.963 65.451c23.787-53.116 37.598-111.68 37.598-173.641 0-221.169-168.354-403.012-383.987-424.502zM469.346 85.335c-215.819 21.286-384.012 203.193-384.012 424.523 0 235.644 190.656 426.662 426.448 426.662 141.248 0 266.095-68.83 343.774-174.468l-110.763-65.327c-54.716 68.105-138.573 111.799-232.789 111.799-164.993 0-298.665-133.734-298.665-298.667 0-150.429 111.271-274.523 256.007-295.288v-129.234z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "data"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1656,
+            "id": 906,
+            "prevSize": 24,
+            "code": 59262,
+            "name": "data"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 382
+    }, {
+        "icon": {
+            "paths": [
+                "M512 938.667c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333zM554.667 85.333v469.777l192.222-192.22 60.339 60.34-295.228 295.229-295.229-295.23 60.34-60.34 192.222 192.22v-469.777h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "debug-step-into"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1657,
+            "id": 905,
+            "prevSize": 24,
+            "code": 59263,
+            "name": "debug-step-into"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 383
+    }, {
+        "icon": {
+            "paths": [
+                "M512 938.667c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333zM554.667 682.667h-85.333v-427.112l-192.222 192.223-60.34-60.342 295.229-295.227 295.228 295.227-60.339 60.342-192.222-192.223v427.112z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "debug-step-out"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1658,
+            "id": 904,
+            "prevSize": 24,
+            "code": 59264,
+            "name": "debug-step-out"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 384
+    }, {
+        "icon": {
+            "paths": [
+                "M512 597.333c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333zM1001.015 378.233l-67.87 293.968-293.965-67.87 162.833-101.751c-60.241-96.806-167.603-161.246-290.014-161.246-168.523 0-308.521 122.129-336.318 282.705l-84.051-14.818c34.812-200.643 209.772-353.22 420.369-353.22 152.93 0 287.066 80.459 362.394 201.353l126.622-79.12z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "debug-step-over"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1659,
+            "id": 903,
+            "prevSize": 24,
+            "code": 59265,
+            "name": "debug-step-over"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 385
+    }, {
+        "icon": {
+            "paths": [
+                "M512 725.333l128 128v-85.333h256v-85.333h-256v-85.333l-128 128zM384 213.334c70.691 0 128 57.307 128 128v127.999c0 70.694-57.31 128-128 128-70.693 0-128-57.306-128-128l-0-127.999c0-70.693 57.308-128 128-128zM384 298.667c-23.564 0-42.667 19.103-42.667 42.667l0 128c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667l-0-128c0-23.564-19.102-42.667-42.667-42.667zM170.667 512c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "decimal-decrease"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1660,
+            "id": 902,
+            "prevSize": 24,
+            "code": 59266,
+            "name": "decimal-decrease"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 386
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 725.333l-128 128v-85.333h-256v-85.333h256v-85.333l128 128zM384 213.334c70.691 0 128 57.308 128 128v128c0 70.694-57.31 128-128 128-70.693 0-128-57.306-128-128l-0-128c0-70.692 57.308-128 128-128zM384 298.667c-23.564 0-42.667 19.103-42.667 42.667l0 128c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667l-0-128c0-23.564-19.102-42.667-42.667-42.667zM682.667 213.334c70.694 0 128 57.307 128 128v128c0 70.694-57.306 128-128 128s-128-57.306-128-128v-128c0-70.692 57.306-128 128-128zM682.667 298.667c-23.565 0-42.667 19.103-42.667 42.667v128c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667v-128c0-23.564-19.102-42.667-42.667-42.667zM170.667 512c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "decimal-increase"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1661,
+            "id": 901,
+            "prevSize": 24,
+            "code": 59267,
+            "name": "decimal-increase"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 387
+    }, {
+        "icon": {
+            "paths": [
+                "M897.212 128l-130.257 738.718c-6.421 40.772-41.715 71.949-84.288 71.949h-341.333c-42.575 0-77.868-31.181-84.29-71.953l-130.255-738.714h770.424zM228.484 213.334l112.849 640h341.333l112.849-640h-567.032zM384 768v-170.667h170.667v170.667h-170.667zM554.667 562.432l-135.764-135.765 135.764-135.764 135.765 135.764-135.765 135.765z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "delete-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1662,
+            "id": 900,
+            "prevSize": 24,
+            "code": 59268,
+            "name": "delete-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 388
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 170.667h-149.333l-42.667-42.667h-213.333l-42.667 42.667h-149.333v85.333h597.333zM256 810.667c0 46.933 38.4 85.333 85.333 85.333h341.333c46.933 0 85.333-38.4 85.333-85.333v-512h-512v512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "delete"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1663,
+            "id": 899,
+            "prevSize": 24,
+            "code": 59269,
+            "name": "delete"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 389
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM640 213.334v597.333h170.667v-597.333h-170.667zM213.333 213.334v170.667h341.333v-170.667h-341.333zM213.333 469.333v85.333h85.333v-85.333h-85.333zM341.333 469.333v85.333h85.334v-85.333h-85.334zM469.333 469.333v85.333h85.333v-85.333h-85.333zM213.333 597.333v85.333h85.333v-85.333h-85.333zM341.333 597.333v85.333h85.333v-85.333h-85.333zM469.333 597.333v85.333h85.333v-85.333h-85.333zM469.333 725.333v85.333h85.333v-85.333h-85.333zM341.333 725.333v85.333h85.333v-85.333h-85.333zM213.333 725.333v85.333h85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "deskphone"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1664,
+            "id": 898,
+            "prevSize": 24,
+            "code": 59270,
+            "name": "deskphone"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 390
+    }, {
+        "icon": {
+            "paths": [
+                "M895.974 597.252h-768v-426.668h768zM895.974 85.251h-768c-47.147 0-85.333 38.229-85.333 85.333v512.001c0 47.147 38.187 85.333 85.333 85.333h298.667l-85.333 128v42.667h341.333v-42.667l-85.333-128h298.667c47.104 0 85.333-38.187 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "desktop-mac"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1665,
+            "id": 897,
+            "prevSize": 24,
+            "code": 59271,
+            "name": "desktop-mac"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 391
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 85.333h341.333c47.13 0 85.333 38.205 85.333 85.333v682.667c0 47.13-38.204 85.333-85.333 85.333h-341.333c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333zM341.333 170.667v85.333h341.333v-85.333h-341.333zM682.667 341.333h-341.333v85.333h341.333v-85.333zM682.667 768h-85.333v85.333h85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "desktop-tower"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1666,
+            "id": 896,
+            "prevSize": 24,
+            "code": 59272,
+            "name": "desktop-tower"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 392
+    }, {
+        "icon": {
+            "paths": [
+                "M272.213 256h480l-240.213 426.667-239.787-426.667zM128 170.667l384 682.667 384-682.667h-768z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "details"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1667,
+            "id": 895,
+            "prevSize": 24,
+            "code": 59273,
+            "name": "details"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 393
+    }, {
+        "icon": {
+            "paths": [
+                "M256 256h256l85.333-170.667h170.667v170.667l-149.333 298.667h149.333v213.333h-256l-85.333 170.667h-170.667v-170.667l149.333-298.667h-149.333v-213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "deviantart"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1668,
+            "id": 894,
+            "prevSize": 24,
+            "code": 59274,
+            "name": "deviantart"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 394
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 384h128l-213.333 298.667zM426.667 384h170.667l-85.333 341.333zM213.333 384h128l85.333 298.667zM640 170.667h85.333l85.333 128h-128zM469.333 170.667h85.333l42.667 128h-170.667zM298.667 170.667h85.333l-42.667 128h-128zM256 85.333l-170.667 256 426.667 597.333 426.667-597.333-170.667-256h-512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "diamond"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1669,
+            "id": 893,
+            "prevSize": 24,
+            "code": 59275,
+            "name": "diamond"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 395
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM512 426.667c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dice-1"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1670,
+            "id": 892,
+            "prevSize": 24,
+            "code": 59276,
+            "name": "dice-1"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 396
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM298.667 213.333c-47.128 0-85.333 38.205-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.333-38.205 85.333-85.333s-38.205-85.333-85.333-85.333zM725.333 640c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dice-2"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1671,
+            "id": 891,
+            "prevSize": 24,
+            "code": 59277,
+            "name": "dice-2"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 397
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM512 426.667c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333zM298.667 213.333c-47.128 0-85.333 38.205-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.333-38.205 85.333-85.333s-38.205-85.333-85.333-85.333zM725.333 640c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dice-3"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1672,
+            "id": 890,
+            "prevSize": 24,
+            "code": 59278,
+            "name": "dice-3"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 398
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM298.666 213.334c-47.128 0-85.333 38.205-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.333-38.205 85.333-85.333s-38.205-85.333-85.333-85.333zM725.333 640c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333zM725.333 213.334c-47.13 0-85.333 38.205-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333zM298.667 640c-47.128 0-85.333 38.204-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.333-38.204 85.333-85.333s-38.205-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dice-4"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1673,
+            "id": 889,
+            "prevSize": 24,
+            "code": 59279,
+            "name": "dice-4"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 399
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM298.666 213.334c-47.128 0-85.333 38.205-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.333-38.205 85.333-85.333s-38.205-85.333-85.333-85.333zM725.333 640c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333zM725.333 213.334c-47.13 0-85.333 38.205-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333zM512 426.667c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333zM298.667 640c-47.128 0-85.333 38.204-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.333-38.204 85.333-85.333s-38.205-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dice-5"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1674,
+            "id": 888,
+            "prevSize": 24,
+            "code": 59280,
+            "name": "dice-5"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 400
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM298.666 213.334c-47.128 0-85.333 38.205-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.334-38.205 85.334-85.333s-38.205-85.333-85.334-85.333zM725.333 640c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333zM725.333 426.667c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333zM725.333 213.334c-47.13 0-85.333 38.205-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333zM298.667 426.667c-47.128 0-85.333 38.204-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.333-38.204 85.333-85.333s-38.205-85.333-85.333-85.333zM298.667 640c-47.128 0-85.333 38.204-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.333-38.204 85.333-85.333s-38.205-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dice-6"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1675,
+            "id": 887,
+            "prevSize": 24,
+            "code": 59281,
+            "name": "dice-6"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 401
+    }, {
+        "icon": {
+            "paths": [
+                "M896 704c0 16.265-9.101 30.4-22.485 37.602l-337.348 189.568c-6.869 4.727-15.194 7.497-24.166 7.497s-17.297-2.769-24.166-7.501l-337.341-189.559c-13.389-7.198-22.492-21.342-22.492-37.606l-0-384c0-16.267 9.103-30.407 22.492-37.605l337.341-189.563c6.869-4.73 15.194-7.499 24.166-7.499s17.297 2.769 24.166 7.498l337.348 189.568c13.385 7.199 22.485 21.338 22.485 37.601v384zM234.667 610.816c-23.564-13.338-42.667-5.047-42.667 18.517s19.102 53.478 42.667 66.816c23.564 13.333 42.667 5.043 42.667-18.522s-19.103-53.478-42.667-66.812zM234.666 440.149c-23.564-13.338-42.666-5.047-42.666 18.517s19.102 53.478 42.666 66.816c23.564 13.333 42.667 5.043 42.667-18.522s-19.102-53.478-42.667-66.812zM405.333 707.405c-23.564-13.338-42.667-5.047-42.667 18.517s19.102 53.478 42.667 66.816c23.565 13.333 42.667 5.043 42.667-18.522 0-23.561-19.102-53.474-42.667-66.812zM320 573.777c-23.564-13.338-42.667-5.047-42.667 18.517s19.102 53.478 42.667 66.816c23.564 13.333 42.667 5.043 42.667-18.522s-19.103-53.478-42.667-66.812zM405.333 536.738c-23.564-13.338-42.667-5.047-42.667 18.517s19.102 53.478 42.667 66.816c23.565 13.338 42.667 5.043 42.667-18.522 0-23.561-19.102-53.474-42.667-66.812zM789.333 610.816c-23.565 13.333-42.667 43.247-42.667 66.812s19.102 31.855 42.667 18.522c23.565-13.338 42.667-43.251 42.667-66.816s-19.102-31.855-42.667-18.517zM789.333 440.149c-23.565 13.333-42.667 43.247-42.667 66.812s19.102 31.855 42.667 18.522c23.565-13.338 42.667-43.251 42.667-66.816s-19.102-31.855-42.667-18.517zM618.667 707.405c-23.565 13.338-42.667 43.251-42.667 66.812 0 23.565 19.102 31.859 42.667 18.522s42.667-43.251 42.667-66.816c0-23.565-19.102-31.855-42.667-18.517zM618.667 536.738c-23.565 13.338-42.667 43.251-42.667 66.812 0 23.565 19.102 31.859 42.667 18.522s42.667-43.251 42.667-66.816c0-23.561-19.102-31.855-42.667-18.517zM703.654 331.557c23.33-13.739 25.702-34.428 5.295-46.21s-55.863-10.196-79.194 3.543c-23.334 13.739-25.702 34.428-5.295 46.21 20.403 11.782 55.863 10.196 79.194-3.543zM386.871 345.731c23.332-13.739 25.702-34.428 5.295-46.21s-55.864-10.196-79.196 3.543c-23.331 13.739-25.702 34.428-5.295 46.21s55.864 10.196 79.196-3.543zM545.263 338.644c23.33-13.739 25.702-34.428 5.295-46.21s-55.863-10.196-79.198 3.543c-23.33 13.739-25.702 34.428-5.295 46.21s55.868 10.196 79.198-3.543z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dice"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1676,
+            "id": 886,
+            "prevSize": 24,
+            "code": 59282,
+            "name": "dice"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 402
+    }, {
+        "icon": {
+            "paths": [
+                "M597.308 618.586v-106.667h-170.667v128h-85.333v-170.667c0-23.595 19.072-42.668 42.667-42.668h213.333v-106.667l149.333 149.335zM926.14 481.796l-384.128-384.044c-16.597-16.683-43.648-16.683-60.245 0.043l-384 384.001c-16.64 16.683-16.682 43.648 0 60.331l384 384c16.725 16.58 43.648 16.64 60.331 0l384.043-384c16.683-16.683 16.683-43.648 0-60.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "directions"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1677,
+            "id": 885,
+            "prevSize": 24,
+            "code": 59283,
+            "name": "directions"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 403
+    }, {
+        "icon": {
+            "paths": [
+                "M426.641 597.252c-47.147 0-85.333-38.229-85.333-85.333 0-47.147 38.187-85.335 85.333-85.335 47.104 0 85.333 38.188 85.333 85.335 0 47.104-38.229 85.333-85.333 85.333zM426.641 170.584c-188.501 0-341.333 152.832-341.333 341.335 0 188.544 152.832 341.333 341.333 341.333s341.333-152.789 341.333-341.333c0-188.503-152.832-341.335-341.333-341.335zM853.308 511.919h85.333v-213.335h-85.333zM853.308 682.586h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "disk-alert"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1678,
+            "id": 884,
+            "prevSize": 24,
+            "code": 59284,
+            "name": "disk-alert"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 404
+    }, {
+        "icon": {
+            "paths": [
+                "M507.733 618.667h-46.933v-213.333h46.933c68.267 0 115.2 38.4 115.2 106.667s-46.933 106.667-115.2 106.667zM507.733 298.667h-162.133v426.667h157.867c149.333 0 238.933-89.6 238.933-213.333v0c0-123.733-85.333-213.333-234.667-213.333zM512 853.333c-81.067 0-157.867-29.867-217.6-81.067l-29.867-25.6-72.533 8.533 29.867-68.267-12.8-34.133c-21.333-46.933-29.867-93.867-29.867-145.067 0-187.733 153.6-341.333 337.067-341.333s332.8 157.867 332.8 345.6c0 187.733-153.6 341.333-337.067 341.333zM512 85.333c-234.667 0-422.4 192-422.4 426.667 0 64 12.8 123.733 38.4 179.2l-68.267 174.933 183.467-25.6c72.533 64 170.667 102.4 273.067 102.4 234.667 0 422.4-192 422.4-426.667s-192-430.933-426.667-430.933z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "disqus-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1679,
+            "id": 883,
+            "prevSize": 24,
+            "code": 59285,
+            "name": "disqus-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 405
+    }, {
+        "icon": {
+            "paths": [
+                "M515.358 938.667c-104.415 0-199.878-38.148-273.667-101.261l-181.673 24.806 70.187-173.21c-24.439-53.948-38.147-113.826-38.147-177.003 0-235.615 189.511-426.667 423.301-426.667 233.766 0 423.309 191.052 423.309 426.667 0 235.678-189.513 426.667-423.309 426.667zM746.5 510.767v-1.178c0-123.116-86.818-210.923-236.54-210.923h-161.666v426.667h159.29c150.865 0.030 238.916-91.447 238.916-214.566zM511.748 620.514h-47.283v-216.975h47.283c69.474 0 115.584 39.601 115.584 107.906v1.169c0 68.894-46.11 107.9-115.584 107.9z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "disqus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1680,
+            "id": 882,
+            "prevSize": 24,
+            "code": 59286,
+            "name": "disqus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 406
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 554.586v-85.333h-426.667v85.333h426.667zM810.641 127.92c47.061 0 85.333 38.229 85.333 85.333v597.332c0 47.104-38.272 85.333-85.333 85.333h-597.333c-47.189 0-85.333-38.229-85.333-85.333v-597.332c0-47.104 38.144-85.333 85.333-85.333h597.333zM512 298.667c-23.565 0-42.667 19.103-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667zM512 640c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "division-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1681,
+            "id": 881,
+            "prevSize": 24,
+            "code": 59287,
+            "name": "division-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 407
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 554.581h-597.335v-85.333h597.335v85.333zM512 213.333c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.205-85.333-85.333s38.204-85.333 85.333-85.333zM512 640c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "division"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1682,
+            "id": 880,
+            "prevSize": 24,
+            "code": 59288,
+            "name": "division"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 408
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 384c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333zM853.333 128h-682.667c-23.467 0-42.667 19.2-42.667 42.667v256c0 23.467 19.2 42.667 42.667 42.667h682.667c23.467 0 42.667-19.2 42.667-42.667v-256c0-23.467-19.2-42.667-42.667-42.667zM298.667 810.667c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333zM853.333 554.667h-682.667c-23.467 0-42.667 19.2-42.667 42.667v256c0 23.467 19.2 42.667 42.667 42.667h682.667c23.467 0 42.667-19.2 42.667-42.667v-256c0-23.467-19.2-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dns"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1683,
+            "id": 879,
+            "prevSize": 24,
+            "code": 59289,
+            "name": "dns"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 409
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM298.667 298.667v85.333h426.667v-85.333h-426.667zM298.667 469.333v85.333h426.667v-85.333h-426.667zM298.667 640v85.333h298.667v-85.333h-298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "document"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1684,
+            "id": 878,
+            "prevSize": 24,
+            "code": 59290,
+            "name": "document"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 410
+    }, {
+        "icon": {
+            "paths": [
+                "M768 640h-85.333v85.333h85.333zM768 469.333h-85.333v85.333h85.333zM853.333 810.667h-341.333v-85.333h85.333v-85.333h-85.333v-85.333h85.333v-85.333h-85.333v-85.333h341.333zM426.667 298.667h-85.333v-85.333h85.333zM426.667 469.333h-85.333v-85.333h85.333zM426.667 640h-85.333v-85.333h85.333zM426.667 810.667h-85.333v-85.333h85.333zM256 298.667h-85.333v-85.333h85.333zM256 469.333h-85.333v-85.333h85.333zM256 640h-85.333v-85.333h85.333zM256 810.667h-85.333v-85.333h85.333zM512 298.667v-170.667h-426.667v768h853.333v-597.333h-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "domain"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1685,
+            "id": 877,
+            "prevSize": 24,
+            "code": 59291,
+            "name": "domain"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 411
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 512c0-47.13 38.204-85.333 85.333-85.333s85.333 38.204 85.333 85.333c0 47.13-38.204 85.333-85.333 85.333s-85.333-38.204-85.333-85.333zM426.667 512c0-47.13 38.204-85.333 85.333-85.333s85.333 38.204 85.333 85.333c0 47.13-38.204 85.333-85.333 85.333s-85.333-38.204-85.333-85.333zM170.667 512c0-47.13 38.205-85.333 85.333-85.333s85.333 38.204 85.333 85.333c0 47.13-38.205 85.333-85.333 85.333s-85.333-38.204-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dots-horizontal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1686,
+            "id": 876,
+            "prevSize": 24,
+            "code": 59292,
+            "name": "dots-horizontal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 412
+    }, {
+        "icon": {
+            "paths": [
+                "M512 682.667c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333zM512 426.667c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333zM512 170.667c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.205-85.333-85.333s38.204-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dots-vertical"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1687,
+            "id": 875,
+            "prevSize": 24,
+            "code": 59293,
+            "name": "dots-vertical"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 413
+    }, {
+        "icon": {
+            "paths": [
+                "M213.308 853.252h597.333v-85.333h-597.333zM810.641 383.918h-170.667v-256h-256v256h-170.667l298.667 298.668 298.667-298.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "download"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1688,
+            "id": 874,
+            "prevSize": 24,
+            "code": 59294,
+            "name": "download"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 414
+    }, {
+        "icon": {
+            "paths": [
+                "M128 640v-85.333h85.333v85.333h-85.333zM128 469.333v-85.332h85.333v85.332h-85.333zM298.667 640v-85.333h85.333v85.333h-85.333zM298.667 469.333v-85.332h85.333v85.332h-85.333zM469.333 640v-85.333h85.333v85.333h-85.333zM469.333 469.333v-85.333h85.333v85.333h-85.333zM640 640v-85.333h85.333v85.333h-85.333zM640 469.333v-85.333h85.333v85.333h-85.333zM810.667 640v-85.333h85.333v85.333h-85.333zM810.667 469.333v-85.333h85.333v85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "drag-horizontal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1689,
+            "id": 873,
+            "prevSize": 24,
+            "code": 59295,
+            "name": "drag-horizontal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 415
+    }, {
+        "icon": {
+            "paths": [
+                "M384 128h85.333v85.333h-85.333v-85.333zM554.667 128h85.333v85.333h-85.333v-85.333zM384 298.667h85.333v85.333h-85.333v-85.333zM554.667 298.667h85.333v85.333h-85.333v-85.333zM384 469.333h85.333v85.333h-85.333v-85.333zM554.667 469.333h85.333v85.333h-85.333v-85.333zM384 640h85.333v85.333h-85.333v-85.333zM554.667 640h85.333v85.333h-85.333v-85.333zM384 810.667h85.333v85.333h-85.333v-85.333zM554.667 810.667h85.333v85.333h-85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "drag-vertical"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1690,
+            "id": 872,
+            "prevSize": 24,
+            "code": 59296,
+            "name": "drag-vertical"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 416
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 810.667v-85.333h85.333v85.333h-85.333zM469.333 810.667v-85.333h85.333v85.333h-85.333zM640 810.667v-85.333h85.333v85.333h-85.333zM298.667 640v-85.333h85.333v85.333h-85.333zM469.333 640v-85.333h85.333v85.333h-85.333zM640 640v-85.333h85.333v85.333h-85.333zM298.667 469.333v-85.333h85.333v85.333h-85.333zM469.333 469.333v-85.333h85.333v85.333h-85.333zM640 469.333v-85.333h85.333v85.333h-85.333zM298.667 298.667v-85.333h85.333v85.333h-85.333zM469.333 298.667v-85.333h85.333v85.333h-85.333zM640 298.667v-85.333h85.333v85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "drag"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1691,
+            "id": 871,
+            "prevSize": 24,
+            "code": 59297,
+            "name": "drag"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 417
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 767.919h-256v-246.955c-28.117 25.941-65.408 42.155-106.667 42.155-87.211 0-157.867-70.699-157.867-157.868 0-87.168 70.656-157.867 157.867-157.867 87.168 0 157.867 70.699 157.867 157.867 0 41.26-16.213 78.551-42.155 106.668h246.955zM810.641 127.918h-597.334c-47.147 0-85.333 38.229-85.333 85.333v597.335c0 47.104 38.187 85.333 85.333 85.333h597.334c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "drawing-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1692,
+            "id": 870,
+            "prevSize": 24,
+            "code": 59298,
+            "name": "drawing-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 418
+    }, {
+        "icon": {
+            "paths": [
+                "M362.667 128c129.604 0 234.667 105.064 234.667 234.667 0 56.731-20.13 108.762-53.641 149.333h352.307v384h-384v-352.307c-40.572 33.51-92.602 53.641-149.333 53.641-129.603 0-234.667-105.062-234.667-234.667 0-129.603 105.064-234.667 234.667-234.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "drawing"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1693,
+            "id": 869,
+            "prevSize": 24,
+            "code": 59299,
+            "name": "drawing"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 419
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM643.878 703.654c-11.814-57.856-26.679-110.020-43.008-156.578l48.448-3.401c27.81 0 58.342 3.46 91.46 10.987-11.482 61.611-47.125 114.671-96.9 148.992zM512 745.033c-51.836 0-99.689-17.152-138.449-45.931 8.23-13.581 25.951-39.625 54.092-66.556 28.937-27.742 68.894-56.294 121.058-73.293 17.724 49.711 33.783 106.543 45.995 170.513-25.749 9.809-53.559 15.266-82.697 15.266zM278.973 512.013l0.133-3.366 25.486 0.465c46.858-0.311 128.628-4.228 211.521-30.383l13.41 30.839c-55.356 18.513-98.961 48-131.216 77.367-30.995 28.275-51.968 56.269-64.247 74.974-34.246-40.606-55.087-92.766-55.087-149.897zM409.059 303.276c16.195 19.109 48.584 61.121 83.161 126.736-70.351 20.937-141.168 25.847-184.043 25.835l-3.651-0.013-18.584-0.269c16.725-66.896 62.521-122.303 123.117-152.289zM512 278.991c54.955 0 105.395 19.215 145.284 51.205-30.528 36.563-70.882 63.059-114.423 81.754-30.596-59.182-60.198-101.519-80.371-127.404 15.991-3.544 32.521-5.556 49.51-5.556zM694.985 368.18c29.137 37.002 47.386 82.824 49.711 132.859-33.715-7.147-65.574-10.633-95.309-10.633l-0.201-0.013c-23.893 0-46.327 2.172-67.499 5.922l-15.595-36.279c47.121-20.668 92.322-50.076 128.892-91.857zM512 213.331c-164.997 0.014-298.667 133.724-298.667 298.682 0 164.928 133.67 298.65 298.667 298.65 164.932 0 298.667-133.722 298.667-298.65 0-164.958-133.734-298.668-298.667-298.682z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dribbble-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1694,
+            "id": 868,
+            "prevSize": 24,
+            "code": 59300,
+            "name": "dribbble-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 420
+    }, {
+        "icon": {
+            "paths": [
+                "M700.399 785.796c-16.879-82.65-38.118-157.175-61.44-223.689 21.615-3.089 44.279-4.851 68.267-4.851h0.947c39.727 0 83.341 4.941 130.654 15.693-16.401 88.013-67.319 163.819-138.428 212.847zM512 844.907c-74.052 0-142.412-24.503-197.783-65.613 11.757-19.401 37.073-56.606 77.274-95.083 41.341-39.633 98.416-80.422 172.942-104.704 25.314 71.019 48.26 152.209 65.707 243.588-36.787 14.016-76.514 21.811-118.14 21.811zM179.106 512.021c0-1.566 0.095-3.17 0.19-4.809 9.481 0.35 21.617 0.661 36.314 0.661h0.095c66.94-0.444 183.751-6.037 302.176-43.405 6.447 14.101 12.8 28.796 19.153 44.062-79.078 26.445-141.37 68.57-187.45 110.524-44.279 40.393-74.24 80.384-91.782 107.102-48.923-58.005-78.695-132.518-78.695-214.135zM364.943 213.826c23.135 27.297 69.404 87.315 118.804 181.050-100.504 29.913-201.672 36.928-262.922 36.911-1.707 0-3.413 0-5.12-0.017h-0.095c-10.335 0-19.153-0.154-26.549-0.388 23.894-95.566 89.316-174.717 175.882-217.555zM512 179.134c78.507 0 150.566 27.449 207.552 73.149-43.618 52.234-101.265 90.084-163.465 116.793-43.708-84.546-85.995-145.028-114.82-182.006 22.852-5.064 46.46-7.936 70.733-7.936zM773.406 306.546c41.621 52.859 67.695 118.319 71.014 189.8-48.166-10.21-93.675-15.189-136.154-15.189v-0.017h-0.286c-34.133 0-66.18 3.098-96.427 8.457-7.394-17.997-14.788-35.273-22.281-51.827 67.319-29.524 131.887-71.536 184.132-131.223zM512 85.333c-235.709 0.020-426.666 191.034-426.666 426.688 0 235.614 190.957 426.645 426.666 426.645 235.614 0 426.667-191.031 426.667-426.645 0-235.655-191.053-426.668-426.667-426.688z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dribbble"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1695,
+            "id": 867,
+            "prevSize": 24,
+            "code": 59301,
+            "name": "dribbble"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 421
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 469.333h-42.667l-42.667-85.333h-266.667l96 149.333h-85.333l-138.667-149.333h-288c-23.564 0-85.333-19.102-85.333-42.667s64-106.665 149.333-106.666c85.334-0 92.445 42.666 149.334 63.999h512c23.565 0 42.667 19.103 42.667 42.667v128zM458.667 277.334l138.667-149.334h85.333l-96 149.334h-128zM768 469.333v-64l74.667 0-32 63.999h-42.667zM128 810.667c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c94.257 0 170.666 76.412 170.666 170.667 0 23.565-19.102 42.667-42.667 42.667s-42.666-19.102-42.666-42.667c0-47.13-38.205-85.333-85.333-85.333zM469.333 896c0 23.565-19.102 42.667-42.667 42.667-23.564 0-42.667-19.102-42.667-42.667 0-141.385-114.615-256-256-256-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667c188.513 0 341.333 152.819 341.333 341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "drone"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1696,
+            "id": 866,
+            "prevSize": 24,
+            "code": 59302,
+            "name": "drone"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 422
+    }, {
+        "icon": {
+            "paths": [
+                "M512.542 621.222l184.969 153.489 79.151-51.674v57.933l-264.119 158.387-264.124-158.387v-57.933l79.151 51.674 184.973-153.489zM327.569 105.978l184.427 153.933 184.435-153.933 263.569 172.090-182.246 145.941 182.246 145.95-263.569 172.087-184.435-153.941-184.427 153.941-263.569-172.087 182.246-145.95-182.246-145.941 263.569-172.090zM511.996 583.838l261.491-159.829-261.491-159.831-261.483 159.831 261.483 159.829z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dropbox"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1697,
+            "id": 865,
+            "prevSize": 24,
+            "code": 59303,
+            "name": "dropbox"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 423
+    }, {
+        "icon": {
+            "paths": [
+                "M873.28 625.105c0 27.264-9.092 72.708-27.268 104.521s-31.812 40.9-59.076 40.9c-31.812-4.544-90.889-95.433-131.789-99.977-49.988 0-154.509 104.521-240.851 104.521-49.988 0-68.166-9.088-81.799-18.18-27.266-18.176-36.355-45.44-36.355-81.796 0-68.164 63.621-127.245 140.876-127.245 99.977 0 168.141 99.977 218.129 95.433 40.9 0 122.701-81.796 163.597-81.796 40.9-9.092 54.537 36.352 54.537 63.62zM709.679 225.199c-45.444-27.267-86.34-40.899-131.785-68.166-27.268-18.177-63.62-59.077-95.433-95.432-13.632 59.077-22.724 81.799-45.444 99.976-45.444 31.811-68.166 45.444-109.065 63.622-31.811 18.177-199.953 118.154-199.953 336.285 0 218.129 186.319 377.182 386.274 377.182 204.497 0 381.726-149.965 381.726-372.638 9.088-222.676-159.053-322.652-186.321-340.829z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "drupal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1698,
+            "id": 864,
+            "prevSize": 24,
+            "code": 59304,
+            "name": "drupal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 424
+    }, {
+        "icon": {
+            "paths": [
+                "M362.667 213.333c-35.346 0-64 28.654-64 64s28.654 64 64 64c35.346 0 64-28.654 64-64s-28.654-64-64-64zM426.667 85.334c117.82 0 213.333 95.512 213.333 213.333 0 72.401-36.066 136.379-91.213 174.946 67.106 6.263 143.159 21.696 219.213 59.721 128 64 170.667-21.333 170.667-21.333s-42.667 384-298.667 384h-256c0 0-213.333 0-213.333-213.333 0-127.97 127.938-170.645 85.364-255.936-170.697-0.064-170.697-149.397-170.697-149.397 42.667 21.333 95.712 20.702 128.518 6.358 7.685-110.833 100.029-198.358 212.816-198.358z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "duck"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1699,
+            "id": 863,
+            "prevSize": 24,
+            "code": 59305,
+            "name": "duck"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 425
+    }, {
+        "icon": {
+            "paths": [
+                "M180.131 602.509l-30.17-30.17c-33.325-33.323-33.325-87.356 0-120.678 33.325-33.325 87.355-33.325 120.68 0l110.013 110.012 181.019-181.018-110.012-110.013c-33.326-33.325-33.326-87.355 0-120.68 33.323-33.325 87.356-33.325 120.678 0l301.7 301.699c33.323 33.323 33.323 87.356 0 120.678-33.327 33.327-87.356 33.327-120.683 0l-110.012-110.012-181.018 181.018 110.012 110.016c33.327 33.323 33.327 87.351 0 120.678-33.323 33.323-87.356 33.323-120.678 0l-271.529-271.531zM134.877 828.783l45.255-45.252-60.34-60.343c-16.662-16.661-16.662-43.674 0-60.339 16.663-16.661 43.677-16.661 60.34 0l181.019 181.022c16.662 16.661 16.662 43.678 0 60.339s-43.677 16.661-60.34 0l-60.34-60.339-45.255 45.252-60.34-60.339zM828.783 134.877l60.339 60.34-45.252 45.255 60.339 60.34c16.661 16.663 16.661 43.677 0 60.34s-43.678 16.663-60.339 0l-181.022-181.019c-16.661-16.663-16.661-43.677 0-60.34 16.666-16.662 43.678-16.662 60.339 0l60.343 60.34 45.252-45.255z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "dumbbell"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1700,
+            "id": 862,
+            "prevSize": 24,
+            "code": 59306,
+            "name": "dumbbell"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 426
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 224.788l-63.351 63.351c40.162 65.062 63.334 141.724 63.334 223.802 0 235.605-191.019 426.667-426.667 426.667-82.074 0-158.733-23.177-223.794-63.343l-63.401 63.403-54.121-54.49 713.51-713.51 54.49 54.121zM763.546 742.042c55.595-60.715 89.771-141.312 89.771-230.101 0-58.372-14.669-113.285-40.512-161.292l-180.1 180.104c4.595 6.805 7.279 15.010 7.279 23.855v128h42.667c38.016 0 69.888 25.045 80.896 59.435zM469.316 850.287v-82.347c-20.634 0-39.548-7.322-54.298-19.503l-64.16 64.158c36.095 19.341 76.073 32.393 118.458 37.692zM639.983 195.651v17.621c0 47.104-38.229 85.333-85.333 85.333h-85.333v85.333c0 23.552-19.115 42.667-42.667 42.667h-85.333v85.335h92.975l-89.153 89.152-165.614-165.611c-5.632 24.619-8.875 50.133-8.875 76.459 0 74.441 23.859 143.266 64.342 199.3l-61.050 61.052c-55.571-72.047-88.625-162.347-88.625-260.352 0-235.649 191.019-426.668 426.667-426.668 98.018 0 188.318 33.051 260.361 88.617l-61.111 61.111c-21.943-15.796-45.841-29.055-71.249-39.349z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "earth-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1701,
+            "id": 861,
+            "prevSize": 24,
+            "code": 59307,
+            "name": "earth-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 427
+    }, {
+        "icon": {
+            "paths": [
+                "M763.546 742.042c-11.008-34.389-42.88-59.435-80.896-59.435h-42.667v-128c0-23.595-19.115-42.667-42.667-42.667h-256v-85.335h85.333c23.552 0 42.667-19.115 42.667-42.667v-85.333h85.333c47.104 0 85.333-38.229 85.333-85.333v-17.621c125.013 50.645 213.333 173.056 213.333 316.289 0 88.789-34.176 169.387-89.771 230.101zM469.316 850.287c-168.32-21.035-298.667-164.352-298.667-338.347 0-26.325 3.243-51.84 8.875-76.459l204.458 204.459v42.667c0 47.104 38.187 85.333 85.334 85.333zM511.983 85.272c-235.648 0-426.667 191.019-426.667 426.668 0 235.605 191.019 426.667 426.667 426.667s426.667-191.061 426.667-426.667c0-235.649-191.019-426.668-426.667-426.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "earth"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1702,
+            "id": 860,
+            "prevSize": 24,
+            "code": 59308,
+            "name": "earth"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 428
+    }, {
+        "icon": {
+            "paths": [
+                "M162.336 448.299c-34.814 0-70.091 22.042-70.091 60.685h136.763c0-36.399-27.027-60.685-66.672-60.685zM164.046 416.669c87.889 0 113.472 57.644 114.505 96.671v-178.727h47.865v117.957c0 0 20.289-35.258 85.585-35.258 69.726 0 111.011 49.249 111.011 110.48 0 7.488-0.58 14.72-1.711 21.658 11.281-31.663 50.313-47.3 114.539-47.3h58.125v-10.257c0-28.821-25.378-43.81-58.125-43.81-50.394 0-52.992 31.842-52.992 31.842h-49.574c0-8.717 6.383-63.254 105.984-63.254 33.924 0 71.053 7.083 89.967 34.996l-14.089-26.438h55.774l80.043 160.356 79.859-160.356h50.526l-145.463 285.493h-52.996l41.975-79.586-89.135-167.279c3.913 9.591 6.114 21.018 6.114 34.607v103.053c0 11.921 1.711 30.558 1.711 30.558h-44.075c0 0-1.173-15.040-1.173-30.293 0 0-22.362 38.357-91.785 38.357-50.935 0-88.627-24.525-88.627-69.606 0-2.53 0.124-4.988 0.371-7.373-13.193 46.327-52.83 76.395-106.36 76.395-62.84 0-85.95-36.156-85.95-36.156 0 13.696-1.681 28.676-1.681 28.676h-46.773c0 0 1.061-20.864 1.061-35.721v-55.782h-187.39c0 39.433 29.954 67.567 71.603 67.567 51.136 0 61.65-35.895 61.65-35.895h49.042c0 0-6.489 66.667-107.701 66.667-85.988 0-123.086-42.274-123.086-109.41 0-84.74 55.169-112.829 121.376-112.829zM399.927 449.685c-50.295 0-73.51 39.851-73.51 78.532 0 41.51 25.871 78.959 73.831 78.959 40.187 0 73.19-31.394 73.19-79.386 0-44.757-28.578-78.106-73.511-78.106zM693.965 532.924c-75.268 0-126.502 0.235-126.502 37.606 0 20.54 15.215 38.251 50.697 38.251 64.798 0 75.806-44.348 75.806-62.187v-13.67z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "ebay"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1703,
+            "id": 859,
+            "prevSize": 24,
+            "code": 59309,
+            "name": "ebay"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 429
+    }, {
+        "icon": {
+            "paths": [
+                "M116.768 461.129c46.615-519.202 843.902-519.202 787.642 117.342h-536.882c0 183.245 247.543 241.114 466.154 117.342v180.032c-268.442 143.061-620.467 38.579-620.467-274.871 0-234.69 212.181-310.234 212.181-310.234s-59.475 75.549-61.082 138.24h305.414c0-303.805-417.934-191.285-552.958 32.149z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "edge"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1704,
+            "id": 858,
+            "prevSize": 24,
+            "code": 59310,
+            "name": "edge"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 430
+    }, {
+        "icon": {
+            "paths": [
+                "M512 213.333l-284.587 426.667h569.173zM213.333 725.333h597.333v85.333h-597.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "eject"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1705,
+            "id": 857,
+            "prevSize": 24,
+            "code": 59311,
+            "name": "eject"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 431
+    }, {
+        "icon": {
+            "paths": [
+                "M896 896h-768l0-416 275.394 158.997 160.766-92.817 331.84 191.59v158.229zM128 381.466v-93.466l275.394 158.997 160.766-92.817 331.84 191.59v93.466l-331.84-191.59-160.766 92.817-275.394-158.997z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "elevation-decline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1706,
+            "id": 856,
+            "prevSize": 24,
+            "code": 59312,
+            "name": "elevation-decline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 432
+    }, {
+        "icon": {
+            "paths": [
+                "M128 896v-158.229l331.84-191.59 160.768 92.817 275.392-158.997v416h-768zM896 381.466l-275.396 158.997-160.764-92.817-331.84 191.59v-93.466l331.84-191.59 160.768 92.817 275.392-158.997v93.466z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "elevation-rise"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1707,
+            "id": 855,
+            "prevSize": 24,
+            "code": 59313,
+            "name": "elevation-rise"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 433
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 85.333l170.667 170.667h-128v170.666h-85.333v-170.666h-128l170.667-170.667zM725.333 426.667l-170.667-170.666h128v-170.666h85.333v170.666h128l-170.667 170.666zM298.667 512h426.667c47.13 0 85.333 38.204 85.333 85.333v256c0 47.13-38.204 85.333-85.333 85.333h-426.667c-47.128 0-85.333-38.204-85.333-85.333v-256c0-47.13 38.205-85.333 85.333-85.333zM298.667 597.333v256h426.667v-256h-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "elevator"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1708,
+            "id": 854,
+            "prevSize": 24,
+            "code": 59314,
+            "name": "elevator"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 434
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 341.333v426.667c0 47.13-38.204 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333v-426.667c0-32.162 17.792-60.168 44.071-74.712l382.596-220.892 382.588 220.887c26.283 14.543 44.079 42.551 44.079 74.716zM170.667 341.333l341.333 213.333 341.333-213.333-341.333-213.333-341.333 213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "email-open"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1709,
+            "id": 853,
+            "prevSize": 24,
+            "code": 59315,
+            "name": "email-open"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 435
+    }, {
+        "icon": {
+            "paths": [
+                "M874.667-0c58.88 0 106.667 47.787 106.667 106.667v21.333c23.467 0 42.667 19.2 42.667 42.667v170.666c0 23.467-19.2 42.667-42.667 42.667h-213.333c-23.467 0-42.667-19.2-42.667-42.667v-170.666c0-23.467 19.2-42.667 42.667-42.667v-21.333c0-58.88 47.787-106.667 106.667-106.667zM512 469.342l-341.333-213.333v85.333l341.333 213.333 178.419-111.514c21.525 16.427 48.414 26.18 77.581 26.18h170.667v298.667c0 46.933-38.4 85.333-85.333 85.333h-682.667c-46.933 0-85.333-38.4-85.333-85.333l0.427-512c0-46.933 37.973-85.333 84.907-85.333h469.333v170.667c0 15.199 2.65 29.78 7.509 43.305l-135.509 84.695zM874.667 42.667c-35.345 0-64 28.654-64 64v21.333h128v-21.333c0-35.346-28.655-64-64-64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "email-secure"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1710,
+            "id": 852,
+            "prevSize": 24,
+            "code": 59316,
+            "name": "email-secure"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 436
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 341.251l-341.333 213.335-341.333-213.335v-85.333l341.333 213.335 341.333-213.335zM853.308 170.584h-682.667c-47.147 0-84.907 38.186-84.907 85.333l-0.426 512.001c0 47.104 38.187 85.333 85.333 85.333h682.667c47.104 0 85.333-38.229 85.333-85.333v-512.001c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "email"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1711,
+            "id": 851,
+            "prevSize": 24,
+            "code": 59317,
+            "name": "email"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 437
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 426.667c0 58.91-90.423 106.667-149.333 106.667s-117.333-47.757-117.333-106.667h-64c0 58.91-58.423 106.667-117.333 106.667s-149.333-47.757-149.333-106.667h-31.913c-7.020 27.273-10.753 55.868-10.753 85.333 0 188.514 152.82 341.333 341.333 341.333 188.514 0 341.333-152.819 341.333-341.333 0-29.466-3.733-58.061-10.752-85.333h-31.915zM512 170.666c-126.342 0-236.651 68.642-295.669 170.667h591.34c-59.021-102.025-169.327-170.667-295.671-170.667zM938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.666-191.027-426.666-426.667 0-235.642 191.025-426.667 426.666-426.667 235.639 0 426.667 191.025 426.667 426.667zM512 735.155c-74.769 0-140.556-30.771-178.649-77.35l60.473-60.471c19.298 30.827 64.941 52.489 118.176 52.489s98.88-21.662 118.178-52.489l60.471 60.471c-38.093 46.579-103.881 77.35-178.65 77.35z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "emoticon-cool"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1712,
+            "id": 850,
+            "prevSize": 24,
+            "code": 59318,
+            "name": "emoticon-cool"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 438
+    }, {
+        "icon": {
+            "paths": [
+                "M64.032 89.030c38.509 38.065 100.949 70.092 178.559 92.1 73.46-59.887 167.241-95.796 269.409-95.796 102.165 0 195.947 35.91 269.41 95.797 77.606-22.008 140.049-54.036 178.556-92.1-1.203 69.6-36.42 133.471-94.554 183.846 46.242 68.208 73.254 150.511 73.254 239.124 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-88.612 27.013-170.915 73.254-239.124-58.133-50.375-93.349-114.246-94.555-183.846zM853.333 512c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333zM448 426.667c0 34.133-29.867 64-64 64s-64-29.867-64-64v-64l128 64zM704 426.667c0 34.133-29.867 64-64 64s-64-29.867-64-64l128-64v64zM512 735.159c-74.769 0-140.557-30.775-178.649-77.355l60.473-60.471c19.298 30.827 64.941 52.489 118.176 52.489s98.88-21.662 118.174-52.489l60.476 60.471c-38.093 46.579-103.881 77.355-178.65 77.355z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "emoticon-devil"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1713,
+            "id": 849,
+            "prevSize": 24,
+            "code": 59319,
+            "name": "emoticon-devil"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 439
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 512c0-188.513-152.819-341.333-341.333-341.333s-341.333 152.82-341.333 341.333c0 188.514 152.82 341.333 341.333 341.333s341.333-152.819 341.333-341.333zM938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.642 191.025-426.666 426.667-426.666 235.639 0 426.667 191.025 426.667 426.666zM426.667 405.333c0 34.133-29.867 64-64 64s-64-29.867-64-64c0-34.133 29.867-64 64-64s64 29.867 64 64zM725.333 405.333c0 34.133-29.867 64-64 64s-64-29.867-64-64c0-34.133 29.867-64 64-64s64 29.867 64 64zM512 735.159c-74.769 0-140.557-30.775-178.649-77.355l60.473-60.471c19.298 30.827 64.941 52.489 118.176 52.489s98.88-21.662 118.174-52.489l60.476 60.471c-38.093 46.579-103.881 77.355-178.65 77.355z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "emoticon-happy"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1714,
+            "id": 848,
+            "prevSize": 24,
+            "code": 59320,
+            "name": "emoticon-happy"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 440
+    }, {
+        "icon": {
+            "paths": [
+                "M362.641 469.252c-35.371 0-64-28.672-64-64.001 0-35.328 28.629-64 64-64s64 28.672 64 64c0 35.329-28.629 64.001-64 64.001zM661.308 469.252c-35.371 0-64-28.672-64-64.001s28.629-64 64-64c35.371 0 64 28.672 64 64s-28.629 64.001-64 64.001zM511.974 853.252c188.587 0 341.333-152.832 341.333-341.333s-152.747-341.334-341.333-341.334c-188.588 0-341.335 152.832-341.335 341.334s152.747 341.333 341.335 341.333zM511.761 85.252c235.776 0 426.88 191.018 426.88 426.667s-191.104 426.667-426.88 426.667c-235.82 0-426.455-191.019-426.455-426.667s190.634-426.667 426.455-426.667zM384 597.333h256c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-256c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "emoticon-neutral"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1715,
+            "id": 847,
+            "prevSize": 24,
+            "code": 59321,
+            "name": "emoticon-neutral"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 441
+    }, {
+        "icon": {
+            "paths": [
+                "M384 469.333c23.564 0 42.667 38.204 42.667 85.333s-19.103 85.333-42.667 85.333c-23.564 0-42.667-38.204-42.667-85.333s19.102-85.333 42.667-85.333zM640 469.333c23.565 0 42.667 38.204 42.667 85.333s-19.102 85.333-42.667 85.333c-23.565 0-42.667-38.204-42.667-85.333s19.102-85.333 42.667-85.333zM416 74.667c0 0 266.667 96 224 266.666 0 0 170.667 0 96 149.333 0 0 179.75 18.923 129.408 163.682-53.589 50.782-67.546 65.847-118.741 102.985l120.064-68.553c43.994 21.653 173.214 99.26 29.269 207.219-170.667 128-426.667 10.667-512 10.667s-170.667 32-213.333 32c-42.667 0-85.333-42.667-85.333-128s85.333-128 128-128c0 0-128-128 85.333-213.333 0 0-85.333-128 85.333-170.667 0 0-42.667-42.667 0-85.333s32-96 32-138.666zM341.333 725.333c56.889 49.779 113.779 99.554 170.667 99.554s113.779-49.775 170.667-99.554h-341.333zM384 426.667c-47.128 0-85.333 57.306-85.333 128s38.205 128 85.333 128c47.13 0 85.333-57.306 85.333-128s-38.204-128-85.333-128zM640 426.667c-47.13 0-85.333 57.306-85.333 128s38.204 128 85.333 128c47.13 0 85.333-57.306 85.333-128s-38.204-128-85.333-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "emoticon-poop"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1716,
+            "id": 846,
+            "prevSize": 24,
+            "code": 59322,
+            "name": "emoticon-poop"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 442
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 512c0-187.733-153.6-341.333-341.333-341.333s-341.333 153.6-341.333 341.333c0 187.733 153.6 341.333 341.333 341.333s341.333-153.6 341.333-341.333zM938.667 512c0 234.667-192 426.667-426.667 426.667s-426.667-192-426.667-426.667c0-234.667 192-426.666 426.667-426.666s426.667 192 426.667 426.666zM661.333 341.333c34.133 0 64 29.867 64 64s-29.867 64-64 64c-34.133 0-64-29.867-64-64s29.867-64 64-64zM426.667 405.333c0 34.133-29.867 64-64 64s-64-29.867-64-64c0-34.133 29.867-64 64-64s64 29.867 64 64zM512 597.333c74.769 0 140.557 30.771 178.65 77.35l-60.476 60.471c-19.294-30.822-64.939-52.489-118.174-52.489s-98.878 21.666-118.176 52.489l-60.473-60.471c38.092-46.579 103.88-77.35 178.649-77.35z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "emoticon-sad"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1717,
+            "id": 845,
+            "prevSize": 24,
+            "code": 59323,
+            "name": "emoticon-sad"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 443
+    }, {
+        "icon": {
+            "paths": [
+                "M384 341.333c47.13 0 85.333 38.205 85.333 85.333 0 15.543-4.156 30.114-11.418 42.667-14.754-25.506-42.33-42.667-73.916-42.667s-59.163 17.161-73.917 42.667c-7.261-12.553-11.416-27.123-11.416-42.667 0-47.128 38.205-85.333 85.333-85.333zM640 341.333c47.13 0 85.333 38.205 85.333 85.333 0 15.543-4.156 30.114-11.418 42.667-14.754-25.506-42.33-42.667-73.916-42.667s-59.162 17.161-73.916 42.667c-7.262-12.553-11.418-27.123-11.418-42.667 0-47.128 38.204-85.333 85.333-85.333zM511.974 853.252c188.587 0 341.333-152.832 341.333-341.333s-152.747-341.334-341.333-341.334c-188.588 0-341.335 152.832-341.335 341.334s152.747 341.333 341.335 341.333zM511.761 85.252c235.776 0 426.88 191.018 426.88 426.667s-191.104 426.667-426.88 426.667c-235.82 0-426.455-191.019-426.455-426.667s190.634-426.667 426.455-426.667zM384 554.667h256c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667c0 85.333-38.204 128-85.333 128s-85.333-42.667-85.333-128h-85.334c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "emoticon-tongue"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1718,
+            "id": 844,
+            "prevSize": 24,
+            "code": 59324,
+            "name": "emoticon-tongue"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 444
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 746.586c99.413 0 183.68-62.123 217.899-149.333h-435.797c34.219 87.211 118.485 149.333 217.899 149.333zM362.641 469.252c35.37 0 64-28.672 64-64.001 0-35.328-28.63-64-64-64s-64 28.672-64 64c0 35.329 28.629 64.001 64 64.001zM661.308 469.252c35.371 0 64-28.672 64-64.001 0-35.328-28.629-64-64-64s-64 28.672-64 64c0 35.329 28.629 64.001 64 64.001zM511.974 853.252c-188.587 0-341.334-152.832-341.334-341.333 0-188.503 152.747-341.335 341.334-341.335s341.333 152.832 341.333 341.335c0 188.501-152.747 341.333-341.333 341.333zM511.761 85.251c-235.819 0-426.454 191.019-426.454 426.668 0 235.648 190.635 426.667 426.454 426.667 235.776 0 426.88-191.019 426.88-426.667 0-235.649-191.104-426.668-426.88-426.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "emoticon"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1719,
+            "id": 843,
+            "prevSize": 24,
+            "code": 59325,
+            "name": "emoticon"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 445
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 426.667h341.333v341.333h-213.333l-85.333-85.333h-85.333v-213.333zM298.667 170.667v85.333h128v85.333h-128l-85.333 85.333v128h-85.333v-128h-85.333v341.333h85.333v-128h85.333v128h128l85.333 85.333h341.333v-170.667h85.333v128h128v-426.667h-128v128h-85.333v-170.667h-256v-85.333h128v-85.333h-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "engine-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1720,
+            "id": 842,
+            "prevSize": 24,
+            "code": 59326,
+            "name": "engine-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 446
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 170.667v85.333h128v85.333h-128l-85.333 85.333v128h-85.333v-128h-85.333v341.333h85.333v-128h85.333v128h128l85.333 85.333h341.333v-170.667h85.333v128h128v-426.667h-128v128h-85.333v-170.667h-256v-85.333h128v-85.333h-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "engine"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1721,
+            "id": 841,
+            "prevSize": 24,
+            "code": 59327,
+            "name": "engine"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 447
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 682.62v-85.333h-426.668v85.333h426.668zM810.641 127.92c47.061 0 85.333 38.229 85.333 85.333v597.332c0 47.104-38.272 85.333-85.333 85.333h-597.333c-47.189 0-85.333-38.229-85.333-85.333v-597.332c0-47.104 38.144-85.333 85.333-85.333h597.333zM725.333 426.667v-85.333h-426.667v85.333h426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "equal-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1722,
+            "id": 840,
+            "prevSize": 24,
+            "code": 59328,
+            "name": "equal-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 448
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 426.667h-597.333v-85.333h597.333v85.333zM810.667 682.667h-597.333v-85.333h597.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "equal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1723,
+            "id": 839,
+            "prevSize": 24,
+            "code": 59329,
+            "name": "equal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 449
+    }, {
+        "icon": {
+            "paths": [
+                "M693.018 151.792l211.191 211.189c33.323 33.324 33.323 87.353 0 120.68l-392.209 392.209c-66.65 66.65-174.709 66.65-241.359 0l-150.85-150.852c-33.324-33.323-33.324-87.351 0-120.678l452.548-452.548c33.327-33.324 87.356-33.324 120.678 0zM180.131 664.678l150.849 150.852c33.325 33.323 87.355 33.323 120.68 0l150.848-150.852-211.188-211.187-211.189 211.187z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "eraser"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1724,
+            "id": 838,
+            "prevSize": 24,
+            "code": 59330,
+            "name": "eraser"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 450
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 341.333h-44.941l-512 512h-125.726c-47.128 0-85.333-38.204-85.333-85.333s38.205-85.333 85.333-85.333h55.034l72.966-72.964v-183.036c0-23.564 19.102-42.667 42.667-42.667h42.667c23.564 0 42.667 19.103 42.667 42.667v55.036l311.031-311.036h115.635c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333zM362.667 213.333c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64s28.654-64 64-64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "escalator"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1725,
+            "id": 837,
+            "prevSize": 24,
+            "code": 59331,
+            "name": "escalator"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 451
+    }, {
+        "icon": {
+            "paths": [
+                "M286.562 886.652c64.703-2.816 143.292 0 219.9 0 79.087 0 160.064-5.261 223.838 0 25.758 2.125 49.468 17.557 70.703 3.9 16.388-21.107 4.233-49.442 7.859-77.828 6.874-53.918 56.589-118.541-15.727-132.301-30.805 28.079-10.039 54.724-27.477 89.506-21.111 42.095-96.802 56.661-168.862 62.242-61.841 4.8-170.245 10.995-192.435-31.125-18.734-35.546-7.869-90.684-7.869-136.183 0-51.473-5.522-100.736 7.869-140.092 78.562 5.743 180.173-26.185 235.631 7.787 37.094 22.733 16.004 67.23 58.91 81.702 29.53-7.919 13.764-46.097 11.767-81.702-1.271-22.959-1.169-55.215 0-81.724 1.579-35.769 15.398-77.275-23.573-77.812-30.605 23.788-7.586 63.43-39.27 85.595-10.121 7.095-32.107 10.099-47.095 11.686-58.846 6.212-151.168 1.143-200.303-7.791-6.769-71.712-6.179-169.436 0-241.249 26.671-26.484 88.022-27.405 129.6-27.243 72.845 0.282 186.445 6.349 208.132 42.802 11.797 19.834 2.449 61.348 23.565 66.145 42.496 9.696 21.841-66.119 23.573-101.173 1.28-26.279 12.898-43.194 7.838-62.261-13.751-18.786-34.244-9.371-47.104-7.775-133.649 16.523-336.609 7.775-479.108 7.775-17.018 0-46.746-8.484-58.908 11.675-8.219 44.954 53.138 26.365 74.612 50.586 6.982 7.879 17.3 42.675 19.63 66.163 6.214 62.365 0 157.605 0 249.031 0 96.606 7.34 194.057 0 252.941-2.552 20.561-14.961 53.675-19.63 58.359-26.757 26.731-97.486-2.867-90.333 54.49 24.853 16.725 60.854 5.333 94.268 3.874z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "etsy"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1726,
+            "id": 836,
+            "prevSize": 24,
+            "code": 59332,
+            "name": "etsy"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 452
+    }, {
+        "icon": {
+            "paths": [
+                "M643.691 496.23c0 0 8.145-54.498 39.735-54.498 31.612 0 75.017 72.772 75.017 72.772s-99.017-18.274-114.752-18.274zM810.039 199.974c-14.741-25.411-91.874-54.69-131.904-54.69-39.983 0-103.151 0-103.151 0s-33.118-59.951-110.98-59.951c-77.927 0-72.684 34.732-72.684 64.389v119.894l-35.318 37.281h-163.092c0 0-45.947 30.388-45.947 96.075s20.385 294.59 157.26 315.761c161.944 25.088 189.669-50.176 189.669-59.221 0-38.114 0.956-95.868 0.956-95.868s47.428 90.607 119.040 90.607c71.616 0 113.259 41.139 113.259 83.494 0 42.402 0 78.391 0 78.391s-2.667 49.067-44.753 49.067c-42.155 0-89.877 0-89.877 0s-29.495-22.972-29.495-54.746c0-31.761 14.421-40.393 31.262-40.393 16.828 0 30.66 1.954 30.66 1.954v-66.825c0 0-135.633-0.883-135.633 102.967 0 103.825 70.933 130.505 127.804 130.505 56.811 0 92.642 0 92.642 0s167.283-21.513 167.283-352c0-330.525-52.245-361.264-66.999-386.693zM320.058 269.227l-138.316-0.152 173.293-174.355 0.038 140.62-35.015 33.887z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "evernote"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1727,
+            "id": 835,
+            "prevSize": 24,
+            "code": 59333,
+            "name": "evernote"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 453
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 192h85.333v469.333h-85.333v-469.333zM554.667 746.667v85.333h-85.333v-85.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "exclamation"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1728,
+            "id": 834,
+            "prevSize": 24,
+            "code": 59334,
+            "name": "exclamation"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 454
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 127.917h-597.334c-47.147 0-85.333 38.229-85.333 85.333v170.667h85.333v-170.667h597.334v597.331h-597.334v-170.667h-85.333v170.667c0 47.108 38.187 85.333 85.333 85.333h597.334c47.104 0 85.333-38.225 85.333-85.333v-597.331c0-47.104-38.229-85.333-85.333-85.333zM430.268 664.917l60.373 60.331 213.333-213.333-213.333-213.331-60.373 60.331 110.336 110.334h-412.63v85.333h412.63l-110.336 110.336z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "exit-to-app"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1729,
+            "id": 833,
+            "prevSize": 24,
+            "code": 59335,
+            "name": "exit-to-app"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 455
+    }, {
+        "icon": {
+            "paths": [
+                "M981.333 512l-170.667-170.665v127.999h-384v85.333h384v128zM42.667 768v-511.999c0-47.36 38.4-85.333 85.333-85.333l512-0.001c46.933 0 85.333 37.973 85.333 85.333v128h-85.333v-128l-512 0v511.999h512v-128h85.333v128c0 46.933-38.4 85.333-85.333 85.333h-512c-46.933 0-85.333-37.973-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "export"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1730,
+            "id": 832,
+            "prevSize": 24,
+            "code": 59336,
+            "name": "export"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 456
+    }, {
+        "icon": {
+            "paths": [
+                "M504.934 384.63l134.315 134.312c0.128-2.385 0.725-4.608 0.725-7.040 0-70.694-57.301-127.998-128-127.998-2.432 0-4.651 0.596-7.040 0.727zM321.211 418.164l66.005 65.962c-2.005 8.964-3.242 18.219-3.242 27.776 0 70.699 57.302 128 128 128 9.6 0 18.859-1.233 27.776-3.2l66.005 65.967c-28.416 13.995-59.989 22.566-93.781 22.566-117.803 0-213.334-95.484-213.334-213.333 0-33.792 8.576-65.323 22.57-93.738zM85.307 182.219l116.651 116.693c-70.4 55.125-125.995 128.425-159.318 212.99 73.728 187.264 255.914 320 469.334 320 66.133 0 129.237-12.796 187.051-35.921l18.091 18.044 124.544 124.587 54.315-54.31-756.352-756.355zM511.974 298.57c117.803 0 213.333 95.532 213.333 213.332 0 27.563-5.632 53.722-15.147 77.909l124.672 124.672c64.341-53.803 115.243-123.221 146.475-202.581-73.728-187.261-255.872-319.998-469.333-319.998-59.733 0-116.865 10.708-169.985 29.781l92.076 92.076c24.192-9.516 50.347-15.19 77.909-15.19z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "eye-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1731,
+            "id": 831,
+            "prevSize": 24,
+            "code": 59337,
+            "name": "eye-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 457
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 383.92c-70.699 0-128 57.3-128 127.999s57.301 128 128 128c70.699 0 128-57.301 128-128s-57.301-127.999-128-127.999zM511.974 725.252c-117.802 0-213.333-95.531-213.333-213.333 0-117.801 95.531-213.332 213.333-213.332s213.333 95.531 213.333 213.332c0 117.803-95.531 213.333-213.333 213.333zM511.974 191.92c-213.418 0-395.605 132.737-469.333 319.999 73.728 187.264 255.915 320 469.333 320 213.461 0 395.605-132.736 469.333-320-73.728-187.262-255.872-319.999-469.333-319.999z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "eye"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1732,
+            "id": 830,
+            "prevSize": 24,
+            "code": 59338,
+            "name": "eye"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 458
+    }, {
+        "icon": {
+            "paths": [
+                "M295.253 810.667l-81.92-81.92 343.893-343.893 81.92 81.92zM883.627 240.213l-99.84-99.84c-16.64-16.64-43.52-16.64-60.16 0l-133.12 133.12-82.347-81.493-60.16 60.16 60.587 60.587-380.587 380.587v202.667h202.667l380.587-380.587 60.587 60.587 60.16-60.16-81.92-81.92 133.12-133.12c17.067-17.067 17.067-43.947 0.427-60.587z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "eyedropper-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1733,
+            "id": 829,
+            "prevSize": 24,
+            "code": 59339,
+            "name": "eyedropper-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 459
+    }, {
+        "icon": {
+            "paths": [
+                "M825.438 500.262l-90.509 90.509-60.339-60.339-328.969 328.964-196.288 79.27-64-64 79.27-196.288 328.965-328.966-60.339-60.341 90.509-90.51 301.7 301.7zM714.982 128.002c49.984-49.987 131.029-49.987 181.018 0s49.988 131.031 0 181.018l-81.988 81.987-181.018-181.018 81.988-81.987zM237.125 726.537l-45.125 105.463 105.464-45.124 316.782-316.783-60.339-60.341-316.783 316.785z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "eyedropper"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1734,
+            "id": 828,
+            "prevSize": 24,
+            "code": 59340,
+            "name": "eyedropper"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 460
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 170.584v128h-85.333c-23.552 0-42.667 19.072-42.667 42.667v85.333h128v128.001h-128v298.667h-128v-298.667h-85.333v-128.001h85.333v-106.667c0-82.517 66.859-149.333 149.333-149.333zM853.308 85.251h-682.667c-47.104 0-84.906 38.186-84.906 85.333l-0.427 682.668c0 47.083 38.229 85.333 85.333 85.333h682.667c47.104 0 85.333-38.251 85.333-85.333v-682.668c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "facebook-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1735,
+            "id": 827,
+            "prevSize": 24,
+            "code": 59341,
+            "name": "facebook-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 461
+    }, {
+        "icon": {
+            "paths": [
+                "M725.312 85.333v0.083h0.026v170.666h-85.338c-29.44 0-42.667 34.507-42.667 64v106.665h128v170.667h-128v341.333l-170.688-0.081 0.021-341.252h-128v-170.667h128l0.004-170.666c0-94.257 76.407-170.666 170.667-170.666l127.974-0.082z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "facebook"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1736,
+            "id": 826,
+            "prevSize": 24,
+            "code": 59342,
+            "name": "facebook"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 462
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 768v85.333h170.667v-85.333h-170.667zM170.667 597.333v85.333h426.667v-85.333h-426.667zM426.667 768v85.333h170.667v-85.333h-170.667zM682.667 597.333v85.333h170.667v-85.333h-170.667zM682.667 768v85.333h170.667v-85.333h-170.667zM85.333 938.667v-597.333l213.333 170.666v-170.666l213.333 170.666v-170.666l213.333 170.666 42.667-426.666 128-0 42.667 426.667v426.667h-853.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "factory"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1737,
+            "id": 825,
+            "prevSize": 24,
+            "code": 59343,
+            "name": "factory"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 463
+    }, {
+        "icon": {
+            "paths": [
+                "M512 469.333c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667zM533.333 85.333c192 0 196.753 152.288 96 202.666-42.219 21.11-60.941 65.72-69.077 105.409 20.535 8.364 38.409 21.906 51.998 39.006 157.79-85.396 327.522-51.978 327.522 100.254 0 192-152.286 196.753-202.667 96-21.248-42.496-66.304-61.184-106.185-69.239-8.218 20.582-21.619 38.532-38.596 52.233 84.74 157.517 51.149 326.562-100.774 326.562-191.999 0-196.754-152.29-95.999-202.667 41.957-20.979 60.705-65.165 68.927-104.666-20.834-8.337-38.967-21.986-52.719-39.279-157.542 84.804-326.653 51.23-326.653-100.723 0-191.999 152.288-196.754 202.666-95.999 21.132 42.265 65.812 60.978 105.53 69.102 8.364-20.655 21.964-38.634 39.153-52.285-84.613-157.463-50.989-326.374 100.873-326.374z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "fan"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1738,
+            "id": 824,
+            "prevSize": 24,
+            "code": 59344,
+            "name": "fan"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 464
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 255.917v511.998l362.667-256zM170.639 767.915l362.668-256-362.668-255.998v511.998z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "fast-forward"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1739,
+            "id": 823,
+            "prevSize": 24,
+            "code": 59345,
+            "name": "fast-forward"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 465
+    }, {
+        "icon": {
+            "paths": [
+                "M255.974 255.918h512v169.173l-256-83.84-256 83.84zM168.294 810.586h2.346c68.352 0 128.937-37.632 170.667-85.333 41.685 47.701 102.272 85.333 170.667 85.333 68.352 0 128.939-37.632 170.667-85.333 41.685 47.701 102.272 85.333 170.667 85.333h2.347l80.811-285.184c3.627-10.923 2.688-22.912-2.603-33.152-5.333-10.24-14.549-17.877-25.643-21.205l-54.912-18.005v-197.121c0-47.147-38.229-85.333-85.333-85.333h-128v-128h-256v128h-128c-47.104 0-85.333 38.187-85.333 85.333v197.121l-54.912 18.005c-11.094 3.328-20.31 10.965-25.643 21.205-5.292 10.24-6.229 22.229-2.601 33.152zM853.308 895.919c-59.349 0-118.656-20.053-170.667-56.491-104.021 72.917-237.355 72.917-341.334 0-52.010 36.437-111.318 56.491-170.667 56.491h-85.333v85.333h85.333c58.667 0 116.906-14.793 170.667-42.411 107.478 55.253 233.814 55.253 341.334 0 53.76 27.618 112 42.411 170.667 42.411h85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "ferry"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1740,
+            "id": 822,
+            "prevSize": 24,
+            "code": 59346,
+            "name": "ferry"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 466
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 383.918h234.667l-234.667-234.667v234.667zM255.974 85.251h341.334l256 256v512.001c0 47.104-38.229 85.333-85.333 85.333h-512.428c-47.104 0-84.906-38.229-84.906-85.333l0.427-682.668c0-47.104 37.759-85.333 84.906-85.333zM668.907 640.768c-14.532-73.408-79.232-128.768-156.907-128.768-61.696 0-115.136 34.965-141.854 86.123-64.162 6.891-114.146 61.205-114.146 127.211 0 70.699 57.301 128 128 128h277.333c58.901 0 106.667-47.744 106.667-106.667 0-56.32-43.797-101.952-99.093-105.899z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-cloud"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1741,
+            "id": 821,
+            "prevSize": 24,
+            "code": 59347,
+            "name": "file-cloud"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 467
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 383.918h234.667l-234.667-234.667v234.667zM255.974 85.251h341.334l256 256v512.001c0 47.104-38.229 85.333-85.333 85.333h-512.428c-47.104 0-84.906-38.229-84.906-85.333l0.427-682.668c0-47.104 37.759-85.333 84.906-85.333zM597.333 640v-170.667h-170.667v170.667h98.133c12.8 85.333-12.8 128-110.933 186.935l49.067 34.931c91.733-51.2 134.4-179.2 134.4-221.867z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-delimited"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1742,
+            "id": 820,
+            "prevSize": 24,
+            "code": 59348,
+            "name": "file-delimited"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 468
+    }, {
+        "icon": {
+            "paths": [
+                "M597.734 725.252h-299.094v-85.333h299.094zM725.734 554.586h-427.094v-85.333h427.094zM725.734 383.918h-427.094v-85.333h427.094zM810.641 127.918h-597.334c-47.147 0-85.333 38.229-85.333 85.333v597.335c0 47.104 38.187 85.333 85.333 85.333h597.334c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-document-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1743,
+            "id": 819,
+            "prevSize": 24,
+            "code": 59349,
+            "name": "file-document-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 469
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 383.918h234.667l-234.667-234.667v234.667zM255.974 85.251h341.334l256 256v512.001c0 47.104-38.229 85.333-85.333 85.333h-512.428c-47.104 0-84.906-38.229-84.906-85.333l0.427-682.668c0-47.104 37.759-85.333 84.906-85.333zM640 768v-85.333h-384.426v85.333h384.426zM768 597.333v-85.333h-512.426v85.333h512.426z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-document"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1744,
+            "id": 818,
+            "prevSize": 24,
+            "code": 59350,
+            "name": "file-document"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 470
+    }, {
+        "icon": {
+            "paths": [
+                "M691.183 725.252h-85.333l-93.867-162.133-93.867 162.133h-85.333l136.534-213.333-136.534-213.335h85.333l93.867 162.135 93.867-162.135h85.333l-136.533 213.335zM810.65 127.918h-597.333c-47.147 0-85.333 38.229-85.333 85.333v597.335c0 47.104 38.186 85.333 85.333 85.333h597.333c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-excel-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1745,
+            "id": 817,
+            "prevSize": 24,
+            "code": 59351,
+            "name": "file-excel-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 471
+    }, {
+        "icon": {
+            "paths": [
+                "M256 85.333l341.333 0 256 256v512c0 47.13-38.204 85.333-85.333 85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333zM554.667 149.335v234.667h234.667l-234.667-234.667zM725.333 469.333h-170.667v85.333h42.667l-85.333 71.113-85.333-71.113h42.667v-85.333h-170.667v85.333h42.667l128 106.667-128 106.667h-42.667v85.333h170.667v-85.333h-42.667l85.333-71.113 85.333 71.113h-42.667v85.333h170.667v-85.333h-42.667l-128-106.667 128-106.667h42.667v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-excel"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1746,
+            "id": 816,
+            "prevSize": 24,
+            "code": 59352,
+            "name": "file-excel"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 472
+    }, {
+        "icon": {
+            "paths": [
+                "M384 554.667c0 70.827 57.173 128 128 128s128-57.173 128-128c0-70.827-57.173-128-128-128s-128 57.173-128 128zM853.333 835.84v-494.507l-256-256h-341.333c-46.933 0-84.907 38.4-84.907 85.333l-0.427 682.667c0 46.933 37.973 85.333 84.907 85.333h512.427c19.2 0 36.267-6.4 50.773-17.067l-189.013-189.013c-34.133 22.187-74.24 35.413-117.76 35.413-117.76 0-213.333-95.573-213.333-213.333s95.573-213.333 213.333-213.333c117.76 0 213.333 95.573 213.333 213.333 0 43.52-13.227 83.627-35.413 117.333l163.413 163.84z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-find"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1747,
+            "id": 815,
+            "prevSize": 24,
+            "code": 59353,
+            "name": "file-find"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 473
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 383.918h42.692v85.416h-128v-170.667h85.308v85.251zM789.308 383.918l-90.295-90.295 53.333-53.332 100.962 100.961v85.415h-85.308v42.667h-128v-85.415h149.308zM554.667 149.277v-63.943h-42.667v85.333h42.641v85.334h-85.308v-85.333h-85.334v-85.333h-42.667v85.333h-85.333v42.667h-84.959l0.026-42.749c0-47.104 37.759-85.332 84.906-85.332h341.334l100.732 100.732-53.333 53.333-90.039-90.040zM853.308 853.252c0 47.104-38.229 85.333-85.333 85.333h-85.308v-85.252h85.333v-42.667h85.308v42.586zM768 640h85.308v128h-85.308v-128zM512 938.586v-85.252h128v85.252h-128zM341.333 938.586v-85.252h128v85.252h-128zM255.546 938.586c-47.104 0-84.906-38.229-84.906-85.333l0.053-85.252h85.306l-0 85.333h42.667v85.252h-43.12zM170.801 597.333h85.199v128h-85.28l0.080-128zM170.907 426.667h85.092l0 128h-85.173l0.080-128zM768 469.333h85.308v128h-85.308v-128zM171.014 256.001h84.986v128h-85.066l0.080-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-hidden"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1748,
+            "id": 814,
+            "prevSize": 24,
+            "code": 59354,
+            "name": "file-hidden"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 474
+    }, {
+        "icon": {
+            "paths": [
+                "M362.641 575.919l106.667 128.256 149.333-192.256 192 256h-597.334zM895.974 810.586v-597.335c0-47.147-38.229-85.333-85.333-85.333h-597.334c-47.104 0-85.333 38.186-85.333 85.333v597.335c0 47.147 38.229 85.333 85.333 85.333h597.334c47.104 0 85.333-38.187 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-image-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1749,
+            "id": 813,
+            "prevSize": 24,
+            "code": 59355,
+            "name": "file-image-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 475
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 383.918h234.667l-234.667-234.667v234.667zM255.974 85.252h341.334l256 256v512.001c0 47.104-38.229 85.333-85.333 85.333h-512.428c-47.104 0-84.906-38.229-84.906-85.333l0.427-682.668c0-47.104 37.759-85.333 84.906-85.333zM256 853.333h512v-341.333l-170.667 170.667-85.333-85.333-256 256zM341.333 384c-47.128 0-85.333 38.205-85.333 85.333 0 47.13 38.205 85.333 85.333 85.333s85.333-38.204 85.333-85.333c0-47.128-38.205-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-image"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1750,
+            "id": 812,
+            "prevSize": 24,
+            "code": 59356,
+            "name": "file-image"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 476
+    }, {
+        "icon": {
+            "paths": [
+                "M640 298.667h234.667l-234.667-234.667v234.667zM341.333 0h341.333l256 256v512c0 47.104-38.229 85.333-85.333 85.333h-512.427c-47.104 0-84.906-38.229-84.906-85.333l0.427-682.667c0-47.104 37.759-85.333 84.906-85.333zM170.667 170.667v768h682.667v85.333h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-768h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-multiple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1751,
+            "id": 811,
+            "prevSize": 24,
+            "code": 59357,
+            "name": "file-multiple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 477
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 383.918h234.667l-234.667-234.667v234.667zM255.974 85.252h341.334l256 256v512.001c0 47.104-38.229 85.333-85.333 85.333h-512.428c-47.104 0-84.906-38.229-84.906-85.333l0.427-682.668c0-47.104 37.759-85.333 84.906-85.333zM384 682.667c-47.128 0-85.333 38.204-85.333 85.333s38.205 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333v-213.333h128v-85.333h-170.667v224.751c-12.552-7.262-27.124-11.418-42.667-11.418z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-music"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1752,
+            "id": 810,
+            "prevSize": 24,
+            "code": 59358,
+            "name": "file-music"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 478
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 383.918h234.667l-234.667-234.667v234.667zM255.974 85.251h341.334l256 256v512.001c0 47.104-38.229 85.333-85.333 85.333h-512.428c-47.104 0-84.906-38.229-84.906-85.333l0.427-682.668c0-47.104 37.759-85.333 84.906-85.333zM469.333 170.667h-213.333v682.667h512v-384h-298.667v-298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1753,
+            "id": 809,
+            "prevSize": 24,
+            "code": 59359,
+            "name": "file-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 479
+    }, {
+        "icon": {
+            "paths": [
+                "M487.787 466.564c-9.899 31.872-24.107 65.664-43.349 102.741-8.405 16.171-16.597 31.36-21.035 44.203l4.651-1.792v0.043c54.144-20.907 105.344-32.853 142.549-39.467-6.485-4.565-12.501-9.216-17.835-13.824-25.216-21.717-47.488-53.291-64.981-91.904zM764.011 629.252c-6.912 8.277-20.011 12.757-38.357 12.757-32.683 0-84.395-9.771-127.36-31.531-74.453 7.723-129.365 17.877-172.715 32-2.262 0.853-4.992 1.877-7.85 3.029-53.035 90.539-92.203 130.944-126.891 130.944-6.529 0-12.843-1.493-18.731-4.437l-20.48-13.44-0.982-2.219c-3.37-7.381-3.968-14.72-2.26-22.997 4.522-22.571 27.904-58.24 80.298-90.368 8.107-5.931 20.693-12.928 37.973-20.907 12.63-22.272 26.284-48.128 40.62-77.013 21.845-43.733 35.413-87.211 46.379-124.759l-0.171-0.512c-15.701-51.669-25.173-82.73-9.344-139.307 4.651-16.469 17.835-33.109 33.92-33.109l10.069 0.086c9.984 0 18.987 3.583 25.899 10.41 28.117 28.117 15.232 96.725 0.939 153.387-0.683 2.773-1.152 4.651-1.493 6.017 16.811 48.129 40.917 86.828 68.096 109.1 10.88 8.619 23.253 17.024 36.779 24.96 19.456-2.133 38.059-3.157 55.381-3.157 52.907 0 84.693 9.557 97.195 29.312 4.523 7.040 6.357 15.189 5.248 23.509-0.341 10.837-4.48 20.565-12.16 28.245zM810.645 127.918h-597.334c-47.146 0-85.333 38.186-85.333 85.333v597.335c0 47.104 38.188 85.333 85.333 85.333h597.334c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.147-38.229-85.333-85.333-85.333zM747.2 599.13c-4.736-4.565-22.229-15.189-81.792-15.189-2.944 0-5.931 0-9.771 4.267 31.488 13.696 61.739 21.845 81.152 21.845 2.987 0 5.76-0.213 8.32-0.597l1.451-0.299c2.048-0.683 3.413-1.323 3.84-5.504-0.64-1.067-1.621-2.731-3.2-4.523zM355.392 661.167c-9.046 5.291-16.043 9.899-20.31 13.44-30.55 27.691-49.494 55.68-51.84 72.235 19.371-6.699 44.501-34.688 72.15-85.675zM484.075 366.551l2.304-1.621c3.115-13.824 5.163-25.642 6.869-35.115l1.28-6.954c4.139-23.082 3.584-36.395-4.139-46.72l-6.315-2.133c-0.811 1.237-2.048 3.072-2.859 5.034-7.125 17.707-6.869 49.025 2.859 87.509z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-pdf-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1754,
+            "id": 808,
+            "prevSize": 24,
+            "code": 59360,
+            "name": "file-pdf-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 480
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 384.001h234.667l-234.667-234.667v234.667zM298.667 85.334h341.333l256 256v511.999c0 47.104-38.229 85.333-85.333 85.333h-512.427c-47.104 0-84.906-38.229-84.906-85.333l0.427-682.666c0-47.104 37.759-85.333 84.906-85.333zM509.12 530.564c17.493 38.613 39.765 70.187 64.981 91.904l17.835 13.824c-37.205 6.613-88.405 18.56-142.549 39.467v-0.043l-4.651 1.792 21.035-44.203c19.243-37.077 33.451-70.869 43.349-102.741zM785.344 693.252c7.68-7.68 11.819-17.408 12.156-28.245 1.114-8.32-0.721-16.469-5.248-23.509-12.501-19.755-44.284-29.312-97.19-29.312l-55.381 3.157-36.779-24.96c-27.183-22.272-51.285-60.971-68.096-109.099l1.493-6.016c14.293-56.661 27.179-125.271-0.943-153.387-6.908-6.826-15.91-10.41-25.894-10.41l-10.069-0.087c-16.090 0-29.269 16.64-33.92 33.109-15.829 56.576-6.357 87.638 9.344 139.308l0.166 0.512c-10.965 37.547-24.529 81.024-46.379 124.757l-40.616 77.013-37.974 20.907c-52.394 32.128-75.776 67.797-80.297 90.368-1.708 8.277-1.111 15.616 2.26 22.997l0.981 2.219 20.481 13.44 18.729 4.437c34.687 0 73.856-40.405 126.893-130.944l7.846-3.029c43.349-14.123 98.266-24.277 172.719-32 42.965 21.76 94.677 31.531 127.356 31.531 18.351 0 31.445-4.48 38.362-12.757zM768.529 663.13l3.2 4.523c-0.427 4.181-1.792 4.821-3.836 5.504l-1.451 0.299-8.32 0.597c-19.418 0-49.668-8.149-81.152-21.845 3.84-4.267 6.822-4.267 9.771-4.267 59.563 0 77.052 10.624 81.788 15.189zM376.724 725.167c-27.649 50.987-52.778 78.976-72.149 85.675 2.345-16.555 21.29-44.544 51.84-72.235l20.309-13.44zM505.408 430.554c-9.728-38.485-9.988-69.803-2.859-87.509l2.859-5.035 6.31 2.134c7.727 10.324 8.282 23.637 4.143 46.719l-1.28 6.955-6.869 35.116-2.304 1.621z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-pdf"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1755,
+            "id": 807,
+            "prevSize": 24,
+            "code": 59361,
+            "name": "file-pdf"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 481
+    }, {
+        "icon": {
+            "paths": [
+                "M418.101 571.648h106.665c64 0 92.203-11.652 119.467-34.987 27.264-23.343 38.4-56.704 38.4-100.181 0-41.474-10.624-74.795-38.4-100.055-27.733-25.215-54.272-37.844-119.467-37.844h-183.465v426.667h76.8v-153.6zM810.633 127.914c47.147 0 85.333 38.229 85.333 85.333v597.334c0 47.147-38.187 85.333-85.333 85.333h-597.332c-47.103 0-85.333-38.187-85.333-85.333v-597.334c0-47.104 38.231-85.333 85.333-85.333h597.332zM418.1 511.919v-153.602h98.132c28.207 0 50.048 10.583 64 25.601 13.995 15.017 21.333 30.634 21.333 53.121 0 23.676-7.723 40.448-21.333 53.547-13.611 13.141-29.739 21.333-58.752 21.333h-103.38z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-powerpoint-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1756,
+            "id": 806,
+            "prevSize": 24,
+            "code": 59362,
+            "name": "file-powerpoint-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 482
+    }, {
+        "icon": {
+            "paths": [
+                "M256 85.333l341.333 0 256 256v512c0 47.13-38.204 85.333-85.333 85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333zM554.667 149.333v234.667h234.667l-234.667-234.667zM341.333 469.333v85.333h42.667v256h-42.667v42.667h170.667v-42.667h-42.667v-85.333h85.333c70.69 0 128-57.306 128-128 0-70.69-57.31-128-128-128h-213.333zM554.667 554.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-85.333v-85.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-powerpoint"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1757,
+            "id": 805,
+            "prevSize": 24,
+            "code": 59363,
+            "name": "file-powerpoint"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 483
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 682.586h-597.334v-341.335h597.334zM810.641 127.918h-597.334c-47.147 0-84.906 38.229-84.906 85.333v597.335c0 47.104 37.759 85.333 84.906 85.333h597.334c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-presentation-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1758,
+            "id": 804,
+            "prevSize": 24,
+            "code": 59364,
+            "name": "file-presentation-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 484
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 383.918h234.667l-234.667-234.667v234.667zM255.974 85.251h341.334l256 256v512.001c0 47.104-38.229 85.333-85.333 85.333h-512.428c-47.104 0-84.906-38.229-84.906-85.333l0.427-682.668c0-47.104 37.759-85.333 84.906-85.333zM725.333 810.667v-256l-128 93.867v-93.867h-298.667v256h298.667v-93.867l128 93.867z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-video"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1759,
+            "id": 803,
+            "prevSize": 24,
+            "code": 59365,
+            "name": "file-video"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 485
+    }, {
+        "icon": {
+            "paths": [
+                "M661.308 725.252h-64l-85.333-320.001-85.332 320.001h-64l-102.4-426.668h72.532l65.793 320.3 83.54-320.3h59.733l84.139 320.3 65.195-320.3h72.533zM810.641 127.918h-597.332c-47.147 0-85.333 38.229-85.333 85.333v597.335c0 47.104 38.186 85.333 85.333 85.333h597.332c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-word-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1760,
+            "id": 802,
+            "prevSize": 24,
+            "code": 59366,
+            "name": "file-word-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 486
+    }, {
+        "icon": {
+            "paths": [
+                "M256 85.333l341.333 0 256 256v512c0 47.13-38.204 85.333-85.333 85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333zM554.667 149.334v234.667h234.667l-234.667-234.667zM298.667 554.667l64 298.667h85.334l64-128 64 128h85.333l64-298.667h42.667v-85.333h-170.667v85.333h42.667l-38.4 179.2-46.933-93.867h-85.333l-46.934 93.867-38.4-179.2h42.667v-85.333h-170.667v85.333h42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-word"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1761,
+            "id": 801,
+            "prevSize": 24,
+            "code": 59367,
+            "name": "file-word"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 487
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 383.918h234.667l-234.667-234.667v234.667zM255.974 85.251h341.334l256 256v512.001c0 47.104-38.229 85.333-85.333 85.333h-512.428c-47.104 0-84.906-38.229-84.906-85.333l0.427-682.668c0-47.104 37.759-85.333 84.906-85.333zM261.187 661.333l159.686 159.684 60.339-60.339-99.345-99.345 99.345-99.345-60.339-60.339-159.686 159.684zM737.212 661.333l-159.684-159.684-60.339 60.339 99.345 99.345-99.345 99.345 60.339 60.339 159.684-159.684z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file-xml"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1762,
+            "id": 800,
+            "prevSize": 24,
+            "code": 59368,
+            "name": "file-xml"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 488
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 383.918v-234.667l234.667 234.667zM255.974 85.251c-47.147 0-84.906 38.229-84.906 85.333l-0.427 682.668c0 47.104 37.802 85.333 84.906 85.333h512.428c47.104 0 85.333-38.229 85.333-85.333v-512.001l-256-256h-341.334z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "file"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1763,
+            "id": 799,
+            "prevSize": 24,
+            "code": 59369,
+            "name": "file"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 489
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 490.667c0 0-85.333 92.459-85.333 149.333 0 47.104 38.229 85.333 85.333 85.333s85.333-38.229 85.333-85.333c0-56.875-85.333-149.333-85.333-149.333zM627.998 425.778l-405.833 0.889 204.501-204.459 201.331 203.57zM706.603 381.397l-381.44-381.397-60.331 60.331 101.504 101.504-219.605 219.563c-24.96 25.003-24.96 65.536 0 90.539l234.667 234.667c12.501 12.501 28.885 18.731 45.269 18.731s32.768-6.229 45.269-18.731l234.667-234.667c24.96-25.003 24.96-65.536 0-90.539z",
+                "M0 853.333h1024v170.667h-1024v-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "fill"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1764,
+            "id": 798,
+            "prevSize": 24,
+            "code": 59370,
+            "name": "fill"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 490
+    }, {
+        "icon": {
+            "paths": [
+                "M149.333 128h64v-51.2c0-18.851 15.282-34.133 34.133-34.133h187.733c18.85 0 34.133 15.282 34.133 34.133v51.2h64c35.345 0 64 28.654 64 64v21.333h341.333v640h-341.333v21.333c0 35.345-28.655 64-64 64h-384c-35.346 0-64-28.655-64-64v-682.667c0-35.346 28.654-64 64-64zM768 298.667v85.333h85.333v-85.333h-85.333zM597.333 298.667v85.333h85.333v-85.333h-85.333zM426.667 298.667v85.333h85.333v-85.333h-85.333zM597.333 682.667v85.333h85.333v-85.333h-85.333zM768 682.667v85.333h85.333v-85.333h-85.333zM426.667 682.667v85.333h85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "film"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1765,
+            "id": 797,
+            "prevSize": 24,
+            "code": 59371,
+            "name": "film"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 491
+    }, {
+        "icon": {
+            "paths": [
+                "M42.667 182.122l54.49-54.122 798.818 798.818-54.097 54.515-159.236-159.236v73.818h-341.334v-85.333h-85.333v85.333h-85.333v-585.819l-127.974-127.974zM767.974 383.917v-85.333h-85.333v85.333h85.333zM767.974 554.586v-85.333h-85.333v85.333h85.333zM767.974 639.915h-50.291l-426.665-426.665h50.289v-85.333h341.334v85.333h85.333v-85.333h85.333v647.622l-85.333-85.333v-50.291zM341.307 554.586v-73.822l-11.512-11.511h-73.821v85.333h85.333zM341.307 725.248v-85.333h-85.333v85.333h85.333zM255.974 127.917v50.289l-50.289-50.289h50.289z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "filmstrip-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1766,
+            "id": 796,
+            "prevSize": 24,
+            "code": 59372,
+            "name": "filmstrip-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 492
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 383.917h-85.333v-85.333h85.333zM767.974 554.581h-85.333v-85.333h85.333zM767.974 725.248h-85.333v-85.333h85.333zM341.307 383.917h-85.333v-85.333h85.333zM341.307 554.581h-85.333v-85.333h85.333zM341.307 725.248h-85.333v-85.333h85.333zM767.974 127.917v85.333h-85.333v-85.333h-341.334v85.333h-85.333v-85.333h-85.333v767.998h85.333v-85.333h85.333v85.333h341.334v-85.333h85.333v85.333h85.333v-767.998h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "filmstrip"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1767,
+            "id": 795,
+            "prevSize": 24,
+            "code": 59373,
+            "name": "filmstrip"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 493
+    }, {
+        "icon": {
+            "paths": [
+                "M128 85.334l768 0.479v84.854h-3.383l-252.617 252.615v554.169l-256-256v-298.796l-251.988-251.988h-4.012v-85.333zM469.333 686.106l85.333 85.333v-387.439h3.934l213.333-213.333h-519.242l213.335 213.333h3.307v302.106z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "filter-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1768,
+            "id": 794,
+            "prevSize": 24,
+            "code": 59374,
+            "name": "filter-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 494
+    }, {
+        "icon": {
+            "paths": [
+                "M628.574 888.678l121.438-121.438-121.438-119.919 60.339-60.339 121.438 119.919 119.923-119.919 60.339 60.339-119.919 119.919 119.919 121.438-60.339 60.339-119.923-121.438-121.438 121.438-60.339-60.339zM85.333 85.333l768 0.479v84.854h-3.383l-252.617 252.615v554.17l-256-256v-298.797l-251.987-251.987h-4.013v-85.333zM426.666 686.106l85.334 85.333v-387.439h3.934l213.333-213.333h-519.242l213.333 213.333h3.308l-0 302.106z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "filter-remove-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1769,
+            "id": 793,
+            "prevSize": 24,
+            "code": 59375,
+            "name": "filter-remove-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 495
+    }, {
+        "icon": {
+            "paths": [
+                "M629.649 888.678l121.438-121.438-121.438-119.919 60.339-60.339 121.438 119.919 119.919-119.919 60.339 60.339-119.919 119.919 119.919 121.438-60.339 60.339-119.919-121.438-121.438 121.438-60.339-60.339zM85.333 85.333l768 0.479v84.854h-3.383l-295.283 295.284v511.501l-170.667-170.667v-341.461l-294.653-294.656h-4.013v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "filter-remove"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1770,
+            "id": 792,
+            "prevSize": 24,
+            "code": 59376,
+            "name": "filter-remove"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 496
+    }, {
+        "icon": {
+            "paths": [
+                "M256 554.667h512v-85.333h-512zM128 256v85.333h768v-85.333zM426.667 768h170.667v-85.333h-170.667v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "filter-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1771,
+            "id": 791,
+            "prevSize": 24,
+            "code": 59377,
+            "name": "filter-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 497
+    }, {
+        "icon": {
+            "paths": [
+                "M128 85.333l768 0.479v84.854h-3.383l-295.283 295.284v511.501l-170.667-170.667 0-341.461-294.654-294.656h-4.013v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "filter"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1772,
+            "id": 790,
+            "prevSize": 24,
+            "code": 59378,
+            "name": "filter"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 498
+    }, {
+        "icon": {
+            "paths": [
+                "M499.695 810.586c-75.989 0-137.558-59.947-137.558-133.888 0-69.248 44.587-117.888 120.022-133.163 75.392-15.232 153.557-51.452 196.949-109.909 16.683 55.083 25.387 112.981 25.387 172.16 0 112.922-91.861 204.8-204.8 204.8zM575.983 28.462c0 0 31.573 112.981 31.573 204.715 0 87.979-57.685 159.275-145.621 159.275-88.022 0-154.753-71.296-154.753-159.275l1.152-15.403c-85.931 102.727-137.685 235.052-137.685 379.479 0 188.501 152.832 341.333 341.333 341.333s341.333-152.832 341.333-341.333c0-230.145-110.635-435.329-277.333-568.791z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "fire"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1773,
+            "id": 789,
+            "prevSize": 24,
+            "code": 59379,
+            "name": "fire"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 499
+    }, {
+        "icon": {
+            "paths": [
+                "M512 853.333l32.23-128.922c-138.117-7.996-262.915-67.234-299.071-145.161-3.46 20.459-9.328 39.155-17.604 53.636-28.445 49.779-85.333 49.779-142.222 49.779 47.128 0 64-66.859 64-149.333s-16.872-149.333-64-149.333c56.889 0 113.777 0 142.222 49.779 8.276 14.481 14.144 33.178 17.604 53.636 28.104-60.574 109.763-109.852 209.603-132.553l-70.763-141.529c85.333 0 170.667 0 227.554 28.444 48.030 24.014 75.785 68.301 100.378 115.747 124.723 29.739 226.735 97.268 226.735 175.809 0 80.192-106.342 148.902-234.624 177.634-35.396 46.754-69.965 90.214-99.597 113.92-35.558 28.446-64 28.446-92.446 28.446zM725.333 469.333c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "fish"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1774,
+            "id": 788,
+            "prevSize": 24,
+            "code": 59380,
+            "name": "fish"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 500
+    }, {
+        "icon": {
+            "paths": [
+                "M256 128c23.564 0 42.667 19.102 42.667 42.667v37.333c45.333-18.667 106.667-37.333 170.667-37.333 128 0 128 85.333 213.333 85.333 128 0 170.667-85.333 170.667-85.333v341.333c0 0-42.667 85.333-170.667 85.333s-128-85.333-213.333-85.333c-128 0-170.667 85.333-170.667 85.333v298.667h-85.333v-725.333c0-23.564 19.102-42.667 42.667-42.667zM469.333 373.333c52.096 0 88.29 27.83 128 49.509v60.404c25.331 15.808 52.096 28.753 85.333 28.753 85.333 0 85.333-21.333 85.333-21.333v-53.333c0 0-42.667 10.667-85.333 10.667-33.237 0-60.002-11.328-85.333-25.158v-56.927c25.331 15.806 52.096 28.751 85.333 28.751 85.333 0 85.333-10.667 85.333-10.667v-64c0 0-42.667 21.333-85.333 21.333-33.237 0-60.002-12.945-85.333-28.751v53.334c-39.71-24.776-75.904-56.582-128-56.582v-53.333c-85.333 0-170.667 53.334-170.667 53.334v53.333c0 0 85.334-53.334 170.667-53.334v64c-85.333 0-170.667 53.333-170.667 53.333v64c0 0 85.333-64 170.667-64v-53.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flag-checkered-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1775,
+            "id": 787,
+            "prevSize": 24,
+            "code": 59381,
+            "name": "flag-checkered-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 501
+    }, {
+        "icon": {
+            "paths": [
+                "M614.4 256h238.933v426.667h-298.667l-17.067-85.333h-238.933v298.667h-85.333v-725.333h384l17.067 85.333zM597.333 597.333h85.333v-85.333h85.333v-85.333h-85.333v-85.333h-85.333v85.333l-42.667-85.333v-85.334h-85.333v85.333h-85.333v-85.333h-85.333v85.333h85.333v85.333h-85.333v85.333h85.333v-85.333h85.333v85.333h85.333v-85.333l42.667 85.333v85.333zM469.333 426.667v-85.333l85.333 0v85.333h-85.333zM597.333 426.667h85.333v85.333h-85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flag-checkered"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1776,
+            "id": 786,
+            "prevSize": 24,
+            "code": 59382,
+            "name": "flag-checkered"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 502
+    }, {
+        "icon": {
+            "paths": [
+                "M256 128c23.564 0 42.667 19.102 42.667 42.667v37.333c45.333-18.667 106.667-37.333 170.667-37.333 128 0 128 85.333 213.333 85.333 128 0 170.667-85.333 170.667-85.333v341.333c0 0-42.667 85.333-170.667 85.333s-128-85.333-213.333-85.333c-128 0-170.667 85.333-170.667 85.333v298.667h-85.333v-725.333c0-23.564 19.102-42.667 42.667-42.667zM298.667 309.334v181.333c0 0 85.333-64 170.667-64s128 85.333 213.333 85.333c85.333 0 85.333-42.667 85.333-42.667v-149.333c0 0-42.667 21.333-85.333 21.333-85.333 0-128-85.333-213.333-85.333s-170.667 53.334-170.667 53.334z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flag-outline-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1777,
+            "id": 785,
+            "prevSize": 24,
+            "code": 59383,
+            "name": "flag-outline-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 503
+    }, {
+        "icon": {
+            "paths": [
+                "M618.667 256l234.667-0v426.667h-298.667l-21.333-85.333h-234.667v298.667h-85.333v-725.333h384l21.333 85.334zM298.667 256v256h255.996l21.338 85.333h192v-256l-170.667 0-21.333-85.333h-277.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flag-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1778,
+            "id": 784,
+            "prevSize": 24,
+            "code": 59384,
+            "name": "flag-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 504
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 85.333h85.333v853.333h-85.333v-853.333zM810.667 384l-341.333 238.933v-477.866l341.333 238.933z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flag-triangle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1779,
+            "id": 783,
+            "prevSize": 24,
+            "code": 59385,
+            "name": "flag-triangle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 505
+    }, {
+        "icon": {
+            "paths": [
+                "M256 128c23.564 0 42.667 19.102 42.667 42.667v37.333c45.333-18.667 106.667-37.333 170.667-37.333 128 0 128 85.333 213.333 85.333 128 0 170.667-85.333 170.667-85.333v341.333c0 0-42.667 85.333-170.667 85.333s-128-85.333-213.333-85.333c-128 0-170.667 85.333-170.667 85.333v298.667h-85.333v-725.333c0-23.564 19.102-42.667 42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flag-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1780,
+            "id": 782,
+            "prevSize": 24,
+            "code": 59386,
+            "name": "flag-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 506
+    }, {
+        "icon": {
+            "paths": [
+                "M614.4 256l-17.067-85.333h-384v725.333h85.333v-298.667h238.933l17.067 85.333h298.667v-426.667h-238.933z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flag"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1781,
+            "id": 781,
+            "prevSize": 24,
+            "code": 59387,
+            "name": "flag"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 507
+    }, {
+        "icon": {
+            "paths": [
+                "M718.933 326.4l49.067-155.733 49.067 155.733zM810.667 85.333h-85.333l-136.533 384h81.067l29.867-85.333h136.533l29.867 85.333h81.067zM128 85.333v512h128v384l298.667-512h-170.667l170.667-384h-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flash-auto"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1782,
+            "id": 780,
+            "prevSize": 24,
+            "code": 59388,
+            "name": "flash-auto"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 508
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 426.667h-170.667l170.667-341.333h-426.667v93.013l360.96 360.96zM139.52 128l-54.187 54.187 213.333 213.333v159.147h128v384l152.747-261.973 177.067 176.64 54.187-54.187-671.147-671.147z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flash-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1783,
+            "id": 779,
+            "prevSize": 24,
+            "code": 59389,
+            "name": "flash-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 509
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 85.333v469.333h128v384l298.667-512h-170.667l170.667-341.333h-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flash"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1784,
+            "id": 778,
+            "prevSize": 24,
+            "code": 59390,
+            "name": "flash"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 510
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-159.211-159.211v159.211h-256v-415.211l-298.667-298.668zM768 213.334l-128 213.333h-135.565l-213.334-213.333h476.899zM768 170.667h-512v-85.333h512v85.333zM640 469.333v92.898l-92.898-92.898h92.898z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flashlight-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1785,
+            "id": 777,
+            "prevSize": 24,
+            "code": 59391,
+            "name": "flashlight-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 511
+    }, {
+        "icon": {
+            "paths": [
+                "M384 426.667l-128-213.333h512l-128 213.333h-256zM768 170.667h-512v-85.333h512v85.333zM384 938.667v-469.333h256v469.333h-256zM512 554.667c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flashlight"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1786,
+            "id": 776,
+            "prevSize": 24,
+            "code": 59392,
+            "name": "flashlight"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 512
+    }, {
+        "icon": {
+            "paths": [
+                "M896 384v256c0 141.385-114.615 256-256 256h-451.633l283.821-283.823c13.269-13.269 26.543-26.539 33.178-25.476s6.635 16.461 6.635 31.855v106.778h85.333c70.694 0 128-57.306 128-128v-238.3l170.667-170.666v195.633zM128 640v-256c0-141.385 114.615-256 256-256h451.631l-283.819 283.822c-13.269 13.27-26.543 26.54-33.178 25.477s-6.635-16.46-6.635-31.857v-106.776h-85.334c-70.692 0-128 57.308-128 128v238.302l-170.666 170.667v-195.635z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flattr"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1787,
+            "id": 775,
+            "prevSize": 24,
+            "code": 59393,
+            "name": "flattr"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 513
+    }, {
+        "icon": {
+            "paths": [
+                "M896 512c0 94.257-76.41 170.667-170.667 170.667s-170.667-76.41-170.667-170.667c0-94.257 76.41-170.667 170.667-170.667s170.667 76.41 170.667 170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flickr-after"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1788,
+            "id": 774,
+            "prevSize": 24,
+            "code": 59394,
+            "name": "flickr-after"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 514
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 512c0 94.257-76.41 170.667-170.667 170.667s-170.667-76.41-170.667-170.667c0-94.257 76.41-170.667 170.667-170.667s170.667 76.41 170.667 170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flickr-before"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1789,
+            "id": 773,
+            "prevSize": 24,
+            "code": 59395,
+            "name": "flickr-before"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 515
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 725.248h85.333v-85.333h-85.333zM639.974 213.25h85.333v-85.333h-85.333zM213.307 298.583h-85.333v511.998c0 47.108 38.186 85.333 85.333 85.333h512v-85.333h-512zM810.641 725.248c47.061 0 85.333-38.225 85.333-85.333h-85.333zM810.641 383.917h85.333v-85.333h-85.333zM810.641 554.581h85.333v-85.333h-85.333zM383.974 725.248v-85.333h-85.333c0 47.108 38.186 85.333 85.333 85.333zM554.641 127.917h-85.333v85.333h85.333zM810.641 127.917v85.333h85.333c0-47.104-38.272-85.333-85.333-85.333zM554.641 639.915h-85.333v85.333h85.333zM383.974 127.917c-47.147 0-85.333 38.229-85.333 85.333h85.333zM383.974 469.248h-85.333v85.333h85.333zM383.974 298.583h-85.333v85.333h85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flip-to-back"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1790,
+            "id": 772,
+            "prevSize": 24,
+            "code": 59396,
+            "name": "flip-to-back"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 516
+    }, {
+        "icon": {
+            "paths": [
+                "M298.641 895.915h85.333v-85.333h-85.333zM469.308 895.915h85.333v-85.333h-85.333zM810.641 639.915h-426.667v-426.665h426.667zM810.641 127.917h-426.667c-47.147 0-85.333 38.229-85.333 85.333v426.665c0 47.108 38.186 85.333 85.333 85.333h426.667c47.061 0 85.333-38.225 85.333-85.333v-426.665c0-47.104-38.272-85.333-85.333-85.333zM639.974 895.915h85.333v-85.333h-85.333zM127.974 383.917h85.333v-85.333h-85.333zM213.307 895.915v-85.333h-85.333c0 47.108 38.186 85.333 85.333 85.333zM127.974 725.248h85.333v-85.333h-85.333zM127.974 554.581h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flip-to-front"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1791,
+            "id": 771,
+            "prevSize": 24,
+            "code": 59397,
+            "name": "flip-to-front"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 517
+    }, {
+        "icon": {
+            "paths": [
+                "M192 938.667l-106.667-106.667v-661.333c0-47.128 38.205-85.333 85.333-85.333h682.667c47.13 0 85.333 38.205 85.333 85.333v682.666c0 47.13-38.204 85.333-85.333 85.333h-128v-298.667c0-23.565-19.102-42.667-42.667-42.667h-384c-23.564 0-42.667 19.102-42.667 42.667v298.667h-64zM213.333 170.667v256c0 23.565 19.102 42.667 42.666 42.667h512c23.565 0 42.667-19.102 42.667-42.667v-256h-597.333zM341.333 682.667h128v170.667h-128v-170.667zM853.333 170.667v42.667h42.667v-42.667h-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "floppy"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1792,
+            "id": 770,
+            "prevSize": 24,
+            "code": 59398,
+            "name": "floppy"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 518
+    }, {
+        "icon": {
+            "paths": [
+                "M127.974 554.586c0 212.096 171.904 384 384 384 0-212.096-171.905-384-384-384zM511.974 234.584c58.923 0 106.667 47.744 106.667 106.667s-47.744 106.668-106.667 106.668c-58.923 0-106.667-47.746-106.667-106.668s47.744-106.667 106.667-106.667zM239.035 437.252c0 58.923 47.73 106.667 106.667 106.667 22.443 0 43.264-7.040 60.416-18.859-0.171 2.731-0.811 5.376-0.811 8.192 0 58.923 47.744 106.667 106.667 106.667s106.667-47.744 106.667-106.667c0-2.816-0.64-5.461-0.853-8.192 17.195 11.819 38.016 18.859 60.459 18.859 58.935 0 106.667-47.744 106.667-106.667 0-42.498-25.003-78.85-60.928-96.001 35.925-17.152 60.928-53.504 60.928-96 0-58.923-47.731-106.667-106.667-106.667-22.443 0-43.264 7.040-60.459 18.859 0.213-2.731 0.853-5.376 0.853-8.192 0-58.923-47.744-106.667-106.667-106.667s-106.667 47.744-106.667 106.667c0 2.816 0.64 5.461 0.811 8.192-17.152-11.819-37.973-18.859-60.416-18.859-58.936 0-106.667 47.744-106.667 106.667 0 42.496 25.003 78.848 60.928 96-35.926 17.152-60.928 53.504-60.928 96.001zM511.974 938.586c212.096 0 384-171.904 384-384-212.096 0-384 171.904-384 384z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "flower"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1793,
+            "id": 769,
+            "prevSize": 24,
+            "code": 59399,
+            "name": "flower"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 519
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 725.252h-341.333v-42.667c0-56.832 113.792-85.333 170.667-85.333s170.667 28.501 170.667 85.333zM639.974 383.918c47.083 0 85.333 38.229 85.333 85.335 0 47.061-38.251 85.333-85.333 85.333s-85.333-38.272-85.333-85.333c0-47.106 38.251-85.335 85.333-85.335zM853.308 255.918h-341.333l-85.333-85.333h-256c-47.147 0-84.916 38.229-84.916 85.333l-0.417 512.001c0 47.104 38.187 85.333 85.333 85.333h682.667c47.083 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.251-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-account"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1794,
+            "id": 768,
+            "prevSize": 24,
+            "code": 59400,
+            "name": "folder-account"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 520
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 255.918c47.083 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.251 85.333-85.333 85.333h-682.667c-47.147 0-85.333-38.229-85.333-85.333l0.417-512.001c0-47.104 37.77-85.333 84.916-85.333h256l85.333 85.333h341.333zM821.333 554.667h-138.667v-170.666h-85.333v170.666h-138.667l181.333 181.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-download"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1795,
+            "id": 767,
+            "prevSize": 24,
+            "code": 59401,
+            "name": "folder-download"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 521
+    }, {
+        "icon": {
+            "paths": [
+                "M586.645 383.918h102.016l121.173 213.335h-125.056l-109.269-193.75zM780.821 725.252h-236.672l59.733-106.667h218.112l11.093 19.584zM490.645 725.252l-46.933-91.179 121.131-211.756 64.043 113.623-106.069 189.312zM853.312 255.918h-341.333l-85.333-85.333h-256c-47.147 0-84.907 38.229-84.907 85.333l-0.427 512.001c0 47.104 38.187 85.333 85.333 85.333h682.667c47.104 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-google-drive"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1796,
+            "id": 766,
+            "prevSize": 24,
+            "code": 59402,
+            "name": "folder-google-drive"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 522
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 725.333l192-256 149.333 192.427 106.667-128.427 149.333 192zM853.333 256h-341.333l-85.333-85.333h-256c-46.933 0-84.907 38.4-84.907 85.333l-0.427 512c0 46.933 38.4 85.333 85.333 85.333h682.667c46.933 0 85.333-38.4 85.333-85.333v-426.667c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-image"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1797,
+            "id": 765,
+            "prevSize": 24,
+            "code": 59403,
+            "name": "folder-image"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 523
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 255.918c47.104 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.229 85.333-85.333 85.333h-682.667c-47.148 0-85.333-38.229-85.333-85.333l0.427-512.001c0-47.104 37.759-85.333 84.906-85.333h256l85.334 85.333h341.333zM810.667 725.333v-170.667h-213.333v-85.333c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667h85.333c0-70.691-57.31-127.999-128-127.999-70.694 0-128 57.308-128 127.999v85.333h-42.667v170.667h341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-lock-open"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1798,
+            "id": 764,
+            "prevSize": 24,
+            "code": 59404,
+            "name": "folder-lock-open"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 524
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 255.918c47.104 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.229 85.333-85.333 85.333h-682.667c-47.148 0-85.333-38.229-85.333-85.333l0.427-512.001c0-47.104 37.759-85.333 84.906-85.333h256l85.334 85.333h341.333zM810.667 725.333v-170.667h-42.667v-42.667c0-70.69-57.306-127.999-128-127.999s-128 57.309-128 127.999v42.667h-42.667v170.667h341.333zM640 469.333c23.565 0 42.667 19.102 42.667 42.667v42.667h-85.333v-42.667c0-23.565 19.102-42.667 42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-lock"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1799,
+            "id": 763,
+            "prevSize": 24,
+            "code": 59405,
+            "name": "folder-lock"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 525
+    }, {
+        "icon": {
+            "paths": [
+                "M383.974 767.919v-128h-170.667v-170.667h170.667v-128.001l213.334 213.335zM853.308 255.918h-341.333l-85.334-85.333h-256c-47.147 0-85.333 38.229-85.333 85.333v512.001c0 47.104 38.187 85.333 85.333 85.333h682.667c47.104 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-move"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1800,
+            "id": 762,
+            "prevSize": 24,
+            "code": 59406,
+            "name": "folder-move"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 526
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 640l192-256 149.333 192.427 106.667-128.427 149.333 192zM938.667 170.667h-341.333l-85.333-85.333h-256c-46.933 0-84.907 38.4-84.907 85.333l-0.427 512c0 46.933 38.4 85.333 85.333 85.333h682.667c46.933 0 85.333-38.4 85.333-85.333v-426.667c0-46.933-38.4-85.333-85.333-85.333zM85.333 256h-85.333v213.333h0.427l-0.427 384c0 46.933 38.4 85.333 85.333 85.333h768v-85.333h-768v-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-multiple-image"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1801,
+            "id": 761,
+            "prevSize": 24,
+            "code": 59407,
+            "name": "folder-multiple-image"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 527
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 170.667c46.933 0 85.333 38.4 85.333 85.333v426.667c0 46.933-38.4 85.333-85.333 85.333h-682.667c-46.933 0-85.333-38.4-85.333-85.333l0.427-512c0-46.933 37.973-85.333 84.907-85.333h256l85.333 85.333h341.333zM85.333 256v597.333h768v85.333h-768c-46.933 0-85.333-38.4-85.333-85.333l0.427-384h-0.427v-213.333h85.333zM256 256v426.667h682.667v-426.667h-682.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1802,
+            "id": 760,
+            "prevSize": 24,
+            "code": 59408,
+            "name": "folder-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 528
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 170.667h-341.333l-85.333-85.333h-256c-46.933 0-84.907 38.4-84.907 85.333l-0.427 512c0 46.933 38.4 85.333 85.333 85.333h682.667c46.933 0 85.333-38.4 85.333-85.333v-426.667c0-46.933-38.4-85.333-85.333-85.333zM85.333 256h-85.333v213.333h0.427l-0.427 384c0 46.933 38.4 85.333 85.333 85.333h768v-85.333h-768v-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-multiple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1803,
+            "id": 759,
+            "prevSize": 24,
+            "code": 59409,
+            "name": "folder-multiple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 529
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 767.919v-426.668h-682.667v426.668h682.667zM853.308 255.918c47.104 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.229 85.333-85.333 85.333h-682.667c-47.148 0-85.333-38.229-85.333-85.333l0.427-512.001c0-47.104 37.759-85.333 84.906-85.333h256l85.334 85.333h341.333zM384 682.667v-128h42.667v-42.667c0-47.13 38.204-85.333 85.333-85.333s85.333 38.204 85.333 85.333v42.667h42.667v128h-256zM554.667 554.667v-42.667c0-23.565-19.102-42.667-42.667-42.667s-42.667 19.102-42.667 42.667v42.667h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-outline-lock"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1804,
+            "id": 758,
+            "prevSize": 24,
+            "code": 59410,
+            "name": "folder-outline-lock"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 530
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 767.919h-682.667v-426.668h682.667zM853.308 255.918h-341.333l-85.334-85.333h-256c-47.147 0-84.906 38.229-84.906 85.333l-0.427 512.001c0 47.104 38.186 85.333 85.333 85.333h682.667c47.104 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1805,
+            "id": 757,
+            "prevSize": 24,
+            "code": 59411,
+            "name": "folder-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 531
+    }, {
+        "icon": {
+            "paths": [
+                "M426.639 170.584l85.335 85.333h341.333c47.083 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.251 85.333-85.333 85.333h-682.668c-47.147 0-85.333-38.229-85.333-85.333l0.427-512.001c0-47.104 37.76-85.333 84.907-85.333h256zM640 384v128h-128v85.333h128v128h85.333v-128h128v-85.333h-128v-128h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1806,
+            "id": 756,
+            "prevSize": 24,
+            "code": 59412,
+            "name": "folder-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 532
+    }, {
+        "icon": {
+            "paths": [
+                "M426.639 170.584l85.335 85.333h341.333c47.083 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.251 85.333-85.333 85.333h-682.668c-47.147 0-85.333-38.229-85.333-85.333l0.427-512.001c0-47.104 37.76-85.333 84.907-85.333h256zM531.819 464.158l90.509 90.509-90.509 90.509 60.339 60.339 90.509-90.509 90.509 90.509 60.339-60.339-90.509-90.509 90.509-90.509-60.339-60.34-90.509 90.51-90.509-90.51-60.339 60.34z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-remove"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1807,
+            "id": 755,
+            "prevSize": 24,
+            "code": 59413,
+            "name": "folder-remove"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 533
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 256c47.083 0 85.333 38.229 85.333 85.333v426.667c0 47.104-38.251 85.333-85.333 85.333h-682.667c-47.147 0-85.333-38.229-85.333-85.333l0.417-512c0-47.104 37.77-85.333 84.916-85.333h256l85.333 85.333h341.333zM458.667 554.667h138.667v170.667h85.333v-170.667h138.667l-181.333-181.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder-upload"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1808,
+            "id": 754,
+            "prevSize": 24,
+            "code": 59414,
+            "name": "folder-upload"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 534
+    }, {
+        "icon": {
+            "paths": [
+                "M426.639 170.584h-256c-47.147 0-84.907 38.229-84.907 85.333l-0.427 512.001c0 47.104 38.187 85.333 85.333 85.333h682.668c47.083 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.251-85.333-85.333-85.333h-341.333l-85.335-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "folder"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1809,
+            "id": 753,
+            "prevSize": 24,
+            "code": 59415,
+            "name": "folder"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 535
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 426.667c85.333 128-128 512-213.333 512s-85.333-42.667-128-42.667c-42.667 0-42.667 42.667-128 42.667s-298.667-384-213.333-512c85.333-128 213.333-128 298.667-85.333v-128.001c-239.728 131.029-294.129-51.863-294.129-51.863s113.673-153.256 294.129 51.863v-85.333h85.333v213.334c85.333-42.667 213.333-42.667 298.667 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "food-apple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1810,
+            "id": 752,
+            "prevSize": 24,
+            "code": 59416,
+            "name": "food-apple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 536
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 768c0 94.255-76.412 170.667-170.667 170.667h-128c-94.255 0-170.667-76.412-170.667-170.667v-85.333h289.86l117.564-203.631 66.513 38.4-95.398 165.231h90.795v85.333zM384 938.667h-298.667c0-128 0-256 14.222-391.113 11.376-108.070 31.851-220.69 54.147-334.221h-25.702v-85.333h213.333v85.333h-25.703c22.296 113.531 42.771 226.15 54.147 334.221 14.223 135.113 14.223 263.113 14.223 391.113z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "food-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1811,
+            "id": 751,
+            "prevSize": 24,
+            "code": 59417,
+            "name": "food-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 537
+    }, {
+        "icon": {
+            "paths": [
+                "M661.333 896l-64-554.667h95.322l-48.516-193.629 74.496-18.667 53.197 212.296h166.835l-64 554.667h-213.333zM213.333 469.333h213.333c70.69 0 128 57.306 128 128h-469.333c0-70.694 57.308-128 128-128zM554.667 768c0 70.694-57.31 128-128 128h-213.333c-70.693 0-128-57.306-128-128h469.333zM128 640h213.333l64 64 64-64h42.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-384c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "food"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1812,
+            "id": 750,
+            "prevSize": 24,
+            "code": 59418,
+            "name": "food"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 538
+    }, {
+        "icon": {
+            "paths": [
+                "M576 512c-35.345 0-64 28.655-64 64s28.655 64 64 64c35.345 0 64-28.655 64-64s-28.655-64-64-64zM576 128c200.294 0 362.667 152.82 362.667 341.333 0 69.167 0 128-38.677 213.333-174.656 0-217.323 170.667-366.656 170.667-92.902 0-137.644-73.314-147.304-170.714l-2.030 0.047h-32.405l-54.794 183.441c-6.22 20.826-26.924 33.361-47.818 29.892h-120.982c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667v-128c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h160.025l20.494-68.608c-21.78-10.645-46.988-16.725-73.853-16.725l-18.237 0.947-3.095-43.614c0-188.513 162.371-341.333 362.667-341.333zM213.333 682.667v128h10.968l38.234-128h-49.202z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "football-helmet"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1813,
+            "id": 749,
+            "prevSize": 24,
+            "code": 59419,
+            "name": "football-helmet"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 539
+    }, {
+        "icon": {
+            "paths": [
+                "M320.924 320.924c70.396-70.397 160.906-120.68 249.738-142.469 88.836-21.789 175.991-15.085 223.061-8.241 47.074 6.844 54.054 13.828 60.762 60.759 6.703 46.931 13.129 133.809-8.802 222.501-21.926 88.695-72.209 179.204-142.609 249.6-70.396 70.4-160.905 120.683-249.6 142.609-88.692 21.931-175.57 15.505-222.501 8.802-46.931-6.707-53.915-13.687-60.759-60.762-6.844-47.070-13.549-134.225 8.241-223.061 21.789-88.832 72.073-179.342 142.469-249.738zM311.478 673.515l39.006 39.010 51.503-51.503 51.504 51.503 39.006-39.006-51.503-51.507 71.006-71.006 51.503 51.503 39.006-39.006-51.503-51.503 71.006-71.006 51.503 51.503 39.006-39.006-51.503-51.503 51.503-51.504-39.006-39.007-51.503 51.504-51.503-51.503-39.006 39.007 51.503 51.503-71.006 71.006-51.503-51.503-39.007 39.006 51.504 51.503-71.007 71.006-51.503-51.503-39.006 39.006 51.503 51.503-51.503 51.503z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "football"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1814,
+            "id": 748,
+            "prevSize": 24,
+            "code": 59420,
+            "name": "football"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 540
+    }, {
+        "icon": {
+            "paths": [
+                "M128 128h768v85.333h-768v-85.333zM298.667 298.667h426.667v85.333h-426.667v-85.333zM128 469.333h768v85.333h-768v-85.333zM298.667 640h426.667v85.333h-426.667v-85.333zM128 810.667h768v85.333h-768v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-align-center"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1815,
+            "id": 747,
+            "prevSize": 24,
+            "code": 59421,
+            "name": "format-align-center"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 541
+    }, {
+        "icon": {
+            "paths": [
+                "M128 128h768v85.333h-768v-85.333zM128 298.667h768v85.333h-768v-85.333zM128 469.333h768v85.333h-768v-85.333zM128 640h768v85.333h-768v-85.333zM128 810.667h768v85.333h-768v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-align-justify"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1816,
+            "id": 746,
+            "prevSize": 24,
+            "code": 59422,
+            "name": "format-align-justify"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 542
+    }, {
+        "icon": {
+            "paths": [
+                "M128 128h768v85.333h-768v-85.333zM128 298.667h512v85.333h-512v-85.333zM128 469.333h768v85.333h-768v-85.333zM128 640h512v85.333h-512v-85.333zM128 810.667h768v85.333h-768v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-align-left"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1817,
+            "id": 745,
+            "prevSize": 24,
+            "code": 59423,
+            "name": "format-align-left"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 543
+    }, {
+        "icon": {
+            "paths": [
+                "M128 128h768v85.333h-768v-85.333zM384 298.667h512v85.333h-512v-85.333zM128 469.333h768v85.333h-768v-85.333zM384 640h512v85.333h-512v-85.333zM128 810.667h768v85.333h-768v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-align-right"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1818,
+            "id": 744,
+            "prevSize": 24,
+            "code": 59424,
+            "name": "format-align-right"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 544
+    }, {
+        "icon": {
+            "paths": [
+                "M575.974 661.248h-149.335v-128h149.335c35.328 0 64 28.672 64 64s-28.672 64-64 64zM426.64 277.25h128.001c35.328 0 64 28.672 64 64s-28.672 64-64 64h-128.001zM665.574 460.203c41.216-28.753 70.4-75.39 70.4-118.953 0-96.214-74.453-170.667-170.667-170.667h-266.668v597.331h300.46c89.344 0 158.208-72.448 158.208-161.788 0-64.687-36.821-120.064-91.733-145.924z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-bold"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1819,
+            "id": 743,
+            "prevSize": 24,
+            "code": 59425,
+            "name": "format-bold"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 545
+    }, {
+        "icon": {
+            "paths": [
+                "M256 213.333v7.68l120.32 120.32h102.4l-30.72 71.68 89.6 89.6 68.693-161.28h247.040v-128h-597.333zM139.52 213.333l-54.187 54.187 297.387 297.387-105.387 245.76h128l66.987-156.16 241.493 241.493 54.187-54.187-628.48-628.48z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-clear"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1820,
+            "id": 742,
+            "prevSize": 24,
+            "code": 59426,
+            "name": "format-clear"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 546
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 490.624c0 0-85.333 92.459-85.333 149.333 0 47.104 38.229 85.333 85.333 85.333s85.333-38.229 85.333-85.333c0-56.875-85.333-149.333-85.333-149.333zM222.139 426.625l204.501-204.458 204.502 204.458zM706.577 381.356l-381.44-381.397-60.331 60.331 101.504 101.504-219.605 219.563c-24.96 25.003-24.96 65.535 0 90.538l234.667 234.667c12.501 12.501 28.885 18.731 45.269 18.731s32.768-6.229 45.27-18.731l234.667-234.667c24.96-25.003 24.96-65.535 0-90.538z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-color-fill"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1821,
+            "id": 741,
+            "prevSize": 24,
+            "code": 59427,
+            "name": "format-color-fill"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 547
+    }, {
+        "icon": {
+            "paths": [
+                "M410.641 511.915l101.334-270.206 101.333 270.206zM469.308 127.917l-234.667 597.331h96l48-128h266.667l48 128h96l-234.667-597.331h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-color"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1822,
+            "id": 740,
+            "prevSize": 24,
+            "code": 59428,
+            "name": "format-color"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 548
+    }, {
+        "icon": {
+            "paths": [
+                "M384 298.667h256v256h-256v-256zM128 128h768v85.333h-768v-85.333zM128 640h768v85.333h-768v-85.333zM128 810.667h597.333v85.333h-597.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-float-center"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1823,
+            "id": 739,
+            "prevSize": 24,
+            "code": 59429,
+            "name": "format-float-center"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 549
+    }, {
+        "icon": {
+            "paths": [
+                "M128 298.667h256v256h-256v-256zM128 128h768v85.333h-768v-85.333zM896 298.667v85.333h-426.667v-85.333h426.667zM896 469.333v85.333h-426.667v-85.333h426.667zM128 640h597.333v85.333h-597.333v-85.333zM128 810.667h768v85.333h-768v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-float-left"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1824,
+            "id": 738,
+            "prevSize": 24,
+            "code": 59430,
+            "name": "format-float-left"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 550
+    }, {
+        "icon": {
+            "paths": [
+                "M128 298.667h256v256h-256v-256zM128 128h768v85.333h-768v-85.333zM896 469.333v85.333h-426.667v-85.333h426.667zM128 640h597.333v85.333h-597.333v-85.333zM128 810.667h768v85.333h-768v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-float-none"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1825,
+            "id": 737,
+            "prevSize": 24,
+            "code": 59431,
+            "name": "format-float-none"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 551
+    }, {
+        "icon": {
+            "paths": [
+                "M640 298.667h256v256h-256v-256zM128 128h768v85.333h-768v-85.333zM554.667 298.667v85.333h-426.667v-85.333h426.667zM384 469.333v85.333h-256v-85.333h256zM128 640h597.333v85.333h-597.333v-85.333zM128 810.667h768v85.333h-768v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-float-right"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1826,
+            "id": 736,
+            "prevSize": 24,
+            "code": 59432,
+            "name": "format-float-right"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 552
+    }, {
+        "icon": {
+            "paths": [
+                "M128 170.667h85.333v256h170.667v-256h85.333v597.333h-85.333v-256h-170.667v256h-85.333v-597.333zM597.333 768v-85.333h85.333v-413.466l-106.667 61.584v-98.535l106.667-61.584h85.333v512h85.333v85.333h-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-header-1"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1827,
+            "id": 735,
+            "prevSize": 24,
+            "code": 59433,
+            "name": "format-header-1"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 553
+    }, {
+        "icon": {
+            "paths": [
+                "M128 170.667h85.333v256h170.667v-256h85.333v597.333h-85.333v-256h-170.667v256h-85.333v-597.333zM896 768h-256c-47.13 0-85.333-38.204-85.333-85.333 0-22.494 8.704-42.953 22.925-58.197l208.081-222.796c15.441-15.442 24.994-36.776 24.994-60.34 0-47.128-38.204-85.333-85.333-85.333s-85.333 38.205-85.333 85.333h-85.333c0-94.257 76.412-170.667 170.667-170.667s170.667 76.41 170.667 170.667c0 47.128-19.102 89.796-49.988 120.678l-206.012 220.655h256v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-header-2"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1828,
+            "id": 734,
+            "prevSize": 24,
+            "code": 59434,
+            "name": "format-header-2"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 554
+    }, {
+        "icon": {
+            "paths": [
+                "M128 170.667h85.333v256h170.667v-256h85.333v597.333h-85.333v-256h-170.667v256h-85.333v-597.333zM640 170.667h170.667c47.13 0 85.333 38.205 85.333 85.333v426.667c0 47.13-38.204 85.333-85.333 85.333h-170.667c-47.13 0-85.333-38.204-85.333-85.333v-42.667h85.333v42.667h170.667v-170.667h-170.667v-85.333h170.667v-170.667h-170.667v42.667h-85.333v-42.667c0-47.128 38.204-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-header-3"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1829,
+            "id": 733,
+            "prevSize": 24,
+            "code": 59435,
+            "name": "format-header-3"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 555
+    }, {
+        "icon": {
+            "paths": [
+                "M128 170.667h85.333v256h170.667v-256h85.333v597.333h-85.333v-256h-170.667v256h-85.333v-597.333zM768 768v-213.333h-213.333v-85.333l213.333-298.667h85.333v298.667h42.667v85.333h-42.667v213.333h-85.333zM768 469.333v-152.88l-108.646 152.88h108.646z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-header-4"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1830,
+            "id": 732,
+            "prevSize": 24,
+            "code": 59436,
+            "name": "format-header-4"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 556
+    }, {
+        "icon": {
+            "paths": [
+                "M128 170.667h85.333v256h170.667v-256h85.333v597.333h-85.333v-256h-170.667v256h-85.333v-597.333zM640 170.667l213.333 0v85.333l-213.333-0v170.667h85.333c94.255 0 170.667 76.412 170.667 170.667s-76.412 170.667-170.667 170.667h-85.333c-47.13 0-85.333-38.204-85.333-85.333v-42.667h85.333v42.667h85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333h-85.333c-47.13 0-85.333-38.204-85.333-85.333v-170.667c0-47.128 38.204-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-header-5"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1831,
+            "id": 731,
+            "prevSize": 24,
+            "code": 59437,
+            "name": "format-header-5"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 557
+    }, {
+        "icon": {
+            "paths": [
+                "M128 170.667h85.333v256h170.667v-256h85.333v597.333h-85.333v-256h-170.667v256h-85.333v-597.333zM640 170.667h170.667c47.13 0 85.333 38.205 85.333 85.333v42.667h-85.333v-42.667h-170.667v170.667h170.667c47.13 0 85.333 38.204 85.333 85.333v170.667c0 47.13-38.204 85.333-85.333 85.333h-170.667c-47.13 0-85.333-38.204-85.333-85.333v-426.667c0-47.128 38.204-85.333 85.333-85.333zM640 512v170.667h170.667v-170.667h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-header-6"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1832,
+            "id": 730,
+            "prevSize": 24,
+            "code": 59438,
+            "name": "format-header-6"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 558
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 170.667h85.333v256h170.667v-256h85.333v597.333h-85.333v-256h-170.667v256h-85.333v-597.333zM871.040 316.32l-153.045 153.013 153.045 152.994-60.331 60.331-213.376-213.325 213.376-213.344 60.331 60.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-header-decrease"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1833,
+            "id": 729,
+            "prevSize": 24,
+            "code": 59439,
+            "name": "format-header-decrease"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 559
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 170.667h85.333v256h170.667v-256h85.333v597.333h-85.333v-256h-170.667v256h-85.333v-597.333zM878.345 366.293l-153.011 153.045-152.994-153.045-60.331 60.332 213.325 213.375 213.342-213.375-60.331-60.332z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-header-down"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1834,
+            "id": 728,
+            "prevSize": 24,
+            "code": 59440,
+            "name": "format-header-down"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 560
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 170.667h85.333v256h170.667v-256h85.333v597.333h-85.333v-256h-170.667v256h-85.333v-597.333zM597.333 426.667v-85.333h298.667v85.333h-298.667zM597.333 512h298.667v85.333h-298.667v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-header-equal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1835,
+            "id": 727,
+            "prevSize": 24,
+            "code": 59441,
+            "name": "format-header-equal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 561
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 170.667h85.333v256h170.667v-256h85.333v597.333h-85.333v-256h-170.667v256h-85.333v-597.333zM622.293 316.32l153.045 153.013-153.045 152.994 60.331 60.331 213.376-213.325-213.376-213.344-60.331 60.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-header-increase"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1836,
+            "id": 726,
+            "prevSize": 24,
+            "code": 59442,
+            "name": "format-header-increase"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 562
+    }, {
+        "icon": {
+            "paths": [
+                "M128 170.667h85.333v256h170.667v-256h85.333v597.333h-85.333v-256h-170.667v256h-85.333v-597.333zM554.667 341.333h98.739l13.406-128h85.333l-13.406 128h85.333l13.406-128h85.333l-13.406 128h71.927v85.333h-80.866l-8.934 85.333h89.801v85.333h-98.739l-13.406 128h-85.333l13.406-128h-85.333l-13.406 128h-85.333l13.406-128h-71.927v-85.333h80.866l8.934-85.333h-89.801v-85.333zM729.801 426.667l-8.934 85.333h85.333l8.934-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-header-pound"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1837,
+            "id": 725,
+            "prevSize": 24,
+            "code": 59443,
+            "name": "format-header-pound"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 563
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 170.667h85.333v256h170.667v-256h85.333v597.333h-85.333v-256h-170.667v256h-85.333v-597.333zM878.345 615.040l-153.011-153.045-152.994 153.045-60.331-60.331 213.325-213.376 213.342 213.376-60.331 60.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-header-up"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1838,
+            "id": 724,
+            "prevSize": 24,
+            "code": 59444,
+            "name": "format-header-up"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 564
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 554.667h426.667v-85.333h-426.667zM469.333 384h426.667v-85.333h-426.667zM128 128v85.333h768v-85.333zM128 896h768v-85.333h-768zM128 512l170.667 170.667v-341.333zM469.333 725.333h426.667v-85.333h-426.667v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-indent-decrease"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1839,
+            "id": 723,
+            "prevSize": 24,
+            "code": 59445,
+            "name": "format-indent-decrease"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 565
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 554.667h426.667v-85.333h-426.667zM469.333 384h426.667v-85.333h-426.667zM128 128v85.333h768v-85.333zM469.333 725.333h426.667v-85.333h-426.667zM128 341.333v341.333l170.667-170.667zM128 896h768v-85.333h-768v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-indent-increase"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1840,
+            "id": 722,
+            "prevSize": 24,
+            "code": 59446,
+            "name": "format-indent-increase"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 566
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 170.667v128h94.464l-146.261 341.333h-118.869v128h341.333v-128h-94.464l146.261-341.333h118.869v-128h-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-italic"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1841,
+            "id": 721,
+            "prevSize": 24,
+            "code": 59447,
+            "name": "format-italic"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 567
+    }, {
+        "icon": {
+            "paths": [
+                "M426.641 554.581h512v-85.333h-512zM426.641 810.581h512v-85.333h-512zM426.641 298.583h512v-85.333h-512zM255.974 298.583h106.667l-149.333-149.333-149.333 149.333h106.667v426.665h-106.667l149.333 149.333 149.333-149.333h-106.667v-426.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-line-spacing"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1842,
+            "id": 720,
+            "prevSize": 24,
+            "code": 59448,
+            "name": "format-line-spacing"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 568
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 213.333v85.333h597.333v-85.333zM298.667 554.667h597.333v-85.333h-597.333zM298.667 810.667h597.333v-85.333h-597.333zM170.667 711.253c-31.573 0-56.747 25.6-56.747 56.747s25.6 56.747 56.747 56.747c31.147 0 56.747-25.6 56.747-56.747s-25.173-56.747-56.747-56.747zM170.667 192c-35.413 0-64 28.587-64 64s28.587 64 64 64c35.413 0 64-28.587 64-64s-28.587-64-64-64zM170.667 448c-35.413 0-64 28.587-64 64s28.587 64 64 64c35.413 0 64-28.587 64-64s-28.587-64-64-64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-list-bulleted"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1843,
+            "id": 719,
+            "prevSize": 24,
+            "code": 59449,
+            "name": "format-list-bulleted"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 569
+    }, {
+        "icon": {
+            "paths": [
+                "M298.64 554.581h597.334v-85.333h-597.334zM298.64 810.581h597.334v-85.333h-597.334zM298.64 298.583h597.334v-85.333h-597.334zM85.307 469.248h76.8l-76.8 89.604v38.396h128v-42.667h-76.8l76.8-89.6v-38.398h-128zM127.974 341.25h42.667v-170.667h-85.333v42.667h42.667zM85.307 725.248h85.333v21.333h-42.667v42.667h42.667v21.333h-85.333v42.667h128v-170.667h-128v42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-list-numbers"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1844,
+            "id": 718,
+            "prevSize": 24,
+            "code": 59450,
+            "name": "format-list-numbers"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 570
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 298.667l213.333 426.666h-426.667l213.333-426.666zM128 128h768v85.333h-768v-85.333zM896 640v85.333h-298.667v-85.333h298.667zM128 810.667h768v85.333h-768v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-object-inline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1845,
+            "id": 717,
+            "prevSize": 24,
+            "code": 59451,
+            "name": "format-object-inline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 571
+    }, {
+        "icon": {
+            "paths": [
+                "M512 298.667l213.333 426.667h-426.667l213.333-426.667zM128 128h768v85.333h-768v-85.333zM128 298.667h128v85.333h-128v-85.333zM896 298.667v85.333h-128v-85.333h128zM128 469.333h128v85.333h-128v-85.333zM896 469.333v85.333h-128v-85.333h128zM128 640h128v85.333h-128v-85.333zM896 640v85.333h-128v-85.333h128zM128 810.667h768v85.333h-768v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-object-square"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1846,
+            "id": 716,
+            "prevSize": 24,
+            "code": 59452,
+            "name": "format-object-square"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 572
+    }, {
+        "icon": {
+            "paths": [
+                "M512 298.667l213.333 426.667h-426.667l213.333-426.667zM128 128h768v85.333h-768v-85.333zM128 298.667l256-0v85.333l-256 0v-85.333zM896 298.667v85.333l-256-0v-85.333l256 0zM128 469.333h170.667v85.333h-170.667v-85.333zM896 469.333v85.333h-170.667v-85.333h170.667zM128 640h128v85.333h-128v-85.333zM896 640v85.333h-128v-85.333h128zM128 810.667h768v85.333h-768v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-object-tight"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1847,
+            "id": 715,
+            "prevSize": 24,
+            "code": 59453,
+            "name": "format-object-tight"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 573
+    }, {
+        "icon": {
+            "paths": [
+                "M512 298.667l213.333 426.667h-426.667l213.333-426.667zM128 128h768v85.333h-768v-85.333zM128 810.667h768v85.333h-768v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-object-top-bottom"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1848,
+            "id": 714,
+            "prevSize": 24,
+            "code": 59454,
+            "name": "format-object-top-bottom"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 574
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 170.583v-42.667c0-23.552-19.115-42.667-42.667-42.667h-512c-23.552 0-42.667 19.114-42.667 42.667v170.667c0 23.552 19.115 42.667 42.667 42.667h512c23.552 0 42.667-19.115 42.667-42.667v-42.667h42.667v170.667h-426.667v469.331c0 23.552 19.115 42.667 42.667 42.667h85.333c23.552 0 42.667-19.115 42.667-42.667v-384h341.333v-341.331h-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-paint"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1849,
+            "id": 713,
+            "prevSize": 24,
+            "code": 59455,
+            "name": "format-paint"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 575
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 170.667c94.255 0 170.667 76.41 170.667 170.667 0 94.255-76.412 170.667-170.667 170.667h-85.333v256h-85.333v-597.333h170.667zM554.667 426.667c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333l-85.333-0v170.667h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-paragraph"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1850,
+            "id": 712,
+            "prevSize": 24,
+            "code": 59456,
+            "name": "format-paragraph"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 576
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 725.333h128l85.333-170.667v-256h-256v256h128zM256 725.333h128l85.333-170.667v-256h-256v256h128l-85.333 170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-quote"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1851,
+            "id": 711,
+            "prevSize": 24,
+            "code": 59457,
+            "name": "format-quote"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 577
+    }, {
+        "icon": {
+            "paths": [
+                "M128 512h128v298.667h128v-298.667h128v-128h-384zM384 170.667v128h213.333v512h128v-512h213.333v-128h-554.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-size"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1852,
+            "id": 710,
+            "prevSize": 24,
+            "code": 59458,
+            "name": "format-size"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 578
+    }, {
+        "icon": {
+            "paths": [
+                "M128 597.333h768v-85.333h-768zM213.333 170.667v128h213.333v128h170.667v-128h213.333v-128zM426.667 810.667h170.667v-128h-170.667v128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-strikethrough"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1853,
+            "id": 709,
+            "prevSize": 24,
+            "code": 59459,
+            "name": "format-strikethrough"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 579
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 316.161l-195.84 195.839 195.84 195.84-60.16 60.16-195.84-195.84-195.84 195.84-60.16-60.16 195.84-195.84-195.84-195.839 60.16-60.16 195.84 195.839 195.84-195.839 60.16 60.16zM932.198 897.28h-208.337v-42.5l38.234-34.295c32.256-27.614 56.38-50.82 72.367-69.628 15.987-18.803 24.179-36.365 24.576-52.676 0.102-12.028-3.746-21.982-11.55-29.862-7.804-7.876-20.186-11.959-37.15-12.245-12.821 0.277-24.614 2.825-35.388 7.65l-27.878 16.29-19.571-49.975c11.294-8.981 25.233-16.457 41.818-22.421s34.961-9.058 55.13-9.289c33.229 0.585 58.551 9.591 75.972 27.025s26.193 39.791 26.317 67.068c-0.593 23.974-8.209 46.037-22.852 66.193-14.647 20.151-32.781 39.445-54.404 57.882l-27.311 22.157v0.887h110.029v57.741z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-subscript"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1854,
+            "id": 708,
+            "prevSize": 24,
+            "code": 59460,
+            "name": "format-subscript"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 580
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 316.161l-195.84 195.839 195.84 195.84-60.16 60.16-195.84-195.84-195.84 195.84-60.16-60.16 195.84-195.84-195.84-195.839 60.16-60.16 195.84 195.839 195.84-195.839 60.16 60.16zM932.181 383.289h-208.337v-42.499l38.234-34.298c32.256-27.612 56.38-50.821 72.367-69.626s24.179-36.364 24.576-52.676c0.107-12.029-3.746-21.984-11.55-29.862s-20.186-11.961-37.15-12.248c-12.817 0.277-24.614 2.828-35.388 7.651l-27.874 16.291-19.571-49.975c11.294-8.983 25.229-16.457 41.813-22.422s34.961-9.060 55.13-9.287c33.229 0.584 58.556 9.592 75.972 27.025 17.421 17.433 26.193 39.788 26.317 67.067-0.589 23.975-8.209 46.039-22.852 66.191s-32.781 39.447-54.404 57.883l-27.307 22.156v0.886h110.025v57.742z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-superscript"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1855,
+            "id": 707,
+            "prevSize": 24,
+            "code": 59461,
+            "name": "format-superscript"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 581
+    }, {
+        "icon": {
+            "paths": [
+                "M789.333 170.667l49.694 185.458-41.212 11.043c-19.315-37.056-38.63-74.112-61.376-92.64s-48.926-18.528-75.106-18.528h-106.667v448c0 21.333 0 42.667 14.221 53.333 14.225 10.667 42.667 10.667 71.113 10.667v42.667h-256v-42.667c28.445 0 56.887 0 71.113-10.667 14.221-10.667 14.221-32 14.221-53.333v-448h-106.667c-26.179 0-52.359 0-75.106 18.528s-42.060 55.584-61.374 92.64l-41.213-11.043 49.693-185.458h554.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-text"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1856,
+            "id": 706,
+            "prevSize": 24,
+            "code": 59462,
+            "name": "format-text"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 582
+    }, {
+        "icon": {
+            "paths": [
+                "M896 768l-170.667-170.667v128h-512v85.333h512v128zM384 426.667v213.333h85.333v-469.333h85.333v469.333h85.333v-469.333h85.333v-85.333h-341.333c-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-textdirection-l-to-r"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1857,
+            "id": 705,
+            "prevSize": 24,
+            "code": 59463,
+            "name": "format-textdirection-l-to-r"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 583
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 725.333v-128l-170.667 170.667 170.667 170.667v-128h512v-85.333zM426.667 426.667v213.333h85.333v-469.333h85.333v469.333h85.333v-469.333h85.333v-85.333h-341.333c-94.293 0-170.667 76.373-170.667 170.667s76.373 170.667 170.667 170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-textdirection-r-to-l"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1858,
+            "id": 704,
+            "prevSize": 24,
+            "code": 59464,
+            "name": "format-textdirection-r-to-l"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 584
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 896h597.333v-85.333h-597.333v85.333zM512 725.333c141.355 0 256-114.645 256-256v-341.333h-106.667v341.333c0 82.475-66.859 149.333-149.333 149.333s-149.333-66.859-149.333-149.333v-341.333h-106.667v341.333c0 141.355 114.645 256 256 256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "format-underline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1859,
+            "id": 703,
+            "prevSize": 24,
+            "code": 59465,
+            "name": "format-underline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 585
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 512v-384c0-23.467-19.2-42.667-42.667-42.667h-554.667c-23.467 0-42.667 19.2-42.667 42.667v597.333l170.667-170.667h426.667c23.467 0 42.667-19.2 42.667-42.667zM896 256h-85.333v384h-554.667v85.333c0 23.467 19.2 42.667 42.667 42.667h469.333l170.667 170.667v-640c0-23.467-19.2-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "forum"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1860,
+            "id": 702,
+            "prevSize": 24,
+            "code": 59466,
+            "name": "forum"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 586
+    }, {
+        "icon": {
+            "paths": [
+                "M512 341.333v-170.667l341.333 341.333-341.333 341.333v-170.667h-341.333v-341.333h341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "forward"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1861,
+            "id": 701,
+            "prevSize": 24,
+            "code": 59467,
+            "name": "forward"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 587
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 213.333l-18.227 105.907c-2.283 10.766-15.838 22.093-28.407 22.093-12.565 0-166.699 0-166.699 0-19.955 0-44.907 13.604-44.907 33.541l-0.098 17.699c0 19.954 25.033 34.094 45.005 34.094 0 0 125.73 0 139.806 0 14.093 0 27.925 15.454 24.875 30.498-3.059 15.066-39.040 109.594-40.759 117.833-1.724 8.247-11.166 22.336-27.921 22.336-14.118 0-122.825 0-122.825 0-22.374 0-29.137 2.923-44.1 21.521-14.976 18.615-130.973 153.284-130.973 153.284-1.363 1.566-11.436-2.428-11.436-4.139v-554.667c0-12.734 26.065-42.667 42.667-42.667 0 0 348.407 0 362.667 0 13.449 0 24.764 26.153 21.333 42.667zM725.001 616.452c5.082-20.557 76.156-329.766 95.194-422.363zM749.914 85.333c0 0-392.457 0-455.278 0-62.831 0-81.303 47.25-81.303 77.005 0 29.777 0 723.375 0 723.375 0 33.519 18.013 45.948 28.13 50.048 10.127 4.105 38.061 7.561 54.798-11.755 0 0 200.878-232.064 204.569-235.755 5.585-5.585 5.585-5.585 11.17-5.585 11.17 0 94.016 0 139.063 0 58.436 0 67.831-41.673 73.937-66.214 5.082-20.557 76.156-329.766 95.194-422.363 14.532-70.663-3.422-108.756-70.281-108.756z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "foursquare"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1862,
+            "id": 700,
+            "prevSize": 24,
+            "code": 59468,
+            "name": "foursquare"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 588
+    }, {
+        "icon": {
+            "paths": [
+                "M384 896v42.667h-85.333v-42.667c-47.128 0-85.333-38.204-85.333-85.333v-640c0-47.128 38.205-85.333 85.333-85.333h426.667c47.13 0 85.333 38.205 85.333 85.333v640c0 47.13-38.204 85.333-85.333 85.333v42.667h-85.333v-42.667h-256zM298.666 170.667l0 213.333h426.667v-213.333h-426.667zM298.666 810.667h426.667v-341.333h-426.667l-0 341.333zM341.333 512h85.333v128h-85.333v-128zM341.333 256h85.333v85.333h-85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "fridge"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1863,
+            "id": 699,
+            "prevSize": 24,
+            "code": 59469,
+            "name": "fridge"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 589
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 597.333h213.333v85.333h-128v128h-85.333v-213.333zM213.333 597.333h213.333v213.333h-85.333v-128h-128v-85.333zM341.333 213.333h85.333v213.333h-213.333v-85.333h128v-128zM810.667 341.333v85.333h-213.333v-213.333h85.333v128h128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "fullscreen-exit"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1864,
+            "id": 698,
+            "prevSize": 24,
+            "code": 59470,
+            "name": "fullscreen-exit"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 590
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 213.333h213.333v85.333h-128v128h-85.333v-213.333zM597.333 213.334h213.333v213.333h-85.333v-128h-128v-85.333zM725.333 597.333h85.333v213.333h-213.333v-85.333h128v-128zM426.667 725.333v85.333h-213.333v-213.333h85.333v128h128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "fullscreen"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1865,
+            "id": 697,
+            "prevSize": 24,
+            "code": 59471,
+            "name": "fullscreen"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 591
+    }, {
+        "icon": {
+            "paths": [
+                "M665.545 225.626c-46.95-4.108-88.341 30.622-92.446 77.571l-10.803 123.47h120.371v85.333h-127.838l-18.918 216.239c-8.213 93.901-90.991 163.358-184.891 155.145-55.732-4.877-102.855-36.019-130.237-80.166l63.822-63.821c10.179 31.74 38.564 55.889 73.852 58.978 46.949 4.109 88.34-30.622 92.445-77.572l18.27-208.802h-127.838v-85.333h135.305l11.452-130.906c8.213-93.898 90.991-163.357 184.892-155.142 55.731 4.876 102.852 36.020 130.236 80.165l-63.821 63.821c-10.18-31.741-38.566-55.891-73.852-58.978z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "function"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1866,
+            "id": 696,
+            "prevSize": 24,
+            "code": 59472,
+            "name": "function"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 592
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 256h426.667c141.385 0 256 114.615 256 256s-114.615 256-256 256c-75.819 0-143.94-32.96-190.814-85.333h-45.039c-46.874 52.373-114.995 85.333-190.814 85.333-141.385 0-256-114.615-256-256s114.615-256 256-256zM256 384v85.333h-85.333v85.333h85.333v85.333h85.333v-85.333h85.333v-85.333h-85.333v-85.333h-85.333zM661.333 512c-35.345 0-64 28.655-64 64s28.655 64 64 64c35.345 0 64-28.655 64-64s-28.655-64-64-64zM789.333 384c-35.345 0-64 28.654-64 64s28.655 64 64 64c35.345 0 64-28.655 64-64s-28.655-64-64-64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "gamepad-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1867,
+            "id": 695,
+            "prevSize": 24,
+            "code": 59473,
+            "name": "gamepad-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 593
+    }, {
+        "icon": {
+            "paths": [
+                "M703.974 383.918l-128 128.001 128 128h234.667v-256.001zM383.974 703.919v234.667h256v-234.667l-128-128zM319.974 383.918h-234.667v256.001h234.667l128-128zM639.974 319.918v-234.667h-256v234.667l128 128.001 128-128.001z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "gamepad"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1868,
+            "id": 694,
+            "prevSize": 24,
+            "code": 59474,
+            "name": "gamepad"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 594
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 426.584c-23.552 0-42.667-19.115-42.667-42.667s19.115-42.667 42.667-42.667c23.552 0 42.667 19.114 42.667 42.667s-19.115 42.667-42.667 42.667zM511.974 426.584h-256v-213.333h256zM843.409 308.483l0.512-0.512-158.72-158.72-45.227 45.269 90.027 89.984c-40.107 15.36-68.693 53.931-68.693 99.413 0 58.924 47.744 106.668 106.667 106.668 15.189 0 29.568-3.285 42.667-9.003v307.669c0 23.552-19.115 42.667-42.667 42.667s-42.667-19.115-42.667-42.667v-192c0-47.147-38.229-85.333-85.333-85.333h-42.667v-298.668c0-47.147-38.229-85.333-85.333-85.333h-256c-47.147 0-85.333 38.187-85.333 85.333v682.668h426.667v-320h64v213.333c0 58.923 47.744 106.667 106.667 106.667s106.667-47.744 106.667-106.667v-405.335c0-29.44-11.947-56.107-31.232-75.435z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "gas-station"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1869,
+            "id": 693,
+            "prevSize": 24,
+            "code": 59475,
+            "name": "gas-station"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 595
+    }, {
+        "icon": {
+            "paths": [
+                "M98.014 865.387l409.881-409.882-60.339-60.34-30.17 30.17c-16.662 16.662-43.677 16.662-60.34 0l-30.17-30.17c-16.662-16.663-16.662-43.677 0-60.34l241.359-241.359c16.661-16.662 43.678-16.663 60.339 0l30.17 30.17c16.666 16.663 16.666 43.678 0 60.34l-30.17 30.17 60.339 60.34c16.666-16.662 43.678-16.662 60.343 0 16.661 16.662 16.661 43.677-0.004 60.34l60.343 60.34 30.17-30.17c16.661-16.662 43.678-16.662 60.339 0l30.17 30.17c16.661 16.662 16.661 43.679 0 60.34l-241.361 241.357c-16.661 16.666-43.674 16.666-60.339 0l-30.17-30.17c-16.661-16.661-16.661-43.678 0-60.339l30.17-30.17-60.339-60.339-409.881 409.882c-16.662 16.661-43.677 16.661-60.34 0s-16.663-43.678 0-60.339zM853.333 810.667c47.13 0 85.333 38.204 85.333 85.333v42.667h-426.667v-42.667c0-47.13 38.204-85.333 85.333-85.333h256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "gavel"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1870,
+            "id": 692,
+            "prevSize": 24,
+            "code": 59476,
+            "name": "gavel"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 596
+    }, {
+        "icon": {
+            "paths": [
+                "M512 170.667c141.385 0 256 114.615 256 256 0 126.848-92.258 232.149-213.333 252.459v88.875h85.333v85.333h-85.333v85.333h-85.333v-85.333h-85.333v-85.333h85.333v-88.875c-121.076-20.309-213.333-125.611-213.333-252.459 0-141.385 114.615-256 256-256zM512 256c-94.257 0-170.667 76.41-170.667 170.667 0 94.255 76.41 170.667 170.667 170.667 94.255 0 170.667-76.412 170.667-170.667 0-94.256-76.412-170.667-170.667-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "gender-female"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1871,
+            "id": 691,
+            "prevSize": 24,
+            "code": 59477,
+            "name": "gender-female"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 597
+    }, {
+        "icon": {
+            "paths": [
+                "M750.144 170.667l-152.811 0v-85.333l298.667-0v298.667h-85.333v-153.178l-163.418 163.418c22.383 33.749 35.418 74.231 35.418 117.76 0 103.211-73.293 189.299-170.667 209.067v89.6h85.333v85.333h-85.333v85.333h-85.333v-85.333h-85.333v-85.333h85.333v-89.6c-97.376-19.767-170.667-105.856-170.667-209.067 0-117.821 95.513-213.333 213.333-213.333 43.435 0 83.836 12.98 117.538 35.272l163.273-163.271zM469.333 384c-70.693 0-128 57.31-128 128 0 70.694 57.307 128 128 128 70.69 0 128-57.306 128-128 0-70.69-57.306-128-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "gender-male-female"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1872,
+            "id": 690,
+            "prevSize": 24,
+            "code": 59478,
+            "name": "gender-male-female"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 598
+    }, {
+        "icon": {
+            "paths": [
+                "M384 384c55.241 0 106.398 17.497 148.224 47.253l217.92-217.92h-195.477v-85.333h341.333v341.333h-85.333v-195.845l-218.074 218.070c29.85 41.869 47.407 93.107 47.407 148.442 0 141.385-114.615 256-256 256s-256-114.615-256-256c0-141.385 114.615-256 256-256zM384 469.333c-94.257 0-170.667 76.412-170.667 170.667s76.41 170.667 170.667 170.667c94.255 0 170.667-76.412 170.667-170.667s-76.412-170.667-170.667-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "gender-male"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1873,
+            "id": 689,
+            "prevSize": 24,
+            "code": 59479,
+            "name": "gender-male"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 599
+    }, {
+        "icon": {
+            "paths": [
+                "M835.477 128h-195.477v-85.333h341.333v341.333h-85.333v-195.845l-206.084 206.085c22.383 33.749 35.418 74.231 35.418 117.76 0 103.211-73.293 189.299-170.667 209.067v89.6h85.333v85.333h-85.333v85.333h-85.333v-85.333h-85.333v-85.333h85.333v-89.6c-97.376-19.767-170.667-105.856-170.667-209.067 0-43.226 12.856-83.447 34.953-117.055l-50.422-50.618-59.682 59.364-60.178-60.5 59.638-59.32-94.976-95.345 0 152.809h-85.333l-0-298.667h298.667v85.333l-153.178-0 95.321 95.692 61.364-61.037 60.178 60.501-61.32 60.992 50.061 50.257c33.841-22.577 74.507-35.738 118.24-35.738 43.435 0 83.836 12.98 117.538 35.272l205.939-205.938zM512 384c-70.694 0-128 57.31-128 128 0 70.694 57.306 128 128 128s128-57.306 128-128c0-70.694-57.306-128-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "gender-transgender"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1874,
+            "id": 688,
+            "prevSize": 24,
+            "code": 59480,
+            "name": "gender-transgender"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 600
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 512v341.333c0 47.13-38.204 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333v-341.333c-23.564 0-42.667-19.102-42.667-42.667v-128c0-47.128 38.205-85.333 85.333-85.333h135.284c-4.717-13.345-7.284-27.706-7.284-42.667 0-70.692 57.308-128 128-128 42.607 0 80.35 20.817 103.616 52.835l0.23-0.168 24.154 33.242 24.154-33.242 0.23 0.168c23.266-32.018 61.009-52.835 103.616-52.835 70.694 0 128 57.308 128 128 0 14.961-2.569 29.321-7.283 42.667h135.283c47.13 0 85.333 38.205 85.333 85.333v128c0 23.565-19.102 42.667-42.667 42.667zM170.666 853.333h298.667v-341.333h-298.667v341.333zM853.333 853.333v-341.333h-298.667v341.333h298.667zM384 170.668c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.564 0 42.667-19.103 42.667-42.667s-19.103-42.667-42.667-42.667zM640 170.668c-23.565 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.103 42.667-42.667s-19.102-42.667-42.667-42.667zM128 341.333v85.333h341.333v-85.333h-341.333zM554.667 341.333v85.333h341.333v-85.333h-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "gift"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1875,
+            "id": 687,
+            "prevSize": 24,
+            "code": 59481,
+            "name": "gift"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 601
+    }, {
+        "icon": {
+            "paths": [
+                "M110.74 451.661l246.957-246.957 71.866 71.869c-10.009 37.163 6.31 76.746 39.77 96.006v236.173c-25.506 14.754-42.667 42.33-42.667 73.916 0 47.13 38.204 85.333 85.333 85.333s85.333-38.204 85.333-85.333c0-31.586-17.161-59.162-42.667-73.916v-207.078l88.222 88.226c-1.882 7.049-2.889 14.455-2.889 22.101 0 47.13 38.204 85.333 85.333 85.333s85.333-38.204 85.333-85.333c0-47.13-38.204-85.333-85.333-85.333-7.646 0-15.053 1.007-22.101 2.889l-108.8-108.794c10.901-40.467-9.417-83.804-49.088-100.644-18.244-7.743-37.67-8.652-55.433-3.879l-71.875-71.874 33.624-33.623c33.323-33.324 87.356-33.324 120.678 0l340.919 340.92c33.327 33.323 33.327 87.356 0 120.678l-340.919 340.919c-33.323 33.327-87.356 33.327-120.678 0l-340.92-340.919c-33.325-33.323-33.325-87.356 0-120.678z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "git"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1876,
+            "id": 686,
+            "prevSize": 24,
+            "code": 59482,
+            "name": "git"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 602
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.333h682.667c47.13 0 85.333 38.205 85.333 85.333v682.667c0 47.13-38.204 85.333-85.333 85.333h-219.883c-15.211-3.46-15.671-32.247-15.671-42.368l0.525-117.047c0-39.799-13.645-65.843-28.945-79.014 95.027-10.564 194.799-46.63 194.799-210.539 0-46.579-16.503-84.667-43.849-114.493 4.373-10.794 19.017-54.174-4.271-112.916 0 0-35.75-11.472-117.21 43.739-34.078-9.464-70.566-14.196-106.816-14.361-36.275 0.165-72.789 4.897-106.813 14.361-81.512-55.211-117.318-43.739-117.318-43.739-23.232 58.742-8.591 102.122-4.19 112.916-27.293 29.826-43.925 67.913-43.925 114.493 0 163.499 99.61 200.102 194.35 210.871-12.18 10.667-23.207 29.466-27.083 57.037-24.308 10.927-86.122 29.751-124.18-35.447 0 0-22.525-40.956-65.35-43.972 0 0-41.673-0.538-2.934 25.937 0 0 27.974 13.12 47.383 62.413 0 0 25.040 82.978 143.719 57.195l0.576 72.567c0 10.099-0.719 39.087-16.087 42.368h-219.494c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "github-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1877,
+            "id": 685,
+            "prevSize": 24,
+            "code": 59483,
+            "name": "github-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 603
+    }, {
+        "icon": {
+            "paths": [
+                "M511.962 85.333c-235.578 0-426.628 191.024-426.628 426.692 0 188.493 122.241 348.412 291.787 404.838 21.347 3.913 29.126-9.259 29.126-20.565 0-10.129-0.367-36.962-0.576-72.567-118.679 25.783-143.72-57.195-143.72-57.195-19.409-49.289-47.383-62.413-47.383-62.413-38.739-26.475 2.934-25.937 2.934-25.937 42.825 3.017 65.35 43.972 65.35 43.972 38.058 65.199 99.873 46.374 124.18 35.452 3.876-27.575 14.903-46.374 27.083-57.041-94.739-10.769-194.35-47.373-194.35-210.871 0-46.579 16.632-84.667 43.925-114.493-4.401-10.794-19.043-54.174 4.19-112.917 0 0 35.806-11.472 117.318 43.739 34.024-9.463 70.538-14.196 106.813-14.361 36.25 0.165 72.738 4.898 106.816 14.361 81.459-55.211 117.21-43.739 117.21-43.739 23.287 58.743 8.644 102.123 4.271 112.917 27.345 29.826 43.849 67.913 43.849 114.493 0 163.908-99.772 199.974-194.799 210.539 15.3 13.171 28.945 39.211 28.945 79.014 0 57.037-0.525 103.057-0.525 117.047 0 11.409 7.701 24.683 29.338 20.514 169.412-56.529 291.55-216.346 291.55-404.787 0-235.668-191.049-426.692-426.705-426.692z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "github"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1878,
+            "id": 684,
+            "prevSize": 24,
+            "code": 59484,
+            "name": "github"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 604
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 85.332h341.333c-14.221 128-28.446 256-53.333 334.223-24.887 78.224-60.446 106.666-78.221 181.332-17.779 74.667-17.779 195.554 7.108 252.446 24.892 56.887 74.667 49.779 99.558 53.333 24.887 3.554 24.887 17.779 24.887 32h-341.333c0-14.221 0-28.446 24.889-32s74.665 3.554 99.557-53.333c24.887-56.892 24.887-177.779 7.108-252.446-17.775-74.667-53.332-103.108-78.221-181.332-24.889-78.222-39.111-206.222-53.333-334.223zM426.667 170.667c3.149 44.11 6.302 88.22 10.069 128h150.528c3.767-39.78 6.921-83.89 10.069-128l-170.667 0z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "glass-flute"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1879,
+            "id": 683,
+            "prevSize": 24,
+            "code": 59485,
+            "name": "glass-flute"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 605
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 170.667v128h341.333v-128h-341.333zM341.333 85.334l554.667-0v42.667l-42.667 42.667v682.667l42.667 42.667v42.667h-597.333v-42.667l42.667-42.667v-59.755l-162.207-75.379c-30.099-13.184-51.127-43.234-51.127-78.199l0-298.667c0-47.128 38.205-85.333 85.333-85.333h128v-85.333l-42.667-42.667v-42.666h42.667zM213.333 640l128 59.482v-358.148h-128v298.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "glass-mug"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1880,
+            "id": 682,
+            "prevSize": 24,
+            "code": 59486,
+            "name": "glass-mug"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 606
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 85.334l341.334-0v853.333h-341.334v-853.332zM426.666 170.667v128h170.667v-128h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "glass-stange"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1881,
+            "id": 681,
+            "prevSize": 24,
+            "code": 59487,
+            "name": "glass-stange"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 607
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 85.332h341.333c-14.221 28.445-28.446 56.889-17.779 128s46.225 184.889 28.446 244.741c-17.779 59.853-88.887 65.775-124.446 133.333-35.554 67.554-35.554 196.74-10.667 257.779 24.892 61.035 74.667 53.926 99.558 57.481 24.887 3.554 24.887 17.779 24.887 32h-341.333c0-14.221 0-28.446 24.889-32s74.665 3.554 99.557-57.485c24.887-61.035 24.887-190.221-10.667-257.775-35.557-67.554-106.668-73.481-124.446-133.333-17.778-59.852 17.778-173.629 28.445-244.741s-3.556-99.555-17.778-128zM426.666 170.667c0 50.817-7.285 92.668-15.181 128h197.321c-5.871-35.331-11.473-77.182-11.473-127.999l-170.667-0z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "glass-tulip"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1882,
+            "id": 680,
+            "prevSize": 24,
+            "code": 59488,
+            "name": "glass-tulip"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 608
+    }, {
+        "icon": {
+            "paths": [
+                "M127.872 426.667c-10.283 0-19.243 3.712-25.173 10.453-5.931 6.699-8.533 16.043-7.253 26.24l21.248 127.659c3.413 26.88 28.459 48.981 53.845 48.981h128c27.221 0 58.027-24.021 64.64-50.475l44.8-136.149c1.408-5.931 0.469-13.696-3.541-18.773-3.968-5.12-11.264-7.936-20.565-7.936h-256zM298.539 725.333h-128c-68.992 0-129.706-53.632-138.24-122.027l-21.248-127.659c-4.565-36.053 5.632-70.059 27.691-95.019s54.528-39.296 89.13-39.296h256c35.627 0 67.627 14.848 87.851 40.747 5.065 6.499 9.276 13.548 12.608 21.009 18.163-3.831 36.983-3.828 55.142 0.009 3.319-7.497 7.531-14.534 12.591-21.018 20.224-25.899 52.224-40.747 87.808-40.747h256c34.645 0 67.072 14.336 89.173 39.296 22.016 25.003 32.213 59.008 27.904 93.355l-21.76 131.029c-8.32 66.731-69.035 120.32-137.941 120.32h-128c-66.645 0-131.371-50.603-147.456-115.157l-38.336-115.806c-16.448-11.836-38.848-11.814-55.249 0.064l-39.108 118.814c-15.275 61.525-80.043 112.085-146.56 112.085zM639.872 426.667c-9.259 0-16.555 2.816-20.523 7.893-4.011 5.12-4.949 12.885-2.731 21.888l43.093 130.048c7.467 29.483 38.272 53.504 65.536 53.504h128c25.387 0 50.389-22.101 53.547-47.275l21.76-131.029c1.024-8.491-1.579-17.835-7.509-24.576-5.973-6.741-14.891-10.453-25.173-10.453h-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "glasses"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1883,
+            "id": 679,
+            "prevSize": 24,
+            "code": 59489,
+            "name": "glasses"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 609
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 767.919h-85.333v-373.335l-256 160.001-256-160.001v373.335h-85.333v-512.001h51.2l290.134 181.335 290.133-181.335h51.2zM853.308 170.584h-682.667c-47.147 0-84.907 38.186-84.907 85.333l-0.426 512.001c0 47.104 38.187 85.333 85.333 85.333h682.667c47.104 0 85.333-38.229 85.333-85.333v-512.001c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "gmail"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1884,
+            "id": 678,
+            "prevSize": 24,
+            "code": 59490,
+            "name": "gmail"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 610
+    }, {
+        "icon": {
+            "paths": [
+                "M511.996 853.252l147.797-256-0.64-0.384c14.549-25.088 23.509-53.845 23.509-84.949 0-51.285-23.083-96.727-58.88-128.001h204.501c16 39.552 25.045 82.689 25.045 128.001 0 188.501-152.832 341.333-341.333 341.333zM170.662 511.919c0-62.165 16.853-120.236 45.867-170.412l147.712 255.788 0.555-0.341c29.568 50.944 84.053 85.632 147.2 85.632 19.371 0 37.632-3.925 54.997-9.856l-102.144 176.896c-166.144-22.997-294.187-165.248-294.187-337.707zM639.996 511.919c0 70.656-57.344 128-128 128-70.699 0-128-57.344-128-128s57.301-128.001 128-128.001c70.656 0 128 57.345 128 128.001zM511.996 170.584c126.251 0 236.245 68.736 295.253 170.667h-295.253c-82.731 0-151.637 58.88-167.296 136.961l-101.632-176.002c62.464-80 159.573-131.626 268.928-131.626zM511.996 85.251c-235.691 0-426.667 191.018-426.667 426.668 0 235.648 190.976 426.667 426.667 426.667 235.648 0 426.667-191.019 426.667-426.667 0-235.65-191.019-426.668-426.667-426.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-chrome"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1885,
+            "id": 677,
+            "prevSize": 24,
+            "code": 59491,
+            "name": "google-chrome"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 611
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 511.919c-47.147 0-85.333 38.187-85.333 85.333 0 47.083 38.187 85.333 85.333 85.333 47.104 0 85.333-38.251 85.333-85.333 0-47.147-38.229-85.333-85.333-85.333zM511.974 853.252c-188.501 0-341.333-152.832-341.333-341.333 0-188.545 152.832-341.335 341.333-341.335s341.333 152.789 341.333 341.335c0 188.501-152.832 341.333-341.333 341.333zM511.974 85.251c-235.648 0-426.667 191.019-426.667 426.668 0 235.648 191.019 426.667 426.667 426.667s426.667-191.019 426.667-426.667c0-235.649-191.019-426.668-426.667-426.668zM597.308 383.918c0-47.147-38.229-85.333-85.333-85.333-47.147 0-85.333 38.186-85.333 85.333 0 47.084 38.187 85.335 85.333 85.335 47.104 0 85.333-38.251 85.333-85.335zM383.974 511.919c-47.104 0-85.333 38.187-85.333 85.333 0 47.083 38.229 85.333 85.333 85.333s85.333-38.251 85.333-85.333c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-circles-communities"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1886,
+            "id": 676,
+            "prevSize": 24,
+            "code": 59492,
+            "name": "google-circles-communities"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 612
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 810.586c-47.147 0-85.333-38.187-85.333-85.333s38.187-85.333 85.333-85.333c47.147 0 85.333 38.187 85.333 85.333s-38.187 85.333-85.333 85.333zM767.974 554.586c-94.251 0-170.667 76.416-170.667 170.667s76.416 170.667 170.667 170.667c94.251 0 170.667-76.416 170.667-170.667s-76.416-170.667-170.667-170.667zM511.974 473.519c-44.757 0-81.067 36.314-81.067 81.067 0 44.749 36.309 81.067 81.067 81.067s81.067-36.318 81.067-81.067c0-44.753-36.309-81.067-81.067-81.067zM255.975 810.586c-47.147 0-85.333-38.187-85.333-85.333s38.187-85.333 85.333-85.333c47.147 0 85.333 38.187 85.333 85.333s-38.187 85.333-85.333 85.333zM255.975 554.586c-94.251 0-170.667 76.416-170.667 170.667s76.416 170.667 170.667 170.667c94.251 0 170.667-76.416 170.667-170.667s-76.416-170.667-170.667-170.667zM511.974 170.584c47.147 0 85.333 38.186 85.333 85.333s-38.187 85.333-85.333 85.333c-47.147 0-85.333-38.187-85.333-85.333s38.186-85.333 85.333-85.333zM511.974 426.584c94.251 0 170.667-76.416 170.667-170.667s-76.416-170.667-170.667-170.667c-94.25 0-170.666 76.416-170.666 170.667s76.416 170.667 170.666 170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-circles-extended"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1887,
+            "id": 675,
+            "prevSize": 24,
+            "code": 59493,
+            "name": "google-circles-extended"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 613
+    }, {
+        "icon": {
+            "paths": [
+                "M213.334 426.667c-47.147 0-85.333 38.187-85.333 85.333s38.186 85.333 85.333 85.333c47.147 0 85.333-38.187 85.333-85.333s-38.187-85.333-85.333-85.333zM213.333 682.667c-94.251 0-170.667-76.416-170.667-170.667s76.416-170.666 170.667-170.666c94.25 0 170.666 76.416 170.666 170.666s-76.416 170.667-170.666 170.667zM448 469.333h149.333v-128l170.667 170.667-170.667 170.667v-128h-149.333v-85.333zM213.333 256c-19.251 0-38.006 2.125-56.043 6.153 83.087-131.87 230-219.487 397.376-219.487 259.204 0 469.333 210.128 469.333 469.333 0 259.204-210.129 469.333-469.333 469.333-167.377 0-314.289-87.616-397.376-219.486 18.037 4.028 36.792 6.153 56.043 6.153 33.968 0 66.391-6.618 96.050-18.628 62.054 64.107 149.014 103.962 245.283 103.962 188.514 0 341.333-152.819 341.333-341.333 0-188.513-152.819-341.333-341.333-341.333-96.269 0-183.229 39.854-245.283 103.962-29.659-12.013-62.082-18.629-96.050-18.629z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-circles-invite"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1888,
+            "id": 674,
+            "prevSize": 24,
+            "code": 59494,
+            "name": "google-circles-invite"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 614
+    }, {
+        "icon": {
+            "paths": [
+                "M710.703 639.181l14.592 0.725c43.221 0 84.437-8.363 122.496-22.997-29.824 182.357-187.691 321.664-378.496 321.664-212.053 0-384-171.904-384-384 0-190.807 139.349-348.673 321.707-378.497-14.634 38.059-23.040 79.275-23.040 122.496l0.726 14.634c-99.755 34.944-171.392 129.666-171.392 241.367 0 141.397 114.646 256 256 256 111.701 0 206.421-71.637 241.408-171.392zM725.308 426.584c70.699 0 128-57.301 128-128s-57.301-128-128-128c-70.699 0-128 57.301-128 128s57.301 128 128 128zM725.308 42.584c141.355 0 256 114.602 256 256s-114.645 256.001-256 256.001c-141.397 0-256-114.603-256-256.001s114.603-256 256-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-circles"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1889,
+            "id": 673,
+            "prevSize": 24,
+            "code": 59495,
+            "name": "google-circles"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 615
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-256-256h-202.949l-127.464 127.462c-13.512 13.513-32.179 21.871-52.798 21.871-41.237 0-74.667-33.429-74.667-74.667l0.836-11.209 42.515-314.449c3.675-43.655 21.958-83.155 49.944-113.593l-93.295-93.295zM213.333 426.667v42.667h85.333v85.333h42.667v-73.877l-54.121-54.123h-73.879zM704 256c100.54 0 183.031 77.279 191.317 175.676l42.513 314.449 0.836 11.209c0 28.045-15.462 52.476-38.323 65.242l-566.575-566.575h370.232zM704 341.334c-17.673 0-32 14.327-32 32s14.327 32 32 32c17.673 0 32-14.327 32-32s-14.327-32-32-32zM629.333 416c-17.673 0-32 14.327-32 32s14.327 32 32 32c17.673 0 32-14.327 32-32s-14.327-32-32-32zM778.667 416c-17.673 0-32 14.327-32 32s14.327 32 32 32c17.673 0 32-14.327 32-32s-14.327-32-32-32zM704 490.667c-17.673 0-32 14.327-32 32s14.327 32 32 32c17.673 0 32-14.327 32-32s-14.327-32-32-32z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-controller-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1890,
+            "id": 672,
+            "prevSize": 24,
+            "code": 59496,
+            "name": "google-controller-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 616
+    }, {
+        "icon": {
+            "paths": [
+                "M340.262 682.667l-127.464 127.462c-13.512 13.513-32.179 21.871-52.798 21.871-41.237 0-74.667-33.429-74.667-74.667l0.836-11.209 42.515-314.449c8.284-98.397 90.775-175.676 191.316-175.676h384c100.54 0 183.031 77.279 191.317 175.676l42.513 314.449 0.836 11.209c0 41.237-33.429 74.667-74.667 74.667-20.621 0-39.287-8.358-52.796-21.871l-127.467-127.462h-343.476zM298.666 341.334v85.333h-85.333v42.667h85.333v85.333h42.667v-85.333h85.333v-42.667h-85.333v-85.333h-42.667zM704 341.334c-17.673 0-32 14.327-32 32s14.327 32 32 32c17.673 0 32-14.327 32-32s-14.327-32-32-32zM629.333 416c-17.673 0-32 14.327-32 32s14.327 32 32 32c17.673 0 32-14.327 32-32s-14.327-32-32-32zM778.667 416c-17.673 0-32 14.327-32 32s14.327 32 32 32c17.673 0 32-14.327 32-32s-14.327-32-32-32zM704 490.667c-17.673 0-32 14.327-32 32s14.327 32 32 32c17.673 0 32-14.327 32-32s-14.327-32-32-32z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-controller"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1891,
+            "id": 671,
+            "prevSize": 24,
+            "code": 59497,
+            "name": "google-controller"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 617
+    }, {
+        "icon": {
+            "paths": [
+                "M328.994 150.126l-279.893 489.772 146.133 255.701 279.851-489.218zM415.223 639.898l-146.432 256h559.744l146.304-256zM950.434 597.231l-292.565-512.001h-291.797l-0.213 0.341 292.395 511.66h292.181z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-drive"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1892,
+            "id": 670,
+            "prevSize": 24,
+            "code": 59498,
+            "name": "google-drive"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 618
+    }, {
+        "icon": {
+            "paths": [
+                "M528.892 322.417c-119.467-112.853-217.302-81.365-259.499-62.208 31.829-30.72 69.376-55.424 111.061-72.363 118.742-4.395 252.374 18.56 326.315 124.203 0 0 103.381 178.391 140.416 99.84 9.429 31.703 14.72 65.239 14.72 100.012 0 12.715-0.811 25.259-2.091 37.632-86.827-9.984-205.909-109.013-330.923-227.116zM814.758 686.75c-40.064 15.829-90.069 42.752-168.747 42.752-80.384 0-150.656-32-238.081-59.691-79.488-25.216-108.884-64-163.925-64-27.989 0-41.984 28.117-49.792 51.84-20.352-44.416-32.085-93.653-32.085-145.749 0-34.304 5.162-67.371 14.378-98.689 53.888-67.755 136.277-109.355 254.166-18.304 0 0 265.856 199.041 417.749 212.268-7.979 28.16-19.328 54.784-33.664 79.573zM512.038 861.811c-47.957 0-93.612-9.728-135.211-27.136-26.581-63.275-26.155-112.853 47.787-88.107 0 0 167.126 64.811 343.083 3.627-63.872 68.523-154.667 111.616-255.659 111.616zM512.038 85.234c-235.648 0-426.667 191.018-426.667 426.668 0 235.691 191.019 426.667 426.667 426.667 235.605 0 426.667-190.976 426.667-426.667 0-235.65-191.061-426.668-426.667-426.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-earth"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1893,
+            "id": 669,
+            "prevSize": 24,
+            "code": 59499,
+            "name": "google-earth"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 619
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 469.252v106.667h250.411c-26.155 149.632-143.403 256-293.077 256-176.469 0-320-143.531-320-320s143.531-320.001 320-320.001c89.045 0 166.4 37.888 220.16 99.883l75.733-75.776c-72.149-80.512-175.275-130.773-295.893-130.773-235.648 0-426.667 191.018-426.667 426.668 0 235.648 191.019 426.667 426.667 426.667 235.605 0 405.333-191.019 405.333-426.667v-42.667h-362.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-glass"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1894,
+            "id": 668,
+            "prevSize": 24,
+            "code": 59500,
+            "name": "google-glass"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 620
+    }, {
+        "icon": {
+            "paths": [
+                "M768 42.667c117.82 0 213.333 95.513 213.333 213.333 0 105.8-213.333 341.333-202.667 469.333 0 5.892-4.774 10.667-10.667 10.667s-10.667-4.774-10.667-10.667c10.667-128-202.667-363.534-202.667-469.333 0-117.821 95.514-213.333 213.333-213.333zM768 170.667c-47.13 0-85.333 38.205-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333zM170.667 128h369.971c-24.422 40.194-38.485 87.378-38.485 137.846 0 41.983 26.957 100.359 63.275 165.582l-478.897 478.895-1.197-14.323v-682.667c0-47.128 38.205-85.333 85.333-85.333zM705.216 677.329l-102.336-102.336 29.257-29.257c26.027 44.066 51.857 88.73 73.079 131.593zM828.198 981.333h-631.659l315.831-315.831 315.827 315.831zM938.667 486.912v409.088l-1.092 13.687-143.74-143.735c26.752-84.638 89.984-185.762 144.832-279.040zM285.326 533.086c-44.908 0-73.587-20.13-73.587-49.958 0-29.73 26.505-39.236 35.767-42.624 17.607-5.901 40.29-6.686 44.138-6.686l9.559 0.354c31.96 22.844 45.556 32.93 45.556 54.357 0 23.898-24.614 44.557-61.434 44.557zM236.070 290.237c0-29.839 17.728-43.396 36.294-43.396 35.686 0 54.129 46.595 54.129 74.748 0 34.714-27.908 41.371-38.967 41.371-33.337 0-51.456-41.303-51.456-72.723zM339.334 413.579l-14.609-11.464c-4.888-4.037-11.045-9.344-11.045-19.146 0-9.897 7.372-17.431 13.124-21.887 17.634-13.691 34.66-28.326 34.66-58.572 0-27.936-17.148-43.976-27.464-52.969h23.561l16.878-16.878h-84.172c-58.869 0-89.086 36.672-89.086 77.313 0 31.433 24.155 65.134 67.24 65.134h10.829l-4.726 17.553c0 13.718 5.698 19.389 12.449 27.004-18.903 1.228-54.198 5.78-80.202 21.684-24.803 14.771-30.812 35.482-30.812 50.551 0 31.095 27.855 60.762 88.709 60.762 72.236 0 108.422-39.927 108.422-79.369 0-29.094-15.312-44.164-33.756-59.718z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-maps"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1895,
+            "id": 667,
+            "prevSize": 24,
+            "code": 59501,
+            "name": "google-maps"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 621
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 127.918h-256v213.333l170.667-42.667-42.667 170.668h213.333v-256.001c0-47.147-38.229-85.333-85.333-85.333zM725.308 725.252l-170.667-42.667v213.333h256c47.104 0 85.333-38.251 85.333-85.333v-256h-213.333zM341.307 554.586h-213.333v256c0 47.083 38.186 85.333 85.333 85.333h256v-213.333l-170.667 42.667zM127.974 213.251v256.001h213.333l-42.667-170.668 170.667 42.667v-213.333h-256c-47.147 0-85.333 38.186-85.333 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-pages"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1896,
+            "id": 666,
+            "prevSize": 24,
+            "code": 59502,
+            "name": "google-pages"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 622
+    }, {
+        "icon": {
+            "paths": [
+                "M128 874.667v-725.333c0-25.311 14.693-47.19 36.015-57.574l420.113 420.116-420.282 420.279c-21.231-10.415-35.846-32.243-35.846-57.489zM717.41 645.154l-459.366 265.216 362.291-362.291 97.075 97.075zM860.198 461.15c15.279 11.695 25.135 30.123 25.135 50.85 0 20.416-9.557 38.596-24.444 50.313l-97.574 56.337-106.778-106.773 106.705-106.706 96.956 55.98zM258.313 113.65l459.025 265.018-97.003 97.002-362.022-362.019z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-play"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1897,
+            "id": 665,
+            "prevSize": 24,
+            "code": 59503,
+            "name": "google-play"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 623
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 511.919h-85.333v85.333h-42.667v-85.333h-85.333v-42.667h85.333v-85.335h42.667v85.335h85.333zM386.789 819.119c-119.294 0-173.482-66.645-173.482-128.597 0-19.285 6.016-67.814 63.104-101.803 32.81-20.096 78.891-33.323 134.057-38.656-8.062-10.667-14.377-23.356-14.377-42.27 0-6.626 0.768-13.197 2.304-19.853h-16.385c-84.266 0-134.57-66.007-134.57-129.836 0-73.856 54.911-153.387 175.489-153.387h179.797l-47.275 47.274h-30.549c17.408 18.091 38.272 47.744 38.272 92.118 0 59.904-31.488 89.307-66.56 116.524-6.741 5.248-18.091 16.256-18.091 30.933 0 12.629 10.368 21.12 16.811 26.325 5.717 4.693 12.587 9.472 20.011 14.635 34.645 24.192 81.963 57.344 81.963 122.807 0 75.541-54.997 163.785-210.519 163.785zM853.308 85.251h-682.667c-47.104 0-84.906 38.186-84.906 85.333l-0.427 682.668c0 47.083 38.229 85.333 85.333 85.333h682.667c47.104 0 85.333-38.251 85.333-85.333v-682.668c0-47.147-38.229-85.333-85.333-85.333zM450.79 589.103c-4.352-0.384-7.765-0.384-13.397-0.384h-0.939c-11.095 0-49.194 2.133-77.569 11.648-27.476 10.069-60.245 30.805-60.245 72.576 0 46.037 44.245 94.976 126.294 94.976 65.066 0 103.936-42.795 103.936-84.181 0-32.896-19.541-52.693-78.080-94.635zM477.841 378.542c0-43.477-26.837-128.768-88.875-128.768-27.18 0-56.192 18.688-56.192 71.168 0 50.432 26.667 125.1 83.969 125.1 2.474 0 61.099-0.768 61.099-67.5z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-plus-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1898,
+            "id": 664,
+            "prevSize": 24,
+            "code": 59504,
+            "name": "google-plus-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 624
+    }, {
+        "icon": {
+            "paths": [
+                "M396.765 951.377c-141.91 0-232.534-63.62-232.534-157.871 0-93.948 83.755-123.989 113.025-134.694 55.637-18.65 127.316-21.12 139.476-21.12 13.057 0 19.713 0 30.209 1.109 100.992 72.188 143.957 104.060 143.957 171.776 0 75.516-77.781 140.8-194.134 140.8zM241.117 183.971c0-94.292 56.022-137.13 114.689-137.13 112.768 0 171.051 147.242 171.051 236.203 0 109.695-88.192 130.732-123.136 130.732-105.344 0-162.603-130.519-162.603-229.805zM567.433 573.73l-46.165-36.224c-15.445-12.757-34.901-29.525-34.901-60.497 0-31.279 23.296-55.085 41.472-69.165 55.723-43.263 109.525-89.513 109.525-185.088 0-88.276-54.187-138.964-86.784-167.38h74.453l53.333-53.333h-265.984c-186.027 0-281.514 115.883-281.514 244.31 0 99.328 76.331 205.821 212.479 205.821h34.219c-5.333 14.891-14.933 35.844-14.933 55.467 0 43.349 18.006 61.274 39.34 85.333-59.734 3.883-171.264 18.266-253.44 68.523-78.379 46.677-97.366 112.128-97.366 159.748 0 98.257 88.021 192 280.32 192 228.267 0 342.613-126.17 342.613-250.795 0-91.951-48.384-139.563-106.667-188.719zM895.966 426.575v-128h-85.333v128h-128v85.335h128v128h85.333v-128h128v-85.335h-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1899,
+            "id": 663,
+            "prevSize": 24,
+            "code": 59505,
+            "name": "google-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 625
+    }, {
+        "icon": {
+            "paths": [
+                "M524.766 951.377c-141.91 0-232.534-63.62-232.534-157.871 0-93.948 83.755-123.989 113.025-134.694 55.637-18.65 127.317-21.12 139.477-21.12 13.056 0 19.712 0 30.208 1.109 100.992 72.188 143.957 104.060 143.957 171.776 0 75.516-77.781 140.8-194.133 140.8zM369.117 183.971c0-94.292 56.022-137.13 114.689-137.13 112.768 0 171.051 147.242 171.051 236.203 0 109.695-88.192 130.732-123.136 130.732-105.344 0-162.604-130.519-162.604-229.805zM695.433 573.73l-46.165-36.224c-15.445-12.757-34.901-29.525-34.901-60.497 0-31.279 23.296-55.085 41.472-69.165 55.723-43.263 109.525-89.513 109.525-185.088 0-88.276-54.187-138.964-86.784-167.38h74.453l53.333-53.333h-265.984c-186.028 0-281.515 115.883-281.515 244.31 0 99.328 76.331 205.821 212.48 205.821h34.219c-5.333 14.891-14.933 35.844-14.933 55.467 0 43.349 18.005 61.274 39.339 85.333-59.733 3.883-171.264 18.266-253.44 68.523-78.379 46.677-97.366 112.128-97.366 159.748 0 98.257 88.021 192 280.32 192 228.267 0 342.613-126.17 342.613-250.795 0-91.951-48.384-139.563-106.667-188.719z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "google"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1900,
+            "id": 662,
+            "prevSize": 24,
+            "code": 59506,
+            "name": "google"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 626
+    }, {
+        "icon": {
+            "paths": [
+                "M-0 118.123l54.49-54.121 905.51 905.509-54.123 54.49-85.333-85.333h-648.877c-47.128 0-85.333-38.204-85.333-85.333l-0.952-649.83-85.382-85.381zM426.667 170.667v156.899l-85.333-85.333v-71.565h-71.565l-85.333-85.333 668.898-0c47.13 0 85.333 38.205 85.333 85.333l0.981 669.88-85.457-85.457-0.107-72.422h-72.316l-85.333-85.333h157.521l-0.247-170.667h-171.042v156.898l-85.333-85.333v-71.565h-71.565l-85.333-85.333h156.898v-170.667l-170.667 0zM682.667 170.666v170.667h170.918l-0.252-170.667h-170.667zM682.667 853.333h52.544l-52.544-52.544v52.544zM170.917 341.334h52.294l-52.371-52.371 0.077 52.371zM426.667 597.333h52.544l-52.544-52.544v52.544zM597.333 853.333v-137.877l-32.789-32.789h-137.877v170.667h170.667zM341.334 853.333l-0-170.667h-169.917l0.25 170.667h169.667zM341.333 597.333v-137.877l-32.789-32.789h-137.503l0.25 170.667h170.042z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "grid-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1901,
+            "id": 661,
+            "prevSize": 24,
+            "code": 59507,
+            "name": "grid-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 627
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 170.667v170.667h170.667v-170.667l-170.667 0zM682.667 170.666v170.667h170.918l-0.252-170.667h-170.667zM682.667 426.667v170.667h171.294l-0.252-170.667h-171.042zM682.667 682.667v170.667h171.665l-0.247-170.667h-171.418zM597.333 853.333v-170.667h-170.667v170.667h170.667zM341.334 853.333v-170.667h-169.917l0.25 170.667h169.667zM341.333 597.333v-170.667h-170.292l0.25 170.667h170.042zM341.333 341.333v-170.667h-170.667l0.25 170.667h170.417zM426.667 597.333h170.667v-170.667h-170.667v170.667zM170.667 85.334l682.667-0.001c47.13 0 85.333 38.205 85.333 85.333l1.003 682.667c0 47.13-38.208 85.333-85.333 85.333h-682.669c-47.128 0-85.334-38.204-85.334-85.333l-1-682.667c0-47.128 38.205-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "grid"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1902,
+            "id": 660,
+            "prevSize": 24,
+            "code": 59508,
+            "name": "grid"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 628
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 341.333v170.667h213.333v-170.667h-213.333zM42.667 42.667h170.667v42.667h597.333v-42.667h170.667v170.667h-42.667v597.333h42.667v170.667h-170.667v-42.667h-597.333v42.667h-170.667v-170.667h42.667v-597.333h-42.667v-170.667zM213.333 810.667v42.667h597.333v-42.667h42.667v-597.333h-42.667v-42.667h-597.333v42.667h-42.667v597.333h42.667zM256 256h384v170.666h128v341.333h-426.667v-170.667h-85.333v-341.333zM640 597.333h-213.333v85.333h256v-170.667h-42.667v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "group"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1903,
+            "id": 659,
+            "prevSize": 24,
+            "code": 59509,
+            "name": "group"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 629
+    }, {
+        "icon": {
+            "paths": [
+                "M896.026 384c23.565 0 42.667 19.103 42.667 42.667 0 23.565-19.102 42.667-42.667 42.667h-190.857l-5.521 51.614-93.623 210.62c-9.434 21.414-31.462 36.433-57.161 36.433h-186.197c-34.259 0-63.976-31.031-63.976-64v-277.335c0-16.483 6.951-31.415 18.184-42.224l179.232-209.479 32.892 31.505c8.439 8.092 13.653 19.292 13.653 31.655l-1.024 9.437-72.269 136.439 426.667 0.001zM85.333 768l0.024-341.335h128v341.335h-128.024z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "hand-pointing-right"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1904,
+            "id": 658,
+            "prevSize": 24,
+            "code": 59510,
+            "name": "hand-pointing-right"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 630
+    }, {
+        "icon": {
+            "paths": [
+                "M885.555 697.015l-0.021 0.038c31.774 18.47 53.133 52.881 53.133 92.279 0 58.91-47.757 106.667-106.667 106.667h-640c-58.91 0-106.667-47.757-106.667-106.667 0-39.398 21.361-73.809 53.132-92.279l-0.021-0.038 330.889-191.036c0 0 0-36.646 42.667-79.313 42.667 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333c-47.13 0-85.333 38.205-85.333 85.333h-85.333c0-94.257 76.41-170.667 170.667-170.667 94.255 0 170.667 76.41 170.667 170.667 0 79.246-54.012 145.877-127.228 165.090l330.116 190.592zM192 810.667h640c7.369 0 14.532-3.827 18.479-10.667 5.892-10.202 2.398-23.249-7.812-29.141l-330.667-190.95-330.666 190.95c-10.209 5.892-13.705 18.94-7.814 29.141 3.949 6.839 11.113 10.667 18.48 10.667z",
+                "M469.333 505.98l42.667-79.313c47.13 0 85.333-38.205 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "hanger"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1905,
+            "id": 657,
+            "prevSize": 24,
+            "code": 59511,
+            "name": "hanger"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 631
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 469.252l-42.667 85.333h-64l42.667-85.333h-64v-128.001h128zM469.308 469.252l-42.666 85.333h-64l42.667-85.333h-64v-128.001h128zM490.641 85.251c-200.277 0-362.666 162.389-362.666 362.668 0 200.277 162.389 362.667 362.666 362.667h21.333v149.333c207.317-100.011 341.333-320 341.333-512 0-200.279-162.389-362.668-362.667-362.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "hangouts"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1906,
+            "id": 656,
+            "prevSize": 24,
+            "code": 59512,
+            "name": "hangouts"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 632
+    }, {
+        "icon": {
+            "paths": [
+                "M256 85.333h512c47.13 0 85.333 38.205 85.333 85.333v682.667c0 47.13-38.204 85.333-85.333 85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333zM512 170.667c-141.385 0-256 114.615-256 256s114.615 256 260.361 255.966l-37.551-95.223c-11.78-20.407-4.787-46.502 15.62-58.287l36.949-21.333c20.407-11.78 46.502-4.787 58.283 15.62l82.108 103.296c58.658-46.912 96.23-119.087 96.23-200.038 0-141.385-114.615-256-256-256zM512 384c23.565 0 42.667 19.103 42.667 42.666 0 23.565-19.102 42.667-42.667 42.667s-42.667-19.102-42.667-42.667c0-23.564 19.102-42.666 42.667-42.666zM298.667 768c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667zM515.763 566.076l106.133 269.163 110.852-64-180.036-226.496-36.949 21.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "harddisk"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1907,
+            "id": 655,
+            "prevSize": 24,
+            "code": 59513,
+            "name": "harddisk"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 633
+    }, {
+        "icon": {
+            "paths": [
+                "M307.174 767.919c-28.288 0-51.2-22.912-51.2-51.2v-204.8c0-141.143 114.859-256.001 256-256.001s256 114.858 256 256.001v204.8c0 28.288-22.912 51.2-51.2 51.2h-119.467v-170.667h85.333v-85.333c0-94.124-76.544-170.668-170.667-170.668s-170.667 76.544-170.667 170.668v85.333h85.333v170.667zM810.641 127.918h-597.333c-47.147 0-85.333 38.229-85.333 85.333v597.335c0 47.104 38.187 85.333 85.333 85.333h597.333c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "headphones-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1908,
+            "id": 654,
+            "prevSize": 24,
+            "code": 59514,
+            "name": "headphones-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 634
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 42.584c212.096 0 384 171.904 384 384v298.668c0 70.699-57.301 128-128 128h-128v-341.333h170.667v-85.335c0-164.95-133.717-298.667-298.667-298.667s-298.667 133.717-298.667 298.667v85.335h170.667v341.333h-128c-70.699 0-128-57.301-128-128v-298.668c0-212.096 171.904-384 384-384zM640 1024v-85.333h85.333v85.333h-85.333zM469.333 1024v-85.333h85.333v85.333h-85.333zM298.667 1024v-85.333h85.333v85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "headphones-dots"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1909,
+            "id": 653,
+            "prevSize": 24,
+            "code": 59515,
+            "name": "headphones-dots"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 635
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 42.584c-212.096 0-384 171.904-384 384v298.668c0 70.699 57.301 128 128 128h128v-341.333h-170.667v-85.335c0-164.949 133.717-298.667 298.667-298.667s298.667 133.717 298.667 298.667v85.335h-170.667v341.333h128c70.699 0 128-57.301 128-128v-298.668c0-212.096-171.904-384-384-384z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "headphones"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1910,
+            "id": 652,
+            "prevSize": 24,
+            "code": 59516,
+            "name": "headphones"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 636
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 768h298.667v-506.623c-73.61 18.946-128 85.766-128 165.29v42.667h85.333v256h-85.333c-47.128 0-85.333-38.204-85.333-85.333v-213.333c0-141.385 114.615-256 256-256h42.667c141.385 0 256 114.615 256 256v85.333h42.667v-128h85.333v128c0 47.13-38.204 85.333-85.333 85.333h-42.667v42.667c0 47.13-38.204 85.333-85.333 85.333h-85.333v-256h85.333v-42.667c0-79.524-54.391-146.344-128-165.29v506.624h426.667v85.333h-853.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "headset-dock"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1911,
+            "id": 651,
+            "prevSize": 24,
+            "code": 59517,
+            "name": "headset-dock"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 637
+    }, {
+        "icon": {
+            "paths": [
+                "M960 203.455l-88.341 88.343c15.718 41.937 24.316 87.357 24.316 134.786v426.668c0 70.699-57.301 128-128 128h-256v-85.333h298.667v-42.667h-170.667v-329.771l-256 256v73.771h-73.769l-106.749 106.748-54.121-54.49 756.176-756.177 54.49 54.121zM511.974 42.584c107.998 0 205.577 44.573 275.345 116.328l-60.352 60.355c-54.323-56.319-130.569-91.349-214.993-91.349-164.95 0-298.667 133.717-298.667 298.667v85.335h170.667v50.338l-234.311 234.313c-13.697-20.382-21.689-44.915-21.689-71.317v-298.668c0-212.096 171.904-384 384-384zM810.641 511.919v-85.335c0-22.81-2.556-45.024-7.403-66.369l-151.701 151.703h159.104z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "headset-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1912,
+            "id": 650,
+            "prevSize": 24,
+            "code": 59518,
+            "name": "headset-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 638
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 42.584c-212.096 0-384 171.904-384 384v298.668c0 70.699 57.301 128 128 128h128v-341.333h-170.667v-85.335c0-164.949 133.717-298.667 298.667-298.667s298.667 133.717 298.667 298.667v85.335h-170.667v341.333h170.667v42.667h-298.667v85.333h256c70.699 0 128-57.301 128-128v-426.668c0-212.096-171.904-384-384-384z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "headset"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1913,
+            "id": 649,
+            "prevSize": 24,
+            "code": 59519,
+            "name": "headset"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 639
+    }, {
+        "icon": {
+            "paths": [
+                "M512 725.333l-30.912-28.096c-109.846-99.669-182.421-165.525-182.421-246.080 0-65.792 51.541-117.335 117.333-117.335 37.141 0 72.725 17.239 96 44.502 23.275-27.263 58.859-44.502 96-44.502 65.792 0 117.333 51.543 117.333 117.335 0 80.555-72.576 146.411-182.421 246.080l-30.912 28.096zM213.333 128.001h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM213.333 213.333v597.333h597.333v-597.333h-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "heart-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1914,
+            "id": 648,
+            "prevSize": 24,
+            "code": 59520,
+            "name": "heart-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 640
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128.001h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM512 725.333l30.912-28.096c109.845-99.669 182.421-165.525 182.421-246.080 0-65.792-51.541-117.334-117.333-117.334-37.141 0-72.725 17.238-96 44.501-23.275-27.263-58.859-44.501-96-44.501-65.792 0-117.333 51.543-117.333 117.334 0 80.555 72.576 146.411 182.421 246.080l30.912 28.096z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "heart-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1915,
+            "id": 647,
+            "prevSize": 24,
+            "code": 59521,
+            "name": "heart-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 641
+    }, {
+        "icon": {
+            "paths": [
+                "M511.97 910.933l-61.824-56.188c-219.689-199.343-364.841-331.055-364.841-492.165 0-131.584 103.081-234.667 234.667-234.667 28.418 0 56.381 5.046 82.683 14.331l152.012 256.693-170.667 213.333 127.97 298.662zM703.97 127.914c131.584 0 234.667 103.083 234.667 234.667 0 161.11-145.152 292.822-364.843 492.165l-61.786 56.158-42.675-298.633 192-213.332-112.947-216.796c43.584-33.988 98.671-54.228 155.584-54.228z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "heart-broken"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1916,
+            "id": 646,
+            "prevSize": 24,
+            "code": 59522,
+            "name": "heart-broken"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 642
+    }, {
+        "icon": {
+            "paths": [
+                "M516.454 791.561l-4.48 4.053-4.48-4.053c-202.838-184.107-336.854-305.702-336.854-428.969 0-85.12 64.213-149.333 149.333-149.333 65.621 0 129.664 42.325 152.192 100.737h79.616c22.528-58.412 86.571-100.737 152.192-100.737 85.12 0 149.333 64.213 149.333 149.333 0 123.267-134.016 244.863-336.853 428.969zM703.974 127.924c-74.283 0-145.451 34.432-192 89.003-46.549-54.57-117.718-89.003-192-89.003-131.585 0-234.667 103.084-234.667 234.667 0 161.070 145.152 292.777 364.843 492.163l61.824 56.145 61.824-56.145c219.691-199.386 364.843-331.093 364.843-492.163 0-131.583-103.083-234.667-234.667-234.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "heart-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1917,
+            "id": 645,
+            "prevSize": 24,
+            "code": 59523,
+            "name": "heart-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 643
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 910.921l-61.824-56.192c-219.691-199.339-364.843-331.055-364.843-492.163 0-131.583 103.082-234.667 234.667-234.667 74.283 0 145.451 34.476 192 89.003 46.549-54.526 117.717-89.003 192-89.003 131.584 0 234.667 103.084 234.667 234.667 0 161.108-145.152 292.825-364.843 492.163l-61.824 56.192z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "heart"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1918,
+            "id": 644,
+            "prevSize": 24,
+            "code": 59524,
+            "name": "heart"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 644
+    }, {
+        "icon": {
+            "paths": [
+                "M642.82 480.077l-38.187 39.164c-30.891 30.891-50.005 56.661-50.005 120.661h-85.333v-21.333c0-47.104 19.115-89.771 50.005-120.661l53.035-53.675c15.403-15.445 24.96-36.777 24.96-60.329 0-47.104-38.187-85.333-85.333-85.333-47.104 0-85.334 38.229-85.334 85.333h-85.333c0-94.25 76.417-170.667 170.668-170.667 94.293 0 170.667 76.417 170.667 170.667 0 37.547-15.189 71.55-39.808 96.173zM554.628 810.569h-85.333v-85.333h85.333zM511.962 85.237c-235.648 0-426.668 191.018-426.668 426.665 0 235.691 191.020 426.667 426.668 426.667 235.691 0 426.667-190.976 426.667-426.667 0-235.647-190.976-426.665-426.667-426.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "help-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1919,
+            "id": 643,
+            "prevSize": 24,
+            "code": 59525,
+            "name": "help-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 645
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 810.667h128v128h-128v-128zM512 85.334c141.385 0 256 114.615 256 256-14.221 56.889-28.446 113.779-64 156.446s-92.446 71.108-120.887 106.667c-28.446 35.554-28.446 78.221-28.446 120.887h-128c0-71.113 0-131.554 28.446-174.221 28.442-42.667 85.333-67.558 120.887-96 35.554-28.446 49.779-71.113 64-113.779 0-70.692-57.306-128-128-128s-128 57.307-128 128h-128c0-141.385 114.615-256 256-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "help"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1920,
+            "id": 642,
+            "prevSize": 24,
+            "code": 59526,
+            "name": "help"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 646
+    }, {
+        "icon": {
+            "paths": [
+                "M896 704c0 16.265-9.101 30.4-22.485 37.602l-337.348 189.568c-6.869 4.727-15.194 7.497-24.166 7.497s-17.297-2.769-24.166-7.497l-337.341-189.564c-13.389-7.198-22.492-21.342-22.492-37.606v-384c0-16.266 9.103-30.406 22.492-37.605l337.341-189.563c6.869-4.73 15.194-7.498 24.166-7.498s17.293 2.768 24.166 7.498l337.348 189.567c13.385 7.2 22.485 21.338 22.485 37.601v384zM512.038 177.106l-298.705 167.859v334.070l298.705 167.859 298.628-167.859v-334.073l-298.628-167.856z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "hexagon-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1921,
+            "id": 641,
+            "prevSize": 24,
+            "code": 59527,
+            "name": "hexagon-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 647
+    }, {
+        "icon": {
+            "paths": [
+                "M896 704c0 16.265-9.101 30.4-22.485 37.602l-337.348 189.568c-6.869 4.727-15.194 7.497-24.166 7.497s-17.297-2.769-24.166-7.497l-337.341-189.564c-13.389-7.198-22.492-21.342-22.492-37.606v-384c0-16.266 9.103-30.406 22.492-37.605l337.341-189.563c6.869-4.73 15.194-7.498 24.166-7.498s17.293 2.768 24.166 7.498l337.348 189.567c13.385 7.2 22.485 21.338 22.485 37.601v384z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "hexagon"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1922,
+            "id": 640,
+            "prevSize": 24,
+            "code": 59528,
+            "name": "hexagon"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 648
+    }, {
+        "icon": {
+            "paths": [
+                "M469.308 298.583v218.199l201.173 119.125 32.896-54.831-170.069-101.163v-181.331zM533.094 85.25c-150.444 0-281.131 82.005-350.891 203.604l-96.896-96.937v277.331h277.333l-117.419-117.417c51.584-107.221 161.068-181.247 288.086-181.247 176.811 0 320 143.273 320 319.998 0 176.73-143.189 320-320 320-139.308 0-257.451-89.126-301.398-213.333h-89.302c46.806 172.032 203.478 298.667 390.486 298.667 224 0 405.547-181.457 405.547-405.333 0-223.87-181.547-405.331-405.547-405.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "history"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1923,
+            "id": 639,
+            "prevSize": 24,
+            "code": 59529,
+            "name": "history"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 649
+    }, {
+        "icon": {
+            "paths": [
+                "M512 341.333c0 0 426.667 0 426.667 128 0 0 3.644 143.437-10.667 138.667-32-138.667-416-138.667-416-138.667s-384 0-416 138.667c-14.311 4.77-10.667-138.667-10.668-138.667 0-128 426.667-128 426.667-128zM512 512c341.333 0 373.333 96 373.333 96-42.667 128-74.667 160-245.333 160-128 0-85.333-64-128-64s0 64-128 64c-170.666 0-202.667-32-245.333-160 0 0 32-96 373.333-96z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "hololens"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1924,
+            "id": 638,
+            "prevSize": 24,
+            "code": 59530,
+            "name": "hololens"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 650
+    }, {
+        "icon": {
+            "paths": [
+                "M256 896l-0-554.666c0-47.128 38.205-85.334 85.334-85.334l341.333-128v128.001c47.13 0 85.333 38.205 85.333 85.333v554.666h-256v-213.333h-170.667v213.333h-85.333zM597.333 810.667h85.333v-128h-85.333v128zM341.333 554.667h85.333l-0-170.666-85.333-0v170.666zM512 554.667h170.667v-170.666l-170.667 0v170.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "home-modern"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1925,
+            "id": 637,
+            "prevSize": 24,
+            "code": 59531,
+            "name": "home-modern"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 651
+    }, {
+        "icon": {
+            "paths": [
+                "M341.297 853.269l-127.99-0.021v-341.333h-128l426.667-383.998 426.667 383.998h-128v341.333l-298.679 0.021v-256h-170.665v256zM597.333 597.333v128h128v-128h-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "home-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1926,
+            "id": 636,
+            "prevSize": 24,
+            "code": 59532,
+            "name": "home-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 652
+    }, {
+        "icon": {
+            "paths": [
+                "M426.641 853.248v-256h170.667v256h213.333v-341.333h128l-426.667-383.998-426.667 383.998h128v341.333h213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "home"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1927,
+            "id": 635,
+            "prevSize": 24,
+            "code": 59533,
+            "name": "home"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 653
+    }, {
+        "icon": {
+            "paths": [
+                "M896 512c0 0-362.667-85.333-362.667-426.667 0 0 362.667 0 362.667 426.667zM128 512c0-426.666 362.667-426.667 362.667-426.667 0 341.333-362.667 426.667-362.667 426.667zM512 277.334c0 0 42.453 91.986 127.364 170.005-9.702 156.885-127.364 235.328-127.364 235.328s-117.664-78.443-127.366-235.328c84.912-78.019 127.366-170.005 127.366-170.005zM885.333 565.333c0 0-32 160-117.333 245.333 0 0-105.212-70.14-156.655-178.628 30.763-52.689 50.112-115.059 60.774-157.129 58.56 44.949 127.881 79.757 213.214 90.423zM661.333 778.667c-42.667 85.333-149.333 149.333-149.333 149.333s-106.667-64-149.333-149.333c0 0 46.661-38.882 79.053-104.73 19.866 23.735 43.157 42.355 70.281 51.396 27.123-9.041 50.415-27.661 70.281-51.396 32.393 65.847 79.053 104.73 79.053 104.73zM138.667 565.333c85.333-10.667 154.652-45.474 213.215-90.423 10.659 42.069 30.009 104.439 60.774 157.129-51.445 108.489-156.656 178.628-156.656 178.628-85.333-85.333-117.333-245.333-117.333-245.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "hops"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1928,
+            "id": 634,
+            "prevSize": 24,
+            "code": 59534,
+            "name": "hops"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 654
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 938.667v-640c0-23.564 19.103-42.667 42.667-42.667h170.667v-170.667h426.667v170.667h170.667c23.565 0 42.667 19.103 42.667 42.667v640h-341.333v-213.333h-170.667v213.333h-341.333zM384 170.667v256h85.334v-85.333h85.333v85.333h85.333v-256h-85.333v85.333h-85.333v-85.333h-85.334zM170.667 853.333h170.666v-128h-170.666v128zM170.667 640h170.667v-128h-170.667v128zM682.667 853.333h170.667v-128h-170.667v128zM682.667 640h170.667v-128h-170.667v128zM426.667 640h170.667v-128h-170.667v128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "hospital-building"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1929,
+            "id": 633,
+            "prevSize": 24,
+            "code": 59535,
+            "name": "hospital-building"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 655
+    }, {
+        "icon": {
+            "paths": [
+                "M511.97 85.254c164.907 0 298.667 133.715 298.667 298.667 0 223.999-298.667 554.665-298.667 554.665s-298.666-330.667-298.666-554.665c0-164.951 133.76-298.667 298.666-298.667zM384 256v256h85.333v-85.333h85.333v85.333h85.333v-256h-85.333v85.333h-85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "hospital-marker"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1930,
+            "id": 632,
+            "prevSize": 24,
+            "code": 59536,
+            "name": "hospital-marker"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 656
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 597.252h-170.667v170.667h-170.667v-170.667h-170.667v-170.668h170.667v-170.667h170.667v170.667h170.667zM810.641 127.918h-597.334c-47.147 0-84.906 38.187-84.906 85.333l-0.427 597.335c0 47.147 38.186 85.333 85.333 85.333h597.334c47.104 0 85.333-38.187 85.333-85.333v-597.335c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "hospital"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1931,
+            "id": 631,
+            "prevSize": 24,
+            "code": 59537,
+            "name": "hospital"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 657
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 298.584h-341.333v298.668h-341.334v-384.001h-85.333v640.001h85.333v-128h768v128h85.333v-384c0-94.252-76.416-170.668-170.667-170.668zM298.641 554.586c70.699 0 128-57.301 128-128.001 0-70.699-57.301-128-128-128s-128 57.301-128 128c0 70.7 57.301 128.001 128 128.001z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "hotel"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1932,
+            "id": 630,
+            "prevSize": 24,
+            "code": 59538,
+            "name": "hotel"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 658
+    }, {
+        "icon": {
+            "paths": [
+                "M512 170.225l-195.825 115.2v226.566l195.825-115.191v-226.575zM512 396.8v456.977l195.823-115.2v-456.977l-195.823 115.2zM512 627.2l-195.825-115.191v230.391l195.825-115.2zM212.45 128h599.1c46.080 0 84.45 38.37 84.45 84.45v599.1c0 46.080-38.37 84.45-84.45 84.45h-599.1c-46.080 0-84.45-38.37-84.45-84.45v-599.1c0-46.080 38.37-84.45 84.45-84.45z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "houzz-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1933,
+            "id": 629,
+            "prevSize": 24,
+            "code": 59539,
+            "name": "houzz-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 659
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c70.69 0 128 57.308 128 128s-57.306 128-128 128c-70.694 0-128-57.307-128-128s57.306-128 128-128zM469.333 938.667h-128v-256h-85.333v-298.667h512v298.667h-85.333v256h-128v-170.667h-85.333v170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "human-child"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1934,
+            "id": 628,
+            "prevSize": 24,
+            "code": 59540,
+            "name": "human-child"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 660
+    }, {
+        "icon": {
+            "paths": [
+                "M320 85.333c47.128 0 85.333 38.205 85.333 85.333s-38.205 85.333-85.333 85.333c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333zM256 298.667h128c47.13 0 85.333 38.205 85.333 85.333v234.666h-64l0 320h-170.667l-0-320h-64v-234.666c0-47.128 38.205-85.333 85.333-85.333zM704 85.334c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.205-85.333-85.333s38.204-85.333 85.333-85.333zM640 938.667v-256h-128l110.413-323.754c10.714-34.885 43.191-60.246 81.587-60.246s70.869 25.361 81.587 60.245l110.413 323.755h-128v256h-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "human-male-female"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1935,
+            "id": 627,
+            "prevSize": 24,
+            "code": 59541,
+            "name": "human-male-female"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 661
+    }, {
+        "icon": {
+            "paths": [
+                "M895.974 383.922h-256v554.668h-85.333v-256h-85.333v256h-85.334v-554.668h-256v-85.333h768zM511.974 85.255c47.104 0 85.333 38.185 85.333 85.333 0 47.104-38.229 85.333-85.333 85.333-47.147 0-85.334-38.229-85.334-85.333 0-47.148 38.187-85.333 85.334-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "human"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1936,
+            "id": 626,
+            "prevSize": 24,
+            "code": 59542,
+            "name": "human"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 662
+    }, {
+        "icon": {
+            "paths": [
+                "M256 810.667l128-164.693 91.307 110.080 128-164.693 164.693 219.307h-512zM256 170.667h213.333v341.333l-106.667-64-106.667 64zM768 85.333h-512c-46.933 0-85.333 38.4-85.333 85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h512c46.933 0 85.333-38.4 85.333-85.333v-682.667c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-album"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1937,
+            "id": 625,
+            "prevSize": 24,
+            "code": 59543,
+            "name": "image-album"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 663
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 981.252l-170.667-170.667h341.334l-170.667 170.667zM853.333 128c47.104 0 85.333 38.229 85.333 85.333v426.667c0 47.104-38.229 85.333-85.333 85.333h-682.667c-47.147 0-85.333-38.229-85.333-85.333l0.426-426.667c0-47.104 37.76-85.333 84.907-85.333h682.667zM213.333 597.333h597.333l-192-256-149.333 192.256-106.667-128.256-149.333 192z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-area-close"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1938,
+            "id": 624,
+            "prevSize": 24,
+            "code": 59544,
+            "name": "image-area-close"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 664
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 213.251c47.104 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.229 85.333-85.333 85.333h-682.666c-47.147 0-85.333-38.229-85.333-85.333l0.426-426.668c0-47.104 37.76-85.333 84.907-85.333h682.666zM213.333 682.667h597.333l-192-256-149.333 192.256-106.667-128.256-149.333 192z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-area"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1939,
+            "id": 623,
+            "prevSize": 24,
+            "code": 59545,
+            "name": "image-area"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 665
+    }, {
+        "icon": {
+            "paths": [
+                "M810.62 128c47.151 0 85.38 38.208 85.38 85.333v256h-85.333v85.333h-85.333v85.333h-85.333v85.333h-85.333v85.333h-85.333v85.333h-256.382c-47.146 0-84.951-38.208-84.951-85.333v-597.333c0-47.125 37.806-85.333 84.951-85.333h597.668zM896 640v170.667c0 47.108-38.204 85.308-85.333 85.333h-170.667v-85.333h85.333v-85.333h85.333v-85.333h85.333zM810.615 362.668c0-11.778-9.553-21.333-21.346-21.333h-554.971c-11.785 0-21.347 9.556-21.347 21.333v298.666c0 11.78 9.562 21.333 21.347 21.333h235.035v-42.667h85.333v-85.333h85.333v-85.333h85.333v-85.333h85.282v-21.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-broken"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1940,
+            "id": 622,
+            "prevSize": 24,
+            "code": 59546,
+            "name": "image-broken"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 666
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 810.667l-298.667-341.333v341.333h-298.667l298.667-341.333v-256h298.667zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-filter-black-white"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1941,
+            "id": 621,
+            "prevSize": 24,
+            "code": 59547,
+            "name": "image-filter-black-white"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 667
+    }, {
+        "icon": {
+            "paths": [
+                "M512 384c-70.827 0-128 57.173-128 128s57.173 128 128 128c70.827 0 128-57.173 128-128s-57.173-128-128-128zM810.667 810.667h-170.667v85.333h170.667c46.933 0 85.333-38.4 85.333-85.333v-170.667h-85.333zM810.667 128h-170.667v85.333h170.667v170.667h85.333v-170.667c0-46.933-38.4-85.333-85.333-85.333zM213.333 213.333h170.667v-85.333h-170.667c-46.933 0-85.333 38.4-85.333 85.333v170.667h85.333zM213.333 640h-85.333v170.667c0 46.933 38.4 85.333 85.333 85.333h170.667v-85.333h-170.667v-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-filter-center-focus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1942,
+            "id": 620,
+            "prevSize": 24,
+            "code": 59548,
+            "name": "image-filter-center-focus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 668
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 768h-554.667c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667c94.293 0 170.667 76.373 170.667 170.667h85.333c0-117.76-79.36-216.747-187.733-246.613 43.093-57.173 110.933-94.72 187.733-94.72 129.28 0 234.667 105.387 234.667 234.667v21.333h64c70.4 0 128 57.6 128 128s-57.6 128-128 128zM825.6 428.373c-29.013-147.2-158.293-257.707-313.6-257.707-123.307 0-229.973 69.973-283.307 172.373-128.427 13.653-228.693 122.027-228.693 254.293 0 141.227 114.773 256 256 256h554.667c117.76 0 213.333-95.573 213.333-213.333 0-112.64-87.467-203.947-198.4-211.627z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-filter-drama"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1943,
+            "id": 619,
+            "prevSize": 24,
+            "code": 59549,
+            "name": "image-filter-drama"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 669
+    }, {
+        "icon": {
+            "paths": [
+                "M768 341.333h-512v426.667h512zM853.333 853.333h-682.667v-597.333h192.853l150.187-149.333 148.48 149.333h191.147zM853.333 170.667h-170.667l-170.667-170.667-170.667 170.667h-170.667c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h682.667c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-filter-frames"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1944,
+            "id": 618,
+            "prevSize": 24,
+            "code": 59550,
+            "name": "image-filter-frames"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 670
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 256l-160 213.333 121.6 162.133-68.267 51.2c-72.107-96-192-256-192-256l-256 341.333h938.667l-384-512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-filter-hdr"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1945,
+            "id": 617,
+            "prevSize": 24,
+            "code": 59551,
+            "name": "image-filter-hdr"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 671
+    }, {
+        "icon": {
+            "paths": [
+                "M896 725.333h-597.333v-597.333h597.333zM896 42.667h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM128 213.333h-85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h682.667v-85.333h-682.667v-682.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-filter-none"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1946,
+            "id": 616,
+            "prevSize": 24,
+            "code": 59552,
+            "name": "image-filter-none"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 672
+    }, {
+        "icon": {
+            "paths": [
+                "M242.347 842.24c63.147 51.627 141.653 85.76 226.987 94.293v-86.187c-62.293-7.68-119.040-32.427-166.4-69.12zM554.667 850.347v86.187c85.76-8.533 163.84-42.667 226.987-94.293l-61.013-61.013c-46.933 36.693-103.68 61.44-165.973 69.12zM781.227 721.067l61.013 61.013c51.627-63.147 85.76-141.653 94.293-226.987h-86.187c-7.68 61.867-32.427 118.613-69.12 165.973zM640 512c0-70.827-57.173-128-128-128s-128 57.173-128 128c0 70.827 57.173 128 128 128s128-57.173 128-128zM173.653 554.667h-86.187c8.533 85.76 42.667 163.84 94.293 226.987l61.013-61.013c-36.693-46.933-61.44-103.68-69.12-165.973zM242.773 302.933l-61.013-60.587c-51.627 63.147-85.76 141.227-94.293 226.987h86.187c7.68-62.293 32.427-119.040 69.12-166.4zM850.347 469.333h86.187c-8.533-85.76-42.667-163.84-94.293-226.987l-61.013 60.587c36.693 47.36 61.44 104.107 69.12 166.4zM781.653 181.76c-63.147-51.627-141.227-85.76-226.987-94.293v86.187c62.293 7.68 119.040 32.427 166.4 69.12zM469.333 173.653v-86.187c-85.76 8.533-163.84 42.667-226.987 94.293l60.587 61.013c47.36-36.693 104.107-61.44 166.4-69.12z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-filter-tilt-shift"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1947,
+            "id": 615,
+            "prevSize": 24,
+            "code": 59553,
+            "name": "image-filter-tilt-shift"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 673
+    }, {
+        "icon": {
+            "paths": [
+                "M512 682.667c-94.293 0-170.667-76.373-170.667-170.667s76.373-170.667 170.667-170.667c94.293 0 170.667 76.373 170.667 170.667s-76.373 170.667-170.667 170.667zM797.867 529.067c-11.947-6.827-24.32-12.373-36.693-17.067 12.373-4.693 24.747-10.24 36.693-17.067 81.92-47.36 127.573-133.12 128-221.44-76.373-43.947-173.653-47.36-256 0-11.947 6.827-23.040 14.933-33.28 23.040 2.133-13.227 3.413-26.88 3.413-40.533 0-94.72-51.627-177.067-128-221.44-76.373 44.373-128 126.72-128 221.44 0 13.653 1.28 27.307 3.413 40.533-10.24-8.533-21.333-16.64-33.28-23.467-81.92-47.36-179.2-43.947-256 0 0 88.32 45.653 174.080 128 221.44 11.947 6.827 24.32 12.373 36.693 17.067-12.373 4.693-24.747 10.24-36.693 17.067-81.92 47.36-127.573 133.12-128 221.44 76.373 43.947 173.653 47.36 256 0 11.947-6.827 23.040-14.933 33.28-23.040-2.133 13.653-3.413 27.307-3.413 40.96 0 94.72 51.627 177.067 128 221.44 76.373-44.373 128-126.72 128-221.44 0-13.653-1.28-27.307-3.413-40.533 10.24 8.533 21.333 16.213 33.28 23.040 81.92 47.36 179.2 43.947 256 0-0.427-88.32-46.080-174.080-128-221.44z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-filter-vintage"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1948,
+            "id": 614,
+            "prevSize": 24,
+            "code": 59554,
+            "name": "image-filter-vintage"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 674
+    }, {
+        "icon": {
+            "paths": [
+                "M896 725.333h-597.333v-597.333h597.333zM896 42.667h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM128 213.333h-85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h682.667v-85.333h-682.667zM680.96 439.040l-117.333 151.040-83.627-100.693-117.333 150.613h469.333l-151.040-200.96z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image-filter"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1949,
+            "id": 613,
+            "prevSize": 24,
+            "code": 59555,
+            "name": "image-filter"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 675
+    }, {
+        "icon": {
+            "paths": [
+                "M810.62 128h-597.666c-47.151 0-84.953 38.208-84.953 85.333v597.333c0 47.125 37.802 85.333 84.953 85.333h597.666c47.151 0 85.38-38.208 85.38-85.333v-597.333c0-47.125-38.229-85.333-85.38-85.333zM810.62 661.333c0 11.78-9.557 21.333-21.346 21.333h-554.975c-11.788 0-21.345-9.553-21.345-21.333v-298.667c0-11.781 9.558-21.333 21.345-21.333h554.975c11.789 0 21.346 9.552 21.346 21.333v298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "image"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1950,
+            "id": 612,
+            "prevSize": 24,
+            "code": 59556,
+            "name": "image"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 676
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 512l-170.667-170.667v128h-341.333v85.333h341.333v128zM853.333 768v-511.999c0-47.36-38.4-85.333-85.333-85.333l-512-0c-46.933 0-85.333 37.973-85.333 85.333v128h85.333v-128l512 0v511.999h-512v-128h-85.333v128c0 46.933 38.4 85.333 85.333 85.333h512c46.933 0 85.333-37.973 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "import"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1951,
+            "id": 611,
+            "prevSize": 24,
+            "code": 59557,
+            "name": "import"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 677
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 426.667h-85.333v-128h-170.667v128h-85.333l170.667 170.667zM810.667 640h-170.667c0 70.827-57.173 128-128 128s-128-57.173-128-128h-171.093v-426.667h597.76zM810.667 128h-597.76c-46.933 0-84.48 38.4-84.48 85.333l-0.427 597.333c0 46.933 37.973 85.333 84.907 85.333h597.76c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "inbox"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1952,
+            "id": 610,
+            "prevSize": 24,
+            "code": 59558,
+            "name": "inbox"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 678
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 128h853.333v128h-853.333v-128zM384 341.334l554.667-0v128h-554.667v-127.999zM384 554.667h554.667v128h-554.667v-128zM85.333 768h853.333v128h-853.333v-128zM128 341.333l170.667 170.667-170.667 170.667h-42.667v-341.333h42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "indent"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1953,
+            "id": 609,
+            "prevSize": 24,
+            "code": 59559,
+            "name": "indent"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 679
+    }, {
+        "icon": {
+            "paths": [
+                "M469.308 383.917h85.333v-85.333h-85.333zM511.974 853.248c-188.204 0-341.334-153.126-341.334-341.333 0-188.201 153.13-341.331 341.334-341.331s341.333 153.13 341.333 341.331c0 188.207-153.131 341.333-341.333 341.333zM511.974 85.25c-235.649 0-426.667 191.018-426.667 426.665 0 235.652 191.018 426.667 426.667 426.667s426.667-191.014 426.667-426.667c0-235.646-191.019-426.665-426.667-426.665zM469.308 725.248h85.333v-256h-85.333v256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "information-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1954,
+            "id": 608,
+            "prevSize": 24,
+            "code": 59560,
+            "name": "information-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 680
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 383.917h-85.333v-85.333h85.333zM554.641 725.248h-85.333v-256h85.333zM511.974 85.25c-235.647 0-426.665 191.018-426.665 426.665 0 235.652 191.018 426.667 426.665 426.667s426.667-191.014 426.667-426.667c0-235.646-191.019-426.665-426.667-426.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "information"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1955,
+            "id": 607,
+            "prevSize": 24,
+            "code": 59561,
+            "name": "information"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 681
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 277.251c0 11.776-9.557 21.333-21.333 21.333h-85.333c-11.776 0-21.333-9.557-21.333-21.333v-85.333c0-11.776 9.557-21.333 21.333-21.333h85.333c11.776 0 21.333 9.557 21.333 21.333zM191.973 853.252c-11.776 0-21.333-9.557-21.333-21.333v-362.667h89.174c-2.347 13.914-3.84 28.075-3.84 42.667 0 141.355 114.603 256 256.002 256 141.355 0 256-114.645 256-256 0-14.592-1.502-28.753-3.836-42.667h89.169v362.667c0 11.776-9.557 21.333-21.333 21.333zM511.974 341.251c94.251 0 170.667 76.416 170.667 170.668 0 94.251-76.416 170.667-170.667 170.667-94.252 0-170.668-76.416-170.668-170.667 0-94.252 76.416-170.668 170.668-170.668zM853.308 85.251h-682.668c-47.147 0-84.907 38.187-84.907 85.333l-0.427 682.668c0 47.083 38.187 85.333 85.333 85.333h682.668c47.083 0 85.333-38.251 85.333-85.333v-682.668c0-47.147-38.251-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "instagram"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1956,
+            "id": 606,
+            "prevSize": 24,
+            "code": 59562,
+            "name": "instagram"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 682
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 213.334c0-23.564-19.103-42.667-42.667-42.667l-42.667-0v-85.333h341.333v85.333h-42.667c-23.565 0-42.667 19.103-42.667 42.667v597.333c0 23.565 19.102 42.667 42.667 42.667h42.667v85.333h-341.333v-85.333h42.667c23.564 0 42.667-19.102 42.667-42.667v-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "instapaper"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1957,
+            "id": 605,
+            "prevSize": 24,
+            "code": 59563,
+            "name": "instapaper"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 683
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 128l43.524 2.44c118.507-54.228 222.332-60.548 276.109-5.941 42.65 43.305 46.502 117.495 18.325 205.031 29.367 54.276 46.042 116.427 46.042 182.471l-2.342 42.667h-548.911c15.813 97.374 84.684 170.667 167.253 170.667 55.838 0 105.408-33.519 136.546-85.333h225.604c-52.715 149.146-194.953 256-362.15 256-54.511 0-106.372-11.358-153.34-31.838-124.861 60.847-235.412 70.174-291.507 13.214-67.188-68.22-38.093-213.103 60.847-365.67 39.829-61.884 91.118-125.137 152.114-185.207l34.845-32.972c-50.171 29.39-113.896 74.327-179.005 140.343 36.092-174.612 190.74-305.869 376.046-305.869zM554.667 298.667c-76.42 0-141.106 62.781-162.854 149.333h325.708c-21.747-86.551-86.438-149.333-162.854-149.333zM855.923 173.297c-28.053-28.487-78.694-30.483-141.559-10.615 63.194 28.937 117.175 74.518 156.335 131.133 13.862-52.775 10.039-95.321-14.775-120.517zM165.85 852.898c35.524 36.070 107.26 29.666 194.169-9.818-78.822-46.438-139.606-120.226-169.309-208.311-51.145 96.969-63.647 178.743-24.861 218.129z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "internet-explorer"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1958,
+            "id": 604,
+            "prevSize": 24,
+            "code": 59564,
+            "name": "internet-explorer"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 684
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 835.558v0c-68.395 0-132.652-26.62-180.992-75.008-48.384-48.341-75.008-112.593-75.008-180.992 0-68.352 26.624-132.651 75.008-180.991l181.035-181.034zM753.34 338.195l-241.365-241.323-241.324 241.323c-133.333 133.335-133.333 349.442 0 482.729 66.603 66.645 153.942 99.968 241.324 99.968s174.763-33.323 241.365-99.968c133.291-133.286 133.291-349.436 0-482.729z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "invert-colors"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1959,
+            "id": 603,
+            "prevSize": 24,
+            "code": 59565,
+            "name": "invert-colors"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 685
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c37.205 0 67.371 30.162 67.371 67.369s-30.165 67.369-67.371 67.369c-37.205 0-67.366-30.162-67.366-67.369s30.161-67.369 67.366-67.369zM332.351 130.246c37.207 0 67.368 30.161 67.368 67.368s-30.161 67.369-67.368 67.369c-37.207 0-67.369-30.162-67.369-67.369s30.161-67.368 67.369-67.368zM691.648 130.246c37.21 0 67.371 30.162 67.371 67.369s-30.161 67.369-67.371 67.369c-37.205 0-67.366-30.162-67.366-67.369s30.161-67.369 67.366-67.369zM503.578 467.089c-89.823-89.826-67.366-134.738-67.366-134.738l157.193-0c0 67.369-89.826 134.738-89.826 134.738zM593.404 916.211c0 0 0-89.826-179.649-269.474s-202.105-224.562-224.561-359.299c0 0 16.842-22.456 39.298 0s72.983 39.298 117.895 39.298c0 0 44.913 140.352 168.421 230.174 0 0 162.807-168.419 162.807-235.788 0 0 50.526 11.228 112.282-33.684 0 0 42.125-22.283 44.911 0 5.615 44.912-39.3 202.106-224.563 359.298 0 0 117.897 134.737 106.667 269.474h-123.507zM391.299 691.648l95.438 106.667c-44.911 44.915-50.526 140.352-50.526 140.352h-134.737c22.456-179.648 89.824-247.019 89.824-247.019z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "jira"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1960,
+            "id": 602,
+            "prevSize": 24,
+            "code": 59566,
+            "name": "jira"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 686
+    }, {
+        "icon": {
+            "paths": [
+                "M867.456 460.531c66.85 27.426 113.877 92.322 113.877 168.107 0 100.544-82.769 182.029-184.858 182.029h-566.076c-103.111-1.57-187.733-84.838-187.733-186.735 0-68.156 37.285-127.565 92.75-160.047-3.802-11.93-5.822-24.644-5.822-37.81 0-70.055 57.674-126.851 128.823-126.851 29.681 0 56.962 10.004 78.753 26.639 44.913-92.655 140.658-156.817 251.873-156.817 154.227 0 279.245 123.12 279.245 274.994 0 5.559-0.495 11.004-0.832 16.491zM393.181 463.121c-75.465 0-136.641 53.862-136.641 120.303 0 66.445 61.176 120.307 136.641 120.307 44.246 0 83.58-18.517 108.549-47.228l-43.081-48.546c-14.11 18.556-41.67 31.552-65.468 31.552-33.664 0-60.954-25.109-60.954-56.085 0-30.972 27.29-56.081 60.954-56.081 20.088 0 38.763 10.039 57.507 22.161 18.743 12.117 49.737 55.287 74.381 82.931 62.656 62.537 94.793 68.028 131.891 68.028 75.465 0 136.64-53.862 136.64-120.303 0-66.445-61.175-120.307-136.64-120.307-44.245 0-83.58 18.517-108.553 47.228l43.085 48.546c14.11-18.556 41.668-31.552 65.468-31.552 33.664 0 60.954 25.109 60.954 56.085 0 30.972-27.29 56.081-60.954 56.081-20.087 0-38.767-10.039-57.51-22.161-18.743-12.117-49.737-55.287-74.381-82.931-62.652-62.532-94.793-68.028-131.887-68.028z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "jsfiddle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1961,
+            "id": 601,
+            "prevSize": 24,
+            "code": 59567,
+            "name": "jsfiddle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 687
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 938.667v-85.333h42.667l-0.089-170.667h-42.578v-85.333h42.534l-0.067-128h-42.467v-170.667h256v-170.667h-42.667v-42.667h170.667v42.667h-42.667v170.667h256v170.667h-42.867l0.068 128h42.799v85.333h-42.756l0.090 170.667h42.667v85.333h-597.333zM725.333 384c0-23.564-19.102-42.667-42.667-42.667l-85.333-0c-23.565 0-42.667 19.103-42.667 42.667s19.102 42.667 42.667 42.667h85.333c23.565 0 42.667-19.102 42.667-42.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "keg"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1962,
+            "id": 600,
+            "prevSize": 24,
+            "code": 59568,
+            "name": "keg"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 688
+    }, {
+        "icon": {
+            "paths": [
+                "M277.333 85.334c83.598 0 154.718 53.428 181.073 128h480.26v128h-170.667v128h-128v-128h-181.594c-26.355 74.572-97.475 128-181.073 128-106.039 0-192-85.961-192-192s85.961-192 192-192zM277.333 213.334c-35.346 0-64 28.654-64 64s28.654 64 64 64c35.346 0 64-28.654 64-64s-28.654-64-64-64zM277.333 554.667c83.598 0 154.718 53.427 181.073 128h480.26v128h-85.333v128h-85.333v-128h-85.333v128h-128v-128h-96.26c-26.355 74.573-97.475 128-181.073 128-106.039 0-192-85.961-192-192s85.961-192 192-192zM277.333 682.667c-35.346 0-64 28.655-64 64s28.654 64 64 64c35.346 0 64-28.655 64-64s-28.654-64-64-64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "key-change"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1963,
+            "id": 599,
+            "prevSize": 24,
+            "code": 59569,
+            "name": "key-change"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 689
+    }, {
+        "icon": {
+            "paths": [
+                "M277.333 128c83.598 0 154.718 53.427 181.073 128h480.26v128h-170.667v128h-128v-128h-181.594c-26.355 74.573-97.475 128-181.073 128-106.039 0-192-85.961-192-192s85.961-192 192-192zM277.333 256c-35.346 0-64 28.654-64 64s28.654 64 64 64c35.346 0 64-28.654 64-64s-28.654-64-64-64zM341.333 725.333h341.333v85.333h-341.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "key-minus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1964,
+            "id": 598,
+            "prevSize": 24,
+            "code": 59570,
+            "name": "key-minus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 690
+    }, {
+        "icon": {
+            "paths": [
+                "M277.333 128c83.598 0 154.718 53.427 181.073 128h480.26v128h-170.667v128h-128v-128h-181.594c-26.355 74.573-97.475 128-181.073 128-106.039 0-192-85.961-192-192s85.961-192 192-192zM277.333 256c-35.346 0-64 28.654-64 64s28.654 64 64 64c35.346 0 64-28.654 64-64s-28.654-64-64-64zM341.333 725.333h128v-128h85.333v128h128v85.333h-128v128h-85.333v-128h-128v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "key-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1965,
+            "id": 597,
+            "prevSize": 24,
+            "code": 59571,
+            "name": "key-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 691
+    }, {
+        "icon": {
+            "paths": [
+                "M277.333 128c83.598 0 154.718 53.427 181.073 128h480.26v128h-170.667v128h-128v-128h-181.594c-26.355 74.573-97.475 128-181.073 128-106.039 0-192-85.961-192-192s85.961-192 192-192zM277.333 256c-35.346 0-64 28.654-64 64s28.654 64 64 64c35.346 0 64-28.654 64-64s-28.654-64-64-64zM622.507 597.333l60.16 60.16-110.507 110.507 110.507 110.507-60.16 60.16-110.507-110.507-110.507 110.507-60.16-60.16 110.507-110.507-110.507-110.507 60.16-60.16 110.507 110.507 110.507-110.507z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "key-remove"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1966,
+            "id": 596,
+            "prevSize": 24,
+            "code": 59572,
+            "name": "key-remove"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 692
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 768v170.667h-170.667v-128h-128v-128h-128l-96.302-96.303c-23.534 7.134-48.502 10.97-74.365 10.97-141.385 0-256-114.615-256-256s114.615-256 256-256c141.385 0 256 114.615 256 256 0 25.863-3.836 50.831-10.97 74.365l352.303 352.302zM298.667 213.333c-47.128 0-85.333 38.205-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.333-38.205 85.333-85.333s-38.205-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "key-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1967,
+            "id": 595,
+            "prevSize": 24,
+            "code": 59573,
+            "name": "key-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 693
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 597.333c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333zM539.733 426.667c-34.987-99.413-129.707-170.667-241.067-170.667-141.227 0-256 114.773-256 256s114.773 256 256 256c111.36 0 206.080-71.253 241.067-170.667h185.6v170.667h170.667v-170.667h85.333v-170.667h-441.6z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "key"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1968,
+            "id": 594,
+            "prevSize": 24,
+            "code": 59574,
+            "name": "key"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 694
+    }, {
+        "icon": {
+            "paths": [
+                "M895.974 469.252h-604.672l153.002-153.004-60.331-60.331-256 256.001 256 256 60.331-60.331-153.002-153.003h604.672v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "keyboard-backspace"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1969,
+            "id": 593,
+            "prevSize": 24,
+            "code": 59575,
+            "name": "keyboard-backspace"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 695
+    }, {
+        "icon": {
+            "paths": [
+                "M255.974 767.919h512v-85.333h-512zM511.974 358.917l195.669 195.669 60.331-60.331-256-256-256 256 60.331 60.331 195.67-195.669z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "keyboard-caps"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1970,
+            "id": 592,
+            "prevSize": 24,
+            "code": 59576,
+            "name": "keyboard-caps"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 696
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 981.252l170.667-170.667h-341.334zM810.641 341.251h-85.333v-85.333h85.333zM810.641 469.252h-85.333v-85.335h85.333zM682.641 341.251h-85.333v-85.333h85.333zM682.641 469.252h-85.333v-85.335h85.333zM682.641 639.919h-341.334v-85.333h341.334zM298.641 341.251h-85.333v-85.333h85.333zM298.641 469.252h-85.333v-85.335h85.333zM341.307 383.918h85.333v85.335h-85.333zM341.307 255.918h85.333v85.333h-85.333zM469.308 383.918h85.333v85.335h-85.333zM469.308 255.918h85.333v85.333h-85.333zM853.308 127.918h-682.667c-47.147 0-84.907 38.229-84.907 85.333l-0.426 426.668c0 47.104 38.187 85.333 85.333 85.333h682.667c47.104 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "keyboard-close"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1971,
+            "id": 591,
+            "prevSize": 24,
+            "code": 59577,
+            "name": "keyboard-close"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 697
+    }, {
+        "icon": {
+            "paths": [
+                "M42.667 182.122l54.49-54.122 756.177 756.177-54.123 54.49-128.081-128.081h-500.488c-47.147 0-85.333-38.229-85.333-85.333l0.426-426.668c0-20.561 7.195-39.432 19.225-54.17l-62.293-62.292zM810.641 426.584v-85.333h-85.333v85.333h85.333zM810.641 554.586v-85.333h-85.333v85.333h85.333zM682.641 426.584v-85.333h-85.333v85.333h85.333zM682.641 554.586v-85.333h-85.333v50.287l-92.954-92.955h50.287v-85.333h-85.333v50.289l-178.289-178.289h562.289c47.104 0 85.333 38.229 85.333 85.333v426.668c0 36.651-23.147 67.934-55.612 80.009l-250.675-250.675h50.287zM341.308 639.919v85.333h244.488l-85.333-85.333h-159.155zM213.308 426.584h73.821l-73.821-73.821v73.821zM298.641 554.586v-85.333h-85.333v85.333h85.333zM341.308 554.586h73.821l-73.821-73.822v73.822z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "keyboard-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1972,
+            "id": 590,
+            "prevSize": 24,
+            "code": 59578,
+            "name": "keyboard-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 698
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 298.584v170.668h-562.005l153.003-153.004-60.331-60.331-256 256.001 256 256 60.331-60.331-153.003-153.003h647.339v-256.001h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "keyboard-return"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1973,
+            "id": 589,
+            "prevSize": 24,
+            "code": 59579,
+            "name": "keyboard-return"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 699
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 767.919h85.333v-512.001h-85.333zM494.31 316.248l153.003 153.004h-604.672v85.333h604.672l-153.003 153.003 60.331 60.331 256-256-256-256.001-60.331 60.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "keyboard-tab"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1974,
+            "id": 588,
+            "prevSize": 24,
+            "code": 59580,
+            "name": "keyboard-tab"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 700
+    }, {
+        "icon": {
+            "paths": [
+                "M256 682.667h512v85.333h-512v-85.333zM256 554.667v85.333h-170.666v-85.333h170.666zM298.666 640v-85.333h128v85.333h-128zM469.333 640v-85.333h85.333v85.333h-85.333zM597.333 640v-85.333h128v85.333h-128zM768 640v-85.333h170.667v85.333h-170.667zM85.333 426.667h128v85.333h-128v-85.333zM810.667 512v-85.333h128v85.333h-128zM768 512h-85.333v-85.333h85.333v85.333zM341.333 512h-85.333v-85.333h85.333v85.333zM512 512h-128v-85.333h128v85.333zM640 512h-85.333v-85.333h85.333v85.333zM85.333 384v-85.333h85.333v85.333h-85.333zM213.333 384v-85.333h85.333v85.333h-85.333zM341.333 384v-85.333h85.333v85.333h-85.333zM469.333 384v-85.333h85.333v85.333h-85.333zM597.333 384v-85.333h85.333v85.333h-85.333zM725.333 384v-85.333h213.333v85.333h-213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "keyboard-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1975,
+            "id": 587,
+            "prevSize": 24,
+            "code": 59581,
+            "name": "keyboard-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 701
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 426.584h-85.333v-85.333h85.333zM810.641 554.586h-85.333v-85.333h85.333zM682.641 426.584h-85.333v-85.333h85.333zM682.641 554.586h-85.333v-85.333h85.333zM682.641 725.252h-341.333v-85.333h341.333zM298.641 426.584h-85.333v-85.333h85.333zM298.641 554.586h-85.333v-85.333h85.333zM341.308 469.252h85.333v85.333h-85.333zM341.308 341.251h85.333v85.333h-85.333zM469.308 469.252h85.333v85.333h-85.333zM469.308 341.251h85.333v85.333h-85.333zM853.308 213.251h-682.666c-47.147 0-84.907 38.229-84.907 85.333l-0.426 426.668c0 47.104 38.187 85.333 85.333 85.333h682.666c47.104 0 85.333-38.229 85.333-85.333v-426.668c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "keyboard"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1976,
+            "id": 586,
+            "prevSize": 24,
+            "code": 59582,
+            "name": "keyboard"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 702
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 725.248h-469.333v-426.665h469.333l151.339 213.331zM752.316 249.302c-15.445-21.844-40.917-36.052-69.675-36.052l-469.333 0.427c-47.084 0-85.333 37.802-85.333 84.906v426.665c0 47.108 38.25 84.907 85.333 84.907l469.333 0.427c28.757 0 54.229-14.246 69.675-36.049l186.325-262.618-186.325-262.612z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "label-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1977,
+            "id": 585,
+            "prevSize": 24,
+            "code": 59583,
+            "name": "label-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 703
+    }, {
+        "icon": {
+            "paths": [
+                "M752.311 249.292c-15.445-21.804-40.917-36.055-69.675-36.055l-469.333 0.427c-47.104 0-85.333 37.802-85.333 84.906v426.665c0 47.147 38.229 84.907 85.333 84.907l469.333 0.427c28.757 0 54.229-14.208 69.675-36.011l186.325-262.656-186.325-262.61z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "label"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1978,
+            "id": 584,
+            "prevSize": 24,
+            "code": 59584,
+            "name": "label"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 704
+    }, {
+        "icon": {
+            "paths": [
+                "M490.487 681.527l17.766 103.919c-11.238 5.999-28.937 11.614-53.094 16.849s-52.756 8.026-85.796 8.371c-94.040-1.873-164.866-29.773-212.477-83.695s-71.462-122.615-71.553-206.089c2.044-98.344 30.81-174.039 86.298-227.085s125.437-79.868 209.845-80.465c32.132 0.301 59.723 3.008 82.767 8.123 23.049 5.114 40.141 10.831 51.277 17.148l-25.839 106.334-44.109-14.784c-17.276-4.135-37.028-6.301-59.251-6.496-49.594-0.070-90.508 15.589-122.74 46.976s-48.921 78.918-50.065 142.598c0.42 57.993 15.729 103.501 45.926 136.525 30.197 33.028 72.759 49.847 127.686 50.47l56.524-5.21c18.338-3.379 33.95-7.876 46.835-13.491zM592.695 810.667l27.029-170.667h-64l13.517-85.333h64l13.517-85.333h-64l13.517-85.333h63.996l27.034-170.666h85.333l-27.034 170.666h42.671l27.029-170.667h85.333l-27.029 170.667h64l-13.517 85.333h-64l-13.517 85.333h64l-13.517 85.333h-64l-27.029 170.667h-85.333l27.029-170.667h-42.667l-27.029 170.667h-85.333zM718.575 554.667h42.667l13.517-85.333h-42.667l-13.517 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "language-csharp"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1979,
+            "id": 583,
+            "prevSize": 24,
+            "code": 59585,
+            "name": "language-csharp"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 705
+    }, {
+        "icon": {
+            "paths": [
+                "M214.039 127.997l-28.487 142.436h579.752l-18.091 92.006h-580.14l-28.102 142.435h579.753l-32.337 162.453-233.673 77.38-202.49-77.38 13.859-70.447h-142.436l-33.876 170.923 334.917 128.192 386.118-128.192 51.2-257.152 10.394-51.588 65.826-331.066h-722.188z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "language-css3"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1980,
+            "id": 582,
+            "prevSize": 24,
+            "code": 59586,
+            "name": "language-css3"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 706
+    }, {
+        "icon": {
+            "paths": [
+                "M512 749.333l173.756-48.171 23.258-260.275h-308.942l-7.749-86.811h324.409l7.59-84.778h-424.646l22.868 256.364h293.805l-9.839 109.952-94.511 25.51-94.534-25.459-6.302-70.618h-85.102l12.142 136.115 173.796 48.171zM173.587 128.001h676.828l-61.705 691.246-276.877 76.753-276.618-76.791-61.629-691.208z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "language-html5"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1981,
+            "id": 581,
+            "prevSize": 24,
+            "code": 59587,
+            "name": "language-html5"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 707
+    }, {
+        "icon": {
+            "paths": [
+                "M128 128h768v768h-768v-768zM329.935 769.796c17.012 36.087 50.525 65.98 108.26 65.98 63.927 0 107.746-34.022 107.746-108.774v-246.417h-72.171v245.393c0 36.087-14.955 45.363-38.669 45.363-24.74 0-35.055-17.011-46.393-37.111l-58.773 35.567zM585.143 762.065c21.133 41.758 64.439 73.719 131.456 73.719 68.565 0 119.603-35.571 119.603-100.531 0-60.314-34.543-87.117-95.893-113.412l-18.039-7.731c-30.929-13.406-44.335-22.17-44.335-43.823 0-17.523 13.406-30.929 34.543-30.929 20.621 0 34.018 8.764 46.391 30.929l56.196-36.083c-23.714-41.762-56.708-57.745-102.588-57.745-64.444 0-105.685 41.246-105.685 95.377 0 58.769 34.543 86.609 86.613 108.77l18.039 7.74c32.994 14.43 52.582 23.194 52.582 47.94 0 20.621-19.068 35.575-48.973 35.575-35.571 0-55.676-18.56-71.147-43.823l-58.765 34.027z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "language-javascript"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1982,
+            "id": 580,
+            "prevSize": 24,
+            "code": 59588,
+            "name": "language-javascript"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 708
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 242.756c295.383-196.922 388.053 56.413 395.776 195.418s-127.422 314.261-297.315 198.426v229.743l-98.461-65.643v-557.943zM179.934 315.583v229.736c154.449 92.672 207.538 16.414 207.538-114.867 0-185.338-107.147-192.093-207.538-114.868zM643.277 177.116c0 0-7.723 148.648 0 295.375 15.445 146.726 196.924 32.823 196.924 32.823v-295.378l98.466 12.010v394.327c0 262.562-262.566 250.069-262.566 250.069l-32.828-98.462c229.747 0 200.789-152.090 200.789-152.090-278.007 108.113-299.243-77.653-299.243-77.653v-295.381l98.458-65.641z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "language-python-text"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1983,
+            "id": 579,
+            "prevSize": 24,
+            "code": 59589,
+            "name": "language-python-text"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 709
+    }, {
+        "icon": {
+            "paths": [
+                "M816.759 319.999c67.328 0 121.907 54.579 121.907 121.904v161.527c0 67.324-54.579 121.903-121.907 121.903h-304.759c0 16.832 13.645 41.143 30.473 41.143h182.865v71.62c0 67.328-54.579 121.907-121.907 121.907h-182.858c-67.326 0-121.905-54.579-121.905-121.907l-0.004-160c0-67.328 54.583-121.907 121.909-121.907h223.997c67.328 0 121.907-54.579 121.907-121.907v-114.284h50.283zM633.903 822.857c-16.832 0-30.477 12.847-30.477 38.093 0 25.25 13.645 30.477 30.477 30.477s30.477-5.227 30.477-30.477c0-25.246-13.645-38.093-30.477-38.093zM207.239 746.667c-67.327 0-121.905-54.579-121.905-121.903v-161.527c0-67.325 54.579-121.904 121.905-121.904l304.761 0c0-16.832-13.645-41.143-30.473-41.143h-182.863v-71.619c0-67.327 54.579-121.905 121.905-121.905h182.857c67.328 0 121.907 54.579 121.907 121.905v160.001c0 67.327-54.579 121.906-121.907 121.906h-223.996c-67.327 0-121.905 54.579-121.905 121.907l-0 114.283h-50.286zM390.097 243.81c16.832 0 30.476-12.847 30.476-38.094s-13.644-30.474-30.476-30.474c-16.832 0-30.476 5.227-30.476 30.474s13.644 38.094 30.476 38.094z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "language-python"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1984,
+            "id": 578,
+            "prevSize": 24,
+            "code": 59590,
+            "name": "language-python"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 710
+    }, {
+        "icon": {
+            "paths": [
+                "M511.987 810.586c-23.552 0-42.667-19.115-42.667-42.667s19.115-42.667 42.667-42.667c23.552 0 42.667 19.115 42.667 42.667s-19.115 42.667-42.667 42.667zM170.653 213.251h682.667v469.335h-682.667zM853.321 767.919c47.104 0 84.907-38.229 84.907-85.333l0.427-469.335c0-47.104-38.229-85.333-85.333-85.333h-682.667c-47.146 0-85.333 38.229-85.333 85.333v469.335c0 47.104 38.187 85.333 85.333 85.333h-170.666c0 47.104 38.187 85.333 85.333 85.333h853.334c47.104 0 85.333-38.229 85.333-85.333h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "laptop-chromebook"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1985,
+            "id": 577,
+            "prevSize": 24,
+            "code": 59591,
+            "name": "laptop-chromebook"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 711
+    }, {
+        "icon": {
+            "paths": [
+                "M170.653 213.251h682.667v426.668h-682.667zM853.321 767.919v-42.667c47.104 0 84.907-38.229 84.907-85.333l0.427-426.668c0-47.104-38.229-85.333-85.333-85.333h-682.667c-47.104 0-85.333 38.229-85.333 85.333v426.668c0 47.104 38.229 85.333 85.333 85.333v42.667h-170.666v85.333h1024v-85.333h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "laptop-mac"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1986,
+            "id": 576,
+            "prevSize": 24,
+            "code": 59592,
+            "name": "laptop-mac"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 712
+    }, {
+        "icon": {
+            "paths": [
+                "M853.321 639.919h-682.667v-426.668h682.667zM597.321 767.919h-170.667v-42.667h170.667zM938.654 767.919v-640.001h-853.334v640.001h-85.333v85.333h1024v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "laptop-windows"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1987,
+            "id": 575,
+            "prevSize": 24,
+            "code": 59593,
+            "name": "laptop-windows"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 713
+    }, {
+        "icon": {
+            "paths": [
+                "M170.654 255.918h682.667v426.668h-682.667zM853.321 767.919c47.104 0 84.907-38.229 84.907-85.333l0.427-426.668c0-47.104-38.229-85.333-85.333-85.333h-682.667c-47.147 0-85.333 38.229-85.333 85.333v426.668c0 47.104 38.187 85.333 85.333 85.333h-170.667v85.333h1024v-85.333h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "laptop"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1988,
+            "id": 574,
+            "prevSize": 24,
+            "code": 59594,
+            "name": "laptop"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 714
+    }, {
+        "icon": {
+            "paths": [
+                "M768.286 765.069c-88.841-0.358-136.252-44.126-169.152-121.237l-9.387-21.039-81.161-186.266c-26.833-65.933-93.677-110.478-169.054-110.478-101.926 0-184.605 83.276-184.605 185.981 0 102.711 82.679 185.988 184.605 185.988 71.111 0 133.026-40.486 163.84-99.849l32.9 76.211c-46.647 57.203-117.475 93.619-196.74 93.619-140.326 0-254.199-114.526-254.199-255.97 0-141.36 113.873-256.029 254.199-256.029 106.001 0 191.62 56.975 235.046 157.943 3.315 7.831 45.982 108.305 83.247 193.809 23.040 52.928 42.667 88.017 106.381 90.197 62.673 2.163 105.626-36.22 105.626-84.745 0-47.407-32.713-58.795-88.085-77.329-99.46-32.998-150.848-66.146-150.848-145.561 0-77.473 52.339-129.138 137.387-129.138 55.467 0 95.475 24.823 123.162 74.316l-54.327 27.961c-20.574-28.871-43.14-40.268-71.868-40.268-39.919 0-68.365 27.971-68.365 65.157 0 52.792 46.839 60.766 112.452 82.441 88.273 28.949 129.327 62.007 129.327 144.585 0 86.707-73.86 149.845-170.381 149.7z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "lastfm"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1989,
+            "id": 573,
+            "prevSize": 24,
+            "code": 59595,
+            "name": "lastfm"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 715
+    }, {
+        "icon": {
+            "paths": [
+                "M597.308 127.917v85.333h153.003l-419.371 419.326 60.331 60.373 419.371-419.369v153.003h85.333v-298.667zM810.641 810.581h-597.333v-597.331h298.667v-85.333h-298.667c-47.147 0-85.333 38.229-85.333 85.333v597.331c0 47.108 38.187 85.333 85.333 85.333h597.333c47.104 0 85.333-38.225 85.333-85.333v-298.667h-85.333v298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "launch"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1990,
+            "id": 572,
+            "prevSize": 24,
+            "code": 59596,
+            "name": "launch"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 716
+    }, {
+        "icon": {
+            "paths": [
+                "M139.52 42.667l-54.187 54.187 180.053 180.053-137.387 107.093 69.547 54.187 314.453 244.48 89.6-69.547 61.013 61.013-150.613 116.907-314.453-244.48-69.547 53.76 384 298.667 211.2-164.267 161.28 161.28 54.187-54.187-799.147-799.147zM826.027 438.187l69.973-54.187-384-298.667-124.16 96.853 335.787 336.213 102.4-80.213zM845.227 639.573l50.773-39.253-61.013-61.013-50.773 39.253 61.013 61.013z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "layers-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1991,
+            "id": 571,
+            "prevSize": 24,
+            "code": 59597,
+            "name": "layers-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 717
+    }, {
+        "icon": {
+            "paths": [
+                "M512 682.667l384-298.667-384-298.667-384 298.667 69.547 54.187zM511.573 791.040l-314.453-244.48-69.12 53.76 384 298.667 384-298.667-69.547-54.187-314.88 244.907z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "layers"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1992,
+            "id": 570,
+            "prevSize": 24,
+            "code": 59598,
+            "name": "layers"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 718
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 341.333c-384 85.333-473.551 348.403-562.512 569.289l80.684 27.78 40.681-97.83c20.591 7.151 41.674 12.762 57.147 12.762 469.333 0 597.333-725.333 597.333-725.333-42.667 85.333-341.333 96-554.667 138.667s-298.667 224-298.667 309.333c0 85.333 74.667 160 74.667 160 138.667-394.667 565.333-394.667 565.333-394.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "leaf"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1993,
+            "id": 569,
+            "prevSize": 24,
+            "code": 59599,
+            "name": "leaf"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 719
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 298.667h-426.667v-85.333h426.667zM640 640h-256v-85.333h256zM810.667 469.333h-426.667v-85.333h426.667zM853.333 85.333h-512c-46.933 0-85.333 38.4-85.333 85.333v512c0 46.933 38.4 85.333 85.333 85.333h512c46.933 0 85.333-38.4 85.333-85.333v-512c0-46.933-38.4-85.333-85.333-85.333zM170.667 256h-85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333v-85.333h-597.333v-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "library-books"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1994,
+            "id": 568,
+            "prevSize": 24,
+            "code": 59600,
+            "name": "library-books"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 720
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 256h-85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333v-85.333h-597.333zM768 298.667h-128v234.667c0 58.88-47.787 106.667-106.667 106.667s-106.667-47.787-106.667-106.667c0-58.88 47.787-106.667 106.667-106.667 24.32 0 46.080 8.107 64 21.76v-235.093h170.667zM853.333 85.333h-512c-46.933 0-85.333 38.4-85.333 85.333v512c0 46.933 38.4 85.333 85.333 85.333h512c46.933 0 85.333-38.4 85.333-85.333v-512c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "library-music"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1995,
+            "id": 567,
+            "prevSize": 24,
+            "code": 59601,
+            "name": "library-music"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 721
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 469.333h-170.667v170.667h-85.333v-170.667h-170.667v-85.333h170.667v-170.667h85.333v170.667h170.667zM853.333 85.333h-512c-46.933 0-85.333 38.4-85.333 85.333v512c0 46.933 38.4 85.333 85.333 85.333h512c46.933 0 85.333-38.4 85.333-85.333v-512c0-46.933-38.4-85.333-85.333-85.333zM170.667 256h-85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333v-85.333h-597.333v-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "library-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1996,
+            "id": 566,
+            "prevSize": 24,
+            "code": 59602,
+            "name": "library-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 722
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 341.251c70.699 0 128-57.301 128-128s-57.301-128-128-128c-70.699 0-128 57.301-128 128s57.302 128 128 128zM511.974 492.506c-100.865-93.569-235.563-151.255-384-151.255v469.335c148.437 0 283.136 57.685 384 151.253 100.864-93.568 235.563-151.253 384-151.253v-469.335c-148.437 0-283.136 57.685-384 151.255z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "library"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1997,
+            "id": 565,
+            "prevSize": 24,
+            "code": 59603,
+            "name": "library"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 723
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 85.251c164.949 0 298.667 133.717 298.667 298.667 0 101.463-50.688 190.935-128 244.908v96.427c0 23.552-19.115 42.667-42.667 42.667h-256c-23.552 0-42.667-19.115-42.667-42.667v-96.427c-77.312-53.973-128-143.445-128-244.908 0-164.95 133.717-298.667 298.666-298.667zM383.975 895.919v-42.667h256v42.667c0 23.552-19.115 42.667-42.667 42.667h-170.666c-23.552 0-42.667-19.115-42.667-42.667zM512 170.667c-117.821 0-213.333 95.513-213.333 213.333 0 87.479 52.655 162.662 128 195.584v103.083h170.667v-103.083c75.345-32.922 128-108.105 128-195.584 0-117.821-95.514-213.333-213.333-213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "lightbulb-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1998,
+            "id": 564,
+            "prevSize": 24,
+            "code": 59604,
+            "name": "lightbulb-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 724
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 85.251c-164.949 0-298.666 133.717-298.666 298.667 0 101.463 50.688 190.935 128 244.908v96.427c0 23.552 19.115 42.667 42.667 42.667h256c23.552 0 42.667-19.115 42.667-42.667v-96.427c77.312-53.973 128-143.445 128-244.908 0-164.949-133.717-298.667-298.667-298.667zM383.975 895.919c0 23.552 19.115 42.667 42.667 42.667h170.666c23.552 0 42.667-19.115 42.667-42.667v-42.667h-256v42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "lightbulb"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 1999,
+            "id": 563,
+            "prevSize": 24,
+            "code": 59605,
+            "name": "lightbulb"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 725
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-170.743-170.743h-73.822v-73.826l-139.511-139.507h-73.823v-73.826l-107.135-107.133c-41.248 32.005-67.799 82.053-67.799 138.292 0 96.593 78.339 174.929 174.934 174.929h128.001v81.071h-128.001c-141.354 0-256-114.607-256-256 0-78.626 35.45-148.97 91.23-195.927l-91.207-91.207zM682.645 255.922c141.44 0 256 114.603 256 256.001 0 94.558-51.238 177.139-127.484 221.47l-60.331-60.331c62.729-26.586 106.748-88.734 106.748-161.139 0-96.6-78.336-174.937-174.933-174.937h-128v-81.064h128zM341.311 255.922h128.001v81.065h-54.558l-80.956-80.956 7.513-0.108zM682.645 469.257v85.333h-50.287l-85.333-85.333h135.62z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "link-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2000,
+            "id": 562,
+            "prevSize": 24,
+            "code": 59606,
+            "name": "link-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 726
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-206.089-206.089-111.292 111.292c-83.313 83.311-218.388 83.311-301.699 0-83.312-83.315-83.312-218.389 0-301.7l63.386-63.386c-0.355 34.995 5.404 70.042 17.276 103.403l-20.323 20.322c-49.987 49.988-49.987 131.034 0 181.018 49.987 49.988 131.032 49.988 181.019 0l111.294-111.292-68.642-68.638c-0.265 10.556-4.429 21.026-12.48 29.082-16.666 16.661-43.679 16.661-60.342 0-44.998-45.001-65.692-105.097-62.081-163.985l-243.904-243.905zM542.165 180.134c83.311-83.311 218.389-83.311 301.7 0s83.311 218.386 0 301.7l-63.386 63.381c0.354-34.995-5.406-70.046-17.276-103.403l20.322-20.324c49.988-49.987 49.988-131.032 0-181.019s-131.029-49.987-181.018-0l-142.135 142.135-60.339-60.339 142.131-142.132zM572.339 391.319c16.661-16.662 43.678-16.662 60.339 0 58.428 58.426 75.878 142.313 52.356 215.947l-75.639-75.639c-2.394-29.158-14.746-57.655-37.056-79.966-16.661-16.666-16.661-43.679 0-60.341z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "link-variant-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2001,
+            "id": 561,
+            "prevSize": 24,
+            "code": 59607,
+            "name": "link-variant-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 727
+    }, {
+        "icon": {
+            "paths": [
+                "M451.661 572.339c16.661 16.661 16.661 43.678 0 60.339-16.666 16.661-43.679 16.661-60.342 0-83.312-83.311-83.312-218.387 0-301.699l0.001 0.001 150.845-150.846c83.311-83.312 218.389-83.311 301.7 0s83.311 218.387 0 301.7l-63.386 63.381c0.354-34.995-5.402-70.046-17.276-103.403l20.322-20.324c49.988-49.987 49.988-131.032 0-181.019s-131.029-49.987-181.018 0l-150.848 150.849c-49.989 49.986-49.989 131.031 0 181.020zM572.339 391.319c16.661-16.662 43.678-16.662 60.339 0 83.311 83.313 83.311 218.387 0 301.698v0l-150.848 150.852c-83.313 83.311-218.388 83.311-301.699 0-83.311-83.315-83.312-218.389 0-301.7l63.386-63.386c-0.355 34.995 5.404 70.042 17.276 103.403l-20.323 20.322c-49.987 49.988-49.987 131.034 0 181.018 49.987 49.988 131.032 49.988 181.019 0l150.85-150.848c49.988-49.988 49.988-131.034 0-181.018-16.661-16.666-16.661-43.679 0-60.341z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "link-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2002,
+            "id": 560,
+            "prevSize": 24,
+            "code": 59608,
+            "name": "link-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 728
+    }, {
+        "icon": {
+            "paths": [
+                "M682.645 255.922h-128v81.065h128c96.597 0 174.933 78.336 174.933 174.936 0 96.593-78.336 174.929-174.933 174.929h-128v81.071h128c141.44 0 256-114.607 256-256 0-141.4-114.56-256.001-256-256.001zM166.378 511.923c0-96.6 78.337-174.936 174.933-174.936h128.001v-81.065h-128.001c-141.354 0-256 114.601-256 256.001 0 141.393 114.646 256 256 256h128.001v-81.071h-128.001c-96.596 0-174.933-78.336-174.933-174.929zM341.311 554.59h341.334v-85.333h-341.334v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "link"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2003,
+            "id": 559,
+            "prevSize": 24,
+            "code": 59609,
+            "name": "link"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 729
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 810.586h-128v-226.133c0-35.328-28.672-64-64-64s-64 28.672-64 64v226.133h-128v-384.001h128v51.201c22.101-35.755 67.669-59.735 106.667-59.735 82.475 0 149.333 66.86 149.333 149.335zM277.308 354.563c-42.709 0-77.355-34.56-77.355-77.312s34.645-77.355 77.355-77.355c42.709 0 77.312 34.603 77.312 77.355s-34.603 77.312-77.312 77.312zM341.308 810.586h-128v-384.001h128zM853.308 85.251h-682.667c-47.147 0-84.916 38.187-84.916 85.333l-0.417 682.668c0 47.083 38.187 85.333 85.333 85.333h682.667c47.083 0 85.333-38.251 85.333-85.333v-682.668c0-47.147-38.251-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "linkedin-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2004,
+            "id": 558,
+            "prevSize": 24,
+            "code": 59610,
+            "name": "linkedin-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 730
+    }, {
+        "icon": {
+            "paths": [
+                "M896 896h-170.667v-288c0-45.167-50.684-82.953-95.851-82.953s-74.816 37.786-74.816 82.953v288h-170.667v-512h170.667v85.333c28.258-45.714 100.54-75.21 150.4-75.21 105.451 0 190.933 87.097 190.933 192.543v309.333zM298.666 896h-170.667v-512h170.667v512zM213.333 128c47.128 0 85.333 38.205 85.333 85.333s-38.205 85.333-85.333 85.333c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "linkedin"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2005,
+            "id": 557,
+            "prevSize": 24,
+            "code": 59611,
+            "name": "linkedin"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 731
+    }, {
+        "icon": {
+            "paths": [
+                "M303.391 816.017l96.28 102.195-16.481-112.533-102.879-101.18 23.080 111.518zM407.086 938.667l-0.94-0.090-0.938-0.269-0.714-0.346-1.14-0.905-108.399-115.076c-0.652-0.691-1.094-1.545-1.286-2.466l-26.803-129.451-0.077-1.621c0.082-0.678 0.296-1.327 0.622-1.907 0.424-0.755 1.038-1.399 1.798-1.865l28.786-17.604-43.441-40.917c-0.765-0.721-1.287-1.655-1.501-2.684l-34.594-167.151-0.068-1.677c0.085-0.683 0.305-1.327 0.636-1.903 0.425-0.742 1.039-1.387 1.807-1.847l0.435-0.23 45.12-21.483-62.409-48.641c-0.966-0.751-1.614-1.81-1.865-2.997l-45.981-222.083-0.061-1.692 0.278-1.129c0.354-0.956 0.993-1.806 1.869-2.417l1.399-0.693 206.078-64.191c1.237-0.388 2.572-0.287 3.746 0.28l151.683 73.233c1.37 0.907 2.227 2.411 2.3 4.063l9.417 220.294c0.081 1.986-0.986 3.84-2.743 4.759l-56.081 29.18 60.194 40.445c1.267 0.986 2.005 2.509 1.988 4.13l2.483 58.214 57.566-35.191c1.698-1.041 3.836-1.003 5.495 0.098l40.013 26.428 1.045-52.224c0.034-1.737 0.96-3.341 2.445-4.25l98.364-60.135c1.574-0.969 3.541-1.002 5.15-0.118l116.693 64.669c1.451 0.866 2.377 2.394 2.47 4.083l-0.034 0.981-16.175 119.684c-0.179 1.301-0.853 2.496-1.882 3.319l-91.187 72.674c-0.316 0.252-0.657 0.465-1.015 0.631-0.687 0.32-1.434 0.478-2.249 0.478-0.542-0.009-1.088-0.102-1.617-0.282-0.243-0.090-0.486-0.192-0.725-0.316-0.269-0.145-0.525-0.316-0.759-0.499l-33.749-23.488-3.401 55.932c-0.090 1.451-0.777 2.795-1.92 3.708l-111.552 88.96-1.216 0.806c-0.691 0.329-1.434 0.491-2.185 0.491s-1.506-0.171-2.206-0.495l-1.092-0.708-46.583-39.206 3.26 76.275c0.068 1.626-0.644 3.191-1.924 4.22l-139.442 111.087-0.96 0.61c-0.706 0.354-1.467 0.512-2.225 0.512zM720.422 563.217c0.589 0.397 1.079 0.9 1.455 1.476 0.521 0.798 0.815 1.732 0.836 2.705l-0.004 0.401-0.004 0.030-3.443 56.687 31.872 22.182 9.617-111.219-107.895-67.234-0.998 49.694 68.565 45.278zM592.090 656.154l-49.199-37.551 0.375 8.802c0.085 1.771-0.768 3.456-2.253 4.454l-37.103 24.998 40.35 32.939 1.152 1.327c0.431 0.721 0.687 1.549 0.725 2.415l1.647 38.545 45.261 38.101-0.956-114.031zM262.75 619.81l108.13 101.867-22.817-155.925-116.621-97.161 31.308 151.219zM211.749 373.624l122.15 95.197-32.385-221.107-132.939-82.661 43.174 208.57zM771.017 535.59l-9.429 108.937 80.265-63.983 14.31-105.899-85.146 60.945zM603.281 770.701l101.777-81.178 6.784-111.629-109.508 78.332 0.947 114.475zM541.303 820.079l-4.988-116.663-142.804 102.17 17.35 118.413 130.442-103.919zM311.884 247.935l32.949 224.897 177.655-92.443-8.977-209.929-201.626 77.476zM358.409 565.794l23.548 160.887 150.967-101.705-6.601-154.761-167.915 95.578z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "linode"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2006,
+            "id": 556,
+            "prevSize": 24,
+            "code": 59612,
+            "name": "linode"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 732
+    }, {
+        "icon": {
+            "paths": [
+                "M562.287 618.667c-27.772 32.401-72.802 32.401-100.574 0l-144.082-169.668c-12.181 32.213-18.964 67.989-18.964 105.668 0 71.194 24.218 135.599 63.308 182.003 65.626 4.322 119.788 29.517 140.724 73.758 3.085 0.158 6.187 0.239 18.748-0.009 20.787-42.889 73.796-66.496 138.202-70.967 40.482-46.592 65.685-112.158 65.685-184.785 0-37.679-6.784-73.455-18.965-105.668l-144.081 169.668zM853.333 885.333c0 23.565-29.769 53.333-53.333 53.333h-234.667c-23.565 0-53.333-29.769-53.333-53.333 0 23.565-29.769 53.333-53.333 53.333h-234.667c-23.564 0-53.334-29.769-53.334-53.333 0-55.543 40.195-104.017 98.24-132.318-34.985-55.902-55.573-124.378-55.573-198.349-42.667 85.333-98.261 109.252-124.283 85.333s-12.537-92.535 43.278-153.254c31.51-34.278 80.456-76.196 115.761-92.029 13.654-29.363 30.95-56.177 51.199-79.654l-0.621-16.394c0-117.821 95.513-213.333 213.334-213.333 117.82 0 213.333 95.512 213.333 213.333l-0.623 16.394c20.25 23.477 37.547 50.291 51.2 79.654 35.307 15.833 84.25 57.751 115.763 92.029 55.812 60.719 69.299 129.335 43.277 153.254s-81.617 0-124.284-85.333c0 74.714-21.005 143.817-56.631 200.026 58.615 27.328 99.298 74.761 99.298 130.641zM421.49 384c-17.673 20.619-17.673 54.050 0 74.666l53.334 64c17.673 20.621 46.327 20.621 64 0l53.333-64c17.673-20.617 17.673-54.048 0-74.666h-170.668zM426.667 224c-23.564 0-42.667 27.538-42.667 74.667s19.102 74.667 42.667 74.667c23.565 0 42.667-27.538 42.667-74.667s-19.102-74.667-42.667-74.667zM597.333 224c-23.565 0-42.667 27.538-42.667 74.667s19.102 74.667 42.667 74.667c23.565 0 42.667-27.538 42.667-74.667s-19.102-74.667-42.667-74.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "linux"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2007,
+            "id": 555,
+            "prevSize": 24,
+            "code": 59613,
+            "name": "linux"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 733
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 725.248c-47.147 0-85.333-38.225-85.333-85.333 0-47.104 38.187-85.333 85.333-85.333 47.104 0 85.333 38.229 85.333 85.333 0 47.108-38.229 85.333-85.333 85.333zM767.974 853.248v-426.665h-512v426.665h512zM767.974 341.25c47.104 0 85.333 38.229 85.333 85.333v426.665c0 47.108-38.229 85.333-85.333 85.333h-512c-47.147 0-85.333-38.225-85.333-85.333v-426.665c0-47.104 38.187-85.333 85.333-85.333h42.667v-85.333c0-117.802 95.53-213.333 213.333-213.333s213.333 95.531 213.333 213.333v85.333h42.667zM512 128c-70.694 0-128 57.307-128 128v85.333h256v-85.333c0-70.693-57.31-128-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "lock-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2008,
+            "id": 554,
+            "prevSize": 24,
+            "code": 59614,
+            "name": "lock-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 734
+    }, {
+        "icon": {
+            "paths": [
+                "M768 853.329v-426.666h-512v426.666h512zM768 341.33c47.104 0 85.333 38.229 85.333 85.333v426.666c0 47.104-38.229 85.333-85.333 85.333h-512c-47.147 0-85.333-38.229-85.333-85.333v-426.666c0-47.104 38.187-85.333 85.333-85.333l384 0.003v-85.333c0-70.692-57.306-128-128-128s-128 57.308-128 128l-85.333-0.003c0-117.802 95.53-213.333 213.333-213.333s213.333 95.531 213.333 213.333v85.333h42.667zM512 725.329c-47.147 0-85.333-38.229-85.333-85.333s38.187-85.333 85.333-85.333c47.104 0 85.333 38.229 85.333 85.333s-38.229 85.333-85.333 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "lock-unlocked-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2009,
+            "id": 553,
+            "prevSize": 24,
+            "code": 59615,
+            "name": "lock-unlocked-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 735
+    }, {
+        "icon": {
+            "paths": [
+                "M768 341.333c47.104 0 85.333 38.229 85.333 85.333v426.667c0 47.104-38.229 85.333-85.333 85.333h-512c-47.147 0-85.333-38.229-85.333-85.333v-426.667c0-47.104 38.187-85.333 85.333-85.333l384 0.004v-85.333c0-70.693-57.306-128-128-128s-128 57.307-128 128l-85.333-0.004c0-117.802 95.53-213.333 213.333-213.333s213.333 95.531 213.333 213.333v85.333h42.667zM512 725.333c47.104 0 85.333-38.229 85.333-85.333s-38.229-85.333-85.333-85.333c-47.147 0-85.333 38.229-85.333 85.333s38.187 85.333 85.333 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "lock-unlocked"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2010,
+            "id": 552,
+            "prevSize": 24,
+            "code": 59616,
+            "name": "lock-unlocked"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 736
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 725.248c47.147 0 85.333-38.225 85.333-85.333 0-47.104-38.187-85.333-85.333-85.333-47.104 0-85.333 38.229-85.333 85.333 0 47.108 38.229 85.333 85.333 85.333zM767.974 341.254c47.104 0 85.333 38.229 85.333 85.333v426.665c0 47.104-38.229 85.333-85.333 85.333h-512.001c-47.104 0-85.333-38.229-85.333-85.333v-426.665c0-47.104 38.23-85.333 85.333-85.333h42.667v-85.333c0-117.802 95.531-213.333 213.334-213.333s213.333 95.531 213.333 213.333v85.333h42.667zM512 128c-70.694 0-128 57.308-128 128v85.333h256v-85.333c0-70.692-57.306-128-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "lock"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2011,
+            "id": 551,
+            "prevSize": 24,
+            "code": 59617,
+            "name": "lock"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 737
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 736v-138.667h-298.666v-170.667h298.666v-138.667l224 224-224 224zM341.333 85.335l384 0.001c47.125 0 85.333 38.204 85.333 85.332v682.665c0 47.13-38.208 85.333-85.333 85.333h-384c-47.128 0-85.333-38.204-85.333-85.333l0-170.667h85.333v170.667h384v-682.665l-384-0v170.666h-85.333l-0-170.666c0-47.128 38.205-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "login"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2012,
+            "id": 550,
+            "prevSize": 24,
+            "code": 59618,
+            "name": "login"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 738
+    }, {
+        "icon": {
+            "paths": [
+                "M725.329 736v-138.667h-298.663v-170.667h298.663v-138.667l224 224-224 224zM554.667 85.334c47.13 0 85.333 38.205 85.333 85.333v170.666h-85.333v-170.666l-384 0.001v682.665h384v-170.667h85.333v170.667c0 47.13-38.204 85.333-85.333 85.333h-384c-47.128 0-85.333-38.204-85.333-85.333v-682.665c0-47.128 38.205-85.332 85.333-85.332l384-0.002z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "logout"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2013,
+            "id": 549,
+            "prevSize": 24,
+            "code": 59619,
+            "name": "logout"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 739
+    }, {
+        "icon": {
+            "paths": [
+                "M512 256c-258.987 0-469.333 210.347-469.333 469.333h85.333c0-211.627 172.373-384 384-384s384 172.373 384 384h85.333c0-258.987-210.347-469.333-469.333-469.333zM512 426.667c-164.693 0-298.667 133.973-298.667 298.667h85.333c0-117.76 95.573-213.333 213.333-213.333s213.333 95.573 213.333 213.333h85.333c0-164.693-133.973-298.667-298.667-298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "looks"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2014,
+            "id": 548,
+            "prevSize": 24,
+            "code": 59620,
+            "name": "looks"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 740
+    }, {
+        "icon": {
+            "paths": [
+                "M512 853.333c-188.16 0-341.333-153.173-341.333-341.333s153.173-341.333 341.333-341.333c188.16 0 341.333 153.173 341.333 341.333s-153.173 341.333-341.333 341.333zM512 85.333c-235.093 0-426.667 191.573-426.667 426.667s191.573 426.667 426.667 426.667h341.333c46.933 0 85.333-38.4 85.333-85.333v-341.333c0-235.093-191.573-426.667-426.667-426.667zM554.667 298.667h-85.333v170.667h-170.667v85.333h170.667v170.667h85.333v-170.667h170.667v-85.333h-170.667v-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "loupe"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2015,
+            "id": 547,
+            "prevSize": 24,
+            "code": 59621,
+            "name": "loupe"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 741
+    }, {
+        "icon": {
+            "paths": [
+                "M527.087 74.537l331.866 331.869-271.526 271.529-60.339-60.339 211.187-211.19-271.531-271.529 60.343-60.34zM677.935 406.406l-60.339 60.338-181.022-181.017-211.188 211.191-60.34-60.343 271.528-271.527 241.361 241.359zM436.574 346.066l60.339 60.34-211.187 211.19 271.531 271.526-60.343 60.339-331.867-331.866 271.528-271.53zM346.065 617.596l60.34-60.339 181.021 181.018 211.187-211.187 60.339 60.339-271.526 271.526-241.361-241.357z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "lumx"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2016,
+            "id": 546,
+            "prevSize": 24,
+            "code": 59622,
+            "name": "lumx"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 742
+    }, {
+        "icon": {
+            "paths": [
+                "M128 298.667v256c0 212.096 171.904 384 384 384s384-171.904 384-384v-256h-170.667v256c0 117.803-95.531 213.333-213.333 213.333s-213.333-95.531-213.333-213.333v-256zM725.333 213.333h170.667v-128h-170.667zM128 213.333h170.667v-128h-170.667zM554.667 64l-170.667 320h85.333v234.667l170.667-320h-85.333v-234.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "magnet-on"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2017,
+            "id": 545,
+            "prevSize": 24,
+            "code": 59623,
+            "name": "magnet-on"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 743
+    }, {
+        "icon": {
+            "paths": [
+                "M128 298.667v256c0 212.096 171.904 384 384 384s384-171.904 384-384v-256h-170.667v256c0 117.803-95.531 213.333-213.333 213.333s-213.333-95.531-213.333-213.333v-256zM725.333 213.333h170.667v-128h-170.667zM128 213.333h170.667v-128h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "magnet"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2018,
+            "id": 544,
+            "prevSize": 24,
+            "code": 59624,
+            "name": "magnet"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 744
+    }, {
+        "icon": {
+            "paths": [
+                "M384 85.333c164.949 0 298.667 133.718 298.667 298.667 0 67.085-22.118 129.007-59.46 178.867l34.466 34.466h24.994l256 256-85.333 85.333-256-256v-24.994l-34.466-34.466c-49.86 37.342-111.782 59.46-178.867 59.46-164.949 0-298.667-133.717-298.667-298.667s133.718-298.667 298.667-298.667zM213.333 341.334v85.333h341.333v-85.333h-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "magnify-minus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2019,
+            "id": 543,
+            "prevSize": 24,
+            "code": 59625,
+            "name": "magnify-minus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 745
+    }, {
+        "icon": {
+            "paths": [
+                "M384 85.333c164.949 0 298.667 133.718 298.667 298.667 0 67.085-22.118 129.007-59.46 178.867l34.466 34.466h24.994l256 256-85.333 85.333-256-256v-24.994l-34.466-34.466c-49.86 37.342-111.782 59.46-178.867 59.46-164.949 0-298.667-133.717-298.667-298.667s133.718-298.667 298.667-298.667zM341.333 213.334v128h-128v85.333h128v128h85.333v-128h128v-85.333h-128v-128h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "magnify-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2020,
+            "id": 542,
+            "prevSize": 24,
+            "code": 59626,
+            "name": "magnify-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 746
+    }, {
+        "icon": {
+            "paths": [
+                "M405.333 128c153.169 0 277.333 124.166 277.333 277.333 0 68.902-25.131 131.938-66.722 180.442l11.558 11.558h33.83l213.333 213.333-64 64-213.333-213.333v-33.83l-11.558-11.558c-48.503 41.591-111.539 66.722-180.442 66.722-153.167 0-277.333-124.164-277.333-277.333 0-153.167 124.166-277.333 277.333-277.333zM405.333 213.334c-106.039 0-192 85.961-192 192s85.961 192 192 192c106.039 0 192-85.961 192-192s-85.961-192-192-192z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "magnify"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2021,
+            "id": 541,
+            "prevSize": 24,
+            "code": 59627,
+            "name": "magnify"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 747
+    }, {
+        "icon": {
+            "paths": [
+                "M659.405 508.245c-4.855-94.365-74.889-151.108-159.467-151.108h-3.187c-97.606 0-151.742 76.761-151.742 163.942 0 97.638 65.494 159.296 151.358 159.296 95.744 0 158.703-70.123 163.255-153.075zM497.229 272.73c65.225 0 126.532 28.815 171.563 73.948v0.175c0-21.674 14.571-38.003 34.833-38.003l5.116-0.034c31.671 0 38.165 29.976 38.165 39.461l0.166 336.941c-2.236 22.046 22.758 33.425 36.621 19.298 54.106-55.603 118.822-285.828-33.63-419.224-142.093-124.372-332.742-103.869-434.132-33.984-107.785 74.343-176.755 238.856-109.756 393.377 73.028 168.576 282.017 218.825 406.224 168.704 62.899-25.395 91.947 59.635 26.624 87.411-98.705 42.065-373.417 37.828-501.742-184.478-86.703-150.11-82.086-414.23 147.869-551.066 175.914-104.669 407.837-75.678 547.686 70.378 146.189 152.684 137.668 438.588-4.928 549.807-64.606 50.475-160.559 1.323-159.945-72.273l-0.661-24.064c-44.992 44.642-104.849 70.686-170.074 70.686-128.865 0-242.251-113.399-242.251-242.214 0-130.157 113.386-244.846 242.251-244.846z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "mail-ru"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2022,
+            "id": 540,
+            "prevSize": 24,
+            "code": 59628,
+            "name": "mail-ru"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 748
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 853.252c-188.502 0-341.334-152.832-341.334-341.333 0-188.503 152.832-341.335 341.334-341.335s341.333 152.832 341.333 341.335c0 188.501-152.832 341.333-341.333 341.333zM511.974 85.251c-235.648 0-426.667 191.019-426.667 426.668 0 235.648 191.019 426.667 426.667 426.667s426.667-191.019 426.667-426.667c0-235.649-191.019-426.668-426.667-426.668zM511.974 533.252c-35.328 0-64-28.672-64-64 0-35.371 28.672-64.001 64-64.001 35.371 0 64 28.631 64 64.001 0 35.328-28.629 64-64 64zM511.974 307.117c-89.516 0-162.134 72.576-162.134 162.135 0 128 162.134 277.333 162.134 277.333s162.133-149.333 162.133-277.333c0-89.559-72.619-162.135-162.133-162.135z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "map-marker-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2023,
+            "id": 539,
+            "prevSize": 24,
+            "code": 59629,
+            "name": "map-marker-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 749
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 490.667c58.923 0 106.667-47.744 106.667-106.667s-47.744-106.667-106.667-106.667c-58.88 0-106.667 47.745-106.667 106.667s47.787 106.667 106.667 106.667zM597.333 85.333c164.907 0 298.667 133.717 298.667 298.667 0 224-298.667 554.667-298.667 554.667s-298.667-330.667-298.667-554.667c0-164.95 133.76-298.667 298.667-298.667zM213.333 384c-0.667 191.001 216.666 455.001 256.269 504.085l-42.935 50.581c0 0-298.666-330.667-298.666-554.667 0-135.336 90.043-249.647 213.454-286.33-78.63 70.317-128.121 172.544-128.121 286.33z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "map-marker-multiple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2024,
+            "id": 538,
+            "prevSize": 24,
+            "code": 59630,
+            "name": "map-marker-multiple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 750
+    }, {
+        "icon": {
+            "paths": [
+                "M698.598 686.925l-559.019-558.979-54.272 54.315 135.595 135.594c-4.821 21.247-7.595 43.307-7.595 66.047 0 224 298.667 554.667 298.667 554.667s71.168-78.976 144-185.643l143.019 142.976 54.315-54.31zM511.974 277.235c58.923 0 106.667 47.789 106.667 106.667 0 31.445-13.867 59.435-35.499 78.933l154.965 154.97c41.685-79.322 72.533-162.052 72.533-233.903 0-164.948-133.76-298.667-298.667-298.667-84.437 0-160.555 35.2-214.869 91.565l135.936 135.935c19.499-21.633 47.518-35.5 78.933-35.5z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "map-marker-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2025,
+            "id": 537,
+            "prevSize": 24,
+            "code": 59631,
+            "name": "map-marker-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 751
+    }, {
+        "icon": {
+            "paths": [
+                "M511.97 85.252c141.35 0 256 113.658 256 253.866 0 190.401-256 471.468-256 471.468s-256-281.067-256-471.468c0-140.208 114.651-253.866 256-253.866zM512 256c-47.13 0-85.333 38.205-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333zM853.333 810.667c0 94.255-152.819 170.667-341.333 170.667s-341.333-76.412-341.333-170.667c0-54.993 52.021-103.91 132.801-135.125l27.011 38.579c-46.032 19.285-74.479 45.862-74.479 75.213 0 58.91 114.615 106.667 256 106.667s256-47.757 256-106.667c0-29.35-28.446-55.927-74.479-75.217l27.012-38.575c80.777 31.215 132.8 80.132 132.8 135.125z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "map-marker-radius"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2026,
+            "id": 536,
+            "prevSize": 24,
+            "code": 59632,
+            "name": "map-marker-radius"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 752
+    }, {
+        "icon": {
+            "paths": [
+                "M511.97 490.586c-58.88 0-106.667-47.744-106.667-106.665s47.787-106.667 106.667-106.667c58.923 0 106.667 47.745 106.667 106.667s-47.744 106.665-106.667 106.665zM511.97 85.254c-164.906 0-298.666 133.716-298.666 298.667 0 223.999 298.666 554.665 298.666 554.665s298.667-330.667 298.667-554.665c0-164.951-133.76-298.667-298.667-298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "map-marker"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2027,
+            "id": 535,
+            "prevSize": 24,
+            "code": 59633,
+            "name": "map-marker"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 753
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 810.586l-256-89.899v-507.436l256 89.898zM874.641 127.918c-2.347 0-4.565 0.256-6.656 1.066l-228.011 88.534-256-89.6-240.512 80.981c-8.96 2.987-15.488 10.71-15.488 20.48v645.207c0 11.776 9.557 21.333 21.333 21.333 2.346 0 4.565-0.256 6.699-1.067l227.968-88.533 256 89.6 240.555-80.981c8.96-3.115 15.445-10.709 15.445-20.523v-645.164c0-11.818-9.515-21.333-21.333-21.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "map"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2028,
+            "id": 534,
+            "prevSize": 24,
+            "code": 59634,
+            "name": "map"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 754
+    }, {
+        "icon": {
+            "paths": [
+                "M624.384 289.176l-73.903-42.667 238.852-157.702-17.148 285.702-73.903-42.667-325.716 564.157h-98.534l350.351-606.824zM746.667 512c82.475 0 149.333 74.18 149.333 192s-66.859 192-149.333 192c-82.475 0-149.333-74.18-149.333-192s66.859-192 149.333-192zM746.667 597.333c-35.345 0-64 35.972-64 106.667s28.655 106.667 64 106.667c35.345 0 64-35.972 64-106.667s-28.655-106.667-64-106.667zM320 213.334c82.474 0 149.333 74.179 149.333 192s-66.859 192-149.333 192c-82.475 0-149.333-74.18-149.333-192s66.859-192 149.333-192zM320 298.667c-35.346 0-64 35.974-64 106.666 0 70.694 28.654 106.667 64 106.667s64-35.972 64-106.667c0-70.692-28.654-106.666-64-106.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "margin"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2029,
+            "id": 533,
+            "prevSize": 24,
+            "code": 59635,
+            "name": "margin"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 755
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 682.667v-341.333h85.333l128 128 128-128h85.334v341.333h-85.334v-220.655l-128 128-128-128v220.655h-85.333zM682.667 341.334h128v170.666h106.667l-170.667 192-170.667-192h106.667v-170.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "markdown"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2030,
+            "id": 532,
+            "prevSize": 24,
+            "code": 59636,
+            "name": "markdown"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 756
+    }, {
+        "icon": {
+            "paths": [
+                "M426.641 682.586l-213.333-213.333 60.331-60.332 153.003 153.004 323.669-323.671 60.331 60.331zM810.641 42.584h-597.333c-47.147 0-84.907 38.187-84.907 85.333l-0.427 551.895c0 29.44 14.933 55.424 37.632 70.741l346.155 230.699 346.172-230.699c22.682-15.317 37.623-41.301 37.623-70.741l0.418-551.895c0-47.147-38.251-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "marker-check"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2031,
+            "id": 531,
+            "prevSize": 24,
+            "code": 59637,
+            "name": "marker-check"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 757
+    }, {
+        "icon": {
+            "paths": [
+                "M319.974 298.584l-85.333-85.333h554.667l-85.333 85.333zM469.308 554.586v256h-213.333v85.333h512v-85.333h-213.333v-256l341.333-341.335v-85.333h-768v85.333l341.333 341.335z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "martini"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2032,
+            "id": 530,
+            "prevSize": 24,
+            "code": 59638,
+            "name": "martini"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 758
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 708.83v-52.979l256-147.802v-199.482l-213.333 123.168-213.333-123.168v246.1l-42.667 24.636-42.667-24.636v-341.333l45.525-26.284 253.142 146.152 253.141-146.152 45.525 26.284v343.983l-216.55 125.026 172.809 99.772 214.409-123.789v-188.992l42.667-24.631 42.667 24.631v238.259l-299.742 173.056-297.591-171.819zM938.667 416l-42.667 24.635-42.667-24.635v-50.033l42.667-24.634 42.667 24.634v50.033z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "material-ui"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2033,
+            "id": 529,
+            "prevSize": 24,
+            "code": 59639,
+            "name": "material-ui"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 759
+    }, {
+        "icon": {
+            "paths": [
+                "M878.771 285.391c-37.141-45.869-94.498-72.057-157.585-72.057h-595.148l71.181 152.51-95.129 444.823h155.931l95.191-444.823 133.204-0.059-95.093 444.882h155.927l95.1-444.882h78.835c17.058 0 30.929 5.538 38.946 15.517 8.188 9.98 10.684 24.665 7.078 41.296l-83.021 388.069h155.908l76.233-356.186c13.15-61.679-0.572-123.347-37.559-169.091z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "maxcdn"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2034,
+            "id": 528,
+            "prevSize": 24,
+            "code": 59640,
+            "name": "maxcdn"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 760
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 302.933h-46.933c-12.8 0-42.667 12.8-42.667 25.6v413.867c0 12.8 34.133 21.333 42.667 21.333h46.933v89.6h-302.933v-89.6h59.733v-426.667h-12.8l-145.067 516.267h-115.2l-145.067-516.267h-8.533v426.667h59.733v89.6h-243.2v-89.6h34.133c12.8 0 25.6-8.533 25.6-21.333v-413.867c0-12.8-12.8-25.6-25.6-25.6h-34.133v-89.6h315.733l102.4 366.933h4.267l102.4-366.933h328.533v89.6z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "medium"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2035,
+            "id": 527,
+            "prevSize": 24,
+            "code": 59641,
+            "name": "medium"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 761
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 725.252h-426.667v-426.668h426.667zM895.974 469.252v-85.335h-85.333v-85.333c0-47.104-38.229-85.333-85.333-85.333h-85.333v-85.333h-85.333v85.333h-85.333v-85.333h-85.333v85.333h-85.333c-47.147 0-85.333 38.229-85.333 85.333v85.333h-85.333v85.335h85.333v85.333h-85.333v85.333h85.333v85.333c0 47.147 38.187 85.333 85.333 85.333h85.333v85.333h85.333v-85.333h85.333v85.333h85.333v-85.333h85.333c47.104 0 85.333-38.187 85.333-85.333v-85.333h85.333v-85.333h-85.333v-85.333zM554.641 554.586h-85.333v-85.333h85.333zM639.974 383.918h-256v256.001h256v-256.001z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "memory"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2036,
+            "id": 526,
+            "prevSize": 24,
+            "code": 59642,
+            "name": "memory"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 762
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 426.667l213.333 213.333 213.333-213.333h-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "menu-down"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2037,
+            "id": 525,
+            "prevSize": 24,
+            "code": 59643,
+            "name": "menu-down"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 763
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 298.667l-213.333 213.333 213.333 213.333v-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "menu-left"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2038,
+            "id": 524,
+            "prevSize": 24,
+            "code": 59644,
+            "name": "menu-left"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 764
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 725.333l213.333-213.333-213.333-213.333v426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "menu-right"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2039,
+            "id": 523,
+            "prevSize": 24,
+            "code": 59645,
+            "name": "menu-right"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 765
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 640l213.333-213.333 213.333 213.333h-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "menu-up"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2040,
+            "id": 522,
+            "prevSize": 24,
+            "code": 59646,
+            "name": "menu-up"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 766
+    }, {
+        "icon": {
+            "paths": [
+                "M128 256h768v85.333h-768v-85.333zM128 469.333h768v85.333h-768v-85.333zM128 682.667h768v85.333h-768v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "menu"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2041,
+            "id": 521,
+            "prevSize": 24,
+            "code": 59647,
+            "name": "menu"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 767
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 426.584h-85.333v-170.667h85.333zM554.641 597.252h-85.333v-85.333h85.333zM853.308 85.251h-682.668c-47.104 0-84.864 38.186-84.864 85.333l-0.469 768.001 170.667-170.667h597.334c47.083 0 85.333-38.229 85.333-85.333v-512.001c0-47.147-38.251-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "message-alert"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2042,
+            "id": 520,
+            "prevSize": 24,
+            "code": 59648,
+            "name": "message-alert"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 768
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 597.252h-320l85.333-85.333h234.667zM255.974 597.252v-105.6l293.462-293.506c8.363-8.32 21.845-8.32 30.208 0l75.392 75.435c8.363 8.32 8.363 21.845 0 30.165l-293.461 293.505zM853.308 85.251h-682.667c-47.104 0-84.906 38.187-84.906 85.333l-0.427 768.001 170.667-170.667h597.334c47.104 0 85.333-38.187 85.333-85.333v-512.001c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "message-draw"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2043,
+            "id": 519,
+            "prevSize": 24,
+            "code": 59649,
+            "name": "message-draw"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 769
+    }, {
+        "icon": {
+            "paths": [
+                "M213.307 597.252l149.333-192.001 106.667 128.257 149.333-192.257 192 256.001zM853.308 85.251h-682.667c-47.104 0-84.864 38.186-84.864 85.333l-0.469 768.001 170.667-170.667h597.334c47.104 0 85.333-38.229 85.333-85.333v-512.001c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "message-image"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2044,
+            "id": 518,
+            "prevSize": 24,
+            "code": 59650,
+            "name": "message-image"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 770
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 469.252h-85.333v-85.335h85.333zM554.641 469.252h-85.333v-85.335h85.333zM383.974 469.252h-85.333v-85.335h85.333zM853.308 85.251h-682.667c-47.104 0-84.906 38.186-84.906 85.333l-0.427 768.001 170.667-170.667h597.334c47.104 0 85.333-38.229 85.333-85.333v-512.001c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "message-processing"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2045,
+            "id": 517,
+            "prevSize": 24,
+            "code": 59651,
+            "name": "message-processing"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 771
+    }, {
+        "icon": {
+            "paths": [
+                "M938.202 170.583c0-47.104-37.803-85.333-84.907-85.333h-682.665c-47.104 0-85.333 38.229-85.333 85.333v511.998c0 47.108 38.229 85.333 85.333 85.333h597.332l170.667 170.667-0.427-767.998z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "message-reply"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2046,
+            "id": 516,
+            "prevSize": 24,
+            "code": 59652,
+            "name": "message-reply"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 772
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 85.251c47.083 0 85.333 38.187 85.333 85.333v512.001c0 47.104-38.251 85.333-85.333 85.333h-597.334l-170.667 170.667 0.469-768.001c0-47.147 37.76-85.333 84.864-85.333h682.668zM170.667 170.667v561.988l49.987-49.988h632.68v-512h-682.667zM256 298.667l512 0v85.333h-512v-85.333zM256 469.333h384v85.333h-384v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "message-text-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2047,
+            "id": 515,
+            "prevSize": 24,
+            "code": 59653,
+            "name": "message-text-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 773
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 85.251c47.083 0 85.333 38.187 85.333 85.333v512.001c0 47.104-38.251 85.333-85.333 85.333h-597.334l-170.667 170.667 0.469-768.001c0-47.147 37.76-85.333 84.864-85.333h682.668zM213.321 213.292l-0 85.333h597.333v-85.333h-597.333zM213.321 383.959v85.332h341.333v-85.332h-341.333zM213.321 554.624v85.333h426.667v-85.333h-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "message-text"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2048,
+            "id": 514,
+            "prevSize": 24,
+            "code": 59654,
+            "name": "message-text"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 774
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 597.252l-170.667-136.533v136.533h-341.333v-341.335h341.333v136.533l170.667-136.533zM853.308 85.251h-682.667c-47.104 0-84.864 38.186-84.864 85.333l-0.469 768.001 170.667-170.667h597.333c47.104 0 85.333-38.229 85.333-85.333v-512.001c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "message-video"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2049,
+            "id": 513,
+            "prevSize": 24,
+            "code": 59655,
+            "name": "message-video"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 775
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 85.251h-682.668c-47.104 0-84.864 38.186-84.864 85.333l-0.469 768.001 170.667-170.667h597.334c47.083 0 85.333-38.229 85.333-85.333v-512.001c0-47.147-38.251-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "message"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2050,
+            "id": 512,
+            "prevSize": 24,
+            "code": 59656,
+            "name": "message"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 776
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 426.583h-72.576c0 127.998-108.245 217.598-226.091 217.598s-226.134-89.6-226.134-217.598h-72.533c0 145.705 116.011 265.939 256.001 286.637v140.028h85.333v-140.028c139.904-20.698 256-140.932 256-286.637zM639.974 1023.915h85.333v-85.333h-85.333zM469.308 1023.915h85.333v-85.333h-85.333zM511.974 554.581c70.699 0 127.573-57.34 127.573-127.998l0.384-256c0-70.742-57.259-128-127.957-128-70.656 0-128.001 57.258-128.001 128v256c0 70.658 57.345 127.998 128.001 127.998zM298.64 1023.915h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "microphone-dots"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2051,
+            "id": 511,
+            "prevSize": 24,
+            "code": 59657,
+            "name": "microphone-dots"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 777
+    }, {
+        "icon": {
+            "paths": [
+                "M810.671 469.312c0 50.773-14.336 98.347-38.613 139.819l-52.437-52.437c11.819-26.24 18.517-55.637 18.517-87.381h72.533zM639.296 476.365l-255.232-255.231v-7.809c0-70.741 57.259-128 127.957-128 70.613 0 128 57.259 128 128v256l-0.725 7.040zM182.314 128l713.686 713.685-54.315 54.315-178.603-178.645c-33.067 19.371-69.76 32.853-108.416 38.571v140.075h-85.333v-140.075c-139.904-20.651-256-140.928-256-286.592h72.576c0 128 108.245 217.557 226.090 217.557 34.56 0 68.181-7.893 98.603-22.016l-70.827-70.784-27.776 3.243c-70.656 0-127.574-57.344-127.574-128l-0.043-30.677-256.384-256.342 54.314-54.314z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "microphone-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2052,
+            "id": 510,
+            "prevSize": 24,
+            "code": 59658,
+            "name": "microphone-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 778
+    }, {
+        "icon": {
+            "paths": [
+                "M738.057 469.248c0 128-108.245 217.6-226.091 217.6s-226.133-89.6-226.133-217.6h-72.533c0 145.707 116.011 265.941 256 286.639v140.028h85.333v-140.028c139.904-20.698 256-140.932 256-286.639zM460.766 208.984c0-28.247 22.997-51.2 51.2-51.2s51.157 23.083 51.157 51.2l-0.341 264.53c0 28.25-22.827 51.2-50.816 51.2-28.203 0-51.2-22.95-51.2-51.2zM511.966 597.248c70.699 0 127.573-57.34 127.573-128l0.384-255.998c0-70.742-57.259-128-127.957-128-70.656 0-128 57.258-128 128v255.998c0 70.66 57.344 128 128 128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "microphone-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2053,
+            "id": 509,
+            "prevSize": 24,
+            "code": 59659,
+            "name": "microphone-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 779
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 426.667h-72.533c0 128-108.373 217.6-226.133 217.6s-226.133-89.6-226.133-217.6h-72.533c0 145.493 116.053 265.813 256 286.72v139.947h85.333v-139.947c139.947-20.907 256-141.227 256-286.72zM640 1024h85.333v-85.333h-85.333zM469.333 1024h85.333v-85.333h-85.333zM512 554.667c70.827 0 127.573-57.173 127.573-128l0.427-256c0-70.827-57.173-128-128-128s-128 57.173-128 128v256c0 70.827 57.173 128 128 128zM298.667 1024h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "microphone-settings"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2054,
+            "id": 508,
+            "prevSize": 24,
+            "code": 59660,
+            "name": "microphone-settings"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 780
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-116.898-116.902c-5.722 89.084-79.787 159.569-170.313 159.569-94.257 0-170.667-76.412-170.667-170.667v-42.667h-42.667l-35.807-349.116c-14.743-14.856-26.772-32.408-35.282-51.852l-142.244-142.244zM384 128c94.255 0 170.667 76.41 170.667 170.667h-178.232l-116.838-116.838c31.131-33.135 75.351-53.829 124.403-53.829zM505.139 418.884l-0.789 7.698-85.248-85.249h130.189c-7.663 29.769-23.155 56.395-44.151 77.551zM469.333 768h-42.667v42.667c-0 47.13 38.204 85.333 85.333 85.333s85.333-38.204 85.333-85.333v-73.877l-113.19-113.19-14.81 144.401zM768 426.667h85.333l-42.667 42.667 42.667 42.667h-85.333c-47.13 0-85.333 38.204-85.333 85.333v7.565l-72.533-72.533c25.557-62.033 86.613-105.698 157.867-105.698zM341.333 512c0 23.565 19.102 42.667 42.667 42.667 8.855 0 17.079-2.697 23.897-7.313l-59.249-59.251c-4.618 6.818-7.315 15.044-7.315 23.898z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "microphone-variant-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2055,
+            "id": 507,
+            "prevSize": 24,
+            "code": 59661,
+            "name": "microphone-variant-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 781
+    }, {
+        "icon": {
+            "paths": [
+                "M384 128c94.255 0 170.667 76.41 170.667 170.667h-341.333c0-94.257 76.41-170.667 170.667-170.667zM505.139 418.884l-35.806 349.116h-42.667v42.667c-0 47.13 38.204 85.333 85.333 85.333s85.333-38.204 85.333-85.333v-213.333c0-94.255 76.412-170.667 170.667-170.667h85.333l-42.667 42.667 42.667 42.667h-85.333c-47.13 0-85.333 38.204-85.333 85.333v213.333c0 94.255-76.412 170.667-170.667 170.667-94.256 0-170.667-76.412-170.667-170.667v-42.667h-42.667l-35.807-349.116c-20.996-21.156-36.488-47.782-44.15-77.551h330.58c-7.663 29.769-23.155 56.395-44.151 77.551zM384 469.333c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.564 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "microphone-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2056,
+            "id": 506,
+            "prevSize": 24,
+            "code": 59662,
+            "name": "microphone-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 782
+    }, {
+        "icon": {
+            "paths": [
+                "M511.996 85.345c70.694 0 128 57.306 128 127.998v255.994c0 70.694-57.306 128-128 128s-128.001-57.306-128.001-128v-255.994c0-70.693 57.306-127.998 128.001-127.998zM810.667 469.333c0 150.464-111.262 274.94-256 295.642v131.025h-85.333v-131.025c-144.738-20.702-256-145.178-256-295.642h85.333c0 117.82 95.512 213.333 213.333 213.333 117.82 0 213.333-95.514 213.333-213.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "microphone"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2057,
+            "id": 505,
+            "prevSize": 24,
+            "code": 59663,
+            "name": "microphone"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 783
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 554.581h-426.668v-85.333h426.668zM810.641 127.917h-597.335c-47.189 0-85.333 38.229-85.333 85.333v597.331c0 47.108 38.144 85.333 85.333 85.333h597.335c47.061 0 85.333-38.225 85.333-85.333v-597.331c0-47.104-38.272-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "minus-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2058,
+            "id": 504,
+            "prevSize": 24,
+            "code": 59664,
+            "name": "minus-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 784
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 853.261c-188.204 0-341.334-153.135-341.334-341.333 0-188.205 153.13-341.335 341.334-341.335s341.333 153.13 341.333 341.335c0 188.198-153.131 341.333-341.333 341.333zM511.974 85.259c-235.649 0-426.667 191.018-426.667 426.669 0 235.644 191.018 426.667 426.667 426.667s426.667-191.023 426.667-426.667c0-235.651-191.019-426.669-426.667-426.669zM298.641 554.594h426.667v-85.333h-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "minus-circle-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2059,
+            "id": 503,
+            "prevSize": 24,
+            "code": 59665,
+            "name": "minus-circle-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 785
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 554.581h-426.665v-85.333h426.665zM511.974 85.25c-235.647 0-426.665 191.018-426.665 426.665 0 235.652 191.018 426.667 426.665 426.667s426.667-191.014 426.667-426.667c0-235.646-191.019-426.665-426.667-426.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "minus-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2060,
+            "id": 502,
+            "prevSize": 24,
+            "code": 59666,
+            "name": "minus-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 786
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 469.312v-85.333h-341.333v85.333h341.333zM725.333 128c47.061 0 85.333 38.229 85.333 85.333v426.667c0 47.104-38.272 85.333-85.333 85.333h-170.667v85.333h42.667c23.565 0 42.667 19.102 42.667 42.667h298.667v85.333h-298.667c0 23.565-19.102 42.667-42.667 42.667h-170.667c-23.564 0-42.666-19.102-42.666-42.667h-298.667v-85.333h298.667c0-23.565 19.102-42.667 42.666-42.667h42.667v-85.333h-170.667c-47.189 0-85.333-38.229-85.333-85.333v-426.667c0-47.104 38.144-85.333 85.333-85.333h426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "minus-network"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2061,
+            "id": 501,
+            "prevSize": 24,
+            "code": 59667,
+            "name": "minus-network"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 787
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 554.581h-597.332l0.022-85.244 597.31-0.090v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "minus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2062,
+            "id": 500,
+            "prevSize": 24,
+            "code": 59668,
+            "name": "minus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 788
+    }, {
+        "icon": {
+            "paths": [
+                "M938.628 725.338v-426.666h-682.665v426.666h682.665zM938.628 213.338c47.104 0 85.333 38.229 85.333 85.333v426.666c0 47.147-38.229 85.333-85.333 85.333l-255.991-0.004v85.333h85.333v85.333h-341.335v-85.333h85.335v-85.333l-256.006 0.004c-47.148 0-85.333-38.187-85.333-85.333v-426.666c0-47.104 38.185-85.333 85.333-85.333h682.665zM85.333 128.078v511.999h-85.333v-511.999c0-47.104 38.186-85.333 85.333-85.333h768v85.333l-768 0z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "monitor-multiple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2063,
+            "id": 499,
+            "prevSize": 24,
+            "code": 59669,
+            "name": "monitor-multiple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 789
+    }, {
+        "icon": {
+            "paths": [
+                "M895.974 682.586h-768v-512.001h768zM895.974 85.251h-768c-47.147 0-85.333 38.229-85.333 85.333v512.001c0 47.147 38.186 85.333 85.333 85.333h298.667v85.333h-85.333v85.333h341.334v-85.333h-85.333v-85.333h298.667c47.104 0 85.333-38.187 85.333-85.333v-512.001c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "monitor"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2064,
+            "id": 498,
+            "prevSize": 24,
+            "code": 59670,
+            "name": "monitor"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 790
+    }, {
+        "icon": {
+            "paths": [
+                "M810.654 575.919c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.328 0 64 28.672 64 64s-28.672 64-64 64zM597.321 575.919c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.328 0 64 28.672 64 64s-28.672 64-64 64zM383.987 575.919c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.328 0 64 28.672 64 64s-28.672 64-64 64zM938.654 127.918h-640c-29.44 0-52.651 14.933-68.010 37.632l-230.656 346.156 230.656 346.155c15.36 22.741 41.344 38.059 70.784 38.059h637.227c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "more"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2065,
+            "id": 497,
+            "prevSize": 24,
+            "code": 59671,
+            "name": "more"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 791
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-51.699-51.699c-61.257 58.423-144.209 94.298-235.537 94.298-188.502 0-341.334-152.832-341.334-341.333v-170.667h159.168l-85.333-85.335h-73.835c0-23.011 2.279-45.486 6.623-67.212l-91.93-91.93zM469.308 45.541v338.389h-7.607l-214.836-214.834c54.141-66.591 132.921-112.368 222.443-123.555zM853.308 469.265v170.667c0 40.555-7.074 79.462-20.058 115.55l-286.217-286.217h306.274zM554.641 45.541c168.32 21.035 298.667 164.352 298.667 338.39h-298.667v-338.39z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "mouse-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2066,
+            "id": 496,
+            "prevSize": 24,
+            "code": 59672,
+            "name": "mouse-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 792
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-61.325-61.325c-37.252 62.289-105.365 103.991-183.219 103.991-117.82 0-213.334-95.514-213.334-213.333v-46.933c-97.376-19.767-170.666-105.856-170.666-209.067v-128h73.879l-159.212-159.212zM597.333 298.667h-170.667v-209.065c97.374 19.766 170.667 105.856 170.667 209.065zM341.333 89.602v173.963l-111.918-111.918c29.528-31.038 68.308-53.193 111.918-62.045zM597.333 512l-0.128 7.437-135.437-135.436h135.565v127.999zM426.667 721.067v46.933c0 70.694 57.306 128 128 128 54.583 0 101.193-34.167 119.595-82.283l-145.246-145.25c-28.13 26.082-63.305 44.672-102.349 52.599zM682.667 554.667c0-94.255 76.412-170.666 170.667-170.666h85.333l-42.667 42.666 42.667 42.667h-85.333c-47.13 0-85.333 38.204-85.333 85.333v135.565l-85.333-85.333v-50.231z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "mouse-variant-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2067,
+            "id": 495,
+            "prevSize": 24,
+            "code": 59673,
+            "name": "mouse-variant-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 793
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 298.667h-170.667v-209.066c97.374 19.766 170.667 105.857 170.667 209.066zM170.667 298.667c0-103.209 73.291-189.299 170.666-209.065v209.065h-170.666zM597.333 512c0 103.211-73.293 189.299-170.667 209.067v46.933c0 70.694 57.306 128 128 128 70.69 0 128-57.306 128-128v-213.333c0-94.255 76.412-170.666 170.667-170.666h85.333l-42.667 42.666 42.667 42.667h-85.333c-47.13 0-85.333 38.204-85.333 85.333v0 213.333c0 117.82-95.514 213.333-213.333 213.333s-213.334-95.514-213.334-213.333v-46.933c-97.376-19.767-170.666-105.856-170.666-209.067v-128h426.667v128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "mouse-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2068,
+            "id": 494,
+            "prevSize": 24,
+            "code": 59674,
+            "name": "mouse-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 794
+    }, {
+        "icon": {
+            "paths": [
+                "M469.308 45.541c-168.321 21.034-298.667 164.352-298.667 338.389h298.667zM170.641 639.932c0 188.501 152.832 341.333 341.334 341.333s341.333-152.832 341.333-341.333v-170.667h-682.667zM554.641 45.541v338.389h298.667c0-174.038-130.347-317.356-298.667-338.389z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "mouse"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2069,
+            "id": 493,
+            "prevSize": 24,
+            "code": 59675,
+            "name": "mouse"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 795
+    }, {
+        "icon": {
+            "paths": [
+                "M768 170.667l85.333 170.667h-128l-85.333-170.667h-85.333l85.333 170.667h-128l-85.333-170.667h-85.333l85.333 170.667h-128l-85.333-170.667h-42.667c-46.933 0-84.907 38.4-84.907 85.333l-0.427 512c0 46.933 38.4 85.333 85.333 85.333h682.667c46.933 0 85.333-38.4 85.333-85.333v-597.333h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "movie"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2070,
+            "id": 492,
+            "prevSize": 24,
+            "code": 59676,
+            "name": "movie"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 796
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 127.92c47.061 0 85.333 38.229 85.333 85.333v597.332c0 47.104-38.272 85.333-85.333 85.333h-597.333c-47.189 0-85.333-38.229-85.333-85.333v-597.332c0-47.104 38.144-85.333 85.333-85.333h597.333zM469.333 725.333h85.333v-139.499l120.725 69.7 42.667-73.899-120.751-69.717 120.751-69.713-42.667-73.903-120.725 69.7v-139.336h-85.333v139.366l-120.778-69.731-42.667 73.9 120.753 69.717-120.753 69.717 42.667 73.903 120.777-69.734v139.529z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "multiplication-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2071,
+            "id": 491,
+            "prevSize": 24,
+            "code": 59677,
+            "name": "multiplication-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 797
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 128h85.333l-0.324 310.144 268.676-154.748 42.667 73.901-268.352 154.563 268.753 155.537-42.667 73.899-269.231-155.81-0.32 310.515h-85.333l0.32-310.144-268.675 154.748-42.667-73.899 269.153-155.025-267.954-155.076 42.667-73.901 267.63 154.89 0.324-309.594z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "multiplication"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2072,
+            "id": 490,
+            "prevSize": 24,
+            "code": 59678,
+            "name": "multiplication"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 798
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 384h-128v234.667c0 58.88-47.787 106.667-106.667 106.667s-106.667-47.787-106.667-106.667c0-58.88 47.787-106.667 106.667-106.667 24.32 0 46.080 8.107 64 21.76v-235.093h170.667v85.333zM810.667 128.001c46.933 0 85.333 38.4 85.333 85.333v597.332c0 46.933-38.4 85.333-85.333 85.333h-597.334c-46.933 0-85.333-38.4-85.333-85.333v-597.332c0-46.933 38.4-85.333 85.333-85.333h597.334zM213.333 213.333v597.333h597.333v-597.333h-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "music-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2073,
+            "id": 489,
+            "prevSize": 24,
+            "code": 59679,
+            "name": "music-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 799
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 384h-128v234.667c0 58.88-47.787 106.667-106.667 106.667s-106.667-47.787-106.667-106.667c0-58.88 47.787-106.667 106.667-106.667 24.32 0 46.080 8.107 64 21.76v-235.093h170.667zM810.667 128.001h-597.334c-46.933 0-85.333 38.4-85.333 85.333v597.332c0 46.933 38.4 85.333 85.333 85.333h597.334c46.933 0 85.333-38.4 85.333-85.333v-597.332c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "music-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2074,
+            "id": 488,
+            "prevSize": 24,
+            "code": 59680,
+            "name": "music-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 800
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 384v-85.333h-170.667v235.093c-17.92-13.653-39.68-21.76-64-21.76-58.88 0-106.667 47.787-106.667 106.667s47.787 106.667 106.667 106.667c58.88 0 106.667-47.787 106.667-106.667v-234.667h128zM512 85.333c235.639 0 426.667 191.025 426.667 426.667 0 235.644-191.027 426.667-426.667 426.667-235.642 0-426.667-191.023-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "music-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2075,
+            "id": 487,
+            "prevSize": 24,
+            "code": 59681,
+            "name": "music-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 801
+    }, {
+        "icon": {
+            "paths": [
+                "M85.335 682.667h169.556c57.185-97.378 178.56-170.667 292.091-170.667 35.951 0 67.341 7.351 93.018 20.489v-447.155h85.333c0 0 0 85.333 85.333 170.667 128 128 64 256 64 256s21.333-85.333-64-170.667c-42.667-42.667-85.333-64-85.333-64v405.333h213.333v85.333h-254.891c-57.182 97.374-178.56 170.667-292.088 170.667-113.53 0-181.554-73.293-167.855-170.667h-138.498v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "music-note-eighth"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2076,
+            "id": 486,
+            "prevSize": 24,
+            "code": 59682,
+            "name": "music-note-eighth"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 802
+    }, {
+        "icon": {
+            "paths": [
+                "M85.334 682.667h169.557c57.184-97.374 178.56-170.667 292.092-170.667 35.951 0 67.341 7.351 93.018 20.489v-447.155h85.333v597.333h213.333v85.333h-254.891c-57.186 97.374-178.56 170.667-292.089 170.667s-181.554-73.293-167.855-170.667h-138.498v-85.333zM500.39 640c-58.91 0-120.571 38.204-137.724 85.333s16.698 85.333 75.606 85.333c58.914 0 120.576-38.204 137.728-85.333s-16.7-85.333-75.61-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "music-note-half"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2077,
+            "id": 485,
+            "prevSize": 24,
+            "code": 59683,
+            "name": "music-note-half"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 803
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-244.544-244.544v73.877c0 94.255-85.961 170.667-192 170.667s-192-76.412-192-170.667c0-94.255 85.961-170.667 192-170.667 22.441 0 43.982 3.422 64 9.711v-40.922l-341.333-341.334zM512 85.334c18.551 0 35.725 5.92 49.724 15.976 111.424 80.008 222.852 160.016 253.675 253.353s-4.732 200.004-68.732 306.671c106.667-277.333-192-341.333-192-341.333v156.898l-128-128v-178.232c0-47.128 38.204-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "music-note-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2078,
+            "id": 484,
+            "prevSize": 24,
+            "code": 59684,
+            "name": "music-note-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 804
+    }, {
+        "icon": {
+            "paths": [
+                "M85.335 682.667h169.556c57.185-97.378 178.56-170.667 292.091-170.667 35.951 0 67.341 7.351 93.018 20.489v-447.155h85.333v597.333h213.333v85.333h-254.891c-57.182 97.374-178.56 170.667-292.089 170.667s-181.553-73.293-167.855-170.667h-138.498v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "music-note-quarter"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2079,
+            "id": 483,
+            "prevSize": 24,
+            "code": 59685,
+            "name": "music-note-quarter"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 805
+    }, {
+        "icon": {
+            "paths": [
+                "M85.335 682.667h169.556c57.185-97.378 178.56-170.667 292.091-170.667 35.951 0 67.341 7.351 93.018 20.489v-447.155h85.333c0 0 0 85.333 85.333 170.667 128 128 64 256 64 256s21.333-85.333-64-170.667c-36.348-36.349-72.7-57.215-82.667-62.597 5.803 31.026 24.213 89.478 82.667 147.93 128 128 64 256 64 256h64v85.333h-254.891c-57.182 97.374-178.56 170.667-292.089 170.667s-181.553-73.293-167.855-170.667h-138.498v-85.333zM725.333 682.667h149.333c0 0 21.333-85.333-64-170.667-42.667-42.667-85.333-64-85.333-64v234.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "music-note-sixteenth"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2080,
+            "id": 482,
+            "prevSize": 24,
+            "code": 59686,
+            "name": "music-note-sixteenth"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 806
+    }, {
+        "icon": {
+            "paths": [
+                "M543.057 426.667c-58.91 0-120.57 38.204-137.724 85.333s16.698 85.333 75.606 85.333c58.914 0 120.576-38.204 137.728-85.333s-16.7-85.333-75.61-85.333zM85.333 469.333h212.224c57.184-97.376 178.56-170.667 292.092-170.667 113.527 0 181.551 73.291 167.855 170.667h181.163v85.333h-212.224c-57.186 97.374-178.56 170.667-292.087 170.667-113.532 0-181.556-73.293-167.857-170.667h-181.165v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "music-note-whole"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2081,
+            "id": 481,
+            "prevSize": 24,
+            "code": 59687,
+            "name": "music-note-whole"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 807
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c18.551 0 35.725 5.921 49.724 15.976 111.424 80.008 222.852 160.016 253.675 253.353s-4.732 200.004-68.732 306.671c106.667-277.333-192-341.333-192-341.333v448c0 94.255-85.961 170.667-192 170.667s-192-76.412-192-170.667c0-94.255 85.961-170.667 192-170.667 22.441 0 43.982 3.422 64 9.711v-436.378c0-47.128 38.204-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "music-note"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2082,
+            "id": 480,
+            "prevSize": 24,
+            "code": 59688,
+            "name": "music-note"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 808
+    }, {
+        "icon": {
+            "paths": [
+                "M192 469.333c35.413 0 64-28.587 64-64s-28.587-64-64-64c-35.413 0-64 28.587-64 64s28.587 64 64 64zM945.92 391.253c0-165.12-133.547-298.667-298.667-298.667s-298.667 133.547-298.667 298.667c0 148.053 107.52 270.507 248.747 293.973v168.107h-341.333v-128h42.667v-170.667c0-23.467-19.2-42.667-42.667-42.667h-128c-23.467 0-42.667 19.2-42.667 42.667v170.667h42.667v213.333h682.667v-85.333h-128v-165.547c148.053-17.493 263.253-143.36 263.253-296.533z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "nature-people"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2083,
+            "id": 479,
+            "prevSize": 24,
+            "code": 59689,
+            "name": "nature-people"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 809
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 687.787c148.053-17.493 263.253-143.36 263.253-296.533 0-165.12-133.547-298.667-298.667-298.667s-298.667 133.547-298.667 298.667c0 148.053 107.52 270.507 248.747 293.973v168.107h-256v85.333h597.333v-85.333h-256v-165.547z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "nature"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2084,
+            "id": 478,
+            "prevSize": 24,
+            "code": 59690,
+            "name": "nature"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 810
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 85.251l-320 780.503 30.165 30.165 289.835-128 289.835 128 30.165-30.165-320-780.503z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "navigation"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2085,
+            "id": 477,
+            "prevSize": 24,
+            "code": 59691,
+            "name": "navigation"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 811
+    }, {
+        "icon": {
+            "paths": [
+                "M475.58 647.765l-60.338-60.339 60.338-60.339 60.343 60.339 60.339-60.339-60.339-60.343 60.339-60.338 60.339 60.338 60.339-60.338-120.678-120.68-301.7 301.7 120.68 120.678 60.338-60.339zM131.216 811.11l133.176-133.175-90.51-90.509 422.38-422.38 90.509 90.51 60.339-60.34-60.339-60.34 60.339-60.34 181.018 181.019-60.339 60.34-60.339-60.34-60.339 60.34 90.509 90.51-422.377 422.378-90.51-90.509-193.516 193.515v-120.678z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "needle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2086,
+            "id": 476,
+            "prevSize": 24,
+            "code": 59692,
+            "name": "needle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 812
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 767.919c141.397 0 256-114.603 256-256 0-141.399-114.603-256.001-256-256.001-141.44 0-256 114.602-256 256.001 0 141.397 114.56 256 256 256zM810.641 127.918c47.104 0 85.333 38.229 85.333 85.333v597.335c0 47.104-38.229 85.333-85.333 85.333h-597.334c-47.148 0-85.333-38.229-85.333-85.333v-597.335c0-47.104 38.186-85.333 85.333-85.333h597.334zM341.307 511.919c0-94.21 76.458-170.668 170.667-170.668s170.667 76.458 170.667 170.668c0 94.208-76.459 170.667-170.667 170.667s-170.667-76.459-170.667-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "nest-protect"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2087,
+            "id": 475,
+            "prevSize": 24,
+            "code": 59693,
+            "name": "nest-protect"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 813
+    }, {
+        "icon": {
+            "paths": [
+                "M723.162 723.106l-90.496-90.496c30.891-30.891 49.963-73.557 49.963-120.704 0-31.573-9.131-60.8-24.149-86.188l92.459-92.416c37.333 49.835 59.691 111.532 59.691 178.604 0 82.475-33.408 157.141-87.467 211.2zM511.962 213.238c67.115 0 128.768 22.4 178.645 59.733l-92.459 92.416c-25.344-14.976-54.571-24.15-86.187-24.15-94.251 0-170.668 76.417-170.668 170.668 0 47.147 19.115 89.813 50.005 120.704l-90.496 90.496c-54.059-54.059-87.509-128.725-87.509-211.2 0-164.951 133.718-298.668 298.668-298.668zM511.962 85.238c-235.648 0-426.668 191.020-426.668 426.668s191.020 426.667 426.668 426.667c235.648 0 426.667-191.019 426.667-426.667s-191.019-426.668-426.667-426.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "nest-thermostat"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2088,
+            "id": 474,
+            "prevSize": 24,
+            "code": 59694,
+            "name": "nest-thermostat"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 814
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 469.333h-682.667v-128h682.667zM853.333 554.667h-298.667v-42.667h298.667zM853.333 640h-298.667v-42.667h298.667zM853.333 725.333h-298.667v-42.667h298.667zM853.333 810.667h-298.667v-42.667h298.667zM512 810.667h-341.333v-298.667h341.333zM867.541 199.127l-71.083-71.127-71.125 71.127-71.125-71.127-71.083 71.127-71.125-71.127-71.125 71.127-71.082-71.127-71.126 71.127-71.126-71.127-71.082 71.127-71.126-71.127v682.667c0 47.104 38.187 85.333 85.333 85.333h682.667c47.104 0 84.907-38.229 84.907-85.333l0.427-682.667-71.125 71.127z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "newspaper"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2089,
+            "id": 473,
+            "prevSize": 24,
+            "code": 59695,
+            "name": "newspaper"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 815
+    }, {
+        "icon": {
+            "paths": [
+                "M512 426.667c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333zM170.667 170.667h298.667c47.13 0 85.333 38.205 85.333 85.333v128h-85.333v-128h-298.667v213.333h85.333v-85.333l128 128-128 128v-85.333h-85.333c-47.128 0-85.333-38.204-85.333-85.333v-213.333c0-47.128 38.205-85.333 85.333-85.333zM853.333 853.333h-298.667c-47.13 0-85.333-38.204-85.333-85.333v-128h85.333v128h298.667v-213.333h-85.333v85.333l-128-128 128-128v85.333h85.333c47.13 0 85.333 38.204 85.333 85.333v213.333c0 47.13-38.204 85.333-85.333 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "nfc-tap"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2090,
+            "id": 472,
+            "prevSize": 24,
+            "code": 59696,
+            "name": "nfc-tap"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 816
+    }, {
+        "icon": {
+            "paths": [
+                "M768.188 255.917h-213.333c-47.147 0-85.333 38.229-85.333 85.333v97.154c-25.387 14.801-42.667 42.022-42.667 73.51 0 47.108 38.187 85.333 85.333 85.333 47.104 0 85.333-38.225 85.333-85.333 0-31.488-17.28-58.709-42.667-73.51v-97.154h128v341.331h-341.333v-341.331h85.333v-85.333h-170.666v511.998h511.999zM853.521 853.248h-682.666v-682.665h682.666zM853.521 85.25h-682.666c-47.148 0-85.334 38.229-85.334 85.333v682.665c0 47.108 38.186 85.333 85.334 85.333h682.666c47.104 0 85.333-38.225 85.333-85.333v-682.665c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "nfc-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2091,
+            "id": 471,
+            "prevSize": 24,
+            "code": 59697,
+            "name": "nfc-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 817
+    }, {
+        "icon": {
+            "paths": [
+                "M451.853 326.905c0 0 25.438-11.561 41.621 6.937 16.188 18.499 57.809 90.181 57.809 161.863 0 71.68-18.496 147.989-36.996 173.423-18.5 25.438-36.996 25.438-50.871 16.188s-228.92-173.423-240.482-178.048c-11.561-4.625-16.186 6.938-4.625 69.367 11.562 62.434-6.937 80.934-23.123 83.247-16.186 2.308-64.745-11.563-67.057-141.056-2.312-129.488 32.372-150.299 48.559-150.299 30.414 0 261.35 208.484 277.478 205.796 13.875-2.313 20.813-90.18-6.938-159.549-30.043-75.112 4.625-87.868 4.625-87.869zM823.561 197.416c77.67 154.242 72.93 300.086 72.311 315.476 0.619 13.41 5.359 159.45-72.311 313.694 0 0-20.233 23.121-50.291 9.25-30.063-13.875-19.657-50.871-19.657-50.871s62.938-121.515 61.278-270.758l0.030-2.313c1.63-149.269-61.308-272.856-61.308-272.856s-10.406-36.997 19.657-50.871c30.059-13.874 50.291 9.25 50.291 9.25zM672.917 266.786c63.351 115.616 59.059 230.716 58.441 246.106 0.619 13.41 4.911 123.866-58.355 248.841 0 0-20.233 23.121-50.291 9.25-30.063-13.875-19.657-50.871-19.657-50.871s40.721-57.92 47.317-205.905l0.030-2.313c-4.314-147.991-47.433-203.486-47.433-203.486s-10.402-36.998 19.657-50.871c30.059-13.874 50.291 9.25 50.291 9.25z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "nfc"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2092,
+            "id": 470,
+            "prevSize": 24,
+            "code": 59698,
+            "name": "nfc"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 818
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c235.639 0 426.667 191.025 426.667 426.667 0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667 0-235.641 191.025-426.667 426.667-426.667zM512 170.667c-78.878 0-151.508 26.755-209.307 71.686l478.956 478.953c44.928-57.796 71.684-130.428 71.684-209.306 0-188.513-152.819-341.333-341.333-341.333zM170.667 512c0 188.514 152.82 341.333 341.333 341.333 78.878 0 151.509-26.756 209.306-71.684l-478.953-478.956c-44.931 57.8-71.686 130.429-71.686 209.307z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "no"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2093,
+            "id": 469,
+            "prevSize": 24,
+            "code": 59699,
+            "name": "no"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 819
+    }, {
+        "icon": {
+            "paths": [
+                "M896 426.667h-512v-85.333l512-0v85.333zM896 682.667h-512v-85.333h512v85.333zM170.667 213.333h85.333v469.333h-85.333v-469.333zM256 768v85.333h-85.333v-85.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "not-equal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2094,
+            "id": 468,
+            "prevSize": 24,
+            "code": 59700,
+            "name": "not-equal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 820
+    }, {
+        "icon": {
+            "paths": [
+                "M597.295 426.595h234.667l-234.667-234.667v234.667zM213.297 127.928h426.665l256 256v426.666c0 47.104-38.229 85.333-85.333 85.333h-597.759c-47.104 0-84.906-38.229-84.906-85.333l0.427-597.332c0-47.104 37.759-85.333 84.906-85.333zM213.333 213.333v597.333h597.333v-298.667h-298.667v-298.667h-298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "note-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2095,
+            "id": 467,
+            "prevSize": 24,
+            "code": 59701,
+            "name": "note-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 821
+    }, {
+        "icon": {
+            "paths": [
+                "M597.295 426.595h234.667l-234.667-234.667v234.667zM213.297 127.928h426.665l256 256v426.666c0 47.104-38.229 85.333-85.333 85.333h-597.759c-47.104 0-84.906-38.229-84.906-85.333l0.427-597.332c0-47.104 37.759-85.333 84.906-85.333zM213.333 512v85.333h597.333v-85.333h-597.333zM213.333 682.667v85.333h384v-85.333h-384z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "note-text"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2096,
+            "id": 466,
+            "prevSize": 24,
+            "code": 59702,
+            "name": "note-text"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 822
+    }, {
+        "icon": {
+            "paths": [
+                "M597.295 426.595v-234.667l234.667 234.667zM213.297 127.928c-47.148 0-84.906 38.229-84.906 85.333l-0.427 597.333c0 47.104 37.802 85.333 84.906 85.333h597.758c47.104 0 85.333-38.229 85.333-85.333v-426.666l-256-256h-426.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "note"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2097,
+            "id": 465,
+            "prevSize": 24,
+            "code": 59703,
+            "name": "note"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 823
+    }, {
+        "icon": {
+            "paths": [
+                "M896 725.333v-597.333h-597.333v597.333h597.333zM896 42.667c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.934 38.4-85.333 85.333-85.333h597.333zM128 213.334v682.666h682.667v85.333h-682.667c-46.933 0-85.333-38.4-85.333-85.333v-682.666h85.333zM554.667 213.333h85.333c47.13 0 85.333 38.205 85.333 85.333v256c0 47.13-38.204 85.333-85.333 85.333h-85.333c-47.13 0-85.333-38.204-85.333-85.333v-256c0-47.128 38.204-85.333 85.333-85.333zM554.667 298.667v256h85.333v-256h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-0-box-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2098,
+            "id": 464,
+            "prevSize": 24,
+            "code": 59704,
+            "name": "numeric-0-box-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 824
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 810.667v-597.334h-597.333v597.334h597.333zM810.667 128c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333zM469.333 298.666h85.333c47.13 0 85.333 38.205 85.333 85.334v256c0 47.13-38.204 85.333-85.333 85.333h-85.333c-47.129 0-85.333-38.204-85.333-85.333v-256c0-47.128 38.205-85.334 85.333-85.334zM469.333 384v256h85.333v-256h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-0-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2099,
+            "id": 463,
+            "prevSize": 24,
+            "code": 59705,
+            "name": "numeric-0-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 825
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 128c46.933 0 85.333 38.4 85.333 85.333v597.334c0 46.933-38.4 85.333-85.333 85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.334c0-46.933 38.4-85.333 85.333-85.333h597.333zM469.333 298.667c-47.129 0-85.334 38.205-85.334 85.333v256c0 47.13 38.205 85.333 85.334 85.333h85.333c47.13 0 85.333-38.204 85.333-85.333v-256c0-47.128-38.204-85.333-85.333-85.333h-85.333zM469.333 384h85.333v256h-85.333v-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-0-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2100,
+            "id": 462,
+            "prevSize": 24,
+            "code": 59706,
+            "name": "numeric-0-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 826
+    }, {
+        "icon": {
+            "paths": [
+                "M896 725.333h-597.333v-597.333h597.333zM896 42.667h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM597.333 640h85.333v-426.667h-170.667v85.333h85.333zM128 213.333h-85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h682.667v-85.333h-682.667v-682.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-1-box-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2101,
+            "id": 461,
+            "prevSize": 24,
+            "code": 59707,
+            "name": "numeric-1-box-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 827
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 810.667h-597.333v-597.333h597.333zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM512 725.333h85.333v-426.667h-170.667v85.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-1-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2102,
+            "id": 460,
+            "prevSize": 24,
+            "code": 59708,
+            "name": "numeric-1-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 828
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 725.333h-85.333v-341.333h-85.333v-85.333h170.667zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-1-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2103,
+            "id": 459,
+            "prevSize": 24,
+            "code": 59709,
+            "name": "numeric-1-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 829
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 554.667h-170.667v-85.333h85.333c46.933 0 85.333-37.973 85.333-85.333v-85.333c0-47.36-38.4-85.333-85.333-85.333h-170.667v85.333h170.667v85.333h-85.333c-46.933 0-85.333 37.973-85.333 85.333v170.667h256zM896 725.333h-597.333v-597.333h597.333zM896 42.667h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM128 213.333h-85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h682.667v-85.333h-682.667v-682.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-2-box-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2104,
+            "id": 458,
+            "prevSize": 24,
+            "code": 59710,
+            "name": "numeric-2-box-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 830
+    }, {
+        "icon": {
+            "paths": [
+                "M640 640h-170.667v-85.333h85.333c46.933 0 85.333-37.973 85.333-85.333v-85.333c0-47.36-38.4-85.334-85.333-85.334h-170.667v85.334h170.667v85.333h-85.333c-46.933 0-85.333 37.973-85.333 85.333v170.667h256zM810.667 810.667h-597.333v-597.333h597.333zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-2-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2105,
+            "id": 457,
+            "prevSize": 24,
+            "code": 59711,
+            "name": "numeric-2-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 831
+    }, {
+        "icon": {
+            "paths": [
+                "M640 469.333c0 47.36-38.4 85.333-85.333 85.333h-85.333v85.333h170.667v85.333h-256v-170.667c0-47.36 38.4-85.333 85.333-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-2-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2106,
+            "id": 456,
+            "prevSize": 24,
+            "code": 59712,
+            "name": "numeric-2-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 832
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 554.667v-64c0-35.413-28.587-64-64-64 35.413 0 64-28.587 64-64v-64c0-47.36-38.4-85.333-85.333-85.333h-170.667v85.333h170.667v85.333h-85.333v85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333zM128 213.333h-85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h682.667v-85.333h-682.667zM896 725.333h-597.333v-597.333h597.333zM896 42.667h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-3-box-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2107,
+            "id": 455,
+            "prevSize": 24,
+            "code": 59713,
+            "name": "numeric-3-box-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 833
+    }, {
+        "icon": {
+            "paths": [
+                "M640 640v-64c0-35.413-28.582-64-64-64 35.418 0 64-28.587 64-64v-64c0-47.36-38.4-85.333-85.333-85.333h-170.667v85.333h170.667v85.333h-85.333v85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333zM810.667 810.667h-597.333v-597.333h597.333zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-3-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2108,
+            "id": 454,
+            "prevSize": 24,
+            "code": 59714,
+            "name": "numeric-3-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 834
+    }, {
+        "icon": {
+            "paths": [
+                "M640.427 448c0 35.413-28.587 64-64 64 35.413 0 64 28.587 64 64v64c0 47.36-38.4 85.333-85.333 85.333h-170.667v-85.333h170.667v-85.333h-85.333v-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333zM811.093 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-3-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2109,
+            "id": 453,
+            "prevSize": 24,
+            "code": 59715,
+            "name": "numeric-3-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 835
+    }, {
+        "icon": {
+            "paths": [
+                "M896 725.333h-597.333v-597.333h597.333zM896 42.667h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM640 640h85.333v-426.667h-85.333v170.667h-85.333v-170.667h-85.333v256h170.667zM128 213.333h-85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h682.667v-85.333h-682.667v-682.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-4-box-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2110,
+            "id": 452,
+            "prevSize": 24,
+            "code": 59716,
+            "name": "numeric-4-box-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 836
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 810.667h-597.333v-597.334h597.333zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM554.667 725.333h85.333v-426.667h-85.333v170.667h-85.333v-170.667h-85.333v256h170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-4-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2111,
+            "id": 451,
+            "prevSize": 24,
+            "code": 59717,
+            "name": "numeric-4-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 837
+    }, {
+        "icon": {
+            "paths": [
+                "M640 725.333h-85.333v-170.667h-170.667v-256h85.333v170.667h85.333v-170.667h85.333zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-4-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2112,
+            "id": 450,
+            "prevSize": 24,
+            "code": 59718,
+            "name": "numeric-4-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 838
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 554.667v-85.333c0-47.36-38.4-85.333-85.333-85.333h-85.333v-85.333h170.667v-85.333h-256v256h170.667v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333zM128 213.333h-85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h682.667v-85.333h-682.667zM896 725.333h-597.333v-597.333h597.333zM896 42.667h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-5-box-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2113,
+            "id": 449,
+            "prevSize": 24,
+            "code": 59719,
+            "name": "numeric-5-box-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 839
+    }, {
+        "icon": {
+            "paths": [
+                "M640 640v-85.333c0-47.36-38.4-85.333-85.333-85.333h-85.333v-85.333h170.667v-85.334h-256v256h170.667v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333zM810.667 810.667h-597.333v-597.333h597.333zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-5-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2114,
+            "id": 448,
+            "prevSize": 24,
+            "code": 59720,
+            "name": "numeric-5-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 840
+    }, {
+        "icon": {
+            "paths": [
+                "M640 384h-170.667v85.333h85.333c46.933 0 85.333 37.973 85.333 85.333v85.333c0 47.36-38.4 85.333-85.333 85.333h-170.667v-85.333h170.667v-85.333h-170.667v-256h256zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-5-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2115,
+            "id": 447,
+            "prevSize": 24,
+            "code": 59721,
+            "name": "numeric-5-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 841
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 469.333h85.333v85.333h-85.333zM554.667 640h85.333c46.933 0 85.333-37.973 85.333-85.333v-85.333c0-47.36-38.4-85.333-85.333-85.333h-85.333v-85.333h170.667v-85.333h-170.667c-46.933 0-85.333 37.973-85.333 85.333v256c0 47.36 38.4 85.333 85.333 85.333zM896 725.333h-597.333v-597.333h597.333zM896 42.667h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM128 213.333h-85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h682.667v-85.333h-682.667v-682.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-6-box-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2116,
+            "id": 446,
+            "prevSize": 24,
+            "code": 59722,
+            "name": "numeric-6-box-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 842
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 554.667h85.333v85.333h-85.333zM469.333 725.333h85.333c46.933 0 85.333-37.973 85.333-85.333v-85.333c0-47.36-38.4-85.333-85.333-85.333h-85.333v-85.333h170.667v-85.333h-170.667c-46.933 0-85.333 37.973-85.333 85.333v256c0 47.36 38.4 85.333 85.333 85.333zM810.667 810.667h-597.333v-597.333h597.333zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-6-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2117,
+            "id": 445,
+            "prevSize": 24,
+            "code": 59723,
+            "name": "numeric-6-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 843
+    }, {
+        "icon": {
+            "paths": [
+                "M640 384h-170.667v85.333h85.333c46.933 0 85.333 37.973 85.333 85.333v85.333c0 47.36-38.4 85.333-85.333 85.333h-85.333c-46.933 0-85.333-37.973-85.333-85.333v-256c0-47.36 38.4-85.333 85.333-85.333h170.667zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM469.333 640h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-6-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2118,
+            "id": 444,
+            "prevSize": 24,
+            "code": 59724,
+            "name": "numeric-6-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 844
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 640l170.667-341.333v-85.333h-256v85.333h170.667l-170.667 341.333zM896 725.333h-597.333v-597.333h597.333zM896 42.667h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM128 213.333h-85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h682.667v-85.333h-682.667v-682.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-7-box-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2119,
+            "id": 443,
+            "prevSize": 24,
+            "code": 59725,
+            "name": "numeric-7-box-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 845
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 725.333l170.667-341.333v-85.334h-256v85.334h170.666l-170.666 341.333zM810.667 810.667h-597.333v-597.333h597.333zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-7-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2120,
+            "id": 442,
+            "prevSize": 24,
+            "code": 59726,
+            "name": "numeric-7-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 846
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 128c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333zM469.333 725.333l170.667-341.333v-85.334h-256v85.334h170.666l-170.666 341.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-7-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2121,
+            "id": 441,
+            "prevSize": 24,
+            "code": 59727,
+            "name": "numeric-7-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 847
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 469.333h85.333v85.333h-85.333zM554.667 298.667h85.333v85.333h-85.333zM554.667 640h85.333c46.933 0 85.333-37.973 85.333-85.333v-64c0-35.413-28.587-64-64-64 35.413 0 64-28.587 64-64v-64c0-47.36-38.4-85.333-85.333-85.333h-85.333c-46.933 0-85.333 37.973-85.333 85.333v64c0 35.413 28.587 64 64 64-35.413 0-64 28.587-64 64v64c0 47.36 38.4 85.333 85.333 85.333zM896 725.333h-597.333v-597.333h597.333zM896 42.667h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM128 213.333h-85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h682.667v-85.333h-682.667v-682.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-8-box-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2122,
+            "id": 440,
+            "prevSize": 24,
+            "code": 59728,
+            "name": "numeric-8-box-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 848
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 554.667h85.333v85.333h-85.333zM469.333 384h85.333v85.333h-85.333zM469.333 725.333h85.333c46.933 0 85.333-37.973 85.333-85.333v-64c0-35.413-28.582-64-64-64 35.418 0 64-28.587 64-64v-64c0-47.36-38.4-85.333-85.333-85.333h-85.333c-46.933 0-85.333 37.973-85.333 85.333v64c0 35.413 28.587 64 64 64-35.413 0-64 28.587-64 64v64c0 47.36 38.4 85.333 85.333 85.333zM810.667 810.667h-597.333v-597.333h597.333zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-8-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2123,
+            "id": 439,
+            "prevSize": 24,
+            "code": 59729,
+            "name": "numeric-8-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 849
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 128c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333zM469.333 725.333h85.333c46.933 0 85.333-37.973 85.333-85.333v-64c0-35.413-28.582-64-64-64 35.418 0 64-28.587 64-64v-64c0-47.36-38.4-85.333-85.333-85.333h-85.333c-46.933 0-85.333 37.973-85.333 85.333v64c0 35.413 28.587 64 64 64-35.413 0-64 28.587-64 64v64c0 47.36 38.4 85.333 85.333 85.333zM469.333 554.667h85.333v85.333h-85.333v-85.333zM469.333 384h85.333v85.333h-85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-8-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2124,
+            "id": 438,
+            "prevSize": 24,
+            "code": 59730,
+            "name": "numeric-8-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 850
+    }, {
+        "icon": {
+            "paths": [
+                "M640 384h-85.333v-85.333h85.333zM640 213.333h-85.333c-46.933 0-85.333 37.973-85.333 85.333v85.333c0 47.36 38.4 85.333 85.333 85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333v-256c0-47.36-38.4-85.333-85.333-85.333zM896 725.333h-597.333v-597.333h597.333zM896 42.667h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM128 213.333h-85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h682.667v-85.333h-682.667v-682.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-9-box-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2125,
+            "id": 437,
+            "prevSize": 24,
+            "code": 59731,
+            "name": "numeric-9-box-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 851
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 469.333h-85.333v-85.333h85.333zM554.667 298.667h-85.333c-46.933 0-85.333 37.973-85.333 85.333v85.333c0 47.36 38.4 85.333 85.333 85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333v-256c0-47.36-38.4-85.333-85.333-85.333zM810.667 810.667h-597.333v-597.333h597.333zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-9-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2126,
+            "id": 436,
+            "prevSize": 24,
+            "code": 59732,
+            "name": "numeric-9-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 852
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 128c46.933 0 85.333 38.4 85.333 85.333v597.333c0 46.933-38.4 85.333-85.333 85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333zM554.667 469.333h-85.333v-85.333h85.333v85.333zM554.667 298.667h-85.333c-46.933 0-85.333 37.973-85.333 85.333v85.333c0 47.36 38.4 85.333 85.333 85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333v-256c0-47.36-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-9-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2127,
+            "id": 435,
+            "prevSize": 24,
+            "code": 59733,
+            "name": "numeric-9-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 853
+    }, {
+        "icon": {
+            "paths": [
+                "M896 384h-85.333v-85.333h-85.333v85.333h-85.333v85.333h85.333v85.333h85.333v-85.333h85.333v256h-597.333v-597.333h597.333zM896 42.667h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM469.333 384v-42.667h42.667v42.667zM597.333 512v-170.667c0-47.36-38.4-85.333-85.333-85.333h-42.667c-46.933 0-85.333 37.973-85.333 85.333v42.667c0 47.36 38.4 85.333 85.333 85.333h42.667v42.667h-128v85.333h128c46.933 0 85.333-37.973 85.333-85.333zM128 213.333h-85.333v682.667c0 46.933 38.4 85.333 85.333 85.333h682.667v-85.333h-682.667v-682.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-9-plus-box-multiple-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2128,
+            "id": 434,
+            "prevSize": 24,
+            "code": 59734,
+            "name": "numeric-9-plus-box-multiple-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 854
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 469.333h-85.333v-85.333h-85.333v85.333h-85.333v85.333h85.333v85.333h85.333v-85.333h85.333v256h-597.333v-597.334h597.333zM810.667 128h-597.333c-46.933 0-85.333 38.4-85.333 85.333v597.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-597.333c0-46.933-38.4-85.333-85.333-85.333zM384 469.333v-42.667h42.667v42.667zM512 597.333v-170.667c0-47.36-38.4-85.333-85.333-85.333h-42.667c-46.933 0-85.333 37.973-85.333 85.333v42.667c0 47.36 38.4 85.333 85.333 85.333h42.667v42.667h-128v85.333h128c46.933 0 85.333-37.973 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-9-plus-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2129,
+            "id": 433,
+            "prevSize": 24,
+            "code": 59735,
+            "name": "numeric-9-plus-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 855
+    }, {
+        "icon": {
+            "paths": [
+                "M896 213.333v597.333c0 46.933-38.4 85.333-85.333 85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-597.333c0-46.933 38.4-85.333 85.333-85.333h597.333c46.933 0 85.333 38.4 85.333 85.333zM810.667 469.333h-85.333v-85.333h-85.333v85.333h-85.333v85.333h85.333v85.333h85.333v-85.333h85.333v-85.333zM426.667 298.667h-85.333c-46.933 0-85.333 37.973-85.333 85.333v85.333c0 47.36 38.4 85.333 85.333 85.333h85.333v85.333h-170.667v85.333h170.667c46.933 0 85.333-37.973 85.333-85.333v-256c0-47.36-38.4-85.333-85.333-85.333zM341.333 384h85.333v85.333h-85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric-9-plus-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2130,
+            "id": 432,
+            "prevSize": 24,
+            "code": 59736,
+            "name": "numeric-9-plus-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 856
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 725.333v-341.333h-85.333v-85.333h170.667v426.667h-85.333zM938.667 640c0 47.36-38.4 85.333-85.333 85.333h-170.667v-85.333h170.667v-85.333h-85.333v-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333v64c0 35.413-28.582 64-64 64 35.418 0 64 28.587 64 64v64zM597.333 640v85.333h-256v-170.667c0-47.36 38.4-85.333 85.333-85.333h85.333v-85.333h-170.667v-85.333h170.667c46.933 0 85.333 37.973 85.333 85.333v85.333c0 47.36-38.4 85.333-85.333 85.333h-85.333v85.333h170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "numeric"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2131,
+            "id": 431,
+            "prevSize": 24,
+            "code": 59737,
+            "name": "numeric"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 857
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 768c0 94.255-76.412 170.667-170.667 170.667h-170.667c-94.259 0-170.667-76.412-170.667-170.667v-85.333h512v85.333zM170.667 128.001h426.667c47.13 0 85.333 38.205 85.333 85.333v383.999h-341.333v213.333h-170.667c-47.128 0-85.333-38.204-85.333-85.333v-511.999c0-47.128 38.205-85.333 85.333-85.333zM170.667 256.001v85.333h85.333v-85.333h-85.333zM597.333 341.334v-85.333h-256v85.333h256zM170.667 426.667v85.333h85.333v-85.333h-85.333zM341.333 426.667v85.333h256v-85.333h-256zM170.667 597.333v85.333h85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "nutriton"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2132,
+            "id": 430,
+            "prevSize": 24,
+            "code": 59738,
+            "name": "nutriton"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 858
+    }, {
+        "icon": {
+            "paths": [
+                "M760.956 543.625c-12.194-24.491-45.969-44.868-90.85-9.506-60.663 47.799-158.106 47.799-158.106 47.799s-97.441 0-158.105-47.799c-44.883-35.362-78.654-14.985-90.847 9.506-21.259 42.705 2.761 63.347 56.96 98.138 46.295 29.722 109.905 40.823 150.985 44.975l-34.291 34.287c-48.298 48.299-94.919 94.921-127.266 127.27-19.34 19.332-19.34 50.692 0 70.033l5.835 5.837c19.34 19.337 50.694 19.332 70.034 0l127.267-127.27c48.303 48.299 94.921 94.921 127.27 127.266 19.337 19.337 50.697 19.337 70.033 0l5.833-5.833c19.345-19.345 19.341-50.701 0-70.037l-161.66-161.66c41.109-4.237 104.038-15.394 149.948-44.868 54.195-34.79 78.212-55.433 56.96-98.138zM512 195.051c58.684 0 106.257 47.572 106.257 106.252 0 58.681-47.573 106.252-106.257 106.252-58.679 0-106.251-47.571-106.251-106.252 0-58.679 47.572-106.252 106.251-106.252zM512 517.274c119.279 0 215.974-96.694 215.974-215.971 0-119.275-96.695-215.969-215.974-215.969s-215.97 96.694-215.97 215.969c0 119.277 96.692 215.971 215.97 215.971z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "odnoklassniki"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2133,
+            "id": 429,
+            "prevSize": 24,
+            "code": 59739,
+            "name": "odnoklassniki"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 859
+    }, {
+        "icon": {
+            "paths": [
+                "M127.999 768l170.667-53.333 0.001-415.999 298.666-85.333-0.004 618.67-447.999-53.333 448.003 159.996 256-53.333v-735.997l-258.031-64.003-467.304 160.002 0.001 522.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "office"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2134,
+            "id": 428,
+            "prevSize": 24,
+            "code": 59740,
+            "name": "office"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 860
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 533.333c0 0 85.333 92.459 85.333 149.333 0 47.104-38.229 85.333-85.333 85.333s-85.333-38.229-85.333-85.333c0-56.875 85.333-149.333 85.333-149.333zM256 256h170.667c23.565 0 42.667 19.103 42.667 42.667s-19.102 42.667-42.667 42.667h-42.667v85.333h85.333c31.582 0 59.157 17.156 73.911 42.658l277.542-160.238 139.273 80.407c20.407 11.782 27.396 37.876 15.616 58.284s-37.875 27.401-58.283 15.616l-89.673-51.771-155.665 269.623c-14.545 26.287-42.556 44.087-74.722 44.087h-384c-47.128 0-85.333-38.204-85.333-85.333v-128c0-47.13 38.205-85.333 85.333-85.333h85.333v-85.333h-42.667c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667zM213.333 512v128h384l87.987-152.397-147.802 85.333-38.788-60.937h-285.397zM16.157 392.837l72.837-72.836c16.662-16.663 43.677-16.663 60.34 0s16.663 43.677 0 60.34l-72.836 72.835c-16.663 16.661-43.678 16.661-60.34 0s-16.662-43.676 0-60.339z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "oil"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2135,
+            "id": 427,
+            "prevSize": 24,
+            "code": 59741,
+            "name": "oil"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 861
+    }, {
+        "icon": {
+            "paths": [
+                "M816.926 810.667h-245.76v-91.021c91.021-69.026 136.533-154.786 136.533-257.28 0-63.717-18.086-114.135-54.259-151.255s-82.893-55.68-140.16-55.68c-57.741 0-105.007 18.655-141.796 55.965s-55.182 88.249-55.182 152.817c0 101.547 45.511 186.692 136.532 255.433v91.021h-245.759v-91.021h151.893c-101.262-65.805-151.893-154.978-151.893-267.52 0-89.317 27.852-159.598 83.555-210.846s129.067-76.871 220.089-76.871c93.013 0 167.3 25.41 222.861 76.231 55.565 50.821 83.345 121.031 83.345 210.633 0 112.542-51.106 202.001-153.318 268.373h153.318v91.021z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "omega"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2136,
+            "id": 426,
+            "prevSize": 24,
+            "code": 59742,
+            "name": "omega"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 862
+    }, {
+        "icon": {
+            "paths": [
+                "M856.619 581.973c46.481 7.262 82.048 47.467 82.048 95.983 0 37.905-21.717 70.716-53.376 86.729l-7.275 3.315-487.115-0.017c-61.844-0.388-111.863-50.624-111.863-112.563 0-62.174 50.404-112.58 112.58-112.58l9.277 0.414-0.288-8.631c0-77.82 63.087-140.906 140.906-140.906 54.669 0 102.037 31.16 125.397 76.671 19.324-12.676 42.415-20.075 67.255-20.075 67.823 0 122.807 54.985 122.807 122.807l-0.354 8.853zM376.441 518.754c-68.704 7.578-122.322 65.975-122.322 136.666 0 28.787 8.964 55.565 24.223 77.705h-76.425c-64.388 0-116.584-52.194-116.584-116.582 0-61.538 47.691-111.906 108.124-116.245l-3.11-28.373c0-72.497 58.771-131.268 131.268-131.268 27.175 0 52.422 8.259 73.367 22.401 29.745-59.629 91.306-100.609 162.47-100.609 94.007 0 171.319 71.472 180.57 163.041l-3.857-0.093c-20.215 0-40.004 4.1-58.325 11.989-30.908-42.831-80.418-68.587-134.327-68.587-86.084 0-157.059 65.937-165.072 149.957z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "onedrive"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2137,
+            "id": 425,
+            "prevSize": 24,
+            "code": 59743,
+            "name": "onedrive"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 863
+    }, {
+        "icon": {
+            "paths": [
+                "M512 426.667l-170.667 170.667h128v256h85.333v-256h128zM810.667 170.667h-597.333c-47.36 0-85.333 38.4-85.333 85.333v512c0 46.933 37.973 85.333 85.333 85.333h170.667v-85.333h-170.667v-426.667h597.333v426.667h-170.667v85.333h170.667c46.933 0 85.333-38.4 85.333-85.333v-512c0-46.933-37.973-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "open-in-app"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2138,
+            "id": 424,
+            "prevSize": 24,
+            "code": 59744,
+            "name": "open-in-app"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 864
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 128v85.333h153.173l-419.413 419.413 60.16 60.16 419.413-419.413v153.173h85.333v-298.667zM810.667 810.667h-597.333v-597.333h298.667v-85.333h-298.667c-47.36 0-85.333 38.4-85.333 85.333v597.333c0 46.933 37.973 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-298.667h-85.333v298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "open-in-new"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2139,
+            "id": 423,
+            "prevSize": 24,
+            "code": 59745,
+            "name": "open-in-new"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 865
+    }, {
+        "icon": {
+            "paths": [
+                "M512 42.668c70.694 0 128 57.307 128 128v42.666c23.565 0 42.667 19.103 42.667 42.667v45.664c102.025 59.018 170.667 169.329 170.667 295.669 0 188.514-152.819 341.333-341.333 341.333s-341.333-152.819-341.333-341.333c0-126.34 68.642-236.651 170.667-295.669v-45.664c0-23.564 19.102-42.667 42.667-42.667v-42.666c0-70.692 57.306-128 128-128zM512 128.001c-23.565 0-42.667 19.103-42.667 42.667v42.666h85.333v-42.667c0-23.564-19.106-42.666-42.667-42.666zM512 341.334c-75.819 0-143.939 32.96-190.815 85.332h381.629c-46.874-52.372-114.995-85.332-190.814-85.332zM512 853.333c75.819 0 143.94-32.96 190.814-85.333h-381.629c46.875 52.373 114.996 85.333 190.815 85.333zM512 512c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333zM768 597.333c0-29.483-4.983-57.805-14.157-84.164-40.393 6.746-71.177 41.86-71.177 84.164s30.784 77.419 71.177 84.164c9.173-26.359 14.157-54.682 14.157-84.164zM256 597.333c0 29.483 4.984 57.805 14.157 84.164 40.391-6.746 71.177-41.86 71.177-84.164s-30.786-77.419-71.177-84.164c-9.172 26.359-14.157 54.682-14.157 84.164z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "ornament-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2140,
+            "id": 422,
+            "prevSize": 24,
+            "code": 59746,
+            "name": "ornament-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 866
+    }, {
+        "icon": {
+            "paths": [
+                "M512 42.668c70.694 0 128 57.307 128 128v42.666c23.565 0 42.667 19.103 42.667 42.667v45.664c102.025 59.018 170.667 169.329 170.667 295.669 0 188.514-152.819 341.333-341.333 341.333s-341.333-152.819-341.333-341.333c0-126.34 68.642-236.651 170.667-295.669v-45.664c0-23.564 19.102-42.667 42.667-42.667v-42.666c0-70.692 57.306-128 128-128zM512 128.001c-23.565 0-42.667 19.103-42.667 42.667v42.666h85.333v-42.667c0-23.564-19.102-42.666-42.667-42.666zM512 341.334c-75.819 0-143.939 32.96-190.815 85.333h381.629c-46.874-52.373-114.995-85.333-190.814-85.333zM270.566 682.667h53.094l-67.015-67.017c1.65 23.343 6.43 45.82 13.921 67.017zM536.994 682.667l-170.667-170.667h-92.654l170.666 170.667h92.655zM753.434 512h-53.094l67.017 67.017c-1.651-23.343-6.43-45.82-13.922-67.017zM487.006 512l170.667 170.667h92.655l-170.667-170.667h-92.655zM512 853.333c75.819 0 143.94-32.96 190.814-85.333h-381.629c46.875 52.373 114.996 85.333 190.815 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "ornament"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2141,
+            "id": 421,
+            "prevSize": 24,
+            "code": 59747,
+            "name": "ornament"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 867
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 597.316h-170.668v-128l-85.334 0.009 170.665-170.668 170.662 170.659h-85.325v128zM212.909 640.004v-426.676h597.749v426.676h-170.667c0 70.686-57.284 128-128 128-70.686 0-127.996-57.314-127.996-128h-171.087zM810.658 128h-597.749c-47.125 0-84.472 38.203-84.472 85.329l-0.438 597.343c0 47.125 37.784 85.329 84.91 85.329h597.749c47.125 0 85.342-38.204 85.342-85.329v-597.343c0-47.125-38.217-85.329-85.342-85.329z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "outbox"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2142,
+            "id": 420,
+            "prevSize": 24,
+            "code": 59748,
+            "name": "outbox"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 868
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 128h853.333v128h-853.333v-128zM384 341.334l554.667-0v128h-554.667v-127.999zM384 554.667h554.667v128h-554.667v-128zM85.333 768h853.333v128h-853.333v-128zM256 341.333l-170.667 170.667 170.667 170.667h42.667v-341.333h-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "outdent"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2143,
+            "id": 419,
+            "prevSize": 24,
+            "code": 59749,
+            "name": "outdent"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 869
+    }, {
+        "icon": {
+            "paths": [
+                "M512 682.914c23.68 35.712 55.94 64.913 93.833 84.919l-93.833 93.833-93.833-93.833c37.893-20.006 70.153-49.207 93.833-84.919zM725.333 477.67c-47.13 0-85.333 38.204-85.333 85.333 0 47.125 38.204 85.329 85.333 85.329s85.333-38.204 85.333-85.329c0-47.13-38.204-85.333-85.333-85.333zM298.667 477.67c-47.128 0-85.333 38.204-85.333 85.333 0 47.125 38.205 85.329 85.333 85.329s85.333-38.204 85.333-85.329c0-47.13-38.205-85.333-85.333-85.333zM725.333 370.999c94.255 0 170.667 76.412 170.667 170.671 0 94.255-76.412 170.667-170.667 170.667s-170.667-76.412-170.667-170.667c0-94.259 76.412-170.671 170.667-170.671zM298.667 370.999c94.257 0 170.667 76.412 170.667 170.671 0 94.255-76.41 170.667-170.667 170.667s-170.667-76.412-170.667-170.667c0-94.259 76.41-170.671 170.667-170.671zM95.75 41.666c74.917 158.667 20.668 276.599-29.417 393.333-15.473 33.438-23.546 69.82-23.667 106.671 0 141.385 114.615 256 256 256 8.999-0.055 17.974-0.759 26.917-1.758l186.417 186.419 186.415-186.419c8.943 0.998 17.92 1.702 26.918 1.758 141.385 0 256.094-114.615 256-256-0.026-36.851-8.192-73.233-23.667-106.671-50.082-116.734-104.333-234.667-29.414-393.333-112.555 88.7-272.951 158.393-416.252 158.667-143.302-0.274-303.699-69.967-416.25-158.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "owl"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2144,
+            "id": 418,
+            "prevSize": 24,
+            "code": 59750,
+            "name": "owl"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 870
+    }, {
+        "icon": {
+            "paths": [
+                "M218.453 213.333l34.56-42.667h512l40.107 42.667zM512 746.667l-234.667-234.667h149.333v-85.333h170.667v85.333h149.333l-234.667 234.667zM876.373 223.147l-59.307-71.68c-11.52-14.507-29.013-23.467-49.067-23.467h-512c-20.053 0-37.547 8.96-49.493 23.467l-58.88 71.68c-12.373 14.507-19.627 33.707-19.627 54.187v533.333c0 46.933 38.4 85.333 85.333 85.333h597.333c46.933 0 85.333-38.4 85.333-85.333v-533.333c0-20.48-7.249-39.68-19.627-54.187z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "package-down"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2145,
+            "id": 417,
+            "prevSize": 24,
+            "code": 59751,
+            "name": "package-down"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 871
+    }, {
+        "icon": {
+            "paths": [
+                "M876.373 223.147c12.373 14.507 19.627 33.707 19.627 54.187v533.333c0 46.933-38.4 85.333-85.333 85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-533.333c0-20.48 7.253-39.68 19.627-54.187l58.88-71.68c11.947-14.507 29.44-23.467 49.493-23.467h512c20.053 0 37.547 8.96 49.067 23.467l59.307 71.68zM218.453 213.334h586.667l-40.107-42.667h-512l-34.56 42.667zM512 405.333l-234.667 234.667h149.333v85.333h170.667v-85.333h149.333l-234.667-234.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "package-up"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2146,
+            "id": 416,
+            "prevSize": 24,
+            "code": 59752,
+            "name": "package-up"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 872
+    }, {
+        "icon": {
+            "paths": [
+                "M896 704c0 16.265-9.101 30.4-22.485 37.602l-337.348 189.568c-6.869 4.727-15.194 7.497-24.166 7.497s-17.297-2.769-24.166-7.497l-337.341-189.564c-13.389-7.198-22.492-21.342-22.492-37.606v-384c0-16.266 9.103-30.406 22.492-37.605l337.341-189.563c6.869-4.73 15.194-7.498 24.166-7.498s17.293 2.768 24.166 7.498l337.348 189.567c13.385 7.2 22.485 21.338 22.485 37.601v384zM512.038 177.106l-80.853 45.437 250.825 144.812 84.245-47.355-254.217-142.894zM257.76 320l254.279 142.895 83.494-46.932-250.834-144.819-86.939 48.856zM213.333 679.036l256 143.859v-286.123l-256-143.855v286.118zM810.667 679.036v-286.118l-256 143.855v286.161l256-143.898z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "package-variant-closed"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2147,
+            "id": 415,
+            "prevSize": 24,
+            "code": 59753,
+            "name": "package-variant-closed"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 873
+    }, {
+        "icon": {
+            "paths": [
+                "M85.212 467.588c-20.407-11.78-27.399-37.875-15.617-58.283l64-110.851c4.798-8.311 11.97-14.396 20.165-17.895l334.074-187.727c6.869-4.73 15.194-7.498 24.166-7.498s17.293 2.768 24.166 7.498l337.348 189.567c8.081 4.346 14.596 11.218 18.496 19.561l62.093 107.548c11.78 20.407 4.787 46.502-15.62 58.282l-42.483 24.529v211.682c0 16.265-9.101 30.4-22.485 37.602l-337.348 189.568c-6.869 4.727-15.194 7.497-24.166 7.497s-17.297-2.769-24.166-7.497l-337.341-189.564c-13.389-7.198-22.492-21.342-22.492-37.606v-236.471c-12.783 7.415-29.071 7.983-42.788 0.060zM512.038 177.107l-0.038 0.022v285.745l0.038 0.021 254.217-142.895-254.217-142.894zM213.333 679.036l256 143.859v-286.123l-256-143.855v286.118zM810.667 679.036v-137.451l-213.973 123.537c-13.44 7.761-29.35 7.377-42.027 0.354v157.457l256-143.898zM590.976 569.89l267.891-154.667-24.905-43.14-267.891 154.667 24.905 43.14z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "package-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2148,
+            "id": 414,
+            "prevSize": 24,
+            "code": 59754,
+            "name": "package-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 874
+    }, {
+        "icon": {
+            "paths": [
+                "M218.453 213.333h586.667l-40.107-42.667h-512l-34.56 42.667zM876.373 223.147c12.378 14.507 19.627 33.707 19.627 54.187v533.333c0 46.933-38.4 85.333-85.333 85.333h-597.333c-46.933 0-85.333-38.4-85.333-85.333v-533.333c0-20.48 7.253-39.68 19.627-54.187l58.88-71.68c11.947-14.507 29.44-23.467 49.493-23.467h512c20.053 0 37.547 8.96 49.067 23.467l59.307 71.68zM256 768h256v-128h-256v128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "package"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2149,
+            "id": 413,
+            "prevSize": 24,
+            "code": 59755,
+            "name": "package"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 875
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 938.667h-512.002v-85.333h512.002v85.333zM85.334 938.667v-85.333h298.664v85.333h-298.664zM768 768v-341.333h170.667v341.333h-170.667zM768 128h170.667v256h-170.667v-256zM85.334 768v-640h597.333v640h-597.333zM384 621.333c70.613 0 128-57.387 128-128 0-85.333-128-229.333-128-229.333s-128 144-128 229.333c0 70.613 57.387 128 128 128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "palette-advanced"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2150,
+            "id": 412,
+            "prevSize": 24,
+            "code": 59756,
+            "name": "palette-advanced"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 876
+    }, {
+        "icon": {
+            "paths": [
+                "M746.667 512c-35.413 0-64-28.587-64-64s28.587-64 64-64c35.413 0 64 28.587 64 64s-28.587 64-64 64zM618.667 341.333c-35.413 0-64-28.587-64-64s28.587-64 64-64c35.413 0 64 28.587 64 64s-28.587 64-64 64zM405.333 341.333c-35.413 0-64-28.587-64-64s28.587-64 64-64c35.413 0 64 28.587 64 64s-28.587 64-64 64zM277.333 512c-35.413 0-64-28.587-64-64s28.587-64 64-64c35.413 0 64 28.587 64 64s-28.587 64-64 64zM512 128c-212.053 0-384 171.947-384 384s171.947 384 384 384c35.413 0 64-28.587 64-64 0-16.64-6.4-31.573-16.64-43.093-9.813-11.093-16.213-26.027-16.213-42.24 0-35.413 28.587-64 64-64h75.52c117.76 0 213.333-95.573 213.333-213.333 0-188.587-171.947-341.333-384-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "palette"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2151,
+            "id": 411,
+            "prevSize": 24,
+            "code": 59757,
+            "name": "palette"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 877
+    }, {
+        "icon": {
+            "paths": [
+                "M512 128c74.21 0 143.501 21.050 202.231 57.504 27.328-35 69.922-57.504 117.769-57.504 82.475 0 149.333 66.859 149.333 149.333 0 64.101-40.388 118.769-97.105 139.945 7.689 30.299 11.772 62.034 11.772 94.721 0 212.079-171.921 384-384 384-212.077 0-384-171.921-384-384 0-32.687 4.084-64.422 11.771-94.721-56.716-21.176-97.104-75.844-97.104-139.945 0-82.475 66.859-149.333 149.333-149.333 47.848 0 90.441 22.504 117.77 57.504 58.73-36.454 128.020-57.504 202.23-57.504zM512 213.333c-164.949 0-298.667 133.718-298.667 298.667s133.717 298.667 298.667 298.667c164.949 0 298.667-133.717 298.667-298.667s-133.717-298.667-298.667-298.667zM690.79 439.343c15.245 56.9-4.685 111.684-44.518 122.355-39.829 10.675-84.48-26.803-99.729-83.708-15.245-56.902 4.685-111.683 44.514-122.356 39.834-10.673 84.484 26.804 99.733 83.709zM333.211 439.343c15.247-56.905 59.898-94.382 99.732-83.709 39.829 10.673 59.759 65.455 44.514 122.356-15.249 56.905-59.899 94.383-99.731 83.708-39.832-10.671-59.762-65.455-44.515-122.355zM512 597.333c25.391 0 48.188 8.316 63.821 21.513l-42.487 42.556c0.038 17.643 14.349 31.932 32 31.932 17.673 0 32-14.327 32-32 0-11.78 9.553-21.333 21.333-21.333s21.333 9.553 21.333 21.333c0 41.237-33.429 74.667-74.667 74.667-20.894 0-39.782-8.58-53.333-22.413-13.551 13.833-32.439 22.413-53.333 22.413-41.237 0-74.667-33.429-74.667-74.667 0-11.78 9.551-21.333 21.333-21.333s21.333 9.553 21.333 21.333c0 17.673 14.327 32 32 32s32-14.327 32-32l-42.487-42.487c15.633-13.197 38.43-21.513 63.821-21.513z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "panda"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2152,
+            "id": 410,
+            "prevSize": 24,
+            "code": 59758,
+            "name": "panda"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 878
+    }, {
+        "icon": {
+            "paths": [
+                "M719.936 329.671c0 92.657-51.247 169.507-161.609 169.507h-112.35v-342.888h112.35c110.362 0 161.609 78.806 161.609 173.381zM445.978 668.689v-96.563h112.35c202.999 0 315.311-106.436 315.311-242.455 0-139.908-112.311-244.338-315.311-244.338h-407.968v39.421c132.060 0 155.712 31.537 155.712 228.568v315.367c0 197.069-23.652 230.558-155.712 230.558v39.42h451.296v-39.42c-132.041 0-155.678-33.489-155.678-230.558z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pandora"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2153,
+            "id": 409,
+            "prevSize": 24,
+            "code": 59759,
+            "name": "pandora"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 879
+    }, {
+        "icon": {
+            "paths": [
+                "M512 853.333c-188.16 0-341.333-153.173-341.333-341.333s153.173-341.333 341.333-341.333c188.16 0 341.333 153.173 341.333 341.333s-153.173 341.333-341.333 341.333zM512 85.333c-235.947 0-426.667 190.72-426.667 426.667s190.72 426.667 426.667 426.667c235.947 0 426.667-190.72 426.667-426.667s-190.72-426.667-426.667-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "panorama-fisheye"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2154,
+            "id": 408,
+            "prevSize": 24,
+            "code": 59760,
+            "name": "panorama-fisheye"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 880
+    }, {
+        "icon": {
+            "paths": [
+                "M914.347 170.667c-4.267 0-8.533 0.853-13.227 2.56-125.44 46.933-257.28 69.973-389.12 69.973s-263.68-23.467-389.12-69.973c-4.693-1.707-9.387-2.56-13.227-2.56-14.507 0-24.32 9.813-24.32 26.88v629.333c0 16.64 9.813 26.453 24.32 26.453 4.267 0 8.533-0.853 13.227-2.56 125.44-46.933 257.28-69.973 389.12-69.973s263.68 23.467 389.12 69.973c4.693 1.707 8.96 2.56 13.227 2.56 14.080 0 24.32-9.813 24.32-26.88v-628.907c0-17.067-10.24-26.88-24.32-26.88zM853.333 279.040v465.493c-110.933-32.853-225.28-49.493-341.333-49.493s-230.4 16.64-341.333 49.493v-465.493c110.933 32.853 225.28 49.493 341.333 49.493 116.053 0.427 230.4-16.213 341.333-49.493z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "panorama-horizontal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2155,
+            "id": 407,
+            "prevSize": 24,
+            "code": 59761,
+            "name": "panorama-horizontal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 881
+    }, {
+        "icon": {
+            "paths": [
+                "M279.040 853.333c32.853-110.933 49.493-225.28 49.493-341.333s-16.64-230.4-49.493-341.333h465.493c-32.853 110.933-49.493 225.28-49.493 341.333s16.64 230.4 49.493 341.333zM850.773 901.12c-46.933-125.44-69.973-257.28-69.973-389.12s23.467-263.68 69.973-389.12c1.707-4.693 2.56-9.387 2.56-13.227 0-14.507-9.813-24.32-26.88-24.32h-628.907c-17.067 0-26.88 9.813-26.88 24.32 0 4.267 0.853 8.533 2.56 13.227 46.933 125.44 70.4 257.28 70.4 389.12s-23.467 263.68-69.973 389.12c-2.133 4.693-2.987 9.387-2.987 13.227 0 14.080 9.813 24.32 26.88 24.32h629.333c16.64 0 26.88-10.24 26.88-24.32-0.427-4.267-1.28-8.533-2.987-13.227z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "panorama-vertical"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2156,
+            "id": 406,
+            "prevSize": 24,
+            "code": 59762,
+            "name": "panorama-vertical"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 882
+    }, {
+        "icon": {
+            "paths": [
+                "M512 170.667c-116.48 0-222.72 10.24-339.2 30.72l-39.68 6.827-10.667 38.4c-24.747 88.32-37.12 177.067-37.12 265.387s12.373 177.067 37.12 265.387l10.667 37.973 39.68 6.827c116.48 20.907 222.72 31.147 339.2 31.147s222.72-10.24 339.2-30.72l39.68-6.827 10.667-37.973c24.747-88.747 37.12-177.493 37.12-265.813s-12.373-177.067-37.12-265.387l-10.667-37.973-39.68-6.827c-116.48-20.907-222.72-31.147-339.2-31.147zM512 256c104.533 0 200.96 8.533 311.040 27.307 20.053 75.947 30.293 152.747 30.293 228.693s-10.24 152.747-30.293 228.693c-110.080 18.773-206.507 27.307-311.040 27.307s-200.96-8.533-311.040-27.307c-20.053-75.947-30.293-152.747-30.293-228.693s10.24-152.747 30.293-228.693c110.080-18.773 206.507-27.307 311.040-27.307z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "panorama-wide-angle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2157,
+            "id": 405,
+            "prevSize": 24,
+            "code": 59763,
+            "name": "panorama-wide-angle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 883
+    }, {
+        "icon": {
+            "paths": [
+                "M362.667 533.333l106.667 128.427 149.333-192.427 192 256h-597.333zM981.333 768v-512c0-46.933-38.4-85.333-85.333-85.333h-768c-46.933 0-85.333 38.4-85.333 85.333v512c0 46.933 38.4 85.333 85.333 85.333h768c46.933 0 85.333-38.4 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "panorama"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2158,
+            "id": 404,
+            "prevSize": 24,
+            "code": 59764,
+            "name": "panorama"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 884
+    }, {
+        "icon": {
+            "paths": [
+                "M487.846 138.001l24.154 33.242 24.154-33.242 0.23 0.168c23.266-32.018 61.009-52.835 103.616-52.835 70.694 0 128 57.308 128 128 0 14.961-2.569 29.321-7.283 42.667h92.617c47.13 0 85.333 38.205 85.333 85.333v512c0 47.13-38.204 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333v-512c0-47.128 38.205-85.333 85.333-85.333h92.617c-4.717-13.345-7.284-27.706-7.284-42.667 0-70.692 57.308-128 128-128 42.607 0 80.35 20.817 103.616 52.835l0.23-0.168zM170.667 341.334v511.999h298.667c0-23.565 19.102-42.667 42.667-42.667s42.667 19.102 42.667 42.667h298.667v-511.999h-217.758l90.522 124.59-69.039 50.155-126.959-174.745h-36.198l-126.962 174.745-69.036-50.155 90.519-124.59h-217.755zM384 170.667c-23.564 0-42.667 19.103-42.667 42.667s19.102 42.667 42.667 42.667c23.564 0 42.667-19.103 42.667-42.667s-19.103-42.667-42.667-42.667zM640 170.667c-23.565 0-42.667 19.103-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.103 42.667-42.667s-19.102-42.667-42.667-42.667zM512 682.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667zM512 554.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667zM512 426.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "paper-cut-vertical"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2159,
+            "id": 403,
+            "prevSize": 24,
+            "code": 59765,
+            "name": "paper-cut-vertical"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 885
+    }, {
+        "icon": {
+            "paths": [
+                "M704 256v490.667c0 94.293-76.373 170.667-170.667 170.667s-170.667-76.373-170.667-170.667v-533.333c0-58.88 47.787-106.667 106.667-106.667s106.667 47.787 106.667 106.667v448c0 23.467-19.2 42.667-42.667 42.667s-42.667-19.2-42.667-42.667v-405.333h-64v405.333c0 58.88 47.787 106.667 106.667 106.667s106.667-47.787 106.667-106.667v-448c0-94.293-76.373-170.667-170.667-170.667s-170.667 76.373-170.667 170.667v533.333c0 129.707 104.96 234.667 234.667 234.667s234.667-104.96 234.667-234.667v-490.667h-64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "paperclip"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2160,
+            "id": 402,
+            "prevSize": 24,
+            "code": 59766,
+            "name": "paperclip"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 886
+    }, {
+        "icon": {
+            "paths": [
+                "M563.174 469.252h-136.534v-170.668h136.534c47.104 0 85.333 38.187 85.333 85.333 0 47.148-38.229 85.335-85.333 85.335zM554.641 127.918h-298.667v768.001h170.667v-256h128c141.355 0 256-114.603 256-256.001 0-141.397-114.645-256-256-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "parking"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2161,
+            "id": 401,
+            "prevSize": 24,
+            "code": 59767,
+            "name": "parking"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 887
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 688.469h85.333v-341.331h-85.333zM511.974 859.136c-188.204 0-341.334-153.088-341.334-341.333 0-188.201 153.13-341.331 341.334-341.331s341.333 153.13 341.333 341.331c0 188.245-153.131 341.333-341.333 341.333zM511.974 91.138c-235.649 0-426.667 191.018-426.667 426.665 0 235.691 191.018 426.667 426.667 426.667s426.667-190.976 426.667-426.667c0-235.646-191.019-426.665-426.667-426.665zM383.974 688.469h85.334v-341.331h-85.334v341.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pause-circle-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2162,
+            "id": 400,
+            "prevSize": 24,
+            "code": 59768,
+            "name": "pause-circle-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 888
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 688.469h-85.333v-341.331h85.333zM469.308 688.469h-85.334v-341.331h85.334zM511.974 91.138c-235.649 0-426.667 191.018-426.667 426.665 0 235.691 191.018 426.667 426.667 426.667s426.667-190.976 426.667-426.667c0-235.646-191.019-426.665-426.667-426.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pause-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2163,
+            "id": 399,
+            "prevSize": 24,
+            "code": 59769,
+            "name": "pause-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 889
+    }, {
+        "icon": {
+            "paths": [
+                "M640 682.667h-85.333v-341.333h85.333v341.333zM469.333 682.667h-85.333v-341.333h85.333v341.333zM671.061 128l224.939 224.937v318.124l-224.939 224.939h-318.145l-224.916-224.939v-318.124l224.916-224.937h318.145zM635.716 213.333h-247.448l-174.935 174.952v247.431l174.935 174.95h247.448l174.95-174.95v-247.431l-174.95-174.952z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pause-octagon-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2164,
+            "id": 398,
+            "prevSize": 24,
+            "code": 59770,
+            "name": "pause-octagon-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 890
+    }, {
+        "icon": {
+            "paths": [
+                "M671.061 128l224.939 224.937v318.124l-224.939 224.939h-318.145l-224.916-224.939v-318.124l224.916-224.937h318.145zM640 682.667v-341.333h-85.333v341.333h85.333zM469.333 682.667v-341.333h-85.333v341.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pause-octagon"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2165,
+            "id": 397,
+            "prevSize": 24,
+            "code": 59771,
+            "name": "pause-octagon"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 891
+    }, {
+        "icon": {
+            "paths": [
+                "M597.308 816.512h170.667v-597.332h-170.667zM255.974 816.512h170.667v-597.332h-170.667v597.332z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pause"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2166,
+            "id": 396,
+            "prevSize": 24,
+            "code": 59772,
+            "name": "pause"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 892
+    }, {
+        "icon": {
+            "paths": [
+                "M356.28 128.474c50.269-7.623 103.628 47.516 119.129 123.153 15.543 75.636-12.663 143.1-62.931 150.723-50.311 7.623-103.63-47.516-119.172-123.153-15.5-75.594 12.705-143.1 62.974-150.723zM661.786 128.461c50.27 7.623 78.477 75.128 62.976 150.722-15.543 75.636-68.86 130.776-119.172 123.153-50.27-7.623-78.477-75.086-62.933-150.723 15.501-75.636 68.86-130.776 119.13-123.153zM128.901 324.070c47.898-20.836 113.92 16.601 147.462 83.598 33.498 66.999 21.81 138.231-26.087 159.022-47.94 20.838-113.921-16.602-147.462-83.597-33.499-66.998-21.81-138.188 26.087-159.023zM895.1 324.070c47.898 20.836 59.584 92.026 26.086 159.023-33.54 66.995-99.52 104.435-147.46 83.639-47.898-20.834-59.588-92.066-26.086-159.065 33.54-66.997 99.563-104.434 147.46-83.598zM824.828 784.188c1.779 40.145-29.009 84.655-65.643 101.171-77.414 34.897-167.070-37.649-251.981-37.649-84.909 0-176.046 75.721-251.979 37.649-41.376-20.749-71.19-76.399-65.642-122.347 7.708-63.906 83.98-97.702 129.167-143.522 60.094-60.86 102.952-174.101 188.454-174.101 85.504 0 130.483 111.211 188.459 174.101 47.305 51.285 126.033 94.989 129.165 164.698z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "paw"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2167,
+            "id": 395,
+            "prevSize": 24,
+            "code": 59773,
+            "name": "paw"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 893
+    }, {
+        "icon": {
+            "paths": [
+                "M883.465 300.42c-14.263 14.264-28.527 28.529-28.821 42.499-0.29 13.97 13.385 27.647 27.059 41.324 20.113 20.113 40.226 40.226 39.441 61.129-0.789 20.902-22.477 42.59-44.169 64.277l-176.29 176.294-60.339-60.343 181.018-181.018-41.024-41.026-60.395 60.401-160-159.999 163.52-163.538c16.683-16.686 43.691-16.686 60.331 0l99.669 99.668c16.683 16.637 16.683 43.645 0 60.332zM127.965 735.915l408.078-408.053 160 159.998-408.078 408.055h-160v-160z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pen"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2168,
+            "id": 394,
+            "prevSize": 24,
+            "code": 59774,
+            "name": "pen"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 894
+    }, {
+        "icon": {
+            "paths": [
+                "M810.662 810.667v-597.333h-597.331v597.376l597.331-0.043zM810.658 128.003c47.104 0 85.333 38.229 85.333 85.333v597.331c0 47.147-38.229 85.333-85.333 85.333h-597.33c-47.104 0-85.333-38.187-85.333-85.333v-597.331c0-47.104 38.229-85.333 85.333-85.333h597.33zM712.678 398.966l-42.82 42.817-87.646-87.648 42.82-42.819c9.139-9.14 23.932-9.14 33.050 0l54.596 54.6c9.139 9.114 9.139 23.909 0 33.050zM298.813 637.534l258.623-258.623 87.65 87.649-258.624 258.624h-87.649v-87.65z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pencil-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2169,
+            "id": 393,
+            "prevSize": 24,
+            "code": 59775,
+            "name": "pencil-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 895
+    }, {
+        "icon": {
+            "paths": [
+                "M810.658 128.003c47.104 0 85.333 38.229 85.333 85.333v597.331c0 47.147-38.229 85.333-85.333 85.333h-597.33c-47.104 0-85.333-38.187-85.333-85.333v-597.331c0-47.104 38.229-85.333 85.333-85.333h597.33zM712.678 398.967c9.139-9.141 9.139-23.936 0-33.050l-54.601-54.6c-9.114-9.14-23.906-9.14-33.045 0l-42.82 42.819 87.646 87.648 42.82-42.817zM298.813 637.534v87.65h87.649l258.624-258.624-87.65-87.649-258.623 258.623z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pencil-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2170,
+            "id": 392,
+            "prevSize": 24,
+            "code": 59776,
+            "name": "pencil-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 896
+    }, {
+        "icon": {
+            "paths": [
+                "M883.465 300.419c16.683-16.685 16.683-43.693 0-60.331l-99.669-99.669c-16.64-16.685-43.648-16.685-60.331 0l-78.165 78.164 160 160zM127.964 735.915v160h160l472.108-472.105-160-160-472.108 472.105z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pencil"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2171,
+            "id": 391,
+            "prevSize": 24,
+            "code": 59777,
+            "name": "pencil"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 897
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 213.333c70.692 0 128 57.308 128 128s-57.308 128-128 128c-70.692 0-128-57.307-128-128s57.308-128 128-128zM682.667 213.334c70.69 0 128 57.307 128 128s-57.31 128-128 128c-70.694 0-128-57.307-128-128s57.306-128 128-128zM341.333 554.667c164.949 0 298.667 57.306 298.667 128v128h-597.333v-128c0-70.694 133.718-128 298.667-128zM682.667 554.667c164.949 0 298.667 57.306 298.667 128v128h-256v-128c0-47.68-28.151-91.703-75.729-127.223l33.062-0.777z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "people"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2172,
+            "id": 390,
+            "prevSize": 24,
+            "code": 59778,
+            "name": "people"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 898
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 170.667c70.692 0 128 57.308 128 128s-57.308 128-128 128c-70.692 0-128-57.307-128-128s57.308-128 128-128zM725.333 597.333c70.694 0 128 57.306 128 128s-57.306 128-128 128c-70.694 0-128-57.306-128-128s57.306-128 128-128zM853.333 231.007l-622.327 622.327-60.34-60.339 622.327-622.327 60.339 60.34z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "percent"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2173,
+            "id": 389,
+            "prevSize": 24,
+            "code": 59779,
+            "name": "percent"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 899
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM512 256c-70.694 0-128 57.307-128 128 0 70.694 57.306 128 128 128s128-57.306 128-128c0-70.692-57.306-128-128-128zM512 597.333c-141.385 0-256 57.306-256 128v42.667h512v-42.667c0-70.694-114.615-128-256-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "person-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2174,
+            "id": 388,
+            "prevSize": 24,
+            "code": 59780,
+            "name": "person-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 900
+    }, {
+        "icon": {
+            "paths": [
+                "M42.667 426.667h341.333v85.333h-341.333v-85.333zM640 170.667c94.255 0 170.667 76.41 170.667 170.667 0 94.255-76.412 170.667-170.667 170.667s-170.667-76.412-170.667-170.667c0-94.257 76.412-170.667 170.667-170.667zM981.333 725.333v128h-682.667v-128c0-70.694 152.819-128 341.333-128s341.333 57.306 341.333 128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "person-minus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2175,
+            "id": 387,
+            "prevSize": 24,
+            "code": 59781,
+            "name": "person-minus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 901
+    }, {
+        "icon": {
+            "paths": [
+                "M42.667 426.667h128v-128h85.333v128h128v85.333h-128v128h-85.333v-128h-128v-85.333zM640 170.667c94.255 0 170.667 76.41 170.667 170.667 0 94.255-76.412 170.667-170.667 170.667s-170.667-76.412-170.667-170.667c0-94.257 76.412-170.667 170.667-170.667zM981.333 725.333v128h-682.667v-128c0-70.69 152.819-128 341.333-128s341.333 57.306 341.333 128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "person-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2176,
+            "id": 386,
+            "prevSize": 24,
+            "code": 59782,
+            "name": "person-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 902
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 597.252h-128v128h-85.333v-128h-128v-85.333h128v-128.001h85.333v128.001h128zM895.974 213.251h-112.853l48.853-134.187-100.224-36.48-62.123 170.667h-541.654v85.333l85.333 256.001-85.333 256v85.333h768v-85.333l-85.333-256 85.333-256.001v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pharmacy"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2177,
+            "id": 385,
+            "prevSize": 24,
+            "code": 59783,
+            "name": "pharmacy"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 903
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 661.252c-53.205 0-104.405-8.576-152.405-24.235-14.763-4.779-31.616-1.28-43.349 10.453l-93.867 93.995c-120.875-61.483-219.648-160.171-281.132-280.96l93.867-94.21c11.733-11.69 15.232-28.544 10.41-43.306-15.658-47.957-24.192-99.2-24.192-152.405 0-23.595-19.072-42.667-42.667-42.667h-149.333c-23.595 0-42.667 19.072-42.667 42.667 0 400.582 324.736 725.335 725.334 725.335 23.595 0 42.667-19.072 42.667-42.667v-149.333c0-23.595-19.072-42.667-42.667-42.667zM767.974 307.416l40.064 40.064-40.064 40.107zM767.974 124.248l40.064 40.106-40.064 40.064zM627.473 405.251l97.835-97.835v161.836h21.333l121.728-121.772-91.563-91.563 91.563-91.563-121.728-121.77h-21.333v161.835l-97.835-97.835-30.165 30.165 119.168 119.168-119.168 119.168 30.165 30.165z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "phone-bluetooth"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2178,
+            "id": 384,
+            "prevSize": 24,
+            "code": 59784,
+            "name": "phone-bluetooth"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 904
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 469.248h85.333v-85.331h-85.333zM853.308 661.248c-53.205 0-104.405-8.572-152.405-24.23-14.763-4.779-31.616-1.284-43.349 10.449l-93.867 93.999c-120.875-61.483-219.648-160.175-281.131-280.964l93.867-94.207c11.734-11.69 15.232-28.541 10.411-43.305-15.659-47.959-24.192-99.2-24.192-152.406 0-23.594-19.072-42.667-42.667-42.667h-149.333c-23.594 0-42.667 19.073-42.667 42.667 0 400.595 324.736 725.331 725.333 725.331 23.595 0 42.667-19.072 42.667-42.667v-149.333c0-23.59-19.072-42.667-42.667-42.667zM725.308 383.917h-85.333v85.331h85.333zM554.641 383.917h-85.333v85.331h85.333v-85.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "phone-dots"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2179,
+            "id": 383,
+            "prevSize": 24,
+            "code": 59785,
+            "name": "phone-dots"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 905
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 661.252c-53.205 0-104.405-8.576-152.405-24.235-14.763-4.779-31.616-1.28-43.349 10.453l-93.867 93.995c-120.875-61.483-219.648-160.171-281.132-280.96l93.867-94.21c11.733-11.69 15.232-28.544 10.453-43.306-15.659-48-24.234-99.2-24.234-152.405 0-23.595-19.072-42.667-42.667-42.667h-149.333c-23.595 0-42.667 19.072-42.667 42.667 0 400.582 324.736 725.335 725.334 725.335 23.595 0 42.667-19.072 42.667-42.667v-149.333c0-23.595-19.072-42.667-42.667-42.667zM767.974 469.252l213.333-213.335-213.333-213.333v128h-170.667v170.667h170.667v128.001z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "phone-forward"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2180,
+            "id": 382,
+            "prevSize": 24,
+            "code": 59786,
+            "name": "phone-forward"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 906
+    }, {
+        "icon": {
+            "paths": [
+                "M511.987 383.922c-68.416 0-134.4 10.75-196.224 30.633l-0.043 132.483c0 16.806-9.728 31.36-23.9 38.315-41.636 20.945-79.865 47.612-113.7 79.019-7.68 7.505-18.176 12.117-29.781 12.117-11.769 0-22.435-4.779-30.165-12.506l-105.685-105.724c-7.723-7.68-12.501-18.347-12.501-30.123 0-11.823 4.779-22.528 12.544-30.255 130.048-123.517 305.92-199.293 499.456-199.293s369.408 75.776 499.456 199.293c7.765 7.727 12.544 18.432 12.544 30.255 0 11.776-4.779 22.443-12.501 30.123l-105.685 105.724c-7.731 7.727-18.398 12.506-30.165 12.506-11.605 0-22.101-4.612-29.781-12.117-33.835-31.407-72.064-58.074-113.698-79.019-14.174-6.955-23.902-21.508-23.902-38.315l-0.043-132.483c-61.824-19.883-127.808-30.633-196.224-30.633z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "phone-hangup"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2181,
+            "id": 381,
+            "prevSize": 24,
+            "code": 59787,
+            "name": "phone-hangup"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 907
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 511.919h85.333c0-117.847-95.488-213.335-213.333-213.335v85.333c70.656 0 128 57.345 128 128.001zM810.641 511.919h85.333c0-212.097-171.904-384.001-384-384.001v85.333c164.907 0 298.667 133.717 298.667 298.668zM853.308 661.252c-53.205 0-104.405-8.576-152.405-24.235-14.763-4.779-31.616-1.28-43.349 10.453l-93.867 93.995c-120.875-61.483-219.648-160.171-281.132-280.96l93.867-94.21c11.733-11.733 15.232-28.544 10.41-43.306-15.658-47.957-24.192-99.2-24.192-152.405 0-23.595-19.072-42.667-42.667-42.667h-149.333c-23.595 0-42.667 19.072-42.667 42.667 0 400.582 324.736 725.335 725.334 725.335 23.595 0 42.667-19.072 42.667-42.667v-149.333c0-23.595-19.072-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "phone-in-talk"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2182,
+            "id": 380,
+            "prevSize": 24,
+            "code": 59788,
+            "name": "phone-in-talk"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 908
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 128c-23.467 0-42.667 19.2-42.667 42.667 0 400.64 324.693 725.333 725.333 725.333 23.467 0 42.667-19.2 42.667-42.667v-149.333c0-23.467-19.2-42.667-42.667-42.667-53.333 0-104.546-8.546-152.333-24.333-14.933-4.693-31.552-1.271-43.499 10.249l-93.837 93.833c-120.747-61.44-219.808-159.991-281.248-281.165l93.917-94.251c11.947-11.093 15.36-27.733 10.667-42.667-15.787-47.787-24.333-98.999-24.333-152.333 0-23.467-19.2-42.667-42.667-42.667h-149.333zM810.667 469.333v-64h-149.333l234.667-234.667-42.667-42.667-234.667 234.667v-149.333h-64v256h256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "phone-incoming"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2183,
+            "id": 379,
+            "prevSize": 24,
+            "code": 59789,
+            "name": "phone-incoming"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 909
+    }, {
+        "icon": {
+            "paths": [
+                "M819.183 170.584h-145.067v-21.248c0-40.107 32.384-72.619 72.491-72.619 40.064 0 72.576 32.512 72.576 72.619zM853.316 170.584v-21.248c0-58.965-47.787-106.752-106.752-106.752-58.923 0-106.581 47.787-106.581 106.752v21.248c-23.595 0-42.667 19.115-42.667 42.667v170.667c0 23.552 19.072 42.667 42.667 42.667h213.333c23.552 0 42.667-19.115 42.667-42.667v-170.667c0-23.552-19.115-42.667-42.667-42.667zM853.316 661.252c-53.205 0-104.448-8.576-152.448-24.235-14.72-4.779-31.573-1.28-43.307 10.453l-93.867 93.995c-120.875-61.483-219.606-160.171-281.131-280.96l93.867-94.21c11.69-11.69 15.189-28.544 10.453-43.306-15.702-48-24.235-99.2-24.235-152.405 0-23.595-19.116-42.667-42.667-42.667h-149.333c-23.552 0-42.667 19.072-42.667 42.667 0 400.582 324.736 725.335 725.333 725.335 23.552 0 42.667-19.072 42.667-42.667v-149.333c0-23.595-19.115-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "phone-locked"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2184,
+            "id": 378,
+            "prevSize": 24,
+            "code": 59790,
+            "name": "phone-locked"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 910
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 661.252c23.595 0 42.667 19.072 42.667 42.667v149.333c0 23.595-19.072 42.667-42.667 42.667-400.597 0-725.334-324.753-725.334-725.335 0-23.595 19.071-42.667 42.667-42.667h149.333c23.596 0 42.667 19.072 42.667 42.667 0 53.205 8.535 104.448 24.191 152.405 4.823 14.763 1.323 31.573-10.41 43.306l-93.868 94.21c61.485 120.789 160.258 219.477 281.133 280.96l93.867-93.995c11.733-11.733 28.587-15.232 43.349-10.453 48 15.659 99.2 24.235 152.405 24.235zM512 85.334h85.333v85.333h-85.333v-85.333zM682.667 85.334h256v85.333h-256v-85.333zM512 256h85.333v85.333h-85.333v-85.333zM682.667 256h256v85.333h-256v-85.333zM512 426.667h85.333v85.333h-85.333v-85.333zM682.667 426.667h256v85.333h-256v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "phone-log"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2185,
+            "id": 377,
+            "prevSize": 24,
+            "code": 59791,
+            "name": "phone-log"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 911
+    }, {
+        "icon": {
+            "paths": [
+                "M1011.447 711.232c-130.048-123.563-305.92-199.296-499.456-199.296s-369.409 75.733-499.457 199.296c-7.766 7.723-12.544 18.432-12.544 30.208s4.737 22.443 12.501 30.165l105.643 105.728c7.766 7.723 18.432 12.501 30.208 12.501 11.605 0 22.1-4.651 29.823-12.117 33.793-31.445 72.022-58.112 113.707-79.061 14.122-6.912 23.85-21.461 23.85-38.315v-132.437c61.824-19.925 127.788-30.635 196.268-30.635 68.437 0 134.4 10.709 196.224 30.635v132.437c0 16.853 9.771 31.403 23.893 38.315 41.685 20.949 79.915 47.616 113.707 79.061 7.723 7.467 18.219 12.117 29.781 12.117 11.819 0 22.485-4.779 30.208-12.501l105.685-105.728c7.765-7.723 12.501-18.389 12.501-30.165s-4.779-22.485-12.544-30.208zM277.324 234.603l234.668 234.667 298.667-298.667-42.667-42.667-256 256-192.001-192h149.335v-64h-256.001v256h64v-149.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "phone-missed"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2186,
+            "id": 376,
+            "prevSize": 24,
+            "code": 59792,
+            "name": "phone-missed"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 912
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 128c-23.467 0-42.667 19.2-42.667 42.667 0 400.64 324.693 725.333 725.333 725.333 23.467 0 42.667-19.2 42.667-42.667v-149.333c0-23.467-19.2-42.667-42.667-42.667-53.333 0-104.546-8.546-152.333-24.333-14.933-4.693-31.552-1.271-43.499 10.249l-93.837 93.833c-120.747-61.44-219.808-159.991-281.248-281.165l93.917-94.251c11.947-11.093 15.36-27.733 10.667-42.667-15.787-47.787-24.333-98.999-24.333-152.333 0-23.467-19.2-42.667-42.667-42.667h-149.333zM640 128v64h149.333l-234.667 234.667 42.667 42.667 234.667-234.667v149.333h64v-256h-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "phone-outgoing"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2187,
+            "id": 375,
+            "prevSize": 24,
+            "code": 59793,
+            "name": "phone-outgoing"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 913
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 426.584h85.333v-298.667h-85.333zM853.308 661.252c-53.205 0-104.405-8.576-152.405-24.235-14.763-4.779-31.616-1.28-43.349 10.453l-93.867 93.995c-120.875-61.483-219.648-160.171-281.132-280.96l93.867-94.21c11.733-11.733 15.232-28.544 10.41-43.306-15.658-47.957-24.192-99.2-24.192-152.405 0-23.595-19.072-42.667-42.667-42.667h-149.333c-23.595 0-42.667 19.072-42.667 42.667 0 400.582 324.736 725.335 725.334 725.335 23.595 0 42.667-19.072 42.667-42.667v-149.333c0-23.595-19.072-42.667-42.667-42.667zM725.308 127.918h-85.333v298.667h85.333v-298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "phone-paused"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2188,
+            "id": 374,
+            "prevSize": 24,
+            "code": 59794,
+            "name": "phone-paused"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 914
+    }, {
+        "icon": {
+            "paths": [
+                "M282.573 460.501c61.482 120.789 160.256 219.52 281.131 280.96l93.867-93.995c11.733-11.733 28.587-15.189 43.349-10.453 47.957 15.659 99.2 24.235 152.405 24.235 23.552 0 42.667 19.072 42.667 42.667v149.333c0 23.595-19.115 42.667-42.667 42.667-400.597 0-725.377-324.736-725.377-725.335 0-23.594 19.115-42.667 42.667-42.667h149.333c23.595 0 42.667 19.072 42.667 42.667 0 53.206 8.577 104.448 24.236 152.406 4.779 14.762 1.28 31.616-10.412 43.307l-93.866 94.209z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "phone"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2189,
+            "id": 373,
+            "prevSize": 24,
+            "code": 59795,
+            "name": "phone"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 915
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.334h682.667c47.13 0 85.333 38.205 85.333 85.333v682.667c0 47.13-38.204 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333zM298.667 170.667c-58.91 0-106.667 47.756-106.667 106.667s47.756 106.667 106.667 106.667c58.91 0 106.667-47.756 106.667-106.667s-47.756-106.667-106.667-106.667zM170.667 768v85.333h682.667v-256l-128-128-256 256-128-128-170.667 170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "picture"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2190,
+            "id": 372,
+            "prevSize": 24,
+            "code": 59796,
+            "name": "picture"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 916
+    }, {
+        "icon": {
+            "paths": [
+                "M405.333 384c-35.346 0-64 28.654-64 64 0 35.345 28.654 64 64 64 35.345 0 64-28.655 64-64 0-35.346-28.655-64-64-64zM618.667 384c-35.345 0-64 28.654-64 64s28.655 64 64 64c35.345 0 64-28.655 64-64s-28.655-64-64-64zM512 170.667l29.141 1.089c40.171-33.461 91.119-61.049 129.728-71.395 79.667-21.346 220.169-5.381 238.468 62.902 13.18 49.196-30.409 112.126-97.523 151.447 52.676 65.734 84.186 149.165 84.186 239.955 0 212.079-171.921 384-384 384-212.078 0-384-171.921-384-384 0-90.79 31.508-174.221 84.186-239.955-67.118-39.322-110.705-102.252-97.524-151.447 18.296-68.283 158.801-84.248 238.466-62.902 38.612 10.346 89.559 37.934 129.73 71.395l29.141-1.089zM426.666 682.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667c-23.564 0-42.666-19.102-42.666-42.667s19.102-42.667 42.666-42.667zM597.333 682.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667zM512 554.667c-117.821 0-213.334 99.977-213.334 170.667 0 70.694 95.513 128 213.334 128 117.82 0 213.333-57.306 213.333-128 0-70.69-95.514-170.667-213.333-170.667zM331.043 182.787c-18.968-5.082-135.409 2.939-135.409 2.939s94.355 74.405 113.323 79.487c18.967 5.082 107.976 9.156 114.075-13.606 6.101-22.761-73.021-63.738-91.989-68.82zM692.958 182.787c-18.97 5.082-98.091 46.059-91.989 68.82 6.097 22.761 95.108 18.688 114.074 13.606 18.97-5.082 113.323-79.487 113.323-79.487s-116.442-8.021-135.407-2.939z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pig"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2191,
+            "id": 371,
+            "prevSize": 24,
+            "code": 59797,
+            "name": "pig"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 917
+    }, {
+        "icon": {
+            "paths": [
+                "M180.131 481.83l301.699-301.698c99.972-99.974 262.063-99.974 362.035 0 99.977 99.974 99.977 262.065 0 362.037l-301.696 301.7c-99.977 99.972-262.065 99.972-362.039 0-99.974-99.977-99.974-262.067 0-362.039zM240.47 542.17c-44.668 44.668-59.4 107.938-44.195 164.873l255.386-255.381 181.018 181.018 150.848-150.848c66.65-66.65 66.65-174.71 0-241.36s-174.707-66.65-241.357 0l-301.699 301.699z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pill"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2192,
+            "id": 370,
+            "prevSize": 24,
+            "code": 59798,
+            "name": "pill"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 918
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-253.103-253.103v253.022h-68.267v-256h-221.867v-85.333l85.333-85.333v-31.155l-255.974-255.975zM682.641 511.919l85.333 85.333v85.333h-7.62l-419.047-419.046v-92.955h-42.667v-85.333h426.667v85.333h-42.667v341.335z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pin-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2193,
+            "id": 369,
+            "prevSize": 24,
+            "code": 59799,
+            "name": "pin-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 919
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 511.919v-341.335h42.667v-85.333h-426.667v85.333h42.667v341.335l-85.333 85.333v85.333h221.867v256h68.267v-256h221.867v-85.333l-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pin"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2194,
+            "id": 368,
+            "prevSize": 24,
+            "code": 59800,
+            "name": "pin"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 920
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.333h682.667c47.13 0 85.333 38.205 85.333 85.333v682.667c0 47.13-38.204 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333zM469.333 810.667h85.333v-85.333h213.333l-170.667-170.667h128l-170.667-170.667h128l-170.667-170.667-170.667 170.667h128l-170.667 170.667h128l-170.667 170.667h213.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pine-tree-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2195,
+            "id": 367,
+            "prevSize": 24,
+            "code": 59801,
+            "name": "pine-tree-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 921
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 896v-128h-298.667l213.333-213.333h-128l213.333-213.333h-128l213.333-213.333 213.333 213.333h-128l213.333 213.333h-128l213.333 213.333h-298.667v128h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pine-tree"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2196,
+            "id": 366,
+            "prevSize": 24,
+            "code": 59802,
+            "name": "pine-tree"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 922
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 691.127c-34.219 0-66.901-14.464-90.283-39.253l-40.619 136.533-2.901 8.832-1.365-0.469c-8.363 13.824-23.211 22.357-39.765 22.357-25.856 0-46.933-21.035-46.933-46.976 0-2.176 0.256-4.224 0.597-6.187l-0.725-0.299 2.304-7.595 78.891-237.312c0 0-8.533-26.155-8.533-62.848 0-73.345 39.339-95.319 70.997-95.319s60.459 11.307 60.459 55.979c0 57.345-37.931 86.7-37.931 128.129 0 31.573 25.728 57.259 57.31 57.259 99.575 0 135.031-75.093 135.031-145.365 0-92.929-80.384-168.535-179.2-168.535s-179.2 75.605-179.2 168.535c0.043 28.757 8.021 57.344 23.125 82.56 3.968 6.656 6.059 14.165 6.059 21.973 0 23.552-19.151 42.667-42.667 42.667-15.189 0-29.397-8.107-36.992-21.12-22.784-38.229-34.859-81.835-34.859-126.080 0-139.991 118.656-253.868 264.533-253.868s264.533 113.877 264.533 253.868c0 112-69.461 232.533-221.867 232.533zM853.308 85.26h-682.667c-47.147 0-84.907 38.187-84.907 85.333l-0.427 682.668c0 47.104 38.187 85.333 85.333 85.333h682.667c47.104 0 85.333-38.229 85.333-85.333v-682.668c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pinterest-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2197,
+            "id": 365,
+            "prevSize": 24,
+            "code": 59803,
+            "name": "pinterest-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 923
+    }, {
+        "icon": {
+            "paths": [
+                "M565.308 735.927c-42.773 0-83.627-18.082-112.853-49.067l-50.773 170.667-3.627 11.038-1.707-0.585c-10.453 17.28-29.013 27.947-49.707 27.947-32.32 0-58.667-26.295-58.667-58.722 0-2.718 0.32-5.278 0.747-7.731l-0.907-0.375 2.88-9.493 98.613-296.64c0 0-10.667-32.691-10.667-78.558 0-91.681 49.173-119.148 88.747-119.148s75.575 14.134 75.575 69.973c0 71.682-47.415 108.375-47.415 160.16 0 39.467 32.158 71.573 71.633 71.573 124.471 0 168.794-93.867 168.794-181.705 0-116.161-100.48-210.668-224-210.668s-224 94.507-224 210.668c0.053 35.947 10.027 71.68 28.907 103.198 4.96 8.32 7.573 17.707 7.573 27.469 0 29.44-23.939 53.333-53.333 53.333-18.987 0-36.747-10.133-46.24-26.402-28.48-47.787-43.573-102.293-43.573-157.598 0-174.988 148.32-317.335 330.667-317.335 182.345 0 330.667 142.346 330.667 317.335 0 139.998-86.827 290.667-277.333 290.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pinterest"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2198,
+            "id": 364,
+            "prevSize": 24,
+            "code": 59804,
+            "name": "pinterest"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 924
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 639.919c-47.104 0-85.334-38.187-85.334-85.333s38.23-85.333 85.334-85.333c47.104 0 85.333 38.187 85.333 85.333s-38.229 85.333-85.333 85.333zM298.641 298.584c0-47.147 38.186-85.333 85.333-85.333 47.104 0 85.334 38.187 85.334 85.333s-38.229 85.333-85.334 85.333c-47.147 0-85.333-38.187-85.333-85.333zM511.974 85.251c-152.193 0-289.024 65.877-383.532 170.624l383.532 682.711 383.701-682.497c-94.507-104.875-231.381-170.837-383.701-170.837z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pizza"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2199,
+            "id": 363,
+            "prevSize": 24,
+            "code": 59805,
+            "name": "pizza"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 925
+    }, {
+        "icon": {
+            "paths": [
+                "M85.773 896l895.573-384-895.573-384-0.427 298.667 640 85.333-640 85.333 0.427 298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "plane"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2200,
+            "id": 362,
+            "prevSize": 24,
+            "code": 59806,
+            "name": "plane"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 926
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 810.586l-597.334 0.043v-597.377h597.334zM810.641 127.918h-597.334c-47.104 0-85.333 38.229-85.333 85.333v597.335c0 47.147 38.229 85.333 85.333 85.333h597.334c47.104 0 85.333-38.187 85.333-85.333v-597.335c0-47.104-38.229-85.333-85.333-85.333zM426.641 341.251v341.335l213.334-170.667-213.334-170.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "play-box-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2201,
+            "id": 361,
+            "prevSize": 24,
+            "code": 59807,
+            "name": "play-box-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 927
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 859.17c-188.202 0-341.332-153.126-341.332-341.333 0-188.201 153.13-341.332 341.332-341.332s341.333 153.13 341.333 341.332c0 188.207-153.131 341.333-341.333 341.333zM511.974 91.172c-235.647 0-426.665 191.018-426.665 426.665 0 235.652 191.018 426.667 426.665 426.667s426.667-191.014 426.667-426.667c0-235.647-191.019-426.665-426.667-426.665zM426.642 709.837l255.999-192-255.999-191.998v383.998z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "play-circle-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2202,
+            "id": 360,
+            "prevSize": 24,
+            "code": 59808,
+            "name": "play-circle-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 928
+    }, {
+        "icon": {
+            "paths": [
+                "M426.641 709.82v-384.002l256 192.002zM511.974 91.151c-235.649 0-426.667 191.018-426.667 426.669 0 235.648 191.018 426.667 426.667 426.667s426.667-191.019 426.667-426.667c0-235.651-191.019-426.669-426.667-426.669z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "play-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2203,
+            "id": 359,
+            "prevSize": 24,
+            "code": 59809,
+            "name": "play-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 929
+    }, {
+        "icon": {
+            "paths": [
+                "M341.307 219.172v597.332l469.334-298.667-469.334-298.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "play"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2204,
+            "id": 358,
+            "prevSize": 24,
+            "code": 59810,
+            "name": "play"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 930
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 682.667h341.333v-85.333h-341.333zM512 597.333v85.333h426.667v-85.333zM597.333 256h-512v85.333h512zM597.333 426.667h-512v85.333h512v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "playlist-minus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2205,
+            "id": 357,
+            "prevSize": 24,
+            "code": 59811,
+            "name": "playlist-minus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 931
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 682.667h341.333v-85.333h-341.333zM768 597.333v-170.667h-85.333v170.667h-170.667v85.333h170.667v170.667h85.333v-170.667h170.667v-85.333zM597.333 256h-512v85.333h512zM597.333 426.667h-512v85.333h512v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "playlist-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2206,
+            "id": 356,
+            "prevSize": 24,
+            "code": 59812,
+            "name": "playlist-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 932
+    }, {
+        "icon": {
+            "paths": [
+                "M404.989 182.228c59.139 10.958 145.432 36.953 191.764 52.564 117.948 40.495 157.909 90.815 157.909 204.291 0 110.72-68.331 152.597-155.068 110.72v-206.138c0-24.155-4.437-46.444-27.23-52.751-17.284-5.579-28.134 10.551-28.134 34.693v516.164l-139.241-44.156v-615.387zM570.641 751.787l223.953-79.808c25.34-9.067 29.257-21.909 8.674-28.668-20.663-6.788-58.065-4.791-83.435 4.305l-149.193 52.506v-83.657l8.593-2.876c0 0 43.14-15.253 103.765-21.956 60.608-6.677 134.848 0.875 193.088 22.955 65.711 20.813 73.118 51.358 56.457 72.439-16.747 21.043-57.626 36.087-57.626 36.087l-304.277 109.257v-80.585zM149.596 743.381c-67.439-18.995-78.694-58.517-48.010-81.289 28.485-21.056 76.743-36.954 76.743-36.954l199.65-70.942v80.828l-143.616 51.443c-25.447 9.173-29.302 21.995-8.719 28.762 20.661 6.763 57.987 4.847 83.418-4.309l68.918-24.956v72.371l-13.774 2.3c-68.949 11.281-142.305 6.613-214.608-17.254z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "playstation"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2207,
+            "id": 355,
+            "prevSize": 24,
+            "code": 59813,
+            "name": "playstation"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 933
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 554.586h-170.667v170.667h-85.333v-170.667h-170.667v-85.333h170.667v-170.665h85.333v170.665h170.667zM810.641 127.92h-597.333c-47.189 0-85.333 38.229-85.333 85.333v597.332c0 47.104 38.144 85.333 85.333 85.333h597.333c47.061 0 85.333-38.229 85.333-85.333v-597.332c0-47.104-38.272-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "plus-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2208,
+            "id": 354,
+            "prevSize": 24,
+            "code": 59814,
+            "name": "plus-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 934
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 853.248c-188.203 0-341.333-153.126-341.333-341.333 0-188.201 153.131-341.331 341.333-341.331s341.333 153.13 341.333 341.331c0 188.207-153.131 341.333-341.333 341.333zM511.974 85.25c-235.648 0-426.667 191.018-426.667 426.665 0 235.652 191.019 426.667 426.667 426.667s426.667-191.014 426.667-426.667c0-235.646-191.019-426.665-426.667-426.665zM554.641 298.583h-85.333v170.665h-170.667v85.333h170.667v170.667h85.333v-170.667h170.667v-85.333h-170.667v-170.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "plus-circle-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2209,
+            "id": 353,
+            "prevSize": 24,
+            "code": 59815,
+            "name": "plus-circle-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 935
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 554.581h-170.667v170.667h-85.333v-170.667h-170.667v-85.333h170.667v-170.665h85.333v170.665h170.667zM511.974 85.25c-235.648 0-426.667 191.018-426.667 426.665 0 235.652 191.019 426.667 426.667 426.667s426.667-191.014 426.667-426.667c0-235.646-191.019-426.665-426.667-426.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "plus-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2210,
+            "id": 352,
+            "prevSize": 24,
+            "code": 59816,
+            "name": "plus-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 936
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 469.312v-85.333h-128v-128h-85.333v128h-128v85.333h128v128h85.333v-128h128zM725.333 128c47.061 0 85.333 38.229 85.333 85.333v426.667c0 47.104-38.272 85.333-85.333 85.333h-170.667v85.333h42.667c23.565 0 42.667 19.102 42.667 42.667h298.667v85.333h-298.667c0 23.565-19.102 42.667-42.667 42.667h-170.667c-23.564 0-42.666-19.102-42.666-42.667h-298.667v-85.333h298.667c0-23.565 19.102-42.667 42.666-42.667h42.667v-85.333h-170.667c-47.189 0-85.333-38.229-85.333-85.333v-426.667c0-47.104 38.144-85.333 85.333-85.333h426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "plus-network"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2211,
+            "id": 351,
+            "prevSize": 24,
+            "code": 59817,
+            "name": "plus-network"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 937
+    }, {
+        "icon": {
+            "paths": [
+                "M426.641 341.251v170.668h170.667v85.333h-170.667v170.667h-85.333v-170.667h-170.667v-85.333h170.667v-170.668h85.333zM618.641 259.335l192-46.080v554.668h-85.333v-452.268l-106.667 21.333v-77.653z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "plus-one"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2212,
+            "id": 350,
+            "prevSize": 24,
+            "code": 59818,
+            "name": "plus-one"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 938
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 554.581h-256v256h-85.333v-256h-256.002v-85.333h256.002v-255.998h85.333v255.998h256v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2213,
+            "id": 349,
+            "prevSize": 24,
+            "code": 59819,
+            "name": "plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 939
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 512c0 235.639-191.027 426.667-426.667 426.667-235.642 0-426.667-191.027-426.667-426.667v-320c0-58.91 47.756-106.666 106.667-106.666h640c58.91 0 106.667 47.756 106.667 106.666v320zM677.722 351.801l-165.534 165.532-165.8-165.799c-24.993-24.993-65.516-24.993-90.509 0s-24.993 65.516 0 90.51l210.656 211.456c24.994 24.994 65.515 24.994 90.509 0l211.187-211.191c24.994-24.992 24.994-65.514 0-90.507s-65.515-24.993-90.509 0z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pocket"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2214,
+            "id": 348,
+            "prevSize": 24,
+            "code": 59820,
+            "name": "pocket"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 940
+    }, {
+        "icon": {
+            "paths": [
+                "M725.308 725.252h-85.333v-170.667h85.333zM554.641 725.252h-85.333v-426.668h85.333zM383.974 725.252h-85.333v-298.668h85.333zM810.641 127.918h-597.334c-47.147 0-85.333 38.187-85.333 85.333v597.335c0 47.083 38.187 85.333 85.333 85.333h597.334c47.104 0 85.333-38.251 85.333-85.333v-597.335c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "poll-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2215,
+            "id": 347,
+            "prevSize": 24,
+            "code": 59821,
+            "name": "poll-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 941
+    }, {
+        "icon": {
+            "paths": [
+                "M128 938.667v-597.333h170.667v597.333h-170.667zM426.666 938.667v-853.333h170.667v853.333h-170.667zM725.333 938.667v-341.333h170.667v341.333h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "poll"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2216,
+            "id": 346,
+            "prevSize": 24,
+            "code": 59822,
+            "name": "poll"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 942
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 170.583h-170.667l-336.853 538.967-111.147-197.636 192-341.331h-170.667l-192 341.331 192 341.333h170.667l336.854-538.964 111.147 197.631-192 341.333h170.667l192-341.333-192-341.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "polymer"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2217,
+            "id": 345,
+            "prevSize": 24,
+            "code": 59823,
+            "name": "polymer"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 943
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 938.667h-95.999c0 0-32 0-39.954-57.668l-75.555-718.438-1.824-13.226c0-35.346 38.205-64 85.333-64 47.037 0 85.185 28.543 85.332 63.795 0.147-35.252 38.295-63.796 85.333-63.796 47.128 0 85.333 28.654 85.333 64 0-35.346 38.204-64 85.334-64 46.562 0 84.416 27.97 85.291 64.358l0.043-0.358c0-35.346 38.204-64 85.333-64 47.036 0 85.184 28.544 85.333 63.796 0.145-35.252 38.293-63.795 85.333-63.795 47.125 0 85.333 28.654 85.333 64l-1.826 13.225-75.554 718.438c-7.953 57.668-39.953 57.668-39.953 57.668h-522.667zM761.677 210.447c-12.732-23.337-43.311-39.779-79.010-39.779-34.428 0-69.79 15.292-86.345 37.315l-8.457 645.351h122.893l50.918-642.886zM427.678 207.983c-16.556-22.022-51.916-37.315-86.345-37.315-35.699 0-66.278 16.442-79.011 39.779l50.92 642.886h122.893l-8.457-645.35z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "popcorn"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2218,
+            "id": 344,
+            "prevSize": 24,
+            "code": 59824,
+            "name": "popcorn"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 944
+    }, {
+        "icon": {
+            "paths": [
+                "M128 213.333c0-47.104 38.144-85.333 85.333-85.333h597.333c47.083 0 85.333 38.229 85.333 85.333v597.333c0 47.104-38.251 85.333-85.333 85.333h-597.333c-47.189 0-85.333-38.229-85.333-85.333v-597.333zM298.667 768h85.333l15.046-85.333h170.665l-15.044 85.333h85.333l15.044-85.333h85.333l15.049-85.333h-85.333l30.093-170.667h85.333l15.049-85.332h-85.338l15.049-85.334h-85.333l-15.049 85.334h-170.662l15.044-85.334h-85.332l-15.047 85.334-85.333-0-15.047 85.333h85.333l-30.093 170.667h-85.333l-15.047 85.333h85.333l-15.046 85.333zM444.186 426.667h170.667l-30.093 170.667h-170.667l30.093-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pound-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2219,
+            "id": 343,
+            "prevSize": 24,
+            "code": 59825,
+            "name": "pound-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 945
+    }, {
+        "icon": {
+            "paths": [
+                "M230.957 896l30.093-170.667h-170.666l15.046-85.333h170.667l45.139-256-170.666-0 15.046-85.333h170.667l30.093-170.667h85.332l-30.092 170.667 255.999 0 30.093-170.667h85.333l-30.093 170.667 170.667-0-15.044 85.333-170.667 0-45.141 255.999h170.667l-15.044 85.333h-170.667l-30.097 170.667h-85.333l30.097-170.667h-256.002l-30.093 170.667h-85.333zM406.569 384l-45.139 256h255.999l45.141-255.999-256.001-0z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pound"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2220,
+            "id": 342,
+            "prevSize": 24,
+            "code": 59826,
+            "name": "pound"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 946
+    }, {
+        "icon": {
+            "paths": [
+                "M640 1024h85.333v-85.333h-85.333zM706.56 189.44l-61.867 61.867c73.813 44.8 123.307 125.44 123.307 218.027 0 141.227-114.773 256-256 256s-256-114.773-256-256c0-92.587 49.493-173.227 122.88-218.453l-61.44-61.44c-88.747 61.44-146.773 163.84-146.773 279.893 0 188.587 152.747 341.333 341.333 341.333s341.333-152.747 341.333-341.333c0-116.053-58.027-218.453-146.773-279.893zM554.667 85.333h-85.333v426.667h85.333zM469.333 1024h85.333v-85.333h-85.333zM298.667 1024h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "power-settings"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2221,
+            "id": 341,
+            "prevSize": 24,
+            "code": 59827,
+            "name": "power-settings"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 947
+    }, {
+        "icon": {
+            "paths": [
+                "M640 640h85.333v-170.667h-85.333zM298.667 640h85.333v-170.667h-85.333zM469.333 554.667h85.333v-170.667h-85.333zM376.747 298.667h271.787l162.133 162.133v264.533h-597.333v-264.533zM341.333 213.333l-213.333 213.333v384h768v-384l-213.333-213.333h-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "power-socket"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2222,
+            "id": 340,
+            "prevSize": 24,
+            "code": 59828,
+            "name": "power-socket"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 948
+    }, {
+        "icon": {
+            "paths": [
+                "M706.56 232.107l-61.867 61.867c73.813 44.8 123.307 125.44 123.307 218.027 0 141.227-114.773 256-256 256s-256-114.773-256-256c0-92.587 49.493-173.227 122.88-218.453l-61.44-61.44c-88.747 61.44-146.773 163.84-146.773 279.893 0 188.587 152.747 341.333 341.333 341.333s341.333-152.747 341.333-341.333c0-116.053-58.027-218.453-146.773-279.893zM554.667 128h-85.333v426.666h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "power"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2223,
+            "id": 339,
+            "prevSize": 24,
+            "code": 59829,
+            "name": "power"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 949
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 128h341.333c0-47.128 38.204-85.333 85.333-85.333s85.333 38.205 85.333 85.333h341.333v85.333h-42.667v469.333h-245.333l74.667 256h-85.333l-74.667-256h-106.667l-74.667 256h-85.333l74.667-256h-245.333v-469.333h-42.667v-85.333zM213.333 213.334v384h597.333v-384h-597.333zM505.754 505.754c-3.861 3.857-9.195 6.246-15.087 6.246-11.78 0-21.333-9.553-21.333-21.333v-170.666c0-11.782 9.553-21.333 21.333-21.333 5.892 0 11.226 2.388 15.087 6.249l59.58 59.581c13.611 13.612 27.226 27.224 27.226 40.837s-13.615 27.225-27.226 40.836l-59.58 59.584z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "presentation-play"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2224,
+            "id": 338,
+            "prevSize": 24,
+            "code": 59830,
+            "name": "presentation-play"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 950
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 128h341.333c0-47.128 38.204-85.333 85.333-85.333s85.333 38.205 85.333 85.333h341.333v85.333h-42.667v469.333h-245.333l74.667 256h-85.333l-74.667-256h-106.667l-74.667 256h-85.333l74.667-256h-245.333v-469.333h-42.667v-85.333zM213.333 213.334v384h597.333v-384h-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "presentation"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2225,
+            "id": 337,
+            "prevSize": 24,
+            "code": 59831,
+            "name": "presentation"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 951
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 256c23.595 0 42.667-19.072 42.667-42.667s-19.072-42.667-42.667-42.667c-23.595 0-42.667 19.072-42.667 42.667s19.072 42.667 42.667 42.667zM810.667 85.334c70.699 0 128 57.301 128 128v256h-170.641v-170.584h-512l-0.026 170.584h-170.667v-256c0-70.656 57.344-128 128-128h597.333zM767.974 778.667c0 16.265-9.101 30.4-22.485 37.602l-209.353 114.901c-6.869 4.727-15.194 7.497-24.162 7.497-8.973 0-17.297-2.769-24.166-7.501l-209.342-114.893c-13.389-7.198-22.492-21.342-22.492-37.606v-224c0-16.265 9.103-30.409 22.492-37.606l209.342-104.228c6.869-4.73 15.194-7.499 24.166-7.499 8.969 0 17.293 2.769 24.166 7.498l209.348 104.233c13.385 7.202 22.485 21.338 22.485 37.602v224zM512.013 497.105l-126.279 57.562 126.279 68.228 126.217-68.228-126.217-57.562zM341.307 753.702l128 69.193v-126.123l-128-69.188v126.118zM682.641 753.702v-126.118l-128 69.188v126.161l128-69.231z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "printer-3d"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2226,
+            "id": 336,
+            "prevSize": 24,
+            "code": 59832,
+            "name": "printer-3d"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 952
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 127.918h-512v170.667h512zM810.641 511.919c-23.595 0-42.667-19.072-42.667-42.667s19.072-42.668 42.667-42.668c23.595 0 42.667 19.073 42.667 42.668s-19.072 42.667-42.667 42.667zM682.641 810.586h-341.334v-213.333h341.334zM810.641 341.251h-597.334c-70.656 0-128 57.344-128 128.001v256h170.667v170.667h512v-170.667h170.667v-256c0-70.7-57.301-128.001-128-128.001z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "printer"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2227,
+            "id": 335,
+            "prevSize": 24,
+            "code": 59833,
+            "name": "printer"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 953
+    }, {
+        "icon": {
+            "paths": [
+                "M128 554.667h119.089l183.819-350.119 50.287 381.983 136.836-174.512 142.647 142.648h135.322v85.333h-170.667l-99.558-99.558-202.687 258.492-41.674-316.544-82.748 157.611h-170.667v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "pulse"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2228,
+            "id": 334,
+            "prevSize": 24,
+            "code": 59834,
+            "name": "pulse"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 954
+    }, {
+        "icon": {
+            "paths": [
+                "M874.641 469.248h-64v-170.665c0-47.104-38.229-85.333-85.333-85.333h-170.667v-64c0-58.922-47.744-106.667-106.667-106.667s-106.667 47.745-106.667 106.667v64h-170.667c-47.104 0-84.906 38.229-84.906 85.333l-0.129 162.131h63.702c63.616 0 115.2 51.584 115.2 115.2 0 63.62-51.584 115.204-115.2 115.204h-63.872l-0.128 162.129c0 47.108 38.229 85.333 85.333 85.333h162.133v-64c0-63.616 51.584-115.2 115.201-115.2s115.2 51.584 115.2 115.2v64h162.133c47.104 0 85.333-38.225 85.333-85.333v-170.667h64c58.923 0 106.667-47.744 106.667-106.667 0-58.918-47.744-106.667-106.667-106.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "puzzle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2229,
+            "id": 333,
+            "prevSize": 24,
+            "code": 59835,
+            "name": "puzzle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 955
+    }, {
+        "icon": {
+            "paths": [
+                "M213.334 213.333h85.333v85.333h-85.333v-85.333zM42.667 42.668l426.667 0v426.665h-426.667v-426.665zM128 128.001v256l256 0v-256h-256zM213.333 725.333h85.333v85.333h-85.333v-85.333zM42.667 554.667h426.667v426.667h-426.667v-426.667zM128 640v256h256v-256h-256zM725.333 213.334h85.333v85.333h-85.333v-85.333zM554.667 42.668l426.662 0v426.665h-426.662v-426.665zM640 128.001v256l256 0v-256h-256zM554.667 554.667h170.667v85.333h85.333v-85.333h170.667v85.333h-170.667v85.333h170.667v256h-170.667v-85.333h-170.667v85.333h-85.333v-85.333h85.333v-85.333h-85.333v-256zM896 896v-85.333h-85.333v85.333h85.333zM810.667 725.333h-85.333v-85.333h-85.333v170.667h170.667v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "qrcode"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2230,
+            "id": 332,
+            "prevSize": 24,
+            "code": 59836,
+            "name": "qrcode"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 956
+    }, {
+        "icon": {
+            "paths": [
+                "M234.667 42.667c106.039 0 192 85.961 192 192 0 37.57-10.791 72.62-29.442 102.218l4.448 4.448h220.655l4.446-4.448c-18.65-29.599-29.44-64.649-29.44-102.218 0-106.039 85.961-192 192-192s192 85.961 192 192c0 106.039-85.961 192-192 192-37.568 0-72.619-10.791-102.217-29.442l-47.117 47.115v135.322l47.117 47.117c29.598-18.654 64.649-29.444 102.217-29.444 106.039 0 192 85.961 192 192s-85.961 192-192 192c-106.039 0-192-85.961-192-192 0-37.568 10.79-72.619 29.44-102.217l-4.446-4.45h-220.655l-4.448 4.45c18.651 29.598 29.442 64.649 29.442 102.217 0 106.039-85.961 192-192 192s-192-85.961-192-192c0-106.039 85.961-192 192-192 37.57 0 72.619 10.79 102.218 29.44l47.115-47.113v-135.322l-47.116-47.114c-29.599 18.651-64.648 29.442-102.218 29.442-106.039 0-192-85.961-192-192s85.961-192 192-192zM234.666 128.001c-58.91 0-106.666 47.756-106.666 106.667s47.756 106.667 106.666 106.667c58.91 0 106.667-47.756 106.667-106.667s-47.756-106.667-106.667-106.667zM234.666 682.667c-58.91 0-106.666 47.757-106.666 106.667s47.756 106.667 106.666 106.667c58.91 0 106.667-47.757 106.667-106.667s-47.756-106.667-106.667-106.667zM789.333 128.001c-58.91 0-106.667 47.756-106.667 106.667s47.757 106.667 106.667 106.667c58.91 0 106.667-47.756 106.667-106.667s-47.757-106.667-106.667-106.667zM789.333 682.667c-58.91 0-106.667 47.757-106.667 106.667s47.757 106.667 106.667 106.667c58.91 0 106.667-47.757 106.667-106.667s-47.757-106.667-106.667-106.667zM166.861 736.111l48.276 27.87c5.403-4.169 12.177-6.647 19.529-6.647 17.673 0 32 14.327 32 32l-0.278 4.237 48.274 27.874-12.19 21.111-48.277-27.87c-5.403 4.169-12.177 6.647-19.529 6.647-17.673 0-32-14.327-32-32l0.278-4.237-48.274-27.874 12.19-21.111zM154.671 266.777l48.274-27.871-0.278-4.239c0-17.673 14.327-32 32-32 7.353 0 14.126 2.48 19.53 6.649l48.276-27.872 12.191 21.114-48.274 27.871 0.278 4.238c0 17.673-14.327 32-32 32-7.352 0-14.126-2.479-19.529-6.648l-48.276 27.873-12.191-21.115zM721.527 181.443l48.277 27.873c5.402-4.169 12.177-6.649 19.529-6.649 17.673 0 32 14.327 32 32l-0.277 4.239 48.273 27.871-12.19 21.114-48.277-27.872c-5.402 4.169-12.177 6.648-19.529 6.648-17.673 0-32-14.327-32-32l0.277-4.238-48.273-27.872 12.19-21.115zM709.338 821.444l47.996-32.111c0-17.673 14.327-32 32-32 7.351 0 14.127 2.479 19.529 6.647l48.277-27.87 12.19 21.111-47.996 32.111c0 17.673-14.327 32-32 32-7.351 0-14.127-2.479-19.529-6.647l-48.277 27.87-12.19-21.111z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "quadcopter"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2231,
+            "id": 331,
+            "prevSize": 24,
+            "code": 59837,
+            "name": "quadcopter"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 957
+    }, {
+        "icon": {
+            "paths": [
+                "M618.641 575.915h85.333v-128h-85.333zM767.974 597.248c0 23.552-19.072 42.667-42.667 42.667h-32v64h-64v-64h-32c-23.595 0-42.667-19.115-42.667-42.667v-170.665c0-23.552 19.072-42.667 42.667-42.667h128c23.595 0 42.667 19.114 42.667 42.667zM469.308 639.915h-64v-85.333h-85.333v85.333h-64v-255.998h64v106.665h85.333v-106.665h64zM810.641 170.583h-597.333c-47.147 0-85.333 38.229-85.333 85.333v511.998c0 47.108 38.187 85.333 85.333 85.333h597.333c47.104 0 85.333-38.225 85.333-85.333v-511.998c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "quality-high"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2232,
+            "id": 330,
+            "prevSize": 24,
+            "code": 59838,
+            "name": "quality-high"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 958
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c-235.643 0-426.667 191.002-426.667 426.667s191.023 426.667 426.667 426.667c235.665 0 426.667-191.002 426.667-426.667s-191.002-426.667-426.667-426.667zM554.667 810.667h-85.333v-85.333h85.333v85.333zM642.846 480.158l-38.191 39.164c-30.882 30.886-49.988 56.678-49.988 120.678h-85.333v-21.325c0-47.125 19.106-89.792 49.98-120.674l53.030-53.666c15.437-15.445 24.99-36.774 24.99-60.335 0-47.13-38.208-85.333-85.333-85.333s-85.333 38.204-85.333 85.333h-85.333c0-94.259 76.416-170.667 170.667-170.667 94.259 0 170.667 76.407 170.667 170.667 0 37.551-15.219 71.548-39.821 96.158z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "question-mark-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2233,
+            "id": 329,
+            "prevSize": 24,
+            "code": 59839,
+            "name": "question-mark-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 959
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 768l-298.667-298.667 298.667-298.667v170.667c341.333 0 469.333 469.333 469.333 469.333s-128-213.333-469.333-213.333v170.667zM298.667 768l-298.667-298.667 298.667-298.667v128l-170.667 170.667 170.667 170.667v128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "quick-reply"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2234,
+            "id": 328,
+            "prevSize": 24,
+            "code": 59840,
+            "name": "quick-reply"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 960
+    }, {
+        "icon": {
+            "paths": [
+                "M512 128c212.079 0 384 171.923 384 384 0 75.093-21.555 145.148-58.812 204.322l58.812 58.816v78.195c0 23.565-19.102 42.667-42.667 42.667h-77.828l-58.957-58.957c-59.221 37.346-129.361 58.957-204.548 58.957-212.077 0-384-171.921-384-384 0-212.077 171.923-384 384-384zM512 298.667c-117.821 0-213.333 95.513-213.333 213.333s95.512 213.333 213.333 213.333c27.563 0 53.909-5.227 78.093-14.746l-123.034-123.034c-33.323-33.323-33.323-87.356 0-120.678 33.327-33.327 87.356-33.327 120.678 0l122.953 122.953c9.455-24.111 14.643-50.364 14.643-77.828 0-117.821-95.514-213.333-213.333-213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "quicktime"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2235,
+            "id": 327,
+            "prevSize": 24,
+            "code": 59841,
+            "name": "quicktime"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 961
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 746.667c0 35.345-28.655 64-64 64-24.666 0-46.071-13.952-56.759-34.398-19.063 41.643-22.494 85.798-16.29 116.954 9.050 45.444-33.617 45.444-33.617 45.444h-341.333c-42.667 0-85.333 0-92.445-21.333s21.333-64 92.445-85.333l37.453-8.73c-215.714-150.626 47.881-225.937 47.881-225.937-85.333-42.667-170.667 10.667-170.667 53.333 0 85.333 19.435 115.725 10.667 128-53.333 74.667-96 160-96 160h-106.667c-21.333-128 106.667-42.667 106.667-128 0-42.667 56.042-91.486 21.333-149.333-36.724-61.205-24.279-115.388-7-150.455-40.231-2.65-112.351-11.563-142.333-41.545-42.667-42.667 85.333-213.333 170.667-213.333 29.182 0 48.384 4.99 64.433 14.969l50.191-144.85c7.715-22.266 32.018-34.061 54.286-26.346 22.263 7.715 34.061 32.019 26.347 54.284l-32.299 93.206 85.645-49.446c20.403-11.782 46.498-4.79 58.283 15.617 11.78 20.407 4.791 46.502-15.616 58.284l-146.748 84.723 26.146 27.559c85.333 85.333 197.952 0.413 277.333 53.333 164.757 109.841 161.626 197.589 138.462 246.182 30.37 4.996 53.538 31.369 53.538 63.151zM244.499 338.6c-19.535 13.177-33.533 34.993-20.356 54.528s48.538 18.726 68.074 5.549c19.535-13.177 15.847-33.731 2.67-53.267s-30.852-19.988-50.388-6.811z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "rabbit"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2236,
+            "id": 326,
+            "prevSize": 24,
+            "code": 59842,
+            "name": "rabbit"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 962
+    }, {
+        "icon": {
+            "paths": [
+                "M339.257 127.516l-60.7 94.063 60.7 94.062-0.284 0.147-85.181 132-73.901-38.174 60.736-94.119-60.605-93.915 85.333-132.236 73.901 38.173zM595.255 123.507l-60.698 94.062 60.698 94.062-0.282 0.147-85.18 131.998-73.903-38.173 60.736-94.119-60.604-93.916 85.333-132.235 73.899 38.173zM852.642 123.507l-60.702 94.062 60.702 94.062-0.286 0.147-85.18 131.998-73.899-38.173 60.736-94.119-60.608-93.916 85.333-132.235 73.903 38.173zM85.333 938.667v-341.333c0-47.13 38.205-85.333 85.333-85.333h682.667c47.13 0 85.333 38.204 85.333 85.333v341.333h-85.333v-85.333h-682.667v85.333h-85.333zM256 597.333c-23.564 0-42.666 19.102-42.666 42.667v85.333c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667l-0-85.333c0-23.565-19.102-42.667-42.667-42.667zM426.667 597.333c-23.564 0-42.667 19.102-42.667 42.667v85.333c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667v-85.333c0-23.565-19.102-42.667-42.667-42.667zM597.333 597.333c-23.565 0-42.667 19.102-42.667 42.667v85.333c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667v-85.333c0-23.565-19.102-42.667-42.667-42.667zM768 597.333c-23.565 0-42.667 19.102-42.667 42.667v85.333c0 23.565 19.102 42.667 42.667 42.667s42.667-19.102 42.667-42.667v-85.333c0-23.565-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "radiator"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2237,
+            "id": 325,
+            "prevSize": 24,
+            "code": 59843,
+            "name": "radiator"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 963
+    }, {
+        "icon": {
+            "paths": [
+                "M512 426.667c47.13 0 85.333 38.204 85.333 85.333 0 20.932-7.539 40.107-20.049 54.955l135.292 371.712h-90.807l-109.769-301.585-109.768 301.585h-90.81l135.293-371.712c-12.51-14.848-20.049-34.022-20.049-54.955 0-47.13 38.204-85.333 85.333-85.333zM512 341.333c-94.257 0-170.667 76.41-170.667 170.667 0 22.012 4.166 43.046 11.753 62.366l-37.197 102.195c-37.378-44.497-59.89-101.901-59.89-164.561 0-141.385 114.615-256 256-256s256 114.615 256 256c0 62.66-22.511 120.064-59.891 164.561l-37.197-102.195c7.586-19.319 11.755-40.354 11.755-62.366 0-94.257-76.412-170.667-170.667-170.667zM512 170.668c-188.513 0-341.333 152.82-341.333 341.332 0 100.634 43.548 191.095 112.828 253.568l-30.99 85.141c-101.642-77.986-167.171-200.695-167.171-338.709 0-235.641 191.025-426.666 426.667-426.666 235.639 0 426.667 191.025 426.667 426.666 0 138.014-65.527 260.723-167.172 338.709l-30.989-85.141c69.278-62.473 112.828-152.934 112.828-253.568 0-188.512-152.819-341.332-341.333-341.332z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "radio-tower"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2238,
+            "id": 324,
+            "prevSize": 24,
+            "code": 59844,
+            "name": "radio-tower"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 964
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 256c47.13 0 85.333 38.205 85.333 85.333v512c0 47.13-38.204 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333v-512c0-36.252 22.606-67.224 54.49-79.589l530.342-219.675 32.657 78.838-326.143 135.092h476.654zM853.333 341.334h-682.667v170.666h512v-85.333h85.333v85.333h85.333v-170.666zM298.667 597.333c-70.693 0-128 57.306-128 128s57.307 128 128 128c70.692 0 128-57.306 128-128s-57.308-128-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "radio"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2239,
+            "id": 323,
+            "prevSize": 24,
+            "code": 59845,
+            "name": "radio"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 965
+    }, {
+        "icon": {
+            "paths": [
+                "M512 426.667c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333zM512 938.667c-83.324 0-161.072-23.885-226.766-65.186l142.154-213.231c24.939 14.263 53.824 22.417 84.612 22.417s59.674-8.154 84.612-22.417l142.153 213.231c-65.694 41.301-143.441 65.186-226.765 65.186zM85.333 512c0-176.826 107.567-328.529 260.836-393.242l95.145 237.856c-58.982 26.874-99.981 86.342-99.981 155.385h-256zM682.667 512c0-69.043-40.998-128.511-99.981-155.385l95.142-237.856c153.271 64.713 260.838 216.415 260.838 393.242h-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "radioactive"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2240,
+            "id": 322,
+            "prevSize": 24,
+            "code": 59846,
+            "name": "radioactive"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 966
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 853.252c-188.501 0-341.333-152.832-341.333-341.333 0-188.503 152.832-341.335 341.333-341.335s341.333 152.832 341.333 341.335c0 188.501-152.832 341.333-341.333 341.333zM511.974 85.251c-235.648 0-426.667 191.019-426.667 426.668 0 235.648 191.018 426.667 426.667 426.667s426.667-191.019 426.667-426.667c0-235.649-191.019-426.668-426.667-426.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "radiobox-blank"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2241,
+            "id": 321,
+            "prevSize": 24,
+            "code": 59847,
+            "name": "radiobox-blank"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 967
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 853.252c-188.501 0-341.333-152.832-341.333-341.333 0-188.503 152.832-341.335 341.333-341.335s341.333 152.832 341.333 341.335c0 188.501-152.832 341.333-341.333 341.333zM511.974 85.251c-235.648 0-426.667 191.019-426.667 426.668 0 235.648 191.019 426.667 426.667 426.667s426.667-191.019 426.667-426.667c0-235.649-191.019-426.668-426.667-426.668zM511.974 298.584c-117.845 0-213.333 95.488-213.333 213.335 0 117.845 95.488 213.333 213.333 213.333 117.803 0 213.333-95.488 213.333-213.333 0-117.847-95.531-213.335-213.333-213.335z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "radiobox-marked"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2242,
+            "id": 320,
+            "prevSize": 24,
+            "code": 59848,
+            "name": "radiobox-marked"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 968
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 341.333h85.333v85.333h-85.333v-85.333zM170.667 213.333h682.667c47.13 0 85.333 38.205 85.333 85.333h-128v85.333l-597.333 0v170.666h128v128h469.334v42.667h128c0 47.13-38.204 85.333-85.333 85.333h-170.667v42.667h-85.333v-42.667h-128v42.667h-170.667v-42.667h-128c-47.128 0-85.333-38.204-85.333-85.333v-426.667c0-47.128 38.205-85.333 85.333-85.333zM810.667 640h-426.667v-213.333h426.667v42.667h128v85.333h-128v85.333zM554.667 512v85.333h85.333v-85.333h-85.333zM213.333 256v85.333h42.666v-85.333h-42.666zM298.666 256v85.333h42.667v-85.333h-42.667zM384 256v85.333h42.667v-85.333h-42.667zM469.333 256v85.333h42.667v-85.333h-42.667zM554.667 256v85.333h42.667v-85.333h-42.667zM640 256v85.333h42.667v-85.333h-42.667zM853.333 597.333h85.333v85.333h-85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "raspberrypi"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2243,
+            "id": 319,
+            "prevSize": 24,
+            "code": 59849,
+            "name": "raspberrypi"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 969
+    }, {
+        "icon": {
+            "paths": [
+                "M823.121 462.694c2.355 16.149 3.58 32.585 3.58 49.306 0 196.753-166.144 356.267-371.145 356.267-204.914 0-371.077-159.514-371.077-356.267s166.163-356.267 371.077-356.267c40.209 0 78.912 6.176 115.174 17.576l0.068 215.28c0 0-110.588-60.518-209.467 10.545-98.89 70.967-80.279 145.454-80.279 145.454s4.627 117.615 144.16 117.615c156.018 0 200.212-142.033 200.212-142.033v-324.82c30.097 14.82 58.065 33.441 84.932 54.438 66.334 41.041 135.249 67.453 214.054 65.458 0 0 15.108-3.231 15.108 26.791 0 16.245-5.807 34.867-22.097 52.442 0 0-31.010 46.267-94.302 68.215z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "rdio"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2244,
+            "id": 318,
+            "prevSize": 24,
+            "code": 59850,
+            "name": "rdio"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 970
+    }, {
+        "icon": {
+            "paths": [
+                "M921.165 494.507l60.169 60.16-404.907 405.333-217.173-217.173 60.16-60.16 156.587 157.013 345.165-345.173zM170.667 682.667v-554.667l213.333 0c94.255 0 170.667 76.41 170.667 170.667 0 65.752-37.184 122.82-91.669 151.321l134.336 232.678h-85.333l-123.168-213.333h-132.832v213.333h-85.333zM256 384h128c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333h-128v170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "read"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2245,
+            "id": 317,
+            "prevSize": 24,
+            "code": 59851,
+            "name": "read"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 971
+    }, {
+        "icon": {
+            "paths": [
+                "M512 170.667c134.383 0 248.034 101.428 285.542 240.952-28.442 21.503-47.625 54.612-50.5 92.279l-7.846 89.702c-75.733-37.828-151.462-74.487-227.196-74.487-75.682 0-151.364 36.612-227.046 74.411l-7.997-91.409c-2.864-37.491-21.878-70.464-50.099-91.975 37.912-138.761 151.235-239.473 285.141-239.473zM727.671 725.333h-431.185l-9.446-107.964c74.986-37.427 149.972-73.37 224.959-73.37 75.038 0 150.071 35.989 225.109 73.446l-9.438 107.887zM213.333 810.667v-42.667l-54.703-149.734-9.297 0.401c-58.91 0-106.667-47.757-106.667-106.667s47.756-106.666 106.667-106.666c56.133 0 102.14 43.362 106.352 98.415l21.648 264.252v42.667h-64zM810.667 810.667h-64v-42.667l21.649-264.252c4.211-55.053 50.219-98.415 106.351-98.415 58.91 0 106.667 47.757 106.667 106.667s-47.757 106.667-106.667 106.667l-9.297-0.401-54.703 149.734v42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "readability"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2246,
+            "id": 316,
+            "prevSize": 24,
+            "code": 59852,
+            "name": "readability"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 972
+    }, {
+        "icon": {
+            "paths": [
+                "M127.974 938.581l64-64 64 64 64-64 64 64 64-64 64 64 64-64 64 64 64-64 64 64 64-64 64 64v-853.331l-64 64-64-64-64 64-64-64-64 64-64-64-64 64-64-64-64 64-64-64-64 64-64-64zM767.974 383.917h-512v-85.333h512zM767.974 554.581h-512v-85.333h512zM767.974 725.248h-512v-85.333h512v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "receipt"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2247,
+            "id": 315,
+            "prevSize": 24,
+            "code": 59853,
+            "name": "receipt"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 973
+    }, {
+        "icon": {
+            "paths": [
+                "M931.162 658.108l-106.667 184.751c-20.949 36.288-59.998 55.607-99.162 53.141h-85.333v85.333l-106.667-192 106.667-192v85.333h120.299l-94.771-164.147 184.755-106.666 76.826 133.068c22.17 32.764 25.165 76.625 4.053 113.186zM392.949 130.71h213.332c41.903 0 78.161 24.159 95.603 59.308l42.667 73.901 73.903-42.667-112.947 188.376-219.605 3.624 73.899-42.667-60.151-104.183-94.768 164.147-184.752-106.667 76.826-133.067c17.29-35.58 53.778-60.105 95.995-60.105zM215.631 842.918l-106.667-184.751c-20.95-36.288-18.157-79.765 3.56-112.448l42.667-73.903-73.901-42.667 219.611 3.627 112.943 188.373-73.901-42.667-60.15 104.183h189.54v213.333h-153.652c-39.458 2.816-78.942-16.521-100.050-53.082z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "recycle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2248,
+            "id": 314,
+            "prevSize": 24,
+            "code": 59854,
+            "name": "recycle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 974
+    }, {
+        "icon": {
+            "paths": [
+                "M384 501.333c29.455 0 53.333 23.876 53.333 53.333s-23.878 53.333-53.333 53.333c-29.455 0-53.333-23.876-53.333-53.333s23.878-53.333 53.333-53.333zM640 501.333c29.453 0 53.333 23.881 53.333 53.333 0 29.457-23.881 53.333-53.333 53.333-29.457 0-53.333-23.876-53.333-53.333 0-29.453 23.876-53.333 53.333-53.333zM810.667 128c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.205-85.329-86.223l-146.906-39.363-45.197 168.67c87.812 3.457 167.77 28.221 230.135 67.256 18.551-15.605 42.492-25.007 68.629-25.007 58.91 0 106.667 47.756 106.667 106.666 0 36.634-18.466 68.954-46.601 88.158l3.934 39.842c0 153.169-171.921 277.333-384 277.333-212.077 0-384-124.164-384-277.333l3.933-39.842c-28.133-19.204-46.6-51.524-46.6-88.158 0-58.91 47.756-106.667 106.667-106.667 26.138 0 50.080 9.401 68.629 25.007 61.958-38.781 141.281-63.476 228.416-67.186l53.696-200.39c3.051-11.38 14.746-18.134 26.129-15.085l167.548 44.895c14.673-25.823 42.428-43.241 74.249-43.241zM810.667 170.667c-23.565 0-42.667 19.103-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.103 42.667-42.667s-19.102-42.667-42.667-42.667zM512 384c-188.513 0-341.333 105.062-341.333 234.667s152.82 234.667 341.333 234.667c188.514 0 341.333-105.062 341.333-234.667s-152.819-234.667-341.333-234.667zM192 426.667c-35.346 0-64 28.655-64 64 0 17.19 6.775 32.794 17.801 44.292 16.315-37.265 43.232-71.121 78.194-99.733-9.413-5.444-20.34-8.559-31.996-8.559zM896 490.667c0-35.345-28.655-64-64-64-11.657 0-22.583 3.115-31.996 8.559 34.961 28.612 61.879 62.468 78.195 99.733 11.025-11.499 17.801-27.102 17.801-44.292zM374.775 697.152c51.892 38.848 222.558 38.848 274.449 0 9.651-6.758 22.95-4.412 29.709 5.239s4.412 22.955-5.239 29.713c-76.361 46.562-247.027 46.562-323.392-0.004-9.651-6.754-11.997-20.058-5.239-29.709s20.060-11.998 29.711-5.239z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "reddit"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2249,
+            "id": 313,
+            "prevSize": 24,
+            "code": 59855,
+            "name": "reddit"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 975
+    }, {
+        "icon": {
+            "paths": [
+                "M448 298.667c-153.167 0-277.333 124.166-277.333 277.333 0 153.169 124.166 277.333 277.333 277.333h149.333v-85.333h-149.333c-106.039 0-192-85.961-192-192s85.961-192 192-192h241.92l-131.413 131.84 60.16 60.16 234.667-234.667-234.667-234.665-60.587 60.16 131.84 131.838h-241.92zM768 768h-85.333v85.333h85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "redo-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2250,
+            "id": 312,
+            "prevSize": 24,
+            "code": 59856,
+            "name": "redo-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 976
+    }, {
+        "icon": {
+            "paths": [
+                "M785.067 452.267c-78.933-68.693-181.333-110.933-294.4-110.933-198.4 0-366.080 129.28-424.96 308.053l100.693 33.28c44.8-136.107 172.8-234.667 324.267-234.667 83.2 0 159.147 30.72 218.453 80.213l-154.453 154.453h384v-384l-153.6 153.6z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "redo"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2251,
+            "id": 311,
+            "prevSize": 24,
+            "code": 59857,
+            "name": "redo"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 977
+    }, {
+        "icon": {
+            "paths": [
+                "M753.067 270.933c-61.867-61.867-146.773-100.267-241.067-100.267-188.587 0-340.907 152.747-340.907 341.333s152.32 341.333 340.907 341.333c159.147 0 291.84-108.8 329.813-256h-88.747c-34.987 99.413-129.707 170.667-241.067 170.667-141.227 0-256-114.773-256-256s114.773-256 256-256c70.827 0 133.973 29.44 180.053 75.947l-137.387 137.387h298.667v-298.667l-100.267 100.267z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "refresh"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2252,
+            "id": 310,
+            "prevSize": 24,
+            "code": 59858,
+            "name": "refresh"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 978
+    }, {
+        "icon": {
+            "paths": [
+                "M853.303 767.919l-682.667 0.043v-512.044h682.667zM853.303 170.584h-682.667c-47.147 0-85.333 38.187-85.333 85.333v512.001c0 47.147 38.186 85.333 85.333 85.333h682.667c47.104 0 85.333-38.187 85.333-85.333v-512.001c0-47.147-38.229-85.333-85.333-85.333zM511.97 426.584h-85.333v85.335h85.333zM341.303 426.584h-85.333v85.335h85.333zM682.637 597.252h-85.333v85.333h85.333zM682.637 426.584h-85.333v85.335h85.333v-85.335z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "relative-scale"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2253,
+            "id": 309,
+            "prevSize": 24,
+            "code": 59859,
+            "name": "relative-scale"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 979
+    }, {
+        "icon": {
+            "paths": [
+                "M810.317 511.851h141.798l-211.191 211.187-211.187-211.187h194.291c0.303-65.472-23.531-130.939-73.613-181.021-99.861-99.862-262.176-99.862-362.039 0-99.862 99.86-99.862 262.177 0 362.039 78.743 78.741 196.108 95.339 291.139 49.779l62.754 62.754c-130.944 77.231-301.699 60.339-414.233-52.194-133.351-133.35-133.049-349.065 0.302-482.416 133.349-133.348 349.065-133.652 482.416-0.302 66.675 66.675 99.563 153.866 99.563 241.361z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "reload"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2254,
+            "id": 308,
+            "prevSize": 24,
+            "code": 59860,
+            "name": "reload"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 980
+    }, {
+        "icon": {
+            "paths": [
+                "M512 0c-129.707 0-247.040 52.48-331.947 137.387l60.16 60.16c69.547-69.12 165.547-112.213 271.787-112.213s202.24 43.093 271.36 112.64l60.16-60.16c-84.48-85.333-201.813-137.813-331.52-137.813zM300.8 258.133l60.16 60.16c38.827-38.4 92.16-62.293 151.040-62.293s112.213 23.893 151.040 62.293l60.16-60.16c-54.187-54.187-128.853-87.467-211.2-87.467s-157.013 33.28-211.2 87.467zM512 640c-46.933 0-85.333-38.4-85.333-85.333s38.4-85.333 85.333-85.333c46.933 0 85.333 38.4 85.333 85.333s-38.4 85.333-85.333 85.333zM640 384h-256c-23.467 0-42.667 19.2-42.667 42.667v512c0 23.467 19.2 42.667 42.667 42.667h256c23.467 0 42.667-19.2 42.667-42.667v-512c0-23.467-19.2-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "remote"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2255,
+            "id": 307,
+            "prevSize": 24,
+            "code": 59861,
+            "name": "remote"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 981
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 725.252h-320l85.333-85.333h234.667zM255.974 725.252v-105.6l336.128-336.129c8.363-8.363 21.845-8.363 30.208 0l75.392 75.392c8.363 8.32 8.363 21.845 0 30.165l-336.128 336.172zM810.641 127.918h-597.334c-47.147 0-85.333 38.229-85.333 85.333v597.335c0 47.104 38.186 85.333 85.333 85.333h597.334c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "rename-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2256,
+            "id": 306,
+            "prevSize": 24,
+            "code": 59862,
+            "name": "rename-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 982
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-128-128h-372.544v128l-170.667-170.667 170.667-170.667v128h287.211l-287.211-287.211v31.211h-85.333v-116.545l-128-128zM725.333 554.667h85.333v178.231l-85.333-85.333v-92.898zM725.333 213.334v-128l170.667 170.667-170.667 170.666v-128h-348.899l-85.333-85.333h434.232z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "repeat-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2257,
+            "id": 305,
+            "prevSize": 24,
+            "code": 59863,
+            "name": "repeat-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 983
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 640v-256h-42.667l-85.333 42.667v42.667h64v170.667zM725.333 725.333h-426.667v-128l-170.667 170.667 170.667 170.667v-128h512v-256h-85.333zM298.667 298.667h426.667v128l170.667-170.667-170.667-170.667v128h-512v256h85.333v-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "repeat-once"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2258,
+            "id": 304,
+            "prevSize": 24,
+            "code": 59864,
+            "name": "repeat-once"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 984
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 725.333h-426.667v-128l-170.667 170.667 170.667 170.667v-128h512v-256h-85.333zM298.667 298.667h426.667v128l170.667-170.667-170.667-170.667v128h-512v256h85.333v-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "repeat"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2259,
+            "id": 303,
+            "prevSize": 24,
+            "code": 59865,
+            "name": "repeat"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 985
+    }, {
+        "icon": {
+            "paths": [
+                "M512 213.333v-170.667l-213.333 213.333 213.333 213.333v-170.667c141.227 0 256 114.773 256 256s-114.773 256-256 256c-141.227 0-256-114.773-256-256h-85.333c0 188.587 152.747 341.333 341.333 341.333s341.333-152.747 341.333-341.333c0-188.587-152.747-341.333-341.333-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "replay"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2260,
+            "id": 302,
+            "prevSize": 24,
+            "code": 59866,
+            "name": "replay"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 986
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 384v-170.667l-298.667 298.667 298.667 298.667v-174.933c213.333 0 362.667 68.267 469.333 217.6-42.667-213.333-170.667-426.667-469.333-469.333zM298.667 341.333v-128l-298.667 298.667 298.667 298.667v-128l-170.667-170.667 170.667-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "reply-all"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2261,
+            "id": 301,
+            "prevSize": 24,
+            "code": 59867,
+            "name": "reply-all"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 987
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 384v-170.667l-298.667 298.667 298.667 298.667v-174.933c213.333 0 362.667 68.267 469.333 217.6-42.667-213.333-170.667-426.667-469.333-469.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "reply"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2262,
+            "id": 300,
+            "prevSize": 24,
+            "code": 59868,
+            "name": "reply"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 988
+    }, {
+        "icon": {
+            "paths": [
+                "M542.929 561.229l38.165-38.17c-0.969-53.133 29.581-120.086 85.414-175.921 83.311-83.312 191.373-110.327 241.361-60.34 49.984 49.987 22.972 158.049-60.339 241.36-55.838 55.834-122.79 86.383-175.927 85.414l-38.165 38.165c-14.391 14.391-36.506 16.354-53.001 5.884-35.959 12.877-69.090 28.578-87.403 59.098-22.63 37.713-22.63 98.052-46.515 134.507-23.883 36.454-71.652 49.028-121.935 49.028s-111.251-4.254-155.878-67.81l105.594 17.523c24.366 3.366 87.996-22.626 111.88-59.081s23.885-96.794 46.51-134.507c20.066-33.442 57.924-49.092 97.801-62.724-0.614-11.661 3.533-23.522 12.437-32.427zM298.667 85.334c117.821 0 213.333 95.512 213.333 213.333s-95.513 213.333-213.333 213.333c-117.821 0-213.333-95.512-213.333-213.333s95.512-213.333 213.333-213.333zM298.667 170.667c-70.693 0-128 57.308-128 128s57.307 128 128 128c70.692 0 128-57.307 128-128s-57.308-128-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "reproduction"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2263,
+            "id": 299,
+            "prevSize": 24,
+            "code": 59869,
+            "name": "reproduction"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 989
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 938.667h-85.333v-85.333h85.333v85.333zM938.667 768h-85.333v-85.333h85.333v85.333zM768 938.667h-85.333v-85.333h85.333v85.333zM768 768h-85.333v-85.333h85.333v85.333zM597.333 938.667h-85.333v-85.333h85.333v85.333zM938.667 597.333h-85.333v-85.333h85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "resize-bottom-right"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2264,
+            "id": 298,
+            "prevSize": 24,
+            "code": 59870,
+            "name": "resize-bottom-right"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 990
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 256v426.667l213.346 0.068v-170.654c0-47.125 38.205-85.333 85.333-85.333h213.333c47.13 0 85.333 38.208 85.333 85.333v170.586h85.321v-426.667h-682.667zM0 853.333v-85.333h170.667c-47.147 0-85.333-38.229-85.333-85.333v-426.667c0-47.104 38.187-85.333 85.333-85.333h682.667c47.104 0 85.333 38.229 85.333 85.333l-0.427 426.667c0 47.104-37.803 85.333-84.907 85.333h170.667v85.333l-255.987 0.081c0 47.13-38.204 85.333-85.333 85.333h-213.333c-47.128 0-85.333-38.204-85.333-85.333v-0.009l-384.013-0.073zM490.679 853.414c-11.78 0-21.333 9.553-21.333 21.333 0 11.785 9.553 21.333 21.333 21.333s21.333-9.549 21.333-21.333c0-11.78-9.553-21.333-21.333-21.333zM661.346 853.414c-11.78 0-21.333 9.553-21.333 21.333 0 11.785 9.553 21.333 21.333 21.333s21.333-9.549 21.333-21.333c0-11.78-9.553-21.333-21.333-21.333zM554.679 853.414v42.667h42.667v-42.667h-42.667zM469.346 512.081v298.667h213.333v-298.667h-213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "responsive"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2265,
+            "id": 297,
+            "prevSize": 24,
+            "code": 59871,
+            "name": "responsive"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 991
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h469.333v85.333h-469.333v512h-85.333v-512c0-47.128 38.205-85.333 85.333-85.333zM384 298.667h426.667c47.13 0 85.333 38.205 85.333 85.333v426.667c0 47.13-38.204 85.333-85.333 85.333h-426.667c-47.128 0-85.333-38.204-85.333-85.333v-426.667c0-47.128 38.205-85.333 85.333-85.333zM384 384v426.667h426.667v-426.667h-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "restore"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2266,
+            "id": 296,
+            "prevSize": 24,
+            "code": 59872,
+            "name": "restore"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 992
+    }, {
+        "icon": {
+            "paths": [
+                "M490.641 511.915l362.667 256v-511.998zM469.308 767.915v-511.998l-362.666 255.998 362.666 256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "rewind"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2267,
+            "id": 295,
+            "prevSize": 24,
+            "code": 59873,
+            "name": "rewind"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 993
+    }, {
+        "icon": {
+            "paths": [
+                "M572.331 823.957l135.296 135.292 60.331-60.331-135.296-135.292zM662.827 492.092l-150.869 150.827-150.827-150.827c-38.613-38.613-62.507-91.946-62.507-150.824 0-117.846 95.531-213.333 213.334-213.333 117.845 0 213.333 95.487 213.333 213.333 0 58.878-23.851 112.21-62.464 150.824zM720.981 554.603c55.339-54.234 89.643-129.795 89.643-213.335 0-164.95-133.717-298.666-298.667-298.666s-298.667 133.716-298.667 298.666c0 83.539 34.432 159.020 89.728 213.202l-0.085 0.132 148.694 148.693-195.67 195.622 60.331 60.331 404.694-404.646z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "ribbon"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2268,
+            "id": 294,
+            "prevSize": 24,
+            "code": 59874,
+            "name": "ribbon"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 994
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 682.667h85.333v170.667h-85.333zM469.333 426.667h85.333v170.667h-85.333zM469.333 170.667h85.333v170.667h-85.333zM170.667 938.667h682.667v-853.333h-682.667v853.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "road"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2269,
+            "id": 293,
+            "prevSize": 24,
+            "code": 59875,
+            "name": "road"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 995
+    }, {
+        "icon": {
+            "paths": [
+                "M119.791 602.509l120.68-120.678 108.245-21.649c137.257-186.7 400.22-280.050 495.153-280.050 0 94.933-93.35 357.895-280.051 495.154l-21.649 108.245-120.679 120.678-30.17-150.848c-60.34 0-60.34 0-90.51-30.174-30.17-30.17-30.17-30.17-30.17-90.509l-150.85-30.17zM240.471 723.187l60.34 60.343-113.673 113.673h-60.34v-60.339l113.674-113.677zM180.131 662.848l52.797 7.543-104.3 104.303v-60.343l51.503-51.503zM353.608 791.070l7.543 52.8-51.504 51.503h-60.34l104.301-104.303zM554.667 405.333c-35.345 0-64 28.655-64 64s28.655 64 64 64c35.345 0 64-28.655 64-64s-28.655-64-64-64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "rocket"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2270,
+            "id": 292,
+            "prevSize": 24,
+            "code": 59876,
+            "name": "rocket"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 996
+    }, {
+        "icon": {
+            "paths": [
+                "M512 213.333c212.079 0 384 114.615 384 256 0 71.693-44.203 136.499-115.43 182.972 45.581-37.171 72.764-84.036 72.764-134.972 0-120.766-152.819-218.667-341.333-218.667v128l-170.667-170.667 170.667-170.667v128zM512 810.667c-212.078 0-384-114.615-384-256 0-71.693 44.204-136.499 115.431-182.972-45.581 37.17-72.765 84.036-72.765 134.972 0 120.768 152.82 218.667 341.333 218.667v-128l170.667 170.667-170.667 170.667v-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "rotate-3d"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2271,
+            "id": 291,
+            "prevSize": 24,
+            "code": 59877,
+            "name": "rotate-3d"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 997
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.333h128c47.128 0 85.333 38.205 85.333 85.333v682.667c0 47.13-38.205 85.333-85.333 85.333h-128c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333zM853.333 640c47.13 0 85.333 38.204 85.333 85.333v128c0 47.13-38.204 85.333-85.333 85.333h-384v-298.667h384zM597.333 170.667c188.501 0 341.333 152.832 341.333 341.333l-2.679 42.667h-86.221l3.567-42.667c0-141.397-114.603-256-256-256v128l-170.667-170.666 170.667-170.667v128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "rotate-left-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2272,
+            "id": 290,
+            "prevSize": 24,
+            "code": 59878,
+            "name": "rotate-left-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 998
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 173.653v-130.987l-194.133 194.133 194.133 189.867v-166.827c121.173 20.48 213.333 125.44 213.333 252.16s-92.16 231.68-213.333 252.16v86.187c168.533-20.907 298.667-164.267 298.667-338.347s-130.133-317.44-298.667-338.347zM302.933 781.653c49.493 38.4 107.093 61.44 166.4 68.693v-86.613c-37.12-6.4-72.96-20.907-104.96-43.947l-61.44 61.867zM259.84 554.667h-86.187c7.253 59.307 30.72 116.48 69.12 165.973l60.16-60.587c-22.187-32-37.12-67.84-43.093-105.387zM303.36 363.947l-60.16-60.587c-38.4 49.493-62.293 106.667-69.547 165.973h86.187c5.973-37.12 20.907-73.387 43.52-105.387z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "rotate-left"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2273,
+            "id": 289,
+            "prevSize": 24,
+            "code": 59879,
+            "name": "rotate-left"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 999
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 170.667v-128l170.667 170.666-170.667 170.667v-128c-141.397 0-256 114.603-256 256l3.565 42.667h-86.22l-2.679-42.667c0-188.501 152.832-341.333 341.333-341.333zM725.333 85.334h128c47.13 0 85.333 38.205 85.333 85.333v682.666c0 47.13-38.204 85.333-85.333 85.333h-128c-47.13 0-85.333-38.204-85.333-85.333v-682.666c0-47.128 38.204-85.333 85.333-85.333zM170.667 640h384v298.667h-384c-47.128 0-85.333-38.204-85.333-85.333v-128c0-47.13 38.205-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "rotate-right-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2274,
+            "id": 288,
+            "prevSize": 24,
+            "code": 59880,
+            "name": "rotate-right-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1000
+    }, {
+        "icon": {
+            "paths": [
+                "M720.64 660.48l60.587 60.16c38.4-49.493 61.867-106.667 69.12-165.973h-86.187c-5.973 37.12-20.48 73.387-43.52 105.813zM554.667 763.733v86.187c59.307-7.253 116.907-30.293 166.4-68.693l-61.44-61.44c-32 23.040-67.84 37.973-104.96 43.947zM850.347 469.333c-7.253-59.307-30.72-116.48-69.12-165.973l-60.587 60.587c23.040 32 37.547 68.267 43.52 105.387zM663.467 236.8l-194.133-194.133v130.987c-168.107 20.907-298.667 164.267-298.667 338.347s130.133 317.44 298.667 338.347v-86.187c-121.173-20.48-213.333-125.44-213.333-252.16s92.16-231.68 213.333-252.16v166.827l194.133-189.867z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "rotate-right"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2275,
+            "id": 287,
+            "prevSize": 24,
+            "code": 59881,
+            "name": "rotate-right"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1001
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 426.667h-256l-85.333-85.333 85.333-85.333h256v-128l42.667-42.666 42.667 42.666v42.667l256 0 85.333 85.333-85.333 85.333h-256v85.333h256l85.333 85.333-85.333 85.333h-256v256c47.13 0 85.333 38.204 85.333 85.333h-256c0-47.13 38.205-85.333 85.333-85.333v-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "routes"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2276,
+            "id": 286,
+            "prevSize": 24,
+            "code": 59882,
+            "name": "routes"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1002
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM320 640c-35.346 0-64 28.655-64 64s28.654 64 64 64c35.346 0 64-28.655 64-64s-28.654-64-64-64zM256 426.667v85.333c141.385 0 256 114.615 256 256h85.333c0-188.514-152.819-341.333-341.333-341.333zM256 256l-0 85.333c235.64 0 426.667 191.027 426.667 426.666h85.333c0-282.769-229.231-512-512-512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "rss-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2277,
+            "id": 285,
+            "prevSize": 24,
+            "code": 59883,
+            "name": "rss-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1003
+    }, {
+        "icon": {
+            "paths": [
+                "M59.452 783.531l75.425-75.426 60.34 60.339 45.255-45.257-60.34-60.339 60.34-60.339 105.595 105.596 45.254-45.257-105.594-105.591 60.34-60.339 60.34 60.339 45.255-45.257-60.34-60.339 60.34-60.34 105.596 105.597 45.252-45.257-105.596-105.595 60.343-60.339 60.339 60.34 45.252-45.255-60.339-60.34 60.339-60.34 105.596 105.594 45.257-45.254-105.596-105.595 75.426-75.425 181.018 181.019-724.077 724.077-181.019-181.018z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "ruler"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2278,
+            "id": 284,
+            "prevSize": 24,
+            "code": 59884,
+            "name": "ruler"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1004
+    }, {
+        "icon": {
+            "paths": [
+                "M730.334 426.584l-45.824-77.398-31.275 122.37 106.197 193.707v273.323h-76.8v-213.333l-99.456-132.608-68.092 192.431-205.755 89.596-44.797-64.004 178.944-105.493 107.187-420.414-89.899 28.032v156.461h-76.8v-221.868l231.467-72.192 20.949-3.072c26.539 0 49.749 14.251 62.379 35.542l85.333 142.122h154.539v76.8h-208.299zM725.299 162.051c-42.453 0-76.8-34.432-76.8-76.757 0-42.496 34.347-76.844 76.8-76.844 42.325 0 76.8 34.347 76.8 76.844 0 42.324-34.475 76.757-76.8 76.757zM298.667 384v85.333h-128c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667h128zM394.667 554.667l-21.333 85.333h-160c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667h181.333zM298.667 213.333v85.333h-170.667c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667h170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "run"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2279,
+            "id": 283,
+            "prevSize": 24,
+            "code": 59885,
+            "name": "run"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1005
+    }, {
+        "icon": {
+            "paths": [
+                "M795.75 121.456l26.121 164.931 149.551 76.199-75.81 148.786 76.198 149.551-151.002 76.937-26.078 164.651-165.777-26.257-118.076 118.080-118.684-118.686-164.932 26.125-26.256-165.777-148.787-75.81 76.199-149.551-75.811-148.787 149.804-76.329 25.868-163.325 164.932 26.123 118.682-118.683 118.080 118.078 165.777-26.257zM405.333 298.667c-35.346 0-64 28.654-64 64s28.654 64 64 64c35.345 0 64-28.654 64-64s-28.655-64-64-64zM618.667 597.333c-35.345 0-64 28.655-64 64s28.655 64 64 64c35.345 0 64-28.655 64-64s-28.655-64-64-64zM359.006 725.333l366.327-366.327-60.339-60.34-366.327 366.327 60.34 60.339z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sale"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2280,
+            "id": 282,
+            "prevSize": 24,
+            "code": 59886,
+            "name": "sale"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1006
+    }, {
+        "icon": {
+            "paths": [
+                "M495.842 43.295l241.361 241.359-90.509 90.51-90.513-90.51-60.339 60.34 99.345 99.345-49.673 49.673 19.597 19.597c39.501-18.453 87.974-11.371 120.589 21.239l-150.852 150.852c-32.61-32.614-39.693-81.088-21.239-120.589l-19.597-19.597-49.673 49.673-99.345-99.345-60.34 60.339 90.51 90.513-90.51 90.509-241.359-241.361 90.51-90.509 90.51 90.509 60.34-60.339-120.68-120.679c-33.325-33.325-33.324-87.355 0-120.68l30.17-30.17c33.325-33.325 87.355-33.325 120.679 0l120.68 120.679 60.339-60.34-90.509-90.51 90.509-90.51zM768 597.333c0 94.255-76.412 170.667-170.667 170.667v-85.333c47.13 0 85.333-38.204 85.333-85.333h85.333zM938.667 597.333c0 188.514-152.819 341.333-341.333 341.333v-85.333c141.385 0 256-114.615 256-256h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "satellite-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2281,
+            "id": 281,
+            "prevSize": 24,
+            "code": 59887,
+            "name": "satellite-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1007
+    }, {
+        "icon": {
+            "paths": [
+                "M213.303 767.919l149.333-192 106.667 128.256 149.333-192.256 192 256zM213.303 511.919v-85.335c117.845 0 213.333-95.957 213.333-213.76h85.333c0 164.949-133.717 299.095-298.667 299.095zM213.303 212.824h128c0 70.699-57.302 128.427-128 128.427zM810.637 127.918h-597.333c-47.104 0-85.333 38.187-85.333 85.333v597.335c0 47.147 38.229 85.333 85.333 85.333h597.333c47.104 0 85.333-38.187 85.333-85.333v-597.335c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "satellite"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2282,
+            "id": 280,
+            "prevSize": 24,
+            "code": 59888,
+            "name": "satellite"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1008
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 85.333h597.333c47.13 0 85.333 38.205 85.333 85.333v682.667c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333zM512 170.667c-94.257 0-170.667 76.41-170.667 170.667h139.149l-17.604-118.272 87.637 118.272h132.151c0-94.257-76.412-170.667-170.667-170.667zM213.333 426.667v426.667h597.333v-426.667h-597.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "scale-bathroom"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2283,
+            "id": 279,
+            "prevSize": 24,
+            "code": 59889,
+            "name": "scale-bathroom"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1009
+    }, {
+        "icon": {
+            "paths": [
+                "M361.022 642.458l-60.34 60.339-58.522-58.522c-36.593 47.164-61.094 104.179-68.852 166.391h82.692v85.333h-170.666v-42.667c0-206.417 146.582-378.598 341.333-418.133v-85.333l-341.333-136.533v-85.333h853.333v85.333l-341.333 136.533v85.333c194.752 39.535 341.333 211.716 341.333 418.133v42.667h-170.667v-85.333h82.692c-7.757-62.217-32.26-119.228-68.851-166.391l-58.522 58.522-60.339-60.339 58.577-58.577c-47.262-36.809-104.457-61.453-166.891-69.239v82.692h-85.333v-82.692c-62.432 7.787-119.629 32.431-166.889 69.239l58.577 58.577zM512 768c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333c-13.534 0-26.334-3.149-37.7-8.759l-164.215-76.574 164.22-76.574c11.366-5.611 24.162-8.759 37.696-8.759z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "scale"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2284,
+            "id": 278,
+            "prevSize": 24,
+            "code": 59890,
+            "name": "scale"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1010
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 127.918l-469.334 256 469.334 256.001 384-209.451v294.784h85.333v-341.335zM213.307 562.351v170.667l298.667 162.901 298.667-162.901v-170.667l-298.667 162.901-298.667-162.901z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "school"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2285,
+            "id": 277,
+            "prevSize": 24,
+            "code": 59891,
+            "name": "school"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1011
+    }, {
+        "icon": {
+            "paths": [
+                "M716.8 106.667c0-40.107 32.427-72.533 72.533-72.533s72.533 32.427 72.533 72.533v21.333h-145.067v-21.333zM682.667 384h213.333c23.467 0 42.667-19.2 42.667-42.667v-170.667c0-23.467-19.2-42.667-42.667-42.667v-21.333c0-58.88-47.787-106.667-106.667-106.667s-106.667 47.787-106.667 106.667v21.333c-23.467 0-42.667 19.2-42.667 42.667v170.667c0 23.467 19.2 42.667 42.667 42.667zM361.387 873.813c-139.52-65.707-239.36-201.387-254.72-361.813h-64c21.76 262.827 241.493 469.333 509.867 469.333l28.16-1.28-162.56-162.987-56.747 56.747zM992 544.853l-109.653-109.653-60.16 60.16 94.72 94.72-241.493 241.493-482.987-482.987 241.493-241.493 89.6 89.6 60.16-60.16-104.533-104.533c-25.173-25.173-65.707-25.173-90.453 0l-271.36 271.36c-25.173 25.173-25.173 65.707 0 90.453l512.853 512.853c25.173 25.173 65.707 25.173 90.453 0l271.36-271.36c25.173-25.173 25.173-65.707 0-90.453z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "screen-rotation-lock"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2286,
+            "id": 276,
+            "prevSize": 24,
+            "code": 59892,
+            "name": "screen-rotation-lock"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1012
+    }, {
+        "icon": {
+            "paths": [
+                "M320.853 916.48c-139.52-65.707-239.36-201.387-254.72-361.813h-64c21.76 262.827 241.493 469.333 509.867 469.333l28.16-1.28-162.56-162.56zM632.747 904.107l-512.853-512.853 271.36-271.36 512.853 512.853zM436.48 74.667c-25.173-25.173-65.707-25.173-90.453 0l-271.36 271.36c-25.173 25.173-25.173 65.707 0 90.453l512.853 512.853c25.173 25.173 65.707 25.173 90.453 0l271.36-271.36c25.173-25.173 25.173-65.707 0-90.453l-512.853-512.853zM703.147 107.52c139.52 66.133 239.36 201.387 254.72 361.813h64c-21.76-262.827-241.493-469.333-509.867-469.333l-28.16 1.28 162.56 162.56 56.747-56.32z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "screen-rotation"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2287,
+            "id": 275,
+            "prevSize": 24,
+            "code": 59893,
+            "name": "screen-rotation"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1013
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 853.333c47.13 0 85.333-38.204 85.333-85.333v-554.667l-298.667-0c-23.564 0-42.667 19.103-42.667 42.667v426.667h-128v-469.333c0-70.692 57.309-128 128.002-128h469.332c70.69 0 128 57.308 128 128v42.666h-170.667v554.667c0 70.694-57.31 128-128 128h-426.667c-70.692 0-128-57.306-128-128v-42.667h426.667c0 47.13 38.204 85.333 85.333 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "script"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2288,
+            "id": 274,
+            "prevSize": 24,
+            "code": 59894,
+            "name": "script"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1014
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 768h42.667c23.565 0 42.667 19.102 42.667 42.667h298.667v85.333h-298.667c0 23.565-19.102 42.667-42.667 42.667h-170.667c-23.564 0-42.666-19.102-42.666-42.667h-298.667v-85.333h298.667c0-23.565 19.102-42.667 42.666-42.667h42.667v-70.839c-124.86-51.456-213.333-185.152-213.333-327.383v-170.667l256-113.778 256 113.778v170.667c0 142.226-88.495 275.922-213.333 327.383v70.839zM512 170.667l-170.667 72.296 0 141.037h170.667v-213.333zM512 384v256c81.604-19.977 170.667-125.581 170.667-213.333v-42.667h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "security-network"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2289,
+            "id": 273,
+            "prevSize": 24,
+            "code": 59895,
+            "name": "security-network"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1015
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 511.492h298.667c-22.571 175.744-139.776 332.416-298.667 381.269v-380.843h-298.665v-243.202l298.665-132.736zM511.974 42.584l-383.999 170.667v256.001c0 236.928 163.669 458.069 383.999 512 220.288-53.931 384-275.072 384-512v-256.001l-384-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "security"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2290,
+            "id": 272,
+            "prevSize": 24,
+            "code": 59896,
+            "name": "security"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1016
+    }, {
+        "icon": {
+            "paths": [
+                "M384 384h256v256h-256zM298.667 725.333h426.667v-426.667h-426.667zM640 213.333h85.333v-85.333h-85.333zM640 896h85.333v-85.333h-85.333zM810.667 725.333h85.333v-85.333h-85.333zM810.667 384h85.333v-85.333h-85.333zM810.667 896c46.933 0 85.333-38.4 85.333-85.333h-85.333zM810.667 554.667h85.333v-85.333h-85.333zM469.333 896h85.333v-85.333h-85.333zM384 128h-85.333v85.333h85.333zM128 725.333h85.333v-85.333h-85.333zM213.333 896v-85.333h-85.333c0 46.933 38.4 85.333 85.333 85.333zM810.667 128v85.333h85.333c0-46.933-38.4-85.333-85.333-85.333zM554.667 128h-85.333v85.333h85.333zM128 384h85.333v-85.333h-85.333zM298.667 896h85.333v-85.333h-85.333zM128 554.667h85.333v-85.333h-85.333zM128 213.333h85.333v-85.333c-46.933 0-85.333 38.4-85.333 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "select-all"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2291,
+            "id": 271,
+            "prevSize": 24,
+            "code": 59897,
+            "name": "select-all"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1017
+    }, {
+        "icon": {
+            "paths": [
+                "M213.334 128l85.333 0v85.333h85.333v-85.333h85.333v85.333h85.333v-85.333h85.333v85.333h85.333v-85.333h85.333v85.333h85.333v85.333h-85.333v85.333h85.333v85.333h-85.333v85.333h85.333v85.333h-85.333v85.333h85.333v85.333h-85.333v85.333h-85.333v-85.333h-85.333v85.333h-85.333v-85.333h-85.333v85.333h-85.333v-85.333h-85.333v85.333h-85.333v-85.333h-85.333v-85.333h85.333v-85.333h-85.333v-85.333h85.333v-85.333h-85.333v-85.333h85.333v-85.333h-85.333v-85.334h85.334v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "select-inverse"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2292,
+            "id": 270,
+            "prevSize": 24,
+            "code": 59898,
+            "name": "select-inverse"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1018
+    }, {
+        "icon": {
+            "paths": [
+                "M42.667 182.122l54.49-54.122 798.843 798.844-54.123 54.49-116.544-116.544v31.211h-85.333v-85.333h31.211l-457.877-457.878v31.212h-85.334v-85.333h31.213l-116.546-116.546zM853.333 128.001c23.565 0 42.667 19.102 42.667 42.667v42.666h-85.333v-85.333h42.667zM640 213.334v-85.333h85.333v85.333h-85.333zM469.333 213.334v-85.333h85.333v85.333h-85.333zM298.666 213.334v-85.333h85.334v85.333h-85.334zM469.333 896v-85.333h85.333v85.333h-85.333zM298.666 896v-85.333h85.334v85.333h-85.334zM170.666 896c-23.564 0-42.667-19.102-42.667-42.667v-42.667h85.334v85.333h-42.667zM128 640h85.334v85.333h-85.334v-85.333zM896 640v85.333h-85.333v-85.333h85.333zM128 469.333h85.334v85.333h-85.334v-85.333zM896 469.333v85.333h-85.333v-85.333h85.333zM896 298.668v85.333h-85.333v-85.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "select-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2293,
+            "id": 269,
+            "prevSize": 24,
+            "code": 59899,
+            "name": "select-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1019
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 128h42.667v85.333h-85.333v-42.667c0-23.564 19.102-42.667 42.667-42.667zM853.333 128c23.565 0 42.667 19.103 42.667 42.667v42.667h-85.333v-85.333h42.667zM640 213.334v-85.333h85.333v85.333h-85.333zM469.333 213.334v-85.333h85.333v85.333h-85.333zM298.667 213.334v-85.333h85.333v85.333h-85.333zM896 853.333c0 23.565-19.102 42.667-42.667 42.667h-42.667v-85.333h85.333v42.667zM640 896v-85.333h85.333v85.333h-85.333zM469.333 896v-85.333h85.333v85.333h-85.333zM298.667 896v-85.333h85.333v85.333h-85.333zM170.667 896c-23.564 0-42.667-19.102-42.667-42.667v-42.667h85.333v85.333h-42.667zM128 640h85.333v85.333h-85.333v-85.333zM896 640v85.333h-85.333v-85.333h85.333zM128 469.333h85.333v85.333h-85.333v-85.333zM896 469.333v85.333h-85.333v-85.333h85.333zM128 298.667h85.333v85.333h-85.333v-85.333zM896 298.667v85.333h-85.333v-85.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "select"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2294,
+            "id": 268,
+            "prevSize": 24,
+            "code": 59900,
+            "name": "select"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1020
+    }, {
+        "icon": {
+            "paths": [
+                "M85.76 896l895.573-384-895.573-384-0.427 298.667 640 85.333-640 85.333 0.427 298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "send"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2295,
+            "id": 267,
+            "prevSize": 24,
+            "code": 59901,
+            "name": "send"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1021
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 170.667h682.667c23.565 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.102 42.667-42.667 42.667h-682.667c-23.564 0-42.667-19.102-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667zM384 341.334h42.667v-85.333h-42.667v85.333zM213.333 256v85.333h85.333v-85.333h-85.333zM341.333 682.667h341.333v85.333h-341.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "server-minus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2296,
+            "id": 266,
+            "prevSize": 24,
+            "code": 59902,
+            "name": "server-minus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1022
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 768h42.667c23.565 0 42.667 19.102 42.667 42.667h31.211l-116.544-116.544v73.877zM938.667 810.667v50.231l-50.231-50.231h50.231zM896 926.844l-54.123 54.49-85.333-85.333h-116.544c0 23.565-19.102 42.667-42.667 42.667h-170.667c-23.564 0-42.666-19.102-42.666-42.667h-298.667v-85.333h298.667c0-23.565 19.102-42.667 42.666-42.667h42.667v-85.333h-298.667c-23.564 0-42.667-19.102-42.667-42.667v-170.667c0-23.565 19.102-42.667 42.667-42.667h116.545l-85.334-85.333h-31.211c-23.564 0-42.667-19.103-42.667-42.667v-31.211l-85.333-85.333 54.49-54.121 798.843 798.843zM170.667 85.334h682.667c23.565 0 42.667 19.102 42.667 42.666v170.667c0 23.564-19.102 42.667-42.667 42.667h-434.232l-120.435-120.435v-50.231h-50.231l-84.763-84.763c2.276-0.375 4.612-0.57 6.994-0.57zM853.333 426.667c23.565 0 42.667 19.102 42.667 42.667v170.667c0 23.565-19.102 42.667-42.667 42.667h-92.898l-256-256h348.898zM384 256.001h42.667v-85.333h-42.667v85.333zM384 597.333h42.667v-31.211l-42.667-42.667v73.877zM213.333 512v85.333h85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "server-network-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2297,
+            "id": 265,
+            "prevSize": 24,
+            "code": 59903,
+            "name": "server-network-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1023
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 768h42.667c23.565 0 42.667 19.102 42.667 42.667h298.667v85.333h-298.667c0 23.565-19.102 42.667-42.667 42.667h-170.667c-23.564 0-42.666-19.102-42.666-42.667h-298.667v-85.333h298.667c0-23.565 19.102-42.667 42.666-42.667h42.667v-85.333h-298.667c-23.564 0-42.667-19.102-42.667-42.667v-170.667c0-23.565 19.102-42.667 42.667-42.667h682.667c23.565 0 42.667 19.102 42.667 42.667v170.667c0 23.565-19.102 42.667-42.667 42.667h-298.667v85.333zM170.667 85.333h682.667c23.565 0 42.667 19.102 42.667 42.667v170.666c0 23.564-19.102 42.667-42.667 42.667h-682.667c-23.564 0-42.667-19.102-42.667-42.667v-170.666c0-23.564 19.103-42.667 42.667-42.667zM384 256h42.667v-85.333h-42.667v85.333zM384 597.333h42.667v-85.333h-42.667v85.333zM213.333 170.667v85.333h85.333v-85.333h-85.333zM213.333 512v85.333h85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "server-network"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2298,
+            "id": 264,
+            "prevSize": 24,
+            "code": 59904,
+            "name": "server-network"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1024
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 42.667h682.667c23.565 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.102 42.667-42.667 42.667h-476.899l-85.333-85.333h7.564v-85.333h-85.333v7.565l-76.382-76.382c7.805-10.050 20.006-16.516 33.716-16.516zM938.667 969.51l-54.123 54.49-42.667-42.667h-671.211c-23.564 0-42.667-19.102-42.667-42.667v-170.667c0-23.565 19.103-42.667 42.667-42.667h415.211l-85.333-85.333h-329.877c-23.564 0-42.667-19.102-42.667-42.667v-170.667c0-23.564 19.102-42.666 42.667-42.666h73.878l-87.582-87.582c-12.541-4.251-22.464-14.174-26.714-26.715l-87.582-87.581 54.49-54.121 841.51 841.509zM853.333 384.001c23.565 0 42.667 19.102 42.667 42.666v170.667c0 23.565-19.102 42.667-42.667 42.667h-135.565l-256-255.999h391.565zM853.333 725.333c23.565 0 42.667 19.102 42.667 42.667v50.231l-92.898-92.898h50.231zM384 213.334h42.667v-85.333h-42.667v85.333zM384 554.667h31.212l-31.212-31.211v31.211zM384 896h42.667v-85.333h-42.667v85.333zM213.333 469.333v85.333h85.333v-85.333h-85.333zM213.333 810.667v85.333h85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "server-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2299,
+            "id": 263,
+            "prevSize": 24,
+            "code": 59905,
+            "name": "server-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1025
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 170.667h682.667c23.565 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.102 42.667-42.667 42.667h-682.667c-23.564 0-42.667-19.102-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667zM384 341.334h42.667v-85.333h-42.667v85.333zM213.333 256v85.333h85.333v-85.333h-85.333zM341.333 682.667h128v-128h85.333v128h128v85.333h-128v128h-85.333v-128h-128v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "server-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2300,
+            "id": 262,
+            "prevSize": 24,
+            "code": 59906,
+            "name": "server-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1026
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 170.667h682.667c23.565 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.102 42.667-42.667 42.667h-682.667c-23.564 0-42.667-19.102-42.667-42.667v-170.667c0-23.564 19.103-42.667 42.667-42.667zM383.999 341.335h42.667v-85.333h-42.667v85.333zM213.333 256.001v85.333h85.333v-85.333h-85.333zM451.661 725.333l-110.327-110.327 60.339-60.339 110.328 110.327 110.327-110.327 60.339 60.339-110.327 110.327 110.327 110.327-60.339 60.339-110.327-110.327-110.327 110.327-60.34-60.339 110.327-110.327z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "server-remove"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2301,
+            "id": 261,
+            "prevSize": 24,
+            "code": 59907,
+            "name": "server-remove"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1027
+    }, {
+        "icon": {
+            "paths": [
+                "M128 42.667h682.667c23.565 0 42.667 19.102 42.667 42.667v170.666c0 23.564-19.102 42.667-42.667 42.667h-682.667c-23.564 0-42.667-19.102-42.667-42.667v-170.666c0-23.564 19.103-42.667 42.667-42.667zM128 384.001h682.667c23.565 0 42.667 19.102 42.667 42.666v28.442l-106.667-47.406-277.333 123.259v109.039h-341.333c-23.564 0-42.667-19.102-42.667-42.667v-170.667c0-23.564 19.102-42.666 42.667-42.666zM128 725.333h341.457c2.445 96.098 41.924 187.942 104.631 256h-446.089c-23.564 0-42.667-19.102-42.667-42.667v-170.667c0-23.565 19.103-42.667 42.667-42.667zM341.333 213.334h42.667v-85.333h-42.667v85.333zM341.333 554.667h42.667v-85.333h-42.667v85.333zM341.333 896h42.667v-85.333h-42.667v85.333zM170.667 128v85.333h85.333v-85.333h-85.333zM170.667 469.333v85.333h85.333v-85.333h-85.333zM170.667 810.667v85.333h85.333v-85.333h-85.333zM746.667 512l192 85.333v128c0 118.464-81.856 229.035-192 256-110.165-26.965-192-137.536-192-256v-128l192-85.333zM746.667 594.961l-106.667 47.407v113.779c0 65.813 45.466 127.241 106.667 142.221v-303.407z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "server-security"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2302,
+            "id": 260,
+            "prevSize": 24,
+            "code": 59908,
+            "name": "server-security"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1028
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 42.667h682.667c23.565 0 42.667 19.103 42.667 42.667v170.667c0 23.564-19.102 42.667-42.667 42.667h-682.667c-23.564 0-42.667-19.102-42.667-42.667v-170.667c0-23.564 19.102-42.667 42.667-42.667zM170.667 384h682.667c23.565 0 42.667 19.103 42.667 42.666v170.667c0 23.565-19.102 42.667-42.667 42.667h-682.667c-23.564 0-42.667-19.102-42.667-42.667v-170.667c0-23.564 19.102-42.666 42.667-42.666zM170.667 725.333h682.667c23.565 0 42.667 19.102 42.667 42.667v170.667c0 23.565-19.102 42.667-42.667 42.667h-682.667c-23.564 0-42.667-19.102-42.667-42.667v-170.667c0-23.565 19.103-42.667 42.667-42.667zM384 213.334h42.667v-85.333h-42.667v85.333zM384 554.667h42.667v-85.333h-42.667v85.333zM384 896h42.667v-85.333h-42.667v85.333zM213.333 128v85.333h85.333v-85.333h-85.333zM213.333 469.333v85.333h85.333v-85.333h-85.333zM213.333 810.667v85.333h85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "server"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2303,
+            "id": 259,
+            "prevSize": 24,
+            "code": 59909,
+            "name": "server"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1029
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 85.333h384v384h-384v-384zM746.667 85.334c106.039 0 192 85.961 192 192s-85.961 192-192 192c-106.039 0-192-85.961-192-192s85.961-192 192-192zM277.333 597.333l192 341.333h-384l192-341.333zM810.667 725.333h128v85.333h-128v128h-85.333v-128h-128v-85.333h128v-128h85.333v128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "shape-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2304,
+            "id": 258,
+            "prevSize": 24,
+            "code": 59910,
+            "name": "shape-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1030
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 686.148c-32.384 0-61.568 12.672-83.755 32.939l-304.085-177.408c2.304-9.6 3.84-19.456 3.84-29.739 0-10.325-1.536-20.181-3.84-29.781l300.843-175.489c22.869 21.291 53.291 34.603 86.997 34.603 70.656 0 128-57.344 128-128 0-70.699-57.344-128-128-128s-128 57.301-128 128c0 10.283 1.536 20.139 3.84 29.739l-300.843 175.488c-22.869-21.291-53.291-34.56-86.997-34.56-70.656 0-128 57.303-128 128.001 0 70.656 57.344 128 128 128 33.706 0 64.128-13.312 86.997-34.603l303.957 177.323c-2.048 9.003-3.413 18.261-3.413 27.947 0 68.693 55.765 124.416 124.459 124.416s124.459-55.723 124.459-124.416c0-68.736-55.765-124.459-124.459-124.459z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "share-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2305,
+            "id": 257,
+            "prevSize": 24,
+            "code": 59911,
+            "name": "share-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1031
+    }, {
+        "icon": {
+            "paths": [
+                "M895.974 469.252l-298.667-298.668v170.667c-298.667 42.667-426.667 256.001-469.333 469.335 106.667-149.333 256-217.6 469.333-217.6v174.933l298.667-298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "share"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2306,
+            "id": 256,
+            "prevSize": 24,
+            "code": 59912,
+            "name": "share"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1032
+    }, {
+        "icon": {
+            "paths": [
+                "M896 469.333c0 236.8-163.831 458.24-384 512-220.166-53.76-384-275.2-384-512l0-255.999 384-170.668 384 170.668v255.999zM512 896c160-42.667 298.667-233.007 298.667-417.186v-210.063l-298.667-132.975-298.667 132.975 0 210.063c0 184.179 138.666 374.519 298.667 417.186z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "shield-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2307,
+            "id": 255,
+            "prevSize": 24,
+            "code": 59913,
+            "name": "shield-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1033
+    }, {
+        "icon": {
+            "paths": [
+                "M512 42.667l-384 170.667v256c0 236.8 163.84 458.24 384 512 220.169-53.76 384-275.2 384-512v-256l-384-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "shield"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2308,
+            "id": 254,
+            "prevSize": 24,
+            "code": 59914,
+            "name": "shield"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1034
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 127.918c-70.699 0-128 57.301-128 128h256c0-70.699-57.301-128-128-128zM810.637 255.919c47.104 0 85.333 38.187 85.333 85.333v512c0 47.147-38.229 85.333-85.333 85.333h-597.331c-47.148 0-85.333-38.187-85.333-85.333l0.427-512c0-47.147 37.759-85.333 84.906-85.333h85.333c0-117.803 95.531-213.333 213.331-213.333 117.803 0 213.333 95.53 213.333 213.333h85.333zM384 810.667l320-213.333-320-170.667v384z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "shopping-music"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2309,
+            "id": 253,
+            "prevSize": 24,
+            "code": 59915,
+            "name": "shopping-music"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1035
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 554.586c-117.803 0-213.334-95.531-213.334-213.335h85.333c0 70.698 57.302 128.001 128 128.001s128-57.303 128-128.001h85.333c0 117.804-95.531 213.335-213.333 213.335zM511.974 127.918c70.699 0 128 57.301 128 128h-256c0-70.699 57.302-128 128-128zM810.641 255.918h-85.333c0-117.803-95.531-213.333-213.333-213.333s-213.334 95.531-213.334 213.333h-85.333c-47.147 0-84.906 38.187-84.906 85.333l-0.427 512.001c0 47.147 38.186 85.333 85.333 85.333h597.334c47.104 0 85.333-38.187 85.333-85.333v-512.001c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "shopping"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2310,
+            "id": 252,
+            "prevSize": 24,
+            "code": 59916,
+            "name": "shopping"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1036
+    }, {
+        "icon": {
+            "paths": [
+                "M632.747 572.16l-60.16 60.16 133.547 133.547-87.467 87.467h234.667v-234.667l-87.040 87.040-133.547-133.547zM618.667 170.667l87.040 87.040-535.040 535.467 60.16 60.16 535.467-535.040 87.040 87.040v-234.667zM451.84 391.253l-221.013-220.587-60.16 60.16 220.587 220.587 60.587-60.16z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "shuffle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2311,
+            "id": 251,
+            "prevSize": 24,
+            "code": 59917,
+            "name": "shuffle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1037
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 170.667l554.667 0v213.333l-42.667 0-42.667-128-253.325-0 153.212 218.807-175.421 250.526h275.534l42.667-85.333h42.667v213.333h-554.667l239.006-341.333-239.006-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sigma"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2312,
+            "id": 250,
+            "prevSize": 24,
+            "code": 59918,
+            "name": "sigma"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1038
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 128h853.333v426.667h-170.667v341.333h-85.333v-341.333h-341.333v341.333h-85.333v-341.333h-170.667v-426.667zM809.596 469.333l43.738-43.738v-120.679l-164.42 164.418h120.683zM568.235 469.333l256-256h-120.678l-256 256h120.678zM326.877 469.333l256.001-256-120.683-0-255.998 256h120.68zM220.838 213.333l-50.171 50.171v120.68l170.851-170.851-120.68-0z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sign-caution"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2313,
+            "id": 249,
+            "prevSize": 24,
+            "code": 59919,
+            "name": "sign-caution"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1039
+    }, {
+        "icon": {
+            "paths": [
+                "M128 896h128v-128h-128zM341.333 896h128v-298.667h-128zM554.667 896h128v-512h-128zM768 896h128v-768h-128v768z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "signal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2314,
+            "id": 248,
+            "prevSize": 24,
+            "code": 59920,
+            "name": "signal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1040
+    }, {
+        "icon": {
+            "paths": [
+                "M218.496 908.429l-60.33-60.331 411.976-412.019-8.785-8.785c-33.323-33.323-33.323-87.353 0-120.678l186.197-186.195 39.006 39.006-138.351 138.353 40.836 40.837 138.351-138.353 39.006 39.007-138.351 138.353 40.836 40.837 138.351-138.353 39.006 39.007-186.193 186.197c-33.327 33.323-87.356 33.323-120.678 0l-8.883-8.883-411.994 412.002z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "silverware-fork"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2315,
+            "id": 247,
+            "prevSize": 24,
+            "code": 59921,
+            "name": "silverware-fork"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1041
+    }, {
+        "icon": {
+            "paths": [
+                "M634.965 491.917l-416.469 416.512-60.33-60.331 416.469-416.512c-30.379-65.068-9.045-156.887 58.88-224.812 81.621-81.664 198.485-97.152 260.949-34.688 62.507 62.464 46.976 179.328-34.688 260.951-67.883 67.925-159.744 89.301-224.811 58.88z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "silverware-spoon"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2316,
+            "id": 246,
+            "prevSize": 24,
+            "code": 59922,
+            "name": "silverware-spoon"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1042
+    }, {
+        "icon": {
+            "paths": [
+                "M345.6 569.233l-178.646-178.604c-66.645-66.688-66.645-174.721 0-241.366l299.307 299.265-120.661 120.704zM572.331 554.594l293.461 293.504-60.331 60.331-293.504-293.504-293.461 293.504-60.33-60.331 411.976-412.019-8.785-8.785c-33.323-33.323-33.323-87.353 0-120.678l186.197-186.195 39.006 39.006-138.351 138.353 40.836 40.837 138.351-138.353 39.006 39.007-138.351 138.353 40.836 40.837 138.351-138.353 39.006 39.007-186.193 186.197c-33.327 33.323-87.356 33.323-120.678 0l-8.883-8.883-58.159 58.167z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "silverware-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2317,
+            "id": 245,
+            "prevSize": 24,
+            "code": 59923,
+            "name": "silverware-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1043
+    }, {
+        "icon": {
+            "paths": [
+                "M345.6 569.233l-178.646-178.604c-66.645-66.688-66.645-174.721 0-241.366l299.307 299.265-120.661 120.704zM634.965 491.917l-62.635 62.677 293.461 293.504-60.331 60.331-293.504-293.504-293.461 293.504-60.33-60.331 416.469-416.512c-30.379-65.068-9.045-156.887 58.88-224.812 81.621-81.664 198.485-97.152 260.949-34.688 62.507 62.464 46.976 179.328-34.688 260.951-67.883 67.925-159.744 89.301-224.811 58.88z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "silverware"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2318,
+            "id": 244,
+            "prevSize": 24,
+            "code": 59924,
+            "name": "silverware"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1044
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 554.586h-85.333v-213.335h85.333zM554.641 725.252h-85.333v-85.333h85.333zM767.974 85.251h-341.334l-255.063 256-0.937 512.001c0 46.933 38.401 85.333 85.333 85.333h512c46.933 0 85.333-38.4 85.333-85.333v-682.668c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sim-alert"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2319,
+            "id": 243,
+            "prevSize": 24,
+            "code": 59925,
+            "name": "sim-alert"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1045
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 341.251h-85.333v-170.667h85.333zM639.974 341.251h-85.333v-170.667h85.333zM511.974 341.251h-85.334v-170.667h85.334zM767.974 85.251h-341.334l-255.061 256-0.939 512.001c0 46.933 38.4 85.333 85.333 85.333h512c46.933 0 85.333-38.4 85.333-85.333v-682.668c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sim"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2320,
+            "id": 242,
+            "prevSize": 24,
+            "code": 59926,
+            "name": "sim"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1046
+    }, {
+        "icon": {
+            "paths": [
+                "M384 85.333v256h85.333v128h-256c-47.275 0-85.333 38.059-85.333 85.333v128h-85.333v256h256v-256h-85.333v-128h256v128h-85.333v256h256v-256h-85.333v-128h256v128h-85.333v256h256v-256h-85.333v-128c0-47.275-38.059-85.333-85.333-85.333h-256v-128h85.333v-256h-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sitemap"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2321,
+            "id": 241,
+            "prevSize": 24,
+            "code": 59927,
+            "name": "sitemap"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1047
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 773.803h85.333v-511.998h-85.333zM255.974 773.803l362.667-256-362.667-255.998v511.998z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "skip-next"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2322,
+            "id": 240,
+            "prevSize": 24,
+            "code": 59928,
+            "name": "skip-next"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1048
+    }, {
+        "icon": {
+            "paths": [
+                "M255.974 773.807v-512.001h85.333v512.001h-85.333zM405.307 517.82l362.667-256.002v512.002l-362.667-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "skip-previous"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2323,
+            "id": 239,
+            "prevSize": 24,
+            "code": 59929,
+            "name": "skip-previous"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1049
+    }, {
+        "icon": {
+            "paths": [
+                "M513.468 705.455c-113.769 0-164.655-55.919-164.655-97.847 0-21.513 15.867-36.561 37.754-36.561 48.671 0 36.078 69.901 126.9 69.901 46.49 0 72.175-25.246 72.175-51.098 0-15.543-7.667-32.751-38.289-40.294l-101.175-25.271c-81.498-20.433-96.285-64.478-96.285-105.895 0-85.987 80.954-118.268 156.986-118.268 70.025 0 152.576 38.699 152.576 90.288 0 22.108-19.14 34.954-40.998 34.954-41.553 0-33.907-57.502-117.585-57.502-41.54 0-64.55 18.803-64.55 45.714 0 26.86 32.815 35.427 61.278 41.929l74.901 16.623c82.035 18.27 102.844 66.167 102.844 111.283 0 69.867-53.636 122.044-161.877 122.044zM768.444 255.556c87.693 87.691 121.088 209.114 100.19 322.5 17.425 30.908 27.366 66.598 27.366 104.61 0 117.82-95.514 213.333-213.333 213.333-38.012 0-73.702-9.941-104.61-27.366-113.387 20.898-234.81-12.497-322.501-100.19-87.69-87.689-121.087-209.114-100.19-322.5-17.425-30.909-27.366-66.599-27.366-104.61 0-117.821 95.513-213.333 213.333-213.333 38.011 0 73.701 9.941 104.61 27.366 113.387-20.897 234.812 12.5 322.5 100.19zM341.333 213.334c-70.693 0-128 57.307-128 128 0 33.627 12.967 64.225 34.173 87.066-30.090 95.479-7.294 204.023 68.389 279.706s184.226 98.479 279.705 68.39c22.839 21.205 53.44 34.172 87.066 34.172 70.694 0 128-57.306 128-128 0-33.626-12.966-64.226-34.172-87.066 30.089-95.479 7.292-204.022-68.39-279.705s-184.226-98.479-279.706-68.389c-22.841-21.206-53.439-34.173-87.066-34.173z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "skype-business"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2324,
+            "id": 238,
+            "prevSize": 24,
+            "code": 59930,
+            "name": "skype-business"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1050
+    }, {
+        "icon": {
+            "paths": [
+                "M768.444 255.556c87.693 87.69 121.088 209.114 100.19 322.5 17.425 30.908 27.366 66.598 27.366 104.61 0 117.82-95.514 213.333-213.333 213.333-38.012 0-73.702-9.941-104.61-27.366-113.387 20.898-234.81-12.497-322.5-100.19-87.691-87.689-121.088-209.114-100.19-322.5-17.425-30.909-27.366-66.599-27.366-104.61 0-117.821 95.513-213.333 213.333-213.333 38.011 0 73.701 9.941 104.61 27.366 113.387-20.897 234.812 12.5 322.5 100.19zM513.651 732.322c122.594 0 183.334-59.093 183.334-138.223 0-51.098-23.565-105.344-116.471-126.037l-84.834-18.825c-32.235-7.364-69.402-17.067-69.402-47.488 0-30.479 26.061-51.775 73.11-51.775 94.771 0 86.114 65.125 133.175 65.125 24.751 0 46.43-14.549 46.43-39.588 0-58.429-93.491-102.257-172.8-102.257-86.115 0-177.8 36.56-177.8 133.946 0 46.905 16.747 96.791 109.051 119.933l114.586 28.625c34.684 8.538 43.366 28.032 43.366 45.632 0 29.282-29.090 57.869-81.745 57.869-102.862 0-88.597-79.164-143.722-79.164-24.789 0-42.76 17.045-42.76 41.408 0 47.488 57.632 110.818 186.482 110.818z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "skype"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2325,
+            "id": 237,
+            "prevSize": 24,
+            "code": 59931,
+            "name": "skype"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1051
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-256-256h-159.211v-85.333l33.885-39.991-332.552-332.553zM981.333 512h-256v-85.333l144.606-170.667-144.606 0v-85.333h256v85.333l-144.265 170.666h144.265v85.333zM419.101 341.334h220.899v85.333l-62.101 73.463-158.797-158.796zM298.667 853.333h-256v-85.333l144.605-170.667h-144.605v-85.333h256v85.333l-144.265 170.667h144.265v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sleep-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2326,
+            "id": 236,
+            "prevSize": 24,
+            "code": 59932,
+            "name": "sleep-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1052
+    }, {
+        "icon": {
+            "paths": [
+                "M981.333 512h-256v-85.333l144.606-170.667h-144.606v-85.333h256v85.333l-144.265 170.667h144.265v85.333zM640 682.667h-256v-85.333l144.606-170.667h-144.606v-85.333h256v85.333l-144.265 170.667h144.265v85.333zM298.667 853.333h-256v-85.333l144.605-170.667h-144.605v-85.333h256v85.333l-144.265 170.667h144.265v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sleep"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2327,
+            "id": 235,
+            "prevSize": 24,
+            "code": 59933,
+            "name": "sleep"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1053
+    }, {
+        "icon": {
+            "paths": [
+                "M675.157 597.333l170.667 170.667h92.843v-170.667zM85.333 768h128v-170.667h-128zM139.819 170.667l-54.485 54.101 104.235 104.235c-64.512 38.4-104.107 107.904-104.235 182.997h85.333c0-53.077 32.725-100.651 82.304-119.595l204.928 204.928h-159.232v170.667h329.899l170.667 170.667 54.101-54.485zM426.667 128v42.667c-0.085 46.592-25.472 89.429-66.261 111.915l61.739 61.739c56.277-39.936 89.771-104.661 89.856-173.653v-42.667h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "smoking-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2328,
+            "id": 234,
+            "prevSize": 24,
+            "code": 59934,
+            "name": "smoking-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1054
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 810.667h640v-170.667h-640zM85.334 810.667h128v-170.667h-128zM426.667 170.667v42.667c0 70.699-57.301 128-128 128-117.803 0-213.333 95.531-213.333 213.333h85.333c0-70.699 57.301-128 128-128 117.803 0 213.333-95.531 213.333-213.333v-42.667h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "smoking"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2329,
+            "id": 233,
+            "prevSize": 24,
+            "code": 59935,
+            "name": "smoking"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1055
+    }, {
+        "icon": {
+            "paths": [
+                "M512 872.393c-50.569 0.128-81.148-21.491-108.128-40.58-19.34-13.662-37.58-26.56-58.947-30.114-49.193-2.624-63.558 0.196-90.363 4.587-4.504 0-9.973-0.998-12.256-8.785-7.484-32.149-9.759-40.892-15.121-41.719-57.353-8.845-91.241-21.888-97.992-37.67-1.455-9.685 1.867-13.815 6.51-14.588 45.546-7.497 86.044-31.573 120.379-71.578 26.596-30.967 39.656-60.557 41.061-63.825 6.819-13.871 8.136-25.472 4.127-34.918-7.39-17.429-31.864-25.195-58.931-34.018-14.355-5.67-37.963-17.651-34.818-34.185 2.291-12.058 18.239-20.454 40.549-18.577 14.565 6.827 27.67 10.283 38.935 10.283 14.014 0 20.783-5.333 22.42-6.852-4.673-75.283-8.776-140.406 7.882-177.751 49.857-111.784 155.59-120.479 194.694-120.552 39.104 0.073 144.836 8.768 194.692 120.552 16.661 37.345 12.557 102.468 7.885 177.751 1.634 1.519 8.405 6.852 22.417 6.852 11.264 0 24.371-3.456 38.938-10.283 22.306-1.877 38.255 6.519 40.546 18.577 3.145 16.533-20.463 28.514-34.816 34.185-27.068 8.823-51.541 16.589-58.931 34.018-4.011 9.446-2.692 21.047 4.126 34.918 1.404 3.268 14.464 32.858 41.062 63.825 34.334 40.004 74.833 64.081 120.38 71.578 4.642 0.772 7.962 4.902 6.507 14.588-6.75 15.782-40.636 28.826-97.993 37.67-5.359 0.828-7.633 9.57-15.117 41.719-2.287 7.787-7.753 8.785-12.258 8.785-26.803-4.39-41.169-7.211-90.364-4.587-21.367 3.554-39.607 16.452-58.948 30.114-26.978 19.089-57.557 40.708-108.126 40.58z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "snapchat"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2330,
+            "id": 232,
+            "prevSize": 24,
+            "code": 59936,
+            "name": "snapchat"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1056
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 725.333c0 117.82-95.514 213.333-213.333 213.333s-213.333-95.514-213.333-213.333c0-63.714 27.929-120.9 72.212-159.991-18.645-27.354-29.546-60.407-29.546-96.009 0-5.845 0.294-11.618 0.867-17.31l-127.284-73.488-8.849-6.778-108.541 29.084-11.043-41.213 94.496-25.321-84.723-48.915 21.333-36.951 84.723 48.915-25.32-94.497 41.213-11.043 29.083 108.542 10.294 4.274 114.92 66.349c16.285-23.056 38.142-41.897 63.61-54.56-31.608-23.307-52.113-60.804-52.113-103.090 0-70.692 57.306-128 128-128s128 57.308 128 128c0 42.287-20.506 79.783-52.113 103.090 25.468 12.664 47.326 31.504 63.612 54.56l114.918-66.349 10.291-4.274 29.086-108.542 41.212 11.043-25.318 94.497 84.723-48.915 21.333 36.951-84.723 48.915 94.494 25.321-11.042 41.213-108.54-29.084-8.849 6.778-127.283 73.488 0.866 17.31c0 35.601-10.901 68.655-29.547 96.009 44.284 39.091 72.213 96.277 72.213 159.991z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "snowman"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2331,
+            "id": 231,
+            "prevSize": 24,
+            "code": 59937,
+            "name": "snowman"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1057
+    }, {
+        "icon": {
+            "paths": [
+                "M298.667 256h85.333c47.13 0 85.333 38.205 85.333 85.333v170.667h-256v-170.667c0-47.128 38.205-85.333 85.333-85.333zM640 256h85.333c47.13 0 85.333 38.205 85.333 85.333v170.667h-256v-170.667c0-47.128 38.204-85.333 85.333-85.333zM42.667 384h42.667c23.564 0 42.667 19.102 42.667 42.666v85.333c0 47.13 38.205 85.333 85.333 85.333h597.333c47.13 0 85.333-38.204 85.333-85.333v-85.333c0-23.564 19.102-42.666 42.667-42.666h42.667c23.565 0 42.667 19.102 42.667 42.666v384h-128v-85.333h-768v85.333h-128v-384c0-23.564 19.103-42.666 42.667-42.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sofa"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2332,
+            "id": 230,
+            "prevSize": 24,
+            "code": 59938,
+            "name": "sofa"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1058
+    }, {
+        "icon": {
+            "paths": [
+                "M394.667 213.333l138.667-138.667 138.667 138.667h-277.333zM672 810.667l-138.667 138.667-138.666-138.667h277.333zM379.347 610.249h-123.354l-30.679 114.688h-100.984l131.663-426.099h127.828l133.555 426.099h-104.794l-33.235-114.688zM270.054 540.958h95.232l-26.844-90.534-11.345-41.152-10.386-41.143h-1.278l-9.667 41.514-10.146 41.848-25.565 89.468zM557.001 724.339v-52.608l202.479-288.972v-2.486h-183.556v-80.839h308.45v56.46l-198.063 285.108v2.496h201.212v80.841h-330.522z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sort-alphabetical"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2333,
+            "id": 229,
+            "prevSize": 24,
+            "code": 59939,
+            "name": "sort-alphabetical"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1059
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 469.414v85.333l341.359-0.081v-85.333l-341.359 0.081zM426.667 213.417v85.333l170.692-0.083v-85.333l-170.692 0.083zM426.692 725.333l-0.026 85.414h512l0.026-85.414h-512zM256 298.75h106.667l-149.333-149.333-149.333 149.333h106.667l0.026 554.583h85.333l-0.025-554.583z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sort-ascending"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2334,
+            "id": 228,
+            "prevSize": 24,
+            "code": 59940,
+            "name": "sort-ascending"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1060
+    }, {
+        "icon": {
+            "paths": [
+                "M426.641 554.581v-85.333l341.359 0.085v85.333l-341.359-0.085zM426.641 810.581v-85.333l170.692 0.085v85.333l-170.692-0.085zM426.666 298.668l-0.025-85.418h512l0.026 85.418h-512zM255.974 725.248h106.667l-149.333 149.333-149.333-149.333h106.667l0.026-554.581h85.333l-0.025 554.581z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sort-descending"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2335,
+            "id": 227,
+            "prevSize": 24,
+            "code": 59941,
+            "name": "sort-descending"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1061
+    }, {
+        "icon": {
+            "paths": [
+                "M332.057 298.951c55.268 1.559 94.9 22.266 118.9 62.124s35.716 89.515 35.157 148.966c0.124 66.163-12.749 118.345-38.609 156.535-25.861 38.195-65.441 57.685-118.741 58.47-53.454-1.37-92.502-21.807-117.145-61.316-24.643-39.505-36.948-89.869-36.913-151.087-0.181-62.409 12.57-113.311 38.254-152.707s65.382-59.725 119.098-60.986zM330.74 368.242c-18.729-0.122-33.626 11.666-44.691 35.366-11.066 23.698-16.588 60.046-16.567 109.036-0.117 48.371 5.268 84.339 16.155 107.904 10.887 23.569 26.141 35.307 45.761 35.209 39.411 0 59.391-48.137 59.94-144.414-0.11-94.537-20.309-142.237-60.599-143.101zM568.922 725.047v-75.661l18.005 0.951 23.147-0.951 44.241-8.218c14.562-4.476 27.738-10.769 39.526-18.889 13.935-10.001 25.472-21.679 34.603-35.029 9.135-13.35 15.701-27.324 19.703-41.916l-1.984-0.585c-18.765 17.865-47.467 26.991-86.097 27.379-36.233-0.213-66.479-10.999-90.739-32.363-24.265-21.363-36.868-52.023-37.815-91.985 0.717-42.092 15.185-77.152 43.396-105.18s65.869-42.577 112.973-43.651c53.158 1.297 92.339 18.775 117.547 52.431s37.705 75.703 37.495 126.148c-0.192 41.003-6.383 77.478-18.577 109.423-12.19 31.94-29.235 58.688-51.132 80.235-19.644 17.83-43.145 31.607-70.498 41.331s-57.613 15.232-90.773 16.529h-43.021zM685.231 368.242c-17.562 0.323-31.77 7.114-42.62 20.372-10.854 13.258-16.294 31.041-16.32 53.349-0.030 18.645 4.992 34.381 15.066 47.206 10.074 12.821 25.361 19.503 45.862 20.045 13.619-0.23 25.126-3.004 34.522-8.329 9.395-5.321 16.431-11.814 21.111-19.477 3.418-4.958 5.184-13.15 5.295-24.572 0.235-23.211-4.54-43.555-14.323-61.029-9.779-17.474-25.98-26.663-48.593-27.566zM394.667 213.333l138.667-138.667 138.667 138.667h-277.333zM672 810.667l-138.667 138.667-138.666-138.667h277.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sort-numeric"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2336,
+            "id": 226,
+            "prevSize": 24,
+            "code": 59942,
+            "name": "sort-numeric"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1062
+    }, {
+        "icon": {
+            "paths": [
+                "M128 554.667h512v-85.333h-512zM128 256v85.333h768v-85.333zM128 768h256v-85.333h-256v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sort-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2337,
+            "id": 225,
+            "prevSize": 24,
+            "code": 59943,
+            "name": "sort-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1063
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 554.667v-85.333h341.333v85.333h-341.333zM426.667 810.667v-85.333h170.667v85.333h-170.667zM426.692 298.752l-0.026-85.419h512l0.026 85.419h-512zM256 725.333h106.667l-149.333 149.333-149.333-149.333h106.667l-0-426.667h-106.667l149.333-149.333 149.333 149.333h-106.667l0 426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sort"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2338,
+            "id": 224,
+            "prevSize": 24,
+            "code": 59944,
+            "name": "sort"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1064
+    }, {
+        "icon": {
+            "paths": [
+                "M493.175 378.653v346.681h373.922v-0.418c78.733-5.005 114.236-53.918 114.236-113.472 0-62.997-47.582-113.894-111.629-113.894-16.439 0-29.965 3.341-44.262 9.493-10.253-99.917-95.036-178.035-199.424-178.035-51.055 0-97.476 18.772-132.843 49.645zM455.817 422.039c-12.851-7.613-26.679-13.558-41.365-17.626v320.92h59.034v-326.969c-6.46 7.405-12.373 15.436-17.668 23.674zM355.388 398.99v326.344h39.383v-325.092c-8.073-1.252-16.385-1.772-24.833-1.772-4.933 0-9.783 0.207-14.55 0.521zM276.687 426.524v298.809h39.351v-318.104c-14.060 4.693-27.274 11.264-39.351 19.295zM206.182 534.263c-2.691-1.668-5.361-3.337-8.229-4.8v195.87h39.351v-261.888c-15.665 20.442-26.585 44.535-31.122 70.818zM119.241 521.331v200.038c9.303 2.607 19.107 3.964 29.214 3.964h10.158v-207.548c-3.401-0.316-6.779-0.525-10.221-0.525-10.127 0-19.889 1.459-29.151 4.070zM42.666 621.35c0 31.706 14.445 60.075 37.213 79.266v-158.532c-22.768 19.085-37.213 47.561-37.213 79.266z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "soundcloud"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2339,
+            "id": 223,
+            "prevSize": 24,
+            "code": 59945,
+            "name": "soundcloud"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1065
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 810.667c0 94.255-76.412 170.667-170.667 170.667-94.257 0-170.667-76.412-170.667-170.667 0-79.522 54.39-146.342 128-165.291 0-27.9 0-55.799-30.502-100.036-30.499-44.233-91.499-104.802-152.5-165.369-29.012 5.418-59.809 3.377-89.551-7.447-88.572-32.238-134.24-130.173-102.002-218.746s130.173-134.24 218.745-102.002c88.572 32.238 134.242 130.173 102.003 218.745-10.825 29.742-29.058 54.646-51.857 73.387 17.261 58.771 148.331 168.092 148.331 189.425 0-21.333 131.068-130.655 148.331-189.426-22.801-18.741-41.033-43.645-51.857-73.387-32.239-88.572 13.431-186.508 102.003-218.745s186.505 13.431 218.743 102.003c32.239 88.572-13.431 186.508-102.003 218.745-29.739 10.825-60.54 12.866-89.549 7.448-61.001 60.567-122.001 121.136-152.503 165.369-30.498 44.237-30.498 72.137-30.498 100.036 73.609 18.948 128 85.769 128 165.291zM512 725.333c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333zM284.338 131.962c-44.286-16.119-93.254 6.716-109.373 51.002s6.715 93.254 51.001 109.373c44.286 16.119 93.254-6.715 109.373-51.001s-6.715-93.254-51.002-109.373zM739.661 131.962c-44.284 16.119-67.119 65.087-50.999 109.373s65.084 67.12 109.372 51.001c44.284-16.119 67.119-65.087 50.999-109.373-16.115-44.286-65.084-67.12-109.372-51.002z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "source-fork"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2340,
+            "id": 222,
+            "prevSize": 24,
+            "code": 59946,
+            "name": "source-fork"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1066
+    }, {
+        "icon": {
+            "paths": [
+                "M256 85.333c94.257 0 170.667 76.41 170.667 170.667 0 79.524-54.39 146.344-128 165.29v181.42c73.609 18.948 128 85.769 128 165.291 0 94.255-76.41 170.667-170.667 170.667s-170.667-76.412-170.667-170.667c0-79.522 54.39-146.342 128-165.291v-181.42c-73.61-18.946-128-85.766-128-165.29 0-94.257 76.41-170.667 170.667-170.667zM256 170.667c-47.128 0-85.333 38.205-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.333-38.205 85.333-85.333s-38.205-85.333-85.333-85.333zM256 682.667c-47.128 0-85.333 38.204-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.333-38.204 85.333-85.333s-38.205-85.333-85.333-85.333zM938.667 768c0 94.255-76.412 170.667-170.667 170.667s-170.667-76.412-170.667-170.667c0-79.522 54.391-146.342 128-165.291v-304.043l-85.333 0v138.666l-181.333-181.333 181.333-181.333v138.666l85.333-0c47.13 0 85.333 38.205 85.333 85.334v304.043c73.609 18.948 128 85.769 128 165.291zM768 682.667c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "source-pull"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2341,
+            "id": 221,
+            "prevSize": 24,
+            "code": 59947,
+            "name": "source-pull"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1067
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.789l54.49-54.122 756.177 756.176-54.123 54.49-62.268-62.268c-14.754 12.194-33.677 19.52-54.302 19.52l-426.665-0.427c-47.148 0-85.333-37.803-85.333-84.907v-500.488l-127.976-127.975zM511.974 767.919c-70.656 0-127.999-57.344-127.999-128 0-32.401 12.058-62.003 31.93-84.557l-60.42-60.42c-35.273 38.050-56.844 88.99-56.844 144.977 0 117.845 95.573 213.333 213.332 213.333 55.979 0 106.927-21.559 144.986-56.836l-60.425-60.425c-22.558 19.87-52.16 31.927-84.561 31.927zM725.308 639.919c0-117.845-95.531-213.333-213.333-213.333l-7.492 0.128-285.852-285.852c12.066-32.463 43.326-55.609 80.012-55.609h426.665c47.104 0 85.333 38.229 85.333 85.333v562.287l-85.461-85.461 0.128-7.492zM511.974 170.586c-47.189 0-85.332 38.229-85.332 85.333s38.143 85.333 85.332 85.333c47.061 0 85.333-38.229 85.333-85.333s-38.272-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "speaker-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2342,
+            "id": 220,
+            "prevSize": 24,
+            "code": 59948,
+            "name": "speaker-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1068
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 511.919c-70.656 0-127.999 57.344-127.999 128s57.343 128 127.999 128c70.656 0 128-57.344 128-128s-57.344-128-128-128zM511.974 853.252c-117.759 0-213.332-95.488-213.332-213.333s95.573-213.335 213.332-213.335c117.803 0 213.333 95.489 213.333 213.335s-95.531 213.333-213.333 213.333zM511.974 170.584c47.061 0 85.333 38.229 85.333 85.333s-38.272 85.333-85.333 85.333c-47.189 0-85.332-38.229-85.332-85.333s38.143-85.333 85.332-85.333zM725.308 85.251h-426.665c-47.147 0-85.333 38.229-85.333 85.333v682.668c0 47.104 38.186 84.907 85.333 84.907l426.665 0.427c47.104 0 85.333-38.229 85.333-85.333v-682.668c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "speaker"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2343,
+            "id": 219,
+            "prevSize": 24,
+            "code": 59949,
+            "name": "speaker"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1069
+    }, {
+        "icon": {
+            "paths": [
+                "M512 682.667c-70.694 0-128-57.306-128-128 0-47.757 26.153-89.404 64.917-111.403l413.303-239.546-235.913 408.613c-21.090 41.724-64.358 70.336-114.308 70.336zM512 128c77.133 0 149.483 20.467 211.917 56.265l-89.502 51.676c-37.999-14.604-79.275-22.608-122.415-22.607-188.513-0-341.333 152.82-341.333 341.333 0 94.208 38.167 179.507 99.882 241.267l0.222-0.222c16.662 16.661 16.662 43.678 0 60.339-16.632 16.631-43.578 16.661-60.248 0.094l-0.222 0.222c-77.211-77.214-124.968-183.881-124.968-301.7 0-235.641 191.025-426.667 426.667-426.667zM938.667 554.667c0 117.82-47.757 224.486-124.966 301.7l-0.094-0.094c-16.678 16.439-43.529 16.367-60.117-0.222-16.661-16.661-16.661-43.678 0-60.339l0.094 0.090c61.636-61.751 99.75-146.991 99.75-241.135 0-43.593-8.175-85.278-23.070-123.61l51.563-89.307c36.156 62.663 56.841 135.375 56.841 212.917z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "speedometer"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2344,
+            "id": 218,
+            "prevSize": 24,
+            "code": 59950,
+            "name": "speedometer"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1070
+    }, {
+        "icon": {
+            "paths": [
+                "M921.173 494.507l-345.173 345.173-156.587-157.013-60.16 60.16 217.173 217.173 404.907-405.333zM274.347 469.333l88.32-235.52 88.32 235.52zM531.2 682.667h89.173l-218.027-554.667h-79.36l-218.027 554.667h89.173l47.787-128h240.64l48.64 128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "spellcheck"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2345,
+            "id": 217,
+            "prevSize": 24,
+            "code": 59951,
+            "name": "spellcheck"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1071
+    }, {
+        "icon": {
+            "paths": [
+                "M763.733 465.067c-136.533-81.065-364.797-89.596-494.93-49.067-21.332 6.403-42.671-6.397-49.068-25.601-6.403-21.332 6.397-42.664 25.601-49.068 151.465-44.799 401.068-36.261 558.934 57.606 19.196 10.666 25.596 36.267 14.929 55.463-10.667 14.938-36.267 21.333-55.467 10.667zM759.467 584.533c-10.667 14.938-29.862 21.333-44.8 10.667-115.196-70.4-290.129-91.729-424.531-49.067-17.070 4.271-36.267-4.262-40.536-21.333-4.262-17.067 4.269-36.267 21.338-40.533 155.728-46.933 347.729-23.467 479.996 57.604 12.8 6.396 19.2 27.729 8.533 42.662zM708.271 701.867c-8.538 12.8-23.467 17.071-36.267 8.533-100.271-61.862-226.133-74.662-375.472-40.529-14.929 4.262-27.729-6.404-31.998-19.204-4.269-14.929 6.403-27.729 19.198-32 162.139-36.267 302.935-21.333 413.872 46.933 14.929 6.404 17.062 23.467 10.667 36.267zM512 85.334c-234.665 0-426.667 192.001-426.667 426.666 0 234.667 192.001 426.667 426.667 426.667 234.667 0 426.667-192 426.667-426.667 0-234.665-189.867-426.666-426.667-426.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "spotify"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2346,
+            "id": 216,
+            "prevSize": 24,
+            "code": 59952,
+            "name": "spotify"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1072
+    }, {
+        "icon": {
+            "paths": [
+                "M384 704l39.006-39.006 222.417 222.417-39.006 39.006-222.417-222.417zM661.333 426.667l39.006-39.006 222.417 222.417-39.006 39.006-222.417-222.417zM286.798 116.132l146.115 146.116-170.665 170.669-146.117-146.118c-33.325-33.324-33.325-87.354 0-120.679l49.987-49.987c33.325-33.325 87.355-33.325 120.68 0zM621.7 320l30.17 30.17-301.7 301.7-30.17-30.17-36.718-149.478 188.94-188.939 149.478 36.718z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "spotlight-beam"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2347,
+            "id": 215,
+            "prevSize": 24,
+            "code": 59953,
+            "name": "spotlight-beam"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1073
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 256l217.299 108.649c-29.378 41.666-46.633 92.494-46.633 147.351s17.254 105.685 46.633 147.349l-217.299 108.651v-512zM256 128h512l-108.651 174.632c-41.664-29.378-92.493-46.633-147.349-46.633s-105.684 17.255-147.351 46.633l-108.65-174.632zM938.667 256v512l-217.301-108.651c29.38-41.664 46.635-92.493 46.635-147.349s-17.254-105.684-46.635-147.35l217.301-108.65zM768 896h-512l108.649-174.63c41.666 29.376 92.494 46.63 147.351 46.63s105.685-17.254 147.349-46.63l108.651 174.63zM512 341.333c94.255 0 170.667 76.41 170.667 170.667 0 94.255-76.412 170.667-170.667 170.667-94.257 0-170.667-76.412-170.667-170.667 0-94.257 76.41-170.667 170.667-170.667zM512 426.667c-47.13 0-85.333 38.204-85.333 85.333s38.204 85.333 85.333 85.333c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "spotlight"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2348,
+            "id": 214,
+            "prevSize": 24,
+            "code": 59954,
+            "name": "spotlight"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1074
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 128h-597.333c-47.125 0-84.896 38.208-84.896 85.333l-0.333 128h-0.104v469.333c0 47.125 38.208 85.333 85.333 85.333h597.333c47.125 0 85.333-38.208 85.333-85.333v-597.333c0-47.125-38.208-85.333-85.333-85.333zM810.667 469.333h-341.333v341.333h-85.333v-341.333h-170.667v-85.333h170.667v-170.667h85.333v170.667h341.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "spreadsheet"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2349,
+            "id": 213,
+            "prevSize": 24,
+            "code": 59955,
+            "name": "spreadsheet"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1075
+    }, {
+        "icon": {
+            "paths": [
+                "M234.667 0.002h554.667c129.6 0 234.667 105.064 234.667 234.666v554.665c0 129.604-105.067 234.667-234.667 234.667h-554.667c-129.603 0-234.667-105.062-234.667-234.667v-554.665c0-129.603 105.064-234.666 234.667-234.666zM656.427 647.701c0 67.379-38.093 111.983-108.096 118.127v-227.819c72.461 22.404 108.096 44.77 108.096 109.692zM497.050 256.696v207.543c-55.991-15.194-111.78-40.508-111.78-104.692 0-63.324 49.030-98.632 111.78-102.851zM661.585 324.116l43.213-33.792c-38.298-48.906-90.441-80.241-156.548-86.958v-41.247h-51.2v40.428c-90.685 5.898-169.411 60.785-169.411 160.399 0 106.374 88.023 139.552 169.368 161.504l0.043 241.83c-47.514-5.039-100.762-27.648-137.216-82.534l-48.333 32.073c38.175 57.425 105.021 93.918 185.549 100.676v45.427l17.818-0.043h33.463v-44.361c106.458-7.902 164.169-77.862 164.169-171.499 0-109.239-80.529-144.098-164.169-168.55v-219.504c48.414 7.291 85.073 30.597 113.254 66.15z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "square-inc-cash"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2350,
+            "id": 212,
+            "prevSize": 24,
+            "code": 59956,
+            "name": "square-inc-cash"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1076
+    }, {
+        "icon": {
+            "paths": [
+                "M256 128h512c70.694 0 128 57.308 128 128v512c0 70.694-57.306 128-128 128h-512c-70.693 0-128-57.306-128-128v-512c0-70.692 57.307-128 128-128zM298.667 256c-23.564 0-42.667 19.102-42.667 42.667v426.666c0 23.565 19.102 42.667 42.667 42.667h426.667c23.565 0 42.667-19.102 42.667-42.667v-426.666c0-23.564-19.102-42.667-42.667-42.667h-426.667zM405.333 384h213.333c11.78 0 21.333 9.551 21.333 21.333v213.333c0 11.78-9.553 21.333-21.333 21.333h-213.333c-11.782 0-21.333-9.553-21.333-21.333v-213.333c0-11.782 9.551-21.333 21.333-21.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "square-inc"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2351,
+            "id": 211,
+            "prevSize": 24,
+            "code": 59957,
+            "name": "square-inc"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1077
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 597.333h64v277.333h469.333v-277.333h64v341.333h-597.333v-341.333zM641.472 820.966h-353.105v-70.622h353.105v70.622zM636.544 710.067l-352.242-24.631 4.926-70.447 352.244 24.631-4.928 70.447zM641.579 614.673l-341.070-91.392 18.278-68.215 341.071 91.392-18.278 68.215zM661.244 516.181l-305.796-176.553 35.31-61.159 305.797 176.55-35.311 61.163zM709.628 441.161l-207.548-285.666 57.135-41.51 207.548 285.667-57.135 41.509zM783.241 391.446l-43.034-350.471 70.093-8.606 43.034 350.471-70.093 8.606z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "stackoverflow"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2352,
+            "id": 210,
+            "prevSize": 24,
+            "code": 59958,
+            "name": "stackoverflow"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1078
+    }, {
+        "icon": {
+            "paths": [
+                "M692.48 768l-180.48-108.8-180.48 108.8 47.787-205.227-159.147-137.813 209.92-17.92 81.92-193.707 81.92 193.28 209.92 17.92-159.147 137.813 47.787 205.653zM511.573 85.333c-235.52 0-426.24 191.147-426.24 426.667s190.72 426.667 426.24 426.667c235.947 0 427.093-191.147 427.093-426.667s-191.147-426.667-427.093-426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "star-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2353,
+            "id": 209,
+            "prevSize": 24,
+            "code": 59959,
+            "name": "star-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1079
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 678.161v-396.844l72.96 172.204 186.88 16.043-141.739 122.795 42.453 182.656zM938.641 415.674l-306.816-26.325-119.851-282.752-119.851 282.752-306.816 26.325 232.747 201.644-69.76 299.947 263.68-159.061 263.68 159.061-69.76-299.947 232.747-201.644z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "star-half"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2354,
+            "id": 208,
+            "prevSize": 24,
+            "code": 59960,
+            "name": "star-half"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1080
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333l123.17 213.333h246.336l-123.17 213.333 123.17 213.333h-246.336l-123.17 213.333-123.168-213.333h-246.336l123.168-213.333-123.168-213.333h246.336l123.168-213.333zM733.7 640l-24.631-42.667-24.636 42.667h49.267zM512 256l-24.631 42.666h49.263l-24.631-42.666zM290.298 640h49.267l-24.634-42.667-24.634 42.667zM733.7 384h-49.267l24.636 42.667 24.631-42.667zM512 768l24.631-42.667h-49.263l24.631 42.667zM290.298 384l24.634 42.667 24.634-42.667h-49.267zM659.802 512l-73.903-128h-147.797l-73.903 128 73.903 128h147.797l73.903-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "star-of-david"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2355,
+            "id": 207,
+            "prevSize": 24,
+            "code": 59961,
+            "name": "star-of-david"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1081
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 656.823l-160.555 96.853 42.453-182.656-141.739-122.795 186.88-16.043 72.96-172.204 72.96 172.204 186.88 16.043-141.739 122.795 42.453 182.656zM938.641 394.337l-306.816-26.326-119.851-282.752-119.851 282.752-306.816 26.326 232.747 201.687-69.76 299.904 263.68-159.061 263.68 159.061-69.76-299.904 232.747-201.687z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "star-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2356,
+            "id": 206,
+            "prevSize": 24,
+            "code": 59962,
+            "name": "star-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1082
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 736.887l263.68 159.019-69.76-299.904 232.747-201.644-306.816-26.368-119.851-282.752-119.851 282.752-306.816 26.368 232.747 201.644-69.76 299.904 263.68-159.019z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "star"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2357,
+            "id": 205,
+            "prevSize": 24,
+            "code": 59963,
+            "name": "star"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1083
+    }, {
+        "icon": {
+            "paths": [
+                "M859.43 332.19c50.492 0 91.426 40.934 91.426 91.429 0 50.493-40.934 91.427-91.426 91.427-50.496 0-91.43-40.934-91.43-91.427 0-50.495 40.934-91.429 91.43-91.429zM128 295.619c70.692 0 128 57.308 128 128l-0.696 13.428 270.9 140.484c21.466-16.265 48.218-25.911 77.227-25.911l91.426-128.001c0-90.89 73.681-164.571 164.574-164.571 90.889 0 164.57 73.681 164.57 164.571s-73.681 164.571-164.57 164.571l-128 91.43c0 70.69-57.31 128-128 128-70.694 0-128-57.31-128-128 0-1.604 0.026-3.2 0.085-4.787l-277.614-143.97c-20.096 13.129-44.108 20.757-69.902 20.757-70.693 0-128-57.31-128-128.001s57.307-128 128-128zM641.412 637.278c26.991 13.756 37.726 46.788 23.97 73.783-13.751 26.995-46.788 37.726-73.779 23.974l-78.421-40.67c7.053 43.482 44.774 76.681 90.249 76.681 50.492 0 91.426-40.934 91.426-91.426 0-50.496-40.934-91.43-91.426-91.43-14.131 0-27.511 3.204-39.458 8.93l77.44 40.158zM128 332.191c-50.495 0-91.429 40.934-91.429 91.429 0 50.493 40.934 91.427 91.429 91.427 10.44 0 20.471-1.749 29.816-4.971l-60.7-31.479c-26.994-13.756-37.728-46.788-23.974-73.782 13.754-26.995 46.788-37.728 73.783-23.974l72.355 37.523c-2.723-48.049-42.549-86.173-91.28-86.173zM859.43 295.619c-70.694 0-128 57.307-128 128 0 70.691 57.306 128.001 128 128.001 70.69 0 128-57.31 128-128.001 0-70.693-57.31-128-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "steam"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2358,
+            "id": 204,
+            "prevSize": 24,
+            "code": 59964,
+            "name": "steam"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1084
+    }, {
+        "icon": {
+            "paths": [
+                "M810.496 340.907c24.064 0 42.667 18.603 42.667 42.667s-18.603 42.667-42.667 42.667c-24.064 0-42.667-18.603-42.667-42.667s18.603-42.667 42.667-42.667zM85.163 84.48v384c0.128 127.147 93.44 234.667 219.307 253.013 26.752 128.427 140.117 217.173 271.531 217.173 153.173 0 277.333-124.16 277.333-277.333v-157.44c49.493-17.792 85.333-64.853 85.333-119.893 0-70.4-57.6-128-128-128s-128 57.6-128 128c0 55.040 35.968 102.4 85.333 119.893l0.171 153.6c0 106.667-85.333 192-192 192-85.333 0-157.184-51.627-182.784-128.427 118.613-25.6 203.947-132.267 203.947-251.733v-384h-170.667v128h85.333v256c0 94.293-76.373 170.667-170.667 170.667s-170.667-76.8-170.667-170.667v-256h85.333v-128l-170.837-0.853z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "stethoscope"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2359,
+            "id": 203,
+            "prevSize": 24,
+            "code": 59965,
+            "name": "stethoscope"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1085
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 85.333c47.13 0 85.333 38.205 85.333 85.333v128c0 47.128-38.204 85.333-85.333 85.333v341.333c0 36.053-22.362 66.889-53.969 79.386l-266.653 124.343c-42.713 19.917-93.484 1.438-113.402-41.276l-36.063-77.338c-19.917-42.714-1.438-93.487 41.275-113.404l130.145-60.689 0-252.356c-47.128 0-85.333-38.205-85.333-85.333v-128c0-47.128 38.205-85.333 85.333-85.333l298.667-0zM426.667 170.667v128h298.667v-128h-298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "stocking"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2360,
+            "id": 202,
+            "prevSize": 24,
+            "code": 59966,
+            "name": "stocking"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1086
+    }, {
+        "icon": {
+            "paths": [
+                "M768 768h-512l-0.005-511.995 512.005-0.005v512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "stop"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2361,
+            "id": 201,
+            "prevSize": 24,
+            "code": 59967,
+            "name": "stop"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1087
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 511.919h-42.667v-85.335h-85.333v-128h42.667v85.333h42.667v-85.333h42.667zM469.308 426.584h-85.333v42.668h85.333v42.667h-128v-128.001h85.333v-42.667h-85.333v-42.667h128zM810.641 298.584v-128h-597.333v128h-128v554.668h341.333v-170.667h170.667v170.667h341.333v-554.668h-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "store-24-hour"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2362,
+            "id": 200,
+            "prevSize": 24,
+            "code": 59968,
+            "name": "store-24-hour"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1088
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 767.915h-256v-170.667h256zM895.974 597.248v-85.333l-42.667-213.335h-682.667l-42.667 213.335v85.333h42.667v256h426.667v-256h170.667v256h85.333v-256zM853.308 170.58h-682.667v85.333h682.667v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "store"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2363,
+            "id": 199,
+            "prevSize": 24,
+            "code": 59969,
+            "name": "store"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1089
+    }, {
+        "icon": {
+            "paths": [
+                "M256 597.333h85.333l128 128h-85.333l-128-128zM170.667 170.667h42.667v-42.667c0-23.564 19.102-42.667 42.667-42.667h170.667c23.565 0 42.667 19.102 42.667 42.667v42.667h85.333v-42.666c0-23.564 19.102-42.667 42.667-42.667h170.667c23.565 0 42.667 19.102 42.667 42.667v42.666h42.667c47.13 0 85.333 38.205 85.333 85.333v554.666c0 47.13-38.204 85.333-85.333 85.333v42.667h-128v-42.667h-426.667v42.667h-128v-42.667c-47.128 0-85.333-38.204-85.333-85.333v-554.666c0-47.128 38.205-85.333 85.333-85.333zM768 298.667c23.565 0 42.667 19.103 42.667 42.667s-19.102 42.667-42.667 42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667zM597.333 298.667c23.565 0 42.667 19.103 42.667 42.667s-19.102 42.667-42.667 42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667zM853.333 256h-682.667v170.667h682.667v-170.667zM170.667 810.667h682.667v-298.667h-682.667v298.667zM256 298.667c23.564 0 42.667 19.103 42.667 42.667s-19.103 42.667-42.667 42.667c-23.564 0-42.667-19.103-42.667-42.667s19.103-42.667 42.667-42.667zM554.667 597.333h85.333l128 128h-85.333l-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "stove"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2364,
+            "id": 198,
+            "prevSize": 24,
+            "code": 59970,
+            "name": "stove"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1090
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 469.252h-213.333v-213.335h213.333zM703.974 725.252c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.371 0 64 28.672 64 64s-28.629 64-64 64zM469.308 469.252h-213.333v-213.335h213.333zM319.974 725.252c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.37 0 64 28.672 64 64s-28.63 64-64 64zM511.974 85.251c-188.501 0-341.333 21.333-341.333 170.667v405.335c0 82.475 66.944 149.333 149.333 149.333l-64 64v21.333h512v-21.333l-64-64c82.56 0 149.333-66.859 149.333-149.333v-405.335c0-149.333-152.832-170.667-341.333-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "subway"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2365,
+            "id": 197,
+            "prevSize": 24,
+            "code": 59971,
+            "name": "subway"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1091
+    }, {
+        "icon": {
+            "paths": [
+                "M298.539 725.333h-128c-68.992 0-129.706-53.632-138.24-122.027l-21.248-127.659c-4.565-36.053 5.632-70.059 27.691-95.018s54.528-39.296 89.13-39.296h256c35.627 0 67.627 14.848 87.851 40.747 5.065 6.499 9.276 13.548 12.608 21.008 18.163-3.831 36.983-3.828 55.142 0.009 3.319-7.497 7.531-14.534 12.591-21.018 20.224-25.899 52.224-40.747 87.808-40.747h256c34.645 0 67.072 14.336 89.173 39.296 22.016 25.002 32.213 59.008 27.904 93.354l-21.76 131.029c-8.32 66.731-69.035 120.32-137.941 120.32h-128c-66.645 0-131.371-50.603-147.456-115.157l-38.336-115.806c-16.448-11.836-38.848-11.814-55.249 0.064l-39.108 118.814c-15.275 61.525-80.043 112.085-146.56 112.085z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sunglasses"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2366,
+            "id": 196,
+            "prevSize": 24,
+            "code": 59972,
+            "name": "sunglasses"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1092
+    }, {
+        "icon": {
+            "paths": [
+                "M895.974 383.917l-170.24-170.667v128h-299.094v85.333h299.094v127.998zM298.214 469.248l-170.24 170.667 170.24 170.667v-128h299.094v-85.333h-299.094v-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "swap-horizontal"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2367,
+            "id": 195,
+            "prevSize": 24,
+            "code": 59973,
+            "name": "swap-horizontal"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1093
+    }, {
+        "icon": {
+            "paths": [
+                "M383.974 127.917l-170.667 170.24h128v299.092h85.333v-299.092h128zM682.641 725.679v-299.095h-85.333v299.095h-128l170.667 170.236 170.667-170.236h-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "swap-vertical"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2368,
+            "id": 194,
+            "prevSize": 24,
+            "code": 59974,
+            "name": "swap-vertical"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1094
+    }, {
+        "icon": {
+            "paths": [
+                "M85.334 768c94.815-42.667 189.63-85.333 284.445-85.333s189.629 85.333 284.442 85.333c94.818 0 189.632-85.333 284.446-85.333v128c-94.814 0-189.628 85.333-284.446 85.333-94.814 0-189.628-85.333-284.442-85.333s-189.629 42.667-284.445 85.333v-128zM369.777 554.667c-32.937 0-65.873 5.15-98.81 13.658l209.843-146.934-44.16-52.631c-6.234-7.416-9.984-16.982-9.984-27.426 0-14.674 7.407-27.617 18.688-35.296l244.16-170.963 48.943 69.901-206.511 144.601 223.087 265.864c-33.604 13.841-67.209 24.559-100.813 24.559-94.814 0-189.628-85.333-284.443-85.333zM768 298.667c47.13 0 85.333 38.205 85.333 85.333s-38.204 85.333-85.333 85.333c-47.13 0-85.333-38.204-85.333-85.333s38.204-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "swim"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2369,
+            "id": 193,
+            "prevSize": 24,
+            "code": 59975,
+            "name": "swim"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1095
+    }, {
+        "icon": {
+            "paths": [
+                "M295.253 213.333h-81.92l384 384 41.813-40.107zM851.627 815.787l-35.84 35.84c-16.64 16.64-43.52 16.64-60.16 0l-133.12-133.12-114.347 113.493-60.16-60.16 60.587-60.587-380.587-380.587v-202.667h202.667l380.587 380.587 60.587-60.587 60.16 60.16-113.92 113.92 133.12 133.12c17.067 17.067 17.067 43.947 0.427 60.587z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sword"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2370,
+            "id": 192,
+            "prevSize": 24,
+            "code": 59976,
+            "name": "sword"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1096
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 554.667h85.333v-256h-85.333zM896 170.667h-256v256l95.573-95.573c46.080 46.507 75.093 110.080 75.093 180.907 0 111.36-71.253 206.080-170.667 241.067v89.173c147.2-37.973 256-171.093 256-330.24 0-94.293-38.827-179.2-100.693-240.64zM469.333 725.333h85.333v-85.333h-85.333zM128 512c0 94.293 38.827 179.2 100.693 240.64l-100.693 100.693h256v-256l-95.573 95.573c-46.080-46.507-75.093-110.080-75.093-180.907 0-111.36 71.253-206.080 170.667-241.067v-89.173c-147.2 37.973-256 171.093-256 330.24z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sync-alert"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2371,
+            "id": 191,
+            "prevSize": 24,
+            "code": 59977,
+            "name": "sync-alert"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1097
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 170.667h-256v256l95.573-95.573c46.080 46.507 75.093 110.080 75.093 180.907 0 42.667-10.667 82.773-29.013 118.187l62.293 62.293c32.853-52.053 52.053-113.92 52.053-180.48 0-94.293-38.827-179.2-100.693-240.64l100.693-100.693zM122.027 230.827l100.693 100.693c-32.853 52.053-52.053 113.92-52.053 180.48 0 94.293 38.827 179.2 100.693 240.64l-100.693 100.693h256v-256l-95.573 95.573c-46.080-46.507-75.093-110.080-75.093-180.907 0-42.667 10.667-82.773 29.013-118.187l344.747 344.747c-10.667 5.547-21.333 10.667-32.853 14.507v89.173c34.133-8.96 66.133-23.040 95.147-40.96l100.693 100.693 54.187-54.187-670.293-671.147-54.613 54.187zM426.667 270.933v-89.173c-34.133 8.96-66.133 23.040-95.147 40.96l62.293 62.293c10.667-5.12 21.333-10.24 32.853-14.080z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sync-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2372,
+            "id": 190,
+            "prevSize": 24,
+            "code": 59978,
+            "name": "sync-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1098
+    }, {
+        "icon": {
+            "paths": [
+                "M512 768c-141.227 0-256-114.773-256-256 0-43.093 10.667-84.053 29.867-119.467l-62.293-62.293c-33.28 52.48-52.907 114.773-52.907 181.76 0 188.587 152.747 341.333 341.333 341.333v128l170.667-170.667-170.667-170.667zM512 170.667v-128l-170.667 170.667 170.667 170.667v-128c141.227 0 256 114.773 256 256 0 43.093-10.667 84.053-29.867 119.467l62.293 62.293c33.28-52.48 52.907-114.773 52.907-181.76 0-188.587-152.747-341.333-341.333-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "sync"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2373,
+            "id": 189,
+            "prevSize": 24,
+            "code": 59979,
+            "name": "sync"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1099
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 895.915h85.333v-85.333h-85.333zM469.308 895.915h85.333v-85.333l-85.333 0.043zM810.641 554.581h85.333v-85.333h-85.333zM810.641 895.915c47.104 0 85.333-38.225 85.333-85.333h-85.333zM298.641 213.25h85.333v-85.333h-85.333zM810.641 725.248h85.333v-85.333h-85.333zM810.641 127.917h-341.333v256h426.667v-170.667c0-47.104-38.229-85.333-85.333-85.333zM213.307 895.915v-85.333h-85.333c0 47.108 38.186 85.333 85.333 85.333zM127.974 725.248h85.333v-85.333h-85.333zM298.641 895.915h85.333v-85.291l-85.333 0.047zM127.974 213.25h85.333v-85.333c-47.147 0-85.333 38.229-85.333 85.333zM127.974 554.581h85.333v-85.333h-85.333zM127.974 383.917h85.333v-85.333h-85.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tab-unselected"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2374,
+            "id": 188,
+            "prevSize": 24,
+            "code": 59980,
+            "name": "tab-unselected"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1100
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 810.581l-597.334 0.090v-597.421h298.667v170.667h298.667zM810.641 127.917h-597.334c-47.104 0-85.333 38.229-85.333 85.333v597.331c0 47.108 38.229 85.333 85.333 85.333h597.334c47.104 0 85.333-38.225 85.333-85.333v-597.331c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tab"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2375,
+            "id": 187,
+            "prevSize": 24,
+            "code": 59981,
+            "name": "tab"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1101
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 85.334c47.13 0 85.333 38.205 85.333 85.333v682.666c0 47.13-38.204 85.333-85.333 85.333h-384v-853.333l384 0zM170.667 426.667v170.667h298.667v-170.667h-298.667zM170.667 682.667v170.667h298.667v-170.667h-298.667zM170.667 170.667v170.666h298.667v-170.667l-298.667 0zM640 469.333h128v-128h85.333v128h128v85.333h-128v128h-85.333v-128h-128v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "table-column-plus-after"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2376,
+            "id": 186,
+            "prevSize": 24,
+            "code": 59982,
+            "name": "table-column-plus-after"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1102
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 85.334c-47.13 0-85.333 38.205-85.333 85.333v682.666c0 47.125 38.204 85.333 85.333 85.333h384v-853.333l-384 0zM853.333 426.667v170.667h-298.667v-170.667h298.667zM853.333 682.667v170.667h-298.667v-170.667h298.667zM853.333 170.667v170.667l-298.667-0v-170.666h298.667zM384.001 469.333h-128v-128h-85.333v128h-128v85.333h128v128h85.333v-128h128v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "table-column-plus-before"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2377,
+            "id": 185,
+            "prevSize": 24,
+            "code": 59983,
+            "name": "table-column-plus-before"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1103
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.334l298.667-0c47.13 0 85.333 38.205 85.333 85.333v682.666c0 47.13-38.204 85.333-85.333 85.333h-298.667c-47.128 0-85.333-38.204-85.333-85.333v-682.666c0-47.129 38.205-85.333 85.333-85.333zM170.667 426.667v170.667h298.667v-170.667h-298.667zM170.667 682.667v170.667h298.667v-170.667h-298.667zM170.667 170.667v170.666l298.667-0v-170.666l-298.667 0zM750.327 512l-110.327-110.327 60.339-60.34 110.327 110.327 110.327-110.327 60.339 60.34-110.327 110.327 110.327 110.327-60.339 60.339-110.327-110.327-110.327 110.327-60.339-60.339 110.327-110.327z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "table-column-remove"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2378,
+            "id": 184,
+            "prevSize": 24,
+            "code": 59984,
+            "name": "table-column-remove"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1104
+    }, {
+        "icon": {
+            "paths": [
+                "M213.334 341.333h597.333c47.13 0 85.333 38.205 85.333 85.333v426.667c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333l0-426.667c0-47.128 38.205-85.333 85.333-85.333zM213.333 512v128h256v-128h-256zM554.667 512v128h256v-128h-256zM213.333 725.333v128h256v-128h-256zM554.667 725.333v128h256v-128h-256zM469.333 85.334h426.667v170.666h-85.333v-85.333l-256-0v85.333h-85.333v-170.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "table-column-width"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2379,
+            "id": 183,
+            "prevSize": 24,
+            "code": 59985,
+            "name": "table-column-width"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1105
+    }, {
+        "icon": {
+            "paths": [
+                "M926.020 569.63l-42.816 42.82-87.65-87.65 42.82-42.82c9.139-9.139 23.932-9.139 33.050 0l54.596 54.601c9.139 9.114 9.139 23.91 0 33.050zM512.154 808.196l258.624-258.62 87.65 87.646-258.624 258.624h-87.65v-87.65zM170.667 85.334h597.333c47.13 0 85.333 38.205 85.333 85.333v177.987l-163.345 163.346h-177.988v177.988l-78.012 78.012h-263.322c-47.128 0-85.333-38.204-85.333-85.333v-512c0-47.128 38.205-85.333 85.333-85.333zM170.667 256v170.666h256v-170.666h-256zM512 256v170.666h256v-170.666h-256zM170.667 512v170.667h256v-170.667h-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "table-edit"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2380,
+            "id": 182,
+            "prevSize": 24,
+            "code": 59986,
+            "name": "table-edit"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1106
+    }, {
+        "icon": {
+            "paths": [
+                "M170.668 128h682.666c47.13 0 85.333 38.205 85.333 85.333v640c0 47.13-38.204 85.333-85.333 85.333h-682.666c-47.128 0-85.333-38.204-85.333-85.333l0-640c0-47.128 38.205-85.333 85.333-85.333zM170.668 298.667l-0 128h170.666v-128l-170.666-0zM426.667 298.667l-0 128h170.667v-128h-170.667zM853.333 426.667v-128l-170.667 0v128h170.667zM170.668 512v128h170.666v-128h-170.666zM170.667 853.333h170.666v-128h-170.666l-0 128zM426.666 512v128h170.667v-128h-170.667zM426.666 853.333h170.667v-128h-170.667v128zM853.333 853.333v-128h-170.667v128h170.667zM853.333 512h-170.667v128h170.667v-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "table-large"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2381,
+            "id": 181,
+            "prevSize": 24,
+            "code": 59987,
+            "name": "table-large"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1107
+    }, {
+        "icon": {
+            "paths": [
+                "M128 213.333h512c47.125 0 85.333 38.205 85.333 85.333v426.667c0 47.13-38.208 85.333-85.333 85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-426.667c0-47.128 38.205-85.333 85.333-85.333zM128 384v128h213.332l0-128h-213.333zM426.666 384v128h213.334v-128h-213.334zM128 597.333v128h213.332l0-128h-213.333zM426.666 597.333l-0 128h213.334v-128h-213.334zM981.333 597.333v-298.667h-170.667v85.333h85.333v128h-85.333v85.333h170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "table-row-height"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2382,
+            "id": 180,
+            "prevSize": 24,
+            "code": 59988,
+            "name": "table-row-height"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1108
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 426.667c0 47.13-38.208 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333v-298.667h85.333v85.333h170.667v-85.333h85.333v85.333h170.667v-85.333h85.333v85.333h170.667v-85.333h85.333v298.667zM170.667 426.667h170.666v-128h-170.666v128zM426.665 426.667h170.668v-128h-170.668v128zM853.333 426.667v-128h-170.667v128h170.667zM469.333 597.333h85.333v128h128v85.333h-128v128h-85.333v-128h-128v-85.333h128v-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "table-row-plus-after"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2383,
+            "id": 179,
+            "prevSize": 24,
+            "code": 59989,
+            "name": "table-row-plus-after"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1109
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 597.333c0-47.13-38.208-85.333-85.333-85.333h-682.667c-47.128 0-85.333 38.204-85.333 85.333v298.667h85.333v-85.333h170.667v85.333h85.333v-85.333h170.667v85.333h85.333v-85.333h170.667v85.333h85.333v-298.667zM170.667 597.333h170.666v128h-170.666v-128zM426.665 597.333h170.668v128h-170.668v-128zM853.333 597.333v128h-170.667v-128h170.667zM469.333 426.667h85.333v-128h128v-85.333h-128v-128h-85.333v128h-128v85.333h128v128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "table-row-plus-before"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2384,
+            "id": 178,
+            "prevSize": 24,
+            "code": 59990,
+            "name": "table-row-plus-before"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1110
+    }, {
+        "icon": {
+            "paths": [
+                "M401.673 554.667l110.327 110.327 110.327-110.327 60.339 60.339-110.327 110.327 110.327 110.327-60.339 60.339-110.327-110.327-110.327 110.327-60.339-60.339 110.327-110.327-110.327-110.327 60.34-60.339zM938.662 384c0 47.129-38.204 85.333-85.329 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333l0.002-128c0-47.128 38.205-85.333 85.333-85.333h682.665c47.13 0 85.333 38.205 85.333 85.333l-0.004 128zM170.666 384.001h170.666l0.002-128.001-170.666 0-0.002 128.001zM426.665 384.001l170.668-0v-128l-170.667-0.001-0.002 128.001zM682.667 384l170.667 0v-128.001l-170.667 0v128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "table-row-remove"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2385,
+            "id": 177,
+            "prevSize": 24,
+            "code": 59991,
+            "name": "table-row-remove"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1111
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 170.667h597.333c47.13 0 85.333 38.205 85.333 85.333v512c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-512c0-47.128 38.205-85.333 85.333-85.333zM213.333 341.333v170.667h256v-170.667h-256zM554.667 341.333v170.667h256v-170.667h-256zM213.333 597.333v170.667h256v-170.667h-256zM554.667 597.333v170.667h256v-170.667h-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "table"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2386,
+            "id": 176,
+            "prevSize": 24,
+            "code": 59992,
+            "name": "table"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1112
+    }, {
+        "icon": {
+            "paths": [
+                "M821.308 810.624h-618.667v-682.665h618.667zM597.308 938.624h-170.667v-42.667h170.667zM767.974-0.041h-512c-70.699 0-128 57.301-128 128v767.998c0 70.703 57.301 128 128 128h512c70.699 0 128-57.297 128-128v-767.998c0-70.699-57.301-128-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tablet-android"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2387,
+            "id": 175,
+            "prevSize": 24,
+            "code": 59993,
+            "name": "tablet-android"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1113
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 810.624h-640v-682.665h640zM490.641 981.291c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.328 0 64 28.672 64 64s-28.672 64-64 64zM789.308-0.041h-597.334c-58.923 0-106.667 47.743-106.667 106.666v810.665c0 58.927 47.744 106.667 106.667 106.667h597.334c58.923 0 106.667-47.74 106.667-106.667v-810.665c0-58.923-47.744-106.666-106.667-106.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tablet-ipad"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2388,
+            "id": 174,
+            "prevSize": 24,
+            "code": 59994,
+            "name": "tablet-ipad"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1114
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 767.919h-597.334v-512.001h597.334zM895.974 170.584h-768c-47.147 0-85.333 38.229-85.333 85.333v512.001c0 47.104 38.186 85.333 85.333 85.333h768c47.104 0 84.907-38.229 84.907-85.333l0.427-512.001c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tablet"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2389,
+            "id": 173,
+            "prevSize": 24,
+            "code": 59995,
+            "name": "tablet"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1115
+    }, {
+        "icon": {
+            "paths": [
+                "M639.987 767.919c-141.483 0-256.001-114.603-256.001-256 0-141.399 114.518-256.001 256.001-256.001 141.397 0 256 114.603 256 256.001 0 141.397-114.603 256-256 256zM170.653 554.586c-23.542 0-42.667-19.115-42.667-42.667s19.125-42.667 42.667-42.667c23.542 0 42.667 19.115 42.667 42.667s-19.125 42.667-42.667 42.667zM938.654 128.344l-613.164-0.426c-28.203 0-53.248 13.696-68.796 34.816l-256.708 349.399 256.708 348.971c15.548 21.12 40.593 34.816 68.796 34.816h613.164c47.083 0 85.333-38.187 85.333-85.333v-597.335c0-47.147-38.251-84.907-85.333-84.907zM554.654 469.252c23.552 0 42.667-19.115 42.667-42.668s-19.115-42.667-42.667-42.667c-23.552 0-42.667 19.114-42.667 42.667s19.115 42.668 42.667 42.668zM639.987 682.586c79.445 0 143.083-54.545 162.133-128h-324.267c19.051 73.455 82.645 128 162.133 128zM725.321 469.252c23.552 0 42.667-19.115 42.667-42.668s-19.115-42.667-42.667-42.667c-23.552 0-42.667 19.114-42.667 42.667s19.115 42.668 42.667 42.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tag-faces"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2390,
+            "id": 172,
+            "prevSize": 24,
+            "code": 59996,
+            "name": "tag-faces"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1116
+    }, {
+        "icon": {
+            "paths": [
+                "M234.613 383.979c35.371 0 64-28.674 64-64 0-35.368-28.629-64-64-64-35.328 0-64 28.632-64 64 0 35.326 28.672 64 64 64zM742.818 494.084c15.531 15.445 25.131 36.864 25.131 60.544 0 23.552-9.515 44.843-24.96 60.331l-213.333 213.333c-15.445 15.403-36.779 25.003-60.373 25.003-23.509 0-44.842-9.557-60.33-25.003l-298.581-298.581c-15.488-15.445-25.088-36.821-25.088-60.416l-0.003-213.312c0-47.146 38.229-85.333 85.333-85.333l213.336-0.020c23.595 0 44.928 9.514 60.373 24.962l298.496 298.494zM577.549 243.471l42.667-42.665 293.321 293.318c15.531 15.445 25.131 36.864 25.131 60.544 0 23.552-9.515 44.843-24.96 60.331l-229.513 229.513-42.667-42.667 243.806-247.177-307.785-311.196z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tag-multiple"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2391,
+            "id": 171,
+            "prevSize": 24,
+            "code": 59997,
+            "name": "tag-multiple"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1117
+    }, {
+        "icon": {
+            "paths": [
+                "M234.619 298.604c35.371 0 64-28.674 64-64 0-35.368-28.629-64-64-64-35.328 0-64 28.632-64 64 0 35.326 28.672 64 64 64zM913.489 494.063c15.531 15.445 25.131 36.864 25.131 60.544 0 23.552-9.515 44.843-24.96 60.331l-298.667 298.667c-15.445 15.403-36.779 25.003-60.373 25.003-23.509 0-44.843-9.557-60.331-25.003l-383.916-383.915c-15.488-15.445-25.088-36.821-25.088-60.416v-298.666c0-47.146 38.229-85.333 85.333-85.333h298.668c23.595 0 44.928 9.514 60.373 24.962l383.829 383.827zM554.667 853.333l298.667-298.667-362.667-362.666-298.667 298.666 362.667 362.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tag-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2392,
+            "id": 170,
+            "prevSize": 24,
+            "code": 59998,
+            "name": "tag-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1118
+    }, {
+        "icon": {
+            "paths": [
+                "M234.619 298.604c35.371 0 64-28.674 64-64 0-35.368-28.629-64-64-64-35.328 0-64 28.632-64 64 0 35.326 28.672 64 64 64zM913.489 494.063c15.531 15.445 25.131 36.864 25.131 60.544 0 23.552-9.515 44.843-24.96 60.331l-298.667 298.667c-15.445 15.403-36.779 25.003-60.373 25.003-23.509 0-44.843-9.557-60.331-25.003l-383.916-383.915c-15.488-15.445-25.088-36.821-25.088-60.416v-298.666c0-47.146 38.229-85.333 85.333-85.333h298.668c23.595 0 44.928 9.514 60.373 24.962l383.829 383.826zM554.667 853.333l298.667-298.667-362.667-362.666-298.667 298.666 362.667 362.667zM430.327 380.341l60.339-60.34 234.667 234.666-60.339 60.343-234.667-234.669zM323.66 487.006l60.34-60.339 170.667 170.671-60.343 60.339-170.663-170.671z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tag-text-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2393,
+            "id": 169,
+            "prevSize": 24,
+            "code": 59999,
+            "name": "tag-text-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1119
+    }, {
+        "icon": {
+            "paths": [
+                "M234.619 298.604c-35.328 0-64-28.672-64-64 0-35.37 28.672-64 64-64 35.371 0 64 28.63 64 64 0 35.328-28.629 64-64 64zM913.489 494.063l-383.829-383.828c-15.445-15.445-36.779-24.961-60.373-24.961h-298.668c-47.104 0-85.333 38.188-85.333 85.333v298.667c0 23.595 9.6 44.971 25.088 60.416l383.916 383.915c15.488 15.445 36.821 25.003 60.331 25.003 23.595 0 44.928-9.6 60.373-25.003l298.667-298.667c15.445-15.488 24.96-36.779 24.96-60.331 0-23.68-9.6-45.099-25.131-60.544z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tag"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2394,
+            "id": 168,
+            "prevSize": 24,
+            "code": 60000,
+            "name": "tag"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1120
+    }, {
+        "icon": {
+            "paths": [
+                "M213.308 469.252l64-192.001h469.333l64 192.001zM746.641 682.586c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.371 0 64 28.672 64 64s-28.629 64-64 64zM277.308 682.586c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.371 0 64 28.672 64 64s-28.629 64-64 64zM807.185 256.387c-8.661-25.131-32.512-43.136-60.544-43.136h-106.667v-85.333h-256v85.333h-106.667c-28.032 0-51.84 18.005-60.501 43.136l-88.832 255.532v341.333c0 23.552 19.115 42.667 42.667 42.667h42.667c23.595 0 42.667-19.115 42.667-42.667v-42.667h512v42.667c0 23.552 19.115 42.667 42.667 42.667h42.667c23.595 0 42.667-19.115 42.667-42.667v-341.333l-88.789-255.532z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "taxi"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2395,
+            "id": 167,
+            "prevSize": 24,
+            "code": 60001,
+            "name": "taxi"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1121
+    }, {
+        "icon": {
+            "paths": [
+                "M810.662 128.002c47.104 0 85.333 38.229 85.333 85.333v597.332c0 47.147-38.229 85.333-85.333 85.333h-597.331c-47.104 0-85.333-38.187-85.333-85.333v-597.332c0-47.104 38.229-85.333 85.333-85.333h597.331zM512 213.334c-164.949 0-298.667 133.717-298.667 298.666s133.717 298.667 298.667 298.667c164.949 0 298.667-133.717 298.667-298.667s-133.717-298.666-298.667-298.666zM298.667 512l128-128v85.333h170.667v-85.333l128 128-128 128v-85.333h-170.667v85.333l-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "teamviewer"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2396,
+            "id": 166,
+            "prevSize": 24,
+            "code": 60002,
+            "name": "teamviewer"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1122
+    }, {
+        "icon": {
+            "paths": [
+                "M417.176 795.58l12.038-180.292 327.902-295.854c14.391-12.773-3.145-19.002-22.251-7.416l-404.702 255.322-174.807-54.558c-37.751-11.558-38.022-37.5 8.476-56.149l681.216-262.741c31.113-14.126 61.141 7.472 49.263 55.091l-116.006 546.667c-8.102 38.848-31.573 48.141-64.098 30.195l-176.704-130.551-84.966 82.607c-9.843 9.621-17.681 17.681-35.359 17.681z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "telegram"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2397,
+            "id": 165,
+            "prevSize": 24,
+            "code": 60003,
+            "name": "telegram"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1123
+    }, {
+        "icon": {
+            "paths": [
+                "M896 725.333v-512h-768v512h768zM896 128c46.933 0 85.333 38.4 85.333 85.333l-0.427 512c0 46.933-37.973 85.333-84.907 85.333h-213.333v85.333h-341.333v-85.333h-213.333c-46.933 0-85.333-38.4-85.333-85.333v-512c0-46.933 38.4-85.333 85.333-85.333h768zM213.333 298.667h256v170.666h-256v-170.666zM213.333 554.667h256v85.333h-256v-85.333zM554.667 298.667h256v85.333h-256v-85.333zM554.667 469.333h256v170.667h-256v-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "television-guide"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2398,
+            "id": 164,
+            "prevSize": 24,
+            "code": 60004,
+            "name": "television-guide"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1124
+    }, {
+        "icon": {
+            "paths": [
+                "M896 725.333h-768v-512h768zM896 128h-768c-46.933 0-85.333 38.4-85.333 85.333v512c0 46.933 38.4 85.333 85.333 85.333h213.333v85.333h341.333v-85.333h213.333c46.933 0 84.915-38.4 84.915-85.333l0.418-512c0-46.933-38.4-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "television"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2399,
+            "id": 163,
+            "prevSize": 24,
+            "code": 60005,
+            "name": "television"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1125
+    }, {
+        "icon": {
+            "paths": [
+                "M704 213.333c66.193 0 127.689 20.097 178.726 54.522l-49.421 123.546c-34.121-31.103-79.497-50.069-129.306-50.069-106.039 0-192 85.961-192 192s85.961 192 192 192c43.814 0 84.203-14.677 116.514-39.381l48.614 121.54c-48.205 29.099-104.713 45.841-165.129 45.841-176.73 0-320-143.27-320-320 0-176.731 143.27-320 320-320zM256 128c70.692 0 128 57.308 128 128s-57.308 128-128 128c-70.692 0-128-57.307-128-128s57.308-128 128-128zM256 213.333c-23.564 0-42.667 19.103-42.667 42.667s19.102 42.667 42.667 42.667c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "temperature-celsius"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2400,
+            "id": 162,
+            "prevSize": 24,
+            "code": 60006,
+            "name": "temperature-celsius"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1126
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 853.333v-640h384v128h-256v128h213.333v128h-213.333v256h-128zM256 128c70.692 0 128 57.308 128 128s-57.308 128-128 128c-70.693 0-128-57.307-128-128s57.308-128 128-128zM256 213.333c-23.564 0-42.667 19.103-42.667 42.667s19.102 42.667 42.667 42.667c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "temperature-fahrenheit"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2401,
+            "id": 161,
+            "prevSize": 24,
+            "code": 60007,
+            "name": "temperature-fahrenheit"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1127
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128c70.692 0 128 57.308 128 128s-57.307 128-128 128c-70.692 0-128-57.308-128-128s57.308-128 128-128zM213.333 213.333c-23.564 0-42.667 19.103-42.667 42.667s19.102 42.667 42.667 42.667c23.564 0 42.667-19.102 42.667-42.667s-19.103-42.667-42.667-42.667zM426.667 213.333h128v256l213.333-256h171.204l-218.91 246.451 218.372 393.549h-154.338l-154.739-291.43-74.923 84.352v207.078h-128v-640z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "temperature-kelvin"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2402,
+            "id": 160,
+            "prevSize": 24,
+            "code": 60008,
+            "name": "temperature-kelvin"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1128
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c105.877 0 202.752 38.566 277.333 102.418-91.405 78.254-149.333 194.487-149.333 324.249s57.929 245.995 149.333 324.25c-74.581 63.851-171.456 102.417-277.333 102.417-105.879 0-202.751-38.566-277.333-102.417 91.406-78.255 149.333-194.487 149.333-324.25s-57.927-245.995-149.333-324.249c74.583-63.851 171.454-102.417 277.333-102.417zM938.667 512c0 98.97-33.698 190.071-90.249 262.455-75.209-62.613-123.085-156.945-123.085-262.455 0-105.512 47.876-199.843 123.085-262.455 56.55 72.382 90.249 163.483 90.249 262.455zM85.333 512c0-98.971 33.698-190.072 90.247-262.455 75.212 62.612 123.087 156.943 123.087 262.455 0 105.51-47.875 199.842-123.087 262.455-56.549-72.384-90.247-163.486-90.247-262.455z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tennis"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2403,
+            "id": 159,
+            "prevSize": 24,
+            "code": 60009,
+            "name": "tennis"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1129
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 256c0 50.973 16.759 96.726 42.667 128-70.693 0-128-57.307-128-128s57.308-128 128.665-127.998c-26.572 31.273-43.332 77.026-43.332 127.998zM85.333 896v-85.333h117.632l309.035-606.515 309.035 606.515h117.632v85.333h-853.333zM512 392.115l-213.263 418.552h426.528l-213.265-418.552z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tent"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2404,
+            "id": 158,
+            "prevSize": 24,
+            "code": 60010,
+            "name": "tent"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1130
+    }, {
+        "icon": {
+            "paths": [
+                "M597.308 255.918l-160 213.335 121.6 162.133-68.267 51.2c-72.021-96-192-256.001-192-256.001l-256 341.335h938.667l-384-512.001z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "terrain"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2405,
+            "id": 157,
+            "prevSize": 24,
+            "code": 60011,
+            "name": "terrain"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1131
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-228.177-228.181c-35.746 72.422-104.73 125.5-187.034 139.307v88.875h-85.333v-88.875c-121.076-20.309-213.333-125.611-213.333-252.459h85.333c0 94.259 76.41 170.667 170.666 170.667 77.795 0 143.433-52.049 163.985-123.226l-78.652-78.652v31.211c0 47.13-38.205 85.333-85.333 85.333s-85.333-38.204-85.333-85.333v-201.878l-170.667-170.667zM913.673 401.673l-181.018 181.021 42.854-156.028h-178.176c-47.13 0-85.333-38.205-85.333-85.333v-170.666c0-47.128 38.204-85.333 85.333-85.333h256c47.13 0 85.333 38.205 85.333 85.333v170.666c0 23.564-9.553 44.898-24.994 60.34z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "text-to-speech-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2406,
+            "id": 156,
+            "prevSize": 24,
+            "code": 60012,
+            "name": "text-to-speech-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1132
+    }, {
+        "icon": {
+            "paths": [
+                "M341.334 298.667c47.128 0 85.333 38.205 85.333 85.333v213.333c0 47.13-38.205 85.333-85.333 85.333s-85.333-38.204-85.333-85.333v-213.333c0-47.128 38.205-85.333 85.333-85.333zM597.333 597.333c0 126.848-92.258 232.149-213.333 252.459v88.875h-85.333v-88.875c-121.076-20.309-213.333-125.611-213.333-252.459h85.333c0 94.255 76.41 170.667 170.666 170.667 94.255 0 170.667-76.412 170.667-170.667h85.333zM913.673 401.673l-181.018 181.021 42.854-156.028h-178.176c-47.13 0-85.333-38.205-85.333-85.333v-170.666c0-47.128 38.204-85.333 85.333-85.333h256c47.13 0 85.333 38.205 85.333 85.333v170.666c0 23.564-9.553 44.898-24.994 60.34z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "text-to-speech"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2407,
+            "id": 155,
+            "prevSize": 24,
+            "code": 60013,
+            "name": "text-to-speech"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1133
+    }, {
+        "icon": {
+            "paths": [
+                "M396.373 896h120.747l378.88-378.88v-120.747zM810.667 896c23.467 0 44.8-9.387 60.16-25.173 15.787-15.36 25.173-36.693 25.173-60.16v-85.333l-170.667 170.667zM213.333 128c-46.933 0-85.333 38.4-85.333 85.333v85.333l170.667-170.667zM506.88 128l-378.88 378.88v120.747l499.627-499.627zM832.427 131.413l-701.013 701.013c3.84 14.507 11.52 27.733 21.76 38.4 10.667 10.24 23.893 17.92 38.4 21.76l701.44-701.013c-8.107-29.44-31.147-52.48-60.587-60.16z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "texture"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2408,
+            "id": 154,
+            "prevSize": 24,
+            "code": 60014,
+            "name": "texture"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1134
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 640h85.333c47.128 0 85.333 38.204 85.333 85.333v85.333h42.667v-85.333c0-47.13 38.205-85.333 85.333-85.333h85.333c47.13 0 85.333 38.204 85.333 85.333v85.333h42.667v-85.333c0-47.13 38.204-85.333 85.333-85.333h85.333c47.13 0 85.333 38.204 85.333 85.333v85.333h42.667v128h-938.667v-128h42.667v-85.333c0-47.13 38.205-85.333 85.333-85.333zM469.333 298.667l170.667 128-170.667 128v-256zM170.667 85.334h682.667c47.13 0 85.333 38.205 85.333 85.333v406.831c-25.105-14.519-54.246-22.831-85.333-22.831v-384h-682.667v384c-31.086 0-60.23 8.311-85.333 22.831v-406.831c0-47.128 38.205-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "theater"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2409,
+            "id": 153,
+            "prevSize": 24,
+            "code": 60015,
+            "name": "theater"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1135
+    }, {
+        "icon": {
+            "paths": [
+                "M320 85.334c-76.333 49.128-128 135.863-128 234.666s51.667 185.54 129.457 234.662c-131.060 0.004-236.124-105.058-236.124-234.662 0-129.603 105.064-234.666 234.667-234.666zM813.7 149.961l60.339 60.34-663.738 663.738-60.34-60.339 663.739-663.739zM549.948 253.201l-63.296-39.805-61.443 42.605 18.299-72.497-59.507-45.271 74.603-5 24.666-70.583 27.81 69.406 74.752 1.648-57.417 47.895 21.534 71.602zM409.023 406.895l-49.228-30.96-47.79 33.137 14.232-56.386-46.283-35.211 58.024-3.889 19.185-54.898 21.629 53.983 58.14 1.282-44.657 37.252 16.747 55.691zM810.667 576c0 129.604-105.062 234.667-234.667 234.667-52.13 0-100.292-16.998-139.238-45.756l328.149-328.149c28.757 38.95 45.756 87.108 45.756 139.238zM622.972 856.849l118.259-48.986-10.146 142.75-108.113-93.764zM807.701 741.756l48.986-118.259 93.764 108.113-142.75 10.146zM856.939 529.749l-48.981-118.258 142.75 10.145-93.769 108.113zM410.819 807.616l118.257 48.986-108.112 93.764-10.144-142.75z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "theme-light-dark"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2410,
+            "id": 152,
+            "prevSize": 24,
+            "code": 60016,
+            "name": "theme-light-dark"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1136
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 128l170.667 0.001v85.333l-170.667-0.001v-85.333zM725.333 298.668l170.667 0.001v85.333l-170.667-0.001v-85.333zM725.333 469.333h170.667v85.333h-138.867l-31.799-38.357v-46.976zM896 640v85.333h-85.333c0-29.653-4.322-58.295-12.369-85.333h97.702zM725.333 725.333c0 117.82-95.514 213.333-213.333 213.333-117.821 0-213.333-95.514-213.333-213.333 0-69.794 33.517-131.763 85.333-170.684v-341.316c0-70.693 57.306-128 128-128 70.69 0 128 57.307 128 128v341.316c51.814 38.921 85.333 100.89 85.333 170.684zM469.333 341.336v263.281c-49.715 17.57-85.333 64.986-85.333 120.717 0 70.694 57.306 128 128 128 70.69 0 128-57.306 128-128 0-55.731-35.618-103.147-85.333-120.717l-0.004-263.281h-85.329zM298.666 128v85.333l-170.665 0.001v-85.333l170.665-0.001zM298.667 298.667v85.333l-170.666 0.001v-85.333l170.666-0.001zM298.667 469.333v46.976l-31.8 38.357h-138.865v-85.333h170.666zM128 640h97.701c-8.047 27.038-12.368 55.68-12.368 85.333h-85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "thermometer-lines"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2411,
+            "id": 151,
+            "prevSize": 24,
+            "code": 60017,
+            "name": "thermometer-lines"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1137
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 725.333c0 117.82-95.514 213.333-213.333 213.333-117.821 0-213.333-95.514-213.333-213.333 0-69.794 33.517-131.763 85.333-170.684v-341.316c0-70.693 57.306-128 128-128 70.69 0 128 57.307 128 128v341.316c51.814 38.921 85.333 100.89 85.333 170.684zM469.333 341.336v263.281c-49.715 17.57-85.333 64.986-85.333 120.717 0 70.694 57.306 128 128 128 70.69 0 128-57.306 128-128 0-55.731-35.618-103.147-85.333-120.717l-0.004-263.281h-85.329z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "thermometer"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2412,
+            "id": 150,
+            "prevSize": 24,
+            "code": 60018,
+            "name": "thermometer"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1138
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 639.915v-511.998h170.667v511.998h-170.667zM639.974 127.917c47.104 0 85.333 38.229 85.333 85.333v426.665c0 23.556-9.557 44.89-25.003 60.331l-281.003 281.003-45.228-45.013c-11.606-11.563-18.772-27.563-18.772-45.222l1.408-13.483 40.705-194.948h-269.441c-47.148 0-85.333-38.187-85.333-85.333v-85.329c0-10.965 2.262-21.423 6.016-31.019l128.726-300.931c12.97-30.59 43.264-52.052 78.592-52.052h384zM640 213.333h-385.119l-126.881 298.914v85.086h374.822l-48.218 226.846 185.395-185.391v-425.455z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "thumb-down-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2413,
+            "id": 149,
+            "prevSize": 24,
+            "code": 60019,
+            "name": "thumb-down-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1139
+    }, {
+        "icon": {
+            "paths": [
+                "M810.641 639.915h170.667v-511.998h-170.667zM639.974 127.917h-384c-35.328 0-65.621 21.461-78.592 52.052l-128.725 300.931c-3.754 9.596-6.016 20.049-6.016 31.014v85.333c0 47.147 38.186 85.333 85.333 85.333h269.44l-40.703 194.944c-0.896 4.356-1.409 8.832-1.409 13.487 0 17.664 7.167 33.664 18.774 45.227l45.226 45.009 281.003-281.003c15.445-15.445 25.003-36.779 25.003-60.331v-426.665c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "thumb-down"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2414,
+            "id": 148,
+            "prevSize": 24,
+            "code": 60020,
+            "name": "thumb-down"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1140
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 384v512h-170.667v-512h170.667zM384 896c-47.104 0-85.333-38.229-85.333-85.333v-426.667c0-23.552 9.557-44.885 25.003-60.33l281.002-281.003 45.227 45.014c11.605 11.562 18.773 27.562 18.773 45.225l-1.408 13.483-40.704 194.944h269.44c47.147 0 85.333 38.188 85.333 85.333v85.333c0 10.965-2.261 21.419-6.016 31.019l-128.725 300.928c-12.971 30.592-43.264 52.053-78.592 52.053h-384zM383.974 810.581h385.118l126.882-298.91v-85.088h-374.822l48.218-226.848-185.396 185.394v425.452z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "thumb-up-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2415,
+            "id": 147,
+            "prevSize": 24,
+            "code": 60021,
+            "name": "thumb-up-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1141
+    }, {
+        "icon": {
+            "paths": [
+                "M981.308 426.583c0-47.146-38.187-85.333-85.333-85.333h-269.44l40.704-194.943c0.896-4.354 1.408-8.833 1.408-13.484 0-17.664-7.168-33.664-18.773-45.227l-45.227-45.013-281.003 281.003c-15.445 15.445-25.003 36.778-25.003 60.331v426.665c0 47.108 38.229 85.333 85.333 85.333h384c35.328 0 65.621-21.457 78.592-52.049l128.725-300.932c3.755-9.596 6.016-20.049 6.016-31.019v-85.331zM42.641 895.915h170.667v-511.998h-170.667v511.998z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "thumb-up"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2416,
+            "id": 146,
+            "prevSize": 24,
+            "code": 60022,
+            "name": "thumb-up"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1142
+    }, {
+        "icon": {
+            "paths": [
+                "M960 448h-288c-26.453 0-49.067 16.213-58.88 38.827l-96.427 225.707c-2.987 7.253-4.693 15.36-4.693 23.467v53.333c0 23.467 19.2 42.667 42.667 42.667h221.013l-28.16 135.68-0.853 10.24c0 13.227 5.547 25.173 14.080 34.133l33.707 33.28 210.773-210.773c11.52-11.52 18.773-27.733 18.773-45.227v-277.333c0-35.413-28.587-64-64-64zM512 277.333c0-23.467-19.2-42.667-42.667-42.667h-221.013l28.16-135.68 0.853-9.813c0-13.227-5.547-25.173-14.080-34.133l-33.707-33.707-210.773 210.773c-11.52 11.52-18.773 27.733-18.773 45.227v277.333c0 35.413 28.587 64 64 64h288c26.453 0 49.067-16.213 58.88-38.827l96.427-225.707c2.987-7.253 4.693-15.36 4.693-23.467v-53.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "thumbs-up-down"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2417,
+            "id": 145,
+            "prevSize": 24,
+            "code": 60023,
+            "name": "thumbs-up-down"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1143
+    }, {
+        "icon": {
+            "paths": [
+                "M853.291 511.91c0 47.147 38.229 85.333 85.333 85.333v170.667c0 47.147-38.187 85.333-85.333 85.333h-682.667c-47.104 0-85.333-38.187-85.333-85.333l0.171-170.667c47.061-0.085 85.163-38.229 85.163-85.333 0-47.019-38.059-85.12-85.035-85.292l0.171-170.709c0-47.104 37.76-85.333 84.864-85.333h682.667c47.147 0 85.333 38.229 85.333 85.333v170.667c-47.104 0-85.333 38.231-85.333 85.335zM704 693.333c0-64-128-96-192-96s-191.998 32-191.998 96v32h383.998v-32zM512 522.667c52.992 0 96-42.923 96-96 0-52.992-43.008-96-96-96s-96 43.008-96 96c0 53.077 43.008 96 96 96z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "ticket-account"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2418,
+            "id": 144,
+            "prevSize": 24,
+            "code": 60024,
+            "name": "ticket-account"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1144
+    }, {
+        "icon": {
+            "paths": [
+                "M664.619 716.71l-152.661-98.133-152.619 98.133 45.952-175.616-140.331-114.775 181.12-10.624 65.877-168.32 65.92 168.32 181.12 10.624-140.373 114.775zM853.291 511.91c0-47.104 38.229-85.335 85.333-85.335v-170.667c0-47.104-38.187-85.333-85.333-85.333h-682.667c-47.104 0-84.864 38.229-84.864 85.333l-0.171 170.709c46.976 0.172 85.035 38.274 85.035 85.292 0 47.104-38.101 85.248-85.163 85.333l-0.171 170.667c0 47.147 38.229 85.333 85.333 85.333h682.667c47.147 0 85.333-38.187 85.333-85.333v-170.667c-47.104 0-85.333-38.187-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "ticket"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2419,
+            "id": 143,
+            "prevSize": 24,
+            "code": 60025,
+            "name": "ticket"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1145
+    }, {
+        "icon": {
+            "paths": [
+                "M565.333 234.668l74.667 533.332-117.333 170.667h-21.333l-117.334-170.667 74.667-533.332-74.667-106.667v-42.667h256v42.667l-74.667 106.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tie"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2420,
+            "id": 142,
+            "prevSize": 24,
+            "code": 60026,
+            "name": "tie"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1146
+    }, {
+        "icon": {
+            "paths": [
+                "M128 213.333h341.333v298.667h-341.333v-298.667zM512 213.333h341.333v298.667h-341.333v-298.667zM128 554.667h341.333v298.667h-341.333v-298.667zM512 554.667h341.333v298.667h-341.333v-298.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tile-four"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2421,
+            "id": 141,
+            "prevSize": 24,
+            "code": 60027,
+            "name": "tile-four"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1147
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 853.252c-188.544 0-341.333-152.789-341.333-341.333 0-188.503 152.832-341.335 341.333-341.335s341.333 152.789 341.333 341.335c0 188.501-152.832 341.333-341.333 341.333zM511.974 85.251c-235.648 0-426.667 191.019-426.667 426.668 0 235.648 191.019 426.667 426.667 426.667s426.667-191.019 426.667-426.667c0-235.649-191.019-426.668-426.667-426.668zM693.009 330.883c-50.005-49.963-115.533-74.923-181.035-74.965v256.001l-181.041 181.035c100.017 99.968 262.108 99.925 362.076 0 99.968-100.011 99.968-262.059 0-362.071z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "timelapse"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2422,
+            "id": 140,
+            "prevSize": 24,
+            "code": 60028,
+            "name": "timelapse"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1148
+    }, {
+        "icon": {
+            "paths": [
+                "M890.453 613.12c-5.973-11.947-14.933-22.613-26.88-31.573s-26.027-16.64-43.093-22.613c-17.067-5.973-36.267-11.52-57.6-16.213-14.933-2.987-27.307-6.4-37.12-9.813s-17.493-6.827-23.467-10.667c-5.973-3.84-9.813-8.107-11.947-12.8s-3.413-10.24-3.413-16.64c0-6.4 1.28-11.947 3.84-17.493s6.4-10.667 11.52-14.507c5.12-4.267 11.52-7.68 19.2-10.24s17.067-3.84 27.307-3.84c10.667 0 20.053 1.707 28.16 4.693s14.933 7.253 20.48 12.373c5.547 5.12 9.387 11.093 12.373 17.92 2.56 6.827 4.267 13.653 4.267 20.907h83.2c0-16.64-3.413-32-10.24-46.507s-16.64-26.88-29.44-37.547c-12.8-10.667-28.16-18.773-46.507-25.173s-39.253-9.387-62.293-9.387c-21.76 0-41.813 2.987-59.307 8.96s-32.853 14.080-45.227 24.32c-12.373 10.24-21.76 22.187-28.587 35.84s-9.813 27.733-9.813 43.093c0 15.36 3.413 29.013 9.813 40.96s15.787 22.187 27.307 31.147c11.52 8.96 25.6 16.213 41.813 22.613 16.213 5.973 34.56 11.093 54.187 15.36 16.64 3.413 30.293 7.253 40.533 11.093s18.347 8.107 24.32 12.373c5.547 4.267 9.387 9.387 11.52 14.507s2.987 10.667 2.987 16.64c0 13.653-5.547 24.32-17.067 32.853s-28.16 12.373-49.92 12.373c-9.387 0-18.347-0.853-27.307-3.413-8.96-2.133-17.067-5.547-23.893-10.24-7.253-4.693-12.8-11.093-17.493-18.773s-7.253-17.493-7.68-28.587h-80.64c0 15.36 3.413 30.293 10.24 44.8s16.64 27.733 29.867 39.68c13.227 11.52 29.44 20.907 49.067 28.16s41.813 10.667 67.413 10.667c22.613 0 43.093-2.56 61.44-8.107s34.133-13.227 47.36-23.040c13.227-9.813 23.040-21.76 30.293-35.413s10.667-28.587 10.667-45.227c-0.853-17.067-3.84-31.573-10.24-43.52zM495.36 553.387c-6.827-10.24-15.36-19.627-26.453-27.733-10.667-8.107-23.893-14.933-39.68-20.48 12.8-5.973 24.32-12.8 34.133-21.333s17.92-17.493 24.32-27.307c6.4-9.813 11.52-19.627 14.507-30.293 3.413-10.24 4.693-20.907 4.693-31.147 0-23.467-3.84-44.373-11.947-62.293-7.68-17.92-18.773-32.853-33.28-45.227-14.080-11.947-31.147-21.333-51.2-27.307-19.2-5.547-41.387-8.533-65.28-8.533-23.467 0-45.227 3.413-64.853 10.24-20.053 7.253-37.12 17.067-51.2 29.44s-25.6 26.88-33.28 43.947c-8.533 16.64-12.373 35.413-12.373 55.040h84.48c0-11.093 2.133-20.907 5.973-29.44s9.387-16.213 16.213-22.187c7.253-5.973 15.36-10.667 24.747-14.080s19.627-5.12 31.147-5.12c26.027 0 45.227 6.827 58.027 20.053s18.773 32 18.773 56.32c0 11.52-1.707 22.187-5.12 31.573s-8.96 17.493-16.213 24.32c-7.253 6.827-16.213 11.947-26.88 15.787s-23.467 5.547-37.973 5.547h-49.92v66.987h50.347c14.507 0 27.307 1.707 38.827 4.693 11.52 3.413 21.333 8.107 29.44 14.933s14.507 15.36 18.773 26.027c4.267 10.24 6.827 23.040 6.827 37.12 0 26.453-7.68 46.507-22.613 60.587s-35.84 20.907-61.867 20.907c-12.373 0-23.893-1.707-34.133-5.547-10.24-3.413-18.773-8.533-26.027-15.36s-12.8-14.507-16.64-23.893c-3.84-9.387-5.973-19.627-5.973-30.72h-84.907c0 23.467 4.693 43.947 13.653 61.867s21.333 32.853 36.693 44.8c15.36 11.947 32.853 20.907 52.907 26.88s40.96 8.96 63.147 8.96c24.32 0 46.507-3.413 67.413-9.813s38.827-16.213 53.76-29.013c15.36-12.8 27.307-28.16 35.84-46.933 8.533-18.347 12.8-39.68 12.8-63.147 0-12.373-1.707-24.747-4.693-36.693-3.413-10.667-8.107-21.76-14.933-32.427z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "timer-3"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2423,
+            "id": 139,
+            "prevSize": 24,
+            "code": 60029,
+            "name": "timer-3"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1149
+    }, {
+        "icon": {
+            "paths": [
+                "M550.4 564.053c0 25.6-1.707 47.36-5.12 65.28s-8.533 32.427-15.36 43.52c-6.827 11.093-15.36 19.2-25.173 24.32s-21.76 7.68-34.987 7.68c-12.8 0-24.747-2.56-34.987-7.68s-18.773-13.227-25.6-24.32c-6.827-11.093-12.373-25.6-16.213-43.52s-5.547-39.68-5.547-65.28v-106.667c0-25.6 1.707-47.36 5.547-64.853s8.96-31.573 16.213-42.667c6.827-10.667 15.36-18.347 25.6-23.467 10.24-4.693 21.76-7.253 34.56-7.253 13.227 0 24.747 2.56 34.56 7.253 10.24 4.693 18.773 12.373 25.6 23.467 6.827 10.667 12.373 24.747 15.787 42.24s5.547 39.253 5.547 64.853v107.093zM589.653 300.8c-14.507-17.067-32-29.867-52.48-37.547-20.053-7.68-43.093-11.52-67.84-11.52s-47.36 3.84-67.84 11.52c-20.48 7.68-37.973 20.053-52.48 37.547s-25.6 39.68-33.707 67.84c-7.68 27.733-11.947 61.867-11.947 101.973v81.92c0 40.107 3.84 74.24 11.947 101.973 8.107 28.16 19.2 50.773 34.133 68.267 14.507 17.493 32 30.293 52.48 37.973s43.093 11.947 67.84 11.947c25.173 0 47.787-3.84 67.84-11.947 20.48-7.68 37.547-20.48 52.053-37.973s25.6-40.107 33.28-68.267c7.68-27.733 11.947-61.867 11.947-101.973v-81.92c0-40.107-3.84-74.24-11.947-101.973-7.68-28.16-18.773-50.773-33.28-67.84zM1014.613 613.12c-5.973-11.947-14.933-22.613-26.88-31.573s-26.027-16.64-43.093-22.613c-17.067-5.973-36.267-11.52-57.6-16.213-14.933-2.987-27.307-6.4-37.12-9.813s-17.493-6.827-23.467-10.667c-5.973-3.84-9.813-8.107-11.947-12.8s-3.413-10.24-3.413-16.64c0-5.973 1.28-11.947 3.84-17.493s6.4-10.667 11.52-14.507c5.12-4.267 11.52-7.68 19.2-10.24s17.067-3.84 27.307-3.84c10.667 0 20.053 1.707 28.16 4.693s14.933 7.253 20.48 12.373c5.547 5.12 9.387 11.093 12.373 17.92 2.56 6.827 4.267 13.653 4.267 20.907h83.2c0-16.64-3.413-32-10.24-46.507s-16.64-26.88-29.44-37.547c-12.8-10.667-28.16-18.773-46.507-25.173s-39.253-9.387-62.293-9.387c-21.76 0-41.813 2.987-59.307 8.96s-32.853 14.080-45.227 24.32c-12.373 10.24-21.76 22.187-28.587 35.84s-9.813 27.733-9.813 43.093c0 15.36 3.413 29.44 9.813 40.96 6.4 11.947 15.36 22.187 27.307 31.147 11.52 8.96 25.6 16.213 41.813 22.613 16.213 5.973 34.56 11.093 54.187 15.36 16.64 3.413 30.293 7.253 40.533 11.093s18.347 8.107 24.32 12.373c5.547 4.267 9.387 9.387 11.52 14.507s2.987 10.667 2.987 16.64c0 13.653-5.547 24.32-17.067 32.853s-28.16 12.373-49.92 12.373c-9.387 0-18.347-0.853-27.307-3.413-8.96-2.133-17.067-5.547-23.893-10.24-7.253-4.693-12.8-11.093-17.493-18.773s-7.253-17.493-7.68-28.587h-80.64c0 15.36 3.413 30.293 10.24 44.8s16.64 27.733 29.867 39.68c13.227 11.52 29.44 20.907 49.067 28.16s41.813 10.667 67.413 10.667c22.613 0 43.093-2.56 61.44-8.107s34.133-13.227 47.36-23.040c13.227-9.813 23.040-21.76 30.293-35.413s10.667-28.587 10.667-45.227c-0.853-17.067-3.84-31.573-10.24-43.52zM0 329.387v71.68l128-42.667v409.6h85.333v-512h-10.667l-202.667 73.387z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "timer-10"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2424,
+            "id": 138,
+            "prevSize": 24,
+            "code": 60030,
+            "name": "timer-10"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1150
+    }, {
+        "icon": {
+            "paths": [
+                "M512 853.333c-165.12 0-298.667-133.547-298.667-298.667 0-54.613 14.933-105.813 40.533-150.187l407.893 407.893c-43.947 26.027-95.147 40.96-149.76 40.96zM128.853 170.667l-54.187 54.187 117.333 117.76c-40.533 60.587-64 133.547-64 212.053 0 212.053 171.52 384 384 384 78.507 0 151.467-23.467 212.48-64l106.667 106.667 54.187-54.187-756.48-756.48zM469.333 402.773l85.333 85.333v-146.773h-85.333zM640 42.667h-256v85.333h256zM812.373 194.133l-60.587 60.587c-66.133-52.48-149.333-84.053-239.787-84.053-78.080 0-150.613 23.467-211.2 63.147l62.293 62.293c43.52-25.173 94.72-40.107 148.907-40.107 165.12 0 298.667 133.547 298.667 298.667 0 54.187-14.933 105.387-40.107 148.907l61.867 61.867c40.107-60.16 63.573-132.693 63.573-210.773 0-90.453-31.573-173.653-84.053-239.36l60.587-60.587-60.16-60.587z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "timer-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2425,
+            "id": 137,
+            "prevSize": 24,
+            "code": 60031,
+            "name": "timer-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1151
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 85.333v85.333h-85.333v188.34l-152.994 152.994 152.994 152.994v188.339h85.333v85.333h-682.667v-85.333h85.333v-188.339l152.993-152.994-152.993-152.993v-188.34h-85.333v-85.333h682.667zM682.667 700.339l-128-128v-120.678l128-128v-152.993h-341.333v152.994l128 128v120.678l-128 128 0 24.994h85.333l85.333-85.333 85.333 85.333h85.333v-24.994zM512 384l-85.333-85.333h170.667l-85.333 85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "timer-sand"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2426,
+            "id": 136,
+            "prevSize": 24,
+            "code": 60032,
+            "name": "timer-sand"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1152
+    }, {
+        "icon": {
+            "paths": [
+                "M512 853.333c-165.12 0-298.667-133.547-298.667-298.667s133.547-298.667 298.667-298.667c165.12 0 298.667 133.547 298.667 298.667s-133.547 298.667-298.667 298.667zM811.947 315.307l60.587-60.587c-18.347-21.76-38.4-42.24-60.16-60.16l-60.587 60.587c-66.133-52.907-149.333-84.48-239.787-84.48-212.053 0-384 171.947-384 384s171.52 384 384 384c212.48 0 384-171.947 384-384 0-90.453-31.573-173.653-84.053-239.36zM469.333 597.333h85.333v-256h-85.333zM640 42.667h-256v85.333h256v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "timer"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2427,
+            "id": 135,
+            "prevSize": 24,
+            "code": 60033,
+            "name": "timer"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1153
+    }, {
+        "icon": {
+            "paths": [
+                "M597.333 512h64v120.448l104.030 60.062-32 55.424-136.030-78.537v-157.397zM170.667 85.334l597.333 0c47.13 0 85.333 38.205 85.333 85.333v260.308c52.787 53.871 85.333 127.646 85.333 209.024 0 164.949-133.717 298.667-298.667 298.667-81.378 0-155.153-32.546-209.024-85.333h-260.309c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM170.667 640v128h199.408c-18.429-38.797-28.742-82.193-28.742-128h-170.667zM170.667 341.334l256-0v-128l-256 0v128zM768 341.334v-128l-256-0v128l256 0zM170.667 554.667h183.034c14.633-49.165 41.584-93.026 77.275-128h-260.309v128zM640 433.233c-114.197 0-206.771 92.574-206.771 206.767 0 114.197 92.574 206.771 206.771 206.771 114.193 0 206.767-92.574 206.767-206.771 0-114.193-92.574-206.767-206.767-206.767z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "timetable"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2428,
+            "id": 134,
+            "prevSize": 24,
+            "code": 60034,
+            "name": "timetable"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1154
+    }, {
+        "icon": {
+            "paths": [
+                "M298.663 298.67c117.824 0 213.332 95.511 213.332 213.334 0 117.82-95.511 213.333-213.332 213.333s-213.333-95.514-213.333-213.333c0-117.824 95.508-213.334 213.333-213.334zM853.333 597.342h-256v-170.667h256c47.13 0 85.329 38.204 85.329 85.333 0 47.125-38.204 85.333-85.329 85.333zM298.667 384c-70.692 0-128 57.306-128 128s57.307 128 128 128c70.692 0 128-57.306 128-128s-57.308-128-128-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "toggle-switch-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2429,
+            "id": 133,
+            "prevSize": 24,
+            "code": 60035,
+            "name": "toggle-switch-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1155
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 298.67c117.824 0 213.333 95.511 213.333 213.334 0 117.82-95.514 213.333-213.333 213.333-117.824 0-213.333-95.514-213.333-213.333 0-117.824 95.505-213.334 213.333-213.334zM170.663 597.342c-47.129 0-85.333-38.208-85.333-85.333 0-47.13 38.203-85.333 85.332-85.333h256v170.667h-255.998z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "toggle-switch-on"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2430,
+            "id": 132,
+            "prevSize": 24,
+            "code": 60036,
+            "name": "toggle-switch-on"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1156
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.333h682.667c47.13 0 85.333 38.205 85.333 85.333v512c0 47.13-38.204 85.333-85.333 85.333h-170.667l-170.667 170.667-170.667-170.667h-170.667c-47.128 0-85.333-38.204-85.333-85.333v-512c0-47.128 38.205-85.333 85.333-85.333zM768 597.333v-85.333h-234.667l-85.333 85.333h320zM256 597.333h105.601l293.461-293.503c8.363-8.321 8.363-21.846 0-30.166l-75.392-75.435c-8.363-8.32-21.845-8.32-30.208 0l-293.462 293.503v105.6z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tooltip-edit"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2431,
+            "id": 131,
+            "prevSize": 24,
+            "code": 60037,
+            "name": "tooltip-edit"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1157
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.333h682.667c47.13 0 85.333 38.205 85.333 85.333v512c0 47.13-38.204 85.333-85.333 85.333h-170.667l-170.667 170.667-170.667-170.667h-170.667c-47.128 0-85.333-38.204-85.333-85.333v-512c0-47.128 38.205-85.333 85.333-85.333zM810.667 640v-341.333l-170.667 170.666-85.333-85.333-256 256h512zM298.667 213.333c-47.128 0-85.333 38.205-85.333 85.333s38.205 85.333 85.333 85.333c47.128 0 85.333-38.205 85.333-85.333s-38.205-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tooltip-image"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2432,
+            "id": 130,
+            "prevSize": 24,
+            "code": 60038,
+            "name": "tooltip-image"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1158
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.333h682.667c47.13 0 85.333 38.205 85.333 85.333v512c0 47.13-38.204 85.333-85.333 85.333h-170.667l-170.667 170.667-170.667-170.667h-170.667c-47.128 0-85.333-38.204-85.333-85.333v-512c0-47.128 38.205-85.333 85.333-85.333zM170.667 170.667v512h206.013l135.321 135.322 135.322-135.322h206.012v-512h-682.667zM469.333 256h85.333v128h128v85.333h-128v128h-85.333v-128h-128v-85.333h128v-128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tooltip-outline-plus"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2433,
+            "id": 129,
+            "prevSize": 24,
+            "code": 60039,
+            "name": "tooltip-outline-plus"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1159
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.333h682.667c47.13 0 85.333 38.205 85.333 85.333v512c0 47.13-38.204 85.333-85.333 85.333h-170.667l-170.667 170.667-170.667-170.667h-170.667c-47.128 0-85.333-38.204-85.333-85.333v-512c0-47.128 38.205-85.333 85.333-85.333zM170.667 170.667v512h206.013l135.32 135.322 135.322-135.322h206.012v-512h-682.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tooltip-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2434,
+            "id": 128,
+            "prevSize": 24,
+            "code": 60040,
+            "name": "tooltip-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1160
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.333h682.667c47.13 0 85.333 38.205 85.333 85.333v512c0 47.13-38.204 85.333-85.333 85.333h-170.667l-170.667 170.667-170.667-170.667h-170.667c-47.128 0-85.333-38.204-85.333-85.333v-512c0-47.128 38.205-85.333 85.333-85.333zM213.333 213.334v85.333h597.333v-85.333h-597.333zM213.333 384v85.333h426.667v-85.333h-426.667zM213.333 554.667v85.333h512v-85.333h-512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tooltip-text"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2435,
+            "id": 127,
+            "prevSize": 24,
+            "code": 60041,
+            "name": "tooltip-text"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1161
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.333h682.667c47.13 0 85.333 38.205 85.333 85.333v512c0 47.13-38.204 85.333-85.333 85.333h-170.667l-170.667 170.667-170.667-170.667h-170.667c-47.128 0-85.333-38.204-85.333-85.333v-512c0-47.128 38.205-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tooltip"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2436,
+            "id": 126,
+            "prevSize": 24,
+            "code": 60042,
+            "name": "tooltip"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1162
+    }, {
+        "icon": {
+            "paths": [
+                "M512 597.333c-42.667 0-128 42.667-128 85.333 0 85.333 128 85.333 128 85.333v-42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667v-42.667zM512 810.667c0 0-170.667-21.333-170.667-106.667 0-128 128-160 170.667-160v-53.333c-42.667 0-213.333 64-213.333 192 0 170.667 213.333 170.667 213.333 170.667v-42.667zM429.751 300.008l50.701 22.555c18.432-104.314 67.371-172.827 67.371-172.827-18.133 43.522-30.14 79.691-38.089 108.507 51.908-106.884 156.16-172.91 156.16-172.91-50.419 50.419-87.134 104.752-112.661 150.463 67.729-71.645 160.964-118.261 160.964-118.262-114.586 73.334-166.541 189.724-179.268 222.145l23.561 3.264c0 22.128 0.068 42.935 10.803 59.035 32.201 80.504 198.707 87.48 198.707 280.688s-171.874 256-263.113 256c-91.235 0-291.554-41.327-291.554-256s211.052-216.286 248.619-302.155c5.367-16.101-32.201-80.503-32.201-80.503z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tor"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2437,
+            "id": 125,
+            "prevSize": 24,
+            "code": 60043,
+            "name": "tor"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1163
+    }, {
+        "icon": {
+            "paths": [
+                "M512.017 383.918c-47.147 0-85.333-38.187-85.333-85.333s38.187-85.333 85.333-85.333c47.147 0 85.333 38.187 85.333 85.333s-38.187 85.333-85.333 85.333zM512.017 597.252c-47.147 0-85.333-38.187-85.333-85.333s38.187-85.335 85.333-85.335c47.147 0 85.333 38.188 85.333 85.335s-38.187 85.333-85.333 85.333zM512.017 810.586c-47.147 0-85.333-38.187-85.333-85.333s38.187-85.333 85.333-85.333c47.147 0 85.333 38.187 85.333 85.333s-38.187 85.333-85.333 85.333zM853.308 426.584h-128v-48.725c73.515-18.987 128-85.163 128-164.608h-128v-42.667c0-23.552-19.072-42.667-42.667-42.667h-341.334c-23.552 0-42.667 19.115-42.667 42.667v42.667h-128c0 79.445 54.528 145.621 128 164.608v48.725h-128c0 79.447 54.528 145.623 128 164.609v48.725h-128c0 79.445 54.528 145.621 128 164.608v48.725c0 23.552 19.115 42.667 42.667 42.667h341.334c23.595 0 42.667-19.115 42.667-42.667v-48.725c73.515-18.987 128-85.163 128-164.608h-128v-48.725c73.515-18.987 128-85.163 128-164.609z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "traffic-light"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2438,
+            "id": 124,
+            "prevSize": 24,
+            "code": 60044,
+            "name": "traffic-light"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1164
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 426.584h-512v-213.333h512zM511.974 725.252c-47.147 0-85.333-38.187-85.333-85.333s38.187-85.333 85.333-85.333c47.147 0 85.333 38.187 85.333 85.333s-38.187 85.333-85.333 85.333zM170.641 661.252c0 82.475 66.944 149.333 149.333 149.333l-64 64v21.333h512v-21.333l-64-64c82.56 0 149.333-66.859 149.333-149.333v-448.001c0-149.333-152.832-170.667-341.333-170.667s-341.333 21.333-341.333 170.667v448.001z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "train"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2439,
+            "id": 123,
+            "prevSize": 24,
+            "code": 60045,
+            "name": "train"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1165
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM285.867 456.533l12.8-145.067c0-29.867 25.6-55.467 55.467-55.467h311.467c34.133 0 59.733 25.6 59.733 55.467l12.8 140.8c0 29.867-25.6 55.467-55.467 55.467h-341.333c-29.867 4.267-55.467-21.333-55.467-51.2zM298.667 768c-25.6 0-42.667-17.067-42.667-42.667s17.067-42.667 42.667-42.667c25.6 0 42.667 17.067 42.667 42.667s-17.067 42.667-42.667 42.667zM810.667 256c0-46.933-38.4-85.333-85.333-85.333h-85.333c0-46.933-38.4-85.333-85.333-85.333h-85.333c-46.933 0-85.333 38.4-85.333 85.333h-85.333c-46.933 0-85.333 38.4-85.333 85.333l-42.667 512c0 46.933 38.4 85.333 85.333 85.333h85.333l-42.667 85.333h430.933l-42.667-85.333h81.067c46.933 0 85.333-38.4 85.333-85.333l-42.667-512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tram"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2440,
+            "id": 122,
+            "prevSize": 24,
+            "code": 60046,
+            "name": "tram"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1166
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 981.252l-170.667-170.667h341.334l-170.667 170.667zM853.333 128c47.104 0 85.333 38.229 85.333 85.333v426.667c0 47.104-38.229 85.333-85.333 85.333h-682.667c-47.147 0-85.333-38.229-85.333-85.333l0.426-426.667c0-47.104 37.76-85.333 84.907-85.333h682.667zM768.026 640.081v-85.333h-234.667l-85.333 85.333h320zM256.025 640.081h105.601l293.461-293.502c8.363-8.321 8.363-21.847 0-30.166l-75.392-75.435c-8.363-8.32-21.845-8.32-30.208 0l-293.462 293.503v105.6z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "transcribe-close"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2441,
+            "id": 121,
+            "prevSize": 24,
+            "code": 60047,
+            "name": "transcribe-close"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1167
+    }, {
+        "icon": {
+            "paths": [
+                "M853.308 213.251c47.104 0 85.333 38.229 85.333 85.333v426.668c0 47.104-38.229 85.333-85.333 85.333h-682.666c-47.147 0-85.333-38.229-85.333-85.333l0.426-426.668c0-47.104 37.76-85.333 84.907-85.333h682.666zM768 725.333v-85.333h-234.667l-85.333 85.333h320zM256 725.333h105.601l293.46-293.504c8.363-8.32 8.363-21.846 0-30.165l-75.392-75.435c-8.363-8.32-21.845-8.32-30.208 0l-293.461 293.504v105.6z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "transcribe"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2442,
+            "id": 120,
+            "prevSize": 24,
+            "code": 60048,
+            "name": "transcribe"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1168
+    }, {
+        "icon": {
+            "paths": [
+                "M128 341.333h85.333v341.333h-85.333v-341.333zM298.667 341.333h85.333v341.333h-85.333v-341.333zM469.333 341.333h85.333v341.333h-85.333v-341.333zM640 821.333v-618.667l309.333 309.333-309.333 309.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "transfer"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2443,
+            "id": 119,
+            "prevSize": 24,
+            "code": 60049,
+            "name": "transfer"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1169
+    }, {
+        "icon": {
+            "paths": [
+                "M341.329 896.004c-47.128 0-85.333-38.204-85.333-85.333l0.004-512.004h512l-0.004 512.004c0 47.13-38.204 85.333-85.333 85.333h-341.333zM213.331 256.001v-85.332h149.333l42.667-42.667 213.335-0.002 42.667 42.667 149.333 0.002-0.004 85.333-597.331-0z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "trash"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2444,
+            "id": 118,
+            "prevSize": 24,
+            "code": 60050,
+            "name": "trash"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1170
+    }, {
+        "icon": {
+            "paths": [
+                "M469.333 896v-181.594c-20.019 7.078-41.557 10.927-64 10.927-106.039 0-192-85.961-192-192 0-53.99 22.284-102.775 58.156-137.658-9.969-23.221-15.489-48.803-15.489-75.675 0-106.039 85.961-192 192-192 66.675 0 125.41 33.986 159.834 85.579 3.588-0.163 7.202-0.246 10.833-0.246 129.604 0 234.667 105.064 234.667 234.667 0 129.604-105.062 234.667-234.667 234.667-22.187 0-43.657-3.081-64-8.832v222.165h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tree"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2445,
+            "id": 117,
+            "prevSize": 24,
+            "code": 60051,
+            "name": "tree"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1171
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 128h682.667c23.565 0 42.667 19.103 42.667 42.667v682.667c0 23.565-19.102 42.667-42.667 42.667h-682.667c-23.564 0-42.667-19.102-42.667-42.667v-682.667c0-23.564 19.102-42.667 42.667-42.667zM234.667 213.333c-11.782 0-21.333 9.551-21.333 21.333v512c0 11.78 9.551 21.333 21.333 21.333h213.333c11.78 0 21.333-9.553 21.333-21.333v-512c0-11.782-9.553-21.333-21.333-21.333h-213.333zM576 213.333c-11.78 0-21.333 9.551-21.333 21.333v256c0 11.785 9.549 21.333 21.333 21.333h213.333c11.78 0 21.333-9.549 21.333-21.333v-256c0-11.782-9.553-21.333-21.333-21.333h-213.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "trello"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2446,
+            "id": 116,
+            "prevSize": 24,
+            "code": 60052,
+            "name": "trello"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1172
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 768l97.707-97.707-208.213-208.213-170.667 170.667-316.16-316.587 60.16-60.16 256 256 170.667-170.667 268.8 268.373 97.707-97.707v256h-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "trending-down"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2447,
+            "id": 115,
+            "prevSize": 24,
+            "code": 60053,
+            "name": "trending-down"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1173
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 512l-170.667-170.667v128h-640v85.333h640v128l170.667-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "trending-neutral"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2448,
+            "id": 114,
+            "prevSize": 24,
+            "code": 60054,
+            "name": "trending-neutral"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1174
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 256l97.707 97.707-208.213 208.213-170.667-170.667-316.16 316.587 60.16 60.16 256-256 170.667 170.667 268.8-268.373 97.707 97.707v-256h-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "trending-up"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2449,
+            "id": 113,
+            "prevSize": 24,
+            "code": 60055,
+            "name": "trending-up"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1175
+    }, {
+        "icon": {
+            "paths": [
+                "M767.974 789.252c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.328 0 64 28.672 64 64s-28.672 64-64 64zM831.974 405.251l83.797 106.668h-190.464v-106.668zM255.975 789.252c-35.328 0-64-28.672-64-64s28.672-64 64-64c35.328 0 64 28.672 64 64s-28.672 64-64 64zM853.308 341.251h-128v-170.667h-597.333c-47.147 0-85.333 38.187-85.333 85.333v469.335h85.333c0 70.699 57.301 128 128 128s128-57.301 128-128h256c0 70.699 57.301 128 128 128s128-57.301 128-128h85.333v-213.333l-128-170.668z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "truck"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2450,
+            "id": 112,
+            "prevSize": 24,
+            "code": 60056,
+            "name": "truck"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1176
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 896h-341.333c-23.564 0-42.667-19.102-42.667-42.667l-0-338.21-55.32 44.655c-16.662 16.661-43.677 16.661-60.34 0l-120.68-120.678c-16.662-16.663-16.662-43.678 0-60.34l250.758-250.759 70.915 0c0 47.128 57.306 85.333 128 85.333 70.69 0 128-38.205 128-85.333l70.916-0 250.756 250.759c16.661 16.662 16.661 43.677 0 60.34l-120.678 120.678c-16.661 16.661-43.678 16.661-60.339 0l-55.322-44.655v338.21c0 23.565-19.102 42.667-42.667 42.667zM871.164 408.93l-183.761-183.76c-13.069 15.070-29.094 28.375-47.403 39.377-35.657 21.425-79.974 34.121-128 34.121-72.691 0-136.887-29.083-175.404-73.497l-183.759 183.759 60.34 60.34 127.935-85.268h42.889v426.665h256v-426.665h42.889l127.936 85.268 60.339-60.34z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tshirt-crew"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2451,
+            "id": 111,
+            "prevSize": 24,
+            "code": 60057,
+            "name": "tshirt-crew"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1177
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 896h-341.333c-23.564 0-42.667-19.102-42.667-42.667v-338.21l-55.32 44.655c-16.662 16.661-43.677 16.661-60.34 0l-120.68-120.678c-16.662-16.664-16.662-43.679 0-60.341l250.758-250.759 70.915 0c0 47.128 42.666 128 128 181.333 85.333-53.333 128-134.205 128-181.333l70.916-0 250.756 250.759c16.661 16.662 16.661 43.677 0 60.341l-120.678 120.678c-16.661 16.661-43.678 16.661-60.339 0l-55.322-44.655v338.21c0 23.565-19.102 42.667-42.667 42.667zM871.164 408.93l-183.761-183.76c-47.403 73.497-90.069 126.831-175.403 169.498-85.333-42.668-128-96.001-175.404-169.498l-183.76 183.76 60.34 60.34 127.935-85.268h42.888v426.666h256v-426.666h42.889l127.936 85.268 60.339-60.34z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tshirt-v"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2452,
+            "id": 110,
+            "prevSize": 24,
+            "code": 60058,
+            "name": "tshirt-v"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1178
+    }, {
+        "icon": {
+            "paths": [
+                "M160 725.333l181.333-181.333 0 138.667h426.667v-192l85.333-85.333v277.333c0 47.13-38.204 85.333-85.333 85.333h-426.667l-0 138.667-181.333-181.333zM864 298.667l-181.333 181.333v-138.667l-426.667-0.001v192.001l-85.333 85.333-0-277.334c0-47.128 38.205-85.333 85.334-85.333l426.667 0.001v-138.666l181.333 181.332z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tumblr-reblog"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2453,
+            "id": 109,
+            "prevSize": 24,
+            "code": 60059,
+            "name": "tumblr-reblog"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1179
+    }, {
+        "icon": {
+            "paths": [
+                "M682.641 469.252h-128v166.4c0 31.275 6.144 46.933 46.933 46.933h81.067v128c0 0-43.874 4.292-89.6 4.292-112.896 0-166.4-69.274-166.4-145.092v-200.533h-85.333v-119.468c102.741-8.533 111.744-87.125 119.467-136.533h93.867v128h128zM853.308 85.251h-682.667c-47.147 0-84.907 38.187-84.907 85.333l-0.427 682.668c0 47.083 38.187 85.333 85.333 85.333h682.667c47.104 0 85.333-38.251 85.333-85.333v-682.668c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "tumblr"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2454,
+            "id": 108,
+            "prevSize": 24,
+            "code": 60060,
+            "name": "tumblr"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1180
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 85.334l768 0v511.999l-213.333 213.333h-170.667l-128 128h-128v-128h-213.333v-554.666l85.333-170.667zM853.333 554.667v-384h-597.334l0 512h128v128l128-128h213.333l128-128zM640 298.667h85.333v213.333h-85.333v-213.333zM512 298.667v213.333h-85.333v-213.333h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "twitch"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2455,
+            "id": 107,
+            "prevSize": 24,
+            "code": 60061,
+            "name": "twitch"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1181
+    }, {
+        "icon": {
+            "paths": [
+                "M755.516 398.002c-2.731 197.079-128.725 332.076-316.8 340.567-77.567 3.499-133.844-21.461-182.74-52.565 57.344 9.173 128.384-13.739 166.485-46.336-56.235-5.504-89.429-34.091-105.131-80.085 16.213 2.859 33.323 2.091 48.811-1.237-50.688-17.024-86.912-48.341-88.875-114.005 14.293 6.485 29.141 12.587 48.811 13.739-38.016-21.589-65.976-100.481-33.835-152.748 56.363 61.824 124.16 112.171 235.391 118.997-27.904-119.339 130.475-184.107 196.608-103.893 28.032-5.419 50.731-16 72.619-27.605-8.96 27.776-26.368 47.104-47.616 62.677 23.211-3.157 43.904-8.832 61.397-17.536-10.752 22.613-34.688 42.965-55.125 60.032zM853.308 85.255h-682.666c-47.104 0-84.907 38.187-84.907 85.333l-0.427 682.668c0 47.104 38.229 85.333 85.333 85.333h682.666c47.104 0 85.333-38.229 85.333-85.333v-682.668c0-47.147-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "twitter-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2456,
+            "id": 106,
+            "prevSize": 24,
+            "code": 60062,
+            "name": "twitter-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1182
+    }, {
+        "icon": {
+            "paths": [
+                "M755.516 398.002c20.437-17.067 44.373-37.419 55.125-60.032-17.493 8.704-38.187 14.379-61.397 17.536 21.248-15.573 38.656-34.901 47.616-62.677-21.888 11.605-44.587 22.187-72.619 27.605-66.133-80.213-224.512-15.445-196.608 103.893-111.231-6.827-179.028-57.173-235.391-118.997-32.142 52.266-4.182 131.159 33.835 152.748-19.669-1.152-34.517-7.253-48.811-13.739 1.963 65.664 38.187 96.981 88.875 114.005-15.488 3.328-32.597 4.096-48.81 1.237 15.701 45.995 48.896 74.581 105.13 80.085-38.101 32.597-109.141 55.509-166.485 46.336 48.896 31.104 105.173 56.064 182.74 52.565 188.075-8.491 314.069-143.488 316.8-340.567zM512 85.334c235.639 0 426.667 191.025 426.667 426.666 0 235.644-191.027 426.667-426.667 426.667-235.642 0-426.667-191.023-426.667-426.667 0-235.641 191.025-426.666 426.667-426.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "twitter-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2457,
+            "id": 105,
+            "prevSize": 24,
+            "code": 60063,
+            "name": "twitter-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1183
+    }, {
+        "icon": {
+            "paths": [
+                "M256 245.333l181.333 181.333h-138.667l-0 256h277.334l85.333 85.333h-362.667c-47.128 0-85.333-38.204-85.333-85.333v-256h-138.666l181.333-181.333zM768 778.667l-181.333-181.333h138.667v-256l-277.333 0-85.333-85.334h362.667c47.13 0 85.333 38.205 85.333 85.333v256h138.667l-181.333 181.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "twitter-retweet"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2458,
+            "id": 104,
+            "prevSize": 24,
+            "code": 60064,
+            "name": "twitter-retweet"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1184
+    }, {
+        "icon": {
+            "paths": [
+                "M958.259 256.528c-32.836 14.564-68.13 24.407-105.165 28.833 37.798-22.662 66.837-58.546 80.508-101.306-35.383 20.986-74.569 36.224-116.279 44.434-33.399-35.587-80.986-57.822-133.653-57.822-101.124 0-183.117 81.983-183.117 183.106 0 14.351 1.621 28.327 4.745 41.73-152.183-7.637-287.11-80.536-377.421-191.321-15.763 27.044-24.793 58.498-24.793 92.057 0 63.529 32.326 119.575 81.46 152.414-30.013-0.956-58.252-9.19-82.937-22.905-0.017 0.765-0.017 1.529-0.017 2.301 0 88.721 63.119 162.726 146.885 179.55-15.364 4.186-31.541 6.426-48.241 6.426-11.799 0-23.27-1.152-34.452-3.285 23.302 72.742 90.926 125.687 171.054 127.159-62.668 49.118-141.622 78.391-227.414 78.391-14.78 0-29.356-0.87-43.68-2.564 81.035 51.955 177.286 82.274 280.692 82.274 336.806 0 520.989-279.019 520.989-520.995 0-7.938-0.179-15.835-0.533-23.69 35.78-25.817 66.825-58.066 91.371-94.787z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "twitter"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2459,
+            "id": 103,
+            "prevSize": 24,
+            "code": 60065,
+            "name": "twitter"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1185
+    }, {
+        "icon": {
+            "paths": [
+                "M938.675 512.047c0 235.563-191.057 426.62-426.675 426.62-235.606 0-426.673-191.057-426.673-426.62 0-235.714 191.068-426.714 426.673-426.714 235.618 0 426.675 191 426.675 426.714zM611.904 330.182c24.512 14.111 55.855 5.752 69.99-18.788 14.178-24.433 5.764-55.827-18.761-69.965-24.512-14.138-55.855-5.739-69.99 18.761-14.101 24.513-5.769 55.854 18.761 69.992zM506.982 661.636c-22.511 0-43.878-4.945-63.031-13.897l-35.601 63.799c29.7 14.797 63.206 23.049 98.633 23.049 20.617 0 40.559-2.782 59.507-8.051 3.332-20.629 15.59-39.526 35.025-50.842 19.529-11.264 41.984-12.322 61.525-4.894 37.871-37.359 62.532-88.038 66.146-144.538l-73.054-1.007c-6.746 76.48-70.895 136.38-149.15 136.38zM506.982 362.154c78.255 0 142.404 59.98 149.15 136.572l73.054-1.182c-3.614-56.448-28.275-107.154-66.146-144.408-19.541 7.311-42.052 6.276-61.525-5.013-19.435-11.261-31.693-30.158-35.025-50.787-18.948-5.214-38.891-8.104-59.507-8.104-35.426 0-68.932 8.332-98.633 23.076l35.601 63.81c19.153-8.937 40.521-13.964 63.031-13.964zM357.294 511.991c0-50.697 25.065-95.488 63.595-122.569l-37.428-62.829c-44.861 29.97-78.271 75.811-92.154 129.487 16.248 13.227 26.529 33.306 26.529 55.91 0 22.43-10.281 42.522-26.529 55.799 13.883 53.636 47.293 99.452 92.154 129.434l37.428-62.801c-38.53-27.055-63.595-71.795-63.595-122.432zM611.904 693.717c-24.529 14.046-32.862 45.453-18.761 69.897 14.135 24.555 45.478 32.926 69.99 18.816 24.525-14.153 32.969-45.466 18.816-70.003-14.191-24.516-45.534-32.9-70.046-18.709zM245.882 460.693c-28.33 0-51.204 22.955-51.204 51.298 0 28.22 22.874 51.217 51.204 51.217 28.357 0 51.258-22.997 51.258-51.217 0-28.343-22.9-51.298-51.258-51.298z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "ubuntu"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2460,
+            "id": 102,
+            "prevSize": 24,
+            "code": 60066,
+            "name": "ubuntu"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1186
+    }, {
+        "icon": {
+            "paths": [
+                "M512 170.667c131.968 0.128 248.192 86.869 285.909 213.333h-571.989c37.717-126.549 154.027-213.291 286.080-213.333zM512 85.333c-212.096 0-384 171.904-384 384h341.333v341.333c0 23.552-19.115 42.667-42.667 42.667s-42.667-19.115-42.667-42.667h-85.333c0 70.699 57.301 128 128 128s128-57.301 128-128v-341.333h341.333c0-212.096-171.904-384-384-384z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "umbrella-outline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2461,
+            "id": 101,
+            "prevSize": 24,
+            "code": 60067,
+            "name": "umbrella-outline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1187
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c-212.096 0-384 171.904-384 384h341.333v341.333c0 23.552-19.115 42.667-42.667 42.667s-42.667-19.115-42.667-42.667h-85.333c0 70.699 57.301 128 128 128s128-57.301 128-128v-341.333h341.333c0-212.096-171.904-384-384-384z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "umbrella"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2462,
+            "id": 100,
+            "prevSize": 24,
+            "code": 60068,
+            "name": "umbrella"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1188
+    }, {
+        "icon": {
+            "paths": [
+                "M576 298.667c153.165 0 277.333 124.166 277.333 277.333 0 153.169-124.169 277.333-277.333 277.333h-149.335v-85.333h149.335c106.039 0 192-85.961 192-192s-85.961-192-192-192h-241.92l131.413 131.84-60.161 60.16-234.666-234.667 234.666-234.665 60.588 60.16-131.84 131.838h241.92zM256 768h85.333v85.333h-85.333v-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "undo-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2463,
+            "id": 99,
+            "prevSize": 24,
+            "code": 60069,
+            "name": "undo-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1189
+    }, {
+        "icon": {
+            "paths": [
+                "M533.333 341.333c-113.067 0-215.467 42.24-294.4 110.933l-153.6-153.6v384h384l-154.453-154.453c59.307-49.493 134.827-80.213 218.453-80.213 151.040 0 279.467 98.56 324.267 234.667l101.12-33.28c-59.307-178.773-226.987-308.053-425.387-308.053z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "undo"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2464,
+            "id": 98,
+            "prevSize": 24,
+            "code": 60070,
+            "name": "undo"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1190
+    }, {
+        "icon": {
+            "paths": [
+                "M707.84 230.827l-60.587-60.16-135.253 135.253-135.253-135.253-60.587 60.16 195.84 195.84zM316.16 793.173l60.587 60.16 135.253-135.253 135.253 135.253 60.16-60.16-195.413-195.84-195.84 195.84z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "unfold-less"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2465,
+            "id": 97,
+            "prevSize": 24,
+            "code": 60071,
+            "name": "unfold-less"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1191
+    }, {
+        "icon": {
+            "paths": [
+                "M512 775.253l-135.253-135.253-60.16 60.16 195.413 195.84 195.84-195.84-60.587-60.16zM512 248.747l135.253 135.253 60.16-60.16-195.413-195.84-195.84 195.84 60.587 60.16 135.253-135.253z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "unfold-more"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2466,
+            "id": 96,
+            "prevSize": 24,
+            "code": 60072,
+            "name": "unfold-more"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1192
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 85.333h170.667v42.667l298.667 0v-42.666h170.667v170.666h-42.667v128h85.333v-42.667h170.667v170.667h-42.667v256h42.667v170.667h-170.667v-42.667h-256v42.667h-170.667v-170.667h42.666v-85.333h-128v42.667h-170.667v-170.667h42.667v-298.667h-42.667v-170.667zM768 512v-42.667h-85.333v85.333h42.667v170.667h-170.667v-42.667h-85.333v85.333h42.667v42.667h256v-42.667h42.667v-256h-42.667zM554.667 256v-42.666l-298.667-0v42.667h-42.667v298.666h42.667v42.667h128l0-85.333h-42.667v-170.666h170.667v42.666h85.333v-128h-42.667zM512 512h-42.667v85.333h85.333v-42.667h42.667v-85.333h-85.333v42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "ungroup"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2467,
+            "id": 95,
+            "prevSize": 24,
+            "code": 60073,
+            "name": "ungroup"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1193
+    }, {
+        "icon": {
+            "paths": [
+                "M614.963 170.83c0 0 22.327 16.365 23.556 30.060 0.38 4.534-9.86 6.088-12.224 9.504-2.364 3.39 0.862 9.396-1.382 11.741-2.206 2.326-6.758 2.453-10.112 8.751-3.324 6.333-99.964 199.766-114.125 222.759-6.106 17.037-11.093 78.127-15.718 86.443-4.655 8.333-214.435 306.513-222.167 315.507-20.937 24.465-78.757 10.688-122.756-20.962-41.846-30.059-65.78-79.292-49.933-102.409 6.706-9.796 214.843-309.050 221.085-316.273 6.261-7.197 62.010-32.668 75.94-44.199 16.802-21.136 165.82-177.841 170.615-183.13 4.809-5.279 3.371-9.604 4.809-12.485 1.455-2.899 8.171-1.917 10.577-5.306 2.398-3.353-1.916-12.477 2.398-13.922 4.326-1.435 20.211-0.481 39.437 13.922zM462.818 189.425l37.939 39.674-62.882 66.871-34.148-66.789c-3.389-6.325-7.96-6.397-10.196-8.742-2.245-2.326 0.918-8.369-1.454-11.767-2.39-3.408-12.458-2.381-12.376-6.933 0.091-4.579 6.343-19.255 26.398-32.577 0 0 22.944-15.657 36.294-12.186 4.407 1.145 2.462 11.35 4.885 14.712 2.436 3.362 9.182 2.344 10.633 5.225 1.472 2.89 0.064 7.242 4.907 12.513zM935.13 731.703c16.094 27.989-16.35 78.025-60.983 108.992-42.47 29.449-97.041 35.567-113.587 12.813-6.98-9.634-219.985-306.722-224.691-315.038-4.745-8.324-10.108-69.559-16.311-86.609l-1.156-1.916c12.86-23.653 39.458-75.867 67.49-131.37 24.073 25.516 43.644 46.607 49.169 53.449 14.029 11.477 70.106 36.675 76.42 43.881 6.289 7.197 217.732 305.476 223.65 315.797z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "untappd"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2468,
+            "id": 94,
+            "prevSize": 24,
+            "code": 60074,
+            "name": "untappd"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1194
+    }, {
+        "icon": {
+            "paths": [
+                "M383.974 682.581v-255.998h-170.667l298.667-298.667 298.667 298.667h-170.667v255.998h-256zM213.306 853.252v-85.333h597.335v85.333h-597.335z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "upload"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2469,
+            "id": 93,
+            "prevSize": 24,
+            "code": 60075,
+            "name": "upload"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1195
+    }, {
+        "icon": {
+            "paths": [
+                "M639.974 298.584v170.668h42.667v85.333h-128v-341.335h85.333l-128-170.667-128 170.667h85.333v341.335h-128v-88.32c30.037-15.659 51.2-46.124 51.2-82.348 0-51.84-42.027-93.867-93.867-93.867s-93.867 42.027-93.867 93.867c0 36.224 21.163 66.689 51.2 82.348v88.32c0 47.147 38.144 85.333 85.333 85.333h128v130.176c-30.293 15.573-51.2 46.763-51.2 83.157 0 51.84 42.027 93.867 93.867 93.867s93.867-42.027 93.867-93.867c0-36.395-20.949-67.584-51.2-83.157v-130.176h128c47.147 0 85.333-38.187 85.333-85.333v-85.333h42.667v-170.668h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "usb"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2470,
+            "id": 92,
+            "prevSize": 24,
+            "code": 60076,
+            "name": "usb"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1196
+    }, {
+        "icon": {
+            "paths": [
+                "M789.333 85.333c35.345 0 64 28.654 64 64s-28.655 64-64 64c-9.882 0-19.238-2.239-27.593-6.237l-157.585 157.584 13.508 20.188c94.362-54.813 204.019-86.201 321.003-86.201l42.667 1.399v85.551l-42.667-1.617c-109.969 0-212.463 32.002-298.675 87.202-0.998 92.774-76.015 167.791-168.789 168.789-55.2 86.212-87.203 188.706-87.203 298.675l1.617 42.667h-85.55l-1.399-42.667c0-116.983 31.388-226.641 86.201-321.003l-20.188-13.508-157.584 157.585c3.998 8.354 6.237 17.711 6.237 27.593 0 35.345-28.654 64-64 64s-64-28.655-64-64c0-35.345 28.654-64 64-64 9.88 0 19.238 2.24 27.593 6.238l157.584-157.585c-22.465-28.898-35.843-65.212-35.843-104.653 0-94.257 76.41-170.667 170.667-170.667 39.441 0 75.755 13.377 104.653 35.843l157.585-157.583c-3.998-8.355-6.238-17.713-6.238-27.593 0-35.346 28.655-64 64-64zM469.333 384c-47.129 0-85.334 38.205-85.334 85.333 0 47.13 38.205 85.333 85.334 85.333s85.333-38.204 85.333-85.333c0-47.128-38.204-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "vector-curve"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2471,
+            "id": 91,
+            "prevSize": 24,
+            "code": 60077,
+            "name": "vector-curve"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1197
+    }, {
+        "icon": {
+            "paths": [
+                "M512 853.333l-213.333 85.333 213.333-469.333 213.333 469.333-213.333-85.333zM341.333 85.334h341.333v128h256v85.333h-256v128h-341.333v-128h-256v-85.333h256v-128zM426.667 170.667v170.666h170.667v-170.666h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "vector-point"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2472,
+            "id": 90,
+            "prevSize": 24,
+            "code": 60078,
+            "name": "vector-point"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1198
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 85.333h256v85.333h341.333v-85.333h256v256h-85.333v341.333h85.333v256h-256v-85.333h-341.333v85.333h-256v-256h85.333v-341.333h-85.333v-256zM682.667 341.333v-85.333h-341.333v85.333h-85.333v341.333h85.333v85.333h341.333v-85.333h85.333v-341.333h-85.333zM170.667 170.667v85.333h85.333v-85.333h-85.333zM768 170.667v85.333h85.333v-85.333h-85.333zM170.667 768v85.333h85.333v-85.333h-85.333zM768 768v85.333h85.333v-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "vector-square"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2473,
+            "id": 89,
+            "prevSize": 24,
+            "code": 60079,
+            "name": "vector-square"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1199
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 725.333l-170.667-170.667 60.16-60.16 110.507 110.080 281.173-281.173 60.16 60.587zM512 42.667l-384 170.667v256c0 236.8 163.84 458.24 384 512 220.16-53.76 384-275.2 384-512v-256l-384-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "verified"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2474,
+            "id": 88,
+            "prevSize": 24,
+            "code": 60080,
+            "name": "verified"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1200
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 810.667h-341.333v-597.333h341.333zM704 128h-384c-35.413 0-64 28.587-64 64v640c0 35.413 28.587 64 64 64h384c35.413 0 64-28.587 64-64v-640c0-35.413-28.587-64-64-64zM810.667 725.333h85.333v-426.667h-85.333zM938.667 384v256h85.333v-256zM128 725.333h85.333v-426.667h-85.333zM0 640h85.333v-256h-85.333v256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "vibration"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2475,
+            "id": 87,
+            "prevSize": 24,
+            "code": 60081,
+            "name": "vibration"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1201
+    }, {
+        "icon": {
+            "paths": [
+                "M139.618 85.254l-54.315 54.315 116.394 116.352h-31.061c-23.552 0-42.667 19.115-42.667 42.667v426.665c0 23.552 19.115 42.667 42.667 42.667h512c8.747 0 16.469-3.285 23.211-7.808l135.851 135.808 54.272-54.315zM895.97 277.254l-170.667 170.665v-149.332c0-23.552-19.115-42.667-42.667-42.667h-263.723l477.056 477.059v-455.726z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "video-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2476,
+            "id": 86,
+            "prevSize": 24,
+            "code": 60082,
+            "name": "video-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1202
+    }, {
+        "icon": {
+            "paths": [
+                "M554.641 661.252v-106.667h-256v106.667l-149.333-149.333 149.333-149.335v106.668h256v-106.668l149.333 149.335zM767.974 405.251v-149.333c0-23.552-19.072-42.667-42.667-42.667h-597.333c-23.595 0-42.667 19.115-42.667 42.667v512.001c0 23.552 19.072 42.667 42.667 42.667h597.333c23.595 0 42.667-19.115 42.667-42.667v-149.333l170.667 170.667v-554.668l-170.667 170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "video-switch"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2477,
+            "id": 85,
+            "prevSize": 24,
+            "code": 60083,
+            "name": "video-switch"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1203
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 448v-149.332c0-23.552-19.115-42.667-42.667-42.667h-512c-23.552 0-42.667 19.115-42.667 42.667v426.665c0 23.552 19.114 42.667 42.667 42.667h512c23.552 0 42.667-19.115 42.667-42.667v-149.333l170.667 170.667v-469.332l-170.667 170.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "video"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2478,
+            "id": 84,
+            "prevSize": 24,
+            "code": 60084,
+            "name": "video"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1204
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 128h-725.333c-23.467 0-42.667 19.2-42.667 42.667v256c0 23.467 19.2 42.667 42.667 42.667h725.333c23.467 0 42.667-19.2 42.667-42.667v-256c0-23.467-19.2-42.667-42.667-42.667zM853.333 554.667h-725.333c-23.467 0-42.667 19.2-42.667 42.667v256c0 23.467 19.2 42.667 42.667 42.667h725.333c23.467 0 42.667-19.2 42.667-42.667v-256c0-23.467-19.2-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "view-agenda"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2479,
+            "id": 83,
+            "prevSize": 24,
+            "code": 60085,
+            "name": "view-agenda"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1205
+    }, {
+        "icon": {
+            "paths": [
+                "M341.333 768h384v-554.667h-384zM768 213.333v554.667h128v-554.667zM170.667 768h128v-554.667h-128v554.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "view-array"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2480,
+            "id": 82,
+            "prevSize": 24,
+            "code": 60086,
+            "name": "view-array"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1206
+    }, {
+        "icon": {
+            "paths": [
+                "M768 256v469.333h170.667v-469.333zM85.333 725.333h170.667v-469.333h-170.667zM298.667 810.667h426.667v-640h-426.667v640z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "view-carousel"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2481,
+            "id": 81,
+            "prevSize": 24,
+            "code": 60087,
+            "name": "view-carousel"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1207
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 213.333v554.667h213.333v-554.667zM170.667 768h213.333v-554.667h-213.333zM426.667 768h213.333v-554.667h-213.333v554.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "view-column"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2482,
+            "id": 80,
+            "prevSize": 24,
+            "code": 60088,
+            "name": "view-column"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1208
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 128v256h341.333v-256zM554.667 896h341.333v-426.667h-341.333zM128 896h341.333v-256h-341.333zM128 554.667h341.333v-426.667h-341.333v426.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "view-dashboard"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2483,
+            "id": 79,
+            "prevSize": 24,
+            "code": 60089,
+            "name": "view-dashboard"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1209
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 128v128h810.667v-128zM853.333 341.333h-725.333c-23.467 0-42.667 19.2-42.667 42.667v256c0 23.467 19.2 42.667 42.667 42.667h725.333c23.467 0 42.667-19.2 42.667-42.667v-256c0-23.467-19.2-42.667-42.667-42.667zM85.333 896h810.667v-128h-810.667v128z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "view-day"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2484,
+            "id": 78,
+            "prevSize": 24,
+            "code": 60090,
+            "name": "view-day"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1210
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 213.333v85.333h725.333v-85.333zM170.667 469.333h725.333v-85.333h-725.333zM170.667 810.667h725.333v-85.333h-725.333zM170.667 640h725.333v-85.333h-725.333v85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "view-headline"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2485,
+            "id": 77,
+            "prevSize": 24,
+            "code": 60091,
+            "name": "view-headline"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1211
+    }, {
+        "icon": {
+            "paths": [
+                "M384 213.333v170.667h512v-170.667zM384 810.667h512v-170.667h-512zM384 597.333h512v-170.667h-512zM170.667 384h170.667v-170.667h-170.667zM170.667 810.667h170.667v-170.667h-170.667zM170.667 597.333h170.667v-170.667h-170.667v170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "view-list"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2486,
+            "id": 76,
+            "prevSize": 24,
+            "code": 60092,
+            "name": "view-list"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1212
+    }, {
+        "icon": {
+            "paths": [
+                "M682.667 213.333v256h213.333v-256zM426.667 469.333h213.333v-256h-213.333zM682.667 768h213.333v-256h-213.333zM426.667 768h213.333v-256h-213.333zM170.667 768h213.333v-256h-213.333zM170.667 469.333h213.333v-256h-213.333v256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "view-module"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2487,
+            "id": 75,
+            "prevSize": 24,
+            "code": 60093,
+            "name": "view-module"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1213
+    }, {
+        "icon": {
+            "paths": [
+                "M426.667 213.333v256h469.333v-256zM682.667 768h213.333v-256h-213.333zM170.667 768h213.333v-554.667h-213.333zM426.667 768h213.333v-256h-213.333v256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "view-quilt"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2488,
+            "id": 74,
+            "prevSize": 24,
+            "code": 60094,
+            "name": "view-quilt"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1214
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 213.333v256h725.333v-256zM170.667 768h725.333v-256h-725.333v256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "view-stream"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2489,
+            "id": 73,
+            "prevSize": 24,
+            "code": 60095,
+            "name": "view-stream"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1215
+    }, {
+        "icon": {
+            "paths": [
+                "M554.667 213.333h-128c-23.467 0-42.667 19.2-42.667 42.667v512c0 23.467 19.2 42.667 42.667 42.667h128c23.467 0 42.667-19.2 42.667-42.667v-512c0-23.467-19.2-42.667-42.667-42.667zM853.333 213.333h-128c-23.467 0-42.667 19.2-42.667 42.667v512c0 23.467 19.2 42.667 42.667 42.667h128c23.467 0 42.667-19.2 42.667-42.667v-512c0-23.467-19.2-42.667-42.667-42.667zM256 213.333h-128c-23.467 0-42.667 19.2-42.667 42.667v512c0 23.467 19.2 42.667 42.667 42.667h128c23.467 0 42.667-19.2 42.667-42.667v-512c0-23.467-19.2-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "view-week"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2490,
+            "id": 72,
+            "prevSize": 24,
+            "code": 60096,
+            "name": "view-week"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1216
+    }, {
+        "icon": {
+            "paths": [
+                "M938.667 316.598c-3.802 83.265-61.845 197.284-174.118 341.996-116.075 151.159-214.281 226.739-294.618 226.739-49.751 0-91.88-46.012-126.271-138.086-22.978-84.39-45.939-168.777-68.917-253.167-25.545-92.023-52.942-138.092-82.24-138.092-6.386 0-28.73 13.469-66.999 40.29l-40.17-51.846c42.137-37.093 83.699-74.182 124.595-111.325 56.194-48.649 98.381-74.237 126.495-76.822 66.449-6.394 107.345 39.111 122.692 136.518 16.585 105.101 28.066 170.472 34.517 196.055 19.153 87.194 40.222 130.739 63.249 130.739 17.865 0 44.706-28.284 80.495-84.834 35.75-56.567 54.903-99.605 57.489-129.167 5.094-48.816-14.067-73.286-57.489-73.286-20.442 0-41.51 4.711-63.185 14.028 41.95-137.701 122.125-204.579 240.448-200.765 87.727 2.584 129.079 59.583 124.028 171.025z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "vimeo"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2491,
+            "id": 71,
+            "prevSize": 24,
+            "code": 60097,
+            "name": "vimeo"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1217
+    }, {
+        "icon": {
+            "paths": [
+                "M848.644 509.803c-19.785 4.561-38.921 6.571-56.145 6.571-96.9 0-171.503-67.674-171.503-185.346 0-57.676 22.298-87.67 53.833-87.67 29.999 0 49.997 26.916 49.997 81.521 0 31.047-8.316 65.071-14.455 85.201 0 0 29.862 52.089 111.514 36.102 17.34-38.489 26.761-88.338 26.761-132.067 0-117.671-59.989-186.115-169.971-186.115-113.041 0-179.187 86.906-179.187 201.498 0 113.522 53.069 210.964 140.574 255.363-36.796 73.609-83.618 138.445-132.446 187.298-88.596-107.102-168.688-249.975-201.553-528.802h-130.706c60.388 464.371 240.351 612.233 287.933 640.623 26.918 16.154 50.091 15.386 74.705 1.536 38.635-21.969 154.645-137.958 218.944-273.818 26.991-0.077 59.418-3.174 91.708-10.47v-91.426z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "vine"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2492,
+            "id": 70,
+            "prevSize": 24,
+            "code": 60098,
+            "name": "vine"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1218
+    }, {
+        "icon": {
+            "paths": [
+                "M213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333zM735.424 598.481c-50.108-46.49-43.375-38.959 17.079-119.65 36.817-48.973 51.627-78.888 47.040-91.678-4.459-12.159-31.556-9.045-31.556-9.045l-90.078 0.631c0 0-6.729-0.968-11.652 1.977-4.796 2.987-7.91 9.719-7.91 9.719s-14.302 37.951-33.195 70.177c-40.094 68.198-56.209 71.65-62.771 67.524-15.147-9.843-11.362-39.59-11.362-60.791 0-65.929 10.057-93.529-19.563-100.597-9.677-2.272-16.913-3.955-41.903-4.081-32.183-0.337-59.324 0-74.763 7.531-10.35 5.091-18.259 16.282-13.295 16.955 5.89 0.631 19.395 3.618 26.464 13.295 9.34 12.495 9.003 40.768 9.003 40.768s5.261 77.581-12.495 87.258c-12.159 6.562-28.736-6.899-64.413-68.702-18.385-31.556-32.185-66.56-32.185-66.56l-7.405-10.182-13.8-5.596-85.617 0.337c0 0-12.832-0.169-17.586 5.427-4.123 5.091-0.336 14.473-0.336 14.473s67.063 155.122 142.793 234.004c69.546 72.495 148.602 64.247 148.602 64.247h35.802c0 0 10.688 2.313 16.282-3.575 5.090-5.427 4.924-12.331 4.924-12.331s-0.674-48.004 21.542-55.070c22.003-7.070 50.274 46.362 80.188 66.893 22.511 15.441 39.757 12.16 39.757 12.16l80.064-1.135c0 0 41.737-2.65 21.837-35.511-1.472-2.816-11.486-24.316-59.49-68.873z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "vk-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2493,
+            "id": 69,
+            "prevSize": 24,
+            "code": 60099,
+            "name": "vk-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1219
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c235.639 0 426.667 191.025 426.667 426.667 0 235.644-191.027 426.667-426.667 426.667-235.642 0-426.667-191.023-426.667-426.667 0-235.642 191.025-426.667 426.667-426.667zM735.424 598.481c-50.108-46.49-43.375-38.959 17.084-119.654 36.813-48.969 51.622-78.884 47.036-91.674-4.459-12.159-31.556-9.046-31.556-9.046l-90.078 0.631c0 0-6.729-0.968-11.652 1.978-4.796 2.987-7.91 9.719-7.91 9.719s-14.302 37.947-33.195 70.178c-40.094 68.198-56.209 71.65-62.771 67.524-15.147-9.843-11.358-39.59-11.358-60.791 0-65.929 10.052-93.529-19.567-100.597-9.677-2.272-16.913-3.955-41.903-4.081-32.183-0.336-59.324 0-74.763 7.531-10.35 5.091-18.259 16.282-13.295 16.955 5.89 0.631 19.395 3.618 26.464 13.295 9.34 12.495 9.003 40.768 9.003 40.768s5.261 77.581-12.495 87.258c-12.159 6.562-28.736-6.899-64.413-68.702-18.386-31.556-32.186-66.56-32.186-66.56l-7.405-10.182-13.8-5.595-85.617 0.336c0 0-12.832-0.168-17.586 5.428-4.123 5.091-0.336 14.473-0.336 14.473s67.063 155.122 142.794 234.004c69.545 72.491 148.601 64.247 148.601 64.247h35.802c0 0 10.688 2.313 16.282-3.575 5.090-5.427 4.924-12.331 4.924-12.331s-0.674-48.004 21.542-55.070c22.003-7.070 50.274 46.362 80.188 66.893 22.511 15.441 39.757 12.16 39.757 12.16l80.064-1.135c0 0 41.737-2.65 21.837-35.511-1.472-2.816-11.486-24.316-59.49-68.873z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "vk-circle"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2494,
+            "id": 68,
+            "prevSize": 24,
+            "code": 60100,
+            "name": "vk-circle"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1220
+    }, {
+        "icon": {
+            "paths": [
+                "M833.873 622.912c66.010 61.265 79.778 90.825 81.801 94.703 27.362 45.18-30.025 48.823-30.025 48.823l-110.089 1.562c0 0-23.718 4.514-54.665-16.717-41.131-28.233-80.009-101.7-110.263-91.981-30.545 9.715-29.619 75.725-29.619 75.725s0.235 9.485-6.767 16.947c-7.693 8.102-22.387 4.919-22.387 4.919h-49.229c0 0-108.701 11.337-204.326-88.337-104.129-108.467-196.342-321.759-196.342-321.759s-5.206-12.901 0.463-19.9c6.537-7.694 24.181-7.463 24.181-7.463l117.724-0.463c0 0 11.049 2.025 18.975 7.694 6.537 4.975 10.182 14 10.182 14s18.974 48.131 44.255 91.518c49.056 84.979 71.849 103.492 88.567 94.468 24.411-13.303 17.181-119.98 17.181-119.98s0.463-38.875-12.38-56.056c-9.719-13.305-28.288-17.413-36.387-18.28-6.826-0.926 4.049-16.314 18.281-23.313 21.231-10.355 58.542-10.818 102.8-10.355 34.359 0.174 44.309 2.487 57.617 5.612 40.725 9.719 26.901 47.668 26.901 138.32 0 29.154-5.21 70.054 15.616 83.593 9.024 5.666 31.181 0.922 86.315-92.851 25.971-44.312 45.641-96.492 45.641-96.492s4.284-9.256 10.876-13.363c6.771-4.049 16.026-2.719 16.026-2.719l123.857-0.868c0 0 37.252-4.281 43.388 12.438 6.302 17.586-14.059 58.717-64.678 126.054-83.127 110.955-92.386 100.599-23.488 164.523z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "vk"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2495,
+            "id": 67,
+            "prevSize": 24,
+            "code": 60101,
+            "name": "vk"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1221
+    }, {
+        "icon": {
+            "paths": [
+                "M789.321 639.915c-82.475 0-149.333-66.859-149.333-149.333 0-82.472 66.859-149.331 149.333-149.331s149.333 66.859 149.333 149.331c0 82.475-66.859 149.333-149.333 149.333zM234.655 639.915c-82.474 0-149.333-66.859-149.333-149.333 0-82.472 66.859-149.331 149.333-149.331s149.333 66.859 149.333 149.331c0 82.475-66.859 149.333-149.333 149.333zM789.321 255.917c-129.621 0-234.667 105.044-234.667 234.665 0 56.751 20.139 108.762 53.632 149.333h-192.597c33.493-40.572 53.632-92.582 53.632-149.333 0-129.62-105.044-234.665-234.666-234.665s-234.667 105.044-234.667 234.665c0 129.626 105.044 234.667 234.667 234.667h554.666c129.621 0 234.667-105.041 234.667-234.667 0-129.62-105.045-234.665-234.667-234.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "voicemail"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2496,
+            "id": 66,
+            "prevSize": 24,
+            "code": 60102,
+            "name": "voicemail"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1222
+    }, {
+        "icon": {
+            "paths": [
+                "M597.308 137.753v88.020c123.349 36.735 213.333 150.912 213.333 286.124 0 135.249-89.984 249.429-213.333 286.161v88.021c170.965-38.865 298.667-191.445 298.667-374.182 0-182.7-127.701-335.319-298.667-374.145zM703.974 511.898c0-75.311-43.52-140.377-106.667-171.822v343.683c63.147-31.492 106.667-96.516 106.667-171.861zM127.974 383.896v256.002h170.667l213.333 213.333v-682.668l-213.333 213.333h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "volume-high"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2497,
+            "id": 65,
+            "prevSize": 24,
+            "code": 60103,
+            "name": "volume-high"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1223
+    }, {
+        "icon": {
+            "paths": [
+                "M298.641 383.92v255.999h170.667l213.333 213.333v-682.665l-213.333 213.333h-170.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "volume-low"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2498,
+            "id": 64,
+            "prevSize": 24,
+            "code": 60104,
+            "name": "volume-low"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1224
+    }, {
+        "icon": {
+            "paths": [
+                "M213.308 383.917v255.998h170.667l213.333 213.333v-682.665l-213.333 213.333zM789.308 511.915c0-75.345-43.52-140.37-106.667-171.816v343.634c63.147-31.445 106.667-96.469 106.667-171.819z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "volume-medium"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2499,
+            "id": 63,
+            "prevSize": 24,
+            "code": 60105,
+            "name": "volume-medium"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1225
+    }, {
+        "icon": {
+            "paths": [
+                "M511.974 170.583l-89.216 89.216 89.216 89.216zM182.289 127.917l-54.315 54.315 201.685 201.685h-201.685v255.998h170.667l213.333 213.333v-287.014l181.547 181.547c-28.587 22.054-60.757 39.68-96.213 50.257v88.021c58.752-13.355 112.171-40.401 157.227-77.265l87.125 87.121 54.315-54.315-384-384zM810.641 511.915c0 40.068-8.704 77.824-22.997 112.73l64.597 64.597c27.733-53.082 43.733-113.284 43.733-177.327 0-182.74-127.701-335.357-298.667-374.185v88.065c123.349 36.693 213.333 150.87 213.333 286.121zM703.974 511.915c0-75.345-43.52-140.37-106.667-171.86v94.296l104.704 104.7c1.28-8.875 1.963-17.916 1.963-27.136z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "volume-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2500,
+            "id": 62,
+            "prevSize": 24,
+            "code": 60106,
+            "name": "volume-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1226
+    }, {
+        "icon": {
+            "paths": [
+                "M128 384.001l170.666 0.001 213.334-213.334v682.666l-213.334-213.333h-170.667l0.001-255.999zM895.996 512.004c0 182.746-127.654 335.68-298.662 374.481v-88.183c123.366-36.719 213.329-151.002 213.329-286.298s-89.963-249.58-213.329-286.298v-88.189c171.008 38.804 298.662 191.736 298.662 374.487zM725.333 512c0 87.479-52.655 162.662-128 195.584v-391.166c75.345 32.919 128 108.102 128 195.582z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "volume"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2501,
+            "id": 61,
+            "prevSize": 24,
+            "code": 60107,
+            "name": "volume"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1227
+    }, {
+        "icon": {
+            "paths": [
+                "M384 213.333h256l-128 128-128-128zM448.704 625.434c-13.696 15.138-22.037 35.213-22.037 57.233 0 47.13 38.204 85.333 85.333 85.333s85.333-38.204 85.333-85.333c0-23.565-9.553-44.898-24.994-60.339l60.339-60.339c30.886 30.882 49.988 73.549 49.988 120.678 0 94.255-76.412 170.667-170.667 170.667-94.257 0-170.667-76.412-170.667-170.667 0-45.521 17.823-86.882 46.871-117.483l-0.184-0.183 301.84-301.555c30.895-30.958 73.613-50.112 120.806-50.112 94.255 0 170.667 76.41 170.667 170.667 0 94.255-76.412 170.667-170.667 170.667-47.13 0-89.796-19.102-120.678-49.988l60.339-60.339c15.441 15.441 36.774 24.994 60.339 24.994 47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333c-23.565 0-44.898 9.551-60.339 24.993l-301.623 301.773zM273.673 323.66c-15.442-15.442-36.776-24.993-60.34-24.993-47.128 0-85.333 38.205-85.333 85.333 0 47.13 38.205 85.333 85.333 85.333 23.564 0 44.898-9.553 60.34-24.994l60.34 60.339c-30.885 30.886-73.551 49.988-120.68 49.988-94.257 0-170.667-76.412-170.667-170.667 0-94.257 76.41-170.667 170.667-170.667 47.192 0 89.91 19.154 120.804 50.112l0.143-0.144 117.619 117.62-60.512 60.512-117.714-117.774z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "vpn"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2502,
+            "id": 60,
+            "prevSize": 24,
+            "code": 60108,
+            "name": "vpn"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1228
+    }, {
+        "icon": {
+            "paths": [
+                "M602.334 426.584h208.299v-76.8h-154.539l-85.333-142.122c-12.629-21.291-35.84-35.542-62.379-35.542-7.296 0-14.336 1.067-20.949 3.072l-231.467 72.192v221.868h76.8v-156.46l89.899-28.032-166.699 653.826h76.8l122.411-345.941 99.456 132.608v213.333h76.8v-273.323l-106.197-193.707 31.275-122.369zM597.299 162.051c42.325 0 76.8-34.432 76.8-76.757 0-42.496-34.475-76.843-76.8-76.843-42.453 0-76.8 34.347-76.8 76.843 0 42.325 34.347 76.757 76.8 76.757z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "walk"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2503,
+            "id": 59,
+            "prevSize": 24,
+            "code": 60109,
+            "name": "walk"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1229
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 597.333h-682.667v-256h216.747l-88.747 120.747 69.12 49.92 144.213-196.267 144.213 196.267 69.12-49.92-88.747-120.747h216.747zM853.333 810.667h-682.667v-85.333h682.667zM384 170.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM640 170.667c23.467 0 42.667 19.2 42.667 42.667s-19.2 42.667-42.667 42.667c-23.467 0-42.667-19.2-42.667-42.667s19.2-42.667 42.667-42.667zM853.333 256h-93.013c4.693-13.227 7.68-27.733 7.68-42.667 0-70.827-57.173-128-128-128-44.8 0-83.627 23.040-106.667 57.6l-21.333 28.587-21.333-29.013c-23.040-34.133-61.867-57.173-106.667-57.173-70.827 0-128 57.173-128 128 0 14.933 2.987 29.44 7.68 42.667h-93.013c-47.36 0-84.907 37.973-84.907 85.333l-0.427 469.333c0 47.36 37.973 85.333 85.333 85.333h682.667c47.36 0 85.333-37.973 85.333-85.333v-469.333c0-47.36-37.973-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "wallet-giftcard"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2504,
+            "id": 58,
+            "prevSize": 24,
+            "code": 60110,
+            "name": "wallet-giftcard"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1230
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 426.667h-682.667v-256h682.667zM853.333 640h-682.667v-85.333h682.667zM853.333 85.333h-682.667c-47.36 0-85.333 37.973-85.333 85.333v469.333c0 47.36 37.973 85.333 85.333 85.333h170.667v213.333l170.667-85.333 170.667 85.333v-213.333h170.667c47.36 0 85.333-37.973 85.333-85.333v-469.333c0-47.36-37.973-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "wallet-membership"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2505,
+            "id": 57,
+            "prevSize": 24,
+            "code": 60111,
+            "name": "wallet-membership"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1231
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 597.333h-682.667v-256h128v85.333h85.333v-85.333h256v85.333h85.333v-85.333h128zM853.333 810.667h-682.667v-85.333h682.667zM384 170.667h256v85.333h-256zM853.333 256h-128v-85.333c0-47.36-37.973-85.333-85.333-85.333h-256c-47.36 0-85.333 37.973-85.333 85.333v85.333h-128c-47.36 0-85.333 37.973-85.333 85.333v469.333c0 47.36 37.973 85.333 85.333 85.333h682.667c47.36 0 85.333-37.973 85.333-85.333v-469.333c0-47.36-37.973-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "wallet-travel"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2506,
+            "id": 56,
+            "prevSize": 24,
+            "code": 60112,
+            "name": "wallet-travel"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1232
+    }, {
+        "icon": {
+            "paths": [
+                "M422.152 472.725c-5.709-49.972-21.317-98.428-47.78-141.146-12.74-20.333-13.527-45.699-6.272-65.047 3.515-9.674 8.69-18.898 17.239-27.898 8.69-9.225 18.364-14.174 27.251-17.689 8.802-3.628 15.045-5.062 27.363-5.062 14.707 0 29.218 4.612 41.284 12.543l18.786 17.464 4.723 6.693c47.36 78.321 72.418 168.286 72.418 260.245l-1.097 32.849c-5.175 80.627-29.781 158.835-71.629 227.934-13.948 22.976-38.443 36.698-65.271 36.698l-22.078-3.401-17.464-7.676c-21.429-12.966-34.057-34.957-36.25-58.133-1.322-13.722 1.097-27.785 7.481-40.747l3.178-5.935c33.184-54.473 50.649-117.329 50.649-181.589l-2.531-40.102zM869.47 336.416c13.077 57.005 19.883 116.879 19.883 176.411 0 60.326-6.805 119.296-19.883 176.529l-11.644 45.052c-14.059 50.761-30.204 90.074-46.148 120.055-13.948 25.395-41.058 41.536-70.195 41.536-11.951 0-23.398-2.53-34.253-7.676-23.62-11.337-38.473-31.979-43.618-54.618l-2.082-18.56c0-17.237 7.031-32.085 7.565-33.408 39.881-84.369 60.1-174.754 60.1-268.911 0-94.040-20.109-184.651-60.745-270.341-18.897-39.765-1.997-87.77 37.879-106.669 10.884-5.175 22.413-7.818 34.283-7.818 30.767 0 59.226 17.914 72.388 45.699 24.721 51.858 43.729 106.556 56.469 162.717zM687.893 405.020c6.076 35.364 9.101 71.328 9.101 107.808 0 84.672-16.35 166.293-48.644 243.234-3.669-64.418-18.961-126.178-44.318-182.647l2.871-30.289 1.097-32.845c0-88.544-23.228-175.236-67.23-251.467 56.636 41.334 106.923 91.304 147.123 146.206zM169.696 447.023c-35.153-18.897-48.427-62.714-29.641-97.979 12.739-23.623 37.122-38.247 64.035-38.247 11.756 0 23.511 2.981 34.057 8.577 54.841 29.361 104.655 68.847 144.705 114.162l6.365 38.093 2.531 40.102c0 61.308-15.895 121.335-46.172 174.025-21.159-102.933-84.546-189.901-175.879-238.733z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "wallet"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2507,
+            "id": 55,
+            "prevSize": 24,
+            "code": 60113,
+            "name": "wallet"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1233
+    }, {
+        "icon": {
+            "paths": [
+                "M632.678 476.655c66.65 66.65 66.65 174.707 0 241.357s-174.707 66.65-241.358 0l241.358-241.357zM256 85.334h512c47.13 0 85.333 38.205 85.333 85.333v682.667c0 47.13-38.204 85.333-85.333 85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-682.667c0-47.128 38.205-85.333 85.333-85.333zM298.667 170.667c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.564 0 42.667-19.103 42.667-42.667s-19.103-42.667-42.667-42.667zM426.667 170.667c-23.564 0-42.667 19.102-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.103 42.667-42.667s-19.102-42.667-42.667-42.667zM512 341.333c-141.385 0-256 114.615-256 256s114.615 256 256 256c141.385 0 256-114.615 256-256s-114.615-256-256-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "washing-machine"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2508,
+            "id": 54,
+            "prevSize": 24,
+            "code": 60114,
+            "name": "washing-machine"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1234
+    }, {
+        "icon": {
+            "paths": [
+                "M597.346 469.372h213.777l-106.884-106.887 60.339-60.34 209.89 209.893-209.89 209.899-60.339-60.339 106.884-106.893h-213.777v-85.333zM512 768c-141.354 0-256-114.603-256-256s114.646-256 256-256c59.831 0 114.863 20.518 158.447 54.903l60.442-60.443-7.518-6.109-40.704-244.352h-341.333l-40.746 244.352c-79.063 62.506-129.92 159.061-129.92 267.648s50.858 205.141 129.92 267.648l40.746 244.352h341.333l40.704-244.352 7.471-6.071-60.442-60.442c-43.575 34.359-98.59 54.865-158.4 54.865z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "watch-export"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2509,
+            "id": 53,
+            "prevSize": 24,
+            "code": 60115,
+            "name": "watch-export"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1235
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 469.333h213.778l-106.886-106.889 60.34-60.34 209.891 209.895-209.89 209.894-60.34-60.339 106.886-106.889h-213.778v-85.333zM511.974 767.957c141.355 0 256-114.598 256-256 0-141.396-114.645-255.998-256-255.998-59.831 0-114.863 20.519-158.445 54.903l-60.443-60.443 7.516-6.109 40.705-244.352h341.334l40.747 244.352c79.061 62.506 129.92 159.061 129.92 267.646 0 108.587-50.859 205.146-129.92 267.652l-40.747 244.348h-341.334l-40.705-244.348-7.472-6.071 60.444-60.446c43.575 34.364 98.589 54.865 158.4 54.865z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "watch-import"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2510,
+            "id": 52,
+            "prevSize": 24,
+            "code": 60116,
+            "name": "watch-import"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1236
+    }, {
+        "icon": {
+            "paths": [
+                "M255.974 511.957c0-141.395 114.603-255.998 256-255.998 141.355 0 256 114.603 256 255.998 0 141.397-114.645 256-256 256-141.398 0-256-114.603-256-256zM853.308 511.957c0-108.585-50.859-205.14-129.92-267.647l-40.747-244.351h-341.334l-40.704 244.351c-79.104 62.465-129.962 159.061-129.962 267.647 0 108.591 50.858 205.184 129.962 267.652l40.704 244.348h341.334l40.747-244.348c79.061-62.507 129.92-159.061 129.92-267.652z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "watch"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2511,
+            "id": 51,
+            "prevSize": 24,
+            "code": 60117,
+            "name": "watch"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1237
+    }, {
+        "icon": {
+            "paths": [
+                "M730.453 730.453l-505.6-505.6-54.187 54.613 141.653 141.654c-32.853 61.866-56.32 124.586-56.32 176.213 0 141.227 114.773 256 256 256 64.853 0 123.733-24.32 168.96-64l112.205 112.213 54.195-54.187-116.907-116.907zM768 597.333c0-170.667-256-460.8-256-460.8s-56.747 64.427-116.48 150.187l366.507 366.507c3.84-17.92 5.973-36.693 5.973-55.893z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "water-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2512,
+            "id": 50,
+            "prevSize": 24,
+            "code": 60118,
+            "name": "water-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1238
+    }, {
+        "icon": {
+            "paths": [
+                "M810.667 618.667c0 0 85.333 92.459 85.333 149.333 0 47.104-38.229 85.333-85.333 85.333s-85.333-38.229-85.333-85.333c0-56.875 85.333-149.333 85.333-149.333zM213.333 768v-384c-47.128 0-85.333-38.205-85.333-85.333s38.205-85.333 85.333-85.333l0-42.667c0-47.128 38.205-85.333 85.333-85.333l85.334 0c47.129 0 85.333 38.205 85.333 85.333v42.667h341.333c47.13 0 85.333 38.205 85.333 85.333v170.666c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-170.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667v-85.333l-256 0v384h42.667c47.13 0 85.333 38.204 85.333 85.333v85.333h-512v-85.333c0-47.13 38.205-85.333 85.333-85.333h42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "water-pump"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2513,
+            "id": 49,
+            "prevSize": 24,
+            "code": 60119,
+            "name": "water-pump"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1239
+    }, {
+        "icon": {
+            "paths": [
+                "M512 853.333c-141.227 0-256-114.773-256-256 0-170.667 256-458.667 256-458.667s256 288 256 458.667c0 141.227-114.773 256-256 256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "water"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2514,
+            "id": 48,
+            "prevSize": 24,
+            "code": 60120,
+            "name": "water"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1240
+    }, {
+        "icon": {
+            "paths": [
+                "M256 810.667c-117.821 0-213.333-95.514-213.333-213.333 0-117.794 95.47-213.291 213.255-213.333 41.795-100.222 140.71-170.667 256.078-170.667 146.466 0 266.415 113.542 276.629 257.408l22.037-1.408c94.255 0 170.667 76.412 170.667 170.667s-76.412 170.667-170.667 170.667h-554.667zM810.667 554.667h-85.333v-42.667c0-117.821-95.514-213.333-213.333-213.333-106.119 0-194.141 77.482-210.579 178.961-14.116-5.359-29.426-8.294-45.421-8.294-70.692 0-128 57.306-128 128s57.308 128 128 128h554.667c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-cloudy"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2515,
+            "id": 47,
+            "prevSize": 24,
+            "code": 60121,
+            "name": "weather-cloudy"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1241
+    }, {
+        "icon": {
+            "paths": [
+                "M128 640h426.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-426.667c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667zM682.667 640h213.333c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-213.333c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667zM42.667 512c0-117.795 95.471-213.291 213.255-213.333 41.795-100.222 140.71-170.666 256.078-170.666 146.466 0 266.415 113.542 276.629 257.41l22.037-1.41c93.559 0 169.536 75.285 170.641 170.667h-85.308c0-47.13-38.204-85.333-85.333-85.333h-85.333v-42.667c0-117.821-95.514-213.333-213.333-213.333-106.119 0-194.141 77.482-210.579 178.96-14.116-5.359-29.426-8.293-45.421-8.293-70.692 0-128 57.309-128 128 0 14.959 2.567 29.321 7.284 42.667h-88.349l-4.268-42.667zM128 810.667h85.333c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667h-85.333c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667zM341.333 810.667h554.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-554.667c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-fog"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2516,
+            "id": 46,
+            "prevSize": 24,
+            "code": 60122,
+            "name": "weather-fog"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1242
+    }, {
+        "icon": {
+            "paths": [
+                "M256 597.333c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667c-117.821 0-213.333-95.514-213.333-213.333 0-117.795 95.47-213.291 213.255-213.333 41.795-100.222 140.71-170.666 256.078-170.666 146.466 0 266.415 113.542 276.629 257.409l22.037-1.41c94.255 0 170.667 76.41 170.667 170.667 0 94.255-76.412 170.667-170.667 170.667h-42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h42.667c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333h-85.333v-42.667c0-117.821-95.514-213.333-213.333-213.333-106.119 0-194.141 77.483-210.579 178.96-14.116-5.359-29.426-8.293-45.421-8.293-70.692 0-128 57.308-128 128 0 70.694 57.308 128 128 128zM426.667 768c47.13 0 85.333 38.204 85.333 85.333s-38.204 85.333-85.333 85.333c-47.128 0-85.333-38.204-85.333-85.333s38.205-85.333 85.333-85.333zM618.667 682.667c35.345 0 64 28.655 64 64s-28.655 64-64 64c-35.345 0-64-28.655-64-64s28.655-64 64-64zM448 512c35.345 0 64 28.655 64 64s-28.655 64-64 64c-35.346 0-64-28.655-64-64s28.654-64 64-64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-hail"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2517,
+            "id": 45,
+            "prevSize": 24,
+            "code": 60123,
+            "name": "weather-hail"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1243
+    }, {
+        "icon": {
+            "paths": [
+                "M256 682.667c-117.821 0-213.333-95.514-213.333-213.333 0-117.795 95.47-213.291 213.255-213.333 41.795-100.222 140.71-170.666 256.078-170.666 146.466 0 266.415 113.542 276.629 257.409l22.037-1.41c94.255 0 170.667 76.41 170.667 170.667 0 94.255-76.412 170.667-170.667 170.667h-42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h42.667c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333h-85.333v-42.667c0-117.821-95.514-213.333-213.333-213.333-106.119 0-194.141 77.483-210.579 178.96-14.116-5.359-29.426-8.293-45.421-8.293-70.692 0-128 57.308-128 128 0 70.694 57.308 128 128 128h42.667c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667h-42.667zM512 469.333h128l-85.333 170.667h85.333l-160 298.667 32-213.333h-106.667l106.667-256z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-lightning"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2518,
+            "id": 44,
+            "prevSize": 24,
+            "code": 60124,
+            "name": "weather-lightning"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1244
+    }, {
+        "icon": {
+            "paths": [
+                "M757.474 174.514l-108.066 82.815 38.75 130.518-112.158-77.185-112.158 77.185 38.75-130.518-108.064-82.815 136.105-3.48 45.367-128.367 45.367 128.367 136.107 3.48zM906.667 469.248l-69.871 53.547 25.054 84.386-72.516-49.903-72.516 49.903 25.054-84.386-69.871-53.547 88-2.249 29.333-82.999 29.333 82.999 88 2.249zM809.421 680.324c35.418-3.371 73.502 47.053 50.637 79.104-13.581 19.038-28.911 37.214-45.999 54.298-166.622 166.622-436.772 166.622-603.396 0-166.624-166.626-166.624-436.776 0-603.399 17.084-17.084 35.256-32.416 54.294-45.997 32.053-22.866 82.475 15.22 79.108 50.638-11.625 122.3 29.389 248.657 123.041 342.315 93.653 93.653 220.015 134.665 342.315 123.042zM739.584 766.75c-121.131-6.882-240.277-56.593-332.817-149.129-92.539-92.54-142.25-211.689-149.132-332.817-119.772 134.028-115.316 339.895 13.367 468.578 128.683 128.687 334.552 133.141 468.581 13.367z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-night"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2519,
+            "id": 43,
+            "prevSize": 24,
+            "code": 60125,
+            "name": "weather-night"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1245
+    }, {
+        "icon": {
+            "paths": [
+                "M543.62 233.469c100.599 44.789 154.163 151.662 135.663 255.406 54.332 46.946 88.717 116.352 88.717 193.792l-0.102 7.322c13.376-4.74 27.772-7.322 42.769-7.322 70.694 0 128 57.306 128 128s-57.306 128-128 128h-554.667c-94.257 0-170.667-76.412-170.667-170.667s76.41-170.667 170.667-170.667l11.612 0.482c-55.166-66.526-71.348-161.118-33.817-245.416 52.714-118.398 191.428-171.645 309.825-118.931zM508.915 311.425c-75.345-33.545-163.619 0.339-197.164 75.683-19.404 43.582-16.247 91.492 4.448 130.63 46.96-55.693 117.248-91.072 195.801-91.072 29.943 0 58.688 5.141 85.393 14.588-2.458-54.714-35.042-106.037-88.478-129.83zM578.33 155.513c-23.334-10.388-47.245-17.759-71.296-22.28l106.005-55.676 38.686 123.27c-21.798-17.941-46.349-33.273-73.395-45.314zM259.798 189.439c-20.663 15.012-39.001 32.034-54.942 50.604l4.785-119.64 126.098 28.132c-26.436 9.907-51.99 23.503-75.941 40.905zM766.976 414.407c-2.671-25.401-8.243-49.794-16.354-72.884l101.222 63.964-87.415 95.138c4.642-27.849 5.641-56.777 2.547-86.218zM129.912 482.257c2.67 25.404 8.242 49.796 16.353 72.883l-101.219-63.962 87.412-95.139c-4.639 27.848-5.64 56.777-2.546 86.217zM810.667 768h-128v-85.333c0-94.255-76.412-170.667-170.667-170.667-94.257 0-170.667 76.412-170.667 170.667h-85.333c-47.128 0-85.333 38.204-85.333 85.333s38.205 85.333 85.333 85.333h554.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-partlycloudy"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2520,
+            "id": 42,
+            "prevSize": 24,
+            "code": 60126,
+            "name": "weather-partlycloudy"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1246
+    }, {
+        "icon": {
+            "paths": [
+                "M384 512c22.761 6.097 36.269 29.495 30.17 52.254l-55.215 206.067c-6.099 22.758-29.495 36.267-52.256 30.17-22.761-6.101-36.268-29.495-30.17-52.258l55.215-206.063c6.099-22.763 29.495-36.271 52.256-30.17zM554.667 512c22.758 6.101 36.267 29.495 30.17 52.258l-88.346 329.702c-6.097 22.758-29.495 36.267-52.254 30.17-22.763-6.101-36.27-29.495-30.171-52.258l88.343-329.702c6.101-22.758 29.495-36.267 52.258-30.17zM725.333 512c22.763 6.097 36.271 29.495 30.17 52.258l-55.215 206.063c-6.097 22.758-29.495 36.267-52.254 30.17-22.763-6.101-36.271-29.495-30.17-52.258l55.215-206.063c6.097-22.763 29.491-36.267 52.254-30.17zM725.333 426.667v-42.667c0-117.821-95.514-213.333-213.333-213.333-106.119 0-194.141 77.483-210.579 178.96-14.116-5.359-29.426-8.293-45.421-8.293-70.692 0-128 57.308-128 128 0 47.343 25.703 88.683 63.916 110.827l0.163-0.282c20.407 11.78 27.399 37.875 15.617 58.283-11.768 20.382-37.814 27.383-58.211 15.659l-0.171 0.294c-63.756-36.885-106.649-105.826-106.649-184.781 0-117.795 95.47-213.291 213.255-213.333 41.795-100.222 140.71-170.666 256.079-170.666 146.466 0 266.415 113.542 276.629 257.409l22.037-1.41c94.255 0 170.667 76.41 170.667 170.667 0 63.164-34.317 118.315-85.321 147.827l-0.166-0.29c-20.395 11.725-46.447 4.727-58.214-15.659-11.78-20.407-4.791-46.502 15.616-58.283l0.162 0.277c25.463-14.767 42.59-42.317 42.59-73.873 0-47.13-38.204-85.333-85.333-85.333h-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-pouring"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2521,
+            "id": 41,
+            "prevSize": 24,
+            "code": 60127,
+            "name": "weather-pouring"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1247
+    }, {
+        "icon": {
+            "paths": [
+                "M256 597.333c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667c-117.821 0-213.333-95.514-213.333-213.333 0-117.795 95.47-213.291 213.255-213.333 41.795-100.222 140.71-170.666 256.078-170.666 146.466 0 266.415 113.542 276.629 257.409l22.037-1.41c94.255 0 170.667 76.41 170.667 170.667 0 94.255-76.412 170.667-170.667 170.667h-42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h42.667c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333h-85.333v-42.667c0-117.821-95.514-213.333-213.333-213.333-106.119 0-194.141 77.483-210.579 178.96-14.116-5.359-29.426-8.293-45.421-8.293-70.692 0-128 57.308-128 128 0 70.694 57.308 128 128 128zM632.683 668.646c66.645 66.645 66.645 164.058 0 230.703-33.301 33.323-76.996 39.317-120.687 39.317s-87.36-5.995-120.661-39.317c-66.668-66.645-66.668-164.036 0-230.703l120.687-199.334 120.661 199.334zM572.339 712.192l-60.331-104.196-60.343 104.196c-33.335 34.846-33.335 85.751 0 120.585 16.649 17.421 38.485 20.553 60.331 20.553s43.691-3.132 60.343-20.553c33.323-34.833 33.323-85.751 0-120.585z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-rainy"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2522,
+            "id": 40,
+            "prevSize": 24,
+            "code": 60128,
+            "name": "weather-rainy"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1248
+    }, {
+        "icon": {
+            "paths": [
+                "M256 597.333c23.564 0 42.667 19.102 42.667 42.667s-19.103 42.667-42.667 42.667c-117.821 0-213.333-95.514-213.333-213.333 0-117.795 95.47-213.291 213.255-213.333 41.795-100.222 140.71-170.666 256.078-170.666 146.466 0 266.415 113.542 276.629 257.409l22.037-1.41c94.255 0 170.667 76.41 170.667 170.667 0 94.255-76.412 170.667-170.667 170.667h-42.667c-23.565 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h42.667c47.13 0 85.333-38.204 85.333-85.333s-38.204-85.333-85.333-85.333h-85.333v-42.667c0-117.821-95.514-213.333-213.333-213.333-106.119 0-194.141 77.483-210.579 178.96-14.116-5.359-29.426-8.293-45.421-8.293-70.692 0-128 57.308-128 128 0 70.694 57.308 128 128 128zM336.106 770.961l93.471-25.045-68.426-68.425c-16.662-16.661-16.662-43.678 0-60.339 16.662-16.666 43.677-16.666 60.34 0l68.425 68.42 25.041-93.466c6.101-22.763 29.495-36.271 52.258-30.17 22.763 6.097 36.267 29.495 30.17 52.254l-25.045 93.47 93.47-25.045c22.758-6.097 46.157 7.407 52.254 30.17 6.101 22.763-7.407 46.157-30.17 52.258l-93.466 25.041 68.42 68.425c16.666 16.661 16.666 43.678 0 60.339-16.661 16.666-43.678 16.666-60.339 0l-68.425-68.425-25.045 93.47c-6.097 22.763-29.491 36.271-52.254 30.17-22.763-6.097-36.269-29.495-30.17-52.254l25.046-93.47-93.469 25.045c-22.761 6.097-46.157-7.407-52.256-30.17s7.409-46.157 30.17-52.254z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-snowy"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2523,
+            "id": 39,
+            "prevSize": 24,
+            "code": 60129,
+            "name": "weather-snowy"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1249
+    }, {
+        "icon": {
+            "paths": [
+                "M512 298.667c117.82 0 213.333 95.513 213.333 213.333s-95.514 213.333-213.333 213.333c-117.821 0-213.333-95.514-213.333-213.333s95.512-213.333 213.333-213.333zM512 384c-70.694 0-128 57.309-128 128 0 70.694 57.306 128 128 128 70.69 0 128-57.306 128-128 0-70.69-57.31-128-128-128zM512 85.334l102.148 145.924c-31.872-11.598-66.27-17.924-102.148-17.924s-70.281 6.326-102.147 17.924l102.147-145.924zM142.718 299.052l177.448-15.5c-25.978 21.8-48.657 48.428-66.596 79.5s-29.661 64.025-35.551 97.424l-75.301-161.424zM143.162 725.717l75.3-161.421c5.89 33.395 17.612 66.351 35.551 97.421 17.939 31.074 40.618 57.702 66.596 79.501l-177.447-15.501zM880.896 298.83l-75.298 161.424c-5.892-33.399-17.613-66.353-35.554-97.424-17.937-31.071-40.614-57.7-66.594-79.5l177.446 15.5zM880.452 725.052l-177.446 15.501c25.975-21.803 48.657-48.431 66.594-79.501 17.941-31.070 29.662-64.026 35.55-97.425l75.302 161.425zM511.113 937.779l-102.149-145.924c31.868 11.597 66.27 17.924 102.149 17.924s70.276-6.327 102.144-17.924l-102.144 145.924z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-sunny"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2524,
+            "id": 38,
+            "prevSize": 24,
+            "code": 60130,
+            "name": "weather-sunny"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1250
+    }, {
+        "icon": {
+            "paths": [
+                "M128 512h170.667c0-117.822 95.513-213.335 213.333-213.335s213.333 95.513 213.333 213.335h170.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-768c-23.564 0-42.666-19.102-42.666-42.667s19.102-42.667 42.666-42.667zM640 512c0-70.694-57.31-128.001-128-128.001-70.694 0-128 57.306-128 128.001h256zM512 85.333l102.148 145.923c-31.872-11.598-66.27-17.924-102.148-17.924s-70.281 6.327-102.147 17.924l102.147-145.923zM142.718 299.051l177.448-15.5c-25.978 21.8-48.657 48.428-66.597 79.5s-29.66 64.026-35.55 97.425l-75.301-161.425zM880.896 298.828l-75.298 161.425c-5.892-33.399-17.613-66.354-35.554-97.425-17.937-31.071-40.614-57.7-66.594-79.5l177.446 15.5zM542.391 883.503l132.745-132.745c16.666-16.666 16.666-43.678 0-60.343-16.661-16.661-43.674-16.661-60.339 0l-102.814 102.814-102.811-102.814c-16.662-16.661-43.677-16.661-60.34 0-16.663 16.666-16.663 43.678 0 60.343l132.747 132.745c8.397 8.397 19.418 12.561 30.421 12.497 10.991 0.055 22.003-4.109 30.391-12.497z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-sunset-down"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2525,
+            "id": 37,
+            "prevSize": 24,
+            "code": 60131,
+            "name": "weather-sunset-down"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1251
+    }, {
+        "icon": {
+            "paths": [
+                "M128 512h170.667c0-117.821 95.512-213.333 213.333-213.333 117.82 0 213.333 95.513 213.333 213.333h170.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-768c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667zM640 512c0-70.69-57.31-128-128-128-70.694 0-128 57.309-128 128h256zM512 85.335l102.148 145.923c-31.872-11.598-66.27-17.924-102.148-17.924s-70.281 6.326-102.147 17.924l102.147-145.923zM142.718 299.052l177.447-15.5c-25.978 21.8-48.657 48.428-66.596 79.5s-29.66 64.029-35.55 97.424l-75.301-161.424zM880.896 298.83l-75.298 161.424c-5.892-33.399-17.613-66.353-35.554-97.424-17.937-31.072-40.619-57.7-66.594-79.5l177.446 15.5zM542.404 695.262l132.749 132.749c16.661 16.661 16.661 43.674 0 60.339-16.661 16.661-43.678 16.661-60.339 0l-102.814-102.814-102.813 102.814c-16.662 16.661-43.677 16.661-60.34 0-16.662-16.666-16.663-43.678 0-60.339l132.749-132.749c8.393-8.397 19.418-12.561 30.421-12.497 10.991-0.055 22.003 4.109 30.387 12.497z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-sunset-up"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2526,
+            "id": 36,
+            "prevSize": 24,
+            "code": 60132,
+            "name": "weather-sunset-up"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1252
+    }, {
+        "icon": {
+            "paths": [
+                "M128 512h170.667c0-117.821 95.512-213.333 213.333-213.333 117.82 0 213.333 95.513 213.333 213.333h170.667c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-768c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667zM213.333 682.667h597.333c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-597.333c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667zM725.333 853.333c23.565 0 42.667 19.102 42.667 42.667s-19.102 42.667-42.667 42.667h-426.667c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h426.667zM640 512c0-70.69-57.31-128-128-128-70.694 0-128 57.309-128 128h256zM512 85.334l102.148 145.924c-31.872-11.598-66.27-17.924-102.148-17.924s-70.281 6.326-102.147 17.924l102.147-145.924zM142.718 299.052l177.447-15.5c-25.978 21.8-48.657 48.428-66.596 79.5s-29.66 64.024-35.55 97.424l-75.301-161.424zM880.896 298.83l-75.298 161.424c-5.892-33.399-17.613-66.353-35.554-97.424-17.937-31.071-40.614-57.7-66.594-79.5l177.446 15.5z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-sunset"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2527,
+            "id": 35,
+            "prevSize": 24,
+            "code": 60133,
+            "name": "weather-sunset"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1253
+    }, {
+        "icon": {
+            "paths": [
+                "M256 256l29.465 2.534c27.011-99.79 118.2-173.201 226.535-173.201 129.604 0 234.667 105.064 234.667 234.666l-3.49 40.552c19.593-12.182 42.718-19.218 67.49-19.218 70.694 0 128 57.308 128 128 0 70.694-57.306 128-128 128h-554.667c-94.257 0-170.667-76.412-170.667-170.667 0-94.257 76.41-170.667 170.667-170.667zM256 341.334c-47.128 0-85.333 38.205-85.333 85.332 0 47.13 38.205 85.333 85.333 85.333h554.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667h-149.333v-106.666c0-82.474-66.859-149.333-149.333-149.333s-149.334 66.859-149.334 149.333l0 21.333-106.667 0zM768 768h-597.333c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h597.333c70.69 0 128 57.306 128 128s-57.31 128-128 128c-35.345 0-67.345-14.327-90.509-37.491-16.661-16.661-16.666-43.678 0-60.339 16.661-16.661 43.678-16.661 60.339 0 7.718 7.723 18.385 12.497 30.17 12.497 23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-windy-variant"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2528,
+            "id": 34,
+            "prevSize": 24,
+            "code": 60134,
+            "name": "weather-windy-variant"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1254
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 426.667c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667h341.333c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333c-23.565 0-44.898 9.551-60.339 24.993-16.661 16.663-43.678 16.663-60.34 0s-16.663-43.677 0-60.34c30.885-30.884 73.55-49.987 120.68-49.987 94.255 0 170.667 76.41 170.667 170.666s-76.412 170.667-170.667 170.667h-341.333zM810.667 512c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667c-11.785 0-22.451 4.774-30.17 12.497-16.661 16.661-43.678 16.661-60.339 0-16.666-16.663-16.661-43.678 0-60.34 23.164-23.163 55.164-37.49 90.509-37.49 70.69 0 128 57.308 128 128 0 70.694-57.31 128-128 128h-597.333c-23.564 0-42.667-19.102-42.667-42.667s19.103-42.667 42.667-42.667h597.333zM768 768h-597.333c-23.564 0-42.667-19.102-42.667-42.667s19.102-42.667 42.667-42.667h597.333c70.69 0 128 57.306 128 128s-57.31 128-128 128c-35.345 0-67.345-14.327-90.509-37.491-16.661-16.661-16.666-43.678 0-60.339 16.661-16.661 43.678-16.661 60.339 0 7.718 7.723 18.385 12.497 30.17 12.497 23.565 0 42.667-19.102 42.667-42.667s-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weather-windy"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2529,
+            "id": 33,
+            "prevSize": 24,
+            "code": 60135,
+            "name": "weather-windy"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1255
+    }, {
+        "icon": {
+            "paths": [
+                "M698.057 597.248c3.499-28.028 5.931-56.358 5.931-85.333 0-28.971-2.432-57.301-5.931-85.331h144.043c7.083 27.309 11.221 55.806 11.221 85.331 0 29.53-4.139 58.027-11.221 85.333zM622.622 834.517c25.6-47.488 45.056-98.603 58.837-151.936h125.824c-40.917 70.571-106.283 125.013-184.661 151.936zM611.785 597.248h-199.637c-4.053-27.947-6.827-56.273-6.827-85.333 0-29.056 2.774-57.382 6.827-85.331h199.637c4.053 27.949 6.869 56.275 6.869 85.331 0 29.060-2.816 57.387-6.869 85.333zM511.902 851.712c-35.499-51.2-63.232-108.070-81.451-169.131h163.029c-18.261 61.060-45.995 117.931-81.579 169.131zM342.43 341.25h-125.824c40.875-70.656 106.24-125.185 184.661-152.021-25.6 47.487-45.056 98.601-58.837 152.021zM216.605 682.581h125.824c13.781 53.376 33.237 104.538 58.837 152.021-78.422-26.833-143.786-81.361-184.661-152.021zM181.789 597.248c-7.039-27.307-11.136-55.804-11.136-85.333 0-29.525 4.096-58.022 11.136-85.331h144.086c-3.499 28.030-5.888 56.361-5.888 85.331 0 28.975 2.389 57.306 5.888 85.333zM511.902 172.12c35.584 51.2 63.317 108.073 81.579 169.13h-163.029c18.219-61.057 45.952-117.93 81.451-169.13zM807.283 341.25h-125.824c-13.781-53.333-33.237-104.448-58.837-151.935 78.379 26.922 143.744 81.365 184.661 151.935zM511.731 85.25c-235.777 0-426.411 191.018-426.411 426.665 0 235.652 190.634 426.667 426.411 426.667 235.819 0 426.923-191.014 426.923-426.667 0-235.646-191.104-426.665-426.923-426.665z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "web"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2530,
+            "id": 32,
+            "prevSize": 24,
+            "code": 60136,
+            "name": "web"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1256
+    }, {
+        "icon": {
+            "paths": [
+                "M512 85.333c164.949 0 298.667 133.718 298.667 298.667s-133.717 298.667-298.667 298.667c-164.949 0-298.667-133.717-298.667-298.667s133.718-298.667 298.667-298.667zM512 170.668c-117.821 0-213.334 95.513-213.334 213.333 0 117.823 95.512 213.332 213.334 213.332 117.82 0 213.333-95.509 213.333-213.332 0-117.821-95.514-213.333-213.333-213.333zM512 256c70.69 0 128 57.308 128 128 0 70.694-57.31 128-128 128-70.694 0-128-57.306-128-128 0-70.692 57.306-128 128-128zM256 938.667c-47.128 0-85.333-38.204-85.333-85.333 0-16.081 4.449-31.125 12.184-43.968l77.949-134.921c67.336 58.291 155.15 93.555 251.201 93.555s183.863-35.264 251.2-93.555l77.948 134.921c7.735 12.843 12.186 27.887 12.186 43.968 0 47.13-38.204 85.333-85.333 85.333h-512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "webcam"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2531,
+            "id": 31,
+            "prevSize": 24,
+            "code": 60137,
+            "name": "webcam"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1257
+    }, {
+        "icon": {
+            "paths": [
+                "M512 128c94.255 0 170.667 76.41 170.667 170.666 0 31.086-8.311 60.231-22.831 85.334h108.164c40.631 0 74.628 28.397 83.23 66.428 85.922 341.815 87.437 350.852 87.437 360.239 0 47.13-38.204 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333 0-9.387 1.516-18.423 87.435-360.239 8.602-38.031 42.601-66.428 83.232-66.428h108.166c-14.521-25.103-22.832-54.248-22.832-85.334 0-94.256 76.41-170.666 170.667-170.666zM512 213.334c-47.13 0-85.334 38.205-85.334 85.333s38.204 85.333 85.334 85.333c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.333-85.333-85.333zM385.593 658.773l57.97 109.227h73.216l-87.095-142.622 80.213-115.883h-74.697l-56.889 101.948h-20.423v-101.948h-60.302v258.505h60.302v-109.227h27.705zM738.701 732.275v-95.347h-100.975v47.33h40.73v32.316l-14.933 5.632-25.967 2.103c-15.172 0-26.965-5.393-35.388-16.183-8.418-10.79-12.629-25.041-12.629-42.752v-53.589c0-17.259 4.267-31.339 12.8-42.24 8.533-10.906 19.797-16.358 33.792-16.358s24.397 3.435 31.206 10.3c6.805 6.865 11.217 17.084 13.227 30.66h56.375l0.341-1.079c-2.236-26.965-11.652-48.243-28.245-63.829s-41.54-23.381-74.837-23.381c-30.72 0-55.825 9.882-75.319 29.641s-29.244 45.188-29.244 76.288v53.931c0 31.364 9.984 56.858 29.952 76.484s45.956 29.44 77.969 29.44c25.259 0 46.238-3.964 62.946-11.887 16.708-7.927 29.44-17.088 38.199-27.477z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weight-kilogram"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2532,
+            "id": 30,
+            "prevSize": 24,
+            "code": 60138,
+            "name": "weight-kilogram"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1258
+    }, {
+        "icon": {
+            "paths": [
+                "M512 128c94.255 0 170.667 76.41 170.667 170.666 0 31.086-8.311 60.231-22.831 85.334h108.164c40.631 0 74.628 28.397 83.23 66.428 85.922 341.815 87.437 350.852 87.437 360.239 0 47.13-38.204 85.333-85.333 85.333h-682.667c-47.128 0-85.333-38.204-85.333-85.333 0-9.387 1.516-18.423 87.435-360.239 8.602-38.031 42.601-66.428 83.232-66.428h108.166c-14.521-25.103-22.832-54.248-22.832-85.334 0-94.256 76.41-170.666 170.667-170.666zM512 213.333c-47.13 0-85.333 38.205-85.333 85.334s38.204 85.333 85.333 85.333c47.13 0 85.333-38.205 85.333-85.333s-38.204-85.334-85.333-85.334z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "weight"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2533,
+            "id": 29,
+            "prevSize": 24,
+            "code": 60139,
+            "name": "weight"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1259
+    }, {
+        "icon": {
+            "paths": [
+                "M714.581 595.465c10.398 5.692 17.378 8.627 19.87 13.141 2.492 4.527 1.702 25.779-8.073 50.206-9.775 24.435-53.999 46.729-73.523 47.753-19.507 1.054-20.049 15.232-126.332-31.292-106.268-46.549-170.209-159.714-175.249-166.993-5.040-7.258-41.15-59.145-39.198-111.34 1.952-52.213 30.323-76.859 40.444-87.092 10.121-10.274 21.711-12.489 28.786-12.226l20.312 1.648c6.189 0.236 15.162-2.963 23.206 18.595l29.771 79.989c2.449 5.4 3.985 11.658 0.179 18.609l-11.273 17.3-16.614 17.993c-5.511 5.082-11.271 10.62-5.469 21.461 5.802 10.859 25.796 46.391 56.285 75.699 39.155 37.645 72.939 50.15 83.354 55.842 10.411 5.717 16.627 5.082 23.095-1.775l35.153-40.32c7.462-10.368 14.468-8.329 24.064-4.429l71.211 37.231zM512 85.333c235.639 0 426.667 191.025 426.667 426.667 0 235.644-191.027 426.667-426.667 426.667-83.959 0-162.258-24.252-228.268-66.133l-198.398 66.133 66.133-198.4c-41.881-66.010-66.133-144.307-66.133-228.267 0-235.642 191.025-426.667 426.667-426.667zM512 170.667c-188.513 0-341.333 152.82-341.333 341.333 0 73.284 23.095 141.175 62.403 196.787l-41.070 123.213 123.211-41.071c55.615 39.309 123.505 62.404 196.789 62.404 188.514 0 341.333-152.819 341.333-341.333 0-188.513-152.819-341.333-341.333-341.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "whatsapp"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2534,
+            "id": 28,
+            "prevSize": 24,
+            "code": 60140,
+            "name": "whatsapp"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1260
+    }, {
+        "icon": {
+            "paths": [
+                "M785.067 477.867l-174.933 8.533 98.133-110.933c8.533-12.8 12.8-34.133 8.533-55.467-4.267-12.8-8.533-25.6-21.333-34.133l-230.4-136.533c-17.067-12.8-42.667-8.533-59.733 4.267l-115.2 106.667c-21.333 21.333-25.6 51.2-4.267 72.533 17.067 21.333 51.2 21.333 72.533 4.267l85.333-76.8 81.067 46.933-179.2 183.467c-4.267 4.267-4.267 8.533-8.533 8.533-21.333 8.533-42.667 17.067-59.733 29.867l64 64c21.333-8.533 42.667-17.067 64-17.067 81.067 0 149.333 68.267 149.333 149.333 0 25.6-4.267 46.933-17.067 64l64 64c25.6-38.4 38.4-81.067 38.4-128 0-51.2-17.067-102.4-46.933-140.8l140.8-12.8-8.533 204.8c-4.267 29.867 17.067 51.2 46.933 55.467h4.267c25.6 0 46.933-21.333 51.2-46.933l8.533-251.733c0-12.8-4.267-29.867-12.8-38.4-12.8-12.8-25.6-17.067-38.4-17.067zM768 234.667c46.933 0 85.333-38.4 85.333-85.333s-38.4-85.333-85.333-85.333c-46.933 0-85.333 38.4-85.333 85.333s38.4 85.333 85.333 85.333zM533.333 921.6c-38.4 25.6-81.067 38.4-128 38.4-128 0-234.667-106.667-234.667-234.667 0-46.933 12.8-89.6 38.4-128l64 64c-8.533 21.333-17.067 42.667-17.067 64 0 81.067 68.267 149.333 149.333 149.333 25.6 0 46.933-4.267 64-17.067l64 64z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "wheelchair-accessibility"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2535,
+            "id": 27,
+            "prevSize": 24,
+            "code": 60141,
+            "name": "wheelchair-accessibility"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1261
+    }, {
+        "icon": {
+            "paths": [
+                "M439.454 682.586l-29.867-85.333h-136.533l-29.867 85.333h-81.067l136.533-384.001h85.333l136.533 384.001zM938.654 298.584l-51.371 268.46-63.829-268.46h-68.267l-63.573 268.46-51.627-268.46h-32.469c-62.549-77.952-158.464-128-266.197-128-188.501 0-341.333 152.789-341.333 341.335 0 188.544 152.832 341.333 341.333 341.333 133.717 0 249.173-77.099 305.207-189.099l4.126 18.432h74.667l64-260.268 64 260.268h74.667l87.467-384.001zM292.254 539.652h98.133l-49.067-155.735-49.067 155.735z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "white-balance-auto"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2536,
+            "id": 26,
+            "prevSize": 24,
+            "code": 60142,
+            "name": "white-balance-auto"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1262
+    }, {
+        "icon": {
+            "paths": [
+                "M735.663 774.605l76.587 76.587 60.331-60.373-76.587-76.544zM853.295 533.239h128v-85.333h-128zM639.962 269.131v-205.227h-256v205.227c-76.416 44.288-128 126.763-128 221.442 0 141.397 114.646 256 256 256 141.397 0 256-114.603 256-256 0-94.679-51.541-177.153-128-221.442zM170.628 447.906h-128v85.333h128zM469.295 957.773c13.483 0.085 85.333 0 85.333 0v-125.867h-85.333zM151.386 790.818l60.331 60.373 76.587-76.587-60.331-60.331-76.587 76.544z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "white-balance-incandescent"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2537,
+            "id": 25,
+            "prevSize": 24,
+            "code": 60143,
+            "name": "white-balance-incandescent"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1263
+    }, {
+        "icon": {
+            "paths": [
+                "M211.712 851.191l76.587-76.587-60.331-60.331-76.587 76.544zM151.381 190.327l76.587 76.586 60.331-60.331-76.587-76.587zM872.576 790.818l-76.587-76.544-60.331 60.331 76.587 76.587zM554.624 957.773v-125.867h-85.333v125.867c13.483 0.085 85.333 0 85.333 0zM812.245 129.996l-76.587 76.587 60.331 60.331 76.587-76.586zM469.291 149.238h85.333v-125.866h-85.333zM213.291 618.573h597.333v-256.002h-597.333v256.002z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "white-balance-irradescent"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2538,
+            "id": 24,
+            "prevSize": 24,
+            "code": 60144,
+            "name": "white-balance-irradescent"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1264
+    }, {
+        "icon": {
+            "paths": [
+                "M151.368 790.835l60.331 60.373 76.586-76.587-60.33-60.331zM469.321 957.79c13.483 0.085 85.333 0 85.333 0v-125.867h-85.333zM511.987 234.589c-141.398 0-256 114.602-256 256.001 0 141.355 114.602 256 256 256 141.355 0 256-114.645 256-256 0-141.399-114.645-256.001-256-256.001zM853.321 533.257h128v-85.333h-128zM735.646 774.622l76.587 76.587 60.331-60.373-76.587-76.544zM872.563 190.343l-60.331-60.374-76.587 76.587 60.331 60.331zM554.654 23.388h-85.333v125.867h85.333zM170.654 447.923h-128v85.333h128zM288.285 206.556l-76.586-76.587-60.331 60.374 76.588 76.544 60.33-60.331z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "white-balance-sunny"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2539,
+            "id": 23,
+            "prevSize": 24,
+            "code": 60145,
+            "name": "white-balance-sunny"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1265
+    }, {
+        "icon": {
+            "paths": [
+                "M512 896l153.609-204.813c-42.786-32.141-95.974-51.187-153.609-51.187s-110.822 19.046-153.609 51.187l153.609 204.813zM512 128c-172.905 0-332.465 57.139-460.827 153.564l76.804 102.406c106.968-80.354 239.935-127.97 384.023-127.97 144.085 0 277.052 47.616 384.021 127.97l76.804-102.406c-128.363-96.425-287.919-153.564-460.826-153.564zM512 384c-115.27 0-221.643 38.093-307.218 102.374l76.804 102.409c64.181-48.213 143.961-76.783 230.414-76.783 86.451 0 166.234 28.57 230.413 76.783l76.804-102.409c-85.572-64.282-191.949-102.374-307.217-102.374z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "wifi"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2540,
+            "id": 22,
+            "prevSize": 24,
+            "code": 60146,
+            "name": "wifi"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1266
+    }, {
+        "icon": {
+            "paths": [
+                "M761.37 722.735h-80.183v-262.178h80.183v262.178zM768.947 365.939c0 26.329-21.338 47.673-47.676 47.673-26.313 0-47.667-21.344-47.667-47.673 0-26.318 21.355-47.671 47.667-47.671 26.338 0 47.676 21.354 47.676 47.671zM931.085 722.735h-80.171v-262.178h80.171v262.178zM938.667 365.939c0 26.329-21.342 47.673-47.667 47.673s-47.663-21.344-47.663-47.673c0-26.318 21.338-47.671 47.663-47.671s47.667 21.354 47.667 47.671zM550.46 343.548h85.231l-90.283 317.786c0 0-12.279 65.732-63.923 65.732s-63.913-65.732-63.913-65.732l-57.066-207.283-57.044 207.283c0 0-12.281 65.732-63.924 65.732s-63.924-65.732-63.924-65.732l-90.281-317.786h85.231l73.663 282.406 59.235-228.957c13.716-57.782 57.044-57.055 57.044-57.055s43.339-0.727 57.066 57.055l59.224 228.957 73.664-282.406z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "wii"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2541,
+            "id": 21,
+            "prevSize": 24,
+            "code": 60147,
+            "name": "wii"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1267
+    }, {
+        "icon": {
+            "paths": [
+                "M638.746 808.55l-109.282-257.391c-43.298 84.954-91.273 173.239-132.327 257.254-0.227 0.435-19.841 0.179-19.85-0.077-62.745-146.419-127.793-291.874-190.839-438.177-14.622-35.764-65.818-93.298-100.844-92.971-0.013-4.156-0.207-13.415-0.264-19.031l215.994-0.102-0.147 18.781c-25.367 1.182-69.195 17.363-57.85 45.367 30.456 65.725 138.246 320.382 167.379 385.030 20.337-39.787 77.101-145.852 100.465-190.699-18.321-37.594-78.874-177.981-97.028-213.345-13.692-23.046-48.049-25.87-74.516-26.266 0.009-5.921 0.33-10.452 0.191-18.543l189.896 0.585v17.243c-25.715 0.714-50.048 10.278-39.036 34.848 25.54 53.025 40.448 90.764 63.932 139.8 7.501-14.362 45.854-93.099 64.158-134.674 11.068-27.615-5.449-37.981-51.721-39.225 0.614-4.544 0.213-13.669 0.597-18.017 59.046-0.222 148.207-0.429 163.989-0.667l0.085 17.944c-30.135 1.169-61.312 17.23-77.602 42.148l-78.967 163.774c8.674 21.687 84.582 190.336 92.587 209.041l163.273-376.8c-11.614-30.516-48.674-37.329-63.164-37.673 0.102-4.852 0.111-12.265 0.154-18.441l170.436 1.296 0.23 0.861-0.294 16.204c-37.389 1.126-60.518 21.119-74.334 53.897-33.967 76.719-137.792 319.712-207.091 478.074-0.094 0.085-18.167-0.030-18.21-0.051z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "wikipedia"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2542,
+            "id": 20,
+            "prevSize": 24,
+            "code": 60148,
+            "name": "wikipedia"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1268
+    }, {
+        "icon": {
+            "paths": [
+                "M574.204 512.004l236.459 236.51 0.004 62.153-62.182 0.009-236.446-236.497-236.503 236.506-62.202-0.017-0.003-62.114 236.543-236.544-236.543-236.482 0.003-62.195 62.153 0.011 236.548 236.497 236.497-236.497 62.135-0.011-0.009 62.223-236.454 236.45z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "window-close"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2543,
+            "id": 19,
+            "prevSize": 24,
+            "code": 60149,
+            "name": "window-close"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1269
+    }, {
+        "icon": {
+            "paths": [
+                "M256 469.333h170.667v-85.333h170.667v85.333h170.667v-298.667l-512 0v298.666zM768 554.667h-512v298.667h512v-298.667zM256 85.334l512-0c47.13 0 85.333 38.205 85.333 85.333v682.667c0 47.13-38.204 85.333-85.333 85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-682.666c0-47.128 38.205-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "window-closed"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2544,
+            "id": 18,
+            "prevSize": 24,
+            "code": 60150,
+            "name": "window-closed"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1270
+    }, {
+        "icon": {
+            "paths": [
+                "M170.667 170.667l682.667 0v682.666h-682.667v-682.667zM256 341.333l-0 426.667h512v-426.667h-512z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "window-maximize"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2545,
+            "id": 17,
+            "prevSize": 24,
+            "code": 60151,
+            "name": "window-maximize"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1271
+    }, {
+        "icon": {
+            "paths": [
+                "M853.333 597.333h-682.667v-170.667h682.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "window-minimize"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2546,
+            "id": 16,
+            "prevSize": 24,
+            "code": 60152,
+            "name": "window-minimize"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1272
+    }, {
+        "icon": {
+            "paths": [
+                "M256 341.333h170.667v-85.333h170.667v85.333h170.667v-170.667l-512 0v170.666zM768 426.667h-512v213.333h512v-213.333zM256 853.333h512v-128h-512l-0 128zM256 85.334l512-0c47.13 0 85.333 38.205 85.333 85.333v682.667c0 47.13-38.204 85.333-85.333 85.333h-512c-47.128 0-85.333-38.204-85.333-85.333v-682.666c0-47.128 38.205-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "window-open"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2547,
+            "id": 15,
+            "prevSize": 24,
+            "code": 60153,
+            "name": "window-open"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1273
+    }, {
+        "icon": {
+            "paths": [
+                "M170.663 341.337l170.653 0.014-0.014-170.653 512.014-0.014v512h-170.667l0.013 170.654h-511.999v-512.001zM682.662 341.33l-0.013 256.020h85.325v-341.333l-341.346 0.014 0.014 85.312 256.020-0.014zM255.993 512v256l341.332 0.013 0.004-256.009-341.336-0.004z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "window-restore"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2548,
+            "id": 14,
+            "prevSize": 24,
+            "code": 60154,
+            "name": "window-restore"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1274
+    }, {
+        "icon": {
+            "paths": [
+                "M128 512v-224l256-56.471v276.707l-256 3.763zM853.333 128v373.333l-426.667 6.276v-285.492l426.667-94.118zM128 554.667l256 3.763v290.513l-256-48.943v-245.333zM853.333 565.333v373.333l-426.667-81.57v-298.039l426.667 6.276z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "windows"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2549,
+            "id": 13,
+            "prevSize": 24,
+            "code": 60155,
+            "name": "windows"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1275
+    }, {
+        "icon": {
+            "paths": [
+                "M520.627 660.907l-109.036 265.839c32.142 7.757 65.801 11.921 100.408 11.921 35.84 0 70.639-4.446 103.919-12.676zM879.219 301.031c8.060 38.41 6.353 84.956-9.387 136.136-41.246 133.299-143.458 373.026-182.993 464.32 148.48-66.035 251.827-213.713 251.827-385.229 0-78.618-21.713-152.221-59.447-215.227zM183.751 368.673c0 0-20.765-26.394-42.667-26.394h-22.376c-21.523 47.302-33.375 110.781-33.375 169.059 0 175.113 107.614 325.342 261.025 389.393zM133.499 304.437c71.206-132.446 213.903-219.104 378.501-219.104 106.573 0 203.853 45.315 278.66 109.268-21.333-4.162-44.655 0.474-68.173 13.908-54.989 31.503-73.007 120.526-1.707 165.274 44.565 27.719 60.399 97.254 58.88 139.732-1.421 42.475-103.441 237.837-103.441 237.837l-99.366-340.39c0 0-3.413-23.934-3.413-30.84 0-8.609 2.846-19.3 8.247-25.355 3.699-4.068 9.293-12.487 16.026-12.487h47.027v-37.842h-255.999v37.842h7.964c8.343 0 16.592 11.258 24.463 19.299 9.385 9.65 21.144 45.883 35.365 83.444l37.261 122.321-80.212 185.045-88.084-369.713c0 0 2.655-25.354 7.965-29.612 3.413-3.027 8.817-10.784 14.98-10.784h2.371v-37.842h-217.316z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "wordpress"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2550,
+            "id": 12,
+            "prevSize": 24,
+            "code": 60156,
+            "name": "wordpress"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1276
+    }, {
+        "icon": {
+            "paths": [
+                "M512 640c-188.587 0-341.333 76.373-341.333 170.667v85.333h682.666v-85.333c0-94.293-152.747-170.667-341.333-170.667zM341.333 384c0 94.251 76.416 170.667 170.667 170.667s170.667-76.416 170.667-170.667zM490.667 85.333c-13.013 0-21.333 8.96-21.333 21.333v128h-42.667v-106.667c0 0-96 36.651-96 160 0 0-32 6.059-32 53.333h426.667c-2.133-47.275-32-53.333-32-53.333 0-123.349-96-160-96-160v106.667h-42.667v-128c0-12.373-8.32-21.333-21.333-21.333h-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "worker"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2551,
+            "id": 11,
+            "prevSize": 24,
+            "code": 60157,
+            "name": "worker"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1277
+    }, {
+        "icon": {
+            "paths": [
+                "M725.333 746.667l-213.333-106.667-213.333 106.667v-533.333h-85.333v597.333h597.333v-597.333h-85.333v533.333zM511.991 529.775l95.881 57.826-25.365-109.056 84.634-73.324-111.569-9.588-43.58-102.818-43.584 102.818-111.566 9.588 84.635 73.324-25.368 109.056 95.883-57.826zM213.333 128h597.333c47.13 0 85.333 38.205 85.333 85.333v597.333c0 47.13-38.204 85.333-85.333 85.333h-597.333c-47.128 0-85.333-38.204-85.333-85.333v-597.333c0-47.128 38.205-85.333 85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "wunderlist"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2552,
+            "id": 10,
+            "prevSize": 24,
+            "code": 60158,
+            "name": "wunderlist"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1278
+    }, {
+        "icon": {
+            "paths": [
+                "M85.333 224.788l54.49-54.122 713.51 713.51-54.123 54.49-266.667-266.667h-159.211c-85.333 0-117.333 96-202.667 138.667-84.704 0-148.387-126.118 17.873-482.673l-103.206-103.206zM397.905 265.716h228.19c56.572-52.382 176.67 18.732 176.67 18.732l18.569 35.552 10.381 0c150.46 319.193 118.921 456.605 51.021 484.966l-557.485-557.485c26.751-3.121 53.388 0.394 72.655 18.234zM512 298.667c-23.565 0-42.667 19.103-42.667 42.667s19.102 42.667 42.667 42.667c23.565 0 42.667-19.103 42.667-42.667s-19.102-42.667-42.667-42.667z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "xbox-controller-off"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2553,
+            "id": 9,
+            "prevSize": 24,
+            "code": 60159,
+            "name": "xbox-controller-off"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1279
+    }, {
+        "icon": {
+            "paths": [
+                "M373.333 672c-85.333 0-117.333 96-202.667 138.667-85.333 0-149.333-128 21.62-490.666h10.38l18.567-35.552c0 0 120.099-71.115 176.671-18.732h228.19c56.572-52.383 176.67 18.732 176.67 18.732l18.569 35.552h10.381c170.953 362.666 106.953 490.666 21.619 490.666-85.333-42.667-117.333-138.667-202.667-138.667h-277.333zM512 298.667c-23.565 0-42.667 19.102-42.667 42.666s19.102 42.667 42.667 42.667c23.565 0 42.667-19.102 42.667-42.667s-19.102-42.666-42.667-42.666z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "xbox-controller"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2554,
+            "id": 8,
+            "prevSize": 24,
+            "code": 60160,
+            "name": "xbox-controller"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1280
+    }, {
+        "icon": {
+            "paths": [
+                "M274.185 158.828c2.446-2.57 6.012-5.347 8.25-6.798 66.751-43.401 143.991-66.697 229.646-66.697 80.021 0 155.187 22.177 219.162 60.561 4.685 2.736 17.289 11.482 23.795 19.441-61.734-68.189-243.409 78.013-243.409 78.013-62.857-48.416-120.527-81.412-163.604-93.102-35.946-9.865-60.864-1.782-72.556 7.462zM825.148 222.167c-1.946-2.114-4.062-4.062-5.969-6.176-15.548-17.161-34.829-21.347-51.989-20.228-15.881 5.015-88.602 31.255-178.321 115.942 0 0 100.911 98.117 162.773 198.513 61.858 100.399 98.756 179.238 76.117 288.717 68.826-75.776 110.908-176.337 110.908-286.933 0-111.879-43.076-213.727-113.519-289.833zM670.959 553.122c-27.529-30.758-68.16-74.825-122.099-128.42-11.652-11.648-24.132-23.793-37.231-36.436 0 0-19.614 19.607-45.193 45.514-32.879 33.037-75.334 76.271-98.967 101.35-41.958 44.851-162.275 185.583-169.074 264.422 0 0-26.742-62.468 32.049-206.763 38.392-94.387 154.356-236.069 202.781-282.246 0 0-44.195-48.707-99.752-82.241l-1.949-1.285c-26.742-15.876-55.888-28.187-83.916-29.804-28.649 1.948-46.767 23.006-46.767 23.006-71.767 76.272-115.508 178.907-115.508 291.782 0 235.571 191.131 426.667 426.748 426.667 125.047 0 237.611-53.931 315.678-139.571 0-0.162-8.913-56.538-66.419-137.165-13.431-18.944-62.852-77.888-90.381-108.809z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "xbox"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2555,
+            "id": 7,
+            "prevSize": 24,
+            "code": 60161,
+            "name": "xbox"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1281
+    }, {
+        "icon": {
+            "paths": [
+                "M-2.192 716.335l138.495-163.008-138.495-163.005 65.369-54.851 128.823 151.48 128.823-151.48 65.369 54.851-138.494 163.005 138.495 163.008-65.369 54.852-128.823-151.484-128.823 151.484-65.369-54.852zM1024 725.333c0 23.565-19.102 42.667-42.667 42.667h-128c-47.13 0-85.333-38.204-85.333-85.333v-85.333c0-47.13 38.204-85.333 85.333-85.333h85.333v-85.333h-170.667v-85.333h213.333c23.36 0.241 42.667 19.252 42.667 42.667zM938.667 597.333h-85.333v85.333h85.333v-85.333zM682.667 725.333c0 23.565-19.102 42.667-42.667 42.667h-128c-47.13 0-85.333-38.204-85.333-85.333v-256c0-47.128 38.204-85.333 85.333-85.333h85.333v-128h85.333v512zM597.333 682.667v-256h-85.333v256h85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "xda"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2556,
+            "id": 6,
+            "prevSize": 24,
+            "code": 60162,
+            "name": "xda"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1282
+    }, {
+        "icon": {
+            "paths": [
+                "M550.106 127.52l83.469 17.742-159.68 751.216-83.467-17.741 159.678-751.217zM835.661 511.684l-152.994-152.992v-120.679l273.988 273.987-273.988 273.506v-120.828l152.994-152.994zM67.346 512.132l273.987-273.989v120.679l-152.994 152.994 152.994 152.994v120.828l-273.987-273.506z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "xml"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2557,
+            "id": 5,
+            "prevSize": 24,
+            "code": 60163,
+            "name": "xml"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1283
+    }, {
+        "icon": {
+            "paths": [
+                "M768 597.333c94.255 0 170.667 76.412 170.667 170.667s-76.412 170.667-170.667 170.667c-94.255 0-170.667-76.412-170.667-170.667l3.891-36.407c-1.719-29.935-7.189-55.855-23.091-70.618-8.67-8.047-20.442-12.783-34.231-15.351-40.772 23.561-88.094 37.043-138.569 37.043-153.167 0-277.333-124.164-277.333-277.333 0-153.167 124.166-277.333 277.333-277.333 153.169 0 277.333 124.166 277.333 277.333 0 50.475-13.483 97.796-37.043 138.569 2.569 13.79 7.305 25.562 15.351 34.231 14.763 15.902 40.683 21.372 70.618 23.091l36.407-3.891zM320 426.667c35.346 0 64 28.655 64 64s-28.654 64-64 64c-35.346 0-64-28.655-64-64s28.654-64 64-64zM405.333 213.333c-106.039 0-192 85.961-192 192s85.961 192 192 192c106.039 0 192-85.961 192-192s-85.961-192-192-192z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "yeast"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2558,
+            "id": 4,
+            "prevSize": 24,
+            "code": 60164,
+            "name": "yeast"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1284
+    }, {
+        "icon": {
+            "paths": [
+                "M451.785 86.010c27.435-0.043 39.893 10.837 42.411 40.619l8.96 135.467 10.283 176.77c0.853 15.275-0.811 30.336-7.467 44.203-9.429 19.285-30.848 24.107-47.957 11.136-10.624-8.064-18.219-18.859-24.917-30.208l-159.189-269.741c-15.36-26.155-10.795-43.349 14.763-59.605 32.043-20.352 126.635-48.555 163.115-48.64zM632.922 633.536l10.923 2.816 164.864 59.349c28.032 10.368 35.541 26.411 24.277 53.931-19.797 48.171-50.347 89.088-89.685 122.965-19.541 16.806-38.869 14.037-51.541-7.381l-97.152-168.917c-16.683-30.165 4.181-64.811 38.315-62.763zM191.014 596.843c0.171-30.976 1.92-61.312 11.477-90.496 9.387-28.629 25.088-36.949 52.608-25.6l155.904 65.963c19.499 8.192 30.72 21.589 29.653 43.819-1.024 22.229-15.403 31.573-34.176 37.76l-157.056 51.925c-29.781 9.6-45.227 0.811-51.584-29.568-3.712-17.963-6.912-36.267-6.827-53.803zM510.549 896.815c-0.811 33.877-15.616 47.061-49.152 41.173-44.416-7.893-85.675-24.913-121.899-52.348-17.707-13.359-21.632-34.645-8.533-52.395l115.584-151.936c9.856-12.8 24.235-15.531 39.211-9.899 16.384 6.229 24.917 19.029 25.131 36.437l-0.341 188.966zM616.721 568.311c-31.061 0.256-52.181-33.963-34.603-60.117 35.456-52.907 72.747-104.535 110.293-155.949 12.587-17.28 30.251-18.773 46.293-4.224 39.595 35.968 68.224 79.618 84.267 130.818 6.101 19.285-1.664 36.608-19.499 41.6l-159.488 41.685-27.264 6.187z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "yelp"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2559,
+            "id": 3,
+            "prevSize": 24,
+            "code": 60165,
+            "name": "yelp"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1285
+    }, {
+        "icon": {
+            "paths": [
+                "M426.641 703.915v-383.998l256 191.998zM853.393 187.651c-25.685-8.406-183.501-17.068-341.419-17.068-157.824 0-315.648 7.979-341.333 16.383-66.731 22.018-85.333 171.521-85.333 324.948 0 153.434 18.603 302.933 85.333 324.954 25.685 8.401 183.509 16.38 341.333 16.38 157.918 0 315.733-7.979 341.419-16.38 66.645-22.020 84.821-171.52 84.821-324.954 0-153.428-18.176-302.248-84.821-324.264z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "youtube-play"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2560,
+            "id": 2,
+            "prevSize": 24,
+            "code": 60166,
+            "name": "youtube-play"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1286
+    }, {
+        "icon": {
+            "paths": [
+                "M382.195 644.471h-38.833v-22.481c-14.721 16.875-27.201 25.395-40.805 25.395-11.936 0-20.224-5.628-24.375-15.804-2.522-6.182-4.31-15.842-4.31-30.029v-163.507h38.832v167.595c0.905 5.734 3.342 7.829 8.28 7.829 7.433 0 14.159-6.455 22.377-18.048v-157.376h38.833v206.426zM206.426 583.159l0.020-81.754c2.044-20.437-4.313-30.016-16.371-30.016s-18.394 9.579-16.35 30.016v81.754c-2.044 20.437 4.289 30.579 16.347 30.579s18.397-10.142 16.354-30.579zM245.259 505.493v73.579c0 21.935-3.613 37.090-11.445 47.415-10.344 14.076-27.387 21.534-43.738 21.534s-33.1-7.458-43.43-21.534c-7.957-10.325-11.753-25.481-11.753-47.415l0.038-73.399c0-22.059 4.268-38.805 12.225-49.229 10.33-14.123 24.413-19.9 42.92-19.9 16.351 0 32.575 5.777 42.921 19.9 7.832 10.423 12.263 26.991 12.263 49.050zM91.973 532.062v112.41h-40.876v-112.41c0 0-42.357-137.816-51.095-163.504h42.92l28.684 107.658 28.543-107.658h42.92l-51.095 163.504zM1017.907 390.851c0 0 6.093 49.162 6.093 98.331v46.097c0 49.161-6.093 98.325-6.093 98.325s-5.965 41.865-24.265 60.305c-23.206 24.201-49.22 24.32-61.15 25.737-85.402 6.144-213.641 6.336-213.641 6.336s-158.677-1.442-207.501-6.106c-13.581-2.534-44.083-1.766-67.294-25.967-18.301-18.441-24.256-60.305-24.256-60.305s-6.103-49.165-6.103-98.325v-46.097c0-49.169 6.103-98.331 6.103-98.331s5.955-41.868 24.256-60.305c23.211-24.197 49.22-24.319 61.15-25.734 85.402-6.146 213.508-6.146 213.508-6.146h0.269c0 0 128.107 0 213.508 6.146 11.93 1.415 37.943 1.537 61.15 25.734 18.3 18.438 24.265 60.305 24.265 60.305zM899.281 495.189c0-19.102 5.239-24.311 17.596-24.311 12.267 0 17.148 5.675 17.148 24.567v22.31l-34.743 0.038v-22.605zM972.928 548.412l-0.009-41.779c0-21.828-4.297-37.798-12.032-48.128-10.372-13.973-25.105-21.372-43.669-21.372-18.889 0-33.621 7.398-44.322 21.372-7.863 10.33-12.45 27.204-12.45 49.033v71.535c0 21.7 5.043 36.894 12.907 47.113 10.697 13.956 25.429 20.924 44.787 20.924 19.332 0 34.513-7.309 44.749-22.14 4.501-6.545 7.407-13.969 8.657-22.17 0.333-3.703 1.314-12.143 1.314-24.068v-5.79h-38.831c0 14.844 0.064 23.671-0.277 25.685-2.112 9.89-7.424 14.844-16.533 14.844-12.698 0-18.065-9.493-17.937-28.352v-36.706h73.647zM797.090 585.203c0 20.437-4.817 28.267-15.488 28.267-6.093 0-13.111-3.132-19.302-9.318l0.047-123.951c6.187-6.106 13.163-9.323 19.255-9.323 10.671 0 15.488 6.003 15.488 26.441v87.885zM801.395 436.813c-13.611 0-27.14 8.371-39.095 23.078l0.047-89.29h-36.791v273.87h36.791l0.051-20.578c12.361 15.296 25.843 23.215 38.997 23.215 14.733 0 25.502-7.889 30.438-23.074 2.47-8.657 4.087-21.986 4.087-40.875v-81.754c0-19.345-2.479-32.572-4.949-40.785-4.937-15.296-14.844-23.808-29.577-23.808zM694.899 644.471v-204.382h-38.831v155.332c-8.222 11.593-14.946 18.048-22.379 18.048-4.941 0-7.377-2.095-8.282-7.829v-165.551h-38.831v161.463c0 14.187 1.788 23.846 4.309 30.029 4.151 10.176 12.437 15.804 24.375 15.804 13.602 0 26.082-8.521 40.806-25.395v22.481h38.831zM547.746 644.471v-235.037h44.962v-38.833l-128.759 0.043v38.79h42.918v235.037h40.879z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "youtube"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2561,
+            "id": 1,
+            "prevSize": 24,
+            "code": 60167,
+            "name": "youtube"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1287
+    }, {
+        "icon": {
+            "paths": [
+                "M597.308 725.252h-85.333v-85.333h-85.333v-85.333h85.333v85.333h85.333zM597.308 383.918h-85.333v85.335h85.333v85.333h-85.333v-85.333h-85.333v-85.335h85.333v-85.333h-85.333v-85.333h85.333v85.333h85.333zM810.641 127.918h-597.333c-47.147 0-85.333 38.229-85.333 85.333v597.335c0 47.104 38.187 85.333 85.333 85.333h597.333c47.104 0 85.333-38.229 85.333-85.333v-597.335c0-47.104-38.229-85.333-85.333-85.333z"
+            ],
+            "attrs": [],
+            "isMulticolor": false,
+            "grid": 24,
+            "tags": [
+                "zip-box"
+            ]
+        },
+        "attrs": [],
+        "properties": {
+            "order": 2562,
+            "id": 0,
+            "prevSize": 24,
+            "code": 60168,
+            "name": "zip-box"
+        },
+        "setIdx": 0,
+        "setId": 0,
+        "iconIdx": 1288
+    }],
+    "height": 1024,
+    "metadata": {
+        "name": "icomoon"
+    },
+    "preferences": {
+        "showGlyphs": true,
+        "showQuickUse": false,
+        "showQuickUse2": true,
+        "showSVGs": true,
+        "fontPref": {
+            "prefix": "icon-",
+            "metadata": {
+                "fontFamily": "icomoon",
+                "majorVersion": 1,
+                "minorVersion": 0
+            },
+            "metrics": {
+                "emSize": 1024,
+                "baseline": 6.25,
+                "whitespace": 50
+            },
+            "embed": false,
+            "resetPoint": 58880,
+            "showSelector": true,
+            "showMetrics": false,
+            "showMetadata": false,
+            "showVersion": false
+        },
+        "imagePref": {
+            "prefix": "icon-",
+            "png": true,
+            "useClassSelector": true,
+            "color": 4473924,
+            "bgColor": 16777215,
+            "classSelector": ".icon"
+        },
+        "historySize": 100,
+        "gridSize": 16,
+        "showGrid": true
+    }
+}
\ No newline at end of file
diff --git a/public/assets/images/avatars/profile.jpg b/public/assets/images/avatars/profile.jpg
new file mode 100644 (file)
index 0000000..ae83b58
Binary files /dev/null and b/public/assets/images/avatars/profile.jpg differ
diff --git a/public/assets/images/backgrounds/april.jpg b/public/assets/images/backgrounds/april.jpg
new file mode 100644 (file)
index 0000000..6c2152b
Binary files /dev/null and b/public/assets/images/backgrounds/april.jpg differ
diff --git a/public/assets/images/backgrounds/august.jpg b/public/assets/images/backgrounds/august.jpg
new file mode 100644 (file)
index 0000000..14cc9ff
Binary files /dev/null and b/public/assets/images/backgrounds/august.jpg differ
diff --git a/public/assets/images/backgrounds/december.jpg b/public/assets/images/backgrounds/december.jpg
new file mode 100644 (file)
index 0000000..d81386b
Binary files /dev/null and b/public/assets/images/backgrounds/december.jpg differ
diff --git a/public/assets/images/backgrounds/february.jpg b/public/assets/images/backgrounds/february.jpg
new file mode 100644 (file)
index 0000000..a9aa605
Binary files /dev/null and b/public/assets/images/backgrounds/february.jpg differ
diff --git a/public/assets/images/backgrounds/header-bg.png b/public/assets/images/backgrounds/header-bg.png
new file mode 100644 (file)
index 0000000..a9f7919
Binary files /dev/null and b/public/assets/images/backgrounds/header-bg.png differ
diff --git a/public/assets/images/backgrounds/january.jpg b/public/assets/images/backgrounds/january.jpg
new file mode 100644 (file)
index 0000000..60ad972
Binary files /dev/null and b/public/assets/images/backgrounds/january.jpg differ
diff --git a/public/assets/images/backgrounds/july.jpg b/public/assets/images/backgrounds/july.jpg
new file mode 100644 (file)
index 0000000..1dc3056
Binary files /dev/null and b/public/assets/images/backgrounds/july.jpg differ
diff --git a/public/assets/images/backgrounds/june.jpg b/public/assets/images/backgrounds/june.jpg
new file mode 100644 (file)
index 0000000..80c6ec2
Binary files /dev/null and b/public/assets/images/backgrounds/june.jpg differ
diff --git a/public/assets/images/backgrounds/march.jpg b/public/assets/images/backgrounds/march.jpg
new file mode 100644 (file)
index 0000000..01684e4
Binary files /dev/null and b/public/assets/images/backgrounds/march.jpg differ
diff --git a/public/assets/images/backgrounds/may.jpg b/public/assets/images/backgrounds/may.jpg
new file mode 100644 (file)
index 0000000..bc6d04e
Binary files /dev/null and b/public/assets/images/backgrounds/may.jpg differ
diff --git a/public/assets/images/backgrounds/november.jpg b/public/assets/images/backgrounds/november.jpg
new file mode 100644 (file)
index 0000000..31694e6
Binary files /dev/null and b/public/assets/images/backgrounds/november.jpg differ
diff --git a/public/assets/images/backgrounds/october.jpg b/public/assets/images/backgrounds/october.jpg
new file mode 100644 (file)
index 0000000..56364ba
Binary files /dev/null and b/public/assets/images/backgrounds/october.jpg differ
diff --git a/public/assets/images/backgrounds/september.jpg b/public/assets/images/backgrounds/september.jpg
new file mode 100644 (file)
index 0000000..637cfde
Binary files /dev/null and b/public/assets/images/backgrounds/september.jpg differ
diff --git a/public/assets/images/business/agents.jpg b/public/assets/images/business/agents.jpg
new file mode 100644 (file)
index 0000000..02f5b03
Binary files /dev/null and b/public/assets/images/business/agents.jpg differ
diff --git a/public/assets/images/business/chanSpies.jpg b/public/assets/images/business/chanSpies.jpg
new file mode 100644 (file)
index 0000000..0bc48b5
Binary files /dev/null and b/public/assets/images/business/chanSpies.jpg differ
diff --git a/public/assets/images/business/companies.jpg b/public/assets/images/business/companies.jpg
new file mode 100644 (file)
index 0000000..c549351
Binary files /dev/null and b/public/assets/images/business/companies.jpg differ
diff --git a/public/assets/images/business/contacts.jpg b/public/assets/images/business/contacts.jpg
new file mode 100644 (file)
index 0000000..4aeb143
Binary files /dev/null and b/public/assets/images/business/contacts.jpg differ
diff --git a/public/assets/images/business/cprojects.jpg b/public/assets/images/business/cprojects.jpg
new file mode 100644 (file)
index 0000000..057c849
Binary files /dev/null and b/public/assets/images/business/cprojects.jpg differ
diff --git a/public/assets/images/business/customDashboards.jpg b/public/assets/images/business/customDashboards.jpg
new file mode 100644 (file)
index 0000000..6976bca
Binary files /dev/null and b/public/assets/images/business/customDashboards.jpg differ
diff --git a/public/assets/images/business/freshdeskAccounts.jpg b/public/assets/images/business/freshdeskAccounts.jpg
new file mode 100644 (file)
index 0000000..2555d1b
Binary files /dev/null and b/public/assets/images/business/freshdeskAccounts.jpg differ
diff --git a/public/assets/images/business/inboundroutes.jpg b/public/assets/images/business/inboundroutes.jpg
new file mode 100644 (file)
index 0000000..2802392
Binary files /dev/null and b/public/assets/images/business/inboundroutes.jpg differ
diff --git a/public/assets/images/business/internalroutes.jpg b/public/assets/images/business/internalroutes.jpg
new file mode 100644 (file)
index 0000000..7e66282
Binary files /dev/null and b/public/assets/images/business/internalroutes.jpg differ
diff --git a/public/assets/images/business/intervals.jpg b/public/assets/images/business/intervals.jpg
new file mode 100644 (file)
index 0000000..138d2be
Binary files /dev/null and b/public/assets/images/business/intervals.jpg differ
diff --git a/public/assets/images/business/ivrCampaigns.jpg b/public/assets/images/business/ivrCampaigns.jpg
new file mode 100644 (file)
index 0000000..820b78a
Binary files /dev/null and b/public/assets/images/business/ivrCampaigns.jpg differ
diff --git a/public/assets/images/business/lists.jpg b/public/assets/images/business/lists.jpg
new file mode 100644 (file)
index 0000000..ec3c1ec
Binary files /dev/null and b/public/assets/images/business/lists.jpg differ
diff --git a/public/assets/images/business/musiconholds.jpg b/public/assets/images/business/musiconholds.jpg
new file mode 100644 (file)
index 0000000..ebe34ee
Binary files /dev/null and b/public/assets/images/business/musiconholds.jpg differ
diff --git a/public/assets/images/business/outboundroutes.jpg b/public/assets/images/business/outboundroutes.jpg
new file mode 100644 (file)
index 0000000..32f7275
Binary files /dev/null and b/public/assets/images/business/outboundroutes.jpg differ
diff --git a/public/assets/images/business/projects.jpg b/public/assets/images/business/projects.jpg
new file mode 100644 (file)
index 0000000..c3e5419
Binary files /dev/null and b/public/assets/images/business/projects.jpg differ
diff --git a/public/assets/images/business/queueCampaigns.jpg b/public/assets/images/business/queueCampaigns.jpg
new file mode 100644 (file)
index 0000000..0a14467
Binary files /dev/null and b/public/assets/images/business/queueCampaigns.jpg differ
diff --git a/public/assets/images/business/queues.jpg b/public/assets/images/business/queues.jpg
new file mode 100644 (file)
index 0000000..105a4f7
Binary files /dev/null and b/public/assets/images/business/queues.jpg differ
diff --git a/public/assets/images/business/reports.jpg b/public/assets/images/business/reports.jpg
new file mode 100644 (file)
index 0000000..7f6b799
Binary files /dev/null and b/public/assets/images/business/reports.jpg differ
diff --git a/public/assets/images/business/salesforceAccounts.jpg b/public/assets/images/business/salesforceAccounts.jpg
new file mode 100644 (file)
index 0000000..cab2330
Binary files /dev/null and b/public/assets/images/business/salesforceAccounts.jpg differ
diff --git a/public/assets/images/business/schedules.jpg b/public/assets/images/business/schedules.jpg
new file mode 100644 (file)
index 0000000..80f760f
Binary files /dev/null and b/public/assets/images/business/schedules.jpg differ
diff --git a/public/assets/images/business/sugarcrmAccounts.jpg b/public/assets/images/business/sugarcrmAccounts.jpg
new file mode 100644 (file)
index 0000000..2203e5c
Binary files /dev/null and b/public/assets/images/business/sugarcrmAccounts.jpg differ
diff --git a/public/assets/images/business/teams.jpg b/public/assets/images/business/teams.jpg
new file mode 100644 (file)
index 0000000..1b6924c
Binary files /dev/null and b/public/assets/images/business/teams.jpg differ
diff --git a/public/assets/images/business/telephones.jpg b/public/assets/images/business/telephones.jpg
new file mode 100644 (file)
index 0000000..0a9b948
Binary files /dev/null and b/public/assets/images/business/telephones.jpg differ
diff --git a/public/assets/images/business/triggers.jpg b/public/assets/images/business/triggers.jpg
new file mode 100644 (file)
index 0000000..5ed396a
Binary files /dev/null and b/public/assets/images/business/triggers.jpg differ
diff --git a/public/assets/images/business/trunks.jpg b/public/assets/images/business/trunks.jpg
new file mode 100644 (file)
index 0000000..bdd7c91
Binary files /dev/null and b/public/assets/images/business/trunks.jpg differ
diff --git a/public/assets/images/business/users.jpg b/public/assets/images/business/users.jpg
new file mode 100644 (file)
index 0000000..5ef83a7
Binary files /dev/null and b/public/assets/images/business/users.jpg differ
diff --git a/public/assets/images/business/voiceQueues.jpg b/public/assets/images/business/voiceQueues.jpg
new file mode 100644 (file)
index 0000000..4393f09
Binary files /dev/null and b/public/assets/images/business/voiceQueues.jpg differ
diff --git a/public/assets/images/business/voicemails.jpg b/public/assets/images/business/voicemails.jpg
new file mode 100644 (file)
index 0000000..891cbd3
Binary files /dev/null and b/public/assets/images/business/voicemails.jpg differ
diff --git a/public/assets/images/business/zendeskAccounts.jpg b/public/assets/images/business/zendeskAccounts.jpg
new file mode 100644 (file)
index 0000000..6f1aca8
Binary files /dev/null and b/public/assets/images/business/zendeskAccounts.jpg differ
diff --git a/public/assets/images/flags/ar.png b/public/assets/images/flags/ar.png
new file mode 100644 (file)
index 0000000..f5f5477
Binary files /dev/null and b/public/assets/images/flags/ar.png differ
diff --git a/public/assets/images/flags/da.png b/public/assets/images/flags/da.png
new file mode 100644 (file)
index 0000000..e2993d3
Binary files /dev/null and b/public/assets/images/flags/da.png differ
diff --git a/public/assets/images/flags/de.png b/public/assets/images/flags/de.png
new file mode 100644 (file)
index 0000000..ac4a977
Binary files /dev/null and b/public/assets/images/flags/de.png differ
diff --git a/public/assets/images/flags/en_EN.png b/public/assets/images/flags/en_EN.png
new file mode 100644 (file)
index 0000000..ff701e1
Binary files /dev/null and b/public/assets/images/flags/en_EN.png differ
diff --git a/public/assets/images/flags/es.png b/public/assets/images/flags/es.png
new file mode 100644 (file)
index 0000000..c2de2d7
Binary files /dev/null and b/public/assets/images/flags/es.png differ
diff --git a/public/assets/images/flags/fa.png b/public/assets/images/flags/fa.png
new file mode 100644 (file)
index 0000000..c5fd136
Binary files /dev/null and b/public/assets/images/flags/fa.png differ
diff --git a/public/assets/images/flags/fi.png b/public/assets/images/flags/fi.png
new file mode 100644 (file)
index 0000000..14ec091
Binary files /dev/null and b/public/assets/images/flags/fi.png differ
diff --git a/public/assets/images/flags/fr.png b/public/assets/images/flags/fr.png
new file mode 100644 (file)
index 0000000..8332c4e
Binary files /dev/null and b/public/assets/images/flags/fr.png differ
diff --git a/public/assets/images/flags/hi.png b/public/assets/images/flags/hi.png
new file mode 100644 (file)
index 0000000..e4d7e81
Binary files /dev/null and b/public/assets/images/flags/hi.png differ
diff --git a/public/assets/images/flags/it.png b/public/assets/images/flags/it.png
new file mode 100644 (file)
index 0000000..89692f7
Binary files /dev/null and b/public/assets/images/flags/it.png differ
diff --git a/public/assets/images/flags/ja.png b/public/assets/images/flags/ja.png
new file mode 100644 (file)
index 0000000..325fbad
Binary files /dev/null and b/public/assets/images/flags/ja.png differ
diff --git a/public/assets/images/flags/ko.png b/public/assets/images/flags/ko.png
new file mode 100644 (file)
index 0000000..9c0a78e
Binary files /dev/null and b/public/assets/images/flags/ko.png differ
diff --git a/public/assets/images/flags/nl.png b/public/assets/images/flags/nl.png
new file mode 100644 (file)
index 0000000..fe44791
Binary files /dev/null and b/public/assets/images/flags/nl.png differ
diff --git a/public/assets/images/flags/no.png b/public/assets/images/flags/no.png
new file mode 100644 (file)
index 0000000..160b6b5
Binary files /dev/null and b/public/assets/images/flags/no.png differ
diff --git a/public/assets/images/flags/pt-BR.png b/public/assets/images/flags/pt-BR.png
new file mode 100644 (file)
index 0000000..9b1a553
Binary files /dev/null and b/public/assets/images/flags/pt-BR.png differ
diff --git a/public/assets/images/flags/pt-PT.png b/public/assets/images/flags/pt-PT.png
new file mode 100644 (file)
index 0000000..ece7980
Binary files /dev/null and b/public/assets/images/flags/pt-PT.png differ
diff --git a/public/assets/images/flags/ru.png b/public/assets/images/flags/ru.png
new file mode 100644 (file)
index 0000000..47da421
Binary files /dev/null and b/public/assets/images/flags/ru.png differ
diff --git a/public/assets/images/flags/sv.png b/public/assets/images/flags/sv.png
new file mode 100644 (file)
index 0000000..1994653
Binary files /dev/null and b/public/assets/images/flags/sv.png differ
diff --git a/public/assets/images/flags/tr.png b/public/assets/images/flags/tr.png
new file mode 100644 (file)
index 0000000..be32f77
Binary files /dev/null and b/public/assets/images/flags/tr.png differ
diff --git a/public/assets/images/flags/us.png b/public/assets/images/flags/us.png
new file mode 100644 (file)
index 0000000..10f451f
Binary files /dev/null and b/public/assets/images/flags/us.png differ
diff --git a/public/assets/images/flags/zh-CN.png b/public/assets/images/flags/zh-CN.png
new file mode 100644 (file)
index 0000000..8914414
Binary files /dev/null and b/public/assets/images/flags/zh-CN.png differ
diff --git a/public/assets/images/flags/zh-TW.png b/public/assets/images/flags/zh-TW.png
new file mode 100644 (file)
index 0000000..f31c654
Binary files /dev/null and b/public/assets/images/flags/zh-TW.png differ
diff --git a/public/assets/images/jstree/32px.png b/public/assets/images/jstree/32px.png
new file mode 100644 (file)
index 0000000..1532715
Binary files /dev/null and b/public/assets/images/jstree/32px.png differ
diff --git a/public/assets/images/jstree/40px.png b/public/assets/images/jstree/40px.png
new file mode 100644 (file)
index 0000000..1959347
Binary files /dev/null and b/public/assets/images/jstree/40px.png differ
diff --git a/public/assets/images/jstree/throbber.gif b/public/assets/images/jstree/throbber.gif
new file mode 100644 (file)
index 0000000..1b5b2fd
Binary files /dev/null and b/public/assets/images/jstree/throbber.gif differ
diff --git a/public/assets/images/logos/loading.png b/public/assets/images/logos/loading.png
new file mode 100644 (file)
index 0000000..45fa8f1
Binary files /dev/null and b/public/assets/images/logos/loading.png differ
diff --git a/public/assets/images/logos/login.png b/public/assets/images/logos/login.png
new file mode 100644 (file)
index 0000000..79cd3fe
Binary files /dev/null and b/public/assets/images/logos/login.png differ
diff --git a/public/assets/images/logos/whisker_32x32.png b/public/assets/images/logos/whisker_32x32.png
new file mode 100644 (file)
index 0000000..463f34e
Binary files /dev/null and b/public/assets/images/logos/whisker_32x32.png differ
diff --git a/public/assets/images/music-player/error.png b/public/assets/images/music-player/error.png
new file mode 100644 (file)
index 0000000..edfe6a4
Binary files /dev/null and b/public/assets/images/music-player/error.png differ
diff --git a/public/assets/images/music-player/success.png b/public/assets/images/music-player/success.png
new file mode 100644 (file)
index 0000000..9796ded
Binary files /dev/null and b/public/assets/images/music-player/success.png differ
diff --git a/public/assets/images/music-player/uploading.png b/public/assets/images/music-player/uploading.png
new file mode 100644 (file)
index 0000000..ac5ed30
Binary files /dev/null and b/public/assets/images/music-player/uploading.png differ
diff --git a/public/assets/images/theme-options/content-only.jpg b/public/assets/images/theme-options/content-only.jpg
new file mode 100644 (file)
index 0000000..8b8da01
Binary files /dev/null and b/public/assets/images/theme-options/content-only.jpg differ
diff --git a/public/assets/images/theme-options/content-with-toolbar.jpg b/public/assets/images/theme-options/content-with-toolbar.jpg
new file mode 100644 (file)
index 0000000..277a6b1
Binary files /dev/null and b/public/assets/images/theme-options/content-with-toolbar.jpg differ
diff --git a/public/assets/images/theme-options/horizontal-nav.jpg b/public/assets/images/theme-options/horizontal-nav.jpg
new file mode 100644 (file)
index 0000000..bf095b6
Binary files /dev/null and b/public/assets/images/theme-options/horizontal-nav.jpg differ
diff --git a/public/assets/images/theme-options/vertical-nav-with-full-toolbar-2.jpg b/public/assets/images/theme-options/vertical-nav-with-full-toolbar-2.jpg
new file mode 100644 (file)
index 0000000..1f369e4
Binary files /dev/null and b/public/assets/images/theme-options/vertical-nav-with-full-toolbar-2.jpg differ
diff --git a/public/assets/images/theme-options/vertical-nav-with-full-toolbar.jpg b/public/assets/images/theme-options/vertical-nav-with-full-toolbar.jpg
new file mode 100644 (file)
index 0000000..c73dfe8
Binary files /dev/null and b/public/assets/images/theme-options/vertical-nav-with-full-toolbar.jpg differ
diff --git a/public/assets/images/theme-options/vertical-nav.jpg b/public/assets/images/theme-options/vertical-nav.jpg
new file mode 100644 (file)
index 0000000..973d6a6
Binary files /dev/null and b/public/assets/images/theme-options/vertical-nav.jpg differ
diff --git a/public/assets/plugins/mxgraph/css/common.css b/public/assets/plugins/mxgraph/css/common.css
new file mode 100644 (file)
index 0000000..1e9d532
--- /dev/null
@@ -0,0 +1,332 @@
+div.mxRubberband {
+    position: absolute;
+    overflow: hidden;
+    border-style: solid;
+    border-width: 1px;
+    border-color: #0000FF;
+    background: #0077FF;
+}
+
+textarea.mxCellEditor {
+    background: url('../images/transparent.gif');
+    border-style: solid;
+    border-color: black;
+    border-width: 0;
+    overflow: auto;
+}
+
+div.mxWindow {
+    -webkit-box-shadow: 3px 3px 12px #C0C0C0;
+    -moz-box-shadow: 3px 3px 12px #C0C0C0;
+    box-shadow: 3px 3px 12px #C0C0C0;
+    background: url('../images/window.gif');
+    border-style: outset;
+    border-width: 1px;
+    position: absolute;
+    overflow: hidden;
+    z-index: 1;
+}
+
+table.mxWindow {
+    border-collapse: collapse;
+    table-layout: fixed;
+    font-family: Arial;
+    font-size: 8pt;
+}
+
+td.mxWindowTitle {
+    background: url('../images/window-title.gif') repeat-x;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    text-align: center;
+    font-weight: bold;
+    overflow: hidden;
+    height: 13px;
+    padding: 2px;
+    padding-top: 4px;
+    padding-bottom: 6px;
+    color: black;
+}
+
+td.mxWindowPane {
+    vertical-align: top;
+    padding: 0px;
+}
+
+div.mxWindowPane {
+    overflow: hidden;
+}
+
+td.mxWindowPane td {
+    font-family: Arial;
+    font-size: 8pt;
+}
+
+td.mxWindowPane input,
+td.mxWindowPane select,
+td.mxWindowPane textarea,
+td.mxWindowPane radio {
+    border-color: #8C8C8C;
+    border-style: solid;
+    border-width: 1px;
+    font-family: Arial;
+    font-size: 8pt;
+    padding: 1px;
+}
+
+td.mxWindowPane button {
+    background: url('../images/button.gif') repeat-x;
+    font-family: Arial;
+    font-size: 8pt;
+    padding: 2px;
+    float: left;
+}
+
+img.mxToolbarItem {
+    margin-right: 6px;
+    margin-bottom: 6px;
+    border-width: 1px;
+}
+
+select.mxToolbarCombo {
+    vertical-align: top;
+    border-style: inset;
+    border-width: 2px;
+}
+
+div.mxToolbarComboContainer {
+    padding: 2px;
+}
+
+img.mxToolbarMode {
+    margin: 2px;
+    margin-right: 4px;
+    margin-bottom: 4px;
+    border-width: 0px;
+}
+
+img.mxToolbarModeSelected {
+    margin: 0px;
+    margin-right: 2px;
+    margin-bottom: 2px;
+    border-width: 2px;
+    border-style: inset;
+}
+
+div.mxTooltip {
+    -webkit-box-shadow: 3px 3px 12px #C0C0C0;
+    -moz-box-shadow: 3px 3px 12px #C0C0C0;
+    box-shadow: 3px 3px 12px #C0C0C0;
+    background: #FFFFCC;
+    border-style: solid;
+    border-width: 1px;
+    border-color: black;
+    font-family: Arial;
+    font-size: 8pt;
+    position: absolute;
+    cursor: default;
+    padding: 4px;
+    color: black;
+}
+
+div.mxPopupMenu {
+    -webkit-box-shadow: 3px 3px 12px #C0C0C0;
+    -moz-box-shadow: 3px 3px 12px #C0C0C0;
+    box-shadow: 3px 3px 12px #C0C0C0;
+    background: url('../images/window.gif');
+    position: absolute;
+    border-style: solid;
+    border-width: 1px;
+    border-color: black;
+    cursor: default;
+}
+
+table.mxPopupMenu {
+    border-collapse: collapse;
+    margin-top: 1px;
+    margin-bottom: 1px;
+}
+
+tr.mxPopupMenuItem {
+    color: black;
+    cursor: default;
+}
+
+td.mxPopupMenuItem.disabled {
+    opacity: 0.2;
+}
+
+td.mxPopupMenuItem.disabled {
+    _filter: alpha(opacity=20) !important;
+}
+
+tr.mxPopupMenuItemHover {
+    background-color: #000066;
+    color: #FFFFFF;
+}
+
+td.mxPopupMenuItem {
+    padding: 2px 30px 2px 10px;
+    white-space: nowrap;
+    font-family: Arial;
+    font-size: 8pt;
+}
+
+td.mxPopupMenuIcon {
+    background-color: #D0D0D0;
+    padding: 2px 4px 2px 4px;
+}
+
+
+/*div.mxRubberband {
+       position: absolute;
+       overflow: hidden;
+       border-style: solid;
+       border-width: 1px;
+       border-color: #0000FF;
+       background: #0077FF;
+}
+textarea.mxCellEditor {
+       background: url('../images/transparent.gif');
+       border-style: solid;
+       border-color: black;
+       border-width: 0;
+       overflow: auto;
+}
+div.mxWindow {
+       -webkit-box-shadow: 3px 3px 12px #C0C0C0;
+       -moz-box-shadow: 3px 3px 12px #C0C0C0;
+       box-shadow: 3px 3px 12px #C0C0C0;
+       background: url('../images/window.gif');
+       border-style: outset;
+       border-width: 1px;
+       position: absolute;
+       overflow: hidden;
+       z-index: 1;
+}
+table.mxWindow {
+       border-collapse: collapse;
+       table-layout: fixed;
+       font-family: Arial;
+       font-size: 8pt;
+}
+td.mxWindowTitle {
+       background: url('../images/window-title.gif') repeat-x;
+       text-overflow: ellipsis;
+       white-space: nowrap;
+       text-align: center;
+       font-weight: bold;
+       overflow: hidden;
+       height: 13px;
+       padding: 2px;
+       padding-top: 4px;
+       padding-bottom: 6px;
+       color: black;
+}
+td.mxWindowPane {
+       vertical-align: top;
+       padding: 0px;
+}
+div.mxWindowPane {
+       overflow: hidden;
+}
+td.mxWindowPane td {
+       font-family: Arial;
+       font-size: 8pt;
+}
+td.mxWindowPane input, td.mxWindowPane select, td.mxWindowPane textarea, td.mxWindowPane radio {
+       border-color: #8C8C8C;
+       border-style: solid;
+       border-width: 1px;
+       font-family: Arial;
+       font-size: 8pt;
+       padding: 1px;
+}
+td.mxWindowPane button {
+       background: url('../images/button.gif') repeat-x;
+       font-family: Arial;
+       font-size: 8pt;
+       padding: 2px;
+       float: left;
+}
+img.mxToolbarItem {
+       margin-right: 6px;
+       margin-bottom: 6px;
+       border-width: 1px;
+}
+select.mxToolbarCombo {
+       vertical-align: top;
+       border-style: inset;
+       border-width: 2px;
+}
+div.mxToolbarComboContainer {
+       padding: 2px;
+}
+img.mxToolbarMode {
+       margin: 2px;
+       margin-right: 4px;
+       margin-bottom: 4px;
+       border-width: 0px;
+}
+img.mxToolbarModeSelected {
+       margin: 0px;
+       margin-right: 2px;
+       margin-bottom: 2px;
+       border-width: 2px;
+       border-style: inset;
+}
+div.mxTooltip {
+       -webkit-box-shadow: 3px 3px 12px #C0C0C0;
+       -moz-box-shadow: 3px 3px 12px #C0C0C0;
+       box-shadow: 3px 3px 12px #C0C0C0;
+       background: #FFFFCC;
+       border-style: solid;
+       border-width: 1px;
+       border-color: black;
+       font-family: Arial;
+       font-size: 8pt;
+       position: absolute;
+       cursor: default;
+       padding: 4px;
+       color: black;
+}
+div.mxPopupMenu {
+       -webkit-box-shadow: 3px 3px 12px #C0C0C0;
+       -moz-box-shadow: 3px 3px 12px #C0C0C0;
+       box-shadow: 3px 3px 12px #C0C0C0;
+       background: url('../images/window.gif');
+       position: absolute;
+       border-style: solid;
+       border-width: 1px;
+       border-color: black;
+       cursor: default;
+}
+table.mxPopupMenu {
+       border-collapse: collapse;
+       margin-top: 1px;
+       margin-bottom: 1px;
+}
+tr.mxPopupMenuItem {
+       color: black;
+       cursor: default;
+}
+td.mxPopupMenuItem.disabled {
+       opacity: 0.2;
+}
+td.mxPopupMenuItem.disabled {
+       _filter:alpha(opacity=20) !important;
+}
+tr.mxPopupMenuItemHover {
+       background-color: #000066;
+       color: #FFFFFF;
+}
+td.mxPopupMenuItem {
+       padding: 2px 30px 2px 10px;
+       white-space: nowrap;
+       font-family: Arial;
+       font-size: 8pt;
+}
+td.mxPopupMenuIcon {
+       background-color: #D0D0D0;
+       padding: 2px 4px 2px 4px;
+}*/
\ No newline at end of file
diff --git a/public/assets/plugins/mxgraph/css/explorer.css b/public/assets/plugins/mxgraph/css/explorer.css
new file mode 100644 (file)
index 0000000..83594e1
--- /dev/null
@@ -0,0 +1,15 @@
+div.mxTooltip {
+    filter: progid: DXImageTransform.Microsoft.DropShadow(OffX=4, OffY=4, Color='#A2A2A2', Positive='true')
+}
+
+div.mxPopupMenu {
+    filter: progid: DXImageTransform.Microsoft.DropShadow(OffX=4, OffY=4, Color='#C0C0C0', Positive='true')
+}
+
+div.mxWindow {
+    filter: progid: DXImageTransform.Microsoft.DropShadow(OffX=4, OffY=4, Color='#C0C0C0', Positive='true')
+}
+
+td.mxWindowTitle {
+    _height: 23px;
+}
\ No newline at end of file
diff --git a/public/assets/plugins/mxgraph/images/button.gif b/public/assets/plugins/mxgraph/images/button.gif
new file mode 100644 (file)
index 0000000..ad55cab
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/button.gif differ
diff --git a/public/assets/plugins/mxgraph/images/close.gif b/public/assets/plugins/mxgraph/images/close.gif
new file mode 100644 (file)
index 0000000..1069e94
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/close.gif differ
diff --git a/public/assets/plugins/mxgraph/images/collapsed.gif b/public/assets/plugins/mxgraph/images/collapsed.gif
new file mode 100644 (file)
index 0000000..0276444
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/collapsed.gif differ
diff --git a/public/assets/plugins/mxgraph/images/error.gif b/public/assets/plugins/mxgraph/images/error.gif
new file mode 100644 (file)
index 0000000..14e1aee
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/error.gif differ
diff --git a/public/assets/plugins/mxgraph/images/expanded.gif b/public/assets/plugins/mxgraph/images/expanded.gif
new file mode 100644 (file)
index 0000000..3767b0b
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/expanded.gif differ
diff --git a/public/assets/plugins/mxgraph/images/maximize.gif b/public/assets/plugins/mxgraph/images/maximize.gif
new file mode 100644 (file)
index 0000000..e27cf3e
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/maximize.gif differ
diff --git a/public/assets/plugins/mxgraph/images/minimize.gif b/public/assets/plugins/mxgraph/images/minimize.gif
new file mode 100644 (file)
index 0000000..1e95e7c
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/minimize.gif differ
diff --git a/public/assets/plugins/mxgraph/images/normalize.gif b/public/assets/plugins/mxgraph/images/normalize.gif
new file mode 100644 (file)
index 0000000..34a8d30
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/normalize.gif differ
diff --git a/public/assets/plugins/mxgraph/images/point.gif b/public/assets/plugins/mxgraph/images/point.gif
new file mode 100644 (file)
index 0000000..9074c39
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/point.gif differ
diff --git a/public/assets/plugins/mxgraph/images/resize.gif b/public/assets/plugins/mxgraph/images/resize.gif
new file mode 100644 (file)
index 0000000..ff558db
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/resize.gif differ
diff --git a/public/assets/plugins/mxgraph/images/separator.gif b/public/assets/plugins/mxgraph/images/separator.gif
new file mode 100644 (file)
index 0000000..5c1b895
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/separator.gif differ
diff --git a/public/assets/plugins/mxgraph/images/submenu.gif b/public/assets/plugins/mxgraph/images/submenu.gif
new file mode 100644 (file)
index 0000000..ffe7617
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/submenu.gif differ
diff --git a/public/assets/plugins/mxgraph/images/transparent.gif b/public/assets/plugins/mxgraph/images/transparent.gif
new file mode 100644 (file)
index 0000000..76040f2
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/transparent.gif differ
diff --git a/public/assets/plugins/mxgraph/images/warning.gif b/public/assets/plugins/mxgraph/images/warning.gif
new file mode 100644 (file)
index 0000000..705235f
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/warning.gif differ
diff --git a/public/assets/plugins/mxgraph/images/warning.png b/public/assets/plugins/mxgraph/images/warning.png
new file mode 100644 (file)
index 0000000..2f78789
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/warning.png differ
diff --git a/public/assets/plugins/mxgraph/images/window-title.gif b/public/assets/plugins/mxgraph/images/window-title.gif
new file mode 100644 (file)
index 0000000..231def8
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/window-title.gif differ
diff --git a/public/assets/plugins/mxgraph/images/window.gif b/public/assets/plugins/mxgraph/images/window.gif
new file mode 100644 (file)
index 0000000..6631c4f
Binary files /dev/null and b/public/assets/plugins/mxgraph/images/window.gif differ
diff --git a/public/assets/plugins/square/images/checkmark.gif b/public/assets/plugins/square/images/checkmark.gif
new file mode 100644 (file)
index 0000000..d79444d
Binary files /dev/null and b/public/assets/plugins/square/images/checkmark.gif differ
diff --git a/public/assets/plugins/square/images/clear.gif b/public/assets/plugins/square/images/clear.gif
new file mode 100644 (file)
index 0000000..c6acf0a
Binary files /dev/null and b/public/assets/plugins/square/images/clear.gif differ
diff --git a/public/assets/plugins/square/images/close.png b/public/assets/plugins/square/images/close.png
new file mode 100644 (file)
index 0000000..d319efb
Binary files /dev/null and b/public/assets/plugins/square/images/close.png differ
diff --git a/public/assets/plugins/square/images/collapsed.gif b/public/assets/plugins/square/images/collapsed.gif
new file mode 100644 (file)
index 0000000..ce97774
Binary files /dev/null and b/public/assets/plugins/square/images/collapsed.gif differ
diff --git a/public/assets/plugins/square/images/connector.png b/public/assets/plugins/square/images/connector.png
new file mode 100644 (file)
index 0000000..e545f8e
Binary files /dev/null and b/public/assets/plugins/square/images/connector.png differ
diff --git a/public/assets/plugins/square/images/dropdown.gif b/public/assets/plugins/square/images/dropdown.gif
new file mode 100644 (file)
index 0000000..9c94ea5
Binary files /dev/null and b/public/assets/plugins/square/images/dropdown.gif differ
diff --git a/public/assets/plugins/square/images/dropdown.png b/public/assets/plugins/square/images/dropdown.png
new file mode 100644 (file)
index 0000000..0aeac2d
Binary files /dev/null and b/public/assets/plugins/square/images/dropdown.png differ
diff --git a/public/assets/plugins/square/images/edit.gif b/public/assets/plugins/square/images/edit.gif
new file mode 100644 (file)
index 0000000..3c07607
Binary files /dev/null and b/public/assets/plugins/square/images/edit.gif differ
diff --git a/public/assets/plugins/square/images/expanded.gif b/public/assets/plugins/square/images/expanded.gif
new file mode 100644 (file)
index 0000000..461297f
Binary files /dev/null and b/public/assets/plugins/square/images/expanded.gif differ
diff --git a/public/assets/plugins/square/images/grid.gif b/public/assets/plugins/square/images/grid.gif
new file mode 100644 (file)
index 0000000..f4e7063
Binary files /dev/null and b/public/assets/plugins/square/images/grid.gif differ
diff --git a/public/assets/plugins/square/images/handle-fixed.png b/public/assets/plugins/square/images/handle-fixed.png
new file mode 100644 (file)
index 0000000..b4b600b
Binary files /dev/null and b/public/assets/plugins/square/images/handle-fixed.png differ
diff --git a/public/assets/plugins/square/images/handle-main.png b/public/assets/plugins/square/images/handle-main.png
new file mode 100644 (file)
index 0000000..ee067ff
Binary files /dev/null and b/public/assets/plugins/square/images/handle-main.png differ
diff --git a/public/assets/plugins/square/images/handle-rotate.png b/public/assets/plugins/square/images/handle-rotate.png
new file mode 100644 (file)
index 0000000..f3dd46e
Binary files /dev/null and b/public/assets/plugins/square/images/handle-rotate.png differ
diff --git a/public/assets/plugins/square/images/handle-secondary.png b/public/assets/plugins/square/images/handle-secondary.png
new file mode 100644 (file)
index 0000000..b4a3090
Binary files /dev/null and b/public/assets/plugins/square/images/handle-secondary.png differ
diff --git a/public/assets/plugins/square/images/handle-terminal.png b/public/assets/plugins/square/images/handle-terminal.png
new file mode 100644 (file)
index 0000000..ec03b31
Binary files /dev/null and b/public/assets/plugins/square/images/handle-terminal.png differ
diff --git a/public/assets/plugins/square/images/help.png b/public/assets/plugins/square/images/help.png
new file mode 100644 (file)
index 0000000..17ee2eb
Binary files /dev/null and b/public/assets/plugins/square/images/help.png differ
diff --git a/public/assets/plugins/square/images/locked.png b/public/assets/plugins/square/images/locked.png
new file mode 100644 (file)
index 0000000..8dbac82
Binary files /dev/null and b/public/assets/plugins/square/images/locked.png differ
diff --git a/public/assets/plugins/square/images/logo.png b/public/assets/plugins/square/images/logo.png
new file mode 100644 (file)
index 0000000..053a1eb
Binary files /dev/null and b/public/assets/plugins/square/images/logo.png differ
diff --git a/public/assets/plugins/square/images/nocolor.png b/public/assets/plugins/square/images/nocolor.png
new file mode 100644 (file)
index 0000000..aec4534
Binary files /dev/null and b/public/assets/plugins/square/images/nocolor.png differ
diff --git a/public/assets/plugins/square/images/refresh.png b/public/assets/plugins/square/images/refresh.png
new file mode 100644 (file)
index 0000000..b131204
Binary files /dev/null and b/public/assets/plugins/square/images/refresh.png differ
diff --git a/public/assets/plugins/square/images/round-drop.png b/public/assets/plugins/square/images/round-drop.png
new file mode 100644 (file)
index 0000000..b5e2fb6
Binary files /dev/null and b/public/assets/plugins/square/images/round-drop.png differ
diff --git a/public/assets/plugins/square/images/search.png b/public/assets/plugins/square/images/search.png
new file mode 100644 (file)
index 0000000..d763a72
Binary files /dev/null and b/public/assets/plugins/square/images/search.png differ
diff --git a/public/assets/plugins/square/images/tooltip.png b/public/assets/plugins/square/images/tooltip.png
new file mode 100644 (file)
index 0000000..ad20c04
Binary files /dev/null and b/public/assets/plugins/square/images/tooltip.png differ
diff --git a/public/assets/plugins/square/images/transparent.gif b/public/assets/plugins/square/images/transparent.gif
new file mode 100644 (file)
index 0000000..76040f2
Binary files /dev/null and b/public/assets/plugins/square/images/transparent.gif differ
diff --git a/public/assets/plugins/square/images/triangle-down.png b/public/assets/plugins/square/images/triangle-down.png
new file mode 100644 (file)
index 0000000..d03b98f
Binary files /dev/null and b/public/assets/plugins/square/images/triangle-down.png differ
diff --git a/public/assets/plugins/square/images/triangle-left.png b/public/assets/plugins/square/images/triangle-left.png
new file mode 100644 (file)
index 0000000..44b8425
Binary files /dev/null and b/public/assets/plugins/square/images/triangle-left.png differ
diff --git a/public/assets/plugins/square/images/triangle-right.png b/public/assets/plugins/square/images/triangle-right.png
new file mode 100644 (file)
index 0000000..9865628
Binary files /dev/null and b/public/assets/plugins/square/images/triangle-right.png differ
diff --git a/public/assets/plugins/square/images/triangle-up.png b/public/assets/plugins/square/images/triangle-up.png
new file mode 100644 (file)
index 0000000..6d93676
Binary files /dev/null and b/public/assets/plugins/square/images/triangle-up.png differ
diff --git a/public/assets/plugins/square/images/unlocked.png b/public/assets/plugins/square/images/unlocked.png
new file mode 100644 (file)
index 0000000..5ea44c1
Binary files /dev/null and b/public/assets/plugins/square/images/unlocked.png differ
diff --git a/public/assets/plugins/square/resources/grapheditor.txt b/public/assets/plugins/square/resources/grapheditor.txt
new file mode 100644 (file)
index 0000000..e8fd69a
--- /dev/null
@@ -0,0 +1,492 @@
+alreadyConnected=Nodes already connected
+cancel=Cancel
+close=Close
+collapse-expand=Collapse/Expand
+containsValidationErrors=Contains validation errors
+done=Done
+doubleClickOrientation=Doubleclick to Change Orientation
+error=Error
+ok=OK
+updatingDocument=Updating Document. Please wait...
+updatingSelection=Updating Selection. Please wait...
+about=About
+actualSize=Actual Size
+add=Add
+addLayer=Add Layer
+addProperty=Add Property
+addToExistingDrawing=Add to Existing Drawing
+addWaypoint=Add Waypoint
+advanced=Advanced
+align=Align
+alignment=Alignment
+allChangesLost=All changes will be lost!
+angle=Angle
+apply=Apply
+arrange=Arrange
+arrow=Arrow
+arrows=Arrows
+automatic=Automatic
+autosave=Autosave
+autosize=Autosize
+background=Background
+backgroundColor=Background Color
+backgroundImage=Background Image
+basic=Basic
+block=Block
+blockquote=Blockquote
+bold=Bold
+borderWidth=Borderwidth
+borderColor=Border Color
+bottom=Bottom
+bottomAlign=Bottom Align
+bottomLeft=Bottom Left
+bottomRight=Bottom Right
+bulletedList=Bulleted List
+cannotOpenFile=Cannot open file
+center=Center
+change=Change
+changeOrientation=Change Orientation
+circle=Circle
+classic=Classic
+clearDefaultStyle=Clear Default Style
+clearWaypoints=Clear Waypoints
+clipart=Clipart
+collapse=Collapse
+collapseExpand=Collapse/Expand
+collapsible=Collapsible
+comic=Comic
+connect=Connect
+connection=Connection
+connectionPoints=Connection points
+connectionArrows=Connection arrows
+constrainProportions=Constrain Proportions
+copy=Copy
+copyConnect=Copy on Connect
+create=Create
+curved=Curved
+custom=Custom
+cut=Cut
+dashed=Dashed
+decreaseIndent=Decrease Indent
+default=Default
+delete=Delete
+deleteColumn=Delete Column
+deleteRow=Delete Row
+diagram=Diagram
+diamond=Diamond
+diamondThin=Diamond (thin)
+direction=Direction
+distribute=Distribute
+divider=Divider
+documentProperties=Document Properties
+dotted=Dotted
+drawing=Drawing{1}
+drawingEmpty=Drawing is empty
+drawingTooLarge=Drawing is too large
+duplicate=Duplicate
+duplicateIt=Duplicate {1}
+east=East
+edit=Edit
+editData=Edit Data
+editDiagram=Edit Diagram
+editImage=Edit Image
+editLink=Edit Link
+editStyle=Edit Style
+editTooltip=Edit Tooltip
+enterGroup=Enter Group
+enterValue=Enter Value
+enterName=Enter Name
+enterPropertyName=Enter Property Name
+entityRelation=Entity Relation
+exitGroup=Exit Group
+expand=Expand
+export=Export
+extras=Extras
+file=File
+fileNotFound=File not found
+filename=Filename
+fill=Fill
+fillColor=Fill Color
+fitPage=One Page
+fitPageWidth=Page Width
+fitTwoPages=Two Pages
+fitWindow=Fit Window
+flip=Flip
+flipH=Flip Horizontal
+flipV=Flip Vertical
+font=Font
+fontFamily=Font Family
+fontColor=Font Color
+fontSize=Font Size
+format=Format
+formatPanel=Format Panel
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=Formatted
+formattedText=Formatted Text
+general=General
+glass=Glass
+global=Global
+gradient=Gradient
+gradientColor=Color
+grid=Grid
+gridSize=Grid Size
+group=Group
+guides=Guides
+heading=Heading
+height=Height
+help=Help
+hide=Hide
+hideIt=Hide {1}
+hidden=Hidden
+home=Home
+horizontal=Horizontal
+horizontalFlow=Horizontal Flow
+horizontalTree=Horizontal Tree
+html=HTML
+image=Image
+images=Images
+import=Import
+increaseIndent=Increase Indent
+insert=Insert
+insertColumnBefore=Insert Column Left
+insertColumnAfter=Insert Column Right
+insertHorizontalRule=Insert Horizontal Rule
+insertImage=Insert Image
+insertLink=Insert Link
+insertRowBefore=Insert Row Above
+insertRowAfter=Insert Row Below
+invalidName=Invalid name
+invalidOrMissingFile=Invalid or missing file
+isometric=Isometric
+italic=Italic
+layers=Layers
+landscape=Landscape
+laneColor=Lanecolor
+layout=Layout
+left=Left
+leftAlign=Left Align
+leftToRight=Left to Right
+line=Line
+link=Link
+lineend=Line End
+lineheight=Line Height
+linestart=Line Start
+linewidth=Linewidth
+loading=Loading
+lockUnlock=Lock/Unlock
+manual=Manual
+middle=Middle
+misc=Misc
+more=More
+moreResults=More Results
+move=Move
+moveSelectionTo=Move Selection to {1}
+navigation=Navigation
+new=New
+noColor=No Color
+noFiles=No files
+noMoreResults=No more results
+none=None
+noResultsFor=No results for '{1}'
+normal=Normal
+north=North
+numberedList=Numbered List
+opacity=Opacity
+open=Open
+openArrow=Open Arrow
+openFile=Open File
+openLink=Open Link
+openSupported=Supported format is .XML files saved from this software
+openInNewWindow=Open in New Window
+openInThisWindow=Open in this Window
+options=Options
+organic=Organic
+orthogonal=Orthogonal
+outline=Outline
+oval=Oval
+pages=Pages
+pageView=Page View
+pageScale=Page Scale
+pageSetup=Page Setup
+panTooltip=Space+Drag to Scroll
+paperSize=Paper Size
+paste=Paste
+pasteHere=Paste Here
+pattern=Pattern
+perimeter=Perimeter
+placeholders=Placeholders
+plusTooltip=Click to connect and clone (ctrl+click to clone, shift+click to connect). Drag to connect (ctrl+drag to clone).
+portrait=Portrait
+position=Position
+posterPrint=Poster Print
+preview=Preview
+print=Print
+radialTree=Radial Tree
+redo=Redo
+removeFormat=Clear Formatting
+removeFromGroup=Remove from Group
+removeIt=Remove {1}
+removeWaypoint=Remove Waypoint
+rename=Rename
+renameIt=Rename {1}
+replace=Replace
+replaceIt={1} already exists. Do you want to replace it?
+replaceExistingDrawing=Replace existing drawing
+reset=Reset
+resetView=Reset View
+right=Right
+rightAlign=Right Align
+rightToLeft=Right to Left
+rotate=Rotate
+rotateTooltip=Click and drag to rotate, click to turn by 90 degrees
+rotation=Rotation
+rounded=Rounded
+save=Save
+saveAs=Save as
+saved=Saved
+scrollbars=Scrollbars
+search=Search
+searchShapes=Search Shapes
+selectAll=Select All
+selectEdges=Select Edges
+selectFont=Select a Font
+selectNone=Select None
+selectVertices=Select Vertices
+setAsDefaultStyle=Set as Default Style
+shadow=Shadow
+shape=Shape
+sharp=Sharp
+sidebarTooltip=Click to expand. Drag and drop shapes into the diagram. Shift+click to change selection. Alt+click to insert and connect.
+simple=Simple
+simpleArrow=Simple Arrow
+size=Size
+solid=Solid
+sourceSpacing=Source Spacing
+south=South
+spacing=Spacing
+straight=Straight
+strokeColor=Line Color
+style=Style
+subscript=Subscript
+superscript=Superscript
+table=Table
+targetSpacing=Target Spacing
+text=Text
+textAlignment=Text Alignment
+textOpacity=Text Opacity
+toBack=To Back
+toFront=To Front
+tooltips=Tooltips
+top=Top
+topAlign=Top Align
+topLeft=Top Left
+topRight=Top Right
+transparent=Transparent
+turn=Turn
+uml=UML
+underline=Underline
+undo=Undo
+ungroup=Ungroup
+url=URL
+untitledLayer=Untitled Layer
+vertical=Vertical
+verticalFlow=Vertical Flow
+verticalTree=Vertical Tree
+view=View
+waypoints=Waypoints
+west=West
+width=Width
+wordWrap=Word Wrap
+writingDirection=Writing Direction
+zoom=Zoom
+zoomIn=Zoom In
+zoomOut=Zoom Out
+label=Label
+timeout=Timeout (seconds)
+response=Response Timeout
+digit=Max Digit
+escape=Escape Digits
+retry=Retry
+name=Name
+value=Value
+entry=Entry
+start=Start
+finally=Finally
+end=End
+variable=Variable
+set=Set
+operation=Operation
+math=Math
+result=Result
+call_management=Call Management
+answer=Answer
+hangup=Hangup
+dial=Internal Dial
+ext_dial=External Dial
+phone=Phone
+trunk=Trunk
+identifier=Identifier
+queue=Queue
+voicemail=VoiceMail
+boxnumber=Box Number
+playback=Playback
+menu=Menu
+saydigits=SayDigits
+digits=Digits
+saynumber=SayNumber
+number=Number
+sayphonetic=SayPhonetic
+escape_digits=Escape Digits
+tts=GoogleTTS
+ispeechtts=iSpeechTTS
+key=Key
+getdigits=GetDigits
+mindigit=Min Digits
+maxdigit=Max Digits
+custom_app=Custom App
+language=Language
+frequency=Frequency
+integrationServer=Integration Server
+database=Database
+query=Query
+asr=ASR
+sendSMS=SendSMS
+account_id=Account
+template_id=Template
+to=To
+sms_text=Text
+sendMail=SendMail
+subject=Subject
+cc=Cc
+threshold=Threshold
+maxspeech=Max Speech
+grammar=Grammar
+ispeechasr=iSpeechASR
+model=Model
+noop=NoOp
+output=Output
+system=System
+command=Command
+application=Application
+agi=AGI
+args=Arguments
+subproject=SubProject
+goalname=Goal Name
+callflow=Callflow
+gotoc=Goto
+context=Context
+extension=Extension
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=Time Interval
+leftOperand=Left Operand
+condition=Condition
+rightOperand=Right Operand
+vswitch=Switch
+recording=Recording
+record=Record
+queuename=Queue Name
+announceoverride=Announce Override
+callid=CallID
+agent=Agent
+queue_event=Event
+data1=Data1
+data2=Data2
+data3=Data3
+data4=Data4
+data5=Data5
+macro=Macro
+stats=Stats
+queuelog=QueueLog
+goal=Goal
+callback=Callback
+list=List
+delay=Delay
+list_id=List
+opts=Options
+queue_id=Queue
+file_id=File
+variable_id=Variable
+gosub=Gosub
+project_id=Project
+sip_id=SIP
+trunk_name=Trunk
+variable_value=Variable Value
+database_id=Database
+interval_id=Interval
+description_start=Start description
+publish=Publish
+ispeech_asr_language=Language
+ispeech_tts_language=Language
+google_tts_language=Language
+queue_variable=Queue from Variable
+odbc_id=ODBC Connection
+noVariableSelected=Variable is not specified.
+noTrunkSelected=The Trunk is not specified.
+noAudioSelected=Audio file is not specified.
+noOperandSelected=Left operand is not specified.
+noDatabaseSelected=Database is not specified.
+noExtensionSelected=Extension is not specified.
+noCommandSelected=Command is not specified.
+noApplicationSelected=Application is not specified.
+noRightOperandSelected=Right operand is not specified.
+noDigitsSelected=Digits is not specified.
+noNumberSelected=Number is not specified.
+noRecipientSelected=Recipient is not specified.
+noTextSelected=Text is not specified.
+noAccountSelected=Account is not specified.
+noKeySelected=Key is not specified.
+noIdentifierSelected=Identifier is not specified.
+noQueueSelected=Queue Name is not specified.
+noConditionSelected=Condition is not specified.
+noIntervalSelected=Interval is not specified.
+noContextSelected=Context is not specified.
+noBoxNumberSelected=Box Name is not specified.
+noProjectSelected=SubProject is not specified.
+noFileSelected=File Name is not specified.
+numberOrInvalidOrTimeout=Insert number, i or t (verify white spaces).
+numberOrAll=Insert number or -.
+numberOrInvalidOrDefault=Insert x, i or -.
+trueOrFalse=Insert true or false.
+noGoalSelected=Goal is not specified.
+noListSelected=List is not specified.
+musthave= must have
+outgoingedge= outgoing edge.
+incomingedge= incoming edge.
+mailbox=Mailbox
+intKey=Interrupt Key
+speed=Speed
+wrongMinDigit=Min Digit has to be greater than 0
+wrongMaxDigit=Max Digit has to be greater than 0
+wrongHiddenDigitsnum=Hidden Digits number has to be greater than or equal to 0
+hiddendigitsnum=Hidden Digits Number
+hiddendigitspos=Hidden Digits position
+getsecretdigits=GetSecretDigits
+beep=Beep
+description=Description
+recordingFormat=Format
+bcc=Bcc
+invalidTimeout=Invalid Timeout value
+invalidRetry=Invalid Retry value
+invalidSpeed=Invalid Speed value
+missingQuery=The query string is missing
+invalidPriority=Invalid Priority value
+noApplicationSelected=The Application is not specified
+invalidDelay=Invalid Delay value
+noAttachmentSelected=No attachment selected
+sendFax=SendFax
+attachment_name=Selected Attachment
+choose_attachment=Choose Attachment
+help_choose_attachment=Format: pdf,tiff or tif
+help_delay=Time, in minutes, to wait before calling back the contact
+noFirstNameSelected=First Name is not specified
+noPhoneSelected=Phone is not specified
+editFile=Edit XML
+priority=Priority
+numberOrLettersOrAll=Insert numbers, letters or -.
diff --git a/public/assets/plugins/square/resources/grapheditor_da.txt b/public/assets/plugins/square/resources/grapheditor_da.txt
new file mode 100644 (file)
index 0000000..ddf8d48
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=I forvejen er tilsluttet
+cancel=Annuller
+close=Luk
+collapse-expand=Skjul/vis
+containsValidationErrors=Indeholder valideringsfejl
+done=Udfaerdiget
+doubleClickOrientation=Doubleclick at ændre orienteringen
+error=Fejl
+ok=OK
+updatingDocument=Opdatering af dokument. Vent venligst...
+updatingSelection=Opdatering af udvalg. Vent venligst...
+about=Om
+actualSize=Faktisk størrelse
+add=Tilføj
+addLayer=Tilføj lag
+addProperty=Tilføj Ejendom
+addToExistingDrawing=Tilføj til eksisterende tegning
+addWaypoint=Tilføj Waypoint
+advanced=Avanceret
+align=Juster
+alignment=Opretning
+allChangesLost=Alle ændringer går tabt!
+angle=Vinkel
+apply=Anvendelse
+arrange=Arrangere
+arrow=Pil
+arrows=Pile
+automatic=Automatisk
+autosave=Autogem
+autosize=Autostr.
+background=Baggrund
+backgroundColor=Baggrundsfarve
+backgroundImage=Baggrundsbillede
+basic=Grundlæggende
+block=Blok
+blockquote=Blockquote
+bold=Bold
+borderWidth=Borderwidth
+borderColor=Kantfarve
+bottom=Nederste
+bottomAlign=Bunden flugt
+bottomLeft=Nederst til venstre
+bottomRight=Nederst til højre
+bulletedList=Punktopstilling
+cannotOpenFile=Kan ikke åbne fil
+center=Center
+change=Skift
+changeOrientation=Skift retning
+circle=Cirkel
+classic=Classic
+clearDefaultStyle=Klar standardstil
+clearWaypoints=Tydelige vejpunkter
+clipart=Clipart
+collapse=Kollaps
+collapseExpand=Skjul/vis
+collapsible=Sammenfoldelige
+comic=Tegneserie
+connect=Tilslut
+connection=Tilslutning
+connectionPoints=Forbindelsespunkter
+connectionArrows=Tilslutning pile
+constrainProportions=Indspænd proportioner
+copy=Kopi
+copyConnect=Kopi på Tilslut.
+create=Opret
+curved=Kurvede
+custom=Brugerdefineret
+cut=Skær
+dashed=Stiplet
+decreaseIndent=Formindsk indrykning
+default=Standard
+delete=Slet
+deleteColumn=Slette kolonne
+deleteRow=Slet række
+diagram=Diagram
+diamond=Diamond
+diamondThin=Diamond (tynd)
+direction=Retning
+distribute=Distribuer
+divider=Rumdeler
+documentProperties=Dokumentegenskaberne
+dotted=Stiplet
+drawing=Tegning{1}
+drawingEmpty=Tegningen er tom
+drawingTooLarge=Tegningen er for stor
+duplicate=Dublet
+duplicateIt=Duplikér {1}
+east=Øst
+edit=Rediger
+editData=Rediger data
+editDiagram=Rediger diagrammet
+editImage=Rediger billede
+editLink=Rediger Link
+editStyle=Edit stil
+editTooltip=Rediger værktøjstip
+enterGroup=Indtast gruppe
+enterValue=Indtast værdi
+enterName=Indtast navnet
+enterPropertyName=Indtast navn på ejendom
+entityRelation=Entity Relation
+exitGroup=Forlad gruppe
+expand=Udvid
+export=Eksporter
+extras=Ekstramateriale
+file=Fil
+fileNotFound=Filen blev ikke fundet
+filename=Filnavn
+fill=Fyld
+fillColor=Farveudfyldning
+fitPage=En side
+fitPageWidth=Sidebredde
+fitTwoPages=To sider
+fitWindow=Pasform
+flip=Flip
+flipH=Vend vandret
+flipV=Flip Vertical
+font=Font
+fontFamily=Font Family
+fontColor=Font Color
+fontSize=Skriftstørrelse
+format=Format
+formatPanel=Formatpanelet
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=Formateret
+formattedText=Formaterede tekst
+general=Generel
+glass=Glas
+global=Global
+gradient=Gradient
+gradientColor=Farve
+grid=Grid
+gridSize=Rastermaal
+group=Gruppe
+guides=Guider
+heading=Overskrift
+height=Højde
+help=Hjælp
+hide=Skjul
+hideIt=Skjul {1}
+hidden=Skjult
+home=Forside
+horizontal=Vandret
+horizontalFlow=Vandret Flow
+horizontalTree=Vandret træ
+html=HTML
+image=Billede
+images=Billeder
+import=Importer
+increaseIndent=Forøg indrykning
+insert=Indsæt
+insertColumnBefore=Indsæt kolonne venstre
+insertColumnAfter=Indsæt Kolonne til højre
+insertHorizontalRule=Indsæt vandret regel
+insertImage=Indsæt billede
+insertLink=Indsæt Link
+insertRowBefore=Indsæt række over
+insertRowAfter=Indsæt række nedenfor
+invalidName=Ugyldigt navn
+invalidOrMissingFile=Ugyldig eller manglende fil
+isometric=Isometrisk
+italic=Kursiv
+layers=Lag
+landscape=Landskab
+laneColor=Lanecolor
+layout=Layout
+left=Venstre
+leftAlign=Venstrejuster
+leftToRight=Fra venstre mod højre
+line=Line
+link=Link
+lineend=Linjeafslutning
+lineheight=Linie højde
+linestart=Line Start
+linewidth=Linjebredde
+loading=Indlæsning
+lockUnlock=Lock/Unlock (låsetast
+manual=Manuel
+middle=Midt
+misc=Div.
+more=Mere
+moreResults=Flere resultater
+move=Flyt
+moveSelectionTo=Flytter markering til {1}
+navigation=Navigation
+new=Ny
+noColor=Ingen farve
+noFiles=Ingen filer
+noMoreResults=Ikke flere resultater
+none=Ingen
+noResultsFor=Ingen resultater for '{1}'
+normal=Normal
+north=Nord
+numberedList=Nummereret liste
+opacity=Opacitet
+open=Åbn
+openArrow=Åben pil
+openFile=Åbn fil
+openLink=Åbn Link
+openSupported=Understøttede formater er .XML filer gemt fra denne software
+openInNewWindow=Åbn i nyt vindue
+openInThisWindow=Åbent i dette vindue
+options=Valgmuligheder
+organic=Organisk
+orthogonal=Retvinklede
+outline=Omrids
+oval=Oval
+pages=Sider
+pageView=Sidevisning
+pageScale=Side skala
+pageSetup=Sideopsætning
+panTooltip=Plads træk for at rulle
+paperSize=Papirstørrelse
+paste=Indsæt
+pasteHere=Indsæt her
+pattern=Mønster
+perimeter=Perimeter
+placeholders=Pladsholdere
+plusTooltip=Klik på Tilslut og kopier (Ctrl-klik for at klone, trykke på Shift og klikke på Connect). Træk til slut (ctrl-træk for at kopiere).
+portrait=Portræt
+position=Position
+posterPrint=Plakat Print
+preview=Preview
+print=Udskriv
+radialTree=Radial Tree
+redo=Redo
+removeFormat=Ryd formatering
+removeFromGroup=Fjern fra gruppe
+removeIt=Fjern {1}
+removeWaypoint=Fjern waypoint
+rename=Omdøb
+renameIt=Omdøb {1}
+replace=Udskift
+replaceIt={1} findes allerede. Ønsker du at overskrive den?
+replaceExistingDrawing=Erstat eksisterende tegning
+reset=Nulstil
+resetView=Nulstil visning
+right=Højre
+rightAlign=Højrejustere
+rightToLeft=Højre til venstre
+rotate=Drej
+rotateTooltip=Klik og træk for at rotere, klik og drej den 90 grader
+rotation=Rotation
+rounded=Afrundet
+save=Gem
+saveAs=Gem som
+saved=Gemt
+scrollbars=Rullepaneler
+search=Søg
+searchShapes=Søg profiler
+selectAll=Vælg Alle
+selectEdges=Vælg kanter
+selectFont=Vælg en skrifttype
+selectNone=Vælg Ingen
+selectVertices=Vælg knudepunkter
+setAsDefaultStyle=Indstil som standard Style
+shadow=Skygge
+shape=Shape
+sharp=Sharp
+sidebarTooltip=Klik for at udvide. Træk og slip figurerne i tegningen. Klik på Skift for at ændre valget. Alt klik på Indsæt og tilslut.
+simple=Enkel
+simpleArrow=Enkelt pil
+size=Størrelse
+solid=Solid
+sourceSpacing=Afstand mellem kilder
+south=Syd
+spacing=Linjeafstand
+straight=Lige
+strokeColor=Linjens farve
+style=Stil
+subscript=Subscript
+superscript=Superscript
+table=Tabel
+targetSpacing=Mål afstanden
+text=Tekst
+textAlignment=Tekstopstilling
+textOpacity=Tekst opacitet
+toBack=Tilbage til
+toFront=Til forsiden
+tooltips=Værktøjstip
+top=Til top
+topAlign=Top flugt
+topLeft=Øverst til venstre
+topRight=Øverst til højre
+transparent=Gennemsigtig
+turn=Drej
+uml=UML
+underline=Underline
+undo=Fortryd
+ungroup=Opløs
+url=URL
+untitledLayer=Untitled lag
+vertical=Lodret
+verticalFlow=Vertikal Flow
+verticalTree=Lodrette træ
+view=Se
+waypoints=Waypoints
+west=West
+width=Bredde
+wordWrap=Tekstombrydning
+writingDirection=Skriveretning
+zoom=Zoom
+zoomIn=Zoom ind
+zoomOut=Zoom ud
+label=Etiket
+timeout=Timeout (sekunder)
+response=Svar Timeout
+digit=Max ciffer
+escape=Escape-tegn
+retry=Prøv igen
+name=Navnet
+value=Værdi
+entry=Indrejse
+start=Start
+finally=Endelig
+end=Slutningen
+variable=Variabel
+set=Indstil
+operation=Drift
+math=Matematik
+result=Resultat
+call_management=Opkaldsstyring
+answer=Svar
+hangup=Hangup
+dial=Interne opkald
+ext_dial=Eksterne opkald
+phone=Telefonen
+trunk=Trunk
+identifier=Id
+queue=Kø
+voicemail=Telefonsvarer
+boxnumber=Rubrik
+playback=Afspilning
+menu=Menu
+saydigits=SayDigits
+digits=Cifre
+saynumber=SayNumber
+number=Antallet
+sayphonetic=SayPhonetic
+escape_digits=Escape-tegn
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=Nøgle
+getdigits=GetDigits
+mindigit=Min cifre
+maxdigit=Max cifre
+custom_app=Brugerdefineret program
+language=Sprog
+frequency=Frekvens
+integrationServer=Integration Server
+database=Database
+query=Forespørgsel
+asr=ASR
+sendSMS=SendSMS
+account_id=Konto
+template_id=Skabelon
+to=Til
+sms_text=Tekst
+sendMail=SendMail
+subject=Genstand
+cc=Kreds
+threshold=Tærskel
+maxspeech=Max indlæg
+grammar=Grammatik
+ispeechasr=ISpeechASR
+model=Model
+noop=NoOp
+output=Udgang
+system=System
+command=Kommando
+application=Anvendelse
+agi=AGI
+args=Argumenter
+subproject=Delprojekt
+goalname=Mål navn
+callflow=Callflow
+gotoc=Goto
+context=Kontekst
+extension=Udvidelse
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=Tidsinterval
+leftOperand=Venstre Operand
+condition=Betingelse
+rightOperand=Højre Operand
+vswitch=Kontakt
+recording=Optagelse
+record=Registrer
+queuename=Kønavnet
+announceoverride=Annoncere tilsidesætte
+callid=CallID
+agent=Agent
+queue_event=Hændelse
+data1=Data1
+data2=Data2
+data3=Data3
+data4=Data4
+data5=Data5
+macro=Makro
+stats=Statistik
+queuelog=QueueLog
+goal=Mål
+callback=Callback
+list=Listen
+delay=Forsinkelse
+list_id=Listen
+opts=Valgmuligheder
+queue_id=Kø
+file_id=Fil
+variable_id=Variabel
+gosub=Gosub
+project_id=Projekt
+sip_id=SIP
+trunk_name=Trunk
+variable_value=Variabel værdi
+database_id=Database
+interval_id=Interval
+description_start=Start beskrivelse
+publish=Pubblica
+ispeech_asr_language=Sprog
+ispeech_tts_language=Sprog
+google_tts_language=Sprog
+queue_variable=Kø fra variabel
+odbc_id=ODBC-forbindelsen.
+noVariableSelected=Variablen er ikke angivet.
+noTrunkSelected=Bagagerummet er ikke angivet.
+noAudioSelected=Lydfilen er ikke angivet.
+noOperandSelected=Venstre operand er ikke angivet.
+noDatabaseSelected=Databasen er ikke angivet.
+noExtensionSelected=Udvidelsen er ikke angivet.
+noCommandSelected=Kommandoen er ikke angivet.
+noApplicationSelected=Applikationen er ikke angivet
+noRightOperandSelected=Højre operand er ikke angivet.
+noDigitsSelected=Cifrene er ikke angivet.
+noNumberSelected=Nummer ikke er angivet.
+noRecipientSelected=Modtageren er ikke angivet.
+noTextSelected=Teksten er ikke angivet.
+noAccountSelected=Kontoen er ikke angivet.
+noKeySelected=Nøglen er ikke angivet.
+noIdentifierSelected=Id er ikke angivet.
+noQueueSelected=Kønavnet ikke er angivet.
+noConditionSelected=Tilstanden er ikke angivet.
+noIntervalSelected=Intervallet er ikke angivet.
+noContextSelected=Konteksten er ikke angivet.
+noBoxNumberSelected=Feltet Navn er ikke angivet.
+noProjectSelected=Delprojektet er ikke angivet.
+noFileSelected=Filnavn er ikke angivet.
+numberOrInvalidOrTimeout=Indsæt nummer, jeg eller t (verify hvide mellemrum).
+numberOrAll=Indsæt nummer eller -.
+numberOrInvalidOrDefault=Sæt x, eller jeg -.
+trueOrFalse=Indsæt sand eller falsk.
+noGoalSelected=Mål er ikke angivet.
+noListSelected=Listen er ikke angivet.
+musthave=Skal have
+outgoingedge=Udgående kant.
+incomingedge=Indgående kant.
+mailbox=Postkasse
+intKey=Tasten Afbryd
+speed=Hastighed
+wrongMinDigit=Min ciffer skal være større end 0
+wrongMaxDigit=Max tal skal være større end 0
+wrongHiddenDigitsnum=Skjulte Tal tal skal være større end eller lig med 0
+hiddendigitsnum=Skjulte tal nummer
+hiddendigitspos=Skjulte Tal position
+getsecretdigits=GetSecretDigits
+beep=Bip
+description=Beskrivelse
+recordingFormat=Format
+bcc=Bcc
+invalidTimeout=Ugyldig timeoutværdi
+invalidRetry=Prøv ugyldig værdi
+invalidSpeed=Ugyldig hastighedsværdi
+missingQuery=Det er manglende forespørgselsstreng
+invalidPriority=Ugyldig prioritetsværdi
+invalidDelay=Ugyldig Forsinkelsesværdi
+noAttachmentSelected=Ingen vedhæftet fil valgt
+sendFax=SendFax
+attachment_name=Valgte vedhæftning
+choose_attachment=Vælg redskab
+help_choose_attachment=Format: pdf, tiff eller tif
+help_delay=Tid i minutter, der skal gå, før de ringede tilbage til kontakt
+noFirstNameSelected=Første navn er ikke angivet
+noPhoneSelected=Telefonen er ikke angivet
+editFile=Rediger XML
+priority=Prioritet
+numberOrLettersOrAll=Indsæt tal, bogstaver eller -.
diff --git a/public/assets/plugins/square/resources/grapheditor_de.txt b/public/assets/plugins/square/resources/grapheditor_de.txt
new file mode 100644 (file)
index 0000000..585a037
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=Knoten bereits verbunden
+cancel=Abbrechen
+close=Schließen
+collapse-expand=Zusammenbruch/Erweitern
+containsValidationErrors=Enthält Validierungsfehler
+done=Fertig
+doubleClickOrientation=Doppelklicken Sie zum Ändern der Ausrichtung
+error=Fehler
+ok=OK
+updatingDocument=Aktualisierung des Dokuments. Bitte warten...
+updatingSelection=Aktualisierung Auswahl. Bitte warten...
+about=Über
+actualSize=Tatsächliche Größe
+add=Hinzufügen
+addLayer=Layer hinzufügen
+addProperty=Eigenschaft hinzufügen
+addToExistingDrawing=Zu bestehenden Zeichnung hinzufügen
+addWaypoint=Wegpunkt hinzufügen
+advanced=Erweiterte
+align=Ausrichten
+alignment=Ausrichtung
+allChangesLost=Alle Änderungen gehen verloren!
+angle=Winkel
+apply=Anwenden
+arrange=Ordnen sie
+arrow=Pfeil
+arrows=Pfeile
+automatic=Automatische
+autosave=Autosave
+autosize=Autosize
+background=Hintergrund
+backgroundColor=Hintergrundfarbe
+backgroundImage=Hintergrundbild
+basic=Basic
+block=Block
+blockquote=Blockquote
+bold=Fett
+borderWidth=Borderwidth
+borderColor=Rahmenfarbe
+bottom=Unten
+bottomAlign=Unten ausrichten
+bottomLeft=Unten Links
+bottomRight=Unten rechts
+bulletedList=Liste mit Aufzählungszeichen
+cannotOpenFile=Datei kann nicht geöffnet werden
+center=Zentrum
+change=Ändern
+changeOrientation=Ändern Sie die Ausrichtung
+circle=Kreis
+classic=Classic
+clearDefaultStyle=Standard löschen Stil
+clearWaypoints=Löschen von Wegpunkten
+clipart=Clipart
+collapse=Zusammenbruch
+collapseExpand=Zusammenbruch/Erweitern
+collapsible=Zusammenklappbar
+comic=Comic
+connect=Anschließen
+connection=Verbindung
+connectionPoints=Anschlussstellen
+connectionArrows=Verbindung Pfeile
+constrainProportions=Proportionen
+copy=Kopieren
+copyConnect=Kopieren auf Verbinden
+create=Erstellen
+curved=Gekrümmt
+custom=Benutzerdefinierte
+cut=Schnitt
+dashed=Gestrichelt
+decreaseIndent=Einzug verkleinern
+default=Standard
+delete=Löschen
+deleteColumn=Spalte löschen
+deleteRow=Zeile löschen
+diagram=Diagramm
+diamond=Diamond
+diamondThin=Diamond (dünn)
+direction=Richtung
+distribute=Verteilen
+divider=Teiler
+documentProperties=Dokumenteigenschaften
+dotted=Gepunktet
+drawing=Zeichnen{1}
+drawingEmpty=Zeichnung ist leer
+drawingTooLarge=Die Zeichnung ist zu groß
+duplicate=Duplizieren
+duplicateIt={1} duplizieren
+east=Osten
+edit=Bearbeiten
+editData=Daten bearbeiten
+editDiagram=Diagramm bearbeiten
+editImage=Bild bearbeiten
+editLink=Link bearbeiten
+editStyle=Stil bearbeiten
+editTooltip=Bearbeiten Tooltip
+enterGroup=Gruppe eingeben
+enterValue=Wert eingeben
+enterName=Namen eingeben
+enterPropertyName=Name der Eigenschaft eingeben
+entityRelation=Entity Relation
+exitGroup=Gruppe verlassen
+expand=Erweitern
+export=Exportieren
+extras=Extras
+file=Datei
+fileNotFound=Datei nicht gefunden
+filename=Dateiname
+fill=Füllen
+fillColor=Füllfarbe
+fitPage=Eine Seite
+fitPageWidth=Seitenbreite
+fitTwoPages=Zwei Seiten
+fitWindow=In Fenster einpassen
+flip=Flip
+flipH=Horizontal spiegeln
+flipV=Vertikal spiegeln
+font=Schriftart
+fontFamily=Schriftfamilie
+fontColor=Font Color
+fontSize=Schriftgröße
+format=Format
+formatPanel=Format Panel
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=Formatiert
+formattedText=Formatierter Text
+general=Allgemein
+glass=Glas
+global=Global
+gradient=Steigung
+gradientColor=Farbe
+grid=Raster
+gridSize=Gittergröße
+group=Gruppe
+guides=Führungen
+heading=Überschrift
+height=Höhe
+help=Hilfe
+hide=Ausblenden
+hideIt=Ausblenden{1}
+hidden=Ausgeblendet
+home=Home
+horizontal=Horizontale
+horizontalFlow=Horizontale Strömung
+horizontalTree=Horizontale Baum
+html=HTML
+image=Bild
+images=Bilder
+import=Importieren
+increaseIndent=Einzug vergrößern
+insert=Einfügen
+insertColumnBefore=Einfügen Spalte links
+insertColumnAfter=Einfügen Spalte rechts
+insertHorizontalRule=Horizontale Linie einfügen
+insertImage=Bild einfügen
+insertLink=Link einfügen
+insertRowBefore=Zeile oberhalb einfügen
+insertRowAfter=Zeile unterhalb einfügen
+invalidName=Ungültiger Name
+invalidOrMissingFile=Ungültige oder fehlende Datei
+isometric=Isometrische
+italic=Kursiv
+layers=Schichten
+landscape=Landschaft
+laneColor=Lanecolor
+layout=Layout
+left=Links
+leftAlign=Links ausrichten
+leftToRight=Von Links nach Rechts
+line=Zeile
+link=Link
+lineend=Zeilenende
+lineheight=Zeilenhöhe
+linestart=Zeile beginnen
+linewidth=Linienbreite
+loading=Laden
+lockUnlock=Sperren/Entsperren
+manual=Handbuch
+middle=Mitte
+misc=Misc
+more=Mehr
+moreResults=Weitere Ergebnisse
+move=Verschieben
+moveSelectionTo=Auswahl von {1}
+navigation=Navigation
+new=Neue
+noColor=Keine Farbe
+noFiles=Keine Dateien
+noMoreResults=Keine weiteren Ergebnisse
+none=Keine
+noResultsFor=Keine Ergebnisse für '{1}'
+normal=Normal
+north=Norden
+numberedList=Nummerierte Liste
+opacity=Opazität
+open=Öffnen
+openArrow=Öffnen Pfeil
+openFile=Datei öffnen
+openLink=Link öffnen
+openSupported=Unterstützt das Format ist .XML-Dateien, die von dieser Software gespeichert
+openInNewWindow=In neuem Fenster öffnen
+openInThisWindow=In diesem Fenster öffnen
+options=Optionen
+organic=Organische
+orthogonal=Orthogonale
+outline=Überblick
+oval=Oval
+pages=Seiten
+pageView=Seite anzeigen
+pageScale=Seite skalieren
+pageSetup=Seite einrichten
+panTooltip=Platz ziehen zu Blättern
+paperSize=Papierformat
+paste=Einfügen
+pasteHere=Einfügen hier
+pattern=Muster
+perimeter=Umfang
+placeholders=Platzhalter
+plusTooltip=Klicken Sie auf Verbinden und Klonen (Strg klicken zu klonen, Klicken mit gedrückter Umschalttaste zu verbinden). Ziehen Sie zu verbinden (Strg ziehen zu klonen).
+portrait=Porträt
+position=Position
+posterPrint=Poster drucken
+preview=Vorschau
+print=Drucken
+radialTree=Radiale Baum
+redo=Wiederholen
+removeFormat=Klare Formatierung
+removeFromGroup=Aus Gruppe entfernen
+removeIt=Entfernen{1}
+removeWaypoint=Wegpunkt entfernen: Entfernen
+rename=Umbenennen
+renameIt={1} umbenennen
+replace=Ersetzen
+replaceIt={1} ist bereits vorhanden. Möchten Sie sie ersetzen?
+replaceExistingDrawing=Vorhandene Zeichnung ersetzen
+reset=Zurücksetzen
+resetView=Ansicht zurücksetzen
+right=Rechts
+rightAlign=Rechts ausrichten
+rightToLeft=Rechts nach Links
+rotate=Drehen
+rotateTooltip=Klicken und ziehen Sie zum Drehen, klicken Sie auf um 90 Grad zu drehen
+rotation=Drehung
+rounded=Gerundet
+save=Speichern
+saveAs=Speichern als
+saved=Gespeichert
+scrollbars=Bildlaufleisten
+search=Suche
+searchShapes=Suche Formen
+selectAll=Alle auswählen
+selectEdges=Wählen Sie die Kanten
+selectFont=Wählen Sie eine Schriftart
+selectNone=Wählen Sie "Keine"
+selectVertices=Scheitelpunkte auswählen
+setAsDefaultStyle=Als Standard Stil
+shadow=Schatten
+shape=Form
+sharp=Scharfe
+sidebarTooltip=Klicken Sie auf Erweitern. Drag und Drop Formen in das Diagramm. Umschalttaste klicken Sie auf Auswahl ändern. Alt Klicken Sie auf Einfügen und schließen.
+simple=Einfache
+simpleArrow=Einfache Pfeil
+size=Größe
+solid=Solide
+sourceSpacing=Quelle Abstand
+south=Süden
+spacing=Abstand
+straight=Gerade
+strokeColor=Linienfarbe
+style=Stil
+subscript=Tiefgestellt
+superscript=Hochgestellt
+table=Tabelle
+targetSpacing=Ziel Abstand
+text=Text
+textAlignment=Textausrichtung
+textOpacity=Text Opazität
+toBack=Zurück
+toFront=Nach vorne
+tooltips=Tooltips
+top=Top
+topAlign=Oben ausrichten
+topLeft=Oben Links
+topRight=Oben rechts
+transparent=Transparente
+turn=Drehen
+uml=UML
+underline=Unterstreichen
+undo=Rückgängig machen
+ungroup=Gruppierung aufheben
+url=URL
+untitledLayer=Untitled Layer
+vertical=Vertikale
+verticalFlow=Vertikalen Fluss
+verticalTree=Vertikale Baum
+view=Anzeigen
+waypoints=Wegpunkte
+west=Westen
+width=Breite
+wordWrap=Zeilenumbruch
+writingDirection=Schreibrichtung
+zoom=Zoom
+zoomIn=Bild vergrößern
+zoomOut=Verkleinern
+label=Etikett
+timeout=Zeitabschaltung (Sekunden)
+response=Antwort Timeout
+digit=Max. Ziffer
+escape=Escape Ziffern
+retry=Erneut versuchen
+name=Name
+value=Wert
+entry=Eintrag
+start=Starten
+finally=Schließlich
+end=Ende
+variable=Variable
+set=Einstellen
+operation=Betrieb
+math=Math
+result=Ergebnis
+call_management=Verwaltung
+answer=Antwort
+hangup=Auflegen
+dial=Interne Wahl
+ext_dial=Externes Wählen
+phone=Telefon
+trunk=Amtsleitung
+identifier=Bezeichner
+queue=Warteschlange
+voicemail=VoiceMail
+boxnumber=Das Feld Telefonnummer
+playback=Wiedergabe
+menu=Menü
+saydigits=SayDigits
+digits=Ziffern
+saynumber=SayNumber
+number=Anzahl
+sayphonetic=SayPhonetic
+escape_digits=Escape Ziffern
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=Schlüssel
+getdigits=GetDigits
+mindigit=Min. Ziffern
+maxdigit=Max Ziffern
+custom_app=Benutzerdefinierte Anwendung
+language=Sprache
+frequency=Frequenz
+integrationServer=Integration Server
+database=Datenbank
+query=Abfrage
+asr=ASR
+sendSMS=SendSMS
+account_id=Konto
+template_id=Vorlage
+to=Zu
+sms_text=Text
+sendMail=SendMail
+subject=Betreff
+cc=Cc
+threshold=Schwellenwert
+maxspeech=Max Rede
+grammar=Grammatik
+ispeechasr=ISpeechASR
+model=Modell
+noop=NoOp
+output=Ausgang
+system=System
+command=Befehl
+application=Anwendung
+agi=AGI
+args=Argumente
+subproject=Unterprojekt
+goalname=Ziel Name
+callflow=Anrufverlauf
+gotoc=Gehe zu
+context=Kontext
+extension=Erweiterung
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=Zeitintervall
+leftOperand=Linker Operand
+condition=Zustand
+rightOperand=Rechter Operand
+vswitch=Schalter
+recording=Aufnahme
+record=Datensatz
+queuename=Name der Warteschlange
+announceoverride=Verkünden überschreiben
+callid=CallID
+agent=Agent
+queue_event=Veranstaltung
+data1=Daten 1
+data2=Daten 2
+data3=Daten 3
+data4=Daten 4
+data5=Daten 5
+macro=Makro
+stats=Stats
+queuelog=QueueLog
+goal=Ziel
+callback=Rückruf
+list=Liste
+delay=Verzögerung
+list_id=Liste
+opts=Optionen
+queue_id=Warteschlange
+file_id=Datei
+variable_id=Variable
+gosub=Gosub
+project_id=Projekt
+sip_id=SIP
+trunk_name=Amtsleitung
+variable_value=Variabler Wert
+database_id=Datenbank
+interval_id=Intervall
+description_start=Start Beschreibung
+publish=Pubblica
+ispeech_asr_language=Sprache
+ispeech_tts_language=Sprache
+google_tts_language=Sprache
+queue_variable=Die Warteschlange, von der Verstellpumpe
+odbc_id=ODBC-Verbindung
+noVariableSelected=Variable ist nicht angegeben.
+noTrunkSelected=Der Stamm ist nicht angegeben.
+noAudioSelected=Audio Datei nicht angegeben ist.
+noOperandSelected=Linker Operand nicht angegeben ist.
+noDatabaseSelected=Datenbank ist nicht angegeben.
+noExtensionSelected=Die Nebenstelle ist nicht angegeben.
+noCommandSelected=Befehl ist nicht angegeben.
+noApplicationSelected=Die Anwendung ist nicht angegeben
+noRightOperandSelected=Rechter Operand ist nicht angegeben.
+noDigitsSelected=Ziffern ist nicht angegeben.
+noNumberSelected=Zahl ist nicht angegeben.
+noRecipientSelected=Empfänger ist nicht angegeben.
+noTextSelected=Der Text ist nicht angegeben.
+noAccountSelected=Konto ist nicht angegeben.
+noKeySelected=Schlüssel ist nicht angegeben.
+noIdentifierSelected=Kennung ist nicht angegeben.
+noQueueSelected=Name der Warteschlange ist nicht angegeben.
+noConditionSelected=Zustand ist nicht angegeben.
+noIntervalSelected=Intervall ist nicht angegeben.
+noContextSelected=Kontext ist nicht angegeben.
+noBoxNumberSelected=Feld Name ist nicht angegeben.
+noProjectSelected=Teilprojekt ist nicht angegeben.
+noFileSelected=Dateiname nicht angegeben ist.
+numberOrInvalidOrTimeout=Nummer einfügen, i oder t (Leerzeichen überprüfen).
+numberOrAll=Nummer einfügen oder -.
+numberOrInvalidOrDefault=Legen Sie x, i oder -.
+trueOrFalse=Legen Sie Wahr oder Falsch.
+noGoalSelected=Ziel ist es, nicht angegeben.
+noListSelected=Liste ist nicht angegeben.
+musthave=Müssen
+outgoingedge=Ausgehende Kante.
+incomingedge=Eingehende Kante.
+mailbox=Mailbox
+intKey=Unterbrechungstaste
+speed=Geschwindigkeit
+wrongMinDigit=Min. Ziffer muss größer als 0 sein
+wrongMaxDigit=Max. Zahl ist größer als 0 sein
+wrongHiddenDigitsnum=Versteckte Ziffern muss größer als oder gleich 0 sein
+hiddendigitsnum=Versteckte Ziffern
+hiddendigitspos=Versteckte Ziffern Position
+getsecretdigits=GetSecretDigits
+beep=Signalton
+description=Beschreibung
+recordingFormat=Format
+bcc=Bcc
+invalidTimeout=Ungültiger Wert für die Zeitüberschreitung
+invalidRetry=Ungültige Wiederholungswert
+invalidSpeed=Ungültiger Wert der Drehzahl
+missingQuery=Die Abfragezeichenfolge fehlt
+invalidPriority=Ungültiger Wert für die Priorität
+invalidDelay=Ungültige Verzögerungszeit
+noAttachmentSelected=Kein Anschluss aktiviert
+sendFax=SendFax
+attachment_name=Ausgewählte Anlage
+choose_attachment=Anlage wählen
+help_choose_attachment=Format: PDF-, TIFF- oder tif
+help_delay=Zeit in Minuten an, zu warten, bevor der Kontakt anrufen
+noFirstNameSelected=Der Vorname ist nicht angegeben
+noPhoneSelected=Telefon ist nicht angegeben
+editFile=Bearbeiten von XML-
+priority=Priorität
+numberOrLettersOrAll=Zahlen, Buchstaben oder -.
diff --git a/public/assets/plugins/square/resources/grapheditor_es.txt b/public/assets/plugins/square/resources/grapheditor_es.txt
new file mode 100644 (file)
index 0000000..e243a02
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=Los nodos ya conectado
+cancel=Cancelar
+close=Cerrar
+collapse-expand=Contraer/Expandir
+containsValidationErrors=Contiene errores de validación
+done=Hecho
+doubleClickOrientation=Para cambiar la orientación de Doubleclick
+error=Error
+ok=OK
+updatingDocument=Actualización del documento. Por favor, espere...
+updatingSelection=Actualizar la selección. Por favor, espere...
+about=Acerca de
+actualSize=Tamaño real
+add=Agregar
+addLayer=Añadir capa
+addProperty=Agregar propiedad
+addToExistingDrawing=Agregar al dibujo existente
+addWaypoint=Agregar punto de referencia
+advanced=Advanced
+align=Alinear
+alignment=Alineación
+allChangesLost=Todos los cambios se perderán!
+angle=Ángulo
+apply=Aplicar
+arrange=Organizar
+arrow=Flecha
+arrows=Flechas
+automatic=Automático
+autosave=Autoguardar
+autosize=Autosize
+background=Antecedentes
+backgroundColor=Color de fondo
+backgroundImage=Imagen de fondo
+basic=Basic
+block=Bloquear
+blockquote=Blockquote
+bold=Bold
+borderWidth=Borderwidth
+borderColor=Color del borde
+bottom=Parte inferior
+bottomAlign=Alinear en la parte inferior
+bottomLeft=Parte inferior izquierda
+bottomRight=Parte inferior derecha
+bulletedList=Lista con viñetas
+cannotOpenFile=No se puede abrir el archivo
+center=Centro
+change=Cambiar
+changeOrientation=Cambiar la orientación
+circle=Círculo
+classic=Classic
+clearDefaultStyle=Claro Estilo predeterminado
+clearWaypoints=Borrar Waypoints
+clipart=Clipart
+collapse=Colapso
+collapseExpand=Contraer/Expandir
+collapsible=Desmontable
+comic=Comic
+connect=Conectar
+connection=Conexión
+connectionPoints=Los puntos de conexión
+connectionArrows=Flechas de conexión
+constrainProportions=Restringir las proporciones
+copy=Copiar
+copyConnect=Copiar en Conectar
+create=Crear
+curved=Curvado
+custom=Custom
+cut=Cortar
+dashed=Dashed
+decreaseIndent=Disminuir sangría
+default=Default
+delete=Eliminar
+deleteColumn=Eliminar columna
+deleteRow=Eliminar fila
+diagram=Diagrama
+diamond=Diamond
+diamondThin=Diamond (delgado)
+direction=Dirección
+distribute=Distribuir
+divider=El divisor
+documentProperties=Propiedades del documento
+dotted=Salpicada
+drawing=Dibujo{1}
+drawingEmpty=El dibujo está vacía.
+drawingTooLarge=El dibujo es demasiado grande
+duplicate=Duplicar
+duplicateIt=Duplicado {1}
+east=Oriente
+edit=Editar
+editData=Modificar datos
+editDiagram=Editar el diagrama
+editImage=Editar imagen
+editLink=Edit Link
+editStyle=Editar estilo
+editTooltip=Editar descripción
+enterGroup=Introducir grupo
+enterValue=Introduzca el valor
+enterName=Introduzca el nombre
+enterPropertyName=Introduzca el nombre de la propiedad
+entityRelation=Relación de entidades
+exitGroup=Grupo de salida
+expand=Ampliar
+export=Exportar
+extras=Extras
+file=Archivo
+fileNotFound=Archivo no encontrado
+filename=Filename
+fill=Llenar
+fillColor=Color de relleno
+fitPage=Una página
+fitPageWidth=El ancho de la página
+fitTwoPages=Dos páginas
+fitWindow=El ajuste de la ventana
+flip=Flip
+flipH=Voltear horizontalmente
+flipV=Flip vertical
+font=Font
+fontFamily=Familia de fuente
+fontColor=Color de fuente
+fontSize=El tamaño de la fuente
+format=Formato
+formatPanel=Panel de formato
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=Formato
+formattedText=Texto con formato
+general=General
+glass=Cristal
+global=Global
+gradient=Gradiente
+gradientColor=Color
+grid=Cuadrícula
+gridSize=El tamaño de la cuadrícula
+group=Grupo
+guides=Guías
+heading=La partida
+height=Altura
+help=Ayuda
+hide=Ocultar
+hideIt=Ocultar {1}
+hidden=Oculto
+home=Home
+horizontal=Horizontal
+horizontalFlow=Flujo horizontal
+horizontalTree=Árbol horizontal
+html=HTML
+image=Imagen
+images=Imágenes
+import=Importar
+increaseIndent=Aumentar sangría
+insert=Insertar
+insertColumnBefore=Insertar columna a la izquierda
+insertColumnAfter=Insertar columna a la derecha
+insertHorizontalRule=Insertar la regla horizontal
+insertImage=Insertar imagen
+insertLink=Insertar enlace
+insertRowBefore=Insertar fila arriba
+insertRowAfter=Insertar fila debajo
+invalidName=Nombre no válido.
+invalidOrMissingFile=Archivo no válido o inexistente
+isometric=Isométrica
+italic=Cursiva
+layers=Capas
+landscape=Paisaje
+laneColor=Lanecolor
+layout=Diseño
+left=Izquierda
+leftAlign=Alinear a la izquierda
+leftToRight=De izquierda a derecha
+line=Línea
+link=Link
+lineend=Final de línea
+lineheight=Altura de línea
+linestart=Principio de línea
+linewidth=Linewidth
+loading=Cargando
+lockUnlock=Bloquear/Desbloquear
+manual=Manual
+middle=Oriente
+misc=Misc
+more=Más
+moreResults=Más resultados
+move=Mover
+moveSelectionTo=Mover la selección a {1}
+navigation=La navegación
+new=Nuevo
+noColor=No hay color
+noFiles=No hay archivos
+noMoreResults=No hay más resultados
+none=Ninguno
+noResultsFor=No hay resultados para '{1}'.
+normal=Normal
+north=Norte
+numberedList=Lista numerada
+opacity=Opacidad
+open=Abrir
+openArrow=Flecha abierta
+openFile=Abrir el archivo
+openLink=Abrir enlace
+openSupported=Formato compatible .XML archivos guardados desde este software
+openInNewWindow=Abrir en nueva ventana
+openInThisWindow=En esta ventana abierta
+options=Opciones
+organic=Organic
+orthogonal=Ortogonal
+outline=Presentacion
+oval=Óvalo
+pages=Páginas
+pageView=Vista de página
+pageScale=Escala de página
+pageSetup=Configuración de página
+panTooltip=Espacio Arrastrar para desplazarse
+paperSize=Tamaño de papel
+paste=Pegar
+pasteHere=Pegue aquí
+pattern=Patrón
+perimeter=Perímetro
+placeholders=Marcadores
+plusTooltip=Haga clic en Conectar y el clon (ctrl + clic para clonar, Shift clic para conectarse). Arrastre para conectar (ctrl arrastrar para clonar).
+portrait=Retrato
+position=Posición
+posterPrint=Impresión de Póster
+preview=Vista previa
+print=Imprimir
+radialTree=Árbol radial
+redo=Rehacer
+removeFormat=Borrar formato
+removeFromGroup=Eliminar del grupo
+removeIt=Quitar a {1}
+removeWaypoint=Quitar el punto de referencia
+rename=Renombrar
+renameIt=Cambiar el nombre {1}
+replace=Sustituir
+replaceIt={1} ya existe. ¿Desea reemplazarlo?
+replaceExistingDrawing=Sustituir el dibujo existente
+reset=Restablecer
+resetView=Restablecer vista
+right=Derecho
+rightAlign=Alinear a la derecha
+rightToLeft=Derecha a izquierda
+rotate=Gire
+rotateTooltip=Haga clic y arrastre para girar, haga clic en Girar 90 grados
+rotation=Rotación
+rounded=Redondeado
+save=Guardar
+saveAs=Guardar como
+saved=Guardado
+scrollbars=Barras de desplazamiento
+search=Buscar
+searchShapes=Buscar formas
+selectAll=Seleccionar todo
+selectEdges=Seleccione bordes
+selectFont=Seleccione una fuente
+selectNone=Seleccione Ninguno
+selectVertices=Seleccionar vértices
+setAsDefaultStyle=Establecer como estilo predeterminado
+shadow=Sombra
+shape=Forma
+sharp=Sharp
+sidebarTooltip=Haga clic para ampliar. Arrastre y suelte las formas en el diagrama. Pulse Mayús para cambiar la selección. Alt + clic para insertar y conectar.
+simple=Simple
+simpleArrow=Flecha simple
+size=Tamaño
+solid=Solid
+sourceSpacing=Espaciado de origen
+south=Sur
+spacing=Espaciado
+straight=Recto
+strokeColor=Color de línea
+style=Style
+subscript=Subíndice
+superscript=Superíndice
+table=Tabla
+targetSpacing=Espaciado de destino
+text=Texto
+textAlignment=Alineación de texto
+textOpacity=Opacidad del texto
+toBack=Para volver
+toFront=Al frente
+tooltips=Sugerencias
+top=Top
+topAlign=Alinear en la parte superior
+topLeft=Arriba a la izquierda
+topRight=Arriba a la derecha
+transparent=Transparente
+turn=Gire
+uml=UML
+underline=Underline
+undo=Deshacer
+ungroup=Desagrupar
+url=URL
+untitledLayer=Untitled capa
+vertical=Vertical
+verticalFlow=Flujo vertical
+verticalTree=Árbol vertical
+view=Ver
+waypoints=Waypoints
+west=West
+width=Ancho
+wordWrap=Word Wrap
+writingDirection=La dirección de escritura
+zoom=Zoom
+zoomIn=Acercar
+zoomOut=Zoom Out
+label=Etiqueta
+timeout=Tiempo de espera (segundos)
+response=Tiempo de espera de respuesta
+digit=Dígito máx.
+escape=Dígitos de escape
+retry=Reintentar
+name=Nombre
+value=Valor
+entry=Entrada
+start=Inicio
+finally=Finalmente
+end=Final
+variable=Variable
+set=Establecer
+operation=Funcionamiento
+math=Matemáticas
+result=Resultado
+call_management=Gestión de llamadas
+answer=Respuesta
+hangup=Colgar
+dial=Marcación interna
+ext_dial=Marcación externa
+phone=Teléfono
+trunk=Tronco
+identifier=Identificador
+queue=Cola
+voicemail=VoiceMail
+boxnumber=Número de caja
+playback=La reproducción
+menu=Menu
+saydigits=SayDigits
+digits=Dígitos
+saynumber=SayNumber
+number=Número
+sayphonetic=SayPhonetic
+escape_digits=Dígitos de escape
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=Key
+getdigits=GetDigits
+mindigit=Dígitos mín.
+maxdigit=Máximo de dígitos
+custom_app=Aplicación personalizada
+language=Idioma
+frequency=Frecuencia
+integrationServer=Integration Server
+database=Base de datos
+query=Consulta
+asr=ASR
+sendSMS=SendSMS
+account_id=Cuenta
+template_id=Plantilla
+to=A
+sms_text=Texto
+sendMail=SendMail
+subject=Asunto
+cc=Cc
+threshold=Umbral
+maxspeech=Discurso máx.
+grammar=Gramática
+ispeechasr=ISpeechASR
+model=Modelo
+noop=NoOp
+output=Salida
+system=Sistema
+command=Mando
+application=Aplicación
+agi=AGI
+args=Argumentos
+subproject=Subproyecto
+goalname=Nombre de meta
+callflow=Callflow
+gotoc=Goto
+context=Contexto
+extension=Extensión
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=Intervalo de tiempo
+leftOperand=Operando izquierdo
+condition=Condición
+rightOperand=Operando derecho
+vswitch=Contacto
+recording=Grabación
+record=Grabar
+queuename=El nombre de cola
+announceoverride=Anunciar anular
+callid=CallID
+agent=Agent
+queue_event=Evento
+data1=Datos1
+data2=Datos2
+data3=Datos3
+data4=Datos 4
+data5=Data5
+macro=Macro
+stats=Stats
+queuelog=QueueLog
+goal=Objetivo
+callback=Callback
+list=Lista
+delay=Retraso
+list_id=Lista
+opts=Opciones
+queue_id=Cola
+file_id=Archivo
+variable_id=Variable
+gosub=Gosub
+project_id=Proyecto
+sip_id=SIP
+trunk_name=Tronco
+variable_value=Valor variable
+database_id=Base de datos
+interval_id=Intervalo
+description_start=Descripción Inicio
+publish=Pubblica
+ispeech_asr_language=Idioma
+ispeech_tts_language=Idioma
+google_tts_language=Idioma
+queue_variable=Cola de la Variable
+odbc_id=Conexión ODBC.
+noVariableSelected=Variable no está especificado.
+noTrunkSelected=La cajuela no está especificado.
+noAudioSelected=Archivo de Audio no está especificado.
+noOperandSelected=Operando izquierdo no está especificado.
+noDatabaseSelected=Base de datos no está especificado.
+noExtensionSelected=Extensión no está especificado.
+noCommandSelected=No se especificó el comando.
+noApplicationSelected=La aplicación no está especificado
+noRightOperandSelected=Operando derecho no está especificado.
+noDigitsSelected=Dígitos no especificado.
+noNumberSelected=El número no es especificado.
+noRecipientSelected=Destinatario no está especificado.
+noTextSelected=El texto no está especificado.
+noAccountSelected=Cuenta no está especificado.
+noKeySelected=Clave no está especificada.
+noIdentifierSelected=Identificador no está especificado.
+noQueueSelected=No se ha especificado el nombre de la cola.
+noConditionSelected=El Estado no está especificado.
+noIntervalSelected=No se especifica intervalo.
+noContextSelected=Contexto no está especificado.
+noBoxNumberSelected=No se ha especificado el nombre de la caja.
+noProjectSelected=Subproyecto no está especificado.
+noFileSelected=No se especificó el nombre de archivo.
+numberOrInvalidOrTimeout=Insertar número, i o t (verifique los espacios en blanco).
+numberOrAll=Insertar número o -.
+numberOrInvalidOrDefault=Insertar x, i o -.
+trueOrFalse=Inserte true o false.
+noGoalSelected=Objetivo no está especificado.
+noListSelected=Lista no está especificado.
+musthave=Debe tener
+outgoingedge=Borde saliente.
+incomingedge=Borde de entrada.
+mailbox=Buzón
+intKey=Tecla de interrupción
+speed=Velocidad
+wrongMinDigit=Min dígito tiene que ser mayor que 0
+wrongMaxDigit=Dígito Max tiene que ser mayor que 0
+wrongHiddenDigitsnum=Número de dígitos oculto tiene que ser mayor o igual a 0.
+hiddendigitsnum=Número de dígitos oculto
+hiddendigitspos=Posición de dígitos oculto
+getsecretdigits=GetSecretDigits
+beep=Bip
+description=Descripción
+recordingFormat=Formato
+bcc=Bcc
+invalidTimeout=Valor de tiempo de espera no válido
+invalidRetry=Valor retry no válido
+invalidSpeed=El valor de velocidad no válida
+missingQuery=Falta la cadena de consulta
+invalidPriority=El valor de la prioridad no válido
+invalidDelay=Valor de retardo no válido
+noAttachmentSelected=Sin accesorio seleccionado
+sendFax=SendFax
+attachment_name=Adjunto seleccionado
+choose_attachment=Seleccione adjunto
+help_choose_attachment=Formato: PDF, TIFF o TIF
+help_delay=Tiempo, en minutos, que esperar antes de llamar a este contacto
+noFirstNameSelected=No se ha especificado el nombre de la primera
+noPhoneSelected=El teléfono no está especificado
+editFile=Editar XML
+priority=Prioridad
+numberOrLettersOrAll=Insertar números, letras o -.
diff --git a/public/assets/plugins/square/resources/grapheditor_fa.txt b/public/assets/plugins/square/resources/grapheditor_fa.txt
new file mode 100644 (file)
index 0000000..6a89807
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=متورم شده متصل شد
+cancel=لغو
+close=بستن
+collapse-expand=فروپاشي/گسترش
+containsValidationErrors=تأیید اعتبار حاوی خطا
+done=انجام شد
+doubleClickOrientation=برای تغییر جهت Doubleclick
+error=خطا
+ok=OK
+updatingDocument=به روزآوری سند. لطفاً صبر کنید...
+updatingSelection=به روزآوری انتخاب شد. لطفاً صبر کنید...
+about=در حدود
+actualSize=در اندازه واقعی
+add=افزودن
+addLayer=افزودن لایه ای
+addProperty=افزودن مال
+addToExistingDrawing=به تالار های موجود اضافه کنید
+addWaypoint=نقطه نشانه
+advanced=پيش رفت.
+align=مسئولين مملکتي
+alignment=ترازبندی
+allChangesLost=تمام تغییرات را از دست داده باشد!
+angle=زاویه گردش
+apply=اجرا می شود
+arrange=ترتیب
+arrow=فلش
+arrows=تير
+automatic=خودکار
+autosave=Autosave
+autosize=Autosize
+background=پس زمینه
+backgroundColor=رنگ زمینه
+backgroundImage=تصویر پس زمینه
+basic=پايه
+block=بلوک
+blockquote=Blockquote
+bold=Bold
+borderWidth=Borderwidth
+borderColor=مرز رنگ
+bottom=پایین
+bottomAlign=مسئولين مملکتي پایین
+bottomLeft=پایین چپ
+bottomRight=پایین سمت راست
+bulletedList=لیست Bulleted
+cannotOpenFile=قادر به باز کردن فایل
+center=مرکز
+change=تغییر
+changeOrientation=جهت تغییر
+circle=دايره
+classic=کلاسیک
+clearDefaultStyle=سبک پیش فرض روشن است
+clearWaypoints=پاک کردن نقاط نشانه
+clipart=Clipart
+collapse=فروپاشي
+collapseExpand=فروپاشي/گسترش
+collapsible=تاشو
+comic=کمدی
+connect=اتصال
+connection=اتصال
+connectionPoints=نقاط اتصال
+connectionArrows=تيرهاي اتصال
+constrainProportions=ابعاد گذاريد
+copy=کپی
+copyConnect=کپی بر روی اتصال
+create=ایجاد
+curved=منحني
+custom=عرف
+cut=برش
+dashed=رشتة
+decreaseIndent=Indent كاهش يابد .
+default=پیش فرض
+delete=حذف
+deleteColumn=حذف ستون
+deleteRow=حذف ردیف
+diagram=تصاویر
+diamond=الماس
+diamondThin=الماس (لاغر)
+direction=جهت
+distribute=توزیع
+divider=هنگام ارائه یك خودروی جدید
+documentProperties=مشخصات سند
+dotted=همه جا
+drawing=طراحي{1}
+drawingEmpty=تالار خالی است.
+drawingTooLarge=تالار بزرگ است.
+duplicate=دوبله
+duplicateIt=تکراری {1}
+east=شرق
+edit=ویرایش
+editData=ویرایش داده ها
+editDiagram=ویرایش تصاویر
+editImage=ویرایش تصویر
+editLink=ویرایش لینک
+editStyle=ویرایش سبک
+editTooltip=ویرایش Tooltip
+enterGroup=گروه را وارد کنید
+enterValue=مقدار را وارد کنید
+enterName=اسمتان را وارد کنید
+enterPropertyName=نام ملك را وارد کنید
+entityRelation=رابطه شخصیت
+exitGroup=گروه خروج
+expand=گسترش
+export=صادرات
+extras=سایر موارد
+file=فایل
+fileNotFound=فایل منبع یافت نشد.
+filename=Filename
+fill=پر كردن
+fillColor=پر رنگ
+fitPage=یک صفحه
+fitPageWidth=عرض صفحه
+fitTwoPages=دو صفحه
+fitWindow=پنجره مناسب
+flip=میکس
+flipH=میکس افقی
+flipV=میکس عمودی
+font=فونت
+fontFamily=خانواده فونت
+fontColor=رنگ فونت
+fontSize=اندازه فونت
+format=قالب بندی
+formatPanel=قالب بندی صفحه نشانگرها
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=قالب بندی JPEG باشد
+formatSvg=SVG
+formatXml=بارگیری فایل XML
+formatted=باید فرمت
+formattedText=باید فرمت متنی
+general=سردار
+glass=شيشه
+global=جهانی
+gradient=شیب
+gradientColor=رنگ
+grid=شبکه بندی
+gridSize=ابعاد شبکه
+group=گروه
+guides=گروهی
+heading=خط مسیر فعلی
+height=ارتفاع
+help=کمک کند
+hide=مخفی کردن
+hideIt=مخفی کردن {1}
+hidden=پنهان
+home=خانه
+horizontal=افقی
+horizontalFlow=جریان افقی
+horizontalTree=درخت افقی
+html=HTML
+image=تصویر
+images=1522
+import=واردات
+increaseIndent=افزایش Indent
+insert=خطی
+insertColumnBefore=ستون سمت چپ را وارد کنید
+insertColumnAfter=ستون سمت راست را وارد کنید
+insertHorizontalRule=قانون افقی قرار دهید
+insertImage=تصویر را وارد کنید
+insertLink=لینک را وارد کنید
+insertRowBefore=ردیف بالا را وارد کنید
+insertRowAfter=ردیف زیر را وارد کنید
+invalidName=نام نامعتبر است
+invalidOrMissingFile=یا یک فایل گم شده نامعتبر است
+isometric=Isometric
+italic=Italic
+layers=لايه
+landscape=چشم انداز
+laneColor=Lanecolor
+layout=صفحه آرایی
+left=سمت چپ
+leftAlign=مسئولين مملکتي چپ
+leftToRight=چپ به راست
+line=خط
+link=لینک
+lineend=خط پایان
+lineheight=ارتفاع خط
+linestart=راه اندازی خط
+linewidth=Linewidth
+loading=بارگیری
+lockUnlock=قفل/باز کردن قفل
+manual=دفترچه راهنما
+middle=در وسط
+misc=Misc
+more=بیشتر
+moreResults=نتایج بیشتر
+move=حرکت کنید
+moveSelectionTo=انتخاب برای حرکت {1}
+navigation=سیستم كمكی ناوبری
+new=تازه
+noColor=نه رنگ
+noFiles=نه فایل ها
+noMoreResults=نه بیشتر نتایج
+none=هیچ
+noResultsFor=نه برای نتایج '{۱}.
+normal=طبیعی است
+north=شمال
+numberedList=فهرست شماره
+opacity=Opacity
+open=باز
+openArrow=فلش را باز کنید
+openFile=فایل را باز کنید
+openLink=این لینک را باز کنید
+openSupported=خب معلومه بارگیری فایل XML پشتیبانی فرمت ذخیره فایل ها از این نرم افزار
+openInNewWindow=در پنجره جدید باز کنید
+openInThisWindow=در این پنجره را باز کنید
+options=گزینه ها
+organic=مواد آلي
+orthogonal=Orthogonal
+outline=نمای کلی
+oval=بیضی
+pages=صفحه
+pageView=مشاهده صفحه
+pageScale=صفحه ترازو
+pageSetup=تنظیم صفحه
+panTooltip=فضا برای حرکت به کشیدن
+paperSize=اندازه کاغذ
+paste=الصاق
+pasteHere=الصاق اینجا
+pattern=الگو
+perimeter=پیرامون
+placeholders=علامت ها
+plusTooltip=کلیک کنید تا اتصال و کپی (Ctrl کلیک کنید تا کپی، نوبت به اتصال را کلیک کنید). کشیدن کشیدن متصل کنید (Ctrl را کپی).
+portrait=تصوير
+position=موقعیت
+posterPrint=پوستر چاپ
+preview=پیش نمایش
+print=چاپ
+radialTree=درخت شعاعي
+redo=چنين شد کارها را دوباره انجام دهيد .
+removeFormat=پاک کردن فرمت کردن
+removeFromGroup=حذف از گروه
+removeIt={۱} را حذف کنید
+removeWaypoint=حذف نقطه نشانه
+rename=کامپیوترها
+renameIt={۱} کامپیوترها
+replace=جایگزین کردن
+replaceIt={1 } از قبل وجود دارد. آیا می خواهید جایگزین کنید؟
+replaceExistingDrawing=تالار موجود را تعویض کنید
+reset=بازنشانی
+resetView=به نظر بازنشانی کنید
+right=درست است
+rightAlign=مسئولين مملکتي راست
+rightToLeft=راست به چپ
+rotate=چرخش
+rotateTooltip=کشیدن را کلیک کرده و به چرخش و گردش را کلیک کنید تا به 90 درجه
+rotation=چرخش
+rounded=گرد
+save=ذخیره
+saveAs=ذخیره به عنوان
+saved=ذخیره شد
+scrollbars=Scrollbars
+search=جستجو
+searchShapes=جستجو دانی؟
+selectAll=همه را انتخاب کنید
+selectEdges=لبه های انتخاب کنید
+selectFont=فونت را انتخاب کنید
+selectNone=هيچ كدام را انتخاب کنید
+selectVertices=Vertices را انتخاب کنید
+setAsDefaultStyle=تنظیم بعنوان پیش فرض سبک
+shadow=سايه
+shape=شکل دهی
+sharp=تیز است
+sidebarTooltip=کلیک کنید تا گسترش يابد. کشیدن و رها کردن به شکل نقشه. تعویض نوبت کار کلیک کنید تا انتخاب شود. Alt کلیک کنید و متصل شود.
+simple=ساده
+simpleArrow=فلش ساده
+size=اندازه
+solid=سفت
+sourceSpacing=فاصله منبع
+south=جنوب
+spacing=فاصله
+straight=مستقیم
+strokeColor=رنگ خط
+style=سبک
+subscript=Subscript
+superscript=Superscript
+table=میز
+targetSpacing=هدف فاصله
+text=متن
+textAlignment=متن ترازبندی
+textOpacity=متن Opacity
+toBack=بازگشت به
+toFront=به جلو
+tooltips=شروع راهنمایی های ابزار انجام شد
+top=بالا
+topAlign=مسئولين مملکتي بالا
+topLeft=بالا چپ
+topRight=بالا راست
+transparent=شفاف است
+turn=گردش
+uml=UML
+underline=عناوين فونت فارسی مسير فعلی
+undo=لغو عملکرد
+ungroup=Ungroup
+url=آدرس کامل
+untitledLayer=بدون عنوان لایه ای
+vertical=خروج عمودی
+verticalFlow=جریان عمودی
+verticalTree=درخت عمودی
+view=مشاهده
+waypoints=نقاط نشانه
+west=در غرب
+width=عرض
+wordWrap=كلمه پيچيدن
+writingDirection=جهت نوشتن
+zoom=بزرگنمایی
+zoomIn=در زوم
+zoomOut=کوچکنمایی
+label=برچسب ها
+timeout=پایان زمان (ثانیه)
+response=پایان زمان پاسخ
+digit=حداکثر رقمی
+escape=فرار از عدد
+retry=دوباره سعی کنید
+name=نام
+value=مقدار
+entry=فرم
+start=شروع
+finally=سرانجام
+end=پایان
+variable=متغیر
+set=تنظیم
+operation=عملیات
+math=محاسبات
+result=در نتيجه
+call_management=مدیریت تلفن
+answer=پاسخ
+hangup=Hangup
+dial=عناوين | پل ارتباطی | پيوندها | محصولات داخلی
+ext_dial=عناوين | پل ارتباطی | پيوندها | محصولات خارجی
+phone=تلفن همراه
+trunk=تنه
+identifier=شناسه
+queue=صف
+voicemail=پست صوتی
+boxnumber=تعداد جعبه
+playback=کیفیت پخش
+menu=منو
+saydigits=SayDigits
+digits=عدد
+saynumber=SayNumber
+number=تعداد
+sayphonetic=SayPhonetic
+escape_digits=فرار از عدد
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=استاديار دانشگاه علوم پزشكي گرگان
+getdigits=GetDigits
+mindigit=حداقل عدد
+maxdigit=حداکثر عدد
+custom_app=عرف، کاربرد
+language=زبان
+frequency=فرکانس
+integrationServer=ادغام سرور
+database=پایگاه داده
+query=پرس
+asr=عصر (عج
+sendSMS=SendSMS
+account_id=اشتراک
+template_id=الگوی
+to=به
+sms_text=متن
+sendMail=SendMail
+subject=موضوع
+cc=مذكر دچار تغيير
+threshold=آستانه
+maxspeech=حداکثر گفتار
+grammar=ابتدایی
+ispeechasr=ISpeechASR
+model=مدل
+noop=NoOp
+output=خروجی
+system=سیستم
+command=فرمان
+application=برنامه کاربردی
+agi=AGI
+args=دلايل
+subproject=SubProject
+goalname=اسم گل
+callflow=Callflow
+gotoc=هيزن
+context=متن
+extension=پسوند
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=فاصله زماني
+leftOperand=Operand چپ
+condition=شرط
+rightOperand=درست Operand
+vswitch=سوئیچ
+recording=ضبط كننده
+record=ثبت
+queuename=نام صف
+announceoverride=باز دارنده اعلام
+callid=CallID
+agent=عامل
+queue_event=اين رويداد
+data1=داده ها1
+data2=داده ها2
+data3=داده ها3
+data4=داده ها4
+data5=داده ها5
+macro=ماکرو
+stats=Stats
+queuelog=QueueLog
+goal=هدف
+callback=Callback
+list=فهرست
+delay=تاخير
+list_id=فهرست
+opts=گزینه ها
+queue_id=صف
+file_id=فایل
+variable_id=متغیر
+gosub=Gosub
+project_id=پروژه
+sip_id=نوشيدني
+trunk_name=تنه
+variable_value=مقدار متغیر
+database_id=پایگاه داده
+interval_id=فاصله
+description_start=شرح شروع
+publish=Pubblica
+ispeech_asr_language=زبان
+ispeech_tts_language=زبان
+google_tts_language=زبان
+queue_variable=از صف متغیر
+odbc_id=اتصال ODBC
+noVariableSelected=متغیر تعیین شده است.
+noTrunkSelected=ساقة آن مشخص نشده است.
+noAudioSelected=فایل صوتی مشخص نشده است.
+noOperandSelected=سمت چپ operand مشخص نشده است.
+noDatabaseSelected=پایگاه داده تعیین شده است.
+noExtensionSelected=پسوند مشخص نشده است.
+noCommandSelected=فرماندهي مشخص نشده است.
+noApplicationSelected=برنامه مشخص نشده است.
+noRightOperandSelected=درست است که تعیین شده است. operand نيست.
+noDigitsSelected=رقم تعیین شده است.
+noNumberSelected=شماره تعیین شده است.
+noRecipientSelected=دریافت کننده مشخص نشده است.
+noTextSelected=متن مشخص نشده است.
+noAccountSelected=اشتراک تعیین شده است.
+noKeySelected=کلید تعیین شده است.
+noIdentifierSelected=شناسه مشخص نشده است.
+noQueueSelected=صف اسم است نه تعیین شده است.
+noConditionSelected=شرط تعیین شده است.
+noIntervalSelected=فاصله تعیین شده است.
+noContextSelected=متن مشخص نشده است.
+noBoxNumberSelected=نام جعبه مشخص نشده است.
+noProjectSelected=SubProject مشخص نشده است.
+noFileSelected=نام فایل مشخص شده است.
+numberOrInvalidOrTimeout=شماره را وارد کنید، یا تأیید کنید که فاصله های سفید (T).
+numberOrAll=یا - شماره را وارد کنید.
+numberOrInvalidOrDefault=X قرار دهید، یا - است.
+trueOrFalse=درست است یا غلط را وارد کنید.
+noGoalSelected=هدف تعیین شده است.
+noListSelected=لیست مشخص نشده است.
+musthave=بايد داشته باشد.
+outgoingedge=لبه بركنار شده است.
+incomingedge=لبه تصحیح می کند.
+mailbox=Mailbox
+intKey=کلید قطع
+speed=سرعت
+wrongMinDigit=حداقل رقمی که بزرگتر از 0 باشد.
+wrongMaxDigit=حداکثر رقمی است که به بزرگتر از 0 باشد.
+wrongHiddenDigitsnum=مخفی شده است که به تعداد عدد بزرگتر یا مساوی با 0
+hiddendigitsnum=عدد شماره پنهان
+hiddendigitspos=موقعیت پنهان عدد
+getsecretdigits=GetSecretDigits
+beep=بیپ
+description=شرح
+recordingFormat=قالب بندی
+bcc=Bcc
+invalidTimeout=زمان وقفه بر حسب مقدار نامعتبر است
+invalidRetry=دوباره سعی کنید مقدار نامعتبر است
+invalidSpeed=سرعت مقدار نامعتبر است
+missingQuery=پرسش زهى گم شده است.
+invalidPriority=اولويت مقدار نامعتبر است
+invalidDelay=تاخير مقدار نامعتبر است
+noAttachmentSelected=نه انتخاب شده ضمیمه
+sendFax=SendFax
+attachment_name=ضمیمه انتخاب می شود
+choose_attachment=ضمیمه را انتخاب کنید
+help_choose_attachment=فرمت: pdf یا tiff tif,
+help_delay=در آن زمان، تا چند دقیقه صبر کنید تا قبل از فراخوانی در تماس با بازگشت
+noFirstNameSelected=اسم اول مشخص نيست.
+noPhoneSelected=تلفن همراه مشخص نشده است.
+editFile=بارگیری فایل XML ویرایش
+priority=اولويت
+numberOrLettersOrAll=وارد کردن اعداد، حروف و يا - است.
diff --git a/public/assets/plugins/square/resources/grapheditor_fi.txt b/public/assets/plugins/square/resources/grapheditor_fi.txt
new file mode 100644 (file)
index 0000000..c4f7739
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=Solmut on jo yhdistetty
+cancel=Peruuta
+close=Sulje
+collapse-expand=Kutista/laajentavat
+containsValidationErrors=Sisältää tarkistusvirheiden vuoksi
+done=Valmis
+doubleClickOrientation=Resurssienhallinnalla voit muuttaa
+error=Virhe
+ok=OK
+updatingDocument=Päivittämällä asiakirja. Odota...
+updatingSelection=Päivityksen valinta. Odota...
+about=Lisätietoja
+actualSize=Todellisessa koossa
+add=Lisää
+addLayer=Lisää taso
+addProperty=Lisää omaisuutta
+addToExistingDrawing=Lisää olemassa olevaan piirustukseen
+addWaypoint=Lisää reittipiste
+advanced=Tarkennettu
+align=Kohdista
+alignment=Tasaus
+allChangesLost=Kaikki muutokset menetetään!
+angle=Kulma
+apply=Levitä
+arrange=Asettele
+arrow=Nuoli
+arrows=Nuolet
+automatic=Automaattinen
+autosave=Autosave
+autosize=Autom.
+background=Tausta
+backgroundColor=Taustaväri
+backgroundImage=Taustakuvaa
+basic=Perustiedot
+block=Lohko
+blockquote=Blockquote
+bold=Lihavoitu
+borderWidth=Borderwidth
+borderColor=Reunuksen väriä
+bottom=Pohja
+bottomAlign=Kohdista alaosan
+bottomLeft=Alhaalla vasemmalla
+bottomRight=Alhaalla oikealla
+bulletedList=Luettelomerkeillä
+cannotOpenFile=Tiedostoa ei voi avata
+center=Center
+change=Muuta
+changeOrientation=Suunnanmuutokseen
+circle=Ympyrä
+classic=Classic
+clearDefaultStyle=Poista oletustyylin
+clearWaypoints=Poista reittipisteitä
+clipart=Clipart
+collapse=Supista
+collapseExpand=Kutista/laajentavat
+collapsible=Kutistettava kohdehakemistopuu
+comic=Comic
+connect=Liitä
+connection=Yhteys
+connectionPoints=Liitäntäpisteet
+connectionArrows=Yhteys nuolet
+constrainProportions=Pakotamme mittasuhteet
+copy=Kopiointi
+copyConnect=Kopioi Connect-palvelusta
+create=Luo
+curved=Kaareva
+custom=Mukautettu
+cut=Leikkaa
+dashed=Totuuden paljastuessa
+decreaseIndent=Vähentää sisennystä
+default=Oletus
+delete=Poista
+deleteColumn=Poistaa
+deleteRow=Poista rivi
+diagram=Kaavio
+diamond=Diamond
+diamondThin=Diamond (ohut)
+direction=Suuntaan
+distribute=Jaettavat dokumentit
+divider=Jakajalla
+documentProperties=Asiakirjan tiedot
+dotted=Katkoviivan kohdalta.
+drawing=Piirros{1}
+drawingEmpty=Piirustus on tyhjä
+drawingTooLarge=Piirustus on liian suuri
+duplicate=Kaksoiskappale
+duplicateIt=Kopioi {1}
+east=Itä
+edit=Muokkaa
+editData=Edit Data
+editDiagram=Muokkaa kaavio
+editImage=Kuvan muokkausvaihtoehdot
+editLink=Muokkaa-linkin.
+editStyle=Muokkaa tyyli
+editTooltip=Muokkaa Tooltip
+enterGroup=Syötä ryhmä
+enterValue=Anna arvo
+enterName=Anna nimi
+enterPropertyName=Anna ominaisuuden nimeä
+entityRelation=Hankintayksikkö nähden
+exitGroup=Poistu ryhmä
+expand=Laajenna
+export=Vienti
+extras=Lisätoiminnot
+file=Tiedosto
+fileNotFound=Tiedostoa ei löydy
+filename=Tiedostonimi
+fill=Täytä
+fillColor=Täyttöväri
+fitPage=Yksi sivu
+fitPageWidth=Sivun leveys.
+fitTwoPages=Kaksi sivua
+fitWindow=Aseta ikkuna
+flip=Flip
+flipH=Käännä vaakasuunnassa
+flipV=Vertical Flip
+font=Font
+fontFamily=Fonttiperheen
+fontColor=Font Color
+fontSize=Font Size
+format=Muoto
+formatPanel=Paneelin muoto
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=Alustettu
+formattedText=Muotoiltu teksti
+general=Yleistä
+glass=Lasi
+global=Global
+gradient=Kaltevalla pinnalla
+gradientColor=Väri
+grid=Grid
+gridSize=Ruudukon koko
+group=Ryhmä
+guides=Oppaat
+heading=Suunta
+height=Korkeus
+help=Ohje
+hide=Piilota
+hideIt=Piilota {1}
+hidden=Piilotettu
+home=Etusivu
+horizontal=Vaakasuuntainen
+horizontalFlow=Virtaus on vaakatasossa
+horizontalTree=Horisontaalinen rakenne
+html=HTML
+image=Kuva
+images=Kuvat
+import=Tuonti
+increaseIndent=Lisää luetelmakohdasta
+insert=Aseta paikalleen
+insertColumnBefore=Lisää sarake vasemmalle
+insertColumnAfter=Aseta oikea sarake
+insertHorizontalRule=Lisätä vaakasuoran sääntö
+insertImage=Aseta kuva
+insertLink=Lisää linkki
+insertRowBefore=Aseta valitun arvovälin yläpuolista riviä sarakeotsikkoina
+insertRowAfter=Aseta rivi
+invalidName=Virheellinen nimi
+invalidOrMissingFile=Virheellinen tai puuttuva tiedosto
+isometric=Isometrisestä
+italic=Italic
+layers=Tasot
+landscape=Vaakasuunnassa
+laneColor=Lanecolor
+layout=Asettelu
+left=Vasen
+leftAlign=Kohdista vasen
+leftToRight=Vasemmalta oikealle
+line=Rivi
+link=Linkki
+lineend=Rivin loppuun
+lineheight=Rivin korkeus
+linestart=Rivi alkaa
+linewidth=Linewidth
+loading=Lataus
+lockUnlock=Lukitseminen tai lukituksen poistaminen
+manual=Manuaalinen
+middle=Keskellä
+misc=Lisätiedot
+more=Lisää
+moreResults=Lisää tuloksia
+move=Siirrä
+moveSelectionTo=Siirtää valintaa {1}
+navigation=Navigointi
+new=Uusi
+noColor=Ei väriä
+noFiles=Mitään tiedostoa
+noMoreResults=Ei lisää tuloksia
+none=Mikään
+noResultsFor=Tarjousta ei '{1}'
+normal=Normaali
+north=Pohj.
+numberedList=Numeroidusta luettelosta
+opacity=Opasiteetin
+open=Avaa
+openArrow=Avaa nuoli
+openFile=Avaa tiedosto
+openLink=Linkin avaaminen
+openSupported=Tuettu muoto on .XML-tiedostot tallennettu tämän ohjelmiston
+openInNewWindow=Avaa uudessa ikkunassa
+openInThisWindow=Avaa tämä ikkuna
+options=Vaihtoehdot
+organic=Orgaaninen
+orthogonal=Ortogonaalisen piirtäminen
+outline=Luo yksityisk.
+oval=Ovaalinmuotoinen käyttölaite
+pages=Sivut
+pageView=Sivu
+pageScale=Sivun mittakaava
+pageSetup=Sivun asetukset
+panTooltip=Tilaa vetää selaaminen
+paperSize=Paperikoko
+paste=Liitä
+pasteHere=Liitä täältä
+pattern=Kuvio
+perimeter=Perimeter
+placeholders=Paikkamerkit
+plusTooltip=Muodosta yhteys napsauttamalla ja klooni (napsauttamalla ctrl-klooni, siirrä voit muodostaa yhteyden napsauttamalla). Vedä (ctrl vetää klooni).
+portrait=Muotokuva
+position=Asento
+posterPrint=Julisteen
+preview=Esikatselu
+print=Tulosta
+radialTree=Säteittäinen puu
+redo=Redo
+removeFormat=Poista muotoilu
+removeFromGroup=Poista ryhmä
+removeIt=Poista {1}
+removeWaypoint=Poistaa reittipisteen
+rename=Nimeä
+renameIt=Rename {1}
+replace=Vaihda
+replaceIt={1} on jo olemassa. Haluatko korvata sen?
+replaceExistingDrawing=Korvaa olemassa oleva piirros
+reset=Kuittaus
+resetView=Kuvan palautus alkutilaan
+right=Oikea
+rightAlign=Oikea kohdistus
+rightToLeft=Oikealta vasemmalle
+rotate=Pyöritä
+rotateTooltip=Kierrä napsauttamalla ja vetämällä, käännä 90 astetta
+rotation=Kierto
+rounded=Pyöristetty
+save=Tallenna
+saveAs=Save as
+saved=Tallennettu
+scrollbars=Scrollbars
+search=Haku
+searchShapes=Etsi muotoja
+selectAll=Valitse kaikki
+selectEdges=Valitse reunat
+selectFont=Valitse fontti
+selectNone=Valitse None (Ei mitään)
+selectVertices=Valitse kärjet
+setAsDefaultStyle=Aseta oletukseksi tyyli
+shadow=Shadow
+shape=Muoto
+sharp=Terävä
+sidebarTooltip=Laajenna. Vedä ja pudota muotoja, kaavion avulla. Siirrä napsauttamalla voit muuttaa valintaa. Alt lisää ja yhdistä.
+simple=Yksinkertainen
+simpleArrow=Yksinkertainen nuoli
+size=Koko
+solid=Kiinteät
+sourceSpacing=Lähde välys
+south=Etelässä
+spacing=Välys
+straight=Suora
+strokeColor=Viivan väriä
+style=Tyyli
+subscript=Subscript
+superscript=Superscript
+table=Taulukko
+targetSpacing=Hammaskehän etäisyys
+text=Teksti
+textAlignment=Tekstin tasaus
+textOpacity=Teksti opasiteetti
+toBack=Takaisin
+toFront=Eteen
+tooltips=Työkaluvihjeet
+top=Alkuun
+topAlign=Top kohdista
+topLeft=Ylhäällä vasemmalla
+topRight=Ylhäällä oikealla
+transparent=Läpinäkyvä
+turn=Käännä
+uml=UML
+underline=Alleviivaus
+undo=Löysää
+ungroup=Ryhmittelyn
+url=URL
+untitledLayer=Untitled taso
+vertical=Pystysuora
+verticalFlow=Vertikaalisen virtauksen
+verticalTree=Pystysuora puu
+view=Näkymä
+waypoints=Reittipisteitä
+west=West
+width=Leveys
+wordWrap=Rivitystä
+writingDirection=Kirjallisesti suuntaan
+zoom=Zoom
+zoomIn=Lähennä
+zoomOut=Loitonna
+label=Tarra
+timeout=Aikakatkaisu (sekunteina)
+response=Vastaus aikakatkaisu
+digit=Max merkin
+escape=Pakene numeroa
+retry=Yritä uudelleen
+name=Nimi
+value=Arvo
+entry=Merkintä
+start=Käynnistä
+finally=Lopuksi
+end=Lopussa
+variable=Muuttuja
+set=Aseta
+operation=Toiminta
+math=Math
+result=Tulos
+call_management=Puhelujen hallinta
+answer=Vastaus
+hangup=Kirjautumispyynnön
+dial=Sisäinen valitsin
+ext_dial=Ulkoinen valitsin
+phone=Puhelin
+trunk=Trunk
+identifier=Tunnus
+queue=Jono
+voicemail=Vastaaja
+boxnumber=Numero
+playback=Toisto
+menu=Valikko
+saydigits=SayDigits
+digits=Numeroa
+saynumber=SayNumber
+number=Numero
+sayphonetic=SayPhonetic
+escape_digits=Pakene numeroa
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=Avain
+getdigits=GetDigits
+mindigit=Min numeroa
+maxdigit=Max numeroa
+custom_app=Mukautetun App
+language=Kieli
+frequency=Taajuus
+integrationServer=Integrointiohjelma
+database=Tietokannasta
+query=Kysely
+asr=ASR
+sendSMS=SendSMS
+account_id=Tili
+template_id=Malli
+to=Voit
+sms_text=Teksti
+sendMail=Sendmailin toimiessa
+subject=Aihe
+cc=Cc
+threshold=Kynnys
+maxspeech=Max puheen
+grammar=Kielioppia
+ispeechasr=ISpeechASR
+model=Malli
+noop=NoOp
+output=Lähtö
+system=Järjestelmä
+command=Ohjaus
+application=Sovellus
+agi=Yhteyttä opastuksen AGI
+args=Perustelut
+subproject=Osaprojekti
+goalname=Tavoitteen nimi
+callflow=Callflow
+gotoc=Siirry tietoturvakeskukseen
+context=Yhteydessä
+extension=Laajennus
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=Aikaväli
+leftOperand=Vasen operaattorille.
+condition=Kunto
+rightOperand=Oikeanpuoleisena kohdemuuttujana
+vswitch=Katkaisin
+recording=Tallennus
+record=Tallennus
+queuename=Jonon nimi
+announceoverride=Ilmoita ohitus
+callid=CallID
+agent=Agent
+queue_event=Tapahtuma
+data1=Data1
+data2=2
+data3=Data3
+data4=Data4
+data5=Kuluveloitus
+macro=Makro
+stats=Tilastot
+queuelog=QueueLog
+goal=Tavoite
+callback=Takaisinsoitto
+list=Luettelo
+delay=Viive
+list_id=Luettelo
+opts=Vaihtoehdot
+queue_id=Jono
+file_id=Tiedosto
+variable_id=Muuttuja
+gosub=Gosub
+project_id=Projektin
+sip_id=SIP
+trunk_name=Trunk
+variable_value=Muuttuva arvo
+database_id=Tietokannasta
+interval_id=Aikaväli
+description_start=Aloita kuvaus
+publish=Pubblica
+ispeech_asr_language=Kieli
+ispeech_tts_language=Kieli
+google_tts_language=Kieli
+queue_variable=Jono from Variable
+odbc_id=ODBC-yhteys
+noVariableSelected=Muuttuja ei ole määritetty.
+noTrunkSelected=Tavaratila ei ole määritetty.
+noAudioSelected=Äänitiedostoa ei ole määritetty.
+noOperandSelected=Vasen operaattori ei ole määritetty.
+noDatabaseSelected=Tietokanta ei ole määritetty.
+noExtensionSelected=Laajennus ei ole määritetty.
+noCommandSelected=Ohjausta ei ole määritetty.
+noApplicationSelected=Sovellus ei ole määritetty
+noRightOperandSelected=Oikeanpuoleisena kohdemuuttujana ei ole määritetty.
+noDigitsSelected=Numeroa ei ole määritetty.
+noNumberSelected=Numeroa ei ole määritetty.
+noRecipientSelected=Vastaanottaja ei ole määritetty.
+noTextSelected=Teksti ei ole määritetty.
+noAccountSelected=Tiliä ei ole määritetty.
+noKeySelected=Avainta ei ole määritetty.
+noIdentifierSelected=Tunnus ei ole määritetty.
+noQueueSelected=Jonon nimeä ei ole määritetty.
+noConditionSelected=Kunto ei ole määritetty.
+noIntervalSelected=Aikaväli ei ole määritetty.
+noContextSelected=Kehyksessä ei ole määritetty.
+noBoxNumberSelected=Nimeä ei ole määritetty.
+noProjectSelected=Osaprojektia ei määritetty.
+noFileSelected=Tiedoston nimeä ei ole määritetty.
+numberOrInvalidOrTimeout=Aseta numero, i tai t (varmista, että valkoinen välejä).
+numberOrAll=Aseta numero tai -.
+numberOrInvalidOrDefault=Aseta x, i tai -.
+trueOrFalse=Aseta tosi tai epätosi.
+noGoalSelected=Tavoitteena ei ole määritetty.
+noListSelected=Luettelo ei ole määritetty.
+musthave=On oltava
+outgoingedge=Lähtevät reunasta.
+incomingedge=Saapuvan reunasta.
+mailbox=Postilaatikkoon
+intKey=Keskeytysnäppäintä
+speed=Nopeus
+wrongMinDigit=Min numero on suurempi kuin 0
+wrongMaxDigit=Suurin numero on suurempi kuin 0
+wrongHiddenDigitsnum=Piilotettu numeroa numeron on oltava suurempi tai yhtä suuri kuin 0
+hiddendigitsnum=Piilotettu numeroiden lukumäärä
+hiddendigitspos=Piilotetut numerot asento
+getsecretdigits=GetSecretDigits
+beep=Äänimerkki
+description=Kuvaus
+recordingFormat=Muoto
+bcc=Bcc
+invalidTimeout=Virheellinen aikakatkaisuarvo
+invalidRetry=Virheellinen arvo uudelleen
+invalidSpeed=Väärä nopeus
+missingQuery=Kysely merkkijono puuttuu
+invalidPriority=Virheellinen käyttöastearvo
+invalidDelay=Virheellinen virtausviive
+noAttachmentSelected=Mitään valittuna
+sendFax=SendFax
+attachment_name=Valittu liite
+choose_attachment=Valitse kiinnitys
+help_choose_attachment=Muoto: pdf, tiff- tai tif
+help_delay=Minuutteina aika, odota, ennen kuin soitat takaisin yhteyshenkilö
+noFirstNameSelected=Etunimi ei ole määritetty
+noPhoneSelected=Puhelinta ei ole määritetty
+editFile=Muokkaa XML
+priority=Prioriteetti
+numberOrLettersOrAll=Lisää numeroita, kirjaimia tai -.
diff --git a/public/assets/plugins/square/resources/grapheditor_fr.txt b/public/assets/plugins/square/resources/grapheditor_fr.txt
new file mode 100644 (file)
index 0000000..d4812be
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=Nodes déjà connecté
+cancel=Annuler
+close=Fermer
+collapse-expand=Réduire/Développer
+containsValidationErrors=Contient des erreurs de validation
+done=Fait
+doubleClickOrientation=Double-clic pour changer d'orientation
+error=Error
+ok=OK
+updatingDocument=Mise à jour du document. Veuillez patienter...
+updatingSelection=La mise à jour de la sélection. Veuillez patienter...
+about=À propos de
+actualSize=Taille réelle
+add=Ajouter
+addLayer=Ajouter Couche
+addProperty=Propriété ajouter
+addToExistingDrawing=Ajouter au dessin existant
+addWaypoint=Ajouter un waypoint
+advanced=Recherche avancée
+align=Aligner
+alignment=L'alignement
+allChangesLost=Toutes les modifications seront perdues !
+angle=Angle
+apply=Appliquer
+arrange=Organiser
+arrow=Arrow
+arrows=Flèches
+automatic=Automatic
+autosave=L'enregistrement automatique
+autosize=Autosize.
+background=Contexte
+backgroundColor=Couleur d'arrière-plan
+backgroundImage=Image en arrière-plan
+basic=Basic
+block=Block
+blockquote=Blockquote
+bold=Bold
+borderWidth=Borderwidth
+borderColor=La couleur de la bordure
+bottom=Bas
+bottomAlign=Aligner en bas
+bottomLeft=En bas à gauche
+bottomRight=En bas à droite
+bulletedList=Liste à puces
+cannotOpenFile=Ne peut pas ouvrir le fichier
+center=Center
+change=Modifier
+changeOrientation=Changer d'orientation
+circle=Circle
+classic=Classic
+clearDefaultStyle=Clair Style par défaut
+clearWaypoints=Waypoints claire
+clipart=Clipart
+collapse=Effondrement
+collapseExpand=Réduire/Développer
+collapsible=Retractable
+comic=Comic
+connect=Se connecter
+connection=La liaison
+connectionPoints=Points de connexion.
+connectionArrows=Flèches de connexion
+constrainProportions=Conserver les proportions
+copy=Copie
+copyConnect=Copie sur Connect
+create=Créer
+curved=Panneaux
+custom=Custom
+cut=Couper
+dashed=Néant
+decreaseIndent=Diminuer le retrait
+default=Valeur par défaut
+delete=Supprimer
+deleteColumn=Supprimer la colonne
+deleteRow=Supprimer une ligne
+diagram=Schéma électrique
+diamond=Diamond
+diamondThin=Diamond (léger)
+direction=Direction
+distribute=Distribuer
+divider=Divider
+documentProperties=Les propriétés du document
+dotted=Parsemé
+drawing=Dimensions{1}
+drawingEmpty=Le dessin est vide
+drawingTooLarge=Le dessin est trop grand
+duplicate=Dupliquer
+duplicateIt=Dupliquer le {1}
+east=À l'Est
+edit=Modifier
+editData=Modifier des données
+editDiagram=Schéma de montage
+editImage=Modifier l'image
+editLink=Lien Modifier
+editStyle=Modifier le style
+editTooltip=Éditer Tooltip
+enterGroup=Groupe entrer
+enterValue=Entrer la valeur
+enterName=Saisissez le nom
+enterPropertyName=Entrez le nom de la propriété
+entityRelation=Rapport de l'entité
+exitGroup=Groupe de sortie
+expand=L'expansion
+export=Exporter
+extras=Extras
+file=Dossier
+fileNotFound=Fichier non trouvé
+filename=Nom du fichier
+fill=Remplir
+fillColor=Couleur de remplissage
+fitPage=Une page
+fitPageWidth=La largeur de la page
+fitTwoPages=Deux pages
+fitWindow=Ajuster la fenêtre
+flip=Flip
+flipH=Flip Horizontal
+flipV=Flip Vertical
+font=Font
+fontFamily=Famille de polices
+fontColor=Font Color
+fontSize=La taille de la police
+format=Présentation
+formatPanel=Panneau de format
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=Le XML
+formatted=Formaté
+formattedText=Texte formaté
+general=Général
+glass=Glass
+global=Global
+gradient=Dégradé
+gradientColor=Color
+grid=Grid
+gridSize=Taille de la grille
+group=Group
+guides=Guides
+heading=La position
+height=Hauteur
+help=Aider
+hide=Masquer
+hideIt=Masquer le {1}
+hidden=Hidden
+home=Accueil
+horizontal=L'horizontale
+horizontalFlow=Flux horizontal
+horizontalTree=Arbre horizontal
+html=HTML
+image=Droit
+images=Images
+import=Importer
+increaseIndent=Augmenter le retrait
+insert=Insérer
+insertColumnBefore=Insérer colonne vers la gauche
+insertColumnAfter=Insérer colonne droite
+insertHorizontalRule=Insérer la règle horizontale
+insertImage=Insertion d'image
+insertLink=Insérer le lien
+insertRowBefore=Insérer la ligne ci-dessus
+insertRowAfter=Insérer la ligne ci-dessous
+invalidName=Nom non valide
+invalidOrMissingFile=Fichier non valide ou manquant
+isometric=La tension isométrique
+italic=Italic
+layers=Couches
+landscape=Paysage
+laneColor=Lanecolor
+layout=La mise en page
+left=La gauche
+leftAlign=Alignez à gauche
+leftToRight=De gauche à droite
+line=Line
+link=Link
+lineend=Fin de ligne
+lineheight=La hauteur de ligne
+linestart=Début de ligne
+linewidth=Épaisstrait
+loading=Loading
+lockUnlock=Verrouiller/Déverrouiller
+manual=Manual
+middle=Milieu
+misc=Misc
+more=Plus
+moreResults=Plus de résultats
+move=Déplacer
+moveSelectionTo=Déplacer la sélection à {1}
+navigation=La navigation
+new=Nouveau
+noColor=Pas de couleur
+noFiles=Aucun fichier
+noMoreResults=Il n'y a plus de résultats
+none=Aucun
+noResultsFor=Pas de résultats pour '{1}'
+normal=La normale
+north=Au nord
+numberedList=Liste numérotée
+opacity=L'opacité
+open=Ouvrir
+openArrow=Flèche ouverture
+openFile=Ouvrir le fichier
+openLink=Ouvrir le lien
+openSupported=Format pris en charge les fichiers .XML est sauvé de ce logiciel
+openInNewWindow=Ouvrir dans une nouvelle fenêtre
+openInThisWindow=Dans cette fenêtre ouverte
+options=Options
+organic=Organic
+orthogonal=Projections orthogonales
+outline=Contours
+oval=Oval
+pages=Pages
+pageView=Voir la page
+pageScale=L'échelle de la page
+pageSetup=La mise en page
+panTooltip=Faites glisser l'espace pour faire défiler
+paperSize=Taille de papier
+paste=Coller
+pasteHere=Coller ici
+pattern=Pattern
+perimeter=Perimeter
+placeholders=Espaces réservés
+plusTooltip=Cliquez pour vous connecter et cliquez sur ctrl (clone de clone, Maj-clic pour se connecter). Faites glisser pour se connecter (ctrl-glisser pour clone).
+portrait=Portrait
+position=Poste
+posterPrint=Impression d'affiches
+preview=Aperçu
+print=Imprimer
+radialTree=Arbre généalogique radiale
+redo=Refaire
+removeFormat=Mise en forme claire
+removeFromGroup=Supprimer du groupe
+removeIt=Retirer le {1}
+removeWaypoint=Déposer Waypoint
+rename=Renommer
+renameIt=Renommer {1}
+replace=Remplacer
+replaceIt={1} existe déjà. Voulez-vous la remplacer ?
+replaceExistingDrawing=Remplacer les dimensions
+reset=Réinitialiser
+resetView=Réinitialiser la vue
+right=Droit
+rightAlign=Aligner à droite
+rightToLeft=Droite à gauche
+rotate=Faire pivoter
+rotateTooltip=Cliquez et faites glisser pour faire pivoter, cliquez sur pour activer par 90 degrés
+rotation=La rotation
+rounded=Arrondi
+save=Sauvegarder
+saveAs=Enregistrer sous
+saved=Sauvé
+scrollbars=Les barres de défilement
+search=Recherchez
+searchShapes=Des formes de recherche
+selectAll=Sélectionnez tous les
+selectEdges=Sélectionnez bords
+selectFont=Sélectionnez une police
+selectNone=Sélectionnez Aucun
+selectVertices=Sélectionnez les sommets
+setAsDefaultStyle=Définir comme style par défaut
+shadow=Ombre
+shape=Forme
+sharp=Sharp
+sidebarTooltip=Cliquez pour agrandir. Faites glisser et déposez les formes en diagramme. Cliquez sur Shift pour changer la sélection. Alt cliquez pour insérer et connecter.
+simple=Simple
+simpleArrow=Flèche simple
+size=Size
+solid=De solides
+sourceSpacing=Source Spacing
+south=Au sud
+spacing=L'espacement
+straight=Tout droit
+strokeColor=La couleur de ligne
+style=Style
+subscript=Indice
+superscript=Superscript
+table=Le tableau
+targetSpacing=Espacement cible
+text=Text
+textAlignment=L'alignement du texte
+textOpacity=L'opacité du texte
+toBack=Retour à
+toFront=À l'avant
+tooltips=Les info-bulles
+top=Haut
+topAlign=Haut Aligner
+topLeft=En haut à gauche
+topRight=Haut à droite
+transparent=Transparent
+turn=Tour
+uml=UML
+underline=Souligner
+undo=Annuler
+ungroup=Ungroup
+url=URL
+untitledLayer=Couche sans titre
+vertical=La verticale
+verticalFlow=L'écoulement vertical
+verticalTree=Arbre vertical
+view=Voir
+waypoints=Waypoints
+west=À l'Ouest
+width=Largeur
+wordWrap=Word Wrap
+writingDirection=Direction d'écriture
+zoom=Zoom
+zoomIn=Zoom In
+zoomOut=Zoom Out
+label=Label
+timeout=Délai (secondes)
+response=Délai de réponse
+digit=Chiffres max.
+escape=Chiffres d'échappement
+retry=Réessayer
+name=Nom
+value=Valeur
+entry=Entrée
+start=Commencer
+finally=Enfin
+end=Fin
+variable=Variable
+set=Set
+operation=L'opération
+math=Math
+result=Résultat
+call_management=Gestion des appels
+answer=Répondre à
+hangup=Raccroché.
+dial=Numérotation interne
+ext_dial=Numérotation externe
+phone=Téléphone
+trunk=Trunk
+identifier=Identifier
+queue=Queue
+voicemail=La messagerie vocale
+boxnumber=Numéro de boîte
+playback=La lecture
+menu=Menu contextuel
+saydigits=Exemple SayDigits
+digits=Chiffres
+saynumber=SayNumber
+number=Nombre
+sayphonetic=SayPhonetic
+escape_digits=Chiffres d'échappement
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=Key
+getdigits=GetDigits
+mindigit=Min Chiffres
+maxdigit=Chiffres max.
+custom_app=Application sur mesure
+language=Language
+frequency=Fréquence
+integrationServer=Integration Server
+database=Base de données
+query=Query
+asr=L'ASR
+sendSMS=SendSMS
+account_id=Compte
+template_id=Template
+to=À
+sms_text=Text
+sendMail=SendMail
+subject=Sous réserve
+cc=Cc
+threshold=Threshold
+maxspeech=Discours de Max
+grammar=Grammaire
+ispeechasr=ISpeechASR
+model=Model
+noop=NoOp
+output=Output
+system=System
+command=La commande
+application=Application
+agi=Mga
+args=Arguments
+subproject=Sous-projet
+goalname=Nom de l'objectif
+callflow=Flux d
+gotoc=Goto
+context=Contexte
+extension=Extension
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=L'intervalle de temps
+leftOperand=Opérande de gauche
+condition=Condition
+rightOperand=Opérande droit
+vswitch=Switch
+recording=L'enregistrement
+record=Notice
+queuename=Nom de Queue
+announceoverride=Annoncer Annuler
+callid=CallID
+agent=Agent
+queue_event=Cas
+data1=Data1
+data2=Data2
+data3=Data3
+data4=Données4
+data5=Data5
+macro=Macro
+stats=Stats
+queuelog=QueueLog
+goal=Objectif
+callback=Le Rapp
+list=Liste
+delay=Délai
+list_id=Liste
+opts=Options
+queue_id=Queue
+file_id=Dossier
+variable_id=Variable
+gosub=Gosub
+project_id=Projet
+sip_id=Le SIP
+trunk_name=Trunk
+variable_value=Valeur Variable
+database_id=Base de données
+interval_id=Interval
+description_start=Description de début
+publish=Pubblica
+ispeech_asr_language=Language
+ispeech_tts_language=Language
+google_tts_language=Language
+queue_variable=Queue de variable
+odbc_id=Connexion ODBC
+noVariableSelected=Variable n'est pas spécifié.
+noTrunkSelected=Le tronc n'est pas spécifié.
+noAudioSelected=Fichier audio n'est pas spécifié.
+noOperandSelected=Opérande de gauche n'est pas spécifié.
+noDatabaseSelected=Base de données n'est pas spécifié.
+noExtensionSelected=L'extension n'est pas spécifié.
+noCommandSelected=Commande n'est pas spécifié.
+noApplicationSelected=L'application n'est pas spécifié
+noRightOperandSelected=Opérande de droite n'est pas spécifié.
+noDigitsSelected=Chiffres n'est pas spécifié.
+noNumberSelected=Nombre n'est pas spécifié.
+noRecipientSelected=Bénéficiaire n'est pas spécifié.
+noTextSelected=Le texte n'est pas spécifié.
+noAccountSelected=Compte n'est pas spécifié.
+noKeySelected=Clé n'est pas spécifié.
+noIdentifierSelected=Identificateur n'est pas spécifié.
+noQueueSelected=Nom de queue n'est pas spécifié.
+noConditionSelected=Condition n'est pas spécifié.
+noIntervalSelected=Intervalle n'est pas spécifié.
+noContextSelected=Contexte n'est pas spécifié.
+noBoxNumberSelected=Le nom de la boîte n'est pas spécifié.
+noProjectSelected=Le projet n'est pas spécifié.
+noFileSelected=Nom de fichier n'est pas spécifié.
+numberOrInvalidOrTimeout=Insérer le nombre, i ou t (vérifier les espaces blancs).
+numberOrAll=Insérer le nombre ou -.
+numberOrInvalidOrDefault=Insérer x, i ou -.
+trueOrFalse=Insérer vrai ou faux.
+noGoalSelected=But n'est pas spécifié.
+noListSelected=Liste n'est pas spécifié.
+musthave=Doit avoir
+outgoingedge=Bord sortant.
+incomingedge=Edge entrants.
+mailbox=Boîte aux lettres
+intKey=Touche d'interruption
+speed=Speed
+wrongMinDigit=Min chiffres doit être supérieure à 0
+wrongMaxDigit=Chiffres max doit être supérieure à 0
+wrongHiddenDigitsnum=Chiffres cachés nombre doit être supérieur ou égal à 0
+hiddendigitsnum=Nombre de chiffres cachés
+hiddendigitspos=Position des chiffres cachés
+getsecretdigits=GetSecretDigits
+beep=Bip
+description=Description
+recordingFormat=Présentation
+bcc=Cci
+invalidTimeout=La valeur du délai non valide
+invalidRetry=Valeur de tentative non valide
+invalidSpeed=Valeur non valide
+missingQuery=La chaîne de requête est manquant
+invalidPriority=La valeur de priorité non valide
+invalidDelay=Valeur de délai non valide
+noAttachmentSelected=Aucun accessoire sélectionné
+sendFax=SendFax
+attachment_name=Pièce jointe sélectionnée
+choose_attachment=Choisissez la pièce jointe
+help_choose_attachment=Format : pdf, tiff ou tif
+help_delay=Le temps, en minutes, à attendre avant d'appeler le contact retour
+noFirstNameSelected=Prénom n'est pas spécifié
+noPhoneSelected=Phone n'est pas spécifié
+editFile=Modifier le XML
+priority=La priorité
+numberOrLettersOrAll=Insérer des chiffres, lettres ou -.
diff --git a/public/assets/plugins/square/resources/grapheditor_hi.txt b/public/assets/plugins/square/resources/grapheditor_hi.txt
new file mode 100644 (file)
index 0000000..3a4cd2f
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=नोड्स से पहले ही कनेक्
+cancel=रद्द करें
+close=निकट
+collapse-expand=धराशायी/विस्तार
+containsValidationErrors=इसमें वैधीकरण त्रुटियां
+done=किया
+doubleClickOrientation=Doubleclick बदलने के लिए अभिविन्यास
+error=त्रुटि
+ok=ठीक
+updatingDocument=अद्यतन दस्तावेज है। कृपया प्रतीक्षा करें...
+updatingSelection=अद्यतन का चयन है। कृपया प्रतीक्षा करें...
+about=के बारे में
+actualSize=वास्तविक आकार
+add=जोड़ें
+addLayer=परत जोड़ें
+addProperty=सम्पत्ति पर जोड़ें
+addToExistingDrawing=विद्यमान वास्तुकला में जोड़ें
+addWaypoint=मार्ग बिंदु पर जोड़ें
+advanced=उन्नत
+align=कनेक्टरों
+alignment=संलेखन
+allChangesLost=सभी बदलाव खो जाएंगे!
+angle=कोण
+apply=लागू करें
+arrange=व्यवस्था
+arrow=तीर
+arrows=तीर
+automatic=स् वचालित
+autosave=Autosave
+autosize=Autosize
+background=पृष्ठभूमि
+backgroundColor=पृष्ठभूमि रंग
+backgroundImage=पृष्ठभूमि की छवि
+basic=मूल
+block=ब्लॉक करें
+blockquote=Blockquote
+bold=साहसी
+borderWidth=Borderwidth
+borderColor=सीमा पर रंग
+bottom=नीचे
+bottomAlign=नीचे कनेक्टरों
+bottomLeft=निचला बायां
+bottomRight=निचला दायां
+bulletedList=Bulleted सूची
+cannotOpenFile=फ़ाइल को नहीं खोल सकता
+center=केंद्र
+change=परिवर्तन
+changeOrientation=परिवर्तन के लिए अभिविन्यास
+circle=सर्कल
+classic=मजेदार
+clearDefaultStyle=डिफ़ॉल्ट रूप से साफ शैली
+clearWaypoints=Waypoints साफ करें
+clipart=Clipart
+collapse=धराशायी
+collapseExpand=धराशायी/विस्तार
+collapsible=Collapsible
+comic=कार्टून
+connect=कनेक्ट करें
+connection=कनेक् शन
+connectionPoints=कनेक् शन अंक
+connectionArrows=कनेक् शन तीर
+constrainProportions=अनुपात पर्याप् तता
+copy=कॉपी करें
+copyConnect=कनेक्ट पर कॉपी करें
+create=पैदा करना
+curved=वक्र
+custom=कस्टम
+cut=काट
+dashed=पानी फिरा
+decreaseIndent=हाशिया घटाएं
+default=डिफ़ॉल्ट
+delete=हटाना
+deleteColumn=स्तंभ हटाएं
+deleteRow=पंक्ति हटाएं
+diagram=डायाग्राम
+diamond=हीरा
+diamondThin=हीरा (पतला)
+direction=दिशा
+distribute=दर्शनार्थियों
+divider=Divider
+documentProperties=दस्तावेज़ गुण
+dotted=बेलों
+drawing=आहरण{1}
+drawingEmpty=आहरण रिक्त है
+drawingTooLarge=आहरण बहुत लंबा है
+duplicate=डुप्लिकेट
+duplicateIt=डुप्लिकेट {1}
+east=पूर्वी
+edit=संपादित करें
+editData=डेटा को संपादित करें
+editDiagram=डायाग्राम संपादित करें
+editImage=छवि को संपादित करें
+editLink=लिंक को संपादित करें
+editStyle=शैली संपादित करें
+editTooltip=Tooltip संपादित करें
+enterGroup=ग्रुप ए में दर्ज करें
+enterValue=मान दर्ज करें
+enterName=नाम दर्ज करें
+enterPropertyName=संपत्ति के नाम दर्ज करें
+entityRelation=एंटिटी संबंध
+exitGroup=समूह से बाहर निकलें
+expand=विस्तार
+export=निर्यात
+extras=Extras
+file=फाइल
+fileNotFound=फ़ाइल नहीं मिली
+filename=फ़ाइल नाम
+fill=भरें
+fillColor=रंग भरना
+fitPage=एक पृष्ठ
+fitPageWidth=पृष्ठ चौड़ाई
+fitTwoPages=दो पृष्ठ
+fitWindow=विंडो में फ़िट करें
+flip=आपके द्वारा फ्लिप
+flipH=आपके द्वारा फ्लिप क्षैतिज
+flipV=आपके द्वारा फ्लिप वर्टिकल
+font=फ़ॉन्ट
+fontFamily=फ़ॉन्ट परिवार
+fontColor=फ़ॉन्ट रंग
+fontSize=फ़ॉन्ट आकार
+format=स्वरूप
+formatPanel=स्वरूप से संबंधित पैनल ।
+formatPdf=PDF टू गो
+formatPng=वेप्रत्येक पखवाडे
+formatGif=कतिपयदेशों
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=स्वरूपित
+formattedText=स्वरूपित पाठ
+general=सामान्य
+glass=ग्लास
+global=विश्वव्यापी
+gradient=ग्रेडिएन्ट वाला
+gradientColor=रंग
+grid=ग्रिड
+gridSize=ग्रिड का आकार
+group=समूह
+guides=मार्गदर्शिका
+heading=पकडएं
+height=ऊंचाई
+help=मदद
+hide=छुपाएं
+hideIt={1} को छिपाएं
+hidden=छिपा हुआ
+home=गृह
+horizontal=अनुप्रस्थ
+horizontalFlow=क्षैतिज प्रवाह
+horizontalTree=क्षैतिज वृक्ष
+html=HTML
+image=छवि
+images=छवियां
+import=आयात
+increaseIndent=हाशिया बढ़ाएं
+insert=सम् मिलित
+insertColumnBefore=बाईं तरफ डालें
+insertColumnAfter=स्तंभ सम्मिलित अधिकार
+insertHorizontalRule=क्षैतिज शासन लगाएं
+insertImage=छवि डालें
+insertLink=लिंक डालें
+insertRowBefore=पंक् ति के ऊपर डालें
+insertRowAfter=नीचे से पंक्ति डालें
+invalidName=अमान्य नाम
+invalidOrMissingFile=फ़ाइल अमान्य या गुम
+isometric=सममितीय
+italic=वे इटैलिक
+layers=मुर्गियों
+landscape=लैंडस्केप
+laneColor=Lanecolor
+layout=लेआउट
+left=छोड़
+leftAlign=बाएं कनेक्टरों
+leftToRight=बाएँ ओर से दाएँ
+line=रेल लाइन
+link=कड़ी
+lineend=रेखा के अंत
+lineheight=पंक्ति ऊंचाई
+linestart=रेल लाइन शुरू
+linewidth=Linewidth
+loading=लदान
+lockUnlock=अनलॉक करने के लिए, अवरोध/
+manual=हस्त
+middle=मध्य
+misc=विविध
+more=अधिक
+moreResults=और अधिक परिणाम
+move=चाल
+moveSelectionTo=चयन करने के लिए {1} पर जाएं
+navigation=नेविगेशन
+new=नया
+noColor=कोई रंग
+noFiles=कोई फ़ाइल
+noMoreResults=और अधिक परिणाम नहीं
+none=कोई नहीं
+noResultsFor='{1}' के लिए कोई परिणाम
+normal=सामान्य
+north=उत्तर
+numberedList=संख्यांक सूची
+opacity=Opacity
+open=खुला
+openArrow=खुले तीर
+openFile=फ़ाइल को नहीं खोल
+openLink=लिंक खोलें
+openSupported=XML स्वरूपित समर्थित फ़ाइलों से बचाया जाता है।इस सॉफ़्टवेयर
+openInNewWindow=खुले में नई खिडकी
+openInThisWindow=इस विंडो में खोलें
+options=विकल्प
+organic=ऑर्गेनिक
+orthogonal=Orthogonal
+outline=रूपरेखा
+oval=अंडाकार
+pages=पृष्ठ
+pageView=पृष्ठ दृश्य
+pageScale=पृष्ठ पर
+pageSetup=सेटअप पृष्ठ
+panTooltip=स्क्रॉल करने के लिए अन्तरिख्र कर्षण
+paperSize=कागज आकार
+paste=चिपकाने
+pasteHere=यहां चिपकाने
+pattern=ढंग
+perimeter=पैरीमीटर
+placeholders=प्लेसहोल्डर
+plusTooltip=कनेक् ट करने के लिए क्लिक करें पर क्लिक करें और क्लोन (ctrl कनेक्ट करने के लिए, Shift करें पर क्लिक करें. क्लोन कनेक् ट करने के लिए घसीटकर ctrl क्लोन) (कर्षण
+portrait=पोर्ट्रेट
+position=की स्थिति
+posterPrint=पोस्टर मुद्रित करें
+preview=पूर्वावलोकन
+print=प्रिंट
+radialTree=त्रिज् वृक्ष
+redo=पुनर्लिखित
+removeFormat=साफ स्वरूपण
+removeFromGroup=समूह से निकालें
+removeIt={1} से निकालें
+removeWaypoint=दूर मार्ग बिंदु
+rename=नाम बदलें
+renameIt={1} का नाम बदलें
+replace=को बदलने
+replaceIt={1} पहले से मौजूद है. क्या आप इसे बदलना चाहते हैं?
+replaceExistingDrawing=वर्तमान स्थान आहरण
+reset=रीसेट करें
+resetView=राय को रीसेट करें
+right=अधिकार
+rightAlign=अधिकार कनेक्टरों
+rightToLeft=अधिकार को रवाना
+rotate=घुमाएँ
+rotateTooltip=वैश्यों और पर क्लिक करें पर क्लिक करें. को घुमाने के लिए 90 डिग्री
+rotation=बारी
+rounded=लडें
+save=सहेजें
+saveAs=इस रूप में सहेजें
+saved=सहेजा गया
+scrollbars=Scrollbars
+search=खोज
+searchShapes=खोज आकारों
+selectAll=सभी का चयन करें
+selectEdges=किनारों का चयन करें
+selectFont=फ़ॉन्ट चुनें
+selectNone=किसी का भी चयन
+selectVertices=Vertices चुनें
+setAsDefaultStyle=डिफ़ॉल्ट शैली के रूप में सेट करें
+shadow=छाया
+shape=आकार
+sharp=कन् धे
+sidebarTooltip=का विस्तार करने के लिए क्लिक करें. वैश्यों और आकार में बीच में ही पढाई छोड देने के लिये हैं। चयन करें पर क्लिक करें. शिफ्ट परिवर्तन कनेक्ट करें पर क्लिक करें और दबाएं. Alt डालना
+simple=सरल
+simpleArrow=साधारण तीर
+size=आकार
+solid=ठोस
+sourceSpacing=स्पेसिंग स्रोत
+south=दक्षिण
+spacing=निरोधक
+straight=सीधा
+strokeColor=लाइन का रंग
+style=शैली
+subscript=Subscript
+superscript=Superscript
+table=तालिका
+targetSpacing=स्पेसिंग लक्ष्य
+text=पाठ
+textAlignment=पाठ संलेखन
+textOpacity=पाठ Opacity
+toBack=को वापस
+toFront=के सामने
+tooltips=Tooltips
+top=शीर्ष
+topAlign=शीर्ष कनेक्टरों
+topLeft=शीर्ष
+topRight=ऊपरी
+transparent=पारदर्शी
+turn=मोड़
+uml=साधनाप्रधान का परसों निधन हो गया
+underline=अंडरलाइन
+undo=बिगाडना
+ungroup=Ungroup
+url=URL
+untitledLayer=अनामांकित परत
+vertical=ऊर्ध् वगामी
+verticalFlow=ऊर्ध् वगामी प्रवाह
+verticalTree=ऊर्ध् वगामी वृक्ष
+view=विचार
+waypoints=Waypoints
+west=पश्चिम
+width=चौड़ाई
+wordWrap=वर्ड रैप
+writingDirection=लेखन दिशा
+zoom=ज़ूम करें
+zoomIn=ज़ूम इन करें.
+zoomOut=ज़ूम आउट
+label=लेबल
+timeout=समयबाह्य (सेकंड)
+response=प्रत्युत्तर समयबाह्य
+digit=अधिकतम अंक
+escape=Escape अंगुलि
+retry=पुन: प्रयास करें.
+name=नाम
+value=मूल्य
+entry=प्रवेश
+start=प्रारंभ
+finally=अंतत:
+end=अन्त
+variable=परिवर्तनीय
+set=सेट करें
+operation=प्रचालन
+math=मुंडक
+result=परिणाम
+call_management=प्रबंधन को कॉल करें
+answer=उत्तर
+hangup=Hangup
+dial=आंतरिक डायल करें
+ext_dial=बाह्य डायल करें
+phone=फ़ोन
+trunk=सूंड
+identifier=Identifier
+queue=कतार
+voicemail=वॉयसमेल
+boxnumber=बॉक्स संख्या
+playback=प्लेबैक
+menu=मेनू
+saydigits=SayDigits
+digits=मापा
+saynumber=SayNumber
+number=की संख्या
+sayphonetic=SayPhonetic
+escape_digits=Escape अंगुलि
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=कुंजी दबाएं
+getdigits=GetDigits
+mindigit=मिन अंगुलि
+maxdigit=अधिकतम अंक
+custom_app=कस्टम App World
+language=की भाषा
+frequency=आवृत्ति
+integrationServer=सर्वर एकीकरण
+database=डाटाबेस
+query=पूछा गया प्रश्न
+asr=ASR
+sendSMS=SendSMS
+account_id=खाते
+template_id=टेम्पलेट
+to=करना
+sms_text=पाठ
+sendMail=SendMail
+subject=विषय
+cc=प्रतिलिपि
+threshold=देहलीज
+maxspeech=अधिकतम भाषण
+grammar=व्याकरण
+ispeechasr=ISpeechASR
+model=आदर्श
+noop=NoOp
+output=उत् पादन में
+system=प्रणाली
+command=कमांड
+application=अनुप्रयोग
+agi=AGI
+args=तर्क
+subproject=SubProject
+goalname=गोल नाम
+callflow=Callflow
+gotoc=जाएँगे|
+context=संदर्भ
+extension=विस्तार
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=उस समय अन्तराल
+leftOperand=बाएं Operand
+condition=दशा
+rightOperand=अधिकार Operand
+vswitch=स्विच करें
+recording=रिकॉर्डिंग
+record=रिकार्ड
+queuename=लोकतंत्रमें नाम
+announceoverride=ओवरराइड की घोषणा
+callid=CallID
+agent=कर्ता
+queue_event=इवेंट
+data1=डेटा1
+data2=डेटा2
+data3=डेटा3
+data4=डेटा4
+data5=डेटा5
+macro=स्थूल
+stats=आंकड़े
+queuelog=QueueLog
+goal=गोल
+callback=कॉलबैक
+list=की सूची
+delay=विलंब
+list_id=की सूची
+opts=विकल्प
+queue_id=कतार
+file_id=फाइल
+variable_id=परिवर्तनीय
+gosub=Gosub
+project_id=परियोजना
+sip_id=कमरंद
+trunk_name=सूंड
+variable_value=परिवर्तनीय मूल्य
+database_id=डाटाबेस
+interval_id=अन्तराल
+description_start=प्रारंभ में शुमार
+publish=Pubblica
+ispeech_asr_language=की भाषा
+ispeech_tts_language=की भाषा
+google_tts_language=की भाषा
+queue_variable=कतार से परिवर्तनीय
+odbc_id=ODBC कनेक्शन
+noVariableSelected=परिवर्तनीय है निर्दिष्ट नहीं किया गया.
+noTrunkSelected=सूंड का निर्दिष्ट नहीं किया गया है।
+noAudioSelected=ऑडियो फ़ाइल निर्दिष्ट नहीं है।
+noOperandSelected=बाएं operand निर्दिष्ट नहीं किया गया है।
+noDatabaseSelected=डाटाबेस निर्दिष्ट नहीं किया गया.
+noExtensionSelected=विस्तार नहीं है।
+noCommandSelected=कमान निर्दिष्ट नहीं किया गया.
+noApplicationSelected=अनुप्रयोग निर्दिष्ट नहीं
+noRightOperandSelected=निर्दिष्ट नहीं operand अधिकार
+noDigitsSelected=मापा नहीं है।
+noNumberSelected=यह संख्या निर्दिष्ट नहीं किया गया.
+noRecipientSelected=प्राप्तकर्ता निर्दिष्ट नहीं किया गया है।
+noTextSelected=पाठ नहीं है।
+noAccountSelected=खाते निर्दिष्ट नहीं है।
+noKeySelected=कुंजी नहीं है।
+noIdentifierSelected=निर्दिष्ट नहीं Identifier
+noQueueSelected=नाम निर्दिष्ट नहीं है कतार
+noConditionSelected=िस्थति यह निर्दिष्ट नहीं किया गया है।
+noIntervalSelected=मध्यांतर तक नहीं है।
+noContextSelected=संदर्भ निर्दिष्ट नहीं किया गया.
+noBoxNumberSelected=बॉक्स नाम निर्दिष्ट नहीं है।
+noProjectSelected=निर्दिष्ट नहीं SubProject
+noFileSelected=फ़ाइल नाम निर्दिष्ट नहीं किया गया है।
+numberOrInvalidOrTimeout=मेरा नंबर डालें या t) (सफेद रिक्तियां सत्यापित करें
+numberOrAll=- संख्या या डालें.
+numberOrInvalidOrDefault=मॅँ, x डालें या - है।
+trueOrFalse=डालें सही है या गलत है।
+noGoalSelected=लक्ष्य यह निर्दिष्ट नहीं किया गया.
+noListSelected=सूची में निर्दिष्ट नहीं है।
+musthave=अवश्य
+outgoingedge=आउटगोइंग तीक्ष्णता को खो दिया है।
+incomingedge=इनकमिंग तीक्ष्णता को खो दिया है।
+mailbox=मेलबॉक्स
+intKey=व्यवधान कुंजी दबाएं.
+speed=गति
+wrongMinDigit=मिन अंकीय को अधिक 0
+wrongMaxDigit=अधिकतम अंक है और अधिक से अधिक 0
+wrongHiddenDigitsnum=छुपा डिजिट नंबर 0 पर समान या अधिक होना चाहिए।
+hiddendigitsnum=छुपा डिजिट नंबर
+hiddendigitspos=छुपा अंकों की स्थिति
+getsecretdigits=GetSecretDigits
+beep=आवाज़ करना
+description=वर्णन
+recordingFormat=स्वरूप
+bcc=गुप्त प्रतिलिपि
+invalidTimeout=अमान्य टाइमआउट मान
+invalidRetry=अमान्य पुनर्प्रयास मूल्य
+invalidSpeed=अमान् य गति मूल्य
+missingQuery=इस प्रश्न के तार लापता
+invalidPriority=अमान्य प्राथमिकता मूल्य
+invalidDelay=अमान्य विलंब मूल्य
+noAttachmentSelected=संलग्नक नहीं चुना
+sendFax=SendFax
+attachment_name=चयनित संलग् नक
+choose_attachment=संलग्नक चुनें
+help_choose_attachment=Pdf टू गो का स्वरूप:, विवाद या .tif
+help_delay=उस समय तक प्रतीक्षा करने से पहले संपर्क को वापस बुलाने मिनट में
+noFirstNameSelected=पहला नाम निर्दिष्ट नहीं है।
+noPhoneSelected=फ़ोन निर्दिष्ट नहीं
+editFile=XML संपादित करें
+priority=प्राथमिकता
+numberOrLettersOrAll=नंबर्स, डालें या - है।
diff --git a/public/assets/plugins/square/resources/grapheditor_it.txt b/public/assets/plugins/square/resources/grapheditor_it.txt
new file mode 100644 (file)
index 0000000..c794c48
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=I nodi già connesso
+cancel=Annulla
+close=Chiudere
+collapse-expand=Comprimi/Espandi
+containsValidationErrors=Contiene errori di convalida
+done=Fatto
+doubleClickOrientation=Fare doppio clic per modificare l'orientamento
+error=Errore
+ok=OK
+updatingDocument=Documento di aggiornamento. Si prega di attendere...
+updatingSelection=Aggiornare la selezione. Si prega di attendere...
+about=Circa
+actualSize=Dimensioni effettive
+add=Aggiungi
+addLayer=Aggiungi livello
+addProperty=Aggiungi proprietà
+addToExistingDrawing=Aggiungere al disegno esistente
+addWaypoint=Aggiungi waypoint
+advanced=Advanced
+align=Allineare
+alignment=Allineamento
+allChangesLost=Tutte le modifiche saranno perse!
+angle=Angolo
+apply=Applicare
+arrange=Organizzare
+arrow=Freccia
+arrows=Frecce
+automatic=Automatico
+autosave=Salvataggio automatico
+autosize=Autodimensionamento
+background=Sfondo
+backgroundColor=Colore di sfondo
+backgroundImage=Immagine di sfondo
+basic=Basic
+block=Blocco
+blockquote=Blockquote
+bold=Bold
+borderWidth=Borderwidth
+borderColor=Colore bordo
+bottom=Parte inferiore
+bottomAlign=Allinea in basso
+bottomLeft=In basso a sinistra
+bottomRight=In basso a destra
+bulletedList=Elenco puntato
+cannotOpenFile=Impossibile aprire il file
+center=Centro
+change=Modificare
+changeOrientation=Modifica orientamento
+circle=Cerchio
+classic=Classic
+clearDefaultStyle=Cancella stile predefinito
+clearWaypoints=Cancellare i waypoint
+clipart=Clipart
+collapse=Comprimi
+collapseExpand=Comprimi/Espandi
+collapsible=Collassabile
+comic=Fumetto
+connect=Collegare
+connection=Il collegamento
+connectionPoints=I punti di connessione
+connectionArrows=Frecce di collegamento
+constrainProportions=Vincolare le proporzioni
+copy=Copia
+copyConnect=Copia su Connect
+create=Creare
+curved=Curvato
+custom=Custom
+cut=Tagliare
+dashed=Tratteggio
+decreaseIndent=Diminuire il rientro
+default=Impostazione predefinita
+delete=Elimina
+deleteColumn=Elimina colonna
+deleteRow=Elimina riga
+diagram=Diagramma
+diamond=Il diamante
+diamondThin=Il diamante (sottile)
+direction=Direzione
+distribute=Distribuire
+divider=Il divisore
+documentProperties=Proprietà del documento
+dotted=Punteggiato
+drawing=Disegno{1}
+drawingEmpty=Il disegno è vuoto
+drawingTooLarge=Il disegno è troppo grande
+duplicate=Duplica
+duplicateIt=Duplica {1}
+east=Oriente
+edit=Modifica
+editData=Modificare i dati
+editDiagram=Schema di modifica
+editImage=Modifica immagine
+editLink=Modifica Link
+editStyle=Modifica dello stile
+editTooltip=Modifica descrizione
+enterGroup=Inserire il gruppo
+enterValue=Immettere il valore
+enterName=Inserire il nome
+enterPropertyName=Immettere il nome della proprietà
+entityRelation=Entità rapporto
+exitGroup=Gruppo di uscita
+expand=Espandere
+export=Esportazione
+extras=Extra
+file=File
+fileNotFound=File non trovato
+filename=Il nome del file
+fill=Riempire
+fillColor=Colore di riempimento
+fitPage=Una pagina
+fitPageWidth=Larghezza pagina
+fitTwoPages=Due pagine
+fitWindow=Adatta alla finestra
+flip=Flip
+flipH=Capovolgi orizzontalmente
+flipV=Flip verticale
+font=Font
+fontFamily=La famiglia di font
+fontColor=Font Color
+fontSize=Le dimensioni del font
+format=Formato
+formatPanel=Il pannello Formato
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=Formattato
+formattedText=Testo formattato
+general=Generale
+glass=Il vetro
+global=Global
+gradient=Gradiente
+gradientColor=Colore
+grid=Griglia
+gridSize=La dimensione della griglia
+group=Gruppo
+guides=Guide
+heading=Rubrica
+height=Altezza
+help=Aiuto
+hide=Nascondi
+hideIt=Nascondi {1}
+hidden=Nascosto
+home=Home
+horizontal=Posizione orizzontale
+horizontalFlow=Il flusso orizzontale
+horizontalTree=Albero orizzontale
+html=HTML
+image=Immagine
+images=Immagini
+import=Importare
+increaseIndent=Aumentare il rientro
+insert=Inserire
+insertColumnBefore=Inserire la colonna a sinistra
+insertColumnAfter=Inserisci colonna a destra
+insertHorizontalRule=Inserire il righello orizzontale
+insertImage=Inserire l'immagine
+insertLink=Inserire il collegamento
+insertRowBefore=Inserire la riga sopra
+insertRowAfter=Inserire la riga riportata di seguito
+invalidName=Nome non valido
+invalidOrMissingFile=Non valido o file mancanti
+isometric=Vista isometrica
+italic=Italic
+layers=Strati
+landscape=Paesaggio
+laneColor=Lanecolor
+layout=Layout
+left=A sinistra
+leftAlign=Allinea a sinistra
+leftToRight=Da sinistra a destra
+line=La linea
+link=Link
+lineend=Fine linea
+lineheight=Altezza riga
+linestart=Inizio riga
+linewidth=Larghezza linea
+loading=Caricamento
+lockUnlock=Bloccare/sbloccare
+manual=Manuale
+middle=Medio
+misc=Misc
+more=Di più
+moreResults=Più risultati
+move=Spostare
+moveSelectionTo=Sposta la selezione a {1}
+navigation=La navigazione
+new=Nuovo
+noColor=Nessun colore
+noFiles=Nessun file
+noMoreResults=Non più risultati
+none=Nessuno
+noResultsFor=Nessun risultato per '{1}'
+normal=Il normale
+north=Nord
+numberedList=Elenco numerato
+opacity=Opacità
+open=Aprire
+openArrow=Aprire la freccia
+openFile=Aprire il file
+openLink=Apri collegamento
+openSupported=Formato supportato è .xml file salvati da questo software
+openInNewWindow=Apri in una nuova finestra
+openInThisWindow=In questa finestra
+options=Opzioni
+organic=Organic
+orthogonal=Ortogonale
+outline=Contorno
+oval=Di forma ovale
+pages=Pagine
+pageView=Visualizzazione pagina
+pageScale=Scala di pagina
+pageSetup=Impostazione pagina
+panTooltip=Spazio trascinare per scorrere
+paperSize=Formato della carta
+paste=Incolla
+pasteHere=Incolla qui
+pattern=Pattern
+perimeter=Perimetro
+placeholders=I segnaposto
+plusTooltip=Fare clic per collegare e clone (Ctrl + clic per clonare, MAIUSC clic per collegare). Trascinare per collegare (ctrl trascinare al clone).
+portrait=Ritratto
+position=Posizione
+posterPrint=Stampa poster
+preview=Visualizzare in anteprima
+print=Stampare
+radialTree=Struttura radiale
+redo=Ripeti
+removeFormat=Cancella formattazione
+removeFromGroup=Rimuovi dal gruppo
+removeIt=Rimuovere {1}
+removeWaypoint=Rimuovere Waypoint
+rename=Rinomina
+renameIt=Rinomina {1}
+replace=Sostituire
+replaceIt={1} esiste già. Si desidera sostituirlo?
+replaceExistingDrawing=Sostituire il disegno esistente
+reset=Reimpostare
+resetView=Vista Reset
+right=A destra
+rightAlign=Allinea a destra
+rightToLeft=Da destra a sinistra
+rotate=Ruotare
+rotateTooltip=Fai clic e trascina per ruotare, fare clic per ruotare di novanta gradi
+rotation=Rotazione
+rounded=Arrotondato
+save=Salva
+saveAs=Salva come
+saved=Salvato
+scrollbars=Le barre di scorrimento
+search=Ricerca
+searchShapes=Forme di ricerca
+selectAll=Seleziona tutti
+selectEdges=Selezionare Bordi
+selectFont=Selezionare un font
+selectNone=Selezionare Nessuno
+selectVertices=Selezionare vertici
+setAsDefaultStyle=Imposta come stile di default
+shadow=Ombra
+shape=Forma
+sharp=Sharp
+sidebarTooltip=Fare clic su per espandere. Trascinare e rilasciare le forme nel diagramma. Fare clic su Maiusc per modificare la selezione. Fare Alt + clic per inserire e collegare.
+simple=Semplice
+simpleArrow=Freccia semplice
+size=Dimensioni
+solid=Solido
+sourceSpacing=Spaziatura di origine
+south=Sud
+spacing=Spaziatura
+straight=Dritto
+strokeColor=Colore linea
+style=Lo stile
+subscript=Subscript
+superscript=Il pedice
+table=Tabella
+targetSpacing=Spaziatura di destinazione
+text=Testo
+textAlignment=Allineamento del testo
+textOpacity=Opacità del testo
+toBack=A indietro
+toFront=Per parte anteriore
+tooltips=Le descrizioni dei comandi
+top=Parte superiore
+topAlign=Allinea in alto
+topLeft=In alto a sinistra
+topRight=In alto a destra
+transparent=Trasparente
+turn=Ruotare
+uml=UML
+underline=Sottolineare
+undo=Annulla
+ungroup=Separa
+url=URL
+untitledLayer=Lo strato senza titolo
+vertical=In verticale
+verticalFlow=Il flusso verticale
+verticalTree=Struttura ad albero verticale
+view=Consente di visualizzare
+waypoints=I waypoint
+west=West
+width=Larghezza
+wordWrap=Il word wrap
+writingDirection=Direzione scrittura
+zoom=Zoom
+zoomIn=Per eseguire lo zoom avanti
+zoomOut=Zoom indietro
+label=Etichetta
+timeout=Timeout (secondi)
+response=Timeout di risposta
+digit=Cifre max
+escape=Caratteri di escape
+retry=Riprova
+name=Nome
+value=Valore
+entry=Entrata
+start=Inizio
+finally=Infine
+end=Fine
+variable=Variabile
+set=Impostare
+operation=Funzionamento
+math=Matematica
+result=Risultato
+call_management=Gestione delle chiamate
+answer=Risposta
+hangup=Pulsante Riaggancia
+dial=Comporre il numero interno
+ext_dial=Comporre il numero esterno
+phone=Telefono
+trunk=Fasci di linee
+identifier=Identificatore
+queue=Coda
+voicemail=VoiceMail
+boxnumber=Casella numero
+playback=La riproduzione
+menu=Menu
+saydigits=SayDigits
+digits=Cifre
+saynumber=SayNumber
+number=Numero
+sayphonetic=SayPhonetic
+escape_digits=Caratteri di escape
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=Il tasto
+getdigits=GetDigits
+mindigit=Min cifre
+maxdigit=Cifre max
+custom_app=App personalizzata
+language=Lingua
+frequency=Frequenza
+integrationServer=Integration Server
+database=Database
+query=Query
+asr=ASR
+sendSMS=SendSMS
+account_id=Conto
+template_id=Modello
+to=A
+sms_text=Testo
+sendMail=SendMail
+subject=Oggetto
+cc=Cc
+threshold=Valore di soglia
+maxspeech=Discorso di Max
+grammar=La grammatica
+ispeechasr=ISpeechASR
+model=Modello
+noop=NoOp
+output=Uscita
+system=Sistema
+command=Il comando
+application=Applicazione
+agi=AGI
+args=Argomenti
+subproject=Sottoprogetto.
+goalname=Nome obiettivo
+callflow=Flusso di chiamate
+gotoc=Goto
+context=Contesto
+extension=Estensione
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=Intervallo di tempo
+leftOperand=Operando a sinistra
+condition=Condizione
+rightOperand=Operando a destra
+vswitch=Interruttore
+recording=La registrazione
+record=Registrare
+queuename=Il nome della coda
+announceoverride=Annunciare Override
+callid="CallID"
+agent=Agent
+queue_event=Evento
+data1=Dati1
+data2=Dati2
+data3=Dati3
+data4=Data4
+data5=Dati5
+macro=Macro
+stats=Stats
+queuelog=QueueLog
+goal=Obiettivo
+callback=La richiamata
+list=Elenco
+delay=Ritardo
+list_id=Elenco
+opts=Opzioni
+queue_id=Coda
+file_id=File
+variable_id=Variabile
+gosub=Gosub
+project_id=Progetto
+sip_id=Il protocollo SIP
+trunk_name=Fasci di linee
+variable_value=Il valore della variabile
+database_id=Database
+interval_id=Intervallo
+description_start=Descrizione di avvio
+publish=Publica
+ispeech_asr_language=Lingua
+ispeech_tts_language=Lingua
+google_tts_language=Lingua
+queue_variable=Coda dalla variabile
+odbc_id=Connessione ODBC
+noVariableSelected=Variabile non viene specificata.
+noTrunkSelected=La linea non è specificato.
+noAudioSelected=File audio non è specificato.
+noOperandSelected=Operando a sinistra non è specificato.
+noDatabaseSelected=Database non è specificato.
+noExtensionSelected=Interno non viene specificato.
+noCommandSelected=Il comando non è specificato.
+noApplicationSelected=La domanda non è specificato
+noRightOperandSelected=Operando a destra non è specificato.
+noDigitsSelected=Cifre non è specificato.
+noNumberSelected=Numero non è specificato.
+noRecipientSelected=Il destinatario non è specificato.
+noTextSelected=Il testo non viene specificato.
+noAccountSelected=Account non è specificato.
+noKeySelected=La chiave non è specificato.
+noIdentifierSelected=Identificatore non è specificato.
+noQueueSelected=Il nome della coda non è specificato.
+noConditionSelected=La condizione non è specificata.
+noIntervalSelected=Intervallo non è specificato.
+noContextSelected=Contesto non è specificato.
+noBoxNumberSelected=Nella casella Nome non è specificato.
+noProjectSelected=Sottoprogetto non è specificato.
+noFileSelected=Il nome del file non è specificato.
+numberOrInvalidOrTimeout=Inserire numero, i o t (verificare spazi bianchi).
+numberOrAll=Inserire il numero o -.
+numberOrInvalidOrDefault=Inserire x mi o -.
+trueOrFalse=Inserire il valore true o false.
+noGoalSelected=Obiettivo non è specificato.
+noListSelected=Elenco non è specificato.
+musthave=Deve avere
+outgoingedge=Bordo di uscita.
+incomingedge=Bordo in entrata.
+mailbox=La cassetta postale
+intKey=Tasto di interruzione
+speed=Velocità
+wrongMinDigit=Min cifra deve essere maggiore di 0
+wrongMaxDigit=Cifra massima deve essere maggiore di 0
+wrongHiddenDigitsnum=Nascosto il numero di cifre deve essere maggiore o uguale a 0
+hiddendigitsnum=Nascosto Numero di cifre
+hiddendigitspos=Nascosto posizione cifre
+getsecretdigits=GetSecretDigits
+beep=Segnale acustico
+description=Descrizione
+recordingFormat=Formato
+bcc=Bcc
+invalidTimeout=Valore di timeout non valido
+invalidRetry=Non valido il valore di tentativi
+invalidSpeed=Non valido il valore di velocità
+missingQuery=La stringa di query è mancante
+invalidPriority=Non valido il valore di priorità
+invalidDelay=Non valido il valore di ritardo
+noAttachmentSelected=Nessun allegato selezionato
+sendFax=SendFax
+attachment_name=Allegato selezionato
+choose_attachment=Scegliere Allegato
+help_choose_attachment=Formato: pdf, tiff o tif
+help_delay=Tempo di attesa, in minuti, che prima di chiamare nuovamente il contatto
+noFirstNameSelected=Nome non specificato
+noPhoneSelected=Telefono non è specificato
+editFile=Modifica XML
+priority=Priorità
+numberOrLettersOrAll=Inserire numeri, lettere o -.
diff --git a/public/assets/plugins/square/resources/grapheditor_ja.txt b/public/assets/plugins/square/resources/grapheditor_ja.txt
new file mode 100644 (file)
index 0000000..5a1a4a2
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=ノードがすでに接続されている
+cancel=キャンセル
+close=閉じる
+collapse-expand=収縮 / 展開
+containsValidationErrors=検証エラーが含まれてい
+done=完了
+doubleClickOrientation=ダブルクリックして方向を変更します。
+error=エラーが発生しました
+ok=OK をクリック
+updatingDocument=ドキュメントを更新しています。 しばらくお待ちください ...
+updatingSelection=選択範囲を更新しています。 しばらくお待ちください ...
+about=について
+actualSize=実際のサイズ
+add=を追加
+addLayer=レイヤを追加します
+addProperty=プロパティの追加
+addToExistingDrawing=既存の図面を追加するには
+addWaypoint=ウェイポイントの追加
+advanced=高度な
+align=位置合わせ
+alignment=位置合わせ
+allChangesLost=すべての変更が失われます。
+angle=角度
+apply=適用
+arrange=アレンジ
+arrow=矢印
+arrows=矢印
+automatic=自動
+autosave=自動保存
+autosize=Autosize
+background=背景
+backgroundColor=背景色
+backgroundImage=背景イメージ
+basic=基本的な
+block=ブロック
+blockquote=Blockquote
+bold=太字
+borderWidth=Borderwidth
+borderColor=境界線の色
+bottom=下部
+bottomAlign=下揃え
+bottomLeft=下部左
+bottomRight=一番下の右
+bulletedList=箇条書きリスト
+cannotOpenFile=ファイルを開くことができません
+center=センター
+change=変更
+changeOrientation=方向を変更します。
+circle=円
+classic=クラシック
+clearDefaultStyle=デフォルトのスタイルのクリア
+clearWaypoints=ウェイポイントをクリア
+clipart=クリップアート
+collapse=折りたたむ
+collapseExpand=収縮 / 展開
+collapsible=折りたたみ可能な
+comic=コミック
+connect=接続
+connection=接続
+connectionPoints=接続ポイント
+connectionArrows=接続の矢印
+constrainProportions=「縦横比を固定
+copy=コピー
+copyConnect=接続のコピー
+create=作成する
+curved=曲線
+custom=カスタム
+cut=カット
+dashed=点線
+decreaseIndent=インデントを減らす
+default=デフォルト
+delete=削除
+deleteColumn=列を削除します
+deleteRow=行を削除します
+diagram=図
+diamond=ダイヤモンド
+diamondThin=ダイヤモンド(シン)
+direction=方向
+distribute=配布
+divider=ディバイダ
+documentProperties=ドキュメントのプロパティ
+dotted=ドットで区切られた
+drawing=図面 { 1 }
+drawingEmpty=図面が空
+drawingTooLarge=図面が大きすぎます
+duplicate=重複している
+duplicateIt=重複した { 1 }
+east=東
+edit=編集
+editData=データの編集
+editDiagram=図を編集する
+editImage=イメージの編集
+editLink=リンクの編集
+editStyle=スタイルの編集
+editTooltip=編集ツールチップ
+enterGroup=グループを入力します。
+enterValue=値を入力します。
+enterName=名前を入力します。
+enterPropertyName=プロパティ名を入力します。
+entityRelation=エンティティ関係
+exitGroup=グループを終了
+expand=を展開し
+export=エクスポート
+extras=エクストラ
+file=ファイル
+fileNotFound=ファイルが見つかりませんでした
+filename=ファイル名
+fill=塗りつぶし
+fillColor=塗りのカラー
+fitPage=1 つのページ
+fitPageWidth=ページ幅
+fitTwoPages=2 つのページ
+fitWindow=ウィンドウに合わせる
+flip=反転
+flipH=水平方向に反転
+flipV=垂直方向に反転
+font=フォント
+fontFamily=フォントファミリ
+fontColor=フォントの色
+fontSize=フォントのサイズ
+format=フォーマット
+formatPanel=形式パネル
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=書式設定された
+formattedText=フォーマットされたテキスト
+general=一般的な
+glass=ガラス
+global=グローバル
+gradient=グラデーション
+gradientColor=カラー
+grid=グリッド
+gridSize=グリッドサイズ
+group=グループ
+guides=ガイド
+heading=見出し
+height=高さ
+help=ヘルプ
+hide=非表示にする
+hideIt={ 非表示 1 }
+hidden=非表示
+home=ホーム
+horizontal=水平方向の
+horizontalFlow=水平方向のフロー
+horizontalTree=水平方向のツリー
+html=HTML
+image=イメージ
+images=画像
+import=インポート
+increaseIndent=インデントを増やします
+insert=を挿入します
+insertColumnBefore=左に列を挿入
+insertColumnAfter=右に列を挿入
+insertHorizontalRule=水平方向の罫線を挿入します
+insertImage=画像を挿入します。
+insertLink=リンクの挿入
+insertRowBefore=行を上に挿入
+insertRowAfter=下に行を挿入
+invalidName=名前が無効です。
+invalidOrMissingFile=無効または欠落しているファイル
+isometric=アイソメトリック
+italic=イタリック体
+layers=レイヤー
+landscape=横向き
+laneColor=Lanecolor
+layout=レイアウト
+left=左
+leftAlign=左揃え
+leftToRight=左から右へ
+line=ライン
+link=リンク
+lineend=行の終わり
+lineheight=行の高さ
+linestart=線を開始します。
+linewidth=線幅
+loading=ロード
+lockUnlock=ロック / ロック解除
+manual=マニュアル
+middle=中央
+misc=その他
+more=詳細
+moreResults=以上の結果を
+move=移動
+moveSelectionTo=選択を { 1 } に移動
+navigation=ナビゲーション
+new=新しい
+noColor=カラーはありません
+noFiles=ファイルがありません
+noMoreResults=以上の結果はありません
+none=なし
+noResultsFor=「 { 1 } 」の検索結果はありません
+normal=通常の
+north=北
+numberedList=番号付きリスト
+opacity=不透明度
+open=開く
+openArrow=開く矢印
+openFile=ファイルを開く
+openLink=リンクを開く
+openSupported=サポートされている形式になっています。このソフトウェアから保存されている XML ファイル
+openInNewWindow=新しいウィンドウで開く
+openInThisWindow=このウィンドウで開く
+options=オプション
+organic=有機
+orthogonal=直交
+outline=概要
+oval=楕円形の
+pages=ページ
+pageView=のページを表示
+pageScale=ページの拡大 / 縮小
+pageSetup=ページのセットアップ
+panTooltip=スペースを上下にドラッグし
+paperSize=用紙サイズ
+paste=貼り付け
+pasteHere=ここに貼り付けます
+pattern=パターン
+perimeter=境界
+placeholders=プレースホルダー
+plusTooltip=をクリックしてクローン( Ctrl キーを押しながら ] をクリックしてクローンを作成するには、 shift キーを押しながらクリックして接続)に接続します。 をドラッグして接続します ( CTRL キーを押しながらのクローンをドラッグします。
+portrait=縦向き
+position=位置
+posterPrint=ポスター印刷
+preview=プレビュー
+print=印刷
+radialTree=放射状のツリー
+redo=やり直し
+removeFormat=書式設定をクリア
+removeFromGroup=グループから削除
+removeIt=削除する { 1 }
+removeWaypoint=ウェイポイントの削除
+rename=名前を変更する
+renameIt=名前を変更する { 1 }
+replace=を交換してください
+replaceIt={ 1 } はすでに存在しています。 置換しますか ?
+replaceExistingDrawing=既存の図面を交換してください
+reset=リセット
+resetView=ビューのリセット
+right=右
+rightAlign=右揃え
+rightToLeft=右から左へ
+rotate=回転
+rotateTooltip=をクリックして回転させるには、をクリックして 90 度をドラッグして、
+rotation=回転
+rounded=丸みを帯びた
+save=保存
+saveAs=名前を付けて保存
+saved=保存された
+scrollbars=スクロールバー
+search=検索
+searchShapes=検索形状
+selectAll=すべてを選択します
+selectEdges=エッジを選択します
+selectFont=フォントを選択します
+selectNone=「なし」を選択します。
+selectVertices=頂点を選択します
+setAsDefaultStyle=既定のスタイルとして設定
+shadow=シャドウ
+shape=形状
+sharp=シャープ
+sidebarTooltip=をクリックして展開します。 の図に形状をドラッグ & ドロップします。 Shift キーを押しながらクリックして ' 選択を変更します。 Alt キーを押しながらクリックします挿入して接続します。
+simple=単純な
+simpleArrow=単純な矢印
+size=サイズ
+solid=ソリッド
+sourceSpacing=ソースの間隔
+south=南
+spacing=間隔
+straight=ストレート
+strokeColor=線の色
+style=スタイル
+subscript=下付き文字
+superscript=上付き文字
+table=テーブル
+targetSpacing=ターゲットの間隔
+text=テキスト
+textAlignment=テキストの配置
+textOpacity=テキストの不透明度
+toBack=に戻る
+toFront=前面へ
+tooltips=ツールチップ
+top=Top
+topAlign=上揃え
+topLeft=上部左
+topRight=上部右
+transparent=透明
+turn=オンにする
+uml=UML
+underline=下線を入れ
+undo=元に戻す
+ungroup=グループ解除
+url=URL
+untitledLayer=名称未設定のレイヤ
+vertical=垂直
+verticalFlow=垂直方向のフロー
+verticalTree=垂直ツリー
+view=ビュー
+waypoints=ウェイポイント
+west=西
+width=幅
+wordWrap=ワードラップ
+writingDirection=文章の方向
+zoom=ズーム
+zoomIn=ズームで
+zoomOut=ズームアウト
+label=ラベル
+timeout=タイムアウト ( 秒 )
+response=応答のタイムアウト
+digit=最大の桁
+escape=エスケープ桁
+retry=再試行
+name=名
+value=値
+entry=エントリ
+start=[ スタート ] ボタン
+finally=最終的に
+end=終了
+variable=変数
+set=設定されて
+operation=操作
+math=数学
+result=結果
+call_management=通話の管理
+answer=答え
+hangup=切る
+dial=内部ダイヤル
+ext_dial=外部ダイヤル
+phone=電話
+trunk=トランク
+identifier=の識別子
+queue=キュー
+voicemail=ボイスメール
+boxnumber=ボックス番号
+playback=再生
+menu=メニュー
+saydigits=SayDigits
+digits=桁数
+saynumber=SayNumber
+number=番号
+sayphonetic=SayPhonetic
+escape_digits=エスケープ桁
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=キー
+getdigits=GetDigits
+mindigit=最小桁数
+maxdigit=最大桁数
+custom_app=カスタムアプリケーション
+language=言語
+frequency=周波数
+integrationServer=サーバの統合
+database=データベース
+query=クエリ
+asr=ASR
+sendSMS=探し 'SMSCOMPOSER.SENDSMS();
+account_id=アカウント
+template_id=テンプレート
+to=を
+sms_text=テキスト
+sendMail=SendMail
+subject=件名
+cc=Cc
+threshold=しきい値
+maxspeech=最大音声
+grammar=文法
+ispeechasr=ISpeechASR
+model=モデル
+noop=NoOp
+output=出力
+system=システム
+command=コマンド
+application=アプリケーション
+agi=AGI
+args=引数
+subproject=サブプロジェクト
+goalname=目標の名前
+callflow=コールフロー
+gotoc=後藤
+context=コンテキスト
+extension=拡張子
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=時間間隔
+leftOperand=左のオペランド
+condition=状態
+rightOperand=右オペランド
+vswitch=スイッチ
+recording=録音
+record=レコード
+queuename=キューの名前
+announceoverride=オーバーライドを発表
+callid=CallID
+agent=エージェント
+queue_event=イベント
+data1=データ 1
+data2=データ 2
+data3=データ 3
+data4=データ 4
+data5=データ 5
+macro=マクロ
+stats=統計情報
+queuelog=待ち行列
+goal=目標
+callback=コールバック
+list=リスト
+delay=遅延
+list_id=リスト
+opts=オプション
+queue_id=キュー
+file_id=ファイル
+variable_id=変数
+gosub=Gosub
+project_id=プロジェクト
+sip_id=SIP
+trunk_name=トランク
+variable_value=変数の値
+database_id=データベース
+interval_id=間隔
+description_start=[ スタート ] ボタンの説明
+publish=Pubblica
+ispeech_asr_language=言語
+ispeech_tts_language=言語
+google_tts_language=言語
+queue_variable=変数からキューを選択します。
+odbc_id=ODBC 接続
+noVariableSelected=変数が指定されていません。
+noTrunkSelected=トランクが指定されていません。
+noAudioSelected=オーディオファイルが指定されていません。
+noOperandSelected=左のオペランドが指定されていません。
+noDatabaseSelected=データベースが指定されていません。
+noExtensionSelected=拡張子が指定されていません。
+noCommandSelected=コマンドが指定されていません。
+noApplicationSelected=アプリケーションが指定されていません。
+noRightOperandSelected=右オペランドが指定されていません。
+noDigitsSelected=桁が指定されていません。
+noNumberSelected=番号が指定されていません。
+noRecipientSelected=受信者が指定されていません。
+noTextSelected=テキストが指定されていません。
+noAccountSelected=アカウントが指定されていません。
+noKeySelected=キーが指定されていません。
+noIdentifierSelected=識別子が指定されていません。
+noQueueSelected=キュー名が指定されていません。
+noConditionSelected=条件が指定されていません。
+noIntervalSelected=間隔が指定されていません。
+noContextSelected=コンテキストが指定されていません。
+noBoxNumberSelected=[ 名前 ] ボックスに指定されていません。
+noProjectSelected=サブプロジェクトが指定されていません。
+noFileSelected=ファイル名が指定されていません。
+numberOrInvalidOrTimeout=数には、 i または t を挿入します ( 空白 ) を確認します。
+numberOrAll=番号またはを挿入します。
+numberOrInvalidOrDefault=X を挿入するには、 i または - 。
+trueOrFalse=True を挿入または false に設定します。
+noGoalSelected=目標が指定されていません。
+noListSelected=リストが指定されていません。
+musthave=を持っている必要があり
+outgoingedge=発信の端になります。
+incomingedge=着信の端になります。
+mailbox=メールボックス
+intKey=割り込みキー
+speed=速度
+wrongMinDigit=最小桁の数字が 0 より大きい値を指定してください
+wrongMaxDigit=最大の桁が 0 より大きい値を指定してください
+wrongHiddenDigitsnum=非表示の桁数は 0 以上でなければなりません
+hiddendigitsnum=非表示の桁数
+hiddendigitspos=非表示の桁位置
+getsecretdigits=GetSecretDigits
+beep=ビープ音が発生
+description=説明
+recordingFormat=フォーマット
+bcc=Bcc
+invalidTimeout=タイムアウト値が無効です。
+invalidRetry=無効な再試行値の設定
+invalidSpeed=無効な速度の値
+missingQuery=クエリ文字列が見つかりません
+invalidPriority=無効な優先度の値
+invalidDelay=無効な間隔の値
+noAttachmentSelected=添付ファイルが選択されていません
+sendFax=SendFax
+attachment_name=選択された添付ファイル
+choose_attachment=添付ファイルを選択します
+help_choose_attachment=形式: PDF 、 TIFF 、または tif
+help_delay=時間を、分単位では、連絡先に電話をする前に待機する
+noFirstNameSelected=最初の名前が指定されていません
+noPhoneSelected=電話番号が指定されていません
+editFile=XML を編集して
+priority=優先順位
+numberOrLettersOrAll=数字、文字、または - を挿入します。
diff --git a/public/assets/plugins/square/resources/grapheditor_ko.txt b/public/assets/plugins/square/resources/grapheditor_ko.txt
new file mode 100644 (file)
index 0000000..c3cef3a
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=노드가 이미 연결되어 있습니다.
+cancel=취소
+close=닫기
+collapse-expand=확장/축소
+containsValidationErrors=유효성 검사 오류가 있습니다.
+done=완료
+doubleClickOrientation=더블 클릭하여 변경 방향
+error=오류
+ok=확인
+updatingDocument=업데이트 문서에. 잠시 기다려 주십시오 ...
+updatingSelection=선택 업데이트. 잠시 기다려 주십시오 ...
+about=정보
+actualSize=실제 크기
+add=추가
+addLayer=계층 추가
+addProperty=속성 추가
+addToExistingDrawing=기존 도면을 추가합니다
+addWaypoint=웨이포인트 추가
+advanced=고급
+align=정렬
+alignment=정렬
+allChangesLost=모든 변경 사항이 손실됩니다.
+angle=각도
+apply=적용
+arrange=정렬
+arrow=화살표
+arrows=화살표
+automatic=자동
+autosave=자동 저장 기능이 비활성화되었음을
+autosize=Autosize
+background=배경
+backgroundColor=배경 색상
+backgroundImage=배경 이미지
+basic=기본
+block=블록
+blockquote=Blockquote
+bold=Bold
+borderWidth=Borderwidth
+borderColor=테두리 색
+bottom=하단
+bottomAlign=정렬
+bottomLeft=왼쪽 하단
+bottomRight=오른쪽 하단
+bulletedList=글머리 기호 목록
+cannotOpenFile=파일을 열 수 없음
+center=센터
+change=변경
+changeOrientation=방향 변경
+circle=원
+classic=클래식
+clearDefaultStyle=기본 스타일 지우기
+clearWaypoints=웨이포인트 지우기
+clipart=클립아트
+collapse=축소
+collapseExpand=확장/축소
+collapsible=접이식
+comic=코믹
+connect=연결
+connection=연결
+connectionPoints=연결 지점
+connectionArrows=연결 화살표
+constrainProportions=비율을 제한
+copy=복사
+copyConnect=연결 복사
+create=작성
+curved=곡선
+custom=사용자 정의
+cut=잘라내기
+dashed=파선
+decreaseIndent=내어쓰기
+default=기본
+delete=삭제
+deleteColumn=열 삭제
+deleteRow=행 삭제하기
+diagram=다이어그램
+diamond=다이아몬드
+diamondThin=다이아몬드(씬)
+direction=방향
+distribute=배포
+divider=분할
+documentProperties=문서 속성
+dotted=점점이
+drawing=그리기 {1 }
+drawingEmpty=그리기 비어 있습니다.
+drawingTooLarge=그리기 너무 큽니다.
+duplicate=중복
+duplicateIt=중복 {1 }
+east=이스트
+edit=편집
+editData=데이터 편집
+editDiagram=편집 다이어그램
+editImage=이미지 편집
+editLink=편집 링크
+editStyle=편집 스타일을
+editTooltip=편집 도구 설명
+enterGroup=그룹을 입력하십시오
+enterValue=값 입력
+enterName=이름 입력
+enterPropertyName=속성 이름을 입력하십시오
+entityRelation=엔티티 관계
+exitGroup=종료 그룹
+expand=확장
+export=내보내기
+extras=엑스트라
+file=파일
+fileNotFound=파일을 찾을 수 없습니다.
+filename=파일 이름
+fill=채우기
+fillColor=채우기 색상
+fitPage=한 페이지
+fitPageWidth=페이지 폭
+fitTwoPages=두 페이지
+fitWindow=Fit 창
+flip=플립
+flipH=좌우 대칭
+flipV=수직 대칭 이동
+font=폰트
+fontFamily=글꼴 패밀리
+fontColor=글꼴 색상
+fontSize=글꼴 크기
+format=형식
+formatPanel=포맷 패널
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=포맷
+formattedText=서식이 지정된 텍스트
+general=일반
+glass=유리
+global=글로벌
+gradient=그라데이션
+gradientColor=색상
+grid=그리드
+gridSize=눈금 크기
+group=그룹
+guides=설명서
+heading=제목
+height=높이
+help=도움말
+hide=숨기기
+hideIt=숨기기 {1 }
+hidden=숨겨진
+home=홈
+horizontal=가로
+horizontalFlow=가로 흐름
+horizontalTree=수평 트리
+html=HTML
+image=이미지
+images=이미지
+import=가져오기
+increaseIndent=들여쓰기
+insert=삽입
+insertColumnBefore=열 삽입 왼쪽
+insertColumnAfter=오른쪽 열에 삽입
+insertHorizontalRule=Horizontal Rule 삽입
+insertImage=이미지 삽입
+insertLink=링크 삽입
+insertRowBefore=위에 행 삽입
+insertRowAfter=아래에 행 삽입
+invalidName=잘못된 이름
+invalidOrMissingFile=잘못되거나 누락된 파일
+isometric=같은 크기의
+italic=Italic
+layers=계층
+landscape=가로
+laneColor=Lanecolor
+layout=레이아웃
+left=왼쪽
+leftAlign=왼쪽 정렬
+leftToRight=왼쪽에서 오른쪽
+line=회선
+link=링크
+lineend=라인 끝
+lineheight=행 높이
+linestart=라인 시작
+linewidth=Linewidth
+loading=로드
+lockUnlock=잠금/잠금 해제
+manual=수동
+middle=중간
+misc=Misc.
+more=자세한
+moreResults=추가 결과
+move=이동
+moveSelectionTo=선택 {1} 이동
+navigation=탐색
+new=새로운
+noColor=색상 없음
+noFiles=파일 없음
+noMoreResults=더이상 결과
+none=없음
+noResultsFor='{1}'에 대한 결과가 없습니다.
+normal=정상
+north=북
+numberedList=번호 매기기 목록
+opacity=불투명도
+open=열기
+openArrow=오픈 화살표
+openFile=파일 열기
+openLink=링크 열기
+openSupported=지원되는 형식은 이 소프트웨어에서 저장된 xml 파일
+openInNewWindow=새 창에서 열기
+openInThisWindow=이 창에서 열기
+options=옵션
+organic=유기농
+orthogonal=직교
+outline=윤곽선
+oval=타원형
+pages=페이지
+pageView=페이지 보기
+pageScale=페이지 확장
+pageSetup=페이지 설정
+panTooltip=공간을 이동한 끌어서 놓기
+paperSize=용지 크기
+paste=붙여넣기
+pasteHere=여기에 붙여넣기
+pattern=패턴
+perimeter=경계
+placeholders=자리 표시자
+plusTooltip=클릭 복제(Ctrl 클론, Shift를 눌러 연결을 클릭합니다)에 연결합니다. 끌어 연결합니다(ctrl 복제 불가능).
+portrait=세로 방향
+position=위치
+posterPrint=포스터 인쇄
+preview=미리 보기
+print=인쇄
+radialTree=방사형 트리
+redo=다시 실행
+removeFormat=서식 지우기
+removeFromGroup=그룹에서 제거
+removeIt=제거 {1 }
+removeWaypoint=웨이포인트 제거
+rename=이름 바꾸기
+renameIt=이름 바꾸기 {1 }
+replace=교체
+replaceIt={1} 이미 존재합니다. 바꾸시겠습니까?
+replaceExistingDrawing=기존 그리기 교체
+reset=재설정
+resetView=다시 보기
+right=오른쪽
+rightAlign=오른쪽 정렬
+rightToLeft=오른쪽에서 왼쪽으로
+rotate=회전
+rotateTooltip=클릭하여 90도씩 끄기를 클릭하십시오 끌어서 놓기
+rotation=회전
+rounded=둥근
+save=저장
+saveAs=다른 이름으로 저장
+saved=저장된
+scrollbars=스크롤 막대
+search=검색
+searchShapes=검색 도형
+selectAll=모두 선택
+selectEdges=Edges를 선택합니다
+selectFont=글꼴 선택
+selectNone=선택 안 함
+selectVertices=꼭지점 선택
+setAsDefaultStyle=기본 모양 설정
+shadow=그림자
+shape=도형
+sharp=샤프
+sidebarTooltip=확장 을 클릭합니다. 다이어그램 속으로 도형 드래그 앤 드롭합니다. Shift 키를 누른 상태에서 선택 변경을 클릭합니다. Alt 를 넣고 연결을 클릭합니다.
+simple=간단한
+simpleArrow=단순 화살표
+size=크기
+solid=솔리드 스테이트 드라이브
+sourceSpacing=소스 간격
+south=남부
+spacing=간격
+straight=직선
+strokeColor=선 색상
+style=스타일
+subscript=Subscript
+superscript=Superscript
+table=테이블
+targetSpacing=목표 간격
+text=텍스트
+textAlignment=텍스트 맞춤
+textOpacity=텍스트 불투명
+toBack=돌아가기
+toFront=전면
+tooltips=툴팁
+top=상단
+topAlign=위쪽 맞춤
+topLeft=왼쪽 상단
+topRight=오른쪽 상단
+transparent=투명
+turn=회전
+uml=UML
+underline=밑줄
+undo=실행 취소
+ungroup=그룹 해제
+url=URL
+untitledLayer=제목 없음 계층
+vertical=수직
+verticalFlow=세로
+verticalTree=수직 트리
+view=보기
+waypoints=웨이포인트
+west=서부
+width=너비
+wordWrap=자동 줄 바꿈
+writingDirection=쓰기 방향
+zoom=줌
+zoomIn=확대
+zoomOut=축소
+label=레이블
+timeout=제한 시간(초)
+response=응답 시간 종료
+digit=Max 자리
+escape=이스케이프 숫자
+retry=재시도
+name=이름
+value=값
+entry=항목
+start=시작
+finally=마지막으로
+end=종료
+variable=변수
+set=설정
+operation=작동
+math=수학
+result=결과
+call_management=통화 관리
+answer=응답
+hangup=끊기
+dial=내부 전화
+ext_dial=외부 전화
+phone=전화
+trunk=트렁크
+identifier=식별자
+queue=대기열
+voicemail=음성 메일
+boxnumber=박스 번호
+playback=재생
+menu=메뉴
+saydigits=SayDigits
+digits=숫자
+saynumber=SayNumber
+number=번호
+sayphonetic=SayPhonetic
+escape_digits=이스케이프 숫자
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=키
+getdigits=GetDigits
+mindigit=Min 숫자
+maxdigit=최대 숫자
+custom_app=사용자 정의 응용 프로그램
+language=언어
+frequency=주파수
+integrationServer=통합 서버
+database=데이터베이스
+query=쿼리
+asr=ASR
+sendSMS=SendSMS
+account_id=계정
+template_id=템플릿
+to=클릭하여
+sms_text=텍스트
+sendMail=SendMail
+subject=제목
+cc=Cc
+threshold=임계값
+maxspeech=Max 연설
+grammar=문법
+ispeechasr=ISpeechASR
+model=모델
+noop=NoOp
+output=출력
+system=시스템
+command=명령
+application=응용 프로그램
+agi=AGI
+args=인수
+subproject=하위 프로젝트를
+goalname=목표 이름
+callflow=통화 흐름을 선택하면
+gotoc=Goto
+context=컨텍스트
+extension=내선 번호
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=시간 간격
+leftOperand=왼쪽 피연산자
+condition=조건
+rightOperand=오른쪽 피연산자
+vswitch=스위치
+recording=녹음
+record=레코드
+queuename=대기열 이름
+announceoverride=오버라이드 발표
+callid=CallID가
+agent=상담원
+queue_event=이벤트
+data1=데이터 1
+data2=데이터 2
+data3=데이터 3
+data4=데이터 4
+data5=데이터 5
+macro=매크로
+stats=통계
+queuelog=QueueLog
+goal=목표
+callback=콜백
+list=목록
+delay=지연
+list_id=목록
+opts=옵션
+queue_id=대기열
+file_id=파일
+variable_id=변수
+gosub=Gosub
+project_id=프로젝트
+sip_id=SIP
+trunk_name=트렁크
+variable_value=변수 값
+database_id=데이터베이스
+interval_id=간격
+description_start=시작 설명
+publish=Pubblica
+ispeech_asr_language=언어
+ispeech_tts_language=언어
+google_tts_language=언어
+queue_variable=변수 FROM 대기열
+odbc_id=ODBC 연결
+noVariableSelected=변수가 지정되지 않았습니다.
+noTrunkSelected=Trunk가 지정되지 않습니다.
+noAudioSelected=오디오 파일을 지정하지 않습니다.
+noOperandSelected=왼쪽 피연산자가 지정되지 않았습니다.
+noDatabaseSelected=데이터베이스를 지정하지 않습니다.
+noExtensionSelected=내선 번호가 지정되지 않았습니다.
+noCommandSelected=명령이 지정되지 않았습니다.
+noApplicationSelected=응용 프로그램이 지정되지 않음
+noRightOperandSelected=오른쪽 피연산자 지정되지 않았습니다.
+noDigitsSelected=숫자를 지정하지 않습니다.
+noNumberSelected=번호가 지정되지 않았습니다.
+noRecipientSelected=수신자가 지정되지 않았습니다.
+noTextSelected=텍스트가 지정되지 않았습니다.
+noAccountSelected=계정을 지정하지 않습니다.
+noKeySelected=키가 지정되지 않습니다.
+noIdentifierSelected=Id가 지정되지 않습니다.
+noQueueSelected=대기열 이름이 지정되어 있지 않습니다.
+noConditionSelected=조건이 지정되지 않았습니다.
+noIntervalSelected=간격은 지정되지 않았습니다.
+noContextSelected=컨텍스트를 지정하지 않습니다.
+noBoxNumberSelected=상자 이름이 지정되어 있지 않습니다.
+noProjectSelected=하위 프로젝트를 분석할 수 없습니다.
+noFileSelected=파일 이름이 지정되지 않습니다.
+numberOrInvalidOrTimeout=번호, 또는 t 삽입(공백).
+numberOrAll=번호 또는 끼웁니다.
+numberOrInvalidOrDefault=X Insert 나 아니면.
+trueOrFalse=진정한 삽입 또는 False입니다.
+noGoalSelected=목표가 지정되지 않았습니다.
+noListSelected=목록이 지정되지 않았습니다.
+musthave=있어야 합니다.
+outgoingedge=나가는 edge.
+incomingedge=들어오는 edge.
+mailbox=사서함
+intKey=인터럽트 키
+speed=속도
+wrongMinDigit=Min 자리 가 0보다 큰 수
+wrongMaxDigit=Max Digit가 0보다 큰 수
+wrongHiddenDigitsnum=숨겨진 숫자를 0이상이어야 합니다.
+hiddendigitsnum=숨겨진 자릿수
+hiddendigitspos=숨겨진 자리 위치
+getsecretdigits=GetSecretDigits
+beep=경고음
+description=설명
+recordingFormat=형식
+bcc=숨은 참조
+invalidTimeout=올바르지 않은 시간 초과 값
+invalidRetry=잘못된 값을 다시 시도
+invalidSpeed=잘못된 단축 값
+missingQuery=쿼리 문자열은 누락
+invalidPriority=잘못된 우선 순위 값
+invalidDelay=잘못된 지연 값
+noAttachmentSelected=첨부 파일을 선택하지 않았습니다.
+sendFax=SendFax
+attachment_name=선택된 접속 장치
+choose_attachment=첨부 파일 선택
+help_choose_attachment=형식: PDF, TIFF 또는 tif
+help_delay=시간(분, 연락 콜 백 전 대기
+noFirstNameSelected=먼저 이름이 지정되지 않음
+noPhoneSelected=전화기가 지정되지 않음
+editFile=Xml 파일 편집
+priority=우선 순위
+numberOrLettersOrAll=숫자나 끼웁니다.
diff --git a/public/assets/plugins/square/resources/grapheditor_nl.txt b/public/assets/plugins/square/resources/grapheditor_nl.txt
new file mode 100644 (file)
index 0000000..16280aa
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=Knooppunten al verbonden
+cancel=Annuleren
+close=Dicht
+collapse-expand=Collapse/expand
+containsValidationErrors=Bevat validatiefouten
+done=Gedaan
+doubleClickOrientation=Doubleclick Afdrukstand wijzigen
+error=Fout
+ok=OK
+updatingDocument=Actualisering Document. Even geduld a.u.b...
+updatingSelection=Actualisering selectie. Even geduld a.u.b...
+about=Over
+actualSize=Ware grootte
+add=Toevoegen
+addLayer=Laag toevoegen
+addProperty=Voeg eigendom
+addToExistingDrawing=Toevoegen aan bestaande tekening
+addWaypoint=Waypoint toevoegen
+advanced=Geavanceerd
+align=Uitlijnen
+alignment=Uitlijning
+allChangesLost=Alle wijzigingen gaan verloren!
+angle=Hoek
+apply=Toepassing
+arrange=Regelen
+arrow=Pijl
+arrows=Pijlen
+automatic=Automatische
+autosave="Autosave"
+autosize=Autoamplit
+background=Achtergrond
+backgroundColor=Achtergrondkleur
+backgroundImage=Achtergrondafbeelding
+basic=Basic
+block=Blok
+blockquote=Blockquote
+bold=Bold
+borderWidth=Borderwidth
+borderColor=Randkleur
+bottom=Onderkant
+bottomAlign=Onderkant uitlijnen
+bottomLeft=Linksonder
+bottomRight=Rechtsonder
+bulletedList=Lijst met opsommingstekens
+cannotOpenFile=Kan bestand niet openen
+center=Centrum
+change=Wijzigen
+changeOrientation=Afdrukstand wijzigen
+circle=Cirkel
+classic=Klassiek
+clearDefaultStyle=Standaard wissen stijl
+clearWaypoints=Waypoints wissen
+clipart=Clipart
+collapse=Samenvouwen
+collapseExpand=Collapse/expand
+collapsible=Inklapbaar
+comic=Comic
+connect=Sluit
+connection=Verbinding
+connectionPoints=Aansluitpunten
+connectionArrows=Verbinding pijlen
+constrainProportions=Zet verhoudingen
+copy=Kopiëren
+copyConnect=Kopiëren op aansluiten
+create=Maken
+curved=Gebogen
+custom=Aangepaste
+cut=Snijden
+dashed=Onderbroken
+decreaseIndent=Inspringing verkleinen
+default=Standaard
+delete=Verwijderen
+deleteColumn=Kolom verwijderen
+deleteRow=Rij verwijderen
+diagram=Schema
+diamond=Diamond
+diamondThin=Diamond (dun)
+direction=Richting
+distribute=Verdelen
+divider=Verdeler
+documentProperties=Documenteigenschappen
+dotted=Gestippeld
+drawing=Tekening{1}
+drawingEmpty=Tekening is leeg
+drawingTooLarge=Tekening is te groot
+duplicate=Duplicaat
+duplicateIt=Dubbele {1}
+east=East
+edit=Bewerken
+editData=Gegevens bewerken
+editDiagram=Schema wijzigen
+editImage=Beeld bewerken
+editLink=Koppeling bewerken
+editStyle=Edit Style
+editTooltip=Knopinfo bewerken
+enterGroup=Groepsnaam
+enterValue=Waarde invoeren
+enterName=Voer de naam in
+enterPropertyName=Voer naam van eigenschap
+entityRelation=Entiteit relatie
+exitGroup=Groep sluiten
+expand=Uitvouwen
+export=Uitvoer
+extras=Extras
+file=Bestand
+fileNotFound=Bestand niet gevonden
+filename=Bestandsnaam
+fill=Vult
+fillColor=Vulkleur
+fitPage=Één pagina
+fitPageWidth=Paginabreedte
+fitTwoPages=Twee pagina's
+fitWindow=Aanpassen aan venster
+flip=Flip
+flipH=Horizontaal spiegelen
+flipV=Verticaal spiegelen
+font=Font
+fontFamily=Lettertypereeks
+fontColor=Font Color
+fontSize=Tekengrootte
+format=Formaat
+formatPanel=Formaat paneel
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=Geformatteerd
+formattedText=Opgemaakte tekst
+general=Algemeen
+glass=Glas
+global=Wereldwijde
+gradient=Gradiënt
+gradientColor=Kleur
+grid=Raster
+gridSize=Rastergrootte
+group=Groep
+guides=Geleiders
+heading=Post
+height=Hoogte
+help=Help
+hide=Verbergen
+hideIt=Hide {1}
+hidden=Verborgen
+home=Home
+horizontal=Horizontaal
+horizontalFlow=Horizontale stroming
+horizontalTree=Horizontale boom
+html=HTML
+image=Beeld
+images=Afbeeldingen
+import=Importeren
+increaseIndent=Inspringing vergroten
+insert=Steek
+insertColumnBefore=Kolom invoegen links
+insertColumnAfter=Kolom invoegen rechts
+insertHorizontalRule=Steek horizontale regel
+insertImage=Invoegen
+insertLink=Link invoegen
+insertRowBefore=Rij invoegen boven
+insertRowAfter=Steek de rij hieronder
+invalidName=Ongeldige naam
+invalidOrMissingFile=Ongeldige of ontbrekende bestand
+isometric=Isometrisch
+italic=Cursief
+layers=Lagen
+landscape=Liggend
+laneColor=Lanecolor
+layout=Lay-out
+left=Links
+leftAlign=Links uitlijnen
+leftToRight=Van links naar rechts
+line=Lijn
+link=Link
+lineend=Regeleinde
+lineheight=Regelhoogte
+linestart=Line starten
+linewidth=De lijnbreedte
+loading=Laden
+lockUnlock=Vergrendelen/ontgrendelen
+manual=Handleiding
+middle=Midden
+misc=Div.
+more=Meer
+moreResults=Meer resultaten
+move=Verplaatsen
+moveSelectionTo=Selectie verplaatsen naar {1}
+navigation=Navigatie
+new=Nieuwe
+noColor=Geen kleur
+noFiles=Geen bestanden
+noMoreResults=Geen verdere resultaten
+none=Geen
+noResultsFor=Geen zoekresultaten voor '{1}'
+normal=Normaal
+north=Noord
+numberedList=Genummerde lijst
+opacity=Opaciteit
+open=Open
+openArrow=Open pijl
+openFile=Bestand openen
+openLink=Koppeling openen
+openSupported=Ondersteunde indeling .XML-bestanden van deze software
+openInNewWindow=Openen in nieuw venster
+openInThisWindow=Open in dit venster
+options=Opties
+organic=Organische
+orthogonal=Orthogonale
+outline=Overzicht
+oval=Ovaal
+pages=Pagina's
+pageView=Paginaweergave
+pageScale=Pagina schaal
+pageSetup=Pagina-instelling
+panTooltip=Space slepen om te scrollen
+paperSize=Papierformaat
+paste=Plakken
+pasteHere=Plak hier
+pattern=Patroon
+perimeter=Omtrek
+placeholders=Jokertekens
+plusTooltip=Klik hier om verbinding en kloon (Ctrl-klik om te klonen, shift click to connect). Sleep te maken (Ctrl verslepen naar kloon).
+portrait=Staand
+position=Positie
+posterPrint=Poster Print
+preview=Afdrukvoorbeeld
+print=Afdrukken
+radialTree=Radiale structuur
+redo=Redo
+removeFormat=Duidelijke opmaak
+removeFromGroup=Verwijderen uit de groep
+removeIt=Verwijder {1}
+removeWaypoint=Verwijder waypoint
+rename=Hernoemen
+renameIt=De naam {1}
+replace=Vervang
+replaceIt={1} bestaat al. Wilt u het vervangen?
+replaceExistingDrawing=Vervang bestaande tekening
+reset=Reset
+resetView=Aanzicht terugzetten
+right=Rechts
+rightAlign=Rechts uitlijnen
+rightToLeft=Van rechts naar links
+rotate=Roteren
+rotateTooltip=Klik en sleep om te draaien, klikt u met 90 graden
+rotation=Rotatie
+rounded=Afgerond
+save=Opslaan
+saveAs=Opslaan als
+saved=Opgeslagen
+scrollbars=Schuifbalken
+search=Zoeken
+searchShapes=Zoeken vormen
+selectAll=Alles selecteren
+selectEdges=Selecteer randen
+selectFont=Selecteer een lettertype
+selectNone=Selecteer None (Geen).
+selectVertices=Selecteer hoekpunten
+setAsDefaultStyle=Instellen als standaard stijl
+shadow=Schaduw
+shape=Vorm
+sharp=Sharp
+sidebarTooltip=Klik om te vergroten. Sleep vormen in het schema. Shift klik op om de selectie te wijzigen. Alt-klik invoegen en sluit.
+simple=Eenvoudig
+simpleArrow=Eenvoudige pijl
+size=Grootte
+solid=Solide
+sourceSpacing=Bron spatiëring
+south=Zuid
+spacing=Tussenruimte
+straight=Rechte
+strokeColor=Lijnkleur
+style=Stijl
+subscript=Subscript
+superscript=Superscript
+table=Tabel
+targetSpacing=Target spatiëring
+text=Tekst
+textAlignment=Text alignment
+textOpacity=Tekst opaciteit
+toBack=Om terug
+toFront=Op voorzijde
+tooltips=Knopinfo weergeven
+top=Top
+topAlign=Top lijn
+topLeft=Linksboven
+topRight=Rechtsboven
+transparent=Transparant
+turn=Draai
+uml=UML
+underline=Onderstrepen
+undo=Ongedaan maken
+ungroup=Degroeperen
+url=URL
+untitledLayer=Untitled laag
+vertical=Verticaal
+verticalFlow=Verticale stroming
+verticalTree=Verticale structuur
+view=Toon
+waypoints=Waypoints
+west=West
+width=Breedte
+wordWrap=Tekstterugloop
+writingDirection=Schrijfrichting
+zoom=Zoom
+zoomIn=Inzoomen
+zoomOut=Uitzoomen
+label=Label
+timeout=Tijd (seconden)
+response=Reactie Timeout
+digit=Max Digit
+escape=Escape-tekens
+retry=Probeer het opnieuw
+name=Naam
+value=Waarde
+entry=Inwerkingtreding
+start=Start
+finally=Tenslotte
+end=Einde
+variable=Variabele
+set=Stel
+operation=Werking
+math=Math
+result=Resultaat
+call_management=Oproepbeheer
+answer=Antwoord
+hangup=Ophangen
+dial=Intern bellen
+ext_dial=Externe kiestoon
+phone=Telefoon
+trunk=Transmissielijn
+identifier=Identifier
+queue=Wachtrij
+voicemail=VoiceMail
+boxnumber=Vak
+playback=Afspelen
+menu=Menu
+saydigits=SayDigits
+digits=Cijfers
+saynumber=SayNumber
+number=Nummer
+sayphonetic=SayPhonetic
+escape_digits=Escape-tekens
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=Sleutel
+getdigits=GetDigits
+mindigit=Min cijfers
+maxdigit=Max cijfers
+custom_app=Aangepaste toepassingen
+language=Taal
+frequency=Frequentie
+integrationServer=Integratieserver
+database=Database
+query=Query
+asr=ASR
+sendSMS=SendSMS
+account_id=Account
+template_id=Sjabloon
+to=Naar
+sms_text=Tekst
+sendMail=SendMail
+subject=Onderwerp
+cc=Cc
+threshold=Drempel
+maxspeech=Max spraak
+grammar=Grammatica
+ispeechasr=ISpeechASR
+model=Model
+noop=NoOp
+output=Uitgang
+system=Systeem
+command=Commando
+application=Toepassing
+agi=AGI
+args=Argumenten
+subproject=SubProject
+goalname=Doelnaam
+callflow=Gespreksstroom
+gotoc=Goto
+context=Kader
+extension=Uitbreiding
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=Tijdsinterval
+leftOperand=Linker Operand
+condition=Voorwaarde
+rightOperand=Rechter Operand
+vswitch=Schakelaar
+recording=Opname
+record=Opnemen
+queuename=Wachtrijnaam
+announceoverride=Kondig Override
+callid=CallID
+agent=Agent
+queue_event=Evenement
+data1=Gegevens1
+data2=Gegevens2
+data3=Gegevens3
+data4=Gegevens4
+data5=Gegevens5
+macro=Macro
+stats=Stats
+queuelog=QueueLog
+goal=Doel
+callback=Terugbellen
+list=Lijst
+delay=Vertraging
+list_id=Lijst
+opts=Opties
+queue_id=Wachtrij
+file_id=Bestand
+variable_id=Variabele
+gosub=Gosub
+project_id=Project
+sip_id=SIP
+trunk_name=Transmissielijn
+variable_value=Variabelewaarde
+database_id=Database
+interval_id=Interval
+description_start=Start beschrijving
+publish=Pubblica
+ispeech_asr_language=Taal
+ispeech_tts_language=Taal
+google_tts_language=Taal
+queue_variable=Wachtrij van variabele
+odbc_id=ODBC-verbinding
+noVariableSelected=Variabele wordt niet gespecificeerd.
+noTrunkSelected=De kofferruimte is niet gespecificeerd.
+noAudioSelected=Geluidsbestand wordt niet gespecificeerd.
+noOperandSelected=Linker operand is niet gespecificeerd.
+noDatabaseSelected=Database is niet gespecificeerd.
+noExtensionSelected=Verlenging is niet gespecificeerd.
+noCommandSelected=Het commando is niet gespecificeerd.
+noApplicationSelected=De applicatie is niet opgegeven
+noRightOperandSelected=Rechter operand is niet gespecificeerd.
+noDigitsSelected=Cijfers wordt niet gespecificeerd.
+noNumberSelected=Nummer is niet gespecificeerd.
+noRecipientSelected=Ontvanger is niet gespecificeerd.
+noTextSelected=Taal is niet gespecificeerd.
+noAccountSelected=Account is niet gespecificeerd.
+noKeySelected=Sleutel niet is opgegeven.
+noIdentifierSelected=Identificatie is niet gespecificeerd.
+noQueueSelected=Wachtrijnaam is niet gespecificeerd.
+noConditionSelected=Voorwaarde is niet gespecificeerd.
+noIntervalSelected=Interval is niet gespecificeerd.
+noContextSelected=Context is niet gespecificeerd.
+noBoxNumberSelected=Veldnaam is niet gespecificeerd.
+noProjectSelected=SubProject is niet gespecificeerd.
+noFileSelected=Geen bestandsnaam opgegeven.
+numberOrInvalidOrTimeout=Insert number, i of t (controleer of de witte spaties).
+numberOrAll=Insert number of -.
+numberOrInvalidOrDefault=Invoegen, i of -.
+trueOrFalse=Plaats waar of onwaar is.
+noGoalSelected=Doel is niet gespecificeerd.
+noListSelected=Deze lijst is niet gespecificeerd.
+musthave=Moet
+outgoingedge=Uitgaande rand.
+incomingedge=Inkomende rand.
+mailbox=Mailbox
+intKey=Onderbrekingstoets
+speed=Snelheid
+wrongMinDigit=Min cijfer moet groter zijn dan 0
+wrongMaxDigit=Max cijfer moet groter zijn dan 0
+wrongHiddenDigitsnum=Verborgen nummer moet groter zijn dan of gelijk aan 0
+hiddendigitsnum=Verborgen nummer
+hiddendigitspos=Verborgen cijfers positie
+getsecretdigits=GetSecretDigits
+beep=Pieptoon
+description=Beschrijving
+recordingFormat=Formaat
+bcc=Bcc
+invalidTimeout=Ongeldige time-outwaarde
+invalidRetry=Ongeldige Retry waarde
+invalidSpeed=Ongeldige waarde
+missingQuery=De querystring ontbreekt
+invalidPriority=Ongeldige Prioriteitswaarde
+invalidDelay=Ongeldige vertragingswaarde
+noAttachmentSelected=Geen voorzetstuk geselecteerd
+sendFax=Internet Explorer
+attachment_name=Geselecteerde voorzetstuk
+choose_attachment=Kies voorzetstuk
+help_choose_attachment=Format: PDF, TIFF of tif
+help_delay=Tijd in minuten te wachten voordat u belt de contactpersoon
+noFirstNameSelected=Voornaam is niet opgegeven
+noPhoneSelected=Telefoon is niet opgegeven
+editFile=Edit XML
+priority=Prioriteit
+numberOrLettersOrAll=Steek nummers, letters of -.
diff --git a/public/assets/plugins/square/resources/grapheditor_no.txt b/public/assets/plugins/square/resources/grapheditor_no.txt
new file mode 100644 (file)
index 0000000..a1eeeca
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=Noder er allerede koblet til.
+cancel=Avbryt
+close=Lukk
+collapse-expand=Skjule/utvide
+containsValidationErrors=Inneholder valideringsfeil
+done=Ferdig
+doubleClickOrientation=Dobbeltklikk for å endre retning
+error=Feil
+ok=OK
+updatingDocument=Oppdatering av dokumentet. Vennligst vent...
+updatingSelection=Oppdatere utvalget. Vennligst vent...
+about=Om
+actualSize=Faktisk størrelse
+add=Legg til
+addLayer=Legg til lag
+addProperty=Legg til hotellet
+addToExistingDrawing=Legg til eksisterende tegning
+addWaypoint=Legg til veipunkt
+advanced=Avansert
+align=Juster
+alignment=Justering
+allChangesLost=Alle endringer vil gå tapt!
+angle=Vinkel
+apply=Påfør
+arrange=Ordne
+arrow=Pil
+arrows=Piler
+automatic=Automatisk
+autosave=Autosave
+autosize=Autom.
+background=Bakgrunn
+backgroundColor=Bakgrunnsfarge
+backgroundImage=Bakgrunnsbilde
+basic=Grunnleggende
+block=Blokk
+blockquote=Blockquote
+bold=Fet
+borderWidth=Borderwidth
+borderColor=Grensen farge
+bottom=Bunn
+bottomAlign=Nederste linje
+bottomLeft=Nederst til venstre
+bottomRight=Nederst til høyre
+bulletedList=Punktlisten
+cannotOpenFile=Kan ikke åpne fil
+center=Center
+change=Endre
+changeOrientation=Endre retning
+circle=Sirkel
+classic=Klassisk
+clearDefaultStyle=Clear standard stil
+clearWaypoints=Slett veipunkter
+clipart=Utklippsbilder
+collapse=Skjule
+collapseExpand=Skjule/utvide
+collapsible=Sammenleggbare
+comic=Tegneserien.
+connect=Koble til
+connection=Tilkobling
+connectionPoints=Koblingspunkter
+connectionArrows=Tilkobling piler
+constrainProportions=Begrense proporsjoner.
+copy=Kopiere
+copyConnect=Kopiere på Connect
+create=Opprette
+curved=Kurvet
+custom=Egendefinert
+cut=Kutting
+dashed=Stiplet
+decreaseIndent=Reduser innrykk
+default=Standard
+delete=Slette
+deleteColumn=Slette kolonnen
+deleteRow=Slett rad
+diagram=Diagram
+diamond=Diamond
+diamondThin=Diamond (tynn)
+direction=Retning
+distribute=Distribuere
+divider=Stråskiller
+documentProperties=Dokumentegenskaper
+dotted=Prikket
+drawing=Tegningen{1}
+drawingEmpty=Tegningen er tom
+drawingTooLarge=Tegningen er for stor
+duplicate=Dupliser
+duplicateIt=Duplisere {1}
+east=Øst
+edit=Rediger
+editData=Rediger Data
+editDiagram=Rediger diagram
+editImage=Redigere bilde
+editLink=Rediger link
+editStyle=Redigere Style
+editTooltip=Rediger verktøytips
+enterGroup=Angi gruppe
+enterValue=Angi verdi
+enterName=Angi navn
+enterPropertyName=Angi hotellet navn
+entityRelation=Enhet forhold
+exitGroup=Exit gruppe
+expand=Utvid
+export=Eksport
+extras=Ekstrautstyr
+file=Fil
+fileNotFound=Fil ikke funnet
+filename=Filnavn
+fill=Fyll
+fillColor=Fyll farge
+fitPage=Én side
+fitPageWidth=Side bredde
+fitTwoPages=To sider
+fitWindow=Monter vinduet
+flip=Flip
+flipH=Vend horisontalt
+flipV=Vend vertikalt
+font=Font
+fontFamily=Skriftfamilie
+fontColor=Font Color
+fontSize=Font Size
+format=Format
+formatPanel=Format-panelet
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG.
+formatXml=XML
+formatted=Formatert
+formattedText=Formatert tekst
+general=Generelt
+glass=Glass
+global=Global
+gradient=Gradient
+gradientColor=Farge
+grid=Rutenett
+gridSize=Rasterstørrelse
+group=Gruppe
+guides=Veiledninger
+heading=Styrekurs
+height=Høyde
+help=Hjelp
+hide=Skjule
+hideIt=Skjul {1}
+hidden=Skjult
+home=Hjem
+horizontal=Horisontal
+horizontalFlow=Horisontal flyt
+horizontalTree=Horisontal treet
+html=HTML
+image=Bilde
+images=Bilder
+import=Importere
+increaseIndent=Øk innrykk
+insert=Sett inn
+insertColumnBefore=Sett inn kolonnen til venstre
+insertColumnAfter=Sett inn kolonnen til høyre
+insertHorizontalRule=Sett inn horisontal regel
+insertImage=Sett inn bilde.
+insertLink=Sett inn Link
+insertRowBefore=Sett inn rad ovenfor
+insertRowAfter=Sett inn rad nedenfor
+invalidName=Ugyldig navn
+invalidOrMissingFile=Ugyldig eller manglende fil
+isometric=Isometrisk
+italic=Kursiv
+layers=Lag
+landscape=Liggende
+laneColor=Lanecolor
+layout=Layout
+left=Venstre
+leftAlign=Juster venstre
+leftToRight=Venstre til høyre
+line=Linje
+link=Kobling
+lineend=Linjeslutt
+lineheight=Linje høyde
+linestart=Linje Start
+linewidth=Linjebredde
+loading=Laster
+lockUnlock=Låse / låse opp.
+manual=Manuell
+middle=Midtre
+misc=Div.
+more=Mer
+moreResults=Flere resultater
+move=Flytt
+moveSelectionTo=Flytt valget til {1}
+navigation=Navigering
+new=Ny
+noColor=Ingen farge
+noFiles=Ingen filer
+noMoreResults=Ingen flere resultater
+none=Ingen
+noResultsFor=Ingen resultater for '{1}'
+normal=Normal
+north=Nord
+numberedList=Nummerert liste
+opacity=Dekkevne
+open=Åpne
+openArrow=Åpne pil
+openFile=Åpne fil
+openLink=Åpne kobling
+openSupported=Støttede filformatet er .XML-filer lagret fra denne programvaren
+openInNewWindow=Åpne i nytt vindu
+openInThisWindow=Åpne i dette vinduet
+options=Alternativer
+organic=Organiske
+orthogonal=Ortogonale
+outline=Omriss
+oval=Oval betjeningsenhet
+pages=Sider
+pageView=Sidevisning
+pageScale=Siden skala
+pageSetup=Siden Oppsett
+panTooltip=Og dra for å bla
+paperSize=Papirstørrelse
+paste=Lim inn
+pasteHere=Lim inn her
+pattern=Mønster
+perimeter=Inng.
+placeholders=Plassholdere
+plusTooltip=Klikk for å koble til og klone (ctrl-klikk for å klone, shift-Klikk for å koble til). Dra for å koble (ctrl dra for å klone).
+portrait=Stående
+position=Stilling
+posterPrint=Plakat
+preview=Forhåndsvisning
+print=Skriv ut
+radialTree=Radial treet
+redo=Gjenta
+removeFormat=Slett formatering
+removeFromGroup=Fjern fra gruppe
+removeIt=Fjern {1}
+removeWaypoint=Fjern veipunkt
+rename=Gi nytt navn
+renameIt=Gi nytt navn til {1}
+replace=Skift
+replaceIt={1} finnes allerede. Vil du erstatte den?
+replaceExistingDrawing=Erstatt eksisterende tegning
+reset=Tilbakestill
+resetView=Tilbakestill visning
+right=Høyre
+rightAlign=Høyrejuster
+rightToLeft=Høyre til venstre
+rotate=Drei
+rotateTooltip=Klikk og dra for å rotere, klikk på for å slå av 90 grader
+rotation=Rotasjon
+rounded=Avrundet
+save=Lagre
+saveAs=Lagre som
+saved=Lagret
+scrollbars=Rullefelt
+search=Søk
+searchShapes=Søk former
+selectAll=Velg alle
+selectEdges=Velg kantene
+selectFont=Velg en font
+selectNone=Velg ingen
+selectVertices=Velg toppunkter
+setAsDefaultStyle=Angi som standard stil
+shadow=Skygge
+shape=Form
+sharp=Skarp
+sidebarTooltip=Klikk for å utvide. Dra og slipp former inn i diagrammet. Shift klikk for å endre valget. Alt-Klikk for å sette inn og koble til.
+simple=Enkel
+simpleArrow=Enkel pil
+size=Størrelse
+solid=Solid
+sourceSpacing=Kilde garnavstand
+south=Sør
+spacing=Avstand
+straight=Rett
+strokeColor=Linje farge
+style=Stil
+subscript=Subscript
+superscript=Superscript
+table=Tabell
+targetSpacing=Mål avstand
+text=Tekst
+textAlignment=Tekst justering
+textOpacity=Tekst dekkevne
+toBack=Å tilbake
+toFront=Til forside
+tooltips=Verktøytips
+top=Toppen
+topAlign=Øverste linje
+topLeft=Øverst til venstre
+topRight=Øverst til høyre
+transparent=Gjennomsiktig
+turn=Drei
+uml=UML
+underline=Underline
+undo=Angre
+ungroup=Avgruppere
+url=URL
+untitledLayer=Untitled lag
+vertical=Vertikal
+verticalFlow=Vertikal flyt
+verticalTree=Vertikale treet
+view=Vise
+waypoints=Veipunkter
+west=West
+width=Bredde
+wordWrap=Tekstbryting.
+writingDirection=Skriving retning
+zoom=Zoom
+zoomIn=Zoom inn
+zoomOut=Zoom ut
+label=Etikett
+timeout=Tidsavbrudd (sekunder)
+response=Svar tidsavbrudd
+digit=Maks siffer
+escape=Escape sifre
+retry=Prøv på nytt
+name=Navn
+value=Verdi
+entry=Registrering
+start=Start
+finally=Til slutt
+end=Slutten
+variable=Variabel
+set=Sett
+operation=Drift
+math=Math
+result=Resultat
+call_management=Samtalestyring
+answer=Svar
+hangup=Aktiv
+dial=Intern direkte
+ext_dial=Ekstern direkte
+phone=Telefon
+trunk=Trunk
+identifier=Iden
+queue=Kø
+voicemail=Talebeskjed
+boxnumber=Boks nummer
+playback=Avspilling
+menu=Menyen
+saydigits=SayDigits
+digits=Sifre
+saynumber=SayNumber
+number=Nummer
+sayphonetic=SayPhonetic
+escape_digits=Escape sifre
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=Tasten
+getdigits=GetDigits
+mindigit=Min sifre
+maxdigit=Maks. sifre
+custom_app=Egendefinert App
+language=Språk
+frequency=Frekvens
+integrationServer=Integration Server
+database=Databasen
+query=Spørring
+asr=ASR
+sendSMS=SendSMS
+account_id=Konto
+template_id=Mal
+to=Til
+sms_text=Tekst
+sendMail=SendMail
+subject=Emne
+cc=Cc
+threshold=Terskel
+maxspeech=Maks tale
+grammar=Grammatikk
+ispeechasr=ISpeechASR
+model=Modell
+noop=NoOp
+output=Utgang
+system=Systemet
+command=Kommando
+application=Programmet
+agi=AGI
+args=Argumenter
+subproject=Delprosjekt
+goalname=Målnavn
+callflow=Callflow
+gotoc=Gå til
+context=Kontekst
+extension=Forlengelse
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=Tidsintervall
+leftOperand=Venstre Operand
+condition=Tilstand
+rightOperand=Høyre Operand
+vswitch=Bryter
+recording=Opptak
+record=Posten
+queuename=Kønavn
+announceoverride=Annonsere overstyre
+callid=CallID
+agent=Agent
+queue_event=Hendelse
+data1=Data1
+data2=Data2
+data3=Data3
+data4=Data4
+data5=Data5
+macro=Makro
+stats=Statistikk
+queuelog=QueueLog
+goal=Mål
+callback=Tilbakeringing
+list=Liste
+delay=Forsinkelse
+list_id=Liste
+opts=Alternativer
+queue_id=Kø
+file_id=Fil
+variable_id=Variabel
+gosub=Gosub
+project_id=Prosjekt
+sip_id=SIP
+trunk_name=Trunk
+variable_value=Variabel verdi
+database_id=Databasen
+interval_id=Intervall
+description_start=Start beskrivelse
+publish=Pubblica
+ispeech_asr_language=Språk
+ispeech_tts_language=Språk
+google_tts_language=Språk
+queue_variable=Kø fra variabel
+odbc_id=ODBC-kobling
+noVariableSelected=Variabelen er ikke angitt.
+noTrunkSelected=Bagasjerommet er ikke angitt.
+noAudioSelected=Lydfilen er ikke angitt.
+noOperandSelected=Venstre operanden er ikke angitt.
+noDatabaseSelected=Databasen er ikke angitt.
+noExtensionSelected=Linjen er ikke angitt.
+noCommandSelected=Kommandoen er ikke angitt.
+noApplicationSelected=Programmet er ikke angitt
+noRightOperandSelected=Høyre operanden er ikke angitt.
+noDigitsSelected=Sifrene er ikke angitt.
+noNumberSelected=Nummeret er ikke angitt.
+noRecipientSelected=Mottakeren er ikke spesifisert.
+noTextSelected=Teksten er ikke angitt.
+noAccountSelected=Kontoen er ikke angitt.
+noKeySelected=Tasten er ikke angitt.
+noIdentifierSelected=Iden er ikke angitt.
+noQueueSelected=Køen navn er ikke angitt.
+noConditionSelected=Tilstanden er ikke angitt.
+noIntervalSelected=Intervallet er ikke angitt.
+noContextSelected=Sammenhengen er ikke angitt.
+noBoxNumberSelected=Hvis navnet ikke er angitt.
+noProjectSelected=Delprosjektet er ikke angitt.
+noFileSelected=Filnavnet er ikke angitt.
+numberOrInvalidOrTimeout=Sett inn nummer, jeg eller t (kontroller hvite mellomrom).
+numberOrAll=Sett inn nummer eller -.
+numberOrInvalidOrDefault=Sett x, jeg eller -.
+trueOrFalse=Sett inn true eller false.
+noGoalSelected=Målet er ikke angitt.
+noListSelected=Listen er ikke angitt.
+musthave=Må ha
+outgoingedge=Utgående kanten.
+incomingedge=Innkommende kanten.
+mailbox=Postboks
+intKey=Avbruddstasten
+speed=Hastighet
+wrongMinDigit=Min siffer må være større enn 0.
+wrongMaxDigit=Maks siffer må være større enn 0.
+wrongHiddenDigitsnum=Skjult Siffer nummer må være større enn eller lik 0
+hiddendigitsnum=Skjult Siffer nummer
+hiddendigitspos=Skjult sifre stilling
+getsecretdigits=GetSecretDigits
+beep=Pip
+description=Beskrivelse
+recordingFormat=Format
+bcc=Blindkopi
+invalidTimeout=Ugyldig verdi for tidsavbrudd
+invalidRetry=Ugyldig verdi på nytt
+invalidSpeed=Ugyldig hastighet verdi
+missingQuery=Søkestrengen mangler
+invalidPriority=Ugyldig verdi prioritet
+invalidDelay=Ugyldig Utsettelse verdi
+noAttachmentSelected=Ingen vedlegg er valgt
+sendFax=SendFax
+attachment_name=Valgte vedlegg
+choose_attachment=Velg vedlegg
+help_choose_attachment=Format: PDF, TIFF eller tif
+help_delay=Tid i minutter å vente før du ringer tilbake til kontakt
+noFirstNameSelected=Første navn er ikke angitt
+noPhoneSelected=Telefonen er ikke angitt
+editFile=Redigere XML
+priority=Prioritet
+numberOrLettersOrAll=Sett inn tall, bokstaver eller -.
diff --git a/public/assets/plugins/square/resources/grapheditor_pt-PT.txt b/public/assets/plugins/square/resources/grapheditor_pt-PT.txt
new file mode 100644 (file)
index 0000000..df99204
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=Nós já conectado
+cancel=Cancelar
+close=Fechar
+collapse-expand=Recolher/Expandir
+containsValidationErrors=Contém erros de validação
+done=Feito
+doubleClickOrientation=Faça duplo clique para alterar a orientação
+error=Erro
+ok=OK
+updatingDocument=Atualizar o documento. Aguarde...
+updatingSelection=Seleção de atualização. Aguarde...
+about=Sobre
+actualSize=Tamanho real
+add=Adicionar
+addLayer=Adicionar Nível
+addProperty=Adicionar propriedade
+addToExistingDrawing=Adicionar ao desenho existente
+addWaypoint=Adicionar ponto de passagem
+advanced=Avançado
+align=Alinhe
+alignment=Alinhamento
+allChangesLost=Todas as alterações serão perdidas!
+angle=Ângulo
+apply=Aplicar
+arrange=Organizar
+arrow=Seta
+arrows=Setas
+automatic=Automático
+autosave=Autosave
+autosize=Tam automát
+background=Fundo
+backgroundColor=Cor de fundo
+backgroundImage=Imagem de fundo
+basic=Basic
+block=Bloco
+blockquote=Blockquote
+bold=Bold
+borderWidth=Borderwidth
+borderColor=Cor da Borda
+bottom=Parte Inferior
+bottomAlign=Alinhar parte inferior
+bottomLeft=Parte Inferior Esquerda
+bottomRight=Canto Inferior Direito
+bulletedList=Lista com marcadores
+cannotOpenFile=Não é possível abrir o arquivo
+center=Centro
+change=Alterar
+changeOrientation=Alterar a orientação
+circle=Círculo
+classic=Classic
+clearDefaultStyle=Claro Estilo Padrão
+clearWaypoints=Limpar Pontos
+clipart=Clipart
+collapse=Colapso
+collapseExpand=Recolher/Expandir
+collapsible=Colapsável
+comic=Banda Desenhada
+connect=Ligar
+connection=Ligação
+connectionPoints=Pontos de Ligação
+connectionArrows=Setas de ligação
+constrainProportions=Restringir proporções
+copy=Cópia
+copyConnect=Copiar em ligar
+create=Criar
+curved=Curvo
+custom=Custom
+cut=Cortar
+dashed=Tracejado
+decreaseIndent=Diminuir indentação
+default=Padrão
+delete=Excluir
+deleteColumn=Coluna excluir
+deleteRow=Excluir Linha
+diagram=Diagrama
+diamond=Diamond
+diamondThin=Diamond (fina)
+direction=Direcção
+distribute=Distribuir
+divider=Divisor
+documentProperties=Propriedades do documento
+dotted=Tracejado
+drawing=Desenho{1}
+drawingEmpty=O desenho está vazio
+drawingTooLarge=O desenho é demasiado grande
+duplicate=Duplicado
+duplicateIt=Duplicar {1}
+east=Oriente
+edit=Editar
+editData=Editar dados
+editDiagram=Diagrama de Editar
+editImage=Editar imagem
+editLink=Link Editar
+editStyle=Editar o estilo
+editTooltip=Editar dica
+enterGroup=Introduza Grupo
+enterValue=Digite um valor
+enterName=Digite o nome
+enterPropertyName=Introduza o nome da propriedade
+entityRelation=Entidade relação
+exitGroup=Grupo de saída
+expand=Expandir
+export=Exportação
+extras=Extras
+file=Arquivo
+fileNotFound=Arquivo não encontrado
+filename=Nome de arquivo
+fill=Encher
+fillColor=Cor do preenchimento
+fitPage=Uma Página
+fitPageWidth=Largura da página
+fitTwoPages=Duas páginas
+fitWindow=Ajustar à Janela
+flip=Flip
+flipH=Flip Horizontal
+flipV=Vertical Flip
+font=Font
+fontFamily=Família de fontes
+fontColor=Cor da fonte
+fontSize=Tamanho da fonte
+format=Formato
+formatPanel=Painel de formato
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=Formatado
+formattedText=Texto formatado
+general=Geral
+glass=Vidro
+global=Global
+gradient=Gradiente
+gradientColor=Cor
+grid=Grade
+gridSize=Tamanho da Grade
+group=Grupo
+guides=Guias
+heading=Rubrica
+height=Altura
+help=Ajudar
+hide=Ocultar
+hideIt=Ocultar {1}
+hidden=Oculto
+home=Home
+horizontal=Horizontal
+horizontalFlow=Fluxo Horizontal
+horizontalTree=Árvore Horizontal
+html=HTML
+image=Imagem
+images=Imagens
+import=Importação
+increaseIndent=Aumentar Recuo
+insert=Insira
+insertColumnBefore=Insira a coluna para a esquerda
+insertColumnAfter=Insira a coluna direita
+insertHorizontalRule=Insira a régua Horizontal
+insertImage=Inserir Imagem
+insertLink=Inserir link
+insertRowBefore=Inserir linha acima
+insertRowAfter=Inserir linha abaixo
+invalidName=Nome inválido
+invalidOrMissingFile=Arquivo inválido ou ausente
+isometric=Isométrico
+italic=Itálico
+layers=Camadas
+landscape=Paisagem
+laneColor=Lanecolor
+layout=Layout
+left=Esquerda
+leftAlign=Alinhar à esquerda
+leftToRight=Da esquerda para a direita
+line=Linha
+link=Link
+lineend=Final de Linha
+lineheight=Altura da linha
+linestart=Início de Linha
+linewidth=Linewidth
+loading=Carregamento
+lockUnlock=Bloquear/desbloquear
+manual=Manual
+middle=Médio
+misc=Misc
+more=Mais
+moreResults=Mais resultados
+move=Mover
+moveSelectionTo=Mover a seleção para {1}
+navigation=Navegação
+new=Novo
+noColor=Sem cor
+noFiles=Não há arquivos
+noMoreResults=Não mais resultados
+none=Nenhum
+noResultsFor=Não foram encontrados resultados para '{1}'
+normal=Normal
+north=Norte
+numberedList=Lista numerada
+opacity=Opacidade
+open=Abra
+openArrow=Seta para abrir
+openFile=Abrir Arquivo
+openLink=Abrir link
+openSupported=Formato suportado é .arquivos XML salvos a partir deste software
+openInNewWindow=Abrir em uma nova janela
+openInThisWindow=Abrir nesta janela
+options=Opções
+organic=Orgânicos
+orthogonal=Ortogonal
+outline=Esboço
+oval=Oval
+pages=Páginas
+pageView=Visualizar página
+pageScale=Escala de página
+pageSetup=Configuração de página
+panTooltip=Espaço arraste para percorrer
+paperSize=Tamanho do papel
+paste=Cole
+pasteHere=Cole aqui
+pattern=Padrão
+perimeter=Perímetro
+placeholders=Espaços reservados
+plusTooltip=Clique para ligar e o clone (ctrl clique em Clonar, shift-clique para conectar). Arraste para conectar (ctrl arraste para clonar).
+portrait=Retrato
+position=Posição
+posterPrint=Impressão de pôster
+preview=Visualização
+print=Imprimir
+radialTree=Árvore Radial
+redo=Refazer
+removeFormat=Limpar formatação
+removeFromGroup=Remover do grupo
+removeIt=Remover {1}
+removeWaypoint=Remova o ponto de passagem
+rename=Renomear
+renameIt=Renomear {1}
+replace=Substituir
+replaceIt={1} já existe. Deseja substituí-lo?
+replaceExistingDrawing=Substituir desenho existente
+reset=Reset
+resetView=Reset View
+right=Direito
+rightAlign=Alinhar à direita
+rightToLeft=Da direita para a esquerda
+rotate=Gire
+rotateTooltip=Clique e arraste para rodar, clique para girar por 90 graus
+rotation=Rotação
+rounded=Arredondada
+save=Salvar
+saveAs=Salvar como
+saved=Salvo
+scrollbars=Barras de Rolamento
+search=Pesquisar
+searchShapes=Formas de pesquisa
+selectAll=Selecionar todas
+selectEdges=Selecione bordas
+selectFont=Selecione uma fonte
+selectNone=Selecione Nenhum
+selectVertices=Selecione vértices
+setAsDefaultStyle=Definir como estilo padrão
+shadow=Sombra
+shape=Forma
+sharp=Sharp
+sidebarTooltip=Clique para expandir. Arraste e solte as formas no diagrama. Shift-clique para alterar a selecção. Alt clique para inserir e ligar.
+simple=Simples
+simpleArrow=Seta simples
+size=Tamanho
+solid=Sólido
+sourceSpacing=Espaçamento da fonte
+south=Sul
+spacing=Espaçamento
+straight=Em linha reta
+strokeColor=Cor da linha
+style=Estilo
+subscript=Subscript
+superscript=Superscript
+table=Tabela
+targetSpacing=Espaçamento de alvo
+text=Texto
+textAlignment=Alinhamento de Texto
+textOpacity=Opacidade de texto
+toBack=Para Trás
+toFront=Para a Frente
+tooltips=Dicas de ferramentas
+top=Topo
+topAlign=Alinhar parte superior
+topLeft=Canto superior esquerdo
+topRight=Canto superior direito
+transparent=Transparente
+turn=Rodar
+uml=UML
+underline=Underline
+undo=Desapertar
+ungroup=Desagrupar
+url=URL
+untitledLayer=Camada sem título
+vertical=Vertical
+verticalFlow=Fluxo Vertical
+verticalTree=Árvore Vertical
+view=Visualizar
+waypoints=Pontos de passagem
+west=West
+width=Largura
+wordWrap=Word Wrap
+writingDirection=Direção da escrita
+zoom=Zoom
+zoomIn=O Zoom
+zoomOut=Zoom Out
+label=Rótulo
+timeout=Timeout (segundos)
+response=Tempo limite de resposta
+digit=Max Dígito
+escape=Os dígitos de evacuação
+retry=Tentar novamente
+name=Nome
+value=Valor
+entry=Entrada
+start=Início
+finally=Por último
+end=Fim
+variable=Variável
+set=Definir
+operation=Operação
+math=Math
+result=Resultado
+call_management=Gerenciamento de Chamadas
+answer=Resposta
+hangup=Desligar
+dial=Discagem interna
+ext_dial=Discagem externa
+phone=Telefone
+trunk=Tronco
+identifier=Identificador
+queue=Fila
+voicemail=Correio de voz
+boxnumber=Número de caixa
+playback=Reprodução
+menu=Menu
+saydigits=SayDigits
+digits=Dígitos
+saynumber=SayNumber
+number=Número
+sayphonetic=SayPhonetic
+escape_digits=Os dígitos de evacuação
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=A chave
+getdigits=GetDigits
+mindigit=Min Dígitos
+maxdigit=Max Dígitos
+custom_app=Aplicativo personalizado
+language=Idioma
+frequency=Frequência
+integrationServer=Servidor de Integração
+database=Banco de dados
+query=Consulta
+asr=ASR
+sendSMS=SendSMS
+account_id=Conta
+template_id=Modelo
+to=A
+sms_text=Texto
+sendMail=A SendMail
+subject=Objecto
+cc=Cc
+threshold=Limiar
+maxspeech=Max Fala
+grammar=Gramática
+ispeechasr=ISpeechASR
+model=Modelo
+noop=NoOp
+output=Saída
+system=Sistema
+command=O comando
+application=Aplicação
+agi=A AGI
+args=Argumentos
+subproject=Subprojeto
+goalname=Nome da meta
+callflow=O fluxo de chamadas
+gotoc=Ir para
+context=Contexto
+extension=Extensão
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=Intervalo de tempo
+leftOperand=Operando esquerdo
+condition=Estado
+rightOperand=Operando direito
+vswitch=Interruptor
+recording=A gravação
+record=Gravar
+queuename=Nome da fila de impressão
+announceoverride=Anunciar Override
+callid=CallID
+agent=Agente
+queue_event=Caso
+data1=Data1
+data2=Dados2
+data3=Data3
+data4=Dados4
+data5=Dados5
+macro=Macro
+stats=Stats
+queuelog=QueueLog
+goal=Objetivo
+callback=Retorno de chamada
+list=Lista
+delay=Demora
+list_id=Lista
+opts=Opções
+queue_id=Fila
+file_id=Arquivo
+variable_id=Variável
+gosub=Gosub
+project_id=Projecto
+sip_id=SIP
+trunk_name=Tronco
+variable_value=O valor da variável
+database_id=Banco de dados
+interval_id=Intervalo
+description_start=Descrição de início
+publish=Pubblica
+ispeech_asr_language=Idioma
+ispeech_tts_language=Idioma
+google_tts_language=Idioma
+queue_variable=Fila de espera a partir da variável
+odbc_id=Conexão ODBC
+noVariableSelected=Variável não for especificada.
+noTrunkSelected=O tronco não é especificado.
+noAudioSelected=Arquivo de áudio não é especificado.
+noOperandSelected=Operando esquerdo é não especificado.
+noDatabaseSelected=O banco de dados não for especificado.
+noExtensionSelected=Ramal não é especificado.
+noCommandSelected=O comando não é especificado.
+noApplicationSelected=O aplicativo não está especificado
+noRightOperandSelected=Operando direito não é especificado.
+noDigitsSelected=Dígitos não for especificado.
+noNumberSelected=Número não é especificado.
+noRecipientSelected=O destinatário não é especificado.
+noTextSelected=O texto não é especificado.
+noAccountSelected=A conta não está especificado.
+noKeySelected=Chave não é especificado.
+noIdentifierSelected=Identificador não é especificado.
+noQueueSelected=O nome da fila não é especificado.
+noConditionSelected=Condição não especificada.
+noIntervalSelected=Intervalo não é especificado.
+noContextSelected=Contexto não é especificado.
+noBoxNumberSelected=Nome da caixa não for especificado.
+noProjectSelected=Subprojeto não é especificado.
+noFileSelected=Nome de arquivo não for especificado.
+numberOrInvalidOrTimeout=Inserir número, i ou t (verificar espaços em branco).
+numberOrAll=Insira o número ou -.
+numberOrInvalidOrDefault=Insira x, i ou -.
+trueOrFalse=Insira o verdadeiro ou falso.
+noGoalSelected=Objetivo não é especificado.
+noListSelected=Lista não é especificado.
+musthave=Deve ter
+outgoingedge=Borda de saída.
+incomingedge=A borda de entrada.
+mailbox=Caixa de correio
+intKey=Tecla de interrupção
+speed=Velocidade
+wrongMinDigit=Min dígitos tem de ser superior a 0
+wrongMaxDigit=Max dígitos tem de ser superior a 0
+wrongHiddenDigitsnum=Número de dígitos oculto tem de ser superior ou igual a 0
+hiddendigitsnum=Número de dígitos ocultos
+hiddendigitspos=Posição Dígitos ocultos
+getsecretdigits=GetSecretDigits
+beep=Sinal sonoro
+description=Descrição
+recordingFormat=Formato
+bcc=Cco
+invalidTimeout=Valor de tempo limite inválido
+invalidRetry=Valor inválido Tente novamente
+invalidSpeed=O valor da Velocidade Inválida
+missingQuery=A cadeia de caracteres da consulta está ausente
+invalidPriority=Valor de prioridade inválida
+invalidDelay=Valor do atraso inválido
+noAttachmentSelected=Nenhum acessório selecionado
+sendFax=SendFax
+attachment_name=Anexo Selecionado
+choose_attachment=Escolha o acessório
+help_choose_attachment=Formato: PDF,tiff ou tif
+help_delay=Tempo, em minutos, para aguardar antes de chamar de volta o contato
+noFirstNameSelected=O primeiro nome é não especificado
+noPhoneSelected=O telefone não está especificado
+editFile=Editar XML
+priority=Prioridade
+numberOrLettersOrAll=Insira números, letras ou -.
diff --git a/public/assets/plugins/square/resources/grapheditor_ru.txt b/public/assets/plugins/square/resources/grapheditor_ru.txt
new file mode 100644 (file)
index 0000000..f013f0f
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=Узлы уже подключен
+cancel=Отмена
+close=Закрыть
+collapse-expand=Свернуть/развернуть
+containsValidationErrors=Содержит ошибки проверки
+done=Сделано
+doubleClickOrientation=Двойной щелчок для изменения ориентации
+error=Сообщение об ошибке
+ok=OK
+updatingDocument=Обновление документа. Пожалуйста подождите...
+updatingSelection=Обновление выбора. Пожалуйста подождите...
+about=О
+actualSize=Фактический размер
+add=Добавить
+addLayer=Добавить слой
+addProperty=Добавить отель
+addToExistingDrawing=Добавить в существующий чертеж
+addWaypoint=Добавить маршрутную точку
+advanced=Расширенные возможности
+align=Совместите
+alignment=Выравнивание
+allChangesLost=Все изменения будут потеряны!
+angle=Угол обзора
+apply=Нанесите
+arrange=Договориться о
+arrow=Стрелка вверх
+arrows=Стрелки
+automatic=Автоматическая
+autosave=Функция Autosave
+autosize=Размер калибровочной полосы
+background=Справочная информация
+backgroundColor=Цвет фона
+backgroundImage=Фоновое изображение
+basic=Основные
+block=Блок цилиндров
+blockquote=Blockquote
+bold=Bold
+borderWidth=Borderwidth
+borderColor=Цвет границы
+bottom=В нижней части
+bottomAlign=Совместите нижнюю часть
+bottomLeft=Снизу слева
+bottomRight=Внизу справа
+bulletedList=Маркированный список
+cannotOpenFile=Невозможно открыть файл
+center=Центр
+change=Изменить
+changeOrientation=Измените ориентацию
+circle=Круг
+classic=Классический
+clearDefaultStyle=Очистить значения по умолчанию стиль
+clearWaypoints=Удалите маршрутные точки
+clipart=Отображать клипы
+collapse=Свернуть
+collapseExpand=Свернуть/развернуть
+collapsible=Симметричные
+comic=Comic
+connect=Подсоедините
+connection=Соединение
+connectionPoints=Точки подключения
+connectionArrows=Соединение стрелок
+constrainProportions=Ограничивают масштабы
+copy=Копирование
+copyConnect=Копирование на подключение
+create=Создать
+curved=Изогнутая
+custom=Пользовательский
+cut=Вырезать
+dashed=Пунктирной
+decreaseIndent=Уменьшить отступ
+default=По умолчанию
+delete=Удалить
+deleteColumn=Удалить колонку
+deleteRow=Удалить строку
+diagram=Схема
+diamond=Diamond
+diamondThin=Diamond (тонкий)
+direction=Направление
+distribute=Распространять
+divider=Делитель
+documentProperties=Свойства документа
+dotted=Пунктирной линией
+drawing=Чертеж{1}
+drawingEmpty=Чертеж пуст
+drawingTooLarge=Чертеж - слишком большой
+duplicate=Дублировать
+duplicateIt=Дублировать {1}
+east=Востоке
+edit=Изменить
+editData=Изменить данные
+editDiagram=Изменить схему
+editImage=Редактирование изображения
+editLink=Редактировать Ссылку
+editStyle=Изменить стиль
+editTooltip=Редактировать подсказки
+enterGroup=Введите группы
+enterValue=Введите значение
+enterName=Введите имя
+enterPropertyName=Введите имя свойства
+entityRelation=Объект связи
+exitGroup=Выйти из группы
+expand=Расширить
+export=Экспорт
+extras=Дополнительно
+file=Файл
+fileNotFound=Файл не найден
+filename=Имя файла
+fill=Заполните
+fillColor=Цвет заливки
+fitPage=На одну страницу
+fitPageWidth=Ширина страницы
+fitTwoPages=Две страницы
+fitWindow=Установите окно
+flip=Flip
+flipH=Переверните горизонтальный
+flipV=Вертикальный опрокидывания
+font=Font
+fontFamily=Семейство шрифтов
+fontColor=Font Color
+fontSize=Размер шрифта
+format=Формат
+formatPanel=Панель Формат
+formatPdf=В ФОРМАТЕ PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=Отформатирован
+formattedText=Форматированный текст
+general=Генеральной
+glass=Стекло
+global=Глобальной
+gradient=Величина градиента
+gradientColor=Цвет
+grid=Grid
+gridSize=Размер сетки
+group=Группа
+guides=Направляющие
+heading=Заголовок
+height=Высота
+help=Справка
+hide=Скрыть
+hideIt=Скрыть {1}
+hidden=Скрытые
+home=Home
+horizontal=В горизонтальном положении
+horizontalFlow=Горизонтальный поток
+horizontalTree=В системном дереве в горизонтальном положении
+html=HTML
+image=Изображение
+images=Изображения
+import=Импорт
+increaseIndent=Увеличить отступ
+insert=Вставьте
+insertColumnBefore=Вставьте слева на рулевой колонке
+insertColumnAfter=Вставьте справа на рулевой колонке
+insertHorizontalRule=Вставьте горизонтальной линейки
+insertImage=Вставить изображение
+insertLink=Вставить ссылку
+insertRowBefore=Вставить строки выше
+insertRowAfter=Вставить строки ниже
+invalidName=Неверное имя
+invalidOrMissingFile=Недопустимый или отсутствующий файл
+isometric=Изометрическая проекция
+italic=Italic
+layers=Слои
+landscape=Пейзаж
+laneColor=Lanecolor
+layout=Компоновка
+left=Влево
+leftAlign=Выравнивание по левому краю
+leftToRight=Слева направо
+line=Линия
+link=Связь
+lineend=Конец строки
+lineheight=Высота строки
+linestart=Пуск линии
+linewidth=Линия уширяется
+loading=Загрузка
+lockUnlock=Блокировка и разблокировка
+manual=Руководство по эксплуатации
+middle=На Ближнем
+misc=Misc
+more=Более
+moreResults=Больше результатов
+move=Переместить
+moveSelectionTo=Переместить выбор на {1}
+navigation=Система навигации
+new=Новые
+noColor=Отсутствует цвет
+noFiles=Нет файлов
+noMoreResults=Нет больше результатов
+none=При этом никто не голосовал
+noResultsFor=Нет результатов для '{1}'
+normal=Обычный
+north=Северной
+numberedList=Нумерованный список
+opacity=Непрозрачность
+open=Открыть
+openArrow=Стрелки открыть
+openFile=Открыть файл
+openLink=Открыть ссылку
+openSupported=Поддерживает формат .XML сохраняются файлы из данного программного обеспечения
+openInNewWindow=Открыть в новом окне
+openInThisWindow=Откройте в этом окне
+options=Варианты
+organic=Органических
+orthogonal=Ортогональный
+outline=Наброски бюджета
+oval=Овальной формы
+pages=Страниц
+pageView=Просмотр страниц
+pageScale=Масштаб страницы
+pageSetup=Настройка параметров страницы
+panTooltip=Перетащите пространства для прокрутки
+paperSize=Размер бумаги
+paste=Вставить
+pasteHere=Вставить сюда
+pattern=Шаблон
+perimeter=По периметру
+placeholders=Симуляторы
+plusTooltip=Щелкните для подключения и клонирования (нажмите Ctrl для клонирования, shift щелкните для подключения). Перетащите для подключения (ctrl перетащите для клонирования).
+portrait=Книжная ориентация
+position=Положение
+posterPrint=Печать плакатов
+preview=Предварительный просмотр
+print=Печать
+radialTree=Радиальный дерево
+redo=Повторить
+removeFormat=Удалить форматирование
+removeFromGroup=Удалить из группы
+removeIt=Удалить {1}
+removeWaypoint=Снимите маршрутной точки
+rename=Переименовать
+renameIt=Переименовать {1}
+replace=Замените
+replaceIt={1} уже существует. Хотите ли вы его заменить?
+replaceExistingDrawing=Заменить существующий чертеж
+reset=Сброс
+resetView=Reset View
+right=Право
+rightAlign=Выравнивание по правому краю
+rightToLeft=Справа налево
+rotate=Вращайте дисковый манипулятор
+rotateTooltip=Щелкните и перетащите с помощью мыши для поворота, нажмите для поворота на 90 градусов
+rotation=Направление вращения
+rounded=Скругленные
+save=Сохранить
+saveAs=Сохранить как
+saved=Сохраненные
+scrollbars=Линейки прокрутки
+search=Поиск
+searchShapes=Поиск формы
+selectAll=Выбрать все
+selectEdges=Выберите кромок
+selectFont=Выберите шрифт
+selectNone=Выберите пункт None
+selectVertices=Выберите вершин
+setAsDefaultStyle=Установить как стиль по умолчанию
+shadow=Тень
+shape=Форма
+sharp=Острые
+sidebarTooltip=Нажмите , чтобы развернуть. Перетащите фигур в схеме. Нажмите кнопку переключения для изменения выбора. Нажмите кнопку Alt для вставки и подключить.
+simple=Простой
+simpleArrow=Простой стрелкой
+size=Размер
+solid=Твердые
+sourceSpacing=Источник ширины междурядий
+south=Южной
+spacing=Ширина междурядья
+straight=В положении для движения по прямой
+strokeColor=Цвет линии
+style=Стиль
+subscript=Subscript
+superscript=Superscript
+table=Таблица
+targetSpacing=Целевой показатель ширины междурядий
+text=Текст
+textAlignment=Выравнивание текста
+textOpacity=Текст непрозрачность
+toBack=На задней панели
+toFront=К ПЕРЕДНЕЙ ЧАСТИ
+tooltips=Всплывающие подсказки
+top=Верхней Части
+topAlign=Top Align
+topLeft=Сверху слева
+topRight=Сверху справа
+transparent=Прозрачный
+turn=Повернуть
+uml=UML
+underline=Подчеркнуть
+undo=Ослабьте затяжку
+ungroup=Рагруппировать
+url=URL
+untitledLayer=Untitled слой
+vertical=Вертикальная
+verticalFlow=Вертикальный поток
+verticalTree=В системном дереве по вертикали
+view=Просмотр
+waypoints=Маршрутные точки
+west=Западный
+width=Ширина
+wordWrap=Word Wrap
+writingDirection=Направление письма
+zoom=Зум-объективом
+zoomIn=Зум в
+zoomOut=Масштаб изображения
+label=Обозначение
+timeout=Превышение лимита времени (сек)
+response=Тайм-аут ответа
+digit=Max цифры
+escape=Escape цифр
+retry=Повторите попытку
+name=Имя
+value=Значение
+entry=Вступление
+start=Пуск
+finally=И наконец
+end=Положить конец
+variable=Переменная
+set=Установить
+operation=Операция
+math=Math
+result=В результате
+call_management=Управление вызовами
+answer=Ответ
+hangup=Отключение
+dial=Внутреннего набора
+ext_dial=Внешний диск набора команд
+phone=Номер телефона
+trunk=Сл
+identifier=Идентификатор
+queue=Очереди
+voicemail=Голосовая почта
+boxnumber=Поле Номер
+playback=Воспроизведение
+menu=Меню
+saydigits=SayDigits
+digits=Цифры
+saynumber=SayNumber
+number=Номер
+sayphonetic=SayPhonetic
+escape_digits=Escape цифр
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=Ключ зажигания
+getdigits=GetDigits
+mindigit=Мин цифры
+maxdigit=Max цифр
+custom_app=Пользовательские приложения
+language=Язык
+frequency=Частота
+integrationServer=Integration Server
+database=Базы данных
+query=Запрос
+asr=ASR
+sendSMS=SendSMS
+account_id=Счета
+template_id=Шаблон
+to=Для
+sms_text=Текст
+sendMail=SendMail
+subject=При условии
+cc=Cc
+threshold=Пороговое значение
+maxspeech=Max речи
+grammar=Грамматика
+ispeechasr=ISpeechASR
+model=Модель
+noop=NoOp
+output=Выход
+system=Системы
+command=Команда
+application=Приложение
+agi=AGI
+args=Аргументы
+subproject=Подпроекта
+goalname=Имя задачи
+callflow=Callflow
+gotoc=Goto
+context=Контексте
+extension=Добавочный номер
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=Интервал времени
+leftOperand=Левый операнд
+condition=Состояние
+rightOperand=Правый операнд
+vswitch=Переключатель
+recording=Запись
+record=Запись
+queuename=Имя очереди
+announceoverride=Объявить переопределения
+callid=Элемент CALLID содержится
+agent=Оператор
+queue_event=События
+data1=Data1
+data2=Data2
+data3=Данные3
+data4=Данных4
+data5=Данные5
+macro=Макрос
+stats=Статистика
+queuelog=QueueLog
+goal=Цели
+callback=Обратный вызов
+list=Список
+delay=Задержки
+list_id=Список
+opts=Варианты
+queue_id=Очереди
+file_id=Файл
+variable_id=Переменная
+gosub=For to
+project_id=Проект
+sip_id=SIP
+trunk_name=Сл
+variable_value=Значение переменной
+database_id=Базы данных
+interval_id=Пробег до очередной замены масла
+description_start=Описание запуска
+publish=Pubblica
+ispeech_asr_language=Язык
+ispeech_tts_language=Язык
+google_tts_language=Язык
+queue_variable=Очереди от переменной
+odbc_id=Соединение ODBC
+noVariableSelected=Переменная не указан.
+noTrunkSelected=Сл не указан.
+noAudioSelected=Звуковой файл не указан.
+noOperandSelected=Левый операнд не указан.
+noDatabaseSelected=База данных не указан.
+noExtensionSelected=Добавочный номер не указан.
+noCommandSelected=Команда не указан.
+noApplicationSelected=Приложение не указан
+noRightOperandSelected=Правый операнд не указан.
+noDigitsSelected=Цифры не указан.
+noNumberSelected=Номер не указан.
+noRecipientSelected=Получатель не указан.
+noTextSelected=Текст не указан.
+noAccountSelected=Учетная запись не указан.
+noKeySelected=Ключ не указан.
+noIdentifierSelected=Идентификатор не указан.
+noQueueSelected=Имя очереди не указан.
+noConditionSelected=Состояние не указан.
+noIntervalSelected=Интервал не указан.
+noContextSelected=Контексте не указан.
+noBoxNumberSelected=Поле Имя не указано.
+noProjectSelected=Подпроект не указан.
+noFileSelected=Имя файла не указан.
+numberOrInvalidOrTimeout=Вставьте номер, i или t (проверка белого пробелы).
+numberOrAll=Вставьте номер или -.
+numberOrInvalidOrDefault=Вставьте x, i или -.
+trueOrFalse=Вставьте true или false.
+noGoalSelected=Цель - не указан.
+noListSelected=Список не указан.
+musthave=Должны иметь
+outgoingedge=Исходящие края.
+incomingedge=Входящие края.
+mailbox=Почтовый ящик
+intKey=Ключ прерываний
+speed=Скорость
+wrongMinDigit=Мин цифра должна быть больше 0
+wrongMaxDigit=Max цифра должна быть больше 0
+wrongHiddenDigitsnum=Скрытые цифры номера должно быть больше или равно 0
+hiddendigitsnum=Скрытые цифры номера
+hiddendigitspos=Скрытые цифры положение
+getsecretdigits=GetSecretDigits
+beep=Звуковой сигнал
+description=Описание
+recordingFormat=Формат
+bcc=Скрытая копия
+invalidTimeout=Неверное значение тайм-аута
+invalidRetry=Неверное значение количества повторных попыток
+invalidSpeed=Неверное значение частоты вращения коленчатого вала
+missingQuery=Строка запроса отсутствует
+invalidPriority=Недопустимое значение приоритета
+invalidDelay=Недопустимое значение задержки
+noAttachmentSelected=Нет выбранного навесного оборудования
+sendFax=Клиентская часть (можно использовать
+attachment_name=Выбранное вложение
+choose_attachment=Выбрать вложение
+help_choose_attachment=Формат: PDF, TIFF или TIF
+help_delay=Время в минутах, подождите, прежде чем звонить в задней части контакта
+noFirstNameSelected=Имя не указано
+noPhoneSelected=Номер телефона не указан
+editFile=Редактирование XML
+priority=Первоочередное внимание
+numberOrLettersOrAll=Вставьте цифры, буквы или -.
diff --git a/public/assets/plugins/square/resources/grapheditor_sv.txt b/public/assets/plugins/square/resources/grapheditor_sv.txt
new file mode 100644 (file)
index 0000000..2c38000
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=Noder redan ansluten
+cancel=Avbryt
+close=Stäng
+collapse-expand=Kollapsa/expandera
+containsValidationErrors=Innehåller valideringsfel
+done=Utfärdat
+doubleClickOrientation=Dubbelklicka för att ändra orientering
+error=Fel
+ok=OK
+updatingDocument=Uppdatera dokumentet. Vänligen vänta ...
+updatingSelection=Uppdatering av urval. Vänligen vänta ...
+about=Om
+actualSize=Verklig storlek
+add=Lägg till
+addLayer=Lägg till lager
+addProperty=Lägg till egenskap
+addToExistingDrawing=Lägg till befintlig ritning
+addWaypoint=Lägg till waypoint
+advanced=Avancerade
+align=Rikta in
+alignment=Justering
+allChangesLost=Alla ändringar kommer att förloras!
+angle=Vinkel
+apply=Tillämpa
+arrange=Ordna
+arrow=Pilen
+arrows=Pilar
+automatic=Automatisk
+autosave=Autosave
+autosize=Autostlk
+background=Bakgrund
+backgroundColor=Bakgrundsfärg
+backgroundImage=Bakgrundsbild
+basic=Grundläggande
+block=Blockera
+blockquote=Blockquote
+bold=Fetstil
+borderWidth=Borderwidth
+borderColor=Kantfärg
+bottom=Botten
+bottomAlign=Nedre rikta
+bottomLeft=Längst ned till vänster
+bottomRight=Nedre högra
+bulletedList=Bulleted förteckningen
+cannotOpenFile=Kan inte öppna fil
+center=Center
+change=Ändra
+changeOrientation=Ändra orientering
+circle=Cirkel
+classic=Klassiska
+clearDefaultStyle=Rensa standardinställningar
+clearWaypoints=Klart waypoints
+clipart=Clipart
+collapse=Komprimera
+collapseExpand=Kollapsa/expandera
+collapsible=Hopfällbara
+comic=Komisk
+connect=Anslut
+connection=Anslutning
+connectionPoints=Anslutningspunkter
+connectionArrows=Anslutning pilar
+constrainProportions=Tvinga proportioner
+copy=Kopiera
+copyConnect=Kopia på Anslut
+create=Skapa
+curved=Böjd
+custom=Anpassad
+cut=Skär
+dashed=Streckad
+decreaseIndent=Minska indrag
+default=Standard
+delete=Ta bort
+deleteColumn=Radera kolumn
+deleteRow=Radera rad
+diagram=Kopplingsschema
+diamond=Diamond
+diamondThin=Diamond (tunna)
+direction=Riktning
+distribute=Fördela
+divider=Avdelare
+documentProperties=Dokumentegenskaper
+dotted=Streckad
+drawing=Ritning{1}
+drawingEmpty=Ritningen är tom
+drawingTooLarge=Ritningen är för stor
+duplicate=Dubblett
+duplicateIt=Duplicera {1}
+east=Mellanöstern
+edit=Redigera
+editData=Redigera data
+editDiagram=Redigera diagram
+editImage=Redigera bild
+editLink=Redigera länk
+editStyle=Redigera stil
+editTooltip=Redigera Tooltip
+enterGroup=Ange grupp
+enterValue=Ange värde
+enterName=Ange namn
+enterPropertyName=Ange verksamhetens namn
+entityRelation=Enhet förhållande
+exitGroup=Stäng grupp
+expand=Expandera
+export=Exportera
+extras=Extrafunktioner
+file=Fil
+fileNotFound=Filen hittades inte
+filename=Filnamn
+fill=Fyll
+fillColor=Fyll färg
+fitPage=En sida
+fitPageWidth=Sidbredd
+fitTwoPages=Två sidor
+fitWindow=Montera fönster
+flip=Vänd
+flipH=Bläddrar horisontellt
+flipV=Bläddrar vertikalt
+font=Font
+fontFamily=Teckensnittsfamilj
+fontColor=Font Color
+fontSize=Teckenstorlek
+format=Format
+formatPanel=Formatet på instrumentpanelen
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=Formaterad
+formattedText=Formaterad text
+general=Allmänt
+glass=Glas
+global=Global
+gradient=Lutning
+gradientColor=Färg
+grid=Rutnät
+gridSize=Rutnätets storlek
+group=Grupp
+guides=Guider
+heading=Rubrik
+height=Höjd
+help=Hjälp
+hide=Dölj
+hideIt=Dölj {1}
+hidden=Dolt
+home=Hem
+horizontal=Horisontell
+horizontalFlow=Horisontellt flöde
+horizontalTree=Horisontellt träd
+html=HTML
+image=Bild
+images=Bilder
+import=Importera
+increaseIndent=Öka indrag
+insert=Infoga
+insertColumnBefore=Infoga kolumn till vänster
+insertColumnAfter=Infoga kolumn till höger
+insertHorizontalRule=Infoga horisontell regel
+insertImage=Infoga bild
+insertLink=Infoga länk
+insertRowBefore=Infoga rad ovanför
+insertRowAfter=Infoga rad nedanför
+invalidName=Ogiltigt namn
+invalidOrMissingFile=Ogiltig eller saknad fil
+isometric=Isometrisk
+italic=Kursiv stil
+layers=Lager
+landscape=Liggande
+laneColor=Lanecolor
+layout=Layout
+left=Vänster
+leftAlign=Vänster justera
+leftToRight=Vänster till höger
+line=Linje
+link=Länk
+lineend=Radslut
+lineheight=Radavstånd
+linestart=Radstart
+linewidth=Linjebredd
+loading=Lastning
+lockUnlock=Lås/lås upp
+manual=Manuell
+middle=Mitten
+misc=Div.
+more=Mer
+moreResults=Fler resultat
+move=Flytta
+moveSelectionTo=Flytta markeringen till {1}
+navigation=Navigation
+new=Nya
+noColor=Ingen färg
+noFiles=Inga filer
+noMoreResults=Inga fler resultat
+none=Ingen
+noResultsFor=Inga resultat för '{1}'
+normal=Normal
+north=Norr
+numberedList=Numrerad lista
+opacity=Opacitet
+open=Öppna
+openArrow=Öppna pilen
+openFile=Öppna fil
+openLink=Öppna länk
+openSupported=Stödde format är .XML-filar som räddas alltifrån denna mjukvara
+openInNewWindow=Öppna i nytt fönster
+openInThisWindow=Öppna detta fönster
+options=Alternativ
+organic=Ekologiska
+orthogonal=Rätvinkliga
+outline=Kontur
+oval=Oval manöverpanel
+pages=Sidor
+pageView=Sidvy
+pageScale=Sidan skala
+pageSetup=Utskriftsformat
+panTooltip=Plats dra för att bläddra
+paperSize=Pappersstorlek
+paste=Klistra in
+pasteHere=Klistra in här
+pattern=Mönster
+perimeter=Omkrets
+placeholders=Platshållare
+plusTooltip=Klicka på Anslut och klon (Ctrl-klicka för att klona, skift klicka här för att ansluta). Dra för att ansluta (ctrl dra till klon).
+portrait=Stående
+position=Läge
+posterPrint=Affisch för utskrift
+preview=Förhandsgranska
+print=Skriv ut
+radialTree=Radiella träd
+redo=Redo
+removeFormat=Rensa formatering
+removeFromGroup=Ta bort från grupp
+removeIt=Ta bort {1}
+removeWaypoint=Ta bort waypoint
+rename=Namn
+renameIt=Byta namn på {1}
+replace=Byt
+replaceIt={1} finns redan. Vill du ersätta det?
+replaceExistingDrawing=Byt ut befintlig ritning
+reset=Återställ
+resetView=Återställ vy
+right=Höger
+rightAlign=Högerjustera
+rightToLeft=Höger till vänster
+rotate=Rotera
+rotateTooltip=Klicka och dra för att rotera, klicka på för att stänga av 90 grader
+rotation=Rotation
+rounded=Rundad
+save=Spara
+saveAs=Spara som
+saved=Sparad
+scrollbars=Rullningslister
+search=Sök
+searchShapes=Sökningformar
+selectAll=Markera alla
+selectEdges=Välj kanter
+selectFont=Välj ett teckensnitt
+selectNone=Välj ingen
+selectVertices=Välj hörn
+setAsDefaultStyle=Som standard Style
+shadow=Shadow
+shape=Formen
+sharp=Skarp
+sidebarTooltip=Klicka för att expandera. Dra och släpp formar in i bilden. Skift klicka för att ändra val. Alt-klicka för att infoga och anslut.
+simple=Enkel
+simpleArrow=Enkel pil
+size=Storlek
+solid=Fast
+sourceSpacing=Källspridning
+south=Söder
+spacing=Radavstånd
+straight=Rakt
+strokeColor=Linjefärg
+style=Stil
+subscript=Subscript
+superscript=Upphöjd
+table=Tabell
+targetSpacing=Mål avstånd
+text=Text
+textAlignment=Textinriktning
+textOpacity=Text opacitet
+toBack=Till baksida
+toFront=Till framsida
+tooltips=Verktygstips
+top=Överst
+topAlign=Top passa
+topLeft=Övre vänstra
+topRight=Övre högra
+transparent=Genomskinlig
+turn=Vrid
+uml=UML
+underline=Betona
+undo=Ångra
+ungroup=Avgruppera
+url=URL
+untitledLayer=Untitled lager
+vertical=Vertikal
+verticalFlow=Vertikalt flöde
+verticalTree=Vertikalt träd
+view=Visa
+waypoints=Waypoints
+west=West
+width=Bredd
+wordWrap=Radbrytning
+writingDirection=Författa riktning
+zoom=Zoom
+zoomIn=Zooma in
+zoomOut=Zooma ut
+label=Etikett
+timeout=Timeout för passivitet (sekunder)
+response=Svarstimeout
+digit=Max siffra
+escape=Escape-tecken
+retry=Försök igen
+name=Namn
+value=Värde
+entry=Inmatning
+start=Starta
+finally=Slutligen
+end=Slutet
+variable=Variabel
+set=Ställ
+operation=Drift
+math=Matte
+result=Resultat
+call_management=Samtalshantering
+answer=Svar
+hangup=Lägg på
+dial=Inre ring
+ext_dial=Yttre ring
+phone=Telefon
+trunk=Segmentgrupp
+identifier=Id
+queue=Kö
+voicemail=Röstmeddelande
+boxnumber=Nummer
+playback=Uppspelning
+menu=Meny
+saydigits=SayDigits
+digits=Siffror
+saynumber=SayNumber
+number=Nummer
+sayphonetic=SayPhonetic
+escape_digits=Escape-tecken
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=Nyckel
+getdigits=GetDigits
+mindigit=Min siffror
+maxdigit=Max. siffror
+custom_app=Anpassad applikation
+language=Språk
+frequency=Frekvens
+integrationServer=Integration Server
+database=Databas
+query=Fråga
+asr=ASR
+sendSMS=SendSMS
+account_id=Konto
+template_id=Mall
+to=Till
+sms_text=Text
+sendMail=SendMail
+subject=Föremål
+cc=Krets
+threshold=Tröskel
+maxspeech=Max inlägg
+grammar=Grammatik
+ispeechasr=ISpeechASR
+model=Modell
+noop=NoOp
+output=Utgång
+system=Systemet
+command=Kommando
+application=Tillämpning
+agi=AGI
+args=Argument
+subproject=Delprojekt
+goalname=Målnamn
+callflow=Callflow
+gotoc=Goto
+context=Bakgrund
+extension=Förlängning
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=Tidsintervall
+leftOperand=Vänstra operanden
+condition=Skick
+rightOperand=Höger Operand
+vswitch=Strömbrytare
+recording=Inspelning
+record=Spela in
+queuename=Könamn
+announceoverride=Meddela åsidosätta
+callid=CallID
+agent=Agent
+queue_event=Händelse
+data1=Data1
+data2=Data2
+data3=Data3
+data4=Data4
+data5=Data5
+macro=Makro
+stats=Statistik
+queuelog=QueueLog
+goal=Mål
+callback=Återuppringning
+list=Lista
+delay=Fördröjning
+list_id=Lista
+opts=Alternativ
+queue_id=Kö
+file_id=Fil
+variable_id=Variabel
+gosub=Gosub
+project_id=Projektet
+sip_id=SIP
+trunk_name=Segmentgrupp
+variable_value=Variabelt värde
+database_id=Databas
+interval_id=Intervall
+description_start=Start beskrivning
+publish=Pubblica
+ispeech_asr_language=Språk
+ispeech_tts_language=Språk
+google_tts_language=Språk
+queue_variable=Kön variabel
+odbc_id=ODBC-anslutning
+noVariableSelected=Variabeln är inte angivet.
+noTrunkSelected=Bagageutrymmet är inte angivet.
+noAudioSelected=Ljudfilen är inte angivet.
+noOperandSelected=Vänstra operanden anges inte.
+noDatabaseSelected=Databasen är inte angivet.
+noExtensionSelected=Anknytningen är inte angivet.
+noCommandSelected=Kommandot är inte angivet.
+noApplicationSelected=Programmet är inte angiven
+noRightOperandSelected=Höger operanden anges inte.
+noDigitsSelected=Siffrorna är inte angivet.
+noNumberSelected=Numret är inte angivet.
+noRecipientSelected=Mottagaren är inte angivet.
+noTextSelected=Texten är inte angivet.
+noAccountSelected=Kontot är inte angivet.
+noKeySelected=Nyckeln är inte angivet.
+noIdentifierSelected=Identifieraren är inte angivet.
+noQueueSelected=Könamnet är inte angivet.
+noConditionSelected=Villkoret är inte angivet.
+noIntervalSelected=Intervallet är inte angivet.
+noContextSelected=Ramen är inte angivet.
+noBoxNumberSelected=Rutan namn anges inte.
+noProjectSelected=Delprojektet är inte angivet.
+noFileSelected=Filnamnet är inte angivet.
+numberOrInvalidOrTimeout=Infoga nummer, jag eller t (kontrollera vita utrymmen).
+numberOrAll=För in nummer eller -.
+numberOrInvalidOrDefault=Sätt x, jag eller -.
+trueOrFalse=Sätt sant eller falskt.
+noGoalSelected=Målet är inte angivet.
+noListSelected=Listan är inte angivet.
+musthave=Måste ha
+outgoingedge=Utgående kant.
+incomingedge=Inkommande kant.
+mailbox=Brevlåda
+intKey=Avbrottstangenten
+speed=Hastighet
+wrongMinDigit=Min siffra måste vara större än 0
+wrongMaxDigit=Max siffran måste vara större än 0
+wrongHiddenDigitsnum=Dolda siffror som måste vara större än eller lika med 0
+hiddendigitsnum=Dolda siffrorna nummer
+hiddendigitspos=Dolda siffrorna läge
+getsecretdigits=GetSecretDigits
+beep=Ljudsignal
+description=Beskrivning
+recordingFormat=Format
+bcc=Dold kopia
+invalidTimeout=Ogiltigt timeoutvärde
+invalidRetry=Ogiltig återförsöksvärdet
+invalidSpeed=Ogiltigt värde
+missingQuery=Frågesträngen saknas
+invalidPriority=Ogiltig prioriteringsvärde
+invalidDelay=Ogiltigt värde för fördröjning
+noAttachmentSelected=Inga tillbehör har valts
+sendFax=SendFax
+attachment_name=Utvalda tillbehör
+choose_attachment=Välj tillbehör
+help_choose_attachment=Format: pdf, tiff eller tif
+help_delay=Tid i minuter att vänta innan du ringer tillbaka kontakt
+noFirstNameSelected=Förnamn är inte angiven
+noPhoneSelected=Telefonen är inte angiven
+editFile=Redigera XML
+priority=Prioritet
+numberOrLettersOrAll=Sätt in siffror, bokstäver eller -.
diff --git a/public/assets/plugins/square/resources/grapheditor_tr.txt b/public/assets/plugins/square/resources/grapheditor_tr.txt
new file mode 100644 (file)
index 0000000..b0b7ed2
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=Düğüm zaten bağlı
+cancel=İptal
+close=Close
+collapse-expand=Çöküş/Genişlet
+containsValidationErrors=Doğrulama içerir hata
+done=Bitti
+doubleClickOrientation=Seçiminizin Değiştirmek Yönü
+error=Hata
+ok=Tamam
+updatingDocument=Belgenin güncellenmesi. Lütfen bekleyin...
+updatingSelection=Güncelleme Seçimi. Lütfen bekleyin...
+about=Yaklaşık
+actualSize=Gerçek Boyutu
+add=Ekle
+addLayer=Add Katman
+addProperty=Ekleme Özelliği
+addToExistingDrawing=Add Mevcut Çizim
+addWaypoint=Rota Noktası Ekle
+advanced=Gelişmiş
+align=Hizalayın
+alignment=Hizalama
+allChangesLost=Tüm değişiklikler silinecek!
+angle=Açı
+apply=Uygula
+arrange=Düzenleyin
+arrow=Ok
+arrows=Oklar
+automatic=Otomatik
+autosave=Autosave (
+autosize=Autosize
+background=Arka plan
+backgroundColor=Arka Plan Rengi
+backgroundImage=Arka Plan Görüntüsü
+basic=Temel
+block=Bloğu
+blockquote=Blockquote
+bold=Kalın
+borderWidth=Borderwidth
+borderColor=Sınır Rengi
+bottom=Alt
+bottomAlign=Alt Hizalayın
+bottomLeft=Sol alt
+bottomRight=Sağ alt
+bulletedList=Madde işaretli liste
+cannotOpenFile=Dosya açılamıyor
+center=Orta
+change=Değiştirme
+changeOrientation=Değiştirme Yönü
+circle=Daire
+classic=Klasik
+clearDefaultStyle=Net Varsayılan Stil
+clearWaypoints=Rota siliniz
+clipart=Küçük resimler
+collapse=Çöktü
+collapseExpand=Çöküş/Genişlet
+collapsible=Katlanabilir
+comic=Çizgi roman
+connect=Bağlayın
+connection=Bağlantı
+connectionPoints=Bağlantı noktaları
+connectionArrows=Bağlantı okları
+constrainProportions=Aksatma Oranları
+copy=Kopyalama
+copyConnect=Kopyalama Bağlayın
+create=Create
+curved=Kıvrımlı
+custom=Özel
+cut=Kesilmiş
+dashed=Kesikli
+decreaseIndent=Girintiyi Azalt
+default=Varsayılan
+delete=Sil
+deleteColumn=Sütun Sil
+deleteRow=Satır silme
+diagram=Şeması
+diamond=Elmas
+diamondThin=Diamond (ince).
+direction=Yön
+distribute=Dağıtmak
+divider=Bölücü
+documentProperties=Belge Özellikleri
+dotted=Kesik
+drawing=Çizim{1}
+drawingEmpty=Çizim boş
+drawingTooLarge=Resim çok büyük.
+duplicate=Yinelenen
+duplicateIt=Duplicate {1}
+east=Doğu
+edit=Düzenle
+editData=Veri Düzenle
+editDiagram=Edit Şeması
+editImage=Resim düzenle
+editLink=Edit Link
+editStyle=Edit Style
+editTooltip=Düzenle Araç ipucu
+enterGroup=Giriş Grubu
+enterValue=Değeri girin
+enterName=Adı girin
+enterPropertyName=Enter Özellik Adı
+entityRelation=Taraf Konumunu
+exitGroup=Çıkış Grubu
+expand=Genişlet
+export=Ihracat
+extras=Ekstralar
+file=Dosya
+fileNotFound=Dosya bulunamadı.
+filename=Dosya adı
+fill=Doldurma
+fillColor=Dolum Renk
+fitPage=Bir Sayfa
+fitPageWidth=Sayfa Genişliği
+fitTwoPages=İki Sayfa
+fitWindow=Camı yerleştiriniz
+flip=Çevirme
+flipH=Flip Yatay
+flipV=Flip Dikey
+font=Yazı Tipi
+fontFamily=Yazı Tipi Ailesi
+fontColor=Yazı tipi rengi
+fontSize=Yazı Tipi Boyutu
+format=Biçimi
+formatPanel=Format Tablosu
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=Biçimlendirilmiş
+formattedText=Biçimlendirilmiş Metin
+general=Genel
+glass=Cam
+global=Küresel
+gradient=Eğim
+gradientColor=Renk
+grid=Izgara
+gridSize=Izgara Boyutu
+group=Grup
+guides=Kılavuzları
+heading=Yön
+height=Yükseklik
+help=Yardım
+hide=Gizle
+hideIt=Hide {1}
+hidden=Gizli
+home=Ev
+horizontal=Yatay
+horizontalFlow=Yatay Akış
+horizontalTree=Yatay Ağaç
+html=HTML
+image=Görüntü
+images=Görüntüler
+import=Alma
+increaseIndent=Girintiyi Artır
+insert=Ek
+insertColumnBefore=Ek Kolon Sol
+insertColumnAfter=Ek Kolon Sağ
+insertHorizontalRule=Ek Yatay Kural
+insertImage=Resim
+insertLink=Link Ekle
+insertRowBefore=Ek Sıra Üzeri
+insertRowAfter=Ek Sıra Altında
+invalidName=Geçersiz ad
+invalidOrMissingFile=Geçersiz veya eksik dosya
+isometric=İzometrik
+italic=Italic
+layers=Katmanlı
+landscape=Yatay
+laneColor=Lanecolor
+layout=Düzen
+left=Sol
+leftAlign=Sol Hizalayın
+leftToRight=Sol - Sağ
+line=Hat
+link=Link
+lineend=Hat Sonu
+lineheight=Satır Yüksekliği
+linestart=Hat Başlat
+linewidth=Linewidth
+loading=Yükleme
+lockUnlock=Kilitleme / Kilit Açma
+manual=Manuel
+middle=Orta
+misc=Diğer
+more=Daha fazla
+moreResults=Daha Fazla Sonuç
+move=Hareket
+moveSelectionTo=Hareket Seçim {1}
+navigation=Seyir sistemi
+new=Yeni
+noColor=Renk yok.
+noFiles=Dosya yok
+noMoreResults=Daha fazla sonuç
+none=Yok
+noResultsFor=Sonuç yok '{1}'
+normal=Normal
+north=Kuzey
+numberedList=Numaralanmış liste
+opacity=Yoğunluğu
+open=Açık
+openArrow=Açık Ok
+openFile=Dosya aç
+openLink=Açık Link
+openSupported=Desteklenen format .XML dosyalarını kaydettiğiniz bu yazılım
+openInNewWindow=Yeni Pencerede Aç
+openInThisWindow=Açık, bu pencere
+options=Seçenekleri
+organic=Organik
+orthogonal=Ortogonal
+outline=Çerçeve
+oval=Oval
+pages=Sayfaları
+pageView=Sayfa Görünümü
+pageScale=Sayfa Ölçeği
+pageSetup=Page Setup
+panTooltip=Alan Sürükleyin Kaydırma
+paperSize=Kağıt Boyutu
+paste=Yapıştır
+pasteHere=Buraya yapıştırın
+pattern=Patern
+perimeter=Çevre
+placeholders=Yer Tutucular
+plusTooltip=Bağlanmak için tıklatın ve kopyala (ctrl için kopyala, değiştirme bağlanmak için tıklatın). Sürükleyerek (ctrl sürükle kopyalamak için).
+portrait=Portre
+position=Konum
+posterPrint=Poster Yazdırma
+preview=Önizleme
+print=Baskı
+radialTree=Radyal Ağacı
+redo=Yinele
+removeFormat=Net Biçimlendirme
+removeFromGroup=Gruptan Kaldır
+removeIt={1}
+removeWaypoint=Rota sökün
+rename=Yeniden Adlandır
+renameIt=Yeniden Adlandır {1}
+replace=Sigortayı değiştiriniz
+replaceIt={1} zaten mevcut. Değiştirmek istiyor musunuz?
+replaceExistingDrawing=Varolan çizim
+reset=Sıfırlama
+resetView=Görünümü Sıfırla
+right=Sağ
+rightAlign=Sağ Hizalayın
+rightToLeft=Sağ - Sol
+rotate=Döndürmek
+rotateTooltip=Döndürmek için tıklatın ve sürükleyin, 90 derece
+rotation=Döndürme
+rounded=Yuvarlak
+save=Kaydet
+saveAs=Kaydet
+saved=Kaydedilen
+scrollbars=Kaydırma çubukları
+search=Arama
+searchShapes=Arama Şekilleri
+selectAll=Tümünü Seç
+selectEdges=Kenarları seçin
+selectFont=Select a Font
+selectNone=Hiçbiri
+selectVertices=Vertices seçeneğini seçin
+setAsDefaultStyle=Varsayılan olarak Stil
+shadow=Gölge
+shape=Şekil
+sharp=Keskin
+sidebarTooltip=Genişletmek için tıklayın. Sürükle ve bırak şekiller, şeması. Vites değiştirmek için tıklatın. Alt için takın ve bağlayın.
+simple=Basit
+simpleArrow=Basit Ok
+size=Boyut
+solid=Katı
+sourceSpacing=Kaynak Aralığı
+south=Güney
+spacing=Aralığı
+straight=Düz
+strokeColor=Çizgi Rengi
+style=Tarzına
+subscript=Subscript
+superscript=Superscript
+table=Masa
+targetSpacing=Hedef Aralığı
+text=Metin
+textAlignment=Metin Hizalama
+textOpacity=Metin yoğunluğu
+toBack=Geri
+toFront=Ön
+tooltips=Araç ipuçları
+top=Üst
+topAlign=Üst Hizalayın
+topLeft=Sol Üst
+topRight=Sağ Üst
+transparent=Şeffaf
+turn=Dönüş
+uml=UML
+underline=Altı çizili
+undo=Geri Al
+ungroup=Ungroup
+url=URL
+untitledLayer=İsimsiz Katman
+vertical=Dikey
+verticalFlow=Dikey Akış
+verticalTree=Dikey Ağacı
+view=Görünüm
+waypoints=Rota Noktaları
+west=Batı
+width=Genişlik
+wordWrap=Sözcük Kaydırma
+writingDirection=Yazma Yönü
+zoom=Zoom
+zoomIn=Yakınlaştırma
+zoomOut=Zoom Out
+label=Etiket
+timeout=Zaman Aşımı (saniye)
+response=Yanıt Süresi
+digit=Maksimum Sayı
+escape=Escape Rakam
+retry=Yeniden dene
+name=Adı
+value=Değer
+entry=Giriş
+start=Başlangıç
+finally=Son olarak
+end=Son
+variable=Değişken
+set=Set
+operation=Çalışması
+math=Matematik
+result=Sonuç
+call_management=Çağrı Yönetimi
+answer=Cevap
+hangup=Bağlantıyı Kes
+dial=Dahili Arama
+ext_dial=Harici Arama
+phone=Telefon
+trunk=Santral
+identifier=Tanımlayıcı
+queue=Kuyruk
+voicemail=Sesli posta
+boxnumber=Kutu Numarası
+playback=Oynatma
+menu=Menü
+saydigits=SayDigits
+digits=Basamak
+saynumber=SayNumber
+number=Numarası
+sayphonetic=SayPhonetic
+escape_digits=Escape Rakam
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=Anahtar
+getdigits=GetDigits
+mindigit=Min Rakam
+maxdigit=Max Rakam
+custom_app=Özel App
+language=Dil
+frequency=Frekans
+integrationServer=Entegrasyon Sunucusu
+database=Veritabanı
+query=Sorgu
+asr=ASR
+sendSMS=SendSMS
+account_id=Hesap
+template_id=Şablon
+to=-
+sms_text=Metin
+sendMail=SendMail
+subject=Konu
+cc=Cc
+threshold=Eşiği
+maxspeech=Maksimum Konuşma
+grammar=Dilbilgisi
+ispeechasr=ISpeechASR
+model=Model
+noop=NoOp
+output=Çıkış
+system=Sistem
+command=Komut
+application=Uygulama
+agi=AGI
+args=Argümanlar
+subproject=SubProject
+goalname=Hedef Adı
+callflow=Callflow
+gotoc=Git
+context=Içerik
+extension=Uzatma
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=Zaman Aralığı
+leftOperand=Sol işlenenine atanamıyor
+condition=Durumunu
+rightOperand=Sağ Belgeleri
+vswitch=Kontaktörü
+recording=Kayıt
+record=Kayıt
+queuename=Kuyruğu Adı
+announceoverride=Geçersiz ilan
+callid=CallID
+agent=Ajan
+queue_event=Olay
+data1=Data1
+data2=Data2
+data3=Data3
+data4=Veri4
+data5=Veri5
+macro=Makro
+stats=İstatistikleri
+queuelog=QueueLog
+goal=Amacı
+callback=Arama
+list=Listesi
+delay=Gecikme
+list_id=Listesi
+opts=Seçenekleri
+queue_id=Kuyruk
+file_id=Dosya
+variable_id=Değişken
+gosub=Gosub
+project_id=Proje
+sip_id=SIP
+trunk_name=Santral
+variable_value=Değişken Değeri
+database_id=Veritabanı
+interval_id=Aralığı
+description_start=Başlangıç açıklama
+publish=Pubblica
+ispeech_asr_language=Dil
+ispeech_tts_language=Dil
+google_tts_language=Dil
+queue_variable=Kuyruk, Değişken
+odbc_id=ODBC bağlantısı
+noVariableSelected=Değişken olarak belirtilmemiştir.
+noTrunkSelected=Santral belirtilmemiştir.
+noAudioSelected=Ses dosyası belirtilmemiş.
+noOperandSelected=Sol işlenenine atanamıyor.
+noDatabaseSelected=Veritabanı olarak belirtilmemiştir.
+noExtensionSelected=Uzatma.
+noCommandSelected=Komut belirtilmiş.
+noApplicationSelected=Uygulama belirtilen
+noRightOperandSelected=Sağ işlenenine atanamıyor.
+noDigitsSelected=Rakam olarak belirtilmemiştir.
+noNumberSelected=Numarası belirtilmemiş.
+noRecipientSelected=Alıcı belirtilmemiş.
+noTextSelected=Metin.
+noAccountSelected=Hesap belirtilmiş.
+noKeySelected=Anahtar mevcut değil.
+noIdentifierSelected=Tanımlayıcı olarak belirtilmemiştir.
+noQueueSelected=Kuyruğu Adı belirtilmemiştir.
+noConditionSelected=Durumu belirtilmemiş.
+noIntervalSelected=Aralığı belirtilmemiş.
+noContextSelected=İçerik olarak belirtilmemiştir.
+noBoxNumberSelected=Kutu Adı belirtilmemiştir.
+noProjectSelected=SubProject belirtilmemiştir.
+noFileSelected=Dosya adı belirtilmemiş.
+numberOrInvalidOrTimeout=Insert number, i veya t (doğrulayın beyaz boşluk).
+numberOrAll=Ek numarası veya -.
+numberOrInvalidOrDefault=Ek x, i veya -.
+trueOrFalse=Insert doğru veya yanlış.
+noGoalSelected=Hedef belirtilmedi.
+noListSelected=Listede belirtilmiş.
+musthave=Gerekir.
+outgoingedge=Giden kenar.
+incomingedge=Gelen kenar.
+mailbox=Posta Kutusu
+intKey=Kesme Anahtarı
+speed=Hız
+wrongMinDigit=Dakika basamağı, daha fazla 0
+wrongMaxDigit=Max Rakam, büyük 0
+wrongHiddenDigitsnum=Gizli Rakam sayısı, 0'dan büyük veya eşit
+hiddendigitsnum=Gizli Basamak Numarası
+hiddendigitspos=Gizli Rakam konumu
+getsecretdigits=GetSecretDigits
+beep=Sesli uyarı
+description=Açıklama
+recordingFormat=Biçimi
+bcc=Gizli
+invalidTimeout=Geçersiz Zaman Aşımı değeri
+invalidRetry=Geçersiz Yeniden değer
+invalidSpeed=Geçersiz değer
+missingQuery=Query string eksik
+invalidPriority=Geçersiz bir Öncelik değeri
+invalidDelay=Geçersiz bir gecikme değeri
+noAttachmentSelected=Ek yok seçili
+sendFax=SendFax
+attachment_name=Seçilen Bağlantı
+choose_attachment=Ek seçin
+help_choose_attachment=Format: pdf,tiff ya da tif
+help_delay=Saat, dakika, bekleyin önce tekrar temas
+noFirstNameSelected=İlk adı belirtilmemiş
+noPhoneSelected=Telefon tanımlı değil
+editFile=Edit XML
+priority=Öncelik
+numberOrLettersOrAll=Ek sayı, harf veya -.
diff --git a/public/assets/plugins/square/resources/grapheditor_zh-CN.txt b/public/assets/plugins/square/resources/grapheditor_zh-CN.txt
new file mode 100644 (file)
index 0000000..1f59690
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=节点已经连接
+cancel=取消
+close=关闭
+collapse-expand=折叠/展开
+containsValidationErrors=包含验证错误
+done=完成
+doubleClickOrientation=双击以更改方向
+error=错误
+ok=“确定” 按钮
+updatingDocument=更新的文档。 请稍候...
+updatingSelection=更新的选项。 请稍候...
+about=关于
+actualSize=实际大小
+add=添加
+addLayer=添加图层
+addProperty=添加属性
+addToExistingDrawing=添加到现有的绘图
+addWaypoint=添加航点
+advanced=高级
+align=对齐
+alignment=对齐
+allChangesLost=所有更改都将会丢失!
+angle=角度
+apply=应用
+arrange=安排
+arrow=箭头
+arrows=箭头
+automatic=自动
+autosave=自动保存功能。
+autosize=自动调整大小
+background=背景资料
+backgroundColor=背景颜色
+backgroundImage=背景图像
+basic=基本的
+block=阻止
+blockquote=尚未创建
+bold=粗体
+borderWidth=Borderwidth
+borderColor=边框颜色。
+bottom=底部
+bottomAlign=底部对齐
+bottomLeft=底部左侧
+bottomRight=右下角
+bulletedList=项目符号列表。
+cannotOpenFile=无法打开文件
+center=中心
+change=更改
+changeOrientation=更改方向
+circle=圆
+classic=经典
+clearDefaultStyle=明确的默认样式。
+clearWaypoints=明确的航点
+clipart=剪贴画。
+collapse=崩溃
+collapseExpand=折叠/展开
+collapsible=可折叠
+comic=漫画
+connect=连接
+connection=连接
+connectionPoints=连接点
+connectionArrows=连接的箭头。
+constrainProportions=保持比例
+copy=复制
+copyConnect=上复制连接
+create=创建
+curved=曲线
+custom=自定义
+cut=切割
+dashed=虚线
+decreaseIndent=减少缩进
+default=默认值
+delete=删除
+deleteColumn=删除列
+deleteRow=删除的行
+diagram=图
+diamond=钻石
+diamondThin=钻石(瘦)
+direction=方向的
+distribute=分发
+divider=分禾器尖
+documentProperties="文档属性"中。
+dotted=带点
+drawing=图{1}
+drawingEmpty=图为空
+drawingTooLarge=图太大
+duplicate=重复
+duplicateIt=重复的{1}
+east=东
+edit=编辑
+editData=编辑数据。
+editDiagram=编辑图表
+editImage=编辑图像
+editLink=编辑链接。
+editStyle=编辑样式
+editTooltip=编辑工具提示
+enterGroup=输入组
+enterValue=输入值。
+enterName=请输入名称。
+enterPropertyName=输入属性的名称
+entityRelation=实体的关系
+exitGroup=退出组
+expand=展开
+export=导出
+extras=附加服务
+file=文件
+fileNotFound=未找到文件
+filename=文件名。
+fill=加油
+fillColor=填充颜色
+fitPage=一页
+fitPageWidth=页面宽度
+fitTwoPages=两个页面
+fitWindow=适合窗口
+flip=翻转
+flipH=水平翻转
+flipV=垂直翻转
+font=字体
+fontFamily=字体系列
+fontColor=字体颜色。
+fontSize=字体大小
+format=格式
+formatPanel=格式化板
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF。
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=格式化
+formattedText=格式化文本。
+general=总的
+glass=玻璃
+global=全球
+gradient=梯度
+gradientColor=彩色
+grid=网格
+gridSize=网格大小
+group=本集团
+guides=指南
+heading=标题
+height=高度
+help=帮助
+hide=隐藏
+hideIt=隐藏{1}
+hidden=隐藏
+home=主页
+horizontal=水平
+horizontalFlow=水平流
+horizontalTree=水平树
+html=HTML
+image=映像
+images=图像
+import=导入
+increaseIndent=增加缩进
+insert=插入
+insertColumnBefore=插入列左
+insertColumnAfter=插入列的右侧
+insertHorizontalRule=插入水平线
+insertImage=插入图像
+insertLink=插入链接
+insertRowBefore=插入上面的行
+insertRowAfter=插入下面的行
+invalidName=无效的名称。
+invalidOrMissingFile=无效或丢失的文件。
+isometric=正等轴测图
+italic=斜体
+layers=图层
+landscape=横向
+laneColor=Lanecolor
+layout=布局
+left=左
+leftAlign=左对齐
+leftToRight=从左到右
+line=行
+link=链接。
+lineend=线的端点
+lineheight=行高
+linestart=行开始
+linewidth=Linewidth
+loading=正在加载
+lockUnlock=锁定和解锁/
+manual=手动
+middle=中东
+misc=Misc
+more=更多
+moreResults=更多的结果。
+move=移动
+moveSelectionTo=将选择移动至{1}
+navigation=导航
+new=新的
+noColor=无颜色
+noFiles=没有任何文件。
+noMoreResults=没有更多的结果。
+none=无
+noResultsFor=没有结果的 “{1}”
+normal=正常的
+north=北
+numberedList=编号的列表。
+opacity=不透明度
+open=打开
+openArrow=打开箭头
+openFile=打开文件
+openLink=打开链接。
+openSupported=支持的格式为. XML 文件中保存的此软件。
+openInNewWindow=在新窗口中打开”。
+openInThisWindow=打开此窗口。
+options=选项。
+organic=有机
+orthogonal=正交结构
+outline=大纲
+oval=椭圆形
+pages=页面
+pageView=页面视图
+pageScale=页面显示比例
+pageSetup=页面设置
+panTooltip=空间拖动滚动
+paperSize=纸张大小
+paste=粘贴
+pasteHere=在此处粘贴
+pattern=模式
+perimeter=周边环境
+placeholders=占位符。
+plusTooltip=单击以连接和克隆(按住 ctrl 键单击要克隆的, 按住 shift 键并单击要连接)。 将其拖动到连接(按住 ctrl 键拖动来克隆)。
+portrait=纵向
+position=位置
+posterPrint=海报打印
+preview=预览
+print=打印
+radialTree=放射状的树
+redo=重做
+removeFormat=清除格式
+removeFromGroup=从组中删除
+removeIt=删除{1}
+removeWaypoint=删除道路点。
+rename=重命名
+renameIt=重命名为{1}
+replace=更换
+replaceIt={1}已存在。 您要替换它吗?
+replaceExistingDrawing=替换现有的绘图
+reset=重置
+resetView=重置视图
+right=右键
+rightAlign=右对齐
+rightToLeft=从右到左
+rotate=旋转
+rotateTooltip=单击并拖动以旋转, 然后单击要打开的 90 度
+rotation=旋转
+rounded=圆角
+save=保存
+saveAs=另存为
+saved=已保存的
+scrollbars=滚动条
+search=搜索
+searchShapes=搜索形状。
+selectAll=选择所有
+selectEdges=选择边缘
+selectFont=选择一种字体。
+selectNone=选择 “无”
+selectVertices=选择顶点
+setAsDefaultStyle=设置为默认样式。
+shadow=阴影
+shape=形状
+sharp=Sharp
+sidebarTooltip=单击以展开。 拖放形状的图标。 按住 Shift 键并单击要更改的选项。 Alt 单击以插入并连接。
+simple=简单
+simpleArrow=简单的箭头
+size=大小
+solid=固体
+sourceSpacing=源间距
+south=南
+spacing=间距
+straight=直通
+strokeColor=线的颜色
+style=样式
+subscript=下标
+superscript=上标
+table=表
+targetSpacing=目标间距
+text=文本
+textAlignment=文本对齐
+textOpacity=文本的不透明度
+toBack=备
+toFront=到前面
+tooltips=“工具提示”。
+top=顶
+topAlign=顶部对齐
+topLeft=左上角的
+topRight=右上方
+transparent=透明
+turn=关闭
+uml=UML
+underline=强调
+undo=撤消
+ungroup=取消分组
+url=URL。
+untitledLayer=未命名层
+vertical=垂直市场
+verticalFlow=垂直流
+verticalTree=垂直的树
+view=查看
+waypoints=航点
+west=西
+width=宽度
+wordWrap=自动换行
+writingDirection=书写方向
+zoom=缩放比例
+zoomIn=缩放图像
+zoomOut=放大
+label=标签
+timeout=超时(秒)
+response=响应超时
+digit=最大位数
+escape=逃出数字
+retry=重试
+name=名称
+value=值
+entry=条目
+start=开始
+finally=最后
+end=结束
+variable=变量
+set=设置
+operation=操作
+math=数学
+result=结果。
+call_management=呼叫管理
+answer=答
+hangup=挂断
+dial=内部拨号
+ext_dial=外拨
+phone=电话
+trunk=中继线
+identifier=标识符
+queue=队列
+voicemail=语音邮件
+boxnumber=箱号
+playback=播放
+menu=菜单
+saydigits=SayDigits
+digits=数字
+saynumber=SayNumber
+number=号码
+sayphonetic=SayPhonetic
+escape_digits=逃出数字
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=密钥
+getdigits=GetDigits
+mindigit=最小位数
+maxdigit=最大位数
+custom_app=自定义应用程序
+language=语言
+frequency=频率
+integrationServer=整合服务器
+database=数据库
+query=查询
+asr=ASR
+sendSMS=SendSMS
+account_id=帐户
+template_id=模板。
+to=到
+sms_text=文本
+sendMail=SendMail
+subject=主题
+cc=抄送
+threshold=阈值
+maxspeech=最大语音
+grammar=语法错误
+ispeechasr=ISpeechASR
+model=型号
+noop=NoOp
+output=输出
+system=系统
+command=命令
+application=应用程序
+agi=阿希
+args=参数
+subproject=子项目
+goalname=目标名称
+callflow=调用流
+gotoc=Goto
+context=上下文
+extension=扩展
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=时间间隔
+leftOperand=左边的操作数
+condition=条件
+rightOperand=右操作数
+vswitch=开关
+recording=录制
+record=记录
+queuename=队列的名称。
+announceoverride=宣布覆盖
+callid=CallID
+agent=座席
+queue_event=事件
+data1=数据1
+data2=数据2
+data3=数据3
+data4=数据4
+data5=数据5
+macro=宏
+stats=统计数据
+queuelog=队列
+goal=目标
+callback=回叫。
+list=列表
+delay=延迟时间
+list_id=列表
+opts=选项。
+queue_id=队列
+file_id=文件
+variable_id=变量
+gosub=Gosub
+project_id=项目
+sip_id=SIP
+trunk_name=中继线
+variable_value=变量值。
+database_id=数据库
+interval_id=时间间隔
+description_start=开始说明。
+publish=1983 年至 1984 年
+ispeech_asr_language=语言
+ispeech_tts_language=语言
+google_tts_language=语言
+queue_variable=从队列中的变量
+odbc_id=ODBC 连接
+noVariableSelected=变量未被指定。
+noTrunkSelected=中继线未指定。
+noAudioSelected=音频文件中未指定。
+noOperandSelected=左边的操作数是没有指定。
+noDatabaseSelected=数据库未被指定。
+noExtensionSelected=扩展未指定的。
+noCommandSelected=命令不指定。
+noApplicationSelected=应用程序未指定
+noRightOperandSelected=右操作数不指定。
+noDigitsSelected=位未被指定。
+noNumberSelected=号码是没有指定。
+noRecipientSelected=收件人未指定。
+noTextSelected=文本没有规定。
+noAccountSelected=帐户未被指定。
+noKeySelected=未指定键。
+noIdentifierSelected=标识符未被指定。
+noQueueSelected=队列名称是未指定。
+noConditionSelected=未指定条件。
+noIntervalSelected=时间间隔内未指定。
+noContextSelected=没有指定环境。
+noBoxNumberSelected="框中的名称是不被指明。
+noProjectSelected=子项目未被指定。
+noFileSelected=未指定文件名。
+numberOrInvalidOrTimeout=插入号码、i 或 t(空格)。
+numberOrAll=插入编号或-。
+numberOrInvalidOrDefault=插入 x、i 或-。
+trueOrFalse=插入 “真” 或 “假”。
+noGoalSelected=目标是没有指定。
+noListSelected=列表中没有规定。
+musthave=必须有
+outgoingedge=传出的边。
+incomingedge=传入的边缘。
+mailbox=邮箱
+intKey=“中断” 按键
+speed=速度
+wrongMinDigit=最小位数必须大于 0
+wrongMaxDigit=最大位数必须大于 0
+wrongHiddenDigitsnum=隐藏的数字必须大于或等于 0
+hiddendigitsnum=隐藏的数字编号
+hiddendigitspos=隐藏的数字的位置。
+getsecretdigits=GetSecretDigits
+beep=蜂鸣音
+description=描述
+recordingFormat=格式
+bcc=密件抄送
+invalidTimeout=无效的超时值。
+invalidRetry=重试值无效
+invalidSpeed=无效的速度值。
+missingQuery=查询字符串是缺失
+invalidPriority=无效的优先级值。
+invalidDelay=无效的延迟值。
+noAttachmentSelected=没有选定的附件
+sendFax=SendFax
+attachment_name=所选附件
+choose_attachment=选择附件
+help_choose_attachment=格式: pdf、tiff 或 tif
+help_delay=时间, 以分钟为单位, 之前的等待回叫联系
+noFirstNameSelected=第一名是未指定
+noPhoneSelected=电话未指定
+editFile=编辑 XML
+priority=优先级
+numberOrLettersOrAll=插入数字、字母或-。
diff --git a/public/assets/plugins/square/resources/grapheditor_zh-TW.txt b/public/assets/plugins/square/resources/grapheditor_zh-TW.txt
new file mode 100644 (file)
index 0000000..f2345fc
--- /dev/null
@@ -0,0 +1,491 @@
+alreadyConnected=節點已連線
+cancel=取消
+close=關閉
+collapse-expand=收合 / 展開
+containsValidationErrors=包含驗證錯誤
+done=已完成
+doubleClickOrientation=雙點選可變更列印方向
+error=錯誤
+ok=OK ( 確定 )
+updatingDocument=更新文件。 請稍候 ...
+updatingSelection=更新選項。 請稍候 ...
+about=關於
+actualSize=實際大小
+add=新增
+addLayer=新增圖層
+addProperty=新增內容
+addToExistingDrawing=新增至現有繪圖
+addWaypoint=新增航點
+advanced=進階
+align=對齊
+alignment=校準
+allChangesLost=所有的變更都會遺失 !
+angle=角度
+apply=套用
+arrange=排列
+arrow=方向
+arrows=箭頭
+automatic=自動
+autosave=自動儲存
+autosize=自動調整
+background=背景
+backgroundColor=背景色彩
+backgroundImage=背景影像
+basic=基本
+block=方塊
+blockquote=Blockquote
+bold=粗體
+borderWidth=Borderwidth
+borderColor=邊界顏色
+bottom=底部
+bottomAlign=底部對齊
+bottomLeft=左下方
+bottomRight=右
+bulletedList=項目符號清單
+cannotOpenFile=無法開啟檔案
+center=中央監視站
+change=變更
+changeOrientation=變更列印方向
+circle=圓
+classic=傳統
+clearDefaultStyle=清除預設樣式
+clearWaypoints=清除航點
+clipart=美工圖案
+collapse=收合
+collapseExpand=收合 / 展開
+collapsible=可摺疊
+comic=漫畫
+connect=連線
+connection=連線
+connectionPoints=連接點
+connectionArrows=連線箭頭
+constrainProportions=限制比例
+copy=複製
+copyConnect=複製連線
+create=建立
+curved=弧型
+custom=自訂
+cut=裁切
+dashed=虛線
+decreaseIndent=減少縮排
+default=預設值
+delete=刪除
+deleteColumn=刪除欄
+deleteRow=刪除列
+diagram=圖表
+diamond=鑽石
+diamondThin=鑽石 ( 超薄 )
+direction=方向
+distribute=發佈
+divider=分配器
+documentProperties=文件內容
+dotted=點
+drawing=繪圖 {1}
+drawingEmpty=圖為空
+drawingTooLarge=圖太大
+duplicate=重複
+duplicateIt=複製 { 1 }
+east=亞洲、中東
+edit=編輯
+editData=編輯資料
+editDiagram=編輯圖示
+editImage=編輯影像
+editLink=編輯連結
+editStyle=編輯樣式
+editTooltip=編輯工具提示
+enterGroup=輸入群組
+enterValue=輸入值
+enterName=輸入名稱
+enterPropertyName=輸入內容名稱
+entityRelation=實體關係
+exitGroup=離開群組
+expand=展開
+export=匯出
+extras=額外功能
+file=檔案
+fileNotFound=找不到檔案
+filename=檔案名稱
+fill=填裝
+fillColor=填滿色彩
+fitPage=第一頁
+fitPageWidth=頁面寬度
+fitTwoPages=兩個頁面
+fitWindow=配合視窗
+flip=水平翻轉
+flipH=水平翻轉
+flipV=垂直翻轉
+font=字型
+fontFamily=字型系列
+fontColor=字型色彩
+fontSize=字型大小
+format=格式化
+formatPanel=格式化面板
+formatPdf=PDF
+formatPng=PNG
+formatGif=GIF 檔案
+formatJpg=JPEG
+formatSvg=SVG
+formatXml=XML
+formatted=格式化
+formattedText=格式化文字
+general=通用
+glass=玻璃
+global=全球
+gradient=梯度
+gradientColor=彩色
+grid=網格
+gridSize=網格大小
+group=群組
+guides=指南
+heading=標題
+height=高度
+help=協助
+hide=隱藏
+hideIt=隱藏 { 1 }
+hidden=隱藏
+home=首頁
+horizontal=水平
+horizontalFlow=水平流
+horizontalTree=水平樹狀結構
+html=HTML
+image=影像
+images=影像
+import=匯入
+increaseIndent=增加縮排
+insert=插入
+insertColumnBefore=插入欄位左側
+insertColumnAfter=將欄位用滑鼠右鍵
+insertHorizontalRule=插入水平規則
+insertImage=插入影像
+insertLink=插入鏈結
+insertRowBefore=插入上方列
+insertRowAfter=插入下方列
+invalidName=無效的名稱
+invalidOrMissingFile=無效或遺失的檔案
+isometric=等角視圖
+italic=斜體
+layers=層級
+landscape=橫向顯示
+laneColor=Lanecolor
+layout=版面配置
+left=左
+leftAlign=左側對齊
+leftToRight=由左至右
+line=線路
+link=連結
+lineend=行結束
+lineheight=行高度
+linestart=行開始
+linewidth=Linewidth
+loading=正在載入
+lockUnlock=鎖定 / 解除鎖定
+manual=手動
+middle=中間名
+misc=雜項
+more=更多資訊
+moreResults=更多的成果
+move=移動
+moveSelectionTo=將選項移至 { 1 }
+navigation=導覽
+new=新增
+noColor=無色彩
+noFiles=沒有檔案
+noMoreResults=沒有更多的成果
+none=「無」
+noResultsFor=沒有結果的 '{1}'
+normal=正常
+north=北美
+numberedList=編號清單
+opacity=不透明度
+open=開啟
+openArrow=開啟方向
+openFile=開啟檔案
+openLink=開啟連結
+openSupported=支援的格式是 . XML 檔案儲存於此軟體
+openInNewWindow=在新視窗中開啟
+openInThisWindow=開啟此視窗
+options=選項
+organic=有機
+orthogonal=正交橫斷面
+outline=大綱
+oval=橢圓形
+pages=網頁
+pageView=頁面檢視
+pageScale=頁面縮放比例
+pageSetup=頁面設定
+panTooltip=空間拖曳可捲動
+paperSize=紙張大小
+paste=貼上
+pasteHere=在這裡貼上
+pattern=模式
+perimeter=周邊
+placeholders=預留位置
+plusTooltip=按一下「連線與複製 ( ctrl 鍵按一下要複製、按住 shift 鍵按一下「連線」。 拖曳的方式來連線 ( ctrl 拖曳的方式來複製 ) 。
+portrait=縱向模式
+position=位置
+posterPrint=海報列印
+preview=預覽列印
+print=列印
+radialTree=徑向樹狀結構
+redo=取消復原
+removeFormat=清除格式
+removeFromGroup=從群組中移除
+removeIt=移除 { 1 }
+removeWaypoint=移除航點
+rename=重新命名
+renameIt=重新命名為 { 1 }
+replace=更換
+replaceIt={ 1 } 已存在。 您要取代它嗎 ?
+replaceExistingDrawing=取代現有繪圖
+reset=重設
+resetView=重設檢視
+right=以滑鼠右鍵
+rightAlign=右側對齊
+rightToLeft=從右到左
+rotate=旋轉
+rotateTooltip=按一下並拖曳可旋轉 , 按一下以開啟 90 度
+rotation=旋轉
+rounded=四捨五入
+save=儲存
+saveAs=「另存新檔」
+saved=已儲存
+scrollbars=捲軸
+search=搜尋
+searchShapes=搜尋形狀
+selectAll=全部選取
+selectEdges=選擇邊緣
+selectFont=選取字型
+selectNone=選取「無」
+selectVertices=選取之多邊形
+setAsDefaultStyle=設定為預設樣式
+shadow=陰影複製
+shape=形狀
+sharp=清晰
+sidebarTooltip=按一下以展開。 拖放式形狀的圖示。 按住 Shift 鍵按一下要變更選擇。 Alt + 按一下要插入和連線。
+simple=簡單
+simpleArrow=簡單方向
+size=大小
+solid=固態硬碟
+sourceSpacing=來源間距
+south=南
+spacing=間距
+straight=直接起腳跳投
+strokeColor=線的顏色
+style=樣式
+subscript=下標
+superscript=上標
+table=資料表
+targetSpacing=目標間距
+text=文字
+textAlignment=文字對齊
+textOpacity=文字不透明度
+toBack=備
+toFront=到最上層
+tooltips=工具提示
+top=頂部
+topAlign=頂端對齊
+topLeft=左
+topRight=上以滑鼠右鍵
+transparent=透明
+turn=開啟電源
+uml=UML
+underline=底線
+undo=復原
+ungroup=取消群組
+url=URL
+untitledLayer=無標題層級
+vertical=垂直
+verticalFlow=垂直流量
+verticalTree=垂直樹狀結構
+view=檢視
+waypoints=航點
+west=西
+width=寬度
+wordWrap=自動換行
+writingDirection=書寫方向
+zoom=縮放
+zoomIn=放大
+zoomOut=縮小
+label=標籤
+timeout=逾時 ( 秒 )
+response=回應逾時
+digit=最大位數
+escape=按下 Esc 鍵數字
+retry=再試一次
+name=名稱
+value=值
+entry=入門
+start=開始
+finally=最後
+end=結束
+variable=變數
+set=設定
+operation=操作
+math=數學
+result=結果
+call_management=通話管理
+answer=接聽來電
+hangup=掛斷
+dial=內部撥出
+ext_dial=外接式撥號
+phone=電話
+trunk=中繼線
+identifier=識別碼
+queue=佇列
+voicemail=語音信箱
+boxnumber=方塊編號
+playback=播放留言
+menu=功能表
+saydigits=SayDigits
+digits=數字
+saynumber=SayNumber
+number=號碼
+sayphonetic=SayPhonetic
+escape_digits=按下 Esc 鍵數字
+tts=GoogleTTS
+ispeechtts=ISpeechTTS
+key=金鑰
+getdigits=GetDigits
+mindigit=分鐘數字
+maxdigit=最大位數
+custom_app=自訂應用程式
+language=語言
+frequency=頻率
+integrationServer=整合伺服器
+database=資料庫
+query=查詢
+asr=ASR
+sendSMS=SendSMS
+account_id=帳號
+template_id=範本
+to=至
+sms_text=文字
+sendMail=SendMail
+subject=主旨
+cc=副本抄送
+threshold=臨界值
+maxspeech=最大通話
+grammar=文法錯誤
+ispeechasr=ISpeechASR
+model=型號
+noop=無操作
+output=輸出
+system=系統
+command=”命令
+application=應用程式
+agi=AGI
+args=引數
+subproject=SubProject
+goalname=目標名稱
+callflow=Callflow
+gotoc=「跳到斷線」
+context=內容
+extension=分機號碼
+gotoif=GotoIf
+gotoiftime=GotoIfTime
+gotoifmultitime=GotoIfMultiTime
+interval=時間間隔
+leftOperand=左運算元
+condition=狀況
+rightOperand=右運算元
+vswitch=切換器
+recording=錄影
+record=記錄
+queuename=佇列名稱
+announceoverride=宣佈會覆寫
+callid=CallID
+agent=值機員
+queue_event=事件
+data1=資料 1
+data2=資料 2
+data3=資料 3
+data4=資料 4
+data5=資料每週 5 天
+macro=巨集
+stats=統計資料
+queuelog=QueueLog
+goal=目標
+callback=回撥
+list=清單
+delay=延遲
+list_id=清單
+opts=選項
+queue_id=佇列
+file_id=檔案
+variable_id=變數
+gosub=Gosub
+project_id=專案
+sip_id=SIP
+trunk_name=中繼線
+variable_value=變數值
+database_id=資料庫
+interval_id=時間間隔
+description_start=開始說明
+publish=Pubblica
+ispeech_asr_language=語言
+ispeech_tts_language=語言
+google_tts_language=語言
+queue_variable=佇列從變數
+odbc_id=ODBC 連線
+noVariableSelected=變數是未指定。
+noTrunkSelected=主幹是未指定。
+noAudioSelected=音效檔案未指定。
+noOperandSelected=左運算元為未指定。
+noDatabaseSelected=資料庫中沒有指定。
+noExtensionSelected=名為未指定。
+noCommandSelected=指令是未指定。
+noApplicationSelected=應用程式沒有指定
+noRightOperandSelected=右運算元為未指定。
+noDigitsSelected=數字是未指定。
+noNumberSelected=號碼為未指定。
+noRecipientSelected=收件者為未指定。
+noTextSelected=文字是未指定。
+noAccountSelected=帳戶未指定。
+noKeySelected=主要是未指定。
+noIdentifierSelected=識別碼為未指定。
+noQueueSelected=佇列名稱是未指定。
+noConditionSelected=狀況未指定。
+noIntervalSelected=間隔為未指定。
+noContextSelected=內容是未指定。
+noBoxNumberSelected=方塊名稱為未指定。
+noProjectSelected=SubProject 未指定。
+noFileSelected=檔案名稱為未指定。
+numberOrInvalidOrTimeout=插入電話號碼、或 t ( 驗證白色空格 ) 。
+numberOrAll=插入電話號碼或 - 。
+numberOrInvalidOrDefault=插入 x 、 i 或是 - 。
+trueOrFalse=插入 True 或 False 。
+noGoalSelected=目標是為未指定。
+noListSelected=清單中沒有指定。
+musthave=必須有
+outgoingedge=外緣。
+incomingedge=收邊。
+mailbox=信箱
+intKey=岔斷金鑰
+speed=速度
+wrongMinDigit=最小位數必須大於 0
+wrongMaxDigit=最大位數必須大於 0
+wrongHiddenDigitsnum=隱藏數字號碼必須大於或等於 0
+hiddendigitsnum=隱藏數字編號
+hiddendigitspos=隱藏數字位置
+getsecretdigits=GetSecretDigits
+beep=嗶嗶聲
+description=說明
+recordingFormat=格式化
+bcc=密件副本
+invalidTimeout=無效的逾時的值
+invalidRetry=無效的「重試」值
+invalidSpeed=無效的速度值
+missingQuery=查詢字串就會遺失
+invalidPriority=無效的優先順序值
+invalidDelay=無效的延遲值
+noAttachmentSelected=沒有附件已選取
+sendFax=SendFax
+attachment_name=選取的附件
+choose_attachment=選擇配件
+help_choose_attachment=格式 : PDF 、 TIFF 或 tif
+help_delay=時間 ( 以分鐘為單位 ) 請稍候再撥備的連絡人
+noFirstNameSelected=名字沒有指定
+noPhoneSelected=電話未指定
+editFile=編輯 XML
+priority=優先順序
+numberOrLettersOrAll=插入數字、字母或是 - 。
diff --git a/public/assets/plugins/square/resources/help.html b/public/assets/plugins/square/resources/help.html
new file mode 100644 (file)
index 0000000..c32f921
--- /dev/null
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <title>Graph Editor Help</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <link rel="stylesheet" type="text/css" href="../styles/help.css">
+</head>
+
+<body>
+    <h1>Graph Editor Help</h1>
+    <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores
+        et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/public/assets/plugins/square/resources/help_de.html b/public/assets/plugins/square/resources/help_de.html
new file mode 100644 (file)
index 0000000..322163b
--- /dev/null
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+    <title>Graph Editor Hilfe</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    <link rel="stylesheet" type="text/css" href="../styles/help.css">
+</head>
+
+<body>
+    <h1>Graph Editor Hilfe</h1>
+    <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea
+        takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores
+        et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/public/assets/plugins/square/stencils/call_management/answer_128x128.png b/public/assets/plugins/square/stencils/call_management/answer_128x128.png
new file mode 100644 (file)
index 0000000..dba0894
Binary files /dev/null and b/public/assets/plugins/square/stencils/call_management/answer_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/call_management/callback_128x128.png b/public/assets/plugins/square/stencils/call_management/callback_128x128.png
new file mode 100644 (file)
index 0000000..082379a
Binary files /dev/null and b/public/assets/plugins/square/stencils/call_management/callback_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/call_management/dial_128x128.png b/public/assets/plugins/square/stencils/call_management/dial_128x128.png
new file mode 100644 (file)
index 0000000..6ccafca
Binary files /dev/null and b/public/assets/plugins/square/stencils/call_management/dial_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/call_management/ext_dial_128x128.png b/public/assets/plugins/square/stencils/call_management/ext_dial_128x128.png
new file mode 100644 (file)
index 0000000..228d049
Binary files /dev/null and b/public/assets/plugins/square/stencils/call_management/ext_dial_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/call_management/hangup_128x128.png b/public/assets/plugins/square/stencils/call_management/hangup_128x128.png
new file mode 100644 (file)
index 0000000..a08f547
Binary files /dev/null and b/public/assets/plugins/square/stencils/call_management/hangup_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/call_management/queue_128x128.png b/public/assets/plugins/square/stencils/call_management/queue_128x128.png
new file mode 100644 (file)
index 0000000..7146666
Binary files /dev/null and b/public/assets/plugins/square/stencils/call_management/queue_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/call_management/voicemail_128x128.png b/public/assets/plugins/square/stencils/call_management/voicemail_128x128.png
new file mode 100644 (file)
index 0000000..10a67a7
Binary files /dev/null and b/public/assets/plugins/square/stencils/call_management/voicemail_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/callflow/gotoc_128x128.png b/public/assets/plugins/square/stencils/callflow/gotoc_128x128.png
new file mode 100644 (file)
index 0000000..c51512d
Binary files /dev/null and b/public/assets/plugins/square/stencils/callflow/gotoc_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/callflow/gotoif_128x128.png b/public/assets/plugins/square/stencils/callflow/gotoif_128x128.png
new file mode 100644 (file)
index 0000000..5fad88f
Binary files /dev/null and b/public/assets/plugins/square/stencils/callflow/gotoif_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/callflow/gotoifmultitime_128x128.png b/public/assets/plugins/square/stencils/callflow/gotoifmultitime_128x128.png
new file mode 100644 (file)
index 0000000..49c0794
Binary files /dev/null and b/public/assets/plugins/square/stencils/callflow/gotoifmultitime_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/callflow/gotoiftime_128x128.png b/public/assets/plugins/square/stencils/callflow/gotoiftime_128x128.png
new file mode 100644 (file)
index 0000000..b91b5b6
Binary files /dev/null and b/public/assets/plugins/square/stencils/callflow/gotoiftime_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/callflow/vswitch_128x128.png b/public/assets/plugins/square/stencils/callflow/vswitch_128x128.png
new file mode 100644 (file)
index 0000000..b2379c6
Binary files /dev/null and b/public/assets/plugins/square/stencils/callflow/vswitch_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/entry/end_128x128.png b/public/assets/plugins/square/stencils/entry/end_128x128.png
new file mode 100644 (file)
index 0000000..2847e9d
Binary files /dev/null and b/public/assets/plugins/square/stencils/entry/end_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/entry/finally_128x128.png b/public/assets/plugins/square/stencils/entry/finally_128x128.png
new file mode 100644 (file)
index 0000000..85beff1
Binary files /dev/null and b/public/assets/plugins/square/stencils/entry/finally_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/entry/start_128x128.png b/public/assets/plugins/square/stencils/entry/start_128x128.png
new file mode 100644 (file)
index 0000000..b319c70
Binary files /dev/null and b/public/assets/plugins/square/stencils/entry/start_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/general.xml b/public/assets/plugins/square/stencils/general.xml
new file mode 100644 (file)
index 0000000..137e5f5
--- /dev/null
@@ -0,0 +1,58 @@
+<shapes>
+<shape name="and" w="50" strokewidth="inherit">
+       <background>
+               <path>
+                       <move x="0" y="0"/>
+                       <line x="50" y="50"/>
+                       <line x="0" y="100"/>
+                       <close/>
+               </path>
+       </background>
+       <foreground>
+               <fillstroke/>
+       </foreground>
+</shape>
+<shape name="or" strokewidth="inherit">
+       <connections>
+               <constraint x="0" y="0.25" perimeter="0"/>
+               <constraint x="0" y="0.5" perimeter="0"/>
+               <constraint x="0" y="0.75" perimeter="0"/>
+               <constraint x="1" y="0.5" perimeter="0"/>
+               <constraint x="0.7" y="0.1" perimeter="0"/>
+               <constraint x="0.7" y="0.9" perimeter="0"/>
+       </connections>
+       <background>
+               <path>
+                       <move x="0" y="0"/>
+                       <quad x1="100" y1="0" x2="100" y2="50"/>
+                       <quad x1="100" y1="100" x2="0" y2="100"/>
+                       <close/>
+               </path>
+       </background>
+       <foreground>
+               <fillstroke/>
+       </foreground>
+</shape>
+<shape name="xor" strokewidth="inherit">
+       <connections>
+               <constraint x="0.175" y="0.25" perimeter="0"/>
+               <constraint x="0.25" y="0.5" perimeter="0"/>
+               <constraint x="0.175" y="0.75" perimeter="0"/>
+               <constraint x="1" y="0.5" perimeter="0"/>
+               <constraint x="0.7" y="0.1" perimeter="0"/>
+               <constraint x="0.7" y="0.9" perimeter="0"/>
+       </connections>
+       <background>
+               <path>
+                       <move x="0" y="0"/>
+                       <quad x1="100" y1="0" x2="100" y2="50"/>
+                       <quad x1="100" y1="100" x2="0" y2="100"/>
+                       <quad x1="50" y1="50" x2="0" y2="0"/>
+                       <close/>
+               </path>
+       </background>
+       <foreground>
+               <fillstroke/>
+       </foreground>
+</shape>
+</shapes>
diff --git a/public/assets/plugins/square/stencils/general/agi_128x128.png b/public/assets/plugins/square/stencils/general/agi_128x128.png
new file mode 100644 (file)
index 0000000..c9af63f
Binary files /dev/null and b/public/assets/plugins/square/stencils/general/agi_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/general/custom_app_128x128.png b/public/assets/plugins/square/stencils/general/custom_app_128x128.png
new file mode 100644 (file)
index 0000000..5fed7d3
Binary files /dev/null and b/public/assets/plugins/square/stencils/general/custom_app_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/general/noop_128x128.png b/public/assets/plugins/square/stencils/general/noop_128x128.png
new file mode 100644 (file)
index 0000000..a743389
Binary files /dev/null and b/public/assets/plugins/square/stencils/general/noop_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/general/subproject_128x128.png b/public/assets/plugins/square/stencils/general/subproject_128x128.png
new file mode 100644 (file)
index 0000000..2121d75
Binary files /dev/null and b/public/assets/plugins/square/stencils/general/subproject_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/general/system_128x128.png b/public/assets/plugins/square/stencils/general/system_128x128.png
new file mode 100644 (file)
index 0000000..cadc611
Binary files /dev/null and b/public/assets/plugins/square/stencils/general/system_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/integration_server/asr_128x128.png b/public/assets/plugins/square/stencils/integration_server/asr_128x128.png
new file mode 100644 (file)
index 0000000..fe44092
Binary files /dev/null and b/public/assets/plugins/square/stencils/integration_server/asr_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/integration_server/database_128x128.png b/public/assets/plugins/square/stencils/integration_server/database_128x128.png
new file mode 100644 (file)
index 0000000..e7fda19
Binary files /dev/null and b/public/assets/plugins/square/stencils/integration_server/database_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/integration_server/ispeechasr_128x128.png b/public/assets/plugins/square/stencils/integration_server/ispeechasr_128x128.png
new file mode 100644 (file)
index 0000000..2f2406c
Binary files /dev/null and b/public/assets/plugins/square/stencils/integration_server/ispeechasr_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/integration_server/sendFax_128x128.png b/public/assets/plugins/square/stencils/integration_server/sendFax_128x128.png
new file mode 100644 (file)
index 0000000..90ad46f
Binary files /dev/null and b/public/assets/plugins/square/stencils/integration_server/sendFax_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/integration_server/sendMail_128x128.png b/public/assets/plugins/square/stencils/integration_server/sendMail_128x128.png
new file mode 100644 (file)
index 0000000..d0c4baa
Binary files /dev/null and b/public/assets/plugins/square/stencils/integration_server/sendMail_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/integration_server/sendSMS_128x128.png b/public/assets/plugins/square/stencils/integration_server/sendSMS_128x128.png
new file mode 100644 (file)
index 0000000..ba70224
Binary files /dev/null and b/public/assets/plugins/square/stencils/integration_server/sendSMS_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/playback/background_128x128.png b/public/assets/plugins/square/stencils/playback/background_128x128.png
new file mode 100644 (file)
index 0000000..ab99232
Binary files /dev/null and b/public/assets/plugins/square/stencils/playback/background_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/playback/getdigits_128x128.png b/public/assets/plugins/square/stencils/playback/getdigits_128x128.png
new file mode 100644 (file)
index 0000000..ac1176a
Binary files /dev/null and b/public/assets/plugins/square/stencils/playback/getdigits_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/playback/getsecretdigits_128x128.png b/public/assets/plugins/square/stencils/playback/getsecretdigits_128x128.png
new file mode 100644 (file)
index 0000000..f9e0daa
Binary files /dev/null and b/public/assets/plugins/square/stencils/playback/getsecretdigits_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/playback/ispeechtts_128x128.png b/public/assets/plugins/square/stencils/playback/ispeechtts_128x128.png
new file mode 100644 (file)
index 0000000..d785d80
Binary files /dev/null and b/public/assets/plugins/square/stencils/playback/ispeechtts_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/playback/menu_128x128.png b/public/assets/plugins/square/stencils/playback/menu_128x128.png
new file mode 100644 (file)
index 0000000..1f6fbb0
Binary files /dev/null and b/public/assets/plugins/square/stencils/playback/menu_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/playback/playback_128x128.png b/public/assets/plugins/square/stencils/playback/playback_128x128.png
new file mode 100644 (file)
index 0000000..3eb62f7
Binary files /dev/null and b/public/assets/plugins/square/stencils/playback/playback_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/playback/saydigits_128x128.png b/public/assets/plugins/square/stencils/playback/saydigits_128x128.png
new file mode 100644 (file)
index 0000000..3b7d945
Binary files /dev/null and b/public/assets/plugins/square/stencils/playback/saydigits_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/playback/saynumber_128x128.png b/public/assets/plugins/square/stencils/playback/saynumber_128x128.png
new file mode 100644 (file)
index 0000000..aadeeac
Binary files /dev/null and b/public/assets/plugins/square/stencils/playback/saynumber_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/playback/sayphonetic_128x128.png b/public/assets/plugins/square/stencils/playback/sayphonetic_128x128.png
new file mode 100644 (file)
index 0000000..ed8ef20
Binary files /dev/null and b/public/assets/plugins/square/stencils/playback/sayphonetic_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/playback/tts_128x128.png b/public/assets/plugins/square/stencils/playback/tts_128x128.png
new file mode 100644 (file)
index 0000000..b28a2f2
Binary files /dev/null and b/public/assets/plugins/square/stencils/playback/tts_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/recording/record_128x128.png b/public/assets/plugins/square/stencils/recording/record_128x128.png
new file mode 100644 (file)
index 0000000..80011e2
Binary files /dev/null and b/public/assets/plugins/square/stencils/recording/record_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/stats/goal_128x128.png b/public/assets/plugins/square/stencils/stats/goal_128x128.png
new file mode 100644 (file)
index 0000000..bbce889
Binary files /dev/null and b/public/assets/plugins/square/stencils/stats/goal_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/stats/queuelog_128x128.png b/public/assets/plugins/square/stencils/stats/queuelog_128x128.png
new file mode 100644 (file)
index 0000000..33f805a
Binary files /dev/null and b/public/assets/plugins/square/stencils/stats/queuelog_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/variable/math_128x128.png b/public/assets/plugins/square/stencils/variable/math_128x128.png
new file mode 100644 (file)
index 0000000..1cb6f90
Binary files /dev/null and b/public/assets/plugins/square/stencils/variable/math_128x128.png differ
diff --git a/public/assets/plugins/square/stencils/variable/set_128x128.png b/public/assets/plugins/square/stencils/variable/set_128x128.png
new file mode 100644 (file)
index 0000000..104d75a
Binary files /dev/null and b/public/assets/plugins/square/stencils/variable/set_128x128.png differ
diff --git a/public/assets/plugins/square/styles/default.xml b/public/assets/plugins/square/styles/default.xml
new file mode 100644 (file)
index 0000000..73a8e84
--- /dev/null
@@ -0,0 +1,23 @@
+<mxStylesheet>
+       <add as="image">
+               <add as="shape" value="image"/>
+               <add as="labelBackgroundColor" value="white"/>
+               <add as="verticalAlign" value="top"/>
+               <add as="verticalLabelPosition" value="bottom"/>
+       </add>
+       <add as="defaultEdge">
+               <add as="shape" value="connector"/>
+               <add as="labelBackgroundColor" value="#ffffff"/>
+               <add as="endArrow" value="classic"/>
+               <add as="fontSize" value="11"/>
+               <add as="fontFamily" value="Helvetica"/>
+               <add as="align" value="center"/>
+               <add as="verticalAlign" value="middle"/>
+               <add as="labelBackgroundColor" value="#ffffff"/>
+               <add as="rounded" value="1"/>
+               <add as="strokeColor" value="#1B78C8"/>
+       <add as="strokeWidth" value="1"/>
+               <add as="fontColor" value="#774400"/>
+               <add as="edgeStyle" value="elbowEdgeStyle"/>
+  </add>
+</mxStylesheet>
diff --git a/public/assets/plugins/square/styles/down.gif b/public/assets/plugins/square/styles/down.gif
new file mode 100644 (file)
index 0000000..f6c47ca
Binary files /dev/null and b/public/assets/plugins/square/styles/down.gif differ
diff --git a/public/assets/plugins/square/styles/sprites.png b/public/assets/plugins/square/styles/sprites.png
new file mode 100644 (file)
index 0000000..31f1786
Binary files /dev/null and b/public/assets/plugins/square/styles/sprites.png differ
diff --git a/public/assets/plugins/square/styles/thumb_horz.png b/public/assets/plugins/square/styles/thumb_horz.png
new file mode 100644 (file)
index 0000000..f2896f5
Binary files /dev/null and b/public/assets/plugins/square/styles/thumb_horz.png differ
diff --git a/public/assets/plugins/square/styles/thumb_vertical.png b/public/assets/plugins/square/styles/thumb_vertical.png
new file mode 100644 (file)
index 0000000..e0a22e0
Binary files /dev/null and b/public/assets/plugins/square/styles/thumb_vertical.png differ
diff --git a/public/assets/plugins/square/styles/up.gif b/public/assets/plugins/square/styles/up.gif
new file mode 100644 (file)
index 0000000..1665d4a
Binary files /dev/null and b/public/assets/plugins/square/styles/up.gif differ
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644 (file)
index 0000000..43a12a5
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/fonts/FontAwesome.otf b/public/fonts/FontAwesome.otf
new file mode 100644 (file)
index 0000000..401ec0f
Binary files /dev/null and b/public/fonts/FontAwesome.otf differ
diff --git a/public/fonts/fontawesome-webfont.eot b/public/fonts/fontawesome-webfont.eot
new file mode 100644 (file)
index 0000000..e9f60ca
Binary files /dev/null and b/public/fonts/fontawesome-webfont.eot differ
diff --git a/public/fonts/fontawesome-webfont.svg b/public/fonts/fontawesome-webfont.svg
new file mode 100644 (file)
index 0000000..855c845
--- /dev/null
@@ -0,0 +1,2671 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg>
+<metadata>
+Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016
+ By ,,,
+Copyright Dave Gandy 2016. All rights reserved.
+</metadata>
+<defs>
+<font id="FontAwesome" horiz-adv-x="1536" >
+  <font-face 
+    font-family="FontAwesome"
+    font-weight="400"
+    font-stretch="normal"
+    units-per-em="1792"
+    panose-1="0 0 0 0 0 0 0 0 0 0"
+    ascent="1536"
+    descent="-256"
+    bbox="-1.02083 -256.962 2304.6 1537.02"
+    underline-thickness="0"
+    underline-position="0"
+    unicode-range="U+0020-F500"
+  />
+<missing-glyph horiz-adv-x="896" 
+d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" />
+    <glyph glyph-name=".notdef" horiz-adv-x="896" 
+d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" />
+    <glyph glyph-name=".null" horiz-adv-x="0" 
+ />
+    <glyph glyph-name="nonmarkingreturn" horiz-adv-x="597" 
+ />
+    <glyph glyph-name="space" unicode=" " horiz-adv-x="448" 
+ />
+    <glyph glyph-name="dieresis" unicode="&#xa8;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="copyright" unicode="&#xa9;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="registered" unicode="&#xae;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="acute" unicode="&#xb4;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="AE" unicode="&#xc6;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="Oslash" unicode="&#xd8;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="trademark" unicode="&#x2122;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="infinity" unicode="&#x221e;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="notequal" unicode="&#x2260;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="glass" unicode="&#xf000;" horiz-adv-x="1792" 
+d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
+    <glyph glyph-name="music" unicode="&#xf001;" 
+d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89
+t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="search" unicode="&#xf002;" horiz-adv-x="1664" 
+d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5
+t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+    <glyph glyph-name="envelope" unicode="&#xf003;" horiz-adv-x="1792" 
+d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13
+t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z
+M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="heart" unicode="&#xf004;" horiz-adv-x="1792" 
+d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600
+q-18 -18 -44 -18z" />
+    <glyph glyph-name="star" unicode="&#xf005;" horiz-adv-x="1664" 
+d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455
+l502 -73q56 -9 56 -46z" />
+    <glyph glyph-name="star_empty" unicode="&#xf006;" horiz-adv-x="1664" 
+d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500
+l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
+    <glyph glyph-name="user" unicode="&#xf007;" horiz-adv-x="1280" 
+d="M1280 137q0 -109 -62.5 -187t-150.5 -78h-854q-88 0 -150.5 78t-62.5 187q0 85 8.5 160.5t31.5 152t58.5 131t94 89t134.5 34.5q131 -128 313 -128t313 128q76 0 134.5 -34.5t94 -89t58.5 -131t31.5 -152t8.5 -160.5zM1024 1024q0 -159 -112.5 -271.5t-271.5 -112.5
+t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="film" unicode="&#xf008;" horiz-adv-x="1920" 
+d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128
+q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45
+t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128
+q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19
+t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="th_large" unicode="&#xf009;" horiz-adv-x="1664" 
+d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38
+h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="th" unicode="&#xf00a;" horiz-adv-x="1792" 
+d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28
+h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192
+q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="th_list" unicode="&#xf00b;" horiz-adv-x="1792" 
+d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28
+h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="ok" unicode="&#xf00c;" horiz-adv-x="1792" 
+d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
+    <glyph glyph-name="remove" unicode="&#xf00d;" horiz-adv-x="1408" 
+d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68
+t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
+    <glyph glyph-name="zoom_in" unicode="&#xf00e;" horiz-adv-x="1664" 
+d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224
+q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5
+t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+    <glyph glyph-name="zoom_out" unicode="&#xf010;" horiz-adv-x="1664" 
+d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z
+M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z
+" />
+    <glyph glyph-name="off" unicode="&#xf011;" 
+d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5
+t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
+    <glyph glyph-name="signal" unicode="&#xf012;" horiz-adv-x="1792" 
+d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23
+v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="cog" unicode="&#xf013;" 
+d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38
+q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13
+l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22
+q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
+    <glyph glyph-name="trash" unicode="&#xf014;" horiz-adv-x="1408" 
+d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576
+q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832
+q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="home" unicode="&#xf015;" horiz-adv-x="1664" 
+d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5
+l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
+    <glyph glyph-name="file_alt" unicode="&#xf016;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+" />
+    <glyph glyph-name="time" unicode="&#xf017;" 
+d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="road" unicode="&#xf018;" horiz-adv-x="1920" 
+d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256
+q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
+    <glyph glyph-name="download_alt" unicode="&#xf019;" horiz-adv-x="1664" 
+d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136
+q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
+    <glyph glyph-name="download" unicode="&#xf01a;" 
+d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273
+t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="upload" unicode="&#xf01b;" 
+d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198
+t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="inbox" unicode="&#xf01c;" 
+d="M1023 576h316q-1 3 -2.5 8.5t-2.5 7.5l-212 496h-708l-212 -496q-1 -3 -2.5 -8.5t-2.5 -7.5h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552
+q25 -61 25 -123z" />
+    <glyph glyph-name="play_circle" unicode="&#xf01d;" 
+d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="repeat" unicode="&#xf01e;" 
+d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q15 0 25 -9
+l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
+    <glyph glyph-name="refresh" unicode="&#xf021;" 
+d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117
+q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5
+q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
+    <glyph glyph-name="list_alt" unicode="&#xf022;" horiz-adv-x="1792" 
+d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z
+M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5
+t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47
+t47 -113z" />
+    <glyph glyph-name="lock" unicode="&#xf023;" horiz-adv-x="1152" 
+d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="flag" unicode="&#xf024;" horiz-adv-x="1792" 
+d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48
+t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="headphones" unicode="&#xf025;" horiz-adv-x="1664" 
+d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78
+t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5
+t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
+    <glyph glyph-name="volume_off" unicode="&#xf026;" horiz-adv-x="768" 
+d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
+    <glyph glyph-name="volume_down" unicode="&#xf027;" horiz-adv-x="1152" 
+d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36
+t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
+    <glyph glyph-name="volume_up" unicode="&#xf028;" horiz-adv-x="1664" 
+d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36
+t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5
+t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289
+t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
+    <glyph glyph-name="qrcode" unicode="&#xf029;" horiz-adv-x="1408" 
+d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z
+M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
+    <glyph glyph-name="barcode" unicode="&#xf02a;" horiz-adv-x="1792" 
+d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z
+M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
+    <glyph glyph-name="tag" unicode="&#xf02b;" 
+d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5
+l715 -714q37 -39 37 -91z" />
+    <glyph glyph-name="tags" unicode="&#xf02c;" horiz-adv-x="1920" 
+d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5
+l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
+    <glyph glyph-name="book" unicode="&#xf02d;" horiz-adv-x="1664" 
+d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23
+q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906
+q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5
+t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
+    <glyph glyph-name="bookmark" unicode="&#xf02e;" horiz-adv-x="1280" 
+d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+    <glyph glyph-name="print" unicode="&#xf02f;" horiz-adv-x="1664" 
+d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68
+v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
+    <glyph glyph-name="camera" unicode="&#xf030;" horiz-adv-x="1920" 
+d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136
+q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="font" unicode="&#xf031;" horiz-adv-x="1664" 
+d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57
+q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -5 -0.5 -13.5t-0.5 -12.5q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5
+q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" />
+    <glyph glyph-name="bold" unicode="&#xf032;" horiz-adv-x="1408" 
+d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142
+q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5
+t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68 -0.5t68 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5
+t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" />
+    <glyph glyph-name="italic" unicode="&#xf033;" horiz-adv-x="1024" 
+d="M0 -126l17 85q22 7 61.5 16.5t72 19t59.5 23.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5
+q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
+    <glyph glyph-name="text_height" unicode="&#xf034;" horiz-adv-x="1792" 
+d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2
+t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5
+q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27
+q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" />
+    <glyph glyph-name="text_width" unicode="&#xf035;" 
+d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1
+t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27
+q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5
+t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49
+t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" />
+    <glyph glyph-name="align_left" unicode="&#xf036;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45
+t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="align_center" unicode="&#xf037;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19
+h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="align_right" unicode="&#xf038;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45
+t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="align_justify" unicode="&#xf039;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45
+t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="list" unicode="&#xf03a;" horiz-adv-x="1792" 
+d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5
+t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344
+q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5
+t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192
+q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="indent_left" unicode="&#xf03b;" horiz-adv-x="1792" 
+d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5
+t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088
+q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="indent_right" unicode="&#xf03c;" horiz-adv-x="1792" 
+d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5
+t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088
+q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="facetime_video" unicode="&#xf03d;" horiz-adv-x="1792" 
+d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5
+q39 -17 39 -59z" />
+    <glyph glyph-name="picture" unicode="&#xf03e;" horiz-adv-x="1920" 
+d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216
+q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="pencil" unicode="&#xf040;" 
+d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38
+q53 0 91 -38l235 -234q37 -39 37 -91z" />
+    <glyph glyph-name="map_marker" unicode="&#xf041;" horiz-adv-x="1024" 
+d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
+    <glyph glyph-name="adjust" unicode="&#xf042;" 
+d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="tint" unicode="&#xf043;" horiz-adv-x="1024" 
+d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362
+q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
+    <glyph glyph-name="edit" unicode="&#xf044;" horiz-adv-x="1792" 
+d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832
+q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92
+l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
+    <glyph glyph-name="share" unicode="&#xf045;" horiz-adv-x="1664" 
+d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832
+q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5
+t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
+    <glyph glyph-name="check" unicode="&#xf046;" horiz-adv-x="1664" 
+d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832
+q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110
+q24 -24 24 -57t-24 -57z" />
+    <glyph glyph-name="move" unicode="&#xf047;" horiz-adv-x="1792" 
+d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45
+t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+    <glyph glyph-name="step_backward" unicode="&#xf048;" horiz-adv-x="1024" 
+d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19z" />
+    <glyph glyph-name="fast_backward" unicode="&#xf049;" horiz-adv-x="1792" 
+d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19l710 710
+q19 19 32 13t13 -32v-710q4 10 13 19z" />
+    <glyph glyph-name="backward" unicode="&#xf04a;" horiz-adv-x="1664" 
+d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q4 10 13 19z" />
+    <glyph glyph-name="play" unicode="&#xf04b;" horiz-adv-x="1408" 
+d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
+    <glyph glyph-name="pause" unicode="&#xf04c;" 
+d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="stop" unicode="&#xf04d;" 
+d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="forward" unicode="&#xf04e;" horiz-adv-x="1664" 
+d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" />
+    <glyph glyph-name="fast_forward" unicode="&#xf050;" horiz-adv-x="1792" 
+d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19l-710 -710
+q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" />
+    <glyph glyph-name="step_forward" unicode="&#xf051;" horiz-adv-x="1024" 
+d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19z" />
+    <glyph glyph-name="eject" unicode="&#xf052;" horiz-adv-x="1538" 
+d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
+    <glyph glyph-name="chevron_left" unicode="&#xf053;" horiz-adv-x="1280" 
+d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
+    <glyph glyph-name="chevron_right" unicode="&#xf054;" horiz-adv-x="1280" 
+d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
+    <glyph glyph-name="plus_sign" unicode="&#xf055;" 
+d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5
+t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="minus_sign" unicode="&#xf056;" 
+d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5
+t103 -385.5z" />
+    <glyph glyph-name="remove_sign" unicode="&#xf057;" 
+d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19
+q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ok_sign" unicode="&#xf058;" 
+d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="question_sign" unicode="&#xf059;" 
+d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59
+q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="info_sign" unicode="&#xf05a;" 
+d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23
+t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="screenshot" unicode="&#xf05b;" 
+d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109
+q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143
+q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="remove_circle" unicode="&#xf05c;" 
+d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23
+l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5
+t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ok_circle" unicode="&#xf05d;" 
+d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198
+t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ban_circle" unicode="&#xf05e;" 
+d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61
+t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
+    <glyph glyph-name="arrow_left" unicode="&#xf060;" 
+d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5
+t32.5 -90.5z" />
+    <glyph glyph-name="arrow_right" unicode="&#xf061;" 
+d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
+    <glyph glyph-name="arrow_up" unicode="&#xf062;" horiz-adv-x="1664" 
+d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651
+q37 -39 37 -91z" />
+    <glyph glyph-name="arrow_down" unicode="&#xf063;" horiz-adv-x="1664" 
+d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
+    <glyph glyph-name="share_alt" unicode="&#xf064;" horiz-adv-x="1792" 
+d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22
+t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
+    <glyph glyph-name="resize_full" unicode="&#xf065;" 
+d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332
+q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="resize_small" unicode="&#xf066;" 
+d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45
+t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
+    <glyph glyph-name="plus" unicode="&#xf067;" horiz-adv-x="1408" 
+d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="minus" unicode="&#xf068;" horiz-adv-x="1408" 
+d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="asterisk" unicode="&#xf069;" horiz-adv-x="1664" 
+d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154
+q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
+    <glyph glyph-name="exclamation_sign" unicode="&#xf06a;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192
+q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
+    <glyph glyph-name="gift" unicode="&#xf06b;" 
+d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320
+q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5
+t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="leaf" unicode="&#xf06c;" horiz-adv-x="1792" 
+d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268
+q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-43 0 -63.5 17.5t-45.5 59.5q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5
+t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
+    <glyph glyph-name="fire" unicode="&#xf06d;" horiz-adv-x="1408" 
+d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1
+q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
+    <glyph glyph-name="eye_open" unicode="&#xf06e;" horiz-adv-x="1792" 
+d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5
+t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
+    <glyph glyph-name="eye_close" unicode="&#xf070;" horiz-adv-x="1792" 
+d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9
+q-106 -189 -316 -567t-315 -566l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5
+q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z
+" />
+    <glyph glyph-name="warning_sign" unicode="&#xf071;" horiz-adv-x="1792" 
+d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185
+q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
+    <glyph glyph-name="plane" unicode="&#xf072;" horiz-adv-x="1408" 
+d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9
+q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
+    <glyph glyph-name="calendar" unicode="&#xf073;" horiz-adv-x="1664" 
+d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z
+M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64
+q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47
+h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="random" unicode="&#xf074;" horiz-adv-x="1792" 
+d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1
+t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5
+v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111
+t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+    <glyph glyph-name="comment" unicode="&#xf075;" horiz-adv-x="1792" 
+d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281
+q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
+    <glyph glyph-name="magnet" unicode="&#xf076;" 
+d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384
+q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="chevron_up" unicode="&#xf077;" horiz-adv-x="1792" 
+d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
+    <glyph glyph-name="chevron_down" unicode="&#xf078;" horiz-adv-x="1792" 
+d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
+    <glyph glyph-name="retweet" unicode="&#xf079;" horiz-adv-x="1920" 
+d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -10 7 -21
+zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z
+" />
+    <glyph glyph-name="shopping_cart" unicode="&#xf07a;" horiz-adv-x="1664" 
+d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45
+t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="folder_close" unicode="&#xf07b;" horiz-adv-x="1664" 
+d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="folder_open" unicode="&#xf07c;" horiz-adv-x="1920" 
+d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5
+t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="resize_vertical" unicode="&#xf07d;" horiz-adv-x="768" 
+d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
+    <glyph glyph-name="resize_horizontal" unicode="&#xf07e;" horiz-adv-x="1792" 
+d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+    <glyph glyph-name="bar_chart" unicode="&#xf080;" horiz-adv-x="2048" 
+d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
+    <glyph glyph-name="twitter_sign" unicode="&#xf081;" 
+d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4
+q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5
+t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="facebook_sign" unicode="&#xf082;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960
+q0 119 84.5 203.5t203.5 84.5h960z" />
+    <glyph glyph-name="camera_retro" unicode="&#xf083;" horiz-adv-x="1792" 
+d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5
+t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280
+q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="key" unicode="&#xf084;" horiz-adv-x="1792" 
+d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26
+l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5
+t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
+    <glyph glyph-name="cogs" unicode="&#xf085;" horiz-adv-x="1920" 
+d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5
+t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -11 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5
+l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7
+l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -8 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31
+q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20
+t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68
+q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70
+q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
+    <glyph glyph-name="comments" unicode="&#xf086;" horiz-adv-x="1792" 
+d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224
+q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7
+q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
+    <glyph glyph-name="thumbs_up_alt" unicode="&#xf087;" 
+d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5
+t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769
+q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128
+q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
+    <glyph glyph-name="thumbs_down_alt" unicode="&#xf088;" 
+d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 31 18 69q0 37 -17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5
+t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z
+M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5
+h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -73 49 -163z" />
+    <glyph glyph-name="star_half" unicode="&#xf089;" horiz-adv-x="896" 
+d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
+    <glyph glyph-name="heart_empty" unicode="&#xf08a;" horiz-adv-x="1792" 
+d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559
+q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5
+q224 0 351 -124t127 -344z" />
+    <glyph glyph-name="signout" unicode="&#xf08b;" horiz-adv-x="1664" 
+d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704
+q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
+    <glyph glyph-name="linkedin_sign" unicode="&#xf08c;" 
+d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5
+q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="pushpin" unicode="&#xf08d;" horiz-adv-x="1152" 
+d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38
+t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
+    <glyph glyph-name="external_link" unicode="&#xf08e;" horiz-adv-x="1792" 
+d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320
+q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="signin" unicode="&#xf090;" 
+d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5
+q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="trophy" unicode="&#xf091;" horiz-adv-x="1664" 
+d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91
+t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96
+q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="github_sign" unicode="&#xf092;" 
+d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4
+q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 95q-6 -1 -15.5 -2.5t-35.5 -2t-48 4
+t-43.5 20t-29.5 41.5q-23 59 -57 74q-2 1 -4.5 3.5l-8 8t-7 9.5t4 7.5t19.5 3.5q6 0 15 -2t30 -15.5t33 -35.5q16 -28 37.5 -42t43.5 -14t38 3.5t30 9.5q7 47 33 69q-49 6 -86 18.5t-73 39t-55.5 76t-19.5 119.5q0 79 53 137q-24 62 5 136q19 6 54.5 -7.5t60.5 -29.5l26 -16
+q58 17 128 17t128 -17q11 7 28.5 18t55.5 26t57 9q29 -74 5 -136q53 -58 53 -137q0 -57 -14 -100.5t-35.5 -70t-53.5 -44.5t-62.5 -26t-68.5 -12q35 -31 35 -95q0 -40 -0.5 -89t-0.5 -51q0 -12 8.5 -20t26.5 -5q154 52 252 185.5t98 300.5zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="upload_alt" unicode="&#xf093;" horiz-adv-x="1664" 
+d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92
+t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
+    <glyph glyph-name="lemon" unicode="&#xf094;" 
+d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5
+q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44
+q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5
+q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -13 2 -25t3.5 -16.5t7.5 -20.5t8 -20q16 -40 25 -118.5t9 -136.5z" />
+    <glyph glyph-name="phone" unicode="&#xf095;" horiz-adv-x="1408" 
+d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -53 3.5t-57.5 12.5t-47 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-127 79 -264 216t-216 264q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47t-12.5 57.5t-3.5 53q0 92 51 186
+q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174q2 -1 19 -11.5t24 -14
+t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
+    <glyph glyph-name="check_empty" unicode="&#xf096;" horiz-adv-x="1408" 
+d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832
+q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="bookmark_empty" unicode="&#xf097;" horiz-adv-x="1280" 
+d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289
+q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+    <glyph glyph-name="phone_sign" unicode="&#xf098;" 
+d="M1280 343q0 11 -2 16t-18 16.5t-40.5 25t-47.5 26.5t-45.5 25t-28.5 15q-5 3 -19 13t-25 15t-21 5q-15 0 -36.5 -20.5t-39.5 -45t-38.5 -45t-33.5 -20.5q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170 126.5t-127 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5
+t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5
+t320.5 -216.5q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z
+" />
+    <glyph glyph-name="twitter" unicode="&#xf099;" horiz-adv-x="1664" 
+d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41
+q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
+    <glyph glyph-name="facebook" unicode="&#xf09a;" horiz-adv-x="1024" 
+d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
+    <glyph glyph-name="github" unicode="&#xf09b;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24
+q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5
+t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -88.5t0.5 -54.5q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103zM291 305q3 7 -7 12
+q-10 3 -13 -2q-3 -7 7 -12q9 -6 13 2zM322 271q7 5 -2 16q-10 9 -16 3q-7 -5 2 -16q10 -10 16 -3zM352 226q9 7 0 19q-8 13 -17 6q-9 -5 0 -18t17 -7zM394 184q8 8 -4 19q-12 12 -20 3q-9 -8 4 -19q12 -12 20 -3zM451 159q3 11 -13 16q-15 4 -19 -7t13 -15q15 -6 19 6z
+M514 154q0 13 -17 11q-16 0 -16 -11q0 -13 17 -11q16 0 16 11zM572 164q-2 11 -18 9q-16 -3 -14 -15t18 -8t14 14z" />
+    <glyph glyph-name="unlock" unicode="&#xf09c;" horiz-adv-x="1664" 
+d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5
+t316.5 -131.5t131.5 -316.5z" />
+    <glyph glyph-name="credit_card" unicode="&#xf09d;" horiz-adv-x="1920" 
+d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608
+q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
+    <glyph glyph-name="rss" unicode="&#xf09e;" horiz-adv-x="1408" 
+d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5
+t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294
+q187 -186 294 -425.5t120 -501.5z" />
+    <glyph glyph-name="hdd" unicode="&#xf0a0;" 
+d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5
+h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75
+l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
+    <glyph glyph-name="bullhorn" unicode="&#xf0a1;" horiz-adv-x="1792" 
+d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5
+t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
+    <glyph glyph-name="bell" unicode="&#xf0a2;" horiz-adv-x="1792" 
+d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z
+M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5
+t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+    <glyph glyph-name="certificate" unicode="&#xf0a3;" 
+d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70
+l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70
+l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
+    <glyph glyph-name="hand_right" unicode="&#xf0a4;" horiz-adv-x="1792" 
+d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106
+q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43
+q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5
+t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
+    <glyph glyph-name="hand_left" unicode="&#xf0a5;" horiz-adv-x="1792" 
+d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-8 9 -12 14q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5
+t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45z
+M1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67
+q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="hand_up" unicode="&#xf0a6;" 
+d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576
+q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5
+t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76
+q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
+    <glyph glyph-name="hand_down" unicode="&#xf0a7;" 
+d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33
+t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580
+q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100
+q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
+    <glyph glyph-name="circle_arrow_left" unicode="&#xf0a8;" 
+d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="circle_arrow_right" unicode="&#xf0a9;" 
+d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="circle_arrow_up" unicode="&#xf0aa;" 
+d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="circle_arrow_down" unicode="&#xf0ab;" 
+d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="globe" unicode="&#xf0ac;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11
+q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 11t-9.5 10q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5
+q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5
+q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5
+t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-4 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3
+q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25
+q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5
+t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5
+t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10.5t17 -19.5q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21
+q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5
+q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3
+q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5
+t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q8 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5
+q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7
+q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
+    <glyph glyph-name="wrench" unicode="&#xf0ad;" horiz-adv-x="1664" 
+d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5
+t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
+    <glyph glyph-name="tasks" unicode="&#xf0ae;" horiz-adv-x="1792" 
+d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19
+t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="filter" unicode="&#xf0b0;" horiz-adv-x="1408" 
+d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
+    <glyph glyph-name="briefcase" unicode="&#xf0b1;" horiz-adv-x="1792" 
+d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68
+t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="fullscreen" unicode="&#xf0b2;" 
+d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144
+l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z
+" />
+    <glyph glyph-name="group" unicode="&#xf0c0;" horiz-adv-x="1920" 
+d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5
+t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75
+t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5
+t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
+    <glyph glyph-name="link" unicode="&#xf0c1;" horiz-adv-x="1664" 
+d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26
+l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15
+t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207
+q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
+    <glyph glyph-name="cloud" unicode="&#xf0c2;" horiz-adv-x="1920" 
+d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z
+" />
+    <glyph glyph-name="beaker" unicode="&#xf0c3;" horiz-adv-x="1664" 
+d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
+    <glyph glyph-name="cut" unicode="&#xf0c4;" horiz-adv-x="1792" 
+d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84
+q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148
+q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108
+q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6
+q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
+    <glyph glyph-name="copy" unicode="&#xf0c5;" horiz-adv-x="1792" 
+d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299
+h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
+    <glyph glyph-name="paper_clip" unicode="&#xf0c6;" horiz-adv-x="1408" 
+d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181
+l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235
+z" />
+    <glyph glyph-name="save" unicode="&#xf0c7;" 
+d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5
+h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
+    <glyph glyph-name="sign_blank" unicode="&#xf0c8;" 
+d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="reorder" unicode="&#xf0c9;" 
+d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45
+t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="ul" unicode="&#xf0ca;" horiz-adv-x="1792" 
+d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5
+t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z
+M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="ol" unicode="&#xf0cb;" horiz-adv-x="1792" 
+d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362
+q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5
+t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 121.5t0.5 121.5v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216
+q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="strikethrough" unicode="&#xf0cc;" horiz-adv-x="1792" 
+d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 98 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6
+l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -56 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23
+l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
+    <glyph glyph-name="underline" unicode="&#xf0cd;" 
+d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47
+q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41
+q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472
+q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
+    <glyph glyph-name="table" unicode="&#xf0ce;" horiz-adv-x="1664" 
+d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23
+v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192
+q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192
+q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113
+z" />
+    <glyph glyph-name="magic" unicode="&#xf0d0;" horiz-adv-x="1664" 
+d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276
+l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
+    <glyph glyph-name="truck" unicode="&#xf0d1;" horiz-adv-x="1792" 
+d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5
+t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38
+t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="pinterest" unicode="&#xf0d2;" 
+d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134
+q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33
+q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="pinterest_sign" unicode="&#xf0d3;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5
+t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5
+t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
+    <glyph glyph-name="google_plus_sign" unicode="&#xf0d4;" 
+d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585
+h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="google_plus" unicode="&#xf0d5;" horiz-adv-x="2304" 
+d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62
+q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" />
+    <glyph glyph-name="money" unicode="&#xf0d6;" horiz-adv-x="1920" 
+d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384
+v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="caret_down" unicode="&#xf0d7;" horiz-adv-x="1024" 
+d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="caret_up" unicode="&#xf0d8;" horiz-adv-x="1024" 
+d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="caret_left" unicode="&#xf0d9;" horiz-adv-x="640" 
+d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
+    <glyph glyph-name="caret_right" unicode="&#xf0da;" horiz-adv-x="640" 
+d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="columns" unicode="&#xf0db;" horiz-adv-x="1664" 
+d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="sort" unicode="&#xf0dc;" horiz-adv-x="1024" 
+d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="sort_down" unicode="&#xf0dd;" horiz-adv-x="1024" 
+d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="sort_up" unicode="&#xf0de;" horiz-adv-x="1024" 
+d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="envelope_alt" unicode="&#xf0e0;" horiz-adv-x="1792" 
+d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123
+q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
+    <glyph glyph-name="linkedin" unicode="&#xf0e1;" 
+d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329
+q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
+    <glyph glyph-name="undo" unicode="&#xf0e2;" 
+d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5
+t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
+    <glyph glyph-name="legal" unicode="&#xf0e3;" horiz-adv-x="1792" 
+d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5
+t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14
+q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28
+q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
+    <glyph glyph-name="dashboard" unicode="&#xf0e4;" horiz-adv-x="1792" 
+d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5
+t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5
+t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29
+q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="comment_alt" unicode="&#xf0e5;" horiz-adv-x="1792" 
+d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640
+q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5
+t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
+    <glyph glyph-name="comments_alt" unicode="&#xf0e6;" horiz-adv-x="1792" 
+d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257
+t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5
+t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129
+q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
+    <glyph glyph-name="bolt" unicode="&#xf0e7;" horiz-adv-x="896" 
+d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
+    <glyph glyph-name="sitemap" unicode="&#xf0e8;" horiz-adv-x="1792" 
+d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320
+q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68
+z" />
+    <glyph glyph-name="umbrella" unicode="&#xf0e9;" horiz-adv-x="1664" 
+d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97
+q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69
+q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
+    <glyph glyph-name="paste" unicode="&#xf0ea;" horiz-adv-x="1792" 
+d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28
+h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
+    <glyph glyph-name="light_bulb" unicode="&#xf0eb;" horiz-adv-x="1024" 
+d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134
+q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47
+q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5
+t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
+    <glyph glyph-name="exchange" unicode="&#xf0ec;" horiz-adv-x="1792" 
+d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9
+q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+    <glyph glyph-name="cloud_download" unicode="&#xf0ed;" horiz-adv-x="1920" 
+d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088
+q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+    <glyph glyph-name="cloud_upload" unicode="&#xf0ee;" horiz-adv-x="1920" 
+d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088
+q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+    <glyph glyph-name="user_md" unicode="&#xf0f0;" horiz-adv-x="1408" 
+d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56
+t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68
+t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5
+t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="stethoscope" unicode="&#xf0f1;" horiz-adv-x="1408" 
+d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48
+t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252
+t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
+    <glyph glyph-name="suitcase" unicode="&#xf0f2;" horiz-adv-x="1792" 
+d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66
+t66 -158z" />
+    <glyph glyph-name="bell_alt" unicode="&#xf0f3;" horiz-adv-x="1792" 
+d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5
+t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+    <glyph glyph-name="coffee" unicode="&#xf0f4;" horiz-adv-x="1920" 
+d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45
+t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="food" unicode="&#xf0f5;" horiz-adv-x="1408" 
+d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45
+t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="file_text_alt" unicode="&#xf0f6;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704
+q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" />
+    <glyph glyph-name="building" unicode="&#xf0f7;" horiz-adv-x="1408" 
+d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="hospital" unicode="&#xf0f8;" horiz-adv-x="1408" 
+d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5
+t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320
+v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="ambulance" unicode="&#xf0f9;" horiz-adv-x="1920" 
+d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5
+t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152
+q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="medkit" unicode="&#xf0fa;" horiz-adv-x="1792" 
+d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32
+q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="fighter_jet" unicode="&#xf0fb;" horiz-adv-x="1920" 
+d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96
+q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q128 -28 200 -52t80 -34z" />
+    <glyph glyph-name="beer" unicode="&#xf0fc;" horiz-adv-x="1664" 
+d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
+    <glyph glyph-name="h_sign" unicode="&#xf0fd;" 
+d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="f0fe" unicode="&#xf0fe;" 
+d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="double_angle_left" unicode="&#xf100;" horiz-adv-x="1024" 
+d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23
+t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
+    <glyph glyph-name="double_angle_right" unicode="&#xf101;" horiz-adv-x="1024" 
+d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23
+l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="double_angle_up" unicode="&#xf102;" horiz-adv-x="1152" 
+d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393
+q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="double_angle_down" unicode="&#xf103;" horiz-adv-x="1152" 
+d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23
+t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+    <glyph glyph-name="angle_left" unicode="&#xf104;" horiz-adv-x="640" 
+d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+    <glyph glyph-name="angle_right" unicode="&#xf105;" horiz-adv-x="640" 
+d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="angle_up" unicode="&#xf106;" horiz-adv-x="1152" 
+d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="angle_down" unicode="&#xf107;" horiz-adv-x="1152" 
+d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+    <glyph glyph-name="desktop" unicode="&#xf108;" horiz-adv-x="1920" 
+d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19
+t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="laptop" unicode="&#xf109;" horiz-adv-x="1920" 
+d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z
+M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
+    <glyph glyph-name="tablet" unicode="&#xf10a;" horiz-adv-x="1152" 
+d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832
+q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="mobile_phone" unicode="&#xf10b;" horiz-adv-x="768" 
+d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136
+q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="circle_blank" unicode="&#xf10c;" 
+d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103
+t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="quote_left" unicode="&#xf10d;" horiz-adv-x="1664" 
+d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z
+M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
+    <glyph glyph-name="quote_right" unicode="&#xf10e;" horiz-adv-x="1664" 
+d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216
+v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
+    <glyph glyph-name="spinner" unicode="&#xf110;" horiz-adv-x="1792" 
+d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5
+t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z
+M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5
+q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="circle" unicode="&#xf111;" 
+d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="reply" unicode="&#xf112;" horiz-adv-x="1792" 
+d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19
+l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
+    <glyph glyph-name="github_alt" unicode="&#xf113;" horiz-adv-x="1664" 
+d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320
+q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86
+t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218
+q0 -87 -27 -168q136 -160 136 -398z" />
+    <glyph glyph-name="folder_close_alt" unicode="&#xf114;" horiz-adv-x="1664" 
+d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320
+q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="folder_open_alt" unicode="&#xf115;" horiz-adv-x="1920" 
+d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68
+v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z
+" />
+    <glyph glyph-name="expand_alt" unicode="&#xf116;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="collapse_alt" unicode="&#xf117;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="smile" unicode="&#xf118;" 
+d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5
+t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5
+t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="frown" unicode="&#xf119;" 
+d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5
+t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204
+t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="meh" unicode="&#xf11a;" 
+d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5
+t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="gamepad" unicode="&#xf11b;" horiz-adv-x="1920" 
+d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5
+t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150
+t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
+    <glyph glyph-name="keyboard" unicode="&#xf11c;" horiz-adv-x="1920" 
+d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16
+h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16
+h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96
+q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896
+h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="flag_alt" unicode="&#xf11d;" horiz-adv-x="1792" 
+d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9
+h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102
+q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+    <glyph glyph-name="flag_checkered" unicode="&#xf11e;" horiz-adv-x="1792" 
+d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2
+q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266
+q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8
+q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+    <glyph glyph-name="terminal" unicode="&#xf120;" horiz-adv-x="1664" 
+d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9
+t9 -23z" />
+    <glyph glyph-name="code" unicode="&#xf121;" horiz-adv-x="1920" 
+d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5
+l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
+    <glyph glyph-name="reply_all" unicode="&#xf122;" horiz-adv-x="1792" 
+d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1
+q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
+    <glyph glyph-name="star_half_empty" unicode="&#xf123;" horiz-adv-x="1664" 
+d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5
+l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
+    <glyph glyph-name="location_arrow" unicode="&#xf124;" horiz-adv-x="1408" 
+d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
+    <glyph glyph-name="crop" unicode="&#xf125;" horiz-adv-x="1664" 
+d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23
+v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="code_fork" unicode="&#xf126;" horiz-adv-x="1024" 
+d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5
+q-2 -287 -226 -414q-67 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497
+q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
+    <glyph glyph-name="unlink" unicode="&#xf127;" horiz-adv-x="1664" 
+d="M439 265l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320
+q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18
+l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9
+t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+    <glyph glyph-name="question" unicode="&#xf128;" horiz-adv-x="1024" 
+d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5
+t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
+    <glyph glyph-name="_279" unicode="&#xf129;" horiz-adv-x="640" 
+d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192
+q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="exclamation" unicode="&#xf12a;" horiz-adv-x="640" 
+d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
+    <glyph glyph-name="superscript" unicode="&#xf12b;" 
+d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z
+M1534 846v-206h-514l-3 27q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5
+t-65.5 -51.5t-30.5 -63h232v80h126z" />
+    <glyph glyph-name="subscript" unicode="&#xf12c;" 
+d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z
+M1536 -50v-206h-514l-4 27q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73
+h232v80h126z" />
+    <glyph glyph-name="_283" unicode="&#xf12d;" horiz-adv-x="1920" 
+d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
+    <glyph glyph-name="puzzle_piece" unicode="&#xf12e;" horiz-adv-x="1664" 
+d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5
+t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89
+q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117
+q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
+    <glyph glyph-name="microphone" unicode="&#xf130;" horiz-adv-x="1152" 
+d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5
+t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
+    <glyph glyph-name="microphone_off" unicode="&#xf131;" horiz-adv-x="1408" 
+d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128
+q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23
+t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
+    <glyph glyph-name="shield" unicode="&#xf132;" horiz-adv-x="1280" 
+d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150
+t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="calendar_empty" unicode="&#xf133;" horiz-adv-x="1664" 
+d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280
+q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="fire_extinguisher" unicode="&#xf134;" horiz-adv-x="1408" 
+d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800
+q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113
+q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
+    <glyph glyph-name="rocket" unicode="&#xf135;" horiz-adv-x="1664" 
+d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1
+q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
+    <glyph glyph-name="maxcdn" unicode="&#xf136;" horiz-adv-x="1792" 
+d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
+    <glyph glyph-name="chevron_sign_left" unicode="&#xf137;" 
+d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="chevron_sign_right" unicode="&#xf138;" 
+d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="chevron_sign_up" unicode="&#xf139;" 
+d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="chevron_sign_down" unicode="&#xf13a;" 
+d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="html5" unicode="&#xf13b;" horiz-adv-x="1408" 
+d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
+    <glyph glyph-name="css3" unicode="&#xf13c;" horiz-adv-x="1792" 
+d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
+    <glyph glyph-name="anchor" unicode="&#xf13d;" horiz-adv-x="1792" 
+d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352
+q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19
+t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="unlock_alt" unicode="&#xf13e;" horiz-adv-x="1152" 
+d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181
+v-320h736z" />
+    <glyph glyph-name="bullseye" unicode="&#xf140;" 
+d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150
+t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ellipsis_horizontal" unicode="&#xf141;" horiz-adv-x="1408" 
+d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="ellipsis_vertical" unicode="&#xf142;" horiz-adv-x="384" 
+d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="_303" unicode="&#xf143;" 
+d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 233 -176.5 396.5t-396.5 176.5q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128
+q13 0 23 10t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="play_sign" unicode="&#xf144;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56
+q16 -8 32 -8q17 0 32 9z" />
+    <glyph glyph-name="ticket" unicode="&#xf145;" horiz-adv-x="1792" 
+d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136
+t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
+    <glyph glyph-name="minus_sign_alt" unicode="&#xf146;" 
+d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5
+t84.5 -203.5z" />
+    <glyph glyph-name="check_minus" unicode="&#xf147;" horiz-adv-x="1408" 
+d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5
+t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="level_up" unicode="&#xf148;" horiz-adv-x="1024" 
+d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
+    <glyph glyph-name="level_down" unicode="&#xf149;" horiz-adv-x="1024" 
+d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
+    <glyph glyph-name="check_sign" unicode="&#xf14a;" 
+d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5
+t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="edit_sign" unicode="&#xf14b;" 
+d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120
+v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_312" unicode="&#xf14c;" 
+d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960
+q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="share_sign" unicode="&#xf14d;" 
+d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q11 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5
+t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="compass" unicode="&#xf14e;" 
+d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="collapse" unicode="&#xf150;" 
+d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120
+v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="collapse_top" unicode="&#xf151;" 
+d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_317" unicode="&#xf152;" 
+d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5
+t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="eur" unicode="&#xf153;" horiz-adv-x="1024" 
+d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9
+t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26
+l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
+    <glyph glyph-name="gbp" unicode="&#xf154;" horiz-adv-x="1024" 
+d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7
+q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
+    <glyph glyph-name="usd" unicode="&#xf155;" horiz-adv-x="1024" 
+d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43
+t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5
+t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50
+t53 -63.5t31.5 -76.5t13 -94z" />
+    <glyph glyph-name="inr" unicode="&#xf156;" horiz-adv-x="898" 
+d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102
+q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="jpy" unicode="&#xf157;" horiz-adv-x="1027" 
+d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61
+l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
+    <glyph glyph-name="rub" unicode="&#xf158;" horiz-adv-x="1280" 
+d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128
+q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
+    <glyph glyph-name="krw" unicode="&#xf159;" horiz-adv-x="1792" 
+d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23
+t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28
+q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="btc" unicode="&#xf15a;" horiz-adv-x="1280" 
+d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164
+l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30
+t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
+    <glyph glyph-name="file" unicode="&#xf15b;" 
+d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" />
+    <glyph glyph-name="file_text" unicode="&#xf15c;" 
+d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704
+q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" />
+    <glyph glyph-name="sort_by_alphabet" unicode="&#xf15d;" horiz-adv-x="1664" 
+d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23
+v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162
+l230 -662h70z" />
+    <glyph glyph-name="_329" unicode="&#xf15e;" horiz-adv-x="1664" 
+d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150
+v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248
+v119h121z" />
+    <glyph glyph-name="sort_by_attributes" unicode="&#xf160;" horiz-adv-x="1792" 
+d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832
+q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256
+q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="sort_by_attributes_alt" unicode="&#xf161;" horiz-adv-x="1792" 
+d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192
+q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832
+q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="sort_by_order" unicode="&#xf162;" 
+d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23
+zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5
+t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
+    <glyph glyph-name="sort_by_order_alt" unicode="&#xf163;" 
+d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9
+t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13
+q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
+    <glyph glyph-name="_334" unicode="&#xf164;" horiz-adv-x="1664" 
+d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76
+q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5
+t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
+    <glyph glyph-name="_335" unicode="&#xf165;" horiz-adv-x="1664" 
+d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135
+t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121
+t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
+    <glyph glyph-name="youtube_sign" unicode="&#xf166;" 
+d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 17 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15
+q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38
+q21 -29 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5
+q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78q7 -23 23 -69l24 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38
+q-51 0 -78 -38q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5
+h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="youtube" unicode="&#xf167;" 
+d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73
+q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51
+q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99
+q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-38 -51 -106 -51q-67 0 -105 51
+q-28 38 -28 118v175q0 80 28 117q38 51 105 51q68 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
+    <glyph glyph-name="xing" unicode="&#xf168;" horiz-adv-x="1408" 
+d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942
+q25 45 64 45h241q22 0 31 -15z" />
+    <glyph glyph-name="xing_sign" unicode="&#xf169;" 
+d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1
+l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="youtube_play" unicode="&#xf16a;" horiz-adv-x="1792" 
+d="M711 408l484 250l-484 253v-503zM896 1270q168 0 324.5 -4.5t229.5 -9.5l73 -4q1 0 17 -1.5t23 -3t23.5 -4.5t28.5 -8t28 -13t31 -19.5t29 -26.5q6 -6 15.5 -18.5t29 -58.5t26.5 -101q8 -64 12.5 -136.5t5.5 -113.5v-40v-136q1 -145 -18 -290q-7 -55 -25 -99.5t-32 -61.5
+l-14 -17q-14 -15 -29 -26.5t-31 -19t-28 -12.5t-28.5 -8t-24 -4.5t-23 -3t-16.5 -1.5q-251 -19 -627 -19q-207 2 -359.5 6.5t-200.5 7.5l-49 4l-36 4q-36 5 -54.5 10t-51 21t-56.5 41q-6 6 -15.5 18.5t-29 58.5t-26.5 101q-8 64 -12.5 136.5t-5.5 113.5v40v136
+q-1 145 18 290q7 55 25 99.5t32 61.5l14 17q14 15 29 26.5t31 19.5t28 13t28.5 8t23.5 4.5t23 3t17 1.5q251 18 627 18z" />
+    <glyph glyph-name="dropbox" unicode="&#xf16b;" horiz-adv-x="1792" 
+d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
+    <glyph glyph-name="stackexchange" unicode="&#xf16c;" 
+d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" />
+    <glyph glyph-name="instagram" unicode="&#xf16d;" 
+d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1162 640q0 -164 -115 -279t-279 -115t-279 115t-115 279t115 279t279 115t279 -115t115 -279zM1270 1050q0 -38 -27 -65t-65 -27t-65 27t-27 65t27 65t65 27t65 -27t27 -65zM768 1270
+q-7 0 -76.5 0.5t-105.5 0t-96.5 -3t-103 -10t-71.5 -18.5q-50 -20 -88 -58t-58 -88q-11 -29 -18.5 -71.5t-10 -103t-3 -96.5t0 -105.5t0.5 -76.5t-0.5 -76.5t0 -105.5t3 -96.5t10 -103t18.5 -71.5q20 -50 58 -88t88 -58q29 -11 71.5 -18.5t103 -10t96.5 -3t105.5 0t76.5 0.5
+t76.5 -0.5t105.5 0t96.5 3t103 10t71.5 18.5q50 20 88 58t58 88q11 29 18.5 71.5t10 103t3 96.5t0 105.5t-0.5 76.5t0.5 76.5t0 105.5t-3 96.5t-10 103t-18.5 71.5q-20 50 -58 88t-88 58q-29 11 -71.5 18.5t-103 10t-96.5 3t-105.5 0t-76.5 -0.5zM1536 640q0 -229 -5 -317
+q-10 -208 -124 -322t-322 -124q-88 -5 -317 -5t-317 5q-208 10 -322 124t-124 322q-5 88 -5 317t5 317q10 208 124 322t322 124q88 5 317 5t317 -5q208 -10 322 -124t124 -322q5 -88 5 -317z" />
+    <glyph glyph-name="flickr" unicode="&#xf16e;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150
+t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
+    <glyph glyph-name="adn" unicode="&#xf170;" 
+d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="f171" unicode="&#xf171;" horiz-adv-x="1408" 
+d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22
+t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18
+t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5
+t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
+    <glyph glyph-name="bitbucket_sign" unicode="&#xf172;" 
+d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5
+t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z
+M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120
+v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="tumblr" unicode="&#xf173;" horiz-adv-x="1024" 
+d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14
+q78 2 134 29z" />
+    <glyph glyph-name="tumblr_sign" unicode="&#xf174;" 
+d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z
+M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="long_arrow_down" unicode="&#xf175;" horiz-adv-x="768" 
+d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
+    <glyph glyph-name="long_arrow_up" unicode="&#xf176;" horiz-adv-x="768" 
+d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
+    <glyph glyph-name="long_arrow_left" unicode="&#xf177;" horiz-adv-x="1792" 
+d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="long_arrow_right" unicode="&#xf178;" horiz-adv-x="1792" 
+d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
+    <glyph glyph-name="apple" unicode="&#xf179;" horiz-adv-x="1408" 
+d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q113 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65
+q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
+    <glyph glyph-name="windows" unicode="&#xf17a;" horiz-adv-x="1664" 
+d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
+    <glyph glyph-name="android" unicode="&#xf17b;" horiz-adv-x="1408" 
+d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30
+t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5
+h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
+    <glyph glyph-name="linux" unicode="&#xf17c;" 
+d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-10 -11 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z
+M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7
+q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15
+q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5
+t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19
+q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63
+q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18q-2 -1 -4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92
+q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152
+q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-6 0 -8 -2t0 -4
+t5 -3q14 -4 18 -31q0 -3 8 2q2 2 2 3zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5
+t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43
+q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49
+t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54
+q110 143 124 195q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5
+t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5
+t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
+    <glyph glyph-name="dribble" unicode="&#xf17d;" 
+d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81
+t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19
+q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -5 6.5 -17t7.5 -17q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6
+t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="skype" unicode="&#xf17e;" 
+d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5
+t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5
+q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80
+q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
+    <glyph glyph-name="foursquare" unicode="&#xf180;" horiz-adv-x="1280" 
+d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z
+M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324
+l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" />
+    <glyph glyph-name="trello" unicode="&#xf181;" 
+d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408
+q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="female" unicode="&#xf182;" horiz-adv-x="1280" 
+d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43
+q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="male" unicode="&#xf183;" horiz-adv-x="1024" 
+d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z
+M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="gittip" unicode="&#xf184;" 
+d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="sun" unicode="&#xf185;" horiz-adv-x="1792" 
+d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4
+l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94
+q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
+    <glyph glyph-name="_366" unicode="&#xf186;" 
+d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61
+t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
+    <glyph glyph-name="archive" unicode="&#xf187;" horiz-adv-x="1792" 
+d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536
+q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="bug" unicode="&#xf188;" horiz-adv-x="1664" 
+d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207
+q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19
+t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
+    <glyph glyph-name="vk" unicode="&#xf189;" horiz-adv-x="1920" 
+d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-40 -51 -55 -72t-30.5 -49.5t-12 -42t13 -34.5t32.5 -43t57 -53q4 -2 5 -4q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58
+t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6
+q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q16 19 38 30q53 26 239 24
+q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2
+q39 5 64 -2.5t31 -16.5z" />
+    <glyph glyph-name="weibo" unicode="&#xf18a;" horiz-adv-x="1792" 
+d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12
+q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422
+q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178
+q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z
+M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
+    <glyph glyph-name="renren" unicode="&#xf18b;" 
+d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495
+q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
+    <glyph glyph-name="_372" unicode="&#xf18c;" horiz-adv-x="1408" 
+d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5
+t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56
+t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -4 1 -50t-1 -72q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5
+t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
+    <glyph glyph-name="stack_exchange" unicode="&#xf18d;" horiz-adv-x="1280" 
+d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z
+" />
+    <glyph glyph-name="_374" unicode="&#xf18e;" 
+d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198
+t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="arrow_circle_alt_left" unicode="&#xf190;" 
+d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198
+t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_376" unicode="&#xf191;" 
+d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z
+M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="dot_circle_alt" unicode="&#xf192;" 
+d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5
+t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_378" unicode="&#xf193;" horiz-adv-x="1664" 
+d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128
+q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 17 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
+    <glyph glyph-name="vimeo_square" unicode="&#xf194;" 
+d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179
+q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_380" unicode="&#xf195;" horiz-adv-x="1152" 
+d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160
+q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="plus_square_o" unicode="&#xf196;" horiz-adv-x="1408" 
+d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832
+q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_382" unicode="&#xf197;" horiz-adv-x="2176" 
+d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40
+t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29
+q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" />
+    <glyph glyph-name="_383" unicode="&#xf198;" horiz-adv-x="1664" 
+d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9
+q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102
+t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" />
+    <glyph glyph-name="_384" unicode="&#xf199;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69
+q-47 32 -142 92.5t-142 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13
+t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" />
+    <glyph glyph-name="_385" unicode="&#xf19a;" horiz-adv-x="1792" 
+d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5
+t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21
+t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286
+t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273
+t273 -182.5t331.5 -68z" />
+    <glyph glyph-name="_386" unicode="&#xf19b;" horiz-adv-x="1792" 
+d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
+    <glyph glyph-name="_387" unicode="&#xf19c;" horiz-adv-x="2048" 
+d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64
+q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
+    <glyph glyph-name="_388" unicode="&#xf19d;" horiz-adv-x="2304" 
+d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433
+q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
+    <glyph glyph-name="_389" unicode="&#xf19e;" 
+d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q44 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0
+q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
+    <glyph glyph-name="uniF1A0" unicode="&#xf1a0;" 
+d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5
+t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" />
+    <glyph glyph-name="f1a1" unicode="&#xf1a1;" horiz-adv-x="1792" 
+d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26
+t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37
+q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191
+t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_392" unicode="&#xf1a2;" 
+d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54
+q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83
+q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960
+q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_393" unicode="&#xf1a3;" 
+d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150
+v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103
+t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="f1a4" unicode="&#xf1a4;" horiz-adv-x="1920" 
+d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328
+v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
+    <glyph glyph-name="_395" unicode="&#xf1a5;" 
+d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5
+t84.5 -203.5z" />
+    <glyph glyph-name="_396" unicode="&#xf1a6;" horiz-adv-x="2048" 
+d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123
+v-369h123z" />
+    <glyph glyph-name="_397" unicode="&#xf1a7;" 
+d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101
+v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960
+q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_398" unicode="&#xf1a8;" horiz-adv-x="2038" 
+d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14
+q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24
+q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33
+q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5
+t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43
+q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5
+t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13
+t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" />
+    <glyph glyph-name="_399" unicode="&#xf1a9;" 
+d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10
+q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14
+q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14
+t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44
+q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" />
+    <glyph glyph-name="_400" unicode="&#xf1aa;" 
+d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z
+M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5
+t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5
+q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126
+t135.5 51q85 0 145 -60.5t60 -145.5z" />
+    <glyph glyph-name="f1ab" unicode="&#xf1ab;" 
+d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5
+q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28
+q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z
+M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11
+q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q107 36 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5
+q20 0 20 -21v-418z" />
+    <glyph glyph-name="_402" unicode="&#xf1ac;" horiz-adv-x="1792" 
+d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48
+l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23
+t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128
+q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128
+q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" />
+    <glyph glyph-name="_403" unicode="&#xf1ad;" 
+d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9
+t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64
+q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64
+q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9
+t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64
+q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64
+q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9
+t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" />
+    <glyph glyph-name="_404" unicode="&#xf1ae;" horiz-adv-x="1280" 
+d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68q29 28 68.5 28t67.5 -28l228 -228h368l228 228q28 28 68 28t68 -28q28 -29 28 -68.5t-28 -67.5zM864 1152
+q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="uniF1B1" unicode="&#xf1b0;" horiz-adv-x="1664" 
+d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5
+q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819
+q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5
+t100.5 134t141.5 55.5z" />
+    <glyph glyph-name="_406" unicode="&#xf1b1;" horiz-adv-x="768" 
+d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" />
+    <glyph glyph-name="_407" unicode="&#xf1b2;" horiz-adv-x="1792" 
+d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z
+" />
+    <glyph glyph-name="_408" unicode="&#xf1b3;" horiz-adv-x="2304" 
+d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67
+t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-4 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70
+v-400l434 -186q36 -16 57 -48t21 -70z" />
+    <glyph glyph-name="_409" unicode="&#xf1b4;" horiz-adv-x="2048" 
+d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658
+q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204
+q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" />
+    <glyph glyph-name="_410" unicode="&#xf1b5;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5
+t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217
+t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" />
+    <glyph glyph-name="_411" unicode="&#xf1b6;" horiz-adv-x="1792" 
+d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5
+q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89
+q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" />
+    <glyph glyph-name="_412" unicode="&#xf1b7;" 
+d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5
+q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5
+q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z
+" />
+    <glyph glyph-name="_413" unicode="&#xf1b8;" horiz-adv-x="1792" 
+d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188
+l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5
+t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1
+q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" />
+    <glyph glyph-name="_414" unicode="&#xf1b9;" horiz-adv-x="2048" 
+d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384
+q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5
+l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="_415" unicode="&#xf1ba;" horiz-adv-x="2048" 
+d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5
+t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z
+M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" />
+    <glyph glyph-name="_416" unicode="&#xf1bb;" 
+d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384
+q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
+    <glyph glyph-name="_417" unicode="&#xf1bc;" 
+d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64
+q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37
+q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_418" unicode="&#xf1bd;" horiz-adv-x="1024" 
+d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" />
+    <glyph glyph-name="_419" unicode="&#xf1be;" horiz-adv-x="2304" 
+d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11
+q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245
+q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785
+l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242
+q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236
+q0 -11 -8 -19t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786
+q-13 2 -22 11t-9 22v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" />
+    <glyph glyph-name="uniF1C0" unicode="&#xf1c0;" 
+d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127
+t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5
+t-103 128v128q0 69 103 128t280 93.5t385 34.5z" />
+    <glyph glyph-name="uniF1C1" unicode="&#xf1c1;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197
+q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8
+q-1 1 -1 2q-1 2 -1 3q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" />
+    <glyph glyph-name="_422" unicode="&#xf1c2;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4q0 3 -0.5 6.5t-1.5 8t-1 6.5q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5
+t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300z" />
+    <glyph glyph-name="_423" unicode="&#xf1c3;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107
+h-290v-107h68l189 -272l-194 -283h-68z" />
+    <glyph glyph-name="_424" unicode="&#xf1c4;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
+    <glyph glyph-name="_425" unicode="&#xf1c5;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
+    <glyph glyph-name="_426" unicode="&#xf1c6;" 
+d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400
+v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79
+q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" />
+    <glyph glyph-name="_427" unicode="&#xf1c7;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5
+q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" />
+    <glyph glyph-name="_428" unicode="&#xf1c8;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
+    <glyph glyph-name="_429" unicode="&#xf1c9;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243
+l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" />
+    <glyph glyph-name="_430" unicode="&#xf1ca;" 
+d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406
+q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" />
+    <glyph glyph-name="_431" unicode="&#xf1cb;" horiz-adv-x="1792" 
+d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546
+q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
+    <glyph glyph-name="_432" unicode="&#xf1cc;" horiz-adv-x="2048" 
+d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94
+q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55
+t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97l93 -108q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z" />
+    <glyph glyph-name="_433" unicode="&#xf1cd;" horiz-adv-x="1792" 
+d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194
+q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5
+t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
+    <glyph glyph-name="_434" unicode="&#xf1ce;" horiz-adv-x="1792" 
+d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5
+t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" />
+    <glyph glyph-name="uniF1D0" unicode="&#xf1d0;" horiz-adv-x="1792" 
+d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41
+t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170
+t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136
+q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
+    <glyph glyph-name="uniF1D1" unicode="&#xf1d1;" horiz-adv-x="1792" 
+d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251
+l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162
+q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33
+q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5
+t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71
+t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF1D2" unicode="&#xf1d2;" 
+d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85
+q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392
+q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072
+q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_438" unicode="&#xf1d3;" horiz-adv-x="1792" 
+d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58
+q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47
+q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171
+v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" />
+    <glyph glyph-name="_439" unicode="&#xf1d4;" 
+d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="uniF1D5" unicode="&#xf1d5;" horiz-adv-x="1280" 
+d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5
+t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153
+t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" />
+    <glyph glyph-name="uniF1D6" unicode="&#xf1d6;" horiz-adv-x="1792" 
+d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5
+q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20
+t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5
+t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" />
+    <glyph glyph-name="uniF1D7" unicode="&#xf1d7;" horiz-adv-x="2048" 
+d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25
+q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5
+q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109
+q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" />
+    <glyph glyph-name="_443" unicode="&#xf1d8;" horiz-adv-x="1792" 
+d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
+    <glyph glyph-name="_444" unicode="&#xf1d9;" horiz-adv-x="1792" 
+d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137
+l863 639l-478 -797z" />
+    <glyph glyph-name="_445" unicode="&#xf1da;" 
+d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5
+t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23
+t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_446" unicode="&#xf1db;" 
+d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_447" unicode="&#xf1dc;" horiz-adv-x="1792" 
+d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15
+t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2
+t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160
+q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5
+q0 -26 -12 -48t-36 -22z" />
+    <glyph glyph-name="_448" unicode="&#xf1dd;" horiz-adv-x="1280" 
+d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179
+q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" />
+    <glyph glyph-name="_449" unicode="&#xf1de;" 
+d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256
+q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" />
+    <glyph glyph-name="uniF1E0" unicode="&#xf1e0;" 
+d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5
+t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" />
+    <glyph glyph-name="_451" unicode="&#xf1e1;" 
+d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5
+t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_452" unicode="&#xf1e2;" horiz-adv-x="1792" 
+d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5
+t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91
+q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9
+t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+    <glyph glyph-name="_453" unicode="&#xf1e3;" horiz-adv-x="1792" 
+d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323
+l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" />
+    <glyph glyph-name="_454" unicode="&#xf1e4;" horiz-adv-x="1792" 
+d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23
+v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192
+q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23
+zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5
+t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" />
+    <glyph glyph-name="_455" unicode="&#xf1e5;" horiz-adv-x="1792" 
+d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z
+M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_456" unicode="&#xf1e6;" horiz-adv-x="1792" 
+d="M1755 1083q37 -38 37 -90.5t-37 -90.5l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234
+l401 400q38 37 91 37t90 -37z" />
+    <glyph glyph-name="_457" unicode="&#xf1e7;" horiz-adv-x="1792" 
+d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5
+t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z
+M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q4 -2 11.5 -7
+t10.5 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" />
+    <glyph glyph-name="_458" unicode="&#xf1e8;" horiz-adv-x="1792" 
+d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" />
+    <glyph glyph-name="_459" unicode="&#xf1e9;" 
+d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36
+q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q71 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5
+t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87
+q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" />
+    <glyph glyph-name="_460" unicode="&#xf1ea;" horiz-adv-x="2048" 
+d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19
+t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" />
+    <glyph glyph-name="_461" unicode="&#xf1eb;" horiz-adv-x="2048" 
+d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121
+q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z
+M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" />
+    <glyph glyph-name="_462" unicode="&#xf1ec;" horiz-adv-x="1792" 
+d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5
+t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5
+t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5
+t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z
+M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38
+h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_463" unicode="&#xf1ed;" 
+d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246
+q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598
+q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" />
+    <glyph glyph-name="_464" unicode="&#xf1ee;" horiz-adv-x="1792" 
+d="M441 864q33 0 52 -26q266 -364 362 -774h-446q-127 441 -367 749q-12 16 -3 33.5t29 17.5h373zM1000 507q-49 -199 -125 -393q-79 310 -256 594q40 221 44 449q211 -340 337 -650zM1099 1216q235 -324 384.5 -698.5t184.5 -773.5h-451q-41 665 -553 1472h435zM1792 640
+q0 -424 -101 -812q-67 560 -359 1083q-25 301 -106 584q-4 16 5.5 28.5t25.5 12.5h359q21 0 38.5 -13t22.5 -33q115 -409 115 -850z" />
+    <glyph glyph-name="uniF1F0" unicode="&#xf1f0;" horiz-adv-x="2304" 
+d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27
+q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128
+q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_466" unicode="&#xf1f1;" horiz-adv-x="2304" 
+d="M1119 1195q-128 85 -281 85q-103 0 -197.5 -40.5t-162.5 -108.5t-108.5 -162t-40.5 -197q0 -104 40.5 -198t108.5 -162t162 -108.5t198 -40.5q153 0 281 85q-131 107 -178 265.5t0.5 316.5t177.5 265zM1152 1171q-126 -99 -172 -249.5t-0.5 -300.5t172.5 -249
+q127 99 172.5 249t-0.5 300.5t-172 249.5zM1185 1195q130 -107 177.5 -265.5t0.5 -317t-178 -264.5q128 -85 281 -85q104 0 198 40.5t162 108.5t108.5 162t40.5 198q0 103 -40.5 197t-108.5 162t-162.5 108.5t-197.5 40.5q-153 0 -281 -85zM1926 473h7v3h-17v-3h7v-17h3v17z
+M1955 456h4v20h-5l-6 -13l-6 13h-5v-20h3v15l6 -13h4l5 13v-15zM1947 16v-2h-2h-3v3h3h2v-1zM1947 7h3l-4 5h2l1 1q1 1 1 3t-1 3l-1 1h-3h-6v-13h3v5h1zM685 75q0 19 11 31t30 12q18 0 29 -12.5t11 -30.5q0 -19 -11 -31t-29 -12q-19 0 -30 12t-11 31zM1158 119q30 0 35 -32
+h-70q5 32 35 32zM1514 75q0 19 11 31t29 12t29.5 -12.5t11.5 -30.5q0 -19 -11 -31t-30 -12q-18 0 -29 12t-11 31zM1786 75q0 18 11.5 30.5t29.5 12.5t29.5 -12.5t11.5 -30.5q0 -19 -11.5 -31t-29.5 -12t-29.5 12.5t-11.5 30.5zM1944 3q-2 0 -4 1q-1 0 -3 2t-2 3q-1 2 -1 4
+q0 3 1 4q0 2 2 4l1 1q2 0 2 1q2 1 4 1q3 0 4 -1l4 -2l2 -4v-1q1 -2 1 -3l-1 -1v-3t-1 -1l-1 -2q-2 -2 -4 -2q-1 -1 -4 -1zM599 7h30v85q0 24 -14.5 38.5t-39.5 15.5q-32 0 -47 -24q-14 24 -45 24q-24 0 -39 -20v16h-30v-135h30v75q0 36 33 36q30 0 30 -36v-75h29v75
+q0 36 33 36q30 0 30 -36v-75zM765 7h29v68v67h-29v-16q-17 20 -43 20q-29 0 -48 -20t-19 -51t19 -51t48 -20q28 0 43 20v-17zM943 48q0 34 -47 40l-14 2q-23 4 -23 14q0 15 25 15q23 0 43 -11l12 24q-22 14 -55 14q-26 0 -41 -12t-15 -32q0 -33 47 -39l13 -2q24 -4 24 -14
+q0 -17 -31 -17q-25 0 -45 14l-13 -23q25 -17 58 -17q29 0 45.5 12t16.5 32zM1073 14l-8 25q-13 -7 -26 -7q-19 0 -19 22v61h48v27h-48v41h-30v-41h-28v-27h28v-61q0 -50 47 -50q21 0 36 10zM1159 146q-29 0 -48 -20t-19 -51q0 -32 19.5 -51.5t49.5 -19.5q33 0 55 19l-14 22
+q-18 -15 -39 -15q-34 0 -41 33h101v12q0 32 -18 51.5t-46 19.5zM1318 146q-23 0 -35 -20v16h-30v-135h30v76q0 35 29 35q10 0 18 -4l9 28q-9 4 -21 4zM1348 75q0 -31 19.5 -51t52.5 -20q29 0 48 16l-14 24q-18 -13 -35 -12q-18 0 -29.5 12t-11.5 31t11.5 31t29.5 12
+q19 0 35 -12l14 24q-20 16 -48 16q-33 0 -52.5 -20t-19.5 -51zM1593 7h30v68v67h-30v-16q-15 20 -42 20q-29 0 -48.5 -20t-19.5 -51t19.5 -51t48.5 -20q28 0 42 20v-17zM1726 146q-23 0 -35 -20v16h-29v-135h29v76q0 35 29 35q10 0 18 -4l9 28q-8 4 -21 4zM1866 7h29v68v122
+h-29v-71q-15 20 -43 20t-47.5 -20.5t-19.5 -50.5t19.5 -50.5t47.5 -20.5q29 0 43 20v-17zM1944 27l-2 -1h-3q-2 -1 -4 -3q-3 -1 -3 -4q-1 -2 -1 -6q0 -3 1 -5q0 -2 3 -4q2 -2 4 -3t5 -1q4 0 6 1q0 1 2 2l2 1q1 1 3 4q1 2 1 5q0 4 -1 6q-1 1 -3 4q0 1 -2 2l-2 1q-1 0 -3 0.5
+t-3 0.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_467" unicode="&#xf1f2;" horiz-adv-x="2304" 
+d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42
+q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604
+v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569
+q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73
+t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" />
+    <glyph glyph-name="f1f3" unicode="&#xf1f3;" horiz-adv-x="2304" 
+d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z
+M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260
+l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279
+v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040
+q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168
+q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5
+t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21
+h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5
+t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" />
+    <glyph glyph-name="_469" unicode="&#xf1f4;" horiz-adv-x="2304" 
+d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16
+t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76
+q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59
+t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489
+l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66
+q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_470" unicode="&#xf1f5;" horiz-adv-x="2304" 
+d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109
+q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118
+q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151
+q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31
+q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_471" unicode="&#xf1f6;" horiz-adv-x="2048" 
+d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5
+l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5
+l418 363q10 8 23.5 7t21.5 -11z" />
+    <glyph glyph-name="_472" unicode="&#xf1f7;" horiz-adv-x="2048" 
+d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128
+q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161
+q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" />
+    <glyph glyph-name="_473" unicode="&#xf1f8;" horiz-adv-x="1408" 
+d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704
+q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167
+q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_474" unicode="&#xf1f9;" 
+d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5
+t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5
+t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_475" unicode="&#xf1fa;" 
+d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53
+q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24
+t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61
+t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" />
+    <glyph glyph-name="_476" unicode="&#xf1fb;" horiz-adv-x="1792" 
+d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10
+t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" />
+    <glyph glyph-name="f1fc" unicode="&#xf1fc;" horiz-adv-x="1792" 
+d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5
+t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" />
+    <glyph glyph-name="_478" unicode="&#xf1fd;" horiz-adv-x="1792" 
+d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11q24 0 44 -7t31 -15t33 -27q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5
+t47 37.5q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-24 0 -44 7t-31 15t-33 27q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38
+t-58 27t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448
+h256v448h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5
+q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" />
+    <glyph glyph-name="_479" unicode="&#xf1fe;" horiz-adv-x="2048" 
+d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" />
+    <glyph glyph-name="_480" unicode="&#xf200;" horiz-adv-x="1792" 
+d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_481" unicode="&#xf201;" horiz-adv-x="2048" 
+d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9
+t9 -23z" />
+    <glyph glyph-name="_482" unicode="&#xf202;" horiz-adv-x="1792" 
+d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20
+q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50
+t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1
+q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" />
+    <glyph glyph-name="_483" unicode="&#xf203;" 
+d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73
+q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110
+q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_484" unicode="&#xf204;" horiz-adv-x="2048" 
+d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5
+t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5
+t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" />
+    <glyph glyph-name="_485" unicode="&#xf205;" horiz-adv-x="2048" 
+d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5
+t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
+    <glyph glyph-name="_486" unicode="&#xf206;" horiz-adv-x="2304" 
+d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94
+q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469
+q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400
+q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" />
+    <glyph glyph-name="_487" unicode="&#xf207;" 
+d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5
+h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5
+t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" />
+    <glyph glyph-name="_488" unicode="&#xf208;" horiz-adv-x="2048" 
+d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327
+q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5
+q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" />
+    <glyph glyph-name="_489" unicode="&#xf209;" horiz-adv-x="1280" 
+d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q17 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119
+t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5
+t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14
+q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88
+q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5
+t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" />
+    <glyph glyph-name="_490" unicode="&#xf20a;" horiz-adv-x="2048" 
+d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206
+q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307
+t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14
+t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" />
+    <glyph glyph-name="_491" unicode="&#xf20b;" 
+d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5
+t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_492" unicode="&#xf20c;" 
+d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55
+q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410
+q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" />
+    <glyph glyph-name="_493" unicode="&#xf20d;" 
+d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" />
+    <glyph glyph-name="_494" unicode="&#xf20e;" horiz-adv-x="2048" 
+d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335
+q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5
+q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360l15 -6l188 199v347l-187 194q-13 -8 -29 -10zM986 1438
+h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13zM552 226h402l64 66
+l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224l213 -225zM1023 946
+l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196l-48 -227l130 227h-82
+zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" />
+    <glyph glyph-name="f210" unicode="&#xf210;" 
+d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" />
+    <glyph glyph-name="_496" unicode="&#xf211;" 
+d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384
+q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" />
+    <glyph glyph-name="f212" unicode="&#xf212;" horiz-adv-x="2048" 
+d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021
+q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25
+q209 0 374 -102q172 107 374 102z" />
+    <glyph glyph-name="_498" unicode="&#xf213;" horiz-adv-x="2048" 
+d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101
+q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284
+q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" />
+    <glyph glyph-name="_499" unicode="&#xf214;" 
+d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34
+l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114
+v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z
+M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378
+v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51
+h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5
+t-43 -34t-16.5 -53.5z" />
+    <glyph glyph-name="_500" unicode="&#xf215;" horiz-adv-x="2048" 
+d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832
+q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" />
+    <glyph glyph-name="_501" unicode="&#xf216;" horiz-adv-x="2048" 
+d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126t-103.5 132.5t-108.5 126.5t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5
+t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113
+t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5
+q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" />
+    <glyph glyph-name="_502" unicode="&#xf217;" horiz-adv-x="1664" 
+d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5
+t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920
+q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="_503" unicode="&#xf218;" horiz-adv-x="1664" 
+d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5
+t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920
+q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="_504" unicode="&#xf219;" horiz-adv-x="2048" 
+d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20
+l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" />
+    <glyph glyph-name="_505" unicode="&#xf21a;" horiz-adv-x="2048" 
+d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83
+q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83
+q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314
+v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83
+q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" />
+    <glyph glyph-name="_506" unicode="&#xf21b;" 
+d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14
+t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5
+q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31
+t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" />
+    <glyph glyph-name="_507" unicode="&#xf21c;" horiz-adv-x="2304" 
+d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5
+t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105
+l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226
+t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" />
+    <glyph glyph-name="_508" unicode="&#xf21d;" 
+d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12
+q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384
+q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5
+t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="_509" unicode="&#xf21e;" horiz-adv-x="1792" 
+d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221
+q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124
+t127 -344z" />
+    <glyph glyph-name="venus" unicode="&#xf221;" horiz-adv-x="1280" 
+d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292
+q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
+    <glyph glyph-name="_511" unicode="&#xf222;" 
+d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5
+q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_512" unicode="&#xf223;" horiz-adv-x="1280" 
+d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5
+t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5
+t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_513" unicode="&#xf224;" 
+d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64
+q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5
+t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_514" unicode="&#xf225;" horiz-adv-x="1792" 
+d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64
+q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9
+t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5
+t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_515" unicode="&#xf226;" horiz-adv-x="1792" 
+d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23
+t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391
+q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391
+q0 -226 -154 -391q103 -57 218 -57z" />
+    <glyph glyph-name="_516" unicode="&#xf227;" horiz-adv-x="1920" 
+d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230
+q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9
+t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128
+q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -28 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" />
+    <glyph glyph-name="_517" unicode="&#xf228;" horiz-adv-x="2048" 
+d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23
+t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9
+t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5
+t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" />
+    <glyph glyph-name="_518" unicode="&#xf229;" 
+d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5
+t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5
+t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_519" unicode="&#xf22a;" horiz-adv-x="1280" 
+d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22
+t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5
+t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_520" unicode="&#xf22b;" horiz-adv-x="2048" 
+d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5
+t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5
+t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_521" unicode="&#xf22c;" horiz-adv-x="1280" 
+d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5
+t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_522" unicode="&#xf22d;" horiz-adv-x="1280" 
+d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123
+t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" />
+    <glyph glyph-name="_523" unicode="&#xf22e;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="_524" unicode="&#xf22f;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="_525" unicode="&#xf230;" 
+d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" />
+    <glyph glyph-name="_526" unicode="&#xf231;" horiz-adv-x="1280" 
+d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5
+l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5
+q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" />
+    <glyph glyph-name="_527" unicode="&#xf232;" 
+d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5
+t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233
+l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" />
+    <glyph glyph-name="_528" unicode="&#xf233;" horiz-adv-x="1792" 
+d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216
+q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" />
+    <glyph glyph-name="_529" unicode="&#xf234;" horiz-adv-x="2048" 
+d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5
+t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5
+t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" />
+    <glyph glyph-name="_530" unicode="&#xf235;" horiz-adv-x="2048" 
+d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136
+q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69
+t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" />
+    <glyph glyph-name="_531" unicode="&#xf236;" horiz-adv-x="2048" 
+d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704
+q-26 0 -45 -19t-19 -45v-384h1152z" />
+    <glyph glyph-name="_532" unicode="&#xf237;" 
+d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" />
+    <glyph glyph-name="_533" unicode="&#xf238;" 
+d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56
+t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" />
+    <glyph glyph-name="_534" unicode="&#xf239;" 
+d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47
+t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" />
+    <glyph glyph-name="_535" unicode="&#xf23a;" horiz-adv-x="1792" 
+d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116
+q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" />
+    <glyph glyph-name="_536" unicode="&#xf23b;" 
+d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" />
+    <glyph glyph-name="_537" unicode="&#xf23c;" horiz-adv-x="2296" 
+d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5
+q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5
+q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42
+q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37
+q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5
+q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139
+q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 5 5 8q16 18 60 23h13q5 18 19 30t33 8
+t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132
+q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132
+q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z
+M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-105 2 -211 0v1q-1 -27 2.5 -86
+t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103
+q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34q0 2 0.5 3.5t1.5 3t1 2.5v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4
+l-10 -2.5t-12 -2l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-6 -1 -9 -1q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130
+t-73 70q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -1 -1 -4t-1 -5q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150
+q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12
+q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" />
+    <glyph glyph-name="_538" unicode="&#xf23d;" horiz-adv-x="2304" 
+d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5
+t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5
+t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" />
+    <glyph glyph-name="_539" unicode="&#xf23e;" horiz-adv-x="1792" 
+d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348
+t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23
+t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96
+q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512
+q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" />
+    <glyph glyph-name="_540" unicode="&#xf240;" horiz-adv-x="2304" 
+d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113
+v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="_541" unicode="&#xf241;" horiz-adv-x="2304" 
+d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9
+h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_542" unicode="&#xf242;" horiz-adv-x="2304" 
+d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9
+h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_543" unicode="&#xf243;" horiz-adv-x="2304" 
+d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9
+h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_544" unicode="&#xf244;" horiz-adv-x="2304" 
+d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23
+v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_545" unicode="&#xf245;" horiz-adv-x="1280" 
+d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" />
+    <glyph glyph-name="_546" unicode="&#xf246;" horiz-adv-x="1024" 
+d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" />
+    <glyph glyph-name="_547" unicode="&#xf247;" horiz-adv-x="2048" 
+d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128
+h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" />
+    <glyph glyph-name="_548" unicode="&#xf248;" horiz-adv-x="2304" 
+d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256
+v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" />
+    <glyph glyph-name="_549" unicode="&#xf249;" 
+d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" />
+    <glyph glyph-name="_550" unicode="&#xf24a;" 
+d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68
+z" />
+    <glyph glyph-name="_551" unicode="&#xf24b;" horiz-adv-x="2304" 
+d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5
+t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88
+t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90
+t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_552" unicode="&#xf24c;" horiz-adv-x="2304" 
+d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294
+t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z
+M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_553" unicode="&#xf24d;" horiz-adv-x="1792" 
+d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113
+zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="_554" unicode="&#xf24e;" horiz-adv-x="2304" 
+d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64
+q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91
+t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5
+t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" />
+    <glyph glyph-name="_555" unicode="&#xf250;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5
+t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
+    <glyph glyph-name="_556" unicode="&#xf251;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" />
+    <glyph glyph-name="_557" unicode="&#xf252;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" />
+    <glyph glyph-name="_558" unicode="&#xf253;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196
+h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
+    <glyph glyph-name="_559" unicode="&#xf254;" 
+d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87
+t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9
+h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" />
+    <glyph glyph-name="_560" unicode="&#xf255;" 
+d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25
+q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27
+t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21
+q72 69 174 69z" />
+    <glyph glyph-name="_561" unicode="&#xf256;" horiz-adv-x="1792" 
+d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33
+t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52
+h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" />
+    <glyph glyph-name="_562" unicode="&#xf257;" horiz-adv-x="1792" 
+d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668
+q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17
+t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5
+t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5
+q0 -42 -23 -78t-61 -53l-310 -141h91z" />
+    <glyph glyph-name="_563" unicode="&#xf258;" horiz-adv-x="2048" 
+d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32
+q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68
+q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" />
+    <glyph glyph-name="_564" unicode="&#xf259;" horiz-adv-x="2048" 
+d="M459 -256q-77 0 -137.5 47.5t-79.5 122.5l-101 401q-13 57 -13 108q0 45 -5 67l-116 477q-7 27 -7 57q0 93 62 161t155 78q17 85 82.5 139t152.5 54q83 0 148 -51.5t85 -132.5l83 -348l103 428q20 81 85 132.5t148 51.5q89 0 155.5 -57.5t80.5 -144.5q92 -10 152 -79
+t60 -162q0 -24 -7 -59l-123 -512q10 7 37.5 28.5t38.5 29.5t35 23t41 20.5t41.5 11t49.5 5.5q105 0 180 -74t75 -179q0 -62 -28.5 -118t-78.5 -94l-507 -380q-68 -51 -153 -51h-694zM1104 1408q-38 0 -68.5 -24t-39.5 -62l-164 -682h-127l-145 602q-9 38 -39.5 62t-68.5 24
+q-48 0 -80 -33t-32 -80q0 -15 3 -28l132 -547h-26l-99 408q-9 37 -40 62.5t-69 25.5q-47 0 -80 -33t-33 -79q0 -14 3 -26l116 -478q7 -28 9 -86t10 -88l100 -401q8 -32 34 -52.5t59 -20.5h694q42 0 76 26l507 379q56 43 56 110q0 52 -37.5 88.5t-89.5 36.5q-43 0 -77 -26
+l-307 -230v227q0 4 32 138t68 282t39 161q4 18 4 29q0 47 -32 81t-79 34q-39 0 -69.5 -24t-39.5 -62l-116 -482h-26l150 624q3 14 3 28q0 48 -31.5 82t-79.5 34z" />
+    <glyph glyph-name="_565" unicode="&#xf25a;" horiz-adv-x="1792" 
+d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5
+q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5
+v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32
+v-384h32z" />
+    <glyph glyph-name="_566" unicode="&#xf25b;" 
+d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181
+v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46
+q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5
+q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308
+q0 -53 37.5 -90.5t90.5 -37.5h668z" />
+    <glyph glyph-name="_567" unicode="&#xf25c;" horiz-adv-x="1973" 
+d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5
+t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141
+q13 0 22 -8.5t10 -20.5z" />
+    <glyph glyph-name="_568" unicode="&#xf25d;" horiz-adv-x="1792" 
+d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109
+t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640
+q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_569" unicode="&#xf25e;" horiz-adv-x="1792" 
+d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78
+q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5
+t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376
+q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191
+t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" />
+    <glyph glyph-name="f260" unicode="&#xf260;" horiz-adv-x="2048" 
+d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" />
+    <glyph glyph-name="f261" unicode="&#xf261;" horiz-adv-x="1792" 
+d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191
+t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_572" unicode="&#xf262;" horiz-adv-x="2304" 
+d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57
+t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197
+t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5
+t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5
+t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5
+q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" />
+    <glyph glyph-name="f263" unicode="&#xf263;" horiz-adv-x="1280" 
+d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5
+t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94
+q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" />
+    <glyph glyph-name="_574" unicode="&#xf264;" 
+d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32
+q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5
+zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_575" unicode="&#xf265;" horiz-adv-x="1720" 
+d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33
+l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" />
+    <glyph glyph-name="_576" unicode="&#xf266;" horiz-adv-x="2304" 
+d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540
+q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81
+l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" />
+    <glyph glyph-name="_577" unicode="&#xf267;" horiz-adv-x="1792" 
+d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640
+q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5
+t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5
+t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5
+t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191
+t191 -286t71 -348z" />
+    <glyph glyph-name="_578" unicode="&#xf268;" horiz-adv-x="1792" 
+d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962
+q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" />
+    <glyph glyph-name="_579" unicode="&#xf269;" horiz-adv-x="1792" 
+d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5
+q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5
+q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" />
+    <glyph glyph-name="_580" unicode="&#xf26a;" horiz-adv-x="1792" 
+d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339
+q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z
+" />
+    <glyph glyph-name="_581" unicode="&#xf26b;" horiz-adv-x="1792" 
+d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606
+q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z
+M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" />
+    <glyph glyph-name="_582" unicode="&#xf26c;" horiz-adv-x="2048" 
+d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23
+v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="_583" unicode="&#xf26d;" horiz-adv-x="1792" 
+d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34
+h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100
+q-68 175 -180 287z" />
+    <glyph glyph-name="_584" unicode="&#xf26e;" 
+d="M1401 -11l-6 -6q-113 -113 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6
+q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13
+q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 33 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249
+q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 33 -6t30 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183
+q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46
+t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" />
+    <glyph glyph-name="_585" unicode="&#xf270;" horiz-adv-x="1792" 
+d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z
+M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30
+q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57
+t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133
+q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" />
+    <glyph glyph-name="_586" unicode="&#xf271;" horiz-adv-x="1792" 
+d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9
+h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224
+v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" />
+    <glyph glyph-name="_587" unicode="&#xf272;" horiz-adv-x="1792" 
+d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23
+t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47
+t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_588" unicode="&#xf273;" horiz-adv-x="1792" 
+d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z
+M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280
+q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_589" unicode="&#xf274;" horiz-adv-x="1792" 
+d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23
+t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47
+t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_590" unicode="&#xf275;" horiz-adv-x="1792" 
+d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" />
+    <glyph glyph-name="_591" unicode="&#xf276;" horiz-adv-x="1024" 
+d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q62 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249
+q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" />
+    <glyph glyph-name="_592" unicode="&#xf277;" horiz-adv-x="1792" 
+d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768
+q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" />
+    <glyph glyph-name="_593" unicode="&#xf278;" horiz-adv-x="2048" 
+d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173
+v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" />
+    <glyph glyph-name="_594" unicode="&#xf279;" horiz-adv-x="1792" 
+d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472
+q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" />
+    <glyph glyph-name="_595" unicode="&#xf27a;" horiz-adv-x="1792" 
+d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5
+t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37
+t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
+    <glyph glyph-name="_596" unicode="&#xf27b;" horiz-adv-x="1792" 
+d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5
+t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5
+t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51
+t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" />
+    <glyph glyph-name="_597" unicode="&#xf27c;" horiz-adv-x="1024" 
+d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" />
+    <glyph glyph-name="_598" unicode="&#xf27d;" horiz-adv-x="1792" 
+d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246
+q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" />
+    <glyph glyph-name="f27e" unicode="&#xf27e;" 
+d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" />
+    <glyph glyph-name="uniF280" unicode="&#xf280;" 
+d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72
+h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275
+l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" />
+    <glyph glyph-name="uniF281" unicode="&#xf281;" horiz-adv-x="1792" 
+d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5
+l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44
+t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106
+q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" />
+    <glyph glyph-name="_602" unicode="&#xf282;" horiz-adv-x="1792" 
+d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53
+q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" />
+    <glyph glyph-name="_603" unicode="&#xf283;" horiz-adv-x="2304" 
+d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" />
+    <glyph glyph-name="_604" unicode="&#xf284;" horiz-adv-x="1792" 
+d="M1584 246l-218 111q-74 -120 -196.5 -189t-263.5 -69q-147 0 -271 72t-196 196t-72 270q0 110 42.5 209.5t115 172t172 115t209.5 42.5q131 0 247.5 -60.5t192.5 -168.5l215 125q-110 169 -286.5 265t-378.5 96q-161 0 -308 -63t-253 -169t-169 -253t-63 -308t63 -308
+t169 -253t253 -169t308 -63q213 0 397.5 107t290.5 292zM1030 643l693 -352q-116 -253 -334.5 -400t-492.5 -147q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q260 0 470.5 -133.5t335.5 -366.5zM1543 640h-39v-160h-96v352h136q32 0 54.5 -20
+t28.5 -48t1 -56t-27.5 -48t-57.5 -20z" />
+    <glyph glyph-name="uniF285" unicode="&#xf285;" horiz-adv-x="1792" 
+d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" />
+    <glyph glyph-name="uniF286" unicode="&#xf286;" horiz-adv-x="1792" 
+d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96
+q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 6 2.5 9.5t8.5 5t9.5 2t11.5 0t9 -0.5v391q-32 15 -32 50q0 23 16.5 39t38.5 16t38.5 -16t16.5 -39q0 -35 -32 -50v-17q45 10 83 10q21 0 59.5 -7.5t54.5 -7.5
+q17 0 47 7.5t37 7.5q16 0 16 -16v-210q0 -15 -35 -21.5t-62 -6.5q-18 0 -54.5 7.5t-55.5 7.5q-40 0 -90 -12v-133q1 0 9 0.5t11.5 0t9.5 -2t8.5 -5t2.5 -9.5v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96
+q16 0 16 -16z" />
+    <glyph glyph-name="_607" unicode="&#xf287;" horiz-adv-x="2304" 
+d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96
+q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5
+t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" />
+    <glyph glyph-name="_608" unicode="&#xf288;" horiz-adv-x="1792" 
+d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348
+t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_609" unicode="&#xf289;" horiz-adv-x="2304" 
+d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22
+q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5
+q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13
+q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" />
+    <glyph glyph-name="_610" unicode="&#xf28a;" 
+d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83
+t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20
+q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5
+t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" />
+    <glyph glyph-name="_611" unicode="&#xf28b;" 
+d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103
+t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_612" unicode="&#xf28c;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273
+t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" />
+    <glyph glyph-name="_613" unicode="&#xf28d;" 
+d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5
+t103 -385.5z" />
+    <glyph glyph-name="_614" unicode="&#xf28e;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273
+t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" />
+    <glyph glyph-name="_615" unicode="&#xf290;" horiz-adv-x="1792" 
+d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5
+t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="_616" unicode="&#xf291;" horiz-adv-x="2048" 
+d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5
+t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416
+q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441
+h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" />
+    <glyph glyph-name="_617" unicode="&#xf292;" horiz-adv-x="1792" 
+d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12
+q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311
+q15 0 25 -12q9 -12 6 -28z" />
+    <glyph glyph-name="_618" unicode="&#xf293;" 
+d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5
+t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" />
+    <glyph glyph-name="_619" unicode="&#xf294;" horiz-adv-x="1024" 
+d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" />
+    <glyph glyph-name="_620" unicode="&#xf295;" 
+d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5
+t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5
+t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="_621" unicode="&#xf296;" horiz-adv-x="1792" 
+d="M104 830l792 -1015l-868 630q-18 13 -25 34.5t0 42.5l101 308v0zM566 830h660l-330 -1015v0zM368 1442l198 -612h-462l198 612q8 23 33 23t33 -23zM1688 830l101 -308q7 -21 0 -42.5t-25 -34.5l-868 -630l792 1015v0zM1688 830h-462l198 612q8 23 33 23t33 -23z" />
+    <glyph glyph-name="_622" unicode="&#xf297;" horiz-adv-x="1792" 
+d="M384 704h160v224h-160v-224zM1221 372v92q-104 -36 -243 -38q-135 -1 -259.5 46.5t-220.5 122.5l1 -96q88 -80 212 -128.5t272 -47.5q129 0 238 49zM640 704h640v224h-640v-224zM1792 736q0 -187 -99 -352q89 -102 89 -229q0 -157 -129.5 -268t-313.5 -111
+q-122 0 -225 52.5t-161 140.5q-19 -1 -57 -1t-57 1q-58 -88 -161 -140.5t-225 -52.5q-184 0 -313.5 111t-129.5 268q0 127 89 229q-99 165 -99 352q0 209 120 385.5t326.5 279.5t449.5 103t449.5 -103t326.5 -279.5t120 -385.5z" />
+    <glyph glyph-name="_623" unicode="&#xf298;" 
+d="M515 625v-128h-252v128h252zM515 880v-127h-252v127h252zM1273 369v-128h-341v128h341zM1273 625v-128h-672v128h672zM1273 880v-127h-672v127h672zM1408 20v1240q0 8 -6 14t-14 6h-32l-378 -256l-210 171l-210 -171l-378 256h-32q-8 0 -14 -6t-6 -14v-1240q0 -8 6 -14
+t14 -6h1240q8 0 14 6t6 14zM553 1130l185 150h-406zM983 1130l221 150h-406zM1536 1260v-1240q0 -62 -43 -105t-105 -43h-1240q-62 0 -105 43t-43 105v1240q0 62 43 105t105 43h1240q62 0 105 -43t43 -105z" />
+    <glyph glyph-name="_624" unicode="&#xf299;" horiz-adv-x="1792" 
+d="M896 720q-104 196 -160 278q-139 202 -347 318q-34 19 -70 36q-89 40 -94 32t34 -38l39 -31q62 -43 112.5 -93.5t94.5 -116.5t70.5 -113t70.5 -131q9 -17 13 -25q44 -84 84 -153t98 -154t115.5 -150t131 -123.5t148.5 -90.5q153 -66 154 -60q1 3 -49 37q-53 36 -81 57
+q-77 58 -179 211t-185 310zM549 177q-76 60 -132.5 125t-98 143.5t-71 154.5t-58.5 186t-52 209t-60.5 252t-76.5 289q273 0 497.5 -36t379 -92t271 -144.5t185.5 -172.5t110 -198.5t56 -199.5t12.5 -198.5t-9.5 -173t-20 -143.5t-13 -107l323 -327h-104l-281 285
+q-22 -2 -91.5 -14t-121.5 -19t-138 -6t-160.5 17t-167.5 59t-179 111z" />
+    <glyph glyph-name="_625" unicode="&#xf29a;" horiz-adv-x="1792" 
+d="M1374 879q-6 26 -28.5 39.5t-48.5 7.5q-261 -62 -401 -62t-401 62q-26 6 -48.5 -7.5t-28.5 -39.5t7.5 -48.5t39.5 -28.5q194 -46 303 -58q-2 -158 -15.5 -269t-26.5 -155.5t-41 -115.5l-9 -21q-10 -25 1 -49t36 -34q9 -4 23 -4q44 0 60 41l8 20q54 139 71 259h42
+q17 -120 71 -259l8 -20q16 -41 60 -41q14 0 23 4q25 10 36 34t1 49l-9 21q-28 71 -41 115.5t-26.5 155.5t-15.5 269q109 12 303 58q26 6 39.5 28.5t7.5 48.5zM1024 1024q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z
+M1600 640q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5zM896 1408q-156 0 -298 -61t-245 -164t-164 -245t-61 -298t61 -298
+t164 -245t245 -164t298 -61t298 61t245 164t164 245t61 298t-61 298t-164 245t-245 164t-298 61zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_626" unicode="&#xf29b;" 
+d="M1438 723q34 -35 29 -82l-44 -551q-4 -42 -34.5 -70t-71.5 -28q-6 0 -9 1q-44 3 -72.5 36.5t-25.5 77.5l35 429l-143 -8q55 -113 55 -240q0 -216 -148 -372l-137 137q91 101 91 235q0 145 -102.5 248t-247.5 103q-134 0 -236 -92l-137 138q120 114 284 141l264 300
+l-149 87l-181 -161q-33 -30 -77 -27.5t-73 35.5t-26.5 77t34.5 73l239 213q26 23 60 26.5t64 -14.5l488 -283q36 -21 48 -68q17 -67 -26 -117l-205 -232l371 20q49 3 83 -32zM1240 1180q-74 0 -126 52t-52 126t52 126t126 52t126.5 -52t52.5 -126t-52.5 -126t-126.5 -52z
+M613 -62q106 0 196 61l139 -139q-146 -116 -335 -116q-148 0 -273.5 73t-198.5 198t-73 273q0 188 116 336l139 -139q-60 -88 -60 -197q0 -145 102.5 -247.5t247.5 -102.5z" />
+    <glyph glyph-name="_627" unicode="&#xf29c;" 
+d="M880 336v-160q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h160q14 0 23 -9t9 -23zM1136 832q0 -50 -15 -90t-45.5 -69t-52 -44t-59.5 -36q-32 -18 -46.5 -28t-26 -24t-11.5 -29v-32q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v68q0 35 10.5 64.5
+t24 47.5t39 35.5t41 25.5t44.5 21q53 25 75 43t22 49q0 42 -43.5 71.5t-95.5 29.5q-56 0 -95 -27q-29 -20 -80 -83q-9 -12 -25 -12q-11 0 -19 6l-108 82q-10 7 -12 20t5 23q122 192 349 192q129 0 238.5 -89.5t109.5 -214.5zM768 1280q-130 0 -248.5 -51t-204 -136.5
+t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5
+t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_628" unicode="&#xf29d;" horiz-adv-x="1408" 
+d="M366 1225q-64 0 -110 45.5t-46 110.5q0 64 46 109.5t110 45.5t109.5 -45.5t45.5 -109.5q0 -65 -45.5 -110.5t-109.5 -45.5zM917 583q0 -50 -30 -67.5t-63.5 -6.5t-47.5 34l-367 438q-7 12 -14 15.5t-11 1.5l-3 -3q-7 -8 4 -21l122 -139l1 -354l-161 -457
+q-67 -192 -92 -234q-15 -26 -28 -32q-50 -26 -103 -1q-29 13 -41.5 43t-9.5 57q2 17 197 618l5 416l-85 -164l35 -222q4 -24 -1 -42t-14 -27.5t-19 -16t-17 -7.5l-7 -2q-19 -3 -34.5 3t-24 16t-14 22t-7.5 19.5t-2 9.5l-46 299l211 381q23 34 113 34q75 0 107 -40l424 -521
+q7 -5 14 -17l3 -3l-1 -1q7 -13 7 -29zM514 433q43 -113 88.5 -225t69.5 -168l24 -55q36 -93 42 -125q11 -70 -36 -97q-35 -22 -66 -16t-51 22t-29 35h-1q-6 16 -8 25l-124 351zM1338 -159q31 -49 31 -57q0 -5 -3 -7q-9 -5 -14.5 0.5t-15.5 26t-16 30.5q-114 172 -423 661
+q3 -1 7 1t7 4l3 2q11 9 11 17z" />
+    <glyph glyph-name="_629" unicode="&#xf29e;" horiz-adv-x="2304" 
+d="M504 542h171l-1 265zM1530 641q0 87 -50.5 140t-146.5 53h-54v-388h52q91 0 145 57t54 138zM956 1018l1 -756q0 -14 -9.5 -24t-23.5 -10h-216q-14 0 -23.5 10t-9.5 24v62h-291l-55 -81q-10 -15 -28 -15h-267q-21 0 -30.5 18t3.5 35l556 757q9 14 27 14h332q14 0 24 -10
+t10 -24zM1783 641q0 -193 -125.5 -303t-324.5 -110h-270q-14 0 -24 10t-10 24v756q0 14 10 24t24 10h268q200 0 326 -109t126 -302zM1939 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5
+t-7.5 60t-20 91.5t-41 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2123 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-45 -108t-74 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5
+h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2304 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66 104.5t41 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96
+t9.5 -70.5z" />
+    <glyph glyph-name="uniF2A0" unicode="&#xf2a0;" horiz-adv-x="1408" 
+d="M617 -153q0 11 -13 58t-31 107t-20 69q-1 4 -5 26.5t-8.5 36t-13.5 21.5q-15 14 -51 14q-23 0 -70 -5.5t-71 -5.5q-34 0 -47 11q-6 5 -11 15.5t-7.5 20t-6.5 24t-5 18.5q-37 128 -37 255t37 255q1 4 5 18.5t6.5 24t7.5 20t11 15.5q13 11 47 11q24 0 71 -5.5t70 -5.5
+q36 0 51 14q9 8 13.5 21.5t8.5 36t5 26.5q2 9 20 69t31 107t13 58q0 22 -43.5 52.5t-75.5 42.5q-20 8 -45 8q-34 0 -98 -18q-57 -17 -96.5 -40.5t-71 -66t-46 -70t-45.5 -94.5q-6 -12 -9 -19q-49 -107 -68 -216t-19 -244t19 -244t68 -216q56 -122 83 -161q63 -91 179 -127
+l6 -2q64 -18 98 -18q25 0 45 8q32 12 75.5 42.5t43.5 52.5zM776 760q-26 0 -45 19t-19 45.5t19 45.5q37 37 37 90q0 52 -37 91q-19 19 -19 45t19 45t45 19t45 -19q75 -75 75 -181t-75 -181q-21 -19 -45 -19zM957 579q-27 0 -45 19q-19 19 -19 45t19 45q112 114 112 272
+t-112 272q-19 19 -19 45t19 45t45 19t45 -19q150 -150 150 -362t-150 -362q-18 -19 -45 -19zM1138 398q-27 0 -45 19q-19 19 -19 45t19 45q90 91 138.5 208t48.5 245t-48.5 245t-138.5 208q-19 19 -19 45t19 45t45 19t45 -19q109 -109 167 -249t58 -294t-58 -294t-167 -249
+q-18 -19 -45 -19z" />
+    <glyph glyph-name="uniF2A1" unicode="&#xf2a1;" horiz-adv-x="2176" 
+d="M192 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 352
+q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 864
+q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 1376q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 192q0 -80 -56 -136
+t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 1216q0 -80 -56 -136t-136 -56
+t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 192q0 -80 -56 -136t-136 -56t-136 56
+t-56 136t56 136t136 56t136 -56t56 -136zM1664 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136
+t56 136t136 56t136 -56t56 -136zM2176 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z" />
+    <glyph glyph-name="uniF2A2" unicode="&#xf2a2;" horiz-adv-x="1792" 
+d="M128 -192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM320 0q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM365 365l256 -256l-90 -90l-256 256zM704 384q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45z
+M1411 704q0 -59 -11.5 -108.5t-37.5 -93.5t-44 -67.5t-53 -64.5q-31 -35 -45.5 -54t-33.5 -50t-26.5 -64t-7.5 -74q0 -159 -112.5 -271.5t-271.5 -112.5q-26 0 -45 19t-19 45t19 45t45 19q106 0 181 75t75 181q0 57 11.5 105.5t37 91t43.5 66.5t52 63q40 46 59.5 72
+t37.5 74.5t18 103.5q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM896 576q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45
+t45 19t45 -19t19 -45zM1184 704q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 93 -65.5 158.5t-158.5 65.5q-92 0 -158 -65.5t-66 -158.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 146 103 249t249 103t249 -103t103 -249zM1578 993q10 -25 -1 -49t-36 -34q-9 -4 -23 -4
+q-19 0 -35.5 11t-23.5 30q-68 178 -224 295q-21 16 -25 42t12 47q17 21 43 25t47 -12q183 -137 266 -351zM1788 1074q9 -25 -1.5 -49t-35.5 -34q-11 -4 -23 -4q-44 0 -60 41q-92 238 -297 393q-22 16 -25.5 42t12.5 47q16 22 42 25.5t47 -12.5q235 -175 341 -449z" />
+    <glyph glyph-name="uniF2A3" unicode="&#xf2a3;" horiz-adv-x="2304" 
+d="M1032 576q-59 2 -84 55q-17 34 -48 53.5t-68 19.5q-53 0 -90.5 -37.5t-37.5 -90.5q0 -56 36 -89l10 -8q34 -31 82 -31q37 0 68 19.5t48 53.5q25 53 84 55zM1600 704q0 56 -36 89l-10 8q-34 31 -82 31q-37 0 -68 -19.5t-48 -53.5q-25 -53 -84 -55q59 -2 84 -55
+q17 -34 48 -53.5t68 -19.5q53 0 90.5 37.5t37.5 90.5zM1174 925q-17 -35 -55 -48t-73 4q-62 31 -134 31q-51 0 -99 -17q3 0 9.5 0.5t9.5 0.5q92 0 170.5 -50t118.5 -133q17 -36 3.5 -73.5t-49.5 -54.5q-18 -9 -39 -9q21 0 39 -9q36 -17 49.5 -54.5t-3.5 -73.5
+q-40 -83 -118.5 -133t-170.5 -50h-6q-16 2 -44 4l-290 27l-239 -120q-14 -7 -29 -7q-40 0 -57 35l-160 320q-11 23 -4 47.5t29 37.5l209 119l148 267q17 155 91.5 291.5t195.5 236.5q31 25 70.5 21.5t64.5 -34.5t21.5 -70t-34.5 -65q-70 -59 -117 -128q123 84 267 101
+q40 5 71.5 -19t35.5 -64q5 -40 -19 -71.5t-64 -35.5q-84 -10 -159 -55q46 10 99 10q115 0 218 -50q36 -18 49 -55.5t-5 -73.5zM2137 1085l160 -320q11 -23 4 -47.5t-29 -37.5l-209 -119l-148 -267q-17 -155 -91.5 -291.5t-195.5 -236.5q-26 -22 -61 -22q-45 0 -74 35
+q-25 31 -21.5 70t34.5 65q70 59 117 128q-123 -84 -267 -101q-4 -1 -12 -1q-36 0 -63.5 24t-31.5 60q-5 40 19 71.5t64 35.5q84 10 159 55q-46 -10 -99 -10q-115 0 -218 50q-36 18 -49 55.5t5 73.5q17 35 55 48t73 -4q62 -31 134 -31q51 0 99 17q-3 0 -9.5 -0.5t-9.5 -0.5
+q-92 0 -170.5 50t-118.5 133q-17 36 -3.5 73.5t49.5 54.5q18 9 39 9q-21 0 -39 9q-36 17 -49.5 54.5t3.5 73.5q40 83 118.5 133t170.5 50h6h1q14 -2 42 -4l291 -27l239 120q14 7 29 7q40 0 57 -35z" />
+    <glyph glyph-name="uniF2A4" unicode="&#xf2a4;" horiz-adv-x="1792" 
+d="M1056 704q0 -26 19 -45t45 -19t45 19t19 45q0 146 -103 249t-249 103t-249 -103t-103 -249q0 -26 19 -45t45 -19t45 19t19 45q0 93 66 158.5t158 65.5t158 -65.5t66 -158.5zM835 1280q-117 0 -223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5q0 -26 19 -45t45 -19t45 19
+t19 45q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -55 -18 -103.5t-37.5 -74.5t-59.5 -72q-34 -39 -52 -63t-43.5 -66.5t-37 -91t-11.5 -105.5q0 -106 -75 -181t-181 -75q-26 0 -45 -19t-19 -45t19 -45t45 -19q159 0 271.5 112.5t112.5 271.5q0 41 7.5 74
+t26.5 64t33.5 50t45.5 54q35 41 53 64.5t44 67.5t37.5 93.5t11.5 108.5q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5zM591 561l226 -226l-579 -579q-12 -12 -29 -12t-29 12l-168 168q-12 12 -12 29t12 29zM1612 1524l168 -168q12 -12 12 -29t-12 -30l-233 -233
+l-26 -25l-71 -71q-66 153 -195 258l91 91l207 207q13 12 30 12t29 -12z" />
+    <glyph glyph-name="uniF2A5" unicode="&#xf2a5;" 
+d="M866 1021q0 -27 -13 -94q-11 -50 -31.5 -150t-30.5 -150q-2 -11 -4.5 -12.5t-13.5 -2.5q-20 -2 -31 -2q-58 0 -84 49.5t-26 113.5q0 88 35 174t103 124q28 14 51 14q28 0 36.5 -16.5t8.5 -47.5zM1352 597q0 14 -39 75.5t-52 66.5q-21 8 -34 8q-91 0 -226 -77l-2 2
+q3 22 27.5 135t24.5 178q0 233 -242 233q-24 0 -68 -6q-94 -17 -168.5 -89.5t-111.5 -166.5t-37 -189q0 -146 80.5 -225t227.5 -79q25 0 25 -3t-1 -5q-4 -34 -26 -117q-14 -52 -51.5 -101t-82.5 -49q-42 0 -42 47q0 24 10.5 47.5t25 39.5t29.5 28.5t26 20t11 8.5q0 3 -7 10
+q-24 22 -58.5 36.5t-65.5 14.5q-35 0 -63.5 -34t-41 -75t-12.5 -75q0 -88 51.5 -142t138.5 -54q82 0 155 53t117.5 126t65.5 153q6 22 15.5 66.5t14.5 66.5q3 12 14 18q118 60 227 60q48 0 127 -18q1 -1 4 -1q5 0 9.5 4.5t4.5 8.5zM1536 1120v-960q0 -119 -84.5 -203.5
+t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="uniF2A6" unicode="&#xf2a6;" horiz-adv-x="1535" 
+d="M744 1231q0 24 -2 38.5t-8.5 30t-21 23t-37.5 7.5q-39 0 -78 -23q-105 -58 -159 -190.5t-54 -269.5q0 -44 8.5 -85.5t26.5 -80.5t52.5 -62.5t81.5 -23.5q4 0 18 -0.5t20 0t16 3t15 8.5t7 16q16 77 48 231.5t48 231.5q19 91 19 146zM1498 575q0 -7 -7.5 -13.5t-15.5 -6.5
+l-6 1q-22 3 -62 11t-72 12.5t-63 4.5q-167 0 -351 -93q-15 -8 -21 -27q-10 -36 -24.5 -105.5t-22.5 -100.5q-23 -91 -70 -179.5t-112.5 -164.5t-154.5 -123t-185 -47q-135 0 -214.5 83.5t-79.5 219.5q0 53 19.5 117t63 116.5t97.5 52.5q38 0 120 -33.5t83 -61.5
+q0 -1 -16.5 -12.5t-39.5 -31t-46 -44.5t-39 -61t-16 -74q0 -33 16.5 -53t48.5 -20q45 0 85 31.5t66.5 78t48 105.5t32.5 107t16 90v9q0 2 -3.5 3.5t-8.5 1.5h-10t-10 -0.5t-6 -0.5q-227 0 -352 122.5t-125 348.5q0 108 34.5 221t96 210t156 167.5t204.5 89.5q52 9 106 9
+q374 0 374 -360q0 -98 -38 -273t-43 -211l3 -3q101 57 182.5 88t167.5 31q22 0 53 -13q19 -7 80 -102.5t61 -116.5z" />
+    <glyph glyph-name="uniF2A7" unicode="&#xf2a7;" horiz-adv-x="1664" 
+d="M831 863q32 0 59 -18l222 -148q61 -40 110 -97l146 -170q40 -46 29 -106l-72 -413q-6 -32 -29.5 -53.5t-55.5 -25.5l-527 -56l-352 -32h-9q-39 0 -67.5 28t-28.5 68q0 37 27 64t65 32l260 32h-448q-41 0 -69.5 30t-26.5 71q2 39 32 65t69 26l442 1l-521 64q-41 5 -66 37
+t-19 73q6 35 34.5 57.5t65.5 22.5h10l481 -60l-351 94q-38 10 -62 41.5t-18 68.5q6 36 33 58.5t62 22.5q6 0 20 -2l448 -96l217 -37q1 0 3 -0.5t3 -0.5q23 0 30.5 23t-12.5 36l-186 125q-35 23 -42 63.5t18 73.5q27 38 76 38zM761 661l186 -125l-218 37l-5 2l-36 38
+l-238 262q-1 1 -2.5 3.5t-2.5 3.5q-24 31 -18.5 70t37.5 64q31 23 68 17.5t64 -33.5l142 -147q-2 -1 -5 -3.5t-4 -4.5q-32 -45 -23 -99t55 -85zM1648 1115l15 -266q4 -73 -11 -147l-48 -219q-12 -59 -67 -87l-106 -54q2 62 -39 109l-146 170q-53 61 -117 103l-222 148
+q-34 23 -76 23q-51 0 -88 -37l-235 312q-25 33 -18 73.5t41 63.5q33 22 71.5 14t62.5 -40l266 -352l-262 455q-21 35 -10.5 75t47.5 59q35 18 72.5 6t57.5 -46l241 -420l-136 337q-15 35 -4.5 74t44.5 56q37 19 76 6t56 -51l193 -415l101 -196q8 -15 23 -17.5t27 7.5t11 26
+l-12 224q-2 41 26 71t69 31q39 0 67 -28.5t30 -67.5z" />
+    <glyph glyph-name="uniF2A8" unicode="&#xf2a8;" horiz-adv-x="1792" 
+d="M335 180q-2 0 -6 2q-86 57 -168.5 145t-139.5 180q-21 30 -21 69q0 9 2 19t4 18t7 18t8.5 16t10.5 17t10 15t12 15.5t11 14.5q184 251 452 365q-110 198 -110 211q0 19 17 29q116 64 128 64q18 0 28 -16l124 -229q92 19 192 19q266 0 497.5 -137.5t378.5 -369.5
+q20 -31 20 -69t-20 -69q-91 -142 -218.5 -253.5t-278.5 -175.5q110 -198 110 -211q0 -20 -17 -29q-116 -64 -127 -64q-19 0 -29 16l-124 229l-64 119l-444 820l7 7q-58 -24 -99 -47q3 -5 127 -234t243 -449t119 -223q0 -7 -9 -9q-13 -3 -72 -3q-57 0 -60 7l-456 841
+q-39 -28 -82 -68q24 -43 214 -393.5t190 -354.5q0 -10 -11 -10q-14 0 -82.5 22t-72.5 28l-106 197l-224 413q-44 -53 -78 -106q2 -3 18 -25t23 -34l176 -327q0 -10 -10 -10zM1165 282l49 -91q273 111 450 385q-180 277 -459 389q67 -64 103 -148.5t36 -176.5
+q0 -106 -47 -200.5t-132 -157.5zM848 896q0 -20 14 -34t34 -14q86 0 147 -61t61 -147q0 -20 14 -34t34 -14t34 14t14 34q0 126 -89 215t-215 89q-20 0 -34 -14t-14 -34zM1214 961l-9 4l7 -7z" />
+    <glyph glyph-name="uniF2A9" unicode="&#xf2a9;" horiz-adv-x="1280" 
+d="M1050 430q0 -215 -147 -374q-148 -161 -378 -161q-232 0 -378 161q-147 159 -147 374q0 147 68 270.5t189 196.5t268 73q96 0 182 -31q-32 -62 -39 -126q-66 28 -143 28q-167 0 -280.5 -123t-113.5 -291q0 -170 112.5 -288.5t281.5 -118.5t281 118.5t112 288.5
+q0 89 -32 166q66 13 123 49q41 -98 41 -212zM846 619q0 -192 -79.5 -345t-238.5 -253l-14 -1q-29 0 -62 5q83 32 146.5 102.5t99.5 154.5t58.5 189t30 192.5t7.5 178.5q0 69 -3 103q55 -160 55 -326zM791 947v-2q-73 214 -206 440q88 -59 142.5 -186.5t63.5 -251.5z
+M1035 744q-83 0 -160 75q218 120 290 247q19 37 21 56q-42 -94 -139.5 -166.5t-204.5 -97.5q-35 54 -35 113q0 37 17 79t43 68q46 44 157 74q59 16 106 58.5t74 100.5q74 -105 74 -253q0 -109 -24 -170q-32 -77 -88.5 -130.5t-130.5 -53.5z" />
+    <glyph glyph-name="uniF2AA" unicode="&#xf2aa;" 
+d="M1050 495q0 78 -28 147q-41 -25 -85 -34q22 -50 22 -114q0 -117 -77 -198.5t-193 -81.5t-193.5 81.5t-77.5 198.5q0 115 78 199.5t193 84.5q53 0 98 -19q4 43 27 87q-60 21 -125 21q-154 0 -257.5 -108.5t-103.5 -263.5t103.5 -261t257.5 -106t257.5 106.5t103.5 260.5z
+M872 850q2 -24 2 -71q0 -63 -5 -123t-20.5 -132.5t-40.5 -130t-68.5 -106t-100.5 -70.5q21 -3 42 -3h10q219 139 219 411q0 116 -38 225zM872 850q-4 80 -44 171.5t-98 130.5q92 -156 142 -302zM1207 955q0 102 -51 174q-41 -86 -124 -109q-69 -19 -109 -53.5t-40 -99.5
+q0 -40 24 -77q74 17 140.5 67t95.5 115q-4 -52 -74.5 -111.5t-138.5 -97.5q52 -52 110 -52q51 0 90 37t60 90q17 42 17 117zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5
+t84.5 -203.5z" />
+    <glyph glyph-name="uniF2AB" unicode="&#xf2ab;" 
+d="M1279 388q0 22 -22 27q-67 15 -118 59t-80 108q-7 19 -7 25q0 15 19.5 26t43 17t43 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-12 0 -32 -8t-31 -8q-4 0 -12 2q5 95 5 114q0 79 -17 114q-36 78 -103 121.5t-152 43.5q-199 0 -275 -165q-17 -35 -17 -114q0 -19 5 -114
+q-4 -2 -14 -2q-12 0 -32 7.5t-30 7.5q-21 0 -38.5 -12t-17.5 -32q0 -21 19.5 -35.5t43 -20.5t43 -17t19.5 -26q0 -6 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -46 137 -68q2 -5 6 -26t11.5 -30.5t23.5 -9.5q12 0 37.5 4.5t39.5 4.5q35 0 67 -15t54 -32.5t57.5 -32.5
+t76.5 -15q43 0 79 15t57.5 32.5t53.5 32.5t67 15q14 0 39.5 -4t38.5 -4q16 0 23 10t11 30t6 25q137 22 137 68zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5
+t103 -385.5z" />
+    <glyph glyph-name="uniF2AC" unicode="&#xf2ac;" horiz-adv-x="1664" 
+d="M848 1408q134 1 240.5 -68.5t163.5 -192.5q27 -58 27 -179q0 -47 -9 -191q14 -7 28 -7q18 0 51 13.5t51 13.5q29 0 56 -18t27 -46q0 -32 -31.5 -54t-69 -31.5t-69 -29t-31.5 -47.5q0 -15 12 -43q37 -82 102.5 -150t144.5 -101q28 -12 80 -23q28 -6 28 -35
+q0 -70 -219 -103q-7 -11 -11 -39t-14 -46.5t-33 -18.5q-20 0 -62 6.5t-64 6.5q-37 0 -62 -5q-32 -5 -63 -22.5t-58 -38t-58 -40.5t-76 -33.5t-99 -13.5q-52 0 -96.5 13.5t-75 33.5t-57.5 40.5t-58 38t-62 22.5q-26 5 -63 5q-24 0 -65.5 -7.5t-58.5 -7.5q-25 0 -35 18.5
+t-14 47.5t-11 40q-219 33 -219 103q0 29 28 35q52 11 80 23q78 32 144.5 101t102.5 150q12 28 12 43q0 28 -31.5 47.5t-69.5 29.5t-69.5 31.5t-31.5 52.5q0 27 26 45.5t55 18.5q15 0 48 -13t53 -13q18 0 32 7q-9 142 -9 190q0 122 27 180q64 137 172 198t264 63z" />
+    <glyph glyph-name="uniF2AD" unicode="&#xf2ad;" 
+d="M1280 388q0 22 -22 27q-67 14 -118 58t-80 109q-7 14 -7 25q0 15 19.5 26t42.5 17t42.5 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-11 0 -31 -8t-32 -8q-4 0 -12 2q5 63 5 115q0 78 -17 114q-36 78 -102.5 121.5t-152.5 43.5q-198 0 -275 -165q-18 -38 -18 -115
+q0 -38 6 -114q-10 -2 -15 -2q-11 0 -31.5 8t-30.5 8q-20 0 -37.5 -12.5t-17.5 -32.5q0 -21 19.5 -35.5t42.5 -20.5t42.5 -17t19.5 -26q0 -11 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -47 138 -69q2 -5 6 -26t11 -30.5t23 -9.5q13 0 38.5 5t38.5 5q35 0 67.5 -15
+t54.5 -32.5t57.5 -32.5t76.5 -15q43 0 79 15t57.5 32.5t54 32.5t67.5 15q13 0 39 -4.5t39 -4.5q15 0 22.5 9.5t11.5 31t5 24.5q138 22 138 69zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960
+q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="uniF2AE" unicode="&#xf2ae;" horiz-adv-x="2304" 
+d="M2304 1536q-69 -46 -125 -92t-89 -81t-59.5 -71.5t-37.5 -57.5t-22 -44.5t-14 -29.5q-10 -18 -35.5 -136.5t-48.5 -164.5q-15 -29 -50 -60.5t-67.5 -50.5t-72.5 -41t-48 -28q-47 -31 -151 -231q-341 14 -630 -158q-92 -53 -303 -179q47 16 86 31t55 22l15 7
+q71 27 163 64.5t133.5 53.5t108 34.5t142.5 31.5q186 31 465 -7q1 0 10 -3q11 -6 14 -17t-3 -22l-194 -345q-15 -29 -47 -22q-128 24 -354 24q-146 0 -402 -44.5t-392 -46.5q-82 -1 -149 13t-107 37t-61 40t-33 34l-1 1v2q0 6 6 6q138 0 371 55q192 366 374.5 524t383.5 158
+q5 0 14.5 -0.5t38 -5t55 -12t61.5 -24.5t63 -39.5t54 -59t40 -82.5l102 177q2 4 21 42.5t44.5 86.5t61 109.5t84 133.5t100.5 137q66 82 128 141.5t121.5 96.5t92.5 53.5t88 39.5z" />
+    <glyph glyph-name="uniF2B0" unicode="&#xf2b0;" 
+d="M1322 640q0 -45 -5 -76l-236 14l224 -78q-19 -73 -58 -141l-214 103l177 -158q-44 -61 -107 -108l-157 178l103 -215q-61 -37 -140 -59l-79 228l14 -240q-38 -6 -76 -6t-76 6l14 238l-78 -226q-74 19 -140 59l103 215l-157 -178q-59 43 -108 108l178 158l-214 -104
+q-39 69 -58 141l224 79l-237 -14q-5 42 -5 76q0 35 5 77l238 -14l-225 79q19 73 58 140l214 -104l-177 159q46 61 107 108l158 -178l-103 215q67 39 140 58l77 -224l-13 236q36 6 75 6q38 0 76 -6l-14 -237l78 225q74 -19 140 -59l-103 -214l158 178q61 -47 107 -108
+l-177 -159l213 104q37 -62 58 -141l-224 -78l237 14q5 -31 5 -77zM1352 640q0 160 -78.5 295.5t-213 214t-292.5 78.5q-119 0 -227 -46.5t-186.5 -125t-124.5 -187.5t-46 -229q0 -119 46 -228t124.5 -187.5t186.5 -125t227 -46.5q158 0 292.5 78.5t213 214t78.5 294.5z
+M1425 1023v-766l-657 -383l-657 383v766l657 383zM768 -183l708 412v823l-708 411l-708 -411v-823zM1536 1088v-896l-768 -448l-768 448v896l768 448z" />
+    <glyph glyph-name="uniF2B1" unicode="&#xf2b1;" horiz-adv-x="1664" 
+d="M339 1318h691l-26 -72h-665q-110 0 -188.5 -79t-78.5 -189v-771q0 -95 60.5 -169.5t153.5 -93.5q23 -5 98 -5v-72h-45q-140 0 -239.5 100t-99.5 240v771q0 140 99.5 240t239.5 100zM1190 1536h247l-482 -1294q-23 -61 -40.5 -103.5t-45 -98t-54 -93.5t-64.5 -78.5
+t-79.5 -65t-95.5 -41t-116 -18.5v195q163 26 220 182q20 52 20 105q0 54 -20 106l-285 733h228l187 -585zM1664 978v-1111h-795q37 55 45 73h678v1038q0 85 -49.5 155t-129.5 99l25 67q101 -34 163.5 -123.5t62.5 -197.5z" />
+    <glyph glyph-name="uniF2B2" unicode="&#xf2b2;" horiz-adv-x="1792" 
+d="M852 1227q0 -29 -17 -52.5t-45 -23.5t-45 23.5t-17 52.5t17 52.5t45 23.5t45 -23.5t17 -52.5zM688 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50 -21.5t-20 -51.5v-114q0 -30 20.5 -52t49.5 -22q30 0 50.5 22t20.5 52zM860 -149v114q0 30 -20 51.5t-50 21.5t-50.5 -21.5
+t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22q29 0 49.5 22t20.5 52zM1034 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1208 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114
+q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1476 535q-84 -160 -232 -259.5t-323 -99.5q-123 0 -229.5 51.5t-178.5 137t-113 197.5t-41 232q0 88 21 174q-104 -175 -104 -390q0 -162 65 -312t185 -251q30 57 91 57q56 0 86 -50q32 50 87 50q56 0 86 -50q32 50 87 50t87 -50
+q30 50 86 50q28 0 52.5 -15.5t37.5 -40.5q112 94 177 231.5t73 287.5zM1326 564q0 75 -72 75q-17 0 -47 -6q-95 -19 -149 -19q-226 0 -226 243q0 86 30 204q-83 -127 -83 -275q0 -150 89 -260.5t235 -110.5q111 0 210 70q13 48 13 79zM884 1223q0 50 -32 89.5t-81 39.5
+t-81 -39.5t-32 -89.5q0 -51 31.5 -90.5t81.5 -39.5t81.5 39.5t31.5 90.5zM1513 884q0 96 -37.5 179t-113 137t-173.5 54q-77 0 -149 -35t-127 -94q-48 -159 -48 -268q0 -104 45.5 -157t147.5 -53q53 0 142 19q36 6 53 6q51 0 77.5 -28t26.5 -80q0 -26 -4 -46
+q75 68 117.5 165.5t42.5 200.5zM1792 667q0 -111 -33.5 -249.5t-93.5 -204.5q-58 -64 -195 -142.5t-228 -104.5l-4 -1v-114q0 -43 -29.5 -75t-72.5 -32q-56 0 -86 50q-32 -50 -87 -50t-87 50q-30 -50 -86 -50q-55 0 -87 50q-30 -50 -86 -50q-47 0 -75 33.5t-28 81.5
+q-90 -68 -198 -68q-118 0 -211 80q54 1 106 20q-113 31 -182 127q32 -7 71 -7q89 0 164 46q-192 192 -240 306q-24 56 -24 160q0 57 9 125.5t31.5 146.5t55 141t86.5 105t120 42q59 0 81 -52q19 29 42 54q2 3 12 13t13 16q10 15 23 38t25 42t28 39q87 111 211.5 177
+t260.5 66q35 0 62 -4q59 64 146 64q83 0 140 -57q5 -5 5 -12q0 -5 -6 -13.5t-12.5 -16t-16 -17l-10.5 -10.5q17 -6 36 -18t19 -24q0 -6 -16 -25q157 -138 197 -378q25 30 60 30q45 0 100 -49q90 -80 90 -279z" />
+    <glyph glyph-name="uniF2B3" unicode="&#xf2b3;" 
+d="M917 631q0 33 -6 64h-362v-132h217q-12 -76 -74.5 -120.5t-142.5 -44.5q-99 0 -169 71.5t-70 170.5t70 170.5t169 71.5q93 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585h109v110
+h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="uniF2B4" unicode="&#xf2b4;" 
+d="M1536 1024v-839q0 -48 -49 -62q-174 -52 -338 -52q-73 0 -215.5 29.5t-227.5 29.5q-164 0 -370 -48v-338h-160v1368q-63 25 -101 81t-38 124q0 91 64 155t155 64t155 -64t64 -155q0 -68 -38 -124t-101 -81v-68q190 44 343 44q99 0 198 -15q14 -2 111.5 -22.5t149.5 -20.5
+q77 0 165 18q11 2 80 21t89 19q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="uniF2B5" unicode="&#xf2b5;" horiz-adv-x="2304" 
+d="M192 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32zM1665 442q-10 13 -38.5 50t-41.5 54t-38 49t-42.5 53t-40.5 47t-45 49l-125 -140q-83 -94 -208.5 -92t-205.5 98q-57 69 -56.5 158t58.5 157l177 206q-22 11 -51 16.5t-47.5 6t-56.5 -0.5t-49 -1q-92 0 -158 -66
+l-158 -158h-155v-544q5 0 21 0.5t22 0t19.5 -2t20.5 -4.5t17.5 -8.5t18.5 -13.5l297 -292q115 -111 227 -111q78 0 125 47q57 -20 112.5 8t72.5 85q74 -6 127 44q20 18 36 45.5t14 50.5q10 -10 43 -10q43 0 77 21t49.5 53t12 71.5t-30.5 73.5zM1824 384h96v512h-93l-157 180
+q-66 76 -169 76h-167q-89 0 -146 -67l-209 -243q-28 -33 -28 -75t27 -75q43 -51 110 -52t111 49l193 218q25 23 53.5 21.5t47 -27t8.5 -56.5q16 -19 56 -63t60 -68q29 -36 82.5 -105.5t64.5 -84.5q52 -66 60 -140zM2112 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32z
+M2304 960v-640q0 -26 -19 -45t-45 -19h-434q-27 -65 -82 -106.5t-125 -51.5q-33 -48 -80.5 -81.5t-102.5 -45.5q-42 -53 -104.5 -81.5t-128.5 -24.5q-60 -34 -126 -39.5t-127.5 14t-117 53.5t-103.5 81l-287 282h-358q-26 0 -45 19t-19 45v672q0 26 19 45t45 19h421
+q14 14 47 48t47.5 48t44 40t50.5 37.5t51 25.5t62 19.5t68 5.5h117q99 0 181 -56q82 56 181 56h167q35 0 67 -6t56.5 -14.5t51.5 -26.5t44.5 -31t43 -39.5t39 -42t41 -48t41.5 -48.5h355q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="uniF2B6" unicode="&#xf2b6;" horiz-adv-x="1792" 
+d="M1792 882v-978q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v978q0 15 11 24q8 7 39 34.5t41.5 36t45.5 37.5t70 55.5t96 73t143.5 107t192.5 140.5q5 4 52.5 40t71.5 52.5t64 35t69 18.5t69 -18.5t65 -35.5t71 -52t52 -40q110 -80 192.5 -140.5t143.5 -107
+t96 -73t70 -55.5t45.5 -37.5t41.5 -36t39 -34.5q11 -9 11 -24zM1228 297q263 191 345 252q11 8 12.5 20.5t-6.5 23.5l-38 52q-8 11 -21 12.5t-24 -6.5q-231 -169 -343 -250q-5 -3 -52 -39t-71.5 -52.5t-64.5 -35t-69 -18.5t-69 18.5t-64.5 35t-71.5 52.5t-52 39
+q-186 134 -343 250q-11 8 -24 6.5t-21 -12.5l-38 -52q-8 -11 -6.5 -23.5t12.5 -20.5q82 -61 345 -252q10 -8 50 -38t65 -47t64 -39.5t77.5 -33.5t75.5 -11t75.5 11t79 34.5t64.5 39.5t65 47.5t48 36.5z" />
+    <glyph glyph-name="uniF2B7" unicode="&#xf2b7;" horiz-adv-x="1792" 
+d="M1474 623l39 -51q8 -11 6.5 -23.5t-11.5 -20.5q-43 -34 -126.5 -98.5t-146.5 -113t-67 -51.5q-39 -32 -60 -48t-60.5 -41t-76.5 -36.5t-74 -11.5h-1h-1q-37 0 -74 11.5t-76 36.5t-61 41.5t-60 47.5q-5 4 -65 50.5t-143.5 111t-122.5 94.5q-11 8 -12.5 20.5t6.5 23.5
+l37 52q8 11 21.5 13t24.5 -7q94 -73 306 -236q5 -4 43.5 -35t60.5 -46.5t56.5 -32.5t58.5 -17h1h1q24 0 58.5 17t56.5 32.5t60.5 46.5t43.5 35q258 198 313 242q11 8 24 6.5t21 -12.5zM1664 -96v928q-90 83 -159 139q-91 74 -389 304q-3 2 -43 35t-61 48t-56 32.5t-59 17.5
+h-1h-1q-24 0 -59 -17.5t-56 -32.5t-61 -48t-43 -35q-215 -166 -315.5 -245.5t-129.5 -104t-82 -74.5q-14 -12 -21 -19v-928q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 832v-928q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v928q0 56 41 94
+q123 114 350 290.5t233 181.5q36 30 59 47.5t61.5 42t76 36.5t74.5 12h1h1q37 0 74.5 -12t76 -36.5t61.5 -42t59 -47.5q43 -36 156 -122t226 -177t201 -173q41 -38 41 -94z" />
+    <glyph glyph-name="uniF2B8" unicode="&#xf2b8;" 
+d="M330 1l202 -214l-34 236l-216 213zM556 -225l274 218l-11 245l-300 -215zM245 413l227 -213l-48 327l-245 204zM495 189l317 214l-14 324l-352 -200zM843 178l95 -80l-2 239l-103 79q0 -1 1 -8.5t0 -12t-5 -7.5l-78 -52l85 -70q7 -6 7 -88zM138 930l256 -200l-68 465
+l-279 173zM1173 267l15 234l-230 -164l2 -240zM417 722l373 194l-19 441l-423 -163zM1270 357l20 233l-226 142l-2 -105l144 -95q6 -4 4 -9l-7 -119zM1461 496l30 222l-179 -128l-20 -228zM1273 329l-71 49l-8 -117q0 -5 -4 -8l-234 -187q-7 -5 -14 0l-98 83l7 -161
+q0 -5 -4 -8l-293 -234q-4 -2 -6 -2q-8 2 -8 3l-228 242q-4 4 -59 277q-2 7 5 11l61 37q-94 86 -95 92l-72 351q-2 7 6 12l94 45q-133 100 -135 108l-96 466q-2 10 7 13l433 135q5 0 8 -1l317 -153q6 -4 6 -9l20 -463q0 -7 -6 -10l-118 -61l126 -85q5 -2 5 -8l5 -123l121 74
+q5 4 11 0l84 -56l3 110q0 6 5 9l206 126q6 3 11 0l245 -135q4 -4 5 -7t-6.5 -60t-17.5 -124.5t-10 -70.5q0 -5 -4 -7l-191 -153q-6 -5 -13 0z" />
+    <glyph glyph-name="uniF2B9" unicode="&#xf2b9;" horiz-adv-x="1664" 
+d="M1201 298q0 57 -5.5 107t-21 100.5t-39.5 86t-64 58t-91 22.5q-6 -4 -33.5 -20.5t-42.5 -24.5t-40.5 -20t-49 -17t-46.5 -5t-46.5 5t-49 17t-40.5 20t-42.5 24.5t-33.5 20.5q-51 0 -91 -22.5t-64 -58t-39.5 -86t-21 -100.5t-5.5 -107q0 -73 42 -121.5t103 -48.5h576
+q61 0 103 48.5t42 121.5zM1028 892q0 108 -76.5 184t-183.5 76t-183.5 -76t-76.5 -184q0 -107 76.5 -183t183.5 -76t183.5 76t76.5 183zM1664 352v-192q0 -14 -9 -23t-23 -9h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216
+q66 0 113 -47t47 -113v-224h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="uniF2BA" unicode="&#xf2ba;" horiz-adv-x="1664" 
+d="M1028 892q0 -107 -76.5 -183t-183.5 -76t-183.5 76t-76.5 183q0 108 76.5 184t183.5 76t183.5 -76t76.5 -184zM980 672q46 0 82.5 -17t60 -47.5t39.5 -67t24 -81t11.5 -82.5t3.5 -79q0 -67 -39.5 -118.5t-105.5 -51.5h-576q-66 0 -105.5 51.5t-39.5 118.5q0 48 4.5 93.5
+t18.5 98.5t36.5 91.5t63 64.5t93.5 26h5q7 -4 32 -19.5t35.5 -21t33 -17t37 -16t35 -9t39.5 -4.5t39.5 4.5t35 9t37 16t33 17t35.5 21t32 19.5zM1664 928q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96
+q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216q66 0 113 -47t47 -113v-224h96q13 0 22.5 -9.5t9.5 -22.5v-192zM1408 -96v1472q0 13 -9.5 22.5t-22.5 9.5h-1216
+q-13 0 -22.5 -9.5t-9.5 -22.5v-1472q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5z" />
+    <glyph glyph-name="uniF2BB" unicode="&#xf2bb;" horiz-adv-x="2048" 
+d="M1024 405q0 64 -9 117.5t-29.5 103t-60.5 78t-97 28.5q-6 -4 -30 -18t-37.5 -21.5t-35.5 -17.5t-43 -14.5t-42 -4.5t-42 4.5t-43 14.5t-35.5 17.5t-37.5 21.5t-30 18q-57 0 -97 -28.5t-60.5 -78t-29.5 -103t-9 -117.5t37 -106.5t91 -42.5h512q54 0 91 42.5t37 106.5z
+M867 925q0 94 -66.5 160.5t-160.5 66.5t-160.5 -66.5t-66.5 -160.5t66.5 -160.5t160.5 -66.5t160.5 66.5t66.5 160.5zM1792 416v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1792 676v56q0 15 -10.5 25.5t-25.5 10.5h-568
+q-15 0 -25.5 -10.5t-10.5 -25.5v-56q0 -15 10.5 -25.5t25.5 -10.5h568q15 0 25.5 10.5t10.5 25.5zM1792 928v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-352v96q0 14 -9 23t-23 9
+h-64q-14 0 -23 -9t-9 -23v-96h-768v96q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-96h-352q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2BC" unicode="&#xf2bc;" horiz-adv-x="2048" 
+d="M1024 405q0 -64 -37 -106.5t-91 -42.5h-512q-54 0 -91 42.5t-37 106.5t9 117.5t29.5 103t60.5 78t97 28.5q6 -4 30 -18t37.5 -21.5t35.5 -17.5t43 -14.5t42 -4.5t42 4.5t43 14.5t35.5 17.5t37.5 21.5t30 18q57 0 97 -28.5t60.5 -78t29.5 -103t9 -117.5zM867 925
+q0 -94 -66.5 -160.5t-160.5 -66.5t-160.5 66.5t-66.5 160.5t66.5 160.5t160.5 66.5t160.5 -66.5t66.5 -160.5zM1792 480v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1792 732v-56q0 -15 -10.5 -25.5t-25.5 -10.5h-568
+q-15 0 -25.5 10.5t-10.5 25.5v56q0 15 10.5 25.5t25.5 10.5h568q15 0 25.5 -10.5t10.5 -25.5zM1792 992v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1920 32v1216q0 13 -9.5 22.5t-22.5 9.5h-1728q-13 0 -22.5 -9.5
+t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h352v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h768v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h352q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113
+t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2BD" unicode="&#xf2bd;" horiz-adv-x="1792" 
+d="M1523 197q-22 155 -87.5 257.5t-184.5 118.5q-67 -74 -159.5 -115.5t-195.5 -41.5t-195.5 41.5t-159.5 115.5q-119 -16 -184.5 -118.5t-87.5 -257.5q106 -150 271 -237.5t356 -87.5t356 87.5t271 237.5zM1280 896q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5
+t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1792 640q0 -182 -71 -347.5t-190.5 -286t-285.5 -191.5t-349 -71q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2BE" unicode="&#xf2be;" horiz-adv-x="1792" 
+d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348q0 -181 -70.5 -347t-190.5 -286t-286 -191.5t-349 -71.5t-349 71t-285.5 191.5t-190.5 286t-71 347.5t71 348t191 286t286 191t348 71zM1515 185q149 205 149 455q0 156 -61 298t-164 245t-245 164t-298 61t-298 -61
+t-245 -164t-164 -245t-61 -298q0 -250 149 -455q66 327 306 327q131 -128 313 -128t313 128q240 0 306 -327zM1280 832q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5z" />
+    <glyph glyph-name="uniF2C0" unicode="&#xf2c0;" 
+d="M1201 752q47 -14 89.5 -38t89 -73t79.5 -115.5t55 -172t22 -236.5q0 -154 -100 -263.5t-241 -109.5h-854q-141 0 -241 109.5t-100 263.5q0 131 22 236.5t55 172t79.5 115.5t89 73t89.5 38q-79 125 -79 272q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5
+t198.5 -40.5t163.5 -109.5t109.5 -163.5t40.5 -198.5q0 -147 -79 -272zM768 1408q-159 0 -271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5zM1195 -128q88 0 150.5 71.5t62.5 173.5q0 239 -78.5 377t-225.5 145
+q-145 -127 -336 -127t-336 127q-147 -7 -225.5 -145t-78.5 -377q0 -102 62.5 -173.5t150.5 -71.5h854z" />
+    <glyph glyph-name="uniF2C1" unicode="&#xf2c1;" horiz-adv-x="1280" 
+d="M1024 278q0 -64 -37 -107t-91 -43h-512q-54 0 -91 43t-37 107t9 118t29.5 104t61 78.5t96.5 28.5q80 -75 188 -75t188 75q56 0 96.5 -28.5t61 -78.5t29.5 -104t9 -118zM870 797q0 -94 -67.5 -160.5t-162.5 -66.5t-162.5 66.5t-67.5 160.5t67.5 160.5t162.5 66.5
+t162.5 -66.5t67.5 -160.5zM1152 -96v1376h-1024v-1376q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1280 1376v-1472q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h352v-96q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v96h352
+q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2C2" unicode="&#xf2c2;" horiz-adv-x="2048" 
+d="M896 324q0 54 -7.5 100.5t-24.5 90t-51 68.5t-81 25q-64 -64 -156 -64t-156 64q-47 0 -81 -25t-51 -68.5t-24.5 -90t-7.5 -100.5q0 -55 31.5 -93.5t75.5 -38.5h426q44 0 75.5 38.5t31.5 93.5zM768 768q0 80 -56 136t-136 56t-136 -56t-56 -136t56 -136t136 -56t136 56
+t56 136zM1792 288v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1408 544v64q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1792 544v64q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23
+v-64q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1792 800v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM128 1152h1792v96q0 14 -9 23t-23 9h-1728q-14 0 -23 -9t-9 -23v-96zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728
+q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2C3" unicode="&#xf2c3;" horiz-adv-x="2048" 
+d="M896 324q0 -55 -31.5 -93.5t-75.5 -38.5h-426q-44 0 -75.5 38.5t-31.5 93.5q0 54 7.5 100.5t24.5 90t51 68.5t81 25q64 -64 156 -64t156 64q47 0 81 -25t51 -68.5t24.5 -90t7.5 -100.5zM768 768q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z
+M1792 352v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1408 608v-64q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h320q14 0 23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v64
+q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 864v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1920 32v1120h-1792v-1120q0 -13 9.5 -22.5t22.5 -9.5h1728q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47
+h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2C4" unicode="&#xf2c4;" horiz-adv-x="1792" 
+d="M1255 749q0 318 -105 474.5t-330 156.5q-222 0 -326 -157t-104 -474q0 -316 104 -471.5t326 -155.5q74 0 131 17q-22 43 -39 73t-44 65t-53.5 56.5t-63 36t-77.5 14.5q-46 0 -79 -16l-49 97q105 91 276 91q132 0 215.5 -54t150.5 -155q67 149 67 402zM1645 117h117
+q3 -27 -2 -67t-26.5 -95t-58 -100.5t-107 -78t-162.5 -32.5q-71 0 -130.5 19t-105.5 56t-79 78t-66 96q-97 -27 -205 -27q-150 0 -292.5 58t-253 158.5t-178 249t-67.5 317.5q0 170 67.5 319.5t178.5 250.5t253.5 159t291.5 58q121 0 238.5 -36t217 -106t176 -164.5
+t119.5 -219t43 -261.5q0 -190 -80.5 -347.5t-218.5 -264.5q47 -70 93.5 -106.5t104.5 -36.5q61 0 94 37.5t38 85.5z" />
+    <glyph glyph-name="uniF2C5" unicode="&#xf2c5;" horiz-adv-x="2304" 
+d="M453 -101q0 -21 -16 -37.5t-37 -16.5q-1 0 -13 3q-63 15 -162 140q-225 284 -225 676q0 341 213 614q39 51 95 103.5t94 52.5q19 0 35 -13.5t16 -32.5q0 -27 -63 -90q-98 -102 -147 -184q-119 -199 -119 -449q0 -281 123 -491q50 -85 136 -173q2 -3 14.5 -16t19.5 -21
+t17 -20.5t14.5 -23.5t4.5 -21zM1796 33q0 -29 -17.5 -48.5t-46.5 -19.5h-1081q-26 0 -45 19t-19 45q0 29 17.5 48.5t46.5 19.5h1081q26 0 45 -19t19 -45zM1581 644q0 -134 -67 -233q-25 -38 -69.5 -78.5t-83.5 -60.5q-16 -10 -27 -10q-7 0 -15 6t-8 12q0 9 19 30t42 46
+t42 67.5t19 88.5q0 76 -35 130q-29 42 -46 42q-3 0 -3 -5q0 -12 7.5 -35.5t7.5 -36.5q0 -22 -21.5 -35t-44.5 -13q-66 0 -66 76q0 15 1.5 44t1.5 44q0 25 -10 46q-13 25 -42 53.5t-51 28.5q-5 0 -7 -0.5t-3.5 -2.5t-1.5 -6q0 -2 16 -26t16 -54q0 -37 -19 -68t-46 -54
+t-53.5 -46t-45.5 -54t-19 -68q0 -98 42 -160q29 -43 79 -63q16 -5 17 -10q1 -2 1 -5q0 -16 -18 -16q-6 0 -33 11q-119 43 -195 139.5t-76 218.5q0 55 24.5 115.5t60 115t70.5 108.5t59.5 113.5t24.5 111.5q0 53 -25 94q-29 48 -56 64q-19 9 -19 21q0 20 41 20q50 0 110 -29
+q41 -19 71 -44.5t49.5 -51t33.5 -62.5t22 -69t16 -80q0 -1 3 -17.5t4.5 -25t5.5 -25t9 -27t11 -21.5t14.5 -16.5t18.5 -5.5q23 0 37 14t14 37q0 25 -20 67t-20 52t10 10q27 0 93 -70q72 -76 102.5 -156t30.5 -186zM2304 615q0 -274 -138 -503q-19 -32 -48 -72t-68 -86.5
+t-81 -77t-74 -30.5q-16 0 -31 15.5t-15 31.5q0 15 29 50.5t68.5 77t48.5 52.5q183 230 183 531q0 131 -20.5 235t-72.5 211q-58 119 -163 228q-2 3 -13 13.5t-16.5 16.5t-15 17.5t-15 20t-9.5 18.5t-4 19q0 19 16 35.5t35 16.5q70 0 196 -169q98 -131 146 -273t60 -314
+q2 -42 2 -64z" />
+    <glyph glyph-name="uniF2C6" unicode="&#xf2c6;" horiz-adv-x="1792" 
+d="M1189 229l147 693q9 44 -10.5 63t-51.5 7l-864 -333q-29 -11 -39.5 -25t-2.5 -26.5t32 -19.5l221 -69l513 323q21 14 32 6q7 -5 -4 -15l-415 -375v0v0l-16 -228q23 0 45 22l108 104l224 -165q64 -36 81 38zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71
+t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2C7" unicode="&#xf2c7;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v907h128v-907q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2C8" unicode="&#xf2c8;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v651h128v-651q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2C9" unicode="&#xf2c9;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v395h128v-395q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2CA" unicode="&#xf2ca;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v139h128v-139q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2CB" unicode="&#xf2cb;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 79 56 135.5t136 56.5t136 -56.5t56 -135.5zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5z
+M896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192v128h192z" />
+    <glyph glyph-name="uniF2CC" unicode="&#xf2cc;" horiz-adv-x="1920" 
+d="M1433 1287q10 -10 10 -23t-10 -23l-626 -626q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l44 44q-72 91 -81.5 207t46.5 215q-74 71 -176 71q-106 0 -181 -75t-75 -181v-1280h-256v1280q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5q106 0 201 -41
+t166 -115q94 39 197 24.5t185 -79.5l44 44q10 10 23 10t23 -10zM1344 1024q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1600 896q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1856 1024q26 0 45 -19t19 -45t-19 -45t-45 -19
+t-45 19t-19 45t19 45t45 19zM1216 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1408 832q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1728 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 768
+q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 640q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1600 768q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 512q-26 0 -45 19t-19 45t19 45t45 19t45 -19
+t19 -45t-19 -45t-45 -19zM1472 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 384
+q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 256q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19z" />
+    <glyph glyph-name="uniF2CD" unicode="&#xf2cd;" horiz-adv-x="1792" 
+d="M1664 448v-192q0 -169 -128 -286v-194q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v118q-63 -22 -128 -22h-768q-65 0 -128 22v-110q0 -17 -9.5 -28.5t-22.5 -11.5h-64q-13 0 -22.5 11.5t-9.5 28.5v186q-128 117 -128 286v192h1536zM704 864q0 -14 -9 -23t-23 -9t-23 9
+t-9 23t9 23t23 9t23 -9t9 -23zM768 928q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM704 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1056q0 -14 -9 -23t-23 -9t-23 9
+t-9 23t9 23t23 9t23 -9t9 -23zM704 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v640q0 106 75 181t181 75q108 0 184 -78q46 19 98 12t93 -39l22 22q11 11 22 0l42 -42
+q11 -11 0 -22l-314 -314q-11 -11 -22 0l-42 42q-11 11 0 22l22 22q-36 46 -40.5 104t23.5 108q-37 35 -88 35q-53 0 -90.5 -37.5t-37.5 -90.5v-640h1504q14 0 23 -9t9 -23zM896 1056q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1120q0 -14 -9 -23t-23 -9
+t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM896 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1248q0 -14 -9 -23
+t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1024 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1088 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23z" />
+    <glyph glyph-name="uniF2CE" unicode="&#xf2ce;" 
+d="M994 344q0 -86 -17 -197q-31 -215 -55 -313q-22 -90 -152 -90t-152 90q-24 98 -55 313q-17 110 -17 197q0 168 224 168t224 -168zM1536 768q0 -240 -134 -434t-350 -280q-8 -3 -15 3t-6 15q7 48 10 66q4 32 6 47q1 9 9 12q159 81 255.5 234t96.5 337q0 180 -91 330.5
+t-247 234.5t-337 74q-124 -7 -237 -61t-193.5 -140.5t-128 -202t-46.5 -240.5q1 -184 99 -336.5t257 -231.5q7 -3 9 -12q3 -21 6 -45q1 -9 5 -32.5t6 -35.5q1 -9 -6.5 -15t-15.5 -2q-148 58 -261 169.5t-173.5 264t-52.5 319.5q7 143 66 273.5t154.5 227t225 157.5t272.5 70
+q164 10 315.5 -46.5t261 -160.5t175 -250.5t65.5 -308.5zM994 800q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5zM1282 768q0 -122 -53.5 -228.5t-146.5 -177.5q-8 -6 -16 -2t-10 14q-6 52 -29 92q-7 10 3 20
+q58 54 91 127t33 155q0 111 -58.5 204t-157.5 141.5t-212 36.5q-133 -15 -229 -113t-109 -231q-10 -92 23.5 -176t98.5 -144q10 -10 3 -20q-24 -41 -29 -93q-2 -9 -10 -13t-16 2q-95 74 -148.5 183t-51.5 234q3 131 69 244t177 181.5t241 74.5q144 7 268 -60t196.5 -187.5
+t72.5 -263.5z" />
+    <glyph glyph-name="uniF2D0" unicode="&#xf2d0;" horiz-adv-x="1792" 
+d="M256 128h1280v768h-1280v-768zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D1" unicode="&#xf2d1;" horiz-adv-x="1792" 
+d="M1792 224v-192q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D2" unicode="&#xf2d2;" horiz-adv-x="2048" 
+d="M256 0h768v512h-768v-512zM1280 512h512v768h-768v-256h96q66 0 113 -47t47 -113v-352zM2048 1376v-960q0 -66 -47 -113t-113 -47h-608v-352q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h608v352q0 66 47 113t113 47h960q66 0 113 -47
+t47 -113z" />
+    <glyph glyph-name="uniF2D3" unicode="&#xf2d3;" horiz-adv-x="1792" 
+d="M1175 215l146 146q10 10 10 23t-10 23l-233 233l233 233q10 10 10 23t-10 23l-146 146q-10 10 -23 10t-23 -10l-233 -233l-233 233q-10 10 -23 10t-23 -10l-146 -146q-10 -10 -10 -23t10 -23l233 -233l-233 -233q-10 -10 -10 -23t10 -23l146 -146q10 -10 23 -10t23 10
+l233 233l233 -233q10 -10 23 -10t23 10zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D4" unicode="&#xf2d4;" horiz-adv-x="1792" 
+d="M1257 425l-146 -146q-10 -10 -23 -10t-23 10l-169 169l-169 -169q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l169 169l-169 169q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l169 -169l169 169q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23
+l-169 -169l169 -169q10 -10 10 -23t-10 -23zM256 128h1280v1024h-1280v-1024zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D5" unicode="&#xf2d5;" horiz-adv-x="1792" 
+d="M1070 358l306 564h-654l-306 -564h654zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2D6" unicode="&#xf2d6;" horiz-adv-x="1794" 
+d="M1291 1060q-15 17 -35 8.5t-26 -28.5t5 -38q14 -17 40 -14.5t34 20.5t-18 52zM895 814q-8 -8 -19.5 -8t-18.5 8q-8 8 -8 19t8 18q7 8 18.5 8t19.5 -8q7 -7 7 -18t-7 -19zM1060 740l-35 -35q-12 -13 -29.5 -13t-30.5 13l-38 38q-12 13 -12 30t12 30l35 35q12 12 29.5 12
+t30.5 -12l38 -39q12 -12 12 -29.5t-12 -29.5zM951 870q-7 -8 -18.5 -8t-19.5 8q-7 8 -7 19t7 19q8 8 19 8t19 -8t8 -19t-8 -19zM1354 968q-34 -64 -107.5 -85.5t-127.5 16.5q-38 28 -61 66.5t-21 87.5t39 92t75.5 53t70.5 -5t70 -51q2 -2 13 -12.5t14.5 -13.5t13 -13.5
+t12.5 -15.5t10 -15.5t8.5 -18t4 -18.5t1 -21t-5 -22t-9.5 -24zM1555 486q3 20 -8.5 34.5t-27.5 21.5t-33 17t-23 20q-40 71 -84 98.5t-113 11.5q19 13 40 18.5t33 4.5l12 -1q2 45 -34 90q6 20 6.5 40.5t-2.5 30.5l-3 10q43 24 71 65t34 91q10 84 -43 150.5t-137 76.5
+q-60 7 -114 -18.5t-82 -74.5q-30 -51 -33.5 -101t14.5 -87t43.5 -64t56.5 -42q-45 4 -88 36t-57 88q-28 108 32 222q-16 21 -29 32q-50 0 -89 -19q19 24 42 37t36 14l13 1q0 50 -13 78q-10 21 -32.5 28.5t-47 -3.5t-37.5 -40q2 4 4 7q-7 -28 -6.5 -75.5t19 -117t48.5 -122.5
+q-25 -14 -47 -36q-35 -16 -85.5 -70.5t-84.5 -101.5l-33 -46q-90 -34 -181 -125.5t-75 -162.5q1 -16 11 -27q-15 -12 -30 -30q-21 -25 -21 -54t21.5 -40t63.5 6q41 19 77 49.5t55 60.5q-2 2 -6.5 5t-20.5 7.5t-33 3.5q23 5 51 12.5t40 10t27.5 6t26 4t23.5 0.5q14 -7 22 34
+q7 37 7 90q0 102 -40 150q106 -103 101 -219q-1 -29 -15 -50t-27 -27l-13 -6q-4 -7 -19 -32t-26 -45.5t-26.5 -52t-25 -61t-17 -63t-6.5 -66.5t10 -63q-35 54 -37 80q-22 -24 -34.5 -39t-33.5 -42t-30.5 -46t-16.5 -41t-0.5 -38t25.5 -27q45 -25 144 64t190.5 221.5
+t122.5 228.5q86 52 145 115.5t86 119.5q47 -93 154 -178q104 -83 167 -80q39 2 46 43zM1794 640q0 -182 -71 -348t-191 -286t-286.5 -191t-348.5 -71t-348.5 71t-286.5 191t-191 286t-71 348t71 348t191 286t286.5 191t348.5 71t348.5 -71t286.5 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2D7" unicode="&#xf2d7;" 
+d="M518 1353v-655q103 -1 191.5 1.5t125.5 5.5l37 3q68 2 90.5 24.5t39.5 94.5l33 142h103l-14 -322l7 -319h-103l-29 127q-15 68 -45 93t-84 26q-87 8 -352 8v-556q0 -78 43.5 -115.5t133.5 -37.5h357q35 0 59.5 2t55 7.5t54 18t48.5 32t46 50.5t39 73l93 216h89
+q-6 -37 -31.5 -252t-30.5 -276q-146 5 -263.5 8t-162.5 4h-44h-628l-376 -12v102l127 25q67 13 91.5 37t25.5 79l8 643q3 402 -8 645q-2 61 -25.5 84t-91.5 36l-127 24v102l376 -12h702q139 0 374 27q-6 -68 -14 -194.5t-12 -219.5l-5 -92h-93l-32 124q-31 121 -74 179.5
+t-113 58.5h-548q-28 0 -35.5 -8.5t-7.5 -30.5z" />
+    <glyph glyph-name="uniF2D8" unicode="&#xf2d8;" 
+d="M922 739v-182q0 -4 0.5 -15t0 -15l-1.5 -12t-3.5 -11.5t-6.5 -7.5t-11 -5.5t-16 -1.5v309q9 0 16 -1t11 -5t6.5 -5.5t3.5 -9.5t1 -10.5v-13.5v-14zM1238 643v-121q0 -1 0.5 -12.5t0 -15.5t-2.5 -11.5t-7.5 -10.5t-13.5 -3q-9 0 -14 9q-4 10 -4 165v7v8.5v9t1.5 8.5l3.5 7
+t5 5.5t8 1.5q6 0 10 -1.5t6.5 -4.5t4 -6t2 -8.5t0.5 -8v-9.5v-9zM180 407h122v472h-122v-472zM614 407h106v472h-159l-28 -221q-20 148 -32 221h-158v-472h107v312l45 -312h76l43 319v-319zM1039 712q0 67 -5 90q-3 16 -11 28.5t-17 20.5t-25 14t-26.5 8.5t-31 4t-29 1.5
+h-29.5h-12h-91v-472h56q169 -1 197 24.5t25 180.5q-1 62 -1 100zM1356 515v133q0 29 -2 45t-9.5 33.5t-24.5 25t-46 7.5q-46 0 -77 -34v154h-117v-472h110l7 30q30 -36 77 -36q50 0 66 30.5t16 83.5zM1536 1248v-1216q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113
+v1216q0 66 47 113t113 47h1216q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D9" unicode="&#xf2d9;" horiz-adv-x="2176" 
+d="M1143 -197q-6 1 -11 4q-13 8 -36 23t-86 65t-116.5 104.5t-112 140t-89.5 172.5q-17 3 -175 37q66 -213 235 -362t391 -184zM502 409l168 -28q-25 76 -41 167.5t-19 145.5l-4 53q-84 -82 -121 -224q5 -65 17 -114zM612 1018q-43 -64 -77 -148q44 46 74 68zM2049 584
+q0 161 -62 307t-167.5 252t-250.5 168.5t-304 62.5q-147 0 -281 -52.5t-240 -148.5q-30 -58 -45 -160q60 51 143 83.5t158.5 43t143 13.5t108.5 -1l40 -3q33 -1 53 -15.5t24.5 -33t6.5 -37t-1 -28.5q-126 11 -227.5 0.5t-183 -43.5t-142.5 -71.5t-131 -98.5
+q4 -36 11.5 -92.5t35.5 -178t62 -179.5q123 -6 247.5 14.5t214.5 53.5t162.5 67t109.5 59l37 24q22 16 39.5 20.5t30.5 -5t17 -34.5q14 -97 -39 -121q-208 -97 -467 -134q-135 -20 -317 -16q41 -96 110 -176.5t137 -127t130.5 -79t101.5 -43.5l39 -12q143 -23 263 15
+q195 99 314 289t119 418zM2123 621q-14 -135 -40 -212q-70 -208 -181.5 -346.5t-318.5 -253.5q-48 -33 -82 -44q-72 -26 -163 -16q-36 -3 -73 -3q-283 0 -504.5 173t-295.5 442q-1 0 -4 0.5t-5 0.5q-6 -50 2.5 -112.5t26 -115t36 -98t31.5 -71.5l14 -26q8 -12 54 -82
+q-71 38 -124.5 106.5t-78.5 140t-39.5 137t-17.5 107.5l-2 42q-5 2 -33.5 12.5t-48.5 18t-53 20.5t-57.5 25t-50 25.5t-42.5 27t-25 25.5q19 -10 50.5 -25.5t113 -45.5t145.5 -38l2 32q11 149 94 290q41 202 176 365q28 115 81 214q15 28 32 45t49 32q158 74 303.5 104
+t302 11t306.5 -97q220 -115 333 -336t87 -474z" />
+    <glyph glyph-name="uniF2DA" unicode="&#xf2da;" horiz-adv-x="1792" 
+d="M1341 752q29 44 -6.5 129.5t-121.5 142.5q-58 39 -125.5 53.5t-118 4.5t-68.5 -37q-12 -23 -4.5 -28t42.5 -10q23 -3 38.5 -5t44.5 -9.5t56 -17.5q36 -13 67.5 -31.5t53 -37t40 -38.5t30.5 -38t22 -34.5t16.5 -28.5t12 -18.5t10.5 -6t11 9.5zM1704 178
+q-52 -127 -148.5 -220t-214.5 -141.5t-253 -60.5t-266 13.5t-251 91t-210 161.5t-141.5 235.5t-46.5 303.5q1 41 8.5 84.5t12.5 64t24 80.5t23 73q-51 -208 1 -397t173 -318t291 -206t346 -83t349 74.5t289 244.5q20 27 18 14q0 -4 -4 -14zM1465 627q0 -104 -40.5 -199
+t-108.5 -164t-162 -109.5t-198 -40.5t-198 40.5t-162 109.5t-108.5 164t-40.5 199t40.5 199t108.5 164t162 109.5t198 40.5t198 -40.5t162 -109.5t108.5 -164t40.5 -199zM1752 915q-65 147 -180.5 251t-253 153.5t-292 53.5t-301 -36.5t-275.5 -129t-220 -211.5t-131 -297
+t-10 -373q-49 161 -51.5 311.5t35.5 272.5t109 227t165.5 180.5t207 126t232 71t242.5 9t236 -54t216 -124.5t178 -197q33 -50 62 -121t31 -112zM1690 573q12 244 -136.5 416t-396.5 240q-8 0 -10 5t24 8q125 -4 230 -50t173 -120t116 -168.5t58.5 -199t-1 -208
+t-61.5 -197.5t-122.5 -167t-185 -117.5t-248.5 -46.5q108 30 201.5 80t174 123t129.5 176.5t55 225.5z" />
+    <glyph glyph-name="uniF2DB" unicode="&#xf2db;" 
+d="M192 256v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 512v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 768v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16
+q0 16 16 16h112zM192 1024v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 1280v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM1280 1440v-1472q0 -40 -28 -68t-68 -28h-832q-40 0 -68 28
+t-28 68v1472q0 40 28 68t68 28h832q40 0 68 -28t28 -68zM1536 208v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 464v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 720v-32
+q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 976v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 1232v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16
+h48q16 0 16 -16z" />
+    <glyph glyph-name="uniF2DC" unicode="&#xf2dc;" horiz-adv-x="1664" 
+d="M1566 419l-167 -33l186 -107q23 -13 29.5 -38.5t-6.5 -48.5q-14 -23 -39 -29.5t-48 6.5l-186 106l55 -160q13 -38 -12 -63.5t-60.5 -20.5t-48.5 42l-102 300l-271 156v-313l208 -238q16 -18 17 -39t-11 -36.5t-28.5 -25t-37 -5.5t-36.5 22l-112 128v-214q0 -26 -19 -45
+t-45 -19t-45 19t-19 45v214l-112 -128q-16 -18 -36.5 -22t-37 5.5t-28.5 25t-11 36.5t17 39l208 238v313l-271 -156l-102 -300q-13 -37 -48.5 -42t-60.5 20.5t-12 63.5l55 160l-186 -106q-23 -13 -48 -6.5t-39 29.5q-13 23 -6.5 48.5t29.5 38.5l186 107l-167 33
+q-29 6 -42 29t-8.5 46.5t25.5 40t50 10.5l310 -62l271 157l-271 157l-310 -62q-4 -1 -13 -1q-27 0 -44 18t-19 40t11 43t40 26l167 33l-186 107q-23 13 -29.5 38.5t6.5 48.5t39 30t48 -7l186 -106l-55 160q-13 38 12 63.5t60.5 20.5t48.5 -42l102 -300l271 -156v313
+l-208 238q-16 18 -17 39t11 36.5t28.5 25t37 5.5t36.5 -22l112 -128v214q0 26 19 45t45 19t45 -19t19 -45v-214l112 128q16 18 36.5 22t37 -5.5t28.5 -25t11 -36.5t-17 -39l-208 -238v-313l271 156l102 300q13 37 48.5 42t60.5 -20.5t12 -63.5l-55 -160l186 106
+q23 13 48 6.5t39 -29.5q13 -23 6.5 -48.5t-29.5 -38.5l-186 -107l167 -33q27 -5 40 -26t11 -43t-19 -40t-44 -18q-9 0 -13 1l-310 62l-271 -157l271 -157l310 62q29 6 50 -10.5t25.5 -40t-8.5 -46.5t-42 -29z" />
+    <glyph glyph-name="uniF2DD" unicode="&#xf2dd;" horiz-adv-x="1792" 
+d="M1473 607q7 118 -33 226.5t-113 189t-177 131t-221 57.5q-116 7 -225.5 -32t-192 -110.5t-135 -175t-59.5 -220.5q-7 -118 33 -226.5t113 -189t177.5 -131t221.5 -57.5q155 -9 293 59t224 195.5t94 283.5zM1792 1536l-349 -348q120 -117 180.5 -272t50.5 -321
+q-11 -183 -102 -339t-241 -255.5t-332 -124.5l-999 -132l347 347q-120 116 -180.5 271.5t-50.5 321.5q11 184 102 340t241.5 255.5t332.5 124.5q167 22 500 66t500 66z" />
+    <glyph glyph-name="uniF2DE" unicode="&#xf2de;" horiz-adv-x="1792" 
+d="M948 508l163 -329h-51l-175 350l-171 -350h-49l179 374l-78 33l21 49l240 -102l-21 -50zM563 1100l304 -130l-130 -304l-304 130zM907 915l240 -103l-103 -239l-239 102zM1188 765l191 -81l-82 -190l-190 81zM1680 640q0 159 -62 304t-167.5 250.5t-250.5 167.5t-304 62
+t-304 -62t-250.5 -167.5t-167.5 -250.5t-62 -304t62 -304t167.5 -250.5t250.5 -167.5t304 -62t304 62t250.5 167.5t167.5 250.5t62 304zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71
+t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2E0" unicode="&#xf2e0;" horiz-adv-x="1920" 
+d="M1334 302q-4 24 -27.5 34t-49.5 10.5t-48.5 12.5t-25.5 38q-5 47 33 139.5t75 181t32 127.5q-14 101 -117 103q-45 1 -75 -16l-3 -2l-5 -2.5t-4.5 -2t-5 -2t-5 -0.5t-6 1.5t-6 3.5t-6.5 5q-3 2 -9 8.5t-9 9t-8.5 7.5t-9.5 7.5t-9.5 5.5t-11 4.5t-11.5 2.5q-30 5 -48 -3
+t-45 -31q-1 -1 -9 -8.5t-12.5 -11t-15 -10t-16.5 -5.5t-17 3q-54 27 -84 40q-41 18 -94 -5t-76 -65q-16 -28 -41 -98.5t-43.5 -132.5t-40 -134t-21.5 -73q-22 -69 18.5 -119t110.5 -46q30 2 50.5 15t38.5 46q7 13 79 199.5t77 194.5q6 11 21.5 18t29.5 0q27 -15 21 -53
+q-2 -18 -51 -139.5t-50 -132.5q-6 -38 19.5 -56.5t60.5 -7t55 49.5q4 8 45.5 92t81.5 163.5t46 88.5q20 29 41 28q29 0 25 -38q-2 -16 -65.5 -147.5t-70.5 -159.5q-12 -53 13 -103t74 -74q17 -9 51 -15.5t71.5 -8t62.5 14t20 48.5zM383 86q3 -15 -5 -27.5t-23 -15.5
+q-14 -3 -26.5 5t-15.5 23q-3 14 5 27t22 16t27 -5t16 -23zM953 -177q12 -17 8.5 -37.5t-20.5 -32.5t-37.5 -8t-32.5 21q-11 17 -7.5 37.5t20.5 32.5t37.5 8t31.5 -21zM177 635q-18 -27 -49.5 -33t-57.5 13q-26 18 -32 50t12 58q18 27 49.5 33t57.5 -12q26 -19 32 -50.5
+t-12 -58.5zM1467 -42q19 -28 13 -61.5t-34 -52.5t-60.5 -13t-51.5 34t-13 61t33 53q28 19 60.5 13t52.5 -34zM1579 562q69 -113 42.5 -244.5t-134.5 -207.5q-90 -63 -199 -60q-20 -80 -84.5 -127t-143.5 -44.5t-140 57.5q-12 -9 -13 -10q-103 -71 -225 -48.5t-193 126.5
+q-50 73 -53 164q-83 14 -142.5 70.5t-80.5 128t-2 152t81 138.5q-36 60 -38 128t24.5 125t79.5 98.5t121 50.5q32 85 99 148t146.5 91.5t168 17t159.5 -66.5q72 21 140 17.5t128.5 -36t104.5 -80t67.5 -115t17.5 -140.5q52 -16 87 -57t45.5 -89t-5.5 -99.5t-58 -87.5z
+M455 1222q14 -20 9.5 -44.5t-24.5 -38.5q-19 -14 -43.5 -9.5t-37.5 24.5q-14 20 -9.5 44.5t24.5 38.5q19 14 43.5 9.5t37.5 -24.5zM614 1503q4 -16 -5 -30.5t-26 -18.5t-31 5.5t-18 26.5q-3 17 6.5 31t25.5 18q17 4 31 -5.5t17 -26.5zM1800 555q4 -20 -6.5 -37t-30.5 -21
+q-19 -4 -36 6.5t-21 30.5t6.5 37t30.5 22q20 4 36.5 -7.5t20.5 -30.5zM1136 1448q16 -27 8.5 -58.5t-35.5 -47.5q-27 -16 -57.5 -8.5t-46.5 34.5q-16 28 -8.5 59t34.5 48t58 9t47 -36zM1882 792q4 -15 -4 -27.5t-23 -16.5q-15 -3 -27.5 5.5t-15.5 22.5q-3 15 5 28t23 16
+q14 3 26.5 -5t15.5 -23zM1691 1033q15 -22 10.5 -49t-26.5 -43q-22 -15 -49 -10t-42 27t-10 49t27 43t48.5 11t41.5 -28z" />
+    <glyph glyph-name="uniF2E1" unicode="&#xf2e1;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E2" unicode="&#xf2e2;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E3" unicode="&#xf2e3;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E4" unicode="&#xf2e4;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E5" unicode="&#xf2e5;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E6" unicode="&#xf2e6;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E7" unicode="&#xf2e7;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="_698" unicode="&#xf2e8;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E9" unicode="&#xf2e9;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EA" unicode="&#xf2ea;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EB" unicode="&#xf2eb;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EC" unicode="&#xf2ec;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2ED" unicode="&#xf2ed;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EE" unicode="&#xf2ee;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="lessequal" unicode="&#xf500;" horiz-adv-x="1792" 
+ />
+  </font>
+</defs></svg>
diff --git a/public/fonts/fontawesome-webfont.ttf b/public/fonts/fontawesome-webfont.ttf
new file mode 100644 (file)
index 0000000..35acda2
Binary files /dev/null and b/public/fonts/fontawesome-webfont.ttf differ
diff --git a/public/fonts/fontawesome-webfont.woff b/public/fonts/fontawesome-webfont.woff
new file mode 100644 (file)
index 0000000..400014a
Binary files /dev/null and b/public/fonts/fontawesome-webfont.woff differ
diff --git a/public/fonts/fontawesome-webfont.woff2 b/public/fonts/fontawesome-webfont.woff2
new file mode 100644 (file)
index 0000000..4d13fc6
Binary files /dev/null and b/public/fonts/fontawesome-webfont.woff2 differ
diff --git a/public/index.html b/public/index.html
new file mode 100644 (file)
index 0000000..f0f2f9d
--- /dev/null
@@ -0,0 +1,73 @@
+<!doctype html>
+<html ng-app="motion">
+
+<head>
+    <base href="/">
+    <meta charset="utf-8">
+    <meta name="description" content="">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <title>xCALLY Motion</title>
+
+    <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
+
+    <link rel="stylesheet" href="styles/vendor.bef8c8e4.css">
+
+    <link rel="stylesheet" href="styles/app.c546075c.css">
+
+    <!-- <link href='//fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700italic,700,900,900italic'
+              rel='stylesheet' type='text/css'> -->
+</head>
+
+<!--[if lt IE 10]>
+    <p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade
+        your browser</a> to improve your experience.</p>
+    <![endif]-->
+
+<body md-theme="{{vm.themes.active.name}}" md-theme-watch ng-controller="IndexController as vm" class="{{state.current.bodyClass || ''}}">
+
+    <!-- SPLASH SCREEN -->
+    <ms-splash-screen id="splash-screen">
+        <div class="center">
+            <!-- <div class="text-center">
+                <img src="assets/images/logos/loading.png" alt="motion_logo_loading" />
+            </div> -->
+            <!-- Material Design Spinner -->
+            <div class="spinner-wrapper">
+                <div class="spinner">
+                    <div class="inner">
+                        <div class="gap"></div>
+                        <div class="left">
+                            <div class="half-circle motion-spinner"></div>
+                        </div>
+                        <div class="right">
+                            <div class="half-circle motion-spinner"></div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <!-- / Material Design Spinner -->
+        </div>
+    </ms-splash-screen>
+    <!-- / SPLASH SCREEN -->
+
+    <div id="main" class="animate-slide-up" ui-view="main" layout="column"></div>
+
+    <!-- <ms-theme-options></ms-theme-options> -->
+
+    <toasty></toasty>
+
+    <script src="scripts/vendor.3efb0794.js"></script>
+
+    <script src="scripts/app.4301c492.js"></script>
+
+    <!-- Socket.io -->
+    <script type="text/javascript" src="/socket.io/socket.io.js"></script>
+    <!-- Socket.io -->
+
+    <!-- Jira report issue -->
+    <!-- <script type="text/javascript" src="https://track.xcallymotion.com/s/90265372adde7bfa418545eae35b3bba-T/fkd960/72003/b6b48b2829824b869586ac216d119363/2.0.21/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?locale=en-US&collectorId=e823d908"></script> -->
+    <!-- /Jira report issue -->
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/public/scripts/app.4301c492.js b/public/scripts/app.4301c492.js
new file mode 100644 (file)
index 0000000..f48e795
--- /dev/null
@@ -0,0 +1 @@
+function mxDictionary(){this.clear()}function mxPoint(e,t){this.x=null!=e?e:0,this.y=null!=t?t:0}function mxRectangle(e,t,n,a){mxPoint.call(this,e,t),this.width=null!=n?n:0,this.height=null!=a?a:0}function mxEventObject(e){this.name=e,this.properties=[];for(var t=1;t<arguments.length;t+=2)null!=arguments[t+1]&&(this.properties[arguments[t]]=arguments[t+1])}function mxMouseEvent(e,t){this.evt=e,this.state=t}function mxEventSource(e){this.setEventSource(e)}function mxXmlRequest(e,t,n,a,i,o){this.url=e,this.params=t,this.method=n||"POST",this.async=null==a||a,this.username=i,this.password=o}function mxWindow(e,t,n,a,i,o,s,r,l,d){null!=t&&(s=null==s||s,this.content=t,this.init(n,a,i,o,d),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(s),this.setTitle(e),(null==r||r)&&this.installMoveHandler(),null!=l&&null!=l.parentNode?l.parentNode.replaceChild(this.div,l):document.body.appendChild(this.div))}function mxForm(e){this.table=document.createElement("table"),this.table.className=e,this.body=document.createElement("tbody"),this.table.appendChild(this.body)}function mxImage(e,t,n){this.src=e,this.width=t,this.height=n}function mxDivResizer(e,t){if("div"==e.nodeName.toLowerCase()){null==t&&(t=window),this.div=e;var n=mxUtils.getCurrentStyle(e);null!=n&&(this.resizeWidth="auto"==n.width,this.resizeHeight="auto"==n.height),mxEvent.addListener(t,"resize",mxUtils.bind(this,function(e){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)})),this.resize()}}function mxDragSource(e,t){this.element=e,this.dropHandler=t,mxEvent.addGestureListeners(e,mxUtils.bind(this,this.mouseDown))}function mxToolbar(e){this.container=e}function mxSession(e,t,n,a){this.model=e,this.urlInit=t,this.urlPoll=n,this.urlNotify=a,null!=e&&(this.codec=new mxCodec,this.codec.lookup=function(t){return e.getCell(t)}),e.addListener(mxEvent.NOTIFY,mxUtils.bind(this,function(e,t){var n=t.getProperty("edit");(null!=n&&this.debug||this.connected&&!this.suspended)&&this.notify("<edit>"+this.encodeChanges(n.changes,n.undone)+"</edit>")}))}function mxUndoableEdit(e,t){this.source=e,this.changes=[],this.significant=null==t||t}function mxUndoManager(e){this.size=null!=e?e:100,this.clear()}function mxPanningManager(e){this.thread=null,this.active=!1,this.dy=this.dx=this.t0y=this.t0x=this.tdy=this.tdx=0,this.scrollbars=!1,this.scrollTop=this.scrollLeft=0,this.mouseListener={mouseDown:function(e,t){},mouseMove:function(e,t){},mouseUp:mxUtils.bind(this,function(e,t){this.active&&this.stop()})},e.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var t=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(e.container),this.scrollLeft=e.container.scrollLeft,this.scrollTop=e.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var t=-e.container.scrollLeft-Math.ceil(this.dx),n=-e.container.scrollTop-Math.ceil(this.dy);e.panGraph(t,n),e.panDx=this.scrollLeft-e.container.scrollLeft,e.panDy=this.scrollTop-e.container.scrollTop,e.fireEvent(new mxEventObject(mxEvent.PAN))}else e.panGraph(this.getDx(),this.getDy())}),this.delay)});this.isActive=function(){return active},this.getDx=function(){return Math.round(this.tdx)},this.getDy=function(){return Math.round(this.tdy)},this.start=function(){this.t0x=e.view.translate.x,this.t0y=e.view.translate.y,this.active=!0},this.panTo=function(n,a,i,o){this.active||this.start(),this.scrollLeft=e.container.scrollLeft,this.scrollTop=e.container.scrollTop,o=null!=o?o:0;var s=e.container;this.dx=n+(null!=i?i:0)-s.scrollLeft-s.clientWidth,0>this.dx&&Math.abs(this.dx)<this.border?this.dx=this.border+this.dx:this.dx=this.handleMouseOut?Math.max(this.dx,0):0,0==this.dx&&(this.dx=n-s.scrollLeft,this.dx=0<this.dx&&this.dx<this.border?this.dx-this.border:this.handleMouseOut?Math.min(0,this.dx):0),this.dy=a+o-s.scrollTop-s.clientHeight,0>this.dy&&Math.abs(this.dy)<this.border?this.dy=this.border+this.dy:this.dy=this.handleMouseOut?Math.max(this.dy,0):0,0==this.dy&&(this.dy=a-s.scrollTop,this.dy=0<this.dy&&this.dy<this.border?this.dy-this.border:this.handleMouseOut?Math.min(0,this.dy):0),0!=this.dx||0!=this.dy?(this.dx*=this.damper,this.dy*=this.damper,null==this.thread&&(this.thread=t())):null!=this.thread&&(window.clearInterval(this.thread),this.thread=null)},this.stop=function(){if(this.active)if(this.active=!1,null!=this.thread&&(window.clearInterval(this.thread),this.thread=null),this.tdy=this.tdx=0,this.scrollbars)e.panDx=0,e.panDy=0,e.fireEvent(new mxEventObject(mxEvent.PAN));else{var t=e.panDx,n=e.panDy;0==t&&0==n||(e.panGraph(0,0),e.view.setTranslate(this.t0x+t/e.view.scale,this.t0y+n/e.view.scale))}},this.destroy=function(){e.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){this.factoryMethod=e,null!=e&&this.init()}function mxAutoSaveManager(e){this.changeHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.graphModelChanged(t.getProperty("edit").changes)}),this.setGraph(e)}function mxAnimation(e){this.delay=null!=e?e:20}function mxMorphing(e,t,n,a){mxAnimation.call(this,a),this.graph=e,this.steps=null!=t?t:6,this.ease=null!=n?n:1.5}function mxImageBundle(e){this.images=[],this.alt=null!=e&&e}function mxImageExport(){}function mxAbstractCanvas2D(){this.converter=this.createUrlConverter(),this.reset()}function mxXmlCanvas2D(e){mxAbstractCanvas2D.call(this),this.root=e,this.writeDefaults()}function mxSvgCanvas2D(e,t){mxAbstractCanvas2D.call(this),this.root=e,this.gradients=[],this.defs=null,this.styleEnabled=null!=t&&t;var n=null;if(e.ownerDocument!=document)for(n=e;null!=n&&"svg"!=n.nodeName;)n=n.parentNode;null!=n&&(0<n.getElementsByTagName("defs").length&&(this.defs=n.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=n.firstChild?n.insertBefore(this.defs,n.firstChild):n.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}function mxGuide(e,t){this.graph=e,this.setStates(t)}function mxStencil(e){this.desc=e,this.parseDescription(),this.parseConstraints()}function mxShape(e){this.stencil=e,this.strokewidth=1,this.rotation=0,this.opacity=100,this.flipV=this.flipH=!1}function mxActor(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxCloud(e,t,n,a){mxActor.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxRectangleShape(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxEllipse(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxDoubleEllipse(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxRhombus(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxPolyline(e,t,n){mxShape.call(this),this.points=e,this.stroke=t,this.strokewidth=null!=n?n:1}function mxArrow(e,t,n,a,i,o,s){mxShape.call(this),this.points=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1,this.arrowWidth=null!=i?i:mxConstants.ARROW_WIDTH,this.spacing=null!=o?o:mxConstants.ARROW_SPACING,this.endSize=null!=s?s:mxConstants.ARROW_SIZE}function mxText(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v,b,f,E){mxShape.call(this),this.value=e,this.bounds=t,this.color=null!=i?i:"black",this.align=null!=n?n:"",this.valign=null!=a?a:"",this.family=null!=o?o:mxConstants.DEFAULT_FONTFAMILY,this.size=null!=s?s:mxConstants.DEFAULT_FONTSIZE,this.fontStyle=null!=r?r:mxConstants.DEFAULT_FONTSTYLE,this.spacing=parseInt(l||2),this.spacingTop=this.spacing+parseInt(d||0),this.spacingRight=this.spacing+parseInt(c||0),this.spacingBottom=this.spacing+parseInt(m||0),this.spacingLeft=this.spacing+parseInt(u||0),this.horizontal=null==p||p,this.background=g,this.border=h,this.wrap=null!=v&&v,this.clipped=null!=b&&b,this.overflow=null!=f?f:"visible",this.labelPadding=null!=E?E:0,this.rotation=0}function mxTriangle(){mxActor.call(this)}function mxHexagon(){mxActor.call(this)}function mxLine(e,t,n){mxShape.call(this),this.bounds=e,this.stroke=t,this.strokewidth=null!=n?n:1}function mxImageShape(e,t,n,a,i){mxShape.call(this),this.bounds=e,this.image=t,this.fill=n,this.stroke=a,this.strokewidth=null!=i?i:1,this.shadow=!1}function mxLabel(e,t,n,a){mxRectangleShape.call(this,e,t,n,a)}function mxCylinder(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxConnector(e,t,n){mxPolyline.call(this,e,t,n)}function mxSwimlane(e,t,n,a){mxShape.call(this),this.bounds=e,this.fill=t,this.stroke=n,this.strokewidth=null!=a?a:1}function mxGraphLayout(e){this.graph=e}function mxStackLayout(e,t,n,a,i,o){mxGraphLayout.call(this,e),this.horizontal=null==t||t,this.spacing=null!=n?n:0,this.x0=null!=a?a:0,this.y0=null!=i?i:0,this.border=null!=o?o:0}function mxPartitionLayout(e,t,n,a){mxGraphLayout.call(this,e),this.horizontal=null==t||t,this.spacing=n||0,this.border=a||0}function mxCompactTreeLayout(e,t,n){mxGraphLayout.call(this,e),this.horizontal=null==t||t,this.invert=null!=n&&n}function WeightedCellSorter(e,t){this.cell=e,this.weightedValue=t}function mxFastOrganicLayout(e){mxGraphLayout.call(this,e)}function mxCircleLayout(e,t){mxGraphLayout.call(this,e),this.radius=null!=t?t:100}function mxParallelEdgeLayout(e){mxGraphLayout.call(this,e)}function mxCompositeLayout(e,t,n){mxGraphLayout.call(this,e),this.layouts=t,this.master=n}function mxEdgeLabelLayout(e,t){mxGraphLayout.call(this,e)}function mxGraphAbstractHierarchyCell(){this.x=[],this.y=[],this.temp=[]}function mxGraphHierarchyNode(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.cell=e}function mxGraphHierarchyEdge(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.edges=e}function mxGraphHierarchyModel(e,t,n,a,i){for(e.getGraph(),this.tightenToSource=i,this.roots=n,this.parent=a,this.vertexMapper={},this.edgeMapper={},this.maxRank=0,n=[],null==t&&(t=this.graph.getChildVertices(a)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(e,t,n),a=0;a<t.length;a++){i=n[a].connectsAsSource;for(var o=0;o<i.length;o++){var s=i[o];if(null!=(r=s.edges)&&0<r.length){var r=r[0],l=e.getVisibleTerminal(r,!1),l=mxCellPath.create(l),l=this.vertexMapper[l];n[a]==l&&(l=e.getVisibleTerminal(r,!0),l=mxCellPath.create(l),l=this.vertexMapper[l]),null!=l&&n[a]!=l&&(s.target=l,0==l.connectsAsTarget.length&&(l.connectsAsTarget=[]),0>mxUtils.indexOf(l.connectsAsTarget,s)&&l.connectsAsTarget.push(s))}}n[a].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(e){this.layout=e}function MedianCellSorter(){}function mxMinimumCycleRemover(e){this.layout=e}function mxCoordinateAssignment(e,t,n,a,i,o){this.layout=e,this.intraCellSpacing=t,this.interRankCellSpacing=n,this.orientation=a,this.initialX=i,this.parallelEdgeSpacing=o}function WeightedCellSorter(e,t){this.cell=e,this.weightedValue=t}function mxHierarchicalLayout(e,t,n){mxGraphLayout.call(this,e),this.orientation=null!=t?t:mxConstants.DIRECTION_NORTH,this.deterministic=null==n||n}function mxGraphModel(e){this.currentEdit=this.createUndoableEdit(),null!=e?this.setRoot(e):this.clear()}function mxRootChange(e,t){this.model=e,this.previous=this.root=t}function mxChildChange(e,t,n,a){this.model=e,this.previous=this.parent=t,this.child=n,this.previousIndex=this.index=a}function mxTerminalChange(e,t,n,a){this.model=e,this.cell=t,this.previous=this.terminal=n,this.source=a}function mxValueChange(e,t,n){this.model=e,this.cell=t,this.previous=this.value=n}function mxStyleChange(e,t,n){this.model=e,this.cell=t,this.previous=this.style=n}function mxGeometryChange(e,t,n){this.model=e,this.cell=t,this.previous=this.geometry=n}function mxCollapseChange(e,t,n){this.model=e,this.cell=t,this.previous=this.collapsed=n}function mxVisibleChange(e,t,n){this.model=e,this.cell=t,this.previous=this.visible=n}function mxCellAttributeChange(e,t,n){this.cell=e,this.attribute=t,this.previous=this.value=n}function mxCell(e,t,n){this.value=e,this.setGeometry(t),this.setStyle(n),null!=this.onInit&&this.onInit()}function mxGeometry(e,t,n,a){mxRectangle.call(this,e,t,n,a)}function mxPrintPreview(e,t,n,a,i,o,s,r,l){this.graph=e,this.scale=null!=t?t:1/e.pageScale,this.border=null!=a?a:0,this.pageFormat=null!=n?n:e.pageFormat,this.title=null!=r?r:"Printer-friendly version",this.x0=null!=i?i:0,this.y0=null!=o?o:0,this.borderColor=s,this.pageSelector=null==l||l}function mxStylesheet(){this.styles={},this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(e,t,n){this.view=e,this.cell=t,this.style=n,this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(e){this.graph=e,this.cells=[]}function mxSelectionChange(e,t,n){this.selectionModel=e,this.added=null!=t?t.slice():null,this.removed=null!=n?n.slice():null}function mxCellEditor(e){this.graph=e}function mxCellRenderer(){}function mxGraphView(e){this.graph=e,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(e,t){if(this.view=e,this.previous=this.root=t,this.isUp=null==t,!this.isUp)for(var n=this.view.currentRoot,a=this.view.graph.getModel();null!=n;){if(n==t){this.isUp=!0;break}n=a.getParent(n)}}function mxGraph(e,t,n,a){this.mouseListeners=null,this.renderHint=n,this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:n==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?mxConstants.DIALECT_VML:n==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:n==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML,this.model=null!=t?t:new mxGraphModel,this.multiplicities=[],this.imageBundles=[],this.cellRenderer=this.createCellRenderer(),this.setSelectionModel(this.createSelectionModel()),this.setStylesheet(null!=a?a:this.createStylesheet()),this.view=this.createGraphView(),this.graphModelChangeListener=mxUtils.bind(this,function(e,t){this.graphModelChanged(t.getProperty("edit").changes)}),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=e&&this.init(e),this.view.revalidate()}function mxCellOverlay(e,t,n,a,i,o){this.image=e,this.tooltip=t,this.align=null!=n?n:this.align,this.verticalAlign=null!=a?a:this.verticalAlign,this.offset=null!=i?i:new mxPoint,this.cursor=null!=o?o:"help"}function mxOutline(e,t){this.source=e,null!=t&&this.init(t)}function mxMultiplicity(e,t,n,a,i,o,s,r,l,d){this.source=e,this.type=t,this.attr=n,this.value=a,this.min=null!=i?i:0,this.max=null!=o?o:"n",this.validNeighbors=s,this.countError=mxResources.get(r)||r,this.typeError=mxResources.get(l)||l,this.validNeighborsAllowed=null==d||d}function mxLayoutManager(e){this.undoHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.beforeUndo(t.getProperty("edit"))}),this.moveHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.cellsMoved(t.getProperty("cells"),t.getProperty("event"))}),this.setGraph(e)}function mxSpaceManager(e,t,n,a){this.resizeHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.cellsResized(t.getProperty("cells"))}),this.foldHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.cellsResized(t.getProperty("cells"))}),this.shiftRightwards=null==t||t,this.shiftDownwards=null==n||n,this.extendParents=null==a||a,this.setGraph(e)}function mxSwimlaneManager(e,t,n,a){this.horizontal=null==t||t,this.addEnabled=null==n||n,this.resizeEnabled=null==a||a,this.addHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(t.getProperty("cells"))}),this.resizeHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(t.getProperty("cells"))}),this.setGraph(e)}function mxTemporaryCellStates(e,t,n){if(this.view=e,t=null!=t?t:1,this.oldBounds=e.getGraphBounds(),this.oldStates=e.getStates(),this.oldScale=e.getScale(),e.setStates(new mxDictionary),e.setScale(t),null!=n){t=e.createState(new mxCell);for(i=0;i<n.length;i++)e.validateBounds(t,n[i]);for(var a=null,i=0;i<n.length;i++){var o=e.validatePoints(t,n[i]);null==a?a=o:a.add(o)}null==a&&(a=new mxRectangle),e.setGraphBounds(a)}}function mxCellStatePreview(e){this.graph=e,this.deltas={}}function mxConnectionConstraint(e,t){this.point=e,this.perimeter=null==t||t}function mxGraphHandler(e){this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.updatePreviewShape()}),this.graph.addListener(mxEvent.PAN,this.panHandler)}function mxPanningHandler(e,t){null!=e&&(this.graph=e,this.factoryMethod=t,this.graph.addMouseListener(this),this.init())}function mxCellMarker(e,t,n,a){mxEventSource.call(this),null!=e&&(this.graph=e,this.validColor=null!=t?t:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=t?n:mxConstants.DEFAULT_INVALID_COLOR,this.hotspot=null!=a?a:mxConstants.DEFAULT_HOTSPOT,this.highlight=new mxCellHighlight(e))}function mxSelectionCellsHandler(e){mxEventSource.call(this),this.graph=e,this.handlers=new mxDictionary,this.graph.addMouseListener(this),this.refreshHandler=mxUtils.bind(this,function(e,t){this.isEnabled()&&this.refresh()}),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE,this.refreshHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.DOWN,this.refreshHandler),this.graph.getView().addListener(mxEvent.UP,this.refreshHandler)}function mxConnectionHandler(e,t){mxEventSource.call(this),null!=e&&(this.graph=e,this.factoryMethod=t,this.init())}function mxConstraintHandler(e){this.graph=e}function mxRubberband(e){null!=e&&(this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.addListener(mxEvent.PAN,this.panHandler),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxVertexHandler(e){null!=e&&(this.state=e,this.init())}function mxEdgeHandler(e){null!=e&&(this.state=e,this.init())}function mxElbowEdgeHandler(e){mxEdgeHandler.call(this,e)}function mxEdgeSegmentHandler(e){mxEdgeHandler.call(this,e)}function mxKeyHandler(e,t){null!=e&&(this.graph=e,this.target=t||document.documentElement,this.normalKeys=[],this.shiftKeys=[],this.controlKeys=[],this.controlShiftKeys=[],mxEvent.addListener(this.target,"keydown",mxUtils.bind(this,function(e){this.keyDown(e)})),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxTooltipHandler(e,t){null!=e&&(this.graph=e,this.delay=t||500,this.graph.addMouseListener(this))}function mxCellTracker(e,t,n){mxCellMarker.call(this,e,t),this.graph.addMouseListener(this),null!=n&&(this.getCell=n),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}function mxCellHighlight(e,t,n,a){null!=e&&(this.graph=e,this.highlightColor=null!=t?t:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=n?n:mxConstants.HIGHLIGHT_STROKEWIDTH,this.dashed=null!=a&&a,this.repaintHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.getView().addListener(mxEvent.SCALE,this.repaintHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.repaintHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.repaintHandler),this.resetHandler=mxUtils.bind(this,function(){this.hide()}),this.graph.getView().addListener(mxEvent.DOWN,this.resetHandler),this.graph.getView().addListener(mxEvent.UP,this.resetHandler))}function mxDefaultKeyHandler(e){if(null!=e){this.editor=e,this.handler=new mxKeyHandler(e.graph);var t=this.handler.escape;this.handler.escape=function(n){t.apply(this,arguments),e.hideProperties(),e.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",n))}}}function mxDefaultPopupMenu(e){this.config=e}function mxDefaultToolbar(e,t){this.editor=t,null!=e&&null!=t&&this.init(e)}function mxEditor(e){this.actions=[],this.addActions(),null!=document.body&&(this.cycleAttributeValues=[],this.popupHandler=new mxDefaultPopupMenu,this.undoManager=new mxUndoManager,this.graph=this.createGraph(),this.toolbar=this.createToolbar(),this.keyHandler=new mxDefaultKeyHandler(this),this.configure(e),this.graph.swimlaneIndicatorColorAttribute=this.cycleAttributeName,!mxClient.IS_LOCAL&&null!=this.urlInit&&(this.session=this.createSession()),null!=this.onInit&&this.onInit(),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,t,n,a){this.template=e,this.exclude=null!=t?t:[],this.idrefs=null!=n?n:[],this.mapping=null!=a?a:[],this.reverse={};for(var i in this.mapping)this.reverse[this.mapping[i]]=i}function Sidebar(e,t){this.editorUi=e,this.container=t,this.palettes=new Object,this.taglist=new Object,this.showTooltips=!0,this.graph=new Graph(document.createElement("div"),null,null,this.editorUi.editor.graph.getStylesheet()),this.graph.resetViewOnRootChange=!1,this.graph.foldingEnabled=!1,this.graph.setConnectable(!1),this.graph.autoScroll=!1,this.graph.setTooltips(!1),this.graph.setEnabled(!1),this.graph.container.style.visibility="hidden",this.graph.container.style.position="absolute",this.graph.container.style.overflow="hidden",this.graph.container.style.height="1px",this.graph.container.style.width="1px",mxClient.IS_IE||mxClient.IS_IE11||(this.graph.container.style.display="none"),document.body.appendChild(this.graph.container),this.pointerUpHandler=mxUtils.bind(this,function(){this.showTooltips=!0}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerDownHandler=mxUtils.bind(this,function(){this.showTooltips=!1,this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),this.pointerMoveHandler=mxUtils.bind(this,function(e){for(var t=mxEvent.getSource(e);null!=t;){if(t==this.currentElt)return;t=t.parentNode}this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerOutHandler=mxUtils.bind(this,function(e){null==e.toElement&&null==e.relatedTarget&&this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),mxEvent.addListener(t,"scroll",mxUtils.bind(this,function(){this.showTooltips=!0})),this.init(),mxClient.IS_SVG||((new Image).src=IMAGE_PATH+"/tooltip.png")}function Actions(e){this.editorUi=e,this.actions=new Object,this.init()}function Action(e,t,n,a,i){mxEventSource.call(this),this.label=e,this.funct=t,this.enabled=null==n||n,this.iconCls=a,this.shortcut=i}function Menubar(e,t){this.editorUi=e,this.container=t,mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function Menu(e,t){mxEventSource.call(this),this.funct=e,this.enabled=null==t||t}function Toolbar(e,t){this.editorUi=e,this.container=t,this.init(),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function createCheckbox(e){var t=document.createElement("input");return t.setAttribute("type","checkbox"),e&&t.setAttribute("checked",!0),t}function createDropdownFromApi(e,t,n,a,i,o,s,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+i.editor.data.token),l.send(null);var d=[];200===l.status&&(d=JSON.parse(l.response));var c=document.createElement("select"),m=document.createElement("option");return m.text="-- None --",m.value="-1",c.appendChild(m),d.rows.forEach(function(e){r&&e[n]==r||((m=document.createElement("option")).text=e[n],o&&s?(m.value=s,o.forEach(function(t){m.value=m.value.replace("%"+t+"%",e[t])}),m.selected=m.value==t):(m.value=e[a],m.selected=e[a]==t),c.appendChild(m))}),c.className="form-control select2",c}function createDropdownWithOptgroupFromApi(e,t,n,a,i,o){var s=new XMLHttpRequest;s.open("GET",e,!1),s.setRequestHeader("Authorization","Bearer "+i.editor.data.token),s.send(null);var r=[];200===s.status&&(r=JSON.parse(s.response));var l=document.createElement("select"),d=document.createElement("option");d.text="-- None --",d.value="-1",l.appendChild(d);var c=_.groupBy(r.rows,o);for(var m in c)if(c.hasOwnProperty(m)){var u=document.createElement("optgroup");u.label=_.capitalize(m),c[m].forEach(function(e){(d=document.createElement("option")).text=e[n],d.value=e[a],d.selected=e[a]==t,u.appendChild(d)}),l.appendChild(u)}return l.className="form-control select2",l}function createGroupedDropdownFromApi(e,t,n,a,i,o){var s=new XMLHttpRequest;s.open("GET",e,!1),s.setRequestHeader("Authorization","Bearer "+i.editor.data.token),s.send(null);var r=[];200===s.status&&(r=JSON.parse(s.response));var l=document.createElement("select"),d=document.createElement("option");return d.text="-- None --",d.value="0",l.appendChild(d),r.rows.forEach(function(e){(d=document.createElement("option")).className="select-group-father",d.text=e[n].toUpperCase(),d.value=e[a],d.selected=e[a]==t,l.appendChild(d),e[o].forEach(function(e){(d=document.createElement("option")).className="select-group-son",d.text="-"+_.capitalize(e[n]),d.value=e[a],d.selected=e[a]==t,l.appendChild(d)})}),l.className="form-control select2",l}function createDropdownFromArray(e,t){var n=document.createElement("select");for(var a in e){var i=document.createElement("option");i.text=e[a],i.value=a,(t>0||""!=t)&&(i.selected=t===a),n.appendChild(i)}return n.className="form-control select2",n}function createDropdownFromTigerDialList(e){var t=document.createElement("select"),n=[],a=new XMLHttpRequest;try{if(a.open("POST","/api/rest/list/list",!1),a.send(JSON.stringify({page:1,size:6e5})),200===a.status){var i=JSON.parse(a.response);if(i.status>0){var o=i.response.RMI.rows;for(var s in o)n[o[s].id]=o[s].name}}}catch(e){console.log(e)}for(var r in n){var l=document.createElement("option");l.text=n[r],l.value=r,(e>0||""!=e)&&(l.selected=e===r),t.appendChild(l)}return t.className="form-control select2",t}function Dialog(e,t,n,a,i,o,s){var r=0;mxClient.IS_IE&&9!=document.documentMode&&(r=60),n+=r,a+=r;Math.max(0,Math.round((document.body.scrollWidth-n)/2)),Math.max(0,Math.round((Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)-a)/3));var l=e.createDiv("geDialog");l.className="modal fade in center",l.style.display="block",l.style.paddingRight="12px";var d=e.createDiv("geModalDialog");d.className="modal-dialog",d.appendChild(t),l.appendChild(d),null==this.bg&&(this.bg=e.createDiv("background"),this.bg.className="modal-backdrop fade in",mxClient.IS_QUIRKS&&new mxDivResizer(this.bg)),i&&document.body.appendChild(this.bg),document.body.appendChild(l),this.onDialogClose=s,this.container=l}function ImportDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("import")+" XML");var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("row"),l=e.createDiv("col-md-12"),d=document.createElement("textarea");d.style.width="100%",d.style.height="374px";var c=document.createElement("input");c.type="file",c.setAttribute("accept","text/xml"),c.addEventListener("change",function(e){var t=e.target.files[0];if(console.log(t),t)if("text/xml"===t.type){var n=new FileReader;n.onload=function(e){var t=e.target.result;mxUtils.write(d,t)},n.readAsText(t)}else alert("Failed to load format file");else alert("Failed to load file")},!1),l.appendChild(c),l.appendChild(d),r.appendChild(l),a.appendChild(r);var m=mxUtils.button(mxResources.get("import"),mxUtils.bind(this,function(t){var n=mxUtils.parseXml(d.value);e.editor.setGraphXml(n.documentElement),e.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function AboutDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("about")+" Cally Square");var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=document.createElement("img");r.style.border="0px",r.setAttribute("width","176"),r.setAttribute("width","151"),r.setAttribute("src",IMAGE_PATH+"/logo.png"),a.appendChild(r),mxUtils.br(a),mxUtils.write(a,"Powered by Xenialab "+mxClient.VERSION),mxUtils.br(a);var l=document.createElement("a");l.setAttribute("href","http://www.callysquare.com/"),l.setAttribute("target","_blank"),mxUtils.write(l,"www.callysquare.com"),a.appendChild(l),mxUtils.br(a),mxUtils.br(a);var d=mxUtils.button(mxResources.get("close"),function(){e.hideDialog()});d.className="btn default",i.appendChild(d),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function SaveDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("saveAs"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_copy"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("save"),function(){e.saveAs(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function NewDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("new"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_new"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("new"),function(){e.new(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function DescriptionDialog(e){console.log(e.editor.data);var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("description"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("form-horizontal form-row-seperated"),l=e.editor.data.description||"",d=e.createDiv("form-group"),c=document.createElement("label");c.className="col-sm-4 control-label",mxUtils.write(c,mxResources.get("description")),d.appendChild(c);var m=document.createElement("input");m.setAttribute("value",l),m.className="form-control",m.setAttribute("id","_description");var u=e.createDiv("col-sm-8");u.appendChild(m),d.appendChild(u),r.appendChild(d),a.appendChild(r);var p=mxUtils.button(mxResources.get("update"),function(){e.description(m.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function VariableDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("variable"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("form-horizontal form-row-seperated"),l="name",d="_"+l,c="variable name",m=e.createDiv("form-group"),u=document.createElement("label");u.className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var p=document.createElement("input");p.setAttribute("value",c),p.className="form-control",p.setAttribute("id",d);var g=e.createDiv("col-sm-8");g.appendChild(p),m.appendChild(g),r.appendChild(m),d="_"+(l="description"),c="variable description",m=e.createDiv("form-group last"),(u=document.createElement("label")).className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var h=document.createElement("input");h.setAttribute("value",c),h.className="form-control",h.setAttribute("id",d),(g=e.createDiv("col-sm-8")).appendChild(h),m.appendChild(g),r.appendChild(m),a.appendChild(r);var v=mxUtils.button(mxResources.get("new"),function(){e.variable(p.value,h.value),e.hideDialog()});v.className="btn blue";var b=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});b.className="btn default",i.appendChild(v),i.appendChild(b),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function OpenDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("open"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("row"),l=e.createDiv("col-md-4"),d=e.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=new XMLHttpRequest;m.open("GET","/api/square/projects",!1),m.setRequestHeader("Authorization","Bearer "+e.editor.data.token),m.send(null);var u=[];200===m.status&&(u=JSON.parse(m.response));for(var p=document.createElement("select"),g=0;g<u.length;g++){var h=document.createElement("option");h.text=u[g].name,h.value=u[g].id,p.appendChild(h)}p.className="form-control",d.appendChild(p),r.appendChild(l),r.appendChild(d),a.appendChild(r);var v=mxUtils.button(mxResources.get("open"),function(){console.log(p),console.log(p.value),window.open("square/project/"+p.value,"_blank"),e.hideDialog()});v.className="btn blue";var b=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});b.className="btn default",i.appendChild(v),i.appendChild(b),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function RenameDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("rename"));var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("row"),l=e.createDiv("col-md-4"),d=e.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=e.editor.filename,u=document.createElement("input");u.setAttribute("value",m),u.className="form-control",d.appendChild(u),r.appendChild(l),r.appendChild(d),a.appendChild(r);var p=mxUtils.button(mxResources.get("save"),function(){var t=new XMLHttpRequest;t.open("PUT",SAVE_URL+e.editor.data.id,!0),t.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),t.setRequestHeader("Authorization","Bearer "+e.editor.data.token),t.send("name="+u.value),t.onload=function(n){200===t.status?(e.editor.setStatus("Project successfully renamed"),e.editor.filename=u.value):(console.log(t.response),e.editor.setStatus(JSON.parse(t.response).errors[0].message))},t.onerror=function(e){mxUtils.alert(t.statusText)},e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function EditFileDialog(e){function t(e){if(e.stopPropagation(),e.preventDefault(),e.dataTransfer.files.length>0){var t=e.dataTransfer.files[0],n=new FileReader;n.onload=function(e){m.value=e.target.result},n.readAsText(t)}}function n(e){e.stopPropagation(),e.preventDefault()}var a=e.createDiv("modal-content"),i=e.createDiv("modal-header"),o=e.createDiv("modal-body"),s=e.createDiv("modal-footer"),r=e.createHeader("h4");mxUtils.write(r,mxResources.get("edit"));var l=mxUtils.button("",function(){e.hideDialog()});l.className="close",i.appendChild(l),i.appendChild(r);var d=e.createDiv("row"),c=e.createDiv("col-md-12"),m=document.createElement("textarea");m.style.width="100%",m.style.height="374px",m.value=mxUtils.getPrettyXml(e.editor.getGraphXml()),fileSupport&&(m.addEventListener("dragover",n,!1),m.addEventListener("drop",t,!1)),c.appendChild(m),d.appendChild(c),o.appendChild(d);var u=mxUtils.button(mxResources.get("save"),function(){var t=mxUtils.parseXml(m.value);e.editor.setGraphXml(t.documentElement),e.hideDialog()});u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});p.className="btn default",s.appendChild(u),s.appendChild(p),a.appendChild(i),a.appendChild(o),a.appendChild(s),this.container=a}function ExportDialog(e){var t=e.createDiv("modal-content"),n=e.createDiv("modal-header"),a=e.createDiv("modal-body form"),i=e.createDiv("modal-footer"),o=e.createHeader("h4");mxUtils.write(o,mxResources.get("export")+" XML");var s=mxUtils.button("",function(){e.hideDialog()});s.className="close",n.appendChild(s),n.appendChild(o);var r=e.createDiv("form-horizontal form-row-seperated"),l=e.createDiv("form-group last"),d=document.createElement("label");d.className="col-sm-4 control-label",mxUtils.write(d,mxResources.get("filename"));var c=document.createElement("input");c.setAttribute("value",e.editor.getOrCreateFilename()),c.className="form-control";var m=e.createDiv("col-sm-8");m.appendChild(c),l.appendChild(d),l.appendChild(m),r.appendChild(l),a.appendChild(r);var u=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(t){e.save(!1);encodeURIComponent(mxUtils.getXml(e.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+e.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),e.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),t.appendChild(n),t.appendChild(a),t.appendChild(i),this.container=t}function GeneralDialog(e,t){console.log("general");var n=e.editor.graph,a=e.createDiv("md-dialog"),i=e.createDiv("md-toolbar"),o=e.createDiv("md-dialog-content"),s=e.createDiv("md-dialog-actions"),r=e.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(t.value.nodeName));var l=mxUtils.button("",function(){e.hideDialog()});l.className="close",i.appendChild(l),i.appendChild(r);for(var d=t.value.attributes.length,c=e.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u=t.value.attributes[m].name,p="_"+u,g=t.value.attributes[m].value,h=e.createDiv(m==d-1?"form-group last":"form-group"),v=document.createElement("label");v.className="col-sm-4 control-label",mxUtils.write(v,mxResources.get(u)),h.appendChild(v);var b;switch(u){case"sip_id":b=createDropdownWithOptgroupFromApi("/api/users/all",g,"fullname","id",e,"role");break;case"queue_id":b=createDropdownFromApi("/api/voice/queues",g,"name","name",e);break;case"trunk_name":b=createDropdownFromApi("/api/trunks",g,"name","name",e);break;case"variable_id":b=createDropdownFromApi("/api/variables",g,"name","id",e);break;case"account_id":b="sendMail"==t.value.nodeName?createDropdownFromApi("/api/mail/servers/out",g,"username","id",e):createDropdownFromApi("/api/sms/accounts",g,"name","id",e);break;case"template_id":b=createDropdownFromApi("/api/templates",g,"name","id",e);break;case"context":b=createDropdownFromApi("/api/voice/contexts",g,"name","name",e);break;case"mailbox":b=createDropdownFromApi("/api/voice/voicemails",g,"mailbox","id",e,["mailbox","context"],"%mailbox%@%context%");break;case"model":b=createDropdownFromArray(ISPEECHASRMODEL,g);break;case"ispeech_asr_language":b=createDropdownFromArray(ISPEECHASRLANG,g);break;case"beep":b=createDropdownFromArray(ISPEECHBEEP,g);break;case"hiddendigitspos":b=createDropdownFromArray(SECRETDIGITSPOS,g);break;case"ispeech_tts_language":b=createDropdownFromArray(ISPEECHLANG,g);break;case"google_tts_language":b=createDropdownFromArray(GOOGLETTSLANG,g);break;case"intKey":b=createDropdownFromArray(ASRINTKEYS,g);break;case"recordingFormat":b=createDropdownFromArray(RECORDINGFORMAT,g);break;case"answer":b=createDropdownFromArray(BOOLSELECT,g);break;case"list_id":b=createDropdownFromTigerDialList(g);break;case"interval_id":b=createGroupedDropdownFromApi("/api/intervals",g,"name","id",e,"SubIntervals");break;case"project_id":b=createDropdownFromApi("/api/square/projects",g,"name","id",e,null,null,e.editor.getOrCreateFilename());break;case"odbc_id":b=createDropdownFromApi("/api/square/odbc",g,"name","id",e);break;case"file_id":b=createDropdownFromApi("/api/sounds",g,"display_name","id",e);break;case"timeout":case"digit":case"mindigit":case"maxdigit":case"response":case"retry":case"speed":(b=document.createElement("input")).setAttribute("type","number"),b.setAttribute("min",0),b.setAttribute("max",1e3),b.setAttribute("value",g),b.className="form-control";break;case"text":case"key":case"query":case"condition":case"command":case"body":(b=document.createElement("textarea")).innerHTML=g,b.className="form-control";break;case"sms_text":(b=document.createElement("textarea")).innerHTML=g,b.className="form-control",b.setAttribute("maxlength","160");break;default:(b=document.createElement("input")).setAttribute("value",g),b.className="form-control"}b.setAttribute("id",p);var f=e.createDiv("col-sm-8");if(f.appendChild(b),mxResources.get("help_"+u)){var E=e.createDiv("p");E.className="help-block",mxUtils.write(E,mxResources.get("help_"+u)),f.appendChild(E)}h.appendChild(f),c.appendChild(h)}o.appendChild(c);var y=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(a){for(var i=0;i<t.value.attributes.length;i++){var o="_"+t.value.attributes[i].name,s=t.value.attributes[i].name;t.setAttribute(s,document.getElementById(o).value)}n.refresh(t),e.hideDialog()}));y.className="btn blue";var A=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});A.className="btn default",s.appendChild(y),s.appendChild(A),a.appendChild(i),a.appendChild(o),a.appendChild(s),this.container=a}!function(){"use strict";angular.module("app.auth",[])}(),function(){"use strict";angular.module("app.core",["ngAnimate","ngAria","ngCookies","ngMessages","ngResource","ngSanitize","ngMaterial","pascalprecht.translate","ui.router"])}(),function(){"use strict";function e(e,t){e.state("app.errors_error-404",{url:"/errors/error-404",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-404":{templateUrl:"app/errors/404/error-404.html",controller:"Error404Controller as vm"}},params:{status:404,statusText:"",data:{},config:{}},bodyClass:"error-404"}),t.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,t){e.state("app.errors_error-500",{url:"/errors/error-500",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-500":{templateUrl:"app/errors/500/error-500.html",controller:"Error500Controller as vm"}},params:{status:500,statusText:"",data:{},config:{}},bodyClass:"error-500"}),t.addPart("app/errors/500")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-500",[]).config(e)}(),function(){"use strict";angular.module("app.errors",["app.errors.error-404","app.errors.error-500"])}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.dashboards","app.staff","app.contactmanager","app.voice","app.chat","app.mail","app.sms","app.openchannel","app.fax","app.tools","app.callysquare","app.analytics","app.integrations","app.settings","app.help","app.motiondialer","app.jscripty","app.login","app.errors"])}(),function(){"use strict";function e(e,t){e.state("app.login",{url:"/login",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.login":{templateUrl:"app/login/login.html",controller:"LoginController as vm"}},bodyClass:"login"}),t.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.analytics",{abstract:!0,url:"/analytics"}).state("app.analytics.metrics",{url:"/metrics",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/metrics/metrics.html",controller:"MetricsController as vm"}},resolve:{metrics:["apiResolver",function(e){return e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1201,bodyClass:"analytics"}).state("app.analytics.extractedReports",{url:"/extractedReports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/extractedReports/extractedReports.html",controller:"ExtractedReportsController as vm"}},resolve:{extractedReports:["apiResolver",function(e){return e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,type,startDate,endDate,createdAt,status,output",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),t.addPart("app/main/apps/analytics")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.analytics",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter","app.analytics.reports"]).config(e)}(),function(){"use strict";function e(e){e.state("app.analytics.reports",{url:"/reports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/reports.html",controller:"ReportsController as vm"}},resolve:{treeReports:["apiResolver",function(e){return e.resolve("analyticTreeReport@get",{fields:"id,tree",limit:10,offset:0})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"}).state("app.analytics.reports.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/edit/view.html",controller:"ReportController as vm"}},resolve:{report:["apiResolver","$stateParams",function(e,t){return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions",id:t.id})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"})}e.$inject=["$stateProvider"],angular.module("app.analytics.reports",["ngJsTree"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.callysquare",{abstract:!0,url:"/callysquare"}).state("app.callysquare.odbcs",{url:"/odbcs",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/odbcs/odbcs.html",controller:"OdbcsController as vm"}},resolve:{odbcs:["apiResolver",function(e){return e.resolve("squareOdbc@get",{fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1101,bodyClass:"callysquare"}).state("app.callysquare.squareRecordings",{url:"/squareRecordings",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",controller:"SquareRecordingsController as vm"}},resolve:{squareRecordings:["apiResolver",function(e){return e.resolve("squareRecording@get",{fields:"createdAt,updatedAt,id,projectName,uniqueid,callerid,extension,audio,createdAt",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1102,bodyClass:"callysquare"}),t.addPart("app/main/apps/callysquare")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.callysquare",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter","app.callysquare.projects"]).config(e)}(),function(){"use strict";function e(e){e.state("app.callysquare.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/projects.html",controller:"ProjectsController as vm"}},resolve:{projects:["apiResolver",function(e){return e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"}).state("app.callysquare.projects.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/edit/view.html",controller:"ProjectController as vm"}},resolve:{project:["apiResolver","$stateParams",function(e,t){return e.resolve("squareProject@get",{id:t.id})}],users:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,role",sort:"name",nolimit:!1})}],trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!1})}],queues:["apiResolver",function(e){return e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!1})}],sounds:["apiResolver",function(e){return e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!1})}],variables:["apiResolver",function(e){return e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!1})}],databases:["apiResolver",function(e){return e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!1})}],projects:["apiResolver",function(e){return e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!1})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!1})}],intervals:["apiResolver",function(e){return e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!1})}],mailAccounts:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!1})}],templates:["apiResolver",function(e){return e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!1})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!1})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"})}e.$inject=["$stateProvider"],angular.module("app.callysquare.projects",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.chat",{abstract:!0,url:"/chat"}).state("app.chat.chatQueues",{url:"/chatQueues",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/chatQueues.html",controller:"ChatQueuesController as vm"}},resolve:{chatQueues:["apiResolver",function(e){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatQueues.edit",{url:"/:id?tab",params:{chatQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/edit/view.html",controller:"ChatQueueController as vm"}},resolve:{chatQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatWebsites",{url:"/chatWebsites",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/chatWebsites.html",controller:"ChatWebsitesController as vm"}},resolve:{chatWebsites:["apiResolver",function(e){return e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,name,address,remote,ListId,fidelity,timeout,description,color,color_focus,color_button,header_shape,animation,defaultWhiteLabel,whiteLabel,defaultLogo,download_transcript,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,OfflineTemplateId,name_title,username_placeholder,email_title,email_placeholder,header_online,online_message,start_chat_button,agents_busy,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}).state("app.chat.chatWebsites.edit",{url:"/:id?tab",params:{chatWebsite:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/edit/view.html",controller:"ChatWebsiteController as vm"}},resolve:{chatWebsite:["apiResolver","$stateParams",function(e,t){return e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,name,address,remote,ListId,fidelity,timeout,description,color,color_focus,color_button,header_shape,animation,defaultWhiteLabel,whiteLabel,defaultLogo,download_transcript,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,OfflineTemplateId,name_title,username_placeholder,email_title,email_placeholder,header_online,online_message,start_chat_button,agents_busy,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",id:t.id})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}),t.addPart("app/main/apps/chat")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.chat",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.contactmanager",{abstract:!0,url:"/contactmanager"}).state("app.contactmanager.lists",{url:"/lists",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/lists.html",controller:"ListsController as vm"}},resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.lists.edit",{url:"/:id?tab",params:{list:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/edit/view.html",controller:"ListController as vm"}},resolve:{list:["apiResolver","$stateParams",function(e,t){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description",id:t.id})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.companies",{url:"/companies",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/companies.html",controller:"CompaniesController as vm"}},resolve:{companies:["apiResolver",function(e){return e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.companies.edit",{url:"/:id?tab",params:{company:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/edit/view.html",controller:"CompanyController as vm"}},resolve:{company:["apiResolver","$stateParams",function(e,t){return e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",id:t.id})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.globalCustomFields",{url:"/globalCustomFields",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",controller:"GlobalCustomFieldsController as vm"}},resolve:{globalCustomFields:["apiResolver",function(e){return e.resolve("cmCustomField@get",{fields:"createdAt,updatedAt,id,alias,type,values,required",sort:"-updatedAt",ListId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:304,bodyClass:"contactmanager"}),t.addPart("app/main/apps/contactmanager")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.contactmanager",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter","app.contactmanager.contacts"]).config(e)}(),function(){"use strict";function e(e){e.state("app.contactmanager.contacts",{url:"/contacts?ListId&CompanyId",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/contacts.html",controller:"ContactsController as vm"}},resolve:{contacts:["apiResolver","$stateParams",function(e,t){return e.resolve("cmContact@get",_.merge({sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0})}],listsMap:["lists",function(e){for(var t={},n=0;n<e.rows.length;n++)t[e.rows[n].id]=e.rows[n].name;return t}],companies:["apiResolver",function(e){return e.resolve("cmCompany@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0})}],tags:["apiResolver",function(e){return e.resolve("tag@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0})}]},authenticate:!0,permissionId:300,bodyClass:"contactmanager"}).state("app.contactmanager.contacts.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/edit/view.html",controller:"ContactController as vm"}},resolve:{contact:["apiResolver","$stateParams",function(e,t){return e.resolve("cmContact@get",{id:t.id}).then(function(e){return e.dateOfBirth&&(e.dateOfBirth=new Date(e.dateOfBirth)),e}).catch(function(e){console.error(e)})}],hoppers:["apiResolver","$stateParams",function(e,t){return e.resolve("cmContact@getHoppers",{id:t.id,fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,offset:0})}],finals:["apiResolver","$stateParams",function(e,t){return e.resolve("cmContact@getHopperFinals",{id:t.id,fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],histories:["apiResolver","$stateParams",function(e,t){return e.resolve("cmContact@getHopperHistories",{id:t.id,fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,offset:0})}],jscriptySessions:["apiResolver","$stateParams",function(e,t){return e.resolve("cmContact@getJscriptySessions",{id:t.id,fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,offset:0})}],companies:["apiResolver","$stateParams",function(e,t){return e.resolve("cmCompany@get")}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0})}],customFields:["apiResolver","contact",function(e,t){return t.ListId?e.resolve("cmList@getCustomFields",{id:t.ListId}):null}],tags:["apiResolver","$stateParams",function(e,t){return e.resolve("tag@get")}]},authenticate:!0,permissionId:300,bodyClass:"contactmanager"})}e.$inject=["$stateProvider"],angular.module("app.contactmanager.contacts",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.dashboards",{abstract:!0,url:"/dashboards"}),t.addPart("app/main/apps/dashboards")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.dashboards",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter","app.dashboards.general"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general.dashboard",{url:"/dashboard",data:{selectedTab:0},views:{dashboard:{templateUrl:"app/main/apps/dashboards/views/general/agent/dashboard/agent.general.dashboard.html",controller:"AgentDashboardDashboardGeneralController as vm"}},resolve:{rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}],rpcVoiceQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],voiceQueues:["apiResolver","Auth",function(e,t){return e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",limit:10,page:1})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.recordings",{url:"/recordings",data:{selectedTab:1},views:{recordings:{templateUrl:"app/main/apps/dashboards/views/general/agent/recordings/agent.general.recordings.html",controller:"AgentRecordigsDashboardGeneralController as vm"}},resolve:{voiceRecordings:["apiResolver","Auth",function(e,t){return e.resolve("user@getRecordings",{id:t.getCurrentUser().id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.contacts",{url:"/contacts",data:{selectedTab:2},views:{contacts:{templateUrl:"app/main/apps/dashboards/views/general/agent/contacts/agent.general.contacts.html",controller:"AgentContactsDashboardGeneralController as vm"}},resolve:{lists:["apiResolver","Auth",function(e,t){return e.resolve("user@getLists",{id:t.getCurrentUser().id,fields:"id,name",sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.mycontacts",{url:"/mycontacts",data:{selectedTab:3},views:{mycontacts:{templateUrl:"app/main/apps/dashboards/views/general/agent/mycontacts/agent.general.mycontacts.html",controller:"AgentMyContactsDashboardGeneralController as vm"}},resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general.agent",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general",{url:"/general",data:{selectedTab:0},views:{"content@app":{templateProvider:["$stateParams","$templateFactory","Auth",function(e,t,n){var a=n.getCurrentUser();return a&&"agent"===a.role?t.fromUrl("app/main/apps/dashboards/views/general/agent/agent.general.html",e):t.fromUrl("app/main/apps/dashboards/views/general/user/user.general.html",e)}],controllerProvider:["Auth",function(e){var t=e.getCurrentUser();return t&&"agent"===t.role?"AgentDashboardGeneralController as vm":"UserDashboardGeneralController as vm"}]}},resolve:{globalUserLists:["apiResolver","Auth",function(e,t){return e.resolve("user@getLists",{id:t.getCurrentUser().id,sort:"name",nolimit:!0})}],globalLists:["apiResolver","Auth",function(e,t){return e.resolve("cmList@get",{sort:"name",nolimit:!0})}],globalTags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0})}],globalCompanies:["apiResolver",function(e){return e.resolve("cmCompany@get",{sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general",["app.dashboards.general.user","app.dashboards.general.agent"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general.voice",{url:"/voice",data:{selectedTab:0},views:{voice:{templateUrl:"app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",controller:"UserVoiceDashboardGeneralController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],inboundQueues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"inbound"}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound"})}],outbound:["apiResolver",function(e){return e.resolve("rpc@getOutbound")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.dialer",{url:"/dialer",data:{selectedTab:1},views:{dialer:{templateUrl:"app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",controller:"UserVoiceDashboardDialerController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],outboundQueues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"outbound"}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound"})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general.user",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.fax",{abstract:!0,url:"/fax"}).state("app.fax.faxQueues",{url:"/faxQueues",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/faxQueues.html",controller:"FaxQueuesController as vm"}},resolve:{faxQueues:["apiResolver",function(e){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxQueues.edit",{url:"/:id?tab",params:{faxQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/edit/view.html",controller:"FaxQueueController as vm"}},resolve:{faxQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxAccounts",{url:"/faxAccounts",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/faxAccounts.html",controller:"FaxAccountsController as vm"}},resolve:{faxAccounts:["apiResolver",function(e){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,headerinfo,TrunkId,localstationid,ListId,fidelity,timeout,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}).state("app.fax.faxAccounts.edit",{url:"/:id?tab",params:{faxAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/edit/view.html",controller:"FaxAccountController as vm"}},resolve:{faxAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,headerinfo,TrunkId,localstationid,ListId,fidelity,timeout,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",id:t.id})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}),t.addPart("app/main/apps/fax")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.fax",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.help",{abstract:!0,url:"/help"}),t.addPart("app/main/apps/help")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.help",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter","app.help.about"]).config(e)}(),function(){"use strict";function e(e){e.state("app.help.about",{url:"/about",views:{"content@app":{templateUrl:"app/main/apps/help/views/about/about.html",controller:"AboutController as vm"}},resolve:{info:["apiResolver",function(e){return e.resolve("version@get")}]},authenticate:!0,permissionId:1405,bodyClass:"help"})}e.$inject=["$stateProvider"],angular.module("app.help.about",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.integrations",{abstract:!0,url:"/integrations"}).state("app.integrations.zendeskAccounts",{url:"/zendeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",controller:"ZendeskAccountsController as vm"}},resolve:{zendeskAccounts:["apiResolver",function(e){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,authType,password,token,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.zendeskAccounts.edit",{url:"/:id?tab",params:{zendeskAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/view.html",controller:"ZendeskAccountController as vm"}},resolve:{zendeskAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,authType,password,token,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts",{url:"/salesforceAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",controller:"SalesforceAccountsController as vm"}},resolve:{salesforceAccounts:["apiResolver",function(e){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts.edit",{url:"/:id?tab",params:{salesforceAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/view.html",controller:"SalesforceAccountController as vm"}},resolve:{salesforceAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts",{url:"/freshdeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",controller:"FreshdeskAccountsController as vm"}},resolve:{freshdeskAccounts:["apiResolver",function(e){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts.edit",{url:"/:id?tab",params:{freshdeskAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",controller:"FreshdeskAccountController as vm"}},resolve:{freshdeskAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts",{url:"/sugarcrmAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",controller:"SugarcrmAccountsController as vm"}},resolve:{sugarcrmAccounts:["apiResolver",function(e){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",limit:10,offset:0})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts.edit",{url:"/:id?tab",params:{sugarcrmAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",controller:"SugarcrmAccountController as vm"}},resolve:{sugarcrmAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",id:t.id})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}),t.addPart("app/main/apps/integrations")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.integrations",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.jscripty",{abstract:!0,url:"/jscripty"}).state("app.jscripty.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/projects.html",controller:"JscriptyProjectsController as vm"}},resolve:{projects:["apiResolver",function(e){return e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,description,createdAt,formData",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}).state("app.jscripty.projects.edit",{url:"/:id?tab",params:{project:void 0},views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/edit/view.html",controller:"JscriptyProjectController as vm"}},resolve:{project:["apiResolver","$stateParams",function(e,t){return e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,description,createdAt,formData",id:t.id})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}),t.addPart("app/main/apps/jscripty")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.jscripty",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.mail",{abstract:!0,url:"/mail"}).state("app.mail.mailQueues",{url:"/mailQueues",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/mailQueues.html",controller:"MailQueuesController as vm"}},resolve:{mailQueues:["apiResolver",function(e){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailQueues.edit",{url:"/:id?tab",params:{mailQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/edit/view.html",controller:"MailQueueController as vm"}},resolve:{mailQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailAccounts",{url:"/mailAccounts",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/mailAccounts.html",controller:"MailAccountsController as vm"}},resolve:{mailAccounts:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,address,ListId,TemplateId,fidelity,timeout,service,description,Imap.host,Imap.username,Imap.password,Imap.port,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Imap.delete,Imap.ssl,Imap.keepalive,Smtp.host,Smtp.username,Smtp.password,Smtp.port,Smtp.ssl,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,whiteLabel",limit:10,offset:0})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailAccounts.edit",{url:"/:id?tab",params:{mailAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/edit/view.html",controller:"MailAccountController as vm"}},resolve:{mailAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,address,ListId,TemplateId,fidelity,timeout,service,description,Imap.host,Imap.username,Imap.password,Imap.port,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Imap.delete,Imap.ssl,Imap.keepalive,Smtp.host,Smtp.username,Smtp.password,Smtp.port,Smtp.ssl,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,whiteLabel",id:t.id})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}),t.addPart("app/main/apps/mail")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.mail",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.motiondialer",{abstract:!0,url:"/motiondialer"}).state("app.motiondialer.queueCampaigns",{url:"/queueCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",controller:"QueueCampaignsController as vm"}},resolve:{queueCampaigns:["apiResolver",function(e){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialGlobalInterval,dialTimezone,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.queueCampaigns.edit",{url:"/:id?tab",params:{queueCampaign:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",controller:"QueueCampaignController as vm"}},resolve:{queueCampaign:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialGlobalInterval,dialTimezone,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",id:t.id})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns",{url:"/ivrCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",controller:"IvrCampaignsController as vm"}},resolve:{ivrCampaigns:["apiResolver",function(e){return e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialGlobalInterval,dialTimezone",type:"ivr",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns.edit",{url:"/:id?tab",params:{ivrCampaign:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",controller:"IvrCampaignController as vm"}},resolve:{ivrCampaign:["apiResolver","$stateParams",function(e,t){return e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialGlobalInterval,dialTimezone",id:t.id})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}),t.addPart("app/main/apps/motiondialer")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.motiondialer",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter","app.motiondialer.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.motiondialer.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/realtime/realtime.html",controller:"MotionDialerRealtimeController as vm"}},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.agents",{url:"/agents",controller:"AgentsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,role,userpic,internal,online,motiondialerPause,pauseType,lastLoginAt,lastPauseAt",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.telephones",{url:"/telephones",controller:"TelephonesMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/telephones/view.html",resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],rpcTelephones:["apiResolver",function(e){return e.resolve("rpc@getTelephones")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.trunks",{url:"/trunks",controller:"TrunksMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.queues",{url:"/queues",controller:"QueuesMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"outbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,name,role",role:"agent",nolimit:!0})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.ivr_campaigns",{url:"/ivr_campaigns",controller:"IvrCampaignsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",resolve:{campaigns:["apiResolver",function(e){return e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,permissionId:410}).state("app.motiondialer.realtime.outbound_calls",{url:"/outbound_calls",controller:"OutboundCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/outbound_calls/view.html",resolve:{rpcCalls:["apiResolver",function(e){return e.resolve("rpc@getOutboundChannels")}]},authenticate:!0,permissionId:410})}e.$inject=["$stateProvider"],angular.module("app.motiondialer.realtime",["timer"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.openchannel",{abstract:!0,url:"/openchannel"}).state("app.openchannel.openchannelQueues",{url:"/openchannelQueues",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",controller:"OpenchannelQueuesController as vm"}},resolve:{openchannelQueues:["apiResolver",function(e){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelQueues.edit",{url:"/:id?tab",params:{openchannelQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/view.html",controller:"OpenchannelQueueController as vm"}},resolve:{openchannelQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts",{url:"/openchannelAccounts",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",controller:"OpenchannelAccountsController as vm"}},resolve:{openchannelAccounts:["apiResolver",function(e){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts.edit",{url:"/:id?tab",params:{openchannelAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",controller:"OpenchannelAccountController as vm"}},resolve:{openchannelAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",id:t.id})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}),t.addPart("app/main/apps/openchannel")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.openchannel",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.settings",{abstract:!0,url:"/settings"}).state("app.settings.generals",{url:"/generals",views:{"content@app":{templateUrl:"app/main/apps/settings/views/generals/generals.html",controller:"GeneralsController as vm"}},resolve:{generals:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,min_internal,min_mailbox,securePassword,stunaddr",limit:10,offset:0})}]},authenticate:!0,permissionId:1401,bodyClass:"settings"}).state("app.settings.smtps",{url:"/smtps",views:{"content@app":{templateUrl:"app/main/apps/settings/views/smtps/smtps.html",controller:"SmtpController as vm"}},resolve:{smtps:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,service,name,Smtp.service,Smtp.host,Smtp.user,Smtp.pass,Smtp.port,Smtp.secure,description",service:"1",limit:10,offset:0})}]},authenticate:!0,permissionId:1402,bodyClass:"settings"}).state("app.settings.networks",{url:"/networks",views:{"content@app":{templateUrl:"app/main/apps/settings/views/networks/networks.html",controller:"NetworksController as vm"}},resolve:{networks:["apiResolver",function(e){return e.resolve("network@get",{fields:"createdAt,updatedAt,id,type,value,value,createdAt",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1403,bodyClass:"settings"}).state("app.settings.customizations",{url:"/customizations",views:{"content@app":{templateUrl:"app/main/apps/settings/views/customizations/customizations.html",controller:"CustomizationsController as vm"}},resolve:{customizations:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,defaultLogo,defaultLoginLogo,defaultHeaderWhiteLabel,headerWhiteLabel",limit:10,offset:0})}]},authenticate:!0,permissionId:1407,bodyClass:"settings"}),t.addPart("app/main/apps/settings")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.settings",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter","app.settings.updates","app.settings.license","app.settings.system"]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.license",{url:"/license",views:{"content@app":{templateUrl:"app/main/apps/settings/views/license/license.html",controller:"LicenseController as vm"}},authenticate:!0,permissionId:1405,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.license",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.system",{url:"/system",views:{"content@app":{templateUrl:"app/main/apps/settings/views/system/system.html",controller:"SystemController as vm"}},resolve:{system:["apiResolver",function(e){return e.resolve("system@get")}],processes:["apiResolver",function(e){return e.resolve("pm2@get")}]},authenticate:!0,permissionId:1406,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.system",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.updates",{url:"/updates",views:{"content@app":{templateUrl:"app/main/apps/settings/views/updates/updates.html",controller:"UpdatesController as vm"}},resolve:{version:["apiResolver",function(e){return e.resolve("version@get")}]},authenticate:!0,permissionId:1404,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.updates",[]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.sms",{abstract:!0,url:"/sms"}).state("app.sms.smsQueues",{url:"/smsQueues",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/smsQueues.html",controller:"SmsQueuesController as vm"}},resolve:{smsQueues:["apiResolver",function(e){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsQueues.edit",{url:"/:id?tab",params:{smsQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/edit/view.html",controller:"SmsQueueController as vm"}},resolve:{smsQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:t.id})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsAccounts",{url:"/smsAccounts",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/smsAccounts.html",controller:"SmsAccountsController as vm"}},resolve:{smsAccounts:["apiResolver",function(e){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,type,smstype,phone,sid,token,username,password,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}).state("app.sms.smsAccounts.edit",{url:"/:id?tab",params:{smsAccount:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/edit/view.html",controller:"SmsAccountController as vm"}},resolve:{smsAccount:["apiResolver","$stateParams",function(e,t){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,type,smstype,phone,sid,token,username,password,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",id:t.id})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}),t.addPart("app/main/apps/sms")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.sms",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.staff",{abstract:!0,url:"/staff"}).state("app.staff.users",{url:"/users",views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/users.html",controller:"UsersController as vm"}},resolve:{users:["apiResolver",function(e){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,id,fullname,name,email,userpic,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup,permissions",role:"admin,user",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.users.edit",{url:"/:id?tab",params:{user:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/edit/view.html",controller:"UserController as vm"}},resolve:{user:["apiResolver","$stateParams",function(e,t){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,id,fullname,name,email,userpic,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup,permissions",id:t.id})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.agents",{url:"/agents",views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/agents.html",controller:"AgentsController as vm"}},resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,userpic,password,description,autointernal,internal,loginInPause,voicemail,transport,host,nat,type,allow,callerid,callgroup,pickupgroup,chanspy,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarRingInUse,phoneBarEnableRecording,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarNoReply,phoneBarNoReplyNumber,phoneBarBusy,phoneBarBusyNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort",role:"agent",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.agents.edit",{url:"/:id?tab",params:{agent:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/edit/view.html",controller:"AgentController as vm"}},resolve:{agent:["apiResolver","$stateParams",function(e,t){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,userpic,password,description,autointernal,internal,loginInPause,voicemail,transport,host,nat,type,allow,callerid,callgroup,pickupgroup,chanspy,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarRingInUse,phoneBarEnableRecording,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarNoReply,phoneBarNoReplyNumber,phoneBarBusy,phoneBarBusyNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort",id:t.id})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.telephones",{url:"/telephones",views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/telephones.html",controller:"TelephonesController as vm"}},resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.telephones.edit",{url:"/:id?tab",params:{telephone:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/edit/view.html",controller:"TelephoneController as vm"}},resolve:{telephone:["apiResolver","$stateParams",function(e,t){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup",id:t.id})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.teams",{url:"/teams",views:{"content@app":{templateUrl:"app/main/apps/staff/views/teams/teams.html",controller:"TeamsController as vm"}},resolve:{teams:["apiResolver",function(e){return e.resolve("team@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:204,bodyClass:"staff"}),t.addPart("app/main/apps/staff")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.staff",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.tools",{abstract:!0,url:"/tools"}).state("app.tools.cannedAnswers",{url:"/cannedAnswers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",controller:"CannedAnswersController as vm"}},resolve:{cannedAnswers:["apiResolver",function(e){return e.resolve("cannedAnswer@get",{fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"}).state("app.tools.customDashboards",{url:"/customDashboards",views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/customDashboards.html",controller:"CustomDashboardsController as vm"}},resolve:{customDashboards:["apiResolver",function(e){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,interval,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.customDashboards.edit",{url:"/:id?tab",params:{customDashboard:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/edit/view.html",controller:"CustomDashboardController as vm"}},resolve:{customDashboard:["apiResolver","$stateParams",function(e,t){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,interval,description",id:t.id})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.intervals",{url:"/intervals",views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/intervals.html",controller:"IntervalsController as vm"}},resolve:{intervals:["apiResolver",function(e){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.intervals.edit",{url:"/:id?tab",params:{interval:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/edit/view.html",controller:"IntervalController as vm"}},resolve:{interval:["apiResolver","$stateParams",function(e,t){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",id:t.id})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.pauses",{url:"/pauses",views:{"content@app":{templateUrl:"app/main/apps/tools/views/pauses/pauses.html",controller:"PausesController as vm"}},resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1005,bodyClass:"tools"}).state("app.tools.schedules",{url:"/schedules",views:{"content@app":{templateUrl:"app/main/apps/tools/views/schedules/schedules.html",controller:"SchedulesController as vm"}},resolve:{schedules:["apiResolver",function(e){return e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,type,reportType,reportId,reportId,reportOutput,cronType,validityStart,validityEnd,cron,weekDays,monthDay,hour,reportRange,sendMail,MailServerOutId,email,active,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:42,bodyClass:"tools"}).state("app.tools.schedules.edit",{url:"/:id?tab",params:{schedule:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/schedules/edit/view.html",controller:"ScheduleController as vm"}},resolve:{schedule:["apiResolver","$stateParams",function(e,t){return e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,type,reportType,reportId,reportId,reportOutput,cronType,validityStart,validityEnd,cron,weekDays,monthDay,hour,reportRange,sendMail,MailServerOutId,email,active,description",id:t.id})}]},authenticate:!0,permissionId:42,bodyClass:"tools"}).state("app.tools.sounds",{url:"/sounds",views:{"content@app":{templateUrl:"app/main/apps/tools/views/sounds/sounds.html",controller:"SoundsController as vm"}},resolve:{sounds:["apiResolver",function(e){return e.resolve("sound@get",{fields:"createdAt,updatedAt,id,name,audio,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1006,bodyClass:"tools"}).state("app.tools.tags",{url:"/tags",views:{"content@app":{templateUrl:"app/main/apps/tools/views/tags/tags.html",controller:"TagsController as vm"}},resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1007,bodyClass:"tools"}).state("app.tools.templates",{url:"/templates",views:{"content@app":{templateUrl:"app/main/apps/tools/views/templates/templates.html",controller:"TemplatesController as vm"}},resolve:{templates:["apiResolver",function(e){return e.resolve("template@get",{fields:"createdAt,updatedAt,id,name,subject,html,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1008,bodyClass:"tools"}).state("app.tools.triggers",{url:"/triggers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/triggers.html",controller:"TriggersController as vm"}},resolve:{triggers:["apiResolver",function(e){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1009,bodyClass:"tools"}).state("app.tools.triggers.edit",{url:"/:id?tab",params:{trigger:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/edit/view.html",controller:"TriggerController as vm"}},resolve:{trigger:["apiResolver","$stateParams",function(e,t){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",id:t.id})}]},authenticate:!0,permissionId:1009,bodyClass:"tools"}).state("app.tools.trunks",{url:"/trunks",views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/trunks.html",controller:"TrunksController as vm"}},resolve:{trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,otherFields",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.trunks.edit",{url:"/:id?tab",params:{trunk:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/edit/view.html",controller:"TrunkController as vm"}},resolve:{trunk:["apiResolver","$stateParams",function(e,t){return e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,otherFields",id:t.id})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.variables",{url:"/variables",views:{"content@app":{templateUrl:"app/main/apps/tools/views/variables/variables.html",controller:"VariablesController as vm"}},resolve:{variables:["apiResolver",function(e){return e.resolve("variable@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}),t.addPart("app/main/apps/tools")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.tools",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter"]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/voice/views/realtime/realtime.html",controller:"VoiceRealtimeController as vm"}},authenticate:!0,permissionId:410}).state("app.voice.realtime.agents",{url:"/agents",controller:"AgentsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,role,userpic,internal,online,voicePause,pauseType,lastLoginAt,lastPauseAt",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],rpcAgents:["apiResolver",function(e){return e.resolve("rpc@getAgents")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.telephones",{url:"/telephones",controller:"TelephonesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/telephones/view.html",resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],rpcTelephones:["apiResolver",function(e){return e.resolve("rpc@getTelephones")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.trunks",{url:"/trunks",controller:"TrunksVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver",function(e){return e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.queues",{url:"/queues",controller:"QueuesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"inbound",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,name,role",role:"agent",nolimit:!0})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,t){return t.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("user@getQueues",{id:t.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.ivr_campaigns",{url:"/ivr_campaigns",controller:"IvrCampaignsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/ivr_campaigns/view.html",resolve:{campaigns:["apiResolver",function(e){return e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,permissionId:410}).state("app.voice.realtime.outbound_calls",{url:"/outbound_calls",controller:"OutboundCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/outbound_calls/view.html",resolve:{rpcCalls:["apiResolver",function(e){return e.resolve("rpc@getOutboundChannels")}]},authenticate:!0,permissionId:410})}e.$inject=["$stateProvider"],angular.module("app.voice.realtime",["timer"]).config(e)}(),function(){"use strict";function e(e,t,n,a){e.state("app.voice",{abstract:!0,url:"/voice"}).state("app.voice.voiceQueues",{url:"/voiceQueues",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/voiceQueues.html",controller:"VoiceQueuesController as vm"}},resolve:{voiceQueues:["apiResolver",function(e){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar",type:"inbound",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.voiceQueues.edit",{url:"/:id?tab",params:{voiceQueue:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/edit/view.html",controller:"VoiceQueueController as vm"}},resolve:{voiceQueue:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar",id:t.id})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.inboundroutes",{url:"/inboundroutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundroutes/inboundroutes.html",controller:"InboundRoutesController as vm"}},resolve:{inboundroutes:["apiResolver",function(e){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.inboundroutes.edit",{url:"/:id?tab",params:{inboundroute:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundroutes/edit/view.html",controller:"InboundRouteController as vm"}},resolve:{inboundroute:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",id:t.id})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.outboundroutes",{url:"/outboundroutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundroutes/outboundroutes.html",controller:"OutboundRoutesController as vm"}},resolve:{outboundroutes:["apiResolver",function(e){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"Outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.outboundroutes.edit",{url:"/:id?tab",params:{outboundroute:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundroutes/edit/view.html",controller:"OutboundRouteController as vm"}},resolve:{outboundroute:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",id:t.id})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.internalroutes",{url:"/internalroutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalroutes/internalroutes.html",controller:"InternalRoutesController as vm"}},resolve:{internalroutes:["apiResolver",function(e){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.internalroutes.edit",{url:"/:id?tab",params:{internalroute:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalroutes/edit/view.html",controller:"InternalRouteController as vm"}},resolve:{internalroute:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceExtension@get",{fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",id:t.id})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.contexts",{url:"/contexts",views:{"content@app":{templateUrl:"app/main/apps/voice/views/contexts/contexts.html",controller:"ContextsController as vm"}},resolve:{contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}]},authenticate:!0,permissionId:405,bodyClass:"voice"}).state("app.voice.voicemails",{url:"/voicemails",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/voicemails.html",controller:"VoicemailsController as vm"}},resolve:{voicemails:["apiResolver",function(e){return e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.voicemails.edit",{url:"/:id?tab",params:{voicemail:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/edit/view.html",controller:"VoicemailController as vm"}},resolve:{voicemail:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",id:t.id})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.musiconholds",{url:"/musiconholds",views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/musiconholds.html",controller:"MusicOnHoldsController as vm"}},resolve:{musiconholds:["apiResolver",function(e){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.musiconholds.edit",{url:"/:id?tab",params:{musiconhold:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/edit/view.html",controller:"MusicOnHoldController as vm"}},resolve:{musiconhold:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",id:t.id})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.voiceRecordings",{url:"/voiceRecordings",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",controller:"VoiceRecordingsController as vm"}},resolve:{voiceRecordings:["apiResolver",function(e){return e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.chanSpies",{url:"/chanSpies",views:{"content@app":{templateUrl:"app/main/apps/voice/views/chanSpies/chanSpies.html",controller:"ChanSpiesController as vm"}},resolve:{chanSpies:["apiResolver",function(e){return e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:409,bodyClass:"voice"}).state("app.voice.chanSpies.edit",{url:"/:id?tab",params:{chanSpy:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/chanSpies/edit/view.html",controller:"ChanSpyController as vm"}},resolve:{chanSpy:["apiResolver","$stateParams",function(e,t){return e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",id:t.id})}]},authenticate:!0,permissionId:409,bodyClass:"voice"}),t.addPart("app/main/apps/voice")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.voice",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","textAngular","ng-sortable","ngAria","ngAnimate","mdPickers","textAngular","gridster","ds.clock","mwFormBuilder","mwFormViewer","mwFormUtils","angular.filter","app.voice.realtime"]).config(e)}(),function(){"use strict";function e(){}angular.module("app.navigation",[]).config(e)}(),function(){"use strict";function e(e,t){e.addPart("app/quick-panel"),t.register("quickPanel.activities",["app/data/quick-panel/activities.json"]),t.register("quickPanel.contacts",["app/data/quick-panel/contacts.json"]),t.register("quickPanel.events",["app/data/quick-panel/events.json"]),t.register("quickPanel.notes",["app/data/quick-panel/notes.json"])}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/toolbar")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.toolbar",[]).config(e)}(),function(){"use strict";function e(e){e.interceptors.push("authInterceptor")}e.$inject=["$httpProvider"],angular.module("app.auth").config(e)}(),function(){"use strict";function e(e,t,n,a){e.$on("$stateChangeStart",function(e,n){return n.hasOwnProperty("authenticate")&&n.authenticate&&!a.isLoggedIn()?(e.preventDefault(),t.go("app.login",{},{reload:!0,notify:!0})):a.isLoggedIn()&&n.hasOwnProperty("permissionId")&&n.permissionId&&!a.hasPermission(n.permissionId)&&!a.hasRole("admin")?(e.preventDefault(),t.go("app.dashboards.general",{},{reload:!0,notify:!0})):void 0})}e.$inject=["$rootScope","$state","$window","Auth"],angular.module("app.auth").run(e)}(),function(){"use strict";function e(e,t,n,a){function i(){var e=n.defer();return c("agent")?a.user.login({id:h.id}).$promise.then(function(){console.log("AGENT LOGGED IN"),e.resolve()}).catch(function(t){e.reject(t)}):e.resolve(),e.promise}function o(e){var o=n.defer();return a.auth.local(e).$promise.then(function(e){return t.put("motion.token",e.token),a.user.get({id:e.id,fields:"id,role,fullname,name,internal,email,userpic,permissions,voicePause,pauseType"}).$promise}).then(function(e){return h=e,h.lastLoginAt=moment(),t.put("motion.user",JSON.stringify(e)),i()}).then(function(){o.resolve()}).catch(function(e){o.reject(e.data)}),o.promise}function s(){var e=n.defer();return c("agent")?a.user.logout({id:h.id}).$promise.then(function(){console.log("AGENT LOGGED OUT")}).catch(function(e){console.log(e)}).finally(function(){e.resolve()}):e.resolve(),e.promise}function r(){h=null,t.remove("motion.user"),t.remove("motion.token")}function l(e){n.defer();return e?(r(),n.resolve()):s().then(r).catch(function(e){console.error(e)})}function d(){return!(!h||!u())}function c(e){return!!h&&h.role===e}function m(e){return!!h&&_.includes(h.permissions,e)}function u(){return t.get("motion.token")}function p(){return h}function g(e){return h=e,t.put("motion.user",JSON.stringify(e)),h}var h;return function(){t.get("motion.user")&&(h=JSON.parse(t.get("motion.user")))}(),{login:o,logout:l,queueLogin:i,isLoggedIn:d,hasRole:c,hasPermission:m,getToken:u,getCurrentUser:p,updateCurrentUser:g}}e.$inject=["$location","$cookies","$q","api"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(e,t,n,a,i){var o;return{request:function(e){var t=n.get("motion.token");return e.headers=e.headers||{},i.isSameOrigin(e.url)&&t&&(e.headers.Authorization="Bearer "+t),e},responseError:function(e){switch(e.status){case 401:n.remove("motion.user"),n.remove("motion.token"),(o||(o=a.get("$state"))).go("app.login")}return t.reject(e)}}}e.$inject=["$rootScope","$q","$cookies","$injector","Util"],angular.module("app.auth").factory("authInterceptor",e)}(),function(){"use strict";function e(e){var t={safeCb:function(e){return angular.isFunction(e)?e:angular.noop},urlParse:function(e){var t=document.createElement("a");return t.href=e,""===t.host&&(t.href=t.href),t},isSameOrigin:function(n,a){return n=t.urlParse(n),a=a&&[].concat(a)||[],(a=a.map(t.urlParse)).push(e.location),(a=a.filter(function(e){var t=n.hostname===e.hostname,a=n.protocol===e.protocol,i=n.port===e.port||""===e.port&&("80"===n.port||"443"===n.port);return t&&a&&i})).length>=1}};return t}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";function e(){function e(e){t=angular.extend({},t,e)}var t={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=e,this.$get=function(){function e(e){return!angular.isUndefined(t[e])&&t[e]}function n(e,n){t[e]=n}return{getConfig:e,setConfig:n}}}angular.module("app.core").provider("motionConfig",e)}(),function(){"use strict";function e(e,t,n,a){t.debugEnabled(!0),e.config({tabindex:!1}),a.config({disableCustomScrollbars:!1,disableCustomScrollbarsOnMobile:!0,disableMdInkRippleOnMobile:!0}),n.config({wheelPropagation:!0})}e.$inject=["$ariaProvider","$logProvider","msScrollConfigProvider","motionConfigProvider"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,t,n){t.generate(),n.getConfig("disableMdInkRippleOnMobile")&&e.isMobile()&&angular.element("body").attr("md-no-ink",!0),e.isMobile()&&angular.element("html").addClass("is-mobile");var a=e.detectBrowser();if(a){var i=a.browser+" "+a.version+" "+a.os;angular.element("html").addClass(i)}}e.$inject=["msUtils","motionGenerator","motionConfig"],angular.module("app.core").run(e)}(),function(){"use strict";function e(e,t,n){return{restrict:"E",compile:function(a,i){var o;return i.code||(o=a.html(),a.empty()),function(a,i,s){function r(e,t){var n=t.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],o=new RegExp("^"+i);a=a.map(function(e){return e.replace(o,"").replace(/\s+$/,"")});var r=hljs.highlight(s.language||s.lang,a.join("\n"),!0);r.value=r.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),n.append(r.value).addClass("highlight")}s.code&&(o=a.$eval(s.code));var l=a.$eval(s.shouldInterpolate);t.when(o).then(function(t){if(t){l&&(t=n(t)(a));var o=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');i.append(o),e(function(){r(t,o)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(){return{restrict:"E",scope:{templatePath:"=template",card:"=ngModel",vm:"=viewModel"},template:'<div class="ms-card-content-wrapper" ng-include="templatePath" onload="cardTemplateLoaded()"></div>',compile:function(e){return e.addClass("ms-card"),function(e,t){function n(){e.$emit("msCard::cardTemplateLoaded",t)}e.cardTemplateLoaded=n}}}}angular.module("app.core").directive("msCard",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditClockItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(a,i,o){function s(n){e.show({controller:"EditClockItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-clock/edit/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{options:a.options}})}function r(e){return n.trustAsResourceUrl(e)}a.options?a.options.data||(a.options.data={theme:"light",digitalFormat:"hh:mm:ss"}):a.options={},a.options.sizeX=a.options.sizeX<=1?2:a.options.sizeX,a.options.sizeY=a.options.sizeY<=1?2:a.options.sizeY,a.editItem=s,a.getTrustSrc=r}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:i,templateUrl:"app/core/directives/ms-dash-clock/ms-dash-clock.html"}}e.$inject=["$mdDialog","$document","$sce","api"],angular.module("app.core").directive("msDashClock",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditCounterItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(n,i){function o(e){n.result=e}function s(a){e.show({controller:"EditCounterItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-counter/edit/dialog.html",parent:angular.element(t.body),targetEvent:a,clickOutsideToClose:!0,locals:{options:n.options}})}n.options&&!n.options.data&&(n.options.data={background:"#FFFFFF",foreground:"#03A9F4",foregroundTitle:"#7f7f7f",query:{fields:[],limit:1}}),a.on("widget:"+n.options.id,o),n.editItem=s,n.onWidgetUpdate=o}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:o,templateUrl:"app/core/directives/ms-dash-counter/ms-dash-counter.html"}}e.$inject=["$mdDialog","$document","$interval","socket","api"],angular.module("app.core").directive("msDashCounter",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditIframeItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(a,i,o){function s(n){e.show({controller:"EditIframeItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-iframe/edit/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{options:a.options}})}function r(e){return n.trustAsResourceUrl(e)}a.options&&!a.options.data&&(a.options.data={url:"https://www.xcallymotion.com/"}),a.editItem=s,a.getTrustSrc=r}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:i,templateUrl:"app/core/directives/ms-dash-iframe/ms-dash-iframe.html"}}e.$inject=["$mdDialog","$document","$sce","api"],angular.module("app.core").directive("msDashIframe",e)}(),function(){"use strict";function e(e,t,n,a){function i(){return n.dashboardItem.update(s.options).$promise.then(function(e){o(e)}).catch(function(e){console.error(e)})}function o(e){t.hide(e)}var s=this;s.options=a,s.closeDialog=o,s.updateItem=i}e.$inject=["$scope","$mdDialog","api","options"],angular.module("app.tools").controller("EditTableItemDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(n,a,o){function s(e){n.result=e}function r(a){e.show({controller:"EditTableItemDashboardDialogController",controllerAs:"vm",templateUrl:"app/core/directives/ms-dash-table/edit/dialog.html",parent:angular.element(t.body),targetEvent:a,clickOutsideToClose:!0,locals:{options:n.options}})}n.options&&!n.options.data&&(n.options.data={query:{}}),i.on("widget:"+n.options.id,s),n.editItem=r,n.onWidgetUpdate=s}return{restrict:"E",scope:{options:"=",deleteItem:"&onDeleteItem"},link:o,templateUrl:"app/core/directives/ms-dash-table/ms-dash-table.html"}}e.$inject=["$mdDialog","$document","$interval","api","socket"],angular.module("app.core").directive("msDashTable",e)}(),function(){"use strict";function e(){function e(e){n=angular.extend({},n,e)}var t=this,n={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};t.config=e,t.$get=function(){return n}}function t(e){return{require:"ngModel",priority:1,link:function(t,n,a,i){i.$formatters.push(e.formatter),i.$parsers.push(e.parser)}}}t.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",e).directive("msDatepickerFix",t)}(),function(){"use strict";function e(){return{restrict:"E",scope:{options:"="},controller:["$scope",function(e){e.transfer=function(t,n,a,i){var o=[];if(a>=0)o.push(t[a]),n.push(t[a]),t.splice(a,1);else{for(var s=0;s<t.length;s+=1)n.push(t[s]);t.length=0,o=n}e.options.transferCallback&&e.options.transferCallback(o,i)}}],templateUrl:"app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html"}}angular.module("app.core").directive("msDualMultiselect",e)}(),function(){"use strict";function e(){function e(e){u.forms.push(e)}function t(){s()||u.selectedIndex--}function n(){r()||u.selectedIndex++}function a(){u.selectedIndex=0}function i(){u.selectedIndex=o()-1}function o(){return u.forms.length}function s(){return 0===u.selectedIndex}function r(){return u.selectedIndex===o()-1}function l(){return angular.isDefined(u.forms[u.selectedIndex])&&u.forms[u.selectedIndex].$invalid}function d(){return u.selectedIndex>0&&angular.isDefined(u.forms[u.selectedIndex-1])&&u.forms[u.selectedIndex-1].$invalid}function c(){for(var e=0;e<u.forms.length;e++)if(u.forms[e].$invalid)return!0;return!1}function m(){u.selectedIndex=0;for(var e=0;e<u.forms.length;e++)u.forms[e].$setPristine(),u.forms[e].$setUntouched()}var u=this;u.forms=[],u.selectedIndex=0,u.registerForm=e,u.previousStep=t,u.nextStep=n,u.firstStep=a,u.lastStep=i,u.totalSteps=o,u.isFirstStep=s,u.isLastStep=r,u.currentStepInvalid=l,u.previousStepInvalid=d,u.formsIncomplete=c,u.resetForm=m}function t(){return{restrict:"E",scope:!0,controller:"MsFormWizardController as msWizard",compile:function(e){return e.addClass("ms-form-wizard"),function(){}}}}function n(){return{restrict:"A",require:["form","^msFormWizard"],compile:function(e){return e.addClass("ms-form-wizard-form"),function(e,t,n,a){var i=a[0];a[1].registerForm(i)}}}}angular.module("app.core").controller("MsFormWizardController",e).directive("msFormWizard",t).directive("msFormWizardForm",n)}(),function(){"use strict";function e(e){return{restrict:"E",scope:{},transclude:!0,templateUrl:"app/core/directives/ms-info-bar/ms-info-bar.html",link:function(t,n){function a(){i.removeClass(o),n.remove(),t.$destroy()}var i=e.find("body"),o="ms-info-bar-active";i.addClass(o),t.removeInfoBar=a}}}e.$inject=["$document"],angular.module("app.core").directive("msInfoBar",e)}(),function(){"use strict";function e(e,t,n,a){function i(){d.options=d.options?angular.extend(c,d.options):c,s()}function o(e,n){"undefined"!=typeof imagesLoaded?t.imagesLoaded(e).on("done",function(){n()}):n()}function s(){e.$watch(function(){return d.container.width()},function(e,t){e!==t&&r()})}function r(){function t(){d.containerPos=d.container[0].getBoundingClientRect(),l(),e.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var t=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),n=0;n<d.items.length;n++){var a,i,o,s,r=d.items[n];(r=angular.element(r)).scope()&&r.scope().$broadcast("msMasonryItem:startReLayout"),r.css({width:d.columnWidth}),d.options.respectItemOrder?s=t[o=n%d.columnCount]:(s=Math.min.apply(Math,t),o=t.indexOf(s)),t[o]=s+r[0].getBoundingClientRect().height,a=Math.round(o*d.columnWidth),i=s,r.css({transform:"translate3d("+a+"px,"+i+"px,0px)"}),r.addClass("placed"),r.scope()&&r.scope().$broadcast("msMasonryItem:finishReLayout")}}m&&a.cancel(m),m=a(function(){t(),e.$broadcast("msMasonry:relayoutFinished")},d.options.reLayoutDebounce)}function l(){d.columnCount=d.options.columnCount,n("gt-md")?d.columnCount=d.options.columnCount:n("md")?d.columnCount=d.columnCount>d.options.responsive.md?d.options.responsive.md:d.columnCount:n("sm")?d.columnCount=d.columnCount>d.options.responsive.sm?d.options.responsive.sm:d.columnCount:d.columnCount=d.options.responsive.xs,d.columnWidth=d.containerPos.width/d.columnCount}var d=this,c={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},m=!0;d.options=null,d.container=[],d.containerPos="",d.columnWidth="",d.items=[],d.reLayout=r,d.initialize=i,d.waitImagesLoaded=o,e.$on("msMasonry:relayout",function(){r()})}function t(e){function t(t,n){return{pre:function(e,a,i,o){o.options=angular.fromJson(n.options||"{}"),o.container=t},post:function(t,n,a,i){e(function(){i.initialize()})}}}return{restrict:"AEC",controller:"msMasonryController",compile:t}}function n(){function e(e,t,n,a){a.waitImagesLoaded(t,function(){a.reLayout()}),e.$on("msMasonryItem:finishReLayout",function(){e.$watch(function(){return t.height()},function(e,t){e!==t&&a.reLayout()})}),t.on("$destroy",function(){a.reLayout()})}return{restrict:"AEC",require:"^msMasonry",priority:1,link:e}}e.$inject=["$scope","$window","$mdMedia","$timeout"],t.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",t).directive("msMasonryItem",n)}(),function(){"use strict";function e(e,t,n,a){function i(e,t){c.selectedPalette=e,c.selectedHues=t}function o(e,t){l(e,t),d(),n.hide()}function s(){c.selectedColor={palette:"",hue:"",class:""},i(!1,!1),d()}function r(){if(c.modelCtrl.$viewValue&&""!==c.modelCtrl.$viewValue){var e,t;if("class"===c.msModelType){var n=c.modelCtrl.$viewValue.split("-");n.length>=5?(e=n[1]+"-"+n[2],t=n[3]):(e=n[1],t=n[2])}else"obj"===c.msModelType&&(e=c.modelCtrl.$viewValue.palette,t=c.modelCtrl.$viewValue.hue||500);l(e,t)}else s()}function l(t,n){c.selectedColor={palette:t,hue:n,class:"md-"+t+"-"+n+"-bg",bgColorValue:a.rgba(c.palettes[t][n].value),fgColorValue:a.rgba(c.palettes[t][n].contrast)},"obj"!==c.msModelType||angular.equals(c.selectedColor,c.modelCtrl.$viewValue)||d(),i(t,c.palettes[t]),e.$selectedColor=c.selectedColor}function d(){"class"===c.msModelType?c.modelCtrl.$setViewValue(c.selectedColor.class):"obj"===c.msModelType&&c.modelCtrl.$setViewValue(c.selectedColor)}var c=this;c.palettes=t,c.selectedPalette=!1,c.selectedHues=!1,e.$selectedColor={},c.activateHueSelection=i,c.selectColor=o,c.removeColor=s,e.$watch("ngModel",r)}function t(){return{require:["msMaterialColorPicker","ngModel"],restrict:"E",scope:{ngModel:"=",msModelType:"@?"},controller:"msMaterialColorPickerController as vm",transclude:!0,templateUrl:"app/core/directives/ms-material-color-picker/ms-material-color-picker.html",link:function(e,t,n,a,i){var o=a[0];o.modelCtrl=a[1],o.msModelType=e.msModelType||"class",i(e,function(e){(e=e.filter(function(e,t){return 1===t.nodeType})).length&&t.find("ms-color-picker-button").replaceWith(e)})}}}e.$inject=["$scope","$mdColorPalette","$mdMenu","motionGenerator"],angular.module("app.core").controller("msMaterialColorPickerController",e).directive("msMaterialColorPicker",t)}(),function(){"use strict";function e(){function e(e,t){o={scope:e,element:t}}function t(){return o.scope.isNavFoldedOpen()}function n(){o.scope.toggleFold()}function a(){o.scope.openFolded()}function i(){o.scope.closeFolded()}var o={};return{setFoldable:e,isNavFoldedOpen:t,toggleFold:n,openFolded:a,closeFolded:i}}function t(e,t,n){return{restrict:"A",link:function(a,i,o){function s(){return p}function r(){(u=!u)?l():m()}function l(){g.addClass("ms-nav-folded"),t.$broadcast("msNav::forceCollapse"),i.scrollTop(0),b.append(h),h.on("mouseenter touchstart",function(e){d(e),p=!0})}function d(e){angular.isDefined(e)&&e.preventDefault(),g.addClass("ms-nav-folded-open"),t.$broadcast("msNav::expandMatchingToggles"),b.find(h).remove(),b.parent().append(v),v.on("mouseenter touchstart",function(e){c(e),p=!1})}function c(e){angular.isDefined(e)&&e.preventDefault(),t.$broadcast("msNav::forceCollapse"),i.scrollTop(0),g.removeClass("ms-nav-folded-open"),b.parent().find(v).remove(),b.append(h),h.on("mouseenter touchstart",function(e){d(e),p=!0})}function m(){g.removeClass("ms-nav-folded ms-nav-folded-open"),t.$broadcast("msNav::expandMatchingToggles"),i.off("mouseenter mouseleave")}var u="true"===o.msNavIsFolded,p=!1,g=angular.element(e[0].body),h=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),v=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),b=i.parent();n.setFoldable(a,i,u),u?l():m(),a.toggleFold=r,a.openFolded=d,a.closeFolded=c,a.isNavFoldedOpen=s,a.$on("$destroy",function(){h.off("mouseenter touchstart"),v.off("mouseenter touchstart"),i.off("mouseenter mouseleave")})}}}function n(){function e(){return l}function t(){l=!0}function n(){l=!1}function a(e,t){d.push({element:e,scope:t})}function i(){return c}function o(e,t){c.push({element:e,scope:t})}function s(){c=[]}var r=this,l=!1,d=[],c=[];r.isDisabled=e,r.enable=n,r.disable=t,r.setToggleItem=a,r.getLockedItems=i,r.setLockedItem=o,r.clearLockedItems=s}function a(e,t,n){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(a){return a.addClass("ms-nav"),function(a){e.$broadcast("msNav::expandMatchingToggles");var i=e.$on("$stateChangeSuccess",function(){e.$broadcast("msNav::expandMatchingToggles"),t.when("navigation").then(function(e){e.close(),n.isNavFoldedOpen()&&n.closeFolded()})});a.$on("$destroy",function(){i()})}}}}function i(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}function o(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}function s(e,t,n,a){return{restrict:"A",require:"^msNav",scope:!0,compile:function(i,o){return i.addClass("ms-nav-toggle"),angular.isUndefined(o.collapsed)&&(o.collapsed=!0),i.attr("collapsed",o.collapsed),function(i,o,s,r){function l(){r.isDisabled()||(r.disable(),d()?(r.clearLockedItems(),i.$emit("msNav::pushToLockedList"),e.$broadcast("msNav::collapse"),m().then(function(){r.enable()})):i.$broadcast("msNav::forceCollapse"))}function d(){return"true"===o.attr("collapsed")}function c(){return!d()}function m(){var e=t.defer();if(c())return e.reject({error:!0}),e.promise;o.attr("collapsed",!1);var a=angular.element(o.find("ms-nav-toggle-items")[0]);a.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var s=a[0].offsetHeight;return a.css({position:"",visibility:"",display:"",height:""}),i.$evalAsync(function(){n.animate(a,{display:"block",height:"0px"},{height:s+"px"},p.expandAnimation).then(function(){a.addClass(p.expanded),a.css({height:""}),e.resolve({success:!0})})}),e.promise}function u(){var e=t.defer();if(d())return e.reject({error:!0}),e.promise;o.attr("collapsed",!0);var a=angular.element(o.find("ms-nav-toggle-items")[0]),s=a[0].offsetHeight;return i.$evalAsync(function(){n.animate(a,{height:s+"px"},{height:"0px"},p.collapseAnimation).then(function(){a.removeClass(p.expanded),a.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}var p={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},g=o.find("a"),h=[],v=/\(.*\)/g;angular.forEach(g,function(e){var t=angular.element(e).attr("ui-sref");angular.isUndefined(t)||(t=t.replace(v,""),h.push(t))}),r.setToggleItem(o,i),o.children(".ms-nav-button").on("click",l),i.$on("$destroy",function(){o.children(".ms-nav-button").off("click")}),i.$on("msNav::collapse",function(){var e=r.getLockedItems(),t=!1;angular.forEach(e,function(e){angular.equals(e.scope,i)&&(t=!0)}),t||u().then(function(){r.enable()})}),i.$on("msNav::forceCollapse",function(){u().then(function(){r.enable()})}),i.$on("msNav::expandMatchingToggles",function(){var e=a.current.name,t=!1;angular.forEach(h,function(n){e===n&&(t=!0)}),t?m():u()}),i.$on("msNav::pushToLockedList",function(){r.setLockedItem(o,i)})}}}}t.$inject=["$document","$rootScope","msNavFoldService"],a.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],s.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",e).directive("msNavIsFolded",t).controller("MsNavController",n).directive("msNav",a).directive("msNavTitle",i).directive("msNavButton",o).directive("msNavToggle",s)}(),function(){"use strict";function e(){function e(e,t){if(angular.isString(e)){for(var n=e.split("."),i=n[n.length-1],r=a(n),l=!1,d=0;d<r.length;d++)if(r[d]._id===i){l=r[d];break}l?(angular.extend(l,t),l.uisref=o(l)):(t.children=[],!angular.isUndefined(t.weight)&&angular.isNumber(t.weight)||(t.weight=1),t._id=i,t._path=e,t.uisref=o(t),r.push(t))}else s.error("path must be a string (eg. `dashboard.project`)")}function t(e){if(angular.isString(e)){for(var t=r,n=e.split("."),a=0;a<n.length;a++)for(var i=n[a],o=0;o<t.length;o++)if(t[o]._id===i){if(t[o]._path===e)return t.splice(o,1),!0;t=t[o].children;break}return!1}s.error("path must be a string (eg. `dashboard.project`)")}function n(e){e||(e=r).sort(i);for(var t=0;t<e.length;t++){var a=e[t].children;a.length>1&&a.sort(i),a.length>0&&n(a)}}function a(e){var t=r;if(1===e.length)return t;e.pop();for(var n=0;n<e.length;n++){for(var a=e[n],i=!0,o=0;o<t.length;o++)if(t[o]._id===a){t=t[o].children,i=!1;break}if(i){var s={_id:a,_path:e.join("."),title:a,weight:1,children:[]};t.push(s),t=s.children}}return t}function i(e,t){return parseInt(e.weight)-parseInt(t.weight)}function o(e){var t="";return angular.isDefined(e.state)&&(t=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(t=t+"("+angular.toJson(e.stateParams)+")")),t}var s=angular.injector(["ng"]).get("$log"),r=[],l=this;l.saveItem=e,l.deleteItem=t,l.sortByWeight=n,this.$get=function(){function a(){r=[],b&&(b.vm.navigation=r)}function i(e,t){v={node:e,scope:t}}function o(){return v}function s(e){if(e){for(var t=0;t<r.length;t++)if(r[t]._id===e)return[r[t]];return null}return r}function l(e){return h(s(e))}function d(e){b=e}function c(e){f=e}function m(){return f}function u(e){E=e}function p(){return E}function g(){b.toggleFolded()}function h(e){for(var t=[],n=0;n<e.length;n++){var a=angular.copy(e[n]);a.children=[],t.push(a),e[n].children.length>0&&(t=t.concat(h(e[n].children)))}return t}var v=null,b=null,f=null,E=null;return{saveItem:e,deleteItem:t,sort:n,clearNavigation:a,setActiveItem:i,getActiveItem:o,getNavigation:s,getFlatNavigation:l,setNavigationScope:d,setFolded:c,getFolded:m,setFoldedOpen:u,getFoldedOpen:p,toggleFolded:g}}}function t(e,t){function n(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")}var a=this;e.root?a.navigation=t.getNavigation(e.root):a.navigation=t.getNavigation(),a.toggleHorizontalMobileMenu=n,function(){t.sort()}()}function n(e,t,n,a){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(i){return i.addClass("ms-navigation"),function(i,o){function s(t){if(a.setFolded(t),t)e.$broadcast("msNavigation::collapse"),u.addClass("ms-navigation-folded"),r();else{var n=a.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),u.removeClass("ms-navigation-folded ms-navigation-folded-open"),d()}}function r(){o.parent().append(p),t(function(){p.on("mouseenter touchstart",c)})}function l(){u.find("#main").append(g),g.on("mouseenter touchstart",m)}function d(){g.remove()}function c(e){e&&e.preventDefault(),a.setFoldedOpen(!0);var t=a.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched"),u.addClass("ms-navigation-folded-open"),p.remove(),l()}function m(t){t&&t.preventDefault(),a.setFoldedOpen(!1),e.$broadcast("msNavigation::collapse"),u.removeClass("ms-navigation-folded-open"),g.remove(),r()}var u=angular.element("body"),p=angular.element('<div id="ms-navigation-fold-expander"></div>'),g=angular.element('<div id="ms-navigation-fold-collapser"></div>'),h=n("navigation");a.setNavigationScope(i),function(){null===a.getFolded()&&a.setFolded(i.folded),a.getFolded()&&(t(function(){e.$broadcast("msNavigation::collapse")}),u.addClass("ms-navigation-folded"),r())}(),i.$watch(function(){return h.isLockedOpen()},function(t,n){if(!angular.isUndefined(t)&&!angular.equals(t,n)&&a.getFolded())if(t)e.$broadcast("msNavigation::collapse");else{var i=a.getActiveItem();i&&i.scope.$emit("msNavigation::stateMatched")}}),i.$watch("folded",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||s(e)}),i.toggleFolded=function(){s(!a.getFolded())},i.$on("$stateChangeStart",function(){h.close()}),i.$on("$destroy",function(){g.off("mouseenter touchstart"),p.off("mouseenter touchstart")})}}}}function a(e,t,n,a,i,o){function s(){m.collapsed?m.expand():m.collapse()}function r(){var t=m.element.children("ul"),n=t[0].offsetHeight;e.$evalAsync(function(){m.collapsed=!0,m.element.addClass("collapsing"),a.animate(t,{display:"block",height:n+"px"},{height:"0px"},m.animateHeightClass).then(function(){t.css({display:"",height:""}),m.element.removeClass("collapsing")}),e.$broadcast("msNavigation::collapse")})}function l(){var t=m.element.children("ul");t.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var i=t[0].offsetHeight;t.css({position:"",visibility:"",display:"",height:""}),e.$evalAsync(function(){m.collapsed=!1,m.element.addClass("expanding"),a.animate(t,{display:"block",height:"0px"},{height:i+"px"},m.animateHeightClass).then(function(){t.css({height:""}),m.element.removeClass("expanding")}),n.$broadcast("msNavigation::collapse",m.node._path)})}function d(){return m.node.class}function c(){return!(!angular.isDefined(m.node.hidden)||!angular.isFunction(m.node.hidden))&&m.node.hidden()}var m=this;m.element=t,m.node=e.node,m.hasChildren=void 0,m.collapsed=void 0,m.collapsable=void 0,m.group=void 0,m.animateHeightClass="animate-height",m.toggleCollapsed=s,m.collapse=r,m.expand=l,m.getClass=d,m.isHidden=c,function(){if(m.hasChildren=m.node.children.length>0,m.group=!(!angular.isDefined(m.node.group)||!0!==m.node.group),!m.hasChildren||m.group?m.collapsable=!1:m.collapsable=!(!angular.isUndefined(m.node.collapsable)&&"boolean"==typeof m.node.collapsable&&!0!==m.node.collapsable),m.collapsable?m.collapsed=!(!angular.isUndefined(m.node.collapsed)&&"boolean"==typeof m.node.collapsed&&!0!==m.node.collapsed):m.collapsed=!1,m.node.state===i.current.name||i.includes(m.node.state)){if(angular.isDefined(m.node.stateParams)&&angular.isDefined(i.params)&&!angular.equals(m.node.stateParams,i.params))return;e.$emit("msNavigation::stateMatched"),o.setActiveItem(m.node,e)}e.$on("msNavigation::stateMatched",function(){m.collapsable&&m.collapsed&&e.$evalAsync(function(){m.collapsed=!1})}),e.$on("msNavigation::collapse",function(e,t){if(!m.collapsed&&m.collapsable)if(angular.isUndefined(t))m.collapse();else{var n=t.split("."),a=[],i=o.getActiveItem();if(i&&(a=i.node._path.split(".")),n.indexOf(m.node._id)>-1)return;if(a.indexOf(m.node._id)>-1)return;m.collapse()}}),e.$on("$stateChangeSuccess",function(){if(m.node.state===i.current.name){if(angular.isDefined(m.node.stateParams)&&angular.isDefined(i.params)&&!angular.equals(m.node.stateParams,i.params))return;o.setActiveItem(m.node,e),n.$broadcast("msNavigation::collapse",m.node._path)}if(i.includes(m.node.state)){if(angular.isDefined(m.node.stateParams)&&angular.isDefined(i.params)&&!angular.equals(m.node.stateParams,i.params))return;e.$emit("msNavigation::stateMatched")}})}()}function i(){return{restrict:"A",bindToController:{node:"=msNavigationNode"},controller:"MsNavigationNodeController as vm",compile:function(e){return e.addClass("ms-navigation-node"),function(e,t,n,a){t.addClass(a.getClass()),a.group&&t.addClass("group")}}}}function o(){return{restrict:"A",require:"^msNavigationNode",compile:function(e){return e.addClass("ms-navigation-item"),function(e,t,n,a){a.collapsable&&t.on("click",a.toggleCollapsed),e.$on("$destroy",function(){t.off("click")})}}}}function s(e){return{restrict:"E",scope:{root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/horizontal.html",transclude:!0,compile:function(t){return t.addClass("ms-navigation-horizontal"),function(t){e.setNavigationScope(t)}}}}function r(e,t,n,a,i){function o(){return s.node.class}var s=this;s.element=t,s.node=e.node,s.hasChildren=void 0,s.group=void 0,s.getClass=o,function(){if(s.isActive=!1,s.hasChildren=s.node.children.length>0,s.group=!(!angular.isDefined(s.node.group)||!0!==s.node.group),s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;e.$emit("msNavigation::stateMatched"),i.setActiveItem(s.node,e)}e.$on("msNavigation::stateMatched",function(){s.hasChildren&&e.$evalAsync(function(){s.isActive=!0})}),e.$on("msNavigation::clearActive",function(){if(s.hasChildren){var t=[],n=i.getActiveItem();n&&(t=n.node._path.split(".")),t.indexOf(s.node._id)>-1?e.$evalAsync(function(){s.isActive=!0}):e.$evalAsync(function(){s.isActive=!1})}}),e.$on("$stateChangeSuccess",function(){if(s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;i.setActiveItem(s.node,e),n.$broadcast("msNavigation::clearActive")}})}()}function l(){return{restrict:"A",bindToController:{node:"=msNavigationHorizontalNode"},controller:"MsNavigationHorizontalNodeController as vm",compile:function(e){return e.addClass("ms-navigation-horizontal-node"),function(e,t,n,a){t.addClass(a.getClass()),a.group&&t.addClass("group")}}}}function d(e){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(t){return t.addClass("ms-navigation-horizontal-item"),function(t,n,a,i){function o(){i.hasChildren&&!e("gt-md")&&n.toggleClass("expanded")}n.on("click",o),t.$on("$destroy",function(){n.off("click")})}}}}t.$inject=["$scope","msNavigationService"],n.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],a.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],s.$inject=["msNavigationService"],r.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],d.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",e).controller("MsNavigationController",t).directive("msNavigation",n).controller("MsNavigationNodeController",a).directive("msNavigationNode",i).directive("msNavigationItem",o).directive("msNavigationHorizontal",s).controller("MsNavigationHorizontalNodeController",r).directive("msNavigationHorizontalNode",l).directive("msNavigationHorizontalItem",d)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){r.mobileBarActive=!r.mobileBarActive}var r=this;r.mobileBarActive=!1,r.toggleMobileBar=s}function t(){return{restrict:"E",scope:{},require:"msPhonebar",controller:"MsPhonebarController as MsPhonebar",bindToController:{},templateUrl:"app/core/directives/ms-phonebar/ms-phonebar.html",compile:function(e){return e.addClass("ms-phonebar"),function(e,t){}}}}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",t)}(),function(){"use strict";function e(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,t){var n=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];t.addClass(n)}}}angular.module("app.core").directive("msRandomClass",e)}(),function(){"use strict";function e(){return{restrict:"A",link:function(e,t){var n=angular.element('<div class="ms-responsive-table-wrapper"></div>');t.after(n),n.append(t)}}}angular.module("app.core").directive("msResponsiveTable",e)}(),function(){"use strict";function e(){function e(e){t=angular.extend({},t,e)}var t={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0};this.config=e,this.$get=function(){function e(){return t}return{getConfig:e}}}function t(e,t,n,a){return{restrict:"AE",compile:function(i){if(!(a.getConfig("disableCustomScrollbars")||a.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return i.addClass("ms-scroll"),function(n,a,i){function o(){PerfectScrollbar.update(a[0])}var s={};i.msScroll&&(s=n.$eval(i.msScroll)),s=angular.extend({},t.getConfig(),s),e(function(){PerfectScrollbar.initialize(a[0],s)},0),a.on("mouseenter",o),n.$watch(function(){return a.prop("scrollHeight")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||o()}),n.$watch(function(){return a.prop("scrollWidth")},function(e,t){angular.isUndefined(e)||angular.equals(e,t)||o()}),n.$on("$destroy",function(){a.off("mouseenter"),PerfectScrollbar.destroy(a[0])})}}}}t.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",e).directive("msScroll",t)}(),function(){"use strict";function e(e,t,n){function a(e){if(!p.collapsed){var t=null===e;(angular.isArray(e)||t)&&(p.selectedResultIndex=0,p.results=e)}}function i(){p.collapsed=!1,e.expand(),p.onExpand&&angular.isFunction(p.onExpand)&&p.onExpand()}function o(){p.query="",p.populateResults(null),p.collapsed=!0,e.collapse(),p.onCollapse&&angular.isFunction(p.onCollapse)&&p.onCollapse()}function s(){g&&p.collapse()}function r(e){e.preventDefault()}function l(e){var t=e.keyCode;switch([27,38,40].indexOf(t)>-1&&e.preventDefault(),t){case 13:if(!p.results)return;p.handleResultClick(p.results[p.selectedResultIndex]);break;case 27:p.collapse();break;case 38:p.selectedResultIndex-1>=0&&(p.selectedResultIndex--,p.ensureSelectedResultIsVisible());break;case 40:if(!p.results)return;p.selectedResultIndex+1<p.results.length&&(p.selectedResultIndex++,p.ensureSelectedResultIsVisible())}}function d(e){p.ignoreMouseEvents||(p.selectedResultIndex=e)}function c(){p.ignoreMouseEvents=!0,n.cancel(p.mouseEventIgnoreTimeout),p.mouseEventIgnoreTimeout=n(function(){p.ignoreMouseEvents=!1},250)}function m(e){p.onResultClick&&p.onResultClick({item:e}),p.collapse()}function u(){var e=t.find(".ms-search-bar-results"),n=angular.element(e.find(".result")[p.selectedResultIndex]);if(e&&n){var a=n.position().top-8,i=n.position().top+n.outerHeight()+8;p.temporarilyIgnoreMouseEvents(),e.scrollTop()>a&&e.scrollTop(a),i>e.height()+e.scrollTop()&&e.scrollTop(i-e.height())}}var p=this;p.collapsed=!0,p.query="",p.queryOptions={debounce:p.debounce||0};var g=!(!p.collapseOnBlur||"true"!=p.collapseOnBlur);p.resultsLoading=!1,p.results=null,p.selectedResultIndex=0,p.ignoreMouseEvents=!1,p.populateResults=a,p.expand=i,p.collapse=o,p.blurCollapse=s,p.absorbEvent=r,p.handleKeydown=l,p.handleMouseenter=d,p.temporarilyIgnoreMouseEvents=c,p.handleResultClick=m,p.ensureSelectedResultIsVisible=u,function(){e.$watch("MsSearchBar.query",function(t,n){if(!angular.isUndefined(t)&&!angular.equals(t,n)&&!p.collapsed){var a=e.$parent.$eval(p.onSearch,{query:t}),i=angular.isArray(a),o=a&&!!a.then;i&&p.populateResults(a),o&&(p.resultsLoading=!0,a.then(function(e){p.populateResults(e)},function(){p.populateResults([])}).finally(function(){p.resultsLoading=!1}))}})}()}function t(e){return{restrict:"E",scope:{},require:"msSearchBar",controller:"MsSearchBarController as MsSearchBar",bindToController:{debounce:"=?",onSearch:"@",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"@"},templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(t){return t.addClass("ms-search-bar"),function(t,n){function a(){n.addClass("expanded"),s.addClass("ms-search-bar-expanded"),o.focus()}function i(){n.removeClass("expanded"),s.removeClass("ms-search-bar-expanded")}var o,s=e.find("body");t.collapse=i,t.expand=a,function(){o=n.find("#ms-search-bar-input")}()}}}}e.$inject=["$scope","$element","$timeout"],t.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",t)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){for(var e=[],t=o.getFlatNavigation(),n=i.defer(),s=0;s<t.length;s++)t[s].uisref&&e.push(t[s]);if(f.query){e=e.filter(function(e){if(angular.lowercase(e.title).search(angular.lowercase(f.query))>-1)return!0});for(var r=0;r<e.length;r++){e[r].hasShortcut=!1;for(var l=0;l<f.shortcuts.length;l++)if(f.shortcuts[l]._id===e[r]._id){e[r].hasShortcut=!0;break}}}else f.shortcuts.length>0&&(e=f.shortcuts);return f.selectedResultIndex=0,a(function(){n.resolve(e)},250),n.promise}function r(){var e=i.defer(),n=angular.fromJson(t.get("motion.shortcuts"));return angular.isUndefined(n)&&(n=[{title:"Agents",icon:"icon-account-multiple",state:"app.staff.agents",weight:5,children:[],uisref:"app.staff.agents",hasShortcut:!0},{title:"License",icon:"icon-cog",state:"app.settings.license",weight:10,children:[],uisref:"app.settings.license",hasShortcut:!0}],t.put("motion.shortcuts",angular.toJson(n))),e.resolve(n),e.promise}function l(){var e=i.defer();return t.put("motion.shortcuts",angular.toJson(f.shortcuts)),a(function(){e.resolve({success:!0})},250),e.promise}function d(e){e.hasShortcut=!0,f.shortcuts.push(e),f.saveShortcuts()}function c(e){e.hasShortcut=!1;for(var t=0;t<f.shortcuts.length;t++)f.shortcuts[t]._id===e._id&&(f.shortcuts.splice(t,1),f.query||(0===f.shortcuts.length?f.results=null:t>=f.shortcuts.length&&(f.selectedResultIndex=f.shortcuts.length-1)));f.saveShortcuts()}function m(e){e.hasShortcut?f.removeShortcut(e):f.addShortcut(e)}function u(e){e.preventDefault()}function p(e){var t=e.keyCode;switch([38,40].indexOf(t)>-1&&e.preventDefault(),t){case 13:f.handleResultClick(f.results[f.selectedResultIndex]);break;case 38:f.selectedResultIndex-1>=0&&(f.selectedResultIndex--,f.ensureSelectedResultIsVisible());break;case 40:f.selectedResultIndex+1<f.results.length&&(f.selectedResultIndex++,f.ensureSelectedResultIsVisible())}}function g(e){f.ignoreMouseEvents||(f.selectedResultIndex=e)}function h(){f.ignoreMouseEvents=!0,a.cancel(f.mouseEventIgnoreTimeout),f.mouseEventIgnoreTimeout=a(function(){f.ignoreMouseEvents=!1},250)}function v(){var e=n.find("#ms-shortcut-add-menu").find(".results"),t=angular.element(e.find(".result")[f.selectedResultIndex]);if(e&&t){var a=t.position().top-8,i=t.position().top+t.outerHeight()+8;f.temporarilyIgnoreMouseEvents(),e.scrollTop()>a&&e.scrollTop(a),i>e.height()+e.scrollTop()&&e.scrollTop(i-e.height())}}function b(){f.mobileBarActive=!f.mobileBarActive}var f=this;f.query="",f.queryOptions={debounce:300},f.resultsLoading=!1,f.selectedResultIndex=0,f.ignoreMouseEvents=!1,f.mobileBarActive=!1,f.results=null,f.shortcuts=[],f.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){f.saveShortcuts()}},f.populateResults=s,f.loadShortcuts=r,f.saveShortcuts=l,f.addShortcut=d,f.removeShortcut=c,f.handleResultClick=m,f.absorbEvent=u,f.handleKeydown=p,f.handleMouseenter=g,f.temporarilyIgnoreMouseEvents=h,f.ensureSelectedResultIsVisible=v,f.toggleMobileBar=b,function(){f.loadShortcuts().then(function(e){f.shortcuts=e,f.shortcuts.length>0&&(f.results=e)}),e.$watch("MsShortcuts.query",function(e,t){angular.isUndefined(e)||angular.equals(e,t)||(f.resultsLoading=!0,f.populateResults().then(function(e){f.results=e},function(){f.results=[]}).finally(function(){f.resultsLoading=!1}))})}()}function t(){return{restrict:"E",scope:{},require:"msShortcuts",controller:"MsShortcutsController as MsShortcuts",bindToController:{},templateUrl:"app/core/directives/ms-shortcuts/ms-shortcuts.html",compile:function(e){return e.addClass("ms-shortcuts"),function(e,t){}}}}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsShortcutsController",e).directive("msShortcuts",t)}(),function(){"use strict";function e(){return{restrict:"A",require:"^mdSidenav",link:function(e,t,n,a){e.$watch(function(){return a.isOpen()&&!a.isLockedOpen()},function(e){angular.isUndefined(e)||(t.parent().toggleClass("full-height",e),angular.element("html").toggleClass("sidenav-open",e))})}}}angular.module("app.core").directive("msSidenavHelper",e)}(),function(){"use strict";function e(e){return{restrict:"E",link:function(t,n){var a=t.$on("msSplashScreen::remove",function(){e.leave(n).then(function(){a(),t=n=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){function t(e){C.orientation=e||"horizontal"}function n(e){C.mainForm=e}function a(e,t,n){var a={element:e,scope:t,form:n,stepNumber:t.step||C.steps.length+1,stepTitle:t.stepTitle,stepTitleTranslate:t.stepTitleTranslate};return C.steps.push(a),C.steps.sort(function(e,t){return e.stepNumber-t.stepNumber}),a}function i(){C.setCurrentStep(C.currentStepNumber)}function o(){e(function(){for(var e=0;e<C.steps.length;e++)C.steps[e].form.$setPristine(),C.steps[e].form.$setUntouched();C.mainForm.$setPristine(),C.mainForm.$setUntouched(),c()})}function s(e){if(y(e))if(C.currentStepNumber=e,"horizontal"===C.orientation){for(var t=0;t<C.steps.length;t++)C.steps[t].element.hide();C.steps[C.currentStepNumber-1].element.show()}else if("vertical"===C.orientation){for(var n=0;n<C.steps.length;n++)C.steps[n].element.find(".ms-stepper-step-content").hide();C.steps[C.currentStepNumber-1].element.find(".ms-stepper-step-content").show()}}function r(e){b(e)||C.setCurrentStep(e)}function l(){for(var e=C.currentStepNumber-1,t=e;t>=1;t--)if(!b(t)){e=t;break}C.setCurrentStep(e)}function d(){for(var e=C.currentStepNumber+1,t=e;t<=C.steps.length;t++)if(!b(t)){e=t;break}C.setCurrentStep(e)}function c(){C.setCurrentStep(1)}function m(){C.setCurrentStep(C.steps.length)}function u(){return 1===C.currentStepNumber}function p(){return C.currentStepNumber===C.steps.length}function g(e){return y(e)?C.currentStepNumber===e:null}function h(e){if(!y(e))return null;for(var t=!1,n=1;n<e;n++)if(!E(n)){t=!0;break}return t}function v(e){return y(e)?C.steps[e-1].scope.optionalStep:null}function b(e){return y(e)?!!C.steps[e-1].scope.hideStep:null}function f(e){return!b(e.stepNumber)}function E(e){return y(e)?!!v(e)||C.steps[e-1].form.$valid:null}function y(e){return!(angular.isUndefined(e)||e<1||e>C.steps.length)}function A(){return C.mainForm.$valid}var C=this;C.mainForm=void 0,C.orientation="horizontal",C.steps=[],C.currentStep=void 0,C.currentStepNumber=1,C.setOrientation=t,C.registerMainForm=n,C.registerStep=a,C.setupSteps=i,C.resetForm=o,C.setCurrentStep=s,C.gotoStep=r,C.gotoPreviousStep=l,C.gotoNextStep=d,C.gotoFirstStep=c,C.gotoLastStep=m,C.isFirstStep=u,C.isLastStep=p,C.isStepCurrent=g,C.isStepDisabled=h,C.isStepOptional=v,C.isStepHidden=b,C.filterHiddenStep=f,C.isStepValid=E,C.isStepNumberValid=y,C.isFormValid=A}function t(){return{restrict:"A",scope:{},require:["form","msHorizontalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/horizontal/horizontal.html",compile:function(e){return e.addClass("ms-stepper"),function(e,t,n,a){var i=a[0],o=a[1];o.setOrientation("horizontal"),o.registerMainForm(i),o.setupSteps()}}}}function n(){return{restrict:"E",require:["form","^msHorizontalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},compile:function(e){return e.addClass("ms-stepper-step"),function(e,t,n,a){var i=a[0],o=a[1];e.optionalStep=angular.isDefined(n.optionalStep),o.registerStep(t,e,i),t.hide()}}}}function a(e){return{restrict:"A",scope:{},require:["form","msVerticalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/vertical.html",compile:function(t){return t.addClass("ms-stepper"),function(t,n,a,i){var o=i[0],s=i[1];e(function(){s.setOrientation("vertical"),s.registerMainForm(o),s.setupSteps()})}}}}function i(){return{restrict:"E",require:["form","^msVerticalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html",compile:function(e){return e.addClass("ms-stepper-step"),function(e,t,n,a){var i=a[0],o=a[1];e.optionalStep=angular.isDefined(n.optionalStep),e.stepInfo=o.registerStep(t,e,i),e.MsStepper=o,t.find(".ms-stepper-step-content").hide()}}}}e.$inject=["$timeout"],a.$inject=["$timeout"],angular.module("app.core").controller("MsStepperController",e).directive("msHorizontalStepper",t).directive("msHorizontalStepperStep",n).directive("msVerticalStepper",a).directive("msVerticalStepperStep",i)}(),function(){"use strict";function e(){function e(e){n.scrollEl=e}function t(){return n.scrollEl}var n=this;n.scrollEl=void 0,n.setScrollEl=e,n.getScrollEl=t}function t(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,t,n,a){function i(){d.scrollTop()+d.height()+c>r.position().top&&(r.addClass("show"),s(),e.loadMore().then(function(){r.removeClass("show"),o()},function(){r.remove()}))}function o(){d.on("scroll",i)}function s(){d.off("scroll",i)}var r=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');t.append(r);var l={scrollEl:"#content"};l=angular.extend(l,e.msTimeline,{});var d=angular.element(l.scrollEl);a.setScrollEl(d);var c=144;o(),e.$on("$destroy",function(){s()})}}}}function n(e,t){return{scope:!0,require:"^msTimeline",compile:function(n){return n.addClass("ms-timeline-item").addClass("hidden"),function(n,a,i,o){function s(e){var n=t.defer(),a=e.find("img");return a.length>0?a.on("load",function(){n.resolve("Image is loaded")}):n.resolve("No images"),n.promise}function r(){m.scrollTop()+m.height()>a.position().top+l&&(e(function(){c=!0}),m.off("scroll",r))}var l=72,d=!1,c=!1,m=o.getScrollEl();!function(){a.find("ms-card")?n.$on("msCard::cardTemplateLoaded",function(t,n){s(angular.element(n[0])).then(function(){e(function(){d=!0})})}):s(a).then(function(){e(function(){d=!0})}),m.on("scroll",r),r()}();var u=n.$watch(function(){return d&&c},function(e,t){angular.equals(e,t)||e&&(a.removeClass("hidden").addClass("animate"),u())},!0)}}}}n.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",e).directive("msTimeline",t).directive("msTimelineItem",n)}(),function(){"use strict";function e(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone={"Europe/Andorra":{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},"Asia/Dubai":{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},"Asia/Kabul":{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},"Europe/Tirane":{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},"Asia/Yerevan":{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},"Antarctica/Rothera":{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},"Antarctica/Palmer":{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},"Antarctica/Mawson":{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},"Antarctica/Davis":{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},"Antarctica/Casey":{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},"Antarctica/Vostok":{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},"Antarctica/DumontDUrville":{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},"Antarctica/Syowa":{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},"Antarctica/Troll":{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},"America/Argentina/Buenos_Aires":{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Cordoba":{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Salta":{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Jujuy":{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Tucuman":{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Catamarca":{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/La_Rioja":{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/San_Juan":{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Mendoza":{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/San_Luis":{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Rio_Gallegos":{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"America/Argentina/Ushuaia":{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},"Pacific/Pago_Pago":{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},"Europe/Vienna":{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},"Australia/Lord_Howe":{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Antarctica/Macquarie":{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Hobart":{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Currie":{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Melbourne":{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Sydney":{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},"Australia/Broken_Hill":{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},"Australia/Brisbane":{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},"Australia/Lindeman":{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},"Australia/Adelaide":{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},"Australia/Darwin":{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},"Australia/Perth":{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},"Australia/Eucla":{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},"Asia/Baku":{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},"America/Barbados":{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},"Asia/Dhaka":{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},"Europe/Brussels":{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},"Europe/Sofia":{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},"Atlantic/Bermuda":{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},"Asia/Brunei":{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},"America/La_Paz":{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},"America/Noronha":{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},"America/Belem":{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Fortaleza":{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Recife":{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Araguaina":{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Maceio":{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Bahia":{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Sao_Paulo":{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},"America/Campo_Grande":{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Cuiaba":{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Santarem":{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},"America/Porto_Velho":{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},"America/Boa_Vista":{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},"America/Manaus":{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},"America/Eirunepe":{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},"America/Rio_Branco":{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},"America/Nassau":{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},"Asia/Thimphu":{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},"Europe/Minsk":{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},"America/Belize":{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},"America/St_Johns":{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},"America/Halifax":{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Glace_Bay":{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Moncton":{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Goose_Bay":{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Blanc-Sablon":{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},"America/Toronto":{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Nipigon":{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Thunder_Bay":{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Iqaluit":{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Pangnirtung":{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Resolute":{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Atikokan":{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},"America/Rankin_Inlet":{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Winnipeg":{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Rainy_River":{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Regina":{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Swift_Current":{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},"America/Edmonton":{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Cambridge_Bay":{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Yellowknife":{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Inuvik":{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Creston":{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Dawson_Creek":{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Fort_Nelson":{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},"America/Vancouver":{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},"America/Whitehorse":{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},"America/Dawson":{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},"Indian/Cocos":{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},"Europe/Zurich":{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},"Africa/Abidjan":{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},"Pacific/Rarotonga":{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},"America/Santiago":{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},"Pacific/Easter":{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},"Asia/Shanghai":{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},"Asia/Urumqi":{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},"America/Bogota":{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},"America/Costa_Rica":{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},"America/Havana":{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},"Atlantic/Cape_Verde":{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},"America/Curacao":{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},"Indian/Christmas":{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},"Asia/Nicosia":{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},"Europe/Prague":{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},"Europe/Berlin":{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},"Europe/Copenhagen":{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},"America/Santo_Domingo":{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},"Africa/Algiers":{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},"America/Guayaquil":{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},"Pacific/Galapagos":{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},"Europe/Tallinn":{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},"Africa/Cairo":{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},"Africa/El_Aaiun":{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},"Europe/Madrid":{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},"Africa/Ceuta":{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},"Atlantic/Canary":{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},"Europe/Helsinki":{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},"Pacific/Fiji":{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},"Atlantic/Stanley":{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},"Pacific/Chuuk":{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},"Pacific/Pohnpei":{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},"Pacific/Kosrae":{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},"Atlantic/Faroe":{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},"Europe/Paris":{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},"Europe/London":{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},"Asia/Tbilisi":{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},"America/Cayenne":{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},"Africa/Accra":{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},"Europe/Gibraltar":{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},"America/Godthab":{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},"America/Danmarkshavn":{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},"America/Scoresbysund":{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},"America/Thule":{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},"Europe/Athens":{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},"Atlantic/South_Georgia":{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},"America/Guatemala":{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},"Pacific/Guam":{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},"Africa/Bissau":{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},"America/Guyana":{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},"Asia/Hong_Kong":{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},"America/Tegucigalpa":{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},"America/Port-au-Prince":{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},"Europe/Budapest":{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},"Asia/Jakarta":{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},"Asia/Pontianak":{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},"Asia/Makassar":{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},"Asia/Jayapura":{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},"Europe/Dublin":{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},"Asia/Jerusalem":{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},"Asia/Kolkata":{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},"Indian/Chagos":{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},"Asia/Baghdad":{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},"Asia/Tehran":{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},"Atlantic/Reykjavik":{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},"Europe/Rome":{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},"America/Jamaica":{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},"Asia/Amman":{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},"Asia/Tokyo":{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},"Africa/Nairobi":{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},"Asia/Bishkek":{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},"Pacific/Tarawa":{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},"Pacific/Enderbury":{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},"Pacific/Kiritimati":{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},"Asia/Pyongyang":{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},"Asia/Seoul":{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},"America/Cayman":{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},"Asia/Almaty":{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},"Asia/Qyzylorda":{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},"Asia/Aqtobe":{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},"Asia/Aqtau":{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},"Asia/Oral":{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},"Asia/Beirut":{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},"Asia/Colombo":{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},"Africa/Monrovia":{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},"Europe/Vilnius":{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},"Europe/Luxembourg":{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},"Europe/Riga":{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},"Africa/Tripoli":{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},"Africa/Casablanca":{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},"Europe/Monaco":{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},"Europe/Chisinau":{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},"Pacific/Majuro":{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},"Pacific/Kwajalein":{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},"Asia/Rangoon":{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},"Asia/Ulaanbaatar":{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},"Asia/Hovd":{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},"Asia/Choibalsan":{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},"Asia/Macau":{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},"America/Martinique":{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},"Europe/Malta":{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},"Indian/Mauritius":{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},"Indian/Maldives":{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},"America/Mexico_City":{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Cancun":{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},"America/Merida":{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Monterrey":{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Matamoros":{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"America/Mazatlan":{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Chihuahua":{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Ojinaga":{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Hermosillo":{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},"America/Tijuana":{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},"America/Santa_Isabel":{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},"America/Bahia_Banderas":{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},"Asia/Kuala_Lumpur":{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},"Asia/Kuching":{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},"Africa/Maputo":{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},"Africa/Windhoek":{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},"Pacific/Noumea":{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},"Pacific/Norfolk":{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},"Africa/Lagos":{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},"America/Managua":{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},"Europe/Amsterdam":{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},"Europe/Oslo":{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},"Asia/Kathmandu":{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},"Pacific/Nauru":{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},"Pacific/Niue":{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},"Pacific/Auckland":{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},"Pacific/Chatham":{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},"America/Panama":{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},"America/Lima":{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},"Pacific/Tahiti":{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},"Pacific/Marquesas":{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},"Pacific/Gambier":{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},"Pacific/Port_Moresby":{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},"Pacific/Bougainville":{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},"Asia/Manila":{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},"Asia/Karachi":{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},"Europe/Warsaw":{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},"America/Miquelon":{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},"Pacific/Pitcairn":{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},"America/Puerto_Rico":{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},"Asia/Gaza":{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},"Asia/Hebron":{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},"Europe/Lisbon":{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},"Atlantic/Madeira":{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},"Atlantic/Azores":{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},"Pacific/Palau":{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},"America/Asuncion":{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},"Asia/Qatar":{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},"Indian/Reunion":{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},"Europe/Bucharest":{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},"Europe/Belgrade":{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},"Europe/Kaliningrad":{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},"Europe/Moscow":{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},"Europe/Simferopol":{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},"Europe/Volgograd":{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},"Europe/Samara":{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},"Asia/Yekaterinburg":{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},"Asia/Omsk":{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},"Asia/Novosibirsk":{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},"Asia/Novokuznetsk":{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},"Asia/Krasnoyarsk":{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},"Asia/Irkutsk":{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},"Asia/Chita":{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},"Asia/Yakutsk":{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},"Asia/Khandyga":{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},"Asia/Vladivostok":{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Sakhalin":{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Ust-Nera":{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Magadan":{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},"Asia/Srednekolymsk":{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},"Asia/Kamchatka":{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},"Asia/Anadyr":{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},"Asia/Riyadh":{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},"Pacific/Guadalcanal":{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},"Indian/Mahe":{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},"Africa/Khartoum":{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},"Europe/Stockholm":{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},"Asia/Singapore":{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},"America/Paramaribo":{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},"America/El_Salvador":{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},"Asia/Damascus":{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},"America/Grand_Turk":{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},"Africa/Ndjamena":{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},"Indian/Kerguelen":{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},"Asia/Bangkok":{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},"Asia/Dushanbe":{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},"Pacific/Fakaofo":{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},"Asia/Dili":{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},"Asia/Ashgabat":{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},"Africa/Tunis":{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},"Pacific/Tongatapu":{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},"Europe/Istanbul":{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},"America/Port_of_Spain":{name:"America/Port_of_Spain",utcOffset:-240,offsetStr:"-04:00",countries:["TT","AG","AI","BL","DM","GD","GP","KN","LC","MF","MS","VC","VG","VI"]},"Pacific/Funafuti":{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},"Asia/Taipei":{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},"Europe/Kiev":{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},"Europe/Uzhgorod":{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},"Europe/Zaporozhye":{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},"Pacific/Wake":{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},"America/New_York":{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Detroit":{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Kentucky/Louisville":{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Kentucky/Monticello":{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Indianapolis":{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Vincennes":{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Winamac":{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Marengo":{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Petersburg":{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Indiana/Vevay":{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},"America/Chicago":{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Indiana/Tell_City":{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Indiana/Knox":{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Menominee":{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/North_Dakota/Center":{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/North_Dakota/New_Salem":{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/North_Dakota/Beulah":{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},"America/Denver":{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},"America/Boise":{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},"America/Phoenix":{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},"America/Los_Angeles":{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},"America/Metlakatla":{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},"America/Anchorage":{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Juneau":{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Sitka":{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Yakutat":{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Nome":{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},"America/Adak":{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},"Pacific/Honolulu":{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},"America/Montevideo":{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},"Asia/Samarkand":{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},"Asia/Tashkent":{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},"America/Caracas":{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},"Asia/Ho_Chi_Minh":{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},"Pacific/Efate":{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},"Pacific/Wallis":{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},"Pacific/Apia":{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},"Africa/Johannesburg":{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}}}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}}angular.module("app.core").directive("msTimezone",e)}(),function(){"use strict";function e(e,t){function n(){a()&&(i.flipped=!i.flipped,t.toggleClass("flipped",i.flipped))}function a(){return angular.isDefined(e.flippable)&&!0===e.flippable}var i=this;i.flipped=!1,i.flip=n}function t(){return{restrict:"E",scope:{flippable:"=?"},controller:"MsWidgetController",transclude:!0,compile:function(e){return e.addClass("ms-widget"),function(e,t,n,a,i){i(function(e){t.empty(),t.append(e)})}}}}function n(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-front"),function(e,t,n,a,i){i(function(e){t.empty(),t.append(e)}),e.flipWidget=a.flip}}}}function a(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-back"),function(e,t,n,a,i){i(function(e){t.empty(),t.append(e)}),e.flipWidget=a.flip}}}}e.$inject=["$scope","$element"],angular.module("app.core").controller("MsWidgetController",e).directive("msWidget",t).directive("msWidgetFront",n).directive("msWidgetBack",a)}(),function(){"use strict";function e(){return function(e){var t=Date.now()-new Date(e);return t<36e5?moment(e).fromNow():t<864e5?moment(e).format("HH:mm"):t<6048e5?moment(e).format("dddd"):moment(e).calendar()}}angular.module("app.core").filter("altDate",e)}(),function(){"use strict";function e(e){return function(t){return e.trustAsHtml(t)}}function t(){return function(e){return String(e).replace(/<[^>]+>/gm,"")}}function n(){return function(e){return e?e.replace(/ /g,""):""}}function a(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}}e.$inject=["$sce"],angular.module("app.core").filter("toTrusted",e).filter("htmlToPlaintext",t).filter("nospace",n).filter("humanizeDoc",a)}(),function(){"use strict";function e(){return function(e,t){if(0===e.length||!t)return e;if(0===t.length)return[];for(var n=[],a=0;a<e.length;a++){for(var i=e[a],o=!1,s=0;s<t.length;s++){var r=t[s];if(i.id===r){o=!0;break}}o&&n.push(i)}return n}}angular.module("app.core").filter("filterByIds",e)}(),function(){"use strict";function e(){return function(e,t,n){if(0===e.length||!n||0===n.length)return e;for(var a=[],i=0;i<e.length;i++){for(var o=e[i],s=!1,r=0;r<n.length;r++){var l=n[r];if(o[t].indexOf(l)>-1){s=!0;break}}s&&a.push(o)}return a}}angular.module("app.core").filter("filterByPropIds",e)}(),function(){"use strict";function e(){return function(e,t){if(0===e.length||0===t.length)return e;var n=[];return e.forEach(function(e){t.every(function(t){var n=!1;return e.tags.forEach(function(e){e.name!==t.name||(n=!0)}),n})&&n.push(e)}),n}}function t(){return function(e,t){if(0!==e.length&&0!==t.length){if(e.length<t.length)return[];var n=[];return t.every(function(t){var n=!1;return e.forEach(function(e){e.name!==t.name||(n=!0)}),n})&&n.push(e),n}}}angular.module("app.core").filter("filterByTags",e).filter("filterSingleByTags",t)}(),function(){"use strict";function e(e,t,n){function a(n,a){var o=n.split("@"),s=o[0],r=o[1],l=a||{};if(!s||!r)return t.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var d=e.defer(),c=i(s);return c?c[r](l,function(e){d.resolve(e)},function(e){d.reject(e)}):(t.error('Resource "'+s+'" is not defined in the api service!'),d.reject('Resource "'+s+'" is not defined in the api service!')),d.promise}function i(e){for(var a=e.split("."),i=n,o=0;o<a.length;o++){if(angular.isUndefined(i[a[o]])){t.error('Resource part "'+a[o]+'" is not defined!'),i=!1;break}i=i[a[o]]}return i||!1}return{resolve:a}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";function e(){function e(e){s=e}function t(){return s}function n(){return r}function a(e,t){angular.isString(e)?angular.isArray(t)?r[e]={url:s+(t[0]||""),paramDefaults:t[1]||[],actions:t[2]||[],options:t[3]||{}}:o.error('"resource" must be an array and it must follow $resource definition'):o.error('"path" must be a string (eg. `dashboard.project`)')}var i=this,o=angular.injector(["ng"]).get("$log"),s="",r=[];i.setBaseUrl=e,i.getBaseUrl=t,i.getApiObject=n,i.register=a,this.$get=["$log","$q","$resource","$rootScope",function(n,i,o,s){function l(e,t){s.$broadcast("msApi::resolveStart");var a=e.split("@"),l=a[0],d=a[1],c=t||{};if(!l||!d)return n.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var m=i.defer(),u=r[l];return u?o(u.url,u.paramDefaults,u.actions,u.options)[d](c,function(e){m.resolve(e),s.$broadcast("msApi::resolveSuccess")},function(e){m.reject(e),s.$broadcast("msApi::resolveError")}):(n.error('Resource "'+l+'" is not defined in the api service!'),m.reject('Resource "'+l+'" is not defined in the api service!')),m.promise}function d(e,t,a,l){s.$broadcast("msApi::requestStart");var d=e.split("@"),c=d[0],m=d[1],u=t||{};if(!c||!m)return n.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var p=i.defer(),g=r[c];return g?o(g.url,g.paramDefaults,g.actions,g.options)[m](u,function(e){s.$broadcast("msApi::requestSuccess"),p.resolve(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)},function(e){s.$broadcast("msApi::requestError"),p.reject(e),angular.isDefined(l)&&angular.isFunction(l)&&l(e)}):(n.error('Resource "'+c+'" is not defined in the api service!'),p.reject('Resource "'+c+'" is not defined in the api service!')),p.promise}return{setBaseUrl:e,getBaseUrl:t,register:a,resolve:l,request:d}}]}angular.module("app.core").provider("msApi",e)}(),function(){"use strict";function e(e){function t(e,t){return t.indexOf(e)>-1}function n(){function t(e){for(var t=0;t<e.length;t++){var n=e[t].string,a=e[t].prop;if(o=e[t].versionSearch||e[t].identity,n){if(-1!==n.indexOf(e[t].subString))return e[t].identity}else if(a)return e[t].identity}}function n(e){var t=e.indexOf(o);if(-1!==t)return parseInt(e.substring(t+o.length+1))}if(r)return r;var a=[{string:e.navigator.userAgent,subString:"Edge",versionSearch:"Edge",identity:"Edge"},{string:e.navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:e.navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:e.navigator.vendor,subString:"Apple",versionSearch:"Version",identity:"Safari"},{prop:e.opera,identity:"Opera"},{string:e.navigator.vendor,subString:"iCab",identity:"iCab"},{string:e.navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:e.navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:e.navigator.vendor,subString:"Camino",identity:"Camino"},{string:e.navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:e.navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:e.navigator.userAgent,subString:"Trident/7",identity:"Explorer",versionSearch:"rv"},{string:e.navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:e.navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],i=[{string:e.navigator.platform,subString:"Win",identity:"Windows"},{string:e.navigator.platform,subString:"Mac",identity:"Mac"},{string:e.navigator.platform,subString:"Linux",identity:"Linux"},{string:e.navigator.platform,subString:"iPhone",identity:"iPhone"},{string:e.navigator.platform,subString:"iPod",identity:"iPod"},{string:e.navigator.platform,subString:"iPad",identity:"iPad"},{string:e.navigator.platform,subString:"Android",identity:"Android"}],o="",s=t(a)||"unknown-browser",l=n(e.navigator.userAgent)||n(e.navigator.appVersion)||"unknown-version",d=t(i)||"unknown-os";return s=s.toLowerCase(),l=s+"-"+l,d=d.toLowerCase(),r={browser:s,version:l,os:d}}function a(){var e=function(){return(65536*(1+Math.random())||0).toString(16).substring(1)};return e()+e()+e()+e()+e()+e()}function i(){return s.mobile()}function o(e,t){-1===t.indexOf(e)?t.push(e):t.splice(t.indexOf(e),1)}var s=new MobileDetect(e.navigator.userAgent),r=null;return{exists:t,detectBrowser:n,guidGenerator:a,isMobile:i,toggleInArray:o}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,t){function n(e){t.setActiveTheme(e)}function a(){return t.themes.active}function i(){angular.element("body").toggleClass("boxed","boxed"===s.layoutMode)}function o(){e.put("motion.layoutStyle",s.layoutStyle),location.reload()}var s=this;s.themes=t.themes,s.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],s.layoutStyles=[{label:"Vertical Navigation",value:"verticalNavigation",figure:"/assets/images/theme-options/vertical-nav.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar",value:"verticalNavigationFullwidthToolbar",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar 2",value:"verticalNavigationFullwidthToolbar2",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar-2.jpg"},{label:"Horizontal Navigation",value:"horizontalNavigation",figure:"/assets/images/theme-options/horizontal-nav.jpg"},{label:"Content with Toolbar",value:"contentWithToolbar",figure:"/assets/images/theme-options/content-with-toolbar.jpg"},{label:"Content Only",value:"contentOnly",figure:"/assets/images/theme-options/content-only.jpg"}],s.layoutMode="wide",s.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",s.setActiveTheme=n,s.getActiveTheme=a,s.updateLayoutMode=i,s.updateLayoutStyle=o}function t(e){return{restrict:"E",scope:{},controller:"MsThemeOptionsController as vm",templateUrl:"app/core/theme-options/theme-options.html",compile:function(t){return t.addClass("ms-theme-options"),function(t){function n(){e("motion-theme-options").toggle()}t.toggleOptionsSidenav=n}}}}e.$inject=["$cookies","motionTheming"],t.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",t)}(),function(){"use strict";function e(e,t,n){function a(){var e=angular.copy(n.getRegisteredThemes()),t=angular.copy(n.getRegisteredPalettes());angular.forEach(e,function(e){d[e.name]={},angular.forEach(e.colors,function(n,a){d[e.name][a]={name:n.name,levels:{default:{color:s(t[n.name][n.hues.default].value),contrast1:s(t[n.name][n.hues.default].contrast,1),contrast2:s(t[n.name][n.hues.default].contrast,2),contrast3:s(t[n.name][n.hues.default].contrast,3),contrast4:s(t[n.name][n.hues.default].contrast,4)},hue1:{color:s(t[n.name][n.hues["hue-1"]].value),contrast1:s(t[n.name][n.hues["hue-1"]].contrast,1),contrast2:s(t[n.name][n.hues["hue-1"]].contrast,2),contrast3:s(t[n.name][n.hues["hue-1"]].contrast,3),contrast4:s(t[n.name][n.hues["hue-1"]].contrast,4)},hue2:{color:s(t[n.name][n.hues["hue-2"]].value),contrast1:s(t[n.name][n.hues["hue-2"]].contrast,1),contrast2:s(t[n.name][n.hues["hue-2"]].contrast,2),contrast3:s(t[n.name][n.hues["hue-2"]].contrast,3),contrast4:s(t[n.name][n.hues["hue-2"]].contrast,4)},hue3:{color:s(t[n.name][n.hues["hue-3"]].value),contrast1:s(t[n.name][n.hues["hue-3"]].contrast,1),contrast2:s(t[n.name][n.hues["hue-3"]].contrast,2),contrast3:s(t[n.name][n.hues["hue-3"]].contrast,3),contrast4:s(t[n.name][n.hues["hue-3"]].contrast,4)}}}})}),i(d);var a={};angular.forEach(d,function(e,t){(a={})["@themeName"]=t,angular.forEach(e,function(e,t){angular.forEach(e.levels,function(e,n){angular.forEach(e,function(e,i){a["@"+t+l(n)+l(i)]=e})})}),o(a)})}function i(t){var a=angular.copy(t);angular.forEach(a,function(e){angular.forEach(e,function(t,n){e[n]=t.levels,e[n].color=t.levels.default.color,e[n].contrast1=t.levels.default.contrast1,e[n].contrast2=t.levels.default.contrast2,e[n].contrast3=t.levels.default.contrast3,e[n].contrast4=t.levels.default.contrast4,delete e[n].default})}),n.setThemesList(a);var i=e.get("motion.selectedTheme");i?n.setActiveTheme(i):n.setActiveTheme("default")}function o(e){var t=new RegExp(Object.keys(e).join("|"),"gi"),n='/* Content hack because they wont fix */\n/* https://github.com/angular/material/pull/8067 */\n[md-theme="@themeName"] md-content.md-hue-1,\nmd-content.md-@themeName-theme.md-hue-1 {\n    color: @backgroundHue1Contrast1;\n    background-color: @backgroundHue1Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-2,\nmd-content.md-@themeName-theme.md-hue-2 {\n    color: @backgroundHue2Contrast1;\n    background-color: @backgroundHue2Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-3,\n md-content.md-@themeName-theme.md-hue-3 {\n    color: @backgroundHue3Contrast1;\n    background-color: @backgroundHue3Color;\n}\n\n/* Text Colors */\n[md-theme="@themeName"] a {\n    color: @accentDefaultColor;\n}\n\n[md-theme="@themeName"] .secondary-text,\n[md-theme="@themeName"] .icon {\n    color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .hint-text,\n[md-theme="@themeName"] .disabled-text {\n    color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .fade-text,\n[md-theme="@themeName"] .divider {\n    color: @backgroundDefaultContrast4;\n}\n\n/* Primary */\n[md-theme="@themeName"] .md-primary-bg {\n    background-color: @primaryDefaultColor;\n    color: @primaryDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg .secondary-text,\n[md-theme="@themeName"] .md-primary-bg .icon {\n    color: @primaryDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg .hint-text,\n[md-theme="@themeName"] .md-primary-bg .disabled-text {\n    color: @primaryDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg .fade-text,\n[md-theme="@themeName"] .md-primary-bg .divider {\n    color: @primaryDefaultContrast4;\n}\n\n/* Primary, Hue-1 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 {\n    background-color: @primaryHue1Color;\n    color: @primaryHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .icon {\n    color: @primaryHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .disabled-text {\n    color: @primaryHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .divider {\n    color: @primaryHue1Contrast4;\n}\n\n/* Primary, Hue-2 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 {\n    background-color: @primaryHue2Color;\n    color: @primaryHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .icon {\n    color: @primaryHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .disabled-text {\n    color: @primaryHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .divider {\n    color: @primaryHue2Contrast4;\n}\n\n/* Primary, Hue-3 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 {\n    background-color: @primaryHue3Color;\n    color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .icon {\n    color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .disabled-text {\n    color: @primaryHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .divider {\n    color: @primaryHue3Contrast4;\n}\n\n/* Primary foreground */\n[md-theme="@themeName"] .md-primary-fg {\n    color: @primaryDefaultColor !important;\n}\n\n/* Primary foreground, Hue-1 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-1 {\n    color: @primaryHue1Color !important;\n}\n\n/* Primary foreground, Hue-2 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-2 {\n    color: @primaryHue2Color !important;\n}\n\n/* Primary foreground, Hue-3 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-3 {\n    color: @primaryHue3Color !important;\n}\n\n/* Accent */\n[md-theme="@themeName"] .md-accent-bg {\n    background-color: @accentDefaultColor;\n    color: @accentDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg .secondary-text,\n[md-theme="@themeName"] .md-accent-bg .icon {\n    color: @accentDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg .hint-text,\n[md-theme="@themeName"] .md-accent-bg .disabled-text {\n    color: @accentDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg .fade-text,\n[md-theme="@themeName"] .md-accent-bg .divider {\n    color: @accentDefaultContrast4;\n}\n\n/* Accent, Hue-1 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 {\n    background-color: @accentHue1Color;\n    color: @accentHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .icon {\n    color: @accentHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .disabled-text {\n    color: @accentHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .divider {\n    color: @accentHue1Contrast4;\n}\n\n/* Accent, Hue-2 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 {\n    background-color: @accentHue2Color;\n    color: @accentHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .icon {\n    color: @accentHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .disabled-text {\n    color: @accentHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .divider {\n    color: @accentHue2Contrast4;\n}\n\n/* Accent, Hue-3 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 {\n    background-color: @accentHue3Color;\n    color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .icon {\n    color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .disabled-text {\n    color: @accentHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .divider {\n    color: @accentHue3Contrast4;\n}\n\n/* Accent foreground */\n[md-theme="@themeName"] .md-accent-fg {\n    color: @accentDefaultColor !important;\n}\n\n/* Accent foreground, Hue-1 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-1 {\n    color: @accentHue1Color !important;\n}\n\n/* Accent foreground, Hue-2 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-2 {\n    color: @accentHue2Color !important;\n}\n\n/* Accent foreground, Hue-3 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-3 {\n    color: @accentHue3Color !important;\n}\n\n/* Warn */\n[md-theme="@themeName"] .md-warn-bg {\n    background-color: @warnDefaultColor;\n    color: @warnDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg .secondary-text,\n[md-theme="@themeName"] .md-warn-bg .icon {\n    color: @warnDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg .hint-text,\n[md-theme="@themeName"] .md-warn-bg .disabled-text {\n    color: @warnDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg .fade-text,\n[md-theme="@themeName"] .md-warn-bg .divider {\n    color: @warnDefaultContrast4;\n}\n\n/* Warn, Hue-1 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 {\n    background-color: @warnHue1Color;\n    color: @warnHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .icon {\n    color: @warnHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .disabled-text {\n    color: @warnHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .divider {\n    color: @warnHue1Contrast4;\n}\n\n/* Warn, Hue-2 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 {\n    background-color: @warnHue2Color;\n    color: @warnHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .icon {\n    color: @warnHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .disabled-text {\n    color: @warnHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .divider {\n    color: @warnHue2Contrast4;\n}\n\n/* Warn, Hue-3 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 {\n    background-color: @warnHue3Color;\n    color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .icon {\n    color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .disabled-text {\n    color: @warnHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .divider {\n    color: @warnHue3Contrast4;\n}\n\n/* Warn foreground */\n[md-theme="@themeName"] .md-warn-fg {\n    color: @warnDefaultColor !important;\n}\n\n/* Warn foreground, Hue-1 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-1 {\n    color: @warnHue1Color !important;\n}\n\n/* Warn foreground, Hue-2 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-2 {\n    color: @warnHue2Color !important;\n}\n\n/* Warn foreground, Hue-3 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-3 {\n    color: @warnHue3Color !important;\n}\n\n/* Background */\n[md-theme="@themeName"] .md-background-bg {\n    background-color: @backgroundDefaultColor;\n    color: @backgroundDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg .secondary-text,\n[md-theme="@themeName"] .md-background-bg .icon {\n    color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg .hint-text,\n[md-theme="@themeName"] .md-background-bg .disabled-text {\n    color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg .fade-text,\n[md-theme="@themeName"] .md-background-bg .divider {\n    color: @backgroundDefaultContrast4;\n}\n\n/* Background, Hue-1 */\n[md-theme="@themeName"] .md-background-bg.md-hue-1 {\n    background-color: @backgroundHue1Color;\n    color: @backgroundHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .icon {\n    color: @backgroundHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .disabled-text {\n    color: @backgroundHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .divider {\n    color: @backgroundHue1Contrast4;\n}\n\n/* Background, Hue-2 */\n[md-theme="@themeName"] .md-background-bg.md-hue-2 {\n    background-color: @backgroundHue2Color;\n    color: @backgroundHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .icon {\n    color: @backgroundHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .disabled-text {\n    color: @backgroundHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .divider {\n    color: @backgroundHue2Contrast4;\n}\n\n/* Background, Hue-3 */\n[md-theme="@themeName"] .md-background-bg.md-hue-3 {\n    background-color: @backgroundHue3Color;\n    color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .icon {\n    color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .disabled-text {\n    color: @backgroundHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .divider {\n    color: @backgroundHue3Contrast4;\n}\n\n/* Background foreground */\n[md-theme="@themeName"] .md-background-fg {\n    color: @backgroundDefaultColor !important;\n}\n\n/* Background foreground, Hue-1 */\n[md-theme="@themeName"] .md-background-fg.md-hue-1 {\n    color: @backgroundHue1Color !important;\n}\n\n/* Background foreground, Hue-2 */\n[md-theme="@themeName"] .md-background-fg.md-hue-2 {\n    color: @backgroundHue2Color !important;\n}\n\n/* Background foreground, Hue-3 */\n[md-theme="@themeName"] .md-background-fg.md-hue-3 {\n    color: @backgroundHue3Color !important;\n}'.replace(t,function(t){return e[t]}),a=angular.element("head"),i=angular.element('<style type="text/css"></style>');i.html(n),a.append(i)}function s(e,n){var a=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),a&&(e=r(e,a)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void t.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function r(e,t){var n={white:{1:"1",2:"0.7",3:"0.3",4:"0.12"},black:{1:"0.87",2:"0.54",3:"0.26",4:"0.12"}};return 255===e[0]&&255===e[1]&&255===e[2]?e[3]=n.white[t]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=n.black[t]),e}function l(e){return e.charAt(0).toUpperCase()+e.slice(1)}var d={};return{generate:a,rgba:s}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";var e=[{name:"motion-blue",options:{50:"#ebf1fa",100:"#c2d4ef",200:"#9ab8e5",300:"#78a0dc",400:"#5688d3",500:"#3470ca",600:"#2e62b1",700:"#275498",800:"#21467e",900:"#1a3865",A100:"#c2d4ef",A200:"#9ab8e5",A400:"#5688d3",A700:"#275498",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}},{name:"motion-paleblue",options:{50:"#ececee",100:"#c5c6cb",200:"#9ea1a9",300:"#7d818c",400:"#5c616f",500:"#3c4252",600:"#353a48",700:"#2d323e",800:"#262933",900:"#1e2129",A100:"#c5c6cb",A200:"#9ea1a9",A400:"#5c616f",A700:"#2d323e",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}}];angular.module("app.core").constant("motionPalettes",e)}(),function(){"use strict";var e={default:{primary:{name:"motion-paleblue",hues:{default:"700","hue-1":"500","hue-2":"600","hue-3":"400"}},accent:{name:"light-blue",hues:{default:"600","hue-1":"400","hue-2":"700","hue-3":"A100"}},warn:{name:"red"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},pinkTheme:{primary:{name:"blue-grey",hues:{default:"800","hue-1":"600","hue-2":"400","hue-3":"A100"}},accent:{name:"pink",hues:{default:"400","hue-1":"300","hue-2":"600","hue-3":"A100"}},warn:{name:"blue"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},tealTheme:{primary:{name:"motion-blue",hues:{default:"900","hue-1":"600","hue-2":"500","hue-3":"A100"}},accent:{name:"teal",hues:{default:"500","hue-1":"400","hue-2":"600","hue-3":"A100"}},warn:{name:"deep-orange"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}}};angular.module("app.core").constant("motionThemes",e)}(),function(){"use strict";function e(e,t,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),e.alwaysWatchTheme(!0),angular.forEach(t,function(t){e.definePalette(t.name,t.options)}),angular.forEach(n,function(t,n){e.theme(n).primaryPalette(t.primary.name,t.primary.hues).accentPalette(t.accent.name,t.accent.hues).warnPalette(t.warn.name,t.warn.hues).backgroundPalette(t.background.name,t.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,t,n){function a(){return n.PALETTES}function i(){return n.THEMES}function o(n){if(angular.isUndefined(r.themes.list[n]))return angular.isUndefined(r.themes.list.default)?void t.error('You must have at least one theme named "default"'):(t.warn('The theme "'+n+'" does not exist! Falling back to the "default" theme.'),r.themes.active.name="default",r.themes.active.theme=r.themes.list.default,void e.put("motion.selectedTheme",r.themes.active.name));r.themes.active.name=n,r.themes.active.theme=r.themes.list[n],e.put("motion.selectedTheme",n)}function s(e){r.themes.list=e}var r={getRegisteredPalettes:a,getRegisteredThemes:i,setActiveTheme:o,setThemesList:s,themes:{list:{},active:{name:"",theme:{}}}};return r}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){for(var i=[],o=a.getFlatNavigation(),s=n.defer(),r=0;r<o.length;r+=1)o[r].uisref&&i.push(o[r]);return e&&(i=i.filter(function(t){if(angular.lowercase(t.title).search(angular.lowercase(e))>-1)return!0})),t(function(){s.resolve(i)},1e3),s.promise}function o(t){t.uisref&&(t.stateParams?e.go(t.state,t.stateParams):e.go(t.state))}var s=this;s.search=i,s.searchResultClick=o}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,t){function n(){t.post("/api/jira",a.error).then(function(e){a.send=!0,e.data&&(a.code=e.data.id)},function(e){a.send=!1})}var a=this;a.code="",a.send=!1,a.error=e.params,a.sendReport=n}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e){var t={};return t.baseUrl="api/",t.auth=e(t.baseUrl+"auth/local",{},{local:{method:"post",url:t.baseUrl+"auth/local"},google:{method:"post",url:t.baseUrl+"auth/google"}}),t.jira=e(t.baseUrl+"jira"),t.rpc=e(t.baseUrl+"rpc",{},{getVoiceQueues:{method:"get",url:t.baseUrl+"rpc/voice/queues"},getVoiceQueuesChannels:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels"},getVoiceQueuesChannel:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels/:uniqueid"},getVoiceQueuesChannelHangup:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels/:uniqueid/hangup"},getVoiceQueuesChannelRedirect:{method:"get",url:t.baseUrl+"rpc/voice/queues/channels/:uniqueid/redirect/:exten"},getOutbound:{method:"get",url:t.baseUrl+"rpc/outbound"},getOutboundChannels:{method:"get",url:t.baseUrl+"rpc/outbound/channels"},getAgents:{method:"get",url:t.baseUrl+"rpc/agents"},getTelephones:{method:"get",url:t.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:t.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:t.baseUrl+"rpc/campaigns"}}),t.version=e(t.baseUrl+"version",{},{fetch:{method:"get",url:t.baseUrl+"version/fetch"},reset:{method:"get",url:t.baseUrl+"version/reset"},pull:{method:"get",url:t.baseUrl+"version/pull"},restart:{method:"get",url:t.baseUrl+"version/restart"},migrations:{method:"get",url:t.baseUrl+"version/migrations"}}),t.system=e(t.baseUrl+"system"),t.pm2=e(t.baseUrl+"pm2/:id",{id:"@id"},{update:{method:"put",isArray:!0}}),t.user=e(t.baseUrl+"users/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"users/describe"},bulkCreate:{method:"post",url:t.baseUrl+"users/create_many",isArray:!0},bulkDestroy:{method:"delete",url:t.baseUrl+"users/destroy_many",isArray:!0},addContacts:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/contacts"},changePassword:{isArray:!1,method:"put",url:t.baseUrl+"users/:id/password"},addQueues:{isArray:!0,method:"post",url:t.baseUrl+"users/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:t.baseUrl+"users/:id/queues"},addAvatar:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/avatar"},getAvatar:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/avatar"},getContacts:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/contacts"},getQueues:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/queues"},getVoiceQueuesRt:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/queues_rt"},getRecordings:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/recordings"},login:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/login"},logout:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/logout"},pause:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/pause"},unpause:{isArray:!1,method:"post",url:t.baseUrl+"users/:id/unpause"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"users/:id/lists"}}),t.voiceChanSpy=e(t.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/chanspy/describe"}}),t.voiceContext=e(t.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/contexts/describe"}}),t.voiceDisposition=e(t.baseUrl+"voice/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/dispositions/describe"}}),t.voiceExtension=e(t.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/extensions/describe"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"voice/extensions/:id/applications"}}),t.voiceMusicOnHold=e(t.baseUrl+"voice/mohs/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mohs/describe"},addSound:{isArray:!1,method:"post",url:t.baseUrl+"voice/mohs/:id/sounds"},removeSound:{isArray:!1,method:"delete",url:t.baseUrl+"voice/mohs/:id/sounds/:id2"},getSounds:{isArray:!1,method:"get",url:t.baseUrl+"voice/mohs/:id/sounds"}}),t.voiceQueue=e(t.baseUrl+"voice/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/queues/describe"},getHoppers:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/hopper_black"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"voice/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"voice/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/users"},getMembers:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/members"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/lists"},addLists:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/lists"},removeLists:{isArray:!0,method:"delete",url:t.baseUrl+"voice/queues/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:t.baseUrl+"voice/queues/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:t.baseUrl+"voice/queues/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:t.baseUrl+"voice/queues/:id/blacklists"}}),t.voiceRecording=e(t.baseUrl+"voice/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/recordings/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"voice/recordings/:id/download"}}),t.voiceMail=e(t.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mails/describe"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"voice/mails/:id/messages"}}),t.voiceMailMessage=e(t.baseUrl+"voice/mails/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/mails/messages/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"voice/mails/messages/:id/download"}}),t.voiceCallReport=e(t.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/calls/reports/describe"}}),t.voiceDialReport=e(t.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/dials/reports/describe"}}),t.voiceAgentReport=e(t.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/agents/reports/describe"}}),t.voiceQueueReport=e(t.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/queues/reports/describe"}}),t.memberReport=e(t.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"members/reports/describe"}}),t.trunk=e(t.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"trunks/describe"}}),t.voiceTransferReport=e(t.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voice/transfers/reports/describe"}}),t.mailServerOut=e(t.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/out_servers/describe"}}),t.mailAccount=e(t.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/accounts/describe"},getImap:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/in_servers"},addImap:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/in_servers"},removeImap:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/in_servers"},getSmtp:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/out_servers"},addSmtp:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/out_servers"},removeSmtp:{isArray:!1,method:"delete",url:t.baseUrl+"mail/accounts/:id/out_servers"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/dispositions"},sendMail:{isArray:!1,method:"post",url:t.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:t.baseUrl+"mail/accounts/:id/verify"}}),t.mailQueue=e(t.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"mail/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"mail/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"mail/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"mail/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"mail/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"mail/queues/:id/users"}}),t.mailInteraction=e(t.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"mail/interactions/:id/messages"}}),t.mailMessage=e(t.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/messages/describe"}}),t.mailApplication=e(t.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/applications/describe"}}),t.mailDisposition=e(t.baseUrl+"mail/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/dispositions/describe"}}),t.mailAttachment=e(t.baseUrl+"mail/attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/attachments/describe"}}),t.mailSessionReport=e(t.baseUrl+"mail/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/sessions/reports/describe"}}),t.mailReport=e(t.baseUrl+"mail/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"mail/reports/describe"}}),t.openchannelSessionReport=e(t.baseUrl+"openchannel/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/sessions/reports/describe"}}),t.dashboard=e(t.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"dashboards/describe"},run:{isArray:!1,method:"get",url:t.baseUrl+"dashboards/:id/run"},addItem:{isArray:!1,method:"post",url:t.baseUrl+"dashboards/:id/items"},getItems:{isArray:!1,method:"get",url:t.baseUrl+"dashboards/:id/items"}}),t.dashboardItem=e(t.baseUrl+"dashboards/items/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"dashboards/items/describe"}}),t.faxAccount=e(t.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/accounts/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"fax/accounts/:id/dispositions"}}),t.faxApplication=e(t.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/applications/describe"}}),t.faxDisposition=e(t.baseUrl+"fax/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/dispositions/describe"}}),t.faxAttachment=e(t.baseUrl+"fax/attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/attachments/describe"}}),t.faxInteraction=e(t.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"fax/interactions/:id/messages"}}),t.faxMessage=e(t.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/messages/describe"}}),t.faxQueue=e(t.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"fax/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"fax/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"fax/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"fax/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"fax/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"fax/queues/:id/users"}}),t.faxSessionReport=e(t.baseUrl+"fax/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/sessions/reports/describe"}}),t.smsAccount=e(t.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/accounts/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"sms/accounts/:id/dispositions"}}),t.smsApplication=e(t.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/applications/describe"}}),t.smsDisposition=e(t.baseUrl+"sms/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/dispositions/describe"}}),t.smsInteraction=e(t.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"sms/interactions/:id/messages"}}),t.smsMessage=e(t.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/messages/describe"}}),t.smsQueue=e(t.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"sms/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"sms/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"sms/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"sms/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"sms/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"sms/queues/:id/users"}}),t.openchannelAccount=e(t.baseUrl+"openchannel/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/accounts/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/accounts/:id/dispositions"}}),t.openchannelApplication=e(t.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/applications/describe"}}),t.openchannelDisposition=e(t.baseUrl+"openchannel/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/dispositions/describe"}}),t.openchannelInteraction=e(t.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/interactions/:id/messages"}}),t.openchannelMessage=e(t.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/messages/describe"}}),t.openchannelQueue=e(t.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"openchannel/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"openchannel/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"openchannel/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"openchannel/queues/:id/users"}}),t.chatWebsite=e(t.baseUrl+"chat/websites/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/websites/describe"},addInteraction:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/interactions"},addApplications:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/applications"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/dispositions"},addDispositions:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/dispositions"},addProactiveActions:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/proactive_actions"},getProactiveActions:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/proactive_actions"},addWebsiteFields:{isArray:!1,method:"post",url:t.baseUrl+"chat/websites/:id/fields"},getWebsiteFields:{isArray:!1,method:"get",url:t.baseUrl+"chat/websites/:id/fields"}}),t.openchannelReport=e(t.baseUrl+"openchannel/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"openchannel/reports/describe"}}),t.chatApplication=e(t.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/applications/describe"}}),t.chatDisposition=e(t.baseUrl+"chat/dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/dispositions/describe"}}),t.chatInteraction=e(t.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/interactions/describe"},addMessage:{isArray:!1,method:"post",url:t.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:t.baseUrl+"chat/interactions/:id/messages"}}),t.chatMessage=e(t.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/messages/describe"}}),t.chatQueue=e(t.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/queues/describe"},getTeams:{isArray:!1,method:"get",url:t.baseUrl+"chat/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:t.baseUrl+"chat/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:t.baseUrl+"chat/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"chat/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"chat/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"chat/queues/:id/users"}}),t.chatEnquiry=e(t.baseUrl+"chat/enquiries/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/enquiries/describe"}}),t.chatProactiveAction=e(t.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/proactive_actions/describe"}}),t.chatVisitor=e(t.baseUrl+"chat/visitors/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/visitors/describe"}}),t.chatWebsiteField=e(t.baseUrl+"chat/website_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/website_fields/describe"}}),t.cmCompany=e(t.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/companies/describe"},addContacts:{isArray:!1,method:"post",url:t.baseUrl+"cm/companies/:id/contacts"},getContacts:{isArray:!1,method:"get",url:t.baseUrl+"cm/companies/:id/contacts"}}),t.cmContact=e(t.baseUrl+"cm/contacts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/contacts/describe"},bulkCreate:{isArray:!1,method:"post",url:t.baseUrl+"cm/contacts/create_many"},getHoppers:{isArray:!1,method:"get",url:t.baseUrl+"cm/contacts/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:t.baseUrl+"cm/contacts/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:t.baseUrl+"cm/contacts/:id/hopper_finals"},getJscriptySessions:{isArray:!1,method:"get",url:t.baseUrl+"cm/contacts/:id/jscripty_sessions"}}),t.cmHopper=e(t.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper/describe"},getDialerContacts:{isArray:!1,method:"get",url:t.baseUrl+"cm/hopper/preview"},callDialerContact:{isArray:!1,method:"get",url:t.baseUrl+"cm/hopper/preview/:id"}}),t.cmHopperBlack=e(t.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_black/describe"}}),t.cmHopperFinal=e(t.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_final/describe"}}),t.cmHopperHistory=e(t.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/hopper_history/describe"}}),t.cmCustomField=e(t.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/custom_fields/describe"}}),t.cmList=e(t.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cm/lists/describe"},addDisposition:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/dispositions"},addContacts:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/contacts"},getContacts:{isArray:!0,method:"get",url:t.baseUrl+"cm/lists/:id/contacts"},getContactsCsv:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/contacts/csv"},addCustomField:{isArray:!1,method:"post",url:t.baseUrl+"cm/lists/:id/fields"},getCustomFields:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/fields"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"cm/lists/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"cm/lists/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"cm/lists/:id/users"}}),t.action=e(t.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"actions/describe"}}),t.automation=e(t.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"automations/describe"},addConditions:{isArray:!1,method:"post",url:t.baseUrl+"automations/:id/conditions"},getConditions:{isArray:!1,method:"get",url:t.baseUrl+"automations/:id/conditions"},addActions:{isArray:!1,method:"post",url:t.baseUrl+"automations/:id/actions"},getActions:{isArray:!1,method:"get",url:t.baseUrl+"automations/:id/actions"}}),t.cannedAnswer=e(t.baseUrl+"canned_answers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"canned_answers/describe"}}),t.condition=e(t.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"conditions/describe"}}),t.interval=e(t.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"intervals/describe"},addInterval:{isArray:!1,method:"post",url:t.baseUrl+"intervals/:id/sub_intervals"},getIntervals:{isArray:!1,method:"get",url:t.baseUrl+"intervals/:id/sub_intervals"},addIntervals:{isArray:!0,method:"post",url:t.baseUrl+"intervals/:id/sub_intervals/create_many"}}),t.pause=e(t.baseUrl+"pauses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"pauses/describe"}}),t.cdr=e(t.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"cdr/describe"}}),t.voiceQueuesLog=e(t.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"voiceQueuesLog/describe"}}),t.schedule=e(t.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"schedules/describe"}}),t.sound=e(t.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sounds/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"sounds/:id/download"},delete:{isArray:!1,method:"delete",url:t.baseUrl+"sounds/:id"}}),t.tag=e(t.baseUrl+"tags/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"tags/describe"}}),t.template=e(t.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"templates/describe"}}),t.trigger=e(t.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"triggers/describe"},addAllCondition:{isArray:!1,method:"post",url:t.baseUrl+"triggers/:id/all_conditions"},addAnyCondition:{isArray:!1,method:"post",url:t.baseUrl+"triggers/:id/any_conditions"},getAllConditions:{isArray:!1,method:"get",url:t.baseUrl+"triggers/:id/all_conditions"},getAnyConditions:{isArray:!1,method:"get",url:t.baseUrl+"triggers/:id/any_conditions"},addAction:{isArray:!1,method:"post",url:t.baseUrl+"triggers/:id/actions"},getActions:{isArray:!1,method:"get",url:t.baseUrl+"triggers/:id/actions"}}),t.variable=e(t.baseUrl+"variables/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"variables/describe"}}),t.integration=e(t.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/describe"}}),t.integrationReport=e(t.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/reports/describe"}}),t.analyticCustomReport=e(t.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/custom_reports/describe"},preview:{isArray:!0,method:"get",url:t.baseUrl+"analytics/custom_reports/:id/preview"},run:{isArray:!1,method:"get",url:t.baseUrl+"analytics/custom_reports/:id/run"},query:{isArray:!1,method:"get",url:t.baseUrl+"analytics/custom_reports/:id/query"}}),t.analyticDefaultReport=e(t.baseUrl+"analytics/default_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/default_reports/describe"},preview:{isArray:!0,method:"get",url:t.baseUrl+"analytics/default_reports/:id/preview"},run:{isArray:!1,method:"get",url:t.baseUrl+"analytics/default_reports/:id/run"},query:{isArray:!1,method:"get",url:t.baseUrl+"analytics/default_reports/:id/query"}}),t.analyticExtractedReport=e(t.baseUrl+"analytics/extracted_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/extracted_reports/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"analytics/extracted_reports/:id/download"}}),t.analyticMetric=e(t.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/metrics/describe"}}),t.analyticFieldReport=e(t.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/field_reports/describe"},bulkCreate:{method:"post",url:t.baseUrl+"analytics/field_reports/create_many",isArray:!0},bulkDestroy:{method:"delete",url:t.baseUrl+"analytics/field_reports/destroy_many",isArray:!0},addFields:{isArray:!0,method:"post",url:t.baseUrl+"analytics/field_reports/:id/create_many"}}),t.analyticTreeReport=e(t.baseUrl+"analytics/tree_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"analytics/tree_reports/describe"}}),t.intSalesforceAccount=e(t.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/salesforce/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/accounts/:id/fields"}}),t.intSalesforceConfiguration=e(t.baseUrl+"integrations/salesforce/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/salesforce/configurations/:id/descriptions"}}),t.intSalesforceField=e(t.baseUrl+"integrations/salesforce/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/salesforce/fields/describe"}}),t.intSugarcrmAccount=e(t.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/accounts/:id/fields"}}),t.intSugarcrmConfiguration=e(t.baseUrl+"integrations/sugarcrm/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/sugarcrm/configurations/:id/descriptions"}}),t.intSugarcrmField=e(t.baseUrl+"integrations/sugarcrm/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/sugarcrm/fields/describe"}}),t.intZendeskAccount=e(t.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/zendesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/accounts/:id/fields"}}),t.intZendeskConfiguration=e(t.baseUrl+"integrations/zendesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"integrations/zendesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"integrations/zendesk/configurations/:id/tags"}}),t.intZendeskField=e(t.baseUrl+"integrations/zendesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/zendesk/fields/describe"}}),t.intFreshdeskAccount=e(t.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/describe"},getConfigurations:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:t.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/accounts/:id/fields"}}),t.intFreshdeskConfiguration=e(t.baseUrl+"integrations/freshdesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/describe"},getFields:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:t.baseUrl+"integrations/freshdesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:t.baseUrl+"integrations/freshdesk/configurations/:id/tags"}}),t.intFreshdeskField=e(t.baseUrl+"integrations/freshdesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"integrations/freshdesk/fields/describe"}}),t.network=e(t.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"networks/describe"}}),t.chatReport=e(t.baseUrl+"chat/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/reports/describe"}}),t.chatSessionReport=e(t.baseUrl+"chat/session/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"chat/session/reports/describe"}}),t.faxReport=e(t.baseUrl+"fax/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"fax/reports/describe"}}),t.jscriptyAnswerReport=e(t.baseUrl+"jscripty/answers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/answers/reports/describe"}}),t.jscriptyQuestionReport=e(t.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/questions/reports/describe"}}),t.jscriptySessionReport=e(t.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/sessions/reports/describe"}}),t.smsReport=e(t.baseUrl+"sms/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/reports/describe"}}),t.smsSessionReport=e(t.baseUrl+"sms/session/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"sms/session/reports/describe"}}),t.squareReport=e(t.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/reports/describe"}}),t.squareReportDetail=e(t.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/details/reports/describe"}}),t.jscriptyProject=e(t.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"jscripty/projects/describe"}}),t.setting=e(t.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"settings/describe"},addLogo:{isArray:!1,method:"post",url:t.baseUrl+"settings/:id/logo"},addLogoLogin:{isArray:!1,method:"post",url:t.baseUrl+"settings/:id/logo_login"},getLogo:{isArray:!1,method:"get",url:t.baseUrl+"settings/:id/logo"},getLogoLogin:{isArray:!1,method:"get",url:t.baseUrl+"settings/:id/logo_login"}}),t.squareOdbc=e(t.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/odbc/describe"},test:{isArray:!1,method:"get",url:t.baseUrl+"square/odbc/:id/test"}}),t.squareProject=e(t.baseUrl+"square/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/projects/describe"}}),t.squareRecording=e(t.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"square/recordings/describe"},download:{isArray:!1,method:"get",url:t.baseUrl+"square/recordings/:id/download"}}),t.team=e(t.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"teams/describe"},getQueues:{isArray:!0,method:"get",url:t.baseUrl+"teams/:id/queues"},addQueues:{isArray:!0,method:"post",url:t.baseUrl+"teams/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:t.baseUrl+"teams/:id/queues"},addAgents:{isArray:!0,method:"post",url:t.baseUrl+"teams/:id/users"},removeAgents:{isArray:!1,method:"delete",url:t.baseUrl+"teams/:id/users"},getAgents:{isArray:!1,method:"get",url:t.baseUrl+"teams/:id/users"}}),t.license=e(t.baseUrl+"license/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"license/describe"}}),t.campaign=e(t.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:t.baseUrl+"campaigns/describe"},getHoppers:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/hopper_black"},getLists:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/lists"},addLists:{isArray:!0,method:"post",url:t.baseUrl+"campaigns/:id/lists"},removeLists:{isArray:!0,method:"delete",url:t.baseUrl+"campaigns/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:t.baseUrl+"campaigns/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:t.baseUrl+"campaigns/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:t.baseUrl+"campaigns/:id/blacklists"}}),t}e.$inject=["$resource"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,t,n){n.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.useSanitizeValueStrategy("sanitize"),t.decorator("taOptions",["$delegate",function(e){return e.toolbar=[["bold","italics","underline","ul","ol","quote","justifyLeft","justifyCenter","justifyRight","html","insertImage","insertLink"]],e.classes={focussed:"focussed",toolbar:"ta-toolbar",toolbarGroup:"ta-group",toolbarButton:"md-button",toolbarButtonActive:"active",disabled:"",textEditor:"form-control",htmlEditor:"form-control"},e}]),t.decorator("taTools",["$delegate",function(e){return e.quote.iconclass="icon-format-quote",e.bold.iconclass="icon-format-bold",e.italics.iconclass="icon-format-italic",e.underline.iconclass="icon-format-underline",e.strikeThrough.iconclass="icon-format-strikethrough",e.ul.iconclass="icon-format-list-bulleted",e.ol.iconclass="icon-format-list-numbers",e.redo.iconclass="icon-redo",e.undo.iconclass="icon-undo",e.clear.iconclass="icon-close-circle-outline",e.justifyLeft.iconclass="icon-format-align-left",e.justifyCenter.iconclass="icon-format-align-center",e.justifyRight.iconclass="icon-format-align-right",e.justifyFull.iconclass="icon-format-align-justify",e.indent.iconclass="icon-format-indent-increase",e.outdent.iconclass="icon-format-indent-decrease",e.html.iconclass="icon-code-tags",e.insertImage.iconclass="icon-file-image-box",e.insertLink.iconclass="icon-link",e.insertVideo.iconclass="icon-filmstrip",e}])}e.$inject=["$translateProvider","$provide","toastyConfigProvider"],angular.module("motion").config(e)}(),function(){"use strict";angular.module("motion")}(),function(){"use strict";function e(e){this.themes=e.themes}e.$inject=["motionTheming"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(){return function(e,t,n){var a,i={},o=0;for(a in e)if(o>=n&&(i[a]=e[a]),++o===n+t)break;return i}}function t(){var e=[{value:"jan"},{value:"feb"},{value:"mar"},{value:"apr"},{value:"may"},{value:"jun"},{value:"jul"},{value:"aug"},{value:"sep"},{value:"oct"},{value:"nov"},{value:"dec"}],t=[{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10"},{value:"11"},{value:"12"}],n=[{value:"mon"},{value:"tue"},{value:"wed"},{value:"thu"},{value:"fri"},{value:"sat"},{value:"sun"}],a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];return{getMonthName:function(){return e},getMonthNumber:function(){return t},getDaysOfWeek:function(){return n},getDaysOfMonth:function(){return a}}}angular.module("motion").filter("limitObjectFromTo",e).factory("IndexFactory",t)}(),function(){"use strict";function e(e,t,n){n.html5Mode(!0),t.otherwise("/dashboards/general");var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.get("motion.layoutStyle")||"verticalNavigation",o={verticalNavigation:{main:"app/core/layouts/vertical-navigation.html",toolbar:"app/toolbar/layouts/vertical-navigation/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html"},verticalNavigationFullwidthToolbar:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html"},verticalNavigationFullwidthToolbar2:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html"},horizontalNavigation:{main:"app/core/layouts/horizontal-navigation.html",toolbar:"app/toolbar/layouts/horizontal-navigation/toolbar.html",navigation:"app/navigation/layouts/horizontal-navigation/navigation.html"},contentOnly:{main:"app/core/layouts/content-only.html",toolbar:"",navigation:""},contentWithToolbar:{main:"app/core/layouts/content-with-toolbar.html",toolbar:"app/toolbar/layouts/content-with-toolbar/toolbar.html",navigation:""}};e.state("app",{abstract:!0,views:{"main@":{templateUrl:o[i].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:o[i].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:o[i].navigation,controller:"NavigationController as vm"},"quickPanel@app":{templateUrl:"app/quick-panel/quick-panel.html",controller:"QuickPanelController as vm"}},resolve:{license:["apiResolver",function(e){return e.resolve("license@get")}],setting:["apiResolver",function(e){return e.resolve("setting@get",{id:1})}]}})}e.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"],angular.module("motion").config(e)}(),function(){"use strict";function e(e,t,n){var a=e.$on("$stateChangeStart",function(){e.loadingProgress=!0}),i=e.$on("$stateChangeSuccess",function(){t(function(){e.loadingProgress=!1})});e.state=n,e.$on("$destroy",function(){a(),i()})}e.$inject=["$rootScope","$timeout","$state"],angular.module("motion").run(e)}(),function(){"use strict";function e(e,t){function n(){a=io({query:"id="+t.getCurrentUser().id,transports:["websocket","polling"]})}var a;return{connect:n,on:function(t,i){i=i||angular.noop,a||n(),a.on(t,function(){var t=arguments;e.$apply(function(){i.apply(a,t)})})},emit:function(t,i,o){o=o||angular.noop,a||n(),a.emit(t,i,function(){var t=arguments;e.$apply(function(){o.apply(a,t)})})},removeAllListeners:function(e){a||n(),a.removeAllListeners(e)},disconnect:function(){a||n(),a.disconnect()}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){i.isLoggedIn()&&e.go("app.dashboards.general")}function s(){return i.login(l.form).then(function(){return e.go("app.dashboards.general")}).catch(function(e){l.message=e.message})}function r(e){t.location.href="/api/auth/"+e}var l=this;l.login=s,l.loginOauth=r,l.$onInit=o}e.$inject=["$state","$window","$cookies","api","Auth"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.analyticExtractedReport.save(p.extractedReport).$promise.then(function(e){p.extractedReports.unshift(e),i.success({title:"ExtractedReport properly created",msg:p.extractedReport.name?p.extractedReport.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.analyticExtractedReport.update({id:p.extractedReport.id},p.extractedReport).$promise.then(function(e){var t=_.find(p.extractedReports,{id:e.id});t&&_.merge(t,e),i.success({title:"ExtractedReport properly saved!",msg:p.extractedReport.name?p.extractedReport.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.analyticExtractedReport.delete({id:p.extractedReport.id}).$promise.then(function(){_.remove(p.extractedReports,{id:p.extractedReport.id}),i.success({title:"ExtractedReport properly deleted!",msg:(p.extractedReport.name||"extractedReport")+" has been deleted!"}),u(p.extractedReport)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="ANALYTICS.EDIT_EXTRACTEDREPORT",p.extractedReport=angular.copy(s),p.extractedReports=o,p.newExtractedReport=!1,p.extractedReport||(p.extractedReport={},p.title="ANALYTICS.NEW_EXTRACTEDREPORT",p.newExtractedReport=!0),p.addNewExtractedReport=l,p.saveExtractedReport=d,p.deleteExtractedReport=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","extractedReports","extractedReport","api"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{extractedReport:e,extractedReports:C.extractedReports.rows}})}function u(e,n){return l.analyticExtractedReport.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/analytics/extracted_reports/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticExtractedReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the extractedReport?").htmlContent("<b>"+(e.name||"extractedReport")+"</b> will be deleted.").ariaLabel("delete extractedReport").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.extractedReports=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.analyticExtractedReport.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:t,extractedReports:C.extractedReports.rows}})}function b(e){l.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(C.extractedReports.rows,{id:e.id}),C.extractedReports.count-=1,C.extractedReports.rows.length||C.getExtractedReports(),c.success({title:"ExtractedReport deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticExtractedReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedExtractedReports);return C.selectedExtractedReports=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+C.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedExtractedReports.forEach(function(e){b(e)}),C.selectedExtractedReports=[]})}function y(){C.selectedExtractedReports=[]}function A(){C.selectedExtractedReports=C.extractedReports.rows}var C=this;C.extractedReports=r||{count:0,rows:[]},C.table="extractedReports",C.listOrder="",C.listOrderAsc=null,C.selectedExtractedReports=[],C.query={fields:"createdAt,updatedAt,id,name,type,startDate,endDate,createdAt,status,output",sort:"-updatedAt",limit:10,page:1},C.editdialog=m,C.downloadfile=u,C.deleteconfirm=p,C.success=g,C.getExtractedReports=h,C.createOrEditExtractedReport=v,C.deleteExtractedReport=b,C.exportSelectedExtractedReports=f,C.deleteSelectedExtractedReports=E,C.deselectExtractedReports=y,C.selectAllExtractedReports=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","extractedReports","api","msUtils","toasty"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.analyticMetric.save(p.metric).$promise.then(function(e){p.metrics.unshift(e),i.success({title:"Metric properly created",msg:p.metric.name?p.metric.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.analyticMetric.update({id:p.metric.id},p.metric).$promise.then(function(e){var t=_.find(p.metrics,{id:e.id});t&&_.merge(t,e),i.success({title:"Metric properly saved!",msg:p.metric.name?p.metric.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.analyticMetric.delete({id:p.metric.id}).$promise.then(function(){_.remove(p.metrics,{id:p.metric.id}),i.success({title:"Metric properly deleted!",msg:(p.metric.name||"metric")+" has been deleted!"}),u(p.metric)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="ANALYTICS.EDIT_METRIC",p.metric=angular.copy(s),p.metrics=o,p.newMetric=!1,p.metric||(p.metric={table:"report_agent"},p.title="ANALYTICS.NEW_METRIC",p.newMetric=!0),p.addNewMetric=l,p.saveMetric=d,p.deleteMetric=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","metrics","metric","api"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{metric:e,metrics:A.metrics.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the metric?").htmlContent("<b>"+(e.name||"metric")+"</b> will be deleted.").ariaLabel("delete metric").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.metrics=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.analyticMetric.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:t,metrics:A.metrics.rows}})}function v(e){l.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(A.metrics.rows,{id:e.id}),A.metrics.count-=1,A.metrics.rows.length||A.getMetrics(),c.success({title:"Metric deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticMetric",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedMetrics);return A.selectedMetrics=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+A.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMetrics.forEach(function(e){v(e)}),A.selectedMetrics=[]})}function E(){A.selectedMetrics=[]}function y(){A.selectedMetrics=A.metrics.rows}var A=this;A.metrics=r||{count:0,rows:[]},A.table="metrics",A.listOrder="",A.listOrderAsc=null,A.selectedMetrics=[],A.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},A.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"Chat Messages",value:"'chat_messages'"},{option:"Chat Rooms",value:"'chat_rooms'"},{option:"Chat Session Report",value:"'report_chat_session'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Fax Messages",value:"'fax_messages'"},{option:"Fax Rooms",value:"'fax_rooms'"},{option:"Fax Session Report",value:"'report_fax_session'"},{option:"Integration Report",value:"'report_integration'"},{option:"Mail Messages",value:"'mail_messages'"},{option:"Mail Rooms",value:"'mail_rooms'"},{option:"Mail Session Report",value:"'report_mail_session'"},{option:"Member Report",value:"'report_member'"},{option:"Open Channel Messages",value:"'openchannel_messages'"},{option:"Open Channel Rooms",value:"'openchannel_rooms'"},{option:"Open Channel Session Report",value:"'report_openchannel_session'"},{option:"Queue Report",value:"'report_queue'"},{option:"Sms Messages",value:"'sms_messages'"},{option:"Sms Rooms",value:"'sms_rooms'"},{option:"Sms Session Report",value:"'report_sms_session'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getMetrics=g,A.createOrEditMetric=h,A.deleteMetric=v,A.exportSelectedMetrics=b,A.deleteSelectedMetrics=f,A.deselectMetrics=E,A.selectAllMetrics=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","metrics","api","msUtils","toasty"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){c.errors=[];var e;i.analyticCustomReport.save({name:c.report.name,description:c.report.description,table:c.report.table,conditions:c.report.conditions,parent:c.currentNode.id}).$promise.then(function(t){e=t,n.success({title:"Report properly copied!",msg:c.report.name?c.report.name+" has been copied!":""});var a={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return a["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=c.report.id,i.analyticFieldReport.get(a).$promise}).then(function(t){var t=_.map(t.rows,function(t){return _.extend({},t,{CustomReportId:e.id})});return i.analyticFieldReport.bulkCreate(t).$promise}).then(function(){n.success({title:"Fields copied!",msg:"Fields has been copied!"}),d()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:COPYREPORT",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function l(e,t){c.currentNode=t.node}function d(){t.hide()}var c=this;c.errors=[],c.report=angular.copy(a),c.report.name+="-copy",c.treeCustomData=s,c.treeCustomConfig={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},c.treeCustomEvents={select_node:l},c.copyReport=r,c.closeDialog=d}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","treeCustomData"],angular.module("app.analytics").controller("CopyReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){u.errors=[],o[s].save(u.report).$promise.then(function(e){u.reports.unshift(e),n.success({title:"Report properly created",msg:u.report.name?u.report.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.save"}];for(var t=0;t<e.data.errors.length;t++)n.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){u.errors=[],o[s].update({id:u.report.id},u.report).$promise.then(function(e){var t=_.find(u.reports,{id:e.id});t&&_.merge(t,e),n.success({title:"Report properly saved!",msg:u.report.name?u.report.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.update"}];for(var t=0;t<e.data.errors.length;t++)n.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){u.errors=[];var e=t.confirm().title("Are you sure?").content("The report will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(event);t.show(e).then(function(){o[s].delete({id:u.report.id}).$promise.then(function(){_.remove(u.reports,{id:u.report.id}),n.success({title:"Report properly deleted!",msg:u.report.name?u.report.name+" has been deleted!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})}function m(){t.hide()}var u=this;u.errors=[],u.title="ANALYTICS.EDIT_REPORT",u.report=angular.copy(i),u.reports=a,u.newReport=!1,u.report||(u.report={name:"",table:"report_agent",description:"",parent:r.id},u.title="ANALYTICS.NEW_REPORT",u.newReport=!0),u.addNewReport=l,u.saveReport=d,u.deleteReport=c,u.closeDialog=m}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){d.report=e,d.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}},t.getColumns(d.report.table).then(function(e){d.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"])}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){e.unshift({condition:"=",field:"",value:""})}function s(e){e.push({group:{operator:"AND",rules:[]}})}function r(t,n,a){var i=e.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(a).ok("OK").cancel("CANCEL");e.show(i).then(function(){t.splice(n,1)},function(){console.log("CANCEL")})}function l(e){return!_.includes(["IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"],e)}var d=this;d.report={},d.conditions=a.getConditions,d.init=i,d.addCondition=o,d.addGroup=s,d.deleteConfirm=r,d.isValueByCondition=l}e.$inject=["$mdDialog","describeTable","toasty","sqlUtil"],angular.module("app.analytics").controller("ReportConditionsController",e)}(),function(){"use strict";function e(e){var t={report_agent:"voiceAgentReport",report_call:"voiceCallReport",chat_messages:"chatMessage",chat_rooms:"chatInteraction",report_chat_session:"chatSessionReport",cm_contacts:"cmContact",report_square:"squareReport",report_square_details:"squareReportDetail",fax_messages:"faxMessage",fax_rooms:"faxInteraction",report_fax_session:"faxSessionReport",report_integration:"integrationReport",mail_messages:"mailMessage",mail_rooms:"mailInteraction",report_mail_session:"mailSessionReport",report_member:"memberReport",openchannel_messages:"openchannelMessage",openchannel_rooms:"openchannelInteraction",report_openchannel_session:"openchannelSessionReport",report_queue:"voiceQueueReport",sms_messages:"smsMessage",sms_rooms:"smsInteraction",report_sms_session:"smsSessionReport",users:"user",voice_recordings:"voiceRecording",cm_hopper:"cmHopper",cm_hopper_final:"cmHopperFinal",cm_hopper_history:"cmHopperHistory"};return{getColumns:function(n){return e[t[n]].describe().$promise}}}e.$inject=["api"],angular.module("app.analytics").factory("describeTable",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){g.errors=[],g.reportField.custom="custom"===g.reportField.type,g.reportField.MetricId="metric"===g.reportField.type?g.reportField.MetricId:null,g.reportField.CustomReportId=g.report.id,d.analyticFieldReport.save(g.reportField).$promise.then(function(e){g.reportFields.push(e),n.success({title:"Report field properly created",msg:g.reportField.field?g.reportField.field+" has been created!":g.reportField.type+" has been created!"}),p()}).catch(function(e){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})}function m(){g.errors=[],g.reportField.custom="custom"===g.reportField.type,g.reportField.MetricId="metric"===g.reportField.type?g.reportField.MetricId:null,d.analyticFieldReport.update({id:g.reportField.id},g.reportField).$promise.then(function(e){var t=_.find(g.reportFields,{id:e.id});t&&_.merge(t,e),n.success({title:"Report Field properly saved!",msg:g.reportField.field?g.reportField.field+" has been saved!":""}),p()}).catch(function(e){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})}function u(e){g.errors=[];var a=t.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);t.show(a).then(function(){d.analyticFieldReport.delete({id:g.reportField.id}).$promise.then(function(){_.remove(g.reportFields,{id:g.reportField.id}),n.success({title:"Report Field properly deleted!",msg:g.reportField.field?g.reportField.field+" has been deleted!":""}),p()}).catch(function(e){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})}function p(){t.hide()}var g=this;g.errors=[],g.title="Edit Report Field",g.report=a,g.reportField=angular.copy(o),g.reportFields=i,g.metrics=s,g.columns=r,g.sqlUtil=l,g.newReportField=!1,g.reportField?g.reportField.type=g.reportField.custom?"custom":g.reportField.MetricId?"metric":"column":(g.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},g.title="New Report Field",g.newReportField=!0),g.addNewReportField=c,g.saveReportField=m,g.deleteReportField=u,g.closeDialog=p}e.$inject=["$location","$mdDialog","toasty","report","reportFields","reportField","metrics","columns","sqlUtil","api"],angular.module("app.analytics").controller("CreateOrEditReportFieldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(e){E.report=e,E.query.CustomReportId=E.report.id,r.getColumns(E.report.table).then(function(e){return E.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"]),s.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){E.metrics=e.rows}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})}),E.getReportFields()}function m(e,t){var n=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>"+e.field+"</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");a.show(n).then(function(){h(e)},function(){console.log("CANCEL")})}function u(e){E.reportFields=e||{count:0,rows:[]}}function p(){E.promise=s.analyticFieldReport.get(E.query,u).$promise}function g(e,t){a.show({controller:"CreateOrEditReportFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/edit/field/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:E.report,reportField:t,reportFields:E.reportFields.rows,metrics:E.metrics,columns:E.columns}})}function h(e){s.analyticFieldReport.delete({id:e.id}).$promise.then(function(){E.selectedReportFields=[],_.remove(E.reportFields.rows,{id:e.id}),E.reportFields.count-=1,E.reportFields.rows.length||E.getReportFields(),o.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(e){var t=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+E.selectedReportFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){E.selectedReportFields.forEach(function(e){h(e)}),E.selectedReportFields=[]})}function b(e){var t=_.find(E.metrics,{id:e});return t?t.name:d.instant("ANALYTICS.NO_METRIC_FOUND")}function f(e){var t=_.find(E.metrics,{id:e});return t?t.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")}var E=this;E.report={},E.reportFields={count:0,rows:[]},E.functions=_.keyBy(l.getFunctions,"value"),E.formats=_.keyBy(l.getFormats,"value"),E.groupBy=_.keyBy(l.getGroupBy,"value"),E.orderBy=_.keyBy(l.getOrderBy,"value"),E.selectedReportFields=[],E.query={fields:"createdAt,updatedAt,id,field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0},E.sortableTable={animation:100,onSort:function(e){s.analyticFieldReport.addFields({id:E.report.id},e.models).$promise.then(function(e){E.reportFields.rows=e}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},E.init=c,E.deleteConfirm=m,E.success=u,E.getReportFields=p,E.createOrEditReportField=g,E.deleteReportField=h,E.deleteSelectedReportFields=v,E.getMetricName=b,E.getMetricValue=f;var y=!0;t.$watch("vm_rf.query.filter",function(e,t){y?n(function(){y=!1}):E.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";function e(){return{getFunctions:[{value:"SUM",option:function(e){return"SUM ("+e+")"}},{value:"COUNT",option:function(e){return"COUNT ("+e+")"}},{value:"COUNT DISTINCT",option:function(e){return"COUNT (DISTINCT "+e+")"}},{value:"MAX",option:function(e){return"MAX ("+e+")"}},{value:"MIN",option:function(e){return"MIN ("+e+")"}},{value:"AVG",option:function(e){return"AVG ("+e+")"}},{value:"GROUP_CONCAT",option:function(e){return"GROUP_CONCAT ("+e+")"}},{value:"GROUP_CONCAT ASC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" ASC)"}},{value:"GROUP_CONCAT DESC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" DESC)"}}],getFormats:[{value:"SEC_TO_TIME",option:function(e){return"SEC_TO_TIME ("+e+")"}},{value:"DATE",option:function(e){return"DATE ("+e+")"}},{value:"HOUR",option:function(e){return"HOUR ("+e+")"}},{value:"ROUND",option:function(e){return"ROUND ("+e+")"}},{value:"UNIX_TIMESTAMP",option:function(e){return"UNIX_TIMESTAMP ("+e+")"}}],getGroupBy:[{value:!1,option:function(){return"No"}},{value:!0,option:function(e){return"GROUP BY "+e}}],getOrderBy:[{value:"ASC",option:function(e){return"ORDER BY "+e+" ASC"}},{value:"DESC",option:function(e){return"ORDER BY "+e+" DESC"}}],getConditions:["=","!=","<","<=",">",">=","LIKE","NOT LIKE","IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"]}}angular.module("app.analytics").factory("sqlUtil",e)}(),function(){"use strict";function e(e,t,n,a){function i(){e.go("app.analytics.reports")}function o(){l.report.conditions=angular.toJson(l.report.condition),n.analyticCustomReport.update({id:l.report.id},l.report).$promise.then(function(){t.success({title:"Report updated!",msg:l.report.name?l.report.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(){l.columns=[],l.rows=[],l.error=!1,n.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:l.report.id}).$promise.then(function(e){return l.columns=e?e.rows:[],n.analyticCustomReport.preview({id:l.report.id}).$promise}).then(function(e){l.rows=e}).catch(function(e){console.log(e),l.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(l.error)})}function r(){return l.queryResult="Loading...",n.analyticCustomReport.query({id:l.report.id}).$promise.then(function(e){l.queryResult=e.sql}).catch(function(e){l.queryResult="",console.log(e),l.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(l.error)})}var l=this;l.report=a||{},l.selectedTab=e.params.tab||0,l.gotoReports=i,l.saveReport=o,l.previewReport=s,l.queryReport=r}e.$inject=["$state","toasty","api","report"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){t.hide()}var r=this;r.errors=[],r.report=angular.copy(a),r.closeDialog=s,function(){r.columns=[],r.rows=[],r.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===o?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(e).$promise.then(function(e){return r.columns=e?e.rows:[],i[o].preview({id:r.report.id}).$promise}).then(function(e){r.rows=e}).catch(function(e){console.log(e),r.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(r.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(e,t){i.go("app.analytics.reports.edit",{id:e.id})}function m(e,t){a.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:N.apiName,treeCustomData:N.treeCustomInstance.jstree(!0).get_json("#",{flat:!0})}}).finally(function(){N.treeCustomInstance.jstree(!0).refresh()})}function u(e,t){a.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:N.apiName}})}function p(e,t){a.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!0,locals:{report:e,apiName:N.apiName}})}function g(e,t){var n;r.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(t){n=_.keyBy(t.rows,"id");var a={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return a["analyticCustomReport"===N.apiName?"CustomReportId":"DefaultReportId"]=e.id,r.analyticFieldReport.get(a).$promise}).then(function(t){for(var a=0;a<t.rows.length;a+=1)t.rows[a].MetricId&&(t.rows[a].field=n[t.rows[a].MetricId].metric,t.rows[a].custom=!0),delete t.rows[a].MetricId;var i=o.document.createElement("a");i.href="data:text/json;charset=utf-8,"+o.encodeURIComponent(angular.toJson({name:e.name,description:e.description,table:e.table,conditions:e.conditions,fields:t.rows})),i.download=e.name+".json",i.target="_self",i.click(),d.success({title:"Report downloaded!",msg:e.name?e.name+" has been downloaded!":""})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DOWNLOADJSON",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(e,t){var n=a.confirm().title("Are you sure want to delete the report?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete report").targetEvent(t).ok("OK").cancel("CANCEL");a.show(n).then(function(){y(e)},function(){console.log("CANCEL")})}function v(e){N.reports=e||{count:0,rows:[]}}function b(){N.query.offset=(N.query.page-1)*N.query.limit,N.apiName&&(N.promise=r[N.apiName].get(N.query,v).$promise)}function f(e,t){a.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:t,reports:N.reports.rows,apiName:N.apiName,currentNode:N.currentNode}})}function E(e,t,n){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var t=atob(e.target.result.split(",")[1]);t=angular.fromJson(t),r.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,parent:N.currentNode.id}).$promise.then(function(e){N.reports.rows.unshift(e),d.success({title:"Report saved!",msg:e.name?e.name+" has been saved!":""});var n=_.map(t.fields,function(t){return _.extend({},t,{CustomReportId:e.id})});return r.analyticFieldReport.bulkCreate(n).$promise}).then(function(e){d.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}catch(e){console.error(e),d.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else d.error({title:"Format Error",msg:"Please use only json files"})}function y(e){N.apiName&&r[N.apiName].delete({id:e.id}).$promise.then(function(){_.remove(N.reports.rows,{id:e.id}),N.reports.count-=1,N.reports.rows.length||N.getReports(),d.success({title:"Report deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=_.clone(N.selectedReports);return N.selectedReports=[],e}function C(e){var t=a.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+N.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){N.selectedReports.forEach(function(e){y(e)}),N.selectedReports=[]})}function x(){N.selectedReports=[]}function T(){N.selectedReports=N.reports.rows}function S(e,t){N.treeDefaultInstance.jstree(!0).deselect_all(),N.treeDefaultInstance.jstree(!0).close_all(),N.currentNode=t.node,N.currentNode.custom=!0,N.apiName="analyticCustomReport",N.query.parent=t.node.id,b()}function O(e,t){N.treeCustomInstance.jstree(!0).deselect_all(),N.treeCustomInstance.jstree(!0).close_all(),N.currentNode=t.node,N.currentNode.custom=!1,N.apiName="analyticDefaultReport",N.query.parent=t.node.id,b()}function w(e,t){r.analyticTreeReport.update({id:2,tree:angular.toJson(N.treeCustomInstance.jstree(!0).get_json("#",{flat:!0}))}).$promise.then(function(){d.success({title:"Node Updated",msg:t.node.text?t.node.text+" has been updated!":"Node has been updated!"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEanalyticTreeReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function R(e){return{core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:e?["contextmenu","dnd","search","state","wholerow"]:["search","state","wholerow"],contextmenu:{items:function(e){return{create:{label:s.instant("ANALYTICS.CREATE"),action:function(){e=N.treeCustomInstance.jstree(!0).create_node(e),N.treeCustomInstance.jstree(!0).edit(e)}},rename:{_disabled:"#"===e.parent,label:s.instant("ANALYTICS.RENAME"),action:function(){N.treeCustomInstance.jstree(!0).edit(e)}},remove:{_disabled:"#"===e.parent,label:s.instant("ANALYTICS.REMOVE"),action:function(){var t=a.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(e.text?e.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");a.show(t).then(function(){N.treeCustomInstance.jstree(!0).delete_node(e)})}}}}}}}function I(e){return e?{create_node:w,rename_node:w,move_node:w,delete_node:w,select_node:S}:{select_node:O}}var N=this;N.reports={count:0,rows:[]},N.selectedReports=[],N.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions",limit:10,page:1,sort:"-updatedAt"},N.apiName=null,N.currentPath="",N.customTree=!0,N.editstate=c,N.copydialog=m,N.previewdialog=u,N.rundialog=p,N.downloadfile=g,N.deleteconfirm=h,N.success=v,N.getReports=b,N.createOrEditReport=f,N.importReport=E,N.deleteReport=y,N.exportSelectedReports=A,N.deleteSelectedReports=C,N.deselectReports=x,N.selectAllReports=T,N.treeDefaultData=l.rows[0]?angular.fromJson(l.rows[0].tree):[],N.treeCustomData=l.rows[1]?angular.fromJson(l.rows[1].tree):[],N.treeDefaultConfig=R(!1),N.treeCustomConfig=R(!0),N.treeDefaultEvents=I(!1),N.treeCustomEvents=I(!0);var D=!0,L=1;e.$watch("vm.query.filter",function(e,n){D?t(function(){D=!1}):(n||(L=N.query.page),e!==n&&(N.query.page=1),e||(N.query.page=L),N.getReports())}),e.$watch("vm.search",function(e,t){N.treeDefaultInstance&&N.treeDefaultInstance.jstree(!0).search(e),N.treeCustomInstance&&N.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","api","treeReports","toasty"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){d.export={id:d.report.id,name:d.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"csv"}}function r(){d.errors=[],i[o].run(_.merge(d.export,{startDate:moment(d.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(d.export.endDate).format("YYYY-MM-DD HH:mm:ss")})).$promise.then(function(e){n.success({title:"Report properly run!",msg:d.report.name?d.report.name+" has been run!":""}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function l(){t.hide()}var d=this;d.errors=[],d.report=angular.copy(a),d.export={},d.runReport=r,d.closeDialog=l,d.refreshDate=s,s()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.squareOdbc.save(p.odbc).$promise.then(function(e){p.odbcs.unshift(e),i.success({title:"Odbc properly created",msg:p.odbc.name?p.odbc.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.squareOdbc.update({id:p.odbc.id},p.odbc).$promise.then(function(e){var t=_.find(p.odbcs,{id:e.id});t&&_.merge(t,e),i.success({title:"Odbc properly saved!",msg:p.odbc.name?p.odbc.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.squareOdbc.delete({id:p.odbc.id}).$promise.then(function(){_.remove(p.odbcs,{id:p.odbc.id}),i.success({title:"Odbc properly deleted!",msg:(p.odbc.name||"odbc")+" has been deleted!"}),u(p.odbc)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CALLYSQUARE.EDIT_ODBC",p.odbc=angular.copy(s),p.odbcs=o,p.newOdbc=!1,p.odbc||(p.odbc={},p.title="CALLYSQUARE.NEW_ODBC",p.newOdbc=!0),p.addNewOdbc=l,p.saveOdbc=d,p.deleteOdbc=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","odbcs","odbc","api"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{odbc:e,odbcs:C.odbcs.rows}})}function u(e,t){return l.squareOdbc.test({id:e.id}).$promise.then(function(){c.success({title:"Square ODBC properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"Square ODBC properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the odbc?").htmlContent("<b>"+(e.name||"odbc")+"</b> will be deleted.").ariaLabel("delete odbc").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.odbcs=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.squareOdbc.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:t,odbcs:C.odbcs.rows}})}function b(e){l.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(C.odbcs.rows,{id:e.id}),C.odbcs.count-=1,C.odbcs.rows.length||C.getODBC(),c.success({title:"Odbc deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareOdbc",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedODBC);return C.selectedODBC=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+C.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedODBC.forEach(function(e){b(e)}),C.selectedODBC=[]})}function y(){C.selectedODBC=[]}function A(){C.selectedODBC=C.odbcs.rows}var C=this;C.odbcs=r||{count:0,rows:[]},C.table="odbcs",C.listOrder="",C.listOrderAsc=null,C.selectedODBC=[],C.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},C.editdialog=m,C.testtestOdbc=u,C.deleteconfirm=p,C.success=g,C.getODBC=h,C.createOrEditOdbc=v,C.deleteOdbc=b,C.exportSelectedODBC=f,C.deleteSelectedODBC=E,C.deselectODBC=y,C.selectAllODBC=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","odbcs","api","msUtils","toasty"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){u.errors=[],i.squareProject.save(u.project).$promise.then(function(e){u.projects.unshift(e),t.success({title:"Project properly created",msg:u.project.name?u.project.name+" has been created!":""}),m(e),u.openFromEditor&&(u.newWindow?s.open("/callysquare/projects/"+e.id,"_blank"):r.go("app.callysquare.projects.edit",{id:e.id}))}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){u.errors=[],i.squareProject.update({id:u.project.id},u.project).$promise.then(function(e){var n=_.find(u.projects,{id:e.id});n&&_.merge(n,e),t.success({title:"Project properly saved!",msg:u.project.name?u.project.name+" has been saved!":""}),m(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){u.errors=[];var n=e.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);e.show(n).then(function(){i.squareProject.delete({id:u.project.id}).$promise.then(function(){_.remove(u.projects,{id:u.project.id}),t.success({title:"Project properly deleted!",msg:u.project.name?u.project.name+" has been deleted!":""}),m(u.project)}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})}function m(t){e.hide(t)}var u=this;u.errors=[],u.title="CALLYSQUARE.EDIT_PROJECT",u.project=angular.copy(a),u.newWindow=!0,u.projects=n,u.newProject=!1,u.openFromEditor=o,u.project||(u.project={name:"",description:""},u.title="CALLYSQUARE.NEW_PROJECT",u.newProject=!0),u.addNewProject=l,u.saveProject=d,u.deleteProject=c,u.closeDialog=m}e.$inject=["$mdDialog","toasty","projects","project","api","openFromEditor","$window","$state"],angular.module("app.callysquare").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v,b,f,E){function y(e,t,n,a){return _.map(e,function(e){return{value:e[t],option:e[n],group:a?e[a]:void 0}})}function A(t){t&&E(C.attributes),e.hide()}var C=this,x={playback:["file_id"],answer:["timeout"],menu:["file_id","digit","response","retry"],getdigits:["file_id","variable_id","mindigit","maxdigit","retry"],getsecretdigits:["file_id","variable_id","mindigit","maxdigit","hiddendigitsnum","retry"],vswitch:["variable_id"],database:["odbc_id","query"],ext_dial:["trunk_name","phone","timeout"],set:["variable_id"],math:["variable_id"],gotoc:["context","extension","priority"],system:["command"],agi:["command"],gotoif:["condition"],saydigits:["digits"],saynumber:["number"],sayphonetic:["text"],record:["file","timeout"],goal:["goalname"],dial:["sip_id","timeout"],queue:["queue_id","timeout"],callback:["list_id","name","phone","delay"],gotoiftime:["interval_id"],voicemail:["mailbox"],subproject:["project_id"],sendSMS:["account_id","to","sms_text"],sendMail:["account_id","to"],sendFax:["account_id","to","attachment_path"],tts:["text"],ispeechtts:["text","key","speed"],ispeechasr:["key","timeout"],custom_app:["application"]},T={queue:["file_id"],database:["variable_id"]};C.cellName=f.tagName,C.attributes=_.map(f.attributes,function(e){return{name:e.name,value:e.value,defaultValue:T[C.cellName]&&_.includes(T[C.cellName],e.name),required:x[C.cellName]&&_.includes(x[C.cellName],e.name)}}),C.values={sip_id:y(s,"id","fullname","role"),trunk_name:y(r,"name","name"),trunk_id:y(r,"id","name"),queue_id:y(l,"id","name"),file_id:y(d,"id","name"),variable_id:y(c,"id","name"),odbc_id:y(m,"id","name"),project_id:y(u,"id","name"),context:y(p,"id","name"),interval_id:function(e,t,n,a){var i=_.filter(e,function(e){return null===e[a]}),o=[];return _.forEach(i,function(i){o.push({value:i[t],option:i[n]});var s=_.filter(e,function(e){return e[a]===i.id});_.forEach(s,function(e){o.push({value:e[t],option:" - "+e[n]})})}),o}(g,"id","name","IntervalId"),account_id:y(h,"id","name"),template_id:y(v,"id","name"),list_id:y(b,"id","name"),answer:[{value:"yes",option:"Yes"},{value:"no",option:"No"}],hiddendigitspos:[{value:"first",option:"First"},{value:"last",option:"Last"}],recordingformat:[{value:"wav",option:"Wav"},{value:"gsm",option:"Gms"}],intkey:[{value:"#",option:"#"},{value:"*",option:"*"}],beep:[{value:"BEEP",option:"Yes"},{value:"NOBEEP",option:"No"}],model:n,ispeech_asr_language:a,ispeech_tts_language:i,google_tts_language:o},C.closeDialog=A,C.getMap=y}e.$inject=["$mdDialog","toasty","ispeechAsrModel","ispeechAsrLanguage","ispeechTtsLanguage","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";function e(){return{require:"ngModel",link:function(e,t,n,a){a.$parsers.push(function(e){return""+e}),a.$formatters.push(function(e){return parseFloat(e)})}}}angular.module("app.callysquare").directive("stringToNumber",e)}(),function(){"use strict";function e(){return[{value:"af",option:"Afrikaans"},{value:"sq",option:"Albanian"},{value:"am",option:"Amharic"},{value:"ar",option:"Arabic"},{value:"hy",option:"Armenian"},{value:"az",option:"Azerbaijani"},{value:"eu",option:"Basque"},{value:"be",option:"Belarusian"},{value:"bn",option:"Bengali"},{value:"bh",option:"Bihari"},{value:"bs",option:"Bosnian"},{value:"br",option:"Breton"},{value:"bg",option:"Bulgarian"},{value:"km",option:"Cambodian"},{value:"ca",option:"Catalan"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"co",option:"Corsican"},{value:"hr",option:"Croatian"},{value:"cs",option:"Czech"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"eo",option:"Esperanto"},{value:"et",option:"Estonian"},{value:"fo",option:"Faroese"},{value:"tl",option:"Filipino"},{value:"fi",option:"Finnish"},{value:"fr",option:"French"},{value:"fy",option:"Frisian"},{value:"gl",option:"Galician"},{value:"ka",option:"Georgian"},{value:"de",option:"German"},{value:"el",option:"Greek"},{value:"gn",option:"Guarani"},{value:"gu",option:"Gujarati"},{value:"xx-hacker",option:"Hacker"},{value:"ha",option:"Hausa"},{value:"iw",option:"Hebrew"},{value:"hi",option:"Hindi"},{value:"hu",option:"Hungarian"},{value:"is",option:"Icelandic"},{value:"id",option:"Indonesian"},{value:"ia",option:"Interlingua"},{value:"ga",option:"Irish"},{value:"it",option:"Italian"},{value:"jw",option:"Javanese"},{value:"ja",option:"Japanese"},{value:"kn",option:"Kannada"},{value:"kk",option:"Kazakh"},{value:"rw",option:"Kinyarwanda"},{value:"rn",option:"Kirundi"},{value:"xx-klingon",option:"Klingon"},{value:"ku",option:"Kurdish"},{value:"ko",option:"Korean"},{value:"ky",option:"Kyrgyz"},{value:"lo",option:"Laothian"},{value:"la",option:"Latin"},{value:"lv",option:"Latvian"},{value:"ln",option:"Lingala"},{value:"lt",option:"Lithuanian"},{value:"mk",option:"Macedonian"},{value:"mg",option:"Malagasy"},{value:"ml",option:"Malayalam"},{value:"mt",option:"Maltese"},{value:"mi",option:"Maori"},{value:"mr",option:"Marathi"},{value:"mo",option:"Moldavian"},{value:"mn",option:"Mongolian"},{value:"sr-ME",option:"Montenegrin"},{value:"ne",option:"Nepali"},{value:"no",option:"Norwegian"},{value:"nn",option:"Norwegian (Nynorsk)"},{value:"oc",option:"Occitan"},{value:"or",option:"Oriya"},{value:"om",option:"Oromo"},{value:"ps",option:"Pashto"},{value:"fa",option:"Persian"},{value:"xx-pirate",option:"Pirate"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"pa",option:"Punjabi"},{value:"qu",option:"Quechua"},{value:"ro",option:"Romanian"},{value:"rm",option:"Romansh"},{value:"ru",option:"Russian"},{value:"gd",option:"Scots Gaelic"},{value:"sr",option:"Serbian"},{value:"sh",option:"Serbo-Croatian"},{value:"st",option:"Sesotho"},{value:"sn",option:"Shona"},{value:"sd",option:"Sindhi"},{value:"si",option:"Sinhalese"},{value:"sk",option:"Slovak"},{value:"sl",option:"Slovenian"},{value:"so",option:"Somali"},{value:"es",option:"Spanish"},{value:"su",option:"Sundanese"},{value:"sw",option:"Swahili"},{value:"sv",option:"Swedish"},{value:"tg",option:"Tajik"},{value:"ta",option:"Tamil"},{value:"tt",option:"Tatar"},{value:"te",option:"Telugu"},{value:"th",option:"Thai"},{value:"ti",option:"Tigrinya"},{value:"to",option:"Tonga"},{value:"tr",option:"Turkish"},{value:"tk",option:"Turkmen"},{value:"tw",option:"Twi"},{value:"ug",option:"Uighur"},{value:"uk",option:"Ukrainian"},{value:"ur",option:"Urdu"},{value:"uz",option:"Uzbek"},{value:"vi",option:"Vietnamese"},{value:"cy",option:"Welsh"},{value:"xh",option:"Xhosa"},{value:"yi",option:"Yiddish"},{value:"yo",option:"Yoruba"},{value:"zu",option:"Zulu"}]}function t(){return[{value:"usenglishfemale",option:"US English Female"},{value:"usenglishmale",option:"US English Male"},{value:"ukenglishfemale",option:"UK English Female"},{value:"ukenglishmale",option:"UK English Male"},{value:"auenglishfemale",option:"Australian English"},{value:"usspanishfemale",option:"US Spanish Female"},{value:"usspanishmale",option:"US Spanish Male"},{value:"chchinesefemale",option:"Chinese Female"},{value:"chchinesemale",option:"Chinese Male"},{value:"hkchinesefemale",option:"Hong Kong Cantonese Female"},{value:"twchinesefemale",option:"Taiwan Chinese Female"},{value:"jpjapanesefemale",option:"Japanese Female"},{value:"jpjapanesemale",option:"Japanese Male"},{value:"krkoreanfemale",option:"Korean Female"},{value:"krkoreanmale",option:"Korean Male"},{value:"caenglishfemale",option:"Canadian English Female"},{value:"huhungarianfemale",option:"Hungarian Female"},{value:"brportuguesefemale",option:"Brazilian Portuguese Female"},{value:"eurportuguesefemale",option:"European Portuguese Female"},{value:"eurportuguesemale",option:"European Portuguese Male"},{value:"eurspanishfemale",option:"European Spanish Female"},{value:"eurspanishmale",option:"European Spanish Male"},{value:"eurcatalanfemale",option:"European Catalan Female"},{value:"eurczechfemale",option:"European Czech Female"},{value:"eurdanishfemale",option:"European Danish Female"},{value:"eurfinnishfemale",option:"European Finnish Female"},{value:"eurfrenchfemale",option:"European French Female"},{value:"eurfrenchmale",option:"European French Male"},{value:"eurnorwegianfemale",option:"European Norwegian Female"},{value:"eurdutchfemale",option:"European Dutch Female"},{value:"eurpolishfemale",option:"European Polish Female"},{value:"euritalianfemale",option:"European Italian Female"},{value:"euritalianmale",option:"European Italian Male"},{value:"eurturkishfemale",option:"European Turkish Female"},{value:"eurturkishmale",option:"European Turkish Male"},{value:"eurgermanfemale",option:"European German Female"},{value:"eurgermanmale",option:"European German Male"},{value:"rurussianfemale",option:"Russian Female"},{value:"rurussianmale",option:"Russian Male"},{value:"swswedishfemale",option:"Swedish Female"},{value:"cafrenchfemale",option:"Canadian French Female"},{value:"cafrenchmale",option:"Canadian French Male"}]}function n(){return[{value:"en-US",option:"English (US)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (UK)"},{value:"en-AU",option:"English (Australia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-MX",option:"Spanish (Mexico)"},{value:"it-IT",option:"Italian (Italy) / Finnish (Finland)"},{value:"fr-FR",option:"German (Germany)"},{value:"fr-CA",option:"French (Canada)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ca-ES",option:"Catalan (Catalan)"},{value:"zh-TW",option:"Chinese (Taiwan)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"ko-KR",option:"Korean (Korea)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"zh-CN",option:"Chinese (China)"},{value:"zh-HK",option:"Chinese (Hong Kong)"}]}function a(){return[{value:"0",option:"Default"},{value:"date",option:"Date"},{value:"usmoney",option:"US Money"},{value:"numbersto9",option:"Numbers to 9"},{value:"numbersto99",option:"Numbers to 99"},{value:"numbersto999",option:"Numbers to 999"},{value:"time",option:"Time"},{value:"phonenumber",option:"Phone number"},{value:"streets",option:"Streets"},{value:"citystate",option:"US City/States"}]}angular.module("app.callysquare").factory("ispeechAsrModel",a).factory("ispeechAsrLanguage",n).factory("ispeechTtsLanguage",t).factory("googleTtsLanguage",e)}(),function(){"use strict";function e(e,t,n,a){function i(t){t?(a(o.project.preproduction),e.hide(o.project.preproduction)):e.hide()}var o=this;o.project={preproduction:n},o.closeDialog=i}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(e,t){function n(e){if(i.errors=[],"text/xml"!==e.file.type&&i.errors.push({message:"The format "+e.file.type+" is not supported!"}),e.file.size>5242880&&i.errors.push({message:"The file is too big. Max 5MB files are supported!"}),!i.errors.length){var t=new FileReader;t.onload=function(e){a(e.target.result)},t.readAsText(e.file)}}function a(n){n?(t(n),e.hide(n)):e.hide()}var i=this;i.errors=[],i.ngFlowOptions={chunkSize:5242880,maxChunkRetries:1,singleFile:!0,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},i.ngFlow={flow:{}},i.dropping=!1,i.closeDialog=a,i.fileAdded=n}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],a.squareProject.update({id:s.project.id},{notes:s.project.notes,description:s.project.description}).$promise.then(function(n){t.success({title:"Project updated!",msg:s.project.name?s.project.name+" has been updated!":""}),e.hide(n)}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}]})}function o(){e.hide()}var s=this;s.project=_.clone(n),s.closeDialog=o,s.save=i}e.$inject=["$mdDialog","toasty","project","api"],angular.module("app.callysquare").controller("MxGraphUpdateInfoController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(t){s.errors=[],t?(e.hide(),s.newWindow?a.open("/callysquare/projects/"+s.id,"_blank"):i.go("app.callysquare.projects.edit",{id:s.id})):e.hide()}var s=this;s.projects=n,s.id="",s.newWindow=!0,s.closeDialog=o}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){delete d.project.id,i.squareProject.save(d.project).$promise.then(function(n){t.success({title:"Project properly created",msg:d.project.name?d.project.name+" has been created!":""}),e.hide(n),d.newWindow?o.open("/callysquare/projects/"+n.id,"_blank"):s.go("app.callysquare.projects.edit",{id:n.id})}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}]})}function l(){e.hide()}var d=this;d.project=angular.copy(n),d.project.name+="_new",d.project.preproduction=a,d.newWindow=!0,d.closeDialog=l,d.save=r}e.$inject=["$mdDialog","toasty","project","currentXML","api","$window","$state"],angular.module("app.callysquare").controller("MxGraphSaveProjectAsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v,b,f){function E(){new EditorUi(N,new Editor,document.getElementById("geEditor")).openString(N.project.preproduction,N.project.name,N.project)}function y(e,a){n.show({controller:"MxGraphDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{users:s.rows||[],trunks:r.rows||[],queues:l.rows||[],sounds:d.rows||[],variables:c.rows||[],databases:m.rows||[],contexts:u.rows||[],projects:p.rows||[],intervals:g.rows||[],mailAccounts:h.rows||[],templates:v.rows||[],lists:b.rows||[],cell:e,saveCallback:a}})}function A(e){n.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:e,projects:p.rows,openFromEditor:!0}})}function C(){n.show({controller:"MxGraphOpenProjectController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/open/open.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{projects:p.rows||[]}})}function x(e){n.show({controller:"MxGraphSaveProjectAsController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:N.project,currentXML:e}}).then(function(e){e&&p.rows.push(e)})}function T(e){n.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{variable:e,variables:c.rows}})}function S(e){n.show({controller:"MxGraphUpdateInfoController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/info/info.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:N.project}}).then(function(e){e&&_.merge(N.project,e)})}function O(e,a){n.show({controller:"MxGraphEditXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/edit/edit.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{currentXML:e,saveCallback:a}}).then(function(e){e&&(N.project.preproduction=e)})}function w(e){n.show({controller:"MxGraphImportXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/import/import.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{saveCallback:e}}).then(function(e){e&&(N.project.preproduction=e)})}function R(e,t){var n={preproduction:e};t&&(n.production=e),i.squareProject.update({id:N.project.id},n).$promise.then(function(e){a.success({title:"Project "+(t?"published":"saved")+"!",msg:N.project.name?N.project.name+" has been "+(t?"published":"saved")+"!":""}),N.project.preproduction=e.preproduction}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function I(){e.go("app.callysquare.projects")}var N=this;N.project=o||{},N.saveOrPublishProject=R,N.$onInit=E,N.openDialog=y,N.newProject=A,N.openProject=C,N.saveProjectAs=x,N.newVariable=T,N.updateInfo=S,N.editXML=O,N.importXML=w,N.gotoProjects=I}e.$inject=["$state","$document","$mdDialog","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","$window"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(e,n){t.go("app.callysquare.projects.edit",{id:e.id})}function m(e,t){var n=s.confirm().title("Are you sure want to delete the project?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete project").targetEvent(t).ok("OK").cancel("CANCEL");s.show(n).then(function(){h(e)},function(){console.log("CANCEL")})}function u(e){y.projects=e||{count:0,rows:[]}}function p(){y.query.offset=y.query.page-1,y.promise=i.squareProject.get(y.query,u).$promise}function g(e,t){s.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:t,projects:y.projects.rows,openFromEditor:null}})}function h(e){i.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(y.projects.rows,{id:e.id}),y.projects.count-=1,y.projects.rows.length||y.getProjects(),d.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){var e=_.clone(y.selectedProjects);return y.selectedProjects=[],e}function b(e){var t=s.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+y.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");s.show(t).then(function(){y.selectedProjects.forEach(function(e){h(e)}),y.selectedProjects=[]})}function f(){y.selectedProjects=[]}function E(){y.selectedProjects=y.projects.rows}var y=this;y.projects=a||{count:0,rows:[]},y.table="projects",y.listOrder="",y.listOrderAsc=null,y.selectedProjects=[],y.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},y.editstate=c,y.deleteconfirm=m,y.success=u,y.getProjects=p,y.createOrEditProject=g,y.deleteProject=h,y.exportSelectedProjects=v,y.deleteSelectedProjects=b,y.deselectProjects=f,y.selectAllProjects=E;var A=!0,C=1;e.$watch("vm.query.filter",function(e,t){A?l(function(){A=!1}):(t||(C=y.query.page),e!==t&&(y.query.page=1),e||(y.query.page=C),y.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","api","msUtils","$mdDialog","$document","$timeout","toasty"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.squareRecording.save(p.squareRecording).$promise.then(function(e){p.squareRecordings.unshift(e),i.success({title:"SquareRecording properly created",msg:p.squareRecording.name?p.squareRecording.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.squareRecording.update({id:p.squareRecording.id},p.squareRecording).$promise.then(function(e){var t=_.find(p.squareRecordings,{id:e.id});t&&_.merge(t,e),i.success({title:"SquareRecording properly saved!",msg:p.squareRecording.name?p.squareRecording.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.squareRecording.delete({id:p.squareRecording.id}).$promise.then(function(){_.remove(p.squareRecordings,{id:p.squareRecording.id}),i.success({title:"SquareRecording properly deleted!",msg:(p.squareRecording.name||"squareRecording")+" has been deleted!"}),u(p.squareRecording)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CALLYSQUARE.EDIT_SQUARERECORDING",p.squareRecording=angular.copy(s),p.squareRecordings=o,p.newSquareRecording=!1,p.squareRecording||(p.squareRecording={},p.title="CALLYSQUARE.NEW_SQUARERECORDING",p.newSquareRecording=!0),p.addNewSquareRecording=l,p.saveSquareRecording=d,p.deleteSquareRecording=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","squareRecordings","squareRecording","api"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,n){return l.squareRecording.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/square/recordings/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the squareRecording?").htmlContent("<b>"+(e.name||"squareRecording")+"</b> will be deleted.").ariaLabel("delete squareRecording").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.squareRecordings=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.squareRecording.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:t,squareRecordings:A.squareRecordings.rows}})}function v(e){l.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(A.squareRecordings.rows,{id:e.id}),A.squareRecordings.count-=1,A.squareRecordings.rows.length||A.getSquareRecordings(),c.success({title:"SquareRecording deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedSquareRecordings);return A.selectedSquareRecordings=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+A.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSquareRecordings.forEach(function(e){v(e)}),A.selectedSquareRecordings=[]})}function E(){A.selectedSquareRecordings=[]}function y(){A.selectedSquareRecordings=A.squareRecordings.rows}var A=this;A.squareRecordings=r||{count:0,rows:[]},A.table="squareRecordings",A.listOrder="",A.listOrderAsc=null,A.selectedSquareRecordings=[],A.query={fields:"createdAt,updatedAt,id,projectName,uniqueid,callerid,extension,audio,createdAt",sort:"-updatedAt",limit:10,page:1},A.downloadfile=m,A.deleteconfirm=u,A.success=p,A.getSquareRecordings=g,A.createOrEditSquareRecording=h,A.deleteSquareRecording=v,A.exportSelectedSquareRecordings=b,A.deleteSelectedSquareRecordings=f,A.deselectSquareRecordings=E,A.selectAllSquareRecordings=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","squareRecordings","api","msUtils","toasty"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the chatQueue?").htmlContent("<b>"+(e.name||"chatQueue")+"</b> will be deleted.").ariaLabel("delete chatQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.chatQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.chatQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:t,chatQueues:A.chatQueues.rows}})}function v(e){l.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.chatQueues.rows,{id:e.id}),A.chatQueues.count-=1,A.chatQueues.rows.length||A.getChatQueues(),c.success({title:"ChatQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedChatQueues);return A.selectedChatQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+A.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedChatQueues.forEach(function(e){v(e)}),A.selectedChatQueues=[]})}function E(){A.selectedChatQueues=[]}function y(){A.selectedChatQueues=A.chatQueues.rows}var A=this;A.chatQueues=r||{count:0,rows:[]},A.table="chatQueues",A.listOrder="",A.listOrderAsc=null,A.selectedChatQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"Round Robin Memory",value:"'roundrobun'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getChatQueues=g,A.createOrEditChatQueue=h,A.deleteChatQueue=v,A.exportSelectedChatQueues=b,A.deleteSelectedChatQueues=f,A.deselectChatQueues=E,A.selectAllChatQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chatQueues","api","msUtils","toasty"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatQueue.save(p.chatQueue).$promise.then(function(e){p.chatQueues.unshift(e),i.success({title:"ChatQueue properly created",msg:p.chatQueue.name?p.chatQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.chatQueue.update({id:p.chatQueue.id},p.chatQueue).$promise.then(function(e){var t=_.find(p.chatQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"ChatQueue properly saved!",msg:p.chatQueue.name?p.chatQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.chatQueue.delete({id:p.chatQueue.id}).$promise.then(function(){_.remove(p.chatQueues,{id:p.chatQueue.id}),i.success({title:"ChatQueue properly deleted!",msg:(p.chatQueue.name||"chatQueue")+" has been deleted!"}),u(p.chatQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CHAT.EDIT_CHATQUEUE",p.chatQueue=angular.copy(s),p.chatQueues=o,p.newChatQueue=!1,p.chatQueue||(p.chatQueue={strategy:"beepall"},p.title="CHAT.NEW_CHATQUEUE",p.newChatQueue=!0),p.addNewChatQueue=l,p.saveChatQueue=d,p.deleteChatQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","chatQueues","chatQueue","api"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.chatQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("CHAT.ALL_TEAMS"),labelSelected:i.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,a){n.chatQueue[a?"removeTeams":"addTeams"]({id:s.chatQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:chatQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.chatQueue.getTeams({id:s.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","chatQueue","$translate"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:d.chatQueues?d.chatQueues.rows:[]}})}function r(){e.go("app.chat.chatQueues")}function l(){i.chatQueue.update({id:d.chatQueue.id},d.chatQueue).$promise.then(function(){a.success({title:"ChatQueue updated!",msg:d.chatQueue.name?d.chatQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.chatQueue=e.params.chatQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoChatQueues=r,d.saveChatQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","chatQueue"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the chatWebsite?").htmlContent("<b>"+(e.name||"chatWebsite")+"</b> will be deleted.").ariaLabel("delete chatWebsite").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.chatWebsites=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.chatWebsite.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:t,chatWebsites:A.chatWebsites.rows}})}function v(e){l.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(A.chatWebsites.rows,{id:e.id}),A.chatWebsites.count-=1,A.chatWebsites.rows.length||A.getChatWebsites(),c.success({title:"ChatWebsite deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedChatWebsites);return A.selectedChatWebsites=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+A.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedChatWebsites.forEach(function(e){v(e)}),A.selectedChatWebsites=[]})}function E(){A.selectedChatWebsites=[]}function y(){A.selectedChatWebsites=A.chatWebsites.rows}var A=this;A.chatWebsites=r||{count:0,rows:[]},A.table="chatWebsites",A.listOrder="",A.listOrderAsc=null,A.selectedChatWebsites=[],A.query={fields:"createdAt,updatedAt,id,name,address,remote,ListId,fidelity,timeout,description,color,color_focus,color_button,header_shape,animation,defaultWhiteLabel,whiteLabel,defaultLogo,download_transcript,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,OfflineTemplateId,name_title,username_placeholder,email_title,email_placeholder,header_online,online_message,start_chat_button,agents_busy,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getChatWebsites=g,A.createOrEditChatWebsite=h,A.deleteChatWebsite=v,A.exportSelectedChatWebsites=b,A.deleteSelectedChatWebsites=f,A.deselectChatWebsites=E,A.selectAllChatWebsites=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chatWebsites","api","msUtils","toasty"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatWebsite.save(p.chatWebsite).$promise.then(function(e){p.chatWebsites.unshift(e),i.success({title:"ChatWebsite properly created",msg:p.chatWebsite.name?p.chatWebsite.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.chatWebsite.update({id:p.chatWebsite.id},p.chatWebsite).$promise.then(function(e){var t=_.find(p.chatWebsites,{id:e.id});t&&_.merge(t,e),i.success({title:"ChatWebsite properly saved!",msg:p.chatWebsite.name?p.chatWebsite.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.chatWebsite.delete({id:p.chatWebsite.id}).$promise.then(function(){_.remove(p.chatWebsites,{id:p.chatWebsite.id}),i.success({title:"ChatWebsite properly deleted!",msg:(p.chatWebsite.name||"chatWebsite")+" has been deleted!"}),u(p.chatWebsite)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CHAT.EDIT_CHATWEBSITE",p.chatWebsite=angular.copy(s),p.chatWebsites=o,p.newChatWebsite=!1,p.chatWebsite||(p.chatWebsite={remote:n.protocol()+"://"+n.host()+":"+n.port(),header_shape:"rounded"},p.title="CHAT.NEW_CHATWEBSITE",p.newChatWebsite=!0),p.addNewChatWebsite=l,p.saveChatWebsite=d,p.deleteChatWebsite=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","chatWebsites","chatWebsite","api"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.chatWebsite=e,h.query.id=h.chatWebsite.id,h.query.ChatWebsiteId=h.chatWebsite.id,h.getChatWebsiteChatDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the chatDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete chatDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.chatWebsiteChatDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.chatWebsite.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditChatDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatDisposition:t,chatDispositions:h.chatWebsiteChatDispositions.rows}})}function p(e){r.chatDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.chatWebsiteChatDispositions.rows,{id:e.id}),h.chatWebsiteChatDispositions.count-=1,h.chatWebsiteChatDispositions.rows.length||h.getChatWebsiteChatDispositions(),s.success({title:"ChatDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected chatDispositions?").htmlContent("<b>"+h.selectedChatWebsiteChatDispositions.length+" selected</b> will be deleted.").ariaLabel("delete chatDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedChatWebsiteChatDispositions.forEach(function(e){p(e)}),h.selectedChatWebsiteChatDispositions=[]})}var h=this;h.chatWebsite={},h.chatWebsiteChatDispositions={count:0,rows:[]},h.selectedChatWebsiteChatDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getChatWebsiteChatDispositions=m,h.createOrEditChatWebsiteChatDisposition=u,h.deleteChatWebsiteChatDisposition=p,h.deleteSelectedChatWebsiteChatDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getChatWebsiteChatDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.chat").controller("ChatWebsiteChatDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.chatDisposition.save(p.chatDisposition).$promise.then(function(e){p.chatDispositions.unshift(e),i.success({title:"ChatDisposition properly created",msg:p.chatDisposition.name?p.chatDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.chatDisposition.update({id:p.chatDisposition.id},p.chatDisposition).$promise.then(function(e){var t=_.find(p.chatDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"ChatDisposition properly saved!",msg:p.chatDisposition.name?p.chatDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.chatDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The chatDisposition will be deleted.").ariaLabel("Delete ChatDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.chatDisposition.delete({id:p.chatDisposition.id}).$promise.then(function(){_.remove(p.chatDispositions,{id:p.chatDisposition.id}),i.success({title:"ChatDisposition properly deleted!",msg:(p.chatDisposition.name||"chatDisposition")+" has been deleted!"}),u(p.chatDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.chatDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CHAT.EDIT_CHATDISPOSITION",p.chatDisposition=angular.copy(s),p.chatDispositions=o,p.newChatDisposition=!1,p.chatDisposition||(p.chatDisposition={},p.title="CHAT.NEW_CHATDISPOSITION",p.newChatDisposition=!0),t.params.id&&(p.chatDisposition.ChatWebsiteId=t.params.id),p.addNewChatDisposition=l,p.saveChatDisposition=d,p.deleteChatDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","chatDispositions","chatDisposition","api"],angular.module("app.chat").controller("CreateOrEditChatDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.chat.chatWebsites")}function r(){i.chatWebsite.update({id:l.chatWebsite.id},l.chatWebsite).$promise.then(function(){a.success({title:"ChatWebsite updated!",msg:l.chatWebsite.name?l.chatWebsite.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.chatWebsite=e.params.chatWebsite||o||{},l.selectedTab=e.params.tab||0,l.gotoChatWebsites=s,l.saveChatWebsite=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.template.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","chatWebsite"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.contactmanager.companies.edit",{id:e.id,company:e})}function u(e,t){n.go("app.contactmanager.contacts",{CompanyId:e.id})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the company?").htmlContent("<b>"+(e.name||"company")+"</b> will be deleted.").ariaLabel("delete company").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.companies=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.cmCompany.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{company:t,companies:C.companies.rows}})}function b(e){l.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(C.companies.rows,{id:e.id}),C.companies.count-=1,C.companies.rows.length||C.getCompanies(),c.success({title:"Company deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedCompanies);return C.selectedCompanies=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+C.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedCompanies.forEach(function(e){b(e)}),C.selectedCompanies=[]})}function y(){C.selectedCompanies=[]}function A(){C.selectedCompanies=C.companies.rows}var C=this;C.companies=r||{count:0,rows:[]},C.table="companies",C.listOrder="",C.listOrderAsc=null,C.selectedCompanies=[],C.query={fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,page:1},C.editstate=m,C.gotocontactsgoto=u,C.deleteconfirm=p,C.success=g,C.getCompanies=h,C.createOrEditCompany=v,C.deleteCompany=b,C.exportSelectedCompanies=f,C.deleteSelectedCompanies=E,C.deselectCompanies=y,C.selectAllCompanies=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","companies","api","msUtils","toasty"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmCompany.save(p.company).$promise.then(function(e){p.companies.unshift(e),i.success({title:"Company properly created",msg:p.company.name?p.company.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmCompany.update({id:p.company.id},p.company).$promise.then(function(e){var t=_.find(p.companies,{id:e.id});t&&_.merge(t,e),i.success({title:"Company properly saved!",msg:p.company.name?p.company.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmCompany.delete({id:p.company.id}).$promise.then(function(){_.remove(p.companies,{id:p.company.id}),i.success({title:"Company properly deleted!",msg:(p.company.name||"company")+" has been deleted!"}),u(p.company)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_COMPANY",p.company=angular.copy(s),p.companies=o,p.newCompany=!1,p.company||(p.company={},p.title="CONTACTMANAGER.NEW_COMPANY",p.newCompany=!0),p.addNewCompany=l,p.saveCompany=d,p.deleteCompany=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","companies","company","api"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(t,n){e.go("app.contactmanager.contacts",{CompanyId:t.id})}function r(){e.go("app.contactmanager.companies")}function l(){i.cmCompany.update({id:d.company.id},d.company).$promise.then(function(){a.success({title:"Company updated!",msg:d.company.name?d.company.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.company=e.params.company||o||{},d.selectedTab=e.params.tab||0,d.gotogoto=s,d.gotoCompanies=r,d.saveCompany=l}e.$inject=["$state","$mdDialog","$document","toasty","api","company"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){function p(e){var t=i.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(function(e){if(e)return o.cmList.save({name:e});m.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(N.lists.rows.push(e),m.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})}function g(){return u.hasPermission(303)||u.hasRole("admin")}function h(e){var t=i.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(function(e){if(e)return o.cmCompany.save({name:e});m.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(N.companies.rows.push(e),m.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})}function v(e){var t=i.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(function(e){if(e)return o.tag.save({name:e});m.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(N.tags.rows.push(e),m.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})}function b(e,n,a){N.disableDialog=!1,Papa.parse(n.file,{skipEmptyLines:!0,header:!0,woerker:!0,complete:function(n){a.files=[],N.disableDialog=!0,i.show({controller:"UploadContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/upload/upload.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!1,locals:{lists:r,companies:d,contacts:n.data,fields:n.meta.fields}}).then(function(){N.getContacts()}).catch(function(e){console.error()})}})}function f(e,t){a.go("app.contactmanager.contacts.edit",{id:e.id})}function E(e,t){var n=i.confirm().title("Are you sure want to delete the contact?").htmlContent("<b>"+(e.firstName||e.email||e.phone||"Contact")+"</b> will be deleted.").ariaLabel("delete contact").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){S(e)})}function y(e){N.contacts=e||{count:0,rows:[]}}function A(){N.query.offset=(N.query.page-1)*N.query.limit,N.promise=o.cmContact.get(N.query,y).$promise}function C(e,n){n&&n.dateOfBirth&&(n.dateOfBirth=new Date(n.dateOfBirth)),i.show({controller:"CreateOrEditContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{ListId:N.query.ListId||a.params.ListId,CompanyId:N.query.CompanyId||a.params.CompanyId,contact:n,contacts:N.contacts.rows},resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}],companies:["apiResolver",function(e){return e.resolve("cmCompany@get",{fields:"id,name"})}]}})}function x(e,n){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:N.contacts.rows}})}function T(e,n){i.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:N.contacts.rows}})}function S(e){o.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(N.contacts.rows,{id:e.id}),N.contacts.count-=1,N.contacts.rows.length||N.getContacts(),m.success({title:"Contact deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){m.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function O(){var e=_.clone(N.selectedContacts);return N.selectedContacts=[],e}function w(e){var t=i.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+N.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){N.selectedContacts.forEach(function(e){S(e)}),N.selectedContacts=[]})}function R(){N.selectedContacts=[]}function I(){N.selectedContacts=N.contacts.rows}var N=this;u.getCurrentUser();N.contacts=s||{count:0,rows:[]},N.options={hidden:!1,hover:!1,isOpen:!1},N.table="cm_contacts",N.listOrder="",N.listOrderAsc=null,N.disableDialog=!0,N.selectedContacts=[],N.lists=r||{rows:[],count:0},N.companies=d||{rows:[],count:0},N.tags=c||{rows:[],count:0},N.listsMap=l,N.selectedTags=[],N.selectedList=null,N.selectedCompany=null,N.query={fields:"id,firstName,lastName,phone,email,updatedAt",sort:"-updatedAt",limit:10,page:1},N.editdialog=f,N.deleteconfirm=E,N.success=y,N.getContacts=A,N.mergeContact=T,N.duplicateContact=x,N.createOrEditContact=C,N.deleteContact=S,N.exportSelectedContacts=O,N.deleteSelectedContacts=w,N.deselectContacts=R,N.selectAllContacts=I,N.createTag=v,N.createList=p,N.createCompany=h,N.uploadContacts=b,N.hasPermission=g,a.params.ListId&&(N.selectedList=a.params.ListId),a.params.CompanyId&&(N.selectedCompany=a.params.CompanyId),e.$watch("vm.options.isOpen",function(t){t?n(function(){e.tooltipVisible=N.options.isOpen},600):e.tooltipVisible=N.options.isOpen});var D=!0,L=1;e.$watch("vm.query.filter",function(e,t){D?n(function(){D=!1}):(t||(L=N.query.page),e!==t&&(N.query.page=1),e||(N.query.page=L),N.getContacts())},!0),e.$watch("vm.selectedList",function(e,t){e!==t&&(N.query.ListId=N.selectedList||void 0,N.getContacts())}),e.$watch("vm.selectedCompany",function(e,t){e!==t&&(N.query.CompanyId=N.selectedCompany||void 0,N.getContacts())}),e.$watch("vm.selectedTags",function(e,t){(e.length||t.length)&&(N.query.tags=N.selectedTags.length?N.selectedTags.join():void 0,N.getContacts())})}e.$inject=["$scope","$document","$timeout","$state","$mdDialog","api","contacts","lists","listsMap","companies","tags","toasty","Auth"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(){h.errors=[],l.cmContact.save(h.contact).$promise.then(function(e){h.contacts.unshift(e),t.success({title:"Contact properly created",msg:h.contact.name?h.contact.name+" has been created!":""}),g()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contacts.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){h.errors=[],l.cmContact.update({id:h.contact.id},h.contact).$promise.then(function(e){var n=_.find(h.contacts,{id:e.id});n&&_.merge(n,e),t.success({title:"Contact properly saved!",msg:h.contact.name?h.contact.name+" has been saved!":""}),g()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function m(e){if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){e&&(h.customFields=e)}).catch(function(e){console.error(e)});h.customFields={rows:[],count:0}}function u(n){h.errors=[];var a=e.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(n);e.show(a).then(function(){l.cmContact.delete({id:h.contact.id}).$promise.then(function(){_.remove(h.contacts,{id:h.contact.id}),t.success({title:"Contact properly deleted!",msg:h.contact.name?h.contact.name+" has been deleted!":""}),g()}).catch(function(e){console.error(e),h.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})}function p(e){return new Date(e)}function g(){e.hide()}var h=this;h.errors=[],h.title="CONTACTMANAGER.EDIT_CONTACT",h.contact=angular.copy(o),h.contacts=n||{rows:[],count:0},h.lists=a||{rows:[],count:0},h.companies=i||{rows:[],count:0},h.customFields={rows:[],count:0},h.newContact=!1,h.contact?(delete h.contact.List,h.ListId=h.contact.ListId||void 0):(h.contact={ListId:s?parseInt(s,10):void 0,CompanyId:r?parseInt(r,10):void 0},h.title="CONTACTMANAGER.NEW_CONTACT",h.newContact=!0),h.addNewContact=d,h.saveContact=c,h.deleteContact=u,h.closeDialog=g,h.getCustomFields=m,h.getDateFromString=p}e.$inject=["$mdDialog","toasty","contacts","lists","companies","contact","ListId","CompanyId","api"],angular.module("app.tools").controller("CreateOrEditContactDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){l.errors=[],delete l.contact.id,o.cmContact.save(l.contact).$promise.then(function(e){a.unshift(e),t.success({title:"Contact properly created",msg:l.contact.name?l.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),l.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})}function r(){e.hide()}var l=this;l.errors=[],l.title="CONTACTMANAGER.COPY_CONTACT",l.contact=angular.copy(n),l.lists=i||{rows:[],count:0},l.addNewContact=s,l.closeDialog=r}e.$inject=["$mdDialog","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("DuplicateContactDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){m.errors=[],r.cmHopper.update({id:m.hopper.id},m.hopper).$promise.then(function(e){var t=_.find(m.hoppers,{id:e.id});t&&_.merge(t,e),i.success({title:"Hopper properly saved!",msg:m.hopper.name?m.hopper.name+" has been saved!":""}),c(e)}).catch(function(e){console.error(e),m.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})}function d(e){return new Date(e)}function c(e){a.hide(e)}var m=this;m.errors=[],m.title="CONTACTMANAGER.EDIT_HOPPER",m.hopper=angular.copy(s),m.hoppers=o,m.newHopper=!1,m.hopper||(m.hopper={},m.title="CONTACTMANAGER.NEW_HOPPER",m.newHopper=!0),m.saveHopper=l,m.getDateFromString=d,m.closeDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v){function b(e){return function(t){L[e]=t||{count:0,rows:[]}}}function f(e,t){i.show({controller:"EditHopperDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:L.hoppers.rows}})}function E(e,t){var n=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(e.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){y(e)},function(){console.log("CANCEL")})}function y(e){return s.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(L.hoppers.rows,{id:e.id}),L.hoppers.count--,L.hoppers.rows.length||L.getHoppers(),o.success({title:"Hopper deleted!",msg:e.phone?e.phone+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEhopper",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){L.queryHopper.offset=(L.queryHopper.page-1)*L.queryHopper.limit,L.queryHopper.id=L.contact.id,L.promise=s.cmContact.getHoppers(L.queryHopper,b("hoppers")).$promise}function C(){L.queryFinal.offset=(L.queryFinal.page-1)*L.queryFinal.limit,L.queryFinal.id=L.contact.id,L.promise=s.cmContact.getHopperFinals(L.queryFinal,b("finals")).$promise}function x(){L.queryHistory.offset=(L.queryHistory.page-1)*L.queryHistory.limit,L.queryHistory.id=L.contact.id,L.promise=s.cmContact.getHopperHistories(L.queryHistory,b("histories")).$promise}function T(){L.queryJscriptySession.offset=(L.queryJscriptySession.page-1)*L.queryJscriptySession.limit,L.queryJscriptySession.id=L.contact.id,L.promise=s.cmContact.getJscriptySessions(L.queryJscriptySession,b("jscriptySessions")).$promise}function S(e){if(L.contact.ListId){var t=i.confirm().title("You are selecting the list number: "+L.contact.ListId).textContent("Warning! You won't select a different list for the contact "+L.contact.firstName||L.contact.lastName||L.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(t).then(L.onSelectListSuccess).catch(function(){L.contact.ListId=null})}}function O(){return s.cmList.getCustomFields({id:L.contact.ListId}).$promise.then(function(e){L.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})}function w(e,t){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{companies:[]},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:t})}]}})}function R(e){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,resolve:{lists:["apiResolver",function(e){return e.resolve("cmList@get",{fields:"id,name"})}]},locals:{contacts:m.rows,contact:r}})}function I(){s.cmContact.update({id:L.contact.id},L.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:L.contact.name?L.contact.name+" has been updated!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})}function N(e){return new Date(e)}function D(){n.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})}var L=this;L.contact=r||{},L.hoppers=l||{rows:[],count:0},L.finals=d||{rows:[],count:0},L.histories=c||{rows:[],count:0},L.companies=u||{rows:[],count:0},L.lists=p||{rows:[],count:0},L.customFields=g||{rows:[],count:0},L.tags=h||{rows:[],count:0},L.jscriptySessions=v||{rows:[],count:0},L.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},L.queryFinal={fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,page:1},L.queryHistory={fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},L.queryJscriptySession={fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,page:1},L.selectedTab=n.params.tab||0,L.gotoContacts=D,L.duplicateContact=R,L.saveContact=I,L.editCompany=w,L.onSelectList=S,L.onSelectListSuccess=O,L.getDateFromString=N,L.getHoppers=A,L.getFinals=C,L.getHistories=x,L.getJscriptySessions=T,L.deleteconfirm=E,L.editHopper=f;var k=!0,M=1;e.$watch("vm.queryHopper.filter",function(e,n){k?t(function(){k=!1}):(n||(M=L.queryHopper.page),e!==n&&(L.queryHopper.page=1),e||(L.queryHopper.page=M),L.getHoppers())}),e.$watch("vm.queryFinal.filter",function(e,n){k?t(function(){k=!1}):(n||(M=L.queryFinal.page),e!==n&&(L.queryFinal.page=1),e||(L.queryFinal.page=M),L.getFinals())}),e.$watch("vm.queryHistory.filter",function(e,n){k?t(function(){k=!1}):(n||(M=L.queryHistory.page),e!==n&&(L.queryHistory.page=1),e||(L.queryHistory.page=M),L.getHistories())})}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags","jscriptySessions"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(t,a,o){_.remove(d.contacts,{id:a.id});var r=e.confirm().title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+o.id+" will be overwritten by the fields of the contact #"+a.id+".").targetEvent(t).ok("Ok").cancel("Cancel");e.show(r).then(function(){var e=a.id,t=o.id,r=_.mergeWith(a,o,function(e,t){return Array.isArray(t)&&!t.length?e:t||e});s.cmContact.update({id:r.id},r).$promise.then(function(){return s.cmContact.delete({id:e})}).then(function(){_.remove(i,{id:e}),_.merge(_.find(i,{id:t}),r),n.success({title:"Contact properly merged!"})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:MERGE_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})})})}function l(){e.hide()}var d=this;d.errors=[],d.title="CONTACTMANAGER.MERGE_CONTACT",d.contact=angular.copy(a),d.lists=o||[],d.change=function(){d.searchTerm?s.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:d.searchTerm,ListId:a.ListId}).$promise.then(function(e){d.contacts=e.rows}).catch(function(e){console.error(e)}):d.contacts=[]},d.showConfirm=r,d.closeDialog=l}e.$inject=["$mdDialog","$scope","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("MergeContactDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){return d.cmList.getCustomFields({id:g.ListId}).$promise.then(function(e){g.customFields=e}).catch(function(e){console.error(e)})}function m(){g.uploading=!0,u(g.contacts.length-1)}function u(e){if(e<0)return g.stop=!0,void(g.uploading=!1);for(var t=[];e>=0&&t.length<h;){var n={};for(var a in g.binding)g.binding.hasOwnProperty(a)&&(n[a]=g.contacts[e][g.binding[a]]),n.ListId=g.ListId,n.CompanyId=g.CompanyId,n.duplicates=g.duplicates;t.push(n),e--}return d.cmContact.bulkCreate(t).$promise.then(function(e){g.successAmount+=e.success,g.failureAmount+=e.failure,g.duplicatesAmount+=e.duplicates}).catch(function(e){console.error(e)}).finally(function(){u(e)})}function p(){t.hide()}var g=this,h=50;g.successAmount=0,g.failureAmount=0,g.duplicatesAmount=0,g.uploading=!1,g.stop=!1,g.contactFields=[{key:"firstName",required:!0},{key:"lastName",required:!1},{key:"phone",required:!0},{key:"mobile",required:!1},{key:"email",required:!1},{key:"dateOfBirth",required:!1},{key:"country",required:!1},{key:"city",required:!1},{key:"street",required:!1},{key:"postalCode",required:!1},{key:"fax",required:!1}],g.contacts=s,g.binding={},g.fields=r,g.lists=i||{rows:[],count:0},g.companies=o||{rows:[],count:0},g.customFields={rows:[],count:0},g.closeDialog=p,g.onChangeList=c,g.upload=m}e.$inject=["$cookies","$mdDialog","$interval","$q","lists","companies","contacts","fields","toasty","api"],angular.module("app.tools").controller("UploadContactsDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmCustomField.save(p.globalCustomField).$promise.then(function(e){p.globalCustomFields.unshift(e),i.success({title:"GlobalCustomField properly created",msg:p.globalCustomField.name?p.globalCustomField.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmCustomField.update({id:p.globalCustomField.id},p.globalCustomField).$promise.then(function(e){var t=_.find(p.globalCustomFields,{id:e.id});t&&_.merge(t,e),i.success({title:"GlobalCustomField properly saved!",msg:p.globalCustomField.name?p.globalCustomField.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmCustomField.delete({id:p.globalCustomField.id}).$promise.then(function(){_.remove(p.globalCustomFields,{id:p.globalCustomField.id}),i.success({title:"GlobalCustomField properly deleted!",msg:(p.globalCustomField.name||"globalCustomField")+" has been deleted!"}),u(p.globalCustomField)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",p.globalCustomField=angular.copy(s),p.globalCustomFields=o,p.newGlobalCustomField=!1,p.globalCustomField||(p.globalCustomField={type:"text"},p.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",p.newGlobalCustomField=!0),p.addNewGlobalCustomField=l,p.saveGlobalCustomField=d,p.deleteGlobalCustomField=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","globalCustomFields","globalCustomField","api"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{globalCustomField:e,globalCustomFields:A.globalCustomFields.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the globalCustomField?").htmlContent("<b>"+(e.name||"globalCustomField")+"</b> will be deleted.").ariaLabel("delete globalCustomField").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.globalCustomFields=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.cmCustomField.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{globalCustomField:t,globalCustomFields:A.globalCustomFields.rows}})}function v(e){l.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(A.globalCustomFields.rows,{id:e.id}),A.globalCustomFields.count-=1,A.globalCustomFields.rows.length||A.getGlobalCustomFields(),c.success({title:"GlobalCustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCustomField",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedGlobalCustomFields);return A.selectedGlobalCustomFields=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+A.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedGlobalCustomFields.forEach(function(e){v(e)}),A.selectedGlobalCustomFields=[]})}function E(){A.selectedGlobalCustomFields=[]}function y(){A.selectedGlobalCustomFields=A.globalCustomFields.rows}var A=this;A.globalCustomFields=r||{count:0,rows:[]},A.table="globalCustomFields",A.listOrder="",A.listOrderAsc=null,A.selectedGlobalCustomFields=[],A.query={fields:"createdAt,updatedAt,id,alias,type,values,required",sort:"-updatedAt",ListId:"null",limit:10,page:1},A.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getGlobalCustomFields=g,A.createOrEditGlobalCustomField=h,A.deleteGlobalCustomField=v,A.exportSelectedGlobalCustomFields=b,A.deleteSelectedGlobalCustomFields=f,A.deselectGlobalCustomFields=E,A.selectAllGlobalCustomFields=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","globalCustomFields","api","msUtils","toasty"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmList.save(p.list).$promise.then(function(e){p.lists.unshift(e),i.success({title:"List properly created",msg:p.list.name?p.list.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmList.update({id:p.list.id},p.list).$promise.then(function(e){var t=_.find(p.lists,{id:e.id});t&&_.merge(t,e),i.success({title:"List properly saved!",msg:p.list.name?p.list.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmList.delete({id:p.list.id}).$promise.then(function(){_.remove(p.lists,{id:p.list.id}),i.success({title:"List properly deleted!",msg:(p.list.name||"list")+" has been deleted!"}),u(p.list)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_LIST",p.list=angular.copy(s),p.lists=o,p.newList=!1,p.list||(p.list={},p.title="CONTACTMANAGER.NEW_LIST",p.newList=!0),p.addNewList=l,p.saveList=d,p.deleteList=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","lists","list","api"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){return n.cmList[c.isVoiceRealtime()?"getMembers":"getAgents"]({id:c.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return c.isVoiceRealtime()?c.selectedItems=e.rows?_.map(e.rows,function(e){return e.id=e.UserId,e.fullname=e.membername,e.penalty=e.hasOwnProperty("penalty")?"penalty "+e.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[]:c.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserList?"penalty "+e.UserList.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.selectedItems=c.selectedItems,n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserList?"penalty "+e.UserList.penalty:"",e.internal=e.internal?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.items=_.differenceBy(c.items,c.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function l(){return o}function d(){e.hide()}var c=this;c.list=a,c.penalty=0,c.items=[],c.selectedItems=[],c.closeDialog=d,c.isVoiceRealtime=l,c.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:"internal",line3:"penalty",labelAll:s.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:s.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,a){n.cmList[a?"removeAgents":"addAgents"]({id:c.list.id,ids:_.map(e,c.isVoiceRealtime()&&a?"UserId":"id"),penalty:c.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"}),a||r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:cmList.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},r()}e.$inject=["$mdDialog","toasty","api","list","lists","realtime","$translate"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.list=e,h.query.id=h.list.id,h.query.ListId=h.list.id,h.getListCustomFields()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.listCustomFields=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.cmList.getCustomFields(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{customField:t,customFields:h.listCustomFields.rows}})}function p(e){r.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(h.listCustomFields.rows,{id:e.id}),h.listCustomFields.count-=1,h.listCustomFields.rows.length||h.getListCustomFields(),s.success({title:"CustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+h.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedListCustomFields.forEach(function(e){p(e)}),h.selectedListCustomFields=[]})}var h=this;h.list={},h.listCustomFields={count:0,rows:[]},h.selectedListCustomFields=[],h.query={fields:"createdAt,updatedAt,id,alias,type,values,required",limit:10,page:1},h.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.init=l,h.deleteConfirm=d,h.success=c,h.getListCustomFields=m,h.createOrEditListCustomField=u,h.deleteListCustomField=p,h.deleteSelectedListCustomFields=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getListCustomFields())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmList.addCustomField({id:t.params.id},p.customField).$promise.then(function(e){p.customFields.unshift(e),i.success({title:"CustomField properly created",msg:p.customField.name?p.customField.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmCustomField.update({id:p.customField.id},p.customField).$promise.then(function(e){var t=_.find(p.customFields,{id:e.id});t&&_.merge(t,e),i.success({title:"CustomField properly saved!",msg:p.customField.name?p.customField.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmCustomField.delete({id:p.customField.id}).$promise.then(function(){_.remove(p.customFields,{id:p.customField.id}),i.success({title:"CustomField properly deleted!",msg:(p.customField.name||"customField")+" has been deleted!"}),u(p.customField)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",p.customField=angular.copy(s),p.customFields=o,p.newCustomField=!1,p.customField||(p.customField={type:"text"},p.title="CONTACTMANAGER.NEW_CUSTOMFIELD",p.newCustomField=!0),t.params.id&&(p.customField.ListId=t.params.id),e.$watch("vm.customField.type",function(e,t){if(e!==t)switch(e){case"text":p.customField.values="";break;case"select":p.customField.values=[]}}),p.addNewCustomField=l,p.saveCustomField=d,p.deleteCustomField=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","customFields","customField","api"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(t,n){e.go("app.contactmanager.contacts",{ListId:t.id})}function r(e,a){t.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{list:e,lists:c.lists?c.lists.rows:[],realtime:!1}})}function l(){e.go("app.contactmanager.lists")}function d(){i.cmList.update({id:c.list.id},c.list).$promise.then(function(){a.success({title:"List updated!",msg:c.list.name?c.list.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.list=e.params.list||o||{},c.selectedTab=e.params.tab||0,c.gotogoto=s,c.agentadddialog=r,c.gotoLists=l,c.saveList=d}e.$inject=["$state","$mdDialog","$document","toasty","api","list"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.list=e,h.query.id=h.list.id,h.query.ListId=h.list.id,h.getListVoiceDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the voiceDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete voiceDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.listVoiceDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.cmList.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditVoiceDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/voiceDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceDisposition:t,voiceDispositions:h.listVoiceDispositions.rows}})}function p(e){r.voiceDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.listVoiceDispositions.rows,{id:e.id}),h.listVoiceDispositions.count-=1,h.listVoiceDispositions.rows.length||h.getListVoiceDispositions(),s.success({title:"VoiceDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected voiceDispositions?").htmlContent("<b>"+h.selectedListVoiceDispositions.length+" selected</b> will be deleted.").ariaLabel("delete voiceDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedListVoiceDispositions.forEach(function(e){p(e)}),h.selectedListVoiceDispositions=[]})}var h=this;h.list={},h.listVoiceDispositions={count:0,rows:[]},h.selectedListVoiceDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getListVoiceDispositions=m,h.createOrEditListVoiceDisposition=u,h.deleteListVoiceDisposition=p,h.deleteSelectedListVoiceDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getListVoiceDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.contactmanager").controller("ListVoiceDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceDisposition.save(p.voiceDisposition).$promise.then(function(e){p.voiceDispositions.unshift(e),i.success({title:"VoiceDisposition properly created",msg:p.voiceDisposition.name?p.voiceDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceDisposition.update({id:p.voiceDisposition.id},p.voiceDisposition).$promise.then(function(e){var t=_.find(p.voiceDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"VoiceDisposition properly saved!",msg:p.voiceDisposition.name?p.voiceDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The voiceDisposition will be deleted.").ariaLabel("Delete VoiceDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceDisposition.delete({id:p.voiceDisposition.id}).$promise.then(function(){_.remove(p.voiceDispositions,{id:p.voiceDisposition.id}),i.success({title:"VoiceDisposition properly deleted!",msg:(p.voiceDisposition.name||"voiceDisposition")+" has been deleted!"}),u(p.voiceDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="CONTACTMANAGER.EDIT_VOICEDISPOSITION",p.voiceDisposition=angular.copy(s),p.voiceDispositions=o,p.newVoiceDisposition=!1,p.voiceDisposition||(p.voiceDisposition={},p.title="CONTACTMANAGER.NEW_VOICEDISPOSITION",p.newVoiceDisposition=!0),t.params.id&&(p.voiceDisposition.ListId=t.params.id),p.addNewVoiceDisposition=l,p.saveVoiceDisposition=d,p.deleteVoiceDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","voiceDispositions","voiceDisposition","api"],angular.module("app.contactmanager").controller("CreateOrEditVoiceDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.contactmanager.lists.edit",{id:e.id,list:e})}function u(e,t){n.go("app.contactmanager.contacts",{ListId:e.id})}function p(e,n){var a=t.document.createElement("a");a.href="/api/cm/lists/"+e.id+"/contacts/csv",a.target="_self",a.click()}function g(e,t){i.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{list:e,lists:T.lists?T.lists.rows:[],realtime:!1}})}function h(e,t){var n=i.confirm().title("Are you sure want to delete the list?").htmlContent("<b>"+(e.name||"list")+"</b> will be deleted.").ariaLabel("delete list").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){E(e)},function(){console.log("CANCEL")})}function v(e){T.lists=e||{count:0,rows:[]}}function b(){T.query.offset=(T.query.page-1)*T.query.limit,T.promise=l.cmList.get(T.query,v).$promise}function f(e,t){i.show({controller:"CreateOrEditListDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:t,lists:T.lists.rows}})}function E(e){l.cmList.delete({id:e.id}).$promise.then(function(){_.remove(T.lists.rows,{id:e.id}),T.lists.count-=1,T.lists.rows.length||T.getLists(),c.success({title:"List deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}function y(){var e=_.clone(T.selectedLists);return T.selectedLists=[],e}function A(e){var t=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+T.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){T.selectedLists.forEach(function(e){E(e)}),T.selectedLists=[]})}function C(){T.selectedLists=[]}function x(){T.selectedLists=T.lists.rows}var T=this;T.lists=r||{count:0,rows:[]},T.table="lists",T.listOrder="",T.listOrderAsc=null,T.selectedLists=[],T.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},T.editstate=m,T.gotocontactsgoto=u,T.exportcsvcontactsexport=p,T.agentadddialog=g,T.deleteconfirm=h,T.success=v,T.getLists=b,T.createOrEditList=f,T.deleteList=E,T.exportSelectedLists=y,T.deleteSelectedLists=A,T.deselectLists=C,T.selectAllLists=x;var S=!0,O=1;e.$watch("vm.query.filter",function(e,t){S?s(function(){S=!1}):(t||(O=T.query.page),e!==t&&(T.query.page=1),e||(T.query.page=O),T.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","lists","api","msUtils","toasty"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p){function g(e){e.id=_.random(1e10),e.openedAt=new Date,e.saved=!1;var t=C.tabs.length;C.tabs.push(e),C.currentTab=x+t}function h(e,t){var n={type:"contact",title:e?e.firstName||e.phone:i.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",contact:e,userLists:c,lists:m,companies:u,tags:p,calls:t?[t]:[]};if(e){var a=_.findLastIndex(C.tabs,function(t){return"contact"===t.type&&t.contact&&t.contact.id===e.id});if(a<0){if(e.ListId)return r.cmList.getDispositions({id:e.ListId}).$promise.then(function(t){return n.dispositions=t,r.cmList.getCustomFields({id:e.ListId}).$promise}).then(function(e){n.customFields=e}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){g(n)});g(n)}else t&&C.tabs[a].calls.push(t),C.currentTab=x+a}else g(n)}function v(e){e&&e.uri&&a.open(e.uri)}function b(e){e&&e.html&&g({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",html:e.html})}function f(e){var t={ListId:e.ListId,nolimit:!0},n=!1;return _.isUndefined(e["xmd-contactid"])?t.phone=e.calleridnum:(t.id=e["xmd-contactid"],n=!0),r.cmContact.get(t).$promise.then(function(t){if(n&&t)C.addContactTab(t,e);else if(!n&&t.count)for(var a=0;a<t.rows.length;a+=1)C.addContactTab(t.rows[a],e);else C.addContactTab({firstName:e.calleridname||e.calleridnum||e.uniqueid,ListId:e.ListId,phone:e.calleridnum},e)}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(e){return r.jscriptyProject.get({id:e.ProjectId}).$promise.then(function(t){if(t){if(!_.isUndefined(e["xmd-contactid"]))return r.cmContact.get({id:e["xmd-contactid"]}).$promise.then(function(n){g({type:"jscripty",title:t.name,icon:"icon-script",project:t,call:e,contact:n})});g({type:"jscripty",title:t.name,icon:"icon-script",project:t,call:e})}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETJscryptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function y(e,t){var a=n.confirm().title("Are you sure want to close the "+t.type+"?").textContent("The "+t.type+" has been modified. Closing will lose all changes!").ariaLabel("Close Contact").ok("OK").cancel("CANCEL");t.saved?C.tabs.splice(e,1):n.show(a).then(function(){C.tabs.splice(e,1)})}function A(){a.localStorage.setItem("motion.user:"+C.user.id,JSON.stringify({tabs:C.tabs}))}var C=this,x=4;C.tabs=[],C.user=s.getCurrentUser(),C.currentTab=0,C.globalUserLists=c||{count:0,rows:[]},C.globalLists=m||{count:0,rows:[]},C.globalCompanies=u||{count:0,rows:[]},C.globalTags=p||{count:0,rows:[]},C.localStorageSet=A,C.onContactManager=f,C.onJscripty=E,C.onBrowserUrl=v,C.onBrowserPopup=b,C.addContactTab=h,C.closeTab=y,C.motionUser=a.localStorage.getItem("motion.user:"+C.user.id),C.motionUser&&(C.motionUser=JSON.parse(C.motionUser),C.tabs=C.motionUser.tabs),l.on("trigger:contactmanager",C.onContactManager),l.on("trigger:jscripty",C.onJscripty),l.on("trigger:browser:url",C.onBrowserUrl),l.on("trigger:browser:popup",C.onBrowserPopup);var T=o(C.localStorageSet,1500);e.$watch("vm.currentTab",function(e,n){switch(C.currentTab){case 3:t.go("app.dashboards.general.mycontacts");break;case 2:t.go("app.dashboards.general.contacts");break;case 1:t.go("app.dashboards.general.recordings");break;case 0:t.go("app.dashboards.general.dashboard")}}),e.$on("$stateChangeSuccess",function(e,t,n,a,i){t.data&&(C.currentTab=t.data.selectedTab)}),e.$on("$destroy",function(){l.removeAllListeners("trigger:contactmanager"),l.removeAllListeners("trigger:jscripty"),l.removeAllListeners("trigger:browser:url"),l.removeAllListeners("trigger:browser:popup"),o.cancel(T)})}e.$inject=["$scope","$state","$mdDialog","$window","$translate","$interval","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){g.contacts=e||{count:0,rows:[]}}function d(){g.query.offset=(g.query.page-1)*g.query.limit,g.promise=s.cmContact.get(g.query,l).$promise}function c(e,n){t.$parent.vm.addContactTab(n)}function m(){g.query.ListId=g.defaultLists,g.getContacts()}function u(t,n){a.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(e.body),targetEvent:t,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:o.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:g.contacts.rows}})}function p(t,n){a.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(e.body),targetEvent:t,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:o.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:g.contacts.rows}})}var g=this;g.contacts={count:0,rows:[]},g.lists=r||{count:0,rows:[]},g.listsMap=_.mapValues(_.keyBy(r.rows,"id"),"name"),g.defaultLists=g.lists.rows?_.map(g.lists.rows,"id").join(","):void 0,g.query={sort:"-updatedAt",limit:10,page:1,ListId:g.defaultLists},g.getContacts=d,g.refreshContacts=m,g.mergeContact=p,g.duplicateContact=u,g.openContact=c,g.getContacts();var h=!0,v=1;t.$watch("vm.query.filter",function(e,t){h?n(function(){h=!1}):(t||(v=g.query.page),e!==t&&(g.query.page=1),e||(g.query.page=v),g.getContacts())})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","Auth","api","lists"],angular.module("app.dashboards").controller("AgentContactsDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){g.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function d(){g.query.offset=(g.query.page-1)*g.query.limit,g.promise=n.user.getQueues(g.query,l).$promise}function c(e){return _.size(e)}function m(){_.forIn(g.voiceQueues,function(e,t){g.rpcVoiceQueues[t]&&(g.voiceQueues[t].waiting=g.rpcVoiceQueues[t].waiting||0)})}function u(e){g.voiceQueues[e.id]&&g.rpcVoiceQueues[e.id]&&(g.rpcVoiceQueues[e.id]=e,g.voiceQueues[e.id].waiting=e.waiting||0)}function p(e){g.rpcVoiceQueuesChannels[e.uniqueid]&&e.queuecallerleaveAt?delete g.rpcVoiceQueuesChannels[e.uniqueid]:g.rpcVoiceQueuesChannels[e.uniqueid]=e}var g=this;g.voiceQueuesTotal=o.count?o.count:0,g.voiceQueues=o?_.keyBy(o.rows?o.rows:[],"id"):{},g.rpcVoiceQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},g.query={id:a.getCurrentUser().id,fields:"id,name",channel:"voice",limit:10,page:1},g.rpcVoiceQueuesChannels=r?_.keyBy(r.rows?r.rows:[],"uniqueid"):{},g.queryChannels={limit:10,page:1},g.success=l,g.getVoiceQueues=d,g.getSize=c,g.onSaveQueue=u,g.onSaveChannel=p,i.on("voice_queue:save",g.onSaveQueue),i.on("voice_queue_channel:save",g.onSaveChannel),m();var h=!0,v=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(v=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=v),g.getVoiceQueues())}),e.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),i.removeAllListeners("voice_queue_channel:save")})}e.$inject=["$scope","$timeout","api","Auth","socket","voiceQueues","rpcVoiceQueues","rpcVoiceQueuesChannels"],angular.module("app.dashboards").controller("AgentDashboardDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(n,l,d){function c(){C.errors=[],i.cmContact.save(C.contact).$promise.then(function(e){return C.contact.id=e.id,C.newContact=!1,C.tab.title=e.firstName||e.phone,C.tab.contact=C.contact,i.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){C.tab.saved=!0,o.success({title:"Contact properly created",msg:C.contact.firstName?C.contact.firstName+" has been created!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){C.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)o.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function m(){C.errors=[],i.cmContact.update({id:C.contact.id},C.contact).$promise.then(function(e){return C.tab.title=e.firstName||e.phone,C.tab.contact=C.contact,i.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){C.tab.saved=!0,o.success({title:"Contact properly updated!",msg:C.contact.name?C.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){C.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)o.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function u(e){return function(t){n[e]=t||{count:0,rows:[]}}}function p(){C.contact&&C.contact.id&&(C.queryHopper.ContactId=C.contact.id,C.queryHopper.offset=(C.queryHopper.page-1)*C.queryHopper.limit,C.promise=i.cmHopper.get(C.queryHopper,u("hoppers")).$promise)}function g(){C.contact&&C.contact.id&&(C.queryFinal.ContactId=C.contact.id,C.queryFinal.offset=(C.queryFinal.page-1)*C.queryFinal.limit,C.promise=i.cmHopperFinal.get(C.queryFinal,u("finals")).$promise)}function h(){C.contact&&C.contact.id&&(C.queryHistory.ContactId=C.contact.id,C.queryHistory.offset=(C.queryHistory.page-1)*C.queryHistory.limit,C.promise=i.cmHopperHistory.get(C.queryHistory,u("histories")).$promise)}function v(n){e.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:C.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})}function b(n){e.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:C.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})}function f(e){var t=_.findLastIndex(C.tab.calls,function(t){return t.uniqueid===e.uniqueid});t>=0&&(C.tab.calls[t].disposedAt=new Date)}function E(n,a){C.newContact?o.error({title:"ATTENTION",msg:"Before to dispose, please save the contact!"}):e.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/directives/contact/dispose/dialog.html",parent:angular.element(t.body),targetEvent:a,clickOutsideToClose:!1,locals:{dispositions:C.tab.dispositions,contact:C.contact,call:a}}).then(function(e){o.success({title:"Call properly disposed",msg:"Call has been disposed "+e})}).finally(function(){_.remove(C.tab.calls,function(e){return e.uniqueid==a.uniqueid})})}function y(e){return i.cmList.getCustomFields({id:e}).$promise.then(function(e){C.tab.customFields=e}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(e){return new Date(e)}var C=n;C.contact=C.tab.contact,C.newContact=!1,C.currentTab=0,C.contact&&C.contact.id||(C.newContact=!0),C.contact&&(C.contact.id&&i.user.addContacts({id:s.getCurrentUser().id,ids:[C.contact.id]}),C.contact.ListId&&(C.tab.userLists.rows=_.unionBy(C.tab.userLists.rows,_.filter(C.tab.lists.rows,{id:C.contact.ListId}),"id"))),C.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},C.queryFinal={fields:"uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,page:1},C.queryHistory={fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},C.hoppers={rows:[],count:0},C.finals={rows:[],count:0},C.histories={rows:[],count:0},C.addNewContact=c,C.saveContact=m,C.getCustomFields=y,C.disposeCall=E,C.duplicateContact=v,C.mergeContact=b,C.getDateFromString=A,C.getHoppers=p,C.getFinals=g,C.getHistories=h,r.on("voice_queue_channel:remove",f),function(){C.getHoppers(),C.getFinals(),C.getHistories()}(),C.$watch("currentTab",function(e,t){1===C.currentTab&&(C.getHoppers(),C.getFinals(),C.getHistories())});var x=!0,T=1;C.$watch("queryHopper.filter",function(e,t){x?a(function(){x=!1}):(t||(T=C.queryHopper.page),e!==t&&(C.queryHopper.page=1),e||(C.queryHopper.page=T),C.getHoppers())}),C.$watch("queryFinal.filter",function(e,t){x?a(function(){x=!1}):(t||(T=C.queryFinal.page),e!==t&&(C.queryFinal.page=1),e||(C.queryFinal.page=T),C.getFinals())}),C.$watch("queryHistory.filter",function(e,t){x?a(function(){x=!1}):(t||(T=C.queryHistory.page),e!==t&&(C.queryHistory.page=1),e||(C.queryHistory.page=T),C.getHistories())})}return{restrict:"E",transclude:!0,scope:{tab:"="},link:l,templateUrl:"app/main/apps/dashboards/views/general/agent/directives/contact/contact.html"}}e.$inject=["$mdDialog","$document","$window","$timeout","api","toasty","Auth","socket"],angular.module("app.dashboards").directive("contact",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u){function p(){var e=y.choice.toLowerCase();return{id:y.call.uniqueid,disposition:y.choice,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e}}function g(){return l.voiceCallReport.update({id:y.call.uniqueid,userDisposition:y.choice,UserId:u.getCurrentUser().id,ContactId:y.contact.id}).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(){return l.cmHopperFinal.update(p()).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){return l.cmHopperHistory.update(p()).$promise.catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(e){if(e)return l.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){for(var t=[],n=0;n<e.rows.length;n+=1){var a=angular.copy(y.contact);delete a.id,a.ListId=e.rows[n].id,t.push(l.cmContact.save(a).$promise)}return o.all(t)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){return a.show({controller:"RescheduleCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/directives/contact/reschedule/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{contact:y.contact,call:y.call}})}function E(){if(console.log(y.call),g(),y.dialerCall)switch(h(),v(),y.choice.toLowerCase()){case"blacklist":y.call&&y.call.variables&&y.call.variables["xmd-voicequeueid"]&&b(y.call.variables["xmd-voicequeueid"]);break;case"reschedule":f()}a.hide(y.choice.toUpperCase())}var y=this;y.choice=void 0,y.dispositions=d,y.contact=m,y.call=c,y.dialerCall=!1,y.call&&y.call.variables&&y.call.variables["xmd-queue"]&&(y.dialerCall=!0),y.saveDisposition=E}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","$q","$document","toasty","api","dispositions","call","contact","Auth"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){return s.cmHopper.save({phone:u.contact.phone,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:Number(u.call["xmd-voicequeueid"]),scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss")}).$promise.then(function(){return s.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss")}).$promise}).then(function(){a.hide()}).catch(function(e){a.cancel(e)})}function m(){a.cancel()}var u=this;u.call=l,u.contact=r,u.hopper={minDate:new Date,dateTime:new Date},u.closeDialog=m,u.saveDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","toasty","api","contact","call","Auth"],angular.module("app.staff").controller("RescheduleCallDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(o,s,r){function l(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0}function d(e,t){try{o.$parent.$parent.$parent.vm.addContactTab(t)}catch(e){i.error({title:"ERROR OPEN CONTACT",msg:"Jscripty can't open the contact"})}}function c(n){var o=e.defer(),s=t.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(n).ok("SAVE").cancel("CANCEL");return t.show(s).then(function(){a.jscriptySessionReport.save({starttime:g.starttime,membername:g.call&&g.call.membername?g.call.membername:void 0,calleridname:g.call&&g.call.calleridname?g.call.calleridname:void 0,calleridnum:g.call&&g.call.calleridnum?g.call.calleridnum:void 0,queue:g.call&&g.call.queue?g.call.queue:void 0,uniqueid:g.call&&g.call.uniqueid?g.call.uniqueid:void 0,VoiceQueueId:g.call&&g.call["xmd-voicequeueid"]?g.call["xmd-voicequeueid"]:void 0,ProjectId:g.project&&g.project.id?g.project.id:void 0,projectname:g.project&&g.project.name?g.project.name:void 0,ContactId:g.contact&&g.contact.id?g.contact.id:void 0}).$promise.then(function(e){if(e)for(var t=g.getResponseSheetHeaders(),n=g.getResponseSheetRow(),i=0;i<t.length;i+=1){a.jscriptyQuestionReport.save({question:t[i],answer:n[i],membername:g.call.membername,calleridname:g.call&&g.call.calleridname?g.call.calleridname:void 0,calleridnum:g.call&&g.call.calleridnum?g.call.calleridnum:void 0,queue:g.call&&g.call.queue?g.call.queue:void 0,uniqueid:g.call&&g.call.uniqueid?g.call.uniqueid:void 0,SessionId:e.id,ProjectId:g.project.id,projectname:g.project.name});for(var o=n[i].split(";"),s=0;s<o.length;s+=1)a.jscriptyAnswerReport.save({question:t[i],answer:o[s].trim(),membername:g.call.membername,calleridname:g.call&&g.call.calleridname?g.call.calleridname:void 0,calleridnum:g.call&&g.call.calleridnum?g.call.calleridnum:void 0,queue:g.call&&g.call.queue?g.call.queue:void 0,uniqueid:g.call&&g.call.uniqueid?g.call.uniqueid:void 0,SessionId:e.id,ProjectId:g.project.id,projectname:g.project.name})}return e}).then(function(e){e?(g.tab.saved=!0,o.resolve(!0)):o.reject()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var t=0;t<e.data.errors.length;t+=1)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()});o.reject()})},function(){o.reject()}),o.promise}function m(){return n.getResponseSheet(g.project.formData,g.responseData,!1)}function u(){return n.getResponseSheetRow(g.project.formData,g.responseData)}function p(){return n.getResponseSheetHeaders(g.project.formData,!1)}var g=o;g.responseData={},g.tab&&(g.project=g.tab.project,g.call=g.tab.call,g.starttime=g.tab.openedAt,g.contact=g.tab.contact),g.onSubmit=c,g.openContact=d,g.isJsonString=l,g.getResponseSheet=m,g.getResponseSheetRow=u,g.getResponseSheetHeaders=p,_.isObjectLike(g.project.formData)?g.project.formData=g.project.formData:g.isJsonString(g.project.formData)?g.project.formData=JSON.parse(g.project.formData):g.project.formData=void 0}return{restrict:"E",transclude:!0,scope:{tab:"="},link:s,templateUrl:"app/main/apps/dashboards/views/general/agent/directives/jscripty/jscripty.html"}}e.$inject=["$q","$mdDialog","mwFormResponseUtils","api","toasty","Auth"],angular.module("app.dashboards").directive("jscripty",e)}(),function(){"use strict";function e(){function e(e,t,n){var a=e;a.tab.saved=!0,a.html=a.tab.html}return{restrict:"E",transclude:!0,scope:{tab:"="},link:e,templateUrl:"app/main/apps/dashboards/views/general/agent/directives/popup/popup.html"}}angular.module("app.dashboards").directive("popup",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(e){p.contacts=e||{count:0,rows:[]}}function l(){p.query.offset=(p.query.page-1)*p.query.limit,p.promise=o.user.getContacts(p.query,r).$promise}function d(e,n){t.$parent.vm.addContactTab(n)}function c(){p.query.ListId=p.defaultLists,p.getContacts()}function m(t,n){a.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(e.body),targetEvent:t,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:i.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:p.contacts.rows}})}function u(t,n){a.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(e.body),targetEvent:t,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:i.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:p.contacts.rows}})}var p=this;p.contacts={count:0,rows:[]},p.lists=s||{count:0,rows:[]},p.listsMap=_.mapValues(_.keyBy(s.rows,"id"),"name"),p.defaultLists=p.lists.rows?_.map(p.lists.rows,"id").join(","):void 0,p.query={id:i.getCurrentUser().id,sort:"-updatedAt",limit:10,page:1,ListId:p.defaultLists},p.getContacts=l,p.refreshContacts=c,p.mergeContact=u,p.duplicateContact=m,p.openContact=d,p.getContacts()}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","lists"],angular.module("app.dashboards").controller("AgentMyContactsDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m){function u(e,n){return l.voiceRecording.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/voice/recordings/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e){h.voiceRecordings=e||{count:0,rows:[]}}function g(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=l.user.getRecordings(h.query,p).$promise}var h=this;h.voiceRecordings=r||{count:0,rows:[]},h.table="voiceRecordings",h.query={id:m.getCurrentUser().id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,page:1},h.downloadfile=u,h.success=p,h.getVoiceRecordings=g}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceRecordings","api","msUtils","toasty","Auth"],angular.module("app.dashboards").controller("AgentRecordigsDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){l({queues:h.outboundQueues,rpcQueues:h.rpcQueues}).then(function(e){h.inbound=e})}function u(){d({rpcCampaigns:h.rpcCampaigns}).then(function(e){h.ivr=e})}function p(e){h.outboundQueues[e.id]&&h.rpcQueues[e.id]&&(h.rpcQueues[e.id]=e,m())}function g(e){h.rpcCampaigns[e.id]&&(h.rpcCampaigns[e.id]=e,u())}var h=this;h.outboundQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},h.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},h.rpcCampaigns=c?_.keyBy(c.rows?c.rows:[],"id"):{},h.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0},h.ivr={originated:0,limitCalls:0},h.onSaveQueue=p,h.onSaveCampaign=g,i.on("voice_queue:save",h.onSaveQueue),i.on("campaign:save",h.onSaveCampaign),m(),u(),e.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),i.removeAllListeners("campaign:save")})}e.$inject=["$scope","$interval","$mdSidenav","Auth","socket","api","outboundQueues","rpcQueues","initializeRealtimeQueue","initializeRealtimeCampaign","rpcCampaigns"],angular.module("app.dashboards").controller("UserVoiceDashboardDialerController",e)}(),function(){"use strict";function e(e){var t=[],n=function(){var e=t[0],a={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0,originated:0,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0};_.forIn(e.queues,function(t,n){if(e.rpcQueues[n]){a.waiting+=e.rpcQueues[n].waiting||0,a.talking+=e.rpcQueues[n].talking||0,a.answered+=e.rpcQueues[n].answered||0,a.unmanaged+=e.rpcQueues[n].unmanaged||0,a.sumHoldTime+=e.rpcQueues[n].sumHoldTime||0,a.sumBillable+=e.rpcQueues[n].sumBillable||0,a.total+=e.rpcQueues[n].total||0,a.originated+=e.rpcQueues[n].originated||0,a.outboundDropCallsDayCallersExit+=e.rpcQueues[n].outboundDropCallsDayCallersExit||0,a.outboundDropCallsDayTimeout+=e.rpcQueues[n].outboundDropCallsDayTimeout||0;var i=e.rpcQueues[n].total-e.rpcQueues[n].answered;a.abandoned+=i>0?i:0}}),a.avgHoldTime=Math.round(a.total>0?a.sumHoldTime/a.total:0),a.avgHoldTime=new Date(1e3*a.avgHoldTime).toISOString().substr(11,8),a.avgTalkTime=Math.round(a.answered>0?a.sumBillable/a.answered:0),a.avgTalkTime=new Date(1e3*a.avgTalkTime).toISOString().substr(11,8),a.answerRate=Math.round((a.total>0?a.answered/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.abandonRate=Math.round((a.total>0?a.abandoned/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundDropRate=Math.round((a.total>0?a.outboundDropCallsDayTimeout/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundAbandonRate=Math.round((a.total>0?a.outboundDropCallsDayCallersExit/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundanswerRate=100-a.outboundDropRate-a.outboundAbandonRate>0?100-a.outboundDropRate-a.outboundAbandonRate:0,t.shift(),e.defer.resolve(a),t.length>0&&n()};return function(a){var i=e.defer();return t.push({queues:a.queues,rpcQueues:a.rpcQueues,defer:i}),1===t.length&&n(),i.promise}}function t(e){var t=[],n=function(){var e=t[0],a={originated:0,limitCalls:0};_.forIn(e.rpcCampaigns,function(t,n){e.rpcCampaigns[n]&&(a.originated+=e.rpcCampaigns[n].originated||0,a.limitCalls+=e.rpcCampaigns[n].limitCalls||0)}),t.shift(),e.defer.resolve(a),t.length>0&&n()};return function(a){var i=e.defer();return t.push({rpcCampaigns:a.rpcCampaigns,defer:i}),1===t.length&&n(),i.promise}}function n(){return function(e){return new Date(1e3*e).toISOString().substr(11,8)}}function a(e,t,n){function a(){return n.hasPermission(101)||n.hasRole("admin")}var i=this;i.hasPermission=a,e.$on("$stateChangeSuccess",function(e,n,a,o,s){if(n.data)switch(i.currentTab=n.data.selectedTab,i.currentTab){case 1:t.go("app.dashboards.general.dialer");break;default:t.go("app.dashboards.general.voice")}})}e.$inject=["$q"],t.$inject=["$q"],a.$inject=["$scope","$state","Auth"],angular.module("app.dashboards").filter("secToTime",n).factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",t).controller("UserDashboardGeneralController",a)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d){function c(){d({queues:p.inboundQueues,rpcQueues:p.rpcQueues}).then(function(e){p.inbound=e})}function m(e){p.inboundQueues[e.id]&&p.rpcQueues[e.id]&&(p.rpcQueues[e.id]=e,c())}function u(e){p.outbound=e}var p=this;p.inboundQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},p.rpcQueues=r?_.keyBy(r.rows?r.rows:[],"id"):{},p.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},p.outbound=l||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},p.onSaveQueue=m,p.onSaveOutbound=u,i.on("voice_queue:save",p.onSaveQueue),i.on("voice_outbound:save",p.onSaveOutbound),c(),e.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),i.removeAllListeners("voice_outbound:save")})}e.$inject=["$scope","$interval","$mdSidenav","Auth","socket","api","inboundQueues","rpcQueues","outbound","initializeRealtimeQueue"],angular.module("app.dashboards").controller("UserVoiceDashboardGeneralController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.faxAccount.save(p.faxAccount).$promise.then(function(e){p.faxAccounts.unshift(e),i.success({title:"FaxAccount properly created",msg:p.faxAccount.name?p.faxAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.faxAccount.update({id:p.faxAccount.id},p.faxAccount).$promise.then(function(e){var t=_.find(p.faxAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"FaxAccount properly saved!",msg:p.faxAccount.name?p.faxAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.faxAccount.delete({id:p.faxAccount.id}).$promise.then(function(){_.remove(p.faxAccounts,{id:p.faxAccount.id}),i.success({title:"FaxAccount properly deleted!",msg:(p.faxAccount.name||"faxAccount")+" has been deleted!"}),u(p.faxAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="FAX.EDIT_FAXACCOUNT",p.faxAccount=angular.copy(s),p.faxAccounts=o,p.newFaxAccount=!1,p.faxAccount||(p.faxAccount={},p.title="FAX.NEW_FAXACCOUNT",p.newFaxAccount=!0),p.addNewFaxAccount=l,p.saveFaxAccount=d,p.deleteFaxAccount=c,p.getDateFromString=m,p.closeDialog=u,r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","faxAccounts","faxAccount","api"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.faxAccount=e,h.query.id=h.faxAccount.id,h.query.FaxAccountId=h.faxAccount.id,h.getFaxAccountFaxDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the faxDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete faxDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.faxAccountFaxDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.faxAccount.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditFaxDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/faxDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxDisposition:t,faxDispositions:h.faxAccountFaxDispositions.rows}})}function p(e){r.faxDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.faxAccountFaxDispositions.rows,{id:e.id}),h.faxAccountFaxDispositions.count-=1,h.faxAccountFaxDispositions.rows.length||h.getFaxAccountFaxDispositions(),s.success({title:"FaxDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected faxDispositions?").htmlContent("<b>"+h.selectedFaxAccountFaxDispositions.length+" selected</b> will be deleted.").ariaLabel("delete faxDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedFaxAccountFaxDispositions.forEach(function(e){p(e)}),h.selectedFaxAccountFaxDispositions=[]})}var h=this;h.faxAccount={},h.faxAccountFaxDispositions={count:0,rows:[]},h.selectedFaxAccountFaxDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getFaxAccountFaxDispositions=m,h.createOrEditFaxAccountFaxDisposition=u,h.deleteFaxAccountFaxDisposition=p,h.deleteSelectedFaxAccountFaxDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getFaxAccountFaxDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.fax").controller("FaxAccountFaxDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.faxDisposition.save(p.faxDisposition).$promise.then(function(e){p.faxDispositions.unshift(e),i.success({title:"FaxDisposition properly created",msg:p.faxDisposition.name?p.faxDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.faxDisposition.update({id:p.faxDisposition.id},p.faxDisposition).$promise.then(function(e){var t=_.find(p.faxDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"FaxDisposition properly saved!",msg:p.faxDisposition.name?p.faxDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The faxDisposition will be deleted.").ariaLabel("Delete FaxDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.faxDisposition.delete({id:p.faxDisposition.id}).$promise.then(function(){_.remove(p.faxDispositions,{id:p.faxDisposition.id}),i.success({title:"FaxDisposition properly deleted!",msg:(p.faxDisposition.name||"faxDisposition")+" has been deleted!"}),u(p.faxDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.faxDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="FAX.EDIT_FAXDISPOSITION",p.faxDisposition=angular.copy(s),p.faxDispositions=o,p.newFaxDisposition=!1,p.faxDisposition||(p.faxDisposition={},p.title="FAX.NEW_FAXDISPOSITION",p.newFaxDisposition=!0),t.params.id&&(p.faxDisposition.FaxAccountId=t.params.id),p.addNewFaxDisposition=l,p.saveFaxDisposition=d,p.deleteFaxDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","faxDispositions","faxDisposition","api"],angular.module("app.fax").controller("CreateOrEditFaxDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.fax.faxAccounts")}function r(){i.faxAccount.update({id:l.faxAccount.id},l.faxAccount).$promise.then(function(){a.success({title:"FaxAccount updated!",msg:l.faxAccount.name?l.faxAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.faxAccount=e.params.faxAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoFaxAccounts=s,l.saveFaxAccount=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.trunks=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","faxAccount"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the faxAccount?").htmlContent("<b>"+(e.name||"faxAccount")+"</b> will be deleted.").ariaLabel("delete faxAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.faxAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.faxAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditFaxAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:t,faxAccounts:A.faxAccounts.rows}})}function v(e){l.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.faxAccounts.rows,{id:e.id}),A.faxAccounts.count-=1,A.faxAccounts.rows.length||A.getFaxAccounts(),c.success({title:"FaxAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedFaxAccounts);return A.selectedFaxAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+A.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedFaxAccounts.forEach(function(e){v(e)}),A.selectedFaxAccounts=[]})}function E(){A.selectedFaxAccounts=[]}function y(){A.selectedFaxAccounts=A.faxAccounts.rows}var A=this;A.faxAccounts=r||{count:0,rows:[]},A.table="faxAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedFaxAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,headerinfo,TrunkId,localstationid,ListId,fidelity,timeout,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arrayminrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraymaxrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytech=_.keyBy([{option:"SIP",value:"'SIP'"},{option:"IAX",value:"'IAX'"},{option:"DADHI",value:"'DADHI'"},{option:"KHOMP",value:"'KHOMP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getFaxAccounts=g,A.createOrEditFaxAccount=h,A.deleteFaxAccount=v,A.exportSelectedFaxAccounts=b,A.deleteSelectedFaxAccounts=f,A.deselectFaxAccounts=E,A.selectAllFaxAccounts=y,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.trunks=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","faxAccounts","api","msUtils","toasty"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.faxQueue.save(p.faxQueue).$promise.then(function(e){p.faxQueues.unshift(e),i.success({title:"FaxQueue properly created",msg:p.faxQueue.name?p.faxQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.faxQueue.update({id:p.faxQueue.id},p.faxQueue).$promise.then(function(e){var t=_.find(p.faxQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"FaxQueue properly saved!",msg:p.faxQueue.name?p.faxQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.faxQueue.delete({id:p.faxQueue.id}).$promise.then(function(){_.remove(p.faxQueues,{id:p.faxQueue.id}),i.success({title:"FaxQueue properly deleted!",msg:(p.faxQueue.name||"faxQueue")+" has been deleted!"}),u(p.faxQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="FAX.EDIT_FAXQUEUE",p.faxQueue=angular.copy(s),p.faxQueues=o,p.newFaxQueue=!1,p.faxQueue||(p.faxQueue={strategy:"beepall"},p.title="FAX.NEW_FAXQUEUE",p.newFaxQueue=!0),p.addNewFaxQueue=l,p.saveFaxQueue=d,p.deleteFaxQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","faxQueues","faxQueue","api"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.faxQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("FAX.ALL_TEAMS"),labelSelected:i.instant("FAX.SELECTED_TEAMS"),transferCallback:function(e,a){n.faxQueue[a?"removeTeams":"addTeams"]({id:s.faxQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:faxQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.faxQueue.getTeams({id:s.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","faxQueue","$translate"],angular.module("app.fax").controller("FaxQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:d.faxQueues?d.faxQueues.rows:[]}})}function r(){e.go("app.fax.faxQueues")}function l(){i.faxQueue.update({id:d.faxQueue.id},d.faxQueue).$promise.then(function(){a.success({title:"FaxQueue updated!",msg:d.faxQueue.name?d.faxQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.faxQueue=e.params.faxQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoFaxQueues=r,d.saveFaxQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","faxQueue"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the faxQueue?").htmlContent("<b>"+(e.name||"faxQueue")+"</b> will be deleted.").ariaLabel("delete faxQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.faxQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.faxQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:t,faxQueues:A.faxQueues.rows}})}function v(e){l.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.faxQueues.rows,{id:e.id}),A.faxQueues.count-=1,A.faxQueues.rows.length||A.getFaxQueues(),c.success({title:"FaxQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedFaxQueues);return A.selectedFaxQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+A.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedFaxQueues.forEach(function(e){v(e)}),A.selectedFaxQueues=[]})}function E(){A.selectedFaxQueues=[]}function y(){A.selectedFaxQueues=A.faxQueues.rows}var A=this;A.faxQueues=r||{count:0,rows:[]},A.table="faxQueues",A.listOrder="",A.listOrderAsc=null,A.selectedFaxQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getFaxQueues=g,A.createOrEditFaxQueue=h,A.deleteFaxQueue=v,A.exportSelectedFaxQueues=b,A.deleteSelectedFaxQueues=f,A.deselectFaxQueues=E,A.selectAllFaxQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","faxQueues","api","msUtils","toasty"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e){this.info=e}e.$inject=["info"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intFreshdeskAccount.save(p.freshdeskAccount).$promise.then(function(e){p.freshdeskAccounts.unshift(e),i.success({title:"FreshdeskAccount properly created",msg:p.freshdeskAccount.name?p.freshdeskAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intFreshdeskAccount.update({id:p.freshdeskAccount.id},p.freshdeskAccount).$promise.then(function(e){var t=_.find(p.freshdeskAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"FreshdeskAccount properly saved!",msg:p.freshdeskAccount.name?p.freshdeskAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intFreshdeskAccount.delete({id:p.freshdeskAccount.id}).$promise.then(function(){_.remove(p.freshdeskAccounts,{id:p.freshdeskAccount.id}),i.success({title:"FreshdeskAccount properly deleted!",msg:(p.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),u(p.freshdeskAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",p.freshdeskAccount=angular.copy(s),p.freshdeskAccounts=o,p.newFreshdeskAccount=!1,p.freshdeskAccount||(p.freshdeskAccount={serverUrl:n.protocol()+"://"+n.host()+":"+n.port()},p.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",p.newFreshdeskAccount=!0),p.addNewFreshdeskAccount=l,p.saveFreshdeskAccount=d,p.deleteFreshdeskAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","freshdeskAccounts","freshdeskAccount","api"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){n.intFreshdeskConfiguration.setTags({id:A.freshdeskConfiguration.id,ids:A.selectedTags}).$promise.then(function(){a.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){A.freshdeskAccount=e,n.intFreshdeskAccount.getConfigurations({id:A.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return A.configurations=e.rows?e.rows:[],A.configurations.length&&A.getFreshdeskConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){A.variables=e.rows?e.rows:[],A.variablesById=_.keyBy(A.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(e){A.freshdeskConfiguration=A.configurations[e],A.selectedFreshdeskConfiguration=e,n.intFreshdeskConfiguration.getSubjects({id:A.freshdeskConfiguration.id}).$promise.then(function(e){return A.subjects=e.rows?e.rows:[],n.intFreshdeskConfiguration.getDescriptions({id:A.freshdeskConfiguration.id}).$promise}).then(function(e){return A.descriptions=e.rows?e.rows:[],n.intFreshdeskConfiguration.getFields({id:A.freshdeskConfiguration.id}).$promise}).then(function(e){A.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),n.intFreshdeskConfiguration.getTags({id:A.freshdeskConfiguration.id}).$promise.then(function(e){A.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function r(n,a){e.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{freshdeskConfiguration:a,configurations:A.configurations}}).finally(function(){A.getFreshdeskConfiguration(0)})}function l(t,i){var o=e.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(i.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intFreshdeskConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(A.configurations,{id:i.id}),a.success({title:"FreshdeskConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){A.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})}function d(n,a){e.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:A.subjects,configuration:A.freshdeskConfiguration,account:A.freshdeskAccount}})}function c(e){n.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){c(n)},function(){console.log("CANCEL")})}function u(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+A.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedSubjects.forEach(function(e){c(e)}),A.selectedSubjects=[]})}function p(n,a){e.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:A.descriptions,configuration:A.freshdeskConfiguration,account:A.freshdeskAccount}})}function g(e){n.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){g(n)},function(){console.log("CANCEL")})}function v(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+A.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedDescriptions.forEach(function(e){g(e)}),A.selectedDescriptions=[]})}function b(n,a){e.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:A.fields,configuration:A.freshdeskConfiguration,account:A.freshdeskAccount}})}function f(e){n.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){f(n)},function(){console.log("CANCEL")})}function y(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+A.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedFields.forEach(function(e){f(e)}),A.selectedFields=[]})}var A=this;A.freshdeskAccount={},A.freshdeskConfiguration={},A.configurations=[],A.selectedFreshdeskConfiguration=-1,A.init=o,A.getFreshdeskConfiguration=s,A.createOrEditFreshdeskConfiguration=r,A.deleteFreshdeskConfiguration=l,A.selectedTags=[],A.selectTagsChanged=i,n.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){A.tags=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),A.selectedSubjects=[],A.createOrEditSubject=d,A.deleteSubjectConfirm=m,A.deleteSelectedSubjects=u,A.selectedDescriptions=[],A.createOrEditDescription=p,A.deleteDescriptionConfirm=h,A.deleteSelectedDescriptions=v,A.selectedFields=[],A.createOrEditField=b,A.deleteFieldConfirm=E,A.deleteSelectedFields=y}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intFreshdeskAccount.addConfiguration({id:t.params.id},p.freshdeskConfiguration).$promise.then(function(e){p.configurations.unshift(e),i.success({title:"FreshdeskConfiguration properly created",msg:p.freshdeskConfiguration.name?p.freshdeskConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intFreshdeskConfiguration.update({id:p.freshdeskConfiguration.id},p.freshdeskConfiguration).$promise.then(function(e){var t=_.find(p.configurations,{id:e.id});t&&_.merge(t,e),i.success({title:"FreshdeskConfiguration properly saved!",msg:p.freshdeskConfiguration.name?p.freshdeskConfiguration.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intFreshdeskConfiguration.delete({id:p.freshdeskConfiguration.id}).$promise.then(function(){_.remove(p.configurations,{id:p.freshdeskConfiguration.id}),i.success({title:"FreshdeskConfiguration properly deleted!",msg:(p.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),u(p.freshdeskConfiguration)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",p.freshdeskConfiguration=angular.copy(s),p.configurations=o,p.newFreshdeskConfiguration=!1,p.freshdeskConfiguration||(p.freshdeskConfiguration={channel:"voice",type:"inbound"},p.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",p.newFreshdeskConfiguration=!0),p.addNewFreshdeskConfiguration=l,p.saveFreshdeskConfiguration=d,p.deleteFreshdeskConfiguration=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configurations","freshdeskConfiguration","api"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intFreshdeskField.save(v.item).$promise.then(function(e){v.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})}function u(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intFreshdeskField.update({id:v.item.id},v.item).$promise.then(function(e){var t=_.find(v.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})}function p(e){v.errors=[];var t=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){c.intFreshdeskField.delete({id:v.item.id}).$promise.then(function(){_.remove(v.items,{id:v.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})}function g(){return void 0!==v.item.variableName?v.item.variableName:"Please select a variable"}function h(){a.hide()}var v=this;v.errors=[],v.title="INTEGRATIONS.EDIT_"+_.toUpper(d),v.item=angular.copy(r),v.items=s,v.type=d,v.newItem=!1,v.item||(v.item={type:"string"},v.item[_.capitalize(d)+"Id"]=o.id,v.title="INTEGRATIONS.NEW_"+_.toUpper(d),v.newItem=!0),v.addNewItem=m,v.saveItem=u,v.deleteItem=p,v.getSelectedVariable=g,v.closeDialog=h,c.variable.get({nolimit:!0}).$promise.then(function(e){return v.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return v.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){v.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intFreshdeskAccount.getFields({id:l.id}).$promise.then(function(e){v.accountConnected=!0,v.fields=e.rows?e.rows:[],v.item.idField&&(v.customField=_.find(v.fields,{id:v.item.idField}))}).catch(function(e){v.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.integrations.freshdeskAccounts")}function r(){i.intFreshdeskAccount.update({id:l.freshdeskAccount.id},l.freshdeskAccount).$promise.then(function(){a.success({title:"FreshdeskAccount updated!",msg:l.freshdeskAccount.name?l.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.freshdeskAccount=e.params.freshdeskAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoFreshdeskAccounts=s,l.saveFreshdeskAccount=r}e.$inject=["$state","$mdDialog","$document","toasty","api","freshdeskAccount"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e})}function u(e,t){return l.intFreshdeskAccount.getFields({id:e.id}).$promise.then(function(){c.success({title:"FreshdeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"FreshdeskAccount properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the freshdeskAccount?").htmlContent("<b>"+(e.name||"freshdeskAccount")+"</b> will be deleted.").ariaLabel("delete freshdeskAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.freshdeskAccounts=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.intFreshdeskAccount.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditFreshdeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskAccount:t,freshdeskAccounts:C.freshdeskAccounts.rows}})}function b(e){l.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(C.freshdeskAccounts.rows,{id:e.id}),C.freshdeskAccounts.count-=1,C.freshdeskAccounts.rows.length||C.getFreshdeskAccounts(),c.success({title:"FreshdeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedFreshdeskAccounts);return C.selectedFreshdeskAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+C.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedFreshdeskAccounts.forEach(function(e){b(e)}),C.selectedFreshdeskAccounts=[]})}function y(){C.selectedFreshdeskAccounts=[]}function A(){C.selectedFreshdeskAccounts=C.freshdeskAccounts.rows}var C=this;C.freshdeskAccounts=r||{count:0,rows:[]},C.table="freshdeskAccounts",C.listOrder="",C.listOrderAsc=null,C.selectedFreshdeskAccounts=[],C.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",limit:10,page:1},C.editstate=m,C.testtestintegrationaccount=u,C.deleteconfirm=p,C.success=g,C.getFreshdeskAccounts=h,C.createOrEditFreshdeskAccount=v,C.deleteFreshdeskAccount=b,C.exportSelectedFreshdeskAccounts=f,C.deleteSelectedFreshdeskAccounts=E,C.deselectFreshdeskAccounts=y,C.selectAllFreshdeskAccounts=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","freshdeskAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSalesforceAccount.save(p.salesforceAccount).$promise.then(function(e){p.salesforceAccounts.unshift(e),i.success({title:"SalesforceAccount properly created",msg:p.salesforceAccount.name?p.salesforceAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intSalesforceAccount.update({id:p.salesforceAccount.id},p.salesforceAccount).$promise.then(function(e){var t=_.find(p.salesforceAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"SalesforceAccount properly saved!",msg:p.salesforceAccount.name?p.salesforceAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intSalesforceAccount.delete({id:p.salesforceAccount.id}).$promise.then(function(){_.remove(p.salesforceAccounts,{id:p.salesforceAccount.id}),i.success({title:"SalesforceAccount properly deleted!",msg:(p.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),u(p.salesforceAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",p.salesforceAccount=angular.copy(s),p.salesforceAccounts=o,p.newSalesforceAccount=!1,p.salesforceAccount||(p.salesforceAccount={serverUrl:n.protocol()+"://"+n.host()+":"+n.port()},p.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",p.newSalesforceAccount=!0),p.addNewSalesforceAccount=l,p.saveSalesforceAccount=d,p.deleteSalesforceAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","salesforceAccounts","salesforceAccount","api"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){y.salesforceAccount=e,n.intSalesforceAccount.getConfigurations({id:y.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return y.configurations=e.rows?e.rows:[],y.configurations.length&&y.getSalesforceConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){y.variables=e.rows?e.rows:[],y.variablesById=_.keyBy(y.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){y.salesforceConfiguration=y.configurations[e],y.selectedSalesforceConfiguration=e,n.intSalesforceConfiguration.getSubjects({id:y.salesforceConfiguration.id}).$promise.then(function(e){return y.subjects=e.rows?e.rows:[],n.intSalesforceConfiguration.getDescriptions({id:y.salesforceConfiguration.id}).$promise}).then(function(e){return y.descriptions=e.rows?e.rows:[],n.intSalesforceConfiguration.getFields({id:y.salesforceConfiguration.id}).$promise}).then(function(e){y.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(n,a){e.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{salesforceConfiguration:a,configurations:y.configurations}}).finally(function(){y.getSalesforceConfiguration(0)})}function r(t,i){var o=e.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(i.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intSalesforceConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(y.configurations,{id:i.id}),a.success({title:"SalesforceConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){y.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})}function l(n,a){e.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:y.subjects,configuration:y.salesforceConfiguration,account:y.salesforceAccount}})}function d(e){n.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(y.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function c(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){d(n)},function(){console.log("CANCEL")})}function m(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+y.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedSubjects.forEach(function(e){d(e)}),y.selectedSubjects=[]})}function u(n,a){e.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:y.descriptions,configuration:y.salesforceConfiguration,account:y.salesforceAccount}})}function p(e){n.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(y.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){p(n)},function(){console.log("CANCEL")})}function h(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+y.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedDescriptions.forEach(function(e){p(e)}),y.selectedDescriptions=[]})}function v(n,a){e.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:y.fields,configuration:y.salesforceConfiguration,account:y.salesforceAccount}})}function b(e){n.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(y.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){b(n)},function(){console.log("CANCEL")})}function E(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+y.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedFields.forEach(function(e){b(e)}),y.selectedFields=[]})}var y=this;y.salesforceAccount={},y.salesforceConfiguration={},y.configurations=[],y.selectedSalesforceConfiguration=-1,y.init=i,y.getSalesforceConfiguration=o,y.createOrEditSalesforceConfiguration=s,y.deleteSalesforceConfiguration=r,y.selectedSubjects=[],y.createOrEditSubject=l,y.deleteSubjectConfirm=c,y.deleteSelectedSubjects=m,y.selectedDescriptions=[],y.createOrEditDescription=u,y.deleteDescriptionConfirm=g,y.deleteSelectedDescriptions=h,y.selectedFields=[],y.createOrEditField=v,y.deleteFieldConfirm=f,y.deleteSelectedFields=E}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSalesforceAccount.addConfiguration({id:t.params.id},p.salesforceConfiguration).$promise.then(function(e){p.configurations.unshift(e),i.success({title:"SalesforceConfiguration properly created",msg:p.salesforceConfiguration.name?p.salesforceConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intSalesforceConfiguration.update({id:p.salesforceConfiguration.id},p.salesforceConfiguration).$promise.then(function(e){var t=_.find(p.configurations,{id:e.id});t&&_.merge(t,e),i.success({title:"SalesforceConfiguration properly saved!",msg:p.salesforceConfiguration.name?p.salesforceConfiguration.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intSalesforceConfiguration.delete({id:p.salesforceConfiguration.id}).$promise.then(function(){_.remove(p.configurations,{id:p.salesforceConfiguration.id}),i.success({title:"SalesforceConfiguration properly deleted!",msg:(p.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),u(p.salesforceConfiguration)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",p.salesforceConfiguration=angular.copy(s),p.configurations=o,p.newSalesforceConfiguration=!1,p.salesforceConfiguration||(p.salesforceConfiguration={channel:"voice",type:"inbound"},p.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",p.newSalesforceConfiguration=!0),p.addNewSalesforceConfiguration=l,p.saveSalesforceConfiguration=d,p.deleteSalesforceConfiguration=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configurations","salesforceConfiguration","api"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intSalesforceField.save(v.item).$promise.then(function(e){v.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})}function u(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intSalesforceField.update({id:v.item.id},v.item).$promise.then(function(e){var t=_.find(v.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})}function p(e){v.errors=[];var t=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){c.intSalesforceField.delete({id:v.item.id}).$promise.then(function(){_.remove(v.items,{id:v.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})}function g(){return void 0!==v.item.variableName?v.item.variableName:"Please select a variable"}function h(){a.hide()}var v=this;v.errors=[],v.title="INTEGRATIONS.EDIT_"+_.toUpper(d),v.item=angular.copy(r),v.items=s,v.type=d,v.newItem=!1,v.item||(v.item={type:"string"},v.item[_.capitalize(d)+"Id"]=o.id,v.title="INTEGRATIONS.NEW_"+_.toUpper(d),v.newItem=!0),v.addNewItem=m,v.saveItem=u,v.deleteItem=p,v.getSelectedVariable=g,v.closeDialog=h,c.variable.get({nolimit:!0}).$promise.then(function(e){return v.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return v.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){v.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSalesforceAccount.getFields({id:l.id}).$promise.then(function(e){v.accountConnected=!0,v.fields=e.rows?e.rows:[],v.item.idField&&(v.customField=_.find(v.fields,{id:v.item.idField}))}).catch(function(e){v.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.integrations.salesforceAccounts")}function r(){i.intSalesforceAccount.update({id:l.salesforceAccount.id},l.salesforceAccount).$promise.then(function(){a.success({title:"SalesforceAccount updated!",msg:l.salesforceAccount.name?l.salesforceAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.salesforceAccount=e.params.salesforceAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoSalesforceAccounts=s,l.saveSalesforceAccount=r}e.$inject=["$state","$mdDialog","$document","toasty","api","salesforceAccount"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e})}function u(e,t){return l.intSalesforceAccount.getFields({id:e.id}).$promise.then(function(){c.success({title:"SalesforceAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"SalesforceAccount properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the salesforceAccount?").htmlContent("<b>"+(e.name||"salesforceAccount")+"</b> will be deleted.").ariaLabel("delete salesforceAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.salesforceAccounts=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.intSalesforceAccount.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditSalesforceAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceAccount:t,salesforceAccounts:C.salesforceAccounts.rows}})}function b(e){l.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(C.salesforceAccounts.rows,{id:e.id}),C.salesforceAccounts.count-=1,C.salesforceAccounts.rows.length||C.getSalesforceAccounts(),c.success({title:"SalesforceAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedSalesforceAccounts);return C.selectedSalesforceAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+C.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedSalesforceAccounts.forEach(function(e){b(e)}),C.selectedSalesforceAccounts=[]})}function y(){C.selectedSalesforceAccounts=[]}function A(){C.selectedSalesforceAccounts=C.salesforceAccounts.rows}var C=this;C.salesforceAccounts=r||{count:0,rows:[]},C.table="salesforceAccounts",C.listOrder="",C.listOrderAsc=null,C.selectedSalesforceAccounts=[],C.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",limit:10,page:1},C.editstate=m,C.testtestintegrationaccount=u,C.deleteconfirm=p,C.success=g,C.getSalesforceAccounts=h,C.createOrEditSalesforceAccount=v,C.deleteSalesforceAccount=b,C.exportSelectedSalesforceAccounts=f,C.deleteSelectedSalesforceAccounts=E,C.deselectSalesforceAccounts=y,C.selectAllSalesforceAccounts=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","salesforceAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSugarcrmAccount.save(p.sugarcrmAccount).$promise.then(function(e){p.sugarcrmAccounts.unshift(e),i.success({title:"SugarcrmAccount properly created",msg:p.sugarcrmAccount.name?p.sugarcrmAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intSugarcrmAccount.update({id:p.sugarcrmAccount.id},p.sugarcrmAccount).$promise.then(function(e){var t=_.find(p.sugarcrmAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"SugarcrmAccount properly saved!",msg:p.sugarcrmAccount.name?p.sugarcrmAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intSugarcrmAccount.delete({id:p.sugarcrmAccount.id}).$promise.then(function(){_.remove(p.sugarcrmAccounts,{id:p.sugarcrmAccount.id}),i.success({title:"SugarcrmAccount properly deleted!",msg:(p.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),u(p.sugarcrmAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",p.sugarcrmAccount=angular.copy(s),p.sugarcrmAccounts=o,p.newSugarcrmAccount=!1,p.sugarcrmAccount||(p.sugarcrmAccount={serverUrl:n.protocol()+"://"+n.host()+":"+n.port()},p.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",p.newSugarcrmAccount=!0),p.addNewSugarcrmAccount=l,p.saveSugarcrmAccount=d,p.deleteSugarcrmAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","sugarcrmAccounts","sugarcrmAccount","api"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){y.sugarcrmAccount=e,n.intSugarcrmAccount.getConfigurations({id:y.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return y.configurations=e.rows?e.rows:[],y.configurations.length&&y.getSugarcrmConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){y.variables=e.rows?e.rows:[],y.variablesById=_.keyBy(y.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){y.sugarcrmConfiguration=y.configurations[e],y.selectedSugarcrmConfiguration=e,n.intSugarcrmConfiguration.getSubjects({id:y.sugarcrmConfiguration.id}).$promise.then(function(e){return y.subjects=e.rows?e.rows:[],n.intSugarcrmConfiguration.getDescriptions({id:y.sugarcrmConfiguration.id}).$promise}).then(function(e){return y.descriptions=e.rows?e.rows:[],n.intSugarcrmConfiguration.getFields({id:y.sugarcrmConfiguration.id}).$promise}).then(function(e){y.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(n,a){e.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:a,configurations:y.configurations}}).finally(function(){y.getSugarcrmConfiguration(0)})}function r(t,i){var o=e.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(i.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intSugarcrmConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(y.configurations,{id:i.id}),a.success({title:"SugarcrmConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){y.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})}function l(n,a){e.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:y.subjects,configuration:y.sugarcrmConfiguration,account:y.sugarcrmAccount}})}function d(e){n.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(y.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function c(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){d(n)},function(){console.log("CANCEL")})}function m(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+y.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedSubjects.forEach(function(e){d(e)}),y.selectedSubjects=[]})}function u(n,a){e.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:y.descriptions,configuration:y.sugarcrmConfiguration,account:y.sugarcrmAccount}})}function p(e){n.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(y.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){p(n)},function(){console.log("CANCEL")})}function h(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+y.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedDescriptions.forEach(function(e){p(e)}),y.selectedDescriptions=[]})}function v(n,a){e.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:y.fields,configuration:y.sugarcrmConfiguration,account:y.sugarcrmAccount}})}function b(e){n.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(y.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){b(n)},function(){console.log("CANCEL")})}function E(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+y.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){y.selectedFields.forEach(function(e){b(e)}),y.selectedFields=[]})}var y=this;y.sugarcrmAccount={},y.sugarcrmConfiguration={},y.configurations=[],y.selectedSugarcrmConfiguration=-1,y.init=i,y.getSugarcrmConfiguration=o,y.createOrEditSugarcrmConfiguration=s,y.deleteSugarcrmConfiguration=r,y.selectedSubjects=[],y.createOrEditSubject=l,y.deleteSubjectConfirm=c,y.deleteSelectedSubjects=m,y.selectedDescriptions=[],y.createOrEditDescription=u,y.deleteDescriptionConfirm=g,y.deleteSelectedDescriptions=h,y.selectedFields=[],y.createOrEditField=v,y.deleteFieldConfirm=f,y.deleteSelectedFields=E}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intSugarcrmAccount.addConfiguration({id:t.params.id},p.sugarcrmConfiguration).$promise.then(function(e){p.configurations.unshift(e),i.success({title:"SugarcrmConfiguration properly created",msg:p.sugarcrmConfiguration.name?p.sugarcrmConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intSugarcrmConfiguration.update({id:p.sugarcrmConfiguration.id},p.sugarcrmConfiguration).$promise.then(function(e){var t=_.find(p.configurations,{id:e.id});t&&_.merge(t,e),i.success({title:"SugarcrmConfiguration properly saved!",msg:p.sugarcrmConfiguration.name?p.sugarcrmConfiguration.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intSugarcrmConfiguration.delete({id:p.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(p.configurations,{id:p.sugarcrmConfiguration.id}),i.success({title:"SugarcrmConfiguration properly deleted!",msg:(p.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),u(p.sugarcrmConfiguration)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",p.sugarcrmConfiguration=angular.copy(s),p.configurations=o,p.newSugarcrmConfiguration=!1,p.sugarcrmConfiguration||(p.sugarcrmConfiguration={channel:"voice",type:"inbound"},p.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",p.newSugarcrmConfiguration=!0),p.addNewSugarcrmConfiguration=l,p.saveSugarcrmConfiguration=d,p.deleteSugarcrmConfiguration=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configurations","sugarcrmConfiguration","api"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intSugarcrmField.save(v.item).$promise.then(function(e){v.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})}function u(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intSugarcrmField.update({id:v.item.id},v.item).$promise.then(function(e){var t=_.find(v.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})}function p(e){v.errors=[];var t=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){c.intSugarcrmField.delete({id:v.item.id}).$promise.then(function(){_.remove(v.items,{id:v.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})}function g(){return void 0!==v.item.variableName?v.item.variableName:"Please select a variable"}function h(){a.hide()}var v=this;v.errors=[],v.title="INTEGRATIONS.EDIT_"+_.toUpper(d),v.item=angular.copy(r),v.items=s,v.type=d,v.newItem=!1,v.item||(v.item={type:"string"},v.item[_.capitalize(d)+"Id"]=o.id,v.title="INTEGRATIONS.NEW_"+_.toUpper(d),v.newItem=!0),v.addNewItem=m,v.saveItem=u,v.deleteItem=p,v.getSelectedVariable=g,v.closeDialog=h,c.variable.get({nolimit:!0}).$promise.then(function(e){return v.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return v.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){v.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSugarcrmAccount.getFields({id:l.id}).$promise.then(function(e){v.accountConnected=!0,v.fields=e.rows?e.rows:[],v.item.idField&&(v.customField=_.find(v.fields,{id:v.item.idField}))}).catch(function(e){v.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.integrations.sugarcrmAccounts")}function r(){i.intSugarcrmAccount.update({id:l.sugarcrmAccount.id},l.sugarcrmAccount).$promise.then(function(){a.success({title:"SugarcrmAccount updated!",msg:l.sugarcrmAccount.name?l.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.sugarcrmAccount=e.params.sugarcrmAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoSugarcrmAccounts=s,l.saveSugarcrmAccount=r}e.$inject=["$state","$mdDialog","$document","toasty","api","sugarcrmAccount"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e})}function u(e,t){return l.intSugarcrmAccount.getFields({id:e.id}).$promise.then(function(){c.success({title:"SugarcrmAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"SugarcrmAccount properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the sugarcrmAccount?").htmlContent("<b>"+(e.name||"sugarcrmAccount")+"</b> will be deleted.").ariaLabel("delete sugarcrmAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.sugarcrmAccounts=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.intSugarcrmAccount.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditSugarcrmAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmAccount:t,sugarcrmAccounts:C.sugarcrmAccounts.rows}})}function b(e){l.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(C.sugarcrmAccounts.rows,{id:e.id}),C.sugarcrmAccounts.count-=1,C.sugarcrmAccounts.rows.length||C.getSugarcrmAccounts(),c.success({title:"SugarcrmAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedSugarcrmAccounts);return C.selectedSugarcrmAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+C.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedSugarcrmAccounts.forEach(function(e){b(e)}),C.selectedSugarcrmAccounts=[]})}function y(){C.selectedSugarcrmAccounts=[]}function A(){C.selectedSugarcrmAccounts=C.sugarcrmAccounts.rows}var C=this;C.sugarcrmAccounts=r||{count:0,rows:[]},C.table="sugarcrmAccounts",C.listOrder="",C.listOrderAsc=null,C.selectedSugarcrmAccounts=[],C.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",limit:10,page:1},C.editstate=m,C.testtestintegrationaccount=u,C.deleteconfirm=p,C.success=g,C.getSugarcrmAccounts=h,C.createOrEditSugarcrmAccount=v,C.deleteSugarcrmAccount=b,C.exportSelectedSugarcrmAccounts=f,C.deleteSelectedSugarcrmAccounts=E,C.deselectSugarcrmAccounts=y,C.selectAllSugarcrmAccounts=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","sugarcrmAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intZendeskAccount.save(p.zendeskAccount).$promise.then(function(e){p.zendeskAccounts.unshift(e),i.success({title:"ZendeskAccount properly created",msg:p.zendeskAccount.name?p.zendeskAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intZendeskAccount.update({id:p.zendeskAccount.id},p.zendeskAccount).$promise.then(function(e){var t=_.find(p.zendeskAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"ZendeskAccount properly saved!",msg:p.zendeskAccount.name?p.zendeskAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intZendeskAccount.delete({id:p.zendeskAccount.id}).$promise.then(function(){_.remove(p.zendeskAccounts,{id:p.zendeskAccount.id}),i.success({title:"ZendeskAccount properly deleted!",msg:(p.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),u(p.zendeskAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",p.zendeskAccount=angular.copy(s),p.zendeskAccounts=o,p.newZendeskAccount=!1,p.zendeskAccount||(p.zendeskAccount={authType:"password",serverUrl:n.protocol()+"://"+n.host()+":"+n.port()},p.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",p.newZendeskAccount=!0),p.addNewZendeskAccount=l,p.saveZendeskAccount=d,p.deleteZendeskAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","zendeskAccounts","zendeskAccount","api"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intZendeskField.save(v.item).$promise.then(function(e){v.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})}function u(){v.errors=[],v.customField&&(v.item.idField=v.customField.id,v.item.nameField=v.customField.name,v.item.customField=v.customField.custom),c.intZendeskField.update({id:v.item.id},v.item).$promise.then(function(e){var t=_.find(v.items,{id:e.id});t&&_.merge(t,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})}function p(e){v.errors=[];var t=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(t).then(function(){c.intZendeskField.delete({id:v.item.id}).$promise.then(function(){_.remove(v.items,{id:v.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),h()}).catch(function(e){console.error(e),v.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})}function g(){return void 0!==v.item.variableName?v.item.variableName:"Please select a variable"}function h(){a.hide()}var v=this;v.errors=[],v.title="INTEGRATIONS.EDIT_"+_.toUpper(d),v.item=angular.copy(r),v.items=s,v.type=d,v.newItem=!1,v.item||(v.item={type:"string"},v.item[_.capitalize(d)+"Id"]=o.id,v.title="INTEGRATIONS.NEW_"+_.toUpper(d),v.newItem=!0),v.addNewItem=m,v.saveItem=u,v.deleteItem=p,v.getSelectedVariable=g,v.closeDialog=h,c.variable.get({nolimit:!0}).$promise.then(function(e){return v.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return v.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){v.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),v.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intZendeskAccount.getFields({id:l.id}).$promise.then(function(e){v.accountConnected=!0,v.fields=e.rows?e.rows:[],v.item.idField&&(v.customField=_.find(v.fields,{id:v.item.idField}))}).catch(function(e){v.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.integrations.zendeskAccounts")}function r(){i.intZendeskAccount.update({id:l.zendeskAccount.id},l.zendeskAccount).$promise.then(function(){a.success({title:"ZendeskAccount updated!",msg:l.zendeskAccount.name?l.zendeskAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.zendeskAccount=e.params.zendeskAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoZendeskAccounts=s,l.saveZendeskAccount=r}e.$inject=["$state","$mdDialog","$document","toasty","api","zendeskAccount"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){n.intZendeskConfiguration.setTags({id:A.zendeskConfiguration.id,ids:A.selectedTags}).$promise.then(function(){a.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function o(e){A.zendeskAccount=e,n.intZendeskAccount.getConfigurations({id:A.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return A.zendeskConfigurations=e.rows?e.rows:[],A.zendeskConfigurations.length&&A.getZendeskConfiguration(0),n.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){A.variables=e.rows?e.rows:[],A.variablesById=_.keyBy(A.variables,"id")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})}function s(e){A.zendeskConfiguration=A.zendeskConfigurations[e],A.selectedZendeskConfiguration=e,n.intZendeskConfiguration.getSubjects({id:A.zendeskConfiguration.id}).$promise.then(function(e){return A.subjects=e.rows?e.rows:[],n.intZendeskConfiguration.getDescriptions({id:A.zendeskConfiguration.id}).$promise}).then(function(e){return A.descriptions=e.rows?e.rows:[],n.intZendeskConfiguration.getFields({id:A.zendeskConfiguration.id}).$promise}).then(function(e){A.fields=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),n.intZendeskConfiguration.getTags({id:A.zendeskConfiguration.id}).$promise.then(function(e){A.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function r(n,a){e.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{zendeskConfiguration:a,zendeskConfigurations:A.zendeskConfigurations}}).finally(function(){A.getZendeskConfiguration(0)})}function l(t,i){var o=e.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(i.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(t).ok("OK").cancel("CANCEL");e.show(o).then(function(){n.intZendeskConfiguration.delete({id:i.id}).$promise.then(function(){_.remove(A.zendeskConfigurations,{id:i.id}),a.success({title:"ZendeskConfiguration deleted!",msg:i.name?i.name+" has been deleted!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){A.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})}function d(n,a){e.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"subject",item:a,items:A.subjects,configuration:A.zendeskConfiguration,account:A.zendeskAccount}})}function c(e){n.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.subjects,{id:e.id}),a.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(t,n){var a=e.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){c(n)},function(){console.log("CANCEL")})}function u(t){var n=e.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+A.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedSubjects.forEach(function(e){c(e)}),A.selectedSubjects=[]})}function p(n,a){e.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"description",item:a,items:A.descriptions,configuration:A.zendeskConfiguration,account:A.zendeskAccount}})}function g(e){n.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.descriptions,{id:e.id}),a.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(t,n){var a=e.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){g(n)},function(){console.log("CANCEL")})}function v(t){var n=e.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+A.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedDescriptions.forEach(function(e){g(e)}),A.selectedDescriptions=[]})}function b(n,a){e.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{type:"field",item:a,items:A.fields,configuration:A.zendeskConfiguration,account:A.zendeskAccount}})}function f(e){n.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(A.fields,{id:e.id}),a.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(t,n){var a=e.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(t).ok("OK").cancel("CANCEL");e.show(a).then(function(){f(n)},function(){console.log("CANCEL")})}function y(t){var n=e.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+A.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(t).ok("OK").cancel("CANCEL");e.show(n).then(function(){A.selectedFields.forEach(function(e){f(e)}),A.selectedFields=[]})}var A=this;A.zendeskAccount={},A.zendeskConfiguration={},A.zendeskConfigurations=[],A.selectedZendeskConfiguration=-1,A.init=o,A.getZendeskConfiguration=s,A.createOrEditZendeskConfiguration=r,A.deleteZendeskConfiguration=l,A.selectedTags=[],A.selectTagsChanged=i,n.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){A.tags=e.rows?e.rows:[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),A.selectedSubjects=[],A.createOrEditSubject=d,A.deleteSubjectConfirm=m,A.deleteSelectedSubjects=u,A.selectedDescriptions=[],A.createOrEditDescription=p,A.deleteDescriptionConfirm=h,A.deleteSelectedDescriptions=v,A.selectedFields=[],A.createOrEditField=b,A.deleteFieldConfirm=E,A.deleteSelectedFields=y}e.$inject=["$mdDialog","$document","api","toasty"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.intZendeskAccount.addConfiguration({id:t.params.id},p.zendeskConfiguration).$promise.then(function(e){p.zendeskConfigurations.unshift(e),i.success({title:"ZendeskConfiguration properly created",msg:p.zendeskConfiguration.name?p.zendeskConfiguration.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.intZendeskConfiguration.update({id:p.zendeskConfiguration.id},p.zendeskConfiguration).$promise.then(function(e){var t=_.find(p.zendeskConfigurations,{id:e.id});t&&_.merge(t,e),i.success({title:"ZendeskConfiguration properly saved!",msg:p.zendeskConfiguration.name?p.zendeskConfiguration.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.intZendeskConfiguration.delete({id:p.zendeskConfiguration.id}).$promise.then(function(){_.remove(p.zendeskConfigurations,{id:p.zendeskConfiguration.id}),i.success({title:"ZendeskConfiguration properly deleted!",msg:(p.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),u(p.zendeskConfiguration)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",p.zendeskConfiguration=angular.copy(s),p.zendeskConfigurations=o,p.newZendeskConfiguration=!1,p.zendeskConfiguration||(p.zendeskConfiguration={channel:"voice",type:"inbound"},p.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",p.newZendeskConfiguration=!0),p.addNewZendeskConfiguration=l,p.saveZendeskConfiguration=d,p.deleteZendeskConfiguration=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","zendeskConfigurations","zendeskConfiguration","api"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e})}function u(e,t){return l.intZendeskAccount.getFields({id:e.id}).$promise.then(function(){c.success({title:"ZendeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){c.error({title:"ZendeskAccount properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the zendeskAccount?").htmlContent("<b>"+(e.name||"zendeskAccount")+"</b> will be deleted.").ariaLabel("delete zendeskAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.zendeskAccounts=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.intZendeskAccount.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditZendeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskAccount:t,zendeskAccounts:C.zendeskAccounts.rows}})}function b(e){l.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(C.zendeskAccounts.rows,{id:e.id}),C.zendeskAccounts.count-=1,C.zendeskAccounts.rows.length||C.getZendeskAccounts(),c.success({title:"ZendeskAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedZendeskAccounts);return C.selectedZendeskAccounts=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+C.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedZendeskAccounts.forEach(function(e){b(e)}),C.selectedZendeskAccounts=[]})}function y(){C.selectedZendeskAccounts=[]}function A(){C.selectedZendeskAccounts=C.zendeskAccounts.rows}var C=this;C.zendeskAccounts=r||{count:0,rows:[]},C.table="zendeskAccounts",C.listOrder="",C.listOrderAsc=null,C.selectedZendeskAccounts=[],C.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,authType,password,token,serverUrl,description",limit:10,page:1},C.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.editstate=m,C.testtestintegrationaccount=u,C.deleteconfirm=p,C.success=g,C.getZendeskAccounts=h,C.createOrEditZendeskAccount=v,C.deleteZendeskAccount=b,C.exportSelectedZendeskAccounts=f,C.deleteSelectedZendeskAccounts=E,C.deselectZendeskAccounts=y,C.selectAllZendeskAccounts=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","zendeskAccounts","api","msUtils","toasty"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.jscriptyProject.save(p.project).$promise.then(function(e){p.projects.unshift(e),i.success({title:"Project properly created",msg:p.project.name?p.project.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.jscriptyProject.update({id:p.project.id},p.project).$promise.then(function(e){var t=_.find(p.projects,{id:e.id});t&&_.merge(t,e),i.success({title:"Project properly saved!",msg:p.project.name?p.project.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.jscriptyProject.delete({id:p.project.id}).$promise.then(function(){_.remove(p.projects,{id:p.project.id}),i.success({title:"Project properly deleted!",msg:(p.project.name||"project")+" has been deleted!"}),u(p.project)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="JSCRIPTY.EDIT_PROJECT",p.project=angular.copy(s),p.projects=o,p.newProject=!1,p.project||(p.project={},p.title="JSCRIPTY.NEW_PROJECT",p.newProject=!0),p.addNewProject=l,p.saveProject=d,p.deleteProject=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","projects","project","api"],angular.module("app.jscripty").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(){function e(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0}function t(e){n.project=e,_.isObjectLike(e.formData)?n.project.formData=e.formData:n.isJsonString(e.formData)?n.project.formData=JSON.parse(e.formData):n.project.formData={}}var n=this;n.project={},n.optionsBuilder={questionTypes:["text","textarea","radio","checkbox","select","number","date","time","email","range","url"],elementTypes:["question","paragraph"]},n.init=t,n.isJsonString=e}angular.module("app.tools").controller("ProjectBuilderController",e)}(),function(){"use strict";function e(e,t){function n(e){o.project=e}function a(n){var a=e.defer(),i=t.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(n).ok("SAVE").cancel("CANCEL");return t.show(i).then(function(){a.resolve(!0)},function(){a.reject()}),a.promise}function i(){o.formViewer.reset&&o.formViewer.reset()}var o=this;o.project={},o.responseData={},o.formViewer={},o.init=n,o.onSubmit=a,o.resetViewer=i}e.$inject=["$q","$mdDialog"],angular.module("app.tools").controller("ProjectViewerController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.jscripty.projects")}function r(){i.jscriptyProject.update({id:l.project.id},l.project).$promise.then(function(){a.success({title:"Project updated!",msg:l.project.name?l.project.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.project=e.params.project||o||{},l.selectedTab=e.params.tab||0,l.gotoProjects=s,l.saveProject=r}e.$inject=["$state","$mdDialog","$document","toasty","api","project"],angular.module("app.jscripty").controller("JscriptyProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.jscripty.projects.edit",{id:e.id,project:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the project?").htmlContent("<b>"+(e.name||"project")+"</b> will be deleted.").ariaLabel("delete project").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.projects=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.jscriptyProject.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:t,projects:A.projects.rows}})}function v(e){l.jscriptyProject.delete({id:e.id}).$promise.then(function(){_.remove(A.projects.rows,{id:e.id}),A.projects.count-=1,A.projects.rows.length||A.getProjects(),c.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedProjects);return A.selectedProjects=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+A.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedProjects.forEach(function(e){v(e)}),A.selectedProjects=[]})}function E(){A.selectedProjects=[]}function y(){A.selectedProjects=A.projects.rows}var A=this;A.projects=r||{count:0,rows:[]},A.table="projects",A.listOrder="",A.listOrderAsc=null,A.selectedProjects=[],A.query={fields:"createdAt,updatedAt,id,name,description,createdAt,formData",sort:"-updatedAt",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getProjects=g,A.createOrEditProject=h,A.deleteProject=v,A.exportSelectedProjects=b,A.deleteSelectedProjects=f,A.deselectProjects=E,A.selectAllProjects=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getProjects())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","projects","api","msUtils","toasty"],angular.module("app.jscripty").controller("JscriptyProjectsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailAccount.save(p.mailAccount).$promise.then(function(e){p.mailAccounts.unshift(e),i.success({title:"MailAccount properly created",msg:p.mailAccount.name?p.mailAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.mailAccount.update({id:p.mailAccount.id},p.mailAccount).$promise.then(function(e){var t=_.find(p.mailAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"MailAccount properly saved!",msg:p.mailAccount.name?p.mailAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.mailAccount.delete({id:p.mailAccount.id}).$promise.then(function(){_.remove(p.mailAccounts,{id:p.mailAccount.id}),i.success({title:"MailAccount properly deleted!",msg:(p.mailAccount.name||"mailAccount")+" has been deleted!"}),u(p.mailAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MAIL.EDIT_MAILACCOUNT",p.mailAccount=angular.copy(s),p.mailAccounts=o,p.newMailAccount=!1,p.mailAccount||(p.mailAccount={},p.title="MAIL.NEW_MAILACCOUNT",p.newMailAccount=!0),p.addNewMailAccount=l,p.saveMailAccount=d,p.deleteMailAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","mailAccounts","mailAccount","api"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.mailAccount=e,h.query.id=h.mailAccount.id,h.query.MailAccountId=h.mailAccount.id,h.getMailAccountMailDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the mailDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete mailDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.mailAccountMailDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.mailAccount.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditMailDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailDisposition:t,mailDispositions:h.mailAccountMailDispositions.rows}})}function p(e){r.mailDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.mailAccountMailDispositions.rows,{id:e.id}),h.mailAccountMailDispositions.count-=1,h.mailAccountMailDispositions.rows.length||h.getMailAccountMailDispositions(),s.success({title:"MailDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected mailDispositions?").htmlContent("<b>"+h.selectedMailAccountMailDispositions.length+" selected</b> will be deleted.").ariaLabel("delete mailDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedMailAccountMailDispositions.forEach(function(e){p(e)}),h.selectedMailAccountMailDispositions=[]})}var h=this;h.mailAccount={},h.mailAccountMailDispositions={count:0,rows:[]},h.selectedMailAccountMailDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getMailAccountMailDispositions=m,h.createOrEditMailAccountMailDisposition=u,h.deleteMailAccountMailDisposition=p,h.deleteSelectedMailAccountMailDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getMailAccountMailDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.mail").controller("MailAccountMailDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailDisposition.save(p.mailDisposition).$promise.then(function(e){p.mailDispositions.unshift(e),i.success({title:"MailDisposition properly created",msg:p.mailDisposition.name?p.mailDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.mailDisposition.update({id:p.mailDisposition.id},p.mailDisposition).$promise.then(function(e){var t=_.find(p.mailDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"MailDisposition properly saved!",msg:p.mailDisposition.name?p.mailDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The mailDisposition will be deleted.").ariaLabel("Delete MailDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.mailDisposition.delete({id:p.mailDisposition.id}).$promise.then(function(){_.remove(p.mailDispositions,{id:p.mailDisposition.id}),i.success({title:"MailDisposition properly deleted!",msg:(p.mailDisposition.name||"mailDisposition")+" has been deleted!"}),u(p.mailDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.mailDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MAIL.EDIT_MAILDISPOSITION",p.mailDisposition=angular.copy(s),p.mailDispositions=o,p.newMailDisposition=!1,p.mailDisposition||(p.mailDisposition={},p.title="MAIL.NEW_MAILDISPOSITION",p.newMailDisposition=!0),t.params.id&&(p.mailDisposition.MailAccountId=t.params.id),p.addNewMailDisposition=l,p.saveMailDisposition=d,p.deleteMailDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","mailDispositions","mailDisposition","api"],angular.module("app.mail").controller("CreateOrEditMailDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.mail.mailAccounts")}function r(){i.mailAccount.update({id:l.mailAccount.id},l.mailAccount).$promise.then(function(){a.success({title:"MailAccount updated!",msg:l.mailAccount.name?l.mailAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.mailAccount=e.params.mailAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoMailAccounts=s,l.saveMailAccount=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.template.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","mailAccount"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the mailAccount?").htmlContent("<b>"+(e.name||"mailAccount")+"</b> will be deleted.").ariaLabel("delete mailAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.mailAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.mailAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMailAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:t,mailAccounts:A.mailAccounts.rows}})}function v(e){l.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.mailAccounts.rows,{id:e.id}),A.mailAccounts.count-=1,A.mailAccounts.rows.length||A.getMailAccounts(),c.success({title:"MailAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedMailAccounts);return A.selectedMailAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+A.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMailAccounts.forEach(function(e){v(e)}),A.selectedMailAccounts=[]})}function E(){A.selectedMailAccounts=[]}function y(){A.selectedMailAccounts=A.mailAccounts.rows}var A=this;A.mailAccounts=r||{count:0,rows:[]},A.table="mailAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedMailAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,address,ListId,TemplateId,fidelity,timeout,service,description,Imap.host,Imap.username,Imap.password,Imap.port,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Imap.delete,Imap.ssl,Imap.keepalive,Smtp.host,Smtp.username,Smtp.password,Smtp.port,Smtp.ssl,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,whiteLabel",limit:10,page:1},A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getMailAccounts=g,A.createOrEditMailAccount=h,A.deleteMailAccount=v,A.exportSelectedMailAccounts=b,A.deleteSelectedMailAccounts=f,A.deselectMailAccounts=E,A.selectAllMailAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailAccounts","api","msUtils","toasty"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailQueue.save(p.mailQueue).$promise.then(function(e){p.mailQueues.unshift(e),i.success({title:"MailQueue properly created",msg:p.mailQueue.name?p.mailQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.mailQueue.update({id:p.mailQueue.id},p.mailQueue).$promise.then(function(e){var t=_.find(p.mailQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"MailQueue properly saved!",msg:p.mailQueue.name?p.mailQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.mailQueue.delete({id:p.mailQueue.id}).$promise.then(function(){_.remove(p.mailQueues,{id:p.mailQueue.id}),i.success({title:"MailQueue properly deleted!",msg:(p.mailQueue.name||"mailQueue")+" has been deleted!"}),u(p.mailQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MAIL.EDIT_MAILQUEUE",p.mailQueue=angular.copy(s),p.mailQueues=o,p.newMailQueue=!1,p.mailQueue||(p.mailQueue={strategy:"beepall"},p.title="MAIL.NEW_MAILQUEUE",p.newMailQueue=!0),p.addNewMailQueue=l,p.saveMailQueue=d,p.deleteMailQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","mailQueues","mailQueue","api"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.mailQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MAIL.ALL_TEAMS"),labelSelected:i.instant("MAIL.SELECTED_TEAMS"),transferCallback:function(e,a){n.mailQueue[a?"removeTeams":"addTeams"]({id:s.mailQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:mailQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.mailQueue.getTeams({id:s.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","mailQueue","$translate"],angular.module("app.mail").controller("MailQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:d.mailQueues?d.mailQueues.rows:[]}})}function r(){e.go("app.mail.mailQueues")}function l(){i.mailQueue.update({id:d.mailQueue.id},d.mailQueue).$promise.then(function(){a.success({title:"MailQueue updated!",msg:d.mailQueue.name?d.mailQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.mailQueue=e.params.mailQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoMailQueues=r,d.saveMailQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","mailQueue"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the mailQueue?").htmlContent("<b>"+(e.name||"mailQueue")+"</b> will be deleted.").ariaLabel("delete mailQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.mailQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.mailQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:t,mailQueues:A.mailQueues.rows}})}function v(e){l.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.mailQueues.rows,{id:e.id}),A.mailQueues.count-=1,A.mailQueues.rows.length||A.getMailQueues(),c.success({title:"MailQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedMailQueues);return A.selectedMailQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+A.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMailQueues.forEach(function(e){v(e)}),A.selectedMailQueues=[]})}function E(){A.selectedMailQueues=[]}function y(){A.selectedMailQueues=A.mailQueues.rows}var A=this;A.mailQueues=r||{count:0,rows:[]},A.table="mailQueues",A.listOrder="",A.listOrderAsc=null,A.selectedMailQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getMailQueues=g,A.createOrEditMailQueue=h,A.deleteMailQueue=v,A.exportSelectedMailQueues=b,A.deleteSelectedMailQueues=f,A.deselectMailQueues=E,A.selectAllMailQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","mailQueues","api","msUtils","toasty"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.campaign.save(p.ivrCampaign).$promise.then(function(e){p.ivrCampaigns.unshift(e),i.success({title:"IvrCampaign properly created",msg:p.ivrCampaign.name?p.ivrCampaign.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.campaign.update({id:p.ivrCampaign.id},p.ivrCampaign).$promise.then(function(e){var t=_.find(p.ivrCampaigns,{id:e.id});t&&_.merge(t,e),i.success({title:"IvrCampaign properly saved!",msg:p.ivrCampaign.name?p.ivrCampaign.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.campaign.delete({id:p.ivrCampaign.id}).$promise.then(function(){_.remove(p.ivrCampaigns,{id:p.ivrCampaign.id}),i.success({title:"IvrCampaign properly deleted!",msg:(p.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),u(p.ivrCampaign)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",p.ivrCampaign=angular.copy(s),p.ivrCampaigns=o,p.newIvrCampaign=!1,p.ivrCampaign||(p.ivrCampaign={active:!0,type:"ivr",limitCalls:30,dialOriginateTimeout:30,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialGlobalInterval:"07:00-22:00,*,*,*"},p.title="MOTIONDIALER.NEW_IVRCAMPAIGN",p.newIvrCampaign=!0),p.addNewIvrCampaign=l,p.saveIvrCampaign=d,p.deleteIvrCampaign=c,p.getDateFromString=m,p.closeDialog=u,r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.projects=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","ivrCampaigns","ivrCampaign","api"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.ivrCampaign=a,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){n.campaign[a?"removeBlackLists":"addBlackLists"]({id:s.ivrCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.campaign.getBlackLists({id:s.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","ivrCampaign","$translate"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.ivrCampaign=e,h.query.id=h.ivrCampaign.id,h.query.CampaignId=h.ivrCampaign.id,h.getIvrCampaignHopperBlacks()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.campaign.getHopperBlacks(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperBlack:t,hopperBlacks:h.ivrCampaignHopperBlacks.rows}})}function p(e){r.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(h.ivrCampaignHopperBlacks.rows,{id:e.id}),h.ivrCampaignHopperBlacks.count-=1,h.ivrCampaignHopperBlacks.rows.length||h.getIvrCampaignHopperBlacks(),s.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+h.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIvrCampaignHopperBlacks.forEach(function(e){p(e)}),h.selectedIvrCampaignHopperBlacks=[]})}var h=this;h.ivrCampaign={},h.ivrCampaignHopperBlacks={count:0,rows:[]},h.selectedIvrCampaignHopperBlacks=[],h.query={fields:"createdAt,updatedAt,ContactId,phone",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIvrCampaignHopperBlacks=m,h.createOrEditIvrCampaignHopperBlack=u,h.deleteIvrCampaignHopperBlack=p,h.deleteSelectedIvrCampaignHopperBlacks=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIvrCampaignHopperBlacks())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.ivrCampaign=e,h.query.id=h.ivrCampaign.id,h.query.CampaignId=h.ivrCampaign.id,h.getIvrCampaignHopperFinals()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.campaign.getHopperFinals(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperFinal:t,hopperFinals:h.ivrCampaignHopperFinals.rows}})}function p(e){r.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(h.ivrCampaignHopperFinals.rows,{id:e.id}),h.ivrCampaignHopperFinals.count-=1,h.ivrCampaignHopperFinals.rows.length||h.getIvrCampaignHopperFinals(),s.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+h.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIvrCampaignHopperFinals.forEach(function(e){p(e)}),h.selectedIvrCampaignHopperFinals=[]})}var h=this;h.ivrCampaign={},h.ivrCampaignHopperFinals={count:0,rows:[]},h.selectedIvrCampaignHopperFinals=[],h.query={fields:"createdAt,updatedAt,uniqueid,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIvrCampaignHopperFinals=m,h.createOrEditIvrCampaignHopperFinal=u,h.deleteIvrCampaignHopperFinal=p,h.deleteSelectedIvrCampaignHopperFinals=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIvrCampaignHopperFinals())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.ivrCampaign=e,h.query.id=h.ivrCampaign.id,h.query.CampaignId=h.ivrCampaign.id,h.getIvrCampaignHopperHistories()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.campaign.getHopperHistories(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperHistory:t,hopperHistories:h.ivrCampaignHopperHistories.rows}})}function p(e){r.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(h.ivrCampaignHopperHistories.rows,{id:e.id}),h.ivrCampaignHopperHistories.count-=1,h.ivrCampaignHopperHistories.rows.length||h.getIvrCampaignHopperHistories(),s.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+h.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIvrCampaignHopperHistories.forEach(function(e){p(e)}),h.selectedIvrCampaignHopperHistories=[]})}var h=this;h.ivrCampaign={},h.ivrCampaignHopperHistories={count:0,rows:[]},h.selectedIvrCampaignHopperHistories=[],h.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIvrCampaignHopperHistories=m,h.createOrEditIvrCampaignHopperHistory=u,h.deleteIvrCampaignHopperHistory=p,h.deleteSelectedIvrCampaignHopperHistories=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIvrCampaignHopperHistories())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.ivrCampaign=e,h.query.id=h.ivrCampaign.id,h.query.CampaignId=h.ivrCampaign.id,h.getIvrCampaignHoppers()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.ivrCampaignHoppers=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.campaign.getHoppers(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:h.ivrCampaignHoppers.rows}})}function p(e){r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(h.ivrCampaignHoppers.rows,{id:e.id}),h.ivrCampaignHoppers.count-=1,h.ivrCampaignHoppers.rows.length||h.getIvrCampaignHoppers(),s.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+h.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIvrCampaignHoppers.forEach(function(e){p(e)}),h.selectedIvrCampaignHoppers=[]})}var h=this;h.ivrCampaign={},h.ivrCampaignHoppers={count:0,rows:[]},h.selectedIvrCampaignHoppers=[],h.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,scheduledat",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIvrCampaignHoppers=m,h.createOrEditIvrCampaignHopper=u,h.deleteIvrCampaignHopper=p,h.deleteSelectedIvrCampaignHoppers=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIvrCampaignHoppers())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmHopper.save(p.hopper).$promise.then(function(e){p.hoppers.unshift(e),i.success({title:"Hopper properly created",msg:p.hopper.name?p.hopper.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmHopper.update({id:p.hopper.id},p.hopper).$promise.then(function(e){var t=_.find(p.hoppers,{id:e.id});t&&_.merge(t,e),i.success({title:"Hopper properly saved!",msg:p.hopper.name?p.hopper.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmHopper.delete({id:p.hopper.id}).$promise.then(function(){_.remove(p.hoppers,{id:p.hopper.id}),i.success({title:"Hopper properly deleted!",msg:(p.hopper.name||"hopper")+" has been deleted!"}),u(p.hopper)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MOTIONDIALER.EDIT_HOPPER",p.hopper=angular.copy(s),p.hoppers=o,p.newHopper=!1,p.hopper||(p.hopper={},p.title="MOTIONDIALER.NEW_HOPPER",p.newHopper=!0),t.params.id&&(p.hopper.CampaignId=t.params.id),p.addNewHopper=l,p.saveHopper=d,p.deleteHopper=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api"],angular.module("app.motiondialer").controller("CreateOrEditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.ivrCampaign=a,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){n.campaign[a?"removeLists":"addLists"]({id:s.ivrCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.campaign.getLists({id:s.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","ivrCampaign","$translate"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:c.ivrCampaigns?c.ivrCampaigns.rows:[]}})}function r(e,a){t.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:c.ivrCampaigns?c.ivrCampaigns.rows:[]}})}function l(){e.go("app.motiondialer.ivrCampaigns")}function d(){i.campaign.update({id:c.ivrCampaign.id},c.ivrCampaign).$promise.then(function(){a.success({title:"IvrCampaign updated!",msg:c.ivrCampaign.name?c.ivrCampaign.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.ivrCampaign=e.params.ivrCampaign||o||{},c.selectedTab=e.params.tab||0,c.listadddialog=s,c.blacklistadddialog=r,c.gotoIvrCampaigns=l,c.saveIvrCampaign=d,i.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.trunks=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){c.projects=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){c.interval=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","ivrCampaign"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e})}function u(e,t){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:x.ivrCampaigns?x.ivrCampaigns.rows:[]}})}function p(e,t){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:x.ivrCampaigns?x.ivrCampaigns.rows:[]}})}function g(e,t){var n=i.confirm().title("Are you sure want to delete the ivrCampaign?").htmlContent("<b>"+(e.name||"ivrCampaign")+"</b> will be deleted.").ariaLabel("delete ivrCampaign").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){f(e)},function(){console.log("CANCEL")})}function h(e){x.ivrCampaigns=e||{count:0,rows:[]}}function v(){x.query.offset=(x.query.page-1)*x.query.limit,x.promise=l.campaign.get(x.query,h).$promise}function b(e,t){i.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:t,ivrCampaigns:x.ivrCampaigns.rows}})}function f(e){l.campaign.delete({id:e.id}).$promise.then(function(){_.remove(x.ivrCampaigns.rows,{id:e.id}),x.ivrCampaigns.count-=1,x.ivrCampaigns.rows.length||x.getIvrCampaigns(),c.success({title:"IvrCampaign deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(){var e=_.clone(x.selectedIvrCampaigns);return x.selectedIvrCampaigns=[],e}function y(e){var t=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+x.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){x.selectedIvrCampaigns.forEach(function(e){f(e)}),x.selectedIvrCampaigns=[]})}function A(){x.selectedIvrCampaigns=[]}function C(){x.selectedIvrCampaigns=x.ivrCampaigns.rows}var x=this;x.ivrCampaigns=r||{count:0,rows:[]},x.table="ivrCampaigns",x.listOrder="",x.listOrderAsc=null,x.selectedIvrCampaigns=[],x.query={fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialGlobalInterval,dialTimezone",type:"ivr",sort:"-updatedAt",limit:10,page:1},x.editstate=m,x.listadddialog=u,x.blacklistadddialog=p,x.deleteconfirm=g,x.success=h,x.getIvrCampaigns=v,x.createOrEditIvrCampaign=b,x.deleteIvrCampaign=f,x.exportSelectedIvrCampaigns=E,x.deleteSelectedIvrCampaigns=y,x.deselectIvrCampaigns=A,x.selectAllIvrCampaigns=C,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){x.trunks=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){x.projects=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){x.interval=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var T=!0,S=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(S=x.query.page),e!==t&&(x.query.page=1),e||(x.query.page=S),x.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","ivrCampaigns","api","msUtils","toasty"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceQueue.save(p.queueCampaign).$promise.then(function(e){p.queueCampaigns.unshift(e),i.success({title:"QueueCampaign properly created",msg:p.queueCampaign.name?p.queueCampaign.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceQueue.update({id:p.queueCampaign.id},p.queueCampaign).$promise.then(function(e){var t=_.find(p.queueCampaigns,{id:e.id});t&&_.merge(t,e),i.success({title:"QueueCampaign properly saved!",msg:p.queueCampaign.name?p.queueCampaign.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceQueue.delete({id:p.queueCampaign.id}).$promise.then(function(){_.remove(p.queueCampaigns,{id:p.queueCampaign.id}),i.success({title:"QueueCampaign properly deleted!",msg:(p.queueCampaign.name||"queueCampaign")+" has been deleted!"}),u(p.queueCampaign)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",p.queueCampaign=angular.copy(s),p.queueCampaigns=o,p.newQueueCampaign=!1,p.queueCampaign||(p.queueCampaign={dialActive:!0,type:"outbound",autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no",dialGlobalInterval:"07:00-22:00,*,*,*",dialMethod:"progressive",dialPowerLevel:1,dialPredictiveOptimization:"dropRate",dialPredictiveOptimizationPercentage:3,dialPredictiveInterval:10,dialLimitQueue:0,dialOriginateTimeout:30,dialQueueOptions:"tTxX",dialQueueTimeout:3,strategy:"rrmemory",timeout:3,retry:3,weight:1,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150},p.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",p.newQueueCampaign=!0),p.addNewQueueCampaign=l,p.saveQueueCampaign=d,p.deleteQueueCampaign=c,p.getDateFromString=m,p.closeDialog=u,r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","queueCampaigns","queueCampaign","api"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){return n.voiceQueue[c.isVoiceRealtime()?"getMembers":"getAgents"]({id:c.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return c.isVoiceRealtime()?c.selectedItems=e.rows?_.map(e.rows,function(e){return e.id=e.UserId,e.fullname=e.membername,e.penalty=e.hasOwnProperty("penalty")?"penalty "+e.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[]:c.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserQueueCampaign?"penalty "+e.UserQueueCampaign.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.selectedItems=c.selectedItems,n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserQueueCampaign?"penalty "+e.UserQueueCampaign.penalty:"",e.internal=e.internal?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.items=_.differenceBy(c.items,c.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function l(){return o}function d(){e.hide()}var c=this;c.queueCampaign=a,c.penalty=0,c.items=[],c.selectedItems=[],c.closeDialog=d,c.isVoiceRealtime=l,c.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:"internal",line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeAgents":"addAgents"]({id:c.queueCampaign.id,ids:_.map(e,c.isVoiceRealtime()&&a?"UserId":"id"),penalty:c.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"QueueCampaign properly "+(a?"removed":"added"),msg:"QueueCampaign has been "+(a?"removed":"added")+"!"}),a||r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},r()}e.$inject=["$mdDialog","toasty","api","queueCampaign","queueCampaigns","realtime","$translate"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.queueCampaign=a,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeBlackLists":"addBlackLists"]({id:s.queueCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getBlackLists({id:s.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","queueCampaign","$translate"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.queueCampaign=e,h.query.id=h.queueCampaign.id,h.query.VoiceQueueId=h.queueCampaign.id,h.getQueueCampaignHopperBlacks()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceQueue.getHopperBlacks(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperBlack:t,hopperBlacks:h.queueCampaignHopperBlacks.rows}})}function p(e){r.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(h.queueCampaignHopperBlacks.rows,{id:e.id}),h.queueCampaignHopperBlacks.count-=1,h.queueCampaignHopperBlacks.rows.length||h.getQueueCampaignHopperBlacks(),s.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+h.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedQueueCampaignHopperBlacks.forEach(function(e){p(e)}),h.selectedQueueCampaignHopperBlacks=[]})}var h=this;h.queueCampaign={},h.queueCampaignHopperBlacks={count:0,rows:[]},h.selectedQueueCampaignHopperBlacks=[],h.query={fields:"createdAt,updatedAt,ContactId,phone",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getQueueCampaignHopperBlacks=m,h.createOrEditQueueCampaignHopperBlack=u,h.deleteQueueCampaignHopperBlack=p,h.deleteSelectedQueueCampaignHopperBlacks=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getQueueCampaignHopperBlacks())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.queueCampaign=e,h.query.id=h.queueCampaign.id,h.query.VoiceQueueId=h.queueCampaign.id,h.getQueueCampaignHopperFinals()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.queueCampaignHopperFinals=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceQueue.getHopperFinals(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperFinal:t,hopperFinals:h.queueCampaignHopperFinals.rows}})}function p(e){r.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(h.queueCampaignHopperFinals.rows,{id:e.id}),h.queueCampaignHopperFinals.count-=1,h.queueCampaignHopperFinals.rows.length||h.getQueueCampaignHopperFinals(),s.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+h.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedQueueCampaignHopperFinals.forEach(function(e){p(e)}),h.selectedQueueCampaignHopperFinals=[]})}var h=this;h.queueCampaign={},h.queueCampaignHopperFinals={count:0,rows:[]},h.selectedQueueCampaignHopperFinals=[],h.query={fields:"createdAt,updatedAt,uniqueid,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getQueueCampaignHopperFinals=m,h.createOrEditQueueCampaignHopperFinal=u,h.deleteQueueCampaignHopperFinal=p,h.deleteSelectedQueueCampaignHopperFinals=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getQueueCampaignHopperFinals())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.queueCampaign=e,h.query.id=h.queueCampaign.id,h.query.VoiceQueueId=h.queueCampaign.id,h.getQueueCampaignHopperHistories()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.queueCampaignHopperHistories=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceQueue.getHopperHistories(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopperHistory:t,hopperHistories:h.queueCampaignHopperHistories.rows}})}function p(e){r.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(h.queueCampaignHopperHistories.rows,{id:e.id}),h.queueCampaignHopperHistories.count-=1,h.queueCampaignHopperHistories.rows.length||h.getQueueCampaignHopperHistories(),s.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+h.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedQueueCampaignHopperHistories.forEach(function(e){p(e)}),h.selectedQueueCampaignHopperHistories=[]})}var h=this;h.queueCampaign={},h.queueCampaignHopperHistories={count:0,rows:[]},h.selectedQueueCampaignHopperHistories=[],h.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getQueueCampaignHopperHistories=m,h.createOrEditQueueCampaignHopperHistory=u,h.deleteQueueCampaignHopperHistory=p,h.deleteSelectedQueueCampaignHopperHistories=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getQueueCampaignHopperHistories())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.queueCampaign=e,h.query.id=h.queueCampaign.id,h.query.VoiceQueueId=h.queueCampaign.id,h.getQueueCampaignHoppers()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.queueCampaignHoppers=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceQueue.getHoppers(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditHopperDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:t,hoppers:h.queueCampaignHoppers.rows}})}function p(e){r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(h.queueCampaignHoppers.rows,{id:e.id}),h.queueCampaignHoppers.count-=1,h.queueCampaignHoppers.rows.length||h.getQueueCampaignHoppers(),s.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+h.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedQueueCampaignHoppers.forEach(function(e){p(e)}),h.selectedQueueCampaignHoppers=[]})}var h=this;h.queueCampaign={},h.queueCampaignHoppers={count:0,rows:[]},h.selectedQueueCampaignHoppers=[],h.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,scheduledat",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getQueueCampaignHoppers=m,h.createOrEditQueueCampaignHopper=u,h.deleteQueueCampaignHopper=p,h.deleteSelectedQueueCampaignHoppers=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getQueueCampaignHoppers())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cmHopper.save(p.hopper).$promise.then(function(e){p.hoppers.unshift(e),i.success({title:"Hopper properly created",msg:p.hopper.name?p.hopper.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cmHopper.update({id:p.hopper.id},p.hopper).$promise.then(function(e){var t=_.find(p.hoppers,{id:e.id});t&&_.merge(t,e),i.success({title:"Hopper properly saved!",msg:p.hopper.name?p.hopper.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cmHopper.delete({id:p.hopper.id}).$promise.then(function(){_.remove(p.hoppers,{id:p.hopper.id}),i.success({title:"Hopper properly deleted!",msg:(p.hopper.name||"hopper")+" has been deleted!"}),u(p.hopper)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="MOTIONDIALER.EDIT_HOPPER",p.hopper=angular.copy(s),p.hoppers=o,p.newHopper=!1,p.hopper||(p.hopper={},p.title="MOTIONDIALER.NEW_HOPPER",p.newHopper=!0),t.params.id&&(p.hopper.VoiceQueueId=t.params.id),p.addNewHopper=l,p.saveHopper=d,p.deleteHopper=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api"],angular.module("app.motiondialer").controller("CreateOrEditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.queueCampaign=a,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeLists":"addLists"]({id:s.queueCampaign.id,ids:_.map(e,"id")}).$promise.then(function(){t.success({title:"List properly "+(a?"removed":"added"),msg:"List has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getLists({id:s.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.cmList.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","queueCampaign","$translate"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.queueCampaign=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("MOTIONDIALER.ALL_TEAMS"),labelSelected:i.instant("MOTIONDIALER.SELECTED_TEAMS"),transferCallback:function(e,a){n.voiceQueue[a?"removeTeams":"addTeams"]({id:s.queueCampaign.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getTeams({id:s.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","queueCampaign","$translate"],angular.module("app.motiondialer").controller("QueueCampaignteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[]}})}function r(e,a){t.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[]}})}function l(e,a){t.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[]}})}function d(e,a){t.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],realtime:!1}})}function c(){e.go("app.motiondialer.queueCampaigns")}function m(){i.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(){a.success({title:"QueueCampaign updated!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var u=this;u.queueCampaign=e.params.queueCampaign||o||{},u.selectedTab=e.params.tab||0,u.listadddialog=s,u.blacklistadddialog=r,u.teamadddialog=l,u.agentadddialog=d,u.gotoQueueCampaigns=c,u.saveQueueCampaign=m,i.voiceMusicOnHold.get({fields:"name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","queueCampaign"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e})}function u(e,t){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:S.queueCampaigns?S.queueCampaigns.rows:[]}})}function p(e,t){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:S.queueCampaigns?S.queueCampaigns.rows:[]}})}function g(e,t){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:S.queueCampaigns?S.queueCampaigns.rows:[]}})}function h(e,t){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:S.queueCampaigns?S.queueCampaigns.rows:[],realtime:!1}})}function v(e,t){var n=i.confirm().title("Are you sure want to delete the queueCampaign?").htmlContent("<b>"+(e.name||"queueCampaign")+"</b> will be deleted.").ariaLabel("delete queueCampaign").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){y(e)},function(){console.log("CANCEL")})}function b(e){S.queueCampaigns=e||{count:0,rows:[]}}function f(){S.query.offset=(S.query.page-1)*S.query.limit,S.promise=l.voiceQueue.get(S.query,b).$promise}function E(e,t){i.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:t,queueCampaigns:S.queueCampaigns.rows}})}function y(e){l.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(S.queueCampaigns.rows,{id:e.id}),S.queueCampaigns.count-=1,S.queueCampaigns.rows.length||S.getQueueCampaigns(),c.success({title:"QueueCampaign deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=_.clone(S.selectedQueueCampaigns);return S.selectedQueueCampaigns=[],e}function C(e){var t=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+S.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){S.selectedQueueCampaigns.forEach(function(e){y(e)}),S.selectedQueueCampaigns=[]})}function x(){S.selectedQueueCampaigns=[]}function T(){S.selectedQueueCampaigns=S.queueCampaigns.rows}var S=this;S.queueCampaigns=r||{count:0,rows:[]},S.table="queueCampaigns",S.listOrder="",S.listOrderAsc=null,S.selectedQueueCampaigns=[],S.query={fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialGlobalInterval,dialTimezone,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialOriginateTimeout,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,description",type:"outbound",sort:"-updatedAt",limit:10,page:1},S.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraydialMethod=_.keyBy([{option:"Progressive",value:"'progressive'"},{option:"PowerDialing",value:"'power'"},{option:"Predictive",value:"'predictive'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.arraystrategy=_.keyBy([{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Least Recent",value:"'leastrecent'"},{option:"Fewest Calls",value:"'fewestcalls'"},{option:"Random",value:"'random'"},{option:"Linear",value:"'linear'"},{option:"Weight Random",value:"'wrandom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.editstate=m,S.listadddialog=u,S.blacklistadddialog=p,S.teamadddialog=g,S.agentadddialog=h,S.deleteconfirm=v,S.success=b,S.getQueueCampaigns=f,S.createOrEditQueueCampaign=E,S.deleteQueueCampaign=y,S.exportSelectedQueueCampaigns=A,S.deleteSelectedQueueCampaigns=C,S.deselectQueueCampaigns=x,S.selectAllQueueCampaigns=T,l.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){S.trunks=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){S.interval=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var O=!0,w=1;e.$watch("vm.query.filter",function(e,t){O?s(function(){O=!1}):(t||(w=S.query.page),e!==t&&(S.query.page=1),e||(S.query.page=w),S.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","queueCampaigns","api","msUtils","toasty"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){_.forIn(A.agents,function(e,t){A.rpcAgents[t]&&_.merge(e,_.pick(A.rpcAgents[t],C))})}function u(e,t){return r.user.logout({id:e.id}).$promise.then(function(){d.success({title:"Agent logout",msg:e.fullname+"  properly logout"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function p(e,t){n.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",realtime:!0,direction:"outbound"}})}function g(e,t){return r.user.pause({id:e.id,type:t})}function h(e){return r.user.unpause({id:e.id})}function v(e){return _.includes(A.availableStates,e)}function b(e){A.agents[e.id]&&_.merge(A.agents[e.id],_.pick(e,C))}function f(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))}function E(e){A.count=e.count,A.agents=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function y(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=r.user.get(A.query,E).$promise}var A=this,C=["userpic","online","voicePause","lastLoginAt","lastPauseAt","pauseType","internal","state","stateTime","status","address"];A.availableStates=["ringing","inuse","busy","onhold","not_inuse"],A.pauses=i||{count:0,rows:[]},A.count=o.count,A.agents=o?_.keyBy(o.rows?o.rows:[],"id"):{},A.rpcAgents=s?_.keyBy(s.rows?s.rows:[],"id"):{},A.query={fields:"id,fullname,userpic,role,internal,online,voicePause,pauseType,lastLoginAt",role:"agent",sort:"-updatedAt",limit:10,page:1},A.statusClass=c.status,A.stateClass=c.state,A.pause=g,A.unPause=h,A.onSave=b,A.$onInit=m,A.success=E,A.showInfo=f,A.queueAdd=p,A.getAgents=y,A.isAvailableState=v,A.logout=u,l.on("user:save",A.onSave),l.on("user:update",A.onSave);var x=!0,T=1;e.$watch("vm.query.filter",function(e,n){x?t(function(){x=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getAgents())}),e.$on("$destroy",function(){l.removeAllListeners("user:save"),l.removeAllListeners("user:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","pauses","agents","rpcAgents","api","socket","toasty","helperClasses"],angular.module("app.motiondialer").controller("AgentsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(){_.forIn(g.campaigns,function(e,t){g.rpcCampaigns[t]&&_.merge(e,_.pick(g.rpcCampaigns[t],h))})}function c(e){g.campaigns[e.id]&&(_.merge(g.campaigns[e.id],_.pick(e,h)),_.merge(g.rpcCampaigns[e.id],_.pick(e,h)))}function m(e){g.count=e.count,g.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},d()}function u(){g.query.offset=(g.query.page-1)*g.query.limit,g.promise=s.campaign.get(g.query,m).$promise}function p(e,t){n.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:t,ivrCampaigns:_.values(g.campaigns)}})}var g=this,h=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];g.count=o.count,g.campaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},g.rpcCampaigns=i?_.keyBy(i.rows?i.rows:[],"id"):{},g.query={sort:"-updatedAt",limit:10,page:1},g.success=m,g.getCampaigns=u,g.onSave=c,g.$onInit=d,g.createOrEditIvrCampaign=p,r.on("campaign:save",g.onSave);var v=!0,b=1;e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(b=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=b),g.getCampaigns())}),e.$on("$destroy",function(){r.removeAllListeners("campaign:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","rpcCampaigns","campaigns","api","socket","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(e){return _.size(e)}function c(e){"outbound"===e.type&&(h.rpcVoiceQueuesChannels[e.uniqueid]=e)}function m(e){h.rpcVoiceQueuesChannels[e.uniqueid]&&delete h.rpcVoiceQueuesChannels[e.uniqueid]}function u(e){return o.rpc.getVoiceQueuesChannelHangup({uniqueid:e}).$promise.then(function(t){l.success({title:"Channel "+e+" properly hangup!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function p(e,t){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:e,exten:t}).$promise.then(function(t){l.success({title:"Channel "+e+" properly redirect!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function g(e,t){var a=n.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return n.show(a).then(function(e){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e}).$promise}).then(function(e){l.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}var h=this;h.agents=a||{count:0,rows:[]},h.rpcVoiceQueuesChannels=i?_.keyBy(i.rows?_.filter(i.rows,{type:"outbound"}):[],"uniqueid"):{},h.queryChannels={limit:10,page:1},h.getSize=d,h.onSave=c,h.onRemove=m,h.hangup=u,h.redirectToAgent=p,h.redirectToNumber=g,s.on("voice_queue_channel:save",h.onSave),s.on("voice_queue_channel:remove",h.onRemove),e.$on("$destroy",function(){s.removeAllListeners("voice_queue_channel:save"),s.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){_.forIn(m.queues,function(e,t){m.rpcQueues[t]&&_.merge(e,_.pick(m.rpcQueues[t],u))})}function l(e){m.queues[e.id]&&_.merge(m.queues[e.id],_.pick(e,u))}function d(e){m.count=e.count,m.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},r()}function c(){m.query.offset=(m.query.page-1)*m.query.limit,s.hasRole("admin")?m.promise=i.voiceQueue.get(m.query,d).$promise:m.promise=i.user.getQueues(m.query,d).$promise}var m=this,u=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay"];m.count=n.count,m.queues=n?_.keyBy(n.rows?n.rows:[],"id"):{},m.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},s.hasRole("admin")?m.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:m.query={id:s.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},m.success=d,m.getQueues=c,m.onSave=l,m.$onInit=r,o.on("voice_queue:save",m.onSave);var p=!0,g=1;e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=g),m.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save")})}e.$inject=["$scope","$timeout","queues","rpcQueues","api","socket","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){var e=[];return _.forIn(E.queues,function(t,n){t.paused=0,t.loggedInDb=0,e.push(r.voiceQueue.getMembers({id:n}).$promise),E.rpcQueues[n]&&_.merge(t,_.pick(E.rpcQueues[n],y))}),a.all(e).then(function(e){for(var t=0;t<e.length;t+=1)for(var n=0;n<e[t].rows.length;n++)e[t].rows[n].paused&&E.queues[e[t].rows[n].VoiceQueueId].paused++,E.queues[e[t].rows[n].VoiceQueueId].loggedInDb++}).catch(function(e){console.error(e)})}function u(e){E.queues[e.id]&&_.merge(E.queues[e.id],_.pick(e,y))}function p(e){}function g(e){E.count=e.count,E.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function h(){E.query.offset=(E.query.page-1)*E.query.limit,c.hasRole("admin")?E.promise=r.voiceQueue.get(E.query,g).$promise:E.promise=r.user.getQueues(E.query,g).$promise}function v(e,t){n.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:t,queueCampaigns:_.values(E.queues)}})}function b(e,t){n.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:E.queues?E.queues.rows:[],realtime:!0}})}function f(e){return r.voiceQueue.update(e).$promise.then(function(){d.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){d.error({title:"Error creating queue!",msg:e.message})})}var E=this,y=["loggedIn","available","waiting","talking","originated","message","dialActive","dialMethod","Trunk"];E.count=o.count,E.queues=o?_.keyBy(o.rows?o.rows:[],"id"):{},E.rpcQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},c.hasRole("admin")?E.query={type:"outbound",sort:"-updatedAt",limit:10,page:1}:E.query={id:c.getCurrentUser().id,channel:"voice",type:"outbound",sort:"-updatedAt",limit:10,page:1},E.success=g,E.getQueues=h,E.createOrEditVoiceQueue=v,E.agentAdd=b,E.updateQueue=f,E.onSave=u,E.onSaveMember=p,E.$onInit=m,l.on("voice_queue:save",E.onSave),l.on("userVoiceQueueRt:save",E.onSaveMember),l.on("userVoiceQueueRt:update",E.onSaveMember);var A=!0,C=1;e.$watch("vm.query.filter",function(e,n){A?t(function(){A=!1}):(n||(C=E.query.page),e!==n&&(E.query.page=1),e||(E.query.page=C),E.getQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("userVoiceQueueRt:save"),l.removeAllListeners("userVoiceQueueRt:update")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";function e(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}}angular.module("app.auth").factory("helperClasses",e)}(),function(){"use strict";function e(e,t,n){var a=this;switch(n.disconnect(),n.connect(),a.selectedTab=0,t.current.name){case"app.motiondialer.realtime.agents":a.selectedTab=0;break;case"app.motiondialer.realtime.queues":a.selectedTab=1;break;case"app.motiondialer.realtime.queue_calls":a.selectedTab=2;break;case"app.motiondialer.realtime.queue_params":a.selectedTab=3;break;case"app.motiondialer.realtime.ivr_campaigns":a.selectedTab=4;break;default:a.selectedTab=0,t.go("app.motiondialer.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.motiondialer.realtime.agents");break;case 1:t.go("app.motiondialer.realtime.queues");break;case 2:t.go("app.motiondialer.realtime.queue_calls");break;case 3:t.go("app.motiondialer.realtime.queue_params");break;case 4:t.go("app.motiondialer.realtime.ivr_campaigns");break;default:t.go("app.motiondialer.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.motiondialer").controller("MotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.openchannelAccount.save(p.openchannelAccount).$promise.then(function(e){p.openchannelAccounts.unshift(e),i.success({title:"OpenchannelAccount properly created",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.openchannelAccount.update({id:p.openchannelAccount.id},p.openchannelAccount).$promise.then(function(e){var t=_.find(p.openchannelAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"OpenchannelAccount properly saved!",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.openchannelAccount.delete({id:p.openchannelAccount.id}).$promise.then(function(){_.remove(p.openchannelAccounts,{id:p.openchannelAccount.id}),i.success({title:"OpenchannelAccount properly deleted!",msg:(p.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),u(p.openchannelAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",p.openchannelAccount=angular.copy(s),p.openchannelAccounts=o,p.newOpenchannelAccount=!1,p.openchannelAccount||(p.openchannelAccount={remote:n.protocol()+"://"+n.host()+":"+n.port()},p.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",p.newOpenchannelAccount=!0),p.addNewOpenchannelAccount=l,p.saveOpenchannelAccount=d,p.deleteOpenchannelAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","openchannelAccounts","openchannelAccount","api"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.openchannelAccount=e,h.query.id=h.openchannelAccount.id,h.query.OpenchannelAccountId=h.openchannelAccount.id,h.getOpenchannelAccountOpenchannelDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the openchannelDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete openchannelDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.openchannelAccountOpenchannelDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.openchannelAccount.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditOpenchannelDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelDisposition:t,openchannelDispositions:h.openchannelAccountOpenchannelDispositions.rows}})}function p(e){r.openchannelDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.openchannelAccountOpenchannelDispositions.rows,{id:e.id}),h.openchannelAccountOpenchannelDispositions.count-=1,h.openchannelAccountOpenchannelDispositions.rows.length||h.getOpenchannelAccountOpenchannelDispositions(),s.success({title:"OpenchannelDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelDispositions?").htmlContent("<b>"+h.selectedOpenchannelAccountOpenchannelDispositions.length+" selected</b> will be deleted.").ariaLabel("delete openchannelDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedOpenchannelAccountOpenchannelDispositions.forEach(function(e){p(e)}),h.selectedOpenchannelAccountOpenchannelDispositions=[]})}var h=this;h.openchannelAccount={},h.openchannelAccountOpenchannelDispositions={count:0,rows:[]},h.selectedOpenchannelAccountOpenchannelDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getOpenchannelAccountOpenchannelDispositions=m,h.createOrEditOpenchannelAccountOpenchannelDisposition=u,h.deleteOpenchannelAccountOpenchannelDisposition=p,h.deleteSelectedOpenchannelAccountOpenchannelDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getOpenchannelAccountOpenchannelDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.openchannelDisposition.save(p.openchannelDisposition).$promise.then(function(e){p.openchannelDispositions.unshift(e),i.success({title:"OpenchannelDisposition properly created",msg:p.openchannelDisposition.name?p.openchannelDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.openchannelDisposition.update({id:p.openchannelDisposition.id},p.openchannelDisposition).$promise.then(function(e){var t=_.find(p.openchannelDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"OpenchannelDisposition properly saved!",msg:p.openchannelDisposition.name?p.openchannelDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The openchannelDisposition will be deleted.").ariaLabel("Delete OpenchannelDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.openchannelDisposition.delete({id:p.openchannelDisposition.id}).$promise.then(function(){_.remove(p.openchannelDispositions,{id:p.openchannelDisposition.id}),i.success({title:"OpenchannelDisposition properly deleted!",msg:(p.openchannelDisposition.name||"openchannelDisposition")+" has been deleted!"}),u(p.openchannelDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="OPENCHANNEL.EDIT_OPENCHANNELDISPOSITION",p.openchannelDisposition=angular.copy(s),p.openchannelDispositions=o,p.newOpenchannelDisposition=!1,p.openchannelDisposition||(p.openchannelDisposition={},p.title="OPENCHANNEL.NEW_OPENCHANNELDISPOSITION",p.newOpenchannelDisposition=!0),t.params.id&&(p.openchannelDisposition.OpenchannelAccountId=t.params.id),p.addNewOpenchannelDisposition=l,p.saveOpenchannelDisposition=d,p.deleteOpenchannelDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","openchannelDispositions","openchannelDisposition","api"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.openchannel.openchannelAccounts")}function r(){i.openchannelAccount.update({id:l.openchannelAccount.id},l.openchannelAccount).$promise.then(function(){a.success({title:"OpenchannelAccount updated!",msg:l.openchannelAccount.name?l.openchannelAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.openchannelAccount=e.params.openchannelAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoOpenchannelAccounts=s,l.saveOpenchannelAccount=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","openchannelAccount"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the openchannelAccount?").htmlContent("<b>"+(e.name||"openchannelAccount")+"</b> will be deleted.").ariaLabel("delete openchannelAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.openchannelAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.openchannelAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditOpenchannelAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:t,openchannelAccounts:A.openchannelAccounts.rows}})}function v(e){l.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.openchannelAccounts.rows,{id:e.id}),A.openchannelAccounts.count-=1,A.openchannelAccounts.rows.length||A.getOpenchannelAccounts(),c.success({title:"OpenchannelAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedOpenchannelAccounts);return A.selectedOpenchannelAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+A.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOpenchannelAccounts.forEach(function(e){v(e)}),A.selectedOpenchannelAccounts=[]})}function E(){A.selectedOpenchannelAccounts=[]}function y(){A.selectedOpenchannelAccounts=A.openchannelAccounts.rows}var A=this;A.openchannelAccounts=r||{count:0,rows:[]},A.table="openchannelAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedOpenchannelAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getOpenchannelAccounts=g,A.createOrEditOpenchannelAccount=h,A.deleteOpenchannelAccount=v,A.exportSelectedOpenchannelAccounts=b,A.deleteSelectedOpenchannelAccounts=f,A.deselectOpenchannelAccounts=E,A.selectAllOpenchannelAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","openchannelAccounts","api","msUtils","toasty"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.openchannelQueue.save(p.openchannelQueue).$promise.then(function(e){p.openchannelQueues.unshift(e),i.success({title:"OpenchannelQueue properly created",msg:p.openchannelQueue.name?p.openchannelQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.openchannelQueue.update({id:p.openchannelQueue.id},p.openchannelQueue).$promise.then(function(e){var t=_.find(p.openchannelQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"OpenchannelQueue properly saved!",msg:p.openchannelQueue.name?p.openchannelQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.openchannelQueue.delete({id:p.openchannelQueue.id}).$promise.then(function(){_.remove(p.openchannelQueues,{id:p.openchannelQueue.id}),i.success({title:"OpenchannelQueue properly deleted!",msg:(p.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),u(p.openchannelQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",p.openchannelQueue=angular.copy(s),p.openchannelQueues=o,p.newOpenchannelQueue=!1,p.openchannelQueue||(p.openchannelQueue={strategy:"beepall"},p.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",p.newOpenchannelQueue=!0),p.addNewOpenchannelQueue=l,p.saveOpenchannelQueue=d,p.deleteOpenchannelQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","openchannelQueues","openchannelQueue","api"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.openchannelQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("OPENCHANNEL.ALL_TEAMS"),labelSelected:i.instant("OPENCHANNEL.SELECTED_TEAMS"),transferCallback:function(e,a){n.openchannelQueue[a?"removeTeams":"addTeams"]({id:s.openchannelQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:openchannelQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.openchannelQueue.getTeams({id:s.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","openchannelQueue","$translate"],angular.module("app.openchannel").controller("OpenchannelQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:d.openchannelQueues?d.openchannelQueues.rows:[]}})}function r(){e.go("app.openchannel.openchannelQueues")}function l(){i.openchannelQueue.update({id:d.openchannelQueue.id},d.openchannelQueue).$promise.then(function(){a.success({title:"OpenchannelQueue updated!",msg:d.openchannelQueue.name?d.openchannelQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.openchannelQueue=e.params.openchannelQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoOpenchannelQueues=r,d.saveOpenchannelQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","openchannelQueue"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the openchannelQueue?").htmlContent("<b>"+(e.name||"openchannelQueue")+"</b> will be deleted.").ariaLabel("delete openchannelQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.openchannelQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.openchannelQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:t,openchannelQueues:A.openchannelQueues.rows}})}function v(e){l.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.openchannelQueues.rows,{id:e.id}),A.openchannelQueues.count-=1,A.openchannelQueues.rows.length||A.getOpenchannelQueues(),c.success({title:"OpenchannelQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedOpenchannelQueues);return A.selectedOpenchannelQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+A.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOpenchannelQueues.forEach(function(e){v(e)}),A.selectedOpenchannelQueues=[]})}function E(){A.selectedOpenchannelQueues=[]}function y(){A.selectedOpenchannelQueues=A.openchannelQueues.rows}var A=this;A.openchannelQueues=r||{count:0,rows:[]},A.table="openchannelQueues",A.listOrder="",A.listOrderAsc=null,A.selectedOpenchannelQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getOpenchannelQueues=g,A.createOrEditOpenchannelQueue=h,A.deleteOpenchannelQueue=v,A.exportSelectedOpenchannelQueues=b,A.deleteSelectedOpenchannelQueues=f,A.deselectOpenchannelQueues=E,A.selectAllOpenchannelQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","openchannelQueues","api","msUtils","toasty"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.setting.save(p.customization).$promise.then(function(e){p.customizations.unshift(e),i.success({title:"Customization properly created",msg:p.customization.name?p.customization.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.setting.update({id:p.customization.id},p.customization).$promise.then(function(e){var t=_.find(p.customizations,{id:e.id});t&&_.merge(t,e),i.success({title:"Customization properly saved!",msg:p.customization.name?p.customization.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.setting.delete({id:p.customization.id}).$promise.then(function(){_.remove(p.customizations,{id:p.customization.id}),i.success({title:"Customization properly deleted!",msg:(p.customization.name||"customization")+" has been deleted!"}),u(p.customization)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SETTINGS.EDIT_CUSTOMIZATION",p.customization=angular.copy(s),p.customizations=o,p.newCustomization=!1,p.customization||(p.customization={},p.title="SETTINGS.NEW_CUSTOMIZATION",p.newCustomization=!0),p.addNewCustomization=l,p.saveCustomization=d,p.deleteCustomization=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","customizations","customization","api"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,t,n){function a(){i.customization.id?t.setting.update({id:i.customization.id},i.customization).$promise.then(function(){n.success({title:"Customization updated!",msg:i.customization.name?i.customization.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):t.setting.save(i.customization).$promise.then(function(e){_.merge(i.customization,e),n.success({title:"Customization updated!",msg:i.customization.name?i.customization.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})}var i=this;i.customizations=e,i.customization={},i.customizations&&i.customizations.rows&&i.customizations.rows.length&&(i.customization=i.customizations.rows[0]),i.saveCustomization=a}e.$inject=["customizations","api","toasty"],angular.module("app.settings").controller("CustomizationsController",e)}(),function(){"use strict";function e(e,t){function n(e){s.customization=angular.copy(e),s.ngFlowOptions.target="/api/settings/1/logo",s.customization.images=[]}function a(e){var n=["png","jpg"];if(_.includes(n,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.customization.images.unshift(a),!0}return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.customization.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.customization={},s.ngFlowOptions={chunkSize:8388608,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogoController",e)}(),function(){"use strict";function e(e,t){function n(e){s.customization=angular.copy(e),s.ngFlowOptions.target="/api/settings/1/logo_login",s.customization.images=[]}function a(e){var n=["png","jpg"];if(_.includes(n,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.customization.images.unshift(a),!0}return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.customization.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.customization={},s.ngFlowOptions={chunkSize:8388608,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogologinController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.setting.save(p.general).$promise.then(function(e){p.generals.unshift(e),i.success({title:"General properly created",msg:p.general.name?p.general.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.setting.update({id:p.general.id},p.general).$promise.then(function(e){var t=_.find(p.generals,{id:e.id});t&&_.merge(t,e),i.success({title:"General properly saved!",msg:p.general.name?p.general.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.setting.delete({id:p.general.id}).$promise.then(function(){_.remove(p.generals,{id:p.general.id}),i.success({title:"General properly deleted!",msg:(p.general.name||"general")+" has been deleted!"}),u(p.general)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SETTINGS.EDIT_GENERAL",p.general=angular.copy(s),p.generals=o,p.newGeneral=!1,p.general||(p.general={min_internal:1e3,min_mailbox:1e3},p.title="SETTINGS.NEW_GENERAL",p.newGeneral=!0),p.addNewGeneral=l,p.saveGeneral=d,p.deleteGeneral=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","generals","general","api"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,t,n){function a(){i.general.id?t.setting.update({id:i.general.id},i.general).$promise.then(function(){n.success({title:"General updated!",msg:i.general.name?i.general.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):t.setting.save(i.general).$promise.then(function(e){_.merge(i.general,e),n.success({title:"General updated!",msg:i.general.name?i.general.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})}var i=this;i.generals=e,i.general={},i.generals&&i.generals.rows&&i.generals.rows.length&&(i.general=i.generals.rows[0]),i.saveGeneral=a}e.$inject=["generals","api","toasty"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(e){var n=t.prompt().title("Do you want update manually your license?").textContent("Enter your license.").targetEvent(e).ok("Ok").cancel("Cancel");t.show(n).then(function(e){if(e)return i.license.update({id:1,license:e}).$promise.then(function(){a.success({title:"License properly updated!",msg:"The license has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){console.error(e)})}function s(a){t.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(e.body),targetEvent:a,clickOutsideToClose:!0,locals:{license:n,channels:r.channels,modules:r.modules,others:r.others}})}var r=this;r.license=n||{},r.license.gray&&(r.license.deadline=moment(r.license.gray).add(7,"days").format("MMMM Do YYYY, HH:MM")),r.channels=[{name:"chat",icon:"icon-hangouts"},{name:"mail",icon:"icon-email"},{name:"messaging",icon:"icon-message-text"},{name:"fax",icon:"icon-deskphone"},{name:"openchannel",icon:"icon-google-earth"}],r.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],r.others=[{name:"custom",icon:"icon-table-edit"},{name:"update",icon:"icon-cloud-download"}],r.requestLicense=s,r.updateLicense=o}e.$inject=["$document","$mdDialog","license","toasty","api"],angular.module("app.settings.license").controller("LicenseController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){c.errors=[],c.table="||FIELD||VALUE||\n";for(var e in c.license)c.license.hasOwnProperty(e)&&!_.includes(["$promise","$resolved"],e)&&(c.table+="|"+e+"|"+c.license[e]+"\n");s.jira.save({key:"MOTLICENSE",summary:"Motion License Request",description:c.table,issuetype:"Task"}).$promise.then(function(e){t.success({title:"Request "+e.id+" sent!",msg:"The license request has been sent! We will respond as soon as possible."}),d()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.jira"}]})}function d(){e.hide()}var c=this;c.errors=[],c.user=r.getCurrentUser(),c.license=angular.copy(n),c.channels=a,c.modules=i,c.others=o,c.license.name=c.user.fullname,c.license.email=c.user.email,c.sendRequest=l,c.closeDialog=d}e.$inject=["$mdDialog","toasty","license","channels","modules","others","api","Auth"],angular.module("app.settings.license").controller("RequestLicenseDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.network.save(p.network).$promise.then(function(e){p.networks.unshift(e),i.success({title:"Network properly created",msg:p.network.name?p.network.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.network.update({id:p.network.id},p.network).$promise.then(function(e){var t=_.find(p.networks,{id:e.id});t&&_.merge(t,e),i.success({title:"Network properly saved!",msg:p.network.name?p.network.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.network.delete({id:p.network.id}).$promise.then(function(){_.remove(p.networks,{id:p.network.id}),i.success({title:"Network properly deleted!",msg:(p.network.name||"network")+" has been deleted!"}),u(p.network)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SETTINGS.EDIT_NETWORK",p.network=angular.copy(s),p.networks=o,p.newNetwork=!1,p.network||(p.network={type:"localnet"},p.title="SETTINGS.NEW_NETWORK",p.newNetwork=!0),p.addNewNetwork=l,p.saveNetwork=d,p.deleteNetwork=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","networks","network","api"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{network:e,networks:A.networks.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the network?").htmlContent("<b>"+(e.name||"network")+"</b> will be deleted.").ariaLabel("delete network").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.networks=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.network.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{network:t,networks:A.networks.rows}})}function v(e){l.network.delete({id:e.id}).$promise.then(function(){_.remove(A.networks.rows,{id:e.id}),A.networks.count-=1,A.networks.rows.length||A.getNetworks(),c.success({title:"Network deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETnetwork",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedNetworks);return A.selectedNetworks=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected networks?").htmlContent("<b>"+A.selectedNetworks.length+" selected</b> will be deleted.").ariaLabel("delete Networks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedNetworks.forEach(function(e){v(e)}),A.selectedNetworks=[]})}function E(){A.selectedNetworks=[]}function y(){A.selectedNetworks=A.networks.rows}var A=this;A.networks=r||{count:0,rows:[]},A.table="networks",A.listOrder="",A.listOrderAsc=null,A.selectedNetworks=[],A.query={fields:"createdAt,updatedAt,id,type,value,value,createdAt",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getNetworks=g,A.createOrEditNetwork=h,A.deleteNetwork=v,A.exportSelectedNetworks=b,A.deleteSelectedNetworks=f,A.deselectNetworks=E,A.selectAllNetworks=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","networks","api","msUtils","toasty"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.mailAccount.save(p.smtp).$promise.then(function(e){p.smtps.unshift(e),i.success({title:"Smtp properly created",msg:p.smtp.name?p.smtp.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.mailAccount.update({id:p.smtp.id},p.smtp).$promise.then(function(e){var t=_.find(p.smtps,{id:e.id});t&&_.merge(t,e),i.success({title:"Smtp properly saved!",msg:p.smtp.name?p.smtp.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.mailAccount.delete({id:p.smtp.id}).$promise.then(function(){_.remove(p.smtps,{id:p.smtp.id}),i.success({title:"Smtp properly deleted!",msg:(p.smtp.name||"smtp")+" has been deleted!"}),u(p.smtp)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SETTINGS.EDIT_SMTP",p.smtp=angular.copy(s),p.smtps=o,p.newSmtp=!1,p.smtp||(p.smtp={service:"true"},p.title="SETTINGS.NEW_SMTP",p.newSmtp=!0),p.addNewSmtp=l,p.saveSmtp=d,p.deleteSmtp=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","smtps","smtp","api"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,t,n){function a(){o.smtp.id&&t.mailAccount.verifySmtp({id:o.smtp.id}).$promise.then(function(){n.success({title:"Smtp verified!",msg:o.smtp.name?o.smtp.name+" has been verified!":""})}).catch(function(e){n.error({title:"Smtp not verified! Remember to save before to verify!",msg:e.data?JSON.stringify(e.data):e.toString(),timeout:1e4})})}function i(){o.smtp.id?t.mailAccount.update({id:o.smtp.id},o.smtp).$promise.then(function(){n.success({title:"Smtp updated!",msg:o.smtp.name?o.smtp.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})}):t.mailAccount.save(o.smtp).$promise.then(function(e){_.merge(o.smtp,e),n.success({title:"Smtp updated!",msg:o.smtp.name?o.smtp.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var o=this;o.smtps=e,o.smtp={},o.smtps&&o.smtps.rows&&o.smtps.rows.length?o.smtp=o.smtps.rows[0]:o.smtp={service:!0,Smtp:{service:null}},o.saveSmtp=i,o.verifySmtp=a}e.$inject=["smtps","api","toasty"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(e){t.cancel(m)}function l(e,a,i){var r=n.confirm().title("Would you like to change the status of the process #"+a+"?").textContent("The status will be changed to: "+i.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");n.show(r).then(function(){return s.pm2.update({id:a,status:i})}).then(function(){t(u.getProcesses,1e3,1)}).then(function(){o.success({title:"Process updated!",msg:"Status properly changed to: "+i})})}function d(){return s.system.get().$promise.then(function(e){_.merge(u.system,e)}).catch(u.cancelInterval)}function c(){return s.pm2.get().$promise.then(function(e){_.merge(u.processes,e?e.rows:[])}).catch(u.cancelInterval)}var m,u=this;u.system=a||{},u.processes=i?i.rows:[],u.processLimit=7,u.getInfo=d,u.getProcesses=c,u.cancelInterval=r,u.updateProcess=l,m=t(u.getInfo,5e3),e.$on("$destroy",function(){u.cancelInterval()})}e.$inject=["$scope","$interval","$mdDialog","system","processes","toasty","api"],angular.module("app.settings.system").controller("SystemController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){angular.isDefined(l.interval)&&(t.cancel(l.interval),l.interval=void 0),l.progress=100,l.updating=!1}function s(){n.location.reload()}function r(){e.hide()}var l=this;l.title="SETTINGS.UPDATE",l.progress=0,l.updating=!0,l.output="Waiting...",l.success=!0,l.interval=t(function(){l.progress<90&&(l.progress+=1)},1e3),l.closeDialog=r,l.reload=s,l.stopInterval=o,i.version.fetch().$promise.then(function(e){return l.output=e.output+"...",i.version.reset().$promise}).then(function(e){return l.output=e.output+"...",i.version.pull().$promise}).then(function(e){return l.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return l.output=e.output+"...",i.version.restart().$promise}).then(function(e){l.output="Waiting to restart motion...",a(function(){l.stopInterval()},3e4)}).catch(function(e){l.success=!1,l.stopInterval(),l.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(t){var a=e.confirm().title("Would you like to update your system?").htmlContent('The system request time for the update should be below 1 minute.<br><br>Do you agree the terms of this <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">End User License Agreement<a>?').ariaLabel("").targetEvent(t).clickOutsideToClose(!0).parent(angular.element(n.body)).ok("I agree").cancel("Disagree");e.show(a).then(function(){e.show({controller:"UpdateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/updates/update/dialog.html",parent:angular.element(n.body),targetEvent:t,clickOutsideToClose:!1})})}var s=this;s.version=a||{},s.updateConfirm=o}e.$inject=["$mdDialog","$interval","$document","version","toasty"],angular.module("app.settings").controller("UpdatesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.smsAccount.save(p.smsAccount).$promise.then(function(e){p.smsAccounts.unshift(e),i.success({title:"SmsAccount properly created",msg:p.smsAccount.name?p.smsAccount.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.smsAccount.update({id:p.smsAccount.id},p.smsAccount).$promise.then(function(e){var t=_.find(p.smsAccounts,{id:e.id});t&&_.merge(t,e),i.success({title:"SmsAccount properly saved!",msg:p.smsAccount.name?p.smsAccount.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.smsAccount.delete({id:p.smsAccount.id}).$promise.then(function(){_.remove(p.smsAccounts,{id:p.smsAccount.id}),i.success({title:"SmsAccount properly deleted!",msg:(p.smsAccount.name||"smsAccount")+" has been deleted!"}),u(p.smsAccount)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SMS.EDIT_SMSACCOUNT",p.smsAccount=angular.copy(s),p.smsAccounts=o,p.newSmsAccount=!1,p.smsAccount||(p.smsAccount={smstype:"basic",remote:n.protocol()+"://"+n.host()+":"+n.port()},p.title="SMS.NEW_SMSACCOUNT",p.newSmsAccount=!0),p.addNewSmsAccount=l,p.saveSmsAccount=d,p.deleteSmsAccount=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","smsAccounts","smsAccount","api"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.smsAccount=e,h.query.id=h.smsAccount.id,h.query.SmsAccountId=h.smsAccount.id,h.getSmsAccountSmsDispositions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the smsDisposition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete smsDisposition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.smsAccountSmsDispositions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.smsAccount.getDispositions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditSmsDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsDispositions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsDisposition:t,smsDispositions:h.smsAccountSmsDispositions.rows}})}function p(e){r.smsDisposition.delete({id:e.id}).$promise.then(function(){_.remove(h.smsAccountSmsDispositions.rows,{id:e.id}),h.smsAccountSmsDispositions.count-=1,h.smsAccountSmsDispositions.rows.length||h.getSmsAccountSmsDispositions(),s.success({title:"SmsDisposition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected smsDispositions?").htmlContent("<b>"+h.selectedSmsAccountSmsDispositions.length+" selected</b> will be deleted.").ariaLabel("delete smsDispositions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedSmsAccountSmsDispositions.forEach(function(e){p(e)}),h.selectedSmsAccountSmsDispositions=[]})}var h=this;h.smsAccount={},h.smsAccountSmsDispositions={count:0,rows:[]},h.selectedSmsAccountSmsDispositions=[],h.query={fields:"createdAt,updatedAt,id,name,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getSmsAccountSmsDispositions=m,h.createOrEditSmsAccountSmsDisposition=u,h.deleteSmsAccountSmsDisposition=p,h.deleteSelectedSmsAccountSmsDispositions=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getSmsAccountSmsDispositions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.sms").controller("SmsAccountSmsDispositionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.smsDisposition.save(p.smsDisposition).$promise.then(function(e){p.smsDispositions.unshift(e),i.success({title:"SmsDisposition properly created",msg:p.smsDisposition.name?p.smsDisposition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsDisposition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsDisposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.smsDisposition.update({id:p.smsDisposition.id},p.smsDisposition).$promise.then(function(e){var t=_.find(p.smsDispositions,{id:e.id});t&&_.merge(t,e),i.success({title:"SmsDisposition properly saved!",msg:p.smsDisposition.name?p.smsDisposition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsDisposition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsDisposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The smsDisposition will be deleted.").ariaLabel("Delete SmsDisposition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.smsDisposition.delete({id:p.smsDisposition.id}).$promise.then(function(){_.remove(p.smsDispositions,{id:p.smsDisposition.id}),i.success({title:"SmsDisposition properly deleted!",msg:(p.smsDisposition.name||"smsDisposition")+" has been deleted!"}),u(p.smsDisposition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.smsDisposition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SMS.EDIT_SMSDISPOSITION",p.smsDisposition=angular.copy(s),p.smsDispositions=o,p.newSmsDisposition=!1,p.smsDisposition||(p.smsDisposition={},p.title="SMS.NEW_SMSDISPOSITION",p.newSmsDisposition=!0),t.params.id&&(p.smsDisposition.SmsAccountId=t.params.id),p.addNewSmsDisposition=l,p.saveSmsDisposition=d,p.deleteSmsDisposition=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","smsDispositions","smsDisposition","api"],angular.module("app.sms").controller("CreateOrEditSmsDispositionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.sms.smsAccounts")}function r(){i.smsAccount.update({id:l.smsAccount.id},l.smsAccount).$promise.then(function(){a.success({title:"SmsAccount updated!",msg:l.smsAccount.name?l.smsAccount.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.smsAccount=e.params.smsAccount||o||{},l.selectedTab=e.params.tab||0,l.gotoSmsAccounts=s,l.saveSmsAccount=r,i.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","smsAccount"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the smsAccount?").htmlContent("<b>"+(e.name||"smsAccount")+"</b> will be deleted.").ariaLabel("delete smsAccount").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.smsAccounts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.smsAccount.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSmsAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:t,smsAccounts:A.smsAccounts.rows}})}function v(e){l.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(A.smsAccounts.rows,{id:e.id}),A.smsAccounts.count-=1,A.smsAccounts.rows.length||A.getSmsAccounts(),c.success({title:"SmsAccount deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedSmsAccounts);return A.selectedSmsAccounts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+A.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSmsAccounts.forEach(function(e){v(e)}),A.selectedSmsAccounts=[]})}function E(){A.selectedSmsAccounts=[]}function y(){A.selectedSmsAccounts=A.smsAccounts.rows}var A=this;A.smsAccounts=r||{count:0,rows:[]},A.table="smsAccounts",A.listOrder="",A.listOrderAsc=null,A.selectedSmsAccounts=[],A.query={fields:"createdAt,updatedAt,id,name,ListId,fidelity,timeout,type,smstype,phone,sid,token,username,password,remote,description,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Skebby",value:"'skebby'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraysmstype=_.keyBy([{option:"Basic",value:"'basic'"},{option:"Classic",value:"'classic'"},{option:"Classic+",value:"'classic+'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayacceptMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrejectMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycloseMethod=_.keyBy([{option:"HTTP GET",value:"'GET'"},{option:"HTTP POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getSmsAccounts=g,A.createOrEditSmsAccount=h,A.deleteSmsAccount=v,A.exportSelectedSmsAccounts=b,A.deleteSelectedSmsAccounts=f,A.deselectSmsAccounts=E,A.selectAllSmsAccounts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","smsAccounts","api","msUtils","toasty"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.smsQueue.save(p.smsQueue).$promise.then(function(e){p.smsQueues.unshift(e),i.success({title:"SmsQueue properly created",msg:p.smsQueue.name?p.smsQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.smsQueue.update({id:p.smsQueue.id},p.smsQueue).$promise.then(function(e){var t=_.find(p.smsQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"SmsQueue properly saved!",msg:p.smsQueue.name?p.smsQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.smsQueue.delete({id:p.smsQueue.id}).$promise.then(function(){_.remove(p.smsQueues,{id:p.smsQueue.id}),i.success({title:"SmsQueue properly deleted!",msg:(p.smsQueue.name||"smsQueue")+" has been deleted!"}),u(p.smsQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="SMS.EDIT_SMSQUEUE",p.smsQueue=angular.copy(s),p.smsQueues=o,p.newSmsQueue=!1,p.smsQueue||(p.smsQueue={strategy:"beepall"},p.title="SMS.NEW_SMSQUEUE",p.newSmsQueue=!0),p.addNewSmsQueue=l,p.saveSmsQueue=d,p.deleteSmsQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","smsQueues","smsQueue","api"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.smsQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("SMS.ALL_TEAMS"),labelSelected:i.instant("SMS.SELECTED_TEAMS"),transferCallback:function(e,a){n.smsQueue[a?"removeTeams":"addTeams"]({id:s.smsQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:smsQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.smsQueue.getTeams({id:s.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","smsQueue","$translate"],angular.module("app.sms").controller("SmsQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:d.smsQueues?d.smsQueues.rows:[]}})}function r(){e.go("app.sms.smsQueues")}function l(){i.smsQueue.update({id:d.smsQueue.id},d.smsQueue).$promise.then(function(){a.success({title:"SmsQueue updated!",msg:d.smsQueue.name?d.smsQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.smsQueue=e.params.smsQueue||o||{},d.selectedTab=e.params.tab||0,d.teamadddialog=s,d.gotoSmsQueues=r,d.saveSmsQueue=l}e.$inject=["$state","$mdDialog","$document","toasty","api","smsQueue"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the smsQueue?").htmlContent("<b>"+(e.name||"smsQueue")+"</b> will be deleted.").ariaLabel("delete smsQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.smsQueues=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.smsQueue.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:t,smsQueues:A.smsQueues.rows}})}function v(e){l.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(A.smsQueues.rows,{id:e.id}),A.smsQueues.count-=1,A.smsQueues.rows.length||A.getSmsQueues(),c.success({title:"SmsQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedSmsQueues);return A.selectedSmsQueues=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+A.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedSmsQueues.forEach(function(e){v(e)}),A.selectedSmsQueues=[]})}function E(){A.selectedSmsQueues=[]}function y(){A.selectedSmsQueues=A.smsQueues.rows}var A=this;A.smsQueues=r||{count:0,rows:[]},A.table="smsQueues",A.listOrder="",A.listOrderAsc=null,A.selectedSmsQueues=[],A.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",limit:10,page:1},A.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getSmsQueues=g,A.createOrEditSmsQueue=h,A.deleteSmsQueue=v,A.exportSelectedSmsQueues=b,A.deleteSelectedSmsQueues=f,A.deselectSmsQueues=E,A.selectAllSmsQueues=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","smsQueues","api","msUtils","toasty"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.staff.agents.edit",{id:e.id,agent:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(e.name||"agent")+"</b> will be deleted.").ariaLabel("delete agent").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.agents=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.user.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:t,agents:A.agents.rows}})}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(A.agents.rows,{id:e.id}),A.agents.count-=1,A.agents.rows.length||A.getAgents(),c.success({title:"Agent deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedAgents);return A.selectedAgents=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+A.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedAgents.forEach(function(e){v(e)}),A.selectedAgents=[]})}function E(){A.selectedAgents=[]}function y(){A.selectedAgents=A.agents.rows}var A=this;A.agents=r||{count:0,rows:[]},A.table="agents",A.listOrder="",A.listOrderAsc=null,A.selectedAgents=[],A.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,userpic,password,description,autointernal,internal,loginInPause,voicemail,transport,host,nat,type,allow,callerid,callgroup,pickupgroup,chanspy,chatCapacity,mailCapacity,faxCapacity,smsCapacity,openchannelCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarRingInUse,phoneBarEnableRecording,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarNoReply,phoneBarNoReplyNumber,phoneBarBusy,phoneBarBusyNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort",role:"agent",sort:"-updatedAt",limit:10,page:1},A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"alaw",value:"'alaw'"},{option:"ulaw",value:"'ulaw'"},{option:"gsm",value:"'gsm'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getAgents=g,A.createOrEditAgent=h,A.deleteAgent=v,A.exportSelectedAgents=b,A.deleteSelectedAgents=f,A.deselectAgents=E,A.selectAllAgents=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getAgents())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","agents","api","msUtils","toasty"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.user.save(p.agent).$promise.then(function(e){p.agents.unshift(e),i.success({title:"Agent properly created",msg:p.agent.name?p.agent.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.user.update({id:p.agent.id},p.agent).$promise.then(function(e){var t=_.find(p.agents,{id:e.id});t&&_.merge(t,e),i.success({title:"Agent properly saved!",msg:p.agent.name?p.agent.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.user.delete({id:p.agent.id}).$promise.then(function(){_.remove(p.agents,{id:p.agent.id}),i.success({title:"Agent properly deleted!",msg:(p.agent.name||"agent")+" has been deleted!"}),u(p.agent)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="STAFF.EDIT_AGENT",p.agent=angular.copy(s),p.agents=o,p.newAgent=!1,p.agent||(p.agent={role:"agent",autointernal:!0,type:"friend"},p.title="STAFF.NEW_AGENT",p.newAgent=!0),p.addNewAgent=l,p.saveAgent=d,p.deleteAgent=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","agents","agent","api"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,t){function n(e){s.agent=angular.copy(e),s.ngFlowOptions.target="api/users/"+s.agent.id+"/avatar",s.agent.images=[]}function a(e){var n=["png","jpg"];if(_.includes(n,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.agent.images.unshift(a),!0}return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.agent.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.agent={},s.ngFlowOptions={chunkSize:8388608,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Agentchange_avatarController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.agent.id,newPassword:s.password}).$promise.then(function(){t.success({title:"Agent password properly updated!"}),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.agent=a,s.password="",s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","agent"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){n.user[m.isVoiceRealtime()?"getVoiceQueuesRt":"getQueues"]({id:m.agent.id,fields:m.isVoiceRealtime()?"VoiceQueueId,queue_name,penalty":"id,name,strategy",channel:i,nolimit:!0}).$promise.then(function(e){return m.isVoiceRealtime()?m.selectedItems=e.rows?_.map(e.rows,function(e){return{id:e.VoiceQueueId,name:e.queue_name,penalty:e.hasOwnProperty("penalty")?"penalty "+e.penalty:"penalty 0",strategy:""}}):[]:m.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e}):[],n[m.apiname].get({fields:"id,name,strategy",nolimit:!0,type:s}).$promise}).then(function(e){m.items=e.rows?e.rows:[],m.selectedItems=_.intersectionBy(m.selectedItems,m.items,"id"),m.dualMultiselectOptions.selectedItems=m.selectedItems,m.dualMultiselectOptions.items=_.differenceBy(m.items,m.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}function d(){return o&&"voice"===i}function c(){e.hide()}var m=this;m.agent=a,m.penalty=0,m.apiname=i+"Queue",m.title=r.instant("STAFF.QUEUEADD_AGENT_"+i.toUpperCase()+"_"+s.toUpperCase()),m.items=[],m.selectedItems=[],m.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"name",line2:"strategy",line3:"penalty",labelAll:r.instant("STAFF.ALL_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),labelSelected:r.instant("STAFF.SELECTED_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),transferCallback:function(e,a){n.user[a?"removeQueues":"addQueues"]({id:m.agent.id,ids:_.map(e,"id"),channel:i,penalty:m.penalty||0,realtime:o}).$promise.then(function(){l(),t.success({title:"Queue properly "+(a?"removed":"added"),msg:"Queue has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USER.ADDQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.closeDialog=c,m.isVoiceRealtime=d,l()}e.$inject=["$mdDialog","toasty","api","agent","channel","realtime","direction","$translate"],angular.module("app.staff").controller("AgentqueueaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a,i){t.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(n.body),targetEvent:i,clickOutsideToClose:!0,locals:{agent:e,agents:c.agents?c.agents.rows:[],channel:a,realtime:!1,direction:"inbound"}})}function r(e,a){t.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{agent:e,agents:c.agents?c.agents.rows:[]}})}function l(){e.go("app.staff.agents")}function d(){c.agent=_.omit(c.agent,"userpic"),i.user.update({id:c.agent.id},c.agent).$promise.then(function(){a.success({title:"Agent updated!",msg:c.agent.name?c.agent.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.agent=e.params.agent||o||{},c.selectedTab=e.params.tab||0,c.queueaddchannel=s,c.changepassworddialog=r,c.gotoAgents=l,c.saveAgent=d}e.$inject=["$state","$mdDialog","$document","toasty","api","agent"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.team.save(p.team).$promise.then(function(e){p.teams.unshift(e),i.success({title:"Team properly created",msg:p.team.name?p.team.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.team.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.team.update({id:p.team.id},p.team).$promise.then(function(e){var t=_.find(p.teams,{id:e.id});t&&_.merge(t,e),i.success({title:"Team properly saved!",msg:p.team.name?p.team.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.team.delete({id:p.team.id}).$promise.then(function(){_.remove(p.teams,{id:p.team.id}),i.success({title:"Team properly deleted!",msg:(p.team.name||"team")+" has been deleted!"}),u(p.team)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="STAFF.EDIT_TEAM",p.team=angular.copy(s),p.teams=o,p.newTeam=!1,p.team||(p.team={},p.title="STAFF.NEW_TEAM",p.newTeam=!0),p.addNewTeam=l,p.saveTeam=d,p.deleteTeam=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","teams","team","api"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){return n.team[c.isVoiceRealtime()?"getMembers":"getAgents"]({id:c.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return c.isVoiceRealtime()?c.selectedItems=e.rows?_.map(e.rows,function(e){return e.id=e.UserId,e.fullname=e.membername,e.penalty=e.hasOwnProperty("penalty")?"penalty "+e.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[]:c.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.selectedItems=c.selectedItems,n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",e.internal=e.internal?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.items=_.differenceBy(c.items,c.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function l(){return o}function d(){e.hide()}var c=this;c.team=a,c.penalty=0,c.items=[],c.selectedItems=[],c.closeDialog=d,c.isVoiceRealtime=l,c.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:"internal",line3:"penalty",labelAll:s.instant("STAFF.ALL_AGENTS"),labelSelected:s.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,a){n.team[a?"removeAgents":"addAgents"]({id:c.team.id,ids:_.map(e,c.isVoiceRealtime()&&a?"UserId":"id"),penalty:c.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"}),a||r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:team.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},r()}e.$inject=["$mdDialog","toasty","api","team","teams","realtime","$translate"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{team:e,teams:C.teams.rows}})}function u(e,t){i.show({controller:"TeamagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{team:e,teams:C.teams?C.teams.rows:[],realtime:!1}})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the team?").htmlContent("<b>"+(e.name||"team")+"</b> will be deleted.").ariaLabel("delete team").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.teams=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.team.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{team:t,teams:C.teams.rows}})}function b(e){l.team.delete({id:e.id}).$promise.then(function(){_.remove(C.teams.rows,{id:e.id}),C.teams.count-=1,C.teams.rows.length||C.getTeams(),c.success({title:"Team deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETteam",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedTeams);return C.selectedTeams=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+C.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedTeams.forEach(function(e){b(e)}),C.selectedTeams=[]})}function y(){C.selectedTeams=[]}function A(){C.selectedTeams=C.teams.rows}var C=this;C.teams=r||{count:0,rows:[]},C.table="teams",C.listOrder="",C.listOrderAsc=null,C.selectedTeams=[],C.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},C.editdialog=m,C.agentadddialog=u,C.deleteconfirm=p,C.success=g,C.getTeams=h,C.createOrEditTeam=v,C.deleteTeam=b,C.exportSelectedTeams=f,C.deleteSelectedTeams=E,C.deselectTeams=y,C.selectAllTeams=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","teams","api","msUtils","toasty"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.user.save(p.telephone).$promise.then(function(e){p.telephones.unshift(e),i.success({title:"Telephone properly created",msg:p.telephone.name?p.telephone.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.user.update({id:p.telephone.id},p.telephone).$promise.then(function(e){var t=_.find(p.telephones,{id:e.id});t&&_.merge(t,e),i.success({title:"Telephone properly saved!",msg:p.telephone.name?p.telephone.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.user.delete({id:p.telephone.id}).$promise.then(function(){_.remove(p.telephones,{id:p.telephone.id}),i.success({title:"Telephone properly deleted!",msg:(p.telephone.name||"telephone")+" has been deleted!"}),u(p.telephone)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="STAFF.EDIT_TELEPHONE",p.telephone=angular.copy(s),p.telephones=o,p.newTelephone=!1,p.telephone||(p.telephone={role:"telephone",autointernal:!0},p.title="STAFF.NEW_TELEPHONE",p.newTelephone=!0),p.addNewTelephone=l,p.saveTelephone=d,p.deleteTelephone=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","telephones","telephone","api"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.telephone.id,newPassword:s.password}).$promise.then(function(){t.success({title:"Telephone password properly updated!"}),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.telephone=a,s.password="",s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","telephone"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{telephone:e,telephones:d.telephones?d.telephones.rows:[]}})}function r(){e.go("app.staff.telephones")}function l(){i.user.update({id:d.telephone.id},d.telephone).$promise.then(function(){a.success({title:"Telephone updated!",msg:d.telephone.name?d.telephone.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.telephone=e.params.telephone||o||{},d.selectedTab=e.params.tab||0,d.changepassworddialog=s,d.gotoTelephones=r,d.saveTelephone=l}e.$inject=["$state","$mdDialog","$document","toasty","api","telephone"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.staff.telephones.edit",{id:e.id,telephone:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the telephone?").htmlContent("<b>"+(e.name||"telephone")+"</b> will be deleted.").ariaLabel("delete telephone").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.telephones=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.user.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTelephoneDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{telephone:t,telephones:A.telephones.rows}})}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(A.telephones.rows,{id:e.id}),A.telephones.count-=1,A.telephones.rows.length||A.getTelephones(),c.success({title:"Telephone deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTelephones);return A.selectedTelephones=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+A.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTelephones.forEach(function(e){v(e)}),A.selectedTelephones=[]})}function E(){A.selectedTelephones=[]}function y(){A.selectedTelephones=A.telephones.rows}var A=this;A.telephones=r||{count:0,rows:[]},A.table="telephones",A.listOrder="",A.listOrderAsc=null,A.selectedTelephones=[],A.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup",role:"telephone",sort:"-updatedAt",limit:10,page:1},A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"alaw",value:"'alaw'"},{option:"ulaw",value:"'ulaw'"},{option:"gsm",value:"'gsm'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getTelephones=g,A.createOrEditTelephone=h,A.deleteTelephone=v,A.exportSelectedTelephones=b,A.deleteSelectedTelephones=f,A.deselectTelephones=E,A.selectAllTelephones=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","telephones","api","msUtils","toasty"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.user.save(p.user).$promise.then(function(e){p.users.unshift(e),i.success({title:"User properly created",msg:p.user.name?p.user.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.user.update({id:p.user.id},p.user).$promise.then(function(e){var t=_.find(p.users,{id:e.id});t&&_.merge(t,e),i.success({title:"User properly saved!",msg:p.user.name?p.user.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.user.delete({id:p.user.id}).$promise.then(function(){_.remove(p.users,{id:p.user.id}),i.success({title:"User properly deleted!",msg:(p.user.name||"user")+" has been deleted!"}),u(p.user)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="STAFF.EDIT_USER",p.user=angular.copy(s),p.users=o,p.newUser=!1,p.user||(p.user={role:"user",autointernal:!0},p.title="STAFF.NEW_USER",p.newUser=!0),p.addNewUser=l,p.saveUser=d,p.deleteUser=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","users","user","api"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,t){function n(e){s.user=angular.copy(e),s.ngFlowOptions.target="api/users/"+s.user.id+"/avatar",s.user.images=[]}function a(e){var n=["png","jpg"];if(_.includes(n,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return s.user.images.unshift(a),!0}return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+n.join()}),!1}function i(){s.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},s.ngFlow.flow.upload()}function o(e,t){angular.forEach(s.user.images,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="image"}})}var s=this;s.user={},s.ngFlowOptions={chunkSize:8388608,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3},s.ngFlow={flow:{}},s.dropping=!1,s.fileAdded=a,s.upload=i,s.fileSuccess=o,s.init=n}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Userchange_avatarController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.user.id,newPassword:s.password}).$promise.then(function(){t.success({title:"User password properly updated!"}),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.user=a,s.password="",s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","user"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,t,n){function a(e){o.user=e}function i(t,a){if((a||t).enabled){if(a)a.enabled=!0,o.user.permissions.push(a.id);else for(var i=0;i<t.children.length;i++)t.children[i].enabled=!0,o.user.permissions.push(t.children[i].id);t.enabled=!0,o.user.permissions.push(t.id)}else if(a)a.enabled=!1,_.remove(o.user.permissions,function(e){return a.id===e}),_.filter(t.children,{enabled:!1}).length===t.children.length&&(t.enabled=!1,_.remove(o.user.permissions,function(e){return t.id===e}));else{t.enabled=!1,_.remove(o.user.permissions,function(e){return t.id===e});for(var s=0;s<t.children.length;s++)t.children[s].enabled=!1,_.remove(o.user.permissions,function(e){return t.children[s].id===e})}return e.user.update({id:o.user.id,permissions:_.uniq(o.user.permissions)}).$promise.then(function(){n.success({title:"user updated!",msg:o.user.name?o.user.name+" has been updated!":""})}).catch(function(e){console.error(e)})}var o=this;o.user={},o.navigation=t.getNavigation(),o.init=a,o.onChange=i}e.$inject=["api","msNavigationService","toasty"],angular.module("app.staff").controller("UserPermissionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){n.user[m.isVoiceRealtime()?"getVoiceQueuesRt":"getQueues"]({id:m.user.id,fields:m.isVoiceRealtime()?"VoiceQueueId,queue_name,penalty":"id,name,strategy",channel:i,nolimit:!0}).$promise.then(function(e){return m.isVoiceRealtime()?m.selectedItems=e.rows?_.map(e.rows,function(e){return{id:e.VoiceQueueId,name:e.queue_name,penalty:e.hasOwnProperty("penalty")?"penalty "+e.penalty:"penalty 0",strategy:""}}):[]:m.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e}):[],n[m.apiname].get({fields:"id,name,strategy",nolimit:!0,type:s}).$promise}).then(function(e){m.items=e.rows?e.rows:[],m.selectedItems=_.intersectionBy(m.selectedItems,m.items,"id"),m.dualMultiselectOptions.selectedItems=m.selectedItems,m.dualMultiselectOptions.items=_.differenceBy(m.items,m.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}function d(){return o&&"voice"===i}function c(){e.hide()}var m=this;m.user=a,m.penalty=0,m.apiname=i+"Queue",m.title=r.instant("STAFF.QUEUEADD_USER_"+i.toUpperCase()+"_"+s.toUpperCase()),m.items=[],m.selectedItems=[],m.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"name",line2:"strategy",line3:"penalty",labelAll:r.instant("STAFF.ALL_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),labelSelected:r.instant("STAFF.SELECTED_QUEUES_"+i.toUpperCase()+"_"+s.toUpperCase()),transferCallback:function(e,a){n.user[a?"removeQueues":"addQueues"]({id:m.user.id,ids:_.map(e,"id"),channel:i,penalty:m.penalty||0,realtime:o}).$promise.then(function(){l(),t.success({title:"Queue properly "+(a?"removed":"added"),msg:"Queue has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USER.ADDQUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.closeDialog=c,m.isVoiceRealtime=d,l()}e.$inject=["$mdDialog","toasty","api","user","channel","realtime","direction","$translate"],angular.module("app.staff").controller("UserqueueaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a,i){t.show({controller:"UserqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/queueadd/queueadd.html",parent:angular.element(n.body),targetEvent:i,clickOutsideToClose:!0,locals:{user:e,users:c.users?c.users.rows:[],channel:a,realtime:!1,direction:"inbound"}})}function r(e,a){t.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{user:e,users:c.users?c.users.rows:[]}})}function l(){e.go("app.staff.users")}function d(){c.user=_.omit(c.user,"userpic"),i.user.update({id:c.user.id},c.user).$promise.then(function(){a.success({title:"User updated!",msg:c.user.name?c.user.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.user=e.params.user||o||{},c.selectedTab=e.params.tab||0,c.queueaddchannel=s,c.changepassworddialog=r,c.gotoUsers=l,c.saveUser=d}e.$inject=["$state","$mdDialog","$document","toasty","api","user"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.staff.users.edit",{id:e.id,user:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the user?").htmlContent("<b>"+(e.name||"user")+"</b> will be deleted.").ariaLabel("delete user").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.users=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.user.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditUserDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:t,users:A.users.rows}})}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(A.users.rows,{id:e.id}),A.users.count-=1,A.users.rows.length||A.getUsers(),c.success({title:"User deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedUsers);return A.selectedUsers=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+A.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedUsers.forEach(function(e){v(e)}),A.selectedUsers=[]})}function E(){A.selectedUsers=[]}function y(){A.selectedUsers=A.users.rows}var A=this;A.users=r||{count:0,rows:[]},A.table="users",A.listOrder="",A.listOrderAsc=null,A.selectedUsers=[],A.query={fields:"createdAt,updatedAt,role,id,fullname,name,email,userpic,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,callgroup,pickupgroup,permissions",role:"admin,user",sort:"-updatedAt",limit:10,page:1},A.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayallow=_.keyBy([{option:"alaw",value:"'alaw'"},{option:"ulaw",value:"'ulaw'"},{option:"gsm",value:"'gsm'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getUsers=g,A.createOrEditUser=h,A.deleteUser=v,A.exportSelectedUsers=b,A.deleteSelectedUsers=f,A.deselectUsers=E,A.selectAllUsers=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","users","api","msUtils","toasty"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{cannedAnswer:e,cannedAnswers:A.cannedAnswers.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the cannedAnswer?").htmlContent("<b>"+(e.name||"cannedAnswer")+"</b> will be deleted.").ariaLabel("delete cannedAnswer").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.cannedAnswers=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.cannedAnswer.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{cannedAnswer:t,cannedAnswers:A.cannedAnswers.rows}})}function v(e){l.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(A.cannedAnswers.rows,{id:e.id}),A.cannedAnswers.count-=1,A.cannedAnswers.rows.length||A.getCannedAnswers(),c.success({title:"CannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcannedAnswer",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedCannedAnswers);return A.selectedCannedAnswers=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+A.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedCannedAnswers.forEach(function(e){v(e)}),A.selectedCannedAnswers=[]})}function E(){A.selectedCannedAnswers=[]}function y(){A.selectedCannedAnswers=A.cannedAnswers.rows}var A=this;A.cannedAnswers=r||{count:0,rows:[]},A.table="cannedAnswers",A.listOrder="",A.listOrderAsc=null,A.selectedCannedAnswers=[],A.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getCannedAnswers=g,A.createOrEditCannedAnswer=h,A.deleteCannedAnswer=v,A.exportSelectedCannedAnswers=b,A.deleteSelectedCannedAnswers=f,A.deselectCannedAnswers=E,A.selectAllCannedAnswers=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","cannedAnswers","api","msUtils","toasty"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.cannedAnswer.save(p.cannedAnswer).$promise.then(function(e){p.cannedAnswers.unshift(e),i.success({title:"CannedAnswer properly created",msg:p.cannedAnswer.name?p.cannedAnswer.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.cannedAnswer.update({id:p.cannedAnswer.id},p.cannedAnswer).$promise.then(function(e){var t=_.find(p.cannedAnswers,{id:e.id});t&&_.merge(t,e),i.success({title:"CannedAnswer properly saved!",msg:p.cannedAnswer.name?p.cannedAnswer.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.cannedAnswer.delete({id:p.cannedAnswer.id}).$promise.then(function(){_.remove(p.cannedAnswers,{id:p.cannedAnswer.id}),i.success({title:"CannedAnswer properly deleted!",msg:(p.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),u(p.cannedAnswer)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_CANNEDANSWER",p.cannedAnswer=angular.copy(s),p.cannedAnswers=o,p.newCannedAnswer=!1,p.cannedAnswer||(p.cannedAnswer={},p.title="TOOLS.NEW_CANNEDANSWER",p.newCannedAnswer=!0),p.addNewCannedAnswer=l,p.saveCannedAnswer=d,p.deleteCannedAnswer=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","cannedAnswers","cannedAnswer","api"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.dashboard.save(p.customDashboard).$promise.then(function(e){p.customDashboards.unshift(e),i.success({title:"CustomDashboard properly created",msg:p.customDashboard.name?p.customDashboard.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.dashboard.update({id:p.customDashboard.id},p.customDashboard).$promise.then(function(e){var t=_.find(p.customDashboards,{id:e.id});t&&_.merge(t,e),i.success({title:"CustomDashboard properly saved!",msg:p.customDashboard.name?p.customDashboard.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.dashboard.delete({id:p.customDashboard.id}).$promise.then(function(){_.remove(p.customDashboards,{id:p.customDashboard.id}),i.success({title:"CustomDashboard properly deleted!",msg:(p.customDashboard.name||"customDashboard")+" has been deleted!"}),u(p.customDashboard)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_CUSTOMDASHBOARD",p.customDashboard=angular.copy(s),p.customDashboards=o,p.newCustomDashboard=!1,p.customDashboard||(p.customDashboard={interval:5},p.title="TOOLS.NEW_CUSTOMDASHBOARD",p.newCustomDashboard=!0),p.addNewCustomDashboard=l,p.saveCustomDashboard=d,p.deleteCustomDashboard=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","customDashboards","customDashboard","api"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the customDashboard?").htmlContent("<b>"+(e.name||"customDashboard")+"</b> will be deleted.").ariaLabel("delete customDashboard").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.customDashboards=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.dashboard.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditCustomDashboardDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{customDashboard:t,customDashboards:A.customDashboards.rows}})}function v(e){l.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(A.customDashboards.rows,{id:e.id}),A.customDashboards.count-=1,A.customDashboards.rows.length||A.getCustomDashboards(),c.success({title:"CustomDashboard deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedCustomDashboards);return A.selectedCustomDashboards=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+A.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedCustomDashboards.forEach(function(e){v(e)}),A.selectedCustomDashboards=[]})}function E(){A.selectedCustomDashboards=[]}function y(){A.selectedCustomDashboards=A.customDashboards.rows}var A=this;A.customDashboards=r||{count:0,rows:[]},A.table="customDashboards",A.listOrder="",A.listOrderAsc=null,A.selectedCustomDashboards=[],A.query={fields:"createdAt,updatedAt,id,name,interval,description",sort:"-updatedAt",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getCustomDashboards=g,A.createOrEditCustomDashboard=h,A.deleteCustomDashboard=v,A.exportSelectedCustomDashboards=b,A.deleteSelectedCustomDashboards=f,A.deselectCustomDashboards=E,A.selectAllCustomDashboards=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","customDashboards","api","msUtils","toasty"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(e){return console.log(e),i.dashboardItem.delete({id:e}).$promise.then(function(t){_.remove(c.items.rows,{id:e})}).catch(function(e){console.error(e)})}function s(e,t,n){return i.dashboardItem.update(n).$promise.catch(function(e){console.error(e)})}function r(e){t.show({controller:"CreateOrEditDashboardItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{dashboarditem:null,dashboard:c.items.rows}})}function l(e){return c.customDashboard=e,d=a(function(){return i.dashboard.run({id:c.customDashboard.id})},1e3*c.customDashboard.interval),i.dashboard.getItems({id:e.id,fields:"id,type,sizeX,sizeY,row,col,data"}).$promise.then(function(e){c.items=e}).catch(function(e){console.error(e)})}var d,c=this;c.customDashboard={},c.gridOptions={resizable:{enabled:!0,stop:s},draggable:{enabled:!0,stop:s}},c.items={rows:[],count:0},c.init=l,c.addItem=r,c.updateItem=s,c.deleteItem=o,e.$on("$destroy",function(){a.cancel(d)})}e.$inject=["$scope","$mdDialog","$document","$interval","api"],angular.module("app.tools").controller("CustomDashboardCustomDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.dashboard.addItem({id:t.params.id},p.dashboarditem).$promise.then(function(e){p.dashboard.unshift(e),i.success({title:"DashboardItem properly created",msg:p.dashboarditem.name?p.dashboarditem.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.dashboardItem.update({id:p.dashboarditem.id},p.dashboarditem).$promise.then(function(e){var t=_.find(p.dashboard,{id:e.id});t&&_.merge(t,e),i.success({title:"DashboardItem properly saved!",msg:p.dashboarditem.name?p.dashboarditem.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.dashboardItem.delete({id:p.dashboarditem.id}).$promise.then(function(){_.remove(p.dashboard,{id:p.dashboarditem.id}),i.success({title:"DashboardItem properly deleted!",msg:(p.dashboarditem.name||"dashboarditem")+" has been deleted!"}),u(p.dashboarditem)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_DASHBOARDITEM",p.dashboarditem=angular.copy(s),p.dashboard=o,p.newDashboardItem=!1,p.dashboarditem||(p.dashboarditem={type:"counter"},p.title="TOOLS.NEW_DASHBOARDITEM",p.newDashboardItem=!0),p.addNewDashboardItem=l,p.saveDashboardItem=d,p.deleteDashboardItem=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","dashboard","dashboarditem","api"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.customDashboards")}function r(){i.dashboard.update({id:l.customDashboard.id},l.customDashboard).$promise.then(function(){a.success({title:"CustomDashboard updated!",msg:l.customDashboard.name?l.customDashboard.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.customDashboard=e.params.customDashboard||o||{},l.selectedTab=e.params.tab||0,l.gotoCustomDashboards=s,l.saveCustomDashboard=r}e.$inject=["$state","$mdDialog","$document","toasty","api","customDashboard"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.interval.save(p.interval).$promise.then(function(e){p.intervals.unshift(e),i.success({title:"Interval properly created",msg:p.interval.name?p.interval.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.interval.update({id:p.interval.id},p.interval).$promise.then(function(e){var t=_.find(p.intervals,{id:e.id});t&&_.merge(t,e),i.success({title:"Interval properly saved!",msg:p.interval.name?p.interval.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.interval.delete({id:p.interval.id}).$promise.then(function(){_.remove(p.intervals,{id:p.interval.id}),i.success({title:"Interval properly deleted!",msg:(p.interval.name||"interval")+" has been deleted!"}),u(p.interval)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_INTERVAL",p.interval=angular.copy(s),p.intervals=o,p.newInterval=!1,p.interval||(p.interval={},p.title="TOOLS.NEW_INTERVAL",p.newInterval=!0),p.addNewInterval=l,p.saveInterval=d,p.deleteInterval=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","intervals","interval","api"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditIntervalAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.interval=e,h.query.id=h.interval.id,h.getIntervalIntervals()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.intervalIntervals=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.interval.getIntervals(h.query,c).$promise}function u(e,t){i.show({controller:"EditIntervalAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:t,intervals:h.intervalIntervals.rows}})}function p(e){r.interval.delete({id:e.id}).$promise.then(function(){_.remove(h.intervalIntervals.rows,{id:e.id}),h.intervalIntervals.count-=1,h.intervalIntervals.rows.length||h.getIntervalIntervals(),s.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+h.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedIntervalIntervals.forEach(function(e){p(e)}),h.selectedIntervalIntervals=[]})}var h=this;h.interval={},h.intervalIntervals={count:0,rows:[]},h.selectedIntervalIntervals=[],h.sortableTable={animation:100,onSort:function(e){r.interval.addIntervals({id:h.interval.id},e.models).$promise.then(function(e){h.intervalIntervals.rows=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},h.query={fields:"createdAt,updatedAt,id,name,interval,createdAt",nolimit:"true",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getIntervalIntervals=m,h.createOrEditIntervalInterval=u,h.deleteIntervalInterval=p,h.deleteSelectedIntervalIntervals=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getIntervalIntervals())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.interval.save(p.interval).$promise.then(function(e){p.intervals.unshift(e),i.success({title:"Interval properly created",msg:p.interval.name?p.interval.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.interval.update({id:p.interval.id},p.interval).$promise.then(function(e){var t=_.find(p.intervals,{id:e.id});t&&_.merge(t,e),i.success({title:"Interval properly saved!",msg:p.interval.name?p.interval.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.interval.delete({id:p.interval.id}).$promise.then(function(){_.remove(p.intervals,{id:p.interval.id}),i.success({title:"Interval properly deleted!",msg:(p.interval.name||"interval")+" has been deleted!"}),u(p.interval)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_INTERVAL",p.interval=angular.copy(s),p.intervals=o,p.newInterval=!1,p.interval||(p.interval={},p.title="TOOLS.NEW_INTERVAL",p.newInterval=!0),p.addNewInterval=l,p.saveInterval=d,p.deleteInterval=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","intervals","interval","api"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.intervals")}function r(){i.interval.update({id:l.interval.id},l.interval).$promise.then(function(){a.success({title:"Interval updated!",msg:l.interval.name?l.interval.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.interval=e.params.interval||o||{},l.selectedTab=e.params.tab||0,l.gotoIntervals=s,l.saveInterval=r}e.$inject=["$state","$mdDialog","$document","toasty","api","interval"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.intervals.edit",{id:e.id,interval:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+(e.name||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.intervals=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.interval.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:t,intervals:A.intervals.rows}})}function v(e){l.interval.delete({id:e.id}).$promise.then(function(){_.remove(A.intervals.rows,{id:e.id}),A.intervals.count-=1,A.intervals.rows.length||A.getIntervals(),c.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedIntervals);return A.selectedIntervals=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+A.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedIntervals.forEach(function(e){v(e)}),A.selectedIntervals=[]})}function E(){A.selectedIntervals=[]}function y(){A.selectedIntervals=A.intervals.rows}var A=this;A.intervals=r||{count:0,rows:[]},A.table="intervals",A.listOrder="",A.listOrderAsc=null,A.selectedIntervals=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getIntervals=g,A.createOrEditInterval=h,A.deleteInterval=v,A.exportSelectedIntervals=b,A.deleteSelectedIntervals=f,A.deselectIntervals=E,A.selectAllIntervals=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","intervals","api","msUtils","toasty"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.pause.save(p.pause).$promise.then(function(e){p.pauses.unshift(e),i.success({title:"Pause properly created",msg:p.pause.name?p.pause.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.pause.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.pause.update({id:p.pause.id},p.pause).$promise.then(function(e){var t=_.find(p.pauses,{id:e.id});t&&_.merge(t,e),i.success({title:"Pause properly saved!",msg:p.pause.name?p.pause.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.pause.delete({id:p.pause.id}).$promise.then(function(){_.remove(p.pauses,{id:p.pause.id}),i.success({title:"Pause properly deleted!",msg:(p.pause.name||"pause")+" has been deleted!"}),u(p.pause)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_PAUSE",p.pause=angular.copy(s),p.pauses=o,p.newPause=!1,p.pause||(p.pause={},p.title="TOOLS.NEW_PAUSE",p.newPause=!0),p.addNewPause=l,p.savePause=d,p.deletePause=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","pauses","pause","api"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{pause:e,pauses:A.pauses.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the pause?").htmlContent("<b>"+(e.name||"pause")+"</b> will be deleted.").ariaLabel("delete pause").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.pauses=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.pause.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{pause:t,pauses:A.pauses.rows}})}function v(e){l.pause.delete({id:e.id}).$promise.then(function(){_.remove(A.pauses.rows,{id:e.id}),A.pauses.count-=1,A.pauses.rows.length||A.getPauses(),c.success({title:"Pause deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpause",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedPauses);return A.selectedPauses=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+A.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedPauses.forEach(function(e){v(e)}),A.selectedPauses=[]})}function E(){A.selectedPauses=[]}function y(){A.selectedPauses=A.pauses.rows}var A=this;A.pauses=r||{count:0,rows:[]},A.table="pauses",A.listOrder="",A.listOrderAsc=null,A.selectedPauses=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getPauses=g,A.createOrEditPause=h,A.deletePause=v,A.exportSelectedPauses=b,A.deleteSelectedPauses=f,A.deselectPauses=E,A.selectAllPauses=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","pauses","api","msUtils","toasty"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.schedule.save(p.schedule).$promise.then(function(e){p.schedules.unshift(e),i.success({title:"Schedule properly created",msg:p.schedule.name?p.schedule.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.schedule.update({id:p.schedule.id},p.schedule).$promise.then(function(e){var t=_.find(p.schedules,{id:e.id});t&&_.merge(t,e),i.success({title:"Schedule properly saved!",msg:p.schedule.name?p.schedule.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.schedule.delete({id:p.schedule.id}).$promise.then(function(){_.remove(p.schedules,{id:p.schedule.id}),i.success({title:"Schedule properly deleted!",msg:(p.schedule.name||"schedule")+" has been deleted!"}),u(p.schedule)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_SCHEDULE",p.schedule=angular.copy(s),p.schedules=o,p.newSchedule=!1,p.schedule||(p.schedule={type:"report",reportType:"default",reportOutput:"CSV",cronType:"currentDay",cron:"*/15 * * * *",weekDays:"monday",reportRange:"last30",sendMail:!1,active:!0},p.title="TOOLS.NEW_SCHEDULE",p.newSchedule=!0),p.addNewSchedule=l,p.saveSchedule=d,p.deleteSchedule=c,p.getDateFromString=m,p.closeDialog=u,r.analyticCustomReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.customReports=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcustomReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.analyticDefaultReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.defaultReports=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdefaultReports",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","schedules","schedule","api"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.schedules")}function r(){i.schedule.update({id:l.schedule.id},l.schedule).$promise.then(function(){a.success({title:"Schedule updated!",msg:l.schedule.name?l.schedule.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETschedule",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.schedule=e.params.schedule||o||{},l.selectedTab=e.params.tab||0,l.gotoScheduler=s,l.saveSchedule=r,i.analyticCustomReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.customReports=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcustomReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.analyticDefaultReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){l.defaultReports=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdefaultReports",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","schedule"],angular.module("app.tools").controller("ScheduleController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.schedules.edit",{id:e.id,schedule:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be deleted.").ariaLabel("delete schedule").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.schedules=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.schedule.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{schedule:t,schedules:A.schedules.rows}})}function v(e){l.schedule.delete({id:e.id}).$promise.then(function(){_.remove(A.schedules.rows,{id:e.id}),A.schedules.count-=1,A.schedules.rows.length||A.getScheduler(),c.success({title:"Schedule deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETschedule",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedScheduler);return A.selectedScheduler=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+A.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedScheduler.forEach(function(e){v(e)}),A.selectedScheduler=[]})}function E(){A.selectedScheduler=[]}function y(){A.selectedScheduler=A.schedules.rows}var A=this;A.schedules=r||{count:0,rows:[]},A.table="schedules",A.listOrder="",A.listOrderAsc=null,A.selectedScheduler=[],A.query={fields:"createdAt,updatedAt,id,name,type,reportType,reportId,reportId,reportOutput,cronType,validityStart,validityEnd,cron,weekDays,monthDay,hour,reportRange,sendMail,MailServerOutId,email,active,description",sort:"-updatedAt",limit:10,page:1},A.arraytype=_.keyBy([{option:"Report",value:"'report'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayreportType=_.keyBy([{option:"Default",value:"'default'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayreportOutput=_.keyBy([{option:"CSV",value:"'CSV'"},{option:"PDF",value:"'PDF'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycronType=_.keyBy([{option:"CurrentDay",value:"'currentDay'"},{option:"Daily",value:"'daily'"},{option:"Weekly",value:"'weekly'"},{option:"Monthly",value:"'monthly'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraycron=_.keyBy([{option:"15min",value:"'*/15 * * * *'"},{option:"30min",value:"'*/30 * * * *'"},{option:"1h",value:"'0 * * * *'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayweekDays=_.keyBy([{option:"MON",value:"'monday'"},{option:"TUE",value:"'tuesday'"},{option:"WED",value:"'wednesday'"},{option:"THU",value:"'thursday'"},{option:"FRI",value:"'friday'"},{option:"SAT",value:"'saturday'"},{option:"SUN",value:"'sunday'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayreportRange=_.keyBy([{option:"PREVIOUS_DAY",value:"'yesterday'"},{option:"LAST_SEVEN_DAYS",value:"'last7'"},{option:"LAST_THIRTY_DAYS",value:"'last30'"},{option:"LAST_MONTH",value:"'lastMonth'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getScheduler=g,A.createOrEditSchedule=h,A.deleteSchedule=v,A.exportSelectedScheduler=b,A.deleteSelectedScheduler=f,A.deselectScheduler=E,A.selectAllScheduler=y,l.analyticCustomReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.customReports=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcustomReports",msg:e.data?JSON.stringify(e.data):e.toString()})}),l.analyticDefaultReport.get({fields:"id,name",sort:"name"}).$promise.then(function(e){A.defaultReports=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdefaultReports",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","schedules","api","msUtils","toasty"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.sound.save(p.sound).$promise.then(function(e){p.sounds.unshift(e),i.success({title:"Sound properly created",msg:p.sound.name?p.sound.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.sound.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.sound.update({id:p.sound.id},p.sound).$promise.then(function(e){var t=_.find(p.sounds,{id:e.id});t&&_.merge(t,e),i.success({title:"Sound properly saved!",msg:p.sound.name?p.sound.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.sound.delete({id:p.sound.id}).$promise.then(function(){_.remove(p.sounds,{id:p.sound.id}),i.success({title:"Sound properly deleted!",msg:(p.sound.name||"sound")+" has been deleted!"}),u(p.sound)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_SOUND",p.sound=angular.copy(s),p.sounds=o,p.newSound=!1,p.sound||(p.sound={},p.title="TOOLS.NEW_SOUND",p.newSound=!0),p.addNewSound=l,p.saveSound=d,p.deleteSound=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","sounds","sound","api"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{sound:e,sounds:x.sounds.rows}})}function u(e,n){return l.sound.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/sounds/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsound",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e,t){var n=i.confirm().title("Are you sure want to delete the sound?").htmlContent("<b>"+(e.name||"sound")+"</b> will be deleted.").ariaLabel("delete sound").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){x.sounds=e||{count:0,rows:[]}}function h(){x.query.offset=(x.query.page-1)*x.query.limit,x.promise=l.sound.get(x.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sound:t,sounds:x.sounds.rows}})}function b(e){l.sound.delete({id:e.id}).$promise.then(function(){_.remove(x.sounds.rows,{id:e.id}),x.sounds.count-=1,x.sounds.rows.length||x.getSounds(),c.success({title:"Sound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsound",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(x.selectedSounds);return x.selectedSounds=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+x.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){x.selectedSounds.forEach(function(e){b(e)}),x.selectedSounds=[]})}function y(){x.selectedSounds=[]}function A(){x.selectedSounds=x.sounds.rows}function C(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/uploadsound/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:x.sounds.rows}})}var x=this;x.sounds=r||{count:0,rows:[]},x.table="sounds",x.listOrder="",x.listOrderAsc=null,x.selectedSounds=[],x.query={fields:"createdAt,updatedAt,id,name,audio,description",sort:"-updatedAt",limit:10,page:1},x.editdialog=m,x.downloadfile=u,x.deleteconfirm=p,x.success=g,x.getSounds=h,x.createOrEditSound=v,x.deleteSound=b,x.exportSelectedSounds=f,x.deleteSelectedSounds=E,x.deselectSounds=y,x.selectAllSounds=A,x.uploadSound=C;var T=!0,S=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(S=x.query.page),e!==t&&(x.query.page=1),e||(x.query.page=S),x.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","sounds","api","msUtils","toasty"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(e){var t=["wav","mp3","gsm"];if(_.includes(t,e.getExtension())){var a={id:e.uniqueIdentifier,file:e,type:"uploading"};return d.uploadSounds.unshift(a),!0}return n.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported only: "+t.join()}),!1}function s(){d.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},d.ngFlow.flow.upload()}function r(e,t){d.sounds.unshift(JSON.parse(t)),angular.forEach(d.uploadSounds,function(t,n){if(t.id===e.uniqueIdentifier){var a=new FileReader;a.readAsDataURL(t.file.file),a.onload=function(e){t.url=e.target.result},t.type="sound"}})}function l(){t.hide()}var d=this;d.errors=[],d.title="TOOLS.UPLOAD_SOUND",d.sounds=a,d.uploadSounds=[],d.sound={},d.ngFlowOptions={chunkSize:15728640,maxChunkRetries:1,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,target:"api/sounds"},d.ngFlow={flow:{}},d.dropping=!1,d.fileAdded=o,d.upload=s,d.fileSuccess=r,d.closeDialog=l}e.$inject=["$cookies","$mdDialog","toasty","sounds","api"],angular.module("app.tools").controller("UploadSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.tag.save(p.tag).$promise.then(function(e){p.tags.unshift(e),i.success({title:"Tag properly created",msg:p.tag.name?p.tag.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.tag.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.tag.update({id:p.tag.id},p.tag).$promise.then(function(e){var t=_.find(p.tags,{id:e.id});t&&_.merge(t,e),i.success({title:"Tag properly saved!",msg:p.tag.name?p.tag.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.tag.delete({id:p.tag.id}).$promise.then(function(){_.remove(p.tags,{id:p.tag.id}),i.success({title:"Tag properly deleted!",msg:(p.tag.name||"tag")+" has been deleted!"}),u(p.tag)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_TAG",p.tag=angular.copy(s),p.tags=o,p.newTag=!1,p.tag||(p.tag={},p.title="TOOLS.NEW_TAG",p.newTag=!0),p.addNewTag=l,p.saveTag=d,p.deleteTag=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","tags","tag","api"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{tag:e,tags:A.tags.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the tag?").htmlContent("<b>"+(e.name||"tag")+"</b> will be deleted.").ariaLabel("delete tag").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.tags=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.tag.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{tag:t,tags:A.tags.rows}})}function v(e){l.tag.delete({id:e.id}).$promise.then(function(){_.remove(A.tags.rows,{id:e.id}),A.tags.count-=1,A.tags.rows.length||A.getTags(),c.success({title:"Tag deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtag",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTags);return A.selectedTags=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+A.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTags.forEach(function(e){v(e)}),A.selectedTags=[]})}function E(){A.selectedTags=[]}function y(){A.selectedTags=A.tags.rows}var A=this;A.tags=r||{count:0,rows:[]},A.table="tags",A.listOrder="",A.listOrderAsc=null,A.selectedTags=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getTags=g,A.createOrEditTag=h,A.deleteTag=v,A.exportSelectedTags=b,A.deleteSelectedTags=f,A.deselectTags=E,A.selectAllTags=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","tags","api","msUtils","toasty"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.template.save(p.template).$promise.then(function(e){p.templates.unshift(e),i.success({title:"Template properly created",msg:p.template.name?p.template.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.template.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.template.update({id:p.template.id},p.template).$promise.then(function(e){var t=_.find(p.templates,{id:e.id});t&&_.merge(t,e),i.success({title:"Template properly saved!",msg:p.template.name?p.template.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.template.delete({id:p.template.id}).$promise.then(function(){_.remove(p.templates,{id:p.template.id}),i.success({title:"Template properly deleted!",msg:(p.template.name||"template")+" has been deleted!"}),u(p.template)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_TEMPLATE",p.template=angular.copy(s),p.templates=o,p.newTemplate=!1,p.template||(p.template={},p.title="TOOLS.NEW_TEMPLATE",p.newTemplate=!0),p.addNewTemplate=l,p.saveTemplate=d,p.deleteTemplate=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","templates","template","api"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{template:e,templates:A.templates.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the template?").htmlContent("<b>"+(e.name||"template")+"</b> will be deleted.").ariaLabel("delete template").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.templates=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.template.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{template:t,templates:A.templates.rows}})}function v(e){l.template.delete({id:e.id}).$promise.then(function(){_.remove(A.templates.rows,{id:e.id}),A.templates.count-=1,A.templates.rows.length||A.getTemplates(),c.success({title:"Template deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplate",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTemplates);return A.selectedTemplates=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+A.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTemplates.forEach(function(e){v(e)}),A.selectedTemplates=[]})}function E(){A.selectedTemplates=[]}function y(){A.selectedTemplates=A.templates.rows}var A=this;A.templates=r||{count:0,rows:[]},A.table="templates",A.listOrder="",A.listOrderAsc=null,A.selectedTemplates=[],A.query={fields:"createdAt,updatedAt,id,name,subject,html,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getTemplates=g,A.createOrEditTemplate=h,A.deleteTemplate=v,A.exportSelectedTemplates=b,A.deleteSelectedTemplates=f,A.deselectTemplates=E,A.selectAllTemplates=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","templates","api","msUtils","toasty"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.save(p.trigger).$promise.then(function(e){p.triggers.unshift(e),i.success({title:"Trigger properly created",msg:p.trigger.name?p.trigger.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.trigger.update({id:p.trigger.id},p.trigger).$promise.then(function(e){var t=_.find(p.triggers,{id:e.id});t&&_.merge(t,e),i.success({title:"Trigger properly saved!",msg:p.trigger.name?p.trigger.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The trigger will be deleted.").ariaLabel("Delete Trigger").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.trigger.delete({id:p.trigger.id}).$promise.then(function(){_.remove(p.triggers,{id:p.trigger.id}),i.success({title:"Trigger properly deleted!",msg:(p.trigger.name||"trigger")+" has been deleted!"}),u(p.trigger)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_TRIGGER",p.trigger=angular.copy(s),p.triggers=o,p.newTrigger=!1,p.trigger||(p.trigger={channel:"voice"},p.title="TOOLS.NEW_TRIGGER",p.newTrigger=!0),p.addNewTrigger=l,p.saveTrigger=d,p.deleteTrigger=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","triggers","trigger","api"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.trigger=e,h.query.id=h.trigger.id,h.query.ActionId=h.trigger.id,h.getTriggerActions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the action?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete action").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.triggerActions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.trigger.getActions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{action:t,actions:h.triggerActions.rows}})}function p(e){r.action.delete({id:e.id}).$promise.then(function(){_.remove(h.triggerActions.rows,{id:e.id}),h.triggerActions.count-=1,h.triggerActions.rows.length||h.getTriggerActions(),s.success({title:"Action deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected actions?").htmlContent("<b>"+h.selectedTriggerActions.length+" selected</b> will be deleted.").ariaLabel("delete actions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedTriggerActions.forEach(function(e){p(e)}),h.selectedTriggerActions=[]})}var h=this;h.trigger={},h.triggerActions={count:0,rows:[]},h.selectedTriggerActions=[],h.query={fields:"createdAt,updatedAt,id,action,data1,data1,data1,data1,data2,data2,data1,data2,data2,data2,data2,data3,data3,data3,data3,data1,data2,data2,data3,data2,data2,data2,createdAt",limit:10,page:1},h.arrayaction=_.keyBy([{option:"CONTACT_MANAGER",value:"'contactManager'"},{option:"INTEGRATIONS",value:"'integration'"},{option:"MOTION_BAR",value:"'motionbar'"},{option:"JSCRIPTY",value:"'jscripty'"},{option:"URL_FORWARD",value:"'urlForward'"},{option:"BROWSER",value:"'browser'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.browserValues=_.keyBy([{option:"Popup",value:"'0'"},{option:"CTI URL",value:"'1'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.urlForwardValues=_.keyBy([{option:"GET",value:"'GET'"},{option:"POST",value:"'POST'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.integrationValues=_.keyBy([{option:"Zendesk",value:"'zendesk'"},{option:"Salesforce",value:"'salesforce'"},{option:"SugarCRM",value:"'sugarcrm'"},{option:"Freshdesk",value:"'freshdesk'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.motionbarValues=_.keyBy([{option:"Popup",value:"'0'"},{option:"CTI URL",value:"'1'"},{option:"Windows App",value:"'2'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.init=l,h.deleteConfirm=d,h.success=c,h.getTriggerActions=m,h.createOrEditTriggerAction=u,h.deleteTriggerAction=p,h.deleteSelectedTriggerActions=g,r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){h.lists=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){h.projects=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.zendeskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.salesforceAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.sugarcrmAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.freshdeskAccounts=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){h.zendeskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){h.salesforceConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){h.sugarcrmConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){h.freshdeskConfigurations=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){h.templates=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getTriggerActions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.addAction({id:t.params.id},p.action).$promise.then(function(e){p.actions.unshift(e),i.success({title:"Action properly created",msg:p.action.name?p.action.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.action.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.action.update({id:p.action.id},p.action).$promise.then(function(e){var t=_.find(p.actions,{id:e.id});t&&_.merge(t,e),i.success({title:"Action properly saved!",msg:p.action.name?p.action.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.action.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The action will be deleted.").ariaLabel("Delete Action").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.action.delete({id:p.action.id}).$promise.then(function(){_.remove(p.actions,{id:p.action.id}),i.success({title:"Action properly deleted!",msg:(p.action.name||"action")+" has been deleted!"}),u(p.action)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_ACTION",p.action=angular.copy(s),p.actions=o,p.newAction=!1,p.action||(p.action={},p.title="TOOLS.NEW_ACTION",p.newAction=!0),t.params.id&&(p.action.ActionId=t.params.id),p.addNewAction=l,p.saveAction=d,p.deleteAction=c,p.getDateFromString=m,p.closeDialog=u,r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){p.projects=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zendeskAccounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.salesforceAccounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.sugarcrmAccounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskAccount.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.freshdeskAccounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intZendeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.zendeskConfigurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETzendeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSalesforceConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.salesforceConfigurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsalesforceConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intSugarcrmConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.sugarcrmConfigurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsugarcrmConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.intFreshdeskConfiguration.get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){p.freshdeskConfigurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfreshdeskConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.templates=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtemplates",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","actions","action","api"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.trigger=e,h.query.id=h.trigger.id,h.query.TriggerAllId=h.trigger.id,h.getTriggerAllConditions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the allCondition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete allCondition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.triggerAllConditions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.trigger.getAllConditions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{allCondition:t,allconditions:h.triggerAllConditions.rows}})}function p(e){r.condition.delete({id:e.id}).$promise.then(function(){_.remove(h.triggerAllConditions.rows,{id:e.id}),h.triggerAllConditions.count-=1,h.triggerAllConditions.rows.length||h.getTriggerAllConditions(),s.success({title:"AllCondition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected allconditions?").htmlContent("<b>"+h.selectedTriggerAllConditions.length+" selected</b> will be deleted.").ariaLabel("delete allconditions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedTriggerAllConditions.forEach(function(e){p(e)}),h.selectedTriggerAllConditions=[]})}var h=this;h.trigger={},h.triggerAllConditions={count:0,rows:[]},h.selectedTriggerAllConditions=[],h.query={fields:"createdAt,updatedAt,id,field,operator,value,value,value,createdAt",limit:10,page:1},h.arrayfield=_.keyBy([{option:"Queue",value:"'queue'"},{option:"Call_Status",value:"'lastevent'"},{option:"OutboundRoute",value:"'routeId'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.arrayoperator=_.keyBy([{option:"Equals",value:"'equals'"},{option:"Not_Equals",value:"'not_equals'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.arrayvalue=_.keyBy([{option:"Abandon",value:"'abandoned'"},{option:"Hangup",value:"'complete'"},{option:"Reject",value:"'rejected'"},{option:"Ring",value:"'called'"},{option:"Answer",value:"'connect'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.init=l,h.deleteConfirm=d,h.success=c,h.getTriggerAllConditions=m,h.createOrEditTriggerAllCondition=u,h.deleteTriggerAllCondition=p,h.deleteSelectedTriggerAllConditions=g,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h.queues=_.keyBy(e.rows||[],"name")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){h.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getTriggerAllConditions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.addAllCondition({id:t.params.id},p.allCondition).$promise.then(function(e){p.allconditions.unshift(e),i.success({title:"AllCondition properly created",msg:p.allCondition.name?p.allCondition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(e){var t=_.find(p.allconditions,{id:e.id});t&&_.merge(t,e),i.success({title:"AllCondition properly saved!",msg:p.allCondition.name?p.allCondition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The allCondition will be deleted.").ariaLabel("Delete AllCondition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.condition.delete({id:p.allCondition.id}).$promise.then(function(){_.remove(p.allconditions,{id:p.allCondition.id}),i.success({title:"AllCondition properly deleted!",msg:(p.allCondition.name||"allCondition")+" has been deleted!"}),u(p.allCondition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_ALLCONDITION",p.allCondition=angular.copy(s),p.allconditions=o,p.newAllCondition=!1,p.allCondition||(p.allCondition={field:"queue",operator:"equals",value:"equals"},p.title="TOOLS.NEW_ALLCONDITION",p.newAllCondition=!0),t.params.id&&(p.allCondition.TriggerAllId=t.params.id),p.addNewAllCondition=l,p.saveAllCondition=d,p.deleteAllCondition=c,p.getDateFromString=m,p.closeDialog=u,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","allconditions","allCondition","api"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.trigger=e,h.query.id=h.trigger.id,h.query.TriggerAnyId=h.trigger.id,h.getTriggerAnyConditions()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the anyCondition?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete anyCondition").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.triggerAnyConditions=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.trigger.getAnyConditions(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{anyCondition:t,anyconditions:h.triggerAnyConditions.rows}})}function p(e){r.condition.delete({id:e.id}).$promise.then(function(){_.remove(h.triggerAnyConditions.rows,{id:e.id}),h.triggerAnyConditions.count-=1,h.triggerAnyConditions.rows.length||h.getTriggerAnyConditions(),s.success({title:"AnyCondition deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected anyconditions?").htmlContent("<b>"+h.selectedTriggerAnyConditions.length+" selected</b> will be deleted.").ariaLabel("delete anyconditions").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedTriggerAnyConditions.forEach(function(e){p(e)}),h.selectedTriggerAnyConditions=[]})}var h=this;h.trigger={},h.triggerAnyConditions={count:0,rows:[]},h.selectedTriggerAnyConditions=[],h.query={fields:"createdAt,updatedAt,id,field,operator,value,value,value,createdAt",limit:10,page:1},h.arrayfield=_.keyBy([{option:"Queue",value:"'queue'"},{option:"Call_Status",value:"'lastevent'"},{option:"OutboundRoute",value:"'routeId'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.arrayoperator=_.keyBy([{option:"Equals",value:"'equals'"},{option:"Not_Equals",value:"'not_equals'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.arrayvalue=_.keyBy([{option:"Abandon",value:"'abandoned'"},{option:"Hangup",value:"'complete'"},{option:"Reject",value:"'rejected'"},{option:"Ring",value:"'called'"},{option:"Answer",value:"'connect'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),h.init=l,h.deleteConfirm=d,h.success=c,h.getTriggerAnyConditions=m,h.createOrEditTriggerAnyCondition=u,h.deleteTriggerAnyCondition=p,h.deleteSelectedTriggerAnyConditions=g,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h.queues=_.keyBy(e.rows||[],"name")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){h.outboundRoutes=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getTriggerAnyConditions())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trigger.addAnyCondition({id:t.params.id},p.anyCondition).$promise.then(function(e){p.anyconditions.unshift(e),i.success({title:"AnyCondition properly created",msg:p.anyCondition.name?p.anyCondition.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(e){var t=_.find(p.anyconditions,{id:e.id});t&&_.merge(t,e),i.success({title:"AnyCondition properly saved!",msg:p.anyCondition.name?p.anyCondition.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The anyCondition will be deleted.").ariaLabel("Delete AnyCondition").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.condition.delete({id:p.anyCondition.id}).$promise.then(function(){_.remove(p.anyconditions,{id:p.anyCondition.id}),i.success({title:"AnyCondition properly deleted!",msg:(p.anyCondition.name||"anyCondition")+" has been deleted!"}),u(p.anyCondition)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_ANYCONDITION",p.anyCondition=angular.copy(s),p.anyconditions=o,p.newAnyCondition=!1,p.anyCondition||(p.anyCondition={field:"queue",operator:"equals",value:"equals"},p.title="TOOLS.NEW_ANYCONDITION",p.newAnyCondition=!0),t.params.id&&(p.anyCondition.TriggerAnyId=t.params.id),p.addNewAnyCondition=l,p.saveAnyCondition=d,p.deleteAnyCondition=c,p.getDateFromString=m,p.closeDialog=u,r.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","anyconditions","anyCondition","api"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.tools.triggers")}function r(){i.trigger.update({id:l.trigger.id},l.trigger).$promise.then(function(){a.success({title:"Trigger updated!",msg:l.trigger.name?l.trigger.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.trigger=e.params.trigger||o||{},l.selectedTab=e.params.tab||0,l.gotoTriggers=s,l.saveTrigger=r}e.$inject=["$state","$mdDialog","$document","toasty","api","trigger"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.triggers.edit",{id:e.id,trigger:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the trigger?").htmlContent("<b>"+(e.name||"trigger")+"</b> will be deleted.").ariaLabel("delete trigger").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.triggers=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.trigger.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditTriggerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:t,triggers:A.triggers.rows}})}function v(e){l.trigger.delete({id:e.id}).$promise.then(function(){_.remove(A.triggers.rows,{id:e.id}),A.triggers.count-=1,A.triggers.rows.length||A.getTriggers(),c.success({title:"Trigger deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedTriggers);return A.selectedTriggers=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected triggers?").htmlContent("<b>"+A.selectedTriggers.length+" selected</b> will be deleted.").ariaLabel("delete Triggers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedTriggers.forEach(function(e){v(e)}),A.selectedTriggers=[]})}function E(){A.selectedTriggers=[]}function y(){A.selectedTriggers=A.triggers.rows}var A=this;A.triggers=r||{count:0,rows:[]},A.table="triggers",A.listOrder="",A.listOrderAsc=null,A.selectedTriggers=[],A.query={fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,page:1},A.arraychannel=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getTriggers=g,A.createOrEditTrigger=h,A.deleteTrigger=v,A.exportSelectedTriggers=b,A.deleteSelectedTriggers=f,A.deselectTriggers=E,A.selectAllTriggers=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getTriggers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","triggers","api","msUtils","toasty"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.trunk.save(p.trunk).$promise.then(function(e){p.trunks.unshift(e),i.success({title:"Trunk properly created",msg:p.trunk.name?p.trunk.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.trunk.update({id:p.trunk.id},p.trunk).$promise.then(function(e){var t=_.find(p.trunks,{id:e.id});t&&_.merge(t,e),i.success({title:"Trunk properly saved!",msg:p.trunk.name?p.trunk.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.trunk.delete({id:p.trunk.id}).$promise.then(function(){_.remove(p.trunks,{id:p.trunk.id}),i.success({title:"Trunk properly deleted!",msg:(p.trunk.name||"trunk")+" has been deleted!"}),u(p.trunk)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_TRUNK",p.trunk=angular.copy(s),p.trunks=o,p.newTrunk=!1,p.trunk||(p.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes"},p.title="TOOLS.NEW_TRUNK",p.newTrunk=!0),p.addNewTrunk=l,p.saveTrunk=d,p.deleteTrunk=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","trunks","trunk","api"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(t,n){e.go("app.voice.realtime.trunks")}function r(){e.go("app.tools.trunks")}function l(){i.trunk.update({id:d.trunk.id},d.trunk).$promise.then(function(){a.success({title:"Trunk updated!",msg:d.trunk.name?d.trunk.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})}var d=this;d.trunk=e.params.trunk||o||{},d.selectedTab=e.params.tab||0,d.gotogoto=s,d.gotoTrunks=r,d.saveTrunk=l,i.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){d.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","trunk"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.tools.trunks.edit",{id:e.id,trunk:e})}function u(e,t){n.go("app.voice.realtime.trunks")}function p(e,t){var n=i.confirm().title("Are you sure want to delete the trunk?").htmlContent("<b>"+(e.name||"trunk")+"</b> will be deleted.").ariaLabel("delete trunk").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){b(e)},function(){console.log("CANCEL")})}function g(e){C.trunks=e||{count:0,rows:[]}}function h(){C.query.offset=(C.query.page-1)*C.query.limit,C.promise=l.trunk.get(C.query,g).$promise}function v(e,t){i.show({controller:"CreateOrEditTrunkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{trunk:t,trunks:C.trunks.rows}})}function b(e){l.trunk.delete({id:e.id}).$promise.then(function(){_.remove(C.trunks.rows,{id:e.id}),C.trunks.count-=1,C.trunks.rows.length||C.getTrunks(),c.success({title:"Trunk deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})}function f(){var e=_.clone(C.selectedTrunks);return C.selectedTrunks=[],e}function E(e){var t=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+C.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){C.selectedTrunks.forEach(function(e){b(e)}),C.selectedTrunks=[]})}function y(){C.selectedTrunks=[]}function A(){C.selectedTrunks=C.trunks.rows}var C=this;C.trunks=r||{count:0,rows:[]},C.table="trunks",C.listOrder="",C.listOrderAsc=null,C.selectedTrunks=[],C.query={fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,otherFields",sort:"-updatedAt",limit:10,page:1},C.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.arraydtmfmode=_.keyBy([{option:"rfc2833",value:"'rfc2833'"},{option:"info",value:"'info'"},{option:"shortinfo",value:"'shortinfo'"},{option:"inband",value:"'inband'"},{option:"auto",value:"'auto'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.arrayallow=_.keyBy([{option:"alaw",value:"'alaw'"},{option:"ulaw",value:"'ulaw'"},{option:"gsm",value:"'gsm'"},{option:"g723",value:"'g723'"},{option:"g726",value:"'g726'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.arraydirectmedia=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"nonat",value:"'nonat'"},{option:"update",value:"'update'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),C.editstate=m,C.gotorealtimegoto=u,C.deleteconfirm=p,C.success=g,C.getTrunks=h,C.createOrEditTrunk=v,C.deleteTrunk=b,C.exportSelectedTrunks=f,C.deleteSelectedTrunks=E,C.deselectTrunks=y,C.selectAllTrunks=A;var x=!0,T=1;e.$watch("vm.query.filter",function(e,t){x?s(function(){x=!1}):(t||(T=C.query.page),e!==t&&(C.query.page=1),e||(C.query.page=T),C.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","trunks","api","msUtils","toasty"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.variable.save(p.variable).$promise.then(function(e){p.variables.unshift(e),i.success({title:"Variable properly created",msg:p.variable.name?p.variable.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.variable.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.variable.update({id:p.variable.id},p.variable).$promise.then(function(e){var t=_.find(p.variables,{id:e.id});t&&_.merge(t,e),i.success({title:"Variable properly saved!",msg:p.variable.name?p.variable.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.variable.delete({id:p.variable.id}).$promise.then(function(){_.remove(p.variables,{id:p.variable.id}),i.success({title:"Variable properly deleted!",msg:(p.variable.name||"variable")+" has been deleted!"}),u(p.variable)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="TOOLS.EDIT_VARIABLE",p.variable=angular.copy(s),p.variables=o,p.newVariable=!1,p.variable||(p.variable={},p.title="TOOLS.NEW_VARIABLE",p.newVariable=!0),p.addNewVariable=l,p.saveVariable=d,p.deleteVariable=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","variables","variable","api"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{variable:e,variables:A.variables.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the variable?").htmlContent("<b>"+(e.name||"variable")+"</b> will be deleted.").ariaLabel("delete variable").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.variables=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.variable.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{variable:t,variables:A.variables.rows}})}function v(e){l.variable.delete({id:e.id}).$promise.then(function(){_.remove(A.variables.rows,{id:e.id}),A.variables.count-=1,A.variables.rows.length||A.getVariables(),c.success({title:"Variable deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariable",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedVariables);return A.selectedVariables=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+A.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedVariables.forEach(function(e){v(e)}),A.selectedVariables=[]})}function E(){A.selectedVariables=[]}function y(){A.selectedVariables=A.variables.rows}var A=this;A.variables=r||{count:0,rows:[]},A.table="variables",A.listOrder="",A.listOrderAsc=null,A.selectedVariables=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getVariables=g,A.createOrEditVariable=h,A.deleteVariable=v,A.exportSelectedVariables=b,A.deleteSelectedVariables=f,A.deselectVariables=E,A.selectAllVariables=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","variables","api","msUtils","toasty"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.chanSpies.edit",{id:e.id,chanSpy:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the chanSpy?").htmlContent("<b>"+(e.name||"chanSpy")+"</b> will be deleted.").ariaLabel("delete chanSpy").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.chanSpies=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceChanSpy.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{chanSpy:t,chanSpies:A.chanSpies.rows}})}function v(e){l.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(A.chanSpies.rows,{id:e.id}),A.chanSpies.count-=1,A.chanSpies.rows.length||A.getChanSpies(),c.success({title:"chanSpy deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceChanSpy",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedChanSpies);return A.selectedChanSpies=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+A.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedChanSpies.forEach(function(e){v(e)}),A.selectedChanSpies=[]})}function E(){A.selectedChanSpies=[]}function y(){A.selectedChanSpies=A.chanSpies.rows}var A=this;A.chanSpies=r||{count:0,rows:[]},A.table="chanSpies",A.listOrder="",A.listOrderAsc=null,A.selectedChanSpies=[],A.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},A.arrayoptions=_.keyBy([{option:"b: Only spy on channels involved in a bridged call.",value:"'b'"},{option:"B: Instead of whispering on a single channel barge in on both channels involved in the call.",value:"'B'"},{option:"E: Exit when the spied-on channel hangs up.",value:"'E'"},{option:"o: Only listen to audio coming from this channel.",value:"'o'"},{option:"q: Don't play a beep when beginning to spy on a channel, or speak the selected channel name.",value:"'q'"},{option:"s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.",value:"'s'"},{option:"S: Stop when no more channels are left to spy on.",value:"'S'"},{option:"w: Enable whisper mode, so the spying channel can talk to the spied-on channel.",value:"'w'"},{option:"W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.",value:"'W'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getChanSpies=g,A.createOrEditchanSpy=h,A.deletechanSpy=v,A.exportSelectedChanSpies=b,A.deleteSelectedChanSpies=f,A.deselectChanSpies=E,A.selectAllChanSpies=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","chanSpies","api","msUtils","toasty"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceChanSpy.save(p.chanSpy).$promise.then(function(e){p.chanSpies.unshift(e),i.success({title:"chanSpy properly created",msg:p.chanSpy.name?p.chanSpy.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceChanSpy.update({id:p.chanSpy.id},p.chanSpy).$promise.then(function(e){var t=_.find(p.chanSpies,{id:e.id});t&&_.merge(t,e),i.success({title:"chanSpy properly saved!",msg:p.chanSpy.name?p.chanSpy.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceChanSpy.delete({id:p.chanSpy.id}).$promise.then(function(){_.remove(p.chanSpies,{id:p.chanSpy.id}),i.success({title:"chanSpy properly deleted!",msg:(p.chanSpy.name||"chanSpy")+" has been deleted!"}),u(p.chanSpy)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_CHANSPY",p.chanSpy=angular.copy(s),p.chanSpies=o,p.newchanSpy=!1,p.chanSpy||(p.chanSpy={},p.title="VOICE.NEW_CHANSPY",p.newchanSpy=!0),p.addNewchanSpy=l,p.savechanSpy=d,p.deletechanSpy=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","chanSpies","chanSpy","api"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.chanSpies")}function r(){i.voiceChanSpy.update({id:l.chanSpy.id},l.chanSpy).$promise.then(function(){a.success({title:"chanSpy updated!",msg:l.chanSpy.name?l.chanSpy.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceChanSpy",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.chanSpy=e.params.chanSpy||o||{},l.selectedTab=e.params.tab||0,l.gotoChanSpies=s,l.savechanSpy=r}e.$inject=["$state","$mdDialog","$document","toasty","api","chanSpy"],angular.module("app.voice").controller("ChanSpyController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{context:e,contexts:A.contexts.rows}})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the context?").htmlContent("<b>"+(e.name||"context")+"</b> will be deleted.").ariaLabel("delete context").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.contexts=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceContext.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{context:t,contexts:A.contexts.rows}})}function v(e){l.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(A.contexts.rows,{id:e.id}),A.contexts.count-=1,A.contexts.rows.length||A.getContexts(),c.success({title:"Context deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceContext",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedContexts);return A.selectedContexts=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+A.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedContexts.forEach(function(e){v(e)}),A.selectedContexts=[]})}function E(){A.selectedContexts=[]}function y(){A.selectedContexts=A.contexts.rows}var A=this;A.contexts=r||{count:0,rows:[]},A.table="contexts",A.listOrder="",A.listOrderAsc=null,A.selectedContexts=[],A.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},A.editdialog=m,A.deleteconfirm=u,A.success=p,A.getContexts=g,A.createOrEditContext=h,A.deleteContext=v,A.exportSelectedContexts=b,A.deleteSelectedContexts=f,A.deselectContexts=E,A.selectAllContexts=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","contexts","api","msUtils","toasty"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceContext.save(p.context).$promise.then(function(e){p.contexts.unshift(e),i.success({title:"Context properly created",msg:p.context.name?p.context.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceContext.update({id:p.context.id},p.context).$promise.then(function(e){var t=_.find(p.contexts,{id:e.id});t&&_.merge(t,e),i.success({title:"Context properly saved!",msg:p.context.name?p.context.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceContext.delete({id:p.context.id}).$promise.then(function(){_.remove(p.contexts,{id:p.context.id}),i.success({title:"Context properly deleted!",msg:(p.context.name||"context")+" has been deleted!"}),u(p.context)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_CONTEXT",p.context=angular.copy(s),p.contexts=o,p.newContext=!1,p.context||(p.context={},p.title="VOICE.NEW_CONTEXT",p.newContext=!0),p.addNewContext=l,p.saveContext=d,p.deleteContext=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","contexts","context","api"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceExtension.save(p.inboundroute).$promise.then(function(e){p.inboundroutes.unshift(e),i.success({title:"InboundRoute properly created",msg:p.inboundroute.name?p.inboundroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceExtension.update({id:p.inboundroute.id},p.inboundroute).$promise.then(function(e){var t=_.find(p.inboundroutes,{id:e.id});t&&_.merge(t,e),i.success({title:"InboundRoute properly saved!",msg:p.inboundroute.name?p.inboundroute.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The inboundroute will be deleted.").ariaLabel("Delete InboundRoute").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceExtension.delete({id:p.inboundroute.id}).$promise.then(function(){_.remove(p.inboundroutes,{id:p.inboundroute.id}),i.success({title:"InboundRoute properly deleted!",msg:(p.inboundroute.name||"inboundroute")+" has been deleted!"}),u(p.inboundroute)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_INBOUNDROUTE",p.inboundroute=angular.copy(s),p.inboundroutes=o,p.newInboundRoute=!1,p.inboundroute||(p.inboundroute={appdata:"Inbound Call",type:"inbound",context:"from-voip-provider"},p.title="VOICE.NEW_INBOUNDROUTE",p.newInboundRoute=!0),p.addNewInboundRoute=l,p.saveInboundRoute=d,p.deleteInboundRoute=c,p.getDateFromString=m,p.closeDialog=u,r.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){p.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","inboundroutes","inboundroute","api"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){g.inboundroute=e,g.query.VoiceExtensionId=e.id,g.query.isApp=!0,g.query.nolimit=!0,g.getInboundRouteApps(),g.getIntervals()}function o(e,n,a){var i=t.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.inboundrouteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.inboundrouteApps.rows.length){var o=g.inboundrouteApps.rows[i]?g.inboundrouteApps.rows[i]:g.inboundrouteApps.rows[0];t.show({controller:"EditInboundRouteApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundrouteApp:o}}).then(function(e){e&&(e.id?g.inboundrouteApps.rows[i]=e:g.inboundrouteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.inboundrouteApps.rows.length){var i=g.inboundrouteApps.rows[a]?g.inboundrouteApps.rows[a]:g.inboundrouteApps.rows[0];t.show({controller:"EditInboundRouteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){var t=["queue","playback"],n=!1,a=!1,i=2,o=[];o.push({type:"inbound",app:"Set",appdata:"CDR(type)=inbound",context:g.inboundroute.context,exten:g.inboundroute.exten,priority:i++,VoiceExtensionId:g.inboundroute.id});for(var s=0,r=0;s<g.inboundrouteApps.rows.length;s++,r=0){var l=g.inboundrouteApps.rows[s],d=[],c=[];l.intervals="*,*,*,*"!==l.interval?[l.interval]:l.IntervalId?_.map(_.filter(g.intervals.rows,{IntervalId:l.IntervalId}),"interval"):[],l.context=g.inboundroute.context,l.exten=g.inboundroute.exten,l.hasOwnProperty("answer")&&t.includes(l.app.toLowerCase())&&"custom"!==l.appType&&(!n&&l.answer&&(n=!0,d.push({type:l.type,app:"Answer",context:g.inboundroute.context,exten:g.inboundroute.exten,priority:l.intervals.length+i+r++,VoiceExtensionId:g.inboundroute.id})),n||a||l.answer||(a=!0,d.push({type:l.type,app:"Progress",context:g.inboundroute.context,exten:g.inboundroute.exten,priority:l.intervals.length+i+r++,VoiceExtensionId:g.inboundroute.id})));for(var m=0;m<l.intervals.length;m++){var u=i+l.intervals.length,p=m===l.intervals.length-1?i+d.length+c.length+2:i+m+1;d.splice(m,0,{type:"inbound",app:"GotoIfTime",appdata:l.intervals[m]+"?"+g.inboundroute.context+",${EXTEN},"+u+":"+g.inboundroute.context+",${EXTEN},"+p,exten:g.inboundroute.exten,context:g.inboundroute.context,priority:i+m,VoiceExtensionId:g.inboundroute.id})}l.priority=d.length?_.last(d).priority+1:i,i=(c.length?_.last(c).priority:l.priority)+1,o=_.concat(o,d,[l],c)}o.push({type:"inbound",app:"Hangup",exten:g.inboundroute.exten,context:g.inboundroute.context,priority:i,VoiceExtensionId:g.inboundroute.id}),e.voiceExtension.addApplications({id:g.inboundroute.id},_.sortBy(o,"priority")).$promise.then(function(e){g.inboundrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function d(e){g.inboundrouteApps=e||{count:0,rows:[]}}function c(){return e.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){g.intervals=e}).catch(function(e){console.error(e)})}function m(){g.promise=e.voiceExtension.get(g.query,d).$promise}function u(e){_.remove(g.inboundrouteApps.rows,{id:e.id}),l(),a.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})}function p(e){var n=t.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+g.selectedInboundRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedInboundRouteApps.forEach(function(e){_.remove(g.inboundrouteApps.rows,{id:e.id})}),g.selectedInboundRouteApps=[],l()})}var g=this;g.inboundroute={},g.inboundrouteApps={count:0,rows:[]},g.selectedInboundRouteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"Queue",appType:"queue",context:"from-voip-provider",type:"Inbound",appdata:",xX,,,300,,,,,",icon:"icon-apps",options:"xX",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}},{name:"queues",route:"voiceQueue",filters:{type:"inbound",fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Url",name:"URL",type:"text",param:2},{title:"Announce_Overrides",name:"sound",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}'",option:"sound.name",defaultValues:[{value:"''",option:"None"}],param:3},{title:"Timeout",name:"timeout",type:"number",min:0,param:4},{title:"Agi",name:"agi",type:"text",param:5},{title:"Macro",name:"macro",type:"text",param:6},{title:"GoSub",name:"gosub",type:"text",param:7},{title:"Rule",name:"rule",type:"text",param:8},{title:"Position",name:"position",type:"number",min:0,param:9},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Playback",appType:"playback",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}}],fields:[{title:"Audio_Files",name:"appdata",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}'",option:"appdata.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Dial",appType:"dial",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,fields:[{title:"Technology/Resource",name:"tech",type:"text",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"internalDial",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"user",type:"apiselect",values:"users",value:"'SIP/{{user.name}}'",option:"user.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"externalDial",context:"from-voip-provider",type:"inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Phone",name:"phone",required:!0,type:"text"},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"ringGroup",context:"from-voip-provider",type:"inbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"multipleUsers",type:"apiselect",multiple:!0,values:"users",value:"'SIP/{{multipleUsers.name}}'",option:"multipleUsers.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"AGI",alias:"CallySquare",appType:"agi",context:"from-voip-provider",type:"inbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"projects",route:"squareProject",filters:{fields:"name",sort:"name"}}],fields:[{title:"Project",name:"project",type:"apiselect",values:"projects",value:"'agi://127.0.0.1/square,{{project.name}}'",option:"project.name",required:!0,param:0}]},{app:"goto",appType:"goTo",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"contexts",route:"voiceContext",filters:{fields:"name",sort:"name"}}],fields:[{title:"Context",name:"context",type:"apiselect",values:"contexts",value:"context.name",option:"context.name",required:!0,param:0},{title:"Extension",name:"extension",type:"text",required:!0,param:1},{title:"Priority",name:"priority",type:"text",required:!0,param:2}]},{app:"hangup",appType:"hangup",context:"from-voip-provider",type:"Inbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Hangup_Cause",name:"appdata",type:"select",param:0,values:[{option:"HANGUPCAUSE_1",value:"'1'"},{option:"HANGUPCAUSE_16",value:"'16'"},{option:"HANGUPCAUSE_17",value:"'17'"},{option:"HANGUPCAUSE_18",value:"'18'"},{option:"HANGUPCAUSE_21",value:"'21'"},{option:"HANGUPCAUSE_22",value:"'22'"},{option:"HANGUPCAUSE_27",value:"'27'"},{option:"HANGUPCAUSE_38",value:"'38'"},{option:"HANGUPCAUSE_41",value:"'41'"}],translate:!0,required:!0,general:!0}]},{app:"Set",appType:"set",context:"from-voip-provider",type:"Inbound",separator:"=",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Variable",name:"name",type:"text",required:!0,param:0},{title:"Value",name:"value",type:"text",required:!0,param:1}]},{app:null,appType:"custom",icon:"icon-apps",type:"Inbound",interval:"*,*,*,*",isApp:!0,fields:[{title:"Application_Name",name:"app",type:"text",required:!0,param:0},{title:"Arguments",name:"appdata",type:"text",param:1}]},{app:"Voicemail",appType:"voicemail",context:"from-voip-provider",icon:"icon-apps",type:"Inbound",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"voiceMails",route:"voiceMail",filters:{fields:"mailbox",sort:"mailbox"}}],fields:[{title:"Mailbox@Context",name:"voiceMail",type:"apiselect",values:"voiceMails",value:"'{{voiceMail.mailbox}}@from-voicemail'",option:"voiceMail.mailbox",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getInboundRouteApps=m,g.editInboundRouteApp=s,g.editInterval=r,g.deleteInboundRouteApp=u,g.deleteSelectedInboundRouteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.voice").controller("InboundRouteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.agi.type.toLowerCase()&&"outboundDial"===s.agi.appType&&(s.agi.phone=s.agi.cutdigits?(s.agi.prefix||"")+"${EXTEN:"+s.agi.cutdigits+"}":(s.agi.prefix||"")+"${EXTEN}",s.agi.record="none"!==s.agi.recordingFormat,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:null),s.agi.appType.toLowerCase()){case"set":s.agi.appdata=s.agi.name+"="+s.agi.value;break;case"custom":break;default:e[0]=s.agi.project,s.agi.appdata=e.join(",")}o(s.agi)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.agi=angular.copy(n),s.agi.appdata)switch(s.agi.appType?s.agi.appType.toLowerCase():s.agi.app.toLowerCase()){case"custom":break;case"set":s.agi.name=s.agi.appdata.split("=")[0],s.agi.value=s.agi.appdata.split("=")[1];break;case"agi":s.agi.project=s.agi.appdata;break;default:var r=s.agi.appdata.split(",");s.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.agi.type.toLowerCase()&&"outbounddial"===s.agi.appType.toLowerCase()&&(s.agi.prefix=s.agi.phone?s.agi.phone.split("$")[0]:void 0,s.agi.callerId=s.agi.callerID?"CALLERID(all)="+s.agi.callerID:void 0,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){s.projects=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppagiDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.custom.type.toLowerCase()&&"outboundDial"===s.custom.appType&&(s.custom.phone=s.custom.cutdigits?(s.custom.prefix||"")+"${EXTEN:"+s.custom.cutdigits+"}":(s.custom.prefix||"")+"${EXTEN}",s.custom.record="none"!==s.custom.recordingFormat,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:null),s.custom.appType.toLowerCase()){case"set":s.custom.appdata=s.custom.name+"="+s.custom.value;break;case"custom":break;default:e[0]=s.custom.app,e[1]=s.custom.appdata,s.custom.appdata=e.join(",")}o(s.custom)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.custom=angular.copy(n),s.custom.appdata)switch(s.custom.appType?s.custom.appType.toLowerCase():s.custom.app.toLowerCase()){case"custom":break;case"set":s.custom.name=s.custom.appdata.split("=")[0],s.custom.value=s.custom.appdata.split("=")[1];break;case"agi":s.custom.project=s.custom.appdata;break;default:var r=s.custom.appdata.split(",");s.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.custom.type.toLowerCase()&&"outbounddial"===s.custom.appType.toLowerCase()&&(s.custom.prefix=s.custom.phone?s.custom.phone.split("$")[0]:void 0,s.custom.callerId=s.custom.callerID?"CALLERID(all)="+s.custom.callerID:void 0,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.dial.type.toLowerCase()&&"outboundDial"===s.dial.appType&&(s.dial.phone=s.dial.cutdigits?(s.dial.prefix||"")+"${EXTEN:"+s.dial.cutdigits+"}":(s.dial.prefix||"")+"${EXTEN}",s.dial.record="none"!==s.dial.recordingFormat,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:null),s.dial.appType.toLowerCase()){case"set":s.dial.appdata=s.dial.name+"="+s.dial.value;break;case"custom":break;default:e[0]=s.dial.tech,e[1]=s.dial.timeout,e[2]=s.dial.options,e[3]=s.dial.url,s.dial.appdata=e.join(",")}o(s.dial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.dial=angular.copy(n),s.dial.appdata)switch(s.dial.appType?s.dial.appType.toLowerCase():s.dial.app.toLowerCase()){case"custom":break;case"set":s.dial.name=s.dial.appdata.split("=")[0],s.dial.value=s.dial.appdata.split("=")[1];break;case"agi":s.dial.project=s.dial.appdata;break;default:var r=s.dial.appdata.split(",");s.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.dial.type.toLowerCase()&&"outbounddial"===s.dial.appType.toLowerCase()&&(s.dial.prefix=s.dial.phone?s.dial.phone.split("$")[0]:void 0,s.dial.callerId=s.dial.callerID?"CALLERID(all)="+s.dial.callerID:void 0,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppdialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.externaldial.type.toLowerCase()&&"outboundDial"===s.externaldial.appType&&(s.externaldial.phone=s.externaldial.cutdigits?(s.externaldial.prefix||"")+"${EXTEN:"+s.externaldial.cutdigits+"}":(s.externaldial.prefix||"")+"${EXTEN}",s.externaldial.record="none"!==s.externaldial.recordingFormat,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:null),s.externaldial.appType.toLowerCase()){case"set":s.externaldial.appdata=s.externaldial.name+"="+s.externaldial.value;break;case"custom":break;default:e[0]=["SIP",s.externaldial.trunk,s.externaldial.phone].join("/"),e[1]=s.externaldial.timeout,e[2]=s.externaldial.options,e[3]=s.externaldial.url,s.externaldial.appdata=e.join(",")}o(s.externaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.externaldial=angular.copy(n),s.externaldial.appdata)switch(s.externaldial.appType?s.externaldial.appType.toLowerCase():s.externaldial.app.toLowerCase()){case"custom":break;case"set":s.externaldial.name=s.externaldial.appdata.split("=")[0],s.externaldial.value=s.externaldial.appdata.split("=")[1];break;case"agi":s.externaldial.project=s.externaldial.appdata;break;default:var r=s.externaldial.appdata.split(",");s.externaldial.trunk=r[0].split("/")[1],s.externaldial.phone=r[0].split("/")[2],s.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.externaldial.type.toLowerCase()&&"outbounddial"===s.externaldial.appType.toLowerCase()&&(s.externaldial.prefix=s.externaldial.phone?s.externaldial.phone.split("$")[0]:void 0,s.externaldial.callerId=s.externaldial.callerID?"CALLERID(all)="+s.externaldial.callerID:void 0,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppexternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType.toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.context,e[1]=s.goto.extension,e[2]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){s.contexts=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.hangup.type.toLowerCase()&&"outboundDial"===s.hangup.appType&&(s.hangup.phone=s.hangup.cutdigits?(s.hangup.prefix||"")+"${EXTEN:"+s.hangup.cutdigits+"}":(s.hangup.prefix||"")+"${EXTEN}",s.hangup.record="none"!==s.hangup.recordingFormat,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:null),s.hangup.appType.toLowerCase()){case"set":s.hangup.appdata=s.hangup.name+"="+s.hangup.value;break;case"custom":break;default:e[0]=s.hangup.appdata,s.hangup.appdata=e.join(",")}o(s.hangup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.hangup=angular.copy(n),s.hangup.appdata)switch(s.hangup.appType?s.hangup.appType.toLowerCase():s.hangup.app.toLowerCase()){case"custom":break;case"set":s.hangup.name=s.hangup.appdata.split("=")[0],s.hangup.value=s.hangup.appdata.split("=")[1];break;case"agi":s.hangup.project=s.hangup.appdata;break;default:var r=s.hangup.appdata.split(",");s.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.hangup.type.toLowerCase()&&"outbounddial"===s.hangup.appType.toLowerCase()&&(s.hangup.prefix=s.hangup.phone?s.hangup.phone.split("$")[0]:void 0,s.hangup.callerId=s.hangup.callerID?"CALLERID(all)="+s.hangup.callerID:void 0,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteApphangupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.internaldial.type.toLowerCase()&&"outboundDial"===s.internaldial.appType&&(s.internaldial.phone=s.internaldial.cutdigits?(s.internaldial.prefix||"")+"${EXTEN:"+s.internaldial.cutdigits+"}":(s.internaldial.prefix||"")+"${EXTEN}",s.internaldial.record="none"!==s.internaldial.recordingFormat,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:null),s.internaldial.appType.toLowerCase()){case"set":s.internaldial.appdata=s.internaldial.name+"="+s.internaldial.value;break;case"custom":break;default:e[0]=s.internaldial.user,e[1]=s.internaldial.timeout,e[2]=s.internaldial.options,e[3]=s.internaldial.url,s.internaldial.appdata=e.join(",")}o(s.internaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.internaldial=angular.copy(n),s.internaldial.appdata)switch(s.internaldial.appType?s.internaldial.appType.toLowerCase():s.internaldial.app.toLowerCase()){case"custom":break;case"set":s.internaldial.name=s.internaldial.appdata.split("=")[0],s.internaldial.value=s.internaldial.appdata.split("=")[1];break;case"agi":s.internaldial.project=s.internaldial.appdata;break;default:var r=s.internaldial.appdata.split(",");s.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.internaldial.type.toLowerCase()&&"outbounddial"===s.internaldial.appType.toLowerCase()&&(s.internaldial.prefix=s.internaldial.phone?s.internaldial.phone.split("$")[0]:void 0,s.internaldial.callerId=s.internaldial.callerID?"CALLERID(all)="+s.internaldial.callerID:void 0,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditInboundRouteAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.playback.type.toLowerCase()&&"outboundDial"===s.playback.appType&&(s.playback.phone=s.playback.cutdigits?(s.playback.prefix||"")+"${EXTEN:"+s.playback.cutdigits+"}":(s.playback.prefix||"")+"${EXTEN}",s.playback.record="none"!==s.playback.recordingFormat,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:null),s.playback.appType.toLowerCase()){case"set":s.playback.appdata=s.playback.name+"="+s.playback.value;break;case"custom":break;default:e[0]=s.playback.appdata,e[1]=s.playback.options,s.playback.appdata=e.join(",")}o(s.playback)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.playback=angular.copy(n),s.playback.appdata)switch(s.playback.appType?s.playback.appType.toLowerCase():s.playback.app.toLowerCase()){case"custom":break;case"set":s.playback.name=s.playback.appdata.split("=")[0],s.playback.value=s.playback.appdata.split("=")[1];break;case"agi":s.playback.project=s.playback.appdata;break;default:var r=s.playback.appdata.split(",");s.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.playback.type.toLowerCase()&&"outbounddial"===s.playback.appType.toLowerCase()&&(s.playback.prefix=s.playback.phone?s.playback.phone.split("$")[0]:void 0,s.playback.callerId=s.playback.callerID?"CALLERID(all)="+s.playback.callerID:void 0,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppplaybackDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null),s.queue.appType.toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.options,e[2]=s.queue.URL,e[3]=s.queue.sound,e[4]=s.queue.timeout,e[5]=s.queue.agi,e[6]=s.queue.macro,e[7]=s.queue.gosub,e[8]=s.queue.rule,e[9]=s.queue.position,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),s.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),s.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),s.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),s.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),s.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),s.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.ringgroup.type.toLowerCase()&&"outboundDial"===s.ringgroup.appType&&(s.ringgroup.phone=s.ringgroup.cutdigits?(s.ringgroup.prefix||"")+"${EXTEN:"+s.ringgroup.cutdigits+"}":(s.ringgroup.prefix||"")+"${EXTEN}",s.ringgroup.record="none"!==s.ringgroup.recordingFormat,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:null),s.ringgroup.appType.toLowerCase()){case"set":s.ringgroup.appdata=s.ringgroup.name+"="+s.ringgroup.value;break;case"custom":break;default:e[0]=s.ringgroup.multipleUsers.join("&"),e[1]=s.ringgroup.timeout,e[2]=s.ringgroup.options,e[3]=s.ringgroup.url,s.ringgroup.appdata=e.join(",")}o(s.ringgroup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.ringgroup=angular.copy(n),s.ringgroup.appdata)switch(s.ringgroup.appType?s.ringgroup.appType.toLowerCase():s.ringgroup.app.toLowerCase()){case"custom":break;case"set":s.ringgroup.name=s.ringgroup.appdata.split("=")[0],s.ringgroup.value=s.ringgroup.appdata.split("=")[1];break;case"agi":s.ringgroup.project=s.ringgroup.appdata;break;default:var r=s.ringgroup.appdata.split(",");s.ringgroup.multipleUsers=r[0].split("&"),s.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.ringgroup.type.toLowerCase()&&"outbounddial"===s.ringgroup.appType.toLowerCase()&&(s.ringgroup.prefix=s.ringgroup.phone?s.ringgroup.phone.split("$")[0]:void 0,s.ringgroup.callerId=s.ringgroup.callerID?"CALLERID(all)="+s.ringgroup.callerID:void 0,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppringgroupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.set.type.toLowerCase()&&"outboundDial"===s.set.appType&&(s.set.phone=s.set.cutdigits?(s.set.prefix||"")+"${EXTEN:"+s.set.cutdigits+"}":(s.set.prefix||"")+"${EXTEN}",s.set.record="none"!==s.set.recordingFormat,s.set.recordingFormat=s.set.record?s.set.recordingFormat:null),s.set.appType.toLowerCase()){case"set":s.set.appdata=s.set.name+"="+s.set.value;break;case"custom":break;default:e[0]=s.set.name,e[1]=s.set.value,s.set.appdata=e.join("=")}o(s.set)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.set=angular.copy(n),s.set.appdata)switch(s.set.appType?s.set.appType.toLowerCase():s.set.app.toLowerCase()){case"custom":break;case"set":s.set.name=s.set.appdata.split("=")[0],s.set.value=s.set.appdata.split("=")[1];break;case"agi":s.set.project=s.set.appdata;break;default:var r=s.set.appdata.split("=");s.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.set.type.toLowerCase()&&"outbounddial"===s.set.appType.toLowerCase()&&(s.set.prefix=s.set.phone?s.set.phone.split("$")[0]:void 0,s.set.callerId=s.set.callerID?"CALLERID(all)="+s.set.callerID:void 0,s.set.recordingFormat=s.set.record?s.set.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppsetDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.voicemail.type.toLowerCase()&&"outboundDial"===s.voicemail.appType&&(s.voicemail.phone=s.voicemail.cutdigits?(s.voicemail.prefix||"")+"${EXTEN:"+s.voicemail.cutdigits+"}":(s.voicemail.prefix||"")+"${EXTEN}",s.voicemail.record="none"!==s.voicemail.recordingFormat,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:null),s.voicemail.appType.toLowerCase()){case"set":s.voicemail.appdata=s.voicemail.name+"="+s.voicemail.value;break;case"custom":break;default:e[0]=s.voicemail.voiceMail,e[1]=s.voicemail.options,s.voicemail.appdata=e.join(",")}o(s.voicemail)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.voicemail=angular.copy(n),s.voicemail.appdata)switch(s.voicemail.appType?s.voicemail.appType.toLowerCase():s.voicemail.app.toLowerCase()){case"custom":break;case"set":s.voicemail.name=s.voicemail.appdata.split("=")[0],s.voicemail.value=s.voicemail.appdata.split("=")[1];break;case"agi":s.voicemail.project=s.voicemail.appdata;break;default:var r=s.voicemail.appdata.split(",");s.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.voicemail.type.toLowerCase()&&"outbounddial"===s.voicemail.appType.toLowerCase()&&(s.voicemail.prefix=s.voicemail.phone?s.voicemail.phone.split("$")[0]:void 0,s.voicemail.callerId=s.voicemail.callerID?"CALLERID(all)="+s.voicemail.callerID:void 0,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:"none"),s.saveInboundRouteApp=i,s.closeDialog=o,a.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){s.voiceMails=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMails",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","inboundrouteApp","api"],angular.module("app.voice").controller("EditInboundRouteAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.inboundroutes")}function r(){i.voiceExtension.update({id:l.inboundroute.id},l.inboundroute).$promise.then(function(){a.success({title:"InboundRoute updated!",msg:l.inboundroute.name?l.inboundroute.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.inboundroute=e.params.inboundroute||o||{},l.selectedTab=e.params.tab||0,l.gotoInboundRoutes=s,l.saveInboundRoute=r,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","inboundroute"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.inboundroutes.edit",{id:e.id,inboundroute:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the inboundroute?").htmlContent("<b>"+(e.name||"inboundroute")+"</b> will be deleted.").ariaLabel("delete inboundroute").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.inboundroutes=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceExtension.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditInboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundroutes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundroute:t,inboundroutes:A.inboundroutes.rows}})}function v(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(A.inboundroutes.rows,{id:e.id}),A.inboundroutes.count-=1,A.inboundroutes.rows.length||A.getInboundRoutes(),c.success({title:"InboundRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedInboundRoutes);return A.selectedInboundRoutes=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected inboundroutes?").htmlContent("<b>"+A.selectedInboundRoutes.length+" selected</b> will be deleted.").ariaLabel("delete InboundRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedInboundRoutes.forEach(function(e){v(e)}),A.selectedInboundRoutes=[]})}function E(){A.selectedInboundRoutes=[]}function y(){A.selectedInboundRoutes=A.inboundroutes.rows}var A=this;A.inboundroutes=r||{count:0,rows:[]},A.table="inboundroutes",A.listOrder="",A.listOrderAsc=null,A.selectedInboundRoutes=[],A.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getInboundRoutes=g,A.createOrEditInboundRoute=h,A.deleteInboundRoute=v,A.exportSelectedInboundRoutes=b,A.deleteSelectedInboundRoutes=f,A.deselectInboundRoutes=E,A.selectAllInboundRoutes=y,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){A.contexts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getInboundRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","inboundroutes","api","msUtils","toasty"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceExtension.save(p.internalroute).$promise.then(function(e){p.internalroutes.unshift(e),i.success({title:"InternalRoute properly created",msg:p.internalroute.name?p.internalroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceExtension.update({id:p.internalroute.id},p.internalroute).$promise.then(function(e){var t=_.find(p.internalroutes,{id:e.id});t&&_.merge(t,e),i.success({title:"InternalRoute properly saved!",msg:p.internalroute.name?p.internalroute.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The internalroute will be deleted.").ariaLabel("Delete InternalRoute").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceExtension.delete({id:p.internalroute.id}).$promise.then(function(){_.remove(p.internalroutes,{id:p.internalroute.id}),i.success({title:"InternalRoute properly deleted!",msg:(p.internalroute.name||"internalroute")+" has been deleted!"}),u(p.internalroute)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_INTERNALROUTE",p.internalroute=angular.copy(s),p.internalroutes=o,p.newInternalRoute=!1,p.internalroute||(p.internalroute={appdata:"Internal Call",type:"internal",context:"from-sip"},p.title="VOICE.NEW_INTERNALROUTE",p.newInternalRoute=!0),p.addNewInternalRoute=l,p.saveInternalRoute=d,p.deleteInternalRoute=c,p.getDateFromString=m,p.closeDialog=u,r.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){p.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","internalroutes","internalroute","api"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){g.internalroute=e,g.query.VoiceExtensionId=e.id,g.query.isApp=!0,g.query.nolimit=!0,g.getInternalRouteApps(),g.getIntervals()}function o(e,n,a){var i=t.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.internalrouteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.internalrouteApps.rows.length){var o=g.internalrouteApps.rows[i]?g.internalrouteApps.rows[i]:g.internalrouteApps.rows[0];t.show({controller:"EditInternalRouteApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalrouteApp:o}}).then(function(e){e&&(e.id?g.internalrouteApps.rows[i]=e:g.internalrouteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.internalrouteApps.rows.length){var i=g.internalrouteApps.rows[a]?g.internalrouteApps.rows[a]:g.internalrouteApps.rows[0];t.show({controller:"EditInternalRouteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){var t=["queue","playback"],n=!1,a=!1,i=2,o=[];o.push({type:"internal",app:"Set",appdata:"CDR(type)=internal",context:g.internalroute.context,exten:g.internalroute.exten,priority:i++,VoiceExtensionId:g.internalroute.id});for(var s=0,r=0;s<g.internalrouteApps.rows.length;s++,r=0){var l=g.internalrouteApps.rows[s],d=[],c=[];l.intervals="*,*,*,*"!==l.interval?[l.interval]:l.IntervalId?_.map(_.filter(g.intervals.rows,{IntervalId:l.IntervalId}),"interval"):[],l.context=g.internalroute.context,l.exten=g.internalroute.exten,l.hasOwnProperty("answer")&&t.includes(l.app.toLowerCase())&&"custom"!==l.appType&&(!n&&l.answer&&(n=!0,d.push({type:l.type,app:"Answer",context:g.internalroute.context,exten:g.internalroute.exten,priority:l.intervals.length+i+r++,VoiceExtensionId:g.internalroute.id})),n||a||l.answer||(a=!0,d.push({type:l.type,app:"Progress",context:g.internalroute.context,exten:g.internalroute.exten,priority:l.intervals.length+i+r++,VoiceExtensionId:g.internalroute.id})));for(var m=0;m<l.intervals.length;m++){var u=i+l.intervals.length,p=m===l.intervals.length-1?i+d.length+c.length+2:i+m+1;d.splice(m,0,{type:"internal",app:"GotoIfTime",appdata:l.intervals[m]+"?"+g.internalroute.context+",${EXTEN},"+u+":"+g.internalroute.context+",${EXTEN},"+p,exten:g.internalroute.exten,context:g.internalroute.context,priority:i+m,VoiceExtensionId:g.internalroute.id})}l.priority=d.length?_.last(d).priority+1:i,i=(c.length?_.last(c).priority:l.priority)+1,o=_.concat(o,d,[l],c)}o.push({type:"internal",app:"Hangup",exten:g.internalroute.exten,context:g.internalroute.context,priority:i,VoiceExtensionId:g.internalroute.id}),e.voiceExtension.addApplications({id:g.internalroute.id},_.sortBy(o,"priority")).$promise.then(function(e){g.internalrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function d(e){g.internalrouteApps=e||{count:0,rows:[]}}function c(){return e.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){g.intervals=e}).catch(function(e){console.error(e)})}function m(){g.promise=e.voiceExtension.get(g.query,d).$promise}function u(e){_.remove(g.internalrouteApps.rows,{id:e.id}),l(),a.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})}function p(e){var n=t.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+g.selectedInternalRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedInternalRouteApps.forEach(function(e){_.remove(g.internalrouteApps.rows,{id:e.id})}),g.selectedInternalRouteApps=[],l()})}var g=this;g.internalroute={},g.internalrouteApps={count:0,rows:[]},g.selectedInternalRouteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",type:"Internal",types:["always","custom","list"],fields:[],isApp:!1},{app:"Queue",appType:"queue",context:"from-sip",type:"Internal",options:"xX",appdata:",xX,,,300,,,,,",icon:"icon-apps",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}},{name:"queues",route:"voiceQueue",filters:{type:"inbound",fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Url",name:"URL",type:"text",param:2},{title:"Announce_Overrides",name:"sound",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}'",option:"sound.name",defaultValues:[{value:"''",option:"None"}],param:3},{title:"Timeout",name:"timeout",type:"number",min:0,param:4},{title:"Agi",name:"agi",type:"text",param:5},{title:"Macro",name:"macro",type:"text",param:6},{title:"GoSub",name:"gosub",type:"text",param:7},{title:"Rule",name:"rule",type:"text",param:8},{title:"Position",name:"position",type:"number",min:0,param:9},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Playback",appType:"playback",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",answer:!0,isApp:!0,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}}],fields:[{title:"Audio_Files",name:"appdata",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}'",option:"appdata.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Dial",appType:"dial",context:"from-sip",type:"Internal",icon:"icon-apps",options:"xX",interval:"*,*,*,*",isApp:!0,fields:[{title:"Technology/Resource",name:"tech",type:"text",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Internal",icon:"icon-apps",options:"xX",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"user",type:"apiselect",values:"users",value:"'SIP/{{user.name}}'",option:"user.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Phone",name:"phone",type:"text"},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"multipleUsers",type:"apiselect",multiple:!0,values:"users",value:"'SIP/{{multipleUsers.name}}'",option:"multipleUsers.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"AGI",alias:"CallySquare",appType:"agi",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"projects",route:"squareProject",filters:{fields:"name",sort:"name"}}],fields:[{title:"Project",name:"project",type:"apiselect",values:"projects",value:"'agi://127.0.0.1/square,{{project.name}}'",option:"project.name",required:!0,param:0}]},{app:"goto",appType:"goTo",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"contexts",route:"voiceContext",filters:{fields:"name",sort:"name"}}],fields:[{title:"Context",name:"context",type:"apiselect",values:"contexts",value:"context.name",option:"context.name",required:!0,param:0},{title:"Extension",name:"extension",type:"text",required:!0,param:1},{title:"Priority",name:"priority",type:"text",required:!0,param:2}]},{app:"hangup",appType:"hangup",context:"from-sip",type:"Internal",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Hangup_Cause",name:"appdata",type:"select",param:0,values:[{option:"HANGUPCAUSE_1",value:"'1'"},{option:"HANGUPCAUSE_16",value:"'16'"},{option:"HANGUPCAUSE_17",value:"'17'"},{option:"HANGUPCAUSE_18",value:"'18'"},{option:"HANGUPCAUSE_21",value:"'21'"},{option:"HANGUPCAUSE_22",value:"'22'"},{option:"HANGUPCAUSE_27",value:"'27'"},{option:"HANGUPCAUSE_38",value:"'38'"},{option:"HANGUPCAUSE_41",value:"'41'"}],translate:!0,required:!0,general:!0}]},{app:"Set",appType:"set",context:"from-sip",type:"Internal",separator:"=",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Variable",name:"name",type:"text",required:!0,param:0},{title:"Value",name:"value",type:"text",required:!0,param:1}]},{app:null,appType:"Custom",icon:"icon-apps",type:"Internal",interval:"*,*,*,*",isApp:!0,fields:[{title:"Application_Name",name:"app",type:"text",required:!0,param:0},{title:"Arguments",name:"appdata",type:"text",param:1}]},{app:"Voicemail",appType:"voicemail",context:"from-sip",icon:"icon-apps",type:"Internal",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"voiceMails",route:"voiceMail",filters:{fields:"mailbox",sort:"mailbox"}}],fields:[{title:"Mailbox@Context",name:"voiceMail",type:"apiselect",values:"voiceMails",value:"'{{voiceMail.mailbox}}@from-voicemail'",option:"voiceMail.mailbox",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getInternalRouteApps=m,g.editInternalRouteApp=s,g.editInterval=r,g.deleteInternalRouteApp=u,g.deleteSelectedInternalRouteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.voice").controller("InternalRouteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.agi.type.toLowerCase()&&"outboundDial"===s.agi.appType&&(s.agi.phone=s.agi.cutdigits?(s.agi.prefix||"")+"${EXTEN:"+s.agi.cutdigits+"}":(s.agi.prefix||"")+"${EXTEN}",s.agi.record="none"!==s.agi.recordingFormat,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:null),s.agi.appType.toLowerCase()){case"set":s.agi.appdata=s.agi.name+"="+s.agi.value;break;case"custom":break;default:e[0]=s.agi.project,s.agi.appdata=e.join(",")}o(s.agi)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.agi=angular.copy(n),s.agi.appdata)switch(s.agi.appType?s.agi.appType.toLowerCase():s.agi.app.toLowerCase()){case"custom":break;case"set":s.agi.name=s.agi.appdata.split("=")[0],s.agi.value=s.agi.appdata.split("=")[1];break;case"agi":s.agi.project=s.agi.appdata;break;default:var r=s.agi.appdata.split(",");s.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.agi.type.toLowerCase()&&"outbounddial"===s.agi.appType.toLowerCase()&&(s.agi.prefix=s.agi.phone?s.agi.phone.split("$")[0]:void 0,s.agi.callerId=s.agi.callerID?"CALLERID(all)="+s.agi.callerID:void 0,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){s.projects=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppagiDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.custom.type.toLowerCase()&&"outboundDial"===s.custom.appType&&(s.custom.phone=s.custom.cutdigits?(s.custom.prefix||"")+"${EXTEN:"+s.custom.cutdigits+"}":(s.custom.prefix||"")+"${EXTEN}",s.custom.record="none"!==s.custom.recordingFormat,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:null),s.custom.appType.toLowerCase()){case"set":s.custom.appdata=s.custom.name+"="+s.custom.value;break;case"custom":break;default:e[0]=s.custom.app,e[1]=s.custom.appdata,s.custom.appdata=e.join(",")}o(s.custom)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.custom=angular.copy(n),s.custom.appdata)switch(s.custom.appType?s.custom.appType.toLowerCase():s.custom.app.toLowerCase()){case"custom":break;case"set":s.custom.name=s.custom.appdata.split("=")[0],s.custom.value=s.custom.appdata.split("=")[1];break;case"agi":s.custom.project=s.custom.appdata;break;default:var r=s.custom.appdata.split(",");s.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.custom.type.toLowerCase()&&"outbounddial"===s.custom.appType.toLowerCase()&&(s.custom.prefix=s.custom.phone?s.custom.phone.split("$")[0]:void 0,s.custom.callerId=s.custom.callerID?"CALLERID(all)="+s.custom.callerID:void 0,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.dial.type.toLowerCase()&&"outboundDial"===s.dial.appType&&(s.dial.phone=s.dial.cutdigits?(s.dial.prefix||"")+"${EXTEN:"+s.dial.cutdigits+"}":(s.dial.prefix||"")+"${EXTEN}",s.dial.record="none"!==s.dial.recordingFormat,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:null),s.dial.appType.toLowerCase()){case"set":s.dial.appdata=s.dial.name+"="+s.dial.value;break;case"custom":break;default:e[0]=s.dial.tech,e[1]=s.dial.timeout,e[2]=s.dial.options,e[3]=s.dial.url,s.dial.appdata=e.join(",")}o(s.dial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.dial=angular.copy(n),s.dial.appdata)switch(s.dial.appType?s.dial.appType.toLowerCase():s.dial.app.toLowerCase()){case"custom":break;case"set":s.dial.name=s.dial.appdata.split("=")[0],s.dial.value=s.dial.appdata.split("=")[1];break;case"agi":s.dial.project=s.dial.appdata;break;default:var r=s.dial.appdata.split(",");s.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.dial.type.toLowerCase()&&"outbounddial"===s.dial.appType.toLowerCase()&&(s.dial.prefix=s.dial.phone?s.dial.phone.split("$")[0]:void 0,s.dial.callerId=s.dial.callerID?"CALLERID(all)="+s.dial.callerID:void 0,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppdialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.externaldial.type.toLowerCase()&&"outboundDial"===s.externaldial.appType&&(s.externaldial.phone=s.externaldial.cutdigits?(s.externaldial.prefix||"")+"${EXTEN:"+s.externaldial.cutdigits+"}":(s.externaldial.prefix||"")+"${EXTEN}",s.externaldial.record="none"!==s.externaldial.recordingFormat,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:null),s.externaldial.appType.toLowerCase()){case"set":s.externaldial.appdata=s.externaldial.name+"="+s.externaldial.value;break;case"custom":break;default:e[0]=["SIP",s.externaldial.trunk,s.externaldial.phone].join("/"),e[1]=s.externaldial.timeout,e[2]=s.externaldial.options,e[3]=s.externaldial.url,s.externaldial.appdata=e.join(",")}o(s.externaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.externaldial=angular.copy(n),s.externaldial.appdata)switch(s.externaldial.appType?s.externaldial.appType.toLowerCase():s.externaldial.app.toLowerCase()){case"custom":break;case"set":s.externaldial.name=s.externaldial.appdata.split("=")[0],s.externaldial.value=s.externaldial.appdata.split("=")[1];break;case"agi":s.externaldial.project=s.externaldial.appdata;break;default:var r=s.externaldial.appdata.split(",");s.externaldial.trunk=r[0].split("/")[1],s.externaldial.phone=r[0].split("/")[2],s.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.externaldial.type.toLowerCase()&&"outbounddial"===s.externaldial.appType.toLowerCase()&&(s.externaldial.prefix=s.externaldial.phone?s.externaldial.phone.split("$")[0]:void 0,s.externaldial.callerId=s.externaldial.callerID?"CALLERID(all)="+s.externaldial.callerID:void 0,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppexternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType.toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.context,e[1]=s.goto.extension,e[2]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){s.contexts=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.hangup.type.toLowerCase()&&"outboundDial"===s.hangup.appType&&(s.hangup.phone=s.hangup.cutdigits?(s.hangup.prefix||"")+"${EXTEN:"+s.hangup.cutdigits+"}":(s.hangup.prefix||"")+"${EXTEN}",s.hangup.record="none"!==s.hangup.recordingFormat,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:null),s.hangup.appType.toLowerCase()){case"set":s.hangup.appdata=s.hangup.name+"="+s.hangup.value;break;case"custom":break;default:e[0]=s.hangup.appdata,s.hangup.appdata=e.join(",")}o(s.hangup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.hangup=angular.copy(n),s.hangup.appdata)switch(s.hangup.appType?s.hangup.appType.toLowerCase():s.hangup.app.toLowerCase()){case"custom":break;case"set":s.hangup.name=s.hangup.appdata.split("=")[0],s.hangup.value=s.hangup.appdata.split("=")[1];break;case"agi":s.hangup.project=s.hangup.appdata;break;default:var r=s.hangup.appdata.split(",");s.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.hangup.type.toLowerCase()&&"outbounddial"===s.hangup.appType.toLowerCase()&&(s.hangup.prefix=s.hangup.phone?s.hangup.phone.split("$")[0]:void 0,s.hangup.callerId=s.hangup.callerID?"CALLERID(all)="+s.hangup.callerID:void 0,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteApphangupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.internaldial.type.toLowerCase()&&"outboundDial"===s.internaldial.appType&&(s.internaldial.phone=s.internaldial.cutdigits?(s.internaldial.prefix||"")+"${EXTEN:"+s.internaldial.cutdigits+"}":(s.internaldial.prefix||"")+"${EXTEN}",s.internaldial.record="none"!==s.internaldial.recordingFormat,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:null),s.internaldial.appType.toLowerCase()){case"set":s.internaldial.appdata=s.internaldial.name+"="+s.internaldial.value;break;case"custom":break;default:e[0]=s.internaldial.user,e[1]=s.internaldial.timeout,e[2]=s.internaldial.options,e[3]=s.internaldial.url,s.internaldial.appdata=e.join(",")}o(s.internaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.internaldial=angular.copy(n),s.internaldial.appdata)switch(s.internaldial.appType?s.internaldial.appType.toLowerCase():s.internaldial.app.toLowerCase()){case"custom":break;case"set":s.internaldial.name=s.internaldial.appdata.split("=")[0],s.internaldial.value=s.internaldial.appdata.split("=")[1];break;case"agi":s.internaldial.project=s.internaldial.appdata;break;default:var r=s.internaldial.appdata.split(",");s.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.internaldial.type.toLowerCase()&&"outbounddial"===s.internaldial.appType.toLowerCase()&&(s.internaldial.prefix=s.internaldial.phone?s.internaldial.phone.split("$")[0]:void 0,s.internaldial.callerId=s.internaldial.callerID?"CALLERID(all)="+s.internaldial.callerID:void 0,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditInternalRouteAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.playback.type.toLowerCase()&&"outboundDial"===s.playback.appType&&(s.playback.phone=s.playback.cutdigits?(s.playback.prefix||"")+"${EXTEN:"+s.playback.cutdigits+"}":(s.playback.prefix||"")+"${EXTEN}",s.playback.record="none"!==s.playback.recordingFormat,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:null),s.playback.appType.toLowerCase()){case"set":s.playback.appdata=s.playback.name+"="+s.playback.value;break;case"custom":break;default:e[0]=s.playback.appdata,e[1]=s.playback.options,s.playback.appdata=e.join(",")}o(s.playback)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.playback=angular.copy(n),s.playback.appdata)switch(s.playback.appType?s.playback.appType.toLowerCase():s.playback.app.toLowerCase()){case"custom":break;case"set":s.playback.name=s.playback.appdata.split("=")[0],s.playback.value=s.playback.appdata.split("=")[1];break;case"agi":s.playback.project=s.playback.appdata;break;default:var r=s.playback.appdata.split(",");s.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.playback.type.toLowerCase()&&"outbounddial"===s.playback.appType.toLowerCase()&&(s.playback.prefix=s.playback.phone?s.playback.phone.split("$")[0]:void 0,s.playback.callerId=s.playback.callerID?"CALLERID(all)="+s.playback.callerID:void 0,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppplaybackDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null),s.queue.appType.toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.options,e[2]=s.queue.URL,e[3]=s.queue.sound,e[4]=s.queue.timeout,e[5]=s.queue.agi,e[6]=s.queue.macro,e[7]=s.queue.gosub,e[8]=s.queue.rule,e[9]=s.queue.position,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),s.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),s.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),s.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),s.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),s.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),s.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.ringgroup.type.toLowerCase()&&"outboundDial"===s.ringgroup.appType&&(s.ringgroup.phone=s.ringgroup.cutdigits?(s.ringgroup.prefix||"")+"${EXTEN:"+s.ringgroup.cutdigits+"}":(s.ringgroup.prefix||"")+"${EXTEN}",s.ringgroup.record="none"!==s.ringgroup.recordingFormat,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:null),s.ringgroup.appType.toLowerCase()){case"set":s.ringgroup.appdata=s.ringgroup.name+"="+s.ringgroup.value;break;case"custom":break;default:e[0]=s.ringgroup.multipleUsers.join("&"),e[1]=s.ringgroup.timeout,e[2]=s.ringgroup.options,e[3]=s.ringgroup.url,s.ringgroup.appdata=e.join(",")}o(s.ringgroup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.ringgroup=angular.copy(n),s.ringgroup.appdata)switch(s.ringgroup.appType?s.ringgroup.appType.toLowerCase():s.ringgroup.app.toLowerCase()){case"custom":break;case"set":s.ringgroup.name=s.ringgroup.appdata.split("=")[0],s.ringgroup.value=s.ringgroup.appdata.split("=")[1];break;case"agi":s.ringgroup.project=s.ringgroup.appdata;break;default:var r=s.ringgroup.appdata.split(",");s.ringgroup.multipleUsers=r[0].split("&"),s.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.ringgroup.type.toLowerCase()&&"outbounddial"===s.ringgroup.appType.toLowerCase()&&(s.ringgroup.prefix=s.ringgroup.phone?s.ringgroup.phone.split("$")[0]:void 0,s.ringgroup.callerId=s.ringgroup.callerID?"CALLERID(all)="+s.ringgroup.callerID:void 0,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppringgroupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.set.type.toLowerCase()&&"outboundDial"===s.set.appType&&(s.set.phone=s.set.cutdigits?(s.set.prefix||"")+"${EXTEN:"+s.set.cutdigits+"}":(s.set.prefix||"")+"${EXTEN}",s.set.record="none"!==s.set.recordingFormat,s.set.recordingFormat=s.set.record?s.set.recordingFormat:null),s.set.appType.toLowerCase()){case"set":s.set.appdata=s.set.name+"="+s.set.value;break;case"custom":break;default:e[0]=s.set.name,e[1]=s.set.value,s.set.appdata=e.join("=")}o(s.set)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.set=angular.copy(n),s.set.appdata)switch(s.set.appType?s.set.appType.toLowerCase():s.set.app.toLowerCase()){case"custom":break;case"set":s.set.name=s.set.appdata.split("=")[0],s.set.value=s.set.appdata.split("=")[1];break;case"agi":s.set.project=s.set.appdata;break;default:var r=s.set.appdata.split("=");s.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.set.type.toLowerCase()&&"outbounddial"===s.set.appType.toLowerCase()&&(s.set.prefix=s.set.phone?s.set.phone.split("$")[0]:void 0,s.set.callerId=s.set.callerID?"CALLERID(all)="+s.set.callerID:void 0,s.set.recordingFormat=s.set.record?s.set.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppsetDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.voicemail.type.toLowerCase()&&"outboundDial"===s.voicemail.appType&&(s.voicemail.phone=s.voicemail.cutdigits?(s.voicemail.prefix||"")+"${EXTEN:"+s.voicemail.cutdigits+"}":(s.voicemail.prefix||"")+"${EXTEN}",s.voicemail.record="none"!==s.voicemail.recordingFormat,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:null),s.voicemail.appType.toLowerCase()){case"set":s.voicemail.appdata=s.voicemail.name+"="+s.voicemail.value;break;case"custom":break;default:e[0]=s.voicemail.voiceMail,e[1]=s.voicemail.options,s.voicemail.appdata=e.join(",")}o(s.voicemail)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.voicemail=angular.copy(n),s.voicemail.appdata)switch(s.voicemail.appType?s.voicemail.appType.toLowerCase():s.voicemail.app.toLowerCase()){case"custom":break;case"set":s.voicemail.name=s.voicemail.appdata.split("=")[0],s.voicemail.value=s.voicemail.appdata.split("=")[1];break;case"agi":s.voicemail.project=s.voicemail.appdata;break;default:var r=s.voicemail.appdata.split(",");s.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.voicemail.type.toLowerCase()&&"outbounddial"===s.voicemail.appType.toLowerCase()&&(s.voicemail.prefix=s.voicemail.phone?s.voicemail.phone.split("$")[0]:void 0,s.voicemail.callerId=s.voicemail.callerID?"CALLERID(all)="+s.voicemail.callerID:void 0,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:"none"),s.saveInternalRouteApp=i,s.closeDialog=o,a.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){s.voiceMails=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMails",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","internalrouteApp","api"],angular.module("app.voice").controller("EditInternalRouteAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.internalroutes")}function r(){i.voiceExtension.update({id:l.internalroute.id},l.internalroute).$promise.then(function(){a.success({title:"InternalRoute updated!",msg:l.internalroute.name?l.internalroute.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.internalroute=e.params.internalroute||o||{},l.selectedTab=e.params.tab||0,l.gotoInternalRoutes=s,l.saveInternalRoute=r,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","internalroute"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.internalroutes.edit",{id:e.id,internalroute:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the internalroute?").htmlContent("<b>"+(e.name||"internalroute")+"</b> will be deleted.").ariaLabel("delete internalroute").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.internalroutes=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceExtension.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditInternalRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalroutes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalroute:t,internalroutes:A.internalroutes.rows}})}function v(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(A.internalroutes.rows,{id:e.id}),A.internalroutes.count-=1,A.internalroutes.rows.length||A.getInternalRoutes(),c.success({title:"InternalRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedInternalRoutes);return A.selectedInternalRoutes=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected internalroutes?").htmlContent("<b>"+A.selectedInternalRoutes.length+" selected</b> will be deleted.").ariaLabel("delete InternalRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedInternalRoutes.forEach(function(e){v(e)}),A.selectedInternalRoutes=[]})}function E(){A.selectedInternalRoutes=[]}function y(){A.selectedInternalRoutes=A.internalroutes.rows}var A=this;A.internalroutes=r||{count:0,rows:[]},A.table="internalroutes",A.listOrder="",A.listOrderAsc=null,A.selectedInternalRoutes=[],A.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getInternalRoutes=g,A.createOrEditInternalRoute=h,A.deleteInternalRoute=v,A.exportSelectedInternalRoutes=b,A.deleteSelectedInternalRoutes=f,A.deselectInternalRoutes=E,A.selectAllInternalRoutes=y,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){A.contexts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getInternalRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","internalroutes","api","msUtils","toasty"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceMusicOnHold.save(p.musiconhold).$promise.then(function(e){p.musiconholds.unshift(e),i.success({title:"MusicOnHold properly created",msg:p.musiconhold.name?p.musiconhold.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceMusicOnHold.update({id:p.musiconhold.id},p.musiconhold).$promise.then(function(e){var t=_.find(p.musiconholds,{id:e.id});t&&_.merge(t,e),i.success({title:"MusicOnHold properly saved!",msg:p.musiconhold.name?p.musiconhold.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceMusicOnHold.delete({id:p.musiconhold.id}).$promise.then(function(){_.remove(p.musiconholds,{id:p.musiconhold.id}),i.success({title:"MusicOnHold properly deleted!",msg:(p.musiconhold.name||"musiconhold")+" has been deleted!"}),u(p.musiconhold)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_MUSICONHOLD",p.musiconhold=angular.copy(s),p.musiconholds=o,p.newMusicOnHold=!1,p.musiconhold||(p.musiconhold={mode:"files"},p.title="VOICE.NEW_MUSICONHOLD",p.newMusicOnHold=!0),p.addNewMusicOnHold=l,p.saveMusicOnHold=d,p.deleteMusicOnHold=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","musiconholds","musiconhold","api"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.musiconhold=e,h.query.id=h.musiconhold.id,h.query.VoiceMusicOnHoldId=h.musiconhold.id,h.getMusicOnHoldMohSounds()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.musiconholdMohSounds=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceMusicOnHold.getSounds(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{mohSound:t,mohSounds:h.musiconholdMohSounds.rows}})}function p(e){r.voiceMusicOnHold.removeSound({id:n.params.id,id2:e.id}).$promise.then(function(){_.remove(h.musiconholdMohSounds.rows,{id:e.id}),h.musiconholdMohSounds.count-=1,h.musiconholdMohSounds.rows.length||h.getMusicOnHoldMohSounds(),s.success({title:"MohSound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+h.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedMusicOnHoldMohSounds.forEach(function(e){p(e)}),h.selectedMusicOnHoldMohSounds=[]})}var h=this;h.musiconhold={},h.musiconholdMohSounds={count:0,rows:[]},h.selectedMusicOnHoldMohSounds=[],h.query={fields:"createdAt,updatedAt,id,audio,id,createdAt",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getMusicOnHoldMohSounds=m,h.createOrEditMusicOnHoldMohSound=u,h.deleteMusicOnHoldMohSound=p,h.deleteSelectedMusicOnHoldMohSounds=g,r.sound.get({fields:"name,id",sort:"name"}).$promise.then(function(e){h.sounds=_.keyBy(e.rows||[],"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getMusicOnHoldMohSounds())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceMusicOnHold.addSound({id:t.params.id},p.mohSound).$promise.then(function(e){p.mohSounds.unshift(e),i.success({title:"MohSound properly created",msg:p.mohSound.name?p.mohSound.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceMusicOnHold.update({id:p.mohSound.id},p.mohSound).$promise.then(function(e){var t=_.find(p.mohSounds,{id:e.id});t&&_.merge(t,e),i.success({title:"MohSound properly saved!",msg:p.mohSound.name?p.mohSound.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceMusicOnHold.delete({id:p.mohSound.id}).$promise.then(function(){_.remove(p.mohSounds,{id:p.mohSound.id}),i.success({title:"MohSound properly deleted!",msg:(p.mohSound.name||"mohSound")+" has been deleted!"}),u(p.mohSound)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_MOHSOUND",p.mohSound=angular.copy(s),p.mohSounds=o,p.newMohSound=!1,p.mohSound||(p.mohSound={},p.title="VOICE.NEW_MOHSOUND",p.newMohSound=!0),t.params.id&&(p.mohSound.VoiceMusicOnHoldId=t.params.id),p.addNewMohSound=l,p.saveMohSound=d,p.deleteMohSound=c,p.getDateFromString=m,p.closeDialog=u,r.sound.get({fields:"name,id",sort:"name"}).$promise.then(function(e){p.sounds=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","mohSounds","mohSound","api"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.musiconholds")}function r(){i.voiceMusicOnHold.update({id:l.musiconhold.id},l.musiconhold).$promise.then(function(){a.success({title:"MusicOnHold updated!",msg:l.musiconhold.name?l.musiconhold.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.musiconhold=e.params.musiconhold||o||{},l.selectedTab=e.params.tab||0,l.gotoMusicOnHolds=s,l.saveMusicOnHold=r}e.$inject=["$state","$mdDialog","$document","toasty","api","musiconhold"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the musiconhold?").htmlContent("<b>"+(e.name||"musiconhold")+"</b> will be deleted.").ariaLabel("delete musiconhold").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.musiconholds=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceMusicOnHold.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditMusicOnHoldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:t,musiconholds:A.musiconholds.rows}})}function v(e){l.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(A.musiconholds.rows,{id:e.id}),A.musiconholds.count-=1,A.musiconholds.rows.length||A.getMusicOnHolds(),c.success({title:"MusicOnHold deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedMusicOnHolds);return A.selectedMusicOnHolds=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+A.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedMusicOnHolds.forEach(function(e){v(e)}),A.selectedMusicOnHolds=[]})}function E(){A.selectedMusicOnHolds=[]}function y(){A.selectedMusicOnHolds=A.musiconholds.rows}var A=this;A.musiconholds=r||{count:0,rows:[]},A.table="musiconholds",A.listOrder="",A.listOrderAsc=null,A.selectedMusicOnHolds=[],A.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},A.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getMusicOnHolds=g,A.createOrEditMusicOnHold=h,A.deleteMusicOnHold=v,A.exportSelectedMusicOnHolds=b,A.deleteSelectedMusicOnHolds=f,A.deselectMusicOnHolds=E,A.selectAllMusicOnHolds=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","musiconholds","api","msUtils","toasty"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceExtension.save(p.outboundroute).$promise.then(function(e){p.outboundroutes.unshift(e),i.success({title:"OutboundRoute properly created",msg:p.outboundroute.name?p.outboundroute.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceExtension.update({id:p.outboundroute.id},p.outboundroute).$promise.then(function(e){var t=_.find(p.outboundroutes,{id:e.id});t&&_.merge(t,e),i.success({title:"OutboundRoute properly saved!",msg:p.outboundroute.name?p.outboundroute.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The outboundroute will be deleted.").ariaLabel("Delete OutboundRoute").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceExtension.delete({id:p.outboundroute.id}).$promise.then(function(){_.remove(p.outboundroutes,{id:p.outboundroute.id}),i.success({title:"OutboundRoute properly deleted!",msg:(p.outboundroute.name||"outboundroute")+" has been deleted!"}),u(p.outboundroute)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_OUTBOUNDROUTE",p.outboundroute=angular.copy(s),p.outboundroutes=o,p.newOutboundRoute=!1,p.outboundroute||(p.outboundroute={appdata:"Outbound Call",type:"outbound",context:"from-sip"},p.title="VOICE.NEW_OUTBOUNDROUTE",p.newOutboundRoute=!0),p.addNewOutboundRoute=l,p.saveOutboundRoute=d,p.deleteOutboundRoute=c,p.getDateFromString=m,p.closeDialog=u,r.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){p.contexts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","outboundroutes","outboundroute","api"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(e){g.outboundroute=e,g.query.VoiceExtensionId=e.id,g.query.isApp=!0,g.query.nolimit=!0,g.getOutboundRouteApps(),g.getIntervals()}function o(e,n,a){var i=t.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(a).ok("OK").cancel("CANCEL");t.show(i).then(function(){g.outboundrouteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})}function s(e,i){if(g.outboundrouteApps.rows.length){var o=g.outboundrouteApps.rows[i]?g.outboundrouteApps.rows[i]:g.outboundrouteApps.rows[0];t.show({controller:"EditOutboundRouteApp"+(o.appType||o.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/edit/apps/"+(o.appType||o.app).toLowerCase()+"/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundrouteApp:o}}).then(function(e){e&&(e.id?g.outboundrouteApps.rows[i]=e:g.outboundrouteApps.rows.splice(i,0,e),l())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function r(e,a){if(g.outboundrouteApps.rows.length){var i=g.outboundrouteApps.rows[a]?g.outboundrouteApps.rows[a]:g.outboundrouteApps.rows[0];t.show({controller:"EditOutboundRouteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/edit/apps/interval/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:i.interval,IntervalId:i.IntervalId,application:!0},intervals:[]}}).then(function(e){e&&(i.interval=e.interval||"*,*,*,*",i.IntervalId=e.IntervalId||null,l())})}}function l(){var t=2,n=[];n.push({type:"outbound",app:"Set",appdata:"CDR(type)=outbound",context:g.outboundroute.context,exten:g.outboundroute.exten,priority:t++,VoiceExtensionId:g.outboundroute.id}),n.push({type:"outbound",app:"Set",appdata:"outboundrouteid="+g.outboundroute.id,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:t++,VoiceExtensionId:g.outboundroute.id});for(var a=0,i=0;a<g.outboundrouteApps.rows.length;a++,i=0){var o=g.outboundrouteApps.rows[a],s=[],r=[];o.intervals="*,*,*,*"!==o.interval?[o.interval]:o.IntervalId?_.map(_.filter(g.intervals.rows,{IntervalId:o.IntervalId}),"interval"):[],o.context=g.outboundroute.context,o.exten=g.outboundroute.exten,o.hasOwnProperty("tag")&&o.tag&&"--"!==o.tag&&s.push({type:o.type,app:"Set",appdata:"CDR(tag)="+o.tag,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:g.outboundroute.id}),o.hasOwnProperty("callerID")&&o.callerID&&s.push({type:o.type,app:"Set",appdata:"CALLERID(all)="+o.callerID,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:g.outboundroute.id}),o.hasOwnProperty("record")&&o.hasOwnProperty("recordingFormat")&&o.record&&s.push({type:o.type,app:"MixMonitor",appdata:"${UNIQUEID}."+o.recordingFormat+",ab",context:g.outboundroute.context,exten:g.outboundroute.exten,priority:o.intervals.length+t+i++,VoiceExtensionId:g.outboundroute.id}),o.hasOwnProperty("record")&&o.hasOwnProperty("recordingFormat")&&o.record&&r.push({type:o.type,app:"StopMixMonitor",appdata:null,context:g.outboundroute.context,exten:g.outboundroute.exten,priority:o.intervals.length+t+i+++1,VoiceExtensionId:g.outboundroute.id});for(var l=0;l<o.intervals.length;l++){var d=t+o.intervals.length,c=l===o.intervals.length-1?t+s.length+r.length+2:t+l+1;s.splice(l,0,{type:"outbound",app:"GotoIfTime",appdata:o.intervals[l]+"?"+g.outboundroute.context+",${EXTEN},"+d+":"+g.outboundroute.context+",${EXTEN},"+c,exten:g.outboundroute.exten,context:g.outboundroute.context,priority:t+l,VoiceExtensionId:g.outboundroute.id})}o.priority=s.length?_.last(s).priority+1:t,t=(r.length?_.last(r).priority:o.priority)+1,n=_.concat(n,s,[o],r)}n.push({type:"outbound",app:"Hangup",exten:g.outboundroute.exten,context:g.outboundroute.context,priority:t,VoiceExtensionId:g.outboundroute.id}),e.voiceExtension.addApplications({id:g.outboundroute.id},_.sortBy(n,"priority")).$promise.then(function(e){g.outboundrouteApps.rows=e.rows}).catch(function(e){console.error(e)})}function d(e){g.outboundrouteApps=e||{count:0,rows:[]}}function c(){return e.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){g.intervals=e}).catch(function(e){console.error(e)})}function m(){g.promise=e.voiceExtension.get(g.query,d).$promise}function u(e){_.remove(g.outboundrouteApps.rows,{id:e.id}),l(),a.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})}function p(e){var n=t.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+g.selectedOutboundRouteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");t.show(n).then(function(){g.selectedOutboundRouteApps.forEach(function(e){_.remove(g.outboundrouteApps.rows,{id:e.id})}),g.selectedOutboundRouteApps=[],l()})}var g=this;g.outboundroute={},g.outboundrouteApps={count:0,rows:[]},g.selectedOutboundRouteApps=[],g.query={sort:"priority"},g.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",type:"Outbound",types:["always","custom","list"],fields:[],isApp:!1},{app:"Queue",appType:"queue",context:"from-sip",type:"Outbound",appdata:",xX,,,300,,,,,",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}},{name:"queues",route:"voiceQueue",filters:{type:"inbound",fields:"id,name,type",sort:"name",nolimit:!0}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Url",name:"URL",type:"text",param:2},{title:"Announce_Overrides",name:"sound",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}'",option:"sound.name",defaultValues:[{value:"''",option:"None"}],param:3},{title:"Timeout",name:"timeout",type:"number",min:0,param:4},{title:"Agi",name:"agi",type:"text",param:5},{title:"Macro",name:"macro",type:"text",param:6},{title:"GoSub",name:"gosub",type:"text",param:7},{title:"Rule",name:"rule",type:"text",param:8},{title:"Position",name:"position",type:"number",min:0,param:9},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Playback",appType:"playback",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"sounds",route:"sound",filters:{fields:"name,save_name",sort:"name"}}],fields:[{title:"Audio_Files",name:"appdata",type:"apiselect",values:"sounds",value:"'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}'",option:"appdata.name",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1},{title:"Answer",name:"answer",type:"switch",general:!0}]},{app:"Dial",appType:"dial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!1,fields:[{title:"Technology/Resource",name:"tech",type:"text",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!1,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"user",type:"apiselect",values:"users",value:"'SIP/{{user.name}}'",option:"user.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!1,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Phone",name:"phone",type:"text"},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!1,extraApi:[{name:"users",route:"user",filters:{fields:"name",sort:"name"}}],fields:[{title:"User",name:"multipleUsers",type:"apiselect",multiple:!0,values:"users",value:"'SIP/{{multipleUsers.name}}'",option:"multipleUsers.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:"AGI",appType:"agi",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"projects",route:"squareProject",filters:{fields:"name",sort:"name"}}],fields:[{title:"Project",name:"project",type:"apiselect",values:"projects",value:"'agi://127.0.0.1/square,{{project.name}}'",option:"project.name",required:!0,param:0}]},{app:"goto",appType:"goTo",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"contexts",route:"voiceContext",filters:{fields:"name",sort:"name"}}],fields:[{title:"Context",name:"context",type:"apiselect",values:"contexts",value:"context.name",option:"context.name",required:!0,param:0},{title:"Extension",name:"extension",type:"text",required:!0,param:1},{title:"Priority",name:"priority",type:"text",required:!0,param:2}]},{app:"hangup",appType:"hangup",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,fields:[{title:"Hangup_Cause",name:"appdata",type:"select",param:0,values:[{option:"HANGUPCAUSE_1",value:"'1'"},{option:"HANGUPCAUSE_16",value:"'16'"},{option:"HANGUPCAUSE_17",value:"'17'"},{option:"HANGUPCAUSE_18",value:"'18'"},{option:"HANGUPCAUSE_21",value:"'21'"},{option:"HANGUPCAUSE_22",value:"'22'"},{option:"HANGUPCAUSE_27",value:"'27'"},{option:"HANGUPCAUSE_38",value:"'38'"},{option:"HANGUPCAUSE_41",value:"'41'"}],translate:!0,required:!0,general:!0}]},{app:"Set",appType:"set",context:"from-sip",type:"Outbound",separator:"=",icon:"icon-apps",interval:"*,*,*,*",isApp:!1,fields:[{title:"Variable",name:"name",type:"text",required:!0,param:0},{title:"Value",name:"value",type:"text",required:!0,param:1}]},{app:"Voicemail",appType:"voicemail",context:"from-sip",icon:"icon-apps",type:"Outbound",interval:"*,*,*,*",isApp:!1,extraApi:[{name:"voiceMails",route:"voiceMail",filters:{fields:"mailbox",sort:"mailbox"}}],fields:[{title:"Mailbox@Context",name:"voiceMail",type:"apiselect",values:"voiceMails",value:"'{{voiceMail.mailbox}}@from-voicemail'",option:"voiceMail.mailbox",required:!0,param:0},{title:"Options",name:"options",type:"text",param:1}]},{app:"Dial",appType:"outboundDial",context:"from-sip",type:"Outbound",icon:"icon-apps",interval:"*,*,*,*",options:"xX",isApp:!0,extraApi:[{name:"trunks",route:"trunk",filters:{fields:"name",sort:"name"}},{name:"tags",route:"tag",filters:{fields:"name",sort:"name"}}],fields:[{title:"Trunk",name:"trunk",type:"apiselect",values:"trunks",value:"trunk.name",option:"trunk.name",required:!0,param:0},{title:"Caller_ID",name:"callerID",type:"text"},{title:"Prefix",name:"prefix",type:"text"},{title:"CutDigits",name:"cutdigits",type:"number",min:0},{title:"Recording",name:"recordingFormat",type:"select",values:[{option:"none",value:"'none'"},{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"}],defaultValue:"none",required:!0,general:!0,help:!0},{title:"Tags",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",defaultValues:[{value:"'--'",option:"None"}]},{title:"Timeout",name:"timeout",type:"number",min:0,param:1},{title:"Options",name:"options",type:"text",param:2},{title:"Url",name:"url",type:"text",param:3}]},{app:null,type:"Outbound",appType:"Custom",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Application_Name",name:"app",type:"text",required:!0,param:0},{title:"Arguments",name:"appdata",type:"text",param:1}]}],["app"]),{isApp:!1}),g.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},g.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){s(e,e.newIndex)},onSort:function(e){l()}},g.init=i,g.deleteConfirm=o,g.getOutboundRouteApps=m,g.editOutboundRouteApp=s,g.editInterval=r,g.deleteOutboundRouteApp=u,g.deleteSelectedOutboundRouteApps=p,g.rewriteRouting=l,g.getIntervals=c}e.$inject=["api","$mdDialog","$document","toasty"],angular.module("app.voice").controller("OutboundRouteActionsController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.agi.type.toLowerCase()&&"outboundDial"===s.agi.appType&&(s.agi.phone=s.agi.cutdigits?(s.agi.prefix||"")+"${EXTEN:"+s.agi.cutdigits+"}":(s.agi.prefix||"")+"${EXTEN}",s.agi.record="none"!==s.agi.recordingFormat,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:null),s.agi.appType.toLowerCase()){case"set":s.agi.appdata=s.agi.name+"="+s.agi.value;break;case"custom":break;default:e[0]=s.agi.project,s.agi.appdata=e.join(",")}o(s.agi)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.agi=angular.copy(n),s.agi.appdata)switch(s.agi.appType?s.agi.appType.toLowerCase():s.agi.app.toLowerCase()){case"custom":break;case"set":s.agi.name=s.agi.appdata.split("=")[0],s.agi.value=s.agi.appdata.split("=")[1];break;case"agi":s.agi.project=s.agi.appdata;break;default:var r=s.agi.appdata.split(",");s.agi.project=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.agi.type.toLowerCase()&&"outbounddial"===s.agi.appType.toLowerCase()&&(s.agi.prefix=s.agi.phone?s.agi.phone.split("$")[0]:void 0,s.agi.callerId=s.agi.callerID?"CALLERID(all)="+s.agi.callerID:void 0,s.agi.recordingFormat=s.agi.record?s.agi.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.squareProject.get({fields:"name",sort:"name"}).$promise.then(function(e){s.projects=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppagiDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.custom.type.toLowerCase()&&"outboundDial"===s.custom.appType&&(s.custom.phone=s.custom.cutdigits?(s.custom.prefix||"")+"${EXTEN:"+s.custom.cutdigits+"}":(s.custom.prefix||"")+"${EXTEN}",s.custom.record="none"!==s.custom.recordingFormat,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:null),s.custom.appType.toLowerCase()){case"set":s.custom.appdata=s.custom.name+"="+s.custom.value;break;case"custom":break;default:e[0]=s.custom.app,e[1]=s.custom.appdata,s.custom.appdata=e.join(",")}o(s.custom)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.custom=angular.copy(n),s.custom.appdata)switch(s.custom.appType?s.custom.appType.toLowerCase():s.custom.app.toLowerCase()){case"custom":break;case"set":s.custom.name=s.custom.appdata.split("=")[0],s.custom.value=s.custom.appdata.split("=")[1];break;case"agi":s.custom.project=s.custom.appdata;break;default:var r=s.custom.appdata.split(",");s.custom.app=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.custom.appdata=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.custom.type.toLowerCase()&&"outbounddial"===s.custom.appType.toLowerCase()&&(s.custom.prefix=s.custom.phone?s.custom.phone.split("$")[0]:void 0,s.custom.callerId=s.custom.callerID?"CALLERID(all)="+s.custom.callerID:void 0,s.custom.recordingFormat=s.custom.record?s.custom.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppcustomDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.dial.type.toLowerCase()&&"outboundDial"===s.dial.appType&&(s.dial.phone=s.dial.cutdigits?(s.dial.prefix||"")+"${EXTEN:"+s.dial.cutdigits+"}":(s.dial.prefix||"")+"${EXTEN}",s.dial.record="none"!==s.dial.recordingFormat,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:null),s.dial.appType.toLowerCase()){case"set":s.dial.appdata=s.dial.name+"="+s.dial.value;break;case"custom":break;default:e[0]=s.dial.tech,e[1]=s.dial.timeout,e[2]=s.dial.options,e[3]=s.dial.url,s.dial.appdata=e.join(",")}o(s.dial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.dial=angular.copy(n),s.dial.appdata)switch(s.dial.appType?s.dial.appType.toLowerCase():s.dial.app.toLowerCase()){case"custom":break;case"set":s.dial.name=s.dial.appdata.split("=")[0],s.dial.value=s.dial.appdata.split("=")[1];break;case"agi":s.dial.project=s.dial.appdata;break;default:var r=s.dial.appdata.split(",");s.dial.tech=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.dial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.dial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.dial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.dial.type.toLowerCase()&&"outbounddial"===s.dial.appType.toLowerCase()&&(s.dial.prefix=s.dial.phone?s.dial.phone.split("$")[0]:void 0,s.dial.callerId=s.dial.callerID?"CALLERID(all)="+s.dial.callerID:void 0,s.dial.recordingFormat=s.dial.record?s.dial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppdialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.externaldial.type.toLowerCase()&&"outboundDial"===s.externaldial.appType&&(s.externaldial.phone=s.externaldial.cutdigits?(s.externaldial.prefix||"")+"${EXTEN:"+s.externaldial.cutdigits+"}":(s.externaldial.prefix||"")+"${EXTEN}",s.externaldial.record="none"!==s.externaldial.recordingFormat,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:null),s.externaldial.appType.toLowerCase()){case"set":s.externaldial.appdata=s.externaldial.name+"="+s.externaldial.value;break;case"custom":break;default:e[0]=["SIP",s.externaldial.trunk,s.externaldial.phone].join("/"),e[1]=s.externaldial.timeout,e[2]=s.externaldial.options,e[3]=s.externaldial.url,s.externaldial.appdata=e.join(",")}o(s.externaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.externaldial=angular.copy(n),s.externaldial.appdata)switch(s.externaldial.appType?s.externaldial.appType.toLowerCase():s.externaldial.app.toLowerCase()){case"custom":break;case"set":s.externaldial.name=s.externaldial.appdata.split("=")[0],s.externaldial.value=s.externaldial.appdata.split("=")[1];break;case"agi":s.externaldial.project=s.externaldial.appdata;break;default:var r=s.externaldial.appdata.split(",");s.externaldial.trunk=r[0].split("/")[1],s.externaldial.phone=r[0].split("/")[2],s.externaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.externaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.externaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.externaldial.type.toLowerCase()&&"outbounddial"===s.externaldial.appType.toLowerCase()&&(s.externaldial.prefix=s.externaldial.phone?s.externaldial.phone.split("$")[0]:void 0,s.externaldial.callerId=s.externaldial.callerID?"CALLERID(all)="+s.externaldial.callerID:void 0,s.externaldial.recordingFormat=s.externaldial.record?s.externaldial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppexternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.goto.type.toLowerCase()&&"outboundDial"===s.goto.appType&&(s.goto.phone=s.goto.cutdigits?(s.goto.prefix||"")+"${EXTEN:"+s.goto.cutdigits+"}":(s.goto.prefix||"")+"${EXTEN}",s.goto.record="none"!==s.goto.recordingFormat,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:null),s.goto.appType.toLowerCase()){case"set":s.goto.appdata=s.goto.name+"="+s.goto.value;break;case"custom":break;default:e[0]=s.goto.context,e[1]=s.goto.extension,e[2]=s.goto.priority,s.goto.appdata=e.join(",")}o(s.goto)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.goto=angular.copy(n),s.goto.appdata)switch(s.goto.appType?s.goto.appType.toLowerCase():s.goto.app.toLowerCase()){case"custom":break;case"set":s.goto.name=s.goto.appdata.split("=")[0],s.goto.value=s.goto.appdata.split("=")[1];break;case"agi":s.goto.project=s.goto.appdata;break;default:var r=s.goto.appdata.split(",");s.goto.context=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.goto.extension=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.goto.priority=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10)}"outbound"===s.goto.type.toLowerCase()&&"outbounddial"===s.goto.appType.toLowerCase()&&(s.goto.prefix=s.goto.phone?s.goto.phone.split("$")[0]:void 0,s.goto.callerId=s.goto.callerID?"CALLERID(all)="+s.goto.callerID:void 0,s.goto.recordingFormat=s.goto.record?s.goto.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){s.contexts=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppgotoDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.hangup.type.toLowerCase()&&"outboundDial"===s.hangup.appType&&(s.hangup.phone=s.hangup.cutdigits?(s.hangup.prefix||"")+"${EXTEN:"+s.hangup.cutdigits+"}":(s.hangup.prefix||"")+"${EXTEN}",s.hangup.record="none"!==s.hangup.recordingFormat,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:null),s.hangup.appType.toLowerCase()){case"set":s.hangup.appdata=s.hangup.name+"="+s.hangup.value;break;case"custom":break;default:e[0]=s.hangup.appdata,s.hangup.appdata=e.join(",")}o(s.hangup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.hangup=angular.copy(n),s.hangup.appdata)switch(s.hangup.appType?s.hangup.appType.toLowerCase():s.hangup.app.toLowerCase()){case"custom":break;case"set":s.hangup.name=s.hangup.appdata.split("=")[0],s.hangup.value=s.hangup.appdata.split("=")[1];break;case"agi":s.hangup.project=s.hangup.appdata;break;default:var r=s.hangup.appdata.split(",");s.hangup.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10)}"outbound"===s.hangup.type.toLowerCase()&&"outbounddial"===s.hangup.appType.toLowerCase()&&(s.hangup.prefix=s.hangup.phone?s.hangup.phone.split("$")[0]:void 0,s.hangup.callerId=s.hangup.callerID?"CALLERID(all)="+s.hangup.callerID:void 0,s.hangup.recordingFormat=s.hangup.record?s.hangup.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteApphangupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.internaldial.type.toLowerCase()&&"outboundDial"===s.internaldial.appType&&(s.internaldial.phone=s.internaldial.cutdigits?(s.internaldial.prefix||"")+"${EXTEN:"+s.internaldial.cutdigits+"}":(s.internaldial.prefix||"")+"${EXTEN}",s.internaldial.record="none"!==s.internaldial.recordingFormat,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:null),s.internaldial.appType.toLowerCase()){case"set":s.internaldial.appdata=s.internaldial.name+"="+s.internaldial.value;break;case"custom":break;default:e[0]=s.internaldial.user,e[1]=s.internaldial.timeout,e[2]=s.internaldial.options,e[3]=s.internaldial.url,s.internaldial.appdata=e.join(",")}o(s.internaldial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.internaldial=angular.copy(n),s.internaldial.appdata)switch(s.internaldial.appType?s.internaldial.appType.toLowerCase():s.internaldial.app.toLowerCase()){case"custom":break;case"set":s.internaldial.name=s.internaldial.appdata.split("=")[0],s.internaldial.value=s.internaldial.appdata.split("=")[1];break;case"agi":s.internaldial.project=s.internaldial.appdata;break;default:var r=s.internaldial.appdata.split(",");s.internaldial.user=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.internaldial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.internaldial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.internaldial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.internaldial.type.toLowerCase()&&"outbounddial"===s.internaldial.appType.toLowerCase()&&(s.internaldial.prefix=s.internaldial.phone?s.internaldial.phone.split("$")[0]:void 0,s.internaldial.callerId=s.internaldial.callerID?"CALLERID(all)="+s.internaldial.callerID:void 0,s.internaldial.recordingFormat=s.internaldial.record?s.internaldial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppinternaldialDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){switch(u.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==u.timeRangeFrom&&u.timeRangeFrom&&u.timeRangeTo){var t=(u.timeRangeFrom.getHours()<10?"0":"")+u.timeRangeFrom.getHours()+":"+(u.timeRangeFrom.getMinutes()<10?"0":"")+u.timeRangeFrom.getMinutes(),n=(u.timeRangeTo.getHours()<10?"0":"")+u.timeRangeTo.getHours()+":"+(u.timeRangeTo.getMinutes()<10?"0":"")+u.timeRangeTo.getMinutes();e.push(t+"-"+n)}else e.push("*");return u.dayOfWeekFrom&&u.dayOfWeekTo?e.push(u.dayOfWeekFrom+"-"+u.dayOfWeekTo):e.push("*"),u.monthDayFrom&&u.monthDayTo?e.push(u.monthDayFrom+"-"+u.monthDayTo):e.push("*"),u.monthFrom&&u.monthTo?e.push(u.monthFrom+"-"+u.monthTo):e.push("*"),e.join()}}function d(){u.errors=[],u.interval.interval=l(),r.interval.save(u.interval).$promise.then(function(e){u.intervals.push(e),s.success({title:"Interval properly created",msg:u.interval.name?u.interval.name+" has been created!":""}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})}function c(){u.errors=[],u.interval.interval=l(),u.interval.application?("list"!==u.type&&(u.interval.IntervalId=null),m(u.interval)):r.interval.update({id:u.interval.id},u.interval).$promise.then(function(e){var t=_.find(u.intervals,{id:e.id});t&&_.merge(t,e),s.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),m()}).catch(function(e){console.error(e),u.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})}function m(e){t.hide(e)}var u=this;if(u.errors=[],u.title="TOOLS.EDIT_INTERVAL",u.interval=angular.copy(i),u.intervals=o,u.newInterval=!1,u.types=["always","custom","list"],u.daysOfWeek=a.getDaysOfWeek(),u.monthNumber=a.getMonthNumber(),u.monthName=a.getMonthName(),u.daysOfMonth=a.getDaysOfMonth(),u.interval)if("*,*,*,*"!==u.interval.interval){u.type="custom";var p=u.interval.interval.split(","),g=p[0],h=p[1],v=p[2],b=p[3];if("*"!==g){var f,E=g.split("-")[0],y=g.split("-")[1];(f=new Date).setHours(Number(E.split(":")[0])),f.setMinutes(Number(E.split(":")[1])),u.timeRangeFrom=f,(f=new Date).setHours(Number(y.split(":")[0])),f.setMinutes(Number(y.split(":")[1])),u.timeRangeTo=f}"*"!==h&&(u.dayOfWeekFrom=h.split("-")[0],u.dayOfWeekTo=h.split("-")[1]),"*"!==v&&(u.monthDayFrom=v.split("-")[0],u.monthDayTo=v.split("-")[1]),"*"!==b&&(u.monthFrom=b.split("-")[0],u.monthTo=b.split("-")[1])}else u.type="always";else u.interval={interval:"*,*,*,*"},u.type="always",u.title="TOOLS.NEW_INTERVAL",u.newInterval=!0;e.params.id&&!u.interval.application&&(u.interval.IntervalId=e.params.id),u.interval.IntervalId&&u.interval.application&&(u.type="list"),u.addNewInterval=d,u.saveInterval=c,u.closeDialog=m,u.interval.application&&r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){u.intervals=e}).catch(function(e){console.error(e)})}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api"],angular.module("app.voice").controller("EditOutboundRouteAppintervalDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.outbounddial.type.toLowerCase()&&"outboundDial"===s.outbounddial.appType&&(s.outbounddial.phone=s.outbounddial.cutdigits?(s.outbounddial.prefix||"")+"${EXTEN:"+s.outbounddial.cutdigits+"}":(s.outbounddial.prefix||"")+"${EXTEN}",s.outbounddial.record="none"!==s.outbounddial.recordingFormat,s.outbounddial.recordingFormat=s.outbounddial.record?s.outbounddial.recordingFormat:null),s.outbounddial.appType.toLowerCase()){case"set":s.outbounddial.appdata=s.outbounddial.name+"="+s.outbounddial.value;break;case"custom":break;default:e[0]=["SIP",s.outbounddial.trunk,s.outbounddial.phone].join("/"),e[1]=s.outbounddial.timeout,e[2]=s.outbounddial.options,e[3]=s.outbounddial.url,s.outbounddial.appdata=e.join(",")}o(s.outbounddial)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.outbounddial=angular.copy(n),s.outbounddial.appdata)switch(s.outbounddial.appType?s.outbounddial.appType.toLowerCase():s.outbounddial.app.toLowerCase()){case"custom":break;case"set":s.outbounddial.name=s.outbounddial.appdata.split("=")[0],s.outbounddial.value=s.outbounddial.appdata.split("=")[1];break;case"agi":s.outbounddial.project=s.outbounddial.appdata;break;default:var r=s.outbounddial.appdata.split(",");s.outbounddial.trunk=r[0].split("/")[1],s.outbounddial.phone=r[0].split("/")[2],s.outbounddial.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.outbounddial.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.outbounddial.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.outbounddial.type.toLowerCase()&&"outbounddial"===s.outbounddial.appType.toLowerCase()&&(s.outbounddial.prefix=s.outbounddial.phone?s.outbounddial.phone.split("$")[0]:void 0,s.outbounddial.callerId=s.outbounddial.callerID?"CALLERID(all)="+s.outbounddial.callerID:void 0,s.outbounddial.recordingFormat=s.outbounddial.record?s.outbounddial.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.trunk.get({fields:"name",sort:"name"}).$promise.then(function(e){s.trunks=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.tag.get({fields:"name",sort:"name"}).$promise.then(function(e){s.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppoutbounddialDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.playback.type.toLowerCase()&&"outboundDial"===s.playback.appType&&(s.playback.phone=s.playback.cutdigits?(s.playback.prefix||"")+"${EXTEN:"+s.playback.cutdigits+"}":(s.playback.prefix||"")+"${EXTEN}",s.playback.record="none"!==s.playback.recordingFormat,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:null),s.playback.appType.toLowerCase()){case"set":s.playback.appdata=s.playback.name+"="+s.playback.value;break;case"custom":break;default:e[0]=s.playback.appdata,e[1]=s.playback.options,s.playback.appdata=e.join(",")}o(s.playback)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.playback=angular.copy(n),s.playback.appdata)switch(s.playback.appType?s.playback.appType.toLowerCase():s.playback.app.toLowerCase()){case"custom":break;case"set":s.playback.name=s.playback.appdata.split("=")[0],s.playback.value=s.playback.appdata.split("=")[1];break;case"agi":s.playback.project=s.playback.appdata;break;default:var r=s.playback.appdata.split(",");s.playback.appdata=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.playback.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.playback.type.toLowerCase()&&"outbounddial"===s.playback.appType.toLowerCase()&&(s.playback.prefix=s.playback.phone?s.playback.phone.split("$")[0]:void 0,s.playback.callerId=s.playback.callerID?"CALLERID(all)="+s.playback.callerID:void 0,s.playback.recordingFormat=s.playback.record?s.playback.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppplaybackDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.queue.type.toLowerCase()&&"outboundDial"===s.queue.appType&&(s.queue.phone=s.queue.cutdigits?(s.queue.prefix||"")+"${EXTEN:"+s.queue.cutdigits+"}":(s.queue.prefix||"")+"${EXTEN}",s.queue.record="none"!==s.queue.recordingFormat,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:null),s.queue.appType.toLowerCase()){case"set":s.queue.appdata=s.queue.name+"="+s.queue.value;break;case"custom":break;default:e[0]=s.queue.queue,e[1]=s.queue.options,e[2]=s.queue.URL,e[3]=s.queue.sound,e[4]=s.queue.timeout,e[5]=s.queue.agi,e[6]=s.queue.macro,e[7]=s.queue.gosub,e[8]=s.queue.rule,e[9]=s.queue.position,s.queue.appdata=e.join(",")}o(s.queue)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.queue=angular.copy(n),s.queue.appdata)switch(s.queue.appType?s.queue.appType.toLowerCase():s.queue.app.toLowerCase()){case"custom":break;case"set":s.queue.name=s.queue.appdata.split("=")[0],s.queue.value=s.queue.appdata.split("=")[1];break;case"agi":s.queue.project=s.queue.appdata;break;default:var r=s.queue.appdata.split(",");s.queue.queue=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.queue.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.queue.URL=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.queue.sound=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10),s.queue.timeout=_.isEmpty(r[4])?r[4]:isNaN(r[4])?r[4]:parseInt(r[4],10),s.queue.agi=_.isEmpty(r[5])?r[5]:isNaN(r[5])?r[5]:parseInt(r[5],10),s.queue.macro=_.isEmpty(r[6])?r[6]:isNaN(r[6])?r[6]:parseInt(r[6],10),s.queue.gosub=_.isEmpty(r[7])?r[7]:isNaN(r[7])?r[7]:parseInt(r[7],10),s.queue.rule=_.isEmpty(r[8])?r[8]:isNaN(r[8])?r[8]:parseInt(r[8],10),s.queue.position=_.isEmpty(r[9])?r[9]:isNaN(r[9])?r[9]:parseInt(r[9],10)}"outbound"===s.queue.type.toLowerCase()&&"outbounddial"===s.queue.appType.toLowerCase()&&(s.queue.prefix=s.queue.phone?s.queue.phone.split("$")[0]:void 0,s.queue.callerId=s.queue.callerID?"CALLERID(all)="+s.queue.callerID:void 0,s.queue.recordingFormat=s.queue.record?s.queue.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.sound.get({fields:"name,save_name",sort:"name"}).$promise.then(function(e){s.sounds=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),a.voiceQueue.get({type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){s.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppqueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.ringgroup.type.toLowerCase()&&"outboundDial"===s.ringgroup.appType&&(s.ringgroup.phone=s.ringgroup.cutdigits?(s.ringgroup.prefix||"")+"${EXTEN:"+s.ringgroup.cutdigits+"}":(s.ringgroup.prefix||"")+"${EXTEN}",s.ringgroup.record="none"!==s.ringgroup.recordingFormat,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:null),s.ringgroup.appType.toLowerCase()){case"set":s.ringgroup.appdata=s.ringgroup.name+"="+s.ringgroup.value;break;case"custom":break;default:e[0]=s.ringgroup.multipleUsers.join("&"),e[1]=s.ringgroup.timeout,e[2]=s.ringgroup.options,e[3]=s.ringgroup.url,s.ringgroup.appdata=e.join(",")}o(s.ringgroup)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.ringgroup=angular.copy(n),s.ringgroup.appdata)switch(s.ringgroup.appType?s.ringgroup.appType.toLowerCase():s.ringgroup.app.toLowerCase()){case"custom":break;case"set":s.ringgroup.name=s.ringgroup.appdata.split("=")[0],s.ringgroup.value=s.ringgroup.appdata.split("=")[1];break;case"agi":s.ringgroup.project=s.ringgroup.appdata;break;default:var r=s.ringgroup.appdata.split(",");s.ringgroup.multipleUsers=r[0].split("&"),s.ringgroup.timeout=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10),s.ringgroup.options=_.isEmpty(r[2])?r[2]:isNaN(r[2])?r[2]:parseInt(r[2],10),s.ringgroup.url=_.isEmpty(r[3])?r[3]:isNaN(r[3])?r[3]:parseInt(r[3],10)}"outbound"===s.ringgroup.type.toLowerCase()&&"outbounddial"===s.ringgroup.appType.toLowerCase()&&(s.ringgroup.prefix=s.ringgroup.phone?s.ringgroup.phone.split("$")[0]:void 0,s.ringgroup.callerId=s.ringgroup.callerID?"CALLERID(all)="+s.ringgroup.callerID:void 0,s.ringgroup.recordingFormat=s.ringgroup.record?s.ringgroup.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.user.get({fields:"name",sort:"name"}).$promise.then(function(e){s.users=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETusers",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppringgroupDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.set.type.toLowerCase()&&"outboundDial"===s.set.appType&&(s.set.phone=s.set.cutdigits?(s.set.prefix||"")+"${EXTEN:"+s.set.cutdigits+"}":(s.set.prefix||"")+"${EXTEN}",s.set.record="none"!==s.set.recordingFormat,s.set.recordingFormat=s.set.record?s.set.recordingFormat:null),s.set.appType.toLowerCase()){case"set":s.set.appdata=s.set.name+"="+s.set.value;break;case"custom":break;default:e[0]=s.set.name,e[1]=s.set.value,s.set.appdata=e.join("=")}o(s.set)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.set=angular.copy(n),s.set.appdata)switch(s.set.appType?s.set.appType.toLowerCase():s.set.app.toLowerCase()){case"custom":break;case"set":s.set.name=s.set.appdata.split("=")[0],s.set.value=s.set.appdata.split("=")[1];break;case"agi":s.set.project=s.set.appdata;break;default:var r=s.set.appdata.split("=");s.set.name=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.set.value=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.set.type.toLowerCase()&&"outbounddial"===s.set.appType.toLowerCase()&&(s.set.prefix=s.set.phone?s.set.phone.split("$")[0]:void 0,s.set.callerId=s.set.callerID?"CALLERID(all)="+s.set.callerID:void 0,s.set.recordingFormat=s.set.record?s.set.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppsetDialogController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[];var e=[];switch("outbound"===s.voicemail.type.toLowerCase()&&"outboundDial"===s.voicemail.appType&&(s.voicemail.phone=s.voicemail.cutdigits?(s.voicemail.prefix||"")+"${EXTEN:"+s.voicemail.cutdigits+"}":(s.voicemail.prefix||"")+"${EXTEN}",s.voicemail.record="none"!==s.voicemail.recordingFormat,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:null),s.voicemail.appType.toLowerCase()){case"set":s.voicemail.appdata=s.voicemail.name+"="+s.voicemail.value;break;case"custom":break;default:e[0]=s.voicemail.voiceMail,e[1]=s.voicemail.options,s.voicemail.appdata=e.join(",")}o(s.voicemail)}function o(t){e.hide(t)}var s=this;if(s.errors=[],s.title="VOICE.EDIT_"+(n.appType||n.app).toUpperCase(),s.voicemail=angular.copy(n),s.voicemail.appdata)switch(s.voicemail.appType?s.voicemail.appType.toLowerCase():s.voicemail.app.toLowerCase()){case"custom":break;case"set":s.voicemail.name=s.voicemail.appdata.split("=")[0],s.voicemail.value=s.voicemail.appdata.split("=")[1];break;case"agi":s.voicemail.project=s.voicemail.appdata;break;default:var r=s.voicemail.appdata.split(",");s.voicemail.voiceMail=_.isEmpty(r[0])?r[0]:isNaN(r[0])?r[0]:parseInt(r[0],10),s.voicemail.options=_.isEmpty(r[1])?r[1]:isNaN(r[1])?r[1]:parseInt(r[1],10)}"outbound"===s.voicemail.type.toLowerCase()&&"outbounddial"===s.voicemail.appType.toLowerCase()&&(s.voicemail.prefix=s.voicemail.phone?s.voicemail.phone.split("$")[0]:void 0,s.voicemail.callerId=s.voicemail.callerID?"CALLERID(all)="+s.voicemail.callerID:void 0,s.voicemail.recordingFormat=s.voicemail.record?s.voicemail.recordingFormat:"none"),s.saveOutboundRouteApp=i,s.closeDialog=o,a.voiceMail.get({fields:"mailbox",sort:"mailbox"}).$promise.then(function(e){s.voiceMails=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMails",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","outboundrouteApp","api"],angular.module("app.voice").controller("EditOutboundRouteAppvoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.outboundroutes")}function r(){i.voiceExtension.update({id:l.outboundroute.id},l.outboundroute).$promise.then(function(){a.success({title:"OutboundRoute updated!",msg:l.outboundroute.name?l.outboundroute.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.outboundroute=e.params.outboundroute||o||{},l.selectedTab=e.params.tab||0,l.gotoOutboundRoutes=s,l.saveOutboundRoute=r,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","outboundroute"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.outboundroutes.edit",{id:e.id,outboundroute:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the outboundroute?").htmlContent("<b>"+(e.name||"outboundroute")+"</b> will be deleted.").ariaLabel("delete outboundroute").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.outboundroutes=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceExtension.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditOutboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundroutes/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundroute:t,outboundroutes:A.outboundroutes.rows}})}function v(e){l.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(A.outboundroutes.rows,{id:e.id}),A.outboundroutes.count-=1,A.outboundroutes.rows.length||A.getOutboundRoutes(),c.success({title:"OutboundRoute deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedOutboundRoutes);return A.selectedOutboundRoutes=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected outboundroutes?").htmlContent("<b>"+A.selectedOutboundRoutes.length+" selected</b> will be deleted.").ariaLabel("delete OutboundRoutes").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedOutboundRoutes.forEach(function(e){v(e)}),A.selectedOutboundRoutes=[]})}function E(){A.selectedOutboundRoutes=[]}function y(){A.selectedOutboundRoutes=A.outboundroutes.rows}var A=this;A.outboundroutes=r||{count:0,rows:[]},A.table="outboundroutes",A.listOrder="",A.listOrderAsc=null,A.selectedOutboundRoutes=[],A.query={fields:"createdAt,updatedAt,id,appdata,type,exten,context,description",type:"Outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},A.editstate=m,A.deleteconfirm=u,A.success=p,A.getOutboundRoutes=g,A.createOrEditOutboundRoute=h,A.deleteOutboundRoute=v,A.exportSelectedOutboundRoutes=b,A.deleteSelectedOutboundRoutes=f,A.deselectOutboundRoutes=E,A.selectAllOutboundRoutes=y,l.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){A.contexts=_.keyBy(e.rows||[],"id")}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})});var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getOutboundRoutes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","outboundroutes","api","msUtils","toasty"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){_.forIn(A.agents,function(e,t){A.rpcAgents[t]&&_.merge(e,_.pick(A.rpcAgents[t],C))})}function u(e,t){return r.user.logout({id:e.id}).$promise.then(function(){d.success({title:"Agent logout",msg:e.fullname+"  properly logout"})}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.staff.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function p(e,t){n.show({controller:"AgentqueueaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(a.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:[],channel:"voice",realtime:!0,direction:"inbound"}})}function g(e,t){return r.user.pause({id:e.id,type:t})}function h(e){return r.user.unpause({id:e.id})}function v(e){return _.includes(A.availableStates,e)}function b(e){A.agents[e.id]&&_.merge(A.agents[e.id],_.pick(e,C))}function f(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))}function E(e){A.count=e.count,A.agents=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function y(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=r.user.get(A.query,E).$promise}var A=this,C=["userpic","online","voicePause","lastLoginAt","lastPauseAt","pauseType","internal","state","stateTime","status","address"];A.availableStates=["ringing","inuse","busy","onhold","not_inuse"],A.pauses=i||{count:0,rows:[]},A.count=o.count,A.agents=o?_.keyBy(o.rows?o.rows:[],"id"):{},A.rpcAgents=s?_.keyBy(s.rows?s.rows:[],"id"):{},A.query={fields:"id,fullname,userpic,role,internal,online,voicePause,pauseType,lastLoginAt",role:"agent",sort:"-updatedAt",limit:10,page:1},A.statusClass=c.status,A.stateClass=c.state,A.pause=g,A.unPause=h,A.onSave=b,A.$onInit=m,A.success=E,A.showInfo=f,A.queueAdd=p,A.getAgents=y,A.isAvailableState=v,A.logout=u,l.on("user:save",A.onSave),l.on("user:update",A.onSave);var x=!0,T=1;e.$watch("vm.query.filter",function(e,n){x?t(function(){x=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getAgents())}),e.$on("$destroy",function(){l.removeAllListeners("user:save"),l.removeAllListeners("user:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","pauses","agents","rpcAgents","api","socket","toasty","helperClasses"],angular.module("app.voice").controller("AgentsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e){var t=_.find(l.calls.rows,{channel:e.channel});e.channelstatedesc=e.answered?"up":"ring",t?_.merge(t,e):l.calls.rows.push(e)}function r(e){var n=_.findIndex(l.calls.rows,{channel:e.channel});n>=0&&(l.calls.rows[n].status="hangup"),t(function(){l.calls.rows.splice(n,1)},5e3)}var l=this;l.calls=i||{rows:[],count:0},l.query={limit:10,page:1,limitOptions:[10,20,30]},l.channelStatus=o.channelStatusOut,l.onSave=s,l.onRemove=r,a.on("voice_outbound_channel:save",l.onSave),a.on("voice_outbound_channel:remove",l.onRemove),e.$on("$destroy",function(){a.removeAllListeners("voice_outbound_channel:save"),a.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$timeout","api","socket","rpcCalls","helperClasses"],angular.module("app.voice").controller("OutboundCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l){function d(e){return _.size(e)}function c(e){"inbound"===e.type&&(h.rpcVoiceQueuesChannels[e.uniqueid]=e)}function m(e){h.rpcVoiceQueuesChannels[e.uniqueid]&&delete h.rpcVoiceQueuesChannels[e.uniqueid]}function u(e){return o.rpc.getVoiceQueuesChannelHangup({uniqueid:e}).$promise.then(function(t){l.success({title:"Channel "+e+" properly hangup!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function p(e,t){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:e,exten:t}).$promise.then(function(t){l.success({title:"Channel "+e+" properly redirect!",msg:t.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}function g(e,t){var a=n.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return n.show(a).then(function(e){return o.rpc.getVoiceQueuesChannelRedirect({uniqueid:t,exten:e}).$promise}).then(function(e){l.success({title:"Channel "+t+" properly redirect!",msg:e.message||""})}).catch(function(e){l.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})}var h=this;h.agents=a||{count:0,rows:[]},h.rpcVoiceQueuesChannels=i?_.keyBy(i.rows?_.filter(i.rows,{type:"inbound"}):[],"uniqueid"):{},h.queryChannels={limit:10,page:1},h.getSize=d,h.onSave=c,h.onRemove=m,h.hangup=u,h.redirectToAgent=p,h.redirectToNumber=g,s.on("voice_queue_channel:save",h.onSave),s.on("voice_queue_channel:remove",h.onRemove),e.$on("$destroy",function(){s.removeAllListeners("voice_queue_channel:save"),s.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){_.forIn(m.queues,function(e,t){m.rpcQueues[t]&&_.merge(e,_.pick(m.rpcQueues[t],u))})}function l(e){m.queues[e.id]&&_.merge(m.queues[e.id],_.pick(e,u))}function d(e){m.count=e.count,m.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},r()}function c(){m.query.offset=(m.query.page-1)*m.query.limit,s.hasRole("admin")?m.promise=i.voiceQueue.get(m.query,d).$promise:m.promise=i.user.getQueues(m.query,d).$promise}var m=this,u=["total","answered","unmanaged","sumHoldTime","sumDuration","sumBillable"];m.count=n.count,m.queues=n?_.keyBy(n.rows?n.rows:[],"id"):{},m.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},s.hasRole("admin")?m.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:m.query={id:s.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},m.success=d,m.getQueues=c,m.onSave=l,m.$onInit=r,o.on("voice_queue:save",m.onSave);var p=!0,g=1;e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=g),m.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save")})}e.$inject=["$scope","$timeout","queues","rpcQueues","api","socket","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(){var e=[];return _.forIn(E.queues,function(t,n){t.paused=0,t.loggedInDb=0,e.push(r.voiceQueue.getMembers({id:n}).$promise),E.rpcQueues[n]&&_.merge(t,_.pick(E.rpcQueues[n],y))}),a.all(e).then(function(e){for(var t=0;t<e.length;t+=1)for(var n=0;n<e[t].rows.length;n++)e[t].rows[n].paused&&E.queues[e[t].rows[n].VoiceQueueId].paused++,E.queues[e[t].rows[n].VoiceQueueId].loggedInDb++}).catch(function(e){console.error(e)})}function u(e){E.queues[e.id]&&_.merge(E.queues[e.id],_.pick(e,y))}function p(e){}function g(e){E.count=e.count,E.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},m()}function h(){E.query.offset=(E.query.page-1)*E.query.limit,c.hasRole("admin")?E.promise=r.voiceQueue.get(E.query,g).$promise:E.promise=r.user.getQueues(E.query,g).$promise}function v(e,t){n.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:_.values(E.queues)}})}function b(e,t){n.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:E.queues?E.queues.rows:[],realtime:!0}})}function f(e){return r.voiceQueue.update(e).$promise.then(function(){d.success({title:"Queue properly updated!",msg:e.name?e.name+" has been updated!":""})}).catch(function(e){d.error({title:"Error creating queue!",msg:e.message})})}var E=this,y=["loggedIn","available","waiting","talking","originated","message","dialActive","dialMethod","Trunk"];E.count=o.count,E.queues=o?_.keyBy(o.rows?o.rows:[],"id"):{},E.rpcQueues=s?_.keyBy(s.rows?s.rows:[],"id"):{},c.hasRole("admin")?E.query={type:"inbound",sort:"-updatedAt",limit:10,page:1}:E.query={id:c.getCurrentUser().id,channel:"voice",type:"inbound",sort:"-updatedAt",limit:10,page:1},E.success=g,E.getQueues=h,E.createOrEditVoiceQueue=v,E.agentAdd=b,E.updateQueue=f,E.onSave=u,E.onSaveMember=p,E.$onInit=m,l.on("voice_queue:save",E.onSave),l.on("userVoiceQueueRt:save",E.onSaveMember),l.on("userVoiceQueueRt:update",E.onSaveMember);var A=!0,C=1;e.$watch("vm.query.filter",function(e,n){A?t(function(){A=!1}):(n||(C=E.query.page),e!==n&&(E.query.page=1),e||(E.query.page=C),E.getQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("userVoiceQueueRt:save"),l.removeAllListeners("userVoiceQueueRt:update")})}e.$inject=["$scope","$timeout","$mdDialog","$q","$document","queues","rpcQueues","api","socket","toasty","Auth"],angular.module("app.voice").controller("QueuesVoiceRealtimeController",e)}(),function(){"use strict";function e(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}}angular.module("app.auth").factory("helperClasses",e)}(),function(){"use strict";function e(e,t,n){var a=this;switch(n.disconnect(),n.connect(),a.selectedTab=0,t.current.name){case"app.voice.realtime.agents":a.selectedTab=0;break;case"app.voice.realtime.telephones":a.selectedTab=1;break;case"app.voice.realtime.trunks":a.selectedTab=2;break;case"app.voice.realtime.queues":a.selectedTab=3;break;case"app.voice.realtime.queue_calls":a.selectedTab=4;break;case"app.voice.realtime.queue_params":a.selectedTab=5;break;case"app.voice.realtime.outbound_calls":a.selectedTab=6;break;default:a.selectedTab=0,t.go("app.voice.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.voice.realtime.agents");break;case 1:t.go("app.voice.realtime.telephones");break;case 2:t.go("app.voice.realtime.trunks");break;case 3:t.go("app.voice.realtime.queues");break;case 4:t.go("app.voice.realtime.queue_calls");break;case 5:t.go("app.voice.realtime.queue_params");break;case 6:t.go("app.voice.realtime.outbound_calls");break;default:t.go("app.voice.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.voice").controller("VoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){_.forIn(p.telephones,function(e,t){p.rpcTelephones[t]&&_.merge(e,_.pick(p.rpcTelephones[t],g))})}function d(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))}function c(e){p.telephones[e.id]&&_.merge(p.telephones[e.id],_.pick(e,g))}function m(e){p.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},l()}function u(){p.query.offset=(p.query.page-1)*p.query.limit,p.promise=o.user.get(p.query,m).$promise}var p=this,g=["fullname","internal","state","status"];p.count=a.count,p.attributes=["fullname","internal","state","status","address"],p.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},p.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},p.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},p.statusClass=r.status,p.stateClass=r.state,p.success=m,p.$onInit=l,p.showInfo=d,p.getTelephones=u,p.onSave=c,s.on("telephone:save",p.onSave);var h=!0,v=1;e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getTelephones())}),e.$on("$destroy",function(){s.removeAllListeners("telephone:save")})}e.$inject=["$scope","$timeout","$mdDialog","telephones","rpcTelephones","api","socket","helperClasses"],angular.module("app.voice").controller("TelephonesVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){_.forIn(p.trunks,function(e,t){p.rpcTrunks[t]&&_.merge(e,_.pick(p.rpcTrunks[t],g))})}function d(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))}function c(e){p.trunks[e.id]&&_.merge(p.trunks[e.id],_.pick(e,g))}function m(e){p.count=e.count,p.trunks=e?_.keyBy(e.rows?e.rows:[],"id"):{},l()}function u(){p.query.offset=(p.query.page-1)*p.query.limit,p.promise=o.trunk.get(p.query,m).$promise}var p=this,g=["status","stateRegistry","registry","host","port","internal","state","status"];p.count=a.count,p.trunks=a?_.keyBy(a.rows?a.rows:[],"id"):{},p.rpcTrunks=i?_.keyBy(i.rows?i.rows:[],"id"):{},p.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},p.statusClass=r.status,p.stateClass=r.state,p.success=m,p.$onInit=l,p.showInfo=d,p.getTrunks=u,p.onSave=c,s.on("trunk:save",p.onSave);var h=!0,v=1;e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getTrunks())}),e.$on("$destroy",function(){s.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceMail.save(p.voicemail).$promise.then(function(e){p.voicemails.unshift(e),i.success({title:"Voicemail properly created",msg:p.voicemail.name?p.voicemail.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceMail.update({id:p.voicemail.id},p.voicemail).$promise.then(function(e){var t=_.find(p.voicemails,{id:e.id});t&&_.merge(t,e),i.success({title:"Voicemail properly saved!",msg:p.voicemail.name?p.voicemail.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceMail.delete({id:p.voicemail.id}).$promise.then(function(){_.remove(p.voicemails,{id:p.voicemail.id}),i.success({title:"Voicemail properly deleted!",msg:(p.voicemail.name||"voicemail")+" has been deleted!"}),u(p.voicemail)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_VOICEMAIL",p.voicemail=angular.copy(s),p.voicemails=o,p.newVoicemail=!1,p.voicemail||(p.voicemail={},p.title="VOICE.NEW_VOICEMAIL",p.newVoicemail=!0),p.addNewVoicemail=l,p.saveVoicemail=d,p.deleteVoicemail=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","voicemails","voicemail","api"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(e){h.voicemail=e,h.query.id=h.voicemail.id,h.getVoicemailMessages()}function d(e,t){var n=i.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete message").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){p(e)},function(){console.log("CANCEL")})}function c(e){h.voicemailMessages=e||{count:0,rows:[]}}function m(){h.query.offset=(h.query.page-1)*h.query.limit,h.promise=r.voiceMail.getMessages(h.query,c).$promise}function u(e,t){i.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{message:t,messages:h.voicemailMessages.rows}})}function p(e){r.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(h.voicemailMessages.rows,{id:e.id}),h.voicemailMessages.count-=1,h.voicemailMessages.rows.length||h.getVoicemailMessages(),s.success({title:"Message deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})}function g(e){var t=i.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+h.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){h.selectedVoicemailMessages.forEach(function(e){p(e)}),h.selectedVoicemailMessages=[]})}var h=this;h.voicemail={},h.voicemailMessages={count:0,rows:[]},h.selectedVoicemailMessages=[],h.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp",limit:10,page:1},h.init=l,h.deleteConfirm=d,h.success=c,h.getVoicemailMessages=m,h.createOrEditVoicemailMessage=u,h.deleteVoicemailMessage=p,h.deleteSelectedVoicemailMessages=g;var v=!0,b=1;t.$watch("vm_dc.query.filter",function(e,t){v?a(function(){v=!1}):(t||(b=h.query.page),e!==t&&(h.query.page=1),e||(h.query.page=b),h.getVoicemailMessages())})}e.$inject=["$cookies","$scope","$state","$timeout","$mdDialog","$document","toasty","api"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(){e.go("app.voice.voicemails")}function r(){i.voiceMail.update({id:l.voicemail.id},l.voicemail).$promise.then(function(){a.success({title:"Voicemail updated!",msg:l.voicemail.name?l.voicemail.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})}var l=this;l.voicemail=e.params.voicemail||o||{},l.selectedTab=e.params.tab||0,l.gotoVoicemails=s,l.saveVoicemail=r,i.voiceContext.get({fields:"name",sort:"name"}).$promise.then(function(e){l.contexts=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","voicemail"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.voicemails.edit",{id:e.id,voicemail:e})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the voicemail?").htmlContent("<b>"+(e.name||"voicemail")+"</b> will be deleted.").ariaLabel("delete voicemail").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.voicemails=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceMail.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditVoicemailDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:t,voicemails:A.voicemails.rows}})}function v(e){l.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(A.voicemails.rows,{id:e.id}),A.voicemails.count-=1,A.voicemails.rows.length||A.getVoicemails(),c.success({title:"Voicemail deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedVoicemails);return A.selectedVoicemails=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+A.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedVoicemails.forEach(function(e){v(e)}),A.selectedVoicemails=[]})}function E(){A.selectedVoicemails=[]}function y(){A.selectedVoicemails=A.voicemails.rows}var A=this;A.voicemails=r||{count:0,rows:[]},A.table="voicemails",A.listOrder="",A.listOrderAsc=null,A.selectedVoicemails=[],A.query={fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,page:1},A.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),A.editstate=m,A.deleteconfirm=u,A.success=p,A.getVoicemails=g,A.createOrEditVoicemail=h,A.deleteVoicemail=v,A.exportSelectedVoicemails=b,A.deleteSelectedVoicemails=f,A.deselectVoicemails=E,A.selectAllVoicemails=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voicemails","api","msUtils","toasty"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceQueue.save(p.voiceQueue).$promise.then(function(e){p.voiceQueues.unshift(e),i.success({title:"VoiceQueue properly created",msg:p.voiceQueue.name?p.voiceQueue.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceQueue.update({id:p.voiceQueue.id},p.voiceQueue).$promise.then(function(e){var t=_.find(p.voiceQueues,{id:e.id});t&&_.merge(t,e),i.success({title:"VoiceQueue properly saved!",msg:p.voiceQueue.name?p.voiceQueue.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceQueue.delete({id:p.voiceQueue.id}).$promise.then(function(){_.remove(p.voiceQueues,{id:p.voiceQueue.id}),i.success({title:"VoiceQueue properly deleted!",msg:(p.voiceQueue.name||"voiceQueue")+" has been deleted!"}),u(p.voiceQueue)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_VOICEQUEUE",p.voiceQueue=angular.copy(s),p.voiceQueues=o,p.newVoiceQueue=!1,p.voiceQueue||(p.voiceQueue={type:"inbound",strategy:"ringall",timeout:15,retry:2,random_periodic_announce:"no",announce_holdtime:"no",announce_position:"no",reportholdtime:"no",autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no"},p.title="VOICE.NEW_VOICEQUEUE",p.newVoiceQueue=!0),p.addNewVoiceQueue=l,p.saveVoiceQueue=d,p.deleteVoiceQueue=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","voiceQueues","voiceQueue","api"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s){function r(){return n.voiceQueue[c.isVoiceRealtime()?"getMembers":"getAgents"]({id:c.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){return c.isVoiceRealtime()?c.selectedItems=e.rows?_.map(e.rows,function(e){return e.id=e.UserId,e.fullname=e.membername,e.penalty=e.hasOwnProperty("penalty")?"penalty "+e.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[]:c.selectedItems=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e.internal=e.hasOwnProperty("internal")?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.selectedItems=c.selectedItems,n.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){return e.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",e.internal=e.internal?"internal "+e.internal:"",e}):[],c.dualMultiselectOptions.items=_.differenceBy(c.items,c.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS.GETAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}function l(){return o}function d(){e.hide()}var c=this;c.voiceQueue=a,c.penalty=0,c.items=[],c.selectedItems=[],c.closeDialog=d,c.isVoiceRealtime=l,c.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!o,orderBy:"name",line1:"fullname",line2:"internal",line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,a){n.voiceQueue[a?"removeAgents":"addAgents"]({id:c.voiceQueue.id,ids:_.map(e,c.isVoiceRealtime()&&a?"UserId":"id"),penalty:c.penalty||0,realtime:o||!1}).$promise.then(function(){t.success({title:"VoiceQueue properly "+(a?"removed":"added"),msg:"VoiceQueue has been "+(a?"removed":"added")+"!"}),a||r()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDAGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},r()}e.$inject=["$mdDialog","toasty","api","voiceQueue","voiceQueues","realtime","$translate"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){e.hide()}var s=this;s.voiceQueue=a,s.penalty=0,s.items=[],s.selectedItems=[],s.dualMultiselectOptions={items:[],selectedItems:[],showSelectAndDeselectAll:!0,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:i.instant("VOICE.ALL_TEAMS"),labelSelected:i.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,a){n.voiceQueue[a?"removeTeams":"addTeams"]({id:s.voiceQueue.id,ids:_.map(e,"id"),penalty:s.penalty||0}).$promise.then(function(){t.success({title:"Team properly "+(a?"removed":"added"),msg:"Team has been "+(a?"removed":"added")+"!"})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:voiceQueue.ADDTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},s.closeDialog=o,n.voiceQueue.getTeams({id:s.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){return s.selectedItems=e.rows?e.rows:[],s.dualMultiselectOptions.selectedItems=s.selectedItems,n.team.get({fields:"id,name",nolimit:!0}).$promise}).then(function(e){s.items=e.rows?e.rows:[],s.dualMultiselectOptions.items=_.differenceBy(s.items,s.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","toasty","api","voiceQueue","$translate"],angular.module("app.voice").controller("VoiceQueueteamaddController",e)}(),function(){"use strict";function e(e,t,n,a,i,o){function s(e,a){t.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:c.voiceQueues?c.voiceQueues.rows:[]}})}function r(e,a){t.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(n.body),targetEvent:a,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:c.voiceQueues?c.voiceQueues.rows:[],realtime:!1}})}function l(){e.go("app.voice.voiceQueues")}function d(){i.voiceQueue.update({id:c.voiceQueue.id},c.voiceQueue).$promise.then(function(){a.success({title:"VoiceQueue updated!",msg:c.voiceQueue.name?c.voiceQueue.name+" has been updated!":""})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}var c=this;c.voiceQueue=e.params.voiceQueue||o||{},c.selectedTab=e.params.tab||0,c.teamadddialog=s,c.agentadddialog=r,c.gotoVoiceQueues=l,c.saveVoiceQueue=d,i.voiceMusicOnHold.get({fields:"name",nolimit:"true"}).$promise.then(function(e){c.musiconholds=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.sound.get({fields:"name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){c.sounds=e.rows||[]}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$mdDialog","$document","toasty","api","voiceQueue"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,t){n.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e})}function u(e,t){i.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:x.voiceQueues?x.voiceQueues.rows:[]}})}function p(e,t){i.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(o.body),targetEvent:t,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:x.voiceQueues?x.voiceQueues.rows:[],realtime:!1}})}function g(e,t){var n=i.confirm().title("Are you sure want to delete the voiceQueue?").htmlContent("<b>"+(e.name||"voiceQueue")+"</b> will be deleted.").ariaLabel("delete voiceQueue").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){f(e)},function(){console.log("CANCEL")})}function h(e){x.voiceQueues=e||{count:0,rows:[]}}function v(){x.query.offset=(x.query.page-1)*x.query.limit,x.promise=l.voiceQueue.get(x.query,h).$promise}function b(e,t){i.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:t,voiceQueues:x.voiceQueues.rows}})}function f(e){l.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(x.voiceQueues.rows,{id:e.id}),x.voiceQueues.count-=1,x.voiceQueues.rows.length||x.getVoiceQueues(),c.success({title:"VoiceQueue deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}function E(){var e=_.clone(x.selectedVoiceQueues);return x.selectedVoiceQueues=[],e}function y(e){var t=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+x.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){x.selectedVoiceQueues.forEach(function(e){f(e)}),x.selectedVoiceQueues=[]})}function A(){x.selectedVoiceQueues=[]}function C(){x.selectedVoiceQueues=x.voiceQueues.rows}var x=this;x.voiceQueues=r||{count:0,rows:[]},x.table="voiceQueues",x.listOrder="",x.listOrderAsc=null,x.selectedVoiceQueues=[],x.query={fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar",type:"inbound",sort:"-updatedAt",limit:10,page:1},x.arraystrategy=_.keyBy([{option:"Ringall",value:"'ringall'"},{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Least Recent",value:"'leastrecent'"},{option:"Fewest Calls",value:"'fewestcalls'"},{option:"Random",value:"'random'"},{option:"Linear",value:"'linear'"},{option:"Weight Random",value:"'wrandom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayjoinempty=_.keyBy([{option:"no",value:"'no'"},{option:"yes",value:"'yes'"},{option:"strict",value:"'strict'"},{option:"loose",value:"'loose'"},{option:"paused",value:"'paused'"},{option:"penalty",value:"'penalty'"},{option:"inuse",value:"'inuse'"},{option:"ringing",value:"'ringing'"},{option:"unavailable",value:"'unavailable'"},{option:"invalid",value:"'invalid'"},{option:"unknoww",value:"'unknown'"},{option:"wrapup",value:"'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayleavewhenempty=_.keyBy([{option:"no",value:"'no'"},{option:"yes",value:"'yes'"},{option:"strict",value:"'strict'"},{option:"loose",value:"'loose'"},{option:"paused",value:"'paused'"},{option:"penalty",value:"'penalty'"},{option:"inuse",value:"'inuse'"},{option:"ringing",value:"'ringing'"},{option:"unavailable",value:"'unavailable'"},{option:"invalid",value:"'invalid'"},{option:"unknoww",value:"'unknown'"},{option:"wrapup",value:"'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayannounce_position=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Limit",value:"'limit'"},{option:"More",value:"'more'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),x.editstate=m,x.teamadddialog=u,x.agentadddialog=p,x.deleteconfirm=g,x.success=h,x.getVoiceQueues=v,x.createOrEditVoiceQueue=b,x.deleteVoiceQueue=f,x.exportSelectedVoiceQueues=E,x.deleteSelectedVoiceQueues=y,x.deselectVoiceQueues=A,x.selectAllVoiceQueues=C;var T=!0,S=1;e.$watch("vm.query.filter",function(e,t){T?s(function(){T=!1}):(t||(S=x.query.page),e!==t&&(x.query.page=1),e||(x.query.page=S),x.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceQueues","api","msUtils","toasty"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r){function l(){p.errors=[],r.voiceRecording.save(p.voiceRecording).$promise.then(function(e){p.voiceRecordings.unshift(e),i.success({title:"VoiceRecording properly created",msg:p.voiceRecording.name?p.voiceRecording.name+" has been created!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.save"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function d(){p.errors=[],r.voiceRecording.update({id:p.voiceRecording.id},p.voiceRecording).$promise.then(function(e){var t=_.find(p.voiceRecordings,{id:e.id});t&&_.merge(t,e),i.success({title:"VoiceRecording properly saved!",msg:p.voiceRecording.name?p.voiceRecording.name+" has been saved!":""}),u(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var t=0;t<e.data.errors.length;t++)i.error({title:e.data.errors[t].type,msg:e.data.errors[t].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function c(){p.errors=[];var e=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(event);a.show(e).then(function(){r.voiceRecording.delete({id:p.voiceRecording.id}).$promise.then(function(){_.remove(p.voiceRecordings,{id:p.voiceRecording.id}),i.success({title:"VoiceRecording properly deleted!",msg:(p.voiceRecording.name||"voiceRecording")+" has been deleted!"}),u(p.voiceRecording)}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}]})},function(){})}function m(e){return new Date(e)}function u(e){a.hide(e)}var p=this;p.errors=[],p.title="VOICE.EDIT_VOICERECORDING",p.voiceRecording=angular.copy(s),p.voiceRecordings=o,p.newVoiceRecording=!1,p.voiceRecording||(p.voiceRecording={},p.title="VOICE.NEW_VOICERECORDING",p.newVoiceRecording=!0),p.addNewVoiceRecording=l,p.saveVoiceRecording=d,p.deleteVoiceRecording=c,p.getDateFromString=m,p.closeDialog=u}e.$inject=["$scope","$state","$location","$mdDialog","toasty","voiceRecordings","voiceRecording","api"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c){function m(e,n){return l.voiceRecording.download({id:e.id,exists:!0}).$promise.then(function(){var n=t.document.createElement("a");n.href="api/voice/recordings/"+e.id+"/download",n.target="_self",n.click()}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e,t){var n=i.confirm().title("Are you sure want to delete the voiceRecording?").htmlContent("<b>"+(e.name||"voiceRecording")+"</b> will be deleted.").ariaLabel("delete voiceRecording").targetEvent(t).ok("OK").cancel("CANCEL");i.show(n).then(function(){v(e)},function(){console.log("CANCEL")})}function p(e){A.voiceRecordings=e||{count:0,rows:[]}}function g(){A.query.offset=(A.query.page-1)*A.query.limit,A.promise=l.voiceRecording.get(A.query,p).$promise}function h(e,t){i.show({controller:"CreateOrEditVoiceRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceRecordings/create/dialog.html",parent:angular.element(o.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceRecording:t,voiceRecordings:A.voiceRecordings.rows}})}function v(e){l.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(A.voiceRecordings.rows,{id:e.id}),A.voiceRecordings.count-=1,A.voiceRecordings.rows.length||A.getVoiceRecordings(),c.success({title:"VoiceRecording deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){var e=_.clone(A.selectedVoiceRecordings);return A.selectedVoiceRecordings=[],e}function f(e){var t=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+A.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){A.selectedVoiceRecordings.forEach(function(e){v(e)}),A.selectedVoiceRecordings=[]})}function E(){A.selectedVoiceRecordings=[]}function y(){A.selectedVoiceRecordings=A.voiceRecordings.rows}var A=this;A.voiceRecordings=r||{count:0,rows:[]},A.table="voiceRecordings",A.listOrder="",A.listOrderAsc=null,A.selectedVoiceRecordings=[],A.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,createdAt",sort:"-updatedAt",limit:10,page:1},A.downloadfile=m,A.deleteconfirm=u,A.success=p,A.getVoiceRecordings=g,A.createOrEditVoiceRecording=h,A.deleteVoiceRecording=v,A.exportSelectedVoiceRecordings=b,A.deleteSelectedVoiceRecordings=f,A.deselectVoiceRecordings=E,A.selectAllVoiceRecordings=y;var C=!0,x=1;e.$watch("vm.query.filter",function(e,t){C?s(function(){C=!1}):(t||(x=A.query.page),e!==t&&(A.query.page=1),e||(A.query.page=x),A.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","voiceRecordings","api","msUtils","toasty"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(e,t,n,a,i){function o(){return a.getCurrentUser()&&a.hasRole("agent")}this.isAgent=o,n.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return a.hasRole("agent")}}),n.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(100)&&!a.hasRole("admin")}}),n.saveItem("apps.dashboards.general",{id:101,title:"General",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(101)&&!a.hasRole("admin")}}),n.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(200)&&!a.hasRole("admin")}}),n.saveItem("apps.staff.users",{id:201,title:"Users",translate:"STAFF.USERS",state:"app.staff.users",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(201)&&!a.hasRole("admin")}}),n.saveItem("apps.staff.agents",{id:202,title:"Agents",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(202)&&!a.hasRole("admin")}}),n.saveItem("apps.staff.telephones",{id:203,title:"Telephones",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(203)&&!a.hasRole("admin")}}),n.saveItem("apps.staff.teams",{id:204,title:"Teams",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(204)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",weight:4,hidden:function(){return!i.cm||a.hasRole("agent")||!a.hasPermission(300)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(301)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(302)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",weight:4,hidden:function(){return a.hasRole("agent")||!a.hasPermission(304)&&!a.hasRole("admin")}}),n.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(303)&&!a.hasRole("admin")}}),n.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",weight:5,hidden:function(){return a.hasRole("agent")||!a.hasPermission(400)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(401)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.inboundroutes",{id:402,title:"InboundRoutes",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundroutes",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(402)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.outboundroutes",{id:403,title:"OutboundRoutes",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundroutes",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(403)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.internalroutes",{id:404,title:"InternalRoutes",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalroutes",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(404)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.contexts",{id:405,title:"Contexts",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(405)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(406)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(407)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(408)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(409)&&!a.hasRole("admin")}}),n.saveItem("apps.voice.realtime",{id:410,title:"Realtime",translate:"VOICE.REALTIME",state:"app.voice.realtime",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(410)&&!a.hasRole("admin")}}),n.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",weight:6,hidden:function(){return!i.chat||a.hasRole("agent")||!a.hasPermission(500)&&!a.hasRole("admin")}}),n.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(501)&&!a.hasRole("admin")}}),n.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(502)&&!a.hasRole("admin")}}),n.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",weight:7,hidden:function(){return!i.license||a.hasRole("agent")||!a.hasPermission(600)&&!a.hasRole("admin")}}),n.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(601)&&!a.hasRole("admin")}}),n.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(602)&&!a.hasRole("admin")}}),n.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",weight:8,hidden:function(){return!i.messaging||a.hasRole("agent")||!a.hasPermission(700)&&!a.hasRole("admin")}}),n.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(701)&&!a.hasRole("admin")}}),n.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(702)&&!a.hasRole("admin")}}),n.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",weight:9,hidden:function(){return!i.openchannel||a.hasRole("agent")||!a.hasPermission(800)&&!a.hasRole("admin")}}),n.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(801)&&!a.hasRole("admin")}}),n.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(802)&&!a.hasRole("admin")}}),n.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",weight:10,hidden:function(){return!i.fax||a.hasRole("agent")||!a.hasPermission(900)&&!a.hasRole("admin")}}),n.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(901)&&!a.hasRole("admin")}}),n.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(902)&&!a.hasRole("admin")}}),n.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:13,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1e3)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.cannedAnswers",{id:1002,title:"CannedAnswers",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1002)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1003)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1004)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1005)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.schedules",{id:42,title:"Scheduler",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return a.hasRole("agent")||!a.hasPermission(42)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.sounds",{id:1006,title:"Sounds",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1006)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.tags",{id:1007,title:"Tags",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1007)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.templates",{id:1008,title:"Templates",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1008)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.triggers",{id:1009,title:"Triggers",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1009)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.trunks",{id:1010,title:"Trunks",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1010)&&!a.hasRole("admin")}}),n.saveItem("apps.tools.variables",{id:1011,title:"Variables",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1011)&&!a.hasRole("admin")}}),n.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",weight:11,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1100)&&!a.hasRole("admin")}}),n.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1101)&&!a.hasRole("admin")}}),n.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1102)&&!a.hasRole("admin")}}),n.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1103)&&!a.hasRole("admin")}}),n.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:14,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1200)&&!a.hasRole("admin")}}),n.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1201)&&!a.hasRole("admin")}}),n.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",weight:2,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1202)&&!a.hasRole("admin")}}),n.saveItem("apps.analytics.reports",{id:1203,title:"Reports",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1203)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:15,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1300)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1301)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1302)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1303)&&!a.hasRole("admin")}}),n.saveItem("apps.integrations.sugarcrmAccounts",{id:1304,title:"SugarcrmAccounts",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1304)&&!a.hasRole("admin")}}),n.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",weight:16,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1400)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.generals",{id:1401,title:"General",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1401)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1402)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.networks",{id:1403,title:"Networks",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1403)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!i.custom||a.hasRole("agent")||!a.hasPermission(1407)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.updates",{id:1404,title:"Updates",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!i.update||a.hasRole("agent")||!a.hasPermission(1404)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.license",{id:1405,title:"License",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1405)&&!a.hasRole("admin")}}),n.saveItem("apps.settings.system",{id:1406,title:"System",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1406)&&!a.hasRole("admin")}}),n.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",weight:17,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1600)&&!a.hasRole("admin")}}),n.saveItem("apps.help.about",{id:1601,title:"About",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1601)&&!a.hasRole("admin")}}),n.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",weight:5,hidden:function(){return!i.dialer||a.hasRole("agent")||!a.hasPermission(1500)&&!a.hasRole("admin")}}),n.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1501)&&!a.hasRole("admin")}}),n.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1502)&&!a.hasRole("admin")}}),n.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1510)&&!a.hasRole("admin")}}),n.saveItem("apps.jscripty",{id:1700,title:"jscripty",translate:"JSCRIPTY.JSCRIPTY",icon:"icon-script",weight:12,hidden:function(){return!i.jscripty||a.hasRole("agent")||!a.hasPermission(1700)&&!a.hasRole("admin")}}),n.saveItem("apps.jscripty.projects",{id:1701,title:"Projects",translate:"JSCRIPTY.PROJECTS",state:"app.jscripty.projects",weight:1,hidden:function(){return a.hasRole("agent")||!a.hasPermission(1701)&&!a.hasRole("admin")}}),e.$on("$viewContentAnimationEnded",function(n){n.targetScope.$id===e.$id&&t.$broadcast("msSplashScreen::remove")})}e.$inject=["$scope","$rootScope","msNavigationService","Auth","license"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,t){function n(){i.folded=!i.folded}function a(){return i.setting.defaultHeaderWhiteLabel?"Motion":i.setting.headerWhiteLabel}var i=this;i.bodyEl=angular.element("body"),i.folded=!1,i.msScrollOptions={suppressScrollX:!0},i.setting=t,i.toggleMsNavigationFolded=n,i.getLogo=a,e.$on("$stateChangeSuccess",function(){i.bodyEl.removeClass("ms-navigation-horizontal-mobile-menu-active")})}e.$inject=["$scope","setting"],angular.module("app.navigation").controller("NavigationController",e)}(),function(){"use strict";function e(e,t){var n=this;n.date=new Date,n.license=t,n.license.gray&&(n.license.deadline=moment(n.license.gray).add(7,"days").format("MMMM Do YYYY, HH:MM"))}e.$inject=["msApi","license"],angular.module("app.quick-panel").controller("QuickPanelController",e)}(),function(){"use strict";function e(e,t){function n(e){o.chatActive=!o.chatActive,o.chatActive&&(o.replyMessage="",o.chat.contact=e,i(0))}function a(){""!==o.replyMessage&&(o.chat.contact.dialog||(o.chat.contact.dialog=[]),o.chat.contact.dialog.push({who:"user",message:o.replyMessage,time:"Just now"}),o.replyMessage="",i(400))}function i(e){var n=angular.element("#chat-dialog");t(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}var o=this;o.chat={},o.chatActive=!1,o.replyMessage="",e.request("quickPanel.contacts@get",{},function(e){o.contacts=e.data}),o.toggleChat=n,o.reply=a}e.$inject=["msApi","$timeout"],angular.module("app.quick-panel").controller("ChatTabController",e)}(),function(){"use strict";function e(e,t,n,a){function i(){s.errors=[],n.user.changePassword({id:s.user.id},{oldPassword:s.oldPassword,newPassword:s.password}).$promise.then(function(){t.show(t.simple().textContent("Your password properly updated").position("top right").hideDelay(5e3)),o()}).catch(function(e){console.error(e),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})}function o(){e.hide()}var s=this;s.errors=[],s.user=a,s.savePassword=i,s.closeDialog=o}e.$inject=["$mdDialog","$mdToast","api","user"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,t,n,a,i,o,s,r,l,d,c,m,u,p,g,h,v){function b(e){return h.cmHopper.getDialerContacts({limit:1}).$promise.then(function(t){if(t&&t.count){var n=t.rows[0],a=n.Contact,i=a.fullName||a.lastName||a.phone,o=a.phone,s=l.confirm().title("Preview Call").clickOutsideToClose(!0).textContent("Do you want to call the contact "+i+" ("+o+")?").ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");l.show(s).then(function(){return h.cmHopper.callDialerContact({id:n.id}).$promise.then(function(e){console.log("data",e)}).catch(function(e){console.error(e)})}).catch(function(e){return h.cmHopper.update({id:n.id,active:!1}).$promise.then(function(){m.success({title:"Contact rejected",msg:"Contact "+a.phone+" properly rejected"})}).catch(function(e){m.error({title:e.message,msg:e.message})})})}else m.info({title:"No available contacts",msg:"No contacts found"})}).catch(function(e){console.error(e)})}function f(e){i(e).toggle()}function E(e){I.userStatus=e}function y(e){return p.logout(e).then(function(){return g.disconnect(),n.go("app.login")}).catch(function(e){console.error(e)})}function A(e){if(I.languages.hasOwnProperty(e.code))I.selectedLanguage=e,c.put("motion.language",e.code),o.use(e.code),"app.callysquare.projects.edit"===n.current.name&&r.location.reload();else{s.show({template:'<md-toast id="language-message" layout="column" layout-align="center start"><div class="md-toast-content">Motion supports multiple translations through angular-translate module, but currently we do not support the selected language. If you want to help us, send us a message.</div></md-toast>',hideDelay:7e3,position:"top right",parent:"#content"})}}function C(){I.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")}function x(){u.toggleFolded()}function T(e){for(var n=[],i=u.getFlatNavigation(),o=t.defer(),s=0;s<i.length;s++)i[s].uisref&&n.push(i[s]);return e&&(n=n.filter(function(t){if(angular.lowercase(t.title).search(angular.lowercase(e))>-1)return!0})),a(function(){o.resolve(n)},1e3),o.promise}function S(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))}function O(e){l.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:I.user}})}function w(){return p.getCurrentUser()&&p.hasRole("agent")}function R(e){if(e.id===I.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online){var t=l.confirm().title(o.instant("TOOLBAR.WARNING")+"!").textContent(o.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")).ariaLabel(o.instant("TOOLBAR.WARNING")+"!").ok(o.instant("TOOLBAR.STAY_LOGGED")).cancel("Logout");l.show(t).then(function(){p.queueLogin()}).catch(function(e){y(!0)}).finally(function(){_.merge(I.user,e),p.updateCurrentUser(I.user)})}else _.merge(I.user,e),p.updateCurrentUser(I.user)}var I=this;e.global={search:""},I.license=v,I.bodyEl=angular.element("body"),I.userStatusOptions=[{title:"Online",icon:"icon-checkbox-marked-circle",color:"#4CAF50"},{title:"Away",icon:"icon-clock",color:"#FFC107"},{title:"Do not Disturb",icon:"icon-minus-circle",color:"#F44336"},{title:"Invisible",icon:"icon-checkbox-blank-circle-outline",color:"#BDBDBD"},{title:"Offline",icon:"icon-checkbox-blank-circle-outline",color:"#616161"}],I.languages={en:{title:"English",translation:"TOOLBAR.ENGLISH",code:"en",flag:"us"},it:{title:"Italian",translation:"TOOLBAR.ITALIAN",code:"it",flag:"it"},fr:{title:"French",translation:"TOOLBAR.FRENCH",code:"fr",flag:"fr"},ko:{title:"Korean",translation:"TOOLBAR.KOREAN",code:"ko",flag:"ko"},es:{title:"Spanish",translation:"TOOLBAR.SPANISH",code:"es",flag:"es"},sv:{title:"Swedish",translation:"TOOLBAR.SWEDISH",code:"sv",flag:"sv"},ru:{title:"Russian",translation:"TOOLBAR.RUSSIAN",code:"ru",flag:"ru"},de:{title:"German",translation:"TOOLBAR.GERMAN",code:"de",flag:"de"},ja:{title:"Japanese",translation:"TOOLBAR.JAPANESE",code:"ja",flag:"ja"},"zh-CN":{title:"ChineseSimplified",translation:"TOOLBAR.CHINESESIMPLIFIED",code:"zh-CN",flag:"zh-CN"},"zh-TW":{title:"ChineseTraditional",translation:"TOOLBAR.CHINESETRADITIONAL",code:"zh-TW",flag:"zh-TW"},nl:{title:"Dutch",translation:"TOOLBAR.DUTCH",code:"nl",flag:"nl"},fi:{title:"Finnish",translation:"TOOLBAR.FINNISH",code:"fi",flag:"fi"},da:{title:"Danish",translation:"TOOLBAR.DANISH",code:"da",flag:"da"},"pt-PT":{title:"Portuguese",translation:"TOOLBAR.PORTUGUESE",code:"pt-PT",flag:"pt-PT"},no:{title:"Norwegian",translation:"TOOLBAR.NORWEGIAN",code:"no",flag:"no"},hi:{title:"Hindi",translation:"TOOLBAR.HINDI",code:"hi",flag:"hi"},tr:{title:"Turkish",translation:"TOOLBAR.TURKISH",code:"tr",flag:"tr"},fa:{title:"Persian",translation:"TOOLBAR.PERSIAN",code:"fa",flag:"fa"}},I.toggleSidenav=f,I.logout=y,I.changeLanguage=A,I.setUserStatus=E,I.toggleHorizontalMobileMenu=C,I.toggleMsNavigationFolded=x,I.search=T,I.searchResultClick=S,I.changePassword=O,I.isAgent=w,I.onUserUpdate=R,I.preview=b,g.connect(),g.on("user:update",I.onUserUpdate),function(){I.user=p.getCurrentUser(),I.userStatus=I.userStatusOptions[0];var e=c.get("motion.language");e&&I.languages.hasOwnProperty(e)?I.selectedLanguage=I.languages[e]:I.selectedLanguage=I.languages[o.preferredLanguage()]}()}e.$inject=["$rootScope","$q","$state","$timeout","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var t=new Object,n=e.lastIndexOf("?");if(n>0)for(var a=e.substring(n+1).split("&"),i=0;i<a.length;i++)(n=a[i].indexOf("="))>0&&(t[a[i].substring(0,n)]=a[i].substring(n+1));return t}(window.location.href),t0=new Date,MAX_REQUEST_SIZE=10485760,MAX_WIDTH=12e3,MAX_HEIGHT=12e3,EXPORT_URL="http://exp.draw.io/ImageExport2/export",SHARE_HOST="http://localhost:3000",SAVE_URL="api/square/projects/",VARIABLE_URL="/api/variables",STENCIL_PATH="/assets/plugins/square/stencils",SHAPES_PATH="/assets/plugins/square/shapes",IMAGE_PATH="/assets/plugins/square/images",STYLE_PATH="/assets/plugins/square/styles",CSS_PATH="/assets/plugins/square/styles",OPEN_FORM="api/square/projects/open",TEMPLATE_PATH="/assets/plugins/square/templates",RESOURCES_PATH="/assets/plugins/square/resources",RESOURCE_BASE=RESOURCES_PATH+"/grapheditor",tapAndHoldStartsConnection=!0,showConnectorImg=!0,mxLoadResources=!1,mxLanguages=["it","fr","ko","es","sv","ru","de","ja","zh-CN","zh-TW","nl","fi","da","pt-PT","no","hi","tr","fa"],mxLanguage="en",match=document.cookie.match(new RegExp("(^| )motion.language=([^;]+)"));match&&mxLanguages.includes(match[2])&&(mxLanguage=match[2]);var mxBasePath="assets/plugins/mxgraph",mxClient={VERSION:"2.0.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE"),IS_OP:0<=navigator.userAgent.indexOf("Opera/"),IS_OT:0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&0>navigator.userAgent.indexOf("Chrome/"),IS_GC:0<=navigator.userAgent.indexOf("Chrome/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&0>navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||0<=navigator.userAgent.indexOf("Epiphany/")||0<=navigator.userAgent.indexOf("AppleWebKit/")||0<=navigator.userAgent.indexOf("Gecko/")||0<=navigator.userAgent.indexOf("Opera/"),NO_FO:0<=navigator.userAgent.indexOf("Firefox/1.")||0<=navigator.userAgent.indexOf("Iceweasel/1.")||0<=navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/1.")||0<=navigator.userAgent.indexOf("Camino/1.")||0<=navigator.userAgent.indexOf("Epiphany/2.")||0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("MSIE")||0<=navigator.userAgent.indexOf("Mozilla/2."),IS_VML:"MICROSOFT INTERNET EXPLORER"==navigator.appName.toUpperCase(),IS_MAC:0<navigator.userAgent.toUpperCase().indexOf("MACINTOSH"),IS_TOUCH:0<navigator.userAgent.toUpperCase().indexOf("IPAD")||0<navigator.userAgent.toUpperCase().indexOf("IPOD")||0<navigator.userAgent.toUpperCase().indexOf("IPHONE")||0<navigator.userAgent.toUpperCase().indexOf("ANDROID"),IS_LOCAL:0>document.location.href.indexOf("http://")&&0>document.location.href.indexOf("https://"),isBrowserSupported:function(){return mxClient.IS_VML||mxClient.IS_SVG},link:function(e,t,n){if(n=n||document,mxClient.IS_IE6)n.write('<link rel="'+e+'" href="'+t+'" charset="ISO-8859-1" type="text/css"/>');else{var a=n.createElement("link");a.setAttribute("rel",e),a.setAttribute("href",t),a.setAttribute("charset","ISO-8859-1"),a.setAttribute("type","text/css"),n.getElementsByTagName("head")[0].appendChild(a)}},include:function(e){document.write('<script src="'+e+'"><\/script>')},dispose:function(){for(var e=0;e<mxEvent.objects.length;e++)null!=mxEvent.objects[e].mxListenerList&&mxEvent.removeAllListeners(mxEvent.objects[e])}};if(mxClient.IS_OP&&mxClient.IS_OT?mxClient.CSS_PREFIX="O":mxClient.IS_SF||mxClient.IS_GC?mxClient.CSS_PREFIX="Webkit":mxClient.IS_MT?mxClient.CSS_PREFIX="Moz":mxClient.IS_IE&&9<=document.documentMode&&(mxClient.CSS_PREFIX="ms"),void 0===mxLoadResources&&(mxLoadResources=!0),"undefined"==typeof mxResourceExtension&&(mxResourceExtension=".txt"),"undefined"==typeof mxLoadStylesheets&&(mxLoadStylesheets=!0),void 0!==mxBasePath&&0<mxBasePath.length?("/"==mxBasePath.substring(mxBasePath.length-1)&&(mxBasePath=mxBasePath.substring(0,mxBasePath.length-1)),mxClient.basePath=mxBasePath):mxClient.basePath=".","undefined"!=typeof mxImageBasePath&&0<mxImageBasePath.length?("/"==mxImageBasePath.substring(mxImageBasePath.length-1)&&(mxImageBasePath=mxImageBasePath.substring(0,mxImageBasePath.length-1)),mxClient.imageBasePath=mxImageBasePath):mxClient.imageBasePath=mxClient.basePath+"/images",mxClient.language=void 0!==mxLanguage?mxLanguage:mxClient.IS_IE?navigator.userLanguage:navigator.language,mxClient.defaultLanguage="undefined"!=typeof mxDefaultLanguage?mxDefaultLanguage:"en",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/common.css"),void 0!==mxLanguages&&(mxClient.languages=mxLanguages),mxClient.IS_IE){if(9<=document.documentMode)mxClient.IS_VML=!1,mxClient.IS_SVG=!0;else{8==document.documentMode?(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml","#default#VML"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office","#default#VML")):(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office"));var ss=document.createStyleSheet();ss.cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css")}window.attachEvent("onunload",mxClient.dispose)}var mxLog={consoleName:"Console",TRACE:!1,DEBUG:!0,WARN:!0,buffer:"",init:function(){if(null==mxLog.window&&null!=document.body){var e=mxLog.consoleName+" - mxGraph "+mxClient.VERSION,t=document.createElement("table");t.setAttribute("width","100%"),t.setAttribute("height","100%");var n=document.createElement("tbody"),a=document.createElement("tr"),i=document.createElement("td");if(i.style.verticalAlign="top",mxLog.textarea=document.createElement("textarea"),mxLog.textarea.setAttribute("readOnly","true"),mxLog.textarea.style.height="100%",mxLog.textarea.style.resize="none",mxLog.textarea.value=mxLog.buffer,mxLog.textarea.style.width=mxClient.IS_NS&&"BackCompat"!=document.compatMode?"99%":"100%",i.appendChild(mxLog.textarea),a.appendChild(i),n.appendChild(a),a=document.createElement("tr"),mxLog.td=document.createElement("td"),mxLog.td.style.verticalAlign="top",mxLog.td.setAttribute("height","30px"),a.appendChild(mxLog.td),n.appendChild(a),t.appendChild(n),mxLog.addButton("Info",function(e){mxLog.info()}),mxLog.addButton("DOM",function(e){e=mxUtils.getInnerHtml(document.body),mxLog.debug(e)}),mxLog.addButton("Trace",function(e){mxLog.TRACE=!mxLog.TRACE,mxLog.TRACE?mxLog.debug("Tracing enabled"):mxLog.debug("Tracing disabled")}),mxLog.addButton("Copy",function(e){try{mxUtils.copy(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Show",function(e){try{mxUtils.popup(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Clear",function(e){mxLog.textarea.value=""}),a=n=0,"number"==typeof window.innerWidth?(n=window.innerHeight,a=window.innerWidth):(n=document.documentElement.clientHeight||document.body.clientHeight,a=document.body.clientWidth),mxLog.window=new mxWindow(e,t,Math.max(0,a-320),Math.max(0,n-210),300,160),mxLog.window.setMaximizable(!0),mxLog.window.setScrollable(!1),mxLog.window.setResizable(!0),mxLog.window.setClosable(!0),mxLog.window.destroyOnClose=!1,(mxClient.IS_NS||mxClient.IS_IE)&&!mxClient.IS_GC&&!mxClient.IS_SF&&"BackCompat"!=document.compatMode){var o=mxLog.window.getElement(),e=function(e,t){mxLog.textarea.style.height=Math.max(0,o.offsetHeight-70)+"px"};mxLog.window.addListener(mxEvent.RESIZE_END,e),mxLog.window.addListener(mxEvent.MAXIMIZE,e),mxLog.window.addListener(mxEvent.NORMALIZE,e),mxLog.textarea.style.height="92px"}}},info:function(){mxLog.writeln(mxUtils.toString(navigator))},addButton:function(e,t){var n=document.createElement("button");mxUtils.write(n,e),mxEvent.addListener(n,"click",t),mxLog.td.appendChild(n)},isVisible:function(){return null!=mxLog.window&&mxLog.window.isVisible()},show:function(){mxLog.setVisible(!0)},setVisible:function(e){null==mxLog.window&&mxLog.init(),null!=mxLog.window&&mxLog.window.setVisible(e)},enter:function(e){if(mxLog.TRACE)return mxLog.writeln("Entering "+e),(new Date).getTime()},leave:function(e,t){if(mxLog.TRACE){var n=0!=t?" ("+((new Date).getTime()-t)+" ms)":"";mxLog.writeln("Leaving "+e+n)}},debug:function(){mxLog.DEBUG&&mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var e="",t=0;t<arguments.length;t++)e+=arguments[t],t<arguments.length-1&&(e+=" ");null!=mxLog.textarea?(mxLog.textarea.value+=e,0<=navigator.userAgent.indexOf("Presto/2.5")&&(mxLog.textarea.style.visibility="hidden",mxLog.textarea.style.visibility="visible"),mxLog.textarea.scrollTop=mxLog.textarea.scrollHeight):mxLog.buffer+=e},writeln:function(){for(var e="",t=0;t<arguments.length;t++)e+=arguments[t],t<arguments.length-1&&(e+=" ");mxLog.write(e+"\n")}},mxObjectIdentity={FIELD_NAME:"mxObjectId",counter:0,get:function(e){if("object"==typeof e&&null==e[mxObjectIdentity.FIELD_NAME]){var t=mxUtils.getFunctionName(e.constructor);e[mxObjectIdentity.FIELD_NAME]=t+"#"+mxObjectIdentity.counter++}return e[mxObjectIdentity.FIELD_NAME]},clear:function(e){"object"==typeof e&&delete e[mxObjectIdentity.FIELD_NAME]}};mxDictionary.prototype.map=null,mxDictionary.prototype.clear=function(){this.map={}},mxDictionary.prototype.get=function(e){return e=mxObjectIdentity.get(e),this.map[e]},mxDictionary.prototype.put=function(e,t){var n=mxObjectIdentity.get(e),a=this.map[n];return this.map[n]=t,a},mxDictionary.prototype.remove=function(e){e=mxObjectIdentity.get(e);var t=this.map[e];return delete this.map[e],t},mxDictionary.prototype.getKeys=function(){var e,t=[];for(e in this.map)t.push(e);return t},mxDictionary.prototype.getValues=function(){var e,t=[];for(e in this.map)t.push(this.map[e]);return t},mxDictionary.prototype.visit=function(e){for(var t in this.map)e(t,this.map[t])};var mxResources={resources:[],extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(e){return null==mxClient.languages||0<=mxUtils.indexOf(mxClient.languages,e)},getDefaultBundle:function(e,t){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(t)?e+mxResources.extension:null},getSpecialBundle:function(e,t){if(null==mxClient.languages||!this.isLanguageSupported(t)){var n=t.indexOf("-");0<n&&(t=t.substring(0,n))}return mxResources.loadSpecialBundle&&mxResources.isLanguageSupported(t)&&t!=mxClient.defaultLanguage?e+"_"+t+mxResources.extension:null},add:function(e,t){if((t=null!=t?t:mxClient.language.toLowerCase())!=mxConstants.NONE){var n=mxResources.getDefaultBundle(e,t);if(null!=n)try{var a=mxUtils.load(n);a.isReady()&&mxResources.parse(a.getText())}catch(e){}if(null!=(n=mxResources.getSpecialBundle(e,t)))try{(a=mxUtils.load(n)).isReady()&&mxResources.parse(a.getText())}catch(e){}}},parse:function(e){if(null!=e){e=e.split("\n");for(var t=0;t<e.length;t++)if("#"!=e[t].charAt(0)){var n=e[t].indexOf("=");if(0<n){var a=e[t].substring(0,n),i=e[t].length;13==e[t].charCodeAt(i-1)&&i--,n=e[t].substring(n+1,i),this.resourcesEncoded?(n=n.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[a]=unescape(n)):mxResources.resources[a]=n}}}},get:function(e,t,n){if(null==(e=mxResources.resources[e])&&(e=n),null!=e&&null!=t){n=[];for(var a=null,i=0;i<e.length;i++){var o=e.charAt(i);"{"==o?a="":null!=a&&"}"==o?(0<=(a=parseInt(a)-1)&&a<t.length&&n.push(t[a]),a=null):null!=a?a+=o:n.push(o)}e=n.join("")}return e}};mxPoint.prototype.x=null,mxPoint.prototype.y=null,mxPoint.prototype.equals=function(e){return e.x==this.x&&e.y==this.y},mxPoint.prototype.clone=function(){return mxUtils.clone(this)},mxRectangle.prototype=new mxPoint,mxRectangle.prototype.constructor=mxRectangle,mxRectangle.prototype.width=null,mxRectangle.prototype.height=null,mxRectangle.prototype.setRect=function(e,t,n,a){this.x=e,this.y=t,this.width=n,this.height=a},mxRectangle.prototype.getCenterX=function(){return this.x+this.width/2},mxRectangle.prototype.getCenterY=function(){return this.y+this.height/2},mxRectangle.prototype.add=function(e){if(null!=e){var t=Math.min(this.x,e.x),n=Math.min(this.y,e.y),a=Math.max(this.x+this.width,e.x+e.width);e=Math.max(this.y+this.height,e.y+e.height),this.x=t,this.y=n,this.width=a-t,this.height=e-n}},mxRectangle.prototype.grow=function(e){this.x-=e,this.y-=e,this.width+=2*e,this.height+=2*e},mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)},mxRectangle.prototype.equals=function(e){return e.x==this.x&&e.y==this.y&&e.width==this.width&&e.height==this.height};var mxEffects={animateChanges:function(e,t,n){var a=0,i=function(){for(var s=!1,r=0;r<t.length;r++){var l=t[r];if(l instanceof mxGeometryChange||l instanceof mxTerminalChange||l instanceof mxValueChange||l instanceof mxChildChange||l instanceof mxStyleChange){var d=e.getView().getState(l.cell||l.child,!1);if(null!=d)if(s=!0,l.constructor!=mxGeometryChange||e.model.isEdge(l.cell))mxUtils.setOpacity(d.shape.node,100*a/10);else{var c=e.getView().scale,m=(l.geometry.x-l.previous.x)*c,u=(l.geometry.y-l.previous.y)*c,p=(l.geometry.width-l.previous.width)*c,c=(l.geometry.height-l.previous.height)*c;0==a?(d.x-=m,d.y-=u,d.width-=p,d.height-=c):(d.x+=m/10,d.y+=u/10,d.width+=p/10,d.height+=c/10),e.cellRenderer.redraw(d),mxEffects.cascadeOpacity(e,l.cell,100*a/10)}}}10>a&&s?(a++,window.setTimeout(i,o)):null!=n&&n()},o=30;i()},cascadeOpacity:function(e,t,n){for(var a=e.model.getChildCount(t),i=0;i<a;i++){var o=e.model.getChildAt(t,i),s=e.getView().getState(o);null!=s&&(mxUtils.setOpacity(s.shape.node,n),mxEffects.cascadeOpacity(e,o,n))}if(null!=(t=e.model.getEdges(t)))for(i=0;i<t.length;i++)null!=(a=e.getView().getState(t[i]))&&mxUtils.setOpacity(a.shape.node,n)},fadeOut:function(e,t,n,a,i,o){a=a||40,i=i||30;var s=t||100;if(mxUtils.setOpacity(e,s),o||null==o){var r=function(){s=Math.max(s-a,0),mxUtils.setOpacity(e,s),0<s?window.setTimeout(r,i):(e.style.visibility="hidden",n&&e.parentNode&&e.parentNode.removeChild(e))};window.setTimeout(r,i)}else e.style.visibility="hidden",n&&e.parentNode&&e.parentNode.removeChild(e)}},mxUtils={errorResource:"none"!=mxClient.language?"error":"",closeResource:"none"!=mxClient.language?"close":"",errorImage:mxClient.imageBasePath+"/error.gif",removeCursors:function(e){if(null!=e.style&&(e.style.cursor=""),null!=(e=e.childNodes))for(var t=e.length,n=0;n<t;n+=1)mxUtils.removeCursors(e[n])},getCurrentStyle:function(){return mxClient.IS_IE?function(e){return null!=e?e.currentStyle:null}:function(e){return null!=e?window.getComputedStyle(e,""):null}}(),hasScrollbars:function(e){return null!=(e=mxUtils.getCurrentStyle(e))&&("scroll"==e.overflow||"auto"==e.overflow)},bind:function(e,t){return function(){return t.apply(e,arguments)}},eval:function(a){var b=null;if(0<=a.indexOf("function"))try{eval("var _mxJavaScriptExpression="+a),b=_mxJavaScriptExpression,_mxJavaScriptExpression=null}catch(e){mxLog.warn(e.message+" while evaluating "+a)}else try{b=eval(a)}catch(e){mxLog.warn(e.message+" while evaluating "+a)}return b},findNode:function(e,t,n){var a=e.getAttribute(t);if(null!=a&&a==n)return e;for(e=e.firstChild;null!=e;){if(null!=(a=mxUtils.findNode(e,t,n)))return a;e=e.nextSibling}return null},findNodeByAttribute:function(){return 9<=document.documentMode?function(e,t,n){var a=null;if(null!=e)if(e.nodeType==mxConstants.NODETYPE_ELEMENT&&e.getAttribute(t)==n)a=e;else for(e=e.firstChild;null!=e&&null==a;)a=mxUtils.findNodeByAttribute(e,t,n),e=e.nextSibling;return a}:mxClient.IS_IE?function(e,t,n){return null==e?null:e.ownerDocument.selectSingleNode("//*[@"+t+"='"+n+"']")}:function(e,t,n){return null==e?null:e.ownerDocument.evaluate("//*[@"+t+"='"+n+"']",e.ownerDocument,null,XPathResult.ANY_TYPE,null).iterateNext()}}(),getFunctionName:function(e){n=null;if(null!=e)if(null!=e.name)n=e.name;else{for(e=e.toString(),n=9;" "==e.charAt(n);)n++;var t=e.indexOf("(",n),n=e.substring(n,t)}return n},indexOf:function(e,t){if(null!=e&&null!=t)for(var n=0;n<e.length;n++)if(e[n]==t)return n;return-1},remove:function(e,t){var n=null;if("object"==typeof t)for(var a=mxUtils.indexOf(t,e);0<=a;)t.splice(a,1),n=e,a=mxUtils.indexOf(t,e);for(var i in t)t[i]==e&&(delete t[i],n=e);return n},isNode:function(e,t,n,a){return!(null==e||isNaN(e.nodeType)||null!=t&&e.nodeName.toLowerCase()!=t.toLowerCase())&&(null==n||e.getAttribute(n)==a)},getChildNodes:function(e,t){t=t||mxConstants.NODETYPE_ELEMENT;for(var n=[],a=e.firstChild;null!=a;)a.nodeType==t&&n.push(a),a=a.nextSibling;return n},createXmlDocument:function(){var e=null;return document.implementation&&document.implementation.createDocument?e=document.implementation.createDocument("","",null):window.ActiveXObject&&(e=new ActiveXObject("Microsoft.XMLDOM")),e},parseXml:function(){return mxClient.IS_IE&&(void 0===document.documentMode||9>document.documentMode)?function(e){var t=mxUtils.createXmlDocument();return t.async="false",t.loadXML(e),t}:function(e){return(new DOMParser).parseFromString(e,"text/xml")}}(),clearSelection:function(){return document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:void 0}(),getPrettyXml:function(e,t,n){var a=[];if(null!=e)if(t=t||"  ",n=n||"",e.nodeType==mxConstants.NODETYPE_TEXT)a.push(e.nodeValue);else{a.push(n+"<"+e.nodeName);var i=e.attributes;if(null!=i)for(var o=0;o<i.length;o++){var s=mxUtils.htmlEntities(i[o].nodeValue);a.push(" "+i[o].nodeName+'="'+s+'"')}if(null!=(i=e.firstChild)){for(a.push(">\n");null!=i;)a.push(mxUtils.getPrettyXml(i,t,n+t)),i=i.nextSibling;a.push(n+"</"+e.nodeName+">\n")}else a.push("/>\n")}return a.join("")},removeWhitespace:function(e,t){for(var n=t?e.previousSibling:e.nextSibling;null!=n&&n.nodeType==mxConstants.NODETYPE_TEXT;){var a=t?n.previousSibling:n.nextSibling,i=mxUtils.getTextContent(n);0==mxUtils.trim(i).length&&n.parentNode.removeChild(n),n=a}},htmlEntities:function(e,t){return e=(e||"").replace(/&/g,"&amp;"),e=e.replace(/"/g,"&quot;"),e=e.replace(/\'/g,"&#39;"),e=e.replace(/</g,"&lt;"),e=e.replace(/>/g,"&gt;"),(null==t||t)&&(e=e.replace(/\n/g,"&#xa;")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,t){var n="";return null!=e&&(n=e.xml,n=null==n?e.innerHTML?e.innerHTML:(new XMLSerializer).serializeToString(e):n.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n")),n=n.replace(/\n/g,t||"&#xa;")},getTextContent:function(e){var t="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),t=e.nodeValue||""),t},getInnerHtml:function(){return mxClient.IS_IE?function(e){return null!=e?e.innerHTML:""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""}}(),getOuterHtml:function(){return mxClient.IS_IE?function(e){if(null!=e){if(null!=e.outerHTML)return e.outerHTML;var t=[];t.push("<"+e.nodeName);var n=e.attributes;if(null!=n)for(var a=0;a<n.length;a++){var i=n[a].nodeValue;null!=i&&0<i.length&&(t.push(" "),t.push(n[a].nodeName),t.push('="'),t.push(i),t.push('"'))}return 0==e.innerHTML.length?t.push("/>"):(t.push(">"),t.push(e.innerHTML),t.push("</"+e.nodeName+">")),t.join("")}return""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""}}(),write:function(e,t){var n=e.ownerDocument.createTextNode(t);return null!=e&&e.appendChild(n),n},writeln:function(e,t){var n=e.ownerDocument.createTextNode(t);return null!=e&&(e.appendChild(n),e.appendChild(document.createElement("br"))),n},br:function(e,t){t=t||1;for(var n=null,a=0;a<t;a++)null!=e&&(n=e.ownerDocument.createElement("br"),e.appendChild(n));return n},button:function(e,t,n){return n=null!=n?n:document,n=n.createElement("button"),mxUtils.write(n,e),mxEvent.addListener(n,"click",function(e){t(e)}),n},para:function(e,t){var n=document.createElement("p");return mxUtils.write(n,t),null!=e&&e.appendChild(n),n},addTransparentBackgroundFilter:function(e){e.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(e,t,n,a,i){return mxUtils.link(e,t,function(){n.execute(a)},i)},linkInvoke:function(e,t,n,a,i,o){return mxUtils.link(e,t,function(){n[a](i)},o)},link:function(e,t,n,a){var i=document.createElement("span");return i.style.color="blue",i.style.textDecoration="underline",i.style.cursor="pointer",null!=a&&(i.style.paddingLeft=a+"px"),mxEvent.addListener(i,"click",n),mxUtils.write(i,t),null!=e&&e.appendChild(i),i},fit:function(e){var t=parseInt(e.offsetLeft),n=parseInt(e.offsetWidth),a=document.body,i=document.documentElement,o=(a.scrollLeft||i.scrollLeft)+(a.clientWidth||i.clientWidth);t+n>o&&(e.style.left=Math.max(a.scrollLeft||i.scrollLeft,o-n)+"px"),(t=parseInt(e.offsetTop))+(n=parseInt(e.offsetHeight))>(o=(a.scrollTop||i.scrollTop)+Math.max(a.clientHeight||0,i.clientHeight))&&(e.style.top=Math.max(a.scrollTop||i.scrollTop,o-n)+"px")},open:function(e){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return mxUtils.alert("Permission to read file denied."),""}var t=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);return t.initWithPath(e),t.exists()?((e=Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream)).init(t,1,4,null),(t=Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream)).init(e),t.read(t.available())):(mxUtils.alert("File not found."),"")}return t=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1),e=t.readAll(),t.close(),e},save:function(e,t){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return void mxUtils.alert("Permission to write file denied.")}var n=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);n.initWithPath(e),n.exists()||n.create(0,420);var a=Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);a.init(n,34,4,null),a.write(t,t.length),a.flush(),a.close()}else(n=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile(e,!0)).Write(t),n.Close()},saveAs:function(e){var t=document.createElement("iframe");t.setAttribute("src",""),t.style.visibility="hidden",document.body.appendChild(t);try{if(mxClient.IS_NS){var n=t.contentDocument;n.open(),n.write(e),n.close();try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),t.focus(),saveDocument(n)}catch(e){mxUtils.alert("Permission to save document denied.")}}else(n=t.contentWindow.document).write(e),n.execCommand("SaveAs",!1,document.location)}finally{document.body.removeChild(t)}},copy:function(e){if(window.clipboardData)window.clipboardData.setData("Text",e);else{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");var t=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);if(t){var n=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);if(n){n.addDataFlavor("text/unicode");var a=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);a.data=e,n.setTransferData("text/unicode",a,2*e.length),t.setData(n,null,Components.interfaces.nsIClipboard.kGlobalClipboard)}}}},load:function(e){return(e=new mxXmlRequest(e,null,"GET",!1)).send(),e},get:function(e,t,n){return new mxXmlRequest(e,null,"GET").send(t,n)},post:function(e,t,n,a){return new mxXmlRequest(e,t).send(n,a)},submit:function(e,t,n,a){return new mxXmlRequest(e,t).simulate(n,a)},loadInto:function(e,t,n){mxClient.IS_IE?t.onreadystatechange=function(){4==t.readyState&&n()}:t.addEventListener("load",n,!1),t.load(e)},getValue:function(e,t,n){return null==(e=null!=e?e[t]:null)&&(e=n),e},getNumber:function(e,t,n){return null==(e=null!=e?e[t]:null)&&(e=n||0),Number(e)},getColor:function(e,t,n){return e=null!=e?e[t]:null,null==e?e=n:e==mxConstants.NONE&&(e=null),e},clone:function(e,t,n){n=null!=n&&n;i=null;if(null!=e&&"function"==typeof e.constructor){var a,i=new e.constructor;for(a in e)a!=mxObjectIdentity.FIELD_NAME&&(null==t||0>mxUtils.indexOf(t,a))&&(i[a]=n||"object"!=typeof e[a]?e[a]:mxUtils.clone(e[a]))}return i},equalPoints:function(e,t){if(null==e&&null!=t||null!=e&&null==t||null!=e&&null!=t&&e.length!=t.length)return!1;if(null!=e&&null!=t)for(var n=0;n<e.length;n++)if(e[n]==t[n]||null!=e[n]&&!e[n].equals(t[n]))return!1;return!0},equalEntries:function(e,t){if(null==e&&null!=t||null!=e&&null==t||null!=e&&null!=t&&e.length!=t.length)return!1;if(null!=e&&null!=t)for(var n in e)if(e[n]!=t[n])return!1;return!0},extend:function(e,t){var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e},toString:function(e){var t,n="";for(t in e)try{if(null==e[t])n+=t+" = [null]\n";else if("function"==typeof e[t])n+=t+" => [Function]\n";else if("object"==typeof e[t])var a=mxUtils.getFunctionName(e[t].constructor),n=n+(t+" => [")+a+"]\n";else n+=t+" = "+e[t]+"\n"}catch(e){n+=t+"="+e.message}return n},toRadians:function(e){return Math.PI*e/180},arcToCurves:function(e,t,n,a,i,o,s,r,l){if(r-=e,l-=t,0===n||0===a)return b;n=Math.abs(n),a=Math.abs(a);var d=-r/2,c=-l/2,m=Math.cos(i*Math.PI/180);i=m*d+(b=Math.sin(i*Math.PI/180))*c;d=-1*b*d+m*c;1<(v=(c=i*i)/(h=n*n)+(g=d*d)/(E=a*a))?(n*=Math.sqrt(v),a*=Math.sqrt(v),o=0):(v=1,o===s&&(v=-1),o=v*Math.sqrt((h*E-h*g-E*c)/(h*g+E*c))),r=m*(c=o*n*d/a)-b*(g=-1*o*a*i/n)+r/2,l=b*c+m*g+l/2,o=0<=(h=Math.atan2((d-g)/a,(i-c)/n)-Math.atan2(0,1))?h:2*Math.PI+h,i=0<=(h=Math.atan2((-d-g)/a,(-i-c)/n)-Math.atan2((d-g)/a,(i-c)/n))?h:2*Math.PI+h,0==s&&0<i?i-=2*Math.PI:0!=s&&0>i&&(i+=2*Math.PI),s=2*i/Math.PI,i/=s=Math.ceil(0>s?-1*s:s),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*n,m*=a,n*=b,a*=b;for(var u=Math.cos(o),p=Math.sin(o),g=-d*(c*p+a*u),h=-d*(n*p-m*u),v=E=0,b=[],f=0;f<s;++f){o+=i;var E=c*(u=Math.cos(o))-a*(p=Math.sin(o))+r,v=n*u+m*p+l,y=-d*(c*p+a*u),u=-d*(n*p-m*u);b[p=6*f]=Number(g+e),b[p+1]=Number(h+t),b[p+2]=Number(E-y+e),b[p+3]=Number(v-u+t),b[p+4]=Number(E+e),b[p+5]=Number(v+t),g=E+y,h=v+u}return b},getBoundingBox:function(e,t){a=null;if(null!=e&&null!=t&&0!=t){var n=mxUtils.toRadians(t),a=Math.cos(n),i=Math.sin(n),o=new mxPoint(e.x+e.width/2,e.y+e.height/2),s=new mxPoint(e.x,e.y),r=new mxPoint((n=new mxPoint(e.x+e.width,e.y)).x,e.y+e.height),l=new mxPoint(e.x,r.y),s=mxUtils.getRotatedPoint(s,a,i,o),n=mxUtils.getRotatedPoint(n,a,i,o),r=mxUtils.getRotatedPoint(r,a,i,o),l=mxUtils.getRotatedPoint(l,a,i,o);(a=new mxRectangle(s.x,s.y,0,0)).add(new mxRectangle(n.x,n.y,0,0)),a.add(new mxRectangle(r.x,r.y,0,0)),a.add(new mxRectangle(l.x,l.y,0,0))}return a},getRotatedPoint:function(e,t,n,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return e=e.y-a.y,new mxPoint(i*t-e*n+a.x,e*t+i*n+a.y)},getPortConstraints:function(e,t,n,a){return null==(e=mxUtils.getValue(e.style,mxConstants.STYLE_PORT_CONSTRAINT,null))?a:(a=e.toString(),e=mxConstants.DIRECTION_MASK_NONE,0<=a.indexOf(mxConstants.DIRECTION_NORTH)&&(e|=mxConstants.DIRECTION_MASK_NORTH),0<=a.indexOf(mxConstants.DIRECTION_WEST)&&(e|=mxConstants.DIRECTION_MASK_WEST),0<=a.indexOf(mxConstants.DIRECTION_SOUTH)&&(e|=mxConstants.DIRECTION_MASK_SOUTH),0<=a.indexOf(mxConstants.DIRECTION_EAST)&&(e|=mxConstants.DIRECTION_MASK_EAST),e)},reversePortConstraints:function(e){var t=0,t=(t=(t=(e&mxConstants.DIRECTION_MASK_WEST)<<3)|(e&mxConstants.DIRECTION_MASK_NORTH)<<1)|(e&mxConstants.DIRECTION_MASK_SOUTH)>>1;return t|=(e&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(e,t,n){var a=-1;if(0<e.absolutePoints.length)for(var i=e.absolutePoints[0],o=null,s=1;s<e.absolutePoints.length;s++){var r=e.absolutePoints[s],i=mxUtils.ptSegDistSq(i.x,i.y,r.x,r.y,t,n);(null==o||i<o)&&(o=i,a=s-1),i=r}return a},rectangleIntersectsSegment:function(e,t,n){var a=e.y,i=e.x,o=a+e.height,s=i+e.width;e=t.x;var r=n.x;if(t.x>n.x&&(e=n.x,r=t.x),r>s&&(r=s),e<i&&(e=i),e>r)return!1;var i=t.y,s=n.y,l=n.x-t.x;return 1e-7<Math.abs(l)&&(n=(n.y-t.y)/l,t=t.y-n*t.x,i=n*e+t,s=n*r+t),i>s&&(t=s,s=i,i=t),s>o&&(s=o),i<a&&(i=a),!(i>s)},contains:function(e,t,n){return e.x<=t&&e.x+e.width>=t&&e.y<=n&&e.y+e.height>=n},intersects:function(e,t){var n=e.width,a=e.height,i=t.width,o=t.height;if(0>=i||0>=o||0>=n||0>=a)return!1;var s=e.x,r=e.y,l=t.x,d=t.y,o=o+d,n=n+s,a=a+r;return((i=i+l)<l||i>s)&&(o<d||o>r)&&(n<s||n>l)&&(a<r||a>d)},intersectsHotspot:function(e,t,n,a,i,o){if(a=null!=a?a:1,i=null!=i?i:0,o=null!=o?o:0,0<a){var s=e.getCenterX(),r=e.getCenterY(),l=e.width,d=e.height,c=mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE)*e.view.scale;return 0<c&&(mxUtils.getValue(e.style,mxConstants.STYLE_HORIZONTAL,!0)?(r=e.y+c/2,d=c):(s=e.x+c/2,l=c)),l=Math.max(i,l*a),d=Math.max(i,d*a),0<o&&(l=Math.min(l,o),d=Math.min(d,o)),a=new mxRectangle(s-l/2,r-d/2,l,d),0!=(s=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(i=Math.cos(-s),o=Math.sin(-s),s=new mxPoint(e.getCenterX(),e.getCenterY()),e=mxUtils.getRotatedPoint(new mxPoint(t,n),i,o,s),t=e.x,n=e.y),mxUtils.contains(a,t,n)}return!0},getOffset:function(e,t){var n=0,a=0;if(null!=t&&t)var i=document.body,o=document.documentElement,n=n+(i.scrollLeft||o.scrollLeft),a=a+(i.scrollTop||o.scrollTop);for(;e.offsetParent;)n+=e.offsetLeft,a+=e.offsetTop,e=e.offsetParent;return new mxPoint(n,a)},getScrollOrigin:function(e){for(var t=document.body,n=document.documentElement,a=new mxPoint(t.scrollLeft||n.scrollLeft,t.scrollTop||n.scrollTop);null!=e&&e!=t&&e!=n;)!isNaN(e.scrollLeft)&&!isNaN(e.scrollTop)&&(a.x+=e.scrollLeft,a.y+=e.scrollTop),e=e.parentNode;return a},convertPoint:function(e,t,n){var a=mxUtils.getScrollOrigin(e);return e=mxUtils.getOffset(e),e.x-=a.x,e.y-=a.y,new mxPoint(t-e.x,n-e.y)},ltrim:function(e,t){return e.replace(RegExp("^["+(t||"\\s")+"]+","g"),"")},rtrim:function(e,t){return e.replace(RegExp("["+(t||"\\s")+"]+$","g"),"")},trim:function(e,t){return mxUtils.ltrim(mxUtils.rtrim(e,t),t)},isNumeric:function(e){return null!=e&&(null==e.length||0<e.length&&0>e.indexOf("0x")&&0>e.indexOf("0X"))&&!isNaN(e)},mod:function(e,t){return(e%t+t)%t},intersection:function(e,t,n,a,i,o,s,r){var l=(r-o)*(n-e)-(s-i)*(a-t);return s=((s-i)*(t-o)-(r-o)*(e-i))/l,i=((n-e)*(t-o)-(a-t)*(e-i))/l,0<=s&&1>=s&&0<=i&&1>=i?new mxPoint(e+s*(n-e),t+s*(a-t)):null},ptSegDistSq:function(e,t,n,a,i,o){return n-=e,a-=t,i-=e,o-=t,0>=i*n+o*a?n=0:(i=n-i,o=a-o,e=i*n+o*a,n=0>=e?0:e*e/(n*n+a*a)),0>(i=i*i+o*o-n)&&(i=0),i},relativeCcw:function(e,t,n,a,i,o){return n-=e,a-=t,i-=e,o-=t,0==(e=i*a-o*n)&&0<(e=i*n+o*a)&&0>(e=(i-n)*n+(o-a)*a)&&(e=0),0>e?-1:0<e?1:0},animateChanges:function(e,t){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(e,t,n){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(e,t,n,a,i,o){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(e,t){mxUtils.isVml(e)?e.style.filter=100<=t?null:"alpha(opacity="+t/5+")":mxClient.IS_IE&&(void 0===document.documentMode||9>document.documentMode)?e.style.filter=100<=t?null:"alpha(opacity="+t+")":e.style.opacity=t/100},createImage:function(e){var t=null;return mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?((t=document.createElement(mxClient.VML_PREFIX+":image")).setAttribute("src",e),t.style.borderStyle="none"):((t=document.createElement("img")).setAttribute("src",e),t.setAttribute("border","0")),t},sortCells:function(e,t){t=null==t||t;var n=new mxDictionary;return e.sort(function(e,a){var i=n.get(e);null==i&&(i=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),n.put(e,i));var o=n.get(a);return null==o&&(o=mxCellPath.create(a).split(mxCellPath.PATH_SEPARATOR),n.put(a,o)),i=mxCellPath.compare(i,o),0==i?0:0<i==t?1:-1}),e},getStylename:function(e){return null!=e&&0>(e=e.split(";")[0]).indexOf("=")?e:""},getStylenames:function(e){var t=[];if(null!=e){e=e.split(";");for(var n=0;n<e.length;n++)0>e[n].indexOf("=")&&t.push(e[n])}return t},indexOfStylename:function(e,t){if(null!=e&&null!=t)for(var n=e.split(";"),a=0,i=0;i<n.length;i++){if(n[i]==t)return a;a+=n[i].length+1}return-1},addStylename:function(e,t){return 0>mxUtils.indexOfStylename(e,t)&&(null==e?e="":0<e.length&&";"!=e.charAt(e.length-1)&&(e+=";"),e+=t),e},removeStylename:function(e,t){var n=[];if(null!=e)for(var a=e.split(";"),i=0;i<a.length;i++)a[i]!=t&&n.push(a[i]);return n.join(";")},removeAllStylenames:function(e){var t=[];if(null!=e){e=e.split(";");for(var n=0;n<e.length;n++)0<=e[n].indexOf("=")&&t.push(e[n])}return t.join(";")},setCellStyles:function(e,t,n,a){if(null!=t&&0<t.length){e.beginUpdate();try{for(var i=0;i<t.length;i++)if(null!=t[i]){var o=mxUtils.setStyle(e.getStyle(t[i]),n,a);e.setStyle(t[i],o)}}finally{e.endUpdate()}}},setStyle:function(e,t,n){var a=null!=n&&(void 0===n.length||0<n.length);if(null==e||0==e.length)a&&(e=t+"="+n);else{var i=e.indexOf(t+"=");0>i?a&&(a=";"==e.charAt(e.length-1)?"":";",e=e+a+t+"="+n):(t=a?t+"="+n:"",n=e.indexOf(";",i),a||n++,e=e.substring(0,i)+t+(n>i?e.substring(n):""))}return e},setCellStyleFlags:function(e,t,n,a,i){if(null!=t&&0<t.length){e.beginUpdate();try{for(var o=0;o<t.length;o++)if(null!=t[o]){var s=mxUtils.setStyleFlag(e.getStyle(t[o]),n,a,i);e.setStyle(t[o],s)}}finally{e.endUpdate()}}},setStyleFlag:function(e,t,n,a){if(null==e||0==e.length)e=a||null==a?t+"="+n:t+"=0";else{var i=e.indexOf(t+"=");if(0>i)i=";"==e.charAt(e.length-1)?"":";",e=a||null==a?e+i+t+"="+n:e+i+t+"=0";else{var o=e.indexOf(";",i),s="",s=0>o?e.substring(i+t.length+1):e.substring(i+t.length+1,o),s=null==a?parseInt(s)^n:a?parseInt(s)|n:parseInt(s)&~n;e=e.substring(0,i)+t+"="+s+(0<=o?e.substring(o):"")}}return e},getAlignmentAsPoint:function(e,t){var n=0,a=0;return e==mxConstants.ALIGN_CENTER?n=-.5:e==mxConstants.ALIGN_RIGHT&&(n=-1),t==mxConstants.ALIGN_MIDDLE?a=-.5:t==mxConstants.ALIGN_BOTTOM&&(a=-1),new mxPoint(n,a)},getSizeForString:function(e,t,n){t=null!=t?t:mxConstants.DEFAULT_FONTSIZE,n=null!=n?n:mxConstants.DEFAULT_FONTFAMILY;var a=document.createElement("div");return a.style.fontFamily=n,a.style.fontSize=Math.round(t)+"px",a.style.lineHeight=Math.round(t*mxConstants.LINE_HEIGHT)+"px",a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,document.body.appendChild(a),e=new mxRectangle(0,0,a.offsetWidth,a.offsetHeight),document.body.removeChild(a),e},getViewXml:function(e,t,n,a,i){a=null!=a?a:0,i=null!=i?i:0,t=null!=t?t:1,null==n&&(n=[e.getModel().getRoot()]);var o=e.getView(),s=null,r=o.isEventsEnabled();o.setEventsEnabled(!1);var l=o.drawPane,d=o.overlayPane;e.dialect==mxConstants.DIALECT_SVG?(o.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),o.canvas.appendChild(o.drawPane),o.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(o.drawPane=o.drawPane.cloneNode(!1),o.canvas.appendChild(o.drawPane),o.overlayPane=o.overlayPane.cloneNode(!1)),o.canvas.appendChild(o.overlayPane);var c=o.getTranslate();o.translate=new mxPoint(a,i),t=new mxTemporaryCellStates(e.getView(),t,n);try{s=(new mxCodec).encode(e.getView())}finally{t.destroy(),o.translate=c,o.canvas.removeChild(o.drawPane),o.canvas.removeChild(o.overlayPane),o.drawPane=l,o.overlayPane=d,o.setEventsEnabled(r)}return s},getScaleForPageCount:function(e,t,n,a){if(1>e)return 1;n=null!=n?n:mxConstants.PAGE_FORMAT_A4_PORTRAIT,a=null!=a?a:0;var i=n.width-2*a;n=n.height-2*a,a=t.getGraphBounds().clone(),t=t.getView().getScale(),a.width/=t,a.height/=t,n=(t=a.width)/a.height/(i/n),a=Math.sqrt(e);var o=Math.sqrt(n);if(n=a*o,a/=o,1>n&&a>e){s=a/e;a=e,n/=s}for(1>a&&n>e&&(s=n/e,n=e,a/=s),s=Math.ceil(n)*Math.ceil(a),o=0;s>e;){var s=Math.floor(n)/n,r=Math.floor(a)/a;if(1==s&&(s=Math.floor(n-1)/n),1==r&&(r=Math.floor(a-1)/a),s=s>r?s:r,n*=s,a*=s,s=Math.ceil(n)*Math.ceil(a),10<++o)break}return i*n/t*.99999},show:function(e,t,n,a){if(n=null!=n?n:0,a=null!=a?a:0,null==t?t=window.open().document:t.open(),n=-(i=e.getGraphBounds()).x+n,a=-i.y+a,mxClient.IS_IE){for(var i="<html><head>",o=document.getElementsByTagName("base"),s=0;s<o.length;s++)i+=o[s].outerHTML;for(i+="<style>",s=0;s<document.styleSheets.length;s++)try{i+=document.styleSheets(s).cssText}catch(e){}i+="</style></head>",i+="<body>",i+=e.container.innerHTML,i+="</body>",i+="<html>",t.writeln(i),t.close(),null!=(e=t.body.getElementsByTagName("DIV")[0])&&(e.style.position="absolute",e.style.left=n+"px",e.style.top=a+"px")}else{for(t.writeln("<html"),t.writeln("<head>"),o=document.getElementsByTagName("base"),s=0;s<o.length;s++)t.writeln(mxUtils.getOuterHtml(o[s]));for(o=document.getElementsByTagName("link"),s=0;s<o.length;s++)t.writeln(mxUtils.getOuterHtml(o[s]));for(o=document.getElementsByTagName("style"),s=0;s<o.length;s++)t.writeln(mxUtils.getOuterHtml(o[s]));for(t.writeln("</head>"),t.writeln("</html>"),t.close(),null==t.body&&t.documentElement.appendChild(t.createElement("body")),t.body.style.overflow="auto",e=e.container.firstChild;null!=e;)s=e.cloneNode(!0),t.body.appendChild(s),e=e.nextSibling;null!=(e=t.getElementsByTagName("g")[0])&&(e.setAttribute("transform","translate("+n+","+a+")"),(n=e.ownerSVGElement).setAttribute("width",i.width+Math.max(i.x,0)+3),n.setAttribute("height",i.height+Math.max(i.y,0)+3))}return mxUtils.removeCursors(t.body),t},printScreen:function(e){var t=window.open();mxUtils.show(e,t.document),e=function(){t.focus(),t.print(),t.close()},mxClient.IS_GC?t.setTimeout(e,500):e()},popup:function(e,t){if(t){var n=document.createElement("div");n.style.overflow="scroll",n.style.width="636px",n.style.height="460px";var a=document.createElement("pre");a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),n.appendChild(a),(n=new mxWindow("Popup Window",n,document.body.clientWidth/2-320,(document.body.clientHeight||document.documentElement.clientHeight)/2-240,640,480,!1,!0)).setClosable(!0),n.setVisible(!0)}else mxClient.IS_NS?((n=window.open()).document.writeln("<pre>"+mxUtils.htmlEntities(e)+"</pre"),n.document.close()):(n=window.open(),a=n.document.createElement("pre"),a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g,"&nbsp;"),n.document.body.appendChild(a))},alert:function(e){alert(e)},prompt:function(e,t){return prompt(e,t)},confirm:function(e){return confirm(e)},error:function(e,t,n,a){var i=document.createElement("div");i.style.padding="20px";var o=document.createElement("img");o.setAttribute("src",a||mxUtils.errorImage),o.setAttribute("valign","bottom"),o.style.verticalAlign="middle",i.appendChild(o),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),mxUtils.write(i,e),e=document.body.clientWidth,a=document.body.clientHeight||document.documentElement.clientHeight;var s=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,i,(e-t)/2,a/4,t,null,!1,!0);return n&&(mxUtils.br(i),t=document.createElement("p"),n=document.createElement("button"),mxClient.IS_IE?n.style.cssText="float:right":n.setAttribute("style","float:right"),mxEvent.addListener(n,"click",function(e){s.destroy()}),mxUtils.write(n,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),t.appendChild(n),i.appendChild(t),mxUtils.br(i),s.setClosable(!0)),s.setVisible(!0),s},makeDraggable:function(e,t,n,a,i,o,s,r,l,d){return e=new mxDragSource(e,n),e.dragOffset=new mxPoint(null!=i?i:0,null!=o?o:mxConstants.TOOLTIP_VERTICAL_OFFSET),e.autoscroll=s,e.setGuidesEnabled(!1),null!=l&&(e.highlightDropTargets=l),null!=d&&(e.getDropTarget=d),e.getGraphForEvent=function(e){return"function"==typeof t?t(e):t},null!=a&&(e.createDragElement=function(){return a.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var t=a.cloneNode(!0),n=parseInt(t.style.width),i=parseInt(t.style.height);return t.style.width=Math.round(n*e.view.scale)+"px",t.style.height=Math.round(i*e.view.scale)+"px",t})),e}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",HIGHLIGHT_STROKEWIDTH:3,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_BEND_HANDLE:"pointer",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:7,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,LINE_HEIGHT:1.2,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:10,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,826,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,826),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_OPACITY:"opacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_SMOOTH:"smooth",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_LOOP:"loopStyle",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_SHADOW:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_BLOCK:"block",ARROW_OPEN:"open",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};mxEventObject.prototype.name=null,mxEventObject.prototype.properties=null,mxEventObject.prototype.consumed=!1,mxEventObject.prototype.getName=function(){return this.name},mxEventObject.prototype.getProperties=function(){return this.properties},mxEventObject.prototype.getProperty=function(e){return this.properties[e]},mxEventObject.prototype.isConsumed=function(){return this.consumed},mxEventObject.prototype.consume=function(){this.consumed=!0},mxMouseEvent.prototype.consumed=!1,mxMouseEvent.prototype.evt=null,mxMouseEvent.prototype.graphX=null,mxMouseEvent.prototype.graphY=null,mxMouseEvent.prototype.state=null,mxMouseEvent.prototype.getEvent=function(){return this.evt},mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)},mxMouseEvent.prototype.isSource=function(e){if(null!=e)for(var t=this.getSource();null!=t;){if(t==e.node)return!0;t=t.parentNode}return!1},mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())},mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())},mxMouseEvent.prototype.getGraphX=function(){return this.graphX},mxMouseEvent.prototype.getGraphY=function(){return this.graphY},mxMouseEvent.prototype.getState=function(){return this.state},mxMouseEvent.prototype.getCell=function(){var e=this.getState();return null!=e?e.cell:null},mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())},mxMouseEvent.prototype.isConsumed=function(){return this.consumed},mxMouseEvent.prototype.consume=function(e){(null!=e?e:1)&&this.evt.preventDefault&&this.evt.preventDefault(),this.evt.returnValue=!1,this.consumed=!0},mxEventSource.prototype.eventListeners=null,mxEventSource.prototype.eventsEnabled=!0,mxEventSource.prototype.eventSource=null,mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled},mxEventSource.prototype.setEventsEnabled=function(e){this.eventsEnabled=e},mxEventSource.prototype.getEventSource=function(){return this.eventSource},mxEventSource.prototype.setEventSource=function(e){this.eventSource=e},mxEventSource.prototype.addListener=function(e,t){null==this.eventListeners&&(this.eventListeners=[]),this.eventListeners.push(e),this.eventListeners.push(t)},mxEventSource.prototype.removeListener=function(e){if(null!=this.eventListeners)for(var t=0;t<this.eventListeners.length;)this.eventListeners[t+1]==e?this.eventListeners.splice(t,2):t+=2},mxEventSource.prototype.fireEvent=function(e,t){if(null!=this.eventListeners&&this.isEventsEnabled()){null==e&&(e=new mxEventObject),null==t&&(t=this.getEventSource()),null==t&&(t=this);for(var n=[t,e],a=0;a<this.eventListeners.length;a+=2){var i=this.eventListeners[a];(null==i||i==e.getName())&&this.eventListeners[a+1].apply(this,n)}}};var mxEvent={objects:[],addListener:function(){var e=function(e,t,n){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:t,f:n})};return window.addEventListener?function(t,n,a){t.addEventListener(n,a,!1),e(t,n,a)}:function(t,n,a){t.attachEvent("on"+n,a),e(t,n,a)}}(),removeListener:function(){var e=function(e,t,n){if(null!=e.mxListenerList){t=e.mxListenerList.length;for(var a=0;a<t;a++)if(e.mxListenerList[a].f==n){e.mxListenerList.splice(a,1);break}0==e.mxListenerList.length&&(e.mxListenerList=null)}};return window.removeEventListener?function(t,n,a){t.removeEventListener(n,a,!1),e(t,n,a)}:function(t,n,a){t.detachEvent("on"+n,a),e(t,n,a)}}(),removeAllListeners:function(e){var t=e.mxListenerList;if(null!=t)for(;0<t.length;){var n=t[0];mxEvent.removeListener(e,n.name,n.f)}},addGestureListeners:function(e,t,n,a){null!=t&&mxEvent.addListener(e,"mousedown",t),null!=n&&mxEvent.addListener(e,"mousemove",n),null!=a&&mxEvent.addListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=t&&mxEvent.addListener(e,"touchstart",t),null!=n&&mxEvent.addListener(e,"touchmove",n),null!=a&&mxEvent.addListener(e,"touchend",a))},removeGestureListeners:function(e,t,n,a){null!=t&&mxEvent.removeListener(e,"mousedown",t),null!=n&&mxEvent.removeListener(e,"mousemove",n),null!=a&&mxEvent.removeListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=t&&mxEvent.removeListener(e,"touchstart",t),null!=n&&mxEvent.removeListener(e,"touchmove",n),null!=a&&mxEvent.removeListener(e,"touchend",a))},redirectMouseEvents:function(e,t,n,a,i,o,s){var r=function(e){return"function"==typeof n?n(e):n};mxEvent.addGestureListeners(e,function(e){null!=a?a(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,r(e)))},function(e){null!=i?i(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,r(e)))},function(e){null!=o?o(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,r(e)))}),mxEvent.addListener(e,"dblclick",function(e){if(null!=s)s(e);else if(!mxEvent.isConsumed(e)){var n=r(e);t.dblClick(e,null!=n?n.cell:null)}})},release:function(e){if(null!=e&&(mxEvent.removeAllListeners(e),null!=(e=e.childNodes)))for(var t=e.length,n=0;n<t;n+=1)mxEvent.release(e[n])},addMouseWheelListener:function(e){if(null!=e){var t=function(t){null==t&&(t=window.event);var n=0;0!=(n=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?t.wheelDelta/120:-t.detail/2)&&e(t,0<n)};mxClient.IS_NS?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",t):mxEvent.addListener(document,"mousewheel",t)}},disableContextMenu:function(){return mxClient.IS_IE&&(void 0===document.documentMode||9>document.documentMode)?function(e){mxEvent.addListener(e,"contextmenu",function(){return!1})}:function(e){e.setAttribute("oncontextmenu","return false;")}}(),getSource:function(e){return null!=e.srcElement?e.srcElement:e.target},isConsumed:function(e){return null!=e.isConsumed&&e.isConsumed},isLeftMouseButton:function(e){return e.button==(mxClient.IS_IE&&(void 0===document.documentMode||9>document.documentMode)?1:0)},isRightMouseButton:function(e){return 2==e.button},isPopupTrigger:function(e){return mxEvent.isRightMouseButton(e)||mxEvent.isShiftDown(e)&&!mxEvent.isControlDown(e)},isShiftDown:function(e){return null!=e&&e.shiftKey},isAltDown:function(e){return null!=e&&e.altKey},isControlDown:function(e){return null!=e&&e.ctrlKey},isMetaDown:function(e){return null!=e&&e.metaKey},getMainEvent:function(e){return"touchstart"!=e.type&&"touchmove"!=e.type||null==e.touches||null==e.touches[0]?"touchend"==e.type&&null!=e.changedTouches&&null!=e.changedTouches[0]&&(e=e.changedTouches[0]):e=e.touches[0],e},getClientX:function(e){return mxEvent.getMainEvent(e).clientX},getClientY:function(e){return mxEvent.getMainEvent(e).clientY},consume:function(e,t,n){n=null==n||n,(null!=t?t:1)&&(e.preventDefault?(n&&e.stopPropagation(),e.preventDefault()):n&&(e.cancelBubble=!0)),e.isConsumed=!0,e.returnValue=!1},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",SUSPEND:"suspend",RESUME:"resume",MARK:"mark",SESSION:"session",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",CLICK:"click",DOUBLE_CLICK:"doubleClick",START:"start",RESET:"reset"};mxXmlRequest.prototype.url=null,mxXmlRequest.prototype.params=null,mxXmlRequest.prototype.method=null,mxXmlRequest.prototype.async=null,mxXmlRequest.prototype.binary=!1,mxXmlRequest.prototype.username=null,mxXmlRequest.prototype.password=null,mxXmlRequest.prototype.request=null,mxXmlRequest.prototype.isBinary=function(){return this.binary},mxXmlRequest.prototype.setBinary=function(e){this.binary=e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.isReady=function(){return 4==this.request.readyState},mxXmlRequest.prototype.getDocumentElement=function(){var e=this.getXml();return null!=e?e.documentElement:null},mxXmlRequest.prototype.getXml=function(){var e=this.request.responseXML;return(9<=document.documentMode||null==e||null==e.documentElement)&&(e=mxUtils.parseXml(this.request.responseText)),e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.getStatus=function(){return this.request.status},mxXmlRequest.prototype.create=function(){return window.XMLHttpRequest?function(){var e=new XMLHttpRequest;return this.isBinary()&&e.overrideMimeType&&e.overrideMimeType("text/plain; charset=x-user-defined"),e}:"undefined"!=typeof ActiveXObject?function(){return new ActiveXObject("Microsoft.XMLHTTP")}:void 0}(),mxXmlRequest.prototype.send=function(e,t){this.request=this.create(),null!=this.request&&(null!=e&&(this.request.onreadystatechange=mxUtils.bind(this,function(){this.isReady()&&(e(this),this.onreadystatechaange=null)})),this.request.open(this.method,this.url,this.async,this.username,this.password),this.setRequestHeaders(this.request,this.params),this.request.send(this.params))},mxXmlRequest.prototype.setRequestHeaders=function(e,t){null!=t&&e.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},mxXmlRequest.prototype.simulate=function(e,t){var n=null;(e=e||document)==document&&(n=window.onbeforeunload,window.onbeforeunload=null);var a=e.createElement("form");a.setAttribute("method",this.method),a.setAttribute("action",this.url),null!=t&&a.setAttribute("target",t),a.style.display="none",a.style.visibility="hidden";for(var i=0<this.params.indexOf("&")?this.params.split("&"):this.params.split(),o=0;o<i.length;o++){var s=i[o].indexOf("=");if(0<s){var r=i[o].substring(0,s),l=i[o].substring(s+1);(s=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"&#xa;"),r=e.createTextNode(l),s.appendChild(r),a.appendChild(s)}}e.body.appendChild(a),a.submit(),e.body.removeChild(a),null!=n&&(window.onbeforeunload=n)};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard.cells},cut:function(e,t){return t=mxClipboard.copy(e,t),mxClipboard.insertCount=0,mxClipboard.removeCells(e,t),t},removeCells:function(e,t){e.removeCells(t)},copy:function(e,t){t=t||e.getSelectionCells();var n=e.getExportableCells(t);return mxClipboard.insertCount=1,mxClipboard.cells=e.cloneCells(n),n},paste:function(e){if(null!=mxClipboard.cells){var t=e.getImportableCells(mxClipboard.cells),n=mxClipboard.insertCount*mxClipboard.STEPSIZE,a=e.getDefaultParent(),t=e.importCells(t,n,n,a);mxClipboard.insertCount++,e.setSelectionCells(t)}}};mxWindow.prototype=new mxEventSource,mxWindow.prototype.constructor=mxWindow,mxWindow.prototype.closeImage=mxClient.imageBasePath+"/close.gif",mxWindow.prototype.minimizeImage=mxClient.imageBasePath+"/minimize.gif",mxWindow.prototype.normalizeImage=mxClient.imageBasePath+"/normalize.gif",mxWindow.prototype.maximizeImage=mxClient.imageBasePath+"/maximize.gif",mxWindow.prototype.resizeImage=mxClient.imageBasePath+"/resize.gif",mxWindow.prototype.visible=!1,mxWindow.prototype.content=!1,mxWindow.prototype.minimumSize=new mxRectangle(0,0,50,40),mxWindow.prototype.title=!1,mxWindow.prototype.content=!1,mxWindow.prototype.destroyOnClose=!0,mxWindow.prototype.init=function(e,t,n,a,i){i=null!=i?i:"mxWindow",this.div=document.createElement("div"),this.div.className=i,this.div.style.left=e+"px",this.div.style.top=t+"px",this.table=document.createElement("table"),this.table.className=i,null!=n&&(mxClient.IS_IE||(this.div.style.width=n+"px"),this.table.style.width=n+"px"),null!=a&&(mxClient.IS_IE||(this.div.style.height=a+"px"),this.table.style.height=a+"px"),e=document.createElement("tbody"),t=document.createElement("tr"),this.title=document.createElement("td"),this.title.className=i+"Title",t.appendChild(this.title),e.appendChild(t),t=document.createElement("tr"),this.td=document.createElement("td"),this.td.className=i+"Pane",this.contentWrapper=document.createElement("div"),this.contentWrapper.className=i+"Pane",this.contentWrapper.style.width="100%",this.contentWrapper.appendChild(this.content),(mxClient.IS_IE||"DIV"!=this.content.nodeName.toUpperCase())&&(this.contentWrapper.style.height="100%"),this.td.appendChild(this.contentWrapper),t.appendChild(this.td),e.appendChild(t),this.table.appendChild(e),this.div.appendChild(this.table),i=mxUtils.bind(this,function(e){this.activate()}),mxEvent.addListener(this.title,"mousedown",i),mxEvent.addListener(this.table,"mousedown",i),mxClient.IS_TOUCH&&(mxEvent.addListener(this.title,"touchstart",i),mxEvent.addListener(this.table,"touchstart",i)),this.hide()},mxWindow.prototype.setTitle=function(e){for(var t=this.title.firstChild;null!=t;){var n=t.nextSibling;t.nodeType==mxConstants.NODETYPE_TEXT&&t.parentNode.removeChild(t),t=n}mxUtils.write(this.title,e||"")},mxWindow.prototype.setScrollable=function(e){0>navigator.userAgent.indexOf("Presto/2.5")&&(this.contentWrapper.style.overflow=e?"auto":"hidden")},mxWindow.prototype.activate=function(){if(mxWindow.activeWindow!=this){var e=null!=(e=mxUtils.getCurrentStyle(this.getElement()))?e.zIndex:3;if(mxWindow.activeWindow){var t=mxWindow.activeWindow.getElement();null!=t&&null!=t.style&&(t.style.zIndex=e)}t=mxWindow.activeWindow,this.getElement().style.zIndex=parseInt(e)+1,mxWindow.activeWindow=this,this.fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",t))}},mxWindow.prototype.getElement=function(){return this.div},mxWindow.prototype.fit=function(){mxUtils.fit(this.div)},mxWindow.prototype.isResizable=function(){return null!=this.resize&&"none"!=this.resize.style.display},mxWindow.prototype.setResizable=function(e){e?null==this.resize?(this.resize=document.createElement("img"),this.resize.style.position="absolute",this.resize.style.bottom="2px",this.resize.style.right="2px",this.resize.setAttribute("src",mxClient.imageBasePath+"/resize.gif"),this.resize.style.cursor="nw-resize",mxEvent.addGestureListeners(this.resize,mxUtils.bind(this,function(e){this.activate();var t=mxEvent.getClientX(e),n=mxEvent.getClientY(e),a=this.div.offsetWidth,i=this.div.offsetHeight,o=mxUtils.bind(this,function(e){var o=mxEvent.getClientX(e)-t,s=mxEvent.getClientY(e)-n;this.setSize(a+o,i+s),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),s=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.RESIZE_START,"event",e)),mxEvent.consume(e)}),null,null),this.div.appendChild(this.resize)):this.resize.style.display="inline":null!=this.resize&&(this.resize.style.display="none")},mxWindow.prototype.setSize=function(e,t){e=Math.max(this.minimumSize.width,e),t=Math.max(this.minimumSize.height,t),mxClient.IS_IE||(this.div.style.width=e+"px",this.div.style.height=t+"px"),this.table.style.width=e+"px",this.table.style.height=t+"px",mxClient.IS_IE||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")},mxWindow.prototype.setMinimizable=function(e){this.minimize.style.display=e?"":"none"},mxWindow.prototype.getMinimumSize=function(){return new mxRectangle(0,0,0,this.title.offsetHeight)},mxWindow.prototype.installMinimizeHandler=function(){this.minimize=document.createElement("img"),this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("align","right"),this.minimize.setAttribute("title","Minimize"),this.minimize.style.cursor="pointer",this.minimize.style.marginRight="1px",this.minimize.style.display="none",this.title.appendChild(this.minimize);var e=!1,t=null,n=null,a=mxUtils.bind(this,function(a){if(this.activate(),e)e=!1,this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=t,mxClient.IS_IE||(this.div.style.height=n),this.table.style.height=n,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",a));else{e=!0,this.minimize.setAttribute("src",this.normalizeImage),this.minimize.setAttribute("title","Normalize"),this.contentWrapper.style.display="none",t=this.maximize.style.display,this.maximize.style.display="none",n=this.table.style.height;var i=this.getMinimumSize();0<i.height&&(mxClient.IS_IE||(this.div.style.height=i.height+"px"),this.table.style.height=i.height+"px"),0<i.width&&(mxClient.IS_IE||(this.div.style.width=i.width+"px"),this.table.style.width=i.width+"px"),null!=this.resize&&(this.resize.style.visibility="hidden"),this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,"event",a))}mxEvent.consume(a)});mxEvent.addListener(this.minimize,"mousedown",a),mxClient.IS_TOUCH&&mxEvent.addListener(this.minimize,"touchstart",a)},mxWindow.prototype.setMaximizable=function(e){this.maximize.style.display=e?"":"none"},mxWindow.prototype.installMaximizeHandler=function(){this.maximize=document.createElement("img"),this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("align","right"),this.maximize.setAttribute("title","Maximize"),this.maximize.style.cursor="default",this.maximize.style.marginLeft="1px",this.maximize.style.cursor="pointer",this.maximize.style.display="none",this.title.appendChild(this.maximize);var e=!1,t=null,n=null,a=null,i=null,o=mxUtils.bind(this,function(o){if(this.activate(),"none"!=this.maximize.style.display){if(e)e=!1,this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.contentWrapper.style.display="",this.minimize.style.visibility="",this.div.style.left=t+"px",this.div.style.top=n+"px",mxClient.IS_IE||(this.div.style.height=a,this.div.style.width=i,"auto"!=(s=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=a,this.table.style.width=i,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",o));else{if(e=!0,this.maximize.setAttribute("src",this.normalizeImage),this.maximize.setAttribute("title","Normalize"),this.contentWrapper.style.display="",this.minimize.style.visibility="hidden",t=parseInt(this.div.style.left),n=parseInt(this.div.style.top),a=this.table.style.height,i=this.table.style.width,this.div.style.left="0px",this.div.style.top="0px",mxClient.IS_IE||(this.div.style.height=document.body.clientHeight-2+"px",this.div.style.width=document.body.clientWidth-2+"px"),this.table.style.width=document.body.clientWidth-2+"px",this.table.style.height=document.body.clientHeight-2+"px",null!=this.resize&&(this.resize.style.visibility="hidden"),!mxClient.IS_IE){var s=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=s.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",o))}mxEvent.consume(o)}});mxEvent.addGestureListeners(this.maximize,o),mxEvent.addListener(this.title,"dblclick",o)},mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move",mxEvent.addGestureListeners(this.title,mxUtils.bind(this,function(e){var t=mxEvent.getClientX(e),n=mxEvent.getClientY(e),a=this.getX(),i=this.getY(),o=mxUtils.bind(this,function(e){var o=mxEvent.getClientX(e)-t,s=mxEvent.getClientY(e)-n;this.setLocation(a+o,i+s),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),s=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,o,s),this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",e)),mxEvent.consume(e)}))},mxWindow.prototype.setLocation=function(e,t){this.div.style.left=e+"px",this.div.style.top=t+"px"},mxWindow.prototype.getX=function(){return parseInt(this.div.style.left)},mxWindow.prototype.getY=function(){return parseInt(this.div.style.top)},mxWindow.prototype.installCloseHandler=function(){this.closeImg=document.createElement("img"),this.closeImg.setAttribute("src",this.closeImage),this.closeImg.setAttribute("align","right"),this.closeImg.setAttribute("title","Close"),this.closeImg.style.marginLeft="2px",this.closeImg.style.cursor="pointer",this.closeImg.style.display="none",this.title.insertBefore(this.closeImg,this.title.firstChild),mxEvent.addGestureListeners(this.closeImg,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.CLOSE,"event",e)),this.destroyOnClose?this.destroy():this.setVisible(!1),mxEvent.consume(e)}))},mxWindow.prototype.setImage=function(e){this.image=document.createElement("img"),this.image.setAttribute("src",e),this.image.setAttribute("align","left"),this.image.style.marginRight="4px",this.image.style.marginLeft="0px",this.image.style.marginTop="-2px",this.title.insertBefore(this.image,this.title.firstChild)},mxWindow.prototype.setClosable=function(e){this.closeImg.style.display=e?"":"none"},mxWindow.prototype.isVisible=function(){return null!=this.div&&"hidden"!=this.div.style.visibility},mxWindow.prototype.setVisible=function(e){null!=this.div&&this.isVisible()!=e&&(e?this.show():this.hide())},mxWindow.prototype.show=function(){this.div.style.visibility="",this.activate();var e=mxUtils.getCurrentStyle(this.contentWrapper);mxClient.IS_IE||"auto"!=e.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.fireEvent(new mxEventObject(mxEvent.SHOW))},mxWindow.prototype.hide=function(){this.div.style.visibility="hidden",this.fireEvent(new mxEventObject(mxEvent.HIDE))},mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY)),null!=this.div&&(mxEvent.release(this.div),this.div.parentNode.removeChild(this.div),this.div=null),this.contentWrapper=this.content=this.title=null},mxForm.prototype.table=null,mxForm.prototype.body=!1,mxForm.prototype.getTable=function(){return this.table},mxForm.prototype.addButtons=function(e,t){var n=document.createElement("tr"),a=document.createElement("td");n.appendChild(a);var a=document.createElement("td"),i=document.createElement("button");mxUtils.write(i,mxResources.get("ok")||"OK"),a.appendChild(i),mxEvent.addListener(i,"click",function(){e()}),i=document.createElement("button"),mxUtils.write(i,mxResources.get("cancel")||"Cancel"),a.appendChild(i),mxEvent.addListener(i,"click",function(){t()}),n.appendChild(a),this.body.appendChild(n)},mxForm.prototype.addText=function(e,t){var n=document.createElement("input");return n.setAttribute("type","text"),n.value=t,this.addField(e,n)},mxForm.prototype.addCheckbox=function(e,t){var n=document.createElement("input");return n.setAttribute("type","checkbox"),this.addField(e,n),t&&(n.checked=!0),n},mxForm.prototype.addTextarea=function(e,t,n){var a=document.createElement("textarea");return mxClient.IS_NS&&n--,a.setAttribute("rows",n||2),a.value=t,this.addField(e,a)},mxForm.prototype.addCombo=function(e,t,n){var a=document.createElement("select");return null!=n&&a.setAttribute("size",n),t&&a.setAttribute("multiple","true"),this.addField(e,a)},mxForm.prototype.addOption=function(e,t,n,a){var i=document.createElement("option");mxUtils.writeln(i,t),i.setAttribute("value",n),a&&i.setAttribute("selected",a),e.appendChild(i)},mxForm.prototype.addField=function(e,t){var n=document.createElement("tr"),a=document.createElement("td");return mxUtils.write(a,e),n.appendChild(a),(a=document.createElement("td")).appendChild(t),n.appendChild(a),this.body.appendChild(n),t},mxImage.prototype.src=null,mxImage.prototype.width=null,mxImage.prototype.height=null,mxDivResizer.prototype.resizeWidth=!0,mxDivResizer.prototype.resizeHeight=!0,mxDivResizer.prototype.handlingResize=!1,mxDivResizer.prototype.resize=function(){var e=this.getDocumentWidth(),t=this.getDocumentHeight(),n=parseInt(this.div.style.left),a=parseInt(this.div.style.right),i=parseInt(this.div.style.top),o=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(n)&&!isNaN(a)&&0<=n&&0<=a&&0<e-a-n&&(this.div.style.width=e-a-n+"px"),this.resizeHeight&&!isNaN(i)&&!isNaN(o)&&0<=i&&0<=o&&0<t-i-o&&(this.div.style.height=t-i-o+"px")},mxDivResizer.prototype.getDocumentWidth=function(){return document.body.clientWidth},mxDivResizer.prototype.getDocumentHeight=function(){return document.body.clientHeight},mxDragSource.prototype.element=null,mxDragSource.prototype.dropHandler=null,mxDragSource.prototype.dragOffset=null,mxDragSource.prototype.dragElement=null,mxDragSource.prototype.previewElement=null,mxDragSource.prototype.enabled=!0,mxDragSource.prototype.currentGraph=null,mxDragSource.prototype.currentDropTarget=null,mxDragSource.prototype.currentPoint=null,mxDragSource.prototype.currentGuide=null,mxDragSource.prototype.currentHighlight=null,mxDragSource.prototype.autoscroll=!0,mxDragSource.prototype.guidesEnabled=!0,mxDragSource.prototype.gridEnabled=!0,mxDragSource.prototype.highlightDropTargets=!0,mxDragSource.prototype.dragElementZIndex=100,mxDragSource.prototype.dragElementOpacity=70,mxDragSource.prototype.isEnabled=function(){return this.enabled},mxDragSource.prototype.setEnabled=function(e){this.enabled=e},mxDragSource.prototype.isGuidesEnabled=function(){return this.guidesEnabled},mxDragSource.prototype.setGuidesEnabled=function(e){this.guidesEnabled=e},mxDragSource.prototype.isGridEnabled=function(){return this.gridEnabled},mxDragSource.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxDragSource.prototype.getGraphForEvent=function(e){return null},mxDragSource.prototype.getDropTarget=function(e,t,n){return e.getCellAt(t,n)},mxDragSource.prototype.createDragElement=function(e){return this.element.cloneNode(!0)},mxDragSource.prototype.createPreviewElement=function(e){return null},mxDragSource.prototype.mouseDown=function(e){this.enabled&&!mxEvent.isConsumed(e)&&null==this.mouseMoveHandler&&(this.startDrag(e),this.mouseMoveHandler=mxUtils.bind(this,this.mouseMove),this.mouseUpHandler=mxUtils.bind(this,this.mouseUp),mxEvent.addGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),mxEvent.consume(e,!0,!1))},mxDragSource.prototype.startDrag=function(e){this.dragElement=this.createDragElement(e),this.dragElement.style.position="absolute",this.dragElement.style.zIndex=this.dragElementZIndex,mxUtils.setOpacity(this.dragElement,this.dragElementOpacity)},mxDragSource.prototype.stopDrag=function(e){null!=this.dragElement&&(null!=this.dragElement.parentNode&&this.dragElement.parentNode.removeChild(this.dragElement),this.dragElement=null)},mxDragSource.prototype.graphContainsEvent=function(e,t){var n=mxEvent.getClientX(t),a=mxEvent.getClientY(t),i=mxUtils.getOffset(e.container),o=mxUtils.getScrollOrigin();return n>=i.x-o.x&&a>=i.y-o.y&&n<=i.x-o.x+e.container.offsetWidth&&a<=i.y-o.y+e.container.offsetHeight},mxDragSource.prototype.mouseMove=function(e){if(null!=(t=this.getGraphForEvent(e))&&!this.graphContainsEvent(t,e)&&(t=null),t!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph),this.currentGraph=t,null!=this.currentGraph&&this.dragEnter(this.currentGraph)),null!=this.currentGraph&&this.dragOver(this.currentGraph,e),null==this.dragElement||null!=this.previewElement&&"visible"==this.previewElement.style.visibility)null!=this.dragElement&&(this.dragElement.style.visibility="hidden");else{var t=mxEvent.getClientX(e),n=mxEvent.getClientY(e);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement),this.dragElement.style.visibility="visible",null!=this.dragOffset&&(t+=this.dragOffset.x,n+=this.dragOffset.y),t+=document.body.scrollLeft||document.documentElement.scrollLeft,n+=document.body.scrollTop||document.documentElement.scrollTop,this.dragElement.style.left=t+"px",this.dragElement.style.top=n+"px"}mxEvent.consume(e)},mxDragSource.prototype.mouseUp=function(e){if(null!=this.currentGraph){if(null!=this.currentPoint&&(null==this.previewElement||"hidden"!=this.previewElement.style.visibility)){var t=this.currentGraph.view.scale,n=this.currentGraph.view.translate;this.drop(this.currentGraph,e,this.currentDropTarget,this.currentPoint.x/t-n.x,this.currentPoint.y/t-n.y)}this.dragExit(this.currentGraph)}this.stopDrag(e),mxEvent.removeGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),this.currentGraph=this.mouseUpHandler=this.mouseMoveHandler=null,mxEvent.consume(e)},mxDragSource.prototype.dragEnter=function(e){e.isMouseDown=!0,this.previewElement=this.createPreviewElement(e),this.isGuidesEnabled()&&null!=this.previewElement&&(this.currentGuide=new mxGuide(e,e.graphHandler.getGuideStates())),this.highlightDropTargets&&(this.currentHighlight=new mxCellHighlight(e,mxConstants.DROP_TARGET_COLOR))},mxDragSource.prototype.dragExit=function(e){this.currentPoint=this.currentDropTarget=null,e.isMouseDown=!1,null!=this.previewElement&&(null!=this.previewElement.parentNode&&this.previewElement.parentNode.removeChild(this.previewElement),this.previewElement=null),null!=this.currentGuide&&(this.currentGuide.destroy(),this.currentGuide=null),null!=this.currentHighlight&&(this.currentHighlight.destroy(),this.currentHighlight=null)},mxDragSource.prototype.dragOver=function(e,t){var n=mxUtils.getOffset(e.container),a=mxUtils.getScrollOrigin(e.container),i=mxEvent.getClientX(t)-n.x+a.x,n=mxEvent.getClientY(t)-n.y+a.y;if(e.autoScroll&&(null==this.autoscroll||this.autoscroll)&&e.scrollPointToVisible(i,n,e.autoExtend),null!=this.currentHighlight&&e.isDropEnabled()&&(this.currentDropTarget=this.getDropTarget(e,i,n),a=e.getView().getState(this.currentDropTarget),this.currentHighlight.highlight(a)),null!=this.previewElement){null==this.previewElement.parentNode&&(e.container.appendChild(this.previewElement),this.previewElement.style.zIndex="3",this.previewElement.style.position="absolute");var a=this.isGridEnabled()&&e.isGridEnabledEvent(t),o=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(t))var o=parseInt(this.previewElement.style.width),s=parseInt(this.previewElement.style.height),o=new mxRectangle(0,0,o,s),n=new mxPoint(i,n),n=this.currentGuide.move(o,n,a),o=!1,i=n.x,n=n.y;else if(a)var a=e.view.scale,s=e.view.translate,r=e.gridSize/2,i=(e.snap(i/a-s.x-r)+s.x)*a,n=(e.snap(n/a-s.y-r)+s.y)*a;null!=this.currentGuide&&o&&this.currentGuide.hide(),null!=this.previewOffset&&(i+=this.previewOffset.x,n+=this.previewOffset.y),this.previewElement.style.left=Math.round(i)+"px",this.previewElement.style.top=Math.round(n)+"px",this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(i,n)},mxDragSource.prototype.drop=function(e,t,n,a,i){this.dropHandler(e,t,n,a,i),e.container.focus()},mxToolbar.prototype=new mxEventSource,mxToolbar.prototype.constructor=mxToolbar,mxToolbar.prototype.container=null,mxToolbar.prototype.enabled=!0,mxToolbar.prototype.noReset=!1,mxToolbar.prototype.updateDefaultMode=!0,mxToolbar.prototype.addItem=function(e,t,n,a,i,o){var s=document.createElement(null!=t?"img":"button"),r=i||(null!=o?"mxToolbarMode":"mxToolbarItem");return s.className=r,s.setAttribute("src",t),null!=e&&(null!=t?s.setAttribute("title",e):mxUtils.write(s,e)),this.container.appendChild(s),null!=n&&(mxEvent.addListener(s,"click",n),mxClient.IS_TOUCH&&mxEvent.addListener(s,"touchend",n)),e=mxUtils.bind(this,function(e){null!=a?s.setAttribute("src",t):s.style.backgroundColor=""}),mxEvent.addGestureListeners(s,mxUtils.bind(this,function(e){if(null!=a?s.setAttribute("src",a):s.style.backgroundColor="gray",null!=o){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var t=this.currentImg;this.menu.isMenuShowing()&&this.menu.hideMenu(),t!=s&&(this.currentImg=s,this.menu.factoryMethod=o,t=new mxPoint(s.offsetLeft,s.offsetTop+s.offsetHeight),this.menu.popup(t.x,t.y,null,e),this.menu.isMenuShowing()&&(s.className=r+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this),s.className=r,this.currentImg=null}))}}),null,e),mxEvent.addListener(s,"mouseout",e),s},mxToolbar.prototype.addCombo=function(e){var t=document.createElement("div");t.style.display="inline",t.className="mxToolbarComboContainer";var n=document.createElement("select");return n.className=e||"mxToolbarCombo",t.appendChild(n),this.container.appendChild(t),n},mxToolbar.prototype.addActionCombo=function(e,t){var n=document.createElement("select");return n.className=t||"mxToolbarCombo",this.addOption(n,e,null),mxEvent.addListener(n,"change",function(e){var t=n.options[n.selectedIndex];n.selectedIndex=0,null!=t.funct&&t.funct(e)}),this.container.appendChild(n),n},mxToolbar.prototype.addOption=function(e,t,n){var a=document.createElement("option");return mxUtils.writeln(a,t),"function"==typeof n?a.funct=n:a.setAttribute("value",n),e.appendChild(a),a},mxToolbar.prototype.addSwitchMode=function(e,t,n,a,i){var o=document.createElement("img");return o.initialClassName=i||"mxToolbarMode",o.className=o.initialClassName,o.setAttribute("src",t),o.altIcon=a,null!=e&&o.setAttribute("title",e),mxEvent.addListener(o,"click",mxUtils.bind(this,function(e){null!=(e=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",e)):this.selectedMode.className=this.selectedMode.initialClassName,this.updateDefaultMode&&(this.defaultMode=o),this.selectedMode=o,null!=(e=o.altIcon)?(o.altIcon=o.getAttribute("src"),o.setAttribute("src",e)):o.className=o.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT)),n()})),this.container.appendChild(o),null==this.defaultMode&&(this.defaultMode=o,this.selectMode(o),n()),o},mxToolbar.prototype.addMode=function(e,t,n,a,i,o){o=null==o||o;var s=document.createElement(null!=t?"img":"button");return s.initialClassName=i||"mxToolbarMode",s.className=s.initialClassName,s.setAttribute("src",t),s.altIcon=a,null!=e&&s.setAttribute("title",e),this.enabled&&o&&(mxEvent.addListener(s,"click",mxUtils.bind(this,function(e){this.selectMode(s,n),this.noReset=!1})),mxEvent.addListener(s,"dblclick",mxUtils.bind(this,function(e){this.selectMode(s,n),this.noReset=!0})),null==this.defaultMode&&(this.defaultMode=s,this.defaultFunction=n,this.selectMode(s,n))),this.container.appendChild(s),s},mxToolbar.prototype.selectMode=function(e,t){if(this.selectedMode!=e){if(null!=this.selectedMode){var n=this.selectedMode.altIcon;null!=n?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",n)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=e,null!=(n=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",n)):this.selectedMode.className=this.selectedMode.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",t))}},mxToolbar.prototype.resetMode=function(e){(e||!this.noReset)&&this.selectedMode!=this.defaultMode&&this.selectMode(this.defaultMode,this.defaultFunction)},mxToolbar.prototype.addSeparator=function(e){return this.addItem(null,e,null)},mxToolbar.prototype.addBreak=function(){mxUtils.br(this.container)},mxToolbar.prototype.addLine=function(){var e=document.createElement("hr");e.style.marginRight="6px",e.setAttribute("size","1"),this.container.appendChild(e)},mxToolbar.prototype.destroy=function(){mxEvent.release(this.container),this.selectedMode=this.defaultFunction=this.defaultMode=this.container=null,null!=this.menu&&this.menu.destroy()},mxSession.prototype=new mxEventSource,mxSession.prototype.constructor=mxSession,mxSession.prototype.model=null,mxSession.prototype.urlInit=null,mxSession.prototype.urlPoll=null,mxSession.prototype.urlNotify=null,mxSession.prototype.codec=null,mxSession.prototype.linefeed="&#xa;",mxSession.prototype.escapePostData=!0,mxSession.prototype.significantRemoteChanges=!0,mxSession.prototype.sent=0,mxSession.prototype.received=0,mxSession.prototype.debug=!1,mxSession.prototype.connected=!1,mxSession.prototype.suspended=!1,mxSession.prototype.polling=!1,mxSession.prototype.start=function(){this.debug?(this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT))):this.connected||this.get(this.urlInit,mxUtils.bind(this,function(e){this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT)),this.poll()}))},mxSession.prototype.suspend=function(){this.connected&&!this.suspended&&(this.suspended=!0,this.fireEvent(new mxEventObject(mxEvent.SUSPEND)))},mxSession.prototype.resume=function(e,t,n){this.connected&&this.suspended&&(this.suspended=!1,this.fireEvent(new mxEventObject(mxEvent.RESUME)),this.polling||this.poll())},mxSession.prototype.stop=function(e){this.connected&&(this.connected=!1),this.fireEvent(new mxEventObject(mxEvent.DISCONNECT,"reason",e))},mxSession.prototype.poll=function(){this.connected&&!this.suspended&&null!=this.urlPoll?(this.polling=!0,this.get(this.urlPoll,mxUtils.bind(this,function(){this.poll()}))):this.polling=!1},mxSession.prototype.notify=function(e,t,n){null!=e&&0<e.length&&(null!=this.urlNotify&&(this.debug?(mxLog.show(),mxLog.debug("mxSession.notify: "+this.urlNotify+" xml="+e)):(e="<message><delta>"+e+"</delta></message>",this.escapePostData&&(e=encodeURIComponent(e)),mxUtils.post(this.urlNotify,"xml="+e,t,n))),this.sent+=e.length,this.fireEvent(new mxEventObject(mxEvent.NOTIFY,"url",this.urlNotify,"xml",e)))},mxSession.prototype.get=function(e,t,n){if(void 0!==mxUtils){var a=mxUtils.bind(this,function(e){null!=n?n(e):this.stop(e)});mxUtils.get(e,mxUtils.bind(this,function(n){if(void 0!==mxUtils)if(n.isReady()&&404!=n.getStatus()){if(this.received+=n.getText().length,this.fireEvent(new mxEventObject(mxEvent.GET,"url",e,"request",n)),this.isValidResponse(n)){if(0<n.getText().length){var i=n.getDocumentElement();null==i?a("Invalid response: "+n.getText()):this.receive(i)}null!=t&&t(n)}}else a("Response not ready")}),function(e){a("Transmission error")})}},mxSession.prototype.isValidResponse=function(e){return 0>e.getText().indexOf("<?php")},mxSession.prototype.encodeChanges=function(e,t){for(var n="",a=t?-1:1,i=t?e.length-1:0;0<=i&&i<e.length;i+=a)var o=this.codec.encode(e[i]),n=n+mxUtils.getXml(o,this.linefeed);return n},mxSession.prototype.receive=function(e){if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var t=e.getAttribute("namespace");for(null!=t&&(this.model.prefix=t+"-"),t=e.firstChild;null!=t;){var n=t.nodeName.toLowerCase();"state"==n?this.processState(t):"delta"==n&&this.processDelta(t),t=t.nextSibling}this.fireEvent(new mxEventObject(mxEvent.RECEIVE,"node",e))}},mxSession.prototype.processState=function(e){new mxCodec(e.ownerDocument).decode(e.firstChild,this.model)},mxSession.prototype.processDelta=function(e){for(e=e.firstChild;null!=e;)"edit"==e.nodeName&&this.processEdit(e),e=e.nextSibling},mxSession.prototype.processEdit=function(e){if(0<(e=this.decodeChanges(e)).length){var t=this.createUndoableEdit(e);this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",t,"changes",e)),this.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t)),this.fireEvent(new mxEventObject(mxEvent.FIRED,"edit",t))}},mxSession.prototype.createUndoableEdit=function(e){var t=new mxUndoableEdit(this.model,this.significantRemoteChanges);return t.changes=e,t.notify=function(){t.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",t,"changes",t.changes)),t.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",t,"changes",t.changes))},t},mxSession.prototype.decodeChanges=function(e){this.codec.document=e.ownerDocument;var t=[];for(e=e.firstChild;null!=e;){var n=this.decodeChange(e);null!=n&&t.push(n),e=e.nextSibling}return t},mxSession.prototype.decodeChange=function(e){var t=null;return e.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(t="mxRootChange"==e.nodeName?new mxCodec(e.ownerDocument).decode(e):this.codec.decode(e))&&(t.model=this.model,t.execute(),"mxChildChange"==e.nodeName&&null==t.parent&&this.cellRemoved(t.child)),t},mxSession.prototype.cellRemoved=function(e,t){this.codec.putObject(e.getId(),e);for(var n=this.model.getChildCount(e),a=0;a<n;a++)this.cellRemoved(this.model.getChildAt(e,a))},mxUndoableEdit.prototype.source=null,mxUndoableEdit.prototype.changes=null,mxUndoableEdit.prototype.significant=null,mxUndoableEdit.prototype.undone=!1,mxUndoableEdit.prototype.redone=!1,mxUndoableEdit.prototype.isEmpty=function(){return 0==this.changes.length},mxUndoableEdit.prototype.isSignificant=function(){return this.significant},mxUndoableEdit.prototype.add=function(e){this.changes.push(e)},mxUndoableEdit.prototype.notify=function(){},mxUndoableEdit.prototype.die=function(){},mxUndoableEdit.prototype.undo=function(){if(!this.undone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length-1;0<=e;e--){var t=this.changes[e];null!=t.execute?t.execute():null!=t.undo&&t.undo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",t))}this.undone=!0,this.redone=!1,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoableEdit.prototype.redo=function(){if(!this.redone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length,t=0;t<e;t++){var n=this.changes[t];null!=n.execute?n.execute():null!=n.redo&&n.redo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}this.undone=!1,this.redone=!0,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoManager.prototype=new mxEventSource,mxUndoManager.prototype.constructor=mxUndoManager,mxUndoManager.prototype.size=null,mxUndoManager.prototype.history=null,mxUndoManager.prototype.indexOfNextAdd=0,mxUndoManager.prototype.isEmpty=function(){return 0==this.history.length},mxUndoManager.prototype.clear=function(){this.history=[],this.indexOfNextAdd=0,this.fireEvent(new mxEventObject(mxEvent.CLEAR))},mxUndoManager.prototype.canUndo=function(){return 0<this.indexOfNextAdd},mxUndoManager.prototype.undo=function(){for(;0<this.indexOfNextAdd;){var e=this.history[--this.indexOfNextAdd];if(e.undo(),e.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e));break}}},mxUndoManager.prototype.canRedo=function(){return this.indexOfNextAdd<this.history.length},mxUndoManager.prototype.redo=function(){for(var e=this.history.length;this.indexOfNextAdd<e;){var t=this.history[this.indexOfNextAdd++];if(t.redo(),t.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",t));break}}},mxUndoManager.prototype.undoableEditHappened=function(e){this.trim(),0<this.size&&this.size==this.history.length&&this.history.shift(),this.history.push(e),this.indexOfNextAdd=this.history.length,this.fireEvent(new mxEventObject(mxEvent.ADD,"edit",e))},mxUndoManager.prototype.trim=function(){if(this.history.length>this.indexOfNextAdd)for(var e=this.history.splice(this.indexOfNextAdd,this.history.length-this.indexOfNextAdd),t=0;t<e.length;t++)e[t].die()};var mxUrlConverter=function(e){var t=!0,n=null,a=null;return{isEnabled:function(){return t},setEnabled:function(e){t=e},getBaseUrl:function(){return n},setBaseUrl:function(e){n=e},getBaseDomain:function(){return n},setBaseDomain:function(e){n=e},isRelativeUrl:function(e){return"http://"!=e.substring(0,7)&&"https://"!=e.substring(0,8)&&"data:image"!=e.substring(0,10)},convert:function(e){if(t&&this.isRelativeUrl(e)){if(null==n){a=location.protocol+"//"+location.host;var i=(n=a+location.pathname).lastIndexOf("/");0<i&&(n=n.substring(0,i+1))}e="/"==e.charAt(0)?a+e:n+e}return e}}};mxPanningManager.prototype.damper=1/6,mxPanningManager.prototype.delay=10,mxPanningManager.prototype.handleMouseOut=!0,mxPanningManager.prototype.border=0,mxPopupMenu.prototype=new mxEventSource,mxPopupMenu.prototype.constructor=mxPopupMenu,mxPopupMenu.prototype.submenuImage=mxClient.imageBasePath+"/submenu.gif",mxPopupMenu.prototype.zIndex=10006,mxPopupMenu.prototype.factoryMethod=null,mxPopupMenu.prototype.useLeftButtonForPopup=!1,mxPopupMenu.prototype.enabled=!0,mxPopupMenu.prototype.itemCount=0,mxPopupMenu.prototype.autoExpand=!1,mxPopupMenu.prototype.smartSeparators=!1,mxPopupMenu.prototype.labels=!0,mxPopupMenu.prototype.init=function(){this.table=document.createElement("table"),this.table.className="mxPopupMenu",this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.div=document.createElement("div"),this.div.className="mxPopupMenu",this.div.style.display="inline",this.div.style.zIndex=this.zIndex,this.div.appendChild(this.table),mxEvent.disableContextMenu(this.div)},mxPopupMenu.prototype.isEnabled=function(){return this.enabled},mxPopupMenu.prototype.setEnabled=function(e){this.enabled=e},mxPopupMenu.prototype.isPopupTrigger=function(e){return e.isPopupTrigger()||this.useLeftButtonForPopup&&mxEvent.isLeftMouseButton(e.getEvent())},mxPopupMenu.prototype.addItem=function(e,t,n,a,i,o){a=a||this,this.itemCount++,a.willAddSeparator&&(a.containsItems&&this.addSeparator(a,!0),a.willAddSeparator=!1),a.containsItems=!0;var s=document.createElement("tr");s.className="mxPopupMenuItem";var r=document.createElement("td");return r.className="mxPopupMenuIcon",null!=t?(i=document.createElement("img"),i.src=t,r.appendChild(i)):null!=i&&(t=document.createElement("div"),t.className=i,r.appendChild(t)),s.appendChild(r),this.labels&&(r=document.createElement("td"),r.className="mxPopupMenuItem"+(null==o||o?"":" disabled"),mxUtils.write(r,e),r.align="left",s.appendChild(r),e=document.createElement("td"),e.className="mxPopupMenuItem"+(null==o||o?"":" disabled"),e.style.paddingRight="6px",e.style.textAlign="right",s.appendChild(e),null==a.div&&this.createSubmenu(a)),a.tbody.appendChild(s),(null==o||o)&&(mxEvent.addGestureListeners(s,mxUtils.bind(this,function(e){this.eventReceiver=s,a.activeRow!=s&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),null!=s.div&&(this.showSubmenu(a,s),a.activeRow=s)),mxEvent.consume(e)}),mxUtils.bind(this,function(e){a.activeRow!=s&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),this.autoExpand&&null!=s.div&&(this.showSubmenu(a,s),a.activeRow=s)),s.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(e){this.eventReceiver==s&&(a.activeRow!=s&&this.hideMenu(),null!=n&&n(e)),this.eventReceiver=null,mxEvent.consume(e)})),mxEvent.addListener(s,"mouseout",mxUtils.bind(this,function(e){s.className="mxPopupMenuItem"}))),s},mxPopupMenu.prototype.createSubmenu=function(e){e.table=document.createElement("table"),e.table.className="mxPopupMenu",e.tbody=document.createElement("tbody"),e.table.appendChild(e.tbody),e.div=document.createElement("div"),e.div.className="mxPopupMenu",e.div.style.position="absolute",e.div.style.display="inline",e.div.style.zIndex=this.zIndex,e.div.appendChild(e.table);var t=document.createElement("img");t.setAttribute("src",this.submenuImage),td=e.firstChild.nextSibling.nextSibling,td.appendChild(t)},mxPopupMenu.prototype.showSubmenu=function(e,t){if(null!=t.div){t.div.style.left=e.div.offsetLeft+t.offsetLeft+t.offsetWidth-1+"px",t.div.style.top=e.div.offsetTop+t.offsetTop+"px",document.body.appendChild(t.div);var n=parseInt(t.div.offsetLeft),a=parseInt(t.div.offsetWidth),i=document.body,o=document.documentElement;n+a>(i.scrollLeft||o.scrollLeft)+(i.clientWidth||o.clientWidth)&&(t.div.style.left=e.div.offsetLeft-a+(mxClient.IS_IE?6:-6)+"px"),mxUtils.fit(t.div)}},mxPopupMenu.prototype.addSeparator=function(e,t){if(e=e||this,this.smartSeparators&&!t)e.willAddSeparator=!0;else if(null!=e.tbody){e.willAddSeparator=!1;var n=document.createElement("tr"),a=document.createElement("td");a.className="mxPopupMenuIcon",a.style.padding="0 0 0 0px",n.appendChild(a),(a=document.createElement("td")).style.padding="0 0 0 0px",a.setAttribute("colSpan","2");var i=document.createElement("hr");i.setAttribute("size","1"),a.appendChild(i),n.appendChild(a),e.tbody.appendChild(n)}},mxPopupMenu.prototype.popup=function(e,t,n,a){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){for(this.div.style.left=e+"px",this.div.style.top=t+"px";null!=this.tbody.firstChild;)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0,this.factoryMethod(this,n,a),0<this.itemCount&&(this.showMenu(),this.fireEvent(new mxEventObject(mxEvent.SHOW)))}},mxPopupMenu.prototype.isMenuShowing=function(){return null!=this.div&&this.div.parentNode==document.body},mxPopupMenu.prototype.showMenu=function(){9<=document.documentMode&&(this.div.style.filter="none"),document.body.appendChild(this.div),mxUtils.fit(this.div)},mxPopupMenu.prototype.hideMenu=function(){null!=this.div&&(null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.hideSubmenu(this),this.containsItems=!1)},mxPopupMenu.prototype.hideSubmenu=function(e){null!=e.activeRow&&(this.hideSubmenu(e.activeRow),null!=e.activeRow.div.parentNode&&e.activeRow.div.parentNode.removeChild(e.activeRow.div),e.activeRow=null)},mxPopupMenu.prototype.destroy=function(){null!=this.div&&(mxEvent.release(this.div),null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null)},mxAutoSaveManager.prototype=new mxEventSource,mxAutoSaveManager.prototype.constructor=mxAutoSaveManager,mxAutoSaveManager.prototype.graph=null,mxAutoSaveManager.prototype.autoSaveDelay=10,mxAutoSaveManager.prototype.autoSaveThrottle=2,mxAutoSaveManager.prototype.autoSaveThreshold=5,mxAutoSaveManager.prototype.ignoredChanges=0,mxAutoSaveManager.prototype.lastSnapshot=0,mxAutoSaveManager.prototype.enabled=!0,mxAutoSaveManager.prototype.changeHandler=null,mxAutoSaveManager.prototype.isEnabled=function(){return this.enabled},mxAutoSaveManager.prototype.setEnabled=function(e){this.enabled=e},mxAutoSaveManager.prototype.setGraph=function(e){null!=this.graph&&this.graph.getModel().removeListener(this.changeHandler),this.graph=e,null!=this.graph&&this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler)},mxAutoSaveManager.prototype.save=function(){},mxAutoSaveManager.prototype.graphModelChanged=function(e){(e=((new Date).getTime()-this.lastSnapshot)/1e3)>this.autoSaveDelay||this.ignoredChanges>=this.autoSaveThreshold&&e>this.autoSaveThrottle?(this.save(),this.reset()):this.ignoredChanges++},mxAutoSaveManager.prototype.reset=function(){this.lastSnapshot=(new Date).getTime(),this.ignoredChanges=0},mxAutoSaveManager.prototype.destroy=function(){this.setGraph(null)},mxAnimation.prototype=new mxEventSource,mxAnimation.prototype.constructor=mxAnimation,mxAnimation.prototype.delay=null,mxAnimation.prototype.thread=null,mxAnimation.prototype.startAnimation=function(){null==this.thread&&(this.thread=window.setInterval(mxUtils.bind(this,this.updateAnimation),this.delay))},mxAnimation.prototype.updateAnimation=function(){this.fireEvent(new mxEventObject(mxEvent.EXECUTE))},mxAnimation.prototype.stopAnimation=function(){null!=this.thread&&(window.clearInterval(this.thread),this.thread=null,this.fireEvent(new mxEventObject(mxEvent.DONE)))},mxMorphing.prototype=new mxAnimation,mxMorphing.prototype.constructor=mxMorphing,mxMorphing.prototype.graph=null,mxMorphing.prototype.steps=null,mxMorphing.prototype.step=0,mxMorphing.prototype.ease=null,mxMorphing.prototype.cells=null,mxMorphing.prototype.updateAnimation=function(){var e=new mxCellStatePreview(this.graph);if(null!=this.cells)for(var t=0;t<this.cells.length;t++)this.animateCell(cells[t],e,!1);else this.animateCell(this.graph.getModel().getRoot(),e,!0);this.show(e),(e.isEmpty()||this.step++>=this.steps)&&this.stopAnimation()},mxMorphing.prototype.show=function(e){e.show()},mxMorphing.prototype.animateCell=function(e,t,n){var a=this.graph.getView().getState(e),i=null;if(null!=a&&(i=this.getDelta(a),this.graph.getModel().isVertex(e)&&(0!=i.x||0!=i.y))){var o=this.graph.view.getTranslate(),s=this.graph.view.getScale();i.x+=o.x*s,i.y+=o.y*s,t.moveState(a,-i.x/this.ease,-i.y/this.ease)}if(n&&!this.stopRecursion(a,i))for(a=this.graph.getModel().getChildCount(e),i=0;i<a;i++)this.animateCell(this.graph.getModel().getChildAt(e,i),t,n)},mxMorphing.prototype.stopRecursion=function(e,t){return null!=t&&(0!=t.x||0!=t.y)},mxMorphing.prototype.getDelta=function(e){var t=this.getOriginForCell(e.cell),n=this.graph.getView().getTranslate(),a=this.graph.getView().getScale();return e=new mxPoint(e.x/a-n.x,e.y/a-n.y),new mxPoint((t.x-e.x)*a,(t.y-e.y)*a)},mxMorphing.prototype.getOriginForCell=function(e){var t=null;return null!=e&&(t=this.getOriginForCell(this.graph.getModel().getParent(e)),null!=(e=this.graph.getCellGeometry(e))&&(t.x+=e.x,t.y+=e.y)),null==t&&(t=this.graph.view.getTranslate(),t=new mxPoint(-t.x,-t.y)),t},mxImageBundle.prototype.images=null,mxImageBundle.prototype.images=null,mxImageBundle.prototype.putImage=function(e,t,n){this.images[e]={value:t,fallback:n}},mxImageBundle.prototype.getImage=function(e){var t=null;return null!=e&&null!=(e=this.images[e])&&(t=this.alt?e.fallback:e.value),t},mxImageExport.prototype.includeOverlays=!1,mxImageExport.prototype.drawState=function(e,t){null!=e&&(this.visitStatesRecursive(e,t,this.drawCellState),this.includeOverlays&&this.visitStatesRecursive(e,t,this.drawOverlays))},mxImageExport.prototype.visitStatesRecursive=function(e,t,n){if(null!=e){n(e,t);for(var a=e.view.graph,i=a.model.getChildCount(e.cell),o=0;o<i;o++){var s=a.view.getState(a.model.getChildAt(e.cell,o));this.visitStatesRecursive(s,t,n)}}},mxImageExport.prototype.drawCellState=function(e,t){e.shape instanceof mxShape&&(t.save(),e.shape.paint(t),t.restore()),null!=e.text&&(t.save(),e.text.paint(t),t.restore())},mxImageExport.prototype.drawOverlays=function(e,t){null!=e.overlays&&e.overlays.visit(function(e,n){n instanceof mxShape&&n.paint(t)})},mxAbstractCanvas2D.prototype.state=null,mxAbstractCanvas2D.prototype.states=null,mxAbstractCanvas2D.prototype.path=null,mxAbstractCanvas2D.prototype.rotateHtml=!0,mxAbstractCanvas2D.prototype.lastX=0,mxAbstractCanvas2D.prototype.lastY=0,mxAbstractCanvas2D.prototype.moveOp="M",mxAbstractCanvas2D.prototype.lineOp="L",mxAbstractCanvas2D.prototype.quadOp="Q",mxAbstractCanvas2D.prototype.curveOp="C",mxAbstractCanvas2D.prototype.closeOp="Z",mxAbstractCanvas2D.prototype.pointerEvents=!1,mxAbstractCanvas2D.prototype.createUrlConverter=function(){return new mxUrlConverter},mxAbstractCanvas2D.prototype.reset=function(){this.state=this.createState(),this.states=[]},mxAbstractCanvas2D.prototype.createState=function(){return{dx:0,dy:0,scale:1,alpha:1,fillColor:null,fillAlpha:1,gradientColor:null,gradientAlpha:1,gradientDirection:null,strokeColor:null,strokeWidth:1,dashed:!1,dashPattern:"3 3",lineCap:"flat",lineJoin:"miter",miterLimit:10,fontColor:"#000000",fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0,shadow:!1,shadowColor:mxConstants.SHADOWCOLOR,shadowAlpha:mxConstants.SHADOW_OPACITY,shadowDx:mxConstants.SHADOW_OFFSET_X,shadowDy:mxConstants.SHADOW_OFFSET_Y,rotation:0,rotationCx:0,rotationCy:0}},mxAbstractCanvas2D.prototype.format=function(e){return Math.round(parseFloat(e))},mxAbstractCanvas2D.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var e=this.state,t=2;t<arguments.length;t+=2)this.lastX=arguments[t-1],this.lastY=arguments[t],this.path.push(this.format((this.lastX+e.dx)*e.scale)),this.path.push(this.format((this.lastY+e.dy)*e.scale))},mxAbstractCanvas2D.prototype.rotatePoint=function(e,t,n,a,i){return n*=Math.PI/180,mxUtils.getRotatedPoint(new mxPoint(e,t),Math.cos(n),Math.sin(n),new mxPoint(a,i))},mxAbstractCanvas2D.prototype.save=function(){this.states.push(this.state),this.state=mxUtils.clone(this.state)},mxAbstractCanvas2D.prototype.restore=function(){this.state=this.states.pop()},mxAbstractCanvas2D.prototype.scale=function(e){this.state.scale*=e,this.state.strokeWidth*=e},mxAbstractCanvas2D.prototype.translate=function(e,t){this.state.dx+=e,this.state.dy+=t},mxAbstractCanvas2D.prototype.setAlpha=function(e){this.state.alpha=e},mxAbstractCanvas2D.prototype.setFillColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fillColor=e,this.state.gradientColor=null},mxAbstractCanvas2D.prototype.setGradient=function(e,t,n,a,i,o,s,r,l){(n=this.state).fillColor=e,n.fillAlpha=null!=r?r:1,n.gradientColor=t,n.gradientAlpha=null!=l?l:1,n.gradientDirection=s},mxAbstractCanvas2D.prototype.setStrokeColor=function(e){e==mxConstants.NONE&&(e=null),this.state.strokeColor=e},mxAbstractCanvas2D.prototype.setStrokeWidth=function(e){this.state.strokeWidth=e},mxAbstractCanvas2D.prototype.setDashed=function(e){this.state.dashed=e},mxAbstractCanvas2D.prototype.setDashPattern=function(e){this.state.dashPattern=e},mxAbstractCanvas2D.prototype.setLineCap=function(e){this.state.lineCap=e},mxAbstractCanvas2D.prototype.setLineJoin=function(e){this.state.lineJoin=e},mxAbstractCanvas2D.prototype.setMiterLimit=function(e){this.state.miterLimit=e},mxAbstractCanvas2D.prototype.setFontColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontColor=e},mxAbstractCanvas2D.prototype.setFontBackgroundColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBackgroundColor=e},mxAbstractCanvas2D.prototype.setFontBorderColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBorderColor=e},mxAbstractCanvas2D.prototype.setFontSize=function(e){this.state.fontSize=e},mxAbstractCanvas2D.prototype.setFontFamily=function(e){this.state.fontFamily=e},mxAbstractCanvas2D.prototype.setFontStyle=function(e){null==e&&(e=0),this.state.fontStyle=e},mxAbstractCanvas2D.prototype.setShadow=function(e){this.state.shadow=e},mxAbstractCanvas2D.prototype.setShadowColor=function(e){e==mxConstants.NONE&&(e=null),this.state.shadowColor=e},mxAbstractCanvas2D.prototype.setShadowAlpha=function(e){this.state.shadowAlpha=e},mxAbstractCanvas2D.prototype.setShadowOffset=function(e,t){this.state.shadowDx=e,this.state.shadowDy=t},mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0,this.path=[]},mxAbstractCanvas2D.prototype.moveTo=function(e,t){this.addOp(this.moveOp,e,t)},mxAbstractCanvas2D.prototype.lineTo=function(e,t){this.addOp(this.lineOp,e,t)},mxAbstractCanvas2D.prototype.quadTo=function(e,t,n,a){this.addOp(this.quadOp,e,t,n,a)},mxAbstractCanvas2D.prototype.curveTo=function(e,t,n,a,i,o){this.addOp(this.curveOp,e,t,n,a,i,o)},mxAbstractCanvas2D.prototype.arcTo=function(e,t,n,a,i,o,s){for(e=mxUtils.arcToCurves(this.lastX,this.lastY,e,t,n,a,i,o,s),t=0;t<e.length;t+=6)this.curveTo(e[t],e[t+1],e[t+2],e[t+3],e[t+4],e[t+5])},mxAbstractCanvas2D.prototype.close=function(e,t,n,a,i,o){this.addOp(this.closeOp)},mxAbstractCanvas2D.prototype.end=function(){},mxUtils.extend(mxXmlCanvas2D,mxAbstractCanvas2D),mxXmlCanvas2D.prototype.textEnabled=!0,mxXmlCanvas2D.prototype.compressed=!0,mxXmlCanvas2D.prototype.writeDefaults=function(){var e;(e=this.createElement("fontfamily")).setAttribute("family",mxConstants.DEFAULT_FONTFAMILY),this.root.appendChild(e),(e=this.createElement("fontsize")).setAttribute("size",mxConstants.DEFAULT_FONTSIZE),this.root.appendChild(e),(e=this.createElement("shadowcolor")).setAttribute("color",mxConstants.SHADOWCOLOR),this.root.appendChild(e),(e=this.createElement("shadowalpha")).setAttribute("alpha",mxConstants.SHADOW_OPACITY),this.root.appendChild(e),(e=this.createElement("shadowoffset")).setAttribute("dx",mxConstants.SHADOW_OFFSET_X),e.setAttribute("dy",mxConstants.SHADOW_OFFSET_Y),this.root.appendChild(e)},mxXmlCanvas2D.prototype.format=function(e){return parseFloat(parseFloat(e).toFixed(2))},mxXmlCanvas2D.prototype.createElement=function(e){return this.root.ownerDocument.createElement(e)},mxXmlCanvas2D.prototype.save=function(){this.compressed&&mxAbstractCanvas2D.prototype.save.apply(this,arguments),this.root.appendChild(this.createElement("save"))},mxXmlCanvas2D.prototype.restore=function(){this.compressed&&mxAbstractCanvas2D.prototype.restore.apply(this,arguments),this.root.appendChild(this.createElement("restore"))},mxXmlCanvas2D.prototype.scale=function(e){if(this.compressed){if(this.state.scale==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var t=this.createElement("scale");t.setAttribute("scale",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.translate=function(e,t){var n=this.createElement("translate");n.setAttribute("dx",this.format(e)),n.setAttribute("dy",this.format(t)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.rotate=function(e,t,n,a,i){var o=this.createElement("rotate");(0!=e||t||n)&&(o.setAttribute("theta",this.format(e)),o.setAttribute("flipH",t?"1":"0"),o.setAttribute("flipV",n?"1":"0"),o.setAttribute("cx",this.format(a)),o.setAttribute("cy",this.format(i)),this.root.appendChild(o))},mxXmlCanvas2D.prototype.setAlpha=function(e){if(this.compressed){if(this.state.alpha==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var t=this.createElement("alpha");t.setAttribute("alpha",this.format(e)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setFillColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fillColor==e)return;mxAbstractCanvas2D.prototype.setFillColor.apply(this,arguments)}var t=this.createElement("fillcolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setGradient=function(e,t,n,a,i,o,s,r,l){if(null!=e&&null!=t){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var d=this.createElement("gradient");d.setAttribute("c1",e),d.setAttribute("c2",t),d.setAttribute("x",this.format(n)),d.setAttribute("y",this.format(a)),d.setAttribute("w",this.format(i)),d.setAttribute("h",this.format(o)),null!=s&&d.setAttribute("direction",s),null!=r&&d.setAttribute("alpha1",r),null!=l&&d.setAttribute("alpha2",l),this.root.appendChild(d)}},mxXmlCanvas2D.prototype.setStrokeColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.strokeColor==e)return;mxAbstractCanvas2D.prototype.setStrokeColor.apply(this,arguments)}var t=this.createElement("strokecolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setStrokeWidth=function(e){if(this.compressed){if(this.state.strokeWidth==e)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var t=this.createElement("strokewidth");t.setAttribute("width",this.format(e)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setDashed=function(e){if(this.compressed){if(this.state.dashed==e)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var t=this.createElement("dashed");t.setAttribute("dashed",e?"1":"0"),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setDashPattern=function(e){if(this.compressed){if(this.state.dashPattern==e)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var t=this.createElement("dashpattern");t.setAttribute("pattern",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setLineCap=function(e){if(this.compressed){if(this.state.lineCap==e)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var t=this.createElement("linecap");t.setAttribute("cap",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setLineJoin=function(e){if(this.compressed){if(this.state.lineJoin==e)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var t=this.createElement("linejoin");t.setAttribute("join",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setMiterLimit=function(e){if(this.compressed){if(this.state.miterLimit==e)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var t=this.createElement("miterlimit");t.setAttribute("limit",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setFontColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontColor==e)return;mxAbstractCanvas2D.prototype.setFontColor.apply(this,arguments)}var t=this.createElement("fontcolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontBackgroundColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBackgroundColor==e)return;mxAbstractCanvas2D.prototype.setFontBackgroundColor.apply(this,arguments)}var t=this.createElement("fontbackgroundcolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontBorderColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBorderColor==e)return;mxAbstractCanvas2D.prototype.setFontBorderColor.apply(this,arguments)}var t=this.createElement("fontbordercolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontSize=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==e)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var t=this.createElement("fontsize");t.setAttribute("size",e),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontFamily=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==e)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var t=this.createElement("fontfamily");t.setAttribute("family",e),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setFontStyle=function(e){if(this.textEnabled){if(null==e&&(e=0),this.compressed){if(this.state.fontStyle==e)return;mxAbstractCanvas2D.prototype.setFontStyle.apply(this,arguments)}var t=this.createElement("fontstyle");t.setAttribute("style",e),this.root.appendChild(t)}},mxXmlCanvas2D.prototype.setShadow=function(e){if(this.compressed){if(this.state.shadow==e)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var t=this.createElement("shadow");t.setAttribute("enabled",e?"1":"0"),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setShadowColor=function(e){if(this.compressed){if(e==mxConstants.NONE&&(e=null),this.state.shadowColor==e)return;mxAbstractCanvas2D.prototype.setShadowColor.apply(this,arguments)}var t=this.createElement("shadowcolor");t.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setShadowAlpha=function(e){if(this.compressed){if(this.state.shadowAlpha==e)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var t=this.createElement("shadowalpha");t.setAttribute("alpha",e),this.root.appendChild(t)},mxXmlCanvas2D.prototype.setShadowOffset=function(e,t){if(this.compressed){if(this.state.shadowDx==e&&this.state.shadowDy==t)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var n=this.createElement("shadowoffset");n.setAttribute("dx",e),n.setAttribute("dy",t),this.root.appendChild(n)},mxXmlCanvas2D.prototype.rect=function(e,t,n,a){var i=this.createElement("rect");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(t)),i.setAttribute("w",this.format(n)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.roundrect=function(e,t,n,a,i,o){var s=this.createElement("roundrect");s.setAttribute("x",this.format(e)),s.setAttribute("y",this.format(t)),s.setAttribute("w",this.format(n)),s.setAttribute("h",this.format(a)),s.setAttribute("dx",this.format(i)),s.setAttribute("dy",this.format(o)),this.root.appendChild(s)},mxXmlCanvas2D.prototype.ellipse=function(e,t,n,a){var i=this.createElement("ellipse");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(t)),i.setAttribute("w",this.format(n)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.image=function(e,t,n,a,i,o,s,r){i=this.converter.convert(i);var l=this.createElement("image");l.setAttribute("x",this.format(e)),l.setAttribute("y",this.format(t)),l.setAttribute("w",this.format(n)),l.setAttribute("h",this.format(a)),l.setAttribute("src",i),l.setAttribute("aspect",o?"1":"0"),l.setAttribute("flipH",s?"1":"0"),l.setAttribute("flipV",r?"1":"0"),this.root.appendChild(l)},mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin")),this.lastY=this.lastX=0},mxXmlCanvas2D.prototype.moveTo=function(e,t){var n=this.createElement("move");n.setAttribute("x",this.format(e)),n.setAttribute("y",this.format(t)),this.root.appendChild(n),this.lastX=e,this.lastY=t},mxXmlCanvas2D.prototype.lineTo=function(e,t){var n=this.createElement("line");n.setAttribute("x",this.format(e)),n.setAttribute("y",this.format(t)),this.root.appendChild(n),this.lastX=e,this.lastY=t},mxXmlCanvas2D.prototype.quadTo=function(e,t,n,a){var i=this.createElement("quad");i.setAttribute("x1",this.format(e)),i.setAttribute("y1",this.format(t)),i.setAttribute("x2",this.format(n)),i.setAttribute("y2",this.format(a)),this.root.appendChild(i),this.lastX=n,this.lastY=a},mxXmlCanvas2D.prototype.curveTo=function(e,t,n,a,i,o){var s=this.createElement("curve");s.setAttribute("x1",this.format(e)),s.setAttribute("y1",this.format(t)),s.setAttribute("x2",this.format(n)),s.setAttribute("y2",this.format(a)),s.setAttribute("x3",this.format(i)),s.setAttribute("y3",this.format(o)),this.root.appendChild(s),this.lastX=i,this.lastY=o},mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))},mxXmlCanvas2D.prototype.text=function(e,t,n,a,i,o,s,r,l,d,c,m){if(this.textEnabled&&null!=i){mxUtils.isNode(i)&&(i=mxUtils.getOuterHtml(i));var u=this.createElement("text");u.setAttribute("x",this.format(e)),u.setAttribute("y",this.format(t)),u.setAttribute("w",this.format(n)),u.setAttribute("h",this.format(a)),u.setAttribute("str",i),null!=o&&u.setAttribute("align",o),null!=s&&u.setAttribute("valign",s),u.setAttribute("wrap",r?"1":"0"),null==l&&(l=""),u.setAttribute("format",l),null!=d&&u.setAttribute("fill",d?"1":"0"),null!=c&&u.setAttribute("clip",c?"1":"0"),null!=m&&u.setAttribute("rotation",m),this.root.appendChild(u)}},mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))},mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))},mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))},mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D),mxSvgCanvas2D.prototype.node=null,mxSvgCanvas2D.prototype.matchHtmlAlignment=!0,mxSvgCanvas2D.prototype.textEnabled=!0,mxSvgCanvas2D.prototype.foEnabled=!0,mxSvgCanvas2D.prototype.strokeTolerance=0,mxSvgCanvas2D.prototype.refCount=0,mxSvgCanvas2D.prototype.blockImagePointerEvents=!1,mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments),this.gradients=[]},mxSvgCanvas2D.prototype.createStyle=function(e){return(e=this.createElement("style")).setAttribute("type","text/css"),mxUtils.write(e,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}"),e},mxSvgCanvas2D.prototype.createElement=function(e,t){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(t||mxConstants.NS_SVG,e);var n=this.root.ownerDocument.createElement(e);return null!=t&&n.setAttribute("xmlns",t),n},mxSvgCanvas2D.prototype.createGradientId=function(e,t,n,a,i){return"#"==e.charAt(0)&&(e=e.substring(1)),"#"==t.charAt(0)&&(t=t.substring(1)),e=e.toLowerCase()+"-"+n,t=t.toLowerCase()+"-"+a,n=null,null==i||i==mxConstants.DIRECTION_SOUTH?n="s":i==mxConstants.DIRECTION_EAST?n="e":(a=e,e=t,t=a,i==mxConstants.DIRECTION_NORTH?n="s":i==mxConstants.DIRECTION_WEST&&(n="e")),"mx-gradient-"+e+"-"+t+"-"+n},mxSvgCanvas2D.prototype.getSvgGradient=function(e,t,n,a,i){var o=this.createGradientId(e,t,n,a,i),s=this.gradients[o];if(null==s){var r=this.root.ownerSVGElement,l=0,d=o+"-"+l;if(null!=r)for(s=r.ownerDocument.getElementById(d);null!=s&&s.ownerSVGElement!=r;)d=o+"-"+l++,s=r.ownerDocument.getElementById(d);else d="id"+ ++this.refCount;null==s&&((s=this.createSvgGradient(e,t,n,a,i)).setAttribute("id",d),null!=this.defs?this.defs.appendChild(s):r.appendChild(s)),this.gradients[o]=s}return s.getAttribute("id")},mxSvgCanvas2D.prototype.createSvgGradient=function(e,t,n,a,i){var o=this.createElement("linearGradient");return o.setAttribute("x1","0%"),o.setAttribute("y1","0%"),o.setAttribute("x2","0%"),o.setAttribute("y2","0%"),null==i||i==mxConstants.DIRECTION_SOUTH?o.setAttribute("y2","100%"):i==mxConstants.DIRECTION_EAST?o.setAttribute("x2","100%"):i==mxConstants.DIRECTION_NORTH?o.setAttribute("y1","100%"):i==mxConstants.DIRECTION_WEST&&o.setAttribute("x1","100%"),n=1>n?";stop-opacity:"+n:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+n),o.appendChild(i),n=1>a?";stop-opacity:"+a:"",(i=this.createElement("stop")).setAttribute("offset","100%"),i.setAttribute("style","stop-color:"+t+n),o.appendChild(i),o},mxSvgCanvas2D.prototype.addNode=function(e,t){var n=this.node,a=this.state;if(null!=n){if("path"==n.nodeName){if(!(null!=this.path&&0<this.path.length))return;n.setAttribute("d",this.path.join(" "))}e&&null!=a.fillColor?this.updateFill():this.styleEnabled||("ellipse"!=n.nodeName||!mxClient.IS_NS||mxClient.IS_GC||mxClient.IS_SF?n.setAttribute("fill","none"):n.setAttribute("fill","transparent"),e=!1),t&&null!=a.strokeColor?this.updateStroke():this.styleEnabled||n.setAttribute("stroke","none"),null!=a.transform&&0<a.transform.length&&n.setAttribute("transform",a.transform),a.shadow&&this.root.appendChild(this.createShadow(n)),0<this.strokeTolerance&&!e&&this.root.appendChild(this.createTolerance(n)),this.pointerEvents&&("path"!=n.nodeName||this.path[this.path.length-1]==this.closeOp)&&n.setAttribute("pointer-events","all"),this.root.appendChild(n)}},mxSvgCanvas2D.prototype.updateFill=function(){var e=this.state;1>e.alpha&&this.node.setAttribute("fill-opacity",e.alpha),null!=e.fillColor&&(null!=e.gradientColor?(e=this.getSvgGradient(e.fillColor,e.gradientColor,e.fillAlpha,e.gradientAlpha,e.gradientDirection),this.node.setAttribute("fill","url(#"+e+")")):this.node.setAttribute("fill",e.fillColor.toLowerCase()))},mxSvgCanvas2D.prototype.updateStroke=function(){var e=this.state;this.node.setAttribute("stroke",e.strokeColor.toLowerCase()),1>e.alpha&&this.node.setAttribute("stroke-opacity",e.alpha);var t=Math.max(1,this.format(e.strokeWidth*e.scale));1!=t&&this.node.setAttribute("stroke-width",t),"path"==this.node.nodeName&&this.updateStrokeAttributes(),e.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern(t))},mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var e=this.state;if(null!=e.lineJoin&&"miter"!=e.lineJoin&&this.node.setAttribute("stroke-linejoin",e.lineJoin),null!=e.lineCap){var t=e.lineCap;"flat"==t&&(t="butt"),"butt"!=t&&this.node.setAttribute("stroke-linecap",t)}null!=e.miterLimit&&(!this.styleEnabled||10!=e.miterLimit)&&this.node.setAttribute("stroke-miterlimit",e.miterLimit)},mxSvgCanvas2D.prototype.createDashPattern=function(e){var t=this.state.dashPattern.split(" "),n=[];if(0<t.length)for(var a=0;a<t.length;a++)n[a]=Number(t[a])*e;return n.join(" ")},mxSvgCanvas2D.prototype.createTolerance=function(e){e=e.cloneNode(!0);var t=parseFloat(e.getAttribute("stroke-width")||1)+this.strokeTolerance;return e.setAttribute("pointer-events","stroke"),e.setAttribute("visibility","hidden"),e.removeAttribute("stroke-dasharray"),e.setAttribute("stroke-width",t),e.setAttribute("fill","none"),e.setAttribute("stroke",mxClient.IS_OP?"none":"white"),e},mxSvgCanvas2D.prototype.createShadow=function(e){e=e.cloneNode(!0);var t=this.state;return"none"!=e.getAttribute("fill")&&e.setAttribute("fill",t.shadowColor),"none"!=e.getAttribute("stroke")&&e.setAttribute("stroke",t.shadowColor),e.setAttribute("transform","translate("+this.format(t.shadowDx*t.scale)+","+this.format(t.shadowDy*t.scale)+")"+(t.transform||"")),e.setAttribute("opacity",t.shadowAlpha),e},mxSvgCanvas2D.prototype.rotate=function(e,t,n,a,i){if(0!=e||t||n){var o=this.state;if(a+=o.dx,i+=o.dy,a*=o.scale,i*=o.scale,o.transform=o.transform||"",t&&n)e+=180;else if(t^n){var s=t?a:0,r=t?-1:1,l=n?i:0,d=n?-1:1;o.transform+="translate("+this.format(s)+","+this.format(l)+")scale("+this.format(r)+","+this.format(d)+")translate("+this.format(-s)+","+this.format(-l)+")"}(t?!n:n)&&(e*=-1),0!=e&&(o.transform+="rotate("+this.format(e)+","+this.format(a)+","+this.format(i)+")"),o.rotation+=e,o.rotationCx=a,o.rotationCy=i}},mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createElement("path")},mxSvgCanvas2D.prototype.rect=function(e,t,n,a){var i=this.state,o=this.createElement("rect");o.setAttribute("x",this.format((e+i.dx)*i.scale)),o.setAttribute("y",this.format((t+i.dy)*i.scale)),o.setAttribute("width",this.format(n*i.scale)),o.setAttribute("height",this.format(a*i.scale)),this.node=o},mxSvgCanvas2D.prototype.roundrect=function(e,t,n,a,i,o){this.rect(e,t,n,a),0<i&&this.node.setAttribute("rx",this.format(i*this.state.scale)),0<o&&this.node.setAttribute("ry",this.format(o*this.state.scale))},mxSvgCanvas2D.prototype.ellipse=function(e,t,n,a){var i=this.state,o=this.createElement("ellipse");o.setAttribute("cx",Math.round((e+n/2+i.dx)*i.scale)),o.setAttribute("cy",Math.round((t+a/2+i.dy)*i.scale)),o.setAttribute("rx",n/2*i.scale),o.setAttribute("ry",a/2*i.scale),this.node=o},mxSvgCanvas2D.prototype.image=function(e,t,n,a,i,o,s,r){i=this.converter.convert(i),o=null==o||o,s=null!=s&&s,r=null!=r&&r;var l=this.state;e+=l.dx,t+=l.dy;var d=this.createElement("image");if(d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(t*l.scale)),d.setAttribute("width",this.format(n*l.scale)),d.setAttribute("height",this.format(a*l.scale)),null==d.setAttributeNS?d.setAttribute("xlink:href",i):d.setAttributeNS(mxConstants.NS_XLINK,"href",i),o||d.setAttribute("preserveAspectRatio","none"),1>l.alpha&&d.setAttribute("opacity",l.alpha),i=this.state.transform||"",s||r){var c=o=1,m=0,u=0;s&&(o=-1,m=-n-2*e),r&&(c=-1,u=-a-2*t),i+="scale("+o+","+c+")translate("+m+","+u+")"}0<i.length&&d.setAttribute("transform",i),this.root.appendChild(d),this.blockImagePointerEvents&&(d.setAttribute("style","pointer-events:none"),(d=this.createElement("rect")).setAttribute("visibility","hidden"),d.setAttribute("pointer-events","fill"),d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(t*l.scale)),d.setAttribute("width",this.format(n*l.scale)),d.setAttribute("height",this.format(a*l.scale)),this.root.appendChild(d))},mxSvgCanvas2D.prototype.createDiv=function(e,t,n,a,i){return n=this.state,a="display:inline-block;font-size:"+Math.round(n.fontSize)+"px;font-family:"+n.fontFamily+";color:"+n.fontColor+";line-height:"+Math.round(n.fontSize*mxConstants.LINE_HEIGHT)+"px;"+a,(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="font-weight:bold;"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="font-style:italic;"),(n.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(a+="font-decoration:underline;"),t==mxConstants.ALIGN_CENTER?a+="text-align:center;":t==mxConstants.ALIGN_RIGHT&&(a+="text-align:right;"),t="",null!=n.fontBackgroundColor&&(t+="background-color:"+n.fontBackgroundColor+";"),null!=n.fontBorderColor&&(t+="border:1px solid "+n.fontBorderColor+";"),mxUtils.isNode(e)||(n=document.createElement("textarea"),n.innerHTML=e.replace(/&lt;/g,"&amp;lt;").replace(/&gt;/g,"&amp;gt;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),e=n.value,i?a+=t:0<t.length&&(e='<div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;'+t+'">'+e+"</div>")),!mxClient.IS_IE&&document.createElementNS?((i=document.createElementNS("http://www.w3.org/1999/xhtml","div")).setAttribute("style",a),mxUtils.isNode(e)?this.root.ownerDocument!=document?i.appendChild(e.cloneNode(!0)):i.appendChild(e):i.innerHTML=e,i):(mxUtils.isNode(e)&&this.root.ownerDocument!=document&&(e=e.outerHTML),e=e.replace(/<br>/g,"<br />").replace(/<hr>/g,"<hr />"),mxUtils.parseXml('<div xmlns="http://www.w3.org/1999/xhtml" style="'+a+'">'+e+"</div>").documentElement)},mxSvgCanvas2D.prototype.text=function(e,t,n,a,i,o,s,r,l,d,c,m){if(this.textEnabled&&null!=i){m=null!=m?m:0;var u=this.state;if(e+=u.dx,t+=u.dy,this.foEnabled&&"html"==l){var p="vertical-align:top;";if(c?(p+="overflow:hidden;",0<a&&(p+="max-height:"+Math.round(a)+"px;"),0<n&&(p+="width:"+Math.round(n)+"px;")):d&&(p+="width:"+Math.round(n)+"px;",0<a&&(p+="max-height:"+Math.round(a)+"px;")),r?(!c&&0<n&&(p+="width:"+Math.round(n)+"px;"),p+="white-space:normal;"):p+="white-space:nowrap;",r=this.createElement("g"),1>u.alpha&&r.setAttribute("opacity",u.alpha),(l=this.createElement("foreignObject")).setAttribute("pointer-events","all"),null!=(p=this.createDiv(i,o,s,p,d))){r.appendChild(l),this.root.appendChild(r);var g=0;if(mxClient.IS_IE&&!mxClient.IS_SVG){var h=document.createElement("div");h.style.cssText=p.getAttribute("style"),h.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",h.style.visibility="hidden",h.innerHTML=mxUtils.isNode(i)?i.outerHTML:i,document.body.appendChild(h),g=h.offsetWidth,a=mxClient.IS_QUIRKS&&0<a&&c?Math.min(a,h.offsetHeight+2):h.offsetHeight,h.parentNode.removeChild(h),l.appendChild(p)}else this.root.ownerDocument!=document?(p.style.visibility="hidden",document.body.appendChild(p),g=p.offsetWidth,a=p.offsetHeight,l.appendChild(p),p.style.visibility=""):(l.appendChild(p),g=p.offsetWidth,a=p.offsetHeight);n=d?Math.max(n,g):g,1>u.alpha&&r.setAttribute("opacity",u.alpha),d=i=0,o==mxConstants.ALIGN_CENTER?i-=n/2:o==mxConstants.ALIGN_RIGHT&&(i-=n),e+=i,s==mxConstants.ALIGN_MIDDLE?d-=a/2:s==mxConstants.ALIGN_BOTTOM&&(d-=a),t+=d,o=1!=u.scale?"scale("+u.scale+")":"",0!=u.rotation&&this.rotateHtml?(o+="rotate("+u.rotation+","+n/2+","+a/2+")",t=this.rotatePoint((e+n/2)*u.scale,(t+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy),e=t.x-n*u.scale/2,t=t.y-a*u.scale/2):(e*=u.scale,t*=u.scale),0!=m&&(o+="rotate("+m+","+-i+","+-d+")"),r.setAttribute("transform","translate("+Math.round(e)+","+Math.round(t)+")"+o),l.setAttribute("width",Math.round(Math.max(1,n))),l.setAttribute("height",Math.round(Math.max(1,a)))}}else this.plainText(e,t,n,a,i,o,s,r,d,c,m)}},mxSvgCanvas2D.prototype.createClip=function(e,t,n,a){for(var i="mx-clip-"+(e=Math.round(e))+"-"+(t=Math.round(t))+"-"+(n=Math.round(n))+"-"+(a=Math.round(a)),o=0,s=i+"-"+o;null!=document.getElementById(s);)s=i+"-"+ ++o;return clip=this.createElement("clipPath"),clip.setAttribute("id",s),(i=this.createElement("rect")).setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("width",n),i.setAttribute("height",a),clip.appendChild(i),clip},mxSvgCanvas2D.prototype.plainText=function(e,t,n,a,i,o,s,r,l,d,c){c=null!=c?c:0,r=this.state;var m=Math.round(r.fontSize),u=this.createElement("g"),p=r.transform||"";if(0!=c&&(p+="rotate("+c+","+this.format(e*r.scale)+","+this.format(t*r.scale)+")"),d&&0<n&&0<a){g=e;c=t,o==mxConstants.ALIGN_CENTER?g-=n/2:o==mxConstants.ALIGN_RIGHT&&(g-=n),s==mxConstants.ALIGN_MIDDLE?c-=a/2:s==mxConstants.ALIGN_BOTTOM&&(c-=a),c=this.createClip(g*r.scale-2,c*r.scale-2,n*r.scale+4,a*r.scale+4),null!=this.defs?this.defs.appendChild(c):this.root.appendChild(c),u.setAttribute("clip-path","url(#"+c.getAttribute("id")+")")}this.updateFont(u,o),"start"!=(c=o==mxConstants.ALIGN_RIGHT?"end":o==mxConstants.ALIGN_CENTER?"middle":"start")&&u.setAttribute("text-anchor",c),(!this.styleEnabled||m!=mxConstants.DEFAULT_FONTSIZE)&&u.setAttribute("font-size",Math.round(m*r.scale)+"px"),0<p.length&&u.setAttribute("transform",p),1>r.alpha&&u.setAttribute("opacity",r.alpha);var p=i.split("\n"),g=Math.round(m*mxConstants.LINE_HEIGHT),h=m+(p.length-1)*g;for(c=t+m-1,s==mxConstants.ALIGN_MIDDLE?(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(h,a):h)/2,c-=a+1):s==mxConstants.ALIGN_BOTTOM&&(a=this.matchHtmlAlignment&&d&&0<a?Math.min(h,a):h,c-=a+2),a=0;a<p.length;a++)0<p[a].length&&0<mxUtils.trim(p[a]).length&&((d=this.createElement("text")).setAttribute("x",this.format(e*r.scale)),d.setAttribute("y",this.format(c*r.scale)),mxUtils.write(d,p[a]),u.appendChild(d)),c+=g;this.root.appendChild(u),this.addTextBackground(u,i,e,t,n,h,o,s,l)},mxSvgCanvas2D.prototype.updateFont=function(e){var t=this.state;e.setAttribute("fill",t.fontColor),(!this.styleEnabled||t.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&e.setAttribute("font-family",t.fontFamily),(t.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&e.setAttribute("font-weight","bold"),(t.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&e.setAttribute("font-style","italic"),(t.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.setAttribute("text-decoration","underline")},mxSvgCanvas2D.prototype.addTextBackground=function(e,t,n,a,i,o,s,r,l){var d=this.state;if(null!=d.fontBackgroundColor||null!=d.fontBorderColor){var c=null;l?(s==mxConstants.ALIGN_CENTER?n-=i/2:s==mxConstants.ALIGN_RIGHT&&(n-=i),r==mxConstants.ALIGN_MIDDLE?a-=o/2:r==mxConstants.ALIGN_BOTTOM&&(a-=o),c=new mxRectangle((n+1)*d.scale,a*d.scale,(i-2)*d.scale,(o+2)*d.scale)):null!=e.getBBox&&this.root.ownerDocument==document?(c=e.getBBox(),t=mxClient.IS_IE&&mxClient.IS_SVG,c=new mxRectangle(c.x,c.y+(t?0:1),c.width,c.height+(t?1:0))):(c=document.createElement("div"),c.style.lineHeight=Math.round(d.fontSize*mxConstants.LINE_HEIGHT)+"px",c.style.fontSize=Math.round(d.fontSize)+"px",c.style.fontFamily=d.fontFamily,c.style.whiteSpace="nowrap",c.style.position="absolute",c.style.visibility="hidden",c.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",c.style.zoom="1",(d.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(c.style.fontWeight="bold"),(d.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(c.style.fontStyle="italic"),t=mxUtils.htmlEntities(t,!1),c.innerHTML=t.replace(/\n/g,"<br/>"),document.body.appendChild(c),i=c.offsetWidth,o=c.offsetHeight,c.parentNode.removeChild(c),s==mxConstants.ALIGN_CENTER?n-=i/2:s==mxConstants.ALIGN_RIGHT&&(n-=i),r==mxConstants.ALIGN_MIDDLE?a-=o/2:r==mxConstants.ALIGN_BOTTOM&&(a-=o),c=new mxRectangle((n+1)*d.scale,(a+2)*d.scale,i*d.scale,(o+1)*d.scale)),null!=c&&((t=this.createElement("rect")).setAttribute("fill",d.fontBackgroundColor||"none"),t.setAttribute("stroke",d.fontBorderColor||"none"),t.setAttribute("x",Math.floor(c.x-1)),t.setAttribute("y",Math.floor(c.y-1)),t.setAttribute("width",Math.ceil(c.width+2)),t.setAttribute("height",Math.ceil(c.height)),d=null!=d.fontBorderColor?Math.max(1,this.format(d.scale)):0,t.setAttribute("stroke-width",d),this.root.ownerDocument==document&&1==mxUtils.mod(d,2)&&t.setAttribute("transform","translate(0.5, 0.5)"),e.insertBefore(t,e.firstChild))}},mxSvgCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxSvgCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxSvgCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)};var mxVmlCanvas2D=function(e){mxAbstractCanvas2D.call(this),this.root=e};mxUtils.extend(mxVmlCanvas2D,mxAbstractCanvas2D),mxVmlCanvas2D.prototype.node=null,mxVmlCanvas2D.prototype.textEnabled=!0,mxVmlCanvas2D.prototype.moveOp="m",mxVmlCanvas2D.prototype.lineOp="l",mxVmlCanvas2D.prototype.curveOp="c",mxVmlCanvas2D.prototype.closeOp="x",mxVmlCanvas2D.prototype.rotatedHtmlBackground="",mxVmlCanvas2D.prototype.vmlScale=1,mxVmlCanvas2D.prototype.addNode=function(e,t){var n=this.node,a=this.state;if(null!=n){if("shape"==n.nodeName){if(!(null!=this.path&&0<this.path.length))return;n.path=this.path.join(" ")+" e",n.style.width=this.root.style.width,n.style.height=this.root.style.height,n.coordsize=parseInt(n.style.width)+" "+parseInt(n.style.height)}n.strokeweight=this.format(Math.max(1,a.strokeWidth*a.scale/this.vmlScale))+"px",a.shadow&&this.root.appendChild(this.createShadow(n,e&&null!=a.fillColor,t&&null!=a.strokeColor)),t&&null!=a.strokeColor?(n.stroked="true",n.strokecolor=a.strokeColor):n.stroked="false",n.appendChild(this.createStroke()),e&&null!=a.fillColor?n.appendChild(this.createFill()):!this.pointerEvents||"shape"==n.nodeName&&this.path[this.path.length-1]!=this.closeOp?n.filled="false":n.appendChild(this.createTransparentFill()),this.root.appendChild(n)}},mxVmlCanvas2D.prototype.createTransparentFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.src=mxClient.imageBasePath+"/transparent.gif",e.type="tile",e},mxVmlCanvas2D.prototype.createFill=function(){var e=this.state,t=document.createElement(mxClient.VML_PREFIX+":fill");if(t.color=e.fillColor,null!=e.gradientColor){t.type="gradient",t.method="none",t.color2=e.gradientColor;var n=180-e.rotation,n=e.gradientDirection==mxConstants.DIRECTION_WEST?n-(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_EAST?n+(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_NORTH?n-(180+("y"==this.root.style.flip?-180:0)):n+("y"==this.root.style.flip?-180:0);"x"!=this.root.style.flip&&"y"!=this.root.style.flip||(n*=-1),t.angle=mxUtils.mod(n,360),t.opacity=100*e.alpha*e.fillAlpha+"%",t.setAttribute(mxClient.OFFICE_PREFIX+":opacity2",100*e.alpha*e.gradientAlpha+"%")}else 1>e.alpha&&(t.opacity=100*e.alpha+"%");return t},mxVmlCanvas2D.prototype.createStroke=function(){var e=this.state,t=document.createElement(mxClient.VML_PREFIX+":stroke");return t.endcap=e.lineCap||"flat",t.joinstyle=e.lineJoin||"miter",t.miterlimit=e.miterLimit||"10",1>e.alpha&&(t.opacity=100*e.alpha+"%"),e.dashed&&(t.dashstyle=this.getVmlDashStyle()),t},mxVmlCanvas2D.prototype.getVmlDashStyle=function(){var e="dash";if(null!=this.state.dashPattern){var t=this.state.dashPattern.split(" ");0<t.length&&1==t[0]&&(e="0 2")}return e},mxVmlCanvas2D.prototype.createShadow=function(e,t,n){var a=this.state,i=-a.rotation*(Math.PI/180),o=Math.cos(i),i=Math.sin(i),s=a.shadowDx*a.scale,r=a.shadowDy*a.scale;"x"==this.root.style.flip?s*=-1:"y"==this.root.style.flip&&(r*=-1);var l=e.cloneNode(!0);return l.style.marginLeft=Math.round(s*o-r*i)+"px",l.style.marginTop=Math.round(s*i+r*o)+"px",8==document.documentMode&&(l.strokeweight=e.strokeweight,"shape"==e.nodeName&&(l.path=this.path.join(" ")+" e",l.style.width=this.root.style.width,l.style.height=this.root.style.height,l.coordsize=parseInt(e.style.width)+" "+parseInt(e.style.height))),n?(l.strokecolor=a.shadowColor,l.appendChild(this.createShadowStroke())):l.stroked="false",t?l.appendChild(this.createShadowFill()):l.filled="false",l},mxVmlCanvas2D.prototype.createShadowFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.color=this.state.shadowColor,e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.createShadowStroke=function(){var e=this.createStroke();return e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.rotate=function(e,t,n,a,i){t&&n?e+=180:t?this.root.style.flip="x":n&&(this.root.style.flip="y"),(t?!n:n)&&(e*=-1),this.root.style.rotation=e,this.state.rotation+=e,this.state.rotationCx=a,this.state.rotationCy=i},mxVmlCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=document.createElement(mxClient.VML_PREFIX+":shape"),this.node.style.position="absolute"},mxVmlCanvas2D.prototype.quadTo=function(e,t,n,a){var i=this.state,o=(this.lastX+i.dx)*i.scale,s=(this.lastY+i.dy)*i.scale;e=(e+i.dx)*i.scale;var s=s+2/3*((t=(t+i.dy)*i.scale)-s),r=(n=(n+i.dx)*i.scale)+2/3*(e-n);t=(a=(a+i.dy)*i.scale)+2/3*(t-a),this.path.push("c "+this.format(o+2/3*(e-o))+" "+this.format(s)+" "+this.format(r)+" "+this.format(t)+" "+this.format(n)+" "+this.format(a)),this.lastX=n/i.scale-i.dx,this.lastY=a/i.scale-i.dy},mxVmlCanvas2D.prototype.createRect=function(e,t,n,a,i){var o=this.state;return e=document.createElement(e),e.style.position="absolute",e.style.left=this.format((t+o.dx)*o.scale)+"px",e.style.top=this.format((n+o.dy)*o.scale)+"px",e.style.width=this.format(a*o.scale)+"px",e.style.height=this.format(i*o.scale)+"px",e},mxVmlCanvas2D.prototype.rect=function(e,t,n,a){this.node=this.createRect(mxClient.VML_PREFIX+":rect",e,t,n,a)},mxVmlCanvas2D.prototype.roundrect=function(e,t,n,a,i,o){this.node=this.createRect(mxClient.VML_PREFIX+":roundrect",e,t,n,a),this.node.setAttribute("arcsize",Math.max(100*i/n,100*o/a)+"%")},mxVmlCanvas2D.prototype.ellipse=function(e,t,n,a){this.node=this.createRect(mxClient.VML_PREFIX+":oval",e,t,n,a)},mxVmlCanvas2D.prototype.image=function(e,t,n,a,i,o,s,r){var l=null;o?(l=this.createRect(mxClient.VML_PREFIX+":rect",e,t,n,a),l.stroked="false",e=document.createElement(mxClient.VML_PREFIX+":fill"),e.aspect=o?"atmost":"ignore",e.rotate="true",e.type="frame",e.src=i,l.appendChild(e)):(l=this.createRect(mxClient.VML_PREFIX+":image",e,t,n,a),l.src=i),s&&r?l.style.rotation="180":s?l.style.flip="x":r&&(l.style.flip="y"),1>this.state.alpha&&(l.style.filter+="alpha(opacity="+100*this.state.alpha+")"),this.root.appendChild(l)},mxVmlCanvas2D.prototype.createDiv=function(e,t,n,a){n=document.createElement("div");var i=this.state,o="";return null!=i.fontBackgroundColor&&(o+="background-color:"+i.fontBackgroundColor+";"),null!=i.fontBorderColor&&(o+="border:1px solid "+i.fontBorderColor+";"),mxUtils.isNode(e)?n.appendChild(e):0<o.length&&!a?(a=document.createElement("div"),a.style.cssText=o,a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,n.appendChild(a)):(n.style.cssText=o,n.innerHTML=e),e=n.style,e.fontSize=Math.round(i.fontSize/this.vmlScale)+"px",e.fontFamily=i.fontFamily,e.color=i.fontColor,e.verticalAlign="top",e.textAlign=t||"left",e.lineHeight=Math.round(i.fontSize*mxConstants.LINE_HEIGHT/this.vmlScale)+"px",(i.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(e.fontWeight="bold"),(i.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(e.fontStyle="italic"),(i.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(e.fontDecoration="underline"),n},mxVmlCanvas2D.prototype.text=function(e,t,n,a,i,o,s,r,l,d,c,m){if(this.textEnabled&&null!=i){var u=this.state;if("html"==l){null!=u.rotation&&(t=this.rotatePoint(e,t,u.rotation,u.rotationCx,u.rotationCy),e=t.x,t=t.y),8==document.documentMode?(e+=u.dx,t+=u.dy):(e*=u.scale,t*=u.scale),(l=8==document.documentMode?document.createElement(mxClient.VML_PREFIX+":group"):document.createElement("div")).style.position="absolute",l.style.display="inline",l.style.left=this.format(e)+"px",l.style.top=this.format(t)+"px",l.style.zoom=u.scale;var p=document.createElement("div");p.style.position="relative",p.style.display="inline";var g=(h=mxUtils.getAlignmentAsPoint(o,s)).x,h=h.y;if(i=this.createDiv(i,o,s,d),o=document.createElement("div"),r?(!c&&0<n&&(i.style.width=Math.round(n)+"px"),i.style.whiteSpace="normal"):i.style.whiteSpace="nowrap",r=u.rotation+(m||0),this.rotateHtml&&0!=r?(o.style.display="inline",o.style.zoom="1",o.appendChild(i),8==document.documentMode&&"DIV"!=this.root.nodeName?(p.appendChild(o),l.appendChild(p)):l.appendChild(o)):8==document.documentMode?(p.appendChild(i),l.appendChild(p)):(i.style.display="inline",l.appendChild(i)),"DIV"!=this.root.nodeName?(m=document.createElement(mxClient.VML_PREFIX+":rect"),m.stroked="false",m.filled="false",m.appendChild(l),this.root.appendChild(m)):this.root.appendChild(l),c?(i.style.overflow="hidden",0<n&&(i.style.width=Math.round(n)+"px"),0<a&&8==document.documentMode&&(i.style.maxHeight=Math.round(a)+"px")):d&&(i.style.width=n+"px",0<a&&(i.style.maxHeight=Math.round(a)+"px")),this.rotateHtml&&0!=r){n=r*(Math.PI/180),r=parseFloat(parseFloat(Math.cos(n)).toFixed(8)),m=parseFloat(parseFloat(Math.sin(-n)).toFixed(8)),0>(n%=2*Math.PI)&&(n+=2*Math.PI),(n%=Math.PI)>Math.PI/2&&(n=Math.PI-n),s=Math.cos(n);var v=Math.sin(n);8==document.documentMode&&(i.style.display="inline-block",o.style.display="inline-block",p.style.display="inline-block"),i.style.visibility="hidden",document.body.appendChild(i),n=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&(c||d)&&p>a&&(p=a,i.style.height=p+"px"),c=((a=p)-a*s+n*-v)/2-m*n*(g+.5)+r*a*(h+.5),d=(n-n*s+a*-v)/2+r*n*(g+.5)+m*a*(h+.5),"group"==l.nodeName&&"DIV"==this.root.nodeName?(g=document.createElement("div"),g.style.display="inline-block",g.style.position="absolute",g.style.left=this.format(e+(d-n/2)*u.scale)+"px",g.style.top=this.format(t+(c-a/2)*u.scale)+"px",l.parentNode.appendChild(g),g.appendChild(l)):(u=8==document.documentMode?1:u.scale,l.style.left=this.format(e+(d-n/2)*u)+"px",l.style.top=this.format(t+(c-a/2)*u)+"px"),o.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+r+", M12="+m+", M21="+-m+", M22="+r+", sizingMethod='auto expand')",o.style.backgroundColor=this.rotatedHtmlBackground,1>this.state.alpha&&(o.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",o.appendChild(i)}else 8!=document.documentMode?(i.style.verticalAlign="top",1>this.state.alpha&&(l.style.filter="alpha(opacity="+100*this.state.alpha+")"),u=i.parentNode,i.style.visibility="hidden",document.body.appendChild(i),n=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&c&&p>a&&(p=a,i.style.height=p+"px"),a=p,i.style.visibility="",u.appendChild(i),l.style.left=this.format(e+n*g*this.state.scale)+"px",l.style.top=this.format(t+a*h*this.state.scale)+"px"):(1>this.state.alpha&&(i.style.filter="alpha(opacity="+100*this.state.alpha+")"),p.style.left=100*g+"%",p.style.top=100*h+"%")}else this.plainText(e,t,n,a,mxUtils.htmlEntities(i,!1),o,s,r,l,d,c,m)}},mxVmlCanvas2D.prototype.plainText=function(e,t,n,a,i,o,s,r,l,d,c,m){e=(e+(a=this.state).dx)*a.scale,t=(t+a.dy)*a.scale,(n=document.createElement(mxClient.VML_PREFIX+":shape")).style.width="1px",n.style.height="1px",n.stroked="false",(d=document.createElement(mxClient.VML_PREFIX+":fill")).color=a.fontColor,d.opacity=100*a.alpha+"%",n.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":path")).textpathok="true",d.v="m "+this.format(0)+" "+this.format(0)+" l "+this.format(1)+" "+this.format(0),n.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":textpath")).style.cssText="v-text-align:"+o,d.style.align=o,d.style.fontFamily=a.fontFamily,d.string=i,d.on="true",o=Math.round(a.fontSize*a.scale/this.vmlScale),d.style.fontSize=o+"px",(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(d.style.fontWeight="bold"),(a.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(d.style.fontStyle="italic"),(a.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d.style.textDecoration="underline"),a=o+((i=i.split("\n")).length-1)*o*mxConstants.LINE_HEIGHT,o=i=0,s==mxConstants.ALIGN_BOTTOM?o=-a/2:s!=mxConstants.ALIGN_MIDDLE&&(o=a/2),null!=m&&(n.style.rotation=m,s=m*(Math.PI/180),i=Math.sin(s)*o,o*=Math.cos(s)),n.appendChild(d),n.style.left=this.format(e-i)+"px",n.style.top=this.format(t+o)+"px",this.root.appendChild(n)},mxVmlCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxVmlCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxVmlCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)},mxGuide.prototype.graph=null,mxGuide.prototype.states=null,mxGuide.prototype.horizontal=!0,mxGuide.prototype.vertical=!0,mxGuide.prototype.guideX=null,mxGuide.prototype.guideY=null,mxGuide.prototype.setStates=function(e){this.states=e},mxGuide.prototype.isEnabledForEvent=function(e){return!0},mxGuide.prototype.getGuideTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxGuide.prototype.createGuideShape=function(e){return e=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH),e.isDashed=!0,e},mxGuide.prototype.move=function(e,t,n){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=e&&null!=t){var a=this.graph.getView().translate,i=this.graph.getView().scale,o=t.x,s=t.y,r=!1,l=!1,d=b=this.getGuideTolerance(),c=b;(b=e.clone()).x+=t.x,b.y+=t.y;var m=b.x,u=b.x+b.width,p=b.getCenterX(),g=b.y,h=b.y+b.height,v=b.getCenterY();t=function(t){t+=this.graph.panDx;var n=!1;if(Math.abs(t-p)<d?(o=t-e.getCenterX(),d=Math.abs(t-p),n=!0):Math.abs(t-m)<d?(o=t-e.x,d=Math.abs(t-m),n=!0):Math.abs(t-u)<d&&(o=t-e.x-e.width,d=Math.abs(t-u),n=!0),n){null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane()));var a=this.graph.container;t-=this.graph.panDx,this.guideX.points=[new mxPoint(t,-this.graph.panDy),new mxPoint(t,a.scrollHeight-3-this.graph.panDy)]}r=r||n};for(var b=function(t){t+=this.graph.panDy;var n=!1;if(Math.abs(t-v)<c?(s=t-e.getCenterY(),c=Math.abs(t-v),n=!0):Math.abs(t-g)<c?(s=t-e.y,c=Math.abs(t-g),n=!0):Math.abs(t-h)<c&&(s=t-e.y-e.height,c=Math.abs(t-h),n=!0),n){null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane()));var a=this.graph.container;t-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,t),new mxPoint(a.scrollWidth-3-this.graph.panDx,t)]}l=l||n},f=0;f<this.states.length;f++){var E=this.states[f];null!=E&&(this.horizontal&&(t.call(this,E.getCenterX()),t.call(this,E.x),t.call(this,E.x+E.width)),this.vertical&&(b.call(this,E.getCenterY()),b.call(this,E.y),b.call(this,E.y+E.height)))}r||null==this.guideX?null!=this.guideX&&(this.guideX.node.style.visibility="visible",this.guideX.redraw()):this.guideX.node.style.visibility="hidden",l||null==this.guideY?null!=this.guideY&&(this.guideY.node.style.visibility="visible",this.guideY.redraw()):this.guideY.node.style.visibility="hidden",n&&(r||(n=e.x-(this.graph.snap(e.x/i-a.x)+a.x)*i,o=this.graph.snap(o/i)*i-n),l||(a=e.y-(this.graph.snap(e.y/i-a.y)+a.y)*i,s=this.graph.snap(s/i)*i-a)),t=new mxPoint(o,s)}return t},mxGuide.prototype.hide=function(){null!=this.guideX&&(this.guideX.node.style.visibility="hidden"),null!=this.guideY&&(this.guideY.node.style.visibility="hidden")},mxGuide.prototype.destroy=function(){null!=this.guideX&&(this.guideX.destroy(),this.guideX=null),null!=this.guideY&&(this.guideY.destroy(),this.guideY=null)},mxStencil.defaultLocalized=!1,mxStencil.prototype.desc=null,mxStencil.prototype.constraints=null,mxStencil.prototype.aspect=null,mxStencil.prototype.w0=null,mxStencil.prototype.h0=null,mxStencil.prototype.bgNode=null,mxStencil.prototype.fgNode=null,mxStencil.prototype.strokewidth=null,mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0],this.bgNode=this.desc.getElementsByTagName("background")[0],this.w0=Number(this.desc.getAttribute("w")||100),this.h0=Number(this.desc.getAttribute("h")||100);var e=this.desc.getAttribute("aspect");this.aspect=null!=e?e:"variable",e=this.desc.getAttribute("strokewidth"),this.strokewidth=null!=e?e:"1"},mxStencil.prototype.parseConstraints=function(){var e=this.desc.getElementsByTagName("connections")[0];if(null!=e&&null!=(e=mxUtils.getChildNodes(e))&&0<e.length){this.constraints=[];for(var t=0;t<e.length;t++)this.constraints.push(this.parseConstraint(e[t]))}},mxStencil.prototype.parseConstraint=function(e){var t=Number(e.getAttribute("x")),n=Number(e.getAttribute("y"));return e="1"==e.getAttribute("perimeter"),new mxConnectionConstraint(new mxPoint(t,n),e)},mxStencil.prototype.evaluateTextAttribute=function(e,t,n){return t=this.evaluateAttribute(e,t,n),e=e.getAttribute("localized"),(mxStencil.defaultLocalized&&null==e||"1"==e)&&(t=mxResources.get(t)),t},mxStencil.prototype.evaluateAttribute=function(e,t,n){return null==(t=e.getAttribute(t))&&null!=(e=mxUtils.getTextContent(e))&&"function"==typeof(e=mxUtils.eval(e))&&(t=e(n)),t},mxStencil.prototype.drawShape=function(e,t,n,a,i,o){this.drawChildren(e,t,n,a,i,o,this.bgNode,!1),this.drawChildren(e,t,n,a,i,o,this.fgNode,!0)},mxStencil.prototype.drawChildren=function(e,t,n,a,i,o,s,r){if(null!=s){var l=mxUtils.getValue(t.style,mxConstants.STYLE_DIRECTION,null);for(n=this.computeAspect(t.style,n,a,i,o,l),a=Math.min(n.width,n.height),a="inherit"==this.strokewidth?Number(mxUtils.getNumber(t.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*a,e.setStrokeWidth(a),s=s.firstChild;null!=s;)s.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,t,s,n,r),s=s.nextSibling}},mxStencil.prototype.computeAspect=function(e,t,n,a,i,o){e=t,t=a/this.w0;var s=i/this.h0;if(o="north"==o||"south"==o){s=a/this.h0,t=i/this.w0;var r=(a-i)/2;e+=r,n-=r}return"fixed"==this.aspect&&(t=s=Math.min(t,s),o?(e+=(i-this.w0*t)/2,n+=(a-this.h0*s)/2):(e+=(a-this.w0*t)/2,n+=(i-this.h0*s)/2)),new mxRectangle(e,n,t,s)},mxStencil.prototype.drawNode=function(e,t,n,a,i){var o=n.nodeName,s=a.x,r=a.y,l=a.width,d=a.height,c=Math.min(l,d);if("save"==o)e.save();else if("restore"==o)e.restore();else if("path"==o)for(e.begin(),n=n.firstChild;null!=n;)n.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,t,n,a,i),n=n.nextSibling;else if("close"==o)e.close();else if("move"==o)e.moveTo(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d);else if("line"==o)e.lineTo(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d);else if("quad"==o)e.quadTo(s+Number(n.getAttribute("x1"))*l,r+Number(n.getAttribute("y1"))*d,s+Number(n.getAttribute("x2"))*l,r+Number(n.getAttribute("y2"))*d);else if("curve"==o)e.curveTo(s+Number(n.getAttribute("x1"))*l,r+Number(n.getAttribute("y1"))*d,s+Number(n.getAttribute("x2"))*l,r+Number(n.getAttribute("y2"))*d,s+Number(n.getAttribute("x3"))*l,r+Number(n.getAttribute("y3"))*d);else if("arc"==o)e.arcTo(Number(n.getAttribute("rx"))*l,Number(n.getAttribute("ry"))*d,Number(n.getAttribute("x-axis-rotation")),Number(n.getAttribute("large-arc-flag")),Number(n.getAttribute("sweep-flag")),s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d);else if("rect"==o)e.rect(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,Number(n.getAttribute("w"))*l,Number(n.getAttribute("h"))*d);else if("roundrect"==o)0==(t=n.getAttribute("arcsize"))&&(t=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),c=Number(n.getAttribute("w"))*l,a=Number(n.getAttribute("h"))*d,t=Number(t)/100,t=Math.min(c*t,a*t),e.roundrect(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,c,a,t,t);else if("ellipse"==o)e.ellipse(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,Number(n.getAttribute("w"))*l,Number(n.getAttribute("h"))*d);else if("image"==o)t=this.evaluateAttribute(n,"src",t),e.image(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,Number(n.getAttribute("w"))*l,Number(n.getAttribute("h"))*d,t,!1,"1"==n.getAttribute("flipH"),"1"==n.getAttribute("flipV"));else if("text"==o){if(c=this.evaluateTextAttribute(n,"str",t),a="1"==n.getAttribute("vertical")?-90:0,"0"==n.getAttribute("align-shape")){var m=t.rotation,u=1==mxUtils.getValue(t.style,mxConstants.STYLE_FLIPH,0);t=1==mxUtils.getValue(t.style,mxConstants.STYLE_FLIPV,0),a=u&&t?a-m:u||t?a+m:a-m}a-=n.getAttribute("rotation"),e.text(s+Number(n.getAttribute("x"))*l,r+Number(n.getAttribute("y"))*d,0,0,c,n.getAttribute("align")||"left",n.getAttribute("valign")||"top",!1,"",!1,!1,a)}else if("include-shape"==o)null!=(m=mxStencilRegistry.getStencil(n.getAttribute("name")))&&(s+=Number(n.getAttribute("x"))*l,r+=Number(n.getAttribute("y"))*d,c=Number(n.getAttribute("w"))*l,a=Number(n.getAttribute("h"))*d,m.drawShape(e,t,s,r,c,a));else if("fillstroke"==o)e.fillAndStroke();else if("fill"==o)e.fill();else if("stroke"==o)e.stroke();else if("strokewidth"==o)e.setStrokeWidth(Number(n.getAttribute("width"))*c);else if("dashed"==o)e.setDashed("1"==n.getAttribute("dashed"));else if("dashpattern"==o){if(null!=(n=n.getAttribute("pattern"))){for(n=n.split(" "),l=[],d=0;d<n.length;d++)0<n[d].length&&l.push(Number(n[d])*c);n=l.join(" "),e.setDashPattern(n)}}else"strokecolor"==o?e.setStrokeColor(n.getAttribute("color")):"linecap"==o?e.setLineCap(n.getAttribute("cap")):"linejoin"==o?e.setLineJoin(n.getAttribute("join")):"miterlimit"==o?e.setMiterLimit(Number(n.getAttribute("limit"))):"fillcolor"==o?e.setFillColor(n.getAttribute("color")):"alpha"==o?e.setAlpha(n.getAttribute("alpha")):"fontcolor"==o?e.setFontColor(n.getAttribute("color")):"fontstyle"==o?e.setFontStyle(n.getAttribute("style")):"fontfamily"==o?e.setFontFamily(n.getAttribute("family")):"fontsize"==o&&e.setFontSize(Number(n.getAttribute("size"))*c);i&&("fillstroke"==o||"fill"==o||"stroke"==o)&&e.setShadow(!1)},mxShape.prototype.dialect=null,mxShape.prototype.scale=1,mxShape.prototype.bounds=null,mxShape.prototype.points=null,mxShape.prototype.node=null,mxShape.prototype.style=null,mxShape.prototype.style=null,mxShape.prototype.boundingBox=null,mxShape.prototype.stencil=null,mxShape.prototype.svgStrokeTolerance=6,mxShape.prototype.pointerEvents=!0,mxShape.prototype.stencilPointerEvents=!1,mxShape.prototype.vmlScale=1,mxShape.prototype.init=function(e){null==this.node&&(this.node=this.create(e),null!=e&&e.appendChild(this.node))},mxShape.prototype.isParseVml=function(){return!0},mxShape.prototype.isHtmlAllowed=function(){return!1},mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round(this.strokewidth*this.scale)),2)?.5:0},mxShape.prototype.create=function(e){return null!=e.ownerSVGElement?this.createSvg(e):8==document.documentMode||this.dialect==mxConstants.DIALECT_SVG||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(e):this.createVml(e)},mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")},mxShape.prototype.createVml=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e},mxShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxShape.prototype.reconfigure=function(){this.redraw()},mxShape.prototype.redraw=function(){this.updateBoundsFromPoints(),this.checkBounds()?(this.node.style.visibility="","DIV"==this.node.nodeName&&this.isHtmlAllowed()?this.redrawHtmlShape():this.redrawShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)},mxShape.prototype.updateBoundsFromPoints=function(){var e=this.points;if(null!=e&&0<e.length&&null!=e[0]){this.bounds=new mxRectangle(Number(e[0].x),Number(e[0].y),1,1);for(var t=1;t<this.points.length;t++)null!=e[t]&&this.bounds.add(new mxRectangle(Number(e[t].x),Number(e[t].y),1,1))}},mxShape.prototype.checkBounds=function(){return null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height},mxShape.prototype.createVmlGroup=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e.style.width=this.node.style.width,e.style.height=this.node.style.height,e},mxShape.prototype.redrawShape=function(){var e=this.createCanvas();for(e.pointerEvents=this.pointerEvents;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);this.paint(e),this.node!=e.root&&this.node.insertAdjacentHTML("beforeend",e.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",(null==this.stencil||!this.stencilPointerEvents)&&mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(e)},mxShape.prototype.createCanvas=function(){var e=null,t=null;if(null!=this.node.ownerSVGElement)e=new mxSvgCanvas2D(this.node,!1),e.strokeTolerance=this.svgStrokeTolerance,e.blockImagePointerEvents=mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC,t=this.getSvgScreenOffset(),0!=t?this.node.setAttribute("transform","translate("+t+","+t+")"):this.node.removeAttribute("transform");else{this.updateVmlContainer();var n=Math.max(1,Math.round(this.bounds.width)),a=Math.max(1,Math.round(this.bounds.height)),t=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,e=new mxVmlCanvas2D(t,!1);""!=t.tagUrn&&(t.coordsize=n*this.vmlScale+","+a*this.vmlScale,e.scale(this.vmlScale),e.vmlScale=this.vmlScale),t=this.scale,e.translate(-Math.round(this.bounds.x/t),-Math.round(this.bounds.y/t))}return e},mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px";var e=Math.max(1,Math.round(this.bounds.width)),t=Math.max(1,Math.round(this.bounds.height));this.node.style.width=e+"px",this.node.style.height=t+"px",this.node.style.overflow="visible"},mxShape.prototype.destroyCanvas=function(e){if(e instanceof mxSvgCanvas2D){for(var t in e.gradients){var n=e.gradients[t];n.mxRefCount=(n.mxRefCount||0)+1}this.releaseSvgGradients(this.oldGradients),this.oldGradients=e.gradients}},mxShape.prototype.paint=function(e){var t=this.scale,n=this.bounds.x/t,a=this.bounds.y/t,i=this.bounds.width/t,o=this.bounds.height/t;if(this.isPaintBoundsInverted())var s=(i-o)/2,n=n+s,a=a-s,s=i,i=o,o=s;if(this.updateTransform(e,n,a,i,o),this.configureCanvas(e,n,a,i,o),null!=this.stencil)this.paintStencilShape(e,n,a,i,o);else if(e.setStrokeWidth(this.strokewidth),null!=this.points){for(n=[],a=0;a<this.points.length;a++)n.push(new mxPoint(this.points[a].x/t,this.points[a].y/t));this.paintEdgeShape(e,n)}else this.paintVertexShape(e,n,a,i,o)},mxShape.prototype.configureCanvas=function(e,t,n,a,i){var o=null;null!=this.style&&(o=this.style.dashPattern),e.setAlpha(this.opacity/100),null!=this.isShadow&&e.setShadow(this.isShadow),null!=this.isDashed&&e.setDashed(this.isDashed),null!=o&&e.setDashPattern(o),null!=this.gradient?(t=this.getGradientBounds(e,t,n,a,i),e.setGradient(this.fill,this.gradient,t.x,t.y,t.width,t.height,this.gradientDirection)):e.setFillColor(this.fill),e.setStrokeColor(this.stroke)},mxShape.prototype.getGradientBounds=function(e,t,n,a,i){return new mxRectangle(t,n,a,i)},mxShape.prototype.updateTransform=function(e,t,n,a,i){e.scale(this.scale),e.rotate(this.getShapeRotation(),this.flipH,this.flipV,t+a/2,n+i/2)},mxShape.prototype.paintStencilShape=function(e,t,n,a,i){this.stencilPointerEvents&&(this.dialect==mxConstants.DIALECT_SVG?this.addTransparentBackgroundRectangle(this.node,t,n,a,i):8!=document.documentMode&&this.setTransparentBackgroundImage(this.node)),this.stencil.drawShape(e,this,t,n,a,i)},mxShape.prototype.paintVertexShape=function(e,t,n,a,i){this.paintBackground(e,t,n,a,i),e.setShadow(!1),this.paintForeground(e,t,n,a,i)},mxShape.prototype.paintBackground=function(e,t,n,a,i){},mxShape.prototype.paintForeground=function(e,t,n,a,i){},mxShape.prototype.paintEdgeShape=function(e,t){},mxShape.prototype.getArcSize=function(e,t){var n=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(e*n,t*n)},mxShape.prototype.paintGlassEffect=function(e,t,n,a,i,o){var s=Math.ceil(this.strokewidth/2);e.setGradient("#ffffff","#ffffff",t,n,a,.6*i,"south",.9,.1),e.begin(),o+=2*s,this.isRounded?(e.moveTo(t-s+o,n-s),e.quadTo(t-s,n-s,t-s,n-s+o),e.lineTo(t-s,n+.4*i),e.quadTo(t+.5*a,n+.7*i,t+a+s,n+.4*i),e.lineTo(t+a+s,n-s+o),e.quadTo(t+a+s,n-s,t+a+s-o,n-s)):(e.moveTo(t-s,n-s),e.lineTo(t-s,n+.4*i),e.quadTo(t+.5*a,n+.7*i,t+a+s,n+.4*i),e.lineTo(t+a+s,n-s)),e.close(),e.fill()},mxShape.prototype.apply=function(e){this.state=e,this.style=e.style,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill),this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient),this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection),this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke),this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth),this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing),this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize),this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize),this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow),this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow),this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation),this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction),this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV),"north"!=this.direction&&"south"!=this.direction||(e=this.flipH,this.flipH=this.flipV,this.flipV=e),this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow),this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed),this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded),this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass),"none"==this.fill&&(this.fill=null),"none"==this.gradient&&(this.gradient=null),"none"==this.stroke&&(this.stroke=null))},mxShape.prototype.setCursor=function(e){null==e&&(e=""),this.cursor=e,null!=this.node&&(this.node.style.cursor=e)},mxShape.prototype.getCursor=function(){return this.cursor},mxShape.prototype.updateBoundingBox=function(){if(null!=this.bounds){var e=this.createBoundingBox();if(null!=e){this.augmentBoundingBox(e);var t=this.getShapeRotation();0!=t&&(e=mxUtils.getBoundingBox(e,t)),e.x=Math.floor(e.x),e.y=Math.floor(e.y),e.width=Math.ceil(e.width),e.height=Math.ceil(e.height)}this.boundingBox=e}},mxShape.prototype.createBoundingBox=function(){var e=this.bounds.clone();if(this.isPaintBoundsInverted()){var t=(e.width-e.height)/2;e.x+=t,e.y-=t,t=e.width,e.width=e.height,e.height=t}return e},mxShape.prototype.augmentBoundingBox=function(e){this.isShadow&&(e.width+=Math.ceil(mxConstants.SHADOW_OFFSET_X*this.scale),e.height+=Math.ceil(mxConstants.SHADOW_OFFSET_Y*this.scale));var t=Math.ceil(this.strokewidth*this.scale);e.grow(Math.ceil(t/2))},mxShape.prototype.isPaintBoundsInverted=function(){return null==this.stencil&&("north"==this.direction||"south"==this.direction)},mxShape.prototype.getRotation=function(){return null!=this.rotation?this.rotation:0},mxShape.prototype.getTextRotation=function(){var e=this.getRotation();return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxShape.prototype.getShapeRotation=function(){var e=this.getRotation();return null!=this.direction&&("north"==this.direction?e+=270:"west"==this.direction?e+=180:"south"==this.direction&&(e+=90)),e},mxShape.prototype.addTransparentBackgroundRectangle=function(e,t,n,a,i){(e=document.createElementNS(mxConstants.NS_SVG,"rect")).setAttribute("x",t),e.setAttribute("y",n),e.setAttribute("width",a),e.setAttribute("height",i),e.setAttribute("fill","none"),e.setAttribute("stroke","none"),e.setAttribute("pointer-events","all"),this.node.appendChild(e)},mxShape.prototype.setTransparentBackgroundImage=function(e){e.style.backgroundImage="url('"+mxClient.imageBasePath+"/transparent.gif')"},mxShape.prototype.releaseSvgGradients=function(e){if(null!=e)for(var t in e){var n=e[t];n.mxRefCount=(n.mxRefCount||0)-1,0==n.mxRefCount&&null!=n.parentNode&&n.parentNode.removeChild(n)}},mxShape.prototype.destroy=function(){null!=this.node&&(mxEvent.release(this.node),null!=this.node.parentNode&&this.node.parentNode.removeChild(this.node),this.node=null),this.releaseSvgGradients(this.oldGradients),this.oldGradients=null};var mxStencilRegistry={stencils:[],addStencil:function(e,t){mxStencilRegistry.stencils[e]=t},getStencil:function(e){return mxStencilRegistry.stencils[e]}},mxMarker={markers:[],addMarker:function(e,t){mxMarker.markers[e]=t},createMarker:function(e,t,n,a,i,o,s,r,l,d){var c=mxMarker.markers[n];return null!=c?c(e,t,n,a,i,o,s,r,l,d):null}};!function(){function e(e,t,n,a,i,o,s,r,l,d){t=1.118*i*l,r=1.118*o*l,i*=s+l,o*=s+l;var c=a.clone();return c.x-=t,c.y-=r,s=n!=mxConstants.ARROW_CLASSIC?1:.75,a.x+=-i*s-t,a.y+=-o*s-r,function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i-o/2,c.y-o+i/2),n==mxConstants.ARROW_CLASSIC&&e.lineTo(c.x-3*i/4,c.y-3*o/4),e.lineTo(c.x+o/2-i,c.y-o-i/2),e.close(),d?e.fillAndStroke():e.stroke()}}function t(e,t,n,a,i,o,s,r,l,d){r=n==mxConstants.ARROW_DIAMOND?.7071:.9862,t=i*l*r,r*=o*l,i*=s+l,o*=s+l;var c=a.clone();c.x-=t,c.y-=r,a.x+=-i-t,a.y+=-o-r;var m=n==mxConstants.ARROW_DIAMOND?2:3.4;return function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i/2-o/m,c.y+i/m-o/2),e.lineTo(c.x-i,c.y-o),e.lineTo(c.x-i/2+o/m,c.y-o/2-i/m),e.close(),d?e.fillAndStroke():e.stroke()}}mxMarker.addMarker("classic",e),mxMarker.addMarker("block",e),mxMarker.addMarker("open",function(e,t,n,a,i,o,s,r,l,d){t=1.118*i*l,n=1.118*o*l,i*=s+l,o*=s+l;var c=a.clone();return c.x-=t,c.y-=n,a.x+=2*-t,a.y+=2*-n,function(){e.begin(),e.moveTo(c.x-i-o/2,c.y-o+i/2),e.lineTo(c.x,c.y),e.lineTo(c.x+o/2-i,c.y-o-i/2),e.stroke()}}),mxMarker.addMarker("oval",function(e,t,n,a,i,o,s,r,l,d){var c=s/2,m=a.clone();return a.x-=i*c,a.y-=o*c,function(){e.ellipse(m.x-c,m.y-c,s,s),d?e.fillAndStroke():e.stroke()}}),mxMarker.addMarker("diamond",t),mxMarker.addMarker("diamondThin",t)}(),mxUtils.extend(mxActor,mxShape),mxActor.prototype.paintVertexShape=function(e,t,n,a,i){e.translate(t,n),e.begin(),this.redrawPath(e,t,n,a,i),e.fillAndStroke()},mxActor.prototype.redrawPath=function(e,t,n,a,i){t=a/3,e.moveTo(0,i),e.curveTo(0,3*i/5,0,2*i/5,a/2,2*i/5),e.curveTo(a/2-t,2*i/5,a/2-t,0,a/2,0),e.curveTo(a/2+t,0,a/2+t,2*i/5,a/2,2*i/5),e.curveTo(a,2*i/5,a,3*i/5,a,i),e.close()},mxUtils.extend(mxCloud,mxActor),mxCloud.prototype.redrawPath=function(e,t,n,a,i){e.moveTo(.25*a,.25*i),e.curveTo(.05*a,.25*i,0,.5*i,.16*a,.55*i),e.curveTo(0,.66*i,.18*a,.9*i,.31*a,.8*i),e.curveTo(.4*a,i,.7*a,i,.8*a,.8*i),e.curveTo(a,.8*i,a,.6*i,.875*a,.5*i),e.curveTo(a,.3*i,.8*a,.1*i,.625*a,.2*i),e.curveTo(.5*a,.05*i,.3*a,.05*i,.25*a,.25*i),e.close()},mxUtils.extend(mxRectangleShape,mxShape),mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.isRounded&&!this.glass&&0==this.rotation},mxRectangleShape.prototype.paintBackground=function(e,t,n,a,i){if(this.isRounded){var o=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,o=Math.min(a*o,i*o);e.roundrect(t,n,a,i,o,o)}else e.rect(t,n,a,i);e.fillAndStroke()},mxRectangleShape.prototype.paintForeground=function(e,t,n,a,i){this.glass&&this.paintGlassEffect(e,t,n,a,i,this.getArcSize(a+this.strokewidth,i+this.strokewidth))},mxRectangleShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node),this.updateHtmlFilters(this.node),this.updateHtmlColors(this.node)},mxRectangleShape.prototype.updateHtmlBounds=function(e){var t=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);e.style.borderWidth=Math.max(1,t)+"px",e.style.overflow="hidden",e.style.left=Math.round(this.bounds.x-t/2)+"px",e.style.top=Math.round(this.bounds.y-t/2)+"px","CSS1Compat"==document.compatMode&&(t=-t),e.style.width=Math.round(Math.max(0,this.bounds.width+t))+"px",e.style.height=Math.round(Math.max(0,this.bounds.height+t))+"px"},mxRectangleShape.prototype.updateHtmlColors=function(e){var t=this.stroke;null!=t&&t!=mxConstants.NONE?(e.style.borderColor=t,this.isDashed?e.style.borderStyle="dashed":0<this.strokewidth&&(e.style.borderStyle="solid"),e.style.borderWidth=Math.max(1,Math.ceil(this.strokewidth*this.scale))+"px"):e.style.borderWidth="0px",null!=(t=this.fill)&&t!=mxConstants.NONE?(e.style.backgroundColor=t,e.style.backgroundImage="none"):this.pointerEvents?e.style.backgroundColor="transparent":8==document.documentMode?mxUtils.addTransparentBackgroundFilter(e):this.setTransparentBackgroundImage(e)},mxRectangleShape.prototype.updateHtmlFilters=function(e){var t="";if(100>this.opacity&&(t+="alpha(opacity="+this.opacity+")"),this.isShadow&&(t+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.SHADOWCOLOR+"')"),this.gradient){var n=this.fill,a=this.gradient,i="0",o={east:0,south:1,west:2,north:3},s=null!=this.direction?o[this.direction]:0;null!=this.gradientDirection&&(s=mxUtils.mod(s+o[this.gradientDirection]-1,4)),1==s?(i="1",o=n,n=a,a=o):2==s?(o=n,n=a,a=o):3==s&&(i="1"),t+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+n+"', endColorStr='"+a+"', gradientType='"+i+"')"}e.style.filter=t},mxUtils.extend(mxEllipse,mxShape),mxEllipse.prototype.paintVertexShape=function(e,t,n,a,i){e.ellipse(t,n,a,i),e.fillAndStroke()},mxUtils.extend(mxDoubleEllipse,mxShape),mxDoubleEllipse.prototype.vmlScale=10,mxDoubleEllipse.prototype.paintBackground=function(e,t,n,a,i){e.ellipse(t,n,a,i),e.fillAndStroke()},mxDoubleEllipse.prototype.paintForeground=function(e,t,n,a,i){var o=Math.min(4,Math.min(a/5,i/5));i-=2*o,0<(a-=2*o)&&0<i&&e.ellipse(t+o,n+o,a,i),e.stroke()},mxUtils.extend(mxRhombus,mxShape),mxRhombus.prototype.paintVertexShape=function(e,t,n,a,i){var o=a/2,s=i/2;e.begin(),e.moveTo(t+o,n),e.lineTo(t+a,n+s),e.lineTo(t+o,n+i),e.lineTo(t,n+s),e.close(),e.fillAndStroke()},mxUtils.extend(mxPolyline,mxShape),mxPolyline.prototype.getRotation=function(){return 0},mxPolyline.prototype.paintEdgeShape=function(e,t){this.paintLine(e,t,this.isRounded)},mxPolyline.prototype.paintLine=function(e,t,n){var a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,i=t[0],o=t[t.length-1];e.begin(),e.moveTo(i.x,i.y);for(var s=1;s<t.length-1;s++){var r=t[s],l=i.x-r.x,i=i.y-r.y;if(n&&s<t.length-1&&(0!=l||0!=i)){var d=Math.sqrt(l*l+i*i),l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d;e.lineTo(r.x+l,r.y+i),l=(i=t[s+1]).x-r.x,i=i.y-r.y,d=Math.max(1,Math.sqrt(l*l+i*i)),l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d,l=r.x+l,i=r.y+i,e.quadTo(r.x,r.y,l,i),r=new mxPoint(l,i)}else e.lineTo(r.x,r.y);i=r}e.lineTo(o.x,o.y),e.stroke()},mxUtils.extend(mxArrow,mxShape),mxArrow.prototype.paintEdgeShape=function(e,t){var n=mxConstants.ARROW_SPACING,a=mxConstants.ARROW_WIDTH,i=mxConstants.ARROW_SIZE,o=t[0],s=t[t.length-1],r=s.x-o.x,l=s.y-o.y,d=(c=Math.sqrt(r*r+l*l))-2*n-i,r=r/c,c=a*(l=l/c)/3,a=-a*r/3,m=(i=o.x-c/2+n*r)+c,u=(o=o.y-a/2+n*l)+a,p=m+d*r,g=p+c,h=(d=u+d*l)+a,v=g-3*c,b=h-3*a;e.begin(),e.moveTo(i,o),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,h),e.lineTo(s.x-n*r,s.y-n*l),e.lineTo(v,b),e.lineTo(v+c,b+a),e.close(),e.fillAndStroke()},mxUtils.extend(mxText,mxShape),mxText.prototype.baseSpacingTop=0,mxText.prototype.baseSpacingBottom=0,mxText.prototype.baseSpacingLeft=0,mxText.prototype.baseSpacingRight=0,mxText.prototype.replaceLinefeeds=!0,mxText.prototype.verticalTextRotation=-90,mxText.prototype.ignoreClippedStringSize=!0,mxText.prototype.ignoreStringSize=!1,mxText.prototype.isParseVml=function(){return!1},mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode},mxText.prototype.getSvgScreenOffset=function(){return 0},mxText.prototype.checkBounds=function(){return!(null==this.bounds||isNaN(this.bounds.x)||isNaN(this.bounds.y)||isNaN(this.bounds.width)||isNaN(this.bounds.height))},mxText.prototype.updateBoundingBox=function(){var e=this.node;8==document.documentMode&&null!=e.firstChild&&null!=(e=e.firstChild).firstChild&&(e=e.firstChild),this.boundingBox=this.bounds.clone();var t=this.getTextRotation();if(this.ignoreStringSize||null==e||"fill"==this.overflow||this.clipped&&this.ignoreClippedStringSize)this.boundingBox.x+=this.margin.x*this.boundingBox.width,this.boundingBox.y+=this.margin.y*this.boundingBox.height;else{var n=null,a=null;if(null!=e.ownerSVGElement)if(null!=e.firstChild&&null!=e.firstChild.firstChild&&"foreignObject"==e.firstChild.firstChild.nodeName)e=e.firstChild.firstChild,n=this.wrap?this.bounds.width:parseInt(e.getAttribute("width"))*this.scale,a=parseInt(e.getAttribute("height"))*this.scale;else{if(0==(t=e.getBBox()).width&&0==t.height)return;this.boundingBox=new mxRectangle(t.x,t.y,t.width,t.height),t=0}else a=this.state.view.textDiv,null!=this.offsetWidth&&null!=this.offsetHeight?(n=this.wrap?this.bounds.width:this.offsetWidth*this.scale,a=this.offsetHeight*this.scale):null!=a?(this.updateFont(a),this.updateSize(a),mxUtils.isNode(this.value)?a.innerHTML=this.value.outerHTML:(n=this.replaceLinefeeds?this.value.replace(/\n/g,"<br/>"):this.value,a.innerHTML=n),n=this.wrap?this.bounds.width:a.offsetWidth*this.scale,a=a.offsetHeight*this.scale):(n=this.wrap?this.bounds.width:e.offsetWidth*this.scale,a=e.offsetHeight*this.scale);null!=n&&null!=a&&(this.boundingBox=new mxRectangle(this.bounds.x+this.margin.x*n,this.bounds.y+this.margin.y*a,n,a))}null!=this.boundingBox&&(0!=t&&(t=mxUtils.getBoundingBox(this.boundingBox,t),this.boundingBox.x=t.x,this.boundingBox.y=t.y,mxClient.IS_QUIRKS||(this.boundingBox.width=t.width,this.boundingBox.height=t.height)),this.boundingBox.x=Math.floor(this.boundingBox.x),this.boundingBox.y=Math.floor(this.boundingBox.y),this.boundingBox.width=Math.ceil(this.boundingBox.width),this.boundingBox.height=Math.ceil(this.boundingBox.height))},mxText.prototype.getShapeRotation=function(){return 0},mxText.prototype.getTextRotation=function(){return null!=this.state&&null!=this.state.shape?this.state.shape.getTextRotation():0},mxText.prototype.isPaintBoundsInverted=function(){return!this.horizontal&&null!=this.state&&this.state.view.graph.model.isVertex(this.state.cell)},mxText.prototype.configureCanvas=function(e,t,n,a,i){mxShape.prototype.configureCanvas.apply(this,arguments),e.setFontColor(this.color),e.setFontBackgroundColor(this.background),e.setFontBorderColor(this.border),e.setFontFamily(this.family),e.setFontSize(this.size),e.setFontStyle(this.fontStyle)},mxText.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width="1px",this.node.style.height="1px",this.node.style.overflow="visible"},mxText.prototype.paint=function(e){var t=this.scale,n=this.bounds.x/t,a=this.bounds.y/t,i=this.bounds.width/t,t=this.bounds.height/t;this.updateTransform(e,n,a,i,t),this.configureCanvas(e,n,a,i,t);var o=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,s=o||e instanceof mxVmlCanvas2D?"html":"",r=this.value;!o&&"html"==s&&(r=mxUtils.htmlEntities(r,!1)),r=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==s?r.replace(/\n/g,"<br/>"):r,e.text(n,a,i,t,r,this.align,this.valign,this.wrap,s,"fill"==this.overflow,this.clipped,this.getTextRotation())},mxText.prototype.redrawHtmlShape=function(){var e=this.node.style;e.opacity=1>this.opacity?this.opacity:"",e.overflow="",e.width="",e.height="",this.updateFont(this.node),this.updateSize(this.node),this.updateValue(),this.offsetHeight=this.offsetWidth=null,null!=mxClient.CSS_PREFIX?this.updateHtmlTransform():this.updateHtmlFilter()},mxText.prototype.updateHtmlTransform=function(){var e=this.getTextRotation(),t=this.node.style,n=this.margin.x,a=this.margin.y;0!=e?(t[mxClient.CSS_PREFIX+"TransformOrigin"]=100*-n+"% "+100*-a+"%",t[mxClient.CSS_PREFIX+"Transform"]="translate("+100*n+"%,"+100*a+"%)scale("+this.scale+") rotate("+e+"deg)"):(t[mxClient.CSS_PREFIX+"TransformOrigin"]="0% 0%",t[mxClient.CSS_PREFIX+"Transform"]="scale("+this.scale+")translate("+100*n+"%,"+100*a+"%)"),t.left=Math.round(this.bounds.x)+"px",t.top=Math.round(this.bounds.y)+"px"},mxText.prototype.updateHtmlFilter=function(){var e=this.node.style,t=this.margin.x,n=this.margin.y,a=this.scale;e.filter="";var i=0,o=0;if(null!=(r=null!=this.state?this.state.view.textDiv:null)){if(r.style.overflow="",r.style.height="",r.style.width="",this.updateFont(r),this.updateSize(r),mxUtils.isNode(this.value))r.innerHTML=this.value.outerHTML;else{s=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(s=mxUtils.htmlEntities(s,!1)),s=this.replaceLinefeeds?s.replace(/\n/g,"<br/>"):s,r.innerHTML=s}i=r.offsetWidth+2,o=r.offsetHeight+2}else i=this.node.offsetWidth,o=this.node.offsetHeight+1;this.offsetWidth=i,this.offsetHeight=o,r=this.bounds.width/a,s=this.bounds.height/a,mxClient.IS_QUIRKS&&(this.clipped||"fill"==this.overflow)&&0<s?(s=Math.min(s,o),e.height=Math.round(s+1)+"px"):s=o,"fill"!=this.overflow&&(mxClient.IS_QUIRKS&&(this.clipped||this.wrap)&&0<r?(r=Math.min(r,i),e.width=Math.round(r)+"px"):r=i);var s=s*a,r=r*a,i=this.getTextRotation()*(Math.PI/180),o=parseFloat(parseFloat(Math.cos(i)).toFixed(8)),l=parseFloat(parseFloat(Math.sin(-i)).toFixed(8));0>(i=i%(2*Math.PI))&&(i+=2*Math.PI),(i%=Math.PI)>Math.PI/2&&(i=Math.PI-i);var d=Math.cos(i),c=Math.sin(-i),m=(s-s*d+r*c)/2+l*(t=r*-(t+.5))-o*(n=s*-(n+.5));0!=i&&(e.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+o+", M12="+l+", M21="+-l+", M22="+o+", sizingMethod='auto expand')"),e.zoom=a,e.left=Math.round(this.bounds.x+((r-r*d+s*c)/2-o*t-l*n)-r/2)+"px",e.top=Math.round(this.bounds.y+m-s/2)+"px"},mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{e=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(e=mxUtils.htmlEntities(e,!1));var e=this.replaceLinefeeds?e.replace(/\n/g,"<br/>"):e,t=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,n=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if(null!=t||null!=n)if("fill"==this.overflow)null!=t&&(this.node.style.backgroundColor=t),null!=n&&(this.node.style.border="1px solid "+n);else{var a="";null!=t&&(a+="background-color:"+t+";"),null!=n&&(a+="border:1px solid "+n+";"),e='<div style="zoom:1;'+a+"display:inline-block;_display:inline;padding-bottom:1px;padding-right:1px;line-height:"+this.node.style.lineHeight+'">'+e+"</div>",this.node.style.lineHeight=""}this.node.innerHTML=e}},mxText.prototype.updateFont=function(e){(e=e.style).lineHeight=Math.round(this.size*mxConstants.LINE_HEIGHT)+"px",e.fontSize=Math.round(this.size)+"px",e.fontFamily=this.family,e.verticalAlign="top",e.color=this.color,e.fontWeight=(this.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?"bold":"",e.fontStyle=(this.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?"italic":"",e.fontDecoration=(this.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE?"underline":"",e.textAlign=this.align==mxConstants.ALIGN_CENTER?"center":this.align==mxConstants.ALIGN_RIGHT?"right":"left"},mxText.prototype.updateSize=function(e){var t=Math.round(this.bounds.width/this.scale),n=Math.round(this.bounds.height/this.scale);e=e.style,this.clipped?(e.overflow="hidden",0<n&&(e.maxHeight=n+"px"),0<t&&(e.width=t+"px")):"fill"==this.overflow&&(e.width=t+"px",0<n&&(e.maxHeight=n+"px")),this.wrap?(!this.clipped&&0<t&&(e.width=t+"px"),e.whiteSpace="normal"):e.whiteSpace="nowrap"},mxText.prototype.updateMargin=function(){this.margin=mxUtils.getAlignmentAsPoint(this.align,this.valign)},mxText.prototype.getSpacing=function(){return new mxPoint(this.align==mxConstants.ALIGN_CENTER?(this.spacingLeft-this.spacingRight)/2:this.align==mxConstants.ALIGN_RIGHT?-this.spacingRight-this.baseSpacingRight:this.spacingLeft+this.baseSpacingLeft,this.valign==mxConstants.ALIGN_MIDDLE?(this.spacingTop-this.spacingBottom)/2:this.valign==mxConstants.ALIGN_BOTTOM?-this.spacingBottom-this.baseSpacingBottom:this.spacingTop+this.baseSpacingTop)},mxUtils.extend(mxTriangle,mxActor),mxTriangle.prototype.redrawPath=function(e,t,n,a,i){e.moveTo(0,0),e.lineTo(a,.5*i),e.lineTo(0,i),e.close()},mxUtils.extend(mxHexagon,mxActor),mxHexagon.prototype.redrawPath=function(e,t,n,a,i){e.moveTo(.25*a,0),e.lineTo(.75*a,0),e.lineTo(a,.5*i),e.lineTo(.75*a,i),e.lineTo(.25*a,i),e.lineTo(0,.5*i),e.close()},mxUtils.extend(mxLine,mxShape),mxLine.prototype.paintVertexShape=function(e,t,n,a,i){n+=i/2,e.begin(),e.moveTo(t,n),e.lineTo(t+a,n),e.stroke()},mxUtils.extend(mxImageShape,mxRectangleShape),mxImageShape.prototype.preserveImageAspect=!0,mxImageShape.prototype.getSvgScreenOffset=function(){return mxClient.IS_IE?0:.5},mxImageShape.prototype.apply=function(e){mxShape.prototype.apply.apply(this,arguments),this.gradient=this.stroke=this.fill=null,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER),this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||1==mxUtils.getValue(this.style,"imageFlipV",0))},mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect},mxImageShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxImageShape.prototype.paintVertexShape=function(e,t,n,a,i){if(null!=this.image){var o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null==o&&null==s||(e.setFillColor(o),e.setStrokeColor(s),e.rect(t,n,a,i),e.fillAndStroke()),e.image(t,n,a,i,this.image,this.preserveImageAspect,!1,!1)}else mxRectangleShape.prototype.paintBackground.apply(this,arguments)},mxImageShape.prototype.redrawHtmlShape=function(){if(this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px",this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px",this.node.style.backgroundColor=this.fill||"",this.node.style.borderColor=this.stroke||"",this.node.innerHTML="",null!=this.image){var e=document.createElement(mxClient.IS_IE6||null==mxClient.CSS_PREFIX&&0!=this.rotation?mxClient.VML_PREFIX+":image":"img");e.style.position="absolute",e.src=this.image;var t=100>this.opacity?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=t,this.flipH&&this.flipV?t+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?t+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(t+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"),e.style.filter!=t&&(e.style.filter=t),"image"==e.nodeName?e.style.rotation=this.rotation:e.style[mxClient.CSS_PREFIX+"Transform"]="rotate("+this.rotation+"deg)",e.style.width=this.node.style.width,e.style.height=this.node.style.height,this.node.style.backgroundImage="",this.node.appendChild(e)}else this.setTransparentBackgroundImage(this.node)},mxUtils.extend(mxLabel,mxRectangleShape),mxLabel.prototype.imageSize=mxConstants.DEFAULT_IMAGESIZE,mxLabel.prototype.spacing=2,mxLabel.prototype.indicatorSize=10,mxLabel.prototype.indicatorSpacing=2,mxLabel.prototype.init=function(e){mxShape.prototype.init.apply(this,arguments),null!=this.indicatorColor&&null!=this.indicatorShape&&(this.indicator=new this.indicatorShape,this.indicator.dialect=this.dialect,this.indicator.bounds=this.bounds,this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection,this.indicator.init(this.node))},mxLabel.prototype.redraw=function(){null!=this.indicator&&(this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection),mxShape.prototype.redraw.apply(this,arguments)},mxLabel.prototype.isHtmlAllowed=function(){return mxRectangleShape.prototype.isHtmlAllowed.apply(this,arguments)&&null==this.indicatorColor&&null==this.indicatorShape},mxLabel.prototype.paintForeground=function(e,t,n,a,i){this.paintImage(e,t,n,a,i),this.paintIndicator(e,t,n,a,i),mxRectangleShape.prototype.paintForeground.apply(this,arguments)},mxLabel.prototype.paintImage=function(e,t,n,a,i){null!=this.image&&(t=this.getImageBounds(t,n,a,i),e.image(t.x,t.y,t.width,t.height,this.image,!1,!1,!1))},mxLabel.prototype.getImageBounds=function(e,t,n,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE),r=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE),l=mxUtils.getNumber(this.style,mxConstants.STYLE_SPACING,this.spacing)+5;return e=i==mxConstants.ALIGN_CENTER?e+(n-s)/2:i==mxConstants.ALIGN_RIGHT?e+(n-s-l):e+l,t=o==mxConstants.ALIGN_TOP?t+l:o==mxConstants.ALIGN_BOTTOM?t+(a-r-l):t+(a-r)/2,new mxRectangle(e,t,s,r)},mxLabel.prototype.paintIndicator=function(e,t,n,a,i){null!=this.indicator?(this.indicator.bounds=this.getIndicatorBounds(t,n,a,i),this.indicator.paint(e)):null!=this.indicatorImage&&(t=this.getIndicatorBounds(t,n,a,i),e.image(t.x,t.y,t.width,t.height,this.indicatorImage,!1,!1,!1))},mxLabel.prototype.getIndicatorBounds=function(e,t,n,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_WIDTH,this.indicatorSize),r=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_HEIGHT,this.indicatorSize),l=this.spacing+5;return e=i==mxConstants.ALIGN_RIGHT?e+(n-s-l):i==mxConstants.ALIGN_CENTER?e+(n-s)/2:e+l,t=o==mxConstants.ALIGN_BOTTOM?t+(a-r-l):o==mxConstants.ALIGN_TOP?t+l:t+(a-r)/2,new mxRectangle(e,t,s,r)},mxLabel.prototype.redrawHtmlShape=function(){for(mxRectangleShape.prototype.redrawHtmlShape.apply(this,arguments);this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);if(null!=this.image){var e=document.createElement("img");e.style.position="relative",e.setAttribute("border","0");var t=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);t.x-=this.bounds.x,t.y-=this.bounds.y,e.style.left=Math.round(t.x)+"px",e.style.top=Math.round(t.y)+"px",e.style.width=Math.round(t.width)+"px",e.style.height=Math.round(t.height)+"px",e.src=this.image,this.node.appendChild(e)}},mxUtils.extend(mxCylinder,mxShape),mxCylinder.prototype.maxHeight=40,mxCylinder.prototype.svgStrokeTolerance=0,mxCylinder.prototype.paintVertexShape=function(e,t,n,a,i){e.translate(t,n),e.begin(),this.redrawPath(e,t,n,a,i,!1),e.fillAndStroke(),e.setShadow(!1),e.begin(),this.redrawPath(e,t,n,a,i,!0),e.stroke()},mxCylinder.prototype.redrawPath=function(e,t,n,a,i,o){t=Math.min(this.maxHeight,Math.round(i/5)),(o&&null!=this.fill||!o&&null==this.fill)&&(e.moveTo(0,t),e.curveTo(0,2*t,a,2*t,a,t),o||(e.stroke(),e.begin())),o||(e.moveTo(0,t),e.curveTo(0,-t/3,a,-t/3,a,t),e.lineTo(a,i-t),e.curveTo(a,i+t/3,0,i+t/3,0,i-t),e.close())},mxUtils.extend(mxConnector,mxPolyline),mxConnector.prototype.paintEdgeShape=function(e,t){var n=this.createMarker(e,t,!0),a=this.createMarker(e,t,!1);null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(e,t,this.isRounded):this.paintCurvedLine(e,t),e.setFillColor(this.stroke),e.setShadow(!1),e.setDashed(!1),null!=n&&n(),null!=a&&a()},mxConnector.prototype.paintCurvedLine=function(e,t){e.begin();var n=t[0],a=t.length;for(e.moveTo(n.x,n.y),n=1;n<a-2;n++){var i=t[n],o=t[n+1];e.quadTo(i.x,i.y,(i.x+o.x)/2,(i.y+o.y)/2)}i=t[a-2],o=t[a-1],e.quadTo(i.x,i.y,o.x,o.y),e.stroke()},mxConnector.prototype.createMarker=function(e,t,n){var a=t.length,i=n?t[1]:t[a-2],a=(t=n?t[0]:t[a-1]).x-i.x,o=t.y-i.y,i=a/(s=Math.max(1,Math.sqrt(a*a+o*o))),a=o/s,o=mxUtils.getNumber(this.style,n?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),s=mxUtils.getValue(this.style,n?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW);return mxMarker.createMarker(e,this,s,t,i,a,o,n,this.strokewidth,0!=this.style[n?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL])},mxConnector.prototype.augmentBoundingBox=function(e){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var t=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(t=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1),mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(t=Math.max(t,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1),e.grow(Math.ceil(t*this.scale))},mxUtils.extend(mxSwimlane,mxShape),mxSwimlane.prototype.imageSize=16,mxSwimlane.prototype.getGradientBounds=function(e,t,n,a,i){return e=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),new mxRectangle(t,n,a,e)},mxSwimlane.prototype.getRotation=function(){var e=mxShape.prototype.getRotation.apply(this,arguments);return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxSwimlane.prototype.getTextRotation=function(){return this.getRotation()},mxSwimlane.prototype.isPaintBoundsInverted=function(){return mxShape.prototype.isPaintBoundsInverted.apply(this,arguments)||1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)},mxSwimlane.prototype.getArcSize=function(e,t,n){return e=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100,3*n*e},mxSwimlane.prototype.paintVertexShape=function(e,t,n,a,i){var o=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),s=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE),r=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),l=0;e.translate(t,n),this.isRounded?(l=this.getArcSize(a,i,o),this.paintRoundedSwimlane(e,t,n,a,i,o,l,s,r)):this.paintSwimlane(e,t,n,a,i,o,s,r),s=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE),this.paintSeparator(e,a,o,i,s),null!=this.image&&(i=this.getImageBounds(t,o,a,i),e.image(i.x-t,i.y-n,i.width,i.height,this.image,!1,!1,!1)),this.glass&&(e.setShadow(!1),this.paintGlassEffect(e,0,0,a,o,l))},mxSwimlane.prototype.paintSwimlane=function(e,t,n,a,i,o,s,r){s!=mxConstants.NONE&&(e.save(),e.setFillColor(s),e.rect(0,0,a,i),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(0,o),e.lineTo(0,0),e.lineTo(a,0),e.lineTo(a,o),r&&e.close(),e.fillAndStroke(),o<i&&s==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,o),e.lineTo(0,i),e.lineTo(a,i),e.lineTo(a,o),e.stroke())},mxSwimlane.prototype.paintRoundedSwimlane=function(e,t,n,a,i,o,s,r,l){r!=mxConstants.NONE&&(e.save(),e.setFillColor(r),e.roundrect(0,0,a,i,s,s),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(a,o),e.lineTo(a,s),e.quadTo(a,0,a-Math.min(a/2,s),0),e.lineTo(Math.min(a/2,s),0),e.quadTo(0,0,0,s),e.lineTo(0,o),l&&e.close(),e.fillAndStroke(),o<i&&r==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,o),e.lineTo(0,i-s),e.quadTo(0,i,Math.min(a/2,s),i),e.lineTo(a-Math.min(a/2,s),i),e.quadTo(a,i,a,i-s),e.lineTo(a,o),e.stroke())},mxSwimlane.prototype.paintSeparator=function(e,t,n,a,i){i!=mxConstants.NONE&&(e.setStrokeColor(i),e.setDashed(!0),e.begin(),e.moveTo(t,n),e.lineTo(t,a),e.stroke(),e.setDashed(!1))},mxSwimlane.prototype.getImageBounds=function(e,t,n,a){return new mxRectangle(e+n-this.imageSize,t,this.imageSize,this.imageSize)},mxGraphLayout.prototype.graph=null,mxGraphLayout.prototype.useBoundingBox=!0,mxGraphLayout.prototype.parent=null,mxGraphLayout.prototype.moveCell=function(e,t,n){},mxGraphLayout.prototype.execute=function(e){},mxGraphLayout.prototype.getGraph=function(){return this.graph},mxGraphLayout.prototype.getConstraint=function(e,t,n,a){return n=this.graph.view.getState(t),t=null!=n?n.style:this.graph.getCellStyle(t),null!=t?t[e]:null},mxGraphLayout.traverse=function(e,t,n,a,i){if(null!=n&&null!=e){t=null==t||t,i=i||[];var o=mxCellPath.create(e);if(null==i[o]&&(i[o]=e,null==(a=n(e,a))||a)&&0<(a=this.graph.model.getEdgeCount(e)))for(o=0;o<a;o++){var s=this.graph.model.getEdgeAt(e,o),r=this.graph.model.getTerminal(s,!0)==e;t&&!r||(r=this.graph.view.getVisibleTerminal(s,!r),this.traverse(r,t,n,s,i))}}},mxGraphLayout.prototype.isVertexMovable=function(e){return this.graph.isCellMovable(e)},mxGraphLayout.prototype.isVertexIgnored=function(e){return!this.graph.getModel().isVertex(e)||!this.graph.isCellVisible(e)},mxGraphLayout.prototype.isEdgeIgnored=function(e){var t=this.graph.getModel();return!t.isEdge(e)||!this.graph.isCellVisible(e)||null==t.getTerminal(e,!0)||null==t.getTerminal(e,!1)},mxGraphLayout.prototype.setEdgeStyleEnabled=function(e,t){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,t?"0":"1",[e])},mxGraphLayout.prototype.setOrthogonalEdge=function(e,t){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,t?"1":"0",[e])},mxGraphLayout.prototype.getParentOffset=function(e){var t=new mxPoint;if(null!=e&&e!=this.parent){var n=this.graph.getModel();if(n.isAncestor(this.parent,e))for(var a=n.getGeometry(e);e!=this.parent;)t.x+=a.x,t.y+=a.y,e=n.getParent(e),a=n.getGeometry(e)}return t},mxGraphLayout.prototype.setEdgePoints=function(e,t){if(null!=e){var n=this.graph.model,a=n.getGeometry(e);if(null==a?(a=new mxGeometry).setRelative(!0):a=a.clone(),null!=this.parent&&null!=t)for(var i=n.getParent(e),i=this.getParentOffset(i),o=0;o<t.length;o++)t[o].x-=i.x,t[o].y-=i.y;a.points=t,n.setGeometry(e,a)}},mxGraphLayout.prototype.setVertexLocation=function(e,t,n){var a=this.graph.getModel(),i=a.getGeometry(e),o=null;if(null!=i){if(o=new mxRectangle(t,n,i.width,i.height),this.useBoundingBox){var s=this.graph.getView().getState(e);if(null!=s&&null!=s.text&&null!=s.text.boundingBox){var r=this.graph.getView().scale,l=s.text.boundingBox;s.text.boundingBox.x<s.x&&(t+=(s.x-l.x)/r,o.width=l.width),s.text.boundingBox.y<s.y&&(n+=(s.y-l.y)/r,o.height=l.height)}}null!=this.parent&&null!=(s=a.getParent(e))&&s!=this.parent&&(s=this.getParentOffset(s),t-=s.x,n-=s.y),i.x==t&&i.y==n||(i=i.clone(),i.x=t,i.y=n,a.setGeometry(e,i))}return o},mxGraphLayout.prototype.getVertexBounds=function(e){r=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&null!=(s=this.graph.getView().getState(e))&&null!=s.text&&null!=s.text.boundingBox)var t=this.graph.getView().scale,n=s.text.boundingBox,a=Math.max(s.x-n.x,0)/t,i=Math.max(s.y-n.y,0)/t,o=Math.max(n.x+n.width-(s.x+s.width),0)/t,s=Math.max(n.y+n.height-(s.y+s.height),0)/t,r=new mxRectangle(r.x-a,r.y-i,r.width+a+o,r.height+i+s);return null!=this.parent&&(e=this.graph.getModel().getParent(e),r=r.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),r.x+=e.x,r.y+=e.y)),new mxRectangle(r.x,r.y,r.width,r.height)},mxGraphLayout.prototype.arrangeGroups=function(e,t){this.graph.getModel().beginUpdate();try{for(var n=e.length-1;0<=n;n--){var a=e[n],i=this.graph.getChildVertices(a),o=this.graph.getBoundingBoxFromGeometry(i),s=this.graph.getCellGeometry(a),r=0,l=0;if(this.graph.isSwimlane(a))var d=this.graph.getStartSize(a),r=d.width,l=d.height;null!=o&&null!=s&&(s=s.clone(),s.x=s.x+o.x-t-r,s.y=s.y+o.y-t-l,s.width=o.width+2*t+r,s.height=o.height+2*t+l,this.graph.getModel().setGeometry(a,s),this.graph.moveCells(i,t+r-o.x,t+l-o.y))}}finally{this.graph.getModel().endUpdate()}},mxStackLayout.prototype=new mxGraphLayout,mxStackLayout.prototype.constructor=mxStackLayout,mxStackLayout.prototype.horizontal=null,mxStackLayout.prototype.spacing=null,mxStackLayout.prototype.x0=null,mxStackLayout.prototype.y0=null,mxStackLayout.prototype.border=0,mxStackLayout.prototype.keepFirstLocation=!1,mxStackLayout.prototype.fill=!1,mxStackLayout.prototype.resizeParent=!1,mxStackLayout.prototype.resizeLast=!1,mxStackLayout.prototype.wrap=null,mxStackLayout.prototype.isHorizontal=function(){return this.horizontal},mxStackLayout.prototype.moveCell=function(e,t,n){var a=this.graph.getModel(),i=a.getParent(e),o=this.isHorizontal();if(null!=e&&null!=i){var s=0,r=0,l=a.getChildCount(i);for(t=o?t:n,null!=(s=this.graph.getView().getState(i))&&(t-=o?s.x:s.y),s=0;s<l;s++)if((n=a.getChildAt(i,s))!=e&&null!=(n=a.getGeometry(n))){if(n=o?n.x+n.width/2:n.y+n.height/2,r<t&&n>t)break;r=n}o=i.getIndex(e),o=Math.max(0,s-(s>o?1:0)),a.add(i,e,o)}},mxStackLayout.prototype.getParentSize=function(e){var t=this.graph.getModel(),n=t.getGeometry(e);return null!=this.graph.container&&(null==n&&t.isLayer(e)||e==this.graph.getView().currentRoot)&&(n=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),n},mxStackLayout.prototype.execute=function(e){if(null!=e){var t=this.isHorizontal(),n=this.graph.getModel(),a=this.getParentSize(e),i=0;null!=a&&(i=t?a.height:a.width);var i=i-(2*this.spacing+2*this.border),o=this.x0+this.border,s=this.y0+this.border;if(this.graph.isSwimlane(e)){var r=this.graph.getCellStyle(e),l=mxUtils.getValue(r,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);t==(r=mxUtils.getValue(r,mxConstants.STYLE_HORIZONTAL,!0))&&(i-=l),t?s+=l:o+=l}n.beginUpdate();try{for(var l=0,r=null,d=n.getChildCount(e),c=0;c<d;c++){var m=n.getChildAt(e,c);if(!this.isVertexIgnored(m)&&this.isVertexMovable(m)){var u=n.getGeometry(m);null!=u&&(u=u.clone(),null!=this.wrap&&null!=r&&(t&&r.x+r.width+u.width+2*this.spacing>this.wrap||!t&&r.y+r.height+u.height+2*this.spacing>this.wrap)&&(r=null,t?s+=l+this.spacing:o+=l+this.spacing,l=0),l=Math.max(l,t?u.height:u.width),null!=r?t?u.x=r.x+r.width+this.spacing:u.y=r.y+r.height+this.spacing:this.keepFirstLocation||(t?u.x=o:u.y=s),t?u.y=s:u.x=o,this.fill&&0<i&&(t?u.height=i:u.width=i),n.setGeometry(m,u),r=u)}}this.resizeParent&&null!=a&&null!=r&&!this.graph.isCellCollapsed(e)?(a=a.clone(),t?a.width=r.x+r.width+this.spacing:a.height=r.y+r.height+this.spacing,n.setGeometry(e,a)):this.resizeLast&&null!=a&&null!=r&&(t?r.width=a.width-r.x-this.spacing:r.height=a.height-r.y-this.spacing)}finally{n.endUpdate()}}},mxPartitionLayout.prototype=new mxGraphLayout,mxPartitionLayout.prototype.constructor=mxPartitionLayout,mxPartitionLayout.prototype.horizontal=null,mxPartitionLayout.prototype.spacing=null,mxPartitionLayout.prototype.border=null,mxPartitionLayout.prototype.resizeVertices=!0,mxPartitionLayout.prototype.isHorizontal=function(){return this.horizontal},mxPartitionLayout.prototype.moveCell=function(e,t,n){var a=(n=this.graph.getModel()).getParent(e);if(null!=e&&null!=a){for(var i=0,o=0,s=n.getChildCount(a),i=0;i<s;i++){var r=n.getChildAt(a,i);if(null!=(r=this.getVertexBounds(r))){if(r=r.x+r.width/2,o<t&&r>t)break;o=r}}t=a.getIndex(e),t=Math.max(0,i-(i>t?1:0)),n.add(a,e,t)}},mxPartitionLayout.prototype.execute=function(e){var t=this.isHorizontal(),n=this.graph.getModel(),a=n.getGeometry(e);if(null!=this.graph.container&&(null==a&&n.isLayer(e)||e==this.graph.getView().currentRoot)&&(a=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),null!=a){for(var i=[],o=n.getChildCount(e),s=0;s<o;s++){c=n.getChildAt(e,s);!this.isVertexIgnored(c)&&this.isVertexMovable(c)&&i.push(c)}if(0<(o=i.length)){var r=this.border,l=this.border,d=(d=t?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,d-=t?e.height:e.width,r+=e.width,l+=e.height,e=this.border+(o-1)*this.spacing,0<(a=t?(a.width-r-e)/o:(a.height-l-e)/o)){n.beginUpdate();try{for(s=0;s<o;s++){var c=i[s],m=n.getGeometry(c);null!=m&&(m=m.clone(),m.x=r,m.y=l,t?(this.resizeVertices&&(m.width=a,m.height=d),r+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=d),l+=a+this.spacing),n.setGeometry(c,m))}}finally{n.endUpdate()}}}}},mxCompactTreeLayout.prototype=new mxGraphLayout,mxCompactTreeLayout.prototype.constructor=mxCompactTreeLayout,mxCompactTreeLayout.prototype.horizontal=null,mxCompactTreeLayout.prototype.invert=null,mxCompactTreeLayout.prototype.resizeParent=!0,mxCompactTreeLayout.prototype.groupPadding=10,mxCompactTreeLayout.prototype.parentsChanged=null,mxCompactTreeLayout.prototype.moveTree=!1,mxCompactTreeLayout.prototype.levelDistance=10,mxCompactTreeLayout.prototype.nodeDistance=20,mxCompactTreeLayout.prototype.resetEdges=!0,mxCompactTreeLayout.prototype.prefHozEdgeSep=5,mxCompactTreeLayout.prototype.prefVertEdgeOff=4,mxCompactTreeLayout.prototype.minEdgeJetty=8,mxCompactTreeLayout.prototype.channelBuffer=4,mxCompactTreeLayout.prototype.edgeRouting=!0,mxCompactTreeLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxCompactTreeLayout.prototype.isHorizontal=function(){return this.horizontal},mxCompactTreeLayout.prototype.execute=function(e,t){this.parent=e;var n=this.graph.getModel();if(null==t)if(0<this.graph.getEdges(e,n.getParent(e),this.invert,!this.invert,!1).length)t=e;else if(0<(s=this.graph.findTreeRoots(e,!0,this.invert)).length)for(var a=0;a<s.length;a++)if(!this.isVertexIgnored(s[a])&&0<this.graph.getEdges(s[a],null,this.invert,!this.invert,!1).length){t=s[a];break}if(null!=t){this.parentsChanged=this.resizeParent?{}:null,n.beginUpdate();try{var i=this.dfs(t,e);if(null!=i){this.layout(i);var o=this.graph.gridSize,s=o;if(!this.moveTree){var r=this.getVertexBounds(t);null!=r&&(o=r.x,s=r.y)}if(r=null,null!=(r=this.isHorizontal()?this.horizontalLayout(i,o,s):this.verticalLayout(i,null,o,s))){var l=a=0;0>r.x&&(a=Math.abs(o-r.x)),0>r.y&&(l=Math.abs(s-r.y)),(0!=a||0!=l)&&this.moveNode(i,a,l),this.resizeParent&&this.adjustParents(),this.edgeRouting&&this.localEdgeProcessing(i)}}}finally{n.endUpdate()}}},mxCompactTreeLayout.prototype.moveNode=function(e,t,n){for(e.x+=t,e.y+=n,this.apply(e),e=e.child;null!=e;)this.moveNode(e,t,n),e=e.next},mxCompactTreeLayout.prototype.dfs=function(e,t,n){n=null!=n?n:[];var a=mxCellPath.create(e),i=null;if(null!=e&&null==n[a]&&!this.isVertexIgnored(e)){n[a]=e;var i=this.createNode(e),a=this.graph.getModel(),o=null;e=this.graph.getEdges(e,t,this.invert,!this.invert,!1,!0);for(var s=this.graph.getView(),r=0;r<e.length;r++){d=e[r];if(!this.isEdgeIgnored(d)){this.resetEdges&&this.setEdgePoints(d,null),this.edgeRouting&&(this.setEdgeStyleEnabled(d,!1),this.setEdgePoints(d,null));var l=s.getState(d),d=null!=l?l.getVisibleTerminal(this.invert):s.getVisibleTerminal(d,this.invert);null!=(l=this.dfs(d,t,n))&&null!=a.getGeometry(d)&&(null==o?i.child=l:o.next=l,o=l)}}}return i},mxCompactTreeLayout.prototype.layout=function(e){if(null!=e){for(var t=e.child;null!=t;)this.layout(t),t=t.next;null!=e.child?this.attachParent(e,this.join(e)):this.layoutLeaf(e)}},mxCompactTreeLayout.prototype.horizontalLayout=function(e,t,n,a){if(e.x+=t+e.offsetX,e.y+=n+e.offsetY,a=this.apply(e,a),null!=(t=e.child)){a=this.horizontalLayout(t,e.x,e.y,a),n=e.y+t.offsetY;for(var i=t.next;null!=i;)a=this.horizontalLayout(i,e.x+t.offsetX,n,a),n+=i.offsetY,i=i.next}return a},mxCompactTreeLayout.prototype.verticalLayout=function(e,t,n,a,i){if(e.x+=n+e.offsetY,e.y+=a+e.offsetX,i=this.apply(e,i),null!=(t=e.child))for(i=this.verticalLayout(t,e,e.x,e.y,i),n=e.x+t.offsetY,a=t.next;null!=a;)i=this.verticalLayout(a,e,n,e.y+t.offsetX,i),n+=a.offsetY,a=a.next;return i},mxCompactTreeLayout.prototype.attachParent=function(e,t){var n=this.nodeDistance+this.levelDistance,a=(t-e.width)/2-this.nodeDistance,i=a+e.width+2*this.nodeDistance-t;e.child.offsetX=n+e.height,e.child.offsetY=i,e.contour.upperHead=this.createLine(e.height,0,this.createLine(n,i,e.contour.upperHead)),e.contour.lowerHead=this.createLine(e.height,0,this.createLine(n,a,e.contour.lowerHead))},mxCompactTreeLayout.prototype.layoutLeaf=function(e){var t=2*this.nodeDistance;e.contour.upperTail=this.createLine(e.height+t,0),e.contour.upperHead=e.contour.upperTail,e.contour.lowerTail=this.createLine(0,-e.width-t),e.contour.lowerHead=this.createLine(e.height+t,0,e.contour.lowerTail)},mxCompactTreeLayout.prototype.join=function(e){var t=2*this.nodeDistance,n=e.child;e.contour=n.contour;for(var a=n.width+t,i=a,n=n.next;null!=n;){var o=this.merge(e.contour,n.contour);n.offsetY=o+a,n.offsetX=0,i+=o+(a=n.width+t),n=n.next}return i},mxCompactTreeLayout.prototype.merge=function(e,t){for(var n=0,a=0,i=0,o=e.lowerHead,s=t.upperHead;null!=s&&null!=o;){var r=this.offset(n,a,s.dx,s.dy,o.dx,o.dy),a=a+r,i=i+r;n+s.dx<=o.dx?(n+=s.dx,a+=s.dy,s=s.next):(n-=o.dx,a-=o.dy,o=o.next)}return null!=s?(n=this.bridge(e.upperTail,0,0,s,n,a),e.upperTail=null!=n.next?t.upperTail:n,e.lowerTail=t.lowerTail):null==(n=this.bridge(t.lowerTail,n,a,o,0,0)).next&&(e.lowerTail=n),e.lowerHead=t.lowerHead,i},mxCompactTreeLayout.prototype.offset=function(e,t,n,a,i,o){var s=0;return i<=e||0>=e+n?0:(s=0<i*a-n*o?0>e?e*a/n-t:0<e?e*o/i-t:-t:i<e+n?o-(t+(i-e)*a/n):i>e+n?(n+e)*o/i-(t+a):o-(t+a),0<s?s:0)},mxCompactTreeLayout.prototype.bridge=function(e,t,n,a,i,o){return t=i+a.dx-t,i=i=0,0==a.dx?i=a.dy:(i=t*a.dy,i/=a.dx),t=this.createLine(t,i,a.next),e.next=this.createLine(0,o+a.dy-i-n,t),t},mxCompactTreeLayout.prototype.createNode=function(e){var t={};return t.cell=e,t.x=0,t.y=0,t.width=0,t.height=0,null!=(e=this.getVertexBounds(e))&&(this.isHorizontal()?(t.width=e.height,t.height=e.width):(t.width=e.width,t.height=e.height)),t.offsetX=0,t.offsetY=0,t.contour={},t},mxCompactTreeLayout.prototype.apply=function(e,t){var n=this.graph.getModel(),a=e.cell,i=n.getGeometry(a);return null!=a&&null!=i&&(this.isVertexMovable(a)&&(i=this.setVertexLocation(a,e.x,e.y),this.resizeParent&&(n=n.getParent(a),a=mxCellPath.create(n),null==this.parentsChanged[a]&&(this.parentsChanged[a]=n))),t=null==t?new mxRectangle(i.x,i.y,i.width,i.height):new mxRectangle(Math.min(t.x,i.x),Math.min(t.y,i.y),Math.max(t.x+t.width,i.x+i.width),Math.max(t.y+t.height,i.y+i.height))),t},mxCompactTreeLayout.prototype.createLine=function(e,t,n){var a={};return a.dx=e,a.dy=t,a.next=n,a},mxCompactTreeLayout.prototype.adjustParents=function(){var e,t=[];for(e in this.parentsChanged)t.push(this.parentsChanged[e]);this.arrangeGroups(mxUtils.sortCells(t,!0),this.groupPadding)},mxCompactTreeLayout.prototype.localEdgeProcessing=function(e){for(this.processNodeOutgoing(e),e=e.child;null!=e;)this.localEdgeProcessing(e),e=e.next},mxCompactTreeLayout.prototype.processNodeOutgoing=function(e){for(var t=e.child,n=e.cell,a=0,i=[];null!=t;){a++;o=t.x;this.horizontal&&(o=t.y),i.push(new WeightedCellSorter(t,o)),t=t.next}i.sort(WeightedCellSorter.prototype.compare),(o=e.width)>(s=(a+1)*this.prefHozEdgeSep)+2*this.prefHozEdgeSep&&(o-=2*this.prefHozEdgeSep),t=(e=o/a)/2,o>s+2*this.prefHozEdgeSep&&(t+=this.prefHozEdgeSep);for(var o=this.minEdgeJetty-this.prefVertEdgeOff,s=0,r=this.getVertexBounds(n),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),d=this.graph.getEdgesBetween(n,d,!1),m=[],u=0,p=0,g=0;g<d.length;g++)this.horizontal?(u=r.x+r.width,p=r.y+t,m.push(new mxPoint(u,p)),u=r.x+r.width+o,m.push(new mxPoint(u,p)),p=c.y+c.height/2):(u=r.x+t,p=r.y+r.height,m.push(new mxPoint(u,p)),p=r.y+r.height+o,m.push(new mxPoint(u,p)),u=c.x+c.width/2),m.push(new mxPoint(u,p)),this.setEdgePoints(d[g],m);l<a/2?o+=this.prefVertEdgeOff:l>a/2&&(o-=this.prefVertEdgeOff),t+=e,s=Math.max(s,o)}},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,t){return null!=e&&null!=t?t.weightedValue>e.weightedValue?1:t.weightedValue<e.weightedValue?-1:t.nudge?1:-1:0},mxFastOrganicLayout.prototype=new mxGraphLayout,mxFastOrganicLayout.prototype.constructor=mxFastOrganicLayout,mxFastOrganicLayout.prototype.useInputOrigin=!0,mxFastOrganicLayout.prototype.resetEdges=!0,mxFastOrganicLayout.prototype.disableEdgeStyle=!0,mxFastOrganicLayout.prototype.forceConstant=50,mxFastOrganicLayout.prototype.forceConstantSquared=0,mxFastOrganicLayout.prototype.minDistanceLimit=2,mxFastOrganicLayout.prototype.maxDistanceLimit=500,mxFastOrganicLayout.prototype.minDistanceLimitSquared=4,mxFastOrganicLayout.prototype.initialTemp=200,mxFastOrganicLayout.prototype.temperature=0,mxFastOrganicLayout.prototype.maxIterations=0,mxFastOrganicLayout.prototype.iteration=0,mxFastOrganicLayout.prototype.allowedToRun=!0,mxFastOrganicLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxFastOrganicLayout.prototype.execute=function(e){var t=this.graph.getModel();this.vertexArray=[];for(var n=this.graph.getChildVertices(e),a=0;a<n.length;a++)this.isVertexIgnored(n[a])||this.vertexArray.push(n[a]);var i=this.useInputOrigin?this.graph.view.getBounds(this.vertexArray):null,o=this.vertexArray.length;for(this.indices=[],this.dispX=[],this.dispY=[],this.cellLocation=[],this.isMoveable=[],this.neighbours=[],this.radius=[],this.radiusSquared=[],.001>this.forceConstant&&(this.forceConstant=.001),this.forceConstantSquared=this.forceConstant*this.forceConstant,a=0;a<this.vertexArray.length;a++){var s=this.vertexArray[a];this.cellLocation[a]=[];p=mxCellPath.create(s);this.indices[p]=a;var r=this.getVertexBounds(s),l=r.width,d=r.height,c=r.x,m=r.y;this.cellLocation[a][0]=c+l/2,this.cellLocation[a][1]=m+d/2,this.radius[a]=Math.min(l,d),this.radiusSquared[a]=this.radius[a]*this.radius[a]}t.beginUpdate();try{for(a=0;a<o;a++){this.dispX[a]=0,this.dispY[a]=0,this.isMoveable[a]=this.isVertexMovable(this.vertexArray[a]);var u=this.graph.getConnections(this.vertexArray[a],e),n=this.graph.getOpposites(u,this.vertexArray[a]);for(this.neighbours[a]=[],l=0;l<n.length;l++){this.resetEdges&&this.graph.resetEdge(u[l]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(u[l],!1);var p=mxCellPath.create(n[l]),g=this.indices[p];this.neighbours[a][l]=null!=g?g:a}}for(this.temperature=this.initialTemp,0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(o)),this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;this.calcRepulsion(),this.calcAttraction(),this.calcPositions(),this.reduceTemperature()}for(e=n=null,a=0;a<this.vertexArray.length;a++)s=this.vertexArray[a],this.isVertexMovable(s)&&null!=(r=this.getVertexBounds(s))&&(this.cellLocation[a][0]-=r.width/2,this.cellLocation[a][1]-=r.height/2,c=this.graph.snap(this.cellLocation[a][0]),m=this.graph.snap(this.cellLocation[a][1]),this.setVertexLocation(s,c,m),n=null==n?c:Math.min(n,c),e=null==e?m:Math.min(e,m));a=1-(n||0),s=1-(e||0),null!=i&&(a+=i.x,s+=i.y),this.graph.moveCells(this.vertexArray,a,s)}finally{t.endUpdate()}},mxFastOrganicLayout.prototype.calcPositions=function(){for(var e=0;e<this.vertexArray.length;e++)if(this.isMoveable[e]){.001>(n=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))&&(n=.001);var t=this.dispX[e]/n*Math.min(n,this.temperature),n=this.dispY[e]/n*Math.min(n,this.temperature);this.dispX[e]=0,this.dispY[e]=0,this.cellLocation[e][0]+=t,this.cellLocation[e][1]+=n}},mxFastOrganicLayout.prototype.calcAttraction=function(){for(var e=0;e<this.vertexArray.length;e++)for(var t=0;t<this.neighbours[e].length;t++){var n=this.neighbours[e][t];if(e!=n&&this.isMoveable[e]&&this.isMoveable[n]){var a=(o=this.cellLocation[e][0]-this.cellLocation[n][0])*o+(s=this.cellLocation[e][1]-this.cellLocation[n][1])*s-this.radiusSquared[e]-this.radiusSquared[n];a<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var i=Math.sqrt(a),o=o/i*(a=a/this.forceConstant),s=s/i*a;this.dispX[e]-=o,this.dispY[e]-=s,this.dispX[n]+=o,this.dispY[n]+=s}}},mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var e=this.vertexArray.length,t=0;t<e;t++)for(var n=t;n<e;n++){if(!this.allowedToRun)return;if(n!=t&&this.isMoveable[t]&&this.isMoveable[n]){var a=this.cellLocation[t][0]-this.cellLocation[n][0],i=this.cellLocation[t][1]-this.cellLocation[n][1];0==a&&(a=.01+Math.random()),0==i&&(i=.01+Math.random());var o=Math.sqrt(a*a+i*i),s=o-this.radius[t]-this.radius[n];s>this.maxDistanceLimit||(s<this.minDistanceLimit&&(s=this.minDistanceLimit),s=this.forceConstantSquared/s,a=a/o*s,i=i/o*s,this.dispX[t]+=a,this.dispY[t]+=i,this.dispX[n]-=a,this.dispY[n]-=i)}}},mxFastOrganicLayout.prototype.reduceTemperature=function(){this.temperature=this.initialTemp*(1-this.iteration/this.maxIterations)},mxCircleLayout.prototype=new mxGraphLayout,mxCircleLayout.prototype.constructor=mxCircleLayout,mxCircleLayout.prototype.radius=null,mxCircleLayout.prototype.moveCircle=!1,mxCircleLayout.prototype.x0=0,mxCircleLayout.prototype.y0=0,mxCircleLayout.prototype.resetEdges=!0,mxCircleLayout.prototype.disableEdgeStyle=!0,mxCircleLayout.prototype.execute=function(e){var t=this.graph.getModel();t.beginUpdate();try{for(var n=0,a=null,i=null,o=[],s=t.getChildCount(e),r=0;r<s;r++){var l=t.getChildAt(e,r);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{o.push(l);var d=this.getVertexBounds(l),a=null==a?d.y:Math.min(a,d.y),i=null==i?d.x:Math.min(i,d.x),n=Math.max(n,Math.max(d.width,d.height))}}var c=this.getRadius(o.length,n);this.moveCircle&&(i=this.x0,a=this.y0),this.circle(o,c,i,a)}finally{t.endUpdate()}},mxCircleLayout.prototype.getRadius=function(e,t){return Math.max(e*t/Math.PI,this.radius)},mxCircleLayout.prototype.circle=function(e,t,n,a){for(var i=e.length,o=2*Math.PI/i,s=0;s<i;s++)this.isVertexMovable(e[s])&&this.setVertexLocation(e[s],n+t+t*Math.sin(s*o),a+t+t*Math.cos(s*o))},mxParallelEdgeLayout.prototype=new mxGraphLayout,mxParallelEdgeLayout.prototype.constructor=mxParallelEdgeLayout,mxParallelEdgeLayout.prototype.spacing=20,mxParallelEdgeLayout.prototype.execute=function(e){e=this.findParallels(e),this.graph.model.beginUpdate();try{for(var t in e){var n=e[t];1<n.length&&this.layout(n)}}finally{this.graph.model.endUpdate()}},mxParallelEdgeLayout.prototype.findParallels=function(e){for(var t=this.graph.getModel(),n=[],a=t.getChildCount(e),i=0;i<a;i++){var o=t.getChildAt(e,i);if(!this.isEdgeIgnored(o)){var s=this.getEdgeId(o);null!=s&&(null==n[s]&&(n[s]=[]),n[s].push(o))}}return n},mxParallelEdgeLayout.prototype.getEdgeId=function(e){var t=this.graph.getView(),n=t.getState(e),a=null!=n?n.getVisibleTerminal(!0):t.getVisibleTerminal(e,!0);return e=null!=n?n.getVisibleTerminal(!1):t.getVisibleTerminal(e,!1),null!=a&&null!=e?(a=mxCellPath.create(a),e=mxCellPath.create(e),a>e?e+"-"+a:a+"-"+e):null},mxParallelEdgeLayout.prototype.layout=function(e){t=e[0];if((s=(n=this.graph.getModel()).getGeometry(n.getTerminal(t,!0)))==(o=n.getGeometry(n.getTerminal(t,!1))))for(var t=s.x+s.width+this.spacing,n=s.y+s.height/2,a=0;a<e.length;a++)this.route(e[a],t,n),t+=this.spacing;else if(null!=s&&null!=o)for(var t=s.x+s.width/2,n=s.y+s.height/2,a=o.x+o.width/2-t,i=o.y+o.height/2-n,o=Math.sqrt(a*a+i*i),s=i*this.spacing/o,o=a*this.spacing/o,t=t+a/2+s*(e.length-1)/2,n=n+i/2-o*(e.length-1)/2,a=0;a<e.length;a++)this.route(e[a],t,n),t-=s,n+=o},mxParallelEdgeLayout.prototype.route=function(e,t,n){this.graph.isCellMovable(e)&&this.setEdgePoints(e,[new mxPoint(t,n)])},mxCompositeLayout.prototype=new mxGraphLayout,mxCompositeLayout.prototype.constructor=mxCompositeLayout,mxCompositeLayout.prototype.layouts=null,mxCompositeLayout.prototype.master=null,mxCompositeLayout.prototype.moveCell=function(e,t,n){null!=this.master?this.master.move.apply(this.master,arguments):this.layouts[0].move.apply(this.layouts[0],arguments)},mxCompositeLayout.prototype.execute=function(e){var t=this.graph.getModel();t.beginUpdate();try{for(var n=0;n<this.layouts.length;n++)this.layouts[n].execute.apply(this.layouts[n],arguments)}finally{t.endUpdate()}},mxEdgeLabelLayout.prototype=new mxGraphLayout,mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout,mxEdgeLabelLayout.prototype.execute=function(e){for(var t=this.graph.view,n=this.graph.getModel(),a=[],i=[],o=n.getChildCount(e),s=0;s<o;s++){var r=n.getChildAt(e,s),l=t.getState(r);null!=l&&(this.isVertexIgnored(r)?this.isEdgeIgnored(r)||a.push(l):i.push(l))}this.placeLabels(i,a)},mxEdgeLabelLayout.prototype.placeLabels=function(e,t){var n=this.graph.getModel();n.beginUpdate();try{for(var a=0;a<t.length;a++){var i=t[a];if(null!=i&&null!=i.text&&null!=i.text.boundingBox)for(var o=0;o<e.length;o++){var s=e[o];null!=s&&this.avoid(i,s)}}}finally{n.endUpdate()}},mxEdgeLabelLayout.prototype.avoid=function(e,t){var n=this.graph.getModel(),a=e.text.boundingBox;if(mxUtils.intersects(a,t)){var i=-a.y-a.height+t.y,o=-a.y+t.y+t.height,i=Math.abs(i)<Math.abs(o)?i:o,o=-a.x-a.width+t.x,a=-a.x+t.x+t.width,a=Math.abs(o)<Math.abs(a)?o:a;Math.abs(a)<Math.abs(i)?i=0:a=0,null!=(o=n.getGeometry(e.cell))&&(o=o.clone(),null!=o.offset?(o.offset.x+=a,o.offset.y+=i):o.offset=new mxPoint(a,i),n.setGeometry(e.cell,o))}},mxGraphAbstractHierarchyCell.prototype.maxRank=-1,mxGraphAbstractHierarchyCell.prototype.minRank=-1,mxGraphAbstractHierarchyCell.prototype.x=null,mxGraphAbstractHierarchyCell.prototype.y=null,mxGraphAbstractHierarchyCell.prototype.width=0,mxGraphAbstractHierarchyCell.prototype.height=0,mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.temp=null,mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.isEdge=function(){return!1},mxGraphAbstractHierarchyCell.prototype.isVertex=function(){return!1},mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable=function(e){return null},mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable=function(e,t){return null},mxGraphAbstractHierarchyCell.prototype.setX=function(e,t){this.isVertex()?this.x[0]=t:this.isEdge()&&(this.x[e-this.minRank-1]=t)},mxGraphAbstractHierarchyCell.prototype.getX=function(e){return this.isVertex()?this.x[0]:this.isEdge()?this.x[e-this.minRank-1]:0},mxGraphAbstractHierarchyCell.prototype.setY=function(e,t){this.isVertex()?this.y[0]=t:this.isEdge()&&(this.y[e-this.minRank-1]=t)},mxGraphHierarchyNode.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyNode.prototype.constructor=mxGraphHierarchyNode,mxGraphHierarchyNode.prototype.cell=null,mxGraphHierarchyNode.prototype.connectsAsTarget=[],mxGraphHierarchyNode.prototype.connectsAsSource=[],mxGraphHierarchyNode.prototype.hashCode=!1,mxGraphHierarchyNode.prototype.getRankValue=function(e){return this.maxRank},mxGraphHierarchyNode.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[],this.nextLayerConnectedCells[0]=[];for(var t=0;t<this.connectsAsTarget.length;t++){var n=this.connectsAsTarget[t];-1==n.maxRank||n.maxRank==e+1?this.nextLayerConnectedCells[0].push(n.source):this.nextLayerConnectedCells[0].push(n)}}return this.nextLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[],this.previousLayerConnectedCells[0]=[];for(var t=0;t<this.connectsAsSource.length;t++){var n=this.connectsAsSource[t];-1==n.minRank||n.minRank==e-1?this.previousLayerConnectedCells[0].push(n.target):this.previousLayerConnectedCells[0].push(n)}}return this.previousLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.isVertex=function(){return!0},mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(e){return this.temp[0]},mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(e,t){this.temp[0]=t},mxGraphHierarchyNode.prototype.isAncestor=function(e){if(null!=e&&null!=this.hashCode&&null!=e.hashCode&&this.hashCode.length<e.hashCode.length){if(this.hashCode==e.hashCode)return!0;if(null==this.hashCode||null==this.hashCode)return!1;for(var t=0;t<this.hashCode.length;t++)if(this.hashCode[t]!=e.hashCode[t])return!1;return!0}return!1},mxGraphHierarchyNode.prototype.getCoreCell=function(){return this.cell},mxGraphHierarchyEdge.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyEdge.prototype.constructor=mxGraphHierarchyEdge,mxGraphHierarchyEdge.prototype.edges=null,mxGraphHierarchyEdge.prototype.source=null,mxGraphHierarchyEdge.prototype.target=null,mxGraphHierarchyEdge.prototype.isReversed=!1,mxGraphHierarchyEdge.prototype.invert=function(e){e=this.source,this.source=this.target,this.target=e,this.isReversed=!this.isReversed},mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[];for(var t=0;t<this.temp.length;t++)this.nextLayerConnectedCells[t]=[],t==this.temp.length-1?this.nextLayerConnectedCells[t].push(this.source):this.nextLayerConnectedCells[t].push(this)}return this.nextLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var t=0;t<this.temp.length;t++)this.previousLayerConnectedCells[t]=[],0==t?this.previousLayerConnectedCells[t].push(this.target):this.previousLayerConnectedCells[t].push(this)}return this.previousLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.isEdge=function(){return!0},mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable=function(e){return this.temp[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable=function(e,t){this.temp[e-this.minRank-1]=t},mxGraphHierarchyEdge.prototype.getCoreCell=function(){return null!=this.edges&&0<this.edges.length?this.edges[0]:null},mxGraphHierarchyModel.prototype.maxRank=null,mxGraphHierarchyModel.prototype.vertexMapper=null,mxGraphHierarchyModel.prototype.edgeMapper=null,mxGraphHierarchyModel.prototype.ranks=null,mxGraphHierarchyModel.prototype.roots=null,mxGraphHierarchyModel.prototype.parent=null,mxGraphHierarchyModel.prototype.dfsCount=0,mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK=1e8,mxGraphHierarchyModel.prototype.tightenToSource=!1,mxGraphHierarchyModel.prototype.createInternalCells=function(e,t,n){for(var a=e.getGraph(),i=0;i<t.length;i++){n[i]=new mxGraphHierarchyNode(t[i]);var o=mxCellPath.create(t[i]);this.vertexMapper[o]=n[i],o=e.getEdges(t[i]),n[i].connectsAsSource=[];for(var s=0;s<o.length;s++)if((d=e.getVisibleTerminal(o[s],!1))!=t[i]&&d!=t[i]&&e.graph.model.isVertex(d)&&!e.isVertexIgnored(d)){var r=e.getEdgesBetween(t[i],d,!1),l=e.getEdgesBetween(t[i],d,!0),d=mxCellPath.create(r[0]);if(null!=r&&0<r.length&&null==this.edgeMapper[d]&&2*l.length>=r.length){for(var l=new mxGraphHierarchyEdge(r),c=0;c<r.length;c++){var m=r[c],d=mxCellPath.create(m);this.edgeMapper[d]=l,a.resetEdge(m),e.disableEdgeStyle&&(e.setEdgeStyleEnabled(m,!1),e.setOrthogonalEdge(m,!0))}l.source=n[i],0>mxUtils.indexOf(n[i].connectsAsSource,l)&&n[i].connectsAsSource.push(l)}}n[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(l=0;l<this.roots.length;l++){var t=mxCellPath.create(this.roots[l]);null!=(t=this.vertexMapper[t])&&e.push(t)}for(var n in this.vertexMapper)t=this.vertexMapper[n],t.temp[0]=-1;for(var a=e.slice();0<e.length;){var i,o;i=(t=e[0]).connectsAsTarget,o=t.connectsAsSource;for(var s=!0,r=this.SOURCESCANSTARTRANK,l=0;l<i.length;l++){var d=i[l];if(5270620!=d.temp[0]){s=!1;break}d=d.source,r=Math.min(r,d.temp[0]-1)}if(s){if(t.temp[0]=r,this.maxRank=Math.min(this.maxRank,r),null!=o)for(l=0;l<o.length;l++)d=o[l],d.temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(l=e.shift(),e.push(t),l==t&&1==e.length)break}for(n in this.vertexMapper)t=this.vertexMapper[n],t.temp[0]-=this.maxRank;for(l=0;l<a.length;l++)for(e=0,i=(t=a[l]).connectsAsSource,n=0;n<i.length;n++)d=i[n],d=d.target,t.temp[0]=Math.max(e,d.temp[0]+1),e=t.temp[0];this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank},mxGraphHierarchyModel.prototype.fixRanks=function(){var e=[];this.ranks=[];for(a=0;a<this.maxRank+1;a++)e[a]=[],this.ranks[a]=e[a];n=null;if(null!=this.roots)for(var t=this.roots,n=[],a=0;a<t.length;a++){var i=mxCellPath.create(t[a]);n[a]=this.vertexMapper[i]}this.visit(function(t,n,a,i,o){if(0==o&&0>n.maxRank&&0>n.minRank&&(e[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=e[n.maxRank].length-1),null!=t&&null!=a&&1<t.maxRank-n.maxRank)for(a.maxRank=t.maxRank,a.minRank=n.maxRank,a.temp=[],a.x=[],a.y=[],t=a.minRank+1;t<a.maxRank;t++)e[t].push(a),a.setGeneralPurposeVariable(t,e[t].length-1)},n,!1,null)},mxGraphHierarchyModel.prototype.visit=function(e,t,n,a){if(null!=t){for(var i=0;i<t.length;i++){var o=t[i];null!=o&&(null==a&&(a={}),n?(o.hashCode=[],o.hashCode[0]=this.dfsCount,o.hashCode[1]=i,this.extendedDfs(null,o,null,e,a,o.hashCode,i,0)):this.dfs(null,o,null,e,a,0))}this.dfsCount++}},mxGraphHierarchyModel.prototype.dfs=function(e,t,n,a,i,o){if(null!=t){var s=mxCellPath.create(t.cell);if(null==i[s])for(i[s]=t,a(e,t,n,o,0),e=t.connectsAsSource.slice(),n=0;n<e.length;n++)s=e[n],this.dfs(t,s.target,s,a,i,o+1);else a(e,t,n,o,1)}},mxGraphHierarchyModel.prototype.extendedDfs=function(e,t,n,a,i,o,s,r){if(null!=t)if(null==e||null!=t.hashCode&&t.hashCode[0]==e.hashCode[0]||(o=e.hashCode.length+1,t.hashCode=e.hashCode.slice(),t.hashCode[o-1]=s),s=mxCellPath.create(t.cell),null==i[s])for(i[s]=t,a(e,t,n,r,0),e=t.connectsAsSource.slice(),n=0;n<e.length;n++)s=e[n],this.extendedDfs(t,s.target,s,a,i,t.hashCode,n,r+1);else a(e,t,n,r,1)},mxHierarchicalLayoutStage.prototype.execute=function(e){},mxMedianHybridCrossingReduction.prototype=new mxHierarchicalLayoutStage,mxMedianHybridCrossingReduction.prototype.constructor=mxMedianHybridCrossingReduction,mxMedianHybridCrossingReduction.prototype.layout=null,mxMedianHybridCrossingReduction.prototype.maxIterations=24,mxMedianHybridCrossingReduction.prototype.nestedBestRanks=null,mxMedianHybridCrossingReduction.prototype.currentBestCrossings=0,mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement=0,mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations=2,mxMedianHybridCrossingReduction.prototype.execute=function(e){e=this.layout.getModel(),this.nestedBestRanks=[];for(a=0;a<e.ranks.length;a++)this.nestedBestRanks[a]=e.ranks[a].slice();for(var t=0,n=this.calculateCrossings(e),a=0;a<this.maxIterations&&t<this.maxNoImprovementIterations;a++){this.weightedMedian(a,e),this.transpose(a,e);var i=this.calculateCrossings(e);if(i<n)for(n=i,i=t=0;i<this.nestedBestRanks.length;i++)for(var o=e.ranks[i],s=0;s<o.length;s++){var r=o[s];this.nestedBestRanks[i][r.getGeneralPurposeVariable(i)]=r}else for(t++,i=0;i<this.nestedBestRanks.length;i++)for(o=e.ranks[i],s=0;s<o.length;s++)(r=o[s]).setGeneralPurposeVariable(i,s);if(0==n)break}for(t=[],n=[],a=0;a<e.maxRank+1;a++)n[a]=[],t[a]=n[a];for(a=0;a<this.nestedBestRanks.length;a++)for(i=0;i<this.nestedBestRanks[a].length;i++)n[a].push(this.nestedBestRanks[a][i]);e.ranks=t},mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(e){for(var t=e.ranks.length,n=0,a=1;a<t;a++)n+=this.calculateRankCrossing(a,e);return n},mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(e,t){for(var n=0,a=t.ranks[e],i=a.length,o=t.ranks[e-1].length,s=[],r=0;r<i;r++)s[r]=[];for(r=0;r<a.length;r++)for(var l=a[r],d=l.getGeneralPurposeVariable(e),c=l.getPreviousLayerConnectedCells(e),l=0;l<c.length;l++){var m=c[l].getGeneralPurposeVariable(e-1);s[d][m]=201207}for(r=0;r<i;r++)for(l=0;l<o;l++)if(201207==s[r][l]){for(a=r+1;a<i;a++)for(d=0;d<l;d++)201207==s[a][d]&&n++;for(a=0;a<r;a++)for(d=l+1;d<o;d++)201207==s[a][d]&&n++}return n/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,t){for(var n=!0,a=0;n&&10>a++;)for(var i=1==e%2&&1==a%2,n=!1,o=0;o<t.ranks.length;o++){for(var s=t.ranks[o],r=[],l=0;l<s.length;l++)0>(f=(b=s[l]).getGeneralPurposeVariable(o))&&(f=l),r[f]=b;for(var d=f=b=null,c=null,m=null,u=null,p=null,g=null,h=null,v=null,l=0;l<s.length-1;l++){if(0==l){for(var b=(h=r[l]).getNextLayerConnectedCells(o),f=h.getPreviousLayerConnectedCells(o),m=[],u=[],E=0;E<b.length;E++)m[E]=b[E].getGeneralPurposeVariable(o+1);for(E=0;E<f.length;E++)u[E]=f[E].getGeneralPurposeVariable(o-1)}else b=d,f=c,m=p,u=g,h=v;for(d=(v=r[l+1]).getNextLayerConnectedCells(o),c=v.getPreviousLayerConnectedCells(o),p=[],g=[],E=0;E<d.length;E++)p[E]=d[E].getGeneralPurposeVariable(o+1);for(E=0;E<c.length;E++)g[E]=c[E].getGeneralPurposeVariable(o-1);for(var y=0,A=0,E=0;E<m.length;E++)for(var C=0;C<p.length;C++)m[E]>p[C]&&y++,m[E]<p[C]&&A++;for(E=0;E<u.length;E++)for(C=0;C<g.length;C++)u[E]>g[C]&&y++,u[E]<g[C]&&A++;(A<y||A==y&&i)&&(d=h.getGeneralPurposeVariable(o),h.setGeneralPurposeVariable(o,v.getGeneralPurposeVariable(o)),v.setGeneralPurposeVariable(o,d),d=b,c=f,p=m,g=u,v=h,i||(n=!0))}}},mxMedianHybridCrossingReduction.prototype.weightedMedian=function(e,t){var n=0==e%2;if(n)for(var a=t.maxRank-1;0<=a;a--)this.medianRank(a,n);else for(a=1;a<t.maxRank;a++)this.medianRank(a,n)},mxMedianHybridCrossingReduction.prototype.medianRank=function(e,t){for(var n=this.nestedBestRanks[e].length,a=[],i=[],o=0;o<n;o++){var s=this.nestedBestRanks[e][o],r=new MedianCellSorter;r.cell=s;var l;l=t?s.getNextLayerConnectedCells(e):s.getPreviousLayerConnectedCells(e);var d;d=t?e+1:e-1,null!=l&&0!=l.length?(r.medianValue=this.medianValue(l,d),a.push(r)):i[s.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),o=0;o<n;o++)null==i[o]&&(s=a.shift().cell).setGeneralPurposeVariable(e,o)},mxMedianHybridCrossingReduction.prototype.medianValue=function(e,t){for(var n=[],a=0,i=0;i<e.length;i++){var o=e[i];n[a++]=o.getGeneralPurposeVariable(t)}return n.sort(function(e,t){return e-t}),1==a%2?n[Math.floor(a/2)]:2==a?(n[0]+n[1])/2:(i=a/2,o=n[i-1]-n[0],a=n[a-1]-n[i],(n[i-1]*a+n[i]*o)/(o+a))},MedianCellSorter.prototype.medianValue=0,MedianCellSorter.prototype.cell=!1,MedianCellSorter.prototype.compare=function(e,t){return null!=e&&null!=t?t.medianValue>e.medianValue?-1:t.medianValue<e.medianValue?1:0:0},mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage,mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover,mxMinimumCycleRemover.prototype.layout=null,mxMinimumCycleRemover.prototype.execute=function(e){var t=this.layout.getModel(),n={},a=mxUtils.clone(t.vertexMapper,null,!0),i=null;if(null!=t.roots){var o=t.roots,i=[];for(e=0;e<o.length;e++){var s=mxCellPath.create(o[e]);i[e]=t.vertexMapper[s]}}if(t.visit(function(e,t,i,o,s){t.isAncestor(e)&&(i.invert(),mxUtils.remove(i,e.connectsAsSource),e.connectsAsTarget.push(i),mxUtils.remove(i,t.connectsAsTarget),t.connectsAsSource.push(i)),e=mxCellPath.create(t.cell),n[e]=t,delete a[e]},i,!0,null),i=null,0<a.lenth&&(i=mxUtils.clone(a,null,!0)),e=mxUtils.clone(n,null,!0),t.visit(function(e,t,i,o,s){t.isAncestor(e)&&(i.invert(),mxUtils.remove(i,e.connectsAsSource),t.connectsAsSource.push(i),e.connectsAsTarget.push(i),mxUtils.remove(i,t.connectsAsTarget)),e=mxCellPath.create(t.cell),n[e]=t,delete a[e]},a,!0,e),o=this.layout.getGraph(),null!=i&&0<i.length)for(t=t.roots,e=0;e<i.length;e++)s=i[e].cell,0==o.getIncomingEdges(s).length&&t.push(s)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage,mxCoordinateAssignment.prototype.constructor=mxCoordinateAssignment,mxCoordinateAssignment.prototype.layout=null,mxCoordinateAssignment.prototype.intraCellSpacing=30,mxCoordinateAssignment.prototype.interRankCellSpacing=100,mxCoordinateAssignment.prototype.parallelEdgeSpacing=10,mxCoordinateAssignment.prototype.maxIterations=8,mxCoordinateAssignment.prototype.prefHozEdgeSep=5,mxCoordinateAssignment.prototype.prefVertEdgeOff=2,mxCoordinateAssignment.prototype.minEdgeJetty=12,mxCoordinateAssignment.prototype.channelBuffer=4,mxCoordinateAssignment.prototype.jettyPositions=null,mxCoordinateAssignment.prototype.orientation=mxConstants.DIRECTION_NORTH,mxCoordinateAssignment.prototype.initialX=null,mxCoordinateAssignment.prototype.limitX=null,mxCoordinateAssignment.prototype.currentXDelta=null,mxCoordinateAssignment.prototype.widestRank=null,mxCoordinateAssignment.prototype.rankTopY=null,mxCoordinateAssignment.prototype.rankBottomY=null,mxCoordinateAssignment.prototype.widestRankValue=null,mxCoordinateAssignment.prototype.rankWidths=null,mxCoordinateAssignment.prototype.rankY=null,mxCoordinateAssignment.prototype.fineTuning=!0,mxCoordinateAssignment.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE,mxCoordinateAssignment.prototype.nextLayerConnectedCache=null,mxCoordinateAssignment.prototype.previousLayerConnectedCache=null,mxCoordinateAssignment.prototype.groupPadding=10,mxCoordinateAssignment.prototype.printStatus=function(){var e=this.layout.getModel();mxLog.show(),mxLog.writeln("======Coord assignment debug=======");for(var t=0;t<e.ranks.length;t++){mxLog.write("Rank ",t," : ");for(var n=e.ranks[t],a=0;a<n.length;a++)mxLog.write(n[a].getGeneralPurposeVariable(t),"  ");mxLog.writeln()}mxLog.writeln("====================================")},mxCoordinateAssignment.prototype.execute=function(e){this.jettyPositions=[],e=this.layout.getModel(),this.currentXDelta=0,this.initialCoords(this.layout.getGraph(),e),this.fineTuning&&this.minNode(e);var t=1e8;if(this.fineTuning)for(var n=0;n<this.maxIterations;n++){if(0!=n&&(this.medianPos(n,e),this.minNode(e)),this.currentXDelta<t){for(var a=0;a<e.ranks.length;a++)for(var i=e.ranks[a],o=0;o<i.length;o++){var s=i[o];s.setX(a,s.getGeneralPurposeVariable(a))}t=this.currentXDelta}else for(a=0;a<e.ranks.length;a++)for(i=e.ranks[a],o=0;o<i.length;o++)(s=i[o]).setGeneralPurposeVariable(a,s.getX(a));this.minPath(this.layout.getGraph(),e),this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),e)},mxCoordinateAssignment.prototype.minNode=function(e){for(var t=[],n=[],a=[],i=0;i<=e.maxRank;i++){a[i]=e.ranks[i];for(var o=0;o<a[i].length;o++){d=a[i][o];(s=new WeightedCellSorter(d,i)).rankIndex=o,s.visited=!0,t.push(s),n[d=mxCellPath.create(d.getCoreCell())]=s}}for(e=10*t.length,o=0;0<t.length&&o<=e;){var s=t.shift(),i=s.cell,r=s.weightedValue,l=parseInt(s.rankIndex),d=i.getNextLayerConnectedCells(r),c=i.getPreviousLayerConnectedCells(r),m=d.length,u=c.length,p=this.medianXValue(d,r+1),g=this.medianXValue(c,r-1),h=m+u,v=i.getGeneralPurposeVariable(r),b=v;if(0<h&&(b=(p*m+g*u)/h),m=!1,b<v-1?0==l?(i.setGeneralPurposeVariable(r,b),m=!0):(l=a[r][l-1],v=l.getGeneralPurposeVariable(r),v=v+l.width/2+this.intraCellSpacing+i.width/2,v<b?(i.setGeneralPurposeVariable(r,b),m=!0):v<i.getGeneralPurposeVariable(r)-1&&(i.setGeneralPurposeVariable(r,v),m=!0)):b>v+1&&(l==a[r].length-1?(i.setGeneralPurposeVariable(r,b),m=!0):(l=a[r][l+1],v=l.getGeneralPurposeVariable(r),v=v-l.width/2-this.intraCellSpacing-i.width/2,v>b?(i.setGeneralPurposeVariable(r,b),m=!0):v>i.getGeneralPurposeVariable(r)+1&&(i.setGeneralPurposeVariable(r,v),m=!0))),m){for(i=0;i<d.length;i++)r=d[i],r=mxCellPath.create(r.getCoreCell()),null!=(r=n[r])&&0==r.visited&&(r.visited=!0,t.push(r));for(i=0;i<c.length;i++)r=c[i],r=mxCellPath.create(r.getCoreCell()),null!=(r=n[r])&&0==r.visited&&(r.visited=!0,t.push(r))}s.visited=!1,o++}},mxCoordinateAssignment.prototype.medianPos=function(e,t){if(0==e%2)for(var n=t.maxRank;0<n;n--)this.rankMedianPosition(n-1,t,n);else for(n=0;n<t.maxRank-1;n++)this.rankMedianPosition(n+1,t,n)},mxCoordinateAssignment.prototype.rankMedianPosition=function(e,t,n){t=t.ranks[e];for(var a=[],i=[],o=0;o<t.length;o++){var s=t[o];a[o]=new WeightedCellSorter,a[o].cell=s,a[o].rankIndex=o;var r=mxCellPath.create(s.getCoreCell());i[r]=a[o];var l=null,l=n<e?s.getPreviousLayerConnectedCells(e):s.getNextLayerConnectedCells(e);a[o].weightedValue=this.calculatedWeightedValue(s,l)}for(a.sort(WeightedCellSorter.prototype.compare),o=0;o<a.length;o++){r=0,s=a[o].cell,r=0,null!=(l=n<e?s.getPreviousLayerConnectedCells(e).slice():s.getNextLayerConnectedCells(e).slice())&&(r=l.length,r=0<r?this.medianXValue(l,n):s.getGeneralPurposeVariable(e));for(var d=0,l=-1e8,c=a[o].rankIndex-1;0<=c;){var m=mxCellPath.create(t[c].getCoreCell());if(null!=(m=i[m])){var u=m.cell;m.visited?(l=u.getGeneralPurposeVariable(e)+u.width/2+this.intraCellSpacing+d+s.width/2,c=-1):(d+=u.width+this.intraCellSpacing,c--)}}for(d=0,u=1e8,c=a[o].rankIndex+1;c<a.length;)if(m=mxCellPath.create(t[c].getCoreCell()),null!=(m=i[m])){var p=m.cell;m.visited?(u=p.getGeneralPurposeVariable(e)-p.width/2-this.intraCellSpacing-d-s.width/2,c=a.length):(d+=p.width+this.intraCellSpacing,c++)}r>=l&&r<=u?s.setGeneralPurposeVariable(e,r):r<l?(s.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):r>u&&(s.setGeneralPurposeVariable(e,u),this.currentXDelta+=r-u),a[o].visited=!0}},mxCoordinateAssignment.prototype.calculatedWeightedValue=function(e,t){for(var n=0,a=0;a<t.length;a++){var i=t[a];e.isVertex()&&i.isVertex()?n++:n=e.isEdge()&&i.isEdge()?n+8:n+2}return n},mxCoordinateAssignment.prototype.medianXValue=function(e,t){if(0==e.length)return 0;for(var n=[],a=0;a<e.length;a++)n[a]=e[a].getGeneralPurposeVariable(t);return n.sort(function(e,t){return e-t}),1==e.length%2?n[Math.floor(e.length/2)]:(a=e.length/2,(n[a-1]+n[a])/2)},mxCoordinateAssignment.prototype.initialCoords=function(e,t){this.calculateWidestRank(e,t);for(var n=this.widestRank;0<=n;n--)n<t.maxRank&&this.rankCoordinates(n,e,t);for(n=this.widestRank+1;n<=t.maxRank;n++)0<n&&this.rankCoordinates(n,e,t)},mxCoordinateAssignment.prototype.rankCoordinates=function(e,t,n){t=n.ranks[e],n=0;for(var a=this.initialX+(this.widestRankValue-this.rankWidths[e])/2,i=!1,o=0;o<t.length;o++){var s=t[o];if(s.isVertex()){var r=this.layout.getVertexBounds(s.cell);null!=r?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(s.width=r.width,s.height=r.height):(s.width=r.height,s.height=r.width):i=!0,n=Math.max(n,s.height)}else s.isEdge()&&(r=1,null!=s.edges?r=s.edges.length:mxLog.warn("edge.edges is null"),s.width=(r-1)*this.parallelEdgeSpacing);a+=s.width/2,s.setX(e,a),s.setGeneralPurposeVariable(e,a),a+=s.width/2,a+=this.intraCellSpacing}1==i&&mxLog.warn("At least one cell has no bounds")},mxCoordinateAssignment.prototype.calculateWidestRank=function(e,t){var n=-this.interRankCellSpacing,a=0;this.rankWidths=[],this.rankY=[];for(var i=t.maxRank;0<=i;i--){for(var o=0,s=t.ranks[i],r=this.initialX,l=!1,d=0;d<s.length;d++){var c=s[d];if(c.isVertex()){var m=this.layout.getVertexBounds(c.cell);null!=m?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(c.width=m.width,c.height=m.height):(c.width=m.height,c.height=m.width):l=!0,o=Math.max(o,c.height)}else c.isEdge()&&(m=1,null!=c.edges?m=c.edges.length:mxLog.warn("edge.edges is null"),c.width=(m-1)*this.parallelEdgeSpacing);r+=c.width/2,c.setX(i,r),c.setGeneralPurposeVariable(i,r),r+=c.width/2,(r+=this.intraCellSpacing)>this.widestRankValue&&(this.widestRankValue=r,this.widestRank=i),this.rankWidths[i]=r}for(1==l&&mxLog.warn("At least one cell has no bounds"),this.rankY[i]=n,r=o/2+a/2+this.interRankCellSpacing,a=o,n=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?n+r:n-r,d=0;d<s.length;d++)s[d].setY(i,n)}},mxCoordinateAssignment.prototype.minPath=function(e,t){var n,a=t.edgeMapper;for(n in a){var i=a[n];if(!(1>i.maxRank-i.minRank-1)){for(var o=i.getGeneralPurposeVariable(i.minRank+1),s=!0,r=0,l=i.minRank+2;l<i.maxRank;l++)o!=(d=i.getGeneralPurposeVariable(l))?(s=!1,o=d):r++;if(!s){for(var s=o=0,d=[],c=[],m=i.getGeneralPurposeVariable(i.minRank+1),l=i.minRank+1;l<i.maxRank-1;l++){var u=i.getX(l+1);m==u?(d[l-i.minRank-1]=m,o++):this.repositionValid(t,i,l+1,m)?(d[l-i.minRank-1]=m,o++):m=d[l-i.minRank-1]=u}for(m=i.getX(l),l=i.maxRank-1;l>i.minRank+1;l--)u=i.getX(l-1),m==u?(c[l-i.minRank-2]=m,s++):this.repositionValid(t,i,l-1,m)?(c[l-i.minRank-2]=m,s++):(c[l-i.minRank-2]=i.getX(l-1),m=u);if(s>r||o>r)if(s>=o)for(l=i.maxRank-2;l>i.minRank;l--)i.setX(l,c[l-i.minRank-1]);else if(o>s)for(l=i.minRank+2;l<i.maxRank;l++)i.setX(l,d[l-i.minRank-2])}}}},mxCoordinateAssignment.prototype.repositionValid=function(e,t,n,a){e=e.ranks[n];for(var i=-1,o=0;o<e.length;o++)if(t==e[o]){i=o;break}if(0>i)return!1;if(o=t.getGeneralPurposeVariable(n),a<o){if(0==i)return!0;if(e=e[i-1],n=e.getGeneralPurposeVariable(n),!((n=n+e.width/2+this.intraCellSpacing+t.width/2)<=a))return!1}else if(a>o){if(i==e.length-1)return!0;if(e=e[i+1],n=e.getGeneralPurposeVariable(n),!((n=n-e.width/2-this.intraCellSpacing-t.width/2)>=a))return!1}return!0},mxCoordinateAssignment.prototype.setCellLocations=function(e,t){this.rankTopY=[],this.rankBottomY=[];for(var n=0;n<t.ranks.length;n++)this.rankTopY[n]=Number.MAX_VALUE,this.rankBottomY[n]=0;n=null,this.layout.resizeParent&&(n={});var a,i=t.edgeMapper,o=t.vertexMapper;for(a in o){s=o[a];if(this.setVertexLocation(s),this.layout.resizeParent){var s=e.model.getParent(s.cell),r=mxCellPath.create(s);null==n[r]&&(n[r]=s)}}this.layout.resizeParent&&null!=n&&this.adjustParents(n),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(t);for(a in i)this.setEdgePosition(i[a])},mxCoordinateAssignment.prototype.adjustParents=function(e){var t,n=[];for(t in e)n.push(e[t]);this.layout.arrangeGroups(mxUtils.sortCells(n,!0),this.groupPadding)},mxCoordinateAssignment.prototype.localEdgeProcessing=function(e){for(var t=0;t<e.ranks.length;t++)for(var n=e.ranks[t],a=0;a<n.length;a++){var i=n[a];if(i.isVertex())for(var o=i.getPreviousLayerConnectedCells(t),s=t-1,r=0;2>r;r++){if(-1<s&&s<e.ranks.length&&null!=o&&0<o.length){for(var l=[],d=0;d<o.length;d++){var c=new WeightedCellSorter(o[d],o[d].getX(s));l.push(c)}l.sort(WeightedCellSorter.prototype.compare);for(var m=(c=i.x[0]-i.width/2)+i.width,u=o=0,s=[],d=0;d<l.length;d++){var p,g=l[d].cell;if(g.isVertex()){p=0==r?i.connectsAsSource:i.connectsAsTarget;for(var h=0;h<p.length;h++)p[h].source!=g&&p[h].target!=g||(o+=p[h].edges.length,u++,s.push(p[h]))}else o+=g.edges.length,u++,s.push(g)}for(i.width>(o+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(c+=this.prefHozEdgeSep,m-=this.prefHozEdgeSep),c+=(l=(m-c)/o)/2,m=this.minEdgeJetty-this.prefVertEdgeOff,d=u=0;d<s.length;d++){for(g=s[d].edges.length,h=mxCellPath.create(s[d].edges[0]),null==(p=this.jettyPositions[h])&&(p=[],this.jettyPositions[h]=p),d<o/2?m+=this.prefVertEdgeOff:d>o/2&&(m-=this.prefVertEdgeOff),h=0;h<g;h++)p[4*h+2*r]=c,c+=l,p[4*h+2*r+1]=m;u=Math.max(u,m)}}o=i.getNextLayerConnectedCells(t),s=t+1}}},mxCoordinateAssignment.prototype.setEdgePosition=function(e){var t=0;if(101207!=e.temp[0]){var n=e.maxRank,a=e.minRank;n==a&&(n=e.source.maxRank,a=e.target.minRank);for(var i=0,o=mxCellPath.create(e.edges[0]),o=this.jettyPositions[o],s=e.isReversed?e.target.cell:e.source.cell,r=this.layout.graph,l=0;l<e.edges.length;l++){var d=e.edges[l],c=this.layout.getVisibleTerminal(d,!0),m=r.model.getTerminal(d,!0),u=[],p=e.isReversed;if(c!=s&&(p=!p),null!=o){var g=p?2:0,h=p?this.rankTopY[a]:this.rankBottomY[n],v=o[4*i+1+g];p&&(v=-v),h+=v,g=o[4*i+g],m=r.model.getTerminal(d,!0),this.layout.isPort(m)&&r.model.getParent(m)==c&&(g=r.view.getState(m),g=null!=g?g.x:c.geometry.x+e.source.width*m.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(g,h)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,h+v))):(u.push(new mxPoint(h,g)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(h+v,g)))}for(g=e.x.length-1,h=v=-1,c=e.maxRank-1,p&&(g=0,v=e.x.length,h=1,c=e.minRank+1);e.maxRank!=e.minRank&&g!=v;g+=h){var m=e.x[g]+t,b=(this.rankTopY[c]+this.rankBottomY[c+1])/2,f=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p)var E=b,b=f,f=E;this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(m,b)),u.push(new mxPoint(m,f))):(u.push(new mxPoint(b,m)),u.push(new mxPoint(f,m))),this.limitX=Math.max(this.limitX,m),c+=h}null!=o&&(g=p?2:0,h=p?this.rankBottomY[n]:this.rankTopY[a],v=o[4*i+3-g],p&&(v=-v),h-=v,g=o[4*i+2-g],p=r.model.getTerminal(d,!1),c=this.layout.getVisibleTerminal(d,!1),this.layout.isPort(p)&&r.model.getParent(p)==c&&(g=r.view.getState(p),g=null!=g?g.x:c.geometry.x+e.target.width*p.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,h-v)),u.push(new mxPoint(g,h))):(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(h-v,g)),u.push(new mxPoint(h,g)))),e.isReversed&&this.processReversedEdge(e,d),this.layout.setEdgePoints(d,u),t=0==t?this.parallelEdgeSpacing:0<t?-t:-t+this.parallelEdgeSpacing,i++}e.temp[0]=101207}},mxCoordinateAssignment.prototype.setVertexLocation=function(e){var t=e.cell,n=e.x[0]-e.width/2,a=e.y[0]-e.height/2;this.rankTopY[e.minRank]=Math.min(this.rankTopY[e.minRank],a),this.rankBottomY[e.minRank]=Math.max(this.rankBottomY[e.minRank],a+e.height),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(t,n,a):this.layout.setVertexLocation(t,a,n),this.limitX=Math.max(this.limitX,n+e.width)},mxCoordinateAssignment.prototype.processReversedEdge=function(e,t){},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,t){return null!=e&&null!=t?t.weightedValue>e.weightedValue?-1:t.weightedValue<e.weightedValue?1:t.nudge?-1:1:0},mxHierarchicalLayout.prototype=new mxGraphLayout,mxHierarchicalLayout.prototype.constructor=mxHierarchicalLayout,mxHierarchicalLayout.prototype.roots=null,mxHierarchicalLayout.prototype.resizeParent=!1,mxHierarchicalLayout.prototype.moveParent=!1,mxHierarchicalLayout.prototype.parentBorder=0,mxHierarchicalLayout.prototype.intraCellSpacing=30,mxHierarchicalLayout.prototype.interRankCellSpacing=100,mxHierarchicalLayout.prototype.interHierarchySpacing=60,mxHierarchicalLayout.prototype.parallelEdgeSpacing=10,mxHierarchicalLayout.prototype.orientation=mxConstants.DIRECTION_NORTH,mxHierarchicalLayout.prototype.fineTuning=!0,mxHierarchicalLayout.prototype.tightenToSource=!0,mxHierarchicalLayout.prototype.disableEdgeStyle=!0,mxHierarchicalLayout.prototype.traverseAncestors=!0,mxHierarchicalLayout.prototype.model=null,mxHierarchicalLayout.prototype.edgesCache=null,mxHierarchicalLayout.prototype.getModel=function(){return this.model},mxHierarchicalLayout.prototype.execute=function(e,t){this.parent=e;var n=this.graph.model;if(this.edgesCache={},null!=t||null!=e){if(null!=t&&null!=e){for(var a=[],i=0;i<t.length;i++)n.isAncestor(e,t[i])&&a.push(t[i]);this.roots=a}else this.roots=t;n.beginUpdate();try{this.run(e),this.resizeParent&&!this.graph.isCellCollapsed(e)&&this.graph.updateGroupBounds([e],this.parentBorder,this.moveParent)}finally{n.endUpdate()}}},mxHierarchicalLayout.prototype.findRoots=function(e,t){var n=[];if(null!=e&&null!=t){var a,i=this.graph.model,o=null,s=-1e5;for(a in t){var r=t[a];if(i.isVertex(r)&&this.graph.isCellVisible(r)){for(var l=this.getEdges(r),d=0,c=0,m=0;m<l.length;m++)this.getVisibleTerminal(l[m],!0)==r?d++:c++;0==c&&0<d&&n.push(r),(l=d-c)>s&&(s=l,o=r)}}0==n.length&&null!=o&&n.push(o)}return n},mxHierarchicalLayout.prototype.getEdges=function(e){var t=mxCellPath.create(e);if(null!=this.edgesCache[t])return this.edgesCache[t];for(var n=this.graph.model,a=[],i=this.graph.isCellCollapsed(e),o=n.getChildCount(e),s=0;s<o;s++){var r=n.getChildAt(e,s);this.isPort(r)?a=a.concat(n.getEdges(r,!0,!0)):!i&&this.graph.isCellVisible(r)||(a=a.concat(n.getEdges(r,!0,!0)))}for(a=a.concat(n.getEdges(e,!0,!0)),n=[],s=0;s<a.length;s++)i=this.getVisibleTerminal(a[s],!0),o=this.getVisibleTerminal(a[s],!1),(i==o||i!=o&&(o==e&&(null==this.parent||this.graph.isValidAncestor(i,this.parent,this.traverseAncestors))||i==e&&(null==this.parent||this.graph.isValidAncestor(o,this.parent,this.traverseAncestors))))&&n.push(a[s]);return this.edgesCache[t]=n},mxHierarchicalLayout.prototype.getVisibleTerminal=function(e,t){var n=null!=(n=this.graph.view.getState(e))?n.getVisibleTerminal(t):this.graph.view.getVisibleTerminal(e,t);return this.isPort(n)&&(n=this.graph.model.getParent(n)),n},mxHierarchicalLayout.prototype.run=function(e){var t=[],n=[];if(null==this.roots&&null!=e){var a={};this.filterDescendants(e,a),this.roots=[];var i,o=!0;for(i in a)if(null!=a[i]){o=!1;break}for(;!o;){for(var s=this.findRoots(e,a),o=0;o<s.length;o++){var r=[];t.push(r),this.traverse(s[o],!0,null,n,r,t,a)}for(o=0;o<s.length;o++)this.roots.push(s[o]);o=!0;for(i in a)if(null!=a[i]){o=!1;break}}}else for(o=0;o<roots.length;o++)r=[],t.push(r),traverse(roots.get(o),!0,null,n,r,t,null);for(o=n=0;o<t.length;o++){r=t[o],a=[];for(i in r)a.push(r[i]);this.model=new mxGraphHierarchyModel(this,a,this.roots,e,this.tightenToSource),this.cycleStage(e),this.layeringStage(),this.crossingStage(e),n=this.placementStage(n,e)}},mxHierarchicalLayout.prototype.filterDescendants=function(e,t){var n=this.graph.model;if(n.isVertex(e)&&e!=this.parent&&this.graph.isCellVisible(e)&&(t[mxCellPath.create(e)]=e),this.traverseAncestors||e==this.parent&&this.graph.isCellVisible(e))for(var a=n.getChildCount(e),i=0;i<a;i++){var o=n.getChildAt(e,i);this.isPort(o)||this.filterDescendants(o,t)}},mxHierarchicalLayout.prototype.isPort=function(e){return!!e.geometry.relative},mxHierarchicalLayout.prototype.getEdgesBetween=function(e,t,n){n=null!=n&&n;for(var a=this.getEdges(e),i=[],o=0;o<a.length;o++){var s=this.getVisibleTerminal(a[o],!0),r=this.getVisibleTerminal(a[o],!1);(s==e&&r==t||!n&&s==t&&r==e)&&i.push(a[o])}return i},mxHierarchicalLayout.prototype.traverse=function(e,t,n,a,i,o,s){if(null!=e&&null!=a){var r=mxCellPath.create(e);if(null!=a[r]||null!=s&&null==s[r]){if(null==i[r])for(n=0;n<o.length;n++)if(null!=(e=o[n])[r]){for(l in i)e[l]=i[l];return o.pop(),e}}else{null==i[r]&&(i[r]=e),null==a[r]&&(a[r]=e),delete s[r];var l=this.getEdges(e);for(n=0;n<l.length;n++)r=this.getVisibleTerminal(l[n],!0)==e,(!t||r)&&(r=this.getVisibleTerminal(l[n],!r),i=this.traverse(r,t,l[n],a,i,o,s))}}return i},mxHierarchicalLayout.prototype.cycleStage=function(e){new mxMinimumCycleRemover(this).execute(e)},mxHierarchicalLayout.prototype.layeringStage=function(){this.model.initialRank(),this.model.fixRanks()},mxHierarchicalLayout.prototype.crossingStage=function(e){new mxMedianHybridCrossingReduction(this).execute(e)},mxHierarchicalLayout.prototype.placementStage=function(e,t){var n=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,e,this.parallelEdgeSpacing);return n.fineTuning=this.fineTuning,n.execute(t),n.limitX+this.interHierarchySpacing},mxGraphModel.prototype=new mxEventSource,mxGraphModel.prototype.constructor=mxGraphModel,mxGraphModel.prototype.root=null,mxGraphModel.prototype.cells=null,mxGraphModel.prototype.maintainEdgeParent=!0,mxGraphModel.prototype.createIds=!0,mxGraphModel.prototype.prefix="",mxGraphModel.prototype.postfix="",mxGraphModel.prototype.nextId=0,mxGraphModel.prototype.currentEdit=null,mxGraphModel.prototype.updateLevel=0,mxGraphModel.prototype.endingUpdate=!1,mxGraphModel.prototype.clear=function(){this.setRoot(this.createRoot())},mxGraphModel.prototype.isCreateIds=function(){return this.createIds},mxGraphModel.prototype.setCreateIds=function(e){this.createIds=e},mxGraphModel.prototype.createRoot=function(){var e=new mxCell;return e.insert(new mxCell),e},mxGraphModel.prototype.getCell=function(e){return null!=this.cells?this.cells[e]:null},mxGraphModel.prototype.filterCells=function(e,t){n=null;if(null!=e)for(var n=[],a=0;a<e.length;a++)t(e[a])&&n.push(e[a]);return n},mxGraphModel.prototype.getDescendants=function(e){return this.filterDescendants(null,e)},mxGraphModel.prototype.filterDescendants=function(e,t){o=[];t=t||this.getRoot(),(null==e||e(t))&&o.push(t);for(var n=this.getChildCount(t),a=0;a<n;a++)var i=this.getChildAt(t,a),o=o.concat(this.filterDescendants(e,i));return o},mxGraphModel.prototype.getRoot=function(e){var t=e||this.root;if(null!=e)for(;null!=e;)t=e,e=this.getParent(e);return t},mxGraphModel.prototype.setRoot=function(e){return this.execute(new mxRootChange(this,e)),e},mxGraphModel.prototype.rootChanged=function(e){var t=this.root;return this.root=e,this.nextId=0,this.cells=null,this.cellAdded(e),t},mxGraphModel.prototype.isRoot=function(e){return null!=e&&this.root==e},mxGraphModel.prototype.isLayer=function(e){return this.isRoot(this.getParent(e))},mxGraphModel.prototype.isAncestor=function(e,t){for(;null!=t&&t!=e;)t=this.getParent(t);return t==e},mxGraphModel.prototype.contains=function(e){return this.isAncestor(this.root,e)},mxGraphModel.prototype.getParent=function(e){return null!=e?e.getParent():null},mxGraphModel.prototype.add=function(e,t,n){if(t!=e&&null!=e&&null!=t){null==n&&(n=this.getChildCount(e));var a=e!=this.getParent(t);this.execute(new mxChildChange(this,e,t,n)),this.maintainEdgeParent&&a&&this.updateEdgeParents(t)}return t},mxGraphModel.prototype.cellAdded=function(e){if(null!=e){if(null==e.getId()&&this.createIds&&e.setId(this.createId(e)),null!=e.getId()&&(t=this.getCell(e.getId()))!=e){for(;null!=t;)e.setId(this.createId(e)),t=this.getCell(e.getId());null==this.cells&&(this.cells={}),this.cells[e.getId()]=e}mxUtils.isNumeric(e.getId())&&(this.nextId=Math.max(this.nextId,e.getId()));for(var t=this.getChildCount(e),n=0;n<t;n++)this.cellAdded(this.getChildAt(e,n))}},mxGraphModel.prototype.createId=function(e){return e=this.nextId,this.nextId++,this.prefix+e+this.postfix},mxGraphModel.prototype.updateEdgeParents=function(e,t){t=t||this.getRoot(e);for(var n=this.getChildCount(e),a=0;a<n;a++){var i=this.getChildAt(e,a);this.updateEdgeParents(i,t)}for(i=this.getEdgeCount(e),n=[],a=0;a<i;a++)n.push(this.getEdgeAt(e,a));for(a=0;a<n.length;a++)i=n[a],this.isAncestor(t,i)&&this.updateEdgeParent(i,t)},mxGraphModel.prototype.updateEdgeParent=function(e,t){for(var n=this.getTerminal(e,!0),a=this.getTerminal(e,!1),i=null;null!=n&&!this.isEdge(n)&&null!=n.geometry&&n.geometry.relative;)n=this.getParent(n);for(;null!=a&&!this.isEdge(a)&&null!=a.geometry&&a.geometry.relative;)a=this.getParent(a);if(this.isAncestor(t,n)&&this.isAncestor(t,a)&&null!=(i=n==a?this.getParent(n):this.getNearestCommonAncestor(n,a))&&(this.getParent(i)!=this.root||this.isAncestor(i,e))&&this.getParent(e)!=i){if(null!=(n=this.getGeometry(e))){var o=this.getOrigin(this.getParent(e)),s=this.getOrigin(i),a=s.x-o.x,o=s.y-o.y;(n=n.clone()).translate(-a,-o),this.setGeometry(e,n)}this.add(i,e,this.getChildCount(i))}},mxGraphModel.prototype.getOrigin=function(e){var t=null;return null!=e?(t=this.getOrigin(this.getParent(e)),this.isEdge(e)||null!=(e=this.getGeometry(e))&&(t.x+=e.x,t.y+=e.y)):t=new mxPoint,t},mxGraphModel.prototype.getNearestCommonAncestor=function(e,t){if(null!=e&&null!=t&&null!=(o=mxCellPath.create(t))&&0<o.length){var n=e,a=mxCellPath.create(n);if(o.length<a.length)var n=t,i=a,a=o,o=i;for(;null!=n;){if(i=this.getParent(n),0==o.indexOf(a+mxCellPath.PATH_SEPARATOR)&&null!=i)return n;a=mxCellPath.getParentPath(a),n=i}}return null},mxGraphModel.prototype.remove=function(e){return e==this.root?this.setRoot(null):null!=this.getParent(e)&&this.execute(new mxChildChange(this,null,e)),e},mxGraphModel.prototype.cellRemoved=function(e){if(null!=e&&null!=this.cells){for(var t=this.getChildCount(e)-1;0<=t;t--)this.cellRemoved(this.getChildAt(e,t));null!=this.cells&&null!=e.getId()&&delete this.cells[e.getId()]}},mxGraphModel.prototype.parentForCellChanged=function(e,t,n){var a=this.getParent(e);return null!=t?(t!=a||a.getIndex(e)!=n)&&t.insert(e,n):null!=a&&(n=a.getIndex(e),a.remove(n)),this.contains(a)||null==t?null==t&&this.cellRemoved(e):this.cellAdded(e),a},mxGraphModel.prototype.getChildCount=function(e){return null!=e?e.getChildCount():0},mxGraphModel.prototype.getChildAt=function(e,t){return null!=e?e.getChildAt(t):null},mxGraphModel.prototype.getChildren=function(e){return null!=e?e.children:null},mxGraphModel.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraphModel.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraphModel.prototype.getChildCells=function(e,t,n){t=null!=t&&t,n=null!=n&&n;for(var a=this.getChildCount(e),i=[],o=0;o<a;o++){var s=this.getChildAt(e,o);(!n&&!t||n&&this.isEdge(s)||t&&this.isVertex(s))&&i.push(s)}return i},mxGraphModel.prototype.getTerminal=function(e,t){return null!=e?e.getTerminal(t):null},mxGraphModel.prototype.setTerminal=function(e,t,n){var a=t!=this.getTerminal(e,n);return this.execute(new mxTerminalChange(this,e,t,n)),this.maintainEdgeParent&&a&&this.updateEdgeParent(e,this.getRoot()),t},mxGraphModel.prototype.setTerminals=function(e,t,n){this.beginUpdate();try{this.setTerminal(e,t,!0),this.setTerminal(e,n,!1)}finally{this.endUpdate()}},mxGraphModel.prototype.terminalForCellChanged=function(e,t,n){var a=this.getTerminal(e,n);return null!=t?t.insertEdge(e,n):null!=a&&a.removeEdge(e,n),a},mxGraphModel.prototype.getEdgeCount=function(e){return null!=e?e.getEdgeCount():0},mxGraphModel.prototype.getEdgeAt=function(e,t){return null!=e?e.getEdgeAt(t):null},mxGraphModel.prototype.getDirectedEdgeCount=function(e,t,n){for(var a=0,i=this.getEdgeCount(e),o=0;o<i;o++){var s=this.getEdgeAt(e,o);s!=n&&this.getTerminal(s,t)==e&&a++}return a},mxGraphModel.prototype.getConnections=function(e){return this.getEdges(e,!0,!0,!1)},mxGraphModel.prototype.getIncomingEdges=function(e){return this.getEdges(e,!0,!1,!1)},mxGraphModel.prototype.getOutgoingEdges=function(e){return this.getEdges(e,!1,!0,!1)},mxGraphModel.prototype.getEdges=function(e,t,n,a){t=null==t||t,n=null==n||n,a=null==a||a;for(var i=this.getEdgeCount(e),o=[],s=0;s<i;s++){var r=this.getEdgeAt(e,s),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(a&&l==d||l!=d&&(t&&d==e||n&&l==e))&&o.push(r)}return o},mxGraphModel.prototype.getEdgesBetween=function(e,t,n){n=null!=n&&n;var a=this.getEdgeCount(e),i=this.getEdgeCount(t),o=e,s=a;for(i<a&&(s=i,o=t),a=[],i=0;i<s;i++){var r=this.getEdgeAt(o,i),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1),c=d==e&&l==t;(l==e&&d==t||!n&&c)&&a.push(r)}return a},mxGraphModel.prototype.getOpposites=function(e,t,n,a){n=null==n||n,a=null==a||a;var i=[];if(null!=e)for(var o=0;o<e.length;o++){var s=this.getTerminal(e[o],!0),r=this.getTerminal(e[o],!1);s==t&&null!=r&&r!=t&&a?i.push(r):r==t&&null!=s&&s!=t&&n&&i.push(s)}return i},mxGraphModel.prototype.getTopmostCells=function(e){for(var t=[],n=0;n<e.length;n++){for(var a=e[n],i=!0,o=this.getParent(a);null!=o;){if(0<=mxUtils.indexOf(e,o)){i=!1;break}o=this.getParent(o)}i&&t.push(a)}return t},mxGraphModel.prototype.isVertex=function(e){return null!=e&&e.isVertex()},mxGraphModel.prototype.isEdge=function(e){return null!=e&&e.isEdge()},mxGraphModel.prototype.isConnectable=function(e){return null!=e&&e.isConnectable()},mxGraphModel.prototype.getValue=function(e){return null!=e?e.getValue():null},mxGraphModel.prototype.setValue=function(e,t){return this.execute(new mxValueChange(this,e,t)),t},mxGraphModel.prototype.valueForCellChanged=function(e,t){return e.valueChanged(t)},mxGraphModel.prototype.getGeometry=function(e,t){return null!=e?e.getGeometry():null},mxGraphModel.prototype.setGeometry=function(e,t){return t!=this.getGeometry(e)&&this.execute(new mxGeometryChange(this,e,t)),t},mxGraphModel.prototype.geometryForCellChanged=function(e,t){var n=this.getGeometry(e);return e.setGeometry(t),n},mxGraphModel.prototype.getStyle=function(e){return null!=e?e.getStyle():null},mxGraphModel.prototype.setStyle=function(e,t){return t!=this.getStyle(e)&&this.execute(new mxStyleChange(this,e,t)),t},mxGraphModel.prototype.styleForCellChanged=function(e,t){var n=this.getStyle(e);return e.setStyle(t),n},mxGraphModel.prototype.isCollapsed=function(e){return null!=e&&e.isCollapsed()},mxGraphModel.prototype.setCollapsed=function(e,t){return t!=this.isCollapsed(e)&&this.execute(new mxCollapseChange(this,e,t)),t},mxGraphModel.prototype.collapsedStateForCellChanged=function(e,t){var n=this.isCollapsed(e);return e.setCollapsed(t),n},mxGraphModel.prototype.isVisible=function(e){return null!=e&&e.isVisible()},mxGraphModel.prototype.setVisible=function(e,t){return t!=this.isVisible(e)&&this.execute(new mxVisibleChange(this,e,t)),t},mxGraphModel.prototype.visibleStateForCellChanged=function(e,t){var n=this.isVisible(e);return e.setVisible(t),n},mxGraphModel.prototype.execute=function(e){e.execute(),this.beginUpdate(),this.currentEdit.add(e),this.fireEvent(new mxEventObject(mxEvent.EXECUTE,"change",e)),this.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",e)),this.endUpdate()},mxGraphModel.prototype.beginUpdate=function(){this.updateLevel++,this.fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE)),1==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.START_EDIT))},mxGraphModel.prototype.endUpdate=function(){if(0==--this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.END_EDIT)),!this.endingUpdate){this.endingUpdate=0==this.updateLevel,this.fireEvent(new mxEventObject(mxEvent.END_UPDATE,"edit",this.currentEdit));try{if(this.endingUpdate&&!this.currentEdit.isEmpty()){this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO,"edit",this.currentEdit));var e=this.currentEdit;this.currentEdit=this.createUndoableEdit(),e.notify(),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))}}finally{this.endingUpdate=!1}}},mxGraphModel.prototype.createUndoableEdit=function(){var e=new mxUndoableEdit(this,!0);return e.notify=function(){e.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",e,"changes",e.changes)),e.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",e,"changes",e.changes))},e},mxGraphModel.prototype.mergeChildren=function(e,t,n){n=null==n||n,this.beginUpdate();try{var a={};this.mergeChildrenImpl(e,t,n,a);for(var i in a){var o=a[i],s=this.getTerminal(o,!0);null!=s&&(s=a[mxCellPath.create(s)],this.setTerminal(o,s,!0)),null!=(s=this.getTerminal(o,!1))&&(s=a[mxCellPath.create(s)],this.setTerminal(o,s,!1))}}finally{this.endUpdate()}},mxGraphModel.prototype.mergeChildrenImpl=function(e,t,n,a){this.beginUpdate();try{for(var i=e.getChildCount(),o=0;o<i;o++){var s=e.getChildAt(o);if("function"==typeof s.getId){var r=s.getId(),l=null==r||this.isEdge(s)&&n?null:this.getCell(r);if(null==l){var d=s.clone();d.setId(r),d.setTerminal(s.getTerminal(!0),!0),d.setTerminal(s.getTerminal(!1),!1),l=t.insert(d),this.cellAdded(l)}a[mxCellPath.create(s)]=l,this.mergeChildrenImpl(s,l,n,a)}}}finally{this.endUpdate()}},mxGraphModel.prototype.getParents=function(e){var t=[];if(null!=e)for(var n={},a=0;a<e.length;a++){var i=this.getParent(e[a]);if(null!=i){var o=mxCellPath.create(i);null==n[o]&&(n[o]=i,t.push(i))}}return t},mxGraphModel.prototype.cloneCell=function(e){return null!=e?this.cloneCells([e],!0)[0]:null},mxGraphModel.prototype.cloneCells=function(e,t){for(var n={},a=[],i=0;i<e.length;i++)null!=e[i]?a.push(this.cloneCellImpl(e[i],n,t)):a.push(null);for(i=0;i<a.length;i++)null!=a[i]&&this.restoreClone(a[i],e[i],n);return a},mxGraphModel.prototype.cloneCellImpl=function(e,t,n){var a=this.cellCloned(e);if(t[mxObjectIdentity.get(e)]=a,n){n=this.getChildCount(e);for(var i=0;i<n;i++){var o=this.cloneCellImpl(this.getChildAt(e,i),t,!0);a.insert(o)}}return a},mxGraphModel.prototype.cellCloned=function(e){return e.clone()},mxGraphModel.prototype.restoreClone=function(e,t,n){null!=(a=this.getTerminal(t,!0))&&null!=(a=n[mxObjectIdentity.get(a)])&&a.insertEdge(e,!0),null!=(a=this.getTerminal(t,!1))&&null!=(a=n[mxObjectIdentity.get(a)])&&a.insertEdge(e,!1);for(var a=this.getChildCount(e),i=0;i<a;i++)this.restoreClone(this.getChildAt(e,i),this.getChildAt(t,i),n)},mxRootChange.prototype.execute=function(){this.root=this.previous,this.previous=this.model.rootChanged(this.previous)},mxChildChange.prototype.execute=function(){var e=this.model.getParent(this.child),t=null!=e?e.getIndex(this.child):0;null==this.previous&&this.connect(this.child,!1),e=this.model.parentForCellChanged(this.child,this.previous,this.previousIndex),null!=this.previous&&this.connect(this.child,!0),this.parent=this.previous,this.previous=e,this.index=this.previousIndex,this.previousIndex=t},mxChildChange.prototype.connect=function(e,t){t=null==t||t;var n=e.getTerminal(!0),a=e.getTerminal(!1);for(null!=n&&(t?this.model.terminalForCellChanged(e,n,!0):this.model.terminalForCellChanged(e,null,!0)),null!=a&&(t?this.model.terminalForCellChanged(e,a,!1):this.model.terminalForCellChanged(e,null,!1)),e.setTerminal(n,!0),e.setTerminal(a,!1),n=this.model.getChildCount(e),a=0;a<n;a++)this.connect(this.model.getChildAt(e,a),t)},mxTerminalChange.prototype.execute=function(){this.terminal=this.previous,this.previous=this.model.terminalForCellChanged(this.cell,this.previous,this.source)},mxValueChange.prototype.execute=function(){this.value=this.previous,this.previous=this.model.valueForCellChanged(this.cell,this.previous)},mxStyleChange.prototype.execute=function(){this.style=this.previous,this.previous=this.model.styleForCellChanged(this.cell,this.previous)},mxGeometryChange.prototype.execute=function(){this.geometry=this.previous,this.previous=this.model.geometryForCellChanged(this.cell,this.previous)},mxCollapseChange.prototype.execute=function(){this.collapsed=this.previous,this.previous=this.model.collapsedStateForCellChanged(this.cell,this.previous)},mxVisibleChange.prototype.execute=function(){this.visible=this.previous,this.previous=this.model.visibleStateForCellChanged(this.cell,this.previous)},mxCellAttributeChange.prototype.execute=function(){var e=this.cell.getAttribute(this.attribute);null==this.previous?this.cell.value.removeAttribute(this.attribute):this.cell.setAttribute(this.attribute,this.previous),this.previous=e},mxCell.prototype.id=null,mxCell.prototype.value=null,mxCell.prototype.geometry=null,mxCell.prototype.style=null,mxCell.prototype.vertex=!1,mxCell.prototype.edge=!1,mxCell.prototype.connectable=!0,mxCell.prototype.visible=!0,mxCell.prototype.collapsed=!1,mxCell.prototype.parent=null,mxCell.prototype.source=null,mxCell.prototype.target=null,mxCell.prototype.children=null,mxCell.prototype.edges=null,mxCell.prototype.mxTransient="id value parent source target children edges".split(" "),mxCell.prototype.getId=function(){return this.id},mxCell.prototype.setId=function(e){this.id=e},mxCell.prototype.getValue=function(){return this.value},mxCell.prototype.setValue=function(e){this.value=e},mxCell.prototype.valueChanged=function(e){var t=this.getValue();return this.setValue(e),t},mxCell.prototype.getGeometry=function(){return this.geometry},mxCell.prototype.setGeometry=function(e){this.geometry=e},mxCell.prototype.getStyle=function(){return this.style},mxCell.prototype.setStyle=function(e){this.style=e},mxCell.prototype.isVertex=function(){return this.vertex},mxCell.prototype.setVertex=function(e){this.vertex=e},mxCell.prototype.isEdge=function(){return this.edge},mxCell.prototype.setEdge=function(e){this.edge=e},mxCell.prototype.isConnectable=function(){return this.connectable},mxCell.prototype.setConnectable=function(e){this.connectable=e},mxCell.prototype.isVisible=function(){return this.visible},mxCell.prototype.setVisible=function(e){this.visible=e},mxCell.prototype.isCollapsed=function(){return this.collapsed},mxCell.prototype.setCollapsed=function(e){this.collapsed=e},mxCell.prototype.getParent=function(){return this.parent},mxCell.prototype.setParent=function(e){this.parent=e},mxCell.prototype.getTerminal=function(e){return e?this.source:this.target},mxCell.prototype.setTerminal=function(e,t){return t?this.source=e:this.target=e,e},mxCell.prototype.getChildCount=function(){return null==this.children?0:this.children.length},mxCell.prototype.getIndex=function(e){return mxUtils.indexOf(this.children,e)},mxCell.prototype.getChildAt=function(e){return null==this.children?null:this.children[e]},mxCell.prototype.insert=function(e,t){return null!=e&&(null==t&&(t=this.getChildCount(),e.getParent()==this&&t--),e.removeFromParent(),e.setParent(this),null==this.children?(this.children=[],this.children.push(e)):this.children.splice(t,0,e)),e},mxCell.prototype.remove=function(e){var t=null;return null!=this.children&&0<=e&&null!=(t=this.getChildAt(e))&&(this.children.splice(e,1),t.setParent(null)),t},mxCell.prototype.removeFromParent=function(){if(null!=this.parent){var e=this.parent.getIndex(this);this.parent.remove(e)}},mxCell.prototype.getEdgeCount=function(){return null==this.edges?0:this.edges.length},mxCell.prototype.getEdgeIndex=function(e){return mxUtils.indexOf(this.edges,e)},mxCell.prototype.getEdgeAt=function(e){return null==this.edges?null:this.edges[e]},mxCell.prototype.insertEdge=function(e,t){return null!=e&&(e.removeFromTerminal(t),e.setTerminal(this,t),null==this.edges||e.getTerminal(!t)!=this||0>mxUtils.indexOf(this.edges,e))&&(null==this.edges&&(this.edges=[]),this.edges.push(e)),e},mxCell.prototype.removeEdge=function(e,t){if(null!=e){if(e.getTerminal(!t)!=this&&null!=this.edges){var n=this.getEdgeIndex(e);0<=n&&this.edges.splice(n,1)}e.setTerminal(null,t)}return e},mxCell.prototype.removeFromTerminal=function(e){var t=this.getTerminal(e);null!=t&&t.removeEdge(this,e)},mxCell.prototype.getAttribute=function(e,t){var n=this.getValue();return(null!=n&&n.nodeType==mxConstants.NODETYPE_ELEMENT?n.getAttribute(e):null)||t},mxCell.prototype.setAttribute=function(e,t){var n=this.getValue();null!=n&&n.nodeType==mxConstants.NODETYPE_ELEMENT&&n.setAttribute(e,t)},mxCell.prototype.clone=function(){var e=mxUtils.clone(this,this.mxTransient);return e.setValue(this.cloneValue()),e},mxCell.prototype.cloneValue=function(){var e=this.getValue();return null!=e&&("function"==typeof e.clone?e=e.clone():isNaN(e.nodeType)||(e=e.cloneNode(!0))),e},mxGeometry.prototype=new mxRectangle,mxGeometry.prototype.constructor=mxGeometry,mxGeometry.prototype.TRANSLATE_CONTROL_POINTS=!0,mxGeometry.prototype.alternateBounds=null,mxGeometry.prototype.sourcePoint=null,mxGeometry.prototype.targetPoint=null,mxGeometry.prototype.points=null,mxGeometry.prototype.offset=null,mxGeometry.prototype.relative=!1,mxGeometry.prototype.swap=function(){if(null!=this.alternateBounds){var e=new mxRectangle(this.x,this.y,this.width,this.height);this.x=this.alternateBounds.x,this.y=this.alternateBounds.y,this.width=this.alternateBounds.width,this.height=this.alternateBounds.height,this.alternateBounds=e}},mxGeometry.prototype.getTerminalPoint=function(e){return e?this.sourcePoint:this.targetPoint},mxGeometry.prototype.setTerminalPoint=function(e,t){return t?this.sourcePoint=e:this.targetPoint=e,e},mxGeometry.prototype.translate=function(e,t){if(this.clone(),this.relative||(this.x+=e,this.y+=t),null!=this.sourcePoint&&(this.sourcePoint.x+=e,this.sourcePoint.y+=t),null!=this.targetPoint&&(this.targetPoint.x+=e,this.targetPoint.y+=t),this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var n=this.points.length,a=0;a<n;a++){var i=this.points[a];null!=i&&(i.x+=e,i.y+=t)}};var mxCellPath={PATH_SEPARATOR:".",create:function(e){var t="";if(null!=e)for(var n=e.getParent();null!=n;)t=n.getIndex(e)+mxCellPath.PATH_SEPARATOR+t,e=n,n=e.getParent();return 1<(e=t.length)&&(t=t.substring(0,e-1)),t},getParentPath:function(e){if(null!=e){var t=e.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=t)return e.substring(0,t);if(0<e.length)return""}return null},resolve:function(e,t){var n=e;if(null!=t)for(var a=t.split(mxCellPath.PATH_SEPARATOR),i=0;i<a.length;i++)n=n.getChildAt(parseInt(a[i]));return n},compare:function(e,t){for(var n=Math.min(e.length,t.length),a=0,i=0;i<n;i++)if(e[i]!=t[i]){0==e[i].length||0==t[i].length?a=e[i]==t[i]?0:e[i]>t[i]?1:-1:(n=parseInt(e[i]),i=parseInt(t[i]),a=n==i?0:n>i?1:-1);break}return 0==a&&(n=e.length,i=t.length,n!=i&&(a=n>i?1:-1)),a}},mxPerimeter={RectanglePerimeter:function(e,t,n,a){t=e.getCenterX();var i=e.getCenterY(),o=Math.atan2(n.y-i,n.x-t),s=new mxPoint(0,0),r=Math.PI,l=Math.PI/2-o,d=Math.atan2(e.height,e.width);return o<-r+d||o>r-d?(s.x=e.x,s.y=i-e.width*Math.tan(o)/2):o<-d?(s.y=e.y,s.x=t-e.height*Math.tan(l)/2):o<d?(s.x=e.x+e.width,s.y=i+e.width*Math.tan(o)/2):(s.y=e.y+e.height,s.x=t+e.height*Math.tan(l)/2),a&&(n.x>=e.x&&n.x<=e.x+e.width?s.x=n.x:n.y>=e.y&&n.y<=e.y+e.height&&(s.y=n.y),n.x<e.x?s.x=e.x:n.x>e.x+e.width&&(s.x=e.x+e.width),n.y<e.y?s.y=e.y:n.y>e.y+e.height&&(s.y=e.y+e.height)),s},EllipsePerimeter:function(e,t,n,a){var i=e.x,o=e.y,s=e.width/2,r=e.height/2,l=i+s,d=o+r;t=n.x,n=n.y;var c=parseInt(t-l),m=parseInt(n-d);if(0==c&&0!=m)return new mxPoint(l,d+r*m/Math.abs(m));if(0==c&&0==m)return new mxPoint(t,n);if(a){if(n>=o&&n<=o+e.height)return e=n-d,e=Math.sqrt(s*s*(1-e*e/(r*r)))||0,t<=i&&(e=-e),new mxPoint(l+e,n);if(t>=i&&t<=i+e.width)return e=t-l,e=Math.sqrt(r*r*(1-e*e/(s*s)))||0,n<=o&&(e=-e),new mxPoint(t,d+e)}return i=m/c,d-=i*l,o=s*s*i*i+r*r,e=-2*l*o,r=Math.sqrt(e*e-4*o*(s*s*i*i*l*l+r*r*l*l-s*s*r*r)),s=(-e+r)/(2*o),r=(-e-r)/(2*o),l=i*s+d,d=i*r+d,i=Math.sqrt(Math.pow(s-t,2)+Math.pow(l-n,2)),t=Math.sqrt(Math.pow(r-t,2)+Math.pow(d-n,2)),o=n=0,i<t?(n=s,o=l):(n=r,o=d),new mxPoint(n,o)},RhombusPerimeter:function(e,t,n,a){t=e.x;var i=e.y,o=e.width,s=t+o/2,r=i+(e=e.height)/2,l=n.x;if(n=n.y,s==l)return r>n?new mxPoint(s,i):new mxPoint(s,i+e);if(r==n)return s>l?new mxPoint(t,r):new mxPoint(t+o,r);var d=s,c=r;return a&&(l>=t&&l<=t+o?d=l:n>=i&&n<=i+e&&(c=n)),l<s?n<r?mxUtils.intersection(l,n,d,c,s,i,t,r):mxUtils.intersection(l,n,d,c,s,i+e,t,r):n<r?mxUtils.intersection(l,n,d,c,s,i,t+o,r):mxUtils.intersection(l,n,d,c,s,i+e,t+o,r)},TrianglePerimeter:function(e,t,n,a){var i=(t=null!=t?t.style[mxConstants.STYLE_DIRECTION]:null)==mxConstants.DIRECTION_NORTH||t==mxConstants.DIRECTION_SOUTH,o=e.x,s=e.y,r=e.width,l=o+r/2,d=s+(e=e.height)/2,c=new mxPoint(o,s),m=new mxPoint(o+r,d),u=new mxPoint(o,s+e);t==mxConstants.DIRECTION_NORTH?(c=u,m=new mxPoint(l,s),u=new mxPoint(o+r,s+e)):t==mxConstants.DIRECTION_SOUTH?(m=new mxPoint(l,s+e),u=new mxPoint(o+r,s)):t==mxConstants.DIRECTION_WEST&&(c=new mxPoint(o+r,s),m=new mxPoint(o,d),u=new mxPoint(o+r,s+e));var p=n.x-l,g=n.y-d,p=i?Math.atan2(p,g):Math.atan2(g,p),h=i?Math.atan2(r,e):Math.atan2(e,r),g=!1,g=t==mxConstants.DIRECTION_NORTH||t==mxConstants.DIRECTION_WEST?p>-h&&p<h:p<-Math.PI+h||p>Math.PI-h,h=null;return g?h=a&&(i&&n.x>=c.x&&n.x<=u.x||!i&&n.y>=c.y&&n.y<=u.y)?i?new mxPoint(n.x,c.y):new mxPoint(c.x,n.y):t==mxConstants.DIRECTION_NORTH?new mxPoint(o+r/2+e*Math.tan(p)/2,s+e):t==mxConstants.DIRECTION_SOUTH?new mxPoint(o+r/2-e*Math.tan(p)/2,s):t==mxConstants.DIRECTION_WEST?new mxPoint(o+r,s+e/2+r*Math.tan(p)/2):new mxPoint(o,s+e/2-r*Math.tan(p)/2):(a&&(a=new mxPoint(l,d),n.y>=s&&n.y<=s+e?(a.x=i?l:t==mxConstants.DIRECTION_WEST?o+r:o,a.y=n.y):n.x>=o&&n.x<=o+r&&(a.x=n.x,a.y=i?t==mxConstants.DIRECTION_NORTH?s+e:s:d),l=a.x,d=a.y),h=i&&n.x<=o+r/2||!i&&n.y<=s+e/2?mxUtils.intersection(n.x,n.y,l,d,c.x,c.y,m.x,m.y):mxUtils.intersection(n.x,n.y,l,d,m.x,m.y,u.x,u.y)),null==h&&(h=new mxPoint(l,d)),h}};mxPrintPreview.prototype.graph=null,mxPrintPreview.prototype.pageFormat=null,mxPrintPreview.prototype.scale=null,mxPrintPreview.prototype.border=0,mxPrintPreview.prototype.x0=0,mxPrintPreview.prototype.y0=0,mxPrintPreview.prototype.autoOrigin=!0,mxPrintPreview.prototype.printOverlays=!1,mxPrintPreview.prototype.borderColor=null,mxPrintPreview.prototype.title=null,mxPrintPreview.prototype.pageSelector=null,mxPrintPreview.prototype.wnd=null,mxPrintPreview.prototype.pageCount=0,mxPrintPreview.prototype.getWindow=function(){return this.wnd},mxPrintPreview.prototype.getDoctype=function(){var e="";return 8==document.documentMode&&(e='<meta http-equiv="X-UA-Compatible" content="IE=8">'),e},mxPrintPreview.prototype.open=function(e){var t=this.graph.cellRenderer.initializeOverlay,n=null;try{if(this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(e,t){t.init(e.view.getDrawPane())}),null==this.wnd){this.wnd=window.open();var a=this.wnd.document,i=this.getDoctype();null!=i&&0<i.length&&a.writeln(i),a.writeln("<html>"),a.writeln("<head>"),this.writeHead(a,e),a.writeln("</head>"),a.writeln('<body class="mxPage">'),mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a),mxClient.IS_VML&&(a.namespaces.add("v","urn:schemas-microsoft-com:vml"),a.namespaces.add("o","urn:schemas-microsoft-com:office:office"),a.createStyleSheet().cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css",a));var o=this.graph.getGraphBounds().clone(),s=this.graph.getView().getScale(),r=s/this.scale,l=this.graph.getView().getTranslate();this.autoOrigin||(this.x0=-l.x*this.scale,this.y0=-l.y*this.scale,o.width+=o.x,o.height+=o.y,o.x=0,this.border=o.y=0),o.width/=r,o.height/=r;var d=this.pageFormat.width-2*this.border,c=this.pageFormat.height-2*this.border,m=Math.max(1,Math.ceil((o.width+this.x0)/d)),u=Math.max(1,Math.ceil((o.height+this.y0)/c));this.pageCount=m*u;var p=mxUtils.bind(this,function(){if(this.pageSelector&&(1<u||1<m)){var e=this.createPageSelector(u,m);if(a.body.appendChild(e),mxClient.IS_IE){e.style.position="absolute";var t=function(){e.style.top=a.body.scrollTop+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(e){t()}),mxEvent.addListener(this.wnd,"resize",function(e){t()})}}});if(e=function(e,t){if(null!=this.borderColor&&(e.style.borderColor=this.borderColor,e.style.borderStyle="solid",e.style.borderWidth="1px"),e.style.background="white",t&&(e.style.pageBreakAfter="always"),mxClient.IS_IE?(a.writeln(e.outerHTML),e.parentNode.removeChild(e)):(e.parentNode.removeChild(e),a.body.appendChild(e)),t){var n=a.createElement("hr");n.className="mxPageBreak",a.body.appendChild(n)}},null!=(b=this.getCoverPages(this.pageFormat.width,this.pageFormat.height)))for(h=0;h<b.length;h++)e(b[h],!0);for(var g=this.getAppendices(this.pageFormat.width,this.pageFormat.height),h=0;h<u;h++)for(var v=h*c/this.scale-this.y0/this.scale+(o.y-l.y*s)/s,b=0;b<m;b++){if(null==this.wnd)return null;var f=b*d/this.scale-this.x0/this.scale+(o.x-l.x*s)/s,E=h*m+b+1;(n=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-f,-v,this.scale,E,e)}))).setAttribute("id","mxPage-"+E),e(n,null!=g||h<u-1||b<m-1)}if(null!=g)for(h=0;h<g.length;h++)e(g[h],h<g.length);a.writeln("</body>"),a.writeln("</html>"),a.close(),p(),mxEvent.release(a.body)}this.wnd.focus()}catch(e){null!=n&&null!=n.parentNode&&n.parentNode.removeChild(n)}finally{this.graph.cellRenderer.initializeOverlay=t}return this.wnd},mxPrintPreview.prototype.writeHead=function(e,t){null!=this.title&&e.writeln("<title>"+this.title+"</title>"),e.writeln('<style type="text/css">'),e.writeln("@media print {"),e.writeln("  table.mxPageSelector { display: none; }"),e.writeln("  hr.mxPageBreak { display: none; }"),e.writeln("}"),e.writeln("@media screen {"),e.writeln("  table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }"),e.writeln("  table.mxPageSelector td { border: solid 1px gray; padding:4px; }"),e.writeln("  body.mxPage { background: gray; }"),e.writeln("}"),null!=t&&e.writeln(t),e.writeln("</style>")},mxPrintPreview.prototype.createPageSelector=function(e,t){var n=this.wnd.document,a=n.createElement("table");a.className="mxPageSelector",a.setAttribute("border","0");for(var i=n.createElement("tbody"),o=0;o<e;o++){for(var s=n.createElement("tr"),r=0;r<t;r++){var l=o*t+r+1,d=n.createElement("td");if(!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC){var c=n.createElement("a");c.setAttribute("href","#mxPage-"+l),mxUtils.write(c,l,n),d.appendChild(c)}else mxUtils.write(d,l,n);s.appendChild(d)}i.appendChild(s)}return a.appendChild(i),a},mxPrintPreview.prototype.renderPage=function(e,t,n){var a=document.createElement("div");try{a.style.width=e+"px",a.style.height=t+"px",a.style.overflow="hidden",a.style.pageBreakInside="avoid",a.style.position="relative";var i=document.createElement("div");i.style.top=this.border+"px",i.style.left=this.border+"px",i.style.width=e-2*this.border+"px",i.style.height=t-2*this.border+"px",i.style.overflow="hidden",this.graph.dialect==mxConstants.DIALECT_VML&&(i.style.position="absolute"),a.appendChild(i),document.body.appendChild(a),n(i)}catch(e){throw a.parentNode.removeChild(a),e}return a},mxPrintPreview.prototype.addGraphFragment=function(e,t,n,a,i){a=this.graph.getView();var o=this.graph.container;this.graph.container=i;var s=a.getCanvas(),r=a.getBackgroundPane(),l=a.getDrawPane(),d=a.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?a.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?a.createVml():a.createHtml();var c=a.isEventsEnabled();a.setEventsEnabled(!1);var m=this.graph.isEnabled();this.graph.setEnabled(!1);var u=a.getTranslate();a.translate=new mxPoint(e,t),e=null;try{var p=[this.graph.getModel().getRoot()];e=new mxTemporaryCellStates(a,n,p)}finally{if(mxClient.IS_IE)a.overlayPane.innerHTML="";else for(n=i.firstChild;null!=n;)p=n.nextSibling,t=n.nodeName.toLowerCase(),"svg"==t?(n.setAttribute("width",parseInt(i.style.width)),n.setAttribute("height",parseInt(i.style.height))):"default"!=n.style.cursor&&"table"!=t&&n.parentNode.removeChild(n),n=p;a.overlayPane.parentNode.removeChild(a.overlayPane),this.graph.setEnabled(m),this.graph.container=o,a.canvas=s,a.backgroundPane=r,a.drawPane=l,a.overlayPane=d,a.translate=u,e.destroy(),a.setEventsEnabled(c)}},mxPrintPreview.prototype.getCoverPages=function(){return null},mxPrintPreview.prototype.getAppendices=function(){return null},mxPrintPreview.prototype.print=function(){var e=this.open();null!=e&&e.print()},mxPrintPreview.prototype.close=function(){null!=this.wnd&&(this.wnd.close(),this.wnd=null)},mxStylesheet.prototype.createDefaultVertexStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE,e[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_FILLCOLOR]="#C3D9FF",e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#774400",e},mxStylesheet.prototype.createDefaultEdgeStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR,e[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#446299",e},mxStylesheet.prototype.putDefaultVertexStyle=function(e){this.putCellStyle("defaultVertex",e)},mxStylesheet.prototype.putDefaultEdgeStyle=function(e){this.putCellStyle("defaultEdge",e)},mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles.defaultVertex},mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles.defaultEdge},mxStylesheet.prototype.putCellStyle=function(e,t){this.styles[e]=t},mxStylesheet.prototype.getCellStyle=function(e,t){a=t;if(null!=e&&0<e.length)for(var n=e.split(";"),a=null!=a&&";"!=e.charAt(0)?mxUtils.clone(a):{},i=0;i<n.length;i++){var o=n[i],s=o.indexOf("=");if(0<=s){var r=o.substring(0,s);(o=o.substring(s+1))==mxConstants.NONE?delete a[r]:mxUtils.isNumeric(o)?a[r]=parseFloat(o):a[r]=o}else if(null!=(o=this.styles[o]))for(r in o)a[r]=o[r]}return a},mxCellState.prototype=new mxRectangle,mxCellState.prototype.constructor=mxCellState,mxCellState.prototype.view=null,mxCellState.prototype.cell=null,mxCellState.prototype.style=null,mxCellState.prototype.invalid=!0,mxCellState.prototype.invalidOrder=!1,mxCellState.prototype.orderChanged=!1,mxCellState.prototype.origin=null,mxCellState.prototype.absolutePoints=null,mxCellState.prototype.absoluteOffset=null,mxCellState.prototype.visibleSourceState=null,mxCellState.prototype.visibleTargetState=null,mxCellState.prototype.terminalDistance=0,mxCellState.prototype.length=0,mxCellState.prototype.segments=null,mxCellState.prototype.shape=null,mxCellState.prototype.text=null,mxCellState.prototype.getPerimeterBounds=function(e,t){if(e=e||0,t=null!=t?t:new mxRectangle(this.x,this.y,this.width,this.height),null!=this.shape&&null!=this.shape.stencil){var n=this.shape.stencil.computeAspect(this.style,t.x,t.y,t.width,t.height);t.x=n.x,t.y=n.y,t.width=this.shape.stencil.w0*n.width,t.height=this.shape.stencil.h0*n.height}return 0!=e&&t.grow(e),t},mxCellState.prototype.setAbsoluteTerminalPoint=function(e,t){t?(null==this.absolutePoints&&(this.absolutePoints=[]),0==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[0]=e):null==this.absolutePoints?(this.absolutePoints=[],this.absolutePoints.push(null),this.absolutePoints.push(e)):1==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[this.absolutePoints.length-1]=e},mxCellState.prototype.setCursor=function(e){null!=this.shape&&this.shape.setCursor(e),null!=this.text&&this.text.setCursor(e)},mxCellState.prototype.getVisibleTerminal=function(e){return e=this.getVisibleTerminalState(e),null!=e?e.cell:null},mxCellState.prototype.getVisibleTerminalState=function(e){return e?this.visibleSourceState:this.visibleTargetState},mxCellState.prototype.setVisibleTerminalState=function(e,t){t?this.visibleSourceState=e:this.visibleTargetState=e},mxCellState.prototype.destroy=function(){this.view.graph.cellRenderer.destroy(this)},mxCellState.prototype.clone=function(){var e=new mxCellState(this.view,this.cell,this.style);if(null!=this.absolutePoints){e.absolutePoints=[];for(var t=0;t<this.absolutePoints.length;t++)e.absolutePoints[t]=this.absolutePoints[t].clone()}return null!=this.origin&&(e.origin=this.origin.clone()),null!=this.absoluteOffset&&(e.absoluteOffset=this.absoluteOffset.clone()),null!=this.boundingBox&&(e.boundingBox=this.boundingBox.clone()),e.terminalDistance=this.terminalDistance,e.segments=this.segments,e.length=this.length,e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e},mxGraphSelectionModel.prototype=new mxEventSource,mxGraphSelectionModel.prototype.constructor=mxGraphSelectionModel,mxGraphSelectionModel.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphSelectionModel.prototype.updatingSelectionResource="none"!=mxClient.language?"updatingSelection":"",mxGraphSelectionModel.prototype.graph=null,mxGraphSelectionModel.prototype.singleSelection=!1,mxGraphSelectionModel.prototype.isSingleSelection=function(){return this.singleSelection},mxGraphSelectionModel.prototype.setSingleSelection=function(e){this.singleSelection=e},mxGraphSelectionModel.prototype.isSelected=function(e){return null!=e&&0<=mxUtils.indexOf(this.cells,e)},mxGraphSelectionModel.prototype.isEmpty=function(){return 0==this.cells.length},mxGraphSelectionModel.prototype.clear=function(){this.changeSelection(null,this.cells)},mxGraphSelectionModel.prototype.setCell=function(e){null!=e&&this.setCells([e])},mxGraphSelectionModel.prototype.setCells=function(e){if(null!=e){this.singleSelection&&(e=[this.getFirstSelectableCell(e)]);for(var t=[],n=0;n<e.length;n++)this.graph.isCellSelectable(e[n])&&t.push(e[n]);this.changeSelection(t,this.cells)}},mxGraphSelectionModel.prototype.getFirstSelectableCell=function(e){if(null!=e)for(var t=0;t<e.length;t++)if(this.graph.isCellSelectable(e[t]))return e[t];return null},mxGraphSelectionModel.prototype.addCell=function(e){null!=e&&this.addCells([e])},mxGraphSelectionModel.prototype.addCells=function(e){if(null!=e){var t=null;this.singleSelection&&(t=this.cells,e=[this.getFirstSelectableCell(e)]);for(var n=[],a=0;a<e.length;a++)!this.isSelected(e[a])&&this.graph.isCellSelectable(e[a])&&n.push(e[a]);this.changeSelection(n,t)}},mxGraphSelectionModel.prototype.removeCell=function(e){null!=e&&this.removeCells([e])},mxGraphSelectionModel.prototype.removeCells=function(e){if(null!=e){for(var t=[],n=0;n<e.length;n++)this.isSelected(e[n])&&t.push(e[n]);this.changeSelection(null,t)}},mxGraphSelectionModel.prototype.changeSelection=function(e,t){if(null!=e&&0<e.length&&null!=e[0]||null!=t&&0<t.length&&null!=t[0]){var n=new mxSelectionChange(this,e,t);n.execute();var a=new mxUndoableEdit(this,!1);a.add(n),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",a))}},mxGraphSelectionModel.prototype.cellAdded=function(e){null!=e&&!this.isSelected(e)&&this.cells.push(e)},mxGraphSelectionModel.prototype.cellRemoved=function(e){null!=e&&0<=(e=mxUtils.indexOf(this.cells,e))&&this.cells.splice(e,1)},mxSelectionChange.prototype.execute=function(){var e=mxLog.enter("mxSelectionChange.execute");if(window.status=mxResources.get(this.selectionModel.updatingSelectionResource)||this.selectionModel.updatingSelectionResource,null!=this.removed)for(var t=0;t<this.removed.length;t++)this.selectionModel.cellRemoved(this.removed[t]);if(null!=this.added)for(t=0;t<this.added.length;t++)this.selectionModel.cellAdded(this.added[t]);t=this.added,this.added=this.removed,this.removed=t,window.status=mxResources.get(this.selectionModel.doneResource)||this.selectionModel.doneResource,mxLog.leave("mxSelectionChange.execute",e),this.selectionModel.fireEvent(new mxEventObject(mxEvent.CHANGE,"added",this.added,"removed",this.removed))},mxCellEditor.prototype.graph=null,mxCellEditor.prototype.textarea=null,mxCellEditor.prototype.editingCell=null,mxCellEditor.prototype.trigger=null,mxCellEditor.prototype.modified=!1,mxCellEditor.prototype.autoSize=!0,mxCellEditor.prototype.emptyLabelText="",mxCellEditor.prototype.textNode="",mxCellEditor.prototype.init=function(){this.textarea=document.createElement("textarea"),this.textarea.className="mxCellEditor",this.textarea.style.position="absolute",this.textarea.style.overflow="visible",this.textarea.setAttribute("cols","20"),this.textarea.setAttribute("rows","4"),mxClient.IS_NS&&(this.textarea.style.resize="none"),mxEvent.addListener(this.textarea,"blur",mxUtils.bind(this,function(e){this.focusLost()})),mxEvent.addListener(this.textarea,"keydown",mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(113==e.keyCode||this.graph.isEnterStopsCellEditing()&&13==e.keyCode&&!mxEvent.isControlDown(e)&&!mxEvent.isShiftDown(e)?(this.graph.stopEditing(!1),mxEvent.consume(e)):27==e.keyCode?(this.graph.stopEditing(!0),mxEvent.consume(e)):(this.clearOnChange&&(this.clearOnChange=!1,this.textarea.value=""),this.setModified(!0)))})),mxEvent.addListener(this.textarea,"keypress",mxUtils.bind(this,function(e){this.autoSize&&!mxEvent.isConsumed(e)&&setTimeout(mxUtils.bind(this,function(){this.resize()}),0)}))},mxCellEditor.prototype.resize=function(){if(null!=this.textDiv){var e=this.graph.getView().getState(this.editingCell),t=this.graph.isLabelClipped(e.cell),n=this.graph.isWrapping(e.cell);this.graph.getModel().isEdge(e.cell)?(this.bounds.x=e.absoluteOffset.x,this.bounds.y=e.absoluteOffset.y,this.bounds.width=0,this.bounds.height=0):null!=this.bounds&&(this.bounds.x=e.x,this.bounds.y=e.y,this.bounds.width=e.width,this.bounds.height=e.height,(a=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?this.bounds.x-=e.width:a==mxConstants.ALIGN_RIGHT&&(this.bounds.x+=e.width),(a=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?this.bounds.y-=e.height:a==mxConstants.ALIGN_BOTTOM&&(this.bounds.y+=e.height)),"\n"!=(a=this.textarea.value).charAt(a.length-1)&&""!=a||(a+="&nbsp;"),a=mxUtils.htmlEntities(a,!1),n?(this.textDiv.style.whiteSpace="normal",this.textDiv.style.width=this.bounds.width+"px"):a=a.replace(/ /g,"&nbsp;"),a=a.replace(/\n/g,"<br/>"),this.textDiv.innerHTML=a;var a=this.textDiv.offsetWidth+30,i=this.textDiv.offsetHeight+16,a=Math.max(a,40),i=Math.max(i,20);t&&(a=Math.min(this.bounds.width-4,a),i=Math.min(this.bounds.height,i));var o=null!=e.text?e.text.margin:null;null==o&&(o=mxUtils.getValue(e.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=mxUtils.getAlignmentAsPoint(o,e)),null!=o&&(!t&&n||(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-o.x*this.bounds.width+o.x*a)-3)+"px"),this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-o.y*this.bounds.height+o.y*i)+4)+"px"),!t&&n||(this.textarea.style.width=a+"px"),this.textarea.style.height=i+"px"}},mxCellEditor.prototype.isModified=function(){return this.modified},mxCellEditor.prototype.setModified=function(e){this.modified=e},mxCellEditor.prototype.focusLost=function(){this.stopEditing(!this.graph.isInvokesStopCellEditing())},mxCellEditor.prototype.startEditing=function(e,t){null==this.textarea&&this.init(),this.stopEditing(!0);var n=this.graph.getView().getState(e);if(null!=n){this.editingCell=e,this.trigger=t,this.textNode=null,null!=n.text&&this.isHideLabel(n)&&(this.textNode=n.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,a=mxUtils.getValue(n.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,i=mxUtils.getValue(n.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),o=mxUtils.getValue(n.style,mxConstants.STYLE_FONTCOLOR,"black"),s=mxUtils.getValue(n.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),r=(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,d=(mxUtils.getValue(n.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.fontSize=Math.round(a)+"px",this.textarea.style.lineHeight=Math.round(a*mxConstants.LINE_HEIGHT)+"px",this.textarea.style.fontFamily=i,this.textarea.style.textAlign=s,this.textarea.style.color=o,this.textarea.style.fontWeight=r?"bold":"normal",this.textarea.style.fontStyle=l?"italic":"",this.textarea.style.textDecoration=d?"underline":"",this.textarea.style.overflow="auto",this.textarea.style.outline="none",this.bounds=a=this.getEditorBounds(n),this.textarea.style.left=a.x+"px",this.textarea.style.top=a.y+"px",this.textarea.style.width=a.width+"px",this.textarea.style.height=a.height+"px",this.textarea.style.zIndex=5,null==(n=this.getInitialValue(n,t))||0==n.length?(n=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=!1,this.setModified(!1),this.textarea.value=n,this.graph.container.appendChild(this.textarea),"none"!=this.textarea.style.display&&(this.autoSize&&(this.textDiv=this.createTextDiv(),document.body.appendChild(this.textDiv),this.resize()),this.textarea.focus(),this.textarea.select())}},mxCellEditor.prototype.createTextDiv=function(){var e=document.createElement("div"),t=e.style;return t.position="absolute",t.whiteSpace="nowrap",t.visibility="hidden",t.display=mxClient.IS_QUIRKS?"inline":"inline-block",t.zoom="1",t.verticalAlign="top",t.lineHeight=this.textarea.style.lineHeight,t.fontSize=this.textarea.style.fontSize,t.fontFamily=this.textarea.style.fontFamily,t.fontWeight=this.textarea.style.fontWeight,t.textAlign=this.textarea.style.textAlign,t.fontStyle=this.textarea.style.fontStyle,t.textDecoration=this.textarea.style.textDecoration,e},mxCellEditor.prototype.stopEditing=function(e){null!=this.editingCell&&(null!=this.textNode&&(this.textNode.style.visibility="visible",this.textNode=null),!e&&this.isModified()&&this.graph.labelChanged(this.editingCell,this.getCurrentValue(),this.trigger),null!=this.textDiv&&(document.body.removeChild(this.textDiv),this.textDiv=null),this.bounds=this.trigger=this.editingCell=null,this.textarea.blur(),this.textarea.parentNode.removeChild(this.textarea))},mxCellEditor.prototype.getInitialValue=function(e,t){return this.graph.getEditingValue(e.cell,t)},mxCellEditor.prototype.getCurrentValue=function(){return this.textarea.value.replace(/\r/g,"")},mxCellEditor.prototype.isHideLabel=function(e){return!0},mxCellEditor.prototype.getMinimumSize=function(e){var t=this.graph.getView().scale;return new mxRectangle(0,0,null==e.text?30:e.text.size*t+20,"left"==this.textarea.style.textAlign?120:40)},mxCellEditor.prototype.getEditorBounds=function(e){var t=this.graph.getModel().isEdge(e.cell),n=this.graph.getView().scale,a=(i=this.getMinimumSize(e)).width,i=i.height,o=parseInt(e.style[mxConstants.STYLE_SPACING]||2)*n,s=parseInt(e.style[mxConstants.STYLE_SPACING_TOP]||0)*n+o,r=parseInt(e.style[mxConstants.STYLE_SPACING_RIGHT]||0)*n+o,l=parseInt(e.style[mxConstants.STYLE_SPACING_BOTTOM]||0)*n+o,n=parseInt(e.style[mxConstants.STYLE_SPACING_LEFT]||0)*n+o,r=new mxRectangle(e.x,e.y,Math.max(a,e.width-n-r),Math.max(i,e.height-s-l));return t?(r.x=e.absoluteOffset.x,r.y=e.absoluteOffset.y,null!=e.text&&null!=e.text.boundingBox&&(0<e.text.boundingBox.x&&(r.x=e.text.boundingBox.x),0<e.text.boundingBox.y&&(r.y=e.text.boundingBox.y))):null!=e.text&&null!=e.text.boundingBox&&(r.x=Math.min(r.x,e.text.boundingBox.x),r.y=Math.min(r.y,e.text.boundingBox.y)),r.x+=n,r.y+=s,null!=e.text&&null!=e.text.boundingBox&&(t?(r.width=Math.max(a,e.text.boundingBox.width),r.height=Math.max(i,e.text.boundingBox.height)):(r.width=Math.max(r.width,e.text.boundingBox.width),r.height=Math.max(r.height,e.text.boundingBox.height))),this.graph.getModel().isVertex(e.cell)&&(t=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER),t==mxConstants.ALIGN_LEFT?r.x-=e.width:t==mxConstants.ALIGN_RIGHT&&(r.x+=e.width),t=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE),t==mxConstants.ALIGN_TOP?r.y-=e.height:t==mxConstants.ALIGN_BOTTOM&&(r.y+=e.height)),r},mxCellEditor.prototype.getEmptyLabelText=function(e){return this.emptyLabelText},mxCellEditor.prototype.getEditingCell=function(){return this.editingCell},mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null)},mxCellRenderer.prototype.defaultEdgeShape=mxConnector,mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape,mxCellRenderer.prototype.defaultTextShape=mxText,mxCellRenderer.prototype.legacyControlPosition=!0,mxCellRenderer.prototype.defaultShapes={},mxCellRenderer.registerShape=function(e,t){mxCellRenderer.prototype.defaultShapes[e]=t},mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape),mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus),mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder),mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector),mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor),mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle),mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon),mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud),mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine),mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow),mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane),mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape),mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel),mxCellRenderer.prototype.initialize=function(e,t){var n=e.view.graph.getModel();null!=e.view.graph.container&&null==e.shape&&e.cell!=e.view.currentRoot&&(n.isVertex(e.cell)||n.isEdge(e.cell))&&(this.createShape(e),null==e.shape||null!=t&&!t||(this.initializeShape(e),e.view.graph.ordered||n.isEdge(e.cell)?e.invalidOrder=!0:e.view.graph.keepEdgesInForeground&&null!=this.firstEdge&&(this.firstEdge.parentNode==e.shape.node.parentNode?this.insertState(e,this.firstEdge):this.firstEdge=null),e.shape.scale=e.view.scale,this.createCellOverlays(e),this.installListeners(e)))},mxCellRenderer.prototype.initializeShape=function(e){e.shape.init(e.view.getDrawPane())},mxCellRenderer.prototype.getPreviousStateInContainer=function(e,t){for(var n=null,a=e.view.graph,i=a.getModel(),o=e.cell,s=i.getParent(o);null!=s&&null==n;)n=this.findPreviousStateInContainer(a,s,o,t),o=s,s=i.getParent(o);return n},mxCellRenderer.prototype.findPreviousStateInContainer=function(e,t,n,a){var i=null,o=e.getModel();for(n=null!=n?t.getIndex(n)-1:o.getChildCount(t)-1;0<=n&&null==i;n--)i=this.findPreviousStateInContainer(e,o.getChildAt(t,n),null,a);return null!=i||null==(i=e.view.getState(t))||null!=i.shape&&null!=i.shape.node&&i.shape.node.parentNode==a||(i=null),i},mxCellRenderer.prototype.order=function(e){var t=e.shape.node.parentNode,n=this.getPreviousStateInContainer(e,t),a=t.firstChild;null!=n&&(a=n.shape.node,null!=n.text&&null!=n.text.node&&n.text.node.parentNode==t&&(a=n.text.node),a=a.nextSibling),this.insertState(e,a)},mxCellRenderer.prototype.orderEdge=function(e){var t=e.view,n=t.graph.getModel();if(t.graph.keepEdgesInForeground)null!=this.firstEdge&&null!=this.firstEdge.parentNode&&this.firstEdge.parentNode==e.shape.node.parentNode||(this.firstEdge=e.shape.node);else if(t.graph.keepEdgesInBackground){var a=e.shape.node,i=a.parentNode,n=n.getParent(e.cell);null!=(i=null!=(t=t.getState(n))&&null!=t.shape&&null!=t.shape.node?t.shape.node.nextSibling:i.firstChild)&&i!=a&&this.insertState(e,i)}},mxCellRenderer.prototype.insertState=function(e,t){e.shape.node.parentNode.insertBefore(e.shape.node,t),null!=e.text&&null!=e.text.node&&e.text.node.parentNode==e.shape.node.parentNode&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling)},mxCellRenderer.prototype.createShape=function(e){if(null!=e.style){var t=mxStencilRegistry.getStencil(e.style[mxConstants.STYLE_SHAPE]);null!=t?e.shape=new mxShape(t):(t=this.getShapeConstructor(e),e.shape=new t),e.shape.points=e.absolutePoints,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.dialect=e.view.graph.dialect,this.configureShape(e)}},mxCellRenderer.prototype.getShape=function(e){return null!=e?mxCellRenderer.prototype.defaultShapes[e]:null},mxCellRenderer.prototype.getShapeConstructor=function(e){var t=this.getShape(e.style[mxConstants.STYLE_SHAPE]);return null==t&&(t=e.view.graph.getModel().isEdge(e.cell)?this.defaultEdgeShape:this.defaultVertexShape),t},mxCellRenderer.prototype.configureShape=function(e){e.shape.apply(e),e.shape.image=e.view.graph.getImage(e),e.shape.indicatorShape=this.getShape(e.view.graph.getIndicatorShape(e)),e.shape.indicatorColor=e.view.graph.getIndicatorColor(e),e.shape.indicatorGradientColor=e.view.graph.getIndicatorGradientColor(e),e.shape.indicatorDirection=e.style[mxConstants.STYLE_INDICATOR_DIRECTION],e.shape.indicatorImage=e.view.graph.getIndicatorImage(e),this.postConfigureShape(e)},mxCellRenderer.prototype.postConfigureShape=function(e){null!=e.shape&&(this.resolveColor(e,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(e,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(e,"gradient",mxConstants.STYLE_GRADIENTCOLOR))},mxCellRenderer.prototype.resolveColor=function(e,t,n){var a=e.shape[t],i=e.view.graph,o=null;"inherit"==a?o=i.model.getParent(e.cell):"swimlane"==a?(o=null!=i.model.getTerminal(e.cell,!1)?i.model.getTerminal(e.cell,!1):e.cell,o=i.getSwimlane(o),n=i.swimlaneIndicatorColorAttribute):"indicated"==a&&(e.shape[t]=e.shape.indicatorColor),null!=o&&(a=i.getView().getState(o),e.shape[t]=null,null!=a&&(e.shape[t]=null!=a.shape&&"indicatorColor"!=t?a.shape[t]:a.style[n]))},mxCellRenderer.prototype.getLabelValue=function(e){return e.view.graph.getLabel(e.cell)},mxCellRenderer.prototype.createLabel=function(e,t){var n=e.view.graph;if(n.getModel().isEdge(e.cell),0<e.style[mxConstants.STYLE_FONTSIZE]||null==e.style[mxConstants.STYLE_FONTSIZE]){var a=n.isHtmlLabel(e.cell)||null!=t&&mxUtils.isNode(t);e.text=new this.defaultTextShape(t,new mxRectangle,e.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,n.getVerticalAlign(e),e.style[mxConstants.STYLE_FONTCOLOR],e.style[mxConstants.STYLE_FONTFAMILY],e.style[mxConstants.STYLE_FONTSIZE],e.style[mxConstants.STYLE_FONTSTYLE],e.style[mxConstants.STYLE_SPACING],e.style[mxConstants.STYLE_SPACING_TOP],e.style[mxConstants.STYLE_SPACING_RIGHT],e.style[mxConstants.STYLE_SPACING_BOTTOM],e.style[mxConstants.STYLE_SPACING_LEFT],e.style[mxConstants.STYLE_HORIZONTAL],e.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],e.style[mxConstants.STYLE_LABEL_BORDERCOLOR],n.isWrapping(e.cell)&&n.isHtmlLabel(e.cell),n.isLabelClipped(e.cell),e.style[mxConstants.STYLE_OVERFLOW],e.style[mxConstants.STYLE_LABEL_PADDING]),e.text.opacity=mxUtils.getValue(e.style,mxConstants.STYLE_TEXT_OPACITY,100),e.text.dialect=a?mxConstants.DIALECT_STRICTHTML:e.view.graph.dialect,e.text.state=e,this.initializeLabel(e);var i=!1,o=function(t){var a=e;return(mxClient.IS_TOUCH||i)&&(a=mxEvent.getClientX(t),t=mxEvent.getClientY(t),t=mxUtils.convertPoint(n.container,a,t),a=n.view.getState(n.getCellAt(t.x,t.y))),a};mxEvent.addGestureListeners(e.text.node,mxUtils.bind(this,function(t){this.isLabelEvent(e,t)&&(n.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t,e)),i=n.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(t).nodeName)}),mxUtils.bind(this,function(t){this.isLabelEvent(e,t)&&n.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,o(t)))}),mxUtils.bind(this,function(t){this.isLabelEvent(e,t)&&(n.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t,o(t))),i=!1)})),mxEvent.addListener(e.text.node,"dblclick",mxUtils.bind(this,function(t){this.isLabelEvent(e,t)&&(n.dblClick(t,e.cell),mxEvent.consume(t))}))}},mxCellRenderer.prototype.initializeLabel=function(e){var t=e.view.graph;e.text.dialect!=mxConstants.DIALECT_SVG&&(mxClient.IS_SVG&&mxClient.NO_FO?e.text.init(t.container):mxUtils.isVml(e.view.getDrawPane())&&(null!=e.shape.label?e.text.init(e.shape.label):e.text.init(e.shape.node))),null==e.text.node&&(e.text.init(e.view.getDrawPane()),null!=e.shape&&null!=e.text&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling))},mxCellRenderer.prototype.createCellOverlays=function(e){var t=e.view.graph.getCellOverlays(e.cell),n=null;if(null!=t)for(var n=new mxDictionary,a=0;a<t.length;a++){var i=null!=e.overlays?e.overlays.remove(t[a]):null;null==i&&(i=new mxImageShape(new mxRectangle,t[a].image.src),i.dialect=e.view.graph.dialect,i.preserveImageAspect=!1,i.overlay=t[a],this.initializeOverlay(e,i),this.installCellOverlayListeners(e,t[a],i),null!=t[a].cursor&&(i.node.style.cursor=t[a].cursor)),n.put(t[a],i)}null!=e.overlays&&e.overlays.visit(function(e,t){t.destroy()}),e.overlays=n},mxCellRenderer.prototype.initializeOverlay=function(e,t){t.init(e.view.getOverlayPane())},mxCellRenderer.prototype.installCellOverlayListeners=function(e,t,n){var a=e.view.graph;mxEvent.addListener(n.node,"click",function(n){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",n,"cell",e.cell))}),mxEvent.addGestureListeners(n.node,function(e){mxEvent.consume(e)},function(t){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,e))}),mxClient.IS_TOUCH&&mxEvent.addListener(n.node,"touchend",function(n){t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",n,"cell",e.cell))})},mxCellRenderer.prototype.createControl=function(e){var t=e.view.graph,n=t.getFoldingImage(e);if(t.foldingEnabled&&null!=n){if(null==e.control){var a=new mxRectangle(0,0,n.width,n.height);e.control=new mxImageShape(a,n.src),e.control.preserveImageAspect=!1,e.control.dialect=t.dialect,this.initControl(e,e.control,!0,function(n){if(t.isEnabled()){var a=!t.isCellCollapsed(e.cell);t.foldCells(a,!1,[e.cell]),mxEvent.consume(n)}})}}else null!=e.control&&(e.control.destroy(),e.control=null)},mxCellRenderer.prototype.initControl=function(e,t,n,a){var i=e.view.graph;return i.isHtmlLabel(e.cell)&&mxClient.NO_FO&&i.dialect==mxConstants.DIALECT_SVG?(t.dialect=mxConstants.DIALECT_PREFERHTML,t.init(i.container),t.node.style.zIndex=1):t.init(e.view.getOverlayPane()),t=t.innerNode||t.node,a&&(i.isEnabled()&&(t.style.cursor="pointer"),mxEvent.addListener(t,"click",a)),n&&mxEvent.addGestureListeners(t,function(t){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t,e)),mxEvent.consume(t)},function(t){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,e))}),t},mxCellRenderer.prototype.isShapeEvent=function(e,t){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,t){return!0},mxCellRenderer.prototype.installListeners=function(e){var t=e.view.graph,n=function(n){var a=e;return(t.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(n).nodeName||mxClient.IS_TOUCH)&&(a=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(t.container,a,n),a=t.view.getState(t.getCellAt(n.x,n.y))),a},a=!1;mxEvent.addListener(e.shape.node,"gesturestart",mxUtils.bind(this,function(e){t.lastTouchTime=0,a=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(e.shape.node,mxUtils.bind(this,function(n){this.isShapeEvent(e,n)&&!a?t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(n,null!=e.shape&&mxEvent.getSource(n)==e.shape.content?null:e)):a&&mxEvent.consume(n)}),mxUtils.bind(this,function(i){this.isShapeEvent(e,i)&&!a?t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(i,null!=e.shape&&mxEvent.getSource(i)==e.shape.content?null:n(i))):a&&mxEvent.consume(i)}),mxUtils.bind(this,function(i){this.isShapeEvent(e,i)&&!a?t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(i,null!=e.shape&&mxEvent.getSource(i)==e.shape.content?null:n(i))):a&&mxEvent.consume(i)}));var i=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(e.shape.node,i,mxUtils.bind(this,function(n){a=!1,"gestureend"==i?(t.lastTouchTime=0,t.gestureEnabled&&(t.handleGesture(e,n),mxEvent.consume(n))):this.isShapeEvent(e,n)&&(t.dblClick(n,null!=e.shape&&mxEvent.getSource(n)==e.shape.content?null:e.cell),mxEvent.consume(n))}))},mxCellRenderer.prototype.redrawLabel=function(e,t){var n=this.getLabelValue(e);if(null==e.text&&null!=n&&(mxUtils.isNode(n)||0<n.length)?this.createLabel(e,n):null==e.text||null!=n&&0!=n.length||(e.text.destroy(),e.text=null),null!=e.text){var a=(i=e.view.graph).isWrapping(e.cell),i=i.isLabelClipped(e.cell),o=this.getLabelBounds(e);!t&&e.text.value==n&&e.text.isWrapping==a&&e.text.isClipping==i&&e.text.scale==e.view.scale&&e.text.bounds.equals(o)||(e.text.value=n,e.text.bounds=o,e.text.scale=this.getTextScale(e),e.text.isWrapping=a,e.text.isClipping=i,e.text.redraw())}},mxCellRenderer.prototype.getTextScale=function(e){return e.view.scale},mxCellRenderer.prototype.getLabelBounds=function(e){var t=e.view.graph,n=e.view.scale,a=t.getModel().isEdge(e.cell),i=new mxRectangle(e.absoluteOffset.x,e.absoluteOffset.y);return e.text.updateMargin(),a?(a=e.text.getSpacing(),i.x+=a.x*n,i.y+=a.y*n,null!=(t=t.getCellGeometry(e.cell))&&(i.width=Math.max(0,e.text.margin.x*t.width*n-e.text.spacingLeft*n-e.text.spacingRight*n),i.height=Math.max(0,e.text.margin.y*t.height*n-e.text.spacingTop*n-e.text.spacingBottom*n))):(e.text.isPaintBoundsInverted()&&(a=i.x,i.x=i.y,i.y=a),i.x+=e.x,i.y+=e.y,i.width=Math.max(1,e.width),i.height=Math.max(1,e.height),t.isSwimlane(e.cell)&&(t=t.getStartSize(e.cell),0<t.width?(a=Math.min(i.width,t.width*n),e.shape.flipH&&(i.x+=i.width-a),i.width=a):0<t.height&&(a=Math.min(i.height,t.height*n),e.shape.flipV&&(i.y+=i.height-a),i.height=a)),this.rotateLabelBounds(e,i)),i},mxCellRenderer.prototype.rotateLabelBounds=function(e,t){if(e.text.isPaintBoundsInverted()){n=(e.width-e.height)/2;t.x+=n,t.y-=n,n=t.width,t.width=t.height,t.height=n}if(t.x-=e.text.margin.x*t.width,t.y-=e.text.margin.y*t.height,"fill"!=e.style[mxConstants.STYLE_OVERFLOW]){var n=e.view.scale,a=e.text.getSpacing();t.x+=a.x*n,t.y+=a.y*n,t.width=Math.max(0,t.width-e.text.spacingLeft*n-e.text.spacingRight*n),t.height=Math.max(0,t.height-e.text.spacingTop*n-e.text.spacingBottom*n)}var i=e.text.getTextRotation();0!=i&&null!=e&&e.view.graph.model.isVertex(e.cell)&&(n=e.getCenterX(),a=e.getCenterY(),t.x!=n||t.y!=a)&&(i*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(t.x,t.y),Math.cos(i),Math.sin(i),new mxPoint(n,a)),t.x=pt.x,t.y=pt.y)},mxCellRenderer.prototype.redrawCellOverlays=function(e,t){if(this.createCellOverlays(e),null!=e.overlays){var n=mxUtils.mod(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),90),a=mxUtils.toRadians(n),i=Math.cos(a),o=Math.sin(a);e.overlays.visit(function(a,s){var r=s.overlay.getBounds(e);if(!e.view.graph.getModel().isEdge(e.cell)&&null!=e.shape&&0!=n){var l=r.getCenterX(),d=r.getCenterY(),l=(d=mxUtils.getRotatedPoint(new mxPoint(l,d),i,o,new mxPoint(e.getCenterX(),e.getCenterY()))).x,d=d.y;r.x=Math.round(l-r.width/2),r.y=Math.round(d-r.height/2)}!t&&null!=s.bounds&&s.scale==e.view.scale&&s.bounds.equals(r)||(s.bounds=r,s.scale=e.view.scale,s.redraw())})}},mxCellRenderer.prototype.redrawControl=function(e,t){if(null!=e.control){var n=this.getControlBounds(e),a=this.legacyControlPosition?mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0):e.shape.getTextRotation(),i=e.view.scale;!t&&e.control.scale==i&&e.control.bounds.equals(n)&&e.control.rotation==a||(e.control.rotation=a,e.control.bounds=n,e.control.scale=i,e.control.redraw())}},mxCellRenderer.prototype.getControlBounds=function(e){if(null!=e.control){var t=e.control.scale,n=e.control.bounds.width/t,t=e.control.bounds.height/t,a=e.view.scale,i=e.getCenterX(),o=e.getCenterY();if(!e.view.graph.getModel().isEdge(e.cell)&&(i=e.x+n*a,o=e.y+t*a,null!=e.shape)){var s=e.shape.getShapeRotation();if(this.legacyControlPosition)s=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0);else if(e.shape.isPaintBoundsInverted())var r=(e.width-e.height)/2,i=i+r,o=o-r;0!=s&&(r=mxUtils.toRadians(s),s=Math.cos(r),r=Math.sin(r),o=mxUtils.getRotatedPoint(new mxPoint(i,o),s,r,new mxPoint(e.getCenterX(),e.getCenterY())),i=o.x,o=o.y)}return e.view.graph.getModel().isEdge(e.cell),new mxRectangle(Math.round(i-n/2*a),Math.round(o-t/2*a),Math.round(n*a),Math.round(t*a))}return null},mxCellRenderer.prototype.redraw=function(e,t,n){if(null!=e.shape){var a=!1;e.view.graph.getModel().isEdge(e.cell),reconfigure=null!=t&&t,this.createControl(e),(e.orderChanged||e.invalidOrder)&&(e.view.graph.ordered?this.order(e):this.orderEdge(e)),!e.orderChanged&&mxUtils.equalEntries(e.shape.style,e.style)||(this.configureShape(e),t=!0),delete e.invalidOrder,delete e.orderChanged,!t&&null!=e.shape.bounds&&e.shape.scale==e.view.scale&&e.shape.bounds.equals(e)&&mxUtils.equalPoints(e.shape.points,e.absolutePoints)||(a=!0,e.shape.points=null!=e.absolutePoints?e.absolutePoints.slice():null,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.scale=e.view.scale,null==n||n?e.shape.redraw():e.shape.updateBoundingBox()),(null==n||n)&&(this.redrawLabel(e,a),this.redrawCellOverlays(e,a),this.redrawControl(e,a))}},mxCellRenderer.prototype.destroy=function(e){null!=e.shape&&(null!=e.text&&(e.text.destroy(),e.text=null),null!=e.overlays&&(e.overlays.visit(function(e,t){t.destroy()}),e.overlays=null),null!=e.control&&(e.control.destroy(),e.control=null),e.shape.destroy(),e.shape=null)};var mxEdgeStyle={EntityRelation:function(e,t,n,a,i){var o=e.view,s=o.graph;a=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*o.scale;var r=(d=e.absolutePoints)[0],l=d[d.length-1],d=!1;if(null!=r)t=new mxCellState,t.x=r.x,t.y=r.y;else{if(null==t)return;var c=mxUtils.getPortConstraints(t,e,!0,mxConstants.DIRECTION_MASK_NONE);c!=mxConstants.DIRECTION_MASK_NONE?d=c==mxConstants.DIRECTION_MASK_WEST:(r=s.getCellGeometry(t.cell),r.relative?d=.5>=r.x:null!=n&&(d=n.x+n.width<t.x))}r=!0,null!=l?(n=new mxCellState,n.x=l.x,n.y=l.y):null!=n&&(c=mxUtils.getPortConstraints(n,e,!1,mxConstants.DIRECTION_MASK_NONE),c!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=s.getCellGeometry(n.cell),e.relative?r=.5>=e.x:null!=t&&(r=t.x+t.width<n.x))),null!=t&&null!=n&&(e=d?t.x:t.x+t.width,t=o.getRoutingCenterY(t),s=r?n.x:n.x+n.width,n=o.getRoutingCenterY(n),o=new mxPoint(e+(d?-a:a),t),l=new mxPoint(s+(r?-a:a),n),d==r?(a=d?Math.min(e,s)-a:Math.max(e,s)+a,i.push(new mxPoint(a,t)),i.push(new mxPoint(a,n))):(o.x<l.x==d?(a=t+(n-t)/2,i.push(o),i.push(new mxPoint(o.x,a)),i.push(new mxPoint(l.x,a))):i.push(o),i.push(l)))},Loop:function(e,t,n,a,i){if(null!=t){d=(n=e.view).graph;null!=(a=null!=a&&0<a.length?a[0]:null)&&(a=n.transformControlPoint(e,a),mxUtils.contains(t,a.x,a.y)&&(a=null));var o=0,s=0,r=0,l=0,d=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,d.gridSize)*n.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(o=n.getRoutingCenterX(t),s=d):(r=n.getRoutingCenterY(t),l=d),null==a||a.x<t.x||a.x>t.x+t.width?null!=a?(o=a.x,l=Math.max(Math.abs(r-a.y),l)):e==mxConstants.DIRECTION_NORTH?r=t.y-2*s:e==mxConstants.DIRECTION_SOUTH?r=t.y+t.height+2*s:o=e==mxConstants.DIRECTION_EAST?t.x-2*l:t.x+t.width+2*l:null!=a&&(o=n.getRoutingCenterX(t),s=Math.max(Math.abs(o-a.x),l),r=a.y,l=0),i.push(new mxPoint(o-s,r-l)),i.push(new mxPoint(o+s,r+l))}},ElbowConnector:function(e,t,n,a,i){var o=null!=a&&0<a.length?a[0]:null,s=!1,r=!1;if(null!=t&&null!=n)if(null!=o)var l=Math.min(t.x,n.x),d=Math.max(t.x+t.width,n.x+n.width),r=Math.min(t.y,n.y),c=Math.max(t.y+t.height,n.y+n.height),o=e.view.transformControlPoint(e,o),s=o.y<r||o.y>c,r=o.x<l||o.x>d;else l=Math.max(t.x,n.x),d=Math.min(t.x+t.width,n.x+n.width),(s=l==d)||(r=Math.max(t.y,n.y),c=Math.min(t.y+t.height,n.y+n.height),r=r==c);r||!s&&e.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(e,t,n,a,i):mxEdgeStyle.TopToBottom(e,t,n,a,i)},SideToSide:function(e,t,n,a,i){var o=e.view;a=null!=a&&0<a.length?a[0]:null;var s=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=o.transformControlPoint(e,a)),null!=s&&(t=new mxCellState,t.x=s.x,t.y=s.y),null!=r&&(n=new mxCellState,n.x=r.x,n.y=r.y),null!=t&&null!=n&&(e=Math.max(t.x,n.x),s=Math.min(t.x+t.width,n.x+n.width),e=null!=a?a.x:s+(e-s)/2,s=o.getRoutingCenterY(t),o=o.getRoutingCenterY(n),null!=a&&(a.y>=t.y&&a.y<=t.y+t.height&&(s=a.y),a.y>=n.y&&a.y<=n.y+n.height&&(o=a.y)),!mxUtils.contains(n,e,s)&&!mxUtils.contains(t,e,s)&&i.push(new mxPoint(e,s)),!mxUtils.contains(n,e,o)&&!mxUtils.contains(t,e,o)&&i.push(new mxPoint(e,o)),1==i.length&&(null!=a?!mxUtils.contains(n,e,a.y)&&!mxUtils.contains(t,e,a.y)&&i.push(new mxPoint(e,a.y)):(o=Math.max(t.y,n.y),t=Math.min(t.y+t.height,n.y+n.height),i.push(new mxPoint(e,o+(t-o)/2)))))},TopToBottom:function(e,t,n,a,i){var o=e.view;a=null!=a&&0<a.length?a[0]:null;var s=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=o.transformControlPoint(e,a)),null!=s&&(t=new mxCellState,t.x=s.x,t.y=s.y),null!=r&&(n=new mxCellState,n.x=r.x,n.y=r.y),null!=t&&null!=n&&(s=Math.max(t.y,n.y),r=Math.min(t.y+t.height,n.y+n.height),e=o.getRoutingCenterX(t),null!=a&&a.x>=t.x&&a.x<=t.x+t.width&&(e=a.x),s=null!=a?a.y:r+(s-r)/2,!mxUtils.contains(n,e,s)&&!mxUtils.contains(t,e,s)&&i.push(new mxPoint(e,s)),e=null!=a&&a.x>=n.x&&a.x<=n.x+n.width?a.x:o.getRoutingCenterX(n),!mxUtils.contains(n,e,s)&&!mxUtils.contains(t,e,s)&&i.push(new mxPoint(e,s)),1==i.length&&(null!=a&&1==i.length?!mxUtils.contains(n,a.x,s)&&!mxUtils.contains(t,a.x,s)&&i.push(new mxPoint(a.x,s)):(o=Math.max(t.x,n.x),t=Math.min(t.x+t.width,n.x+n.width),i.push(new mxPoint(o+(t-o)/2,s)))))},SegmentConnector:function(e,t,n,a,i){var o=e.absolutePoints,s=!0,r=null,l=o[0];null==l&&null!=t?l=new mxPoint(e.view.getRoutingCenterX(t),e.view.getRoutingCenterY(t)):null!=l&&(l=l.clone());var d=o.length-1;if(null!=a&&0<a.length){for(var r=e.view.transformControlPoint(e,a[0]),c=t,m=o[0],u=!1,p=!1,u=r,g=a.length,h=0;2>h;h++){var v=null!=m&&m.x==u.x,b=null!=m&&m.y==u.y,f=null!=c&&u.y>=c.y&&u.y<=c.y+c.height,c=null!=c&&u.x>=c.x&&u.x<=c.x+c.width,u=b||null==m&&f,p=v||null==m&&c;if(null!=m&&!b&&!v&&(f||c)){s=!f;break}if(p||u){s=u,1==h&&(s=0==a.length%2?u:p);break}c=n,m=o[d],u=e.view.transformControlPoint(e,a[g-1])}for(s&&(null!=o[0]&&o[0].y!=r.y||null==o[0]&&null!=t&&(r.y<t.y||r.y>t.y+t.height))?i.push(new mxPoint(l.x,r.y)):!s&&(null!=o[0]&&o[0].x!=r.x||null==o[0]&&null!=t&&(r.x<t.x||r.x>t.x+t.width))&&i.push(new mxPoint(r.x,l.y)),s?l.y=r.y:l.x=r.x,h=0;h<a.length;h++)s=!s,r=e.view.transformControlPoint(e,a[h]),s?l.y=r.y:l.x=r.x,i.push(l.clone())}else r=l,s=!0;if(null==(l=o[d])&&null!=n&&(l=new mxPoint(e.view.getRoutingCenterX(n),e.view.getRoutingCenterY(n))),s&&(null!=o[d]&&o[d].y!=r.y||null==o[d]&&null!=n&&(r.y<n.y||r.y>n.y+n.height))?i.push(new mxPoint(l.x,r.y)):!s&&(null!=o[d]&&o[d].x!=r.x||null==o[d]&&null!=n&&(r.x<n.x||r.x>n.x+n.width))&&i.push(new mxPoint(r.x,l.y)),null==o[0]&&null!=t)for(;1<i.length&&mxUtils.contains(t,i[1].x,i[1].y);)i=i.splice(1,1);if(null==o[d]&&null!=n)for(;1<i.length&&mxUtils.contains(n,i[i.length-1].x,i[i.length-1].y);)i=i.splice(i.length-1,1)},orthBuffer:10,dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,OrthConnector:function(e,t,n,a,i){var o=e.view.graph,s=null!=t&&o.getModel().isEdge(t.cell),o=null!=n&&o.getModel().isEdge(n.cell);if(null!=a&&0<a.length||s||o)mxEdgeStyle.SegmentConnector(e,t,n,a,i);else{var r=(a=e.absolutePoints)[0],l=a[a.length-1];a=null!=t?t.x:r.x;var s=null!=t?t.y:r.y,d=null!=t?t.width:1,c=null!=t?t.height:1,m=null!=n?n.x:l.x,u=null!=n?n.y:l.y,p=null!=n?n.width:1,g=null!=n?n.height:1,o=e.view.scale*mxEdgeStyle.orthBuffer,h=[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL];for(null!=t&&(h[0]=mxUtils.getPortConstraints(t,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=n&&(h[1]=mxUtils.getPortConstraints(n,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,s,d,c],[m,u,p,g]],d=0;2>d;d++)mxEdgeStyle.limits[d][1]=a[d][0]-o,mxEdgeStyle.limits[d][2]=a[d][1]-o,mxEdgeStyle.limits[d][4]=a[d][0]+a[d][2]+o,mxEdgeStyle.limits[d][8]=a[d][1]+a[d][3]+o;for(d=a[0][0]+a[0][2]/2-(a[1][0]+a[1][2]/2),c=a[0][1]+a[0][3]/2-(a[1][1]+a[1][3]/2),s=0,0>d?s=0>c?2:1:0>=c&&(s=3,0==d&&(s=2)),c=null,null!=t&&(c=r),t=[[.5,.5],[.5,.5]],d=0;2>d;d++)null!=c&&(t[d][0]=(c.x-a[d][0])/a[d][2],.01>t[d][0]?e[d]=mxConstants.DIRECTION_MASK_WEST:.99<t[d][0]&&(e[d]=mxConstants.DIRECTION_MASK_EAST),t[d][1]=(c.y-a[d][1])/a[d][3],.01>t[d][1]?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<t[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),c=null,null!=n&&(c=l);for(d=a[0][1]-(a[1][1]+a[1][3]),c=a[0][0]-(a[1][0]+a[1][2]),m=a[1][1]-(a[0][1]+a[0][3]),u=a[1][0]-(a[0][0]+a[0][2]),mxEdgeStyle.vertexSeperations[1]=Math.max(c-2*o,0),mxEdgeStyle.vertexSeperations[2]=Math.max(d-2*o,0),mxEdgeStyle.vertexSeperations[4]=Math.max(m-2*o,0),mxEdgeStyle.vertexSeperations[3]=Math.max(u-2*o,0),n=[],l=[],(r=[])[0]=c>=u?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST,l[0]=d>=m?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH,r[1]=mxUtils.reversePortConstraints(r[0]),l[1]=mxUtils.reversePortConstraints(l[0]),c=c>=u?c:u,m=d>=m?d:m,u=[[0,0],[0,0]],p=!1,d=0;2>d;d++)0==e[d]&&(0==(r[d]&h[d])&&(r[d]=mxUtils.reversePortConstraints(r[d])),0==(l[d]&h[d])&&(l[d]=mxUtils.reversePortConstraints(l[d])),u[d][0]=l[d],u[d][1]=r[d]);for(m>2*o&&c>2*o&&(0<(r[0]&h[0])&&0<(l[1]&h[1])?(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=l[1],u[1][1]=r[1],p=!0):0<(l[0]&h[0])&&0<(r[1]&h[1])&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=r[1],u[1][1]=l[1],p=!0)),m>2*o&&!p&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=l[1],u[1][1]=r[1],p=!0),c>2*o&&!p&&(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=r[1],u[1][1]=l[1]),d=0;2>d;d++)0==e[d]&&(0==(u[d][0]&h[d])&&(u[d][0]=u[d][1]),n[d]=u[d][0]&h[d],n[d]|=(u[d][1]&h[d])<<8,n[d]|=(u[1-d][d]&h[d])<<16,n[d]|=(u[1-d][1-d]&h[d])<<24,0==(15&n[d])&&(n[d]<<=8),0==(3840&n[d])&&(n[d]=15&n[d]|n[d]>>8),0==(983040&n[d])&&(n[d]=65535&n[d]|(251658240&n[d])>>8),e[d]=15&n[d],h[d]==mxConstants.DIRECTION_MASK_WEST||h[d]==mxConstants.DIRECTION_MASK_NORTH||h[d]==mxConstants.DIRECTION_MASK_EAST||h[d]==mxConstants.DIRECTION_MASK_SOUTH)&&(e[d]=h[d]);switch(d=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0],h=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],d-=s,h-=s,1>d&&(d+=4),1>h&&(h+=4),h=mxEdgeStyle.routePatterns[d-1][h-1],mxEdgeStyle.wayPoints1[0][0]=a[0][0],mxEdgeStyle.wayPoints1[0][1]=a[0][1],e[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=o,mxEdgeStyle.wayPoints1[0][1]+=t[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=t[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]+=a[0][3]+o;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=a[0][2]+o,mxEdgeStyle.wayPoints1[0][1]+=t[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=t[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]-=o}for(o=0,r=n=0<(e[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1,d=l=0;d<h.length;d++){g=(l=15&h[d])==mxConstants.DIRECTION_MASK_EAST?3:l,4<(g+=s)&&(g-=4),c=mxEdgeStyle.dirVectors[g-1],(l=0<g%2?0:1)!=n&&(o++,mxEdgeStyle.wayPoints1[o][0]=mxEdgeStyle.wayPoints1[o-1][0],mxEdgeStyle.wayPoints1[o][1]=mxEdgeStyle.wayPoints1[o-1][1]);var v=0<(h[d]&mxEdgeStyle.TARGET_MASK),p=0<(h[d]&mxEdgeStyle.SOURCE_MASK);15<(m=(m=(h[d]&mxEdgeStyle.SIDE_MASK)>>5)<<s)&&(m>>=4),u=0<(h[d]&mxEdgeStyle.CENTER_MASK),(p||v)&&9>m?(g=0,p=p?0:1,g=u&&0==l?a[p][0]+t[p][0]*a[p][2]:u?a[p][1]+t[p][1]*a[p][3]:mxEdgeStyle.limits[p][m],0==l?0<(m=(g-mxEdgeStyle.wayPoints1[o][0])*c[0])&&(mxEdgeStyle.wayPoints1[o][0]+=c[0]*m):0<(m=(g-mxEdgeStyle.wayPoints1[o][1])*c[1])&&(mxEdgeStyle.wayPoints1[o][1]+=c[1]*m)):u&&(mxEdgeStyle.wayPoints1[o][0]+=c[0]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2),mxEdgeStyle.wayPoints1[o][1]+=c[1]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2)),0<o&&mxEdgeStyle.wayPoints1[o][l]==mxEdgeStyle.wayPoints1[o-1][l]?o--:n=l}for(d=0;d<=o&&(d!=o||((0<(e[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1)==r?0:1)==(o+1)%2);d++)i.push(new mxPoint(mxEdgeStyle.wayPoints1[d][0],mxEdgeStyle.wayPoints1[d][1]))}},getRoutePattern:function(e,t,n,a){var i=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0];return e=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],i-=t,e-=t,1>i&&(i+=4),1>e&&(e+=4),t=routePatterns[i-1][e-1],0!=n&&0!=a||null!=inlineRoutePatterns[i-1][e-1]&&(t=inlineRoutePatterns[i-1][e-1]),t}},mxStyleRegistry={values:[],putValue:function(e,t){mxStyleRegistry.values[e]=t},getValue:function(e){return mxStyleRegistry.values[e]},getName:function(e){for(var t in mxStyleRegistry.values)if(mxStyleRegistry.values[t]==e)return t;return null}};mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector),mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter),mxGraphView.prototype=new mxEventSource,mxGraphView.prototype.constructor=mxGraphView,mxGraphView.prototype.EMPTY_POINT=new mxPoint,mxGraphView.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphView.prototype.updatingDocumentResource="none"!=mxClient.language?"updatingDocument":"",mxGraphView.prototype.allowEval=!1,mxGraphView.prototype.captureDocumentGesture=!0,mxGraphView.prototype.optimizeVmlReflows=!0,mxGraphView.prototype.rendering=!0,mxGraphView.prototype.graph=null,mxGraphView.prototype.currentRoot=null,mxGraphView.prototype.graphBounds=null,mxGraphView.prototype.scale=1,mxGraphView.prototype.translate=null,mxGraphView.prototype.updateStyle=!1,mxGraphView.prototype.getGraphBounds=function(){return this.graphBounds},mxGraphView.prototype.setGraphBounds=function(e){this.graphBounds=e},mxGraphView.prototype.getBounds=function(e){var t=null;if(null!=e&&0<e.length)for(var n=this.graph.getModel(),a=0;a<e.length;a++)if(n.isVertex(e[a])||n.isEdge(e[a])){var i=this.getState(e[a]);null!=i&&(null==t?t=new mxRectangle(i.x,i.y,i.width,i.height):t.add(i))}return t},mxGraphView.prototype.setCurrentRoot=function(e){if(this.currentRoot!=e){var t=new mxCurrentRootChange(this,e);t.execute();var n=new mxUndoableEdit(this,!1);n.add(t),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",n)),this.graph.sizeDidChange()}return e},mxGraphView.prototype.scaleAndTranslate=function(e,t,n){var a=this.scale,i=new mxPoint(this.translate.x,this.translate.y);this.scale==e&&this.translate.x==t&&this.translate.y==n||(this.scale=e,this.translate.x=t,this.translate.y=n,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,"scale",e,"previousScale",a,"translate",this.translate,"previousTranslate",i))},mxGraphView.prototype.getScale=function(){return this.scale},mxGraphView.prototype.setScale=function(e){var t=this.scale;this.scale!=e&&(this.scale=e,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",e,"previousScale",t))},mxGraphView.prototype.getTranslate=function(){return this.translate},mxGraphView.prototype.setTranslate=function(e,t){var n=new mxPoint(this.translate.x,this.translate.y);this.translate.x==e&&this.translate.y==t||(this.translate.x=e,this.translate.y=t,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",n))},mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear(),this.revalidate()},mxGraphView.prototype.revalidate=function(){this.invalidate(),this.validate()},mxGraphView.prototype.clear=function(e,t,n){var a=this.graph.getModel();if(e=e||a.getRoot(),t=null!=t&&t,n=null==n||n,this.removeState(e),n&&(t||e!=this.currentRoot)){n=a.getChildCount(e);for(var i=0;i<n;i++)this.clear(a.getChildAt(e,i),t)}else this.invalidate(e)},mxGraphView.prototype.invalidate=function(e,t,n,a){var i=this.graph.getModel();if(e=e||i.getRoot(),t=null==t||t,n=null==n||n,a=null!=a&&a,null!=(s=this.getState(e))&&(s.invalid=!0,a&&(s.orderChanged=!0)),t)for(var o=i.getChildCount(e),s=0;s<o;s++){var r=i.getChildAt(e,s);this.invalidate(r,t,n,a)}if(n)for(a=i.getEdgeCount(e),s=0;s<a;s++)this.invalidate(i.getEdgeAt(e,s),t,n)},mxGraphView.prototype.validate=function(e){var t=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;var n=null;if(this.optimizeVmlReflows&&null!=this.canvas&&null==this.textDiv&&(8==document.documentMode||mxClient.IS_QUIRKS)){n=this.canvas.style.display,this.canvas.style.display="none";var a=document.createElement("div");a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",document.body.appendChild(a),this.textDiv=a}e=e||(null!=this.currentRoot?this.currentRoot:this.graph.getModel().getRoot()),this.validateBounds(null,e),null==(e=this.validatePoints(null,e))&&(e=new mxRectangle),this.setGraphBounds(e),this.validateBackground(),null!=n&&(this.canvas.style.display=n,document.body.removeChild(this.textDiv),this.textDiv=null),window.status=mxResources.get(this.doneResource)||this.doneResource,mxLog.leave("mxGraphView.validate",t)},mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,"white","black")},mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var t=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(t,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);this.graph.pageVisible?(t=this.getBackgroundPageBounds(),null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(t),this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=this.graph.dialect,this.backgroundPageShape.init(this.backgroundPane),this.backgroundPageShape.redraw(),mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.bounds=t,this.backgroundPageShape.redraw())):null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.graph.pageFormat,t=this.scale*this.graph.pageScale;return new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,e.width*t,e.height*t)},mxGraphView.prototype.redrawBackgroundImage=function(e,t){e.scale=this.scale,e.bounds.x=this.scale*this.translate.x,e.bounds.y=this.scale*this.translate.y,e.bounds.width=this.scale*t.width,e.bounds.height=this.scale*t.height,e.redraw()},mxGraphView.prototype.validateBounds=function(e,t){var n=this.graph.getModel(),a=this.getState(t,!0);if(null!=a&&a.invalid){if(this.graph.isCellVisible(t)){if(t!=this.currentRoot&&null!=e&&(a.absoluteOffset.x=0,a.absoluteOffset.y=0,a.origin.x=e.origin.x,a.origin.y=e.origin.y,null!=(i=this.graph.getCellGeometry(t)))){if(!n.isEdge(t)){o=i.offset||this.EMPTY_POINT;i.relative?(a.origin.x+=i.x*e.width/this.scale+o.x,a.origin.y+=i.y*e.height/this.scale+o.y):(a.absoluteOffset.x=this.scale*o.x,a.absoluteOffset.y=this.scale*o.y,a.origin.x+=i.x,a.origin.y+=i.y)}if(a.x=this.scale*(this.translate.x+a.origin.x),a.y=this.scale*(this.translate.y+a.origin.y),a.width=this.scale*i.width,a.height=this.scale*i.height,n.isVertex(t)){if(i.relative&&0!=(o=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var i=Math.cos(o),o=Math.sin(o),s=new mxPoint(a.getCenterX(),a.getCenterY()),r=new mxPoint(e.getCenterX(),e.getCenterY()),i=mxUtils.getRotatedPoint(s,i,o,r);a.x=i.x-a.width/2,a.y=i.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(t);null!=(o=this.graph.getChildOffsetForCell(t))&&(a.origin.x+=o.x,a.origin.y+=o.y)}if(null!=a&&(!this.graph.isCellCollapsed(t)||t==this.currentRoot))for(i=n.getChildCount(t),o=0;o<i;o++)s=n.getChildAt(t,o),this.validateBounds(a,s)},mxGraphView.prototype.updateVertexLabelOffset=function(e){var t=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);t==mxConstants.ALIGN_LEFT?e.absoluteOffset.x-=e.width:t==mxConstants.ALIGN_RIGHT&&(e.absoluteOffset.x+=e.width),(t=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?e.absoluteOffset.y-=e.height:t==mxConstants.ALIGN_BOTTOM&&(e.absoluteOffset.y+=e.height)},mxGraphView.prototype.validatePoints=function(e,t){var n=this.graph.getModel(),a=this.getState(t),i=null;if(null!=a){if(a.invalid){var o=this.graph.getCellGeometry(t);if(null!=o&&n.isEdge(t)){var s=this.getState(this.getVisibleTerminal(t,!0));if(a.setVisibleTerminalState(s,!0),null!=s&&n.isEdge(s.cell)&&!n.isAncestor(s.cell,t)){var r=this.getState(n.getParent(s.cell));this.validatePoints(r,s.cell)}var l=this.getState(this.getVisibleTerminal(t,!1));a.setVisibleTerminalState(l,!1),null!=l&&n.isEdge(l.cell)&&!n.isAncestor(l.cell,t)&&(r=this.getState(n.getParent(l.cell)),this.validatePoints(r,l.cell)),this.updateFixedTerminalPoints(a,s,l),this.updatePoints(a,o.points,s,l),this.updateFloatingTerminalPoints(a,s,l),this.updateEdgeBounds(a),this.updateEdgeLabelOffset(a)}else null!=o&&o.relative&&null!=e&&n.isEdge(e.cell)&&null!=(o=this.getPoint(e,o))&&(a.x=o.x,a.y=o.y,o.x=o.x/this.scale-this.translate.x,o.y=o.y/this.scale-this.translate.y,a.origin=o,this.childMoved(e,a));a.invalid=!1,t!=this.currentRoot&&this.graph.cellRenderer.redraw(a,!1,this.isRendering())}(n.isEdge(t)||n.isVertex(t))&&(null!=a.shape&&null!=a.shape.boundingBox&&(i=a.shape.boundingBox.clone()),null!=a.text&&!this.graph.isLabelClipped(a.cell)&&null!=a.text.boundingBox&&(null!=i?i.add(a.text.boundingBox):i=a.text.boundingBox.clone()))}if(null!=a&&(!this.graph.isCellCollapsed(t)||t==this.currentRoot))for(o=n.getChildCount(t),s=0;s<o;s++)r=n.getChildAt(t,s),null!=(r=this.validatePoints(a,r))&&(null==i?i=r:i.add(r));return i},mxGraphView.prototype.childMoved=function(e,t){var n=t.cell;if(!this.graph.isCellCollapsed(n)||n==this.currentRoot)for(var a=this.graph.getModel(),i=a.getChildCount(n),o=0;o<i;o++)this.validateBounds(t,a.getChildAt(n,o))},mxGraphView.prototype.updateFixedTerminalPoints=function(e,t,n){this.updateFixedTerminalPoint(e,t,!0,this.graph.getConnectionConstraint(e,t,!0)),this.updateFixedTerminalPoint(e,n,!1,this.graph.getConnectionConstraint(e,n,!1))},mxGraphView.prototype.updateFixedTerminalPoint=function(e,t,n,a){var i=null;if(null!=a&&(i=this.graph.getConnectionPoint(t,a)),null==i&&null==t){t=this.scale,a=this.translate;var o=e.origin;null!=(i=this.graph.getCellGeometry(e.cell).getTerminalPoint(n))&&(i=new mxPoint(t*(a.x+i.x+o.x),t*(a.y+i.y+o.y)))}e.setAbsoluteTerminalPoint(i,n)},mxGraphView.prototype.updatePoints=function(e,t,n,a){if(null!=e){var i=[];i.push(e.absolutePoints[0]);var o=this.getEdgeStyle(e,t,n,a);if(null!=o)n=this.getTerminalPort(e,n,!0),a=this.getTerminalPort(e,a,!1),o(e,n,a,t,i);else if(null!=t)for(o=0;o<t.length;o++)null!=t[o]&&(a=mxUtils.clone(t[o]),i.push(this.transformControlPoint(e,a)));t=e.absolutePoints,i.push(t[t.length-1]),e.absolutePoints=i}},mxGraphView.prototype.transformControlPoint=function(e,t){var n=e.origin;return new mxPoint(this.scale*(t.x+this.translate.x+n.x),this.scale*(t.y+this.translate.y+n.y))},mxGraphView.prototype.getEdgeStyle=function(e,t,n,a){return"string"==typeof(e=null!=n&&n==a?mxUtils.getValue(e.style,mxConstants.STYLE_LOOP,this.graph.defaultLoopStyle):mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,!1)?null:e.style[mxConstants.STYLE_EDGE])&&(null==(t=mxStyleRegistry.getValue(e))&&this.isAllowEval()&&(t=mxUtils.eval(e)),e=t),"function"==typeof e?e:null},mxGraphView.prototype.updateFloatingTerminalPoints=function(e,t,n){var a=e.absolutePoints,i=a[0];null==a[a.length-1]&&null!=n&&this.updateFloatingTerminalPoint(e,n,t,!1),null==i&&null!=t&&this.updateFloatingTerminalPoint(e,t,n,!0)},mxGraphView.prototype.updateFloatingTerminalPoint=function(e,t,n,a){t=this.getTerminalPort(e,t,a);var i=this.getNextPoint(e,n,a),o=this.graph.isOrthogonal(e);n=mxUtils.toRadians(Number(t.style[mxConstants.STYLE_ROTATION]||"0"));var s=new mxPoint(t.getCenterX(),t.getCenterY());if(0!=n)var r=Math.cos(-n),l=Math.sin(-n),i=mxUtils.getRotatedPoint(i,r,l,s);r=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0),r+=parseFloat(e.style[a?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0),t=this.getPerimeterPoint(t,i,0==n&&o,r),0!=n&&(r=Math.cos(n),l=Math.sin(n),t=mxUtils.getRotatedPoint(t,r,l,s)),e.setAbsoluteTerminalPoint(t,a)},mxGraphView.prototype.getTerminalPort=function(e,t,n){return null!=(e=mxUtils.getValue(e.style,n?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT))&&null!=(e=this.getState(this.graph.getModel().getCell(e)))&&(t=e),t},mxGraphView.prototype.getPerimeterPoint=function(e,t,n,a){var i=null;if(null!=e){var o=this.getPerimeterFunction(e);null!=o&&null!=t&&(0<(a=this.getPerimeterBounds(e,a)).width||0<a.height)&&(i=o(a,e,t,n)),null==i&&(i=this.getPoint(e))}return i},mxGraphView.prototype.getRoutingCenterX=function(e){var t=null!=e.style?parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_X])||0:0;return e.getCenterX()+t*e.width},mxGraphView.prototype.getRoutingCenterY=function(e){var t=null!=e.style?parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0:0;return e.getCenterY()+t*e.height},mxGraphView.prototype.getPerimeterBounds=function(e,t){return t=null!=t?t:0,null!=e&&(t+=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0)),e.getPerimeterBounds(t*this.scale)},mxGraphView.prototype.getPerimeterFunction=function(e){if("string"==typeof(e=e.style[mxConstants.STYLE_PERIMETER])){var t=mxStyleRegistry.getValue(e);null==t&&this.isAllowEval()&&(t=mxUtils.eval(e)),e=t}return"function"==typeof e?e:null},mxGraphView.prototype.getNextPoint=function(e,t,n){var a=null;return null!=(e=e.absolutePoints)&&(n||2<e.length||null==t)&&(a=e.length,a=e[n?Math.min(1,a-1):Math.max(0,a-2)]),null==a&&null!=t&&(a=new mxPoint(t.getCenterX(),t.getCenterY())),a},mxGraphView.prototype.getVisibleTerminal=function(e,t){for(var n=this.graph.getModel(),a=n.getTerminal(e,t),i=a;null!=a&&a!=this.currentRoot;)this.graph.isCellVisible(i)&&!this.graph.isCellCollapsed(a)||(i=a),a=n.getParent(a);return n.getParent(i)==n.getRoot()&&(i=null),i},mxGraphView.prototype.updateEdgeBounds=function(e){var t=e.absolutePoints;if(e.length=0,null!=t&&0<t.length){var n=t[0],a=t[t.length-1];if(null==n||null==a)e.cell!=this.currentRoot&&this.clear(e.cell,!0);else{if(n.x!=a.x||n.y!=a.y){var i=a.x-n.x,o=a.y-n.y;e.terminalDistance=Math.sqrt(i*i+o*o)}else e.terminalDistance=0;var a=0,s=[];if(null!=(o=n)){for(var n=o.x,r=o.y,l=n,d=r,c=1;c<t.length;c++){var m=t[c];null!=m&&(i=o.x-m.x,o=o.y-m.y,i=Math.sqrt(i*i+o*o),s.push(i),a+=i,o=m,n=Math.min(o.x,n),r=Math.min(o.y,r),l=Math.max(o.x,l),d=Math.max(o.y,d))}e.length=a,e.segments=s,e.x=n,e.y=r,e.width=Math.max(1,l-n),e.height=Math.max(1,d-r)}}}},mxGraphView.prototype.getPoint=function(e,t){var n=e.getCenterX(),a=e.getCenterY();if(null==e.segments||null!=t&&!t.relative)null!=t&&null!=(d=t.offset)&&(n+=d.x,a+=d.y);else{for(var i=e.absolutePoints.length,o=(.5+(null!=t?t.x/2:0))*e.length,s=e.segments[0],r=0,l=1;o>r+s&&l<i-1;)r+=s,s=e.segments[l++];if(i=0==s?0:(o-r)/s,o=e.absolutePoints[l-1],l=e.absolutePoints[l],null!=o&&null!=l){if(r=n=a=0,null!=t){var a=t.y,d=t.offset;null!=d&&(n=d.x,r=d.y)}d=l.x-o.x,l=l.y-o.y,n=o.x+d*i+((0==s?0:l/s)*a+n)*this.scale,a=o.y+l*i-((0==s?0:d/s)*a-r)*this.scale}}return new mxPoint(n,a)},mxGraphView.prototype.getRelativePoint=function(e,t,n){if(null!=(i=this.graph.getModel().getGeometry(e.cell))){var a=e.absolutePoints.length;if(i.relative&&1<a){for(var i=e.length,o=e.segments,s=e.absolutePoints[0],r=e.absolutePoints[1],l=mxUtils.ptSegDistSq(s.x,s.y,r.x,r.y,t,n),d=0,c=0,m=0,u=2;u<a;u++)c+=o[u-2],r=e.absolutePoints[u],(s=mxUtils.ptSegDistSq(s.x,s.y,r.x,r.y,t,n))<=l&&(l=s,d=u-1,m=c),s=r;return a=o[d],s=e.absolutePoints[d],r=e.absolutePoints[d+1],l=r.x,o=r.y,e=s.x-l,d=s.y-o,l=t-l,o=n-o,l=e-l,o=d-o,o=l*e+o*d,(e=Math.sqrt(0>=o?0:o*o/(e*e+d*d)))>a&&(e=a),a=Math.sqrt(mxUtils.ptSegDistSq(s.x,s.y,r.x,r.y,t,n)),-1==mxUtils.relativeCcw(s.x,s.y,r.x,r.y,t,n)&&(a=-a),new mxPoint((i/2-m-e)/i*-2,a/this.scale)}}return new mxPoint},mxGraphView.prototype.updateEdgeLabelOffset=function(e){i=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=i&&0<i.length&&null!=e.segments){var t=this.graph.getCellGeometry(e.cell);if(t.relative)null!=(n=this.getPoint(e,t))&&(e.absoluteOffset=n);else{var n=i[0],a=i[i.length-1];if(null!=n&&null!=a){var i=a.x-n.x,o=a.y-n.y,s=a=0;null!=(t=t.offset)&&(a=t.x,s=t.y),t=n.y+o/2+s*this.scale,e.absoluteOffset.x=n.x+i/2+a*this.scale,e.absoluteOffset.y=t}}}},mxGraphView.prototype.getState=function(e,t){t=t||!1;var n=null;return null!=e&&(n=this.states.get(e),this.graph.isCellVisible(e)&&(null==n&&t&&this.graph.isCellVisible(e)?(n=this.createState(e),this.states.put(e,n)):t&&null!=n&&this.updateStyle&&(n.style=this.graph.getCellStyle(e)))),n},mxGraphView.prototype.isRendering=function(){return this.rendering},mxGraphView.prototype.setRendering=function(e){this.rendering=e},mxGraphView.prototype.isAllowEval=function(){return this.allowEval},mxGraphView.prototype.setAllowEval=function(e){this.allowEval=e},mxGraphView.prototype.getStates=function(){return this.states},mxGraphView.prototype.setStates=function(e){this.states=e},mxGraphView.prototype.getCellStates=function(e){if(null==e)return this.states;for(var t=[],n=0;n<e.length;n++){var a=this.getState(e[n]);null!=a&&t.push(a)}return t},mxGraphView.prototype.removeState=function(e){var t=null;return null!=e&&null!=(t=this.states.remove(e))&&(this.graph.cellRenderer.destroy(t),t.destroy()),t},mxGraphView.prototype.createState=function(e){return e=new mxCellState(this,e,this.graph.getCellStyle(e)),this.graph.cellRenderer.initialize(e,this.isRendering()),e},mxGraphView.prototype.getCanvas=function(){return this.canvas},mxGraphView.prototype.getBackgroundPane=function(){return this.backgroundPane},mxGraphView.prototype.getDrawPane=function(){return this.drawPane},mxGraphView.prototype.getOverlayPane=function(){return this.overlayPane},mxGraphView.prototype.isContainerEvent=function(e){return(e=mxEvent.getSource(e))==this.graph.container||e.parentNode==this.backgroundPane||null!=e.parentNode&&e.parentNode.parentNode==this.backgroundPane||e==this.canvas.parentNode||e==this.canvas||e==this.backgroundPane||e==this.drawPane||e==this.overlayPane},mxGraphView.prototype.isScrollEvent=function(e){t=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-t.x,e.clientY-t.y);var t=this.graph.container.offsetWidth,n=this.graph.container.clientWidth;return t>n&&e.x>n+2&&e.x<=t||(t=this.graph.container.offsetHeight,n=this.graph.container.clientHeight,t>n&&e.y>n+2&&e.y<=t)},mxGraphView.prototype.init=function(){this.installListeners();var e=this.graph;e.dialect==mxConstants.DIALECT_SVG?this.createSvg():e.dialect==mxConstants.DIALECT_VML?this.createVml():this.createHtml()},mxGraphView.prototype.installListeners=function(){var e=this.graph,t=e.container;if(null!=t){mxEvent.addGestureListeners(t,mxUtils.bind(this,function(t){mxClient.IS_TOUCH&&e.isEditing()&&e.stopEditing(!e.isInvokesStopCellEditing()),this.isContainerEvent(t)&&(!mxClient.IS_IE&&!mxClient.IS_GC&&!mxClient.IS_OP&&!mxClient.IS_SF||!this.isScrollEvent(t))&&e.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(t))}),mxUtils.bind(this,function(t){this.isContainerEvent(t)&&e.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t))}),mxUtils.bind(this,function(t){this.isContainerEvent(t)&&e.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t))})),mxEvent.addListener(t,"dblclick",mxUtils.bind(this,function(t){e.dblClick(t)}));var n=function(n){var a=null;return mxClient.IS_TOUCH&&(a=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(t,a,n),a=e.view.getState(e.getCellAt(n.x,n.y))),a};e.addMouseListener({mouseDown:function(t,n){e.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(t){null!=e.tooltipHandler&&e.tooltipHandler.isHideOnHover()&&e.tooltipHandler.hide(),this.captureDocumentGesture&&e.isMouseDown&&!mxEvent.isConsumed(t)&&e.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(t,n(t)))}),this.endHandler=mxUtils.bind(this,function(t){this.captureDocumentGesture&&e.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(t))}),mxEvent.addGestureListeners(document,null,this.moveHandler,this.endHandler)}},mxGraphView.prototype.createHtml=function(){var e=this.graph.container;null!=e&&(this.canvas=this.createHtmlPane("100%","100%"),this.backgroundPane=this.createHtmlPane("1px","1px"),this.drawPane=this.createHtmlPane("1px","1px"),this.overlayPane=this.createHtmlPane("1px","1px"),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas),mxClient.IS_QUIRKS&&(e=mxUtils.bind(this,function(e){e=this.getGraphBounds(),this.updateHtmlCanvasSize(e.x+e.width+this.graph.border,e.y+e.height+this.graph.border)}),mxEvent.addListener(window,"resize",e)))},mxGraphView.prototype.updateHtmlCanvasSize=function(e,t){if(null!=this.graph.container){var n=this.graph.container.offsetHeight;this.canvas.style.width=this.graph.container.offsetWidth<e?e+"px":"100%",this.canvas.style.height=n<t?t+"px":"100%"}},mxGraphView.prototype.createHtmlPane=function(e,t){var n=document.createElement("DIV");return null!=e&&null!=t?(n.style.position="absolute",n.style.left="0px",n.style.top="0px",n.style.width=e,n.style.height=t):n.style.position="relative",n},mxGraphView.prototype.createVml=function(){var e=this.graph.container;if(null!=e){var t=e.offsetWidth,n=e.offsetHeight;this.canvas=this.createVmlPane(t,n),this.backgroundPane=this.createVmlPane(t,n),this.drawPane=this.createVmlPane(t,n),this.overlayPane=this.createVmlPane(t,n),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas)}},mxGraphView.prototype.createVmlPane=function(e,t){var n=document.createElement(mxClient.VML_PREFIX+":group");return n.style.position="absolute",n.style.left="0px",n.style.top="0px",n.style.width=e+"px",n.style.height=t+"px",n.setAttribute("coordsize",e+","+t),n.setAttribute("coordorigin","0,0"),n},mxGraphView.prototype.createSvg=function(){var e=this.graph.container;this.canvas=document.createElementNS(mxConstants.NS_SVG,"g"),this.backgroundPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.backgroundPane),this.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.drawPane),this.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.overlayPane);var t=document.createElementNS(mxConstants.NS_SVG,"svg");t.style.width="100%",t.style.height="100%",t.style.display="block",t.appendChild(this.canvas),null!=e&&(e.appendChild(t),"static"==mxUtils.getCurrentStyle(e).position&&(e.style.position="relative"))},mxGraphView.prototype.destroy=function(){var e=null!=this.canvas?this.canvas.ownerSVGElement:null;null==e&&(e=this.canvas),null!=e&&null!=e.parentNode&&(this.clear(this.currentRoot,!0),mxEvent.removeGestureListeners(document,null,this.moveHandler,this.endHandler),mxEvent.release(this.graph.container),e.parentNode.removeChild(e),this.overlayPane=this.drawPane=this.backgroundPane=this.canvas=this.endHandler=this.moveHandler=null)},mxCurrentRootChange.prototype.execute=function(){var e=this.view.currentRoot;this.view.currentRoot=this.previous,this.previous=e,null!=(e=this.view.graph.getTranslateForRoot(this.view.currentRoot))&&(this.view.translate=new mxPoint(-e.x,-e.y)),this.view.fireEvent(new mxEventObject(this.isUp?mxEvent.UP:mxEvent.DOWN,"root",this.view.currentRoot,"previous",this.previous)),this.isUp?(this.view.clear(this.view.currentRoot,!0),this.view.validate()):this.view.refresh(),this.isUp=!this.isUp},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/graph"),mxGraph.prototype=new mxEventSource,mxGraph.prototype.constructor=mxGraph,mxGraph.prototype.EMPTY_ARRAY=[],mxGraph.prototype.mouseListeners=null,mxGraph.prototype.isMouseDown=!1,mxGraph.prototype.model=null,mxGraph.prototype.view=null,mxGraph.prototype.stylesheet=null,mxGraph.prototype.selectionModel=null,mxGraph.prototype.cellEditor=null,mxGraph.prototype.cellRenderer=null,mxGraph.prototype.multiplicities=null,mxGraph.prototype.renderHint=null,mxGraph.prototype.dialect=null,mxGraph.prototype.gridSize=10,mxGraph.prototype.gridEnabled=!0,mxGraph.prototype.portsEnabled=!0,mxGraph.prototype.doubleTapEnabled=!0,mxGraph.prototype.doubleTapTimeout=700,mxGraph.prototype.doubleTapTolerance=25,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchTime=0,mxGraph.prototype.gestureEnabled=!0,mxGraph.prototype.tolerance=4,mxGraph.prototype.defaultOverlap=.5,mxGraph.prototype.defaultParent=null,mxGraph.prototype.alternateEdgeStyle=null,mxGraph.prototype.backgroundImage=null,mxGraph.prototype.pageVisible=!1,mxGraph.prototype.pageBreaksVisible=!1,mxGraph.prototype.pageBreakColor="gray",mxGraph.prototype.pageBreakDashed=!0,mxGraph.prototype.minPageBreakDist=20,mxGraph.prototype.preferPageSize=!1,mxGraph.prototype.pageFormat=mxConstants.PAGE_FORMAT_A4_PORTRAIT,mxGraph.prototype.pageScale=1.5,mxGraph.prototype.enabled=!0,mxGraph.prototype.escapeEnabled=!0,mxGraph.prototype.invokesStopCellEditing=!0,mxGraph.prototype.enterStopsCellEditing=!1,mxGraph.prototype.useScrollbarsForPanning=!0,mxGraph.prototype.exportEnabled=!0,mxGraph.prototype.importEnabled=!0,mxGraph.prototype.cellsLocked=!1,mxGraph.prototype.cellsCloneable=!0,mxGraph.prototype.foldingEnabled=!0,mxGraph.prototype.cellsEditable=!0,mxGraph.prototype.cellsDeletable=!0,mxGraph.prototype.cellsMovable=!0,mxGraph.prototype.edgeLabelsMovable=!0,mxGraph.prototype.vertexLabelsMovable=!1,mxGraph.prototype.dropEnabled=!1,mxGraph.prototype.splitEnabled=!0,mxGraph.prototype.cellsResizable=!0,mxGraph.prototype.cellsBendable=!0,mxGraph.prototype.cellsSelectable=!0,mxGraph.prototype.cellsDisconnectable=!0,mxGraph.prototype.autoSizeCells=!1,mxGraph.prototype.autoScroll=!0,mxGraph.prototype.timerAutoScroll=!1,mxGraph.prototype.allowAutoPanning=!1,mxGraph.prototype.ignoreScrollbars=!1,mxGraph.prototype.autoExtend=!0,mxGraph.prototype.maximumGraphBounds=null,mxGraph.prototype.minimumGraphSize=null,mxGraph.prototype.minimumContainerSize=null,mxGraph.prototype.maximumContainerSize=null,mxGraph.prototype.resizeContainer=!1,mxGraph.prototype.border=0,mxGraph.prototype.ordered=!0,mxGraph.prototype.keepEdgesInForeground=!1,mxGraph.prototype.keepEdgesInBackground=!0,mxGraph.prototype.allowNegativeCoordinates=!0,mxGraph.prototype.constrainChildren=!0,mxGraph.prototype.extendParents=!0,mxGraph.prototype.extendParentsOnAdd=!0,mxGraph.prototype.collapseToPreferredSize=!0,mxGraph.prototype.zoomFactor=1.2,mxGraph.prototype.keepSelectionVisibleOnZoom=!1,mxGraph.prototype.centerZoom=!0,mxGraph.prototype.resetViewOnRootChange=!0,mxGraph.prototype.resetEdgesOnResize=!1,mxGraph.prototype.resetEdgesOnMove=!1,mxGraph.prototype.resetEdgesOnConnect=!0,mxGraph.prototype.allowLoops=!1,mxGraph.prototype.defaultLoopStyle=mxEdgeStyle.Loop,mxGraph.prototype.multigraph=!0,mxGraph.prototype.connectableEdges=!1,mxGraph.prototype.allowDanglingEdges=!0,mxGraph.prototype.cloneInvalidEdges=!1,mxGraph.prototype.disconnectOnMove=!0,mxGraph.prototype.labelsVisible=!0,mxGraph.prototype.htmlLabels=!1,mxGraph.prototype.swimlaneSelectionEnabled=!0,mxGraph.prototype.swimlaneNesting=!0,mxGraph.prototype.swimlaneIndicatorColorAttribute=mxConstants.STYLE_FILLCOLOR,mxGraph.prototype.imageBundles=null,mxGraph.prototype.minFitScale=.1,mxGraph.prototype.maxFitScale=8,mxGraph.prototype.panDx=0,mxGraph.prototype.panDy=0,mxGraph.prototype.collapsedImage=new mxImage(mxClient.imageBasePath+"/collapsed.gif",9,9),mxGraph.prototype.expandedImage=new mxImage(mxClient.imageBasePath+"/expanded.gif",9,9),mxGraph.prototype.warningImage=new mxImage("/assets/plugins/mxgraph/images/warning.gif",16,16),mxGraph.prototype.alreadyConnectedResource="none"!=mxClient.language?"alreadyConnected":"",mxGraph.prototype.containsValidationErrorsResource="none"!=mxClient.language?"containsValidationErrors":"",mxGraph.prototype.collapseExpandResource="none"!=mxClient.language?"collapse-expand":"",mxGraph.prototype.init=function(e){this.container=e,this.cellEditor=this.createCellEditor(),this.view.init(),this.sizeDidChange(),mxClient.IS_IE&&(mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})),mxEvent.addListener(e,"selectstart",mxUtils.bind(this,function(){return this.isEditing()}))),8==document.documentMode&&e.insertAdjacentHTML("beforeend",'<v:group style="DISPLAY: none;"></v:group>')},mxGraph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxGraph.prototype.createSelectionModel=function(){return new mxGraphSelectionModel(this)},mxGraph.prototype.createStylesheet=function(){return new mxStylesheet},mxGraph.prototype.createGraphView=function(){return new mxGraphView(this)},mxGraph.prototype.createCellRenderer=function(){return new mxCellRenderer},mxGraph.prototype.createCellEditor=function(){return new mxCellEditor(this)},mxGraph.prototype.getModel=function(){return this.model},mxGraph.prototype.getView=function(){return this.view},mxGraph.prototype.getStylesheet=function(){return this.stylesheet},mxGraph.prototype.setStylesheet=function(e){this.stylesheet=e},mxGraph.prototype.getSelectionModel=function(){return this.selectionModel},mxGraph.prototype.setSelectionModel=function(e){this.selectionModel=e},mxGraph.prototype.getSelectionCellsForChanges=function(e){for(var t=[],n=0;n<e.length;n++){var a=e[n];if(a.constructor!=mxRootChange){var i=null;a instanceof mxChildChange&&null==a.previous?i=a.child:null!=a.cell&&a.cell instanceof mxCell&&(i=a.cell),null!=i&&0>mxUtils.indexOf(t,i)&&t.push(i)}}return this.getModel().getTopmostCells(t)},mxGraph.prototype.graphModelChanged=function(e){for(var t=0;t<e.length;t++)this.processChange(e[t]);this.removeSelectionCells(this.getRemovedCellsForChanges(e)),this.view.validate(),this.sizeDidChange()},mxGraph.prototype.getRemovedCellsForChanges=function(e){for(var t=[],n=0;n<e.length;n++){var a=e[n];if(a instanceof mxRootChange)break;a instanceof mxChildChange?null!=a.previous&&null==a.parent&&(t=t.concat(this.model.getDescendants(a.child))):a instanceof mxVisibleChange&&(t=t.concat(this.model.getDescendants(a.cell)))}return t},mxGraph.prototype.processChange=function(e){if(e instanceof mxRootChange)this.clearSelection(),this.removeStateForCell(e.previous),this.resetViewOnRootChange&&(this.view.scale=1,this.view.translate.x=0,this.view.translate.y=0),this.fireEvent(new mxEventObject(mxEvent.ROOT));else if(e instanceof mxChildChange){var t=this.model.getParent(e.child);null!=t?this.view.invalidate(e.child,!0,!1,null!=e.previous):(this.removeStateForCell(e.child),this.view.currentRoot==e.child&&this.home()),t!=e.previous&&(null!=t&&this.view.invalidate(t,!1,!1),null!=e.previous&&this.view.invalidate(e.previous,!1,!1))}else e instanceof mxTerminalChange||e instanceof mxGeometryChange?this.view.invalidate(e.cell):e instanceof mxValueChange?this.view.invalidate(e.cell,!1,!1):e instanceof mxStyleChange?(this.view.invalidate(e.cell,!0,!0,!1),this.view.removeState(e.cell)):null!=e.cell&&e.cell instanceof mxCell&&this.removeStateForCell(e.cell)},mxGraph.prototype.removeStateForCell=function(e){for(var t=this.model.getChildCount(e),n=0;n<t;n++)this.removeStateForCell(this.model.getChildAt(e,n));this.view.removeState(e)},mxGraph.prototype.addCellOverlay=function(e,t){null==e.overlays&&(e.overlays=[]),e.overlays.push(t);var n=this.view.getState(e);return null!=n&&this.cellRenderer.redraw(n),this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",e,"overlay",t)),t},mxGraph.prototype.getCellOverlays=function(e){return e.overlays},mxGraph.prototype.removeCellOverlay=function(e,t){if(null==t)this.removeCellOverlays(e);else{var n=mxUtils.indexOf(e.overlays,t);0<=n?(e.overlays.splice(n,1),0==e.overlays.length&&(e.overlays=null),null!=(n=this.view.getState(e))&&this.cellRenderer.redraw(n),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",t))):t=null}return t},mxGraph.prototype.removeCellOverlays=function(e){var t=e.overlays;if(null!=t){e.overlays=null;var n=this.view.getState(e);for(null!=n&&this.cellRenderer.redraw(n),n=0;n<t.length;n++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",t[n]))}return t},mxGraph.prototype.clearCellOverlays=function(e){e=null!=e?e:this.model.getRoot(),this.removeCellOverlays(e);for(var t=this.model.getChildCount(e),n=0;n<t;n++){var a=this.model.getChildAt(e,n);this.clearCellOverlays(a)}},mxGraph.prototype.setCellWarning=function(e,t,n,a){return null!=t&&0<t.length?(n=null!=n?n:this.warningImage,t=new mxCellOverlay(n,"<font color=red>"+t+"</font>"),a&&t.addListener(mxEvent.CLICK,mxUtils.bind(this,function(t,n){this.isEnabled()&&this.setSelectionCell(e)})),this.addCellOverlay(e,t)):(this.removeCellOverlays(e),null)},mxGraph.prototype.startEditing=function(e){this.startEditingAtCell(null,e)},mxGraph.prototype.startEditingAtCell=function(e,t){null==e&&null!=(e=this.getSelectionCell())&&!this.isCellEditable(e)&&(e=null),null!=e&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",e,"event",t)),this.cellEditor.startEditing(e,t))},mxGraph.prototype.getEditingValue=function(e,t){return this.convertValueToString(e)},mxGraph.prototype.stopEditing=function(e){this.cellEditor.stopEditing(e)},mxGraph.prototype.labelChanged=function(e,t,n){this.model.beginUpdate();try{this.cellLabelChanged(e,t,this.isAutoSizeCell(e)),this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",e,"value",t,"event",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellLabelChanged=function(e,t,n){this.model.beginUpdate();try{this.model.setValue(e,t),n&&this.cellSizeUpdated(e,!1)}finally{this.model.endUpdate()}},mxGraph.prototype.escape=function(e){this.stopEditing(!0),this.connectionHandler.reset(),this.graphHandler.reset(),e=this.getSelectionCells();for(var t=0;t<e.length;t++){var n=this.view.getState(e[t]);null!=n&&null!=n.handler&&n.handler.reset()}},mxGraph.prototype.click=function(e){var t=e.getEvent(),n=e.getCell(),a=new mxEventObject(mxEvent.CLICK,"event",t,"cell",n);e.isConsumed()&&a.consume(),this.fireEvent(a),this.isEnabled()&&!mxEvent.isConsumed(t)&&!a.isConsumed()&&(null!=n?this.selectCellForEvent(n,t):(n=null,this.isSwimlaneSelectionEnabled()&&(n=this.getSwimlaneAt(e.getGraphX(),e.getGraphY())),null!=n?this.selectCellForEvent(n,t):this.isToggleEvent(t)||this.clearSelection()))},mxGraph.prototype.dblClick=function(e,t){var n=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(n),this.isEnabled()&&!mxEvent.isConsumed(e)&&!n.isConsumed()&&null!=t&&this.isCellEditable(t)&&this.startEditingAtCell(t,e)},mxGraph.prototype.scrollPointToVisible=function(e,t,n,a){if(this.timerAutoScroll||!this.ignoreScrollbars&&!mxUtils.hasScrollbars(this.container))this.allowAutoPanning&&!this.panningHandler.active&&(null==this.panningManager&&(this.panningManager=this.createPanningManager()),this.panningManager.panTo(e+this.panDx,t+this.panDy));else{var i=this.container;if(a=null!=a?a:20,e>=i.scrollLeft&&t>=i.scrollTop&&e<=i.scrollLeft+i.clientWidth&&t<=i.scrollTop+i.clientHeight){var o=i.scrollLeft+i.clientWidth-e;if(o<a){if(e=i.scrollLeft,i.scrollLeft+=a-o,n&&e==i.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){e=this.view.getDrawPane().ownerSVGElement;var s=this.container.scrollWidth+a-o}else s=Math.max(i.clientWidth,i.scrollWidth)+a-o,e=this.view.getCanvas();e.style.width=s+"px",i.scrollLeft+=a-o}}else(o=e-i.scrollLeft)<a&&(i.scrollLeft-=a-o);(o=i.scrollTop+i.clientHeight-t)<a?(e=i.scrollTop,i.scrollTop+=a-o,e==i.scrollTop&&n&&(this.dialect==mxConstants.DIALECT_SVG?(e=this.view.getDrawPane().ownerSVGElement,t=this.container.scrollHeight+a-o):(t=Math.max(i.clientHeight,i.scrollHeight)+a-o,e=this.view.getCanvas()),e.style.height=t+"px",i.scrollTop+=a-o)):(o=t-i.scrollTop)<a&&(i.scrollTop-=a-o)}}},mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)},mxGraph.prototype.getBorderSizes=function(){function e(e){var t=0,t="thin"==e?2:"medium"==e?4:"thick"==e?6:parseInt(e);return isNaN(t)&&(t=0),t}var t=mxUtils.getCurrentStyle(this.container),n=new mxRectangle;return n.x=e(t.borderLeftWidth)+parseInt(t.paddingLeft||0),n.y=e(t.borderTopWidth)+parseInt(t.paddingTop||0),n.width=e(t.borderRightWidth)+parseInt(t.paddingRight||0),n.height=e(t.borderBottomWidth)+parseInt(t.paddingBottom||0),n},mxGraph.prototype.getPreferredPageSize=function(e,t,n){e=this.view.scale;var a=this.view.translate,i=this.pageFormat,o=e*this.pageScale,i=new mxRectangle(0,0,i.width*o,i.height*o);return t=this.pageBreaksVisible?Math.ceil(t/i.width):1,n=this.pageBreaksVisible?Math.ceil(n/i.height):1,new mxRectangle(0,0,t*i.width+2+a.x/e,n*i.height+2+a.y/e)},mxGraph.prototype.sizeDidChange=function(){var e=this.getGraphBounds();if(null!=this.container){var t=this.getBorder(),n=Math.max(0,e.x+e.width+1+t),t=Math.max(0,e.y+e.height+1+t);if(null!=this.minimumContainerSize&&(n=Math.max(n,this.minimumContainerSize.width),t=Math.max(t,this.minimumContainerSize.height)),this.resizeContainer&&this.doResizeContainer(n,t),this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var a=this.getPreferredPageSize(e,n,t);null!=a&&(n=a.width,t=a.height)}null!=this.minimumGraphSize&&(n=Math.max(n,this.minimumGraphSize.width*this.view.scale),t=Math.max(t,this.minimumGraphSize.height*this.view.scale)),n=Math.ceil(n-1),t=Math.ceil(t-1),this.dialect==mxConstants.DIALECT_SVG?(a=this.view.getDrawPane().ownerSVGElement,a.style.minWidth=Math.max(1,n)+"px",a.style.minHeight=Math.max(1,t)+"px",a.style.width="100%",a.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,n),Math.max(1,t)):(this.view.canvas.style.minWidth=Math.max(1,n)+"px",this.view.canvas.style.minHeight=Math.max(1,t)+"px"),this.updatePageBreaks(this.pageBreaksVisible,n-1,t-1)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",e))},mxGraph.prototype.doResizeContainer=function(e,t){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var n=this.getBorderSizes();e+=Math.max(2,n.x+n.width+1),t+=Math.max(2,n.y+n.height+1)}else 9<=document.documentMode?(e+=3,t+=5):(e+=1,t+=1);else t+=1;null!=this.maximumContainerSize&&(e=Math.min(this.maximumContainerSize.width,e),t=Math.min(this.maximumContainerSize.height,t)),this.container.style.width=Math.ceil(e)+"px",this.container.style.height=Math.ceil(t)+"px"},mxGraph.prototype.updatePageBreaks=function(e,t,n){var a=this.view.scale,i=this.view.translate,o=this.pageFormat,s=a*this.pageScale,i=new mxRectangle(a*i.x,a*i.y,o.width*s,o.height*s);if(e=e&&Math.min(i.width,i.height)>this.minPageBreakDist,i.x=mxUtils.mod(i.x,i.width),i.y=mxUtils.mod(i.y,i.height),o=e?Math.ceil((t-i.x)/i.width):0,e=e?Math.ceil((n-i.y)/i.height):0,null==this.horizontalPageBreaks&&0<o&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(s=0;s<=o;s++){var r=[new mxPoint(i.x+s*i.width,1),new mxPoint(i.x+s*i.width,n)];null!=this.horizontalPageBreaks[s]?(this.horizontalPageBreaks[s].scale=1,this.horizontalPageBreaks[s].points=r,this.horizontalPageBreaks[s].redraw()):(r=new mxPolyline(r,this.pageBreakColor,this.scale),r.dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.horizontalPageBreaks[s]=r)}for(s=o;s<this.horizontalPageBreaks.length;s++)this.horizontalPageBreaks[s].destroy();this.horizontalPageBreaks.splice(o,this.horizontalPageBreaks.length-o)}if(null==this.verticalPageBreaks&&0<e&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(s=0;s<=e;s++)r=[new mxPoint(1,i.y+s*i.height),new mxPoint(t,i.y+s*i.height)],null!=this.verticalPageBreaks[s]?(this.verticalPageBreaks[s].scale=1,this.verticalPageBreaks[s].points=r,this.verticalPageBreaks[s].redraw()):(r=new mxPolyline(r,this.pageBreakColor,a),r.dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.verticalPageBreaks[s]=r);for(s=e;s<this.verticalPageBreaks.length;s++)this.verticalPageBreaks[s].destroy();this.verticalPageBreaks.splice(e,this.verticalPageBreaks.length-e)}},mxGraph.prototype.getCellStyle=function(e){var t=this.model.getStyle(e),n=null,n=this.model.isEdge(e)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();return null!=t&&(n=this.postProcessCellStyle(this.stylesheet.getCellStyle(t,n))),null==n&&(n=mxGraph.prototype.EMPTY_ARRAY),n},mxGraph.prototype.postProcessCellStyle=function(e){if(null!=e){var t=e[mxConstants.STYLE_IMAGE],n=this.getImageFromBundles(t);null!=n?e[mxConstants.STYLE_IMAGE]=n:n=t,null!=n&&"data:image/"==n.substring(0,11)&&(0<(t=n.indexOf(","))&&(n=n.substring(0,t)+";base64,"+n.substring(t+1)),e[mxConstants.STYLE_IMAGE]=n)}return e},mxGraph.prototype.setCellStyle=function(e,t){if(null!=(t=t||this.getSelectionCells())){this.model.beginUpdate();try{for(var n=0;n<t.length;n++)this.model.setStyle(t[n],e)}finally{this.model.endUpdate()}}},mxGraph.prototype.toggleCellStyle=function(e,t,n){n=n||this.getSelectionCell(),this.toggleCellStyles(e,t,[n])},mxGraph.prototype.toggleCellStyles=function(e,t,n){if(t=null!=t&&t,null!=(n=n||this.getSelectionCells())&&0<n.length){var a=this.view.getState(n[0]);null!=(a=null!=a?a.style:this.getCellStyle(n[0]))&&(t=mxUtils.getValue(a,e,t)?0:1,this.setCellStyles(e,t,n))}},mxGraph.prototype.setCellStyles=function(e,t,n){n=n||this.getSelectionCells(),mxUtils.setCellStyles(this.model,n,e,t)},mxGraph.prototype.toggleCellStyleFlags=function(e,t,n){this.setCellStyleFlags(e,t,null,n)},mxGraph.prototype.setCellStyleFlags=function(e,t,n,a){if(null!=(a=a||this.getSelectionCells())&&0<a.length){if(null==n){var i=this.view.getState(a[0]);null!=(i=null!=i?i.style:this.getCellStyle(a[0]))&&(n=(parseInt(i[e]||0)&t)!=t)}mxUtils.setCellStyleFlags(this.model,a,e,t,n)}},mxGraph.prototype.alignCells=function(e,t,n){if(null==t&&(t=this.getSelectionCells()),null!=t&&1<t.length){if(null==n)for(var a=0;a<t.length;a++){var i=this.getCellGeometry(t[a]);if(null!=i&&!this.model.isEdge(t[a]))if(null==n){if(e==mxConstants.ALIGN_CENTER){n=i.x+i.width/2;break}if(e==mxConstants.ALIGN_RIGHT)n=i.x+i.width;else if(e==mxConstants.ALIGN_TOP)n=i.y;else{if(e==mxConstants.ALIGN_MIDDLE){n=i.y+i.height/2;break}n=e==mxConstants.ALIGN_BOTTOM?i.y+i.height:i.x}}else n=e==mxConstants.ALIGN_RIGHT?Math.max(n,i.x+i.width):e==mxConstants.ALIGN_TOP?Math.min(n,i.y):e==mxConstants.ALIGN_BOTTOM?Math.max(n,i.y+i.height):Math.min(n,i.x)}if(null!=n){this.model.beginUpdate();try{for(a=0;a<t.length;a++)null!=(i=this.getCellGeometry(t[a]))&&!this.model.isEdge(t[a])&&(i=i.clone(),e==mxConstants.ALIGN_CENTER?i.x=n-i.width/2:e==mxConstants.ALIGN_RIGHT?i.x=n-i.width:e==mxConstants.ALIGN_TOP?i.y=n:e==mxConstants.ALIGN_MIDDLE?i.y=n-i.height/2:e==mxConstants.ALIGN_BOTTOM?i.y=n-i.height:i.x=n,this.model.setGeometry(t[a],i));this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",e,"cells",t))}finally{this.model.endUpdate()}}}return t},mxGraph.prototype.flipEdge=function(e){if(null!=e&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var t=this.model.getStyle(e);null==t||0==t.length?this.model.setStyle(e,this.alternateEdgeStyle):this.model.setStyle(e,null),this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.FLIP_EDGE,"edge",e))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.addImageBundle=function(e){this.imageBundles.push(e)},mxGraph.prototype.removeImageBundle=function(e){for(var t=[],n=0;n<this.imageBundles.length;n++)this.imageBundles[n]!=e&&t.push(this.imageBundles[n]);this.imageBundles=t},mxGraph.prototype.getImageFromBundles=function(e){if(null!=e)for(var t=0;t<this.imageBundles.length;t++){var n=this.imageBundles[t].getImage(e);if(null!=n)return n}return null},mxGraph.prototype.orderCells=function(e,t){null==t&&(t=mxUtils.sortCells(this.getSelectionCells(),!0)),this.model.beginUpdate();try{this.cellsOrdered(t,e),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",e,"cells",t))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsOrdered=function(e,t){if(null!=e){this.model.beginUpdate();try{for(var n=0;n<e.length;n++){var a=this.model.getParent(e[n]);t?this.model.add(a,e[n],n):this.model.add(a,e[n],this.model.getChildCount(a)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",t,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.groupCells=function(e,t,n){null==n&&(n=mxUtils.sortCells(this.getSelectionCells(),!0)),n=this.getCellsForGroup(n),null==e&&(e=this.createGroupCell(n));var a=this.getBoundsForGroup(e,n,t);if(0<n.length&&null!=a){var i=this.model.getParent(e);null==i&&(i=this.model.getParent(n[0])),this.model.beginUpdate();try{null==this.getCellGeometry(e)&&this.model.setGeometry(e,new mxGeometry);var o=this.model.getChildCount(i);this.cellsAdded([e],i,o,null,null,!1),o=this.model.getChildCount(e),this.cellsAdded(n,e,o,null,null,!1,!1),this.cellsMoved(n,-a.x,-a.y,!1,!0),this.cellsResized([e],[a]),this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",e,"border",t,"cells",n))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.getCellsForGroup=function(e){var t=[];if(null!=e&&0<e.length){var n=this.model.getParent(e[0]);t.push(e[0]);for(var a=1;a<e.length;a++)this.model.getParent(e[a])==n&&t.push(e[a])}return t},mxGraph.prototype.getBoundsForGroup=function(e,t,n){return null!=(t=this.getBoundingBoxFromGeometry(t))&&(this.isSwimlane(e)&&(e=this.getStartSize(e),t.x-=e.width,t.y-=e.height,t.width+=e.width,t.height+=e.height),t.x-=n,t.y-=n,t.width+=2*n,t.height+=2*n),t},mxGraph.prototype.createGroupCell=function(e){return(e=new mxCell("")).setVertex(!0),e.setConnectable(!1),e},mxGraph.prototype.ungroupCells=function(e){var t=[];if(null==e){e=this.getSelectionCells();for(var n=[],a=0;a<e.length;a++)0<this.model.getChildCount(e[a])&&n.push(e[a]);e=n}if(null!=e&&0<e.length){this.model.beginUpdate();try{for(a=0;a<e.length;a++)if(null!=(i=this.model.getChildren(e[a]))&&0<i.length){var i=i.slice(),o=this.model.getParent(e[a]),s=this.model.getChildCount(o);this.cellsAdded(i,o,s,null,null,!0),t=t.concat(i)}this.cellsRemoved(this.addAllEdges(e)),this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",e))}finally{this.model.endUpdate()}}return t},mxGraph.prototype.removeCellsFromParent=function(e){null==e&&(e=this.getSelectionCells()),this.model.beginUpdate();try{var t=this.getDefaultParent(),n=this.model.getChildCount(t);this.cellsAdded(e,t,n,null,null,!0),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,"cells",e))}finally{this.model.endUpdate()}return e},mxGraph.prototype.updateGroupBounds=function(e,t,n){null==e&&(e=this.getSelectionCells()),t=null!=t?t:0,n=null!=n&&n,this.model.beginUpdate();try{for(var a=0;a<e.length;a++)if(null!=(r=this.getCellGeometry(e[a]))){var i=this.getChildCells(e[a]);if(null!=i&&0<i.length){var o=this.getBoundingBoxFromGeometry(i);if(0<o.width&&0<o.height){var s=this.isSwimlane(e[a])?this.getStartSize(e[a]):new mxRectangle,r=r.clone();n&&(r.x+=o.x-s.width-t,r.y+=o.y-s.height-t),r.width=o.width+s.width+2*t,r.height=o.height+s.height+2*t,this.model.setGeometry(e[a],r),this.moveCells(i,-o.x+s.width+t,-o.y+s.height+t)}}}}finally{this.model.endUpdate()}return e},mxGraph.prototype.cloneCells=function(e,t){t=null==t||t;a=null;if(null!=e){for(var n={},a=[],i=0;i<e.length;i++)n[o=mxCellPath.create(e[i])]=e[i],a.push(e[i]);if(0<a.length)for(var o=this.view.scale,s=this.view.translate,a=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!t&&this.model.isEdge(a[i])&&null!=this.getEdgeValidationError(a[i],this.model.getTerminal(a[i],!0),this.model.getTerminal(a[i],!1)))a[i]=null;else{var r=this.model.getGeometry(a[i]);if(null!=r){var l=this.view.getState(e[i]),d=this.view.getState(this.model.getParent(e[i]));if(null!=l&&null!=d){var c=d.origin.x,d=d.origin.y;if(this.model.isEdge(a[i])){for(var l=l.absolutePoints,m=this.model.getTerminal(e[i],!0),u=mxCellPath.create(m);null!=m&&null==n[u];)m=this.model.getParent(m),u=mxCellPath.create(m);for(null==m&&r.setTerminalPoint(new mxPoint(l[0].x/o-s.x,l[0].y/o-s.y),!0),m=this.model.getTerminal(e[i],!1),u=mxCellPath.create(m);null!=m&&null==n[u];)m=this.model.getParent(m),u=mxCellPath.create(m);if(null==m&&(m=l.length-1,r.setTerminalPoint(new mxPoint(l[m].x/o-s.x,l[m].y/o-s.y),!1)),null!=(r=r.points))for(l=0;l<r.length;l++)r[l].x+=c,r[l].y+=d}else r.x+=c,r.y+=d}}}else a=[]}return a},mxGraph.prototype.insertVertex=function(e,t,n,a,i,o,s,r,l){return t=this.createVertex(e,t,n,a,i,o,s,r,l),this.addCell(t,e)},mxGraph.prototype.createVertex=function(e,t,n,a,i,o,s,r,l){return e=new mxGeometry(a,i,o,s),e.relative=null!=l&&l,(n=new mxCell(n,e,r)).setId(t),n.setVertex(!0),n.setConnectable(!0),n},mxGraph.prototype.insertEdge=function(e,t,n,a,i,o){return t=this.createEdge(e,t,n,a,i,o),this.addEdge(t,e,a,i)},mxGraph.prototype.createEdge=function(e,t,n,a,i,o){return(e=new mxCell(n,new mxGeometry,o)).setId(t),e.setEdge(!0),e.geometry.relative=!0,e},mxGraph.prototype.addEdge=function(e,t,n,a,i){return this.addCell(e,t,i,n,a)},mxGraph.prototype.addCell=function(e,t,n,a,i){return this.addCells([e],t,n,a,i)[0]},mxGraph.prototype.addCells=function(e,t,n,a,i){null==t&&(t=this.getDefaultParent()),null==n&&(n=this.model.getChildCount(t)),this.model.beginUpdate();try{this.cellsAdded(e,t,n,a,i,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",e,"parent",t,"index",n,"source",a,"target",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsAdded=function(e,t,n,a,i,o,s){if(null!=e&&null!=t&&null!=n){this.model.beginUpdate();try{for(var r=null!=(d=o?this.view.getState(t):null)?d.origin:null,l=new mxPoint(0,0),d=0;d<e.length;d++)if(null==e[d])n--;else{var c=this.model.getParent(e[d]);if(null!=r&&e[d]!=t&&t!=c){var m=this.view.getState(c),u=null!=m?m.origin:l,p=this.model.getGeometry(e[d]);if(null!=p){var g=u.x-r.x,h=u.y-r.y;(p=p.clone()).translate(g,h),!p.relative&&this.model.isVertex(e[d])&&!this.isAllowNegativeCoordinates()&&(p.x=Math.max(0,p.x),p.y=Math.max(0,p.y)),this.model.setGeometry(e[d],p)}}t==c&&n+d>this.model.getChildCount(t)&&n--,this.model.add(t,e[d],n+d),this.isExtendParentsOnAdd()&&this.isExtendParent(e[d])&&this.extendParent(e[d]),(null==s||s)&&this.constrainChild(e[d]),null!=a&&this.cellConnected(e[d],a,!0),null!=i&&this.cellConnected(e[d],i,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",e,"parent",t,"index",n,"source",a,"target",i,"absolute",o))}finally{this.model.endUpdate()}}},mxGraph.prototype.removeCells=function(e,t){t=null==t||t,null==e&&(e=this.getDeletableCells(this.getSelectionCells())),t&&(e=this.getDeletableCells(this.addAllEdges(e))),this.model.beginUpdate();try{this.cellsRemoved(e),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",e,"includeEdges",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsRemoved=function(e){if(null!=e&&0<e.length){var t=this.view.scale,n=this.view.translate;this.model.beginUpdate();try{for(var a={},i=0;i<e.length;i++){var o=mxCellPath.create(e[i]);a[o]=e[i]}for(i=0;i<e.length;i++){for(var s=this.getConnections(e[i]),r=0;r<s.length;r++)if(o=mxCellPath.create(s[r]),null==a[o]&&null!=(d=this.model.getGeometry(s[r]))){var l=this.view.getState(s[r]);if(null!=l){var d=d.clone(),c=l.getVisibleTerminal(!0)==e[i],m=l.absolutePoints,u=c?0:m.length-1;d.setTerminalPoint(new mxPoint(m[u].x/t-n.x,m[u].y/t-n.y),c),this.model.setTerminal(s[r],null,c),this.model.setGeometry(s[r],d)}}this.model.remove(e[i])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.splitEdge=function(e,t,n,a,i){a=a||0,i=i||0,null==n&&(n=this.cloneCells([e])[0]);var o=this.model.getParent(e),s=this.model.getTerminal(e,!0);this.model.beginUpdate();try{this.cellsMoved(t,a,i,!1,!1),this.cellsAdded(t,o,this.model.getChildCount(o),null,null,!0),this.cellsAdded([n],o,this.model.getChildCount(o),s,t[0],!1),this.cellConnected(e,t[0],!0),this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",e,"cells",t,"newEdge",n,"dx",a,"dy",i))}finally{this.model.endUpdate()}return n},mxGraph.prototype.toggleCells=function(e,t,n){null==t&&(t=this.getSelectionCells()),n&&(t=this.addAllEdges(t)),this.model.beginUpdate();try{this.cellsToggled(t,e),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",e,"cells",t,"includeEdges",n))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsToggled=function(e,t){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var n=0;n<e.length;n++)this.model.setVisible(e[n],t)}finally{this.model.endUpdate()}}},mxGraph.prototype.foldCells=function(e,t,n,a){t=null!=t&&t,null==n&&(n=this.getFoldableCells(this.getSelectionCells(),e)),this.stopEditing(!1),this.model.beginUpdate();try{this.cellsFolded(n,e,t,a),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",e,"recurse",t,"cells",n))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsFolded=function(e,t,n,a){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var i=0;i<e.length;i++)if((!a||this.isCellFoldable(e[i],t))&&t!=this.isCellCollapsed(e[i])&&(this.model.setCollapsed(e[i],t),this.swapBounds(e[i],t),this.isExtendParent(e[i])&&this.extendParent(e[i]),n)){var o=this.model.getChildren(e[i]);this.foldCells(o,t,n)}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",e,"collapse",t,"recurse",n))}finally{this.model.endUpdate()}}},mxGraph.prototype.swapBounds=function(e,t){if(null!=e){var n=this.model.getGeometry(e);null!=n&&(n=n.clone(),this.updateAlternateBounds(e,n,t),n.swap(),this.model.setGeometry(e,n))}},mxGraph.prototype.updateAlternateBounds=function(e,t,n){if(null!=e&&null!=t){if(n=this.view.getState(e),n=null!=n?n.style:this.getCellStyle(e),null==t.alternateBounds){var a=t;this.collapseToPreferredSize&&null!=(e=this.getPreferredSizeForCell(e))&&(a=e,0<(e=mxUtils.getValue(n,mxConstants.STYLE_STARTSIZE))&&(a.height=Math.max(a.height,e))),t.alternateBounds=new mxRectangle(0,0,a.width,a.height)}if(null!=t.alternateBounds){t.alternateBounds.x=t.x,t.alternateBounds.y=t.y;var i=mxUtils.toRadians(n[mxConstants.STYLE_ROTATION]||"0");0!=i&&(e=t.alternateBounds.getCenterX()-t.getCenterX(),n=t.alternateBounds.getCenterY()-t.getCenterY(),a=Math.cos(i),i=Math.sin(i),t.alternateBounds.x+=a*e-i*n-e,t.alternateBounds.y+=i*e+a*n-n)}}},mxGraph.prototype.addAllEdges=function(e){var t=e.slice();return t=t.concat(this.getAllEdges(e))},mxGraph.prototype.getAllEdges=function(e){var t=[];if(null!=e)for(var n=0;n<e.length;n++){for(var a=this.model.getEdgeCount(e[n]),i=0;i<a;i++)t.push(this.model.getEdgeAt(e[n],i));a=this.model.getChildren(e[n]),t=t.concat(this.getAllEdges(a))}return t},mxGraph.prototype.updateCellSize=function(e,t){t=null!=t&&t,this.model.beginUpdate();try{this.cellSizeUpdated(e,t),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",e,"ignoreChildren",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellSizeUpdated=function(e,t){if(null!=e){this.model.beginUpdate();try{var n=this.getPreferredSizeForCell(e),a=this.model.getGeometry(e);if(null!=n&&null!=a){var i=this.isCellCollapsed(e),a=a.clone();if(this.isSwimlane(e)){var o=this.view.getState(e),s=null!=o?o.style:this.getCellStyle(e),r=this.model.getStyle(e);null==r&&(r=""),mxUtils.getValue(s,mxConstants.STYLE_HORIZONTAL,!0)?(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,n.height+8),i&&(a.height=n.height+8),a.width=n.width):(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,n.width+8),i&&(a.width=n.width+8),a.height=n.height),this.model.setStyle(e,r)}else a.width=n.width,a.height=n.height;if(!t&&!i){var l=this.view.getBounds(this.model.getChildren(e));if(null!=l){var d=this.view.translate,c=this.view.scale,m=(l.y+l.height)/c-a.y-d.y;a.width=Math.max(a.width,(l.x+l.width)/c-a.x-d.x),a.height=Math.max(a.height,m)}}this.cellsResized([e],[a])}}finally{this.model.endUpdate()}}},mxGraph.prototype.getPreferredSizeForCell=function(e){o=null;if(null!=e){var t=this.view.getState(e),n=null!=t?t.style:this.getCellStyle(e);if(null!=n&&!this.model.isEdge(e)){var a=n[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,i=0,o=0;null==this.getImage(t)&&null==n[mxConstants.STYLE_IMAGE]||n[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(n[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(i+=parseFloat(n[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),n[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(o+=parseFloat(n[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),i+=2*(n[mxConstants.STYLE_SPACING]||0),i+=n[mxConstants.STYLE_SPACING_LEFT]||0,i+=n[mxConstants.STYLE_SPACING_RIGHT]||0,o+=2*(n[mxConstants.STYLE_SPACING]||0),o+=n[mxConstants.STYLE_SPACING_TOP]||0,o+=n[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(t=this.getFoldingImage(t))&&(i+=t.width+8),null!=(t=this.getLabel(e))&&0<t.length?(this.isHtmlLabel(e)||(t=t.replace(/\n/g,"<br>")),a=mxUtils.getSizeForString(t,a,n[mxConstants.STYLE_FONTFAMILY]),e=a.width+i,o=a.height+o,mxUtils.getValue(n,mxConstants.STYLE_HORIZONTAL,!0)||(n=o,o=e,e=n),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),o=this.snap(o+this.gridSize/2)),o=new mxRectangle(0,0,e,o)):(n=4*this.gridSize,o=new mxRectangle(0,0,n,n))}}return o},mxGraph.prototype.handleGesture=function(e,t){if(.2<Math.abs(1-t.scale)){var n=this.view.scale,a=this.view.translate,i=e.width*t.scale,o=e.height*t.scale,s=e.y-(o-e.height)/2,n=new mxRectangle(this.snap((e.x-(i-e.width)/2)/n)-a.x,this.snap(s/n)-a.y,this.snap(i/n),this.snap(o/n));this.resizeCell(e.cell,n)}},mxGraph.prototype.resizeCell=function(e,t){return this.resizeCells([e],[t])[0]},mxGraph.prototype.resizeCells=function(e,t){this.model.beginUpdate();try{this.cellsResized(e,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",e,"bounds",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsResized=function(e,t){if(null!=e&&null!=t&&e.length==t.length){this.model.beginUpdate();try{for(var n=0;n<e.length;n++){var a=t[n],i=this.model.getGeometry(e[n]);if(null!=i&&(i.x!=a.x||i.y!=a.y||i.width!=a.width||i.height!=a.height)){if((i=i.clone()).relative){var o=i.offset;null!=o&&(o.x+=a.x-i.x,o.y+=a.y-i.y)}else i.x=a.x,i.y=a.y;i.width=a.width,i.height=a.height,!i.relative&&this.model.isVertex(e[n])&&!this.isAllowNegativeCoordinates()&&(i.x=Math.max(0,i.x),i.y=Math.max(0,i.y)),this.model.setGeometry(e[n],i),this.isExtendParent(e[n])&&this.extendParent(e[n])}}this.resetEdgesOnResize&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",e,"bounds",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.extendParent=function(e){if(null!=e){var t=this.model.getParent(e),n=this.model.getGeometry(t);null!=t&&null!=n&&!this.isCellCollapsed(t)&&null!=(e=this.model.getGeometry(e))&&(n.width<e.x+e.width||n.height<e.y+e.height)&&(n=n.clone(),n.width=Math.max(n.width,e.x+e.width),n.height=Math.max(n.height,e.y+e.height),this.cellsResized([t],[n]))}},mxGraph.prototype.importCells=function(e,t,n,a,i){return this.moveCells(e,t,n,!0,a,i)},mxGraph.prototype.moveCells=function(e,t,n,a,i,o){if(t=null!=t?t:0,n=null!=n?n:0,a=null!=a&&a,null!=e&&(0!=t||0!=n||a||null!=i)){this.model.beginUpdate();try{a&&(e=this.cloneCells(e,this.isCloneInvalidEdges()),null==i&&(i=this.getDefaultParent()));var s=this.isAllowNegativeCoordinates();if(null!=i&&this.setAllowNegativeCoordinates(!0),this.cellsMoved(e,t,n,!a&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==i),this.setAllowNegativeCoordinates(s),null!=i){var r=this.model.getChildCount(i);this.cellsAdded(e,i,r,null,null,!0)}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,"cells",e,"dx",t,"dy",n,"clone",a,"target",i,"event",o))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.cellsMoved=function(e,t,n,a,i){if(null!=e&&(0!=t||0!=n)){this.model.beginUpdate();try{a&&this.disconnectGraph(e);for(var o=0;o<e.length;o++)this.translateCell(e[o],t,n),i&&this.constrainChild(e[o]);this.resetEdgesOnMove&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",e,"dx",n,"dy",n,"disconnect",a))}finally{this.model.endUpdate()}}},mxGraph.prototype.translateCell=function(e,t,n){var a=this.model.getGeometry(e);null!=a&&((a=a.clone()).translate(t,n),!a.relative&&this.model.isVertex(e)&&!this.isAllowNegativeCoordinates()&&(a.x=Math.max(0,a.x),a.y=Math.max(0,a.y)),a.relative&&!this.model.isEdge(e)&&(null==a.offset?a.offset=new mxPoint(t,n):(a.offset.x+=t,a.offset.y+=n)),this.model.setGeometry(e,a))},mxGraph.prototype.getCellContainmentArea=function(e){if(null!=e&&!this.model.isEdge(e)){var t=this.model.getParent(e);if(t==this.getDefaultParent()||t==this.getCurrentRoot())return this.getMaximumGraphBounds();if(null!=t&&t!=this.getDefaultParent()&&null!=(i=this.model.getGeometry(t))){var n=e=0,a=i.width,i=i.height;return this.isSwimlane(t)&&(t=this.getStartSize(t),e=t.width,a-=t.width,n=t.height,i-=t.height),new mxRectangle(e,n,a,i)}}return null},mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds},mxGraph.prototype.constrainChild=function(e){if(null!=e){var t=this.model.getGeometry(e),n=this.isConstrainChild(e)?this.getCellContainmentArea(e):this.getMaximumGraphBounds();null!=t&&null!=n&&!t.relative&&(t.x<n.x||t.y<n.y||n.width<t.x+t.width||n.height<t.y+t.height)&&(e=this.getOverlap(e),0<n.width&&(t.x=Math.min(t.x,n.x+n.width-(1-e)*t.width)),0<n.height&&(t.y=Math.min(t.y,n.y+n.height-(1-e)*t.height)),t.x=Math.max(t.x,n.x-t.width*e),t.y=Math.max(t.y,n.y-t.height*e))}},mxGraph.prototype.resetEdges=function(e){if(null!=e){for(var t={},n=0;n<e.length;n++){var a=mxCellPath.create(e[n]);t[a]=e[n]}this.model.beginUpdate();try{for(n=0;n<e.length;n++){var i=this.model.getEdges(e[n]);if(null!=i)for(a=0;a<i.length;a++){var o=this.view.getState(i[a]),s=null!=o?o.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[a],!0),r=null!=o?o.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[a],!1),l=mxCellPath.create(s),d=mxCellPath.create(r);(null==t[l]||null==t[d])&&this.resetEdge(i[a])}this.resetEdges(this.model.getChildren(e[n]))}}finally{this.model.endUpdate()}}},mxGraph.prototype.resetEdge=function(e){var t=this.model.getGeometry(e);return null!=t&&null!=t.points&&0<t.points.length&&(t=t.clone(),t.points=[],this.model.setGeometry(e,t)),e},mxGraph.prototype.getAllConnectionConstraints=function(e,t){return null!=e&&null!=e.shape&&null!=e.shape.stencil?e.shape.stencil.constraints:null},mxGraph.prototype.getConnectionConstraint=function(e,t,n){t=null;var a=e.style[n?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=a){var i=e.style[n?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=i&&(t=new mxPoint(parseFloat(a),parseFloat(i)))}return a=!1,null!=t&&(a=mxUtils.getValue(e.style,n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0)),new mxConnectionConstraint(t,a)},mxGraph.prototype.setConnectionConstraint=function(e,t,n,a){if(null!=a){this.model.beginUpdate();try{null==a||null==a.point?(this.setCellStyles(n?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[e]),this.setCellStyles(n?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[e]),this.setCellStyles(n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e])):null!=a.point&&(this.setCellStyles(n?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,a.point.x,[e]),this.setCellStyles(n?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,a.point.y,[e]),a.perimeter?this.setCellStyles(n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e]):this.setCellStyles(n?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[e]))}finally{this.model.endUpdate()}}},mxGraph.prototype.getConnectionPoint=function(e,t){var n=null;if(null!=e){var a=this.view.getPerimeterBounds(e),i=new mxPoint(a.getCenterX(),a.getCenterY()),o=e.style[mxConstants.STYLE_DIRECTION],s=0;if(null!=o&&("north"==o?s+=270:"west"==o?s+=180:"south"==o&&(s+=90),"north"==o||"south"==o)){a.x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var r=a.width;a.width=a.height,a.height=r}if(null!=t.point){var l=n=1,d=0,c=0;if(this.getModel().isVertex(e.cell)){var m=e.style[mxConstants.STYLE_FLIPH],u=e.style[mxConstants.STYLE_FLIPV];null!=e.shape.stencil&&(m=1==mxUtils.getValue(e.style,"stencilFlipH",0)||m,u=1==mxUtils.getValue(e.style,"stencilFlipV",0)||u),"north"!=o&&"south"!=o||(r=m,m=u,u=r),m&&(n=-1,d=-a.width),u&&(l=-1,c=-a.height)}n=new mxPoint(a.x+t.point.x*a.width*n-d,a.y+t.point.y*a.height*l-c)}o=e.style[mxConstants.STYLE_ROTATION]||0,t.perimeter?(0!=s&&null!=n&&(r=a=0,90==s?r=1:180==s?a=-1:270==o&&(r=-1),n=mxUtils.getRotatedPoint(n,a,r,i)),null!=n&&t.perimeter&&(n=this.view.getPerimeterPoint(e,n,!1))):o+=s,0!=o&&null!=n&&(s=mxUtils.toRadians(o),a=Math.cos(s),r=Math.sin(s),n=mxUtils.getRotatedPoint(n,a,r,i))}return n},mxGraph.prototype.connectCell=function(e,t,n,a){this.model.beginUpdate();try{var i=this.model.getTerminal(e,n);this.cellConnected(e,t,n,a),this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",e,"terminal",t,"source",n,"previous",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellConnected=function(e,t,n,a){if(null!=e){this.model.beginUpdate();try{var i=this.model.getTerminal(e,n);this.setConnectionConstraint(e,t,n,a),this.isPortsEnabled()&&(a=null,this.isPort(t)&&(a=t.getId(),t=this.getTerminalForPort(t,n)),this.setCellStyles(n?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,a,[e])),this.model.setTerminal(e,t,n),this.resetEdgesOnConnect&&this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",e,"terminal",t,"source",n,"previous",i))}finally{this.model.endUpdate()}}},mxGraph.prototype.disconnectGraph=function(e){if(null!=e){this.model.beginUpdate();try{for(var t=this.view.scale,n=this.view.translate,a={},i=0;i<e.length;i++)a[mxCellPath.create(e[i])]=e[i];for(i=0;i<e.length;i++)if(this.model.isEdge(e[i])&&null!=(r=this.model.getGeometry(e[i]))){var o=this.view.getState(e[i]),s=this.view.getState(this.model.getParent(e[i]));if(null!=o&&null!=s){var r=r.clone(),l=-s.origin.x,d=-s.origin.y,c=o.absolutePoints,m=this.model.getTerminal(e[i],!0);if(null!=m&&this.isCellDisconnectable(e[i],m,!0)){for(var u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);null==m&&(r.setTerminalPoint(new mxPoint(c[0].x/t-n.x+l,c[0].y/t-n.y+d),!0),this.model.setTerminal(e[i],null,!0))}var p=this.model.getTerminal(e[i],!1);if(null!=p&&this.isCellDisconnectable(e[i],p,!1)){for(var g=mxCellPath.create(p);null!=p&&null==a[g];)p=this.model.getParent(p),g=mxCellPath.create(p);if(null==p){var h=c.length-1;r.setTerminalPoint(new mxPoint(c[h].x/t-n.x+l,c[h].y/t-n.y+d),!1),this.model.setTerminal(e[i],null,!1)}}this.model.setGeometry(e[i],r)}}}finally{this.model.endUpdate()}}},mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot},mxGraph.prototype.getTranslateForRoot=function(e){return null},mxGraph.prototype.isPort=function(e){return!1},mxGraph.prototype.getTerminalForPort=function(e,t){return this.model.getParent(e)},mxGraph.prototype.getChildOffsetForCell=function(e){return null},mxGraph.prototype.enterGroup=function(e){null!=(e=e||this.getSelectionCell())&&this.isValidRoot(e)&&(this.view.setCurrentRoot(e),this.clearSelection())},mxGraph.prototype.exitGroup=function(){var e=this.model.getRoot(),t=this.getCurrentRoot();if(null!=t){for(var n=this.model.getParent(t);n!=e&&!this.isValidRoot(n)&&this.model.getParent(n)!=e;)n=this.model.getParent(n);n==e||this.model.getParent(n)==e?this.view.setCurrentRoot(null):this.view.setCurrentRoot(n),null!=this.view.getState(t)&&this.setSelectionCell(t)}},mxGraph.prototype.home=function(){var e=this.getCurrentRoot();null!=e&&(this.view.setCurrentRoot(null),null!=this.view.getState(e)&&this.setSelectionCell(e))},mxGraph.prototype.isValidRoot=function(e){return null!=e},mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds()},mxGraph.prototype.getCellBounds=function(e,t,n){var a=[e];if(t&&(a=a.concat(this.model.getEdges(e))),a=this.view.getBounds(a),n){n=this.model.getChildCount(e);for(var i=0;i<n;i++){var o=this.getCellBounds(this.model.getChildAt(e,i),t,!0);null!=a?a.add(o):a=o}}return a},mxGraph.prototype.getBoundingBoxFromGeometry=function(e,t){t=null!=t&&t;var n=null;if(null!=e)for(var a=0;a<e.length;a++)if(t||this.model.isVertex(e[a])){var i=this.getCellGeometry(e[a]);if(null!=i){var o=i.points;if(null!=o&&0<o.length){for(var s=new mxRectangle(o[0].x,o[0].y,0,0),r=function(e){null!=e&&s.add(new mxRectangle(e.x,e.y,0,0))},l=1;l<o.length;l++)r(o[l]);r(i.getTerminalPoint(!0)),r(i.getTerminalPoint(!1))}null==n?n=new mxRectangle(i.x,i.y,i.width,i.height):n.add(i)}}return n},mxGraph.prototype.refresh=function(e){this.view.clear(e,null==e),this.view.validate(),this.sizeDidChange(),this.fireEvent(new mxEventObject(mxEvent.REFRESH))},mxGraph.prototype.snap=function(e){return this.gridEnabled&&(e=Math.round(e/this.gridSize)*this.gridSize),e},mxGraph.prototype.panGraph=function(e,t){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-e,this.container.scrollTop=-t;else{var n=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==e&&0==t){if(mxClient.IS_IE?n.setAttribute("transform","translate("+e+","+t+")"):n.removeAttribute("transform"),null!=this.shiftPreview1){for(o=this.shiftPreview1.firstChild;null!=o;){var a=o.nextSibling;this.container.appendChild(o),o=a}for(this.shiftPreview1.parentNode.removeChild(this.shiftPreview1),this.shiftPreview1=null,this.container.appendChild(n.parentNode),o=this.shiftPreview2.firstChild;null!=o;)a=o.nextSibling,this.container.appendChild(o),o=a;this.shiftPreview2.parentNode.removeChild(this.shiftPreview2),this.shiftPreview2=null}}else{if(n.setAttribute("transform","translate("+e+","+t+")"),null==this.shiftPreview1){this.shiftPreview1=document.createElement("div"),this.shiftPreview1.style.position="absolute",this.shiftPreview1.style.overflow="visible",this.shiftPreview2=document.createElement("div"),this.shiftPreview2.style.position="absolute",this.shiftPreview2.style.overflow="visible";for(var i=this.shiftPreview1,o=this.container.firstChild;null!=o;)a=o.nextSibling,o!=n.parentNode?i.appendChild(o):i=this.shiftPreview2,o=a;this.container.insertBefore(this.shiftPreview1,n.parentNode),this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=e+"px",this.shiftPreview1.style.top=t+"px",this.shiftPreview2.style.left=e+"px",this.shiftPreview2.style.top=t+"px"}else n.style.left=e+"px",n.style.top=t+"px";this.panDx=e,this.panDy=t,this.fireEvent(new mxEventObject(mxEvent.PAN))}},mxGraph.prototype.zoomIn=function(){this.zoom(this.zoomFactor)},mxGraph.prototype.zoomOut=function(){this.zoom(1/this.zoomFactor)},mxGraph.prototype.zoomActual=function(){1==this.view.scale?this.view.setTranslate(0,0):(this.view.translate.x=0,this.view.translate.y=0,this.view.setScale(1))},mxGraph.prototype.zoomTo=function(e,t){this.zoom(e/this.view.scale,t)},mxGraph.prototype.zoom=function(e,t){t=null!=t?t:this.centerZoom;var n=this.view.scale*e,a=this.view.getState(this.getSelectionCell());if(this.keepSelectionVisibleOnZoom&&null!=a)a=new mxRectangle(a.x*e,a.y*e,a.width*e,a.height*e),this.view.scale=n,this.scrollRectToVisible(a)||(this.view.revalidate(),this.view.setScale(n));else if(t&&!mxUtils.hasScrollbars(this.container)){var a=this.container.offsetWidth,i=this.container.offsetHeight;if(1<e)var o=(e-1)/(2*n),a=a*-o,i=i*-o;else o=(1/e-1)/(2*this.view.scale),a*=o,i*=o;this.view.scaleAndTranslate(n,this.view.translate.x+a,this.view.translate.y+i)}else this.view.setScale(n),mxUtils.hasScrollbars(this.container)&&(i=a=0,t&&(a=this.container.offsetWidth*(e-1)/2,i=this.container.offsetHeight*(e-1)/2),this.container.scrollLeft=Math.round(this.container.scrollLeft*e+a),this.container.scrollTop=Math.round(this.container.scrollTop*e+i))},mxGraph.prototype.zoomToRect=function(e){var t=this.container.clientWidth/e.width/(this.container.clientHeight/e.height);e.x=Math.max(0,e.x),e.y=Math.max(0,e.y);var n=Math.min(this.container.scrollWidth,e.x+e.width),a=Math.min(this.container.scrollHeight,e.y+e.height);e.width=n-e.x,e.height=a-e.y,1>t?(t=e.height/t,n=(t-e.height)/2,e.height=t,t=Math.min(e.y,n),e.y-=t,a=Math.min(this.container.scrollHeight,e.y+e.height),e.height=a-e.y):(t*=e.width,n=(t-e.width)/2,e.width=t,t=Math.min(e.x,n),e.x-=t,n=Math.min(this.container.scrollWidth,e.x+e.width),e.width=n-e.x),t=this.container.clientWidth/e.width,n=this.view.scale*t,mxUtils.hasScrollbars(this.container)?(this.view.setScale(n),this.container.scrollLeft=Math.round(e.x*t),this.container.scrollTop=Math.round(e.y*t)):this.view.scaleAndTranslate(n,this.view.translate.x-e.x/this.view.scale,this.view.translate.y-e.y/this.view.scale)},mxGraph.prototype.fit=function(e,t){if(null!=this.container){e=null!=e?e:0,t=null!=t&&t;var n=this.container.clientWidth,a=this.container.clientHeight,i=this.view.getGraphBounds();t&&null!=i.x&&null!=i.y&&(i.width+=i.x,i.height+=i.y,i.x=0,i.y=0);var o=this.view.scale,s=i.width/o,r=i.height/o;null!=this.backgroundImage&&(s=Math.max(s,this.backgroundImage.width-i.x/o),r=Math.max(r,this.backgroundImage.height-i.y/o));var l=t?e:2*e,n=Math.floor(100*Math.min(n/(s+l),a/(r+l)))/100;null!=this.minFitScale&&(n=Math.max(n,this.minFitScale)),null!=this.maxFitScale&&(n=Math.min(n,this.maxFitScale)),t?this.view.scale!=n&&this.view.setScale(n):mxUtils.hasScrollbars(this.container)?(this.view.setScale(n),null!=i.x&&(this.container.scrollLeft=Math.round(i.x/o)*n-e-Math.max(0,(this.container.clientWidth-s*n)/2)),null!=i.y&&(this.container.scrollTop=Math.round(i.y/o)*n-e-Math.max(0,(this.container.clientHeight-r*n)/2))):this.view.scaleAndTranslate(n,null!=i.x?Math.floor(this.view.translate.x-i.x/o+e+1):e,null!=i.y?Math.floor(this.view.translate.y-i.y/o+e+1):e)}return this.view.scale},mxGraph.prototype.scrollCellToVisible=function(e,t){var n=-this.view.translate.x,a=-this.view.translate.y,i=this.view.getState(e);null!=i&&(n=new mxRectangle(n+i.x,a+i.y,i.width,i.height),t&&null!=this.container&&(a=this.container.clientWidth,i=this.container.clientHeight,n.x=n.getCenterX()-a/2,n.width=a,n.y=n.getCenterY()-i/2,n.height=i),this.scrollRectToVisible(n)&&this.view.setTranslate(this.view.translate.x,this.view.translate.y))},mxGraph.prototype.scrollRectToVisible=function(e){var t=!1;if(null!=e){var n=this.container.offsetWidth,a=this.container.offsetHeight,i=Math.min(n,e.width),o=Math.min(a,e.height);if(mxUtils.hasScrollbars(this.container)){n=this.container,e.x+=this.view.translate.x,e.y+=this.view.translate.y;var s=n.scrollLeft-e.x,a=Math.max(s-n.scrollLeft,0);0<s?n.scrollLeft-=s+2:0<(s=e.x+i-n.scrollLeft-n.clientWidth)&&(n.scrollLeft+=s+2),i=n.scrollTop-e.y,s=Math.max(0,i-n.scrollTop),0<i?n.scrollTop-=i+2:0<(i=e.y+o-n.scrollTop-n.clientHeight)&&(n.scrollTop+=i+2),!this.useScrollbarsForPanning&&(0!=a||0!=s)&&this.view.setTranslate(a,s)}else{var s=-this.view.translate.x,r=-this.view.translate.y,l=this.view.scale;e.x+i>s+n&&(this.view.translate.x-=(e.x+i-n-s)/l,t=!0),e.y+o>r+a&&(this.view.translate.y-=(e.y+o-a-r)/l,t=!0),e.x<s&&(this.view.translate.x+=(s-e.x)/l,t=!0),e.y<r&&(this.view.translate.y+=(r-e.y)/l,t=!0),t&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return t},mxGraph.prototype.getCellGeometry=function(e){return this.model.getGeometry(e)},mxGraph.prototype.isCellVisible=function(e){return this.model.isVisible(e)},mxGraph.prototype.isCellCollapsed=function(e){return this.model.isCollapsed(e)},mxGraph.prototype.isCellConnectable=function(e){return this.model.isConnectable(e)},mxGraph.prototype.isOrthogonal=function(e){var t=e.style[mxConstants.STYLE_ORTHOGONAL];return null!=t?t:(e=this.view.getEdgeStyle(e))==mxEdgeStyle.SegmentConnector||e==mxEdgeStyle.ElbowConnector||e==mxEdgeStyle.SideToSide||e==mxEdgeStyle.TopToBottom||e==mxEdgeStyle.EntityRelation||e==mxEdgeStyle.OrthConnector},mxGraph.prototype.isLoop=function(e){var t=e.getVisibleTerminalState(!0);return e=e.getVisibleTerminalState(!1),null!=t&&t==e},mxGraph.prototype.isCloneEvent=function(e){return mxEvent.isControlDown(e)},mxGraph.prototype.isToggleEvent=function(e){return mxClient.IS_MAC?mxEvent.isMetaDown(e):mxEvent.isControlDown(e)},mxGraph.prototype.isGridEnabledEvent=function(e){return null!=e&&!mxEvent.isAltDown(e)},mxGraph.prototype.isConstrainedEvent=function(e){return mxEvent.isShiftDown(e)},mxGraph.prototype.isForceMarqueeEvent=function(e){return mxEvent.isAltDown(e)},mxGraph.prototype.validationAlert=function(e){mxUtils.alert(e)},mxGraph.prototype.isEdgeValid=function(e,t,n){return null==this.getEdgeValidationError(e,t,n)},mxGraph.prototype.getEdgeValidationError=function(e,t,n){if(null!=e&&!this.isAllowDanglingEdges()&&(null==t||null==n))return"";if(null!=e&&null==this.model.getTerminal(e,!0)&&null==this.model.getTerminal(e,!1))return null;if(!this.allowLoops&&t==n&&null!=t||!this.isValidConnection(t,n))return"";if(null!=t&&null!=n){var a="";this.multigraph||(1<(i=this.model.getEdgesBetween(t,n,!0)).length||1==i.length&&i[0]!=e)&&(a+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+"\n");var i=this.model.getDirectedEdgeCount(t,!0,e),o=this.model.getDirectedEdgeCount(n,!1,e);if(null!=this.multiplicities)for(var s=0;s<this.multiplicities.length;s++){var r=this.multiplicities[s].check(this,e,t,n,i,o);null!=r&&(a+=r)}return null!=(r=this.validateEdge(e,t,n))&&(a+=r),0<a.length?a:null}return this.allowDanglingEdges?null:""},mxGraph.prototype.validateEdge=function(e,t,n){return null},mxGraph.prototype.validateGraph=function(e,t){e=null!=e?e:this.model.getRoot(),t=null!=t?t:{};for(var n=!0,a=this.model.getChildCount(e),i=0;i<a;i++){var o=this.model.getChildAt(e,i),s=t;this.isValidRoot(o)&&(s={}),null!=(s=this.validateGraph(o,s))?this.setCellWarning(o,s.replace(/\n/g,"<br>")):this.setCellWarning(o,null),n=n&&null==s}return a="",this.isCellCollapsed(e)&&!n&&(a+=(mxResources.get(this.containsValidationErrorsResource)||this.containsValidationErrorsResource)+"\n"),a=this.model.isEdge(e)?a+(this.getEdgeValidationError(e,this.model.getTerminal(e,!0),this.model.getTerminal(e,!1))||""):a+(this.getCellValidationError(e)||""),null!=(i=this.validateCell(e,t))&&(a+=i),null==this.model.getParent(e)&&this.view.validate(),0<a.length||!n?a:null},mxGraph.prototype.getCellValidationError=function(e){var t=this.model.getDirectedEdgeCount(e,!0),n=this.model.getDirectedEdgeCount(e,!1);e=this.model.getValue(e);var a="";if(null!=this.multiplicities)for(var i=0;i<this.multiplicities.length;i++){var o=this.multiplicities[i];o.source&&mxUtils.isNode(e,o.type,o.attr,o.value)&&(0==o.max&&0<t||1==o.min&&0==t||1==o.max&&1<t)?a+=o.countError+"\n":!o.source&&mxUtils.isNode(e,o.type,o.attr,o.value)&&(0==o.max&&0<n||1==o.min&&0==n||1==o.max&&1<n)&&(a+=o.countError+"\n")}return 0<a.length?a:null},mxGraph.prototype.validateCell=function(e,t){return null},mxGraph.prototype.getBackgroundImage=function(){return this.backgroundImage},mxGraph.prototype.setBackgroundImage=function(e){this.backgroundImage=e},mxGraph.prototype.getFoldingImage=function(e){if(null!=e&&this.foldingEnabled&&!this.getModel().isEdge(e.cell)){var t=this.isCellCollapsed(e.cell);if(this.isCellFoldable(e.cell,!t))return t?this.collapsedImage:this.expandedImage}return null},mxGraph.prototype.convertValueToString=function(e){if(null!=(e=this.model.getValue(e))){if(mxUtils.isNode(e))return e.nodeName;if("function"==typeof e.toString)return e.toString()}return""},mxGraph.prototype.getLabel=function(e){var t="";if(this.labelsVisible&&null!=e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);mxUtils.getValue(n,mxConstants.STYLE_NOLABEL,!1)||(t=this.convertValueToString(e))}return t},mxGraph.prototype.isHtmlLabel=function(e){return this.isHtmlLabels()},mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels},mxGraph.prototype.setHtmlLabels=function(e){this.htmlLabels=e},mxGraph.prototype.isWrapping=function(e){var t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE]},mxGraph.prototype.isLabelClipped=function(e){var t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&"hidden"==e[mxConstants.STYLE_OVERFLOW]},mxGraph.prototype.getTooltip=function(e,t,n,a){var i=null;return null!=e&&(null==e.control||t!=e.control.node&&t.parentNode!=e.control.node||(i=this.collapseExpandResource,i=mxResources.get(i)||i),null==i&&null!=e.overlays&&e.overlays.visit(function(e,n){null!=i||t!=n.node&&t.parentNode!=n.node||(i=n.overlay.toString())}),null==i&&null!=(n=this.selectionCellsHandler.getHandler(e.cell))&&"function"==typeof n.getTooltipForNode&&(i=n.getTooltipForNode(t)),null==i&&(i=this.getTooltipForCell(e.cell))),i},mxGraph.prototype.getTooltipForCell=function(e){return null!=e&&null!=e.getTooltip?e.getTooltip():this.convertValueToString(e)},mxGraph.prototype.getCursorForCell=function(e){return null},mxGraph.prototype.getStartSize=function(e){var t=new mxRectangle,n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&(n=parseInt(mxUtils.getValue(e,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,!0)?t.height=n:t.width=n),t},mxGraph.prototype.getImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_IMAGE]:null},mxGraph.prototype.getVerticalAlign=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null},mxGraph.prototype.getIndicatorColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_COLOR]:null},mxGraph.prototype.getIndicatorGradientColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null},mxGraph.prototype.getIndicatorShape=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_SHAPE]:null},mxGraph.prototype.getIndicatorImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_IMAGE]:null},mxGraph.prototype.getBorder=function(){return this.border},mxGraph.prototype.setBorder=function(e){this.border=e},mxGraph.prototype.isSwimlane=function(e){if(null!=e&&this.model.getParent(e)!=this.model.getRoot()){var t=this.view.getState(e);if(null!=(t=null!=t?t.style:this.getCellStyle(e))&&!this.model.isEdge(e))return t[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE}return!1},mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer},mxGraph.prototype.setResizeContainer=function(e){this.resizeContainer=e},mxGraph.prototype.isEnabled=function(){return this.enabled},mxGraph.prototype.setEnabled=function(e){this.enabled=e},mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled},mxGraph.prototype.setEscapeEnabled=function(e){this.escapeEnabled=e},mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing},mxGraph.prototype.setInvokesStopCellEditing=function(e){this.invokesStopCellEditing=e},mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing},mxGraph.prototype.setEnterStopsCellEditing=function(e){this.enterStopsCellEditing=e},mxGraph.prototype.isCellLocked=function(e){var t=this.model.getGeometry(e);return this.isCellsLocked()||null!=t&&this.model.isVertex(e)&&t.relative},mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked},mxGraph.prototype.setCellsLocked=function(e){this.cellsLocked=e},mxGraph.prototype.getCloneableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellCloneable(e)}))},mxGraph.prototype.isCellCloneable=function(e){var t=this.view.getState(e);return e=null!=t?t.style:this.getCellStyle(e),this.isCellsCloneable()&&0!=e[mxConstants.STYLE_CLONEABLE]},mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable},mxGraph.prototype.setCellsCloneable=function(e){this.cellsCloneable=e},mxGraph.prototype.getExportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canExportCell(e)}))},mxGraph.prototype.canExportCell=function(e){return this.exportEnabled},mxGraph.prototype.getImportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canImportCell(e)}))},mxGraph.prototype.canImportCell=function(e){return this.importEnabled},mxGraph.prototype.isCellSelectable=function(e){return this.isCellsSelectable()},mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable},mxGraph.prototype.setCellsSelectable=function(e){this.cellsSelectable=e},mxGraph.prototype.getDeletableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellDeletable(e)}))},mxGraph.prototype.isCellDeletable=function(e){var t=this.view.getState(e);return e=null!=t?t.style:this.getCellStyle(e),this.isCellsDeletable()&&0!=e[mxConstants.STYLE_DELETABLE]},mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable},mxGraph.prototype.setCellsDeletable=function(e){this.cellsDeletable=e},mxGraph.prototype.isLabelMovable=function(e){return!this.isCellLocked(e)&&(this.model.isEdge(e)&&this.edgeLabelsMovable||this.model.isVertex(e)&&this.vertexLabelsMovable)},mxGraph.prototype.getMovableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellMovable(e)}))},mxGraph.prototype.isCellMovable=function(e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return this.isCellsMovable()&&!this.isCellLocked(e)&&0!=t[mxConstants.STYLE_MOVABLE]},mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable},mxGraph.prototype.setCellsMovable=function(e){this.cellsMovable=e},mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled},mxGraph.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled},mxGraph.prototype.setPortsEnabled=function(e){this.portsEnabled=e},mxGraph.prototype.getGridSize=function(){return this.gridSize},mxGraph.prototype.setGridSize=function(e){this.gridSize=e},mxGraph.prototype.getTolerance=function(){return this.tolerance},mxGraph.prototype.setTolerance=function(e){this.tolerance=e},mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable},mxGraph.prototype.setVertexLabelsMovable=function(e){this.vertexLabelsMovable=e},mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable},mxGraph.prototype.setEdgeLabelsMovable=function(e){this.edgeLabelsMovable=e},mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting},mxGraph.prototype.setSwimlaneNesting=function(e){this.swimlaneNesting=e},mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled},mxGraph.prototype.setSwimlaneSelectionEnabled=function(e){this.swimlaneSelectionEnabled=e},mxGraph.prototype.isMultigraph=function(){return this.multigraph},mxGraph.prototype.setMultigraph=function(e){this.multigraph=e},mxGraph.prototype.isAllowLoops=function(){return this.allowLoops},mxGraph.prototype.setAllowDanglingEdges=function(e){this.allowDanglingEdges=e},mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges},mxGraph.prototype.setConnectableEdges=function(e){this.connectableEdges=e},mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges},mxGraph.prototype.setCloneInvalidEdges=function(e){this.cloneInvalidEdges=e},mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges},mxGraph.prototype.setAllowLoops=function(e){this.allowLoops=e},mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove},mxGraph.prototype.setDisconnectOnMove=function(e){this.disconnectOnMove=e},mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled},mxGraph.prototype.setDropEnabled=function(e){this.dropEnabled=e},mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled},mxGraph.prototype.setSplitEnabled=function(e){this.splitEnabled=e},mxGraph.prototype.isCellResizable=function(e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return this.isCellsResizable()&&!this.isCellLocked(e)&&0!=t[mxConstants.STYLE_RESIZABLE]},mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable},mxGraph.prototype.setCellsResizable=function(e){this.cellsResizable=e},mxGraph.prototype.isTerminalPointMovable=function(e,t){return!0},mxGraph.prototype.isCellBendable=function(e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return this.isCellsBendable()&&!this.isCellLocked(e)&&0!=t[mxConstants.STYLE_BENDABLE]},mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable},mxGraph.prototype.setCellsBendable=function(e){this.cellsBendable=e},mxGraph.prototype.isCellEditable=function(e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return this.isCellsEditable()&&!this.isCellLocked(e)&&0!=t[mxConstants.STYLE_EDITABLE]},mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable},mxGraph.prototype.setCellsEditable=function(e){this.cellsEditable=e},mxGraph.prototype.isCellDisconnectable=function(e,t,n){return this.isCellsDisconnectable()&&!this.isCellLocked(e)},mxGraph.prototype.isCellsDisconnectable=function(){return this.cellsDisconnectable},mxGraph.prototype.setCellsDisconnectable=function(e){this.cellsDisconnectable=e},mxGraph.prototype.isValidSource=function(e){return null==e&&this.allowDanglingEdges||null!=e&&(!this.model.isEdge(e)||this.connectableEdges)&&this.isCellConnectable(e)},mxGraph.prototype.isValidTarget=function(e){return this.isValidSource(e)},mxGraph.prototype.isValidConnection=function(e,t){return this.isValidSource(e)&&this.isValidTarget(t)},mxGraph.prototype.setConnectable=function(e){this.connectionHandler.setEnabled(e)},mxGraph.prototype.isConnectable=function(e){return this.connectionHandler.isEnabled()},mxGraph.prototype.setTooltips=function(e){this.tooltipHandler.setEnabled(e)},mxGraph.prototype.setPanning=function(e){this.panningHandler.panningEnabled=e},mxGraph.prototype.isEditing=function(e){if(null!=this.cellEditor){var t=this.cellEditor.getEditingCell();return null==e?null!=t:e==t}return!1},mxGraph.prototype.isAutoSizeCell=function(e){var t=this.view.getState(e);return e=null!=t?t.style:this.getCellStyle(e),this.isAutoSizeCells()||1==e[mxConstants.STYLE_AUTOSIZE]},mxGraph.prototype.isAutoSizeCells=function(){return this.autoSizeCells},mxGraph.prototype.setAutoSizeCells=function(e){this.autoSizeCells=e},mxGraph.prototype.isExtendParent=function(e){return!this.getModel().isEdge(e)&&this.isExtendParents()},mxGraph.prototype.isExtendParents=function(){return this.extendParents},mxGraph.prototype.setExtendParents=function(e){this.extendParents=e},mxGraph.prototype.isExtendParentsOnAdd=function(){return this.extendParentsOnAdd},mxGraph.prototype.setExtendParentsOnAdd=function(e){this.extendParentsOnAdd=e},mxGraph.prototype.isConstrainChild=function(e){return this.isConstrainChildren()&&!this.getModel().isEdge(this.getModel().getParent(e))},mxGraph.prototype.isConstrainChildren=function(){return this.constrainChildren},mxGraph.prototype.setConstrainChildren=function(e){this.constrainChildren=e},mxGraph.prototype.isAllowNegativeCoordinates=function(){return this.allowNegativeCoordinates},mxGraph.prototype.setAllowNegativeCoordinates=function(e){this.allowNegativeCoordinates=e},mxGraph.prototype.getOverlap=function(e){return this.isAllowOverlapParent(e)?this.defaultOverlap:0},mxGraph.prototype.isAllowOverlapParent=function(e){return!1},mxGraph.prototype.getFoldableCells=function(e,t){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellFoldable(e,t)}))},mxGraph.prototype.isCellFoldable=function(e,t){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return 0<this.model.getChildCount(e)&&0!=n[mxConstants.STYLE_FOLDABLE]},mxGraph.prototype.isValidDropTarget=function(e,t,n){return null!=e&&(this.isSplitEnabled()&&this.isSplitTarget(e,t,n)||!this.model.isEdge(e)&&(this.isSwimlane(e)||0<this.model.getChildCount(e)&&!this.isCellCollapsed(e)))},mxGraph.prototype.isSplitTarget=function(e,t,n){return!(!this.model.isEdge(e)||null==t||1!=t.length||!this.isCellConnectable(t[0])||null!=this.getEdgeValidationError(e,this.model.getTerminal(e,!0),t[0]))&&(n=this.model.getTerminal(e,!0),e=this.model.getTerminal(e,!1),!this.model.isAncestor(t[0],n)&&!this.model.isAncestor(t[0],e))},mxGraph.prototype.getDropTarget=function(e,t,n){if(!this.isSwimlaneNesting())for(var a=0;a<e.length;a++)if(this.isSwimlane(e[a]))return null;if(a=mxUtils.convertPoint(this.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),a.x-=this.panDx,a.y-=this.panDy,a=this.getSwimlaneAt(a.x,a.y),null==n)n=a;else if(null!=a){for(var i=this.model.getParent(a);null!=i&&this.isSwimlane(i)&&i!=n;)i=this.model.getParent(i);i==n&&(n=a)}for(;null!=n&&!this.isValidDropTarget(n,e,t)&&!this.model.isLayer(n);)n=this.model.getParent(n);return!this.model.isLayer(n)&&0>mxUtils.indexOf(e,n)?n:null},mxGraph.prototype.getDefaultParent=function(){var e=this.defaultParent;return null==e&&null==(e=this.getCurrentRoot())&&(e=this.model.getRoot(),e=this.model.getChildAt(e,0)),e},mxGraph.prototype.setDefaultParent=function(e){this.defaultParent=e},mxGraph.prototype.getSwimlane=function(e){for(;null!=e&&!this.isSwimlane(e);)e=this.model.getParent(e);return e},mxGraph.prototype.getSwimlaneAt=function(e,t,n){if(null!=(n=n||this.getDefaultParent()))for(var a=this.model.getChildCount(n),i=0;i<a;i++){var o=this.model.getChildAt(n,i),s=this.getSwimlaneAt(e,t,o);if(null!=s)return s;if(this.isSwimlane(o)&&(s=this.view.getState(o),this.intersects(s,e,t)))return o}return null},mxGraph.prototype.getCellAt=function(e,t,n,a,i){if(a=null==a||a,i=null==i||i,null!=(n=null!=n?n:this.getDefaultParent()))for(var o=this.model.getChildCount(n)-1;0<=o;o--){var s=this.model.getChildAt(n,o),r=this.getCellAt(e,t,s,a,i);if(null!=r)return r;if(this.isCellVisible(s)&&(i&&this.model.isEdge(s)||a&&this.model.isVertex(s))&&(r=this.view.getState(s),this.intersects(r,e,t)))return s}return null},mxGraph.prototype.intersects=function(e,t,n){if(null!=e){var a=e.absolutePoints;if(null!=a){e=this.tolerance*this.tolerance;for(var i=a[0],o=1;o<a.length;o++){var s=a[o];if(mxUtils.ptSegDistSq(i.x,i.y,s.x,s.y,t,n)<=e)return!0;i=s}}else if(0!=(i=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(a=Math.cos(-i),i=Math.sin(-i),o=new mxPoint(e.getCenterX(),e.getCenterY()),i=mxUtils.getRotatedPoint(new mxPoint(t,n),a,i,o),t=i.x,n=i.y),mxUtils.contains(e,t,n))return!0}return!1},mxGraph.prototype.hitsSwimlaneContent=function(e,t,n){var a=this.getView().getState(e);if(e=this.getStartSize(e),null!=a){var i=this.getView().getScale();if(t-=a.x,n-=a.y,0<e.width&&0<t&&t>e.width*i||0<e.height&&0<n&&n>e.height*i)return!0}return!1},mxGraph.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraph.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraph.prototype.getChildCells=function(e,t,n){for(e=null!=e?e:this.getDefaultParent(),e=this.model.getChildCells(e,null!=t&&t,null!=n&&n),t=[],n=0;n<e.length;n++)this.isCellVisible(e[n])&&t.push(e[n]);return t},mxGraph.prototype.getConnections=function(e,t){return this.getEdges(e,t,!0,!0,!1)},mxGraph.prototype.getIncomingEdges=function(e,t){return this.getEdges(e,t,!0,!1,!1)},mxGraph.prototype.getOutgoingEdges=function(e,t){return this.getEdges(e,t,!1,!0,!1)},mxGraph.prototype.getEdges=function(e,t,n,a,i,o){n=null==n||n,a=null==a||a,i=null==i||i,o=null!=o&&o;for(var s=[],r=this.isCellCollapsed(e),l=this.model.getChildCount(e),d=0;d<l;d++){var c=this.model.getChildAt(e,d);!r&&this.isCellVisible(c)||(s=s.concat(this.model.getEdges(c,n,a)))}for(s=s.concat(this.model.getEdges(e,n,a)),r=[],d=0;d<s.length;d++)c=this.view.getState(s[d]),l=null!=c?c.getVisibleTerminal(!0):this.view.getVisibleTerminal(s[d],!0),c=null!=c?c.getVisibleTerminal(!1):this.view.getVisibleTerminal(s[d],!1),(i&&l==c||l!=c&&(n&&c==e&&(null==t||this.isValidAncestor(l,t,o))||a&&l==e&&(null==t||this.isValidAncestor(c,t,o))))&&r.push(s[d]);return r},mxGraph.prototype.isValidAncestor=function(e,t,n){return n?this.model.isAncestor(t,e):this.model.getParent(e)==t},mxGraph.prototype.getOpposites=function(e,t,n,a){n=null==n||n,a=null==a||a;var i=[],o={};if(null!=e)for(var s=0;s<e.length;s++){var r=null!=(l=this.view.getState(e[s]))?l.getVisibleTerminal(!0):this.view.getVisibleTerminal(e[s],!0),l=null!=l?l.getVisibleTerminal(!1):this.view.getVisibleTerminal(e[s],!1);if(r==t&&null!=l&&l!=t&&a){var d=mxCellPath.create(l);null==o[d]&&(o[d]=l,i.push(l))}else l==t&&null!=r&&r!=t&&n&&(d=mxCellPath.create(r),null==o[d]&&(o[d]=r,i.push(r)))}return i},mxGraph.prototype.getEdgesBetween=function(e,t,n){n=null!=n&&n;for(var a=this.getEdges(e),i=[],o=0;o<a.length;o++){var s=null!=(r=this.view.getState(a[o]))?r.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[o],!0),r=null!=r?r.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[o],!1);(s==e&&r==t||!n&&s==t&&r==e)&&i.push(a[o])}return i},mxGraph.prototype.getPointForEvent=function(e,t){var n=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a=this.view.scale,i=this.view.translate,o=0!=t?this.gridSize/2:0;return n.x=this.snap(n.x/a-i.x-o),n.y=this.snap(n.y/a-i.y-o),n},mxGraph.prototype.getCells=function(e,t,n,a,i,o){if(o=null!=o?o:[],0<n||0<a){var s=e+n,r=t+a;if(null!=(i=i||this.getDefaultParent()))for(var l=this.model.getChildCount(i),d=0;d<l;d++){var c=this.model.getChildAt(i,d),m=this.view.getState(c);if(this.isCellVisible(c)&&null!=m){var u=m;0!=(m=mxUtils.getValue(m.style,mxConstants.STYLE_ROTATION)||0)&&(u=mxUtils.getBoundingBox(u,m)),u.x>=e&&u.y+u.height<=r&&u.y>=t&&u.x+u.width<=s?o.push(c):this.getCells(e,t,n,a,c,o)}}}return o},mxGraph.prototype.getCellsBeyond=function(e,t,n,a,i){var o=[];if((a||i)&&(null==n&&(n=this.getDefaultParent()),null!=n))for(var s=this.model.getChildCount(n),r=0;r<s;r++){var l=this.model.getChildAt(n,r),d=this.view.getState(l);this.isCellVisible(l)&&null!=d&&(!a||d.x>=e)&&(!i||d.y>=t)&&o.push(l)}return o},mxGraph.prototype.findTreeRoots=function(e,t,n){t=null!=t&&t,n=null!=n&&n;var a=[];if(null!=e){for(var i=this.getModel(),o=i.getChildCount(e),s=null,r=0,l=0;l<o;l++){var d=i.getChildAt(e,l);if(this.model.isVertex(d)&&this.isCellVisible(d)){for(var c=this.getConnections(d,t?e:null),m=0,u=0,p=0;p<c.length;p++)this.view.getVisibleTerminal(c[p],!0)==d?m++:u++;(n&&0==m&&0<u||!n&&0==u&&0<m)&&a.push(d),(c=n?u-m:m-u)>r&&(r=c,s=d)}}0==a.length&&null!=s&&a.push(s)}return a},mxGraph.prototype.traverse=function(e,t,n,a,i){if(null!=n&&null!=e){t=null==t||t,i=i||[];var o=mxCellPath.create(e);if(null==i[o]&&(i[o]=e,null==(a=n(e,a))||a)&&0<(a=this.model.getEdgeCount(e)))for(o=0;o<a;o++){var s=this.model.getEdgeAt(e,o),r=this.model.getTerminal(s,!0)==e;t&&!r||(r=this.model.getTerminal(s,!r),this.traverse(r,t,n,s,i))}}},mxGraph.prototype.isCellSelected=function(e){return this.getSelectionModel().isSelected(e)},mxGraph.prototype.isSelectionEmpty=function(){return this.getSelectionModel().isEmpty()},mxGraph.prototype.clearSelection=function(){return this.getSelectionModel().clear()},mxGraph.prototype.getSelectionCount=function(){return this.getSelectionModel().cells.length},mxGraph.prototype.getSelectionCell=function(){return this.getSelectionModel().cells[0]},mxGraph.prototype.getSelectionCells=function(){return this.getSelectionModel().cells.slice()},mxGraph.prototype.setSelectionCell=function(e){this.getSelectionModel().setCell(e)},mxGraph.prototype.setSelectionCells=function(e){this.getSelectionModel().setCells(e)},mxGraph.prototype.addSelectionCell=function(e){this.getSelectionModel().addCell(e)},mxGraph.prototype.addSelectionCells=function(e){this.getSelectionModel().addCells(e)},mxGraph.prototype.removeSelectionCell=function(e){this.getSelectionModel().removeCell(e)},mxGraph.prototype.removeSelectionCells=function(e){this.getSelectionModel().removeCells(e)},mxGraph.prototype.selectRegion=function(e,t){var n=this.getCells(e.x,e.y,e.width,e.height);return this.selectCellsForEvent(n,t),n},mxGraph.prototype.selectNextCell=function(){this.selectCell(!0)},mxGraph.prototype.selectPreviousCell=function(){this.selectCell()},mxGraph.prototype.selectParentCell=function(){this.selectCell(!1,!0)},mxGraph.prototype.selectChildCell=function(){this.selectCell(!1,!1,!0)},mxGraph.prototype.selectCell=function(e,t,n){var a=0<(i=this.selectionModel).cells.length?i.cells[0]:null;1<i.cells.length&&i.clear();var i=null!=a?this.model.getParent(a):this.getDefaultParent(),o=this.model.getChildCount(i);null==a&&0<o?(e=this.model.getChildAt(i,0),this.setSelectionCell(e)):null!=a&&!t||null==this.view.getState(i)||null==this.model.getGeometry(i)?null!=a&&n?0<this.model.getChildCount(a)&&(e=this.model.getChildAt(a,0),this.setSelectionCell(e)):0<o&&(t=i.getIndex(a),e?(t++,e=this.model.getChildAt(i,t%o)):(t--,e=this.model.getChildAt(i,0>t?o-1:t)),this.setSelectionCell(e)):this.getCurrentRoot()!=i&&this.setSelectionCell(i)},mxGraph.prototype.selectAll=function(e){e=e||this.getDefaultParent(),null!=(e=this.model.getChildren(e))&&this.setSelectionCells(e)},mxGraph.prototype.selectVertices=function(e){this.selectCells(!0,!1,e)},mxGraph.prototype.selectEdges=function(e){this.selectCells(!1,!0,e)},mxGraph.prototype.selectCells=function(e,t,n){n=n||this.getDefaultParent();var a=mxUtils.bind(this,function(n){return null!=this.view.getState(n)&&0==this.model.getChildCount(n)&&(this.model.isVertex(n)&&e||this.model.isEdge(n)&&t)});n=this.model.filterDescendants(a,n),this.setSelectionCells(n)},mxGraph.prototype.selectCellForEvent=function(e,t){var n=this.isCellSelected(e);this.isToggleEvent(t)?n?this.removeSelectionCell(e):this.addSelectionCell(e):(!n||1!=this.getSelectionCount())&&this.setSelectionCell(e)},mxGraph.prototype.selectCellsForEvent=function(e,t){this.isToggleEvent(t)?this.addSelectionCells(e):this.setSelectionCells(e)},mxGraph.prototype.createHandler=function(e){var t=null;return null!=e&&(this.model.isEdge(e.cell)?(t=this.view.getEdgeStyle(e),t=this.isLoop(e)||t==mxEdgeStyle.ElbowConnector||t==mxEdgeStyle.SideToSide||t==mxEdgeStyle.TopToBottom?new mxElbowEdgeHandler(e):t==mxEdgeStyle.SegmentConnector||t==mxEdgeStyle.OrthConnector?new mxEdgeSegmentHandler(e):new mxEdgeHandler(e)):t=new mxVertexHandler(e)),t},mxGraph.prototype.addMouseListener=function(e){null==this.mouseListeners&&(this.mouseListeners=[]),this.mouseListeners.push(e)},mxGraph.prototype.removeMouseListener=function(e){if(null!=this.mouseListeners)for(var t=0;t<this.mouseListeners.length;t++)if(this.mouseListeners[t]==e){this.mouseListeners.splice(t,1);break}},mxGraph.prototype.updateMouseEvent=function(e){if(null==e.graphX||null==e.graphY){var t=mxUtils.convertPoint(this.container,e.getX(),e.getY());e.graphX=t.x-this.panDx,e.graphY=t.y-this.panDy}},mxGraph.prototype.fireMouseEvent=function(e,t,n){if(null==n&&(n=this),this.updateMouseEvent(t),e==mxEvent.MOUSE_DOWN&&(this.isMouseDown=!0),mxClient.IS_TOUCH&&this.doubleTapEnabled&&e==mxEvent.MOUSE_DOWN){var a=(new Date).getTime();a-this.lastTouchTime<this.doubleTapTimeout&&Math.abs(this.lastTouchX-t.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-t.getY())<this.doubleTapTolerance?(this.lastTouchTime=0,this.dblClick(t.getEvent(),t.getCell()),t.getEvent().cancelBubble=!0):(this.lastTouchX=t.getX(),this.lastTouchY=t.getY(),this.lastTouchTime=a)}if(a=2!=t.getEvent().detail,mxClient.IS_IE&&"CSS1Compat"==document.compatMode&&((null!=this.lastMouseX&&Math.abs(this.lastMouseX-t.getX())>this.doubleTapTolerance||null!=this.lastMouseY&&Math.abs(this.lastMouseY-t.getY())>this.doubleTapTolerance)&&(a=!0),e==mxEvent.MOUSE_UP&&(this.lastMouseX=t.getX(),this.lastMouseY=t.getY())),(e!=mxEvent.MOUSE_UP||this.isMouseDown)&&a){if(e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1),!this.isEditing()&&(mxClient.IS_OP||mxClient.IS_SF||mxClient.IS_GC||mxClient.IS_IE&&mxClient.IS_SVG||t.getEvent().target!=this.container)){if(e==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&this.scrollPointToVisible(t.getGraphX(),t.getGraphY(),this.autoExtend),null!=this.mouseListeners)for(n=[n,t],t.getEvent().returnValue=!0,a=0;a<this.mouseListeners.length;a++){var i=this.mouseListeners[a];e==mxEvent.MOUSE_DOWN?i.mouseDown.apply(i,n):e==mxEvent.MOUSE_MOVE?i.mouseMove.apply(i,n):e==mxEvent.MOUSE_UP&&i.mouseUp.apply(i,n)}e==mxEvent.MOUSE_UP&&this.click(t)}}else e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1)},mxGraph.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tooltipHandler&&this.tooltipHandler.destroy(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.destroy(),null!=this.panningHandler&&this.panningHandler.destroy(),null!=this.connectionHandler&&this.connectionHandler.destroy(),null!=this.graphHandler&&this.graphHandler.destroy(),null!=this.cellEditor&&this.cellEditor.destroy(),null!=this.view&&this.view.destroy(),null!=this.model&&null!=this.graphModelChangeListener&&(this.model.removeListener(this.graphModelChangeListener),this.graphModelChangeListener=null),this.container=null)},mxCellOverlay.prototype=new mxEventSource,mxCellOverlay.prototype.constructor=mxCellOverlay,mxCellOverlay.prototype.image=null,mxCellOverlay.prototype.tooltip=null,mxCellOverlay.prototype.align=mxConstants.ALIGN_RIGHT,mxCellOverlay.prototype.verticalAlign=mxConstants.ALIGN_BOTTOM,mxCellOverlay.prototype.offset=null,mxCellOverlay.prototype.cursor=null,mxCellOverlay.prototype.defaultOverlap=.5,mxCellOverlay.prototype.getBounds=function(e){var t=e.view.graph.getModel().isEdge(e.cell),n=e.view.scale,a=null,i=this.image.width,o=this.image.height;return t?(t=e.absolutePoints,1==t.length%2?a=t[Math.floor(t.length/2)]:(a=t.length/2,e=t[a-1],t=t[a],a=new mxPoint(e.x+(t.x-e.x)/2,e.y+(t.y-e.y)/2))):(a=new mxPoint,a.x=this.align==mxConstants.ALIGN_LEFT?e.x:this.align==mxConstants.ALIGN_CENTER?e.x+e.width/2:e.x+e.width,a.y=this.verticalAlign==mxConstants.ALIGN_TOP?e.y:this.verticalAlign==mxConstants.ALIGN_MIDDLE?e.y+e.height/2:e.y+e.height),new mxRectangle(Math.round(a.x-(i*this.defaultOverlap-this.offset.x)*n),Math.round(a.y-(o*this.defaultOverlap-this.offset.y)*n),i*n,o*n)},mxCellOverlay.prototype.toString=function(){return this.tooltip},mxOutline.prototype.source=null,mxOutline.prototype.outline=null,mxOutline.prototype.graphRenderHint=mxConstants.RENDERING_HINT_FASTER,mxOutline.prototype.enabled=!0,mxOutline.prototype.showViewport=!0,mxOutline.prototype.border=10,mxOutline.prototype.sizerSize=8,mxOutline.prototype.updateOnPan=!1,mxOutline.prototype.sizerImage=null,mxOutline.prototype.suspended=!1,mxOutline.prototype.init=function(e){this.outline=new mxGraph(e,this.source.getModel(),this.graphRenderHint,this.source.getStylesheet()),this.outline.foldingEnabled=!1,this.outline.autoScroll=!1;var t=this.outline.graphModelChanged;this.outline.graphModelChanged=mxUtils.bind(this,function(e){!this.suspended&&null!=this.outline&&t.apply(this.outline,arguments)}),mxClient.IS_SVG&&((e=this.outline.getView().getCanvas().parentNode).setAttribute("shape-rendering","optimizeSpeed"),e.setAttribute("image-rendering","optimizeSpeed")),this.outline.labelsVisible=!1,this.outline.setEnabled(!1),this.updateHandler=mxUtils.bind(this,function(e,t){!this.suspended&&!this.active&&this.update()}),this.source.getModel().addListener(mxEvent.CHANGE,this.updateHandler),this.outline.addMouseListener(this),(e=this.source.getView()).addListener(mxEvent.SCALE,this.updateHandler),e.addListener(mxEvent.TRANSLATE,this.updateHandler),e.addListener(mxEvent.SCALE_AND_TRANSLATE,this.updateHandler),e.addListener(mxEvent.DOWN,this.updateHandler),e.addListener(mxEvent.UP,this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.panHandler=mxUtils.bind(this,function(e){this.updateOnPan&&this.updateHandler.apply(this,arguments)}),this.source.addListener(mxEvent.PAN,this.panHandler),this.refreshHandler=mxUtils.bind(this,function(e){this.outline.setStylesheet(this.source.getStylesheet()),this.outline.refresh()}),this.source.addListener(mxEvent.REFRESH,this.refreshHandler),this.bounds=new mxRectangle(0,0,0,0),this.selectionBorder=new mxRectangleShape(this.bounds,null,mxConstants.OUTLINE_COLOR,mxConstants.OUTLINE_STROKEWIDTH),this.selectionBorder.dialect=this.outline.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.init(this.outline.getView().getOverlayPane()),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.outline),this.selectionBorder.node.style.background="",this.sizer=this.createSizer(),this.sizer.init(this.outline.getView().getOverlayPane()),this.enabled&&(this.sizer.node.style.cursor="pointer"),mxEvent.addListener(this.sizer.node,mxClient.IS_TOUCH?"touchstart":"mousedown",mxUtils.bind(this,function(e){this.outline.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))})),this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display,this.selectionBorder.node.style.cursor="move",this.update(!1)},mxOutline.prototype.isEnabled=function(){return this.enabled},mxOutline.prototype.setEnabled=function(e){this.enabled=e},mxOutline.prototype.setZoomEnabled=function(e){this.sizer.node.style.visibility=e?"visible":"hidden"},mxOutline.prototype.refresh=function(){this.update(!0)},mxOutline.prototype.createSizer=function(){var e=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);return e.dialect=this.outline.dialect,e},mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)},mxOutline.prototype.getOutlineOffset=function(e){return null},mxOutline.prototype.update=function(e){if(null!=this.source){var t=this.source.view.scale,n=new mxRectangle((n=this.source.getGraphBounds()).x/t+this.source.panDx,n.y/t+this.source.panDy,n.width/t,n.height/t),a=new mxRectangle(0,0,this.source.container.clientWidth/t,this.source.container.clientHeight/t);(o=n.clone()).add(a);var i=this.getSourceContainerSize(),a=Math.max(i.width/t,o.width),t=Math.max(i.height/t,o.height),o=Math.max(0,this.outline.container.clientWidth-this.border),i=Math.max(0,this.outline.container.clientHeight-this.border);if(0<(o=Math.min(o/a,i/t))){this.outline.getView().scale!=o&&(this.outline.getView().scale=o,e=!0),(a=this.outline.getView()).currentRoot!=this.source.getView().currentRoot&&a.setCurrentRoot(this.source.getView().currentRoot);var i=(t=this.source.view.translate).x+this.source.panDx,s=t.y+this.source.panDy;null!=(o=this.getOutlineOffset(o))&&(i+=o.x,s+=o.y),0>n.x&&(i-=n.x),0>n.y&&(s-=n.y),a.translate.x==i&&a.translate.y==s||(a.translate.x=i,a.translate.y=s,e=!0);var n=a.translate,i=(o=this.source.getView().scale)/a.scale,s=1/a.scale,r=this.source.container;this.bounds=new mxRectangle((n.x-t.x-this.source.panDx)/s,(n.y-t.y-this.source.panDy)/s,r.clientWidth/i,r.clientHeight/i),this.bounds.x+=this.source.container.scrollLeft*a.scale/o,this.bounds.y+=this.source.container.scrollTop*a.scale/o,(n=this.selectionBorder.bounds).x==this.bounds.x&&n.y==this.bounds.y&&n.width==this.bounds.width&&n.height==this.bounds.height||(this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()),n=this.sizer.bounds,a=new mxRectangle(this.bounds.x+this.bounds.width-n.width/2,this.bounds.y+this.bounds.height-n.height/2,n.width,n.height),n.x==a.x&&n.y==a.y&&n.width==a.width&&n.height==a.height||(this.sizer.bounds=a,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw()),e&&this.outline.view.revalidate()}}},mxOutline.prototype.mouseDown=function(e,t){this.enabled&&this.showViewport&&(this.zoom=t.isSource(this.sizer),this.startX=t.getX(),this.startY=t.getY(),this.active=!0,this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0),t.consume()},mxOutline.prototype.mouseMove=function(e,t){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display;var n=t.getX()-this.startX,a=t.getY()-this.startY,i=null;if(this.zoom)i=this.source.container,a=n/(i.clientWidth/i.clientHeight),i=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+n),Math.max(1,this.bounds.height+a)),this.selectionBorder.bounds=i,this.selectionBorder.redraw();else{var o=this.outline.getView().scale,i=new mxRectangle(this.bounds.x+n,this.bounds.y+a,this.bounds.width,this.bounds.height);this.selectionBorder.bounds=i,this.selectionBorder.redraw(),n=n/o*this.source.getView().scale,a=a/o*this.source.getView().scale,this.source.panGraph(-n-this.dx0,-a-this.dy0)}n=this.sizer.bounds,this.sizer.bounds=new mxRectangle(i.x+i.width-n.width/2,i.y+i.height-n.height/2,n.width,n.height),"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw(),t.consume()}},mxOutline.prototype.mouseUp=function(e,t){if(this.active){var n=t.getX()-this.startX,a=t.getY()-this.startY;if(0<Math.abs(n)||0<Math.abs(a)){if(this.zoom){var a=this.selectionBorder.bounds.width,i=this.source.getView().scale;this.source.zoomTo(i-n*i/a,!1)}else this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)||(this.source.panGraph(0,0),n/=this.outline.getView().scale,a/=this.outline.getView().scale,i=this.source.getView().translate,this.source.getView().setTranslate(i.x-n,i.y-a));this.update(),t.consume()}this.index=null,this.active=!1}},mxOutline.prototype.destroy=function(){null!=this.source&&(this.source.removeListener(this.panHandler),this.source.removeListener(this.refreshHandler),this.source.getModel().removeListener(this.updateHandler),this.source.getView().removeListener(this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.source=null),null!=this.outline&&(this.outline.removeMouseListener(this),this.outline.destroy(),this.outline=null),null!=this.selectionBorder&&(this.selectionBorder.destroy(),this.selectionBorder=null),null!=this.sizer&&(this.sizer.destroy(),this.sizer=null)},mxMultiplicity.prototype.type=null,mxMultiplicity.prototype.attr=null,mxMultiplicity.prototype.value=null,mxMultiplicity.prototype.source=null,mxMultiplicity.prototype.min=null,mxMultiplicity.prototype.max=null,mxMultiplicity.prototype.validNeighbors=null,mxMultiplicity.prototype.validNeighborsAllowed=!0,mxMultiplicity.prototype.countError=null,mxMultiplicity.prototype.typeError=null,mxMultiplicity.prototype.check=function(e,t,n,a,i,o){var s="";return(this.source&&this.checkTerminal(e,n,t)||!this.source&&this.checkTerminal(e,a,t))&&(null!=this.countError&&(this.source&&(0==this.max||i>=this.max)||!this.source&&(0==this.max||o>=this.max))&&(s+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(e,t,n,a)||(s+=this.typeError+"\n"))),0<s.length?s:null},mxMultiplicity.prototype.checkNeighbors=function(e,t,n,a){t=e.model.getValue(n),a=e.model.getValue(a),n=!this.validNeighborsAllowed;for(var i=this.validNeighbors,o=0;o<i.length;o++){if(this.source&&this.checkType(e,a,i[o])){n=this.validNeighborsAllowed;break}if(!this.source&&this.checkType(e,t,i[o])){n=this.validNeighborsAllowed;break}}return n},mxMultiplicity.prototype.checkTerminal=function(e,t,n){return t=e.model.getValue(t),this.checkType(e,t,this.type,this.attr,this.value)},mxMultiplicity.prototype.checkType=function(e,t,n,a,i){return null!=t&&(isNaN(t.nodeType)?t==n:mxUtils.isNode(t,n,a,i))},mxLayoutManager.prototype=new mxEventSource,mxLayoutManager.prototype.constructor=mxLayoutManager,mxLayoutManager.prototype.graph=null,mxLayoutManager.prototype.bubbling=!0,mxLayoutManager.prototype.enabled=!0,mxLayoutManager.prototype.updateHandler=null,mxLayoutManager.prototype.moveHandler=null,mxLayoutManager.prototype.isEnabled=function(){return this.enabled},mxLayoutManager.prototype.setEnabled=function(e){this.enabled=e},mxLayoutManager.prototype.isBubbling=function(){return this.bubbling},mxLayoutManager.prototype.setBubbling=function(e){this.bubbling=e},mxLayoutManager.prototype.getGraph=function(){return this.graph},mxLayoutManager.prototype.setGraph=function(e){if(null!=this.graph){var t=this.graph.getModel();t.removeListener(this.undoHandler),this.graph.removeListener(this.moveHandler)}this.graph=e,null!=this.graph&&((t=this.graph.getModel()).addListener(mxEvent.BEFORE_UNDO,this.undoHandler),this.graph.addListener(mxEvent.MOVE_CELLS,this.moveHandler))},mxLayoutManager.prototype.getLayout=function(e){return null},mxLayoutManager.prototype.beforeUndo=function(e){e=this.getCellsForChanges(e.changes);var t=this.getGraph().getModel();if(this.isBubbling())for(var n=t.getParents(e);0<n.length;)e=e.concat(n),n=t.getParents(n);this.layoutCells(mxUtils.sortCells(e,!1))},mxLayoutManager.prototype.cellsMoved=function(e,t){if(null!=e&&null!=t)for(var n=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(t),mxEvent.getClientY(t)),a=this.getGraph().getModel(),i=0;i<e.length;i++){var o=this.getLayout(a.getParent(e[i]));null!=o&&o.moveCell(e[i],n.x,n.y)}},mxLayoutManager.prototype.getCellsForChanges=function(e){for(var t=[],n={},a=0;a<e.length;a++){if((i=e[a])instanceof mxRootChange)return[];for(var i=this.getCellsForChange(i),o=0;o<i.length;o++)if(null!=i[o]){var s=mxCellPath.create(i[o]);null==n[s]&&(n[s]=i[o],t.push(i[o]))}}return t},mxLayoutManager.prototype.getCellsForChange=function(e){var t=this.getGraph().getModel();return e instanceof mxChildChange?[e.child,e.previous,t.getParent(e.child)]:e instanceof mxTerminalChange||e instanceof mxGeometryChange?[e.cell,t.getParent(e.cell)]:[]},mxLayoutManager.prototype.layoutCells=function(e){if(0<e.length){var t=this.getGraph().getModel();t.beginUpdate();try{for(var n=null,a=0;a<e.length;a++)e[a]!=t.getRoot()&&e[a]!=n&&(n=e[a],this.executeLayout(this.getLayout(n),n));this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",e))}finally{t.endUpdate()}}},mxLayoutManager.prototype.executeLayout=function(e,t){null!=e&&null!=t&&e.execute(t)},mxLayoutManager.prototype.destroy=function(){this.setGraph(null)},mxSpaceManager.prototype=new mxEventSource,mxSpaceManager.prototype.constructor=mxSpaceManager,mxSpaceManager.prototype.graph=null,mxSpaceManager.prototype.enabled=!0,mxSpaceManager.prototype.shiftRightwards=!0,mxSpaceManager.prototype.shiftDownwards=!0,mxSpaceManager.prototype.extendParents=!0,mxSpaceManager.prototype.resizeHandler=null,mxSpaceManager.prototype.foldHandler=null,mxSpaceManager.prototype.isCellIgnored=function(e){return!this.getGraph().getModel().isVertex(e)},mxSpaceManager.prototype.isCellShiftable=function(e){return this.getGraph().getModel().isVertex(e)&&this.getGraph().isCellMovable(e)},mxSpaceManager.prototype.isEnabled=function(){return this.enabled},mxSpaceManager.prototype.setEnabled=function(e){this.enabled=e},mxSpaceManager.prototype.isShiftRightwards=function(){return this.shiftRightwards},mxSpaceManager.prototype.setShiftRightwards=function(e){this.shiftRightwards=e},mxSpaceManager.prototype.isShiftDownwards=function(){return this.shiftDownwards},mxSpaceManager.prototype.setShiftDownwards=function(e){this.shiftDownwards=e},mxSpaceManager.prototype.isExtendParents=function(){return this.extendParents},mxSpaceManager.prototype.setExtendParents=function(e){this.extendParents=e},mxSpaceManager.prototype.getGraph=function(){return this.graph},mxSpaceManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.resizeHandler),this.graph.removeListener(this.foldHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.RESIZE_CELLS,this.resizeHandler),this.graph.addListener(mxEvent.FOLD_CELLS,this.foldHandler))},mxSpaceManager.prototype.cellsResized=function(e){if(null!=e){var t=this.graph.getModel();t.beginUpdate();try{for(var n=0;n<e.length;n++)if(!this.isCellIgnored(e[n])){this.cellResized(e[n]);break}}finally{t.endUpdate()}}},mxSpaceManager.prototype.cellResized=function(e){var t=this.getGraph(),n=t.getView(),a=t.getModel(),i=n.getState(e),o=n.getState(a.getParent(e));if(null!=i&&null!=o){var s=this.getCellsToShift(i),r=a.getGeometry(e);if(null!=s&&null!=r){var l=n.translate,d=n.scale,n=i.x-o.origin.x-l.x*d,o=i.y-o.origin.y-l.y*d,l=i.x+i.width,c=i.y+i.height,m=i.width-r.width*d+n-r.x*d,u=i.height-r.height*d+o-r.y*d,p=1-r.width*d/i.width,i=1-r.height*d/i.height;a.beginUpdate();try{for(r=0;r<s.length;r++)s[r]!=e&&this.isCellShiftable(s[r])&&this.shiftCell(s[r],m,u,n,o,l,c,p,i,this.isExtendParents()&&t.isExtendParent(s[r]))}finally{a.endUpdate()}}}},mxSpaceManager.prototype.shiftCell=function(e,t,n,a,i,o,s,r,l,d){var c=(a=this.getGraph()).getView().getState(e);if(null!=c){var m=a.getModel(),u=m.getGeometry(e);if(null!=u){m.beginUpdate();try{if(this.isShiftRightwards())if(c.x>=o)(u=u.clone()).translate(-t,0);else{var p=Math.max(0,c.x-x0);(u=u.clone()).translate(-r*p,0)}if(this.isShiftDownwards())if(c.y>=s)(u=u.clone()).translate(0,-n);else{var g=Math.max(0,c.y-i);(u=u.clone()).translate(0,-l*g)}u!=m.getGeometry(e)&&(m.setGeometry(e,u),d&&a.extendParent(e))}finally{m.endUpdate()}}}},mxSpaceManager.prototype.getCellsToShift=function(e){var t=this.getGraph(),n=t.getModel().getParent(e.cell),a=this.isShiftDownwards(),i=this.isShiftRightwards();return t.getCellsBeyond(e.x+(a?0:e.width),e.y+(a&&i?0:e.height),n,i,a)},mxSpaceManager.prototype.destroy=function(){this.setGraph(null)},mxSwimlaneManager.prototype=new mxEventSource,mxSwimlaneManager.prototype.constructor=mxSwimlaneManager,mxSwimlaneManager.prototype.graph=null,mxSwimlaneManager.prototype.enabled=!0,mxSwimlaneManager.prototype.horizontal=!0,mxSwimlaneManager.prototype.addEnabled=!0,mxSwimlaneManager.prototype.resizeEnabled=!0,mxSwimlaneManager.prototype.addHandler=null,mxSwimlaneManager.prototype.resizeHandler=null,mxSwimlaneManager.prototype.isEnabled=function(){return this.enabled},mxSwimlaneManager.prototype.setEnabled=function(e){this.enabled=e},mxSwimlaneManager.prototype.isHorizontal=function(){return this.horizontal},mxSwimlaneManager.prototype.setHorizontal=function(e){this.horizontal=e},mxSwimlaneManager.prototype.isAddEnabled=function(){return this.addEnabled},mxSwimlaneManager.prototype.setAddEnabled=function(e){this.addEnabled=e},mxSwimlaneManager.prototype.isResizeEnabled=function(){return this.resizeEnabled},mxSwimlaneManager.prototype.setResizeEnabled=function(e){this.resizeEnabled=e},mxSwimlaneManager.prototype.getGraph=function(){return this.graph},mxSwimlaneManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.addHandler),this.graph.removeListener(this.resizeHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.ADD_CELLS,this.addHandler),this.graph.addListener(mxEvent.CELLS_RESIZED,this.resizeHandler))},mxSwimlaneManager.prototype.isSwimlaneIgnored=function(e){return!this.getGraph().isSwimlane(e)},mxSwimlaneManager.prototype.isCellHorizontal=function(e){if(this.graph.isSwimlane(e)){var t=this.graph.view.getState(e);return e=null!=t?t.style:this.graph.getCellStyle(e),1==mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,1)}return!this.isHorizontal()},mxSwimlaneManager.prototype.cellsAdded=function(e){if(null!=e){var t=this.getGraph().getModel();t.beginUpdate();try{for(var n=0;n<e.length;n++)this.isSwimlaneIgnored(e[n])||this.swimlaneAdded(e[n])}finally{t.endUpdate()}}},mxSwimlaneManager.prototype.swimlaneAdded=function(e){for(var t=this.getGraph().getModel(),n=t.getParent(e),a=t.getChildCount(n),i=null,o=0;o<a;o++){var s=t.getChildAt(n,o);if(s!=e&&!this.isSwimlaneIgnored(s)&&null!=(i=t.getGeometry(s)))break}null!=i&&this.resizeSwimlane(e,i.width,i.height)},mxSwimlaneManager.prototype.cellsResized=function(e){if(null!=e){var t=this.getGraph().getModel();t.beginUpdate();try{for(var n=0;n<e.length;n++)if(!this.isSwimlaneIgnored(e[n])){var a=t.getGeometry(e[n]);if(null!=a){for(var i=new mxRectangle(0,0,a.width,a.height),o=s=e[n];null!=o;){var s=o,o=t.getParent(o),r=this.graph.isSwimlane(o)?this.graph.getStartSize(o):new mxRectangle;i.width+=r.width,i.height+=r.height}this.resizeSwimlane(s,i.width,i.height)}}}finally{t.endUpdate()}}},mxSwimlaneManager.prototype.resizeSwimlane=function(e,t,n){var a=this.getGraph().getModel();a.beginUpdate();try{if(!this.isSwimlaneIgnored(e)&&null!=(r=a.getGeometry(e))){var i=this.isCellHorizontal(e);(i&&r.height!=n||!i&&r.width!=t)&&(r=r.clone(),i?r.height=n:r.width=t,a.setGeometry(e,r))}var o=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle;t-=o.width,n-=o.height;for(var s=a.getChildCount(e),r=0;r<s;r++){var l=a.getChildAt(e,r);this.resizeSwimlane(l,t,n)}}finally{a.endUpdate()}},mxSwimlaneManager.prototype.destroy=function(){this.setGraph(null)},mxTemporaryCellStates.prototype.view=null,mxTemporaryCellStates.prototype.oldStates=null,mxTemporaryCellStates.prototype.oldBounds=null,mxTemporaryCellStates.prototype.oldScale=null,mxTemporaryCellStates.prototype.destroy=function(){this.view.setScale(this.oldScale),this.view.setStates(this.oldStates),this.view.setGraphBounds(this.oldBounds)},mxCellStatePreview.prototype.graph=null,mxCellStatePreview.prototype.deltas=null,mxCellStatePreview.prototype.count=0,mxCellStatePreview.prototype.isEmpty=function(){return 0==this.count},mxCellStatePreview.prototype.moveState=function(e,t,n,a,i){a=null==a||a,i=null==i||i;var o=mxCellPath.create(e.cell),s=this.deltas[o];return null==s?(s=new mxPoint(t,n),this.deltas[o]=s,this.count++):a?(s.X+=t,s.Y+=n):(s.X=t,s.Y=n),i&&this.addEdges(e),s},mxCellStatePreview.prototype.show=function(e){var t,n=this.graph.getModel(),a=n.getRoot();for(t in this.deltas){var i=mxCellPath.resolve(a,t),o=this.graph.view.getState(i),s=this.deltas[t],i=this.graph.view.getState(n.getParent(i));this.translateState(i,o,s.x,s.y)}for(t in this.deltas)i=mxCellPath.resolve(a,t),o=this.graph.view.getState(i),s=this.deltas[t],i=this.graph.view.getState(n.getParent(i)),this.revalidateState(i,o,s.x,s.y,e)},mxCellStatePreview.prototype.translateState=function(e,t,n,a){if(null!=t){var i=this.graph.getModel();if(i.isVertex(t.cell)){t.invalid=!0,this.graph.view.validateBounds(e,t.cell),e=i.getGeometry(t.cell);var o=mxCellPath.create(t.cell);0==n&&0==a||null==e||e.relative&&null==this.deltas[o]||(t.x+=n,t.y+=a)}for(e=i.getChildCount(t.cell),o=0;o<e;o++)this.translateState(t,this.graph.view.getState(i.getChildAt(t.cell,o)),n,a)}},mxCellStatePreview.prototype.revalidateState=function(e,t,n,a,i){if(null!=t){t.invalid=!0,this.graph.view.validatePoints(e,t.cell);var o=mxCellPath.create(t.cell),s=this.graph.getModel(),r=this.graph.getCellGeometry(t.cell);for(0==n&&0==a||null==r||!r.relative||!s.isVertex(t.cell)||null!=e&&!s.isVertex(e.cell)&&null==this.deltas[o]||(t.x+=n,t.y+=a,this.graph.cellRenderer.redraw(t)),null!=i&&i(t),e=s.getChildCount(t.cell),o=0;o<e;o++)this.revalidateState(t,this.graph.view.getState(s.getChildAt(t.cell,o)),n,a,i)}},mxCellStatePreview.prototype.addEdges=function(e){for(var t=this.graph.getModel(),n=t.getEdgeCount(e.cell),a=0;a<n;a++){var i=this.graph.view.getState(t.getEdgeAt(e.cell,a));null!=i&&this.moveState(i,0,0)}},mxConnectionConstraint.prototype.point=null,mxConnectionConstraint.prototype.perimeter=null,mxGraphHandler.prototype.graph=null,mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50,mxGraphHandler.prototype.enabled=!0,mxGraphHandler.prototype.highlightEnabled=!0,mxGraphHandler.prototype.cloneEnabled=!0,mxGraphHandler.prototype.moveEnabled=!0,mxGraphHandler.prototype.guidesEnabled=!1,mxGraphHandler.prototype.guide=null,mxGraphHandler.prototype.currentDx=null,mxGraphHandler.prototype.currentDy=null,mxGraphHandler.prototype.updateCursor=!0,mxGraphHandler.prototype.selectEnabled=!0,mxGraphHandler.prototype.removeCellsFromParent=!0,mxGraphHandler.prototype.connectOnDrop=!1,mxGraphHandler.prototype.scrollOnMove=!0,mxGraphHandler.prototype.minimumSize=6,mxGraphHandler.prototype.previewColor="black",mxGraphHandler.prototype.htmlPreview=!1,mxGraphHandler.prototype.shape=null,mxGraphHandler.prototype.scaleGrid=!1,mxGraphHandler.prototype.rotationEnabled=!0,mxGraphHandler.prototype.isEnabled=function(){return this.enabled},mxGraphHandler.prototype.setEnabled=function(e){this.enabled=e},mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled},mxGraphHandler.prototype.setCloneEnabled=function(e){this.cloneEnabled=e},mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled},mxGraphHandler.prototype.setMoveEnabled=function(e){this.moveEnabled=e},mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled},mxGraphHandler.prototype.setSelectEnabled=function(e){this.selectEnabled=e},mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent},mxGraphHandler.prototype.setRemoveCellsFromParent=function(e){this.removeCellsFromParent=e},mxGraphHandler.prototype.getInitialCellForEvent=function(e){return e.getCell()},mxGraphHandler.prototype.isDelayedSelection=function(e){return this.graph.isCellSelected(e)},mxGraphHandler.prototype.mouseDown=function(e,t){if(!t.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(t.getEvent())&&null!=t.getState()){var n=this.getInitialCellForEvent(t);if(this.cell=null,this.delayedSelection=this.isDelayedSelection(n),this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(n,t.getEvent()),this.isMoveEnabled()){var a=this.graph.model,i=a.getGeometry(n);this.graph.isCellMovable(n)&&(!a.isEdge(n)||1<this.graph.getSelectionCount()||null!=i.points&&0<i.points.length||null==a.getTerminal(n,!0)||null==a.getTerminal(n,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(t.getEvent())&&this.graph.isCellsCloneable())&&this.start(n,t.getX(),t.getY()),this.cellWasClicked=!0,!mxClient.IS_SF&&!mxClient.IS_GC||"SELECT"!=t.getSource().nodeName?t.consume():mxClient.IS_SF&&"SELECT"==t.getSource().nodeName&&(this.cellWasClicked=!1,this.first=null)}}},mxGraphHandler.prototype.getGuideStates=function(){var e=this.graph.getDefaultParent(),t=this.graph.getModel(),n=mxUtils.bind(this,function(e){return null!=this.graph.view.getState(e)&&t.isVertex(e)&&null!=t.getGeometry(e)&&!t.getGeometry(e).relative});return this.graph.view.getCellStates(t.filterDescendants(n,e))},mxGraphHandler.prototype.getCells=function(e){return!this.delayedSelection&&this.graph.isCellMovable(e)?[e]:this.graph.getMovableCells(this.graph.getSelectionCells())},mxGraphHandler.prototype.getPreviewBounds=function(e){return null!=(e=this.getBoundingBox(e))&&(e.grow(-1,-1),e.width<this.minimumSize&&(e.x-=(this.minimumSize-e.width)/2,e.width=this.minimumSize),e.height<this.minimumSize&&(e.y-=(this.minimumSize-e.height)/2,e.height=this.minimumSize)),e},mxGraphHandler.prototype.getBoundingBox=function(e){var t=null;if(null!=e&&0<e.length)for(var n=this.graph.getModel(),a=0;a<e.length;a++)if(n.isVertex(e[a])||n.isEdge(e[a])){var i=this.graph.view.getState(e[a]);if(null!=i){var o=i;n.isVertex(e[a])&&null!=i.shape&&null!=i.shape.boundingBox&&(o=i.shape.boundingBox),null==t?t=new mxRectangle(o.x,o.y,o.width,o.height):t.add(o)}}return t},mxGraphHandler.prototype.createPreviewShape=function(e){return e=new mxRectangleShape(e,null,this.previewColor),e.isDashed=!0,this.htmlPreview?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.pointerEvents=!1),e},mxGraphHandler.prototype.start=function(e,t,n){this.cell=e,this.first=mxUtils.convertPoint(this.graph.container,t,n),this.cells=this.getCells(this.cell),this.bounds=this.graph.getView().getBounds(this.cells),this.pBounds=this.getPreviewBounds(this.cells),this.guidesEnabled&&(this.guide=new mxGuide(this.graph,this.getGuideStates()))},mxGraphHandler.prototype.useGuidesForEvent=function(e){return null==this.guide||this.guide.isEnabledForEvent(e.getEvent())},mxGraphHandler.prototype.snap=function(e){var t=this.scaleGrid?this.graph.view.scale:1;return e.x=this.graph.snap(e.x/t)*t,e.y=this.graph.snap(e.y/t)*t,e},mxGraphHandler.prototype.mouseMove=function(e,t){var n=this.graph;if(!t.isConsumed()&&n.isMouseDown&&null!=this.cell&&null!=this.first&&null!=this.bounds){var a=(o=mxUtils.convertPoint(n.container,t.getX(),t.getY())).x-this.first.x,i=o.y-this.first.y,o=n.tolerance;if(null!=this.shape||Math.abs(a)>o||Math.abs(i)>o){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3)),null==this.shape&&(this.shape=this.createPreviewShape(this.bounds));var s=n.isGridEnabledEvent(t.getEvent()),o=!0;if(null!=this.guide&&this.useGuidesForEvent(t))i=this.guide.move(this.bounds,new mxPoint(a,i),s),o=!1,a=i.x,i=i.y;else if(s)var r=n.getView().translate,l=n.getView().scale,s=this.bounds.x-(n.snap(this.bounds.x/l-r.x)+r.x)*l,r=this.bounds.y-(n.snap(this.bounds.y/l-r.y)+r.y)*l,i=this.snap(new mxPoint(a,i)),a=i.x-s,i=i.y-r;for(null!=this.guide&&o&&this.guide.hide(),n.isConstrainedEvent(t.getEvent())&&(Math.abs(a)>Math.abs(i)?i=0:a=0),this.currentDx=a,this.currentDy=i,this.updatePreviewShape(),o=null,i=t.getCell(),n.isDropEnabled()&&this.highlightEnabled&&(o=n.getDropTarget(this.cells,t.getEvent(),i)),s=o,r=n.getModel();null!=s&&s!=this.cells[0];)s=r.getParent(s);var l=n.isCloneEvent(t.getEvent())&&n.isCellsCloneable()&&this.isCloneEnabled(),d=!1;null==(a=n.getView().getState(o))||null!=s||r.getParent(this.cell)==o&&!l?(this.target=null,this.connectOnDrop&&null!=i&&1==this.cells.length&&n.getModel().isVertex(i)&&n.isCellConnectable(i)&&null!=(a=n.getView().getState(i))&&(n=null==n.getEdgeValidationError(null,this.cell,i)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(n),d=!0)):(this.target!=o&&(this.target=o,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),d=!0),null!=a&&d?this.highlight.highlight(a):this.highlight.hide()}t.consume(),mxEvent.consume(t.getEvent())}else!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||t.isConsumed()||null==t.getState()||n.isMouseDown||(null==(a=n.getCursorForCell(t.getCell()))&&n.isEnabled()&&n.isCellMovable(t.getCell())&&(a=n.getModel().isEdge(t.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),t.getState().setCursor(a),t.consume())},mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx-this.graph.panDx),Math.round(this.pBounds.y+this.currentDy-this.graph.panDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())},mxGraphHandler.prototype.setHighlightColor=function(e){null!=this.highlight&&this.highlight.setHighlightColor(e)},mxGraphHandler.prototype.mouseUp=function(e,t){if(!t.isConsumed()){var n=this.graph;if(null!=this.cell&&null!=this.first&&null!=this.shape&&null!=this.currentDx&&null!=this.currentDy){var a=n.getView().scale,i=n.isCloneEvent(t.getEvent())&&n.isCellsCloneable()&&this.isCloneEnabled(),o=this.currentDx/a,a=this.currentDy/a,s=t.getCell();this.connectOnDrop&&null==this.target&&null!=s&&n.getModel().isVertex(s)&&n.isCellConnectable(s)&&n.isEdgeValid(null,this.cell,s)?n.connectionHandler.connect(this.cell,s,t.getEvent()):(s=this.target,n.isSplitEnabled()&&n.isSplitTarget(s,this.cells,t.getEvent())?n.splitEdge(s,this.cells,null,o,a):this.moveCells(this.cells,o,a,i,this.target,t.getEvent()))}else this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(t)}this.cellWasClicked&&t.consume(),this.reset()},mxGraphHandler.prototype.selectDelayed=function(e){this.graph.selectCellForEvent(this.cell,e.getEvent())},mxGraphHandler.prototype.reset=function(){this.destroyShapes(),this.delayedSelection=this.cellWasClicked=!1,this.target=this.cell=this.first=this.guides=this.currentDy=this.currentDx=null},mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,t,n){if(this.graph.getModel().isVertex(e)){if(e=this.graph.getView().getState(e),n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(n),mxEvent.getClientY(n)),0!=(a=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))){t=Math.cos(-a);var a=Math.sin(-a),i=new mxPoint(e.getCenterX(),e.getCenterY());n=mxUtils.getRotatedPoint(n,t,a,i)}return null!=e&&!mxUtils.contains(e,n.x,n.y)}return!1},mxGraphHandler.prototype.moveCells=function(e,t,n,a,i,o){a&&(e=this.graph.getCloneableCells(e)),null==i&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell),e,o)&&(i=this.graph.getDefaultParent()),e=this.graph.moveCells(e,t-this.graph.panDx/this.graph.view.scale,n-this.graph.panDy/this.graph.view.scale,a,i,o),this.isSelectEnabled()&&this.scrollOnMove&&this.graph.scrollCellToVisible(e[0]),a&&this.graph.setSelectionCells(e)},mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.guide&&(this.guide.destroy(),this.guide=null),null!=this.highlight&&(this.highlight.destroy(),this.highlight=null)},mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.destroyShapes()},mxPanningHandler.prototype=new mxPopupMenu,mxPanningHandler.prototype.constructor=mxPanningHandler,mxPanningHandler.prototype.graph=null,mxPanningHandler.prototype.triggerX=null,mxPanningHandler.prototype.triggerY=null,mxPanningHandler.prototype.usePopupTrigger=!0,mxPanningHandler.prototype.useLeftButtonForPanning=!1,mxPanningHandler.prototype.selectOnPopup=!0,mxPanningHandler.prototype.clearSelectionOnBackground=!0,mxPanningHandler.prototype.ignoreCell=!1,mxPanningHandler.prototype.previewEnabled=!0,mxPanningHandler.prototype.useGrid=!1,mxPanningHandler.prototype.panningEnabled=!0,mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled},mxPanningHandler.prototype.setPanningEnabled=function(e){this.panningEnabled=e},mxPanningHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this),mxEvent.addListener(this.div,mxClient.IS_TOUCH?"touchmove":"mousemove",mxUtils.bind(this,function(e){this.graph.tooltipHandler.hide()}))},mxPanningHandler.prototype.isPanningTrigger=function(e){var t=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())&&mxEvent.isLeftMouseButton(t)||mxEvent.isControlDown(t)&&mxEvent.isShiftDown(t)||this.usePopupTrigger&&mxEvent.isPopupTrigger(t)},mxPanningHandler.prototype.mouseDown=function(e,t){if(!t.isConsumed()&&this.isEnabled()){this.hideMenu(),this.dx0=-this.graph.container.scrollLeft,this.dy0=-this.graph.container.scrollTop;var n=mxUtils.convertPoint(this.graph.container,t.getX(),t.getY());this.triggerX=n.x,this.triggerY=n.y,this.popupTrigger=this.isPopupTrigger(t),this.panningTrigger=this.isPanningEnabled()&&this.isPanningTrigger(t),this.startX=t.getX(),this.startY=t.getY(),this.panningTrigger&&this.consumePanningTrigger(t)}},mxPanningHandler.prototype.consumePanningTrigger=function(e){e.consume()},mxPanningHandler.prototype.mouseMove=function(e,t){var n=t.getX()-this.startX,a=t.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(n=this.graph.snap(n),a=this.graph.snap(a)),this.graph.panGraph(n+this.dx0,a+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",t)),t.consume();else if(this.panningTrigger){var i=this.active;this.active=Math.abs(n)>this.graph.tolerance||Math.abs(a)>this.graph.tolerance,!i&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",t))}},mxPanningHandler.prototype.mouseUp=function(e,t){var n=Math.abs(t.getX()-this.startX),a=Math.abs(t.getY()-this.startY);if(this.active){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){n=t.getX()-this.startX,a=t.getY()-this.startY,this.useGrid&&(n=this.graph.snap(n),a=this.graph.snap(a));var i=this.graph.getView().scale,o=this.graph.getView().translate;this.graph.panGraph(0,0),this.panGraph(o.x+n/i,o.y+a/i)}this.active=!1,this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",t)),t.consume()}else this.popupTrigger&&n<this.graph.tolerance&&a<this.graph.tolerance&&(n=this.getCellForPopupEvent(t),this.graph.isEnabled()&&this.selectOnPopup&&null!=n&&!this.graph.isCellSelected(n)?this.graph.setSelectionCell(n):this.clearSelectionOnBackground&&null==n&&this.graph.clearSelection(),this.graph.tooltipHandler.hide(),a=mxUtils.getScrollOrigin(),a=new mxPoint(t.getX()+a.x,t.getY()+a.y),this.popup(a.x+1,a.y+1,n,t.getEvent()),t.consume());this.popupTrigger=this.panningTrigger=!1},mxPanningHandler.prototype.getCellForPopupEvent=function(e){return e.getCell()},mxPanningHandler.prototype.panGraph=function(e,t){this.graph.getView().setTranslate(e,t)},mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxPopupMenu.prototype.destroy.apply(this)},mxUtils.extend(mxCellMarker,mxEventSource),mxCellMarker.prototype.graph=null,mxCellMarker.prototype.enabled=!0,mxCellMarker.prototype.hotspot=mxConstants.DEFAULT_HOTSPOT,mxCellMarker.prototype.hotspotEnabled=!1,mxCellMarker.prototype.validColor=null,mxCellMarker.prototype.invalidColor=null,mxCellMarker.prototype.currentColor=null,mxCellMarker.prototype.validState=null,mxCellMarker.prototype.markedState=null,mxCellMarker.prototype.setEnabled=function(e){this.enabled=e},mxCellMarker.prototype.isEnabled=function(){return this.enabled},mxCellMarker.prototype.setHotspot=function(e){this.hotspot=e},mxCellMarker.prototype.getHotspot=function(){return this.hotspot},mxCellMarker.prototype.setHotspotEnabled=function(e){this.hotspotEnabled=e},mxCellMarker.prototype.isHotspotEnabled=function(){return this.hotspotEnabled},mxCellMarker.prototype.hasValidState=function(){return null!=this.validState},mxCellMarker.prototype.getValidState=function(){return this.validState},mxCellMarker.prototype.getMarkedState=function(){return this.markedState},mxCellMarker.prototype.reset=function(){this.validState=null,null!=this.markedState&&(this.markedState=null,this.unmark())},mxCellMarker.prototype.process=function(e){var t=null;if(this.isEnabled()){var n=null!=(t=this.getState(e))&&this.isValidState(t);e=this.getMarkerColor(e.getEvent(),t,n),this.validState=n?t:null,t==this.markedState&&e==this.currentColor||(this.currentColor=e,null!=t&&null!=this.currentColor?(this.markedState=t,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark()))}return t},mxCellMarker.prototype.markCell=function(e,t){var n=this.graph.getView().getState(e);null!=n&&(this.currentColor=null!=t?t:this.validColor,this.markedState=n,this.mark())},mxCellMarker.prototype.mark=function(){this.highlight.setHighlightColor(this.currentColor),this.highlight.highlight(this.markedState),this.fireEvent(new mxEventObject(mxEvent.MARK,"state",this.markedState))},mxCellMarker.prototype.unmark=function(){this.mark()},mxCellMarker.prototype.isValidState=function(e){return!0},mxCellMarker.prototype.getMarkerColor=function(e,t,n){return n?this.validColor:this.invalidColor},mxCellMarker.prototype.getState=function(e){var t=this.graph.getView();return cell=this.getCell(e),t=this.getStateToMark(t.getState(cell)),null!=t&&this.intersects(t,e)?t:null},mxCellMarker.prototype.getCell=function(e){return e.getCell()},mxCellMarker.prototype.getStateToMark=function(e){return e},mxCellMarker.prototype.intersects=function(e,t){return!this.hotspotEnabled||mxUtils.intersectsHotspot(e,t.getGraphX(),t.getGraphY(),this.hotspot,mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE)},mxCellMarker.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),this.highlight.destroy()},mxUtils.extend(mxSelectionCellsHandler,mxEventSource),mxSelectionCellsHandler.prototype.graph=null,mxSelectionCellsHandler.prototype.enabled=!0,mxSelectionCellsHandler.prototype.refreshHandler=null,mxSelectionCellsHandler.prototype.maxHandlers=100,mxSelectionCellsHandler.prototype.handlers=null,mxSelectionCellsHandler.prototype.isEnabled=function(){return this.enabled},mxSelectionCellsHandler.prototype.setEnabled=function(e){this.enabled=e},mxSelectionCellsHandler.prototype.getHandler=function(e){return this.handlers.get(e)},mxSelectionCellsHandler.prototype.reset=function(){this.handlers.visit(function(e,t){t.reset.apply(t)})},mxSelectionCellsHandler.prototype.refresh=function(){var e=this.handlers;this.handlers=new mxDictionary;for(var t=this.graph.getSelectionCells(),n=0;n<t.length;n++){var a=this.graph.view.getState(t[n]);if(null!=a){var i=e.remove(t[n]);null!=i&&(i.state!=a?(i.destroy(),i=null):i.redraw()),null==i&&(i=this.graph.createHandler(a),this.fireEvent(new mxEventObject(mxEvent.ADD,"state",a))),null!=i&&this.handlers.put(t[n],i)}}e.visit(mxUtils.bind(this,function(e,t){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",t.state)),t.destroy()}))},mxSelectionCellsHandler.prototype.mouseDown=function(e,t){if(this.graph.isEnabled()&&this.isEnabled()){var n=[e,t];this.handlers.visit(function(e,t){t.mouseDown.apply(t,n)})}},mxSelectionCellsHandler.prototype.mouseMove=function(e,t){if(this.graph.isEnabled()&&this.isEnabled()){var n=[e,t];this.handlers.visit(function(e,t){t.mouseMove.apply(t,n)})}},mxSelectionCellsHandler.prototype.mouseUp=function(e,t){if(this.graph.isEnabled()&&this.isEnabled()){var n=[e,t];this.handlers.visit(function(e,t){t.mouseUp.apply(t,n)})}},mxSelectionCellsHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.refreshHandler&&(this.graph.getSelectionModel().removeListener(this.refreshHandler),this.graph.getModel().removeListener(this.refreshHandler),this.graph.getView().removeListener(this.refreshHandler),this.refreshHandler=null)},mxUtils.extend(mxConnectionHandler,mxEventSource),mxConnectionHandler.prototype.graph=null,mxConnectionHandler.prototype.factoryMethod=!0,mxConnectionHandler.prototype.moveIconFront=!1,mxConnectionHandler.prototype.moveIconBack=!1,mxConnectionHandler.prototype.connectImage=null,mxConnectionHandler.prototype.targetConnectImage=!1,mxConnectionHandler.prototype.enabled=!0,mxConnectionHandler.prototype.select=!0,mxConnectionHandler.prototype.createTarget=!1;mxConnectionHandler.prototype.marker=null,mxConnectionHandler.prototype.constraintHandler=null,mxConnectionHandler.prototype.error=null,mxConnectionHandler.prototype.waypointsEnabled=!1,mxConnectionHandler.prototype.tapAndHoldEnabled=!0,mxConnectionHandler.prototype.tapAndHoldDelay=500,mxConnectionHandler.prototype.tapAndHoldInProgress=!1,mxConnectionHandler.prototype.tapAndHoldValid=!1,mxConnectionHandler.prototype.tapAndHoldTolerance=4,mxConnectionHandler.prototype.initialTouchX=0,mxConnectionHandler.prototype.initialTouchY=0,mxConnectionHandler.prototype.ignoreMouseDown=!1,mxConnectionHandler.prototype.first=null,mxConnectionHandler.prototype.connectIconOffset=new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET),mxConnectionHandler.prototype.edgeState=null,mxConnectionHandler.prototype.changeHandler=null,mxConnectionHandler.prototype.drillHandler=null,mxConnectionHandler.prototype.mouseDownCounter=0,mxConnectionHandler.prototype.movePreviewAway=mxClient.IS_VML,mxConnectionHandler.prototype.isEnabled=function(){return this.enabled},mxConnectionHandler.prototype.setEnabled=function(e){this.enabled=e},mxConnectionHandler.prototype.isCreateTarget=function(){return this.createTarget},mxConnectionHandler.prototype.setCreateTarget=function(e){this.createTarget=e},mxConnectionHandler.prototype.createShape=function(){var e=new mxPolyline([],mxConstants.INVALID_COLOR);if(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=!0,this.graph.dialect==mxConstants.DIALECT_SVG)e.node.setAttribute("pointer-events","none");else{var t=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(e.node,this.graph,t)}return e},mxConnectionHandler.prototype.init=function(){this.graph.addMouseListener(this),this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.changeHandler=mxUtils.bind(this,function(e){null!=this.iconState&&(this.iconState=this.graph.getView().getState(this.iconState.cell)),null!=this.iconState?this.redrawIcons(this.icons,this.iconState):(this.destroyIcons(this.icons),this.previous=null),this.constraintHandler.reset()}),this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE,this.changeHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.changeHandler),this.drillHandler=mxUtils.bind(this,function(e){this.destroyIcons(this.icons)}),this.graph.addListener(mxEvent.START_EDITING,this.drillHandler),this.graph.getView().addListener(mxEvent.DOWN,this.drillHandler),this.graph.getView().addListener(mxEvent.UP,this.drillHandler)},mxConnectionHandler.prototype.isConnectableCell=function(e){return!0},mxConnectionHandler.prototype.createMarker=function(){var e=new mxCellMarker(this.graph);return e.hotspotEnabled=!0,e.getCell=mxUtils.bind(this,function(t,n){return n=mxCellMarker.prototype.getCell.apply(e,arguments),this.error=null,this.isConnectableCell(n)?(null!=n?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,n),null!=this.error&&0==this.error.length&&(n=null,this.isCreateTarget()&&(this.error=null))):this.isValidSource(n)||(n=null):this.isConnecting()&&!this.isCreateTarget()&&!this.graph.allowDanglingEdges&&(this.error=""),n):null}),e.isValidState=mxUtils.bind(this,function(t){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(e,arguments)}),e.getMarkerColor=mxUtils.bind(this,function(t,n,a){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(e,arguments):null}),e.intersects=mxUtils.bind(this,function(t,n){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(e,arguments)}),e},mxConnectionHandler.prototype.start=function(e,t,n,a){this.previous=e,this.first=new mxPoint(t,n),this.edgeState=null!=a?a:this.createEdgeState(null),this.marker.currentColor=this.marker.validColor,this.marker.markedState=e,this.marker.mark(),this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous))},mxConnectionHandler.prototype.isConnecting=function(){return null!=this.first&&null!=this.shape},mxConnectionHandler.prototype.isValidSource=function(e){return this.graph.isValidSource(e)},mxConnectionHandler.prototype.isValidTarget=function(e){return!0},mxConnectionHandler.prototype.validateConnection=function(e,t){return this.isValidTarget(t)?this.graph.getEdgeValidationError(null,e,t):""},mxConnectionHandler.prototype.getConnectImage=function(e){return this.connectImage},mxConnectionHandler.prototype.isMoveIconToFrontForState=function(e){return null!=e.text&&e.text.node.parentNode==this.graph.container||this.moveIconFront},mxConnectionHandler.prototype.createIcons=function(e){if(null!=(i=this.getConnectImage(e))&&null!=e){this.iconState=e;var t=[],n=new mxImageShape(new mxRectangle(0,0,i.width,i.height),i.src,null,null,0);n.preserveImageAspect=!1,this.isMoveIconToFrontForState(e)?(n.dialect=mxConstants.DIALECT_STRICTHTML,n.init(this.graph.container)):(n.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,n.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=n.node.previousSibling&&n.node.parentNode.insertBefore(n.node,n.node.parentNode.firstChild)),n.node.style.cursor=mxConstants.CURSOR_CONNECT;var a=mxUtils.bind(this,function(){return null!=this.currentState?this.currentState:e}),i=mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(this.icon=n,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,a())))});return mxEvent.redirectMouseEvents(n.node,this.graph,a,i),t.push(n),this.redrawIcons(t,this.iconState),t}return null},mxConnectionHandler.prototype.redrawIcons=function(e,t){if(null!=e&&null!=e[0]&&null!=t){var n=this.getIconPosition(e[0],t);e[0].bounds.x=n.x,e[0].bounds.y=n.y,e[0].redraw()}},mxConnectionHandler.prototype.getIconPosition=function(e,t){var n=this.graph.getView().scale,a=t.getCenterX(),i=t.getCenterY();if(this.graph.isSwimlane(t.cell)){var a=0!=(o=this.graph.getStartSize(t.cell)).width?t.x+o.width*n/2:a,i=0!=o.height?t.y+o.height*n/2:i;if(0!=(o=mxUtils.toRadians(mxUtils.getValue(t.style,mxConstants.STYLE_ROTATION)||0)))var n=Math.cos(o),o=Math.sin(o),s=new mxPoint(t.getCenterX(),t.getCenterY()),i=mxUtils.getRotatedPoint(new mxPoint(a,i),n,o,s),a=i.x,i=i.y}return new mxPoint(a-e.bounds.width/2,i-e.bounds.height/2)},mxConnectionHandler.prototype.destroyIcons=function(e){if(null!=e){this.iconState=null;for(var t=0;t<e.length;t++)e[t].destroy()}},mxConnectionHandler.prototype.isStartEvent=function(e){return!this.graph.isForceMarqueeEvent(e.getEvent())&&(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint||null!=this.previous&&null==this.error&&(null==this.icons||null!=this.icons&&null!=this.icon))},mxConnectionHandler.prototype.mouseDown=function(e,t){if(this.mouseDownCounter++,this.isEnabled()&&this.graph.isEnabled()&&!t.isConsumed()&&!this.isConnecting()&&this.isStartEvent(t)){if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(this.sourceConstraint=this.constraintHandler.currentConstraint,this.previous=this.constraintHandler.currentFocus,this.first=this.constraintHandler.currentPoint.clone()):this.first=new mxPoint(t.getGraphX(),t.getGraphY()),this.edgeState=this.createEdgeState(t),this.mouseDownCounter=1,this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape()),null==this.previous&&null!=this.edgeState){var n=this.graph.getPointForEvent(t.getEvent());this.edgeState.cell.geometry.setTerminalPoint(n,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)),t.consume()}else if(mxClient.IS_TOUCH&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress&&this.isEnabled()&&this.graph.isEnabled()&&!this.isConnecting()){this.tapAndHoldInProgress=!0,this.initialTouchX=t.getX(),this.initialTouchY=t.getY();var a=this.graph.view.getState(this.marker.getCell(t));this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,function(){this.tapAndHoldValid&&this.tapAndHold(t,a),this.tapAndHoldValid=this.tapAndHoldInProgress=!1}),this.tapAndHoldDelay),this.tapAndHoldValid=!0}this.selectedIcon=this.icon,this.icon=null},mxConnectionHandler.prototype.tapAndHold=function(e,t){null!=t&&(this.marker.currentColor=this.marker.validColor,this.marker.markedState=t,this.marker.mark(),this.first=new mxPoint(e.getGraphX(),e.getGraphY()),this.edgeState=this.createEdgeState(e),this.previous=t,this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)))},mxConnectionHandler.prototype.isImmediateConnectSource=function(e){return!this.graph.isCellMovable(e.cell)},mxConnectionHandler.prototype.createEdgeState=function(e){return null},mxConnectionHandler.prototype.updateCurrentState=function(e){var t=this.marker.process(e);this.constraintHandler.update(e,null==this.first),this.currentState=t},mxConnectionHandler.prototype.convertWaypoint=function(e){var t=this.graph.getView().getScale(),n=this.graph.getView().getTranslate();e.x=e.x/t-n.x,e.y=e.y/t-n.y},mxConnectionHandler.prototype.mouseMove=function(e,t){if(this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-t.getX())<this.tapAndHoldTolerance&&Math.abs(this.initialTouchY-t.getY())<this.tapAndHoldTolerance),t.isConsumed()||!this.ignoreMouseDown&&null==this.first&&this.graph.isMouseDown)this.constraintHandler.reset();else{if(!this.isEnabled()&&null!=this.currentState&&(this.destroyIcons(this.icons),this.currentState=null),(null!=this.first||this.isEnabled()&&this.graph.isEnabled())&&this.updateCurrentState(t),null!=this.first){var n=this.graph.getView().scale,a=null,i=n=new mxPoint(this.graph.snap(t.getGraphX()/n)*n,this.graph.snap(t.getGraphY()/n)*n);null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint&&(a=this.constraintHandler.currentConstraint,i=this.constraintHandler.currentPoint.clone());var o=this.first;if(null!=this.selectedIcon){var s=this.selectedIcon.bounds.width,r=this.selectedIcon.bounds.height;null!=this.currentState&&this.targetConnectImage?(s=this.getIconPosition(this.selectedIcon,this.currentState),this.selectedIcon.bounds.x=s.x,this.selectedIcon.bounds.y=s.y):(s=new mxRectangle(t.getGraphX()+this.connectIconOffset.x,t.getGraphY()+this.connectIconOffset.y,s,r),this.selectedIcon.bounds=s),this.selectedIcon.redraw()}if(null!=this.edgeState){if(this.edgeState.absolutePoints=[null,null!=this.currentState?null:i],this.graph.view.updateFixedTerminalPoint(this.edgeState,this.previous,!0,this.sourceConstraint),null!=this.currentState&&(null==a&&(a=this.graph.getConnectionConstraint(this.edgeState,this.previous,!1)),this.edgeState.setAbsoluteTerminalPoint(null,!1),this.graph.view.updateFixedTerminalPoint(this.edgeState,this.currentState,!1,a)),o=null,null!=this.waypoints)for(o=[],i=0;i<this.waypoints.length;i++)a=this.waypoints[i].clone(),this.convertWaypoint(a),o[i]=a;this.graph.view.updatePoints(this.edgeState,o,this.previous,this.currentState),this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState),i=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],o=this.edgeState.absolutePoints[0]}else null!=this.currentState&&null==this.constraintHandler.currentConstraint&&null!=(s=this.getTargetPerimeterPoint(this.currentState,t))&&(i=s),null==this.sourceConstraint&&null!=this.previous&&null!=(s=this.getSourcePerimeterPoint(this.previous,null!=this.waypoints&&0<this.waypoints.length?this.waypoints[0]:i,t))&&(o=s);if(null==this.currentState&&this.movePreviewAway){if(s=o,null!=this.edgeState&&2<this.edgeState.absolutePoints.length&&null!=(a=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2])&&(s=a),a=i.x-s.x,s=i.y-s.y,0==(r=Math.sqrt(a*a+s*s)))return;i.x-=4*a/r,i.y-=4*s/r}null==this.shape&&(a=Math.abs(n.x-this.first.x),s=Math.abs(n.y-this.first.y),a>this.graph.tolerance||s>this.graph.tolerance)&&(this.shape=this.createShape(),this.updateCurrentState(t)),null!=this.shape&&(null!=this.edgeState?this.shape.points=this.edgeState.absolutePoints:(n=[o],null!=this.waypoints&&(n=n.concat(this.waypoints)),n.push(i),this.shape.points=n),this.drawPreview()),mxEvent.consume(t.getEvent()),t.consume()}else this.isEnabled()&&this.graph.isEnabled()?this.previous!=this.currentState&&null==this.edgeState?(this.destroyIcons(this.icons),this.icons=null,null!=this.currentState&&null==this.error&&(this.icons=this.createIcons(this.currentState),null==this.icons&&(this.currentState.setCursor(mxConstants.CURSOR_CONNECT),t.consume())),this.previous=this.currentState):this.previous==this.currentState&&null!=this.currentState&&null==this.icons&&!this.graph.isMouseDown&&t.consume():this.constraintHandler.reset();if(null!=this.constraintHandler.currentConstraint&&this.marker.reset(),!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){for(n=!1,o=t.getSource(),i=0;i<this.icons.length&&!n;i++)n=o==this.icons[i].node||o.parentNode==this.icons[i].node;n||this.updateIcons(this.currentState,this.icons,t)}}},mxConnectionHandler.prototype.getTargetPerimeterPoint=function(e,t){var n=null,a=e.view,i=a.getPerimeterFunction(e);if(null!=i){var o=null!=this.waypoints&&0<this.waypoints.length?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());null!=(a=i(a.getPerimeterBounds(e),this.edgeState,o,!1))&&(n=a)}else n=new mxPoint(e.getCenterX(),e.getCenterY());return n},mxConnectionHandler.prototype.getSourcePerimeterPoint=function(e,t,n){n=null;var a=e.view,i=a.getPerimeterFunction(e),o=new mxPoint(e.getCenterX(),e.getCenterY());if(null!=i){var s=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),r=-s*(Math.PI/180);0!=s&&(t=mxUtils.getRotatedPoint(new mxPoint(t.x,t.y),Math.cos(r),Math.sin(r),o)),null!=(e=i(a.getPerimeterBounds(e),e,t,!1))&&(0!=s&&(e=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(-r),Math.sin(-r),o)),n=e)}else n=o;return n},mxConnectionHandler.prototype.updateIcons=function(e,t,n){},mxConnectionHandler.prototype.isStopEvent=function(e){return null!=e.getState()},mxConnectionHandler.prototype.addWaypointForEvent=function(e){var t=mxUtils.convertPoint(this.graph.container,e.getX(),e.getY()),n=Math.abs(t.x-this.first.x),t=Math.abs(t.y-this.first.y);(null!=this.waypoints||1<this.mouseDownCounter&&(n>this.graph.tolerance||t>this.graph.tolerance))&&(null==this.waypoints&&(this.waypoints=[]),n=this.graph.view.scale,t=new mxPoint(this.graph.snap(e.getGraphX()/n)*n,this.graph.snap(e.getGraphY()/n)*n),this.waypoints.push(t))},mxConnectionHandler.prototype.mouseUp=function(e,t){if(!t.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(t))return this.addWaypointForEvent(t),void t.consume();if(null==this.error){var n=null!=this.previous?this.previous.cell:null,a=null;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),this.connect(n,a,t.getEvent(),t.getCell())}else null!=this.previous&&null!=this.marker.validState&&this.previous.cell==this.marker.validState.cell&&this.graph.selectCellForEvent(this.marker.source,evt),0<this.error.length&&this.graph.validationAlert(this.error);this.destroyIcons(this.icons),t.consume()}null!=this.first&&this.reset(),this.tapAndHoldValid=this.tapAndHoldInProgress=!1},mxConnectionHandler.prototype.reset=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),this.destroyIcons(this.icons),this.icons=null,this.marker.reset(),this.constraintHandler.reset(),this.sourceConstraint=this.error=this.previous=this.edgeState=this.selectedIcon=null,this.mouseDownCounter=0,this.icon=this.first=null,this.fireEvent(new mxEventObject(mxEvent.RESET))},mxConnectionHandler.prototype.drawPreview=function(){var e=null==this.error;this.shape.strokewidth=this.getEdgeWidth(e),e=this.getEdgeColor(e),this.shape.stroke=e,this.shape.redraw()},mxConnectionHandler.prototype.getEdgeColor=function(e){return e?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR},mxConnectionHandler.prototype.getEdgeWidth=function(e){return e?3:1},mxConnectionHandler.prototype.connect=function(e,t,n,a){if(null!=t||this.isCreateTarget()||this.graph.allowDanglingEdges){var i=this.graph.getModel(),o=null;i.beginUpdate();try{if(null!=e&&null==t&&this.isCreateTarget()&&null!=(t=this.createTargetVertex(n,e))){if(null!=(a=this.graph.getDropTarget([t],n,a))&&this.graph.getModel().isEdge(a))a=this.graph.getDefaultParent();else{var s=this.graph.getView().getState(a);if(null!=s){var r=i.getGeometry(t);r.x-=s.origin.x,r.y-=s.origin.y}}this.graph.addCell(t,a)}var l=this.graph.getDefaultParent();if(null!=e&&null!=t&&i.getParent(e)==i.getParent(t)&&i.getParent(i.getParent(e))!=i.getRoot()&&(l=i.getParent(e),null!=e.geometry&&e.geometry.relative&&null!=t.geometry&&t.geometry.relative&&(l=i.getParent(l))),r=s=null,null!=this.edgeState&&(s=this.edgeState.cell.value,r=this.edgeState.cell.style),null!=(o=this.insertEdge(l,null,s,e,t,r))){this.graph.setConnectionConstraint(o,e,!0,this.sourceConstraint),this.graph.setConnectionConstraint(o,t,!1,this.constraintHandler.currentConstraint),null!=this.edgeState&&i.setGeometry(o,this.edgeState.cell.geometry);var d=i.getGeometry(o);if(null==d&&(d=new mxGeometry,d.relative=!0,i.setGeometry(o,d)),null!=this.waypoints&&0<this.waypoints.length){var c=this.graph.view.scale,m=this.graph.view.translate;for(d.points=[],e=0;e<this.waypoints.length;e++){var u=this.waypoints[e];d.points.push(new mxPoint(u.x/c-m.x,u.y/c-m.y))}}null==t&&(u=this.graph.getPointForEvent(n,!1),u.x-=this.graph.panDx/this.graph.view.scale,u.y-=this.graph.panDy/this.graph.view.scale,d.setTerminalPoint(u,!1)),this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",o,"event",n,"target",a))}}catch(e){mxLog.show(),mxLog.debug(e.message)}finally{i.endUpdate()}this.select&&this.selectCells(o,t)}},mxConnectionHandler.prototype.selectCells=function(e,t){this.graph.setSelectionCell(e)},mxConnectionHandler.prototype.insertEdge=function(e,t,n,a,i,o){return null==this.factoryMethod?this.graph.insertEdge(e,t,n,a,i,o):(t=this.createEdge(n,a,i,o),t=this.graph.addEdge(t,e,a,i))},mxConnectionHandler.prototype.createTargetVertex=function(e,t){for(var n=this.graph.getCellGeometry(t);null!=n&&n.relative;)t=this.graph.getModel().getParent(t),n=this.graph.getCellGeometry(t);var a=this.graph.cloneCells([t])[0];if(null!=(n=this.graph.getModel().getGeometry(a))){var i=this.graph.getPointForEvent(e);if(n.x=this.graph.snap(i.x-n.width/2)-this.graph.panDx/this.graph.view.scale,n.y=this.graph.snap(i.y-n.height/2)-this.graph.panDy/this.graph.view.scale,null!=this.first){var o=this.graph.view.getState(t);if(null!=o){var s=this.getAlignmentTolerance();Math.abs(this.graph.snap(this.first.x)-this.graph.snap(i.x))<=s?n.x=o.x:Math.abs(this.graph.snap(this.first.y)-this.graph.snap(i.y))<=s&&(n.y=o.y)}}}return a},mxConnectionHandler.prototype.getAlignmentTolerance=function(){return this.graph.isGridEnabled()?this.graph.gridSize:this.graph.tolerance},mxConnectionHandler.prototype.createEdge=function(e,t,n,a){var i=null;return null!=this.factoryMethod&&(i=this.factoryMethod(t,n,a)),null==i&&((i=new mxCell(e||"")).setEdge(!0),i.setStyle(a),e=new mxGeometry,e.relative=!0,i.setGeometry(e)),i},mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null),null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null)},mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5),mxConstraintHandler.prototype.graph=null,mxConstraintHandler.prototype.enabled=!0,mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR,mxConstraintHandler.prototype.isEnabled=function(){return this.enabled},mxConstraintHandler.prototype.setEnabled=function(e){this.enabled=e},mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var e=0;e<this.focusIcons.length;e++)this.focusIcons[e].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null},mxConstraintHandler.prototype.getTolerance=function(){return this.graph.getTolerance()},mxConstraintHandler.prototype.getImageForConstraint=function(e,t,n){return this.pointImage},mxConstraintHandler.prototype.isEventIgnored=function(e,t){return!1},mxConstraintHandler.prototype.update=function(e,t){if(this.isEnabled()&&!this.isEventIgnored(e)){var n=this.getTolerance(),a=new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n),i=null!=e.getCell()&&this.graph.isCellConnectable(e.getCell());if((null==this.currentFocusArea||!mxUtils.intersects(this.currentFocusArea,a)||null!=e.getState()&&null!=this.currentFocus&&i)&&(this.currentFocusArea=null,e.getState()!=this.currentFocus))if(this.currentFocus=null,this.constraints=null!=e.getState()&&i?this.graph.getAllConnectionConstraints(e.getState(),t):null,null!=this.constraints){if(this.currentFocus=e.getState(),this.currentFocusArea=new mxRectangle(e.getState().x,e.getState().y,e.getState().width,e.getState().height),null!=this.focusIcons){for(i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}for(this.focusIcons=[],this.focusPoints=[],i=0;i<this.constraints.length;i++){var o=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),s=this.getImageForConstraint(e.getState(),this.constraints[i],o),r=s.src;(s=new mxImageShape(s=new mxRectangle(o.x-s.width/2,o.y-s.height/2,s.width,s.height),r)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,s.preserveImageAspect=!1,s.init(this.graph.getView().getOverlayPane()),null!=s.node.previousSibling&&s.node.parentNode.insertBefore(s.node,s.node.parentNode.firstChild),r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),s.redraw(),mxEvent.redirectMouseEvents(s.node,this.graph,r),this.currentFocusArea.add(s.bounds),this.focusIcons.push(s),this.focusPoints.push(o)}this.currentFocusArea.grow(n)}else if(null!=this.focusIcons){for(null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}if(this.currentPoint=this.currentConstraint=null,null!=this.focusIcons&&null!=this.constraints&&(null==e.getState()||this.currentFocus==e.getState()))for(i=0;i<this.focusIcons.length;i++)if(mxUtils.intersects(this.focusIcons[i].bounds,a)){this.currentConstraint=this.constraints[i],this.currentPoint=this.focusPoints[i],(n=this.focusIcons[i].bounds.clone()).grow(mxClient.IS_IE?3:2),mxClient.IS_IE&&(n.width-=1,n.height-=1),null==this.focusHighlight?(n=new mxRectangleShape(n,null,this.highlightColor,3),n.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,n.init(this.graph.getView().getOverlayPane()),this.focusHighlight=n,r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),mxEvent.redirectMouseEvents(n.node,this.graph,r)):(this.focusHighlight.bounds=n,this.focusHighlight.redraw());break}null==this.currentConstraint&&null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)}},mxConstraintHandler.prototype.destroy=function(){this.reset()},mxRubberband.prototype.defaultOpacity=20,mxRubberband.prototype.enabled=!0,mxRubberband.prototype.div=null,mxRubberband.prototype.sharedDiv=null,mxRubberband.prototype.currentX=0,mxRubberband.prototype.currentY=0,mxRubberband.prototype.isEnabled=function(){return this.enabled},mxRubberband.prototype.setEnabled=function(e){this.enabled=e},mxRubberband.prototype.mouseDown=function(e,t){if(!t.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&(this.graph.isForceMarqueeEvent(t.getEvent())||null==t.getState())){var n=mxUtils.getOffset(this.graph.container),a=mxUtils.getScrollOrigin(this.graph.container);if(a.x-=n.x,a.y-=n.y,this.start(t.getX()+a.x,t.getY()+a.y),mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var i=this.graph.container,o=function(e){e=new mxMouseEvent(e);var t=mxUtils.convertPoint(i,e.getX(),e.getY());return e.graphX=t.x,e.graphY=t.y,e};this.dragHandler=mxUtils.bind(this,function(e){this.mouseMove(this.graph,o(e))}),this.dropHandler=mxUtils.bind(this,function(e){this.mouseUp(this.graph,o(e))}),mxEvent.addListener(document,"mousemove",this.dragHandler),mxEvent.addListener(document,"mouseup",this.dropHandler)}t.consume(!1)}},mxRubberband.prototype.start=function(e,t){this.first=new mxPoint(e,t)},mxRubberband.prototype.mouseMove=function(e,t){if(!t.isConsumed()&&null!=this.first){var n=mxUtils.getScrollOrigin(this.graph.container),a=mxUtils.getOffset(this.graph.container);n.x-=a.x,n.y-=a.y;var a=t.getX()+n.x,n=t.getY()+n.y,i=this.first.x-a,o=this.first.y-n,s=this.graph.tolerance;(null!=this.div||Math.abs(i)>s||Math.abs(o)>s)&&(null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(a,n),t.consume())}},mxRubberband.prototype.createShape=function(){return null==this.sharedDiv&&(this.sharedDiv=document.createElement("div"),this.sharedDiv.className="mxRubberband",mxUtils.setOpacity(this.sharedDiv,this.defaultOpacity)),this.graph.container.appendChild(this.sharedDiv),this.sharedDiv},mxRubberband.prototype.mouseUp=function(e,t){var n=null!=this.div;this.reset(),n&&(n=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(n,t.getEvent()),t.consume())},mxRubberband.prototype.reset=function(){null!=this.div&&this.div.parentNode.removeChild(this.div),null!=this.dragHandler&&(mxEvent.removeListener(document,"mousemove",this.dragHandler),this.dragHandler=null),null!=this.dropHandler&&(mxEvent.removeListener(document,"mouseup",this.dropHandler),this.dropHandler=null),this.currentY=this.currentX=0,this.div=this.first=null},mxRubberband.prototype.update=function(e,t){this.currentX=e,this.currentY=t,this.repaint()},mxRubberband.prototype.repaint=function(){if(null!=this.div){var e=this.currentX-this.graph.panDx,t=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,e),this.y=Math.min(this.first.y,t),this.width=Math.max(this.first.x,e)-this.x,this.height=Math.max(this.first.y,t)-this.y,e=mxClient.IS_VML?this.graph.panDy:0,this.div.style.left=this.x+(mxClient.IS_VML?this.graph.panDx:0)+"px",this.div.style.top=this.y+e+"px",this.div.style.width=Math.max(1,this.width)+"px",this.div.style.height=Math.max(1,this.height)+"px"}},mxRubberband.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.reset(),null!=this.sharedDiv&&(this.sharedDiv=null))},mxVertexHandler.prototype.graph=null,mxVertexHandler.prototype.state=null,mxVertexHandler.prototype.singleSizer=!1,mxVertexHandler.prototype.index=null,mxVertexHandler.prototype.allowHandleBoundsCheck=!0,mxVertexHandler.prototype.handleImage=null,mxVertexHandler.prototype.tolerance=0,mxVertexHandler.prototype.rotationEnabled=!1,mxVertexHandler.prototype.rotationRaster=!0,mxVertexHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.selectionBorder=this.createSelectionShape(this.bounds),this.selectionBorder.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.pointerEvents=!1,this.selectionBorder.init(this.graph.getView().getOverlayPane()),this.graph.isCellMovable(this.state.cell)&&(this.selectionBorder.node.style.cursor=mxConstants.CURSOR_MOVABLE_VERTEX),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.graph,this.state),0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells){var e=this.graph.isCellResizable(this.state.cell);if(this.sizers=[],e||this.graph.isLabelMovable(this.state.cell)&&2<=this.state.width&&2<=this.state.height){var t=0;e&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",t++)),this.sizers.push(this.createSizer("n-resize",t++)),this.sizers.push(this.createSizer("ne-resize",t++)),this.sizers.push(this.createSizer("w-resize",t++)),this.sizers.push(this.createSizer("e-resize",t++)),this.sizers.push(this.createSizer("sw-resize",t++)),this.sizers.push(this.createSizer("s-resize",t++))),this.sizers.push(this.createSizer("se-resize",t++))),null!=(e=this.graph.model.getGeometry(this.state.cell))&&!e.relative&&!this.graph.isSwimlane(this.state.cell)&&this.graph.isLabelMovable(this.state.cell)&&(this.labelShape=this.createSizer(mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}else this.graph.isCellMovable(this.state.cell)&&!this.graph.isCellResizable(this.state.cell)&&2>this.state.width&&2>this.state.height&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.rotationEnabled&&(0>=mxGraphHandler.prototype.maxCells||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)&&(this.rotationShape=this.createSizer("pointer",mxEvent.ROTATION_HANDLE,mxConstants.HANDLE_SIZE+3,mxConstants.HANDLE_FILLCOLOR),this.sizers.push(this.rotationShape)),this.redraw()},mxVertexHandler.prototype.getSelectionBounds=function(e){return new mxRectangle(Math.round(e.x),Math.round(e.y),Math.round(e.width),Math.round(e.height))},mxVertexHandler.prototype.createSelectionShape=function(e){return e=new mxRectangleShape(e,null,this.getSelectionColor()),e.strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxVertexHandler.prototype.getSelectionColor=function(){return mxConstants.VERTEX_SELECTION_COLOR},mxVertexHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.VERTEX_SELECTION_STROKEWIDTH},mxVertexHandler.prototype.isSelectionDashed=function(){return mxConstants.VERTEX_SELECTION_DASHED},mxVertexHandler.prototype.createSizer=function(e,t,n,a){return n=n||mxConstants.HANDLE_SIZE,n=new mxRectangle(0,0,n,n),a=this.createSizerShape(n,t,a),a.isHtmlAllowed()&&null!=this.state.text&&this.state.text.node.parentNode==this.graph.container?(a.bounds.height-=1,a.bounds.width-=1,a.dialect=mxConstants.DIALECT_STRICTHTML,a.init(this.graph.container)):(a.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,a.init(this.graph.getView().getOverlayPane())),mxEvent.redirectMouseEvents(a.node,this.graph,this.state),this.graph.isEnabled()&&(a.node.style.cursor=e),this.isSizerVisible(t)||(a.node.style.visibility="hidden"),a},mxVertexHandler.prototype.isSizerVisible=function(e){return!0},mxVertexHandler.prototype.createSizerShape=function(e,t,n){return null!=this.handleImage?(e.width=this.handleImage.width,e.height=this.handleImage.height,new mxImageShape(e,this.handleImage.src)):t==mxEvent.ROTATION_HANDLE?new mxEllipse(e,n||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(e,n||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxVertexHandler.prototype.moveSizerTo=function(e,t,n){null!=e&&(e.bounds.x=Math.round(t-e.bounds.width/2),e.bounds.y=Math.round(n-e.bounds.height/2),e.redraw())},mxVertexHandler.prototype.getHandleForEvent=function(e){if(e.isSource(this.rotationShape))return mxEvent.ROTATION_HANDLE;if(e.isSource(this.labelShape))return mxEvent.LABEL_HANDLE;if(null!=this.sizers)for(var t=this.tolerance,t=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<t)?new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t):null,n=0;n<this.sizers.length;n++)if(e.isSource(this.sizers[n])||null!=t&&mxUtils.intersects(this.sizers[n].bounds,t))return n;return null},mxVertexHandler.prototype.mouseDown=function(e,t){if(!t.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(t.getEvent())&&(0<this.tolerance||t.getState()==this.state)){var n=this.getHandleForEvent(t);null!=n&&(this.start(t.getX(),t.getY(),n),t.consume())}},mxVertexHandler.prototype.start=function(e,t,n){e=mxUtils.convertPoint(this.graph.container,e,t),this.startX=e.x,this.startY=e.y,this.index=n,this.selectionBorder.node.style.display=n==mxEvent.ROTATION_HANDLE?"inline":"none",this.preview=this.createSelectionShape(this.bounds),mxClient.IS_SVG&&0!=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")||null==this.state.text||this.state.text.node.parentNode!=this.graph.container?(this.preview.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.preview.init(this.graph.view.getOverlayPane())):(this.preview.dialect=mxConstants.DIALECT_STRICTHTML,this.preview.init(this.graph.container))},mxVertexHandler.prototype.mouseMove=function(e,t){if(t.isConsumed()||null==this.index)null!=this.getHandleForEvent(t)&&t.consume(!1);else{var n=new mxPoint(t.getGraphX(),t.getGraphY()),a=this.graph.isGridEnabledEvent(t.getEvent()),i=this.graph.getView().scale;if(this.index==mxEvent.LABEL_HANDLE)a&&(n.x=this.graph.snap(n.x/i)*i,n.y=this.graph.snap(n.y/i)*i),this.moveSizerTo(this.sizers[this.sizers.length-1],n.x,n.y);else if(this.index==mxEvent.ROTATION_HANDLE){var o=this.state.x+this.state.width/2-n.x,s=this.state.y+this.state.height/2-n.y;this.currentAlpha=0!=o?180*Math.atan(s/o)/Math.PI+90:0>s?180:0,0<o&&(this.currentAlpha-=180),this.rotationRaster&&(o=n.x-this.state.getCenterX(),s=n.y-this.state.getCenterY(),o=Math.abs(Math.sqrt(o*o+s*s)-this.state.height/2-20),o=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(o))))),this.currentAlpha=Math.round(this.currentAlpha/o)*o),this.selectionBorder.rotation=this.currentAlpha,this.selectionBorder.redraw()}else{var r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),l=Math.cos(-r),d=Math.sin(-r),c=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),o=n.x-this.startX,s=n.y-this.startY,n=this.graph.view.translate,m=d*o+l*s,o=l*o-d*s;this.bounds=this.union(this.selectionBounds,o,m,this.index,a,i,n),l=Math.cos(r),c=(d=Math.sin(r))*(o=(s=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY())).x-c.x)+l*(s=s.y-c.y)-s,this.bounds.x+=l*o-d*s-o,this.bounds.y+=c,this.drawPreview()}t.consume()}},mxVertexHandler.prototype.mouseUp=function(e,t){if(!t.isConsumed()&&null!=this.index&&null!=this.state){s=new mxPoint(t.getGraphX(),t.getGraphY());this.graph.getModel().beginUpdate();try{if(this.index==mxEvent.ROTATION_HANDLE)null!=this.currentAlpha&&this.rotateCell(this.state.cell,this.currentAlpha-(this.state.style[mxConstants.STYLE_ROTATION]||0));else{var n=this.graph.isGridEnabledEvent(t.getEvent()),a=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),i=Math.cos(-a),o=Math.sin(-a),s=o*(r=s.x-this.startX)+i*(l=s.y-this.startY),r=i*r-o*l,l=s,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,n)}}finally{this.graph.getModel().endUpdate()}this.reset(),t.consume()}},mxVertexHandler.prototype.rotateCell=function(e,t){var n=this.graph.getModel();if(n.isVertex(e)){var a=e==this.state?this.state:this.graph.view.getState(e);if(null!=a&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(a.style[mxConstants.STYLE_ROTATION]||0)+t,[e]),this.state.cell!=e&&null!=(a=this.graph.getCellGeometry(e))&&!a.relative)if(0!=t){var i=this.graph.getModel().getParent(e),o=this.graph.getCellGeometry(i);if(!a.relative&&null!=o){var s=mxUtils.toRadians(t),i=Math.cos(s),s=Math.sin(s),r=new mxPoint(a.getCenterX(),a.getCenterY()),o=new mxPoint(o.width/2,o.height/2),i=mxUtils.getRotatedPoint(r,i,s,o);(a=a.clone()).x=i.x-a.width/2,a.y=i.y-a.height/2,n.setGeometry(e,a)}}else a=a.clone(),a.x+=dx,a.y+=dy,n.setGeometry(e,a);for(a=n.getChildCount(e),i=0;i<a;i++)this.rotateCell(n.getChildAt(e,i),t)}},mxVertexHandler.prototype.reset=function(){this.index=this.currentAlpha=null,null!=this.preview&&(this.preview.destroy(),this.preview=null),null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.drawPreview())},mxVertexHandler.prototype.resizeCell=function(e,t,n,a,i){var o=this.graph.model.getGeometry(e);if(null!=o)if(a==mxEvent.LABEL_HANDLE)a=this.graph.view.scale,t=(this.labelShape.bounds.getCenterX()-this.startX)/a,n=(this.labelShape.bounds.getCenterY()-this.startY)/a,o=o.clone(),null==o.offset?o.offset=new mxPoint(t,n):(o.offset.x+=t,o.offset.y+=n),this.graph.model.setGeometry(e,o);else{if(a=this.union(o,t,n,a,i,1,new mxPoint(0,0)),0!=(r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"))){t=a.getCenterX()-o.getCenterX(),n=a.getCenterY()-o.getCenterY(),i=Math.cos(r);var s=Math.sin(r),r=i*t-s*n-t;t=s*t+i*n-n,n=a.x-o.x;var l=a.y-o.y,d=i*n-s*l;i=s*n+i*l,a.x+=r,a.y+=t,this.graph.isCellCollapsed(e)||0==r&&0==t||(n=o.x-a.x+d,l=o.y-a.y+i,this.moveChildren(e,n,l))}this.graph.resizeCell(e,a)}},mxVertexHandler.prototype.moveChildren=function(e,t,n){for(var a=this.graph.getModel(),i=a.getChildCount(e),o=0;o<i;o++){var s=a.getChildAt(e,o);if(a.isVertex(s)){var r=this.graph.getCellGeometry(s);null!=r&&!r.relative&&(r=r.clone(),r.x+=t,r.y+=n,a.setGeometry(s,r))}}},mxVertexHandler.prototype.union=function(e,t,n,a,i,o,s){if(this.singleSizer){s=e.x+e.width+t;var r=e.y+e.height+n;return i&&(s=this.graph.snap(s/o)*o,r=this.graph.snap(r/o)*o),(o=new mxRectangle(e.x,e.y,0,0)).add(new mxRectangle(s,r,0,0)),o}var l=(r=e.x-s.x*o)+e.width,d=e.y-s.y*o;return e=d+e.height,4<a?(e+=n,i&&(e=this.graph.snap(e/o)*o)):3>a&&(d+=n,i&&(d=this.graph.snap(d/o)*o)),0==a||3==a||5==a?(r+=t,i&&(r=this.graph.snap(r/o)*o)):2!=a&&4!=a&&7!=a||(l+=t,i&&(l=this.graph.snap(l/o)*o)),i=l-r,e-=d,0>i&&(r+=i,i=Math.abs(i)),0>e&&(d+=e,e=Math.abs(e)),new mxRectangle(r+s.x*o,d+s.y*o,i,e)},mxVertexHandler.prototype.redraw=function(){this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.state.x,this.state.y,this.state.width,this.state.height);var e=this.state;if(null!=this.sizers){var t=e.x+e.width,n=e.y+e.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],t,n);else{var a=e.x+e.width/2,i=e.y+e.height/2;if(1<this.sizers.length){var o=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(o),o=Math.sin(o),r=new mxPoint(e.getCenterX(),e.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),s,o,r);this.moveSizerTo(this.sizers[0],l.x,l.y),l.x=a,l.y=e.y,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[1],l.x,l.y),l.x=t,l.y=e.y,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[2],l.x,l.y),l.x=e.x,l.y=i,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[3],l.x,l.y),l.x=t,l.y=i,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[4],l.x,l.y),l.x=e.x,l.y=n,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[5],l.x,l.y),l.x=a,l.y=n,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[6],l.x,l.y),l.x=t,l.y=n,l=mxUtils.getRotatedPoint(l,s,o,r),this.moveSizerTo(this.sizers[7],l.x,l.y),this.moveSizerTo(this.sizers[8],a+e.absoluteOffset.x,i+e.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],a+e.absoluteOffset.x,i+e.absoluteOffset.y):this.moveSizerTo(this.sizers[0],e.x,e.y)}}null!=this.rotationShape&&(o=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(o),o=Math.sin(o),r=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x+e.width/2,e.y-16),s,o,r),this.moveSizerTo(this.rotationShape,l.x,l.y)),this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.drawPreview()},mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw()),this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()},mxVertexHandler.prototype.destroy=function(){if(null!=this.preview&&(this.preview.destroy(),this.preview=null),this.selectionBorder.destroy(),this.labelShape=this.selectionBorder=null,null!=this.sizers)for(var e=0;e<this.sizers.length;e++)this.sizers[e].destroy(),this.sizers[e]=null},mxEdgeHandler.prototype.graph=null,mxEdgeHandler.prototype.state=null,mxEdgeHandler.prototype.marker=null,mxEdgeHandler.prototype.constraintHandler=null,mxEdgeHandler.prototype.error=null,mxEdgeHandler.prototype.shape=null,mxEdgeHandler.prototype.bends=null,mxEdgeHandler.prototype.labelShape=null,mxEdgeHandler.prototype.cloneEnabled=!0,mxEdgeHandler.prototype.addEnabled=!1,mxEdgeHandler.prototype.removeEnabled=!1,mxEdgeHandler.prototype.preferHtml=!1,mxEdgeHandler.prototype.allowHandleBoundsCheck=!0,mxEdgeHandler.prototype.snapToTerminals=!1,mxEdgeHandler.prototype.handleImage=null,mxEdgeHandler.prototype.tolerance=0,mxEdgeHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.points=[],this.abspoints=this.getSelectionPoints(this.state),this.shape=this.createSelectionShape(this.abspoints),this.shape.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,this.shape.init(this.graph.getView().getOverlayPane()),this.shape.svgStrokeTolerance=0,this.shape.node.style.cursor=mxConstants.CURSOR_MOVABLE_EDGE,mxEvent.addListener(this.shape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e,this.state.cell)})),mxEvent.addGestureListeners(this.shape.node,mxUtils.bind(this,function(e){this.addEnabled&&this.isAddPointEvent(e)?this.addPoint(this.state,e):this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,this.state))}),mxUtils.bind(this,function(e){n=this.state.cell;if(null!=this.index){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),n=this.graph.getCellAt(t.x,t.y);this.graph.isSwimlane(n)&&this.graph.hitsSwimlaneContent(n,t.x,t.y)&&(n=null)}this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,this.graph.getView().getState(n)))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,this.state))})),this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container,!this.preferHtml){var e=this.state.getVisibleTerminalState(!0);null!=e&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container),this.preferHtml||null!=(e=this.state.getVisibleTerminalState(!1))&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container)}(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||0>=mxGraphHandler.prototype.maxCells)&&(this.bends=this.createBends()),this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape=new mxRectangleShape(new mxRectangle,mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR),this.labelShape.pointerEvents=!1,this.initBend(this.labelShape),this.labelShape.node.style.cursor=mxConstants.CURSOR_LABEL_HANDLE,mxEvent.redirectMouseEvents(this.labelShape.node,this.graph,this.state),this.redraw()},mxEdgeHandler.prototype.isAddPointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.isRemovePointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.getSelectionPoints=function(e){return e.absolutePoints},mxEdgeHandler.prototype.createSelectionShape=function(e){return e=new mxPolyline(e,this.getSelectionColor()),e.strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR},mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH},mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED},mxEdgeHandler.prototype.isConnectableCell=function(e){return!0},mxEdgeHandler.prototype.createMarker=function(){var e=new mxCellMarker(this.graph),t=this;return e.getCell=function(e){var n=mxCellMarker.prototype.getCell.apply(this,arguments);if(!t.isConnectableCell(n))return null;var a=t.graph.getModel();return(n==t.state.cell||null!=n&&!t.graph.connectableEdges&&a.isEdge(n))&&(n=null),n},e.isValidState=function(e){var n=t.graph.getModel(),n=null!=(n=t.graph.view.getTerminalPort(e,t.graph.view.getState(n.getTerminal(t.state.cell,!t.isSource)),!t.isSource))?n.cell:null;return t.error=t.validateConnection(t.isSource?e.cell:n,t.isSource?n:e.cell),null==t.error},e},mxEdgeHandler.prototype.validateConnection=function(e,t){return this.graph.getEdgeValidationError(this.state.cell,e,t)},mxEdgeHandler.prototype.createBends=function(){for(var e=this.state.cell,t=[],n=0;n<this.abspoints.length;n++)if(this.isHandleVisible(n)){var a=n==this.abspoints.length-1;if((a=0==n||a)||this.graph.isCellBendable(e)){var i=this.createHandleShape(n);if(this.initBend(i),mxClient.IS_TOUCH&&i.node.setAttribute("pointer-events","none"),this.isHandleEnabled(n))if(mxClient.IS_TOUCH){var o=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(i.node,this.graph,o)}else i.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(i.node,this.graph,this.state);t.push(i),a||(this.points.push(new mxPoint(0,0)),i.node.style.visibility="hidden")}}return t},mxEdgeHandler.prototype.isHandleEnabled=function(e){return!0},mxEdgeHandler.prototype.isHandleVisible=function(e){return!0},mxEdgeHandler.prototype.createHandleShape=function(e){return null!=this.handleImage?new mxImageShape(new mxRectangle(0,0,this.handleImage.width,this.handleImage.height),this.handleImage.src):(e=mxConstants.HANDLE_SIZE,this.preferHtml&&(e-=1),new mxRectangleShape(new mxRectangle(0,0,e,e),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR))},mxEdgeHandler.prototype.initBend=function(e){this.preferHtml?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()))},mxEdgeHandler.prototype.getHandleForEvent=function(e){if(null!=this.bends)for(var t=this.tolerance,t=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<t)?new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t):null,n=0;n<this.bends.length;n++)if((e.isSource(this.bends[n])||null!=t&&mxUtils.intersects(this.bends[n].bounds,t))&&"hidden"!=this.bends[n].node.style.visibility)return n;return!(e.isSource(this.labelShape)&&"hidden"!=this.labelShape.node.style.visibility||e.isSource(this.state.text))||(mxClient.IS_SF||mxClient.IS_GC)&&"SELECT"==e.getSource().nodeName?null:mxEvent.LABEL_HANDLE},mxEdgeHandler.prototype.mouseDown=function(e,t){var n=null;null!=(n=this.getHandleForEvent(t))&&!t.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(t.getEvent())&&(this.removeEnabled&&this.isRemovePointEvent(t.getEvent())?this.removePoint(this.state,n):(n!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(t.getCell()))&&this.start(t.getX(),t.getY(),n),t.consume())},mxEdgeHandler.prototype.start=function(e,t,n){this.startX=e,this.startY=t,this.isSource=null!=this.bends&&0==n,this.isTarget=null!=this.bends&&n==this.bends.length-1,this.isLabel=n==mxEvent.LABEL_HANDLE,this.isSource||this.isTarget?(e=this.state.cell,(null==(t=this.graph.model.getTerminal(e,this.isSource))&&this.graph.isTerminalPointMovable(e,this.isSource)||null!=t&&this.graph.isCellDisconnectable(e,t,this.isSource))&&(this.index=n)):this.index=n},mxEdgeHandler.prototype.clonePreviewState=function(e,t){return this.state.clone()},mxEdgeHandler.prototype.getSnapToTerminalTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxEdgeHandler.prototype.getPointForEvent=function(e){var t=new mxPoint(e.getGraphX(),e.getGraphY()),n=this.getSnapToTerminalTolerance(),a=this.graph.getView(),i=!1,o=!1;if(this.snapToTerminals&&0<n){var s=function(e){if(null!=e){var a=e.x;Math.abs(t.x-a)<n&&(t.x=a,i=!0),e=e.y,Math.abs(t.y-e)<n&&(t.y=e,o=!0)}},r=function(e){null!=e&&s.call(this,new mxPoint(a.getRoutingCenterX(e),a.getRoutingCenterY(e)))};if(r.call(this,this.state.getVisibleTerminalState(!0)),r.call(this,this.state.getVisibleTerminalState(!1)),null!=this.abspoints)for(r=0;r<this.abspoints;r++)r!=this.index&&s.call(this,this.abspoints[r])}return this.graph.isGridEnabledEvent(e.getEvent())&&(e=a.scale,r=a.translate,i||(t.x=(this.graph.snap(t.x/e-r.x)+r.x)*e),o||(t.y=(this.graph.snap(t.y/e-r.y)+r.y)*e)),t},mxEdgeHandler.prototype.getPreviewTerminalState=function(e){this.constraintHandler.update(e,this.isSource),this.marker.process(e),e=this.marker.getValidState();var t=null;return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint&&this.marker.reset(),null!=e?t=e:null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(t=this.constraintHandler.currentFocus),t},mxEdgeHandler.prototype.getPreviewPoints=function(e){var t=null!=(t=this.graph.getCellGeometry(this.state.cell)).points?t.points.slice():null;return this.isSource||this.isTarget?this.graph.resetEdgesOnConnect&&(t=null):(this.convertPoint(e,!1),null==t?t=[e]:t[this.index-1]=e),t},mxEdgeHandler.prototype.updatePreviewState=function(e,t,n){var a=this.isSource?n:this.state.getVisibleTerminalState(!0),i=this.isTarget?n:this.state.getVisibleTerminalState(!1),o=this.graph.getConnectionConstraint(e,a,!0),s=this.graph.getConnectionConstraint(e,i,!1),r=this.constraintHandler.currentConstraint;null==r&&(r=new mxConnectionConstraint),this.isSource?o=r:this.isTarget&&(s=r),(!this.isSource||null!=a)&&e.view.updateFixedTerminalPoint(e,a,!0,o),(!this.isTarget||null!=i)&&e.view.updateFixedTerminalPoint(e,i,!1,s),(this.isSource||this.isTarget)&&null==n&&(e.setAbsoluteTerminalPoint(t,this.isSource),null==this.marker.getMarkedState()&&(this.error=this.graph.allowDanglingEdges?null:"")),e.view.updatePoints(e,this.points,a,i),e.view.updateFloatingTerminalPoints(e,a,i)},mxEdgeHandler.prototype.mouseMove=function(e,t){if(null!=this.index&&null!=this.marker){var n=this.getPointForEvent(t);if(this.isLabel)this.label.x=n.x,this.label.y=n.y;else{this.points=this.getPreviewPoints(n);var a=this.isSource||this.isTarget?this.getPreviewTerminalState(t):null,i=this.clonePreviewState(n,null!=a?a.cell:null);this.updatePreviewState(i,n,a),this.setPreviewColor(null==this.error?this.marker.validColor:this.marker.invalidColor),this.abspoints=i.absolutePoints,this.active=!0}this.drawPreview(),mxEvent.consume(t.getEvent()),t.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(t)&&t.consume(!1)},mxEdgeHandler.prototype.mouseUp=function(e,t){if(null!=this.index&&null!=this.marker){var n=this.state.cell;if(t.getX()!=this.startX||t.getY()!=this.startY)if(null!=this.error)0<this.error.length&&this.graph.validationAlert(this.error);else if(this.isLabel)this.moveLabel(this.state,this.label.x,this.label.y);else if(this.isSource||this.isTarget){var a=null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),null!=a)n=this.connect(n,a,this.isSource,this.graph.isCloneEvent(t.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable(),t);else if(this.graph.isAllowDanglingEdges()){(a=this.abspoints[this.isSource?0:this.abspoints.length-1]).x=a.x/this.graph.view.scale-this.graph.view.translate.x,a.y=a.y/this.graph.view.scale-this.graph.view.translate.y;var i=this.graph.getView().getState(this.graph.getModel().getParent(n));null!=i&&(a.x-=i.origin.x,a.y-=i.origin.y),a.x-=this.graph.panDx/this.graph.view.scale,a.y-=this.graph.panDy/this.graph.view.scale,this.changeTerminalPoint(n,a,this.isSource)}}else this.active?this.changePoints(n,this.points):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().revalidate(this.state.cell));null!=this.marker&&(this.reset(),n!=this.state.cell&&this.graph.setSelectionCell(n)),t.consume()}},mxEdgeHandler.prototype.reset=function(){this.points=this.label=this.index=this.error=null,this.isTarget=this.isSource=this.isLabel=this.active=!1,this.marker.reset(),this.constraintHandler.reset(),this.setPreviewColor(mxConstants.EDGE_SELECTION_COLOR),this.redraw()},mxEdgeHandler.prototype.setPreviewColor=function(e){null!=this.shape&&(this.shape.stroke=e)},mxEdgeHandler.prototype.convertPoint=function(e,t){var n=this.graph.getView().getScale(),a=this.graph.getView().getTranslate();return t&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/n-a.x),e.y=Math.round(e.y/n-a.y),null!=(n=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell)))&&(e.x-=n.origin.x,e.y-=n.origin.y),e},mxEdgeHandler.prototype.moveLabel=function(e,t,n){var a=this.graph.getModel();if(null!=(i=a.getGeometry(e.cell))){var i=i.clone(),o=this.graph.getView().getRelativePoint(e,t,n);i.x=o.x,i.y=o.y;var s=this.graph.getView().scale;i.offset=new mxPoint(0,0),o=this.graph.view.getPoint(e,i),i.offset=new mxPoint((t-o.x)/s,(n-o.y)/s),a.setGeometry(e.cell,i)}},mxEdgeHandler.prototype.connect=function(e,t,n,a,i){var o=(i=this.graph.getModel()).getParent(e);i.beginUpdate();try{if(a){var s=e.clone();i.add(o,s,i.getChildCount(o));var r=i.getTerminal(e,!n);this.graph.connectCell(s,r,!n),e=s}var l=this.constraintHandler.currentConstraint;null==l&&(l=new mxConnectionConstraint),this.graph.connectCell(e,t,n,l)}finally{i.endUpdate()}return e},mxEdgeHandler.prototype.changeTerminalPoint=function(e,t,n){var a=this.graph.getModel(),i=a.getGeometry(e);if(null!=i){a.beginUpdate();try{(i=i.clone()).setTerminalPoint(t,n),a.setGeometry(e,i),this.graph.connectCell(e,null,n,new mxConnectionConstraint)}finally{a.endUpdate()}}},mxEdgeHandler.prototype.changePoints=function(e,t){var n=this.graph.getModel(),a=n.getGeometry(e);null!=a&&(a=a.clone(),a.points=t,n.setGeometry(e,a))},mxEdgeHandler.prototype.addPoint=function(e,t){var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),a=this.graph.isGridEnabledEvent(t);this.convertPoint(n,a),this.addPointAt(e,n.x,n.y),mxEvent.consume(t)},mxEdgeHandler.prototype.addPointAt=function(e,t,n){var a=this.graph.getCellGeometry(e.cell);if(t=new mxPoint(t,n),null!=a){a=a.clone(),n=this.graph.view.translate;var i=this.graph.view.scale;n=mxUtils.findNearestSegment(e,(t.x+n.x)*i,(t.y+n.y)*i),null==a.points?a.points=[t]:a.points.splice(n,0,t),this.graph.getModel().setGeometry(e.cell,a),this.destroy(),this.init()}},mxEdgeHandler.prototype.removePoint=function(e,t){if(0<t&&t<this.abspoints.length-1){var n=this.graph.getCellGeometry(this.state.cell);null!=n&&null!=n.points&&((n=n.clone()).points.splice(t-1,1),this.graph.getModel().setGeometry(e.cell,n),this.destroy(),this.init())}},mxEdgeHandler.prototype.getHandleFillColor=function(e){e=0==e;var t=this.state.cell,n=this.graph.getModel().getTerminal(t,e),a=mxConstants.HANDLE_FILLCOLOR;return null!=n&&!this.graph.isCellDisconnectable(t,n,e)||null==n&&!this.graph.isTerminalPointMovable(t,e)?a=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=n&&this.graph.isCellDisconnectable(t,n,e)&&(a=mxConstants.CONNECT_HANDLE_FILLCOLOR),a},mxEdgeHandler.prototype.redraw=function(){this.abspoints=this.state.absolutePoints.slice();var e=this.state.cell,t=mxConstants.LABEL_HANDLE_SIZE;if(this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape.bounds=new mxRectangle(Math.round(this.label.x-t/2),Math.round(this.label.y-t/2),t,t),this.labelShape.redraw(),t=this.graph.getLabel(e),null!=t&&0<t.length&&this.graph.isLabelMovable(e)?this.labelShape.node.style.visibility="visible":this.labelShape.node.style.visibility="hidden",null!=this.bends&&0<this.bends.length){var n=this.abspoints.length-1,e=this.abspoints[0],a=this.abspoints[0].y,t=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(Math.round(this.abspoints[0].x-t.width/2),Math.round(a-t.height/2),t.width,t.height),this.bends[0].fill=this.getHandleFillColor(0),this.bends[0].redraw();var a=this.abspoints[n],i=this.abspoints[n].x,n=this.abspoints[n].y,o=this.bends.length-1,t=this.bends[o].bounds;this.bends[o].bounds=new mxRectangle(Math.round(i-t.width/2),Math.round(n-t.height/2),t.width,t.height),this.bends[o].fill=this.getHandleFillColor(o),this.bends[o].redraw(),this.redrawInnerBends(e,a)}this.drawPreview()},mxEdgeHandler.prototype.redrawInnerBends=function(e,t){var n=this.graph.getModel().getGeometry(this.state.cell).points;if(null!=n){null==this.points&&(this.points=[]);for(var a=1;a<this.bends.length-1;a++)if(null!=this.bends[a])if(null!=this.abspoints[a]){var i=this.abspoints[a].x,o=this.abspoints[a].y,s=this.bends[a].bounds;this.bends[a].node.style.visibility="visible",this.bends[a].bounds=new mxRectangle(Math.round(i-s.width/2),Math.round(o-s.height/2),s.width,s.height),this.bends[a].redraw(),this.points[a-1]=n[a-1]}else this.bends[a].destroy(),this.bends[a]=null}},mxEdgeHandler.prototype.drawPreview=function(){if(this.isLabel){var e=mxConstants.LABEL_HANDLE_SIZE,e=new mxRectangle(Math.round(this.label.x-e/2),Math.round(this.label.y-e/2),e,e);this.labelShape.bounds=e,this.labelShape.redraw()}else this.shape.points=this.abspoints,this.shape.redraw()},mxEdgeHandler.prototype.destroy=function(){if(null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.labelShape&&(this.labelShape.destroy(),this.labelShape=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.bends)for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null)},mxUtils.extend(mxElbowEdgeHandler,mxEdgeHandler),mxElbowEdgeHandler.prototype=new mxEdgeHandler,mxElbowEdgeHandler.prototype.constructor=mxElbowEdgeHandler,mxElbowEdgeHandler.prototype.flipEnabled=!0,mxElbowEdgeHandler.prototype.doubleClickOrientationResource="none"!=mxClient.language?"doubleClickOrientation":"",mxElbowEdgeHandler.prototype.createBends=function(){var e=[],t=this.createHandleShape(0);return this.initBend(t),t.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(t.node,this.graph,this.state),e.push(t),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none"),e.push(this.createVirtualBend()),this.points.push(new mxPoint(0,0)),t=this.createHandleShape(2),this.initBend(t),t.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(t.node,this.graph,this.state),e.push(t),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none"),e},mxElbowEdgeHandler.prototype.createVirtualBend=function(){var e=this.createHandleShape();this.initBend(e);var t=this.getCursorForBend();return e.node.style.cursor=t,t=mxUtils.bind(this,function(e){!mxEvent.isConsumed(e)&&this.flipEnabled&&(this.graph.flipEdge(this.state.cell,e),mxEvent.consume(e))}),mxEvent.redirectMouseEvents(e.node,this.graph,this.state,null,null,null,t),this.graph.isCellBendable(this.state.cell)||(e.node.style.display="none"),e},mxElbowEdgeHandler.prototype.getCursorForBend=function(){return this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.TopToBottom||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_TOPTOBOTTOM||(this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.ElbowConnector||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_ELBOW)&&this.state.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL?"row-resize":"col-resize"},mxElbowEdgeHandler.prototype.getTooltipForNode=function(e){var t=null;return null==this.bends||null==this.bends[1]||e!=this.bends[1].node&&e.parentNode!=this.bends[1].node||(t=this.doubleClickOrientationResource,t=mxResources.get(t)||t),t},mxElbowEdgeHandler.prototype.convertPoint=function(e,t){var n=this.graph.getView().getScale(),a=this.graph.getView().getTranslate(),i=this.state.origin;t&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/n-a.x-i.x),e.y=Math.round(e.y/n-a.y-i.y)},mxElbowEdgeHandler.prototype.redrawInnerBends=function(e,t){var n=null==(n=null!=(n=this.graph.getModel().getGeometry(this.state.cell).points)?n[0]:null)?new mxPoint(e.x+(t.x-e.x)/2,e.y+(t.y-e.y)/2):new mxPoint(this.graph.getView().scale*(n.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(n.y+this.graph.getView().translate.y+this.state.origin.y)),a=(i=this.bends[1].bounds).width,i=i.height;null==this.handleImage&&(i=a=mxConstants.HANDLE_SIZE);var o=new mxRectangle(Math.round(n.x-a/2),Math.round(n.y-i/2),a,i);null==this.handleImage&&"hidden"!=this.labelShape.node.style.visibility&&mxUtils.intersects(o,this.labelShape.bounds)&&(a+=3,i+=3,o=new mxRectangle(Math.round(n.x-a/2),Math.round(n.y-i/2),a,i)),this.bends[1].bounds=o,this.bends[1].redraw()},mxUtils.extend(mxEdgeSegmentHandler,mxEdgeHandler),mxEdgeSegmentHandler.prototype=new mxElbowEdgeHandler,mxEdgeSegmentHandler.prototype.constructor=mxEdgeSegmentHandler,mxEdgeSegmentHandler.prototype.getPreviewPoints=function(e){if(this.isSource||this.isTarget)return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this,arguments);this.convertPoint(e,!1);var t=this.state.absolutePoints,n=t[0].clone();this.convertPoint(n,!1);for(var a=[],i=1;i<t.length;i++){var o=t[i].clone();this.convertPoint(o,!1),i==this.index&&(n.x==o.x?(n.x=e.x,o.x=e.x):(n.y=e.y,o.y=e.y)),i<t.length-1&&a.push(o),n=o}if(1==a.length){if(n=this.state.view,i=this.state.getVisibleTerminalState(!0),null!=(o=this.state.getVisibleTerminalState(!1))&null!=i){var s=this.state.origin.x,r=this.state.origin.y;mxUtils.contains(o,a[0].x+s,a[0].y+r)?t[1].y==t[2].y?a[0].y=n.getRoutingCenterY(i)-r:a[0].x=n.getRoutingCenterX(i)-s:mxUtils.contains(i,a[0].x+s,a[0].y+r)&&(t[1].y==t[0].y?a[0].y=n.getRoutingCenterY(o)-r:a[0].x=n.getRoutingCenterX(o)-s)}}else 0==a.length&&(a=[e]);return a},mxEdgeSegmentHandler.prototype.createBends=function(){var e=[],t=this.createHandleShape(0);this.initBend(t),t.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(t.node,this.graph,this.state),e.push(t),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none");var n=this.state.absolutePoints;if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var a=0;a<n.length-1;a++)t=this.createVirtualBend(),e.push(t),t.node.style.cursor=0==n[a].x-n[a+1].x?"col-resize":"row-resize",this.points.push(new mxPoint(0,0)),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none")}return t=this.createHandleShape(n.length),this.initBend(t),t.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(t.node,this.graph,this.state),e.push(t),mxClient.IS_TOUCH&&t.node.setAttribute("pointer-events","none"),e},mxEdgeSegmentHandler.prototype.redraw=function(){this.refresh(),mxEdgeHandler.prototype.redraw.apply(this,arguments)},mxEdgeSegmentHandler.prototype.refresh=function(){if(null!=this.bends){for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null);this.bends=this.createBends()}},mxEdgeSegmentHandler.prototype.redrawInnerBends=function(e,t){if(this.graph.isCellBendable(this.state.cell)){var n=mxConstants.HANDLE_SIZE,a=this.state.absolutePoints;if(null!=a&&1<a.length)for(var i=0;i<this.state.absolutePoints.length-1;i++)if(null!=this.bends[i+1]){e=a[i],t=a[i+1];var o=new mxPoint(e.x+(t.x-e.x)/2,e.y+(t.y-e.y)/2);this.bends[i+1].bounds=new mxRectangle(Math.round(o.x-n/2),Math.round(o.y-n/2),n,n),this.bends[i+1].redraw()}}},mxEdgeSegmentHandler.prototype.changePoints=function(e,t){t=[];var n=this.abspoints;if(1<n.length)for(var a=n[0],i=n[1],o=2;o<n.length;o++){var s=n[o];Math.round(a.x)==Math.round(i.x)&&Math.round(i.x)==Math.round(s.x)||Math.round(a.y)==Math.round(i.y)&&Math.round(i.y)==Math.round(s.y)||(a=i,i=i.clone(),this.convertPoint(i,!1),t.push(i)),i=s}mxElbowEdgeHandler.prototype.changePoints.apply(this,arguments)},mxKeyHandler.prototype.graph=null,mxKeyHandler.prototype.target=null,mxKeyHandler.prototype.normalKeys=null,mxKeyHandler.prototype.shiftKeys=null,mxKeyHandler.prototype.controlKeys=null,mxKeyHandler.prototype.controlShiftKeys=null,mxKeyHandler.prototype.enabled=!0,mxKeyHandler.prototype.isEnabled=function(){return this.enabled},mxKeyHandler.prototype.setEnabled=function(e){this.enabled=e},mxKeyHandler.prototype.bindKey=function(e,t){this.normalKeys[e]=t},mxKeyHandler.prototype.bindShiftKey=function(e,t){this.shiftKeys[e]=t},mxKeyHandler.prototype.bindControlKey=function(e,t){this.controlKeys[e]=t},mxKeyHandler.prototype.bindControlShiftKey=function(e,t){this.controlShiftKeys[e]=t},mxKeyHandler.prototype.isControlDown=function(e){return mxEvent.isControlDown(e)},mxKeyHandler.prototype.getFunction=function(e){return null!=e?this.isControlDown(e)?mxEvent.isShiftDown(e)?this.controlShiftKeys[e.keyCode]:this.controlKeys[e.keyCode]:mxEvent.isShiftDown(e)?this.shiftKeys[e.keyCode]:this.normalKeys[e.keyCode]:null},mxKeyHandler.prototype.isGraphEvent=function(e){if((e=mxEvent.getSource(e))==this.target||e.parentNode==this.target||null!=this.graph.cellEditor&&e==this.graph.cellEditor.textarea)return!0;for(;null!=e;){if(e==this.graph.container)return!0;e=e.parentNode}return!1},mxKeyHandler.prototype.keyDown=function(e){if(this.graph.isEnabled()&&!mxEvent.isConsumed(e)&&this.isGraphEvent(e)&&this.isEnabled())if(27==e.keyCode)this.escape(e);else if(!this.graph.isEditing()){var t=this.getFunction(e);null!=t&&(t(e),mxEvent.consume(e))}},mxKeyHandler.prototype.escape=function(e){this.graph.isEscapeEnabled()&&this.graph.escape(e)},mxKeyHandler.prototype.destroy=function(){this.target=null},mxTooltipHandler.prototype.zIndex=10005,mxTooltipHandler.prototype.graph=null,mxTooltipHandler.prototype.delay=null,mxTooltipHandler.prototype.hideOnHover=!1,mxTooltipHandler.prototype.enabled=!0,mxTooltipHandler.prototype.isEnabled=function(){return this.enabled},mxTooltipHandler.prototype.setEnabled=function(e){this.enabled=e},mxTooltipHandler.prototype.isHideOnHover=function(){return this.hideOnHover},mxTooltipHandler.prototype.setHideOnHover=function(e){this.hideOnHover=e},mxTooltipHandler.prototype.init=function(){null!=document.body&&(this.div=document.createElement("div"),this.div.className="mxTooltip",this.div.style.visibility="hidden",this.div.style.zIndex=this.zIndex,document.body.appendChild(this.div),mxEvent.addListener(this.div,"mousedown",mxUtils.bind(this,function(e){this.hideTooltip()})))},mxTooltipHandler.prototype.mouseDown=function(e,t){this.reset(t,!1),this.hideTooltip()},mxTooltipHandler.prototype.mouseMove=function(e,t){t.getX()==this.lastX&&t.getY()==this.lastY||(this.reset(t,!0),(this.isHideOnHover()||t.getState()!=this.state||t.getSource()!=this.node&&(!this.stateSource||null!=t.getState()&&this.stateSource==(t.isSource(t.getState().shape)||!t.isSource(t.getState().text))))&&this.hideTooltip()),this.lastX=t.getX(),this.lastY=t.getY()},mxTooltipHandler.prototype.mouseUp=function(e,t){this.reset(t,!0),this.hideTooltip()},mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)},mxTooltipHandler.prototype.reset=function(e,t){if(this.resetTimer(),t&&this.isEnabled()&&null!=e.getState()&&(null==this.div||"hidden"==this.div.style.visibility)){var n=e.getState(),a=e.getSource(),i=e.getX(),o=e.getY(),s=e.isSource(n.shape)||e.isSource(n.text);this.thread=window.setTimeout(mxUtils.bind(this,function(){if(!this.graph.isEditing()&&!this.graph.panningHandler.isMenuShowing()){var e=this.graph.getTooltip(n,a,i,o);this.show(e,i,o),this.state=n,this.node=a,this.stateSource=s}}),this.delay)}},mxTooltipHandler.prototype.hide=function(){this.resetTimer(),this.hideTooltip()},mxTooltipHandler.prototype.hideTooltip=function(){null!=this.div&&(this.div.style.visibility="hidden")},mxTooltipHandler.prototype.show=function(e,t,n){if(null!=e&&0<e.length){null==this.div&&this.init();var a=mxUtils.getScrollOrigin();this.div.style.left=t+a.x+"px",this.div.style.top=n+mxConstants.TOOLTIP_VERTICAL_OFFSET+a.y+"px",mxUtils.isNode(e)?(this.div.innerHTML="",this.div.appendChild(e)):this.div.innerHTML=e.replace(/\n/g,"<br>"),this.div.style.visibility="",mxUtils.fit(this.div)}},mxTooltipHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxEvent.release(this.div),null!=this.div&&null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null},mxUtils.extend(mxCellTracker,mxCellMarker),mxCellTracker.prototype.mouseDown=function(e,t){},mxCellTracker.prototype.mouseMove=function(e,t){this.isEnabled()&&this.process(t)},mxCellTracker.prototype.mouseUp=function(e,t){this.reset()},mxCellTracker.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),mxCellMarker.prototype.destroy.apply(this))},mxCellHighlight.prototype.keepOnTop=!1,mxCellHighlight.prototype.graph=!0,mxCellHighlight.prototype.state=null,mxCellHighlight.prototype.spacing=2,mxCellHighlight.prototype.resetHandler=null,mxCellHighlight.prototype.setHighlightColor=function(e){this.highlightColor=e,null!=this.shape&&(this.shape.stroke=e)},mxCellHighlight.prototype.drawHighlight=function(){this.shape=this.createShape(),this.repaint(),!this.keepOnTop&&this.shape.node.parentNode.firstChild!=this.shape.node&&this.shape.node.parentNode.insertBefore(this.shape.node,this.shape.node.parentNode.firstChild)},mxCellHighlight.prototype.createShape=function(){var e=null;return(e=this.graph.model.isEdge(this.state.cell)?new mxPolyline(this.state.absolutePoints,this.highlightColor,this.strokeWidth):new mxRectangleShape(new mxRectangle,null,this.highlightColor,this.strokeWidth)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),mxEvent.redirectMouseEvents(e.node,this.graph,this.state),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=this.dashed,e},mxCellHighlight.prototype.repaint=function(){if(null!=this.state&&null!=this.shape){var e=0;this.graph.model.isEdge(this.state.cell)?this.shape.points=this.state.absolutePoints:(this.shape.bounds=new mxRectangle(this.state.x-this.spacing,this.state.y-this.spacing,this.state.width+2*this.spacing,this.state.height+2*this.spacing),e=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")),null!=this.state.shape&&this.shape.setCursor(this.state.shape.getCursor()),0!=e&&(this.shape.rotation=e),this.shape.redraw()}},mxCellHighlight.prototype.hide=function(){this.highlight(null)},mxCellHighlight.prototype.highlight=function(e){this.state!=e&&(null!=this.shape&&(this.shape.destroy(),this.shape=null),this.state=e,null!=this.state&&this.drawHighlight())},mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener(this.repaintHandler),this.graph.getModel().removeListener(this.repaintHandler),this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),null!=this.shape&&(this.shape.destroy(),this.shape=null)},mxDefaultKeyHandler.prototype.editor=null,mxDefaultKeyHandler.prototype.handler=null,mxDefaultKeyHandler.prototype.bindAction=function(e,t,n){var a=mxUtils.bind(this,function(){this.editor.execute(t)});n?this.handler.bindControlKey(e,a):this.handler.bindKey(e,a)},mxDefaultKeyHandler.prototype.destroy=function(){this.handler.destroy(),this.handler=null},mxDefaultPopupMenu.prototype.imageBasePath=null,mxDefaultPopupMenu.prototype.config=null,mxDefaultPopupMenu.prototype.createMenu=function(e,t,n,a){if(null!=this.config){var i=this.createConditions(e,n,a);this.addItems(e,t,n,a,i,this.config.firstChild,null)}},mxDefaultPopupMenu.prototype.addItems=function(e,t,n,a,i,o,s){for(var r=!1;null!=o;){if("add"==o.nodeName){if(null==(l=o.getAttribute("if"))||i[l]){var l=o.getAttribute("as"),l=mxResources.get(l)||l,d=mxUtils.eval(mxUtils.getTextContent(o)),c=o.getAttribute("action"),m=o.getAttribute("icon"),u=o.getAttribute("iconCls");r&&(t.addSeparator(s),r=!1),null!=m&&this.imageBasePath&&(m=this.imageBasePath+m),l=this.addAction(t,e,l,m,d,c,n,s,u),this.addItems(e,t,n,a,i,o.firstChild,l)}}else"separator"==o.nodeName&&(r=!0);o=o.nextSibling}},mxDefaultPopupMenu.prototype.addAction=function(e,t,n,a,i,o,s,r,l){return e.addItem(n,a,function(e){"function"==typeof i&&i.call(t,t,s,e),null!=o&&t.execute(o,s,e)},r,l)},mxDefaultPopupMenu.prototype.createConditions=function(e,t,n){var a=e.graph.getModel(),i=a.getChildCount(t),o=[];for(o.nocell=null==t,o.ncells=1<e.graph.getSelectionCount(),o.notRoot=a.getRoot()!=a.getParent(e.graph.getDefaultParent()),o.cell=null!=t,a=null!=t&&1==e.graph.getSelectionCount(),o.nonEmpty=a&&0<i,o.expandable=a&&e.graph.isCellFoldable(t,!1),o.collapsable=a&&e.graph.isCellFoldable(t,!0),o.validRoot=a&&e.graph.isValidRoot(t),o.emptyValidRoot=o.validRoot&&0==i,o.swimlane=a&&e.graph.isSwimlane(t),i=this.config.getElementsByTagName("condition"),a=0;a<i.length;a++){var s=mxUtils.eval(mxUtils.getTextContent(i[a])),r=i[a].getAttribute("name");null!=r&&"function"==typeof s&&(o[r]=s(e,t,n))}return o},mxDefaultToolbar.prototype.editor=null,mxDefaultToolbar.prototype.toolbar=null,mxDefaultToolbar.prototype.resetHandler=null,mxDefaultToolbar.prototype.spacing=4,mxDefaultToolbar.prototype.connectOnDrop=!1,mxDefaultToolbar.prototype.init=function(e){null!=e&&(this.toolbar=new mxToolbar(e),this.toolbar.addListener(mxEvent.SELECT,mxUtils.bind(this,function(e,t){var n=t.getProperty("function");this.editor.insertFunction=null!=n?mxUtils.bind(this,function(){n.apply(this,arguments),this.toolbar.resetMode()}):null})),this.resetHandler=mxUtils.bind(this,function(){null!=this.toolbar&&this.toolbar.resetMode(!0)}),this.editor.graph.addListener(mxEvent.DOUBLE_CLICK,this.resetHandler),this.editor.addListener(mxEvent.ESCAPE,this.resetHandler))},mxDefaultToolbar.prototype.addItem=function(e,t,n,a){var i=mxUtils.bind(this,function(){null!=n&&0<n.length&&this.editor.execute(n)});return this.toolbar.addItem(e,t,i,a)},mxDefaultToolbar.prototype.addSeparator=function(e){e=e||mxClient.imageBasePath+"/separator.gif",this.toolbar.addSeparator(e)},mxDefaultToolbar.prototype.addCombo=function(){return this.toolbar.addCombo()},mxDefaultToolbar.prototype.addActionCombo=function(e){return this.toolbar.addActionCombo(e)},mxDefaultToolbar.prototype.addActionOption=function(e,t,n){var a=mxUtils.bind(this,function(){this.editor.execute(n)});this.addOption(e,t,a)},mxDefaultToolbar.prototype.addOption=function(e,t,n){return this.toolbar.addOption(e,t,n)},mxDefaultToolbar.prototype.addMode=function(e,t,n,a,i){var o=mxUtils.bind(this,function(){this.editor.setMode(n),null!=i&&i(this.editor)});return this.toolbar.addSwitchMode(e,t,o,a)},mxDefaultToolbar.prototype.addPrototype=function(e,t,n,a,i,o){var s=function(){return"function"==typeof n?n():null!=n?n.clone():null},r=mxUtils.bind(this,function(e,t){"function"==typeof i?i(this.editor,s(),e,t):this.drop(s(),e,t),this.toolbar.resetMode(),mxEvent.consume(e)});return e=this.toolbar.addMode(e,t,r,a,null,o),this.installDropHandler(e,function(e,t,n){r(t,n)}),e},mxDefaultToolbar.prototype.drop=function(e,t,n){var a=this.editor.graph,i=a.getModel();if(null!=n&&!i.isEdge(n)&&this.connectOnDrop&&a.isCellConnectable(n))this.connect(e,t,n);else{for(;null!=n&&!a.isValidDropTarget(n,[e],t);)n=i.getParent(n);this.insert(e,t,n)}},mxDefaultToolbar.prototype.insert=function(e,t,n){var a=this.editor.graph;if(a.canImportCell(e)){var i=mxEvent.getClientX(t),o=mxEvent.getClientY(t),i=mxUtils.convertPoint(a.container,i,o);return a.isSplitEnabled()&&a.isSplitTarget(n,[e],t)?a.splitEdge(n,[e],null,i.x,i.y):this.editor.addVertex(n,e,i.x,i.y)}return null},mxDefaultToolbar.prototype.connect=function(e,t,n){var a=(t=this.editor.graph).getModel();if(null!=n&&t.isCellConnectable(e)&&t.isEdgeValid(null,n,e)){var i=null;a.beginUpdate();try{var o=a.getGeometry(n),s=a.getGeometry(e).clone();s.x=o.x+(o.width-s.width)/2,s.y=o.y+(o.height-s.height)/2;var r=this.spacing*t.gridSize,l=20*a.getDirectedEdgeCount(n,!0);this.editor.horizontalFlow?s.x+=(s.width+o.width)/2+r+l:s.y+=(s.height+o.height)/2+r+l,e.setGeometry(s);var d=a.getParent(n);if(t.addCell(e,d),t.constrainChild(e),i=this.editor.createEdge(n,e),null==a.getGeometry(i)){var c=new mxGeometry;c.relative=!0,a.setGeometry(i,c)}t.addEdge(i,d,n,e)}finally{a.endUpdate()}t.setSelectionCells([e,i]),t.scrollCellToVisible(e)}},mxDefaultToolbar.prototype.installDropHandler=function(e,t){var n=document.createElement("img");n.setAttribute("src",e.getAttribute("src"));var a=mxUtils.bind(this,function(i){n.style.width=2*e.offsetWidth+"px",n.style.height=2*e.offsetHeight+"px",mxUtils.makeDraggable(e,this.editor.graph,t,n),mxEvent.removeListener(n,"load",a)});mxClient.IS_IE?a():mxEvent.addListener(n,"load",a)},mxDefaultToolbar.prototype.destroy=function(){null!=this.resetHandler&&(this.editor.graph.removeListener("dblclick",this.resetHandler),this.editor.removeListener("escape",this.resetHandler),this.resetHandler=null),null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null)},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/editor"),mxEditor.prototype=new mxEventSource,mxEditor.prototype.constructor=mxEditor,mxEditor.prototype.askZoomResource="none"!=mxClient.language?"askZoom":"",mxEditor.prototype.lastSavedResource="none"!=mxClient.language?"lastSaved":"",mxEditor.prototype.currentFileResource="none"!=mxClient.language?"currentFile":"",mxEditor.prototype.propertiesResource="none"!=mxClient.language?"properties":"",mxEditor.prototype.tasksResource="none"!=mxClient.language?"tasks":"",mxEditor.prototype.helpResource="none"!=mxClient.language?"help":"",mxEditor.prototype.outlineResource="none"!=mxClient.language?"outline":"",mxEditor.prototype.outline=null,mxEditor.prototype.graph=null,mxEditor.prototype.graphRenderHint=null,mxEditor.prototype.toolbar=null,mxEditor.prototype.session=null,mxEditor.prototype.status=null,mxEditor.prototype.popupHandler=null,mxEditor.prototype.undoManager=null,mxEditor.prototype.keyHandler=null,mxEditor.prototype.actions=null,mxEditor.prototype.dblClickAction="edit",mxEditor.prototype.swimlaneRequired=!1,mxEditor.prototype.disableContextMenu=!0,mxEditor.prototype.insertFunction=null,mxEditor.prototype.forcedInserting=!1,mxEditor.prototype.templates=null,mxEditor.prototype.defaultEdge=null,mxEditor.prototype.defaultEdgeStyle=null,mxEditor.prototype.defaultGroup=null,mxEditor.prototype.groupBorderSize=null,mxEditor.prototype.filename=null,mxEditor.prototype.linefeed="&#xa;",mxEditor.prototype.postParameterName="xml",mxEditor.prototype.escapePostData=!0,mxEditor.prototype.urlPost=null,mxEditor.prototype.urlImage=null,mxEditor.prototype.urlInit=null,mxEditor.prototype.urlNotify=null,mxEditor.prototype.urlPoll=null,mxEditor.prototype.horizontalFlow=!1,mxEditor.prototype.layoutDiagram=!1,mxEditor.prototype.swimlaneSpacing=0,mxEditor.prototype.maintainSwimlanes=!1,mxEditor.prototype.layoutSwimlanes=!1,mxEditor.prototype.cycleAttributeValues=null,mxEditor.prototype.cycleAttributeIndex=0,mxEditor.prototype.cycleAttributeName="fillColor",mxEditor.prototype.tasks=null,mxEditor.prototype.tasksWindowImage=null,mxEditor.prototype.tasksTop=20,mxEditor.prototype.help=null,mxEditor.prototype.helpWindowImage=null,mxEditor.prototype.urlHelp=null,mxEditor.prototype.helpWidth=300,mxEditor.prototype.helpHeight=260,mxEditor.prototype.propertiesWidth=240,mxEditor.prototype.propertiesHeight=null,mxEditor.prototype.movePropertiesDialog=!1,mxEditor.prototype.validating=!1,mxEditor.prototype.modified=!1,mxEditor.prototype.isModified=function(){return this.modified},mxEditor.prototype.setModified=function(e){this.modified=e},mxEditor.prototype.addActions=function(){this.addAction("save",function(e){e.save()}),this.addAction("print",function(e){new mxPrintPreview(e.graph,1).open()}),this.addAction("show",function(e){mxUtils.show(e.graph,null,10,10)}),this.addAction("exportImage",function(e){var t=e.getUrlImage();if(null==t||mxClient.IS_LOCAL)e.execute("show");else{var n=mxUtils.getViewXml(e.graph,1),n=mxUtils.getXml(n,"\n");mxUtils.submit(t,e.postParameterName+"="+encodeURIComponent(n),document,"_blank")}}),this.addAction("refresh",function(e){e.graph.refresh()}),this.addAction("cut",function(e){e.graph.isEnabled()&&mxClipboard.cut(e.graph)}),this.addAction("copy",function(e){e.graph.isEnabled()&&mxClipboard.copy(e.graph)}),this.addAction("paste",function(e){e.graph.isEnabled()&&mxClipboard.paste(e.graph)}),this.addAction("delete",function(e){e.graph.isEnabled()&&e.graph.removeCells()}),this.addAction("group",function(e){e.graph.isEnabled()&&e.graph.setSelectionCell(e.groupCells())}),this.addAction("ungroup",function(e){e.graph.isEnabled()&&e.graph.setSelectionCells(e.graph.ungroupCells())}),this.addAction("removeFromParent",function(e){e.graph.isEnabled()&&e.graph.removeCellsFromParent()}),this.addAction("undo",function(e){e.graph.isEnabled()&&e.undo()}),this.addAction("redo",function(e){e.graph.isEnabled()&&e.redo()}),this.addAction("zoomIn",function(e){e.graph.zoomIn()}),this.addAction("zoomOut",function(e){e.graph.zoomOut()}),this.addAction("actualSize",function(e){e.graph.zoomActual()}),this.addAction("fit",function(e){e.graph.fit()}),this.addAction("showProperties",function(e,t){e.showProperties(t)}),this.addAction("selectAll",function(e){e.graph.isEnabled()&&e.graph.selectAll()}),this.addAction("selectNone",function(e){e.graph.isEnabled()&&e.graph.clearSelection()}),this.addAction("selectVertices",function(e){e.graph.isEnabled()&&e.graph.selectVertices()}),this.addAction("selectEdges",function(e){e.graph.isEnabled()&&e.graph.selectEdges()}),this.addAction("edit",function(e,t){e.graph.isEnabled()&&e.graph.isCellEditable(t)&&e.graph.startEditingAtCell(t)}),this.addAction("toBack",function(e,t){e.graph.isEnabled()&&e.graph.orderCells(!0)}),this.addAction("toFront",function(e,t){e.graph.isEnabled()&&e.graph.orderCells(!1)}),this.addAction("enterGroup",function(e,t){e.graph.enterGroup(t)}),this.addAction("exitGroup",function(e){e.graph.exitGroup()}),this.addAction("home",function(e){e.graph.home()}),this.addAction("selectPrevious",function(e){e.graph.isEnabled()&&e.graph.selectPreviousCell()}),this.addAction("selectNext",function(e){e.graph.isEnabled()&&e.graph.selectNextCell()}),this.addAction("selectParent",function(e){e.graph.isEnabled()&&e.graph.selectParentCell()}),this.addAction("selectChild",function(e){e.graph.isEnabled()&&e.graph.selectChildCell()}),this.addAction("collapse",function(e){e.graph.isEnabled()&&e.graph.foldCells(!0)}),this.addAction("collapseAll",function(e){if(e.graph.isEnabled()){var t=e.graph.getChildVertices();e.graph.foldCells(!0,!1,t)}}),this.addAction("expand",function(e){e.graph.isEnabled()&&e.graph.foldCells(!1)}),this.addAction("expandAll",function(e){if(e.graph.isEnabled()){var t=e.graph.getChildVertices();e.graph.foldCells(!1,!1,t)}}),this.addAction("bold",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_BOLD)}),this.addAction("italic",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_ITALIC)}),this.addAction("underline",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_UNDERLINE)}),this.addAction("shadow",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_SHADOW)}),this.addAction("alignCellsLeft",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_LEFT)}),this.addAction("alignCellsCenter",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_CENTER)}),this.addAction("alignCellsRight",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_RIGHT)}),this.addAction("alignCellsTop",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_TOP)}),this.addAction("alignCellsMiddle",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_MIDDLE)}),this.addAction("alignCellsBottom",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_BOTTOM)}),this.addAction("alignFontLeft",function(e){e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT)}),this.addAction("alignFontCenter",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER)}),this.addAction("alignFontRight",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_RIGHT)}),this.addAction("alignFontTop",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_TOP)}),this.addAction("alignFontMiddle",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)}),this.addAction("alignFontBottom",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_BOTTOM)}),this.addAction("zoom",function(e){var t=100*e.graph.getView().scale,t=parseFloat(mxUtils.prompt(mxResources.get(e.askZoomResource)||e.askZoomResource,t))/100;isNaN(t)||e.graph.getView().setScale(t)}),this.addAction("toggleTasks",function(e){null!=e.tasks?e.tasks.setVisible(!e.tasks.isVisible()):e.showTasks()}),this.addAction("toggleHelp",function(e){null!=e.help?e.help.setVisible(!e.help.isVisible()):e.showHelp()}),this.addAction("toggleOutline",function(e){null==e.outline?e.showOutline():e.outline.setVisible(!e.outline.isVisible())}),this.addAction("toggleConsole",function(e){mxLog.setVisible(!mxLog.isVisible())})},mxEditor.prototype.createSession=function(){var e=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.SESSION,"session",e))});return this.connect(this.urlInit,this.urlPoll,this.urlNotify,e)},mxEditor.prototype.configure=function(e){null!=e&&(new mxCodec(e.ownerDocument).decode(e,this),this.resetHistory())},mxEditor.prototype.resetFirstTime=function(){document.cookie="mxgraph=seen; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/"},mxEditor.prototype.resetHistory=function(){this.lastSnapshot=(new Date).getTime(),this.undoManager.clear(),this.ignoredChanges=0,this.setModified(!1)},mxEditor.prototype.addAction=function(e,t){this.actions[e]=t},mxEditor.prototype.execute=function(e,t,n){var a=this.actions[e];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(t){throw mxUtils.error("Cannot execute "+e+": "+t.message,280,!0),t}else mxUtils.error("Cannot find action "+e,280,!0)},mxEditor.prototype.addTemplate=function(e,t){this.templates[e]=t},mxEditor.prototype.getTemplate=function(e){return this.templates[e]},mxEditor.prototype.createGraph=function(){var e=new mxGraph(null,null,this.graphRenderHint);return e.setTooltips(!0),e.setPanning(!0),this.installDblClickHandler(e),this.installUndoHandler(e),this.installDrillHandler(e),this.installChangeHandler(e),this.installInsertHandler(e),e.panningHandler.factoryMethod=mxUtils.bind(this,function(e,t,n){return this.createPopupMenu(e,t,n)}),e.connectionHandler.factoryMethod=mxUtils.bind(this,function(e,t){return this.createEdge(e,t)}),this.createSwimlaneManager(e),this.createLayoutManager(e),e},mxEditor.prototype.createSwimlaneManager=function(e){return e=new mxSwimlaneManager(e,!1),e.isHorizontal=mxUtils.bind(this,function(){return this.horizontalFlow}),e.isEnabled=mxUtils.bind(this,function(){return this.maintainSwimlanes}),e},mxEditor.prototype.createLayoutManager=function(e){var t=new mxLayoutManager(e),n=this;return t.getLayout=function(t){var a=null,i=n.graph.getModel();return null!=i.getParent(t)&&(n.layoutSwimlanes&&e.isSwimlane(t)?(null==n.swimlaneLayout&&(n.swimlaneLayout=n.createSwimlaneLayout()),a=n.swimlaneLayout):n.layoutDiagram&&(e.isValidRoot(t)||null==i.getParent(i.getParent(t)))&&(null==n.diagramLayout&&(n.diagramLayout=n.createDiagramLayout()),a=n.diagramLayout)),a},t},mxEditor.prototype.setGraphContainer=function(e){null==this.graph.container&&(this.graph.init(e),this.rubberband=new mxRubberband(this.graph),this.disableContextMenu&&mxEvent.disableContextMenu(e),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.installDblClickHandler=function(e){e.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,function(t,n){var a=n.getProperty("cell");null!=a&&e.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,a),n.consume())}))},mxEditor.prototype.installUndoHandler=function(e){var t=mxUtils.bind(this,function(e,t){var n=t.getProperty("edit");this.undoManager.undoableEditHappened(n)});e.getModel().addListener(mxEvent.UNDO,t),e.getView().addListener(mxEvent.UNDO,t),t=function(t,n){var a=n.getProperty("edit").changes;e.setSelectionCells(e.getSelectionCellsForChanges(a))},this.undoManager.addListener(mxEvent.UNDO,t),this.undoManager.addListener(mxEvent.REDO,t)},mxEditor.prototype.installDrillHandler=function(e){var t=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.ROOT))});e.getView().addListener(mxEvent.DOWN,t),e.getView().addListener(mxEvent.UP,t)},mxEditor.prototype.installChangeHandler=function(e){var t=mxUtils.bind(this,function(t,n){this.setModified(!0),1==this.validating&&e.validateGraph();for(var a=n.getProperty("edit").changes,i=0;i<a.length;i++){var o=a[i];if(o instanceof mxRootChange||o instanceof mxValueChange&&o.cell==this.graph.model.root||o instanceof mxCellAttributeChange&&o.cell==this.graph.model.root){this.fireEvent(new mxEventObject(mxEvent.ROOT));break}}});e.getModel().addListener(mxEvent.CHANGE,t)},mxEditor.prototype.installInsertHandler=function(e){var t=this;e.addMouseListener({mouseDown:function(e,n){null==t.insertFunction||n.isPopupTrigger()||!t.forcedInserting&&null!=n.getState()||(t.graph.clearSelection(),t.insertFunction(n.getEvent(),n.getCell()),this.isActive=!0,n.consume())},mouseMove:function(e,t){this.isActive&&t.consume()},mouseUp:function(e,t){this.isActive&&(this.isActive=!1,t.consume())}})},mxEditor.prototype.createDiagramLayout=function(){var e=this.graph.gridSize,t=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*e,2*e);return t.isVertexIgnored=function(e){return!t.graph.isSwimlane(e)},t},mxEditor.prototype.createSwimlaneLayout=function(){return new mxCompactTreeLayout(this.graph,this.horizontalFlow)},mxEditor.prototype.createToolbar=function(){return new mxDefaultToolbar(null,this)},mxEditor.prototype.setToolbarContainer=function(e){this.toolbar.init(e),mxClient.IS_QUIRKS&&new mxDivResizer(e)},mxEditor.prototype.setStatusContainer=function(e){null==this.status&&(this.status=e,this.addListener(mxEvent.SAVE,mxUtils.bind(this,function(){var e=(new Date).toLocaleString();this.setStatus((mxResources.get(this.lastSavedResource)||this.lastSavedResource)+": "+e)})),this.addListener(mxEvent.OPEN,mxUtils.bind(this,function(){this.setStatus((mxResources.get(this.currentFileResource)||this.currentFileResource)+": "+this.filename)})),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.setStatus=function(e){null!=this.status&&null!=e&&(this.status.innerHTML=e)},mxEditor.prototype.setTitleContainer=function(e){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(t){e.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(e)},mxEditor.prototype.treeLayout=function(e,t){null!=e&&new mxCompactTreeLayout(this.graph,t).execute(e)},mxEditor.prototype.getTitle=function(){for(var e="",t=this.graph,n=t.getCurrentRoot();null!=n&&null!=t.getModel().getParent(t.getModel().getParent(n));)t.isValidRoot(n)&&(e=" > "+t.convertValueToString(n)+e),n=t.getModel().getParent(n);return this.getRootTitle()+e},mxEditor.prototype.getRootTitle=function(){var e=this.graph.getModel().getRoot();return this.graph.convertValueToString(e)},mxEditor.prototype.undo=function(){this.undoManager.undo()},mxEditor.prototype.redo=function(){this.undoManager.redo()},mxEditor.prototype.groupCells=function(){var e=null!=this.groupBorderSize?this.groupBorderSize:this.graph.gridSize;return this.graph.groupCells(this.createGroup(),e)},mxEditor.prototype.createGroup=function(){return this.graph.getModel().cloneCell(this.defaultGroup)},mxEditor.prototype.open=function(e){if(null!=e){var t=mxUtils.load(e).getXml();this.readGraphModel(t.documentElement),this.filename=e,this.fireEvent(new mxEventObject(mxEvent.OPEN,"filename",e))}},mxEditor.prototype.readGraphModel=function(e){new mxCodec(e.ownerDocument).decode(e,this.graph.getModel()),this.resetHistory()},mxEditor.prototype.save=function(e,t){if(null!=(e=e||this.getUrlPost())&&0<e.length){var n=this.writeGraphModel(t);this.postDiagram(e,n),this.setModified(!1)}this.fireEvent(new mxEventObject(mxEvent.SAVE,"url",e))},mxEditor.prototype.postDiagram=function(e,t){this.escapePostData&&(t=encodeURIComponent(t)),mxUtils.post(e,this.postParameterName+"="+t,mxUtils.bind(this,function(n){this.fireEvent(new mxEventObject(mxEvent.POST,"request",n,"url",e,"data",t))}))},mxEditor.prototype.writeGraphModel=function(e){e=null!=e?e:this.linefeed;var t=(new mxCodec).encode(this.graph.getModel());return mxUtils.getXml(t,e)},mxEditor.prototype.getUrlPost=function(){return this.urlPost},mxEditor.prototype.getUrlImage=function(){return this.urlImage},mxEditor.prototype.connect=function(e,t,n,a){var i=null;return mxClient.IS_LOCAL||((i=new mxSession(this.graph.getModel(),e,t,n)).addListener(mxEvent.RECEIVE,mxUtils.bind(this,function(e,t){null!=t.getProperty("node").getAttribute("namespace")&&this.resetHistory()})),i.addListener(mxEvent.DISCONNECT,a),i.addListener(mxEvent.CONNECT,a),i.addListener(mxEvent.NOTIFY,a),i.addListener(mxEvent.GET,a),i.start()),i},mxEditor.prototype.swapStyles=function(e,t){var n=this.graph.getStylesheet().styles[t];this.graph.getView().getStylesheet().putCellStyle(t,this.graph.getStylesheet().styles[e]),this.graph.getStylesheet().putCellStyle(e,n),this.graph.refresh()},mxEditor.prototype.showProperties=function(e){if(null==(e=e||this.graph.getSelectionCell())&&null==(e=this.graph.getCurrentRoot())&&(e=this.graph.getModel().getRoot()),null!=e){this.graph.stopEditing(!0);var t=(n=mxUtils.getOffset(this.graph.container)).x+10,n=n.y;if(null==this.properties||this.movePropertiesDialog){var a=this.graph.getCellBounds(e);null!=a&&(t+=a.x+Math.min(200,a.width),n+=a.y)}else t=this.properties.getX(),n=this.properties.getY();this.hideProperties(),null!=(e=this.createProperties(e))&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,e,t,n,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}},mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties},mxEditor.prototype.createProperties=function(e){var t=this.graph.getModel(),n=t.getValue(e);if(mxUtils.isNode(n)){var a=new mxForm("properties");a.addText("ID",e.getId()).setAttribute("readonly","true");var i=null,o=null,s=null,r=null,l=null;t.isVertex(e)&&null!=(i=t.getGeometry(e))&&(o=a.addText("top",i.y),s=a.addText("left",i.x),r=a.addText("width",i.width),l=a.addText("height",i.height));for(var d=t.getStyle(e),c=a.addText("Style",d||""),m=n.attributes,u=[],n=0;n<m.length;n++)u[n]=a.addTextarea(m[n].nodeName,m[n].nodeValue,"label"==m[n].nodeName?4:2);return n=mxUtils.bind(this,function(){this.hideProperties(),t.beginUpdate();try{null!=i&&(i=i.clone(),i.x=parseFloat(s.value),i.y=parseFloat(o.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),t.setGeometry(e,i)),0<c.value.length?t.setStyle(e,c.value):t.setStyle(e,null);for(var n=0;n<m.length;n++){var a=new mxCellAttributeChange(e,m[n].nodeName,u[n].value);t.execute(a)}this.graph.isAutoSizeCell(e)&&this.graph.updateCellSize(e)}finally{t.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),a.addButtons(n,d),a.table}return null},mxEditor.prototype.hideProperties=function(){null!=this.properties&&(this.properties.destroy(),this.properties=null)},mxEditor.prototype.showTasks=function(){if(null==this.tasks){var e=document.createElement("div");e.style.padding="4px",e.style.paddingLeft="20px";var t=document.body.clientWidth;(t=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,e,t-220,this.tasksTop,200)).setClosable(!0),t.destroyOnClose=!1;var n=mxUtils.bind(this,function(t){mxEvent.release(e),e.innerHTML="",this.createTasks(e)});this.graph.getModel().addListener(mxEvent.CHANGE,n),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,n),this.graph.addListener(mxEvent.ROOT,n),null!=this.tasksWindowImage&&t.setImage(this.tasksWindowImage),this.tasks=t,this.createTasks(e)}this.tasks.setVisible(!0)},mxEditor.prototype.refreshTasks=function(e){null!=this.tasks&&(e=this.tasks.content,mxEvent.release(e),e.innerHTML="",this.createTasks(e))},mxEditor.prototype.createTasks=function(e){},mxEditor.prototype.showHelp=function(e){if(null==this.help){var t=document.createElement("iframe");t.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp),t.setAttribute("height","100%"),t.setAttribute("width","100%"),t.setAttribute("frameBorder","0"),t.style.backgroundColor="white",e=document.body.clientWidth;var n=document.body.clientHeight||document.documentElement.clientHeight,a=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,t,(e-this.helpWidth)/2,(n-this.helpHeight)/3,this.helpWidth,this.helpHeight);a.setMaximizable(!0),a.setClosable(!0),a.destroyOnClose=!1,a.setResizable(!0),null!=this.helpWindowImage&&a.setImage(this.helpWindowImage),mxClient.IS_NS&&(e=function(e){t.setAttribute("height",a.div.offsetHeight-26+"px")},a.addListener(mxEvent.RESIZE_END,e),a.addListener(mxEvent.MAXIMIZE,e),a.addListener(mxEvent.NORMALIZE,e),a.addListener(mxEvent.SHOW,e)),this.help=a}this.help.setVisible(!0)},mxEditor.prototype.showOutline=function(){if(null==this.outline){var e=document.createElement("div");e.style.overflow="hidden",e.style.width="100%",e.style.height="100%",e.style.background="white",e.style.cursor="move";var t=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,e,600,480,200,200,!1),n=new mxOutline(this.graph,e);t.setClosable(!0),t.setResizable(!0),t.destroyOnClose=!1,t.addListener(mxEvent.RESIZE_END,function(){n.update()}),this.outline=t,this.outline.outline=n}this.outline.setVisible(!0),this.outline.outline.update(!0)},mxEditor.prototype.setMode=function(e){"select"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!1)):"connect"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!0)):"pan"==e&&(this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.setConnectable(!1))},mxEditor.prototype.createPopupMenu=function(e,t,n){this.popupHandler.createMenu(this,e,t,n)},mxEditor.prototype.createEdge=function(e,t){var n=null;if(null!=this.defaultEdge)n=this.graph.getModel().cloneCell(this.defaultEdge);else{(n=new mxCell("")).setEdge(!0);var a=new mxGeometry;a.relative=!0,n.setGeometry(a)}return null!=(a=this.getEdgeStyle())&&n.setStyle(a),n},mxEditor.prototype.getEdgeStyle=function(){return this.defaultEdgeStyle},mxEditor.prototype.consumeCycleAttribute=function(e){return null!=this.cycleAttributeValues&&0<this.cycleAttributeValues.length&&this.graph.isSwimlane(e)?this.cycleAttributeValues[this.cycleAttributeIndex++%this.cycleAttributeValues.length]:null},mxEditor.prototype.cycleAttribute=function(e){if(null!=this.cycleAttributeName){var t=this.consumeCycleAttribute(e);null!=t&&e.setStyle(e.getStyle()+";"+this.cycleAttributeName+"="+t)}},mxEditor.prototype.addVertex=function(e,t,n,a){for(var i=this.graph.getModel();null!=e&&!this.graph.isValidDropTarget(e);)e=i.getParent(e);e=null!=e?e:this.graph.getSwimlaneAt(n,a);var o=this.graph.getView().scale,s=i.getGeometry(t),r=i.getGeometry(e);if(this.graph.isSwimlane(t)&&!this.graph.swimlaneNesting)e=null;else{if(null==e&&this.swimlaneRequired)return null;if(null!=e&&null!=r){var l=this.graph.getView().getState(e);if(null!=l){if(n-=l.origin.x*o,a-=l.origin.y*o,this.graph.isConstrainedMoving){var r=s.width,d=s.height,c=l.x+l.width;n+r>c&&(n-=n+r-c),a+d>(c=l.y+l.height)&&(a-=a+d-c)}}else null!=r&&(n-=r.x*o,a-=r.y*o)}}(s=s.clone()).x=this.graph.snap(n/o-this.graph.getView().translate.x-this.graph.gridSize/2),s.y=this.graph.snap(a/o-this.graph.getView().translate.y-this.graph.gridSize/2),t.setGeometry(s),null==e&&(e=this.graph.getDefaultParent()),this.cycleAttribute(t),this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",t,"parent",e)),i.beginUpdate();try{null!=(t=this.graph.addCell(t,e))&&(this.graph.constrainChild(t),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",t)))}finally{i.endUpdate()}return null!=t&&(this.graph.setSelectionCell(t),this.graph.scrollCellToVisible(t),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",t))),t},mxEditor.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tasks&&this.tasks.destroy(),null!=this.outline&&this.outline.destroy(),null!=this.properties&&this.properties.destroy(),null!=this.keyHandler&&this.keyHandler.destroy(),null!=this.rubberband&&this.rubberband.destroy(),null!=this.toolbar&&this.toolbar.destroy(),null!=this.graph&&this.graph.destroy(),this.templates=this.status=null)};var mxCodecRegistry={codecs:[],aliases:[],register:function(e){if(null!=e){var t=e.getName();mxCodecRegistry.codecs[t]=e;var n=mxUtils.getFunctionName(e.template.constructor);n!=t&&mxCodecRegistry.addAlias(n,t)}return e},addAlias:function(e,t){mxCodecRegistry.aliases[e]=t},getCodec:function(e){t=null;if(null!=e){var t=mxUtils.getFunctionName(e),n=mxCodecRegistry.aliases[t];if(null!=n&&(t=n),null==(t=mxCodecRegistry.codecs[t]))try{t=new mxObjectCodec(new e),mxCodecRegistry.register(t)}catch(e){}}return t}};mxCodec.prototype.document=null,mxCodec.prototype.objects=null,mxCodec.prototype.encodeDefaults=!1,mxCodec.prototype.putObject=function(e,t){return this.objects[e]=t},mxCodec.prototype.getObject=function(e){var t=null;return null!=e&&null==(t=this.objects[e])&&null==(t=this.lookup(e))&&null!=(e=this.getElementById(e))&&(t=this.decode(e)),t},mxCodec.prototype.lookup=function(e){return null},mxCodec.prototype.getElementById=function(e,t){return mxUtils.findNodeByAttribute(this.document.documentElement,null!=t?t:"id",e)},mxCodec.prototype.getId=function(e){var t=null;return null!=e&&null==(t=this.reference(e))&&e instanceof mxCell&&null==(t=e.getId())&&0==(t=mxCellPath.create(e)).length&&(t="root"),t},mxCodec.prototype.reference=function(e){return null},mxCodec.prototype.encode=function(e){var t=null;if(null!=e&&null!=e.constructor){var n=mxCodecRegistry.getCodec(e.constructor);null!=n?t=n.encode(this,e):mxUtils.isNode(e)?t=mxClient.IS_IE?e.cloneNode(!0):this.document.importNode(e,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(e.constructor))}return t},mxCodec.prototype.decode=function(a,b){var c=null;if(null!=a&&a.nodeType==mxConstants.NODETYPE_ELEMENT){var d=null;try{d=eval(a.nodeName)}catch(e){}try{var f=mxCodecRegistry.getCodec(d);null!=f?c=f.decode(this,a,b):(c=a.cloneNode(!0)).removeAttribute("as")}catch(e){mxLog.debug("Cannot decode "+a.nodeName+": "+e.message)}}return c},mxCodec.prototype.encodeCell=function(e,t,n){if(t.appendChild(this.encode(e)),null==n||n){n=e.getChildCount();for(var a=0;a<n;a++)this.encodeCell(e.getChildAt(a),t)}},mxCodec.prototype.isCellCodec=function(e){return null!=e&&"function"==typeof e.isCellCodec&&e.isCellCodec()},mxCodec.prototype.decodeCell=function(e,t){t=null==t||t;var n=null;if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){if(n=mxCodecRegistry.getCodec(e.nodeName),!this.isCellCodec(n))for(var a=e.firstChild;null!=a&&!this.isCellCodec(n);)n=mxCodecRegistry.getCodec(a.nodeName),a=a.nextSibling;this.isCellCodec(n)||(n=mxCodecRegistry.getCodec(mxCell)),n=n.decode(this,e),t&&this.insertIntoGraph(n)}return n},mxCodec.prototype.insertIntoGraph=function(e){var t=e.parent,n=e.getTerminal(!0),a=e.getTerminal(!1);e.setTerminal(null,!1),e.setTerminal(null,!0),e.parent=null,null!=t&&t.insert(e),null!=n&&n.insertEdge(e,!0),null!=a&&a.insertEdge(e,!1)},mxCodec.prototype.setAttribute=function(e,t,n){null!=t&&null!=n&&e.setAttribute(t,n)},mxObjectCodec.prototype.template=null,mxObjectCodec.prototype.exclude=null,mxObjectCodec.prototype.idrefs=null,mxObjectCodec.prototype.mapping=null,mxObjectCodec.prototype.reverse=null,mxObjectCodec.prototype.getName=function(){return mxUtils.getFunctionName(this.template.constructor)},mxObjectCodec.prototype.cloneTemplate=function(){return new this.template.constructor},mxObjectCodec.prototype.getFieldName=function(e){if(null!=e){var t=this.reverse[e];null!=t&&(e=t)}return e},mxObjectCodec.prototype.getAttributeName=function(e){if(null!=e){var t=this.mapping[e];null!=t&&(e=t)}return e},mxObjectCodec.prototype.isExcluded=function(e,t,n,a){return t==mxObjectIdentity.FIELD_NAME||0<=mxUtils.indexOf(this.exclude,t)},mxObjectCodec.prototype.isReference=function(e,t,n,a){return 0<=mxUtils.indexOf(this.idrefs,t)},mxObjectCodec.prototype.encode=function(e,t){var n=e.document.createElement(this.getName());return t=this.beforeEncode(e,t,n),this.encodeObject(e,t,n),this.afterEncode(e,t,n)},mxObjectCodec.prototype.encodeObject=function(e,t,n){e.setAttribute(n,"id",e.getId(t));for(var a in t){var i=a,o=t[i];null!=o&&!this.isExcluded(t,i,o,!0)&&(mxUtils.isNumeric(i)&&(i=null),this.encodeValue(e,t,i,o,n))}},mxObjectCodec.prototype.encodeValue=function(e,t,n,a,i){if(null!=a){if(this.isReference(t,n,a,!0)){var o=e.getId(a);if(null==o)return void mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+n+"="+a);a=o}o=this.template[n],(null==n||e.encodeDefaults||o!=a)&&(n=this.getAttributeName(n),this.writeAttribute(e,t,n,a,i))}},mxObjectCodec.prototype.writeAttribute=function(e,t,n,a,i){"object"!=typeof a?this.writePrimitiveAttribute(e,t,n,a,i):this.writeComplexAttribute(e,t,n,a,i)},mxObjectCodec.prototype.writePrimitiveAttribute=function(e,t,n,a,i){a=this.convertValueToXml(a),null==n?(t=e.document.createElement("add"),"function"==typeof a?t.appendChild(e.document.createTextNode(a)):e.setAttribute(t,"value",a),i.appendChild(t)):"function"!=typeof a&&e.setAttribute(i,n,a)},mxObjectCodec.prototype.writeComplexAttribute=function(e,t,n,a,i){null!=(e=e.encode(a))?(null!=n&&e.setAttribute("as",n),i.appendChild(e)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+n+": "+a)},mxObjectCodec.prototype.convertValueToXml=function(e){return void 0!==e.length||1!=e&&0!=e||(e=1==e?"1":"0"),e},mxObjectCodec.prototype.convertValueFromXml=function(e){return mxUtils.isNumeric(e)&&(e=parseFloat(e)),e},mxObjectCodec.prototype.beforeEncode=function(e,t,n){return t},mxObjectCodec.prototype.afterEncode=function(e,t,n){return n},mxObjectCodec.prototype.decode=function(e,t,n){var a=t.getAttribute("id"),i=e.objects[a];return null==i&&(i=n||this.cloneTemplate(),null!=a&&e.putObject(a,i)),t=this.beforeDecode(e,t,i),this.decodeNode(e,t,i),this.afterDecode(e,t,i)},mxObjectCodec.prototype.decodeNode=function(e,t,n){null!=t&&(this.decodeAttributes(e,t,n),this.decodeChildren(e,t,n))},mxObjectCodec.prototype.decodeAttributes=function(e,t,n){if(null!=(t=t.attributes))for(var a=0;a<t.length;a++)this.decodeAttribute(e,t[a],n)},mxObjectCodec.prototype.decodeAttribute=function(e,t,n){var a=t.nodeName;if("as"!=a&&"id"!=a){t=this.convertValueFromXml(t.nodeValue);var i=this.getFieldName(a);if(this.isReference(n,i,t,!1)){if(null==(e=e.getObject(t)))return void mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+a+"="+t);t=e}this.isExcluded(n,a,t,!1)||(n[a]=t)}},mxObjectCodec.prototype.decodeChildren=function(e,t,n){for(t=t.firstChild;null!=t;){var a=t.nextSibling;t.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,t,n)&&this.decodeChild(e,t,n),t=a}},mxObjectCodec.prototype.decodeChild=function(e,t,n){var a=this.getFieldName(t.getAttribute("as"));if(null==a||!this.isExcluded(n,a,t,!1)){var i=this.getFieldTemplate(n,a,t),o=null;"add"==t.nodeName?null==(o=t.getAttribute("value"))&&(o=mxUtils.eval(mxUtils.getTextContent(t))):o=e.decode(t,i),this.addObjectValue(n,a,o,i)}},mxObjectCodec.prototype.getFieldTemplate=function(e,t,n){return(e=e[t])instanceof Array&&0<e.length&&(e=null),e},mxObjectCodec.prototype.addObjectValue=function(e,t,n,a){null!=n&&n!=a&&(null!=t&&0<t.length?e[t]=n:e.push(n))},mxObjectCodec.prototype.processInclude=function(e,t,n){if("include"==t.nodeName){if(null!=(t=t.getAttribute("name")))try{var a=mxUtils.load(t).getDocumentElement();null!=a&&e.decode(a,n)}catch(e){}return!0}return!1},mxObjectCodec.prototype.beforeDecode=function(e,t,n){return t},mxObjectCodec.prototype.afterDecode=function(e,t,n){return n},mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxCell,["children","edges","overlays","mxTransient"],["parent","source","target"]);return e.isCellCodec=function(){return!0},e.isExcluded=function(e,t,n,a){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||a&&"value"==t&&n.nodeType==mxConstants.NODETYPE_ELEMENT},e.afterEncode=function(e,t,n){if(null!=t.value&&t.value.nodeType==mxConstants.NODETYPE_ELEMENT){var a=n;(n=mxClient.IS_IE?t.value.cloneNode(!0):e.document.importNode(t.value,!0)).appendChild(a),e=a.getAttribute("id"),n.setAttribute("id",e),a.removeAttribute("id")}return n},e.beforeDecode=function(e,t,n){var a=t,i=this.getName();if(t.nodeName!=i?(a=t.getElementsByTagName(i)[0],null!=a&&a.parentNode==t?(mxUtils.removeWhitespace(a,!0),mxUtils.removeWhitespace(a,!1),a.parentNode.removeChild(a)):a=null,n.value=t.cloneNode(!0),null!=(t=n.value.getAttribute("id"))&&(n.setId(t),n.value.removeAttribute("id"))):n.setId(t.getAttribute("id")),null!=a)for(t=0;t<this.idrefs.length;t++){var i=this.idrefs[t],o=a.getAttribute(i);if(null!=o){a.removeAttribute(i);var s=e.objects[o]||e.lookup(o);null==s&&null!=(o=e.getElementById(o))&&(s=(mxCodecRegistry.codecs[o.nodeName]||this).decode(e,o)),n[i]=s}}return a},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphModel);return e.encodeObject=function(e,t,n){var a=e.document.createElement("root");e.encodeCell(t.getRoot(),a),n.appendChild(a)},e.decodeChild=function(e,t,n){"root"==t.nodeName?this.decodeRoot(e,t,n):mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeRoot=function(e,t,n){var a=null;for(t=t.firstChild;null!=t;){var i=e.decodeCell(t);null!=i&&null==i.getParent()&&(a=i),t=t.nextSibling}null!=a&&n.setRoot(a)},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxRootChange,["model","previous","root"]);return e.afterEncode=function(e,t,n){return e.encodeCell(t.root,n),n},e.beforeDecode=function(e,t,n){if(null!=t.firstChild&&t.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(t=t.cloneNode(!0)).firstChild;for(n.root=e.decodeCell(a,!1),n=a.nextSibling,a.parentNode.removeChild(a),a=n;null!=a;)n=a.nextSibling,e.decodeCell(a),a.parentNode.removeChild(a),a=n}return t},e.afterDecode=function(e,t,n){return n.previous=n.root,n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);return e.isReference=function(e,t,n,a){return!("child"!=t||null==e.previous&&a)||0<=mxUtils.indexOf(this.idrefs,t)},e.afterEncode=function(e,t,n){return this.isReference(t,"child",t.child,!0)?n.setAttribute("child",e.getId(t.child)):e.encodeCell(t.child,n),n},e.beforeDecode=function(e,t,n){if(null!=t.firstChild&&t.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(t=t.cloneNode(!0)).firstChild;for(n.child=e.decodeCell(a,!1),n=a.nextSibling,a.parentNode.removeChild(a),a=n;null!=a;){if(n=a.nextSibling,a.nodeType==mxConstants.NODETYPE_ELEMENT){var i=a.getAttribute("id");null==e.lookup(i)&&e.decodeCell(a)}a.parentNode.removeChild(a),a=n}}else a=t.getAttribute("child"),n.child=e.getObject(a);return t},e.afterDecode=function(e,t,n){return n.child.parent=n.previous,n.previous=n.parent,n.previousIndex=n.index,n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);return e.afterDecode=function(e,t,n){return n.previous=n.terminal,n},e}());var mxGenericChangeCodec=function(e,t){var n=new mxObjectCodec(e,["model","previous"],["cell"]);return n.afterDecode=function(e,n,a){return mxUtils.isNode(a.cell)&&(a.cell=e.decodeCell(a.cell,!1)),a.previous=a[t],a},n};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange,"value")),mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange,"style")),mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange,"geometry")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange,"collapsed")),mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange,"visible")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange,"value")),mxCodecRegistry.register(function(){return new mxObjectCodec(new mxGraph,"graphListeners eventListeners view container cellRenderer editor selection".split(" "))}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphView);return e.encode=function(e,t){return this.encodeCell(e,t,t.graph.getModel().getRoot())},e.encodeCell=function(e,t,n){var a=t.graph.getModel(),i=t.getState(n),o=a.getParent(n);if(null==o||null!=i){var s=a.getChildCount(n),r=t.graph.getCellGeometry(n),l=null;if(o==a.getRoot()?l="layer":null==o?l="graph":a.isEdge(n)?l="edge":0<s&&null!=r?l="group":a.isVertex(n)&&(l="vertex"),null!=l){var d=e.document.createElement(l);if(null!=t.graph.getLabel(n)&&(d.setAttribute("label",t.graph.getLabel(n)),t.graph.isHtmlLabel(n)&&d.setAttribute("html",!0)),null==o){var c=t.getGraphBounds();null!=c&&(d.setAttribute("x",Math.round(c.x)),d.setAttribute("y",Math.round(c.y)),d.setAttribute("width",Math.round(c.width)),d.setAttribute("height",Math.round(c.height))),d.setAttribute("scale",t.scale)}else if(null!=i&&null!=r){for(c in i.style)"function"==typeof(o=i.style[c])&&"object"==typeof o&&(o=mxStyleRegistry.getName(o)),null!=o&&"function"!=typeof o&&"object"!=typeof o&&d.setAttribute(c,o);if(null!=(o=i.absolutePoints)&&0<o.length){for(r=Math.round(o[0].x)+","+Math.round(o[0].y),c=1;c<o.length;c++)r+=" "+Math.round(o[c].x)+","+Math.round(o[c].y);d.setAttribute("points",r)}else d.setAttribute("x",Math.round(i.x)),d.setAttribute("y",Math.round(i.y)),d.setAttribute("width",Math.round(i.width)),d.setAttribute("height",Math.round(i.height));null!=(c=i.absoluteOffset)&&(0!=c.x&&d.setAttribute("dx",Math.round(c.x)),0!=c.y&&d.setAttribute("dy",Math.round(c.y)))}for(c=0;c<s;c++)null!=(i=this.encodeCell(e,t,a.getChildAt(n,c)))&&d.appendChild(i)}}return d},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxStylesheet);return e.encode=function(e,t){var n,a=e.document.createElement(this.getName());for(n in t.styles){var i=t.styles[n],o=e.document.createElement("add");if(null!=n){o.setAttribute("as",n);for(var s in i){var r=this.getStringValue(s,i[s]);if(null!=r){var l=e.document.createElement("add");l.setAttribute("value",r),l.setAttribute("as",s),o.appendChild(l)}}0<o.childNodes.length&&a.appendChild(o)}}return a},e.getStringValue=function(e,t){var n=typeof t;return"function"==n?t=mxStyleRegistry.getName(style[j]):"object"==n&&(t=null),t},e.decode=function(e,t,n){n=n||new this.template.constructor;var a=t.getAttribute("id");for(null!=a&&(e.objects[a]=n),t=t.firstChild;null!=t;){if(!this.processInclude(e,t,n)&&"add"==t.nodeName&&null!=(a=t.getAttribute("as"))){var i=t.getAttribute("extend"),o=null!=i?mxUtils.clone(n.styles[i]):null;for(null==o&&(null!=i&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+i+" not found to extend"),o={}),i=t.firstChild;null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT){var s=i.getAttribute("as");if("add"==i.nodeName){var r=mxUtils.getTextContent(i),l=null;null!=r&&0<r.length?l=mxUtils.eval(r):(l=i.getAttribute("value"),mxUtils.isNumeric(l)&&(l=parseFloat(l))),null!=l&&(o[s]=l)}else"remove"==i.nodeName&&delete o[s]}i=i.nextSibling}n.putCellStyle(a,o)}t=t.nextSibling}return n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultKeyHandler);return e.encode=function(e,t){return null},e.decode=function(e,t,n){if(null!=n)for(t=t.firstChild;null!=t;){if(!this.processInclude(e,t,n)&&"add"==t.nodeName){var a=t.getAttribute("as"),i=t.getAttribute("action"),o=t.getAttribute("control");n.bindAction(a,i,o)}t=t.nextSibling}return n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultToolbar);return e.encode=function(e,t){return null},e.decode=function(e,t,n){if(null!=n){var a=n.editor;for(t=t.firstChild;null!=t;){if(t.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,t,n))if("separator"==t.nodeName)n.addSeparator();else if("br"==t.nodeName)n.toolbar.addBreak();else if("hr"==t.nodeName)n.toolbar.addLine();else if("add"==t.nodeName){var i=t.getAttribute("as"),i=mxResources.get(i)||i,o=t.getAttribute("icon"),s=t.getAttribute("pressedIcon"),r=t.getAttribute("action"),l=t.getAttribute("mode"),d=t.getAttribute("template"),c="0"!=t.getAttribute("toggle"),m=mxUtils.getTextContent(t),u=null;if(null!=r)u=n.addItem(i,o,r,s);else if(null!=l)var p=mxUtils.eval(m),u=n.addMode(i,o,l,s,p);else if(null!=d||null!=m&&0<m.length)u=a.templates[d],d=t.getAttribute("style"),null!=u&&null!=d&&(u=u.clone()).setStyle(d),d=null,null!=m&&0<m.length&&(d=mxUtils.eval(m)),u=n.addPrototype(i,o,u,s,d,c);else if(0<(s=mxUtils.getChildNodes(t)).length)if(null==o)for(d=n.addActionCombo(i),i=0;i<s.length;i++)c=s[i],"separator"==c.nodeName?n.addOption(d,"---"):"add"==c.nodeName&&(o=c.getAttribute("as"),c=c.getAttribute("action"),n.addActionOption(d,o,c));else{var g=null,h=n.addPrototype(i,o,function(){if(null!=(e=a.templates[g.value])){var e=e.clone(),t=g.options[g.selectedIndex].cellStyle;return null!=t&&e.setStyle(t),e}return mxLog.warn("Template "+e+" not found"),null},null,null,c),g=n.addCombo();for(mxEvent.addListener(g,"change",function(){n.toolbar.selectMode(h,function(e){return e=mxUtils.convertPoint(a.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a.addVertex(null,p(),e.x,e.y)}),n.toolbar.noReset=!1}),i=0;i<s.length;i++)c=s[i],"separator"==c.nodeName?n.addOption(g,"---"):"add"==c.nodeName&&(o=c.getAttribute("as"),m=c.getAttribute("template"),n.addOption(g,o,m||d).cellStyle=c.getAttribute("style"))}null!=u&&null!=(d=t.getAttribute("id"))&&0<d.length&&u.setAttribute("id",d)}t=t.nextSibling}}return n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultPopupMenu);return e.encode=function(e,t){return null},e.decode=function(e,t,n){var a=t.getElementsByTagName("include")[0];return null!=a?this.processInclude(e,a,n):null!=n&&(n.config=t),n},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));return e.afterDecode=function(e,t,n){return null!=(e=t.getAttribute("defaultEdge"))&&(t.removeAttribute("defaultEdge"),n.defaultEdge=n.templates[e]),null!=(e=t.getAttribute("defaultGroup"))&&(t.removeAttribute("defaultGroup"),n.defaultGroup=n.templates[e]),n},e.decodeChild=function(e,t,n){if("Array"==t.nodeName){if("templates"==t.getAttribute("as"))return void this.decodeTemplates(e,t,n)}else if("ui"==t.nodeName)return void this.decodeUi(e,t,n);mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeUi=function(e,t,n){for(e=t.firstChild;null!=e;){if("add"==e.nodeName){t=e.getAttribute("as");var a=e.getAttribute("element"),i=e.getAttribute("style"),o=null;if(null!=a)null!=(o=document.getElementById(a))&&null!=i&&(o.style.cssText+=";"+i);else{var a=parseInt(e.getAttribute("x")),s=parseInt(e.getAttribute("y")),r=e.getAttribute("width"),l=e.getAttribute("height");(o=document.createElement("div")).style.cssText=i,new mxWindow(mxResources.get(t)||t,o,a,s,r,l,!1,!0).setVisible(!0)}"graph"==t?n.setGraphContainer(o):"toolbar"==t?n.setToolbarContainer(o):"title"==t?n.setTitleContainer(o):"status"==t?n.setStatusContainer(o):"map"==t&&n.setMapContainer(o)}else"resource"==e.nodeName?mxResources.add(e.getAttribute("basename")):"stylesheet"==e.nodeName&&mxClient.link("stylesheet",e.getAttribute("name"));e=e.nextSibling}},e.decodeTemplates=function(e,t,n){null==n.templates&&(n.templates=[]),t=mxUtils.getChildNodes(t);for(var a=0;a<t.length;a++){for(var i=t[a].getAttribute("as"),o=t[a].firstChild;null!=o&&1!=o.nodeType;)o=o.nextSibling;null!=o&&(n.templates[i]=e.decodeCell(o))}},e}()),EditorUi=function(e,t,n){this.projectDesignController=e,this.editor=t||new Editor,this.container=n||document.body;var a=t.graph,i=this;(new Image).src=mxPopupMenu.prototype.submenuImage,null!=mxConnectionHandler.prototype.connectImage&&((new Image).src=mxConnectionHandler.prototype.connectImage.src),this.actions=new Actions(this),this.menus=new Menus(this),this.createDivs(),this.refresh(),this.createUi();var o=mxUtils.bind(this,function(e){return null==e&&(e=window.event),!!this.isSelectionAllowed(e)||a.isEditing()});this.container==document.body&&(this.menubarContainer.onselectstart=o,this.menubarContainer.onmousedown=o,this.toolbarContainer.onselectstart=o,this.toolbarContainer.onmousedown=o,this.diagramContainer.onselectstart=o,this.diagramContainer.onmousedown=o,this.sidebarContainer.onselectstart=o,this.sidebarContainer.onmousedown=o,this.footerContainer.onselectstart=o,this.footerContainer.onmousedown=o),mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?(mxEvent.addListener(this.diagramContainer,"contextmenu",o),mxEvent.addListener(this.sidebarContainer,"contextmenu",o)):(this.diagramContainer.oncontextmenu=o,this.sidebarContainer.oncontextmenu=o),a.init(this.diagramContainer),a.refresh(),a.container.setAttribute("tabindex","0"),a.container.style.cursor="default",a.container.style.backgroundImage="url("+t.gridImage+")",a.container.style.backgroundPosition="-1px -1px",a.container.focus();var s=a.fireMouseEvent;a.fireMouseEvent=function(e,t,n){e==mxEvent.MOUSE_DOWN&&this.container.focus(),s.apply(this,arguments)},this.createMultiplicities(a.multiplicities,["start","finally","end"],[[1,1],[1,1],[0,0]],[[0,0],[0,0],[1,"n"]]),this.createMultiplicities(a.multiplicities,["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[[1,1],[0,0],[0,1],[0,1],[0,1],[1,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["set","math"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["background","playback","menu","saydigits","saynumber","sayphonetic","tts","ispeechtts","getdigits","getsecretdigits"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["record"],[[1,1]],[[1,"n"]]),this.createMultiplicities(a.multiplicities,["database","ispeechasr","sendSMS","sendMail","sendFax"],[[1,1],[1,1],[1,1],[1,1],[1,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["gotoc","gotoif","gotoiftime","vswitch"],[[0,0],[1,2],[1,2],[1,"n"]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["queuelog","goal"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["noop","system","agi","subproject","custom_app"],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),a.dblClick=function(e,t){var n=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch"],o=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(o),!this.isEnabled()||mxEvent.isConsumed(e)||o.isConsumed()||(this.getModel().isEdge(t)?n.indexOf(t.source.value.tagName)>=0&&this.startEditingAtCell(t):this.getModel().isVertex(t)&&i.projectDesignController.openDialog(t.getValue(),function(e){for(var n=0;n<e.length;n+=1)t.setAttribute(e[n].name,e[n].value);a.refresh(t)}),o.consume())},a.panningHandler.autoExpand=!0,a.panningHandler.factoryMethod=mxUtils.bind(this,function(e,t,n){this.menus.createPopupMenu(e,t,n)}),t.outline.init(this.outlineContainer),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){a.panningHandler.hideMenu()})),mxClient.IS_TOUCH&&(mxEvent.addListener(a.container,"gesturechange",mxUtils.bind(this,function(e){a.view.getDrawPane().setAttribute("transform","scale("+e.scale+")"),a.view.getOverlayPane().style.visibility="hidden"})),mxEvent.addListener(a.container,"gestureend",mxUtils.bind(this,function(e){a.view.getDrawPane().removeAttribute("transform"),a.zoomToCenter=!0,a.zoom(e.scale),a.view.getOverlayPane().style.visibility="visible"})));var r=this.createKeyHandler(t);this.getKeyHandler=function(){return r},mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){this.refresh(),a.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.init(),this.open()},EditorUi.prototype.splitSize=mxClient.IS_TOUCH?16:8,EditorUi.prototype.menubarHeight=33,EditorUi.prototype.toolbarHeight=36,EditorUi.prototype.footerHeight=0,EditorUi.prototype.hsplitPosition=204,EditorUi.prototype.vsplitPosition=100,EditorUi.prototype.init=function(){this.addUndoListener(),this.addSelectionListener();var e=this.actions.get("paste"),t=function(){e.setEnabled(!mxClipboard.isEmpty())},n=mxClipboard.cut;mxClipboard.cut=function(){n.apply(this,arguments),t()};var a=mxClipboard.copy;mxClipboard.copy=function(){a.apply(this,arguments),t()}},EditorUi.prototype.isSelectionAllowed=function(e){return!1},EditorUi.prototype.exportXML=function(e){var t=window.document.createElement("a");t.href="data:attachment/text;charset=utf-8,"+encodeURI(e),t.download=this.editor.filename+".xml",t.target="_self",t.click()},EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(e,t){try{var n=mxUtils.parseXml(e);this.editor.setGraphXml(n.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=t&&(this.editor.filename=t)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}}))}catch(e){}},EditorUi.prototype.openString=function(e,t,n){try{var a=mxUtils.parseXml(e);this.editor.setGraphXml(a.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=t&&(this.editor.filename=t),null!=n&&(this.editor.data=n)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}},EditorUi.prototype.validate=function(e,t){for(var n=this.editor.graph,e=null!=e?e:n.model.getRoot(),t=null!=t?t:{},a=!0,i=n.model.getChildCount(e),o=0;o<i;o++){var s=n.model.getChildAt(e,o),r=t;n.isValidRoot(s)&&(r={}),null!=(r=this.validate(s,r))?n.setCellWarning(s,r.replace(/\n/g,"<br>")):n.setCellWarning(s,null),a=a&&null==r}if(i="",n.model.isVertex(e))switch(e.value.nodeName){case"start":i=this.validateBlock("start")?"":"Only one Start block is allowed\n";break;case"finally":i=this.validateBlock("finally")?"":"Only one Finally block is allowed\n";break;case"playback":i=e.value.getAttribute("file_id")>0?"":mxResources.get("noAudioSelected")+"\n";break;case"answer":i=e.value.getAttribute("timeout")>=0?"":mxResources.get("invalidTimeout")+"\n";break;case"menu":i=e.value.getAttribute("file_id")>0?"":mxResources.get("noAudioSelected")+"\n",i+=e.value.getAttribute("digit")>0?"":mxResources.get("wrongMaxDigit")+"\n",i+=e.value.getAttribute("response")>=0?"":mxResources.get("invalidTimeout")+"\n",i+=e.value.getAttribute("retry")>=0?"":mxResources.get("invalidRetry")+"\n";break;case"getdigits":i=e.value.getAttribute("file_id")>0?"":mxResources.get("noAudioSelected")+"\n",i+=e.value.getAttribute("variable_id")>0?"":mxResources.get("noVariableSelected")+"\n",i+=e.value.getAttribute("mindigit")>0?"":mxResources.get("wrongMinDigit")+"\n",i+=e.value.getAttribute("maxdigit")>0?"":mxResources.get("wrongMaxDigit")+"\n",i+=e.value.getAttribute("retry")>=0?"":mxResources.get("invalidRetry")+"\n";break;case"getsecretdigits":i=e.value.getAttribute("file_id")>0?"":mxResources.get("noAudioSelected")+"\n",i+=e.value.getAttribute("variable_id")>0?"":mxResources.get("noVariableSelected")+"\n",i+=e.value.getAttribute("mindigit")>0?"":mxResources.get("wrongMinDigit")+"\n",i+=e.value.getAttribute("maxdigit")>0?"":mxResources.get("wrongMaxDigit")+"\n",i+=e.value.getAttribute("hiddendigitsnum")>=0?"":mxResources.get("wrongHiddenDigitsnum")+"\n",i+=e.value.getAttribute("retry")>=0?"":mxResources.get("invalidRetry")+"\n";break;case"vswitch":i=e.value.getAttribute("variable_id")>0?"":mxResources.get("noVariableSelected")+"\n";break;case"database":i=e.value.getAttribute("odbc_id")>0?"":mxResources.get("noDatabaseSelected")+"\n",i+=""!==e.value.getAttribute("query")?"":mxResources.get("missingQuery")+"\n";break;case"set":case"math":i=e.value.getAttribute("variable_id")>0?"":mxResources.get("noVariableSelected")+"\n";break;case"gotoc":i=""!==e.value.getAttribute("context")?"":mxResources.get("noContextSelected")+"\n",i+=""!==e.value.getAttribute("extension")?"":mxResources.get("noExtensionSelected")+"\n",i+=e.value.getAttribute("priority")>=1?"":mxResources.get("invalidPriority")+"\n";break;case"system":case"agi":i=""!==e.value.getAttribute("command")?"":mxResources.get("noCommandSelected")+"\n";break;case"gotoif":i=""!==e.value.getAttribute("condition")?"":mxResources.get("noConditionSelected")+"\n";break;case"saydigits":i=""!==e.value.getAttribute("digits")?"":mxResources.get("noDigitsSelected")+"\n";break;case"saynumber":i=""!==e.value.getAttribute("number")?"":mxResources.get("noNumberSelected")+"\n";break;case"sayphonetic":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"record":i=""!==e.value.getAttribute("file")?"":mxResources.get("noFileSelected")+"\n",i+=e.value.getAttribute("timeout")>=-1?"":mxResources.get("invalidTimeout")+"\n";break;case"goal":i=""!==e.value.getAttribute("goalname")?"":mxResources.get("noGoalSelected")+"\n";break;case"ext_dial":i="-1"!==e.value.getAttribute("trunk_name")?"":mxResources.get("noTrunkSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noIdentifierSelected")+"\n",i+=e.value.getAttribute("timeout")>=0?"":mxResources.get("invalidTimeout")+"\n";break;case"dial":i=e.value.getAttribute("sip_id")>0?"":mxResources.get("noIdentifierSelected")+"\n",i+=e.value.getAttribute("timeout")>=0?"":mxResources.get("invalidTimeout")+"\n";break;case"queue":i="-1"!==e.value.getAttribute("queue_id")?"":mxResources.get("noQueueSelected")+"\n",i+=e.value.getAttribute("timeout")>=0?"":mxResources.get("invalidTimeout")+"\n";break;case"callback":i="-1"!==e.value.getAttribute("list_id")?"":mxResources.get("noListSelected")+"\n",i+=""!==e.value.getAttribute("name")?"":mxResources.get("noFirstNameSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noPhoneSelected")+"\n",i+=e.value.getAttribute("delay")>=0?"":mxResources.get("invalidDelay")+"\n";break;case"gotoiftime":i=e.value.getAttribute("interval_id")>0?"":mxResources.get("noIntervalSelected")+"\n";break;case"voicemail":i=""!==e.value.getAttribute("mailbox")?"":mxResources.get("noBoxNumberSelected")+"\n";break;case"subproject":i=e.value.getAttribute("project_id")>0?"":mxResources.get("noProjectSelected")+"\n";break;case"sendSMS":i=e.value.getAttribute("account_id")>0?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("sms_text")?"":mxResources.get("noTextSelected")+"\n";break;case"sendMail":i=e.value.getAttribute("account_id")>0?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n";break;case"sendFax":i=e.value.getAttribute("account_id")>0?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("attachment_path")?"":mxResources.get("noAttachmentSelected")+"\n";break;case"tts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"ispeechtts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=e.value.getAttribute("speed")>=-10&&e.value.getAttribute("speed")<=10?"":mxResources.get("invalidSpeed")+"\n";break;case"ispeechasr":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=e.value.getAttribute("timeout")>=-1?"":mxResources.get("invalidTimeout")+"\n";break;case"custom_app":i=""!==e.value.getAttribute("application")?"":mxResources.get("noApplicationSelected")+"\n"}if(n.model.isEdge(e))switch(n.model.getCell(e.source.getId()).value.nodeName){case"background":i+=(l=/^[0-9]{1,45}$|^[i]{1}$|^[t]{1}|^[*]{1}$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrTimeout")+"\n";break;case"menu":if(e.getValue()){l=/^[0-9]+$|^[-]{1}$|^[i]{1}$|^[t]{1}|^[*]{1}$/;String(e.getValue()).split(",").forEach(function(e){i+=l.test(e)?"":mxResources.get("numberOrAll")+"\n"})}else i=i+mxResources.get("numberOrAll")+"\n";break;case"vswitch":if(e.getValue()){var l=/^([a-zA-Z0-9]+)$|^[-]{1}$/;String(e.getValue()).split(",").forEach(function(e){i+=l.test(e)?"":mxResources.get("numberOrLettersOrAll")+"\n"})}else i=i+mxResources.get("numberOrLettersOrAll")+"\n";break;case"getsecretdigits":case"getdigits":e.getValue()?i+=(l=/^(x|i|-)$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrDefault")+"\n":i=i+mxResources.get("numberOrInvalidOrDefault")+"\n";break;case"gotoif":case"gotoiftime":e.getValue()?i+=(l=/^(true){1}$|^(false){1}$/).test(String(e.getValue()))?"":mxResources.get("trueOrFalse")+"\n":i=i+mxResources.get("trueOrFalse")+"\n"}return n.isCellCollapsed(e)&&!a&&(i+=(mxResources.get(n.containsValidationErrorsResource)||n.containsValidationErrorsResource)+"\n"),i=n.model.isEdge(e)?i+(n.getEdgeValidationError(e,n.model.getTerminal(e,!0),n.model.getTerminal(e,!1))||""):i+(n.getCellValidationError(e)||""),null!=(o=n.validateCell(e,t))&&(i+=o),null==n.model.getParent(e)&&n.view.validate(),i.length>0||!a?i:null},EditorUi.prototype.validateBlock=function(e){var t=this.editor.graph,n=0;return t.getDefaultParent().children.forEach(function(a){t.model.isVertex(a)&&a.value.nodeName==e&&n++}),!(n>1)},EditorUi.prototype.getUrl=function(e){var t=null!=e?e:window.location.pathname,n=t.indexOf("?")>0?1:0;for(var a in urlParams)t+=0==n?"?":"&",t+=a+"="+urlParams[a],n++;return t},EditorUi.prototype.addUndoListener=function(){var e=this.actions.get("undo"),t=this.actions.get("redo"),n=this.editor.undoManager,a=function(){e.setEnabled(n.canUndo()),t.setEnabled(n.canRedo())};n.addListener(mxEvent.ADD,a),n.addListener(mxEvent.UNDO,a),n.addListener(mxEvent.REDO,a),n.addListener(mxEvent.CLEAR,a),a()},EditorUi.prototype.addSelectionListener=function(){var e=mxUtils.bind(this,function(){var e=this.editor.graph,t=!e.isSelectionEmpty(),n=!1,a=!1,i=e.getSelectionCells();if(null!=i)for(r=0;r<i.length;r++){var o=i[r];if(e.getModel().isEdge(o)&&(a=!0),e.getModel().isVertex(o)&&(n=!0),a&&n)break}for(var s=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"],r=0;r<s.length;r++)this.actions.get(s[r]).setEnabled(t);this.actions.get("curved").setEnabled(a),this.actions.get("rotation").setEnabled(n),this.actions.get("wordWrap").setEnabled(n),this.actions.get("group").setEnabled(e.getSelectionCount()>1),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&e.getModel().getChildCount(e.getSelectionCell())>0);var l=n&&1==e.getSelectionCount();this.actions.get("removeFromGroup").setEnabled(l&&e.getModel().isVertex(e.getModel().getParent(e.getSelectionCell())));for(var d=["fontFamily","fontSize","alignment","position","text","format","arrange","linewidth","spacing"],r=0;r<d.length;r++)this.menus.get(d[r]).setEnabled(t);d=["line","lineend","linestart"];for(r=0;r<d.length;r++)this.menus.get(d[r]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(e.getSelectionCount()>1),this.menus.get("direction").setEnabled(n||a&&e.isLoop(e.view.getState(e.getSelectionCell()))),this.menus.get("navigation").setEnabled(e.foldingEnabled&&(null!=e.view.currentRoot||1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell()))),this.actions.get("home").setEnabled(null!=e.view.currentRoot),this.actions.get("exitGroup").setEnabled(null!=e.view.currentRoot);var c=1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell());this.actions.get("enterGroup").setEnabled(c),this.actions.get("expand").setEnabled(c),this.actions.get("collapse").setEnabled(c),this.actions.get("editLink").setEnabled(1==e.getSelectionCount()),this.actions.get("openLink").setEnabled(1==e.getSelectionCount()&&null!=e.getLinkForCell(e.getSelectionCell()))});this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},EditorUi.prototype.refresh=function(){var e=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),t=this.container.clientWidth,n=this.container.clientHeight;this.container==document.body&&(t=document.body.clientWidth||document.documentElement.clientWidth,n=e?document.body.clientHeight||document.documentElement.clientHeight:document.documentElement.clientHeight);var a=Math.max(0,Math.min(this.hsplitPosition,t-this.splitSize-20)),i=Math.max(0,Math.min(this.vsplitPosition,n-this.menubarHeight-this.toolbarHeight-this.footerHeight-this.splitSize-1));this.menubarContainer.style.height=this.menubarHeight+"px",this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px";var o=this.menubarHeight+this.toolbarHeight;if(mxClient.IS_QUIRKS||(o+=1),this.sidebarContainer.style.top=o+"px",this.sidebarContainer.style.width=a+"px",this.outlineContainer.style.width=a+"px",this.outlineContainer.style.height=i+"px",this.outlineContainer.style.bottom=this.footerHeight+"px",this.diagramContainer.style.left=a+this.splitSize+"px",this.diagramContainer.style.top=this.sidebarContainer.style.top,this.footerContainer.style.height=this.footerHeight+"px",this.footerContainer.style.display="none",this.hsplit.style.top=this.sidebarContainer.style.top,this.hsplit.style.bottom=this.outlineContainer.style.bottom,this.hsplit.style.left=a+"px",this.vsplit.style.width=this.sidebarContainer.style.width,this.vsplit.style.bottom=i+this.footerHeight+"px",e){this.menubarContainer.style.width=t+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width;var s=n-i-this.splitSize-this.footerHeight-this.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=s+"px",this.diagramContainer.style.width=t-a-this.splitSize+"px";var r=n-this.footerHeight-this.menubarHeight-this.toolbarHeight;this.diagramContainer.style.height=r+"px",this.footerContainer.style.width=this.menubarContainer.style.width,this.hsplit.style.height=r+"px"}else this.sidebarContainer.style.bottom=i+this.splitSize+this.footerHeight+"px",this.diagramContainer.style.bottom=this.outlineContainer.style.bottom},EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer"),this.toolbarContainer=this.createDiv("geToolbarContainer"),this.sidebarContainer=this.createDiv("geSidebarContainer"),this.outlineContainer=this.createDiv("geOutlineContainer"),this.diagramContainer=this.createDiv("geDiagramContainer"),this.footerContainer=this.createDiv("geFooterContainer"),this.hsplit=this.createDiv("geHsplit"),this.vsplit=this.createDiv("geVsplit"),this.menubarContainer.style.top="0px",this.menubarContainer.style.left="0px",this.menubarContainer.style.right="0px",this.toolbarContainer.style.left="0px",this.toolbarContainer.style.right="0px",this.sidebarContainer.style.left="0px",this.outlineContainer.style.left="0px",this.diagramContainer.style.right="0px",this.footerContainer.style.left="0px",this.footerContainer.style.right="0px",this.footerContainer.style.bottom="0px",this.vsplit.style.left="0px",this.vsplit.style.height=this.splitSize+"px",this.hsplit.style.width=this.splitSize+"px"},EditorUi.prototype.createUi=function(){this.menubar=this.menus.createMenubar(this.createDiv("geMenubar")),this.menubarContainer.appendChild(this.menubar.container),this.toolbar=this.createToolbar(this.createDiv("geToolbar")),this.toolbarContainer.appendChild(this.toolbar.container),this.sidebar=this.createSidebar(this.sidebarContainer),this.footerContainer.appendChild(this.createFooter()),this.statusContainer=this.createStatusContainer(),this.editor.addListener("statusChanged",mxUtils.bind(this,function(){this.setStatusText(this.editor.getStatus())})),this.setStatusText(this.editor.getStatus()),this.menubar.container.appendChild(this.statusContainer),this.container.appendChild(this.menubarContainer),this.container.appendChild(this.toolbarContainer),this.container.appendChild(this.sidebarContainer),this.container.appendChild(this.outlineContainer),this.container.appendChild(this.diagramContainer),this.container.appendChild(this.footerContainer),this.container.appendChild(this.hsplit),this.container.appendChild(this.vsplit),this.addSplitHandler(this.hsplit,!0,0,mxUtils.bind(this,function(e){this.hsplitPosition=e,this.refresh(),this.editor.graph.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.addSplitHandler(this.vsplit,!1,this.footerHeight,mxUtils.bind(this,function(e){this.vsplitPosition=e,this.refresh(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()}))},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.setStatusText=function(e){this.statusContainer.innerHTML=e},EditorUi.prototype.createToolbar=function(e){return new Toolbar(this,e)},EditorUi.prototype.createSidebar=function(e){return new Sidebar(this,e)},EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")},EditorUi.prototype.createDiv=function(e){var t=document.createElement("div");return t.className=e,t},EditorUi.prototype.createHeader=function(e){return document.createElement(e)},EditorUi.prototype.createForm=function(e){var t=document.createElement("form");return t.className=e,t},EditorUi.prototype.addSplitHandler=function(e,t,n,a){function i(){return parseInt(t?e.style.left:e.style.bottom)}function o(e){if(null!=r){var i=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));a(Math.max(0,l+(t?i.x-r.x:r.y-i.y)-n)),mxEvent.consume(e)}}function s(e){o(e),r=null,l=null}var r=null,l=null;mxEvent.addGestureListeners(e,function(e){r=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),l=i(),mxEvent.consume(e)}),mxEvent.addListener(document,"mousemove",o),mxEvent.addListener(document,"touchmove",o),mxEvent.addListener(document,"mouseup",s),mxEvent.addListener(document,"touchend",s)},EditorUi.prototype.executeLayout=function(e,t,n){var a=this.editor.graph,i=a.getSelectionCell();t=null!=this.animate?this.animate:t,a.getModel().beginUpdate();try{e.execute(a.getDefaultParent(),i)}catch(e){throw e}finally{if(t&&navigator.userAgent.indexOf("Camino")<0){var o=new mxMorphing(a);o.addListener(mxEvent.DONE,mxUtils.bind(this,function(){a.getModel().endUpdate()})),o.startAnimation()}else a.getModel().endUpdate()}},EditorUi.prototype.createKeyHandler=function(e){function t(e){if(!n.isSelectionEmpty()){var t=0,a=0;37==e?t=-1:38==e?a=-1:39==e?t=1:40==e&&(a=1),n.moveCells(n.getSelectionCells(),t,a),n.scrollCellToVisible(n.getSelectionCell())}}var n=this.editor.graph,a=new mxKeyHandler(n);a.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var i=mxUtils.bind(this,function(e,t,n,i){var o=this.actions.get(n);if(null!=o){var s=function(){o.enabled&&o.funct()};t?i?a.bindControlShiftKey(e,s):a.bindControlKey(e,s):i?a.bindShiftKey(e,s):a.bindKey(e,s)}});return a.enter=function(){},a.bindKey(8,function(){n.foldCells(!0)}),a.bindKey(13,function(){n.foldCells(!1)}),a.bindKey(33,function(){n.exitGroup()}),a.bindKey(34,function(){n.enterGroup()}),a.bindKey(36,function(){n.home()}),a.bindKey(35,function(){n.refresh()}),a.bindKey(37,function(){t(37)}),a.bindKey(38,function(){t(38)}),a.bindKey(39,function(){t(39)}),a.bindKey(40,function(){t(40)}),a.bindKey(113,function(){n.startEditingAtCell()}),i(46,!1,"delete"),i(82,!0,"tilt"),i(83,!0,"save"),i(83,!0,"saveAs",!0),i(107,!1,"zoomIn"),i(109,!1,"zoomOut"),i(65,!0,"selectAll"),i(86,!0,"selectVertices",!0),i(69,!0,"selectEdges",!0),i(69,!0,"export"),i(66,!0,"toBack"),i(70,!0,"toFront"),i(68,!0,"duplicate"),i(90,!0,"undo"),i(89,!0,"redo"),i(88,!0,"cut"),i(67,!0,"copy"),i(81,!0,"connect"),i(86,!0,"paste"),i(71,!0,"group"),i(71,!0,"grid",!0),i(85,!0,"ungroup"),i(112,!1,"about"),i(80,!0,"publish",!0),a},EditorUi.prototype.createMultiplicities=function(e,t,n,a){for(var i=0;i<t.length;i++)e.push(new mxMultiplicity(!0,t[i],null,null,n[i][0],n[i][1],null,mxResources.get(t[i])+mxResources.get("musthave")+n[i][0]+mxResources.get("outgoingedge"),null)),e.push(new mxMultiplicity(!1,t[i],null,null,a[i][0],a[i][1],null,mxResources.get(t[i])+mxResources.get("musthave")+a[i][0]+mxResources.get("incomingedge"),null))};var useLocalStorage=(mxClient.IS_TOUCH||"local"==urlParams.storage)&&"undefined"!=typeof localStorage,fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList,touchStyle=mxClient.IS_TOUCH||"1"==urlParams.touch,counter=0;try{for(var op=window;null!=op.opener&&!isNaN(op.opener.counter);)op=op.opener;null!=op&&(op.counter++,counter=op.counter)}catch(e){}Editor=function(){mxEventSource.call(this),this.init(),this.initStencilRegistry(),this.graph=new Graph,this.outline=new mxOutline(this.graph),this.outline.updateOnPan=!0,this.undoManager=this.createUndoManager(),this.status="",this.filename=null,this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[counter])+".xml"},this.getFilename=function(){return this.filename},this.setStatus=function(e){this.status=e,this.fireEvent(new mxEventObject("statusChanged"))},this.getStatus=function(){return this.status},this.modified=!1,this.graphChangeListener=function(){this.modified=!0},this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)})),window.onbeforeunload=mxUtils.bind(this,function(){if(this.modified)return mxResources.get("allChangesLost")}),this.graph.resetViewOnRootChange=!1,this.graph.scrollbars=!0,this.graph.background=null},mxUtils.extend(Editor,mxEventSource),Editor.prototype.gridImage=IMAGE_PATH+"/grid.gif",Editor.prototype.transparentImage=IMAGE_PATH+"/transparent.gif",Editor.prototype.setGraphXml=function(e){var t=new mxCodec(e.ownerDocument);if("mxGraphModel"==e.nodeName){this.graph.view.scale=1,this.graph.gridEnabled="0"!=e.getAttribute("grid"),this.graph.graphHandler.guidesEnabled="0"!=e.getAttribute("guides"),this.graph.setTooltips("0"!=e.getAttribute("tooltips")),this.graph.setConnectable("0"!=e.getAttribute("connect")),this.graph.foldingEnabled="0"!=e.getAttribute("fold"),this.graph.scrollbars="0"!=e.getAttribute("scrollbars"),this.graph.scrollbars||(this.graph.container.scrollLeft=0,this.graph.container.scrollTop=0,this.graph.view.translate.x=Number(e.getAttribute("dx")||0),this.graph.view.translate.y=Number(e.getAttribute("dy")||0)),this.graph.pageVisible="1"==e.getAttribute("page"),this.graph.pageBreaksVisible=this.graph.pageVisible,this.graph.preferPageSize=this.graph.pageBreaksVisible;var n=e.getAttribute("pageScale");this.graph.pageScale=null!=n?n:1.5;var a=e.getAttribute("pageWidth"),i=e.getAttribute("pageHeight");null!=a&&null!=i&&(this.graph.pageFormat=new mxRectangle(0,0,parseFloat(a),parseFloat(i)),this.outline.outline.pageFormat=this.graph.pageFormat);var o=e.getAttribute("background");null!=o&&o.length>0&&(this.graph.background=o),t.decode(e,this.graph.getModel()),this.updateGraphComponents()}},Editor.prototype.getGraphXml=function(){var e=new mxCodec(mxUtils.createXmlDocument()).encode(this.graph.getModel());return 0==this.graph.view.translate.x&&0==this.graph.view.translate.y||(e.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),e.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100)),e.setAttribute("grid",this.graph.isGridEnabled()?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0"),e.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0"),e.setAttribute("fold",this.graph.foldingEnabled?"1":"0"),e.setAttribute("page",this.graph.pageVisible?"1":"0"),e.setAttribute("pageScale",this.graph.pageScale),e.setAttribute("pageWidth",this.graph.pageFormat.width),e.setAttribute("pageHeight",this.graph.pageFormat.height),this.graph.scrollbars||e.setAttribute("scrollbars","0"),null!=this.graph.background&&e.setAttribute("background",this.graph.background),e},Editor.prototype.updateGraphComponents=function(){var e=this.graph,t=this.outline;if(null!=e.container&&null!=t.outline.container){null!=e.background?"none"==e.background?e.container.style.backgroundColor="transparent":(null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.fill=e.background,e.view.backgroundPageShape.reconfigure()),e.container.style.backgroundColor=e.background):e.container.style.backgroundColor="",e.pageVisible?(e.container.style.backgroundColor="#ebebeb",e.container.style.borderStyle="solid",e.container.style.borderColor="#e5e5e5",e.container.style.borderTopWidth="1px",e.container.style.borderLeftWidth="1px",e.container.style.borderRightWidth="0px",e.container.style.borderBottomWidth="0px"):e.container.style.border="",t.outline.container.style.backgroundColor=e.container.style.backgroundColor,t.outline.pageVisible==e.pageVisible&&t.outline.pageScale==e.pageScale||(t.outline.pageScale=e.pageScale,t.outline.pageVisible=e.pageVisible,t.outline.view.validate()),e.scrollbars&&"hidden"==e.container.style.overflow&&!touchStyle?e.container.style.overflow="auto":e.scrollbars&&!touchStyle||(e.container.style.overflow="hidden");var n=mxClient.IS_IE&&document.documentMode>=9?"url("+this.transparentImage+")":"none";e.container.style.backgroundImage=!e.pageVisible&&e.isGridEnabled()?"url("+this.gridImage+")":n,null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+this.gridImage+")":"none")}},Editor.prototype.init=function(){mxClient.IS_IE6&&mxClient.link("stylesheet",CSS_PATH+"/grapheditor-ie6.css"),mxResources.loadDefaultBundle=!1,mxResources.add(RESOURCE_BASE),mxConstants.DEFAULT_HOTSPOT=.3;var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var t=e.apply(this,arguments);return t.intersects=mxUtils.bind(this,function(e,n){return!!this.isConnecting()||mxCellMarker.prototype.intersects.apply(t,arguments)}),t},mxConstants.SHADOWCOLOR="#d0d0d0",mxConstants.HANDLE_FILLCOLOR="#99ccff",mxConstants.HANDLE_STROKECOLOR="#0088cf",mxConstants.VERTEX_SELECTION_COLOR="#00a8ff",mxConstants.OUTLINE_COLOR="#00a8ff",mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff",mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff",mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff",mxConstants.EDGE_SELECTION_COLOR="#00a8ff",mxConstants.DEFAULT_VALID_COLOR="#00a8ff",mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff",mxConstants.GUIDE_COLOR="#0088cf",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,mxRubberband.prototype.defaultOpacity=30,mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,this.graph.background||"white","#cacaca")},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.getGraphBounds(),t=e.width>0?e.x/this.scale-this.translate.x:0,n=e.height>0?e.y/this.scale-this.translate.y:0,a=e.width/this.scale,i=e.height/this.scale,o=this.graph.pageFormat,s=this.graph.pageScale,r=o.width*s,l=o.height*s,d=Math.floor(Math.min(0,t)/r),c=Math.floor(Math.min(0,n)/l),m=Math.ceil(Math.max(1,t+a)/r)-d,u=Math.ceil(Math.max(1,n+i)/l)-c;return new mxRectangle(this.scale*(this.translate.x+d*r),this.scale*(this.translate.y+c*l),this.scale*m*r,this.scale*u*l)};var t=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(e,n){t.apply(this,arguments),this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=e+"px",this.view.backgroundPageShape.node.style.marginTop=n+"px")};var n=this;mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();t=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(t,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);if(this.graph.pageVisible){var t=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(t),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=mxConstants.DIALECT_STRICTHTML,this.backgroundPageShape.init(this.graph.container),this.graph.container.firstChild.style.position="absolute",this.graph.container.insertBefore(this.backgroundPageShape.node,this.graph.container.firstChild),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",this.backgroundPageShape.node.style.backgroundPosition="-1px -1px",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=t,this.backgroundPageShape.redraw()),this.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+n.gridImage+")":"none"}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraph.prototype.updatePageBreaks=function(e,t,n){var a=this.view.scale,i=this.view.translate,o=this.pageFormat,s=a*this.pageScale,r=this.view.getBackgroundPageBounds();t=r.width,n=r.height;var l=new mxRectangle(a*i.x,a*i.y,o.width*s,o.height*s),d=(e=e&&Math.min(l.width,l.height)>this.minPageBreakDist)?Math.ceil(t/l.width)-1:0,c=e?Math.ceil(n/l.height)-1:0,m=r.x+t,u=r.y+n;if(null==this.horizontalPageBreaks&&d>0&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(h=0;h<=d;h++){p=[new mxPoint(r.x+(h+1)*l.width,r.y),new mxPoint(r.x+(h+1)*l.width,u)];null!=this.horizontalPageBreaks[h]?(this.horizontalPageBreaks[h].scale=1,this.horizontalPageBreaks[h].points=p,this.horizontalPageBreaks[h].redraw()):((g=new mxPolyline(p,this.pageBreakColor,this.scale)).dialect=this.dialect,g.isDashed=this.pageBreakDashed,g.addPipe=!1,g.scale=a,g.init(this.view.backgroundPane),g.redraw(),this.horizontalPageBreaks[h]=g)}for(h=d;h<this.horizontalPageBreaks.length;h++)this.horizontalPageBreaks[h].destroy();this.horizontalPageBreaks.splice(d,this.horizontalPageBreaks.length-d)}if(null==this.verticalPageBreaks&&c>0&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(h=0;h<=c;h++){var p=[new mxPoint(r.x,r.y+(h+1)*l.height),new mxPoint(m,r.y+(h+1)*l.height)];if(null!=this.verticalPageBreaks[h])this.verticalPageBreaks[h].scale=1,this.verticalPageBreaks[h].points=p,this.verticalPageBreaks[h].redraw();else{var g=new mxPolyline(p,this.pageBreakColor,a);g.dialect=this.dialect,g.isDashed=this.pageBreakDashed,g.addPipe=!1,g.scale=a,g.init(this.view.backgroundPane),g.redraw(),this.verticalPageBreaks[h]=g}}for(var h=c;h<this.verticalPageBreaks.length;h++)this.verticalPageBreaks[h].destroy();this.verticalPageBreaks.splice(c,this.verticalPageBreaks.length-c)}},mxEdgeHandler.prototype.snapToTerminals=!0,mxGraphHandler.prototype.guidesEnabled=!0;var a=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,t,n){for(var i=0;i<t.length;i++)if(this.graph.getModel().isVertex(t[i])){var o=this.graph.getCellGeometry(t[i]);if(null!=o&&o.relative)return!1}return a.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var i=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,t,n,a,o,s){var r=i.apply(this,arguments);return null==s||s||mxEvent.addListener(r,"mousedown",function(e){mxEvent.consume(e)}),r};var o=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var t=this.graph.getModel(),n=t.getParent(this.graph.getSelectionCell()),a=o.apply(this,arguments),i=t.getParent(a);if(null==n||n!=a&&n!=i)for(;!this.graph.isCellSelected(a)&&!this.graph.isCellSelected(i)&&t.isVertex(i)&&!this.graph.isValidRoot(i);)a=i,i=this.graph.getModel().getParent(a);return a};var s=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(e){var t=s.apply(this,arguments),n=this.graph.getModel(),a=n.getParent(this.graph.getSelectionCell()),i=n.getParent(e);return(null==a||a!=e&&a!=i)&&(this.graph.isCellSelected(e)||!n.isVertex(i)||this.graph.isValidRoot(i)||(t=!0)),t},mxGraphHandler.prototype.selectDelayed=function(e){var t=e.getCell();null==t&&(t=this.cell);for(var n=this.graph.getModel(),a=n.getParent(t);this.graph.isCellSelected(t)&&n.isVertex(a)&&!this.graph.isValidRoot(a);)t=a,a=n.getParent(t);this.graph.selectCellForEvent(t,e.getEvent())},mxPanningHandler.prototype.getCellForPopupEvent=function(e){for(var t=e.getCell(),n=this.graph.getModel(),a=n.getParent(t);n.isVertex(a)&&!this.graph.isValidRoot(a);)this.graph.isCellSelected(a)&&(t=a),a=n.getParent(a);return t}},Editor.prototype.createUndoManager=function(){var e=this.graph,t=new mxUndoManager,n=function(e,n){t.undoableEditHappened(n.getProperty("edit"))};e.getModel().addListener(mxEvent.UNDO,n),e.getView().addListener(mxEvent.UNDO,n);var a=function(t,n){for(var a=e.getSelectionCellsForChanges(n.getProperty("edit").changes),i=[],o=1;o<a.length;o++)null!=e.view.getState(a[o])&&i.push(a[o]);e.setSelectionCells(i)};return t.addListener(mxEvent.UNDO,a),t.addListener(mxEvent.REDO,a),t},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},function(){mxStencilRegistry.libraries={},mxStencilRegistry.packages=[],mxStencilRegistry.getStencil=function(e){var t=mxStencilRegistry.stencils[e];if(null==t){var n=mxStencilRegistry.getBasenameForStencil(e);if(null!=n){var a=mxStencilRegistry.libraries[n];if(null!=a){if(null==mxStencilRegistry.packages[n]){mxStencilRegistry.packages[n]=1;for(var i=0;i<a.length;i++){var o=a[i];if(".xml"==o.toLowerCase().substring(o.length-4,o.length))mxStencilRegistry.loadStencilSet(o,null);else if(".js"==o.toLowerCase().substring(o.length-3,o.length)){var s=mxUtils.load(o);null!=s&&eval.call(window,s.getText())}}}}else mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+n+".xml",null);t=mxStencilRegistry.stencils[e]}}return t},mxStencilRegistry.getBasenameForStencil=function(e){var t=e.split("."),n=null;if(t.length>0&&"mxgraph"==t[0]){n=t[1];for(var a=2;a<t.length-1;a++)n+="/"+t[a]}return n},mxStencilRegistry.loadStencilSet=function(e,t,n){n=null!=n&&n;var a=mxStencilRegistry.packages[e];if(n||null==a){var i=!1;null==a&&(a=mxUtils.load(e).getXml(),mxStencilRegistry.packages[e]=a,i=!0),mxStencilRegistry.parseStencilSet(a,t,i)}},mxStencilRegistry.parseStencilSet=function(e,t,n){n=null==n||n;var a=e.documentElement,i=a.firstChild,o="",s=a.getAttribute("name");for(null!=s&&(o=s+".");null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(s=i.getAttribute("name"))){o=o.toLowerCase();var r=s.replace(/ /g,"_");if(n&&mxStencilRegistry.addStencil(o+r.toLowerCase(),new mxStencil(i)),null!=t){var l=i.getAttribute("w"),d=i.getAttribute("h");t(o,r,s,l=null==l?80:parseInt(l,10),d=null==d?80:parseInt(d,10))}}i=i.nextSibling}}}(),OpenFile=function(e){this.producer=null,this.consumer=null,this.done=e},OpenFile.prototype.setConsumer=function(e){this.consumer=e,this.execute()},OpenFile.prototype.setData=function(e,t){this.data=e,this.filename=t,this.execute()},OpenFile.prototype.error=function(e){this.cancel(),mxUtils.alert(e)},OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.data&&(this.consumer(this.data,this.filename),this.cancel())},OpenFile.prototype.cancel=function(){null!=this.done&&this.done()},Sidebar.prototype.init=function(){var e=STENCIL_PATH;this.addSearchPalette(!0),this.addImagePalette("entry",mxResources.get("entry"),e+"/entry/","_128x128.png",["start","finally","end"],[mxResources.get("start"),mxResources.get("finally"),mxResources.get("end")]),this.addImagePalette("call_management",mxResources.get("call_management"),e+"/call_management/","_128x128.png",["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[mxResources.get("answer"),mxResources.get("hangup"),mxResources.get("dial"),mxResources.get("ext_dial"),mxResources.get("queue"),mxResources.get("voicemail"),mxResources.get("callback")]),this.addImagePalette("variable",mxResources.get("variable"),e+"/variable/","_128x128.png",["set","math"],[mxResources.get("set"),mxResources.get("math")]),this.addImagePalette("playback",mxResources.get("playback"),e+"/playback/","_128x128.png",["playback","menu","saydigits","saynumber","sayphonetic","tts","ispeechtts","getdigits","getsecretdigits"],[mxResources.get("playback"),mxResources.get("menu"),mxResources.get("saydigits"),mxResources.get("saynumber"),mxResources.get("sayphonetic"),mxResources.get("tts"),mxResources.get("ispeechtts"),mxResources.get("getdigits"),mxResources.get("getsecretdigits")]),this.addImagePalette("recording",mxResources.get("recording"),e+"/recording/","_128x128.png",["record"],[mxResources.get("record")]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","ispeechasr"],[mxResources.get("database"),mxResources.get("ispeechasr")]),this.addImagePalette("callflow",mxResources.get("callflow"),e+"/callflow/","_128x128.png",["gotoc","gotoif","gotoiftime","vswitch"],[mxResources.get("gotoc"),mxResources.get("gotoif"),mxResources.get("gotoiftime"),mxResources.get("vswitch")]),this.addImagePalette("stats",mxResources.get("stats"),e+"/stats/","_128x128.png",["goal"],[mxResources.get("goal")]),this.addImagePalette("general",mxResources.get("general"),e+"/general/","_128x128.png",["noop","system","agi","subproject","custom_app"],[mxResources.get("noop"),mxResources.get("system"),mxResources.get("agi"),mxResources.get("subproject"),mxResources.get("custom_app")])},Sidebar.prototype.collapsedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNUQyRTJFNjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNUQyRTJFNzZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MEUxNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MEUyNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhSMj6lrwAjcC1GyahV+dcZJgeIIFgA7":IMAGE_PATH+"/collapsed.gif",Sidebar.prototype.expandedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxREY3NzBERjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxREY3NzBFMDZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MERENkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MERFNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhGMj6nL3QAjVHIu6azbvPtWAAA7":IMAGE_PATH+"/expanded.gif",Sidebar.prototype.tooltipImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAbCAMAAAB7jU7LAAAACVBMVEX///+ZmZn///9Y2COLAAAAA3RSTlP//wDXyg1BAAAAOElEQVR42mXQMQ4AMAgDsWv//+iutcJmIQSk+9dJpVKpVCqVSqVSqZTdncWzF8/NeP7FkxWenPEDOnUBiL3jWx0AAAAASUVORK5CYII=":IMAGE_PATH+"/tooltip.png",Sidebar.prototype.searchImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAEaSURBVHjabNGxS5VxFIfxz71XaWuQUJCG/gCHhgTD9VpEETg4aMOlQRp0EoezObgcd220KQiXmpretTAHQRBdojlQEJyukPdt+b1ywfvAGc7wnHP4nlZd1yKijQW8xzNc4Su+ZOYfQ3T6/f4YNvEJYzjELXp4VVXVz263+7cR2niBxAFeZ2YPi3iHR/gYERPDwhpOsd6sz8x/mfkNG3iOlWFhFj8y89J9KvzGXER0GuEaD42mgwHqUtoljbcRsTBCeINpfM/MgZLKPpaxFxGbOCqDXmILN7hoJrTKH+axhxmcYRxP0MIDnOBDZv5q1XUNIuJxifJp+UNV7t7BFM6xeic0RMQ4Bpl5W/ol7GISx/eEUUTECrbx+f8A8xhiZht9zsgAAAAASUVORK5CYII=":IMAGE_PATH+"/search.png",Sidebar.prototype.enableTooltips=!0,Sidebar.prototype.tooltipBorder=16,Sidebar.prototype.tooltipDelay=300,Sidebar.prototype.dropTargetDelay=200,Sidebar.prototype.thumbWidth=36,Sidebar.prototype.thumbHeight=36,Sidebar.prototype.thumbPadding=document.documentMode>=5?0:1,Sidebar.prototype.thumbBorder=2,Sidebar.prototype.sidebarTitleSize=9,Sidebar.prototype.sidebarTitles=!1,Sidebar.prototype.tooltipTitles=!0,Sidebar.prototype.maxTooltipWidth=400,Sidebar.prototype.maxTooltipHeight=400,Sidebar.prototype.addStencilsToIndex=!0,Sidebar.prototype.defaultImageWidth=80,Sidebar.prototype.defaultImageHeight=80,Sidebar.prototype.getOffset=function(e){return e=e.getBoundingClientRect(),{left:e.left+window.scrollX,top:e.top+window.scrollY}},Sidebar.prototype.showTooltip=function(e,t,n,a,i,o){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=e){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var s=mxUtils.bind(this,function(){null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(this.tooltip),this.graph2=new Graph(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),this.graph2.resetViewOnRootChange=!1,this.graph2.foldingEnabled=!1,this.graph2.gridEnabled=!1,this.graph2.autoScroll=!1,this.graph2.setTooltips(!1),this.graph2.setConnectable(!1),this.graph2.setEnabled(!1),mxClient.IS_SVG||(this.graph2.view.canvas.style.position="relative"),this.tooltipImage=mxUtils.createImage(this.tooltipImage),this.tooltipImage.className="geSidebarTooltipImage",this.tooltipImage.style.zIndex=mxPopupMenu.prototype.zIndex-1,this.tooltipImage.style.position="absolute",this.tooltipImage.style.width="14px",this.tooltipImage.style.height="27px",document.body.appendChild(this.tooltipImage)),this.graph2.model.clear(),this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder),n>this.maxTooltipWidth||a>this.maxTooltipHeight?this.graph2.view.scale=Math.round(100*Math.min(this.maxTooltipWidth/n,this.maxTooltipHeight/a))/100:this.graph2.view.scale=1,this.tooltip.style.display="block",this.graph2.labelsVisible=null==o||o,this.graph2.addCells(t);var s=this.graph2.getGraphBounds(),r=s.width+2*this.tooltipBorder+4,l=s.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(l+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=r+"px",this.tooltipTitles&&null!=i&&i.length>0){null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",this.tooltipTitle.style.width="100%",this.tooltipTitle.style.overflow="hidden",mxClient.IS_SVG?this.tooltipTitle.style.paddingTop="6px":(this.tooltipTitle.style.position="absolute",this.tooltipTitle.style.paddingTop="6px"),this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,i);var d=this.tooltipTitle.offsetHeight+10;l+=d,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-d+"px":(l-=6,this.tooltipTitle.style.top=l-d+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=l+"px";var c=-Math.round(s.x-this.tooltipBorder),m=-Math.round(s.y-this.tooltipBorder),u=document.body,p=document.documentElement,g=(u.clientHeight||p.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),h=Math.max(0,this.getOffset(e).top-this.container.scrollTop-l/2+16);mxClient.IS_SVG?0!=c||0!=m?this.graph2.view.canvas.setAttribute("transform","translate("+c+","+m+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=c+"px",this.graph2.view.drawPane.style.top=m+"px"),this.tooltip.style.position="absolute",this.tooltip.style.left=g+"px",this.tooltip.style.top=h+"px",this.tooltipImage.style.left=g-13+"px",this.tooltipImage.style.top=h+l/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?s():this.thread=window.setTimeout(s,this.tooltipDelay),this.currentElt=e}},Sidebar.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null),null!=this.tooltip&&(this.tooltip.style.display="none",this.tooltipImage.style.visibility="hidden",this.currentElt=null)},Sidebar.prototype.addEntry=function(e,t){if(null!=this.taglist&&null!=e&&e.length>0)for(var n=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<n.length;a++)if(n[a]=n[a].replace(/\.*\d*$/,""),n[a].length>1){var i=this.taglist[n[a]];null==i&&(i={entries:[],dict:new mxDictionary},this.taglist[n[a]]=i),null==i.dict.get(t)&&(i.dict.put(t,t),i.entries.push(t))}return t},Sidebar.prototype.searchEntries=function(e,t,n,a,i){if(null!=this.taglist&&null!=e){for(var o=e.toLowerCase().split(" "),s=new mxDictionary,r=(n+1)*t,l=[],d=0,c=0;c<o.length;c++)if(o[c].length>0){var m=this.taglist[o[c]],u=new mxDictionary;if(null!=m){var p=m.entries;l=[];for(var g=0;g<p.length;g++){m=p[g];if(0==d==(null==s.get(m))&&(u.put(m,m),l.push(m),c==o.length-1&&l.length==r))return void a(l.slice(n*t,r),r,!0)}}else l=[];s=u,d++}var h=l.length;a(l.slice(n*t,(n+1)*t),h,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null!=e){for(var t=e.split(" "),n=[],a={},i=0;i<t.length;i++)null==a[t[i]]&&(a[t[i]]="1",n.push(t[i]));return n.join(" ")}return null},Sidebar.prototype.cloneCell=function(e,t){var n=e.clone();return null!=t&&(n.value=t),n},Sidebar.prototype.addSearchPalette=function(e){var t=document.createElement("div");t.style.visibility="hidden",this.container.appendChild(t);var n=document.createElement("div");n.className="geSidebar",n.style.boxSizing="border-box",n.style.overflow="hidden",n.style.width="100%",n.style.padding="8px",n.style.paddingTop="14px",n.style.paddingBottom="0px",e||(n.style.display="none");var a=document.createElement("div");a.style.whiteSpace="nowrap",a.style.textOverflow="clip",a.style.paddingBottom="8px",a.style.cursor="default";var i=document.createElement("input");i.setAttribute("placeholder",mxResources.get("searchShapes")),i.setAttribute("type","text"),i.style.fontSize="12px",i.style.overflow="hidden",i.style.boxSizing="border-box",i.style.border="solid 1px #d5d5d5",i.style.borderRadius="4px",i.style.width="100%",i.style.outline="none",i.style.padding="6px",a.appendChild(i);var o=document.createElement("img");o.setAttribute("src",Sidebar.prototype.searchImage),o.setAttribute("title",mxResources.get("search")),o.style.position="relative",o.style.left="-18px",mxClient.IS_QUIRKS?(i.style.height="28px",o.style.top="-4px"):o.style.top="2px",o.style.background="url('"+this.editorUi.editor.transparentImage+"')";var s;a.appendChild(o),n.appendChild(a);var r=document.createElement("center"),l=mxUtils.button(mxResources.get("moreResults"),function(){s()});l.style.display="none",l.style.lineHeight="normal",l.style.marginTop="4px",l.style.marginBottom="8px",r.style.paddingTop="4px",r.style.paddingBottom="8px",r.appendChild(l),n.appendChild(r);var d="",c=!1,m=!1,u=0,p=new Object,g=12,h=mxUtils.bind(this,function(){c=!1,this.currentSearch=null;for(var e=n.firstChild;null!=e;){var t=e.nextSibling;e!=a&&e!=r&&e.parentNode.removeChild(e),e=t}});s=mxUtils.bind(this,function(){if(g=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10))),this.hideTooltip(),""!=i.value){if(null!=r.parentNode&&(d!=i.value&&(h(),d=i.value,p=new Object,m=!1,u=0),!c&&!m)){l.setAttribute("disabled","true"),l.style.display="",l.style.cursor="wait",l.innerHTML=mxResources.get("loading")+"...",c=!0;var e=new Object;this.currentSearch=e,this.searchEntries(d,g,u,mxUtils.bind(this,function(t,a,i){if(this.currentSearch==e){t=null!=t?t:[],c=!1,u++,r.parentNode.removeChild(r);for(var o=0;o<t.length;o++){var s=t[o]();null==p[s.innerHTML]&&(p[s.innerHTML]="1",n.appendChild(t[o]()))}if(i?(l.removeAttribute("disabled"),l.innerHTML=mxResources.get("moreResults")):(l.innerHTML=mxResources.get("reset"),l.style.display="none",m=!0),l.style.cursor="",0==t.length&&1==u){var g=document.createElement("div");g.className="geTitle",g.style.backgroundColor="transparent",g.style.borderColor="transparent",g.style.color="gray",g.style.padding="0px",g.style.margin="0px 8px 0px 8px",g.style.paddingTop="6px",g.style.textAlign="center",g.style.cursor="default",mxUtils.write(g,mxResources.get("noResultsFor",[d])),n.appendChild(g)}n.appendChild(r)}}),mxUtils.bind(this,function(){l.style.cursor=""}))}}else h(),i.value="",d="",p=new Object,l.style.display="none",m=!1,i.focus()}),mxEvent.addListener(i,"keydown",mxUtils.bind(this,function(e){13==e.keyCode&&s()})),mxEvent.addListener(i,"focus",function(){i.style.paddingRight="",o.style.display="none"}),mxEvent.addListener(i,"blur",function(){i.style.paddingRight="20px",o.style.display=""}),i.style.paddingRight="20px",mxEvent.addListener(i,"keyup",mxUtils.bind(this,function(e){""==i.value?(m=!0,l.style.display="none"):i.value!=d?(l.style.display="none",m=!1):c||(l.style.display=m?"none":"")})),mxEvent.addListener(i,"mousedown",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0}),mxEvent.addListener(i,"selectstart",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0});var v=document.createElement("div");v.appendChild(n),this.container.appendChild(v),this.palettes.search=[t,v]},Sidebar.prototype.createTitle=function(e){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.setAttribute("title",mxResources.get("sidebarTooltip")),t.className="geTitle",mxUtils.write(t,e),t},Sidebar.prototype.createThumb=function(e,t,n,a,i,o,s,r,l){this.graph.labelsVisible=null==o||o;var d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.view.scaleAndTranslate(1,0,0),this.graph.addCells(e);var c=this.graph.getGraphBounds(),m=Math.floor(100*Math.min((t-2*this.thumbBorder)/c.width,(n-2*this.thumbBorder)/c.height))/100;this.graph.view.scaleAndTranslate(m,Math.floor((t-c.width*m)/2/m-c.x),Math.floor((n-c.height*m)/2/m-c.y));var u=null;if(this.graph.dialect!=mxConstants.DIALECT_SVG||mxClient.NO_FO?(u=this.graph.container.cloneNode(!1)).innerHTML=this.graph.container.innerHTML:u=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0),this.graph.getModel().clear(),mxClient.NO_FO=d,mxClient.IS_IE6&&(a.style.backgroundImage="url("+this.editorUi.editor.transparentImage+")"),u.style.position="relative",u.style.overflow="hidden",u.style.cursor="move",u.style.left=this.thumbBorder+"px",u.style.top=this.thumbBorder+"px",u.style.width=t+"px",u.style.height=n+"px",u.style.visibility="",u.style.minWidth="",u.style.minHeight="",a.appendChild(u),this.sidebarTitles&&null!=i&&0!=s){var p=mxClient.IS_QUIRKS?2*this.thumbPadding+2:0;a.style.height=this.thumbHeight+p+this.sidebarTitleSize+8+"px";var g=document.createElement("div");g.style.fontSize=this.sidebarTitleSize+"px",g.style.color="#303030",g.style.textAlign="center",g.style.whiteSpace="nowrap",mxClient.IS_IE&&(g.style.height=this.sidebarTitleSize+12+"px"),g.style.paddingTop="4px",mxUtils.write(g,i),a.appendChild(g)}return c},Sidebar.prototype.createItem=function(e,t,n,a,i,o,s){var r=document.createElement("a");r.setAttribute("href","javascript:void(0);"),r.className="geItem",r.style.overflow="hidden";var l=mxClient.IS_QUIRKS?8+2*this.thumbPadding:2*this.thumbBorder;r.style.width=this.thumbWidth+l+"px",r.style.height=this.thumbHeight+l+"px",r.style.padding=this.thumbPadding+"px",mxEvent.addListener(r,"click",function(e){mxEvent.consume(e)}),this.createThumb(e,this.thumbWidth,this.thumbHeight,r,t,n,a,i,o);var d=new mxRectangle(0,0,i,o);if(e.length>1||e[0].vertex){c=this.createDragSource(r,this.createDropHandler(e,!0,s,d),this.createDragPreview(i,o),e,d);this.addClickHandler(r,c,e),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=e[0]&&e[0].edge){var c=this.createDragSource(r,this.createDropHandler(e,!1,s,d),this.createDragPreview(i,o),e,d);this.addClickHandler(r,c,e)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(a){this.showTooltip(r,e,d.width,d.height,t,n)})),r},Sidebar.prototype.createDropHandler=function(e,t,n,a){return n=null==n||n,mxUtils.bind(this,function(i,o,s,r,l){if(i.isEnabled()){if((e=i.getImportableCells(e)).length>0){i.stopEditing();var d=null!=s&&i.isValidDropTarget(s,e,o),c=null;if(null==s||d||(s=null),!i.isCellLocked(s||i.getDefaultParent())){i.model.beginUpdate();try{if(r=Math.round(r),l=Math.round(l),t&&i.isSplitTarget(s,e,o)){var m=i.cloneCells(e);i.splitEdge(s,m,null,r-a.width/2,l-a.height/2),c=m}else e.length>0&&(c=i.importCells(e,r,l,s));if(null!=i.layoutManager){var u=i.layoutManager.getLayout(s);if(null!=u)for(var p=i.view.scale,g=i.view.translate,h=(r+g.x)*p,v=(l+g.y)*p,b=0;b<c.length;b++)u.moveCell(c[b],h,v)}n&&i.fireEvent(new mxEventObject("cellsInserted","cells",c))}finally{i.model.endUpdate()}null!=c&&c.length>0&&(i.scrollCellToVisible(c[0]),i.setSelectionCells(c))}}mxEvent.consume(o)}})},Sidebar.prototype.createDragPreview=function(e,t){var n=document.createElement("div");return n.style.border="1px dashed black",n.style.width=e+"px",n.style.height=t+"px",n},Sidebar.prototype.createDragSource=function(e,t,n){var a=mxUtils.makeDraggable(e,this.editorUi.editor.graph,t,n,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);return a.getDropTarget=function(e,t,n){var a=mxDragSource.prototype.getDropTarget.apply(this,arguments);return e.isValidRoot(a)||(a=null),a},a},Sidebar.prototype.addClickHandler=function(e,t){var n=this.editorUi.editor.graph,a=null;mxEvent.addGestureListeners(e,function(e){a=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var i=t.mouseUp;t.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=a){var o=n.tolerance;if(Math.abs(a.x-mxEvent.getClientX(e))<=o&&Math.abs(a.y-mxEvent.getClientY(e))<=o){var s=n.getGridSize();t.drop(n,e,null,s,s)}}i.apply(this,arguments),a=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,t,n,a,i,o,s,r){return r=null!=r&&r.length>0?r:i.toLowerCase(),this.addEntry(r,mxUtils.bind(this,function(){return this.createVertexTemplate(e,t,n,a,i,o,s)}))},Sidebar.prototype.createXmlDocument=function(e,t,n,a){var i=mxUtils.createXmlDocument().createElement(e);return i.setAttribute("label",t),n.forEach(function(e,t){i.setAttribute(e,a[t]?a[t]:"")}),i},Sidebar.prototype.createVertexTemplate=function(e,t,n,a,i,o,s,r){var l=[],d=[];switch(a){case"answer":l=["timeout"],d=["0"];break;case"start":l=["answer"],d=["yes"];break;case"ispeechasr":l=["key","model","ispeech_asr_language","timeout","intKey","beep"],d=["","","it-IT","1","#","BEEP"];break;case"playback":l=["file_id","opts"],d=["0"];break;case"background":l=["file_id","response","digit"],d=["0","5","1"];break;case"menu":l=["file_id","response","digit","retry","variable_id"],d=["0","5","1","1","0"];break;case"getdigits":l=["file_id","response","mindigit","maxdigit","retry","variable_id"],d=["0","5","1","10","1","0"];break;case"getsecretdigits":l=["file_id","response","mindigit","maxdigit","retry","hiddendigitsnum","hiddendigitspos","variable_id"],d=["0","5","1","10","1","0","first","0"];break;case"custom_app":l=["application","options"],d=["",""];break;case"set":l=["variable_id","variable_value"],d=["0",""];break;case"database":l=["odbc_id","query","variable_id"],d=["0","",""];break;case"noop":l=["output"],d=[];break;case"gotoc":l=["context","extension","priority"],d=["","","1"];break;case"system":l=["variable_id","command"],d=[];break;case"agi":l=["command","args"],d=[];break;case"gotoif":l=["condition"],d=[];break;case"gotoiftime":l=["interval_id"],d=["0"];break;case"vswitch":l=["variable_id"],d=["0"];break;case"saydigits":l=["digits","escape_digits"],d=["","#"];break;case"saynumber":l=["number","escape_digits"],d=["","#"];break;case"sayphonetic":l=["text","escape_digits"],d=["","#"];break;case"record":l=["file","recordingFormat","timeout","escape_digits"],d=["","wav","-1","#"];break;case"dial":l=["sip_id","timeout","opts","url"],d=["0","60"];break;case"ext_dial":l=["phone","trunk_name","timeout","opts","url"],d=["","-1","60"];break;case"tts":l=["text","google_tts_language"],d=["","it"];break;case"ispeechtts":l=["text","key","ispeech_tts_language","speed","intKey"],d=["","","euritalianfemale","0","#"];break;case"queue":l=["queue_id","opts","url","file_id","timeout","agi","macro","gosub","position"],d=["-1","xX","","","300"];break;case"voicemail":l=["mailbox","options"],d=["",""];break;case"subproject":l=["project_id"],d=["0"];break;case"math":l=["operation","variable_id"],d=["","0"];break;case"queuelog":l=["queuename","agent","queue_event","data1","data2","data3","data4","data5"],d=[];break;case"goal":l=["goalname"],d=[];break;case"callback":l=["name","lastName","phone","list_id","delay"],d=["{CALLERID(name)}","","{CALLERID(num)}","-1","5"];break;case"sendSMS":l=["account_id","to","sms_text"],d=["0"];break;case"sendMail":l=["account_id","template_id","to","cc","bcc","subject","text"],d=["0"];break;case"sendFax":l=["account_id","to","choose_attachment","attachment_name","attachment_type","attachment_path"],d=["0"];break;default:l=[],d=[]}var c=[new mxCell(this.createXmlDocument(a,i,l,d),new mxGeometry(0,0,t,n),e)];return c[0].vertex=!0,this.createVertexTemplateFromCells(c,t,n,i,o,s,r)},Sidebar.prototype.createVertexTemplateFromCells=function(e,t,n,a,i,o,s){return this.createItem(e,a,i,o,t,n,s)},Sidebar.prototype.createEdgeTemplate=function(e,t,n,a,i,o,s){var r=new mxCell(null!=a?a:"",new mxGeometry(0,0,t,n),e);return r.geometry.setTerminalPoint(new mxPoint(0,n),!0),r.geometry.setTerminalPoint(new mxPoint(t,0),!1),r.geometry.relative=!0,r.edge=!0,this.createEdgeTemplateFromCells([r],t,n,i,o,s)},Sidebar.prototype.createEdgeTemplateFromCells=function(e,t,n,a,i,o){return this.createItem(e,a,i,!0,t,n,o)},Sidebar.prototype.addPaletteFunctions=function(e,t,n,a){this.addPalette(e,t,n,mxUtils.bind(this,function(e){for(var t=0;t<a.length;t++)e.appendChild(a[t](e))}))},Sidebar.prototype.addPalette=function(e,t,n,a){var i=this.createTitle(t);this.container.appendChild(i);var o=document.createElement("div");o.className="geSidebar",mxClient.IS_POINTER&&(o.style.touchAction="none"),mxEvent.addListener(o,"mousemove",mxUtils.bind(this,function(e){mxEvent.getSource(e)==o?o.setAttribute("title",mxResources.get("sidebarTooltip")):o.removeAttribute("title")})),n?(a(o),a=null):o.style.display="none",this.addFoldingHandler(i,o,a);var s=document.createElement("div");return s.appendChild(o),this.container.appendChild(s),null!=e&&(this.palettes[e]=[i,s]),o},Sidebar.prototype.addFoldingHandler=function(e,t,n){var a=!1;(!mxClient.IS_IE||document.documentMode>=8)&&(e.style.backgroundImage="none"==t.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),e.style.backgroundRepeat="no-repeat",e.style.backgroundPosition="0% 50%",mxEvent.addListener(e,"click",mxUtils.bind(this,function(i){if("none"==t.style.display){if(a)t.style.display="block";else if(a=!0,null!=n){e.style.cursor="wait";var o=e.innerHTML;e.innerHTML=mxResources.get("loading")+"...",window.setTimeout(function(){var a=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,n(t),mxClient.NO_FO=a,t.style.display="block",e.style.cursor="",e.innerHTML=o},0)}else t.style.display="block";e.style.backgroundImage="url('"+this.expandedImage+"')"}else e.style.backgroundImage="url('"+this.collapsedImage+"')",t.style.display="none";mxEvent.consume(i)}))},Sidebar.prototype.addImagePalette=function(e,t,n,a,i,o,s){for(var r=[],l=0;l<i.length;l++)mxUtils.bind(this,function(e,t,o){if(null==o){var s=e.lastIndexOf("/"),d=e.lastIndexOf(".");o=e.substring(s>=0?s+1:0,d>=0?d:e.length).replace(/[-_]/g," ")}r.push(this.createVertexTemplateEntry("image;html=1;labelBackgroundColor=#ffffff;image="+n+e+a,this.defaultImageWidth,this.defaultImageHeight,i[l],t,!1,!0,this.filterTags(o)))})(i[l],null!=o?o[l]:null,null!=s?s[i[l]]:null);this.addPaletteFunctions(e,t,!1,r)},"undefined"!=typeof html4&&(html4.ATTRIBS["a::target"]=0),mxConstants.SHADOW_OPACITY=.25,mxConstants.SHADOWCOLOR="#000000",mxConstants.VML_SHADOWCOLOR="#d0d0d0",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,function(){try{if(null!=navigator&&null!=navigator.language){var e=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===e||"en-ca"===e||"es-mx"===e?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(e){}}(),mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,mxGraphModel.prototype.ignoreRelativeEdgeParent=!1,mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif",mxGraphView.prototype.gridSteps=4,mxGraphView.prototype.minGridSize=4,mxGraphView.prototype.gridColor="#e0e0e0",mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]",Graph=function(e,t,n,a){mxGraph.call(this,e,t,n,a),this.setConnectable(!0),this.setDropEnabled(!1),this.setPanning(!0),this.setTooltips(!mxClient.IS_TOUCH),this.setAllowLoops(!1),this.setMultigraph(!1),this.allowAutoPanning=!0,this.resetEdgesOnConnect=!1,this.constrainChildren=!1,this.connectionHandler.targetConnectImage=!0,this.setAllowDanglingEdges(!1),this.connectionHandler.setCreateTarget(!1),this.connectionHandler.isValidSource=function(){return mxConnectionHandler.prototype.isValidSource.apply(this,arguments)&&"2"!=urlParams.connect},this.alternateEdgeStyle="vertical",null==a&&this.loadStylesheet();var i=new mxRubberband(this);this.getRubberband=function(){return i},this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.container.style.cursor="pointer"})),this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.container.style.cursor="default"})),this.isHtmlLabel=function(e){var t=this.view.getState(e),n=null!=t?t.style:this.getCellStyle(e);return"1"==n.html||"wrap"==n.whiteSpace},this.cellRenderer.getLabelValue=function(e){var t=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);return"wrap"==e.style.whiteSpace&&1!=e.style.html&&(t=mxUtils.htmlEntities(t,!1)),t},this.isCellLocked=function(e){return!1},this.connectionHandler.tapAndHoldTolerance=16;var o=this.connectionHandler.tapAndHold;this.connectionHandler.tapAndHold=function(e,t){null==t?this.graph.panningHandler.active||(i.start(e.getGraphX(),e.getGraphY()),this.graph.panningHandler.panningTrigger=!1):tapAndHoldStartsConnection?o.apply(this,arguments):this.graph.isCellSelected(t.cell)&&this.graph.getSelectionCount()>1&&this.graph.removeSelectionCell(t.cell)},touchStyle&&this.initTouch()},mxUtils.extend(Graph,mxGraph),Graph.prototype.minFitScale=null,Graph.prototype.maxFitScale=null,Graph.prototype.loadStylesheet=function(){var e=mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement();new mxCodec(e.ownerDocument).decode(e,this.getStylesheet())},Graph.prototype.flipEdge=function(e){if(null!=e){var t=this.view.getState(e),n=null!=t?t.style:this.getCellStyle(e);if(null!=n){var a=mxUtils.getValue(n,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,a,[e])}}},Graph.prototype.setDefaultEdge=function(e){if(null!=e&&this.getModel().isEdge(e)){var t=this.getModel().cloneCells([e])[0];null!=t.geometry&&(t.geometry.points=null);var n=t.getStyle();n=mxUtils.setStyle(n,mxConstants.STYLE_ENTRY_X,null),n=mxUtils.setStyle(n,mxConstants.STYLE_ENTRY_Y,null),n=mxUtils.setStyle(n,mxConstants.STYLE_EXIT_X,null),n=mxUtils.setStyle(n,mxConstants.STYLE_EXIT_Y,null),t.setStyle(n),this.connectionHandler.createEdgeState=function(e){return this.graph.view.createState(t)},this.connectionHandler.factoryMethod=function(){return this.graph.cloneCells([t])[0]}}},Graph.prototype.isCellFoldable=function(e){return this.foldingEnabled&&this.isSwimlane(e)},Graph.prototype.isValidRoot=function(e){return this.isSwimlane(e)},Graph.prototype.createGroupCell=function(){var e=mxGraph.prototype.createGroupCell.apply(this,arguments);return e.setStyle("group"),e},Graph.prototype.getTooltipForCell=function(e){var t="";return this.getModel().isVertex(e)?t+=mxResources.get("description_"+e.value.nodeName)||"":this.getModel().isEdge(e)&&(t=mxGraph.prototype.getTooltipForCell.apply(this,arguments)),t},Graph.prototype.convertValueToString=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("label"):mxGraph.prototype.convertValueToString.apply(this,arguments)},Graph.prototype.cellLabelChanged=function(e,t,n){if(null!=e.value&&"object"==typeof e.value){var a=e.value.cloneNode(!0);a.setAttribute("label",t),t=a}mxGraph.prototype.cellLabelChanged.apply(this,arguments)},Graph.prototype.setLinkForCell=function(e,t){var n=null;null!=e.value&&"object"==typeof e.value?n=e.value.cloneNode(!0):(n=mxUtils.createXmlDocument().createElement("UserObject")).setAttribute("label",e.value),null!=t&&t.length>0?n.setAttribute("link",t):n.removeAttribute("link"),this.model.setValue(e,n)},Graph.prototype.getLinkForCell=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("link"):null},Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first},this.addListener(mxEvent.START_EDITING,function(e,t){this.panningHandler.hideMenu()});var e=!1,t=null;this.updateMouseEvent=function(e){if(mxGraph.prototype.updateMouseEvent.apply(this,arguments),null==e.getState()){var t=this.getCellAt(e.graphX,e.graphY);this.getModel().isEdge(t)&&(e.state=this.view.getState(t),null!=e.state&&null!=e.state.shape&&(this.container.style.cursor=e.state.shape.node.style.cursor))}null==e.getState()&&(this.container.style.cursor="default")},this.fireMouseEvent=function(n,a,i){if(n==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(e=!1,t=null):(t=a.getCell(),e=null!=t?this.isCellSelected(t):this.isSelectionEmpty());else if(n==mxEvent.MOUSE_UP){if(e&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var o=mxEvent.getClientX(a.getEvent()),s=mxEvent.getClientY(a.getEvent());this.panningHandler.popup(o+16,s,t,a.getEvent())}return e=!1,t=null,void a.consume()}e=!1,t=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),n==mxEvent.MOUSE_MOVE&&a.isConsumed()&&(e=!1,t=null)}},function(){if(mxVertexHandler.prototype.rotationEnabled=!0,mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,touchStyle){mxConstants.HANDLE_SIZE=16,mxConstants.LABEL_HANDLE_SIZE=7,mxClient.IS_TOUCH&&(mxVertexHandler.prototype.tolerance=4,mxEdgeHandler.prototype.tolerance=6,Graph.prototype.tolerance=14,Graph.prototype.gridSize=20,mxPanningHandler.prototype.selectOnPopup=!1,mxPanningHandler.prototype.useLeftButtonForPanning=!0,mxPanningHandler.prototype.isPanningTrigger=function(e){var t=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())||mxEvent.isControlDown(t)&&mxEvent.isShiftDown(t)||this.usePopupTrigger&&mxEvent.isPopupTrigger(t)});var e=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(t,n){e.apply(this,arguments),this.graph.isCellSelected(n.getCell())&&this.graph.getSelectionCount()>1&&(this.delayedSelection=!1)},Graph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxConnectionHandler.prototype.selectCells=function(e,t){touchStyle&&null!=t?this.graph.setSelectionCell(t):this.graph.setSelectionCell(e)};var t=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,n){if(null==n){var a=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.getCellAt(a.x,a.y)}t.call(this,e,n)};var n=new mxImage(IMAGE_PATH+"/touch-handle.png",16,16);mxVertexHandler.prototype.handleImage=n,mxEdgeHandler.prototype.handleImage=n,mxOutline.prototype.sizerImage=n,(new Image).src=n.src;var a=IMAGE_PATH+"/touch-connector.png",i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(this.connectorImg=mxUtils.createImage(a),this.connectorImg.style.cursor="pointer",this.connectorImg.style.width="29px",this.connectorImg.style.height="29px",this.connectorImg.style.position="absolute",mxClient.IS_TOUCH||(this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state)),this.connectorImg.style.padding="2px",mxEvent.addGestureListeners(this.connectorImg,mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,t.x,t.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+4+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};r=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,t){r.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=a}else{o=new mxImage(IMAGE_PATH+"/connector.png",15,15);if(mxConnectionHandler.prototype.connectImage=o,(new Image).src=o.src,"2"==urlParams.connect){var o=new mxImage(IMAGE_PATH+"/connector.png",15,15),i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(mxClient.IS_IE&&!mxClient.IS_SVG?(this.connectorImg=document.createElement("div"),this.connectorImg.style.backgroundImage="url("+o.src+")",this.connectorImg.style.backgroundPosition="center",this.connectorImg.style.backgroundRepeat="no-repeat",this.connectorImg.style.width=o.width+4+"px",this.connectorImg.style.height=o.height+4+"px",this.connectorImg.style.display=mxClient.IS_QUIRKS?"inline":"inline-block"):(this.connectorImg=mxUtils.createImage(o.src),this.connectorImg.style.width=o.width+"px",this.connectorImg.style.height=o.height+"px"),this.connectorImg.style.cursor="pointer",this.connectorImg.style.position="absolute",this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state),this.connectorImg.style.padding="2px",mxEvent.addListener(this.connectorImg,"mousedown",mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,t.x,t.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};var s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+2+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};var r=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,t){r.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var e=this.editorUi,t=e.editor,n=t.graph;this.addAction("new",function(){e.projectDesignController.newProject()}),this.addAction("open",function(){e.projectDesignController.openProject()}),this.addAction("save",function(){e.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(t.getGraphXml())),e.editor.modified=!1},null,null,"Ctrl+S"),this.addAction("saveAs",function(){e.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(t.getGraphXml()))},null,null,"Ctrl+Shift+S"),this.addAction("publish",function(){e.editor.setStatus(""),null===e.validate()?(e.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(t.getGraphXml()),!0),e.editor.modified=!1):(e.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){e.editor.setStatus("")},3e3))},null,null,"Ctrl+Shift+P"),this.addAction("variable",function(){e.projectDesignController.newVariable()}),this.addAction("import",function(){e.projectDesignController.importXML(function(e){t.setGraphXml(mxUtils.parseXml(e).documentElement)})}),this.addAction("export",function(){e.exportXML(mxUtils.getPrettyXml(t.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){e.projectDesignController.editXML(mxUtils.getPrettyXml(t.getGraphXml()),function(e){t.setGraphXml(mxUtils.parseXml(e).documentElement)})}),this.addAction("print",function(){mxUtils.printScreen(n)},null,"sprite-print","Ctrl+P"),this.addAction("preview",function(){mxUtils.show(n,null,10,10)}),this.addAction("undo",function(){t.undoManager.undo()},null,"sprite-undo","Ctrl+Z"),this.addAction("redo",function(){t.undoManager.redo()},null,"sprite-redo","Ctrl+Y"),this.addAction("cut",function(){mxClipboard.cut(n)},null,"sprite-cut","Ctrl+X"),this.addAction("copy",function(){mxClipboard.copy(n)},null,"sprite-copy","Ctrl+C"),this.addAction("paste",function(){mxClipboard.paste(n)},!1,"sprite-paste","Ctrl+V"),this.addAction("delete",function(){n.removeCells()},null,null,"Delete"),this.addAction("duplicate",function(){var e=n.gridSize;n.setSelectionCells(n.moveCells(n.getSelectionCells(),e,e,!0))},null,null,"Ctrl+D"),this.addAction("selectVertices",function(){n.selectVertices()},null,null,"Ctrl+Shift+V"),this.addAction("selectEdges",function(){n.selectEdges()},null,null,"Ctrl+Shift+E"),this.addAction("selectAll",function(){n.selectAll()},null,null,"Ctrl+A"),this.addAction("home",function(){n.home()},null,null,"Home"),this.addAction("exitGroup",function(){n.exitGroup()},null,null,"Page Up"),this.addAction("enterGroup",function(){n.enterGroup()},null,null,"Page Down"),this.addAction("expand",function(){n.foldCells(!1)},null,null,"Enter"),this.addAction("collapse",function(){n.foldCells(!0)},null,null,"Backspace"),this.addAction("toFront",function(){n.orderCells(!1)},null,null,"Ctrl+F"),this.addAction("toBack",function(){n.orderCells(!0)},null,null,"Ctrl+B"),this.addAction("group",function(){n.setSelectionCell(n.groupCells(null,0))},null,null,"Ctrl+G"),this.addAction("ungroup",function(){n.setSelectionCells(n.ungroupCells())},null,null,"Ctrl+U"),this.addAction("removeFromGroup",function(){n.removeCellsFromParent()}),this.addAction("editLink",function(){var e=n.getSelectionCell(),t=n.getLinkForCell(e);null==t&&(t=""),null!=(t=mxUtils.prompt(mxResources.get("enterValue"),t))&&n.setLinkForCell(e,t)}),this.addAction("openLink",function(){var e=n.getSelectionCell(),t=n.getLinkForCell(e);null!=t&&window.open(t)}),this.addAction("autosize",function(){var e=n.getSelectionCells();if(null!=e){n.getModel().beginUpdate();try{for(var t=0;t<e.length;t++){var a=e[t];n.getModel().getChildCount(a)?n.updateGroupBounds([a],20):n.updateCellSize(a)}}finally{n.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=n.getView().getState(n.getSelectionCell()),t="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(t=null),n.setCellStyles(mxConstants.STYLE_WHITE_SPACE,t)}),this.addAction("rotation",function(){var e="0",t=n.getView().getState(n.getSelectionCell());null!=t&&(e=t.style[mxConstants.STYLE_ROTATION]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)",e))&&n.setCellStyles(mxConstants.STYLE_ROTATION,e)}),this.addAction("tilt",function(){var e=n.getSelectionCells();if(null!=e){n.getModel().beginUpdate();try{for(var t=0;t<e.length;t++){var a=e[t];if(n.getModel().isVertex(a)&&0==n.getModel().getChildCount(a)){var i=n.getCellGeometry(a);if(null!=i){(i=i.clone()).x+=i.width/2-i.height/2,i.y+=i.height/2-i.width/2;var o=i.width;i.width=i.height,i.height=o,n.getModel().setGeometry(a,i);var s=n.view.getState(a);if(null!=s){var r=s.style[mxConstants.STYLE_DIRECTION]||"east";"east"==r?r="south":"south"==r?r="west":"west"==r?r="north":"north"==r&&(r="east"),n.setCellStyles(mxConstants.STYLE_DIRECTION,r,[a])}}}}}finally{n.getModel().endUpdate()}}},null,null,"Ctrl+R"),this.addAction("actualSize",function(){n.zoomTo(1)}),this.addAction("zoomIn",function(){n.zoomIn()},null,null,"Add"),this.addAction("zoomOut",function(){n.zoomOut()},null,null,"Subtract"),this.addAction("fitWindow",function(){n.fit()}),this.addAction("fitPage",mxUtils.bind(this,function(){n.pageVisible||this.get("pageView").funct();var e=n.pageFormat,t=n.pageScale,a=n.container.clientWidth-20,i=n.container.clientHeight-20,o=Math.floor(100*Math.min(a/e.width/t,i/e.height/t))/100;n.zoomTo(o),n.container.scrollLeft=Math.round(n.view.translate.x*o-Math.max(10,(n.container.clientWidth-e.width*t*o)/2)),n.container.scrollTop=Math.round(n.view.translate.y*o-Math.max(10,(n.container.clientHeight-e.height*t*o)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){n.pageVisible||this.get("pageView").funct();var e=n.pageFormat,t=n.pageScale,a=n.container.clientWidth-20,i=Math.floor(100*a/e.width/t)/100;n.zoomTo(i),n.container.scrollLeft=Math.round(n.view.translate.x*i-Math.max(10,(n.container.clientWidth-e.width*t*i)/2)),n.container.scrollTop=Math.round(n.view.translate.y*i-Math.max(10,(n.container.clientHeight-e.height*t*i)/2))})),this.put("customZoom",new Action(mxResources.get("custom"),function(){var e=mxUtils.prompt(mxResources.get("enterValue")+" (%)",parseInt(100*n.getView().getScale()));null!=e&&e.length>0&&!isNaN(parseInt(e))&&n.zoomTo(parseInt(e)/100)}));var a=null;(a=this.addAction("grid",function(){n.setGridEnabled(!n.isGridEnabled()),t.updateGraphComponents()},null,null,"Ctrl+Shift+G")).setToggleAction(!0),a.setSelectedCallback(function(){return n.isGridEnabled()}),(a=this.addAction("guides",function(){n.graphHandler.guidesEnabled=!n.graphHandler.guidesEnabled})).setToggleAction(!0),a.setSelectedCallback(function(){return n.graphHandler.guidesEnabled}),(a=this.addAction("tooltips",function(){n.tooltipHandler.setEnabled(!n.tooltipHandler.isEnabled())})).setToggleAction(!0),a.setSelectedCallback(function(){return n.tooltipHandler.isEnabled()}),(a=this.addAction("navigation",function(){n.foldingEnabled=!n.foldingEnabled,n.view.revalidate()})).setToggleAction(!0),a.setSelectedCallback(function(){return n.foldingEnabled}),(a=this.addAction("scrollbars",function(){if(n.scrollbars=!n.scrollbars,t.updateGraphComponents(),n.scrollbars){var e=n.view.translate.x,a=n.view.translate.y;n.view.translate.x=0,n.view.translate.y=0,n.sizeDidChange(),n.container.scrollLeft-=Math.round(e*n.view.scale),n.container.scrollTop-=Math.round(a*n.view.scale)}else{var i=n.view.translate;n.view.setTranslate(i.x-n.container.scrollLeft/n.view.scale,i.y-n.container.scrollTop/n.view.scale),n.container.scrollLeft=0,n.container.scrollTop=0,n.sizeDidChange()}},!mxClient.IS_TOUCH)).setToggleAction(!0),a.setSelectedCallback(function(){return"auto"==n.container.style.overflow}),(a=this.addAction("pageView",mxUtils.bind(this,function(){n.pageVisible=!n.pageVisible,n.pageBreaksVisible=n.pageVisible,n.preferPageSize=n.pageBreaksVisible,n.view.validate(),n.sizeDidChange(),t.updateGraphComponents(),t.outline.update(),mxUtils.hasScrollbars(n.container)&&(n.pageVisible?(n.container.scrollLeft-=20,n.container.scrollTop-=20):(n.container.scrollLeft+=20,n.container.scrollTop+=20))}))).setToggleAction(!0),a.setSelectedCallback(function(){return n.pageVisible}),(a=this.addAction("connect",function(){n.setConnectable(!n.connectionHandler.isEnabled())},null,null,"Ctrl+Q")).setToggleAction(!0),a.setSelectedCallback(function(){return n.connectionHandler.isEnabled()}),(a=this.addAction("copyConnect",function(){n.connectionHandler.setCreateTarget(!n.connectionHandler.isCreateTarget())})).setToggleAction(!0),a.setSelectedCallback(function(){return n.connectionHandler.isCreateTarget()}),this.addAction("help",function(){window.open("https://wiki.xcallymotion.com/display/XMD/Cally+Square")}),this.put("about",new Action(mxResources.get("about")+" Cally Square",function(){window.open("http://callysquare.com/")},null,null,null));var i=mxUtils.bind(this,function(e,t){this.addAction(e,function(){n.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,t)})});i("bold",mxConstants.FONT_BOLD),i("italic",mxConstants.FONT_ITALIC),i("underline",mxConstants.FONT_UNDERLINE),this.addAction("shadow",function(){n.toggleCellStyles(mxConstants.STYLE_SHADOW)}),this.addAction("dashed",function(){n.toggleCellStyles(mxConstants.STYLE_DASHED)}),this.addAction("rounded",function(){n.toggleCellStyles(mxConstants.STYLE_ROUNDED)}),this.addAction("curved",function(){n.toggleCellStyles(mxConstants.STYLE_CURVED)}),this.addAction("style",function(){var e=n.getSelectionCells();if(null!=e&&e.length>0){var t=n.getModel(),a=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",t.getStyle(e[0])||"");null!=a&&n.setCellStyle(a,e)}}),this.addAction("setAsDefaultEdge",function(){n.setDefaultEdge(n.getSelectionCell())}),this.addAction("addWaypoint",function(){var e=n.getSelectionCell();if(null!=e&&n.getModel().isEdge(e)){var a=t.graph.selectionCellsHandler.getHandler(e);if(a instanceof mxEdgeHandler){var i=n.view.translate,o=n.view.scale,s=i.x,r=i.y,l=n.getModel().getParent(e),d=n.getCellGeometry(l);n.getModel().isVertex(l)&&null!=d&&(s+=d.x,r+=d.y),a.addPointAt(a.state,n.panningHandler.triggerX/o-s,n.panningHandler.triggerY/o-r)}}}),this.addAction("removeWaypoint",function(){var t=e.actions.get("removeWaypoint");null!=t.handler&&t.handler.removePoint(t.handler.state,t.index)}),this.addAction("image",function(){function e(e,t,a){var i=null,o=n.getSelectionCells();n.getModel().beginUpdate();try{if(0==o.length){var s=n.getGridSize();i=o=[n.insertVertex(n.getDefaultParent(),null,"",s,s,t,a)]}if(n.setCellStyles(mxConstants.STYLE_IMAGE,e,o),n.setCellStyles(mxConstants.STYLE_SHAPE,"image",o),1==n.getSelectionCount()&&null!=t&&null!=a){var r=o[0],l=n.getModel().getGeometry(r);null!=l&&((l=l.clone()).width=t,l.height=a,n.getModel().setGeometry(r,l))}}finally{n.getModel().endUpdate()}null!=i&&(n.setSelectionCells(i),n.scrollCellToVisible(i[0]))}var t="",a=n.getView().getState(n.getSelectionCell());if(null!=a&&(t=a.style[mxConstants.STYLE_IMAGE]||t),null!=(t=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",t))&&t.length>0){var i=new Image;i.onload=function(){e(t,i.width,i.height)},i.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},i.src=t}})},Actions.prototype.addAction=function(e,t,n,a,i){return this.put(e,new Action(mxResources.get(e),t,n,a,i))},Actions.prototype.put=function(e,t){return this.actions[e]=t,t},Actions.prototype.get=function(e){return this.actions[e]},mxUtils.extend(Action,mxEventSource),Action.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Action.prototype.setToggleAction=function(e){this.toggleAction=e},Action.prototype.setSelectedCallback=function(e){this.selectedCallback=e},Action.prototype.isSelected=function(){return this.selectedCallback()},Menus=function(e){this.editorUi=e,this.menus=new Object,this.init(),(new Image).src=IMAGE_PATH+"/checkmark.gif"},Menus.prototype.init=function(){var e=this.editorUi.editor.graph;this.put("fontFamily",new Menu(mxUtils.bind(this,function(e,t){for(var n=["Helvetica","Verdana","Times New Roman","Garamond","Comic Sans MS","Courier New","Georgia","Lucida Console","Tahoma"],a=0;a<n.length;a++)this.styleChange(e,n[a],[mxConstants.STYLE_FONTFAMILY],[n[a]],null,t).firstChild.nextSibling.style.fontFamily=n[a];e.addSeparator(t),this.promptChange(e,mxResources.get("custom"),"",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,t)}))),this.put("fontSize",new Menu(mxUtils.bind(this,function(e,t){for(var n=[6,8,9,10,11,12,14,18,24,36,48,72],a=0;a<n.length;a++)this.styleChange(e,n[a],[mxConstants.STYLE_FONTSIZE],[n[a]],null,t);e.addSeparator(t),this.promptChange(e,mxResources.get("custom"),"(pt)","12",mxConstants.STYLE_FONTSIZE,t)}))),this.put("linewidth",new Menu(mxUtils.bind(this,function(e,t){for(var n=[1,2,3,4,8,12,16,24],a=0;a<n.length;a++)this.styleChange(e,n[a]+"px",[mxConstants.STYLE_STROKEWIDTH],[n[a]],null,t);e.addSeparator(t),this.promptChange(e,mxResources.get("custom"),"(px)","1",mxConstants.STYLE_STROKEWIDTH,t)}))),this.put("line",new Menu(mxUtils.bind(this,function(e,t){this.styleChange(e,mxResources.get("straight"),[mxConstants.STYLE_EDGE],[null],null,t),this.styleChange(e,mxResources.get("entityRelation"),[mxConstants.STYLE_EDGE],["entityRelationEdgeStyle"],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("horizontal"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","horizontal"],null,t),this.styleChange(e,mxResources.get("vertical"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","vertical"],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("manual"),[mxConstants.STYLE_EDGE],["segmentEdgeStyle"],null,t),this.styleChange(e,mxResources.get("automatic"),[mxConstants.STYLE_EDGE],["orthogonalEdgeStyle"],null,t)}))),this.put("lineend",new Menu(mxUtils.bind(this,function(t,n){this.styleChange(t,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(t,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(t,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(t,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(t,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,n),t.addSeparator(n),t.addItem(mxResources.get("transparent"),null,function(){e.toggleCellStyles("endFill",!0)},n,null,!0),t.addSeparator(n),this.promptChange(t,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,n)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(t,n){this.styleChange(t,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(t,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(t,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(t,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(t,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,n),t.addSeparator(n),t.addItem(mxResources.get("transparent"),null,function(){e.toggleCellStyles("startFill",!0)},n,null,!0),t.addSeparator(n),this.promptChange(t,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,n)}))),this.put("spacing",new Menu(mxUtils.bind(this,function(e,t){var n=this.editorUi.actions.get("shadow").enabled,a=this.get("line").enabled;(n||e.showDisabled)&&(this.promptChange(e,mxResources.get("top"),"(px)","0",mxConstants.STYLE_SPACING_TOP,t,n),this.promptChange(e,mxResources.get("right"),"(px)","0",mxConstants.STYLE_SPACING_RIGHT,t,n),this.promptChange(e,mxResources.get("bottom"),"(px)","0",mxConstants.STYLE_SPACING_BOTTOM,t,n),this.promptChange(e,mxResources.get("left"),"(px)","0",mxConstants.STYLE_SPACING_LEFT,t,n),e.addSeparator(t),this.promptChange(e,mxResources.get("global"),"(px)","0",mxConstants.STYLE_SPACING,t,n),this.promptChange(e,mxResources.get("perimeter"),"(px)","0",mxConstants.STYLE_PERIMETER_SPACING,t,n)),(a||e.showDisabled)&&(e.addSeparator(t),this.promptChange(e,mxResources.get("sourceSpacing"),"(px)","0",mxConstants.STYLE_SOURCE_PERIMETER_SPACING,t,a),this.promptChange(e,mxResources.get("targetSpacing"),"(px)","0",mxConstants.STYLE_TARGET_PERIMETER_SPACING,t,a))}))),this.put("format",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItem(e,"style",t)}))),this.put("text",new Menu(mxUtils.bind(this,function(t,n){var a=this.get("text").enabled;t.addSeparator(n),this.addSubmenu("fontFamily",t,n),this.addSubmenu("fontSize",t,n),this.addMenuItems(t,["-","bold","italic","underline","-"],n),this.addSubmenu("alignment",t,n),this.addMenuItem(t,"wordWrap",n),t.addSeparator(n),this.promptChange(t,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,n,a),t.addItem(mxResources.get("hide"),null,function(){e.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},n,null,a)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(t,n){this.styleChange(t,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,n),this.styleChange(t,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,n),this.styleChange(t,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,n),t.addSeparator(n),this.styleChange(t,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,n),this.styleChange(t,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(t,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,n),t.addSeparator(n),this.addSubmenu("position",t,n),this.addSubmenu("spacing",t,n),t.addSeparator(n);var a=this.get("text").enabled;t.addItem(mxResources.get("vertical"),null,function(){e.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},n,null,a)}))),this.put("position",new Menu(mxUtils.bind(this,function(e,t){this.styleChange(e,mxResources.get("left"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_RIGHT],null,t),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_CENTER],null,t),this.styleChange(e,mxResources.get("right"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_LEFT],null,t),e.addSeparator(t),this.styleChange(e,mxResources.get("top"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP,mxConstants.ALIGN_BOTTOM],null,t),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_MIDDLE],null,t),this.styleChange(e,mxResources.get("bottom"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_TOP],null,t)}))),this.put("direction",new Menu(mxUtils.bind(this,function(t,n){t.addItem(mxResources.get("flipH"),null,function(){e.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},n),t.addItem(mxResources.get("flipV"),null,function(){e.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},n),this.addMenuItems(t,["-","tilt","rotation"],n)}))),this.put("align",new Menu(mxUtils.bind(this,function(t,n){t.addItem(mxResources.get("leftAlign"),null,function(){e.alignCells(mxConstants.ALIGN_LEFT)},n),t.addItem(mxResources.get("center"),null,function(){e.alignCells(mxConstants.ALIGN_CENTER)},n),t.addItem(mxResources.get("rightAlign"),null,function(){e.alignCells(mxConstants.ALIGN_RIGHT)},n),t.addSeparator(n),t.addItem(mxResources.get("topAlign"),null,function(){e.alignCells(mxConstants.ALIGN_TOP)},n),t.addItem(mxResources.get("middle"),null,function(){e.alignCells(mxConstants.ALIGN_MIDDLE)},n),t.addItem(mxResources.get("bottomAlign"),null,function(){e.alignCells(mxConstants.ALIGN_BOTTOM)},n)}))),this.put("layout",new Menu(mxUtils.bind(this,function(t,n){t.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var t=new mxHierarchicalLayout(e,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(t,!0,!0)}),n),t.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var t=new mxHierarchicalLayout(e,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(t,!0,!0)}),n)}))),this.put("navigation",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["home","-","exitGroup","enterGroup","-","expand","collapse"],t)}))),this.put("arrange",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["toFront","toBack","-"],t),this.addSubmenu("layout",e,t),e.addSeparator(t),this.addMenuItems(e,["-","group","ungroup","removeFromGroup"],t)}))),this.put("view",new Menu(mxUtils.bind(this,function(t,n){this.addMenuItems(t,["actualSize"],n),t.addSeparator();for(var a=[.25,.5,.75,1,2,4],i=0;i<a.length;i++)!function(a){t.addItem(100*a+"%",null,function(){e.zoomTo(a)},n)}(a[i]);this.addMenuItems(t,["-","zoomIn","zoomOut","-","fitWindow","customZoom","-","fitPage","fitPageWidth"],n)}))),this.put("file",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["new","open","-","save","saveAs","publish","-","variable","-","import","export","-","editFile","description","-","print"],t)}))),this.put("edit",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["undo","redo","-","cut","copy","paste","delete","-","duplicate","-","selectVertices","selectEdges","selectAll"])}))),this.put("help",new Menu(mxUtils.bind(this,function(e,t){this.addMenuItems(e,["help","-","about"])})))},Menus.prototype.put=function(e,t){this.menus[e]=t},Menus.prototype.get=function(e){return this.menus[e]},Menus.prototype.addSubmenu=function(e,t,n){var a=this.get(e).enabled;if(t.showDisabled||a){var i=t.addItem(mxResources.get(e),null,null,n,null,a);this.addMenu(e,t,i)}},Menus.prototype.addMenu=function(e,t,n){var a=this.get(e);null!=a&&(t.showDisabled||a.enabled)&&this.get(e).execute(t,n)},Menus.prototype.styleChange=function(e,t,n,a,i,o){return e.addItem(t,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph;e.getModel().beginUpdate();try{for(var t=0;t<n.length;t++)e.setCellStyles(n[t],a[t])}finally{e.getModel().endUpdate()}}),o,i)},Menus.prototype.promptChange=function(e,t,n,a,i,o,s){return e.addItem(t,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,t=a,o=e.getView().getState(e.getSelectionCell());null!=o&&(t=o.style[i]||t),null!=(t=mxUtils.prompt(mxResources.get("enterValue")+(n.length>0?" "+n:""),t))&&t.length>0&&e.setCellStyles(i,t)}),o,null,s)},Menus.prototype.addMenuItem=function(e,t,n){var a=this.editorUi.actions.get(t);if(null!=a&&(e.showDisabled||a.enabled)){var i=e.addItem(a.label,null,a.funct,n,null,a.enabled);return a.toggleAction&&a.isSelected()&&this.addCheckmark(i),this.addShortcut(i,a),i}return null},Menus.prototype.addShortcut=function(e,t){if(null!=t.shortcut){var n=e.firstChild.nextSibling.nextSibling,a=document.createElement("span");a.style.color="gray",mxUtils.write(a,t.shortcut),n.appendChild(a)}},Menus.prototype.addCheckmark=function(e){var t=e.firstChild.nextSibling;t.style.backgroundImage="url("+IMAGE_PATH+"/checkmark.gif)",t.style.backgroundRepeat="no-repeat",t.style.backgroundPosition="2px 50%"},Menus.prototype.addMenuItems=function(e,t,n){for(var a=0;a<t.length;a++)"-"==t[a]?e.addSeparator(n):this.addMenuItem(e,t[a],n)},Menus.prototype.createPopupMenu=function(e,t,n){var a=this.editorUi.editor.graph;if(e.smartSeparators=!0,a.isSelectionEmpty()?this.addMenuItems(e,["undo","redo","-","paste","-"]):(this.addMenuItems(e,["delete","-","cut","copy","-","duplicate"]),1==a.getSelectionCount()&&a.getModel().isEdge(a.getSelectionCell())&&this.addMenuItems(e,["setAsDefaultEdge"]),e.addSeparator()),a.getSelectionCount()>0){if(this.addMenuItems(e,["toFront","toBack","-"]),a.getModel().isEdge(a.getSelectionCell())){var i=!1;if(null!=(t=a.getSelectionCell())&&a.getModel().isEdge(t)){var o=a.selectionCellsHandler.getHandler(t);if(o instanceof mxEdgeHandler&&null!=o.bends&&o.bends.length>2){var s=o.getHandleForEvent(new mxMouseEvent(n)),r=this.editorUi.actions.get("removeWaypoint");r.handler=o,r.index=s,i=s>0&&s<o.bends.length}}this.addMenuItems(e,["-",i?"removeWaypoint":"addWaypoint"])}else a.getSelectionCount()>1&&(e.addSeparator(),this.addMenuItems(e,["group"]));e.addSeparator(),1==a.getSelectionCount()&&null!=a.getLinkForCell(a.getSelectionCell())&&this.addMenuItems(e,["openLink"])}else this.addMenuItems(e,["-","selectVertices","selectEdges","-","selectAll"])},Menus.prototype.createMenubar=function(e){for(var t=new Menubar(this.editorUi,e),n=["file","edit","view","format","text","arrange","help"],a=0;a<n.length;a++)t.addMenu(mxResources.get(n[a]),this.get(n[a]).funct);return t},Menubar.prototype.hideMenu=function(){null!=this.currentMenu&&this.currentMenu.hideMenu()},Menubar.prototype.addMenu=function(e,t){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.className="geItem",mxUtils.write(n,e),this.addMenuHandler(n,t),this.container.appendChild(n),n},Menubar.prototype.getOffset=function(e){return e=e.getBoundingClientRect(),{left:e.left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(e,t){if(null!=t){var n=!0,a=mxUtils.bind(this,function(a){if(n&&null==e.enabled||e.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var i=new mxPopupMenu(t);i.div.className+=" geMenubarMenu",i.smartSeparators=!0,i.showDisabled=!0,i.autoExpand=!0,i.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(i,arguments),i.destroy(),this.currentMenu=null,this.currentElt=null});var o=this.getOffset(e).left,s=this.getOffset(e).top+e.offsetHeight;i.popup(o,s,null,a),this.currentMenu=i,this.currentElt=e}n=!0,mxEvent.consume(a)});mxEvent.addListener(e,"mousemove",mxUtils.bind(this,function(t){null!=this.currentMenu&&this.currentElt!=e&&(this.hideMenu(),a(t))})),mxEvent.addListener(e,"mousedown",mxUtils.bind(this,function(){n=this.currentElt!=e})),mxEvent.addListener(e,"click",a)}},mxUtils.extend(Menu,mxEventSource),Menu.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Menu.prototype.execute=function(e,t){this.funct(e,t)},Toolbar.prototype.init=function(){this.addItems(["save","publish","-","print","undo","redo","-","copy","cut","paste","delete","-","duplicate","-","actualSize","zoomIn","zoomOut","-"]);this.editorUi.editor.graph},Toolbar.prototype.hideMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.currentMenu.destroy(),this.currentMenu=null)},Toolbar.prototype.addMenu=function(e,t,n,a){var i=this.editorUi.menus.get(a),o=this.addMenuFunction(e,t,n,i.funct);return i.addListener("stateChanged",function(){o.setEnabled(i.enabled)}),o},Toolbar.prototype.addMenuFunction=function(e,t,n,a){var i=n?this.createLabel(e):this.createButton(e);return this.initElement(i,t),this.addMenuHandler(i,n,a),this.container.appendChild(i),i},Toolbar.prototype.addSeparator=function(){var e=document.createElement("div");return e.className="geSeparator",this.container.appendChild(e),e},Toolbar.prototype.addItems=function(e){for(var t=0;t<e.length;t++){var n=e[t];"-"==n?this.addSeparator():this.addItem("geSprite-"+n.toLowerCase(),n)}},Toolbar.prototype.addItem=function(e,t){var n=this.editorUi.actions.get(t),a=null;return null!=n&&((a=this.addButton(e,n.label,n.funct)).setEnabled(n.enabled),n.addListener("stateChanged",function(){a.setEnabled(n.enabled)})),a},Toolbar.prototype.addButton=function(e,t,n){var a=this.createButton(e);return this.initElement(a,t),this.addClickHandler(a,n),this.container.appendChild(a),a},Toolbar.prototype.addSelectionHandler=function(e){var t=this.editorUi.editor.graph,n=function(){for(var n=!t.isSelectionEmpty(),a=0;a<e.length;a++)e[a].setEnabled(n)};t.getSelectionModel().addListener(mxEvent.CHANGE,n),n()},Toolbar.prototype.addEdgeSelectionHandler=function(e){var t=this.editorUi.editor.graph,n=function(){var n=!1;if(!t.isSelectionEmpty())for(var a=t.getSelectionCells(),i=0;i<a.length;i++)if(t.getModel().isEdge(a[i])){n=!0;break}for(i=0;i<e.length;i++)e[i].setEnabled(n)};t.getSelectionModel().addListener(mxEvent.CHANGE,n),n()},Toolbar.prototype.initElement=function(e,t){e.setAttribute("tabindex","0"),null!=t&&e.setAttribute("title",t),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(e){var t=e.className;e.setEnabled=function(n){e.enabled=n,e.className=n?t:t+" geDisabled"},e.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(e,t){null!=t&&mxEvent.addListener(e,"click",function(n){e.enabled&&t(n),mxEvent.consume(n)})},Toolbar.prototype.createButton=function(e){var t=document.createElement("a");t.setAttribute("href","javascript:void(0);"),t.className="geButton";var n=document.createElement("div");return n.className="geSprite "+e,t.appendChild(n),t},Toolbar.prototype.createLabel=function(e,t){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.className="geLabel",mxUtils.write(n,e),n},Toolbar.prototype.addMenuHandler=function(e,t,n,a){if(null!=n){var i=this.editorUi.editor.graph,o=null;mxEvent.addListener(e,"click",mxUtils.bind(this,function(s){(null==e.enabled||e.enabled)&&(i.panningHandler.hideMenu(),(o=new mxPopupMenu(n)).div.className+=" geToolbarMenu",o.showDisabled=a,o.labels=t,o.autoExpand=!0,o.popup(e.offsetLeft,e.offsetTop+e.offsetHeight+34,null,s),this.currentMenu=o),mxEvent.consume(s)}))}},Dialog.prototype.close=function(){null!=this.onDialogClose&&(this.onDialogClose(),this.onDialogClose=null),this.container.parentNode.removeChild(this.container),this.bg.parentNode.removeChild(this.bg)},angular.module("motion").run(["$templateCache",function(e){"use strict";e.put("app/core/directives/ms-card/templates/template-1/template-1.html",'<div class="template-1">\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n\n    <div class="content pv-24 ph-16">\n        <div class="title h1" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="subtitle secondary-text" ng-if="card.subtitle">\n            {{card.subtitle}}\n        </div>\n\n        <div class="text pt-16" ng-if="card.text">\n            {{card.text}}\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-10/template-10.html",'<div class="template-10 p-16">\n    <div class="pb-16" layout="row" layout-align="space-between center">\n        <div class="info">\n            <div class="title secondary-text" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle h2" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n        </div>\n\n        <div class="media ml-16">\n            <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n        </div>\n    </div>\n\n    <div class="text">\n        {{card.text}}\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-2/template-2.html",'<div class="template-2">\n    <div class="header p-16" layout="row" layout-align="start center">\n        <div ng-if="card.avatar">\n            <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n        </div>\n\n        <div class="info">\n            <div class="title" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle secondary-text" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n        </div>\n    </div>\n\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n\n    <div class="text p-16" ng-if="card.text">\n        {{card.text}}\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-3/template-3.html",'<div class="template-3 p-16 teal-bg white-fg" layout="row" layout-align="space-between">\n    <div layout="column" layout-align="space-between">\n        <div class="info">\n            <div class="title h1" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle h3 secondary-text" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n        </div>\n\n        <div class="cta">\n            <md-button class="m-0">{{card.cta}}</md-button>\n        </div>\n    </div>\n\n    <div class="media pl-16">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-4/template-4.html",'<div class="template-4">\n    <div class="info white-fg ph-16 pv-24">\n        <div class="title h1" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="text" ng-if="card.text">\n            {{card.text}}\n        </div>\n    </div>\n\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-5/template-5.html",'<div class="template-5 p-16" layout="row" layout-align="space-between start">\n    <div class="info">\n        <div class="title secondary-text" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="event h2" ng-if="card.event">\n            {{card.event}}\n        </div>\n    </div>\n\n    <div class="media ml-16">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-6/template-6.html",'<div class="template-6">\n    <div class="content pv-24 ph-16">\n        <div class="subtitle secondary-text" ng-if="card.subtitle">\n            {{card.subtitle}}\n        </div>\n\n        <div class="title h2" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="text pt-8" ng-if="card.text">\n            {{card.text}}\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-7/template-7.html",'<div class="template-7" layout="row" layout-align="space-between">\n    <div class="info" layout="column" layout-align="space-between" layout-fill flex>\n        <div class="p-16">\n            <div class="title h1" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle h4 secondary-text" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n\n            <div class="text h4 pt-8" ng-if="card.text">\n                {{card.text}}\n            </div>\n        </div>\n\n        <div>\n            <md-divider></md-divider>\n            <div class="p-8" layout="row">\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n                <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n            </div>\n        </div>\n    </div>\n\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-8/template-8.html",'<div class="template-8">\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n\n    <div class="content pv-24 ph-16">\n        <div class="title h1" ng-if="card.title">\n            {{card.title}}\n        </div>\n\n        <div class="subtitle secondary-text" ng-if="card.subtitle">\n            {{card.subtitle}}\n        </div>\n\n        <div class="buttons pt-16">\n            <md-button class="m-0">{{card.button1}}</md-button>\n            <md-button class="m-0 md-accent">{{card.button2}}</md-button>\n        </div>\n\n        <div class="text pt-16" ng-if="card.text">\n            {{card.text}}\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-9/template-9.html",'<div class="template-9">\n    <div class="header p-16" layout="row" layout-align="start center">\n        <div ng-if="card.avatar">\n            <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n        </div>\n\n        <div class="info">\n            <div class="title" ng-if="card.title">\n                {{card.title}}\n            </div>\n\n            <div class="subtitle secondary-text" ng-if="card.subtitle">\n                {{card.subtitle}}\n            </div>\n\n        </div>\n    </div>\n\n    <div class="text ph-16 pb-16" ng-if="card.text">\n        {{card.text}}\n    </div>\n\n    <div class="media">\n        <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n    </div>\n\n    <div class="buttons m-8">\n        <md-button class="md-icon-button mr-16" aria-label="Favorite">\n            <md-icon md-font-icon="icon-heart-outline" class="s24"></md-icon>\n        </md-button>\n        <md-button class="md-icon-button" aria-label="Share">\n            <md-icon md-font-icon="icon-share" class="s24"></md-icon>\n        </md-button>\n    </div>\n\n</div>'),e.put("app/core/directives/ms-dash-clock/edit/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="TOOLS.EDIT_WIDGET">Edit Widget</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            \x3c!-- Theme START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.THEME">Theme</label>\n                <md-select ng-model="vm.options.data.theme" md-autofocus>\n                    <md-option value="light"> {{ \'TOOLS.LIGHT\' | translate }}</md-option>\n                    <md-option value="dark"> {{ \'TOOLS.DARK\' | translate }}</md-option>\n                </md-select>\n            </md-input-container>\n            \x3c!-- Theme END --\x3e\n\n            \x3c!-- Timezone START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TIMEZONE">Timezone</label>\n                <md-select ng-model="vm.options.data.gmtValue" md-autofocus>\n                    <md-option value="-12.00">−12.00</md-option>\n                    <md-option value="-11.00">−11.00</md-option>\n                    <md-option value="-10.00">−10.00</md-option>\n                    <md-option value="-9.30">−09.30</md-option>\n                    <md-option value="-9.00">−09.00</md-option>\n                    <md-option value="-8.00">−08.00</md-option>\n                    <md-option value="-7.00">−07.00</md-option>\n                    <md-option value="-6.00">−06.00</md-option>\n                    <md-option value="-5.00">−05.00</md-option>\n                    <md-option value="-4.3">−04.30</md-option>\n                    <md-option value="-4.00">−04.00</md-option>\n                    <md-option value="-3.3">−03.30</md-option>\n                    <md-option value="-3.00">−03.00</md-option>\n                    <md-option value="-2.00">−02.00</md-option>\n                    <md-option value="-1.00">−01.00</md-option>\n                    <md-option value="0.00">GMT (00.00)</md-option>\n                    <md-option value="1.00">+01.00</md-option>\n                    <md-option value="2.00">+02.00</md-option>\n                    <md-option value="3.00">+03.00</md-option>\n                    <md-option value="3.30">+03.30</md-option>\n                    <md-option value="4.00">+04.00</md-option>\n                    <md-option value="4.30">+04.30</md-option>\n                    <md-option value="5.00">+05.00</md-option>\n                    <md-option value="5.30">+05.30</md-option>\n                    <md-option value="5.45">+05.45</md-option>\n                    <md-option value="6.00">+06.00</md-option>\n                    <md-option value="6.30">+06.30</md-option>\n                    <md-option value="7.00">+07.00</md-option>\n                    <md-option value="8.00">+08.00</md-option>\n                    <md-option value="8.45">+08.45</md-option>\n                    <md-option value="9.00">+09.00</md-option>\n                    <md-option value="9.30">+09.30</md-option>\n                    <md-option value="10.00">+10.00</md-option>\n                    <md-option value="10.30">+10.30</md-option>\n                    <md-option value="11.00">+11.00</md-option>\n                    <md-option value="11.30">+11.30</md-option>\n                    <md-option value="12.00">+12.00</md-option>\n                    <md-option value="12.45">+12.45</md-option>\n                    <md-option value="13.00">+13.00</md-option>\n                    <md-option value="14.00">+14.00</md-option>\n                </md-select>\n            </md-input-container>\n            \x3c!-- Timezone END --\x3e\n\n            \x3c!-- Digital Format START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DIGITAL_FORMAT">Digital Format</label>\n                <input type="text" name="digitalFormat" ng-model="vm.options.data.digitalFormat">\n            </md-input-container>\n            \x3c!-- Digital Format END --\x3e\n\n\n            \x3c!-- Description START --\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.options.data.description">\n            </md-input-container>\n            \x3c!-- Description END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.updateItem()" ng-disabled="dashboarditemForm.$pristine || dashboarditemForm.$invalid" class="send-button md-accent md-raised" aria-label="UPDATE" translate="TOOLS.UPDATE" translate-attr-aria-label="TOOLS.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/core/directives/ms-dash-clock/ms-dash-clock.html",'\x3c!-- WIDGET --\x3e\n<ms-widget flippable="true" layout="column" flex="100" layout-fill>\n\n    \x3c!-- Front --\x3e\n    <ms-widget-front>\n        <div class="ph-8 pv-16 h-55" layout="row">\n            <div layout="row" layout-align="start center">\n                <md-menu>\n                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE">\n                        <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>\n                    </md-button>\n\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="editItem()" translate="TOOLS.EDIT_WIDGET">\n                                Edit Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="deleteItem({id: options.id})" translate="TOOLS.DELETE_WIDGET">\n                                Delete Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="flipWidget()" translate="TOOLS.FLIP_WIDGET">\n                                Flip Widget\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n            <div layout="row" layout-align="end center" flex>\n                <span class="h3 secondary-text font-weight-500 text-truncate padding-right-20">{{ \'TOOLS.CLOCK\' | translate }}</span>\n            </div>\n        </div>\n\n        <div class="pt-16 pb-32" layout="column" layout-align="center center">\n            <div>\n                <ds-widget-clock theme="options.data.theme" digital-format="options.data.digitalFormat" gmt-offset="options.data.gmtValue" show-gmt-info></ds-widget-clock>\n            </div>\n        </div>\n    </ms-widget-front>\n    \x3c!-- / Front --\x3e\n\n    \x3c!-- Back --\x3e\n    <ms-widget-back class="p-16 white-bg">\n        <div class="flip-to-front">\n            <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n            </md-button>\n        </div>\n\n        <div>\n            {{ options.data.description || \'TOOLS.DESCRIPTION\' | translate }}\n        </div>\n    </ms-widget-back>\n    \x3c!-- / Back --\x3e\n\n</ms-widget>\n\x3c!-- / WIDGET --\x3e'),e.put("app/core/directives/ms-dash-counter/edit/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="TOOLS.EDIT_WIDGET">Edit Widget</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <md-tabs md-dynamic-height md-border-bottom>\n                \x3c!-- Layout Tab START --\x3e\n                <md-tab label="{{\'TOOLS.LAYOUT\' | translate}}">\n\n                    \x3c!-- Title START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.TITLE">Title</label>\n                        <input type="text" name="title" ng-model="vm.options.data.title" required>\n                        <div ng-messages="dashboarditemForm.title.$error" ng-show="dashboarditemForm.title.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    \x3c!-- Title END --\x3e\n\n                    \x3c!-- Background START--\x3e\n                    <div flex md-color-picker ng-model="vm.options.data.background" label="{{\'TOOLS.BACKGROUND_COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                        open-on-input="true"></div>\n                    \x3c!-- Background  END--\x3e\n\n                    \x3c!-- Foreground START--\x3e\n                    <div flex md-color-picker ng-model="vm.options.data.foreground" label="{{\'TOOLS.FOREGROUND_COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                        open-on-input="true"></div>\n                    \x3c!-- Foreground END--\x3e\n\n                    \x3c!-- Foreground Title START--\x3e\n                    <div flex md-color-picker ng-model="vm.options.data.foregroundTitle" label="{{\'TOOLS.FOREGROUND_TITLE_COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                        open-on-input="true"></div>\n                    \x3c!-- Foreground END--\x3e\n\n                    \x3c!-- Description Title START --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.DESCRIPTION">Description</label>\n                        <input type="text" name="description" ng-model="vm.options.data.description">\n                    </md-input-container>\n                    \x3c!-- Description END --\x3e\n\n                </md-tab>\n                \x3c!-- Layout Tab END --\x3e\n\n                \x3c!-- Query Tab START --\x3e\n                <md-tab label="{{\'TOOLS.TOOLS_QUERY\' | translate}}">\n                    \x3c!-- SELECT START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.SELECT">Select</label>\n                        <input type="text" name="select" ng-model="vm.options.data.query.fields" required>\n                    </md-input-container>\n                    \x3c!-- <md-chips placeholder="{{\'TOOLS.FIELDS\' | translate}}" ng-model="vm.options.data.query.fields" name="fields" md-max-chips="1" m d-enable-chip-edit="true"></md-chips> --\x3e\n                    \x3c!-- SELECT END --\x3e\n\n                    \x3c!-- FROM  START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.FROM">From</label>\n                        <input type="text" name="from" ng-model="vm.options.data.query.from" required>\n                    </md-input-container>\n                    \x3c!-- FROM END --\x3e\n\n                    \x3c!-- WHERE START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.WHERE">Where</label>\n                        <input type="text" name="where" ng-model="vm.options.data.query.where">\n                    </md-input-container>\n                    \x3c!-- WHERE END --\x3e\n\n                </md-tab>\n                \x3c!-- Query Tab END --\x3e\n            </md-tabs>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.updateItem()" ng-disabled="dashboarditemForm.$pristine || dashboarditemForm.$invalid" class="send-button md-accent md-raised" aria-label="UPDATE" translate="TOOLS.UPDATE" translate-attr-aria-label="TOOLS.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/core/directives/ms-dash-counter/ms-dash-counter.html",'\x3c!-- WIDGET --\x3e\n<ms-widget flippable="true" layout="column" flex="100" layout-fill>\n\n    \x3c!-- Front --\x3e\n    <ms-widget-front ng-style="{background: options.data.background}">\n        <div class="ph-8 pv-16 h-55" layout="row">\n            <div layout="row" layout-align="start center" flex="80">\n                <md-menu>\n                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE">\n                        <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>\n                    </md-button>\n\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="editItem()" translate="TOOLS.EDIT_WIDGET">\n                                Edit Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="deleteItem({id: options.id})" translate="TOOLS.DELETE_WIDGET">\n                                Delete Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="flipWidget()" translate="TOOLS.FLIP_WIDGET">\n                                Flip Widget\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n            <div layout="row" layout-align="end center" flex="20" ng-switch="result.error">\n                <md-icon ng-switch-default md-font-icon="icon-timer-sand"></md-icon>\n                <md-icon ng-switch-when="false" class="green-fg" md-font-icon="icon-check"></md-icon>\n                <md-icon ng-switch-when="true" class="red-fg" md-font-icon="icon-block-helper"></md-icon>\n            </div>\n        </div>\n\n        <div class="pt-8 pb-32" layout="column" layout-align="center center">\n            <div ng-if="!result.error" class="font-size-52 line-height-72" ng-style="{color: options.data.foreground}">\n                {{ result.value || 0 }}\n            </div>\n            <div ng-if="!result.error" class="h3 secondary-text font-weight-500" ng-style="{color: options.data.foregroundTitle}">\n                {{ options.data.title || \'TOOLS.TITLE\' | translate }}\n            </div>\n            <div ng-if="result.error" class="padding-20">\n                <span>{{result.message}}</span>\n            </div>\n        </div>\n    </ms-widget-front>\n    \x3c!-- / Front --\x3e\n\n    \x3c!-- Back --\x3e\n    <ms-widget-back class="p-16 white-bg">\n        <div class="flip-to-front">\n            <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n            </md-button>\n        </div>\n\n        <div>\n            {{ options.data.description || \'TOOLS.DESCRIPTION\' | translate }}\n        </div>\n    </ms-widget-back>\n    \x3c!-- / Back --\x3e\n\n</ms-widget>\n\x3c!-- / WIDGET --\x3e'),e.put("app/core/directives/ms-dash-iframe/edit/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="TOOLS.EDIT_WIDGET">Edit Widget</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            \x3c!-- Title START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TITLE">Title</label>\n                <input type="text" name="title" ng-model="vm.options.data.title" required>\n                <div ng-messages="dashboarditemForm.title.$error" ng-show="dashboarditemForm.title.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            \x3c!-- Title END --\x3e\n\n            \x3c!-- Title START--\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.URL">Url</label>\n                <input type="url" name="url" ng-model="vm.options.data.url" required>\n                <div ng-messages="dashboarditemForm.url.$error" ng-show="dashboarditemForm.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.URL_REQUIRED">URL field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            \x3c!-- Title END --\x3e\n\n\n            \x3c!-- Description START --\x3e\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.options.data.description">\n            </md-input-container>\n            \x3c!-- Description END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.updateItem()" ng-disabled="dashboarditemForm.$pristine || dashboarditemForm.$invalid" class="send-button md-accent md-raised" aria-label="UPDATE" translate="TOOLS.UPDATE" translate-attr-aria-label="TOOLS.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/core/directives/ms-dash-iframe/ms-dash-iframe.html",'\x3c!-- WIDGET --\x3e\n<ms-widget flippable="true" layout="column" flex="100" layout-fill>\n\n    \x3c!-- Front --\x3e\n    <ms-widget-front>\n        <div class="ph-8 pv-16 h-55" layout="row">\n            <div layout="row" layout-align="start center" flex="80">\n                <md-menu>\n                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE">\n                        <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>\n                    </md-button>\n\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="editItem()" translate="TOOLS.EDIT_WIDGET">\n                                Edit Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="deleteItem({id: options.id})" translate="TOOLS.DELETE_WIDGET">\n                                Delete Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="flipWidget()" translate="TOOLS.FLIP_WIDGET">\n                                Flip Widget\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n            <div layout="row" layout-align="end center" flex="20">\n                <span class="h3 secondary-text font-weight-500 text-truncate padding-right-20">{{ options.data.title || \'TOOLS.TITLE\' | translate }}</span>\n            </div>\n        </div>\n\n        <div layout="row" layout-fill style="min-height: 1000px">\n            <iframe flex ng-src="{{getTrustSrc(options.data.url)}}" allowfullscreen frameborder="0"></iframe>\n        </div>\n    </ms-widget-front>\n    \x3c!-- / Front --\x3e\n\n    \x3c!-- Back --\x3e\n    <ms-widget-back class="p-16 white-bg">\n        <div class="flip-to-front">\n            <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n            </md-button>\n        </div>\n\n        <div>\n            {{ options.data.description || \'TOOLS.DESCRIPTION\' | translate }}\n        </div>\n    </ms-widget-back>\n    \x3c!-- / Back --\x3e\n\n</ms-widget>\n\x3c!-- / WIDGET --\x3e'),e.put("app/core/directives/ms-dash-table/edit/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="TOOLS.EDIT_WIDGET">Edit Widget</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <md-tabs md-dynamic-height md-border-bottom>\n                \x3c!-- Layout Tab START --\x3e\n                <md-tab label="{{\'TOOLS.TOOLS_LAYOUT\' | translate}}">\n\n                    \x3c!-- Title START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.TITLE">Title</label>\n                        <input type="text" name="title" ng-model="vm.options.data.title" required>\n                        <div ng-messages="dashboarditemForm.title.$error" ng-show="dashboarditemForm.title.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    \x3c!-- Title END --\x3e\n\n                    \x3c!-- Description START --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.DESCRIPTION">Description</label>\n                        <input type="text" name="description" ng-model="vm.options.data.description">\n                    </md-input-container>\n                    \x3c!-- Description END --\x3e\n\n                </md-tab>\n                \x3c!-- Layout Tab END --\x3e\n\n                \x3c!-- Query Tab START --\x3e\n                <md-tab label="{{\'TOOLS.TOOLS_QUERY\' | translate}}">\n\n                    \x3c!-- SELECT START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.SELECT">Select</label>\n                        <input type="text" name="select" ng-model="vm.options.data.query.fields" required>\n                    </md-input-container>\n                    \x3c!-- <md-chips placeholder="{{\'TOOLS.FIELDS\' | translate}}" ng-model="vm.options.data.query.fields" name="fields" md-max-chips="1" m d-enable-chip-edit="true"></md-chips> --\x3e\n                    \x3c!-- SELECT END --\x3e\n\n                    \x3c!-- FROM  START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.FROM">From</label>\n                        <input type="text" name="from" ng-model="vm.options.data.query.from" required>\n                    </md-input-container>\n                    \x3c!-- FROM END --\x3e\n\n                    \x3c!-- WHERE START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.WHERE">Where</label>\n                        <input type="text" name="where" ng-model="vm.options.data.query.where">\n                    </md-input-container>\n                    \x3c!-- WHERE END --\x3e\n\n                    \x3c!-- LIMIT START--\x3e\n                    <md-input-container class="md-block">\n                        <label translate="TOOLS.LIMIT">Limit</label>\n                        <input type="text" name="limit" ng-model="vm.options.data.query.limit">\n                    </md-input-container>\n                    \x3c!-- LIMIT END --\x3e\n\n                </md-tab>\n                \x3c!-- Query Tab END --\x3e\n            </md-tabs>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.updateItem()" ng-disabled="dashboarditemForm.$pristine || dashboarditemForm.$invalid" class="send-button md-accent md-raised" aria-label="UPDATE" translate="TOOLS.UPDATE" translate-attr-aria-label="TOOLS.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/core/directives/ms-dash-table/ms-dash-table.html",'\x3c!-- WIDGET --\x3e\n<ms-widget flippable="true" layout="column" flex="100" layout-fill>\n\n    \x3c!-- Front --\x3e\n    <ms-widget-front>\n        <div class="ph-8 pv-16 h-55" layout="row">\n            <div layout="row" layout-align="start center" flex="80">\n                <md-menu>\n                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE">\n                        <md-icon md-font-icon="icon-dots-vertical" ng-click="$mdOpenMenu($event)"></md-icon>\n                    </md-button>\n\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="editItem()" translate="TOOLS.EDIT_WIDGET">\n                                Edit Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="deleteItem({id: options.id})" translate="TOOLS.DELETE_WIDGET">\n                                Delete Widget\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="flipWidget()" translate="TOOLS.FLIP_WIDGET">\n                                Flip Widget\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n            <div layout="row" layout-align="end center" flex="20" ng-switch="result.error">\n                <span class="h3 secondary-text font-weight-500 text-truncate padding-right-20">{{ options.data.title || \'TOOLS.TITLE\' | translate }}</span>\n                <md-icon ng-switch-default md-font-icon="icon-timer-sand"></md-icon>\n                <md-icon ng-switch-when="false" class="green-fg" md-font-icon="icon-check"></md-icon>\n                <md-icon ng-switch-when="true" class="red-fg" md-font-icon="icon-block-helper"></md-icon>\n            </div>\n        </div>\n\n        <div layout="row" ng-if="!result.error">\n            <table md-table>\n                <thead md-head>\n                    <tr md-row>\n                        <th md-column ng-repeat="field in result.fields"><span> {{ field }} </span></th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-repeat="row in result.rows">\n                        <td md-cell ng-repeat="(key, value) in row"> {{value}} </td>\n                    </tr>\n                </tbody>\n            </table>\n        </div>\n        <div layout="row" ng-if="result.error">\n            <span class="padding-20">{{result.message}}</span>\n        </div>\n    </ms-widget-front>\n    \x3c!-- / Front --\x3e\n\n    \x3c!-- Back --\x3e\n    <ms-widget-back class="p-16 white-bg">\n        <div class="flip-to-front">\n            <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n            </md-button>\n        </div>\n\n        <div>\n            {{ options.data.description || \'TOOLS.DESCRIPTION\' | translate }}\n            <md-tooltip>{{ message || \'TOOLS.TOOLS_VALID_QUERY\' | translate }}</md-tooltip>\n        </div>\n    </ms-widget-back>\n    \x3c!-- / Back --\x3e\n\n</ms-widget>\n\x3c!-- / WIDGET --\x3e'),e.put("app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html",'<div ng-cloak layout-gt-sm="row" layout="column">\n    <div flex-gt-sm="50" flex="45">\n        <md-input-container class="md-icon-float md-block margin-0">\n            <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n            <input ng-model="query" type="text" placeholder="Search...">\n        </md-input-container>\n        <md-content class="border h-300">\n            <md-list class="md-dense" layout-fill layout-align="center center">\n                <md-list-item class="md-3-line" ng-repeat="item in options.items | filter: query | orderBy: options.orderBy" ng-click="transfer(options.items, options.selectedItems, options.items.indexOf(item), false)">\n                    <div class="md-list-item-text" layout="column">\n                        <h3 ng-if="options.line1">{{ item[options.line1] || \'\' }}</h3>\n                        <h4 ng-if="options.line2">{{ item[options.line2] || \'\' }}</h4>\n                        <p ng-if="options.line3">{{ item[options.line3] || \'\' }}</p>\n                    </div>\n                    <md-icon md-font-icon="icon-arrow-right-bold" aria-label="swap"></md-icon>\n                    <md-divider></md-divider>\n                </md-list-item>\n            </md-list>\n        </md-content>\n        <div class="margin-10" layout="row">\n            <span class="h4" flex>{{options.labelAll || \'All Items\'}} ({{options.items.length}})</span>\n            <md-icon ng-show="options.showSelectAndDeselectAll" md-font-icon="icon-chevron-double-right" aria-label="swap" ng-click="transfer(options.items, options.selectedItems, -1, false)"></md-icon>\n        </div>\n    </div>\n\n    <div flex="10" layout="row" layout-align="center center">\n        <md-icon md-font-icon="icon-swap-horizontal" aria-label="swap"></md-icon>\n    </div>\n\n    <div flex-gt-sm="50" flex="45">\n        <md-input-container class="md-icon-float md-block margin-0">\n            <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n            <input ng-model="selectedQuery" type="text" placeholder="Search...">\n        </md-input-container>\n        <md-content class="border h-300">\n            <md-list class="md-dense" layout-fill layout-align="center center">\n                <md-list-item class="md-3-line" ng-repeat="item in options.selectedItems | filter: selectedQuery | orderBy: options.orderBy" ng-click="transfer(options.selectedItems, options.items, options.selectedItems.indexOf(item), true)">\n                    <md-icon md-font-icon="icon-arrow-left-bold" aria-label="swap"></md-icon>\n                    <div class="md-list-item-text" layout="column">\n                        <h3 ng-if="options.line1">{{ item[options.line1] || \'\' }}</h3>\n                        <h4 ng-if="options.line2">{{ item[options.line2] || \'\' }}</h4>\n                        <p ng-if="options.line3">{{ item[options.line3] || \'\' }}</p>\n                    </div>\n                    <md-divider></md-divider>\n                </md-list-item>\n            </md-list>\n        </md-content>\n        <div class="margin-10" layout="row">\n            <md-icon ng-show="options.showSelectAndDeselectAll" md-font-icon="icon-chevron-double-left" aria-label="swap" flex ng-click="transfer(options.selectedItems, options.items, -1, true)"></md-icon>\n            <span class="h4">{{options.labelSelected || \'Selected Items\'}} ({{options.selectedItems.length}})</span>\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-info-bar/ms-info-bar.html",'<div id="ms-info-bar" layout="row" layout-align="start center" flex>\n    <div id="ms-info-bar-message" ng-transclude flex></div>\n    <md-button id="ms-info-bar-close" class="md-icon-button" aria-label="Close" ng-click="removeInfoBar()">\n        <md-icon md-font-icon="icon-close s24"></md-icon>\n    </md-button>\n</div>'),e.put("app/core/directives/ms-material-color-picker/ms-material-color-picker.html",'<md-menu md-position-mode="target-right target">\n\n    <div ng-click="$mdOpenMenu($event)">\n        <ms-color-picker-button>\n            <md-button aria-label="Row Color" md-menu-origin ng-click="$mdOpenMenu($event)" ng-class="vm.selectedColor.class">\n\n                <span ng-show="vm.selectedColor.palette">\n                    {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n                </span>\n                <span ng-show="!vm.selectedColor.palette">\n                    Select Color\n                </span>\n            </md-button>\n        </ms-color-picker-button>\n    </div>\n\n    <md-menu-content class="ms-material-color-picker-menu-content" layout-column>\n\n        <header ng-class="vm.selectedColor.class || \'md-accent-bg\'" class="md-whiteframe-4dp" layout="row" layout-align="space-between center">\n            <md-button md-prevent-menu-close ng-click="vm.activateHueSelection(false,false)" class="md-icon-button" ng-class="{\'hidden\':!vm.selectedPalette}" aria-label="Palette">\n                <md-icon md-font-icon="icon-arrow-left" class="s20"></md-icon>\n            </md-button>\n\n            <span ng-if="vm.selectedColor.palette">\n                {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n            </span>\n\n            <span ng-if="!vm.selectedColor.palette">\n                Select Color\n            </span>\n\n            <md-button class="remove-color-button md-icon-button" ng-click="vm.removeColor()" aria-label="Remove Color">\n                <md-icon md-font-icon="icon-delete" class="s20"></md-icon>\n            </md-button>\n        </header>\n\n        <div class="colors" ms-scroll>\n            <div ng-show="!vm.selectedPalette" layout="row" layout-wrap>\n                <div class="color" ng-class="\'md-\'+palette+\'-500-bg\'" ng-repeat="(palette, hues) in vm.palettes" ng-click="vm.activateHueSelection(palette,hues)" layout="row" layout-align="start end" md-prevent-menu-close md-ink-ripple>\n                    <span class="label">\n                        {{palette}}\n                    </span>\n                </div>\n            </div>\n\n            <div ng-show="vm.selectedPalette" layout="row" layout-wrap>\n                <div class="color" ng-class="\'md-\'+vm.selectedPalette+\'-\'+hue+\'-bg\'" ng-repeat="(hue, values) in vm.selectedHues" ng-click="vm.selectColor(vm.selectedPalette,hue)" layout="row" layout-align="start end" md-ink-ripple>\n                    <span class="label">\n                        {{hue}}\n                    </span>\n                    <i ng-if="vm.selectedPalette == vm.selectedColor.palette && hue == vm.selectedColor.hue" class="s16 icon-check">\n                    </i>\n                </div>\n            </div>\n\n        </div>\n\n    </md-menu-content>\n</md-menu>'),e.put("app/core/directives/ms-navigation/templates/horizontal.html",'<div class="navigation-toggle" hide-gt-sm>\n    <md-button class="md-icon-button" ng-click="vm.toggleHorizontalMobileMenu()" aria-label="Toggle Mobile Navigation">\n        <md-icon md-font-icon="icon-menu"></md-icon>\n    </md-button>\n</div>\n\n<ul class="horizontal">\n    <li ng-repeat="node in vm.navigation" ms-navigation-horizontal-node="node" ng-class="{\'has-children\': vm.hasChildren}" ng-include="\'navigation-horizontal-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested horizontal navigation template --\x3e\n<script type="text/ng-template" id="navigation-horizontal-nested.html">\n\n    <div ms-navigation-horizontal-item layout="row" ng-if="!vm.isHidden()">\n\n        <div class="ms-navigation-horizontal-button" ng-if="!node.uisref && node.title" ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}">\n            <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n            <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n            <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n            <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n        </div>\n\n        <a class="ms-navigation-horizontal-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg" ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}" ng-if="node.uisref && node.title">\n            <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n            <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n            <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n            <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n        </a>\n\n    </div>\n\n    <ul ng-if="vm.hasChildren && !vm.isHidden()">\n        <li ng-repeat="node in node.children" ms-navigation-horizontal-node="node" ng-class="{\'has-children\': vm.hasChildren}" ng-include="\'navigation-horizontal-nested.html\'"></li>\n    </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("app/core/directives/ms-navigation/templates/vertical.html",'<ul>\n    <li ng-repeat="node in vm.navigation" ms-navigation-node="node" ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}" ng-include="\'navigation-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested navigation template --\x3e\n<script type="text/ng-template" id="navigation-nested.html">\n\n    <div ms-navigation-item layout="row" ng-if="!vm.isHidden()">\n\n        <div class="ms-navigation-button" ng-if="!node.uisref && node.title">\n            <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n            <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n            <span class="badge white-fg" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n            <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n        </div>\n\n        <a class="ms-navigation-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg" ng-if="node.uisref && node.title">\n            <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n            <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n            <span class="badge white-fg" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n            <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n        </a>\n\n    </div>\n\n    <ul ng-if="vm.hasChildren && !vm.isHidden()">\n        <li ng-repeat="node in node.children" ms-navigation-node="node" ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}" ng-include="\'navigation-nested.html\'"></li>\n    </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("app/core/directives/ms-phonebar/ms-phonebar.html",'<div class="phonebar-container" layout="row" layout-align="space-between center" flex ng-class="{\'mobile-bar-active\': MsPhonebar.mobileBarActive}">\n\n    <div class="flex-noshrink" layout="row" layout-align="start center" flex>\n        <div class="phonebar hide show-gt-xs" layout="row" layout-align="start center">\n            <div layout="row" layout-align="center">\n                <md-input-container md-no-float>\n                    <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" required placeholder="Insert Number">\n                </md-input-container>\n            </div>\n            <div layout="row" layout-align="center center">\n                <md-button class="md-icon-button">\n                    <md-icon md-font-icon="icon-phone" class="icon s24"></md-icon>\n                    <md-tooltip md-direction="bottom">CALL</md-tooltip>\n                </md-button>\n            </div>\n        </div>\n    </div>\n\n    <md-button class="md-icon-button toggle-mobile-menu hide-gt-xs" aria-label="Add shortcut" ng-click="MsPhonebar.toggleMobileBar()">\n        <md-icon md-menu-origin md-font-icon="icon-phone" class="icon s24" ng-hide="MsPhonebar.mobileBarActive"></md-icon>\n        <md-icon md-menu-origin md-font-icon="icon-close" class="icon s24" ng-hide="!MsPhonebar.mobileBarActive"></md-icon>\n    </md-button>\n</div>'),e.put("app/core/directives/ms-search-bar/ms-search-bar.html",'<div flex layout="row" layout-align="start center">\n    <label for="ms-search-bar-input">\n        <md-button class="ms-search-bar-expander md-icon-button" aria-label="Expand Search Bar"\n                   ng-click="MsSearchBar.expand()"\n                   ng-if="!MsSearchBar.resultsLoading || MsSearchBar.collapsed">\n            <md-icon md-font-icon="icon-magnify" class="icon s24"></md-icon>\n        </md-button>\n        <div class="ms-search-bar-loader" layout="row" layout-align="center center"\n             ng-if="MsSearchBar.resultsLoading && !MsSearchBar.collapsed">\n            <md-progress-circular class="md-accent" md-diameter="32" md-mode="indeterminate"></md-progress-circular>\n        </div>\n    </label>\n    <input id="ms-search-bar-input" type="text" placeholder="Search" flex ng-model="MsSearchBar.query" ng-model-options="MsSearchBar.queryOptions" ng-blur="MsSearchBar.blurCollapse()" ng-keydown="MsSearchBar.handleKeydown($event)">\n    <md-button class="ms-search-bar-collapser md-icon-button" ng-click="MsSearchBar.collapse()" aria-label="Collapse Search Bar">\n        <md-icon md-font-icon="icon-close" class="icon s24"></md-icon>\n    </md-button>\n\n    <div class="ms-search-bar-results" ng-if="MsSearchBar.results" ms-scroll>\n        <div class="no-results" ng-if="MsSearchBar.results.length === 0">No Results!</div>\n\n        <div class="result" ng-repeat="result in MsSearchBar.results" ng-click="MsSearchBar.handleResultClick(result)" ng-mouseenter="MsSearchBar.handleMouseenter($index)" ng-mousedown="MsSearchBar.absorbEvent($event)" ng-class="{\'selected\': $index == MsSearchBar.selectedResultIndex}"\n            md-ink-ripple>\n            <div layout="row" layout-align="start center">\n                <div class="icon-container" layout="row" layout-align="center center">\n                    <i ng-if="result.icon" class="icon {{result.icon}}"></i>\n                    <div ng-if="!result.icon" class="square md-accent-bg"></div>\n                </div>\n                <div>\n                    <div class="title">{{result.title}}</div>\n                    <div class="description" ng-if="result.description">{{result.description}}</div>\n                </div>\n            </div>\n        </div>\n    </div>\n</div>'),e.put("app/core/directives/ms-shortcuts/ms-shortcuts.html",'<div class="shortcuts-container" layout="row" layout-align="space-between center" flex ng-class="{\'mobile-bar-active\': MsShortcuts.mobileBarActive}">\n\n    <div class="flex-noshrink" layout="row" layout-align="start center" flex>\n        <div class="shortcuts hide show-gt-xs" layout="row" layout-align="start center" ms-scroll ng-if="MsShortcuts.shortcuts.length > 0" ng-sortable="MsShortcuts.sortableOptions">\n            <div ng-repeat="shortcut in MsShortcuts.shortcuts" layout="row" layout-align="center center">\n                <md-button class="md-icon-button shortcut" aria-label="{{shortcut.title}}" ui-sref="{{shortcut.uisref}}">\n                    <md-icon ng-if="shortcut.icon" md-font-icon="{{shortcut.icon}}" class="icon s24"></md-icon>\n                    <div ng-if="!shortcut.icon" class="first-letter">{{shortcut.title.charAt(0)}}</div>\n                    <md-tooltip md-direction="bottom">{{shortcut.title}}</md-tooltip>\n                </md-button>\n            </div>\n        </div>\n\n        <md-menu md-offset="8 56" class="shortcut-menu hide show-gt-xs">\n            <md-button class="md-icon-button add-shortcut-button" aria-label="Add shortcut" ng-click="$mdOpenMenu($event)">\n                <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24"></md-icon>\n                <md-tooltip md-direction="bottom">Click to add/remove shortcut</md-tooltip>\n            </md-button>\n\n            <md-menu-content>\n                <div id="ms-shortcut-add-menu">\n                    <div class="shortcut-search" layout="row" layout-align="start center">\n                        <div class="search-icon" layout="row" layout-align="center center" ng-if="!MsShortcuts.resultsLoading">\n                            <md-icon md-menu-align-target md-font-icon="icon-magnify" class="icon s24"></md-icon>\n                        </div>\n                        <div class="shortcut-loader" layout="row" layout-align="center center" ng-if="MsShortcuts.resultsLoading">\n                            <md-progress-circular class="md-accent" md-diameter="20" md-mode="indeterminate">\n                            </md-progress-circular>\n                        </div>\n\n                        <input type="text" placeholder="Search" flex ng-model="MsShortcuts.query" ng-model-options="MsShortcuts.queryOptions" ng-keydown="MsShortcuts.handleKeydown($event)">\n                    </div>\n\n                    <div class="results" ng-if="MsShortcuts.results" ms-scroll>\n                        <div class="no-results" ng-if="MsShortcuts.results.length === 0">No Results!</div>\n\n                        <div class="result" ng-repeat="result in MsShortcuts.results" ng-click="MsShortcuts.handleResultClick(result)" ng-mouseenter="MsShortcuts.handleMouseenter($index)" ng-mousedown="MsShortcuts.absorbEvent($event)" ng-class="{\'selected\': $index == MsShortcuts.selectedResultIndex}"\n                            md-prevent-menu-close="md-prevent-menu-close" md-ink-ripple>\n                            <div layout="row" layout-align="start space-between">\n                                <div layout="row" layout-align="start center" flex>\n                                    <div class="icon icon-container" layout="row" layout-align="center center">\n                                        <i ng-if="result.icon" class="{{result.icon}}"></i>\n                                        <div ng-if="!result.icon" class="square md-accent-bg"></div>\n                                    </div>\n                                    <div>\n                                        <div class="title">{{result.title}}</div>\n                                    </div>\n                                </div>\n                                <md-icon md-font-icon="icon-pin" class="icon s18" ng-class="{\'fade-text\': !result.hasShortcut}"></md-icon>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n            </md-menu-content>\n        </md-menu>\n    </div>\n\n    <md-button class="md-icon-button toggle-mobile-menu hide-gt-xs" aria-label="Add shortcut" ng-click="MsShortcuts.toggleMobileBar()">\n        <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24" ng-hide="MsShortcuts.mobileBarActive"></md-icon>\n        <md-icon md-menu-origin md-font-icon="icon-close" class="icon s24" ng-hide="!MsShortcuts.mobileBarActive"></md-icon>\n    </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/horizontal/horizontal.html",'<div class="ms-stepper-horizontal">\n    <div class="ms-stepper-navigation-wrapper">\n        <div class="ms-stepper-navigation" layout="row" layout-align="center center">\n            <md-button class="ms-stepper-navigation-item" ng-class="{\'current\': MsStepper.isStepCurrent(step.stepNumber), \'valid\': MsStepper.isStepValid(step.stepNumber), \'disabled\': MsStepper.isStepDisabled(step.stepNumber), \'optional\': MsStepper.isStepOptional(step.stepNumber)}"\n                ng-click="MsStepper.gotoStep(step.stepNumber)" ng-disabled="MsStepper.isStepDisabled(step.stepNumber)" ng-repeat="step in MsStepper.steps | filter:MsStepper.filterHiddenStep" layout="row" layout-align="start center">\n\n                <div class="step md-accent-bg" layout="row" layout-align="center center">\n                    <span ng-if="!MsStepper.isStepValid(step.stepNumber) || MsStepper.isStepOptional(step.stepNumber)">\n                    {{$index + 1}}\n                </span>\n                    <span ng-if="MsStepper.isStepValid(step.stepNumber) && !MsStepper.isStepOptional(step.stepNumber)">\n                    <i class="icon icon-check s18"></i>\n                </span>\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="title" translate="{{step.stepTitleTranslate}}">{{step.stepTitle}}</div>\n                    <div class="subtitle" ng-if="MsStepper.isStepOptional(step.stepNumber)">Optional</div>\n                </div>\n            </md-button>\n        </div>\n    </div>\n\n    <div class="ms-stepper-steps" ng-transclude></div>\n\n    <div class="ms-stepper-controls" layout="row" layout-align="center center">\n        <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n            Back\n        </md-button>\n\n        <div class="ms-stepper-dots">\n            <span ng-repeat="step in MsStepper.steps" ng-hide="MsStepper.isStepHidden(step.stepNumber)" ng-class="{\'selected md-accent-bg\':MsStepper.currentStepNumber === $index + 1}">\n            </span>\n        </div>\n\n        <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n            Next\n        </md-button>\n\n        <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n            Submit\n        </md-button>\n    </div>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html","<md-button class=\"ms-stepper-navigation-item\" ng-class=\"{'current': MsStepper.isStepCurrent(stepInfo.stepNumber), 'valid': MsStepper.isStepValid(stepInfo.stepNumber), 'disabled': MsStepper.isStepDisabled(stepInfo.stepNumber), 'optional': MsStepper.isStepOptional(stepInfo.stepNumber)}\"\n"+'    ng-click="MsStepper.gotoStep(stepInfo.stepNumber)" ng-disabled="MsStepper.isStepDisabled(stepInfo.stepNumber)" ng-hide="MsStepper.isStepHidden(stepInfo.stepNumber)" aria-label="Stepper navigation button" layout="row" layout-align="start center">\n\n    <div class="step" layout="row" layout-align="center center">\n        <span ng-if="!MsStepper.isStepValid(stepInfo.stepNumber) || MsStepper.isStepOptional(stepInfo.stepNumber)">\n            <i class="icon icon-checkbox-blank-circle-outline s18 md-accent-fg"></i>\n        </span>\n        <span ng-if="MsStepper.isStepValid(stepInfo.stepNumber) && !MsStepper.isStepOptional(stepInfo.stepNumber)">\n            <i class="icon icon-check-circle s18 md-accent-fg"></i>\n        </span>\n    </div>\n\n    <div layout="column" layout-align="start start">\n        <div class="title" ng-if="stepInfo.stepTitleTranslate">{{stepInfo.stepTitleTranslate | translate }}</div>\n        <div class="title" ng-if="!stepInfo.stepTitleTranslate">{{stepInfo.stepTitle}}</div>\n        <div class="subtitle" ng-if="MsStepper.isStepOptional(stepInfo.stepNumber)">Optional</div>\n    </div>\n</md-button>\n\n<div class="ms-stepper-step-content" ng-transclude></div>\n\n<div class="ms-stepper-controls" layout="row" layout-align="start center" ng-show="MsStepper.isStepCurrent(stepInfo.stepNumber)">\n    <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n        Back\n    </md-button>\n\n    <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n        Next\n    </md-button>\n\n    <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n        Submit\n    </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/vertical.html",'<div class="ms-stepper-vertical">\n    <div class="ms-stepper-vertical-line"></div>\n    <div class="ms-stepper-steps" ng-transclude></div>\n</div>'),e.put("app/core/directives/ms-timezone/ms-timezone.html",'<md-select ng-model="ngModel">\n    <md-option ng-value="null">NONE</md-option>\n    <md-option ng-repeat="(key, value) in timezone" value="{{key}}">{{value.name}} ({{value.offsetStr}})</md-option>\n</md-select>'),e.put("app/core/layouts/content-only.html",'<div id="layout-content-only" class="template-layout" layout="column" flex>\n    <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n</div>'),e.put("app/core/layouts/content-with-toolbar.html",'<div id="layout-content-with-toolbar" class="template-layout" layout="column" flex>\n    <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n    <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n\n    <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n</div>'),e.put("app/core/layouts/horizontal-navigation.html",'<div id="layout-horizontal-navigation" class="template-layout" layout="column" flex>\n\n    <div id="toolbar-navigation-container" class="md-whiteframe-1dp" layout="column" layout-align="space-between start">\n        <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n        <div id="horizontal-navigation" ui-view="navigation" layout="row" layout-align="start end" flex></div>\n    </div>\n\n    <div id="content-container" flex layout="column">\n        <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n    </div>\n\n    <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",'<div id="layout-vertical-navigation-fullwidth-toolbar-2" class="template-layout" layout="column" flex>\n\n    <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n    <div id="main-container" layout="row" flex>\n        <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n        <div id="content-container" flex layout="column">\n            <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n        </div>\n\n        <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n    </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar.html",'<div id="layout-vertical-navigation-fullwidth-toolbar" class="template-layout" layout="column" flex>\n\n    <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n    <div id="main-container" layout="row" flex>\n        <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n        <div id="content-container" flex layout="column">\n            <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n        </div>\n\n        <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n    </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation.html",'<div id="layout-vertical-navigation" class="template-layout" layout="row" flex>\n\n    <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation" ng-if="!vm.isAgent()"></md-sidenav>\n\n    <div id="content-container" flex layout="column">\n        <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n\n        <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n    </div>\n\n    <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>'),e.put("app/core/theme-options/theme-options.html",'<div class="ms-theme-options-button md-primary-bg" ng-click="toggleOptionsSidenav()">\n    <md-icon md-font-icon="icon-cog" class="white-text"></md-icon>\n</div>\n\n<md-sidenav md-component-id="motion-theme-options" class="md-sidenav-right">\n\n    <div class="ms-theme-options-list" layout="column">\n        <div class="theme-option layout-options">\n            <div class="option-title">Layout Style:</div>\n            <md-radio-group layout="row" layout-align="start start" layout-wrap ng-model="vm.layoutStyle" ng-change="vm.updateLayoutStyle()">\n                <md-radio-button ng-repeat="layoutStyle in vm.layoutStyles" ng-value="layoutStyle.value">\n                    <div layout="column" layout-align="center center">\n                        <img ng-src="{{layoutStyle.figure}}">\n                        <span class="text-center font-size-12 mt-8">{{layoutStyle.label}}</span>\n                    </div>\n                </md-radio-button>\n            </md-radio-group>\n        </div>\n\n        <md-divider></md-divider>\n\n        <div class="theme-option">\n            <div class="option-title">Layout Mode:</div>\n            <md-radio-group layout="row" layout-align="start center" ng-model="vm.layoutMode" ng-change="vm.updateLayoutMode()">\n                <md-radio-button ng-repeat="layoutMode in vm.layoutModes" ng-value="layoutMode.value">\n                    {{layoutMode.label}}\n                </md-radio-button>\n            </md-radio-group>\n        </div>\n\n        <md-divider></md-divider>\n\n        <div class="theme-option color-palettes">\n            <div class="option-title">Color Palette:</div>\n            <div layout="row" layout-align="start start" layout-wrap>\n                <md-button ng-repeat="(themeName, theme) in vm.themes.list" class="md-raised theme-button" layout="row" layout-align="center center" aria-label="{{themeName}}" ng-click="vm.setActiveTheme(themeName)" ng-style="{\'background-color\': theme.primary.color,\'border-color\': theme.accent.color,\'color\': theme.primary.contrast1}"\n                    ng-class="{active: vm.getActiveTheme().name === themeName}">\n                    <md-icon ng-style="{\'color\': theme.primary.contrast1}" md-font-icon="icon-palette" class="icon s32"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n</md-sidenav>'),e.put("app/errors/404/error-404.html",'<div id="error-404" layout="column" layout-align="center center">\n    <div class="content" layout="column" layout-align="center center">\n        <div class="error-code" translate="ERROR404.CODE">404</div>\n\n        <div class="message" translate="ERROR404.MESSAGE">Sorry but we couldn’t find the page you are looking for</div>\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300">Search for anything</ms-search-bar>\n\n        \x3c!-- <div class="search md-whiteframe-1dp" layout="row" layout-align="start center">\n            <md-icon md-font-icon="icon-magnify" class="icon s24"></md-icon>\n            <input ng-model="vm.search" type="text" placeholder="Search for anything" translate translate-attr-placeholder="ERROR404.SEARCH" flex>\n        </div> --\x3e\n\n        <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR404.GO_BACK">Go back to dashboard</a>\n    </div>\n</div>'),e.put("app/errors/500/error-500.html",'<div id="error-500" layout="column" layout-align="center center">\n    <div ng-if="!vm.send" class="content" layout="column" layout-align="center center">\n        <div class="error-code" translate="ERROR500.CODE">500</div>\n        <div class="message" translate="ERROR500.MESSAGE">Well, you broke the internet!</div>\n        <div class="sub-message" translate="ERROR500.SUBMESSAGE">Just kidding, looks like we have an internal issue, please try again in couple minutes\n        </div>\n        <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n        <md-button class="md-raised md-warn" ng-click="vm.sendReport()" translate="ERROR500.REPORT">Report this problem</md-button>\n    </div>\n    <pre ng-if="!vm.send">\n      {{vm.error}}\n    </pre>\n    <div ng-if="vm.send" class="content" layout="column" layout-align="center center">\n        <div class="error-code">#{{vm.code}}</div>\n        <div class="message" translate="ERROR500.JIRA_MESSAGE">Your request has been received and will be processed shortly.</div>\n        <div class="sub-message" translate="ERROR500.JIRA_SUBMESSAGE">Sorry for the inconvenience. If you have any questions or concerns, please do not hesitate to contact us.</div>\n        <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n    </div>\n</div>'),e.put("app/login/login.html",'<div id="login" class="flex-scrollable" layout="column" ms-scroll>\n    <div id="login-form-wrapper" layout="column" layout-align="center center">\n        <div id="login-form" class="md-whiteframe-8dp">\n\n            <img src="/api/settings/1/logo_login" alt="logo_login" />\n            \x3c!-- <img src="assets/images/logos/login.png" alt="motion_logo_login" /> --\x3e\n\n            <div class="md-subhead padding-top-45" translate="LOGIN.TITLE">Log in to your account</div>\n\n            <form name="loginForm" novalidate>\n                <md-input-container class="md-block" md-no-float>\n                    <input type="input" name="name" ng-model="vm.form.name" autofocus aria-label="username" translate translate-attr-placeholder="LOGIN.USERNAME" required>\n                    <div ng-messages="loginForm.name.$error" role="alert" multiple>\n                        <div ng-message="required">\n                            <span translate="LOGIN.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n\n                <md-input-container class="md-block" md-no-float>\n                    <input type="password" name="password" ng-model="vm.form.password" aria-label="password" translate translate-attr-placeholder="LOGIN.PASSWORD" required>\n                    <div ng-messages="loginForm.password.$error" role="alert" multiple>\n                        <div ng-message="required">\n                            <span translate="LOGIN.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n\n                \x3c!-- <div class="remember-forgot-password" layout="row" layout-xs="column" layout-align="space-between center">\n                    <md-checkbox class="remember-me" ng-model="data.cb1" aria-label="Remember Me">\n                        <span translate="LOGIN.REMEMBER_ME">Remember Me</span>\n                    </md-checkbox>\n                    <a ui-sref="app.pages_auth_forgot-password" class="forgot-password md-accent-color" translate="LOGIN.FORGOT_PASSWORD">Forgot Password?</a>\n                </div> --\x3e\n\n                <b layout="row" layout-align="center center" class="md-padding" ng-if="vm.message"><font color="red">{{vm.message}}</font></b>\n                <md-button type="submit" ng-click="vm.login()" class="md-raised md-accent submit-button" aria-label="LOG IN" aria-label="LOGIN" translate="LOGIN.LOG_IN" translate-attr-aria-label="LOGIN.LOG_IN">\n                    LOG IN\n                </md-button>\n            </form>\n\n            <div class="separator">\n                <span class="text" translate="LOGIN.OR">OR</span>\n            </div>\n\n            <md-button ng-click="vm.loginOauth(\'google\')" class="md-raised google">\n                <div layout="row" layout-align="center center">\n                    <span>\n                        <md-icon md-font-icon="icon-google-plus" class="s16"></md-icon>\n                        <span translate="LOGIN.WITH_GOOGLE">Log in with Google</span>\n                    </span>\n                </div>\n            </md-button>\n        </div>\n    </div>\n</div>'),e.put("app/main/apps/analytics/views/extractedReports/create/dialog.html",'<md-dialog class="extractedReport-dialog" aria-label="New ExtractedReport">\n    <form name="extractedReportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.extractedReport.name" required autofocus>\n                <div ng-messages="extractedReportForm.name.$error" ng-show="extractedReportForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newExtractedReport" ng-click="vm.saveExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid || extractedReportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE"\n                    translate-attr-aria-label="ANALYTICS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newExtractedReport" ng-click="vm.addNewExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_EXTRACTEDREPORT" translate-attr-aria-label="ANALYTICS.ADD_EXTRACTEDREPORT">\n                    ADD EXTRACTEDREPORT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newExtractedReport" ng-click="vm.deleteExtractedReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/extractedReports/extractedReports.html",'<div id="extractedReports" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="ANALYTICS.EXTRACTEDREPORTS">ExtractedReports</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedExtractedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedExtractedReports =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="ANALYTICS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-extractedReports-count">\n                    <span>{{vm.selectedExtractedReports.length}}</span>\n                <span translate="ANALYTICS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="EXTRACTEDREPORTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllExtractedReports()" translate="ANALYTICS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectExtractedReports()" translate="ANALYTICS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedExtractedReports" filename="extractedReports.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedExtractedReports($event)" aria-label="delete selected" translate translate-attr-label="EXTRACTEDREPORTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- EXTRACTEDREPORT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedExtractedReports" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getExtractedReports">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="type">{{ \'ANALYTICS.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="startDate">{{ \'ANALYTICS.DATE_RANGE_FROM\' | translate }}</th>\n                                <th md-column md-order-by="endDate">{{ \'ANALYTICS.DATE_RANGE_TO\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'ANALYTICS.GENERATED_AT\' | translate }}</th>\n                                <th md-column md-order-by="status">{{ \'ANALYTICS.STATUS\' | translate }}</th>\n                                <th md-column md-order-by="output">{{ \'ANALYTICS.OUTPUT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.extractedReports.rows.length">\n                                <td md-cell colspan="9">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="extractedReport" md-select-id="id" ng-repeat="extractedReport in vm.extractedReports.rows">\n                                <td md-cell ng-if="extractedReport.userpic"><img class="avatar" alt="{{extractedReport.name}}" ng-src="api/users/{{extractedReport.id}}/avatar" /></td>\n                                <td md-cell ng-if="!extractedReport.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{extractedReport.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="id ">{{extractedReport.id}}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="name ">{{extractedReport.name}}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="type ">{{extractedReport.type}}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="startDate ">{{extractedReport.startDate | date:\'medium\' }}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="endDate ">{{extractedReport.endDate | date:\'medium\' }}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="createdAt ">{{extractedReport.createdAt | date:\'medium\' }}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="status ">{{extractedReport.status}}</td>\n                                <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="output ">{{extractedReport.output}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(extractedReport, $event)" translate="ANALYTICS.EDIT_EXTRACTEDREPORT">\n                                                    Edit ExtractedReport\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.downloadfile(extractedReport, $event)" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n                                                    Download ExtractedReport\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(extractedReport, $event)" translate="ANALYTICS.DELETE_EXTRACTEDREPORT">\n                                                    Delete ExtractedReport\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.extractedReports.count}}" md-on-paginate="vm.getExtractedReports" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / EXTRACTEDREPORT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/metrics/create/dialog.html",'<md-dialog class="metric-dialog" aria-label="New Metric">\n    <form name="metricForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.metric.name" required autofocus>\n                <div ng-messages="metricForm.name.$error" ng-show="metricForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.TABLE">Table</label>\n                <md-select ng-model="vm.metric.table" required>\n                    <md-option ng-value="\'report_agent\'">Agent Report</md-option>\n                    <md-option ng-value="\'report_call\'">Call Report</md-option>\n                    <md-option ng-value="\'chat_messages\'">Chat Messages</md-option>\n                    <md-option ng-value="\'chat_rooms\'">Chat Rooms</md-option>\n                    <md-option ng-value="\'report_chat_session\'">Chat Session Report</md-option>\n                    <md-option ng-value="\'cm_contacts\'">Contacts</md-option>\n                    <md-option ng-value="\'report_square\'">CSquare Report</md-option>\n                    <md-option ng-value="\'report_square_details\'">CSquare Details Report</md-option>\n                    <md-option ng-value="\'fax_messages\'">Fax Messages</md-option>\n                    <md-option ng-value="\'fax_rooms\'">Fax Rooms</md-option>\n                    <md-option ng-value="\'report_fax_session\'">Fax Session Report</md-option>\n                    <md-option ng-value="\'report_integration\'">Integration Report</md-option>\n                    <md-option ng-value="\'mail_messages\'">Mail Messages</md-option>\n                    <md-option ng-value="\'mail_rooms\'">Mail Rooms</md-option>\n                    <md-option ng-value="\'report_mail_session\'">Mail Session Report</md-option>\n                    <md-option ng-value="\'report_member\'">Member Report</md-option>\n                    <md-option ng-value="\'openchannel_messages\'">Open Channel Messages</md-option>\n                    <md-option ng-value="\'openchannel_rooms\'">Open Channel Rooms</md-option>\n                    <md-option ng-value="\'report_openchannel_session\'">Open Channel Session Report</md-option>\n                    <md-option ng-value="\'report_queue\'">Queue Report</md-option>\n                    <md-option ng-value="\'sms_messages\'">Sms Messages</md-option>\n                    <md-option ng-value="\'sms_rooms\'">Sms Rooms</md-option>\n                    <md-option ng-value="\'report_sms_session\'">Sms Session Report</md-option>\n                    <md-option ng-value="\'users\'">Users</md-option>\n                    <md-option ng-value="\'voice_recordings\'">Voice Recordings</md-option>\n                    <md-option ng-value="\'cm_hopper\'">Dialer Hopper Processing</md-option>\n                    <md-option ng-value="\'cm_hopper_history\'">Dialer Hopper Logs</md-option>\n                    <md-option ng-value="\'cm_hopper_final\'">Dialer Hopper Final</md-option>\n                </md-select>\n                <div ng-messages="metricForm.table.$error" ng-show="metricForm.table.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.METRIC">Metric</label>\n                <input type="text" name="metric" ng-model="vm.metric.metric" required>\n                <div ng-messages="metricForm.metric.$error" ng-show="metricForm.metric.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.metric.description">\n                <div ng-messages="metricForm.description.$error" ng-show="metricForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMetric" ng-click="vm.saveMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid || metricForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMetric" ng-click="vm.addNewMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_METRIC" translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n                    ADD METRIC\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMetric" ng-click="vm.deleteMetric($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/metrics/metrics.html",'<div id="metrics" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="ANALYTICS.METRICS">Metrics</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedMetrics.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedMetrics =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="ANALYTICS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-metrics-count">\n                    <span>{{vm.selectedMetrics.length}}</span>\n                <span translate="ANALYTICS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="METRICS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllMetrics()" translate="ANALYTICS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectMetrics()" translate="ANALYTICS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedMetrics" filename="metrics.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedMetrics($event)" aria-label="delete selected" translate translate-attr-label="METRICS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- METRIC TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedMetrics" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMetrics">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="table">{{ \'ANALYTICS.TABLE\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.metrics.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="metric" md-select-id="id" ng-repeat="metric in vm.metrics.rows">\n                                <td md-cell ng-if="metric.userpic"><img class="avatar" alt="{{metric.name}}" ng-src="api/users/{{metric.id}}/avatar" /></td>\n                                <td md-cell ng-if="!metric.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{metric.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="id ">{{metric.id}}</td>\n                                <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="name ">{{metric.name}}</td>\n                                <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="table ">{{ vm.arraytable[metric.table].option }}</td>\n                                <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="description ">{{metric.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(metric, $event)" translate="ANALYTICS.EDIT_METRIC">\n                                                    Edit Metric\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(metric, $event)" translate="ANALYTICS.DELETE_METRIC">\n                                                    Delete Metric\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.metrics.count}}" md-on-paginate="vm.getMetrics" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / METRIC TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD METRIC BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-metric-button" ng-click="vm.createOrEditMetric($event)" aria-label="add metric" translate translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD METRIC BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/copy/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n    <form name="reportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="ANALYTICS.COPY_REPORT">Copy Report</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input name="name" ng-model="vm.report.name" required md-autofocus>\n                <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="md-block">\n                <label translate="ANALYTICS.SELECT_NODE">Select Node</label>\n                <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.copyReport()" class="send-button md-accent md-raised" ng-disabled="!vm.currentNode" aria-label="COPY" translate="ANALYTICS.COPY_REPORT" translate-attr-aria-label="ANALYTICS.COPY_REPORT">\n                    COPY REPORT\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/create/dialog.html",'<md-dialog class="report-dialog" aria-label="New Report">\n    <form name="reportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.report.name" required md-autofocus>\n                <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newReport">\n                <label translate="ANALYTICS.TABLE">Table</label>\n                <md-select ng-model="vm.report.table" required>\n                    <md-option value="report_agent">Agent Report</md-option>\n                    <md-option value="report_call">Call Report</md-option>\n                    <md-option value="chat_messages">Chat Messages</md-option>\n                    <md-option value="chat_rooms">Chat Rooms</md-option>\n                    <md-option value="report_chat_session">Chat Session Report</md-option>\n                    <md-option value="cm_contacts">Contacts</md-option>\n                    <md-option value="report_square">CSquare Report</md-option>\n                    <md-option value="report_square_details">CSquare Details Report</md-option>\n                    <md-option value="fax_messages">Fax Messages</md-option>\n                    <md-option value="fax_rooms">Fax Rooms</md-option>\n                    <md-option value="report_fax_session">Fax Session Report</md-option>\n                    <md-option value="report_integration">Integration Report</md-option>\n                    <md-option value="mail_messages">Mail Messages</md-option>\n                    <md-option value="mail_rooms">Mail Rooms</md-option>\n                    <md-option value="report_mail_session">Mail Session Report</md-option>\n                    <md-option value="report_member">Member Report</md-option>\n                    <md-option value="openchannel_messages">Open Channel Messages</md-option>\n                    <md-option value="openchannel_rooms">Open Channel Rooms</md-option>\n                    <md-option value="report_openchannel_session">Open Channel Session Report</md-option>\n                    <md-option value="report_queue">Queue Report</md-option>\n                    <md-option value="sms_messages">Sms Messages</md-option>\n                    <md-option value="sms_rooms">Sms Rooms</md-option>\n                    <md-option value="report_sms_session">Sms Session Report</md-option>\n                    <md-option value="users">Users</md-option>\n                    <md-option value="voice_recordings">Voice Recordings</md-option>\n                    <md-option value="cm_hopper">Dialer Hopper Processing</md-option>\n                    <md-option value="cm_hopper_history">Dialer Hopper Logs</md-option>\n                    <md-option value="cm_hopper_final">Dialer Hopper Final</md-option>\n                </md-select>\n                <div ng-messages="reportForm.table.$error" ng-show="reportForm.table.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.report.description">\n                <div ng-messages="reportForm.description.$error" ng-show="reportForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newReport" ng-click="vm.saveReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newReport" ng-click="vm.addNewReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORT" translate-attr-aria-label="ANALYTICS.ADD_REPORT">\n                    ADD REPORT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newReport" ng-click="vm.deleteReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/condition/group.html",'<md-card class="padding-horizontal-15 padding-top-15">\n    <div layout="row">\n        <md-input-container class="md-block" flex>\n            <label translate="ANALYTICS.OPERATOR">Operator</label>\n            <md-select ng-model="group.operator" required>\n                <md-option value="AND">AND</md-option>\n                <md-option value="OR">OR</md-option>\n            </md-select>\n            <div ng-messages="conditionsForm.operator.$error" ng-show="conditionsForm.operator.$touched" role="alert">\n                <div ng-message="required">\n                    <span translate="ANALYTICS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n                </div>\n            </div>\n        </md-input-container>\n        <md-input-container class="md-block">\n            <md-button class="md-raised md-accent" ng-click="vm_rc.addCondition(group.rules)">\n                <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.CONDITION\' | translate}}</md-button>\n        </md-input-container>\n        <md-input-container class="md-block">\n            <md-button class="md-raised md-accent" ng-click="vm_rc.addGroup(group.rules)">\n                <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}</md-button>\n        </md-input-container>\n        <div flex></div>\n        <md-input-container class="md-block" ng-if="parent">\n            <md-button class="md-raised md-warn" ng-click="vm_rc.deleteConfirm(parent, index, $event)">\n                <md-icon md-font-icon="icon-delete"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}</md-button>\n        </md-input-container>\n    </div>\n    <div layout="column" ng-repeat="rule in group.rules track by $index">\n        <div layout="row" ng-if="!rule.group">\n            <md-input-container class="md-block" flex>\n                <label translate="ANALYTICS.COLUMN">COLUMN</label>\n                <md-select name="field" ng-model="rule.field" required>\n                    <md-option ng-repeat="column in vm_rc.columns" ng-value="column">{{column}}</md-option>\n                </md-select>\n                <div ng-messages="conditionsForm.field.$error" ng-show="conditionsForm.field.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" flex>\n                <label translate="ANALYTICS.CONDITION">CONDITION</label>\n                <md-select name="condition" ng-model="rule.condition" required>\n                    <md-option ng-repeat="condition in vm_rc.conditions" ng-value="condition">{{condition}}</md-option>\n                </md-select>\n                <div ng-messages="conditionsForm.condition.$error" ng-show="conditionsForm.condition.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm_rc.isValueByCondition(rule.condition)" class="md-block" flex>\n                <label translate="ANALYTICS.VALUE">VALUE</label>\n                <input type="text" name="value" ng-model="rule.value" required md-autofocus>\n                <div ng-messages="conditionsForm.value.$error" ng-show="conditionsForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" flex>\n                <md-button class="md-fab md-mini md-warn" aria-label="Delete row" ng-click="vm_rc.deleteConfirm(group.rules, $index, $event)">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </md-input-container>\n        </div>\n        <div ng-if="rule.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="parent=group.rules;index=$index;group=rule.group"></div>\n    </div>\n</md-card>'),e.put("app/main/apps/analytics/views/reports/edit/field/dialog.html",'<md-dialog class="reportField-dialog" aria-label="New Report Field">\n    <form name="reportFieldForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{vm.title}}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.TYPE">Type</label>\n                <md-select name="type" ng-model="vm.reportField.type" ng-change="vm.reportField.field = undefined" required>\n                    <md-option value="column">Select a column</md-option>\n                    <md-option value="metric">Select an existing metric</md-option>\n                    <md-option value="custom">Write a custom metric</md-option>\n                </md-select>\n                <div ng-messages="reportForm.type.$error" ng-show="reportForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div ng-switch on="vm.reportField.type">\n                <md-input-container class="md-block" ng-switch-when="column">\n                    <label translate="ANALYTICS.COLUMN">Column Name</label>\n                    <md-select name="column" ng-model="vm.reportField.field" required>\n                        <md-option ng-repeat="column in vm.columns" ng-value="column">{{column}}</md-option>\n                    </md-select>\n                    <div ng-messages="reportForm.column.$error" ng-show="reportForm.column.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n                <md-input-container class="md-block" ng-switch-when="metric">\n                    <label translate="ANALYTICS.METRIC_NAME">Metric Name</label>\n                    <md-select name="metric" ng-model="vm.reportField.MetricId" required>\n                        <md-option ng-repeat="metric in vm.metrics" ng-value="metric.id">{{metric.name}}</md-option>\n                    </md-select>\n                    <div ng-messages="reportForm.metric.$error" ng-show="reportForm.metric.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n                <md-input-container class="md-block" ng-switch-when="custom">\n                    <label translate="ANALYTICS.CUSTOM_METRIC">Custom Metric</label>\n                    <input type="text" name="field" ng-model="vm.reportField.field" required md-autofocus>\n                    <div ng-messages="reportFieldForm.field.$error" ng-show="reportFieldForm.field.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="ANALYTICS.ERRORS.CUSTOM_METRIC_REQUIRED">Custom Metric field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.ALIAS">Alias</label>\n                <input type="text" name="alias" ng-model="vm.reportField.alias" ng-required="vm.reportField.type === \'custom\' || vm.reportField.type === \'metric\'">\n                <div ng-messages="reportFieldForm.alias.$error" ng-show="reportFieldForm.alias.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n                <label translate="ANALYTICS.FUNCTION">Function</label>\n                <md-select name="function" ng-model="vm.reportField.function">\n                    <md-option ng-value="null">No Function</md-option>\n                    <md-option ng-repeat="function in vm.sqlUtil.getFunctions" ng-value="function.value">{{vm.reportField.field ? function.option(vm.reportField.field) : function.value}}</md-option>\n                </md-select>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n                <label translate="ANALYTICS.FORMAT">Format</label>\n                <md-select name="format" ng-model="vm.reportField.format">\n                    <md-option ng-value="null">No Format</md-option>\n                    <md-option ng-repeat="format in vm.sqlUtil.getFormats" ng-value="format.value">{{vm.reportField.field ? format.option(vm.reportField.field) : format.value}}</md-option>\n                </md-select>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.GROUP_BY">Group By</label>\n                <md-select name="groupBy" ng-model="vm.reportField.groupBy">\n                    <md-option ng-repeat="gb in vm.sqlUtil.getGroupBy" ng-value="gb.value">{{vm.reportField.field ? gb.option(vm.reportField.field) : gb.value}}</md-option>\n                </md-select>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.ORDER_BY">Order By</label>\n                <md-select name="orderBy" ng-model="vm.reportField.orderBy">\n                    <md-option ng-value="null">No Order</md-option>\n                    <md-option ng-repeat="ob in vm.sqlUtil.getOrderBy" ng-value="ob.value">{{vm.reportField.field ? ob.option(vm.reportField.field) : ob.value}}</md-option>\n                </md-select>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newReportField" ng-click="vm.saveReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newReportField" ng-click="vm.addNewReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORTFIELD" translate-attr-aria-label="ANALYTICS.ADD_REPORTFIELD">\n                    ADD REPORT FIELD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newReportField" ng-click="vm.deleteReportField($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/view.html",'<div id="analytics-report" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-reports-button md-icon-button" aria-label="Go to reports" ng-click="vm.gotoReports()" translate translate-attr-aria-label="ANALYTICS.GO_TO_ANALYTICSQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="report-image" hide-xs>\n                    <img ng-src="assets/images/business/reports.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.report.id}} {{vm.report.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="ANALYTICS.CREATED_AT"></span> <span>{{vm.report.createdAt | date:\'medium\'}}</span>\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span>{{vm.report.description}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveReport()" ng-disabled="generalForm.$pristine && conditionsForm.$pristine" class="send-button md-accent md-raised" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="ANALYTICS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="ANALYTICS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="ANALYTICS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.report.name" required md-autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="ANALYTICS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.report.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="ANALYTICS.FIELDS">FIELDS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container fields md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ReportFieldsController as vm_rf" ng-init="vm_rf.init(vm.report)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_rf.selectedReportFields.length">\n                                <div class="md-toolbar-tools">\n                                    <div layout="row" layout-align="start center">\n                                        <div layout="column" layout-align="start start">\n                                            <div class="md-subhead" translate="ANALYTICS.FIELDS">\n                                                <span translate="ANALYTICS.FIELDS">FIELDS</span>\n                                            </div>\n                                            <div class="h4">\n                                                <span translate="ANALYTICS.TABLE">TABLE</span> <span class="text-bold">{{vm.report.table}}</span>\n                                            </div>\n                                        </div>\n                                    </div>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_rf.query.filter = query" on-collapse="vm_rf.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_rf.createOrEditReportField($event)" aria-label="add field" translate translate-attr-label="ANALYTICS.ADD_FIELD">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_rf.selectedReportFields.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_rf.selectedReportFields.length}} {{vm_rf.selectedReportFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_rf.deleteSelectedReportFields($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_rf.selectedReportFields" md-progress="vm_rf.promise">\n                                    <thead md-head md-order="vm_rf.query.sort" md-on-reorder="vm_rf.getReportFields">\n                                        <tr md-row>\n                                            <th md-column width="10px">\n                                                <md-icon md-font-icon="icon-drag-vertical"></md-icon>\n                                            </th>\n                                            <th md-column>Type</th>\n                                            <th md-column>Column or Metric</th>\n                                            <th md-column>Alias</th>\n                                            <th md-column>Function</th>\n                                            <th md-column>Format</th>\n                                            <th md-column>Group By</th>\n                                            <th md-column>Order By</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body ng-sortable="vm_rf.sortableTable">\n                                        <tr md-row md-select="reportField" md-select-id="id" ng-repeat="reportField in vm_rf.reportFields.rows">\n                                            <td md-cell class="handle">\n                                                <md-icon md-font-icon="icon-drag-vertical" class="s16">\n                                            </td>\n                                            <td md-cell>\n                                                <div ng-if="reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-shape-plus s16"></div>\n                                                <div ng-if="!reportField.MetricId && reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-pencil-box-outline s16"></div>\n                                                <div ng-if="!reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-view-column s16"></div>\n                                            </td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? vm_rf.getMetricName(reportField.MetricId) : reportField.field}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.alias}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? \'No Available\' : vm_rf.functions[reportField.function].option(reportField.field) || \'No\'}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? \'No Available\' : vm_rf.formats[reportField.format].option(reportField.field) || \'No\'}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{vm_rf.groupBy[reportField.groupBy].option(reportField.MetricId ? vm_rf.getMetricValue(reportField.MetricId) : reportField.field) || \'No\'}}</td>\n                                            <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{vm_rf.orderBy[reportField.orderBy].option(reportField.MetricId ? vm_rf.getMetricValue(reportField.MetricId) : reportField.field) || \'No\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_rf.createOrEditReportField($event, reportField)" translate="ANALYTICS.EDIT_REPORTFIELD">\n                                                                Edit Report\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_rf.deleteConfirm(reportField, $event)" translate="ANALYTICS.DELETE_REPORTFIELD">\n                                                                Delete Report\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="ANALYTICS.CONDITIONS">CONDITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container conditions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ReportConditionsController as vm_rc" ng-init="vm_rc.init(vm.report)">\n                            <div class="pb-16" layout="row" layout-align="start center">\n                                <div class="h2 secondary-text" translate="ANALYTICS.CONDITION">CONDITION</div>\n                            </div>\n                            <form name="conditionsForm" novalidate>\n                                <div ng-if="vm_rc.report.condition.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="group=vm_rc.report.condition.group"></div>\n                            </form>\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab md-on-select="vm.previewReport()">\n                <md-tab-label>\n                    <span translate="ANALYTICS.PREVIEW">PREVIEW</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n                            <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n                        </div>\n                        <dl ng-if="vm.error">\n                            <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n                            <dd>{{vm.error.sql}}</dd>\n                            <dt translate="ANALYTICS.MESSAGE">Message</dt>\n                            <dd>{{vm.error.msg}}</dd>\n                        </dl>\n                        <md-table-container ng-if="!vm.error">\n                            <table md-table>\n                                <thead md-head>\n                                    <tr md-row>\n                                        <th ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n                                    </tr>\n                                </thead>\n                                <tbody md-body>\n                                    <tr md-row ng-repeat="row in vm.rows">\n                                        <td md-cell ng-repeat="(key, value) in row">{{value}}</td>\n                                    </tr>\n                                    <tr md-row ng-if="!vm.rows.length">\n                                        <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                        </md-table-container>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab md-on-select="vm.queryReport()">\n                <md-tab-label>\n                    <span>Query</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n                            <div ng-if="!vm.error" class="h2 secondary-text">SQL</div>\n                        </div>\n                        <dl ng-if="vm.error">\n                            <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n                            <dd>{{vm.error.sql}}</dd>\n                            <dt translate="ANALYTICS.MESSAGE">Message</dt>\n                            <dd>{{vm.error.msg}}</dd>\n                        </dl>\n                        <div ng-if="!vm.error">\n                            {{vm.queryResult}}\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/analytics/views/reports/preview/dialog.html",'<md-dialog aria-label="Run Report">\n    <form name="reportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="ANALYTICS.PREVIEW_REPORT">Preview Report</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div class="md-block">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n                    <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n                </div>\n                <dl ng-if="vm.error">\n                    <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n                    <dd>{{vm.error.sql}}</dd>\n                    <dt translate="ANALYTICS.MESSAGE">Message</dt>\n                    <dd>{{vm.error.msg}}</dd>\n                </dl>\n                <md-table-container ng-if="!vm.error">\n                    <table md-table>\n                        <thead md-head>\n                            <tr md-row>\n                                <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-repeat="row in vm.rows">\n                                <td md-cell ng-repeat="(key, value) in row">{{value}}</td>\n                            </tr>\n                            <tr md-row ng-if="!vm.rows.length">\n                                <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div flex></div>\n            <md-button type="submit" ng-click="vm.closeDialog()" class="md-raised" aria-label="CLOSE" translate="ANALYTICS.CLOSE" translate-attr-aria-label="ANALYTICS.CLOSE">\n                CLOSE\n            </md-button>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/reports.html",'<div id="reports" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="ANALYTICS.REPORTS">Reports</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedReports =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="ANALYTICS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-reports-count">\n                    <span>{{vm.selectedReports.length}}</span>\n                <span translate="ANALYTICS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllReports()" translate="ANALYTICS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectReports()" translate="ANALYTICS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedReports" filename="reports.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button ng-if="vm.currentNode.custom" class="md-icon-button" ng-click="vm.deleteSelectedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div layout="column" flex="30">\n            <md-card class="padding-top-5 padding-horizontal-10 padding-bottom-0">\n                \x3c!-- SEARCH --\x3e\n                <div layout="row" layout-align="start center">\n                    <label for="searchFolder" class="m-0">\n                        <md-icon md-font-icon="icon-magnify"></md-icon>\n                    </label>\n                    <md-input-container md-no-float class="margin-horizontal-0 margin-bottom-0 margin-top-10" flex>\n                        <input id="searchFolder" placeholder="Search folder" type="text" ng-model="vm.search" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_FOLDER">\n                    </md-input-container>\n                </div>\n                \x3c!-- / SEARCH --\x3e\n            </md-card>\n            <md-card class="padding-10 scrollable" ms-scroll>\n                <div js-tree="vm.treeDefaultConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n            </md-card>\n            <md-card class="padding-10 scrollable" ms-scroll>\n                <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n            </md-card>\n        </div>\n        <md-card flex="70">\n            <md-toolbar class="md-table-toolbar md-default">\n                <div class="md-toolbar-tools">\n                    <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n                    <div flex></div>\n                    <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n                    <div flow-init flow-file-added="vm.importReport($file, $event, $flow)">\n                        <md-button ng-if="vm.currentNode.custom" class="md-icon-button" aria-label="import report" translate translate-attr-label="ANALYTICS.IMPORT_REPORT" flow-btn>\n                            <md-icon md-font-icon="icon-upload"></md-icon>\n                        </md-button>\n                    </div>\n                    <md-button ng-if="vm.currentNode.custom" class="md-icon-button" ng-click="vm.createOrEditReport($event)" aria-label="add report" translate translate-attr-label="ANALYTICS.ADD_REPORT">\n                        <md-icon md-font-icon="icon-plus"></md-icon>\n                    </md-button>\n                </div>\n            </md-toolbar>\n            <md-table-container>\n                <table md-table md-row-select multiple ng-model="vm.selectedReports" md-progress="vm.promise">\n                    <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n                        <tr md-row>\n                            <th md-column md-order-by="id" width="10px">{{ \'ANALYTICS.ID\' | translate }}</th>\n                            <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n                            <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n                            <th md-column md-order-by="createdAt">{{ \'ANALYTICS.CREATED_AT\' | translate }}</th>\n                            <th md-column width="10px"></th>\n                        </tr>\n                    </thead>\n                    <tbody md-body>\n                        <tr md-row ng-hide="vm.reports.rows.length">\n                            <td md-cell colspan="5">\n                                <div layout="row" layout-align="center center">\n                                    <span tranlsate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n                                </div>\n                            </td>\n                        </tr>\n                        <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n                            <td ng-click="vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n                            <td ng-click="vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n                            <td ng-click="vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n                            <td ng-click="vm.createOrEditReport($event, report)" md-cell class="createdAt">{{report.createdAt | date:\'medium\'}}</td>\n                            <td md-cell class="actions">\n                                <md-menu>\n                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                    </md-button>\n\n                                    <md-menu-content width="3">\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.copydialog(report, $event)" translate="ANALYTICS.COPY_REPORT">\n                                                Copy Report\n                                            </md-button>\n                                        </md-menu-item>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.previewdialog(report, $event)" translate="ANALYTICS.PREVIEW_REPORT">\n                                                Preview Report\n                                            </md-button>\n                                        </md-menu-item>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.rundialog(report, $event)" translate="ANALYTICS.RUN_REPORT">\n                                                Run Report\n                                            </md-button>\n                                        </md-menu-item>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.downloadfile(report, $event)" translate="ANALYTICS.DOWNLOAD_JSON_REPORT">\n                                                Download Json Report\n                                            </md-button>\n                                        </md-menu-item>\n                                        <md-menu-divider ng-if="vm.currentNode.custom"></md-menu-divider>\n                                        <md-menu-item ng-if="vm.currentNode.custom">\n                                            <md-button ng-click="vm.editstate(report, $event)" translate="ANALYTICS.EDIT_REPORT">\n                                                Edit Report\n                                            </md-button>\n                                        </md-menu-item>\n\n                                        <md-menu-item ng-if="vm.currentNode.custom">\n                                            <md-button ng-click="vm.deleteconfirm(report, $event)" translate="ANALYTICS.DELETE_REPORT">\n                                                Delete Report\n                                            </md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </td>\n                        </tr>\n                    </tbody>\n                </table>\n            </md-table-container>\n\n            <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.reports.count}}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n        </md-card>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/run/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n    <form name="reportForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="ANALYTICS.RUN_REPORT">Run Report</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.NAME">Name</label>\n                <input name="name" ng-model="vm.export.name" required md-autofocus>\n                <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="ANALYTICS.FORMAT">FORMAT</label>\n                <md-select name="format" ng-model="vm.export.output" required>\n                    <md-option value="csv">CSV</md-option>\n                    <md-option value="xls">Excel (XLS)</md-option>\n                    <md-option value="pdf">PDF</md-option>\n                </md-select>\n                <div ng-messages="reportForm.format.$error" ng-show="reportForm.format.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="ANALYTICS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div layout="row">\n                <div class="md-block" flex>\n                    <mdp-date-picker mdp-open-on-click required name="dateRangeFrom" mdp-placeholder="Date Range From" mdp-format="YYYY-MM-DD" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n                        <div ng-messages="reportForm.dateRangeFrom.$error" ng-show="reportForm.dateRangeFrom.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_REQUIRED">Date Range From field is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_INVALID">Date Range From field is invalid</span>\n                            </div>\n                            <div ng-message="maxDate">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MAX_INVALID">Date Range From Max field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-date-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-date-picker mdp-open-on-click required name="dateRangeTo" mdp-placeholder="Date Range To" mdp-format="YYYY-MM-DD" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n                        <div ng-messages="reportForm.dateRangeTo.$error" ng-show="reportForm.dateRangeTo.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_REQUIRED">Date Range From field is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_INVALID">Date Range From field is invalid</span>\n                            </div>\n                            <div ng-message="minDate">\n                                <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MIN_INVALID">Date Range From Min field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-date-picker>\n                </div>\n            </div>\n            <div layout="row">\n                <div class="md-block" flex>\n                    <mdp-time-picker required name="timeRangeFrom" mdp-placeholder="Time Range From" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n                        <div ng-messages="reportForm.timeRangeFrom.$error" ng-show="reportForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_REQUIRED">Time Range From field is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker required name="timeRangeTo" mdp-placeholder="Time Range To" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n                        <div ng-messages="reportForm.timeRangeTo.$error" ng-show="reportForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range From field is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.runReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid" aria-label="RUN" translate="ANALYTICS.RUN_REPORT" translate-attr-aria-label="ANALYTICS.RUN_REPORT">\n                    RUN REPORT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-click="vm.refreshDate()" aria-label="REFRESH" translate translate-attr-aria-label="ANALYTICS.REFRESH">\n                    <md-icon md-font-icon="icon-refresh"></md-icon>\n                    <md-tooltip><span translate="ANALYTICS.REFRESH">REFRESH</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/create/dialog.html",'<md-dialog class="odbc-dialog" aria-label="New Odbc">\n    <form name="odbcForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.odbc.name" required autofocus>\n                <div ng-messages="odbcForm.name.$error" ng-show="odbcForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.DSN">DSN</label>\n                <input type="text" name="dsn" ng-model="vm.odbc.dsn" required>\n                <div class="hint"><span translate="CALLYSQUARE.HELP.DSN"></span></div>\n                <div ng-messages="odbcForm.dsn.$error" ng-show="odbcForm.dsn.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.DSN_REQUIRED">DSN field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.odbc.description">\n                <div ng-messages="odbcForm.description.$error" ng-show="odbcForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOdbc" ng-click="vm.saveOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid || odbcForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOdbc" ng-click="vm.addNewOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_ODBC" translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n                    ADD ODBC\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOdbc" ng-click="vm.deleteOdbc($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/odbcs.html",'<div id="odbcs" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CALLYSQUARE.ODBC">ODBC</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedODBC.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedODBC =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CALLYSQUARE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-odbcs-count">\n                    <span>{{vm.selectedODBC.length}}</span>\n                <span translate="CALLYSQUARE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ODBC.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllODBC()" translate="CALLYSQUARE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectODBC()" translate="CALLYSQUARE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedODBC" filename="odbcs.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedODBC($event)" aria-label="delete selected" translate translate-attr-label="ODBC.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- ODBC TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedODBC" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getODBC">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="dsn">{{ \'CALLYSQUARE.DSN\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.odbcs.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="odbc" md-select-id="id" ng-repeat="odbc in vm.odbcs.rows">\n                                <td md-cell ng-if="odbc.userpic"><img class="avatar" alt="{{odbc.name}}" ng-src="api/users/{{odbc.id}}/avatar" /></td>\n                                <td md-cell ng-if="!odbc.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{odbc.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="id ">{{odbc.id}}</td>\n                                <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="name ">{{odbc.name}}</td>\n                                <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="dsn ">{{odbc.dsn}}</td>\n                                <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="description ">{{odbc.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(odbc, $event)" translate="CALLYSQUARE.EDIT_ODBC">\n                                                    Edit Odbc\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.testtestOdbc(odbc, $event)" translate="CALLYSQUARE.TEST_ODBC">\n                                                    Test Odbc\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(odbc, $event)" translate="CALLYSQUARE.DELETE_ODBC">\n                                                    Delete Odbc\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.odbcs.count}}" md-on-paginate="vm.getODBC" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / ODBC TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD ODBC BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-odbc-button" ng-click="vm.createOrEditOdbc($event)" aria-label="add odbc" translate translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD ODBC BUTTON --\x3e\n</div>'),e.put("app/main/apps/callysquare/views/projects/create/dialog.html",'<md-dialog class="project-dialog" aria-label="New Project">\n    <form name="projectForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{vm.title | translate}}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.NAME">Name</label>\n                <input name="name" ng-model="vm.project.name" required md-autofocus ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-disabled="!vm.newProject">\n                <div ng-messages="projectForm.name.$error" ng-show="projectForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n                <input name="description" ng-model="vm.project.description">\n                <div ng-messages="projectForm.description.$error" ng-show="projectForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.openFromEditor" class="md-block">\n                \x3c!-- Added to check if I\'m opening the dialog directly from the square editor --\x3e\n                <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="ADD" translate="CALLYSQUARE.ADD_PROJECT" translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n                    ADD PROJECT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="dialogForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.EDIT"></span> <span translate="CALLYSQUARE.{{vm.cellName | uppercase}}"></span></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <md-input-container class="md-block" ng-repeat="attribute in vm.attributes" ng-switch="attribute.name">\n                <label translate="CALLYSQUARE.{{attribute.name | uppercase}}">{{attribute.name  | ucfirst }}</label>\n\n                \x3c!--  START SELECT INPUT --\x3e\n                <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="answer|trunk_name|trunk_id|queue_id|file_id|variable_id|google_tts_language|ispeech_tts_language|ispeech_asr_language|hiddendigitspos|odbc_id|project_id|beep|account_id|interval_id|template_id|list_id"\n                    ng-required="attribute.required">\n                    <md-option ng-if="attribute.defaultValue" ng-value="\'\'"> - None - </md-option>\n                    <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]">{{v.option}}</md-option>\n                    <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n                </md-select>\n                \x3c!--  END SELECT INPUT --\x3e\n\n                \x3c!--  START SELECT INPUT --\x3e\n                <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="sip_id" ng-required="attribute.required">\n                    <md-optgroup label="{{\'CALLYSQUARE.AGENTS\' | translate}}">\n                        <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'agent\'">{{v.option}}</md-option>\n                    </md-optgroup>\n                    <md-optgroup label="{{\'CALLYSQUARE.TELEPHONES\' | translate}}">\n                        <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'telephone\'">{{v.option}}</md-option>\n                    </md-optgroup>\n                    <md-optgroup label="{{\'CALLYSQUARE.USERS\' | translate}}">\n                        <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'admin\' || v.group === \'user\'">{{v.option}}</md-option>\n                    </md-optgroup>\n                    <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n                </md-select>\n                \x3c!--  END SELECT INPUT --\x3e\n\n                \x3c!--  START NUMBER INPUT --\x3e\n                <div ng-switch-when="timeout">\n                    <div ng-switch="vm.cellName">\n                        <input ng-switch-when-separator="|" ng-switch-when="answer|ext_dial|dial|queue" type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                        <input ng-switch-when-separator="|" ng-switch-when="record|ispeechasr" type="number" step="any" name="{{attribute.name}}" min="-1" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                        <input ng-switch-default type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                    </div>\n                </div>\n                <input ng-switch-when-separator="|" ng-switch-when="speed" type="number" step="any" name="{{attribute.name}}" min="-10" max="-10" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                <input ng-switch-when-separator="|" ng-switch-when="maxdigit|mindigit|digit" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                <input ng-switch-when-separator="|" ng-switch-when="retry|response|hiddendigitsnum|priority|delay" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" string-to-number>\n                \x3c!--  END NUMBER INPUT --\x3e\n\n                \x3c!--  START TEXTAREA INPUT --\x3e\n                <textarea name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="query|sms_text|condition" ng-required="attribute.required"></textarea>\n                \x3c!--  END TEXTAREA INPUT --\x3e\n\n                \x3c!--  START TEXT INPUT --\x3e\n                <input ng-switch-default name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required">\n                \x3c!--  END TEXT INPUT--\x3e\n\n                <div class="hint" ng-switch="attribute.name">\n                    <span ng-switch-when-separator="|" ng-switch-when="mailbox" translate="CALLYSQUARE.HELP.{{attribute.name | uppercase}}"></span>\n                </div>\n                <div ng-messages="dialogForm[attribute.name].$error" ng-show="dialogForm[attribute.name].$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.FIELD_REQUIRED">The field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="dialogForm.$invalid || dialogForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/edit/edit.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="editForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.EDIT_XML"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label>XML</label>\n                <textarea name="preproduction" ng-model="vm.project.preproduction"></textarea>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="editForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/import/import.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="importForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.IMPORT_XML"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div id="xml-uploader" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-file-added="vm.fileAdded($file)" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                <div class="drop-text hint-text" layout="row" layout-align="center center">\n                    <span translate="CALLYSQUARE.DROP_TO_UPLOAD">Drop to upload</span>\n                </div>\n\n                <div class="upload-button" layout="column" layout-align="center center">\n                    <md-button class="md-accent md-raised" flow-btn>\n                        Upload\n                    </md-button>\n                    <span class="secondary-text mt-8" translate="CALLYSQUARE.DROP_TO_UPLOAD_MESSAGE">You can also drop files here to upload. Only XML - Max. 5MB</span>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" ng-disabled="importForm.$invalid" aria-label="CLOSE" translate="CALLYSQUARE.CLOSE" translate-attr-aria-label="CALLYSQUARE.CLOSE">\n                    CLOSE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/info/info.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="descriptionFrom" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.UPDATE_INFO"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n                <input name="description" ng-model="vm.project.description" md-autofocus>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.NOTES">Description</label>\n                <textarea name="notes" ng-model="vm.project.notes"></textarea>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="descriptionFrom.$invalid" aria-label="SAVE" translate="CALLYSQUARE.UPDATE_INFO" translate-attr-aria-label="CALLYSQUARE.UPDATE">\n                    UPDATE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/open/open.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="openForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.OPEN_PROJECT"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.PROJECT">Project</label>\n                <md-select name="id" ng-model="vm.id" required>\n                    <md-option value="{{p.id}}" ng-repeat="p in vm.projects">{{p.name}}</md-option>\n                </md-select>\n                <div ng-messages="openForm.id.$error" ng-show="openForm.id.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.PROJECT_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="openForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.OPEN_PROJECT" translate-attr-aria-label="CALLYSQUARE.OPEN">\n                    OPEN\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n    <form name="newForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title"><span translate="CALLYSQUARE.COPY_PROJECT"></span></span>\n                </span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CALLYSQUARE.NAME">Name</label>\n                <input name="name" ng-model="vm.project.name" required md-autofocus>\n                <div ng-messages="newForm.name.$error" ng-show="newForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="newForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.COPY_PROJECT" translate-attr-aria-label="CALLYSQUARE.COPY">\n                    COPY\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/view.html",'<div id="callysquare-project" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-projects-button md-icon-button" aria-label="Go to projects" ng-click="vm.gotoProjects()" translate translate-attr-aria-label="CALLYSQUARE.GO_TO_PROJECTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="project-image" hide-xs>\n                    <img ng-src="assets/images/business/cprojects.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.project.id}} {{vm.project.name}}\n                    </div>\n                    <div class="subtitle secondary-text text-truncate">\n                        <span ng-if="vm.project.description">{{vm.project.description}}  - </span><span translate="CALLYSQUARE.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.updateInfo($event)" class="md-fab md-yellow-700-bg md-icon-button" aria-label="edit">\n                <md-icon md-font-icon="icon-tooltip-edit"></md-icon>\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <md-content class="callysquare-content">\n\n        <div id="geEditor" class="geEditor"></div>\n\n    </md-content>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/projects/projects.html",'<div id="projects" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-vector-square" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CALLYSQUARE.PROJECTS">Projects</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedProjects.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedProjects =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CALLYSQUARE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-projects-count">\n                    <span>{{vm.selectedProjects.length}}</span>\n                <span translate="CALLYSQUARE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllProjects()" translate="CALLYSQUARE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectProjects()" translate="CALLYSQUARE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedProjects" filename="projects.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- PROJECT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedProjects" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getProjects">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n                                <th md-column md-order-by="notes">{{ \'CALLYSQUARE.NOTES\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.projects.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="project" md-select-id="id" ng-repeat="project in vm.projects.rows">\n                                <td md-cell ng-if="project.userpic"><img class="avatar" alt="{{project.name}}" ng-src="api/users/{{project.id}}/avatar" /></td>\n                                <td md-cell ng-if="!project.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{project.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="notes ">{{project.notes}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(project, ev)" translate="CALLYSQUARE.EDIT_PROJECT">\n                                                    Edit Project\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(project, ev)" translate="CALLYSQUARE.DELETE_PROJECT">\n                                                    Delete Project\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.projects.count}}" md-on-paginate="vm.getProjects" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / PROJECT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD PROJECT BUTTON --\x3e\n    <md-button class="md-fab md-accent md-icon-button" id="add-project-button" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD PROJECT BUTTON --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/squareRecordings/create/dialog.html",'<md-dialog class="squareRecording-dialog" aria-label="New SquareRecording">\n    <form name="squareRecordingForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSquareRecording" ng-click="vm.saveSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid || squareRecordingForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE"\n                    translate-attr-aria-label="CALLYSQUARE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSquareRecording" ng-click="vm.addNewSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_SQUARERECORDING" translate-attr-aria-label="CALLYSQUARE.ADD_SQUARERECORDING">\n                    ADD SQUARERECORDING\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSquareRecording" ng-click="vm.deleteSquareRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",'<div id="squareRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CALLYSQUARE.SQUARERECORDINGS">SquareRecordings</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSquareRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSquareRecordings =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CALLYSQUARE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-squareRecordings-count">\n                    <span>{{vm.selectedSquareRecordings.length}}</span>\n                <span translate="CALLYSQUARE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SQUARERECORDINGS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSquareRecordings()" translate="CALLYSQUARE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSquareRecordings()" translate="CALLYSQUARE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSquareRecordings" filename="squareRecordings.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSquareRecordings($event)" aria-label="delete selected" translate translate-attr-label="SQUARERECORDINGS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SQUARERECORDING TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSquareRecordings" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSquareRecordings">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="projectName">{{ \'CALLYSQUARE.PROJECT\' | translate }}</th>\n                                <th md-column md-order-by="uniqueid">{{ \'CALLYSQUARE.UNIQUEID\' | translate }}</th>\n                                <th md-column md-order-by="callerid">{{ \'CALLYSQUARE.PHONE\' | translate }}</th>\n                                <th md-column md-order-by="extension">{{ \'CALLYSQUARE.EXTEN\' | translate }}</th>\n                                <th md-column md-order-by="audio">{{ \'CALLYSQUARE.AUDIO\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'CALLYSQUARE.CREATED_AT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.squareRecordings.rows.length">\n                                <td md-cell colspan="7">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="squareRecording" md-select-id="id" ng-repeat="squareRecording in vm.squareRecordings.rows">\n                                <td md-cell ng-if="squareRecording.userpic"><img class="avatar" alt="{{squareRecording.name}}" ng-src="api/users/{{squareRecording.id}}/avatar" /></td>\n                                <td md-cell ng-if="!squareRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{squareRecording.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="projectName ">{{squareRecording.projectName}}</td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="uniqueid ">{{squareRecording.uniqueid}}</td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="callerid ">{{squareRecording.callerid}}</td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="extension ">{{squareRecording.extension}}</td>\n                                <td md-cell class="audio "><audio controls><source ng-src="{{\'api/square/recordings/\' + squareRecording.id + \'/download\'}}" type="audio/wav" preload="none"></source>Your browser does not support the audio element.</audio></td>\n                                <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.createdAt}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.downloadfile(squareRecording, $event)" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n                                                    Download SquareRecording\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(squareRecording, $event)" translate="CALLYSQUARE.DELETE_SQUARERECORDING">\n                                                    Delete SquareRecording\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.squareRecordings.count}}" md-on-paginate="vm.getSquareRecordings" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SQUARERECORDING TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/chatQueues.html",'<div id="chatQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CHAT.CHATQUEUES">ChatQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedChatQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedChatQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CHAT.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-chatQueues-count">\n                    <span>{{vm.selectedChatQueues.length}}</span>\n                <span translate="CHAT.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHATQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllChatQueues()" translate="CHAT.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectChatQueues()" translate="CHAT.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedChatQueues" filename="chatQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedChatQueues($event)" aria-label="delete selected" translate translate-attr-label="CHATQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CHATQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedChatQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'CHAT.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.chatQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="chatQueue" md-select-id="id" ng-repeat="chatQueue in vm.chatQueues.rows">\n                                <td md-cell ng-if="chatQueue.userpic"><img class="avatar" alt="{{chatQueue.name}}" ng-src="api/users/{{chatQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!chatQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditChatQueue($event, chatQueue)" md-cell class="id ">{{chatQueue.id}}</td>\n                                <td ng-click="vm.createOrEditChatQueue($event, chatQueue)" md-cell class="name ">{{chatQueue.name}}</td>\n                                <td ng-click="vm.createOrEditChatQueue($event, chatQueue)" md-cell class="strategy ">{{ vm.arraystrategy[chatQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(chatQueue, $event)" translate="CHAT.EDIT_CHATQUEUE">\n                                                    Edit ChatQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(chatQueue, $event)" translate="CHAT.DELETE_CHATQUEUE">\n                                                    Delete ChatQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.chatQueues.count}}" md-on-paginate="vm.getChatQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CHATQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CHATQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-chatQueue-button" ng-click="vm.createOrEditChatQueue($event)" aria-label="add chatQueue" translate translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CHATQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/create/dialog.html",'<md-dialog class="chatQueue-dialog" aria-label="New ChatQueue">\n    <form name="chatQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CHAT.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="chatQueueForm.name.$error" ng-show="chatQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.chatQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'roundrobun\'">Round Robin Memory</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="chatQueueForm.strategy.$error" ng-show="chatQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" required>\n                <div ng-messages="chatQueueForm.timeout.$error" ng-show="chatQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.chatQueue.description">\n                <div ng-messages="chatQueueForm.description.$error" ng-show="chatQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newChatQueue" ng-click="vm.saveChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid || chatQueueForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newChatQueue" ng-click="vm.addNewChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATQUEUE" translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n                    ADD CHATQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newChatQueue" ng-click="vm.deleteChatQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue">\n    <form name="chatQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="CHAT.TEAMADD_CHATQUEUE">Add Team in CHATQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="CHAT.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="chatQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/view.html",'<div id="chat-chatQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-chatQueues-button md-icon-button" aria-label="Go to chatQueues" ng-click="vm.gotoChatQueues()" translate translate-attr-aria-label="CHAT.GO_TO_CHATQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="chatQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/chatQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.chatQueue.id}} {{vm.chatQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.chatQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="CHAT.TEAMADD_CHATQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveChatQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.chatQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'roundrobun\'">Round Robin Memory</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.chatQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/chatWebsites.html",'<div id="chatWebsites" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CHAT.CHATWEBSITES">ChatWebsites</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedChatWebsites.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedChatWebsites =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CHAT.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-chatWebsites-count">\n                    <span>{{vm.selectedChatWebsites.length}}</span>\n                <span translate="CHAT.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHATWEBSITES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllChatWebsites()" translate="CHAT.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectChatWebsites()" translate="CHAT.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedChatWebsites" filename="chatWebsites.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedChatWebsites($event)" aria-label="delete selected" translate translate-attr-label="CHATWEBSITES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CHATWEBSITE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedChatWebsites" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatWebsites">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n                                <th md-column md-order-by="address">{{ \'CHAT.ADDRESS\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.chatWebsites.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="chatWebsite" md-select-id="id" ng-repeat="chatWebsite in vm.chatWebsites.rows">\n                                <td md-cell ng-if="chatWebsite.userpic"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="api/users/{{chatWebsite.id}}/avatar" /></td>\n                                <td md-cell ng-if="!chatWebsite.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="id ">{{chatWebsite.id}}</td>\n                                <td ng-click="vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="name ">{{chatWebsite.name}}</td>\n                                <td ng-click="vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="address ">{{chatWebsite.address}}</td>\n                                <td ng-click="vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="description ">{{chatWebsite.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(chatWebsite, $event)" translate="CHAT.EDIT_CHATWEBSITE">\n                                                    Edit ChatWebsite\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(chatWebsite, $event)" translate="CHAT.DELETE_CHATWEBSITE">\n                                                    Delete ChatWebsite\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.chatWebsites.count}}" md-on-paginate="vm.getChatWebsites" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CHATWEBSITE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CHATWEBSITE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-chatWebsite-button" ng-click="vm.createOrEditChatWebsite($event)" aria-label="add chatWebsite" translate translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CHATWEBSITE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/create/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n    <form name="chatWebsiteForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CHAT.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.chatWebsite.name" required autofocus>\n                <div ng-messages="chatWebsiteForm.name.$error" ng-show="chatWebsiteForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.ADDRESS">address</label>\n                <input type="url" name="address" ng-model="vm.chatWebsite.address" required>\n                <div ng-messages="chatWebsiteForm.address.$error" ng-show="chatWebsiteForm.address.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.ADDRESS_REQUIRED">address field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="CHAT.ERRORS.ADDRESS_MUST_VALID_URL">address must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n                <input type="url" name="remote" ng-model="vm.chatWebsite.remote" required>\n                <div class="hint"><span translate="CHAT.HELP.MOTIONADDRESS"></span></div>\n                <div ng-messages="chatWebsiteForm.remote.$error" ng-show="chatWebsiteForm.remote.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CHAT.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.chatWebsite.description">\n                <div ng-messages="chatWebsiteForm.description.$error" ng-show="chatWebsiteForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newChatWebsite" ng-click="vm.saveChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid || chatWebsiteForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newChatWebsite" ng-click="vm.addNewChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATWEBSITE" translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n                    ADD CHATWEBSITE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newChatWebsite" ng-click="vm.deleteChatWebsite($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/chatDispositions/dialog.html",'<md-dialog class="chatDisposition-dialog" aria-label="New ChatDisposition">\n    <form name="chatDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CHAT.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.chatDisposition.name" required autofocus>\n                <div ng-messages="chatDispositionForm.name.$error" ng-show="chatDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newChatDisposition" ng-click="vm.saveChatDisposition()" class="send-button md-accent md-raised" ng-disabled="chatDispositionForm.$invalid || chatDispositionForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newChatDisposition" ng-click="vm.addNewChatDisposition()" class="send-button md-accent md-raised" ng-disabled="chatDispositionForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATDISPOSITION" translate-attr-aria-label="CHAT.ADD_CHATDISPOSITION">\n                    ADD CHATDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newChatDisposition" ng-click="vm.deleteChatDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/view.html",'<div id="chat-chatWebsite" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-chatWebsites-button md-icon-button" aria-label="Go to chatWebsites" ng-click="vm.gotoChatWebsites()" translate translate-attr-aria-label="CHAT.GO_TO_CHATWEBSITES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="chatWebsite-image" hide-xs>\n                    <img ng-src="assets/images/business/chatWebsites.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.chatWebsite.id}} {{vm.chatWebsite.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatWebsite.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveChatWebsite()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (embeddingForm.$invalid) || (appearanceForm.$invalid) || (whitelabelForm.$invalid) || (logoForm.$invalid) || (labelsForm.$invalid) || (onlinestateForm.$invalid) || (offlinestateForm.$invalid) || (ratingstateForm.$invalid) || (enquiryForm.$invalid) || (onlineForm.$invalid) || (offlineForm.$invalid) || (proactiveForm.$invalid) || (chatDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"\n                translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.chatWebsite.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ADDRESS">address</label>\n                                <input type="url" name="address" ng-model="vm.chatWebsite.address" required>\n                                <div ng-messages="generalForm.address.$error" ng-show="generalForm.address.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ADDRESS_REQUIRED">address field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.ADDRESS_MUST_VALID_URL">address must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n                                <input type="url" name="remote" ng-model="vm.chatWebsite.remote" required>\n                                <div class="hint"><span translate="CHAT.HELP.MOTIONADDRESS"></span></div>\n                                <div ng-messages="generalForm.remote.$error" ng-show="generalForm.remote.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.LIST">List</label>\n                                <md-select ng-model="vm.chatWebsite.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.fidelity" aria-label="Fidelity"><span translate="CHAT.FIDELITY">Fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chatWebsite.fidelity" class="md-block">\n                                <label translate="CHAT.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.chatWebsite.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.chatWebsite.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.EMBEDDING">EMBEDDING</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container embedding md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.EMBEDDING">EMBEDDING</div>\n                        </div>\n                        <form name="embeddingForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.SNIPPET">SNIPPET</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container appearance md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.APPEARANCE">APPEARANCE</div>\n                        </div>\n                        <form name="appearanceForm" novalidate>\n                            <div flex md-color-picker ng-model="vm.chatWebsite.color" label="{{\'CHAT.MAINCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                                open-on-input="true"></div>\n                            <div flex md-color-picker ng-model="vm.chatWebsite.color_focus" label="{{\'CHAT.FOCUSCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                                open-on-input="true"></div>\n                            <div flex md-color-picker ng-model="vm.chatWebsite.color_button" label="{{\'CHAT.BUTTONCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false"\n                                open-on-input="true"></div>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.HEADERSHAPE">headershape</label>\n                                <md-select ng-model="vm.chatWebsite.header_shape">\n\n                                    <md-option ng-value="\'rounded\'"> {{ \'CHAT.ROUNDED\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'squared\'"> {{ \'CHAT.SQUARED\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="appearanceForm.header_shape.$error" ng-show="appearanceForm.header_shape.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.HEADERSHAPE_REQUIRED">headershape field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.animation" aria-label="Animation"><span translate="CHAT.ANIMATION">Animation</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.download_transcript" aria-label="downloadTranscript"><span translate="CHAT.DOWNLOADTRANSCRIPT">downloadTranscript</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container whitelabel md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.WHITELABEL">WHITELABEL</div>\n                        </div>\n                        <form name="whitelabelForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.defaultWhiteLabel" aria-label="default"><span translate="CHAT.DEFAULT">default</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chatWebsite.defaultWhiteLabel" class="md-block">\n                                <label translate="CHAT.WHITELABEL">whiteLabel</label>\n                                <textarea ng-model="vm.chatWebsite.whiteLabel" md-maxlength="150" max-rows="5" required></textarea>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container logo md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.LOGO">LOGO</div>\n                        </div>\n                        <form name="logoForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.defaultLogo" aria-label="default"><span translate="CHAT.DEFAULT">default</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container labels md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.LABELS">LABELS</div>\n                        </div>\n                        <form name="labelsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.NAME_TITLE">name_title</label>\n                                <input type="text" name="name_title" ng-model="vm.chatWebsite.name_title" autofocus>\n                                <div ng-messages="labelsForm.name_title.$error" ng-show="labelsForm.name_title.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.NAME_TITLE_REQUIRED">name_title field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.USERNAME_PLACEHOLDER">username_placeholder</label>\n                                <input type="text" name="username_placeholder" ng-model="vm.chatWebsite.username_placeholder">\n                                <div ng-messages="labelsForm.username_placeholder.$error" ng-show="labelsForm.username_placeholder.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.USERNAME_PLACEHOLDER_REQUIRED">username_placeholder field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.EMAIL_TITLE">email_title</label>\n                                <input type="text" name="email_title" ng-model="vm.chatWebsite.email_title">\n                                <div ng-messages="labelsForm.email_title.$error" ng-show="labelsForm.email_title.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.EMAIL_TITLE_REQUIRED">email_title field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.EMAIL_PLACEHOLDER">email_placeholder</label>\n                                <input type="text" name="email_placeholder" ng-model="vm.chatWebsite.email_placeholder">\n                                <div ng-messages="labelsForm.email_placeholder.$error" ng-show="labelsForm.email_placeholder.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.EMAIL_PLACEHOLDER_REQUIRED">email_placeholder field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container onlinestate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ONLINESTATE">ONLINESTATE</div>\n                        </div>\n                        <form name="onlinestateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.HEADER_ONLINE">header_online</label>\n                                <input type="text" name="header_online" ng-model="vm.chatWebsite.header_online" autofocus>\n                                <div ng-messages="onlinestateForm.header_online.$error" ng-show="onlinestateForm.header_online.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.HEADER_ONLINE_REQUIRED">header_online field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ONLINE_MESSAGE">online_message</label>\n                                <input type="text" name="online_message" ng-model="vm.chatWebsite.online_message">\n                                <div ng-messages="onlinestateForm.online_message.$error" ng-show="onlinestateForm.online_message.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ONLINE_MESSAGE_REQUIRED">online_message field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.START_CHAT_BUTTON">start_chat_button</label>\n                                <input type="text" name="start_chat_button" ng-model="vm.chatWebsite.start_chat_button">\n                                <div ng-messages="onlinestateForm.start_chat_button.$error" ng-show="onlinestateForm.start_chat_button.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.START_CHAT_BUTTON_REQUIRED">start_chat_button field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.AGENTS_BUSY">agents_busy</label>\n                                <input type="text" name="agents_busy" ng-model="vm.chatWebsite.agents_busy">\n                                <div ng-messages="onlinestateForm.agents_busy.$error" ng-show="onlinestateForm.agents_busy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.AGENTS_BUSY_REQUIRED">agents_busy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container offlinestate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.OFFLINESTATE">OFFLINESTATE</div>\n                        </div>\n                        <form name="offlinestateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.HEADER_OFFLINE">header_offline</label>\n                                <input type="text" name="header_offline" ng-model="vm.chatWebsite.header_offline" autofocus>\n                                <div ng-messages="offlinestateForm.header_offline.$error" ng-show="offlinestateForm.header_offline.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.HEADER_OFFLINE_REQUIRED">header_offline field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.OFFLINE_MESSAGE">offline_message</label>\n                                <input type="text" name="offline_message" ng-model="vm.chatWebsite.offline_message">\n                                <div ng-messages="offlinestateForm.offline_message.$error" ng-show="offlinestateForm.offline_message.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.OFFLINE_MESSAGE_REQUIRED">offline_message field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.MESSAGE_TITLE">message_title</label>\n                                <input type="text" name="message_title" ng-model="vm.chatWebsite.message_title">\n                                <div ng-messages="offlinestateForm.message_title.$error" ng-show="offlinestateForm.message_title.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.MESSAGE_TITLE_REQUIRED">message_title field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ENQUIRY_MESSAGE_PLACEHOLDER">enquiry_message_placeholder</label>\n                                <input type="text" name="enquiry_message_placeholder" ng-model="vm.chatWebsite.enquiry_message_placeholder">\n                                <div ng-messages="offlinestateForm.enquiry_message_placeholder.$error" ng-show="offlinestateForm.enquiry_message_placeholder.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ENQUIRY_MESSAGE_PLACEHOLDER_REQUIRED">enquiry_message_placeholder field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ENQUIRY_BUTTON">enquiry_button</label>\n                                <input type="text" name="enquiry_button" ng-model="vm.chatWebsite.enquiry_button">\n                                <div ng-messages="offlinestateForm.enquiry_button.$error" ng-show="offlinestateForm.enquiry_button.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ENQUIRY_BUTTON_REQUIRED">enquiry_button field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container ratingstate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.RATINGSTATE">RATINGSTATE</div>\n                        </div>\n                        <form name="ratingstateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.RATING_MESSAGE">rating_message</label>\n                                <input type="text" name="rating_message" ng-model="vm.chatWebsite.rating_message" autofocus>\n                                <div ng-messages="ratingstateForm.rating_message.$error" ng-show="ratingstateForm.rating_message.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.RATING_MESSAGE_REQUIRED">rating_message field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.RATING_SEND">rating_send</label>\n                                <input type="text" name="rating_send" ng-model="vm.chatWebsite.rating_send">\n                                <div ng-messages="ratingstateForm.rating_send.$error" ng-show="ratingstateForm.rating_send.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.RATING_SEND_REQUIRED">rating_send field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.RATING_SKIP">rating_skip</label>\n                                <input type="text" name="rating_skip" ng-model="vm.chatWebsite.rating_skip">\n                                <div ng-messages="ratingstateForm.rating_skip.$error" ng-show="ratingstateForm.rating_skip.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.RATING_SKIP_REQUIRED">rating_skip field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container enquiry md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ENQUIRY">ENQUIRY</div>\n                        </div>\n                        <form name="enquiryForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.enquiry_enable" aria-label="enquiry_enable"><span translate="CHAT.ENQUIRY_ENABLE">enquiry_enable</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chatWebsite.enquiry_forwarding" aria-label="enquiry_forwarding"><span translate="CHAT.ENQUIRY_FORWARDING">enquiry_forwarding</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chatWebsite.enquiry_forwarding" class="md-block">\n                                <label translate="CHAT.ENQUIRY_FORWARDING_ADDRESS">enquiry_forwarding_address</label>\n                                <input type="text" name="enquiry_forwarding_address" ng-model="vm.chatWebsite.enquiry_forwarding_address" required>\n                                <div ng-messages="enquiryForm.enquiry_forwarding_address.$error" ng-show="enquiryForm.enquiry_forwarding_address.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ENQUIRY_FORWARDING_ADDRESS_REQUIRED">enquiry_forwarding_address field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chatWebsite.enquiry_forwarding" class="md-block">\n                                <label translate="CHAT.OFFLINETEMPLATE">OfflineTemplate</label>\n                                <md-select ng-model="vm.chatWebsite.OfflineTemplateId" required>\n                                    <md-option ng-value="OfflineTemplateId.id" ng-repeat="OfflineTemplateId in vm.templates">{{ OfflineTemplateId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="enquiryForm.OfflineTemplateId.$error" ng-show="enquiryForm.OfflineTemplateId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.OFFLINETEMPLATE_REQUIRED">OfflineTemplate field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.FORMS">FORMS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container online md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ONLINE">ONLINE</div>\n                        </div>\n                        <form name="onlineForm" novalidate>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container offline md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.OFFLINE">OFFLINE</div>\n                        </div>\n                        <form name="offlineForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.PROACTIVEACTIONS">PROACTIVEACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container proactive md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.PROACTIVE">PROACTIVE</div>\n                        </div>\n                        <form name="proactiveForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container chatdispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ChatWebsiteChatDispositionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteChatDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CHAT.CHATDISPOSITIONS">ChatDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event)" aria-label="add chatDisposition" translate translate-attr-label="CHAT.ADD_CHATDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteChatDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedChatWebsiteChatDispositions.length}} {{vm_dc.selectedChatWebsiteChatDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatDispositions($event)" aria-label="delete selected" translate translate-attr-label="CHATWEBSITES.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteChatDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteChatDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'CHAT.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="chatDisposition" md-select-id="id" ng-repeat="chatDisposition in vm_dc.chatWebsiteChatDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event, chatDisposition)" md-cell>{{chatDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event, chatDisposition)" md-cell>{{chatDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event, chatDisposition)" md-cell>{{chatDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditChatWebsiteChatDisposition($event, chatDisposition)" translate="CHAT.EDIT_CHATDISPOSITION">\n                                                                Edit ChatDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(chatDisposition, $event)" translate="CHAT.DELETE_CHATDISPOSITION">\n                                                                Delete ChatDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.chatWebsiteChatDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="CHAT.NO_CHATDISPOSITION_AVAILABLE">No chatdisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteChatDispositions.count}}" md-on-paginate="vm_dc.getChatWebsiteChatDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.chatWebsite.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.chatWebsite.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.chatWebsite.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.chatWebsite.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="chatWebsite-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.chatWebsite.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CHAT.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.chatWebsite.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CHAT.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="CHAT.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CHAT.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chatWebsite-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CHAT.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/companies/companies.html",'<div id="companies" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CONTACTMANAGER.COMPANIES">Companies</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedCompanies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedCompanies =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CONTACTMANAGER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-companies-count">\n                    <span>{{vm.selectedCompanies.length}}</span>\n                <span translate="CONTACTMANAGER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="COMPANIES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllCompanies()" translate="CONTACTMANAGER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectCompanies()" translate="CONTACTMANAGER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedCompanies" filename="companies.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedCompanies($event)" aria-label="delete selected" translate translate-attr-label="COMPANIES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- COMPANY TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedCompanies" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCompanies">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.companies.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="company" md-select-id="id" ng-repeat="company in vm.companies.rows">\n                                <td md-cell ng-if="company.userpic"><img class="avatar" alt="{{company.name}}" ng-src="api/users/{{company.id}}/avatar" /></td>\n                                <td md-cell ng-if="!company.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{company.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditCompany($event, company)" md-cell class="id ">{{company.id}}</td>\n                                <td ng-click="vm.createOrEditCompany($event, company)" md-cell class="name ">{{company.name}}</td>\n                                <td ng-click="vm.createOrEditCompany($event, company)" md-cell class="description ">{{company.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(company, $event)" translate="CONTACTMANAGER.EDIT_COMPANY">\n                                                    Edit Company\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.gotocontactsgoto(company, $event)" translate="CONTACTMANAGER.GOTOCONTACTS_COMPANY">\n                                                    goToContacts Company\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(company, $event)" translate="CONTACTMANAGER.DELETE_COMPANY">\n                                                    Delete Company\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.companies.count}}" md-on-paginate="vm.getCompanies" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / COMPANY TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD COMPANY BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-company-button" ng-click="vm.createOrEditCompany($event)" aria-label="add company" translate translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD COMPANY BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/companies/create/dialog.html",'<md-dialog class="company-dialog" aria-label="New Company">\n    <form name="companyForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.company.name" required autofocus>\n                <div ng-messages="companyForm.name.$error" ng-show="companyForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.PHONE">Phone</label>\n                <input type="text" name="phone" ng-model="vm.company.phone">\n                <div ng-messages="companyForm.phone.$error" ng-show="companyForm.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.VAT">Vat</label>\n                <input type="text" name="vat" ng-model="vm.company.vat">\n                <div ng-messages="companyForm.vat.$error" ng-show="companyForm.vat.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.FAX">Fax</label>\n                <input type="text" name="fax" ng-model="vm.company.fax">\n                <div ng-messages="companyForm.fax.$error" ng-show="companyForm.fax.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n                <input type="text" name="companyId" ng-model="vm.company.companyId">\n                <div ng-messages="companyForm.companyId.$error" ng-show="companyForm.companyId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.TYPE">Type</label>\n                <input type="text" name="type" ng-model="vm.company.type">\n                <div ng-messages="companyForm.type.$error" ng-show="companyForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n                <input type="text" name="website" ng-model="vm.company.website">\n                <div ng-messages="companyForm.website.$error" ng-show="companyForm.website.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n                <input type="text" name="emailDomain" ng-model="vm.company.emailDomain">\n                <div ng-messages="companyForm.emailDomain.$error" ng-show="companyForm.emailDomain.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.company.email">\n                <div ng-messages="companyForm.email.$error" ng-show="companyForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.company.description">\n                <div ng-messages="companyForm.description.$error" ng-show="companyForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCompany" ng-click="vm.saveCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid || companyForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCompany" ng-click="vm.addNewCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_COMPANY" translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n                    ADD COMPANY\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCompany" ng-click="vm.deleteCompany($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/companies/edit/view.html",'<div id="contactmanager-company" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-companies-button md-icon-button" aria-label="Go to companies" ng-click="vm.gotoCompanies()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_COMPANIES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="company-image" hide-xs>\n                    <img ng-src="assets/images/business/companies.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.company.id}} {{vm.company.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.company.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.gotogoto(vm.company, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n                <md-tooltip><span translate="CONTACTMANAGER.GOTO_COMPANY"></span></md-tooltip>\n                <md-icon md-font-icon="icon-forward"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveCompany()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (addressForm.$invalid) || (shipmentAddressForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.GENERAL">GENERAL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="company-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.company.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.PHONE">Phone</label>\n                                <input type="text" name="phone" ng-model="vm.company.phone">\n                                <div ng-messages="generalForm.phone.$error" ng-show="generalForm.phone.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.VAT">Vat</label>\n                                <input type="text" name="vat" ng-model="vm.company.vat">\n                                <div ng-messages="generalForm.vat.$error" ng-show="generalForm.vat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.FAX">Fax</label>\n                                <input type="text" name="fax" ng-model="vm.company.fax">\n                                <div ng-messages="generalForm.fax.$error" ng-show="generalForm.fax.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n                                <input type="text" name="companyId" ng-model="vm.company.companyId">\n                                <div ng-messages="generalForm.companyId.$error" ng-show="generalForm.companyId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.TYPE">Type</label>\n                                <input type="text" name="type" ng-model="vm.company.type">\n                                <div ng-messages="generalForm.type.$error" ng-show="generalForm.type.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n                                <input type="text" name="website" ng-model="vm.company.website">\n                                <div ng-messages="generalForm.website.$error" ng-show="generalForm.website.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n                                <input type="text" name="emailDomain" ng-model="vm.company.emailDomain">\n                                <div ng-messages="generalForm.emailDomain.$error" ng-show="generalForm.emailDomain.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.company.email">\n                                <div ng-messages="generalForm.email.$error" ng-show="generalForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.company.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.ADDRESS">ADDRESS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="company-detail-form-container address md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CONTACTMANAGER.ADDRESS">ADDRESS</div>\n                        </div>\n                        <form name="addressForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.STREET">Street</label>\n                                <input type="text" name="street" ng-model="vm.company.street" autofocus>\n                                <div ng-messages="addressForm.street.$error" ng-show="addressForm.street.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n                                <input type="text" name="postalCode" ng-model="vm.company.postalCode">\n                                <div ng-messages="addressForm.postalCode.$error" ng-show="addressForm.postalCode.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.CITY">City</label>\n                                <input type="text" name="city" ng-model="vm.company.city">\n                                <div ng-messages="addressForm.city.$error" ng-show="addressForm.city.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n                                <input type="text" name="country" ng-model="vm.company.country">\n                                <div ng-messages="addressForm.country.$error" ng-show="addressForm.country.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="company-detail-form-container shipmentaddress md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</div>\n                        </div>\n                        <form name="shipmentAddressForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.STREET">Street</label>\n                                <input type="text" name="sStreet" ng-model="vm.company.sStreet" autofocus>\n                                <div ng-messages="shipmentAddressForm.sStreet.$error" ng-show="shipmentAddressForm.sStreet.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n                                <input type="text" name="sPostalCode" ng-model="vm.company.sPostalCode">\n                                <div ng-messages="shipmentAddressForm.sPostalCode.$error" ng-show="shipmentAddressForm.sPostalCode.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.CITY">City</label>\n                                <input type="text" name="sCity" ng-model="vm.company.sCity">\n                                <div ng-messages="shipmentAddressForm.sCity.$error" ng-show="shipmentAddressForm.sCity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n                                <input type="text" name="sCountry" ng-model="vm.company.sCountry">\n                                <div ng-messages="shipmentAddressForm.sCountry.$error" ng-show="shipmentAddressForm.sCountry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/contacts.html",'<div id="cm-contacts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <md-button class="md-icon-button sidenav-toggle" hide-gt-md ng-click="vm.toggleSidenav(\'sidenav\')" aria-label="Toggle sidenav" translate translate-attr-aria-label="CONTACTMANAGER.TOGGLE_SIDENAV">\n                <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n            </md-button>\n\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n          <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n        </span>\n                <span class="logo-text" translate="CONTACTMANAGER.CONTACTS">Contacts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n        <md-icon md-font-icon="icon-magnify"></md-icon>\n      </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedContacts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n        <div class="close-button-wrapper" ng-click="vm.selectedContacts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CONTACTMANAGER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n            <div>\n                <span class="selected-contacts-count">\n          <span>{{vm.selectedContacts.length}}</span>\n                <span translate="CONTACTMANAGER.SELECTED">Selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllContacts()" translate="CONTACTMANAGER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectContacts()" translate="CONTACTMANAGER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedContacts" filename="contacts.csv">\n          <md-icon md-font-icon="icon-download"></md-icon>\n        </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedContacts($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div md-background-bg layout="row" layout-align="start start">\n        <md-progress-linear ng-disabled="vm.disableDialog" md-mode="indeterminate" class="md-warn"></md-progress-linear>\n    </div>\n\n    <div layout="row">\n        <md-card ng-if="vm.hasPermission()" flex="25">\n            \x3c!-- SIDENAV --\x3e\n            <div ms-scroll class="content scrollable">\n                <md-list>\n                    <md-list-item ng-click="vm.selectedTags = []">\n                        <md-icon md-font-icon="icon-account-multiple"></md-icon>\n                        <p translate="CONTACTMANAGER.ALL_CONTACTS">\n                            All contacts\n                        </p>\n                    </md-list-item>\n\n                    <md-divider></md-divider>\n\n                    <md-list-item>\n                        <md-select placeholder="Select lists" flex="100" ng-model="vm.selectedList">\n                            <md-optgroup label="Lists">\n                                <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                            </md-optgroup>\n                        </md-select>\n                    </md-list-item>\n\n                    <md-list-item ng-click="vm.createList()">\n                        <p class="pl-8 md-accent-fg text-truncate" translate="CONTACTMANAGER.NEW_LIST">New List</p>\n                    </md-list-item>\n\n                    <md-divider></md-divider>\n\n                    <md-list-item>\n                        <md-select placeholder="Select companies" flex="100" ng-model="vm.selectedCompany">\n                            <md-optgroup label="Companies">\n                                <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n                            </md-optgroup>\n                        </md-select>\n                    </md-list-item>\n\n                    <md-list-item ng-click="vm.createCompany()">\n                        <p class="pl-8 md-accent-fg text-truncate" translate="CONTACTMANAGER.NEW_COMPANY">New Company</p>\n                    </md-list-item>\n\n                    <md-divider></md-divider>\n\n                    <md-list-item>\n                        <md-select placeholder="Select tags" flex="100" ng-model="vm.selectedTags" multiple>\n                            <md-optgroup label="Tags">\n                                <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n                            </md-optgroup>\n                        </md-select>\n                    </md-list-item>\n\n                    <md-list-item ng-click="vm.createTag()">\n                        <p class="pl-8 md-accent-fg text-truncate" translate="CONTACTMANAGER.NEW_TAG">New Tag</p>\n                    </md-list-item>\n\n                </md-list>\n            </div>\n            \x3c!-- / SIDENAV --\x3e\n        </md-card>\n\n        <md-card flex>\n            \x3c!-- MAIN --\x3e\n            <div class="main scrollable" ms-scroll>\n                \x3c!-- CONTACT LIST --\x3e\n                \x3c!-- <div class="contacts-list"> --\x3e\n                \x3c!-- CONTACTS TABLE --\x3e\n                <md-table-container class="md-white-bg">\n                    <table md-table md-row-select multiple ng-model="vm.selectedContacts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n                            <tr md-row>\n                                <th md-column md-order-by="id">ID</th>\n                                <th md-column md-order-by="firstName">{{\'CONTACTMANAGER.FULLNAME\' | translate}}</th>\n                                <th md-column md-order-by="phone">{{\'CONTACTMANAGER.PHONE\' | translate}}</th>\n                                <th md-column md-order-by="email">{{\'CONTACTMANAGER.EMAIL\' | translate}}</th>\n                                <th md-column md-order-by="list">{{\'CONTACTMANAGER.LIST\' | translate}}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.contacts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="contact" md-select-id="id" ng-repeat="contact in vm.contacts.rows">\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="firstName">{{contact.firstName}} {{contact.lastName}}</td>\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="phone">{{contact.phone}}</td>\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="email">{{contact.email}}</td>\n                                <td ng-click="vm.createOrEditContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(contact, ev)" translate="CONTACTMANAGER.EDIT_CONTACT">\n                                                    Edit Contact\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.mergeContact(ev, contact)" translate="CONTACTMANAGER.MERGE_CONTACT">\n                                                    Merge Contact\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.duplicateContact(ev, contact)" translate="CONTACTMANAGER.DUPLICATE_CONTACT">\n                                                    Duplicate Contact\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-divider></md-menu-divider>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(contact, ev)" translate="CONTACTMANAGER.DELETE_CONTACT">\n                                                    Delete Contact\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination class="md-white-bg" md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n                \x3c!-- / CONTACTS TABLE --\x3e\n                \x3c!-- </div> --\x3e\n                \x3c!-- / CONTACT LIST --\x3e\n            </div>\n            \x3c!-- / MAIN --\x3e\n        </md-card>\n\n\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CONTACT BUTTON --\x3e\n    <div ng-cloak>\n        <md-fab-speed-dial id="add-contact-button" ng-hide="vm.options.hidden" md-direction="up" md-open="vm.options.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm.options.hover }" ng-mouseenter="vm.options.isOpen=true" ng-mouseleave="vm.options.isOpen=false">\n            <md-fab-trigger>\n                <md-button aria-label="menu" class="md-fab md-accent">\n                    <md-icon md-font-icon="icon-plus"></md-icon>\n                </md-button>\n            </md-fab-trigger>\n            <md-fab-actions>\n                <md-button flow-init flow-btn flow-file-added="vm.uploadContacts($event, $file, $flow)" class="md-fab md-mini md-warn" aria-label="add contact" translate translate-attr-aria-label="CONTACTMANAGER.UPLOAD_CSV">\n                    <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n                        {{\'CONTACTMANAGER.UPLOAD_CSV\' | translate}}\n                    </md-tooltip>\n                    <md-icon md-font-icon="icon-upload"></md-icon>\n                </md-button>\n                <md-button class="md-fab md-mini md-accent" ng-click="vm.createOrEditContact($event)" aria-label="add contact" translate translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n                    <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n                        {{\'CONTACTMANAGER.ADD_CONTACT\' | translate}}\n                    </md-tooltip>\n                    <md-icon md-font-icon="icon-account-plus"></md-icon>\n                </md-button>\n            </md-fab-actions>\n        </md-fab-speed-dial>\n    </div>\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/create/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="New Contact">\n    <form name="contactForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.FIRSTNAME">First name</label>\n                <input name="firstName" ng-model="vm.contact.firstName" required md-autofocus>\n\n                <div ng-messages="contactForm.firstName.$error" ng-show="contactForm.firstName.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.LASTNAME">Last name</label>\n                <input name="lastName" ng-model="vm.contact.lastName">\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.PHONE">Phone</label>\n                <input name="phone" ng-model="vm.contact.phone" required>\n\n                <div ng-messages="contactForm.phone.$error" ng-show="contactForm.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.EMAIL">Email</label>\n                <input name="email" type="email" ng-model="vm.contact.email">\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n                <input name="mobile" ng-model="vm.contact.mobile">\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.FAX">Fax</label>\n                <input name="fax" ng-model="vm.contact.fax">\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.LIST">List</label>\n                <md-select name="list" ng-model="vm.contact.ListId" ng-disabled="vm.contact.id && vm.contact.ListId" ng-init="vm.getCustomFields(vm.contact.ListId)" ng-change="vm.getCustomFields(vm.contact.ListId)" required>\n                    <md-optgroup label="Lists">\n                        <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                        <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                    </md-optgroup>\n                </md-select>\n\n                <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div ng-repeat="customField in vm.customFields.rows" class="md-block" ng-switch="customField.type">\n                <div ng-switch-when="datetime">\n                    <label>{{customField.alias}}</label>\n\n                    <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n                        <mdp-date-picker mdp-open-on-click mdp-placeholder="Date" ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n                        <mdp-timne-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-time-picker>\n                    </div>\n                </div>\n\n                <div ng-switch-when="select">\n                    <label>{{customField.alias}}</label>\n\n                    <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                        <md-option ng-repeat="value in customField.values" ng-value="value">{{value}}</md-option>\n                        <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                    </md-select>\n                </div>\n\n                <div ng-switch-when="switch">\n                    <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n                        {{customField.alias}}\n                    </md-switch>\n                </div>\n\n                <md-input-container ng-switch-default>\n                    <label>{{customField.alias}}</label>\n\n                    <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                </md-input-container>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.COMPANY">Company</label>\n                <md-select name="company" ng-model="vm.contact.CompanyId">\n                    <md-optgroup label="Companies">\n                        <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n                    </md-optgroup>\n                </md-select>\n            </md-input-container>\n\n            <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n                <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All Fields</md-button>\n            </div>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n                <md-icon md-font-icon="icon-calendar-blank"></md-icon>\n                <input type="date" name="dateOfBirth" ng-model="vm.contact.dateOfBirth" class="text-truncate">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n                <input type="text" name="country" ng-model="vm.contact.country">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.CITY">City</label>\n                <input type="text" name="city" ng-model="vm.contact.city">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.STREET">Street</label>\n                <input type="text" name="street" ng-model="vm.contact.street">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.POSTAL_CODE">Postal Code</label>\n                <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.allFields">\n                <label translate="CONTACTMANAGER.NOTES">Notes</label>\n                <input type="text" name="description" ng-model="vm.contact.description">\n            </md-input-container>\n\n            <div ng-if="vm.allFields" layout="row" layout-align="center center">\n                <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer Fields</md-button>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newContact" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newContact" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n                    ADD CONTACT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newContact" ng-click="vm.deleteContact($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="{{ \'CONTACTMANAGER.DUPLICATE_CONTACT\' | translate }}">\n    <form name="contactForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.LIST">List</label>\n                <md-select name="list" ng-model="vm.contact.ListId">\n                    <md-optgroup label="Lists">\n                        <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                    </md-optgroup>\n                </md-select>\n\n                <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n                    ADD CONTACT\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n    <form name="hopperForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div flex class="md-block">\n                <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="CONTACTMANAGER.ERRORS.DATE_REQUIRED">Date is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="CONTACTMANAGER.ERRORS.DATE_INVALID">Date is invalid</span>\n                        </div>\n                    </div>\n                </mdp-date-picker>\n            </div>\n\n            <div flex class="md-block">\n                <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="CONTACTMANAGER.ERRORS.TIME_REQUIRED">Time is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="CONTACTMANAGER.ERRORS.TIME_INVALID">Time is invalid</span>\n                        </div>\n                    </div>\n                </mdp-time-picker>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_HOPPER" translate-attr-aria-label="CONTACTMANAGER.ADD_HOPPER">\n                    ADD HOPPER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/view.html",'<div id="cm-contact" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-contacts-button md-icon-button" aria-label="Go to contacts" ng-click="vm.gotoContacts()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_CONTACTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="contact-image" hide-xs>\n                    <img ng-src="assets/images/business/contacts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.contact.id}} {{vm.contact.firstName}} {{vm.contact.lastName}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div ng-if="vm.contact.role && vm.contact.role !== \'admin\'" ng-controller="ContactQueueAddButtonController as vm_contact_qa" ng-cloak>\n            <md-fab-speed-dial ng-hide="vm_contact_qa.hidden" md-direction="left" md-open="vm_contact_qa.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm_contact_qa.hover }" ng-mouseenter="vm_contact_qa.isOpen=true" ng-mouseleave="vm_contact_qa.isOpen=false">\n                <md-fab-trigger>\n                    <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n                        <md-tooltip md-direction="top" md-visible="tooltipVisible">Channels</md-tooltip>\n                        <md-icon md-font-icon="icon-eye" aria-label="channels"></md-icon>\n                    </md-button>\n                </md-fab-trigger>\n                <md-fab-actions>\n                    <div ng-repeat="channel in vm_contact_qa.channels">\n                        <md-button aria-label="{{channel.name}}" class="md-fab md-raised md-icon-button md-mini" ng-click="vm_contact_qa.openDialog($event, vm.contact, channel)">\n                            <md-tooltip md-direction="{{channel.direction}}" md-visible="tooltipVisible" md-autohide="false">\n                                {{channel.name}}\n                            </md-tooltip>\n                            <md-icon md-font-icon="{{channel.icon}}" aria-label="{{channel.name}}"></md-icon>\n                        </md-button>\n                    </div>\n                </md-fab-actions>\n            </md-fab-speed-dial>\n        </div>\n\n        <div>\n            <md-button ng-click="vm.duplicateContact($event)" class="md-fab md-warn md-icon-button" aria-label="DUPLICATE">\n                <md-icon md-font-icon="icon-file-multiple"></md-icon>\n            </md-button>\n            <md-button type="submit" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="detailForm.$pristine && customFieldsForm.$pristine" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.DETAIL">DETAIL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex="70">\n                            <div class="pb-16" layout="row" layout-align="start center">\n                                <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.PERSONAL_INFO">PERSONAL_INFO</div>\n                            </div>\n                            <form name="detailForm" novalidate>\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    \x3c!-- fistName --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.FIRSTNAME">First Name</label>\n                                        <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n                                        <input type="text" name="firstName" ng-model="vm.contact.firstName" class="text-truncate" required>\n\n                                        <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n                                            <div ng-message="required">\n                                                <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    \x3c!-- lastName --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.LASTNAME">Last Name</label>\n                                        <input type="text" name="lastName" ng-model="vm.contact.lastName" class="text-truncate">\n                                    </md-input-container>\n\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    \x3c!-- phone --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.PHONE">Phone</label>\n                                        <md-icon md-font-icon="icon-phone"></md-icon>\n                                        <input type="text" name="phone" ng-model="vm.contact.phone" class="text-truncate" required>\n\n                                        <div ng-messages="detailForm.phone.$error" ng-show="detailForm.phone.$touched" role="alert">\n                                            <div ng-message="required">\n                                                <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone name field is required</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    \x3c!-- mobile --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n                                        <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n                                        <input type="text" name="mobile" ng-model="vm.contact.mobile" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    \x3c!-- email --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.EMAIL">Email</label>\n                                        <md-icon md-font-icon="icon-email" class="email"></md-icon>\n                                        <input type="email" name="email" ng-model="vm.contact.email" class="text-truncate">\n                                        <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n                                            <div ng-message="email">\n                                                <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    \x3c!-- fax --\x3e\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.FAX">Fax</label>\n                                        <md-icon md-font-icon="icon-deskphone"></md-icon>\n                                        <input type="text" name="fax" ng-model="vm.contact.fax">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    \x3c!-- date of birdth --\x3e\n                                    \x3c!-- <md-input-container class="md-block" flex-gt-sm="">\n                                      <mdp-date-picker mdp-open-on-click name="dateOfBirth" mdp-placeholder="Date Of Birth" mdp-format="YYYY-MM-DD" ng-model="vm.contact.dateOfBirth">\n                                          <div ng-messages="detailForm.dateOfBirth.$error" ng-show="reportForm.dateOfBirth.$touched" role="alert">\n                                              <div ng-message="format">\n                                                  <span translate="CONTACTMANAGER.ERRORS.DATE_OF_RANGE_FROM_INVALID">Date Range From field is invalid</span>\n                                              </div>\n                                          </div>\n                                      </mdp-date-picker>\n                                    </md-input-container> --\x3e\n\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n                                        <md-icon md-font-icon="icon-calendar-blank"></md-icon>\n                                        <input type="date" name="dateOfBirth" ng-model="vm.contact.dateOfBirth" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container ng-if="vm.companies.rows.length" class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.COMPANY">Company</label>\n                                        <md-icon md-font-icon="icon-domain"></md-icon>\n                                        <md-select name="company" ng-model="vm.contact.CompanyId">\n                                            <md-optgroup label="Companies">\n                                                <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n                                                <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                            </md-optgroup>\n                                        </md-select>\n                                        <md-icon class="pointer" ng-show="vm.contact.CompanyId" md-font-icon="icon-information-outline" ng-click="vm.editCompany($event, vm.contact.CompanyId)"></md-icon>\n                                    </md-input-container>\n                                    <section ng-if="!vm.companies.rows.length" flex-gt-sm="">\n                                        <md-icon md-font-icon="icon-briefcase"></md-icon>\n                                        <label translate="CONTACTMANAGER.NO_COMPANIES">No Companies</label>\n                                        <md-button class="md-accent" translate="CONTACTMANAGER.ADD_COMPANY">Add Company</md-button>\n                                    </section>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container ng-if="vm.tags.rows.length" class="md-block" flex-gt-sm="">\n                                        <label translate="CONTACTMANAGER.TAGS">Tags</label>\n                                        <md-icon md-font-icon="icon-tag"></md-icon>\n                                        <md-select ng-model="vm.contact.tags" multiple>\n                                            <md-optgroup label="Tags">\n                                                <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n                                            </md-optgroup>\n                                        </md-select>\n                                    </md-input-container>\n                                    <section ng-if="!vm.tags.rows.length" flex-gt-sm="">\n                                        <md-icon md-font-icon="icon-tag"></md-icon>\n                                        <label translate="CONTACTMANAGER.NO_TAGS">No Tags</label>\n                                        <md-button class="md-accent" translate="CONTACTMANAGER.ADD_TAG">Add Tag</md-button>\n                                    </section>\n                                </div>\n\n                                <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n                                    <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All Fields</md-button>\n                                </div>\n\n                                <div ng-if="vm.allFields">\n                                    <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                        \x3c!-- country --\x3e\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n                                            <md-icon md-font-icon="icon-home" class="country"></md-icon>\n                                            <input type="text" name="country" ng-model="vm.contact.country" class="text-truncate">\n                                        </md-input-container>\n                                        <div flex="5"></div>\n                                        \x3c!-- city --\x3e\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate="CONTACTMANAGER.CITY">City</label>\n                                            <input type="text" name="city" ng-model="vm.contact.city">\n                                        </md-input-container>\n                                    </div>\n\n                                    <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                        <div flex="5"></div>\n                                        \x3c!-- street --\x3e\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate="CONTACTMANAGER.STREET">Street</label>\n                                            <input type="text" name="street" ng-model="vm.contact.street">\n                                        </md-input-container>\n                                        <div flex="5"></div>\n                                        \x3c!-- postalCode --\x3e\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate="CONTACTMANAGER.POSTALCODE">Postal Code</label>\n                                            <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n                                        </md-input-container>\n                                    </div>\n\n                                    <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                        <md-input-container class="md-block" flex-gt-sm="">\n                                            <label translate translate-attr-placeholder="CONTACTMANAGER.NOTES">Notes</label>\n                                            <md-icon md-font-icon="icon-note"></md-icon>\n                                            <textarea ng-model="vm.contact.description" type="text" max-rows="4"></textarea>\n                                        </md-input-container>\n                                    </div>\n\n                                    <div layout="row" layout-align="center center">\n                                        <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer Fields\n                                        </md-button>\n                                    </div>\n\n                                </div>\n                            </form>\n                        </div>\n\n                        <div flex></div>\n\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex="25">\n                            <div class="pb-16" layout="row" layout-align="start center">\n                                <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.CUSTOM_FIELDS">CUSTOM FIELDS</div>\n                            </div>\n                            <form name="customFieldsForm" novalidate>\n                                <md-input-container class="md-block">\n                                    <label translate translate-attr-placeholder="CONTACTMANAGER.LIST">List</label>\n                                    <md-select name="list" ng-model="vm.contact.ListId" md-on-close="vm.onSelectList($event)" ng-disabled="vm.contact.ListId">\n                                        <md-optgroup label="Lists">\n                                            <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">#{{list.id}} - {{list.name}}</md-option>\n                                            <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                        </md-optgroup>\n                                    </md-select>\n                                </md-input-container>\n                                <div ng-repeat="customField in vm.customFields.rows" class="md-block" ng-switch="customField.type">\n                                    <div ng-switch-when="datetime">\n                                        <label>{{customField.alias}}</label>\n\n                                        <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n                                            <mdp-date-picker mdp-open-on-click mdp-placeholder="Date" ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n                                            <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-time-picker>\n                                        </div>\n                                    </div>\n\n                                    <div ng-switch-when="select">\n                                        <label>{{customField.alias}}</label>\n\n                                        <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                                            <md-option ng-repeat="value in customField.values" ng-value="value">{{value}}</md-option>\n                                            <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                        </md-select>\n                                    </div>\n\n                                    <md-input-container ng-switch-when="switch">\n                                        <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n                                            {{customField.alias}}\n                                        </md-switch>\n                                    </md-input-container>\n\n                                    <md-input-container ng-switch-default>\n                                        <label>{{customField.alias}}</label>\n\n                                        <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                                    </md-input-container>\n                                </div>\n                            </form>\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.MOTION_BULL">MOTION BULL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.HOPPER">Hopper</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.queryHopper.filter = query;" on-collapse="vm.queryHopper.filter = undefined;" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm.getHoppers()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n                                        <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n                                        <md-icon md-font-icon="icon-reload"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n\n                            \x3c!-- HOPPER TABLE --\x3e\n                            <md-table-container>\n                                <table md-table multiple md-progress="vm.promise">\n                                    <thead md-head md-order="vm.queryHopper.sort" md-on-reorder="vm.getHoppers">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-hide="vm.hoppers.count">\n                                            <td md-cell colspan="4">\n                                                <div layout="row" layout-align="center center">\n                                                    <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                                </div>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-repeat="(id, hopper) in vm.hoppers.rows">\n                                            <td md-cell>{{hopper.id}}</td>\n                                            <td md-cell>{{hopper.phone}}</td>\n                                            <td md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="2">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n                                                                Edit Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm.deleteconfirm(hopper, $event)" translate="CONTACTMANAGER.DELETE_HOPPER">\n                                                                Delete Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n\n                            <md-table-pagination md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n                            \x3c!-- / HOPPER TABLE --\x3e\n                        </div>\n                    </div>\n\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.FINAL">Final</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.queryFinal.filter = query;" on-collapse="vm.queryFinal.filter = undefined;" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm.getFinals()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n                                        <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n                                        <md-icon md-font-icon="icon-reload"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n\n                            \x3c!-- HOPPER TABLE --\x3e\n                            <md-table-container>\n                                <table md-table multiple md-progress="vm.promise">\n                                    <thead md-head md-order="vm.queryFinal.sort" md-on-reorder="vm.getFinals">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="disposition">{{ \'CONTACTMANAGER.DISPOSITION\' | translate }}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-hide="vm.finals.count">\n                                            <td md-cell colspan="5">\n                                                <div layout="row" layout-align="center center">\n                                                    <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                                </div>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-repeat="(id, final) in vm.finals.rows">\n                                            <td md-cell>{{final.uniqueid}}</td>\n                                            <td md-cell>{{final.calleridnum}}</td>\n                                            <td md-cell>{{final.statedesc}}</td>\n                                            <td md-cell>{{final.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{final.disposition}}</td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n\n                            <md-table-pagination md-limit="vm.queryFinal.limit" md-limit-options="[10, 15, 20]" md-page="vm.queryFinal.page" md-total="{{vm.finals.count}}" md-on-paginate="vm.getFinals" md-page-select></md-table-pagination>\n                            \x3c!-- / HOPPER TABLE --\x3e\n                        </div>\n                    </div>\n\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.HISTORY">History</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.queryHistory.filter = query;" on-collapse="vm.queryHistory.filter = undefined;" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm.getHistories()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n                                        <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n                                        <md-icon md-font-icon="icon-reload"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n\n                            \x3c!-- HOPPER TABLE --\x3e\n                            <md-table-container>\n                                <table md-table multiple md-progress="vm.promise">\n                                    <thead md-head md-order="vm.queryHistory.sort" md-on-reorder="vm.getHistories">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-hide="vm.histories.count">\n                                            <td md-cell colspan="7">\n                                                <div layout="row" layout-align="center center">\n                                                    <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                                </div>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-repeat="(id, history) in vm.histories.rows">\n                                            <td md-cell>{{history.uniqueid}}</td>\n                                            <td md-cell>{{history.calleridnum}}</td>\n                                            <td md-cell>{{history.statedesc}}</td>\n                                            <td md-cell>{{history.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell>{{history.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{history.endtime | date:\'medium\'}}</td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n\n                            <md-table-pagination md-limit="vm.queryHistory.limit" md-limit-options="[10, 15, 20]" md-page="vm.queryHistory.page" md-total="{{vm.histories.count}}" md-on-paginate="vm.getHistories" md-page-select></md-table-pagination>\n                            \x3c!-- / HOPPER TABLE --\x3e\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.JSCRIPTY">JSCRIPTY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div layout="row">\n                        <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.SESSIONS">Sessions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.queryJscriptySession.filter = query;" on-collapse="vm.queryJscriptySession.filter = undefined;" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n\n                            \x3c!-- SESSION TABLE --\x3e\n                            <md-table-container>\n                                <table md-table multiple md-progress="vm.promise">\n                                    <thead md-head md-order="vm.queryJscriptySession.sort" md-on-reorder="vm.getJscriptySessions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n                                            <th md-column md-order-by="agent">{{ \'CONTACTMANAGER.AGENT\' | translate }}</th>\n                                            <th md-column md-order-by="project">{{ \'CONTACTMANAGER.PROJECT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-hide="vm.jscriptySessions.count">\n                                            <td md-cell colspan="6">\n                                                <div layout="row" layout-align="center center">\n                                                    <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                                </div>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-repeat="(id, session) in vm.jscriptySessions.rows">\n                                            <td md-cell>{{session.id}}</td>\n                                            <td md-cell>{{session.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{session.endtime | date:\'medium\'}}</td>\n                                            <td md-cell>{{session.membername}}</td>\n                                            <td md-cell>{{session.projectname}}</td>\n                                            <td md-cell class="actions">\n                                                \x3c!-- <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical" ></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="2">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n                                                                Edit Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm.deleteconfirm(hopper, $event)" translate="CONTACTMANAGER.DELETE_HOPPER">\n                                                                Delete Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu> --\x3e\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n\n                            <md-table-pagination md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n                            \x3c!-- / SESSION TABLE --\x3e\n                        </div>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/merge/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="Merge Contact">\n    <form name="contactForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <md-input-container class="md-block" flex-gt-sm>\n                <label>Filter</label>\n                <input ng-model="vm.searchTerm" name="searchTerm" ng-model-options="{ debounce: 300 }" ng-change="vm.change()">\n            </md-input-container>\n\n            <md-list flex>\n                <md-subheader class="md-no-sticky" ng-hide="vm.contacts.length"><em>Filter doesn\'t match any contact</em></md-subheader>\n                <md-list-item class="md-3-line" ng-repeat="contact in vm.contacts | filter:{ id: \'!\' + vm.contact.id}" ng-click="vm.showConfirm($event, vm.contact, contact)">\n                    <img ng-src="assets/images/avatars/profile.jpg" class="md-avatar" alt="{{contact.who}}" />\n                    <div class="md-list-item-text" layout="column">\n                        <h3>#{{ contact.id }} - {{ contact.firstName }} {{ contact.lastName }}</h3>\n                        <h4>{{ contact.email }}</h4>\n                        <p>{{ contact.phone }}</p>\n                    </div>\n                </md-list-item>\n            </md-list>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/upload/upload.html",'<md-dialog class="upload-dialog" aria-label="Upload contact">\n    <form name="uploadForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="CONTACTMANAGER.UPLOAD_CONTACTS">Upload Contacts</span>\n                <md-button ng-disabled="vm.uploading" class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <div md-background-bg layout="row" layout-align="start start">\n            <md-progress-linear ng-disabled="!vm.uploading" md-mode="indeterminate" class="md-warn"></md-progress-linear>\n        </div>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div>\n\n                <md-content ng-hide="vm.uploading || vm.stop">\n                    <md-input-container class="md-icon-float md-block" ng-repeat="contactField in vm.contactFields">\n                        <label>{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</label>\n                        <md-select name="{{contactField.key}}" ng-model="vm.binding[contactField.key]" placeholder="{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}" ng-required="contactField.required">\n                            <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n                            <md-option ng-value="null" ng-hide="contactField.required"><em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em></md-option>\n                        </md-select>\n                    </md-input-container>\n\n                    <md-input-container class="md-icon-float md-block">\n                        <label translate="CONTACTMANAGER.LIST">List</label>\n                        <md-select name="list" ng-model="vm.ListId" placeholder="Select a list" ng-change="vm.onChangeList()" required>\n                            <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                        </md-select>\n                    </md-input-container>\n\n                    <md-input-container class="md-icon-float md-block" ng-repeat="customField in vm.customFields.rows">\n                        <label>{{customField.alias}}</label>\n                        <md-select ng-model="vm.binding[\'cf_\' + customField.id]" placeholder="{{customField.alias}}" ng-required="customField.required">\n                            <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n                            <md-option ng-value="null" ng-hide="customField.required"><em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em></md-option>\n                        </md-select>\n                    </md-input-container>\n\n                    <md-input-container class="md-icon-float md-block">\n                        <label translate="CONTACTMANAGER.COMPANY">Company</label>\n                        <md-select name="company" ng-model="vm.CompanyId" placeholder="Select a company">\n                            <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n                            <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                        </md-select>\n                    </md-input-container>\n\n                    <md-input-container class="md-icon-float md-block">\n                        <md-select ng-model="vm.duplicates" placeholder="{{ \'CONTACTMANAGER.CHECK_DUPLICATES\' | translate}}" multiple>\n                            <md-option ng-value="contactField.key" ng-repeat="contactField in vm.contactFields">{{ \'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</md-option>\n                        </md-select>\n                    </md-input-container>\n                </md-content>\n\n                <div layout="row" ng-if="vm.uploading || vm.stop">\n                    \x3c!-- WIDGET SUCCESS --\x3e\n                    <ms-widget class="h-140" flex>\n                        \x3c!-- Front --\x3e\n                        <ms-widget-front class="p-16 white-bg">\n                            <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n                                <div class="md-display-1 pb-8 green-fg">{{vm.successAmount}}</div>\n                                <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.SUCCESS">Success</div>\n                            </div>\n                        </ms-widget-front>\n                        \x3c!-- / Front --\x3e\n                    </ms-widget>\n                    \x3c!-- / WIDGET SUCCESS --\x3e\n\n                    \x3c!-- WIDGET FAILURE --\x3e\n                    <ms-widget class="h-140" flex>\n                        \x3c!-- Front --\x3e\n                        <ms-widget-front class="p-16 white-bg">\n                            <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n                                <div class="md-display-1 pb-8 red-fg">{{vm.failureAmount}}</div>\n                                <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.FAILURE">Failure</div>\n                            </div>\n                        </ms-widget-front>\n                        \x3c!-- / Front --\x3e\n                    </ms-widget>\n                    \x3c!-- / WIDGET FAILURE --\x3e\n\n                    \x3c!-- WIDGET DUPLICATES --\x3e\n                    <ms-widget class="h-140" flex ng-if="vm.duplicates.length">\n                        \x3c!-- Front --\x3e\n                        <ms-widget-front class="p-16 white-bg">\n                            <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n                                <div class="md-display-1 pb-8 orange-fg">{{vm.duplicatesAmount}}</div>\n                                <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.DUPLICATES">Duplicates</div>\n                            </div>\n                        </ms-widget-front>\n                        \x3c!-- / Front --\x3e\n                    </ms-widget>\n                    \x3c!-- / WIDGET DUPLICATES --\x3e\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row">\n                <md-button aria-label="SAVE" ng-disabled="uploadForm.$invalid || uploadForm.$pristine || vm.uploading || vm.stop" ng-click="vm.upload()" class="md-accent md-raised" aria-label="UPLOAD" translate="CONTACTMANAGER.UPLOAD" translate-attr-aria-label="CONTACTMANAGER.UPLOAD">\n                    UPLOAD\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",'<md-dialog class="globalCustomField-dialog" aria-label="New GlobalCustomField">\n    <form name="globalCustomFieldForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n                <input type="" name="alias" ng-model="vm.globalCustomField.alias" required autofocus>\n                <div ng-messages="globalCustomFieldForm.alias.$error" ng-show="globalCustomFieldForm.alias.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.TYPE">Type</label>\n                <md-select ng-model="vm.globalCustomField.type" required>\n                    <md-option ng-value="\'text\'">Text</md-option>\n                    <md-option ng-value="\'select\'">Select</md-option>\n                    <md-option ng-value="\'number\'">Number</md-option>\n                    <md-option ng-value="\'switch\'">Switch</md-option>\n                    <md-option ng-value="\'datetime\'">Datetime</md-option>\n                </md-select>\n                <div ng-messages="globalCustomFieldForm.type.$error" ng-show="globalCustomFieldForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.globalCustomField.type == \'select\'" class="md-block">\n                <label translate="CONTACTMANAGER.VALUE">Value</label>\n                <md-chips name="values" ng-model="vm.globalCustomField.values" placeholder="add value and type enter" required>\n                    <md-chip-template>\n                        <span>{{$chip}}</span>\n                    </md-chip-template>\n                </md-chips>\n                <div ng-messages="globalCustomFieldForm.values.$error" ng-show="globalCustomFieldForm.values.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.globalCustomField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newGlobalCustomField" ng-click="vm.saveGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid || globalCustomFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE"\n                    translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newGlobalCustomField" ng-click="vm.addNewGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n                    ADD GLOBALCUSTOMFIELD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newGlobalCustomField" ng-click="vm.deleteGlobalCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",'<div id="globalCustomFields" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CONTACTMANAGER.GLOBALCUSTOMFIELDS">GlobalCustomFields</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedGlobalCustomFields.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedGlobalCustomFields =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CONTACTMANAGER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-globalCustomFields-count">\n                    <span>{{vm.selectedGlobalCustomFields.length}}</span>\n                <span translate="CONTACTMANAGER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="GLOBALCUSTOMFIELDS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedGlobalCustomFields" filename="globalCustomFields.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedGlobalCustomFields($event)" aria-label="delete selected" translate translate-attr-label="GLOBALCUSTOMFIELDS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- GLOBALCUSTOMFIELD TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedGlobalCustomFields" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getGlobalCustomFields">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                <th md-column md-order-by="alias">{{ \'CONTACTMANAGER.ALIAS\' | translate }}</th>\n                                <th md-column md-order-by="type">{{ \'CONTACTMANAGER.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="required">{{ \'CONTACTMANAGER.REQUIRED\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.globalCustomFields.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="globalCustomField" md-select-id="id" ng-repeat="globalCustomField in vm.globalCustomFields.rows">\n                                <td md-cell ng-if="globalCustomField.userpic"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="api/users/{{globalCustomField.id}}/avatar" /></td>\n                                <td md-cell ng-if="!globalCustomField.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="id ">{{globalCustomField.id}}</td>\n                                <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="alias ">{{globalCustomField.alias}}</td>\n                                <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="type ">{{ vm.arraytype[globalCustomField.type].option }}</td>\n                                <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="required ">\n                                    <md-icon md-colors="{color: {{globalCustomField.required ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{globalCustomField.required ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(globalCustomField, $event)" translate="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD">\n                                                    Edit GlobalCustomField\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(globalCustomField, $event)" translate="CONTACTMANAGER.DELETE_GLOBALCUSTOMFIELD">\n                                                    Delete GlobalCustomField\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.globalCustomFields.count}}" md-on-paginate="vm.getGlobalCustomFields" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / GLOBALCUSTOMFIELD TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-globalCustomField-button" ng-click="vm.createOrEditGlobalCustomField($event)" aria-label="add globalCustomField" translate translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/lists/create/dialog.html",'<md-dialog class="list-dialog" aria-label="New List">\n    <form name="listForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.list.name" required autofocus>\n                <div ng-messages="listForm.name.$error" ng-show="listForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.list.description">\n                <div ng-messages="listForm.description.$error" ng-show="listForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newList" ng-click="vm.saveList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid || listForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newList" ng-click="vm.addNewList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_LIST" translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n                    ADD LIST\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newList" ng-click="vm.deleteList($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",'<md-dialog class="list-dialog" aria-label="list">\n    <form name="listForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="CONTACTMANAGER.AGENTADD_LIST">Add Agent to list</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",'<md-dialog class="customField-dialog" aria-label="New CustomField">\n    <form name="customFieldForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n                <input type="" name="alias" ng-model="vm.customField.alias" required autofocus>\n                <div ng-messages="customFieldForm.alias.$error" ng-show="customFieldForm.alias.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.TYPE">Type</label>\n                <md-select ng-model="vm.customField.type" required>\n                    <md-option ng-value="\'text\'">Text</md-option>\n                    <md-option ng-value="\'select\'">Select</md-option>\n                    <md-option ng-value="\'number\'">Number</md-option>\n                    <md-option ng-value="\'switch\'">Switch</md-option>\n                    <md-option ng-value="\'datetime\'">Datetime</md-option>\n                </md-select>\n                <div ng-messages="customFieldForm.type.$error" ng-show="customFieldForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.customField.type == \'select\'" class="md-block">\n                <label translate="CONTACTMANAGER.VALUE">Value</label>\n                <md-chips name="values" ng-model="vm.customField.values" placeholder="add value and type enter" required>\n                    <md-chip-template>\n                        <span>{{$chip}}</span>\n                    </md-chip-template>\n                </md-chips>\n                <div ng-messages="customFieldForm.values.$error" ng-show="customFieldForm.values.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.customField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCustomField" ng-click="vm.saveCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid || customFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCustomField" ng-click="vm.addNewCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n                    ADD CUSTOMFIELD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCustomField" ng-click="vm.deleteCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/view.html",'<div id="contactmanager-list" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-lists-button md-icon-button" aria-label="Go to lists" ng-click="vm.gotoLists()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_LISTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="list-image" hide-xs>\n                    <img ng-src="assets/images/business/lists.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.list.id}} {{vm.list.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.list.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.gotogoto(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n                <md-tooltip><span translate="CONTACTMANAGER.GOTO_LIST"></span></md-tooltip>\n                <md-icon md-font-icon="icon-forward"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.agentadddialog(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n                <md-tooltip><span translate="CONTACTMANAGER.AGENTADD_LIST"></span></md-tooltip>\n                <md-icon md-font-icon="icon-eye"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveList()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (customFieldsForm.$invalid) || (voiceDispositionsForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="list-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.list.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.list.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.CUSTOMFIELDS">CUSTOMFIELDS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="list-detail-form-container customfields md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ListCustomFieldsController as vm_dc" ng-init="vm_dc.init(vm.list)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListCustomFields.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.CUSTOMFIELDS">CustomFields</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditListCustomField($event)" aria-label="add customField" translate translate-attr-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedListCustomFields.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedListCustomFields.length}} {{vm_dc.selectedListCustomFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedListCustomFields($event)" aria-label="delete selected" translate translate-attr-label="LISTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedListCustomFields" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getListCustomFields">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                            <th md-column md-order-by="alias">{{ \'CONTACTMANAGER.ALIAS\' | translate }}</th>\n                                            <th md-column md-order-by="type">{{ \'CONTACTMANAGER.TYPE\' | translate }}</th>\n                                            <th md-column md-order-by="required">{{ \'CONTACTMANAGER.REQUIRED\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="customField" md-select-id="id" ng-repeat="customField in vm_dc.listCustomFields.rows">\n                                            <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>{{customField.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>{{customField.alias}}</td>\n                                            <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>{{ vm_dc.arraytype[customField.type].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>{{customField.required}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditListCustomField($event, customField)" translate="CONTACTMANAGER.EDIT_CUSTOMFIELD">\n                                                                Edit CustomField\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(customField, $event)" translate="CONTACTMANAGER.DELETE_CUSTOMFIELD">\n                                                                Delete CustomField\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.listCustomFields.rows.length">\n                                            <td md-cell colspan="7">\n                                                <span class="text-boxed-ligth" translate="CONTACTMANAGER.NO_CUSTOMFIELD_AVAILABLE">No customfield available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.listCustomFields.count}}" md-on-paginate="vm_dc.getListCustomFields" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="CONTACTMANAGER.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="list-detail-form-container voicedispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ListVoiceDispositionsController as vm_dc" ng-init="vm_dc.init(vm.list)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListVoiceDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="CONTACTMANAGER.VOICEDISPOSITIONS">VoiceDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditListVoiceDisposition($event)" aria-label="add voiceDisposition" translate translate-attr-label="CONTACTMANAGER.ADD_VOICEDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedListVoiceDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedListVoiceDispositions.length}} {{vm_dc.selectedListVoiceDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedListVoiceDispositions($event)" aria-label="delete selected" translate translate-attr-label="LISTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedListVoiceDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getListVoiceDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'CONTACTMANAGER.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="voiceDisposition" md-select-id="id" ng-repeat="voiceDisposition in vm_dc.listVoiceDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditListVoiceDisposition($event, voiceDisposition)" md-cell>{{voiceDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditListVoiceDisposition($event, voiceDisposition)" md-cell>{{voiceDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditListVoiceDisposition($event, voiceDisposition)" md-cell>{{voiceDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditListVoiceDisposition($event, voiceDisposition)" translate="CONTACTMANAGER.EDIT_VOICEDISPOSITION">\n                                                                Edit VoiceDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(voiceDisposition, $event)" translate="CONTACTMANAGER.DELETE_VOICEDISPOSITION">\n                                                                Delete VoiceDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.listVoiceDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="CONTACTMANAGER.NO_VOICEDISPOSITION_AVAILABLE">No voicedisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.listVoiceDispositions.count}}" md-on-paginate="vm_dc.getListVoiceDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/lists/edit/voiceDispositions/dialog.html",'<md-dialog class="voiceDisposition-dialog" aria-label="New VoiceDisposition">\n    <form name="voiceDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="CONTACTMANAGER.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.voiceDisposition.name" required autofocus>\n                <div ng-messages="voiceDispositionForm.name.$error" ng-show="voiceDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVoiceDisposition" ng-click="vm.saveVoiceDisposition()" class="send-button md-accent md-raised" ng-disabled="voiceDispositionForm.$invalid || voiceDispositionForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE"\n                    translate-attr-aria-label="CONTACTMANAGER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVoiceDisposition" ng-click="vm.addNewVoiceDisposition()" class="send-button md-accent md-raised" ng-disabled="voiceDispositionForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_VOICEDISPOSITION" translate-attr-aria-label="CONTACTMANAGER.ADD_VOICEDISPOSITION">\n                    ADD VOICEDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVoiceDisposition" ng-click="vm.deleteVoiceDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/lists.html",'<div id="lists" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="CONTACTMANAGER.LISTS">Lists</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedLists.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedLists =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="CONTACTMANAGER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-lists-count">\n                    <span>{{vm.selectedLists.length}}</span>\n                <span translate="CONTACTMANAGER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="LISTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllLists()" translate="CONTACTMANAGER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectLists()" translate="CONTACTMANAGER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedLists" filename="lists.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedLists($event)" aria-label="delete selected" translate translate-attr-label="LISTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- LIST TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedLists" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getLists">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.lists.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="list" md-select-id="id" ng-repeat="list in vm.lists.rows">\n                                <td md-cell ng-if="list.userpic"><img class="avatar" alt="{{list.name}}" ng-src="api/users/{{list.id}}/avatar" /></td>\n                                <td md-cell ng-if="!list.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{list.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditList($event, list)" md-cell class="id ">{{list.id}}</td>\n                                <td ng-click="vm.createOrEditList($event, list)" md-cell class="name ">{{list.name}}</td>\n                                <td ng-click="vm.createOrEditList($event, list)" md-cell class="description ">{{list.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(list, $event)" translate="CONTACTMANAGER.EDIT_LIST">\n                                                    Edit List\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.gotocontactsgoto(list, $event)" translate="CONTACTMANAGER.GOTOCONTACTS_LIST">\n                                                    goToContacts List\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.exportcsvcontactsexport(list, $event)" translate="CONTACTMANAGER.EXPORTCSVCONTACTS_LIST">\n                                                    exportCsvContacts List\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.agentadddialog(list, $event)" translate="CONTACTMANAGER.AGENTADD_LIST">\n                                                    AgentAdd List\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(list, $event)" translate="CONTACTMANAGER.DELETE_LIST">\n                                                    Delete List\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.lists.count}}" md-on-paginate="vm.getLists" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / LIST TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD LIST BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-list-button" ng-click="vm.createOrEditList($event)" aria-label="add list" translate translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD LIST BUTTON --\x3e\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.html",'<div id="dashboard-general" class="page-layout simple right-sidenav" layout="row">\n    \x3c!-- CENTER --\x3e\n    <div class="center" flex ms-scroll>\n        \x3c!-- CONTENT --\x3e\n        <div class="content">\n            <md-tabs md-selected="vm.currentTab" md-dynamic-height>\n                <md-tab label="{{\'DASHBOARDS.DASHBOARD\' | translate}}" ui-sref="app.dashboards.general.dashboard">\n                    <div ui-view="dashboard"></div>\n                </md-tab>\n                <md-tab label="{{\'DASHBOARDS.RECORDINGS\' | translate}}" ui-sref="app.dashboards.general.recordings">\n                    <div ui-view="recordings"></div>\n                </md-tab>\n                <md-tab label="{{\'DASHBOARDS.CONTACTS\' | translate}}" ui-sref="app.dashboards.general.contacts({tab: vm})">\n                    <div ui-view="contacts"></div>\n                </md-tab>\n                <md-tab label="{{\'DASHBOARDS.MYCONTACTS\' | translate}}" ui-sref="app.dashboards.general.mycontacts">\n                    <div ui-view="mycontacts"></div>\n                </md-tab>\n\n                \x3c!-- TABS START --\x3e\n                <md-tab ng-repeat="tab in vm.tabs track by tab.id">\n                    <md-tab-label>\n                        <md-icon md-font-icon="{{tab.icon}}" class="icon s20"></md-icon>\n                        <span class="text-bold"> {{tab.title}} </span>\n                        <md-button class="md-icon-button md-warn" ng-click="vm.closeTab($index, tab)">\n                            <md-icon md-font-icon="icon-close-circle-outline" class="icon s20"></md-icon>\n                        </md-button>\n                    </md-tab-label>\n                    <md-tab-body>\n                        <div ng-switch="tab.type">\n                            <div ng-switch-when="contact">\n                                <contact tab="tab"></contact>\n                            </div>\n                            <div ng-switch-when="popup">\n                                <popup tab="tab"></popup>\n                            </div>\n                            <div ng-switch-when="jscripty">\n                                <jscripty tab="tab"></jscripty>\n                            </div>\n                        </div>\n                    </md-tab-body>\n                </md-tab>\n                \x3c!-- TABS END --\x3e\n            </md-tabs>\n        </div>\n        \x3c!-- / CONTENT --\x3e\n    </div>\n    \x3c!-- / CENTER --\x3e\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/contacts/agent.general.contacts.html",'<div layout="rows">\n    <md-card flex="25" layout-padding>\n        <md-button translate="CONTACTMANAGER.ALL_CONTACTS" ng-click="vm.refreshContacts()"> AllContacts </md-button>\n        <md-input-container>\n            <label>Select a list</label>\n            <md-select flex="100" ng-model="vm.query.ListId" ng-change="vm.getContacts()">\n                <md-optgroup label="Lists">\n                    <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                    <md-option ng-value="vm.defaultLists" ng-if="vm.lists.count > 1"><em translate="CONTACTMANAGER.ALL_CONTACTS">All</em></md-option>\n                </md-optgroup>\n            </md-select>\n        </md-input-container>\n    </md-card>\n    <md-card flex="75">\n        <md-toolbar class="md-table-toolbar md-default">\n            <div class="md-toolbar-tools">\n                <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n                <div flex></div>\n                <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n                <md-button class="md-icon-button" ng-click="vm.openContact($event)" aria-label="add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n                    <md-icon md-font-icon="icon-plus"></md-icon>\n                </md-button>\n                <md-button class="md-icon-button" ng-click="vm.refreshContacts($event)" aria-label="refresh Contacts" translate translate-attr-label="DASHBOARDS.REFRESH_CONTACTS">\n                    <md-icon md-font-icon="icon-reload"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-table-container>\n            <table md-table md-progress="vm.promise">\n                <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n                    <tr md-row>\n                        <th md-column md-order-by="id">ID</th>\n                        <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n                        <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n                        <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n                        <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n                        <th md-column width="10px"></th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-hide="vm.contacts.rows.length">\n                        <td md-cell colspan="10">\n                            <div layout="row" layout-align="center center">\n                                <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                            </div>\n                        </td>\n                    </tr>\n                    <tr md-row ng-repeat="contact in vm.contacts.rows">\n                        <td ng-click="vm.openContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n                        <td ng-click="vm.openContact($event, contact)" md-cell class="firstName">{{contact.firstName}} {{contact.lastName}}</td>\n                        <td ng-click="vm.openContact($event, contact)" md-cell class="phone">{{contact.phone}}</td>\n                        <td ng-click="vm.openContact($event, contact)" md-cell class="email">{{contact.email}}</td>\n                        <td ng-click="vm.openContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n                        <td md-cell class="actions">\n                            <md-menu>\n                                <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n                                    <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                </md-button>\n\n                                <md-menu-content width="3">\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.openContact($event, contact)" translate="DASHBOARDS.EDIT">\n                                            Edit Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.mergeContact($event, contact)" translate="DASHBOARDS.MERGE">\n                                            Merge Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.duplicateContact($event, contact)" translate="DASHBOARDS.DUPLICATE">\n                                            Duplicate Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                </md-menu-content>\n                            </md-menu>\n                        </td>\n                    </tr>\n                </tbody>\n            </table>\n        </md-table-container>\n\n        <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n    </md-card>\n\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/dashboard/agent.general.dashboard.html",'<div layout="row">\n    <md-card flex="50">\n        <md-toolbar class="md-table-toolbar md-default">\n            <div class="md-toolbar-tools">\n                <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n                <div flex></div>\n            </div>\n        </md-toolbar>\n        <md-table-container>\n            <table md-table md-progress="vm.promise">\n                <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceQueues">\n                    <tr md-row>\n                        <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                        <th md-column md-order-by="waiting">{{ \'VOICE.WAITING\' | translate }}</th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-hide="vm.getSize(vm.voiceQueues)">\n                        <td md-cell colspan="2">\n                            <div layout="row" layout-align="center center">\n                                <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                            </div>\n                        </td>\n                    </tr>\n                    <tr md-row ng-repeat="(key, voiceQueue) in vm.voiceQueues">\n                        <td md-cell class="name">{{voiceQueue.name}}</td>\n                        <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n                    </tr>\n                </tbody>\n            </table>\n        </md-table-container>\n\n        <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voiceQueuesTotal}}" md-on-paginate="vm.getVoiceQueues" md-page-select></md-table-pagination>\n    </md-card>\n    <md-card flex="50">\n        <md-toolbar class="md-table-toolbar md-default">\n            <div class="md-toolbar-tools">\n                <span class="md-subhead" translate="DASHBOARDS.WAITING_TEXT"></span>\n                <div flex></div>\n            </div>\n        </md-toolbar>\n        <md-table-container>\n            <table md-table>\n                <thead md-head>\n                    <tr md-row>\n                        <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n                        <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n                        <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n                        <td md-cell colspan="3">\n                            <div layout="row" layout-align="center center">\n                                <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                            </div>\n                        </td>\n                    </tr>\n                    <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n                        <td md-cell>{{channel.exten}}</td>\n                        <td md-cell>{{channel.queue}}</td>\n                        <td md-cell>{{channel.calleridnum}}</td>\n                    </tr>\n                </tbody>\n            </table>\n        </md-table-container>\n\n        <md-table-pagination md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n    </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/directives/contact/contact.html",'<md-content>\n    <md-tabs md-selected="currentTab" md-dynamic-height>\n        <md-tab>\n            <md-tab-label>\n                <span translate="DASHBOARDS.DETAIL">Detail</span>\n            </md-tab-label>\n            <md-tab-body>\n                <md-content>\n                    <div layout="row">\n                        \x3c!-- MS-CARD --\x3e\n                        <md-card class="template-7" layout="row" layout-align="space-between" ng-repeat="call in tab.calls track by call.uniqueid">\n                            <div class="info" layout="column" layout-align="space-between" layout-fill flex>\n                                <div layout="row">\n                                    <span class="text-boxed md-green-bg"><timer start-time="tab.openedAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>\n                                    <div flex></div>\n                                    <span ng-if="call.disposedAt" class="text-boxed md-yellow-bg"><timer start-time="call.disposedAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>\n                                </div>\n                                <div class="p-16">\n                                    <div class="title h1">\n                                        <md-icon md-font-icon="icon-phone-forward"></md-icon>\n                                        {{call.calleridnum}}\n                                    </div>\n\n                                    <div class="subtitle h4 secondary-text" ng-if="call.calleridname">\n                                        <md-icon md-font-icon="icon-account"></md-icon>\n                                        Name: {{call.calleridname}}\n                                    </div>\n\n                                    <div class="text h4 pt-8" ng-if="call.queue">\n                                        <md-icon md-font-icon="icon-stackoverflow"></md-icon>\n                                        Queue: {{call.queue}}\n                                    </div>\n                                    <div class="text h4 pt-8" ng-if="call.variables.extravar">\n                                        <md-icon md-font-icon="icon-minus"></md-icon>\n                                        Extra: {{call.variables.extravar}}\n                                    </div>\n                                </div>\n                                <div layout="row" layout-align="end center">\n                                    <md-button ng-if="call.disposedAt" type="submit" ng-click="disposeCall($event, call)" class="send-button md-accent md-raised">\n                                        {{ \'DASHBOARDS.DISPOSE\' | translate}}\n                                    </md-button>\n                                </div>\n                            </div>\n                        </md-card>\n                        \x3c!-- / MS-CARD --\x3e\n                        <div flex layout="row" layout-align="end center">\n                            <md-button type="submit" ng-click="mergeContact($event)" class="send-button md-raised md-teal-A700-bg" ng-if="!newContact" ng-disabled="detailForm.$invalid || customFieldsForm.$invalid">\n                                {{ \'DASHBOARDS.MERGE\' | translate}}\n                            </md-button>\n                            <md-button type="submit" ng-click="duplicateContact($event)" class="send-button md-raised md-cyan-A700-bg" ng-if="!newContact" ng-disabled="detailForm.$invalid || customFieldsForm.$invalid">\n                                {{ \'DASHBOARDS.DUPLICATE\' | translate}}\n                            </md-button>\n                            <md-button type="submit" ng-click="addNewContact($event)" class="send-button md-accent md-raised" ng-if="newContact" ng-disabled="detailForm.$invalid || customFieldsForm.$invalid">\n                                {{ \'DASHBOARDS.ADD\'| translate }}\n                            </md-button>\n                            <md-button type="submit" ng-click="saveContact($event)" class="send-button md-accent md-raised" ng-if="!newContact" ng-disabled="detailForm.$invalid || customFieldsForm.$invalid">\n                                {{ \'DASHBOARDS.SAVE\' | translate }}\n                            </md-button>\n                        </div>\n                    </div>\n                    <div layout="row">\n                        <md-card flex="75" layout-padding>\n                            <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.PERSONAL_INFO">PERSONAL_INFO</div>\n                            <form name="detailForm" novalidate>\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.FIRSTNAME">First Name</label>\n                                        <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n                                        <input type="text" name="firstName" ng-model="contact.firstName" class="text-truncate" required>\n                                        <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n                                            <div ng-message="required">\n                                                <span translate="DASHBOARDS.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.LASTNAME">Last Name</label>\n                                        <input type="text" name="lastName" ng-model="contact.lastName" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.PHONE">Phone</label>\n                                        <md-icon md-font-icon="icon-phone"></md-icon>\n                                        <input type="text" name="phone" ng-model="contact.phone" class="text-truncate" required>\n                                        <div ng-messages="detailForm.phone.$error" ng-show="detailForm.phone.$touched" role="alert">\n                                            <div ng-message="required">\n                                                <span translate="DASHBOARDS.ERRORS.PHONE_REQUIRED">Phone name field is required</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.MOBILE">Mobile</label>\n                                        <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n                                        <input type="text" name="mobile" ng-model="contact.mobile" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.EMAIL">Email</label>\n                                        <md-icon md-font-icon="icon-email" class="email"></md-icon>\n                                        <input type="email" name="email" ng-model="contact.email" class="text-truncate">\n                                        <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n                                            <div ng-message="email">\n                                                <span translate="DASHBOARDS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                            </div>\n                                        </div>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.FAX">Fax</label>\n                                        <md-icon md-font-icon="icon-deskphone"></md-icon>\n                                        <input type="text" name="fax" ng-model="contact.fax">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.DATE_OF_BIRTH">Date of Birth</label>\n                                        <md-icon md-font-icon="icon-calendar-blank"></md-icon>\n                                        <input type="date" name="dateOfBirth" ng-model="contact.dateOfBirth" class="text-truncate">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.COMPANY">Company</label>\n                                        <md-icon md-font-icon="icon-domain" class="email"></md-icon>\n                                        <md-select name="company" ng-model="contact.CompanyId">\n                                            <md-option ng-value="company.id" ng-repeat="company in companies.rows">{{company.name}}</md-option>\n                                            <md-option ng-value="null"><em translate="DASHBOARDS.NONE">None</em></md-option>\n                                        </md-select>\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.TAG">TAG</label>\n                                        <md-icon md-font-icon="icon-tag"></md-icon>\n                                        <md-select ng-model="contact.tags" multiple>\n                                            <md-option ng-value="tag.name" ng-repeat="tag in tab.tags.rows">{{tag.name}}</md-option>\n                                        </md-select>\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.COUNTRY">Country</label>\n                                        <md-icon md-font-icon="icon-home" class="country"></md-icon>\n                                        <input type="text" name="country" ng-model="contact.country" class="text-truncate">\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.CITY">City</label>\n                                        <input type="text" name="city" ng-model="contact.city">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.STREET">Street</label>\n                                        <input type="text" name="street" ng-model="contact.street">\n                                    </md-input-container>\n                                    <div flex="5"></div>\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate="DASHBOARDS.POSTALCODE">Postal Code</label>\n                                        <input type="text" name="postalCode" ng-model="contact.postalCode">\n                                    </md-input-container>\n                                </div>\n\n                                <div layout-gt-sm="row" class="layout-gt-sm-row">\n                                    <md-input-container class="md-block" flex-gt-sm="">\n                                        <label translate translate-attr-placeholder="DASHBOARDS.NOTES">Notes</label>\n                                        <md-icon md-font-icon="icon-note"></md-icon>\n                                        <textarea ng-model="contact.description" type="text" max-rows="4"></textarea>\n                                    </md-input-container>\n                                </div>\n                            </form>\n                        </md-card>\n                        <md-card flex="25" layout-padding>\n                            <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.CUSTOM_FIELDS">CUSTOM FIELDS</div>\n                            <form name="customFieldsForm" novalidate>\n\n                                \x3c!-- START INPUT LIST --\x3e\n                                <md-input-container class="md-block" ng-if="newContact">\n                                    <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n                                    <md-select name="list" ng-model="contact.ListId" ng-change="getCustomFields(contact.ListId)" required>\n                                        <md-optgroup label="Lists">\n                                            <md-option ng-value="list.id" ng-repeat="list in tab.userLists.rows">#{{list.id}} - {{list.name}}</md-option>\n                                        </md-optgroup>\n                                    </md-select>\n                                </md-input-container>\n                                <md-input-container class="md-block" ng-if="!newContact">\n                                    <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n                                    <md-select ng-disabled="true" name="list" ng-model="contact.ListId" required>\n                                        <md-optgroup label="Lists">\n                                            <md-option ng-value="list.id" ng-repeat="list in tab.lists.rows">#{{list.id}} - {{list.name}}</md-option>\n                                        </md-optgroup>\n                                    </md-select>\n                                </md-input-container>\n                                \x3c!-- END INPUT LIST --\x3e\n\n                                <div ng-repeat="customField in tab.customFields.rows" class="md-block" ng-switch="customField.type">\n                                    <div ng-switch-when="datetime">\n                                        <label>{{customField.alias}}</label>\n                                        <div ng-init="contact[\'cf_\' + customField.id] = getDateFromString(contact[\'cf_\' + customField.id])">\n                                            <mdp-date-picker mdp-open-on-click mdp-placeholder="Date" ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="contact[\'cf_\' + customField.id]"></mdp-date-picker>\n                                            <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="contact[\'cf_\' + customField.id]"></mdp-time-picker>\n                                        </div>\n                                    </div>\n\n                                    <div ng-switch-when="select">\n                                        <label>{{customField.alias}}</label>\n                                        <md-select ng-model="contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                                            <md-option ng-repeat="value in customField.values" ng-value="value">{{value}}</md-option>\n                                            <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n                                        </md-select>\n                                    </div>\n\n                                    <md-input-container ng-switch-when="switch">\n                                        <md-switch aria-label="{{customField.alias}}" ng-model="contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n                                            {{customField.alias}}\n                                        </md-switch>\n                                    </md-input-container>\n\n                                    <md-input-container ng-switch-default>\n                                        <label>{{customField.alias}}</label>\n                                        <input type="{{customField.type}}" ng-model="contact[\'cf_\' + customField.id]" ng-required="customField.required">\n                                    </md-input-container>\n                                </div>\n                            </form>\n                        </md-card>\n                    </div>\n                </md-content>\n            </md-tab-body>\n        </md-tab>\n\n        <md-tab ng-if="!newContact">\n            <md-tab-label>\n                <span translate="DASHBOARDS.MOTION_BULL">Motion Bull</span>\n            </md-tab-label>\n            <md-tab-body>\n                <md-card layout="row">\n                    <div class="md-background-bg" flex>\n                        <md-toolbar class="md-table-toolbar md-default">\n                            <div class="md-toolbar-tools">\n                                <span class="md-subhead" translate="CONTACTMANAGER.HOPPER">Hopper</span>\n                                <div flex></div>\n                                <ms-search-bar on-search="queryHopper.filter = query;" on-collapse="queryHopper.filter = undefined;" debounce="300"></ms-search-bar>\n                            </div>\n                        </md-toolbar>\n\n                        <md-table-container>\n                            <table md-table multiple md-progress="promise">\n                                <thead md-head md-order="queryHopper.sort" md-on-reorder="getHoppers">\n                                    <tr md-row>\n                                        <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n                                        <th md-column md-order-by="phone">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                        <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n                                    </tr>\n                                </thead>\n                                <tbody md-body>\n                                    <tr md-row ng-hide="hoppers.count">\n                                        <td md-cell colspan="3">\n                                            <div layout="row" layout-align="center center">\n                                                <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                    <tr md-row ng-repeat="(id, hopper) in hoppers.rows">\n                                        <td md-cell>{{hopper.id}}</td>\n                                        <td md-cell>{{hopper.phone}}</td>\n                                        <td md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                        </md-table-container>\n\n                        <md-table-pagination md-limit="queryHopper.limit" md-limit-options="[10, 15, 20]" md-page="queryHopper.page" md-total="{{hoppers.count}}" md-on-paginate="getHoppers" md-page-select></md-table-pagination>\n                    </div>\n                </md-card>\n\n                <md-card layout="row">\n                    <div class="md-background-bg" flex>\n                        <md-toolbar class="md-table-toolbar md-default">\n                            <div class="md-toolbar-tools">\n                                <span class="md-subhead" translate="CONTACTMANAGER.FINAL">Final</span>\n                                <div flex></div>\n                                <ms-search-bar on-search="queryFinal.filter = query;" on-collapse="queryFinal.filter = undefined;" debounce="300"></ms-search-bar>\n                            </div>\n                        </md-toolbar>\n\n                        <md-table-container>\n                            <table md-table multiple md-progress="promise">\n                                <thead md-head md-order="queryFinal.sort" md-on-reorder="getFinals">\n                                    <tr md-row>\n                                        <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n                                        <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                        <th md-column md-order-by="statedesc">{{ \'CONTACTMANAGER.STATUS\' | translate }}</th>\n                                        <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                        <th md-column md-order-by="disposition">{{ \'CONTACTMANAGER.DISPOSITION\' | translate }}</th>\n                                    </tr>\n                                </thead>\n                                <tbody md-body>\n                                    <tr md-row ng-hide="finals.count">\n                                        <td md-cell colspan="5">\n                                            <div layout="row" layout-align="center center">\n                                                <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                    <tr md-row ng-repeat="(id, final) in finals.rows">\n                                        <td md-cell>{{final.uniqueid}}</td>\n                                        <td md-cell>{{final.calleridnum}}</td>\n                                        <td md-cell>{{final.statedesc}}</td>\n                                        <td md-cell>{{final.starttime | date:\'medium\'}}</td>\n                                        <td md-cell>{{final.disposition}}</td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                        </md-table-container>\n\n                        <md-table-pagination md-limit="queryFinal.limit" md-limit-options="[10, 15, 20]" md-page="queryFinal.page" md-total="{{finals.count}}" md-on-paginate="getFinals" md-page-select></md-table-pagination>\n                    </div>\n                </md-card>\n\n                <md-card layout="row">\n                    <div class="md-background-bg" flex>\n                        <md-toolbar class="md-table-toolbar md-default">\n                            <div class="md-toolbar-tools">\n                                <span class="md-subhead" translate="CONTACTMANAGER.HISTORY">History</span>\n                                <div flex></div>\n                                <ms-search-bar on-search="queryHistory.filter = query;" on-collapse="queryHistory.filter = undefined;" debounce="300"></ms-search-bar>\n                            </div>\n                        </md-toolbar>\n\n                        <md-table-container>\n                            <table md-table multiple md-progress="promise">\n                                <thead md-head md-order="queryHistory.sort" md-on-reorder="getHistories">\n                                    <tr md-row>\n                                        <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n                                        <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n                                        <th md-column md-order-by="statedesc">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n                                        <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n                                        <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n                                        <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n                                    </tr>\n                                </thead>\n                                <tbody md-body>\n                                    <tr md-row ng-hide="histories.count">\n                                        <td md-cell colspan="7">\n                                            <div layout="row" layout-align="center center">\n                                                <span tranlsate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n                                            </div>\n                                        </td>\n                                    </tr>\n                                    <tr md-row ng-repeat="(id, history) in histories.rows">\n                                        <td md-cell>{{history.uniqueid}}</td>\n                                        <td md-cell>{{history.calleridnum}}</td>\n                                        <td md-cell>{{history.statedesc}}</td>\n                                        <td md-cell>{{history.scheduledat}}</td>\n                                        <td md-cell>{{history.starttime}}</td>\n                                        <td md-cell>{{history.endtime}}</td>\n                                    </tr>\n                                </tbody>\n                            </table>\n                        </md-table-container>\n\n                        <md-table-pagination md-limit="queryHistory.limit" md-limit-options="[10, 15, 20]" md-page="queryHistory.page" md-total="{{histories.count}}" md-on-paginate="getHistories" md-page-select></md-table-pagination>\n\n                    </div>\n                </md-card>\n            </md-tab-body>\n        </md-tab>\n    </md-tabs>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/directives/contact/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n    <md-dialog-content ms-scroll>\n        <div layout="row">\n            <div flex>\n                <md-radio-group ng-model="vm.choice" ng-change="vm.saveDisposition()">\n                    <md-radio-button value="fax"><span translate="DASHBOARDS.FAX">Fax</span></md-radio-button>\n                    <md-radio-button value="amd"><span translate="DASHBOARDS.ANSWER_MACHINE">Answer Machine</span></md-radio-button>\n                    <md-radio-button value="interested"><span translate="DASHBOARDS.INTERESTED">Interested</span></md-radio-button>\n                    <md-radio-button value="notinterested"><span translate="DASHBOARDS.NOT_INTERESTED">Not Interested</span></md-radio-button>\n                    <md-radio-button value="sold"><span translate="DASHBOARDS.SOLD">Sold</span></md-radio-button>\n                    <md-radio-button value="special"><span translate="DASHBOARDS.SPECIAL">Special</span></md-radio-button>\n\n                    <md-radio-button value="blacklist"><span translate="DASHBOARDS.BLACKLIST">Blacklist</span></md-radio-button>\n                    <md-radio-button value="reschedule"><span translate="DASHBOARDS.RESCHEDULE">Reschedule</span></md-radio-button>\n                </md-radio-group>\n            </div>\n            <div flex>\n                <md-radio-group ng-model="vm.choice" ng-change="vm.saveDisposition()">\n                    <md-radio-button ng-repeat="disposition in vm.dispositions.rows" value="{{disposition.name}}">{{disposition.name}}</md-radio-button>\n                </md-radio-group>\n            </div>\n        </div>\n    </md-dialog-content>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/directives/contact/reschedule/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n    <form name="dateTime" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div layout="row">\n                <div flex class="md-block">\n                    <mdp-date-picker mdp-open-on-click required name="date" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" mdp-min-date="vm.hopper.minDate" ng-model="vm.hopper.dateTime">\n                        <div ng-messages="dateTime.date.$error" ng-show="dateTime.date.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="DASHBOARDS.ERRORS.DATE_REQUIRED">Date is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="DASHBOARDS.ERRORS.DATE_INVALID">Date is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-date-picker>\n                </div>\n\n                <div flex class="md-block">\n                    <mdp-time-picker mdp-open-on-click required name="time" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.dateTime">\n                        <div ng-messages="dateTime.time.$error" ng-show="dateTime.time.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="DASHBOARDS.ERRORS.TIME_REQUIRED">Time is required</span>\n                            </div>\n                            <div ng-message="format">\n                                <span translate="DASHBOARDS.ERRORS.TIME_INVALID">Time is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveDialog()" class="send-button md-accent md-raised" ng-disabled="dateTime.$invalid || dateTime.$pristine" aria-label="SAVE" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/directives/jscripty/jscripty.html",'<md-content class="md-padding" layout-align="center center">\n    <div layout="row" layout-align="center center">\n        <span ng-if="!tab.saved" class="text-boxed md-green-bg"><timer start-time="starttime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>\n        <span ng-if="contact" class="text-boxed md-gray-bg font-weight-900">{{contact.firstName}} {{contact.lastName}} {{contact.phone}}</span>\n        <md-button ng-if="contact" ng-click="openContact($event, contact)" md-no-ink class="md-raised md-accent" translate="JSCRIPTY.OPEN_CONTACT"></md-button>\n    </div>\n    <h1 ng-if="!project.formData">Project is not available. Please contact the administrator</h1>\n    <mw-form-viewer ng-if="project.formData" form-data="project.formData" response-data="responseData" on-submit="onSubmit($event)" template-data="call"></mw-form-viewer>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/directives/popup/popup.html",'<md-content class="md-padding">\n    <div ng-bind-html="html"></div>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/mycontacts/agent.general.mycontacts.html",'<div layout="rows">\n    <md-card flex="25" layout-padding>\n        <md-button translate="CONTACTMANAGER.ALL_CONTACTS" ng-click="vm.refreshContacts()"> AllContacts </md-button>\n        <md-input-container>\n            <label>Select a list</label>\n            <md-select flex="100" ng-model="vm.query.ListId" ng-change="vm.getContacts()">\n                <md-optgroup label="Lists">\n                    <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n                    <md-option ng-value="vm.defaultLists" ng-if="vm.lists.count > 1"><em translate="CONTACTMANAGER.ALL_CONTACTS">All</em></md-option>\n                </md-optgroup>\n            </md-select>\n        </md-input-container>\n    </md-card>\n    <md-card flex="75">\n        <md-toolbar class="md-table-toolbar md-default">\n            <div class="md-toolbar-tools">\n                <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n                <div flex></div>\n                \x3c!-- <ms-search-bar on-search="vm.query.filter = query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar> --\x3e\n                <md-button class="md-icon-button" ng-click="vm.openContact($event)" aria-label="add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n                    <md-icon md-font-icon="icon-plus"></md-icon>\n                </md-button>\n                <md-button class="md-icon-button" ng-click="vm.refreshContacts($event)" aria-label="refresh Contacts" translate translate-attr-label="DASHBOARDS.REFRESH_CONTACTS">\n                    <md-icon md-font-icon="icon-reload"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-table-container>\n            <table md-table md-progress="vm.promise">\n                <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n                    <tr md-row>\n                        <th md-column md-order-by="id">ID</th>\n                        <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n                        <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n                        <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n                        <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n                        <th md-column width="10px"></th>\n                    </tr>\n                </thead>\n                <tbody md-body>\n                    <tr md-row ng-hide="vm.contacts.rows.length">\n                        <td md-cell colspan="10">\n                            <div layout="row" layout-align="center center">\n                                <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                            </div>\n                        </td>\n                    </tr>\n                    <tr md-row ng-repeat="contact in vm.contacts.rows">\n                        <td ng-click="vm.openContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n                        <td ng-click="vm.openContact($event, contact)" md-cell class="firstName">{{contact.firstName}} {{contact.lastName}}</td>\n                        <td ng-click="vm.openContact($event, contact)" md-cell class="phone">{{contact.phone}}</td>\n                        <td ng-click="vm.openContact($event, contact)" md-cell class="email">{{contact.email}}</td>\n                        <td ng-click="vm.openContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n                        <td md-cell class="actions">\n                            <md-menu>\n                                <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n                                    <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                </md-button>\n\n                                <md-menu-content width="3">\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.openContact($event, contact)" translate="DASHBOARDS.EDIT">\n                                            Edit Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.mergeContact($event, contact)" translate="DASHBOARDS.MERGE">\n                                            Merge Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                    <md-menu-item>\n                                        <md-button ng-click="vm.duplicateContact($event, contact)" translate="DASHBOARDS.DUPLICATE">\n                                            Duplicate Contact\n                                        </md-button>\n                                    </md-menu-item>\n                                </md-menu-content>\n                            </md-menu>\n                        </td>\n                    </tr>\n                </tbody>\n            </table>\n        </md-table-container>\n\n        <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n    </md-card>\n\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/recordings/agent.general.recordings.html",'<md-card>\n    <md-toolbar class="md-table-toolbar md-default">\n        <div class="md-toolbar-tools">\n            <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n            <div flex></div>\n        </div>\n    </md-toolbar>\n    <md-table-container>\n        <table md-table md-progress="vm.promise">\n            <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n                <tr md-row>\n                    <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n                    <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n                    <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n                    <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n                    <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n                    <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n                    <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n                    <th md-column md-order-by="audio">{{ \'VOICE.AUDIO\' | translate }}</th>\n                    <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n                    <th md-column width="10px"></th>\n                </tr>\n            </thead>\n            <tbody md-body>\n                <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n                    <td md-cell colspan="10">\n                        <div layout="row" layout-align="center center">\n                            <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                        </div>\n                    </td>\n                </tr>\n                <tr md-row ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n                    <td md-cell class="type ">{{voiceRecording.type}}</td>\n                    <td md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n                    <td md-cell class="calleridnum ">{{voiceRecording.calleridnum}}</td>\n                    <td md-cell class="exten ">{{voiceRecording.exten}}</td>\n                    <td md-cell class="connectedlinenum ">{{voiceRecording.connectedlinenum}}</td>\n                    <td md-cell class="queue ">{{voiceRecording.queue}}</td>\n                    <td md-cell class="rating ">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span></td>\n                    <td md-cell class="audio " ng-switch="voiceRecording.format">\n                        <audio controls ng-switch-when=".wav">\n                      <source ng-src="{{\'api/voice/recordings/\' + voiceRecording.id + \'/download\'}}" type="audio/wav" preload="none"></source> Your browser does not support the audio element.\n                     </audio>\n                        <span ng-switch-when=".gsm">\n                      <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n                     </span>\n                    </td>\n                    <td md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n                    <td md-cell class="actions">\n                        <md-menu>\n                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                            </md-button>\n\n                            <md-menu-content width="3">\n                                <md-menu-item>\n                                    <md-button ng-click="vm.downloadfile(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n                                        Download VoiceRecording\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </td>\n                </tr>\n            </tbody>\n        </table>\n    </md-table-container>\n\n    <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n    <div class="pb-16" layout="row" layout-align="start center">\n        <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n        <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_MOTION_BULL_STATS">Today Motion Bull STATS</div>\n    </div>\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-timelapse"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-52 line-height-72">\n                        {{vm.inbound.waiting || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-52 line-height-72">\n                        {{vm.inbound.talking || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TALKING\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TALKING_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TALKING\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-52 line-height-72">\n                        {{vm.inbound.answered || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.INBOUND_ANSWERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.INBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.INBOUND_ANSWERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-missed"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-52 line-height-72">\n                        {{vm.inbound.outboundDropCallsDayCallersExit || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ABANDONED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.inbound.outboundDropCallsDayTimeout || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROPPED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.DROPPED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.DROPPED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-dots"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.inbound.originated || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.ORIGINATED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ORIGINATED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-42 line-height-72">\n                        {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_TALK_TIME\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_TALK_TIME\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-42 line-height-72">\n                        {{ vm.inbound.outboundanswerRate || 0 |number : 1}}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.INBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.INBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.INBOUND_ANSWER_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-42 line-height-72">\n                        {{ vm.inbound.outboundAbandonRate || 0}}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDON_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-42 line-height-72">\n                        {{ vm.inbound.outboundDropRate }}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROP_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.DROP_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.DROP_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e\n\n\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n    <div class="pb-16" layout="row" layout-align="start center">\n        <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n        <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_IVR_CAMPAIGNS_STATS">Today IVR campaigns stats</div>\n    </div>\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-dots"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.ivr.originated || 0}}/{{vm.ivr.limitCalls || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}/{{\'DASHBOARDS.LIMITED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.LIMITED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ORIGINATEDLIMITED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET IVR --\x3e'),e.put("app/main/apps/dashboards/views/general/user/user.general.html",'<div id="dashboard-general" class="page-layout simple right-sidenav" layout="row">\n    \x3c!-- CENTER --\x3e\n    <div class="center" flex ms-scroll>\n        \x3c!-- CONTENT --\x3e\n        <div class="content">\n            \x3c!--  NOTE: aggoiungere nel controller ng-if="vm.hasPermission()" --\x3e\n            <md-tabs md-selected="vm.currentTab" ng-if="vm.hasPermission()" md-dynamic-height>\n                <md-tab label="{{\'DASHBOARDS.VOICE\' | translate}}" ui-sref="app.dashboards.general.voice">\n                    <div ui-view="voice"></div>\n                </md-tab>\n                <md-tab label="{{\'DASHBOARDS.MOTIONDIALER\' | translate}}" ui-sref="app.dashboards.general.dialer">\n                    <div ui-view="dialer"></div>\n                </md-tab>\n            </md-tabs>\n        </div>\n        \x3c!-- END CONTENT --\x3e\n\n        <md-card ng-if="!vm.hasPermission()">\n            <md-card-header>\n                <md-card-header-text>\n                    <span class="md-title" translate="DASHBOARDS.WELCOME_TO_MOTION">Welcome to Motion</span>\n                </md-card-header-text>\n            </md-card-header>\n            <md-card-title>\n                <md-card-title-text>\n                    <span class="md-headline" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through sections.</span>\n                </md-card-title-text>\n            </md-card-title>\n            <md-card-content>\n            </md-card-content>\n        </md-card>\n    </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n    <div class="pb-16" layout="row" layout-align="start center">\n        <md-icon md-font-icon="icon-phone-incoming" class="m-0 mr-16"></md-icon>\n        <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INBOUND_STATS">Today Inbound STATS</div>\n    </div>\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-timelapse"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-52 line-height-72">\n                        {{vm.inbound.waiting || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-52 line-height-72">\n                        {{vm.inbound.talking || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TALKING\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TALKING_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TALKING\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-52 line-height-72">\n                        {{vm.inbound.answered || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.INBOUND_ANSWERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.INBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.INBOUND_ANSWERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-missed"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-52 line-height-72">\n                        {{vm.inbound.abandoned || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ABANDONED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-incoming"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.inbound.total || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-timer-sand"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-42 line-height-72">\n                        {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-42 line-height-72">\n                        {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_TALK_TIME\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_TALK_TIME\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-42 line-height-72">\n                        {{ vm.inbound.answerRate || 0 }}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.INBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.INBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.INBOUND_ANSWER_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-42 line-height-72">\n                        {{ vm.inbound.abandonRate || 0 }}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDON_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-dots"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-52 line-height-72">\n                        {{vm.inbound.unmanaged || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e\n\n\x3c!-- WIDGET OUTBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n    <div class="pb-16" layout="row" layout-align="start center">\n        <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n        <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_OUTBOUND_STATS">Today Outbound STATS</div>\n    </div>\n    \x3c!-- WIDGET GROUP --\x3e\n    <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n        \x3c!-- WIDGET 1 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="light-blue-fg font-size-52 line-height-72">\n                        {{vm.outbound.total || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TOTAL\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 1 --\x3e\n\n        \x3c!-- WIDGET 2 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-phone"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="red-fg font-size-52 line-height-72">\n                        {{vm.outbound.answered || 0}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWERED\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.OUTBOUND_ANSWERED\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 2 --\x3e\n\n        \x3c!-- WIDGET 3 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-clock"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="orange-fg font-size-42 line-height-72">\n                        {{vm.outbound.sumDuration || 0 | secToTime | date:\'HH:mm:ss\'}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOT_DURATION\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TOT_DURATION_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.TOT_DURATION\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 3 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-division"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-grey-fg font-size-42 line-height-72">\n                        {{vm.outbound.total ? ((vm.outbound.sumDuration / vm.outbound.total) | number: 0) : 0 | secToTime | date:\'HH:mm:ss\'}}\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_DURATION\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_DURATION_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.AVG_DURATION\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n        \x3c!-- WIDGET 4 --\x3e\n        <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n            \x3c!-- Front --\x3e\n            <ms-widget-front class="grey-50-bg">\n                <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                    </md-button>\n                    <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n                        <md-icon md-font-icon="icon-percent"></md-icon>\n                    </md-button>\n                </div>\n\n                <div class="pt-8 pb-32" layout="column" layout-align="center center">\n                    <div class="blue-green-fg font-size-42 line-height-72">\n                        {{vm.outbound.total ? (vm.outbound.answered / vm.outbound.total * 100) : 0 | number: 1}}%\n                    </div>\n                    <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n                </div>\n\n                <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n                    <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n                </div>\n            </ms-widget-front>\n            \x3c!-- / Front --\x3e\n\n            \x3c!-- Back --\x3e\n            <ms-widget-back class="p-16 grey-50-bg">\n                <div class="flip-to-front">\n                    <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n                        <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n                    </md-button>\n                </div>\n\n                <div>\n                    {{\'DASHBOARDS.HELP.OUTBOUND_ANSWER_RATE\' | translate}}\n                </div>\n            </ms-widget-back>\n            \x3c!-- / Back --\x3e\n\n        </ms-widget>\n        \x3c!-- / WIDGET 4 --\x3e\n\n    </div>\n    \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e'),e.put("app/main/apps/fax/views/faxAccounts/create/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n    <form name="faxAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="FAX.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.faxAccount.name" required autofocus>\n                <div ng-messages="faxAccountForm.name.$error" ng-show="faxAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.TRUNK">trunk</label>\n                <md-select ng-model="vm.faxAccount.TrunkId" required>\n                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                </md-select>\n                <div ng-messages="faxAccountForm.TrunkId.$error" ng-show="faxAccountForm.TrunkId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.LOCALSTATIONID">localstationid</label>\n                <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" required>\n                <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n                <div ng-messages="faxAccountForm.localstationid.$error" ng-show="faxAccountForm.localstationid.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.faxAccount.description">\n                <div ng-messages="faxAccountForm.description.$error" ng-show="faxAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFaxAccount" ng-click="vm.saveFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid || faxAccountForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFaxAccount" ng-click="vm.addNewFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXACCOUNT" translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n                    ADD FAXACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFaxAccount" ng-click="vm.deleteFaxAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/faxDispositions/dialog.html",'<md-dialog class="faxDisposition-dialog" aria-label="New FaxDisposition">\n    <form name="faxDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="FAX.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.faxDisposition.name" required autofocus>\n                <div ng-messages="faxDispositionForm.name.$error" ng-show="faxDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFaxDisposition" ng-click="vm.saveFaxDisposition()" class="send-button md-accent md-raised" ng-disabled="faxDispositionForm.$invalid || faxDispositionForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFaxDisposition" ng-click="vm.addNewFaxDisposition()" class="send-button md-accent md-raised" ng-disabled="faxDispositionForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXDISPOSITION" translate-attr-aria-label="FAX.ADD_FAXDISPOSITION">\n                    ADD FAXDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFaxDisposition" ng-click="vm.deleteFaxDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/view.html",'<div id="fax-faxAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-faxAccounts-button md-icon-button" aria-label="Go to faxAccounts" ng-click="vm.gotoFaxAccounts()" translate translate-attr-aria-label="FAX.GO_TO_FAXACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="faxAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/faxAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.faxAccount.id}} {{vm.faxAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveFaxAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (faxDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"\n                translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.faxAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.HEADERINFO">headerinfo</label>\n                                <input type="text" name="headerinfo" ng-model="vm.faxAccount.headerinfo" required>\n                                <div class="hint"><span translate="FAX.HELP.HEADERINFO"></span></div>\n                                <div ng-messages="generalForm.headerinfo.$error" ng-show="generalForm.headerinfo.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.HEADERINFO_REQUIRED">headerinfo field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.TRUNK">trunk</label>\n                                <md-select ng-model="vm.faxAccount.TrunkId" required>\n                                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkId.$error" ng-show="generalForm.TrunkId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.LOCALSTATIONID">localstationid</label>\n                                <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" required>\n                                <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n                                <div ng-messages="generalForm.localstationid.$error" ng-show="generalForm.localstationid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.LIST">List</label>\n                                <md-select ng-model="vm.faxAccount.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.faxAccount.fidelity" aria-label="fidelity"><span translate="FAX.FIDELITY">fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.faxAccount.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.faxAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.faxAccount.ecm" aria-label="ECM"><span translate="FAX.ECM">ECM</span></md-switch>\n                                <div class="hint"><span translate="FAX.HELP.ECM"></span></div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.MINRATE">minrate</label>\n                                <md-select ng-model="vm.faxAccount.minrate" required>\n                                    <md-option ng-value="\'2400\'">2400</md-option>\n                                    <md-option ng-value="\'4800\'">4800</md-option>\n                                    <md-option ng-value="\'7200\'">7200</md-option>\n                                    <md-option ng-value="\'9600\'">9600</md-option>\n                                    <md-option ng-value="\'12000\'">12000</md-option>\n                                    <md-option ng-value="\'14400\'">14400</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="FAX.HELP.MINRATE"></span></div>\n                                <div ng-messages="advancedForm.minrate.$error" ng-show="advancedForm.minrate.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.MINRATE_REQUIRED">minrate field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.MAXRATE">maxrate</label>\n                                <md-select ng-model="vm.faxAccount.maxrate" required>\n                                    <md-option ng-value="\'2400\'">2400</md-option>\n                                    <md-option ng-value="\'4800\'">4800</md-option>\n                                    <md-option ng-value="\'7200\'">7200</md-option>\n                                    <md-option ng-value="\'9600\'">9600</md-option>\n                                    <md-option ng-value="\'12000\'">12000</md-option>\n                                    <md-option ng-value="\'14400\'">14400</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="FAX.HELP.MAXRATE"></span></div>\n                                <div ng-messages="advancedForm.maxrate.$error" ng-show="advancedForm.maxrate.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.MAXRATE_REQUIRED">maxrate field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.MODEM">modem</label>\n                                <input type="text" name="modem" ng-model="vm.faxAccount.modem" required>\n                                <div class="hint"><span translate="FAX.HELP.MODEM"></span></div>\n                                <div ng-messages="advancedForm.modem.$error" ng-show="advancedForm.modem.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.MODEM_REQUIRED">modem field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.GATEWAY">gateway</label>\n                                <input type="text" name="gateway" ng-model="vm.faxAccount.gateway" required>\n                                <div class="hint"><span translate="FAX.HELP.GATEWAY"></span></div>\n                                <div ng-messages="advancedForm.gateway.$error" ng-show="advancedForm.gateway.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.GATEWAY_REQUIRED">gateway field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.FAXDETECT">faxdetect</label>\n                                <input type="text" name="faxdetect" ng-model="vm.faxAccount.faxdetect" required>\n                                <div class="hint"><span translate="FAX.HELP.FAXDETECT"></span></div>\n                                <div ng-messages="advancedForm.faxdetect.$error" ng-show="advancedForm.faxdetect.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.FAXDETECT_REQUIRED">faxdetect field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.T38TIMEOUT">t38timeout</label>\n                                <input type="number" name="t38timeout" ng-model="vm.faxAccount.t38timeout" required>\n                                <div class="hint"><span translate="FAX.HELP.T38TIMEOUT"></span></div>\n                                <div ng-messages="advancedForm.t38timeout.$error" ng-show="advancedForm.t38timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.T38TIMEOUT_REQUIRED">t38timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.SIP">SIP</label>\n                                <md-select ng-model="vm.faxAccount.tech" required>\n                                    <md-option ng-value="\'SIP\'">SIP</md-option>\n                                    <md-option ng-value="\'IAX\'">IAX</md-option>\n                                    <md-option ng-value="\'DADHI\'">DADHI</md-option>\n                                    <md-option ng-value="\'KHOMP\'">KHOMP</md-option>\n                                </md-select>\n                                <div ng-messages="advancedForm.tech.$error" ng-show="advancedForm.tech.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.SIP_REQUIRED">SIP field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container faxdispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="FaxAccountFaxDispositionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountFaxDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="FAX.FAXDISPOSITIONS">FaxDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event)" aria-label="add faxDisposition" translate translate-attr-label="FAX.ADD_FAXDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedFaxAccountFaxDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedFaxAccountFaxDispositions.length}} {{vm_dc.selectedFaxAccountFaxDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountFaxDispositions($event)" aria-label="delete selected" translate translate-attr-label="FAXACCOUNTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedFaxAccountFaxDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getFaxAccountFaxDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'FAX.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="faxDisposition" md-select-id="id" ng-repeat="faxDisposition in vm_dc.faxAccountFaxDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event, faxDisposition)" md-cell>{{faxDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event, faxDisposition)" md-cell>{{faxDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event, faxDisposition)" md-cell>{{faxDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditFaxAccountFaxDisposition($event, faxDisposition)" translate="FAX.EDIT_FAXDISPOSITION">\n                                                                Edit FaxDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(faxDisposition, $event)" translate="FAX.DELETE_FAXDISPOSITION">\n                                                                Delete FaxDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.faxAccountFaxDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="FAX.NO_FAXDISPOSITION_AVAILABLE">No faxdisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.faxAccountFaxDispositions.count}}" md-on-paginate="vm_dc.getFaxAccountFaxDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.faxAccount.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.faxAccount.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="FAX.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="faxAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.faxAccount.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.faxAccount.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="FAX.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="faxAccount-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.faxAccount.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.faxAccount.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="FAX.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxAccounts/faxAccounts.html",'<div id="faxAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="FAX.FAXACCOUNTS">FaxAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedFaxAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedFaxAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="FAX.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-faxAccounts-count">\n                    <span>{{vm.selectedFaxAccounts.length}}</span>\n                <span translate="FAX.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAXACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllFaxAccounts()" translate="FAX.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectFaxAccounts()" translate="FAX.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedFaxAccounts" filename="faxAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedFaxAccounts($event)" aria-label="delete selected" translate translate-attr-label="FAXACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- FAXACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedFaxAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n                                <th md-column md-order-by="TrunkId">{{ \'FAX.TRUNK\' | translate }}</th>\n                                <th md-column md-order-by="localstationid">{{ \'FAX.LOCALSTATIONID\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.faxAccounts.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="faxAccount" md-select-id="id" ng-repeat="faxAccount in vm.faxAccounts.rows">\n                                <td md-cell ng-if="faxAccount.userpic"><img class="avatar" alt="{{faxAccount.name}}" ng-src="api/users/{{faxAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!faxAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="id ">{{faxAccount.id}}</td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="name ">{{faxAccount.name}}</td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="TrunkId ">{{ TrunkId = vm.trunks[faxAccount.TrunkId]; TrunkId.name }}</td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="localstationid ">{{faxAccount.localstationid}}</td>\n                                <td ng-click="vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="description ">{{faxAccount.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(faxAccount, $event)" translate="FAX.EDIT_FAXACCOUNT">\n                                                    Edit FaxAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(faxAccount, $event)" translate="FAX.DELETE_FAXACCOUNT">\n                                                    Delete FaxAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.faxAccounts.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / FAXACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD FAXACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-faxAccount-button" ng-click="vm.createOrEditFaxAccount($event)" aria-label="add faxAccount" translate translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD FAXACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/fax/views/faxQueues/create/dialog.html",'<md-dialog class="faxQueue-dialog" aria-label="New FaxQueue">\n    <form name="faxQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="FAX.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="faxQueueForm.name.$error" ng-show="faxQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.faxQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="faxQueueForm.strategy.$error" ng-show="faxQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" required>\n                <div ng-messages="faxQueueForm.timeout.$error" ng-show="faxQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="FAX.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.faxQueue.description">\n                <div ng-messages="faxQueueForm.description.$error" ng-show="faxQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFaxQueue" ng-click="vm.saveFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid || faxQueueForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFaxQueue" ng-click="vm.addNewFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXQUEUE" translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n                    ADD FAXQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFaxQueue" ng-click="vm.deleteFaxQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue">\n    <form name="faxQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="FAX.TEAMADD_FAXQUEUE">Add Team in FAXQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="FAX.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="faxQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/view.html",'<div id="fax-faxQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-faxQueues-button md-icon-button" aria-label="Go to faxQueues" ng-click="vm.gotoFaxQueues()" translate translate-attr-aria-label="FAX.GO_TO_FAXQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="faxQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/faxQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.faxQueue.id}} {{vm.faxQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.faxQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="FAX.TEAMADD_FAXQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveFaxQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="FAX.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="faxQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.faxQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="FAX.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.faxQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxQueues/faxQueues.html",'<div id="faxQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="FAX.FAXQUEUES">FaxQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedFaxQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedFaxQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="FAX.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-faxQueues-count">\n                    <span>{{vm.selectedFaxQueues.length}}</span>\n                <span translate="FAX.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAXQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllFaxQueues()" translate="FAX.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectFaxQueues()" translate="FAX.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedFaxQueues" filename="faxQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedFaxQueues($event)" aria-label="delete selected" translate translate-attr-label="FAXQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- FAXQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedFaxQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'FAX.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.faxQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="faxQueue" md-select-id="id" ng-repeat="faxQueue in vm.faxQueues.rows">\n                                <td md-cell ng-if="faxQueue.userpic"><img class="avatar" alt="{{faxQueue.name}}" ng-src="api/users/{{faxQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!faxQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="id ">{{faxQueue.id}}</td>\n                                <td ng-click="vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="name ">{{faxQueue.name}}</td>\n                                <td ng-click="vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="strategy ">{{ vm.arraystrategy[faxQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(faxQueue, $event)" translate="FAX.EDIT_FAXQUEUE">\n                                                    Edit FaxQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(faxQueue, $event)" translate="FAX.DELETE_FAXQUEUE">\n                                                    Delete FaxQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.faxQueues.count}}" md-on-paginate="vm.getFaxQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / FAXQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD FAXQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-faxQueue-button" ng-click="vm.createOrEditFaxQueue($event)" aria-label="add faxQueue" translate translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD FAXQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/help/views/about/about.html",'<div id="maintenance" class="flex-scrollable" layout="column" ms-scroll>\n    <div id="maintenance-form-wrapper" layout="column" layout-align="center center">\n        <div id="maintenance-form" class="md-whiteframe-8dp">\n            <div>\n                <img src="assets/images/logos/login.png" alt="motion_logo_login" />\n            </div>\n\n            <br>\n\n            <div>\n                <div class="info-line">\n                    <div class="title">Useful pages</div>\n                </div>\n                <section layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                    <div layout="column">\n                        <a class="md-fab md-mini md-button grey-bg" href="https://wiki.xcallymotion.com/display/XMD/Welcome" target="_blank">\n                            <md-icon md-font-icon="icon-wikipedia"></md-icon>\n                        </a>\n                        <div class="info"><a href="https://wiki.xcallymotion.com/display/XMD/Welcome" target="_blank">Wiki</a></div>\n                    </div>\n\n                    <div layout="column">\n                        <a class="md-fab md-mini md-button md-accent" href="/apidoc" target="_blank">\n                            <md-icon md-font-icon="icon-apple-mobileme"></md-icon>\n                        </a>\n                        <div class="info"><a href="/apidoc" target="_blank">API</a></div>\n                    </div>\n\n                    <div layout="column">\n                        <a class="md-fab md-mini md-button orange-bg" href="http://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">\n                            <md-icon md-font-icon="icon-headphones"></md-icon>\n                        </a>\n                        <div class="info"><a href="http://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">Phonebar</a></div>\n                    </div>\n\n                    <div layout="column">\n                        <a class="md-fab md-mini md-button green-bg" href="/demo" target="_blank">\n                            <md-icon md-font-icon="icon-console"></md-icon>\n                        </a>\n                        <div class="info"><a href="/demo" target="_blank">Demo</a></div>\n                    </div>\n\n                </section>\n\n                <br>\n\n                <div class="info-line">\n                    <div class="title">Follow us on</div>\n                </div>\n                <section layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                    <a class="md-fab md-mini md-button blue-900-bg" href="https://www.facebook.com/xcallymotion" target="_blank">\n                        <md-icon md-font-icon="icon-facebook"></md-icon>\n                    </a>\n\n                    <a class="md-fab md-mini md-button" href="https://twitter.com/xcallymotion" target="_blank">\n                        <md-icon md-font-icon="icon-twitter"></md-icon>\n                    </a>\n                    <a class="md-fab md-mini md-button md-warn" href="https://plus.google.com/+Xcally" target="_blank">\n                        <md-icon md-font-icon="icon-google-plus"></md-icon>\n                    </a>\n                    <a class="md-fab md-mini md-button light-blue-800-bg" href="https://www.linkedin.com/company/xcally" target="_blank">\n                        <md-icon md-font-icon="icon-linkedin"></md-icon>\n                    </a>\n                </section>\n\n                <br>\n\n                <div class="info-line">\n                    <div class="title" translate="HELP.CONTACT_US">Contact Us</div>\n                </div>\n                <div class="info-line">\n                    <div class="info"><a href="mailto:support@xcally.com" target="_top">support@xcally.com</a></div>\n                </div>\n\n                <br>\n\n                <div class="info">xCALLY Motion <u>{{vm.info.current}}</u> | <a href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.info.current}}" target="_blank">Changelog</a></div>\n\n                <br>\n\n                <div class="info">xCALLY© 2016 - 2018 | Powered by Xenialab | <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">EULA</a></div>\n\n                <br>\n\n                <div class="info"><a href="https://www.xenialab.com/" target="_blank">www.xenialab.com</a> | <a href="https://www.xcallymotion.com/" target="_blank">www.xcallymotion.com</a></div>\n            </div>\n        </div>\n    </div>\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",'<md-dialog class="freshdeskAccount-dialog" aria-label="New FreshdeskAccount">\n    <form name="freshdeskAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.freshdeskAccount.name" required autofocus>\n                <div ng-messages="freshdeskAccountForm.name.$error" ng-show="freshdeskAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                <input type="text" name="username" ng-model="vm.freshdeskAccount.username" required>\n                <div ng-messages="freshdeskAccountForm.username.$error" ng-show="freshdeskAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.URI">Uri</label>\n                <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" required>\n                <div ng-messages="freshdeskAccountForm.remoteUri.$error" ng-show="freshdeskAccountForm.remoteUri.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n                <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" required>\n                <div ng-messages="freshdeskAccountForm.apiKey.$error" ng-show="freshdeskAccountForm.apiKey.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl">\n                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                <div ng-messages="freshdeskAccountForm.serverUrl.$error" ng-show="freshdeskAccountForm.serverUrl.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.freshdeskAccount.description">\n                <div ng-messages="freshdeskAccountForm.description.$error" ng-show="freshdeskAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFreshdeskAccount" ng-click="vm.saveFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid || freshdeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFreshdeskAccount" ng-click="vm.addNewFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n                    ADD FRESHDESKACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFreshdeskAccount" ng-click="vm.deleteFreshdeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",'<md-dialog class="freshdeskConfiguration-dialog" aria-label="New FreshdeskConfiguration">\n    <form name="freshdeskConfigurationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.freshdeskConfiguration.name" required autofocus>\n                <div ng-messages="freshdeskConfigurationForm.name.$error" ng-show="freshdeskConfigurationForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.freshdeskConfiguration.channel" required>\n\n                    <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="freshdeskConfigurationForm.channel.$error" ng-show="freshdeskConfigurationForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.TYPE">Type</label>\n                <md-select ng-model="vm.freshdeskConfiguration.type" required>\n\n                    <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="freshdeskConfigurationForm.type.$error" ng-show="freshdeskConfigurationForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newFreshdeskConfiguration" ng-click="vm.saveFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid || freshdeskConfigurationForm.$pristine" aria-label="SAVE"\n                    translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newFreshdeskConfiguration" ng-click="vm.addNewFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION"\n                    translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION">\n                    ADD FRESHDESKCONFIGURATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newFreshdeskConfiguration" ng-click="vm.deleteFreshdeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",'<md-dialog class="freshdeskAccount-item-dialog" aria-label="New Item">\n    <form name="freshdeskAccountItemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div ng-switch="vm.type">\n                <div ng-switch-when="subject">\n                    \x3c!-- SUBJECT SECTION --\x3e\n                    <div ng-include="\'/subject.html\'"></div>\n                    \x3c!-- / SUBJECT SECTION --\x3e\n                </div>\n                <div ng-switch-when="description">\n                    \x3c!-- DESCRIPTION SECTION --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="INTEGRATIONS.TYPE">Type</label>\n                        <md-select name="type" ng-model="vm.item.type" required>\n                            <md-option value="string">String</md-option>\n                            <md-option value="keyValue">Key Value</md-option>\n                        </md-select>\n                        <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n                        <label translate="INTEGRATIONS.CONTENT">Content</label>\n                        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n                        <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <div ng-if="vm.item.type == \'keyValue\'">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.KEY">Key</label>\n                            <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n                            <div ng-messages="freshdeskAccountItemForm.key.$error" ng-show="freshdeskAccountItemForm.key.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.TYPE">Type</label>\n                            <md-select name="keyType" ng-model="vm.item.keyType" required>\n                                <md-option value="string">String</md-option>\n                                <md-option value="variable">Variable</md-option>\n                                <md-option value="customVariable">Custom Variable</md-option>\n                            </md-select>\n                            <div ng-messages="freshdeskAccountItemForm.keyType.$error" ng-show="freshdeskAccountItemForm.keyType.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n                            <label translate="INTEGRATIONS.CONTENT">Content</label>\n                            <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n                            <div ng-messages="freshdeskAccountItemForm.keyContent.$error" ng-show="freshdeskAccountItemForm.keyContent.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n                                <md-optgroup label="Voice: Queue">\n                                    <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Voice: Outbound">\n                                    <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select ng-model="vm.item.VariableId" required>\n                                <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n                            </md-select>\n                        </md-input-container>\n                    </div>\n                    \x3c!-- / DESCRIPTION SECTION --\x3e\n                </div>\n                <div ng-switch-when="field">\n                    \x3c!-- FIELD SECTION --\x3e\n                    <div ng-if="vm.accountConnected">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.FIELD">FIELD</label>\n                            <md-select name="customField" ng-model="vm.customField" required>\n                                <md-optgroup label="Standard">\n                                    <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Custom">\n                                    <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="freshdeskAccountItemForm.customField.$error" ng-show="freshdeskAccountItemForm.customField.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- CUSTOM FIELD --\x3e\n                        <div ng-if="vm.customField && vm.customField.custom" ng-include="\'/subject.html\'"></div>\n                        \x3c!-- / CUSTOM FIELD --\x3e\n                        \x3c!-- STANDARD FIELD --\x3e\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="option" ng-model="vm.item.content" required>\n                                <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n                            </md-select>\n                            <div ng-messages="freshdeskAccountItemForm.option.$error" ng-show="freshdeskAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && !vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <input type="text" name="option" ng-model="vm.item.content" required>\n                            <div ng-messages="freshdeskAccountItemForm.option.$error" ng-show="freshdeskAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- / STANDARD FIELD --\x3e\n                    </div>\n                    <div ng-if="!vm.accountConnected">\n                        <p>Account is not connected. Please check your configurations!</p>\n                    </div>\n                    \x3c!-- / FIELD SECTION --\x3e\n                </div>\n                <div ng-switch-default>\n                    <p>No Item</p>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n                    ADD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/subject.html">\n    <md-input-container class="md-block">\n        <label translate="INTEGRATIONS.TYPE">Type</label>\n        <md-select name="type" ng-model="vm.item.type" required>\n            <md-option value="string">String</md-option>\n            <md-option value="variable">Variable</md-option>\n            <md-option value="customVariable">Custom Variable</md-option>\n        </md-select>\n        <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n        <label translate="INTEGRATIONS.CONTENT">Content</label>\n        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n        <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n            <md-optgroup label="Voice: Queue">\n                <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n            </md-optgroup>\n            <md-optgroup label="Voice: Outbound">\n                <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n            </md-optgroup>\n        </md-select>\n        <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select ng-model="vm.item.VariableId" required>\n            <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n        </md-select>\n    </md-input-container>\n<\/script>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",'<div id="integrations-freshdeskAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-freshdeskAccounts-button md-icon-button" aria-label="Go to freshdeskAccounts" ng-click="vm.gotoFreshdeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHDESKACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="freshdeskAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/freshdeskAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.freshdeskAccount.id}} {{vm.freshdeskAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshdeskAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="freshdeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.freshdeskAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                                <input type="text" name="username" ng-model="vm.freshdeskAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.URI">Uri</label>\n                                <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" required>\n                                <div ng-messages="generalForm.remoteUri.$error" ng-show="generalForm.remoteUri.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n                                <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" required>\n                                <div ng-messages="generalForm.apiKey.$error" ng-show="generalForm.apiKey.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                                <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl">\n                                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                                <div ng-messages="generalForm.serverUrl.$error" ng-show="generalForm.serverUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.freshdeskAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="freshdeskAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n                        </div>\n                        <div ng-controller="FreshdeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshdeskAccount)" layout="row">\n                            <md-card class="md-whiteframe-1dp" flex="30">\n                                <div layout="row" layout-align="center center">\n                                    <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n                                    <md-button flex="25" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" class="md-icon-button" aria-label="create freshdeskConfiguration">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                                <md-list>\n                                    <md-list-item layout="row" layout-align="center center" ng-repeat="freshdeskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshdeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshdeskConfiguration($index)">\n                                        <span class="text-truncate" flex="80">{{ freshdeskConfiguration.name }}</span>\n                                        <md-menu>\n                                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                            </md-button>\n                                            <md-menu-content width="3">\n                                                <md-menu-item>\n                                                    <md-button ng-click="vm_cc.deleteFreshdeskConfiguration($event, freshdeskConfiguration)" translate="INTEGRATIONS.DELETE_FRESHDESKCONFIGURATION">\n                                                        Delete FreshdeskConfiguration\n                                                    </md-button>\n                                                </md-menu-item>\n                                            </md-menu-content>\n                                        </md-menu>\n                                    </md-list-item>\n                                </md-list>\n                            </md-card>\n                            <div flex></div>\n                            <md-card class="md-whiteframe-1dp" flex="65">\n                                <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n                                                                <span ng-if="subject.FieldId">{{subject.nameField}}</span>\n                                                                <span ng-if="!subject.FieldId">{{subject.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n                                                                <span ng-switch-when="string">{{subject.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{subject.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{subject.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{subject.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n                                                                                Edit Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n                                                                                Delete Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n                                                                <span ng-if="description.FieldId">{{description.nameField}}</span>\n                                                                <span ng-if="!description.FieldId">{{description.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n                                                                <span ng-switch-when="string">{{description.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{description.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{description.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{description.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n                                                                                Edit Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n                                                                                Delete Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n                                                                <span ng-if="field.FieldId">{{field.nameField}}</span>\n                                                                <span ng-if="!field.FieldId">{{field.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n                                                                <span ng-switch-when="string">{{field.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{field.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{field.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{field.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n                                                                                Edit Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n                                                                                Delete Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.TAGS">TAGS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-table-container class="md-whiteframe-1dp padding-20">\n                                                <md-input-container class="md-block">\n                                                    <label translate="INTEGRATIONS.TAGS">Tags</label>\n                                                    <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n                                                        <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n                                                    </md-select>\n                                                </md-input-container>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n                                </md-tabs>\n                                <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                                    <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n                                        <md-button class="md-icon-button">\n                                            <md-icon md-font-icon="icon-plus"></md-icon>\n                                        </md-button>\n                                        <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n                                    </div>\n                                </div>\n                            </md-card>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",'<div id="freshdeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="INTEGRATIONS.FRESHDESKACCOUNTS">FreshdeskAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedFreshdeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedFreshdeskAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="INTEGRATIONS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-freshdeskAccounts-count">\n                    <span>{{vm.selectedFreshdeskAccounts.length}}</span>\n                <span translate="INTEGRATIONS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FRESHDESKACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedFreshdeskAccounts" filename="freshdeskAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedFreshdeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="FRESHDESKACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- FRESHDESKACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedFreshdeskAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshdeskAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.freshdeskAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="freshdeskAccount" md-select-id="id" ng-repeat="freshdeskAccount in vm.freshdeskAccounts.rows">\n                                <td md-cell ng-if="freshdeskAccount.userpic"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="api/users/{{freshdeskAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!freshdeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="id ">{{freshdeskAccount.id}}</td>\n                                <td ng-click="vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="name ">{{freshdeskAccount.name}}</td>\n                                <td ng-click="vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="username ">{{freshdeskAccount.username}}</td>\n                                <td ng-click="vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="remoteUri ">{{freshdeskAccount.remoteUri}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(freshdeskAccount, $event)" translate="INTEGRATIONS.EDIT_FRESHDESKACCOUNT">\n                                                    Edit FreshdeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.testtestintegrationaccount(freshdeskAccount, $event)" translate="INTEGRATIONS.TEST_FRESHDESKACCOUNT">\n                                                    Test FreshdeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(freshdeskAccount, $event)" translate="INTEGRATIONS.DELETE_FRESHDESKACCOUNT">\n                                                    Delete FreshdeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.freshdeskAccounts.count}}" md-on-paginate="vm.getFreshdeskAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / FRESHDESKACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD FRESHDESKACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-freshdeskAccount-button" ng-click="vm.createOrEditFreshdeskAccount($event)" aria-label="add freshdeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD FRESHDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",'<md-dialog class="salesforceAccount-dialog" aria-label="New SalesforceAccount">\n    <form name="salesforceAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.salesforceAccount.name" required autofocus>\n                <div ng-messages="salesforceAccountForm.name.$error" ng-show="salesforceAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                <input type="text" name="username" ng-model="vm.salesforceAccount.username" required>\n                <div ng-messages="salesforceAccountForm.username.$error" ng-show="salesforceAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.URI">Uri</label>\n                <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" required>\n                <div ng-messages="salesforceAccountForm.remoteUri.$error" ng-show="salesforceAccountForm.remoteUri.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                <div ng-messages="salesforceAccountForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newSalesforceAccount ">\n                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="salesforceAccountForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n                <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" required>\n                <div ng-messages="salesforceAccountForm.clientId.$error" ng-show="salesforceAccountForm.clientId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n                <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" required>\n                <div ng-messages="salesforceAccountForm.clientSecret.$error" ng-show="salesforceAccountForm.clientSecret.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n                <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" required>\n                <div ng-messages="salesforceAccountForm.securityToken.$error" ng-show="salesforceAccountForm.securityToken.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl">\n                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                <div ng-messages="salesforceAccountForm.serverUrl.$error" ng-show="salesforceAccountForm.serverUrl.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.salesforceAccount.description">\n                <div ng-messages="salesforceAccountForm.description.$error" ng-show="salesforceAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSalesforceAccount" ng-click="vm.saveSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid || salesforceAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSalesforceAccount" ng-click="vm.addNewSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCEACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n                    ADD SALESFORCEACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSalesforceAccount" ng-click="vm.deleteSalesforceAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",'<md-dialog class="salesforceConfiguration-dialog" aria-label="New SalesforceConfiguration">\n    <form name="salesforceConfigurationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.salesforceConfiguration.name" required autofocus>\n                <div ng-messages="salesforceConfigurationForm.name.$error" ng-show="salesforceConfigurationForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.salesforceConfiguration.channel" required>\n\n                    <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="salesforceConfigurationForm.channel.$error" ng-show="salesforceConfigurationForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.TYPE">Type</label>\n                <md-select ng-model="vm.salesforceConfiguration.type" required>\n\n                    <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="salesforceConfigurationForm.type.$error" ng-show="salesforceConfigurationForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSalesforceConfiguration" ng-click="vm.saveSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid || salesforceConfigurationForm.$pristine" aria-label="SAVE"\n                    translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSalesforceConfiguration" ng-click="vm.addNewSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCECONFIGURATION"\n                    translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCECONFIGURATION">\n                    ADD SALESFORCECONFIGURATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSalesforceConfiguration" ng-click="vm.deleteSalesforceConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",'<md-dialog class="salesforceAccount-item-dialog" aria-label="New Item">\n    <form name="salesforceAccountItemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div ng-switch="vm.type">\n                <div ng-switch-when="subject">\n                    \x3c!-- SUBJECT SECTION --\x3e\n                    <div ng-include="\'/subject.html\'"></div>\n                    \x3c!-- / SUBJECT SECTION --\x3e\n                </div>\n                <div ng-switch-when="description">\n                    \x3c!-- DESCRIPTION SECTION --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="INTEGRATIONS.TYPE">Type</label>\n                        <md-select name="type" ng-model="vm.item.type" required>\n                            <md-option value="string">String</md-option>\n                            <md-option value="keyValue">Key Value</md-option>\n                        </md-select>\n                        <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n                        <label translate="INTEGRATIONS.CONTENT">Content</label>\n                        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n                        <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <div ng-if="vm.item.type == \'keyValue\'">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.KEY">Key</label>\n                            <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n                            <div ng-messages="salesforceAccountItemForm.key.$error" ng-show="salesforceAccountItemForm.key.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.TYPE">Type</label>\n                            <md-select name="keyType" ng-model="vm.item.keyType" required>\n                                <md-option value="string">String</md-option>\n                                <md-option value="variable">Variable</md-option>\n                                <md-option value="customVariable">Custom Variable</md-option>\n                            </md-select>\n                            <div ng-messages="salesforceAccountItemForm.keyType.$error" ng-show="salesforceAccountItemForm.keyType.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n                            <label translate="INTEGRATIONS.CONTENT">Content</label>\n                            <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n                            <div ng-messages="salesforceAccountItemForm.keyContent.$error" ng-show="salesforceAccountItemForm.keyContent.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n                                <md-optgroup label="Voice: Queue">\n                                    <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Voice: Outbound">\n                                    <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select ng-model="vm.item.VariableId" required>\n                                <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n                            </md-select>\n                        </md-input-container>\n                    </div>\n                    \x3c!-- / DESCRIPTION SECTION --\x3e\n                </div>\n                <div ng-switch-when="field">\n                    \x3c!-- FIELD SECTION --\x3e\n                    <div ng-if="vm.accountConnected">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.FIELD">FIELD</label>\n                            <md-select name="customField" ng-model="vm.customField" required>\n                                <md-optgroup label="Standard">\n                                    <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Custom">\n                                    <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="salesforceAccountItemForm.customField.$error" ng-show="salesforceAccountItemForm.customField.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- CUSTOM FIELD --\x3e\n                        <div ng-if="vm.customField && vm.customField.custom" ng-include="\'/subject.html\'"></div>\n                        \x3c!-- / CUSTOM FIELD --\x3e\n                        \x3c!-- STANDARD FIELD --\x3e\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="option" ng-model="vm.item.content" required>\n                                <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n                            </md-select>\n                            <div ng-messages="salesforceAccountItemForm.option.$error" ng-show="salesforceAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && !vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <input type="text" name="option" ng-model="vm.item.content" required>\n                            <div ng-messages="salesforceAccountItemForm.option.$error" ng-show="salesforceAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- / STANDARD FIELD --\x3e\n                    </div>\n                    <div ng-if="!vm.accountConnected">\n                        <p>Account is not connected. Please check your configurations!</p>\n                    </div>\n                    \x3c!-- / FIELD SECTION --\x3e\n                </div>\n                <div ng-switch-default>\n                    <p>No Item</p>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n                    ADD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/subject.html">\n    <md-input-container class="md-block">\n        <label translate="INTEGRATIONS.TYPE">Type</label>\n        <md-select name="type" ng-model="vm.item.type" required>\n            <md-option value="string">String</md-option>\n            <md-option value="variable">Variable</md-option>\n            <md-option value="customVariable">Custom Variable</md-option>\n        </md-select>\n        <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n        <label translate="INTEGRATIONS.CONTENT">Content</label>\n        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n        <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n            <md-optgroup label="Voice: Queue">\n                <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n            </md-optgroup>\n            <md-optgroup label="Voice: Outbound">\n                <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n            </md-optgroup>\n        </md-select>\n        <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select ng-model="vm.item.VariableId" required>\n            <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n        </md-select>\n    </md-input-container>\n<\/script>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/view.html",'<div id="integrations-salesforceAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-salesforceAccounts-button md-icon-button" aria-label="Go to salesforceAccounts" ng-click="vm.gotoSalesforceAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SALESFORCEACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="salesforceAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/salesforceAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.salesforceAccount.id}} {{vm.salesforceAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.salesforceAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="salesforceAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.salesforceAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                                <input type="text" name="username" ng-model="vm.salesforceAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.URI">Uri</label>\n                                <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" required>\n                                <div ng-messages="generalForm.remoteUri.$error" ng-show="generalForm.remoteUri.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newSalesforceAccount ">\n                                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n                                <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" required>\n                                <div ng-messages="generalForm.clientId.$error" ng-show="generalForm.clientId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n                                <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" required>\n                                <div ng-messages="generalForm.clientSecret.$error" ng-show="generalForm.clientSecret.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n                                <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" required>\n                                <div ng-messages="generalForm.securityToken.$error" ng-show="generalForm.securityToken.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                                <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl">\n                                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                                <div ng-messages="generalForm.serverUrl.$error" ng-show="generalForm.serverUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.salesforceAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="salesforceAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n                        </div>\n                        <div ng-controller="SalesforceAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.salesforceAccount)" layout="row">\n                            <md-card class="md-whiteframe-1dp" flex="30">\n                                <div layout="row" layout-align="center center">\n                                    <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n                                    <md-button flex="25" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" class="md-icon-button" aria-label="create salesforceConfiguration">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                                <md-list>\n                                    <md-list-item layout="row" layout-align="center center" ng-repeat="salesforceConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSalesforceConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSalesforceConfiguration($index)">\n                                        <span class="text-truncate" flex="80">{{ salesforceConfiguration.name }}</span>\n                                        <md-menu>\n                                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                            </md-button>\n                                            <md-menu-content width="3">\n                                                <md-menu-item>\n                                                    <md-button ng-click="vm_cc.deleteSalesforceConfiguration($event, salesforceConfiguration)" translate="INTEGRATIONS.DELETE_SALESFORCECONFIGURATION">\n                                                        Delete SalesforceConfiguration\n                                                    </md-button>\n                                                </md-menu-item>\n                                            </md-menu-content>\n                                        </md-menu>\n                                    </md-list-item>\n                                </md-list>\n                            </md-card>\n                            <div flex></div>\n                            <md-card class="md-whiteframe-1dp" flex="65">\n                                <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n                                                                <span ng-if="subject.FieldId">{{subject.nameField}}</span>\n                                                                <span ng-if="!subject.FieldId">{{subject.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n                                                                <span ng-switch-when="string">{{subject.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{subject.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{subject.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{subject.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n                                                                                Edit Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n                                                                                Delete Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n                                                                <span ng-if="description.FieldId">{{description.nameField}}</span>\n                                                                <span ng-if="!description.FieldId">{{description.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n                                                                <span ng-switch-when="string">{{description.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{description.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{description.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{description.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n                                                                                Edit Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n                                                                                Delete Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n                                                                <span ng-if="field.FieldId">{{field.nameField}}</span>\n                                                                <span ng-if="!field.FieldId">{{field.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n                                                                <span ng-switch-when="string">{{field.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{field.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{field.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{field.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n                                                                                Edit Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n                                                                                Delete Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                </md-tabs>\n                                <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                                    <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n                                        <md-button class="md-icon-button">\n                                            <md-icon md-font-icon="icon-plus"></md-icon>\n                                        </md-button>\n                                        <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n                                    </div>\n                                </div>\n                            </md-card>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",'<div id="salesforceAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="INTEGRATIONS.SALESFORCEACCOUNTS">SalesforceAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSalesforceAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSalesforceAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="INTEGRATIONS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-salesforceAccounts-count">\n                    <span>{{vm.selectedSalesforceAccounts.length}}</span>\n                <span translate="INTEGRATIONS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SALESFORCEACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSalesforceAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSalesforceAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSalesforceAccounts" filename="salesforceAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSalesforceAccounts($event)" aria-label="delete selected" translate translate-attr-label="SALESFORCEACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SALESFORCEACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSalesforceAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSalesforceAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.salesforceAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="salesforceAccount" md-select-id="id" ng-repeat="salesforceAccount in vm.salesforceAccounts.rows">\n                                <td md-cell ng-if="salesforceAccount.userpic"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="api/users/{{salesforceAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!salesforceAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="id ">{{salesforceAccount.id}}</td>\n                                <td ng-click="vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="name ">{{salesforceAccount.name}}</td>\n                                <td ng-click="vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="username ">{{salesforceAccount.username}}</td>\n                                <td ng-click="vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="remoteUri ">{{salesforceAccount.remoteUri}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(salesforceAccount, $event)" translate="INTEGRATIONS.EDIT_SALESFORCEACCOUNT">\n                                                    Edit SalesforceAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.testtestintegrationaccount(salesforceAccount, $event)" translate="INTEGRATIONS.TEST_SALESFORCEACCOUNT">\n                                                    Test SalesforceAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(salesforceAccount, $event)" translate="INTEGRATIONS.DELETE_SALESFORCEACCOUNT">\n                                                    Delete SalesforceAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.salesforceAccounts.count}}" md-on-paginate="vm.getSalesforceAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SALESFORCEACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SALESFORCEACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-salesforceAccount-button" ng-click="vm.createOrEditSalesforceAccount($event)" aria-label="add salesforceAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SALESFORCEACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",'<md-dialog class="sugarcrmAccount-dialog" aria-label="New SugarcrmAccount">\n    <form name="sugarcrmAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" required autofocus>\n                <div ng-messages="sugarcrmAccountForm.name.$error" ng-show="sugarcrmAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" required>\n                <div ng-messages="sugarcrmAccountForm.username.$error" ng-show="sugarcrmAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.URI">Uri</label>\n                <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" required>\n                <div ng-messages="sugarcrmAccountForm.remoteUri.$error" ng-show="sugarcrmAccountForm.remoteUri.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                <div ng-messages="sugarcrmAccountForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newSugarcrmAccount ">\n                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="sugarcrmAccountForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl">\n                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                <div ng-messages="sugarcrmAccountForm.serverUrl.$error" ng-show="sugarcrmAccountForm.serverUrl.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.sugarcrmAccount.description">\n                <div ng-messages="sugarcrmAccountForm.description.$error" ng-show="sugarcrmAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSugarcrmAccount" ng-click="vm.saveSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid || sugarcrmAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSugarcrmAccount" ng-click="vm.addNewSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n                    ADD SUGARCRMACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSugarcrmAccount" ng-click="vm.deleteSugarcrmAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",'<md-dialog class="sugarcrmConfiguration-dialog" aria-label="New SugarcrmConfiguration">\n    <form name="sugarcrmConfigurationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.sugarcrmConfiguration.name" required autofocus>\n                <div ng-messages="sugarcrmConfigurationForm.name.$error" ng-show="sugarcrmConfigurationForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.sugarcrmConfiguration.channel" required>\n\n                    <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="sugarcrmConfigurationForm.channel.$error" ng-show="sugarcrmConfigurationForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.TYPE">Type</label>\n                <md-select ng-model="vm.sugarcrmConfiguration.type" required>\n\n                    <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="sugarcrmConfigurationForm.type.$error" ng-show="sugarcrmConfigurationForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSugarcrmConfiguration" ng-click="vm.saveSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid || sugarcrmConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSugarcrmConfiguration" ng-click="vm.addNewSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION"\n                    translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION">\n                    ADD SUGARCRMCONFIGURATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSugarcrmConfiguration" ng-click="vm.deleteSugarcrmConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",'<md-dialog class="sugarcrmAccount-item-dialog" aria-label="New Item">\n    <form name="sugarcrmAccountItemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div ng-switch="vm.type">\n                <div ng-switch-when="subject">\n                    \x3c!-- SUBJECT SECTION --\x3e\n                    <div ng-include="\'/subject.html\'"></div>\n                    \x3c!-- / SUBJECT SECTION --\x3e\n                </div>\n                <div ng-switch-when="description">\n                    \x3c!-- DESCRIPTION SECTION --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="INTEGRATIONS.TYPE">Type</label>\n                        <md-select name="type" ng-model="vm.item.type" required>\n                            <md-option value="string">String</md-option>\n                            <md-option value="keyValue">Key Value</md-option>\n                        </md-select>\n                        <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n                        <label translate="INTEGRATIONS.CONTENT">Content</label>\n                        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n                        <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <div ng-if="vm.item.type == \'keyValue\'">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.KEY">Key</label>\n                            <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n                            <div ng-messages="sugarcrmAccountItemForm.key.$error" ng-show="sugarcrmAccountItemForm.key.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.TYPE">Type</label>\n                            <md-select name="keyType" ng-model="vm.item.keyType" required>\n                                <md-option value="string">String</md-option>\n                                <md-option value="variable">Variable</md-option>\n                                <md-option value="customVariable">Custom Variable</md-option>\n                            </md-select>\n                            <div ng-messages="sugarcrmAccountItemForm.keyType.$error" ng-show="sugarcrmAccountItemForm.keyType.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n                            <label translate="INTEGRATIONS.CONTENT">Content</label>\n                            <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n                            <div ng-messages="sugarcrmAccountItemForm.keyContent.$error" ng-show="sugarcrmAccountItemForm.keyContent.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n                                <md-optgroup label="Voice: Queue">\n                                    <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Voice: Outbound">\n                                    <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select ng-model="vm.item.VariableId" required>\n                                <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n                            </md-select>\n                        </md-input-container>\n                    </div>\n                    \x3c!-- / DESCRIPTION SECTION --\x3e\n                </div>\n                <div ng-switch-when="field">\n                    \x3c!-- FIELD SECTION --\x3e\n                    <div ng-if="vm.accountConnected">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.FIELD">FIELD</label>\n                            <md-select name="customField" ng-model="vm.customField" required>\n                                <md-optgroup label="Standard">\n                                    <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Custom">\n                                    <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="sugarcrmAccountItemForm.customField.$error" ng-show="sugarcrmAccountItemForm.customField.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- CUSTOM FIELD --\x3e\n                        <div ng-if="vm.customField && vm.customField.custom" ng-include="\'/subject.html\'"></div>\n                        \x3c!-- / CUSTOM FIELD --\x3e\n                        \x3c!-- STANDARD FIELD --\x3e\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="option" ng-model="vm.item.content" required>\n                                <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n                            </md-select>\n                            <div ng-messages="sugarcrmAccountItemForm.option.$error" ng-show="sugarcrmAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && !vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <input type="text" name="option" ng-model="vm.item.content" required>\n                            <div ng-messages="sugarcrmAccountItemForm.option.$error" ng-show="sugarcrmAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- / STANDARD FIELD --\x3e\n                    </div>\n                    <div ng-if="!vm.accountConnected">\n                        <p>Account is not connected. Please check your configurations!</p>\n                    </div>\n                    \x3c!-- / FIELD SECTION --\x3e\n                </div>\n                <div ng-switch-default>\n                    <p>No Item</p>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n                    ADD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/subject.html">\n    <md-input-container class="md-block">\n        <label translate="INTEGRATIONS.TYPE">Type</label>\n        <md-select name="type" ng-model="vm.item.type" required>\n            <md-option value="string">String</md-option>\n            <md-option value="variable">Variable</md-option>\n            <md-option value="customVariable">Custom Variable</md-option>\n        </md-select>\n        <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n        <label translate="INTEGRATIONS.CONTENT">Content</label>\n        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n        <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n            <md-optgroup label="Voice: Queue">\n                <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n            </md-optgroup>\n            <md-optgroup label="Voice: Outbound">\n                <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n            </md-optgroup>\n        </md-select>\n        <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select ng-model="vm.item.VariableId" required>\n            <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n        </md-select>\n    </md-input-container>\n<\/script>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",'<div id="integrations-sugarcrmAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-sugarcrmAccounts-button md-icon-button" aria-label="Go to sugarcrmAccounts" ng-click="vm.gotoSugarcrmAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SUGARCRMACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="sugarcrmAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/sugarcrmAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.sugarcrmAccount.id}} {{vm.sugarcrmAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.sugarcrmAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="sugarcrmAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                                <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.URI">Uri</label>\n                                <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" required>\n                                <div ng-messages="generalForm.remoteUri.$error" ng-show="generalForm.remoteUri.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newSugarcrmAccount ">\n                                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                                <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl">\n                                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                                <div ng-messages="generalForm.serverUrl.$error" ng-show="generalForm.serverUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.sugarcrmAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="sugarcrmAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n                        </div>\n                        <div ng-controller="SugarcrmAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.sugarcrmAccount)" layout="row">\n                            <md-card class="md-whiteframe-1dp" flex="30">\n                                <div layout="row" layout-align="center center">\n                                    <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n                                    <md-button flex="25" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" class="md-icon-button" aria-label="create sugarcrmConfiguration">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                                <md-list>\n                                    <md-list-item layout="row" layout-align="center center" ng-repeat="sugarcrmConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSugarcrmConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSugarcrmConfiguration($index)">\n                                        <span class="text-truncate" flex="80">{{ sugarcrmConfiguration.name }}</span>\n                                        <md-menu>\n                                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                            </md-button>\n                                            <md-menu-content width="3">\n                                                <md-menu-item>\n                                                    <md-button ng-click="vm_cc.deleteSugarcrmConfiguration($event, sugarcrmConfiguration)" translate="INTEGRATIONS.DELETE_SUGARCRMCONFIGURATION">\n                                                        Delete SugarcrmConfiguration\n                                                    </md-button>\n                                                </md-menu-item>\n                                            </md-menu-content>\n                                        </md-menu>\n                                    </md-list-item>\n                                </md-list>\n                            </md-card>\n                            <div flex></div>\n                            <md-card class="md-whiteframe-1dp" flex="65">\n                                <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n                                                                <span ng-if="subject.FieldId">{{subject.nameField}}</span>\n                                                                <span ng-if="!subject.FieldId">{{subject.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n                                                                <span ng-switch-when="string">{{subject.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{subject.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{subject.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{subject.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n                                                                                Edit Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n                                                                                Delete Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n                                                                <span ng-if="description.FieldId">{{description.nameField}}</span>\n                                                                <span ng-if="!description.FieldId">{{description.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n                                                                <span ng-switch-when="string">{{description.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{description.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{description.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{description.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n                                                                                Edit Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n                                                                                Delete Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n                                                                <span ng-if="field.FieldId">{{field.nameField}}</span>\n                                                                <span ng-if="!field.FieldId">{{field.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n                                                                <span ng-switch-when="string">{{field.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{field.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{field.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{field.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n                                                                                Edit Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n                                                                                Delete Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                </md-tabs>\n                                <div class="padding-20" ng-if="!vm_cc.configurations.length" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                                    <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n                                        <md-button class="md-icon-button">\n                                            <md-icon md-font-icon="icon-plus"></md-icon>\n                                        </md-button>\n                                        <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n                                    </div>\n                                </div>\n                            </md-card>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",'<div id="sugarcrmAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="INTEGRATIONS.SUGARCRMACCOUNTS">SugarcrmAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSugarcrmAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSugarcrmAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="INTEGRATIONS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-sugarcrmAccounts-count">\n                    <span>{{vm.selectedSugarcrmAccounts.length}}</span>\n                <span translate="INTEGRATIONS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SUGARCRMACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSugarcrmAccounts" filename="sugarcrmAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSugarcrmAccounts($event)" aria-label="delete selected" translate translate-attr-label="SUGARCRMACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SUGARCRMACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSugarcrmAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSugarcrmAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.sugarcrmAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="sugarcrmAccount" md-select-id="id" ng-repeat="sugarcrmAccount in vm.sugarcrmAccounts.rows">\n                                <td md-cell ng-if="sugarcrmAccount.userpic"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="api/users/{{sugarcrmAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!sugarcrmAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="id ">{{sugarcrmAccount.id}}</td>\n                                <td ng-click="vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="name ">{{sugarcrmAccount.name}}</td>\n                                <td ng-click="vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="username ">{{sugarcrmAccount.username}}</td>\n                                <td ng-click="vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="remoteUri ">{{sugarcrmAccount.remoteUri}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(sugarcrmAccount, $event)" translate="INTEGRATIONS.EDIT_SUGARCRMACCOUNT">\n                                                    Edit SugarcrmAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.testtestintegrationaccount(sugarcrmAccount, $event)" translate="INTEGRATIONS.TEST_SUGARCRMACCOUNT">\n                                                    Test SugarcrmAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(sugarcrmAccount, $event)" translate="INTEGRATIONS.DELETE_SUGARCRMACCOUNT">\n                                                    Delete SugarcrmAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.sugarcrmAccounts.count}}" md-on-paginate="vm.getSugarcrmAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SUGARCRMACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SUGARCRMACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-sugarcrmAccount-button" ng-click="vm.createOrEditSugarcrmAccount($event)" aria-label="add sugarcrmAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SUGARCRMACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",'<md-dialog class="zendeskAccount-dialog" aria-label="New ZendeskAccount">\n    <form name="zendeskAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.zendeskAccount.name" required autofocus>\n                <div ng-messages="zendeskAccountForm.name.$error" ng-show="zendeskAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                <input type="text" name="username" ng-model="vm.zendeskAccount.username" required>\n                <div ng-messages="zendeskAccountForm.username.$error" ng-show="zendeskAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.URI">Uri</label>\n                <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" required>\n                <div ng-messages="zendeskAccountForm.remoteUri.$error" ng-show="zendeskAccountForm.remoteUri.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n                <md-select ng-model="vm.zendeskAccount.authType" required>\n                    <md-option ng-value="\'password\'">Password</md-option>\n                    <md-option ng-value="\'token\'">Token</md-option>\n                </md-select>\n                <div ng-messages="zendeskAccountForm.authType.$error" ng-show="zendeskAccountForm.authType.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                <div ng-messages="zendeskAccountForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newZendeskAccount  && vm.zendeskAccount.authType == \'password\'">\n                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="zendeskAccountForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n                <label translate="INTEGRATIONS.TOKEN">Token</label>\n                <input type="text" name="token" ng-model="vm.zendeskAccount.token" required>\n                <div ng-messages="zendeskAccountForm.token.$error" ng-show="zendeskAccountForm.token.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl">\n                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                <div ng-messages="zendeskAccountForm.serverUrl.$error" ng-show="zendeskAccountForm.serverUrl.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.zendeskAccount.description">\n                <div ng-messages="zendeskAccountForm.description.$error" ng-show="zendeskAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newZendeskAccount" ng-click="vm.saveZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid || zendeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newZendeskAccount" ng-click="vm.addNewZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n                    ADD ZENDESKACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newZendeskAccount" ng-click="vm.deleteZendeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",'<md-dialog class="zendeskAccount-item-dialog" aria-label="New Item">\n    <form name="zendeskAccountItemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <div ng-switch="vm.type">\n                <div ng-switch-when="subject">\n                    \x3c!-- SUBJECT SECTION --\x3e\n                    <div ng-include="\'/subject.html\'"></div>\n                    \x3c!-- / SUBJECT SECTION --\x3e\n                </div>\n                <div ng-switch-when="description">\n                    \x3c!-- DESCRIPTION SECTION --\x3e\n                    <md-input-container class="md-block">\n                        <label translate="INTEGRATIONS.TYPE">Type</label>\n                        <md-select name="type" ng-model="vm.item.type" required>\n                            <md-option value="string">String</md-option>\n                            <md-option value="keyValue">Key Value</md-option>\n                        </md-select>\n                        <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n                        <label translate="INTEGRATIONS.CONTENT">Content</label>\n                        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n                        <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <div ng-if="vm.item.type == \'keyValue\'">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.KEY">Key</label>\n                            <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n                            <div ng-messages="zendeskAccountItemForm.key.$error" ng-show="zendeskAccountItemForm.key.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.TYPE">Type</label>\n                            <md-select name="keyType" ng-model="vm.item.keyType" required>\n                                <md-option value="string">String</md-option>\n                                <md-option value="variable">Variable</md-option>\n                                <md-option value="customVariable">Custom Variable</md-option>\n                            </md-select>\n                            <div ng-messages="zendeskAccountItemForm.keyType.$error" ng-show="zendeskAccountItemForm.keyType.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n                            <label translate="INTEGRATIONS.CONTENT">Content</label>\n                            <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n                            <div ng-messages="zendeskAccountItemForm.keyContent.$error" ng-show="zendeskAccountItemForm.keyContent.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n                                <md-optgroup label="Voice: Queue">\n                                    <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Voice: Outbound">\n                                    <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n\n                        <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select ng-model="vm.item.VariableId" required>\n                                <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n                            </md-select>\n                        </md-input-container>\n                    </div>\n                    \x3c!-- / DESCRIPTION SECTION --\x3e\n                </div>\n                <div ng-switch-when="field">\n                    \x3c!-- FIELD SECTION --\x3e\n                    <div ng-if="vm.accountConnected">\n                        <md-input-container class="md-block">\n                            <label translate="INTEGRATIONS.FIELD">FIELD</label>\n                            <md-select name="customField" ng-model="vm.customField" required>\n                                <md-optgroup label="Standard">\n                                    <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}</md-option>\n                                </md-optgroup>\n                                <md-optgroup label="Custom">\n                                    <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}</md-option>\n                                </md-optgroup>\n                            </md-select>\n                            <div ng-messages="zendeskAccountItemForm.customField.$error" ng-show="zendeskAccountItemForm.customField.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- CUSTOM FIELD --\x3e\n                        <div ng-if="vm.customField && vm.customField.custom" ng-include="\'/subject.html\'"></div>\n                        \x3c!-- / CUSTOM FIELD --\x3e\n                        \x3c!-- STANDARD FIELD --\x3e\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <md-select name="option" ng-model="vm.item.content" required>\n                                <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n                            </md-select>\n                            <div ng-messages="zendeskAccountItemForm.option.$error" ng-show="zendeskAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        <md-input-container class="md-block" ng-if="vm.customField && !vm.customField.custom && !vm.customField.options.length">\n                            <label translate="INTEGRATIONS.VALUE">Value</label>\n                            <input type="text" name="option" ng-model="vm.item.content" required>\n                            <div ng-messages="zendeskAccountItemForm.option.$error" ng-show="zendeskAccountItemForm.option.$touched" role="alert">\n                                <div ng-message="required">\n                                    <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                                </div>\n                            </div>\n                        </md-input-container>\n                        \x3c!-- / STANDARD FIELD --\x3e\n                    </div>\n                    <div ng-if="!vm.accountConnected">\n                        <p>Account is not connected. Please check your configurations!</p>\n                    </div>\n                    \x3c!-- / FIELD SECTION --\x3e\n                </div>\n                <div ng-switch-default>\n                    <p>No Item</p>\n                </div>\n            </div>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n                    ADD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/subject.html">\n    <md-input-container class="md-block">\n        <label translate="INTEGRATIONS.TYPE">Type</label>\n        <md-select name="type" ng-model="vm.item.type" required>\n            <md-option value="string">String</md-option>\n            <md-option value="variable">Variable</md-option>\n            <md-option value="customVariable">Custom Variable</md-option>\n        </md-select>\n        <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n        <label translate="INTEGRATIONS.CONTENT">Content</label>\n        <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n        <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n            <md-optgroup label="Voice: Queue">\n                <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}</md-option>\n            </md-optgroup>\n            <md-optgroup label="Voice: Outbound">\n                <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n            </md-optgroup>\n        </md-select>\n        <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n            <div ng-message="required">\n                <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is required</span>\n            </div>\n        </div>\n    </md-input-container>\n\n    <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n        <label translate="INTEGRATIONS.VALUE">Value</label>\n        <md-select ng-model="vm.item.VariableId" required>\n            <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n        </md-select>\n    </md-input-container>\n<\/script>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/view.html",'<div id="integrations-zendeskAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-zendeskAccounts-button md-icon-button" aria-label="Go to zendeskAccounts" ng-click="vm.gotoZendeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZENDESKACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="zendeskAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/zendeskAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.zendeskAccount.id}} {{vm.zendeskAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zendeskAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (zendeskConfigurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="zendeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.zendeskAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.USERNAME">Username</label>\n                                <input type="text" name="username" ng-model="vm.zendeskAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.URI">Uri</label>\n                                <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" required>\n                                <div ng-messages="generalForm.remoteUri.$error" ng-show="generalForm.remoteUri.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n                                <md-select ng-model="vm.zendeskAccount.authType" required>\n                                    <md-option ng-value="\'password\'">Password</md-option>\n                                    <md-option ng-value="\'token\'">Token</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.authType.$error" ng-show="generalForm.authType.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n                                <label translate="INTEGRATIONS.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newZendeskAccount  && vm.zendeskAccount.authType == \'password\'">\n                                <label translate="INTEGRATIONS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="INTEGRATIONS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n                                <label translate="INTEGRATIONS.TOKEN">Token</label>\n                                <input type="text" name="token" ng-model="vm.zendeskAccount.token" required>\n                                <div ng-messages="generalForm.token.$error" ng-show="generalForm.token.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n                                <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl">\n                                <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n                                <div ng-messages="generalForm.serverUrl.$error" ng-show="generalForm.serverUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.zendeskAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="zendeskAccount-detail-form-container zendeskconfigurations md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="INTEGRATIONS.ZENDESKCONFIGURATIONS">ZENDESKCONFIGURATIONS</div>\n                        </div>\n                        <div ng-controller="ZendeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zendeskAccount)" layout="row">\n                            <md-card class="md-whiteframe-1dp" flex="30">\n                                <div layout="row" layout-align="center center">\n                                    <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n                                    <md-button flex="25" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" class="md-icon-button" aria-label="create zendeskConfiguration">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                                <md-list>\n                                    <md-list-item layout="row" layout-align="center center" ng-repeat="zendeskConfiguration in vm_cc.zendeskConfigurations" class="border-top" md-colors="{background: (vm_cc.selectedZendeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZendeskConfiguration($index)">\n                                        <span class="text-truncate" flex="80">{{ zendeskConfiguration.name }}</span>\n                                        <md-menu>\n                                            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                            </md-button>\n                                            <md-menu-content width="3">\n                                                <md-menu-item>\n                                                    <md-button ng-click="vm_cc.deleteZendeskConfiguration($event, zendeskConfiguration)" translate="INTEGRATIONS.DELETE_ZENDESKCONFIGURATION">\n                                                        Delete ZendeskConfiguration\n                                                    </md-button>\n                                                </md-menu-item>\n                                            </md-menu-content>\n                                        </md-menu>\n                                    </md-list-item>\n                                </md-list>\n                            </md-card>\n                            <div flex></div>\n                            <md-card class="md-whiteframe-1dp" flex="65">\n                                <md-tabs ng-if="vm_cc.zendeskConfigurations.length" md-dynamic-height>\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n                                                                <span ng-if="subject.FieldId">{{subject.nameField}}</span>\n                                                                <span ng-if="!subject.FieldId">{{subject.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n                                                                <span ng-switch-when="string">{{subject.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{subject.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{subject.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{subject.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n                                                                                Edit Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n                                                                                Delete Subject\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n                                                                <span ng-if="description.FieldId">{{description.nameField}}</span>\n                                                                <span ng-if="!description.FieldId">{{description.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n                                                                <span ng-switch-when="string">{{description.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{description.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{description.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{description.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n                                                                                Edit Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n                                                                                Delete Description\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <div flex></div>\n                                                    <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n                                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n                                                <div class="md-toolbar-tools">\n                                                    <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                                    <div flex></div>\n                                                    <md-button class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n                                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                                    </md-button>\n                                                </div>\n                                            </md-toolbar>\n                                            <md-table-container class="md-whiteframe-1dp padding-horizontal">\n                                                <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n                                                    <thead md-head md-order="vm.query.sort">\n                                                        <tr md-row>\n                                                            <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                                            <th md-column md-order-by="type">{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n                                                            <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n                                                            <th md-column width="10px"></th>\n                                                        </tr>\n                                                    </thead>\n                                                    <tbody md-body>\n                                                        <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n                                                            <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n                                                                <span ng-if="field.FieldId">{{field.nameField}}</span>\n                                                                <span ng-if="!field.FieldId">{{field.type}}</span>\n                                                            </td>\n                                                            <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n                                                                <span ng-switch-when="string">{{field.content}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                <span ng-switch-when="keyValue">\n                                {{field.key}}\n                                <span ng-switch="description.keyType">\n                                    <span ng-switch-when="string">{{field.keyContent}}</span>\n                                                                <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n                                                                <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n                                                                </span>\n                                                                </span>\n                                                                <span ng-switch-default>{{field.content}}</span>\n                                                            </td>\n                                                            <td md-cell class="actions">\n                                                                <md-menu>\n                                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                                    </md-button>\n\n                                                                    <md-menu-content width="3">\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n                                                                                Edit Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                        <md-menu-item>\n                                                                            <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n                                                                                Delete Field\n                                                                            </md-button>\n                                                                        </md-menu-item>\n                                                                    </md-menu-content>\n                                                                </md-menu>\n                                                            </td>\n                                                        </tr>\n                                                    </tbody>\n                                                </table>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n\n                                    <md-tab>\n                                        <md-tab-label>\n                                            <span translate="INTEGRATIONS.TAGS">TAGS</span>\n                                        </md-tab-label>\n                                        <md-tab-body>\n                                            <md-table-container class="md-whiteframe-1dp padding-20">\n                                                <md-input-container class="md-block">\n                                                    <label translate="INTEGRATIONS.TAGS">Tags</label>\n                                                    <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n                                                        <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n                                                    </md-select>\n                                                </md-input-container>\n                                            </md-table-container>\n                                        </md-tab-body>\n                                    </md-tab>\n                                </md-tabs>\n                                <div class="padding-20" ng-if="!vm_cc.zendeskConfigurations.length" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n                                    <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n                                        <md-button class="md-icon-button">\n                                            <md-icon md-font-icon="icon-plus"></md-icon>\n                                        </md-button>\n                                        <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n                                    </div>\n                                </div>\n                            </md-card>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",'<md-dialog class="zendeskConfiguration-dialog" aria-label="New ZendeskConfiguration">\n    <form name="zendeskConfigurationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.zendeskConfiguration.name" required autofocus>\n                <div ng-messages="zendeskConfigurationForm.name.$error" ng-show="zendeskConfigurationForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.zendeskConfiguration.channel" required>\n\n                    <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="zendeskConfigurationForm.channel.$error" ng-show="zendeskConfigurationForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="INTEGRATIONS.TYPE">Type</label>\n                <md-select ng-model="vm.zendeskConfiguration.type" required>\n\n                    <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="zendeskConfigurationForm.type.$error" ng-show="zendeskConfigurationForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newZendeskConfiguration" ng-click="vm.saveZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid || zendeskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE"\n                    translate-attr-aria-label="INTEGRATIONS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newZendeskConfiguration" ng-click="vm.addNewZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKCONFIGURATION"\n                    translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKCONFIGURATION">\n                    ADD ZENDESKCONFIGURATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newZendeskConfiguration" ng-click="vm.deleteZendeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",'<div id="zendeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="INTEGRATIONS.ZENDESKACCOUNTS">ZendeskAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedZendeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedZendeskAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="INTEGRATIONS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-zendeskAccounts-count">\n                    <span>{{vm.selectedZendeskAccounts.length}}</span>\n                <span translate="INTEGRATIONS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ZENDESKACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllZendeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectZendeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedZendeskAccounts" filename="zendeskAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedZendeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="ZENDESKACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- ZENDESKACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedZendeskAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZendeskAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.zendeskAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="zendeskAccount" md-select-id="id" ng-repeat="zendeskAccount in vm.zendeskAccounts.rows">\n                                <td md-cell ng-if="zendeskAccount.userpic"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="api/users/{{zendeskAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!zendeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="id ">{{zendeskAccount.id}}</td>\n                                <td ng-click="vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="name ">{{zendeskAccount.name}}</td>\n                                <td ng-click="vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="username ">{{zendeskAccount.username}}</td>\n                                <td ng-click="vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="remoteUri ">{{zendeskAccount.remoteUri}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(zendeskAccount, $event)" translate="INTEGRATIONS.EDIT_ZENDESKACCOUNT">\n                                                    Edit ZendeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.testtestintegrationaccount(zendeskAccount, $event)" translate="INTEGRATIONS.TEST_ZENDESKACCOUNT">\n                                                    Test ZendeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(zendeskAccount, $event)" translate="INTEGRATIONS.DELETE_ZENDESKACCOUNT">\n                                                    Delete ZendeskAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.zendeskAccounts.count}}" md-on-paginate="vm.getZendeskAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / ZENDESKACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD ZENDESKACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-zendeskAccount-button" ng-click="vm.createOrEditZendeskAccount($event)" aria-label="add zendeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD ZENDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/jscripty/views/projects/create/dialog.html",'<md-dialog class="project-dialog" aria-label="New Project">\n    <form name="projectForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="JSCRIPTY.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="projectForm.name.$error" ng-show="projectForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="JSCRIPTY.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.project.description">\n                <div ng-messages="projectForm.description.$error" ng-show="projectForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="ADD" translate="JSCRIPTY.ADD_PROJECT" translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n                    ADD PROJECT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="JSCRIPTY.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="JSCRIPTY.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/view.html",'<div id="jscripty-project" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-projects-button md-icon-button" aria-label="Go to projects" ng-click="vm.gotoProjects()" translate translate-attr-aria-label="JSCRIPTY.GO_TO_PROJECTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="project-image" hide-xs>\n                    <img ng-src="assets/images/business/projects.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.project.id}} {{vm.project.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="JSCRIPTY.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (builderForm.$invalid) || (previewForm.$invalid)" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="JSCRIPTY.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="project-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="JSCRIPTY.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="JSCRIPTY.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="JSCRIPTY.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.project.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="JSCRIPTY.BUILDER">BUILDER</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="project-detail-form-container builder md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="ProjectBuilderController as vm_bc" ng-init="vm_bc.init(vm.project)">\n                            <mw-form-builder ng-if="vm_bc.project.formData" form-data="vm_bc.project.formData" options="vm_bc.optionsBuilder"></mw-form-builder>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="JSCRIPTY.PREVIEW">PREVIEW</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="project-detail-form-container preview md-background-bg md-whiteframe-1dp">\n                        <div layout="column" layout-align="center" ng-controller="ProjectViewerController as vm_vc" ng-init="vm_vc.init(vm.project)">\n                            <div layout="row" layout-align="center">\n                                <md-button class="md-raised md-accent" aria-label="Reset" ng-click="vm_vc.resetViewer()">\n                                    Reset\n                                </md-button>\n                            </div>\n                            <mw-form-viewer ng-if="vm_vc.project.formData" form-data="vm_vc.project.formData" response-data="vm_vc.responseData" on-submit="vm_vc.onSubmit($event)" api="vm_vc.formViewer"></mw-form-viewer>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/jscripty/views/projects/projects.html",'<div id="projects" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-script" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="JSCRIPTY.PROJECTS">Projects</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="JSCRIPTY.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedProjects.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedProjects =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="JSCRIPTY.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-projects-count">\n                    <span>{{vm.selectedProjects.length}}</span>\n                <span translate="JSCRIPTY.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="PROJECTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllProjects()" translate="JSCRIPTY.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectProjects()" translate="JSCRIPTY.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedProjects" filename="projects.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="PROJECTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- PROJECT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedProjects" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getProjects">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'JSCRIPTY.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'JSCRIPTY.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'JSCRIPTY.DESCRIPTION\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'JSCRIPTY.CREATED_AT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.projects.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="JSCRIPTY.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="project" md-select-id="id" ng-repeat="project in vm.projects.rows">\n                                <td md-cell ng-if="project.userpic"><img class="avatar" alt="{{project.name}}" ng-src="api/users/{{project.id}}/avatar" /></td>\n                                <td md-cell ng-if="!project.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{project.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n                                <td ng-click="vm.createOrEditProject($event, project)" md-cell class="createdAt ">{{project.createdAt | date:\'medium\' }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="JSCRIPTY.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(project, $event)" translate="JSCRIPTY.EDIT_PROJECT">\n                                                    Edit Project\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(project, $event)" translate="JSCRIPTY.DELETE_PROJECT">\n                                                    Delete Project\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.projects.count}}" md-on-paginate="vm.getProjects" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / PROJECT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD PROJECT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-project-button" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD PROJECT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/create/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n    <form name="mailAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MAIL.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.mailAccount.name" required autofocus>\n                <div ng-messages="mailAccountForm.name.$error" ng-show="mailAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n                <input type="email" name="address" ng-model="vm.mailAccount.address" required>\n                <div ng-messages="mailAccountForm.address.$error" ng-show="mailAccountForm.address.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.mailAccount.description">\n                <div ng-messages="mailAccountForm.description.$error" ng-show="mailAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMailAccount" ng-click="vm.saveMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid || mailAccountForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMailAccount" ng-click="vm.addNewMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILACCOUNT" translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n                    ADD MAILACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMailAccount" ng-click="vm.deleteMailAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/mailDispositions/dialog.html",'<md-dialog class="mailDisposition-dialog" aria-label="New MailDisposition">\n    <form name="mailDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MAIL.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.mailDisposition.name" required autofocus>\n                <div ng-messages="mailDispositionForm.name.$error" ng-show="mailDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMailDisposition" ng-click="vm.saveMailDisposition()" class="send-button md-accent md-raised" ng-disabled="mailDispositionForm.$invalid || mailDispositionForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMailDisposition" ng-click="vm.addNewMailDisposition()" class="send-button md-accent md-raised" ng-disabled="mailDispositionForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILDISPOSITION" translate-attr-aria-label="MAIL.ADD_MAILDISPOSITION">\n                    ADD MAILDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMailDisposition" ng-click="vm.deleteMailDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/view.html",'<div id="mail-mailAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-mailAccounts-button md-icon-button" aria-label="Go to mailAccounts" ng-click="vm.gotoMailAccounts()" translate translate-attr-aria-label="MAIL.GO_TO_MAILACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="mailAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/mailAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.mailAccount.id}} {{vm.mailAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveMailAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (mailDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid) || (whitelabelForm.$invalid) || (signatureForm.$invalid)"\n                translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.mailAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n                                <input type="email" name="address" ng-model="vm.mailAccount.address" required>\n                                <div ng-messages="generalForm.address.$error" ng-show="generalForm.address.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.LIST">List</label>\n                                <md-select ng-model="vm.mailAccount.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.TEMPLATE">template</label>\n                                <md-select ng-model="vm.mailAccount.TemplateId">\n                                    <md-option ng-value="TemplateId.id" ng-repeat="TemplateId in vm.templates">{{ TemplateId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TemplateId.$error" ng-show="generalForm.TemplateId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.TEMPLATE_REQUIRED">template field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.fidelity" aria-label="Fidelity"><span translate="MAIL.FIDELITY">Fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.mailAccount.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.service" aria-label="service"><span translate="MAIL.SERVICE">service</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.mailAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.IMAP">IMAP</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container imap md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.IMAP">IMAP</div>\n                        </div>\n                        <form name="imapForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.HOST">host</label>\n                                <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" required autofocus>\n                                <div ng-messages="imapForm.Imap.host.$error" ng-show="imapForm.Imap.host.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.HOST_REQUIRED">host field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.USERNAME">username</label>\n                                <input type="text" name="Imap.username" ng-model="vm.mailAccount.Imap.username" required>\n                                <div ng-messages="imapForm.Imap.username.$error" ng-show="imapForm.Imap.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.USERNAME_REQUIRED">username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.PASSWORD">password</label>\n                                <input type="password" name="Imap.password" ng-model="vm.mailAccount.Imap.password" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n                                <div ng-messages="imapForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newMailAccount ">\n                                <label translate="MAIL.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="Imap.password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="imapForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="MAIL.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.PORT">port</label>\n                                <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" required>\n                                <div ng-messages="imapForm.Imap.port.$error" ng-show="imapForm.Imap.port.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.PORT_REQUIRED">port field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.MAILBOX">mailbox</label>\n                                <input type="text" name="Imap.mailbox" ng-model="vm.mailAccount.Imap.mailbox">\n                                <div ng-messages="imapForm.Imap.mailbox.$error" ng-show="imapForm.Imap.mailbox.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.MAILBOX_REQUIRED">mailbox field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.CONNTIMEOUT">connTimeout</label>\n                                <input type="number" name="Imap.connTimeout" ng-model="vm.mailAccount.Imap.connTimeout" required>\n                                <div ng-messages="imapForm.Imap.connTimeout.$error" ng-show="imapForm.Imap.connTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CONNTIMEOUT_REQUIRED">connTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.AUTHTIMEOUT">authTimeout</label>\n                                <input type="number" name="Imap.authTimeout" ng-model="vm.mailAccount.Imap.authTimeout" required>\n                                <div ng-messages="imapForm.Imap.authTimeout.$error" ng-show="imapForm.Imap.authTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.AUTHTIMEOUT_REQUIRED">authTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.Imap.delete" aria-label="delete"><span translate="MAIL.DELETE">delete</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.Imap.ssl" aria-label="ssl"><span translate="MAIL.SSL">ssl</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.Imap.keepalive" aria-label="keepalive"><span translate="MAIL.KEEPALIVE">keepalive</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.SMTP">SMTP</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container smtp md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.SMTP">SMTP</div>\n                        </div>\n                        <form name="smtpForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.HOST">host</label>\n                                <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" required autofocus>\n                                <div ng-messages="smtpForm.Smtp.host.$error" ng-show="smtpForm.Smtp.host.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.HOST_REQUIRED">host field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.USERNAME">username</label>\n                                <input type="text" name="Smtp.username" ng-model="vm.mailAccount.Smtp.username" required>\n                                <div ng-messages="smtpForm.Smtp.username.$error" ng-show="smtpForm.Smtp.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.USERNAME_REQUIRED">username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.PASSWORD">password</label>\n                                <input type="password" name="Smtp.password" ng-model="vm.mailAccount.Smtp.password" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n                                <div ng-messages="smtpForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newMailAccount ">\n                                <label translate="MAIL.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="Smtp.password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="smtpForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="MAIL.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.PORT">port</label>\n                                <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" required>\n                                <div ng-messages="smtpForm.Smtp.port.$error" ng-show="smtpForm.Smtp.port.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.PORT_REQUIRED">port field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.mailAccount.Smtp.ssl" aria-label="ssl"><span translate="MAIL.SSL">ssl</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container maildispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="MailAccountMailDispositionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountMailDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MAIL.MAILDISPOSITIONS">MailDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditMailAccountMailDisposition($event)" aria-label="add mailDisposition" translate translate-attr-label="MAIL.ADD_MAILDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountMailDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedMailAccountMailDispositions.length}} {{vm_dc.selectedMailAccountMailDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailDispositions($event)" aria-label="delete selected" translate translate-attr-label="MAILACCOUNTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountMailDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountMailDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'MAIL.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="mailDisposition" md-select-id="id" ng-repeat="mailDisposition in vm_dc.mailAccountMailDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditMailAccountMailDisposition($event, mailDisposition)" md-cell>{{mailDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditMailAccountMailDisposition($event, mailDisposition)" md-cell>{{mailDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditMailAccountMailDisposition($event, mailDisposition)" md-cell>{{mailDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditMailAccountMailDisposition($event, mailDisposition)" translate="MAIL.EDIT_MAILDISPOSITION">\n                                                                Edit MailDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(mailDisposition, $event)" translate="MAIL.DELETE_MAILDISPOSITION">\n                                                                Delete MailDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.mailAccountMailDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="MAIL.NO_MAILDISPOSITION_AVAILABLE">No maildisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountMailDispositions.count}}" md-on-paginate="vm_dc.getMailAccountMailDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.mailAccount.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.mailAccount.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="MAIL.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="mailAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.mailAccount.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.mailAccount.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="MAIL.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="mailAccount-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.mailAccount.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.mailAccount.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="MAIL.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.OTHERS">OTHERS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailAccount-detail-form-container whitelabel md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.WHITELABEL">WHITELABEL</div>\n                        </div>\n                        <form name="whitelabelForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.WHITELABEL">whiteLabel</label>\n                                <textarea ng-model="vm.mailAccount.whiteLabel" md-maxlength="150" max-rows="5" autofocus></textarea>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="mailAccount-detail-form-container signature md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.SIGNATURE">SIGNATURE</div>\n                        </div>\n                        <form name="signatureForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/mailAccounts.html",'<div id="mailAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="MAIL.MAILACCOUNTS">MailAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedMailAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedMailAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="MAIL.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-mailAccounts-count">\n                    <span>{{vm.selectedMailAccounts.length}}</span>\n                <span translate="MAIL.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAILACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllMailAccounts()" translate="MAIL.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectMailAccounts()" translate="MAIL.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedMailAccounts" filename="mailAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedMailAccounts($event)" aria-label="delete selected" translate translate-attr-label="MAILACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- MAILACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedMailAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n                                <th md-column md-order-by="address">{{ \'MAIL.EMAIL_ADDRESS\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.mailAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="mailAccount" md-select-id="id" ng-repeat="mailAccount in vm.mailAccounts.rows">\n                                <td md-cell ng-if="mailAccount.userpic"><img class="avatar" alt="{{mailAccount.name}}" ng-src="api/users/{{mailAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!mailAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="id ">{{mailAccount.id}}</td>\n                                <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="name ">{{mailAccount.name}}</td>\n                                <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="address ">{{mailAccount.address}}</td>\n                                <td ng-click="vm.createOrEditMailAccount($event, mailAccount)" md-cell class="description ">{{mailAccount.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(mailAccount, $event)" translate="MAIL.EDIT_MAILACCOUNT">\n                                                    Edit MailAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(mailAccount, $event)" translate="MAIL.DELETE_MAILACCOUNT">\n                                                    Delete MailAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.mailAccounts.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / MAILACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD MAILACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-mailAccount-button" ng-click="vm.createOrEditMailAccount($event)" aria-label="add mailAccount" translate translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD MAILACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailQueues/create/dialog.html",'<md-dialog class="mailQueue-dialog" aria-label="New MailQueue">\n    <form name="mailQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MAIL.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="mailQueueForm.name.$error" ng-show="mailQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.mailQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="mailQueueForm.strategy.$error" ng-show="mailQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" required>\n                <div ng-messages="mailQueueForm.timeout.$error" ng-show="mailQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MAIL.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.mailQueue.description">\n                <div ng-messages="mailQueueForm.description.$error" ng-show="mailQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMailQueue" ng-click="vm.saveMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid || mailQueueForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMailQueue" ng-click="vm.addNewMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILQUEUE" translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n                    ADD MAILQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMailQueue" ng-click="vm.deleteMailQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue">\n    <form name="mailQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MAIL.TEAMADD_MAILQUEUE">Add Team in MAILQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="MAIL.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="mailQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/view.html",'<div id="mail-mailQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-mailQueues-button md-icon-button" aria-label="Go to mailQueues" ng-click="vm.gotoMailQueues()" translate translate-attr-aria-label="MAIL.GO_TO_MAILQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="mailQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/mailQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.mailQueue.id}} {{vm.mailQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.mailQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="MAIL.TEAMADD_MAILQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveMailQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MAIL.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="mailQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.mailQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MAIL.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.mailQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailQueues/mailQueues.html",'<div id="mailQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="MAIL.MAILQUEUES">MailQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedMailQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedMailQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="MAIL.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-mailQueues-count">\n                    <span>{{vm.selectedMailQueues.length}}</span>\n                <span translate="MAIL.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAILQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllMailQueues()" translate="MAIL.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectMailQueues()" translate="MAIL.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedMailQueues" filename="mailQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedMailQueues($event)" aria-label="delete selected" translate translate-attr-label="MAILQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- MAILQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedMailQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'MAIL.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.mailQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="mailQueue" md-select-id="id" ng-repeat="mailQueue in vm.mailQueues.rows">\n                                <td md-cell ng-if="mailQueue.userpic"><img class="avatar" alt="{{mailQueue.name}}" ng-src="api/users/{{mailQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!mailQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditMailQueue($event, mailQueue)" md-cell class="id ">{{mailQueue.id}}</td>\n                                <td ng-click="vm.createOrEditMailQueue($event, mailQueue)" md-cell class="name ">{{mailQueue.name}}</td>\n                                <td ng-click="vm.createOrEditMailQueue($event, mailQueue)" md-cell class="strategy ">{{ vm.arraystrategy[mailQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(mailQueue, $event)" translate="MAIL.EDIT_MAILQUEUE">\n                                                    Edit MailQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(mailQueue, $event)" translate="MAIL.DELETE_MAILQUEUE">\n                                                    Delete MailQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.mailQueues.count}}" md-on-paginate="vm.getMailQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / MAILQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD MAILQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-mailQueue-button" ng-click="vm.createOrEditMailQueue($event)" aria-label="add mailQueue" translate translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD MAILQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",'<md-dialog class="ivrCampaign-dialog" aria-label="New IvrCampaign">\n    <form name="ivrCampaignForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="!vm.newIvrCampaign">\n                <div ng-messages="ivrCampaignForm.name.$error" ng-show="ivrCampaignForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n                <md-select ng-model="vm.ivrCampaign.TrunkId" required>\n                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                </md-select>\n                <div ng-messages="ivrCampaignForm.TrunkId.$error" ng-show="ivrCampaignForm.TrunkId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n                <md-select ng-model="vm.ivrCampaign.IntervalId" required>\n                    <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n                </md-select>\n                <div ng-messages="ivrCampaignForm.IntervalId.$error" ng-show="ivrCampaignForm.IntervalId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n                <md-select ng-model="vm.ivrCampaign.SquareProjectId" required>\n                    <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects">{{ SquareProjectId.name }}</md-option>\n                </md-select>\n                <div ng-messages="ivrCampaignForm.SquareProjectId.$error" ng-show="ivrCampaignForm.SquareProjectId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n                <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" required>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n                <div ng-messages="ivrCampaignForm.limitCalls.$error" ng-show="ivrCampaignForm.limitCalls.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.ivrCampaign.description">\n                <div ng-messages="ivrCampaignForm.description.$error" ng-show="ivrCampaignForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newIvrCampaign" ng-click="vm.saveIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid || ivrCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newIvrCampaign" ng-click="vm.addNewIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n                    ADD IVRCAMPAIGN\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newIvrCampaign" ng-click="vm.deleteIvrCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign">\n    <form name="ivrCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n    <form name="hopperForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div flex class="md-block">\n                <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n                        </div>\n                    </div>\n                </mdp-date-picker>\n            </div>\n\n            <div flex class="md-block">\n                <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n                        </div>\n                    </div>\n                </mdp-time-picker>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n                    ADD HOPPER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign">\n    <form name="ivrCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",'<div id="motiondialer-ivrCampaign" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-ivrCampaigns-button md-icon-button" aria-label="Go to ivrCampaigns" ng-click="vm.gotoIvrCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_IVRCAMPAIGNS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="ivrCampaign-image" hide-xs>\n                    <img ng-src="assets/images/business/ivrCampaigns.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.ivrCampaign.id}} {{vm.ivrCampaign.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.ivrCampaign.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.listadddialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n                <md-tooltip><span translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.blacklistadddialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n                <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-block-helper"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)"\n                translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n                                <md-select ng-model="vm.ivrCampaign.TrunkId" required>\n                                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkId.$error" ng-show="generalForm.TrunkId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n                                <md-select ng-model="vm.ivrCampaign.TrunkBackupId">\n                                    <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks">{{ TrunkBackupId.name }}</md-option>\n                                    <md-option ng-value="null">None</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkBackupId.$error" ng-show="generalForm.TrunkBackupId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n                                <md-select ng-model="vm.ivrCampaign.IntervalId" required>\n                                    <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.IntervalId.$error" ng-show="generalForm.IntervalId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.ivrCampaign.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n                        </div>\n                        <form name="campaignForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n                                <md-select ng-model="vm.ivrCampaign.SquareProjectId" required autofocus>\n                                    <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects">{{ SquareProjectId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="campaignForm.SquareProjectId.$error" ng-show="campaignForm.SquareProjectId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n                                <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n                                <div ng-messages="campaignForm.limitCalls.$error" ng-show="campaignForm.limitCalls.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n                        </div>\n                        <form name="originateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n                                <input type="text" name="dialOriginateCallerIdName" ng-model="vm.ivrCampaign.dialOriginateCallerIdName" autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n                                <div ng-messages="originateForm.dialOriginateCallerIdName.$error" ng-show="originateForm.dialOriginateCallerIdName.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n                                <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.ivrCampaign.dialOriginateCallerIdNumber">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n                                <div ng-messages="originateForm.dialOriginateCallerIdNumber.$error" ng-show="originateForm.dialOriginateCallerIdNumber.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n                                <input type="number" name="dialOriginateTimeout" ng-model="vm.ivrCampaign.dialOriginateTimeout" min="1" max="999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n                                <div ng-messages="originateForm.dialOriginateTimeout.$error" ng-show="originateForm.dialOriginateTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n                        </div>\n                        <form name="globalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n                                <input type="number" name="dialGlobalMaxRetry" ng-model="vm.ivrCampaign.dialGlobalMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n                                <div ng-messages="globalForm.dialGlobalMaxRetry.$error" ng-show="globalForm.dialGlobalMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n                        </div>\n                        <form name="congestionForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n                                <input type="number" name="dialCongestionMaxRetry" ng-model="vm.ivrCampaign.dialCongestionMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n                                <div ng-messages="congestionForm.dialCongestionMaxRetry.$error" ng-show="congestionForm.dialCongestionMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n                                <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.ivrCampaign.dialCongestionRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n                                <div ng-messages="congestionForm.dialCongestionRetryFrequency.$error" ng-show="congestionForm.dialCongestionRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n                        </div>\n                        <form name="busyForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n                                <input type="number" name="dialBusyMaxRetry" ng-model="vm.ivrCampaign.dialBusyMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n                                <div ng-messages="busyForm.dialBusyMaxRetry.$error" ng-show="busyForm.dialBusyMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n                                <input type="number" name="dialBusyRetryFrequency" ng-model="vm.ivrCampaign.dialBusyRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n                                <div ng-messages="busyForm.dialBusyRetryFrequency.$error" ng-show="busyForm.dialBusyRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n                        </div>\n                        <form name="noanswerForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n                                <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.ivrCampaign.dialNoAnswerMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n                                <div ng-messages="noanswerForm.dialNoAnswerMaxRetry.$error" ng-show="noanswerForm.dialNoAnswerMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n                                <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.ivrCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n                                <div ng-messages="noanswerForm.dialNoAnswerRetryFrequency.$error" ng-show="noanswerForm.dialNoAnswerRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n                        </div>\n                        <form name="globalintervalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n                                <input type="text" name="dialGlobalInterval" ng-model="vm.ivrCampaign.dialGlobalInterval" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n                                <div ng-messages="globalintervalForm.dialGlobalInterval.$error" ng-show="globalintervalForm.dialGlobalInterval.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="ivrCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n                        </div>\n                        <form name="timezoneForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n                                <ms-timezone name="dialTimezone" ng-model="vm.ivrCampaign.dialTimezone" autofocus>\n                                    <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n                                    <div ng-messages="timezoneForm.dialTimezone.$error" ng-show="timezoneForm.dialTimezone.$touched" role="alert">\n                                        <div ng-message="required">\n                                            <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n                                        </div>\n                                    </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IvrCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHoppers.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditIvrCampaignHopper($event)" aria-label="add hopper" translate translate-attr-label="MOTIONDIALER.ADD_HOPPER">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHoppers.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIvrCampaignHoppers.length}} {{vm_dc.selectedIvrCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHoppers" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHoppers">\n                                        <tr md-row>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="countcongestionretry">{{ \'MOTIONDIALER.CONGESTION\' | translate }}</th>\n                                            <th md-column md-order-by="countbusyretry">{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n                                            <th md-column md-order-by="countnoanswerretry">{{ \'MOTIONDIALER.NOANSWER\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.ivrCampaignHoppers.rows">\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.ContactId}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.phone}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.countcongestionretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.countbusyretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.countnoanswerretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n                                                                Edit Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n                                                                Delete Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.ivrCampaignHoppers.rows.length">\n                                            <td md-cell colspan="9">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHoppers.count}}" md-on-paginate="vm_dc.getIvrCampaignHoppers" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IvrCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperHistories.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperHistories.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperHistories.length}} {{vm_dc.selectedIvrCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHopperHistories($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperHistories" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperHistories">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'MOTIONDIALER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="calleridname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="statedesc">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'MOTIONDIALER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'MOTIONDIALER.ENDTIME\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.ivrCampaignHopperHistories.rows">\n                                            <td md-cell>{{hopperHistory.uniqueid}}</td>\n                                            <td md-cell>{{hopperHistory.ContactId}}</td>\n                                            <td md-cell>{{hopperHistory.calleridnum}}</td>\n                                            <td md-cell>{{hopperHistory.calleridname}}</td>\n                                            <td md-cell>{{hopperHistory.statedesc}}</td>\n                                            <td md-cell>{{hopperHistory.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperHistory.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperHistory.endtime | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.ivrCampaignHopperHistories.rows.length">\n                                            <td md-cell colspan="11">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperHistories" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.FINAL">FINAL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IvrCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperFinals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperFinals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperFinals.length}} {{vm_dc.selectedIvrCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHopperFinals($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperFinals" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperFinals">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'MOTIONDIALER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="calleridname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="statedesc">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n                                            <th md-column md-order-by="countcongestionretry">{{ \'MOTIONDIALER.CONGESTION\' | translate }}</th>\n                                            <th md-column md-order-by="countbusyretry">{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n                                            <th md-column md-order-by="countnoanswerretry">{{ \'MOTIONDIALER.NOANSWER\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'MOTIONDIALER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'MOTIONDIALER.ENDTIME\' | translate }}</th>\n                                            <th md-column md-order-by="disposition">{{ \'MOTIONDIALER.DISPOSITION\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.ivrCampaignHopperFinals.rows">\n                                            <td md-cell>{{hopperFinal.uniqueid}}</td>\n                                            <td md-cell>{{hopperFinal.calleridnum}}</td>\n                                            <td md-cell>{{hopperFinal.calleridname}}</td>\n                                            <td md-cell>{{hopperFinal.statedesc}}</td>\n                                            <td md-cell>{{hopperFinal.countcongestionretry}}</td>\n                                            <td md-cell>{{hopperFinal.countbusyretry}}</td>\n                                            <td md-cell>{{hopperFinal.countnoanswerretry}}</td>\n                                            <td md-cell>{{hopperFinal.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperFinal.endtime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperFinal.disposition}}</td>\n                                            <td md-cell class="actions">\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.ivrCampaignHopperFinals.rows.length">\n                                            <td md-cell colspan="15">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperFinals" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="ivrCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IvrCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperBlacks.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperBlacks.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperBlacks.length}} {{vm_dc.selectedIvrCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHopperBlacks($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperBlacks" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperBlacks">\n                                        <tr md-row>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.ivrCampaignHopperBlacks.rows">\n                                            <td md-cell>{{hopperBlack.ContactId}}</td>\n                                            <td md-cell>{{hopperBlack.phone}}</td>\n                                            <td md-cell class="actions">\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.ivrCampaignHopperBlacks.rows.length">\n                                            <td md-cell colspan="4">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperBlacks" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",'<div id="ivrCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="MOTIONDIALER.IVRCAMPAIGNS">IvrCampaigns</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedIvrCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedIvrCampaigns =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="MOTIONDIALER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-ivrCampaigns-count">\n                    <span>{{vm.selectedIvrCampaigns.length}}</span>\n                <span translate="MOTIONDIALER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="IVRCAMPAIGNS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllIvrCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectIvrCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedIvrCampaigns" filename="ivrCampaigns.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedIvrCampaigns($event)" aria-label="delete selected" translate translate-attr-label="IVRCAMPAIGNS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- IVRCAMPAIGN TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedIvrCampaigns" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIvrCampaigns">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                <th md-column md-order-by="active">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n                                <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n                                <th md-column md-order-by="SquareProjectId">{{ \'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.ivrCampaigns.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="ivrCampaign" md-select-id="id" ng-repeat="ivrCampaign in vm.ivrCampaigns.rows">\n                                <td md-cell ng-if="ivrCampaign.userpic"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="api/users/{{ivrCampaign.id}}/avatar" /></td>\n                                <td md-cell ng-if="!ivrCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="id ">{{ivrCampaign.id}}</td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="name ">{{ivrCampaign.name}}</td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="active ">\n                                    <md-icon md-colors="{color: {{ivrCampaign.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{ivrCampaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="TrunkId ">{{ TrunkId = vm.trunks[ivrCampaign.TrunkId]; TrunkId.name }}</td>\n                                <td ng-click="vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="SquareProjectId ">{{ SquareProjectId = vm.projects[ivrCampaign.SquareProjectId]; SquareProjectId.name }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(ivrCampaign, $event)" translate="MOTIONDIALER.EDIT_IVRCAMPAIGN">\n                                                    Edit IvrCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.listadddialog(ivrCampaign, $event)" translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">\n                                                    listadd IvrCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.blacklistadddialog(ivrCampaign, $event)" translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">\n                                                    blacklistadd IvrCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(ivrCampaign, $event)" translate="MOTIONDIALER.DELETE_IVRCAMPAIGN">\n                                                    Delete IvrCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.ivrCampaigns.count}}" md-on-paginate="vm.getIvrCampaigns" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / IVRCAMPAIGN TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD IVRCAMPAIGN BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-ivrCampaign-button" ng-click="vm.createOrEditIvrCampaign($event)" aria-label="add ivrCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD IVRCAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",'<md-dialog class="queueCampaign-dialog" aria-label="New QueueCampaign">\n    <form name="queueCampaignForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="!vm.newQueueCampaign">\n                <div ng-messages="queueCampaignForm.name.$error" ng-show="queueCampaignForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n                <md-select ng-model="vm.queueCampaign.TrunkId" required>\n                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                </md-select>\n                <div ng-messages="queueCampaignForm.TrunkId.$error" ng-show="queueCampaignForm.TrunkId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n                <md-select ng-model="vm.queueCampaign.IntervalId" required>\n                    <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n                </md-select>\n                <div ng-messages="queueCampaignForm.IntervalId.$error" ng-show="queueCampaignForm.IntervalId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.METHOD">Method</label>\n                <md-select ng-model="vm.queueCampaign.dialMethod" required>\n                    <md-option ng-value="\'progressive\'">Progressive</md-option>\n                    <md-option ng-value="\'power\'">PowerDialing</md-option>\n                    <md-option ng-value="\'predictive\'">Predictive</md-option>\n                </md-select>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n                <div ng-messages="queueCampaignForm.dialMethod.$error" ng-show="queueCampaignForm.dialMethod.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n                <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent">\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n                <md-select ng-model="vm.queueCampaign.dialPredictiveOptimization">\n\n                    <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }}</md-option>\n\n                    <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }}</md-option>\n                </md-select>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n                <div ng-messages="queueCampaignForm.dialPredictiveOptimization.$error" ng-show="queueCampaignForm.dialPredictiveOptimization.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent">\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent">\n            </md-input-container>\n            <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n                <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n                <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" required>\n                <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n                <div ng-messages="queueCampaignForm.dialLimitQueue.$error" ng-show="queueCampaignForm.dialLimitQueue.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.queueCampaign.description">\n                <div ng-messages="queueCampaignForm.description.$error" ng-show="queueCampaignForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newQueueCampaign" ng-click="vm.saveQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid || queueCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newQueueCampaign" ng-click="vm.addNewQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n                    ADD QUEUECAMPAIGN\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newQueueCampaign" ng-click="vm.deleteQueueCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n    <form name="queueCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">Add Agent to queueCampaign</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n    <form name="queueCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n    <form name="hopperForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div flex class="md-block">\n                <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n                        </div>\n                    </div>\n                </mdp-date-picker>\n            </div>\n\n            <div flex class="md-block">\n                <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n                    <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n                        </div>\n                        <div ng-message="format">\n                            <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n                        </div>\n                    </div>\n                </mdp-time-picker>\n            </div>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n                    ADD HOPPER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n    <form name="queueCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n    <form name="queueCampaignForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">Add Team in QUEUECAMPAIGN</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",'<div id="motiondialer-queueCampaign" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-queueCampaigns-button md-icon-button" aria-label="Go to queueCampaigns" ng-click="vm.gotoQueueCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_QUEUECAMPAIGNS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="queueCampaign-image" hide-xs>\n                    <img ng-src="assets/images/business/queueCampaigns.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.queueCampaign.id}} {{vm.queueCampaign.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.queueCampaign.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.listadddialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n                <md-tooltip><span translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.blacklistadddialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n                <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-block-helper"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.queueCampaign, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.agentadddialog(vm.queueCampaign, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n                <md-tooltip><span translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (queueForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)"\n                translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n                                <md-select ng-model="vm.queueCampaign.TrunkId" required>\n                                    <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks">{{ TrunkId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkId.$error" ng-show="generalForm.TrunkId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n                                <md-select ng-model="vm.queueCampaign.TrunkBackupId">\n                                    <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks">{{ TrunkBackupId.name }}</md-option>\n                                    <md-option ng-value="null">None</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.TrunkBackupId.$error" ng-show="generalForm.TrunkBackupId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n                                <md-select ng-model="vm.queueCampaign.IntervalId" required>\n                                    <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval">{{ IntervalId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.IntervalId.$error" ng-show="generalForm.IntervalId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.queueCampaign.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n                        </div>\n                        <form name="campaignForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.METHOD">Method</label>\n                                <md-select ng-model="vm.queueCampaign.dialMethod" required autofocus>\n                                    <md-option ng-value="\'progressive\'">Progressive</md-option>\n                                    <md-option ng-value="\'power\'">PowerDialing</md-option>\n                                    <md-option ng-value="\'predictive\'">Predictive</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n                                <div ng-messages="campaignForm.dialMethod.$error" ng-show="campaignForm.dialMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n                                <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n                                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent">\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                                <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n                                <md-select ng-model="vm.queueCampaign.dialPredictiveOptimization">\n\n                                    <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n                                <div ng-messages="campaignForm.dialPredictiveOptimization.$error" ng-show="campaignForm.dialPredictiveOptimization.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                                <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n                                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent">\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n                                <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n                                <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent">\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n                                <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n                                <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n                                <div ng-messages="campaignForm.dialLimitQueue.$error" ng-show="campaignForm.dialLimitQueue.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container queue md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.QUEUE">QUEUE</div>\n                        </div>\n                        <form name="queueForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.QUEUEOPTIONS">QueueOptions</label>\n                                <input type="text" name="dialQueueOptions" ng-model="vm.queueCampaign.dialQueueOptions" autofocus>\n                                <div ng-messages="queueForm.dialQueueOptions.$error" ng-show="queueForm.dialQueueOptions.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.QUEUEOPTIONS_REQUIRED">QueueOptions field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n                                <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="99" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n                                <div ng-messages="queueForm.dialQueueTimeout.$error" ng-show="queueForm.dialQueueTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED">QueueTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.queueCampaign.strategy" required>\n                                    <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n                                    <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n                                    <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n                                    <md-option ng-value="\'random\'">Random</md-option>\n                                    <md-option ng-value="\'linear\'">Linear</md-option>\n                                    <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n                                </md-select>\n                                <div ng-messages="queueForm.strategy.$error" ng-show="queueForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.AGENTTIMEOUT">AgentTimeout</label>\n                                <input type="number" name="timeout" ng-model="vm.queueCampaign.timeout" min="0" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n                                <div ng-messages="queueForm.timeout.$error" ng-show="queueForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED">AgentTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.RETRY">Retry</label>\n                                <input type="number" name="retry" ng-model="vm.queueCampaign.retry" min="0">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.RETRY"></span></div>\n                                <div ng-messages="queueForm.retry.$error" ng-show="queueForm.retry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.WRAPUPTIME">WrapupTime</label>\n                                <input type="number" name="wrapuptime" ng-model="vm.queueCampaign.wrapuptime" min="0">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.WRAPUPTIME"></span></div>\n                                <div ng-messages="queueForm.wrapuptime.$error" ng-show="queueForm.wrapuptime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.WEIGHT">Weight</label>\n                                <input type="number" name="weight" ng-model="vm.queueCampaign.weight" min="0">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.WEIGHT"></span></div>\n                                <div ng-messages="queueForm.weight.$error" ng-show="queueForm.weight.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>\n                                <md-select ng-model="vm.queueCampaign.musiconhold">\n                                    <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds">{{ musiconhold.name }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.MUSICONHOLD"></span></div>\n                                <div ng-messages="queueForm.musiconhold.$error" ng-show="queueForm.musiconhold.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n                                <md-select ng-model="vm.queueCampaign.dialQueueProject">\n                                    <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects">{{ dialQueueProject.name }}</md-option>\n                                    <md-option ng-value="null">None</md-option>\n                                </md-select>\n                                <div ng-messages="queueForm.dialQueueProject.$error" ng-show="queueForm.dialQueueProject.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n                        </div>\n                        <form name="originateForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n                                <input type="text" name="dialOriginateCallerIdName" ng-model="vm.queueCampaign.dialOriginateCallerIdName" autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n                                <div ng-messages="originateForm.dialOriginateCallerIdName.$error" ng-show="originateForm.dialOriginateCallerIdName.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n                                <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.queueCampaign.dialOriginateCallerIdNumber">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n                                <div ng-messages="originateForm.dialOriginateCallerIdNumber.$error" ng-show="originateForm.dialOriginateCallerIdNumber.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n                                <input type="number" name="dialOriginateTimeout" ng-model="vm.queueCampaign.dialOriginateTimeout" min="1" max="999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n                                <div ng-messages="originateForm.dialOriginateTimeout.$error" ng-show="originateForm.dialOriginateTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n                        </div>\n                        <form name="globalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n                                <input type="number" name="dialGlobalMaxRetry" ng-model="vm.queueCampaign.dialGlobalMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n                                <div ng-messages="globalForm.dialGlobalMaxRetry.$error" ng-show="globalForm.dialGlobalMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n                        </div>\n                        <form name="congestionForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n                                <input type="number" name="dialCongestionMaxRetry" ng-model="vm.queueCampaign.dialCongestionMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n                                <div ng-messages="congestionForm.dialCongestionMaxRetry.$error" ng-show="congestionForm.dialCongestionMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n                                <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.queueCampaign.dialCongestionRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n                                <div ng-messages="congestionForm.dialCongestionRetryFrequency.$error" ng-show="congestionForm.dialCongestionRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n                        </div>\n                        <form name="busyForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n                                <input type="number" name="dialBusyMaxRetry" ng-model="vm.queueCampaign.dialBusyMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n                                <div ng-messages="busyForm.dialBusyMaxRetry.$error" ng-show="busyForm.dialBusyMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n                                <input type="number" name="dialBusyRetryFrequency" ng-model="vm.queueCampaign.dialBusyRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n                                <div ng-messages="busyForm.dialBusyRetryFrequency.$error" ng-show="busyForm.dialBusyRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n                        </div>\n                        <form name="noanswerForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n                                <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.queueCampaign.dialNoAnswerMaxRetry" min="1" max="999" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n                                <div ng-messages="noanswerForm.dialNoAnswerMaxRetry.$error" ng-show="noanswerForm.dialNoAnswerMaxRetry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n                                <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.queueCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n                                <div ng-messages="noanswerForm.dialNoAnswerRetryFrequency.$error" ng-show="noanswerForm.dialNoAnswerRetryFrequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork"><span translate="MOTIONDIALER.AFTERCALLWORK">AfterCallWork</span></md-switch>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span></div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">\n                                <label translate="MOTIONDIALER.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n                                <input type="number" name="acwTimeout" ng-model="vm.queueCampaign.acwTimeout" min="0" required>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n                                <div ng-messages="advancedForm.acwTimeout.$error" ng-show="advancedForm.acwTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.AUTOPAUSE">AutoPause</label>\n                                <md-select ng-model="vm.queueCampaign.autopause">\n\n                                    <md-option ng-value="\'all\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.AUTOPAUSE"></span></div>\n                                <div ng-messages="advancedForm.autopause.$error" ng-show="advancedForm.autopause.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.RINGINUSE">RingInUse</label>\n                                <md-select ng-model="vm.queueCampaign.ringinuse">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.RINGINUSE"></span></div>\n                                <div ng-messages="advancedForm.ringinuse.$error" ng-show="advancedForm.ringinuse.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.MEMBERDELAY">MemberDelay</label>\n                                <input type="number" name="memberdelay" ng-model="vm.queueCampaign.memberdelay" min="0">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.MEMBERDELAY"></span></div>\n                                <div ng-messages="advancedForm.memberdelay.$error" ng-show="advancedForm.memberdelay.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TIMEOUTRESTART">TimeoutRestart</label>\n                                <md-select ng-model="vm.queueCampaign.timeoutrestart">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEOUTRESTART"></span></div>\n                                <div ng-messages="advancedForm.timeoutrestart.$error" ng-show="advancedForm.timeoutrestart.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.MONITORFORMAT">MonitorFormat</label>\n                                <md-select ng-model="vm.queueCampaign.monitor_format">\n                                    <md-option ng-value="\'\'">Inactive</md-option>\n                                    <md-option ng-value="\'wav\'">wav</md-option>\n                                    <md-option ng-value="\'wav49\'">wav49</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span></div>\n                                <div ng-messages="advancedForm.monitor_format.$error" ng-show="advancedForm.monitor_format.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.CONTEXT">Context</label>\n                                <input type="text" name="context" ng-model="vm.queueCampaign.context">\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.CONTEXT"></span></div>\n                                <div ng-messages="advancedForm.context.$error" ng-show="advancedForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n                                <md-select ng-model="vm.queueCampaign.setinterfacevar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.SETINTERFACEVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setinterfacevar.$error" ng-show="advancedForm.setinterfacevar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.SETQUEUEVARIABLES">SetQueueVariables</label>\n                                <md-select ng-model="vm.queueCampaign.setqueuevar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setqueuevar.$error" ng-show="advancedForm.setqueuevar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n                                <md-select ng-model="vm.queueCampaign.setqueueentryvar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setqueueentryvar.$error" ng-show="advancedForm.setqueueentryvar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n                        </div>\n                        <form name="globalintervalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n                                <input type="text" name="dialGlobalInterval" ng-model="vm.queueCampaign.dialGlobalInterval" required autofocus>\n                                <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n                                <div ng-messages="globalintervalForm.dialGlobalInterval.$error" ng-show="globalintervalForm.dialGlobalInterval.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="queueCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n                        </div>\n                        <form name="timezoneForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n                                <ms-timezone name="dialTimezone" ng-model="vm.queueCampaign.dialTimezone" autofocus>\n                                    <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n                                    <div ng-messages="timezoneForm.dialTimezone.$error" ng-show="timezoneForm.dialTimezone.$touched" role="alert">\n                                        <div ng-message="required">\n                                            <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n                                        </div>\n                                    </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="QueueCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHoppers.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHoppers.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedQueueCampaignHoppers.length}} {{vm_dc.selectedQueueCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHoppers" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHoppers">\n                                        <tr md-row>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="countcongestionretry">{{ \'MOTIONDIALER.CONGESTION\' | translate }}</th>\n                                            <th md-column md-order-by="countbusyretry">{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n                                            <th md-column md-order-by="countnoanswerretry">{{ \'MOTIONDIALER.NOANSWER\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.queueCampaignHoppers.rows">\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.ContactId}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.phone}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.countcongestionretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.countbusyretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.countnoanswerretry}}</td>\n                                            <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n                                                                Edit Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n                                                                Delete Hopper\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.queueCampaignHoppers.rows.length">\n                                            <td md-cell colspan="9">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHoppers.count}}" md-on-paginate="vm_dc.getQueueCampaignHoppers" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="QueueCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperHistories.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperHistories.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperHistories.length}} {{vm_dc.selectedQueueCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHopperHistories($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperHistories" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperHistories">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'MOTIONDIALER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="calleridname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="statedesc">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n                                            <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'MOTIONDIALER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'MOTIONDIALER.ENDTIME\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.queueCampaignHopperHistories.rows">\n                                            <td md-cell>{{hopperHistory.uniqueid}}</td>\n                                            <td md-cell>{{hopperHistory.ContactId}}</td>\n                                            <td md-cell>{{hopperHistory.calleridnum}}</td>\n                                            <td md-cell>{{hopperHistory.calleridname}}</td>\n                                            <td md-cell>{{hopperHistory.statedesc}}</td>\n                                            <td md-cell>{{hopperHistory.scheduledat | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperHistory.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperHistory.endtime | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.queueCampaignHopperHistories.rows.length">\n                                            <td md-cell colspan="11">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperHistories" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.FINAL">FINAL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="QueueCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperFinals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperFinals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperFinals.length}} {{vm_dc.selectedQueueCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHopperFinals($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperFinals" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperFinals">\n                                        <tr md-row>\n                                            <th md-column md-order-by="uniqueid">{{ \'MOTIONDIALER.UNIQUEID\' | translate }}</th>\n                                            <th md-column md-order-by="calleridnum">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column md-order-by="calleridname">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="statedesc">{{ \'MOTIONDIALER.STATUS\' | translate }}</th>\n                                            <th md-column md-order-by="countcongestionretry">{{ \'MOTIONDIALER.CONGESTION\' | translate }}</th>\n                                            <th md-column md-order-by="countbusyretry">{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n                                            <th md-column md-order-by="countnoanswerretry">{{ \'MOTIONDIALER.NOANSWER\' | translate }}</th>\n                                            <th md-column md-order-by="starttime">{{ \'MOTIONDIALER.STARTTIME\' | translate }}</th>\n                                            <th md-column md-order-by="endtime">{{ \'MOTIONDIALER.ENDTIME\' | translate }}</th>\n                                            <th md-column md-order-by="disposition">{{ \'MOTIONDIALER.DISPOSITION\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.queueCampaignHopperFinals.rows">\n                                            <td md-cell>{{hopperFinal.uniqueid}}</td>\n                                            <td md-cell>{{hopperFinal.calleridnum}}</td>\n                                            <td md-cell>{{hopperFinal.calleridname}}</td>\n                                            <td md-cell>{{hopperFinal.statedesc}}</td>\n                                            <td md-cell>{{hopperFinal.countcongestionretry}}</td>\n                                            <td md-cell>{{hopperFinal.countbusyretry}}</td>\n                                            <td md-cell>{{hopperFinal.countnoanswerretry}}</td>\n                                            <td md-cell>{{hopperFinal.starttime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperFinal.endtime | date:\'medium\'}}</td>\n                                            <td md-cell>{{hopperFinal.disposition}}</td>\n                                            <td md-cell class="actions">\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.queueCampaignHopperFinals.rows.length">\n                                            <td md-cell colspan="15">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperFinals" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="queueCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="QueueCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperBlacks.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperBlacks.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperBlacks.length}} {{vm_dc.selectedQueueCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHopperBlacks($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperBlacks" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperBlacks">\n                                        <tr md-row>\n                                            <th md-column md-order-by="ContactId">{{ \'MOTIONDIALER.CONTACTID\' | translate }}</th>\n                                            <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.queueCampaignHopperBlacks.rows">\n                                            <td md-cell>{{hopperBlack.ContactId}}</td>\n                                            <td md-cell>{{hopperBlack.phone}}</td>\n                                            <td md-cell class="actions">\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.queueCampaignHopperBlacks.rows.length">\n                                            <td md-cell colspan="4">\n                                                <span class="text-boxed-ligth" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperBlacks" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",'<div id="queueCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="MOTIONDIALER.QUEUECAMPAIGNS">QueueCampaigns</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedQueueCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedQueueCampaigns =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="MOTIONDIALER.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-queueCampaigns-count">\n                    <span>{{vm.selectedQueueCampaigns.length}}</span>\n                <span translate="MOTIONDIALER.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="QUEUECAMPAIGNS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllQueueCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectQueueCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedQueueCampaigns" filename="queueCampaigns.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedQueueCampaigns($event)" aria-label="delete selected" translate translate-attr-label="QUEUECAMPAIGNS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- QUEUECAMPAIGN TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedQueueCampaigns" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueueCampaigns">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                                <th md-column md-order-by="dialActive">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n                                <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n                                <th md-column md-order-by="dialMethod">{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'MOTIONDIALER.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.queueCampaigns.rows.length">\n                                <td md-cell colspan="7">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="queueCampaign" md-select-id="id" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n                                <td md-cell ng-if="queueCampaign.userpic"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="api/users/{{queueCampaign.id}}/avatar" /></td>\n                                <td md-cell ng-if="!queueCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="id ">{{queueCampaign.id}}</td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="name ">{{queueCampaign.name}}</td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialActive ">\n                                    <md-icon md-colors="{color: {{queueCampaign.dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{queueCampaign.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="TrunkId ">{{ TrunkId = vm.trunks[queueCampaign.TrunkId]; TrunkId.name }}</td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialMethod ">{{ vm.arraydialMethod[queueCampaign.dialMethod].option }}</td>\n                                <td ng-click="vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="strategy ">{{ vm.arraystrategy[queueCampaign.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(queueCampaign, $event)" translate="MOTIONDIALER.EDIT_QUEUECAMPAIGN">\n                                                    Edit QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.listadddialog(queueCampaign, $event)" translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">\n                                                    listadd QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.blacklistadddialog(queueCampaign, $event)" translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">\n                                                    blacklistadd QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.teamadddialog(queueCampaign, $event)" translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">\n                                                    teamadd QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.agentadddialog(queueCampaign, $event)" translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">\n                                                    agentadd QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(queueCampaign, $event)" translate="MOTIONDIALER.DELETE_QUEUECAMPAIGN">\n                                                    Delete QueueCampaign\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.queueCampaigns.count}}" md-on-paginate="vm.getQueueCampaigns" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / QUEUECAMPAIGN TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD QUEUECAMPAIGN BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-queueCampaign-button" ng-click="vm.createOrEditQueueCampaign($event)" aria-label="add queueCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD QUEUECAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.AGENTS">Agents</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n        <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n            <i class="icon-information-outline grey-600-fg">\n        <md-tooltip>{{\'MOTIONDIALER.INFO\' | translate}}</md-tooltip>\n      </i>\n        </md-button>\n    </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n            <tr md-row>\n                <th md-column width="20px"></th>\n                <th md-column md-order-by="fullname">{{ \'MOTIONDIALER.FULLNAME\' | translate }}</th>\n                <th md-column md-order-by="internal">{{ \'MOTIONDIALER.INTERNAL\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.PHONE_STATE\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.PHONE_STATUS\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.agents">\n                <td md-cell colspan="6">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="agent" md-select-id="id" ng-repeat="(id, agent) in vm.agents">\n                <td md-cell>\n                    <div class="avatar-wrapper">\n                        <img md-menu-align-target class="avatar" ng-src="{{agent.userpic && \'api/users/\'+agent.id+\'/avatar\' || \'assets/images/avatars/profile.jpg\'}}">\n                        <md-icon md-font-icon class="icon status s16 icon-checkbox-marked-circle" ng-class="agent.online ? \'green-300-fg\' : \'red-300-fg\'"></md-icon>\n                    </div>\n                </td>\n                <td md-cell>\n                    <div layout="column">\n                        <span class="text-truncate"><span ng-if="agent.online" class="text-boxed"><timer start-time="agent.lastLoginAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>{{agent.fullname}}</span>\n                        <span class="text-truncate" ng-if="agent.voicePause">\n              <span><span class="text-boxed"><timer start-time="agent.lastPauseAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span></span><span class="blink red-fg">{{agent.pauseType || \'dafault\' | uppercase}}</span>\n                        </span>\n                    </div>\n                </td>\n                <td md-cell>\n                    {{agent.internal}}\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.stateClass[agent.state]">\n            <md-tooltip>{{\'MOTIONDIALER.\' + agent.state | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span class="text-boxed" ng-if="agent.stateTime && vm.isAvailableState(agent.state)">\n            <timer ng-if="agent.stateTime" start-time="agent.stateTime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n          </span>\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.statusClass[agent.status]">\n            <md-tooltip>{{\'MOTIONDIALER.\' + agent.status | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span ng-if="agent.status === \'registered\'" class="text-boxed">{{agent.address}}</span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="4">\n                            <md-menu-item>\n                                <md-button ng-click="vm.logout(agent, $event)" translate="MOTIONDIALER.LOGOUT">\n                                    Logout\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.queueAdd(agent, $event)" translate="MOTIONDIALER.AGENTADD_QUEUE">\n                                    Add Agent In Queue\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-menu>\n                                    <md-button ng-click="$mdMenu.open()" translate="MOTIONDIALER.PAUSE">Pause</md-button>\n                                    <md-menu-content>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.pause(agent)"><em translate="MOTIONDIALER.DEFAULT_PAUSE">Default Pause</em></md-button>\n                                        </md-menu-item>\n                                        <md-menu-item ng-if="vm.pauses.rows.length" ng-repeat="pause in vm.pauses.rows">\n                                            <md-button ng-click="vm.pause(agent, pause.name)">{{pause.name}}</md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.unPause(agent)" translate="MOTIONDIALER.UNPAUSE">\n                                    Unpause\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCampaigns">\n            <tr md-row>\n                <th md-column>{{\'MOTIONDIALER.NAME\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.TOTAL\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.TOTAL_MANAGED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.LIMITED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.ORIGINATED\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.MESSAGE\' | translate}}</th>\n                <th md-column>{{\'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate}}</th>\n                <th md-column>{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.campaigns">\n                <td md-cell colspan="8">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(id, campaign) in vm.campaigns">\n                <td md-cell>\n                    <span>{{campaign.name}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.ivrTotalCallsDays || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.ivrAnswerCallsDay || 0}} ({{(campaign.ivrTotalCallsDays) ? (campaign.ivrAnswerCallsDay || 0) * 100/(campaign.ivrTotalCallsDays ) : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.limitCalls || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.originated || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.message ? (\'MOTIONDIALER.\'+campaign.message | translate) : \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{campaign.dialQueueProject || \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{campaign.Trunk ? campaign.Trunk.name : \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <md-icon md-colors="{color: {{campaign.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{campaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="3">\n                            <md-menu-item>\n                                <md-button ng-click="vm.createOrEditIvrCampaign($event, campaign)" translate="MOTIONDIALER.EDIT_CAMPAIGN">\n                                    Edit Campaign\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getCampaigns" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n        \x3c!-- <div flex></div>\n    <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar> --\x3e\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n    <table md-table>\n        <thead md-head>\n            <tr md-row>\n                <th md-column width="30px"></th>\n                <th md-column>{{ \'MOTIONDIALER.DID\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.QUEUE\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.CALLER\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.DURATION\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n                <td md-cell colspan="6">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n                <td md-cell>\n                    <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n                    <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n                </td>\n                <td md-cell>{{channel.exten}}</td>\n                <td md-cell>{{channel.queue}}</td>\n                <td md-cell>{{channel.calleridnum}}</td>\n                <td md-cell>\n                    <span ng-if="channel.queuecallerleaveAt">\n              {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n              <span class="text-boxed">\n                <timer start-time="channel.queuecallerleaveAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n              </span>\n                    </span>\n                    <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n              {{ \'MOTIONDIALER.WAITING_FOR_AGENT\' | translate }}\n              <timer start-time="channel.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n                </td>\n                <td md-cell>\n                    <span class="text-boxed">\n              <timer start-time="channel.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="2">\n                            <md-menu-item>\n                                <md-button ng-click="vm.hangup(channel.uniqueid)" translate="MOTIONDIALER.HANGUP">\n                                    Hangup\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="MOTIONDIALER.REDIRECT_TO_NUMBER">\n                                    Number\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-menu>\n                                    <md-button ng-click="$mdMenu.open()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">Redirect to Agent</md-button>\n                                    <md-menu-content>\n                                        <md-menu-item ng-repeat="agent in vm.agents.rows">\n                                            <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name)">{{agent.name}}</md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n            \x3c!-- <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n        <td md-cell>\n          <i ng-class="vm.channelStatusClass[call.status.toLowerCase()]"></i>\n        </td>\n        <td md-cell>{{call.exten}}</td>\n        <td md-cell>{{call.queue}}</td>\n        <td md-cell><span ng-if="call.calleridname">{{call.calleridname}}, </span>{{call.calleridnum}}</td>\n        <td md-cell>\n          <span ng-if="call.queuecallerleaveAt">\n            {{call.connectedlinename}}, {{call.connectedlinenum}}\n            <span class="text-boxed">\n              <timer start-time="call.queuecallerleaveAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n          </span>\n          <span ng-if="!call.queuecallerleaveAt" class="text-boxed" translate="MOTIONDIALER.WAITING_FOR_AGENT">\n            Waiting for agent...\n            <span class="text-boxed">\n              <timer start-time="call.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n          </span>\n        </td>\n        <td md-cell>\n          <span class="text-boxed">\n            <timer ng-if="call.queuecallerjoinAt" start-time="call.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            <span ng-if="call.queuecallercomplete || call.queuecallerabandon || call.queuecallerexit" translate="MOTIONDIALER.CLOSING">Closing</span>\n          </span>\n        </td>\n        <td md-cell class="actions">\n          <md-menu>\n            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n              <md-icon md-font-icon="icon-dots-vertical" ></md-icon>\n            </md-button>\n\n            <md-menu-content width="2">\n              <md-menu-item>\n                <md-button ng-click="vm.hangup(call.uniqueid)" translate="MOTIONDIALER.HANGUP">\n                  Hangup\n                </md-button>\n              </md-menu-item>\n              <md-menu-item>\n                <md-button ng-click="vm.redirectToNumber($event, call.uniqueid)" translate="MOTIONDIALER.REDIRECT_TO_NUMBER">\n                  Number\n                </md-button>\n              </md-menu-item>\n              <md-menu-item>\n                <md-menu>\n                  <md-button ng-click="$mdMenu.open()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">Redirect to Agent</md-button>\n                  <md-menu-content>\n                    <md-menu-item ng-repeat="agent in vm.agents.rows">\n                      <md-button ng-click="vm.redirectToAgent(call.uniqueid, agent.name)">{{agent.name}}</md-button>\n                    </md-menu-item>\n                  </md-menu-content>\n                </md-menu>\n              </md-menu-item>\n            </md-menu-content>\n          </md-menu>\n        </td>\n      </tr> --\x3e\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n            <tr md-row>\n                <th md-column>{{\' MOTIONDIALER.NAME\' | translate}}</th>\n                <th md-column>{{\' MOTIONDIALER.TOTAL\' | translate}}</th>\n                <th md-column>{{\' MOTIONDIALER.TOTAL_OFFERED\' | translate}}</th>\n                <th md-column>{{\' MOTIONDIALER.MANAGED\' | translate}}</th>\n                <th md-column>{{\' MOTIONDIALER.ABANDONED\' | translate}}</th>\n                <th md-column>{{\' MOTIONDIALER.DROPPED\' | translate}}</th>\n                <th md-column>{{\' MOTIONDIALER.AVG_HOLD_TIME\' | translate}}</th>\n                <th md-column>{{\' MOTIONDIALER.AVG_DURATION\' | translate}}</th>\n                <th md-column>{{\' MOTIONDIALER.AVG_BILLABLE\' | translate}}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.queues">\n                <td md-cell colspan="8">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(id, queue) in vm.queues">\n                <td md-cell>\n                    <span>{{queue.name}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.answered + queue.outboundNoAnswerCallsDay + queue.outboundBusyCallsDay + queue.outboundCongestionCallsDay + queue.outboundNoSuchCallsDay + queue.outboundUnknownCallsDay + queue.outboundDropCallsDayTimeout + queue.outboundDropCallsDayCallersExit + queue.outboundBlacklistCallsDay + queue.outboundOriginateFailureCallsDay + queue.outboundAnswerAgiCallsDay|| 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.total || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(100 - ((queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total)) - ((queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total )) > 0) ? (100 - ((queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total)) - ((queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total ))) : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayCallersExit || 0}} ({{(queue.total) ? (queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total ) : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayTimeout || 0}} ({{(queue.total) ? (queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total) : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumHoldTime / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumDuration / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queues/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.QUEUES">Queues</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n            <tr md-row>\n                <th md-column>{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.LOGGED_IN\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.PAUSED\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.READY\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.WAITING\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.TALKING\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.ORIGINATED\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.MESSAGE\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n                <th md-column>{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.queues">\n                <td md-cell colspan="12">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="queue" md-select-id="id" ng-repeat="(id, queue) in vm.queues">\n                <td md-cell>{{queue.name}}</td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.loggedInDb || 0}} ({{queue.loggedIn || 0}})</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.paused || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.available || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.waiting || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.talking || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.originated || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.message ? (\'MOTIONDIALER.\'+queue.message | translate) : \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.dialMethod || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.Trunk ? queue.Trunk.name : \'--\'}}</span>\n                </td>\n                <td md-cell>\n                    <md-icon md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="3">\n                            <md-menu-item>\n                                <md-button ng-click="vm.createOrEditVoiceQueue($event, queue)" translate="MOTIONDIALER.EDIT_QUEUE">\n                                    Edit Queue\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.agentAdd($event, queue)" translate="MOTIONDIALER.AGENTSADD_QUEUE">\n                                    Add Agents to queue\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.AGENTS">Agents</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.QUEUES">Queues</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.QUEUE_PARAMS">Queue Parameters</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n                </md-tab-label>\n            </md-tab>\n        </md-tabs>\n\n        <md-card ui-view></md-card>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n    <form name="openchannelAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.openchannelAccount.name" required autofocus>\n                <div ng-messages="openchannelAccountForm.name.$error" ng-show="openchannelAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.MOTIONADDRESS">motionaddress</label>\n                <input type="url" name="remote" ng-model="vm.openchannelAccount.remote" required>\n                <div ng-messages="openchannelAccountForm.remote.$error" ng-show="openchannelAccountForm.remote.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.openchannelAccount.description">\n                <div ng-messages="openchannelAccountForm.description.$error" ng-show="openchannelAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOpenchannelAccount" ng-click="vm.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid || openchannelAccountForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE"\n                    translate-attr-aria-label="OPENCHANNEL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOpenchannelAccount" ng-click="vm.addNewOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELACCOUNT" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n                    ADD OPENCHANNELACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOpenchannelAccount" ng-click="vm.deleteOpenchannelAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelDispositions/dialog.html",'<md-dialog class="openchannelDisposition-dialog" aria-label="New OpenchannelDisposition">\n    <form name="openchannelDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.openchannelDisposition.name" required autofocus>\n                <div ng-messages="openchannelDispositionForm.name.$error" ng-show="openchannelDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOpenchannelDisposition" ng-click="vm.saveOpenchannelDisposition()" class="send-button md-accent md-raised" ng-disabled="openchannelDispositionForm.$invalid || openchannelDispositionForm.$pristine" aria-label="SAVE"\n                    translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOpenchannelDisposition" ng-click="vm.addNewOpenchannelDisposition()" class="send-button md-accent md-raised" ng-disabled="openchannelDispositionForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELDISPOSITION"\n                    translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELDISPOSITION">\n                    ADD OPENCHANNELDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOpenchannelDisposition" ng-click="vm.deleteOpenchannelDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",'<div id="openchannel-openchannelAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-openchannelAccounts-button md-icon-button" aria-label="Go to openchannelAccounts" ng-click="vm.gotoOpenchannelAccounts()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="openchannelAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/openchannelAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.openchannelAccount.id}} {{vm.openchannelAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (apiForm.$invalid) || (openchannelDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"\n                translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.openchannelAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.LIST">List</label>\n                                <md-select ng-model="vm.openchannelAccount.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.openchannelAccount.fidelity" aria-label="fidelity"><span translate="OPENCHANNEL.FIDELITY">fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.openchannelAccount.fidelity" class="md-block">\n                                <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.openchannelAccount.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.MOTIONADDRESS">motionaddress</label>\n                                <input type="url" name="remote" ng-model="vm.openchannelAccount.remote" required>\n                                <div ng-messages="generalForm.remote.$error" ng-show="generalForm.remote.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="OPENCHANNEL.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.openchannelAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.API">API</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container api md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.API">API</div>\n                        </div>\n                        <form name="apiForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container openchanneldispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="OpenchannelAccountOpenchannelDispositionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="OPENCHANNEL.OPENCHANNELDISPOSITIONS">OpenchannelDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event)" aria-label="add openchannelDisposition" translate translate-attr-label="OPENCHANNEL.ADD_OPENCHANNELDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length}} {{vm_dc.selectedOpenchannelAccountOpenchannelDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelDispositions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNELACCOUNTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountOpenchannelDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountOpenchannelDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'OPENCHANNEL.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="openchannelDisposition" md-select-id="id" ng-repeat="openchannelDisposition in vm_dc.openchannelAccountOpenchannelDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" md-cell>{{openchannelDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" md-cell>{{openchannelDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" md-cell>{{openchannelDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelDisposition($event, openchannelDisposition)" translate="OPENCHANNEL.EDIT_OPENCHANNELDISPOSITION">\n                                                                Edit OpenchannelDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(openchannelDisposition, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELDISPOSITION">\n                                                                Delete OpenchannelDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.openchannelAccountOpenchannelDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="OPENCHANNEL.NO_OPENCHANNELDISPOSITION_AVAILABLE">No openchanneldisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountOpenchannelDispositions.count}}" md-on-paginate="vm_dc.getOpenchannelAccountOpenchannelDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.openchannelAccount.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.openchannelAccount.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="OPENCHANNEL.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="openchannelAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.openchannelAccount.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.openchannelAccount.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="OPENCHANNEL.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="openchannelAccount-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.openchannelAccount.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.openchannelAccount.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="OPENCHANNEL.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",'<div id="openchannelAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELACCOUNTS">OpenchannelAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedOpenchannelAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="OPENCHANNEL.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-openchannelAccounts-count">\n                    <span>{{vm.selectedOpenchannelAccounts.length}}</span>\n                <span translate="OPENCHANNEL.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNELACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelAccounts" filename="openchannelAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedOpenchannelAccounts($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNELACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- OPENCHANNELACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.openchannelAccounts.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="openchannelAccount" md-select-id="id" ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n                                <td md-cell ng-if="openchannelAccount.userpic"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="api/users/{{openchannelAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!openchannelAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="id ">{{openchannelAccount.id}}</td>\n                                <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="name ">{{openchannelAccount.name}}</td>\n                                <td ng-click="vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="description ">{{openchannelAccount.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(openchannelAccount, $event)" translate="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT">\n                                                    Edit OpenchannelAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(openchannelAccount, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELACCOUNT">\n                                                    Delete OpenchannelAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.openchannelAccounts.count}}" md-on-paginate="vm.getOpenchannelAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / OPENCHANNELACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD OPENCHANNELACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-openchannelAccount-button" ng-click="vm.createOrEditOpenchannelAccount($event)" aria-label="add openchannelAccount" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD OPENCHANNELACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",'<md-dialog class="openchannelQueue-dialog" aria-label="New OpenchannelQueue">\n    <form name="openchannelQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="openchannelQueueForm.name.$error" ng-show="openchannelQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.openchannelQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="openchannelQueueForm.strategy.$error" ng-show="openchannelQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" required>\n                <div ng-messages="openchannelQueueForm.timeout.$error" ng-show="openchannelQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.openchannelQueue.description">\n                <div ng-messages="openchannelQueueForm.description.$error" ng-show="openchannelQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOpenchannelQueue" ng-click="vm.saveOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid || openchannelQueueForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE"\n                    translate-attr-aria-label="OPENCHANNEL.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOpenchannelQueue" ng-click="vm.addNewOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELQUEUE" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n                    ADD OPENCHANNELQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOpenchannelQueue" ng-click="vm.deleteOpenchannelQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue">\n    <form name="openchannelQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">Add Team in OPENCHANNELQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="OPENCHANNEL.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="openchannelQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/view.html",'<div id="openchannel-openchannelQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-openchannelQueues-button md-icon-button" aria-label="Go to openchannelQueues" ng-click="vm.gotoOpenchannelQueues()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="openchannelQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/openchannelQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.openchannelQueue.id}} {{vm.openchannelQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.openchannelQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="openchannelQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.openchannelQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.openchannelQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",'<div id="openchannelQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELQUEUES">OpenchannelQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedOpenchannelQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="OPENCHANNEL.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-openchannelQueues-count">\n                    <span>{{vm.selectedOpenchannelQueues.length}}</span>\n                <span translate="OPENCHANNEL.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNELQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllOpenchannelQueues()" translate="OPENCHANNEL.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectOpenchannelQueues()" translate="OPENCHANNEL.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelQueues" filename="openchannelQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedOpenchannelQueues($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNELQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- OPENCHANNELQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'OPENCHANNEL.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.openchannelQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="openchannelQueue" md-select-id="id" ng-repeat="openchannelQueue in vm.openchannelQueues.rows">\n                                <td md-cell ng-if="openchannelQueue.userpic"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="api/users/{{openchannelQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!openchannelQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="id ">{{openchannelQueue.id}}</td>\n                                <td ng-click="vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="name ">{{openchannelQueue.name}}</td>\n                                <td ng-click="vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="strategy ">{{ vm.arraystrategy[openchannelQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(openchannelQueue, $event)" translate="OPENCHANNEL.EDIT_OPENCHANNELQUEUE">\n                                                    Edit OpenchannelQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(openchannelQueue, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELQUEUE">\n                                                    Delete OpenchannelQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.openchannelQueues.count}}" md-on-paginate="vm.getOpenchannelQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / OPENCHANNELQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD OPENCHANNELQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-openchannelQueue-button" ng-click="vm.createOrEditOpenchannelQueue($event)" aria-label="add openchannelQueue" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD OPENCHANNELQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/customizations/create/dialog.html",'<md-dialog class="customization-dialog" aria-label="New Customization">\n    <form name="customizationForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n                <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n                <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" required>\n                <div ng-messages="customizationForm.headerWhiteLabel.$error" ng-show="customizationForm.headerWhiteLabel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCustomization" ng-click="vm.saveCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid || customizationForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCustomization" ng-click="vm.addNewCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CUSTOMIZATION" translate-attr-aria-label="SETTINGS.ADD_CUSTOMIZATION">\n                    ADD CUSTOMIZATION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCustomization" ng-click="vm.deleteCustomization($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/customizations/customizations.html",'<div id="customizations" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.CUSTOMIZATIONS">Customizations</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveCustomization()" ng-disabled="customizationForm.$pristine || customizationForm.$invalid" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            <div class="customization-detail-form-container customizations md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.CUSTOMIZATIONS">CUSTOMIZATIONS</div>\n                </div>\n                <form name="customizationForm" novalidate>\n                    <md-input-container class="md-block">\n                        <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n                    </md-input-container>\n                    <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n                        <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n                        <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" required>\n                        <div ng-messages="customizationForm.headerWhiteLabel.$error" ng-show="customizationForm.headerWhiteLabel.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n\n                </form>\n            </div>\n\n            <div ng-if="!vm.customization.defaultLogo" class="customization-detail-form-container logo md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.LOGO">LOGO</div>\n                </div>\n                <div ng-controller="CustomizationlogoController as vm_cl" ng-init="vm_cl.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n                    <div id="customization-image-uploader" flow-init="vm_cl.ngFlowOptions" flow-name="vm_cl.ngFlow.flow" flow-files-submitted="vm_cl.upload()" flow-file-added="vm_cl.fileAdded($file)" flow-file-success="vm_cl.fileSuccess($file, $message)" flow-complete="vm_cl.uploadComplete()"\n                        flow-drop flow-drag-enter="vm_cl.dropping=true" flow-drag-leave="vm_cl.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                        <div class="drop-text hint-text" layout="row" layout-align="center center">\n                            <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n                        </div>\n\n                        <div class="upload-button" layout="column" layout-align="center center">\n                            <md-button class="md-accent md-raised" flow-btn>\n                                Upload\n                            </md-button>\n                            <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n                        </div>\n\n                        <div layout="row" layout-align="start start" layout-wrap>\n                            <div ng-repeat="logoimage in vm_cl.customization.images" ng-switch="logoimage.type">\n                                <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n                                    <div class="overlay" layout="column" layout-align="center center">\n                                        <md-progress-linear md-mode="determinate" value="{{logoimage.file.progress() * 100}}">\n                                        </md-progress-linear>\n                                    </div>\n                                    <img class="media" flow-img="logoimage.file">\n                                </div>\n\n                                <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n                                    <img class="media" ng-src="{{logoimage.url}}">\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n\n            </div>\n\n            <div ng-if="!vm.customization.defaultLoginLogo" class="customization-detail-form-container logologin md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.LOGOLOGIN">LOGOLOGIN</div>\n                </div>\n                <div ng-controller="CustomizationlogologinController as vm_cll" ng-init="vm_cll.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n                    <div id="customization-image-uploader" flow-init="vm_cll.ngFlowOptions" flow-name="vm_cll.ngFlow.flow" flow-files-submitted="vm_cll.upload()" flow-file-added="vm_cll.fileAdded($file)" flow-file-success="vm_cll.fileSuccess($file, $message)" flow-complete="vm_cll.uploadComplete()"\n                        flow-drop flow-drag-enter="vm_cll.dropping=true" flow-drag-leave="vm_cll.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                        <div class="drop-text hint-text" layout="row" layout-align="center center">\n                            <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n                        </div>\n\n                        <div class="upload-button" layout="column" layout-align="center center">\n                            <md-button class="md-accent md-raised" flow-btn>\n                                Upload\n                            </md-button>\n                            <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n                        </div>\n\n                        <div layout="row" layout-align="start start" layout-wrap>\n                            <div ng-repeat="logologinimage in vm_cll.customization.images" ng-switch="logologinimage.type">\n                                <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n                                    <div class="overlay" layout="column" layout-align="center center">\n                                        <md-progress-linear md-mode="determinate" value="{{logologinimage.file.progress() * 100}}">\n                                        </md-progress-linear>\n                                    </div>\n                                    <img class="media" flow-img="logologinimage.file">\n                                </div>\n\n                                <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n                                    <img class="media" ng-src="{{logologinimage.url}}">\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n\n            </div>\n\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/generals/create/dialog.html",'<md-dialog class="general-dialog" aria-label="New General">\n    <form name="generalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.MIN_INTERNAL">Min_Internal</label>\n                <input type="number" name="min_internal" ng-model="vm.general.min_internal" min="0" required autofocus>\n                <div ng-messages="generalForm.min_internal.$error" ng-show="generalForm.min_internal.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.MIN_INTERNAL_REQUIRED">Min_Internal field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.MIN_MAILBOX">Min_Mailbox</label>\n                <input type="number" name="min_mailbox" ng-model="vm.general.min_mailbox" min="0" required>\n                <div ng-messages="generalForm.min_mailbox.$error" ng-show="generalForm.min_mailbox.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.MIN_MAILBOX_REQUIRED">Min_Mailbox field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.general.securePassword" aria-label="Secure_Password"><span translate="SETTINGS.SECURE_PASSWORD">Secure_Password</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.STUNADDR">Stunaddr</label>\n                <input type="text" name="stunaddr" ng-model="vm.general.stunaddr">\n                <div ng-messages="generalForm.stunaddr.$error" ng-show="generalForm.stunaddr.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.STUNADDR_REQUIRED">Stunaddr field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newGeneral" ng-click="vm.saveGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid || generalForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newGeneral" ng-click="vm.addNewGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_GENERAL" translate-attr-aria-label="SETTINGS.ADD_GENERAL">\n                    ADD GENERAL\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newGeneral" ng-click="vm.deleteGeneral($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/generals/generals.html",'<div id="generals" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.GENERAL">General</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveGeneral()" ng-disabled="generalForm.$pristine || generalForm.$invalid" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            <div class="general-detail-form-container global md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.GLOBAL">GLOBAL</div>\n                </div>\n                <form name="generalForm" novalidate>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.MIN_INTERNAL">Min_Internal</label>\n                        <input type="number" name="min_internal" ng-model="vm.general.min_internal" min="0" required autofocus>\n                        <div ng-messages="generalForm.min_internal.$error" ng-show="generalForm.min_internal.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.MIN_INTERNAL_REQUIRED">Min_Internal field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.MIN_MAILBOX">Min_Mailbox</label>\n                        <input type="number" name="min_mailbox" ng-model="vm.general.min_mailbox" min="0" required>\n                        <div ng-messages="generalForm.min_mailbox.$error" ng-show="generalForm.min_mailbox.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.MIN_MAILBOX_REQUIRED">Min_Mailbox field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <md-switch ng-model="vm.general.securePassword" aria-label="Secure_Password"><span translate="SETTINGS.SECURE_PASSWORD">Secure_Password</span></md-switch>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.STUNADDR">Stunaddr</label>\n                        <input type="text" name="stunaddr" ng-model="vm.general.stunaddr">\n                        <div ng-messages="generalForm.stunaddr.$error" ng-show="generalForm.stunaddr.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.STUNADDR_REQUIRED">Stunaddr field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n\n                </form>\n            </div>\n\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/license/license.html",'<div id="license" class="page-layout simple fullwidth doc-page">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.LICENSE">LICENSE</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n        <div>\n            <md-button type="submit" ng-click="vm.requestLicense()" class="send-button md-raised" translate="SETTINGS.REQUEST_LICENSE" translate-attr-aria-label="SETTINGS.REQUEST_LICENSE">\n                REQUEST LICENSE\n            </md-button>\n        </div>\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n            \x3c!-- LICENSE CARD --\x3e\n            <div layout="row" flex>\n                <md-card class="md-whiteframe-1dp padding-20" flex>\n                    <div layout="row" layout-align="center">\n                        <div flex layout="row" layout-align="start center">\n                            <div>\n                                <a href="https://www.xcallymotion.com/prices" target="_blank" class="md-button md-fab green-A700-bg" aria-label="Eat cake">\n                                    <md-tooltip><span translate="SETTINGS.PRICES">Prices</span></md-tooltip>\n                                    <md-icon md-font-icon="icon-coin"></md-icon>\n                                </a>\n                            </div>\n                        </div>\n                        <div flex>\n                            <div ng-switch="vm.license.months" class="text-center">\n                                <span ng-switch-when="1" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></span>\n                                <span ng-switch-when="12" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.ANNUALLY">ANNUALLY</span></span>\n                                <span ng-switch-when="36" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.PERPETUAL">PERPETUAL</span></span>\n                            </div>\n                        </div>\n                        <div flex layout="row" layout-align="end center">\n                            <div>\n                                <md-button type="submit" ng-click="vm.updateLicense()" class="md-button md-fab md-accent">\n                                    <md-tooltip><span translate="SETTINGS.UPDATE_LICENSE">License</span></md-tooltip>\n                                    <md-icon md-font-icon="icon-pencil"></md-icon>\n                                </md-button>\n                            </div>\n                        </div>\n                    </div>\n\n                    <span class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_DATE\' | translate }}: {{vm.license.expiration | date: \'longDate\'}}</span>\n                    <span class="text-center padding-bottom-10"> {{\'SETTINGS.TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.uuid}}</span></span>\n\n                    <div ng-if="vm.license.demo" layout="column">\n                        <span class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.TRIAL_VERSION\' | translate }}</span>\n                        <span class="md-subhead md-warn-fg text-center"><a href="https://www.xcallymotion.com/prices" target="_blank">{{ \'SETTINGS.PRICES\' | translate}}</a></span>\n                    </div>\n\n                    <div ng-if="vm.license.machineUuid !== vm.license.uuid" layout="column">\n                        <span class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.NEW_TOKEN_DETECTED\' | translate }}</span>\n                        <span ng-if="vm.license.gray" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_GRAY_PERIOD\' | translate }}: {{vm.license.deadline | date: \'longDate\'}}</span>\n                        <span class="text-center padding-bottom-10"> {{\'SETTINGS.NEW_TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.machineUuid}}</span></span>\n                        <span class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON\' | translate }} <span class="text-italic text-bold"><a href="mailto:license@xcally.com?subject=New%20token%20detected&body=Hi xCALLY, New Token: {{vm.license.machineUuid}}, Old token: {{vm.license.uuid}}">license@xcally.com</a>.</span></span>\n                    </div>\n\n                    <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n                    <md-divider></md-divider>\n                    <md-list layout="row">\n                        <md-list-item class="md-2-line">\n                            <md-icon md-font-icon="icon-account" class="md-avatar-icon"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3>{{ vm.license.users || 0 }}</h3>\n                                <p translate="SETTINGS.USERS">Users</p>\n                            </div>\n                        </md-list-item>\n                        <md-list-item class="md-2-line">\n                            <md-icon md-font-icon="icon-headphones" class="md-avatar-icon"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3>{{ vm.license.agents || 0 }}</h3>\n                                <p translate="SETTINGS.AGENTS">Agents</p>\n                            </div>\n                        </md-list-item>\n                        <md-list-item class="md-2-line">\n                            <md-icon md-font-icon="icon-phone" class="md-avatar-icon"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3>{{ vm.license.telephones || 0 }}</h3>\n                                <p translate="SETTINGS.TELEPHONES">Telephones</p>\n                            </div>\n                        </md-list-item>\n                    </md-list>\n\n                    <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n                    <md-divider></md-divider>\n                    <md-list layout="row">\n                        <md-list-item class="md-2-line" ng-repeat="channel in vm.channels">\n                            <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n                                <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\' }}</p>\n                            </div>\n                        </md-list-item>\n                    </md-list>\n\n                    <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n                    <md-divider></md-divider>\n                    <md-list layout="row">\n                        <md-list-item class="md-2-line" ng-repeat="module in vm.modules">\n                            <md-icon md-font-icon="{{module.icon}}" class="md-avatar-icon" ng-class="vm.license[module.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3 translate="SETTINGS.{{module.name | uppercase}}"></h3>\n                                <p ng-class="vm.license[module.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ vm.license[module.name] ? \'ENABLED\' : \'DISABLED\' }}</p>\n                            </div>\n                        </md-list-item>\n                    </md-list>\n\n                    <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n                    <md-divider></md-divider>\n                    <md-list layout="row">\n                        <md-list-item class="md-2-line" ng-repeat="other in vm.others">\n                            <md-icon md-font-icon="{{other.icon}}" class="md-avatar-icon" ng-class="vm.license[other.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n                            <div class="md-list-item-text">\n                                <h3 translate="SETTINGS.{{other.name | uppercase}}"></h3>\n'+"                                <p ng-class=\"vm.license[other.name] ? 'green-A700-fg' : 'red-A700-fg'\">{{ vm.license[other.name] ? 'ENABLED' : 'DISABLED' }}</p>\n                            </div>\n                        </md-list-item>\n                    </md-list>\n                </md-card>\n            </div>\n            \x3c!-- / LICENSE CARD --\x3e\n\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>"),e.put("app/main/apps/settings/views/license/request/dialog.html",'<md-dialog class="request-dialog" aria-label="Send Request">\n    <form name="requestForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title" translate="SETTINGS.REQUEST_LICENSE">Request License</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.license.name" required>\n                <div ng-messages="requestForm.name.$error" ng-show="requestForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Address field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.license.email" required>\n                <div ng-messages="requestForm.email.$error" ng-show="requestForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="SETTINGS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n            <div layout="row">\n                <md-input-container class="md-block" flex>\n                    <label translate="SETTINGS.USERS">Users</label>\n                    <input type="number" name="users" ng-model="vm.license.users" required>\n                    <div ng-messages="requestForm.users.$error" ng-show="requestForm.users.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="SETTINGS.ERRORS.USERS_REQUIRED">Users field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n                <md-input-container class="md-block" flex>\n                    <label translate="SETTINGS.AGENTS">Agents</label>\n                    <input type="number" name="agents" ng-model="vm.license.agents" required>\n                    <div ng-messages="requestForm.agents.$error" ng-show="requestForm.agents.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="SETTINGS.ERRORS.AGENTS_REQUIRED">Agents field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n                <md-input-container class="md-block" flex>\n                    <label translate="SETTINGS.TELEPHONES">Telephones</label>\n                    <input type="number" name="telephones" ng-model="vm.license.telephones" required>\n                    <div ng-messages="requestForm.telephones.$error" ng-show="requestForm.telephones.$touched" role="alert">\n                        <div ng-message="required">\n                            <span translate="SETTINGS.ERRORS.TELEPHONES_REQUIRED">Telephones field is required</span>\n                        </div>\n                    </div>\n                </md-input-container>\n            </div>\n\n            <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n            <div layout="row">\n                <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n            </div>\n\n            <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n            <div layout="row">\n                <md-switch ng-model="vm.license[module.name]" aria-label="{{module.name}}" ng-repeat="module in vm.modules"><span translate="SETTINGS.{{module.name | uppercase}}"></span></md-switch>\n            </div>\n\n            <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n            <div layout="row">\n                <md-switch ng-model="vm.license[other.name]" aria-label="{{other.name}}" ng-repeat="other in vm.others"><span translate="SETTINGS.{{other.name | uppercase}}"></span></md-switch>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.DESCRIPTION">Description</label>\n                <textarea name="description" ng-model="vm.license.description"></textarea>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.sendRequest()" class="send-button md-accent md-raised" ng-disabled="requestForm.$invalid || requestForm.$pristine" aria-label="SEND" translate="SETTINGS.SEND" translate-attr-aria-label="SETTINGS.SEND">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/create/dialog.html",'<md-dialog class="network-dialog" aria-label="New Network">\n    <form name="networkForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.TYPE">Type</label>\n                <md-select ng-model="vm.network.type" required autofocus>\n                    <md-option ng-value="\'localnet\'">LocalNET</md-option>\n                    <md-option ng-value="\'externip\'">ExternIP</md-option>\n                </md-select>\n                <div ng-messages="networkForm.type.$error" ng-show="networkForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.network.type == \'localnet\'" class="md-block">\n                <label translate="SETTINGS.LOCALNETADDRESS">localNetAddress</label>\n                <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/"\n                    required>\n                <div class="hint"><span translate="SETTINGS.HELP.LOCALNETADDRESS"></span></div>\n                <div ng-messages="networkForm.value.$error" ng-show="networkForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_REQUIRED">localNetAddress field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">localNetAddress must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.network.type == \'externip\'" class="md-block">\n                <label translate="SETTINGS.ADDRESS">Address</label>\n                <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" required>\n                <div class="hint"><span translate="SETTINGS.HELP.ADDRESS"></span></div>\n                <div ng-messages="networkForm.value.$error" ng-show="networkForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="SETTINGS.ERRORS.ADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">Address must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newNetwork" ng-click="vm.saveNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid || networkForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newNetwork" ng-click="vm.addNewNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_NETWORK" translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n                    ADD NETWORK\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newNetwork" ng-click="vm.deleteNetwork($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/networks.html",'<div id="networks" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.NETWORKS">Networks</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedNetworks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedNetworks =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="SETTINGS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-networks-count">\n                    <span>{{vm.selectedNetworks.length}}</span>\n                <span translate="SETTINGS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="NETWORKS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllNetworks()" translate="SETTINGS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectNetworks()" translate="SETTINGS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedNetworks" filename="networks.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedNetworks($event)" aria-label="delete selected" translate translate-attr-label="NETWORKS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- NETWORK TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedNetworks" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getNetworks">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'SETTINGS.ID\' | translate }}</th>\n                                <th md-column md-order-by="type">{{ \'SETTINGS.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="value">{{ \'SETTINGS.ADDRESS\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'SETTINGS.CREATED_AT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.networks.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="network" md-select-id="id" ng-repeat="network in vm.networks.rows">\n                                <td md-cell ng-if="network.userpic"><img class="avatar" alt="{{network.name}}" ng-src="api/users/{{network.id}}/avatar" /></td>\n                                <td md-cell ng-if="!network.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{network.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="id ">{{network.id}}</td>\n                                <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="type ">{{ vm.arraytype[network.type].option }}</td>\n                                <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="value ">{{network.value}}</td>\n                                <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="createdAt ">{{network.createdAt | date:\'medium\' }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SETTINGS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(network, $event)" translate="SETTINGS.EDIT_NETWORK">\n                                                    Edit Network\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(network, $event)" translate="SETTINGS.DELETE_NETWORK">\n                                                    Delete Network\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.networks.count}}" md-on-paginate="vm.getNetworks" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / NETWORK TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD NETWORK BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-network-button" ng-click="vm.createOrEditNetwork($event)" aria-label="add network" translate translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD NETWORK BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/smtps/create/dialog.html",'<md-dialog class="smtp-dialog" aria-label="New Smtp">\n    <form name="smtpForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.smtp.name" required autofocus>\n                <div ng-messages="smtpForm.name.$error" ng-show="smtpForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n                <md-select ng-model="vm.smtp.Smtp.service" required>\n                    <md-option ng-value="null">None</md-option>\n                    <md-option ng-value="\'gmail\'">Gmail</md-option>\n                </md-select>\n                <div ng-messages="smtpForm.Smtp.service.$error" ng-show="smtpForm.Smtp.service.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n                <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" required>\n                <div ng-messages="smtpForm.Smtp.host.$error" ng-show="smtpForm.Smtp.host.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n                <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" required>\n                <div ng-messages="smtpForm.Smtp.user.$error" ng-show="smtpForm.Smtp.user.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n                <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n                <div ng-messages="smtpForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newSmtp ">\n                <label translate="SETTINGS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="Smtp.pass" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="smtpForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="SETTINGS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n                <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" required>\n                <div ng-messages="smtpForm.Smtp.port.$error" ng-show="smtpForm.Smtp.port.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SETTINGS.DESCRIPTION">Description</label>\n                <input type="" name="description" ng-model="vm.smtp.description">\n                <div ng-messages="smtpForm.description.$error" ng-show="smtpForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSmtp" ng-click="vm.saveSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid || smtpForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSmtp" ng-click="vm.addNewSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_SMTP" translate-attr-aria-label="SETTINGS.ADD_SMTP">\n                    ADD SMTP\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSmtp" ng-click="vm.deleteSmtp($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/smtps/smtps.html",'<div id="smtps" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.SMTP">Smtp</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        <div>\n            <md-button type="submit" ng-click="vm.verifySmtp()" ng-disabled="!vm.smtp.id" class="send-button md-accent md-raised" translate="SETTINGS.VERIFY" translate-attr-aria-label="SETTINGS.VERIFY">\n                VERIFY\n            </md-button>\n            <md-button type="submit" ng-click="vm.saveSmtp()" ng-disabled="smtpForm.$pristine || smtpForm.$invalid" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            <div class="smtp-detail-form-container general md-background-bg md-whiteframe-1dp">\n                <div class="pb-16" layout="row" layout-align="start center">\n                    <div class="h2 secondary-text" translate="SETTINGS.GENERAL">GENERAL</div>\n                </div>\n                <form name="smtpForm" novalidate>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.NAME">Name</label>\n                        <input type="text" name="name" ng-model="vm.smtp.name" required autofocus>\n                        <div ng-messages="smtpForm.name.$error" ng-show="smtpForm.name.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n                        <md-select ng-model="vm.smtp.Smtp.service" required>\n                            <md-option ng-value="null">None</md-option>\n                            <md-option ng-value="\'gmail\'">Gmail</md-option>\n                        </md-select>\n                        <div ng-messages="smtpForm.Smtp.service.$error" ng-show="smtpForm.Smtp.service.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                        <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n                        <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" required>\n                        <div ng-messages="smtpForm.Smtp.host.$error" ng-show="smtpForm.Smtp.host.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n                        <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" required>\n                        <div ng-messages="smtpForm.Smtp.user.$error" ng-show="smtpForm.Smtp.user.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n                        <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n                        <div ng-messages="smtpForm.password.$error" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container class="md-block" ng-if="vm.newSmtp ">\n                        <label translate="SETTINGS.CONFIRM_PASSWORD">Confirm Password</label>\n                        <input type="password" match-password="Smtp.pass" name="confirmPassword" ng-model="confirmPassword">\n                        <div ng-messages="smtpForm.confirmPassword.$error" role="alert" multiple>\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                            </div>\n                            <div ng-message="passwordMatch">\n                                <span translate="SETTINGS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                        <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n                        <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" required>\n                        <div ng-messages="smtpForm.Smtp.port.$error" ng-show="smtpForm.Smtp.port.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n                    <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n                        <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n                    </md-input-container>\n                    <md-input-container class="md-block">\n                        <label translate="SETTINGS.DESCRIPTION">Description</label>\n                        <input type="" name="description" ng-model="vm.smtp.description">\n                        <div ng-messages="smtpForm.description.$error" ng-show="smtpForm.description.$touched" role="alert">\n                            <div ng-message="required">\n                                <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                            </div>\n                        </div>\n                    </md-input-container>\n\n                </form>\n            </div>\n\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/system/system.html",'<div id="system" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n          <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n        </span>\n                <span class="logo-text" translate="SETTINGS.SYSTEM">SYSTEM</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SETTINGS.GENERAL">GENERAL</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="system-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n                        <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n                            <ms-widget flex="50" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg">\n                                        <div class="h3">OS</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="h4">{{vm.system.system.manufacturer}} {{vm.system.system.model}}</div>\n                                                <div class="h4">{{vm.system.cpu.manufacturer}} {{vm.system.cpu.brand}} - {{vm.system.cpu.speed}} GHz - {{vm.system.cpu.cores}} Cores</div>\n                                                <div class="h4">{{vm.system.os.distro}} - {{vm.system.os.release}} - Kernel: {{vm.system.os.kernel}}</div>\n                                                <div class="h4">Node.js: {{vm.system.node}}</div>\n                                                <div class="h4">Host: {{vm.system.os.hostname}} - Uptime: {{vm.system.time.uptime / 60 | number:0}} m</div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                            <ms-widget flex="25" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-1">\n                                        <div class="h3">CPU</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="pb-8" layout="row" layout-align="space-between start">\n                                                    <span class="h3" translate="SETTINGS.AVG_LOAD">AVG Load</span>\n                                                    <span class="h3 secondary-text font-weight-500">{{vm.system.currentLoad.avgload * 100 | number:0}}%</span>\n                                                </div>\n                                                <md-progress-linear class="red" md-mode="determinate" value="{{vm.system.currentLoad.avgload * 100 | number:0}}"></md-progress-linear>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                            <ms-widget flex="25" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n                                        <div class="h3">MEM</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{vm.system.mem.used / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                                <div class="h4">{{\'SETTINGS.FREE\' | translate}}: {{vm.system.mem.available / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                                <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{vm.system.mem.active / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                            </div>\n                                            <div class="p-16 pb-32">\n                                                <div class="pb-8" layout="row" layout-align="space-between start">\n                                                    <span class="h3" translate="SETTINGS.USED">Used</span>\n                                                    <span class="h3 secondary-text font-weight-500">{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0}}%</span>\n                                                </div>\n                                                <md-progress-linear class="md-warn" md-mode="determinate" value="{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0 }}"></md-progress-linear>\n\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                        </md-card>\n\n                        <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n                            <ms-widget ng-repeat="disk in vm.system.fsSize" flex="25" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n                                        <div class="h3">DISK {{$index + 1}}</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="h4">{{\'SETTINGS.FILE_SYSTEM\' | translate}}: {{disk.fs}}</div>\n                                                <div class="h4">{{\'SETTINGS.MOUNT_POINT\' | translate}}: "{{disk.mount}}"</div>\n                                                <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{disk.size / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                                <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{disk.used / 1024 / 1024 / 1024 | number:0}} GB</div>\n                                            </div>\n                                            <div class="p-16 pb-32">\n                                                <div class="pb-8" layout="row" layout-align="space-between start">\n                                                    <span class="h3" translate="SETTINGS.USED">Used</span>\n                                                    <span class="h4 secondary-text font-weight-500">{{disk.use | number:0}}%</span>\n                                                </div>\n                                                <md-progress-linear class="red" md-mode="determinate" value="{{disk.use | number:0}}"></md-progress-linear>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                        </md-card>\n\n                        <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n                            <ms-widget ng-repeat="net in vm.system.net" flex="25" flex-xs="100">\n                                \x3c!-- Front --\x3e\n                                <ms-widget-front class="white-bg">\n                                    <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n                                        <div class="h3">NET {{$index + 1}}</div>\n                                    </div>\n\n                                    <div layout="row" layout-align="start center" layout-wrap>\n                                        <div flex="100" flex-gt-md="100">\n                                            <div class="p-16 pb-32">\n                                                <div class="h4">{{\'SETTINGS.INTERFACE\' | translate}}: {{net.iface}}</div>\n                                                <div class="h4">IPv4: {{net.ip4}}</div>\n                                                <div class="h4">IPv6: {{net.ip6}}</div>\n                                                <div class="h4">MAC: {{net.mac}}</div>\n                                            </div>\n                                        </div>\n                                    </div>\n                                </ms-widget-front>\n                                \x3c!-- / Front --\x3e\n                            </ms-widget>\n                        </md-card>\n\n                        <md-card class="md-whiteframe-1dp padding-20" layout="row">\n                            <div flex>\n                                <md-toolbar class="md-table-toolbar md-default">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead" translate="SETTINGS.TOP_N_PROCESSES" translate-values="{value: vm.processLimit}"></span>\n                                        <div flex></div>\n                                        <ms-search-bar on-search="vm.searchTerm1 = query" on-collapse="vm.searchTerm1 = undefined" debounce="300"></ms-search-bar>\n                                    </div>\n                                </md-toolbar>\n                                <md-table-container>\n                                    <table md-table>\n                                        <thead md-head>\n                                            <tr md-row>\n                                                <th md-column>pid</th>\n                                                <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n                                                <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n                                                <th md-column>pmem</th>\n                                                <th md-column>pcpu</th>\n                                            </tr>\n                                        </thead>\n                                        <tbody md-body>\n                                            <tr md-row ng-repeat="process in vm.system.processes.list | limitTo: vm.processLimit | filter: vm.searchTerm1 | orderBy:\'-pcpu\'">\n                                                <td md-cell>{{process.pid}}</td>\n                                                <td md-cell>{{process.command}}</td>\n                                                <td md-cell>\n                                                    <span class="text-boxed white-fg" ng-class="{\n                          \'green-600-bg\': process.state == \'running\',\n                          \'yellow-600-bg\': process.state == \'sleeping\',\n                          \'red-600-bg\': process.state == \'blocked\'}">{{process.state | uppercase}}</span>\n                                                </td>\n                                                <td md-cell>{{process.pmem}}%</td>\n                                                <td md-cell>{{process.pcpu}}%</td>\n                                            </tr>\n                                        </tbody>\n                                    </table>\n                                </md-table-container>\n                            </div>\n                        </md-card>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SETTINGS.PROCESSES">PROCESSES</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="system-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <md-card class="md-whiteframe-1dp padding-20" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="SETTINGS.MOTION_PROCESS_MANAGEMENT"></span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm.searchTerm2 = query" on-collapse="vm.searchTerm2 = undefined" debounce="300"></ms-search-bar>\n                                    <md-button ng-click="vm.getProcesses()" class="md-icon-button" aria-label="Reload">\n                                        <md-icon md-font-icon="icon-reload" class="s24"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table>\n                                    <thead md-head>\n                                        <tr md-row>\n                                            <th md-column>id</th>\n                                            <th md-column>pid</th>\n                                            <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n                                            <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n                                            <th md-column>MEM</th>\n                                            <th md-column>CPU</th>\n                                            <th md-column width="20px">Actions</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row ng-repeat="process in vm.processes | filter: vm.searchTerm2 | orderBy:\'-monit.cpu\'">\n                                            <td md-cell>{{process.pm_id}}</td>\n                                            <td md-cell>{{process.pid}}</td>\n                                            <td md-cell>{{process.name}}</td>\n                                            <td md-cell>\n                                                <span class="text-boxed white-fg" ng-class="{\'green-600-bg\': process.pm2_env.status == \'online\', \'red-600-bg\': process.pm2_env.status == \'stopped\'}">{{process.pm2_env.status | uppercase}}</span>\n                                            </td>\n                                            <td md-cell>{{process.monit.memory / 1024 / 1024 | number:0}} MB</td>\n                                            <td md-cell>{{process.monit.cpu}}%</td>\n                                            <td md-cell>\n                                                <md-button ng-if="process.pm2_env.status !== \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'online\')" class="md-icon-button" aria-label="Play">\n                                                    <md-icon md-font-icon="icon-play" class="s24"></md-icon>\n                                                </md-button>\n                                                <md-button ng-if="process.pm2_env.status === \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'stopped\')" class="md-icon-button" aria-label="Stop">\n                                                    <md-icon md-font-icon="icon-stop" class="s24"></md-icon>\n                                                </md-button>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                    <tfoot md-foot>\n                                        <tr md-row>\n                                            <td md-cell></td>\n                                            <td md-cell></td>\n                                            <td md-cell></td>\n                                            <td md-cell></td>\n                                            <td md-cell>{{ (vm.processes | map: \'monit.memory\' | sum) / 1024 / 1024 | number:0 }} MB</td>\n                                            <td md-cell></td>\n                                            <td md-cell></td>\n                                        </tr>\n                                    </tfoot>\n                                </table>\n                            </md-table-container>\n                        </md-card>\n                        <md-card class="md-whiteframe-1dp padding-20" flex>\n                            <md-toolbar class="md-table-toolbar md-default">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="SETTINGS.USEFUL_COMMANDS"></span>\n                                    <div flex></div>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table>\n                                    <thead md-head>\n                                        <tr md-row>\n                                            <th md-column width="30%">{{\'SETTINGS.COMMAND\' | translate}}</th>\n                                            <th md-column>{{\'SETTINGS.DESCRIPTION\' | translate}}</th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 list</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_LIST\' | translate}}</td>\n                                        </tr>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 start &lt;id | name&gt;</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_START\' | translate}}</td>\n                                        </tr>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 stop &lt;id | name | all&gt;</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_STOP\' | translate}}</td>\n                                        </tr>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 restart &lt;id | name&gt;</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_RESTART\' | translate}}</td>\n                                        </tr>\n                                        <tr>\n                                            <td md-cell class="no-border">pm2 logs [id | name]</td>\n                                            <td md-cell class="no-border">{{ \'SETTINGS.PM2_LOGS\' | translate}}</td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                        </md-card>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/settings/views/updates/update/dialog.html",'<md-dialog aria-label="Update">\n    <form name="updateForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n            </div>\n        </md-toolbar>\n\n        <div md-background-bg layout="row" layout-align="start start">\n            <md-progress-linear md-mode="determinate" value="{{vm.progress}}" class="md-warn"></md-progress-linear>\n        </div>\n\n        <md-dialog-content ms-scroll>\n            <div layout="row" layout-align="center center">\n                <div ng-if="vm.updating" layout="column" layout-align="center center">\n                    <span class="text-center md-title">Grab a quick coffee and</span>\n                    <span class="text-center md-title">get back here as soon as completed!</span>\n                    <span class="text-center md-title">{{vm.output}}</span>\n                </div>\n                <div ng-if="!vm.updating">\n                    <div ng-if="vm.success" layout="column" layout-align="center center">\n                        <span class="text-center md-title">Update Completed! Thank you for your time.</span>\n                        <span class="text-center md-title">In order to complete the update,</span>\n                        <span class="text-center md-title">please click on reload button</span>\n                    </div>\n                    <div ng-if="!vm.success" layout="column" layout-align="center center">\n                        <span class="text-center md-title">Update Error!</span>\n                        <span class="text-center md-title">Please contact your administrator!</span>\n                        <span class="text-center md-title">{{vm.output}}</span>\n                    </div>\n                </div>\n                <img src="assets/images/business/users.jpg" alt="" width="128" height="128" />\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions ng-if="!vm.updating" layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.reload()" class="send-button md-warm md-raised" aria-label="RELOAD" translate="SETTINGS.RELOAD" translate-attr-aria-label="SETTINGS.RELOAD">\n                    RELOAD\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/updates/updates.html",'<div id="updates" class="page-layout simple fullwidth doc-page">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SETTINGS.UPDATES">UPDATES</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- UPDATE CARD --\x3e\n            <div layout="row" ng-if="!vm.updating">\n                <md-card class="md-whiteframe-1dp padding-20" flex>\n                    <div layout="column" layout-align="center center">\n\n                        <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.CURRENT_VERSION">CURRENT VERSION</span>\n\n                        <span class="md-display-3 padding-20">{{vm.version.current}}</span>\n\n                        <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.current}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n                            CHANGELOG\n                        </md-button>\n                    </div>\n                </md-card>\n                <md-card class="md-whiteframe-20dp padding-20" flex ng-if="vm.version.current != vm.version.latest">\n                    <div layout="column" layout-align="center center">\n\n                        <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.NEW_VERSION">NEW VERSION</span>\n\n                        <span class="md-display-3 padding-20">{{vm.version.latest}}</span>\n\n                        <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.latest}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n                            CHANGELOG\n                        </md-button>\n                        <md-button ng-click="vm.updateConfirm($event)" class="md-raised md-warn" aria-label="CHANGELOG" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">UPDATE</md-button>\n                    </div>\n                </md-card>\n                <md-card class="md-whiteframe-1dp padding-20" flex ng-if="vm.version.current == vm.version.latest">\n                    <div layout="column" layout-align="center center">\n\n                        <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.REMOTE_VERSION">REMOTE VERSION</span>\n\n                        <span class="md-subhead padding-20" translate="SETTINGS.NO_NEW_VERSION_AVAILABLE">NO NEW VERSION AVAILABLE</span>\n                    </div>\n                </md-card>\n            </div>\n            \x3c!-- / UPDATE CARD --\x3e\n\n            <div ng-if="vm.updating">\n                <md-card class="md-whiteframe-1dp padding-20" flex>\n                    <div layout="column" layout-align="center center">\n                        <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.UPDATING">...</span>\n                        <md-progress-linear md-mode="determinate" class="md-accent padding-20" value="{{vm.progress}}"></md-progress-linear>\n                        <span class="md-display-1 padding-5 text-center">Grab a quick coffee and</span>\n                        <span class="md-display-1 padding-5 text-center">get back here as soon as completed</span>\n                        <img src="assets/images/business/users.jpg" alt="" width="40%" height="40%" />\n                    </div>\n                </md-card>\n            </div>\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/create/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n    <form name="smsAccountForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SMS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.smsAccount.name" required autofocus>\n                <div ng-messages="smsAccountForm.name.$error" ng-show="smsAccountForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.TYPE">Type</label>\n                <md-select ng-model="vm.smsAccount.type" required>\n                    <md-option ng-value="\'twilio\'">Twilio</md-option>\n                    <md-option ng-value="\'skebby\'">Skebby</md-option>\n                </md-select>\n                <div ng-messages="smsAccountForm.type.$error" ng-show="smsAccountForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n                <label translate="SMS.SMSTYPE">smstype</label>\n                <md-select ng-model="vm.smsAccount.smstype" required>\n                    <md-option ng-value="\'basic\'">Basic</md-option>\n                    <md-option ng-value="\'classic\'">Classic</md-option>\n                    <md-option ng-value="\'classic+\'">Classic+</md-option>\n                </md-select>\n                <div ng-messages="smsAccountForm.smstype.$error" ng-show="smsAccountForm.smstype.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.SMSTYPE_REQUIRED">smstype field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.PHONE">phone</label>\n                <input type="text" name="phone" ng-model="vm.smsAccount.phone" required>\n                <div ng-messages="smsAccountForm.phone.$error" ng-show="smsAccountForm.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.PHONE_REQUIRED">phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n                <label translate="SMS.SID">sid</label>\n                <input type="text" name="sid" ng-model="vm.smsAccount.sid" required>\n                <div ng-messages="smsAccountForm.sid.$error" ng-show="smsAccountForm.sid.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.SID_REQUIRED">sid field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n                <label translate="SMS.TOKEN">token</label>\n                <input type="text" name="token" ng-model="vm.smsAccount.token" required>\n                <div ng-messages="smsAccountForm.token.$error" ng-show="smsAccountForm.token.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.TOKEN_REQUIRED">token field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n                <label translate="SMS.USERNAME">username</label>\n                <input type="text" name="username" ng-model="vm.smsAccount.username" required>\n                <div ng-messages="smsAccountForm.username.$error" ng-show="smsAccountForm.username.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.USERNAME_REQUIRED">username field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\'">\n                <label translate="SMS.PASSWORD">password</label>\n                <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n                <div ng-messages="smsAccountForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newSmsAccount  && vm.smsAccount.type == \'skebby\'">\n                <label translate="SMS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="smsAccountForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="SMS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.MOTIONADDRESS">motionaddress</label>\n                <input type="url" name="remote" ng-model="vm.smsAccount.remote" required>\n                <div ng-messages="smsAccountForm.remote.$error" ng-show="smsAccountForm.remote.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="SMS.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.smsAccount.description">\n                <div ng-messages="smsAccountForm.description.$error" ng-show="smsAccountForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSmsAccount" ng-click="vm.saveSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid || smsAccountForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSmsAccount" ng-click="vm.addNewSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSACCOUNT" translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n                    ADD SMSACCOUNT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSmsAccount" ng-click="vm.deleteSmsAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/smsDispositions/dialog.html",'<md-dialog class="smsDisposition-dialog" aria-label="New SmsDisposition">\n    <form name="smsDispositionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SMS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.smsDisposition.name" required autofocus>\n                <div ng-messages="smsDispositionForm.name.$error" ng-show="smsDispositionForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSmsDisposition" ng-click="vm.saveSmsDisposition()" class="send-button md-accent md-raised" ng-disabled="smsDispositionForm.$invalid || smsDispositionForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSmsDisposition" ng-click="vm.addNewSmsDisposition()" class="send-button md-accent md-raised" ng-disabled="smsDispositionForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSDISPOSITION" translate-attr-aria-label="SMS.ADD_SMSDISPOSITION">\n                    ADD SMSDISPOSITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSmsDisposition" ng-click="vm.deleteSmsDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/view.html",'<div id="sms-smsAccount" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-smsAccounts-button md-icon-button" aria-label="Go to smsAccounts" ng-click="vm.gotoSmsAccounts()" translate translate-attr-aria-label="SMS.GO_TO_SMSACCOUNTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="smsAccount-image" hide-xs>\n                    <img ng-src="assets/images/business/smsAccounts.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.smsAccount.id}} {{vm.smsAccount.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsAccount.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveSmsAccount()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (apiForm.$invalid) || (smsDispositionsForm.$invalid) || (acceptForm.$invalid) || (rejectForm.$invalid) || (closeForm.$invalid) || (actionsForm.$invalid)"\n                translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.smsAccount.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.LIST">List</label>\n                                <md-select ng-model="vm.smsAccount.ListId">\n                                    <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists">{{ ListId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.ListId.$error" ng-show="generalForm.ListId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.LIST_REQUIRED">List field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.smsAccount.fidelity" aria-label="fidelity"><span translate="SMS.FIDELITY">fidelity</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.fidelity" class="md-block">\n                                <label translate="SMS.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.smsAccount.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.TYPE">Type</label>\n                                <md-select ng-model="vm.smsAccount.type" required>\n                                    <md-option ng-value="\'twilio\'">Twilio</md-option>\n                                    <md-option ng-value="\'skebby\'">Skebby</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.type.$error" ng-show="generalForm.type.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n                                <label translate="SMS.SMSTYPE">smstype</label>\n                                <md-select ng-model="vm.smsAccount.smstype" required>\n                                    <md-option ng-value="\'basic\'">Basic</md-option>\n                                    <md-option ng-value="\'classic\'">Classic</md-option>\n                                    <md-option ng-value="\'classic+\'">Classic+</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.smstype.$error" ng-show="generalForm.smstype.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.SMSTYPE_REQUIRED">smstype field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.PHONE">phone</label>\n                                <input type="text" name="phone" ng-model="vm.smsAccount.phone" required>\n                                <div ng-messages="generalForm.phone.$error" ng-show="generalForm.phone.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.PHONE_REQUIRED">phone field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n                                <label translate="SMS.SID">sid</label>\n                                <input type="text" name="sid" ng-model="vm.smsAccount.sid" required>\n                                <div ng-messages="generalForm.sid.$error" ng-show="generalForm.sid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.SID_REQUIRED">sid field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n                                <label translate="SMS.TOKEN">token</label>\n                                <input type="text" name="token" ng-model="vm.smsAccount.token" required>\n                                <div ng-messages="generalForm.token.$error" ng-show="generalForm.token.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.TOKEN_REQUIRED">token field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n                                <label translate="SMS.USERNAME">username</label>\n                                <input type="text" name="username" ng-model="vm.smsAccount.username" required>\n                                <div ng-messages="generalForm.username.$error" ng-show="generalForm.username.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.USERNAME_REQUIRED">username field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\'">\n                                <label translate="SMS.PASSWORD">password</label>\n                                <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newSmsAccount  && vm.smsAccount.type == \'skebby\'">\n                                <label translate="SMS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="SMS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.MOTIONADDRESS">motionaddress</label>\n                                <input type="url" name="remote" ng-model="vm.smsAccount.remote" required>\n                                <div ng-messages="generalForm.remote.$error" ng-show="generalForm.remote.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.MOTIONADDRESS_REQUIRED">motionaddress field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="SMS.ERRORS.MOTIONADDRESS_MUST_VALID_URL">motionaddress must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.smsAccount.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.API">API</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container api md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.API">API</div>\n                        </div>\n                        <form name="apiForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.DISPOSITIONS">DISPOSITIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container smsdispositions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="SmsAccountSmsDispositionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountSmsDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="SMS.SMSDISPOSITIONS">SmsDispositions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event)" aria-label="add smsDisposition" translate translate-attr-label="SMS.ADD_SMSDISPOSITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountSmsDispositions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedSmsAccountSmsDispositions.length}} {{vm_dc.selectedSmsAccountSmsDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsDispositions($event)" aria-label="delete selected" translate translate-attr-label="SMSACCOUNTS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountSmsDispositions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountSmsDispositions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'SMS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="smsDisposition" md-select-id="id" ng-repeat="smsDisposition in vm_dc.smsAccountSmsDispositions.rows">\n                                            <td ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event, smsDisposition)" md-cell>{{smsDisposition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event, smsDisposition)" md-cell>{{smsDisposition.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event, smsDisposition)" md-cell>{{smsDisposition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditSmsAccountSmsDisposition($event, smsDisposition)" translate="SMS.EDIT_SMSDISPOSITION">\n                                                                Edit SmsDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(smsDisposition, $event)" translate="SMS.DELETE_SMSDISPOSITION">\n                                                                Delete SmsDisposition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.smsAccountSmsDispositions.rows.length">\n                                            <td md-cell colspan="5">\n                                                <span class="text-boxed-ligth" translate="SMS.NO_SMSDISPOSITION_AVAILABLE">No smsdisposition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountSmsDispositions.count}}" md-on-paginate="vm_dc.getSmsAccountSmsDispositions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.WEBHOOKS">WEBHOOKS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container accept md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.ACCEPT">ACCEPT</div>\n                        </div>\n                        <form name="acceptForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.ACCEPTMETHOD">acceptMethod</label>\n                                <md-select ng-model="vm.smsAccount.acceptMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="acceptForm.acceptMethod.$error" ng-show="acceptForm.acceptMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.ACCEPTMETHOD_REQUIRED">acceptMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.ACCEPTURL">acceptUrl</label>\n                                <input type="url" name="acceptUrl" ng-model="vm.smsAccount.acceptUrl">\n                                <div ng-messages="acceptForm.acceptUrl.$error" ng-show="acceptForm.acceptUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.ACCEPTURL_REQUIRED">acceptUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="SMS.ERRORS.ACCEPTURL_MUST_VALID_URL">acceptUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="smsAccount-detail-form-container reject md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.REJECT">REJECT</div>\n                        </div>\n                        <form name="rejectForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.REJECTMETHOD">rejectMethod</label>\n                                <md-select ng-model="vm.smsAccount.rejectMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="rejectForm.rejectMethod.$error" ng-show="rejectForm.rejectMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.REJECTMETHOD_REQUIRED">rejectMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.REJECTURL">rejectUrl</label>\n                                <input type="url" name="rejectUrl" ng-model="vm.smsAccount.rejectUrl">\n                                <div ng-messages="rejectForm.rejectUrl.$error" ng-show="rejectForm.rejectUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.REJECTURL_REQUIRED">rejectUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="SMS.ERRORS.REJECTURL_MUST_VALID_URL">rejectUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="smsAccount-detail-form-container close md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.CLOSE">CLOSE</div>\n                        </div>\n                        <form name="closeForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.CLOSEMETHOD">closeMethod</label>\n                                <md-select ng-model="vm.smsAccount.closeMethod" autofocus>\n                                    <md-option ng-value="\'GET\'">HTTP GET</md-option>\n                                    <md-option ng-value="\'POST\'">HTTP POST</md-option>\n                                </md-select>\n                                <div ng-messages="closeForm.closeMethod.$error" ng-show="closeForm.closeMethod.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.CLOSEMETHOD_REQUIRED">closeMethod field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.CLOSEURL">closeUrl</label>\n                                <input type="url" name="closeUrl" ng-model="vm.smsAccount.closeUrl">\n                                <div ng-messages="closeForm.closeUrl.$error" ng-show="closeForm.closeUrl.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.CLOSEURL_REQUIRED">closeUrl field is required</span>\n                                    </div>\n                                    <div ng-message="url">\n                                        <span translate="SMS.ERRORS.CLOSEURL_MUST_VALID_URL">closeUrl must be a valid url http://www.xcally.com</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.ACTIONS">ACTIONS</div>\n                        </div>\n                        <form name="actionsForm" novalidate>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/smsAccounts.html",'<div id="smsAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SMS.SMSACCOUNTS">SmsAccounts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSmsAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSmsAccounts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="SMS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-smsAccounts-count">\n                    <span>{{vm.selectedSmsAccounts.length}}</span>\n                <span translate="SMS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMSACCOUNTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSmsAccounts()" translate="SMS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSmsAccounts()" translate="SMS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSmsAccounts" filename="smsAccounts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSmsAccounts($event)" aria-label="delete selected" translate translate-attr-label="SMSACCOUNTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SMSACCOUNT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSmsAccounts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsAccounts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="type">{{ \'SMS.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.smsAccounts.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="smsAccount" md-select-id="id" ng-repeat="smsAccount in vm.smsAccounts.rows">\n                                <td md-cell ng-if="smsAccount.userpic"><img class="avatar" alt="{{smsAccount.name}}" ng-src="api/users/{{smsAccount.id}}/avatar" /></td>\n                                <td md-cell ng-if="!smsAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsAccount.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="id ">{{smsAccount.id}}</td>\n                                <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="name ">{{smsAccount.name}}</td>\n                                <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="type ">{{ vm.arraytype[smsAccount.type].option }}</td>\n                                <td ng-click="vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="description ">{{smsAccount.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(smsAccount, $event)" translate="SMS.EDIT_SMSACCOUNT">\n                                                    Edit SmsAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(smsAccount, $event)" translate="SMS.DELETE_SMSACCOUNT">\n                                                    Delete SmsAccount\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.smsAccounts.count}}" md-on-paginate="vm.getSmsAccounts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SMSACCOUNT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SMSACCOUNT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-smsAccount-button" ng-click="vm.createOrEditSmsAccount($event)" aria-label="add smsAccount" translate translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SMSACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsQueues/create/dialog.html",'<md-dialog class="smsQueue-dialog" aria-label="New SmsQueue">\n    <form name="smsQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="SMS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                <div ng-messages="smsQueueForm.name.$error" ng-show="smsQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.smsQueue.strategy" required>\n                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                </md-select>\n                <div ng-messages="smsQueueForm.strategy.$error" ng-show="smsQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" required>\n                <div ng-messages="smsQueueForm.timeout.$error" ng-show="smsQueueForm.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="SMS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.smsQueue.description">\n                <div ng-messages="smsQueueForm.description.$error" ng-show="smsQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSmsQueue" ng-click="vm.saveSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid || smsQueueForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSmsQueue" ng-click="vm.addNewSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSQUEUE" translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n                    ADD SMSQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSmsQueue" ng-click="vm.deleteSmsQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue">\n    <form name="smsQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="SMS.TEAMADD_SMSQUEUE">Add Team in SMSQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="SMS.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="smsQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/view.html",'<div id="sms-smsQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-smsQueues-button md-icon-button" aria-label="Go to smsQueues" ng-click="vm.gotoSmsQueues()" translate translate-attr-aria-label="SMS.GO_TO_SMSQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="smsQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/smsQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.smsQueue.id}} {{vm.smsQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.smsQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="SMS.TEAMADD_SMSQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveSmsQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="SMS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="smsQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.smsQueue.strategy" required>\n                                    <md-option ng-value="\'beepall\'">Beepall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" required>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="SMS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.smsQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsQueues/smsQueues.html",'<div id="smsQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="SMS.SMSQUEUES">SmsQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSmsQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSmsQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="SMS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-smsQueues-count">\n                    <span>{{vm.selectedSmsQueues.length}}</span>\n                <span translate="SMS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMSQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSmsQueues()" translate="SMS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSmsQueues()" translate="SMS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSmsQueues" filename="smsQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSmsQueues($event)" aria-label="delete selected" translate translate-attr-label="SMSQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SMSQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSmsQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'SMS.STRATEGY\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.smsQueues.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="smsQueue" md-select-id="id" ng-repeat="smsQueue in vm.smsQueues.rows">\n                                <td md-cell ng-if="smsQueue.userpic"><img class="avatar" alt="{{smsQueue.name}}" ng-src="api/users/{{smsQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!smsQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="id ">{{smsQueue.id}}</td>\n                                <td ng-click="vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="name ">{{smsQueue.name}}</td>\n                                <td ng-click="vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="strategy ">{{ vm.arraystrategy[smsQueue.strategy].option }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(smsQueue, $event)" translate="SMS.EDIT_SMSQUEUE">\n                                                    Edit SmsQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(smsQueue, $event)" translate="SMS.DELETE_SMSQUEUE">\n                                                    Delete SmsQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.smsQueues.count}}" md-on-paginate="vm.getSmsQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SMSQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SMSQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-smsQueue-button" ng-click="vm.createOrEditSmsQueue($event)" aria-label="add smsQueue" translate translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SMSQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/agents.html",'<div id="agents" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="STAFF.AGENTS">Agents</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedAgents.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedAgents =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="STAFF.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-agents-count">\n                    <span>{{vm.selectedAgents.length}}</span>\n                <span translate="STAFF.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="AGENTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllAgents()" translate="STAFF.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectAgents()" translate="STAFF.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedAgents" filename="agents.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedAgents($event)" aria-label="delete selected" translate translate-attr-label="AGENTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- AGENT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedAgents" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n                                <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.agents.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="agent" md-select-id="id" ng-repeat="agent in vm.agents.rows">\n                                <td md-cell ng-if="agent.userpic"><img class="avatar" alt="{{agent.name}}" ng-src="api/users/{{agent.id}}/avatar" /></td>\n                                <td md-cell ng-if="!agent.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{agent.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="fullname font-weight-600">{{agent.fullname}}</td>\n                                <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="name ">{{agent.name}}</td>\n                                <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="email ">{{agent.email}}</td>\n                                <td ng-click="vm.createOrEditAgent($event, agent)" md-cell class="internal ">{{agent.internal}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(agent, $event)" translate="STAFF.EDIT_AGENT">\n                                                    Edit Agent\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(agent, $event)" translate="STAFF.DELETE_AGENT">\n                                                    Delete Agent\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / AGENT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD AGENT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-agent-button" ng-click="vm.createOrEditAgent($event)" aria-label="add agent" translate translate-attr-aria-label="STAFF.ADD_AGENT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD AGENT BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/create/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n    <form name="agentForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.FULLNAME">Fullname</label>\n                <input type="text" name="fullname" ng-model="vm.agent.fullname" required autofocus>\n                <div ng-messages="agentForm.fullname.$error" ng-show="agentForm.fullname.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.USERNAME">Username</label>\n                <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="!vm.newAgent">\n                <div ng-messages="agentForm.name.$error" ng-show="agentForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.agent.email" required>\n                <div ng-messages="agentForm.email.$error" ng-show="agentForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newAgent">\n                <label translate="STAFF.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.agent.password" placeholder="Password" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n                <div ng-messages="agentForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newAgent  && vm.newAgent">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.agent.description">\n                <div ng-messages="agentForm.description.$error" ng-show="agentForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newAgent" class="md-block">\n                <md-switch ng-model="vm.agent.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n                <label translate="STAFF.INTERNAL">Internal</label>\n                <input type="text" name="internal" ng-model="vm.agent.internal" required ng-disabled="!vm.newAgent">\n                <div ng-messages="agentForm.internal.$error" ng-show="agentForm.internal.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newAgent" class="md-block">\n                <md-switch ng-model="vm.agent.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newAgent" ng-click="vm.saveAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newAgent" ng-click="vm.addNewAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid" aria-label="ADD" translate="STAFF.ADD_AGENT" translate-attr-aria-label="STAFF.ADD_AGENT">\n                    ADD AGENT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newAgent" ng-click="vm.deleteAgent($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",'<md-dialog class="agent-dialog" aria-label="{{vm.name}}">\n    <form name="agentForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ \'STAFF.CHANGE_PASSWORD\' | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.NEW_PASSWORD">New Password</label>\n                <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n                <div ng-messages="agentForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",'<md-dialog class="agent-dialog" aria-label="agent">\n    <form name="agentForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2>{{vm.title}}</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin" ng-if="vm.agent.role === \'agent\'">\n                <label translate="STAFF.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="agentForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/view.html",'<div id="staff-agent" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-agents-button md-icon-button" aria-label="Go to agents" ng-click="vm.gotoAgents()" translate translate-attr-aria-label="STAFF.GO_TO_AGENTS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="agent-image" hide-xs>\n                    <img ng-src="assets/images/business/agents.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.agent.id}} {{vm.agent.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="STAFF.CREATED_AT"></span> <span>{{vm.agent.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div ng-cloak ng-if="vm.agent.role !== \'admin\'">\n            <md-fab-speed-dial md-direction="left" class="md-scale md-fab">\n                <md-fab-trigger>\n                    <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n                        <md-tooltip md-direction="top" md-visible="false">Channels</md-tooltip>\n                        <md-icon md-font-icon="icon-stackoverflow" aria-label="queueadd"></md-icon>\n                    </md-button>\n                </md-fab-trigger>\n                <md-fab-actions>\n                    <md-button aria-label="voice" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Voice</md-tooltip>\n                        <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n                    </md-button>\n                    <md-button aria-label="chat" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'chat\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Chat</md-tooltip>\n                        <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n                    </md-button>\n                    <md-button aria-label="mail" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'mail\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Mail</md-tooltip>\n                        <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n                    </md-button>\n                    <md-button aria-label="sms" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'sms\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Sms</md-tooltip>\n                        <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n                    </md-button>\n                    <md-button aria-label="openchannel" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'openchannel\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Openchannel</md-tooltip>\n                        <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n                    </md-button>\n                    <md-button aria-label="fax" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'fax\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Fax</md-tooltip>\n                        <md-icon md-font-icon="icon-deskphone" aria-label="fax"></md-icon>\n                    </md-button>\n                </md-fab-actions>\n            </md-fab-speed-dial>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.changepassworddialog(vm.agent, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n                <md-tooltip><span translate="STAFF.CHANGEPASSWORD_AGENT"></span></md-tooltip>\n                <md-icon md-font-icon="icon-key-variant"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveAgent()" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (capacityForm.$invalid) || (settingsForm.$invalid) || (remote_controlForm.$invalid) || (sipForm.$invalid)"\n                translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="agent-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n                        </div>\n                        <form name="personal_infoForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.FULLNAME">Fullname</label>\n                                <input type="text" name="fullname" ng-model="vm.agent.fullname" required autofocus>\n                                <div ng-messages="personal_infoForm.fullname.$error" ng-show="personal_infoForm.fullname.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.USERNAME">Username</label>\n                                <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="true">\n                                <div ng-messages="personal_infoForm.name.$error" ng-show="personal_infoForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.agent.email" required>\n                                <div ng-messages="personal_infoForm.email.$error" ng-show="personal_infoForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.agent.description">\n                                <div ng-messages="personal_infoForm.description.$error" ng-show="personal_infoForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.loginInPause" aria-label="LoginInPause"><span translate="STAFF.LOGININPAUSE">LoginInPause</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="agent-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n                        </div>\n                        <div ng-controller="Agentchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.agent)" class="agent-detail-form-container md-background-bg md-whiteframe-1dp">\n\n                            <div id="agent-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()"\n                                flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                                <div class="drop-text hint-text" layout="row" layout-align="center center">\n                                    <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n                                </div>\n\n                                <div class="upload-button" layout="column" layout-align="center center">\n                                    <md-button class="md-accent md-raised" flow-btn>\n                                        Upload\n                                    </md-button>\n                                    <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n                                </div>\n\n                                <div layout="row" layout-align="start start" layout-wrap>\n                                    <div ng-repeat="change_avatarimage in vm_ca.agent.images" ng-switch="change_avatarimage.type">\n                                        <div class="agent-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n                                            <div class="overlay" layout="column" layout-align="center center">\n                                                <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n                                                </md-progress-linear>\n                                            </div>\n                                            <img class="media" flow-img="change_avatarimage.file">\n                                        </div>\n\n                                        <div class="agent-image" ng-switch-when="image" layout="row" layout-align="center center">\n                                            <img class="media" ng-src="{{change_avatarimage.url}}">\n                                        </div>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.VOICE">VOICE</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="agent-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n                                <label translate="STAFF.INTERNAL">Internal</label>\n                                <input type="text" name="internal" ng-model="vm.agent.internal" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.internal.$error" ng-show="generalForm.internal.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.TRANSPORT">Transport</label>\n                                <md-select ng-model="vm.agent.transport" multiple>\n                                    <md-option ng-value="\'udp\'">udp</md-option>\n                                    <md-option ng-value="\'tcp\'">tcp</md-option>\n                                    <md-option ng-value="\'ws\'">ws</md-option>\n                                    <md-option ng-value="\'wss\'">wss</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n                                <div ng-messages="generalForm.transport.$error" ng-show="generalForm.transport.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.HOST">Host</label>\n                                <input type="text" name="host" ng-model="vm.agent.host" required>\n                                <div class="hint"><span translate="STAFF.HELP.HOST"></span></div>\n                                <div ng-messages="generalForm.host.$error" ng-show="generalForm.host.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.HOST_REQUIRED">Host field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.NAT">NAT</label>\n                                <md-select ng-model="vm.agent.nat" required multiple>\n                                    <md-option ng-value="\'force_rport\'">force_rport</md-option>\n                                    <md-option ng-value="\'comedia\'">comedia</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'never\'">never</md-option>\n                                    <md-option ng-value="\'route\'">route</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n                                <div ng-messages="generalForm.nat.$error" ng-show="generalForm.nat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.TYPE">Type</label>\n                                <md-select ng-model="vm.agent.type">\n                                    <md-option ng-value="\'friend\'">Friend</md-option>\n                                    <md-option ng-value="\'user\'">User</md-option>\n                                    <md-option ng-value="\'peer\'">Peer</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.TYPE"></span></div>\n                                <div ng-messages="generalForm.type.$error" ng-show="generalForm.type.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n                                <md-select ng-model="vm.agent.allow" required multiple>\n                                    <md-option ng-value="\'alaw\'">alaw</md-option>\n                                    <md-option ng-value="\'ulaw\'">ulaw</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                    <md-option ng-value="\'g729\'">g729</md-option>\n                                    <md-option ng-value="\'ilbc\'">ilbc</md-option>\n                                    <md-option ng-value="\'opus\'">opus</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n                                <div ng-messages="generalForm.allow.$error" ng-show="generalForm.allow.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLERID">CallerId</label>\n                                <input type="text" name="callerid" ng-model="vm.agent.callerid">\n                                <div ng-messages="generalForm.callerid.$error" ng-show="generalForm.callerid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLGROUP">Callgroup</label>\n                                <input type="text" name="callgroup" ng-model="vm.agent.callgroup">\n                                <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n                                <div ng-messages="generalForm.callgroup.$error" ng-show="generalForm.callgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n                                <input type="text" name="pickupgroup" ng-model="vm.agent.pickupgroup">\n                                <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n                                <div ng-messages="generalForm.pickupgroup.$error" ng-show="generalForm.pickupgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.chanspy" aria-label="chanSpy"><span translate="STAFF.CHANSPY">chanSpy</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.OTHER_CHANNELS">OTHER_CHANNELS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="agent-detail-form-container capacity md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.CAPACITY">CAPACITY</div>\n                        </div>\n                        <form name="capacityForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CHATCAPACITY">ChatCapacity</label>\n                                <input type="number" name="chatCapacity" ng-model="vm.agent.chatCapacity" min="0" required autofocus>\n                                <div class="hint"><span translate="STAFF.HELP.CHATCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.chatCapacity.$error" ng-show="capacityForm.chatCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CHATCAPACITY_REQUIRED">ChatCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.MAILCAPACITY">MailCapacity</label>\n                                <input type="number" name="mailCapacity" ng-model="vm.agent.mailCapacity" min="0" required>\n                                <div class="hint"><span translate="STAFF.HELP.MAILCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.mailCapacity.$error" ng-show="capacityForm.mailCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.MAILCAPACITY_REQUIRED">MailCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.FAXCAPACITY">FaxCapacity</label>\n                                <input type="number" name="faxCapacity" ng-model="vm.agent.faxCapacity" min="0" required>\n                                <div class="hint"><span translate="STAFF.HELP.FAXCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.faxCapacity.$error" ng-show="capacityForm.faxCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.FAXCAPACITY_REQUIRED">FaxCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.SMSCAPACITY">SMSCapacity</label>\n                                <input type="number" name="smsCapacity" ng-model="vm.agent.smsCapacity" min="0" required>\n                                <div class="hint"><span translate="STAFF.HELP.SMSCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.smsCapacity.$error" ng-show="capacityForm.smsCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.SMSCAPACITY_REQUIRED">SMSCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.OPENCHANNELCAPACITY">OpenchannelCapacity</label>\n                                <input type="number" name="openchannelCapacity" ng-model="vm.agent.openchannelCapacity" min="0" required>\n                                <div class="hint"><span translate="STAFF.HELP.OPENCHANNELCAPACITY"></span></div>\n                                <div ng-messages="capacityForm.openchannelCapacity.$error" ng-show="capacityForm.openchannelCapacity.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_REQUIRED">OpenchannelCapacity field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.MOTIONBAR">MOTIONBAR</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="agent-detail-form-container settings md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.SETTINGS">SETTINGS</div>\n                        </div>\n                        <form name="settingsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings"><span translate="STAFF.ENABLESETTINGS">EnableSettings</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarAutoAnswer" aria-label="AutoAnswer"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarRingInUse" aria-label="RingInUse"><span translate="STAFF.RINGINUSE">RingInUse</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="agent-detail-form-container remote_control md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.REMOTE_CONTROL">REMOTE_CONTROL</div>\n                        </div>\n                        <form name="remote_controlForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.agent.phoneBarRemoteControl" class="md-block">\n                                <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n                                <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" required>\n                                <div ng-messages="remote_controlForm.phoneBarRemoteControlPort.$error" ng-show="remote_controlForm.phoneBarRemoteControlPort.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.REMOTECONTROLPORT_REQUIRED">RemoteControlPort field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="agent-detail-form-container sip md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.SIP">SIP</div>\n                        </div>\n                        <form name="sipForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.SIPEXPIRES">SipExpires</label>\n                                <input type="number" name="phoneBarExpires" ng-model="vm.agent.phoneBarExpires" required autofocus>\n                                <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n                                <div ng-messages="sipForm.phoneBarExpires.$error" ng-show="sipForm.phoneBarExpires.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.SIPEXPIRES_REQUIRED">SipExpires field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.SIPPORT">SipPort</label>\n                                <input type="number" name="phoneBarListenPort" ng-model="vm.agent.phoneBarListenPort" required>\n                                <div class="hint"><span translate="STAFF.HELP.SIPPORT"></span></div>\n                                <div ng-messages="sipForm.phoneBarListenPort.$error" ng-show="sipForm.phoneBarListenPort.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.SIPPORT_REQUIRED">SipPort field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/teams/create/dialog.html",'<md-dialog class="team-dialog" aria-label="New Team">\n    <form name="teamForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.team.name" required autofocus>\n                <div ng-messages="teamForm.name.$error" ng-show="teamForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.team.description">\n                <div ng-messages="teamForm.description.$error" ng-show="teamForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTeam" ng-click="vm.saveTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid || teamForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTeam" ng-click="vm.addNewTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TEAM" translate-attr-aria-label="STAFF.ADD_TEAM">\n                    ADD TEAM\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTeam" ng-click="vm.deleteTeam($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",'<md-dialog class="team-dialog" aria-label="team">\n    <form name="teamForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="STAFF.AGENTADD_TEAM">Add Agent to team</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/teams.html",'<div id="teams" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="STAFF.TEAMS">Teams</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTeams.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTeams =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="STAFF.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-teams-count">\n                    <span>{{vm.selectedTeams.length}}</span>\n                <span translate="STAFF.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TEAMS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTeams()" translate="STAFF.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTeams()" translate="STAFF.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTeams" filename="teams.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTeams($event)" aria-label="delete selected" translate translate-attr-label="TEAMS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TEAM TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTeams" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTeams">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'STAFF.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'STAFF.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'STAFF.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.teams.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="team" md-select-id="id" ng-repeat="team in vm.teams.rows">\n                                <td md-cell ng-if="team.userpic"><img class="avatar" alt="{{team.name}}" ng-src="api/users/{{team.id}}/avatar" /></td>\n                                <td md-cell ng-if="!team.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{team.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="id ">{{team.id}}</td>\n                                <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="name ">{{team.name}}</td>\n                                <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="description ">{{team.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(team, $event)" translate="STAFF.EDIT_TEAM">\n                                                    Edit Team\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.agentadddialog(team, $event)" translate="STAFF.AGENTADD_TEAM">\n                                                    AgentAdd Team\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(team, $event)" translate="STAFF.DELETE_TEAM">\n                                                    Delete Team\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.teams.count}}" md-on-paginate="vm.getTeams" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TEAM TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TEAM BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-team-button" ng-click="vm.createOrEditTeam($event)" aria-label="add team" translate translate-attr-aria-label="STAFF.ADD_TEAM">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TEAM BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/telephones/create/dialog.html",'<md-dialog class="telephone-dialog" aria-label="New Telephone">\n    <form name="telephoneForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n                <input type="text" name="fullname" ng-model="vm.telephone.fullname" required autofocus>\n                <div ng-messages="telephoneForm.fullname.$error" ng-show="telephoneForm.fullname.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.USERNAME">Username</label>\n                <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="!vm.newTelephone">\n                <div ng-messages="telephoneForm.name.$error" ng-show="telephoneForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.telephone.email" required>\n                <div ng-messages="telephoneForm.email.$error" ng-show="telephoneForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newTelephone">\n                <label translate="STAFF.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.telephone.password" placeholder="Password" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n                <div ng-messages="telephoneForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newTelephone  && vm.newTelephone">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.telephone.description">\n                <div ng-messages="telephoneForm.description.$error" ng-show="telephoneForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newTelephone" class="md-block">\n                <md-switch ng-model="vm.telephone.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n                <label translate="STAFF.INTERNAL">Internal</label>\n                <input type="text" name="internal" ng-model="vm.telephone.internal" required ng-disabled="!vm.newTelephone">\n                <div ng-messages="telephoneForm.internal.$error" ng-show="telephoneForm.internal.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newTelephone" class="md-block">\n                <md-switch ng-model="vm.telephone.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTelephone" ng-click="vm.saveTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTelephone" ng-click="vm.addNewTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TELEPHONE" translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n                    ADD TELEPHONE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTelephone" ng-click="vm.deleteTelephone($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",'<md-dialog class="telephone-dialog" aria-label="{{vm.name}}">\n    <form name="telephoneForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ \'STAFF.CHANGE_PASSWORD\' | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.NEW_PASSWORD">New Password</label>\n                <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n                <div ng-messages="telephoneForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/view.html",'<div id="staff-telephone" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-telephones-button md-icon-button" aria-label="Go to telephones" ng-click="vm.gotoTelephones()" translate translate-attr-aria-label="STAFF.GO_TO_TELEPHONES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="telephone-image" hide-xs>\n                    <img ng-src="assets/images/business/telephones.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.telephone.id}} {{vm.telephone.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="STAFF.CREATED_AT"></span> <span>{{vm.telephone.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.changepassworddialog(vm.telephone, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n                <md-tooltip><span translate="STAFF.CHANGEPASSWORD_TELEPHONE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-key-variant"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveTelephone()" class="send-button md-accent md-raised" ng-disabled="(accountForm.$invalid) || (generalForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="telephone-detail-form-container account md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.ACCOUNT">ACCOUNT</div>\n                        </div>\n                        <form name="accountForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n                                <input type="text" name="fullname" ng-model="vm.telephone.fullname" required autofocus>\n                                <div ng-messages="accountForm.fullname.$error" ng-show="accountForm.fullname.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.USERNAME">Username</label>\n                                <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="true">\n                                <div ng-messages="accountForm.name.$error" ng-show="accountForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.telephone.email" required>\n                                <div ng-messages="accountForm.email.$error" ng-show="accountForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.telephone.description">\n                                <div ng-messages="accountForm.description.$error" ng-show="accountForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.VOICE">VOICE</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="telephone-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n                                <label translate="STAFF.INTERNAL">Internal</label>\n                                <input type="text" name="internal" ng-model="vm.telephone.internal" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.internal.$error" ng-show="generalForm.internal.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.TRANSPORT">Transport</label>\n                                <md-select ng-model="vm.telephone.transport" required multiple>\n                                    <md-option ng-value="\'udp\'">udp</md-option>\n                                    <md-option ng-value="\'tcp\'">tcp</md-option>\n                                    <md-option ng-value="\'ws\'">ws</md-option>\n                                    <md-option ng-value="\'wss\'">wss</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n                                <div ng-messages="generalForm.transport.$error" ng-show="generalForm.transport.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.NAT">NAT</label>\n                                <md-select ng-model="vm.telephone.nat" required multiple>\n                                    <md-option ng-value="\'force_rport\'">force_rport</md-option>\n                                    <md-option ng-value="\'comedia\'">comedia</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'never\'">never</md-option>\n                                    <md-option ng-value="\'route\'">route</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n                                <div ng-messages="generalForm.nat.$error" ng-show="generalForm.nat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n                                <md-select ng-model="vm.telephone.allow" required multiple>\n                                    <md-option ng-value="\'alaw\'">alaw</md-option>\n                                    <md-option ng-value="\'ulaw\'">ulaw</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                    <md-option ng-value="\'g729\'">g729</md-option>\n                                    <md-option ng-value="\'ilbc\'">ilbc</md-option>\n                                    <md-option ng-value="\'opus\'">opus</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n                                <div ng-messages="generalForm.allow.$error" ng-show="generalForm.allow.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLERID">CallerId</label>\n                                <input type="text" name="callerid" ng-model="vm.telephone.callerid">\n                                <div ng-messages="generalForm.callerid.$error" ng-show="generalForm.callerid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLGROUP">Callgroup</label>\n                                <input type="text" name="callgroup" ng-model="vm.telephone.callgroup">\n                                <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n                                <div ng-messages="generalForm.callgroup.$error" ng-show="generalForm.callgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n                                <input type="text" name="pickupgroup" ng-model="vm.telephone.pickupgroup">\n                                <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n                                <div ng-messages="generalForm.pickupgroup.$error" ng-show="generalForm.pickupgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/telephones/telephones.html",'<div id="telephones" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="STAFF.TELEPHONES">Telephones</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTelephones.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTelephones =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="STAFF.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-telephones-count">\n                    <span>{{vm.selectedTelephones.length}}</span>\n                <span translate="STAFF.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TELEPHONES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTelephones()" translate="STAFF.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTelephones()" translate="STAFF.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTelephones" filename="telephones.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTelephones($event)" aria-label="delete selected" translate translate-attr-label="TELEPHONES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TELEPHONE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTelephones" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="fullname">{{ \'STAFF.ACCOUNTNAME\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n                                <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.telephones.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="telephone" md-select-id="id" ng-repeat="telephone in vm.telephones.rows">\n                                <td md-cell ng-if="telephone.userpic"><img class="avatar" alt="{{telephone.name}}" ng-src="api/users/{{telephone.id}}/avatar" /></td>\n                                <td md-cell ng-if="!telephone.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{telephone.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTelephone($event, telephone)" md-cell class="fullname font-weight-600">{{telephone.fullname}}</td>\n                                <td ng-click="vm.createOrEditTelephone($event, telephone)" md-cell class="name ">{{telephone.name}}</td>\n                                <td ng-click="vm.createOrEditTelephone($event, telephone)" md-cell class="email ">{{telephone.email}}</td>\n                                <td ng-click="vm.createOrEditTelephone($event, telephone)" md-cell class="internal ">{{telephone.internal}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(telephone, $event)" translate="STAFF.EDIT_TELEPHONE">\n                                                    Edit Telephone\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(telephone, $event)" translate="STAFF.DELETE_TELEPHONE">\n                                                    Delete Telephone\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.telephones.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TELEPHONE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TELEPHONE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-telephone-button" ng-click="vm.createOrEditTelephone($event)" aria-label="add telephone" translate translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TELEPHONE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/users/create/dialog.html",'<md-dialog class="user-dialog" aria-label="New User">\n    <form name="userForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.ROLE">Role</label>\n                <md-select ng-model="vm.user.role" required autofocus ng-disabled="!vm.newUser">\n                    <md-option ng-value="\'admin\'">Admin</md-option>\n                    <md-option ng-value="\'user\'">User</md-option>\n                </md-select>\n                <div ng-messages="userForm.role.$error" ng-show="userForm.role.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.FULLNAME">Fullname</label>\n                <input type="text" name="fullname" ng-model="vm.user.fullname" required>\n                <div ng-messages="userForm.fullname.$error" ng-show="userForm.fullname.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.USERNAME">Username</label>\n                <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="!vm.newUser">\n                <div ng-messages="userForm.name.$error" ng-show="userForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.user.email" required>\n                <div ng-messages="userForm.email.$error" ng-show="userForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newUser">\n                <label translate="STAFF.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.user.password" placeholder="Password" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n                <div ng-messages="userForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newUser  && vm.newUser">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.user.description">\n                <div ng-messages="userForm.description.$error" ng-show="userForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newUser" class="md-block">\n                <md-switch ng-model="vm.user.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n                <label translate="STAFF.INTERNAL">Internal</label>\n                <input type="text" name="internal" ng-model="vm.user.internal" required ng-disabled="!vm.newUser">\n                <div ng-messages="userForm.internal.$error" ng-show="userForm.internal.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.newUser" class="md-block">\n                <md-switch ng-model="vm.user.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newUser" ng-click="vm.saveUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newUser" ng-click="vm.addNewUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USER" translate-attr-aria-label="STAFF.ADD_USER">\n                    ADD USER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newUser" ng-click="vm.deleteUser($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n    <form name="userForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ \'STAFF.CHANGE_PASSWORD\' | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="STAFF.NEW_PASSWORD">New Password</label>\n                <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n                <div ng-messages="userForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/queueadd/queueadd.html",'<md-dialog class="user-dialog" aria-label="user">\n    <form name="userForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2>{{vm.title}}</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin" ng-if="vm.user.role === \'agent\'">\n                <label translate="STAFF.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="userForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/view.html",'<div id="staff-user" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-users-button md-icon-button" aria-label="Go to users" ng-click="vm.gotoUsers()" translate translate-attr-aria-label="STAFF.GO_TO_USERS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="user-image" hide-xs>\n                    <img ng-src="assets/images/business/users.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.user.id}} {{vm.user.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="STAFF.CREATED_AT"></span> <span>{{vm.user.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div ng-cloak ng-if="vm.user.role !== \'admin\'">\n            <md-fab-speed-dial md-direction="left" class="md-scale md-fab">\n                <md-fab-trigger>\n                    <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n                        <md-tooltip md-direction="top" md-visible="false">Channels</md-tooltip>\n                        <md-icon md-font-icon="icon-eye" aria-label="queueadd"></md-icon>\n                    </md-button>\n                </md-fab-trigger>\n                <md-fab-actions>\n                    <md-button aria-label="voice" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'voice\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Voice</md-tooltip>\n                        <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n                    </md-button>\n                    <md-button aria-label="chat" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'chat\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Chat</md-tooltip>\n                        <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n                    </md-button>\n                    <md-button aria-label="mail" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'mail\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Mail</md-tooltip>\n                        <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n                    </md-button>\n                    <md-button aria-label="sms" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'sms\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Sms</md-tooltip>\n                        <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n                    </md-button>\n                    <md-button aria-label="openchannel" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'openchannel\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Openchannel</md-tooltip>\n                        <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n                    </md-button>\n                    <md-button aria-label="fax" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.user, \'fax\', $event)">\n                        <md-tooltip md-direction="bottom" md-visible="false">Fax</md-tooltip>\n                        <md-icon md-font-icon="icon-deskphone" aria-label="fax"></md-icon>\n                    </md-button>\n                </md-fab-actions>\n            </md-fab-speed-dial>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.changepassworddialog(vm.user, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n                <md-tooltip><span translate="STAFF.CHANGEPASSWORD_USER"></span></md-tooltip>\n                <md-icon md-font-icon="icon-key-variant"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveUser()" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (permissionsForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="user-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n                        </div>\n                        <form name="personal_infoForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ROLE">Role</label>\n                                <md-select ng-model="vm.user.role" required autofocus ng-disabled="true">\n                                    <md-option ng-value="\'admin\'">Admin</md-option>\n                                    <md-option ng-value="\'user\'">User</md-option>\n                                </md-select>\n                                <div ng-messages="personal_infoForm.role.$error" ng-show="personal_infoForm.role.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.FULLNAME">Fullname</label>\n                                <input type="text" name="fullname" ng-model="vm.user.fullname" required>\n                                <div ng-messages="personal_infoForm.fullname.$error" ng-show="personal_infoForm.fullname.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.USERNAME">Username</label>\n                                <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required ng-disabled="true">\n                                <div ng-messages="personal_infoForm.name.$error" ng-show="personal_infoForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.user.email" required>\n                                <div ng-messages="personal_infoForm.email.$error" ng-show="personal_infoForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.user.description">\n                                <div ng-messages="personal_infoForm.description.$error" ng-show="personal_infoForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="user-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n                        </div>\n                        <div ng-controller="Userchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.user)" class="user-detail-form-container md-background-bg md-whiteframe-1dp">\n\n                            <div id="user-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()"\n                                flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                                <div class="drop-text hint-text" layout="row" layout-align="center center">\n                                    <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n                                </div>\n\n                                <div class="upload-button" layout="column" layout-align="center center">\n                                    <md-button class="md-accent md-raised" flow-btn>\n                                        Upload\n                                    </md-button>\n                                    <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n                                </div>\n\n                                <div layout="row" layout-align="start start" layout-wrap>\n                                    <div ng-repeat="change_avatarimage in vm_ca.user.images" ng-switch="change_avatarimage.type">\n                                        <div class="user-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n                                            <div class="overlay" layout="column" layout-align="center center">\n                                                <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n                                                </md-progress-linear>\n                                            </div>\n                                            <img class="media" flow-img="change_avatarimage.file">\n                                        </div>\n\n                                        <div class="user-image" ng-switch-when="image" layout="row" layout-align="center center">\n                                            <img class="media" ng-src="{{change_avatarimage.url}}">\n                                        </div>\n                                    </div>\n                                </div>\n                            </div>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.VOICE">VOICE</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="user-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n                                <label translate="STAFF.INTERNAL">Internal</label>\n                                <input type="text" name="internal" ng-model="vm.user.internal" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.internal.$error" ng-show="generalForm.internal.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.TRANSPORT">Transport</label>\n                                <md-select ng-model="vm.user.transport" required multiple>\n                                    <md-option ng-value="\'udp\'">udp</md-option>\n                                    <md-option ng-value="\'tcp\'">tcp</md-option>\n                                    <md-option ng-value="\'ws\'">ws</md-option>\n                                    <md-option ng-value="\'wss\'">wss</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.transport.$error" ng-show="generalForm.transport.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.NAT">NAT</label>\n                                <md-select ng-model="vm.user.nat" required multiple>\n                                    <md-option ng-value="\'force_rport\'">force_rport</md-option>\n                                    <md-option ng-value="\'comedia\'">comedia</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'never\'">never</md-option>\n                                    <md-option ng-value="\'route\'">route</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n                                <div ng-messages="generalForm.nat.$error" ng-show="generalForm.nat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n                                <md-select ng-model="vm.user.allow" required multiple>\n                                    <md-option ng-value="\'alaw\'">alaw</md-option>\n                                    <md-option ng-value="\'ulaw\'">ulaw</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                    <md-option ng-value="\'g729\'">g729</md-option>\n                                    <md-option ng-value="\'ilbc\'">ilbc</md-option>\n                                    <md-option ng-value="\'opus\'">opus</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n                                <div ng-messages="generalForm.allow.$error" ng-show="generalForm.allow.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLERID">CallerId</label>\n                                <input type="text" name="callerid" ng-model="vm.user.callerid">\n                                <div ng-messages="generalForm.callerid.$error" ng-show="generalForm.callerid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.CALLGROUP">Callgroup</label>\n                                <input type="text" name="callgroup" ng-model="vm.user.callgroup">\n                                <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n                                <div ng-messages="generalForm.callgroup.$error" ng-show="generalForm.callgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n                                <input type="text" name="pickupgroup" ng-model="vm.user.pickupgroup">\n                                <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n                                <div ng-messages="generalForm.pickupgroup.$error" ng-show="generalForm.pickupgroup.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="STAFF.PERMISSIONS">PERMISSIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="user-detail-form-container permissions md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="STAFF.PERMISSIONS">PERMISSIONS</div>\n                        </div>\n                        <div ng-controller="UserPermissionsController as vm_pc" ng-init="vm_pc.init(vm.user)" class="user-detail-form-container">\n                            <md-list ng-repeat="father in vm_pc.navigation[0].children" ng-include="\'permission-nested.html\'" ng-if="vm_pc.user.role !== \'admin\'"></md-list>\n\n                            \x3c!-- Nested navigation template --\x3e\n                            <script type="text/ng-template" id="permission-nested.html">\n                                <md-list-item>\n                                    <md-icon md-font-icon="{{father.icon}}"></md-icon>\n                                    <p translate="{{father.translate}}">{{ father.title }}</p>\n                                    <md-switch class="md-secondary" ng-model="father.enabled" ng-change="vm_pc.onChange(father)" ng-init="father.enabled = vm_pc.user.permissions.includes(father.id)"></md-switch>\n                                </md-list-item>\n\n                                <md-divider></md-divider>\n\n                                <md-list>\n                                    <md-list-item ng-repeat="child in father.children">\n                                        <md-switch class="md-secondary" ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.user.permissions.includes(child.id)"></md-switch>\n                                        <p translate="{{child.translate}}">{{ child.title }}</p>\n                                    </md-list-item>\n                                </md-list>\n                            <\/script>\n                            \x3c!-- / Nested navigation template --\x3e\n\n                            <span ng-if="vm_pc.user.role === \'admin\'" class="md-headline" translate="STAFF.ALL_MODULES_AVAILABLE">All modules are already available.</span>\n\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/users/users.html",'<div id="users" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="STAFF.USERS">Users</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedUsers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedUsers =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="STAFF.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-users-count">\n                    <span>{{vm.selectedUsers.length}}</span>\n                <span translate="STAFF.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="USERS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllUsers()" translate="STAFF.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectUsers()" translate="STAFF.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedUsers" filename="users.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedUsers($event)" aria-label="delete selected" translate translate-attr-label="USERS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- USER TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedUsers" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUsers">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="role">{{ \'STAFF.ROLE\' | translate }}</th>\n                                <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n                                <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n                                <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.users.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="user" md-select-id="id" ng-repeat="user in vm.users.rows">\n                                <td md-cell ng-if="user.userpic"><img class="avatar" alt="{{user.name}}" ng-src="api/users/{{user.id}}/avatar" /></td>\n                                <td md-cell ng-if="!user.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{user.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="role ">{{ vm.arrayrole[user.role].option }}</td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="fullname font-weight-600">{{user.fullname}}</td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="name ">{{user.name}}</td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="email ">{{user.email}}</td>\n                                <td ng-click="vm.createOrEditUser($event, user)" md-cell class="internal ">{{user.internal}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(user, $event)" translate="STAFF.EDIT_USER">\n                                                    Edit User\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(user, $event)" translate="STAFF.DELETE_USER">\n                                                    Delete User\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.users.count}}" md-on-paginate="vm.getUsers" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / USER TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD USER BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-user-button" ng-click="vm.createOrEditUser($event)" aria-label="add user" translate translate-attr-aria-label="STAFF.ADD_USER">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD USER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",'<div id="cannedAnswers" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.CANNEDANSWERS">CannedAnswers</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedCannedAnswers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedCannedAnswers =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-cannedAnswers-count">\n                    <span>{{vm.selectedCannedAnswers.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CANNEDANSWERS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllCannedAnswers()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectCannedAnswers()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedCannedAnswers" filename="cannedAnswers.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="CANNEDANSWERS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CANNEDANSWER TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedCannedAnswers" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCannedAnswers">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="key">{{ \'TOOLS.KEY\' | translate }}</th>\n                                <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.cannedAnswers.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="cannedAnswer" md-select-id="id" ng-repeat="cannedAnswer in vm.cannedAnswers.rows">\n                                <td md-cell ng-if="cannedAnswer.userpic"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="api/users/{{cannedAnswer.id}}/avatar" /></td>\n                                <td md-cell ng-if="!cannedAnswer.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="id ">{{cannedAnswer.id}}</td>\n                                <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="key ">{{cannedAnswer.key}}</td>\n                                <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="value ">{{cannedAnswer.value}}</td>\n                                <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="description ">{{cannedAnswer.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(cannedAnswer, $event)" translate="TOOLS.EDIT_CANNEDANSWER">\n                                                    Edit CannedAnswer\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(cannedAnswer, $event)" translate="TOOLS.DELETE_CANNEDANSWER">\n                                                    Delete CannedAnswer\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.cannedAnswers.count}}" md-on-paginate="vm.getCannedAnswers" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CANNEDANSWER TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CANNEDANSWER BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-cannedAnswer-button" ng-click="vm.createOrEditCannedAnswer($event)" aria-label="add cannedAnswer" translate translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CANNEDANSWER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/create/dialog.html",'<md-dialog class="cannedAnswer-dialog" aria-label="New CannedAnswer">\n    <form name="cannedAnswerForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.KEY">Key</label>\n                <input type="text" name="key" ng-model="vm.cannedAnswer.key" required autofocus>\n                <div ng-messages="cannedAnswerForm.key.$error" ng-show="cannedAnswerForm.key.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.KEY_REQUIRED">Key field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.VALUE">Value</label>\n                <textarea ng-model="vm.cannedAnswer.value" md-maxlength="150" max-rows="5" required></textarea>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.cannedAnswer.description">\n                <div ng-messages="cannedAnswerForm.description.$error" ng-show="cannedAnswerForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCannedAnswer" ng-click="vm.saveCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid || cannedAnswerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCannedAnswer" ng-click="vm.addNewCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CANNEDANSWER" translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n                    ADD CANNEDANSWER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCannedAnswer" ng-click="vm.deleteCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/create/dialog.html",'<md-dialog class="customDashboard-dialog" aria-label="New CustomDashboard">\n    <form name="customDashboardForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.customDashboard.name" required autofocus>\n                <div ng-messages="customDashboardForm.name.$error" ng-show="customDashboardForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.POLLING_INTERVAL">Polling_Interval</label>\n                <input type="number" name="interval" ng-model="vm.customDashboard.interval" min="5" required>\n                <div ng-messages="customDashboardForm.interval.$error" ng-show="customDashboardForm.interval.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.POLLING_INTERVAL_REQUIRED">Polling_Interval field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.customDashboard.description">\n                <div ng-messages="customDashboardForm.description.$error" ng-show="customDashboardForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newCustomDashboard" ng-click="vm.saveCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid || customDashboardForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newCustomDashboard" ng-click="vm.addNewCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n                    ADD CUSTOMDASHBOARD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newCustomDashboard" ng-click="vm.deleteCustomDashboard($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/customDashboards.html",'<div id="customDashboards" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.CUSTOMDASHBOARDS">CustomDashboards</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedCustomDashboards.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedCustomDashboards =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-customDashboards-count">\n                    <span>{{vm.selectedCustomDashboards.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CUSTOMDASHBOARDS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllCustomDashboards()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectCustomDashboards()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedCustomDashboards" filename="customDashboards.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedCustomDashboards($event)" aria-label="delete selected" translate translate-attr-label="CUSTOMDASHBOARDS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CUSTOMDASHBOARD TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedCustomDashboards" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCustomDashboards">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="interval">{{ \'TOOLS.POLLING_INTERVAL\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.customDashboards.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="customDashboard" md-select-id="id" ng-repeat="customDashboard in vm.customDashboards.rows">\n                                <td md-cell ng-if="customDashboard.userpic"><img class="avatar" alt="{{customDashboard.name}}" ng-src="api/users/{{customDashboard.id}}/avatar" /></td>\n                                <td md-cell ng-if="!customDashboard.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{customDashboard.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="id ">{{customDashboard.id}}</td>\n                                <td ng-click="vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="name ">{{customDashboard.name}}</td>\n                                <td ng-click="vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="interval ">{{customDashboard.interval}}</td>\n                                <td ng-click="vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="description ">{{customDashboard.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(customDashboard, $event)" translate="TOOLS.EDIT_CUSTOMDASHBOARD">\n                                                    Edit CustomDashboard\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(customDashboard, $event)" translate="TOOLS.DELETE_CUSTOMDASHBOARD">\n                                                    Delete CustomDashboard\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.customDashboards.count}}" md-on-paginate="vm.getCustomDashboards" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CUSTOMDASHBOARD TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CUSTOMDASHBOARD BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-customDashboard-button" ng-click="vm.createOrEditCustomDashboard($event)" aria-label="add customDashboard" translate translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CUSTOMDASHBOARD BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n    <form name="dashboarditemForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.dashboarditem.type" autofocus>\n\n                    <md-option ng-value="\'counter\'"> {{ \'TOOLS.COUNTER\' | translate }}</md-option>\n\n                    <md-option ng-value="\'iframe\'"> {{ \'TOOLS.IFRAME\' | translate }}</md-option>\n\n                    <md-option ng-value="\'clock\'"> {{ \'TOOLS.CLOCK\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="dashboarditemForm.type.$error" ng-show="dashboarditemForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newDashboardItem" ng-click="vm.saveDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid || dashboarditemForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newDashboardItem" ng-click="vm.addNewDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DASHBOARDITEM" translate-attr-aria-label="TOOLS.ADD_DASHBOARDITEM">\n                    ADD DASHBOARDITEM\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newDashboardItem" ng-click="vm.deleteDashboardItem($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/view.html",'<div id="tools-customDashboard" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-customDashboards-button md-icon-button" aria-label="Go to customDashboards" ng-click="vm.gotoCustomDashboards()" translate translate-attr-aria-label="TOOLS.GO_TO_CUSTOMDASHBOARDS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="customDashboard-image" hide-xs>\n                    <img ng-src="assets/images/business/customDashboards.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.customDashboard.id}} {{vm.customDashboard.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.customDashboard.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (dashboardForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="customDashboard-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.customDashboard.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.POLLING_INTERVAL">Polling_Interval</label>\n                                <input type="number" name="interval" ng-model="vm.customDashboard.interval" min="5" required>\n                                <div ng-messages="generalForm.interval.$error" ng-show="generalForm.interval.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.POLLING_INTERVAL_REQUIRED">Polling_Interval field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.customDashboard.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.DASHBOARD">DASHBOARD</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="customDashboard-detail-form-container dashboard md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="CustomDashboardCustomDashboardController as vm_cd" ng-init="vm_cd.init(vm.customDashboard)" class="customDashboard-detail-form-container">\n                            <div layout="row" layout-align="end center">\n                                <md-button class="md-icon-button" ng-click="vm_cd.addItem()">\n                                    <md-icon md-font-icon="icon-plus"></md-icon>\n                                </md-button>\n                            </div>\n                            <div gridster="vm_cd.gridOptions">\n                                <div gridster-item="item" ng-repeat="item in vm_cd.items.rows" ng-switch="item.type">\n                                    <ms-dash-counter ng-switch-when="counter" options="item" on-delete-item="vm_cd.deleteItem(id)"></ms-dash-counter>\n                                    \x3c!-- <ms-dash-table ng-switch-when="table" options="item" on-delete-item="vm_cd.deleteItem(id)"></ms-dash-table> --\x3e\n                                    <ms-dash-iframe ng-switch-when="iframe" options="item" on-delete-item="vm_cd.deleteItem(id)"></ms-dash-iframe>\n                                    <ms-dash-clock ng-switch-when="clock" options="item" on-delete-item="vm_cd.deleteItem(id)"></ms-dash-clock>\n                                </div>\n                            </div>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/intervals/create/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.interval.name" required autofocus>\n                <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.interval.description">\n                <div ng-messages="intervalForm.description.$error" ng-show="intervalForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input ng-model="vm.interval.name" type="text" name="name" placeholder="{{\'TOOLS.NAME\' | translate}}" md-autofocus required>\n                <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.type">\n                    <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n                <label translate="TOOLS.INTERVALS">Intervals</label>\n                <md-select ng-model="vm.interval.IntervalId">\n                    <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows">{{ interval.name }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            \x3c!-- TIMERANGE START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n            \x3c!-- TIMERANGE END --\x3e\n\n            \x3c!-- DAYSOFWEEK START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.dayOfWeekFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.dayOfWeekTo">\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- DAYSOFWEEK END --\x3e\n\n            \x3c!-- MONTHDAY START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthDayFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthDayTo">\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTHDAY END --\x3e\n\n            \x3c!-- MONTH START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthTo">\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTH END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/intervals/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="" name="name" ng-model="vm.interval.name" required autofocus>\n                <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/view.html",'<div id="tools-interval" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-intervals-button md-icon-button" aria-label="Go to intervals" ng-click="vm.gotoIntervals()" translate translate-attr-aria-label="TOOLS.GO_TO_INTERVALS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="interval-image" hide-xs>\n                    <img ng-src="assets/images/business/intervals.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.interval.id}} {{vm.interval.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.interval.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (intervalsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="interval-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.interval.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.interval.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.INTERVALS">INTERVALS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="interval-detail-form-container intervals md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="IntervalIntervalsController as vm_dc" ng-init="vm_dc.init(vm.interval)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIntervalIntervals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="TOOLS.INTERVALS">Intervals</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditIntervalInterval($event)" aria-label="add interval" translate translate-attr-label="TOOLS.ADD_INTERVAL">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIntervalIntervals.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedIntervalIntervals.length}} {{vm_dc.selectedIntervalIntervals.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedIntervalIntervals($event)" aria-label="delete selected" translate translate-attr-label="INTERVALS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedIntervalIntervals" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIntervalIntervals">\n                                        <tr md-row>\n                                            <th md-column width="10px"></th>\n                                            <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                            <th md-column md-order-by="interval">{{ \'TOOLS.INTERVAL\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'TOOLS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body ng-sortable="vm_dc.sortableTable">\n                                        <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm_dc.intervalIntervals.rows">\n                                            <td md-cell>\n                                                <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n                                            </td>\n                                            <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>{{interval.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>{{interval.name}}</td>\n                                            <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>{{interval.interval}}</td>\n                                            <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>{{interval.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" translate="TOOLS.EDIT_INTERVAL">\n                                                                Edit Interval\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(interval, $event)" translate="TOOLS.DELETE_INTERVAL">\n                                                                Delete Interval\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.intervalIntervals.rows.length">\n                                            <td md-cell colspan="7">\n                                                <span class="text-boxed-ligth" translate="TOOLS.NO_INTERVALS_AVAILABLE">No intervals available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/intervals/intervals.html",'<div id="intervals" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.INTERVALS">Intervals</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedIntervals.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedIntervals =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-intervals-count">\n                    <span>{{vm.selectedIntervals.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTERVALS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllIntervals()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectIntervals()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedIntervals" filename="intervals.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedIntervals($event)" aria-label="delete selected" translate translate-attr-label="INTERVALS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- INTERVAL TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedIntervals" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIntervals">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.intervals.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm.intervals.rows">\n                                <td md-cell ng-if="interval.userpic"><img class="avatar" alt="{{interval.name}}" ng-src="api/users/{{interval.id}}/avatar" /></td>\n                                <td md-cell ng-if="!interval.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{interval.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditInterval($event, interval)" md-cell class="id ">{{interval.id}}</td>\n                                <td ng-click="vm.createOrEditInterval($event, interval)" md-cell class="name ">{{interval.name}}</td>\n                                <td ng-click="vm.createOrEditInterval($event, interval)" md-cell class="description ">{{interval.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(interval, $event)" translate="TOOLS.EDIT_INTERVAL">\n                                                    Edit Interval\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(interval, $event)" translate="TOOLS.DELETE_INTERVAL">\n                                                    Delete Interval\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.intervals.count}}" md-on-paginate="vm.getIntervals" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / INTERVAL TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD INTERVAL BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-interval-button" ng-click="vm.createOrEditInterval($event)" aria-label="add interval" translate translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD INTERVAL BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/pauses/create/dialog.html",'<md-dialog class="pause-dialog" aria-label="New Pause">\n    <form name="pauseForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.pause.name" required autofocus>\n                <div ng-messages="pauseForm.name.$error" ng-show="pauseForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.pause.description">\n                <div ng-messages="pauseForm.description.$error" ng-show="pauseForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newPause" ng-click="vm.savePause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid || pauseForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newPause" ng-click="vm.addNewPause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_PAUSE" translate-attr-aria-label="TOOLS.ADD_PAUSE">\n                    ADD PAUSE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newPause" ng-click="vm.deletePause($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/pauses/pauses.html",'<div id="pauses" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.PAUSES">Pauses</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedPauses.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedPauses =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-pauses-count">\n                    <span>{{vm.selectedPauses.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="PAUSES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllPauses()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectPauses()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedPauses" filename="pauses.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedPauses($event)" aria-label="delete selected" translate translate-attr-label="PAUSES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- PAUSE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedPauses" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPauses">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.pauses.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="pause" md-select-id="id" ng-repeat="pause in vm.pauses.rows">\n                                <td md-cell ng-if="pause.userpic"><img class="avatar" alt="{{pause.name}}" ng-src="api/users/{{pause.id}}/avatar" /></td>\n                                <td md-cell ng-if="!pause.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{pause.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="id ">{{pause.id}}</td>\n                                <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="name ">{{pause.name}}</td>\n                                <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="description ">{{pause.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(pause, $event)" translate="TOOLS.EDIT_PAUSE">\n                                                    Edit Pause\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(pause, $event)" translate="TOOLS.DELETE_PAUSE">\n                                                    Delete Pause\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.pauses.count}}" md-on-paginate="vm.getPauses" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / PAUSE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD PAUSE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-pause-button" ng-click="vm.createOrEditPause($event)" aria-label="add pause" translate translate-attr-aria-label="TOOLS.ADD_PAUSE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD PAUSE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/schedules/create/dialog.html",'<md-dialog class="schedule-dialog" aria-label="New Schedule">\n    <form name="scheduleForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.schedule.name" required autofocus>\n                <div ng-messages="scheduleForm.name.$error" ng-show="scheduleForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.schedule.type">\n                    <md-option ng-value="\'report\'">Report</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.type.$error" ng-show="scheduleForm.type.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.REPORTTYPE">ReportType</label>\n                <md-select ng-model="vm.schedule.reportType" required>\n                    <md-option ng-value="\'default\'">Default</md-option>\n                    <md-option ng-value="\'custom\'">Custom</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportType.$error" ng-show="scheduleForm.reportType.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REPORTTYPE_REQUIRED">ReportType field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.reportType == \'default\'" class="md-block">\n                <label translate="TOOLS.REPORT">Report</label>\n                <md-select ng-model="vm.schedule.reportId" required>\n                    <md-option ng-value="reportId.id" ng-repeat="reportId in vm.defaultReports">{{ reportId.name }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportId.$error" ng-show="scheduleForm.reportId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.reportType == \'custom\'" class="md-block">\n                <label translate="TOOLS.REPORT">Report</label>\n                <md-select ng-model="vm.schedule.reportId" required>\n                    <md-option ng-value="reportId.id" ng-repeat="reportId in vm.customReports">{{ reportId.name }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportId.$error" ng-show="scheduleForm.reportId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.OUTPUT">Output</label>\n                <md-select ng-model="vm.schedule.reportOutput" required>\n                    <md-option ng-value="\'CSV\'">CSV</md-option>\n                    <md-option ng-value="\'PDF\'">PDF</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportOutput.$error" ng-show="scheduleForm.reportOutput.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OUTPUT_REQUIRED">Output field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.EXECUTEON">ExecuteOn</label>\n                <md-select ng-model="vm.schedule.cronType" required>\n\n                    <md-option ng-value="\'currentDay\'"> {{ \'TOOLS.CURRENTDAY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'daily\'"> {{ \'TOOLS.DAILY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'weekly\'"> {{ \'TOOLS.WEEKLY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'monthly\'"> {{ \'TOOLS.MONTHLY\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.cronType.$error" ng-show="scheduleForm.cronType.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.EXECUTEON_REQUIRED">ExecuteOn field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n                <input type="number" name="validityStart" ng-model="vm.schedule.validityStart" min="0" max="24" required>\n                <div ng-messages="scheduleForm.validityStart.$error" ng-show="scheduleForm.validityStart.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.VALIDITYSTART_REQUIRED">ValidityStart field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n                <input type="number" name="validityEnd" ng-model="vm.schedule.validityEnd" min="0" max="24" required>\n                <div ng-messages="scheduleForm.validityEnd.$error" ng-show="scheduleForm.validityEnd.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.VALIDITYEND_REQUIRED">ValidityEnd field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                <label translate="TOOLS.EXECUTEEVERY">ExecuteEvery</label>\n                <md-select ng-model="vm.schedule.cron" required>\n\n                    <md-option ng-value="\'*/15 * * * *\'"> {{ \'TOOLS.15MIN\' | translate }}</md-option>\n\n                    <md-option ng-value="\'*/30 * * * *\'"> {{ \'TOOLS.30MIN\' | translate }}</md-option>\n\n                    <md-option ng-value="\'0 * * * *\'"> {{ \'TOOLS.1H\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.cron.$error" ng-show="scheduleForm.cron.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.EXECUTEEVERY_REQUIRED">ExecuteEvery field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'weekly\'" class="md-block">\n                <label translate="TOOLS.WEEKDAYS">WeekDays</label>\n                <md-select ng-model="vm.schedule.weekDays" required multiple>\n\n                    <md-option ng-value="\'monday\'"> {{ \'TOOLS.MON\' | translate }}</md-option>\n\n                    <md-option ng-value="\'tuesday\'"> {{ \'TOOLS.TUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'wednesday\'"> {{ \'TOOLS.WED\' | translate }}</md-option>\n\n                    <md-option ng-value="\'thursday\'"> {{ \'TOOLS.THU\' | translate }}</md-option>\n\n                    <md-option ng-value="\'friday\'"> {{ \'TOOLS.FRI\' | translate }}</md-option>\n\n                    <md-option ng-value="\'saturday\'"> {{ \'TOOLS.SAT\' | translate }}</md-option>\n\n                    <md-option ng-value="\'sunday\'"> {{ \'TOOLS.SUN\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.weekDays.$error" ng-show="scheduleForm.weekDays.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.WEEKDAYS_REQUIRED">WeekDays field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType == \'monthly\'" class="md-block">\n                <label translate="TOOLS.MONTHDAY">MonthDay</label>\n                <input type="number" name="monthDay" ng-model="vm.schedule.monthDay" min="1" max="31" required>\n                <div ng-messages="scheduleForm.monthDay.$error" ng-show="scheduleForm.monthDay.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.MONTHDAY_REQUIRED">MonthDay field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType != \'currentDay\'" class="md-block">\n                <label translate="TOOLS.HOUR">Hour</label>\n                <input type="number" name="hour" ng-model="vm.schedule.hour" min="0" max="23" required>\n                <div ng-messages="scheduleForm.hour.$error" ng-show="scheduleForm.hour.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.HOUR_REQUIRED">Hour field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.cronType != \'currentDay\'" class="md-block">\n                <label translate="TOOLS.REPORTRANGE">ReportRange</label>\n                <md-select ng-model="vm.schedule.reportRange" required>\n\n                    <md-option ng-value="\'yesterday\'"> {{ \'TOOLS.PREVIOUS_DAY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'last7\'"> {{ \'TOOLS.LAST_SEVEN_DAYS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'last30\'"> {{ \'TOOLS.LAST_THIRTY_DAYS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'lastMonth\'"> {{ \'TOOLS.LAST_MONTH\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.reportRange.$error" ng-show="scheduleForm.reportRange.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REPORTRANGE_REQUIRED">ReportRange field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.schedule.sendMail" aria-label="SendMail"><span translate="TOOLS.SENDMAIL">SendMail</span></md-switch>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.schedule.MailServerOutId" required>\n                    <md-option ng-value="MailServerOutId.id" ng-repeat="MailServerOutId in vm.mailServerOut">{{ MailServerOutId.name }}</md-option>\n                </md-select>\n                <div ng-messages="scheduleForm.MailServerOutId.$error" ng-show="scheduleForm.MailServerOutId.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n                <label translate="TOOLS.EMAILADDRESS">EmailAddress</label>\n                <input type="email" name="email" ng-model="vm.schedule.email" required>\n                <div ng-messages="scheduleForm.email.$error" ng-show="scheduleForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="TOOLS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="" name="description" ng-model="vm.schedule.description">\n                <div ng-messages="scheduleForm.description.$error" ng-show="scheduleForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSchedule" ng-click="vm.saveSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid || scheduleForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSchedule" ng-click="vm.addNewSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SCHEDULE" translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n                    ADD SCHEDULE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSchedule" ng-click="vm.deleteSchedule($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/schedules/edit/view.html",'<div id="tools-schedule" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-schedules-button md-icon-button" aria-label="Go to schedules" ng-click="vm.gotoScheduler()" translate translate-attr-aria-label="TOOLS.GO_TO_SCHEDULER">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="schedule-image" hide-xs>\n                    <img ng-src="assets/images/business/schedules.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.schedule.id}} {{vm.schedule.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.schedule.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveSchedule()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="schedule-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.schedule.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="" name="description" ng-model="vm.schedule.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.CONFIGURATION">CONFIGURATION</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="schedule-detail-form-container configuration md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.CONFIGURATION">CONFIGURATION</div>\n                        </div>\n                        <form name="configurationForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.REPORTTYPE">ReportType</label>\n                                <md-select ng-model="vm.schedule.reportType" required autofocus>\n                                    <md-option ng-value="\'default\'">Default</md-option>\n                                    <md-option ng-value="\'custom\'">Custom</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportType.$error" ng-show="configurationForm.reportType.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REPORTTYPE_REQUIRED">ReportType field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.reportType == \'default\'" class="md-block">\n                                <label translate="TOOLS.REPORT">Report</label>\n                                <md-select ng-model="vm.schedule.reportId" required>\n                                    <md-option ng-value="reportId.id" ng-repeat="reportId in vm.defaultReports">{{ reportId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportId.$error" ng-show="configurationForm.reportId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.reportType == \'custom\'" class="md-block">\n                                <label translate="TOOLS.REPORT">Report</label>\n                                <md-select ng-model="vm.schedule.reportId" required>\n                                    <md-option ng-value="reportId.id" ng-repeat="reportId in vm.customReports">{{ reportId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportId.$error" ng-show="configurationForm.reportId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.OUTPUT">Output</label>\n                                <md-select ng-model="vm.schedule.reportOutput" required>\n                                    <md-option ng-value="\'CSV\'">CSV</md-option>\n                                    <md-option ng-value="\'PDF\'">PDF</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportOutput.$error" ng-show="configurationForm.reportOutput.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.OUTPUT_REQUIRED">Output field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.EXECUTEON">ExecuteOn</label>\n                                <md-select ng-model="vm.schedule.cronType" required>\n\n                                    <md-option ng-value="\'currentDay\'"> {{ \'TOOLS.CURRENTDAY\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'daily\'"> {{ \'TOOLS.DAILY\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'weekly\'"> {{ \'TOOLS.WEEKLY\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'monthly\'"> {{ \'TOOLS.MONTHLY\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.cronType.$error" ng-show="configurationForm.cronType.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.EXECUTEON_REQUIRED">ExecuteOn field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n                                <input type="number" name="validityStart" ng-model="vm.schedule.validityStart" min="0" max="24" required>\n                                <div ng-messages="configurationForm.validityStart.$error" ng-show="configurationForm.validityStart.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.VALIDITYSTART_REQUIRED">ValidityStart field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n                                <input type="number" name="validityEnd" ng-model="vm.schedule.validityEnd" min="0" max="24" required>\n                                <div ng-messages="configurationForm.validityEnd.$error" ng-show="configurationForm.validityEnd.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.VALIDITYEND_REQUIRED">ValidityEnd field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.EXECUTEEVERY">ExecuteEvery</label>\n                                <md-select ng-model="vm.schedule.cron" required>\n\n                                    <md-option ng-value="\'*/15 * * * *\'"> {{ \'TOOLS.15MIN\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'*/30 * * * *\'"> {{ \'TOOLS.30MIN\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'0 * * * *\'"> {{ \'TOOLS.1H\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.cron.$error" ng-show="configurationForm.cron.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.EXECUTEEVERY_REQUIRED">ExecuteEvery field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'weekly\'" class="md-block">\n                                <label translate="TOOLS.WEEKDAYS">WeekDays</label>\n                                <md-select ng-model="vm.schedule.weekDays" required multiple>\n\n                                    <md-option ng-value="\'monday\'"> {{ \'TOOLS.MON\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'tuesday\'"> {{ \'TOOLS.TUE\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'wednesday\'"> {{ \'TOOLS.WED\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'thursday\'"> {{ \'TOOLS.THU\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'friday\'"> {{ \'TOOLS.FRI\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'saturday\'"> {{ \'TOOLS.SAT\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'sunday\'"> {{ \'TOOLS.SUN\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.weekDays.$error" ng-show="configurationForm.weekDays.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.WEEKDAYS_REQUIRED">WeekDays field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType == \'monthly\'" class="md-block">\n                                <label translate="TOOLS.MONTHDAY">MonthDay</label>\n                                <input type="number" name="monthDay" ng-model="vm.schedule.monthDay" min="1" max="31" required>\n                                <div ng-messages="configurationForm.monthDay.$error" ng-show="configurationForm.monthDay.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.MONTHDAY_REQUIRED">MonthDay field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType != \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.HOUR">Hour</label>\n                                <input type="number" name="hour" ng-model="vm.schedule.hour" min="0" max="23" required>\n                                <div ng-messages="configurationForm.hour.$error" ng-show="configurationForm.hour.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.HOUR_REQUIRED">Hour field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.cronType != \'currentDay\'" class="md-block">\n                                <label translate="TOOLS.REPORTRANGE">ReportRange</label>\n                                <md-select ng-model="vm.schedule.reportRange" required>\n\n                                    <md-option ng-value="\'yesterday\'"> {{ \'TOOLS.PREVIOUS_DAY\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'last7\'"> {{ \'TOOLS.LAST_SEVEN_DAYS\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'last30\'"> {{ \'TOOLS.LAST_THIRTY_DAYS\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'lastMonth\'"> {{ \'TOOLS.LAST_MONTH\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.reportRange.$error" ng-show="configurationForm.reportRange.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REPORTRANGE_REQUIRED">ReportRange field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.schedule.sendMail" aria-label="SendMail"><span translate="TOOLS.SENDMAIL">SendMail</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n                                <label translate="TOOLS.ACCOUNT">Account</label>\n                                <md-select ng-model="vm.schedule.MailServerOutId" required>\n                                    <md-option ng-value="MailServerOutId.id" ng-repeat="MailServerOutId in vm.mailServerOut">{{ MailServerOutId.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="configurationForm.MailServerOutId.$error" ng-show="configurationForm.MailServerOutId.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n                                <label translate="TOOLS.EMAILADDRESS">EmailAddress</label>\n                                <input type="email" name="email" ng-model="vm.schedule.email" required>\n                                <div ng-messages="configurationForm.email.$error" ng-show="configurationForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="TOOLS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/schedules/schedules.html",'<div id="schedules" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.SCHEDULER">Scheduler</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedScheduler.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedScheduler =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-schedules-count">\n                    <span>{{vm.selectedScheduler.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SCHEDULER.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllScheduler()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectScheduler()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedScheduler" filename="schedules.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedScheduler($event)" aria-label="delete selected" translate translate-attr-label="SCHEDULER.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SCHEDULE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedScheduler" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScheduler">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="sendMail">{{ \'TOOLS.SENDMAIL\' | translate }}</th>\n                                <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.schedules.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="schedule" md-select-id="id" ng-repeat="schedule in vm.schedules.rows">\n                                <td md-cell ng-if="schedule.userpic"><img class="avatar" alt="{{schedule.name}}" ng-src="api/users/{{schedule.id}}/avatar" /></td>\n                                <td md-cell ng-if="!schedule.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{schedule.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="id ">{{schedule.id}}</td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="name ">{{schedule.name}}</td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="sendMail ">\n                                    <md-icon md-colors="{color: {{schedule.sendMail ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{schedule.sendMail ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="active ">\n                                    <md-icon md-colors="{color: {{schedule.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{schedule.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="description ">{{schedule.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(schedule, $event)" translate="TOOLS.EDIT_SCHEDULE">\n                                                    Edit Schedule\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(schedule, $event)" translate="TOOLS.DELETE_SCHEDULE">\n                                                    Delete Schedule\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.schedules.count}}" md-on-paginate="vm.getScheduler" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SCHEDULE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SCHEDULE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-schedule-button" ng-click="vm.createOrEditSchedule($event)" aria-label="add schedule" translate translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SCHEDULE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/create/dialog.html",'<md-dialog class="sound-dialog" aria-label="New Sound">\n    <form name="soundForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.sound.name" required autofocus>\n                <div ng-messages="soundForm.name.$error" ng-show="soundForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.sound.description">\n                <div ng-messages="soundForm.description.$error" ng-show="soundForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newSound" ng-click="vm.saveSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid || soundForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newSound" ng-click="vm.addNewSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SOUND" translate-attr-aria-label="TOOLS.ADD_SOUND">\n                    ADD SOUND\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newSound" ng-click="vm.deleteSound($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/sounds/sounds.html",'<div id="sounds" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.SOUNDS">Sounds</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedSounds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedSounds =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-sounds-count">\n                    <span>{{vm.selectedSounds.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SOUNDS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllSounds()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectSounds()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedSounds" filename="sounds.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedSounds($event)" aria-label="delete selected" translate translate-attr-label="SOUNDS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- SOUND TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedSounds" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSounds">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="audio">{{ \'TOOLS.AUDIO\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.sounds.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="sound" md-select-id="id" ng-repeat="sound in vm.sounds.rows">\n                                <td md-cell ng-if="sound.userpic"><img class="avatar" alt="{{sound.name}}" ng-src="api/users/{{sound.id}}/avatar" /></td>\n                                <td md-cell ng-if="!sound.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sound.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="id ">{{sound.id}}</td>\n                                <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="name ">{{sound.name}}</td>\n                                <td md-cell class="audio "><audio controls><source ng-src="{{\'api/sounds/\' + sound.id + \'/download\'}}" type="audio/wav" preload="none"></source>Your browser does not support the audio element.</audio></td>\n                                <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="description ">{{sound.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(sound, $event)" translate="TOOLS.EDIT_SOUND">\n                                                    Edit Sound\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.downloadfile(sound, $event)" translate="TOOLS.DOWNLOAD_SOUND">\n                                                    Download Sound\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(sound, $event)" translate="TOOLS.DELETE_SOUND">\n                                                    Delete Sound\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.sounds.count}}" md-on-paginate="vm.getSounds" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / SOUND TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD SOUND BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-sound-button" ng-click="vm.uploadSound($event)" aria-label="add sound" translate translate-attr-aria-label="SOUNDS.ADD_SOUND">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD SOUND BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/uploadsound/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload Sound">\n    <form name="uploadForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <div id="agent-image-uploader" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)" flow-complete="vm.uploadComplete()" flow-drop\n                flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n                <div class="drop-text hint-text" layout="row" layout-align="center center">\n                    <span translate="TOOLS.DROP_TO_UPLOAD">Drop to upload</span>\n                </div>\n\n                <div class="upload-button" layout="column" layout-align="center center">\n                    <md-button class="md-accent md-raised" flow-btn>\n                        Upload\n                    </md-button>\n                    <span class="secondary-text mt-8" translate="TOOLS.DROP_TO_UPLOAD_MESSAGE">You can also drop audio here to upload. Only MP3, WAV, GSM - Max. 15MB</span>\n                </div>\n\n                <div layout="row" layout-align="start start" ng-repeat="sound in vm.uploadSounds" ng-switch="sound.type">\n                    <div class="sound-image" ng-switch-when="uploading" flex>\n                        <img class="media" src="assets/images/music-player/uploading.png">\n                        <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n                        <span class="text-truncate">{{sound.file.name}}</span>\n                    </div>\n                    <div class="sound-image" ng-switch-when="sound" flex>\n                        <img class="media" src="assets/images/music-player/success.png">\n                        <span class="text-truncate">{{sound.file.name}}</span>\n                    </div>\n                </div>\n\n\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center"></div>\n            <div layout="row">\n                <md-button ng-click="vm.closeDialog()" class="md-accent md-raised" aria-label="FINISH" translate="TOOLS.FINISH" translate-attr-aria-label="TOOLS.FINISH">\n                    FINISH\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/create/dialog.html",'<md-dialog class="tag-dialog" aria-label="New Tag">\n    <form name="tagForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.tag.name" required autofocus>\n                <div ng-messages="tagForm.name.$error" ng-show="tagForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.tag.description">\n                <div ng-messages="tagForm.description.$error" ng-show="tagForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTag" ng-click="vm.saveTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid || tagForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTag" ng-click="vm.addNewTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TAG" translate-attr-aria-label="TOOLS.ADD_TAG">\n                    ADD TAG\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTag" ng-click="vm.deleteTag($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/tags.html",'<div id="tags" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.TAGS">Tags</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTags.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTags =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-tags-count">\n                    <span>{{vm.selectedTags.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TAGS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTags()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTags()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTags" filename="tags.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTags($event)" aria-label="delete selected" translate translate-attr-label="TAGS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TAG TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTags" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTags">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.tags.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="tag" md-select-id="id" ng-repeat="tag in vm.tags.rows">\n                                <td md-cell ng-if="tag.userpic"><img class="avatar" alt="{{tag.name}}" ng-src="api/users/{{tag.id}}/avatar" /></td>\n                                <td md-cell ng-if="!tag.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{tag.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="id ">{{tag.id}}</td>\n                                <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="name ">{{tag.name}}</td>\n                                <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="description ">{{tag.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(tag, $event)" translate="TOOLS.EDIT_TAG">\n                                                    Edit Tag\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(tag, $event)" translate="TOOLS.DELETE_TAG">\n                                                    Delete Tag\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.tags.count}}" md-on-paginate="vm.getTags" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TAG TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TAG BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-tag-button" ng-click="vm.createOrEditTag($event)" aria-label="add tag" translate translate-attr-aria-label="TOOLS.ADD_TAG">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TAG BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/templates/create/dialog.html",'<md-dialog class="template-dialog" aria-label="New Template">\n    <form name="templateForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.template.name" required autofocus>\n                <div ng-messages="templateForm.name.$error" ng-show="templateForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.SUBJECT">Subject</label>\n                <input type="text" name="subject" ng-model="vm.template.subject">\n                <div ng-messages="templateForm.subject.$error" ng-show="templateForm.subject.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.SUBJECT_REQUIRED">Subject field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <text-angular ng-model="vm.template.html"></text-angular>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.template.description">\n                <div ng-messages="templateForm.description.$error" ng-show="templateForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTemplate" ng-click="vm.saveTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid || templateForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTemplate" ng-click="vm.addNewTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TEMPLATE" translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n                    ADD TEMPLATE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTemplate" ng-click="vm.deleteTemplate($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/templates/templates.html",'<div id="templates" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.TEMPLATES">Templates</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTemplates.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTemplates =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-templates-count">\n                    <span>{{vm.selectedTemplates.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TEMPLATES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTemplates()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTemplates()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTemplates" filename="templates.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTemplates($event)" aria-label="delete selected" translate translate-attr-label="TEMPLATES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TEMPLATE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTemplates" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTemplates">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.templates.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="template" md-select-id="id" ng-repeat="template in vm.templates.rows">\n                                <td md-cell ng-if="template.userpic"><img class="avatar" alt="{{template.name}}" ng-src="api/users/{{template.id}}/avatar" /></td>\n                                <td md-cell ng-if="!template.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{template.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="id ">{{template.id}}</td>\n                                <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="name ">{{template.name}}</td>\n                                <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="description ">{{template.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(template, $event)" translate="TOOLS.EDIT_TEMPLATE">\n                                                    Edit Template\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(template, $event)" translate="TOOLS.DELETE_TEMPLATE">\n                                                    Delete Template\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.templates.count}}" md-on-paginate="vm.getTemplates" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TEMPLATE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TEMPLATE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-template-button" ng-click="vm.createOrEditTemplate($event)" aria-label="add template" translate translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TEMPLATE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/create/dialog.html",'<md-dialog class="trigger-dialog" aria-label="New Trigger">\n    <form name="triggerForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.trigger.name" required autofocus>\n                <div ng-messages="triggerForm.name.$error" ng-show="triggerForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.CHANNEL">Channel</label>\n                <md-select ng-model="vm.trigger.channel" required ng-disabled="!vm.newTrigger">\n\n                    <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="triggerForm.channel.$error" ng-show="triggerForm.channel.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.trigger.description">\n                <div ng-messages="triggerForm.description.$error" ng-show="triggerForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTrigger" ng-click="vm.saveTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid || triggerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTrigger" ng-click="vm.addNewTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRIGGER" translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n                    ADD TRIGGER\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTrigger" ng-click="vm.deleteTrigger($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/actions/dialog.html",'<md-dialog class="action-dialog" aria-label="New Action">\n    <form name="actionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.ACTION">Action</label>\n                <md-select ng-model="vm.action.action" required autofocus>\n\n                    <md-option ng-value="\'contactManager\'"> {{ \'TOOLS.CONTACT_MANAGER\' | translate }}</md-option>\n\n                    <md-option ng-value="\'integration\'"> {{ \'TOOLS.INTEGRATIONS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'motionbar\'"> {{ \'TOOLS.MOTION_BAR\' | translate }}</md-option>\n\n                    <md-option ng-value="\'jscripty\'"> {{ \'TOOLS.JSCRIPTY\' | translate }}</md-option>\n\n                    <md-option ng-value="\'urlForward\'"> {{ \'TOOLS.URL_FORWARD\' | translate }}</md-option>\n\n                    <md-option ng-value="\'browser\'"> {{ \'TOOLS.BROWSER\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.action.$error" ng-show="actionForm.action.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACTION_REQUIRED">Action field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'jscripty\'" class="md-block">\n                <label translate="TOOLS.PROJECT">Project</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="data1.id" ng-repeat="data1 in vm.projects">{{ data1.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'browser\'" class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="\'0\'">Popup</md-option>\n                    <md-option ng-value="\'1\'">CTI URL</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n                <label translate="TOOLS.LIST">List</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="data1.id" ng-repeat="data1 in vm.lists">{{ data1.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.LIST_REQUIRED">List field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="\'GET\'">GET</md-option>\n                    <md-option ng-value="\'POST\'">POST</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n                <label translate="TOOLS.URL">Url</label>\n                <input type="url" name="data2" ng-model="vm.action.data2" required>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\'" class="md-block">\n                <label translate="TOOLS.INTEGRATION">Integration</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="\'zendesk\'">Zendesk</md-option>\n                    <md-option ng-value="\'salesforce\'">Salesforce</md-option>\n                    <md-option ng-value="\'sugarcrm\'">SugarCRM</md-option>\n                    <md-option ng-value="\'freshdesk\'">Freshdesk</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.INTEGRATION_REQUIRED">Integration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'zendesk\'" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.zendeskAccounts">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'salesforce\'" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.salesforceAccounts">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'sugarcrm\'" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.sugarcrmAccounts">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'freshdesk\'" class="md-block">\n                <label translate="TOOLS.ACCOUNT">Account</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.freshdeskAccounts">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'zendesk\' && vm.action.data2" class="md-block">\n                <label translate="TOOLS.CONFIGURATION">Configuration</label>\n                <md-select ng-model="vm.action.data3" required>\n                    <md-option ng-value="data3.id" ng-repeat="data3 in vm.zendeskConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'salesforce\' && vm.action.data2" class="md-block">\n                <label translate="TOOLS.CONFIGURATION">Configuration</label>\n                <md-select ng-model="vm.action.data3" required>\n                    <md-option ng-value="data3.id" ng-repeat="data3 in vm.salesforceConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'sugarcrm\' && vm.action.data2" class="md-block">\n                <label translate="TOOLS.CONFIGURATION">Configuration</label>\n                <md-select ng-model="vm.action.data3" required>\n                    <md-option ng-value="data3.id" ng-repeat="data3 in vm.sugarcrmConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 == \'freshdesk\' && vm.action.data2" class="md-block">\n                <label translate="TOOLS.CONFIGURATION">Configuration</label>\n                <md-select ng-model="vm.action.data3" required>\n                    <md-option ng-value="data3.id" ng-repeat="data3 in vm.freshdeskConfigurations | filter:{AccountId:vm.action.data2}">{{ data3.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\'" class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.action.data1" required>\n                    <md-option ng-value="\'0\'">Popup</md-option>\n                    <md-option ng-value="\'1\'">CTI URL</md-option>\n                    <md-option ng-value="\'2\'">Windows App</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data1.$error" ng-show="actionForm.data1.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'1\'" class="md-block">\n                <label translate="TOOLS.URL">Url</label>\n                <input type="url" name="data2" ng-model="vm.action.data2" required>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n                <label translate="TOOLS.APPLICATION">Application</label>\n                <input type="text" name="data2" ng-model="vm.action.data2" required>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n                <label translate="TOOLS.ARGUMENTS">Arguments</label>\n                <input type="text" name="data3" ng-model="vm.action.data3">\n                <div ng-messages="actionForm.data3.$error" ng-show="actionForm.data3.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'0\'" class="md-block">\n                <label translate="TOOLS.TEMPLATE">Template</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.templates">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'0\'" class="md-block">\n                <label translate="TOOLS.TEMPLATE">Template</label>\n                <md-select ng-model="vm.action.data2" required>\n                    <md-option ng-value="data2.id" ng-repeat="data2 in vm.templates">{{ data2.name }}</md-option>\n                </md-select>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'1\'" class="md-block">\n                <label translate="TOOLS.URL">Url</label>\n                <input type="url" name="data2" ng-model="vm.action.data2" required>\n                <div ng-messages="actionForm.data2.$error" ng-show="actionForm.data2.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                    <div ng-message="url">\n                        <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newAction" ng-click="vm.saveAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid || actionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newAction" ng-click="vm.addNewAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ACTION" translate-attr-aria-label="TOOLS.ADD_ACTION">\n                    ADD ACTION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newAction" ng-click="vm.deleteAction($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/dialog.html",'<md-dialog class="allCondition-dialog" aria-label="New AllCondition">\n    <form name="allConditionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.FIELD">Field</label>\n                <md-select ng-model="vm.allCondition.field" required autofocus>\n\n                    <md-option ng-value="\'queue\'"> {{ \'TOOLS.QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'lastevent\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'routeId\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.field.$error" ng-show="allConditionForm.field.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.OPERATOR">Operator</label>\n                <md-select ng-model="vm.allCondition.operator" required>\n\n                    <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.operator.$error" ng-show="allConditionForm.operator.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.allCondition.field == \'queue\'" class="md-block">\n                <label translate="TOOLS.QUEUE">Queue</label>\n                <md-select ng-model="vm.allCondition.value" required>\n                    <md-option ng-value="value.name" ng-repeat="value in vm.queues">{{ value.name }}</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.value.$error" ng-show="allConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.allCondition.field == \'routeId\'" class="md-block">\n                <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n                <md-select ng-model="vm.allCondition.value" required>\n                    <md-option ng-value="value.id" ng-repeat="value in vm.outboundRoutes">{{ value.exten }}</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.value.$error" ng-show="allConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.allCondition.field == \'lastevent\'" class="md-block">\n                <label translate="TOOLS.VALUE">Value</label>\n                <md-select ng-model="vm.allCondition.value" required>\n                    <md-option ng-value="\'abandoned\'">Abandon</md-option>\n                    <md-option ng-value="\'complete\'">Hangup</md-option>\n                    <md-option ng-value="\'rejected\'">Reject</md-option>\n                    <md-option ng-value="\'called\'">Ring</md-option>\n                    <md-option ng-value="\'connect\'">Answer</md-option>\n                </md-select>\n                <div ng-messages="allConditionForm.value.$error" ng-show="allConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newAllCondition" ng-click="vm.saveAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid || allConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newAllCondition" ng-click="vm.addNewAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ALLCONDITION" translate-attr-aria-label="TOOLS.ADD_ALLCONDITION">\n                    ADD ALLCONDITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newAllCondition" ng-click="vm.deleteAllCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/dialog.html",'<md-dialog class="anyCondition-dialog" aria-label="New AnyCondition">\n    <form name="anyConditionForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.FIELD">Field</label>\n                <md-select ng-model="vm.anyCondition.field" required autofocus>\n\n                    <md-option ng-value="\'queue\'"> {{ \'TOOLS.QUEUE\' | translate }}</md-option>\n\n                    <md-option ng-value="\'lastevent\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'routeId\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.field.$error" ng-show="anyConditionForm.field.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.OPERATOR">Operator</label>\n                <md-select ng-model="vm.anyCondition.operator" required>\n\n                    <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }}</md-option>\n\n                    <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.operator.$error" ng-show="anyConditionForm.operator.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.anyCondition.field == \'queue\'" class="md-block">\n                <label translate="TOOLS.QUEUE">Queue</label>\n                <md-select ng-model="vm.anyCondition.value" required>\n                    <md-option ng-value="value.name" ng-repeat="value in vm.queues">{{ value.name }}</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.value.$error" ng-show="anyConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.anyCondition.field == \'routeId\'" class="md-block">\n                <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n                <md-select ng-model="vm.anyCondition.value" required>\n                    <md-option ng-value="value.id" ng-repeat="value in vm.outboundRoutes">{{ value.exten }}</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.value.$error" ng-show="anyConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.anyCondition.field == \'lastevent\'" class="md-block">\n                <label translate="TOOLS.VALUE">Value</label>\n                <md-select ng-model="vm.anyCondition.value" required>\n                    <md-option ng-value="\'abandoned\'">Abandon</md-option>\n                    <md-option ng-value="\'complete\'">Hangup</md-option>\n                    <md-option ng-value="\'rejected\'">Reject</md-option>\n                    <md-option ng-value="\'called\'">Ring</md-option>\n                    <md-option ng-value="\'connect\'">Answer</md-option>\n                </md-select>\n                <div ng-messages="anyConditionForm.value.$error" ng-show="anyConditionForm.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newAnyCondition" ng-click="vm.saveAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid || anyConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newAnyCondition" ng-click="vm.addNewAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ANYCONDITION" translate-attr-aria-label="TOOLS.ADD_ANYCONDITION">\n                    ADD ANYCONDITION\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newAnyCondition" ng-click="vm.deleteAnyCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/view.html",'<div id="tools-trigger" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-triggers-button md-icon-button" aria-label="Go to triggers" ng-click="vm.gotoTriggers()" translate translate-attr-aria-label="TOOLS.GO_TO_TRIGGERS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="trigger-image" hide-xs>\n                    <img ng-src="assets/images/business/triggers.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.trigger.id}} {{vm.trigger.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.trigger.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveTrigger()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (allconditionsForm.$invalid) || (anyconditionsForm.$invalid) || (actionsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trigger-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.trigger.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CHANNEL">Channel</label>\n                                <md-select ng-model="vm.trigger.channel" required ng-disabled="true">\n\n                                    <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.channel.$error" ng-show="generalForm.channel.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.trigger.status" aria-label="Status"><span translate="TOOLS.STATUS">Status</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.trigger.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.CONDITIONS&ACTIONS">CONDITIONS&ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trigger-detail-form-container allconditions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="TriggerAllConditionsController as vm_dc" ng-init="vm_dc.init(vm.trigger)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerAllConditions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="TOOLS.ALLCONDITIONS">AllConditions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAllCondition($event)" aria-label="add allCondition" translate translate-attr-label="TOOLS.ADD_ALLCONDITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerAllConditions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedTriggerAllConditions.length}} {{vm_dc.selectedTriggerAllConditions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerAllConditions($event)" aria-label="delete selected" translate translate-attr-label="TRIGGERS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerAllConditions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerAllConditions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="field">{{ \'TOOLS.FIELD\' | translate }}</th>\n                                            <th md-column md-order-by="operator">{{ \'TOOLS.OPERATOR\' | translate }}</th>\n                                            <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'TOOLS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="allCondition" md-select-id="id" ng-repeat="allCondition in vm_dc.triggerAllConditions.rows">\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" md-cell>{{allCondition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayfield[allCondition.field].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayoperator[allCondition.operator].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="allCondition.field == \'queue\'" md-cell>{{ value = vm_dc.queues[allCondition.value]; value.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="allCondition.field == \'routeId\'" md-cell>{{ value = vm_dc.outboundRoutes[allCondition.value]; value.exten }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" ng-if="allCondition.field == \'lastevent\'" md-cell>{{ vm_dc.arrayvalue[allCondition.value].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" md-cell>{{allCondition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditTriggerAllCondition($event, allCondition)" translate="TOOLS.EDIT_ALLCONDITION">\n                                                                Edit AllCondition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(allCondition, $event)" translate="TOOLS.DELETE_ALLCONDITION">\n                                                                Delete AllCondition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.triggerAllConditions.rows.length">\n                                            <td md-cell colspan="9">\n                                                <span class="text-boxed-ligth" translate="TOOLS.NO_ALLCONDITION_AVAILABLE">No allcondition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.triggerAllConditions.count}}" md-on-paginate="vm_dc.getTriggerAllConditions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                    <div class="trigger-detail-form-container anyconditions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="TriggerAnyConditionsController as vm_dc" ng-init="vm_dc.init(vm.trigger)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerAnyConditions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="TOOLS.ANYCONDITIONS">AnyConditions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAnyCondition($event)" aria-label="add anyCondition" translate translate-attr-label="TOOLS.ADD_ANYCONDITION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerAnyConditions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedTriggerAnyConditions.length}} {{vm_dc.selectedTriggerAnyConditions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerAnyConditions($event)" aria-label="delete selected" translate translate-attr-label="TRIGGERS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerAnyConditions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerAnyConditions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="field">{{ \'TOOLS.FIELD\' | translate }}</th>\n                                            <th md-column md-order-by="operator">{{ \'TOOLS.OPERATOR\' | translate }}</th>\n                                            <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'TOOLS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="anyCondition" md-select-id="id" ng-repeat="anyCondition in vm_dc.triggerAnyConditions.rows">\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" md-cell>{{anyCondition.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayfield[anyCondition.field].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayoperator[anyCondition.operator].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="anyCondition.field == \'queue\'" md-cell>{{ value = vm_dc.queues[anyCondition.value]; value.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="anyCondition.field == \'routeId\'" md-cell>{{ value = vm_dc.outboundRoutes[anyCondition.value]; value.exten }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" ng-if="anyCondition.field == \'lastevent\'" md-cell>{{ vm_dc.arrayvalue[anyCondition.value].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" md-cell>{{anyCondition.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditTriggerAnyCondition($event, anyCondition)" translate="TOOLS.EDIT_ANYCONDITION">\n                                                                Edit AnyCondition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(anyCondition, $event)" translate="TOOLS.DELETE_ANYCONDITION">\n                                                                Delete AnyCondition\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.triggerAnyConditions.rows.length">\n                                            <td md-cell colspan="9">\n                                                <span class="text-boxed-ligth" translate="TOOLS.NO_ANYCONDITION_AVAILABLE">No anycondition available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.triggerAnyConditions.count}}" md-on-paginate="vm_dc.getTriggerAnyConditions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                    <div class="trigger-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="TriggerActionsController as vm_dc" ng-init="vm_dc.init(vm.trigger)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerActions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="TOOLS.ACTIONS">Actions</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAction($event)" aria-label="add action" translate translate-attr-label="TOOLS.ADD_ACTION">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerActions.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedTriggerActions.length}} {{vm_dc.selectedTriggerActions.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerActions($event)" aria-label="delete selected" translate translate-attr-label="TRIGGERS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerActions" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerActions">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                            <th md-column md-order-by="action">{{ \'TOOLS.ACTION\' | translate }}</th>\n                                            <th md-column md-order-by="data1">{{ \'TOOLS.TYPE\' | translate }}</th>\n                                            <th md-column md-order-by="data2">{{ \'TOOLS.INFO\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'TOOLS.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="action" md-select-id="id" ng-repeat="action in vm_dc.triggerActions.rows">\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>{{action.id}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>{{ \'TOOLS.\' + vm_dc.arrayaction[action.action].option | uppercase | translate }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'jscripty\'" md-cell>{{ data1 = vm_dc.projects[action.data1]; data1.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\'" md-cell>{{ vm_dc.browserValues[action.data1].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>{{ data1 = vm_dc.lists[action.data1]; data1.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>{{ vm_dc.urlForwardValues[action.data1].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data2" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\'" md-cell>{{ vm_dc.integrationValues[action.data1].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zendesk\'" md-cell>{{ data2 = vm_dc.zendeskAccounts[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'salesforce\'" md-cell>{{ data2 = vm_dc.salesforceAccounts[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'sugarcrm\'" md-cell>{{ data2 = vm_dc.sugarcrmAccounts[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshdesk\'" md-cell>{{ data2 = vm_dc.freshdeskAccounts[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\'" md-cell>{{ vm_dc.motionbarValues[action.data1].option }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 == \'1\'" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 == \'2\'" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 == \'0\'" md-cell>{{ data2 = vm_dc.templates[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 == \'0\'" md-cell>{{ data2 = vm_dc.templates[action.data2]; data2.name }}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 == \'1\'" md-cell>{{action.data2}}</td>\n                                            <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>{{action.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.createOrEditTriggerAction($event, action)" translate="TOOLS.EDIT_ACTION">\n                                                                Edit Action\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(action, $event)" translate="TOOLS.DELETE_ACTION">\n                                                                Delete Action\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.triggerActions.rows.length">\n                                            <td md-cell colspan="27">\n                                                <span class="text-boxed-ligth" translate="TOOLS.NO_ACTION_AVAILABLE">No action available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.triggerActions.count}}" md-on-paginate="vm_dc.getTriggerActions" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/triggers/triggers.html",'<div id="triggers" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.TRIGGERS">Triggers</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTriggers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTriggers =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-triggers-count">\n                    <span>{{vm.selectedTriggers.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TRIGGERS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTriggers()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTriggers()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTriggers" filename="triggers.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTriggers($event)" aria-label="delete selected" translate translate-attr-label="TRIGGERS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TRIGGER TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTriggers" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTriggers">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="channel">{{ \'TOOLS.CHANNEL\' | translate }}</th>\n                                <th md-column md-order-by="status">{{ \'TOOLS.STATUS\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.triggers.rows.length">\n                                <td md-cell colspan="6">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="trigger" md-select-id="id" ng-repeat="trigger in vm.triggers.rows">\n                                <td md-cell ng-if="trigger.userpic"><img class="avatar" alt="{{trigger.name}}" ng-src="api/users/{{trigger.id}}/avatar" /></td>\n                                <td md-cell ng-if="!trigger.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{trigger.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="id ">{{trigger.id}}</td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="name ">{{trigger.name}}</td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="channel ">{{ \'TOOLS.\' + vm.arraychannel[trigger.channel].option | uppercase | translate }}</td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="status ">\n                                    <md-icon md-colors="{color: {{trigger.status ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{trigger.status ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="description ">{{trigger.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(trigger, $event)" translate="TOOLS.EDIT_TRIGGER">\n                                                    Edit Trigger\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(trigger, $event)" translate="TOOLS.DELETE_TRIGGER">\n                                                    Delete Trigger\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.triggers.count}}" md-on-paginate="vm.getTriggers" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TRIGGER TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TRIGGER BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-trigger-button" ng-click="vm.createOrEditTrigger($event)" aria-label="add trigger" translate translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TRIGGER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/trunks/create/dialog.html",'<md-dialog class="trunk-dialog" aria-label="New Trunk">\n    <form name="trunkForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="!vm.newTrunk">\n                <div ng-messages="trunkForm.name.$error" ng-show="trunkForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.HOST">host</label>\n                <input type="text" name="host" ng-model="vm.trunk.host" required>\n                <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n                <div ng-messages="trunkForm.host.$error" ng-show="trunkForm.host.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.SECRET">secret</label>\n                <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n                <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n                <div ng-messages="trunkForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newTrunk ">\n                <label translate="TOOLS.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="secret" name="confirmPassword" ng-model="confirmPassword">\n                <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n                <div ng-messages="trunkForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="TOOLS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n                <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser" required>\n                <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n                <div ng-messages="trunkForm.defaultuser.$error" ng-show="trunkForm.defaultuser.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.REGISTRY">registry</label>\n                <input type="text" name="registry" ng-model="vm.trunk.registry">\n                <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n                <div ng-messages="trunkForm.registry.$error" ng-show="trunkForm.registry.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.trunk.description">\n                <div ng-messages="trunkForm.description.$error" ng-show="trunkForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newTrunk" ng-click="vm.saveTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid || trunkForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newTrunk" ng-click="vm.addNewTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRUNK" translate-attr-aria-label="TOOLS.ADD_TRUNK">\n                    ADD TRUNK\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newTrunk" ng-click="vm.deleteTrunk($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/trunks/edit/view.html",'<div id="tools-trunk" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-trunks-button md-icon-button" aria-label="Go to trunks" ng-click="vm.gotoTrunks()" translate translate-attr-aria-label="TOOLS.GO_TO_TRUNKS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="trunk-image" hide-xs>\n                    <img ng-src="assets/images/business/trunks.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.trunk.id}} {{vm.trunk.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.trunk.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.gotogoto(vm.trunk, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n                <md-tooltip><span translate="TOOLS.GOTO_TRUNK"></span></md-tooltip>\n                <md-icon md-font-icon="icon-cast"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveTrunk()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (otherFieldsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trunk-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                    <div ng-message="pattern">\n                                        <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.HOST">host</label>\n                                <input type="text" name="host" ng-model="vm.trunk.host" required>\n                                <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n                                <div ng-messages="generalForm.host.$error" ng-show="generalForm.host.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.SECRET">secret</label>\n                                <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n                                <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newTrunk ">\n                                <label translate="TOOLS.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="secret" name="confirmPassword" ng-model="confirmPassword">\n                                <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="TOOLS.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n                                <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser" required>\n                                <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n                                <div ng-messages="generalForm.defaultuser.$error" ng-show="generalForm.defaultuser.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CONTEXT">context</label>\n                                <md-select ng-model="vm.trunk.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.CONTEXT"></span></div>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CONTEXT_REQUIRED">context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CALLERID">callerid</label>\n                                <input type="text" name="callerid" ng-model="vm.trunk.callerid" required>\n                                <div class="hint"><span translate="TOOLS.HELP.CALLERID"></span></div>\n                                <div ng-messages="generalForm.callerid.$error" ng-show="generalForm.callerid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CALLERID_REQUIRED">callerid field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.TYPE">Type</label>\n                                <md-select ng-model="vm.trunk.type" required>\n                                    <md-option ng-value="\'friend\'">Friend</md-option>\n                                    <md-option ng-value="\'user\'">User</md-option>\n                                    <md-option ng-value="\'peer\'">Peer</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.TYPE"></span></div>\n                                <div ng-messages="generalForm.type.$error" ng-show="generalForm.type.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DTMFMODE">dtmfmode</label>\n                                <md-select ng-model="vm.trunk.dtmfmode" required>\n                                    <md-option ng-value="\'rfc2833\'">rfc2833</md-option>\n                                    <md-option ng-value="\'info\'">info</md-option>\n                                    <md-option ng-value="\'shortinfo\'">shortinfo</md-option>\n                                    <md-option ng-value="\'inband\'">inband</md-option>\n                                    <md-option ng-value="\'auto\'">auto</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.DTMFMODE"></span></div>\n                                <div ng-messages="generalForm.dtmfmode.$error" ng-show="generalForm.dtmfmode.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DTMFMODE_REQUIRED">dtmfmode field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.NAT">nat</label>\n                                <md-select ng-model="vm.trunk.nat" required multiple>\n                                    <md-option ng-value="\'force_rport\'">force_rport</md-option>\n                                    <md-option ng-value="\'comedia\'">comedia</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'never\'">never</md-option>\n                                    <md-option ng-value="\'route\'">route</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.NAT"></span></div>\n                                <div ng-messages="generalForm.nat.$error" ng-show="generalForm.nat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.NAT_REQUIRED">nat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.QUALIFY">qualify</label>\n                                <md-select ng-model="vm.trunk.qualify" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.QUALIFY"></span></div>\n                                <div ng-messages="generalForm.qualify.$error" ng-show="generalForm.qualify.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.QUALIFY_REQUIRED">qualify field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.ALLOWCODECS">AllowCodecs</label>\n                                <md-select ng-model="vm.trunk.allow" required multiple>\n                                    <md-option ng-value="\'alaw\'">alaw</md-option>\n                                    <md-option ng-value="\'ulaw\'">ulaw</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                    <md-option ng-value="\'g723\'">g723</md-option>\n                                    <md-option ng-value="\'g726\'">g726</md-option>\n                                    <md-option ng-value="\'g722\'">g722</md-option>\n                                    <md-option ng-value="\'g729\'">g729</md-option>\n                                    <md-option ng-value="\'ilbc\'">ilbc</md-option>\n                                    <md-option ng-value="\'opus\'">opus</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.ALLOWCODECS"></span></div>\n                                <div ng-messages="generalForm.allow.$error" ng-show="generalForm.allow.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.INSECURE">insecure</label>\n                                <md-select ng-model="vm.trunk.insecure" required multiple>\n                                    <md-option ng-value="\'port\'">port</md-option>\n                                    <md-option ng-value="\'invite\'">invite</md-option>\n                                    <md-option ng-value="\'very\'">very</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.INSECURE"></span></div>\n                                <div ng-messages="generalForm.insecure.$error" ng-show="generalForm.insecure.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.INSECURE_REQUIRED">insecure field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CALL_LIMIT">call_limit</label>\n                                <input type="number" name="call_limit" ng-model="vm.trunk.call_limit">\n                                <div class="hint"><span translate="TOOLS.HELP.CALL_LIMIT"></span></div>\n                                <div ng-messages="generalForm.call_limit.$error" ng-show="generalForm.call_limit.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CALL_LIMIT_REQUIRED">call_limit field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.trunk.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trunk-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.REGISTRY">registry</label>\n                                <input type="text" name="registry" ng-model="vm.trunk.registry" autofocus>\n                                <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n                                <div ng-messages="advancedForm.registry.$error" ng-show="advancedForm.registry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.DIRECTMEDIA">directmedia</label>\n                                <md-select ng-model="vm.trunk.directmedia" required>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'nonat\'">nonat</md-option>\n                                    <md-option ng-value="\'update\'">update</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.DIRECTMEDIA"></span></div>\n                                <div ng-messages="advancedForm.directmedia.$error" ng-show="advancedForm.directmedia.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.DIRECTMEDIA_REQUIRED">directmedia field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.CALLCOUNTER">callcounter</label>\n                                <md-select ng-model="vm.trunk.callcounter" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.CALLCOUNTER"></span></div>\n                                <div ng-messages="advancedForm.callcounter.$error" ng-show="advancedForm.callcounter.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.CALLCOUNTER_REQUIRED">callcounter field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.FROMDOMAIN">fromdomain</label>\n                                <input type="text" name="fromdomain" ng-model="vm.trunk.fromdomain">\n                                <div class="hint"><span translate="TOOLS.HELP.FROMDOMAIN"></span></div>\n                                <div ng-messages="advancedForm.fromdomain.$error" ng-show="advancedForm.fromdomain.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.FROMDOMAIN_REQUIRED">fromdomain field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.FROMUSER">fromuser</label>\n                                <input type="text" name="fromuser" ng-model="vm.trunk.fromuser">\n                                <div class="hint"><span translate="TOOLS.HELP.FROMUSER"></span></div>\n                                <div ng-messages="advancedForm.fromuser.$error" ng-show="advancedForm.fromuser.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.FROMUSER_REQUIRED">fromuser field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.OUTBOUNDPROXY">outboundproxy</label>\n                                <input type="text" name="outboundproxy" ng-model="vm.trunk.outboundproxy">\n                                <div class="hint"><span translate="TOOLS.HELP.OUTBOUNDPROXY"></span></div>\n                                <div ng-messages="advancedForm.outboundproxy.$error" ng-show="advancedForm.outboundproxy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.OUTBOUNDPROXY_REQUIRED">outboundproxy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.ADD_PHONE_TO_URI">Add_phone_to_URI</label>\n                                <md-select ng-model="vm.trunk.usereqphone" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.ADD_PHONE_TO_URI"></span></div>\n                                <div ng-messages="advancedForm.usereqphone.$error" ng-show="advancedForm.usereqphone.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.ADD_PHONE_TO_URI_REQUIRED">Add_phone_to_URI field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.TRUST_REMOTE_PARTY_ID">Trust_Remote_Party_ID</label>\n                                <md-select ng-model="vm.trunk.trustrpid" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.TRUST_REMOTE_PARTY_ID"></span></div>\n                                <div ng-messages="advancedForm.trustrpid.$error" ng-show="advancedForm.trustrpid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.TRUST_REMOTE_PARTY_ID_REQUIRED">Trust_Remote_Party_ID field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.SEND_REMOTE_PARTY_ID_HEADER">Send_Remote_Party_ID_header</label>\n                                <md-select ng-model="vm.trunk.sendrpid" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.SEND_REMOTE_PARTY_ID_HEADER"></span></div>\n                                <div ng-messages="advancedForm.sendrpid.$error" ng-show="advancedForm.sendrpid.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.SEND_REMOTE_PARTY_ID_HEADER_REQUIRED">Send_Remote_Party_ID_header field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.ENCRYPTION">encryption</label>\n                                <md-select ng-model="vm.trunk.encryption" required>\n\n                                    <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.ENCRYPTION"></span></div>\n                                <div ng-messages="advancedForm.encryption.$error" ng-show="advancedForm.encryption.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.ENCRYPTION_REQUIRED">encryption field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.PORT">port</label>\n                                <input type="number" name="port" ng-model="vm.trunk.port">\n                                <div class="hint"><span translate="TOOLS.HELP.PORT"></span></div>\n                                <div ng-messages="advancedForm.port.$error" ng-show="advancedForm.port.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.PORT_REQUIRED">port field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.TRANSPORT">Transport</label>\n                                <md-select ng-model="vm.trunk.transport" required multiple>\n                                    <md-option ng-value="\'udp\'">udp</md-option>\n                                    <md-option ng-value="\'tcp\'">tcp</md-option>\n                                    <md-option ng-value="\'ws\'">ws</md-option>\n                                    <md-option ng-value="\'wss\'">wss</md-option>\n                                    <md-option ng-value="\'tls\'">tls</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="TOOLS.HELP.TRANSPORT"></span></div>\n                                <div ng-messages="advancedForm.transport.$error" ng-show="advancedForm.transport.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="TOOLS.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="TOOLS.OTHERFIELDS">OTHERFIELDS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="trunk-detail-form-container otherfields md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="TOOLS.OTHERFIELDS">OTHERFIELDS</div>\n                        </div>\n                        <form name="otherFieldsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="TOOLS.OTHERFIELDS">otherFields</label>\n                                <textarea ng-model="vm.trunk.otherFields" md-maxlength="150" max-rows="5" autofocus></textarea>\n                                <div class="hint"><span translate="TOOLS.HELP.OTHERFIELDS"></span></div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/trunks/trunks.html",'<div id="trunks" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.TRUNKS">Trunks</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedTrunks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedTrunks =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-trunks-count">\n                    <span>{{vm.selectedTrunks.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TRUNKS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllTrunks()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectTrunks()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedTrunks" filename="trunks.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedTrunks($event)" aria-label="delete selected" translate translate-attr-label="TRUNKS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- TRUNK TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedTrunks" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n                                <th md-column md-order-by="host">{{ \'TOOLS.HOST\' | translate }}</th>\n                                <th md-column md-order-by="registry">{{ \'TOOLS.REGISTRY\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.trunks.rows.length">\n                                <td md-cell colspan="7">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="trunk" md-select-id="id" ng-repeat="trunk in vm.trunks.rows">\n                                <td md-cell ng-if="trunk.userpic"><img class="avatar" alt="{{trunk.name}}" ng-src="api/users/{{trunk.id}}/avatar" /></td>\n                                <td md-cell ng-if="!trunk.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{trunk.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="id ">{{trunk.id}}</td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="name ">{{trunk.name}}</td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="active ">\n                                    <md-icon md-colors="{color: {{trunk.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{trunk.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n                                </td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="host ">{{trunk.host}}</td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="registry ">{{trunk.registry}}</td>\n                                <td ng-click="vm.createOrEditTrunk($event, trunk)" md-cell class="description ">{{trunk.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(trunk, $event)" translate="TOOLS.EDIT_TRUNK">\n                                                    Edit Trunk\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.gotorealtimegoto(trunk, $event)" translate="TOOLS.GOTOREALTIME_TRUNK">\n                                                    goToRealtime Trunk\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(trunk, $event)" translate="TOOLS.DELETE_TRUNK">\n                                                    Delete Trunk\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.trunks.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / TRUNK TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD TRUNK BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-trunk-button" ng-click="vm.createOrEditTrunk($event)" aria-label="add trunk" translate translate-attr-aria-label="TOOLS.ADD_TRUNK">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD TRUNK BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/variables/create/dialog.html",'<md-dialog class="variable-dialog" aria-label="New Variable">\n    <form name="variableForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.variable.name" required autofocus>\n                <div ng-messages="variableForm.name.$error" ng-show="variableForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLS.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.variable.description">\n                <div ng-messages="variableForm.description.$error" ng-show="variableForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVariable" ng-click="vm.saveVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid || variableForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVariable" ng-click="vm.addNewVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_VARIABLE" translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n                    ADD VARIABLE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVariable" ng-click="vm.deleteVariable($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/variables/variables.html",'<div id="variables" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="TOOLS.VARIABLES">Variables</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedVariables.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedVariables =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="TOOLS.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-variables-count">\n                    <span>{{vm.selectedVariables.length}}</span>\n                <span translate="TOOLS.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VARIABLES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllVariables()" translate="TOOLS.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectVariables()" translate="TOOLS.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedVariables" filename="variables.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedVariables($event)" aria-label="delete selected" translate translate-attr-label="VARIABLES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- VARIABLE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedVariables" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVariables">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.variables.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="variable" md-select-id="id" ng-repeat="variable in vm.variables.rows">\n                                <td md-cell ng-if="variable.userpic"><img class="avatar" alt="{{variable.name}}" ng-src="api/users/{{variable.id}}/avatar" /></td>\n                                <td md-cell ng-if="!variable.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{variable.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="id ">{{variable.id}}</td>\n                                <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="name ">{{variable.name}}</td>\n                                <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="description ">{{variable.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(variable, $event)" translate="TOOLS.EDIT_VARIABLE">\n                                                    Edit Variable\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(variable, $event)" translate="TOOLS.DELETE_VARIABLE">\n                                                    Delete Variable\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.variables.count}}" md-on-paginate="vm.getVariables" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / VARIABLE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD VARIABLE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-variable-button" ng-click="vm.createOrEditVariable($event)" aria-label="add variable" translate translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD VARIABLE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/chanSpies/chanSpies.html",'<div id="chanSpies" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.CHANSPIES">ChanSpies</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedChanSpies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedChanSpies =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-chanSpies-count">\n                    <span>{{vm.selectedChanSpies.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHANSPIES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllChanSpies()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectChanSpies()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedChanSpies" filename="chanSpies.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedChanSpies($event)" aria-label="delete selected" translate translate-attr-label="CHANSPIES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CHANSPY TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedChanSpies" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChanSpies">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="prefix">{{ \'VOICE.PREFIX\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.chanSpies.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="chanSpy" md-select-id="id" ng-repeat="chanSpy in vm.chanSpies.rows">\n                                <td md-cell ng-if="chanSpy.userpic"><img class="avatar" alt="{{chanSpy.name}}" ng-src="api/users/{{chanSpy.id}}/avatar" /></td>\n                                <td md-cell ng-if="!chanSpy.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chanSpy.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="id ">{{chanSpy.id}}</td>\n                                <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="name ">{{chanSpy.name}}</td>\n                                <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="prefix ">{{chanSpy.prefix}}</td>\n                                <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="description ">{{chanSpy.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(chanSpy, $event)" translate="VOICE.EDIT_CHANSPY">\n                                                    Edit chanSpy\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(chanSpy, $event)" translate="VOICE.DELETE_CHANSPY">\n                                                    Delete chanSpy\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.chanSpies.count}}" md-on-paginate="vm.getChanSpies" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CHANSPY TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CHANSPY BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-chanSpy-button" ng-click="vm.createOrEditchanSpy($event)" aria-label="add chanSpy" translate translate-attr-aria-label="VOICE.ADD_CHANSPY">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CHANSPY BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/chanSpies/create/dialog.html",'<md-dialog class="chanSpy-dialog" aria-label="New chanSpy">\n    <form name="chanSpyForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.chanSpy.name" required autofocus>\n                <div ng-messages="chanSpyForm.name.$error" ng-show="chanSpyForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PREFIX">Prefix</label>\n                <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" required>\n                <div ng-messages="chanSpyForm.prefix.$error" ng-show="chanSpyForm.prefix.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <md-select ng-model="vm.chanSpy.options" required multiple>\n                    <md-option ng-value="\'b\'">b: Only spy on channels involved in a bridged call.</md-option>\n                    <md-option ng-value="\'B\'">B: Instead of whispering on a single channel barge in on both channels involved in the call.</md-option>\n                    <md-option ng-value="\'E\'">E: Exit when the spied-on channel hangs up.</md-option>\n                    <md-option ng-value="\'o\'">o: Only listen to audio coming from this channel.</md-option>\n                    <md-option ng-value="\'q\'">q: Don\'t play a beep when beginning to spy on a channel, or speak the selected channel name.</md-option>\n                    <md-option ng-value="\'s\'">s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.</md-option>\n                    <md-option ng-value="\'S\'">S: Stop when no more channels are left to spy on.</md-option>\n                    <md-option ng-value="\'w\'">w: Enable whisper mode, so the spying channel can talk to the spied-on channel.</md-option>\n                    <md-option ng-value="\'W\'">W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.</md-option>\n                </md-select>\n                <div ng-messages="chanSpyForm.options.$error" ng-show="chanSpyForm.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.chanSpy.description">\n                <div ng-messages="chanSpyForm.description.$error" ng-show="chanSpyForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newchanSpy" ng-click="vm.savechanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid || chanSpyForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newchanSpy" ng-click="vm.addNewchanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CHANSPY" translate-attr-aria-label="VOICE.ADD_CHANSPY">\n                    ADD CHANSPY\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newchanSpy" ng-click="vm.deletechanSpy($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/chanSpies/edit/view.html",'<div id="voice-chanSpy" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-chanSpies-button md-icon-button" aria-label="Go to chanSpies" ng-click="vm.gotoChanSpies()" translate translate-attr-aria-label="VOICE.GO_TO_CHANSPIES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="chanSpy-image" hide-xs>\n                    <img ng-src="assets/images/business/chanSpies.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.chanSpy.id}} {{vm.chanSpy.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.chanSpy.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.savechanSpy()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="chanSpy-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.chanSpy.name" required autofocus>\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PREFIX">Prefix</label>\n                                <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" required>\n                                <div ng-messages="generalForm.prefix.$error" ng-show="generalForm.prefix.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.OPTIONS">Options</label>\n                                <md-select ng-model="vm.chanSpy.options" required multiple>\n                                    <md-option ng-value="\'b\'">b: Only spy on channels involved in a bridged call.</md-option>\n                                    <md-option ng-value="\'B\'">B: Instead of whispering on a single channel barge in on both channels involved in the call.</md-option>\n                                    <md-option ng-value="\'E\'">E: Exit when the spied-on channel hangs up.</md-option>\n                                    <md-option ng-value="\'o\'">o: Only listen to audio coming from this channel.</md-option>\n                                    <md-option ng-value="\'q\'">q: Don\'t play a beep when beginning to spy on a channel, or speak the selected channel name.</md-option>\n                                    <md-option ng-value="\'s\'">s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.</md-option>\n                                    <md-option ng-value="\'S\'">S: Stop when no more channels are left to spy on.</md-option>\n                                    <md-option ng-value="\'w\'">w: Enable whisper mode, so the spying channel can talk to the spied-on channel.</md-option>\n                                    <md-option ng-value="\'W\'">W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.options.$error" ng-show="generalForm.options.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chanSpy.auth" aria-label="Auth"><span translate="VOICE.AUTH">Auth</span></md-switch>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.chanSpy.auth">\n                                <label translate="VOICE.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.chanSpy.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newchanSpy  && vm.chanSpy.auth">\n                                <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.chanSpy.record" aria-label="Record"><span translate="VOICE.RECORD">Record</span></md-switch>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.chanSpy.record" class="md-block">\n                                <label translate="VOICE.RECORDINGFORMAT">recordingFormat</label>\n                                <md-select ng-model="vm.chanSpy.recordingFormat" required>\n                                    <md-option ng-value="\'wav\'">wav</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.recordingFormat.$error" ng-show="generalForm.recordingFormat.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.RECORDINGFORMAT_REQUIRED">recordingFormat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.chanSpy.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/contexts/contexts.html",'<div id="contexts" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.CONTEXTS">Contexts</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedContexts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedContexts =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-contexts-count">\n                    <span>{{vm.selectedContexts.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTEXTS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllContexts()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectContexts()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedContexts" filename="contexts.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedContexts($event)" aria-label="delete selected" translate translate-attr-label="CONTEXTS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- CONTEXT TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedContexts" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContexts">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.contexts.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="context" md-select-id="id" ng-repeat="context in vm.contexts.rows">\n                                <td md-cell ng-if="context.userpic"><img class="avatar" alt="{{context.name}}" ng-src="api/users/{{context.id}}/avatar" /></td>\n                                <td md-cell ng-if="!context.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{context.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditContext($event, context)" md-cell class="id ">{{context.id}}</td>\n                                <td ng-click="vm.createOrEditContext($event, context)" md-cell class="name ">{{context.name}}</td>\n                                <td ng-click="vm.createOrEditContext($event, context)" md-cell class="description ">{{context.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editdialog(context, $event)" translate="VOICE.EDIT_CONTEXT">\n                                                    Edit Context\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(context, $event)" translate="VOICE.DELETE_CONTEXT">\n                                                    Delete Context\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.contexts.count}}" md-on-paginate="vm.getContexts" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / CONTEXT TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD CONTEXT BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-context-button" ng-click="vm.createOrEditContext($event)" aria-label="add context" translate translate-attr-aria-label="VOICE.ADD_CONTEXT">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD CONTEXT BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/contexts/create/dialog.html",'<md-dialog class="context-dialog" aria-label="New Context">\n    <form name="contextForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.context.name" required autofocus>\n                <div ng-messages="contextForm.name.$error" ng-show="contextForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.context.description">\n                <div ng-messages="contextForm.description.$error" ng-show="contextForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newContext" ng-click="vm.saveContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid || contextForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newContext" ng-click="vm.addNewContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CONTEXT" translate-attr-aria-label="VOICE.ADD_CONTEXT">\n                    ADD CONTEXT\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newContext" ng-click="vm.deleteContext($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/create/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                <input type="text" name="exten" ng-model="vm.inboundroute.exten" required autofocus>\n                <div ng-messages="inboundrouteForm.exten.$error" ng-show="inboundrouteForm.exten.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.inboundroute.context" required>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteForm.context.$error" ng-show="inboundrouteForm.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.inboundroute.description">\n                <div ng-messages="inboundrouteForm.description.$error" ng-show="inboundrouteForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInboundRoute" ng-click="vm.saveInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid || inboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInboundRoute" ng-click="vm.addNewInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n                    ADD INBOUNDROUTE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newInboundRoute" ng-click="vm.deleteInboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/agi/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PROJECT">Project</label>\n                <md-select ng-model="vm.agi.project" required autofocus>\n                    <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects">{{ project.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.project.$error" ng-show="inboundrouteFormApp.project.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/custom/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n                <input type="text" name="app" ng-model="vm.custom.app" required autofocus>\n                <div ng-messages="inboundrouteFormApp.app.$error" ng-show="inboundrouteFormApp.app.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ARGUMENTS">Arguments</label>\n                <input type="text" name="appdata" ng-model="vm.custom.appdata">\n                <div ng-messages="inboundrouteFormApp.appdata.$error" ng-show="inboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/dial/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n                <input type="text" name="tech" ng-model="vm.dial.tech" required autofocus>\n                <div ng-messages="inboundrouteFormApp.tech.$error" ng-show="inboundrouteFormApp.tech.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.dial.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.dial.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.dial.url">\n                <div ng-messages="inboundrouteFormApp.url.$error" ng-show="inboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/externaldial/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TRUNK">Trunk</label>\n                <md-select ng-model="vm.externaldial.trunk" required autofocus>\n                    <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks">{{ trunk.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.trunk.$error" ng-show="inboundrouteFormApp.trunk.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONE">Phone</label>\n                <input type="text" name="phone" ng-model="vm.externaldial.phone" required>\n                <div ng-messages="inboundrouteFormApp.phone.$error" ng-show="inboundrouteFormApp.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.externaldial.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.externaldial.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.externaldial.url">\n                <div ng-messages="inboundrouteFormApp.url.$error" ng-show="inboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/goto/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.goto.context" required autofocus>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.context.$error" ng-show="inboundrouteFormApp.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.EXTENSION">Extension</label>\n                <input type="text" name="extension" ng-model="vm.goto.extension" required>\n                <div ng-messages="inboundrouteFormApp.extension.$error" ng-show="inboundrouteFormApp.extension.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PRIORITY">Priority</label>\n                <input type="text" name="priority" ng-model="vm.goto.priority" required>\n                <div ng-messages="inboundrouteFormApp.priority.$error" ng-show="inboundrouteFormApp.priority.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/hangup/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.HANGUP_CAUSE">Hangup_Cause</label>\n                <md-select ng-model="vm.hangup.appdata" required autofocus>\n\n                    <md-option ng-value="\'1\'"> {{ \'VOICE.HANGUPCAUSE_1\' | translate }}</md-option>\n\n                    <md-option ng-value="\'16\'"> {{ \'VOICE.HANGUPCAUSE_16\' | translate }}</md-option>\n\n                    <md-option ng-value="\'17\'"> {{ \'VOICE.HANGUPCAUSE_17\' | translate }}</md-option>\n\n                    <md-option ng-value="\'18\'"> {{ \'VOICE.HANGUPCAUSE_18\' | translate }}</md-option>\n\n                    <md-option ng-value="\'21\'"> {{ \'VOICE.HANGUPCAUSE_21\' | translate }}</md-option>\n\n                    <md-option ng-value="\'22\'"> {{ \'VOICE.HANGUPCAUSE_22\' | translate }}</md-option>\n\n                    <md-option ng-value="\'27\'"> {{ \'VOICE.HANGUPCAUSE_27\' | translate }}</md-option>\n\n                    <md-option ng-value="\'38\'"> {{ \'VOICE.HANGUPCAUSE_38\' | translate }}</md-option>\n\n                    <md-option ng-value="\'41\'"> {{ \'VOICE.HANGUPCAUSE_41\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.appdata.$error" ng-show="inboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.HANGUP_CAUSE_REQUIRED">Hangup_Cause field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/internaldial/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.internaldial.user" required autofocus>\n                    <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users">{{ user.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.user.$error" ng-show="inboundrouteFormApp.user.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.internaldial.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.internaldial.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.internaldial.url">\n                <div ng-messages="inboundrouteFormApp.url.$error" ng-show="inboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/interval/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.type">\n                    <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n                <label translate="TOOLS.INTERVALS">Intervals</label>\n                <md-select ng-model="vm.interval.IntervalId">\n                    <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows">{{ interval.name }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            \x3c!-- TIMERANGE START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n            \x3c!-- TIMERANGE END --\x3e\n\n            \x3c!-- DAYSOFWEEK START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.dayOfWeekFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.dayOfWeekTo">\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- DAYSOFWEEK END --\x3e\n\n            \x3c!-- MONTHDAY START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthDayFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthDayTo">\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTHDAY END --\x3e\n\n            \x3c!-- MONTH START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthTo">\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTH END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/playback/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n                <md-select ng-model="vm.playback.appdata" required autofocus>\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}\'" ng-repeat="appdata in vm.sounds">{{ appdata.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.appdata.$error" ng-show="inboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.playback.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.playback.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/queue/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.QUEUE">Queue</label>\n                <md-select ng-model="vm.queue.queue" required autofocus>\n                    <md-option ng-value="queue.name" ng-repeat="queue in vm.queues">{{ queue.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.queue.$error" ng-show="inboundrouteFormApp.queue.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.queue.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="URL" ng-model="vm.queue.URL">\n                <div ng-messages="inboundrouteFormApp.URL.$error" ng-show="inboundrouteFormApp.URL.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n                <md-select ng-model="vm.queue.sound">\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds">{{ sound.name }}</md-option>\n                    <md-option ng-value="\'\'">None</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.sound.$error" ng-show="inboundrouteFormApp.sound.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AGI">Agi</label>\n                <input type="text" name="agi" ng-model="vm.queue.agi">\n                <div ng-messages="inboundrouteFormApp.agi.$error" ng-show="inboundrouteFormApp.agi.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MACRO">Macro</label>\n                <input type="text" name="macro" ng-model="vm.queue.macro">\n                <div ng-messages="inboundrouteFormApp.macro.$error" ng-show="inboundrouteFormApp.macro.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.GOSUB">GoSub</label>\n                <input type="text" name="gosub" ng-model="vm.queue.gosub">\n                <div ng-messages="inboundrouteFormApp.gosub.$error" ng-show="inboundrouteFormApp.gosub.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RULE">Rule</label>\n                <input type="text" name="rule" ng-model="vm.queue.rule">\n                <div ng-messages="inboundrouteFormApp.rule.$error" ng-show="inboundrouteFormApp.rule.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.POSITION">Position</label>\n                <input type="number" name="position" ng-model="vm.queue.position" min="0">\n                <div ng-messages="inboundrouteFormApp.position.$error" ng-show="inboundrouteFormApp.position.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.queue.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/ringgroup/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.ringgroup.multipleUsers" required autofocus multiple>\n                    <md-option ng-value="\'SIP/{{multipleUsers.name}}\'" ng-repeat="multipleUsers in vm.users">{{ multipleUsers.name }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.multipleUsers.$error" ng-show="inboundrouteFormApp.multipleUsers.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.ringgroup.timeout" min="0">\n                <div ng-messages="inboundrouteFormApp.timeout.$error" ng-show="inboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.ringgroup.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.ringgroup.url">\n                <div ng-messages="inboundrouteFormApp.url.$error" ng-show="inboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/set/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VARIABLE">Variable</label>\n                <input type="text" name="name" ng-model="vm.set.name" required autofocus>\n                <div ng-messages="inboundrouteFormApp.name.$error" ng-show="inboundrouteFormApp.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VALUE">Value</label>\n                <input type="text" name="value" ng-model="vm.set.value" required>\n                <div ng-messages="inboundrouteFormApp.value.$error" ng-show="inboundrouteFormApp.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/apps/voicemail/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New InboundRoute">\n    <form name="inboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n                <md-select ng-model="vm.voicemail.voiceMail" required autofocus>\n                    <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails">{{ voiceMail.mailbox }}</md-option>\n                </md-select>\n                <div ng-messages="inboundrouteFormApp.voiceMail.$error" ng-show="inboundrouteFormApp.voiceMail.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.voicemail.options">\n                <div ng-messages="inboundrouteFormApp.options.$error" ng-show="inboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="inboundrouteFormApp.$invalid || inboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundroutes/edit/view.html",'<div id="voice-inboundroute" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-inboundroutes-button md-icon-button" aria-label="Go to inboundroutes" ng-click="vm.gotoInboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INBOUNDROUTES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="inboundroute-image" hide-xs>\n                    <img ng-src="assets/images/business/inboundroutes.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.inboundroute.id}} {{vm.inboundroute.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.inboundroute.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveInboundRoute()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="inboundroute-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                                <input type="text" name="exten" ng-model="vm.inboundroute.exten" required autofocus>\n                                <div ng-messages="generalForm.exten.$error" ng-show="generalForm.exten.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.CONTEXT">Context</label>\n                                <md-select ng-model="vm.inboundroute.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.inboundroute.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="inboundroute-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="InboundRouteActionsController as vm_ac" ng-init="vm_ac.init(vm.inboundroute)" class="content" md-background-bg layout="row" layout-align="start start">\n                            \x3c!-- SIDENAV --\x3e\n                            <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20">\n                                \x3c!-- SIDENAV CONTENT --\x3e\n                                <md-list class="no-padding">\n                                    <md-subheader class="md-no-sticky">\n                                        <span>\n          Applications List\n        </span>\n                                    </md-subheader>\n                                </md-list>\n                                <md-divider></md-divider>\n                                <md-list ng-sortable="vm_ac.list">\n                                    <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n                                        <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n                                        <p class="text-truncate" translate="VOICE.{{(a.alias || a.appType) | uppercase}}">{{a.alias || a.appType}}</p>\n                                    </md-list-item>\n                                </md-list>\n                                \x3c!-- / SIDENAV CONTENT --\x3e\n                            </div>\n                            \x3c!-- / SIDENAV --\x3e\n                            <div flex></div>\n                            \x3c!-- MAIN --\x3e\n                            <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="75">\n                                <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedInboundRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">Drag & Drop Routing</span>\n                                        <div flex></div>\n                                        <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    </div>\n                                </md-toolbar>\n                                <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedInboundRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">{{vm_ac.selectedInboundRouteApps.length}} {{vm_ac.selectedInboundRouteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                        <div flex></div>\n                                        <md-button class="md-icon-button" ng-click="vm_ac.deleteSelectedInboundRouteApps($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n                                            <md-icon md-font-icon="icon-delete"></md-icon>\n                                        </md-button>\n                                    </div>\n                                </md-toolbar>\n\n                                \x3c!-- QUEUES TABLE --\x3e\n                                <md-table-container>\n                                    <table md-table md-row-select multiple ng-model="vm_ac.selectedInboundRouteApps">\n                                        <thead md-head>\n                                            <tr md-row>\n                                                <th md-column width="10px"></th>\n                                                <th md-column>Type</th>\n                                                <th md-column>Appdata</th>\n                                                <th md-column>Interval</th>\n                                                <th md-column width="10px"></th>\n                                                <th md-column width="10px"></th>\n                                            </tr>\n                                        </thead>\n                                        <tbody md-body ng-sortable="vm_ac.applications">\n                                            <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.inboundrouteApps.rows | filter: vm_ac.query.filter">\n                                                <td md-cell>\n                                                    <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n                                                </td>\n                                                <td md-cell ng-click="vm_ac.editInboundRouteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n                                                <td md-cell ng-click="vm_ac.editInboundRouteApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n                                                <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n                                                <td md-cell>\n                                                    <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n                                                        <md-icon md-font-icon="icon-timer"></md-icon>\n                                                        <md-tooltip>\n                                                            {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n                                                        </md-tooltip>\n                                                    </md-button>\n                                                </td>\n                                                <td md-cell class="actions">\n                                                    <md-menu>\n                                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                        </md-button>\n\n                                                        <md-menu-content width="3">\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInboundRouteApp($event, $index)" translate="VOICE.EDIT_APP">\n                                                                    Edit App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n                                                                    Edit Interval\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n                                                                    Delete App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                        </md-menu-content>\n                                                    </md-menu>\n                                                </td>\n                                            </tr>\n                                            <tr md-row ng-hide="vm_ac.inboundrouteApps.rows.length">\n                                                <td md-cell colspan="6">\n                                                    <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n                                                </td>\n                                            </tr>\n                                        </tbody>\n                                        <tfoot md-foot>\n                                            <tr md-row>\n                                                <td md-cell colspan="7">\n                                                    <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n                                                </td>\n                                            </tr>\n                                        </tfoot>\n                                    </table>\n                                </md-table-container>\n                                \x3c!-- / QUEUES TABLE --\x3e\n\n                                \x3c!-- NO RESULTS --\x3e\n\n                                \x3c!-- / NO RESULTS --\x3e\n                            </div>\n                            \x3c!-- / MAIN --\x3e\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/inboundroutes/inboundroutes.html",'<div id="inboundroutes" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.INBOUNDROUTES">InboundRoutes</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedInboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedInboundRoutes =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-inboundroutes-count">\n                    <span>{{vm.selectedInboundRoutes.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INBOUNDROUTES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllInboundRoutes()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectInboundRoutes()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedInboundRoutes" filename="inboundroutes.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedInboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="INBOUNDROUTES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- INBOUNDROUTE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedInboundRoutes" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInboundRoutes">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.inboundroutes.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="inboundroute" md-select-id="id" ng-repeat="inboundroute in vm.inboundroutes.rows">\n                                <td md-cell ng-if="inboundroute.userpic"><img class="avatar" alt="{{inboundroute.name}}" ng-src="api/users/{{inboundroute.id}}/avatar" /></td>\n                                <td md-cell ng-if="!inboundroute.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{inboundroute.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditInboundRoute($event, inboundroute)" md-cell class="id ">{{inboundroute.id}}</td>\n                                <td ng-click="vm.createOrEditInboundRoute($event, inboundroute)" md-cell class="exten ">{{inboundroute.exten}}</td>\n                                <td ng-click="vm.createOrEditInboundRoute($event, inboundroute)" md-cell class="description ">{{inboundroute.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(inboundroute, $event)" translate="VOICE.EDIT_INBOUNDROUTE">\n                                                    Edit InboundRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(inboundroute, $event)" translate="VOICE.DELETE_INBOUNDROUTE">\n                                                    Delete InboundRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.inboundroutes.count}}" md-on-paginate="vm.getInboundRoutes" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / INBOUNDROUTE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD INBOUNDROUTE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-inboundroute-button" ng-click="vm.createOrEditInboundRoute($event)" aria-label="add inboundroute" translate translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD INBOUNDROUTE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/internalroutes/create/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                <input type="text" name="exten" ng-model="vm.internalroute.exten" required autofocus>\n                <div ng-messages="internalrouteForm.exten.$error" ng-show="internalrouteForm.exten.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.internalroute.context" required>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteForm.context.$error" ng-show="internalrouteForm.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.internalroute.description">\n                <div ng-messages="internalrouteForm.description.$error" ng-show="internalrouteForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInternalRoute" ng-click="vm.saveInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid || internalrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInternalRoute" ng-click="vm.addNewInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INTERNALROUTE" translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n                    ADD INTERNALROUTE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newInternalRoute" ng-click="vm.deleteInternalRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/agi/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PROJECT">Project</label>\n                <md-select ng-model="vm.agi.project" required autofocus>\n                    <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects">{{ project.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.project.$error" ng-show="internalrouteFormApp.project.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/custom/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n                <input type="text" name="app" ng-model="vm.custom.app" required autofocus>\n                <div ng-messages="internalrouteFormApp.app.$error" ng-show="internalrouteFormApp.app.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ARGUMENTS">Arguments</label>\n                <input type="text" name="appdata" ng-model="vm.custom.appdata">\n                <div ng-messages="internalrouteFormApp.appdata.$error" ng-show="internalrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/dial/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n                <input type="text" name="tech" ng-model="vm.dial.tech" required autofocus>\n                <div ng-messages="internalrouteFormApp.tech.$error" ng-show="internalrouteFormApp.tech.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.dial.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.dial.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.dial.url">\n                <div ng-messages="internalrouteFormApp.url.$error" ng-show="internalrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/externaldial/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TRUNK">Trunk</label>\n                <md-select ng-model="vm.externaldial.trunk" required autofocus>\n                    <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks">{{ trunk.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.trunk.$error" ng-show="internalrouteFormApp.trunk.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONE">Phone</label>\n                <input type="text" name="phone" ng-model="vm.externaldial.phone">\n                <div ng-messages="internalrouteFormApp.phone.$error" ng-show="internalrouteFormApp.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.externaldial.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.externaldial.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.externaldial.url">\n                <div ng-messages="internalrouteFormApp.url.$error" ng-show="internalrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/goto/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.goto.context" required autofocus>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.context.$error" ng-show="internalrouteFormApp.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.EXTENSION">Extension</label>\n                <input type="text" name="extension" ng-model="vm.goto.extension" required>\n                <div ng-messages="internalrouteFormApp.extension.$error" ng-show="internalrouteFormApp.extension.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PRIORITY">Priority</label>\n                <input type="text" name="priority" ng-model="vm.goto.priority" required>\n                <div ng-messages="internalrouteFormApp.priority.$error" ng-show="internalrouteFormApp.priority.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/hangup/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.HANGUP_CAUSE">Hangup_Cause</label>\n                <md-select ng-model="vm.hangup.appdata" required autofocus>\n\n                    <md-option ng-value="\'1\'"> {{ \'VOICE.HANGUPCAUSE_1\' | translate }}</md-option>\n\n                    <md-option ng-value="\'16\'"> {{ \'VOICE.HANGUPCAUSE_16\' | translate }}</md-option>\n\n                    <md-option ng-value="\'17\'"> {{ \'VOICE.HANGUPCAUSE_17\' | translate }}</md-option>\n\n                    <md-option ng-value="\'18\'"> {{ \'VOICE.HANGUPCAUSE_18\' | translate }}</md-option>\n\n                    <md-option ng-value="\'21\'"> {{ \'VOICE.HANGUPCAUSE_21\' | translate }}</md-option>\n\n                    <md-option ng-value="\'22\'"> {{ \'VOICE.HANGUPCAUSE_22\' | translate }}</md-option>\n\n                    <md-option ng-value="\'27\'"> {{ \'VOICE.HANGUPCAUSE_27\' | translate }}</md-option>\n\n                    <md-option ng-value="\'38\'"> {{ \'VOICE.HANGUPCAUSE_38\' | translate }}</md-option>\n\n                    <md-option ng-value="\'41\'"> {{ \'VOICE.HANGUPCAUSE_41\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.appdata.$error" ng-show="internalrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.HANGUP_CAUSE_REQUIRED">Hangup_Cause field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/internaldial/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.internaldial.user" required autofocus>\n                    <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users">{{ user.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.user.$error" ng-show="internalrouteFormApp.user.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.internaldial.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.internaldial.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.internaldial.url">\n                <div ng-messages="internalrouteFormApp.url.$error" ng-show="internalrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/interval/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.type">\n                    <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n                <label translate="TOOLS.INTERVALS">Intervals</label>\n                <md-select ng-model="vm.interval.IntervalId">\n                    <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows">{{ interval.name }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            \x3c!-- TIMERANGE START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n            \x3c!-- TIMERANGE END --\x3e\n\n            \x3c!-- DAYSOFWEEK START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.dayOfWeekFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.dayOfWeekTo">\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- DAYSOFWEEK END --\x3e\n\n            \x3c!-- MONTHDAY START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthDayFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthDayTo">\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTHDAY END --\x3e\n\n            \x3c!-- MONTH START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthTo">\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTH END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/playback/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n                <md-select ng-model="vm.playback.appdata" required autofocus>\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}\'" ng-repeat="appdata in vm.sounds">{{ appdata.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.appdata.$error" ng-show="internalrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.playback.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.playback.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/queue/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.QUEUE">Queue</label>\n                <md-select ng-model="vm.queue.queue" required autofocus>\n                    <md-option ng-value="queue.name" ng-repeat="queue in vm.queues">{{ queue.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.queue.$error" ng-show="internalrouteFormApp.queue.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.queue.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="URL" ng-model="vm.queue.URL">\n                <div ng-messages="internalrouteFormApp.URL.$error" ng-show="internalrouteFormApp.URL.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n                <md-select ng-model="vm.queue.sound">\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds">{{ sound.name }}</md-option>\n                    <md-option ng-value="\'\'">None</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.sound.$error" ng-show="internalrouteFormApp.sound.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AGI">Agi</label>\n                <input type="text" name="agi" ng-model="vm.queue.agi">\n                <div ng-messages="internalrouteFormApp.agi.$error" ng-show="internalrouteFormApp.agi.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MACRO">Macro</label>\n                <input type="text" name="macro" ng-model="vm.queue.macro">\n                <div ng-messages="internalrouteFormApp.macro.$error" ng-show="internalrouteFormApp.macro.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.GOSUB">GoSub</label>\n                <input type="text" name="gosub" ng-model="vm.queue.gosub">\n                <div ng-messages="internalrouteFormApp.gosub.$error" ng-show="internalrouteFormApp.gosub.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RULE">Rule</label>\n                <input type="text" name="rule" ng-model="vm.queue.rule">\n                <div ng-messages="internalrouteFormApp.rule.$error" ng-show="internalrouteFormApp.rule.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.POSITION">Position</label>\n                <input type="number" name="position" ng-model="vm.queue.position" min="0">\n                <div ng-messages="internalrouteFormApp.position.$error" ng-show="internalrouteFormApp.position.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.queue.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/ringgroup/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.ringgroup.multipleUsers" required autofocus multiple>\n                    <md-option ng-value="\'SIP/{{multipleUsers.name}}\'" ng-repeat="multipleUsers in vm.users">{{ multipleUsers.name }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.multipleUsers.$error" ng-show="internalrouteFormApp.multipleUsers.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.ringgroup.timeout" min="0">\n                <div ng-messages="internalrouteFormApp.timeout.$error" ng-show="internalrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.ringgroup.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.ringgroup.url">\n                <div ng-messages="internalrouteFormApp.url.$error" ng-show="internalrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/set/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VARIABLE">Variable</label>\n                <input type="text" name="name" ng-model="vm.set.name" required autofocus>\n                <div ng-messages="internalrouteFormApp.name.$error" ng-show="internalrouteFormApp.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VALUE">Value</label>\n                <input type="text" name="value" ng-model="vm.set.value" required>\n                <div ng-messages="internalrouteFormApp.value.$error" ng-show="internalrouteFormApp.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/apps/voicemail/dialog.html",'<md-dialog class="internalroute-dialog" aria-label="New InternalRoute">\n    <form name="internalrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n                <md-select ng-model="vm.voicemail.voiceMail" required autofocus>\n                    <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails">{{ voiceMail.mailbox }}</md-option>\n                </md-select>\n                <div ng-messages="internalrouteFormApp.voiceMail.$error" ng-show="internalrouteFormApp.voiceMail.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.voicemail.options">\n                <div ng-messages="internalrouteFormApp.options.$error" ng-show="internalrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveInternalRouteApp()" class="send-button md-accent md-raised" ng-disabled="internalrouteFormApp.$invalid || internalrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalroutes/edit/view.html",'<div id="voice-internalroute" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-internalroutes-button md-icon-button" aria-label="Go to internalroutes" ng-click="vm.gotoInternalRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INTERNALROUTES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="internalroute-image" hide-xs>\n                    <img ng-src="assets/images/business/internalroutes.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.internalroute.id}} {{vm.internalroute.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.internalroute.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveInternalRoute()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="internalroute-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                                <input type="text" name="exten" ng-model="vm.internalroute.exten" required autofocus>\n                                <div ng-messages="generalForm.exten.$error" ng-show="generalForm.exten.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.CONTEXT">Context</label>\n                                <md-select ng-model="vm.internalroute.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.internalroute.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="internalroute-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="InternalRouteActionsController as vm_ac" ng-init="vm_ac.init(vm.internalroute)" class="content" md-background-bg layout="row" layout-align="start start">\n                            \x3c!-- SIDENAV --\x3e\n                            <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20">\n                                \x3c!-- SIDENAV CONTENT --\x3e\n                                <md-list class="no-padding">\n                                    <md-subheader class="md-no-sticky">\n                                        <span>\n          Applications List\n        </span>\n                                    </md-subheader>\n                                </md-list>\n                                <md-divider></md-divider>\n                                <md-list ng-sortable="vm_ac.list">\n                                    <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n                                        <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n                                        <p class="text-truncate" translate="VOICE.{{(a.alias || a.appType) | uppercase}}">{{a.alias || a.appType}}</p>\n                                    </md-list-item>\n                                </md-list>\n                                \x3c!-- / SIDENAV CONTENT --\x3e\n                            </div>\n                            \x3c!-- / SIDENAV --\x3e\n                            <div flex></div>\n                            \x3c!-- MAIN --\x3e\n                            <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="75">\n                                <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedInternalRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">Drag & Drop Routing</span>\n                                        <div flex></div>\n                                        <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    </div>\n                                </md-toolbar>\n                                <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedInternalRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">{{vm_ac.selectedInternalRouteApps.length}} {{vm_ac.selectedInternalRouteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                        <div flex></div>\n                                        <md-button class="md-icon-button" ng-click="vm_ac.deleteSelectedInternalRouteApps($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n                                            <md-icon md-font-icon="icon-delete"></md-icon>\n                                        </md-button>\n                                    </div>\n                                </md-toolbar>\n\n                                \x3c!-- QUEUES TABLE --\x3e\n                                <md-table-container>\n                                    <table md-table md-row-select multiple ng-model="vm_ac.selectedInternalRouteApps">\n                                        <thead md-head>\n                                            <tr md-row>\n                                                <th md-column width="10px"></th>\n                                                <th md-column>Type</th>\n                                                <th md-column>Appdata</th>\n                                                <th md-column>Interval</th>\n                                                <th md-column width="10px"></th>\n                                                <th md-column width="10px"></th>\n                                            </tr>\n                                        </thead>\n                                        <tbody md-body ng-sortable="vm_ac.applications">\n                                            <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.internalrouteApps.rows | filter: vm_ac.query.filter">\n                                                <td md-cell>\n                                                    <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n                                                </td>\n                                                <td md-cell ng-click="vm_ac.editInternalRouteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n                                                <td md-cell ng-click="vm_ac.editInternalRouteApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n                                                <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n                                                <td md-cell>\n                                                    <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n                                                        <md-icon md-font-icon="icon-timer"></md-icon>\n                                                        <md-tooltip>\n                                                            {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n                                                        </md-tooltip>\n                                                    </md-button>\n                                                </td>\n                                                <td md-cell class="actions">\n                                                    <md-menu>\n                                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                        </md-button>\n\n                                                        <md-menu-content width="3">\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInternalRouteApp($event, $index)" translate="VOICE.EDIT_APP">\n                                                                    Edit App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n                                                                    Edit Interval\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n                                                                    Delete App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                        </md-menu-content>\n                                                    </md-menu>\n                                                </td>\n                                            </tr>\n                                            <tr md-row ng-hide="vm_ac.internalrouteApps.rows.length">\n                                                <td md-cell colspan="6">\n                                                    <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n                                                </td>\n                                            </tr>\n                                        </tbody>\n                                        <tfoot md-foot>\n                                            <tr md-row>\n                                                <td md-cell colspan="7">\n                                                    <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n                                                </td>\n                                            </tr>\n                                        </tfoot>\n                                    </table>\n                                </md-table-container>\n                                \x3c!-- / QUEUES TABLE --\x3e\n\n                                \x3c!-- NO RESULTS --\x3e\n\n                                \x3c!-- / NO RESULTS --\x3e\n                            </div>\n                            \x3c!-- / MAIN --\x3e\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/internalroutes/internalroutes.html",'<div id="internalroutes" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.INTERNALROUTES">InternalRoutes</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedInternalRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedInternalRoutes =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-internalroutes-count">\n                    <span>{{vm.selectedInternalRoutes.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTERNALROUTES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllInternalRoutes()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectInternalRoutes()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedInternalRoutes" filename="internalroutes.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedInternalRoutes($event)" aria-label="delete selected" translate translate-attr-label="INTERNALROUTES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- INTERNALROUTE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedInternalRoutes" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInternalRoutes">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.internalroutes.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="internalroute" md-select-id="id" ng-repeat="internalroute in vm.internalroutes.rows">\n                                <td md-cell ng-if="internalroute.userpic"><img class="avatar" alt="{{internalroute.name}}" ng-src="api/users/{{internalroute.id}}/avatar" /></td>\n                                <td md-cell ng-if="!internalroute.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{internalroute.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditInternalRoute($event, internalroute)" md-cell class="id ">{{internalroute.id}}</td>\n                                <td ng-click="vm.createOrEditInternalRoute($event, internalroute)" md-cell class="exten ">{{internalroute.exten}}</td>\n                                <td ng-click="vm.createOrEditInternalRoute($event, internalroute)" md-cell class="description ">{{internalroute.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(internalroute, $event)" translate="VOICE.EDIT_INTERNALROUTE">\n                                                    Edit InternalRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(internalroute, $event)" translate="VOICE.DELETE_INTERNALROUTE">\n                                                    Delete InternalRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.internalroutes.count}}" md-on-paginate="vm.getInternalRoutes" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / INTERNALROUTE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD INTERNALROUTE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-internalroute-button" ng-click="vm.createOrEditInternalRoute($event)" aria-label="add internalroute" translate translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD INTERNALROUTE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/musiconholds/create/dialog.html",'<md-dialog class="musiconhold-dialog" aria-label="New MusicOnHold">\n    <form name="musiconholdForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.musiconhold.name" required autofocus ng-disabled="!vm.newMusicOnHold">\n                <div ng-messages="musiconholdForm.name.$error" ng-show="musiconholdForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MODE">Mode</label>\n                <md-select ng-model="vm.musiconhold.mode" required ng-disabled="!vm.newMusicOnHold">\n\n                    <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }}</md-option>\n\n                    <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="musiconholdForm.mode.$error" ng-show="musiconholdForm.mode.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n                <label translate="VOICE.APPLICATION">Application</label>\n                <input type="text" name="application" ng-model="vm.musiconhold.application" required>\n                <div ng-messages="musiconholdForm.application.$error" ng-show="musiconholdForm.application.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n                <label translate="VOICE.SORT">Sort</label>\n                <md-select ng-model="vm.musiconhold.sort">\n\n                    <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }}</md-option>\n\n                    <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="musiconholdForm.sort.$error" ng-show="musiconholdForm.sort.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMusicOnHold" ng-click="vm.saveMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid || musiconholdForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMusicOnHold" ng-click="vm.addNewMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MUSICONHOLD" translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n                    ADD MUSICONHOLD\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMusicOnHold" ng-click="vm.deleteMusicOnHold($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",'<md-dialog class="mohSound-dialog" aria-label="New MohSound">\n    <form name="mohSoundForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.FILE">File</label>\n                <md-select ng-model="vm.mohSound.id" autofocus>\n                    <md-option ng-value="id.id" ng-repeat="id in vm.sounds">{{ id.name }}</md-option>\n                </md-select>\n                <div ng-messages="mohSoundForm.id.$error" ng-show="mohSoundForm.id.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.FILE_REQUIRED">File field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newMohSound" ng-click="vm.saveMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid || mohSoundForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newMohSound" ng-click="vm.addNewMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MOHSOUND" translate-attr-aria-label="VOICE.ADD_MOHSOUND">\n                    ADD MOHSOUND\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newMohSound" ng-click="vm.deleteMohSound($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/view.html",'<div id="voice-musiconhold" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-musiconholds-button md-icon-button" aria-label="Go to musiconholds" ng-click="vm.gotoMusicOnHolds()" translate translate-attr-aria-label="VOICE.GO_TO_MUSICONHOLDS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="musiconhold-image" hide-xs>\n                    <img ng-src="assets/images/business/musiconholds.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.musiconhold.id}} {{vm.musiconhold.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.musiconhold.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (mohSoundsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="musiconhold-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.NAME">Name</label>\n                                <input type="text" name="name" ng-model="vm.musiconhold.name" required autofocus ng-disabled="true">\n                                <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MODE">Mode</label>\n                                <md-select ng-model="vm.musiconhold.mode" required ng-disabled="true">\n\n                                    <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.mode.$error" ng-show="generalForm.mode.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n                                <label translate="VOICE.APPLICATION">Application</label>\n                                <input type="text" name="application" ng-model="vm.musiconhold.application" required>\n                                <div ng-messages="generalForm.application.$error" ng-show="generalForm.application.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n                                <label translate="VOICE.SORT">Sort</label>\n                                <md-select ng-model="vm.musiconhold.sort">\n\n                                    <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.sort.$error" ng-show="generalForm.sort.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.AUDIOFILES">AUDIOFILES</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="musiconhold-detail-form-container mohsounds md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="MusicOnHoldMohSoundsController as vm_dc" ng-init="vm_dc.init(vm.musiconhold)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMusicOnHoldMohSounds.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="VOICE.MOHSOUNDS">MohSounds</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.createOrEditMusicOnHoldMohSound($event)" aria-label="add mohSound" translate translate-attr-label="VOICE.ADD_MOHSOUND">\n                                        <md-icon md-font-icon="icon-plus"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMusicOnHoldMohSounds.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedMusicOnHoldMohSounds.length}} {{vm_dc.selectedMusicOnHoldMohSounds.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedMusicOnHoldMohSounds($event)" aria-label="delete selected" translate translate-attr-label="MUSICONHOLDS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedMusicOnHoldMohSounds" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMusicOnHoldMohSounds">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                            <th md-column md-order-by="audio">{{ \'VOICE.AUDIO\' | translate }}</th>\n                                            <th md-column md-order-by="createdAt">{{ \'VOICE.CREATED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="mohSound" md-select-id="id" ng-repeat="mohSound in vm_dc.musiconholdMohSounds.rows">\n                                            <td md-cell>{{mohSound.id}}</td>\n                                            <td md-cell><audio controls><source ng-src="{{\'api/sounds/\' + mohSound.id + \'/download\'}}" type="audio/wav" preload="none"></source>Your browser does not support the audio element.</audio></td>\n                                            <td md-cell>{{mohSound.createdAt | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-href="api/mohs/{{mohSound.id}}/download" target="_blank" translate="VOICE.DOWNLOAD_MOHSOUND">\n                                                                Download MohSound\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(mohSound, $event)" translate="VOICE.DELETE_MOHSOUND">\n                                                                Delete MohSound\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.musiconholdMohSounds.rows.length">\n                                            <td md-cell colspan="6">\n                                                <span class="text-boxed-ligth" translate="VOICE.NO_MOHSOUND_AVAILABLE">No mohsound available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.musiconholdMohSounds.count}}" md-on-paginate="vm_dc.getMusicOnHoldMohSounds" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/musiconholds/musiconholds.html",'<div id="musiconholds" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.MUSICONHOLDS">MusicOnHolds</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedMusicOnHolds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedMusicOnHolds =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-musiconholds-count">\n                    <span>{{vm.selectedMusicOnHolds.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MUSICONHOLDS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllMusicOnHolds()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectMusicOnHolds()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedMusicOnHolds" filename="musiconholds.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedMusicOnHolds($event)" aria-label="delete selected" translate translate-attr-label="MUSICONHOLDS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- MUSICONHOLD TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedMusicOnHolds" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMusicOnHolds">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="mode">{{ \'VOICE.MODE\' | translate }}</th>\n                                <th md-column md-order-by="sort">{{ \'VOICE.SORT\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.musiconholds.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="musiconhold" md-select-id="id" ng-repeat="musiconhold in vm.musiconholds.rows">\n                                <td md-cell ng-if="musiconhold.userpic"><img class="avatar" alt="{{musiconhold.name}}" ng-src="api/users/{{musiconhold.id}}/avatar" /></td>\n                                <td md-cell ng-if="!musiconhold.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{musiconhold.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="id ">{{musiconhold.id}}</td>\n                                <td ng-click="vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="name ">{{musiconhold.name}}</td>\n                                <td ng-click="vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="mode ">{{ \'VOICE.\' + vm.arraymode[musiconhold.mode].option | uppercase | translate }}</td>\n                                <td ng-click="vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="sort ">{{ \'VOICE.\' + vm.arraysort[musiconhold.sort].option | uppercase | translate }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(musiconhold, $event)" translate="VOICE.EDIT_MUSICONHOLD">\n                                                    Edit MusicOnHold\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(musiconhold, $event)" translate="VOICE.DELETE_MUSICONHOLD">\n                                                    Delete MusicOnHold\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.musiconholds.count}}" md-on-paginate="vm.getMusicOnHolds" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / MUSICONHOLD TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD MUSICONHOLD BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-musiconhold-button" ng-click="vm.createOrEditMusicOnHold($event)" aria-label="add musiconhold" translate translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD MUSICONHOLD BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundroutes/create/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                <input type="text" name="exten" ng-model="vm.outboundroute.exten" required autofocus>\n                <div ng-messages="outboundrouteForm.exten.$error" ng-show="outboundrouteForm.exten.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.outboundroute.context" required>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteForm.context.$error" ng-show="outboundrouteForm.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.outboundroute.description">\n                <div ng-messages="outboundrouteForm.description.$error" ng-show="outboundrouteForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newOutboundRoute" ng-click="vm.saveOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid || outboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newOutboundRoute" ng-click="vm.addNewOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_OUTBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n                    ADD OUTBOUNDROUTE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newOutboundRoute" ng-click="vm.deleteOutboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/agi/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PROJECT">Project</label>\n                <md-select ng-model="vm.agi.project" required autofocus>\n                    <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects">{{ project.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.project.$error" ng-show="outboundrouteFormApp.project.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/custom/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n                <input type="text" name="app" ng-model="vm.custom.app" required autofocus>\n                <div ng-messages="outboundrouteFormApp.app.$error" ng-show="outboundrouteFormApp.app.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ARGUMENTS">Arguments</label>\n                <input type="text" name="appdata" ng-model="vm.custom.appdata">\n                <div ng-messages="outboundrouteFormApp.appdata.$error" ng-show="outboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/dial/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n                <input type="text" name="tech" ng-model="vm.dial.tech" required autofocus>\n                <div ng-messages="outboundrouteFormApp.tech.$error" ng-show="outboundrouteFormApp.tech.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.dial.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.dial.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.dial.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/externaldial/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TRUNK">Trunk</label>\n                <md-select ng-model="vm.externaldial.trunk" required autofocus>\n                    <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks">{{ trunk.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.trunk.$error" ng-show="outboundrouteFormApp.trunk.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PHONE">Phone</label>\n                <input type="text" name="phone" ng-model="vm.externaldial.phone">\n                <div ng-messages="outboundrouteFormApp.phone.$error" ng-show="outboundrouteFormApp.phone.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.externaldial.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.externaldial.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.externaldial.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/goto/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CONTEXT">Context</label>\n                <md-select ng-model="vm.goto.context" required autofocus>\n                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.context.$error" ng-show="outboundrouteFormApp.context.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.EXTENSION">Extension</label>\n                <input type="text" name="extension" ng-model="vm.goto.extension" required>\n                <div ng-messages="outboundrouteFormApp.extension.$error" ng-show="outboundrouteFormApp.extension.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PRIORITY">Priority</label>\n                <input type="text" name="priority" ng-model="vm.goto.priority" required>\n                <div ng-messages="outboundrouteFormApp.priority.$error" ng-show="outboundrouteFormApp.priority.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/hangup/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.HANGUP_CAUSE">Hangup_Cause</label>\n                <md-select ng-model="vm.hangup.appdata" required autofocus>\n\n                    <md-option ng-value="\'1\'"> {{ \'VOICE.HANGUPCAUSE_1\' | translate }}</md-option>\n\n                    <md-option ng-value="\'16\'"> {{ \'VOICE.HANGUPCAUSE_16\' | translate }}</md-option>\n\n                    <md-option ng-value="\'17\'"> {{ \'VOICE.HANGUPCAUSE_17\' | translate }}</md-option>\n\n                    <md-option ng-value="\'18\'"> {{ \'VOICE.HANGUPCAUSE_18\' | translate }}</md-option>\n\n                    <md-option ng-value="\'21\'"> {{ \'VOICE.HANGUPCAUSE_21\' | translate }}</md-option>\n\n                    <md-option ng-value="\'22\'"> {{ \'VOICE.HANGUPCAUSE_22\' | translate }}</md-option>\n\n                    <md-option ng-value="\'27\'"> {{ \'VOICE.HANGUPCAUSE_27\' | translate }}</md-option>\n\n                    <md-option ng-value="\'38\'"> {{ \'VOICE.HANGUPCAUSE_38\' | translate }}</md-option>\n\n                    <md-option ng-value="\'41\'"> {{ \'VOICE.HANGUPCAUSE_41\' | translate }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.appdata.$error" ng-show="outboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.HANGUP_CAUSE_REQUIRED">Hangup_Cause field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/internaldial/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.internaldial.user" required autofocus>\n                    <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users">{{ user.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.user.$error" ng-show="outboundrouteFormApp.user.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.internaldial.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.internaldial.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.internaldial.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/interval/dialog.html",'<md-dialog class="inboundroute-dialog" aria-label="New Interval">\n    <form name="intervalForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n\n\n            <md-input-container class="md-block">\n                <label translate="TOOLS.TYPE">Type</label>\n                <md-select ng-model="vm.type">\n                    <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n                <label translate="TOOLS.INTERVALS">Intervals</label>\n                <md-select ng-model="vm.interval.IntervalId">\n                    <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows">{{ interval.name }}</md-option>\n                </md-select>\n            </md-input-container>\n\n            \x3c!-- TIMERANGE START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n                <div class="md-block" flex>\n                    <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true">\n                        <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$touched" role="alert">\n                            <div ng-message="format">\n                                <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n                            </div>\n                        </div>\n                    </mdp-time-picker>\n                </div>\n            </div>\n            \x3c!-- TIMERANGE END --\x3e\n\n            \x3c!-- DAYSOFWEEK START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.dayOfWeekFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.dayOfWeekTo">\n                        <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- DAYSOFWEEK END --\x3e\n\n            \x3c!-- MONTHDAY START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthDayFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthDayTo">\n                        <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTHDAY END --\x3e\n\n            \x3c!-- MONTH START --\x3e\n            <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n            <div layout=row ng-if="vm.type === \'custom\'">\n                <md-input-container flex layout="column" class="md-block">\n                    <label translate="TOOLS.FROM">From</label>\n                    <md-select ng-model="vm.monthFrom">\n                        <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n\n                </md-input-container>\n\n                <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n                    <label translate="TOOLS.TO">To</label>\n                    <md-select ng-model="vm.monthTo">\n                        <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n                    </md-select>\n                </md-input-container>\n            </div>\n            \x3c!-- MONTH END --\x3e\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n                    ADD INTERVAL\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/outbounddial/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TRUNK">Trunk</label>\n                <md-select ng-model="vm.outbounddial.trunk" required autofocus>\n                    <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks">{{ trunk.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.trunk.$error" ng-show="outboundrouteFormApp.trunk.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CALLER_ID">Caller_ID</label>\n                <input type="text" name="callerID" ng-model="vm.outbounddial.callerID">\n                <div ng-messages="outboundrouteFormApp.callerID.$error" ng-show="outboundrouteFormApp.callerID.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CALLER_ID_REQUIRED">Caller_ID field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PREFIX">Prefix</label>\n                <input type="text" name="prefix" ng-model="vm.outbounddial.prefix">\n                <div ng-messages="outboundrouteFormApp.prefix.$error" ng-show="outboundrouteFormApp.prefix.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.CUTDIGITS">CutDigits</label>\n                <input type="number" name="cutdigits" ng-model="vm.outbounddial.cutdigits" min="0">\n                <div ng-messages="outboundrouteFormApp.cutdigits.$error" ng-show="outboundrouteFormApp.cutdigits.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CUTDIGITS_REQUIRED">CutDigits field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RECORDING">Recording</label>\n                <md-select ng-model="vm.outbounddial.recordingFormat" required>\n                    <md-option ng-value="\'none\'">none</md-option>\n                    <md-option ng-value="\'wav\'">wav</md-option>\n                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                </md-select>\n                <div class="hint"><span translate="VOICE.HELP.RECORDING"></span></div>\n                <div ng-messages="outboundrouteFormApp.recordingFormat.$error" ng-show="outboundrouteFormApp.recordingFormat.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RECORDING_REQUIRED">Recording field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TAGS">Tags</label>\n                <md-select ng-model="vm.outbounddial.tag">\n                    <md-option ng-value="tag.name" ng-repeat="tag in vm.tags">{{ tag.name }}</md-option>\n                    <md-option ng-value="\'--\'">None</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.tag.$error" ng-show="outboundrouteFormApp.tag.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TAGS_REQUIRED">Tags field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.outbounddial.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.outbounddial.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.outbounddial.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/playback/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n                <md-select ng-model="vm.playback.appdata" required autofocus>\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{appdata.save_name}}\'" ng-repeat="appdata in vm.sounds">{{ appdata.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.appdata.$error" ng-show="outboundrouteFormApp.appdata.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.playback.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.playback.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/queue/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.QUEUE">Queue</label>\n                <md-select ng-model="vm.queue.queue" required autofocus>\n                    <md-option ng-value="queue.name" ng-repeat="queue in vm.queues">{{ queue.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.queue.$error" ng-show="outboundrouteFormApp.queue.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.queue.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="URL" ng-model="vm.queue.URL">\n                <div ng-messages="outboundrouteFormApp.URL.$error" ng-show="outboundrouteFormApp.URL.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n                <md-select ng-model="vm.queue.sound">\n                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds">{{ sound.name }}</md-option>\n                    <md-option ng-value="\'\'">None</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.sound.$error" ng-show="outboundrouteFormApp.sound.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.AGI">Agi</label>\n                <input type="text" name="agi" ng-model="vm.queue.agi">\n                <div ng-messages="outboundrouteFormApp.agi.$error" ng-show="outboundrouteFormApp.agi.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MACRO">Macro</label>\n                <input type="text" name="macro" ng-model="vm.queue.macro">\n                <div ng-messages="outboundrouteFormApp.macro.$error" ng-show="outboundrouteFormApp.macro.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.GOSUB">GoSub</label>\n                <input type="text" name="gosub" ng-model="vm.queue.gosub">\n                <div ng-messages="outboundrouteFormApp.gosub.$error" ng-show="outboundrouteFormApp.gosub.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RULE">Rule</label>\n                <input type="text" name="rule" ng-model="vm.queue.rule">\n                <div ng-messages="outboundrouteFormApp.rule.$error" ng-show="outboundrouteFormApp.rule.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.POSITION">Position</label>\n                <input type="number" name="position" ng-model="vm.queue.position" min="0">\n                <div ng-messages="outboundrouteFormApp.position.$error" ng-show="outboundrouteFormApp.position.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <md-switch ng-model="vm.queue.answer" aria-label="Answer"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/ringgroup/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.USER">User</label>\n                <md-select ng-model="vm.ringgroup.multipleUsers" required autofocus multiple>\n                    <md-option ng-value="\'SIP/{{multipleUsers.name}}\'" ng-repeat="multipleUsers in vm.users">{{ multipleUsers.name }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.multipleUsers.$error" ng-show="outboundrouteFormApp.multipleUsers.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.TIMEOUT">Timeout</label>\n                <input type="number" name="timeout" ng-model="vm.ringgroup.timeout" min="0">\n                <div ng-messages="outboundrouteFormApp.timeout.$error" ng-show="outboundrouteFormApp.timeout.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.ringgroup.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.URL">Url</label>\n                <input type="text" name="url" ng-model="vm.ringgroup.url">\n                <div ng-messages="outboundrouteFormApp.url.$error" ng-show="outboundrouteFormApp.url.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/set/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VARIABLE">Variable</label>\n                <input type="text" name="name" ng-model="vm.set.name" required autofocus>\n                <div ng-messages="outboundrouteFormApp.name.$error" ng-show="outboundrouteFormApp.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.VALUE">Value</label>\n                <input type="text" name="value" ng-model="vm.set.value" required>\n                <div ng-messages="outboundrouteFormApp.value.$error" ng-show="outboundrouteFormApp.value.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/apps/voicemail/dialog.html",'<md-dialog class="outboundroute-dialog" aria-label="New OutboundRoute">\n    <form name="outboundrouteFormApp" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n                <md-select ng-model="vm.voicemail.voiceMail" required autofocus>\n                    <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails">{{ voiceMail.mailbox }}</md-option>\n                </md-select>\n                <div ng-messages="outboundrouteFormApp.voiceMail.$error" ng-show="outboundrouteFormApp.voiceMail.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.OPTIONS">Options</label>\n                <input type="text" name="options" ng-model="vm.voicemail.options">\n                <div ng-messages="outboundrouteFormApp.options.$error" ng-show="outboundrouteFormApp.options.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.saveOutboundRouteApp()" class="send-button md-accent md-raised" ng-disabled="outboundrouteFormApp.$invalid || outboundrouteFormApp.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundroutes/edit/view.html",'<div id="voice-outboundroute" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-outboundroutes-button md-icon-button" aria-label="Go to outboundroutes" ng-click="vm.gotoOutboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_OUTBOUNDROUTES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="outboundroute-image" hide-xs>\n                    <img ng-src="assets/images/business/outboundroutes.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.outboundroute.id}} {{vm.outboundroute.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.outboundroute.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="outboundroute-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n                                <input type="text" name="exten" ng-model="vm.outboundroute.exten" required autofocus>\n                                <div ng-messages="generalForm.exten.$error" ng-show="generalForm.exten.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.CONTEXT">Context</label>\n                                <md-select ng-model="vm.outboundroute.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.outboundroute.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ACTIONS">ACTIONS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="outboundroute-detail-form-container actions md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="OutboundRouteActionsController as vm_ac" ng-init="vm_ac.init(vm.outboundroute)" class="content" md-background-bg layout="row" layout-align="start start">\n                            \x3c!-- SIDENAV --\x3e\n                            <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20">\n                                \x3c!-- SIDENAV CONTENT --\x3e\n                                <md-list class="no-padding">\n                                    <md-subheader class="md-no-sticky">\n                                        <span>\n          Applications List\n        </span>\n                                    </md-subheader>\n                                </md-list>\n                                <md-divider></md-divider>\n                                <md-list ng-sortable="vm_ac.list">\n                                    <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n                                        <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n                                        <p class="text-truncate" translate="VOICE.{{(a.alias || a.appType) | uppercase}}">{{a.alias || a.appType}}</p>\n                                    </md-list-item>\n                                </md-list>\n                                \x3c!-- / SIDENAV CONTENT --\x3e\n                            </div>\n                            \x3c!-- / SIDENAV --\x3e\n                            <div flex></div>\n                            \x3c!-- MAIN --\x3e\n                            <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="75">\n                                <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedOutboundRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">Drag & Drop Routing</span>\n                                        <div flex></div>\n                                        <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n                                    </div>\n                                </md-toolbar>\n                                <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedOutboundRouteApps.length">\n                                    <div class="md-toolbar-tools">\n                                        <span class="md-subhead">{{vm_ac.selectedOutboundRouteApps.length}} {{vm_ac.selectedOutboundRouteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                        <div flex></div>\n                                        <md-button class="md-icon-button" ng-click="vm_ac.deleteSelectedOutboundRouteApps($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n                                            <md-icon md-font-icon="icon-delete"></md-icon>\n                                        </md-button>\n                                    </div>\n                                </md-toolbar>\n\n                                \x3c!-- QUEUES TABLE --\x3e\n                                <md-table-container>\n                                    <table md-table md-row-select multiple ng-model="vm_ac.selectedOutboundRouteApps">\n                                        <thead md-head>\n                                            <tr md-row>\n                                                <th md-column width="10px"></th>\n                                                <th md-column>Type</th>\n                                                <th md-column>Appdata</th>\n                                                <th md-column>Interval</th>\n                                                <th md-column width="10px"></th>\n                                                <th md-column width="10px"></th>\n                                            </tr>\n                                        </thead>\n                                        <tbody md-body ng-sortable="vm_ac.applications">\n                                            <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.outboundrouteApps.rows | filter: vm_ac.query.filter">\n                                                <td md-cell>\n                                                    <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n                                                </td>\n                                                <td md-cell ng-click="vm_ac.editOutboundRouteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n                                                <td md-cell ng-click="vm_ac.editOutboundRouteApp($event, $index)"><span class="text-truncate" style="width:200px">{{app.appdata}}</span></td>\n                                                <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n                                                <td md-cell>\n                                                    <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n                                                        <md-icon md-font-icon="icon-timer"></md-icon>\n                                                        <md-tooltip>\n                                                            {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n                                                        </md-tooltip>\n                                                    </md-button>\n                                                </td>\n                                                <td md-cell class="actions">\n                                                    <md-menu>\n                                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                        </md-button>\n\n                                                        <md-menu-content width="3">\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editOutboundRouteApp($event, $index)" translate="VOICE.EDIT_APP">\n                                                                    Edit App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n                                                                    Edit Interval\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                            <md-menu-item>\n                                                                <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n                                                                    Delete App\n                                                                </md-button>\n                                                            </md-menu-item>\n                                                        </md-menu-content>\n                                                    </md-menu>\n                                                </td>\n                                            </tr>\n                                            <tr md-row ng-hide="vm_ac.outboundrouteApps.rows.length">\n                                                <td md-cell colspan="6">\n                                                    <span class="text-boxed-ligth" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n                                                </td>\n                                            </tr>\n                                        </tbody>\n                                        <tfoot md-foot>\n                                            <tr md-row>\n                                                <td md-cell colspan="7">\n                                                    <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n                                                </td>\n                                            </tr>\n                                        </tfoot>\n                                    </table>\n                                </md-table-container>\n                                \x3c!-- / QUEUES TABLE --\x3e\n\n                                \x3c!-- NO RESULTS --\x3e\n\n                                \x3c!-- / NO RESULTS --\x3e\n                            </div>\n                            \x3c!-- / MAIN --\x3e\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/outboundroutes/outboundroutes.html",'<div id="outboundroutes" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.OUTBOUNDROUTES">OutboundRoutes</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedOutboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedOutboundRoutes =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-outboundroutes-count">\n                    <span>{{vm.selectedOutboundRoutes.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OUTBOUNDROUTES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllOutboundRoutes()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectOutboundRoutes()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedOutboundRoutes" filename="outboundroutes.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedOutboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="OUTBOUNDROUTES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- OUTBOUNDROUTE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedOutboundRoutes" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOutboundRoutes">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.outboundroutes.rows.length">\n                                <td md-cell colspan="4">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="outboundroute" md-select-id="id" ng-repeat="outboundroute in vm.outboundroutes.rows">\n                                <td md-cell ng-if="outboundroute.userpic"><img class="avatar" alt="{{outboundroute.name}}" ng-src="api/users/{{outboundroute.id}}/avatar" /></td>\n                                <td md-cell ng-if="!outboundroute.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{outboundroute.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditOutboundRoute($event, outboundroute)" md-cell class="id ">{{outboundroute.id}}</td>\n                                <td ng-click="vm.createOrEditOutboundRoute($event, outboundroute)" md-cell class="exten ">{{outboundroute.exten}}</td>\n                                <td ng-click="vm.createOrEditOutboundRoute($event, outboundroute)" md-cell class="description ">{{outboundroute.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(outboundroute, $event)" translate="VOICE.EDIT_OUTBOUNDROUTE">\n                                                    Edit OutboundRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(outboundroute, $event)" translate="VOICE.DELETE_OUTBOUNDROUTE">\n                                                    Delete OutboundRoute\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.outboundroutes.count}}" md-on-paginate="vm.getOutboundRoutes" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / OUTBOUNDROUTE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD OUTBOUNDROUTE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-outboundroute-button" ng-click="vm.createOrEditOutboundRoute($event)" aria-label="add outboundroute" translate translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD OUTBOUNDROUTE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/realtime/agents/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.AGENTS">Agents</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n        <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n            <i class="icon-information-outline grey-600-fg">\n        <md-tooltip>{{\'VOICE.INFO\' | translate}}</md-tooltip>\n      </i>\n        </md-button>\n    </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n            <tr md-row>\n                <th md-column width="20px"></th>\n                <th md-column md-order-by="fullname">{{ \'VOICE.FULLNAME\' | translate }}</th>\n                <th md-column md-order-by="internal">{{ \'VOICE.INTERNAL\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.agents">\n                <td md-cell colspan="6">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="agent" md-select-id="id" ng-repeat="(id, agent) in vm.agents">\n                <td md-cell>\n                    <div class="avatar-wrapper">\n                        <img md-menu-align-target class="avatar" ng-src="{{agent.userpic && \'api/users/\'+agent.id+\'/avatar\' || \'assets/images/avatars/profile.jpg\'}}">\n                        <md-icon md-font-icon class="icon status s16 icon-checkbox-marked-circle" ng-class="agent.online ? \'green-300-fg\' : \'red-300-fg\'"></md-icon>\n                    </div>\n                </td>\n                <td md-cell>\n                    <div layout="column">\n                        <span class="text-truncate"><span ng-if="agent.online" class="text-boxed"><timer start-time="agent.lastLoginAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>{{agent.fullname}}</span>\n                        <span class="text-truncate" ng-if="agent.voicePause">\n              <span><span class="text-boxed"><timer start-time="agent.lastPauseAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span></span><span class="blink red-fg">{{agent.pauseType || \'dafault\' | uppercase}}</span>\n                        </span>\n                    </div>\n                </td>\n                <td md-cell>\n                    {{agent.internal}}\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.stateClass[agent.state]">\n            <md-tooltip>{{\'VOICE.\' + agent.state | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span class="text-boxed" ng-if="agent.stateTime && vm.isAvailableState(agent.state)">\n            <timer ng-if="agent.stateTime" start-time="agent.stateTime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n          </span>\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.statusClass[agent.status]">\n            <md-tooltip>{{\'VOICE.\' + agent.status | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span ng-if="agent.status === \'registered\'" class="text-boxed">{{agent.address}}</span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="4">\n                            <md-menu-item>\n                                <md-button ng-click="vm.logout(agent, $event)" translate="VOICE.LOGOUT">\n                                    Logout\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.queueAdd(agent, $event)" translate="VOICE.AGENTADD_QUEUE">\n                                    Add Agent In Queue\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-menu>\n                                    <md-button ng-click="$mdMenu.open()" translate="VOICE.PAUSE">Pause</md-button>\n                                    <md-menu-content>\n                                        <md-menu-item>\n                                            <md-button ng-click="vm.pause(agent)"><em translate="VOICE.DEFAULT_PAUSE">Default Pause</em></md-button>\n                                        </md-menu-item>\n                                        <md-menu-item ng-if="vm.pauses.rows.length" ng-repeat="pause in vm.pauses.rows">\n                                            <md-button ng-click="vm.pause(agent, pause.name)">{{pause.name}}</md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.unPause(agent)" translate="VOICE.UNPAUSE">\n                                    Unpause\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/outbound_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.OUTBOUND_CALLS">Ooutbound Calls</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- OUTBOUNDS TABLE --\x3e\n<md-table-container>\n    <table md-table>\n        <thead md-head>\n            <tr md-row>\n                <th md-column width="30px"></th>\n                <th md-column>{{ \'VOICE.SOURCE\' | translate }}</th>\n                <th md-column>{{ \'VOICE.DESTINATION\' | translate }}</th>\n                <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.calls.count">\n                <td md-cell colspan="4">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n                <td md-cell>\n                    <i ng-class="vm.channelStatus[call.channelstatedesc.toLowerCase()]"></i>\n                </td>\n                <td md-cell>\n                    {{call.calleridname}}, {{call.calleridnum}} <span class="text-boxed" ng-if="call.answered"><timer ng-if="call.answertime" start-time="call.answertime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer></span>\n                </td>\n                <td md-cell>{{call.exten}}</td>\n                <td md-cell>\n                    <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() !== \'hangup\'">\n                      <timer ng-if="call.starttime" start-time="call.starttime" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n                    </span>\n                    <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() === \'hangup\'" translate="VOICE.CLOSING">Closing</span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="vm.query.limitOptions" md-page="vm.query.page" md-total="{{vm.calls.count}}"></md-table-pagination>\n\x3c!-- / OUTBOUNDS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n        \x3c!-- <div flex></div>\n    <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar> --\x3e\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n    <table md-table>\n        <thead md-head>\n            <tr md-row>\n                <th md-column width="30px"></th>\n                <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n                <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n                <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n                <th md-column>{{ \'VOICE.AGENT\' | translate }}</th>\n                <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n                <td md-cell colspan="6">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n                <td md-cell>\n                    <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n                    <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n                </td>\n                <td md-cell>{{channel.exten}}</td>\n                <td md-cell>{{channel.queue}}</td>\n                <td md-cell>{{channel.calleridnum}}</td>\n                <td md-cell>\n                    <span ng-if="channel.queuecallerleaveAt">\n              {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n              <span class="text-boxed">\n                <timer start-time="channel.queuecallerleaveAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n              </span>\n                    </span>\n                    <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n              {{ \'VOICE.WAITING_FOR_AGENT\' | translate }}\n              <timer start-time="channel.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n                </td>\n                <td md-cell>\n                    <span class="text-boxed">\n              <timer start-time="channel.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="2">\n                            <md-menu-item>\n                                <md-button ng-click="vm.hangup(channel.uniqueid)" translate="VOICE.HANGUP">\n                                    Hangup\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="VOICE.REDIRECT_TO_NUMBER">\n                                    Number\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-menu>\n                                    <md-button ng-click="$mdMenu.open()" translate="VOICE.REDIRECT_TO_AGENT">Redirect to Agent</md-button>\n                                    <md-menu-content>\n                                        <md-menu-item ng-repeat="agent in vm.agents.rows">\n                                            <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name)">{{agent.name}}</md-button>\n                                        </md-menu-item>\n                                    </md-menu-content>\n                                </md-menu>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n            \x3c!-- <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n        <td md-cell>\n          <i ng-class="vm.channelStatusClass[call.status.toLowerCase()]"></i>\n        </td>\n        <td md-cell>{{call.exten}}</td>\n        <td md-cell>{{call.queue}}</td>\n        <td md-cell><span ng-if="call.calleridname">{{call.calleridname}}, </span>{{call.calleridnum}}</td>\n        <td md-cell>\n          <span ng-if="call.queuecallerleaveAt">\n            {{call.connectedlinename}}, {{call.connectedlinenum}}\n            <span class="text-boxed">\n              <timer start-time="call.queuecallerleaveAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n          </span>\n          <span ng-if="!call.queuecallerleaveAt" class="text-boxed" translate="VOICE.WAITING_FOR_AGENT">\n            Waiting for agent...\n            <span class="text-boxed">\n              <timer start-time="call.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            </span>\n          </span>\n        </td>\n        <td md-cell>\n          <span class="text-boxed">\n            <timer ng-if="call.queuecallerjoinAt" start-time="call.queuecallerjoinAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n            <span ng-if="call.queuecallercomplete || call.queuecallerabandon || call.queuecallerexit" translate="VOICE.CLOSING">Closing</span>\n          </span>\n        </td>\n        <td md-cell class="actions">\n          <md-menu>\n            <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n              <md-icon md-font-icon="icon-dots-vertical" ></md-icon>\n            </md-button>\n\n            <md-menu-content width="2">\n              <md-menu-item>\n                <md-button ng-click="vm.hangup(call.uniqueid)" translate="VOICE.HANGUP">\n                  Hangup\n                </md-button>\n              </md-menu-item>\n              <md-menu-item>\n                <md-button ng-click="vm.redirectToNumber($event, call.uniqueid)" translate="VOICE.REDIRECT_TO_NUMBER">\n                  Number\n                </md-button>\n              </md-menu-item>\n              <md-menu-item>\n                <md-menu>\n                  <md-button ng-click="$mdMenu.open()" translate="VOICE.REDIRECT_TO_AGENT">Redirect to Agent</md-button>\n                  <md-menu-content>\n                    <md-menu-item ng-repeat="agent in vm.agents.rows">\n                      <md-button ng-click="vm.redirectToAgent(call.uniqueid, agent.name)">{{agent.name}}</md-button>\n                    </md-menu-item>\n                  </md-menu-content>\n                </md-menu>\n              </md-menu-item>\n            </md-menu-content>\n          </md-menu>\n        </td>\n      </tr> --\x3e\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n            <tr md-row>\n                <th md-column>{{\' VOICE.NAME\' | translate}}</th>\n                <th md-column>{{\' VOICE.TOTAL_OFFERED\' | translate}}</th>\n                <th md-column>{{\' VOICE.ANSWERED\' | translate}}</th>\n                <th md-column>{{\' VOICE.ABANDONED\' | translate}}</th>\n                <th md-column>{{\' VOICE.UNMANAGED\' | translate}}</th>\n                <th md-column>{{\' VOICE.AVG_HOLD_TIME\' | translate}}</th>\n                <th md-column>{{\' VOICE.AVG_DURATION\' | translate}}</th>\n                <th md-column>{{\' VOICE.AVG_BILLABLE\' | translate}}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.queues">\n                <td md-cell colspan="8">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(id, queue) in vm.queues">\n                <td md-cell>\n                    <span>{{queue.name}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.total || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.total) ? (queue.answered || 0) * 100/queue.total : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{(queue.total - queue.answered) || 0}} ({{(queue.total) ? ((queue.total - queue.answered) || 0) * 100/queue.total : 0 | number:1}}%)</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.unmanaged || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumHoldTime / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumDuration / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queues/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n    </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n            <tr md-row>\n                <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n                <th md-column>{{ \'VOICE.LOGGED_IN\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PAUSED\' | translate }}</th>\n                <th md-column>{{ \'VOICE.READY\' | translate }}</th>\n                <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n                <th md-column>{{ \'VOICE.TALKING\' | translate }}</th>\n                <th md-column width="10px"></th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.queues">\n                <td md-cell colspan="7">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="queue" md-select-id="id" ng-repeat="(id, queue) in vm.queues">\n                <td md-cell>{{queue.name}}</td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.loggedInDb || 0}} ({{queue.loggedIn || 0}})</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.paused || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.available || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-20 grey-fg">{{queue.waiting || 0}}</span>\n                </td>\n                <td md-cell>\n                    <span class="font-size-16 grey-fg">{{queue.talking || 0}}</span>\n                </td>\n                <td md-cell class="actions">\n                    <md-menu>\n                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                        </md-button>\n\n                        <md-menu-content width="3">\n                            <md-menu-item>\n                                <md-button ng-click="vm.createOrEditVoiceQueue($event, queue)" translate="VOICE.EDIT_QUEUE">\n                                    Edit Queue\n                                </md-button>\n                            </md-menu-item>\n                            <md-menu-item>\n                                <md-button ng-click="vm.agentAdd($event, queue)" translate="VOICE.AGENTSADD_QUEUE">\n                                    Add Agents to queue\n                                </md-button>\n                            </md-menu-item>\n                        </md-menu-content>\n                    </md-menu>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.AGENTS">Agents</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.TELEPHONES">Telephones</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.TRUNKS">Trunks</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.QUEUES">Queues</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.QUEUE_PARAMS">Queue Parameters</span>\n                </md-tab-label>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.OUTBOUND_CALLS">Outbound Calls</span>\n                </md-tab-label>\n            </md-tab>\n        </md-tabs>\n\n        <md-card ui-view></md-card>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/realtime/telephones/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.TELEPHONES">Telephones</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n        <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n            <i class="icon-information-outline grey-600-fg">\n              <md-tooltip>{{\'VOICE.INFO\' | translate}}</md-tooltip>\n            </i>\n        </md-button>\n    </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n            <tr md-row>\n                <th md-column md-order-by="fullname">{{ \'VOICE.ACCOUNTNAME\' | translate }}</th>\n                <th md-column md-order-by="internal">{{ \'VOICE.INTERNAL\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n                <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.telephones">\n                <td md-cell colspan="4">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row md-select="telephone" md-select-id="id" ng-repeat="(id, telephone) in vm.telephones">\n                <td md-cell>{{telephone.fullname}}</td>\n                <td md-cell>{{telephone.internal}}</td>\n                <td md-cell>\n                    <i ng-class="vm.stateClass[telephone.state]">\n                    <md-tooltip>{{\'VOICE.\' + telephone.state | uppercase | translate}}</md-tooltip>\n                  </i>\n                </td>\n                <td md-cell>\n                    <i ng-class="vm.statusClass[telephone.status]">\n                    <md-tooltip>{{\'VOICE.\' + telephone.status | uppercase | translate}}</md-tooltip>\n                  </i>\n                    <span ng-if="telephone.status === \'registered\'" class="text-boxed">{{telephone.address}}</span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/trunks/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n    <div class="md-toolbar-tools">\n        <span class="md-subhead" translate="VOICE.TRUNKS">Telephones</span>\n        <div flex></div>\n        <ms-search-bar on-search="vm.query.filter = query;" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n        <md-button class="md-icon-button" ng-click="vm.showInfo($event)">\n            <i class="icon-information-outline grey-600-fg">\n        <md-tooltip>{{\'VOICE.INFO\' | translate}}</md-tooltip>\n      </i>\n        </md-button>\n    </div>\n</md-toolbar>\n\n\x3c!-- TRUNKS TABLE --\x3e\n<md-table-container>\n    <table md-table multiple md-progress="vm.promise">\n        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n            <tr md-row>\n                <th md-column md-order-by="fullname">{{ \'VOICE.NAME\' | translate }}</th>\n                <th md-column>{{ \'VOICE.TRUNK_STATUS\' | translate }}</th>\n                <th md-column>{{ \'VOICE.REGISTRY\' | translate }}</th>\n            </tr>\n        </thead>\n        <tbody md-body>\n            <tr md-row ng-hide="vm.trunks">\n                <td md-cell colspan="3">\n                    <div layout="row" layout-align="center center">\n                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                    </div>\n                </td>\n            </tr>\n            <tr md-row ng-repeat="(id, trunk) in vm.trunks">\n                <td md-cell>{{trunk.name}}</td>\n                <td md-cell>\n                    <i ng-class="vm.statusClass[trunk.status.toLowerCase()]">\n            <md-tooltip>{{\'VOICE.\' + trunk.status | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span ng-if="trunk.status === \'registered\'" class="text-boxed">{{trunk.address}}</span>\n                </td>\n                <td md-cell>\n                    <i ng-if="trunk.registry" ng-class="(trunk.stateRegistry.toLowerCase() === \'registered\') ? \'green-300-fg icon-checkbox-marked-circle\' : \'red-300-fg icon-close-circle\'">\n            <md-tooltip>{{\'VOICE.\' + trunk.stateRegistry | uppercase | translate}}</md-tooltip>\n          </i>\n                    <span ng-if="trunk.registry && trunk.host && trunk.port" class="text-boxed">{{trunk.host}}:{{trunk.port}}</span>\n                    <span ng-if="!trunk.registry" translate="VOICE.NO_REGISTRY">\n            No Registry\n          </span>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/voicemails/create/dialog.html",'<md-dialog class="voicemail-dialog" aria-label="New Voicemail">\n    <form name="voicemailForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.FULLNAME">FullName</label>\n                <input type="text" name="fullname" ng-model="vm.voicemail.fullname" required autofocus>\n                <div ng-messages="voicemailForm.fullname.$error" ng-show="voicemailForm.fullname.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.EMAIL">Email</label>\n                <input type="email" name="email" ng-model="vm.voicemail.email" required>\n                <div ng-messages="voicemailForm.email.$error" ng-show="voicemailForm.email.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                    </div>\n                    <div ng-message="email">\n                        <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.PASSWORD">Password</label>\n                <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n                <div ng-messages="voicemailForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n                <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="voicemailForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.MAILBOX">MailBox</label>\n                <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" required ng-disabled="!vm.newVoicemail">\n                <div ng-messages="voicemailForm.mailbox.$error" ng-show="voicemailForm.mailbox.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVoicemail" ng-click="vm.saveVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid || voicemailForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVoicemail" ng-click="vm.addNewVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEMAIL" translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n                    ADD VOICEMAIL\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVoicemail" ng-click="vm.deleteVoicemail($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicemails/edit/view.html",'<div id="voice-voicemail" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-voicemails-button md-icon-button" aria-label="Go to voicemails" ng-click="vm.gotoVoicemails()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEMAILS">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="voicemail-image" hide-xs>\n                    <img ng-src="assets/images/business/voicemails.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.voicemail.id}} {{vm.voicemail.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voicemail.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n        <div>\n            <md-button type="submit" ng-click="vm.saveVoicemail()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (messagesForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voicemail-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.FULLNAME">FullName</label>\n                                <input type="text" name="fullname" ng-model="vm.voicemail.fullname" required autofocus>\n                                <div ng-messages="generalForm.fullname.$error" ng-show="generalForm.fullname.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.EMAIL">Email</label>\n                                <input type="email" name="email" ng-model="vm.voicemail.email" required>\n                                <div ng-messages="generalForm.email.$error" ng-show="generalForm.email.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n                                    </div>\n                                    <div ng-message="email">\n                                        <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PASSWORD">Password</label>\n                                <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n                                <div ng-messages="generalForm.password.$error" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n                                <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n                                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                                <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                                    </div>\n                                    <div ng-message="passwordMatch">\n                                        <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MAILBOX">MailBox</label>\n                                <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" required ng-disabled="true">\n                                <div ng-messages="generalForm.mailbox.$error" ng-show="generalForm.mailbox.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.VOICEMAIL_CONTEXT">Voicemail_Context</label>\n                                <md-select ng-model="vm.voicemail.context" required>\n                                    <md-option ng-value="context.name" ng-repeat="context in vm.contexts">{{ context.name }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.VOICEMAIL_CONTEXT"></span></div>\n                                <div ng-messages="generalForm.context.$error" ng-show="generalForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.VOICEMAIL_CONTEXT_REQUIRED">Voicemail_Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voicemail-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.TIMEZONE">TimeZone</label>\n                                <input type="text" name="tz" ng-model="vm.voicemail.tz" required autofocus>\n                                <div ng-messages="advancedForm.tz.$error" ng-show="advancedForm.tz.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.TIMEZONE_REQUIRED">TimeZone field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ATTACH">Attach</label>\n                                <md-select ng-model="vm.voicemail.attach">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="advancedForm.attach.$error" ng-show="advancedForm.attach.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ATTACH_REQUIRED">Attach field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ENVELOPE">Envelope</label>\n                                <md-select ng-model="vm.voicemail.envelope">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="advancedForm.envelope.$error" ng-show="advancedForm.envelope.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ENVELOPE_REQUIRED">Envelope field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DELETE">Delete</label>\n                                <md-select ng-model="vm.voicemail.delete">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div ng-messages="advancedForm.delete.$error" ng-show="advancedForm.delete.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DELETE_REQUIRED">Delete field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.EMAILBODY">EmailBody</label>\n                                <input type="text" name="emailbody" ng-model="vm.voicemail.emailbody">\n                                <div ng-messages="advancedForm.emailbody.$error" ng-show="advancedForm.emailbody.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.EMAILBODY_REQUIRED">EmailBody field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.EMAILSUBJECT">EmailSubject</label>\n                                <input type="text" name="emailsubject" ng-model="vm.voicemail.emailsubject">\n                                <div ng-messages="advancedForm.emailsubject.$error" ng-show="advancedForm.emailsubject.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.EMAILSUBJECT_REQUIRED">EmailSubject field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MAXSECONDS">MaxSeconds</label>\n                                <input type="number" name="maxsecs" ng-model="vm.voicemail.maxsecs" min="0">\n                                <div ng-messages="advancedForm.maxsecs.$error" ng-show="advancedForm.maxsecs.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MAXSECONDS_REQUIRED">MaxSeconds field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MAXMESSAGES">MaxMessages</label>\n                                <input type="number" name="maxmsg" ng-model="vm.voicemail.maxmsg" min="0" max="9999">\n                                <div ng-messages="advancedForm.maxmsg.$error" ng-show="advancedForm.maxmsg.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MAXMESSAGES_REQUIRED">MaxMessages field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.MESSAGES">MESSAGES</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voicemail-detail-form-container messages md-background-bg md-whiteframe-1dp">\n                        <div ng-controller="VoicemailMessagesController as vm_dc" ng-init="vm_dc.init(vm.voicemail)">\n                            <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedVoicemailMessages.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead" translate="VOICE.MESSAGES">Messages</span>\n                                    <div flex></div>\n                                    <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300"></ms-search-bar>\n                                </div>\n                            </md-toolbar>\n                            <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedVoicemailMessages.length">\n                                <div class="md-toolbar-tools">\n                                    <span class="md-subhead">{{vm_dc.selectedVoicemailMessages.length}} {{vm_dc.selectedVoicemailMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n                                    <div flex></div>\n                                    <md-button class="md-icon-button" ng-click="vm_dc.deleteSelectedVoicemailMessages($event)" aria-label="delete selected" translate translate-attr-label="VOICEMAILS.DELETE_SELECTED">\n                                        <md-icon md-font-icon="icon-delete"></md-icon>\n                                    </md-button>\n                                </div>\n                            </md-toolbar>\n                            <md-table-container>\n                                <table md-table md-row-select multiple ng-model="vm_dc.selectedVoicemailMessages" md-progress="vm_dc.promise">\n                                    <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getVoicemailMessages">\n                                        <tr md-row>\n                                            <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                            <th md-column md-order-by="callerid">{{ \'VOICE.CALLER_ID\' | translate }}</th>\n                                            <th md-column md-order-by="duration">{{ \'VOICE.DURATION\' | translate }}</th>\n                                            <th md-column md-order-by="audio">{{ \'VOICE.AUDIO\' | translate }}</th>\n                                            <th md-column md-order-by="stamp">{{ \'VOICE.RECEIVED_AT\' | translate }}</th>\n                                            <th md-column width="10px"></th>\n                                        </tr>\n                                    </thead>\n                                    <tbody md-body>\n                                        <tr md-row md-select="message" md-select-id="id" ng-repeat="message in vm_dc.voicemailMessages.rows">\n                                            <td md-cell>{{message.id}}</td>\n                                            <td md-cell>{{message.callerid}}</td>\n                                            <td md-cell>{{message.duration}}</td>\n                                            <td md-cell><audio controls><source ng-src="{{\'api/voice/mails/messages/\' + message.id + \'/download\'}}" type="audio/wav" preload="none"></source>Your browser does not support the audio element.</audio></td>\n                                            <td md-cell>{{message.stamp | date:\'medium\'}}</td>\n                                            <td md-cell class="actions">\n                                                <md-menu>\n                                                    <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                                        <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                                    </md-button>\n\n                                                    <md-menu-content width="3">\n                                                        <md-menu-item>\n                                                            <md-button ng-href="api/voice/mails/messages/{{message.id}}/download" target="_blank" translate="VOICE.DOWNLOAD_MESSAGE">\n                                                                Download Message\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                        <md-menu-item>\n                                                            <md-button ng-click="vm_dc.deleteConfirm(message, $event)" translate="VOICE.DELETE_MESSAGE">\n                                                                Delete Message\n                                                            </md-button>\n                                                        </md-menu-item>\n                                                    </md-menu-content>\n                                                </md-menu>\n                                            </td>\n                                        </tr>\n                                        <tr md-row ng-if="!vm_dc.voicemailMessages.rows.length">\n                                            <td md-cell colspan="7">\n                                                <span class="text-boxed-ligth" translate="VOICE.NO_MESSAGE_AVAILABLE">No message available</span>\n                                            </td>\n                                        </tr>\n                                    </tbody>\n                                </table>\n                            </md-table-container>\n                            <md-table-pagination md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20]" md-page="vm_dc.query.page" md-total="{{vm_dc.voicemailMessages.count}}" md-on-paginate="vm_dc.getVoicemailMessages" md-page-select></md-table-pagination>\n                        </div>\n\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voicemails/voicemails.html",'<div id="voicemails" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.VOICEMAILS">Voicemails</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedVoicemails.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedVoicemails =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-voicemails-count">\n                    <span>{{vm.selectedVoicemails.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICEMAILS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllVoicemails()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectVoicemails()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedVoicemails" filename="voicemails.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedVoicemails($event)" aria-label="delete selected" translate translate-attr-label="VOICEMAILS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- VOICEMAIL TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedVoicemails" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicemails">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="fullname">{{ \'VOICE.FULLNAME\' | translate }}</th>\n                                <th md-column md-order-by="email">{{ \'VOICE.EMAIL\' | translate }}</th>\n                                <th md-column md-order-by="mailbox">{{ \'VOICE.MAILBOX\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.voicemails.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="voicemail" md-select-id="id" ng-repeat="voicemail in vm.voicemails.rows">\n                                <td md-cell ng-if="voicemail.userpic"><img class="avatar" alt="{{voicemail.name}}" ng-src="api/users/{{voicemail.id}}/avatar" /></td>\n                                <td md-cell ng-if="!voicemail.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicemail.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditVoicemail($event, voicemail)" md-cell class="id ">{{voicemail.id}}</td>\n                                <td ng-click="vm.createOrEditVoicemail($event, voicemail)" md-cell class="fullname ">{{voicemail.fullname}}</td>\n                                <td ng-click="vm.createOrEditVoicemail($event, voicemail)" md-cell class="email ">{{voicemail.email}}</td>\n                                <td ng-click="vm.createOrEditVoicemail($event, voicemail)" md-cell class="mailbox ">{{voicemail.mailbox}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(voicemail, $event)" translate="VOICE.EDIT_VOICEMAIL">\n                                                    Edit Voicemail\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(voicemail, $event)" translate="VOICE.DELETE_VOICEMAIL">\n                                                    Delete Voicemail\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voicemails.count}}" md-on-paginate="vm.getVoicemails" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / VOICEMAIL TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD VOICEMAIL BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-voicemail-button" ng-click="vm.createOrEditVoicemail($event)" aria-label="add voicemail" translate translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD VOICEMAIL BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/create/dialog.html",'<md-dialog class="voiceQueue-dialog" aria-label="New VoiceQueue">\n    <form name="voiceQueueForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.NAME">Name</label>\n                <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" required autofocus ng-disabled="!vm.newVoiceQueue">\n                <div ng-messages="voiceQueueForm.name.$error" ng-show="voiceQueueForm.name.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n                    </div>\n                    <div ng-message="pattern">\n                        <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.STRATEGY">Strategy</label>\n                <md-select ng-model="vm.voiceQueue.strategy" required>\n                    <md-option ng-value="\'ringall\'">Ringall</md-option>\n                    <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n                    <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n                    <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n                    <md-option ng-value="\'random\'">Random</md-option>\n                    <md-option ng-value="\'linear\'">Linear</md-option>\n                    <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n                </md-select>\n                <div ng-messages="voiceQueueForm.strategy.$error" ng-show="voiceQueueForm.strategy.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="VOICE.DESCRIPTION">Description</label>\n                <input type="text" name="description" ng-model="vm.voiceQueue.description">\n                <div ng-messages="voiceQueueForm.description.$error" ng-show="voiceQueueForm.description.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVoiceQueue" ng-click="vm.saveVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid || voiceQueueForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVoiceQueue" ng-click="vm.addNewVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEQUEUE" translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n                    ADD VOICEQUEUE\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVoiceQueue" ng-click="vm.deleteVoiceQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue">\n    <form name="voiceQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="VOICE.AGENTADD_VOICEQUEUE">Add Agent to voiceQueue</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="VOICE.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue">\n    <form name="voiceQueueForm" ng-cloak>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2 translate="VOICE.TEAMADD_VOICEQUEUE">Add Team in VOICEQUEUE</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content>\n            <md-input-container flex class="no-margin">\n                <label translate="VOICE.PENALTY">Penalty</label>\n                <input name="penalty" ng-model="vm.penalty" placeholder="0" required md-minlength="0" md-maxlength="3">\n                <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span>You must supply a penalty.</span>\n                    </div>\n                    <div ng-message="md-minlength">\n                        <span>Min Penalty 0 characters.</span>\n                    </div>\n                    <div ng-message="md-maxlength">\n                        <span>Max Penalty 3 characters.</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n        </md-dialog-content>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/view.html",'<div id="voice-voiceQueue" class="page-layout simple tabbed" layout="column">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="start center">\n        <div class="white-fg" layout="row" layout-align="start center" flex>\n            <md-button class="goto-voiceQueues-button md-icon-button" aria-label="Go to voiceQueues" ng-click="vm.gotoVoiceQueues()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEQUEUES">\n                <md-icon md-font-icon="icon-arrow-left"></md-icon>\n            </md-button>\n\n            <div layout="row" layout-align="start center">\n\n                <div class="voiceQueue-image" hide-xs>\n                    <img ng-src="assets/images/business/voiceQueues.jpg">\n                </div>\n\n                <div layout="column" layout-align="start start">\n                    <div class="h2">\n                        #{{vm.voiceQueue.id}} {{vm.voiceQueue.name}}\n                    </div>\n                    <div class="subtitle secondary-text">\n                        <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceQueue.createdAt | date:\'medium\'}}</span>\n                    </div>\n                </div>\n            </div>\n        </div>\n\n\n        <div ng-cloak>\n            <md-button ng-click="vm.teamadddialog(vm.voiceQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n                <md-tooltip><span translate="VOICE.TEAMADD_VOICEQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n            </md-button>\n        </div>\n\n        <div ng-cloak>\n            <md-button ng-click="vm.agentadddialog(vm.voiceQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n                <md-tooltip><span translate="VOICE.AGENTADD_VOICEQUEUE"></span></md-tooltip>\n                <md-icon md-font-icon="icon-account-plus"></md-icon>\n            </md-button>\n        </div>\n        <div>\n            <md-button type="submit" ng-click="vm.saveVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (settingsForm.$invalid) || (announcementsForm.$invalid) || (advancedForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                SAVE\n            </md-button>\n        </div>\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content">\n\n        <md-tabs md-selected="vm.selectedTab" md-dynamic-height>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.SETTINGS">SETTINGS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voiceQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n                        </div>\n                        <form name="generalForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.STRATEGY">Strategy</label>\n                                <md-select ng-model="vm.voiceQueue.strategy" required autofocus>\n                                    <md-option ng-value="\'ringall\'">Ringall</md-option>\n                                    <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n                                    <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n                                    <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n                                    <md-option ng-value="\'random\'">Random</md-option>\n                                    <md-option ng-value="\'linear\'">Linear</md-option>\n                                    <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n                                </md-select>\n                                <div ng-messages="generalForm.strategy.$error" ng-show="generalForm.strategy.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.TIMEOUT">Timeout</label>\n                                <input type="number" name="timeout" ng-model="vm.voiceQueue.timeout" min="0" required>\n                                <div class="hint"><span translate="VOICE.HELP.TIMEOUT"></span></div>\n                                <div ng-messages="generalForm.timeout.$error" ng-show="generalForm.timeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MAXLENGTH">MaxLength</label>\n                                <input type="number" name="maxlen" ng-model="vm.voiceQueue.maxlen" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.MAXLENGTH"></span></div>\n                                <div ng-messages="generalForm.maxlen.$error" ng-show="generalForm.maxlen.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MAXLENGTH_REQUIRED">MaxLength field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.RETRY">Retry</label>\n                                <input type="number" name="retry" ng-model="vm.voiceQueue.retry" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.RETRY"></span></div>\n                                <div ng-messages="generalForm.retry.$error" ng-show="generalForm.retry.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.WRAPUPTIME">WrapupTime</label>\n                                <input type="number" name="wrapuptime" ng-model="vm.voiceQueue.wrapuptime" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.WRAPUPTIME"></span></div>\n                                <div ng-messages="generalForm.wrapuptime.$error" ng-show="generalForm.wrapuptime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.WEIGHT">Weight</label>\n                                <input type="number" name="weight" ng-model="vm.voiceQueue.weight" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.WEIGHT"></span></div>\n                                <div ng-messages="generalForm.weight.$error" ng-show="generalForm.weight.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.JOINWHENEMPTY">JoinWhenEmpty</label>\n                                <md-select ng-model="vm.voiceQueue.joinempty" multiple>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'strict\'">strict</md-option>\n                                    <md-option ng-value="\'loose\'">loose</md-option>\n                                    <md-option ng-value="\'paused\'">paused</md-option>\n                                    <md-option ng-value="\'penalty\'">penalty</md-option>\n                                    <md-option ng-value="\'inuse\'">inuse</md-option>\n                                    <md-option ng-value="\'ringing\'">ringing</md-option>\n                                    <md-option ng-value="\'unavailable\'">unavailable</md-option>\n                                    <md-option ng-value="\'invalid\'">invalid</md-option>\n                                    <md-option ng-value="\'unknown\'">unknoww</md-option>\n                                    <md-option ng-value="\'wrapup\'">wrapup</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.JOINWHENEMPTY"></span></div>\n                                <div ng-messages="generalForm.joinempty.$error" ng-show="generalForm.joinempty.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.JOINWHENEMPTY_REQUIRED">JoinWhenEmpty field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.LEAVEWHENEMPTY">LeaveWhenEmpty</label>\n                                <md-select ng-model="vm.voiceQueue.leavewhenempty" multiple>\n                                    <md-option ng-value="\'no\'">no</md-option>\n                                    <md-option ng-value="\'yes\'">yes</md-option>\n                                    <md-option ng-value="\'strict\'">strict</md-option>\n                                    <md-option ng-value="\'loose\'">loose</md-option>\n                                    <md-option ng-value="\'paused\'">paused</md-option>\n                                    <md-option ng-value="\'penalty\'">penalty</md-option>\n                                    <md-option ng-value="\'inuse\'">inuse</md-option>\n                                    <md-option ng-value="\'ringing\'">ringing</md-option>\n                                    <md-option ng-value="\'unavailable\'">unavailable</md-option>\n                                    <md-option ng-value="\'invalid\'">invalid</md-option>\n                                    <md-option ng-value="\'unknown\'">unknoww</md-option>\n                                    <md-option ng-value="\'wrapup\'">wrapup</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.LEAVEWHENEMPTY"></span></div>\n                                <div ng-messages="generalForm.leavewhenempty.$error" ng-show="generalForm.leavewhenempty.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.LEAVEWHENEMPTY_REQUIRED">LeaveWhenEmpty field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MUSICONHOLD">MusicOnHold</label>\n                                <md-select ng-model="vm.voiceQueue.musiconhold">\n                                    <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds">{{ musiconhold.name }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.MUSICONHOLD"></span></div>\n                                <div ng-messages="generalForm.musiconhold.$error" ng-show="generalForm.musiconhold.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCETOAGENT">AnnounceToAgent</label>\n                                <md-select ng-model="vm.voiceQueue.announce">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + announce.save_name" ng-repeat="announce in vm.sounds">{{ announce.name }}</md-option>\n                                    <md-option ng-value="\'\'">None</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCETOAGENT"></span></div>\n                                <div ng-messages="generalForm.announce.$error" ng-show="generalForm.announce.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCETOAGENT_REQUIRED">AnnounceToAgent field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.DESCRIPTION">Description</label>\n                                <input type="text" name="description" ng-model="vm.voiceQueue.description">\n                                <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voiceQueue-detail-form-container settings md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.SETTINGS">SETTINGS</div>\n                        </div>\n                        <form name="settingsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCEFREQUENCY">AnnounceFrequency</label>\n                                <input type="number" name="announce_frequency" ng-model="vm.voiceQueue.announce_frequency" min="0" autofocus>\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCEFREQUENCY"></span></div>\n                                <div ng-messages="settingsForm.announce_frequency.$error" ng-show="settingsForm.announce_frequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_REQUIRED">AnnounceFrequency field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MINANNOUNCEFREQUENCY">MinAnnounceFrequency</label>\n                                <input type="number" name="min_announce_frequency" ng-model="vm.voiceQueue.min_announce_frequency" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.MINANNOUNCEFREQUENCY"></span></div>\n                                <div ng-messages="settingsForm.min_announce_frequency.$error" ng-show="settingsForm.min_announce_frequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_REQUIRED">MinAnnounceFrequency field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PERIODICANNOUNCEFREQUENCY">PeriodicAnnounceFrequency</label>\n                                <input type="number" name="periodic_announce_frequency" ng-model="vm.voiceQueue.periodic_announce_frequency" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCEFREQUENCY"></span></div>\n                                <div ng-messages="settingsForm.periodic_announce_frequency.$error" ng-show="settingsForm.periodic_announce_frequency.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_REQUIRED">PeriodicAnnounceFrequency field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.RANDOMPERIODICANNOUNCE">RandomPeriodicAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.random_periodic_announce">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.RANDOMPERIODICANNOUNCE"></span></div>\n                                <div ng-messages="settingsForm.random_periodic_announce.$error" ng-show="settingsForm.random_periodic_announce.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.RANDOMPERIODICANNOUNCE_REQUIRED">RandomPeriodicAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCEHOLDTIME">AnnounceHoldtime</label>\n                                <md-select ng-model="vm.voiceQueue.announce_holdtime">\n                                    <md-option ng-value="\'yes\'">Yes</md-option>\n                                    <md-option ng-value="\'no\'">No</md-option>\n                                    <md-option ng-value="\'once\'">Once</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCEHOLDTIME"></span></div>\n                                <div ng-messages="settingsForm.announce_holdtime.$error" ng-show="settingsForm.announce_holdtime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCEHOLDTIME_REQUIRED">AnnounceHoldtime field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCECALLERPOSITION">AnnounceCallerPosition</label>\n                                <md-select ng-model="vm.voiceQueue.announce_position">\n                                    <md-option ng-value="\'yes\'">Yes</md-option>\n                                    <md-option ng-value="\'no\'">No</md-option>\n                                    <md-option ng-value="\'limit\'">Limit</md-option>\n                                    <md-option ng-value="\'more\'">More</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCECALLERPOSITION"></span></div>\n                                <div ng-messages="settingsForm.announce_position.$error" ng-show="settingsForm.announce_position.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCECALLERPOSITION_REQUIRED">AnnounceCallerPosition field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ANNOUNCEPOSITIONLIMIT">AnnouncePositionLimit</label>\n                                <input type="number" name="announce_position_limit" ng-model="vm.voiceQueue.announce_position_limit">\n                                <div class="hint"><span translate="VOICE.HELP.ANNOUNCEPOSITIONLIMIT"></span></div>\n                                <div ng-messages="settingsForm.announce_position_limit.$error" ng-show="settingsForm.announce_position_limit.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ANNOUNCEPOSITIONLIMIT_REQUIRED">AnnouncePositionLimit field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.REPORTHOLDTIMEAGENT">ReportHoldtimeAgent</label>\n                                <md-select ng-model="vm.voiceQueue.reportholdtime">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.REPORTHOLDTIMEAGENT"></span></div>\n                                <div ng-messages="settingsForm.reportholdtime.$error" ng-show="settingsForm.reportholdtime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.REPORTHOLDTIMEAGENT_REQUIRED">ReportHoldtimeAgent field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                    <div class="voiceQueue-detail-form-container announcements md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</div>\n                        </div>\n                        <form name="announcementsForm" novalidate>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.PERIODICANNOUNCE">PeriodicAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.periodic_announce" autofocus>\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + periodic_announce.save_name" ng-repeat="periodic_announce in vm.sounds">{{ periodic_announce.name }}</md-option>\n                                    <md-option ng-value="\'\'">Default</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.periodic_announce.$error" ng-show="announcementsForm.periodic_announce.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.PERIODICANNOUNCE_REQUIRED">PeriodicAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.HOLDTIMEANNOUNCE">HoldTimeAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_reporthold">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_reporthold.save_name" ng-repeat="queue_reporthold in vm.sounds">{{ queue_reporthold.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.HOLDTIMEANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_reporthold.$error" ng-show="announcementsForm.queue_reporthold.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.HOLDTIMEANNOUNCE_REQUIRED">HoldTimeAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.YOUARENEXTANNOUNCE">YouareNextAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_youarenext">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_youarenext.save_name" ng-repeat="queue_youarenext in vm.sounds">{{ queue_youarenext.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.YOUARENEXTANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_youarenext.$error" ng-show="announcementsForm.queue_youarenext.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.YOUARENEXTANNOUNCE_REQUIRED">YouareNextAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.THEREAREANNOUNCE">ThereareAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_thereare">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thereare.save_name" ng-repeat="queue_thereare in vm.sounds">{{ queue_thereare.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.THEREAREANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_thereare.$error" ng-show="announcementsForm.queue_thereare.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.THEREAREANNOUNCE_REQUIRED">ThereareAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.WAITINGCALLSANNOUNCE">WaitingCallsAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_callswaiting">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_callswaiting.save_name" ng-repeat="queue_callswaiting in vm.sounds">{{ queue_callswaiting.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.WAITINGCALLSANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_callswaiting.$error" ng-show="announcementsForm.queue_callswaiting.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.WAITINGCALLSANNOUNCE_REQUIRED">WaitingCallsAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.ESTIMATEDHOLDTIMEANNOUNCE">EstimatedHoldTimeAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_holdtime">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_holdtime.save_name" ng-repeat="queue_holdtime in vm.sounds">{{ queue_holdtime.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.ESTIMATEDHOLDTIMEANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_holdtime.$error" ng-show="announcementsForm.queue_holdtime.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.ESTIMATEDHOLDTIMEANNOUNCE_REQUIRED">EstimatedHoldTimeAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MINUTESANNOUNCE">MinutesAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_minutes">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minutes.save_name" ng-repeat="queue_minutes in vm.sounds">{{ queue_minutes.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.MINUTESANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_minutes.$error" ng-show="announcementsForm.queue_minutes.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MINUTESANNOUNCE_REQUIRED">MinutesAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MINUTEANNOUNCE">MinuteAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_minute">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minute.save_name" ng-repeat="queue_minute in vm.sounds">{{ queue_minute.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.MINUTEANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_minute.$error" ng-show="announcementsForm.queue_minute.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MINUTEANNOUNCE_REQUIRED">MinuteAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.SECONDSANNOUNCE">SecondsAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_seconds">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_seconds.save_name" ng-repeat="queue_seconds in vm.sounds">{{ queue_seconds.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.SECONDSANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_seconds.$error" ng-show="announcementsForm.queue_seconds.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SECONDSANNOUNCE_REQUIRED">SecondsAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.THANKYOUANNOUNCE">ThankYouAnnounce</label>\n                                <md-select ng-model="vm.voiceQueue.queue_thankyou">\n                                    <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thankyou.save_name" ng-repeat="queue_thankyou in vm.sounds">{{ queue_thankyou.name }}</md-option>\n                                    <md-option ng-value="null">Default</md-option>\n                                    <md-option ng-value="\'\'">Disabled</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.THANKYOUANNOUNCE"></span></div>\n                                <div ng-messages="announcementsForm.queue_thankyou.$error" ng-show="announcementsForm.queue_thankyou.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.THANKYOUANNOUNCE_REQUIRED">ThankYouAnnounce field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n            <md-tab>\n                <md-tab-label>\n                    <span translate="VOICE.ADVANCED">ADVANCED</span>\n                </md-tab-label>\n\n                <md-tab-body>\n                    <div class="voiceQueue-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n                        <div class="pb-16" layout="row" layout-align="start center">\n                            <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n                        </div>\n                        <form name="advancedForm" novalidate>\n                            <md-input-container class="md-block">\n                                <md-switch ng-model="vm.voiceQueue.acw" aria-label="AfterCallWork"><span translate="VOICE.AFTERCALLWORK">AfterCallWork</span></md-switch>\n                                <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORK"></span></div>\n                            </md-input-container>\n                            <md-input-container ng-if="vm.voiceQueue.acw" class="md-block">\n                                <label translate="VOICE.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n                                <input type="number" name="acwTimeout" ng-model="vm.voiceQueue.acwTimeout" min="0" required>\n                                <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORKDURATION"></span></div>\n                                <div ng-messages="advancedForm.acwTimeout.$error" ng-show="advancedForm.acwTimeout.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.AUTOPAUSE">AutoPause</label>\n                                <md-select ng-model="vm.voiceQueue.autopause">\n\n                                    <md-option ng-value="\'all\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.AUTOPAUSE"></span></div>\n                                <div ng-messages="advancedForm.autopause.$error" ng-show="advancedForm.autopause.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.RINGINUSE">RingInUse</label>\n                                <md-select ng-model="vm.voiceQueue.ringinuse">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.RINGINUSE"></span></div>\n                                <div ng-messages="advancedForm.ringinuse.$error" ng-show="advancedForm.ringinuse.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MEMBERDELAY">MemberDelay</label>\n                                <input type="number" name="memberdelay" ng-model="vm.voiceQueue.memberdelay" min="0">\n                                <div class="hint"><span translate="VOICE.HELP.MEMBERDELAY"></span></div>\n                                <div ng-messages="advancedForm.memberdelay.$error" ng-show="advancedForm.memberdelay.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.TIMEOUTRESTART">TimeoutRestart</label>\n                                <md-select ng-model="vm.voiceQueue.timeoutrestart">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.TIMEOUTRESTART"></span></div>\n                                <div ng-messages="advancedForm.timeoutrestart.$error" ng-show="advancedForm.timeoutrestart.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.MONITORFORMAT">MonitorFormat</label>\n                                <md-select ng-model="vm.voiceQueue.monitor_format">\n                                    <md-option ng-value="\'\'">Inactive</md-option>\n                                    <md-option ng-value="\'wav\'">wav</md-option>\n                                    <md-option ng-value="\'wav49\'">wav49</md-option>\n                                    <md-option ng-value="\'gsm\'">gsm</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.MONITORFORMAT"></span></div>\n                                <div ng-messages="advancedForm.monitor_format.$error" ng-show="advancedForm.monitor_format.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.CONTEXT">Context</label>\n                                <input type="text" name="context" ng-model="vm.voiceQueue.context">\n                                <div class="hint"><span translate="VOICE.HELP.CONTEXT"></span></div>\n                                <div ng-messages="advancedForm.context.$error" ng-show="advancedForm.context.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n                                <md-select ng-model="vm.voiceQueue.setinterfacevar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.SETINTERFACEVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setinterfacevar.$error" ng-show="advancedForm.setinterfacevar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.SETQUEUEVARIABLES">SetQueueVariables</label>\n                                <md-select ng-model="vm.voiceQueue.setqueuevar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.SETQUEUEVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setqueuevar.$error" ng-show="advancedForm.setqueuevar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n                            <md-input-container class="md-block">\n                                <label translate="VOICE.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n                                <md-select ng-model="vm.voiceQueue.setqueueentryvar">\n\n                                    <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }}</md-option>\n\n                                    <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }}</md-option>\n                                </md-select>\n                                <div class="hint"><span translate="VOICE.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n                                <div ng-messages="advancedForm.setqueueentryvar.$error" ng-show="advancedForm.setqueueentryvar.$touched" role="alert">\n                                    <div ng-message="required">\n                                        <span translate="VOICE.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n                                    </div>\n                                </div>\n                            </md-input-container>\n\n                        </form>\n                    </div>\n                </md-tab-body>\n            </md-tab>\n        </md-tabs>\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/voiceQueues.html",'<div id="voiceQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.VOICEQUEUES">VoiceQueues</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedVoiceQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedVoiceQueues =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-voiceQueues-count">\n                    <span>{{vm.selectedVoiceQueues.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICEQUEUES.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllVoiceQueues()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectVoiceQueues()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceQueues" filename="voiceQueues.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedVoiceQueues($event)" aria-label="delete selected" translate translate-attr-label="VOICEQUEUES.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- VOICEQUEUE TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedVoiceQueues" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceQueues">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n                                <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n                                <th md-column md-order-by="strategy">{{ \'VOICE.STRATEGY\' | translate }}</th>\n                                <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.voiceQueues.rows.length">\n                                <td md-cell colspan="5">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="voiceQueue" md-select-id="id" ng-repeat="voiceQueue in vm.voiceQueues.rows">\n                                <td md-cell ng-if="voiceQueue.userpic"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="api/users/{{voiceQueue.id}}/avatar" /></td>\n                                <td md-cell ng-if="!voiceQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="id ">{{voiceQueue.id}}</td>\n                                <td ng-click="vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="name ">{{voiceQueue.name}}</td>\n                                <td ng-click="vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="strategy ">{{ vm.arraystrategy[voiceQueue.strategy].option }}</td>\n                                <td ng-click="vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="description ">{{voiceQueue.description}}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.editstate(voiceQueue, $event)" translate="VOICE.EDIT_VOICEQUEUE">\n                                                    Edit VoiceQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.teamadddialog(voiceQueue, $event)" translate="VOICE.TEAMADD_VOICEQUEUE">\n                                                    teamadd VoiceQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.agentadddialog(voiceQueue, $event)" translate="VOICE.AGENTADD_VOICEQUEUE">\n                                                    agentadd VoiceQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(voiceQueue, $event)" translate="VOICE.DELETE_VOICEQUEUE">\n                                                    Delete VoiceQueue\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / VOICEQUEUE TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- ADD VOICEQUEUE BUTTON --\x3e\n    <md-button class="md-fab md-accent" id="add-voiceQueue-button" ng-click="vm.createOrEditVoiceQueue($event)" aria-label="add voiceQueue" translate translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n        <md-icon md-font-icon="icon-plus"></md-icon>\n    </md-button>\n    \x3c!-- / ADD VOICEQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceRecordings/create/dialog.html",'<md-dialog class="voiceRecording-dialog" aria-label="New VoiceRecording">\n    <form name="voiceRecordingForm" class="md-inline-form" novalidate>\n        <md-toolbar class="md-accent md-hue-2">\n            <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n                <span class="title">{{ vm.title | translate }}</span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block">\n                <label translate="VOICE.RATING">Rating</label>\n                <md-select ng-model="vm.voiceRecording.rating" autofocus>\n                    <md-option ng-value="null">{{\'VOICE.NO_RATING\' | translate}}</md-option>\n                    <md-option value="1">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n                    </md-option>\n                    <md-option value="2">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n                    </md-option>\n                    <md-option value="3">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n                    </md-option>\n                    <md-option value="4">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n                    </md-option>\n                    <md-option value="5">\n                        <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n                    </md-option>\n                </md-select>\n                <div ng-messages="voiceRecordingForm.rating.$error" ng-show="voiceRecordingForm.rating.$touched" role="alert">\n                    <div ng-message="required">\n                        <span translate="VOICE.ERRORS.RATING_REQUIRED">Rating field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-if="!vm.newVoiceRecording" ng-click="vm.saveVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid || voiceRecordingForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n                    SAVE\n                </md-button>\n\n                <md-button type="submit" ng-if="vm.newVoiceRecording" ng-click="vm.addNewVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICERECORDING" translate-attr-aria-label="VOICE.ADD_VOICERECORDING">\n                    ADD VOICERECORDING\n                </md-button>\n            </div>\n            <div layout="row">\n                <md-button class="md-icon-button" ng-if="!vm.newVoiceRecording" ng-click="vm.deleteVoiceRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                    <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",'<div id="voiceRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n    \x3c!-- HEADER --\x3e\n    <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n        \x3c!-- APP TITLE --\x3e\n        <div layout="row" layout-align="start center">\n            <div class="logo" layout="row" layout-align="start center">\n                <span class="logo-icon">\n                    <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n                </span>\n                <span class="logo-text" translate="VOICE.VOICERECORDINGS">VoiceRecordings</span>\n            </div>\n        </div>\n        \x3c!-- / APP TITLE --\x3e\n\n        \x3c!-- SEARCH --\x3e\n        <div class="search-input-wrapper" layout="row" layout-align="start center">\n            <label for="search">\n                <md-icon md-font-icon="icon-magnify"></md-icon>\n            </label>\n            <md-input-container md-no-float class="m-0">\n                <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 300 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n            </md-input-container>\n        </div>\n        \x3c!-- / SEARCH --\x3e\n\n    </div>\n    \x3c!-- / HEADER --\x3e\n\n    \x3c!-- SELECTED BAR --\x3e\n    <div ng-show="vm.selectedVoiceRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n        <div class="close-button-wrapper" ng-click="vm.selectedVoiceRecordings =[]">\n            <md-button layout="row" layout-align="start center">\n                <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n                <span translate="VOICE.BACK">Back</span>\n            </md-button>\n        </div>\n\n        <div flex layout="row" layout-align="space-between center">\n\n            <div>\n                <span class="selected-voiceRecordings-count">\n                    <span>{{vm.selectedVoiceRecordings.length}}</span>\n                <span translate="VOICE.SELECTED">selected</span>\n                </span>\n\n                <md-menu class="select-menu" ng-if="!vm.currentThread">\n                    <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICERECORDINGS.MULTI_SELECT_TOGGLE">\n                        <md-icon md-font-icon="icon-menu-down"></md-icon>\n                    </md-button>\n                    <md-menu-content width="3">\n                        <md-menu-item>\n                            <md-button ng-click="vm.selectAllVoiceRecordings()" translate="VOICE.SELECT_ALL">\n                                Select all\n                            </md-button>\n                        </md-menu-item>\n                        <md-menu-item>\n                            <md-button ng-click="vm.deselectVoiceRecordings()" translate="VOICE.SELECT_NONE">\n                                Select none\n                            </md-button>\n                        </md-menu-item>\n                    </md-menu-content>\n                </md-menu>\n            </div>\n\n            <div class="multi-select-actions">\n                <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceRecordings" filename="voiceRecordings.csv">\n                    <md-icon md-font-icon="icon-download"></md-icon>\n                </button>\n                <md-button class="md-icon-button" ng-click="vm.deleteSelectedVoiceRecordings($event)" aria-label="delete selected" translate translate-attr-label="VOICERECORDINGS.DELETE_SELECTED">\n                    <md-icon md-font-icon="icon-delete"></md-icon>\n                </md-button>\n            </div>\n        </div>\n    </div>\n    \x3c!-- / SELECTED BAR --\x3e\n\n    \x3c!-- CONTENT --\x3e\n    <div class="content" md-background-bg layout="row" layout-align="start start">\n\n        \x3c!-- MAIN --\x3e\n        <div class="main scrollable" ms-scroll>\n\n            \x3c!-- VOICERECORDING TABLE --\x3e\n            <md-card>\n                <md-table-container>\n                    <table md-table md-row-select multiple ng-model="vm.selectedVoiceRecordings" md-progress="vm.promise">\n                        <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n                            <tr md-row>\n                                <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n                                <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n                                <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n                                <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n                                <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n                                <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n                                <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n                                <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n                                <th md-column md-order-by="audio">{{ \'VOICE.AUDIO\' | translate }}</th>\n                                <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n                                <th md-column width="10px"></th>\n                            </tr>\n                        </thead>\n                        <tbody md-body>\n                            <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n                                <td md-cell colspan="10">\n                                    <div layout="row" layout-align="center center">\n                                        <span tranlsate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n                                    </div>\n                                </td>\n                            </tr>\n                            <tr md-row md-select="voiceRecording" md-select-id="id" ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n                                <td md-cell ng-if="voiceRecording.userpic"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="api/users/{{voiceRecording.id}}/avatar" /></td>\n                                <td md-cell ng-if="!voiceRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="assets/images/avatars/profile.jpg" /></td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="type ">{{voiceRecording.type}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="calleridnum ">{{voiceRecording.calleridnum}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="exten ">{{voiceRecording.exten}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="connectedlinenum ">{{voiceRecording.connectedlinenum}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="queue ">{{voiceRecording.queue}}</td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="rating ">\n                                    <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span></td>\n                                <td md-cell class="audio " ng-switch="voiceRecording.format">\n                                    <audio controls ng-switch-when=".wav">\n                                  <source ng-src="{{\'api/voice/recordings/\' + voiceRecording.id + \'/download\'}}" type="audio/wav" preload="none"></source> Your browser does not support the audio element.\n                                 </audio>\n                                    <span ng-switch-when=".gsm">\n                                  <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n                                 </span>\n                                </td>\n                                <td ng-click="vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n                                <td md-cell class="actions">\n                                    <md-menu>\n                                        <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n                                            <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                                        </md-button>\n\n                                        <md-menu-content width="3">\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.downloadfile(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n                                                    Download VoiceRecording\n                                                </md-button>\n                                            </md-menu-item>\n                                            <md-menu-item>\n                                                <md-button ng-click="vm.deleteconfirm(voiceRecording, $event)" translate="VOICE.DELETE_VOICERECORDING">\n                                                    Delete VoiceRecording\n                                                </md-button>\n                                            </md-menu-item>\n                                        </md-menu-content>\n                                    </md-menu>\n                                </td>\n                            </tr>\n                        </tbody>\n                    </table>\n                </md-table-container>\n\n                <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select></md-table-pagination>\n            </md-card>\n            \x3c!-- / VOICERECORDING TABLE --\x3e\n            \x3c!-- NO RESULTS --\x3e\n\n            \x3c!-- / NO RESULTS --\x3e\n        </div>\n        \x3c!-- / MAIN --\x3e\n\n    </div>\n    \x3c!-- / CONTENT --\x3e\n\n    \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/navigation/layouts/horizontal-navigation/navigation.html",'<div layout="row" layout-align="start center">\n    <ms-navigation-horizontal></ms-navigation-horizontal>\n</div>'),e.put("app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html",'<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions">\n</ms-navigation>'),e.put("app/navigation/layouts/vertical-navigation/navigation.html",'<md-toolbar class="navigation-header md-whiteframe-1dp" layout="row" layout-align="space-between center">\n    <div class="logo" layout="row" layout-align="start center">\n        <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n        \x3c!-- <span class="logo-image"><img src="assets/images/logos/whisker_32x32.png" alt="motion_whisker_32x32" /></span> --\x3e\n        <span class="logo-text text-truncate">{{vm.getLogo() | uppercase}}</span>\n    </div>\n    <md-icon class="fold-toggle s18" md-font-icon="icon-backburger" hide show-gt-sm ng-click="vm.toggleMsNavigationFolded()"></md-icon>\n</md-toolbar>\n\n<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions"></ms-navigation>'),e.put("app/quick-panel/quick-panel.html",'<md-content>\n    <md-tabs md-no-pagination md-swipe-content md-stretch-tabs="always">\n        <md-tab ng-if="vm.license.gray">\n            <md-tab-label>\n                <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n                <span translate="QUICKPANEL.LICENSE">LICENSE</span>\n            </md-tab-label>\n            <md-tab-body>\n                <md-list-item>\n                    <dl>\n                        <dt translate="QUICKPANEL.EXPIRATION_REASON"> Expiration reason </dt>\n\n                        <dt translate="QUICKPANEL.EXPIRATION_DATE"> Expiration date </dt>\n                        <dd>{{ vm.license.deadline }}</dd>\n\n                        <dt translate="QUICKPANEL.OLD_TOKEN"> Old Token </dt>\n                        <dd>{{ vm.license.uuid }}</dd>\n\n                        <dt translate="QUICKPANEL.NEW_TOKEN"> New Token </dt>\n                        <dd>{{ vm.license.machineUuid }}</dd>\n\n                        <dt translate="QUICKPANEL.CONTACT_XCALLY_MOTION_SUPPORT"> Contact xCALLY MOTION Support </dt>\n                        <dd>\n                            {{ \'QUICKPANEL.SEND_EMAIL_TO\' | translate }} <a href="mailto:license@xcally.com?subject=New%20token%20detected&body=Hi xCALLY, New Token: {{vm.license.machineUuid}}, Old token: {{vm.license.uuid}}">license@xcally.com</a>.\n                        </dd>\n                    </dl>\n                </md-list-item>\n            </md-tab-body>\n        </md-tab>\n\n        <md-tab>\n            <md-tab-label>\n                <span translate="QUICKPANEL.TODAY">TODAY</span>\n            </md-tab-label>\n            <md-tab-body>\n                <md-content class="today-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/today/today-tab.html\'">\n                </md-content>\n            </md-tab-body>\n        </md-tab>\n        \x3c!-- <md-tab>\n  <md-tab-label>\n  <span translate="QUICKPANEL.CHAT">CHAT</span>\n</md-tab-label>\n<md-tab-body>\n<md-content class="chat-tab scrollable" ms-scroll\nng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'"\nng-controller="ChatTabController as vm">\n</md-content>\n</md-tab-body>\n</md-tab>\n<md-tab>\n<md-tab-label>\n<span translate="QUICKPANEL.ACTIVITY">ACTIVITY</span>\n</md-tab-label>\n<md-tab-body>\n<md-content class="activity-tab scrollable" ms-scroll\nng-include="\'app/quick-panel/tabs/activity/activity-tab.html\'">\n</md-content>\n</md-tab-body>\n</md-tab> --\x3e\n    </md-tabs>\n</md-content>'),e.put("app/quick-panel/tabs/activity/activity-tab.html",'<md-list class="friends">\n    <md-subheader class="md-no-sticky">\n        <span translate="QUICKPANEL.FRIENDS">Friends</span>\n    </md-subheader>\n\n    <md-list-item class="friend md-3-line" ng-repeat="friend in vm.activities.friends">\n        <img ng-src="{{friend.avatar}}" class="md-avatar" alt="{{friend.name}}" />\n\n        <div class="status {{friend.status}}"></div>\n\n        <div ng-if="contact.unread" class="md-accent-bg unread-message-count">{{contact.unread}}</div>\n\n        <div class="md-list-item-text">\n            <h3 class="message">{{friend.message}}</h3>\n            <p class="time">{{friend.time}}</p>\n        </div>\n    </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="servers">\n    <md-subheader class="md-no-sticky">\n        <span translate="QUICKPANEL.APP_SERVERS">Application Servers</span>\n    </md-subheader>\n\n    <md-list-item class="server md-3-line" ng-repeat="server in vm.activities.servers">\n        <md-icon md-font-icon="icon-checkbox-blank-circle" class="s16 status" ng-class="server.status"></md-icon>\n\n        <div class="md-list-item-text">\n            <h3>{{server.location}}</h3>\n            <p>{{server.detail}}</p>\n        </div>\n    </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="stats">\n    <md-subheader class="md-no-sticky">\n        <span translate="QUICKPANEL.USER_STATS">User Stats</span>\n    </md-subheader>\n\n    <md-list-item class="stat md-2-line" ng-repeat="stat in vm.activities.stats">\n        <div class="md-list-item-text">\n            <span>{{stat.title}} ({{stat.current}} / {{stat.total}})</span>\n            <md-progress-linear ng-class="stat.status" md-mode="determinate" value="{{stat.percent}}"></md-progress-linear>\n        </div>\n    </md-list-item>\n</md-list>'),e.put("app/quick-panel/tabs/chat/chat-tab.html",'<div class="main animate-slide-left" ng-hide="vm.chatActive">\n    <md-list class="recent">\n        <md-subheader class="md-no-sticky">\n            <span translate="QUICKPANEL.RECENT">Recent</span>\n        </md-subheader>\n\n        <md-list-item class="contact md-3-line" ng-repeat="contact in vm.contacts.recent" ng-click="vm.toggleChat(contact)">\n            <img ng-src="{{contact.avatar}}" class="md-avatar" alt="{{contact.name}}" />\n\n            <div class="status  {{contact.status}}"></div>\n\n            <div ng-if="contact.unread" class="md-accent-bg unread-message-count">{{contact.unread}}</div>\n\n            <div class="md-list-item-text">\n                <h3>{{contact.name}}</h3>\n                <p class="last-message">{{contact.lastMessage}}</p>\n            </div>\n        </md-list-item>\n    </md-list>\n\n    <md-divider></md-divider>\n\n    <md-list class="all">\n        <md-subheader class="md-no-sticky">\n            <span translate="QUICKPANEL.START_NEW_CHAT">Start New Chat</span>\n        </md-subheader>\n\n        <md-list-item class="contact" ng-repeat="contact in vm.contacts.all" ng-click="vm.toggleChat(contact)">\n            <img ng-src="{{contact.avatar}}" class="md-avatar" alt="{{contact.name}}" />\n\n            <div class="status {{contact.status}}"></div>\n\n            <div class="md-list-item-text">\n                <h3>{{contact.name}}</h3>\n            </div>\n        </md-list-item>\n    </md-list>\n\n    <md-divider></md-divider>\n</div>\n\n<div class="chat animate-slide-right" ng-show="vm.chatActive" layout="column">\n    <md-toolbar class="md-accent">\n        <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n\n            <div layout="row" layout-align="start center">\n                <md-button class="md-icon-button" ng-click="vm.toggleChat()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK">\n                    <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n                </md-button>\n                <h4>\n                    <span>{{vm.chat.contact.name}}</span>\n                </h4>\n            </div>\n\n            <div layout="row" layout-align="end center">\n                <md-button class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL">\n                    <md-icon md-font-icon="icon-phone"></md-icon>\n                </md-button>\n\n                <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="QUICKPANEL.MORE">\n                    <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n                </md-button>\n            </div>\n        </div>\n\n    </md-toolbar>\n    <md-content flex layout-paddings ms-scroll id="chat-dialog">\n        <div layout="row" ng-repeat="dialog in vm.chat.contact.dialog" class="md-padding message-row" ng-class="dialog.who">\n            <img ng-if="dialog.who ===\'contact\'" ng-src="{{vm.chat.contact.avatar}}" class="avatar" alt="{{vm.chat.contact.name}}" />\n            <img ng-if="dialog.who ===\'user\'" class="avatar" src="assets/images/avatars/profile.jpg">\n\n            <div class="bubble" flex>\n                <div class="message">{{dialog.message}}</div>\n                <div class="time secondary-text">{{dialog.time}}</div>\n            </div>\n        </div>\n    </md-content>\n\n    <form ng-submit="vm.reply()" layout="row" class="reply" layout-align="start center">\n        <textarea ng-keyup="$event.keyCode == 13 ? vm.reply() : null" flex ng-model="vm.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER"></textarea>\n\n        <md-button class="md-fab md-mini" type="submit" aria-label="Send message" translate translate-attr-aria-label="QUICKPANEL.SEND_MESSAGE">\n            <md-icon md-font-icon="icon-send"></md-icon>\n        </md-button>\n    </form>\n</div>'),e.put("app/quick-panel/tabs/today/today-tab.html",'<md-list class="date">\n    <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.TODAY">Today</span></md-subheader>\n    <md-list-item class="md-display-1 md-2-line">\n        <div class="secondary-text">\n            <div translate="QUICKPANEL.{{ (vm.date | date:\'EEEE\').toUpperCase() }}"></div>\n            <div layout="row" layout-align="start start">\n                <span> {{vm.date | date:\'d\'}}</span>\n                <span class="md-subhead">th</span>\n                <span translate="QUICKPANEL.{{ (vm.date | date:\'MMMM\').toUpperCase() }}"></span>\n            </div>\n        </div>\n    </md-list-item>\n</md-list>\n\n\x3c!-- <md-divider></md-divider>\n\n<md-list>\n    <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.EVENTS">Events</span></md-subheader>\n\n    <md-list-item class="md-2-line" ng-repeat="event in vm.events" ng-click="dummyFunction()">\n        <div class="md-list-item-text">\n            <h3>{{event.title}}</h3>\n\n            <p>{{event.detail}}</p>\n        </div>\n    </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n    <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.NOTES">Notes</span></md-subheader>\n    <md-list-item class="md-2-line" ng-repeat="note in vm.notes" ng-click="dummyFunction()">\n        <div class="md-list-item-text">\n            <h3>{{note.title}}</h3>\n\n            <p>{{note.detail}}</p>\n        </div>\n    </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n    <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.QUICK_SETTINGS">Quick Settings</span></md-subheader>\n\n    <md-list-item>\n        <h3 translate="QUICKPANEL.NOTIFICATIONS">Notifications</h3>\n        <md-switch class="md-secondary" ng-model="vm.settings.notify" aria-label="Notifications" translate\n                   translate-attr-aria-label="QUICKPANEL.NOTIFICATIONS"></md-switch>\n    </md-list-item>\n\n    <md-list-item>\n        <h3 translate="QUICKPANEL.CLOUD_SYNC">Cloud Sync</h3>\n        <md-switch class="md-secondary" ng-model="vm.settings.cloud" aria-label="Cloud Sync" translate\n                   translate-attr-aria-label="QUICKPANEL.CLOUD_SYNC"></md-switch>\n    </md-list-item>\n\n    <md-list-item>\n        <h3 translate="QUICKPANEL.RETRO_THRUSTERS">Retro Thrusters</h3>\n        <md-switch class="md-secondary md-warn" ng-model="vm.settings.retro" aria-label="Retro Thrusters" translate\n                   translate-attr-aria-label="QUICKPANEL.RETRO_THRUSTERS"></md-switch>\n    </md-list-item>\n</md-list> --\x3e'),e.put("app/toolbar/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n    <form name="changePasswordForm" class="md-inline-form" novalidate>\n        <md-toolbar>\n            <div class="md-toolbar-tools">\n                <h2>Change Password</h2>\n                <span flex></span>\n                <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n                    <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n                </md-button>\n            </div>\n        </md-toolbar>\n        <md-dialog-content ms-scroll>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n            <md-input-container class="md-block" ng-if="vm.user.role == \'agent\'">\n                <label translate="TOOLBAR.OLD_PASSWORD">Old Password</label>\n                <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="TOOLBAR.OLD_PASSWORD" required>\n                <div ng-messages="changePasswordForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLBAR.NEW_PASSWORD">New Password</label>\n                <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate translate-attr-placeholder="TOOLBAR.NEW_PASSWORD" required>\n                <div ng-messages="changePasswordForm.password.$error" role="alert">\n                    <div ng-message="required">\n                        <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <md-input-container class="md-block">\n                <label translate="TOOLBAR.CONFIRM_PASSWORD">Confirm Password</label>\n                <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n                <div ng-messages="changePasswordForm.confirmPassword.$error" role="alert" multiple>\n                    <div ng-message="required">\n                        <span translate="TOOLBAR.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n                    </div>\n                    <div ng-message="passwordMatch">\n                        <span translate="TOOLBAR.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n                    </div>\n                </div>\n            </md-input-container>\n            <div class="error-list">\n                <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n                    <div>\n                        <span class="message">{{error.message}}</span>\n                        <span class="type">({{error.type}})</span>\n                    </div>\n                    <md-button class="md-icon-button">\n                        <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n                    </md-button>\n                </div>\n            </div>\n        </md-dialog-content>\n\n        <md-dialog-actions layout="row" layout-align="space-between center">\n            <div layout="row" layout-align="start center">\n                <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="changePasswordForm.$invalid || changePasswordForm.$pristine" aria-label="SAVE" translate="TOOLBAR.SAVE" translate-attr-aria-label="TOOLBAR.SAVE">\n                    SAVE\n                </md-button>\n            </div>\n        </md-dialog-actions>\n    </form>\n</md-dialog>'),e.put("app/toolbar/layouts/content-with-toolbar/toolbar.html",'<div layout="row" layout-align="space-between center">\n\n    <div layout="row" layout-align="start center">\n        <div class="logo" layout="row" layout-align="start center">\n            <span class="logo-image">F</span>\n            <span class="logo-text">MOTION</span>\n        </div>\n\n        <div class="toolbar-separator"></div>\n\n        <ms-shortcuts></ms-shortcuts>\n\n        <div class="toolbar-separator"></div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-mode="indeterminate" md-diameter="32">\n        </md-progress-circular>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide-sm>John Doe</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-sm></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent" ui-sref="app.pages_profile">\n                        <md-icon md-font-icon="icon-account" class="icon"></md-icon>\n                        <md-button>My Profile</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent" ui-sref="app.mail">\n                        <md-icon md-font-icon="icon-email" class="icon"></md-icon>\n                        <md-button>Inbox</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon"></md-icon>\n                        <md-menu id="user-status-menu">\n                            <md-button ng-click="$mdOpenMenu()" class="status" ng-class="vm.userStatus.class">\n                                {{vm.userStatus.title}}\n                            </md-button>\n                            <md-menu-content width="2">\n                                <md-menu-item class="status md-indent" ng-class="{\'selected\': status === vm.userStatus}" ng-repeat="status in vm.userStatusOptions">\n                                    <md-icon md-font-icon="{{status.icon}}" ng-style="{\'color\': status.color }" class="icon"></md-icon>\n                                    <md-button ng-click="vm.setUserStatus(status)">\n                                        {{status.title}}\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n                            <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n                            <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n        </md-button>\n    </div>\n</div>'),e.put("app/toolbar/layouts/horizontal-navigation/toolbar.html",'<div class="top-row" layout="row" layout-align="space-between center">\n\n    <div layout="row" layout-align="start center">\n        <div class="navigation-toggle" hide-gt-sm>\n            <md-button class="md-icon-button" ng-click="vm.toggleHorizontalMobileMenu()" aria-label="Toggle Mobile Navigation">\n                <md-icon md-font-icon="icon-menu"></md-icon>\n            </md-button>\n        </div>\n\n        <div class="logo" layout="row" layout-align="start center">\n            <span class="logo-image">F</span>\n            <span class="logo-text">MOTION</span>\n        </div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-mode="indeterminate" md-diameter="32">\n        </md-progress-circular>\n\n        <ms-shortcuts></ms-shortcuts>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide-sm>John Doe</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-sm></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent" ui-sref="app.pages_profile">\n                        <md-icon md-font-icon="icon-account" class="icon"></md-icon>\n                        <md-button>My Profile</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent" ui-sref="app.mail">\n                        <md-icon md-font-icon="icon-email" class="icon"></md-icon>\n                        <md-button>Inbox</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon"></md-icon>\n                        <md-menu id="user-status-menu">\n                            <md-button ng-click="$mdOpenMenu()" class="status" ng-class="vm.userStatus.class">\n                                {{vm.userStatus.title}}\n                            </md-button>\n                            <md-menu-content width="2">\n                                <md-menu-item class="status md-indent" ng-class="{\'selected\': status === vm.userStatus}" ng-repeat="status in vm.userStatusOptions">\n                                    <md-icon md-font-icon="{{status.icon}}" ng-style="{\'color\': status.color }" class="icon"></md-icon>\n                                    <md-button ng-click="vm.setUserStatus(status)">\n                                        {{status.title}}\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n                            <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n                            <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n        </md-button>\n    </div>\n</div>'),e.put("app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html",'<div layout="row" layout-align="start center">\n    <div layout="row" layout-align="start center" flex>\n\n        <div class="logo" layout="row" layout-align="start center">\n            <span class="logo-image">F</span>\n            <span class="logo-text">MOTION</span>\n        </div>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n            <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n        </md-button>\n\n        <md-button class="md-icon-button navigation-fold-toggle" hide show-gt-sm aria-label="Toggle navigation fold" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION_FOLD" ng-click="vm.toggleMsNavigationFolded()">\n            <md-icon class="s18" md-font-icon="icon-backburger"></md-icon>\n        </md-button>\n\n        <ms-shortcuts></ms-shortcuts>\n\n        <div class="toolbar-separator"></div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-mode="indeterminate" md-diameter="32">\n        </md-progress-circular>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide-sm>John Doe</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-sm></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent" ui-sref="app.pages_profile">\n                        <md-icon md-font-icon="icon-account" class="icon"></md-icon>\n                        <md-button>My Profile</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent" ui-sref="app.mail">\n                        <md-icon md-font-icon="icon-email" class="icon"></md-icon>\n                        <md-button>Inbox</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon"></md-icon>\n                        <md-menu id="user-status-menu">\n                            <md-button ng-click="$mdOpenMenu()" class="status" ng-class="vm.userStatus.class">\n                                {{vm.userStatus.title}}\n                            </md-button>\n                            <md-menu-content width="2">\n                                <md-menu-item class="status md-indent" ng-class="{\'selected\': status === vm.userStatus}" ng-repeat="status in vm.userStatusOptions">\n                                    <md-icon md-font-icon="{{status.icon}}" ng-style="{\'color\': status.color }" class="icon"></md-icon>\n                                    <md-button ng-click="vm.setUserStatus(status)">\n                                        {{status.title}}\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n                            <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n                            <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n        </md-button>\n    </div>\n</div>'),e.put("app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html",'<div layout="row" layout-align="start center">\n    <div layout="row" layout-align="start center" flex>\n        <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n            <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n        </md-button>\n\n        <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <ms-shortcuts></ms-shortcuts>\n\n        <div class="toolbar-separator"></div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-mode="indeterminate" md-diameter="32">\n        </md-progress-circular>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide-sm>John Doe</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-sm></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent" ui-sref="app.pages_profile">\n                        <md-icon md-font-icon="icon-account" class="icon"></md-icon>\n                        <md-button>My Profile</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent" ui-sref="app.mail">\n                        <md-icon md-font-icon="icon-email" class="icon"></md-icon>\n                        <md-button>Inbox</md-button>\n                    </md-menu-item>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon"></md-icon>\n                        <md-menu id="user-status-menu">\n                            <md-button ng-click="$mdOpenMenu()" class="status" ng-class="vm.userStatus.class">\n                                {{vm.userStatus.title}}\n                            </md-button>\n                            <md-menu-content width="2">\n                                <md-menu-item class="status md-indent" ng-class="{\'selected\': status === vm.userStatus}" ng-repeat="status in vm.userStatusOptions">\n                                    <md-icon md-font-icon="{{status.icon}}" ng-style="{\'color\': status.color }" class="icon"></md-icon>\n                                    <md-button ng-click="vm.setUserStatus(status)">\n                                        {{status.title}}\n                                    </md-button>\n                                </md-menu-item>\n                            </md-menu-content>\n                        </md-menu>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n                            <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n                            <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n        </md-button>\n    </div>\n</div>'),e.put("app/toolbar/layouts/vertical-navigation/toolbar.html",'<div layout="row" layout-align="start center">\n    <div layout="row" layout-align="start center" flex>\n        <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n            <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n        </md-button>\n\n        <ms-shortcuts ng-if="!vm.isAgent()"></ms-shortcuts>\n\n        <div class="toolbar-separator"></div>\n\n        <div ng-if="vm.license.demo" class="blink md-padding">\n            <span class="md-warn-fg" translate="TOOLBAR.TRIAL_VERSION">Trial Version</span>\n        </div>\n    </div>\n\n    <div layout="row" layout-align="start center">\n        <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-diameter="32"></md-progress-circular>\n\n        <div class="h5 padding-10" ng-if="vm.isAgent()">\n            <div>\n                <timer ng-if="vm.user.lastLoginAt" start-time="vm.user.lastLoginAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n                <md-tooltip>{{\'TOOLBAR.LOGIN_TIME\' | translate}}</md-tooltip>\n                <md-icon md-font-icon="icon-timelapse" class="icon s16"></md-icon>\n            </div>\n            <div ng-if="vm.user.voicePause">\n                <timer start-time="vm.user.lastPauseAt" interval="1000">{{hhours}}:{{mminutes}}:{{sseconds}}</timer>\n                <md-tooltip>{{\'TOOLBAR.PAUSE_TIME\' | translate}}</md-tooltip>\n                <md-icon md-font-icon="icon-coffee" class="icon s16"></md-icon>\n            </div>\n            <div ng-if="vm.user.voicePause">\n                <span class="blink red-fg">{{vm.user.pauseType || \'dafault\' | uppercase}}</span>\n            </div>\n        </div>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu-bar id="user-menu">\n            <md-menu md-position-mode="left bottom">\n                <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n                    <div layout="row" layout-align="space-between center">\n                        <div class="avatar-wrapper">\n                            <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.jpg" ng-if="!vm.user.userpic">\n                            <img md-menu-align-target class="avatar" ng-src="api/users/{{vm.user.id}}/avatar" ng-if="vm.user.userpic">\n                            <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16">\n                            </md-icon>\n                        </div>\n                        <span class="username" hide show-gt-sm>{{vm.user.fullname}}</span>\n                        <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-xs></md-icon>\n                    </div>\n                </md-button>\n\n                <md-menu-content width="3">\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-key-variant" class="icon"></md-icon>\n                        <md-button ng-click="vm.changePassword($event)">Change Password</md-button>\n                    </md-menu-item>\n\n                    <md-menu-divider></md-menu-divider>\n\n                    <md-menu-item class="md-indent">\n                        <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n                        <md-button ng-click="vm.logout()">Logout</md-button>\n                    </md-menu-item>\n                </md-menu-content>\n            </md-menu>\n        </md-menu-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-button ng-if="vm.user.role === \'agent\'" class="language-button" ng-click="vm.preview($event)" aria-label="Language" md-menu-origin md-menu-align-target>\n            <md-icon md-font-icon="icon-fire" class="icon"></md-icon>\n            <md-tooltip><span translate="TOOLBAR.PREVIEW">Preview</span></md-tooltip>\n        </md-button>\n\n        <ms-search-bar ng-if="vm.user.role !== \'agent\'" on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n        <div class="toolbar-separator"></div>\n\n        <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target">\n            <md-button class="language-button" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n                <div layout="row" layout-align="center center">\n                    <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n                    <span class="iso">{{vm.selectedLanguage.code}}</span>\n                </div>\n            </md-button>\n\n            <md-menu-content width="3" id="language-menu-content">\n                <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n                    <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n                        <span layout="row" layout-align="start center">\n              <img class="flag" ng-src="assets/images/flags/{{lang.flag}}.png">\n              <span translate="{{lang.translation}}">{{lang.title}}</span>\n                        </span>\n                    </md-button>\n                </md-menu-item>\n            </md-menu-content>\n        </md-menu>\n\n\n        <div class="toolbar-separator"></div>\n\n        <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n            <md-icon ng-if="!vm.license.gray" md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n            <md-icon ng-if="vm.license.gray" md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n        </md-button>\n    </div>\n</div>')}]);
\ No newline at end of file
diff --git a/public/scripts/vendor.3efb0794.js b/public/scripts/vendor.3efb0794.js
new file mode 100644 (file)
index 0000000..fcfbbc6
--- /dev/null
@@ -0,0 +1 @@
+function validElementString(e){try{return 0!==angular.element(e).length}catch(e){return!1}}function registerTextAngularTool(e,t){if(!e||""===e||taTools.hasOwnProperty(e))throw"textAngular Error: A unique name is required for a Tool Definition";if(t.display&&(""===t.display||!validElementString(t.display))||!t.display&&!t.buttontext&&!t.iconclass)throw'textAngular Error: Tool Definition for "'+e+'" does not have a valid display/iconclass/buttontext value';taTools[e]=t}!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=re.type(e);return"function"!==n&&!re.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function i(e,t,n){if(re.isFunction(t))return re.grep(e,function(e,i){return!!t.call(e,i,e)!==n});if(t.nodeType)return re.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(fe.test(t))return re.filter(t,e,n);t=re.filter(t,e)}return re.grep(e,function(e){return J.call(t,e)>-1!==n})}function r(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function o(e){var t={};return re.each(e.match(ye)||[],function(e,n){t[n]=!0}),t}function a(){K.removeEventListener("DOMContentLoaded",a),e.removeEventListener("load",a),re.ready()}function s(){this.expando=re.expando+s.uid++}function l(e,t,n){var i;if(void 0===n&&1===e.nodeType)if(i="data-"+t.replace(Ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(i))){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:Se.test(n)?re.parseJSON(n):n)}catch(e){}xe.set(e,t,n)}else n=void 0;return n}function c(e,t,n,i){var r,o=1,a=20,s=i?function(){return i.cur()}:function(){return re.css(e,t,"")},l=s(),c=n&&n[3]||(re.cssNumber[t]?"":"px"),u=(re.cssNumber[t]||"px"!==c&&+l)&&De.exec(re.css(e,t));if(u&&u[3]!==c){c=c||u[3],n=n||[],u=+l||1;do{u/=o=o||".5",re.style(e,t,u+c)}while(o!==(o=s()/l)&&1!==o&&--a)}return n&&(u=+u||+l||0,r=n[1]?u+(n[1]+1)*n[2]:+n[2],i&&(i.unit=c,i.start=u,i.end=r)),r}function u(e,t){var n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&re.nodeName(e,t)?re.merge([e],n):n}function d(e,t){for(var n=0,i=e.length;n<i;n++)Ce.set(e[n],"globalEval",!t||Ce.get(t[n],"globalEval"))}function h(e,t,n,i,r){for(var o,a,s,l,c,h,p=t.createDocumentFragment(),f=[],m=0,g=e.length;m<g;m++)if((o=e[m])||0===o)if("object"===re.type(o))re.merge(f,o.nodeType?[o]:o);else if(Oe.test(o)){for(a=a||p.appendChild(t.createElement("div")),s=(Pe.exec(o)||["",""])[1].toLowerCase(),l=Ne[s]||Ne._default,a.innerHTML=l[1]+re.htmlPrefilter(o)+l[2],h=l[0];h--;)a=a.lastChild;re.merge(f,a.childNodes),(a=p.firstChild).textContent=""}else f.push(t.createTextNode(o));for(p.textContent="",m=0;o=f[m++];)if(i&&re.inArray(o,i)>-1)r&&r.push(o);else if(c=re.contains(o.ownerDocument,o),a=u(p.appendChild(o),"script"),c&&d(a),n)for(h=0;o=a[h++];)$e.test(o.type||"")&&n.push(o);return p}function p(){return!0}function f(){return!1}function m(){try{return K.activeElement}catch(e){}}function g(e,t,n,i,r,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(i=i||n,n=void 0);for(s in t)g(e,s,n,i,t[s],o);return e}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"==typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),!1===r)r=f;else if(!r)return e;return 1===o&&(a=r,(r=function(e){return re().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=re.guid++)),e.each(function(){re.event.add(this,t,r,i,n)})}function v(e,t){return re.nodeName(e,"table")&&re.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function b(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function y(e){var t=Ue.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _(e,t){var n,i,r,o,a,s,l,c;if(1===t.nodeType){if(Ce.hasData(e)&&(o=Ce.access(e),a=Ce.set(t,o),c=o.events)){delete a.handle,a.events={};for(r in c)for(n=0,i=c[r].length;n<i;n++)re.event.add(t,r,c[r][n])}xe.hasData(e)&&(s=xe.access(e),l=re.extend({},s),xe.set(t,l))}}function w(e,t){var n=t.nodeName.toLowerCase();"input"===n&&Me.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function A(e,t,n,i){t=X.apply([],t);var r,o,a,s,l,c,d=0,p=e.length,f=p-1,m=t[0],g=re.isFunction(m);if(g||p>1&&"string"==typeof m&&!ie.checkClone&&He.test(m))return e.each(function(r){var o=e.eq(r);g&&(t[0]=m.call(this,r,o.html())),A(o,t,n,i)});if(p&&(r=h(t,e[0].ownerDocument,!1,e,i),o=r.firstChild,1===r.childNodes.length&&(r=o),o||i)){for(s=(a=re.map(u(r,"script"),b)).length;d<p;d++)l=r,d!==f&&(l=re.clone(l,!0,!0),s&&re.merge(a,u(l,"script"))),n.call(e[d],l,d);if(s)for(c=a[a.length-1].ownerDocument,re.map(a,y),d=0;d<s;d++)l=a[d],$e.test(l.type||"")&&!Ce.access(l,"globalEval")&&re.contains(c,l)&&(l.src?re._evalUrl&&re._evalUrl(l.src):re.globalEval(l.textContent.replace(je,"")))}return e}function C(e,t,n){for(var i,r=t?re.filter(t,e):e,o=0;null!=(i=r[o]);o++)n||1!==i.nodeType||re.cleanData(u(i)),i.parentNode&&(n&&re.contains(i.ownerDocument,i)&&d(u(i,"script")),i.parentNode.removeChild(i));return e}function x(e,t){var n=re(t.createElement(e)).appendTo(t.body),i=re.css(n[0],"display");return n.detach(),i}function S(e){var t=K,n=ze[e];return n||("none"!==(n=x(e,t))&&n||((t=(We=(We||re("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement))[0].contentDocument).write(),t.close(),n=x(e,t),We.detach()),ze[e]=n),n}function E(e,t,n){var i,r,o,a,s=e.style;return n=n||Ye(e),""!==(a=n?n.getPropertyValue(t)||n[t]:void 0)&&void 0!==a||re.contains(e.ownerDocument,e)||(a=re.style(e,t)),n&&!ie.pixelMarginRight()&&Ve.test(a)&&qe.test(t)&&(i=s.width,r=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=i,s.minWidth=r,s.maxWidth=o),void 0!==a?a+"":a}function T(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}function D(e){if(e in tt)return e;for(var t=e[0].toUpperCase()+e.slice(1),n=et.length;n--;)if((e=et[n]+t)in tt)return e}function I(e,t,n){var i=De.exec(t);return i?Math.max(0,i[2]-(n||0))+(i[3]||"px"):t}function k(e,t,n,i,r){for(var o=n===(i?"border":"content")?4:"width"===t?1:0,a=0;o<4;o+=2)"margin"===n&&(a+=re.css(e,n+Ie[o],!0,r)),i?("content"===n&&(a-=re.css(e,"padding"+Ie[o],!0,r)),"margin"!==n&&(a-=re.css(e,"border"+Ie[o]+"Width",!0,r))):(a+=re.css(e,"padding"+Ie[o],!0,r),"padding"!==n&&(a+=re.css(e,"border"+Ie[o]+"Width",!0,r)));return a}function M(e,t,n){var i=!0,r="width"===t?e.offsetWidth:e.offsetHeight,o=Ye(e),a="border-box"===re.css(e,"boxSizing",!1,o);if(r<=0||null==r){if(((r=E(e,t,o))<0||null==r)&&(r=e.style[t]),Ve.test(r))return r;i=a&&(ie.boxSizingReliable()||r===e.style[t]),r=parseFloat(r)||0}return r+k(e,t,n||(a?"border":"content"),i,o)+"px"}function P(e,t){for(var n,i,r,o=[],a=0,s=e.length;a<s;a++)(i=e[a]).style&&(o[a]=Ce.get(i,"olddisplay"),n=i.style.display,t?(o[a]||"none"!==n||(i.style.display=""),""===i.style.display&&ke(i)&&(o[a]=Ce.access(i,"olddisplay",S(i.nodeName)))):(r=ke(i),"none"===n&&r||Ce.set(i,"olddisplay",r?n:re.css(i,"display"))));for(a=0;a<s;a++)(i=e[a]).style&&(t&&"none"!==i.style.display&&""!==i.style.display||(i.style.display=t?o[a]||"":"none"));return e}function $(e,t,n,i,r){return new $.prototype.init(e,t,n,i,r)}function N(){return e.setTimeout(function(){nt=void 0}),nt=re.now()}function O(e,t){var n,i=0,r={height:e};for(t=t?1:0;i<4;i+=2-t)r["margin"+(n=Ie[i])]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function R(e,t,n){for(var i,r=(B.tweeners[t]||[]).concat(B.tweeners["*"]),o=0,a=r.length;o<a;o++)if(i=r[o].call(n,t,e))return i}function L(e,t,n){var i,r,o,a,s,l,c,u=this,d={},h=e.style,p=e.nodeType&&ke(e),f=Ce.get(e,"fxshow");n.queue||(null==(s=re._queueHooks(e,"fx")).unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,re.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],"inline"===("none"===(c=re.css(e,"display"))?Ce.get(e,"olddisplay")||S(e.nodeName):c)&&"none"===re.css(e,"float")&&(h.display="inline-block")),n.overflow&&(h.overflow="hidden",u.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]}));for(i in t)if(r=t[i],rt.exec(r)){if(delete t[i],o=o||"toggle"===r,r===(p?"hide":"show")){if("show"!==r||!f||void 0===f[i])continue;p=!0}d[i]=f&&f[i]||re.style(e,i)}else c=void 0;if(re.isEmptyObject(d))"inline"===("none"===c?S(e.nodeName):c)&&(h.display=c);else{f?"hidden"in f&&(p=f.hidden):f=Ce.access(e,"fxshow",{}),o&&(f.hidden=!p),p?re(e).show():u.done(function(){re(e).hide()}),u.done(function(){var t;Ce.remove(e,"fxshow");for(t in d)re.style(e,t,d[t])});for(i in d)a=R(p?f[i]:0,i,u),i in f||(f[i]=a.start,p&&(a.end=a.start,a.start="width"===i||"height"===i?1:0))}}function G(e,t){var n,i,r,o,a;for(n in e)if(i=re.camelCase(n),r=t[i],o=e[n],re.isArray(o)&&(r=o[1],o=e[n]=o[0]),n!==i&&(e[i]=o,delete e[n]),(a=re.cssHooks[i])&&"expand"in a){o=a.expand(o),delete e[i];for(n in o)n in e||(e[n]=o[n],t[n]=r)}else t[i]=r}function B(e,t,n){var i,r,o=0,a=B.prefilters.length,s=re.Deferred().always(function(){delete l.elem}),l=function(){if(r)return!1;for(var t=nt||N(),n=Math.max(0,c.startTime+c.duration-t),i=1-(n/c.duration||0),o=0,a=c.tweens.length;o<a;o++)c.tweens[o].run(i);return s.notifyWith(e,[c,i,n]),i<1&&a?n:(s.resolveWith(e,[c]),!1)},c=s.promise({elem:e,props:re.extend({},t),opts:re.extend(!0,{specialEasing:{},easing:re.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||N(),duration:n.duration,tweens:[],createTween:function(t,n){var i=re.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(i),i},stop:function(t){var n=0,i=t?c.tweens.length:0;if(r)return this;for(r=!0;n<i;n++)c.tweens[n].run(1);return t?(s.notifyWith(e,[c,1,0]),s.resolveWith(e,[c,t])):s.rejectWith(e,[c,t]),this}}),u=c.props;for(G(u,c.opts.specialEasing);o<a;o++)if(i=B.prefilters[o].call(c,e,u,c.opts))return re.isFunction(i.stop)&&(re._queueHooks(c.elem,c.opts.queue).stop=re.proxy(i.stop,i)),i;return re.map(u,R,c),re.isFunction(c.opts.start)&&c.opts.start.call(e,c),re.fx.timer(re.extend(l,{elem:e,anim:c,queue:c.opts.queue})),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function F(e){return e.getAttribute&&e.getAttribute("class")||""}function H(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var i,r=0,o=t.toLowerCase().match(ye)||[];if(re.isFunction(n))for(;i=o[r++];)"+"===i[0]?(i=i.slice(1)||"*",(e[i]=e[i]||[]).unshift(n)):(e[i]=e[i]||[]).push(n)}}function U(e,t,n,i){function r(s){var l;return o[s]=!0,re.each(e[s]||[],function(e,s){var c=s(t,n,i);return"string"!=typeof c||a||o[c]?a?!(l=c):void 0:(t.dataTypes.unshift(c),r(c),!1)}),l}var o={},a=e===xt;return r(t.dataTypes[0])||!o["*"]&&r("*")}function j(e,t){var n,i,r=re.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((r[n]?e:i||(i={}))[n]=t[n]);return i&&re.extend(!0,e,i),e}function W(e,t,n){for(var i,r,o,a,s=e.contents,l=e.dataTypes;"*"===l[0];)l.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(r in s)if(s[r]&&s[r].test(i)){l.unshift(r);break}if(l[0]in n)o=l[0];else{for(r in n){if(!l[0]||e.converters[r+" "+l[0]]){o=r;break}a||(a=r)}o=o||a}if(o)return o!==l[0]&&l.unshift(o),n[o]}function z(e,t,n,i){var r,o,a,s,l,c={},u=e.dataTypes.slice();if(u[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(o=u.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&i&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=u.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(!(a=c[l+" "+o]||c["* "+o]))for(r in c)if((s=r.split(" "))[1]===o&&(a=c[l+" "+s[0]]||c["* "+s[0]])){!0===a?a=c[r]:!0!==c[r]&&(o=s[0],u.unshift(s[1]));break}if(!0!==a)if(a&&e.throws)t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}function q(e,t,n,i){var r;if(re.isArray(t))re.each(t,function(t,r){n||Dt.test(e)?i(e,r):q(e+"["+("object"==typeof r&&null!=r?t:"")+"]",r,n,i)});else if(n||"object"!==re.type(t))i(e,t);else for(r in t)q(e+"["+r+"]",t[r],n,i)}function V(e){return re.isWindow(e)?e:9===e.nodeType&&e.defaultView}var Y=[],K=e.document,Q=Y.slice,X=Y.concat,Z=Y.push,J=Y.indexOf,ee={},te=ee.toString,ne=ee.hasOwnProperty,ie={},re=function(e,t){return new re.fn.init(e,t)},oe=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ae=/^-ms-/,se=/-([\da-z])/gi,le=function(e,t){return t.toUpperCase()};re.fn=re.prototype={jquery:"2.2.4",constructor:re,selector:"",length:0,toArray:function(){return Q.call(this)},get:function(e){return null!=e?e<0?this[e+this.length]:this[e]:Q.call(this)},pushStack:function(e){var t=re.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e){return re.each(this,e)},map:function(e){return this.pushStack(re.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(Q.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:Z,sort:Y.sort,splice:Y.splice},re.extend=re.fn.extend=function(){var e,t,n,i,r,o,a=arguments[0]||{},s=1,l=arguments.length,c=!1;for("boolean"==typeof a&&(c=a,a=arguments[s]||{},s++),"object"==typeof a||re.isFunction(a)||(a={}),s===l&&(a=this,s--);s<l;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(i=e[t])&&(c&&i&&(re.isPlainObject(i)||(r=re.isArray(i)))?(r?(r=!1,o=n&&re.isArray(n)?n:[]):o=n&&re.isPlainObject(n)?n:{},a[t]=re.extend(c,o,i)):void 0!==i&&(a[t]=i));return a},re.extend({expando:"jQuery"+("2.2.4"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===re.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){var t=e&&e.toString();return!re.isArray(e)&&t-parseFloat(t)+1>=0},isPlainObject:function(e){var t;if("object"!==re.type(e)||e.nodeType||re.isWindow(e))return!1;if(e.constructor&&!ne.call(e,"constructor")&&!ne.call(e.constructor.prototype||{},"isPrototypeOf"))return!1;for(t in e);return void 0===t||ne.call(e,t)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ee[te.call(e)]||"object":typeof e},globalEval:function(e){var t,n=eval;(e=re.trim(e))&&(1===e.indexOf("use strict")?((t=K.createElement("script")).text=e,K.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(ae,"ms-").replace(se,le)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var i,r=0;if(n(e))for(i=e.length;r<i&&!1!==t.call(e[r],r,e[r]);r++);else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(oe,"")},makeArray:function(e,t){var i=t||[];return null!=e&&(n(Object(e))?re.merge(i,"string"==typeof e?[e]:e):Z.call(i,e)),i},inArray:function(e,t,n){return null==t?-1:J.call(t,e,n)},merge:function(e,t){for(var n=+t.length,i=0,r=e.length;i<n;i++)e[r++]=t[i];return e.length=r,e},grep:function(e,t,n){for(var i=[],r=0,o=e.length,a=!n;r<o;r++)!t(e[r],r)!==a&&i.push(e[r]);return i},map:function(e,t,i){var r,o,a=0,s=[];if(n(e))for(r=e.length;a<r;a++)null!=(o=t(e[a],a,i))&&s.push(o);else for(a in e)null!=(o=t(e[a],a,i))&&s.push(o);return X.apply([],s)},guid:1,proxy:function(e,t){var n,i,r;if("string"==typeof t&&(n=e[t],t=e,e=n),re.isFunction(e))return i=Q.call(arguments,2),r=function(){return e.apply(t||this,i.concat(Q.call(arguments)))},r.guid=e.guid=e.guid||re.guid++,r},now:Date.now,support:ie}),"function"==typeof Symbol&&(re.fn[Symbol.iterator]=Y[Symbol.iterator]),re.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){ee["[object "+t+"]"]=t.toLowerCase()});var ce=function(e){function t(e,t,n,i){var r,o,a,s,c,d,h,p,f=t&&t.ownerDocument,m=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==m&&9!==m&&11!==m)return n;if(!i&&((t?t.ownerDocument||t:G)!==k&&I(t),t=t||k,P)){if(11!==m&&(d=me.exec(e)))if(r=d[1]){if(9===m){if(!(a=t.getElementById(r)))return n;if(a.id===r)return n.push(a),n}else if(f&&(a=f.getElementById(r))&&R(t,a)&&a.id===r)return n.push(a),n}else{if(d[2])return Q.apply(n,t.getElementsByTagName(e)),n;if((r=d[3])&&y.getElementsByClassName&&t.getElementsByClassName)return Q.apply(n,t.getElementsByClassName(r)),n}if(y.qsa&&!j[e+" "]&&(!$||!$.test(e))){if(1!==m)f=t,p=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(ve,"\\$&"):t.setAttribute("id",s=L),o=(h=C(e)).length,c=ue.test(s)?"#"+s:"[id='"+s+"']";o--;)h[o]=c+" "+u(h[o]);p=h.join(","),f=ge.test(e)&&l(t.parentNode)||t}if(p)try{return Q.apply(n,f.querySelectorAll(p)),n}catch(e){}finally{s===L&&t.removeAttribute("id")}}}return S(e.replace(oe,"$1"),t,n,i)}function n(){function e(n,i){return t.push(n+" ")>_.cacheLength&&delete e[t.shift()],e[n+" "]=i}var t=[];return e}function i(e){return e[L]=!0,e}function r(e){var t=k.createElement("div");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),i=n.length;i--;)_.attrHandle[n[i]]=t}function a(e,t){var n=t&&e,i=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||z)-(~e.sourceIndex||z);if(i)return i;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return i(function(t){return t=+t,i(function(n,i){for(var r,o=e([],n.length,t),a=o.length;a--;)n[r=o[a]]&&(n[r]=!(i[r]=n[r]))})})}function l(e){return e&&void 0!==e.getElementsByTagName&&e}function c(){}function u(e){for(var t=0,n=e.length,i="";t<n;t++)i+=e[t].value;return i}function d(e,t,n){var i=t.dir,r=n&&"parentNode"===i,o=F++;return t.first?function(t,n,o){for(;t=t[i];)if(1===t.nodeType||r)return e(t,n,o)}:function(t,n,a){var s,l,c,u=[B,o];if(a){for(;t=t[i];)if((1===t.nodeType||r)&&e(t,n,a))return!0}else for(;t=t[i];)if(1===t.nodeType||r){if(c=t[L]||(t[L]={}),l=c[t.uniqueID]||(c[t.uniqueID]={}),(s=l[i])&&s[0]===B&&s[1]===o)return u[2]=s[2];if(l[i]=u,u[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,i){for(var r=e.length;r--;)if(!e[r](t,n,i))return!1;return!0}:e[0]}function p(e,n,i){for(var r=0,o=n.length;r<o;r++)t(e,n[r],i);return i}function f(e,t,n,i,r){for(var o,a=[],s=0,l=e.length,c=null!=t;s<l;s++)(o=e[s])&&(n&&!n(o,i,r)||(a.push(o),c&&t.push(s)));return a}function m(e,t,n,r,o,a){return r&&!r[L]&&(r=m(r)),o&&!o[L]&&(o=m(o,a)),i(function(i,a,s,l){var c,u,d,h=[],m=[],g=a.length,v=i||p(t||"*",s.nodeType?[s]:s,[]),b=!e||!i&&t?v:f(v,h,e,s,l),y=n?o||(i?e:g||r)?[]:a:b;if(n&&n(b,y,s,l),r)for(c=f(y,m),r(c,[],s,l),u=c.length;u--;)(d=c[u])&&(y[m[u]]=!(b[m[u]]=d));if(i){if(o||e){if(o){for(c=[],u=y.length;u--;)(d=y[u])&&c.push(b[u]=d);o(null,y=[],c,l)}for(u=y.length;u--;)(d=y[u])&&(c=o?Z(i,d):h[u])>-1&&(i[c]=!(a[c]=d))}}else y=f(y===a?y.splice(g,y.length):y),o?o(null,a,y,l):Q.apply(a,y)})}function g(e){for(var t,n,i,r=e.length,o=_.relative[e[0].type],a=o||_.relative[" "],s=o?1:0,l=d(function(e){return e===t},a,!0),c=d(function(e){return Z(t,e)>-1},a,!0),p=[function(e,n,i){var r=!o&&(i||n!==E)||((t=n).nodeType?l(e,n,i):c(e,n,i));return t=null,r}];s<r;s++)if(n=_.relative[e[s].type])p=[d(h(p),n)];else{if((n=_.filter[e[s].type].apply(null,e[s].matches))[L]){for(i=++s;i<r&&!_.relative[e[i].type];i++);return m(s>1&&h(p),s>1&&u(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(oe,"$1"),n,s<i&&g(e.slice(s,i)),i<r&&g(e=e.slice(i)),i<r&&u(e))}p.push(n)}return h(p)}function v(e,n){var r=n.length>0,o=e.length>0,a=function(i,a,s,l,c){var u,d,h,p=0,m="0",g=i&&[],v=[],b=E,y=i||o&&_.find.TAG("*",c),w=B+=null==b?1:Math.random()||.1,A=y.length;for(c&&(E=a===k||a||c);m!==A&&null!=(u=y[m]);m++){if(o&&u){for(d=0,a||u.ownerDocument===k||(I(u),s=!P);h=e[d++];)if(h(u,a||k,s)){l.push(u);break}c&&(B=w)}r&&((u=!h&&u)&&p--,i&&g.push(u))}if(p+=m,r&&m!==p){for(d=0;h=n[d++];)h(g,v,a,s);if(i){if(p>0)for(;m--;)g[m]||v[m]||(v[m]=Y.call(l));v=f(v)}Q.apply(l,v),c&&!i&&v.length>0&&p+n.length>1&&t.uniqueSort(l)}return c&&(B=w,E=b),g};return r?i(a):a}var b,y,_,w,A,C,x,S,E,T,D,I,k,M,P,$,N,O,R,L="sizzle"+1*new Date,G=e.document,B=0,F=0,H=n(),U=n(),j=n(),W=function(e,t){return e===t&&(D=!0),0},z=1<<31,q={}.hasOwnProperty,V=[],Y=V.pop,K=V.push,Q=V.push,X=V.slice,Z=function(e,t){for(var n=0,i=e.length;n<i;n++)if(e[n]===t)return n;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ee="[\\x20\\t\\r\\n\\f]",te="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ne="\\["+ee+"*("+te+")(?:"+ee+"*([*^$|!~]?=)"+ee+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+te+"))|)"+ee+"*\\]",ie=":("+te+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ne+")*)|.*)\\)|)",re=new RegExp(ee+"+","g"),oe=new RegExp("^"+ee+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ee+"+$","g"),ae=new RegExp("^"+ee+"*,"+ee+"*"),se=new RegExp("^"+ee+"*([>+~]|"+ee+")"+ee+"*"),le=new RegExp("="+ee+"*([^\\]'\"]*?)"+ee+"*\\]","g"),ce=new RegExp(ie),ue=new RegExp("^"+te+"$"),de={ID:new RegExp("^#("+te+")"),CLASS:new RegExp("^\\.("+te+")"),TAG:new RegExp("^("+te+"|[*])"),ATTR:new RegExp("^"+ne),PSEUDO:new RegExp("^"+ie),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ee+"*(even|odd|(([+-]|)(\\d*)n|)"+ee+"*(?:([+-]|)"+ee+"*(\\d+)|))"+ee+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+ee+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ee+"*((?:-\\d)?\\d*)"+ee+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,pe=/^h\d$/i,fe=/^[^{]+\{\s*\[native \w/,me=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ge=/[+~]/,ve=/'|\\/g,be=new RegExp("\\\\([\\da-f]{1,6}"+ee+"?|("+ee+")|.)","ig"),ye=function(e,t,n){var i="0x"+t-65536;return i!==i||n?t:i<0?String.fromCharCode(i+65536):String.fromCharCode(i>>10|55296,1023&i|56320)},_e=function(){I()};try{Q.apply(V=X.call(G.childNodes),G.childNodes),V[G.childNodes.length].nodeType}catch(e){Q={apply:V.length?function(e,t){K.apply(e,X.call(t))}:function(e,t){for(var n=e.length,i=0;e[n++]=t[i++];);e.length=n-1}}}y=t.support={},A=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},I=t.setDocument=function(e){var t,n,i=e?e.ownerDocument||e:G;return i!==k&&9===i.nodeType&&i.documentElement?(k=i,M=k.documentElement,P=!A(k),(n=k.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",_e,!1):n.attachEvent&&n.attachEvent("onunload",_e)),y.attributes=r(function(e){return e.className="i",!e.getAttribute("className")}),y.getElementsByTagName=r(function(e){return e.appendChild(k.createComment("")),!e.getElementsByTagName("*").length}),y.getElementsByClassName=fe.test(k.getElementsByClassName),y.getById=r(function(e){return M.appendChild(e).id=L,!k.getElementsByName||!k.getElementsByName(L).length}),y.getById?(_.find.ID=function(e,t){if(void 0!==t.getElementById&&P){var n=t.getElementById(e);return n?[n]:[]}},_.filter.ID=function(e){var t=e.replace(be,ye);return function(e){return e.getAttribute("id")===t}}):(delete _.find.ID,_.filter.ID=function(e){var t=e.replace(be,ye);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),_.find.TAG=y.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):y.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,i=[],r=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[r++];)1===n.nodeType&&i.push(n);return i}return o},_.find.CLASS=y.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&P)return t.getElementsByClassName(e)},N=[],$=[],(y.qsa=fe.test(k.querySelectorAll))&&(r(function(e){M.appendChild(e).innerHTML="<a id='"+L+"'></a><select id='"+L+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&$.push("[*^$]="+ee+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||$.push("\\["+ee+"*(?:value|"+J+")"),e.querySelectorAll("[id~="+L+"-]").length||$.push("~="),e.querySelectorAll(":checked").length||$.push(":checked"),e.querySelectorAll("a#"+L+"+*").length||$.push(".#.+[+~]")}),r(function(e){var t=k.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&$.push("name"+ee+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||$.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),$.push(",.*:")})),(y.matchesSelector=fe.test(O=M.matches||M.webkitMatchesSelector||M.mozMatchesSelector||M.oMatchesSelector||M.msMatchesSelector))&&r(function(e){y.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),N.push("!=",ie)}),$=$.length&&new RegExp($.join("|")),N=N.length&&new RegExp(N.join("|")),t=fe.test(M.compareDocumentPosition),R=t||fe.test(M.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):e.compareDocumentPosition&&16&e.compareDocumentPosition(i)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},W=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!y.sortDetached&&t.compareDocumentPosition(e)===n?e===k||e.ownerDocument===G&&R(G,e)?-1:t===k||t.ownerDocument===G&&R(G,t)?1:T?Z(T,e)-Z(T,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,i=0,r=e.parentNode,o=t.parentNode,s=[e],l=[t];if(!r||!o)return e===k?-1:t===k?1:r?-1:o?1:T?Z(T,e)-Z(T,t):0;if(r===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;s[i]===l[i];)i++;return i?a(s[i],l[i]):s[i]===G?-1:l[i]===G?1:0},k):k},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==k&&I(e),n=n.replace(le,"='$1']"),y.matchesSelector&&P&&!j[n+" "]&&(!N||!N.test(n))&&(!$||!$.test(n)))try{var i=O.call(e,n);if(i||y.disconnectedMatch||e.document&&11!==e.document.nodeType)return i}catch(e){}return t(n,k,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==k&&I(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==k&&I(e);var n=_.attrHandle[t.toLowerCase()],i=n&&q.call(_.attrHandle,t.toLowerCase())?n(e,t,!P):void 0;return void 0!==i?i:y.attributes||!P?e.getAttribute(t):(i=e.getAttributeNode(t))&&i.specified?i.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],i=0,r=0;if(D=!y.detectDuplicates,T=!y.sortStable&&e.slice(0),e.sort(W),D){for(;t=e[r++];)t===e[r]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return T=null,e},w=t.getText=function(e){var t,n="",i=0,r=e.nodeType;if(r){if(1===r||9===r||11===r){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=w(e)}else if(3===r||4===r)return e.nodeValue}else for(;t=e[i++];)n+=w(t);return n},(_=t.selectors={cacheLength:50,createPseudo:i,match:de,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,ye),e[3]=(e[3]||e[4]||e[5]||"").replace(be,ye),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return de.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&ce.test(n)&&(t=C(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,ye).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=H[e+" "];return t||(t=new RegExp("(^|"+ee+")"+e+"("+ee+"|$)"))&&H(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,i){return function(r){var o=t.attr(r,e);return null==o?"!="===n:!n||(o+="","="===n?o===i:"!="===n?o!==i:"^="===n?i&&0===o.indexOf(i):"*="===n?i&&o.indexOf(i)>-1:"$="===n?i&&o.slice(-i.length)===i:"~="===n?(" "+o.replace(re," ")+" ").indexOf(i)>-1:"|="===n&&(o===i||o.slice(0,i.length+1)===i+"-"))}},CHILD:function(e,t,n,i,r){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===i&&0===r?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,h,p,f,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),b=!l&&!s,y=!1;if(g){if(o){for(;m;){for(h=t;h=h[m];)if(s?h.nodeName.toLowerCase()===v:1===h.nodeType)return!1;f=m="only"===e&&!f&&"nextSibling"}return!0}if(f=[a?g.firstChild:g.lastChild],a&&b){for(y=(p=(c=(u=(d=(h=g)[L]||(h[L]={}))[h.uniqueID]||(d[h.uniqueID]={}))[e]||[])[0]===B&&c[1])&&c[2],h=p&&g.childNodes[p];h=++p&&h&&h[m]||(y=p=0)||f.pop();)if(1===h.nodeType&&++y&&h===t){u[e]=[B,p,y];break}}else if(b&&(y=p=(c=(u=(d=(h=t)[L]||(h[L]={}))[h.uniqueID]||(d[h.uniqueID]={}))[e]||[])[0]===B&&c[1]),!1===y)for(;(h=++p&&h&&h[m]||(y=p=0)||f.pop())&&((s?h.nodeName.toLowerCase()!==v:1!==h.nodeType)||!++y||(b&&((u=(d=h[L]||(h[L]={}))[h.uniqueID]||(d[h.uniqueID]={}))[e]=[B,y]),h!==t)););return(y-=r)===i||y%i==0&&y/i>=0}}},PSEUDO:function(e,n){var r,o=_.pseudos[e]||_.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[L]?o(n):o.length>1?(r=[e,e,"",n],_.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,t){for(var i,r=o(e,n),a=r.length;a--;)e[i=Z(e,r[a])]=!(t[i]=r[a])}):function(e){return o(e,0,r)}):o}},pseudos:{not:i(function(e){var t=[],n=[],r=x(e.replace(oe,"$1"));return r[L]?i(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:i(function(e){return function(n){return t(e,n).length>0}}),contains:i(function(e){return e=e.replace(be,ye),function(t){return(t.textContent||t.innerText||w(t)).indexOf(e)>-1}}),lang:i(function(e){return ue.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(be,ye).toLowerCase(),function(t){var n;do{if(n=P?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===M},focus:function(e){return e===k.activeElement&&(!k.hasFocus||k.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!_.pseudos.empty(e)},header:function(e){return pe.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:s(function(){return[0]}),last:s(function(e,t){return[t-1]}),eq:s(function(e,t,n){return[n<0?n+t:n]}),even:s(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:s(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:s(function(e,t,n){for(var i=n<0?n+t:n;--i>=0;)e.push(i);return e}),gt:s(function(e,t,n){for(var i=n<0?n+t:n;++i<t;)e.push(i);return e})}}).pseudos.nth=_.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})_.pseudos[b]=function(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}(b);for(b in{submit:!0,reset:!0})_.pseudos[b]=function(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}(b);return c.prototype=_.filters=_.pseudos,_.setFilters=new c,C=t.tokenize=function(e,n){var i,r,o,a,s,l,c,u=U[e+" "];if(u)return n?0:u.slice(0);for(s=e,l=[],c=_.preFilter;s;){i&&!(r=ae.exec(s))||(r&&(s=s.slice(r[0].length)||s),l.push(o=[])),i=!1,(r=se.exec(s))&&(i=r.shift(),o.push({value:i,type:r[0].replace(oe," ")}),s=s.slice(i.length));for(a in _.filter)!(r=de[a].exec(s))||c[a]&&!(r=c[a](r))||(i=r.shift(),o.push({value:i,type:a,matches:r}),s=s.slice(i.length));if(!i)break}return n?s.length:s?t.error(e):U(e,l).slice(0)},x=t.compile=function(e,t){var n,i=[],r=[],o=j[e+" "];if(!o){for(t||(t=C(e)),n=t.length;n--;)(o=g(t[n]))[L]?i.push(o):r.push(o);(o=j(e,v(r,i))).selector=e}return o},S=t.select=function(e,t,n,i){var r,o,a,s,c,d="function"==typeof e&&e,h=!i&&C(e=d.selector||e);if(n=n||[],1===h.length){if((o=h[0]=h[0].slice(0)).length>2&&"ID"===(a=o[0]).type&&y.getById&&9===t.nodeType&&P&&_.relative[o[1].type]){if(!(t=(_.find.ID(a.matches[0].replace(be,ye),t)||[])[0]))return n;d&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(r=de.needsContext.test(e)?0:o.length;r--&&(a=o[r],!_.relative[s=a.type]);)if((c=_.find[s])&&(i=c(a.matches[0].replace(be,ye),ge.test(o[0].type)&&l(t.parentNode)||t))){if(o.splice(r,1),!(e=i.length&&u(o)))return Q.apply(n,i),n;break}}return(d||x(e,h))(i,t,!P,n,!t||ge.test(e)&&l(t.parentNode)||t),n},y.sortStable=L.split("").sort(W).join("")===L,y.detectDuplicates=!!D,I(),y.sortDetached=r(function(e){return 1&e.compareDocumentPosition(k.createElement("div"))}),r(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),y.attributes&&r(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),r(function(e){return null==e.getAttribute("disabled")})||o(J,function(e,t,n){var i;if(!n)return!0===e[t]?t.toLowerCase():(i=e.getAttributeNode(t))&&i.specified?i.value:null}),t}(e);re.find=ce,re.expr=ce.selectors,re.expr[":"]=re.expr.pseudos,re.uniqueSort=re.unique=ce.uniqueSort,re.text=ce.getText,re.isXMLDoc=ce.isXML,re.contains=ce.contains;var ue=function(e,t,n){for(var i=[],r=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(r&&re(e).is(n))break;i.push(e)}return i},de=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},he=re.expr.match.needsContext,pe=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,fe=/^.[^:#\[\.,]*$/;re.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?re.find.matchesSelector(i,e)?[i]:[]:re.find.matches(e,re.grep(t,function(e){return 1===e.nodeType}))},re.fn.extend({find:function(e){var t,n=this.length,i=[],r=this;if("string"!=typeof e)return this.pushStack(re(e).filter(function(){for(t=0;t<n;t++)if(re.contains(r[t],this))return!0}));for(t=0;t<n;t++)re.find(e,r[t],i);return i=this.pushStack(n>1?re.unique(i):i),i.selector=this.selector?this.selector+" "+e:e,i},filter:function(e){return this.pushStack(i(this,e||[],!1))},not:function(e){return this.pushStack(i(this,e||[],!0))},is:function(e){return!!i(this,"string"==typeof e&&he.test(e)?re(e):e||[],!1).length}});var me,ge=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/;(re.fn.init=function(e,t,n){var i,r;if(!e)return this;if(n=n||me,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:ge.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof re?t[0]:t,re.merge(this,re.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:K,!0)),pe.test(i[1])&&re.isPlainObject(t))for(i in t)re.isFunction(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(r=K.getElementById(i[2]))&&r.parentNode&&(this.length=1,this[0]=r),this.context=K,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):re.isFunction(e)?void 0!==n.ready?n.ready(e):e(re):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),re.makeArray(e,this))}).prototype=re.fn,me=re(K);var ve=/^(?:parents|prev(?:Until|All))/,be={children:!0,contents:!0,next:!0,prev:!0};re.fn.extend({has:function(e){var t=re(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(re.contains(this,t[e]))return!0})},closest:function(e,t){for(var n,i=0,r=this.length,o=[],a=he.test(e)||"string"!=typeof e?re(e,t||this.context):0;i<r;i++)for(n=this[i];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&re.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?re.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?J.call(re(e),this[0]):J.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(re.uniqueSort(re.merge(this.get(),re(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),re.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return ue(e,"parentNode")},parentsUntil:function(e,t,n){return ue(e,"parentNode",n)},next:function(e){return r(e,"nextSibling")},prev:function(e){return r(e,"previousSibling")},nextAll:function(e){return ue(e,"nextSibling")},prevAll:function(e){return ue(e,"previousSibling")},nextUntil:function(e,t,n){return ue(e,"nextSibling",n)},prevUntil:function(e,t,n){return ue(e,"previousSibling",n)},siblings:function(e){return de((e.parentNode||{}).firstChild,e)},children:function(e){return de(e.firstChild)},contents:function(e){return e.contentDocument||re.merge([],e.childNodes)}},function(e,t){re.fn[e]=function(n,i){var r=re.map(this,t,n);return"Until"!==e.slice(-5)&&(i=n),i&&"string"==typeof i&&(r=re.filter(i,r)),this.length>1&&(be[e]||re.uniqueSort(r),ve.test(e)&&r.reverse()),this.pushStack(r)}});var ye=/\S+/g;re.Callbacks=function(e){e="string"==typeof e?o(e):re.extend({},e);var t,n,i,r,a=[],s=[],l=-1,c=function(){for(r=e.once,i=t=!0;s.length;l=-1)for(n=s.shift();++l<a.length;)!1===a[l].apply(n[0],n[1])&&e.stopOnFalse&&(l=a.length,n=!1);e.memory||(n=!1),t=!1,r&&(a=n?[]:"")},u={add:function(){return a&&(n&&!t&&(l=a.length-1,s.push(n)),function t(n){re.each(n,function(n,i){re.isFunction(i)?e.unique&&u.has(i)||a.push(i):i&&i.length&&"string"!==re.type(i)&&t(i)})}(arguments),n&&!t&&c()),this},remove:function(){return re.each(arguments,function(e,t){for(var n;(n=re.inArray(t,a,n))>-1;)a.splice(n,1),n<=l&&l--}),this},has:function(e){return e?re.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return r=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return r=s=[],n||(a=n=""),this},locked:function(){return!!r},fireWith:function(e,n){return r||(n=[e,(n=n||[]).slice?n.slice():n],s.push(n),t||c()),this},fire:function(){return u.fireWith(this,arguments),this},fired:function(){return!!i}};return u},re.extend({Deferred:function(e){var t=[["resolve","done",re.Callbacks("once memory"),"resolved"],["reject","fail",re.Callbacks("once memory"),"rejected"],["notify","progress",re.Callbacks("memory")]],n="pending",i={state:function(){return n},always:function(){return r.done(arguments).fail(arguments),this},then:function(){var e=arguments;return re.Deferred(function(n){re.each(t,function(t,o){var a=re.isFunction(e[t])&&e[t];r[o[1]](function(){var e=a&&a.apply(this,arguments);e&&re.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===i?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?re.extend(e,i):i}},r={};return i.pipe=i.then,re.each(t,function(e,o){var a=o[2],s=o[3];i[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),r[o[0]]=function(){return r[o[0]+"With"](this===r?i:this,arguments),this},r[o[0]+"With"]=a.fireWith}),i.promise(r),e&&e.call(r,r),r},when:function(e){var t,n,i,r=0,o=Q.call(arguments),a=o.length,s=1!==a||e&&re.isFunction(e.promise)?a:0,l=1===s?e:re.Deferred(),c=function(e,n,i){return function(r){n[e]=this,i[e]=arguments.length>1?Q.call(arguments):r,i===t?l.notifyWith(n,i):--s||l.resolveWith(n,i)}};if(a>1)for(t=new Array(a),n=new Array(a),i=new Array(a);r<a;r++)o[r]&&re.isFunction(o[r].promise)?o[r].promise().progress(c(r,n,t)).done(c(r,i,o)).fail(l.reject):--s;return s||l.resolveWith(i,o),l.promise()}});var _e;re.fn.ready=function(e){return re.ready.promise().done(e),this},re.extend({isReady:!1,readyWait:1,holdReady:function(e){e?re.readyWait++:re.ready(!0)},ready:function(e){(!0===e?--re.readyWait:re.isReady)||(re.isReady=!0,!0!==e&&--re.readyWait>0||(_e.resolveWith(K,[re]),re.fn.triggerHandler&&(re(K).triggerHandler("ready"),re(K).off("ready"))))}}),re.ready.promise=function(t){return _e||(_e=re.Deferred(),"complete"===K.readyState||"loading"!==K.readyState&&!K.documentElement.doScroll?e.setTimeout(re.ready):(K.addEventListener("DOMContentLoaded",a),e.addEventListener("load",a))),_e.promise(t)},re.ready.promise();var we=function(e,t,n,i,r,o,a){var s=0,l=e.length,c=null==n;if("object"===re.type(n)){r=!0;for(s in n)we(e,t,s,n[s],!0,o,a)}else if(void 0!==i&&(r=!0,re.isFunction(i)||(a=!0),c&&(a?(t.call(e,i),t=null):(c=t,t=function(e,t,n){return c.call(re(e),n)})),t))for(;s<l;s++)t(e[s],n,a?i:i.call(e[s],s,t(e[s],n)));return r?e:c?t.call(e):l?t(e[0],n):o},Ae=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};s.uid=1,s.prototype={register:function(e,t){var n=t||{};return e.nodeType?e[this.expando]=n:Object.defineProperty(e,this.expando,{value:n,writable:!0,configurable:!0}),e[this.expando]},cache:function(e){if(!Ae(e))return{};var t=e[this.expando];return t||(t={},Ae(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var i,r=this.cache(e);if("string"==typeof t)r[t]=n;else for(i in t)r[i]=t[i];return r},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][t]},access:function(e,t,n){var i;return void 0===t||t&&"string"==typeof t&&void 0===n?(i=this.get(e,t),void 0!==i?i:this.get(e,re.camelCase(t))):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,i,r,o=e[this.expando];if(void 0!==o){if(void 0===t)this.register(e);else{re.isArray(t)?i=t.concat(t.map(re.camelCase)):(r=re.camelCase(t),i=t in o?[t,r]:(i=r)in o?[i]:i.match(ye)||[]),n=i.length;for(;n--;)delete o[i[n]]}(void 0===t||re.isEmptyObject(o))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!re.isEmptyObject(t)}};var Ce=new s,xe=new s,Se=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Ee=/[A-Z]/g;re.extend({hasData:function(e){return xe.hasData(e)||Ce.hasData(e)},data:function(e,t,n){return xe.access(e,t,n)},removeData:function(e,t){xe.remove(e,t)},_data:function(e,t,n){return Ce.access(e,t,n)},_removeData:function(e,t){Ce.remove(e,t)}}),re.fn.extend({data:function(e,t){var n,i,r,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(r=xe.get(o),1===o.nodeType&&!Ce.get(o,"hasDataAttrs"))){for(n=a.length;n--;)a[n]&&0===(i=a[n].name).indexOf("data-")&&(i=re.camelCase(i.slice(5)),l(o,i,r[i]));Ce.set(o,"hasDataAttrs",!0)}return r}return"object"==typeof e?this.each(function(){xe.set(this,e)}):we(this,function(t){var n,i;if(o&&void 0===t){if(void 0!==(n=xe.get(o,e)||xe.get(o,e.replace(Ee,"-$&").toLowerCase())))return n;if(i=re.camelCase(e),void 0!==(n=xe.get(o,i)))return n;if(void 0!==(n=l(o,i,void 0)))return n}else i=re.camelCase(e),this.each(function(){var n=xe.get(this,i);xe.set(this,i,t),e.indexOf("-")>-1&&void 0!==n&&xe.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){xe.remove(this,e)})}}),re.extend({queue:function(e,t,n){var i;if(e)return t=(t||"fx")+"queue",i=Ce.get(e,t),n&&(!i||re.isArray(n)?i=Ce.access(e,t,re.makeArray(n)):i.push(n)),i||[]},dequeue:function(e,t){t=t||"fx";var n=re.queue(e,t),i=n.length,r=n.shift(),o=re._queueHooks(e,t),a=function(){re.dequeue(e,t)};"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===t&&n.unshift("inprogress"),delete o.stop,r.call(e,a,o)),!i&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Ce.get(e,n)||Ce.access(e,n,{empty:re.Callbacks("once memory").add(function(){Ce.remove(e,[t+"queue",n])})})}}),re.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?re.queue(this[0],e):void 0===t?this:this.each(function(){var n=re.queue(this,e,t);re._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&re.dequeue(this,e)})},dequeue:function(e){return this.each(function(){re.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,i=1,r=re.Deferred(),o=this,a=this.length,s=function(){--i||r.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)(n=Ce.get(o[a],e+"queueHooks"))&&n.empty&&(i++,n.empty.add(s));return s(),r.promise(t)}});var Te=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,De=new RegExp("^(?:([+-])=|)("+Te+")([a-z%]*)$","i"),Ie=["Top","Right","Bottom","Left"],ke=function(e,t){return e=t||e,"none"===re.css(e,"display")||!re.contains(e.ownerDocument,e)},Me=/^(?:checkbox|radio)$/i,Pe=/<([\w:-]+)/,$e=/^$|\/(?:java|ecma)script/i,Ne={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ne.optgroup=Ne.option,Ne.tbody=Ne.tfoot=Ne.colgroup=Ne.caption=Ne.thead,Ne.th=Ne.td;var Oe=/<|&#?\w+;/;!function(){var e=K.createDocumentFragment().appendChild(K.createElement("div")),t=K.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),ie.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",ie.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var Re=/^key/,Le=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ge=/^([^.]*)(?:\.(.+)|)/;re.event={global:{},add:function(e,t,n,i,r){var o,a,s,l,c,u,d,h,p,f,m,g=Ce.get(e);if(g)for(n.handler&&(n=(o=n).handler,r=o.selector),n.guid||(n.guid=re.guid++),(l=g.events)||(l=g.events={}),(a=g.handle)||(a=g.handle=function(t){return void 0!==re&&re.event.triggered!==t.type?re.event.dispatch.apply(e,arguments):void 0}),c=(t=(t||"").match(ye)||[""]).length;c--;)p=m=(s=Ge.exec(t[c])||[])[1],f=(s[2]||"").split(".").sort(),p&&(d=re.event.special[p]||{},p=(r?d.delegateType:d.bindType)||p,d=re.event.special[p]||{},u=re.extend({type:p,origType:m,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&re.expr.match.needsContext.test(r),namespace:f.join(".")},o),(h=l[p])||((h=l[p]=[]).delegateCount=0,d.setup&&!1!==d.setup.call(e,i,f,a)||e.addEventListener&&e.addEventListener(p,a)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),r?h.splice(h.delegateCount++,0,u):h.push(u),re.event.global[p]=!0)},remove:function(e,t,n,i,r){var o,a,s,l,c,u,d,h,p,f,m,g=Ce.hasData(e)&&Ce.get(e);if(g&&(l=g.events)){for(c=(t=(t||"").match(ye)||[""]).length;c--;)if(s=Ge.exec(t[c])||[],p=m=s[1],f=(s[2]||"").split(".").sort(),p){for(d=re.event.special[p]||{},h=l[p=(i?d.delegateType:d.bindType)||p]||[],s=s[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=h.length;o--;)u=h[o],!r&&m!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||i&&i!==u.selector&&("**"!==i||!u.selector)||(h.splice(o,1),u.selector&&h.delegateCount--,d.remove&&d.remove.call(e,u));a&&!h.length&&(d.teardown&&!1!==d.teardown.call(e,f,g.handle)||re.removeEvent(e,p,g.handle),delete l[p])}else for(p in l)re.event.remove(e,p+t[c],n,i,!0);re.isEmptyObject(l)&&Ce.remove(e,"handle events")}},dispatch:function(e){e=re.event.fix(e);var t,n,i,r,o,a=[],s=Q.call(arguments),l=(Ce.get(this,"events")||{})[e.type]||[],c=re.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,e)){for(a=re.event.handlers.call(this,e,l),t=0;(r=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=r.elem,n=0;(o=r.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,void 0!==(i=((re.event.special[o.origType]||{}).handle||o.handler).apply(r.elem,s))&&!1===(e.result=i)&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,i,r,o,a=[],s=t.delegateCount,l=e.target;if(s&&l.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&(!0!==l.disabled||"click"!==e.type)){for(i=[],n=0;n<s;n++)void 0===i[r=(o=t[n]).selector+" "]&&(i[r]=o.needsContext?re(r,this).index(l)>-1:re.find(r,this,null,[l]).length),i[r]&&i.push(o);i.length&&a.push({elem:l,handlers:i})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,i,r,o=t.button;return null==e.pageX&&null!=t.clientX&&(i=(n=e.target.ownerDocument||K).documentElement,r=n.body,e.pageX=t.clientX+(i&&i.scrollLeft||r&&r.scrollLeft||0)-(i&&i.clientLeft||r&&r.clientLeft||0),e.pageY=t.clientY+(i&&i.scrollTop||r&&r.scrollTop||0)-(i&&i.clientTop||r&&r.clientTop||0)),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),e}},fix:function(e){if(e[re.expando])return e;var t,n,i,r=e.type,o=e,a=this.fixHooks[r];for(a||(this.fixHooks[r]=a=Le.test(r)?this.mouseHooks:Re.test(r)?this.keyHooks:{}),i=a.props?this.props.concat(a.props):this.props,e=new re.Event(o),t=i.length;t--;)e[n=i[t]]=o[n];return e.target||(e.target=K),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,o):e},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==m()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===m()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&re.nodeName(this,"input"))return this.click(),!1},_default:function(e){return re.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},re.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},re.Event=function(e,t){if(!(this instanceof re.Event))return new re.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?p:f):this.type=e,t&&re.extend(this,t),this.timeStamp=e&&e.timeStamp||re.now(),this[re.expando]=!0},re.Event.prototype={constructor:re.Event,isDefaultPrevented:f,isPropagationStopped:f,isImmediatePropagationStopped:f,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=p,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=p,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=p,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},re.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){re.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,i=this,r=e.relatedTarget,o=e.handleObj;return r&&(r===i||re.contains(i,r))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),re.fn.extend({on:function(e,t,n,i){return g(this,e,t,n,i)},one:function(e,t,n,i){return g(this,e,t,n,i,1)},off:function(e,t,n){var i,r;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,re(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(r in e)this.off(r,t,e[r]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=f),this.each(function(){re.event.remove(this,e,n,t)})}});var Be=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Fe=/<script|<style|<link/i,He=/checked\s*(?:[^=]|=\s*.checked.)/i,Ue=/^true\/(.*)/,je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;re.extend({htmlPrefilter:function(e){return e.replace(Be,"<$1></$2>")},clone:function(e,t,n){var i,r,o,a,s=e.cloneNode(!0),l=re.contains(e.ownerDocument,e);if(!(ie.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||re.isXMLDoc(e)))for(a=u(s),i=0,r=(o=u(e)).length;i<r;i++)w(o[i],a[i]);if(t)if(n)for(o=o||u(e),a=a||u(s),i=0,r=o.length;i<r;i++)_(o[i],a[i]);else _(e,s);return(a=u(s,"script")).length>0&&d(a,!l&&u(e,"script")),s},cleanData:function(e){for(var t,n,i,r=re.event.special,o=0;void 0!==(n=e[o]);o++)if(Ae(n)){if(t=n[Ce.expando]){if(t.events)for(i in t.events)r[i]?re.event.remove(n,i):re.removeEvent(n,i,t.handle);n[Ce.expando]=void 0}n[xe.expando]&&(n[xe.expando]=void 0)}}}),re.fn.extend({domManip:A,detach:function(e){return C(this,e,!0)},remove:function(e){return C(this,e)},text:function(e){return we(this,function(e){return void 0===e?re.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return A(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||v(this,e).appendChild(e)})},prepend:function(){return A(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=v(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return A(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return A(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(re.cleanData(u(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return re.clone(this,e,t)})},html:function(e){return we(this,function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Fe.test(e)&&!Ne[(Pe.exec(e)||["",""])[1].toLowerCase()]){e=re.htmlPrefilter(e);try{for(;n<i;n++)1===(t=this[n]||{}).nodeType&&(re.cleanData(u(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return A(this,arguments,function(t){var n=this.parentNode;re.inArray(this,e)<0&&(re.cleanData(u(this)),n&&n.replaceChild(t,this))},e)}}),re.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){re.fn[e]=function(e){for(var n,i=[],r=re(e),o=r.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),re(r[a])[t](n),Z.apply(i,n.get());return this.pushStack(i)}});var We,ze={HTML:"block",BODY:"block"},qe=/^margin/,Ve=new RegExp("^("+Te+")(?!px)[a-z%]+$","i"),Ye=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Ke=function(e,t,n,i){var r,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];r=n.apply(e,i||[]);for(o in t)e.style[o]=a[o];return r},Qe=K.documentElement;!function(){function t(){s.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",s.innerHTML="",Qe.appendChild(a);var t=e.getComputedStyle(s);n="1%"!==t.top,o="2px"===t.marginLeft,i="4px"===t.width,s.style.marginRight="50%",r="4px"===t.marginRight,Qe.removeChild(a)}var n,i,r,o,a=K.createElement("div"),s=K.createElement("div");s.style&&(s.style.backgroundClip="content-box",s.cloneNode(!0).style.backgroundClip="",ie.clearCloneStyle="content-box"===s.style.backgroundClip,a.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",a.appendChild(s),re.extend(ie,{pixelPosition:function(){return t(),n},boxSizingReliable:function(){return null==i&&t(),i},pixelMarginRight:function(){return null==i&&t(),r},reliableMarginLeft:function(){return null==i&&t(),o},reliableMarginRight:function(){var t,n=s.appendChild(K.createElement("div"));return n.style.cssText=s.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",n.style.marginRight=n.style.width="0",s.style.width="1px",Qe.appendChild(a),t=!parseFloat(e.getComputedStyle(n).marginRight),Qe.removeChild(a),s.removeChild(n),t}}))}();var Xe=/^(none|table(?!-c[ea]).+)/,Ze={position:"absolute",visibility:"hidden",display:"block"},Je={letterSpacing:"0",fontWeight:"400"},et=["Webkit","O","Moz","ms"],tt=K.createElement("div").style;re.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=E(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:"cssFloat"},style:function(e,t,n,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var r,o,a,s=re.camelCase(t),l=e.style;if(t=re.cssProps[s]||(re.cssProps[s]=D(s)||s),a=re.cssHooks[t]||re.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(r=a.get(e,!1,i))?r:l[t];"string"===(o=typeof n)&&(r=De.exec(n))&&r[1]&&(n=c(e,t,r),o="number"),null!=n&&n===n&&("number"===o&&(n+=r&&r[3]||(re.cssNumber[s]?"":"px")),ie.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,i))||(l[t]=n))}},css:function(e,t,n,i){var r,o,a,s=re.camelCase(t);return t=re.cssProps[s]||(re.cssProps[s]=D(s)||s),(a=re.cssHooks[t]||re.cssHooks[s])&&"get"in a&&(r=a.get(e,!0,n)),void 0===r&&(r=E(e,t,i)),"normal"===r&&t in Je&&(r=Je[t]),""===n||n?(o=parseFloat(r),!0===n||isFinite(o)?o||0:r):r}}),re.each(["height","width"],function(e,t){re.cssHooks[t]={get:function(e,n,i){if(n)return Xe.test(re.css(e,"display"))&&0===e.offsetWidth?Ke(e,Ze,function(){return M(e,t,i)}):M(e,t,i)},set:function(e,n,i){var r,o=i&&Ye(e),a=i&&k(e,t,i,"border-box"===re.css(e,"boxSizing",!1,o),o);return a&&(r=De.exec(n))&&"px"!==(r[3]||"px")&&(e.style[t]=n,n=re.css(e,t)),I(e,n,a)}}}),re.cssHooks.marginLeft=T(ie.reliableMarginLeft,function(e,t){if(t)return(parseFloat(E(e,"marginLeft"))||e.getBoundingClientRect().left-Ke(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),re.cssHooks.marginRight=T(ie.reliableMarginRight,function(e,t){if(t)return Ke(e,{display:"inline-block"},E,[e,"marginRight"])}),re.each({margin:"",padding:"",border:"Width"},function(e,t){re.cssHooks[e+t]={expand:function(n){for(var i=0,r={},o="string"==typeof n?n.split(" "):[n];i<4;i++)r[e+Ie[i]+t]=o[i]||o[i-2]||o[0];return r}},qe.test(e)||(re.cssHooks[e+t].set=I)}),re.fn.extend({css:function(e,t){return we(this,function(e,t,n){var i,r,o={},a=0;if(re.isArray(t)){for(i=Ye(e),r=t.length;a<r;a++)o[t[a]]=re.css(e,t[a],!1,i);return o}return void 0!==n?re.style(e,t,n):re.css(e,t)},e,t,arguments.length>1)},show:function(){return P(this,!0)},hide:function(){return P(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ke(this)?re(this).show():re(this).hide()})}}),re.Tween=$,$.prototype={constructor:$,init:function(e,t,n,i,r,o){this.elem=e,this.prop=n,this.easing=r||re.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=i,this.unit=o||(re.cssNumber[n]?"":"px")},cur:function(){var e=$.propHooks[this.prop];return e&&e.get?e.get(this):$.propHooks._default.get(this)},run:function(e){var t,n=$.propHooks[this.prop];return this.options.duration?this.pos=t=re.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):$.propHooks._default.set(this),this}},$.prototype.init.prototype=$.prototype,$.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=re.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){re.fx.step[e.prop]?re.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[re.cssProps[e.prop]]&&!re.cssHooks[e.prop]?e.elem[e.prop]=e.now:re.style(e.elem,e.prop,e.now+e.unit)}}},$.propHooks.scrollTop=$.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},re.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},re.fx=$.prototype.init,re.fx.step={};var nt,it,rt=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;re.Animation=re.extend(B,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return c(n.elem,e,De.exec(t),n),n}]},tweener:function(e,t){re.isFunction(e)?(t=e,e=["*"]):e=e.match(ye);for(var n,i=0,r=e.length;i<r;i++)n=e[i],B.tweeners[n]=B.tweeners[n]||[],B.tweeners[n].unshift(t)},prefilters:[L],prefilter:function(e,t){t?B.prefilters.unshift(e):B.prefilters.push(e)}}),re.speed=function(e,t,n){var i=e&&"object"==typeof e?re.extend({},e):{complete:n||!n&&t||re.isFunction(e)&&e,duration:e,easing:n&&t||t&&!re.isFunction(t)&&t};return i.duration=re.fx.off?0:"number"==typeof i.duration?i.duration:i.duration in re.fx.speeds?re.fx.speeds[i.duration]:re.fx.speeds._default,null!=i.queue&&!0!==i.queue||(i.queue="fx"),i.old=i.complete,i.complete=function(){re.isFunction(i.old)&&i.old.call(this),i.queue&&re.dequeue(this,i.queue)},i},re.fn.extend({fadeTo:function(e,t,n,i){return this.filter(ke).css("opacity",0).show().end().animate({opacity:t},e,n,i)},animate:function(e,t,n,i){var r=re.isEmptyObject(e),o=re.speed(t,n,i),a=function(){var t=B(this,re.extend({},e),o);(r||Ce.get(this,"finish"))&&t.stop(!0)};return a.finish=a,r||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var i=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,r=null!=e&&e+"queueHooks",o=re.timers,a=Ce.get(this);if(r)a[r]&&a[r].stop&&i(a[r]);else for(r in a)a[r]&&a[r].stop&&ot.test(r)&&i(a[r]);for(r=o.length;r--;)o[r].elem!==this||null!=e&&o[r].queue!==e||(o[r].anim.stop(n),t=!1,o.splice(r,1));!t&&n||re.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=Ce.get(this),i=n[e+"queue"],r=n[e+"queueHooks"],o=re.timers,a=i?i.length:0;for(n.finish=!0,re.queue(this,e,[]),r&&r.stop&&r.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)i[t]&&i[t].finish&&i[t].finish.call(this);delete n.finish})}}),re.each(["toggle","show","hide"],function(e,t){var n=re.fn[t];re.fn[t]=function(e,i,r){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(O(t,!0),e,i,r)}}),re.each({slideDown:O("show"),slideUp:O("hide"),slideToggle:O("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){re.fn[e]=function(e,n,i){return this.animate(t,e,n,i)}}),re.timers=[],re.fx.tick=function(){var e,t=0,n=re.timers;for(nt=re.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||re.fx.stop(),nt=void 0},re.fx.timer=function(e){re.timers.push(e),e()?re.fx.start():re.timers.pop()},re.fx.interval=13,re.fx.start=function(){it||(it=e.setInterval(re.fx.tick,re.fx.interval))},re.fx.stop=function(){e.clearInterval(it),it=null},re.fx.speeds={slow:600,fast:200,_default:400},re.fn.delay=function(t,n){return t=re.fx?re.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,i){var r=e.setTimeout(n,t);i.stop=function(){e.clearTimeout(r)}})},function(){var e=K.createElement("input"),t=K.createElement("select"),n=t.appendChild(K.createElement("option"));e.type="checkbox",ie.checkOn=""!==e.value,ie.optSelected=n.selected,t.disabled=!0,ie.optDisabled=!n.disabled,(e=K.createElement("input")).value="t",e.type="radio",ie.radioValue="t"===e.value}();var at,st=re.expr.attrHandle;re.fn.extend({attr:function(e,t){return we(this,re.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){re.removeAttr(this,e)})}}),re.extend({attr:function(e,t,n){var i,r,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return void 0===e.getAttribute?re.prop(e,t,n):(1===o&&re.isXMLDoc(e)||(t=t.toLowerCase(),r=re.attrHooks[t]||(re.expr.match.bool.test(t)?at:void 0)),void 0!==n?null===n?void re.removeAttr(e,t):r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):r&&"get"in r&&null!==(i=r.get(e,t))?i:(i=re.find.attr(e,t),null==i?void 0:i))},attrHooks:{type:{set:function(e,t){if(!ie.radioValue&&"radio"===t&&re.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,i,r=0,o=t&&t.match(ye);if(o&&1===e.nodeType)for(;n=o[r++];)i=re.propFix[n]||n,re.expr.match.bool.test(n)&&(e[i]=!1),e.removeAttribute(n)}}),at={set:function(e,t,n){return!1===t?re.removeAttr(e,n):e.setAttribute(n,n),n}},re.each(re.expr.match.bool.source.match(/\w+/g),function(e,t){var n=st[t]||re.find.attr;st[t]=function(e,t,i){var r,o;return i||(o=st[t],st[t]=r,r=null!=n(e,t,i)?t.toLowerCase():null,st[t]=o),r}});var lt=/^(?:input|select|textarea|button)$/i,ct=/^(?:a|area)$/i;re.fn.extend({prop:function(e,t){return we(this,re.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[re.propFix[e]||e]})}}),re.extend({prop:function(e,t,n){var i,r,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&re.isXMLDoc(e)||(t=re.propFix[t]||t,r=re.propHooks[t]),void 0!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:e[t]=n:r&&"get"in r&&null!==(i=r.get(e,t))?i:e[t]},propHooks:{tabIndex:{get:function(e){var t=re.find.attr(e,"tabindex");return t?parseInt(t,10):lt.test(e.nodeName)||ct.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),ie.optSelected||(re.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),re.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){re.propFix[this.toLowerCase()]=this});var ut=/[\t\r\n\f]/g;re.fn.extend({addClass:function(e){var t,n,i,r,o,a,s,l=0;if(re.isFunction(e))return this.each(function(t){re(this).addClass(e.call(this,t,F(this)))});if("string"==typeof e&&e)for(t=e.match(ye)||[];n=this[l++];)if(r=F(n),i=1===n.nodeType&&(" "+r+" ").replace(ut," ")){for(a=0;o=t[a++];)i.indexOf(" "+o+" ")<0&&(i+=o+" ");r!==(s=re.trim(i))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,i,r,o,a,s,l=0;if(re.isFunction(e))return this.each(function(t){re(this).removeClass(e.call(this,t,F(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(ye)||[];n=this[l++];)if(r=F(n),i=1===n.nodeType&&(" "+r+" ").replace(ut," ")){for(a=0;o=t[a++];)for(;i.indexOf(" "+o+" ")>-1;)i=i.replace(" "+o+" "," ");r!==(s=re.trim(i))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):re.isFunction(e)?this.each(function(n){re(this).toggleClass(e.call(this,n,F(this),t),t)}):this.each(function(){var t,i,r,o;if("string"===n)for(i=0,r=re(this),o=e.match(ye)||[];t=o[i++];)r.hasClass(t)?r.removeClass(t):r.addClass(t);else void 0!==e&&"boolean"!==n||((t=F(this))&&Ce.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":Ce.get(this,"__className__")||""))})},hasClass:function(e){var t,n,i=0;for(t=" "+e+" ";n=this[i++];)if(1===n.nodeType&&(" "+F(n)+" ").replace(ut," ").indexOf(t)>-1)return!0;return!1}});var dt=/\r/g,ht=/[\x20\t\r\n\f]+/g;re.fn.extend({val:function(e){var t,n,i,r=this[0];{if(arguments.length)return i=re.isFunction(e),this.each(function(n){var r;1===this.nodeType&&(null==(r=i?e.call(this,n,re(this).val()):e)?r="":"number"==typeof r?r+="":re.isArray(r)&&(r=re.map(r,function(e){return null==e?"":e+""})),(t=re.valHooks[this.type]||re.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,r,"value")||(this.value=r))});if(r)return(t=re.valHooks[r.type]||re.valHooks[r.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(r,"value"))?n:(n=r.value,"string"==typeof n?n.replace(dt,""):null==n?"":n)}}}),re.extend({valHooks:{option:{get:function(e){var t=re.find.attr(e,"value");return null!=t?t:re.trim(re.text(e)).replace(ht," ")}},select:{get:function(e){for(var t,n,i=e.options,r=e.selectedIndex,o="select-one"===e.type||r<0,a=o?null:[],s=o?r+1:i.length,l=r<0?s:o?r:0;l<s;l++)if(((n=i[l]).selected||l===r)&&(ie.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!re.nodeName(n.parentNode,"optgroup"))){if(t=re(n).val(),o)return t;a.push(t)}return a},set:function(e,t){for(var n,i,r=e.options,o=re.makeArray(t),a=r.length;a--;)((i=r[a]).selected=re.inArray(re.valHooks.option.get(i),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),re.each(["radio","checkbox"],function(){re.valHooks[this]={set:function(e,t){if(re.isArray(t))return e.checked=re.inArray(re(e).val(),t)>-1}},ie.checkOn||(re.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var pt=/^(?:focusinfocus|focusoutblur)$/;re.extend(re.event,{trigger:function(t,n,i,r){var o,a,s,l,c,u,d,h=[i||K],p=ne.call(t,"type")?t.type:t,f=ne.call(t,"namespace")?t.namespace.split("."):[];if(a=s=i=i||K,3!==i.nodeType&&8!==i.nodeType&&!pt.test(p+re.event.triggered)&&(p.indexOf(".")>-1&&(p=(f=p.split(".")).shift(),f.sort()),c=p.indexOf(":")<0&&"on"+p,t=t[re.expando]?t:new re.Event(p,"object"==typeof t&&t),t.isTrigger=r?2:3,t.namespace=f.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:re.makeArray(n,[t]),d=re.event.special[p]||{},r||!d.trigger||!1!==d.trigger.apply(i,n))){if(!r&&!d.noBubble&&!re.isWindow(i)){for(l=d.delegateType||p,pt.test(l+p)||(a=a.parentNode);a;a=a.parentNode)h.push(a),s=a;s===(i.ownerDocument||K)&&h.push(s.defaultView||s.parentWindow||e)}for(o=0;(a=h[o++])&&!t.isPropagationStopped();)t.type=o>1?l:d.bindType||p,(u=(Ce.get(a,"events")||{})[t.type]&&Ce.get(a,"handle"))&&u.apply(a,n),(u=c&&a[c])&&u.apply&&Ae(a)&&(t.result=u.apply(a,n),!1===t.result&&t.preventDefault());return t.type=p,r||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(h.pop(),n)||!Ae(i)||c&&re.isFunction(i[p])&&!re.isWindow(i)&&((s=i[c])&&(i[c]=null),re.event.triggered=p,i[p](),re.event.triggered=void 0,s&&(i[c]=s)),t.result}},simulate:function(e,t,n){var i=re.extend(new re.Event,n,{type:e,isSimulated:!0});re.event.trigger(i,null,t)}}),re.fn.extend({trigger:function(e,t){return this.each(function(){re.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return re.event.trigger(e,t,n,!0)}}),re.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){re.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),re.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ie.focusin="onfocusin"in e,ie.focusin||re.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){re.event.simulate(t,e.target,re.event.fix(e))};re.event.special[t]={setup:function(){var i=this.ownerDocument||this,r=Ce.access(i,t);r||i.addEventListener(e,n,!0),Ce.access(i,t,(r||0)+1)},teardown:function(){var i=this.ownerDocument||this,r=Ce.access(i,t)-1;r?Ce.access(i,t,r):(i.removeEventListener(e,n,!0),Ce.remove(i,t))}}});var ft=e.location,mt=re.now(),gt=/\?/;re.parseJSON=function(e){return JSON.parse(e+"")},re.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||re.error("Invalid XML: "+t),n};var vt=/#.*$/,bt=/([?&])_=[^&]*/,yt=/^(.*?):[ \t]*([^\r\n]*)$/gm,_t=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,wt=/^(?:GET|HEAD)$/,At=/^\/\//,Ct={},xt={},St="*/".concat("*"),Et=K.createElement("a");Et.href=ft.href,re.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ft.href,type:"GET",isLocal:_t.test(ft.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":St,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":re.parseJSON,"text xml":re.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?j(j(e,re.ajaxSettings),t):j(re.ajaxSettings,e)},ajaxPrefilter:H(Ct),ajaxTransport:H(xt),ajax:function(t,n){function i(t,n,i,s){var c,d,b,y,w,C=n;2!==_&&(_=2,l&&e.clearTimeout(l),r=void 0,a=s||"",A.readyState=t>0?4:0,c=t>=200&&t<300||304===t,i&&(y=W(h,A,i)),y=z(h,y,A,c),c?(h.ifModified&&((w=A.getResponseHeader("Last-Modified"))&&(re.lastModified[o]=w),(w=A.getResponseHeader("etag"))&&(re.etag[o]=w)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=y.state,d=y.data,c=!(b=y.error))):(b=C,!t&&C||(C="error",t<0&&(t=0))),A.status=t,A.statusText=(n||C)+"",c?m.resolveWith(p,[d,C,A]):m.rejectWith(p,[A,C,b]),A.statusCode(v),v=void 0,u&&f.trigger(c?"ajaxSuccess":"ajaxError",[A,h,c?d:b]),g.fireWith(p,[A,C]),u&&(f.trigger("ajaxComplete",[A,h]),--re.active||re.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var r,o,a,s,l,c,u,d,h=re.ajaxSetup({},n),p=h.context||h,f=h.context&&(p.nodeType||p.jquery)?re(p):re.event,m=re.Deferred(),g=re.Callbacks("once memory"),v=h.statusCode||{},b={},y={},_=0,w="canceled",A={readyState:0,getResponseHeader:function(e){var t;if(2===_){if(!s)for(s={};t=yt.exec(a);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===_?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return _||(e=y[n]=y[n]||e,b[e]=t),this},overrideMimeType:function(e){return _||(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(_<2)for(t in e)v[t]=[v[t],e[t]];else A.always(e[A.status]);return this},abort:function(e){var t=e||w;return r&&r.abort(t),i(0,t),this}};if(m.promise(A).complete=g.add,A.success=A.done,A.error=A.fail,h.url=((t||h.url||ft.href)+"").replace(vt,"").replace(At,ft.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=re.trim(h.dataType||"*").toLowerCase().match(ye)||[""],null==h.crossDomain){c=K.createElement("a");try{c.href=h.url,c.href=c.href,h.crossDomain=Et.protocol+"//"+Et.host!=c.protocol+"//"+c.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=re.param(h.data,h.traditional)),U(Ct,h,n,A),2===_)return A;(u=re.event&&h.global)&&0==re.active++&&re.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!wt.test(h.type),o=h.url,h.hasContent||(h.data&&(o=h.url+=(gt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(h.url=bt.test(o)?o.replace(bt,"$1_="+mt++):o+(gt.test(o)?"&":"?")+"_="+mt++)),h.ifModified&&(re.lastModified[o]&&A.setRequestHeader("If-Modified-Since",re.lastModified[o]),re.etag[o]&&A.setRequestHeader("If-None-Match",re.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&A.setRequestHeader("Content-Type",h.contentType),A.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+St+"; q=0.01":""):h.accepts["*"]);for(d in h.headers)A.setRequestHeader(d,h.headers[d]);if(h.beforeSend&&(!1===h.beforeSend.call(p,A,h)||2===_))return A.abort();w="abort";for(d in{success:1,error:1,complete:1})A[d](h[d]);if(r=U(xt,h,n,A)){if(A.readyState=1,u&&f.trigger("ajaxSend",[A,h]),2===_)return A;h.async&&h.timeout>0&&(l=e.setTimeout(function(){A.abort("timeout")},h.timeout));try{_=1,r.send(b,i)}catch(e){if(!(_<2))throw e;i(-1,e)}}else i(-1,"No Transport");return A},getJSON:function(e,t,n){return re.get(e,t,n,"json")},getScript:function(e,t){return re.get(e,void 0,t,"script")}}),re.each(["get","post"],function(e,t){re[t]=function(e,n,i,r){return re.isFunction(n)&&(r=r||i,i=n,n=void 0),re.ajax(re.extend({url:e,type:t,dataType:r,data:n,success:i},re.isPlainObject(e)&&e))}}),re._evalUrl=function(e){return re.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,throws:!0})},re.fn.extend({wrapAll:function(e){var t;return re.isFunction(e)?this.each(function(t){re(this).wrapAll(e.call(this,t))}):(this[0]&&(t=re(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstElementChild;)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return re.isFunction(e)?this.each(function(t){re(this).wrapInner(e.call(this,t))}):this.each(function(){var t=re(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=re.isFunction(e);return this.each(function(n){re(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){re.nodeName(this,"body")||re(this).replaceWith(this.childNodes)}).end()}}),re.expr.filters.hidden=function(e){return!re.expr.filters.visible(e)},re.expr.filters.visible=function(e){return e.offsetWidth>0||e.offsetHeight>0||e.getClientRects().length>0};var Tt=/%20/g,Dt=/\[\]$/,It=/\r?\n/g,kt=/^(?:submit|button|image|reset|file)$/i,Mt=/^(?:input|select|textarea|keygen)/i;re.param=function(e,t){var n,i=[],r=function(e,t){t=re.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=re.ajaxSettings&&re.ajaxSettings.traditional),re.isArray(e)||e.jquery&&!re.isPlainObject(e))re.each(e,function(){r(this.name,this.value)});else for(n in e)q(n,e[n],t,r);return i.join("&").replace(Tt,"+")},re.fn.extend({serialize:function(){return re.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=re.prop(this,"elements");return e?re.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!re(this).is(":disabled")&&Mt.test(this.nodeName)&&!kt.test(e)&&(this.checked||!Me.test(e))}).map(function(e,t){var n=re(this).val();return null==n?null:re.isArray(n)?re.map(n,function(e){return{name:t.name,value:e.replace(It,"\r\n")}}):{name:t.name,value:n.replace(It,"\r\n")}}).get()}}),re.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Pt={0:200,1223:204},$t=re.ajaxSettings.xhr();ie.cors=!!$t&&"withCredentials"in $t,ie.ajax=$t=!!$t,re.ajaxTransport(function(t){var n,i;if(ie.cors||$t&&!t.crossDomain)return{send:function(r,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(a in r)s.setRequestHeader(a,r[a]);n=function(e){return function(){n&&(n=i=s.onload=s.onerror=s.onabort=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Pt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),i=s.onerror=n("error"),void 0!==s.onabort?s.onabort=i:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&i()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),re.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return re.globalEval(e),e}}}),re.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),re.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,r){t=re("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&r("error"===e.type?404:200,e.type)}),K.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Nt=[],Ot=/(=)\?(?=&|$)|\?\?/;re.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Nt.pop()||re.expando+"_"+mt++;return this[e]=!0,e}}),re.ajaxPrefilter("json jsonp",function(t,n,i){var r,o,a,s=!1!==t.jsonp&&(Ot.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ot.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return r=t.jsonpCallback=re.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Ot,"$1"+r):!1!==t.jsonp&&(t.url+=(gt.test(t.url)?"&":"?")+t.jsonp+"="+r),t.converters["script json"]=function(){return a||re.error(r+" was not called"),a[0]},t.dataTypes[0]="json",o=e[r],e[r]=function(){a=arguments},i.always(function(){void 0===o?re(e).removeProp(r):e[r]=o,t[r]&&(t.jsonpCallback=n.jsonpCallback,Nt.push(r)),a&&re.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),re.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||K;var i=pe.exec(e),r=!n&&[];return i?[t.createElement(i[1])]:(i=h([e],t,r),r&&r.length&&re(r).remove(),re.merge([],i.childNodes))};var Rt=re.fn.load;re.fn.load=function(e,t,n){if("string"!=typeof e&&Rt)return Rt.apply(this,arguments);var i,r,o,a=this,s=e.indexOf(" ");return s>-1&&(i=re.trim(e.slice(s)),e=e.slice(0,s)),re.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(r="POST"),a.length>0&&re.ajax({url:e,type:r||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(i?re("<div>").append(re.parseHTML(e)).find(i):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},re.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){re.fn[t]=function(e){return this.on(t,e)}}),re.expr.filters.animated=function(e){return re.grep(re.timers,function(t){return e===t.elem}).length},re.offset={setOffset:function(e,t,n){var i,r,o,a,s,l,c=re.css(e,"position"),u=re(e),d={};"static"===c&&(e.style.position="relative"),s=u.offset(),o=re.css(e,"top"),l=re.css(e,"left"),("absolute"===c||"fixed"===c)&&(o+l).indexOf("auto")>-1?(a=(i=u.position()).top,r=i.left):(a=parseFloat(o)||0,r=parseFloat(l)||0),re.isFunction(t)&&(t=t.call(e,n,re.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+r),"using"in t?t.using.call(e,d):u.css(d)}},re.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){re.offset.setOffset(this,e,t)});var t,n,i=this[0],r={top:0,left:0},o=i&&i.ownerDocument;if(o)return t=o.documentElement,re.contains(t,i)?(r=i.getBoundingClientRect(),n=V(o),{top:r.top+n.pageYOffset-t.clientTop,left:r.left+n.pageXOffset-t.clientLeft}):r},position:function(){if(this[0]){var e,t,n=this[0],i={top:0,left:0};return"fixed"===re.css(n,"position")?t=n.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),re.nodeName(e[0],"html")||(i=e.offset()),i.top+=re.css(e[0],"borderTopWidth",!0),i.left+=re.css(e[0],"borderLeftWidth",!0)),{top:t.top-i.top-re.css(n,"marginTop",!0),left:t.left-i.left-re.css(n,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===re.css(e,"position");)e=e.offsetParent;return e||Qe})}}),re.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;re.fn[e]=function(i){return we(this,function(e,i,r){var o=V(e);if(void 0===r)return o?o[t]:e[i];o?o.scrollTo(n?o.pageXOffset:r,n?r:o.pageYOffset):e[i]=r},e,i,arguments.length)}}),re.each(["top","left"],function(e,t){re.cssHooks[t]=T(ie.pixelPosition,function(e,n){if(n)return n=E(e,t),Ve.test(n)?re(e).position()[t]+"px":n})}),re.each({Height:"height",Width:"width"},function(e,t){re.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,i){re.fn[i]=function(i,r){var o=arguments.length&&(n||"boolean"!=typeof i),a=n||(!0===i||!0===r?"margin":"border");return we(this,function(t,n,i){var r;return re.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(r=t.documentElement,Math.max(t.body["scroll"+e],r["scroll"+e],t.body["offset"+e],r["offset"+e],r["client"+e])):void 0===i?re.css(t,n,a):re.style(t,n,i,a)},t,o?i:void 0,o,null)}})}),re.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,i){return this.on(t,e,n,i)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},size:function(){return this.length}}),re.fn.andSelf=re.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return re});var Lt=e.jQuery,Gt=e.$;return re.noConflict=function(t){return e.$===re&&(e.$=Gt),t&&e.jQuery===re&&(e.jQuery=Lt),re},t||(e.jQuery=e.$=re),re}),function(e){"use strict";function t(e,t){return t=t||Error,function(){var n,i,r=arguments,o=r[0],a="["+(e?e+":":"")+o+"] ";for(a+=r[1].replace(/\{\d+\}/g,function(e){var t=+e.slice(1,-1)+2;return t<r.length?ve(r[t]):e}),a+="\nhttp://errors.angularjs.org/1.5.10/"+(e?e+"/":"")+o,i=2,n="?";i<r.length;i++,n="&")a+=n+"p"+(i-2)+"="+encodeURIComponent(ve(r[i]));return new t(a)}}function n(e){if(null==e||E(e))return!1;if(er(e)||w(e)||Ui&&e instanceof Ui)return!0;var t="length"in Object(e)&&e.length;return A(t)&&(t>=0&&(t-1 in e||e instanceof Array)||"function"==typeof e.item)}function i(e,t,r){var o,a;if(e)if(x(e))for(o in e)"prototype"===o||"length"===o||"name"===o||e.hasOwnProperty&&!e.hasOwnProperty(o)||t.call(r,e[o],o,e);else if(er(e)||n(e)){var s="object"!=typeof e;for(o=0,a=e.length;o<a;o++)(s||o in e)&&t.call(r,e[o],o,e)}else if(e.forEach&&e.forEach!==i)e.forEach(t,r,e);else if(_(e))for(o in e)t.call(r,e[o],o,e);else if("function"==typeof e.hasOwnProperty)for(o in e)e.hasOwnProperty(o)&&t.call(r,e[o],o,e);else for(o in e)Ri.call(e,o)&&t.call(r,e[o],o,e);return e}function r(e,t,n){for(var i=Object.keys(e).sort(),r=0;r<i.length;r++)t.call(n,e[i[r]],i[r]);return i}function o(e){return function(t,n){e(n,t)}}function a(){return++Zi}function s(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function l(e,t,n){for(var i=e.$$hashKey,r=0,o=t.length;r<o;++r){var a=t[r];if(y(a)||x(a))for(var c=Object.keys(a),u=0,d=c.length;u<d;u++){var h=c[u],p=a[h];n&&y(p)?C(p)?e[h]=new Date(p.valueOf()):S(p)?e[h]=new RegExp(p):p.nodeName?e[h]=p.cloneNode(!0):O(p)?e[h]=p.clone():(y(e[h])||(e[h]=er(p)?[]:{}),l(e[h],[p],!0)):e[h]=p}}return s(e,i),e}function c(e){return l(e,zi.call(arguments,1),!1)}function u(e){return l(e,zi.call(arguments,1),!0)}function d(e){return parseInt(e,10)}function h(e,t){return c(Object.create(e),t)}function p(){}function f(e){return e}function m(e){return function(){return e}}function g(e){return x(e.toString)&&e.toString!==Yi}function v(e){return void 0===e}function b(e){return void 0!==e}function y(e){return null!==e&&"object"==typeof e}function _(e){return null!==e&&"object"==typeof e&&!Ki(e)}function w(e){return"string"==typeof e}function A(e){return"number"==typeof e}function C(e){return"[object Date]"===Yi.call(e)}function x(e){return"function"==typeof e}function S(e){return"[object RegExp]"===Yi.call(e)}function E(e){return e&&e.window===e}function T(e){return e&&e.$evalAsync&&e.$watch}function D(e){return"[object File]"===Yi.call(e)}function I(e){return"[object FormData]"===Yi.call(e)}function k(e){return"[object Blob]"===Yi.call(e)}function M(e){return"boolean"==typeof e}function P(e){return e&&x(e.then)}function $(e){return e&&A(e.length)&&tr.test(Yi.call(e))}function N(e){return"[object ArrayBuffer]"===Yi.call(e)}function O(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function R(e){var t,n={},i=e.split(",");for(t=0;t<i.length;t++)n[i[t]]=!0;return n}function L(e){return Li(e.nodeName||e[0]&&e[0].nodeName)}function G(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),n}function B(e,t){function n(e,t){var n,i=t.$$hashKey;if(er(e))for(var o=0,a=e.length;o<a;o++)t.push(r(e[o]));else if(_(e))for(n in e)t[n]=r(e[n]);else if(e&&"function"==typeof e.hasOwnProperty)for(n in e)e.hasOwnProperty(n)&&(t[n]=r(e[n]));else for(n in e)Ri.call(e,n)&&(t[n]=r(e[n]));return s(t,i),t}function r(e){if(!y(e))return e;var t=a.indexOf(e);if(-1!==t)return l[t];if(E(e)||T(e))throw Qi("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");var i=!1,r=o(e);return void 0===r&&(r=er(e)?[]:Object.create(Ki(e)),i=!0),a.push(e),l.push(r),i?n(e,r):r}function o(e){switch(Yi.call(e)){case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Float32Array]":case"[object Float64Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return new e.constructor(r(e.buffer),e.byteOffset,e.length);case"[object ArrayBuffer]":if(!e.slice){var t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(new Uint8Array(e)),t}return e.slice(0);case"[object Boolean]":case"[object Number]":case"[object String]":case"[object Date]":return new e.constructor(e.valueOf());case"[object RegExp]":var n=new RegExp(e.source,e.toString().match(/[^/]*$/)[0]);return n.lastIndex=e.lastIndex,n;case"[object Blob]":return new e.constructor([e],{type:e.type})}if(x(e.cloneNode))return e.cloneNode(!0)}var a=[],l=[];if(t){if($(t)||N(t))throw Qi("cpta","Can't copy! TypedArray destination cannot be mutated.");if(e===t)throw Qi("cpi","Can't copy! Source and destination are identical.");return er(t)?t.length=0:i(t,function(e,n){"$$hashKey"!==n&&delete t[n]}),a.push(e),l.push(t),n(e,t)}return r(e)}function F(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!==e&&t!==t)return!0;var n,i,r,o=typeof e;if(o===typeof t&&"object"===o){if(!er(e)){if(C(e))return!!C(t)&&F(e.getTime(),t.getTime());if(S(e))return!!S(t)&&e.toString()===t.toString();if(T(e)||T(t)||E(e)||E(t)||er(t)||C(t)||S(t))return!1;r=pe();for(i in e)if("$"!==i.charAt(0)&&!x(e[i])){if(!F(e[i],t[i]))return!1;r[i]=!0}for(i in t)if(!(i in r)&&"$"!==i.charAt(0)&&b(t[i])&&!x(t[i]))return!1;return!0}if(!er(t))return!1;if((n=e.length)===t.length){for(i=0;i<n;i++)if(!F(e[i],t[i]))return!1;return!0}}return!1}function H(e,t,n){return e.concat(zi.call(t,n))}function U(e,t){return zi.call(e,t||0)}function j(e,t){var n=arguments.length>2?U(arguments,2):[];return!x(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,H(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function W(t,n){var i=n;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?i=void 0:E(n)?i="$WINDOW":n&&e.document===n?i="$DOCUMENT":T(n)&&(i="$SCOPE"),i}function z(e,t){if(!v(e))return A(t)||(t=t?2:null),JSON.stringify(e,W,t)}function q(e){return w(e)?JSON.parse(e):e}function V(e,t){e=e.replace(ar,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return Ji(n)?t:n}function Y(e,t){return(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t),e}function K(e,t,n){n=n?-1:1;var i=e.getTimezoneOffset();return Y(e,n*(V(t,i)-i))}function Q(e){e=Ui(e).clone();try{e.empty()}catch(e){}var t=Ui("<div>").append(e).html();try{return e[0].nodeType===hr?Li(t):t.match(/^(<[^>]+>)/)[1].replace(/^<([\w-]+)/,function(e,t){return"<"+Li(t)})}catch(e){return Li(t)}}function X(e){try{return decodeURIComponent(e)}catch(e){}}function Z(e){var t={};return i((e||"").split("&"),function(e){var n,i,r;e&&(i=e=e.replace(/\+/g,"%20"),-1!==(n=e.indexOf("="))&&(i=e.substring(0,n),r=e.substring(n+1)),b(i=X(i))&&(r=!b(r)||X(r),Ri.call(t,i)?er(t[i])?t[i].push(r):t[i]=[t[i],r]:t[i]=r))}),t}function J(e){var t=[];return i(e,function(e,n){er(e)?i(e,function(e){t.push(te(n,!0)+(!0===e?"":"="+te(e,!0)))}):t.push(te(n,!0)+(!0===e?"":"="+te(e,!0)))}),t.length?t.join("&"):""}function ee(e){return te(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function te(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}function ne(e,t){var n,i,r=sr.length;for(i=0;i<r;++i)if(n=sr[i]+t,w(n=e.getAttribute(n)))return n;return null}function ie(t,n){var r,o,a={};if(i(sr,function(e){var n=e+"app";!r&&t.hasAttribute&&t.hasAttribute(n)&&(r=t,o=t.getAttribute(n))}),i(sr,function(e){var n,i=e+"app";!r&&(n=t.querySelector("["+i.replace(":","\\:")+"]"))&&(r=n,o=n.getAttribute(i))}),r){if(!lr)return void e.console.error("Angular: disabling automatic bootstrap. <script> protocol indicates an extension, document.location.href does not match.");a.strictDi=null!==ne(r,"strict-di"),n(r,o?[o]:[],a)}}function re(t,n,r){y(r)||(r={}),r=c({strictDi:!1},r);var o=function(){if((t=Ui(t)).injector()){var i=t[0]===e.document?"document":Q(t);throw Qi("btstrpd","App already bootstrapped with this element '{0}'",i.replace(/</,"&lt;").replace(/>/,"&gt;"))}(n=n||[]).unshift(["$provide",function(e){e.value("$rootElement",t)}]),r.debugInfoEnabled&&n.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),n.unshift("ng");var o=tt(n,r.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,i){e.$apply(function(){t.data("$injector",i),n(t)(e)})}]),o},a=/^NG_ENABLE_DEBUG_INFO!/,s=/^NG_DEFER_BOOTSTRAP!/;if(e&&a.test(e.name)&&(r.debugInfoEnabled=!0,e.name=e.name.replace(a,"")),e&&!s.test(e.name))return o();e.name=e.name.replace(s,""),Xi.resumeBootstrap=function(e){return i(e,function(e){n.push(e)}),o()},x(Xi.resumeDeferredBootstrap)&&Xi.resumeDeferredBootstrap()}function oe(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function ae(e){var t=Xi.element(e).injector();if(!t)throw Qi("test","no injector found for element argument to getTestability");return t.get("$$testability")}function se(e,t){return t=t||"_",e.replace(cr,function(e,n){return(n?t:"")+e.toLowerCase()})}function le(e,t,n){if(!e)throw Qi("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function ce(e,t,n){return n&&er(e)&&(e=e[e.length-1]),le(x(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function ue(e,t){if("hasOwnProperty"===e)throw Qi("badname","hasOwnProperty is not a valid {0} name",t)}function de(e,t,n){if(!t)return e;for(var i,r=t.split("."),o=e,a=r.length,s=0;s<a;s++)i=r[s],e&&(e=(o=e)[i]);return!n&&x(e)?j(o,e):e}function he(e){for(var t,n=e[0],i=e[e.length-1],r=1;n!==i&&(n=n.nextSibling);r++)(t||e[r]!==n)&&(t||(t=Ui(zi.call(e,0,r))),t.push(n));return t||e}function pe(){return Object.create(null)}function fe(e){function n(e,t,n){return e[t]||(e[t]=n())}var i=t("$injector"),r=t("ng"),o=n(e,"angular",Object);return o.$$minErr=o.$$minErr||t,n(o,"module",function(){var e={};return function(t,o,a){return function(e,t){if("hasOwnProperty"===e)throw r("badname","hasOwnProperty is not a valid {0} name",t)}(t,"module"),o&&e.hasOwnProperty(t)&&(e[t]=null),n(e,t,function(){function e(e,t,n,i){return i||(i=r),function(){return i[n||"push"]([e,t,arguments]),u}}function n(e,n){return function(i,o){return o&&x(o)&&(o.$$moduleName=t),r.push([e,n,arguments]),u}}if(!o)throw i("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",t);var r=[],s=[],l=[],c=e("$injector","invoke","push",s),u={_invokeQueue:r,_configBlocks:s,_runBlocks:l,requires:o,name:t,provider:n("$provide","provider"),factory:n("$provide","factory"),service:n("$provide","service"),value:e("$provide","value"),constant:e("$provide","constant","unshift"),decorator:n("$provide","decorator"),animation:n("$animateProvider","register"),filter:n("$filterProvider","register"),controller:n("$controllerProvider","register"),directive:n("$compileProvider","directive"),component:n("$compileProvider","component"),config:c,run:function(e){return l.push(e),this}};return a&&c(a),u})}})}function me(e,t){if(er(e)){t=t||[];for(var n=0,i=e.length;n<i;n++)t[n]=e[n]}else if(y(e)){t=t||{};for(var r in e)"$"===r.charAt(0)&&"$"===r.charAt(1)||(t[r]=e[r])}return t||e}function ge(e){var t=[];return JSON.stringify(e,function(e,n){if(n=W(e,n),y(n)){if(t.indexOf(n)>=0)return"...";t.push(n)}return n})}function ve(e){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):v(e)?"undefined":"string"!=typeof e?ge(e):e}function be(){return++br}function ye(e){return e.replace(wr,function(e,t,n,i){return i?n.toUpperCase():n}).replace(Ar,"Moz$1")}function _e(e){return!Er.test(e)}function we(e){var t=e.nodeType;return t===dr||!t||t===fr}function Ae(e){for(var t in vr[e.ng339])return!0;return!1}function Ce(e){for(var t=0,n=e.length;t<n;t++)Me(e[t])}function xe(e,t){var n,r,o,a,s=t.createDocumentFragment(),l=[];if(_e(e))l.push(t.createTextNode(e));else{for(n=s.appendChild(t.createElement("div")),r=(Tr.exec(e)||["",""])[1].toLowerCase(),o=Ir[r]||Ir._default,n.innerHTML=o[1]+e.replace(Dr,"<$1></$2>")+o[2],a=o[0];a--;)n=n.lastChild;l=H(l,n.childNodes),(n=s.firstChild).textContent=""}return s.textContent="",s.innerHTML="",i(l,function(e){s.appendChild(e)}),s}function Se(t,n){n=n||e.document;var i;return(i=Sr.exec(t))?[n.createElement(i[1])]:(i=xe(t,n))?i.childNodes:[]}function Ee(e,t){var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)}function Te(e){if(e instanceof Te)return e;var t;if(w(e)&&(e=nr(e),t=!0),!(this instanceof Te)){if(t&&"<"!==e.charAt(0))throw xr("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new Te(e)}t?Le(this,Se(e)):Le(this,e)}function De(e){return e.cloneNode(!0)}function Ie(e,t){if(t||Me(e),e.querySelectorAll)for(var n=e.querySelectorAll("*"),i=0,r=n.length;i<r;i++)Me(n[i])}function ke(e,t,n,r){if(b(r))throw xr("offargs","jqLite#off() does not support the `selector` argument");var o=Pe(e),a=o&&o.events,s=o&&o.handle;if(s)if(t){var l=function(t){var i=a[t];b(n)&&G(i||[],n),b(n)&&i&&i.length>0||(_r(e,t,s),delete a[t])};i(t.split(" "),function(e){l(e),Cr[e]&&l(Cr[e])})}else for(t in a)"$destroy"!==t&&_r(e,t,s),delete a[t]}function Me(e,t){var n=e.ng339,i=n&&vr[n];if(i){if(t)return void delete i.data[t];i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),ke(e)),delete vr[n],e.ng339=void 0}}function Pe(e,t){var n=e.ng339,i=n&&vr[n];return t&&!i&&(e.ng339=n=be(),i=vr[n]={events:{},data:{},handle:void 0}),i}function $e(e,t,n){if(we(e)){var i=b(n),r=!i&&t&&!y(t),o=!t,a=Pe(e,!r),s=a&&a.data;if(i)s[t]=n;else{if(o)return s;if(r)return s&&s[t];c(s,t)}}}function Ne(e,t){return!!e.getAttribute&&(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1}function Oe(e,t){t&&e.setAttribute&&i(t.split(" "),function(t){e.setAttribute("class",nr((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+nr(t)+" "," ")))})}function Re(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");i(t.split(" "),function(e){e=nr(e),-1===n.indexOf(" "+e+" ")&&(n+=e+" ")}),e.setAttribute("class",nr(n))}}function Le(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var i=0;i<n;i++)e[e.length++]=t[i]}else e[e.length++]=t}}function Ge(e,t){return Be(e,"$"+(t||"ngController")+"Controller")}function Be(e,t,n){e.nodeType===fr&&(e=e.documentElement);for(var i=er(t)?t:[t];e;){for(var r=0,o=i.length;r<o;r++)if(b(n=Ui.data(e,i[r])))return n;e=e.parentNode||e.nodeType===mr&&e.host}}function Fe(e){for(Ie(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function He(e,t){t||Ie(e);var n=e.parentNode;n&&n.removeChild(e)}function Ue(t,n){"complete"===(n=n||e).document.readyState?n.setTimeout(t):Ui(n).on("load",t)}function je(e,t){var n=Pr[t.toLowerCase()];return n&&$r[L(e)]&&n}function We(e){return Nr[e]}function ze(e,t){var n=function(n,i){n.isDefaultPrevented=function(){return n.defaultPrevented};var r=t[i||n.type],o=r?r.length:0;if(o){if(v(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return!0===n.immediatePropagationStopped};var s=r.specialHandlerWrapper||qe;o>1&&(r=me(r));for(var l=0;l<o;l++)n.isImmediatePropagationStopped()||s(e,n,r[l])}};return n.elem=e,n}function qe(e,t,n){n.call(e,t)}function Ve(e,t,n){var i=t.relatedTarget;i&&(i===e||kr.call(e,i))||n.call(e,t)}function Ye(){this.$get=function(){return c(Te,{hasClass:function(e,t){return e.attr&&(e=e[0]),Ne(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),Re(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),Oe(e,t)}})}}function Ke(e,t){var n=e&&e.$$hashKey;if(n)return"function"==typeof n&&(n=e.$$hashKey()),n;var i=typeof e;return n="function"===i||"object"===i&&null!==e?e.$$hashKey=i+":"+(t||a)():i+":"+e}function Qe(e,t){if(t){var n=0;this.nextUid=function(){return++n}}i(e,this.put,this)}function Xe(e){return Function.prototype.toString.call(e)+" "}function Ze(e){var t=Xe(e).replace(Fr,"");return t.match(Rr)||t.match(Lr)}function Je(e){var t=Ze(e);return t?"function("+(t[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function et(e,t,n){var r,o;if("function"==typeof e){if(!(r=e.$inject)){if(r=[],e.length){if(t)throw w(n)&&n||(n=e.name||Je(e)),Hr("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);i(Ze(e)[1].split(Gr),function(e){e.replace(Br,function(e,t,n){r.push(n)})})}e.$inject=r}}else er(e)?(ce(e[o=e.length-1],"fn"),r=e.slice(0,o)):ce(e,"fn",!0);return r}function tt(e,t){function n(e){return function(t,n){if(!y(t))return e(t,n);i(t,o(e))}}function r(e,t){if(ue(e,"service"),(x(t)||er(t))&&(t=C.instantiate(t)),!t.$get)throw Hr("pget","Provider '{0}' must define $get factory method.",e);return A[e+g]=t}function a(e,t){return function(){var n=T.invoke(t,this);if(v(n))throw Hr("undef","Provider '{0}' must return a value from $get factory method.",e);return n}}function s(e,t,n){return r(e,{$get:!1!==n?a(e,t):t})}function l(e,t){return s(e,["$injector",function(e){return e.instantiate(t)}])}function c(e,t){return s(e,m(t),!1)}function u(e,t){ue(e,"constant"),A[e]=t,S[e]=t}function d(e,t){var n=C.get(e+g),i=n.$get;n.$get=function(){var e=T.invoke(i,n);return T.invoke(t,null,{$delegate:e})}}function h(e){le(v(e)||er(e),"modulesToLoad","not an array");var t,n=[];return i(e,function(e){function i(e){var t,n;for(t=0,n=e.length;t<n;t++){var i=e[t],r=C.get(i[0]);r[i[1]].apply(r,i[2])}}if(!_.get(e)){_.put(e,!0);try{w(e)?(t=Wi(e),n=n.concat(h(t.requires)).concat(t._runBlocks),i(t._invokeQueue),i(t._configBlocks)):x(e)?n.push(C.invoke(e)):er(e)?n.push(C.invoke(e)):ce(e,"module")}catch(t){throw er(e)&&(e=e[e.length-1]),t.message&&t.stack&&-1===t.stack.indexOf(t.message)&&(t=t.message+"\n"+t.stack),Hr("modulerr","Failed to instantiate module {0} due to:\n{1}",e,t.stack||t.message||t)}}}),n}function p(e,n){function i(t,i){if(e.hasOwnProperty(t)){if(e[t]===f)throw Hr("cdep","Circular dependency found: {0}",t+" <- "+b.join(" <- "));return e[t]}try{return b.unshift(t),e[t]=f,e[t]=n(t,i),e[t]}catch(n){throw e[t]===f&&delete e[t],n}finally{b.shift()}}function r(e,n,r){for(var o=[],a=tt.$$annotate(e,t,r),s=0,l=a.length;s<l;s++){var c=a[s];if("string"!=typeof c)throw Hr("itkn","Incorrect injection token! Expected service name as string, got {0}",c);o.push(n&&n.hasOwnProperty(c)?n[c]:i(c,r))}return o}function o(e){return!(Hi<=11)&&("function"==typeof e&&/^(?:class\b|constructor\()/.test(Xe(e)))}function a(e,t,n,i){"string"==typeof n&&(i=n,n=null);var a=r(e,n,i);return er(e)&&(e=e[e.length-1]),o(e)?(a.unshift(null),new(Function.prototype.bind.apply(e,a))):e.apply(t,a)}function s(e,t,n){var i=er(e)?e[e.length-1]:e,o=r(e,t,n);return o.unshift(null),new(Function.prototype.bind.apply(i,o))}return{invoke:a,instantiate:s,get:i,annotate:tt.$$annotate,has:function(t){return A.hasOwnProperty(t+g)||e.hasOwnProperty(t)}}}t=!0===t;var f={},g="Provider",b=[],_=new Qe([],!0),A={$provide:{provider:n(r),factory:n(s),service:n(l),value:n(c),constant:n(u),decorator:d}},C=A.$injector=p(A,function(e,t){throw Xi.isString(t)&&b.push(t),Hr("unpr","Unknown provider: {0}",b.join(" <- "))}),S={},E=p(S,function(e,t){var n=C.get(e+g,t);return T.invoke(n.$get,n,void 0,e)}),T=E;A["$injector"+g]={$get:m(E)};var D=h(e);return T=E.get("$injector"),T.strictDi=t,i(D,function(e){e&&T.invoke(e)}),T}function nt(){var e=!0;this.disableAutoScrolling=function(){e=!1},this.$get=["$window","$location","$rootScope",function(t,n,i){function r(e){var t=null;return Array.prototype.some.call(e,function(e){if("a"===L(e))return t=e,!0}),t}function o(){var e=s.yOffset;if(x(e))e=e();else if(O(e)){var n=e[0];e="fixed"!==t.getComputedStyle(n).position?0:n.getBoundingClientRect().bottom}else A(e)||(e=0);return e}function a(e){if(e){e.scrollIntoView();var n=o();if(n){var i=e.getBoundingClientRect().top;t.scrollBy(0,i-n)}}else t.scrollTo(0,0)}function s(e){var t;(e=w(e)?e:A(e)?e.toString():n.hash())?(t=l.getElementById(e))?a(t):(t=r(l.getElementsByName(e)))?a(t):"top"===e&&a(null):a(null)}var l=t.document;return e&&i.$watch(function(){return n.hash()},function(e,t){e===t&&""===e||Ue(function(){i.$evalAsync(s)})}),s}]}function it(e,t){return e||t?e?t?(er(e)&&(e=e.join(" ")),er(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function rt(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===jr)return n}}function ot(e){w(e)&&(e=e.split(" "));var t=pe();return i(e,function(e){e.length&&(t[e]=!0)}),t}function at(e){return y(e)?e:{}}function st(e,t,n,r){function o(e){try{e.apply(null,U(arguments,1))}finally{if(0===--b)for(;y.length;)try{y.pop()()}catch(e){n.error(e)}}}function a(e){var t=e.indexOf("#");return-1===t?"":e.substr(t)}function s(){x=null,l(),c()}function l(){_=S(),F(_=v(_)?null:_,D)&&(_=D),D=_}function c(){A===u.url()&&w===_||(A=u.url(),w=_,i(E,function(e){e(u.url(),_)}))}var u=this,d=e.location,h=e.history,f=e.setTimeout,m=e.clearTimeout,g={};u.isMock=!1;var b=0,y=[];u.$$completeOutstandingRequest=o,u.$$incOutstandingRequestCount=function(){b++},u.notifyWhenNoOutstandingRequests=function(e){0===b?e():y.push(e)};var _,w,A=d.href,C=t.find("base"),x=null,S=r.history?function(){try{return h.state}catch(e){}}:p;l(),w=_,u.url=function(t,n,i){if(v(i)&&(i=null),d!==e.location&&(d=e.location),h!==e.history&&(h=e.history),t){var o=w===i;if(A===t&&(!r.history||o))return u;var s=A&&Ht(A)===Ht(t);return A=t,w=i,!r.history||s&&o?(s||(x=t),n?d.replace(t):s?d.hash=a(t):d.href=t,d.href!==t&&(x=t)):(h[n?"replaceState":"pushState"](i,"",t),l(),w=_),x&&(x=t),u}return x||d.href.replace(/%27/g,"'")},u.state=function(){return _};var E=[],T=!1,D=null;u.onUrlChange=function(t){return T||(r.history&&Ui(e).on("popstate",s),Ui(e).on("hashchange",s),T=!0),E.push(t),t},u.$$applicationDestroyed=function(){Ui(e).off("hashchange popstate",s)},u.$$checkUrlChange=c,u.baseHref=function(){var e=C.attr("href");return e?e.replace(/^(https?:)?\/\/[^/]*/,""):""},u.defer=function(e,t){var n;return b++,n=f(function(){delete g[n],o(e)},t||0),g[n]=!0,n},u.defer.cancel=function(e){return!!g[e]&&(delete g[e],m(e),o(p),!0)}}function lt(){this.$get=["$window","$log","$sniffer","$document",function(e,t,n,i){return new st(e,i,t,n)}]}function ct(){this.$get=function(){function e(e,i){function r(e){e!==h&&(p?p===e&&(p=e.n):p=e,o(e.n,e.p),o(e,h),(h=e).n=null)}function o(e,t){e!==t&&(e&&(e.p=t),t&&(t.n=e))}if(e in n)throw t("$cacheFactory")("iid","CacheId '{0}' is already taken!",e);var a=0,s=c({},i,{id:e}),l=pe(),u=i&&i.capacity||Number.MAX_VALUE,d=pe(),h=null,p=null;return n[e]={put:function(e,t){if(!v(t))return u<Number.MAX_VALUE&&r(d[e]||(d[e]={key:e})),e in l||a++,l[e]=t,a>u&&this.remove(p.key),t},get:function(e){if(u<Number.MAX_VALUE){var t=d[e];if(!t)return;r(t)}return l[e]},remove:function(e){if(u<Number.MAX_VALUE){var t=d[e];if(!t)return;t===h&&(h=t.p),t===p&&(p=t.n),o(t.n,t.p),delete d[e]}e in l&&(delete l[e],a--)},removeAll:function(){l=pe(),a=0,d=pe(),h=p=null},destroy:function(){l=null,s=null,d=null,delete n[e]},info:function(){return c({},s,{size:a})}}}var n={};return e.info=function(){var e={};return i(n,function(t,n){e[n]=t.info()}),e},e.get=function(e){return n[e]},e}}function ut(){this.$get=["$cacheFactory",function(e){return e("templates")}]}function dt(){}function ht(t,n){function r(e,t,n){var r=/^\s*([@&<]|=(\*?))(\??)\s*(\w*)\s*$/,o=pe();return i(e,function(e,i){if(e in D)o[i]=D[e];else{var a=e.match(r);if(!a)throw Qr("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",t,i,e,n?"controller bindings definition":"isolate scope definition");o[i]={mode:a[1][0],collection:"*"===a[2],optional:"?"===a[3],attrName:a[4]||i},a[4]&&(D[e]=o[i])}}),o}function a(e,t){var n={isolateScope:null,bindToController:null};if(y(e.scope)&&(!0===e.bindToController?(n.bindToController=r(e.scope,t,!0),n.isolateScope={}):n.isolateScope=r(e.scope,t,!1)),y(e.bindToController)&&(n.bindToController=r(e.bindToController,t,!0)),n.bindToController&&!e.controller)throw Qr("noctrl","Cannot bind to controller without directive '{0}'s controller.",t);return n}function s(e){var t=e.charAt(0);if(!t||t!==Li(t))throw Qr("baddir","Directive/Component name '{0}' is invalid. The first character must be a lowercase letter",e);if(e!==e.trim())throw Qr("baddir","Directive/Component name '{0}' is invalid. The name should not contain leading or trailing whitespaces",e)}function l(e){var t=e.require||e.controller&&e.name;return!er(t)&&y(t)&&i(t,function(e,n){var i=e.match(S);e.substring(i[0].length)||(t[n]=i[0]+n)}),t}function u(e,t){if(e&&(!w(e)||!/[EACM]/.test(e)))throw Qr("badrestrict","Restrict property '{0}' of directive '{1}' is invalid",e,t);return e||"EA"}var d={},g="Directive",_=/^\s*directive:\s*([\w-]+)\s+(.*)$/,A=/(([\w-]+)(?::([^;]+))?;?)/,C=R("ngSrc,ngSrcset,src,srcset"),S=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,E=/^(on[a-z]+|formaction)$/,D=pe();this.directive=function e(n,r){return le(n,"name"),ue(n,"directive"),w(n)?(s(n),le(r,"directiveFactory"),d.hasOwnProperty(n)||(d[n]=[],t.factory(n+g,["$injector","$exceptionHandler",function(e,t){var r=[];return i(d[n],function(i,o){try{var a=e.invoke(i);x(a)?a={compile:m(a)}:!a.compile&&a.link&&(a.compile=m(a.link)),a.priority=a.priority||0,a.index=o,a.name=a.name||n,a.require=l(a),a.restrict=u(a.restrict,n),a.$$moduleName=i.$$moduleName,r.push(a)}catch(e){t(e)}}),r}])),d[n].push(r)):i(n,o(e)),this},this.component=function(e,t){function n(e){function n(t){return x(t)||er(t)?function(n,i){return e.invoke(t,this,{$element:n,$attrs:i})}:t}var o=t.template||t.templateUrl?t.template:"",a={controller:r,controllerAs:vt(t.controller)||t.controllerAs||"$ctrl",template:n(o),templateUrl:n(t.templateUrl),transclude:t.transclude,scope:{},bindToController:t.bindings||{},restrict:"E",require:t.require};return i(t,function(e,t){"$"===t.charAt(0)&&(a[t]=e)}),a}var r=t.controller||function(){};return i(t,function(e,t){"$"===t.charAt(0)&&(n[t]=e,x(r)&&(r[t]=e))}),n.$inject=["$injector"],this.directive(e,n)},this.aHrefSanitizationWhitelist=function(e){return b(e)?(n.aHrefSanitizationWhitelist(e),this):n.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(e){return b(e)?(n.imgSrcSanitizationWhitelist(e),this):n.imgSrcSanitizationWhitelist()};var I=!0;this.debugInfoEnabled=function(e){return b(e)?(I=e,this):I};var k=!0;this.preAssignBindingsEnabled=function(e){return b(e)?(k=e,this):k};var P=10;this.onChangesTtl=function(e){return arguments.length?(P=e,this):P};var $=!0;this.commentDirectivesEnabled=function(e){return arguments.length?($=e,this):$};var N=!0;this.cssClassDirectivesEnabled=function(e){return arguments.length?(N=e,this):N},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$sce","$animate","$$sanitizeUri",function(t,n,r,o,s,l,u,m,D,O){function R(){try{if(!--ke)throw Ce=void 0,Qr("infchng","{0} $onChanges() iterations reached. Aborting!\n",P);u.$apply(function(){for(var e=[],t=0,n=Ce.length;t<n;++t)try{Ce[t]()}catch(t){e.push(t)}if(Ce=void 0,e.length)throw e})}finally{ke++}}function B(e,t){if(t){var n,i,r,o=Object.keys(t);for(n=0,i=o.length;n<i;n++)this[r=o[n]]=t[r]}else this.$attr={};this.$$element=e}function H(e,t,n){Se.innerHTML="<span "+t+">";var i=Se.firstChild.attributes,r=i[0];i.removeNamedItem(r.name),r.value=n,e.attributes.setNamedItem(r)}function W(e,t){try{e.addClass(t)}catch(e){}}function z(t,n,i,r,o){t instanceof Ui||(t=Ui(t));for(var a=/\S+/,s=0,l=t.length;s<l;s++){var c=t[s];c.nodeType===hr&&c.nodeValue.match(a)&&Ee(c,t[s]=e.document.createElement("span"))}var u=V(t,n,t,i,r,o);z.$$addScopeClass(t);var d=null;return function(e,n,i){le(e,"scope"),o&&o.needsNewScope&&(e=e.$parent.$new());var r=(i=i||{}).parentBoundTranscludeFn,a=i.transcludeControllers,s=i.futureParentElement;r&&r.$$boundTransclude&&(r=r.$$boundTransclude),d||(d=q(s));var l;if(l="html"!==d?Ui(me(d,Ui("<div>").append(t).html())):n?Mr.clone.call(t):t,a)for(var c in a)l.data("$"+c+"Controller",a[c].instance);return z.$$addScopeInfo(l,e),n&&n(l,e),u&&u(e,l,l,r),l}}function q(e){var t=e&&e[0];return t&&"foreignobject"!==L(t)&&Yi.call(t).match(/SVG/)?"svg":"html"}function V(e,t,n,i,r,o){function a(e,n,i,r){var o,a,s,l,c,u,d,h;if(p){var m=n.length;for(h=new Array(m),c=0;c<f.length;c+=3)h[d=f[c]]=n[d]}else h=n;for(c=0,u=f.length;c<u;)s=h[f[c++]],o=f[c++],a=f[c++],o?(o.scope?(l=e.$new(),z.$$addScopeInfo(Ui(s),l)):l=e,o(a,l,s,i,o.transcludeOnThisElement?Y(e,o.transclude,r):!o.templateOnThisElement&&r?r:!r&&t?Y(e,t):null)):a&&a(e,s.childNodes,void 0,r)}for(var s,l,c,u,d,h,p,f=[],m=0;m<e.length;m++)s=new B,(c=(l=K(e[m],[],s,0===m?i:void 0,r)).length?te(l,e[m],s,t,n,null,[],[],o):null)&&c.scope&&z.$$addScopeClass(s.$$element),d=c&&c.terminal||!(u=e[m].childNodes)||!u.length?null:V(u,c?(c.transcludeOnThisElement||!c.templateOnThisElement)&&c.transclude:t),(c||d)&&(f.push(m,c,d),h=!0,p=p||c),o=null;return h?a:null}function Y(e,t,n){function i(i,r,o,a,s){return i||((i=e.$new(!1,s)).$$transcluded=!0),t(i,r,{parentBoundTranscludeFn:n,transcludeControllers:o,futureParentElement:a})}var r=i.$$slots=pe();for(var o in t.$$slots)t.$$slots[o]?r[o]=Y(e,t.$$slots[o],n):r[o]=null;return i}function K(e,t,n,i,r){var o,a,s,l=e.nodeType,c=n.$attr;switch(l){case dr:oe(t,ft(a=L(e)),"E",i,r);for(var u,d,h,p,f,m,g=e.attributes,v=0,b=g&&g.length;v<b;v++){var _=!1,C=!1;d=(u=g[v]).name,f=nr(u.value),p=ft(d),(m=Ne.test(p))&&(d=d.replace(Zr,"").substr(8).replace(/_(.)/g,function(e,t){return t.toUpperCase()}));var x=p.match(Oe);x&&ae(x[1])&&(_=d,C=d.substr(0,d.length-5)+"end",d=d.substr(0,d.length-6)),c[h=ft(d.toLowerCase())]=d,!m&&n.hasOwnProperty(h)||(n[h]=f,je(e,h)&&(n[h]=!0)),ve(e,t,f,h,m),oe(t,h,"A",i,r,_,C)}if("input"===a&&"hidden"===e.getAttribute("type")&&e.setAttribute("autocomplete","off"),!Ie)break;if(s=e.className,y(s)&&(s=s.animVal),w(s)&&""!==s)for(;o=A.exec(s);)oe(t,h=ft(o[2]),"C",i,r)&&(n[h]=nr(o[3])),s=s.substr(o.index+o[0].length);break;case hr:if(11===Hi)for(;e.parentNode&&e.nextSibling&&e.nextSibling.nodeType===hr;)e.nodeValue=e.nodeValue+e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);fe(t,e.nodeValue);break;case pr:if(!Te)break;X(e,t,n,i,r)}return t.sort(de),t}function X(e,t,n,i,r){try{var o=_.exec(e.nodeValue);if(o){var a=ft(o[1]);oe(t,a,"M",i,r)&&(n[a]=nr(o[2]))}}catch(e){}}function Z(e,t,n){var i=[],r=0;if(t&&e.hasAttribute&&e.hasAttribute(t))do{if(!e)throw Qr("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);e.nodeType===dr&&(e.hasAttribute(t)&&r++,e.hasAttribute(n)&&r--),i.push(e),e=e.nextSibling}while(r>0);else i.push(e);return Ui(i)}function J(e,t,n){return function(i,r,o,a,s){return r=Z(r[0],t,n),e(i,r,o,a,s)}}function ee(e,t,n,i,r,o){var a;return e?z(t,n,i,r,o):function(){return a||(a=z(t,n,i,r,o),t=n=o=null),a.apply(this,arguments)}}function te(e,t,n,o,a,s,l,u,d){function h(e,t,n,i){e&&(n&&(e=J(e,n,i)),e.require=f.require,e.directiveName=m,(S===f||f.$$isolateScope)&&(e=ye(e,{isolateScope:!0})),l.push(e)),t&&(n&&(t=J(t,n,i)),t.require=f.require,t.directiveName=m,(S===f||f.$$isolateScope)&&(t=ye(t,{isolateScope:!0})),u.push(t))}function p(e,o,a,s,d){function h(e,t,n,i){var r;if(T(e)||(i=n,n=t,t=e,e=void 0),P&&(r=_),n||(n=P?D.parent():D),!i)return d(e,t,r,n,G);var o=d.$$slots[i];if(o)return o(e,t,r,n,G);if(v(o))throw Qr("noslot",'No parent directive that requires a transclusion with slot name "{0}". Element: {1}',i,Q(D))}var p,f,m,g,b,_,w,D,I,M;t===a?(I=n,D=n.$$element):I=new B(D=Ui(a),n),b=o,S?g=o.$new(!0):A&&(b=o.$parent),d&&((w=h).$$boundTransclude=d,w.isSlotFilled=function(e){return!!d.$$slots[e]}),C&&(_=ie(D,I,w,C,g,o,S)),S&&(z.$$addScopeInfo(D,g,!0,!(E&&(E===S||E===S.$$originalDirective))),z.$$addScopeClass(D,!0),g.$$isolateBindings=S.$$isolateBindings,(M=Ae(o,I,g,g.$$isolateBindings,S)).removeWatches&&g.$on("$destroy",M.removeWatches));for(var $ in _){var N=C[$],O=_[$],R=N.$$bindings.bindToController;if(k){O.bindingInfo=R?Ae(b,I,O.instance,R,N):{};var L=O();L!==O.instance&&(O.instance=L,D.data("$"+N.name+"Controller",L),O.bindingInfo.removeWatches&&O.bindingInfo.removeWatches(),O.bindingInfo=Ae(b,I,O.instance,R,N))}else O.instance=O(),D.data("$"+N.name+"Controller",O.instance),O.bindingInfo=Ae(b,I,O.instance,R,N)}for(i(C,function(e,t){var n=e.require;e.bindToController&&!er(n)&&y(n)&&c(_[t].instance,ne(t,n,D,_))}),i(_,function(e){var t=e.instance;if(x(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(e){r(e)}if(x(t.$onInit))try{t.$onInit()}catch(e){r(e)}x(t.$doCheck)&&(b.$watch(function(){t.$doCheck()}),t.$doCheck()),x(t.$onDestroy)&&b.$on("$destroy",function(){t.$onDestroy()})}),p=0,f=l.length;p<f;p++)we(m=l[p],m.isolateScope?g:o,D,I,m.require&&ne(m.directiveName,m.require,D,_),w);var G=o;for(S&&(S.template||null===S.templateUrl)&&(G=g),e&&e(G,a.childNodes,void 0,d),p=u.length-1;p>=0;p--)we(m=u[p],m.isolateScope?g:o,D,I,m.require&&ne(m.directiveName,m.require,D,_),w);i(_,function(e){var t=e.instance;x(t.$postLink)&&t.$postLink()})}d=d||{};for(var f,m,g,b,_,w=-Number.MAX_VALUE,A=d.newScopeDirective,C=d.controllerDirectives,S=d.newIsolateScopeDirective,E=d.templateDirective,D=d.nonTlbTranscludeDirective,I=!1,M=!1,P=d.hasElementTranscludeDirective,$=n.$$element=Ui(t),N=s,O=o,R=!1,G=!1,F=0,H=e.length;F<H;F++){var W=(f=e[F]).$$start,q=f.$$end;if(W&&($=Z(t,W,q)),g=void 0,w>f.priority)break;if((_=f.scope)&&(f.templateUrl||(y(_)?(he("new/isolated scope",S||A,f,$),S=f):he("new/isolated scope",S,f,$)),A=A||f),m=f.name,!R&&(f.replace&&(f.templateUrl||f.template)||f.transclude&&!f.$$tlb)){for(var V,Y=F+1;V=e[Y++];)if(V.transclude&&!V.$$tlb||V.replace&&(V.templateUrl||V.template)){G=!0;break}R=!0}if(!f.templateUrl&&f.controller&&(C=C||pe(),he("'"+m+"' controller",C[m],f,$),C[m]=f),_=f.transclude)if(I=!0,f.$$tlb||(he("transclusion",D,f,$),D=f),"element"===_)P=!0,w=f.priority,g=$,$=n.$$element=Ui(z.$$createComment(m,n[m])),t=$[0],be(a,U(g),t),g[0].$$parentNode=g[0].parentNode,O=ee(G,g,o,w,N&&N.name,{nonTlbTranscludeDirective:D});else{var X=pe();if(g=Ui(De(t)).contents(),y(_)){g=[];var te=pe(),oe=pe();i(_,function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,te[e]=t,X[t]=null,oe[t]=n}),i($.contents(),function(e){var t=te[ft(L(e))];t?(oe[t]=!0,X[t]=X[t]||[],X[t].push(e)):g.push(e)}),i(oe,function(e,t){if(!e)throw Qr("reqslot","Required transclusion slot `{0}` was not filled.",t)});for(var ae in X)X[ae]&&(X[ae]=ee(G,X[ae],o))}$.empty(),(O=ee(G,g,o,void 0,void 0,{needsNewScope:f.$$isolateScope||f.$$newScope})).$$slots=X}if(f.template)if(M=!0,he("template",E,f,$),E=f,_=x(f.template)?f.template($,n):f.template,_=$e(_),f.replace){if(N=f,g=_e(_)?[]:gt(me(f.templateNamespace,nr(_))),t=g[0],1!==g.length||t.nodeType!==dr)throw Qr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m,"");be(a,$,t);var se={$attr:{}},le=K(t,[],se),de=e.splice(F+1,e.length-(F+1));(S||A)&&re(le,S,A),e=e.concat(le).concat(de),ce(n,se),H=e.length}else $.html(_);if(f.templateUrl)M=!0,he("template",E,f,$),E=f,f.replace&&(N=f),p=ue(e.splice(F,e.length-F),$,n,a,I&&O,l,u,{controllerDirectives:C,newScopeDirective:A!==f&&A,newIsolateScopeDirective:S,templateDirective:E,nonTlbTranscludeDirective:D}),H=e.length;else if(f.compile)try{b=f.compile($,n,O);var fe=f.$$originalDirective||f;x(b)?h(null,j(fe,b),W,q):b&&h(j(fe,b.pre),j(fe,b.post),W,q)}catch(e){r(e,Q($))}f.terminal&&(p.terminal=!0,w=Math.max(w,f.priority))}return p.scope=A&&!0===A.scope,p.transcludeOnThisElement=I,p.templateOnThisElement=M,p.transclude=O,d.hasElementTranscludeDirective=P,p}function ne(e,t,n,r){var o;if(w(t)){var a=t.match(S),s=t.substring(a[0].length),l=a[1]||a[3],c="?"===a[2];if("^^"===l?n=n.parent():(o=r&&r[s],o=o&&o.instance),!o){var u="$"+s+"Controller";o=l?n.inheritedData(u):n.data(u)}if(!o&&!c)throw Qr("ctreq","Controller '{0}', required by directive '{1}', can't be found!",s,e)}else if(er(t)){o=[];for(var d=0,h=t.length;d<h;d++)o[d]=ne(e,t[d],n,r)}else y(t)&&(o={},i(t,function(t,i){o[i]=ne(e,t,n,r)}));return o||null}function ie(e,t,n,i,r,o,a){var s=pe();for(var c in i){var u=i[c],d={$scope:u===a||u.$$isolateScope?r:o,$element:e,$attrs:t,$transclude:n},h=u.controller;"@"===h&&(h=t[u.name]);var p=l(h,d,!0,u.controllerAs);s[u.name]=p,e.data("$"+u.name+"Controller",p.instance)}return s}function re(e,t,n){for(var i=0,r=e.length;i<r;i++)e[i]=h(e[i],{$$isolateScope:t,$$newScope:n})}function oe(e,n,i,r,o,s,l){if(n===o)return null;var c=null;if(d.hasOwnProperty(n))for(var u,p=t.get(n+g),f=0,m=p.length;f<m;f++)if(u=p[f],(v(r)||r>u.priority)&&-1!==u.restrict.indexOf(i)){if(s&&(u=h(u,{$$start:s,$$end:l})),!u.$$bindings){var b=u.$$bindings=a(u,u.name);y(b.isolateScope)&&(u.$$isolateBindings=b.isolateScope)}e.push(u),c=u}return c}function ae(e){if(d.hasOwnProperty(e))for(var n=t.get(e+g),i=0,r=n.length;i<r;i++)if(n[i].multiElement)return!0;return!1}function ce(e,t){var n=t.$attr,r=e.$attr;i(e,function(i,r){"$"!==r.charAt(0)&&(t[r]&&t[r]!==i&&(i+=("style"===r?";":" ")+t[r]),e.$set(r,i,!0,n[r]))}),i(t,function(t,i){e.hasOwnProperty(i)||"$"===i.charAt(0)||(e[i]=t,"class"!==i&&"style"!==i&&(r[i]=n[i]))})}function ue(e,t,n,r,a,s,l,c){var u,d,p=[],f=t[0],m=e.shift(),g=h(m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),v=x(m.templateUrl)?m.templateUrl(t,n):m.templateUrl,b=m.templateNamespace;return t.empty(),o(v).then(function(o){var h,_,w,A;if(o=$e(o),m.replace){if(w=_e(o)?[]:gt(me(b,nr(o))),h=w[0],1!==w.length||h.nodeType!==dr)throw Qr("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m.name,v);_={$attr:{}},be(r,t,h);var C=K(h,[],_);y(m.scope)&&re(C,!0),e=C.concat(e),ce(n,_)}else h=f,t.html(o);for(e.unshift(g),u=te(e,h,n,a,t,m,s,l,c),i(r,function(e,n){e===h&&(r[n]=t[0])}),d=V(t[0].childNodes,a);p.length;){var x=p.shift(),S=p.shift(),E=p.shift(),T=p.shift(),D=t[0];if(!x.$$destroyed){if(S!==f){var I=S.className;c.hasElementTranscludeDirective&&m.replace||(D=De(h)),be(E,Ui(S),D),W(Ui(D),I)}A=u.transcludeOnThisElement?Y(x,u.transclude,T):T,u(d,x,D,r,A)}}p=null}),function(e,t,n,i,r){var o=r;t.$$destroyed||(p?p.push(t,n,i,o):(u.transcludeOnThisElement&&(o=Y(t,u.transclude,r)),u(d,t,n,i,o)))}}function de(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function he(e,t,n,i){function r(e){return e?" (module: "+e+")":""}if(t)throw Qr("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",t.name,r(t.$$moduleName),n.name,r(n.$$moduleName),e,Q(i))}function fe(e,t){var i=n(t,!0);i&&e.push({priority:0,compile:function(e){var t=e.parent(),n=!!t.length;return n&&z.$$addBindingClass(t),function(e,t){var r=t.parent();n||z.$$addBindingClass(r),z.$$addBindingInfo(r,i.expressions),e.$watch(i,function(e){t[0].nodeValue=e})}}})}function me(t,n){switch(t=Li(t||"html")){case"svg":case"math":var i=e.document.createElement("div");return i.innerHTML="<"+t+">"+n+"</"+t+">",i.childNodes[0].childNodes;default:return n}}function ge(e,t){if("srcdoc"===t)return m.HTML;var n=L(e);if("src"===t||"ngSrc"===t){if(-1===["img","video","audio","source","track"].indexOf(n))return m.RESOURCE_URL}else if("xlinkHref"===t||"form"===n&&"action"===t)return m.RESOURCE_URL}function ve(e,t,i,r,o){var a=ge(e,r),s=!o,l=C[r]||o,c=n(i,s,a,l);if(c){if("multiple"===r&&"select"===L(e))throw Qr("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",Q(e));t.push({priority:100,compile:function(){return{pre:function(e,t,o){var s=o.$$observers||(o.$$observers=pe());if(E.test(r))throw Qr("nodomevents","Interpolations for HTML DOM event attributes are disallowed.  Please use the ng- versions (such as ng-click instead of onclick) instead.");var u=o[r];u!==i&&(c=u&&n(u,!0,a,l),i=u),c&&(o[r]=c(e),(s[r]||(s[r]=[])).$$inter=!0,(o.$$observers&&o.$$observers[r].$$scope||e).$watch(c,function(e,t){"class"===r&&e!==t?o.$updateClass(e,t):o.$set(r,e)}))}}}})}}function be(t,n,i){var r,o,a=n[0],s=n.length,l=a.parentNode;if(t)for(r=0,o=t.length;r<o;r++)if(t[r]===a){t[r++]=i;for(var c=r,u=c+s-1,d=t.length;c<d;c++,u++)u<d?t[c]=t[u]:delete t[c];t.length-=s-1,t.context===a&&(t.context=i);break}l&&l.replaceChild(i,a);var h=e.document.createDocumentFragment();for(r=0;r<s;r++)h.appendChild(n[r]);for(Ui.hasData(a)&&(Ui.data(i,Ui.data(a)),Ui(a).off("$destroy")),Ui.cleanData(h.querySelectorAll("*")),r=1;r<s;r++)delete n[r];n[0]=i,n.length=1}function ye(e,t){return c(function(){return e.apply(null,arguments)},e,t)}function we(e,t,n,i,o,a){try{e(t,n,i,o,a)}catch(e){r(e,Q(n))}}function Ae(e,t,r,o,a){function l(t,n,i){!x(r.$onChanges)||n===i||n!==n&&i!==i||(Ce||(e.$$postDigest(R),Ce=[]),u||(u={},Ce.push(c)),u[t]&&(i=u[t].previousValue),u[t]=new pt(i,n))}function c(){r.$onChanges(u),u=void 0}var u,d=[],h={};return i(o,function(i,o){var c,u,f,m,g,v=i.attrName,b=i.optional;switch(i.mode){case"@":b||Ri.call(t,v)||(r[o]=t[v]=void 0),g=t.$observe(v,function(e){if(w(e)||M(e)){var t=r[o];l(o,e,t),r[o]=e}}),t.$$observers[v].$$scope=e,w(c=t[v])?r[o]=n(c)(e):M(c)&&(r[o]=c),h[o]=new pt(Xr,r[o]),d.push(g);break;case"=":if(!Ri.call(t,v)){if(b)break;t[v]=void 0}if(b&&!t[v])break;u=s(t[v]),m=u.literal?F:function(e,t){return e===t||e!==e&&t!==t},f=u.assign||function(){throw c=r[o]=u(e),Qr("nonassign","Expression '{0}' in attribute '{1}' used with directive '{2}' is non-assignable!",t[v],v,a.name)},c=r[o]=u(e);var y=function(t){return m(t,r[o])||(m(t,c)?f(e,t=r[o]):r[o]=t),c=t};y.$stateful=!0,g=i.collection?e.$watchCollection(t[v],y):e.$watch(s(t[v],y),null,u.literal),d.push(g);break;case"<":if(!Ri.call(t,v)){if(b)break;t[v]=void 0}if(b&&!t[v])break;var _=(u=s(t[v])).literal,A=r[o]=u(e);h[o]=new pt(Xr,r[o]),g=e.$watch(u,function(e,t){if(t===e){if(t===A||_&&F(t,A))return;t=A}l(o,e,t),r[o]=e},_),d.push(g);break;case"&":if((u=t.hasOwnProperty(v)?s(t[v]):p)===p&&b)break;r[o]=function(t){return u(e,t)}}}),{initialChanges:h,removeWatches:d.length&&function(){for(var e=0,t=d.length;e<t;++e)d[e]()}}}var Ce,xe=/^\w/,Se=e.document.createElement("div"),Te=$,Ie=N,ke=P;B.prototype={$normalize:ft,$addClass:function(e){e&&e.length>0&&D.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&D.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=mt(e,t);n&&n.length&&D.addClass(this.$$element,n);var i=mt(t,e);i&&i.length&&D.removeClass(this.$$element,i)},$set:function(e,t,n,o){var a,s=je(this.$$element[0],e),l=We(e),c=e;if(s?(this.$$element.prop(e,t),o=s):l&&(this[l]=t,c=l),this[e]=t,o?this.$attr[e]=o:(o=this.$attr[e])||(this.$attr[e]=o=se(e,"-")),"a"===(a=L(this.$$element))&&("href"===e||"xlinkHref"===e)||"img"===a&&"src"===e)this[e]=t=O(t,"src"===e);else if("img"===a&&"srcset"===e&&b(t)){for(var u="",d=nr(t),h=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,p=/\s/.test(d)?h:/(,)/,f=d.split(p),m=Math.floor(f.length/2),g=0;g<m;g++){var y=2*g;u+=O(nr(f[y]),!0),u+=" "+nr(f[y+1])}var _=nr(f[2*g]).split(/\s/);u+=O(nr(_[0]),!0),2===_.length&&(u+=" "+nr(_[1])),this[e]=t=u}!1!==n&&(null===t||v(t)?this.$$element.removeAttr(o):xe.test(o)?this.$$element.attr(o,t):H(this.$$element[0],o,t));var w=this.$$observers;w&&i(w[c],function(e){try{e(t)}catch(e){r(e)}})},$observe:function(e,t){var n=this,i=n.$$observers||(n.$$observers=pe()),r=i[e]||(i[e]=[]);return r.push(t),u.$evalAsync(function(){r.$$inter||!n.hasOwnProperty(e)||v(n[e])||t(n[e])}),function(){G(r,t)}}};var Me=n.startSymbol(),Pe=n.endSymbol(),$e="{{"===Me&&"}}"===Pe?f:function(e){return e.replace(/\{\{/g,Me).replace(/}}/g,Pe)},Ne=/^ngAttr[A-Z]/,Oe=/^(.+)Start$/;return z.$$addBindingInfo=I?function(e,t){var n=e.data("$binding")||[];er(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:p,z.$$addBindingClass=I?function(e){W(e,"ng-binding")}:p,z.$$addScopeInfo=I?function(e,t,n,i){var r=n?i?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(r,t)}:p,z.$$addScopeClass=I?function(e,t){W(e,t?"ng-isolate-scope":"ng-scope")}:p,z.$$createComment=function(t,n){var i="";return I&&(i=" "+(t||"")+": ",n&&(i+=n+" ")),e.document.createComment(i)},z}]}function pt(e,t){this.previousValue=e,this.currentValue=t}function ft(e){return ye(e.replace(Zr,""))}function mt(e,t){var n="",i=e.split(/\s+/),r=t.split(/\s+/);e:for(var o=0;o<i.length;o++){for(var a=i[o],s=0;s<r.length;s++)if(a===r[s])continue e;n+=(n.length>0?" ":"")+a}return n}function gt(e){var t=(e=Ui(e)).length;if(t<=1)return e;for(;t--;){var n=e[t];(n.nodeType===pr||n.nodeType===hr&&""===n.nodeValue.trim())&&qi.call(e,t,1)}return e}function vt(e,t){if(t&&w(t))return t;if(w(e)){var n=eo.exec(e);if(n)return n[3]}}function bt(){var e={},n=!1;this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){ue(t,"controller"),y(t)?c(e,t):e[t]=n},this.allowGlobals=function(){n=!0},this.$get=["$injector","$window",function(i,r){function o(e,n,i,r){if(!e||!y(e.$scope))throw t("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",r,n);e.$scope[n]=i}return function(t,a,s,l){var u,d,h,p;if(s=!0===s,l&&w(l)&&(p=l),w(t)){if(!(d=t.match(eo)))throw Jr("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",t);if(h=d[1],p=p||d[3],!(t=e.hasOwnProperty(h)?e[h]:de(a.$scope,h,!0)||(n?de(r,h,!0):void 0)))throw Jr("ctrlreg","The controller with the name '{0}' is not registered.",h);ce(t,h,!0)}if(s){var f=(er(t)?t[t.length-1]:t).prototype;return u=Object.create(f||null),p&&o(a,p,u,h||t.name),c(function(){var e=i.invoke(t,u,a,h);return e!==u&&(y(e)||x(e))&&(u=e,p&&o(a,p,u,h||t.name)),u},{instance:u,identifier:p})}return u=i.instantiate(t,a,h),p&&o(a,p,u,h||t.name),u}}]}function yt(){this.$get=["$window",function(e){return Ui(e.document)}]}function _t(){this.$get=["$log",function(e){return function(t,n){e.error.apply(e,arguments)}}]}function wt(e){return y(e)?C(e)?e.toISOString():z(e):e}function At(){this.$get=function(){return function(e){if(!e)return"";var t=[];return r(e,function(e,n){null===e||v(e)||(er(e)?i(e,function(e){t.push(te(n)+"="+te(wt(e)))}):t.push(te(n)+"="+te(wt(e))))}),t.join("&")}}}function Ct(){this.$get=function(){return function(e){function t(e,o,a){null===e||v(e)||(er(e)?i(e,function(e,n){t(e,o+"["+(y(e)?n:"")+"]")}):y(e)&&!C(e)?r(e,function(e,n){t(e,o+(a?"":"[")+n+(a?"":"]"))}):n.push(te(o)+"="+te(wt(e))))}if(!e)return"";var n=[];return t(e,"",!0),n.join("&")}}}function xt(e,t){if(w(e)){var n=e.replace(ao,"").trim();if(n){var i=t("Content-Type");(i&&0===i.indexOf(no)||St(n))&&(e=q(n))}}return e}function St(e){var t=e.match(ro);return t&&oo[t[0]].test(e)}function Et(e){function t(e,t){e&&(r[e]=r[e]?r[e]+", "+t:t)}var n,r=pe();return w(e)?i(e.split("\n"),function(e){n=e.indexOf(":"),t(Li(nr(e.substr(0,n))),nr(e.substr(n+1)))}):y(e)&&i(e,function(e,n){t(Li(n),nr(e))}),r}function Tt(e){var t;return function(n){if(t||(t=Et(e)),n){var i=t[Li(n)];return void 0===i&&(i=null),i}return t}}function Dt(e,t,n,r){return x(r)?r(e,t,n):(i(r,function(i){e=i(e,t,n)}),e)}function It(e){return 200<=e&&e<300}function kt(){var e=this.defaults={transformResponse:[xt],transformRequest:[function(e){return!y(e)||D(e)||k(e)||I(e)?e:z(e)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:me(io),put:me(io),patch:me(io)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},n=!1;this.useApplyAsync=function(e){return b(e)?(n=!!e,this):n};var r=!0;this.useLegacyPromiseExtensions=function(e){return b(e)?(r=!!e,this):r};var o=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(a,s,l,u,d,h){function p(n){function o(e,t){for(var n=0,i=t.length;n<i;){var r=t[n++],o=t[n++];e=e.then(r,o)}return t.length=0,e}function a(e,t){var n,r={};return i(e,function(e,i){x(e)?null!=(n=e(t))&&(r[i]=n):r[i]=e}),r}function s(t){var n=t.headers,r=Dt(t.data,Tt(n),void 0,t.transformRequest);return v(r)&&i(n,function(e,t){"content-type"===Li(t)&&delete n[t]}),v(t.withCredentials)&&!v(e.withCredentials)&&(t.withCredentials=e.withCredentials),f(t,r).then(l,l)}function l(e){var t=c({},e);return t.data=Dt(e.data,e.headers,e.status,u.transformResponse),It(e.status)?t:d.reject(t)}if(!y(n))throw t("$http")("badreq","Http request configuration must be an object.  Received: {0}",n);if(!w(n.url))throw t("$http")("badreq","Http request configuration url must be a string.  Received: {0}",n.url);var u=c({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer},n);u.headers=function(t){var n,i,r,o=e.headers,s=c({},t.headers);o=c({},o.common,o[Li(t.method)]);e:for(n in o){i=Li(n);for(r in s)if(Li(r)===i)continue e;s[n]=o[n]}return a(s,me(t))}(n),u.method=Gi(u.method),u.paramSerializer=w(u.paramSerializer)?h.get(u.paramSerializer):u.paramSerializer;var p=[],m=[],g=d.when(u);return i(_,function(e){(e.request||e.requestError)&&p.unshift(e.request,e.requestError),(e.response||e.responseError)&&m.push(e.response,e.responseError)}),g=o(g,p),g=g.then(s),g=o(g,m),r?(g.success=function(e){return ce(e,"fn"),g.then(function(t){e(t.data,t.status,t.headers,u)}),g},g.error=function(e){return ce(e,"fn"),g.then(null,function(t){e(t.data,t.status,t.headers,u)}),g}):(g.success=lo("success"),g.error=lo("error")),g}function f(t,r){function o(e){if(e){var t={};return i(e,function(e,i){t[i]=function(t){function i(){e(t)}n?u.$applyAsync(i):u.$$phase?i():u.$apply(i)}}),t}}function l(e,t,i,r){function o(){c(t,e,i,r)}_&&(It(e)?_.put(S,[e,t,Et(i),r]):_.remove(S)),n?u.$applyAsync(o):(o(),u.$$phase||u.$apply())}function c(e,n,i,r){(It(n=n>=-1?n:0)?A.resolve:A.reject)({data:e,status:n,headers:Tt(i),config:t,statusText:r})}function h(e){c(e.data,e.status,me(e.headers()),e.statusText)}function f(){var e=p.pendingRequests.indexOf(t);-1!==e&&p.pendingRequests.splice(e,1)}var _,w,A=d.defer(),C=A.promise,x=t.headers,S=m(t.url,t.paramSerializer(t.params));if(p.pendingRequests.push(t),C.then(f,f),!t.cache&&!e.cache||!1===t.cache||"GET"!==t.method&&"JSONP"!==t.method||(_=y(t.cache)?t.cache:y(e.cache)?e.cache:g),_&&(b(w=_.get(S))?P(w)?w.then(h,h):er(w)?c(w[1],w[0],me(w[2]),w[3]):c(w,200,{},"OK"):_.put(S,C)),v(w)){var E=$n(t.url)?s()[t.xsrfCookieName||e.xsrfCookieName]:void 0;E&&(x[t.xsrfHeaderName||e.xsrfHeaderName]=E),a(t.method,S,r,l,x,t.timeout,t.withCredentials,t.responseType,o(t.eventHandlers),o(t.uploadEventHandlers))}return C}function m(e,t){return t.length>0&&(e+=(-1===e.indexOf("?")?"?":"&")+t),e}var g=l("$http");e.paramSerializer=w(e.paramSerializer)?h.get(e.paramSerializer):e.paramSerializer;var _=[];return i(o,function(e){_.unshift(w(e)?h.get(e):h.invoke(e))}),p.pendingRequests=[],function(e){i(arguments,function(e){p[e]=function(t,n){return p(c({},n||{},{method:e,url:t}))}})}("get","delete","head","jsonp"),function(e){i(arguments,function(e){p[e]=function(t,n,i){return p(c({},i||{},{method:e,url:t,data:n}))}})}("post","put","patch"),p.defaults=e,p}]}function Mt(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function Pt(){this.$get=["$browser","$jsonpCallbacks","$document","$xhrFactory",function(e,t,n,i){return $t(e,i,e.defer,t,n[0])}]}function $t(e,t,n,r,o){function a(e,t,n){e=e.replace("JSON_CALLBACK",t);var i=o.createElement("script"),a=null;return i.type="text/javascript",i.src=e,i.async=!0,a=function(e){_r(i,"load",a),_r(i,"error",a),o.body.removeChild(i),i=null;var s=-1,l="unknown";e&&("load"!==e.type||r.wasCalled(t)||(e={type:"error"}),l=e.type,s="error"===e.type?404:200),n&&n(s,l)},yr(i,"load",a),yr(i,"error",a),o.body.appendChild(i),a}return function(o,s,l,c,u,d,h,f,m,g){function y(){A&&A(),C&&C.abort()}function _(t,i,r,o,a){b(S)&&n.cancel(S),A=C=null,t(i,r,o,a),e.$$completeOutstandingRequest(p)}if(e.$$incOutstandingRequestCount(),s=s||e.url(),"jsonp"===Li(o))var w=r.createCallback(s),A=a(s,w,function(e,t){var n=200===e&&r.getResponse(w);_(c,e,n,"",t),r.removeCallback(w)});else{var C=t(o,s);C.open(o,s,!0),i(u,function(e,t){b(e)&&C.setRequestHeader(t,e)}),C.onload=function(){var e=C.statusText||"",t="response"in C?C.response:C.responseText,n=1223===C.status?204:C.status;0===n&&(n=t?200:"file"===Pn(s).protocol?404:0),_(c,n,t,C.getAllResponseHeaders(),e)};var x=function(){_(c,-1,null,null,"")};if(C.onerror=x,C.onabort=x,C.ontimeout=x,i(m,function(e,t){C.addEventListener(t,e)}),i(g,function(e,t){C.upload.addEventListener(t,e)}),h&&(C.withCredentials=!0),f)try{C.responseType=f}catch(e){if("json"!==f)throw e}C.send(v(l)?null:l)}if(d>0)var S=n(y,d);else P(d)&&d.then(y)}}function Nt(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,i,r){function o(e){return"\\\\\\"+e}function a(n){return n.replace(p,e).replace(f,t)}function s(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=z(e)}return e}function l(e,t,n,i){var r=e.$watch(function(e){return r(),i(e)},t,n);return r}function u(o,u,p,f){function g(e){try{return e=M(e),f&&!b(e)?e:s(e)}catch(e){i(co.interr(o,e))}}if(!o.length||-1===o.indexOf(e)){var y;return u||((y=m(a(o))).exp=o,y.expressions=[],y.$$watchDelegate=l),y}f=!!f;for(var _,w,A,C=0,S=[],E=[],T=o.length,D=[],I=[];C<T;){if(-1===(_=o.indexOf(e,C))||-1===(w=o.indexOf(t,_+d))){C!==T&&D.push(a(o.substring(C)));break}C!==_&&D.push(a(o.substring(C,_))),A=o.substring(_+d,w),S.push(A),E.push(n(A,g)),C=w+h,I.push(D.length),D.push("")}if(p&&D.length>1&&co.throwNoconcat(o),!u||S.length){var k=function(e){for(var t=0,n=S.length;t<n;t++){if(f&&v(e[t]))return;D[I[t]]=e[t]}return D.join("")},M=function(e){return p?r.getTrusted(p,e):r.valueOf(e)};return c(function(e){var t=0,n=S.length,r=new Array(n);try{for(;t<n;t++)r[t]=E[t](e);return k(r)}catch(e){i(co.interr(o,e))}},{exp:o,expressions:S,$$watchDelegate:function(e,t){var n;return e.$watchGroup(E,function(i,r){var o=k(i);x(t)&&t.call(this,o,i!==r?n:o,e),n=o})}})}}var d=e.length,h=t.length,p=new RegExp(e.replace(/./g,o),"g"),f=new RegExp(t.replace(/./g,o),"g");return u.startSymbol=function(){return e},u.endSymbol=function(){return t},u}]}function Ot(){this.$get=["$rootScope","$window","$q","$$q","$browser",function(e,t,n,i,r){function o(o,s,l,c){function u(){d?o.apply(null,h):o(m)}var d=arguments.length>4,h=d?U(arguments,4):[],p=t.setInterval,f=t.clearInterval,m=0,g=b(c)&&!c,v=(g?i:n).defer(),y=v.promise;return l=b(l)?l:0,y.$$intervalId=p(function(){g?r.defer(u):e.$evalAsync(u),v.notify(m++),l>0&&m>=l&&(v.resolve(m),f(y.$$intervalId),delete a[y.$$intervalId]),g||e.$apply()},s),a[y.$$intervalId]=v,y}var a={};return o.cancel=function(e){return!!(e&&e.$$intervalId in a)&&(a[e.$$intervalId].reject("canceled"),t.clearInterval(e.$$intervalId),delete a[e.$$intervalId],!0)},o}]}function Rt(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=ee(t[n]);return t.join("/")}function Lt(e,t){var n=Pn(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=d(n.port)||po[n.protocol]||null}function Gt(e,t){if(mo.test(e))throw fo("badpath",'Invalid url "{0}".',e);var n="/"!==e.charAt(0);n&&(e="/"+e);var i=Pn(e);t.$$path=decodeURIComponent(n&&"/"===i.pathname.charAt(0)?i.pathname.substring(1):i.pathname),t.$$search=Z(i.search),t.$$hash=decodeURIComponent(i.hash),t.$$path&&"/"!==t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function Bt(e,t){return e.slice(0,t.length)===t}function Ft(e,t){if(Bt(t,e))return t.substr(e.length)}function Ht(e){var t=e.indexOf("#");return-1===t?e:e.substr(0,t)}function Ut(e){return e.replace(/(#.+)|#$/,"$1")}function jt(e){return e.substr(0,Ht(e).lastIndexOf("/")+1)}function Wt(e){return e.substring(0,e.indexOf("/",e.indexOf("//")+2))}function zt(e,t,n){this.$$html5=!0,n=n||"",Lt(e,this),this.$$parse=function(e){var n=Ft(t,e);if(!w(n))throw fo("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);Gt(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=J(this.$$search),n=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=Rt(this.$$path)+(e?"?"+e:"")+n,this.$$absUrl=t+this.$$url.substr(1)},this.$$parseLinkUrl=function(i,r){if(r&&"#"===r[0])return this.hash(r.slice(1)),!0;var o,a,s;return b(o=Ft(e,i))?(a=o,s=n&&b(o=Ft(n,o))?t+(Ft("/",o)||o):e+a):b(o=Ft(t,i))?s=t+o:t===i+"/"&&(s=t),s&&this.$$parse(s),!!s}}function qt(e,t,n){Lt(e,this),this.$$parse=function(i){var r,o=Ft(e,i)||Ft(t,i);v(o)||"#"!==o.charAt(0)?this.$$html5?r=o:(r="",v(o)&&(e=i,this.replace())):v(r=Ft(n,o))&&(r=o),Gt(r,this),this.$$path=function(e,t,n){var i,r=/^\/[A-Z]:(\/.*)/;return Bt(t,n)&&(t=t.replace(n,"")),r.exec(t)?e:(i=r.exec(e),i?i[1]:e)}(this.$$path,r,e),this.$$compose()},this.$$compose=function(){var t=J(this.$$search),i=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=Rt(this.$$path)+(t?"?"+t:"")+i,this.$$absUrl=e+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(t,n){return Ht(e)===Ht(t)&&(this.$$parse(t),!0)}}function Vt(e,t,n){this.$$html5=!0,qt.apply(this,arguments),this.$$parseLinkUrl=function(i,r){if(r&&"#"===r[0])return this.hash(r.slice(1)),!0;var o,a;return e===Ht(i)?o=i:(a=Ft(t,i))?o=e+n+a:t===i+"/"&&(o=t),o&&this.$$parse(o),!!o},this.$$compose=function(){var t=J(this.$$search),i=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=Rt(this.$$path)+(t?"?"+t:"")+i,this.$$absUrl=e+n+this.$$url}}function Yt(e){return function(){return this[e]}}function Kt(e,t){return function(n){return v(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function Qt(){var e="",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return b(t)?(e=t,this):e},this.html5Mode=function(e){return M(e)?(t.enabled=e,this):y(e)?(M(e.enabled)&&(t.enabled=e.enabled),M(e.requireBase)&&(t.requireBase=e.requireBase),(M(e.rewriteLinks)||w(e.rewriteLinks))&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,i,r,o,a){function s(e,t,n){var r=c.url(),o=c.$$state;try{i.url(e,t,n),c.$$state=i.state()}catch(e){throw c.url(r),c.$$state=o,e}}function l(e,t){n.$broadcast("$locationChangeSuccess",c.absUrl(),e,c.$$state,t)}var c,u,d,h=i.baseHref(),p=i.url();if(t.enabled){if(!h&&t.requireBase)throw fo("nobase","$location in HTML5 mode requires a <base> tag to be present!");d=Wt(p)+(h||"/"),u=r.history?zt:Vt}else d=Ht(p),u=qt;var f=jt(d);(c=new u(d,f,"#"+e)).$$parseLinkUrl(p,p),c.$$state=i.state();var m=/^\s*(javascript|mailto):/i;o.on("click",function(e){var r=t.rewriteLinks;if(r&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!==e.which&&2!==e.button){for(var s=Ui(e.target);"a"!==L(s[0]);)if(s[0]===o[0]||!(s=s.parent())[0])return;if(!w(r)||!v(s.attr(r))){var l=s.prop("href"),u=s.attr("href")||s.attr("xlink:href");y(l)&&"[object SVGAnimatedString]"===l.toString()&&(l=Pn(l.animVal).href),m.test(l)||!l||s.attr("target")||e.isDefaultPrevented()||c.$$parseLinkUrl(l,u)&&(e.preventDefault(),c.absUrl()!==i.url()&&(n.$apply(),a.angular["ff-684208-preventDefault"]=!0))}}}),Ut(c.absUrl())!==Ut(p)&&i.url(c.absUrl(),!0);var g=!0;return i.onUrlChange(function(e,t){v(Ft(f,e))?a.location.href=e:(n.$evalAsync(function(){var i,r=c.absUrl(),o=c.$$state;e=Ut(e),c.$$parse(e),c.$$state=t,i=n.$broadcast("$locationChangeStart",e,r,t,o).defaultPrevented,c.absUrl()===e&&(i?(c.$$parse(r),c.$$state=o,s(r,!1,o)):(g=!1,l(r,o)))}),n.$$phase||n.$digest())}),n.$watch(function(){var e=Ut(i.url()),t=Ut(c.absUrl()),o=i.state(),a=c.$$replace,u=e!==t||c.$$html5&&r.history&&o!==c.$$state;(g||u)&&(g=!1,n.$evalAsync(function(){var t=c.absUrl(),i=n.$broadcast("$locationChangeStart",t,e,c.$$state,o).defaultPrevented;c.absUrl()===t&&(i?(c.$$parse(e),c.$$state=o):(u&&s(t,a,o===c.$$state?null:c.$$state),l(e,o)))})),c.$$replace=!1}),c}]}function Xt(){var e=!0,t=this;this.debugEnabled=function(t){return b(t)?(e=t,this):e},this.$get=["$window",function(n){function r(e){return e instanceof Error&&(e.stack?e=e.message&&-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function o(e){var t=n.console||{},o=t[e]||t.log||p,a=!1;try{a=!!o.apply}catch(e){}return a?function(){var e=[];return i(arguments,function(t){e.push(r(t))}),o.apply(t,e)}:function(e,t){o(e,null==t?"":t)}}return{log:o("log"),info:o("info"),warn:o("warn"),error:o("error"),debug:function(){var n=o("debug");return function(){e&&n.apply(t,arguments)}}()}}]}function Zt(e,t){if("__defineGetter__"===e||"__defineSetter__"===e||"__lookupGetter__"===e||"__lookupSetter__"===e||"__proto__"===e)throw vo("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",t);return e}function Jt(e){return e+""}function en(e,t){if(e){if(e.constructor===e)throw vo("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e.window===e)throw vo("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",t);if(e.children&&(e.nodeName||e.prop&&e.attr&&e.find))throw vo("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",t);if(e===Object)throw vo("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",t)}return e}function tn(e,t){if(e){if(e.constructor===e)throw vo("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e===ko||e===Mo||e===Po)throw vo("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",t)}}function nn(e,t){if(e&&(e===bo||e===yo||e===_o||e===wo||e===Ao||e===Co||e===xo||e===So||e===Eo||e===To||e===Do||e===Io))throw vo("isecaf","Assigning to a constructor or its prototype is disallowed! Expression: {0}",t)}function rn(e,t){return void 0!==e?e:t}function on(e,t){return void 0===e?t:void 0===t?e:e+t}function an(e,t){return!e(t).$stateful}function sn(e,t){var n,r,o;switch(e.type){case Lo.Program:n=!0,i(e.body,function(e){sn(e.expression,t),n=n&&e.expression.constant}),e.constant=n;break;case Lo.Literal:e.constant=!0,e.toWatch=[];break;case Lo.UnaryExpression:sn(e.argument,t),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case Lo.BinaryExpression:sn(e.left,t),sn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case Lo.LogicalExpression:sn(e.left,t),sn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case Lo.ConditionalExpression:sn(e.test,t),sn(e.alternate,t),sn(e.consequent,t),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case Lo.Identifier:e.constant=!1,e.toWatch=[e];break;case Lo.MemberExpression:sn(e.object,t),e.computed&&sn(e.property,t),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=[e];break;case Lo.CallExpression:o=!!e.filter&&an(t,e.callee.name),n=o,r=[],i(e.arguments,function(e){sn(e,t),n=n&&e.constant,e.constant||r.push.apply(r,e.toWatch)}),e.constant=n,e.toWatch=o?r:[e];break;case Lo.AssignmentExpression:sn(e.left,t),sn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case Lo.ArrayExpression:n=!0,r=[],i(e.elements,function(e){sn(e,t),n=n&&e.constant,e.constant||r.push.apply(r,e.toWatch)}),e.constant=n,e.toWatch=r;break;case Lo.ObjectExpression:n=!0,r=[],i(e.properties,function(e){sn(e.value,t),n=n&&e.value.constant&&!e.computed,e.value.constant||r.push.apply(r,e.value.toWatch)}),e.constant=n,e.toWatch=r;break;case Lo.ThisExpression:case Lo.LocalsExpression:e.constant=!1,e.toWatch=[]}}function ln(e){if(1===e.length){var t=e[0].expression,n=t.toWatch;return 1!==n.length?n:n[0]!==t?n:void 0}}function cn(e){return e.type===Lo.Identifier||e.type===Lo.MemberExpression}function un(e){if(1===e.body.length&&cn(e.body[0].expression))return{type:Lo.AssignmentExpression,left:e.body[0].expression,right:{type:Lo.NGValueParameter},operator:"="}}function dn(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===Lo.Literal||e.body[0].expression.type===Lo.ArrayExpression||e.body[0].expression.type===Lo.ObjectExpression)}function hn(e){return e.constant}function pn(e,t){this.astBuilder=e,this.$filter=t}function fn(e,t){this.astBuilder=e,this.$filter=t}function mn(e){return"constructor"===e}function gn(e){return x(e.valueOf)?e.valueOf():$o.call(e)}function vn(){var e,t,n=pe(),r=pe(),o={true:!0,false:!1,null:null,undefined:void 0};this.addLiteral=function(e,t){o[e]=t},this.setIdentifierFns=function(n,i){return e=n,t=i,this},this.$get=["$filter",function(a){function s(e,t,i){var o,s,c;switch(i=i||_,typeof e){case"string":c=e=e.trim();var g=i?r:n;if(!(o=g[c])){":"===e.charAt(0)&&":"===e.charAt(1)&&(s=!0,e=e.substring(2));var b=i?y:v,w=new Ro(b);(o=new Go(w,a,b).parse(e)).constant?o.$$watchDelegate=f:s?o.$$watchDelegate=o.literal?h:d:o.inputs&&(o.$$watchDelegate=u),i&&(o=l(o)),g[c]=o}return m(o,t);case"function":return m(e,t);default:return m(p,t)}}function l(e){function t(t,n,i,r){var o=_;_=!0;try{return e(t,n,i,r)}finally{_=o}}if(!e)return e;t.$$watchDelegate=e.$$watchDelegate,t.assign=l(e.assign),t.constant=e.constant,t.literal=e.literal;for(var n=0;e.inputs&&n<e.inputs.length;++n)e.inputs[n]=l(e.inputs[n]);return t.inputs=e.inputs,t}function c(e,t){return null==e||null==t?e===t:("object"!=typeof e||"object"!=typeof(e=gn(e)))&&(e===t||e!==e&&t!==t)}function u(e,t,n,i,r){var o,a=i.inputs;if(1===a.length){var s=c;return a=a[0],e.$watch(function(e){var t=a(e);return c(t,s)||(o=i(e,void 0,void 0,[t]),s=t&&gn(t)),o},t,n,r)}for(var l=[],u=[],d=0,h=a.length;d<h;d++)l[d]=c,u[d]=null;return e.$watch(function(e){for(var t=!1,n=0,r=a.length;n<r;n++){var s=a[n](e);(t||(t=!c(s,l[n])))&&(u[n]=s,l[n]=s&&gn(s))}return t&&(o=i(e,void 0,void 0,u)),o},t,n,r)}function d(e,t,n,i){var r,o;return r=e.$watch(function(e){return i(e)},function(e,n,i){o=e,x(t)&&t.apply(this,arguments),b(e)&&i.$$postDigest(function(){b(o)&&r()})},n)}function h(e,t,n,r){function o(e){var t=!0;return i(e,function(e){b(e)||(t=!1)}),t}var a,s;return a=e.$watch(function(e){return r(e)},function(e,n,i){s=e,x(t)&&t.call(this,e,n,i),o(e)&&i.$$postDigest(function(){o(s)&&a()})},n)}function f(e,t,n,i){var r=e.$watch(function(e){return r(),i(e)},t,n);return r}function m(e,t){if(!t)return e;var n=e.$$watchDelegate,i=!1,r=n!==h&&n!==d?function(n,r,o,a){var s=i&&a?a[0]:e(n,r,o,a);return t(s,n,r)}:function(n,i,r,o){var a=e(n,i,r,o),s=t(a,n,i);return b(a)?s:a};return e.$$watchDelegate&&e.$$watchDelegate!==u?r.$$watchDelegate=e.$$watchDelegate:t.$stateful||(r.$$watchDelegate=u,i=!e.inputs,r.inputs=e.inputs?e.inputs:[e]),r}var g=rr().noUnsafeEval,v={csp:g,expensiveChecks:!1,literals:B(o),isIdentifierStart:x(e)&&e,isIdentifierContinue:x(t)&&t},y={csp:g,expensiveChecks:!0,literals:B(o),isIdentifierStart:x(e)&&e,isIdentifierContinue:x(t)&&t},_=!1;return s.$$runningExpensiveChecks=function(){return _},s}]}function bn(){this.$get=["$rootScope","$exceptionHandler",function(e,t){return _n(function(t){e.$evalAsync(t)},t)}]}function yn(){this.$get=["$browser","$exceptionHandler",function(e,t){return _n(function(t){e.defer(t)},t)}]}function _n(e,n){function r(){var e=new u;return e.resolve=a(e,e.resolve),e.reject=a(e,e.reject),e.notify=a(e,e.notify),e}function o(){this.$$state={status:0}}function a(e,t){return function(n){t.call(e,n)}}function s(e){var t,i,r;r=e.pending,e.processScheduled=!1,e.pending=void 0;for(var o=0,a=r.length;o<a;++o){i=r[o][0],t=r[o][e.status];try{x(t)?i.resolve(t(e.value)):1===e.status?i.resolve(e.value):i.reject(e.value)}catch(e){i.reject(e),n(e)}}}function l(t){!t.processScheduled&&t.pending&&(t.processScheduled=!0,e(function(){s(t)}))}function u(){this.promise=new o}function d(e){var t=new u;return t.reject(e),t.promise}function h(e,t,n){var i=null;try{x(n)&&(i=n())}catch(e){return d(e)}return P(i)?i.then(function(){return t(e)},d):t(e)}function p(e,t,n,i){var r=new u;return r.resolve(e),r.promise.then(t,n,i)}function f(e){var t=new u,n=0,r=er(e)?[]:{};return i(e,function(e,i){n++,p(e).then(function(e){r[i]=e,--n||t.resolve(r)},function(e){t.reject(e)})}),0===n&&t.resolve(r),t.promise}function m(e){var t=r();return i(e,function(e){p(e).then(t.resolve,t.reject)}),t.promise}function g(e){function t(e){i.resolve(e)}function n(e){i.reject(e)}if(!x(e))throw b("norslvr","Expected resolverFn, got '{0}'",e);var i=new u;return e(t,n),i.promise}var b=t("$q",TypeError);c(o.prototype,{then:function(e,t,n){if(v(e)&&v(t)&&v(n))return this;var i=new u;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([i,e,t,n]),this.$$state.status>0&&l(this.$$state),i.promise},catch:function(e){return this.then(null,e)},finally:function(e,t){return this.then(function(t){return h(t,_,e)},function(t){return h(t,d,e)},t)}}),c(u.prototype,{resolve:function(e){this.promise.$$state.status||(e===this.promise?this.$$reject(b("qcycle","Expected promise to be resolved with value other than itself '{0}'",e)):this.$$resolve(e))},$$resolve:function(e){function t(e){s||(s=!0,o.$$resolve(e))}function i(e){s||(s=!0,o.$$reject(e))}var r,o=this,s=!1;try{(y(e)||x(e))&&(r=e&&e.then),x(r)?(this.promise.$$state.status=-1,r.call(e,t,i,a(this,this.notify))):(this.promise.$$state.value=e,this.promise.$$state.status=1,l(this.promise.$$state))}catch(e){i(e),n(e)}},reject:function(e){this.promise.$$state.status||this.$$reject(e)},$$reject:function(e){this.promise.$$state.value=e,this.promise.$$state.status=2,l(this.promise.$$state)},notify:function(t){var i=this.promise.$$state.pending;this.promise.$$state.status<=0&&i&&i.length&&e(function(){for(var e,r,o=0,a=i.length;o<a;o++){r=i[o][0],e=i[o][3];try{r.notify(x(e)?e(t):t)}catch(e){n(e)}}})}});var _=p;return g.prototype=o.prototype,g.defer=r,g.reject=d,g.when=p,g.resolve=_,g.all=f,g.race=m,g}function wn(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,i=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,r=!!n,o=r?function(e){var t=n(e);return function(){i(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return o.supported=r,o}]}function An(){function e(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=a(),this.$$ChildScope=null}return t.prototype=e,t}var r=10,o=t("$rootScope"),s=null,l=null;this.digestTtl=function(e){return arguments.length&&(r=e),r},this.$get=["$exceptionHandler","$parse","$browser",function(t,c,u){function d(e){e.currentScope.$$destroyed=!0}function h(e){9===Hi&&(e.$$childHead&&h(e.$$childHead),e.$$nextSibling&&h(e.$$nextSibling)),e.$parent=e.$$nextSibling=e.$$prevSibling=e.$$childHead=e.$$childTail=e.$root=e.$$watchers=null}function f(){this.$id=a(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function m(e){if(S.$$phase)throw o("inprog","{0} already in progress",S.$$phase);S.$$phase=e}function g(){S.$$phase=null}function b(e,t){do{e.$$watchersCount+=t}while(e=e.$parent)}function _(e,t,n){do{e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n]}while(e=e.$parent)}function w(){}function A(){for(;D.length;)try{D.shift()()}catch(e){t(e)}l=null}function C(){null===l&&(l=u.defer(function(){S.$apply(A)}))}f.prototype={constructor:f,$new:function(t,n){var i;return n=n||this,t?(i=new f).$root=this.$root:(this.$$ChildScope||(this.$$ChildScope=e(this)),i=new this.$$ChildScope),i.$parent=n,i.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=i,n.$$childTail=i):n.$$childHead=n.$$childTail=i,(t||n!==this)&&i.$on("$destroy",d),i},$watch:function(e,t,n,i){var r=c(e);if(r.$$watchDelegate)return r.$$watchDelegate(this,t,n,r,e);var o=this,a=o.$$watchers,l={fn:t,last:w,get:r,exp:i||e,eq:!!n};return s=null,x(t)||(l.fn=p),a||((a=o.$$watchers=[]).$$digestWatchIndex=-1),a.unshift(l),a.$$digestWatchIndex++,b(this,1),function(){var e=G(a,l);e>=0&&(b(o,-1),e<a.$$digestWatchIndex&&a.$$digestWatchIndex--),s=null}},$watchGroup:function(e,t){function n(){l=!1,c?(c=!1,t(o,o,s)):t(o,r,s)}var r=new Array(e.length),o=new Array(e.length),a=[],s=this,l=!1,c=!0;if(!e.length){var u=!0;return s.$evalAsync(function(){u&&t(o,o,s)}),function(){u=!1}}return 1===e.length?this.$watch(e[0],function(e,n,i){o[0]=e,r[0]=n,t(o,e===n?o:r,i)}):(i(e,function(e,t){var i=s.$watch(e,function(e,i){o[t]=e,r[t]=i,l||(l=!0,s.$evalAsync(n))});a.push(i)}),function(){for(;a.length;)a.shift()()})},$watchCollection:function(e,t){function i(e){var t,i,r,s;if(!v(o=e)){if(y(o))if(n(o)){a!==p&&(g=(a=p).length=0,d++),t=o.length,g!==t&&(d++,a.length=g=t);for(var l=0;l<t;l++)s=a[l],r=o[l],s!==s&&r!==r||s===r||(d++,a[l]=r)}else{a!==f&&(a=f={},g=0,d++),t=0;for(i in o)Ri.call(o,i)&&(t++,r=o[i],s=a[i],i in a?s!==s&&r!==r||s===r||(d++,a[i]=r):(g++,a[i]=r,d++));if(g>t){d++;for(i in a)Ri.call(o,i)||(g--,delete a[i])}}else a!==o&&(a=o,d++);return d}}function r(){if(m?(m=!1,t(o,o,l)):t(o,s,l),u)if(y(o))if(n(o)){s=new Array(o.length);for(var e=0;e<o.length;e++)s[e]=o[e]}else{s={};for(var i in o)Ri.call(o,i)&&(s[i]=o[i])}else s=o}i.$stateful=!0;var o,a,s,l=this,u=t.length>1,d=0,h=c(e,i),p=[],f={},m=!0,g=0;return this.$watch(h,r)},$digest:function(){var e,n,i,a,c,d,h,p,f,v,b=r,y=this,_=[];m("$digest"),u.$$checkUrlChange(),this===S&&null!==l&&(u.defer.cancel(l),A()),s=null;do{d=!1,p=y;for(var C=0;C<E.length;C++){try{(v=E[C]).scope.$eval(v.expression,v.locals)}catch(e){t(e)}s=null}E.length=0;e:do{if(c=p.$$watchers)for(c.$$digestWatchIndex=c.length;c.$$digestWatchIndex--;)try{if(e=c[c.$$digestWatchIndex])if(a=e.get,(n=a(p))===(i=e.last)||(e.eq?F(n,i):Ji(n)&&Ji(i))){if(e===s){d=!1;break e}}else d=!0,s=e,e.last=e.eq?B(n,null):n,(0,e.fn)(n,i===w?n:i,p),b<5&&(_[f=4-b]||(_[f]=[]),_[f].push({msg:x(e.exp)?"fn: "+(e.exp.name||e.exp.toString()):e.exp,newVal:n,oldVal:i}))}catch(e){t(e)}if(!(h=p.$$watchersCount&&p.$$childHead||p!==y&&p.$$nextSibling))for(;p!==y&&!(h=p.$$nextSibling);)p=p.$parent}while(p=h);if((d||E.length)&&!b--)throw g(),o("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",r,_)}while(d||E.length);for(g();I<T.length;)try{T[I++]()}catch(e){t(e)}T.length=I=0},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===S&&u.$$applicationDestroyed(),b(this,-this.$$watchersCount);for(var t in this.$$listenerCount)_(this,this.$$listenerCount[t],t);e&&e.$$childHead===this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail===this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=p,this.$on=this.$watch=this.$watchGroup=function(){return p},this.$$listeners={},this.$$nextSibling=null,h(this)}},$eval:function(e,t){return c(e)(this,t)},$evalAsync:function(e,t){S.$$phase||E.length||u.defer(function(){E.length&&S.$digest()}),E.push({scope:this,expression:c(e),locals:t})},$$postDigest:function(e){T.push(e)},$apply:function(e){try{m("$apply");try{return this.$eval(e)}finally{g()}}catch(e){t(e)}finally{try{S.$digest()}catch(e){throw t(e),e}}},$applyAsync:function(e){function t(){n.$eval(e)}var n=this;e&&D.push(t),e=c(e),C()},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var i=this;do{i.$$listenerCount[e]||(i.$$listenerCount[e]=0),i.$$listenerCount[e]++}while(i=i.$parent);var r=this;return function(){var i=n.indexOf(t);-1!==i&&(n[i]=null,_(r,1,e))}},$emit:function(e,n){var i,r,o,a=[],s=this,l=!1,c={name:e,targetScope:s,stopPropagation:function(){l=!0},preventDefault:function(){c.defaultPrevented=!0},defaultPrevented:!1},u=H([c],arguments,1);do{for(i=s.$$listeners[e]||a,c.currentScope=s,r=0,o=i.length;r<o;r++)if(i[r])try{i[r].apply(null,u)}catch(e){t(e)}else i.splice(r,1),r--,o--;if(l)return c.currentScope=null,c;s=s.$parent}while(s);return c.currentScope=null,c},$broadcast:function(e,n){var i=this,r=i,o=i,a={name:e,targetScope:i,preventDefault:function(){a.defaultPrevented=!0},defaultPrevented:!1};if(!i.$$listenerCount[e])return a;for(var s,l,c,u=H([a],arguments,1);r=o;){for(a.currentScope=r,l=0,c=(s=r.$$listeners[e]||[]).length;l<c;l++)if(s[l])try{s[l].apply(null,u)}catch(e){t(e)}else s.splice(l,1),l--,c--;if(!(o=r.$$listenerCount[e]&&r.$$childHead||r!==i&&r.$$nextSibling))for(;r!==i&&!(o=r.$$nextSibling);)r=r.$parent}return a.currentScope=null,a}};var S=new f,E=S.$$asyncQueue=[],T=S.$$postDigestQueue=[],D=S.$$applyAsyncQueue=[],I=0;return S}]}function Cn(){var e=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(t){return b(t)?(e=t,this):e},this.imgSrcSanitizationWhitelist=function(e){return b(e)?(t=e,this):t},this.$get=function(){return function(n,i){var r,o=i?t:e;return r=Pn(n).href,""===r||r.match(o)?n:"unsafe:"+r}}}function xn(e){if("self"===e)return e;if(w(e)){if(e.indexOf("***")>-1)throw Bo("iwcard","Illegal sequence *** in string matcher.  String: {0}",e);return e=ir(e).replace(/\\\*\\\*/g,".*").replace(/\\\*/g,"[^:/.?&;]*"),new RegExp("^"+e+"$")}if(S(e))return new RegExp("^"+e.source+"$");throw Bo("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function Sn(e){var t=[];return b(e)&&i(e,function(e){t.push(xn(e))}),t}function En(){this.SCE_CONTEXTS=Fo;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=Sn(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=Sn(e)),t},this.$get=["$injector",function(n){function i(e,t){return"self"===e?$n(t):!!e.exec(t.href)}function r(n){var r,o,a=Pn(n.toString()),s=!1;for(r=0,o=e.length;r<o;r++)if(i(e[r],a)){s=!0;break}if(s)for(r=0,o=t.length;r<o;r++)if(i(t[r],a)){s=!1;break}return s}function o(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}function a(e,t){var n=d.hasOwnProperty(e)?d[e]:null;if(!n)throw Bo("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||v(t)||""===t)return t;if("string"!=typeof t)throw Bo("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new n(t)}function s(e){return e instanceof u?e.$$unwrapTrustedValue():e}function l(e,t){if(null===t||v(t)||""===t)return t;var n=d.hasOwnProperty(e)?d[e]:null;if(n&&t instanceof n)return t.$$unwrapTrustedValue();if(e===Fo.RESOURCE_URL){if(r(t))return t;throw Bo("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}",t.toString())}if(e===Fo.HTML)return c(t);throw Bo("unsafe","Attempting to use an unsafe value in a safe context.")}var c=function(e){throw Bo("unsafe","Attempting to use an unsafe value in a safe context.")};n.has("$sanitize")&&(c=n.get("$sanitize"));var u=o(),d={};return d[Fo.HTML]=o(u),d[Fo.CSS]=o(u),d[Fo.URL]=o(u),d[Fo.JS]=o(u),d[Fo.RESOURCE_URL]=o(d[Fo.URL]),{trustAs:a,getTrusted:l,valueOf:s}}]}function Tn(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sceDelegate",function(t,n){if(e&&Hi<8)throw Bo("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode.  You can fix this by adding the text <!doctype html> to the top of your HTML document.  See http://docs.angularjs.org/api/ng.$sce for more information.");var r=me(Fo);r.isEnabled=function(){return e},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,e||(r.trustAs=r.getTrusted=function(e,t){return t},r.valueOf=f),r.parseAs=function(e,n){var i=t(n);return i.literal&&i.constant?i:t(n,function(t){return r.getTrusted(e,t)})};var o=r.parseAs,a=r.getTrusted,s=r.trustAs;return i(Fo,function(e,t){var n=Li(t);r[ye("parse_as_"+n)]=function(t){return o(e,t)},r[ye("get_trusted_"+n)]=function(t){return a(e,t)},r[ye("trust_as_"+n)]=function(t){return s(e,t)}}),r}]}function Dn(){this.$get=["$window","$document",function(e,t){var n,i,r={},o=!(e.chrome&&(e.chrome.app&&e.chrome.app.runtime||!e.chrome.app&&e.chrome.runtime&&e.chrome.runtime.id))&&e.history&&e.history.pushState,a=d((/android (\d+)/.exec(Li((e.navigator||{}).userAgent))||[])[1]),s=/Boxee/i.test((e.navigator||{}).userAgent),l=t[0]||{},c=/^(Moz|webkit|ms)(?=[A-Z])/,u=l.body&&l.body.style,h=!1,p=!1;if(u){for(var f in u)if(i=c.exec(f)){n=(n=i[0])[0].toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in u&&"webkit"),h=!!("transition"in u||n+"Transition"in u),p=!!("animation"in u||n+"Animation"in u),!a||h&&p||(h=w(u.webkitTransition),p=w(u.webkitAnimation))}return{history:!(!o||a<4||s),hasEvent:function(e){if("input"===e&&Hi<=11)return!1;if(v(r[e])){var t=l.createElement("div");r[e]="on"+e in t}return r[e]},csp:rr(),vendorPrefix:n,transitions:h,animations:p,android:a}}]}function In(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=["$templateCache","$http","$q","$sce",function(t,n,i,r){function o(a,s){function l(e){if(!s)throw Ho("tpload","Failed to load template: {0} (HTTP status: {1} {2})",a,e.status,e.statusText);return i.reject(e)}o.totalPendingRequests++,w(a)&&!v(t.get(a))||(a=r.getTrustedResourceUrl(a));var u=n.defaults&&n.defaults.transformResponse;return er(u)?u=u.filter(function(e){return e!==xt}):u===xt&&(u=null),n.get(a,c({cache:t,transformResponse:u},e)).finally(function(){o.totalPendingRequests--}).then(function(e){return t.put(a,e.data),e.data},l)}return o.totalPendingRequests=0,o}]}function kn(){this.$get=["$rootScope","$browser","$location",function(e,t,n){var r={};return r.findBindings=function(e,t,n){var r=[];return i(e.getElementsByClassName("ng-binding"),function(e){var o=Xi.element(e).data("$binding");o&&i(o,function(i){n?new RegExp("(^|\\s)"+ir(t)+"(\\s|\\||$)").test(i)&&r.push(e):-1!==i.indexOf(t)&&r.push(e)})}),r},r.findModels=function(e,t,n){for(var i=["ng-","data-ng-","ng\\:"],r=0;r<i.length;++r){var o=n?"=":"*=",a="["+i[r]+"model"+o+'"'+t+'"]',s=e.querySelectorAll(a);if(s.length)return s}},r.getLocation=function(){return n.url()},r.setLocation=function(t){t!==n.url()&&(n.url(t),e.$digest())},r.whenStable=function(e){t.notifyWhenNoOutstandingRequests(e)},r}]}function Mn(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,i,r){function o(o,s,l){x(o)||(l=s,s=o,o=p);var c,u=U(arguments,3),d=b(l)&&!l,h=(d?i:n).defer(),f=h.promise;return c=t.defer(function(){try{h.resolve(o.apply(null,u))}catch(e){h.reject(e),r(e)}finally{delete a[f.$$timeoutId]}d||e.$apply()},s),f.$$timeoutId=c,a[c]=h,f}var a={};return o.cancel=function(e){return!!(e&&e.$$timeoutId in a)&&(a[e.$$timeoutId].reject("canceled"),delete a[e.$$timeoutId],t.defer.cancel(e.$$timeoutId))},o}]}function Pn(e){var t=e;return Hi&&(Uo.setAttribute("href",t),t=Uo.href),Uo.setAttribute("href",t),{href:Uo.href,protocol:Uo.protocol?Uo.protocol.replace(/:$/,""):"",host:Uo.host,search:Uo.search?Uo.search.replace(/^\?/,""):"",hash:Uo.hash?Uo.hash.replace(/^#/,""):"",hostname:Uo.hostname,port:Uo.port,pathname:"/"===Uo.pathname.charAt(0)?Uo.pathname:"/"+Uo.pathname}}function $n(e){var t=w(e)?Pn(e):e;return t.protocol===jo.protocol&&t.host===jo.host}function Nn(){this.$get=m(e)}function On(e){function t(e){try{return decodeURIComponent(e)}catch(t){return e}}var n=e[0]||{},i={},r="";return function(){var e,o,a,s,l,c=n.cookie||"";if(c!==r)for(e=(r=c).split("; "),i={},a=0;a<e.length;a++)(s=(o=e[a]).indexOf("="))>0&&(l=t(o.substring(0,s)),v(i[l])&&(i[l]=t(o.substring(s+1))));return i}}function Rn(){this.$get=On}function Ln(e){function t(r,o){if(y(r)){var a={};return i(r,function(e,n){a[n]=t(n,e)}),a}return e.factory(r+n,o)}var n="Filter";this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+n)}}],t("currency",Un),t("date",ii),t("filter",Gn),t("json",ri),t("limitTo",oi),t("lowercase",Qo),t("number",jn),t("orderBy",si),t("uppercase",Xo)}function Gn(){return function(e,i,r,o){if(!n(e)){if(null==e)return e;throw t("filter")("notarray","Expected array but received: {0}",e)}o=o||"$";var a,s;switch(Hn(i)){case"function":a=i;break;case"boolean":case"null":case"number":case"string":s=!0;case"object":a=Bn(i,r,o,s);break;default:return e}return Array.prototype.filter.call(e,a)}}function Bn(e,t,n,i){var r=y(e)&&n in e;return!0===t?t=F:x(t)||(t=function(e,t){return!v(e)&&(null===e||null===t?e===t:!(y(t)||y(e)&&!g(e))&&(e=Li(""+e),t=Li(""+t),-1!==e.indexOf(t)))}),function(o){return r&&!y(o)?Fn(o,e[n],t,n,!1):Fn(o,e,t,n,i)}}function Fn(e,t,n,i,r,o){var a=Hn(e),s=Hn(t);if("string"===s&&"!"===t.charAt(0))return!Fn(e,t.substring(1),n,i,r);if(er(e))return e.some(function(e){return Fn(e,t,n,i,r)});switch(a){case"object":var l;if(r){for(l in e)if("$"!==l.charAt(0)&&Fn(e[l],t,n,i,!0))return!0;return!o&&Fn(e,t,n,i,!1)}if("object"===s){for(l in t){var c=t[l];if(!x(c)&&!v(c)){var u=l===i;if(!Fn(u?e:e[l],c,n,i,u,u))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function Hn(e){return null===e?"null":typeof e}function Un(e){var t=e.NUMBER_FORMATS;return function(e,n,i){return v(n)&&(n=t.CURRENCY_SYM),v(i)&&(i=t.PATTERNS[1].maxFrac),null==e?e:qn(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,i).replace(/\u00A4/g,n)}}function jn(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:qn(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function Wn(e){var t,n,i,r,o,a=0;for((n=e.indexOf(zo))>-1&&(e=e.replace(zo,"")),(i=e.search(/e/i))>0?(n<0&&(n=i),n+=+e.slice(i+1),e=e.substring(0,i)):n<0&&(n=e.length),i=0;e.charAt(i)===qo;i++);if(i===(o=e.length))t=[0],n=1;else{for(o--;e.charAt(o)===qo;)o--;for(n-=i,t=[],r=0;i<=o;i++,r++)t[r]=+e.charAt(i)}return n>Wo&&(t=t.splice(0,Wo-1),a=n-1,n=1),{d:t,e:a,i:n}}function zn(e,t,n,i){var r=e.d,o=r.length-e.i,a=(t=v(t)?Math.min(Math.max(n,o),i):+t)+e.i,s=r[a];if(a>0){r.splice(Math.max(e.i,a));for(var l=a;l<r.length;l++)r[l]=0}else{o=Math.max(0,o),e.i=1,r.length=Math.max(1,a=t+1),r[0]=0;for(var c=1;c<a;c++)r[c]=0}if(s>=5)if(a-1<0){for(var u=0;u>a;u--)r.unshift(0),e.i++;r.unshift(1),e.i++}else r[a-1]++;for(;o<Math.max(0,t);o++)r.push(0);var d=r.reduceRight(function(e,t,n,i){return t+=e,i[n]=t%10,Math.floor(t/10)},0);d&&(r.unshift(d),e.i++)}function qn(e,t,n,i,r){if(!w(e)&&!A(e)||isNaN(e))return"";var o,a=!isFinite(e),s=!1,l=Math.abs(e)+"",c="";if(a)c="∞";else{zn(o=Wn(l),r,t.minFrac,t.maxFrac);var u=o.d,d=o.i,h=o.e,p=[];for(s=u.reduce(function(e,t){return e&&!t},!0);d<0;)u.unshift(0),d++;d>0?p=u.splice(d,u.length):(p=u,u=[0]);var f=[];for(u.length>=t.lgSize&&f.unshift(u.splice(-t.lgSize,u.length).join(""));u.length>t.gSize;)f.unshift(u.splice(-t.gSize,u.length).join(""));u.length&&f.unshift(u.join("")),c=f.join(n),p.length&&(c+=i+p.join("")),h&&(c+="e+"+h)}return e<0&&!s?t.negPre+c+t.negSuf:t.posPre+c+t.posSuf}function Vn(e,t,n,i){var r="";for((e<0||i&&e<=0)&&(i?e=1-e:(e=-e,r="-")),e=""+e;e.length<t;)e=qo+e;return n&&(e=e.substr(e.length-t)),r+e}function Yn(e,t,n,i,r){return n=n||0,function(o){var a=o["get"+e]();return(n>0||a>-n)&&(a+=n),0===a&&-12===n&&(a=12),Vn(a,t,i,r)}}function Kn(e,t,n){return function(i,r){var o=i["get"+e]();return r[Gi((n?"STANDALONE":"")+(t?"SHORT":"")+e)][o]}}function Qn(e,t,n){var i=-1*n,r=i>=0?"+":"";return r+=Vn(Math[i>0?"floor":"ceil"](i/60),2)+Vn(Math.abs(i%60),2)}function Xn(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t<=4?5:12)-t)}function Zn(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+(4-e.getDay()))}function Jn(e){return function(t){var n=Xn(t.getFullYear()),i=+Zn(t)-+n;return Vn(1+Math.round(i/6048e5),e)}}function ei(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function ti(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}function ni(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}function ii(e){function t(e){var t;if(t=e.match(n)){var i=new Date(0),r=0,o=0,a=t[8]?i.setUTCFullYear:i.setFullYear,s=t[8]?i.setUTCHours:i.setHours;t[9]&&(r=d(t[9]+t[10]),o=d(t[9]+t[11])),a.call(i,d(t[1]),d(t[2])-1,d(t[3]));var l=d(t[4]||0)-r,c=d(t[5]||0)-o,u=d(t[6]||0),h=Math.round(1e3*parseFloat("0."+(t[7]||0)));return s.call(i,l,c,u,h),i}return e}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,o){var a,s,l="",c=[];if(r=r||"mediumDate",r=e.DATETIME_FORMATS[r]||r,w(n)&&(n=Ko.test(n)?d(n):t(n)),A(n)&&(n=new Date(n)),!C(n)||!isFinite(n.getTime()))return n;for(;r;)(s=Yo.exec(r))?r=(c=H(c,s,1)).pop():(c.push(r),r=null);var u=n.getTimezoneOffset();return o&&(u=V(o,u),n=K(n,o,!0)),i(c,function(t){a=Vo[t],l+=a?a(n,e.DATETIME_FORMATS,u):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}}function ri(){return function(e,t){return v(t)&&(t=2),z(e,t)}}function oi(){return function(e,t,i){return t=Math.abs(Number(t))===1/0?Number(t):d(t),Ji(t)?e:(A(e)&&(e=e.toString()),n(e)?(i=!i||isNaN(i)?0:d(i),i=i<0?Math.max(0,e.length+i):i,t>=0?ai(e,i,i+t):0===i?ai(e,t,e.length):ai(e,Math.max(0,i+t),i)):e)}}function ai(e,t,n){return w(e)?e.slice(t,n):zi.call(e,t,n)}function si(e){function i(t){return t.map(function(t){var n=1,i=f;if(x(t))i=t;else if(w(t)&&("+"!==t.charAt(0)&&"-"!==t.charAt(0)||(n="-"===t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(i=e(t)).constant)){var r=i();i=function(e){return e[r]}}return{get:i,descending:n}})}function r(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function o(e){return x(e.valueOf)&&(e=e.valueOf(),r(e))?e:(g(e)&&(e=e.toString(),r(e)),e)}function a(e,t){var n=typeof e;return null===e?(n="string",e="null"):"object"===n&&(e=o(e)),{value:e,type:n,index:t}}function s(e,t){var n=0,i=e.type,r=t.type;if(i===r){var o=e.value,a=t.value;"string"===i?(o=o.toLowerCase(),a=a.toLowerCase()):"object"===i&&(y(o)&&(o=e.index),y(a)&&(a=t.index)),o!==a&&(n=o<a?-1:1)}else n=i<r?-1:1;return n}return function(e,r,o,l){function c(e,t){return{value:e,tieBreaker:{value:t,type:"number",index:t},predicateValues:d.map(function(n){return a(n.get(e),t)})}}function u(e,t){for(var n=0,i=d.length;n<i;n++){var r=p(e.predicateValues[n],t.predicateValues[n]);if(r)return r*d[n].descending*h}return p(e.tieBreaker,t.tieBreaker)*h}if(null==e)return e;if(!n(e))throw t("orderBy")("notarray","Expected array but received: {0}",e);er(r)||(r=[r]),0===r.length&&(r=["+"]);var d=i(r),h=o?-1:1,p=x(l)?l:s,f=Array.prototype.map.call(e,c);return f.sort(u),e=f.map(function(e){return e.value})}}function li(e){return x(e)&&(e={link:e}),e.restrict=e.restrict||"AC",m(e)}function ci(e,t){e.$name=t}function ui(e,t,n,r,o){var a=this,s=[];a.$error={},a.$$success={},a.$pending=void 0,a.$name=o(t.name||t.ngForm||"")(n),a.$dirty=!1,a.$pristine=!0,a.$valid=!0,a.$invalid=!1,a.$submitted=!1,a.$$parentForm=ea,a.$rollbackViewValue=function(){i(s,function(e){e.$rollbackViewValue()})},a.$commitViewValue=function(){i(s,function(e){e.$commitViewValue()})},a.$addControl=function(e){ue(e.$name,"input"),s.push(e),e.$name&&(a[e.$name]=e),e.$$parentForm=a},a.$$renameControl=function(e,t){var n=e.$name;a[n]===e&&delete a[n],a[t]=e,e.$name=t},a.$removeControl=function(e){e.$name&&a[e.$name]===e&&delete a[e.$name],i(a.$pending,function(t,n){a.$setValidity(n,null,e)}),i(a.$error,function(t,n){a.$setValidity(n,null,e)}),i(a.$$success,function(t,n){a.$setValidity(n,null,e)}),G(s,e),e.$$parentForm=ea},Mi({ctrl:this,$element:e,set:function(e,t,n){var i=e[t];i?-1===i.indexOf(n)&&i.push(n):e[t]=[n]},unset:function(e,t,n){var i=e[t];i&&(G(i,n),0===i.length&&delete e[t])},$animate:r}),a.$setDirty=function(){r.removeClass(e,Ga),r.addClass(e,Ba),a.$dirty=!0,a.$pristine=!1,a.$$parentForm.$setDirty()},a.$setPristine=function(){r.setClass(e,Ga,Ba+" "+ta),a.$dirty=!1,a.$pristine=!0,a.$submitted=!1,i(s,function(e){e.$setPristine()})},a.$setUntouched=function(){i(s,function(e){e.$setUntouched()})},a.$setSubmitted=function(){r.addClass(e,ta),a.$submitted=!0,a.$$parentForm.$setSubmitted()}}function di(e){e.$formatters.push(function(t){return e.$isEmpty(t)?t:t.toString()})}function hi(e,t,n,i,r,o){pi(e,t,n,i,r,o),di(i)}function pi(e,t,n,i,r,o){var a=Li(t[0].type);if(!r.android){var s=!1;t.on("compositionstart",function(){s=!0}),t.on("compositionend",function(){s=!1,c()})}var l,c=function(e){if(l&&(o.defer.cancel(l),l=null),!s){var r=t.val(),c=e&&e.type;"password"===a||n.ngTrim&&"false"===n.ngTrim||(r=nr(r)),(i.$viewValue!==r||""===r&&i.$$hasNativeValidators)&&i.$setViewValue(r,c)}};if(r.hasEvent("input"))t.on("input",c);else{var u=function(e,t,n){l||(l=o.defer(function(){l=null,t&&t.value===n||c(e)}))};t.on("keydown",function(e){var t=e.keyCode;91===t||15<t&&t<19||37<=t&&t<=40||u(e,this,this.value)}),r.hasEvent("paste")&&t.on("paste cut",u)}t.on("change",c),ma[a]&&i.$$hasNativeValidators&&a===n.type&&t.on(fa,function(e){if(!l){var t=this[Oi],n=t.badInput,i=t.typeMismatch;l=o.defer(function(){l=null,t.badInput===n&&t.typeMismatch===i||c(e)})}}),i.$render=function(){var e=i.$isEmpty(i.$viewValue)?"":i.$viewValue;t.val()!==e&&t.val(e)}}function fi(e,t){if(C(e))return e;if(w(e)){da.lastIndex=0;var n=da.exec(e);if(n){var i=+n[1],r=+n[2],o=0,a=0,s=0,l=0,c=Xn(i),u=7*(r-1);return t&&(o=t.getHours(),a=t.getMinutes(),s=t.getSeconds(),l=t.getMilliseconds()),new Date(i,0,c.getDate()+u,o,a,s,l)}}return NaN}function mi(e,t){return function(n,r){var o,a;if(C(n))return n;if(w(n)){if('"'===n.charAt(0)&&'"'===n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),oa.test(n))return new Date(n);if(e.lastIndex=0,o=e.exec(n))return o.shift(),a=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},i(o,function(e,n){n<t.length&&(a[t[n]]=+e)}),new Date(a.yyyy,a.MM-1,a.dd,a.HH,a.mm,a.ss||0,1e3*a.sss||0)}return NaN}}function gi(e,t,n,i){return function(r,o,a,s,l,c,u){function d(e){return e&&!(e.getTime&&e.getTime()!==e.getTime())}function h(e){return b(e)&&!C(e)?n(e)||void 0:e}vi(r,o,a,s),pi(r,o,a,s,l,c);var p,f=s&&s.$options&&s.$options.timezone;if(s.$$parserName=e,s.$parsers.push(function(e){if(s.$isEmpty(e))return null;if(t.test(e)){var i=n(e,p);return f&&(i=K(i,f)),i}}),s.$formatters.push(function(e){if(e&&!C(e))throw Ha("datefmt","Expected `{0}` to be a date",e);return d(e)?((p=e)&&f&&(p=K(p,f,!0)),u("date")(e,i,f)):(p=null,"")}),b(a.min)||a.ngMin){var m;s.$validators.min=function(e){return!d(e)||v(m)||n(e)>=m},a.$observe("min",function(e){m=h(e),s.$validate()})}if(b(a.max)||a.ngMax){var g;s.$validators.max=function(e){return!d(e)||v(g)||n(e)<=g},a.$observe("max",function(e){g=h(e),s.$validate()})}}}function vi(e,t,n,i){var r=t[0];(i.$$hasNativeValidators=y(r.validity))&&i.$parsers.push(function(e){var n=t.prop(Oi)||{};return n.badInput||n.typeMismatch?void 0:e})}function bi(e){e.$$parserName="number",e.$parsers.push(function(t){return e.$isEmpty(t)?null:la.test(t)?parseFloat(t):void 0}),e.$formatters.push(function(t){if(!e.$isEmpty(t)){if(!A(t))throw Ha("numfmt","Expected `{0}` to be a number",t);t=t.toString()}return t})}function yi(e){return b(e)&&!A(e)&&(e=parseFloat(e)),Ji(e)?void 0:e}function _i(e){return(0|e)===e}function wi(e){var t=e.toString(),n=t.indexOf(".");if(-1===n){if(-1<e&&e<1){var i=/e-(\d+)$/.exec(t);if(i)return Number(i[1])}return 0}return t.length-n-1}function Ai(e,t,n){var i=Number(e);if(!_i(i)||!_i(t)||!_i(n)){var r=Math.max(wi(i),wi(t),wi(n)),o=Math.pow(10,r);i*=o,t*=o,n*=o}return(i-t)%n==0}function Ci(e,t,n,i,r,o){vi(e,t,n,i),pi(e,t,n,i,r,o),bi(i);var a,s;(b(n.min)||n.ngMin)&&(i.$validators.min=function(e){return i.$isEmpty(e)||v(a)||e>=a},n.$observe("min",function(e){a=yi(e),i.$validate()})),(b(n.max)||n.ngMax)&&(i.$validators.max=function(e){return i.$isEmpty(e)||v(s)||e<=s},n.$observe("max",function(e){s=yi(e),i.$validate()}))}function xi(e,t,n,i,r,o){function a(e,i){t.attr(e,n[e]),n.$observe(e,i)}function s(e){if(d=yi(e),!Ji(i.$modelValue))if(u){var n=t.val();d>n&&(n=d,t.val(n)),i.$setViewValue(n)}else i.$validate()}function l(e){if(h=yi(e),!Ji(i.$modelValue))if(u){var n=t.val();h<n&&(t.val(h),n=h<d?d:h),i.$setViewValue(n)}else i.$validate()}function c(e){p=yi(e),Ji(i.$modelValue)||(u&&i.$viewValue!==t.val()?i.$setViewValue(t.val()):i.$validate())}vi(e,t,n,i),bi(i),pi(e,t,n,i,r,o);var u=i.$$hasNativeValidators&&"range"===t[0].type,d=u?0:void 0,h=u?100:void 0,p=u?1:void 0,f=t[0].validity,m=b(n.min),g=b(n.max),y=b(n.step),_=i.$render;i.$render=u&&b(f.rangeUnderflow)&&b(f.rangeOverflow)?function(){_(),i.$setViewValue(t.val())}:_,m&&(i.$validators.min=u?function(){return!0}:function(e,t){return i.$isEmpty(t)||v(d)||t>=d},a("min",s)),g&&(i.$validators.max=u?function(){return!0}:function(e,t){return i.$isEmpty(t)||v(h)||t<=h},a("max",l)),y&&(i.$validators.step=u?function(){return!f.stepMismatch}:function(e,t){return i.$isEmpty(t)||v(p)||Ai(t,d||0,p)},a("step",c))}function Si(e,t,n,i,r,o){pi(e,t,n,i,r,o),di(i),i.$$parserName="url",i.$validators.url=function(e,t){var n=e||t;return i.$isEmpty(n)||aa.test(n)}}function Ei(e,t,n,i,r,o){pi(e,t,n,i,r,o),di(i),i.$$parserName="email",i.$validators.email=function(e,t){var n=e||t;return i.$isEmpty(n)||sa.test(n)}}function Ti(e,t,n,i){v(n.name)&&t.attr("name",a());var r=function(e){t[0].checked&&i.$setViewValue(n.value,e&&e.type)};t.on("click",r),i.$render=function(){var e=n.value;t[0].checked=e==i.$viewValue},n.$observe("value",i.$render)}function Di(e,t,n,i,r){var o;if(b(i)){if(!(o=e(i)).constant)throw Ha("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,i);return o(t)}return r}function Ii(e,t,n,i,r,o,a,s){var l=Di(s,e,"ngTrueValue",n.ngTrueValue,!0),c=Di(s,e,"ngFalseValue",n.ngFalseValue,!1),u=function(e){i.$setViewValue(t[0].checked,e&&e.type)};t.on("click",u),i.$render=function(){t[0].checked=i.$viewValue},i.$isEmpty=function(e){return!1===e},i.$formatters.push(function(e){return F(e,l)}),i.$parsers.push(function(e){return e?l:c})}function ki(e,t){return e="ngClass"+e,["$animate",function(n){function r(e,t){var n=[];e:for(var i=0;i<e.length;i++){for(var r=e[i],o=0;o<t.length;o++)if(r===t[o])continue e;n.push(r)}return n}function o(e){var t=[];return er(e)?(i(e,function(e){t=t.concat(o(e))}),t):w(e)?e.split(" "):y(e)?(i(e,function(e,n){e&&(t=t.concat(n.split(" ")))}),t):e}return{restrict:"AC",link:function(a,s,l){function c(e){var t=d(e,1);l.$addClass(t)}function u(e){var t=d(e,-1);l.$removeClass(t)}function d(e,t){var n=s.data("$classCounts")||pe(),r=[];return i(e,function(e){(t>0||n[e])&&(n[e]=(n[e]||0)+t,n[e]===+(t>0)&&r.push(e))}),s.data("$classCounts",n),r.join(" ")}function h(e,t){var i=r(t,e),o=r(e,t);i=d(i,1),o=d(o,-1),i&&i.length&&n.addClass(s,i),o&&o.length&&n.removeClass(s,o)}function p(e){if(!0===t||(1&a.$index)===t){var n=o(e||[]);f?F(e,f)||h(o(f),n):c(n)}f=er(e)?e.map(function(e){return me(e)}):me(e)}var f;l.$observe("class",function(t){p(a.$eval(l[e]))}),"ngClass"!==e&&a.$watch("$index",function(e,n){var i=1&e;if(i!==(1&n)){var r=o(f);i===t?c(r):u(r)}}),a.$watch(l[e],p,!0)}}}]}function Mi(e){function t(e,t,s){v(t)?n("$pending",e,s):i("$pending",e,s),M(t)?t?(u(a.$error,e,s),c(a.$$success,e,s)):(c(a.$error,e,s),u(a.$$success,e,s)):(u(a.$error,e,s),u(a.$$success,e,s)),a.$pending?(r(Fa,!0),a.$valid=a.$invalid=void 0,o("",null)):(r(Fa,!1),a.$valid=Pi(a.$error),a.$invalid=!a.$valid,o("",a.$valid));var l;o(e,l=a.$pending&&a.$pending[e]?void 0:!a.$error[e]&&(!!a.$$success[e]||null)),a.$$parentForm.$setValidity(e,l,a)}function n(e,t,n){a[e]||(a[e]={}),c(a[e],t,n)}function i(e,t,n){a[e]&&u(a[e],t,n),Pi(a[e])&&(a[e]=void 0)}function r(e,t){t&&!l[e]?(d.addClass(s,e),l[e]=!0):!t&&l[e]&&(d.removeClass(s,e),l[e]=!1)}function o(e,t){e=e?"-"+se(e,"-"):"",r(Ra+e,!0===t),r(La+e,!1===t)}var a=e.ctrl,s=e.$element,l={},c=e.set,u=e.unset,d=e.$animate;l[La]=!(l[Ra]=s.hasClass(Ra)),a.$setValidity=t}function Pi(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}function $i(e){e[0].hasAttribute("selected")&&(e[0].selected=!0)}var Ni=/^\/(.+)\/([a-z]*)$/,Oi="validity",Ri=Object.prototype.hasOwnProperty,Li=function(e){return w(e)?e.toLowerCase():e},Gi=function(e){return w(e)?e.toUpperCase():e},Bi=function(e){return w(e)?e.replace(/[A-Z]/g,function(e){return String.fromCharCode(32|e.charCodeAt(0))}):e},Fi=function(e){return w(e)?e.replace(/[a-z]/g,function(e){return String.fromCharCode(-33&e.charCodeAt(0))}):e};"i"!=="I".toLowerCase()&&(Li=Bi,Gi=Fi);var Hi,Ui,ji,Wi,zi=[].slice,qi=[].splice,Vi=[].push,Yi=Object.prototype.toString,Ki=Object.getPrototypeOf,Qi=t("ng"),Xi=e.angular||(e.angular={}),Zi=0;Hi=e.document.documentMode;var Ji=Number.isNaN||function(e){return e!==e};p.$inject=[],f.$inject=[];var er=Array.isArray,tr=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array]$/,nr=function(e){return w(e)?e.trim():e},ir=function(e){return e.replace(/([-()[\]{}+?*.$^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},rr=function(){if(!b(rr.rules)){var t=e.document.querySelector("[ng-csp]")||e.document.querySelector("[data-ng-csp]");if(t){var n=t.getAttribute("ng-csp")||t.getAttribute("data-ng-csp");rr.rules={noUnsafeEval:!n||-1!==n.indexOf("no-unsafe-eval"),noInlineStyle:!n||-1!==n.indexOf("no-inline-style")}}else rr.rules={noUnsafeEval:function(){try{return new Function(""),!1}catch(e){return!0}}(),noInlineStyle:!1}}return rr.rules},or=function(){if(b(or.name_))return or.name_;var t,n,i,r,o=sr.length;for(n=0;n<o;++n)if(i=sr[n],t=e.document.querySelector("["+i.replace(":","\\:")+"jq]")){r=t.getAttribute(i+"jq");break}return or.name_=r},ar=/:/g,sr=["ng-","data-ng-","ng:","x-ng-"],lr=function(e){if(!e.currentScript)return!0;var t=e.currentScript.getAttribute("src"),n=e.createElement("a");if(n.href=t,e.location.origin===n.origin)return!0;switch(n.protocol){case"http:":case"https:":case"ftp:":case"blob:":case"file:":case"data:":return!0;default:return!1}}(e.document),cr=/[A-Z]/g,ur=!1,dr=1,hr=3,pr=8,fr=9,mr=11,gr={full:"1.5.10",major:1,minor:5,dot:10,codeName:"asynchronous-synchronization"};Te.expando="ng339";var vr=Te.cache={},br=1,yr=function(e,t,n){e.addEventListener(t,n,!1)},_r=function(e,t,n){e.removeEventListener(t,n,!1)};Te._data=function(e){return this.cache[e[this.expando]]||{}};var wr=/([:\-_]+(.))/g,Ar=/^moz([A-Z])/,Cr={mouseleave:"mouseout",mouseenter:"mouseover"},xr=t("jqLite"),Sr=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Er=/<|&#?\w+;/,Tr=/<([\w:-]+)/,Dr=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Ir={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ir.optgroup=Ir.option,Ir.tbody=Ir.tfoot=Ir.colgroup=Ir.caption=Ir.thead,Ir.th=Ir.td;var kr=e.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))},Mr=Te.prototype={ready:function(t){function n(){i||(i=!0,t())}var i=!1;"complete"===e.document.readyState?e.setTimeout(n):(this.on("DOMContentLoaded",n),Te(e).on("load",n))},toString:function(){var e=[];return i(this,function(t){e.push(""+t)}),"["+e.join(", ")+"]"},eq:function(e){return Ui(e>=0?this[e]:this[this.length+e])},length:0,push:Vi,sort:[].sort,splice:[].splice},Pr={};i("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(e){Pr[Li(e)]=e});var $r={};i("input,select,option,textarea,button,form,details".split(","),function(e){$r[e]=!0});var Nr={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};i({data:$e,removeData:Me,hasData:Ae,cleanData:Ce},function(e,t){Te[t]=e}),i({data:$e,inheritedData:Be,scope:function(e){return Ui.data(e,"$scope")||Be(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return Ui.data(e,"$isolateScope")||Ui.data(e,"$isolateScopeNoTemplate")},controller:Ge,injector:function(e){return Be(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:Ne,css:function(e,t,n){if(t=ye(t),!b(n))return e.style[t];e.style[t]=n},attr:function(e,t,n){var i=e.nodeType;if(i!==hr&&2!==i&&i!==pr){var r=Li(t);if(Pr[r]){if(!b(n))return e[t]||(e.attributes.getNamedItem(t)||p).specified?r:void 0;n?(e[t]=!0,e.setAttribute(t,r)):(e[t]=!1,e.removeAttribute(r))}else if(b(n))e.setAttribute(t,n);else if(e.getAttribute){var o=e.getAttribute(t,2);return null===o?void 0:o}}},prop:function(e,t,n){if(!b(n))return e[t];e[t]=n},text:function(){function e(e,t){if(v(t)){var n=e.nodeType;return n===dr||n===hr?e.textContent:""}e.textContent=t}return e.$dv="",e}(),val:function(e,t){if(v(t)){if(e.multiple&&"select"===L(e)){var n=[];return i(e.options,function(e){e.selected&&n.push(e.value||e.text)}),0===n.length?null:n}return e.value}e.value=t},html:function(e,t){if(v(t))return e.innerHTML;Ie(e,!0),e.innerHTML=t},empty:Fe},function(e,t){Te.prototype[t]=function(t,n){var i,r,o=this.length;if(e!==Fe&&v(2===e.length&&e!==Ne&&e!==Ge?t:n)){if(y(t)){for(i=0;i<o;i++)if(e===$e)e(this[i],t);else for(r in t)e(this[i],r,t[r]);return this}for(var a=e.$dv,s=v(a)?Math.min(o,1):o,l=0;l<s;l++){var c=e(this[l],t,n);a=a?a+c:c}return a}for(i=0;i<o;i++)e(this[i],t,n);return this}}),i({removeData:Me,on:function(e,t,n,i){if(b(i))throw xr("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(we(e)){var r=Pe(e,!0),o=r.events,a=r.handle;a||(a=r.handle=ze(e,o));for(var s=t.indexOf(" ")>=0?t.split(" "):[t],l=s.length,c=function(t,i,r){var s=o[t];s||((s=o[t]=[]).specialHandlerWrapper=i,"$destroy"===t||r||yr(e,t,a)),s.push(n)};l--;)t=s[l],Cr[t]?(c(Cr[t],Ve),c(t,void 0,!0)):c(t)}},off:ke,one:function(e,t,n){(e=Ui(e)).on(t,function i(){e.off(t,n),e.off(t,i)}),e.on(t,n)},replaceWith:function(e,t){var n,r=e.parentNode;Ie(e),i(new Te(t),function(t){n?r.insertBefore(t,n.nextSibling):r.replaceChild(t,e),n=t})},children:function(e){var t=[];return i(e.childNodes,function(e){e.nodeType===dr&&t.push(e)}),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===dr||n===mr)for(var i=0,r=(t=new Te(t)).length;i<r;i++){var o=t[i];e.appendChild(o)}},prepend:function(e,t){if(e.nodeType===dr){var n=e.firstChild;i(new Te(t),function(t){e.insertBefore(t,n)})}},wrap:function(e,t){Ee(e,Ui(t).eq(0).clone()[0])},remove:He,detach:function(e){He(e,!0)},after:function(e,t){var n=e,i=e.parentNode;if(i)for(var r=0,o=(t=new Te(t)).length;r<o;r++){var a=t[r];i.insertBefore(a,n.nextSibling),n=a}},addClass:Re,removeClass:Oe,toggleClass:function(e,t,n){t&&i(t.split(" "),function(t){var i=n;v(i)&&(i=!Ne(e,t)),(i?Re:Oe)(e,t)})},parent:function(e){var t=e.parentNode;return t&&t.nodeType!==mr?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:De,triggerHandler:function(e,t,n){var r,o,a,s=t.type||t,l=Pe(e),u=l&&l.events,d=u&&u[s];d&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return!0===this.defaultPrevented},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return!0===this.immediatePropagationStopped},stopPropagation:p,type:s,target:e},t.type&&(r=c(r,t)),o=me(d),a=n?[r].concat(n):[r],i(o,function(t){r.isImmediatePropagationStopped()||t.apply(e,a)}))}},function(e,t){Te.prototype[t]=function(t,n,i){for(var r,o=0,a=this.length;o<a;o++)v(r)?b(r=e(this[o],t,n,i))&&(r=Ui(r)):Le(r,e(this[o],t,n,i));return b(r)?r:this}}),Te.prototype.bind=Te.prototype.on,Te.prototype.unbind=Te.prototype.off,Qe.prototype={put:function(e,t){this[Ke(e,this.nextUid)]=t},get:function(e){return this[Ke(e,this.nextUid)]},remove:function(e){var t=this[e=Ke(e,this.nextUid)];return delete this[e],t}};var Or=[function(){this.$get=[function(){return Qe}]}],Rr=/^([^(]+?)=>/,Lr=/^[^(]*\(\s*([^)]*)\)/m,Gr=/,/,Br=/^\s*(_?)(\S+?)\1\s*$/,Fr=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Hr=t("$injector");tt.$$annotate=et;var Ur=t("$animate"),jr=1,Wr=function(){this.$get=p},zr=function(){var e=new Qe,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,r){function o(e,t,n){var r=!1;return t&&i(t=w(t)?t.split(" "):er(t)?t:[],function(t){t&&(r=!0,e[t]=n)}),r}function a(){i(t,function(t){var n=e.get(t);if(n){var r=ot(t.attr("class")),o="",a="";i(n,function(e,t){e!==!!r[t]&&(e?o+=(o.length?" ":"")+t:a+=(a.length?" ":"")+t)}),i(t,function(e){o&&Re(e,o),a&&Oe(e,a)}),e.remove(t)}}),t.length=0}function s(n,i,s){var l=e.get(n)||{},c=o(l,i,!0),u=o(l,s,!1);(c||u)&&(e.put(n,l),t.push(n),1===t.length&&r.$$postDigest(a))}return{enabled:p,on:p,off:p,pin:p,push:function(e,t,i,r){r&&r(),(i=i||{}).from&&e.css(i.from),i.to&&e.css(i.to),(i.addClass||i.removeClass)&&s(e,i.addClass,i.removeClass);var o=new n;return o.complete(),o}}}]},qr=["$provide",function(e){var t=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,i){if(n&&"."!==n.charAt(0))throw Ur("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var r=n+"-animation";t.$$registeredAnimations[n.substr(1)]=r,e.factory(r,i)},this.classNameFilter=function(e){if(1===arguments.length&&(this.$$classNameFilter=e instanceof RegExp?e:null,this.$$classNameFilter&&new RegExp("(\\s+|\\/)ng-animate(\\s+|\\/)").test(this.$$classNameFilter.toString())))throw Ur("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',"ng-animate");return this.$$classNameFilter},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var i=rt(n);!i||i.parentNode||i.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.end&&e.end()},enter:function(n,i,r,o){return i=i&&Ui(i),r=r&&Ui(r),i=i||r.parent(),t(n,i,r),e.push(n,"enter",at(o))},move:function(n,i,r,o){return i=i&&Ui(i),r=r&&Ui(r),i=i||r.parent(),t(n,i,r),e.push(n,"move",at(o))},leave:function(t,n){return e.push(t,"leave",at(n),function(){t.remove()})},addClass:function(t,n,i){return i=at(i),i.addClass=it(i.addclass,n),e.push(t,"addClass",i)},removeClass:function(t,n,i){return i=at(i),i.removeClass=it(i.removeClass,n),e.push(t,"removeClass",i)},setClass:function(t,n,i,r){return r=at(r),r.addClass=it(r.addClass,n),r.removeClass=it(r.removeClass,i),e.push(t,"setClass",r)},animate:function(t,n,i,r,o){return o=at(o),o.from=o.from?c(o.from,n):n,o.to=o.to?c(o.to,i):i,r=r||"ng-inline-animate",o.tempClasses=it(o.tempClasses,r),e.push(t,"animate",o)}}}]}],Vr=function(){this.$get=["$$rAF",function(e){function t(t){n.push(t),n.length>1||e(function(){for(var e=0;e<n.length;e++)n[e]();n=[]})}var n=[];return function(){var e=!1;return t(function(){e=!0}),function(n){e?n():t(n)}}}]},Yr=function(){this.$get=["$q","$sniffer","$$animateAsyncRun","$document","$timeout",function(e,t,n,r,o){function a(e){this.setHost(e);var t=n(),i=function(e){o(e,0,!1)};this._doneCallbacks=[],this._tick=function(e){var n=r[0];n&&n.hidden?i(e):t(e)},this._state=0}return a.chain=function(e,t){function n(){i!==e.length?e[i](function(e){!1!==e?(i++,n()):t(!1)}):t(!0)}var i=0;n()},a.all=function(e,t){function n(n){o=o&&n,++r===e.length&&t(o)}var r=0,o=!0;i(e,function(e){e.done(n)})},a.prototype={setHost:function(e){this.host=e||{}},done:function(e){2===this._state?e():this._doneCallbacks.push(e)},progress:p,getPromise:function(){if(!this.promise){var t=this;this.promise=e(function(e,n){t.done(function(t){!1===t?n():e()})})}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},catch:function(e){return this.getPromise().catch(e)},finally:function(e){return this.getPromise().finally(e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;0===t._state&&(t._state=1,t._tick(function(){t._resolve(e)}))},_resolve:function(e){2!==this._state&&(i(this._doneCallbacks,function(t){t(e)}),this._doneCallbacks.length=0,this._state=2)}},a}]},Kr=function(){this.$get=["$$rAF","$q","$$AnimateRunner",function(e,t,n){return function(t,i){function r(){return e(function(){o(),s||l.complete(),s=!0}),l}function o(){a.addClass&&(t.addClass(a.addClass),a.addClass=null),a.removeClass&&(t.removeClass(a.removeClass),a.removeClass=null),a.to&&(t.css(a.to),a.to=null)}var a=i||{};a.$$prepared||(a=B(a)),a.cleanupStyles&&(a.from=a.to=null),a.from&&(t.css(a.from),a.from=null);var s,l=new n;return{start:r,end:r}}}]},Qr=t("$compile"),Xr=new dt;ht.$inject=["$provide","$$sanitizeUriProvider"],pt.prototype.isFirstChange=function(){return this.previousValue===Xr};var Zr=/^((?:x|data)[:\-_])/i,Jr=t("$controller"),eo=/^(\S+)(\s+as\s+([\w$]+))?$/,to=function(){this.$get=["$document",function(e){return function(t){return t?!t.nodeType&&t instanceof Ui&&(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},no="application/json",io={"Content-Type":no+";charset=utf-8"},ro=/^\[|^\{(?!\{)/,oo={"[":/]$/,"{":/}$/},ao=/^\)]\}',?\n/,so=t("$http"),lo=function(e){return function(){throw so("legacy","The method `{0}` on the promise returned from `$http` has been disabled.",e)}},co=Xi.$interpolateMinErr=t("$interpolate");co.throwNoconcat=function(e){throw co("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required.  See http://docs.angularjs.org/api/ng.$sce",e)},co.interr=function(e,t){return co("interr","Can't interpolate: {0}\n{1}",e,t.toString())};var uo=function(){this.$get=["$window",function(e){function t(e){var t=function(e){t.data=e,t.called=!0};return t.id=e,t}var n=e.angular.callbacks,i={};return{createCallback:function(e){var r="_"+(n.$$counter++).toString(36),o="angular.callbacks."+r,a=t(r);return i[o]=n[r]=a,o},wasCalled:function(e){return i[e].called},getResponse:function(e){return i[e].data},removeCallback:function(e){var t=i[e];delete n[t.id],delete i[e]}}}]},ho=/^([^?#]*)(\?([^#]*))?(#(.*))?$/,po={http:80,https:443,ftp:21},fo=t("$location"),mo=/^\s*[\\/]{2,}/,go={$$absUrl:"",$$html5:!1,$$replace:!1,absUrl:Yt("$$absUrl"),url:function(e){if(v(e))return this.$$url;var t=ho.exec(e);return(t[1]||""===e)&&this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:Yt("$$protocol"),host:Yt("$$host"),port:Yt("$$port"),path:Kt("$$path",function(e){return e=null!==e?e.toString():"","/"===e.charAt(0)?e:"/"+e}),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(w(e)||A(e))e=e.toString(),this.$$search=Z(e);else{if(!y(e))throw fo("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");i(e=B(e,{}),function(t,n){null==t&&delete e[n]}),this.$$search=e}break;default:v(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:Kt("$$hash",function(e){return null!==e?e.toString():""}),replace:function(){return this.$$replace=!0,this}};i([Vt,qt,zt],function(e){e.prototype=Object.create(go),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==zt||!this.$$html5)throw fo("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=v(t)?null:t,this}});var vo=t("$parse"),bo=[].constructor,yo=(!1).constructor,_o=Function.constructor,wo=(0).constructor,Ao={}.constructor,Co="".constructor,xo=bo.prototype,So=yo.prototype,Eo=_o.prototype,To=wo.prototype,Do=Ao.prototype,Io=Co.prototype,ko=Eo.call,Mo=Eo.apply,Po=Eo.bind,$o=Do.valueOf,No=pe();i("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(e){No[e]=!0});var Oo={n:"\n",f:"\f",r:"\r",t:"\t",v:"\v","'":"'",'"':'"'},Ro=function(e){this.options=e};Ro.prototype={constructor:Ro,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;){var t=this.text.charAt(this.index);if('"'===t||"'"===t)this.readString(t);else if(this.isNumber(t)||"."===t&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdentifierStart(this.peekMultichar()))this.readIdent();else if(this.is(t,"(){}[].,;:?"))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),i=n+this.peek(2),r=No[t],o=No[n],a=No[i];if(r||o||a){var s=a?i:o?n:t;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(e,t){return-1!==t.indexOf(e)},peek:function(e){var t=e||1;return this.index+t<this.text.length&&this.text.charAt(this.index+t)},isNumber:function(e){return"0"<=e&&e<="9"&&"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||"\t"===e||"\n"===e||"\v"===e||" "===e},isIdentifierStart:function(e){return this.options.isIdentifierStart?this.options.isIdentifierStart(e,this.codePointAt(e)):this.isValidIdentifierStart(e)},isValidIdentifierStart:function(e){return"a"<=e&&e<="z"||"A"<=e&&e<="Z"||"_"===e||"$"===e},isIdentifierContinue:function(e){return this.options.isIdentifierContinue?this.options.isIdentifierContinue(e,this.codePointAt(e)):this.isValidIdentifierContinue(e)},isValidIdentifierContinue:function(e,t){return this.isValidIdentifierStart(e,t)||this.isNumber(e)},codePointAt:function(e){return 1===e.length?e.charCodeAt(0):(e.charCodeAt(0)<<10)+e.charCodeAt(1)-56613888},peekMultichar:function(){var e=this.text.charAt(this.index),t=this.peek();if(!t)return e;var n=e.charCodeAt(0),i=t.charCodeAt(0);return n>=55296&&n<=56319&&i>=56320&&i<=57343?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var i=b(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw vo("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,i,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=Li(this.text.charAt(this.index));if("."===n||this.isNumber(n))e+=n;else{var i=this.peek();if("e"===n&&this.isExpOperator(i))e+=n;else if(this.isExpOperator(n)&&i&&this.isNumber(i)&&"e"===e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||i&&this.isNumber(i)||"e"!==e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){var e=this.index;for(this.index+=this.peekMultichar().length;this.index<this.text.length;){var t=this.peekMultichar();if(!this.isIdentifierContinue(t))break;this.index+=t.length}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",i=e,r=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(i+=o,r){if("u"===o){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else n+=Oo[o]||o;r=!1}else if("\\"===o)r=!0;else{if(o===e)return this.index++,void this.tokens.push({index:t,text:i,constant:!0,value:n});n+=o}this.index++}this.throwError("Unterminated quote",t)}};var Lo=function(e,t){this.lexer=e,this.options=t};Lo.Program="Program",Lo.ExpressionStatement="ExpressionStatement",Lo.AssignmentExpression="AssignmentExpression",Lo.ConditionalExpression="ConditionalExpression",Lo.LogicalExpression="LogicalExpression",Lo.BinaryExpression="BinaryExpression",Lo.UnaryExpression="UnaryExpression",Lo.CallExpression="CallExpression",Lo.MemberExpression="MemberExpression",Lo.Identifier="Identifier",Lo.Literal="Literal",Lo.ArrayExpression="ArrayExpression",Lo.Property="Property",Lo.ObjectExpression="ObjectExpression",Lo.ThisExpression="ThisExpression",Lo.LocalsExpression="LocalsExpression",Lo.NGValueParameter="NGValueParameter",Lo.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t},program:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:Lo.Program,body:e}},expressionStatement:function(){return{type:Lo.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e=this.expression();this.expect("|");)e=this.filter(e);return e},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();if(this.expect("=")){if(!cn(e))throw vo("lval","Trying to assign a value to a non l-value");e={type:Lo.AssignmentExpression,left:e,right:this.assignment(),operator:"="}}return e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:Lo.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:Lo.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:Lo.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:Lo.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:Lo.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:Lo.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:Lo.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:Lo.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e;this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=B(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:Lo.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());for(var t;t=this.expect("(","[",".");)"("===t.text?(e={type:Lo.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:Lo.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:Lo.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:Lo.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do{e.push(this.filterChain())}while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:Lo.Identifier,name:e.text}},constant:function(){return{type:Lo.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:Lo.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:Lo.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0,this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:Lo.ObjectExpression,properties:t}},throwError:function(e,t){throw vo("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw vo("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw vo("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,i){return this.peekAhead(0,e,t,n,i)},peekAhead:function(e,t,n,i,r){if(this.tokens.length>e){var o=this.tokens[e],a=o.text;if(a===t||a===n||a===i||a===r||!t&&!n&&!i&&!r)return o}return!1},expect:function(e,t,n,i){var r=this.peek(e,t,n,i);return!!r&&(this.tokens.shift(),r)},selfReferential:{this:{type:Lo.ThisExpression},$locals:{type:Lo.LocalsExpression}}},pn.prototype={compile:function(e,t){var n=this,r=this.astBuilder.ast(e);this.state={nextId:0,filters:{},expensiveChecks:t,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},sn(r,n.$filter);var o,a="";if(this.stage="assign",o=un(r)){this.state.computing="assign";var s=this.nextId();this.recurse(o,s),this.return_(s),a="fn.assign="+this.generateFunction("assign","s,v,l")}var l=ln(r.body);n.stage="inputs",i(l,function(e,t){var i="fn"+t;n.state[i]={vars:[],body:[],own:{}},n.state.computing=i;var r=n.nextId();n.recurse(e,r),n.return_(r),n.state.inputs.push(i),e.watchId=t}),this.state.computing="fn",this.stage="main",this.recurse(r);var c='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+a+this.watchFns()+"return fn;",u=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",c)(this.$filter,Zt,en,tn,Jt,nn,rn,on,e);return this.state=this.stage=void 0,u.literal=dn(r),u.constant=hn(r),u},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return i(t,function(t){e.push("var "+t+"="+n.generateFunction(t,"s"))}),t.length&&e.push("fn.inputs=["+t.join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return i(this.state.filters,function(n,i){e.push(n+"=$filter("+t.escape(i)+")")}),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,n,r,o,a){var s,l,c,u,d,h=this;if(r=r||p,!a&&b(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,n,r,o,!0));switch(e.type){case Lo.Program:i(e.body,function(t,n){h.recurse(t.expression,void 0,void 0,function(e){l=e}),n!==e.body.length-1?h.current().body.push(l,";"):h.return_(l)});break;case Lo.Literal:u=this.escape(e.value),this.assign(t,u),r(u);break;case Lo.UnaryExpression:this.recurse(e.argument,void 0,void 0,function(e){l=e}),u=e.operator+"("+this.ifDefined(l,0)+")",this.assign(t,u),r(u);break;case Lo.BinaryExpression:this.recurse(e.left,void 0,void 0,function(e){s=e}),this.recurse(e.right,void 0,void 0,function(e){l=e}),u="+"===e.operator?this.plus(s,l):"-"===e.operator?this.ifDefined(s,0)+e.operator+this.ifDefined(l,0):"("+s+")"+e.operator+"("+l+")",this.assign(t,u),r(u);break;case Lo.LogicalExpression:t=t||this.nextId(),h.recurse(e.left,t),h.if_("&&"===e.operator?t:h.not(t),h.lazyRecurse(e.right,t)),r(t);break;case Lo.ConditionalExpression:t=t||this.nextId(),h.recurse(e.test,t),h.if_(t,h.lazyRecurse(e.alternate,t),h.lazyRecurse(e.consequent,t)),r(t);break;case Lo.Identifier:t=t||this.nextId(),n&&(n.context="inputs"===h.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),n.computed=!1,n.name=e.name),Zt(e.name),h.if_("inputs"===h.stage||h.not(h.getHasOwnProperty("l",e.name)),function(){h.if_("inputs"===h.stage||"s",function(){o&&1!==o&&h.if_(h.not(h.nonComputedMember("s",e.name)),h.lazyAssign(h.nonComputedMember("s",e.name),"{}")),h.assign(t,h.nonComputedMember("s",e.name))})},t&&h.lazyAssign(t,h.nonComputedMember("l",e.name))),(h.state.expensiveChecks||mn(e.name))&&h.addEnsureSafeObject(t),r(t);break;case Lo.MemberExpression:s=n&&(n.context=this.nextId())||this.nextId(),t=t||this.nextId(),h.recurse(e.object,s,void 0,function(){h.if_(h.notNull(s),function(){o&&1!==o&&h.addEnsureSafeAssignContext(s),e.computed?(l=h.nextId(),h.recurse(e.property,l),h.getStringValue(l),h.addEnsureSafeMemberName(l),o&&1!==o&&h.if_(h.not(h.computedMember(s,l)),h.lazyAssign(h.computedMember(s,l),"{}")),u=h.ensureSafeObject(h.computedMember(s,l)),h.assign(t,u),n&&(n.computed=!0,n.name=l)):(Zt(e.property.name),o&&1!==o&&h.if_(h.not(h.nonComputedMember(s,e.property.name)),h.lazyAssign(h.nonComputedMember(s,e.property.name),"{}")),u=h.nonComputedMember(s,e.property.name),(h.state.expensiveChecks||mn(e.property.name))&&(u=h.ensureSafeObject(u)),h.assign(t,u),n&&(n.computed=!1,n.name=e.property.name))},function(){h.assign(t,"undefined")}),r(t)},!!o);break;case Lo.CallExpression:t=t||this.nextId(),e.filter?(l=h.filter(e.callee.name),c=[],i(e.arguments,function(e){var t=h.nextId();h.recurse(e,t),c.push(t)}),u=l+"("+c.join(",")+")",h.assign(t,u),r(t)):(l=h.nextId(),s={},c=[],h.recurse(e.callee,l,s,function(){h.if_(h.notNull(l),function(){h.addEnsureSafeFunction(l),i(e.arguments,function(e){h.recurse(e,h.nextId(),void 0,function(e){c.push(h.ensureSafeObject(e))})}),s.name?(h.state.expensiveChecks||h.addEnsureSafeObject(s.context),u=h.member(s.context,s.name,s.computed)+"("+c.join(",")+")"):u=l+"("+c.join(",")+")",u=h.ensureSafeObject(u),h.assign(t,u)},function(){h.assign(t,"undefined")}),r(t)}));break;case Lo.AssignmentExpression:l=this.nextId(),s={},this.recurse(e.left,void 0,s,function(){h.if_(h.notNull(s.context),function(){h.recurse(e.right,l),h.addEnsureSafeObject(h.member(s.context,s.name,s.computed)),h.addEnsureSafeAssignContext(s.context),u=h.member(s.context,s.name,s.computed)+e.operator+l,h.assign(t,u),r(t||u)})},1);break;case Lo.ArrayExpression:c=[],i(e.elements,function(e){h.recurse(e,h.nextId(),void 0,function(e){c.push(e)})}),u="["+c.join(",")+"]",this.assign(t,u),r(u);break;case Lo.ObjectExpression:c=[],d=!1,i(e.properties,function(e){e.computed&&(d=!0)}),d?(t=t||this.nextId(),this.assign(t,"{}"),i(e.properties,function(e){e.computed?(s=h.nextId(),h.recurse(e.key,s)):s=e.key.type===Lo.Identifier?e.key.name:""+e.key.value,l=h.nextId(),h.recurse(e.value,l),h.assign(h.member(t,s,e.computed),l)})):(i(e.properties,function(t){h.recurse(t.value,e.constant?void 0:h.nextId(),void 0,function(e){c.push(h.escape(t.key.type===Lo.Identifier?t.key.name:""+t.key.value)+":"+e)})}),u="{"+c.join(",")+"}",this.assign(t,u)),r(t||u);break;case Lo.ThisExpression:this.assign(t,"s"),r("s");break;case Lo.LocalsExpression:this.assign(t,"l"),r("l");break;case Lo.NGValueParameter:this.assign(t,"v"),r("v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,i=this.current().own;return i.hasOwnProperty(n)||(i[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),i[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(!0===e)t();else{var i=this.current().body;i.push("if(",e,"){"),t(),i.push("}"),n&&(i.push("else{"),n(),i.push("}"))}},not:function(e){return"!("+e+")"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){var n=/[^$_a-zA-Z0-9]/g;return/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(t)?e+"."+t:e+'["'+t.replace(n,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},addEnsureSafeObject:function(e){this.current().body.push(this.ensureSafeObject(e),";")},addEnsureSafeMemberName:function(e){this.current().body.push(this.ensureSafeMemberName(e),";")},addEnsureSafeFunction:function(e){this.current().body.push(this.ensureSafeFunction(e),";")},addEnsureSafeAssignContext:function(e){this.current().body.push(this.ensureSafeAssignContext(e),";")},ensureSafeObject:function(e){return"ensureSafeObject("+e+",text)"},ensureSafeMemberName:function(e){return"ensureSafeMemberName("+e+",text)"},ensureSafeFunction:function(e){return"ensureSafeFunction("+e+",text)"},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},ensureSafeAssignContext:function(e){return"ensureSafeAssignContext("+e+",text)"},lazyRecurse:function(e,t,n,i,r,o){var a=this;return function(){a.recurse(e,t,n,i,r,o)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(w(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(A(e))return e.toString();if(!0===e)return"true";if(!1===e)return"false";if(null===e)return"null";if(void 0===e)return"undefined";throw vo("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},fn.prototype={compile:function(e,t){var n=this,r=this.astBuilder.ast(e);this.expression=e,this.expensiveChecks=t,sn(r,n.$filter);var o,a;(o=un(r))&&(a=this.recurse(o));var s,l=ln(r.body);l&&(s=[],i(l,function(e,t){var i=n.recurse(e);e.input=i,s.push(i),e.watchId=t}));var c=[];i(r.body,function(e){c.push(n.recurse(e.expression))});var u=0===r.body.length?p:1===r.body.length?c[0]:function(e,t){var n;return i(c,function(i){n=i(e,t)}),n};return a&&(u.assign=function(e,t,n){return a(e,n,t)}),s&&(u.inputs=s),u.literal=dn(r),u.constant=hn(r),u},recurse:function(e,t,n){var r,o,a,s=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case Lo.Literal:return this.value(e.value,t);case Lo.UnaryExpression:return o=this.recurse(e.argument),this["unary"+e.operator](o,t);case Lo.BinaryExpression:case Lo.LogicalExpression:return r=this.recurse(e.left),o=this.recurse(e.right),this["binary"+e.operator](r,o,t);case Lo.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case Lo.Identifier:return Zt(e.name,s.expression),s.identifier(e.name,s.expensiveChecks||mn(e.name),t,n,s.expression);case Lo.MemberExpression:return r=this.recurse(e.object,!1,!!n),e.computed||(Zt(e.property.name,s.expression),o=e.property.name),e.computed&&(o=this.recurse(e.property)),e.computed?this.computedMember(r,o,t,n,s.expression):this.nonComputedMember(r,o,s.expensiveChecks,t,n,s.expression);case Lo.CallExpression:return a=[],i(e.arguments,function(e){a.push(s.recurse(e))}),e.filter&&(o=this.$filter(e.callee.name)),e.filter||(o=this.recurse(e.callee,!0)),e.filter?function(e,n,i,r){for(var s=[],l=0;l<a.length;++l)s.push(a[l](e,n,i,r));var c=o.apply(void 0,s,r);return t?{context:void 0,name:void 0,value:c}:c}:function(e,n,i,r){var l,c=o(e,n,i,r);if(null!=c.value){en(c.context,s.expression),tn(c.value,s.expression);for(var u=[],d=0;d<a.length;++d)u.push(en(a[d](e,n,i,r),s.expression));l=en(c.value.apply(c.context,u),s.expression)}return t?{value:l}:l};case Lo.AssignmentExpression:return r=this.recurse(e.left,!0,1),o=this.recurse(e.right),function(e,n,i,a){var l=r(e,n,i,a),c=o(e,n,i,a);return en(l.value,s.expression),nn(l.context),l.context[l.name]=c,t?{value:c}:c};case Lo.ArrayExpression:return a=[],i(e.elements,function(e){a.push(s.recurse(e))}),function(e,n,i,r){for(var o=[],s=0;s<a.length;++s)o.push(a[s](e,n,i,r));return t?{value:o}:o};case Lo.ObjectExpression:return a=[],i(e.properties,function(e){e.computed?a.push({key:s.recurse(e.key),computed:!0,value:s.recurse(e.value)}):a.push({key:e.key.type===Lo.Identifier?e.key.name:""+e.key.value,computed:!1,value:s.recurse(e.value)})}),function(e,n,i,r){for(var o={},s=0;s<a.length;++s)a[s].computed?o[a[s].key(e,n,i,r)]=a[s].value(e,n,i,r):o[a[s].key]=a[s].value(e,n,i,r);return t?{value:o}:o};case Lo.ThisExpression:return function(e){return t?{value:e}:e};case Lo.LocalsExpression:return function(e,n){return t?{value:n}:n};case Lo.NGValueParameter:return function(e,n,i){return t?{value:i}:i}}},"unary+":function(e,t){return function(n,i,r,o){var a=e(n,i,r,o);return a=b(a)?+a:0,t?{value:a}:a}},"unary-":function(e,t){return function(n,i,r,o){var a=e(n,i,r,o);return a=b(a)?-a:0,t?{value:a}:a}},"unary!":function(e,t){return function(n,i,r,o){var a=!e(n,i,r,o);return t?{value:a}:a}},"binary+":function(e,t,n){return function(i,r,o,a){var s=on(e(i,r,o,a),t(i,r,o,a));return n?{value:s}:s}},"binary-":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a),l=t(i,r,o,a),c=(b(s)?s:0)-(b(l)?l:0);return n?{value:c}:c}},"binary*":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)*t(i,r,o,a);return n?{value:s}:s}},"binary/":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)/t(i,r,o,a);return n?{value:s}:s}},"binary%":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)%t(i,r,o,a);return n?{value:s}:s}},"binary===":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)===t(i,r,o,a);return n?{value:s}:s}},"binary!==":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)!==t(i,r,o,a);return n?{value:s}:s}},"binary==":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)==t(i,r,o,a);return n?{value:s}:s}},"binary!=":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)!=t(i,r,o,a);return n?{value:s}:s}},"binary<":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)<t(i,r,o,a);return n?{value:s}:s}},"binary>":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)>t(i,r,o,a);return n?{value:s}:s}},"binary<=":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)<=t(i,r,o,a);return n?{value:s}:s}},"binary>=":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)>=t(i,r,o,a);return n?{value:s}:s}},"binary&&":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)&&t(i,r,o,a);return n?{value:s}:s}},"binary||":function(e,t,n){return function(i,r,o,a){var s=e(i,r,o,a)||t(i,r,o,a);return n?{value:s}:s}},"ternary?:":function(e,t,n,i){return function(r,o,a,s){var l=e(r,o,a,s)?t(r,o,a,s):n(r,o,a,s);return i?{value:l}:l}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n,i,r){return function(o,a,s,l){var c=a&&e in a?a:o;i&&1!==i&&c&&!c[e]&&(c[e]={});var u=c?c[e]:void 0;return t&&en(u,r),n?{context:c,name:e,value:u}:u}},computedMember:function(e,t,n,i,r){return function(o,a,s,l){var c,u,d=e(o,a,s,l);return null!=d&&(Zt(c=Jt(c=t(o,a,s,l)),r),i&&1!==i&&(nn(d),d&&!d[c]&&(d[c]={})),en(u=d[c],r)),n?{context:d,name:c,value:u}:u}},nonComputedMember:function(e,t,n,i,r,o){return function(a,s,l,c){var u=e(a,s,l,c);r&&1!==r&&(nn(u),u&&!u[t]&&(u[t]={}));var d=null!=u?u[t]:void 0;return(n||mn(t))&&en(d,o),i?{context:u,name:t,value:d}:d}},inputs:function(e,t){return function(n,i,r,o){return o?o[t]:e(n,i,r)}}};var Go=function(e,t,n){this.lexer=e,this.$filter=t,this.options=n,this.ast=new Lo(e,n),this.astCompiler=n.csp?new fn(this.ast,t):new pn(this.ast,t)};Go.prototype={constructor:Go,parse:function(e){return this.astCompiler.compile(e,this.options.expensiveChecks)}};var Bo=t("$sce"),Fo={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Ho=t("$compile"),Uo=e.document.createElement("a"),jo=Pn(e.location.href);On.$inject=["$document"],Ln.$inject=["$provide"];var Wo=22,zo=".",qo="0";Un.$inject=["$locale"],jn.$inject=["$locale"];var Vo={yyyy:Yn("FullYear",4,0,!1,!0),yy:Yn("FullYear",2,0,!0,!0),y:Yn("FullYear",1,0,!1,!0),MMMM:Kn("Month"),MMM:Kn("Month",!0),MM:Yn("Month",2,1),M:Yn("Month",1,1),LLLL:Kn("Month",!1,!0),dd:Yn("Date",2),d:Yn("Date",1),HH:Yn("Hours",2),H:Yn("Hours",1),hh:Yn("Hours",2,-12),h:Yn("Hours",1,-12),mm:Yn("Minutes",2),m:Yn("Minutes",1),ss:Yn("Seconds",2),s:Yn("Seconds",1),sss:Yn("Milliseconds",3),EEEE:Kn("Day"),EEE:Kn("Day",!0),a:ei,Z:Qn,ww:Jn(2),w:Jn(1),G:ti,GG:ti,GGG:ti,GGGG:ni},Yo=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,Ko=/^-?\d+$/;ii.$inject=["$locale"];var Qo=m(Li),Xo=m(Gi);si.$inject=["$parse"];var Zo=m({restrict:"E",compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===Yi.call(t.prop("href"))?"xlink:href":"href";t.on("click",function(e){t.attr(n)||e.preventDefault()})}}}}),Jo={};i(Pr,function(e,t){function n(e,n,r){e.$watch(r[i],function(e){r.$set(t,!!e)})}if("multiple"!==e){var i=ft("ng-"+t),r=n;"checked"===e&&(r=function(e,t,r){r.ngModel!==r[i]&&n(e,t,r)}),Jo[i]=function(){return{restrict:"A",priority:100,link:r}}}}),i(Nr,function(e,t){Jo[t]=function(){return{priority:100,link:function(e,n,i){if("ngPattern"===t&&"/"===i.ngPattern.charAt(0)){var r=i.ngPattern.match(Ni);if(r)return void i.$set("ngPattern",new RegExp(r[1],r[2]))}e.$watch(i[t],function(e){i.$set(t,e)})}}}}),i(["src","srcset","href"],function(e){var t=ft("ng-"+e);Jo[t]=function(){return{priority:99,link:function(n,i,r){var o=e,a=e;"href"===e&&"[object SVGAnimatedString]"===Yi.call(i.prop("href"))&&(a="xlinkHref",r.$attr[a]="xlink:href",o=null),r.$observe(t,function(t){t?(r.$set(a,t),Hi&&o&&i.prop(o,r[a])):"href"===e&&r.$set(a,null)})}}}});var ea={$addControl:p,$$renameControl:ci,$removeControl:p,$setValidity:p,$setDirty:p,$setPristine:p,$setSubmitted:p},ta="ng-submitted";ui.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var na=function(e){return["$timeout","$parse",function(t,n){function i(e){return""===e?n('this[""]').assign:n(e).assign||p}return{name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:ui,compile:function(n,r){n.addClass(Ga).addClass(Ra);var o=r.name?"name":!(!e||!r.ngForm)&&"ngForm";return{pre:function(e,n,r,a){var s=a[0];if(!("action"in r)){var l=function(t){e.$apply(function(){s.$commitViewValue(),s.$setSubmitted()}),t.preventDefault()};yr(n[0],"submit",l),n.on("$destroy",function(){t(function(){_r(n[0],"submit",l)},0,!1)})}(a[1]||s.$$parentForm).$addControl(s);var u=o?i(s.$name):p;o&&(u(e,s),r.$observe(o,function(t){s.$name!==t&&(u(e,void 0),s.$$parentForm.$$renameControl(s,t),(u=i(s.$name))(e,s))})),n.on("$destroy",function(){s.$$parentForm.$removeControl(s),u(e,void 0),c(s,ea)})}}}}}]},ia=na(),ra=na(!0),oa=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,aa=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:/?#]+|\[[a-f\d:]+])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,sa=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,la=/^\s*(-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,ca=/^(\d{4,})-(\d{2})-(\d{2})$/,ua=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,da=/^(\d{4,})-W(\d\d)$/,ha=/^(\d{4,})-(\d\d)$/,pa=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,fa="keydown wheel mousedown",ma=pe();i("date,datetime-local,month,time,week".split(","),function(e){ma[e]=!0});var ga={text:hi,date:gi("date",ca,mi(ca,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":gi("datetimelocal",ua,mi(ua,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:gi("time",pa,mi(pa,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:gi("week",da,fi,"yyyy-Www"),month:gi("month",ha,mi(ha,["yyyy","MM"]),"yyyy-MM"),number:Ci,url:Si,email:Ei,radio:Ti,range:xi,checkbox:Ii,hidden:p,button:p,submit:p,reset:p,file:p},va=["$browser","$sniffer","$filter","$parse",function(e,t,n,i){return{restrict:"E",require:["?ngModel"],link:{pre:function(r,o,a,s){if(s[0]){var l=Li(a.type);"range"!==l||a.hasOwnProperty("ngInputRange")||(l="text"),(ga[l]||ga.text)(r,o,a,s[0],t,e,n,i)}}}}}],ba=/^(true|false|\d+)$/,ya=function(){return{restrict:"A",priority:100,compile:function(e,t){return ba.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,function(e){n.$set("value",e)})}}}},_a=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,i){e.$$addBindingInfo(n,i.ngBind),n=n[0],t.$watch(i.ngBind,function(e){n.textContent=v(e)?"":e})}}}}],wa=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,i,r){var o=e(i.attr(r.$attr.ngBindTemplate));t.$$addBindingInfo(i,o.expressions),i=i[0],r.$observe("ngBindTemplate",function(e){i.textContent=v(e)?"":e})}}}}],Aa=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(i,r){var o=t(r.ngBindHtml),a=t(r.ngBindHtml,function(t){return e.valueOf(t)});return n.$$addBindingClass(i),function(t,i,r){n.$$addBindingInfo(i,r.ngBindHtml),t.$watch(a,function(){var n=o(t);i.html(e.getTrustedHtml(n)||"")})}}}}],Ca=m({restrict:"A",require:"ngModel",link:function(e,t,n,i){i.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}}),xa=ki("",!0),Sa=ki("Odd",0),Ea=ki("Even",1),Ta=li({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),Da=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],Ia={},ka={blur:!0,focus:!0};i("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(e){var t=ft("ng-"+e);Ia[t]=["$parse","$rootScope",function(n,i){return{restrict:"A",compile:function(r,o){var a=n(o[t],null,!0);return function(t,n){n.on(e,function(n){var r=function(){a(t,{$event:n})};ka[e]&&i.$$phase?t.$evalAsync(r):t.$apply(r)})}}}}]});var Ma=["$animate","$compile",function(e,t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,i,r,o,a){var s,l,c;n.$watch(r.ngIf,function(n){n?l||a(function(n,o){l=o,n[n.length++]=t.$$createComment("end ngIf",r.ngIf),s={clone:n},e.enter(n,i.parent(),i)}):(c&&(c.remove(),c=null),l&&(l.$destroy(),l=null),s&&(c=he(s.clone),e.leave(c).done(function(e){!1!==e&&(c=null)}),s=null))})}}}],Pa=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Xi.noop,compile:function(i,r){var o=r.ngInclude||r.src,a=r.onload||"",s=r.autoscroll;return function(i,r,l,c,u){var d,h,p,f=0,m=function(){h&&(h.remove(),h=null),d&&(d.$destroy(),d=null),p&&(n.leave(p).done(function(e){!1!==e&&(h=null)}),h=p,p=null)};i.$watch(o,function(o){var l=function(e){!1===e||!b(s)||s&&!i.$eval(s)||t()},h=++f;o?(e(o,!0).then(function(e){if(!i.$$destroyed&&h===f){var t=i.$new();c.template=e;var s=u(t,function(e){m(),n.enter(e,null,r).done(l)});p=s,(d=t).$emit("$includeContentLoaded",o),i.$eval(a)}},function(){i.$$destroyed||h===f&&(m(),i.$emit("$includeContentError",o))}),i.$emit("$includeContentRequested",o)):(m(),c.template=null)})}}}}],$a=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,i,r,o){if(Yi.call(i[0]).match(/SVG/))return i.empty(),void t(xe(o.template,e.document).childNodes)(n,function(e){i.append(e)},{futureParentElement:i});i.html(o.template),t(i.contents())(n)}}}],Na=li({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),Oa=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,r){var o=t.attr(n.$attr.ngList)||", ",a="false"!==n.ngTrim,s=a?nr(o):o,l=function(e){if(!v(e)){var t=[];return e&&i(e.split(s),function(e){e&&t.push(a?nr(e):e)}),t}};r.$parsers.push(l),r.$formatters.push(function(e){if(er(e))return e.join(o)}),r.$isEmpty=function(e){return!e||!e.length}}}},Ra="ng-valid",La="ng-invalid",Ga="ng-pristine",Ba="ng-dirty",Fa="ng-pending",Ha=t("ngModel"),Ua=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(e,t,n,r,o,a,s,l,c,u){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=u(n.name||"",!1)(e),this.$$parentForm=ea;var d,h=o(n.ngModel),f=h.assign,m=h,g=f,y=null,_=this;this.$$setOptions=function(e){if(_.$options=e,e&&e.getterSetter){var t=o(n.ngModel+"()"),i=o(n.ngModel+"($$$p)");m=function(e){var n=h(e);return x(n)&&(n=t(e)),n},g=function(e,t){x(h(e))?i(e,{$$$p:t}):f(e,t)}}else if(!h.assign)throw Ha("nonassign","Expression '{0}' is non-assignable. Element: {1}",n.ngModel,Q(r))},this.$render=p,this.$isEmpty=function(e){return v(e)||""===e||null===e||e!==e},this.$$updateEmptyClasses=function(e){_.$isEmpty(e)?(a.removeClass(r,"ng-not-empty"),a.addClass(r,"ng-empty")):(a.removeClass(r,"ng-empty"),a.addClass(r,"ng-not-empty"))};var w=0;Mi({ctrl:this,$element:r,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]},$animate:a}),this.$setPristine=function(){_.$dirty=!1,_.$pristine=!0,a.removeClass(r,Ba),a.addClass(r,Ga)},this.$setDirty=function(){_.$dirty=!0,_.$pristine=!1,a.removeClass(r,Ga),a.addClass(r,Ba),_.$$parentForm.$setDirty()},this.$setUntouched=function(){_.$touched=!1,_.$untouched=!0,a.setClass(r,"ng-untouched","ng-touched")},this.$setTouched=function(){_.$touched=!0,_.$untouched=!1,a.setClass(r,"ng-touched","ng-untouched")},this.$rollbackViewValue=function(){s.cancel(y),_.$viewValue=_.$$lastCommittedViewValue,_.$render()},this.$validate=function(){if(!Ji(_.$modelValue)){var e=_.$$lastCommittedViewValue,t=_.$$rawModelValue,n=_.$valid,i=_.$modelValue,r=_.$options&&_.$options.allowInvalid;_.$$runValidators(t,e,function(e){r||n===e||(_.$modelValue=e?t:void 0,_.$modelValue!==i&&_.$$writeModelToScope())})}},this.$$runValidators=function(e,t,n){function r(e,t){a===w&&_.$setValidity(e,t)}function o(e){a===w&&n(e)}var a=++w;!function(){var e=_.$$parserName||"parse";return v(d)?(r(e,null),!0):(d||(i(_.$validators,function(e,t){r(t,null)}),i(_.$asyncValidators,function(e,t){r(t,null)})),r(e,d),d)}()?o(!1):function(){var n=!0;return i(_.$validators,function(i,o){var a=i(e,t);n=n&&a,r(o,a)}),!!n||(i(_.$asyncValidators,function(e,t){r(t,null)}),!1)}()?function(){var n=[],a=!0;i(_.$asyncValidators,function(i,o){var s=i(e,t);if(!P(s))throw Ha("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",s);r(o,void 0),n.push(s.then(function(){r(o,!0)},function(){a=!1,r(o,!1)}))}),n.length?c.all(n).then(function(){o(a)},p):o(!0)}():o(!1)},this.$commitViewValue=function(){var e=_.$viewValue;s.cancel(y),(_.$$lastCommittedViewValue!==e||""===e&&_.$$hasNativeValidators)&&(_.$$updateEmptyClasses(e),_.$$lastCommittedViewValue=e,_.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function t(){_.$modelValue!==r&&_.$$writeModelToScope()}var n=_.$$lastCommittedViewValue;if(d=!v(n)||void 0)for(var i=0;i<_.$parsers.length;i++)if(n=_.$parsers[i](n),v(n)){d=!1;break}Ji(_.$modelValue)&&(_.$modelValue=m(e));var r=_.$modelValue,o=_.$options&&_.$options.allowInvalid;_.$$rawModelValue=n,o&&(_.$modelValue=n,t()),_.$$runValidators(n,_.$$lastCommittedViewValue,function(e){o||(_.$modelValue=e?n:void 0,t())})},this.$$writeModelToScope=function(){g(e,_.$modelValue),i(_.$viewChangeListeners,function(e){try{e()}catch(e){t(e)}})},this.$setViewValue=function(e,t){_.$viewValue=e,_.$options&&!_.$options.updateOnDefault||_.$$debounceViewValueCommit(t)},this.$$debounceViewValueCommit=function(t){var n,i=0,r=_.$options;r&&b(r.debounce)&&(A(n=r.debounce)?i=n:A(n[t])?i=n[t]:A(n.default)&&(i=n.default)),s.cancel(y),i?y=s(function(){_.$commitViewValue()},i):l.$$phase?_.$commitViewValue():e.$apply(function(){_.$commitViewValue()})},e.$watch(function(){var t=m(e);if(t!==_.$modelValue&&(_.$modelValue===_.$modelValue||t===t)){_.$modelValue=_.$$rawModelValue=t,d=void 0;for(var n=_.$formatters,i=n.length,r=t;i--;)r=n[i](r);_.$viewValue!==r&&(_.$$updateEmptyClasses(r),_.$viewValue=_.$$lastCommittedViewValue=r,_.$render(),_.$$runValidators(_.$modelValue,_.$viewValue,p))}return t})}],ja=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:Ua,priority:1,compile:function(t){return t.addClass(Ga).addClass("ng-untouched").addClass(Ra),{pre:function(e,t,n,i){var r=i[0],o=i[1]||r.$$parentForm;r.$$setOptions(i[2]&&i[2].$options),o.$addControl(r),n.$observe("name",function(e){r.$name!==e&&r.$$parentForm.$$renameControl(r,e)}),e.$on("$destroy",function(){r.$$parentForm.$removeControl(r)})},post:function(t,n,i,r){var o=r[0];o.$options&&o.$options.updateOn&&n.on(o.$options.updateOn,function(e){o.$$debounceViewValueCommit(e&&e.type)}),n.on("blur",function(){o.$touched||(e.$$phase?t.$evalAsync(o.$setTouched):t.$apply(o.$setTouched))})}}}}}],Wa=/(\s+|^)default(\s+|$)/,za=function(){return{restrict:"A",controller:["$scope","$attrs",function(e,t){var n=this;this.$options=B(e.$eval(t.ngModelOptions)),b(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=nr(this.$options.updateOn.replace(Wa,function(){return n.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},qa=li({terminal:!0,priority:1e3}),Va=t("ngOptions"),Ya=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([$\w][$\w]*)|(?:\(\s*([$\w][$\w]*)\s*,\s*([$\w][$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,Ka=["$compile","$document","$parse",function(t,r,o){function a(e,t,i){function r(e,t,n,i,r){this.selectValue=e,this.viewValue=t,this.label=n,this.group=i,this.disabled=r}function a(e){var t;if(!c&&n(e))t=e;else{t=[];for(var i in e)e.hasOwnProperty(i)&&"$"!==i.charAt(0)&&t.push(i)}return t}var s=e.match(Ya);if(!s)throw Va("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,Q(t));var l=s[5]||s[7],c=s[6],u=/ as /.test(s[0])&&s[1],d=s[9],h=o(s[2]?s[1]:l),p=u&&o(u)||h,f=d&&o(d),m=d?function(e,t){return f(i,t)}:function(e){return Ke(e)},g=function(e,t){return m(e,A(e,t))},v=o(s[2]||s[1]),b=o(s[3]||""),y=o(s[4]||""),_=o(s[8]),w={},A=c?function(e,t){return w[c]=t,w[l]=e,w}:function(e){return w[l]=e,w};return{trackBy:d,getTrackByValue:g,getWatchables:o(_,function(e){for(var t=[],n=a(e=e||[]),r=n.length,o=0;o<r;o++){var l=e===n?o:n[o],c=e[l],u=A(c,l),d=m(c,u);if(t.push(d),s[2]||s[1]){var h=v(i,u);t.push(h)}if(s[4]){var p=y(i,u);t.push(p)}}return t}),getOptions:function(){for(var e=[],t={},n=_(i)||[],o=a(n),s=o.length,l=0;l<s;l++){var c=n===o?l:o[l],u=A(n[c],c),h=p(i,u),f=m(h,u),w=new r(f,h,v(i,u),b(i,u),y(i,u));e.push(w),t[f]=w}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[g(e)]},getViewValueFromOption:function(e){return d?B(e.viewValue):e.viewValue}}}}}function s(e,n,o,s){function u(e,t){var n=l.cloneNode(!1);t.appendChild(n),d(e,n)}function d(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label),t.value=e.selectValue}function h(){var e=x&&f.readValue();if(x)for(var t=x.items.length-1;t>=0;t--){var i=x.items[t];He(b(i.group)?i.element.parentNode:i.element)}x=S.getOptions();var r={};if(w&&n.prepend(p),x.items.forEach(function(e){var t;b(e.group)?((t=r[e.group])||(t=c.cloneNode(!1),E.appendChild(t),t.label=null===e.group?"null":e.group,r[e.group]=t),u(e,t)):u(e,E)}),n[0].appendChild(E),m.$render(),!m.$isEmpty(e)){var o=f.readValue();(S.trackBy||g?F(e,o):e===o)||(m.$setViewValue(o),m.$render())}}for(var p,f=s[0],m=s[1],g=o.multiple,v=0,y=n.children(),_=y.length;v<_;v++)if(""===y[v].value){p=y.eq(v);break}var w=!!p,A=!1,C=Ui(l.cloneNode(!1));C.val("?");var x,S=a(o.ngOptions,n,e),E=r[0].createDocumentFragment(),T=function(){w||n.prepend(p),n.val(""),A&&(p.prop("selected",!0),p.attr("selected",!0))},D=function(){w?A&&p.removeAttr("selected"):p.remove()},I=function(){n.prepend(C),n.val("?"),C.prop("selected",!0),C.attr("selected",!0)},k=function(){C.remove()};g?(m.$isEmpty=function(e){return!e||0===e.length},f.writeValue=function(e){x.items.forEach(function(e){e.element.selected=!1}),e&&e.forEach(function(e){var t=x.getOptionFromViewValue(e);t&&(t.element.selected=!0)})},f.readValue=function(){var e=[];return i(n.val()||[],function(t){var n=x.selectValueMap[t];n&&!n.disabled&&e.push(x.getViewValueFromOption(n))}),e},S.trackBy&&e.$watchCollection(function(){if(er(m.$viewValue))return m.$viewValue.map(function(e){return S.getTrackByValue(e)})},function(){m.$render()})):(f.writeValue=function(e){var t=x.selectValueMap[n.val()],i=x.getOptionFromViewValue(e);t&&t.element.removeAttribute("selected"),i?(n[0].value!==i.selectValue&&(k(),D(),n[0].value=i.selectValue,i.element.selected=!0),i.element.setAttribute("selected","selected")):null===e||w?(k(),T()):(D(),I())},f.readValue=function(){var e=x.selectValueMap[n.val()];return e&&!e.disabled?(D(),k(),x.getViewValueFromOption(e)):null},S.trackBy&&e.$watch(function(){return S.getTrackByValue(m.$viewValue)},function(){m.$render()})),w?(p.remove(),t(p)(e),p[0].nodeType===pr?(A=!1,f.registerOption=function(e,t){""===t.val()&&(A=!0,(p=t).removeClass("ng-scope"),m.$render(),t.on("$destroy",function(){p=void 0,A=!1}))}):(p.removeClass("ng-scope"),A=!0)):p=Ui(l.cloneNode(!1)),n.empty(),h(),e.$watchCollection(S.getWatchables,h)}var l=e.document.createElement("option"),c=e.document.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","ngModel"],link:{pre:function(e,t,n,i){i[0].registerOption=p},post:s}}}],Qa=["$locale","$interpolate","$log",function(e,t,n){var r=/{}/g,o=/^when(Minus)?(.+)$/;return{link:function(a,s,l){function c(e){s.text(e||"")}var u,d=l.count,h=l.$attr.when&&s.attr(l.$attr.when),f=l.offset||0,m=a.$eval(h)||{},g={},b=t.startSymbol(),y=t.endSymbol(),_=b+d+"-"+f+y,w=Xi.noop;i(l,function(e,t){var n=o.exec(t);if(n){var i=(n[1]?"-":"")+Li(n[2]);m[i]=s.attr(l.$attr[t])}}),i(m,function(e,n){g[n]=t(e.replace(r,_))}),a.$watch(d,function(t){var i=parseFloat(t),r=Ji(i);if(r||i in m||(i=e.pluralCat(i-f)),!(i===u||r&&Ji(u))){w();var o=g[i];v(o)?(null!=t&&n.debug("ngPluralize: no rule defined for '"+i+"' in "+h),w=p,c()):w=a.$watch(o,c),u=i}})}}}],Xa=["$parse","$animate","$compile",function(e,r,o){var a=t("ngRepeat"),s=function(e,t,n,i,r,o,a){e[n]=i,r&&(e[r]=o),e.$index=t,e.$first=0===t,e.$last=t===a-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0==(1&t))},l=function(e){return e.clone[0]},c=function(e){return e.clone[e.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(t,u){var d=u.ngRepeat,h=o.$$createComment("end ngRepeat",d),p=d.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!p)throw a("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",d);var f=p[1],m=p[2],g=p[3],v=p[4];if(!(p=f.match(/^(?:(\s*[$\w]+)|\(\s*([$\w]+)\s*,\s*([$\w]+)\s*\))$/)))throw a("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",f);var b=p[3]||p[1],y=p[2];if(g&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(g)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(g)))throw a("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",g);var _,w,A,C,x={$id:Ke};return v?_=e(v):(A=function(e,t){return Ke(t)},C=function(e){return e}),function(e,t,o,u,p){_&&(w=function(t,n,i){return y&&(x[y]=t),x[b]=n,x.$index=i,_(e,x)});var f=pe();e.$watchCollection(m,function(o){var u,m,v,_,x,S,E,T,D,I,k,M,P=t[0],$=pe();if(g&&(e[g]=o),n(o))D=o,T=w||A;else{T=w||C,D=[];for(var N in o)Ri.call(o,N)&&"$"!==N.charAt(0)&&D.push(N)}for(_=D.length,k=new Array(_),u=0;u<_;u++)if(x=o===D?u:D[u],S=o[x],E=T(x,S,u),f[E])I=f[E],delete f[E],$[E]=I,k[u]=I;else{if($[E])throw i(k,function(e){e&&e.scope&&(f[e.id]=e)}),a("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",d,E,S);k[u]={id:E,scope:void 0,clone:void 0},$[E]=!0}for(var O in f){if(I=f[O],M=he(I.clone),r.leave(M),M[0].parentNode)for(u=0,m=M.length;u<m;u++)M[u].$$NG_REMOVED=!0;I.scope.$destroy()}for(u=0;u<_;u++)if(x=o===D?u:D[u],S=o[x],(I=k[u]).scope){v=P;do{v=v.nextSibling}while(v&&v.$$NG_REMOVED);l(I)!==v&&r.move(he(I.clone),null,P),P=c(I),s(I.scope,u,b,S,y,x,_)}else p(function(e,t){I.scope=t;var n=h.cloneNode(!1);e[e.length++]=n,r.enter(e,null,P),P=n,I.clone=e,$[I.id]=I,s(I.scope,u,b,S,y,x,_)});f=$})}}}}],Za=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,i){t.$watch(i.ngShow,function(t){e[t?"removeClass":"addClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],Ja=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,i){t.$watch(i.ngHide,function(t){e[t?"addClass":"removeClass"](n,"ng-hide",{tempClasses:"ng-hide-animate"})})}}}],es=li(function(e,t,n){e.$watch(n.ngStyle,function(e,n){n&&e!==n&&i(n,function(e,n){t.css(n,"")}),e&&t.css(e)},!0)}),ts=["$animate","$compile",function(e,t){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,o,a){var s=o.ngSwitch||o.on,l=[],c=[],u=[],d=[],h=function(e,t){return function(n){!1!==n&&e.splice(t,1)}};n.$watch(s,function(n){for(var r,o;u.length;)e.cancel(u.pop());for(r=0,o=d.length;r<o;++r){var s=he(c[r].clone);d[r].$destroy(),(u[r]=e.leave(s)).done(h(u,r))}c.length=0,d.length=0,(l=a.cases["!"+n]||a.cases["?"])&&i(l,function(n){n.transclude(function(i,r){d.push(r);var o=n.element;i[i.length++]=t.$$createComment("end ngSwitchWhen");var a={clone:i};c.push(a),e.enter(i,o.parent(),o)})})})}}}],ns=li({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,o){i(n.ngSwitchWhen.split(n.ngSwitchWhenSeparator).sort().filter(function(e,t,n){return n[t-1]!==e}),function(e){r.cases["!"+e]=r.cases["!"+e]||[],r.cases["!"+e].push({transclude:o,element:t})})}}),is=li({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,i,r){i.cases["?"]=i.cases["?"]||[],i.cases["?"].push({transclude:r,element:t})}}),rs=t("ngTransclude"),os=["$compile",function(e){return{restrict:"EAC",terminal:!0,compile:function(t){var n=e(t.contents());return t.empty(),function(e,t,i,r,o){function a(e,n){e.length?t.append(e):(s(),n.$destroy())}function s(){n(e,function(e){t.append(e)})}if(!o)throw rs("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",Q(t));i.ngTransclude===i.$attr.ngTransclude&&(i.ngTransclude="");var l=i.ngTransclude||i.ngTranscludeSlot;o(a,null,l),l&&!o.isSlotFilled(l)&&s()}}}}],as=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"===n.type){var i=n.id,r=t[0].text;e.put(i,r)}}}}],ss={$setViewValue:p,$render:p},ls=["$element","$scope",function(t,n){var i=this,r=new Qe;i.ngModelCtrl=ss,i.unknownOption=Ui(e.document.createElement("option")),i.renderUnknownOption=function(e){var n="? "+Ke(e)+" ?";i.unknownOption.val(n),t.prepend(i.unknownOption),t.val(n)},n.$on("$destroy",function(){i.renderUnknownOption=p}),i.removeUnknownOption=function(){i.unknownOption.parent()&&i.unknownOption.remove()},i.readValue=function(){return i.removeUnknownOption(),t.val()},i.writeValue=function(e){i.hasOption(e)?(i.removeUnknownOption(),t.val(e),""===e&&i.emptyOption.prop("selected",!0)):null==e&&i.emptyOption?(i.removeUnknownOption(),t.val("")):i.renderUnknownOption(e)},i.addOption=function(e,t){if(t[0].nodeType!==pr){ue(e,'"option value"'),""===e&&(i.emptyOption=t);var n=r.get(e)||0;r.put(e,n+1),i.ngModelCtrl.$render(),$i(t)}},i.removeOption=function(e){var t=r.get(e);t&&(1===t?(r.remove(e),""===e&&(i.emptyOption=void 0)):r.put(e,t-1))},i.hasOption=function(e){return!!r.get(e)},i.registerOption=function(e,t,n,r,o){if(r){var a;n.$observe("value",function(e){b(a)&&i.removeOption(a),a=e,i.addOption(e,t)})}else o?e.$watch(o,function(e,r){n.$set("value",e),r!==e&&i.removeOption(r),i.addOption(e,t)}):i.addOption(n.value,t);t.on("$destroy",function(){i.removeOption(n.value),i.ngModelCtrl.$render()})}}],cs=function(){function e(e,t,n,r){var o=r[1];if(o){var a=r[0];if(a.ngModelCtrl=o,t.on("change",function(){e.$apply(function(){o.$setViewValue(a.readValue())})}),n.multiple){a.readValue=function(){var e=[];return i(t.find("option"),function(t){t.selected&&e.push(t.value)}),e},a.writeValue=function(e){var n=new Qe(e);i(t.find("option"),function(e){e.selected=b(n.get(e.value))})};var s,l=NaN;e.$watch(function(){l!==o.$viewValue||F(s,o.$viewValue)||(s=me(o.$viewValue),o.$render()),l=o.$viewValue}),o.$isEmpty=function(e){return!e||0===e.length}}}}function t(e,t,n,i){var r=i[1];if(r){var o=i[0];r.$render=function(){o.writeValue(r.$viewValue)}}}return{restrict:"E",require:["select","?ngModel"],controller:ls,priority:1,link:{pre:e,post:t}}},us=["$interpolate",function(e){return{restrict:"E",priority:100,compile:function(t,n){var i,r;return b(n.ngValue)?i=!0:b(n.value)?i=e(n.value,!0):(r=e(t.text(),!0))||n.$set("value",t.text()),function(e,t,n){var o=t.parent(),a=o.data("$selectController")||o.parent().data("$selectController");a&&a.registerOption(e,t,n,i,r)}}}}],ds=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){i&&(n.required=!0,i.$validators.required=function(e,t){return!n.required||!i.$isEmpty(t)},n.$observe("required",function(){i.$validate()}))}}},hs=function(){return{restrict:"A",require:"?ngModel",link:function(e,n,i,r){if(r){var o,a=i.ngPattern||i.pattern;i.$observe("pattern",function(e){if(w(e)&&e.length>0&&(e=new RegExp("^"+e+"$")),e&&!e.test)throw t("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",a,e,Q(n));o=e||void 0,r.$validate()}),r.$validators.pattern=function(e,t){return r.$isEmpty(t)||v(o)||o.test(t)}}}}},ps=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){if(i){var r=-1;n.$observe("maxlength",function(e){var t=d(e);r=Ji(t)?-1:t,i.$validate()}),i.$validators.maxlength=function(e,t){return r<0||i.$isEmpty(t)||t.length<=r}}}}},fs=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,i){if(i){var r=0;n.$observe("minlength",function(e){r=d(e)||0,i.$validate()}),i.$validators.minlength=function(e,t){return i.$isEmpty(t)||t.length>=r}}}}};e.angular.bootstrap?e.console&&console.log("WARNING: Tried to load angular more than once."):(!function(){var t;if(!ur){var n=or();(ji=v(n)?e.jQuery:n?e[n]:void 0)&&ji.fn.on?(Ui=ji,c(ji.fn,{scope:Mr.scope,isolateScope:Mr.isolateScope,controller:Mr.controller,injector:Mr.injector,inheritedData:Mr.inheritedData}),t=ji.cleanData,ji.cleanData=function(e){for(var n,i,r=0;null!=(i=e[r]);r++)(n=ji._data(i,"events"))&&n.$destroy&&ji(i).triggerHandler("$destroy");t(e)}):Ui=Te,Xi.element=Ui,ur=!0}}(),function(n){c(n,{bootstrap:re,copy:B,extend:c,merge:u,equals:F,element:Ui,forEach:i,injector:tt,noop:p,bind:j,toJson:z,fromJson:q,identity:f,isUndefined:v,isDefined:b,isString:w,isFunction:x,isObject:y,isNumber:A,isElement:O,isArray:er,version:gr,isDate:C,lowercase:Li,uppercase:Gi,callbacks:{$$counter:0},getTestability:ae,$$minErr:t,$$csp:rr,reloadWithDebugInfo:oe}),(Wi=fe(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:Cn}),e.provider("$compile",ht).directive({a:Zo,input:va,textarea:va,form:ia,script:as,select:cs,option:us,ngBind:_a,ngBindHtml:Aa,ngBindTemplate:wa,ngClass:xa,ngClassEven:Ea,ngClassOdd:Sa,ngCloak:Ta,ngController:Da,ngForm:ra,ngHide:Ja,ngIf:Ma,ngInclude:Pa,ngInit:Na,ngNonBindable:qa,ngPluralize:Qa,ngRepeat:Xa,ngShow:Za,ngStyle:es,ngSwitch:ts,ngSwitchWhen:ns,ngSwitchDefault:is,ngOptions:Ka,ngTransclude:os,ngModel:ja,ngList:Oa,ngChange:Ca,pattern:hs,ngPattern:hs,required:ds,ngRequired:ds,minlength:fs,ngMinlength:fs,maxlength:ps,ngMaxlength:ps,ngValue:ya,ngModelOptions:za}).directive({ngInclude:$a}).directive(Jo).directive(Ia),e.provider({$anchorScroll:nt,$animate:qr,$animateCss:Kr,$$animateJs:Wr,$$animateQueue:zr,$$AnimateRunner:Yr,$$animateAsyncRun:Vr,$browser:lt,$cacheFactory:ct,$controller:bt,$document:yt,$exceptionHandler:_t,$filter:Ln,$$forceReflow:to,$interpolate:Nt,$interval:Ot,$http:kt,$httpParamSerializer:At,$httpParamSerializerJQLike:Ct,$httpBackend:Pt,$xhrFactory:Mt,$jsonpCallbacks:uo,$location:Qt,$log:Xt,$parse:vn,$rootScope:An,$q:bn,$$q:yn,$sce:Tn,$sceDelegate:En,$sniffer:Dn,$templateCache:ut,$templateRequest:In,$$testability:kn,$timeout:Mn,$window:Nn,$$rAF:wn,$$jqLite:Ye,$$HashMap:Or,$$cookieReader:Rn})}])}(Xi),Xi.module("ngLocale",[],["$provide",function(e){function t(e){var t=(e+="").indexOf(".");return-1==t?0:e.length-t-1}function n(e,n){var i=n;void 0===i&&(i=Math.min(t(e),3));var r=Math.pow(10,i);return{v:i,f:(e*r|0)%r}}var i={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a",short:"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,t){var r=0|e,o=n(e,t);return 1==r&&0==o.v?i.ONE:i.OTHER}})}]),Ui(e.document).ready(function(){ie(e.document,re)}))}(window),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>'),function(e,t){"use strict";function n(e,t,n){if(!e)throw le("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function i(e,t){return e||t?e?t?(q(e)&&(e=e.join(" ")),q(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function r(e){var t={};return e&&(e.to||e.from)&&(t.to=e.to,t.from=e.from),t}function o(e,t,n){var i="";return e=q(e)?e:e&&X(e)&&e.length?e.split(/\s+/):[],z(e,function(e,r){e&&e.length>0&&(i+=r>0?" ":"",i+=n?t+e:e+t)}),i}function a(e,t){var n=e.indexOf(t);t>=0&&e.splice(n,1)}function s(e){if(e instanceof J)switch(e.length){case 0:return e;case 1:if(e[0].nodeType===L)return e;break;default:return J(l(e))}if(e.nodeType===L)return J(e)}function l(e){if(!e[0])return e;for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType==L)return n}}function c(e,t,n){z(t,function(t){e.addClass(t,n)})}function u(e,t,n){z(t,function(t){e.removeClass(t,n)})}function d(e){return function(t,n){n.addClass&&(c(e,t,n.addClass),n.addClass=null),n.removeClass&&(u(e,t,n.removeClass),n.removeClass=null)}}function h(e){if(!(e=e||{}).$$prepared){var t=e.domOperation||ee;e.domOperation=function(){e.$$domOperationFired=!0,t(),t=ee},e.$$prepared=!0}return e}function p(e,t){f(e,t),m(e,t)}function f(e,t){t.from&&(e.css(t.from),t.from=null)}function m(e,t){t.to&&(e.css(t.to),t.to=null)}function g(e,t,n){var i=t.options||{},r=n.options||{},o=(i.addClass||"")+" "+(r.addClass||""),a=(i.removeClass||"")+" "+(r.removeClass||""),s=v(e.attr("class"),o,a);r.preparationClasses&&(i.preparationClasses=x(r.preparationClasses,i.preparationClasses),delete r.preparationClasses);var l=i.domOperation!==ee?i.domOperation:null;return W(i,r),l&&(i.domOperation=l),s.addClass?i.addClass=s.addClass:i.addClass=null,s.removeClass?i.removeClass=s.removeClass:i.removeClass=null,t.addClass=i.addClass,t.removeClass=i.removeClass,i}function v(e,t,n){function i(e){X(e)&&(e=e.split(" "));var t={};return z(e,function(e){e.length&&(t[e]=!0)}),t}var r={};e=i(e),t=i(t),z(t,function(e,t){r[t]=1}),n=i(n),z(n,function(e,t){r[t]=1===r[t]?null:-1});var o={addClass:"",removeClass:""};return z(r,function(t,n){var i,r;1===t?(i="addClass",r=!e[n]||e[n+B]):-1===t&&(i="removeClass",r=e[n]||e[n+G]),r&&(o[i].length&&(o[i]+=" "),o[i]+=n)}),o}function b(e){return e instanceof J?e[0]:e}function y(e,t,n){var i="";t&&(i=o(t,F,!0)),n.addClass&&(i=x(i,o(n.addClass,G))),n.removeClass&&(i=x(i,o(n.removeClass,B))),i.length&&(n.preparationClasses=i,e.addClass(i))}function _(e,t){t.preparationClasses&&(e.removeClass(t.preparationClasses),t.preparationClasses=null),t.activeClasses&&(e.removeClass(t.activeClasses),t.activeClasses=null)}function w(e,t){var n=t?"-"+t+"s":"";return C(e,[ae,n]),[ae,n]}function A(e,t){var n=t?"paused":"",i=O+ie;return C(e,[i,n]),[i,n]}function C(e,t){var n=t[0],i=t[1];e.style[n]=i}function x(e,t){return e?t?e+" "+t:e:t}function S(e){return[oe,e+"s"]}function E(e,t){return[t?re:ae,e+"s"]}function T(e,t,n){var i=Object.create(null),r=e.getComputedStyle(t)||{};return z(n,function(e,t){var n=r[e];if(n){var o=n.charAt(0);("-"===o||"+"===o||o>=0)&&(n=D(n)),0===n&&(n=null),i[t]=n}}),i}function D(e){var t=0,n=e.split(/\s*,\s*/);return z(n,function(e){"s"==e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),e=parseFloat(e)||0,t=t?Math.max(e,t):e}),t}function I(e){return 0===e||null!=e}function k(e,t){var n=$,i=e+"s";return t?n+=te:i+=" linear all",[n,i]}function M(){var e=Object.create(null);return{flush:function(){e=Object.create(null)},count:function(t){var n=e[t];return n?n.total:0},get:function(t){var n=e[t];return n&&n.value},put:function(t,n){e[t]?e[t].total++:e[t]={total:1,value:n}}}}function P(e,t,n){z(n,function(n){e[n]=V(e[n])?e[n]:t.style.getPropertyValue(n)})}var $,N,O,R,L=1,G="-add",B="-remove",F="ng-",H="ng-animate",U="$$ngAnimateChildren";void 0===e.ontransitionend&&void 0!==e.onwebkittransitionend?("-webkit-",$="WebkitTransition",N="webkitTransitionEnd transitionend"):($="transition",N="transitionend"),void 0===e.onanimationend&&void 0!==e.onwebkitanimationend?("-webkit-",O="WebkitAnimation",R="webkitAnimationEnd animationend"):(O="animation",R="animationend");var j,W,z,q,V,Y,K,Q,X,Z,J,ee,te="Duration",ne="TimingFunction",ie="PlayState",re=O+"Delay",oe=O+te,ae=$+"Delay",se=$+te,le=t.$$minErr("ng"),ce=["$$rAF",function(e){function t(e){i=i.concat(e),n()}function n(){if(i.length){for(var t=i.shift(),o=0;o<t.length;o++)t[o]();r||e(function(){r||n()})}}var i,r;return i=t.queue=[],t.waitUntilQuiet=function(t){r&&r(),r=e(function(){r=null,t(),n()})},t}],ue=["$interpolate",function(e){return{link:function(t,n,i){function r(e){e="on"===e||"true"===e,n.data(U,e)}var o=i.ngAnimateChildren;X(o)&&0===o.length?n.data(U,!0):(r(e(o)(t)),i.$observe("ngAnimateChildren",r))}}}],de="$$animateCss",he=1e3,pe=3,fe=1.5,me={transitionDuration:se,transitionDelay:ae,transitionProperty:$+"Property",animationDuration:oe,animationDelay:re,animationIterationCount:O+"IterationCount"},ge={transitionDuration:se,transitionDelay:ae,animationDuration:oe,animationDelay:re},ve=["$animateProvider",function(e){var t=M(),n=M();this.$get=["$window","$$jqLite","$$AnimateRunner","$timeout","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(e,i,s,l,c,u,g,v){function y(e,t){var n="$$ngAnimateParentKey",i=e.parentNode;return(i[n]||(i[n]=++H))+"-"+e.getAttribute("class")+"-"+t}function _(n,i,r,o){var a=t.get(r);return a||"infinite"===(a=T(e,n,o)).animationIterationCount&&(a.animationIterationCount=1),t.put(r,a),a}function x(r,a,s,l){var c;if(t.count(s)>0&&!(c=n.get(s))){var u=o(a,"-stagger");i.addClass(r,u),(c=T(e,r,l)).animationDuration=Math.max(c.animationDuration,0),c.transitionDuration=Math.max(c.transitionDuration,0),i.removeClass(r,u),n.put(s,c)}return c||{}}function D(e){U.push(e),g.waitUntilQuiet(function(){t.flush(),n.flush();for(var e=c(),i=0;i<U.length;i++)U[i](e);U.length=0})}function M(e,t,n){var i=_(e,t,n,me),r=i.animationDelay,o=i.transitionDelay;return i.maxDelay=r&&o?Math.max(r,o):r||o,i.maxDuration=Math.max(i.animationDuration*i.animationIterationCount,i.transitionDuration),i}var L=d(i),H=0,U=[];return function(e,n){function c(){g()}function d(){g(!0)}function g(t){if(!(K||X&&Q)){K=!0,Q=!1,W.$$skipPreparationClasses||i.removeClass(e,ye),i.removeClass(e,we),A(Y,!1),w(Y,!1),z(se,function(e){Y.style[e[0]]=""}),L(e,W),p(e,W),Object.keys(V).length&&z(V,function(e,t){e?Y.style.setProperty(t,e):Y.style.removeProperty(t)}),W.onDone&&W.onDone(),ue&&ue.length&&e.off(ue.join(" "),H);var n=e.data(de);n&&(l.cancel(n[0].timer),e.removeData(de)),Z&&Z.complete(!t)}}function _(e){Ne.blockTransition&&w(Y,e),Ne.blockKeyframeAnimation&&A(Y,!!e)}function T(){return Z=new s({end:c,cancel:d}),D(ee),g(),{$$willAnimate:!1,start:function(){return Z},end:c}}function H(e){e.stopPropagation();var t=e.originalEvent||e,n=t.$manualTimeStamp||Date.now(),i=parseFloat(t.elapsedTime.toFixed(pe));Math.max(n-ae,0)>=ie&&i>=re&&(X=!0,g())}function U(){function t(){if(!K){if(_(!1),z(se,function(e){var t=e[0],n=e[1];Y.style[t]=n}),L(e,W),i.addClass(e,we),Ne.recalculateTimingStyles){if(_e=Y.className+" "+ye,Ce=y(Y,_e),Pe=M(Y,_e,Ce),$e=Pe.maxDelay,te=Math.max($e,0),0===(re=Pe.maxDuration))return void g();Ne.hasTransitions=Pe.transitionDuration>0,Ne.hasAnimations=Pe.animationDuration>0}if(Ne.applyAnimationDelay&&($e="boolean"!=typeof W.delay&&I(W.delay)?parseFloat(W.delay):$e,te=Math.max($e,0),Pe.animationDelay=$e,Oe=E($e,!0),se.push(Oe),Y.style[Oe[0]]=Oe[1]),ie=te*he,oe=re*he,W.easing){var t,r=W.easing;Ne.hasTransitions&&(t=$+ne,se.push([t,r]),Y.style[t]=r),Ne.hasAnimations&&(t=O+ne,se.push([t,r]),Y.style[t]=r)}Pe.transitionDuration&&ue.push(N),Pe.animationDuration&&ue.push(R),ae=Date.now();var o=ie+fe*oe,a=ae+o,s=e.data(de)||[],c=!0;if(s.length){var u=s[0];(c=a>u.expectedEndTime)?l.cancel(u.timer):s.push(g)}if(c){var d=l(n,o,!1);s[0]={timer:d,expectedEndTime:a},s.push(g),e.data(de,s)}ue.length&&e.on(ue.join(" "),H),W.to&&(W.cleanupStyles&&P(V,Y,Object.keys(W.to)),m(e,W))}}function n(){var t=e.data(de);if(t){for(var n=1;n<t.length;n++)t[n]();e.removeData(de)}}if(!K)if(Y.parentNode){var r=function(e){if(X)Q&&e&&(Q=!1,g());else if(Q=!e,Pe.animationDuration){var t=A(Y,Q);Q?se.push(t):a(se,t)}},o=ke>0&&(Pe.transitionDuration&&0===xe.transitionDuration||Pe.animationDuration&&0===xe.animationDuration)&&Math.max(xe.animationDelay,xe.transitionDelay);o?l(t,Math.floor(o*ke*he),!1):t(),J.resume=function(){r(!0)},J.pause=function(){r(!1)}}else g()}var W=n||{};W.$$prepared||(W=h(j(W)));var V={},Y=b(e);if(!Y||!Y.parentNode||!v.enabled())return T();var K,Q,X,Z,J,te,ie,re,oe,ae,se=[],le=e.attr("class"),ce=r(W),ue=[];if(0===W.duration||!u.animations&&!u.transitions)return T();var me=W.event&&q(W.event)?W.event.join(" "):W.event,ve="",be="";me&&W.structural?ve=o(me,F,!0):me&&(ve=me),W.addClass&&(be+=o(W.addClass,G)),W.removeClass&&(be.length&&(be+=" "),be+=o(W.removeClass,B)),W.applyClassesEarly&&be.length&&L(e,W);var ye=[ve,be].join(" ").trim(),_e=le+" "+ye,we=o(ye,"-active"),Ae=ce.to&&Object.keys(ce.to).length>0;if(!((W.keyframeStyle||"").length>0)&&!Ae&&!ye)return T();var Ce,xe;if(W.stagger>0){var Se=parseFloat(W.stagger);xe={transitionDelay:Se,animationDelay:Se,transitionDuration:0,animationDuration:0}}else Ce=y(Y,_e),xe=x(Y,ye,Ce,ge);W.$$skipPreparationClasses||i.addClass(e,ye);var Ee;if(W.transitionStyle){var Te=[$,W.transitionStyle];C(Y,Te),se.push(Te)}if(W.duration>=0){Ee=Y.style[$].length>0;var De=k(W.duration,Ee);C(Y,De),se.push(De)}if(W.keyframeStyle){var Ie=[O,W.keyframeStyle];C(Y,Ie),se.push(Ie)}var ke=xe?W.staggerIndex>=0?W.staggerIndex:t.count(Ce):0,Me=0===ke;Me&&!W.skipBlocking&&w(Y,9999);var Pe=M(Y,_e,Ce),$e=Pe.maxDelay;te=Math.max($e,0),re=Pe.maxDuration;var Ne={};if(Ne.hasTransitions=Pe.transitionDuration>0,Ne.hasAnimations=Pe.animationDuration>0,Ne.hasTransitionAll=Ne.hasTransitions&&"all"==Pe.transitionProperty,Ne.applyTransitionDuration=Ae&&(Ne.hasTransitions&&!Ne.hasTransitionAll||Ne.hasAnimations&&!Ne.hasTransitions),Ne.applyAnimationDuration=W.duration&&Ne.hasAnimations,Ne.applyTransitionDelay=I(W.delay)&&(Ne.applyTransitionDuration||Ne.hasTransitions),Ne.applyAnimationDelay=I(W.delay)&&Ne.hasAnimations,Ne.recalculateTimingStyles=be.length>0,(Ne.applyTransitionDuration||Ne.applyAnimationDuration)&&(re=W.duration?parseFloat(W.duration):re,Ne.applyTransitionDuration&&(Ne.hasTransitions=!0,Pe.transitionDuration=re,Ee=Y.style[$+"Property"].length>0,se.push(k(re,Ee))),Ne.applyAnimationDuration&&(Ne.hasAnimations=!0,Pe.animationDuration=re,se.push(S(re)))),0===re&&!Ne.recalculateTimingStyles)return T();if(null!=W.delay){var Oe;"boolean"!=typeof W.delay&&(Oe=parseFloat(W.delay),te=Math.max(Oe,0)),Ne.applyTransitionDelay&&se.push(E(Oe)),Ne.applyAnimationDelay&&se.push(E(Oe,!0))}return null==W.duration&&Pe.transitionDuration>0&&(Ne.recalculateTimingStyles=Ne.recalculateTimingStyles||Me),ie=te*he,oe=re*he,W.skipBlocking||(Ne.blockTransition=Pe.transitionDuration>0,Ne.blockKeyframeAnimation=Pe.animationDuration>0&&xe.animationDelay>0&&0===xe.animationDuration),W.from&&(W.cleanupStyles&&P(V,Y,Object.keys(W.from)),f(e,W)),Ne.blockTransition||Ne.blockKeyframeAnimation?_(re):W.skipBlocking||w(Y,!1),{$$willAnimate:!0,end:c,start:function(){if(!K)return J={end:c,cancel:d,resume:null,pause:null},Z=new s(J),D(U),Z}}}}]}],be=["$$animationProvider",function(e){function t(e){return e.parentNode&&11===e.parentNode.nodeType}e.drivers.push("$$animateCssDriver");var n="ng-animate-shim",i="ng-anchor",r="ng-anchor-out",o="ng-anchor-in";this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(e,a,s,l,c,u,h){function p(e){return e.replace(/\bng-\S+\b/g,"")}function f(e,t){return X(e)&&(e=e.split(" ")),X(t)&&(t=t.split(" ")),e.filter(function(e){return-1===t.indexOf(e)}).join(" ")}function m(t,a,l){function c(e){var t={},n=b(e).getBoundingClientRect();return z(["width","height","top","left"],function(e){var i=n[e];switch(e){case"top":i+=y.scrollTop;break;case"left":i+=y.scrollLeft}t[e]=Math.floor(i)+"px"}),t}function u(e){return e.attr("class")||""}function d(){var t=p(u(l)),n=f(t,g),i=f(g,t),a=e(m,{to:c(l),addClass:o+" "+n,removeClass:r+" "+i,delay:!0});return a.$$willAnimate?a:null}function h(){m.remove(),a.removeClass(n),l.removeClass(n)}var m=J(b(a).cloneNode(!0)),g=p(u(m));a.addClass(n),l.addClass(n),m.addClass(i),w.append(m);var v,_=function(){var t=e(m,{addClass:r,delay:!0,from:c(a)});return t.$$willAnimate?t:null}();if(!_&&!(v=d()))return h();var A=_||v;return{start:function(){function e(){n&&n.end()}var t,n=A.start();return n.done(function(){if(n=null,!v&&(v=d()))return(n=v.start()).done(function(){n=null,h(),t.complete()}),n;h(),t.complete()}),t=new s({end:e,cancel:e})}}}function g(e,t,n,i){var r=v(e),o=v(t),a=[];if(z(i,function(e){var t=e.out,i=e.in,r=m(n,t,i);r&&a.push(r)}),r||o||0!==a.length)return{start:function(){function e(){z(t,function(e){e.end()})}var t=[];r&&t.push(r.start()),o&&t.push(o.start()),z(a,function(e){t.push(e.start())});var n=new s({end:e,cancel:e});return s.all(t,function(e){n.complete(e)}),n}}}function v(t){var n=t.element,i=t.options||{};t.structural&&(i.event=t.event,i.structural=!0,i.applyClassesEarly=!0,"leave"===t.event&&(i.onDone=i.domOperation)),i.preparationClasses&&(i.event=x(i.event,i.preparationClasses));var r=e(n,i);return r.$$willAnimate?r:null}if(!c.animations&&!c.transitions)return ee;var y=h[0].body,_=b(l),w=J(t(_)||y.contains(_)?_:y);d(u);return function(e){return e.from&&e.to?g(e.from,e.to,e.classes,e.anchors):v(e)}}]}],ye=["$animateProvider",function(e){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(t,n,i){function r(n){n=q(n)?n:n.split(" ");for(var i=[],r={},o=0;o<n.length;o++){var a=n[o],s=e.$$registeredAnimations[a];s&&!r[a]&&(i.push(t.get(s)),r[a]=!0)}return i}var o=d(i);return function(e,t,i,a){function s(){a.domOperation(),o(e,a)}function l(){f=!0,s(),p(e,a)}function c(e,t,i,r,o){var a;switch(i){case"animate":a=[t,r.from,r.to,o];break;case"setClass":a=[t,v,b,o];break;case"addClass":a=[t,v,o];break;case"removeClass":a=[t,b,o];break;default:a=[t,o]}a.push(r);var s=e.apply(e,a);if(s)if(K(s.start)&&(s=s.start()),s instanceof n)s.done(o);else if(K(s))return s;return ee}function u(e,t,i,r,o){var a=[];return z(r,function(r){var s=r[o];s&&a.push(function(){var r,o,a=!1,l=function(e){a||(a=!0,(o||ee)(e),r.complete(!e))};return r=new n({end:function(){l()},cancel:function(){l(!0)}}),o=c(s,e,t,i,function(e){l(!1===e)}),r})}),a}function d(e,t,i,r,o){var a=u(e,t,i,r,o);if(0===a.length){var s,l;"beforeSetClass"===o?(s=u(e,"removeClass",i,r,"beforeRemoveClass"),l=u(e,"addClass",i,r,"beforeAddClass")):"setClass"===o&&(s=u(e,"removeClass",i,r,"removeClass"),l=u(e,"addClass",i,r,"addClass")),s&&(a=a.concat(s)),l&&(a=a.concat(l))}if(0!==a.length)return function(e){var t=[];return a.length&&z(a,function(e){t.push(e())}),t.length?n.all(t,e):e(),function(e){z(t,function(t){e?t.cancel():t.end()})}}}var f=!1;3===arguments.length&&Q(i)&&(a=i,i=null),a=h(a),i||(i=e.attr("class")||"",a.addClass&&(i+=" "+a.addClass),a.removeClass&&(i+=" "+a.removeClass));var m,g,v=a.addClass,b=a.removeClass,y=r(i);if(y.length){var _,w;"leave"==t?(w="leave",_="afterLeave"):(w="before"+t.charAt(0).toUpperCase()+t.substr(1),_=t),"enter"!==t&&"move"!==t&&(m=d(e,t,a,y,w)),g=d(e,t,a,y,_)}if(m||g){var A;return{$$willAnimate:!0,end:function(){return A?A.end():(l(),(A=new n).complete(!0)),A},start:function(){function e(e){l(e),A.complete(e)}function t(t){f||((i||ee)(t),e(t))}if(A)return A;A=new n;var i,r=[];return m&&r.push(function(e){i=m(e)}),r.length?r.push(function(e){s(),e(!0)}):s(),g&&r.push(function(e){i=g(e)}),A.setHost({end:function(){t()},cancel:function(){t(!0)}}),n.chain(r,e),A}}}}}]}],_e=["$$animationProvider",function(e){e.drivers.push("$$animateJsDriver"),this.$get=["$$animateJs","$$AnimateRunner",function(e,t){function n(t){var n=t.element,i=t.event,r=t.options,o=t.classes;return e(n,i,o,r)}return function(e){if(e.from&&e.to){var i=n(e.from),r=n(e.to);if(!i&&!r)return;return{start:function(){function e(){return function(){z(o,function(e){e.end()})}}function n(e){a.complete(e)}var o=[];i&&o.push(i.start()),r&&o.push(r.start()),t.all(o,n);var a=new t({end:e(),cancel:e()});return a}}}return n(e)}}]}],we="data-ng-animate",Ae="$ngAnimatePin",Ce=["$animateProvider",function(t){function i(e){if(!e)return null;var t=e.split(f),n=Object.create(null);return z(t,function(e){n[e]=!0}),n}function r(e,t){if(e&&t){var n=i(t);return e.split(f).some(function(e){return n[e]})}}function o(e,t,n,i){return m[e].some(function(e){return e(t,n,i)})}function a(e,t){var n=(e.addClass||"").length>0,i=(e.removeClass||"").length>0;return t?n&&i:n||i}var c=1,u=2,f=" ",m=this.rules={skip:[],cancel:[],join:[]};m.join.push(function(e,t,n){return!t.structural&&a(t)}),m.skip.push(function(e,t,n){return!t.structural&&!a(t)}),m.skip.push(function(e,t,n){return"leave"==n.event&&t.structural}),m.skip.push(function(e,t,n){return n.structural&&n.state===u&&!t.structural}),m.cancel.push(function(e,t,n){return n.structural&&t.structural}),m.cancel.push(function(e,t,n){return n.state===u&&t.structural}),m.cancel.push(function(e,t,n){if(n.structural)return!1;var i=t.addClass,o=t.removeClass,a=n.addClass,s=n.removeClass;return!(Z(i)&&Z(o)||Z(a)&&Z(s))&&(r(i,s)||r(o,a))}),this.$get=["$$rAF","$rootScope","$rootElement","$document","$$HashMap","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow",function(i,r,f,m,v,w,A,C,x,S){function E(){var e=!1;return function(t){e?t():r.$$postDigest(function(){e=!0,t()})}}function T(e,t){return g(e,t,{})}function D(e,t,n){var i=b(t),r=b(e),o=[],a=K[n];return a&&z(a,function(e){ie.call(e.node,i)?o.push(e.callback):"leave"===n&&ie.call(e.node,r)&&o.push(e.callback)}),o}function I(e,t,n){var i=l(t);return e.filter(function(e){return!(e.node===i&&(!n||e.callback===n))})}function k(e,t){"close"!==e||t[0].parentNode||re.off(t)}function M(e,t,n){function l(t,n,r,o){S(function(){var t=D(v,e,n);t.length?i(function(){z(t,function(t){t(e,r,o)}),k(r,e)}):k(r,e)}),t.progress(n,r,o)}function d(t){_(e,C),ne(e,C),p(e,C),C.domOperation(),x.complete(!t)}var f,v,C=j(n);(e=s(e))&&(f=b(e),v=e.parent()),C=h(C);var x=new A,S=E();if(q(C.addClass)&&(C.addClass=C.addClass.join(" ")),C.addClass&&!X(C.addClass)&&(C.addClass=null),q(C.removeClass)&&(C.removeClass=C.removeClass.join(" ")),C.removeClass&&!X(C.removeClass)&&(C.removeClass=null),C.from&&!Q(C.from)&&(C.from=null),C.to&&!Q(C.to)&&(C.to=null),!f)return d(),x;var I=[f.className,C.addClass,C.removeClass].join(" ");if(!te(I))return d(),x;var M=["enter","move","leave"].indexOf(t)>=0,N=m[0].hidden,L=!F||N||B.get(f),H=!L&&G.get(f)||{},U=!!H.state;if(L||U&&H.state==c||(L=!O(e,v,t)),L)return N&&l(x,t,"start"),d(),N&&l(x,t,"close"),x;M&&P(e);var W={structural:M,element:e,event:t,addClass:C.addClass,removeClass:C.removeClass,close:d,options:C,runner:x};if(U){if(o("skip",e,W,H))return H.state===u?(d(),x):(g(e,H,W),H.runner);if(o("cancel",e,W,H))if(H.state===u)H.runner.end();else{if(!H.structural)return g(e,H,W),H.runner;H.close()}else if(o("join",e,W,H)){if(H.state!==u)return y(e,M?t:null,C),t=W.event=H.event,C=g(e,H,W),H.runner;T(e,W)}}else T(e,W);var V=W.structural;if(V||(V="animate"===W.event&&Object.keys(W.options.to||{}).length>0||a(W)),!V)return d(),$(e),x;var Y=(H.counter||0)+1;return W.counter=Y,R(e,c,W),r.$$postDigest(function(){var n=G.get(f),i=!n;n=n||{};var r=(e.parent()||[]).length>0&&("animate"===n.event||n.structural||a(n));if(i||n.counter!==Y||!r)return i&&(ne(e,C),p(e,C)),(i||M&&n.event!==t)&&(C.domOperation(),x.end()),void(r||$(e));t=!n.structural&&a(n,!0)?"setClass":n.event,R(e,u);var o=w(e,t,n.options);x.setHost(o),l(x,t,"start",{}),o.done(function(n){d(!n);var i=G.get(f);i&&i.counter===Y&&$(b(e)),l(x,t,"close",{})})}),x}function P(e){var t=b(e).querySelectorAll("["+we+"]");z(t,function(e){var t=parseInt(e.getAttribute(we)),n=G.get(e);if(n)switch(t){case u:n.runner.end();case c:G.remove(e)}})}function $(e){var t=b(e);t.removeAttribute(we),G.remove(t)}function N(e,t){return b(e)===b(t)}function O(e,t,n){var i,r=J(m[0].body),o=N(e,r)||"HTML"===e[0].nodeName,a=N(e,f),s=!1,l=B.get(b(e)),c=J.data(e[0],Ae);for(c&&(t=c),t=b(t);t&&(a||(a=N(t,f)),t.nodeType===L);){var u=G.get(t)||{};if(!s){var d=B.get(t);if(!0===d&&!1!==l){l=!0;break}!1===d&&(l=!1),s=u.structural}if(Z(i)||!0===i){var h=J.data(t,U);V(h)&&(i=h)}if(s&&!1===i)break;if(o||(o=N(t,r)),o&&a)break;t=a||!(c=J.data(t,Ae))?t.parentNode:b(c)}return(!s||i)&&!0!==l&&a&&o}function R(e,t,n){(n=n||{}).state=t;var i=b(e);i.setAttribute(we,t);var r=G.get(i),o=r?W(r,n):n;G.put(i,o)}var G=new v,B=new v,F=null,H=r.$watch(function(){return 0===C.totalPendingRequests},function(e){e&&(H(),r.$$postDigest(function(){r.$$postDigest(function(){null===F&&(F=!0)})}))}),K=Object.create(null),ee=t.classNameFilter(),te=ee?function(e){return ee.test(e)}:function(){return!0},ne=d(x),ie=e.Node.prototype.contains||function(e){return this===e||!!(16&this.compareDocumentPosition(e))},re={on:function(e,t,n){var i=l(t);K[e]=K[e]||[],K[e].push({node:i,callback:n}),J(t).on("$destroy",function(){G.get(i)||re.off(e,t,n)})},off:function(e,t,n){if(1!==arguments.length||X(arguments[0])){var i=K[e];i&&(K[e]=1===arguments.length?null:I(i,t,n))}else{t=arguments[0];for(var r in K)K[r]=I(K[r],t)}},pin:function(e,t){n(Y(e),"element","not an element"),n(Y(t),"parentElement","not an element"),e.data(Ae,t)},push:function(e,t,n,i){return n=n||{},n.domOperation=i,M(e,t,n)},enabled:function(e,t){var n=arguments.length;if(0===n)t=!!F;else if(Y(e)){var i=b(e);1===n?t=!B.get(i):B.put(i,!t)}else t=F=!!e;return t}};return re}]}],xe=["$animateProvider",function(e){function t(e,t){e.data(s,t)}function n(e){e.removeData(s)}function r(e){return e.data(s)}var o="ng-animate-ref",a=this.drivers=[],s="$$animationRunner";this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$HashMap","$$rAFScheduler",function(e,s,l,c,u,f){function m(e){function t(e){if(e.processed)return e;e.processed=!0;var n=e.domNode,o=n.parentNode;r.put(n,e);for(var a;o;){if(a=r.get(o)){a.processed||(a=t(a));break}o=o.parentNode}return(a||i).children.push(e),e}var n,i={children:[]},r=new u;for(n=0;n<e.length;n++){var o=e[n];r.put(o.domNode,e[n]={domNode:o.domNode,fn:o.fn,children:[]})}for(n=0;n<e.length;n++)t(e[n]);return function(e){var t,n=[],i=[];for(t=0;t<e.children.length;t++)i.push(e.children[t]);var r=i.length,o=0,a=[];for(t=0;t<i.length;t++){var s=i[t];r<=0&&(r=o,o=0,n.push(a),a=[]),a.push(s.fn),s.children.forEach(function(e){o++,i.push(e)}),r--}return a.length&&n.push(a),n}(i)}var g=[],v=d(e);return function(u,d,y){function _(e){var t="["+o+"]",n=e.hasAttribute(o)?[e]:e.querySelectorAll(t),i=[];return z(n,function(e){var t=e.getAttribute(o);t&&t.length&&i.push(e)}),i}function w(e){var t=[],n={};z(e,function(e,i){var r=b(e.element),a=e.event,s=["enter","move"].indexOf(a)>=0,l=e.structural?_(r):[];if(l.length){var c=s?"to":"from";z(l,function(e){var t=e.getAttribute(o);n[t]=n[t]||{},n[t][c]={animationID:i,element:J(e)}})}else t.push(e)});var i={},r={};return z(n,function(n,o){var a=n.from,s=n.to;if(a&&s){var l=e[a.animationID],c=e[s.animationID],u=a.animationID.toString();if(!r[u]){var d=r[u]={structural:!0,beforeStart:function(){l.beforeStart(),c.beforeStart()},close:function(){l.close(),c.close()},classes:A(l.classes,c.classes),from:l,to:c,anchors:[]};d.classes.length?t.push(d):(t.push(l),t.push(c))}r[u].anchors.push({out:a.element,in:s.element})}else{var h=a?a.animationID:s.animationID,p=h.toString();i[p]||(i[p]=!0,t.push(e[h]))}}),t}function A(e,t){e=e.split(" "),t=t.split(" ");for(var n=[],i=0;i<e.length;i++){var r=e[i];if("ng-"!==r.substring(0,3))for(var o=0;o<t.length;o++)if(r===t[o]){n.push(r);break}}return n.join(" ")}function C(e){for(var t=a.length-1;t>=0;t--){var n=a[t],i=l.get(n)(e);if(i)return i}}function x(){u.addClass(H),M&&e.addClass(u,M),P&&(e.removeClass(u,P),P=null)}function S(e,t){function n(e){var n=r(e);n&&n.setHost(t)}e.from&&e.to?(n(e.from.element),n(e.to.element)):n(e.element)}function E(){var e=r(u);!e||"leave"===d&&y.$$domOperationFired||e.end()}function T(t){u.off("$destroy",E),n(u),v(u,y),p(u,y),y.domOperation(),M&&e.removeClass(u,M),u.removeClass(H),I.complete(!t)}y=h(y);var D=["enter","move","leave"].indexOf(d)>=0,I=new c({end:function(){T()},cancel:function(){T(!0)}});if(!a.length)return T(),I;t(u,I);var k=i(u.attr("class"),i(y.addClass,y.removeClass)),M=y.tempClasses;M&&(k+=" "+M,y.tempClasses=null);var P;return D&&(P="ng-"+d+"-prepare",e.addClass(u,P)),g.push({element:u,classes:k,event:d,structural:D,options:y,beforeStart:x,close:T}),u.on("$destroy",E),g.length>1?I:(s.$$postDigest(function(){var e=[];z(g,function(t){r(t.element)?e.push(t):t.close()}),g.length=0;var t=w(e),n=[];z(t,function(e){n.push({domNode:b(e.from?e.from.element:e.element),fn:function(){e.beforeStart();var t,n=e.close;if(r(e.anchors?e.from.element||e.to.element:e.element)){var i=C(e);i&&(t=i.start)}if(t){var o=t();o.done(function(e){n(!e)}),S(e,o)}else n()}})}),f(m(n))}),I)}}]}],Se=["$animate","$rootScope",function(e,t){return{restrict:"A",transclude:"element",terminal:!0,priority:600,link:function(t,n,i,r,o){var a,s;t.$watchCollection(i.ngAnimateSwap||i.for,function(i){a&&e.leave(a),s&&(s.$destroy(),s=null),(i||0===i)&&(s=t.$new(),o(s,function(t){a=t,e.enter(t,null,n)}))})}}}];t.module("ngAnimate",[],function(){ee=t.noop,j=t.copy,W=t.extend,J=t.element,z=t.forEach,q=t.isArray,X=t.isString,Q=t.isObject,Z=t.isUndefined,V=t.isDefined,K=t.isFunction,Y=t.isElement}).directive("ngAnimateSwap",Se).directive("ngAnimateChildren",ue).factory("$$rAFScheduler",ce).provider("$$animateQueue",Ce).provider("$$animation",xe).provider("$animateCss",ve).provider("$$animateCssDriver",be).provider("$$animateJs",ye).provider("$$animateJsDriver",_e)}(window,window.angular),function(e,t){"use strict";function n(){function e(e,t,i,o){return function(a,s,l){var c=l.$normalize(t);!n[c]||r(s,i)||l[c]||a.$watch(l[e],function(e){e=o?!e:!!e,s.attr(t,e)})}}var n={ariaHidden:!0,ariaChecked:!0,ariaReadonly:!0,ariaDisabled:!0,ariaRequired:!0,ariaInvalid:!0,ariaValue:!0,tabindex:!0,bindKeypress:!0,bindRoleForClick:!0};this.config=function(e){n=t.extend(n,e)},this.$get=function(){return{config:function(e){return n[e]},$$watchExpr:e}}}var i=["BUTTON","A","INPUT","TEXTAREA","SELECT","DETAILS","SUMMARY"],r=function(e,t){if(-1!==t.indexOf(e[0].nodeName))return!0};t.module("ngAria",["ng"]).provider("$aria",n).directive("ngShow",["$aria",function(e){return e.$$watchExpr("ngShow","aria-hidden",[],!0)}]).directive("ngHide",["$aria",function(e){return e.$$watchExpr("ngHide","aria-hidden",[],!1)}]).directive("ngValue",["$aria",function(e){return e.$$watchExpr("ngValue","aria-checked",i,!1)}]).directive("ngChecked",["$aria",function(e){return e.$$watchExpr("ngChecked","aria-checked",i,!1)}]).directive("ngReadonly",["$aria",function(e){return e.$$watchExpr("ngReadonly","aria-readonly",i,!1)}]).directive("ngRequired",["$aria",function(e){return e.$$watchExpr("ngRequired","aria-required",i,!1)}]).directive("ngModel",["$aria",function(e){function t(t,n,o,a){return e.config(n)&&!o.attr(t)&&(a||!r(o,i))}function n(e,t){return!t.attr("role")&&t.attr("type")===e&&"INPUT"!==t[0].nodeName}function o(e,t){var n=e.type,i=e.role;return"checkbox"===(n||i)||"menuitemcheckbox"===i?"checkbox":"radio"===(n||i)||"menuitemradio"===i?"radio":"range"===n||"progressbar"===i||"slider"===i?"range":""}return{restrict:"A",require:"ngModel",priority:200,compile:function(i,r){var a=o(r,i);return{pre:function(e,t,n,i){"checkbox"===a&&(i.$isEmpty=function(e){return!1===e})},post:function(i,r,o,s){function l(){return s.$modelValue}function c(e){var t=o.value==s.$viewValue;r.attr("aria-checked",t)}function u(){r.attr("aria-checked",!s.$isEmpty(s.$viewValue))}var d=t("tabindex","tabindex",r,!1);switch(a){case"radio":case"checkbox":n(a,r)&&r.attr("role",a),t("aria-checked","ariaChecked",r,!1)&&i.$watch(l,"radio"===a?c:u),d&&r.attr("tabindex",0);break;case"range":if(n(a,r)&&r.attr("role","slider"),e.config("ariaValue")){var h=!r.attr("aria-valuemin")&&(o.hasOwnProperty("min")||o.hasOwnProperty("ngMin")),p=!r.attr("aria-valuemax")&&(o.hasOwnProperty("max")||o.hasOwnProperty("ngMax")),f=!r.attr("aria-valuenow");h&&o.$observe("min",function(e){r.attr("aria-valuemin",e)}),p&&o.$observe("max",function(e){r.attr("aria-valuemax",e)}),f&&i.$watch(l,function(e){r.attr("aria-valuenow",e)})}d&&r.attr("tabindex",0)}!o.hasOwnProperty("ngRequired")&&s.$validators.required&&t("aria-required","ariaRequired",r,!1)&&o.$observe("required",function(){r.attr("aria-required",!!o.required)}),t("aria-invalid","ariaInvalid",r,!0)&&i.$watch(function(){return s.$invalid},function(e){r.attr("aria-invalid",!!e)})}}}}}]).directive("ngDisabled",["$aria",function(e){return e.$$watchExpr("ngDisabled","aria-disabled",i,!1)}]).directive("ngMessages",function(){return{restrict:"A",require:"?ngMessages",link:function(e,t,n,i){t.attr("aria-live")||t.attr("aria-live","assertive")}}}).directive("ngClick",["$aria","$parse",function(e,t){return{restrict:"A",compile:function(n,o){var a=t(o.ngClick,null,!0);return function(t,n,o){r(n,i)||(e.config("bindRoleForClick")&&!n.attr("role")&&n.attr("role","button"),e.config("tabindex")&&!n.attr("tabindex")&&n.attr("tabindex",0),e.config("bindKeypress")&&!o.ngKeypress&&n.on("keypress",function(e){function n(){a(t,{$event:e})}var i=e.which||e.keyCode;32!==i&&13!==i||t.$apply(n)}))}}}}]).directive("ngDblclick",["$aria",function(e){return function(t,n,o){!e.config("tabindex")||n.attr("tabindex")||r(n,i)||n.attr("tabindex",0)}}])}(window,window.angular),function(e,t){"use strict";function n(e,n,i){function r(e,i,r){var a,s;s=(r=r||{}).expires,a=t.isDefined(r.path)?r.path:o,t.isUndefined(i)&&(s="Thu, 01 Jan 1970 00:00:00 GMT",i=""),t.isString(s)&&(s=new Date(s));var l=encodeURIComponent(e)+"="+encodeURIComponent(i);l+=a?";path="+a:"",l+=r.domain?";domain="+r.domain:"",l+=s?";expires="+s.toUTCString():"";var c=(l+=r.secure?";secure":"").length+1;return c>4096&&n.warn("Cookie '"+e+"' possibly not set or overflowed because it was too large ("+c+" > 4096 bytes)!"),l}var o=i.baseHref(),a=e[0];return function(e,t,n){a.cookie=r(e,t,n)}}t.module("ngCookies",["ng"]).provider("$cookies",[function(){function e(e){return e?t.extend({},n,e):n}var n=this.defaults={};this.$get=["$$cookieReader","$$cookieWriter",function(n,i){return{get:function(e){return n()[e]},getObject:function(e){var n=this.get(e);return n?t.fromJson(n):n},getAll:function(){return n()},put:function(t,n,r){i(t,n,e(r))},putObject:function(e,n,i){this.put(e,t.toJson(n),i)},remove:function(t,n){i(t,void 0,e(n))}}}]}]),t.module("ngCookies").factory("$cookieStore",["$cookies",function(e){return{get:function(t){return e.getObject(t)},put:function(t,n){e.putObject(t,n)},remove:function(t){e.remove(t)}}}]),n.$inject=["$document","$log","$browser"],t.module("ngCookies").provider("$$cookieWriter",function(){this.$get=n})}(window,window.angular),function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],function(t){return e(t,window,document)}):"object"==typeof exports?module.exports=function(t,n){return t||(t=window),n||(n="undefined"!=typeof window?require("jquery"):require("jquery")(t)),e(n,t,t.document)}:e(jQuery,window,document)}(function(e,t,n,i){"use strict";function r(t){var n,i,o={};e.each(t,function(e,a){(n=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(n[1]+" ")&&(i=e.replace(n[0],n[2].toLowerCase()),o[i]=e,"o"===n[1]&&r(t[e]))}),t._hungarianMap=o}function o(t,n,a){t._hungarianMap||r(t);var s;e.each(n,function(r,l){(s=t._hungarianMap[r])===i||!a&&n[s]!==i||("o"===s.charAt(0)?(n[s]||(n[s]={}),e.extend(!0,n[s],n[r]),o(t[s],n[s],a)):n[s]=n[r])})}function a(e){var t=Ye.defaults.oLanguage,n=e.sZeroRecords;!e.sEmptyTable&&n&&"No data available in table"===t.sEmptyTable&&$e(e,e,"sZeroRecords","sEmptyTable"),!e.sLoadingRecords&&n&&"Loading..."===t.sLoadingRecords&&$e(e,e,"sZeroRecords","sLoadingRecords"),e.sInfoThousands&&(e.sThousands=e.sInfoThousands);var i=e.sDecimal;i&&Ue(i)}function s(e){ft(e,"ordering","bSort"),ft(e,"orderMulti","bSortMulti"),ft(e,"orderClasses","bSortClasses"),ft(e,"orderCellsTop","bSortCellsTop"),ft(e,"order","aaSorting"),ft(e,"orderFixed","aaSortingFixed"),ft(e,"paging","bPaginate"),ft(e,"pagingType","sPaginationType"),ft(e,"pageLength","iDisplayLength"),ft(e,"searching","bFilter"),"boolean"==typeof e.sScrollX&&(e.sScrollX=e.sScrollX?"100%":""),"boolean"==typeof e.scrollX&&(e.scrollX=e.scrollX?"100%":"");var t=e.aoSearchCols;if(t)for(var n=0,i=t.length;n<i;n++)t[n]&&o(Ye.models.oSearch,t[n])}function l(t){ft(t,"orderable","bSortable"),ft(t,"orderData","aDataSort"),ft(t,"orderSequence","asSorting"),ft(t,"orderDataType","sortDataType");var n=t.aDataSort;"number"!=typeof n||e.isArray(n)||(t.aDataSort=[n])}function c(n){if(!Ye.__browser){var i={};Ye.__browser=i;var r=e("<div/>").css({position:"fixed",top:0,left:-1*e(t).scrollLeft(),height:1,width:1,overflow:"hidden"}).append(e("<div/>").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(e("<div/>").css({width:"100%",height:10}))).appendTo("body"),o=r.children(),a=o.children();i.barWidth=o[0].offsetWidth-o[0].clientWidth,i.bScrollOversize=100===a[0].offsetWidth&&100!==o[0].clientWidth,i.bScrollbarLeft=1!==Math.round(a.offset().left),i.bBounding=!!r[0].getBoundingClientRect().width,r.remove()}e.extend(n.oBrowser,Ye.__browser),n.oScroll.iBarWidth=Ye.__browser.barWidth}function u(e,t,n,r,o,a){var s,l=r,c=!1;for(n!==i&&(s=n,c=!0);l!==o;)e.hasOwnProperty(l)&&(s=c?t(s,e[l],l,e):e[l],c=!0,l+=a);return s}function d(t,i){var r=Ye.defaults.column,o=t.aoColumns.length,a=e.extend({},Ye.models.oColumn,r,{nTh:i||n.createElement("th"),sTitle:r.sTitle?r.sTitle:i?i.innerHTML:"",aDataSort:r.aDataSort?r.aDataSort:[o],mData:r.mData?r.mData:o,idx:o});t.aoColumns.push(a);var s=t.aoPreSearchCols;s[o]=e.extend({},Ye.models.oSearch,s[o]),h(t,o,e(i).data())}function h(t,n,r){var a=t.aoColumns[n],s=t.oClasses,c=e(a.nTh);if(!a.sWidthOrig){a.sWidthOrig=c.attr("width")||null;var u=(c.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);u&&(a.sWidthOrig=u[1])}r!==i&&null!==r&&(l(r),o(Ye.defaults.column,r),r.mDataProp===i||r.mData||(r.mData=r.mDataProp),r.sType&&(a._sManualType=r.sType),r.className&&!r.sClass&&(r.sClass=r.className),e.extend(a,r),$e(a,r,"sWidth","sWidthOrig"),r.iDataSort!==i&&(a.aDataSort=[r.iDataSort]),$e(a,r,"aDataSort"));var d=a.mData,h=T(d),p=a.mRender?T(a.mRender):null,f=function(e){return"string"==typeof e&&-1!==e.indexOf("@")};a._bAttrSrc=e.isPlainObject(d)&&(f(d.sort)||f(d.type)||f(d.filter)),a._setter=null,a.fnGetData=function(e,t,n){var r=h(e,t,i,n);return p&&t?p(r,t,e,n):r},a.fnSetData=function(e,t,n){return D(d)(e,t,n)},"number"!=typeof d&&(t._rowReadObject=!0),t.oFeatures.bSort||(a.bSortable=!1,c.addClass(s.sSortableNone));var m=-1!==e.inArray("asc",a.asSorting),g=-1!==e.inArray("desc",a.asSorting);a.bSortable&&(m||g)?m&&!g?(a.sSortingClass=s.sSortableAsc,a.sSortingClassJUI=s.sSortJUIAscAllowed):!m&&g?(a.sSortingClass=s.sSortableDesc,a.sSortingClassJUI=s.sSortJUIDescAllowed):(a.sSortingClass=s.sSortable,a.sSortingClassJUI=s.sSortJUI):(a.sSortingClass=s.sSortableNone,a.sSortingClassJUI="")}function p(e){if(!1!==e.oFeatures.bAutoWidth){var t=e.aoColumns;ve(e);for(var n=0,i=t.length;n<i;n++)t[n].nTh.style.width=t[n].sWidth}var r=e.oScroll;""===r.sY&&""===r.sX||me(e),Le(e,null,"column-sizing",[e])}function f(e,t){var n=v(e,"bVisible");return"number"==typeof n[t]?n[t]:null}function m(t,n){var i=v(t,"bVisible"),r=e.inArray(n,i);return-1!==r?r:null}function g(t){var n=0;return e.each(t.aoColumns,function(t,i){i.bVisible&&"none"!==e(i.nTh).css("display")&&n++}),n}function v(t,n){var i=[];return e.map(t.aoColumns,function(e,t){e[n]&&i.push(t)}),i}function b(e){var t,n,r,o,a,s,l,c,u,d=e.aoColumns,h=e.aoData,p=Ye.ext.type.detect;for(t=0,n=d.length;t<n;t++)if(l=d[t],u=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){for(r=0,o=p.length;r<o;r++){for(a=0,s=h.length;a<s&&(u[a]===i&&(u[a]=x(e,a,t,"type")),(c=p[r](u[a],e))||r===p.length-1)&&"html"!==c;a++);if(c){l.sType=c;break}}l.sType||(l.sType="string")}}function y(t,n,r,o){var a,s,l,c,u,h,p,f=t.aoColumns;if(n)for(a=n.length-1;a>=0;a--){var m=(p=n[a]).targets!==i?p.targets:p.aTargets;for(e.isArray(m)||(m=[m]),l=0,c=m.length;l<c;l++)if("number"==typeof m[l]&&m[l]>=0){for(;f.length<=m[l];)d(t);o(m[l],p)}else if("number"==typeof m[l]&&m[l]<0)o(f.length+m[l],p);else if("string"==typeof m[l])for(u=0,h=f.length;u<h;u++)("_all"==m[l]||e(f[u].nTh).hasClass(m[l]))&&o(u,p)}if(r)for(a=0,s=r.length;a<s;a++)o(a,r[a])}function _(t,n,r,o){var a=t.aoData.length,s=e.extend(!0,{},Ye.models.oRow,{src:r?"dom":"data",idx:a});s._aData=n,t.aoData.push(s);for(var l=t.aoColumns,c=0,u=l.length;c<u;c++)l[c].sType=null;t.aiDisplayMaster.push(a);var d=t.rowIdFn(n);return d!==i&&(t.aIds[d]=s),!r&&t.oFeatures.bDeferRender||N(t,a,r,o),a}function w(t,n){var i;return n instanceof e||(n=e(n)),n.map(function(e,n){return i=$(t,n),_(t,i.data,n,i.cells)})}function A(e,t){return t._DT_RowIndex!==i?t._DT_RowIndex:null}function C(t,n,i){return e.inArray(i,t.aoData[n].anCells)}function x(e,t,n,r){var o=e.iDraw,a=e.aoColumns[n],s=e.aoData[t]._aData,l=a.sDefaultContent,c=a.fnGetData(s,r,{settings:e,row:t,col:n});if(c===i)return e.iDrawError!=o&&null===l&&(Pe(e,0,"Requested unknown parameter "+("function"==typeof a.mData?"{function}":"'"+a.mData+"'")+" for row "+t+", column "+n,4),e.iDrawError=o),l;if(c!==s&&null!==c||null===l||r===i){if("function"==typeof c)return c.call(s)}else c=l;return null===c&&"display"==r?"":c}function S(e,t,n,i){var r=e.aoColumns[n],o=e.aoData[t]._aData;r.fnSetData(o,i,{settings:e,row:t,col:n})}function E(t){return e.map(t.match(/(\\.|[^\.])+/g)||[""],function(e){return e.replace(/\\\./g,".")})}function T(t){if(e.isPlainObject(t)){var n={};return e.each(t,function(e,t){t&&(n[e]=T(t))}),function(e,t,r,o){var a=n[t]||n._;return a!==i?a(e,t,r,o):e}}if(null===t)return function(e){return e};if("function"==typeof t)return function(e,n,i,r){return t(e,n,i,r)};if("string"!=typeof t||-1===t.indexOf(".")&&-1===t.indexOf("[")&&-1===t.indexOf("("))return function(e,n){return e[t]};var r=function(t,n,o){var a,s,l,c;if(""!==o)for(var u=E(o),d=0,h=u.length;d<h;d++){if(a=u[d].match(mt),s=u[d].match(gt),a){if(u[d]=u[d].replace(mt,""),""!==u[d]&&(t=t[u[d]]),l=[],u.splice(0,d+1),c=u.join("."),e.isArray(t))for(var p=0,f=t.length;p<f;p++)l.push(r(t[p],n,c));var m=a[0].substring(1,a[0].length-1);t=""===m?l:l.join(m);break}if(s)u[d]=u[d].replace(gt,""),t=t[u[d]]();else{if(null===t||t[u[d]]===i)return i;t=t[u[d]]}}return t};return function(e,n){return r(e,n,t)}}function D(t){if(e.isPlainObject(t))return D(t._);if(null===t)return function(){};if("function"==typeof t)return function(e,n,i){t(e,"set",n,i)};if("string"!=typeof t||-1===t.indexOf(".")&&-1===t.indexOf("[")&&-1===t.indexOf("("))return function(e,n){e[t]=n};var n=function(t,r,o){for(var a,s,l,c,u,d=E(o),h=d[d.length-1],p=0,f=d.length-1;p<f;p++){if(s=d[p].match(mt),l=d[p].match(gt),s){if(d[p]=d[p].replace(mt,""),t[d[p]]=[],(a=d.slice()).splice(0,p+1),u=a.join("."),e.isArray(r))for(var m=0,g=r.length;m<g;m++)n(c={},r[m],u),t[d[p]].push(c);else t[d[p]]=r;return}l&&(d[p]=d[p].replace(gt,""),t=t[d[p]](r)),null!==t[d[p]]&&t[d[p]]!==i||(t[d[p]]={}),t=t[d[p]]}h.match(gt)?t=t[h.replace(gt,"")](r):t[h.replace(mt,"")]=r};return function(e,i){return n(e,i,t)}}function I(e){return st(e.aoData,"_aData")}function k(e){e.aoData.length=0,e.aiDisplayMaster.length=0,e.aiDisplay.length=0,e.aIds={}}function M(e,t,n){for(var r=-1,o=0,a=e.length;o<a;o++)e[o]==t?r=o:e[o]>t&&e[o]--;-1!=r&&n===i&&e.splice(r,1)}function P(e,t,n,r){var o,a,s=e.aoData[t],l=function(n,i){for(;n.childNodes.length;)n.removeChild(n.firstChild);n.innerHTML=x(e,t,i,"display")};if("dom"!==n&&(n&&"auto"!==n||"dom"!==s.src)){var c=s.anCells;if(c)if(r!==i)l(c[r],r);else for(o=0,a=c.length;o<a;o++)l(c[o],o)}else s._aData=$(e,s,r,r===i?i:s._aData).data;s._aSortData=null,s._aFilterData=null;var u=e.aoColumns;if(r!==i)u[r].sType=null;else{for(o=0,a=u.length;o<a;o++)u[o].sType=null;O(e,s)}}function $(t,n,r,o){var a,s,l,c=[],u=n.firstChild,d=0,h=t.aoColumns,p=t._rowReadObject;o=o!==i?o:p?{}:[];var f=function(e,t){if("string"==typeof e){var n=e.indexOf("@");if(-1!==n){var i=e.substring(n+1);D(e)(o,t.getAttribute(i))}}},m=function(t){r!==i&&r!==d||(s=h[d],l=e.trim(t.innerHTML),s&&s._bAttrSrc?(D(s.mData._)(o,l),f(s.mData.sort,t),f(s.mData.type,t),f(s.mData.filter,t)):p?(s._setter||(s._setter=D(s.mData)),s._setter(o,l)):o[d]=l),d++};if(u)for(;u;)"TD"!=(a=u.nodeName.toUpperCase())&&"TH"!=a||(m(u),c.push(u)),u=u.nextSibling;else for(var g=0,v=(c=n.anCells).length;g<v;g++)m(c[g]);var b=n.firstChild?n:n.nTr;if(b){var y=b.getAttribute("id");y&&D(t.rowId)(o,y)}return{data:o,cells:c}}function N(t,i,r,o){var a,s,l,c,u,d=t.aoData[i],h=d._aData,p=[];if(null===d.nTr){for(a=r||n.createElement("tr"),d.nTr=a,d.anCells=p,a._DT_RowIndex=i,O(t,d),c=0,u=t.aoColumns.length;c<u;c++)l=t.aoColumns[c],(s=r?o[c]:n.createElement(l.sCellType))._DT_CellIndex={row:i,column:c},p.push(s),r&&!l.mRender&&l.mData===c||e.isPlainObject(l.mData)&&l.mData._===c+".display"||(s.innerHTML=x(t,i,c,"display")),l.sClass&&(s.className+=" "+l.sClass),l.bVisible&&!r?a.appendChild(s):!l.bVisible&&r&&s.parentNode.removeChild(s),l.fnCreatedCell&&l.fnCreatedCell.call(t.oInstance,s,x(t,i,c),h,i,c);Le(t,"aoRowCreatedCallback",null,[a,h,i])}d.nTr.setAttribute("role","row")}function O(t,n){var i=n.nTr,r=n._aData;if(i){var o=t.rowIdFn(r);if(o&&(i.id=o),r.DT_RowClass){var a=r.DT_RowClass.split(" ");n.__rowc=n.__rowc?pt(n.__rowc.concat(a)):a,e(i).removeClass(n.__rowc.join(" ")).addClass(r.DT_RowClass)}r.DT_RowAttr&&e(i).attr(r.DT_RowAttr),r.DT_RowData&&e(i).data(r.DT_RowData)}}function R(t){var n,i,r,o,a,s=t.nTHead,l=t.nTFoot,c=0===e("th, td",s).length,u=t.oClasses,d=t.aoColumns;for(c&&(o=e("<tr/>").appendTo(s)),n=0,i=d.length;n<i;n++)a=d[n],r=e(a.nTh).addClass(a.sClass),c&&r.appendTo(o),t.oFeatures.bSort&&(r.addClass(a.sSortingClass),!1!==a.bSortable&&(r.attr("tabindex",t.iTabIndex).attr("aria-controls",t.sTableId),Ee(t,a.nTh,n))),a.sTitle!=r[0].innerHTML&&r.html(a.sTitle),Be(t,"header")(t,r,a,u);if(c&&H(t.aoHeader,s),e(s).find(">tr").attr("role","row"),e(s).find(">tr>th, >tr>td").addClass(u.sHeaderTH),e(l).find(">tr>th, >tr>td").addClass(u.sFooterTH),null!==l){var h=t.aoFooter[0];for(n=0,i=h.length;n<i;n++)(a=d[n]).nTf=h[n].cell,a.sClass&&e(a.nTf).addClass(a.sClass)}}function L(t,n,r){var o,a,s,l,c,u,d,h,p,f=[],m=[],g=t.aoColumns.length;if(n){for(r===i&&(r=!1),o=0,a=n.length;o<a;o++){for(f[o]=n[o].slice(),f[o].nTr=n[o].nTr,s=g-1;s>=0;s--)t.aoColumns[s].bVisible||r||f[o].splice(s,1);m.push([])}for(o=0,a=f.length;o<a;o++){if(d=f[o].nTr)for(;u=d.firstChild;)d.removeChild(u);for(s=0,l=f[o].length;s<l;s++)if(h=1,p=1,m[o][s]===i){for(d.appendChild(f[o][s].cell),m[o][s]=1;f[o+h]!==i&&f[o][s].cell==f[o+h][s].cell;)m[o+h][s]=1,h++;for(;f[o][s+p]!==i&&f[o][s].cell==f[o][s+p].cell;){for(c=0;c<h;c++)m[o+c][s+p]=1;p++}e(f[o][s].cell).attr("rowspan",h).attr("colspan",p)}}}}function G(t){var n=Le(t,"aoPreDrawCallback","preDraw",[t]);if(-1===e.inArray(!1,n)){var r=[],o=0,a=t.asStripeClasses,s=a.length,l=(t.aoOpenRows.length,t.oLanguage),c=t.iInitDisplayStart,u="ssp"==Fe(t),d=t.aiDisplay;t.bDrawing=!0,c!==i&&-1!==c&&(t._iDisplayStart=u?c:c>=t.fnRecordsDisplay()?0:c,t.iInitDisplayStart=-1);var h=t._iDisplayStart,p=t.fnDisplayEnd();if(t.bDeferLoading)t.bDeferLoading=!1,t.iDraw++,pe(t,!1);else if(u){if(!t.bDestroying&&!W(t))return}else t.iDraw++;if(0!==d.length)for(var f=u?0:h,m=u?t.aoData.length:p,v=f;v<m;v++){var b=d[v],y=t.aoData[b];null===y.nTr&&N(t,b);var _=y.nTr;if(0!==s){var w=a[o%s];y._sRowStripe!=w&&(e(_).removeClass(y._sRowStripe).addClass(w),y._sRowStripe=w)}Le(t,"aoRowCallback",null,[_,y._aData,o,v]),r.push(_),o++}else{var A=l.sZeroRecords;1==t.iDraw&&"ajax"==Fe(t)?A=l.sLoadingRecords:l.sEmptyTable&&0===t.fnRecordsTotal()&&(A=l.sEmptyTable),r[0]=e("<tr/>",{class:s?a[0]:""}).append(e("<td />",{valign:"top",colSpan:g(t),class:t.oClasses.sRowEmpty}).html(A))[0]}Le(t,"aoHeaderCallback","header",[e(t.nTHead).children("tr")[0],I(t),h,p,d]),Le(t,"aoFooterCallback","footer",[e(t.nTFoot).children("tr")[0],I(t),h,p,d]);var C=e(t.nTBody);C.children().detach(),C.append(e(r)),Le(t,"aoDrawCallback","draw",[t]),t.bSorted=!1,t.bFiltered=!1,t.bDrawing=!1}else pe(t,!1)}function B(e,t){var n=e.oFeatures,i=n.bSort,r=n.bFilter;i&&Ce(e),r?K(e,e.oPreviousSearch):e.aiDisplay=e.aiDisplayMaster.slice(),!0!==t&&(e._iDisplayStart=0),e._drawHold=t,G(e),e._drawHold=!1}function F(t){var n=t.oClasses,i=e(t.nTable),r=e("<div/>").insertBefore(i),o=t.oFeatures,a=e("<div/>",{id:t.sTableId+"_wrapper",class:n.sWrapper+(t.nTFoot?"":" "+n.sNoFooter)});t.nHolding=r[0],t.nTableWrapper=a[0],t.nTableReinsertBefore=t.nTable.nextSibling;for(var s,l,c,u,d,h,p=t.sDom.split(""),f=0;f<p.length;f++){if(s=null,"<"==(l=p[f])){if(c=e("<div/>")[0],"'"==(u=p[f+1])||'"'==u){for(d="",h=2;p[f+h]!=u;)d+=p[f+h],h++;if("H"==d?d=n.sJUIHeader:"F"==d&&(d=n.sJUIFooter),-1!=d.indexOf(".")){var m=d.split(".");c.id=m[0].substr(1,m[0].length-1),c.className=m[1]}else"#"==d.charAt(0)?c.id=d.substr(1,d.length-1):c.className=d;f+=h}a.append(c),a=e(c)}else if(">"==l)a=a.parent();else if("l"==l&&o.bPaginate&&o.bLengthChange)s=ce(t);else if("f"==l&&o.bFilter)s=Y(t);else if("r"==l&&o.bProcessing)s=he(t);else if("t"==l)s=fe(t);else if("i"==l&&o.bInfo)s=ie(t);else if("p"==l&&o.bPaginate)s=ue(t);else if(0!==Ye.ext.feature.length)for(var g=Ye.ext.feature,v=0,b=g.length;v<b;v++)if(l==g[v].cFeature){s=g[v].fnInit(t);break}if(s){var y=t.aanFeatures;y[l]||(y[l]=[]),y[l].push(s),a.append(s)}}r.replaceWith(a),t.nHolding=null}function H(t,n){var i,r,o,a,s,l,c,u,d,h,p,f=e(n).children("tr");for(t.splice(0,t.length),o=0,l=f.length;o<l;o++)t.push([]);for(o=0,l=f.length;o<l;o++)for(u=0,r=(i=f[o]).firstChild;r;){if("TD"==r.nodeName.toUpperCase()||"TH"==r.nodeName.toUpperCase())for(d=1*r.getAttribute("colspan"),h=1*r.getAttribute("rowspan"),d=d&&0!==d&&1!==d?d:1,h=h&&0!==h&&1!==h?h:1,c=function(e,t,n){for(var i=e[t];i[n];)n++;return n}(t,o,u),p=1===d,s=0;s<d;s++)for(a=0;a<h;a++)t[o+a][c+s]={cell:r,unique:p},t[o+a].nTr=i;r=r.nextSibling}}function U(e,t,n){var i=[];n||(n=e.aoHeader,t&&H(n=[],t));for(var r=0,o=n.length;r<o;r++)for(var a=0,s=n[r].length;a<s;a++)!n[r][a].unique||i[a]&&e.bSortCellsTop||(i[a]=n[r][a].cell);return i}function j(t,n,i){if(Le(t,"aoServerParams","serverParams",[n]),n&&e.isArray(n)){var r={},o=/(.*?)\[\]$/;e.each(n,function(e,t){var n=t.name.match(o);if(n){var i=n[0];r[i]||(r[i]=[]),r[i].push(t.value)}else r[t.name]=t.value}),n=r}var a,s=t.ajax,l=t.oInstance,c=function(e){Le(t,null,"xhr",[t,e,t.jqXHR]),i(e)};if(e.isPlainObject(s)&&s.data){a=s.data;var u=e.isFunction(a)?a(n,t):a;n=e.isFunction(a)&&u?u:e.extend(!0,n,u),delete s.data}var d={data:n,success:function(e){var n=e.error||e.sError;n&&Pe(t,0,n),t.json=e,c(e)},dataType:"json",cache:!1,type:t.sServerMethod,error:function(n,i,r){var o=Le(t,null,"xhr",[t,null,t.jqXHR]);-1===e.inArray(!0,o)&&("parsererror"==i?Pe(t,0,"Invalid JSON response",1):4===n.readyState&&Pe(t,0,"Ajax error",7)),pe(t,!1)}};t.oAjaxData=n,Le(t,null,"preXhr",[t,n]),t.fnServerData?t.fnServerData.call(l,t.sAjaxSource,e.map(n,function(e,t){return{name:t,value:e}}),c,t):t.sAjaxSource||"string"==typeof s?t.jqXHR=e.ajax(e.extend(d,{url:s||t.sAjaxSource})):e.isFunction(s)?t.jqXHR=s.call(l,n,c,t):(t.jqXHR=e.ajax(e.extend(d,s)),s.data=a)}function W(e){return!e.bAjaxDataGet||(e.iDraw++,pe(e,!0),j(e,z(e),function(t){q(e,t)}),!1)}function z(t){var n,i,r,o,a=t.aoColumns,s=a.length,l=t.oFeatures,c=t.oPreviousSearch,u=t.aoPreSearchCols,d=[],h=Ae(t),p=t._iDisplayStart,f=!1!==l.bPaginate?t._iDisplayLength:-1,m=function(e,t){d.push({name:e,value:t})};m("sEcho",t.iDraw),m("iColumns",s),m("sColumns",st(a,"sName").join(",")),m("iDisplayStart",p),m("iDisplayLength",f);var g={draw:t.iDraw,columns:[],order:[],start:p,length:f,search:{value:c.sSearch,regex:c.bRegex}};for(n=0;n<s;n++)r=a[n],o=u[n],i="function"==typeof r.mData?"function":r.mData,g.columns.push({data:i,name:r.sName,searchable:r.bSearchable,orderable:r.bSortable,search:{value:o.sSearch,regex:o.bRegex}}),m("mDataProp_"+n,i),l.bFilter&&(m("sSearch_"+n,o.sSearch),m("bRegex_"+n,o.bRegex),m("bSearchable_"+n,r.bSearchable)),l.bSort&&m("bSortable_"+n,r.bSortable);l.bFilter&&(m("sSearch",c.sSearch),m("bRegex",c.bRegex)),l.bSort&&(e.each(h,function(e,t){g.order.push({column:t.col,dir:t.dir}),m("iSortCol_"+e,t.col),m("sSortDir_"+e,t.dir)}),m("iSortingCols",h.length));var v=Ye.ext.legacy.ajax;return null===v?t.sAjaxSource?d:g:v?d:g}function q(e,t){var n=function(e,n){return t[e]!==i?t[e]:t[n]},r=V(e,t),o=n("sEcho","draw"),a=n("iTotalRecords","recordsTotal"),s=n("iTotalDisplayRecords","recordsFiltered");if(o){if(1*o<e.iDraw)return;e.iDraw=1*o}k(e),e._iRecordsTotal=parseInt(a,10),e._iRecordsDisplay=parseInt(s,10);for(var l=0,c=r.length;l<c;l++)_(e,r[l]);e.aiDisplay=e.aiDisplayMaster.slice(),e.bAjaxDataGet=!1,G(e),e._bInitComplete||se(e,t),e.bAjaxDataGet=!0,pe(e,!1)}function V(t,n){var r=e.isPlainObject(t.ajax)&&t.ajax.dataSrc!==i?t.ajax.dataSrc:t.sAjaxDataProp;return"data"===r?n.aaData||n[r]:""!==r?T(r)(n):n}function Y(t){var i=t.oClasses,r=t.sTableId,o=t.oLanguage,a=t.oPreviousSearch,s=t.aanFeatures,l='<input type="search" class="'+i.sFilterInput+'"/>',c=o.sSearch;c=c.match(/_INPUT_/)?c.replace("_INPUT_",l):c+l;var u=e("<div/>",{id:s.f?null:r+"_filter",class:i.sFilter}).append(e("<label/>").append(c)),d=function(){s.f;var e=this.value?this.value:"";e!=a.sSearch&&(K(t,{sSearch:e,bRegex:a.bRegex,bSmart:a.bSmart,bCaseInsensitive:a.bCaseInsensitive}),t._iDisplayStart=0,G(t))},h=null!==t.searchDelay?t.searchDelay:"ssp"===Fe(t)?400:0,p=e("input",u).val(a.sSearch).attr("placeholder",o.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",h?wt(d,h):d).on("keypress.DT",function(e){if(13==e.keyCode)return!1}).attr("aria-controls",r);return e(t.nTable).on("search.dt.DT",function(e,i){if(t===i)try{p[0]!==n.activeElement&&p.val(a.sSearch)}catch(e){}}),u[0]}function K(e,t,n){var r=e.oPreviousSearch,o=e.aoPreSearchCols,a=function(e){r.sSearch=e.sSearch,r.bRegex=e.bRegex,r.bSmart=e.bSmart,r.bCaseInsensitive=e.bCaseInsensitive},s=function(e){return e.bEscapeRegex!==i?!e.bEscapeRegex:e.bRegex};if(b(e),"ssp"!=Fe(e)){Z(e,t.sSearch,n,s(t),t.bSmart,t.bCaseInsensitive),a(t);for(var l=0;l<o.length;l++)X(e,o[l].sSearch,l,s(o[l]),o[l].bSmart,o[l].bCaseInsensitive);Q(e)}else a(t);e.bFiltered=!0,Le(e,null,"search",[e])}function Q(t){for(var n,i,r=Ye.ext.search,o=t.aiDisplay,a=0,s=r.length;a<s;a++){for(var l=[],c=0,u=o.length;c<u;c++)i=o[c],n=t.aoData[i],r[a](t,n._aFilterData,i,n._aData,c)&&l.push(i);o.length=0,e.merge(o,l)}}function X(e,t,n,i,r,o){if(""!==t){for(var a,s=[],l=e.aiDisplay,c=J(t,i,r,o),u=0;u<l.length;u++)a=e.aoData[l[u]]._aFilterData[n],c.test(a)&&s.push(l[u]);e.aiDisplay=s}}function Z(e,t,n,i,r,o){var a,s,l,c=J(t,i,r,o),u=e.oPreviousSearch.sSearch,d=e.aiDisplayMaster,h=[];if(0!==Ye.ext.search.length&&(n=!0),s=ee(e),t.length<=0)e.aiDisplay=d.slice();else{for((s||n||u.length>t.length||0!==t.indexOf(u)||e.bSorted)&&(e.aiDisplay=d.slice()),a=e.aiDisplay,l=0;l<a.length;l++)c.test(e.aoData[a[l]]._sFilterRow)&&h.push(a[l]);e.aiDisplay=h}}function J(t,n,i,r){return t=n?t:vt(t),i&&(t="^(?=.*?"+e.map(t.match(/"[^"]+"|[^ ]+/g)||[""],function(e){if('"'===e.charAt(0)){var t=e.match(/^"(.*)"$/);e=t?t[1]:e}return e.replace('"',"")}).join(")(?=.*?")+").*$"),new RegExp(t,r?"i":"")}function ee(e){var t,n,i,r,o,a,s,l,c=e.aoColumns,u=Ye.ext.type.search,d=!1;for(n=0,r=e.aoData.length;n<r;n++)if(!(l=e.aoData[n])._aFilterData){for(a=[],i=0,o=c.length;i<o;i++)(t=c[i]).bSearchable?(s=x(e,n,i,"filter"),u[t.sType]&&(s=u[t.sType](s)),null===s&&(s=""),"string"!=typeof s&&s.toString&&(s=s.toString())):s="",s.indexOf&&-1!==s.indexOf("&")&&(bt.innerHTML=s,s=yt?bt.textContent:bt.innerText),s.replace&&(s=s.replace(/[\r\n]/g,"")),a.push(s);l._aFilterData=a,l._sFilterRow=a.join("  "),d=!0}return d}function te(e){return{search:e.sSearch,smart:e.bSmart,regex:e.bRegex,caseInsensitive:e.bCaseInsensitive}}function ne(e){return{sSearch:e.search,bSmart:e.smart,bRegex:e.regex,bCaseInsensitive:e.caseInsensitive}}function ie(t){var n=t.sTableId,i=t.aanFeatures.i,r=e("<div/>",{class:t.oClasses.sInfo,id:i?null:n+"_info"});return i||(t.aoDrawCallback.push({fn:re,sName:"information"}),r.attr("role","status").attr("aria-live","polite"),e(t.nTable).attr("aria-describedby",n+"_info")),r[0]}function re(t){var n=t.aanFeatures.i;if(0!==n.length){var i=t.oLanguage,r=t._iDisplayStart+1,o=t.fnDisplayEnd(),a=t.fnRecordsTotal(),s=t.fnRecordsDisplay(),l=s?i.sInfo:i.sInfoEmpty;s!==a&&(l+=" "+i.sInfoFiltered),l=oe(t,l+=i.sInfoPostFix);var c=i.fnInfoCallback;null!==c&&(l=c.call(t.oInstance,t,r,o,a,s,l)),e(n).html(l)}}function oe(e,t){var n=e.fnFormatNumber,i=e._iDisplayStart+1,r=e._iDisplayLength,o=e.fnRecordsDisplay(),a=-1===r;return t.replace(/_START_/g,n.call(e,i)).replace(/_END_/g,n.call(e,e.fnDisplayEnd())).replace(/_MAX_/g,n.call(e,e.fnRecordsTotal())).replace(/_TOTAL_/g,n.call(e,o)).replace(/_PAGE_/g,n.call(e,a?1:Math.ceil(i/r))).replace(/_PAGES_/g,n.call(e,a?1:Math.ceil(o/r)))}function ae(e){var t,n,i,r=e.iInitDisplayStart,o=e.aoColumns,a=e.oFeatures,s=e.bDeferLoading;if(e.bInitialised){for(F(e),R(e),L(e,e.aoHeader),L(e,e.aoFooter),pe(e,!0),a.bAutoWidth&&ve(e),t=0,n=o.length;t<n;t++)(i=o[t]).sWidth&&(i.nTh.style.width=we(i.sWidth));Le(e,null,"preInit",[e]),B(e);var l=Fe(e);("ssp"!=l||s)&&("ajax"==l?j(e,[],function(n){var i=V(e,n);for(t=0;t<i.length;t++)_(e,i[t]);e.iInitDisplayStart=r,B(e),pe(e,!1),se(e,n)},e):(pe(e,!1),se(e)))}else setTimeout(function(){ae(e)},200)}function se(e,t){e._bInitComplete=!0,(t||e.oInit.aaData)&&p(e),Le(e,null,"plugin-init",[e,t]),Le(e,"aoInitComplete","init",[e,t])}function le(e,t){var n=parseInt(t,10);e._iDisplayLength=n,Ge(e),Le(e,null,"length",[e,n])}function ce(t){for(var n=t.oClasses,i=t.sTableId,r=t.aLengthMenu,o=e.isArray(r[0]),a=o?r[0]:r,s=o?r[1]:r,l=e("<select/>",{name:i+"_length","aria-controls":i,class:n.sLengthSelect}),c=0,u=a.length;c<u;c++)l[0][c]=new Option(s[c],a[c]);var d=e("<div><label/></div>").addClass(n.sLength);return t.aanFeatures.l||(d[0].id=i+"_length"),d.children().append(t.oLanguage.sLengthMenu.replace("_MENU_",l[0].outerHTML)),e("select",d).val(t._iDisplayLength).on("change.DT",function(n){le(t,e(this).val()),G(t)}),e(t.nTable).on("length.dt.DT",function(n,i,r){t===i&&e("select",d).val(r)}),d[0]}function ue(t){var n=t.sPaginationType,i=Ye.ext.pager[n],r="function"==typeof i,o=function(e){G(e)},a=e("<div/>").addClass(t.oClasses.sPaging+n)[0],s=t.aanFeatures;return r||i.fnInit(t,a,o),s.p||(a.id=t.sTableId+"_paginate",t.aoDrawCallback.push({fn:function(e){if(r){var t,n,a=e._iDisplayStart,l=e._iDisplayLength,c=e.fnRecordsDisplay(),u=-1===l,d=u?0:Math.ceil(a/l),h=u?1:Math.ceil(c/l),p=i(d,h);for(t=0,n=s.p.length;t<n;t++)Be(e,"pageButton")(e,s.p[t],t,p,d,h)}else i.fnUpdate(e,o)},sName:"pagination"})),a}function de(e,t,n){var i=e._iDisplayStart,r=e._iDisplayLength,o=e.fnRecordsDisplay();0===o||-1===r?i=0:"number"==typeof t?(i=t*r)>o&&(i=0):"first"==t?i=0:"previous"==t?(i=r>=0?i-r:0)<0&&(i=0):"next"==t?i+r<o&&(i+=r):"last"==t?i=Math.floor((o-1)/r)*r:Pe(e,0,"Unknown paging action: "+t,5);var a=e._iDisplayStart!==i;return e._iDisplayStart=i,a&&(Le(e,null,"page",[e]),n&&G(e)),a}function he(t){return e("<div/>",{id:t.aanFeatures.r?null:t.sTableId+"_processing",class:t.oClasses.sProcessing}).html(t.oLanguage.sProcessing).insertBefore(t.nTable)[0]}function pe(t,n){t.oFeatures.bProcessing&&e(t.aanFeatures.r).css("display",n?"block":"none"),Le(t,null,"processing",[t,n])}function fe(t){var n=e(t.nTable);n.attr("role","grid");var i=t.oScroll;if(""===i.sX&&""===i.sY)return t.nTable;var r=i.sX,o=i.sY,a=t.oClasses,s=n.children("caption"),l=s.length?s[0]._captionSide:null,c=e(n[0].cloneNode(!1)),u=e(n[0].cloneNode(!1)),d=n.children("tfoot"),h="<div/>",p=function(e){return e?we(e):null};d.length||(d=null);var f=e(h,{class:a.sScrollWrapper}).append(e(h,{class:a.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:r?p(r):"100%"}).append(e(h,{class:a.sScrollHeadInner}).css({"box-sizing":"content-box",width:i.sXInner||"100%"}).append(c.removeAttr("id").css("margin-left",0).append("top"===l?s:null).append(n.children("thead"))))).append(e(h,{class:a.sScrollBody}).css({position:"relative",overflow:"auto",width:p(r)}).append(n));d&&f.append(e(h,{class:a.sScrollFoot}).css({overflow:"hidden",border:0,width:r?p(r):"100%"}).append(e(h,{class:a.sScrollFootInner}).append(u.removeAttr("id").css("margin-left",0).append("bottom"===l?s:null).append(n.children("tfoot")))));var m=f.children(),g=m[0],v=m[1],b=d?m[2]:null;return r&&e(v).on("scroll.DT",function(e){var t=this.scrollLeft;g.scrollLeft=t,d&&(b.scrollLeft=t)}),e(v).css(o&&i.bCollapse?"max-height":"height",o),t.nScrollHead=g,t.nScrollBody=v,t.nScrollFoot=b,t.aoDrawCallback.push({fn:me,sName:"scrolling"}),f[0]}function me(t){var n,r,o,a,s,l,c,u,d,h=t.oScroll,m=h.sX,g=h.sXInner,v=h.sY,b=h.iBarWidth,y=e(t.nScrollHead),_=y[0].style,w=y.children("div"),A=w[0].style,C=w.children("table"),x=t.nScrollBody,S=e(x),E=x.style,T=e(t.nScrollFoot).children("div"),D=T.children("table"),I=e(t.nTHead),k=e(t.nTable),M=k[0],P=M.style,$=t.nTFoot?e(t.nTFoot):null,N=t.oBrowser,O=N.bScrollOversize,R=st(t.aoColumns,"nTh"),L=[],G=[],B=[],F=[],H=function(e){var t=e.style;t.paddingTop="0",t.paddingBottom="0",t.borderTopWidth="0",t.borderBottomWidth="0",t.height=0},j=x.scrollHeight>x.clientHeight;if(t.scrollBarVis!==j&&t.scrollBarVis!==i)return t.scrollBarVis=j,void p(t);t.scrollBarVis=j,k.children("thead, tfoot").remove(),$&&(l=$.clone().prependTo(k),r=$.find("tr"),a=l.find("tr")),s=I.clone().prependTo(k),n=I.find("tr"),o=s.find("tr"),s.find("th, td").removeAttr("tabindex"),m||(E.width="100%",y[0].style.width="100%"),e.each(U(t,s),function(e,n){c=f(t,e),n.style.width=t.aoColumns[c].sWidth}),$&&ge(function(e){e.style.width=""},a),d=k.outerWidth(),""===m?(P.width="100%",O&&(k.find("tbody").height()>x.offsetHeight||"scroll"==S.css("overflow-y"))&&(P.width=we(k.outerWidth()-b)),d=k.outerWidth()):""!==g&&(P.width=we(g),d=k.outerWidth()),ge(H,o),ge(function(t){B.push(t.innerHTML),L.push(we(e(t).css("width")))},o),ge(function(t,n){-1!==e.inArray(t,R)&&(t.style.width=L[n])},n),e(o).height(0),$&&(ge(H,a),ge(function(t){F.push(t.innerHTML),G.push(we(e(t).css("width")))},a),ge(function(e,t){e.style.width=G[t]},r),e(a).height(0)),ge(function(e,t){e.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+B[t]+"</div>",e.style.width=L[t]},o),$&&ge(function(e,t){e.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+F[t]+"</div>",e.style.width=G[t]},a),k.outerWidth()<d?(u=x.scrollHeight>x.offsetHeight||"scroll"==S.css("overflow-y")?d+b:d,O&&(x.scrollHeight>x.offsetHeight||"scroll"==S.css("overflow-y"))&&(P.width=we(u-b)),""!==m&&""===g||Pe(t,1,"Possible column misalignment",6)):u="100%",E.width=we(u),_.width=we(u),$&&(t.nScrollFoot.style.width=we(u)),v||O&&(E.height=we(M.offsetHeight+b));var W=k.outerWidth();C[0].style.width=we(W),A.width=we(W);var z=k.height()>x.clientHeight||"scroll"==S.css("overflow-y"),q="padding"+(N.bScrollbarLeft?"Left":"Right");A[q]=z?b+"px":"0px",$&&(D[0].style.width=we(W),T[0].style.width=we(W),T[0].style[q]=z?b+"px":"0px"),k.children("colgroup").insertBefore(k.children("thead")),S.scroll(),!t.bSorted&&!t.bFiltered||t._drawHold||(x.scrollTop=0)}function ge(e,t,n){for(var i,r,o=0,a=0,s=t.length;a<s;){for(i=t[a].firstChild,r=n?n[a].firstChild:null;i;)1===i.nodeType&&(n?e(i,r,o):e(i,o),o++),i=i.nextSibling,r=n?r.nextSibling:null;a++}}function ve(n){var i,r,o,a=n.nTable,s=n.aoColumns,l=n.oScroll,c=l.sY,u=l.sX,d=l.sXInner,h=s.length,m=v(n,"bVisible"),b=e("th",n.nTHead),y=a.getAttribute("width"),_=a.parentNode,w=!1,A=n.oBrowser,C=A.bScrollOversize,x=a.style.width;for(x&&-1!==x.indexOf("%")&&(y=x),i=0;i<m.length;i++)null!==(r=s[m[i]]).sWidth&&(r.sWidth=be(r.sWidthOrig,_),w=!0);if(C||!w&&!u&&!c&&h==g(n)&&h==b.length)for(i=0;i<h;i++){var S=f(n,i);null!==S&&(s[S].sWidth=we(b.eq(i).width()))}else{var E=e(a).clone().css("visibility","hidden").removeAttr("id");E.find("tbody tr").remove();var T=e("<tr/>").appendTo(E.find("tbody"));for(E.find("thead, tfoot").remove(),E.append(e(n.nTHead).clone()).append(e(n.nTFoot).clone()),E.find("tfoot th, tfoot td").css("width",""),b=U(n,E.find("thead")[0]),i=0;i<m.length;i++)r=s[m[i]],b[i].style.width=null!==r.sWidthOrig&&""!==r.sWidthOrig?we(r.sWidthOrig):"",r.sWidthOrig&&u&&e(b[i]).append(e("<div/>").css({width:r.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(n.aoData.length)for(i=0;i<m.length;i++)r=s[o=m[i]],e(ye(n,o)).clone(!1).append(r.sContentPadding).appendTo(T);e("[name]",E).removeAttr("name");var D=e("<div/>").css(u||c?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(E).appendTo(_);u&&d?E.width(d):u?(E.css("width","auto"),E.removeAttr("width"),E.width()<_.clientWidth&&y&&E.width(_.clientWidth)):c?E.width(_.clientWidth):y&&E.width(y);var I=0;for(i=0;i<m.length;i++){var k=e(b[i]),M=k.outerWidth()-k.width(),P=A.bBounding?Math.ceil(b[i].getBoundingClientRect().width):k.outerWidth();I+=P,s[m[i]].sWidth=we(P-M)}a.style.width=we(I),D.remove()}if(y&&(a.style.width=we(y)),(y||u)&&!n._reszEvt){var $=function(){e(t).on("resize.DT-"+n.sInstance,wt(function(){p(n)}))};C?setTimeout($,1e3):$(),n._reszEvt=!0}}function be(t,i){if(!t)return 0;var r=e("<div/>").css("width",we(t)).appendTo(i||n.body),o=r[0].offsetWidth;return r.remove(),o}function ye(t,n){var i=_e(t,n);if(i<0)return null;var r=t.aoData[i];return r.nTr?r.anCells[n]:e("<td/>").html(x(t,i,n,"display"))[0]}function _e(e,t){for(var n,i=-1,r=-1,o=0,a=e.aoData.length;o<a;o++)(n=(n=(n=x(e,o,t,"display")+"").replace(_t,"")).replace(/&nbsp;/g," ")).length>i&&(i=n.length,r=o);return r}function we(e){return null===e?"0px":"number"==typeof e?e<0?"0px":e+"px":e.match(/\d$/)?e+"px":e}function Ae(t){var n,r,o,a,s,l,c,u=[],d=t.aoColumns,h=t.aaSortingFixed,p=e.isPlainObject(h),f=[],m=function(t){t.length&&!e.isArray(t[0])?f.push(t):e.merge(f,t)};for(e.isArray(h)&&m(h),p&&h.pre&&m(h.pre),m(t.aaSorting),p&&h.post&&m(h.post),n=0;n<f.length;n++)for(r=0,o=(a=d[c=f[n][0]].aDataSort).length;r<o;r++)l=d[s=a[r]].sType||"string",f[n]._idx===i&&(f[n]._idx=e.inArray(f[n][1],d[s].asSorting)),u.push({src:c,col:s,dir:f[n][1],index:f[n]._idx,type:l,formatter:Ye.ext.type.order[l+"-pre"]});return u}function Ce(e){var t,n,i,r,o,a=[],s=Ye.ext.type.order,l=e.aoData,c=(e.aoColumns,0),u=e.aiDisplayMaster;for(b(e),t=0,n=(o=Ae(e)).length;t<n;t++)(r=o[t]).formatter&&c++,De(e,r.col);if("ssp"!=Fe(e)&&0!==o.length){for(t=0,i=u.length;t<i;t++)a[u[t]]=t;c===o.length?u.sort(function(e,t){var n,i,r,s,c,u=o.length,d=l[e]._aSortData,h=l[t]._aSortData;for(r=0;r<u;r++)if(c=o[r],n=d[c.col],i=h[c.col],0!==(s=n<i?-1:n>i?1:0))return"asc"===c.dir?s:-s;return n=a[e],i=a[t],n<i?-1:n>i?1:0}):u.sort(function(e,t){var n,i,r,c,u,d,h=o.length,p=l[e]._aSortData,f=l[t]._aSortData;for(r=0;r<h;r++)if(u=o[r],n=p[u.col],i=f[u.col],d=s[u.type+"-"+u.dir]||s["string-"+u.dir],0!==(c=d(n,i)))return c;return n=a[e],i=a[t],n<i?-1:n>i?1:0})}e.bSorted=!0}function xe(e){for(var t,n,i=e.aoColumns,r=Ae(e),o=e.oLanguage.oAria,a=0,s=i.length;a<s;a++){var l=i[a],c=l.asSorting,u=l.sTitle.replace(/<.*?>/g,""),d=l.nTh;d.removeAttribute("aria-sort"),l.bSortable?(r.length>0&&r[0].col==a?(d.setAttribute("aria-sort","asc"==r[0].dir?"ascending":"descending"),n=c[r[0].index+1]||c[0]):n=c[0],t=u+("asc"===n?o.sSortAscending:o.sSortDescending)):t=u,d.setAttribute("aria-label",t)}}function Se(t,n,r,o){var a,s=t.aoColumns[n],l=t.aaSorting,c=s.asSorting,u=function(t,n){var r=t._idx;return r===i&&(r=e.inArray(t[1],c)),r+1<c.length?r+1:n?null:0};if("number"==typeof l[0]&&(l=t.aaSorting=[l]),r&&t.oFeatures.bSortMulti){var d=e.inArray(n,st(l,"0"));-1!==d?(null===(a=u(l[d],!0))&&1===l.length&&(a=0),null===a?l.splice(d,1):(l[d][1]=c[a],l[d]._idx=a)):(l.push([n,c[0],0]),l[l.length-1]._idx=0)}else l.length&&l[0][0]==n?(a=u(l[0]),l.length=1,l[0][1]=c[a],l[0]._idx=a):(l.length=0,l.push([n,c[0]]),l[0]._idx=0);B(t),"function"==typeof o&&o(t)}function Ee(e,t,n,i){var r=e.aoColumns[n];Oe(t,{},function(t){!1!==r.bSortable&&(e.oFeatures.bProcessing?(pe(e,!0),setTimeout(function(){Se(e,n,t.shiftKey,i),"ssp"!==Fe(e)&&pe(e,!1)},0)):Se(e,n,t.shiftKey,i))})}function Te(t){var n,i,r,o=t.aLastSort,a=t.oClasses.sSortColumn,s=Ae(t),l=t.oFeatures;if(l.bSort&&l.bSortClasses){for(n=0,i=o.length;n<i;n++)r=o[n].src,e(st(t.aoData,"anCells",r)).removeClass(a+(n<2?n+1:3));for(n=0,i=s.length;n<i;n++)r=s[n].src,e(st(t.aoData,"anCells",r)).addClass(a+(n<2?n+1:3))}t.aLastSort=s}function De(e,t){var n,i=e.aoColumns[t],r=Ye.ext.order[i.sSortDataType];r&&(n=r.call(e.oInstance,e,t,m(e,t)));for(var o,a,s=Ye.ext.type.order[i.sType+"-pre"],l=0,c=e.aoData.length;l<c;l++)(o=e.aoData[l])._aSortData||(o._aSortData=[]),o._aSortData[t]&&!r||(a=r?n[l]:x(e,l,t,"sort"),o._aSortData[t]=s?s(a):a)}function Ie(t){if(t.oFeatures.bStateSave&&!t.bDestroying){var n={time:+new Date,start:t._iDisplayStart,length:t._iDisplayLength,order:e.extend(!0,[],t.aaSorting),search:te(t.oPreviousSearch),columns:e.map(t.aoColumns,function(e,n){return{visible:e.bVisible,search:te(t.aoPreSearchCols[n])}})};Le(t,"aoStateSaveParams","stateSaveParams",[t,n]),t.oSavedState=n,t.fnStateSaveCallback.call(t.oInstance,t,n)}}function ke(t,n,r){var o,a,s=t.aoColumns,l=function(n){if(n&&n.time){var l=Le(t,"aoStateLoadParams","stateLoadParams",[t,n]);if(-1===e.inArray(!1,l)){var c=t.iStateDuration;if(c>0&&n.time<+new Date-1e3*c)r();else if(n.columns&&s.length!==n.columns.length)r();else{if(t.oLoadedState=e.extend(!0,{},n),n.start!==i&&(t._iDisplayStart=n.start,t.iInitDisplayStart=n.start),n.length!==i&&(t._iDisplayLength=n.length),n.order!==i&&(t.aaSorting=[],e.each(n.order,function(e,n){t.aaSorting.push(n[0]>=s.length?[0,n[1]]:n)})),n.search!==i&&e.extend(t.oPreviousSearch,ne(n.search)),n.columns)for(o=0,a=n.columns.length;o<a;o++){var u=n.columns[o];u.visible!==i&&(s[o].bVisible=u.visible),u.search!==i&&e.extend(t.aoPreSearchCols[o],ne(u.search))}Le(t,"aoStateLoaded","stateLoaded",[t,n]),r()}}else r()}else r()};if(t.oFeatures.bStateSave){var c=t.fnStateLoadCallback.call(t.oInstance,t,l);c!==i&&l(c)}else r()}function Me(t){var n=Ye.settings,i=e.inArray(t,st(n,"nTable"));return-1!==i?n[i]:null}function Pe(e,n,i,r){if(i="DataTables warning: "+(e?"table id="+e.sTableId+" - ":"")+i,r&&(i+=". For more information about this error, please see http://datatables.net/tn/"+r),n)t.console&&console.log&&console.log(i);else{var o=Ye.ext,a=o.sErrMode||o.errMode;if(e&&Le(e,null,"error",[e,r,i]),"alert"==a)alert(i);else{if("throw"==a)throw new Error(i);"function"==typeof a&&a(e,r,i)}}}function $e(t,n,r,o){e.isArray(r)?e.each(r,function(i,r){e.isArray(r)?$e(t,n,r[0],r[1]):$e(t,n,r)}):(o===i&&(o=r),n[r]!==i&&(t[o]=n[r]))}function Ne(t,n,i){var r;for(var o in n)n.hasOwnProperty(o)&&(r=n[o],e.isPlainObject(r)?(e.isPlainObject(t[o])||(t[o]={}),e.extend(!0,t[o],r)):i&&"data"!==o&&"aaData"!==o&&e.isArray(r)?t[o]=r.slice():t[o]=r);return t}function Oe(t,n,i){e(t).on("click.DT",n,function(e){t.blur(),i(e)}).on("keypress.DT",n,function(e){13===e.which&&(e.preventDefault(),i(e))}).on("selectstart.DT",function(){return!1})}function Re(e,t,n,i){n&&e[t].push({fn:n,sName:i})}function Le(t,n,i,r){var o=[];if(n&&(o=e.map(t[n].slice().reverse(),function(e,n){return e.fn.apply(t.oInstance,r)})),null!==i){var a=e.Event(i+".dt");e(t.nTable).trigger(a,r),o.push(a.result)}return o}function Ge(e){var t=e._iDisplayStart,n=e.fnDisplayEnd(),i=e._iDisplayLength;t>=n&&(t=n-i),t-=t%i,(-1===i||t<0)&&(t=0),e._iDisplayStart=t}function Be(t,n){var i=t.renderer,r=Ye.ext.renderer[n];return e.isPlainObject(i)&&i[n]?r[i[n]]||r._:"string"==typeof i?r[i]||r._:r._}function Fe(e){return e.oFeatures.bServerSide?"ssp":e.ajax||e.sAjaxSource?"ajax":"dom"}function He(e,t){var n=[],i=Ht.numbers_length,r=Math.floor(i/2);return t<=i?n=ct(0,t):e<=r?((n=ct(0,i-2)).push("ellipsis"),n.push(t-1)):e>=t-1-r?((n=ct(t-(i-2),t)).splice(0,0,"ellipsis"),n.splice(0,0,0)):((n=ct(e-r+2,e+r-1)).push("ellipsis"),n.push(t-1),n.splice(0,0,"ellipsis"),n.splice(0,0,0)),n.DT_el="span",n}function Ue(t){e.each({num:function(e){return Ut(e,t)},"num-fmt":function(e){return Ut(e,t,et)},"html-num":function(e){return Ut(e,t,Xe)},"html-num-fmt":function(e){return Ut(e,t,Xe,et)}},function(e,n){We.type.order[e+t+"-pre"]=n,e.match(/^html\-/)&&(We.type.search[e+t]=We.type.search.html)})}function je(e){return function(){var t=[Me(this[Ye.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return Ye.ext.internal[e].apply(this,t)}}var We,ze,qe,Ve,Ye=function(t){this.$=function(e,t){return this.api(!0).$(e,t)},this._=function(e,t){return this.api(!0).rows(e,t).data()},this.api=function(e){return new ze(e?Me(this[We.iApiIndex]):this)},this.fnAddData=function(t,n){var r=this.api(!0),o=e.isArray(t)&&(e.isArray(t[0])||e.isPlainObject(t[0]))?r.rows.add(t):r.row.add(t);return(n===i||n)&&r.draw(),o.flatten().toArray()},this.fnAdjustColumnSizing=function(e){var t=this.api(!0).columns.adjust(),n=t.settings()[0],r=n.oScroll;e===i||e?t.draw(!1):""===r.sX&&""===r.sY||me(n)},this.fnClearTable=function(e){var t=this.api(!0).clear();(e===i||e)&&t.draw()},this.fnClose=function(e){this.api(!0).row(e).child.hide()},this.fnDeleteRow=function(e,t,n){var r=this.api(!0),o=r.rows(e),a=o.settings()[0],s=a.aoData[o[0][0]];return o.remove(),t&&t.call(this,a,s),(n===i||n)&&r.draw(),s},this.fnDestroy=function(e){this.api(!0).destroy(e)},this.fnDraw=function(e){this.api(!0).draw(e)},this.fnFilter=function(e,t,n,r,o,a){var s=this.api(!0);null===t||t===i?s.search(e,n,r,a):s.column(t).search(e,n,r,a),s.draw()},this.fnGetData=function(e,t){var n=this.api(!0);if(e!==i){var r=e.nodeName?e.nodeName.toLowerCase():"";return t!==i||"td"==r||"th"==r?n.cell(e,t).data():n.row(e).data()||null}return n.data().toArray()},this.fnGetNodes=function(e){var t=this.api(!0);return e!==i?t.row(e).node():t.rows().nodes().flatten().toArray()},this.fnGetPosition=function(e){var t=this.api(!0),n=e.nodeName.toUpperCase();if("TR"==n)return t.row(e).index();if("TD"==n||"TH"==n){var i=t.cell(e).index();return[i.row,i.columnVisible,i.column]}return null},this.fnIsOpen=function(e){return this.api(!0).row(e).child.isShown()},this.fnOpen=function(e,t,n){return this.api(!0).row(e).child(t,n).show().child()[0]},this.fnPageChange=function(e,t){var n=this.api(!0).page(e);(t===i||t)&&n.draw(!1)},this.fnSetColumnVis=function(e,t,n){var r=this.api(!0).column(e).visible(t);(n===i||n)&&r.columns.adjust().draw()},this.fnSettings=function(){return Me(this[We.iApiIndex])},this.fnSort=function(e){this.api(!0).order(e).draw()},this.fnSortListener=function(e,t,n){this.api(!0).order.listener(e,t,n)},this.fnUpdate=function(e,t,n,r,o){var a=this.api(!0);return n===i||null===n?a.row(t).data(e):a.cell(t,n).data(e),(o===i||o)&&a.columns.adjust(),(r===i||r)&&a.draw(),0},this.fnVersionCheck=We.fnVersionCheck;var n=this,r=t===i,u=this.length;r&&(t={}),this.oApi=this.internal=We.internal;for(var p in Ye.ext.internal)p&&(this[p]=je(p));return this.each(function(){var p,f={},m=u>1?Ne(f,t,!0):t,g=0,v=this.getAttribute("id"),b=!1,A=Ye.defaults,C=e(this);if("table"==this.nodeName.toLowerCase()){s(A),l(A.column),o(A,A,!0),o(A.column,A.column,!0),o(A,e.extend(m,C.data()));var x=Ye.settings;for(g=0,p=x.length;g<p;g++){var S=x[g];if(S.nTable==this||S.nTHead.parentNode==this||S.nTFoot&&S.nTFoot.parentNode==this){var E=m.bRetrieve!==i?m.bRetrieve:A.bRetrieve,D=m.bDestroy!==i?m.bDestroy:A.bDestroy;if(r||E)return S.oInstance;if(D){S.oInstance.fnDestroy();break}return void Pe(S,0,"Cannot reinitialise DataTable",3)}if(S.sTableId==this.id){x.splice(g,1);break}}null!==v&&""!==v||(v="DataTables_Table_"+Ye.ext._unique++,this.id=v);var I=e.extend(!0,{},Ye.models.oSettings,{sDestroyWidth:C[0].style.width,sInstance:v,sTableId:v});I.nTable=this,I.oApi=n.internal,I.oInit=m,x.push(I),I.oInstance=1===n.length?n:C.dataTable(),s(m),m.oLanguage&&a(m.oLanguage),m.aLengthMenu&&!m.iDisplayLength&&(m.iDisplayLength=e.isArray(m.aLengthMenu[0])?m.aLengthMenu[0][0]:m.aLengthMenu[0]),m=Ne(e.extend(!0,{},A),m),$e(I.oFeatures,m,["bPaginate","bLengthChange","bFilter","bSort","bSortMulti","bInfo","bProcessing","bAutoWidth","bSortClasses","bServerSide","bDeferRender"]),$e(I,m,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod","aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"],["bJQueryUI","bJUI"]]),$e(I.oScroll,m,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]),$e(I.oLanguage,m,"fnInfoCallback"),Re(I,"aoDrawCallback",m.fnDrawCallback,"user"),Re(I,"aoServerParams",m.fnServerParams,"user"),Re(I,"aoStateSaveParams",m.fnStateSaveParams,"user"),Re(I,"aoStateLoadParams",m.fnStateLoadParams,"user"),Re(I,"aoStateLoaded",m.fnStateLoaded,"user"),Re(I,"aoRowCallback",m.fnRowCallback,"user"),Re(I,"aoRowCreatedCallback",m.fnCreatedRow,"user"),Re(I,"aoHeaderCallback",m.fnHeaderCallback,"user"),Re(I,"aoFooterCallback",m.fnFooterCallback,"user"),Re(I,"aoInitComplete",m.fnInitComplete,"user"),Re(I,"aoPreDrawCallback",m.fnPreDrawCallback,"user"),I.rowIdFn=T(m.rowId),c(I);var k=I.oClasses;if(m.bJQueryUI?(e.extend(k,Ye.ext.oJUIClasses,m.oClasses),m.sDom===A.sDom&&"lfrtip"===A.sDom&&(I.sDom='<"H"lfr>t<"F"ip>'),I.renderer?e.isPlainObject(I.renderer)&&!I.renderer.header&&(I.renderer.header="jqueryui"):I.renderer="jqueryui"):e.extend(k,Ye.ext.classes,m.oClasses),C.addClass(k.sTable),I.iInitDisplayStart===i&&(I.iInitDisplayStart=m.iDisplayStart,I._iDisplayStart=m.iDisplayStart),null!==m.iDeferLoading){I.bDeferLoading=!0;var M=e.isArray(m.iDeferLoading);I._iRecordsDisplay=M?m.iDeferLoading[0]:m.iDeferLoading,I._iRecordsTotal=M?m.iDeferLoading[1]:m.iDeferLoading}var P=I.oLanguage;e.extend(!0,P,m.oLanguage),P.sUrl&&(e.ajax({dataType:"json",url:P.sUrl,success:function(t){a(t),o(A.oLanguage,t),e.extend(!0,P,t),ae(I)},error:function(){ae(I)}}),b=!0),null===m.asStripeClasses&&(I.asStripeClasses=[k.sStripeOdd,k.sStripeEven]);var $=I.asStripeClasses,N=C.children("tbody").find("tr").eq(0);-1!==e.inArray(!0,e.map($,function(e,t){return N.hasClass(e)}))&&(e("tbody tr",this).removeClass($.join(" ")),I.asDestroyStripes=$.slice());var O,R=[],L=this.getElementsByTagName("thead");if(0!==L.length&&(H(I.aoHeader,L[0]),R=U(I)),null===m.aoColumns)for(O=[],g=0,p=R.length;g<p;g++)O.push(null);else O=m.aoColumns;for(g=0,p=O.length;g<p;g++)d(I,R?R[g]:null);if(y(I,m.aoColumnDefs,O,function(e,t){h(I,e,t)}),N.length){var G=function(e,t){return null!==e.getAttribute("data-"+t)?t:null};e(N[0]).children("th, td").each(function(e,t){var n=I.aoColumns[e];if(n.mData===e){var r=G(t,"sort")||G(t,"order"),o=G(t,"filter")||G(t,"search");null===r&&null===o||(n.mData={_:e+".display",sort:null!==r?e+".@data-"+r:i,type:null!==r?e+".@data-"+r:i,filter:null!==o?e+".@data-"+o:i},h(I,e))}})}var B=I.oFeatures,F=function(){if(m.aaSorting===i){var t=I.aaSorting;for(g=0,p=t.length;g<p;g++)t[g][1]=I.aoColumns[g].asSorting[0]}Te(I),B.bSort&&Re(I,"aoDrawCallback",function(){if(I.bSorted){var t=Ae(I),n={};e.each(t,function(e,t){n[t.src]=t.dir}),Le(I,null,"order",[I,t,n]),xe(I)}}),Re(I,"aoDrawCallback",function(){(I.bSorted||"ssp"===Fe(I)||B.bDeferRender)&&Te(I)},"sc");var n=C.children("caption").each(function(){this._captionSide=e(this).css("caption-side")}),r=C.children("thead");0===r.length&&(r=e("<thead/>").appendTo(C)),I.nTHead=r[0];var o=C.children("tbody");0===o.length&&(o=e("<tbody/>").appendTo(C)),I.nTBody=o[0];var a=C.children("tfoot");if(0===a.length&&n.length>0&&(""!==I.oScroll.sX||""!==I.oScroll.sY)&&(a=e("<tfoot/>").appendTo(C)),0===a.length||0===a.children().length?C.addClass(k.sNoFooter):a.length>0&&(I.nTFoot=a[0],H(I.aoFooter,I.nTFoot)),m.aaData)for(g=0;g<m.aaData.length;g++)_(I,m.aaData[g]);else(I.bDeferLoading||"dom"==Fe(I))&&w(I,e(I.nTBody).children("tr"));I.aiDisplay=I.aiDisplayMaster.slice(),I.bInitialised=!0,!1===b&&ae(I)};m.bStateSave?(B.bStateSave=!0,Re(I,"aoDrawCallback",Ie,"state_save"),ke(I,m,F)):F()}else Pe(null,0,"Non-table node initialisation ("+this.nodeName+")",2)}),n=null,this},Ke={},Qe=/[\r\n]/g,Xe=/<.*?>/g,Ze=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,Je=new RegExp("(\\"+["/",".","*","+","?","|","(",")","[","]","{","}","\\","$","^","-"].join("|\\")+")","g"),et=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,tt=function(e){return!e||!0===e||"-"===e},nt=function(e){var t=parseInt(e,10);return!isNaN(t)&&isFinite(e)?t:null},it=function(e,t){return Ke[t]||(Ke[t]=new RegExp(vt(t),"g")),"string"==typeof e&&"."!==t?e.replace(/\./g,"").replace(Ke[t],"."):e},rt=function(e,t,n){var i="string"==typeof e;return!!tt(e)||(t&&i&&(e=it(e,t)),n&&i&&(e=e.replace(et,"")),!isNaN(parseFloat(e))&&isFinite(e))},ot=function(e){return tt(e)||"string"==typeof e},at=function(e,t,n){return!!tt(e)||(ot(e)?!!rt(dt(e),t,n)||null:null)},st=function(e,t,n){var r=[],o=0,a=e.length;if(n!==i)for(;o<a;o++)e[o]&&e[o][t]&&r.push(e[o][t][n]);else for(;o<a;o++)e[o]&&r.push(e[o][t]);return r},lt=function(e,t,n,r){var o=[],a=0,s=t.length;if(r!==i)for(;a<s;a++)e[t[a]][n]&&o.push(e[t[a]][n][r]);else for(;a<s;a++)o.push(e[t[a]][n]);return o},ct=function(e,t){var n,r=[];t===i?(t=0,n=e):(n=t,t=e);for(var o=t;o<n;o++)r.push(o);return r},ut=function(e){for(var t=[],n=0,i=e.length;n<i;n++)e[n]&&t.push(e[n]);return t},dt=function(e){return e.replace(Xe,"")},ht=function(e){if(e.length<2)return!0;for(var t=e.slice().sort(),n=t[0],i=1,r=t.length;i<r;i++){if(t[i]===n)return!1;n=t[i]}return!0},pt=function(e){if(ht(e))return e.slice();var t,n,i,r=[],o=e.length,a=0;e:for(n=0;n<o;n++){for(t=e[n],i=0;i<a;i++)if(r[i]===t)continue e;r.push(t),a++}return r};Ye.util={throttle:function(e,t){var n,r,o=t!==i?t:200;return function(){var t=this,a=+new Date,s=arguments;n&&a<n+o?(clearTimeout(r),r=setTimeout(function(){n=i,e.apply(t,s)},o)):(n=a,e.apply(t,s))}},escapeRegex:function(e){return e.replace(Je,"\\$1")}};var ft=function(e,t,n){e[t]!==i&&(e[n]=e[t])},mt=/\[.*?\]$/,gt=/\(\)$/,vt=Ye.util.escapeRegex,bt=e("<div>")[0],yt=bt.textContent!==i,_t=/<.*?>/g,wt=Ye.util.throttle,At=[],Ct=Array.prototype,xt=function(t){var n,i,r=Ye.settings,o=e.map(r,function(e,t){return e.nTable});return t?t.nTable&&t.oApi?[t]:t.nodeName&&"table"===t.nodeName.toLowerCase()?(n=e.inArray(t,o),-1!==n?[r[n]]:null):t&&"function"==typeof t.settings?t.settings().toArray():("string"==typeof t?i=e(t):t instanceof e&&(i=t),i?i.map(function(t){return n=e.inArray(this,o),-1!==n?r[n]:null}).toArray():void 0):[]};ze=function(t,n){if(!(this instanceof ze))return new ze(t,n);var i=[],r=function(e){var t=xt(e);t&&(i=i.concat(t))};if(e.isArray(t))for(var o=0,a=t.length;o<a;o++)r(t[o]);else r(t);this.context=pt(i),n&&e.merge(this,n),this.selector={rows:null,cols:null,opts:null},ze.extend(this,this,At)},Ye.Api=ze,e.extend(ze.prototype,{any:function(){return 0!==this.count()},concat:Ct.concat,context:[],count:function(){return this.flatten().length},each:function(e){for(var t=0,n=this.length;t<n;t++)e.call(this,this[t],t,this);return this},eq:function(e){var t=this.context;return t.length>e?new ze(t[e],this[e]):null},filter:function(e){var t=[];if(Ct.filter)t=Ct.filter.call(this,e,this);else for(var n=0,i=this.length;n<i;n++)e.call(this,this[n],n,this)&&t.push(this[n]);return new ze(this.context,t)},flatten:function(){var e=[];return new ze(this.context,e.concat.apply(e,this.toArray()))},join:Ct.join,indexOf:Ct.indexOf||function(e,t){for(var n=t||0,i=this.length;n<i;n++)if(this[n]===e)return n;return-1},iterator:function(e,t,n,r){var o,a,s,l,c,u,d,h,p=[],f=this.context,m=this.selector;for("string"==typeof e&&(r=n,n=t,t=e,e=!1),a=0,s=f.length;a<s;a++){var g=new ze(f[a]);if("table"===t)(o=n.call(g,f[a],a))!==i&&p.push(o);else if("columns"===t||"rows"===t)(o=n.call(g,f[a],this[a],a))!==i&&p.push(o);else if("column"===t||"column-rows"===t||"row"===t||"cell"===t)for(d=this[a],"column-rows"===t&&(u=kt(f[a],m.opts)),l=0,c=d.length;l<c;l++)h=d[l],(o="cell"===t?n.call(g,f[a],h.row,h.column,a,l):n.call(g,f[a],h,a,l,u))!==i&&p.push(o)}if(p.length||r){var v=new ze(f,e?p.concat.apply([],p):p),b=v.selector;return b.rows=m.rows,b.cols=m.cols,b.opts=m.opts,v}return this},lastIndexOf:Ct.lastIndexOf||function(e,t){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(e){var t=[];if(Ct.map)t=Ct.map.call(this,e,this);else for(var n=0,i=this.length;n<i;n++)t.push(e.call(this,this[n],n));return new ze(this.context,t)},pluck:function(e){return this.map(function(t){return t[e]})},pop:Ct.pop,push:Ct.push,reduce:Ct.reduce||function(e,t){return u(this,e,t,0,this.length,1)},reduceRight:Ct.reduceRight||function(e,t){return u(this,e,t,this.length-1,-1,-1)},reverse:Ct.reverse,selector:null,shift:Ct.shift,slice:function(){return new ze(this.context,this)},sort:Ct.sort,splice:Ct.splice,toArray:function(){return Ct.slice.call(this)},to$:function(){return e(this)},toJQuery:function(){return e(this)},unique:function(){return new ze(this.context,pt(this))},unshift:Ct.unshift}),ze.extend=function(t,n,i){if(i.length&&n&&(n instanceof ze||n.__dt_wrapper)){var r,o,a;for(r=0,o=i.length;r<o;r++)n[(a=i[r]).name]="function"==typeof a.val?function(e,t,n){return function(){var i=t.apply(e,arguments);return ze.extend(i,i,n.methodExt),i}}(t,a.val,a):e.isPlainObject(a.val)?{}:a.val,n[a.name].__dt_wrapper=!0,ze.extend(t,n[a.name],a.propExt)}},ze.register=qe=function(t,n){if(e.isArray(t))for(var i=0,r=t.length;i<r;i++)ze.register(t[i],n);else{var o,a,s,l,c=t.split("."),u=At;for(o=0,a=c.length;o<a;o++){var d=function(e,t){for(var n=0,i=e.length;n<i;n++)if(e[n].name===t)return e[n];return null}(u,s=(l=-1!==c[o].indexOf("()"))?c[o].replace("()",""):c[o]);d||(d={name:s,val:{},methodExt:[],propExt:[]},u.push(d)),o===a-1?d.val=n:u=l?d.methodExt:d.propExt}}},ze.registerPlural=Ve=function(t,n,r){ze.register(t,r),ze.register(n,function(){var t=r.apply(this,arguments);return t===this?this:t instanceof ze?t.length?e.isArray(t[0])?new ze(t.context,t[0]):t[0]:i:t})};var St=function(t,n){if("number"==typeof t)return[n[t]];var i=e.map(n,function(e,t){return e.nTable});return e(i).filter(t).map(function(t){var r=e.inArray(this,i);return n[r]}).toArray()};qe("tables()",function(e){return e?new ze(St(e,this.context)):this}),qe("table()",function(e){var t=this.tables(e),n=t.context;return n.length?new ze(n[0]):t}),Ve("tables().nodes()","table().node()",function(){return this.iterator("table",function(e){return e.nTable},1)}),Ve("tables().body()","table().body()",function(){return this.iterator("table",function(e){return e.nTBody},1)}),Ve("tables().header()","table().header()",function(){return this.iterator("table",function(e){return e.nTHead},1)}),Ve("tables().footer()","table().footer()",function(){return this.iterator("table",function(e){return e.nTFoot},1)}),Ve("tables().containers()","table().container()",function(){return this.iterator("table",function(e){return e.nTableWrapper},1)}),qe("draw()",function(e){return this.iterator("table",function(t){"page"===e?G(t):("string"==typeof e&&(e="full-hold"!==e),B(t,!1===e))})}),qe("page()",function(e){return e===i?this.page.info().page:this.iterator("table",function(t){de(t,e)})}),qe("page.info()",function(e){if(0===this.context.length)return i;var t=this.context[0],n=t._iDisplayStart,r=t.oFeatures.bPaginate?t._iDisplayLength:-1,o=t.fnRecordsDisplay(),a=-1===r;return{page:a?0:Math.floor(n/r),pages:a?1:Math.ceil(o/r),start:n,end:t.fnDisplayEnd(),length:r,recordsTotal:t.fnRecordsTotal(),recordsDisplay:o,serverSide:"ssp"===Fe(t)}}),qe("page.len()",function(e){return e===i?0!==this.context.length?this.context[0]._iDisplayLength:i:this.iterator("table",function(t){le(t,e)})});var Et=function(e,t,n){if(n){var i=new ze(e);i.one("draw",function(){n(i.ajax.json())})}if("ssp"==Fe(e))B(e,t);else{pe(e,!0);var r=e.jqXHR;r&&4!==r.readyState&&r.abort(),j(e,[],function(n){k(e);for(var i=V(e,n),r=0,o=i.length;r<o;r++)_(e,i[r]);B(e,t),pe(e,!1)})}};qe("ajax.json()",function(){var e=this.context;if(e.length>0)return e[0].json}),qe("ajax.params()",function(){var e=this.context;if(e.length>0)return e[0].oAjaxData}),qe("ajax.reload()",function(e,t){return this.iterator("table",function(n){Et(n,!1===t,e)})}),qe("ajax.url()",function(t){var n=this.context;return t===i?0===n.length?i:(n=n[0],n.ajax?e.isPlainObject(n.ajax)?n.ajax.url:n.ajax:n.sAjaxSource):this.iterator("table",function(n){e.isPlainObject(n.ajax)?n.ajax.url=t:n.ajax=t})}),qe("ajax.url().load()",function(e,t){return this.iterator("table",function(n){Et(n,!1===t,e)})});var Tt=function(t,n,r,o,a){var s,l,c,u,d,h,p=[],f=typeof n;for(n&&"string"!==f&&"function"!==f&&n.length!==i||(n=[n]),c=0,u=n.length;c<u;c++)for(d=0,h=(l=n[c]&&n[c].split&&!n[c].match(/[\[\(:]/)?n[c].split(","):[n[c]]).length;d<h;d++)(s=r("string"==typeof l[d]?e.trim(l[d]):l[d]))&&s.length&&(p=p.concat(s));var m=We.selector[t];if(m.length)for(c=0,u=m.length;c<u;c++)p=m[c](o,a,p);return pt(p)},Dt=function(t){return t||(t={}),t.filter&&t.search===i&&(t.search=t.filter),e.extend({search:"none",order:"current",page:"all"},t)},It=function(e){for(var t=0,n=e.length;t<n;t++)if(e[t].length>0)return e[0]=e[t],e[0].length=1,e.length=1,e.context=[e.context[t]],e;return e.length=0,e},kt=function(t,n){var i,r,o,a=[],s=t.aiDisplay,l=t.aiDisplayMaster,c=n.search,u=n.order,d=n.page;if("ssp"==Fe(t))return"removed"===c?[]:ct(0,l.length);if("current"==d)for(i=t._iDisplayStart,r=t.fnDisplayEnd();i<r;i++)a.push(s[i]);else if("current"==u||"applied"==u)a="none"==c?l.slice():"applied"==c?s.slice():e.map(l,function(t,n){return-1===e.inArray(t,s)?t:null});else if("index"==u||"original"==u)for(i=0,r=t.aoData.length;i<r;i++)"none"==c?a.push(i):(-1===(o=e.inArray(i,s))&&"removed"==c||o>=0&&"applied"==c)&&a.push(i);return a},Mt=function(t,n,r){var o;return Tt("row",n,function(n){var a=nt(n);if(null!==a&&!r)return[a];if(o||(o=kt(t,r)),null!==a&&-1!==e.inArray(a,o))return[a];if(null===n||n===i||""===n)return o;if("function"==typeof n)return e.map(o,function(e){var i=t.aoData[e];return n(e,i._aData,i.nTr)?e:null});var s=ut(lt(t.aoData,o,"nTr"));if(n.nodeName){if(n._DT_RowIndex!==i)return[n._DT_RowIndex];if(n._DT_CellIndex)return[n._DT_CellIndex.row];var l=e(n).closest("*[data-dt-row]");return l.length?[l.data("dt-row")]:[]}if("string"==typeof n&&"#"===n.charAt(0)){var c=t.aIds[n.replace(/^#/,"")];if(c!==i)return[c.idx]}return e(s).filter(n).map(function(){return this._DT_RowIndex}).toArray()},t,r)};qe("rows()",function(t,n){t===i?t="":e.isPlainObject(t)&&(n=t,t=""),n=Dt(n);var r=this.iterator("table",function(e){return Mt(e,t,n)},1);return r.selector.rows=t,r.selector.opts=n,r}),qe("rows().nodes()",function(){return this.iterator("row",function(e,t){return e.aoData[t].nTr||i},1)}),qe("rows().data()",function(){return this.iterator(!0,"rows",function(e,t){return lt(e.aoData,t,"_aData")},1)}),Ve("rows().cache()","row().cache()",function(e){return this.iterator("row",function(t,n){var i=t.aoData[n];return"search"===e?i._aFilterData:i._aSortData},1)}),Ve("rows().invalidate()","row().invalidate()",function(e){return this.iterator("row",function(t,n){P(t,n,e)})}),Ve("rows().indexes()","row().index()",function(){return this.iterator("row",function(e,t){return t},1)}),Ve("rows().ids()","row().id()",function(e){for(var t=[],n=this.context,i=0,r=n.length;i<r;i++)for(var o=0,a=this[i].length;o<a;o++){var s=n[i].rowIdFn(n[i].aoData[this[i][o]]._aData);t.push((!0===e?"#":"")+s)}return new ze(n,t)}),Ve("rows().remove()","row().remove()",function(){var e=this;return this.iterator("row",function(t,n,r){var o,a,s,l,c,u,d=t.aoData,h=d[n];for(d.splice(n,1),o=0,a=d.length;o<a;o++)if(c=d[o],u=c.anCells,null!==c.nTr&&(c.nTr._DT_RowIndex=o),null!==u)for(s=0,l=u.length;s<l;s++)u[s]._DT_CellIndex.row=o;M(t.aiDisplayMaster,n),M(t.aiDisplay,n),M(e[r],n,!1),Ge(t);var p=t.rowIdFn(h._aData);p!==i&&delete t.aIds[p]}),this.iterator("table",function(e){for(var t=0,n=e.aoData.length;t<n;t++)e.aoData[t].idx=t}),this}),qe("rows.add()",function(t){var n=this.iterator("table",function(e){var n,i,r,o=[];for(i=0,r=t.length;i<r;i++)(n=t[i]).nodeName&&"TR"===n.nodeName.toUpperCase()?o.push(w(e,n)[0]):o.push(_(e,n));return o},1),i=this.rows(-1);return i.pop(),e.merge(i,n),i}),qe("row()",function(e,t){return It(this.rows(e,t))}),qe("row().data()",function(e){var t=this.context;return e===i?t.length&&this.length?t[0].aoData[this[0]]._aData:i:(t[0].aoData[this[0]]._aData=e,P(t[0],this[0],"data"),this)}),qe("row().node()",function(){var e=this.context;return e.length&&this.length?e[0].aoData[this[0]].nTr||null:null}),qe("row.add()",function(t){t instanceof e&&t.length&&(t=t[0]);var n=this.iterator("table",function(e){return t.nodeName&&"TR"===t.nodeName.toUpperCase()?w(e,t)[0]:_(e,t)});return this.row(n[0])});var Pt=function(t,n,i,r){var o=[],a=function(n,i){if(e.isArray(n)||n instanceof e)for(var r=0,s=n.length;r<s;r++)a(n[r],i);else if(n.nodeName&&"tr"===n.nodeName.toLowerCase())o.push(n);else{var l=e("<tr><td/></tr>").addClass(i);e("td",l).addClass(i).html(n)[0].colSpan=g(t),o.push(l[0])}};a(i,r),n._details&&n._details.detach(),n._details=e(o),n._detailsShow&&n._details.insertAfter(n.nTr)},$t=function(e,t){var n=e.context;if(n.length){var r=n[0].aoData[t!==i?t:e[0]];r&&r._details&&(r._details.remove(),r._detailsShow=i,r._details=i)}},Nt=function(e,t){var n=e.context;if(n.length&&e.length){var i=n[0].aoData[e[0]];i._details&&(i._detailsShow=t,t?i._details.insertAfter(i.nTr):i._details.detach(),Ot(n[0]))}},Ot=function(e){var t=new ze(e),n=e.aoData;t.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details"),st(n,"_details").length>0&&(t.on("draw.dt.DT_details",function(i,r){e===r&&t.rows({page:"current"}).eq(0).each(function(e){var t=n[e];t._detailsShow&&t._details.insertAfter(t.nTr)})}),t.on("column-visibility.dt.DT_details",function(t,i,r,o){if(e===i)for(var a,s=g(i),l=0,c=n.length;l<c;l++)(a=n[l])._details&&a._details.children("td[colspan]").attr("colspan",s)}),t.on("destroy.dt.DT_details",function(i,r){if(e===r)for(var o=0,a=n.length;o<a;o++)n[o]._details&&$t(t,o)}))};qe("row().child()",function(e,t){var n=this.context;return e===i?n.length&&this.length?n[0].aoData[this[0]]._details:i:(!0===e?this.child.show():!1===e?$t(this):n.length&&this.length&&Pt(n[0],n[0].aoData[this[0]],e,t),this)}),qe(["row().child.show()","row().child().show()"],function(e){return Nt(this,!0),this}),qe(["row().child.hide()","row().child().hide()"],function(){return Nt(this,!1),this}),qe(["row().child.remove()","row().child().remove()"],function(){return $t(this),this}),qe("row().child.isShown()",function(){var e=this.context;return!(!e.length||!this.length)&&(e[0].aoData[this[0]]._detailsShow||!1)});var Rt=/^([^:]+):(name|visIdx|visible)$/,Lt=function(e,t,n,i,r){for(var o=[],a=0,s=r.length;a<s;a++)o.push(x(e,r[a],t));return o},Gt=function(t,n,i){var r=t.aoColumns,o=st(r,"sName"),a=st(r,"nTh");return Tt("column",n,function(n){var s=nt(n);if(""===n)return ct(r.length);if(null!==s)return[s>=0?s:r.length+s];if("function"==typeof n){var l=kt(t,i);return e.map(r,function(e,i){return n(i,Lt(t,i,0,0,l),a[i])?i:null})}var c="string"==typeof n?n.match(Rt):"";if(c)switch(c[2]){case"visIdx":case"visible":var u=parseInt(c[1],10);if(u<0){var d=e.map(r,function(e,t){return e.bVisible?t:null});return[d[d.length+u]]}return[f(t,u)];case"name":return e.map(o,function(e,t){return e===c[1]?t:null});default:return[]}if(n.nodeName&&n._DT_CellIndex)return[n._DT_CellIndex.column];var h=e(a).filter(n).map(function(){return e.inArray(this,a)}).toArray();if(h.length||!n.nodeName)return h;var p=e(n).closest("*[data-dt-column]");return p.length?[p.data("dt-column")]:[]},t,i)},Bt=function(t,n,r){var o,a,s,l,c=t.aoColumns,u=c[n],d=t.aoData;if(r===i)return u.bVisible;if(u.bVisible!==r){if(r){var h=e.inArray(!0,st(c,"bVisible"),n+1);for(a=0,s=d.length;a<s;a++)l=d[a].nTr,o=d[a].anCells,l&&l.insertBefore(o[n],o[h]||null)}else e(st(t.aoData,"anCells",n)).detach();u.bVisible=r,L(t,t.aoHeader),L(t,t.aoFooter),Ie(t)}};qe("columns()",function(t,n){t===i?t="":e.isPlainObject(t)&&(n=t,t=""),n=Dt(n);var r=this.iterator("table",function(e){return Gt(e,t,n)},1);return r.selector.cols=t,r.selector.opts=n,r}),Ve("columns().header()","column().header()",function(e,t){return this.iterator("column",function(e,t){return e.aoColumns[t].nTh},1)}),Ve("columns().footer()","column().footer()",function(e,t){return this.iterator("column",function(e,t){return e.aoColumns[t].nTf},1)}),Ve("columns().data()","column().data()",function(){return this.iterator("column-rows",Lt,1)}),Ve("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(e,t){return e.aoColumns[t].mData},1)}),Ve("columns().cache()","column().cache()",function(e){return this.iterator("column-rows",function(t,n,i,r,o){return lt(t.aoData,o,"search"===e?"_aFilterData":"_aSortData",n)},1)}),Ve("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(e,t,n,i,r){return lt(e.aoData,r,"anCells",t)},1)}),Ve("columns().visible()","column().visible()",function(e,t){var n=this.iterator("column",function(t,n){if(e===i)return t.aoColumns[n].bVisible;Bt(t,n,e)});return e!==i&&(this.iterator("column",function(n,i){Le(n,null,"column-visibility",[n,i,e,t])}),(t===i||t)&&this.columns.adjust()),n}),Ve("columns().indexes()","column().index()",function(e){return this.iterator("column",function(t,n){return"visible"===e?m(t,n):n},1)}),qe("columns.adjust()",function(){return this.iterator("table",function(e){p(e)},1)}),qe("column.index()",function(e,t){if(0!==this.context.length){var n=this.context[0];if("fromVisible"===e||"toData"===e)return f(n,t);if("fromData"===e||"toVisible"===e)return m(n,t)}}),qe("column()",function(e,t){return It(this.columns(e,t))});var Ft=function(t,n,r){var o,a,s,l,c,u,d,h=t.aoData,p=kt(t,r),f=ut(lt(h,p,"anCells")),m=e([].concat.apply([],f)),g=t.aoColumns.length;return Tt("cell",n,function(n){var r="function"==typeof n;if(null===n||n===i||r){for(a=[],s=0,l=p.length;s<l;s++)for(o=p[s],c=0;c<g;c++)u={row:o,column:c},r?(d=h[o],n(u,x(t,o,c),d.anCells?d.anCells[c]:null)&&a.push(u)):a.push(u);return a}if(e.isPlainObject(n))return[n];var f=m.filter(n).map(function(e,t){return{row:t._DT_CellIndex.row,column:t._DT_CellIndex.column}}).toArray();return f.length||!n.nodeName?f:(d=e(n).closest("*[data-dt-row]"),d.length?[{row:d.data("dt-row"),column:d.data("dt-column")}]:[])},t,r)};qe("cells()",function(t,n,r){if(e.isPlainObject(t)&&(t.row===i?(r=t,t=null):(r=n,n=null)),e.isPlainObject(n)&&(r=n,n=null),null===n||n===i)return this.iterator("table",function(e){return Ft(e,t,Dt(r))});var o,a,s,l,c,u=this.columns(n,r),d=this.rows(t,r),h=this.iterator("table",function(e,t){for(o=[],a=0,s=d[t].length;a<s;a++)for(l=0,c=u[t].length;l<c;l++)o.push({row:d[t][a],column:u[t][l]});return o},1);return e.extend(h.selector,{cols:n,rows:t,opts:r}),h}),Ve("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(e,t,n){var r=e.aoData[t];return r&&r.anCells?r.anCells[n]:i},1)}),qe("cells().data()",function(){return this.iterator("cell",function(e,t,n){return x(e,t,n)},1)}),Ve("cells().cache()","cell().cache()",function(e){return e="search"===e?"_aFilterData":"_aSortData",this.iterator("cell",function(t,n,i){return t.aoData[n][e][i]},1)}),Ve("cells().render()","cell().render()",function(e){return this.iterator("cell",function(t,n,i){return x(t,n,i,e)},1)}),Ve("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(e,t,n){return{row:t,column:n,columnVisible:m(e,n)}},1)}),Ve("cells().invalidate()","cell().invalidate()",function(e){return this.iterator("cell",function(t,n,i){P(t,n,e,i)})}),qe("cell()",function(e,t,n){return It(this.cells(e,t,n))}),qe("cell().data()",function(e){var t=this.context,n=this[0];return e===i?t.length&&n.length?x(t[0],n[0].row,n[0].column):i:(S(t[0],n[0].row,n[0].column,e),P(t[0],n[0].row,"data",n[0].column),this)}),qe("order()",function(t,n){var r=this.context;return t===i?0!==r.length?r[0].aaSorting:i:("number"==typeof t?t=[[t,n]]:t.length&&!e.isArray(t[0])&&(t=Array.prototype.slice.call(arguments)),this.iterator("table",function(e){e.aaSorting=t.slice()}))}),qe("order.listener()",function(e,t,n){return this.iterator("table",function(i){Ee(i,e,t,n)})}),qe("order.fixed()",function(t){if(!t){var n=this.context,r=n.length?n[0].aaSortingFixed:i;return e.isArray(r)?{pre:r}:r}return this.iterator("table",function(n){n.aaSortingFixed=e.extend(!0,{},t)})}),qe(["columns().order()","column().order()"],function(t){var n=this;return this.iterator("table",function(i,r){var o=[];e.each(n[r],function(e,n){o.push([n,t])}),i.aaSorting=o})}),qe("search()",function(t,n,r,o){var a=this.context;return t===i?0!==a.length?a[0].oPreviousSearch.sSearch:i:this.iterator("table",function(i){i.oFeatures.bFilter&&K(i,e.extend({},i.oPreviousSearch,{sSearch:t+"",bRegex:null!==n&&n,bSmart:null===r||r,bCaseInsensitive:null===o||o}),1)})}),Ve("columns().search()","column().search()",function(t,n,r,o){return this.iterator("column",function(a,s){var l=a.aoPreSearchCols;if(t===i)return l[s].sSearch;a.oFeatures.bFilter&&(e.extend(l[s],{sSearch:t+"",bRegex:null!==n&&n,bSmart:null===r||r,bCaseInsensitive:null===o||o}),K(a,a.oPreviousSearch,1))})}),qe("state()",function(){return this.context.length?this.context[0].oSavedState:null}),qe("state.clear()",function(){return this.iterator("table",function(e){e.fnStateSaveCallback.call(e.oInstance,e,{})})}),qe("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null}),qe("state.save()",function(){return this.iterator("table",function(e){Ie(e)})}),Ye.versionCheck=Ye.fnVersionCheck=function(e){for(var t,n,i=Ye.version.split("."),r=e.split("."),o=0,a=r.length;o<a;o++)if(t=parseInt(i[o],10)||0,n=parseInt(r[o],10)||0,t!==n)return t>n;return!0},Ye.isDataTable=Ye.fnIsDataTable=function(t){var n=e(t).get(0),i=!1;return t instanceof Ye.Api||(e.each(Ye.settings,function(t,r){var o=r.nScrollHead?e("table",r.nScrollHead)[0]:null,a=r.nScrollFoot?e("table",r.nScrollFoot)[0]:null;r.nTable!==n&&o!==n&&a!==n||(i=!0)}),i)},Ye.tables=Ye.fnTables=function(t){var n=!1;e.isPlainObject(t)&&(n=t.api,t=t.visible);var i=e.map(Ye.settings,function(n){if(!t||t&&e(n.nTable).is(":visible"))return n.nTable});return n?new ze(i):i},Ye.camelToHungarian=o,qe("$()",function(t,n){var i=this.rows(n).nodes(),r=e(i);return e([].concat(r.filter(t).toArray(),r.find(t).toArray()))}),e.each(["on","one","off"],function(t,n){qe(n+"()",function(){var t=Array.prototype.slice.call(arguments);t[0]=e.map(t[0].split(/\s/),function(e){return e.match(/\.dt\b/)?e:e+".dt"}).join(" ");var i=e(this.tables().nodes());return i[n].apply(i,t),this})}),qe("clear()",function(){return this.iterator("table",function(e){k(e)})}),qe("settings()",function(){return new ze(this.context,this.context)}),qe("init()",function(){var e=this.context;return e.length?e[0].oInit:null}),qe("data()",function(){return this.iterator("table",function(e){return st(e.aoData,"_aData")}).flatten()}),qe("destroy()",function(n){return n=n||!1,this.iterator("table",function(i){var r,o=i.nTableWrapper.parentNode,a=i.oClasses,s=i.nTable,l=i.nTBody,c=i.nTHead,u=i.nTFoot,d=e(s),h=e(l),p=e(i.nTableWrapper),f=e.map(i.aoData,function(e){return e.nTr});i.bDestroying=!0,Le(i,"aoDestroyCallback","destroy",[i]),n||new ze(i).columns().visible(!0),p.off(".DT").find(":not(tbody *)").off(".DT"),e(t).off(".DT-"+i.sInstance),s!=c.parentNode&&(d.children("thead").detach(),d.append(c)),u&&s!=u.parentNode&&(d.children("tfoot").detach(),d.append(u)),i.aaSorting=[],i.aaSortingFixed=[],Te(i),e(f).removeClass(i.asStripeClasses.join(" ")),e("th, td",c).removeClass(a.sSortable+" "+a.sSortableAsc+" "+a.sSortableDesc+" "+a.sSortableNone),i.bJUI&&(e("th span."+a.sSortIcon+", td span."+a.sSortIcon,c).detach(),e("th, td",c).each(function(){var t=e("div."+a.sSortJUIWrapper,this);e(this).append(t.contents()),t.detach()})),h.children().detach(),h.append(f);var m=n?"remove":"detach";d[m](),p[m](),!n&&o&&(o.insertBefore(s,i.nTableReinsertBefore),d.css("width",i.sDestroyWidth).removeClass(a.sTable),(r=i.asDestroyStripes.length)&&h.children().each(function(t){e(this).addClass(i.asDestroyStripes[t%r])}));var g=e.inArray(i,Ye.settings);-1!==g&&Ye.settings.splice(g,1)})}),e.each(["column","row","cell"],function(e,t){qe(t+"s().every()",function(e){var n=this.selector.opts,r=this;return this.iterator(t,function(o,a,s,l,c){e.call(r[t](a,"cell"===t?s:n,"cell"===t?n:i),a,s,l,c)})})}),qe("i18n()",function(t,n,r){var o=this.context[0],a=T(t)(o.oLanguage);return a===i&&(a=n),r!==i&&e.isPlainObject(a)&&(a=a[r]!==i?a[r]:a._),a.replace("%d",r)}),Ye.version="1.10.15",Ye.settings=[],Ye.models={},Ye.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0},Ye.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1},Ye.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null},Ye.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(e){return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(e){try{return JSON.parse((-1===e.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+e.sInstance+"_"+location.pathname))}catch(e){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(e,t){try{(-1===e.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+e.sInstance+"_"+location.pathname,JSON.stringify(t))}catch(e){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:e.extend({},Ye.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"},r(Ye.defaults),Ye.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null},r(Ye.defaults.column),Ye.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:i,oAjaxData:i,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==Fe(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==Fe(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var e=this._iDisplayLength,t=this._iDisplayStart,n=t+e,i=this.aiDisplay.length,r=this.oFeatures,o=r.bPaginate;return r.bServerSide?!1===o||-1===e?t+i:Math.min(t+e,this._iRecordsDisplay):!o||n>i||-1===e?i:n},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null},Ye.ext=We={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:Ye.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:Ye.version},e.extend(We,{afnFiltering:We.search,aTypes:We.type.detect,ofnSearch:We.type.search,oSort:We.type.order,afnSortData:We.order,aoFeatures:We.feature,oApi:We.internal,oStdClasses:We.classes,oPagination:We.pager}),e.extend(Ye.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""}),function(){var t="ui-state-default",n="css_right ui-icon ui-icon-",i="fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";e.extend(Ye.ext.oJUIClasses,Ye.ext.classes,{sPageButton:"fg-button ui-button "+t,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:t+" sorting_asc",sSortDesc:t+" sorting_desc",sSortable:t+" sorting",sSortableAsc:t+" sorting_asc_disabled",sSortableDesc:t+" sorting_desc_disabled",sSortableNone:t+" sorting_disabled",sSortJUIAsc:n+"triangle-1-n",sSortJUIDesc:n+"triangle-1-s",sSortJUI:n+"carat-2-n-s",sSortJUIAscAllowed:n+"carat-1-n",sSortJUIDescAllowed:n+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+t,sScrollFoot:"dataTables_scrollFoot "+t,sHeaderTH:t,sFooterTH:t,sJUIHeader:i+" ui-corner-tl ui-corner-tr",sJUIFooter:i+" ui-corner-bl ui-corner-br"})}();var Ht=Ye.ext.pager;e.extend(Ht,{simple:function(e,t){return["previous","next"]},full:function(e,t){return["first","previous","next","last"]},numbers:function(e,t){return[He(e,t)]},simple_numbers:function(e,t){return["previous",He(e,t),"next"]},full_numbers:function(e,t){return["first","previous",He(e,t),"next","last"]},first_last_numbers:function(e,t){return["first",He(e,t),"last"]},_numbers:He,numbers_length:7}),e.extend(!0,Ye.ext.renderer,{pageButton:{_:function(t,r,o,a,s,l){var c,u,d,h=t.oClasses,p=t.oLanguage.oPaginate,f=t.oLanguage.oAria.paginate||{},m=0,g=function(n,i){var r,a,d,v=function(e){de(t,e.data.action,!0)};for(r=0,a=i.length;r<a;r++)if(d=i[r],e.isArray(d)){var b=e("<"+(d.DT_el||"div")+"/>").appendTo(n);g(b,d)}else{switch(c=null,u="",d){case"ellipsis":n.append('<span class="ellipsis">&#x2026;</span>');break;case"first":c=p.sFirst,u=d+(s>0?"":" "+h.sPageButtonDisabled);break;case"previous":c=p.sPrevious,u=d+(s>0?"":" "+h.sPageButtonDisabled);break;case"next":c=p.sNext,u=d+(s<l-1?"":" "+h.sPageButtonDisabled);break;case"last":c=p.sLast,u=d+(s<l-1?"":" "+h.sPageButtonDisabled);break;default:c=d+1,u=s===d?h.sPageButtonActive:""}null!==c&&(Oe(e("<a>",{class:h.sPageButton+" "+u,"aria-controls":t.sTableId,"aria-label":f[d],"data-dt-idx":m,tabindex:t.iTabIndex,id:0===o&&"string"==typeof d?t.sTableId+"_"+d:null}).html(c).appendTo(n),{action:d},v),m++)}};try{d=e(r).find(n.activeElement).data("dt-idx")}catch(e){}g(e(r).empty(),a),d!==i&&e(r).find("[data-dt-idx="+d+"]").focus()}}}),e.extend(Ye.ext.type.detect,[function(e,t){var n=t.oLanguage.sDecimal;return rt(e,n)?"num"+n:null},function(e,t){if(e&&!(e instanceof Date)&&!Ze.test(e))return null;var n=Date.parse(e);return null!==n&&!isNaN(n)||tt(e)?"date":null},function(e,t){var n=t.oLanguage.sDecimal;return rt(e,n,!0)?"num-fmt"+n:null},function(e,t){var n=t.oLanguage.sDecimal;return at(e,n)?"html-num"+n:null},function(e,t){var n=t.oLanguage.sDecimal;return at(e,n,!0)?"html-num-fmt"+n:null},function(e,t){return tt(e)||"string"==typeof e&&-1!==e.indexOf("<")?"html":null}]),e.extend(Ye.ext.type.search,{html:function(e){return tt(e)?e:"string"==typeof e?e.replace(Qe," ").replace(Xe,""):""},string:function(e){return tt(e)?e:"string"==typeof e?e.replace(Qe," "):e}});var Ut=function(e,t,n,i){return 0===e||e&&"-"!==e?(t&&(e=it(e,t)),e.replace&&(n&&(e=e.replace(n,"")),i&&(e=e.replace(i,""))),1*e):-1/0};e.extend(We.type.order,{"date-pre":function(e){return Date.parse(e)||-1/0},"html-pre":function(e){return tt(e)?"":e.replace?e.replace(/<.*?>/g,"").toLowerCase():e+""},"string-pre":function(e){return tt(e)?"":"string"==typeof e?e.toLowerCase():e.toString?e.toString():""},"string-asc":function(e,t){return e<t?-1:e>t?1:0},"string-desc":function(e,t){return e<t?1:e>t?-1:0}}),Ue(""),e.extend(!0,Ye.ext.renderer,{header:{_:function(t,n,i,r){e(t.nTable).on("order.dt.DT",function(e,o,a,s){if(t===o){var l=i.idx;n.removeClass(i.sSortingClass+" "+r.sSortAsc+" "+r.sSortDesc).addClass("asc"==s[l]?r.sSortAsc:"desc"==s[l]?r.sSortDesc:i.sSortingClass)}})},jqueryui:function(t,n,i,r){e("<div/>").addClass(r.sSortJUIWrapper).append(n.contents()).append(e("<span/>").addClass(r.sSortIcon+" "+i.sSortingClassJUI)).appendTo(n),e(t.nTable).on("order.dt.DT",function(e,o,a,s){if(t===o){var l=i.idx;n.removeClass(r.sSortAsc+" "+r.sSortDesc).addClass("asc"==s[l]?r.sSortAsc:"desc"==s[l]?r.sSortDesc:i.sSortingClass),n.find("span."+r.sSortIcon).removeClass(r.sSortJUIAsc+" "+r.sSortJUIDesc+" "+r.sSortJUI+" "+r.sSortJUIAscAllowed+" "+r.sSortJUIDescAllowed).addClass("asc"==s[l]?r.sSortJUIAsc:"desc"==s[l]?r.sSortJUIDesc:i.sSortingClassJUI)}})}}});var jt=function(e){return"string"==typeof e?e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):e};return Ye.render={number:function(e,t,n,i,r){return{display:function(o){if("number"!=typeof o&&"string"!=typeof o)return o;var a=o<0?"-":"",s=parseFloat(o);if(isNaN(s))return jt(o);s=s.toFixed(n),o=Math.abs(s);var l=parseInt(o,10),c=n?t+(o-l).toFixed(n).substring(2):"";return a+(i||"")+l.toString().replace(/\B(?=(\d{3})+(?!\d))/g,e)+c+(r||"")}}},text:function(){return{display:jt}}},e.extend(Ye.ext.internal,{_fnExternApiFunc:je,_fnBuildAjax:j,_fnAjaxUpdate:W,_fnAjaxParameters:z,_fnAjaxUpdateDraw:q,_fnAjaxDataSrc:V,_fnAddColumn:d,_fnColumnOptions:h,_fnAdjustColumnSizing:p,_fnVisibleToColumnIndex:f,_fnColumnIndexToVisible:m,_fnVisbleColumns:g,_fnGetColumns:v,_fnColumnTypes:b,_fnApplyColumnDefs:y,_fnHungarianMap:r,_fnCamelToHungarian:o,_fnLanguageCompat:a,_fnBrowserDetect:c,_fnAddData:_,_fnAddTr:w,_fnNodeToDataIndex:A,_fnNodeToColumnIndex:C,_fnGetCellData:x,_fnSetCellData:S,_fnSplitObjNotation:E,_fnGetObjectDataFn:T,_fnSetObjectDataFn:D,_fnGetDataMaster:I,_fnClearTable:k,_fnDeleteIndex:M,_fnInvalidate:P,_fnGetRowElements:$,_fnCreateTr:N,_fnBuildHead:R,_fnDrawHead:L,_fnDraw:G,_fnReDraw:B,_fnAddOptionsHtml:F,_fnDetectHeader:H,_fnGetUniqueThs:U,_fnFeatureHtmlFilter:Y,_fnFilterComplete:K,_fnFilterCustom:Q,_fnFilterColumn:X,_fnFilter:Z,_fnFilterCreateSearch:J,_fnEscapeRegex:vt,_fnFilterData:ee,_fnFeatureHtmlInfo:ie,_fnUpdateInfo:re,_fnInfoMacros:oe,_fnInitialise:ae,_fnInitComplete:se,_fnLengthChange:le,_fnFeatureHtmlLength:ce,_fnFeatureHtmlPaginate:ue,_fnPageChange:de,_fnFeatureHtmlProcessing:he,_fnProcessingDisplay:pe,_fnFeatureHtmlTable:fe,_fnScrollDraw:me,_fnApplyToChildren:ge,_fnCalculateColumnWidths:ve,_fnThrottle:wt,_fnConvertToWidth:be,_fnGetWidestNode:ye,_fnGetMaxLenString:_e,_fnStringToCss:we,_fnSortFlatten:Ae,_fnSort:Ce,_fnSortAria:xe,_fnSortListener:Se,_fnSortAttachListener:Ee,_fnSortingClasses:Te,_fnSortData:De,_fnSaveState:Ie,_fnLoadState:ke,_fnSettingsFromNode:Me,_fnLog:Pe,_fnMap:$e,_fnBindAction:Oe,_fnCallbackReg:Re,_fnCallbackFire:Le,_fnLengthOverflow:Ge,_fnRenderer:Be,_fnDataSource:Fe,_fnRowAttributes:O,_fnCalculateEnd:function(){}}),e.fn.dataTable=Ye,Ye.$=e,e.fn.dataTableSettings=Ye.settings,e.fn.dataTableExt=Ye.ext,e.fn.DataTable=function(t){return e(this).dataTable(t).api()},e.each(Ye,function(t,n){e.fn.DataTable[t]=n}),e.fn.dataTable}),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="datatables"),function(e,t,n,i){"use strict";function r(e,t,n,r,o){function a(e){var t=e[0].innerHTML;return function(e,n,o,a){function s(e,i){e!==i&&a.render(n,a.buildOptionsPromise(),t)}var l=o.dtDisableDeepWatchers?"$watchCollection":"$watch";i.forEach(["dtColumns","dtColumnDefs","dtOptions"],function(t){e[l].call(e,t,s,!0)}),r.showLoading(n,e),a.render(n,a.buildOptionsPromise(),t)}}function s(a){function s(){var n=e.defer();return e.all([e.when(a.dtOptions),e.when(a.dtColumns),e.when(a.dtColumnDefs)]).then(function(n){var r=n[0],a=n[1],s=n[2];o.deleteProperty(r,"$promise"),o.deleteProperty(a,"$promise"),o.deleteProperty(s,"$promise");var l;if(i.isDefined(r)&&(l={},i.extend(l,r),i.isArray(a)&&(l.aoColumns=a),i.isArray(s)&&(l.aoColumnDefs=s),l.language&&l.language.url)){var c=e.defer();t.get(l.language.url).success(function(e){c.resolve(e)}),l.language=c.promise}return o.resolveObjectPromises(l,["data","aaData","fnPromise"])}).then(function(e){n.resolve(e)}),n.promise}function l(e,t,i){t.then(function(t){r.preRender(t);var o=a.datatable&&"ng"===a.datatable;u&&u._renderer?u._renderer.withOptions(t).render(e,a,i).then(function(e){u=e,c(e)}):n.fromOptions(t,o).render(e,a,i).then(function(e){u=e,c(e)})})}function c(e){i.isFunction(a.dtInstance)?a.dtInstance(e):i.isDefined(a.dtInstance)&&(a.dtInstance=e)}var u,d=this;d.buildOptionsPromise=s,d.render=l}return a.$inject=["tElm"],s.$inject=["$scope"],{restrict:"A",scope:{dtOptions:"=",dtColumns:"=",dtColumnDefs:"=",datatable:"@",dtInstance:"="},compile:a,controller:s}}function o(){var e={withOption:function(e,t){return i.isString(e)&&(this[e]=t),this},withSource:function(e){return this.ajax=e,this},withDataProp:function(e){return this.sAjaxDataProp=e,this},withFnServerData:function(e){if(!i.isFunction(e))throw new Error("The parameter must be a function");return this.fnServerData=e,this},withPaginationType:function(e){if(!i.isString(e))throw new Error("The pagination type must be provided");return this.sPaginationType=e,this},withLanguage:function(e){return this.language=e,this},withLanguageSource:function(e){return this.withLanguage({url:e})},withDisplayLength:function(e){return this.iDisplayLength=e,this},withFnPromise:function(e){return this.fnPromise=e,this},withDOM:function(e){return this.dom=e,this}};return{newOptions:function(){return Object.create(e)},fromSource:function(t){var n=Object.create(e);return n.ajax=t,n},fromFnPromise:function(t){var n=Object.create(e);return n.fnPromise=t,n}}}function a(){var e={withOption:function(e,t){return i.isString(e)&&(this[e]=t),this},withTitle:function(e){return this.sTitle=e,this},withClass:function(e){return this.sClass=e,this},notVisible:function(){return this.bVisible=!1,this},notSortable:function(){return this.bSortable=!1,this},renderWith:function(e){return this.mRender=e,this}};return{newColumn:function(t,n){if(i.isUndefined(t))throw new Error('The parameter "mData" is not defined!');var r=Object.create(e);return r.mData=t,i.isDefined(n)&&(r.sTitle=n),r},DTColumn:e}}function s(e){return{newColumnDef:function(t){if(i.isUndefined(t))throw new Error('The parameter "targets" must be defined! See https://datatables.net/reference/option/columnDefs.targets');var n=Object.create(e.DTColumn);return i.isArray(t)?n.aTargets=t:n.aTargets=[t],n}}}function l(e,t,n){return{compileHtml:function(r){return e(i.element('<div class="'+n+'">'+t.loadingTemplate+"</div>"))(r)},isLoading:function(e){return e.hasClass(n)}}}function c(){function e(e){var t=Object.create(o);return t._renderer=e,t}function t(e,t){t.id=e.id,t.DataTable=e.DataTable,t.dataTable=e.dataTable}function n(e,t){this._renderer.reloadData(e,t)}function i(e){this._renderer.changeData(e)}function r(){this._renderer.rerender()}var o={reloadData:n,changeData:i,rerender:r};return{newDTInstance:e,copyDTProperties:t}}function u(){n.fn.DataTable.Api&&n.fn.DataTable.Api.register("ngDestroy()",function(t){return t=t||!1,this.iterator("table",function(i){var r,o=i.nTableWrapper.parentNode,a=i.oClasses,s=i.nTable,l=i.nTBody,c=i.nTHead,u=i.nTFoot,d=n(s),h=n(l),p=n(i.nTableWrapper),f=n.map(i.aoData,function(e){return e.nTr});i.bDestroying=!0,n.fn.DataTable.ext.internal._fnCallbackFire(i,"aoDestroyCallback","destroy",[i]),t||new n.fn.DataTable.Api(i).columns().visible(!0),p.unbind(".DT").find(":not(tbody *)").unbind(".DT"),n(e).unbind(".DT-"+i.sInstance),s!==c.parentNode&&(d.children("thead").detach(),d.append(c)),u&&s!==u.parentNode&&(d.children("tfoot").detach(),d.append(u)),d.detach(),p.detach(),i.aaSorting=[],i.aaSortingFixed=[],n.fn.DataTable.ext.internal._fnSortingClasses(i),n(f).removeClass(i.asStripeClasses.join(" ")),n("th, td",c).removeClass(a.sSortable+" "+a.sSortableAsc+" "+a.sSortableDesc+" "+a.sSortableNone),i.bJUI&&(n("th span."+a.sSortIcon+", td span."+a.sSortIcon,c).detach(),n("th, td",c).each(function(){var e=n("div."+a.sSortJUIWrapper,this);n(this).append(e.contents()),e.detach()})),!t&&o&&(o.contains(i.nTableReinsertBefore)?o.insertBefore(s,i.nTableReinsertBefore):o.appendChild(s)),d.css("width",i.sDestroyWidth).removeClass(a.sTable),(r=i.asDestroyStripes.length)&&h.children().each(function(e){n(this).addClass(i.asDestroyStripes[e%r])});var m=n.inArray(i,n.fn.DataTable.settings);-1!==m&&n.fn.DataTable.settings.splice(m,1)})})}function d(){function e(e){return s.loadingTemplate=e,s}function t(e){return n.ajax({dataType:"json",url:e,success:function(e){n.extend(!0,n.fn.DataTable.defaults,{language:e})}}),s}function i(e){return n.extend(!0,n.fn.DataTable.defaults,{language:e}),s}function r(e){return n.extend(n.fn.DataTable.defaults,{displayLength:e}),s}function o(e){return s.bootstrapOptions=e,s}function a(e){return n.extend(n.fn.DataTable.defaults,{dom:e}),s}var s={loadingTemplate:"<h3>Loading...</h3>",bootstrapOptions:{},setLoadingTemplate:e,setLanguageSource:t,setLanguage:i,setDisplayLength:r,setBootstrapOptions:o,setDOM:a};return s}function h(e){function t(t,n){var r=i.element(e.compileHtml(n));t.after(r),t.hide(),r.show()}function r(t){t.show();var n=t.next();e.isLoading(n)&&n.remove()}function o(e,t){var r="#"+e.attr("id");n.fn.dataTable.isDataTable(r)&&i.isObject(t)&&(t.destroy=!0);var o=e.DataTable(t),a=e.dataTable(),s={id:e.attr("id"),DataTable:o,dataTable:a};return l(t,s),s}function a(e,t){return d.hideLoading(e),d.renderDataTable(e,t)}function s(e){u.push(e)}function l(e,t){i.forEach(u,function(n){i.isFunction(n.postRender)&&n.postRender(e,t)})}function c(e){i.forEach(u,function(t){i.isFunction(t.preRender)&&t.preRender(e)})}var u=[],d={showLoading:t,hideLoading:r,renderDataTable:o,hideLoadingAndRenderDataTable:a,registerPlugin:s,postRender:l,preRender:c};return d}function p(){return{withOptions:function(e){return this.options=e,this}}}function f(e,t,n,i){function r(r){function o(t,r){u=t,d=r;var o=i.newDTInstance(h),a=n.hideLoadingAndRenderDataTable(t,h.options);return c=a.DataTable,i.copyDTProperties(a,o),e.when(o)}function a(){}function s(){}function l(){c.destroy(),n.showLoading(u,d),o(u,d)}var c,u,d,h=Object.create(t);return h.name="DTDefaultRenderer",h.options=r,h.render=o,h.reloadData=a,h.changeData=s,h.rerender=l,h}return{create:r}}function m(e,t,n,i,r,o,a){function s(s){function l(e,n,r){p=r,m=e,g=n.$parent,b=a.newDTInstance(y);var s=t.defer(),l=e.find("tbody").html(),c=l.match(/^\s*.+?\s+in\s+(\S*)\s*/m);if(!c)throw new Error('Expected expression in form of "_item_ in _collection_[ track by _id_]" but got "{0}".',l);var u=c[1],d=!1;return g.$watchCollection(u,function(){f&&d&&h(),i(function(){d=!0,o.preRender(y.options);var e=o.hideLoadingAndRenderDataTable(m,y.options);f=e.DataTable,a.copyDTProperties(e,b),s.resolve(b)},0,!1)},!0),s.promise}function c(){e.warn("The Angular Renderer does not support reloading data. You need to do it directly on your model")}function u(){e.warn("The Angular Renderer does not support changing the data. You need to change your model directly.")}function d(){h(),o.showLoading(m,g),o.preRender(s),i(function(){var e=o.hideLoadingAndRenderDataTable(m,y.options);f=e.DataTable,a.copyDTProperties(e,b)},0,!1)}function h(){v&&v.$destroy(),f.ngDestroy(),m.html(p),v=g.$new(),n(m.contents())(v)}var p,f,m,g,v,b,y=Object.create(r);return y.name="DTNGRenderer",y.options=s,y.render=l,y.reloadData=c,y.changeData=u,y.rerender=d,y}return{create:s}}function g(e,t,n,r,o,a){function s(s){function l(t,n){var i=e.defer();return y=a.newDTInstance(w),v=t,b=n,h(w.options.fnPromise,o.renderDataTable).then(function(e){g=e.DataTable,a.copyDTProperties(e,y),i.resolve(y)}),i.promise}function c(e,t){var r=g&&g.page()?g.page():0;i.isFunction(w.options.fnPromise)?h(w.options.fnPromise,m).then(function(n){i.isFunction(e)&&e(n.DataTable.data()),!1===t&&n.DataTable.page(r).draw(!1)}):n.warn("In order to use the reloadData functionality with a Promise renderer, you need to provide a function that returns a promise.")}function u(e){w.options.fnPromise=e,b.dtOptions.fnPromise=e,h(w.options.fnPromise,m)}function d(){g.destroy(),o.showLoading(v,b),o.preRender(s),l(v,b)}function h(t,n){var r=e.defer();if(i.isUndefined(t))throw new Error("You must provide a promise or a function that returns a promise!");return _?_.then(function(){r.resolve(p(t,n))}):r.resolve(p(t,n)),r.promise}function p(t,n){var r=e.defer();return(_=i.isFunction(t)?t():t).then(function(e){var t=e;if(w.options.sAjaxDataProp)for(var i=w.options.sAjaxDataProp.split(".");i.length;){var o=i.shift();o in t&&(t=t[o])}_=null,r.resolve(f(w.options,v,t,n))}),r.promise}function f(n,i,r,a){var s=e.defer();return delete r.$promise,n.aaData=r,t(function(){o.hideLoading(i),n.bDestroy=!0,s.resolve(a(i,n))},0,!1),s.promise}function m(e,t){return g.clear(),g.rows.add(t.aaData).draw(t.redraw),{id:y.id,DataTable:y.DataTable,dataTable:y.dataTable}}var g,v,b,y,_=null,w=Object.create(r);return w.name="DTPromiseRenderer",w.options=s,w.render=l,w.reloadData=c,w.changeData=u,w.rerender=d,w}return{create:s}}function v(e,t,n,r,o,a){function s(s){function l(t,n){m=t,g=n;var r=e.defer(),s=a.newDTInstance(v);return i.isUndefined(v.options.sAjaxDataProp)&&(v.options.sAjaxDataProp=o.sAjaxDataProp),i.isUndefined(v.options.aoColumns)&&(v.options.aoColumns=o.aoColumns),h(v.options,t).then(function(e){f=e.DataTable,a.copyDTProperties(e,s),r.resolve(s)}),r.promise}function c(e,t){f&&f.ajax.reload(e,t)}function u(e){v.options.ajax=e,g.dtOptions.ajax=e}function d(){r.preRender(s),l(m,g)}function h(n,i){var o=e.defer();return n.bDestroy=!0,f&&(f.destroy(),r.showLoading(m,g),i.empty()),r.hideLoading(i),p(n)?t(function(){o.resolve(r.renderDataTable(i,n))},0,!1):o.resolve(r.renderDataTable(i,n)),o.promise}function p(e){return!(!i.isDefined(e)||!i.isDefined(e.dom))&&e.dom.indexOf("S")>=0}var f,m,g,v=Object.create(n);return v.name="DTAjaxRenderer",v.options=s,v.render=l,v.reloadData=c,v.changeData=u,v.rerender=d,v}return{create:s}}function b(e,t,n,r){function o(o,a){if(a){if(o&&o.serverSide)throw new Error("You cannot use server side processing along with the Angular renderer!");return t.create(o)}if(i.isDefined(o)){if(i.isDefined(o.fnPromise)&&null!==o.fnPromise){if(o.serverSide)throw new Error("You cannot use server side processing along with the Promise renderer!");return n.create(o)}return i.isDefined(o.ajax)&&null!==o.ajax||i.isDefined(o.ajax)&&null!==o.ajax?r.create(o):e.create(o)}return e.create()}return{fromOptions:o}}function y(e){function t(e,n){var r=i.copy(e);if((i.isUndefined(r)||null===r)&&(r={}),i.isUndefined(n)||null===n)return r;if(i.isObject(n))for(var o in n)n.hasOwnProperty(o)&&(r[o]=t(r[o],n[o]));else r=i.copy(n);return r}function r(e,t){i.isObject(e)&&delete e[t]}function o(t,r){var o=e.defer(),s=[],l={},c=r||[];if(!i.isObject(t)||i.isArray(t))o.resolve(t);else{l=i.extend(l,t);for(var u in l)l.hasOwnProperty(u)&&-1===n.inArray(u,c)&&(i.isArray(l[u])?s.push(a(l[u])):s.push(e.when(l[u])));e.all(s).then(function(e){var t=0;for(var i in l)l.hasOwnProperty(i)&&-1===n.inArray(i,c)&&(l[i]=e[t++]);o.resolve(l)})}return o.promise}function a(t){var n=e.defer(),r=[],a=[];return i.isArray(t)?(i.forEach(t,function(t){i.isObject(t)?r.push(o(t)):r.push(e.when(t))}),e.all(r).then(function(e){i.forEach(e,function(e){a.push(e)}),n.resolve(a)})):n.resolve(t),n.promise}return{overrideProperties:t,deleteProperty:r,resolveObjectPromises:o,resolveArrayPromises:a}}i.module("datatables.directive",["datatables.instances","datatables.renderer","datatables.options","datatables.util"]).directive("datatable",r),r.$inject=["$q","$http","DTRendererFactory","DTRendererService","DTPropertyUtil"],i.module("datatables.factory",[]).factory("DTOptionsBuilder",o).factory("DTColumnBuilder",a).factory("DTColumnDefBuilder",s).factory("DTLoadingTemplate",l),s.$inject=["DTColumnBuilder"],l.$inject=["$compile","DTDefaultOptions","DT_LOADING_CLASS"],i.module("datatables.instances",["datatables.util"]).factory("DTInstanceFactory",c),i.module("datatables",["datatables.directive","datatables.factory"]).run(u),i.module("datatables.options",[]).constant("DT_DEFAULT_OPTIONS",{sAjaxDataProp:"",aoColumns:[]}).constant("DT_LOADING_CLASS","dt-loading").service("DTDefaultOptions",d),i.module("datatables.renderer",["datatables.instances","datatables.factory","datatables.options","datatables.instances"]).factory("DTRendererService",h).factory("DTRenderer",p).factory("DTDefaultRenderer",f).factory("DTNGRenderer",m).factory("DTPromiseRenderer",g).factory("DTAjaxRenderer",v).factory("DTRendererFactory",b),h.$inject=["DTLoadingTemplate"],f.$inject=["$q","DTRenderer","DTRendererService","DTInstanceFactory"],m.$inject=["$log","$q","$compile","$timeout","DTRenderer","DTRendererService","DTInstanceFactory"],g.$inject=["$q","$timeout","$log","DTRenderer","DTRendererService","DTInstanceFactory"],v.$inject=["$q","$timeout","DTRenderer","DTRendererService","DT_DEFAULT_OPTIONS","DTInstanceFactory"],b.$inject=["DTDefaultRenderer","DTNGRenderer","DTPromiseRenderer","DTAjaxRenderer"],i.module("datatables.util",[]).factory("DTPropertyUtil",y),y.$inject=["$q"]}(window,document,jQuery,angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="datatables.bootstrap"),function(e,t,n,i){"use strict";function r(e,t){function i(i,r){if(!o){var a=e.overrideProperties(t.getOptions().ColVis,r?r.ColVis:null);n.fn.DataTable.ColVis&&i(function(){n(".ColVis_MasterButton").attr("class","ColVis_MasterButton "+a.classes.masterButton),n(".ColVis_Button").removeClass("ColVis_Button")}),o=!0}}function r(){o&&n.fn.DataTable.ColVis&&(o=!1)}var o=!1;return{integrate:i,deIntegrate:r}}function o(e){function t(e){function t(e,t){function n(){return o.hasBootstrap=!0,i.isObject(o.oClasses)?o.oClasses.sPageButtonActive="active":o.oClasses={sPageButtonActive:"active"},o}function r(e){return o.bootstrap=e,o}var o=e(t);return o.withBootstrap=n,o.withBootstrapOptions=r,o}var n=e.newOptions,r=e.fromSource,o=e.fromFnPromise;return e.newOptions=function(){return t(n)},e.fromSource=function(e){return t(r,e)},e.fromFnPromise=function(e){return t(o,e)},e}e.decorator("DTOptionsBuilder",t),t.$inject=["$delegate"]}function a(e,t){function n(e){e&&e.hasBootstrap?t.integrate(e):t.deIntegrate()}var i={preRender:n};e.registerPlugin(i)}function s(e,r,o,a){function s(){y.oStdClasses=i.copy(n.fn.dataTableExt.oStdClasses),y.fnPagingInfo=n.fn.dataTableExt.oApi.fnPagingInfo,y.renderer=i.copy(n.fn.DataTable.ext.renderer),n.fn.DataTable.TableTools&&(y.TableTools={classes:i.copy(n.fn.DataTable.TableTools.classes),oTags:i.copy(n.fn.DataTable.TableTools.DEFAULTS.oTags)})}function l(){n.extend(n.fn.dataTableExt.oStdClasses,y.oStdClasses),n.fn.dataTableExt.oApi.fnPagingInfo=y.fnPagingInfo,n.extend(!0,n.fn.DataTable.ext.renderer,y.renderer)}function c(){n.extend(n.fn.dataTableExt.oStdClasses,{sWrapper:"dataTables_wrapper form-inline",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sFilter:"dataTables_filter",sLength:"dataTables_length"})}function u(){n.fn.dataTableExt.oApi.fnPagingInfo=function(e){return{iStart:e._iDisplayStart,iEnd:e.fnDisplayEnd(),iLength:e._iDisplayLength,iTotal:e.fnRecordsTotal(),iFilteredTotal:e.fnRecordsDisplay(),iPage:-1===e._iDisplayLength?0:Math.ceil(e._iDisplayStart/e._iDisplayLength),iTotalPages:-1===e._iDisplayLength?0:Math.ceil(e.fnRecordsDisplay()/e._iDisplayLength)}}}function d(e){n.extend(!0,n.fn.DataTable.ext.renderer,{pageButton:{_:function(i,r,s,l,c,u){var d,h,p=i.oClasses,f=i.language?i.language.oPaginate:i.oLanguage.oPaginate,m=0,g=a.overrideProperties(o.getOptions().pagination,e?e.pagination:null),v=n("<ul></ul>",{class:g.classes.ul}),b=function(e,t){var r,o,a,l,g=function(e){e.preventDefault(),n.fn.DataTable.ext.internal._fnPageChange(i,e.data.action,!0)};for(r=0,o=t.length;r<o;r++)if(l=t[r],n.isArray(l)){l.DT_el="li";var y=n("<"+(l.DT_el||"div")+"/>").appendTo(v);b(y,l)}else{d="",h="";var _=n("<li></li>");switch(l){case"ellipsis":v.append('<li class="disabled"><a href="#" onClick="event.preventDefault()">&hellip;</a></li>');break;case"first":d=f.sFirst,h=l,c<=0&&(_.addClass(p.sPageButtonDisabled),!0);break;case"previous":d=f.sPrevious,h=l,c<=0&&(_.addClass(p.sPageButtonDisabled),!0);break;case"next":d=f.sNext,h=l,c>=u-1&&(_.addClass(p.sPageButtonDisabled),!0);break;case"last":d=f.sLast,h=l,c>=u-1&&(_.addClass(p.sPageButtonDisabled),!0);break;default:d=l+1,h="",c===l&&_.addClass(p.sPageButtonActive)}d&&(_.appendTo(v),a=n("<a>",{href:"#",class:h,"aria-controls":i.sTableId,"data-dt-idx":m,tabindex:i.iTabIndex,id:0===s&&"string"==typeof l?i.sTableId+"_"+l:null}).html(d).appendTo(_),n.fn.DataTable.ext.internal._fnBindAction(a,{action:l},g),m++)}};try{var y=n(t.activeElement).data("dt-idx"),_=n(r).empty();v.appendTo(_),b(_,l),null!==y&&n(r).find("[data-dt-idx="+y+"]").focus()}catch(e){}}}})}function h(e){i.isFunction(e)&&b.push(e)}function p(e){v||(s(),c(),u(),d(e),h(function(){n("div.dataTables_filter").find("input").addClass("form-control"),n("div.dataTables_length").find("select").addClass("form-control")}),v=!0)}function f(e){return e.dom&&e.dom!==n.fn.dataTable.defaults.sDom?e.dom:o.getOptions().dom}function m(t){p(t.bootstrap),e.integrate(t.bootstrap),r.integrate(h,t.bootstrap),t.dom=f(t),i.isUndefined(t.fnDrawCallback)&&(t.fnDrawCallback=function(){for(var e=0;e<b.length;e++)b[e]()})}function g(){v&&(l(),e.deIntegrate(),r.deIntegrate(),v=!1)}var v=!1,b=[],y={};return{integrate:m,deIntegrate:g}}function l(e,t,n){function i(){return t.overrideProperties(n,e.bootstrapOptions)}return{getOptions:i}}function c(e,t){function r(i){if(!s){if(a(),n.fn.DataTable.TableTools){var r=e.overrideProperties(t.getOptions().TableTools,i?i.TableTools:null);n.extend(!0,n.fn.DataTable.TableTools.classes,r.classes),n.extend(!0,n.fn.DataTable.TableTools.DEFAULTS.oTags,r.DEFAULTS.oTags)}s=!0}}function o(){s&&n.fn.DataTable.TableTools&&l.TableTools&&(n.extend(!0,n.fn.DataTable.TableTools.classes,l.TableTools.classes),n.extend(!0,n.fn.DataTable.TableTools.DEFAULTS.oTags,l.TableTools.oTags),s=!1)}function a(){n.fn.DataTable.TableTools&&(l.TableTools={classes:i.copy(n.fn.DataTable.TableTools.classes),oTags:i.copy(n.fn.DataTable.TableTools.DEFAULTS.oTags)})}var s=!1,l={};return{integrate:r,deIntegrate:o}}i.module("datatables.bootstrap.colvis",["datatables.bootstrap.options","datatables.util"]).service("DTBootstrapColVis",r),r.$inject=["DTPropertyUtil","DTBootstrapDefaultOptions"],i.module("datatables.bootstrap",["datatables.bootstrap.options","datatables.bootstrap.tabletools","datatables.bootstrap.colvis"]).config(o).run(a).service("DTBootstrap",s),o.$inject=["$provide"],a.$inject=["DTRendererService","DTBootstrap"],s.$inject=["DTBootstrapTableTools","DTBootstrapColVis","DTBootstrapDefaultOptions","DTPropertyUtil"],i.module("datatables.bootstrap.options",["datatables.options","datatables.util"]).constant("DT_BOOTSTRAP_DEFAULT_OPTIONS",{TableTools:{classes:{container:"DTTT btn-group",buttons:{normal:"btn btn-default",disabled:"disabled"},collection:{container:"DTTT_dropdown dropdown-menu",buttons:{normal:"",disabled:"disabled"}},print:{info:"DTTT_print_info modal"},select:{row:"active"}},DEFAULTS:{oTags:{collection:{container:"ul",button:"li",liner:"a"}}}},ColVis:{classes:{masterButton:"btn btn-default"}},pagination:{classes:{ul:"pagination"}},dom:"<'row'<'col-xs-6'l><'col-xs-6'f>r>t<'row'<'col-xs-6'i><'col-xs-6'p>>"}).factory("DTBootstrapDefaultOptions",l),l.$inject=["DTDefaultOptions","DTPropertyUtil","DT_BOOTSTRAP_DEFAULT_OPTIONS"],i.module("datatables.bootstrap.tabletools",["datatables.bootstrap.options","datatables.util"]).service("DTBootstrapTableTools",c),c.$inject=["DTPropertyUtil","DTBootstrapDefaultOptions"]}(window,document,jQuery,angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="datatables.colreorder"),function(e,t,n,i){"use strict";function r(e){function t(e){function t(e,t){function r(){return l.dom=l.dom?l.dom:n.fn.dataTable.defaults.sDom,-1===l.dom.indexOf("R")&&(l.dom="R"+l.dom),l.hasColReorder=!0,l}function o(e,t){return i.isString(e)&&(l.oColReorder=l.oColReorder&&null!==l.oColReorder?l.oColReorder:{},l.oColReorder[e]=t),l}function a(e){return i.isArray(e)&&l.withColReorderOption("aiOrder",e),l}function s(e){if(!i.isFunction(e))throw new Error("The reorder callback must be a function");return l.withColReorderOption("fnReorderCallback",e),l}var l=e(t);return l.withColReorder=r,l.withColReorderOption=o,l.withColReorderOrder=a,l.withColReorderCallback=s,l}var r=e.newOptions,o=e.fromSource,a=e.fromFnPromise;return e.newOptions=function(){return t(r)},e.fromSource=function(e){return t(o,e)},e.fromFnPromise=function(e){return t(a,e)},e}e.decorator("DTOptionsBuilder",t),t.$inject=["$delegate"]}i.module("datatables.colreorder",["datatables"]).config(r),r.$inject=["$provide"]}(window,document,jQuery,angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="datatables.columnfilter"),function(e,t,n,i){"use strict";function r(e){function t(e){function t(e,t){function n(e){return i.hasColumnFilter=!0,e&&(i.columnFilterOptions=e),i}var i=e(t);return i.withColumnFilter=n,i}var n=e.newOptions,i=e.fromSource,r=e.fromFnPromise;return e.newOptions=function(){return t(n)},e.fromSource=function(e){return t(i,e)},e.fromFnPromise=function(e){return t(r,e)},e}e.decorator("DTOptionsBuilder",t),t.$inject=["$delegate"]}function o(e){function t(e,t){e&&e.hasColumnFilter&&t.dataTable.columnFilter(e.columnFilterOptions)}var n={postRender:t};e.registerPlugin(n)}i.module("datatables.columnfilter",["datatables"]).config(r).run(o),r.$inject=["$provide"],o.$inject=["DTRendererService"]}(window,document,jQuery,angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="datatables.light-columnfilter"),function(e,t,n,i){"use strict";function r(e){function t(e){function t(e,t){function n(e){return i.hasLightColumnFilter=!0,e&&(i.lightColumnFilterOptions=e),i}var i=e(t);return i.withLightColumnFilter=n,i}var n=e.newOptions,i=e.fromSource,r=e.fromFnPromise;return e.newOptions=function(){return t(n)},e.fromSource=function(e){return t(i,e)},e.fromFnPromise=function(e){return t(r,e)},e}e.decorator("DTOptionsBuilder",t),t.$inject=["$delegate"]}function o(e){function t(e,t){e&&e.hasLightColumnFilter&&new n.fn.dataTable.ColumnFilter(t.DataTable,e.lightColumnFilterOptions)}var i={postRender:t};e.registerPlugin(i)}i.module("datatables.light-columnfilter",["datatables"]).config(r).run(o),r.$inject=["$provide"],o.$inject=["DTRendererService"]}(window,document,jQuery,angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="datatables.colvis"),function(e,t,n,i){"use strict";function r(e){function t(e){function t(e,t){function r(){console.warn("The colvis extension has been retired. Please use the button extension instead: https://datatables.net/extensions/buttons/");return s.dom=s.dom?s.dom:n.fn.dataTable.defaults.sDom,-1===s.dom.indexOf("C")&&(s.dom="C"+s.dom),s.hasColVis=!0,s}function o(e,t){return i.isString(e)&&(s.oColVis=s.oColVis&&null!==s.oColVis?s.oColVis:{},s.oColVis[e]=t),s}function a(e){if(!i.isFunction(e))throw new Error("The state change must be a function");return s.withColVisOption("fnStateChange",e),s}var s=e(t);return s.withColVis=r,s.withColVisOption=o,s.withColVisStateChange=a,s}var r=e.newOptions,o=e.fromSource,a=e.fromFnPromise;return e.newOptions=function(){return t(r)},e.fromSource=function(e){return t(o,e)},e.fromFnPromise=function(e){return t(a,e)},e}e.decorator("DTOptionsBuilder",t),t.$inject=["$delegate"]}i.module("datatables.colvis",["datatables"]).config(r),r.$inject=["$provide"]}(window,document,jQuery,angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="datatables.fixedcolumns"),function(e,t,n,i){"use strict";function r(e){function t(e){function t(e,t){function n(e){return i.fixedColumns=!0,e&&(i.fixedColumns=e),i}var i=e(t);return i.withFixedColumns=n,i}var n=e.newOptions,i=e.fromSource,r=e.fromFnPromise;return e.newOptions=function(){return t(n)},e.fromSource=function(e){return t(i,e)},e.fromFnPromise=function(e){return t(r,e)},e}e.decorator("DTOptionsBuilder",t),t.$inject=["$delegate"]}i.module("datatables.fixedcolumns",["datatables"]).config(r),r.$inject=["$provide"]}(window,document,jQuery,angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="datatables.fixedheader"),function(e,t,n,i){"use strict";function r(e){function t(e){function t(e,t){function n(e){return i.hasFixedHeader=!0,e&&(i.fixedHeaderOptions=e),i}var i=e(t);return i.withFixedHeader=n,i}var n=e.newOptions,i=e.fromSource,r=e.fromFnPromise;return e.newOptions=function(){return t(n)},e.fromSource=function(e){return t(i,e)},e.fromFnPromise=function(e){return t(r,e)},e}e.decorator("DTOptionsBuilder",t),t.$inject=["$delegate"]}function o(e){function t(e,t){e&&e.hasFixedHeader&&new n.fn.dataTable.FixedHeader(t.DataTable,e.fixedHeaderOptions)}var i={postRender:t};e.registerPlugin(i)}i.module("datatables.fixedheader",["datatables"]).config(r).run(o),r.$inject=["$provide"],o.$inject=["DTRendererService"]}(window,document,jQuery,angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="datatables.scroller"),function(e,t,n,i){"use strict";function r(e){function t(e){function t(e,t){function i(){return r.dom=r.dom?r.dom:n.fn.dataTable.defaults.sDom,-1===r.dom.indexOf("S")&&(r.dom=r.dom+"S"),r}var r=e(t);return r.withScroller=i,r}var i=e.newOptions,r=e.fromSource,o=e.fromFnPromise;return e.newOptions=function(){return t(i)},e.fromSource=function(e){return t(r,e)},e.fromFnPromise=function(e){return t(o,e)},e}e.decorator("DTOptionsBuilder",t),t.$inject=["$delegate"]}i.module("datatables.scroller",["datatables"]).config(r),r.$inject=["$provide"]}(window,document,jQuery,angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="datatables.tabletools"),function(e,t,n,i){"use strict";function r(e){function t(e){function t(e,t){function r(e){console.warn("The tabletools extension has been retired. Please use the select and buttons extensions instead: https://datatables.net/extensions/select/ and https://datatables.net/extensions/buttons/");return s.dom=s.dom?s.dom:n.fn.dataTable.defaults.sDom,-1===s.dom.indexOf("T")&&(s.dom="T"+s.dom),s.hasTableTools=!0,i.isString(e)&&s.withTableToolsOption("sSwfPath",e),s}function o(e,t){return i.isString(e)&&(s.oTableTools=s.oTableTools&&null!==s.oTableTools?s.oTableTools:{},s.oTableTools[e]=t),s}function a(e){return i.isArray(e)&&s.withTableToolsOption("aButtons",e),s}var s=e(t);return s.withTableTools=r,s.withTableToolsOption=o,s.withTableToolsButtons=a,s}var r=e.newOptions,o=e.fromSource,a=e.fromFnPromise;return e.newOptions=function(){return t(r)},e.fromSource=function(e){return t(o,e)},e.fromFnPromise=function(e){return t(a,e)},e}e.decorator("DTOptionsBuilder",t),t.$inject=["$delegate"]}i.module("datatables.tabletools",["datatables"]).config(r),r.$inject=["$provide"]}(window,document,jQuery,angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="datatables.buttons"),function(e,t,n,i){"use strict";function r(e){function t(e){function t(e,t){function r(e){if(o.dom=o.dom?o.dom:n.fn.dataTable.defaults.sDom,-1===o.dom.indexOf("B")&&(o.dom="B"+o.dom),i.isUndefined(e))throw new Error("You must define the options for the button extension. See https://datatables.net/reference/option/buttons#Examples for some example");return o.buttons=e,o}var o=e(t);return o.withButtons=r,o}var r=e.newOptions,o=e.fromSource,a=e.fromFnPromise;return e.newOptions=function(){return t(r)},e.fromSource=function(e){return t(o,e)},e.fromFnPromise=function(e){return t(a,e)},e}e.decorator("DTOptionsBuilder",t),t.$inject=["$delegate"]}function o(e){function t(e){e&&i.isArray(e.buttons)&&(e.buttonsTmp=e.buttons.slice())}function n(e){e&&i.isDefined(e.buttonsTmp)&&(e.buttons=e.buttonsTmp,delete e.buttonsTmp)}var r={preRender:t,postRender:n};e.registerPlugin(r)}i.module("datatables.buttons",["datatables"]).config(r).run(o),r.$inject=["$provide"],o.$inject=["DTRendererService"]}(window,document,jQuery,angular),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="datatables.select"),function(e,t,n,i){"use strict";function r(e){function t(e){function t(e,t){function n(e){if(i.isUndefined(e))throw new Error("You must define the options for the select extension. See https://datatables.net/reference/option/#select");return r.select=e,r}var r=e(t);return r.withSelect=n,r}var n=e.newOptions,r=e.fromSource,o=e.fromFnPromise;return e.newOptions=function(){return t(n)},e.fromSource=function(e){return t(r,e)},e.fromFnPromise=function(e){return t(o,e)},e}e.decorator("DTOptionsBuilder",t),t.$inject=["$delegate"]}i.module("datatables.select",["datatables"]).config(r),r.$inject=["$provide"]}(window,document,jQuery,angular),function(e){"use strict";function t(e){e.dataTransfer&&"none"===e.dataTransfer.dropEffect&&("copy"===e.dataTransfer.effectAllowed||"move"===e.dataTransfer.effectAllowed?e.dataTransfer.dropEffect=e.dataTransfer.effectAllowed:"copyMove"!==e.dataTransfer.effectAllowed&&"copymove"!==e.dataTransfer.effectAllowed||(e.dataTransfer.dropEffect=e.ctrlKey?"copy":"move"))}if(function(){return"ondrag"in document.createElement("a")}()){window.jQuery&&-1===window.jQuery.event.props.indexOf("dataTransfer")&&window.jQuery.event.props.push("dataTransfer");var n=e.module("ang-drag-drop",[]);n.directive("uiDraggable",["$parse","$rootScope","$dragImage",function(n,i,r){return function(o,a,s){function l(e){setTimeout(function(){a.unbind("$destroy",l)},0);var r=s.dragChannel||"defaultchannel";if(i.$broadcast("ANGULAR_DRAG_END",e,r),t(e),e.dataTransfer&&"none"!==e.dataTransfer.dropEffect)if(s.onDropSuccess){var c=n(s.onDropSuccess);o.$evalAsync(function(){c(o,{$event:e})})}else if(s.onDropFailure){var u=n(s.onDropFailure);o.$evalAsync(function(){u(o,{$event:e})})}a.removeClass(p)}function c(t){if(!h||d.classList.contains(u)){var c=s.dragChannel||"defaultchannel",f="";s.drag&&(f=o.$eval(s.drag));var m=s.dragImage||null;a.addClass(p),a.bind("$destroy",l);var g=!(document.uniqueID||window.opera);if(m&&g){var v=n(s.dragImage);o.$apply(function(){var n=v(o,{$event:t});if(n&&(e.isString(n)&&(n=r.generate(n)),n.image)){var i=n.xOffset||0,a=n.yOffset||0;t.dataTransfer.setDragImage(n.image,i,a)}})}var b={data:f,channel:c},y=e.toJson(b);t.dataTransfer.setData("text",y),t.dataTransfer.effectAllowed="copyMove",i.$broadcast("ANGULAR_DRAG_START",t,c,b)}else t.preventDefault()}var u,d,h=!1,p=s.draggingClass||"on-dragging";a.attr("draggable",!1),o.$watch(s.uiDraggable,function(e){e?(a.attr("draggable",e),a.bind("dragend",l),a.bind("dragstart",c)):(a.removeAttr("draggable"),a.unbind("dragend",l),a.unbind("dragstart",c))}),e.isString(s.dragHandleClass)&&(h=!0,u=s.dragHandleClass.trim()||"drag-handle",a.bind("mousedown",function(e){d=e.target}))}}]),n.directive("uiOnDrop",["$parse","$rootScope",function(n,i){return function(r,o,a){function s(e){e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation();var t=n(a.uiOnDragOver);return r.$evalAsync(function(){t(r,{$event:e,$channel:f})}),!1}function l(e){e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),0===--p&&(r.$evalAsync(function(){y(r,{$event:e,$channel:f})}),o.addClass(g),o.removeClass(v));var t=n(a.uiOnDragLeave);r.$evalAsync(function(){t(r,{$event:e,$channel:f})})}function c(e){e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),0===p&&(r.$evalAsync(function(){b(r,{$event:e,$channel:f})}),o.removeClass(g),o.addClass(v)),p++;var t=n(a.uiOnDragEnter);r.$evalAsync(function(){t(r,{$event:e,$channel:f})}),i.$broadcast("ANGULAR_HOVER",m)}function u(i){i.preventDefault&&i.preventDefault(),i.stopPropagation&&i.stopPropagation();var s=i.dataTransfer.getData("text");s=e.fromJson(s),t(i);var l=n(a.uiOnDrop);r.$evalAsync(function(){l(r,{$data:s.data,$event:i,$channel:s.channel})}),o.removeClass(g),p=0}function d(e,t){return"*"===t||new RegExp("(\\s|[,])+("+e+")(\\s|[,])+","i").test(","+t+",")}function h(e){return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.dataTransfer.dropEffect="none",!1}var p=0,f=a.dropChannel||"defaultchannel",m="",g=a.dragEnterClass||"on-drag-enter",v=a.dragHoverClass||"on-drag-hover",b=n(a.onDragEnter),y=n(a.onDragLeave),_=i.$on("ANGULAR_DRAG_START",function(e,t,i,p){m=i;var v=!0;d(i,f)||(v=!1),v&&a.dropValidate&&(v=n(a.dropValidate)(r,{$drop:{scope:r,element:o},$event:t,$data:p.data,$channel:p.channel})),v?(o.bind("dragover",s),o.bind("dragenter",c),o.bind("dragleave",l),o.bind("drop",u),o.addClass(g)):(o.bind("dragover",h),o.bind("dragenter",h),o.bind("dragleave",h),o.bind("drop",h),o.removeClass(g))}),w=i.$on("ANGULAR_DRAG_END",function(){o.unbind("dragover",s),o.unbind("dragenter",c),o.unbind("dragleave",l),o.unbind("drop",u),o.removeClass(v),o.removeClass(g),o.unbind("dragover",h),o.unbind("dragenter",h),o.unbind("dragleave",h),o.unbind("drop",h)});r.$on("$destroy",function(){_(),w()}),a.$observe("dropChannel",function(e){e&&(f=e)})}}]),n.constant("$dragImageConfig",{height:20,width:200,padding:10,font:"bold 11px Arial",fontColor:"#eee8d5",backgroundColor:"#93a1a1",xOffset:0,yOffset:0}),n.service("$dragImage",["$dragImageConfig",function(t){function n(e,t,n){var r=e.measureText(t).width;if(r<n.width)return t;for(;r+n.padding>n.width;)t=t.substring(0,t.length-1),r=e.measureText(t+i).width;return t+i}var i="…";this.generate=function(i,r){var o=e.extend({},t,r||{}),a=document.createElement("canvas");a.height=o.height,a.width=o.width;var s=a.getContext("2d");s.fillStyle=o.backgroundColor,s.fillRect(0,0,o.width,o.height),s.font=o.font,s.fillStyle=o.fontColor;var l=n(s,i,o);s.fillText(l,4,o.padding+4);var c=new Image;return c.src=a.toDataURL(),{image:c,xOffset:o.xOffset,yOffset:o.yOffset}}}])}else e.module("ang-drag-drop",[])}(angular),function(e,t){"use strict";function n(){function e(e,t){if(e)return r(e)?e.indexOf(t)>=0:e.hasOwnProperty(t)}return["$animate",function(t){return{restrict:"AE",transclude:"element",priority:1,terminal:!0,require:"^^ngMessages",link:function(n,i,o,a,s){var l,c=i[0],u=o.ngMessage||o.when,d=o.ngMessageExp||o.whenExp,h=function(e){l=e?r(e)?e:e.split(/[\s,]+/):null,a.reRender()};d?(h(n.$eval(d)),n.$watchCollection(d,h)):h(u);var p,f;a.register(c,f={test:function(t){return e(l,t)},attach:function(){p||s(function(e,n){t.enter(e,null,i);var r=(p=e).$$attachId=a.getAttachId();p.on("$destroy",function(){p&&p.$$attachId===r&&(a.deregister(c),f.detach()),n.$destroy()})})},detach:function(){if(p){var e=p;p=null,t.leave(e)}}})}}}]}var i,r,o,a;t.module("ngMessages",[],function(){i=t.forEach,r=t.isArray,o=t.isString,a=t.element}).directive("ngMessages",["$animate",function(e){function t(e,t){return o(t)&&0===t.length||n(e.$eval(t))}function n(e){return o(e)?e.length:!!e}return{require:"ngMessages",restrict:"AE",controller:["$element","$scope","$attrs",function(r,o,a){function s(e,t){for(var n=t,i=[];n&&n!==e;){var r=n.$$ngMessageNode;if(r&&r.length)return m[r];n.childNodes.length&&-1===i.indexOf(n)?(i.push(n),n=n.childNodes[n.childNodes.length-1]):n.previousSibling?n=n.previousSibling:(n=n.parentNode,i.push(n))}}function l(e,t,n){var i=m[n];if(u.head){var r=s(e,t);r?(i.next=r.next,r.next=i):(i.next=u.head,u.head=i)}else u.head=i}function c(e,t,n){var i=m[n],r=s(e,t);r?r.next=i.next:u.head=i.next}var u=this,d=0,h=0;this.getAttachId=function(){return h++};var p,f,m=this.messages={};this.render=function(s){p=!1,f=s=s||{};for(var l=t(o,a.ngMessagesMultiple)||t(o,a.multiple),c=[],d={},h=u.head,m=!1,g=0;null!=h;){g++;var v=h.message,b=!1;m||i(s,function(e,t){if(!b&&n(e)&&v.test(t)){if(d[t])return;d[t]=!0,b=!0,v.attach()}}),b?m=!l:c.push(v),h=h.next}i(c,function(e){e.detach()}),c.length!==g?e.setClass(r,"ng-active","ng-inactive"):e.setClass(r,"ng-inactive","ng-active")},o.$watchCollection(a.ngMessages||a.for,u.render),r.on("$destroy",function(){i(m,function(e){e.message.detach()})}),this.reRender=function(){p||(p=!0,o.$evalAsync(function(){p&&f&&u.render(f)}))},this.register=function(e,t){var n=d.toString();m[n]={message:t},l(r[0],e,n),e.$$ngMessageNode=n,d++,u.reRender()},this.deregister=function(e){var t=e.$$ngMessageNode;delete e.$$ngMessageNode,c(r[0],e,t),delete m[t],u.reRender()}}]}}]).directive("ngMessagesInclude",["$templateRequest","$document","$compile",function(e,t,n){function i(e,i){var r=n.$$createComment?n.$$createComment("ngMessagesInclude",i):t[0].createComment(" ngMessagesInclude: "+i+" "),o=a(r);e.after(o),e.remove()}return{restrict:"AE",require:"^^ngMessages",link:function(t,r,a){var s=a.ngMessagesInclude||a.src;e(s).then(function(e){t.$$destroyed||(o(e)&&!e.trim()?i(r,s):n(e)(t,function(e){r.after(e),i(r,s)}))})}}}]).directive("ngMessage",n()).directive("ngMessageExp",n())}(window,window.angular),function(e,t,n){"use strict";!function(){t.module("ngMaterial",["ng","ngAnimate","ngAria","material.core","material.core.gestures","material.core.layout","material.core.meta","material.core.theming.palette","material.core.theming","material.core.animate","material.components.autocomplete","material.components.backdrop","material.components.bottomSheet","material.components.button","material.components.card","material.components.chips","material.components.checkbox","material.components.colors","material.components.content","material.components.datepicker","material.components.dialog","material.components.divider","material.components.fabActions","material.components.fabShared","material.components.fabSpeedDial","material.components.fabToolbar","material.components.gridList","material.components.icon","material.components.input","material.components.list","material.components.menu","material.components.menuBar","material.components.navBar","material.components.panel","material.components.progressCircular","material.components.progressLinear","material.components.radioButton","material.components.select","material.components.showHide","material.components.sidenav","material.components.slider","material.components.sticky","material.components.subheader","material.components.swipe","material.components.switch","material.components.tabs","material.components.toast","material.components.toolbar","material.components.tooltip","material.components.virtualRepeat","material.components.whiteframe"])}(),function(){function e(e,t){if(t.has("$swipe")){e.warn("You are using the ngTouch module. \nAngular Material already has mobile click, tap, and swipe support... \nngTouch is not supported with Angular Material!")}}function n(e,t){e.decorator("$$rAF",["$delegate",i]),t.theme("default").primaryPalette("indigo").accentPalette("pink").warnPalette("deep-orange").backgroundPalette("grey")}function i(e){return e.throttle=function(t){var n,i,r,o;return function(){n=arguments,o=this,r=t,i||(i=!0,e(function(){r.apply(o,Array.prototype.slice.call(n)),i=!1}))}},e}e.$inject=["$log","$injector"],n.$inject=["$provide","$mdThemingProvider"],i.$inject=["$delegate"],t.module("material.core",["ngAnimate","material.core.animate","material.core.layout","material.core.gestures","material.core.theming"]).config(n).run(e)}(),function(){function e(){return{restrict:"A",link:n}}function n(e,t,n){var i=n.mdAutoFocus||n.mdAutofocus||n.mdSidenavFocus;e.$watch(i,function(e){t.toggleClass("md-autofocus",e)})}t.module("material.core").directive("mdAutofocus",e).directive("mdAutoFocus",e).directive("mdSidenavFocus",e)}(),function(){function e(){function e(e){var t="#"===e[0]?e.substr(1):e,n=t.length/3,i=t.substr(0,n),r=t.substr(n,n),o=t.substr(2*n);return 1===n&&(i+=i,r+=r,o+=o),"rgba("+parseInt(i,16)+","+parseInt(r,16)+","+parseInt(o,16)+",0.1)"}function t(e){return((e=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===e.length?"#"+("0"+parseInt(e[1],10).toString(16)).slice(-2)+("0"+parseInt(e[2],10).toString(16)).slice(-2)+("0"+parseInt(e[3],10).toString(16)).slice(-2):"").toUpperCase()}function n(e){return e.replace(")",", 0.1)").replace("(","a(")}function i(e){return e?e.replace("rgba","rgb").replace(/,[^\),]+\)/,")"):"rgb(0,0,0)"}return{rgbaToHex:t,hexToRgba:e,rgbToRgba:n,rgbaToRgb:i}}t.module("material.core").factory("$mdColorUtil",e)}(),function(){function e(e,n,i){function r(e){var t=a(s+"-"+e),n=t.charAt(0).toLowerCase()+t.substring(1);return o(e)?e:o(t)?t:o(n)?n:e}function o(e){return t.isDefined(u.style[e])}function a(e){return e.replace(c,function(e,t,n,i){return i?n.toUpperCase():n})}var s=e.vendorPrefix,l=/webkit/i.test(s),c=/([:\-_]+(.))/g,u=document.createElement("div"),d={isInputKey:function(e){return e.keyCode>=31&&e.keyCode<=90},isNumPadKey:function(e){return 3===e.location&&e.keyCode>=97&&e.keyCode<=105},isNavigationKey:function(e){var t=d.KEY_CODE;return-1!=[t.SPACE,t.ENTER,t.UP_ARROW,t.DOWN_ARROW].indexOf(e.keyCode)},KEY_CODE:{COMMA:188,SEMICOLON:186,ENTER:13,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,TAB:9,BACKSPACE:8,DELETE:46},CSS:{TRANSITIONEND:"transitionend"+(l?" webkitTransitionEnd":""),ANIMATIONEND:"animationend"+(l?" webkitAnimationEnd":""),TRANSFORM:r("transform"),TRANSFORM_ORIGIN:r("transformOrigin"),TRANSITION:r("transition"),TRANSITION_DURATION:r("transitionDuration"),ANIMATION_PLAY_STATE:r("animationPlayState"),ANIMATION_DURATION:r("animationDuration"),ANIMATION_NAME:r("animationName"),ANIMATION_TIMING:r("animationTimingFunction"),ANIMATION_DIRECTION:r("animationDirection")},MEDIA:{xs:"(max-width: 599px)","gt-xs":"(min-width: 600px)",sm:"(min-width: 600px) and (max-width: 959px)","gt-sm":"(min-width: 960px)",md:"(min-width: 960px) and (max-width: 1279px)","gt-md":"(min-width: 1280px)",lg:"(min-width: 1280px) and (max-width: 1919px)","gt-lg":"(min-width: 1920px)",xl:"(min-width: 1920px)",landscape:"(orientation: landscape)",portrait:"(orientation: portrait)",print:"print"},MEDIA_PRIORITY:["xl","gt-lg","lg","gt-md","md","gt-sm","sm","gt-xs","xs","landscape","portrait","print"]};return d}e.$inject=["$sniffer","$window","$document"],t.module("material.core").factory("$mdConstant",e)}(),function(){function e(e,n){function i(){return[].concat(b)}function r(){return b.length}function o(e){return b.length&&e>-1&&e<b.length}function a(e){return!!e&&o(h(e)+1)}function s(e){return!!e&&o(h(e)-1)}function l(e){return o(e)?b[e]:null}function c(e,t){return b.filter(function(n){return n[e]===t})}function u(e,n){return e?(t.isNumber(n)||(n=b.length),b.splice(n,0,e),h(e)):-1}function d(e){p(e)&&b.splice(h(e),1)}function h(e){return b.indexOf(e)}function p(e){return e&&h(e)>-1}function f(){return b.length?b[0]:null}function m(){return b.length?b[b.length-1]:null}function g(e,i,r,a){r=r||v;for(var s=h(i);;){if(!o(s))return null;var l=s+(e?-1:1),c=null;if(o(l)?c=b[l]:n&&(l=h(c=e?m():f())),null===c||l===a)return null;if(r(c))return c;t.isUndefined(a)&&(a=l),s=l}}var v=function(){return!0};e&&!t.isArray(e)&&(e=Array.prototype.slice.call(e)),n=!!n;var b=e||[];return{items:i,count:r,inRange:o,contains:p,indexOf:h,itemAt:l,findBy:c,add:u,remove:d,first:f,last:m,next:t.bind(null,g,!1),previous:t.bind(null,g,!0),hasPrevious:s,hasNext:a}}t.module("material.core").config(["$provide",function(t){t.decorator("$mdUtil",["$delegate",function(t){return t.iterator=e,t}])}])}(),function(){function e(e,n,i){function r(e){var n=h[e];t.isUndefined(n)&&(n=h[e]=o(e));var i=f[n];return t.isUndefined(i)&&(i=a(n)),i}function o(t){return e.MEDIA[t]||("("!==t.charAt(0)?"("+t+")":t)}function a(e){var t=p[e];return t||(t=p[e]=i.matchMedia(e)),t.addListener(s),f[t.media]=!!t.matches}function s(e){n.$evalAsync(function(){f[e.media]=!!e.matches})}function l(e){return p[e]}function c(t,n){for(var i=0;i<e.MEDIA_PRIORITY.length;i++){var r=e.MEDIA_PRIORITY[i];if(p[h[r]].matches){var o=d(t,n+"-"+r);if(t[o])return t[o]}}return t[d(t,n)]}function u(n,i,r){var o=[];return n.forEach(function(n){var a=d(i,n);t.isDefined(i[a])&&o.push(i.$observe(a,t.bind(void 0,r,null)));for(var s in e.MEDIA)a=d(i,n+"-"+s),t.isDefined(i[a])&&o.push(i.$observe(a,t.bind(void 0,r,s)))}),function(){o.forEach(function(e){e()})}}function d(e,t){return m[t]||(m[t]=e.$normalize(t))}var h={},p={},f={},m={};return r.getResponsiveAttribute=c,r.getQuery=l,r.watchResponsiveAttributes=u,r}e.$inject=["$mdConstant","$rootScope","$window"],t.module("material.core").factory("$mdMedia",e)}(),function(){function e(e,n){function i(e){return(e=t.isArray(e)?e:[e]).forEach(function(t){l.forEach(function(n){e.push(n+"-"+t)})}),e}function r(e){return e=t.isArray(e)?e:[e],i(e).map(function(e){return"["+e+"]"}).join(",")}function o(e,t){if(!(e=s(e)))return!1;for(var n=i(t),r=0;r<n.length;r++)if(e.hasAttribute(n[r]))return!0;return!1}function a(e,t){(e=s(e))&&i(t).forEach(function(t){e.removeAttribute(t)})}function s(e){if((e=e[0]||e).nodeType)return e}var l=["data","x"];return e?n?r(e):i(e):{buildList:i,buildSelector:r,hasAttribute:o,removeAttribute:a}}t.module("material.core").config(["$provide",function(t){t.decorator("$mdUtil",["$delegate",function(t){return t.prefixer=e,t}])}])}(),function(){function i(i,o,a,s,l,c,u,d,h,p){function f(e){return e?m(e)||g(e)?e:e+"px":"0"}function m(e){return String(e).indexOf("px")>-1}function g(e){return String(e).indexOf("%")>-1}function v(e){return e[0]||e}var b=c.startSymbol(),y=c.endSymbol(),_="{{"===b&&"}}"===y,w=function(e,n,i){var r=!1;if(e&&e.length){var o=h.getComputedStyle(e[0]);r=t.isDefined(o[n])&&(!i||o[n]==i)}return r},A={dom:{},now:e.performance?t.bind(e.performance,e.performance.now):Date.now||function(){return(new Date).getTime()},bidi:function(e,n,r,o){var a=!("rtl"==i[0].dir||"rtl"==i[0].body.dir);if(0==arguments.length)return a?"ltr":"rtl";var s=t.element(e);a&&t.isDefined(r)?s.css(n,f(r)):!a&&t.isDefined(o)&&s.css(n,f(o))},bidiProperty:function(e,n,r,o){var a=!("rtl"==i[0].dir||"rtl"==i[0].body.dir),s=t.element(e);a&&t.isDefined(n)?(s.css(n,f(o)),s.css(r,"")):!a&&t.isDefined(r)&&(s.css(r,f(o)),s.css(n,""))},clientRect:function(e,t,n){var i=v(e);t=v(t||i.offsetParent||document.body);var r=i.getBoundingClientRect(),o=n?t.getBoundingClientRect():{left:0,top:0,width:0,height:0};return{left:r.left-o.left,top:r.top-o.top,width:r.width,height:r.height}},offsetRect:function(e,t){return A.clientRect(e,t,!0)},nodesToArray:function(e){e=e||[];for(var t=[],n=0;n<e.length;++n)t.push(e.item(n));return t},scrollTop:function(e){var r=(e=t.element(e||i[0].body))[0]==i[0].body?i[0].body:n;return(r?r.scrollTop+r.parentElement.scrollTop:0)||Math.abs(e[0].getBoundingClientRect().top)},findFocusTarget:function(e,n){function i(e,n){var i,r=e[0].querySelectorAll(n);return r&&r.length&&r.length&&t.forEach(r,function(e){(e=t.element(e)).hasClass("md-autofocus")&&(i=e)}),i}var r,o=this.prefixer("md-autofocus",!0);return(r=i(e,n||o))||n==o||(r=i(e,this.prefixer("md-auto-focus",!0)))||(r=i(e,o)),r},disableScrollAround:function(e,n,r){function o(e,t){for(var n in t)e.style[n]=t[n]}if(A.disableScrollAround._count=A.disableScrollAround._count||0,++A.disableScrollAround._count,A.disableScrollAround._enableScrolling)return A.disableScrollAround._enableScrolling;var a=i[0].body,s=function(){var e=a.parentNode,t=e.style.cssText||"",n=a.style.cssText||"",i=A.scrollTop(a),r=a.clientWidth;return a.scrollHeight>a.clientHeight+1&&(o(a,{position:"fixed",width:"100%",top:-i+"px"}),e.style.overflowY="scroll"),a.clientWidth<r&&o(a,{overflow:"hidden"}),function(){a.style.cssText=n,e.style.cssText=t,a.scrollTop=i,e.scrollTop=i}}(),l=function(e){function n(e){e.preventDefault()}e=t.element(e||a);var i;return r&&r.disableScrollMask?i=e:(e=e[0],i=t.element('<div class="md-scroll-mask">  <div class="md-scroll-mask-bar"></div></div>'),e.appendChild(i[0])),i.on("wheel",n),i.on("touchmove",n),function(){i.off("wheel"),i.off("touchmove"),i[0].parentNode.removeChild(i[0]),delete A.disableScrollAround._enableScrolling}}(n);return A.disableScrollAround._enableScrolling=function(){--A.disableScrollAround._count||(s(),l(),delete A.disableScrollAround._enableScrolling)}},enableScrolling:function(){var e=this.disableScrollAround._enableScrolling;e&&e()},floatingScrollbars:function(){if(this.floatingScrollbars.cached===n){var e=t.element("<div><div></div></div>").css({width:"100%","z-index":-1,position:"absolute",height:"35px","overflow-y":"scroll"});e.children().css("height","60px"),i[0].body.appendChild(e[0]),this.floatingScrollbars.cached=e[0].offsetWidth==e[0].childNodes[0].offsetWidth,e.remove()}return this.floatingScrollbars.cached},forceFocus:function(t){var n=t[0]||t;document.addEventListener("click",function e(t){t.target===n&&t.$focus&&(n.focus(),t.stopImmediatePropagation(),t.preventDefault(),n.removeEventListener("click",e))},!0);var i=document.createEvent("MouseEvents");i.initMouseEvent("click",!1,!0,e,{},0,0,0,0,!1,!1,!1,!1,0,null),i.$material=!0,i.$focus=!0,n.dispatchEvent(i)},createBackdrop:function(e,t){return a(A.supplant('<md-backdrop class="{0}">',[t]))(e)},supplant:function(e,t,n){return n=n||/\{([^\{\}]*)\}/g,e.replace(n,function(e,n){var i=n.split("."),r=t;try{for(var o in i)i.hasOwnProperty(o)&&(r=r[i[o]])}catch(t){r=e}return"string"==typeof r||"number"==typeof r?r:e})},fakeNgModel:function(){return{$fake:!0,$setTouched:t.noop,$setViewValue:function(e){this.$viewValue=e,this.$render(e),this.$viewChangeListeners.forEach(function(e){e()})},$isEmpty:function(e){return 0===(""+e).length},$parsers:[],$formatters:[],$viewChangeListeners:[],$render:t.noop}},debounce:function(e,t,i,r){var a;return function(){var s=i,l=Array.prototype.slice.call(arguments);o.cancel(a),a=o(function(){a=n,e.apply(s,l)},t||10,r)}},throttle:function(e,t){var n;return function(){var i=this,r=arguments,o=A.now();(!n||o-n>t)&&(e.apply(i,r),n=o)}},time:function(e){var t=A.now();return e(),A.now()-t},valueOnUse:function(e,t,n){var i=null,r=Array.prototype.slice.call(arguments),o=r.length>3?r.slice(3):[];Object.defineProperty(e,t,{get:function(){return null===i&&(i=n.apply(e,o)),i}})},nextUid:function(){return""+r++},disconnectScope:function(e){if(e&&e.$root!==e&&!e.$$destroyed){var t=e.$parent;e.$$disconnected=!0,t.$$childHead===e&&(t.$$childHead=e.$$nextSibling),t.$$childTail===e&&(t.$$childTail=e.$$prevSibling),e.$$prevSibling&&(e.$$prevSibling.$$nextSibling=e.$$nextSibling),e.$$nextSibling&&(e.$$nextSibling.$$prevSibling=e.$$prevSibling),e.$$nextSibling=e.$$prevSibling=null}},reconnectScope:function(e){if(e&&e.$root!==e&&e.$$disconnected){var t=e,n=t.$parent;t.$$disconnected=!1,t.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=t,n.$$childTail=t):n.$$childHead=n.$$childTail=t}},getClosest:function(e,n,i){if(t.isString(n)){var r=n.toUpperCase();n=function(e){return e.nodeName===r}}if(e instanceof t.element&&(e=e[0]),i&&(e=e.parentNode),!e)return null;do{if(n(e))return e}while(e=e.parentNode);return null},elementContains:function(n,i){return(e.Node&&e.Node.prototype&&Node.prototype.contains?t.bind(n,n.contains):t.bind(n,function(e){return n===i||!!(16&this.compareDocumentPosition(e))}))(i)},extractElementByName:function(e,n,i,r){function o(e){return a(e)||(i?s(e):null)}function a(e){if(e)for(var t=0,i=e.length;t<i;t++)if(e[t].nodeName.toLowerCase()===n)return e[t];return null}function s(e){var t;if(e)for(var n=0,i=e.length;n<i;n++){var r=e[n];if(!t)for(var a=0,s=r.childNodes.length;a<s;a++)t=t||o([r.childNodes[a]])}return t}var l=o(e);return!l&&r&&u.warn(A.supplant("Unable to find node '{0}' in element '{1}'.",[n,e[0].outerHTML])),t.element(l||e)},initOptionalProperties:function(e,n,i){i=i||{},t.forEach(e.$$isolateBindings,function(r,o){if(r.optional&&t.isUndefined(e[o])){var a=t.isDefined(n[r.attrName]);e[o]=t.isDefined(i[o])?i[o]:a}})},nextTick:function(e,t,n){function i(){var e=r.queue,t=r.digest;r.queue=[],r.timeout=null,r.digest=!1,e.forEach(function(e){e.scope&&e.scope.$$destroyed||e.callback()}),t&&s.$digest()}var r=A.nextTick,a=r.timeout,l=r.queue||[];return l.push({scope:n,callback:e}),null==t&&(t=!0),r.digest=r.digest||t,r.queue=l,a||(r.timeout=o(i,0,!1))},processTemplate:function(e){return _?e:e&&t.isString(e)?e.replace(/\{\{/g,b).replace(/}}/g,y):e},getParentWithPointerEvents:function(e){for(var t=e.parent();w(t,"pointer-events","none");)t=t.parent();return t},getNearestContentElement:function(e){for(var t=e.parent()[0];t&&t!==d[0]&&t!==document.body&&"MD-CONTENT"!==t.nodeName.toUpperCase();)t=t.parentNode;return t},checkStickySupport:function(){var e,n=t.element("<div>");i[0].body.appendChild(n[0]);for(var r=["sticky","-webkit-sticky"],o=0;o<r.length;++o)if(n.css({position:r[o],top:0,"z-index":2}),n.css("position")==r[o]){e=r[o];break}return n.remove(),e},parseAttributeBoolean:function(e,t){return""===e||!!e&&(!1===t||"false"!==e&&"0"!==e)},hasComputedStyle:w,isParentFormSubmitted:function(e){var n=A.getClosest(e,"form"),i=n?t.element(n).controller("form"):null;return!!i&&i.$submitted},animateScrollTo:function(e,t){function n(){var r=i();e.scrollTop=r,(s?r<t:r>t)&&p(n)}function i(){return r(A.now()-l,o,a,1e3)}function r(e,t,n,i){if(e>i)return t+n;var r=(e/=i)*e;return t+n*(-2*(r*e)+3*r)}var o=e.scrollTop,a=t-o,s=o<t,l=A.now();p(n)}};return A.dom.animator=l(A),A}i.$inject=["$document","$timeout","$compile","$rootScope","$$mdAnimate","$interpolate","$log","$rootElement","$window","$$rAF"];var r=0;t.module("material.core").factory("$mdUtil",i),t.element.prototype.focus=t.element.prototype.focus||function(){return this.length&&this[0].focus(),this},t.element.prototype.blur=t.element.prototype.blur||function(){return this.length&&this[0].blur(),this}}(),function(){function e(){function e(){t.showWarnings=!1}var t=this;return t.showWarnings=!0,{disableWarnings:e,$get:["$$rAF","$log","$window","$interpolate",function(e,i,r,o){return n.apply(t,arguments)}]}}function n(e,n,i,r){function o(e,i,r){var o=t.element(e)[0]||e;!o||o.hasAttribute(i)&&0!==o.getAttribute(i).length||u(o,i)||((r=t.isString(r)?r.trim():"").length?e.attr(i,r):d&&n.warn('ARIA: Attribute "',i,'", required for accessibility, is missing on node:',o))}function a(t,n,i){e(function(){o(t,n,i())})}function s(e,t){var n=c(e)||"";n.indexOf(r.startSymbol())>-1?a(e,t,function(){return c(e)}):o(e,t,n)}function l(e,t){var n=c(e);n.indexOf(r.startSymbol())>-1||n||o(e,t,n)}function c(e){e=e[0]||e;for(var t,n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),i="";t=n.nextNode();)(function(t){for(;t.parentNode&&(t=t.parentNode)!==e;)if(t.getAttribute&&"true"===t.getAttribute("aria-hidden"))return!0})(t)||(i+=t.textContent);return i.trim()||""}function u(e,t){var n=!1;if(e.hasChildNodes())for(var r=e.childNodes,o=0;o<r.length;o++){var a=r[o];1===a.nodeType&&a.hasAttribute(t)&&(function(e){return"none"===(e.currentStyle?e.currentStyle:i.getComputedStyle(e)).display}(a)||(n=!0))}return n}var d=this.showWarnings;return{expect:o,expectAsync:a,expectWithText:s,expectWithoutText:l}}n.$inject=["$$rAF","$log","$window","$interpolate"],t.module("material.core").provider("$mdAria",e)}(),function(){function e(e,n,i,r,o){this.compile=function(a){var s=a.templateUrl,l=a.template||"",c=a.controller,u=a.controllerAs,d=t.extend({},a.resolve||{}),h=t.extend({},a.locals||{}),p=a.transformTemplate||t.identity,f=a.bindToController;return t.forEach(d,function(e,n){t.isString(e)?d[n]=i.get(e):d[n]=i.invoke(e)}),t.extend(d,h),d.$template=s?n(s).then(function(e){return e}):e.when(l),e.all(d).then(function(e){var n,i=p(e.$template,a),s=a.element||t.element("<div>").html(i.trim()).contents(),l=r(s);return n={locals:e,element:s,link:function(i){if(e.$scope=i,c){var r=o(c,e,!0,u);f&&t.extend(r.instance,e);var a=r();s.data("$ngControllerController",a),s.children().data("$ngControllerController",a),n.controller=a}return l(i)}}})}}e.$inject=["$q","$templateRequest","$injector","$compile","$controller"],t.module("material.core").service("$mdCompiler",e)}(),function(){function n(){}function i(n,i,r){function o(e){return function(t,n){n.distance<this.state.options.maxDistance&&this.dispatchEvent(t,e,n)}}function a(e,t,n){var i=f[t.replace(/^\$md./,"")];if(!i)throw new Error("Failed to register element with handler "+t+". Available handlers: "+Object.keys(f).join(", "));return i.registerElement(e,n)}function l(e,i){var r=new n(e);return t.extend(r,i),f[e]=r,v}var c=navigator.userAgent||navigator.vendor||e.opera,d=c.match(/ipad|iphone|ipod/i),h=c.match(/android/i),p=function(){for(var e=document.createElement("div"),n=["","webkit","Moz","MS","ms","o"],i=0;i<n.length;i++){var r=n[i],o=r?r+"TouchAction":"touchAction";if(t.isDefined(e.style[o]))return o}}(),g=void 0!==e.jQuery&&t.element===e.jQuery,v={handler:l,register:a,isIos:d,isAndroid:h,isHijackingClicks:(d||h)&&!g&&!m};if(v.isHijackingClicks){v.handler("click",{options:{maxDistance:6},onEnd:o("click")}),v.handler("focus",{options:{maxDistance:6},onEnd:function(e,t){t.distance<this.state.options.maxDistance&&function(e){var t=["INPUT","SELECT","BUTTON","TEXTAREA","VIDEO","AUDIO"];return"-1"!=e.getAttribute("tabindex")&&!e.hasAttribute("DISABLED")&&(e.hasAttribute("tabindex")||e.hasAttribute("href")||e.isContentEditable||-1!=t.indexOf(e.nodeName))}(e.target)&&(this.dispatchEvent(e,"focus",t),e.target.focus())}}),v.handler("mouseup",{options:{maxDistance:6},onEnd:o("mouseup")}),v.handler("mousedown",{onStart:function(e){this.dispatchEvent(e,"mousedown")}})}return v.handler("press",{onStart:function(e,t){this.dispatchEvent(e,"$md.pressdown")},onEnd:function(e,t){this.dispatchEvent(e,"$md.pressup")}}).handler("hold",{options:{maxDistance:6,delay:500},onCancel:function(){r.cancel(this.state.timeout)},onStart:function(e,n){if(!this.state.registeredParent)return this.cancel();this.state.pos={x:n.x,y:n.y},this.state.timeout=r(t.bind(this,function(){this.dispatchEvent(e,"$md.hold"),this.cancel()}),this.state.options.delay,!1)},onMove:function(e,t){p||"touchmove"!==e.type||e.preventDefault();var n=this.state.pos.x-t.x,i=this.state.pos.y-t.y;Math.sqrt(n*n+i*i)>this.options.maxDistance&&this.cancel()},onEnd:function(){this.onCancel()}}).handler("drag",{options:{minDistance:6,horizontal:!0,cancelMultiplier:1.5},onSetup:function(e,t){p&&(this.oldTouchAction=e[0].style[p],e[0].style[p]=!1===t.horizontal?"pan-y":"pan-x")},onCleanup:function(e){this.oldTouchAction&&(e[0].style[p]=this.oldTouchAction)},onStart:function(e){this.state.registeredParent||this.cancel()},onMove:function(e,t){var n,i;p||"touchmove"!==e.type||e.preventDefault(),this.state.dragPointer?this.dispatchDragMove(e):(this.state.options.horizontal?(n=Math.abs(t.distanceX)>this.state.options.minDistance,i=Math.abs(t.distanceY)>this.state.options.minDistance*this.state.options.cancelMultiplier):(n=Math.abs(t.distanceY)>this.state.options.minDistance,i=Math.abs(t.distanceX)>this.state.options.minDistance*this.state.options.cancelMultiplier),n?(this.state.dragPointer=s(e),u(e,this.state.dragPointer),this.dispatchEvent(e,"$md.dragstart",this.state.dragPointer)):i&&this.cancel())},dispatchDragMove:i.throttle(function(e){this.state.isRunning&&(u(e,this.state.dragPointer),this.dispatchEvent(e,"$md.drag",this.state.dragPointer))}),onEnd:function(e,t){this.state.dragPointer&&(u(e,this.state.dragPointer),this.dispatchEvent(e,"$md.dragend",this.state.dragPointer))}}).handler("swipe",{options:{minVelocity:.65,minDistance:10},onEnd:function(e,t){var n;Math.abs(t.velocityX)>this.state.options.minVelocity&&Math.abs(t.distanceX)>this.state.options.minDistance?(n="left"==t.directionX?"$md.swipeleft":"$md.swiperight",this.dispatchEvent(e,n)):Math.abs(t.velocityY)>this.state.options.minVelocity&&Math.abs(t.distanceY)>this.state.options.minDistance&&(n="up"==t.directionY?"$md.swipeup":"$md.swipedown",this.dispatchEvent(e,n))}})}function r(e){this.name=e,this.state={}}function o(){function n(e,n,i){i=i||h;var r=new t.element.Event(n);r.$material=!0,r.pointer=i,r.srcEvent=e,t.extend(r,{clientX:i.x,clientY:i.y,screenX:i.x,screenY:i.y,pageX:i.x,pageY:i.y,ctrlKey:e.ctrlKey,altKey:e.altKey,shiftKey:e.shiftKey,metaKey:e.metaKey}),t.element(i.target).trigger(r)}function i(t,n,i){i=i||h;var r;"click"===n||"mouseup"==n||"mousedown"==n?(r=document.createEvent("MouseEvents")).initMouseEvent(n,!0,!0,e,t.detail,i.x,i.y,i.x,i.y,t.ctrlKey,t.altKey,t.shiftKey,t.metaKey,t.button,t.relatedTarget||null):(r=document.createEvent("CustomEvent")).initCustomEvent(n,!0,!0,{}),r.$material=!0,r.pointer=i,r.srcEvent=t,i.target.dispatchEvent(r)}var o=void 0!==e.jQuery&&t.element===e.jQuery;return r.prototype={options:{},dispatchEvent:o?n:i,onSetup:t.noop,onCleanup:t.noop,onStart:t.noop,onMove:t.noop,onEnd:t.noop,onCancel:t.noop,start:function(e,n){if(!this.state.isRunning){var i=this.getNearestParent(e.target),r=i&&i.$mdGesture[this.name]||{};this.state={isRunning:!0,options:t.extend({},this.options,r),registeredParent:i},this.onStart(e,n)}},move:function(e,t){this.state.isRunning&&this.onMove(e,t)},end:function(e,t){this.state.isRunning&&(this.onEnd(e,t),this.state.isRunning=!1)},cancel:function(e,t){this.onCancel(e,t),this.state={}},getNearestParent:function(e){for(var t=e;t;){if((t.$mdGesture||{})[this.name])return t;t=t.parentNode}return null},registerElement:function(e,t){function n(){delete e[0].$mdGesture[i.name],e.off("$destroy",n),i.onCleanup(e,t||{})}var i=this;return e[0].$mdGesture=e[0].$mdGesture||{},e[0].$mdGesture[this.name]=t||{},e.on("$destroy",n),i.onSetup(e,t||{}),n}},r}function a(e,n){function i(e){!e.clientX&&!e.clientY||e.$material||e.isIonicTap||c(e)||(e.preventDefault(),e.stopPropagation())}function r(e){0===e.clientX&&0===e.clientY||e.$material||e.isIonicTap||c(e)?(g=null,"label"==e.target.tagName.toLowerCase()&&(g={x:e.x,y:e.y})):(e.preventDefault(),e.stopPropagation(),g=null)}function o(e,t){var i;for(var r in f)(i=f[r])instanceof n&&("start"===e&&i.cancel(),i[e](t,h))}function a(e){if(!h){var t=+Date.now();p&&!l(e,p)&&t-p.endTime<1500||(h=s(e),o("start",e))}}function d(e){h&&l(e,h)&&(u(e,h),o("move",e))}function m(e){h&&l(e,h)&&(u(e,h),h.endTime=+Date.now(),o("end",e),p=h,h=null)}document.contains||(document.contains=function(e){return document.body.contains(e)}),!v&&e.isHijackingClicks&&(document.addEventListener("click",r,!0),document.addEventListener("mouseup",i,!0),document.addEventListener("mousedown",i,!0),document.addEventListener("focus",i,!0),v=!0);t.element(document).on("mousedown touchstart pointerdown",a).on("mousemove touchmove pointermove",d).on("mouseup mouseleave touchend touchcancel pointerup pointercancel",m).on("$$mdGestureReset",function(){p=h=null})}function s(e){var t=d(e),n={startTime:+Date.now(),target:e.target,type:e.type.charAt(0)};return n.startX=n.x=t.pageX,n.startY=n.y=t.pageY,n}function l(e,t){return e&&t&&e.type.charAt(0)===t.type}function c(e){return g&&g.x==e.x&&g.y==e.y}function u(e,t){var n=d(e),i=t.x=n.pageX,r=t.y=n.pageY;t.distanceX=i-t.startX,t.distanceY=r-t.startY,t.distance=Math.sqrt(t.distanceX*t.distanceX+t.distanceY*t.distanceY),t.directionX=t.distanceX>0?"right":t.distanceX<0?"left":"",t.directionY=t.distanceY>0?"down":t.distanceY<0?"up":"",t.duration=+Date.now()-t.startTime,t.velocityX=t.distanceX/t.duration,t.velocityY=t.distanceY/t.duration}function d(e){return(e=e.originalEvent||e).touches&&e.touches[0]||e.changedTouches&&e.changedTouches[0]||e}i.$inject=["$$MdGestureHandler","$$rAF","$timeout"],a.$inject=["$mdGesture","$$MdGestureHandler"];var h,p,f={},m=!1,g=null,v=!1;t.module("material.core.gestures",[]).provider("$mdGesture",n).factory("$$MdGestureHandler",o).run(a),n.prototype={skipClickHijack:function(){return m=!0},$get:["$$MdGestureHandler","$$rAF","$timeout",function(e,t,n){return new i(e,t,n)}]}}(),function(){function e(){function e(e){function n(e){return l.optionsFactory=e.options,l.methods=(e.methods||[]).concat(a),c}function i(e,t){return s[e]=t,c}function r(t,n){if(n=n||{},n.methods=n.methods||[],n.options=n.options||function(){return{}},/^cancel|hide|show$/.test(t))throw new Error("Preset '"+t+"' in "+e+" is reserved!");if(n.methods.indexOf("_options")>-1)throw new Error("Method '_options' in "+e+" is reserved!");return l.presets[t]={methods:n.methods.concat(a),optionsFactory:n.options,argOption:n.argOption},c}function o(n,i){function r(e){return(e=e||{})._options&&(e=e._options),d.show(t.extend({},u,e))}function o(e){return d.destroy(e)}function a(t,n){var r={};return r[e]=h,i.invoke(t||function(){return n},{},r)}var c,u,d=n(),h={hide:d.hide,cancel:d.cancel,show:r,destroy:o};return c=l.methods||[],u=a(l.optionsFactory,{}),t.forEach(s,function(e,t){h[t]=e}),t.forEach(l.presets,function(e,n){function i(e){this._options=t.extend({},r,e)}var r=a(e.optionsFactory,{}),o=(e.methods||[]).concat(c);if(t.extend(r,{$type:n}),t.forEach(o,function(e){i.prototype[e]=function(t){return this._options[e]=t,this}}),e.argOption){var s="show"+n.charAt(0).toUpperCase()+n.slice(1);h[s]=function(e){var t=h[n](e);return h.show(t)}}h[n]=function(n){return arguments.length&&e.argOption&&!t.isObject(n)&&!t.isArray(n)?(new i)[e.argOption](n):new i(n)}}),h}o.$inject=["$$interimElement","$injector"];var a=["onHide","onShow","onRemove"],s={},l={presets:{}},c={setDefaults:n,addPreset:r,addMethod:i,$get:o};return c.addPreset("build",{methods:["controller","controllerAs","resolve","template","templateUrl","themable","transformTemplate","parent"]}),c}function i(e,i,r,o,a,s,l,c,u,d,h){return function(){function p(e){var t=new v((e=e||{})||{});return(!e.skipHide&&_.length?b.cancel():i.when(!0)).finally(function(){_.push(t),t.show().catch(function(e){return e})}),t.deferred.promise}function f(e,t){function r(n){return n.remove(e,!1,t||{}).catch(function(e){return e}),n.deferred.promise}if(!_.length)return i.when(e);if((t=t||{}).closeAll){var o=i.all(_.reverse().map(r));return _=[],o}return t.closeTo!==n?i.all(_.splice(t.closeTo).map(r)):r(_.pop())}function m(e,n){var r=_.pop();return r?(r.remove(e,!0,n||{}).catch(function(e){return e}),r.deferred.promise.catch(t.noop)):i.when(e)}function g(e){var n=e?null:_.shift(),r=t.element(e).length?t.element(e)[0].parentNode:null;if(r){var o=_.filter(function(e){return e.options.element[0]===r});o.length>0&&(n=o[0],_.splice(_.indexOf(n),1))}return n?n.remove(y,!1,{$destroy:!0}):i.when(y)}function v(h){function p(){return i(function(e,t){function n(e){A.deferred.reject(e),t(e)}h.onCompiling&&h.onCompiling(h),m(h).then(function(t){C=g(t,h),x=_(C,h,t.controller).then(e,n)},n)})}function f(e,n,r){function o(e){A.deferred.resolve(e)}function a(e){A.deferred.reject(e)}return C?((h=t.extend(h||{},r||{})).cancelAutoHide&&h.cancelAutoHide(),h.element.triggerHandler("$mdInterimElementRemove"),!0===h.$destroy?w(h.element,h).then(function(){n&&a(e)||o(e)}):(i.when(x).finally(function(){w(h.element,h).then(function(){n&&a(e)||o(e)},a)}),A.deferred.promise)):i.when(!1)}function m(e){return(e.skipCompile?null:u.compile(e))||i(function(t){t({locals:{},link:function(){return e.element}})})}function g(e,n){t.extend(e.locals,n);var i=e.link(n.scope);return n.element=i,n.parent=v(i,n),n.themable&&d(i),i}function v(n,i){var r=i.parent;if(!((r=t.isFunction(r)?r(i.scope,n,i):t.isString(r)?t.element(e[0].querySelector(r)):t.element(r))||{}).length){var o;return s[0]&&s[0].querySelector&&(o=s[0].querySelector(":not(svg) > body")),o||(o=s[0]),"#comment"==o.nodeName&&(o=e[0].body),t.element(o)}return r}function y(){var e,i=t.noop;h.hideDelay&&(e=a(b.hide,h.hideDelay),i=function(){a.cancel(e)}),h.cancelAutoHide=function(){i(),h.cancelAutoHide=n}}function _(e,n,r){var o=n.onShowing||t.noop,a=n.onComplete||t.noop;return o(n.scope,e,n,r),i(function(t,o){try{i.when(n.onShow(n.scope,e,n,r)).then(function(){a(n.scope,e,n),y(),t(e)},o)}catch(e){o(e.message)}})}function w(e,n){var i=n.onRemoving||t.noop;return r(function(t,o){try{var a=r.when(n.onRemove(n.scope,e,n)||!0);i(e,a),1==n.$destroy?t(e):a.then(function(){!n.preserveScope&&n.scope&&n.scope.$destroy(),t(e)},o)}catch(e){o(e)}})}var A,C,x=i.when(!0);return h=function(e){return(e=e||{}).template&&(e.template=c.processTemplate(e.template)),t.extend({preserveScope:!1,cancelAutoHide:t.noop,scope:e.scope||o.$new(e.isolateScope),onShow:function(e,t,n){return l.enter(t,n.parent)},onRemove:function(e,t){return t&&l.leave(t)||i.when()}},e)}(h),A={options:h,deferred:i.defer(),show:p,remove:f}}var b,y=!1,_=[];return b={show:p,hide:f,cancel:m,destroy:g,$injector_:h}}}return i.$inject=["$document","$q","$$q","$rootScope","$timeout","$rootElement","$animate","$mdUtil","$mdCompiler","$mdTheming","$injector"],e.$get=i,e}t.module("material.core").provider("$$interimElement",e)}(),function(){!function(){function e(){var e=!!document.querySelector("[md-layouts-disabled]");x.enabled=!e}function n(){return x.enabled=!1,{restrict:"A",priority:"900"}}function i(e){return["$timeout",function(n){return{restrict:"A",priority:-10,compile:function(i){return x.enabled?(i.addClass(e),function(t,i){n(function(){i.removeClass(e)},10,!1)}):t.noop}}}]}function r(e){function n(t,n,i){var r=a(n,e),o=i.$observe(i.$normalize(e),r);r(h(e,i,"")),t.$on("$destroy",function(){o()})}return["$mdUtil","$interpolate","$log",function(i,r,o){return m=i,g=r,v=o,{restrict:"A",compile:function(i,r){var o;return x.enabled&&(l(e,r,i,v),c(e,h(e,r,""),u(i,e,r)),o=n),o||t.noop}}}]}function o(e){function n(t,n){n.addClass(e)}return["$mdUtil","$interpolate","$log",function(i,r,o){return m=i,g=r,v=o,{restrict:"A",compile:function(i,r){var o;return x.enabled&&(c(e,h(e,r,""),u(i,e,r)),n(null,i),o=n),o||t.noop}}}]}function a(e,n){var i;return function(r){var o=c(n,r||"");t.isDefined(o)&&(i&&e.removeClass(i),i=o?n+"-"+o.replace(y,"-"):n,e.addClass(i))}}function s(e){var n=e.split("-");return["$log",function(i){return i.warn(e+"has been deprecated. Please use a `"+n[0]+"-gt-<xxx>` variant."),t.noop}]}function l(e,t,n,i){var r,o,a,s=n[0].nodeName.toLowerCase();switch(e.replace(b,"")){case"flex":"md-button"!=s&&"fieldset"!=s||(o="<"+s+" "+e+"></"+s+">",a="https://github.com/philipwalton/flexbugs#9-some-html-elements-cant-be-flex-containers",r="Markup '{0}' may not work as expected in IE Browsers. Consult '{1}' for details.",i.warn(m.supplant(r,[o,a])))}}function c(e,n,i){var r=n;if(!d(n)){switch(e.replace(b,"")){case"layout":p(n,w)||(n=w[0]);break;case"flex":p(n,_)||isNaN(n)&&(n="");break;case"flex-offset":case"flex-order":n&&!isNaN(+n)||(n="0");break;case"layout-align":var o=f(n);n=m.supplant("{main}-{cross}",o);break;case"layout-padding":case"layout-margin":case"layout-fill":case"layout-wrap":case"layout-nowrap":case"layout-nowrap":n=""}n!=r&&(i||t.noop)(n)}return n}function u(e,t,n){return function(e){d(e)||(n[n.$normalize(t)]=e)}}function d(e){return(e||"").indexOf(g.startSymbol())>-1}function h(e,t,n){var i=t.$normalize(e);return t[i]?t[i].replace(y,"-"):n||null}function p(e,t,n){var i=!1;return(e=n&&e?e.replace(y,n):e)&&t.forEach(function(t){t=n?t.replace(y,n):t,i=i||t===e}),i}function f(e){var t,n={main:"start",cross:"stretch"};return 0!==(e=e||"").indexOf("-")&&0!==e.indexOf(" ")||(e="none"+e),(t=e.toLowerCase().trim().replace(y,"-").split("-")).length&&"space"===t[0]&&(t=[t[0]+"-"+t[1],t[2]]),t.length>0&&(n.main=t[0]||n.main),t.length>1&&(n.cross=t[1]||n.cross),A.indexOf(n.main)<0&&(n.main="start"),C.indexOf(n.cross)<0&&(n.cross="stretch"),n}var m,g,v,b=/(-gt)?-(sm|md|lg|print)/g,y=/\s+/g,_=["grow","initial","auto","none","noshrink","nogrow"],w=["row","column"],A=["","start","center","end","stretch","space-around","space-between"],C=["","start","center","end","stretch"],x={enabled:!0,breakpoints:[]};!function(a){function u(e){return e.replace(d,"").replace(h,function(e,t,n,i){return i?n.toUpperCase():n})}var d=/^((?:x|data)[\:\-_])/i,h=/([\:\-\_]+(.))/g,p=["","xs","gt-xs","sm","gt-sm","md","gt-md","lg","gt-lg","xl","print"],f=["layout","flex","flex-order","flex-offset","layout-align"],m=["show","hide","layout-padding","layout-margin"];t.forEach(p,function(e){t.forEach(f,function(t){var n=e?t+"-"+e:t;a.directive(u(n),r(n))}),t.forEach(m,function(t){var n=e?t+"-"+e:t;a.directive(u(n),o(n))})}),a.provider("$$mdLayout",function(){return{$get:t.noop,validateAttributeValue:c,validateAttributeUsage:l,disableLayouts:function(e){x.enabled=!0!==e}}}).directive("mdLayoutCss",n).directive("ngCloak",i("ng-cloak")).directive("layoutWrap",o("layout-wrap")).directive("layoutNowrap",o("layout-nowrap")).directive("layoutNoWrap",o("layout-no-wrap")).directive("layoutFill",o("layout-fill")).directive("layoutLtMd",s("layout-lt-md")).directive("layoutLtLg",s("layout-lt-lg")).directive("flexLtMd",s("flex-lt-md")).directive("flexLtLg",s("flex-lt-lg")).directive("layoutAlignLtMd",s("layout-align-lt-md")).directive("layoutAlignLtLg",s("layout-align-lt-lg")).directive("flexOrderLtMd",s("flex-order-lt-md")).directive("flexOrderLtLg",s("flex-order-lt-lg")).directive("offsetLtMd",s("flex-offset-lt-md")).directive("offsetLtLg",s("flex-offset-lt-lg")).directive("hideLtMd",s("hide-lt-md")).directive("hideLtLg",s("hide-lt-lg")).directive("showLtMd",s("show-lt-md")).directive("showLtLg",s("show-lt-lg")).config(e)}(t.module("material.core.layout",["ng"]))}()}(),function(){t.module("material.core.meta",[]).provider("$$mdMeta",function(){function e(e){if(o[e])return!0;var n=document.getElementsByName(e)[0];return!!n&&(o[e]=t.element(n),!0)}function n(n,i){if(e(n),o[n])o[n].attr("content",i);else{var a=t.element('<meta name="'+n+'" content="'+i+'"/>');r.append(a),o[n]=a}return function(){o[n].attr("content",""),o[n].remove(),delete o[n]}}function i(t){if(!e(t))throw Error("$$mdMeta: could not find a meta tag with the name '"+t+"'");return o[t].attr("content")}var r=t.element(document.head),o={},a={setMeta:n,getMeta:i};return t.extend({},a,{$get:function(){return a}})})}(),function(){function e(e,i){function r(e){return e&&""!==e}var o,a=[],s={};return o={notFoundError:function(t,n){e.error((n||"")+"No instance found for handle",t)},getInstances:function(){return a},get:function(e){if(!r(e))return null;var t,n,i;for(t=0,n=a.length;t<n;t++)if((i=a[t]).$$mdHandle===e)return i;return null},register:function(e,n){function i(){var t=a.indexOf(e);-1!==t&&a.splice(t,1)}return n?(e.$$mdHandle=n,a.push(e),function(){var t=s[n];t&&(t.forEach(function(t){t.resolve(e)}),delete s[n])}(),i):t.noop},when:function(e){if(r(e)){var t=i.defer(),a=o.get(e);return a?t.resolve(a):(s[e]===n&&(s[e]=[]),s[e].push(t)),t.promise}return i.reject("Invalid `md-component-id` value.")}}}e.$inject=["$log","$q"],t.module("material.core").factory("$mdComponentRegistry",e)}(),function(){!function(){function e(e){function n(e){return e.hasClass("md-icon-button")?{isMenuItem:e.hasClass("md-menu-item"),fitRipple:!0,center:!0}:{isMenuItem:e.hasClass("md-menu-item"),dimBackground:!0}}return{attach:function(i,r,o){return o=t.extend(n(r),o),e.attach(i,r,o)}}}e.$inject=["$mdInkRipple"],t.module("material.core").factory("$mdButtonInkRipple",e)}()}(),function(){!function(){function e(e){function n(n,i,r){return e.attach(n,i,t.extend({center:!0,dimBackground:!1,fitRipple:!0},r))}return{attach:n}}e.$inject=["$mdInkRipple"],t.module("material.core").factory("$mdCheckboxInkRipple",e)}()}(),function(){!function(){function e(e){function n(n,i,r){return e.attach(n,i,t.extend({center:!1,dimBackground:!0,outline:!1,rippleSize:"full"},r))}return{attach:n}}e.$inject=["$mdInkRipple"],t.module("material.core").factory("$mdListInkRipple",e)}()}(),function(){function e(e,n){return{controller:t.noop,link:function(t,i,r){r.hasOwnProperty("mdInkRippleCheckbox")?n.attach(t,i):e.attach(t,i)}}}function n(){function e(){n=!0}var n=!1;return{disableInkRipple:e,$get:["$injector",function(e){function r(r,o,a){return n||o.controller("mdNoInk")?t.noop:e.instantiate(i,{$scope:r,$element:o,rippleOptions:a})}return{attach:r}}]}}function i(e,n,i,r,o,a,s){this.$window=r,this.$timeout=o,this.$mdUtil=a,this.$mdColorUtil=s,this.$scope=e,this.$element=n,this.options=i,this.mousedown=!1,this.ripples=[],this.timeout=null,this.lastRipple=null,a.valueOnUse(this,"container",this.createContainer),this.$element.addClass("md-ink-ripple"),(n.controller("mdInkRipple")||{}).createRipple=t.bind(this,this.createRipple),(n.controller("mdInkRipple")||{}).setColor=t.bind(this,this.color),this.bindEvents()}function r(e,n){(e.mousedown||e.lastRipple)&&(e.mousedown=!1,e.$mdUtil.nextTick(t.bind(e,n),!1))}function o(){return{controller:t.noop}}i.$inject=["$scope","$element","rippleOptions","$window","$timeout","$mdUtil","$mdColorUtil"],e.$inject=["$mdButtonInkRipple","$mdCheckboxInkRipple"],t.module("material.core").provider("$mdInkRipple",n).directive("mdInkRipple",e).directive("mdNoInk",o).directive("mdNoBar",o).directive("mdNoStretch",o);i.prototype.color=function(e){var n=this;return t.isDefined(e)&&(n._color=n._parseColor(e)),n._color||n._parseColor(n.inkRipple())||n._parseColor(function(){var e=n.options&&n.options.colorElement?n.options.colorElement:[],t=e.length?e[0]:n.$element[0];return t?n.$window.getComputedStyle(t).color:"rgb(0,0,0)"}())},i.prototype.calculateColor=function(){return this.color()},i.prototype._parseColor=function(e,t){t=t||1;var n=this.$mdColorUtil;if(e)return 0===e.indexOf("rgba")?e.replace(/\d?\.?\d*\s*\)\s*$/,(.1*t).toString()+")"):0===e.indexOf("rgb")?n.rgbToRgba(e):0===e.indexOf("#")?n.hexToRgba(e):void 0},i.prototype.bindEvents=function(){this.$element.on("mousedown",t.bind(this,this.handleMousedown)),this.$element.on("mouseup touchend",t.bind(this,this.handleMouseup)),this.$element.on("mouseleave",t.bind(this,this.handleMouseup)),this.$element.on("touchmove",t.bind(this,this.handleTouchmove))},i.prototype.handleMousedown=function(e){if(!this.mousedown)if(e.hasOwnProperty("originalEvent")&&(e=e.originalEvent),this.mousedown=!0,this.options.center)this.createRipple(this.container.prop("clientWidth")/2,this.container.prop("clientWidth")/2);else if(e.srcElement!==this.$element[0]){var t=this.$element[0].getBoundingClientRect(),n=e.clientX-t.left,i=e.clientY-t.top;this.createRipple(n,i)}else this.createRipple(e.offsetX,e.offsetY)},i.prototype.handleMouseup=function(){r(this,this.clearRipples)},i.prototype.handleTouchmove=function(){r(this,this.deleteRipples)},i.prototype.deleteRipples=function(){for(var e=0;e<this.ripples.length;e++)this.ripples[e].remove()},i.prototype.clearRipples=function(){for(var e=0;e<this.ripples.length;e++)this.fadeInComplete(this.ripples[e])},i.prototype.createContainer=function(){var e=t.element('<div class="md-ripple-container"></div>');return this.$element.append(e),e},i.prototype.clearTimeout=function(){this.timeout&&(this.$timeout.cancel(this.timeout),this.timeout=null)},i.prototype.isRippleAllowed=function(){var e=this.$element[0];do{if(!e.tagName||"BODY"===e.tagName)break;if(e&&t.isFunction(e.hasAttribute)){if(e.hasAttribute("disabled"))return!1;if("false"===this.inkRipple()||"0"===this.inkRipple())return!1}}while(e=e.parentNode);return!0},i.prototype.inkRipple=function(){return this.$element.attr("md-ink-ripple")},i.prototype.createRipple=function(e,n){if(this.isRippleAllowed()){var i=this,r=i.$mdColorUtil,o=t.element('<div class="md-ripple"></div>'),a=this.$element.prop("clientWidth"),s=this.$element.prop("clientHeight"),l=2*Math.max(Math.abs(a-e),e),c=2*Math.max(Math.abs(s-n),n),u=function(e,t,n){return e?Math.max(t,n):Math.sqrt(Math.pow(t,2)+Math.pow(n,2))}(this.options.fitRipple,l,c),d=this.calculateColor();o.css({left:e+"px",top:n+"px",background:"black",width:u+"px",height:u+"px",backgroundColor:r.rgbaToRgb(d),borderColor:r.rgbaToRgb(d)}),this.lastRipple=o,this.clearTimeout(),this.timeout=this.$timeout(function(){i.clearTimeout(),i.mousedown||i.fadeInComplete(o)},157.5,!1),this.options.dimBackground&&this.container.css({backgroundColor:d}),this.container.append(o),this.ripples.push(o),o.addClass("md-ripple-placed"),this.$mdUtil.nextTick(function(){o.addClass("md-ripple-scaled md-ripple-active"),i.$timeout(function(){i.clearRipples()},450,!1)},!1)}},i.prototype.fadeInComplete=function(e){this.lastRipple===e?this.timeout||this.mousedown||this.removeRipple(e):this.removeRipple(e)},i.prototype.removeRipple=function(e){var t=this;this.ripples.indexOf(e)<0||(this.ripples.splice(this.ripples.indexOf(e),1),e.removeClass("md-ripple-active"),e.addClass("md-ripple-remove"),0===this.ripples.length&&this.container.css({backgroundColor:""}),this.$timeout(function(){t.fadeOutComplete(e)},450,!1))},i.prototype.fadeOutComplete=function(e){e.remove(),this.lastRipple=null}}(),function(){!function(){function e(e){function n(n,i,r){return e.attach(n,i,t.extend({center:!1,dimBackground:!0,outline:!1,rippleSize:"full"},r))}return{attach:n}}e.$inject=["$mdInkRipple"],t.module("material.core").factory("$mdTabInkRipple",e)}()}(),function(){t.module("material.core.theming.palette",[]).constant("$mdColorPalette",{red:{50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300 A100",contrastStrongLightColors:"400 500 600 700 A200 A400 A700"},pink:{50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",A100:"#ff80ab",A200:"#ff4081",A400:"#f50057",A700:"#c51162",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"500 600 A200 A400 A700"},purple:{50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400 A200 A400 A700"},"deep-purple":{50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",A100:"#b388ff",A200:"#7c4dff",A400:"#651fff",A700:"#6200ea",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400 A200"},indigo:{50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",A100:"#8c9eff",A200:"#536dfe",A400:"#3d5afe",A700:"#304ffe",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400 A200 A400"},blue:{50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300 400 A100",contrastStrongLightColors:"500 600 700 A200 A400 A700"},"light-blue":{50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea",contrastDefaultColor:"dark",contrastLightColors:"600 700 800 900 A700",contrastStrongLightColors:"600 700 800 A700"},cyan:{50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4",contrastDefaultColor:"dark",contrastLightColors:"700 800 900",contrastStrongLightColors:"700 800 900"},teal:{50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700"},green:{50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700"},"light-green":{50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17",contrastDefaultColor:"dark",contrastLightColors:"700 800 900",contrastStrongLightColors:"700 800 900"},lime:{50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00",contrastDefaultColor:"dark",contrastLightColors:"900",contrastStrongLightColors:"900"},yellow:{50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",A100:"#ffff8d",A200:"#ffff00",A400:"#ffea00",A700:"#ffd600",contrastDefaultColor:"dark"},amber:{50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00",contrastDefaultColor:"dark"},orange:{50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00",contrastDefaultColor:"dark",contrastLightColors:"800 900",contrastStrongLightColors:"800 900"},"deep-orange":{50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300 400 A100 A200",contrastStrongLightColors:"500 600 700 800 900 A400 A700"},brown:{50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100 A200",contrastStrongLightColors:"300 400"},grey:{50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#ffffff",A200:"#000000",A400:"#303030",A700:"#616161",contrastDefaultColor:"dark",contrastLightColors:"600 700 800 900 A200 A400 A700"},"blue-grey":{50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300 A100 A200",contrastStrongLightColors:"400 500 700"}})}(),function(){!function(e){function t(e){var t=!!document.querySelector("[md-themes-disabled]");e.disableTheming(t)}function i(t,i){function r(e,t){return t=t||{},p[e]=a(e,t),f}function o(t,n){return a(t,e.extend({},p[t]||{},n))}function a(e,t){var n=E.filter(function(e){return!t[e]});if(n.length)throw new Error("Missing colors %1 in palette %2!".replace("%1",n.join(", ")).replace("%2",e));return t}function l(t,n){if(y[t])return y[t];var i="string"==typeof(n=n||"default")?y[n]:n,r=new u(t);return i&&e.forEach(i.colors,function(t,n){r.colors[n]={name:t.name,hues:e.extend({},t.hues)}}),y[t]=r,r}function u(t){function n(t){if((t=0===arguments.length||!!t)!==i.isDark){i.isDark=t,i.foregroundPalette=i.isDark?g:m,i.foregroundShadow=i.isDark?v:b;var n=i.isDark?S:x,r=i.isDark?x:S;return e.forEach(n,function(e,t){var n=i.colors[t],o=r[t];if(n)for(var a in n.hues)n.hues[a]===o[a]&&(n.hues[a]=e[a])}),i}}var i=this;i.name=t,i.colors={},i.dark=n,n(!1),A.forEach(function(t){var n=(i.isDark?S:x)[t];i[t+"Palette"]=function(r,o){var a=i.colors[t]={name:r,hues:e.extend({},n,o)};return Object.keys(a.hues).forEach(function(e){if(!n[e])throw new Error("Invalid hue name '%1' in theme %2's %3 color %4. Available hue names: %4".replace("%1",e).replace("%2",i.name).replace("%3",r).replace("%4",Object.keys(n).join(", ")))}),Object.keys(a.hues).map(function(e){return a.hues[e]}).forEach(function(e){if(-1==E.indexOf(e))throw new Error("Invalid hue value '%1' in theme %2's %3 color %4. Available hue values: %5".replace("%1",e).replace("%2",i.name).replace("%3",t).replace("%4",r).replace("%5",E.join(", ")))}),i},i[t+"Color"]=function(){var e=Array.prototype.slice.call(arguments);return console.warn("$mdThemingProviderTheme."+t+"Color() has been deprecated. Use $mdThemingProviderTheme."+t+"Palette() instead."),i[t+"Palette"].apply(i,e)}})}function d(t,i){function r(e){return e===n||""===e||a.THEMES[e]!==n}function o(n,o){function a(){return(l=o.controller("mdTheme")||n.data("$mdThemeController"))&&l.$mdTheme||("default"==w?"":w)}function s(e){if(e){r(e)||i.warn("Attempted to use unregistered theme '"+e+"'. Register it with $mdThemingProvider.theme().");var t=n.data("$mdThemeName");t&&n.removeClass("md-"+t+"-theme"),n.addClass("md-"+e+"-theme"),n.data("$mdThemeName",e),l&&n.data("$mdThemeController",l)}}var l=o.controller("mdTheme"),c=n.attr("md-theme-watch"),u=(_||e.isDefined(c))&&"false"!=c;s(a()),(_&&!function(){var e=o.controller("mdTheme");return!!e&&(n.on("$destroy",e.registerChanges(function(){s(a())})),!0)}()||!_&&u)&&n.on("$destroy",t.$watch(a,s))}var a=function(e,i){i===n&&(i=e,e=n),e===n&&(e=t),a.inherit(i,i)};return a.THEMES=e.extend({},y),a.PALETTES=e.extend({},p),a.inherit=o,a.registered=r,a.defaultTheme=function(){return w},a.generateTheme=function(e){c(y[e],e,T.nonce)},a.setBrowserColor=D,a}d.$inject=["$rootScope","$log"],p={};var f,y={},_=!1,w="default";e.extend(p,t);var C=function(e){var t=i.setMeta("theme-color",e),n=i.setMeta("msapplication-navbutton-color",e);return function(){t(),n()}},D=function(t){var n=(t=e.isObject(t)?t:{}).theme||"default",i=t.hue||"800",r=p[t.palette]||p[y[n].colors[t.palette||"primary"].name],o=e.isObject(r[i])?r[i].hex:r[i];return C(o)};return f={definePalette:r,extendPalette:o,theme:l,configuration:function(){return e.extend({},T,{defaultTheme:w,alwaysWatchTheme:_,registeredStyles:[].concat(T.registeredStyles)})},disableTheming:function(t){T.disableTheming=e.isUndefined(t)||!!t},registerStyles:function(e){T.registeredStyles.push(e)},setNonce:function(e){T.nonce=e},generateThemesOnDemand:function(e){T.generateOnDemand=e},setDefaultTheme:function(e){w=e},alwaysWatchTheme:function(e){_=e},enableBrowserColor:D,$get:d,_LIGHT_DEFAULT_HUES:x,_DARK_DEFAULT_HUES:S,_PALETTES:p,_THEMES:y,_parseRules:s,_rgba:h}}function r(t,n,i){return{priority:100,link:{pre:function(r,o,a){var s=[],l={registerChanges:function(t,n){return n&&(t=e.bind(n,t)),s.push(t),function(){var e=s.indexOf(t);e>-1&&s.splice(e,1)}},$setTheme:function(e){t.registered(e)||i.warn("attempted to use unregistered theme '"+e+"'"),l.$mdTheme=e,s.forEach(function(e){e()})}};o.data("$mdThemeController",l),l.$setTheme(n(a.mdTheme)(r)),a.$observe("mdTheme",l.$setTheme)}}}}function o(){return T.disableTheming=!0,{restrict:"A",priority:"900"}}function a(e){return e}function s(t,n,i){u(t,n),i=i.replace(/THEME_NAME/g,t.name);var r=[],o=t.colors[n],a=new RegExp("\\.md-"+t.name+"-theme","g"),s=new RegExp("('|\")?{{\\s*("+n+")-(color|contrast)-?(\\d\\.?\\d*)?\\s*}}(\"|')?","g"),l=/'?"?\{\{\s*([a-zA-Z]+)-(A?\d+|hue\-[0-3]|shadow|default)-?(\d\.?\d*)?(contrast)?\s*\}\}'?"?/g,c=p[o.name];return i=i.replace(l,function(e,n,i,r,o){return"foreground"===n?"shadow"==i?t.foregroundShadow:t.foregroundPalette[i]||t.foregroundPalette[1]:(0!==i.indexOf("hue")&&"default"!==i||(i=t.colors[n].hues[i]),h((p[t.colors[n].name][i]||"")[o?"contrast":"value"],r))}),e.forEach(o.hues,function(e,n){var o=i.replace(s,function(t,n,i,r,o){return h(c[e]["color"===r?"value":"contrast"],o)});if("default"!==n&&(o=o.replace(a,".md-"+t.name+"-theme.md-"+n)),"default"==t.name){var l=/((?:(?:(?: |>|\.|\w|-|:|\(|\)|\[|\]|"|'|=)+) )?)((?:(?:\w|\.|-)+)?)\.md-default-theme((?: |>|\.|\w|-|:|\(|\)|\[|\]|"|'|=)*)/g;o=o.replace(l,function(e,t,n,i){return e+", "+t+n+i})}r.push(o)}),r}function l(t,n){function i(t,n){var i=t.contrastDefaultColor,r=t.contrastLightColors||[],o=t.contrastStrongLightColors||[],a=t.contrastDarkColors||[];"string"==typeof r&&(r=r.split(" ")),"string"==typeof o&&(o=o.split(" ")),"string"==typeof a&&(a=a.split(" ")),delete t.contrastDefaultColor,delete t.contrastLightColors,delete t.contrastStrongLightColors,delete t.contrastDarkColors,e.forEach(t,function(n,s){if(!e.isObject(n)){var l=d(n);if(!l)throw new Error("Color %1, in palette %2's hue %3, is invalid. Hex or rgb(a) color expected.".replace("%1",n).replace("%2",t.name).replace("%3",s));t[s]={hex:t[s],value:l,contrast:function(){return"light"===i?a.indexOf(s)>-1?y:o.indexOf(s)>-1?w:_:r.indexOf(s)>-1?o.indexOf(s)>-1?w:_:y}()}}})}var r=document.head,o=r?r.firstElementChild:null,a=!T.disableTheming&&t.has("$MD_THEME_CSS")?t.get("$MD_THEME_CSS"):"";if(a+=T.registeredStyles.join(""),o&&0!==a.length){e.forEach(p,i);var s=a.split(/\}(?!(\}|'|"|;))/).filter(function(e){return e&&e.trim().length}).map(function(e){return e.trim()+"}"}),l=new RegExp("md-("+A.join("|")+")","g");A.forEach(function(e){D[e]=""}),s.forEach(function(e){e.match(l);for(var t,n=0;t=A[n];n++)if(e.indexOf(".md-"+t)>-1)return D[t]+=e;for(n=0;t=A[n];n++)if(e.indexOf(t)>-1)return D[t]+=e;return D[C]+=e}),T.generateOnDemand||e.forEach(n.THEMES,function(e){f[e.name]||"default"!==n.defaultTheme()&&"default"===e.name||c(e,e.name,T.nonce)})}}function c(e,t,n){var i=document.head,r=i?i.firstElementChild:null;f[t]||(A.forEach(function(t){for(var o=s(e,t,D[t]);o.length;){var a=o.shift();if(a){var l=document.createElement("style");l.setAttribute("md-theme-style",""),n&&l.setAttribute("nonce",n),l.appendChild(document.createTextNode(a)),i.insertBefore(l,r)}}}),f[e.name]=!0)}function u(e,t){if(!p[(e.colors[t]||{}).name])throw new Error("You supplied an invalid color palette for theme %1's %2 palette. Available palettes: %3".replace("%1",e.name).replace("%2",t).replace("%3",Object.keys(p).join(", ")))}function d(t){if(e.isArray(t)&&3==t.length)return t;if(/^rgb/.test(t))return t.replace(/(^\s*rgba?\(|\)\s*$)/g,"").split(",").map(function(e,t){return 3==t?parseFloat(e,10):parseInt(e,10)});if("#"==t.charAt(0)&&(t=t.substring(1)),/^([a-fA-F0-9]{3}){1,2}$/g.test(t)){var n=t.length/3,i=t.substr(0,n),r=t.substr(n,n),o=t.substr(2*n);return 1===n&&(i+=i,r+=r,o+=o),[parseInt(i,16),parseInt(r,16),parseInt(o,16)]}}function h(t,n){return t?(4==t.length&&(t=e.copy(t),n?t.pop():n=t.pop()),n&&("number"==typeof n||"string"==typeof n&&n.length)?"rgba("+t.join(",")+","+n+")":"rgb("+t.join(",")+")"):"rgb('0,0,0')"}t.$inject=["$mdThemingProvider"],r.$inject=["$mdTheming","$interpolate","$log"],a.$inject=["$mdTheming"],i.$inject=["$mdColorPalette","$$mdMetaProvider"],l.$inject=["$injector","$mdTheming"],e.module("material.core.theming",["material.core.theming.palette","material.core.meta"]).directive("mdTheme",r).directive("mdThemable",a).directive("mdThemesDisabled",o).provider("$mdTheming",i).config(t).run(l);var p,f={},m={name:"dark",1:"rgba(0,0,0,0.87)",2:"rgba(0,0,0,0.54)",3:"rgba(0,0,0,0.38)",4:"rgba(0,0,0,0.12)"},g={name:"light",1:"rgba(255,255,255,1.0)",2:"rgba(255,255,255,0.7)",3:"rgba(255,255,255,0.5)",4:"rgba(255,255,255,0.12)"},v="1px 1px 0px rgba(0,0,0,0.4), -1px -1px 0px rgba(0,0,0,0.4)",b="",y=d("rgba(0,0,0,0.87)"),_=d("rgba(255,255,255,0.87)"),w=d("rgb(255,255,255)"),A=["primary","accent","warn","background"],C="primary",x={accent:{default:"A200","hue-1":"A100","hue-2":"A400","hue-3":"A700"},background:{default:"50","hue-1":"A100","hue-2":"100","hue-3":"300"}},S={background:{default:"A400","hue-1":"800","hue-2":"900","hue-3":"A200"}};A.forEach(function(e){var t={default:"500","hue-1":"300","hue-2":"800","hue-3":"A100"};x[e]||(x[e]=t),S[e]||(S[e]=t)});var E=["50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700"],T={disableTheming:!1,generateOnDemand:!1,registeredStyles:[],nonce:null},D={}}(e.angular)}(),function(){function n(n,i,r,o,a){var s;return s={translate3d:function(e,t,n,i){function r(n){return a(e,{to:n||t,addClass:i.transitionOutClass,removeClass:i.transitionInClass}).start()}return a(e,{from:t,to:n,addClass:i.transitionInClass,removeClass:i.transitionOutClass}).start().then(function(){return r})},waitTransitionEnd:function(t,n){var a=3e3;return i(function(i,s){function l(e){e&&e.target!==t[0]||(e&&r.cancel(c),t.off(o.CSS.TRANSITIONEND,l),i())}(function(n){return"0s"==(n=n||e.getComputedStyle(t[0])).transitionDuration||!n.transition&&!n.transitionProperty})((n=n||{}).cachedTransitionStyles)&&(a=0);var c=r(l,n.timeout||a);t.on(o.CSS.TRANSITIONEND,l)})},calculateTransformValues:function(e,t){var n=t.element,i=t.bounds;if(n||i){var r=n?s.clientRect(n)||function(){var t=e?e.parent():null,n=t?t.parent():null;return n?s.clientRect(n):null}():s.copyRect(i),o=s.copyRect(e[0].getBoundingClientRect()),a=s.centerPointFor(o),l=s.centerPointFor(r);return{centerX:l.x-a.x,centerY:l.y-a.y,scaleX:Math.round(100*Math.min(.5,r.width/o.width))/100,scaleY:Math.round(100*Math.min(.5,r.height/o.height))/100}}return{centerX:0,centerY:0,scaleX:.5,scaleY:.5}},calculateZoomToOrigin:function(e,i){return t.bind(null,n.supplant,"translate3d( {centerX}px, {centerY}px, 0 ) scale( {scaleX}, {scaleY} )")(s.calculateTransformValues(e,i))},calculateSlideToOrigin:function(e,i){return t.bind(null,n.supplant,"translate3d( {centerX}px, {centerY}px, 0 )")(s.calculateTransformValues(e,i))},toCss:function(e){function n(e,n,r){t.forEach(n.split(" "),function(e){i[e]=r})}var i={};return t.forEach(e,function(e,r){if(!t.isUndefined(e))if("left top right bottom width height x y min-width min-height max-width max-height".indexOf(r)>=0)i[r]=e+"px";else switch(r){case"transition":n(r,o.CSS.TRANSITION,e);break;case"transform":n(r,o.CSS.TRANSFORM,e);break;case"transformOrigin":n(r,o.CSS.TRANSFORM_ORIGIN,e);break;case"font-size":i["font-size"]=e}}),i},toTransformCss:function(e,n,i){var r={};return t.forEach(o.CSS.TRANSFORM.split(" "),function(t){r[t]=e}),n&&(i=i||"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1) !important",r.transition=i),r},copyRect:function(e,n){return e?(n=n||{},t.forEach("left top right bottom width height".split(" "),function(t){n[t]=Math.round(e[t])}),n.width=n.width||n.right-n.left,n.height=n.height||n.bottom-n.top,n):null},clientRect:function(e){var n=t.element(e)[0].getBoundingClientRect();return function(e){return e&&e.width>0&&e.height>0}(n)?s.copyRect(n):null},centerPointFor:function(e){return e?{x:Math.round(e.left+e.width/2),y:Math.round(e.top+e.height/2)}:{x:0,y:0}}}}t.module("material.core").factory("$$mdAnimate",["$q","$timeout","$mdConstant","$animateCss",function(e,t,i,r){return function(o){return n(o,e,t,i,r)}}])}(),function(){t.version.minor>=4?t.module("material.core.animate",[]):function(){function e(e){return e.replace(/-[a-z]/g,function(e){return e.charAt(1).toUpperCase()})}var n=t.forEach,i=t.isDefined(document.documentElement.style.WebkitAppearance),r=i?"-webkit-":"",o=(i?"webkitTransitionEnd ":"")+"transitionend",a=(i?"webkitAnimationEnd ":"")+"animationend",s=["$document",function(e){return function(){return e[0].body.clientWidth+1}}],l=["$$rAF",function(e){return function(){var t=!1;return e(function(){t=!0}),function(n){t?n():e(n)}}}],c=["$q","$$rAFMutex",function(e,i){function r(e){this.setHost(e),this._doneCallbacks=[],this._runInAnimationFrame=i(),this._state=0}return r.prototype={setHost:function(e){this.host=e||{}},done:function(e){2===this._state?e():this._doneCallbacks.push(e)},progress:t.noop,getPromise:function(){if(!this.promise){var t=this;this.promise=e(function(e,n){t.done(function(t){!1===t?n():e()})})}return this.promise},then:function(e,t){return this.getPromise().then(e,t)},catch:function(e){return this.getPromise().catch(e)},finally:function(e){return this.getPromise().finally(e)},pause:function(){this.host.pause&&this.host.pause()},resume:function(){this.host.resume&&this.host.resume()},end:function(){this.host.end&&this.host.end(),this._resolve(!0)},cancel:function(){this.host.cancel&&this.host.cancel(),this._resolve(!1)},complete:function(e){var t=this;0===t._state&&(t._state=1,t._runInAnimationFrame(function(){t._resolve(e)}))},_resolve:function(e){2!==this._state&&(n(this._doneCallbacks,function(t){t(e)}),this._doneCallbacks.length=0,this._state=2)}},r.all=function(e,t){function i(n){o=o&&n,++r===e.length&&t(o)}var r=0,o=!0;n(e,function(e){e.done(i)})},r}];t.module("material.core.animate",[]).factory("$$forceReflow",s).factory("$$AnimateRunner",c).factory("$$rAFMutex",l).factory("$animateCss",["$window","$$rAF","$$AnimateRunner","$$forceReflow","$$jqLite","$timeout","$animate",function(t,s,l,c,u,d,h){function p(i,s){var c=[],u=w(i),p=u&&h.enabled(),g=!1,C=!1;p&&(s.transitionStyle&&c.push([r+"transition",s.transitionStyle]),s.keyframeStyle&&c.push([r+"animation",s.keyframeStyle]),s.delay&&c.push([r+"transition-delay",s.delay+"s"]),s.duration&&c.push([r+"transition-duration",s.duration+"s"]),g=s.keyframeStyle||s.to&&(s.duration>0||s.transitionStyle),C=!!s.addClass||!!s.removeClass,A(i,!0));var x=p&&(g||C);y(i,s);var S,E,T=!1;return{close:t.close,start:function(){function t(){if(!T)return T=!0,S&&E&&i.off(S,E),f(i,s),b(i,s),n(c,function(t){u.style[e(t[0])]=""}),h.complete(!0),h}var h=new l;return v(function(){if(A(i,!1),!x)return t();n(c,function(t){var n=t[0],i=t[1];u.style[e(n)]=i}),f(i,s);var l=m(i);if(0===l.duration)return t();var h=[];s.easing&&(l.transitionDuration&&h.push([r+"transition-timing-function",s.easing]),l.animationDuration&&h.push([r+"animation-timing-function",s.easing])),s.delay&&l.animationDelay&&h.push([r+"animation-delay",s.delay+"s"]),s.duration&&l.animationDuration&&h.push([r+"animation-duration",s.duration+"s"]),n(h,function(t){var n=t[0],i=t[1];u.style[e(n)]=i,c.push(t)});var p=1e3*l.delay,g=l.duration,v=1e3*g,b=Date.now();S=[],l.transitionDuration&&S.push(o),l.animationDuration&&S.push(a),S=S.join(" "),E=function(e){e.stopPropagation();var n=e.originalEvent||e,i=n.timeStamp||Date.now(),r=parseFloat(n.elapsedTime.toFixed(3));Math.max(i-b,0)>=p&&r>=g&&t()},i.on(S,E),_(i,s),d(t,p+1.5*v,!1)}),h}}}function f(e,t){t.addClass&&(u.addClass(e,t.addClass),t.addClass=null),t.removeClass&&(u.removeClass(e,t.removeClass),t.removeClass=null)}function m(e){function n(e){return i?"Webkit"+e.charAt(0).toUpperCase()+e.substr(1):e}var r=w(e),o=t.getComputedStyle(r),a=g(o[n("transitionDuration")]),s=g(o[n("animationDuration")]),l=g(o[n("transitionDelay")]),c=g(o[n("animationDelay")]);return s*=parseInt(o[n("animationIterationCount")],10)||1,{duration:Math.max(s,a),delay:Math.max(c,l),animationDuration:s,transitionDuration:a,animationDelay:c,transitionDelay:l}}function g(e){var t=0,i=(e||"").split(/\s*,\s*/);return n(i,function(e){"s"==e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),e=parseFloat(e)||0,t=t?Math.max(e,t):e}),t}function v(e){C&&C(),x.push(e),C=s(function(){C=null;for(var e=c(),t=0;t<x.length;t++)x[t](e);x.length=0})}function b(e,t){y(e,t),_(e,t)}function y(e,t){t.from&&(e.css(t.from),t.from=null)}function _(e,t){t.to&&(e.css(t.to),t.to=null)}function w(e){for(var t=0;t<e.length;t++)if(1===e[t].nodeType)return e[t]}function A(t,n){var i=w(t),o=e(r+"transition-delay");i.style[o]=n?"-9999s":""}var C,x=[];return p}])}()}(),function(){t.module("material.components.autocomplete",["material.core","material.components.icon","material.components.virtualRepeat"])}(),function(){t.module("material.components.backdrop",["material.core"]).directive("mdBackdrop",["$mdTheming","$mdUtil","$animate","$rootElement","$window","$log","$$rAF","$document",function(e,n,i,r,o,a,s,l){function c(c,d,h){function p(){var e=parseInt(f.height,10)+Math.abs(parseInt(f.top,10));d.css("height",e+"px")}i.pin&&i.pin(d,r);var f;s(function(){if("fixed"===(f=o.getComputedStyle(l[0].body)).position){var i=n.debounce(function(){f=o.getComputedStyle(l[0].body),p()},60,null,!1);p(),t.element(o).on("resize",i),c.$on("$destroy",function(){t.element(o).off("resize",i)})}var r=d.parent();r.length&&("BODY"===r[0].nodeName&&d.css("position","fixed"),"static"===o.getComputedStyle(r[0]).position&&a.warn(u),e.inherit(d,r))})}var u="<md-backdrop> may not work properly in a scrolled, static-positioned parent container.";return{restrict:"E",link:c}}])}(),function(){function e(e){return{restrict:"E",link:function(t,n){n.addClass("_md"),t.$on("$destroy",function(){e.destroy()})}}}function n(e){function n(e,n,o,a,s,l,c,u){function d(i,r,c,d){if((r=o.extractElementByName(r,"md-bottom-sheet")).attr("tabindex","-1"),r.hasClass("ng-cloak")){u.warn("$mdBottomSheet: using `<md-bottom-sheet ng-cloak >` will affect the bottom-sheet opening animations.",r[0])}c.disableBackdrop||((f=o.createBackdrop(i,"md-bottom-sheet-backdrop md-opaque"))[0].tabIndex=-1,c.clickOutsideToClose&&f.on("click",function(){o.nextTick(s.cancel,!0)}),a.inherit(f,c.parent),e.enter(f,c.parent,null));var h=new p(r,c.parent);return c.bottomSheet=h,a.inherit(h.element,c.parent),c.disableParentScroll&&(c.restoreScroll=o.disableScrollAround(h.element,c.parent)),e.enter(h.element,c.parent,f).then(function(){var e=o.findFocusTarget(r)||t.element(r[0].querySelector("button")||r[0].querySelector("a")||r[0].querySelector(o.prefixer("ng-click",!0)))||f;c.escapeToClose&&(c.rootElementKeyupCallback=function(e){e.keyCode===n.KEY_CODE.ESCAPE&&o.nextTick(s.cancel,!0)},l.on("keyup",c.rootElementKeyupCallback),e&&e.focus())})}function h(t,n,i){var r=i.bottomSheet;return i.disableBackdrop||e.leave(f),e.leave(r.element).then(function(){i.disableParentScroll&&(i.restoreScroll(),delete i.restoreScroll),r.cleanup()})}function p(e,t){function a(t){e.css(n.CSS.TRANSITION_DURATION,"0ms")}function l(t){var i=t.pointer.distanceY;i<5&&(i=Math.max(-r,i/2)),e.css(n.CSS.TRANSFORM,"translate3d(0,"+(r+i)+"px,0)")}function u(t){if(t.pointer.distanceY>0&&(t.pointer.distanceY>20||Math.abs(t.pointer.velocityY)>i)){var r=e.prop("offsetHeight")-t.pointer.distanceY,a=Math.min(r/t.pointer.velocityY*.75,500);e.css(n.CSS.TRANSITION_DURATION,a+"ms"),o.nextTick(s.cancel,!0)}else e.css(n.CSS.TRANSITION_DURATION,""),e.css(n.CSS.TRANSFORM,"")}var d=c.register(t,"drag",{horizontal:!1});return t.on("$md.dragstart",a).on("$md.drag",l).on("$md.dragend",u),{element:e,cleanup:function(){d(),t.off("$md.dragstart",a),t.off("$md.drag",l),t.off("$md.dragend",u)}}}var f;return{themable:!0,onShow:d,onRemove:h,disableBackdrop:!1,escapeToClose:!0,clickOutsideToClose:!0,disableParentScroll:!0}}n.$inject=["$animate","$mdConstant","$mdUtil","$mdTheming","$mdBottomSheet","$rootElement","$mdGesture","$log"];var i=.5,r=80;return e("$mdBottomSheet").setDefaults({methods:["disableParentScroll","escapeToClose","clickOutsideToClose"],options:n})}e.$inject=["$mdBottomSheet"],n.$inject=["$$interimElementProvider"],t.module("material.components.bottomSheet",["material.core","material.components.backdrop"]).directive("mdBottomSheet",e).provider("$mdBottomSheet",n)}(),function(){function e(e){return{restrict:"E",link:function(t,n){e(n)}}}function n(e,n,i,r){function o(e){return t.isDefined(e.href)||t.isDefined(e.ngHref)||t.isDefined(e.ngLink)||t.isDefined(e.uiSref)}function a(e,t){return o(t)?'<a class="md-button" ng-transclude></a>':'<button class="md-button" type="'+(void 0===t.type?"button":t.type)+'" ng-transclude></button>'}function s(a,s,l){n(s),e.attach(a,s),i.expectWithoutText(s,"aria-label"),o(l)&&t.isDefined(l.ngDisabled)&&a.$watch(l.ngDisabled,function(e){s.attr("tabindex",e?-1:0)}),s.on("click",function(e){!0===l.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),s.hasClass("md-no-focus")||(a.mouseActive=!1,s.on("mousedown",function(){a.mouseActive=!0,r(function(){a.mouseActive=!1},100)}).on("focus",function(){!1===a.mouseActive&&s.addClass("md-focused")}).on("blur",function(e){s.removeClass("md-focused")}))}return{restrict:"EA",replace:!0,transclude:!0,template:a,link:s}}n.$inject=["$mdButtonInkRipple","$mdTheming","$mdAria","$timeout"],e.$inject=["$mdTheming"],t.module("material.components.button",["material.core"]).directive("mdButton",n).directive("a",e)}(),function(){function e(e){return{restrict:"E",link:function(t,n,i){n.addClass("_md"),e(n)}}}e.$inject=["$mdTheming"],t.module("material.components.card",["material.core"]).directive("mdCard",e)}(),function(){t.module("material.components.chips",["material.core","material.components.autocomplete"])}(),function(){function e(e,n,i,r,o,a){function s(s,l){function c(s,l,c,u){function d(e){var t=e.which||e.keyCode;t!==i.KEY_CODE.SPACE&&t!==i.KEY_CODE.ENTER||(e.preventDefault(),l.addClass("md-focused"),h(e))}function h(e){l[0].hasAttribute("disabled")||s.skipToggle||s.$apply(function(){var t=c.ngChecked?c.checked:!u.$viewValue;u.$setViewValue(t,e&&e.type),u.$render()})}function p(){l.toggleClass("md-checked",!!u.$viewValue&&!m)}function f(e){(m=!1!==e)&&l.attr("aria-checked","mixed"),l.toggleClass("md-indeterminate",m)}var m;u=u||o.fakeNgModel(),r(l),l.children().on("focus",function(){l.focus()}),o.parseAttributeBoolean(c.mdIndeterminate)&&(f(),s.$watch(c.mdIndeterminate,f)),c.ngChecked&&s.$watch(s.$eval.bind(s,c.ngChecked),function(e){u.$setViewValue(e),u.$render()}),function(e,t,n){c[e]&&s.$watch(c[e],function(e){n[e]&&l.attr(t,n[e])})}("ngDisabled","tabindex",{true:"-1",false:c.tabindex}),n.expectWithText(l,"aria-label"),e.link.pre(s,{on:t.noop,0:{}},c,[u]),s.mouseActive=!1,l.on("click",h).on("keypress",d).on("mousedown",function(){s.mouseActive=!0,a(function(){s.mouseActive=!1},100)}).on("focus",function(){!1===s.mouseActive&&l.addClass("md-focused")}).on("blur",function(){l.removeClass("md-focused")}),u.$render=p}return l.$set("tabindex",l.tabindex||"0"),l.$set("type","checkbox"),l.$set("role",l.type),{pre:function(e,t){t.on("click",function(e){this.hasAttribute("disabled")&&e.stopImmediatePropagation()})},post:c}}return e=e[0],{restrict:"E",transclude:!0,require:"?ngModel",priority:210,template:'<div class="md-container" md-ink-ripple md-ink-ripple-checkbox><div class="md-icon"></div></div><div ng-transclude class="md-label"></div>',compile:s}}e.$inject=["inputDirective","$mdAria","$mdConstant","$mdTheming","$mdUtil","$timeout"],t.module("material.components.checkbox",["material.core"]).directive("mdCheckbox",e)}(),function(){!function(){function e(e,n,i){function o(e,t){try{t&&e.css(l(t))}catch(e){i.error(e.message)}}function a(e){return s(u(e))}function s(t,i){i=i||!1;var r=e.PALETTES[t.palette][t.hue];return r=i?r.contrast:r.value,n.supplant("rgba({0}, {1}, {2}, {3})",[r[0],r[1],r[2],r[3]||t.opacity])}function l(e){var n={},i=e.hasOwnProperty("color");return t.forEach(e,function(e,t){var r=u(e),o=t.indexOf("background")>-1;n[t]=s(r),o&&!i&&(n.color=s(r,!0))}),n}function c(n){return t.isDefined(e.THEMES[n.split("-")[0]])}function u(n){var i=n.split("-"),r=t.isDefined(e.THEMES[i[0]])?i.splice(0,1)[0]:e.defaultTheme();return{theme:r,palette:d(i,r),hue:h(i,r),opacity:i[2]||1}}function d(t,i){var o=t.length>1&&-1!==r.indexOf(t[1]),a=t[0].replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();if(o&&(a=t[0]+"-"+t.splice(1,1)),-1===r.indexOf(a)){var s=e.THEMES[i].colors[a];if(!s)throw new Error(n.supplant("mdColors: couldn't find '{palette}' in the palettes.",{palette:a}));a=s.name}return a}function h(t,i){var r=e.THEMES[i].colors;if("hue"===t[1]){var o=parseInt(t.splice(2,1)[0],10);if(o<1||o>3)throw new Error(n.supplant("mdColors: 'hue-{hueNumber}' is not a valid hue, can be only 'hue-1', 'hue-2' and 'hue-3'",{hueNumber:o}));if(t[1]="hue-"+o,!(t[0]in r))throw new Error(n.supplant("mdColors: 'hue-x' can only be used with [{availableThemes}], but was used with '{usedTheme}'",{availableThemes:Object.keys(r).join(", "),usedTheme:t[0]}));return r[t[0]].hues[t[1]]}return t[1]||r[t[0]in r?t[0]:"primary"].hues.default}return r=r||Object.keys(e.PALETTES),{applyThemeColors:o,getThemeColor:a,hasTheme:c}}function n(e,n,r,o){return{restrict:"A",require:["^?mdTheme"],compile:function(a,s){var l=function(){var e=s.mdColors,r=e.indexOf("::")>-1,o=!!r||i.test(s.mdColors);s.mdColors=e.replace("::","");var a=t.isDefined(s.mdColorsWatch);return!r&&!o&&(!a||n.parseAttributeBoolean(s.mdColorsWatch))}();return function(n,i,a,s){var c=s[0],u={},d=function(t){"string"!=typeof t&&(t=""),a.mdColors||(a.mdColors="{}");var i=o(a.mdColors)(n);return c&&Object.keys(i).forEach(function(n){var r=i[n];e.hasTheme(r)||(i[n]=(t||c.$mdTheme)+"-"+r)}),h(i),i},h=function(e){if(!t.equals(e,u)){var n=Object.keys(u);u.background&&!n.color&&n.push("color"),n.forEach(function(e){i.css(e,"")})}u=e},p=t.noop;c&&(p=c.registerChanges(function(t){e.applyThemeColors(i,d(t))})),n.$on("$destroy",function(){p()});try{l?n.$watch(d,t.bind(this,e.applyThemeColors,i),!0):e.applyThemeColors(i,d())}catch(e){r.error(e.message)}}}}}n.$inject=["$mdColors","$mdUtil","$log","$parse"],e.$inject=["$mdTheming","$mdUtil","$log"];var i=/^{((\s|,)*?["'a-zA-Z-]+?\s*?:\s*?('|")[a-zA-Z0-9-.]*('|"))+\s*}$/,r=null;t.module("material.components.colors",["material.core"]).directive("mdColors",n).service("$mdColors",e)}()}(),function(){function e(e){function t(e,t){this.$scope=e,this.$element=t}return{restrict:"E",controller:["$scope","$element",t],link:function(t,i){i.addClass("_md"),e(i),t.$broadcast("$mdContentLoaded",i),n(i[0])}}}function n(e){t.element(e).on("$md.pressdown",function(t){"t"===t.pointer.type&&(t.$materialScrollFixed||(t.$materialScrollFixed=!0,0===e.scrollTop?e.scrollTop=1:e.scrollHeight===e.scrollTop+e.offsetHeight&&(e.scrollTop-=1)))})}e.$inject=["$mdTheming"],t.module("material.components.content",["material.core"]).directive("mdContent",e)}(),function(){t.module("material.components.datepicker",["material.core","material.components.icon","material.components.virtualRepeat"])}(),function(){function e(e,n,i){return{restrict:"E",link:function(r,o){o.addClass("_md"),n(o),e(function(){function e(){o.toggleClass("md-content-overflow",a.scrollHeight>a.clientHeight)}var n,a=o[0].querySelector("md-dialog-content");a&&(n=a.getElementsByTagName("img"),e(),t.element(n).on("load",e)),r.$on("$destroy",function(){i.destroy(o)})})}}}function i(e){function i(e,t){return{template:['<md-dialog md-theme="{{ dialog.theme }}" aria-label="{{ dialog.ariaLabel }}" ng-class="dialog.css">','  <md-dialog-content class="md-dialog-content" role="document" tabIndex="-1">','    <h2 class="md-title">{{ dialog.title }}</h2>','    <div ng-if="::dialog.mdHtmlContent" class="md-dialog-content-body" ','        ng-bind-html="::dialog.mdHtmlContent"></div>','    <div ng-if="::!dialog.mdHtmlContent" class="md-dialog-content-body">',"      <p>{{::dialog.mdTextContent}}</p>","    </div>",'    <md-input-container md-no-float ng-if="::dialog.$type == \'prompt\'" class="md-prompt-input-container">','      <input ng-keypress="dialog.keypress($event)" md-autofocus ng-model="dialog.result"              placeholder="{{::dialog.placeholder}}">',"    </md-input-container>","  </md-dialog-content>","  <md-dialog-actions>",'    <md-button ng-if="dialog.$type === \'confirm\' || dialog.$type === \'prompt\'"               ng-click="dialog.abort()" class="md-primary md-cancel-button">',"      {{ dialog.cancel }}","    </md-button>",'    <md-button ng-click="dialog.hide()" class="md-primary md-confirm-button" md-autofocus="dialog.$type===\'alert\'">',"      {{ dialog.ok }}","    </md-button>","  </md-dialog-actions>","</md-dialog>"].join("").replace(/\s\s+/g,""),controller:function(){var n="prompt"==this.$type;n&&this.initialValue&&(this.result=this.initialValue),this.hide=function(){e.hide(!n||this.result)},this.abort=function(){e.cancel()},this.keypress=function(n){n.keyCode===t.KEY_CODE.ENTER&&e.hide(this.result)}},controllerAs:"dialog",bindToController:!0}}function r(e,i,r,s,l,c,u,d,h,p,f){function m(e){y(e),e.contentElement&&(e.restoreContentElement=_(e))}function g(e,t,n,i){if(i){if(i.mdHtmlContent=i.htmlContent||n.htmlContent||"",i.mdTextContent=i.textContent||n.textContent||i.content||n.content||"",i.mdHtmlContent&&!p.has("$sanitize"))throw Error("The ngSanitize module must be loaded in order to use htmlContent.");if(i.mdHtmlContent&&i.mdTextContent)throw Error("md-dialog cannot have both `htmlContent` and `textContent`")}}function v(e,n,i,o){function a(){n[0].querySelector(".md-actions")&&h.warn("Using a class of md-actions is deprecated, please use <md-dialog-actions>.")}function s(){i.focusOnOpen&&(r.findFocusTarget(n)||function(){var e=n[0].querySelector(".dialog-close");if(!e){var t=n[0].querySelectorAll(".md-actions button, md-dialog-actions button");e=t[t.length-1]}return e}()||l).focus()}t.element(c[0].body).addClass("md-dialog-is-showing");var l=n.find("md-dialog");if(l.hasClass("ng-cloak")){h.warn("$mdDialog: using `<md-dialog ng-cloak >` will affect the dialog opening animations.",n[0])}return w(i),x(l,i),C(e,n,i),A(n,i),T(n,i).then(function(){S(n,i),a(),s()})}function b(e,n,i){function r(){t.element(c[0].body).removeClass("md-dialog-is-showing"),i.contentElement?(i.reverseContainerStretch(),i.restoreContentElement()):n.remove(),i.$destroy||i.origin.focus()}return i.deactivateListeners(),i.unlockScreenReader(),i.hideBackdrop(i.$destroy),o&&o.parentNode&&o.parentNode.removeChild(o),a&&a.parentNode&&a.parentNode.removeChild(a),i.$destroy?r():function(){return D(n,i)}().then(r)}function y(e){if(!e.theme&&(e.theme=f.defaultTheme(),e.targetEvent&&e.targetEvent.target)){var n=t.element(e.targetEvent.target);e.theme=(n.controller("mdTheme")||{}).$mdTheme||e.theme}}function _(e){function n(e){var t=e.parentNode,n=e.nextElementSibling;return function(){n?t.insertBefore(e,n):t.appendChild(e)}}var i=e.contentElement,r=null;return t.isString(i)?r=n(i=document.querySelector(i)):(i=i[0]||i,r=document.contains(i)?n(i):function(){i.parentNode.removeChild(i)}),e.element=t.element(i),e.skipCompile=!0,r}function w(e){function i(e,i){var r=t.element(e||{});if(r&&r.length){var o={top:0,left:0,height:0,width:0},a=t.isFunction(r[0].getBoundingClientRect);return t.extend(i||{},{element:a?r:n,bounds:a?r[0].getBoundingClientRect():t.extend({},o,r[0]),focus:t.bind(r,r.focus)})}}function r(e,n){return t.isString(e)&&(e=c[0].querySelector(e)),t.element(e||n)}e.origin=t.extend({element:null,bounds:null,focus:t.noop},e.origin||{}),e.parent=r(e.parent,d),e.closeTo=i(r(e.closeTo)),e.openFrom=i(r(e.openFrom)),e.targetEvent&&(e.origin=i(e.targetEvent.target,e.origin))}function A(n,i){var o=t.element(u),a=r.debounce(function(){E(n,i)},60),l=[],c=function(){var t="alert"==i.$type?e.hide:e.cancel;r.nextTick(t,!0)};if(i.escapeToClose){var d=i.parent,h=function(e){e.keyCode===s.KEY_CODE.ESCAPE&&(e.stopPropagation(),e.preventDefault(),c())};n.on("keydown",h),d.on("keydown",h),l.push(function(){n.off("keydown",h),d.off("keydown",h)})}if(o.on("resize",a),l.push(function(){o.off("resize",a)}),i.clickOutsideToClose){var p,f=n,m=function(e){p=e.target},g=function(e){p===f[0]&&e.target===f[0]&&(e.stopPropagation(),e.preventDefault(),c())};f.on("mousedown",m),f.on("mouseup",g),l.push(function(){f.off("mousedown",m),f.off("mouseup",g)})}i.deactivateListeners=function(){l.forEach(function(e){e()}),i.deactivateListeners=null}}function C(e,t,n){n.disableParentScroll&&(n.restoreScroll=r.disableScrollAround(t,n.parent)),n.hasBackdrop&&(n.backdrop=r.createBackdrop(e,"md-dialog-backdrop md-opaque"),l.enter(n.backdrop,n.parent)),n.hideBackdrop=function(e){n.backdrop&&(e?n.backdrop.remove():l.leave(n.backdrop)),n.disableParentScroll&&(n.restoreScroll(),delete n.restoreScroll),n.hideBackdrop=null}}function x(e,t){var n="alert"===t.$type?"alertdialog":"dialog",s=e.find("md-dialog-content"),l=e.attr("id"),c="dialogContent_"+(l||r.nextUid());e.attr({role:n,tabIndex:"-1"}),0===s.length&&(s=e,l&&(c=l)),s.attr("id",c),e.attr("aria-describedby",c),t.ariaLabel?i.expect(e,"aria-label",t.ariaLabel):i.expectAsync(e,"aria-label",function(){var e=s.text().split(/\s+/);return e.length>3&&(e=e.slice(0,3).concat("...")),e.join(" ")}),(o=document.createElement("div")).classList.add("md-dialog-focus-trap"),o.tabIndex=0,a=o.cloneNode(!1);var u=function(){e.focus()};o.addEventListener("focus",u),a.addEventListener("focus",u),e[0].parentNode.insertBefore(o,e[0]),e.after(a)}function S(e,t){function n(e){for(;e.parentNode;){if(e===document.body)return;for(var t=e.parentNode.children,r=0;r<t.length;r++)e===t[r]||I(t[r],["SCRIPT","STYLE"])||t[r].setAttribute("aria-hidden",i);n(e=e.parentNode)}}var i=!0;n(e[0]),t.unlockScreenReader=function(){i=!1,n(e[0]),t.unlockScreenReader=null}}function E(e,t){var n="fixed"==u.getComputedStyle(c[0].body).position,i=t.backdrop?u.getComputedStyle(t.backdrop[0]):null,o=i?Math.min(c[0].body.clientHeight,Math.ceil(Math.abs(parseInt(i.height,10)))):0,a={top:e.css("top"),height:e.css("height")};return e.css({top:(n?r.scrollTop(t.parent):0)+"px",height:o?o+"px":"100%"}),function(){e.css(a)}}function T(e,t){t.parent.append(e),t.reverseContainerStretch=E(e,t);var n=e.find("md-dialog"),i=r.dom.animator,o=i.calculateZoomToOrigin,a={transitionInClass:"md-transition-in",transitionOutClass:"md-transition-out"},s=i.toTransformCss(o(n,t.openFrom||t.origin)),l=i.toTransformCss("");return n.toggleClass("md-dialog-fullscreen",!!t.fullscreen),i.translate3d(n,s,l,a).then(function(e){return t.reverseAnimate=function(){return delete t.reverseAnimate,t.closeTo?(a={transitionInClass:"md-transition-out",transitionOutClass:"md-transition-in"},s=l,l=i.toTransformCss(o(n,t.closeTo)),i.translate3d(n,s,l,a)):e(l=i.toTransformCss(o(n,t.origin)))},t.clearAnimate=function(){return delete t.clearAnimate,n.removeClass([a.transitionOutClass,a.transitionInClass].join(" ")),i.translate3d(n,l,i.toTransformCss(""),{})},!0})}function D(e,t){return t.reverseAnimate().then(function(){t.contentElement&&t.clearAnimate()})}function I(e,t){if(-1!==t.indexOf(e.nodeName))return!0}return{hasBackdrop:!0,isolateScope:!0,onCompiling:m,onShow:v,onShowing:g,onRemove:b,clickOutsideToClose:!1,escapeToClose:!0,targetEvent:null,contentElement:null,closeTo:null,openFrom:null,focusOnOpen:!0,disableParentScroll:!0,autoWrap:!0,fullscreen:!1,transformTemplate:function(e,t){return'<div class="md-dialog-container" tabindex="-1">'+function(e){return t.autoWrap&&!/<\/md-dialog>/g.test(e)?"<md-dialog>"+(e||"")+"</md-dialog>":e||""}(e)+"</div>"}}}i.$inject=["$mdDialog","$mdConstant"],r.$inject=["$mdDialog","$mdAria","$mdUtil","$mdConstant","$animate","$document","$window","$rootElement","$log","$injector","$mdTheming"];var o,a;return e("$mdDialog").setDefaults({methods:["disableParentScroll","hasBackdrop","clickOutsideToClose","escapeToClose","targetEvent","closeTo","openFrom","parent","fullscreen","contentElement"],options:r}).addPreset("alert",{methods:["title","htmlContent","textContent","content","ariaLabel","ok","theme","css"],options:i}).addPreset("confirm",{methods:["title","htmlContent","textContent","content","ariaLabel","ok","cancel","theme","css"],options:i}).addPreset("prompt",{methods:["title","htmlContent","textContent","initialValue","content","placeholder","ariaLabel","ok","cancel","theme","css"],options:i})}e.$inject=["$$rAF","$mdTheming","$mdDialog"],i.$inject=["$$interimElementProvider"],t.module("material.components.dialog",["material.core","material.components.backdrop"]).directive("mdDialog",e).provider("$mdDialog",i)}(),function(){function e(e){return{restrict:"E",link:e}}e.$inject=["$mdTheming"],t.module("material.components.divider",["material.core"]).directive("mdDivider",e)}(),function(){!function(){function e(e){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],compile:function(t,n){var i=t.children();e.prefixer().hasAttribute(i,"ng-repeat")?i.addClass("md-fab-action-item"):i.wrap('<div class="md-fab-action-item">')}}}e.$inject=["$mdUtil"],t.module("material.components.fabActions",["material.core"]).directive("mdFabActions",e)}()}(),function(){!function(){function e(e,n,i,r,o,a){function s(e){"click"==e.type&&x(e),"focusout"!=e.type||I||(I=a(function(){T.close()},100,!1)),"focusin"==e.type&&I&&(a.cancel(I),I=null)}function l(){T.currentActionIndex=-1}function c(){n[0].scrollHeight>0?i.addClass(n,"_md-animations-ready").then(function(){n.removeClass("md-animations-waiting")}):D<10&&(a(c,100),D+=1)}function u(){n.on("keydown",p),r.nextTick(function(){t.element(document).on("click touchend",h)})}function d(){n.off("keydown",p),t.element(document).off("click touchend",h)}function h(e){if(e.target){var t=r.getClosest(e.target,"md-fab-trigger"),n=r.getClosest(e.target,"md-fab-actions");t||n||T.close()}}function p(e){switch(e.which){case o.KEY_CODE.ESCAPE:return T.close(),e.preventDefault(),!1;case o.KEY_CODE.LEFT_ARROW:return b(e),!1;case o.KEY_CODE.UP_ARROW:return y(e),!1;case o.KEY_CODE.RIGHT_ARROW:return _(e),!1;case o.KEY_CODE.DOWN_ARROW:return w(e),!1}}function f(e){g(e,-1)}function m(e){g(e,1)}function g(e,n){var i=v();T.currentActionIndex=T.currentActionIndex+n,T.currentActionIndex=Math.min(i.length-1,T.currentActionIndex),T.currentActionIndex=Math.max(0,T.currentActionIndex);var r=t.element(i[T.currentActionIndex]).children()[0];t.element(r).attr("tabindex",0),r.focus(),e.preventDefault(),e.stopImmediatePropagation()}function v(){var e=E()[0].querySelectorAll(".md-fab-action-item");return t.forEach(e,function(e){t.element(t.element(e).children()[0]).attr("tabindex",-1)}),e}function b(e){"left"===T.direction?m(e):f(e)}function y(e){"down"===T.direction?f(e):m(e)}function _(e){"left"===T.direction?f(e):m(e)}function w(e){"up"===T.direction?f(e):m(e)}function A(e){return r.getClosest(e,"md-fab-trigger")}function C(e){return r.getClosest(e,"md-fab-actions")}function x(e){A(e.target)&&T.toggle(),C(e.target)&&T.close()}function S(){return n.find("md-fab-trigger")}function E(){return n.find("md-fab-actions")}var T=this;T.open=function(){e.$evalAsync("vm.isOpen = true")},T.close=function(){e.$evalAsync("vm.isOpen = false"),n.find("md-fab-trigger")[0].focus()},T.toggle=function(){e.$evalAsync("vm.isOpen = !vm.isOpen")},function(){T.direction=T.direction||"down",T.isOpen=T.isOpen||!1,l(),n.addClass("md-animations-waiting")}(),function(){var i=["click","focusin","focusout"];t.forEach(i,function(e){n.on(e,s)}),e.$on("$destroy",function(){t.forEach(i,function(e){n.off(e,s)}),d()})}(),function(){e.$watch("vm.direction",function(e,t){i.removeClass(n,"md-"+t),i.addClass(n,"md-"+e),l()});var t,r;e.$watch("vm.isOpen",function(e){l(),t&&r||(t=S(),r=E()),e?u():d();var o=e?"md-is-open":"",a=e?"":"md-is-open";t.attr("aria-haspopup",!0),t.attr("aria-expanded",e),r.attr("aria-hidden",!e),i.setClass(n,o,a)})}();var D=0;c();var I}e.$inject=["$scope","$element","$animate","$mdUtil","$mdConstant","$timeout"],t.module("material.components.fabShared",["material.core"]).controller("MdFabController",e)}()}(),function(){!function(){function n(){function e(e,t){t.prepend('<div class="_md-css-variables"></div>')}return{restrict:"E",scope:{direction:"@?mdDirection",isOpen:"=?mdOpen"},bindToController:!0,controller:"MdFabController",controllerAs:"vm",link:e}}function i(n){function i(e){n(e,o,!1)}function r(n){if(!n.hasClass("md-animations-waiting")||n.hasClass("_md-animations-ready")){var i=n[0],r=n.controller("mdFabSpeedDial"),o=i.querySelectorAll(".md-fab-action-item"),a=i.querySelector("md-fab-trigger"),s=i.querySelector("._md-css-variables"),l=parseInt(e.getComputedStyle(s).zIndex);t.forEach(o,function(e,t){var n=e.style;n.transform=n.webkitTransform="",n.transitionDelay="",n.opacity=1,n.zIndex=o.length-t+l}),a.style.zIndex=l+o.length+1,r.isOpen||t.forEach(o,function(e,t){var n,i,o=e.style,s=(a.clientHeight-e.clientHeight)/2,l=(a.clientWidth-e.clientWidth)/2;switch(r.direction){case"up":n=e.scrollHeight*(t+1)+s,i="Y";break;case"down":n=-(e.scrollHeight*(t+1)+s),i="Y";break;case"left":n=e.scrollWidth*(t+1)+l,i="X";break;case"right":n=-(e.scrollWidth*(t+1)+l),i="X"}var c="translate"+i+"("+n+"px)";o.transform=o.webkitTransform=c})}}return{addClass:function(e,t,n){e.hasClass("md-fling")?(r(e),i(n)):n()},removeClass:function(e,t,n){r(e),i(n)}}}function r(n){function i(e){n(e,o,!1)}function r(n){var i=n[0],r=n.controller("mdFabSpeedDial"),o=i.querySelectorAll(".md-fab-action-item"),s=i.querySelector("._md-css-variables"),l=parseInt(e.getComputedStyle(s).zIndex);t.forEach(o,function(e,t){var n=e.style,i=t*a;n.opacity=r.isOpen?1:0,n.transform=n.webkitTransform=r.isOpen?"scale(1)":"scale(0)",n.transitionDelay=(r.isOpen?i:o.length-i)+"ms",n.zIndex=o.length-t+l})}var a=65;return{addClass:function(e,t,n){r(e),i(n)},removeClass:function(e,t,n){r(e),i(n)}}}i.$inject=["$timeout"],r.$inject=["$timeout"];var o=300;t.module("material.components.fabSpeedDial",["material.core","material.components.fabShared","material.components.fabActions"]).directive("mdFabSpeedDial",n).animation(".md-fling",i).animation(".md-scale",r).service("mdFabSpeedDialFlingAnimation",i).service("mdFabSpeedDialScaleAnimation",r)}()}(),function(){!function(){function n(){function e(e,t,n){t.addClass("md-fab-toolbar"),t.find("md-fab-trigger").find("button").prepend('<div class="md-fab-toolbar-background"></div>')}return{restrict:"E",transclude:!0,template:'<div class="md-fab-toolbar-wrapper">  <div class="md-fab-toolbar-content" ng-transclude></div></div>',scope:{direction:"@?mdDirection",isOpen:"=?mdOpen"},bindToController:!0,controller:"MdFabController",controllerAs:"vm",link:e}}function i(){function n(n,i,r){if(i){var o=n[0],a=n.controller("mdFabToolbar"),s=o.querySelector(".md-fab-toolbar-background"),l=o.querySelector("md-fab-trigger button"),c=o.querySelector("md-toolbar"),u=o.querySelector("md-fab-trigger button md-icon"),d=n.find("md-fab-actions").children();if(l&&s){var h=e.getComputedStyle(l).getPropertyValue("background-color"),p=o.offsetWidth,f=(o.offsetHeight,p/l.offsetWidth*2);s.style.backgroundColor=h,s.style.borderRadius=p+"px",a.isOpen?(c.style.pointerEvents="inherit",s.style.width=l.offsetWidth+"px",s.style.height=l.offsetHeight+"px",s.style.transform="scale("+f+")",s.style.transitionDelay="0ms",u&&(u.style.transitionDelay=".3s"),t.forEach(d,function(e,t){e.style.transitionDelay=25*(d.length-t)+"ms"})):(c.style.pointerEvents="none",s.style.transform="scale(1)",s.style.top="0",n.hasClass("md-right")&&(s.style.left="0",s.style.right=null),n.hasClass("md-left")&&(s.style.right="0",s.style.left=null),s.style.transitionDelay="200ms",u&&(u.style.transitionDelay="0ms"),t.forEach(d,function(e,t){e.style.transitionDelay=200+25*t+"ms"}))}}}return{addClass:function(e,t,i){n(e,t,i),i()},removeClass:function(e,t,i){n(e,t,i),i()}}}t.module("material.components.fabToolbar",["material.core","material.components.fabShared","material.components.fabActions"]).directive("mdFabToolbar",n).animation(".md-fab-toolbar",i).service("mdFabToolbarAnimation",i)}()}(),function(){function e(e,i,r,o){function a(n,a,s,l){function c(){l.layoutDelegate=t.noop,C();for(var e in i.MEDIA)o.getQuery(i.MEDIA[e]).removeListener(A)}function u(e){null==e?l.invalidateLayout():o(e)&&l.invalidateLayout()}function d(e){var i=m(),o={tileSpans:g(i),colCount:v(),rowMode:_(),rowHeight:y(),gutter:b()};if(e||!t.equals(o,x)){var s=r(o.colCount,o.tileSpans,i).map(function(e,n){return{grid:{element:a,style:f(o.colCount,n,o.gutter,o.rowMode,o.rowHeight)},tiles:e.map(function(e,r){return{element:t.element(i[r]),style:p(e.position,e.spans,o.colCount,n,o.gutter,o.rowMode,o.rowHeight)}})}}).reflow().performance();n.mdOnLayout({$event:{performance:s}}),x=o}}function h(e){return S+e+E}function p(e,t,n,i,r,o,a){var s=1/n*100,l=(n-1)/n,c=T({share:s,gutterShare:l,gutter:r}),u={left:D({unit:c,offset:e.col,gutter:r}),width:I({unit:c,span:t.col,gutter:r}),paddingTop:"",marginTop:"",top:"",height:""};switch(o){case"fixed":u.top=D({unit:a,offset:e.row,gutter:r}),u.height=I({unit:a,span:t.row,gutter:r});break;case"ratio":h=T({share:d=s/a,gutterShare:l,gutter:r});u.paddingTop=I({unit:h,span:t.row,gutter:r}),u.marginTop=D({unit:h,offset:e.row,gutter:r});break;case"fit":var d=1/i*100,h=T({share:d,gutterShare:(i-1)/i,gutter:r});u.top=D({unit:h,offset:e.row,gutter:r}),u.height=I({unit:h,span:t.row,gutter:r})}return u}function f(e,t,n,i,r){var o={};switch(i){case"fixed":o.height=I({unit:r,span:t,gutter:n}),o.paddingBottom="";break;case"ratio":var a=T({share:1/e*100*(1/r),gutterShare:1===e?0:(e-1)/e,gutter:n});o.height="",o.paddingBottom=I({unit:a,span:t,gutter:n})}return o}function m(){return[].filter.call(a.children(),function(e){return"MD-GRID-TILE"==e.tagName&&!e.$$mdDestroyed})}function g(e){return[].map.call(e,function(e){var n=t.element(e).controller("mdGridTile");return{row:parseInt(o.getResponsiveAttribute(n.$attrs,"md-rowspan"),10)||1,col:parseInt(o.getResponsiveAttribute(n.$attrs,"md-colspan"),10)||1}})}function v(){var e=parseInt(o.getResponsiveAttribute(s,"md-cols"),10);if(isNaN(e))throw"md-grid-list: md-cols attribute was not found, or contained a non-numeric value";return e}function b(){return w(o.getResponsiveAttribute(s,"md-gutter")||1)}function y(){var e=o.getResponsiveAttribute(s,"md-row-height");if(!e)throw"md-grid-list: md-row-height attribute was not found";switch(_()){case"fixed":return w(e);case"ratio":var t=e.split(":");return parseFloat(t[0])/parseFloat(t[1]);case"fit":return 0}}function _(){var e=o.getResponsiveAttribute(s,"md-row-height");if(!e)throw"md-grid-list: md-row-height attribute was not found";return"fit"==e?"fit":-1!==e.indexOf(":")?"ratio":"fixed"}function w(e){return/\D$/.test(e)?e:e+"px"}a.addClass("_md"),a.attr("role","list"),l.layoutDelegate=d;var A=t.bind(l,l.invalidateLayout),C=function(){for(var e in i.MEDIA)o(e),o.getQuery(i.MEDIA[e]).addListener(A);return o.watchResponsiveAttributes(["md-cols","md-row-height","md-gutter"],s,u)}();n.$on("$destroy",c);var x,S=e.startSymbol(),E=e.endSymbol(),T=e(h("share")+"% - ("+h("gutter")+" * "+h("gutterShare")+")"),D=e("calc(("+h("unit")+" + "+h("gutter")+") * "+h("offset")+")"),I=e("calc(("+h("unit")+") * "+h("span")+" + ("+h("span")+" - 1) * "+h("gutter")+")")}return{restrict:"E",controller:n,scope:{mdOnLayout:"&"},link:a}}function n(e){this.layoutInvalidated=!1,this.tilesInvalidated=!1,this.$timeout_=e.nextTick,this.layoutDelegate=t.noop}function i(e){function n(t,n){var i,a,s,l,c,u;return l=e.time(function(){a=r(t,n)}),i={layoutInfo:function(){return a},map:function(t){return c=e.time(function(){var e=i.layoutInfo();s=t(e.positioning,e.rowCount)}),i},reflow:function(t){return u=e.time(function(){(t||o)(s.grid,s.tiles)}),i},performance:function(){return{tileCount:n.length,layoutTime:l,mapTime:c,reflowTime:u,totalTime:l+c+u}}}}function i(e,t){e.element.css(e.style),t.forEach(function(e){e.element.css(e.style)})}function r(e,t){function n(t,n){if(t.col>e)throw"md-grid-list: Tile at position "+n+" has a colspan ("+t.col+") that exceeds the column count ("+e+")";for(var c=0,u=0;u-c<t.col;)a>=e?i():-1!==(c=l.indexOf(0,a))&&-1!==(u=o(c+1))?a=u+1:(c=u=0,i());return r(c,t.col,t.row),a=c+t.col,{col:c,row:s}}function i(){a=0,s++,r(0,e,-1)}function r(e,t,n){for(var i=e;i<e+t;i++)l[i]=Math.max(l[i]+n,0)}function o(e){var t;for(t=e;t<l.length;t++)if(0!==l[t])return t;if(t===l.length)return t}var a=0,s=0,l=function(){for(var t=[],n=0;n<e;n++)t.push(0);return t}();return{positioning:t.map(function(e,t){return{spans:e,position:n(e,t)}}),rowCount:s+Math.max.apply(Math,l)}}var o=i;return n.animateWith=function(e){o=t.isFunction(e)?e:i},n}function r(e){function n(n,i,r,o){i.attr("role","listitem");var a=e.watchResponsiveAttributes(["md-colspan","md-rowspan"],r,t.bind(o,o.invalidateLayout));o.invalidateTiles(),n.$on("$destroy",function(){i[0].$$mdDestroyed=!0,a(),o.invalidateLayout()}),t.isDefined(n.$parent.$index)&&n.$watch(function(){return n.$parent.$index},function(e,t){e!==t&&o.invalidateTiles()})}return{restrict:"E",require:"^mdGridList",template:"<figure ng-transclude></figure>",transclude:!0,scope:{},controller:["$attrs",function(e){this.$attrs=e}],link:n}}function o(){return{template:"<figcaption ng-transclude></figcaption>",transclude:!0}}n.$inject=["$mdUtil"],i.$inject=["$mdUtil"],e.$inject=["$interpolate","$mdConstant","$mdGridLayout","$mdMedia"],r.$inject=["$mdMedia"],t.module("material.components.gridList",["material.core"]).directive("mdGridList",e).directive("mdGridTile",r).directive("mdGridTileFooter",o).directive("mdGridTileHeader",o).factory("$mdGridLayout",i),n.prototype={invalidateTiles:function(){this.tilesInvalidated=!0,this.invalidateLayout()},invalidateLayout:function(){this.layoutInvalidated||(this.layoutInvalidated=!0,this.$timeout_(t.bind(this,this.layout)))},layout:function(){try{this.layoutDelegate(this.tilesInvalidated)}finally{this.layoutInvalidated=!1,this.tilesInvalidated=!1}}}}(),function(){t.module("material.components.icon",["material.core"])}(),function(){function n(e,t){function n(t){var n=t[0].querySelector(o),i=t[0].querySelector(a);return n&&t.addClass("md-icon-left"),i&&t.addClass("md-icon-right"),function(t,n){e(n)}}function i(e,n,i,r){var o=this;o.isErrorGetter=i.mdIsError&&t(i.mdIsError),o.delegateClick=function(){o.input.focus()},o.element=n,o.setFocused=function(e){n.toggleClass("md-input-focused",!!e)},o.setHasValue=function(e){n.toggleClass("md-input-has-value",!!e)},o.setHasPlaceholder=function(e){n.toggleClass("md-input-has-placeholder",!!e)},o.setInvalid=function(e){e?r.addClass(n,"md-input-invalid"):r.removeClass(n,"md-input-invalid")},e.$watch(function(){return o.label&&o.input},function(e){e&&!o.label.attr("for")&&o.label.attr("for",o.input.attr("id"))})}i.$inject=["$scope","$element","$attrs","$animate"];var r=["INPUT","TEXTAREA","SELECT","MD-SELECT"],o=r.reduce(function(e,t){return e.concat(["md-icon ~ "+t,".md-icon ~ "+t])},[]).join(","),a=r.reduce(function(e,t){return e.concat([t+" ~ md-icon",t+" ~ .md-icon"])},[]).join(",");return{restrict:"E",compile:n,controller:i}}function i(){return{restrict:"E",require:"^?mdInputContainer",link:function(e,t,n,i){!i||n.mdNoFloat||t.hasClass("md-container-ignore")||(i.label=t,e.$on("$destroy",function(){i.label=null}))}}}function r(e,n,i,r,o){function a(a,s,l,c){function u(e){return h.setHasValue(!f.$isEmpty(e)),e}function d(){h.setHasValue(s.val().length>0||(s[0].validity||{}).badInput)}var h=c[0],p=!!c[1],f=c[1]||e.fakeNgModel(),m=c[2],g=t.isDefined(l.readonly),v=e.parseAttributeBoolean(l.mdNoAsterisk),b=s[0].tagName.toLowerCase();if(h)if("hidden"!==l.type){if(h.input){if(h.input[0].contains(s[0]))return;throw new Error("<md-input-container> can only have *one* <input>, <textarea> or <md-select> child element!")}h.input=s,function(){h.label&&l.$observe("required",function(e){h.label.toggleClass("md-required",e&&!v)})}();var y=t.element('<div class="md-errors-spacer">');s.after(y),h.label||i.expect(s,"aria-label",l.placeholder),s.addClass("md-input"),s.attr("id")||s.attr("id","input_"+e.nextUid()),"input"===b&&"number"===l.type&&l.min&&l.max&&!l.step?s.attr("step","any"):"textarea"===b&&function(){function i(){s.attr("rows",1).css("height","auto").addClass("md-no-flex");var e=c();if(!y){var t=s[0].style.padding||"";y=s.css("padding",0).prop("offsetHeight"),s[0].style.padding=t}if(g&&y&&(e=Math.max(e,y*g)),v&&y){var n=y*v;n<e?(s.attr("md-no-autogrow",""),e=n):s.removeAttr("md-no-autogrow")}y&&s.attr("rows",Math.round(e/y)),s.css("height",e+"px").removeClass("md-no-flex")}function c(){var e=_.offsetHeight,t=_.scrollHeight-e;return e+Math.max(t,0)}function u(t){return e.nextTick(i),t}function d(){if(m&&(m=!1,t.element(n).off("resize",i),b&&b(),s.attr("md-no-autogrow","").off("input",i),p)){var e=f.$formatters.indexOf(u);e>-1&&f.$formatters.splice(e,1)}}var m=!l.hasOwnProperty("mdNoAutogrow");if(function(){function n(e){e.preventDefault(),p=!0,f=e.clientY,m=parseFloat(s.css("height"))||s.prop("offsetHeight")}function i(e){p&&(e.preventDefault(),d(),g.addClass("md-input-resized"))}function r(t){p&&s.css("height",m+(t.pointer.y-f)-e.scrollTop()+"px")}function c(e){p&&(p=!1,g.removeClass("md-input-resized"))}if(!l.hasOwnProperty("mdNoResize")){var u=t.element('<div class="md-resize-handle"></div>'),p=!1,f=null,m=0,g=h.element,v=o.register(u,"drag",{horizontal:!1});s.wrap('<div class="md-resize-wrapper">').after(u),u.on("mousedown",n),g.on("$md.dragstart",i).on("$md.drag",r).on("$md.dragend",c),a.$on("$destroy",function(){u.off("mousedown",n).remove(),g.off("$md.dragstart",i).off("$md.drag",r).off("$md.dragend",c),v(),u=null,g=null,v=null})}}(),m){var g=l.hasOwnProperty("rows")?parseInt(l.rows):NaN,v=l.hasOwnProperty("maxRows")?parseInt(l.maxRows):NaN,b=a.$on("md-resize-textarea",i),y=null,_=s[0];if(r(function(){e.nextTick(i)},10,!1),s.on("input",i),p&&f.$formatters.push(u),g||s.attr("rows",1),t.element(n).on("resize",i),a.$on("$destroy",d),l.hasOwnProperty("mdDetectHidden")){var w=function(){var e=!1;return function(){var t=0===_.offsetHeight;!1===t&&!0===e&&i(),e=t}}();a.$watch(function(){return e.nextTick(w,!1),!0})}}}(),p||d();var _=h.isErrorGetter||function(){return f.$invalid&&(f.$touched||m&&m.$submitted)};a.$watch(_,h.setInvalid),l.ngValue&&l.$observe("value",d),f.$parsers.push(u),f.$formatters.push(u),s.on("input",d),g||s.on("focus",function(t){e.nextTick(function(){h.setFocused(!0)})}).on("blur",function(t){e.nextTick(function(){h.setFocused(!1),d()})}),a.$on("$destroy",function(){h.setFocused(!1),h.setHasValue(!1),h.input=null})}else s.attr("aria-hidden","true")}return{restrict:"E",require:["^?mdInputContainer","?ngModel","?^form"],link:a}}function o(e,n){function i(i,r,o,a){function s(e){return c.parent?(c.text(String(r.val()||e||"").length+" / "+l),e):e}var l,c,u,d=a[0],h=a[1];n.nextTick(function(){u=t.element(h.element[0].querySelector(".md-errors-spacer")),c=t.element('<div class="md-char-counter">'),u.append(c),o.$set("ngTrim","false"),d.$formatters.push(s),d.$viewChangeListeners.push(s),r.on("input keydown keyup",function(){s()}),i.$watch(o.mdMaxlength,function(n){l=n,t.isNumber(n)&&n>0?(c.parent().length||e.enter(c,u),s()):e.leave(c)}),d.$validators["md-maxlength"]=function(e,n){return!t.isNumber(l)||l<0||(e||r.val()||n||"").length<=l}})}return{restrict:"A",require:["ngModel","^mdInputContainer"],link:i}}function a(e){function n(n,i,r,o){if(o){var a=o.element.find("label"),s=o.element.attr("md-no-float");if(a&&a.length||""===s||n.$eval(s))o.setHasPlaceholder(!0);else if("MD-SELECT"!=i[0].nodeName){var l=t.element('<label ng-click="delegateClick()" tabindex="-1">'+r.placeholder+"</label>");r.$set("placeholder",null),o.element.addClass("md-icon-float").prepend(l),e(l)(n)}}}return{restrict:"A",require:"^^?mdInputContainer",priority:200,link:{pre:n}}}function s(e){function t(t,n,i){function r(){a=!0,e(function(){n[0].select(),a=!1},1,!1)}function o(e){a&&e.preventDefault()}if("INPUT"===n[0].nodeName||"TEXTAREA"===n[0].nodeName){var a=!1;n.on("focus",r).on("mouseup",o),t.$on("$destroy",function(){n.off("focus",r).off("mouseup",o)})}}return{restrict:"A",link:t}}function l(){function e(e,n,i,r){r&&(n.toggleClass("md-input-messages-animation",!0),n.toggleClass("md-auto-hide",!0),("false"==i.mdAutoHide||t(i))&&n.toggleClass("md-auto-hide",!1))}function t(e){return C.some(function(t){return e[t]})}return{restrict:"EA",link:e,require:"^^?mdInputContainer"}}function c(e){function t(t){function n(t){return!!e.getClosest(t,"md-input-container")}function i(e){e.toggleClass("md-input-message-animation",!0)}if(n(t))i(t);else if(function(){for(var e=t[0];e=e.parentNode;)if(e.nodeType===Node.DOCUMENT_FRAGMENT_NODE)return!0;return!1}())return function(e,r){n(r)&&i(t)}}return{restrict:"EA",compile:t,priority:100}}function u(e,t,n){return y(e,t,n),{addClass:function(e,t,n){p(e,n)}}}function d(e,t,n){return y(e,t,n),{enter:function(e,t){p(e,t)},leave:function(e,t){f(e,t)},addClass:function(e,t,n){"ng-hide"==t?f(e,n):n()},removeClass:function(e,t,n){"ng-hide"==t?p(e,n):n()}}}function h(e,t,n){return y(e,t,n),{enter:function(e,t){m(e).start().done(t)},leave:function(e,t){g(e).start().done(t)}}}function p(e,n){var i,r=[],o=b(e);t.forEach(o.children(),function(e){i=m(t.element(e)),r.push(i.start())}),_.all(r,n)}function f(e,n){var i,r=[],o=b(e);t.forEach(o.children(),function(e){i=g(t.element(e)),r.push(i.start())}),_.all(r,n)}function m(t){var n=parseInt(e.getComputedStyle(t[0]).height),i=parseInt(e.getComputedStyle(t[0]).marginTop),r=b(t),o=v(t);return i>-n||r.hasClass("md-auto-hide")&&!o.hasClass("md-input-invalid")?w(t,{}):w(t,{event:"enter",structural:!0,from:{opacity:0,"margin-top":-n+"px"},to:{opacity:1,"margin-top":"0"},duration:.3})}function g(t){var n=t[0].offsetHeight;return 0==e.getComputedStyle(t[0]).opacity?w(t,{}):w(t,{event:"leave",structural:!0,from:{opacity:1,"margin-top":0},to:{opacity:0,"margin-top":-n+"px"},duration:.3})}function v(e){return e.controller("mdInputContainer").element}function b(e){return e.hasClass("md-input-message-animation")?t.element(A.getClosest(e,function(e){return e.classList.contains("md-input-messages-animation")})):t.element(e[0].querySelector(".md-input-messages-animation"))}function y(e,t,n){_=e,w=t,A=n}n.$inject=["$mdTheming","$parse"],r.$inject=["$mdUtil","$window","$mdAria","$timeout","$mdGesture"],o.$inject=["$animate","$mdUtil"],a.$inject=["$compile"],c.$inject=["$mdUtil"],s.$inject=["$timeout"],u.$inject=["$$AnimateRunner","$animateCss","$mdUtil"],d.$inject=["$$AnimateRunner","$animateCss","$mdUtil"],h.$inject=["$$AnimateRunner","$animateCss","$mdUtil"],t.module("material.components.input",["material.core"]).directive("mdInputContainer",n).directive("label",i).directive("input",r).directive("textarea",r).directive("mdMaxlength",o).directive("placeholder",a).directive("ngMessages",l).directive("ngMessage",c).directive("ngMessageExp",c).directive("mdSelectOnFocus",s).animation(".md-input-invalid",u).animation(".md-input-messages-animation",d).animation(".md-input-message-animation",h).service("mdInputInvalidAnimation",u).service("mdInputMessagesAnimation",d).service("mdInputMessageAnimation",h);var _,w,A,C=["ngIf","ngShow","ngHide","ngSwitchWhen","ngSwitchDefault"]}(),function(){function e(e){return{restrict:"E",compile:function(t){return t[0].setAttribute("role","list"),e}}}function n(e,n,i,r){var o=["md-checkbox","md-switch","md-menu"];return{restrict:"E",controller:"MdListController",compile:function(a,s){function l(e){if("div"==e)(b=t.element('<div class="md-no-style md-list-item-inner">')).append(a.contents()),a.addClass("md-proxy-focus");else{b=t.element('<div class="md-button md-no-style">   <div class="md-list-item-inner"></div></div>');var n=t.element('<md-button class="md-no-style"></md-button>');n[0].setAttribute("aria-label",a[0].textContent),u(a[0],n[0]),a.hasClass("md-no-focus")&&n.addClass("md-no-focus"),b.prepend(n),b.children().eq(1).append(a.contents()),a.addClass("_md-button-wrap")}a[0].setAttribute("tabindex","-1"),a.append(b)}function c(n,i){if(n&&!h(n)&&n.hasAttribute("ng-click")){e.expect(n,"aria-label");var r=t.element('<md-button class="md-secondary md-icon-button">');u(n,r[0],["ng-if","ng-hide","ng-show"]),n.setAttribute("tabindex","-1"),r.append(n),n=r[0]}n&&(!p(n)||!s.ngClick&&d(n))&&t.element(n).removeClass("md-secondary"),a.addClass("md-with-secondary"),i.append(n)}function u(e,n,r){var o=i.prefixer(["ng-if","ng-click","ng-dblclick","aria-label","ng-disabled","ui-sref","href","ng-href","target","ng-attr-ui-sref","ui-sref-opts"]);r&&(o=o.concat(i.prefixer(r))),t.forEach(o,function(t){e.hasAttribute(t)&&(n.setAttribute(t,e.getAttribute(t)),e.removeAttribute(t))})}function d(e){return-1!=o.indexOf(e.nodeName.toLowerCase())}function h(e){var t=e.nodeName.toUpperCase();return"MD-BUTTON"==t||"BUTTON"==t}function p(e){for(var t=e.attributes,n=0;n<t.length;n++)if("ngClick"===s.$normalize(t[n].name))return!0;return!1}function f(e,a,s,l){function c(e){var t=["md-slider"];if(!e.path)return-1!==t.indexOf(e.target.tagName.toLowerCase());for(var n=e.path.indexOf(a.children()[0]),i=0;i<n;i++)if(-1!==t.indexOf(e.path[i].tagName.toLowerCase()))return!0}a.addClass("_md");var u=[],d=a[0].firstElementChild,h=a.hasClass("_md-button-wrap")?d.firstElementChild:d,f=h&&p(h);!function(){d&&d.children&&!f&&t.forEach(o,function(e){t.forEach(d.querySelectorAll(e+":not(.md-secondary)"),function(e){u.push(e)})})}(),function(){(1==u.length||f)&&(a.addClass("md-clickable"),f||l.attachRipple(e,t.element(a[0].querySelector(".md-no-style"))))}(),a.hasClass("md-proxy-focus")&&u.length&&t.forEach(u,function(n){n=t.element(n),e.mouseActive=!1,n.on("mousedown",function(){e.mouseActive=!0,r(function(){e.mouseActive=!1},100)}).on("focus",function(){!1===e.mouseActive&&a.addClass("md-focused"),n.on("blur",function e(){a.removeClass("md-focused"),n.off("blur",e)})})});var m=function(e){"INPUT"==e.target.nodeName||"TEXTAREA"==e.target.nodeName||e.target.isContentEditable||(e.which||e.keyCode)==n.KEY_CODE.SPACE&&h&&(h.click(),e.preventDefault(),e.stopPropagation())};f||u.length||h&&h.addEventListener("keypress",m),a.off("click"),a.off("keypress"),1==u.length&&h&&a.children().eq(0).on("click",function(e){c(e)||!i.getClosest(e.target,"BUTTON")&&h.contains(e.target)&&t.forEach(u,function(n){e.target===n||n.contains(e.target)||("MD-MENU"===n.nodeName&&(n=n.children[0]),t.element(n).triggerHandler("click"))})}),e.$on("$destroy",function(){h&&h.removeEventListener("keypress",m)})}var m,g,v=a[0].querySelectorAll(".md-secondary"),b=a;if(a[0].setAttribute("role","listitem"),s.ngClick||s.ngDblclick||s.ngHref||s.href||s.uiSref||s.ngAttrUiSref)l("button");else{for(var y,_=0;y=o[_];++_)if(g=a[0].querySelector(y)){m=!0;break}m?l("div"):a[0].querySelector("md-button:not(.md-secondary):not(.md-exclude)")||a.addClass("md-no-proxy")}return function(){var e=t.element('<div class="md-secondary-container">');t.forEach(v,function(t){c(t,e)}),b.append(e)}(),function(){for(var e,t,n=["md-switch","md-checkbox"],i=0;t=n[i];++i)if((e=a.find(t)[0])&&!e.hasAttribute("aria-label")){var r=a.find("p")[0];if(!r)return;e.setAttribute("aria-label","Toggle "+r.textContent)}}(),m&&"MD-MENU"===g.nodeName&&function(){var e=t.element(g),n="left";(e.parent().hasClass("md-secondary-container")||g.parentNode.firstElementChild!==g)&&(n="right"),e.attr("md-position-mode")||e.attr("md-position-mode",n+" target");var i=e.children().eq(0);p(i[0])||i.attr("ng-click","$mdOpenMenu($event)"),i.attr("aria-label")||i.attr("aria-label","Open List Menu")}(),f}}}function i(e,t,n){function i(e,t){var i={};n.attach(e,t,i)}this.attachRipple=i}i.$inject=["$scope","$element","$mdListInkRipple"],e.$inject=["$mdTheming"],n.$inject=["$mdAria","$mdConstant","$mdUtil","$timeout"],t.module("material.components.list",["material.core"]).controller("MdListController",i).directive("mdList",e).directive("mdListItem",n)}(),function(){t.module("material.components.menu",["material.core","material.components.backdrop"])}(),function(){t.module("material.components.menuBar",["material.core","material.components.icon","material.components.menu"])}(),function(){function e(e,n){return{restrict:"E",transclude:!0,controller:i,controllerAs:"ctrl",bindToController:!0,scope:{mdSelectedNavItem:"=?",navBarAriaLabel:"@?"},template:'<div class="md-nav-bar"><nav role="navigation"><ul class="_md-nav-bar-list" ng-transclude role="listbox"tabindex="0"ng-focus="ctrl.onFocus()"ng-blur="ctrl.onBlur()"ng-keydown="ctrl.onKeydown($event)"aria-label="{{ctrl.navBarAriaLabel}}"></ul></nav><md-nav-ink-bar></md-nav-ink-bar></div>',link:function(i,r,o,a){n(r),a.navBarAriaLabel||e.expectAsync(r,"aria-label",t.noop)}}}function i(e,t,n,i){this._$timeout=n,this._$scope=t,this._$mdConstant=i,this.mdSelectedNavItem,this.navBarAriaLabel,this._navBarEl=e[0],this._inkbar;var r=this,o=this._$scope.$watch(function(){return r._navBarEl.querySelectorAll("._md-nav-button").length},function(e){e>0&&(r._initTabs(),o())})}function r(e){return{restrict:"E",require:["mdNavItem","^mdNavBar"],controller:o,bindToController:!0,controllerAs:"ctrl",replace:!0,transclude:!0,template:'<li class="md-nav-item" role="option" aria-selected="{{ctrl.isSelected()}}"><md-button ng-if="ctrl.mdNavSref" class="_md-nav-button md-accent"ng-class="ctrl.getNgClassMap()"tabindex="-1"ui-sref="{{ctrl.mdNavSref}}"><span ng-transclude class="_md-nav-button-text"></span></md-button><md-button ng-if="ctrl.mdNavHref" class="_md-nav-button md-accent"ng-class="ctrl.getNgClassMap()"tabindex="-1"ng-href="{{ctrl.mdNavHref}}"><span ng-transclude class="_md-nav-button-text"></span></md-button><md-button ng-if="ctrl.mdNavClick" class="_md-nav-button md-accent"ng-class="ctrl.getNgClassMap()"tabindex="-1"ng-click="ctrl.mdNavClick()"><span ng-transclude class="_md-nav-button-text"></span></md-button></li>',scope:{mdNavClick:"&?",mdNavHref:"@?",mdNavSref:"@?",name:"@"},link:function(n,i,r,o){var a=o[0],s=o[1];e(function(){a.name||(a.name=t.element(i[0].querySelector("._md-nav-button-text")).text().trim()),t.element(i[0].querySelector("._md-nav-button")).on("click",function(){s.mdSelectedNavItem=a.name,n.$apply()})})}}}function o(e){this._$element=e,this.mdNavClick,this.mdNavHref,this.name,this._selected=!1,this._focused=!1;var t=!!e.attr("md-nav-click"),n=!!e.attr("md-nav-href"),i=!!e.attr("md-nav-sref");if((t?1:0)+(n?1:0)+(i?1:0)>1)throw Error("Must specify exactly one of md-nav-click, md-nav-href, md-nav-sref for nav-item directive")}i.$inject=["$element","$scope","$timeout","$mdConstant"],r.$inject=["$$rAF"],o.$inject=["$element"],e.$inject=["$mdAria","$mdTheming"],t.module("material.components.navBar",["material.core"]).controller("MdNavBarController",i).directive("mdNavBar",e).controller("MdNavItemController",o).directive("mdNavItem",r),i.prototype._initTabs=function(){this._inkbar=t.element(this._navBarEl.getElementsByTagName("md-nav-ink-bar")[0]);var e=this;this._$timeout(function(){e._updateTabs(e.mdSelectedNavItem,n)}),this._$scope.$watch("ctrl.mdSelectedNavItem",function(t,n){e._$timeout(function(){e._updateTabs(t,n)})})},i.prototype._updateTabs=function(e,t){var n=this,i=this._getTabs(),r=-1,o=-1,a=this._getTabByName(e),s=this._getTabByName(t);s&&(s.setSelected(!1),r=i.indexOf(s)),a&&(a.setSelected(!0),o=i.indexOf(a)),this._$timeout(function(){n._updateInkBarStyles(a,o,r)})},i.prototype._updateInkBarStyles=function(e,t,n){if(this._inkbar.toggleClass("_md-left",t<n).toggleClass("_md-right",t>n),this._inkbar.css({display:t<0?"none":""}),e){var i=e.getButtonEl(),r=i.offsetLeft;this._inkbar.css({left:r+"px",width:i.offsetWidth+"px"})}},i.prototype._getTabs=function(){return Array.prototype.slice.call(this._navBarEl.querySelectorAll(".md-nav-item")).map(function(e){return t.element(e).controller("mdNavItem")})},i.prototype._getTabByName=function(e){return this._findTab(function(t){return t.getName()==e})},i.prototype._getSelectedTab=function(){return this._findTab(function(e){return e.isSelected()})},i.prototype.getFocusedTab=function(){return this._findTab(function(e){return e.hasFocus()})},i.prototype._findTab=function(e){for(var t=this._getTabs(),n=0;n<t.length;n++)if(e(t[n]))return t[n];return null},i.prototype.onFocus=function(){var e=this._getSelectedTab();e&&e.setFocused(!0)},i.prototype.onBlur=function(){var e=this.getFocusedTab();e&&e.setFocused(!1)},i.prototype._moveFocus=function(e,t){e.setFocused(!1),t.setFocused(!0)},i.prototype.onKeydown=function(e){var t=this._$mdConstant.KEY_CODE,n=this._getTabs(),i=this.getFocusedTab();if(i){var r=n.indexOf(i);switch(e.keyCode){case t.UP_ARROW:case t.LEFT_ARROW:r>0&&this._moveFocus(i,n[r-1]);break;case t.DOWN_ARROW:case t.RIGHT_ARROW:r<n.length-1&&this._moveFocus(i,n[r+1]);break;case t.SPACE:case t.ENTER:this._$timeout(function(){i.getButtonEl().click()})}}},o.prototype.getNgClassMap=function(){return{"md-active":this._selected,"md-primary":this._selected,"md-unselected":!this._selected,"md-focused":this._focused}},o.prototype.getName=function(){return this.name},o.prototype.getButtonEl=function(){return this._$element[0].querySelector("._md-nav-button")},o.prototype.setSelected=function(e){this._selected=e},o.prototype.isSelected=function(){return this._selected},o.prototype.setFocused=function(e){this._focused=e},o.prototype.hasFocus=function(){return this._focused}}(),function(){function e(e,n,i,a){this._defaultConfigOptions={bindToController:!0,clickOutsideToClose:!1,disableParentScroll:!1,escapeToClose:!1,focusOnOpen:!0,fullscreen:!1,hasBackdrop:!1,propagateContainerEvents:!1,transformTemplate:t.bind(this,this._wrapTemplate),trapFocus:!1,zIndex:s},this._config={},this._$rootElement=e,this._$rootScope=n,this._$injector=i,this._$window=a,this._trackedPanels={},this.animation=o.animation,this.xPosition=r.xPosition,this.yPosition=r.yPosition}function i(e,t){this._$q=t.get("$q"),this._$mdCompiler=t.get("$mdCompiler"),this._$mdConstant=t.get("$mdConstant"),this._$mdUtil=t.get("$mdUtil"),this._$rootScope=t.get("$rootScope"),this._$animate=t.get("$animate"),this._$mdPanel=t.get("$mdPanel"),this._$log=t.get("$log"),this._$window=t.get("$window"),this._$$rAF=t.get("$$rAF"),this.id=e.id,this.config=e,this.panelContainer,this.panelEl,this.isAttached=!1,this._removeListeners=[],this._topFocusTrap,this._bottomFocusTrap,this._backdropRef,this._restoreScroll=null}function r(e){this._$window=e.get("$window"),this._isRTL="rtl"===e.get("$mdUtil").bidi(),this._absolute=!1,this._relativeToEl,this._top="",this._bottom="",this._left="",this._right="",this._translateX=[],this._translateY=[],this._positions=[],this._actualPosition}function o(e){this._$mdUtil=e.get("$mdUtil"),this._openFrom,this._closeTo,this._animationClass=""}function a(e){var n=t.isString(e)?document.querySelector(e):e;return t.element(n)}e.$inject=["$rootElement","$rootScope","$injector","$window"],t.module("material.components.panel",["material.core","material.components.backdrop"]).service("$mdPanel",e);var s=80,l=t.element('<div class="_md-panel-focus-trap" tabindex="0"></div>');e.prototype.create=function(e){if(e=e||{},t.isDefined(e.id)&&this._trackedPanels[e.id])return this._trackedPanels[e.id];this._config={id:e.id||"panel_"+this._$injector.get("$mdUtil").nextUid(),scope:this._$rootScope.$new(!0),attachTo:this._$rootElement},t.extend(this._config,this._defaultConfigOptions,e);var n=new i(this._config,this._$injector);return this._trackedPanels[e.id]=n,n},e.prototype.open=function(e){var t=this.create(e);return t.open().then(function(){return t})},e.prototype.newPanelPosition=function(){return new r(this._$injector)},e.prototype.newPanelAnimation=function(){return new o(this._$injector)},e.prototype._wrapTemplate=function(e){return'<div class="md-panel-outer-wrapper">  <div class="md-panel" style="left: -9999px;">'+(e||"")+"</div></div>"},i.prototype.open=function(){var e=this;return this._$q(function(t,n){var i=e._done(t,e),r=e._simpleBind(e.show,e);e.attach().then(r).then(i).catch(n)})},i.prototype.close=function(){var e=this;return this._$q(function(t,n){var i=e._done(t,e),r=e._simpleBind(e.detach,e);e.hide().then(r).then(i).catch(n)})},i.prototype.attach=function(){if(this.isAttached&&this.panelEl)return this._$q.when(this);var e=this;return this._$q(function(n,i){var r=e._done(n,e),o=e.config.onDomAdded||t.noop,a=function(t){return e.isAttached=!0,e._addEventListeners(),t};e._$q.all([e._createBackdrop(),e._createPanel().then(a).catch(i)]).then(o).then(r).catch(i)})},i.prototype.detach=function(){if(!this.isAttached)return this._$q.when(this);var e=this,n=e.config.onDomRemoved||t.noop,i=function(){return e._removeEventListeners(),e._topFocusTrap&&e._topFocusTrap.parentNode&&e._topFocusTrap.parentNode.removeChild(e._topFocusTrap),e._bottomFocusTrap&&e._bottomFocusTrap.parentNode&&e._bottomFocusTrap.parentNode.removeChild(e._bottomFocusTrap),e.panelContainer.remove(),e.isAttached=!1,e._$q.when(e)};return this._restoreScroll&&(this._restoreScroll(),this._restoreScroll=null),this._$q(function(t,r){var o=e._done(t,e);e._$q.all([i(),!e._backdropRef||e._backdropRef.detach()]).then(n).then(o).catch(r)})},i.prototype.destroy=function(){this.config.scope.$destroy(),this.config.locals=null},i.prototype.show=function(){if(!this.panelContainer)return this._$q(function(e,t){t("Panel does not exist yet. Call open() or attach().")});if(!this.panelContainer.hasClass("_md-panel-hidden"))return this._$q.when(this);var e=this,n=function(){return e.panelContainer.removeClass("_md-panel-hidden"),e._animateOpen()};return this._$q(function(i,r){var o=e._done(i,e),a=e.config.onOpenComplete||t.noop;e._$q.all([e._backdropRef?e._backdropRef.show():e,n().then(function(){e._focusOnOpen()},r)]).then(a).then(o).catch(r)})},i.prototype.hide=function(){if(!this.panelContainer)return this._$q(function(e,t){t("Panel does not exist yet. Call open() or attach().")});if(this.panelContainer.hasClass("_md-panel-hidden"))return this._$q.when(this);var e=this;return this._$q(function(n,i){var r=e._done(n,e),o=e.config.onRemoving||t.noop,s=function(){var t=e.config.origin;t&&a(t).focus()},l=function(){e.panelContainer.addClass("_md-panel-hidden")};e._$q.all([e._backdropRef?e._backdropRef.hide():e,e._animateClose().then(o).then(l).then(s).catch(i)]).then(r,i)})},i.prototype.addClass=function(e,t){if(this._$log.warn("The addClass method is in the process of being deprecated. Full deprecation is scheduled for the Angular Material 1.2 release. To achieve the same results, use the panelContainer or panelEl JQLite elements that are referenced in MdPanelRef."),!this.panelContainer)throw new Error("Panel does not exist yet. Call open() or attach().");t||this.panelContainer.hasClass(e)?t&&!this.panelEl.hasClass(e)&&this.panelEl.addClass(e):this.panelContainer.addClass(e)},i.prototype.removeClass=function(e,t){if(this._$log.warn("The removeClass method is in the process of being deprecated. Full deprecation is scheduled for the Angular Material 1.2 release. To achieve the same results, use the panelContainer or panelEl JQLite elements that are referenced in MdPanelRef."),!this.panelContainer)throw new Error("Panel does not exist yet. Call open() or attach().");!t&&this.panelContainer.hasClass(e)?this.panelContainer.removeClass(e):t&&this.panelEl.hasClass(e)&&this.panelEl.removeClass(e)},i.prototype.toggleClass=function(e,t){if(this._$log.warn("The toggleClass method is in the process of being deprecated. Full deprecation is scheduled for the Angular Material 1.2 release. To achieve the same results, use the panelContainer or panelEl JQLite elements that are referenced in MdPanelRef."),!this.panelContainer)throw new Error("Panel does not exist yet. Call open() or attach().");t?this.panelEl.toggleClass(e):this.panelContainer.toggleClass(e)},i.prototype._createPanel=function(){var e=this;return this._$q(function(n,i){e.config.locals||(e.config.locals={}),e.config.locals.mdPanelRef=e,e._$mdCompiler.compile(e.config).then(function(r){e.panelContainer=r.link(e.config.scope),a(e.config.attachTo).append(e.panelContainer),e.config.disableParentScroll&&(e._restoreScroll=e._$mdUtil.disableScrollAround(null,e.panelContainer,{disableScrollMask:!0})),e.panelEl=t.element(e.panelContainer[0].querySelector(".md-panel")),e.config.panelClass&&e.panelEl.addClass(e.config.panelClass),e.config.propagateContainerEvents&&e.panelContainer.css("pointer-events","none"),e._$animate.pin&&e._$animate.pin(e.panelContainer,a(e.config.attachTo)),e._configureTrapFocus(),e._addStyles().then(function(){n(e)},i)},i)})},i.prototype._addStyles=function(){var e=this;return this._$q(function(t){e.panelContainer.css("z-index",e.config.zIndex),e.panelEl.css("z-index",e.config.zIndex+1);var n=function(){e.panelEl.css("left",""),e.panelContainer.addClass("_md-panel-hidden"),t(e)};if(e.config.fullscreen)return e.panelEl.addClass("_md-panel-fullscreen"),void n();e.config.position?e._$rootScope.$$postDigest(function(){e._updatePosition(!0),t(e)}):n()})},i.prototype.updatePosition=function(e){if(!this.panelContainer)throw new Error("Panel does not exist yet. Call open() or attach().");this.config.position=e,this._updatePosition()},i.prototype._updatePosition=function(e){var t=this.config.position;if(t){t._setPanelPosition(this.panelEl),e&&this.panelContainer.addClass("_md-panel-hidden"),this.panelEl.css(r.absPosition.TOP,t.getTop()),this.panelEl.css(r.absPosition.BOTTOM,t.getBottom()),this.panelEl.css(r.absPosition.LEFT,t.getLeft()),this.panelEl.css(r.absPosition.RIGHT,t.getRight());var n=this._$mdConstant.CSS.TRANSFORM;this.panelEl.css(n,t.getTransform())}},i.prototype._focusOnOpen=function(){if(this.config.focusOnOpen){var e=this;this._$rootScope.$$postDigest(function(){(e._$mdUtil.findFocusTarget(e.panelEl)||e.panelEl).focus()})}},i.prototype._createBackdrop=function(){if(this.config.hasBackdrop){if(!this._backdropRef){var e={animation:this._$mdPanel.newPanelAnimation().openFrom(this.config.attachTo).withAnimation({open:"_md-opaque-enter",close:"_md-opaque-leave"}),attachTo:this.config.attachTo,focusOnOpen:!1,panelClass:"_md-panel-backdrop",zIndex:this.config.zIndex-1};this._backdropRef=this._$mdPanel.create(e)}if(!this._backdropRef.isAttached)return this._backdropRef.attach()}},i.prototype._addEventListeners=function(){this._configureEscapeToClose(),this._configureClickOutsideToClose(),this._configureScrollListener()},i.prototype._removeEventListeners=function(){this._removeListeners&&this._removeListeners.forEach(function(e){e()}),this._removeListeners=[]},i.prototype._configureEscapeToClose=function(){if(this.config.escapeToClose){var e=a(this.config.attachTo),t=this,n=function(e){e.keyCode===t._$mdConstant.KEY_CODE.ESCAPE&&(e.stopPropagation(),e.preventDefault(),t.close())};this.panelContainer.on("keydown",n),e.on("keydown",n),this._removeListeners.push(function(){t.panelContainer.off("keydown",n),e.off("keydown",n)})}},i.prototype._configureClickOutsideToClose=function(){if(this.config.clickOutsideToClose){var e,t=this.panelContainer,n=function(t){e=t.target},i=this,r=function(n){e===t[0]&&n.target===t[0]&&(n.stopPropagation(),n.preventDefault(),i.close())};t.on("mousedown",n),t.on("mouseup",r),this._removeListeners.push(function(){t.off("mousedown",n),t.off("mouseup",r)})}},i.prototype._configureScrollListener=function(){var e=t.bind(this,this._updatePosition),n=this._$$rAF.throttle(e),i=this,r=function(){i.config.disableParentScroll||n()};this._$window.addEventListener("scroll",r,!0),this._removeListeners.push(function(){i._$window.removeEventListener("scroll",r,!0)})},i.prototype._configureTrapFocus=function(){if(this.panelEl.attr("tabIndex","-1"),this.config.trapFocus){var e=this.panelEl;this._topFocusTrap=l.clone()[0],this._bottomFocusTrap=l.clone()[0];var t=function(){e.focus()};this._topFocusTrap.addEventListener("focus",t),this._bottomFocusTrap.addEventListener("focus",t),this._removeListeners.push(this._simpleBind(function(){this._topFocusTrap.removeEventListener("focus",t),this._bottomFocusTrap.removeEventListener("focus",t)},this)),e[0].parentNode.insertBefore(this._topFocusTrap,e[0]),e.after(this._bottomFocusTrap)}},i.prototype._animateOpen=function(){this.panelContainer.addClass("md-panel-is-showing");var e=this.config.animation;if(!e)return this.panelContainer.addClass("_md-panel-shown"),this._$q.when(this);var t=this;return this._$q(function(n){var i=t._done(n,t),r=function(){t._$log.warn("MdPanel Animations failed. Showing panel without animating."),i()};e.animateOpen(t.panelEl).then(i,r)})},i.prototype._animateClose=function(){var e=this.config.animation;if(!e)return this.panelContainer.removeClass("md-panel-is-showing"),this.panelContainer.removeClass("_md-panel-shown"),this._$q.when(this);var t=this;return this._$q(function(n){var i=function(){t.panelContainer.removeClass("md-panel-is-showing"),n(t)},r=function(){t._$log.warn("MdPanel Animations failed. Hiding panel without animating."),i()};e.animateClose(t.panelEl).then(i,r)})},i.prototype._simpleBind=function(e,t){return function(n){return e.apply(t,n)}},i.prototype._done=function(e,t){return function(){e(t)}},r.xPosition={CENTER:"center",ALIGN_START:"align-start",ALIGN_END:"align-end",OFFSET_START:"offset-start",OFFSET_END:"offset-end"},r.yPosition={CENTER:"center",ALIGN_TOPS:"align-tops",ALIGN_BOTTOMS:"align-bottoms",ABOVE:"above",BELOW:"below"},r.absPosition={TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},r.prototype.absolute=function(){return this._absolute=!0,this},r.prototype._setPosition=function(e,n){if(e===r.absPosition.RIGHT||e===r.absPosition.LEFT)this._left=this._right="";else{if(e!==r.absPosition.BOTTOM&&e!==r.absPosition.TOP){var i=Object.keys(r.absPosition).join().toLowerCase();throw new Error("Position must be one of "+i+".")}this._top=this._bottom=""}return this["_"+e]=t.isString(n)?n:"0",this},r.prototype.top=function(e){return this._setPosition(r.absPosition.TOP,e)},r.prototype.bottom=function(e){return this._setPosition(r.absPosition.BOTTOM,e)},r.prototype.start=function(e){var t=this._isRTL?r.absPosition.RIGHT:r.absPosition.LEFT;return this._setPosition(t,e)},r.prototype.end=function(e){var t=this._isRTL?r.absPosition.LEFT:r.absPosition.RIGHT;return this._setPosition(t,e)},r.prototype.left=function(e){return this._setPosition(r.absPosition.LEFT,e)},r.prototype.right=function(e){return this._setPosition(r.absPosition.RIGHT,e)},r.prototype.centerHorizontally=function(){return this._left="50%",this._right="",this._translateX=["-50%"],this},r.prototype.centerVertically=function(){return this._top="50%",this._bottom="",this._translateY=["-50%"],this},r.prototype.center=function(){return this.centerHorizontally().centerVertically()},r.prototype.relativeTo=function(e){return this._absolute=!1,this._relativeToEl=a(e),this},r.prototype.addPanelPosition=function(e,t){if(!this._relativeToEl)throw new Error("addPanelPosition can only be used with relative positioning. Set relativeTo first.");return this._validateXPosition(e),this._validateYPosition(t),this._positions.push({x:e,y:t}),this},r.prototype._validateYPosition=function(e){if(null!=e){for(var t,n=Object.keys(r.yPosition),i=[],o=0;t=n[o];o++){var a=r.yPosition[t];if(i.push(a),a===e)return}throw new Error("Panel y position only accepts the following values:\n"+i.join(" | "))}},r.prototype._validateXPosition=function(e){if(null!=e){for(var t,n=Object.keys(r.xPosition),i=[],o=0;t=n[o];o++){var a=r.xPosition[t];if(i.push(a),a===e)return}throw new Error("Panel x Position only accepts the following values:\n"+i.join(" | "))}},r.prototype.withOffsetX=function(e){return this._translateX.push(e),this},r.prototype.withOffsetY=function(e){return this._translateY.push(e),this},r.prototype.getTop=function(){return this._top},r.prototype.getBottom=function(){return this._bottom},r.prototype.getLeft=function(){return this._left},r.prototype.getRight=function(){return this._right},r.prototype.getTransform=function(){return(this._reduceTranslateValues("translateX",this._translateX)+" "+this._reduceTranslateValues("translateY",this._translateY)).trim()},r.prototype._isOnscreen=function(e){var t=parseInt(this.getLeft()),n=parseInt(this.getTop()),i=t+e[0].offsetWidth,r=n+e[0].offsetHeight;return t>=0&&n>=0&&r<=this._$window.innerHeight&&i<=this._$window.innerWidth},r.prototype.getActualPosition=function(){return this._actualPosition},r.prototype._reduceTranslateValues=function(e,t){return t.map(function(t){return e+"("+t+")"}).join(" ")},r.prototype._setPanelPosition=function(e){if(!this._absolute)if(this._actualPosition)this._calculatePanelPosition(e,this._actualPosition);else for(var t=0;t<this._positions.length&&(this._actualPosition=this._positions[t],this._calculatePanelPosition(e,this._actualPosition),!this._isOnscreen(e));t++);},r.prototype._reverseXPosition=function(e){if(e!==r.xPosition.CENTER){return e.indexOf("start")>-1?e.replace("start","end"):e.replace("end","start")}},r.prototype._bidi=function(e){return this._isRTL?this._reverseXPosition(e):e},r.prototype._calculatePanelPosition=function(e,t){var n=e[0].getBoundingClientRect(),i=n.width,o=n.height,a=this._relativeToEl[0].getBoundingClientRect(),s=a.left,l=a.right,c=a.width;switch(this._bidi(t.x)){case r.xPosition.OFFSET_START:this._left=s-i+"px";break;case r.xPosition.ALIGN_END:this._left=l-i+"px";break;case r.xPosition.CENTER:var u=s+.5*c-.5*i;this._left=u+"px";break;case r.xPosition.ALIGN_START:this._left=s+"px";break;case r.xPosition.OFFSET_END:this._left=l+"px"}var d=a.top,h=a.bottom,p=a.height;switch(t.y){case r.yPosition.ABOVE:this._top=d-o+"px";break;case r.yPosition.ALIGN_BOTTOMS:this._top=h-o+"px";break;case r.yPosition.CENTER:var f=d+.5*p-.5*o;this._top=f+"px";break;case r.yPosition.ALIGN_TOPS:this._top=d+"px";break;case r.yPosition.BELOW:this._top=h+"px"}},o.animation={SLIDE:"md-panel-animate-slide",SCALE:"md-panel-animate-scale",FADE:"md-panel-animate-fade"},o.prototype.openFrom=function(e){return e=e.target?e.target:e,this._openFrom=this._getPanelAnimationTarget(e),this._closeTo||(this._closeTo=this._openFrom),this},o.prototype.closeTo=function(e){return this._closeTo=this._getPanelAnimationTarget(e),this},o.prototype._getPanelAnimationTarget=function(e){return t.isDefined(e.top)||t.isDefined(e.left)?{element:n,bounds:{top:e.top||0,left:e.left||0}}:this._getBoundingClientRect(a(e))},o.prototype.withAnimation=function(e){return this._animationClass=e,this},o.prototype.animateOpen=function(e){var n=this._$mdUtil.dom.animator;this._fixBounds(e);var i={},r=e[0].style.transform||"",a=n.toTransformCss(r),s=n.toTransformCss(r);switch(this._animationClass){case o.animation.SLIDE:e.css("opacity","1"),i={transitionInClass:"_md-panel-animate-enter"};var l=n.calculateSlideToOrigin(e,this._openFrom)||"";a=n.toTransformCss(l+" "+r);break;case o.animation.SCALE:i={transitionInClass:"_md-panel-animate-enter"};var c=n.calculateZoomToOrigin(e,this._openFrom)||"";a=n.toTransformCss(c+" "+r);break;case o.animation.FADE:i={transitionInClass:"_md-panel-animate-enter"};break;default:i=t.isString(this._animationClass)?{transitionInClass:this._animationClass}:{transitionInClass:this._animationClass.open,transitionOutClass:this._animationClass.close}}return n.translate3d(e,a,s,i)},o.prototype.animateClose=function(e){var n=this._$mdUtil.dom.animator,i={},r=e[0].style.transform||"",a=n.toTransformCss(r),s=n.toTransformCss(r);switch(this._animationClass){case o.animation.SLIDE:e.css("opacity","1"),i={transitionInClass:"_md-panel-animate-leave"};var l=n.calculateSlideToOrigin(e,this._closeTo)||"";s=n.toTransformCss(l+" "+r);break;case o.animation.SCALE:i={transitionInClass:"_md-panel-animate-scale-out _md-panel-animate-leave"};var c=n.calculateZoomToOrigin(e,this._closeTo)||"";s=n.toTransformCss(c+" "+r);break;case o.animation.FADE:i={transitionInClass:"_md-panel-animate-fade-out _md-panel-animate-leave"};break;default:i=t.isString(this._animationClass)?{transitionOutClass:this._animationClass}:{transitionInClass:this._animationClass.close,transitionOutClass:this._animationClass.open}}return n.translate3d(e,a,s,i)},o.prototype._fixBounds=function(e){var t=e[0].offsetWidth,n=e[0].offsetHeight;this._openFrom&&null==this._openFrom.bounds.height&&(this._openFrom.bounds.height=n),this._openFrom&&null==this._openFrom.bounds.width&&(this._openFrom.bounds.width=t),this._closeTo&&null==this._closeTo.bounds.height&&(this._closeTo.bounds.height=n),this._closeTo&&null==this._closeTo.bounds.width&&(this._closeTo.bounds.width=t)},o.prototype._getBoundingClientRect=function(e){if(e instanceof t.element)return{element:e,bounds:e[0].getBoundingClientRect()}}}(),function(){t.module("material.components.progressCircular",["material.core"])}(),function(){function e(e,n,i){function r(e,t,n){return e.attr("aria-valuemin",0),e.attr("aria-valuemax",100),e.attr("role","progressbar"),o}function o(i,r,o){function h(){var e=(o.mdMode||"").trim();if(e)switch(e){case s:case l:case c:case u:break;default:e=l}return e}function p(e,i){if(!m&&h()){var r=n.supplant("translateX({0}%) scale({1},1)",[(i-100)/2,i/100]),o=g({transform:r});t.element(e).css(o)}}e(r);var f,m=o.hasOwnProperty("disabled"),g=n.dom.animator.toCss,v=t.element(r[0].querySelector(".md-bar1")),b=t.element(r[0].querySelector(".md-bar2")),y=t.element(r[0].querySelector(".md-container"));r.attr("md-mode",h()).toggleClass(d,m),function(){if(t.isUndefined(o.mdMode)){var e=t.isDefined(o.value)?s:l;r.attr("md-mode",e),o.mdMode=e}}(),function(){o.$observe("value",function(e){var t=a(e);r.attr("aria-valuenow",t),h()!=u&&p(b,t)}),o.$observe("mdBufferValue",function(e){p(v,a(e))}),o.$observe("disabled",function(e){m=!0===e||!1===e?!!e:t.isDefined(e),r.toggleClass(d,m),y.toggleClass(f,!m)}),o.$observe("mdMode",function(e){switch(f&&y.removeClass(f),e){case u:case c:case s:case l:y.addClass(f="md-mode-"+e);break;default:y.addClass(f="md-mode-"+l)}})}()}function a(e){return Math.max(0,Math.min(e||0,100))}var s="determinate",l="indeterminate",c="buffer",u="query",d="_md-progress-linear-disabled";return{restrict:"E",template:'<div class="md-container"><div class="md-dashed"></div><div class="md-bar md-bar1"></div><div class="md-bar md-bar2"></div></div>',compile:r}}e.$inject=["$mdTheming","$mdUtil","$log"],t.module("material.components.progressLinear",["material.core"]).directive("mdProgressLinear",e)}(),function(){function e(e,n,i,r){function o(o,a,s,l){function c(){a.hasClass("md-focused")||a.addClass("md-focused")}function u(i){var r=i.which||i.keyCode;if(r==n.KEY_CODE.ENTER||i.currentTarget==i.target)switch(r){case n.KEY_CODE.LEFT_ARROW:case n.KEY_CODE.UP_ARROW:i.preventDefault(),d.selectPrevious(),c();break;case n.KEY_CODE.RIGHT_ARROW:case n.KEY_CODE.DOWN_ARROW:i.preventDefault(),d.selectNext(),c();break;case n.KEY_CODE.ENTER:var o=t.element(e.getClosest(a[0],"form"));o.length>0&&o.triggerHandler("submit")}}a.addClass("_md"),i(a);var d=l[0],h=l[1]||e.fakeNgModel();d.init(h),o.mouseActive=!1,a.attr({role:"radiogroup",tabIndex:a.attr("tabindex")||"0"}).on("keydown",u).on("mousedown",function(e){o.mouseActive=!0,r(function(){o.mouseActive=!1},100)}).on("focus",function(){!1===o.mouseActive&&d.$element.addClass("md-focused")}).on("blur",function(){d.$element.removeClass("md-focused")})}function a(e){this._radioButtonRenderFns=[],this.$element=e}function s(n,i){var r=e.iterator(n[0].querySelectorAll("md-radio-button"),!0);if(r.count()){var o=function(e){return!t.element(e).attr("disabled")},a=n[0].querySelector("md-radio-button.md-checked"),s=r[i<0?"previous":"next"](a,o)||r.first();t.element(s).triggerHandler("click")}}return a.prototype=function(){return{init:function(e){this._ngModelCtrl=e,this._ngModelCtrl.$render=t.bind(this,this.render)},add:function(e){this._radioButtonRenderFns.push(e)},remove:function(e){var t=this._radioButtonRenderFns.indexOf(e);-1!==t&&this._radioButtonRenderFns.splice(t,1)},render:function(){this._radioButtonRenderFns.forEach(function(e){e()})},setViewValue:function(e,t){this._ngModelCtrl.$setViewValue(e,t),this.render()},getViewValue:function(){return this._ngModelCtrl.$viewValue},selectNext:function(){return s(this.$element,1)},selectPrevious:function(){return s(this.$element,-1)},setActiveDescendant:function(e){this.$element.attr("aria-activedescendant",e)},isDisabled:function(){return this.$element[0].hasAttribute("disabled")}}}(),{restrict:"E",controller:["$element",a],require:["mdRadioGroup","?ngModel"],link:{pre:o}}}function n(e,t,n){function i(i,o,a,s){function l(e){o[0].hasAttribute("disabled")||s.isDisabled()||i.$apply(function(){s.setViewValue(a.value,e&&e.type)})}function c(){function e(e){"MD-RADIO-GROUP"!=o.parent()[0].nodeName&&o.parent()[e?"addClass":"removeClass"](r)}var t=s.getViewValue()==a.value;t!==u&&(u=t,o.attr("aria-checked",t),t?(e(!0),o.addClass(r),s.setActiveDescendant(o.attr("id"))):(e(!1),o.removeClass(r)))}var u;n(o),function(n,i){i.ariaId=function(){return a.id||"radio_"+t.nextUid()}(),n.attr({id:i.ariaId,role:"radio","aria-checked":"false"}),e.expectWithText(n,"aria-label")}(o,i),function(){if(!s)throw"RadioButton: No RadioGroupController could be found.";s.add(c),a.$observe("value",c),o.on("click",l).on("$destroy",function(){s.remove(c)})}()}var r="md-checked";return{restrict:"E",require:"^mdRadioGroup",transclude:!0,template:'<div class="md-container" md-ink-ripple md-ink-ripple-checkbox><div class="md-off"></div><div class="md-on"></div></div><div ng-transclude class="md-label"></div>',link:i}}e.$inject=["$mdUtil","$mdConstant","$mdTheming","$timeout"],n.$inject=["$mdAria","$mdUtil","$mdTheming"],t.module("material.components.radioButton",["material.core"]).directive("mdRadioGroup",e).directive("mdRadioButton",n)}(),function(){function i(e,i,r,o,a,s,l){function c(s,c){var u=t.element("<md-select-value><span></span></md-select-value>");if(u.append('<span class="md-select-icon" aria-hidden="true"></span>'),u.addClass("md-select-value"),u[0].hasAttribute("id")||u.attr("id","select_value_label_"+i.nextUid()),s.find("md-content").length||s.append(t.element("<md-content>").append(s.contents())),c.mdOnOpen&&(s.find("md-content").prepend(t.element('<div> <md-progress-circular md-mode="indeterminate" ng-if="$$loadingAsyncDone === false" md-diameter="25px"></md-progress-circular></div>')),s.find("md-option").attr("ng-show","$$loadingAsyncDone")),c.name){var d=t.element('<select class="md-visually-hidden">');d.attr({name:c.name,"aria-hidden":"true",tabindex:"-1"});var h=s.find("md-option");t.forEach(h,function(e){var n=t.element("<option>"+e.innerHTML+"</option>");e.hasAttribute("ng-value")?n.attr("ng-value",e.getAttribute("ng-value")):e.hasAttribute("value")&&n.attr("value",e.getAttribute("value")),d.append(n)}),d.append('<option ng-value="'+c.ngModel+'" selected></option>'),s.parent().append(d)}var p=i.parseAttributeBoolean(c.multiple),f=p?"multiple":"",m='<div class="md-select-menu-container" aria-hidden="true"><md-select-menu {0}>{1}</md-select-menu></div>';return m=i.supplant(m,[f,s.html()]),s.empty().append(u),s.append(m),c.tabindex||c.$set("tabindex",0),function(s,c,u,d){function h(){var e=c.attr("aria-label")||c.attr("placeholder");!e&&A&&A.label&&(e=A.label.text()),_=e,a.expect(c,"aria-label",e)}function f(){k&&(P=P||k.find("md-select-menu").controller("mdSelectMenu"),C.setLabelText(P.selectedLabels()))}function m(){if(_){var e=P.selectedLabels({mode:"aria"});c.attr("aria-label",e.length?_+": "+e:_)}}function g(){A&&A.setHasValue(P.selectedLabels().length>0||(c[0].validity||{}).badInput)}function v(e){if(r.isNavigationKey(e))e.preventDefault(),b();else if(r.isInputKey(e)||r.isNumPadKey(e)){e.preventDefault();var n=P.optNodeForKeyboardSearch(e);if(!n||n.hasAttribute("disabled"))return;var i=t.element(n).controller("mdOption");P.isMultiple||P.deselect(Object.keys(P.selected)[0]),P.select(i.hashKey,i.value),P.refreshViewValue()}}function b(){M._mdSelectIsOpen=!0,c.attr("aria-expanded","true"),e.show({scope:M,preserveScope:!0,skipCompile:!0,element:k,target:c[0],selectCtrl:C,preserveElement:!0,hasBackdrop:!0,loadingAsync:!!u.mdOnOpen&&(s.$eval(u.mdOnOpen)||!0)}).finally(function(){M._mdSelectIsOpen=!1,c.focus(),c.attr("aria-expanded","false"),x.$setTouched()})}var y,_,w=!0,A=d[0],C=d[1],x=d[2],S=d[3],E=c.find("md-select-value"),T=t.isDefined(u.readonly),D=i.parseAttributeBoolean(u.mdNoAsterisk);if(D&&c.addClass("md-no-asterisk"),A){var I=A.isErrorGetter||function(){return x.$invalid&&(x.$touched||S&&S.$submitted)};if(A.input&&c.find("md-select-header").find("input")[0]!==A.input[0])throw new Error("<md-input-container> can only have *one* child <input>, <textarea> or <select> element!");A.input=c,A.label||a.expect(c,"aria-label",c.attr("placeholder")),s.$watch(I,A.setInvalid)}var k,M,P;!function(){if(k=t.element(c[0].querySelector(".md-select-menu-container")),M=s,u.mdContainerClass){var e=k[0].getAttribute("class")+" "+u.mdContainerClass;k[0].setAttribute("class",e)}(P=k.find("md-select-menu").controller("mdSelectMenu")).init(x,u.ngModel),c.on("$destroy",function(){k.remove()})}(),o(c),S&&t.isDefined(u.multiple)&&i.nextTick(function(){(x.$modelValue||x.$viewValue)&&S.$setPristine()});var $=x.$render;x.$render=function(){$(),f(),m(),g()},u.$observe("placeholder",x.$render),A&&A.label&&u.$observe("required",function(e){A.label.toggleClass("md-required",e&&!D)}),C.setLabelText=function(e){if(C.setIsPlaceholder(!e),u.mdSelectedText)e=l(u.mdSelectedText)(s);else{var t=u.placeholder||(A&&A.label?A.label.text():"");e=e||t||""}E.children().eq(0).html(e)},C.setIsPlaceholder=function(e){e?(E.addClass("md-select-placeholder"),A&&A.label&&A.label.addClass("md-placeholder")):(E.removeClass("md-select-placeholder"),A&&A.label&&A.label.removeClass("md-placeholder"))},T||(c.on("focus",function(e){A&&A.setFocused(!0)}),c.on("blur",function(e){w&&(w=!1,M._mdSelectIsOpen&&e.stopImmediatePropagation()),M._mdSelectIsOpen||(A&&A.setFocused(!1),g())})),C.triggerClose=function(){l(u.mdOnClose)(s)},s.$$postDigest(function(){h(),f(),m()}),s.$watch(function(){return P.selectedLabels()},f);var N;u.$observe("ngMultiple",function(e){N&&N();var t=l(e);N=s.$watch(function(){return t(s)},function(e,t){e===n&&t===n||(e?c.attr("multiple","multiple"):c.removeAttr("multiple"),c.attr("aria-multiselectable",e?"true":"false"),k&&(P.setMultiple(e),$=x.$render,x.$render=function(){$(),f(),m(),g()},x.$render()))})}),u.$observe("disabled",function(e){t.isString(e)&&(e=!0),y!==n&&y===e||(y=e,e?c.attr({"aria-disabled":"true"}).removeAttr("tabindex").off("click",b).off("keydown",v):c.attr({tabindex:u.tabindex,"aria-disabled":"false"}).on("click",b).on("keydown",v))}),u.hasOwnProperty("disabled")||u.hasOwnProperty("ngDisabled")||(c.attr({"aria-disabled":"false"}),c.on("click",b),c.on("keydown",v));var O={role:"listbox","aria-expanded":"false","aria-multiselectable":p&&!u.ngMultiple?"true":"false"};c[0].hasAttribute("id")||(O.id="select_"+i.nextUid());var R="select_container_"+i.nextUid();k.attr("id",R),O["aria-owns"]=R,c.attr(O),s.$on("$destroy",function(){e.destroy().finally(function(){A&&(A.setFocused(!1),A.setHasValue(!1),A.input=null),x.$setTouched()})})}}var u=r.KEY_CODE;u.SPACE,u.ENTER,u.UP_ARROW,u.DOWN_ARROW;return{restrict:"E",require:["^?mdInputContainer","mdSelect","ngModel","?^form"],compile:c,controller:function(){}}}function r(e,i,r,o){function a(e,n,r,a){function s(e){13!=e.keyCode&&32!=e.keyCode||l(e)}function l(n){var r=i.getClosest(n.target,"md-option"),o=r&&t.element(r).data("$mdOptionController");if(r&&o){if(r.hasAttribute("disabled"))return n.stopImmediatePropagation(),!1;var a=c.hashGetter(o.value),s=t.isDefined(c.selected[a]);e.$apply(function(){c.isMultiple?s?c.deselect(a):c.select(a,o.value):s||(c.deselect(Object.keys(c.selected)[0]),c.select(a,o.value)),c.refreshViewValue()})}}var c=a[0];n.addClass("_md"),o(n),n.on("click",l),n.on("keypress",s)}function s(o,a,s){function l(){var e=d.ngModel.$modelValue||d.ngModel.$viewValue||[];if(t.isArray(e)){var n=Object.keys(d.selected),i=e.map(d.hashGetter);n.filter(function(e){return-1===i.indexOf(e)}).forEach(d.deselect),i.forEach(function(t,n){d.select(t,e[n])})}}function c(){var e=d.ngModel.$viewValue||d.ngModel.$modelValue;Object.keys(d.selected).forEach(d.deselect),d.select(d.hashGetter(e),e)}var d=this;d.isMultiple=t.isDefined(a.multiple),d.selected={},d.options={},o.$watchCollection(function(){return d.options},function(){d.ngModel.$render()});var h;d.setMultiple=function(e){function n(e,n){return t.isArray(e||n||[])}var i=d.ngModel;h=h||i.$isEmpty,d.isMultiple=e,d.isMultiple?(i.$validators["md-multiple"]=n,i.$render=l,o.$watchCollection(d.modelBinding,function(e){n(e)&&l(),d.ngModel.$setPristine()}),i.$isEmpty=function(e){return!e||0===e.length}):(delete i.$validators["md-multiple"],i.$render=c)};var p,f,m,g="";d.optNodeForKeyboardSearch=function(e){p&&clearTimeout(p),p=setTimeout(function(){p=n,g="",m=n,f=n},300);var i=e.keyCode-(r.isNumPadKey(e)?48:0);g+=String.fromCharCode(i);var o=new RegExp("^"+g,"i");f||(f=s.find("md-option"),m=new Array(f.length),t.forEach(f,function(e,t){m[t]=e.textContent.trim()}));for(var a=0;a<m.length;++a)if(o.test(m[a]))return f[a]},d.init=function(n,i){if(d.ngModel=n,d.modelBinding=i,d.ngModel.$isEmpty=function(e){return!d.options[d.hashGetter(e)]},n.$options&&n.$options.trackBy){var r={},a=e(n.$options.trackBy);d.hashGetter=function(e,t){return r.$value=e,a(t||o,r)}}else d.hashGetter=function(e){return t.isObject(e)?"object_"+(e.$$mdSelectId||(e.$$mdSelectId=++u)):e};d.setMultiple(d.isMultiple)},d.selectedLabels=function(e){var t=(e=e||{}).mode||"html",n=i.nodesToArray(s[0].querySelectorAll("md-option[selected]"));if(n.length){var r;return"html"==t?r=function(e){if(e.hasAttribute("md-option-empty"))return"";var t=e.innerHTML,n=e.querySelector(".md-ripple-container");n&&(t=t.replace(n.outerHTML,""));var i=e.querySelector(".md-container");return i&&(t=t.replace(i.outerHTML,"")),t}:"aria"==t&&(r=function(e){return e.hasAttribute("aria-label")?e.getAttribute("aria-label"):e.textContent}),n.map(r).join(", ")}return""},d.select=function(e,t){var n=d.options[e];n&&n.setSelected(!0),d.selected[e]=t},d.deselect=function(e){var t=d.options[e];t&&t.setSelected(!1),delete d.selected[e]},d.addOption=function(e,n){if(t.isDefined(d.options[e]))throw new Error('Duplicate md-option values are not allowed in a select. Duplicate value "'+n.value+'" found.');d.options[e]=n,t.isDefined(d.selected[e])&&(d.select(e,n.value),t.isDefined(d.ngModel.$modelValue)&&d.hashGetter(d.ngModel.$modelValue)===e&&d.ngModel.$validate(),d.refreshViewValue())},d.removeOption=function(e){delete d.options[e]},d.refreshViewValue=function(){var e,n=[];for(var i in d.selected)(e=d.options[i])?n.push(e.value):n.push(d.selected[i]);var r=d.ngModel.$options&&d.ngModel.$options.trackBy,o=d.isMultiple?n:n[0],a=d.ngModel.$modelValue;(r?t.equals(a,o):a==o)||(d.ngModel.$setViewValue(o),d.ngModel.$render())}}return s.$inject=["$scope","$attrs","$element"],{restrict:"E",require:["mdSelectMenu"],scope:!1,controller:s,link:{pre:a}}}function o(e,n){function i(e,n){return e.append(t.element('<div class="md-text">').append(e.contents())),e.attr("tabindex",n.tabindex||"0"),r(n)||e.attr("md-option-empty",""),o}function r(e){var t=e.value,n=e.ngValue;return t||n}function o(i,r,o,a){function s(e,t,n){if(c.hashGetter){var r=c.hashGetter(t,i),o=c.hashGetter(e,i);l.hashKey=o,l.value=e,c.removeOption(r,l),c.addOption(o,l)}else n||i.$$postDigest(function(){s(e,t,!0)})}var l=a[0],c=a[1];c.isMultiple&&(r.addClass("md-checkbox-enabled"),r.prepend(d.clone())),t.isDefined(o.ngValue)?i.$watch(o.ngValue,s):t.isDefined(o.value)?s(o.value):i.$watch(function(){return r.text().trim()},s),o.$observe("disabled",function(e){e?r.attr("tabindex","-1"):r.attr("tabindex","0")}),i.$$postDigest(function(){o.$observe("selected",function(e){t.isDefined(e)&&("string"==typeof e&&(e=!0),e?(c.isMultiple||c.deselect(Object.keys(c.selected)[0]),c.select(l.hashKey,l.value)):c.deselect(l.hashKey),c.refreshViewValue())})}),e.attach(i,r),function(){var e={role:"option","aria-selected":"false"};r[0].hasAttribute("id")||(e.id="select_option_"+n.nextUid()),r.attr(e)}(),i.$on("$destroy",function(){c.removeOption(l.hashKey,l)})}function a(e){this.selected=!1,this.setSelected=function(t){t&&!this.selected?e.attr({selected:"selected","aria-selected":"true"}):!t&&this.selected&&(e.removeAttr("selected"),e.attr("aria-selected","false")),this.selected=t}}return a.$inject=["$element"],{restrict:"E",require:["mdOption","^^mdSelectMenu"],controller:a,compile:i}}function a(){function e(e,n){(function(){return e.parent().find("md-select-header").length})()||function(){var i=e.find("label");i.length||(i=t.element("<label>"),e.prepend(i)),i.addClass("md-container-ignore"),n.label&&i.text(n.label)}()}return{restrict:"E",compile:e}}function s(){return{restrict:"E"}}function l(i){function r(i,r,u,d,h,p,f,m,g){function v(e,t,n){function i(){t.removeClass("md-active"),t.attr("aria-hidden","true"),t[0].style.display="none",y(n),!n.$destroy&&n.restoreFocus&&n.target.focus()}return(n=n||{}).cleanupInteraction(),n.cleanupResizing(),n.hideBackdrop(),!0===n.$destroy?i():function(){return f(t,{addClass:"md-leave"}).start()}().then(i)}function b(e,o,a){function s(){return h(function(t){if(a.isRemoved)return h.reject(!1);var n=_(e,o,a);n.container.element.css(A.toCss(n.container.styles)),n.dropDown.element.css(A.toCss(n.dropDown.styles)),p(function(){o.addClass("md-active"),n.dropDown.element.css(A.toCss({transform:""})),l(a.focusedNode),t()})})}function l(e){e&&!e.hasAttribute("disabled")&&e.focus()}function c(){var n=function(e,t,n){return function(){if(!n.isRemoved){var i=_(e,t,n),r=i.container,o=i.dropDown;r.element.css(A.toCss(r.styles)),o.element.css(A.toCss(o.styles))}}}(e,o,a),i=t.element(d);return i.on("resize",n),i.on("orientationchange",n),function(){i.off("resize",n),i.off("orientationchange",n)}}function v(){function e(e){e.preventDefault(),e.stopPropagation(),a.restoreFocus=!1,u.nextTick(i.hide,!0)}function t(e){switch(e.preventDefault(),e.stopPropagation(),e.keyCode){case C.UP_ARROW:return c();case C.DOWN_ARROW:return l();case C.SPACE:case C.ENTER:var t=u.getClosest(e.target,"md-option");t&&(h.triggerHandler({type:"click",target:t}),e.preventDefault()),d(e);break;case C.TAB:case C.ESCAPE:e.stopPropagation(),e.preventDefault(),a.restoreFocus=!0,u.nextTick(i.hide,!0);break;default:if(r.isInputKey(e)||r.isNumPadKey(e)){var n=h.controller("mdSelectMenu").optNodeForKeyboardSearch(e);a.focusedNode=n||a.focusedNode,n&&n.focus()}}}function s(e){var t,i=u.nodesToArray(a.optionNodes),r=i.indexOf(a.focusedNode);do{-1===r?r=0:"next"===e&&r<i.length-1?r++:"prev"===e&&r>0&&r--,(t=i[r]).hasAttribute("disabled")&&(t=n)}while(!t&&r<i.length-1&&r>0);t&&t.focus(),a.focusedNode=t}function l(){s("next")}function c(){s("prev")}function d(e){if(!(e&&"click"==e.type&&e.currentTarget!=h[0]||function(){var t=!1;if(e&&e.currentTarget.children.length>0){var n=e.currentTarget.children[0];n.scrollHeight>n.clientHeight&&n.children.length>0&&e.pageX-e.currentTarget.getBoundingClientRect().left>n.querySelector("md-option").offsetWidth&&(t=!0)}return t}())){var t=u.getClosest(e.target,"md-option");t&&t.hasAttribute&&!t.hasAttribute("disabled")&&(e.preventDefault(),e.stopPropagation(),p.isMultiple||(a.restoreFocus=!0,u.nextTick(function(){i.hide(p.ngModel.$viewValue)},!0)))}}if(!a.isRemoved){var h=a.selectEl,p=h.controller("mdSelectMenu")||{};return o.addClass("md-clickable"),a.backdrop&&a.backdrop.on("click",e),h.on("keydown",t),h.on("click",d),function(){a.backdrop&&a.backdrop.off("click",e),h.off("keydown",t),h.off("click",d),o.removeClass("md-clickable"),a.isRemoved=!0}}}return function(){a.loadingAsync&&!a.isRemoved&&(e.$$loadingAsyncDone=!1,h.when(a.loadingAsync).then(function(){e.$$loadingAsyncDone=!0,delete a.loadingAsync}).then(function(){p(s)}))}(),function(e,n){var i=o.find("md-select-menu");if(!n.target)throw new Error(u.supplant(w,[n.target]));t.extend(n,{isRemoved:!1,target:t.element(n.target),parent:t.element(n.parent),selectEl:i,contentEl:o.find("md-content"),optionNodes:i[0].getElementsByTagName("md-option")})}(0,a),a.hideBackdrop=function(e,t,n){return n.disableParentScroll&&!u.getClosest(n.target,"MD-DIALOG")?n.restoreScroll=u.disableScrollAround(n.element,n.parent):n.disableParentScroll=!1,n.hasBackdrop&&(n.backdrop=u.createBackdrop(e,"md-select-backdrop md-click-catcher"),m.enter(n.backdrop,g[0].body,null,{duration:0})),function(){n.backdrop&&n.backdrop.remove(),n.disableParentScroll&&n.restoreScroll(),delete n.restoreScroll}}(e,o,a),function(e,t,n){return n.parent.append(t),h(function(e,n){try{f(t,{removeClass:"md-leave",duration:0}).start().then(s).then(e)}catch(e){n(e)}})}(e,o,a).then(function(e){return o.attr("aria-hidden","false"),a.alreadyOpen=!0,a.cleanupInteraction=v(),a.cleanupResizing=c(),e},a.hideBackdrop)}function y(e){var t=e.selectCtrl;if(t){var n=e.selectEl.controller("mdSelectMenu");t.setLabelText(n?n.selectedLabels():""),t.triggerClose()}}function _(n,i,r){var h,p=i[0],f=r.target[0].children[0],m=g[0].body,v=r.selectEl[0],b=r.contentEl[0],y=m.getBoundingClientRect(),_=f.getBoundingClientRect(),w={left:y.left+c,top:c,bottom:y.height-c,right:y.width-c-(u.floatingScrollbars()?16:0)},A={top:_.top-w.top,left:_.left-w.left,right:w.right-(_.left+_.width),bottom:w.bottom-(_.top+_.height)},C=y.width-2*c,x=v.querySelector("md-option[selected]"),S=v.getElementsByTagName("md-option"),E=v.getElementsByTagName("md-optgroup"),T=l(i,b);h=o(r.loadingAsync)?b.firstElementChild||b:x||(E.length?E[0]:S.length?S[0]:b.firstElementChild||b),b.offsetWidth>C?b.style["max-width"]=C+"px":b.style.maxWidth=null,T&&v.classList.add("md-overflow");var D=h;"MD-OPTGROUP"===(D.tagName||"").toUpperCase()&&(h=D=S[0]||b.firstElementChild||b),r.focusedNode=D,p.style.display="block";var I=v.getBoundingClientRect(),k=s(h);if(h){var M=d.getComputedStyle(h);k.paddingLeft=parseInt(M.paddingLeft,10)||0,k.paddingRight=parseInt(M.paddingRight,10)||0}if(T){var P=b.offsetHeight/2;b.scrollTop=k.top+k.height/2-P,A.top<P?b.scrollTop=Math.min(k.top,b.scrollTop+P-A.top):A.bottom<P&&(b.scrollTop=Math.max(k.top+k.height-I.height,b.scrollTop-P+A.bottom))}var $,N,O,R,L;$=_.left+k.left-k.paddingLeft+2,N=Math.floor(_.top+_.height/2-k.height/2-k.top+b.scrollTop)+2,O=k.left+_.width/2+"px "+(k.top+k.height/2-b.scrollTop)+"px 0px",R=Math.min(_.width+k.paddingLeft+k.paddingRight,C),L=e.getComputedStyle(f)["font-size"];var G=p.getBoundingClientRect(),B=Math.round(100*Math.min(_.width/I.width,1))/100,F=Math.round(100*Math.min(_.height/I.height,1))/100;return{container:{element:t.element(p),styles:{left:Math.floor(a(w.left,$,w.right-G.width)),top:Math.floor(a(w.top,N,w.bottom-G.height)),"min-width":R,"font-size":L}},dropDown:{element:t.element(v),styles:{transformOrigin:O,transform:r.alreadyOpen?"":u.supplant("scale({0},{1})",[B,F])}}}}var w="$mdSelect.show() expected a target element in options.target but got '{0}'!",A=u.dom.animator,C=r.KEY_CODE;return{parent:"body",themable:!0,onShow:b,onRemove:v,hasBackdrop:!0,disableParentScroll:!0}}function o(e){return e&&t.isFunction(e.then)}function a(e,t,n){return Math.max(e,Math.min(t,n))}function s(e){return e?{left:e.offsetLeft,top:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight}:{left:0,top:0,width:0,height:0}}function l(e,t){var n=!1;try{var i=e[0].style.display;e[0].style.display="block",n=t.scrollHeight>t.offsetHeight,e[0].style.display=i}finally{}return n}return r.$inject=["$mdSelect","$mdConstant","$mdUtil","$window","$q","$$rAF","$animateCss","$animate","$document"],i("$mdSelect").setDefaults({methods:["target"],options:r})}i.$inject=["$mdSelect","$mdUtil","$mdConstant","$mdTheming","$mdAria","$compile","$parse"],r.$inject=["$parse","$mdUtil","$mdConstant","$mdTheming"],o.$inject=["$mdButtonInkRipple","$mdUtil"],l.$inject=["$$interimElementProvider"];var c=8,u=0,d=t.element('<div class="md-container"><div class="md-icon"></div></div>');t.module("material.components.select",["material.core","material.components.backdrop"]).directive("mdSelect",i).directive("mdSelectMenu",r).directive("mdOption",o).directive("mdOptgroup",a).directive("mdSelectHeader",s).provider("$mdSelect",l)}(),function(){function e(e,t){return["$mdUtil","$window",function(n,i){return{restrict:"A",multiElement:!0,link:function(r,o,a){var s=r.$on("$md-resize-enable",function(){s();var l=o[0],c=l.nodeType===i.Node.ELEMENT_NODE?i.getComputedStyle(l):{};r.$watch(a[e],function(e){if(!!e===t){n.nextTick(function(){r.$broadcast("$md-resize")});var i={cachedTransitionStyles:c};n.dom.animator.waitTransitionEnd(o,i).then(function(){r.$broadcast("$md-resize")})}})})}}}]}t.module("material.components.showHide",["material.core"]).directive("ngShow",e("ngShow",!0)).directive("ngHide",e("ngHide",!1))}(),function(){function e(e,i,r,o){function a(e,n){var o=function(){return!1},a=function(){return r.when(i.supplant(c,[n||""]))};return t.extend({isLockedOpen:o,isOpen:o,toggle:a,open:a,close:a,onClose:t.noop,then:function(e){return l(n).then(e||t.noop)}},e)}function s(t,r){var a=e.get(t);return a||r?a:(o.error(i.supplant(c,[t||""])),n)}function l(t){return e.when(t).catch(o.error)}var c="SideNav '{0}' is not available! Did you use md-component-id='{0}'?",u={find:s,waitFor:l};return function(e,n){if(t.isUndefined(e))return u;var i=!0===n,r=u.find(e,i);return!r&&i?u.waitFor(e):!r&&t.isUndefined(n)?a(u,e):r}}function i(){return{restrict:"A",require:"^mdSidenav",link:function(e,t,n,i){}}}function r(e,i,r,o,a,s,l,c,u,d){function h(s,h,p,f){function m(e,t){s.isLockedOpen=e,e===t?h.toggleClass("md-locked-open",!!e):a[e?"addClass":"removeClass"](h,"md-locked-open"),C&&C.toggleClass("md-locked-open",!!e)}function g(e){var t=i.findFocusTarget(h)||i.findFocusTarget(h,"[md-sidenav-focus]")||h,n=h.parent();n[e?"on":"off"]("keydown",_),C&&C[e?"on":"off"]("click",w);var r=v(n,e);return e&&(E=d[0].activeElement),b(e),T=u.all([e&&C?a.enter(C,n):C?a.leave(C):u.when(!0),a[e?"removeClass":"addClass"](h,"md-closed")]).then(function(){s.isOpen&&t&&t.focus(),r&&r()})}function v(e,t){var n=h[0],i=e[0].scrollTop;if(t&&i){x={top:n.style.top,bottom:n.style.bottom,height:n.style.height};var r={top:i+"px",bottom:"auto",height:e[0].clientHeight+"px"};h.css(r),C.css(r)}if(!t&&x)return function(){n.style.top=x.top,n.style.bottom=x.bottom,n.style.height=x.height,C[0].style.top=null,C[0].style.bottom=null,C[0].style.height=null,x=null}}function b(e){e&&!A?(A=S.css("overflow"),S.css("overflow","hidden")):t.isDefined(A)&&(S.css("overflow",A),A=n)}function y(e){return s.isOpen==e?u.when(!0):(s.isOpen&&f.onCloseCb&&f.onCloseCb(),u(function(t){s.isOpen=e,i.nextTick(function(){T.then(function(e){s.isOpen||(E&&E.focus(),E=null),t(e)})})}))}function _(e){return e.keyCode===r.KEY_CODE.ESCAPE?w(e):u.when(!0)}function w(e){return e.preventDefault(),f.close()}var A,C,x,S=null,E=null,T=u.when(!0),D=l(p.mdIsLockedOpen),I=function(){return D(s.$parent,{$media:function(t){return c.warn("$media is deprecated for is-locked-open. Use $mdMedia instead."),e(t)},$mdMedia:e})};p.mdDisableScrollTarget&&((S=d[0].querySelector(p.mdDisableScrollTarget))?S=t.element(S):c.warn(i.supplant('mdSidenav: couldn\'t find element matching selector "{selector}". Falling back to parent.',{selector:p.mdDisableScrollTarget}))),S||(S=h.parent()),p.hasOwnProperty("mdDisableBackdrop")||(C=i.createBackdrop(s,"md-sidenav-backdrop md-opaque ng-enter")),h.addClass("_md"),o(h),C&&o.inherit(C,h),h.on("$destroy",function(){C&&C.remove(),f.destroy()}),s.$on("$destroy",function(){C&&C.remove()}),s.$watch(I,m),s.$watch("isOpen",g),f.$toggleOpen=y}return{restrict:"E",scope:{isOpen:"=?mdIsOpen"},controller:"$mdSidenavController",compile:function(e){return e.addClass("md-closed"),e.attr("tabIndex","-1"),h}}}function o(e,t,n,i,r){var o=this;o.isOpen=function(){return!!e.isOpen},o.isLockedOpen=function(){return!!e.isLockedOpen},o.onClose=function(e){return o.onCloseCb=e,o},o.open=function(){return o.$toggleOpen(!0)},o.close=function(){return o.$toggleOpen(!1)},o.toggle=function(){return o.$toggleOpen(!e.isOpen)},o.$toggleOpen=function(t){return r.when(e.isOpen=t)},o.destroy=i.register(o,n.mdComponentId)}e.$inject=["$mdComponentRegistry","$mdUtil","$q","$log"],r.$inject=["$mdMedia","$mdUtil","$mdConstant","$mdTheming","$animate","$compile","$parse","$log","$q","$document"],o.$inject=["$scope","$element","$attrs","$mdComponentRegistry","$q"],t.module("material.components.sidenav",["material.core","material.components.backdrop"]).factory("$mdSidenav",e).directive("mdSidenav",r).directive("mdSidenavFocus",i).controller("$mdSidenavController",o)}(),function(){function e(){return{controller:function(){},compile:function(e){var i=e.find("md-slider");if(i)return i.attr("md-vertical")!==n&&e.attr("md-vertical",""),i.attr("flex")||i.attr("flex",""),function(e,n,i,r){function o(e){n.children().attr("disabled",e),n.find("input").attr("disabled",e)}n.addClass("_md");var a=t.noop;i.disabled?o(!0):i.ngDisabled&&(a=e.$watch(i.ngDisabled,function(e){o(e)})),e.$on("$destroy",function(){a()});var s;r.fitInputWidthToTextLength=function(e){var t=n[0].querySelector("md-input-container");if(t){var i=getComputedStyle(t),r=parseInt(i.minWidth),o=2*parseInt(i.padding);s=s||parseInt(i.maxWidth);var a=Math.max(s,r+o+r/2*e);t.style.maxWidth=a+"px"}}}}}}function i(e,n,i,r,o,a,s,l,c,u){function d(e,n){var r=t.element(e[0].getElementsByClassName("md-slider-wrapper")),o=n.tabindex||0;return r.attr("tabindex",o),(n.disabled||n.ngDisabled)&&r.attr("tabindex",-1),r.attr("role","slider"),i.expect(e,"aria-label"),h}function h(i,d,h,p){function f(){A(),I()}function m(e){ae=parseFloat(e),d.attr("aria-valuemin",e),f()}function g(e){se=parseFloat(e),d.attr("aria-valuemax",e),f()}function v(e){le=parseFloat(e)}function b(e){ce=k(parseInt(e),0,6)}function y(){d.attr("aria-disabled",!!V())}function _(){if(ie&&!V()&&!t.isUndefined(le)){if(le<=0){var e="Slider step value must be greater than zero when in discrete mode";throw c.error(e),new Error(e)}var i=Math.floor((se-ae)/le);ue||(ue=t.element("<canvas>").css("position","absolute"),J.append(ue),de=ue[0].getContext("2d"));var r=C();!r||r.height||r.width||(A(),r=he),ue[0].width=r.width,ue[0].height=r.height;for(var o,a=0;a<=i;a++){var s=n.getComputedStyle(J[0]);de.fillStyle=s.color||"black",o=Math.floor((ne?r.height:r.width)*(a/i)),de.fillRect(ne?0:o-1,ne?o-1:0,ne?r.width:2,ne?2:r.height)}}}function w(){if(ue&&de){var e=C();de.clearRect(0,0,e.width,e.height)}}function A(){he=X[0].getBoundingClientRect()}function C(){return te(),he}function x(e){if(!V()){var t;(ne?e.keyCode===o.KEY_CODE.DOWN_ARROW:e.keyCode===o.KEY_CODE.LEFT_ARROW)?t=-le:(ne?e.keyCode===o.KEY_CODE.UP_ARROW:e.keyCode===o.KEY_CODE.RIGHT_ARROW)&&(t=le),(t=re?-t:t)&&((e.metaKey||e.ctrlKey||e.altKey)&&(t*=4),e.preventDefault(),e.stopPropagation(),i.$evalAsync(function(){D(z.$viewValue+t)}))}}function S(){_(),i.mouseActive=!0,ee.removeClass("md-focused"),u(function(){i.mouseActive=!1},100)}function E(){!1===i.mouseActive&&ee.addClass("md-focused")}function T(){ee.removeClass("md-focused"),d.removeClass("md-active"),w()}function D(e){z.$setViewValue(k(M(e)))}function I(){isNaN(z.$viewValue)&&(z.$viewValue=z.$modelValue),z.$viewValue=k(z.$viewValue);var e=W(z.$viewValue);i.modelValue=z.$viewValue,d.attr("aria-valuenow",z.$viewValue),P(e),K.text(z.$viewValue)}function k(e,n,i){if(t.isNumber(e))return n=t.isNumber(n)?n:ae,i=t.isNumber(i)?i:se,Math.max(n,Math.min(i,e))}function M(e){if(t.isNumber(e)){var n=Math.round((e-ae)/le)*le+ae;return n=Math.round(n*Math.pow(10,ce))/Math.pow(10,ce),q&&q.fitInputWidthToTextLength&&r.debounce(function(){q.fitInputWidthToTextLength(n.toString().length)},100)(),n}}function P(e){var t=100*(e=H(e))+"%",n=re?100*(1-e)+"%":t;ne?Q.css("bottom",t):r.bidiProperty(Q,"left","right",t),Z.css(ne?"height":"width",n),d.toggleClass(re?"md-max":"md-min",0===e),d.toggleClass(re?"md-min":"md-max",1===e)}function $(e){if(!V()){d.addClass("md-active"),d[0].focus(),A();var t=k(M(j(U(ne?e.pointer.y:e.pointer.x))));i.$apply(function(){D(t),P(W(t))})}}function N(e){if(!V()){d.removeClass("md-dragging");var t=k(M(j(U(ne?e.pointer.y:e.pointer.x))));i.$apply(function(){D(t),I()})}}function O(e){V()||(pe=!0,e.stopPropagation(),d.addClass("md-dragging"),G(e))}function R(e){pe&&(e.stopPropagation(),G(e))}function L(e){pe&&(e.stopPropagation(),pe=!1)}function G(e){ie?F(ne?e.pointer.y:e.pointer.x):B(ne?e.pointer.y:e.pointer.x)}function B(e){i.$evalAsync(function(){D(j(U(e)))})}function F(e){var t=k(M(j(U(e))));P(U(e)),K.text(t)}function H(e){return Math.max(0,Math.min(e||0,1))}function U(e){var t=(e-(ne?he.top:he.left))/(ne?he.height:he.width);return ne||"rtl"!==r.bidi()||(t=1-t),Math.max(0,Math.min(1,ne?1-t:t))}function j(e){return ae+(re?1-e:e)*(se-ae)}function W(e){var t=(e-ae)/(se-ae);return re?1-t:t}a(d);var z=p[0]||{$setViewValue:function(e){this.$viewValue=e,this.$viewChangeListeners.forEach(function(e){e()})},$parsers:[],$formatters:[],$viewChangeListeners:[]},q=p[1],V=(t.element(r.getClosest(d,"_md-slider-container",!0)),h.ngDisabled?t.bind(null,l(h.ngDisabled),i.$parent):function(){return d[0].hasAttribute("disabled")}),Y=t.element(d[0].querySelector(".md-thumb")),K=t.element(d[0].querySelector(".md-thumb-text")),Q=Y.parent(),X=t.element(d[0].querySelector(".md-track-container")),Z=t.element(d[0].querySelector(".md-track-fill")),J=t.element(d[0].querySelector(".md-track-ticks")),ee=t.element(d[0].getElementsByClassName("md-slider-wrapper")),te=(t.element(d[0].getElementsByClassName("md-slider-content")),r.throttle(A,5e3)),ne=t.isDefined(h.mdVertical),ie=t.isDefined(h.mdDiscrete),re=t.isDefined(h.mdInvert);t.isDefined(h.min)?h.$observe("min",m):m(0),t.isDefined(h.max)?h.$observe("max",g):g(100),t.isDefined(h.step)?h.$observe("step",v):v(1),t.isDefined(h.round)?h.$observe("round",b):b(3);t.noop;h.ngDisabled&&i.$parent.$watch(h.ngDisabled,y),s.register(ee,"drag",{horizontal:!ne}),i.mouseActive=!1,ee.on("keydown",x).on("mousedown",S).on("focus",E).on("blur",T).on("$md.pressdown",$).on("$md.pressup",N).on("$md.dragstart",O).on("$md.drag",R).on("$md.dragend",L),setTimeout(f,0);var oe=e.throttle(f);t.element(n).on("resize",oe),i.$on("$destroy",function(){t.element(n).off("resize",oe)}),z.$render=I,z.$viewChangeListeners.push(I),z.$formatters.push(k),z.$formatters.push(M);var ae,se,le,ce,ue,de,he={};A();var pe=!1}return{scope:{},require:["?ngModel","?^mdSliderContainer"],template:'<div class="md-slider-wrapper"><div class="md-slider-content"><div class="md-track-container"><div class="md-track"></div><div class="md-track md-track-fill"></div><div class="md-track-ticks"></div></div><div class="md-thumb-container"><div class="md-thumb"></div><div class="md-focus-thumb"></div><div class="md-focus-ring"></div><div class="md-sign"><span class="md-thumb-text"></span></div><div class="md-disabled-thumb"></div></div></div></div>',compile:d}}i.$inject=["$$rAF","$window","$mdAria","$mdUtil","$mdConstant","$mdTheming","$mdGesture","$parse","$log","$timeout"],t.module("material.components.slider",["material.core"]).directive("mdSlider",i).directive("mdSliderContainer",e)}(),function(){function e(e,t,i,r){function o(r){function o(e,t){t.addClass("md-sticky-clone");var n={element:e,clone:t};return m.items.push(n),i.nextTick(function(){p.prepend(n.clone)}),f(),function(){m.items.forEach(function(t,n){t.element[0]===e[0]&&(m.items.splice(n,1),t.clone.remove())}),f()}}function s(){m.items.forEach(l),m.items=m.items.sort(function(e,t){return e.top<t.top?-1:1});for(var e,t=p.prop("scrollTop"),n=m.items.length-1;n>=0;n--)if(t>m.items[n].top){e=m.items[n];break}u(e)}function l(e){var t=e.element[0];for(e.top=0,e.left=0,e.right=0;t&&t!==p[0];)e.top+=t.offsetTop,e.left+=t.offsetLeft,t.offsetParent&&(e.right+=t.offsetParent.offsetWidth-t.offsetWidth-t.offsetLeft),t=t.offsetParent;e.height=e.element.prop("offsetHeight");var r=i.floatingScrollbars()?"0":n;i.bidi(e.clone,"margin-left",e.left,r),i.bidi(e.clone,"margin-right",r,e.right)}function c(){var e=p.prop("scrollTop"),t=e>(c.prevScrollTop||0);if(c.prevScrollTop=e,0!==e){if(t){if(m.next&&m.next.top<=e)return void u(m.next);if(m.current&&m.next&&m.next.top-e<=m.next.height)return void h(m.current,e+(m.next.top-m.next.height-e))}if(!t){if(m.current&&m.prev&&e<m.current.top)return void u(m.prev);if(m.next&&m.current&&e>=m.next.top-m.current.height)return void h(m.current,e+(m.next.top-e-m.current.height))}m.current&&h(m.current,e)}else u(null)}function u(e){if(m.current!==e){m.current&&(h(m.current,null),d(m.current,null)),e&&d(e,"active"),m.current=e;var t=m.items.indexOf(e);m.next=m.items[t+1],m.prev=m.items[t-1],d(m.next,"next"),d(m.prev,"prev")}}function d(e,t){e&&e.state!==t&&(e.state&&(e.clone.attr("sticky-prev-state",e.state),e.element.attr("sticky-prev-state",e.state)),e.clone.attr("sticky-state",t),e.element.attr("sticky-state",t),e.state=t)}function h(t,r){t&&(null===r||r===n?t.translateY&&(t.translateY=null,t.clone.css(e.CSS.TRANSFORM,"")):(t.translateY=r,i.bidi(t.clone,e.CSS.TRANSFORM,"translate3d("+t.left+"px,"+r+"px,0)","translateY("+r+"px)")))}var p=r.$element,f=t.throttle(s);a(p),p.on("$scrollstart",f),p.on("$scroll",c);var m;return m={prev:null,current:null,next:null,items:[],add:o,refreshElements:s}}function a(e){function n(){+i.now()-o>a?(r=!1,e.triggerHandler("$scrollend")):(e.triggerHandler("$scroll"),t.throttle(n))}var r,o,a=200;e.on("scroll touchmove",function(){r||(r=!0,t.throttle(n),e.triggerHandler("$scrollstart")),e.triggerHandler("$scroll"),o=+i.now()})}var s=i.checkStickySupport();return function(e,t,n){var i=t.controller("mdContent");if(i)if(s)t.css({position:s,top:0,"z-index":2});else{var a=i.$element.data("$$sticky");a||(a=o(i),i.$element.data("$$sticky",a));var l=n||r(t.clone())(e),c=a.add(t,l);e.$on("$destroy",c)}}}e.$inject=["$mdConstant","$$rAF","$mdUtil","$compile"],t.module("material.components.sticky",["material.core","material.components.content"]).factory("$mdSticky",e)}(),function(){function e(e,n,i,r){return{restrict:"E",replace:!0,transclude:!0,template:'<div class="md-subheader _md">  <div class="md-subheader-inner">    <div class="md-subheader-content"></div>  </div></div>',link:function(o,a,s,l,c){function u(e){return t.element(e[0].querySelector(".md-subheader-content"))}i(a),a.addClass("_md"),r.prefixer().removeAttribute(a,"ng-repeat");var d=a[0].outerHTML;c(o,function(e){u(a).append(e)}),a.hasClass("md-no-sticky")||c(o,function(t){var i=n('<div class="md-subheader-wrapper">'+d+"</div>")(o);r.nextTick(function(){u(i).append(t)}),e(o,a,i)})}}}e.$inject=["$mdSticky","$compile","$mdTheming","$mdUtil"],t.module("material.components.subheader",["material.core","material.components.sticky"]).directive("mdSubheader",e)}(),function(){function e(e){function t(e){function t(t,r,o){var a=e(o[n]);r.on(i,function(e){t.$applyAsync(function(){a(t,{$event:e})})})}return{restrict:"A",link:t}}t.$inject=["$parse"];var n="md"+e,i="$md."+e.toLowerCase();return t}t.module("material.components.swipe",["material.core"]).directive("mdSwipeLeft",e("SwipeLeft")).directive("mdSwipeRight",e("SwipeRight")).directive("mdSwipeUp",e("SwipeUp")).directive("mdSwipeDown",e("SwipeDown"))}(),function(){function e(e,n,i,r,o,a,s){function l(e,l){var u=c.compile(e,l).post;return e.addClass("md-dragging"),function(e,l,c,d){function h(t){g&&g(e)||(t.stopPropagation(),l.addClass("md-dragging"),y={width:v.prop("offsetWidth")})}function p(e){if(y){e.stopPropagation(),e.srcEvent&&e.srcEvent.preventDefault();var t=e.pointer.distanceX/y.width,n=d.$viewValue?1+t:t;n=Math.max(0,Math.min(1,n)),v.css(i.CSS.TRANSFORM,"translate3d("+100*n+"%,0,0)"),y.translate=n}}function f(t){y&&(t.stopPropagation(),l.removeClass("md-dragging"),v.css(i.CSS.TRANSFORM,""),(d.$viewValue?y.translate<.5:y.translate>.5)&&m(!d.$viewValue),y=null,e.skipToggle=!0,s(function(){e.skipToggle=!1},1))}function m(t){e.$apply(function(){d.$setViewValue(t),d.$render()})}d=d||n.fakeNgModel();var g=null;null!=c.disabled?g=function(){return!0}:c.ngDisabled&&(g=r(c.ngDisabled));var v=t.element(l[0].querySelector(".md-thumb-container")),b=t.element(l[0].querySelector(".md-container"));o(function(){l.removeClass("md-dragging")}),u(e,l,c,d),g&&e.$watch(g,function(e){l.attr("tabindex",e?-1:0)}),a.register(b,"drag"),b.on("$md.dragstart",h).on("$md.drag",p).on("$md.dragend",f);var y}}var c=e[0];return{restrict:"E",priority:210,transclude:!0,template:'<div class="md-container"><div class="md-bar"></div><div class="md-thumb-container"><div class="md-thumb" md-ink-ripple md-ink-ripple-checkbox></div></div></div><div ng-transclude class="md-label"></div>',require:"?ngModel",compile:l}}e.$inject=["mdCheckboxDirective","$mdUtil","$mdConstant","$parse","$$rAF","$mdGesture","$timeout"],t.module("material.components.switch",["material.core","material.components.checkbox"]).directive("mdSwitch",e)}(),function(){t.module("material.components.tabs",["material.core","material.components.icon"])}(),function(){function e(e){return{restrict:"E",link:function(t,n){n.addClass("_md"),t.$on("$destroy",function(){e.destroy()})}}}function n(e){function n(e){r=e}function i(e,n,i,o){function a(t,a,s){r=s.textContent||s.content;var u=!o("gt-sm");return a=i.extractElementByName(a,"md-toast",!0),s.element=a,s.onSwipe=function(e,t){var r=e.type.replace("$md.",""),o=r.replace("swipe","");"down"===o&&-1!=s.position.indexOf("top")&&!u||"up"===o&&(-1!=s.position.indexOf("bottom")||u)||("left"!==o&&"right"!==o||!u)&&(a.addClass("md-"+r),i.nextTick(n.cancel))},s.openClass=l(s.position),a.addClass(s.toastClass),s.parent.addClass(s.openClass),i.hasComputedStyle(s.parent,"position","static")&&s.parent.css("position","relative"),a.on(c,s.onSwipe),a.addClass(u?"md-bottom":s.position.split(" ").map(function(e){return"md-"+e}).join(" ")),s.parent&&s.parent.addClass("md-toast-animating"),e.enter(a,s.parent).then(function(){s.parent&&s.parent.removeClass("md-toast-animating")})}function s(t,n,r){return n.off(c,r.onSwipe),r.parent&&r.parent.addClass("md-toast-animating"),r.openClass&&r.parent.removeClass(r.openClass),(1==r.$destroy?n.remove():e.leave(n)).then(function(){r.parent&&r.parent.removeClass("md-toast-animating"),i.hasComputedStyle(r.parent,"position","static")&&r.parent.css("position","")})}function l(e){return o("gt-xs")?"md-toast-open-"+(e.indexOf("top")>-1?"top":"bottom"):"md-toast-open-bottom"}var c="$md.swipeleft $md.swiperight $md.swipeup $md.swipedown";return{onShow:a,onRemove:s,toastClass:"",position:"bottom left",themable:!0,hideDelay:3e3,autoWrap:!0,transformTemplate:function(e,n){if(n.autoWrap&&e&&!/md-toast-content/g.test(e)){var i=document.createElement("md-template");i.innerHTML=e;for(var r=0;r<i.children.length;r++)if("MD-TOAST"===i.children[r].nodeName){var o=t.element('<div class="md-toast-content">');o.append(t.element(i.children[r].childNodes)),i.children[r].appendChild(o[0])}return i.innerHTML}return e||""}}}i.$inject=["$animate","$mdToast","$mdUtil","$mdMedia"];var r;return e("$mdToast").setDefaults({methods:["position","hideDelay","capsule","parent","position","toastClass"],options:i}).addPreset("simple",{argOption:"textContent",methods:["textContent","content","action","highlightAction","highlightClass","theme","parent"],options:["$mdToast","$mdTheming",function(e,t){return{template:'<md-toast md-theme="{{ toast.theme }}" ng-class="{\'md-capsule\': toast.capsule}">  <div class="md-toast-content">    <span class="md-toast-text" role="alert" aria-relevant="all" aria-atomic="true">      {{ toast.content }}    </span>    <md-button class="md-action" ng-if="toast.action" ng-click="toast.resolve()"         ng-class="highlightClasses">      {{ toast.action }}    </md-button>  </div></md-toast>',controller:["$scope",function(t){var n=this;n.highlightAction&&(t.highlightClasses=["md-highlight",n.highlightClass]),t.$watch(function(){return r},function(){n.content=r}),this.resolve=function(){e.hide("ok")}}],theme:t.defaultTheme(),controllerAs:"toast",bindToController:!0}}]}).addMethod("updateTextContent",n).addMethod("updateContent",n)}e.$inject=["$mdToast"],n.$inject=["$$interimElementProvider"],t.module("material.components.toast",["material.core","material.components.button"]).directive("mdToast",e).provider("$mdToast",n)}(),function(){function e(e,n,i,r,o){var a=t.bind(null,i.supplant,"translate3d(0,{0}px,0)");return{template:"",restrict:"E",link:function(s,l,c){l.addClass("_md"),r(l),i.nextTick(function(){l.addClass("_md-toolbar-transitions")},!1),t.isDefined(c.mdScrollShrink)&&function(){function r(e){var t=l.parent().find("md-content");!m&&t.length&&u(null,t),!1===(e=s.$eval(e))?g():g=h()}function u(e,t){t&&l.parent()[0]===t.parent()[0]&&(m&&m.off("scroll",_),m=t,g=h())}function d(e){var t=e?e.target.scrollTop:b;w(),v=Math.min(f/y,Math.max(0,v+t-b)),l.css(n.CSS.TRANSFORM,a([-v*y])),m.css(n.CSS.TRANSFORM,a([(f-v)*y])),b=t,i.nextTick(function(){var e=l.hasClass("md-whiteframe-z1");e&&!v?o.removeClass(l,"md-whiteframe-z1"):!e&&v&&o.addClass(l,"md-whiteframe-z1")})}function h(){return m?(m.on("scroll",_),m.attr("scroll-shrink","true"),i.nextTick(p,!1),function(){m.off("scroll",_),m.attr("scroll-shrink","false"),p()}):t.noop}function p(){var e=-(f=l.prop("offsetHeight"))*y+"px";m.css({"margin-top":e,"margin-bottom":e}),d()}var f,m,g=t.noop,v=0,b=0,y=c.mdShrinkSpeedFactor||.5,_=e.throttle(d),w=i.debounce(p,5e3);s.$on("$mdContentLoaded",u),c.$observe("mdScrollShrink",r),c.ngShow&&s.$watch(c.ngShow,p),c.ngHide&&s.$watch(c.ngHide,p),s.$on("$destroy",g)}()}}}e.$inject=["$$rAF","$mdConstant","$mdUtil","$mdTheming","$animate"],t.module("material.components.toolbar",["material.core","material.components.content"]).directive("mdToolbar",e)}(),function(){function e(e,n,i,r,o,a,s,l,c,u){function d(s,c,d){function v(){var e="center top";switch(s.direction){case"left":e="right center";break;case"right":e="left center";break;case"top":e="center bottom";break;case"bottom":e="center top"}E.css("transform-origin",e)}function b(e){e?w():A()}function y(e){if((e||!S.attr("aria-label"))&&!S.text().trim()){var t=e||c.text().trim(),n=u(t)(S.scope());S.attr("aria-label",n)}}function _(t){_.queued&&_.value===!!t||!_.queued&&s.visible===!!t||(_.value=!!t,_.queued||(t?(_.queued=!0,D=e(function(){s.visible=_.value,_.queued=!1,D=null,s.visibleWatcher||b(s.visible)},s.delay)):o.nextTick(function(){s.visible=!1,s.visibleWatcher||b(!1)})))}function w(){if(c[0].textContent.trim()){if(c.css({top:0,left:0}),T.append(c),o.hasComputedStyle(c,"display","none"))return s.visible=!1,void c.detach();C(),l.addClass(E,f).then(function(){c.addClass(f)})}}function A(){l.removeClass(E,f).then(function(){c.removeClass(f),s.visible||c.detach()})}function C(){s.visible&&(v(),x())}function x(){function e(e){var t={left:e.left,top:e.top};return t.left=Math.min(t.left,T.prop("scrollWidth")-n.width-g),t.left=Math.max(t.left,g),t.top=Math.min(t.top,T.prop("scrollHeight")-n.height-g),t.top=Math.max(t.top,g),t}function t(e){return"left"===e?{left:i.left-n.width-g,top:i.top+i.height/2-n.height/2}:"right"===e?{left:i.left+i.width+g,top:i.top+i.height/2-n.height/2}:"top"===e?{left:i.left+i.width/2-n.width/2,top:i.top-n.height-g}:{left:i.left+i.width/2-n.width/2,top:i.top+i.height+g}}var n=o.offsetRect(c,T),i=o.offsetRect(S,T),r=t(s.direction),a=c.prop("offsetParent");s.direction?r=e(r):a&&r.top>a.scrollHeight-n.height-g&&(r=e(t("top"))),c.css({left:r.left+"px",top:r.top+"px"})}a(c);var S=o.getParentWithPointerEvents(c),E=t.element(c[0].getElementsByClassName("md-content")[0]),T=t.element(document.body),D=null,I=i.throttle(function(){C()});l.pin&&l.pin(c,S),function(){s.delay=s.delay||m}(),function(){c.detach(),c.attr("role","tooltip")}(),function(){function i(){_(!1)}var a=!1;if(S[0]&&"MutationObserver"in n){var l=new MutationObserver(function(e){e.some(function(e){return"disabled"===e.attributeName&&S[0].disabled})&&o.nextTick(function(){_(!1)})});l.observe(S[0],{attributes:!0})}var c=function(){u=document.activeElement===S[0]},u=!1;t.element(n).on("blur",c).on("resize",I),document.addEventListener("scroll",i,!0),s.$on("$destroy",function(){t.element(n).off("blur",c).off("resize",I),S.off(h,f).off(p,m).off("mousedown",g),m(),document.removeEventListener("scroll",i,!0),l&&l.disconnect()});var f=function(e){"focus"===e.type&&u?u=!1:s.visible||(S.on(p,m),_(!0),"touchstart"===e.type&&S.one("touchend",function(){o.nextTick(function(){r.one("touchend",m)},!1)}))},m=function(){((s.hasOwnProperty("autohide")?s.autohide:d.hasOwnProperty("mdAutohide"))||a||r[0].activeElement!==S[0])&&(D&&(e.cancel(D),_.queued=!1,D=null),S.off(p,m),S.triggerHandler("blur"),_(!1)),a=!1},g=function(){a=!0};S.on("mousedown",g),S.on(h,f)}(),v(),function(){if(c[0]&&"MutationObserver"in n){var e=new MutationObserver(function(e){e.forEach(function(e){"md-visible"===e.attributeName&&(s.visibleWatcher||(s.visibleWatcher=s.$watch("visible",b))),"md-direction"===e.attributeName&&C(s.direction)})});e.observe(c[0],{attributes:!0}),d.hasOwnProperty("mdVisible")&&(s.visibleWatcher=s.$watch("visible",b))}else s.visibleWatcher=s.$watch("visible",b),s.$watch("direction",C);var t=function(){s.$destroy()};c.one("$destroy",t),S.one("$destroy",t),s.$on("$destroy",function(){_(!1),c.remove(),e&&e.disconnect()}),c.text().indexOf(u.startSymbol())>-1&&s.$watch(function(){return c.text().trim()},y)}(),y()}var h="focus touchstart mouseenter",p="blur touchcancel mouseleave",f="md-show",m=0,g=8;return{restrict:"E",transclude:!0,priority:210,template:'<div class="md-content _md" ng-transclude></div>',scope:{delay:"=?mdDelay",visible:"=?mdVisible",autohide:"=?mdAutohide",direction:"@?mdDirection"},compile:function(e,t){return t.mdDirection||t.$set("mdDirection","bottom"),d}}}e.$inject=["$timeout","$window","$$rAF","$document","$mdUtil","$mdTheming","$rootElement","$animate","$q","$interpolate"],t.module("material.components.tooltip",["material.core"]).directive("mdTooltip",e)}(),function(){function e(){return{controller:i,template:n,compile:function(e,t){e.addClass("md-virtual-repeat-container").addClass(t.hasOwnProperty("mdOrientHorizontal")?"md-orient-horizontal":"md-orient-vertical")}}}function n(e){return'<div class="md-virtual-repeat-scroller"><div class="md-virtual-repeat-sizer"></div><div class="md-virtual-repeat-offsetter">'+e[0].innerHTML+"</div></div>"}function i(e,n,i,r,o,a,s,l){this.$rootScope=r,this.$scope=a,this.$element=s,this.$attrs=l,this.size=0,this.scrollSize=0,this.scrollOffset=0,this.horizontal=this.$attrs.hasOwnProperty("mdOrientHorizontal"),this.repeater=null,this.autoShrink=this.$attrs.hasOwnProperty("mdAutoShrink"),this.autoShrinkMin=parseInt(this.$attrs.mdAutoShrinkMin,10)||0,this.originalSize=null,this.offsetSize=parseInt(this.$attrs.mdOffsetSize,10)||0,this.oldElementSize=null,this.$attrs.mdTopIndex?(this.bindTopIndex=i(this.$attrs.mdTopIndex),this.topIndex=this.bindTopIndex(this.$scope),t.isDefined(this.topIndex)||(this.topIndex=0,this.bindTopIndex.assign(this.$scope,0)),this.$scope.$watch(this.bindTopIndex,t.bind(this,function(e){e!==this.topIndex&&this.scrollToIndex(e)}))):this.topIndex=0,this.scroller=s[0].querySelector(".md-virtual-repeat-scroller"),this.sizer=this.scroller.querySelector(".md-virtual-repeat-sizer"),this.offsetter=this.scroller.querySelector(".md-virtual-repeat-offsetter");var c=t.bind(this,this.updateSize);e(t.bind(this,function(){c();var e=n.debounce(c,10,null,!1),i=t.element(o);this.size||e(),i.on("resize",e),a.$on("$destroy",function(){i.off("resize",e)}),a.$emit("$md-resize-enable"),a.$on("$md-resize",c)}))}function r(e){return{controller:o,priority:1e3,require:["mdVirtualRepeat","^^mdVirtualRepeatContainer"],restrict:"A",terminal:!0,transclude:"element",compile:function(t,n){var i=n.mdVirtualRepeat.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)\s*$/),r=i[1],o=e(i[2]),a=n.mdExtraName&&e(n.mdExtraName);return function(e,t,n,i,s){i[0].link_(i[1],s,r,o,a)}}}}function o(e,n,i,r,o,a,s,l){this.$scope=e,this.$element=n,this.$attrs=i,this.$browser=r,this.$document=o,this.$rootScope=a,this.$$rAF=s,this.onDemand=l.parseAttributeBoolean(i.mdOnDemand),this.browserCheckUrlChange=r.$$checkUrlChange,this.newStartIndex=0,this.newEndIndex=0,this.newVisibleEnd=0,this.startIndex=0,this.endIndex=0,this.itemSize=e.$eval(i.mdItemSize)||null,this.isFirstRender=!0,this.isVirtualRepeatUpdating_=!1,this.itemsLength=0,this.unwatchItemSize_=t.noop,this.blocks={},this.pooledBlocks=[],e.$on("$destroy",t.bind(this,this.cleanupBlocks_))}function a(e){if(!t.isFunction(e.getItemAtIndex)||!t.isFunction(e.getLength))throw Error("When md-on-demand is enabled, the Object passed to md-virtual-repeat must implement functions getItemAtIndex() and getLength() ");this.model=e}i.$inject=["$$rAF","$mdUtil","$parse","$rootScope","$window","$scope","$element","$attrs"],o.$inject=["$scope","$element","$attrs","$browser","$document","$rootScope","$$rAF","$mdUtil"],r.$inject=["$parse"],t.module("material.components.virtualRepeat",["material.core","material.components.showHide"]).directive("mdVirtualRepeatContainer",e).directive("mdVirtualRepeat",r);i.prototype.register=function(e){this.repeater=e,t.element(this.scroller).on("scroll wheel touchmove touchend",t.bind(this,this.handleScroll_))},i.prototype.isHorizontal=function(){return this.horizontal},i.prototype.getSize=function(){return this.size},i.prototype.setSize_=function(e){var t=this.getDimensionName_();this.size=e,this.$element[0].style[t]=e+"px"},i.prototype.unsetSize_=function(){this.$element[0].style[this.getDimensionName_()]=this.oldElementSize,this.oldElementSize=null},i.prototype.updateSize=function(){this.originalSize||(this.size=this.isHorizontal()?this.$element[0].clientWidth:this.$element[0].clientHeight,this.handleScroll_(),this.repeater&&this.repeater.containerUpdated())},i.prototype.getScrollSize=function(){return this.scrollSize},i.prototype.getDimensionName_=function(){return this.isHorizontal()?"width":"height"},i.prototype.sizeScroller_=function(e){var t=this.getDimensionName_(),n=this.isHorizontal()?"height":"width";if(this.sizer.innerHTML="",e<1533917)this.sizer.style[t]=e+"px";else{this.sizer.style[t]="auto",this.sizer.style[n]="auto";var i=Math.floor(e/1533917),r=document.createElement("div");r.style[t]="1533917px",r.style[n]="1px";for(var o=0;o<i;o++)this.sizer.appendChild(r.cloneNode(!1));r.style[t]=e-1533917*i+"px",this.sizer.appendChild(r)}},i.prototype.autoShrink_=function(e){var t=Math.max(e,this.autoShrinkMin*this.repeater.getItemSize());if(this.autoShrink&&t!==this.size){null===this.oldElementSize&&(this.oldElementSize=this.$element[0].style[this.getDimensionName_()]);var n=this.originalSize||this.size;if(!n||t<n)this.originalSize||(this.originalSize=this.size),this.setSize_(t);else if(null!==this.originalSize){this.unsetSize_();var i=this.originalSize;this.originalSize=null,i||this.updateSize(),this.setSize_(i||this.size)}this.repeater.containerUpdated()}},i.prototype.setScrollSize=function(e){var t=e+this.offsetSize;this.scrollSize!==t&&(this.sizeScroller_(t),this.autoShrink_(t),this.scrollSize=t)},i.prototype.getScrollOffset=function(){return this.scrollOffset},i.prototype.scrollTo=function(e){this.scroller[this.isHorizontal()?"scrollLeft":"scrollTop"]=e,this.handleScroll_()},i.prototype.scrollToIndex=function(e){var t=this.repeater.getItemSize(),n=this.repeater.itemsLength;e>n&&(e=n-1),this.scrollTo(t*e)},i.prototype.resetScroll=function(){this.scrollTo(0)},i.prototype.handleScroll_=function(){var e=t.element(document)[0],n="rtl"!=e.dir&&"rtl"!=e.body.dir;n||this.maxSize||(this.scroller.scrollLeft=this.scrollSize,this.maxSize=this.scroller.scrollLeft);var i=this.isHorizontal()?n?this.scroller.scrollLeft:this.maxSize-this.scroller.scrollLeft:this.scroller.scrollTop;if(!(i===this.scrollOffset||i>this.scrollSize-this.size)){var r=this.repeater.getItemSize();if(r){var o=Math.max(0,Math.floor(i/r)-3),a=(this.isHorizontal()?"translateX(":"translateY(")+(!this.isHorizontal()||n?o*r:-o*r)+"px)";if(this.scrollOffset=i,this.offsetter.style.webkitTransform=a,this.offsetter.style.transform=a,this.bindTopIndex){var s=Math.floor(i/r);s!==this.topIndex&&s<this.repeater.getItemCount()&&(this.topIndex=s,this.bindTopIndex.assign(this.$scope,s),this.$rootScope.$$phase||this.$scope.$digest())}this.repeater.containerUpdated()}}},o.Block,o.prototype.link_=function(e,n,i,r,o){this.container=e,this.transclude=n,this.repeatName=i,this.rawRepeatListExpression=r,this.extraName=o,this.sized=!1,this.repeatListExpression=t.bind(this,this.repeatListExpression_),this.container.register(this)},o.prototype.cleanupBlocks_=function(){t.forEach(this.pooledBlocks,function(e){e.element.remove()})},o.prototype.readItemSize_=function(){if(!this.itemSize){this.items=this.repeatListExpression(this.$scope),this.parentNode=this.$element[0].parentNode;var e=this.getBlock_(0);e.element[0].parentNode||this.parentNode.appendChild(e.element[0]),this.itemSize=e.element[0][this.container.isHorizontal()?"offsetWidth":"offsetHeight"]||null,this.blocks[0]=e,this.poolBlock_(0),this.itemSize&&this.containerUpdated()}},o.prototype.repeatListExpression_=function(e){var t=this.rawRepeatListExpression(e);if(this.onDemand&&t){var n=new a(t);return n.$$includeIndexes(this.newStartIndex,this.newVisibleEnd),n}return t},o.prototype.containerUpdated=function(){if(!this.itemSize)return this.unwatchItemSize_&&this.unwatchItemSize_!==t.noop&&this.unwatchItemSize_(),this.unwatchItemSize_=this.$scope.$watchCollection(this.repeatListExpression,t.bind(this,function(e){e&&e.length&&this.readItemSize_()})),void(this.$rootScope.$$phase||this.$scope.$digest());this.sized||(this.items=this.repeatListExpression(this.$scope)),this.sized||(this.unwatchItemSize_(),this.sized=!0,this.$scope.$watchCollection(this.repeatListExpression,t.bind(this,function(e,t){this.isVirtualRepeatUpdating_||this.virtualRepeatUpdate_(e,t)}))),this.updateIndexes_(),(this.newStartIndex!==this.startIndex||this.newEndIndex!==this.endIndex||this.container.getScrollOffset()>this.container.getScrollSize())&&(this.items instanceof a&&this.items.$$includeIndexes(this.newStartIndex,this.newEndIndex),this.virtualRepeatUpdate_(this.items,this.items))},o.prototype.getItemSize=function(){return this.itemSize},o.prototype.getItemCount=function(){return this.itemsLength},o.prototype.virtualRepeatUpdate_=function(e,n){this.isVirtualRepeatUpdating_=!0;var i=e&&e.length||0,r=!1;if(this.items&&i<this.items.length&&0!==this.container.getScrollOffset()){this.items=e;var o=this.container.getScrollOffset();this.container.resetScroll(),this.container.scrollTo(o)}if(i!==this.itemsLength&&(r=!0,this.itemsLength=i),this.items=e,(e!==n||r)&&this.updateIndexes_(),this.parentNode=this.$element[0].parentNode,r&&this.container.setScrollSize(i*this.itemSize),this.isFirstRender){this.isFirstRender=!1;var a=this.$attrs.mdStartIndex?this.$scope.$eval(this.$attrs.mdStartIndex):this.container.topIndex;this.container.scrollToIndex(a)}Object.keys(this.blocks).forEach(function(e){var t=parseInt(e,10);(t<this.newStartIndex||t>=this.newEndIndex)&&this.poolBlock_(t)},this),this.$browser.$$checkUrlChange=t.noop;var s,l,c=[],u=[];for(s=this.newStartIndex;s<this.newEndIndex&&null==this.blocks[s];s++)l=this.getBlock_(s),this.updateBlock_(l,s),c.push(l);for(;null!=this.blocks[s];s++)this.updateBlock_(this.blocks[s],s);for(var d=s-1;s<this.newEndIndex;s++)l=this.getBlock_(s),this.updateBlock_(l,s),u.push(l);c.length&&this.parentNode.insertBefore(this.domFragmentFromBlocks_(c),this.$element[0].nextSibling),u.length&&this.parentNode.insertBefore(this.domFragmentFromBlocks_(u),this.blocks[d]&&this.blocks[d].element[0].nextSibling),this.$browser.$$checkUrlChange=this.browserCheckUrlChange,this.startIndex=this.newStartIndex,this.endIndex=this.newEndIndex,this.isVirtualRepeatUpdating_=!1},o.prototype.getBlock_=function(e){if(this.pooledBlocks.length)return this.pooledBlocks.pop();var n;return this.transclude(t.bind(this,function(t,i){n={element:t,new:!0,scope:i},this.updateScope_(i,e),this.parentNode.appendChild(t[0])})),n},o.prototype.updateBlock_=function(e,t){this.blocks[t]=e,(e.new||e.scope.$index!==t||e.scope[this.repeatName]!==this.items[t])&&(e.new=!1,this.updateScope_(e.scope,t),this.$rootScope.$$phase||e.scope.$digest())},o.prototype.updateScope_=function(e,t){e.$index=t,e[this.repeatName]=this.items&&this.items[t],this.extraName&&(e[this.extraName(this.$scope)]=this.items[t])},o.prototype.poolBlock_=function(e){this.pooledBlocks.push(this.blocks[e]),this.parentNode.removeChild(this.blocks[e].element[0]),delete this.blocks[e]},o.prototype.domFragmentFromBlocks_=function(e){var t=this.$document[0].createDocumentFragment();return e.forEach(function(e){t.appendChild(e.element[0])}),t},o.prototype.updateIndexes_=function(){var e=this.items?this.items.length:0,t=Math.ceil(this.container.getSize()/this.itemSize);this.newStartIndex=Math.max(0,Math.min(e-t,Math.floor(this.container.getScrollOffset()/this.itemSize))),this.newVisibleEnd=this.newStartIndex+t+3,this.newEndIndex=Math.min(e,this.newVisibleEnd),this.newStartIndex=Math.max(0,this.newStartIndex-3)},a.prototype.$$includeIndexes=function(e,t){for(var n=e;n<t;n++)this.hasOwnProperty(n)||(this[n]=this.model.getItemAtIndex(n));this.length=this.model.getLength()}}(),function(){function e(e){function t(t,a,s){var l="";s.$observe("mdWhiteframe",function(t){(t=parseInt(t,10)||o)!=n&&(t>r||t<i)&&(e.warn("md-whiteframe attribute value is invalid. It should be a number between "+i+" and "+r,a[0]),t=o);var c=t==n?"":"md-whiteframe-"+t+"dp";s.$updateClass(c,l),l=c})}var n=-1,i=1,r=24,o=4;return{link:t}}e.$inject=["$log"],t.module("material.components.whiteframe",["material.core"]).directive("mdWhiteframe",e)}(),function(){function e(e,a,s,l,c,u,d,h,p,f,m){function g(){e.requireMatch&&De&&De.$setValidity("md-require-match",!!e.selectedItem)}function v(){function t(){var e=_e.scrollContainer.getBoundingClientRect(),t={};e.right>u.right-r&&(t.left=l.right-e.width+"px"),_e.$.scrollContainer.css(t)}if(!_e)return s.nextTick(v,!1,e);var n,l=_e.wrap.getBoundingClientRect(),c=_e.snap.getBoundingClientRect(),u=_e.root.getBoundingClientRect(),d=c.bottom-u.top,h=u.bottom-c.top,f=l.left-u.left,m=l.width,g=function(){var e=0,t=a.find("md-input-container");if(t.length){var n=t.find("input");e=t.prop("offsetHeight"),e-=n.prop("offsetTop"),e-=n.prop("offsetHeight"),e+=t.prop("offsetTop")}return e}();p.mdFloatingLabel&&(f+=o,m-=2*o),n={left:f+"px",minWidth:m+"px",maxWidth:Math.max(l.right-u.left,u.right-l.left)-r+"px"},d>h&&u.height-l.bottom-r<i?(n.top="auto",n.bottom=h+"px",n.maxHeight=Math.min(i,l.top-u.top-r)+"px"):(n.top=d-g+"px",n.bottom="auto",n.maxHeight=Math.min(i,u.bottom+s.scrollTop()-l.bottom-r)+"px"),_e.$.scrollContainer.css(n),s.nextTick(t,!1)}function b(){_e.$.root.length&&(c(_e.$.scrollContainer),_e.$.scrollContainer.detach(),_e.$.root.append(_e.$.scrollContainer),d.pin&&d.pin(_e.$.scrollContainer,h))}function y(){_e.input.focus()}function _(){var n=parseInt(e.delay,10)||0;p.$observe("disabled",function(e){ve.isDisabled=s.parseAttributeBoolean(e,!1)}),p.$observe("required",function(e){ve.isRequired=s.parseAttributeBoolean(e,!1)}),p.$observe("readonly",function(e){ve.isReadonly=s.parseAttributeBoolean(e,!1)}),e.$watch("searchText",n?s.debounce(R,n):R),e.$watch("selectedItem",k),t.element(u).on("resize",v),e.$on("$destroy",w)}function w(){if(ve.hidden||s.enableScrolling(),t.element(u).off("resize",v),_e){var e=["ul","scroller","scrollContainer","input"];t.forEach(e,function(e){_e.$[e].remove()})}}function A(){(_e={main:a[0],scrollContainer:a[0].querySelector(".md-virtual-repeat-container"),scroller:a[0].querySelector(".md-virtual-repeat-scroller"),ul:a.find("ul")[0],input:a.find("input")[0],wrap:a.find("md-autocomplete-wrap")[0],root:document.body}).li=_e.ul.getElementsByTagName("li"),_e.snap=C(),_e.$=x(_e),De=_e.$.input.controller("ngModel")}function C(){for(var e=a;e.length;e=e.parent())if(t.isDefined(e.attr("md-autocomplete-snap")))return e[0];return _e.wrap}function x(e){var n={};for(var i in e)e.hasOwnProperty(i)&&(n[i]=t.element(e[i]));return n}function S(e,n){!e&&n?(v(),_e&&(s.disableScrollAround(_e.ul),Te=E(t.element(_e.wrap)))):e&&!n&&(s.enableScrolling(),Te&&(Te(),Te=null))}function E(e){function t(e){e.preventDefault()}return e.on("wheel",t),e.on("touchmove",t),function(){e.off("wheel",t),e.off("touchmove",t)}}function T(){Ae=!0}function D(){xe||ve.hidden||_e.input.focus(),Ae=!1,ve.hidden=q()}function I(){_e.input.focus()}function k(t,n){g(),t?U(t).then(function(i){e.searchText=i,$(t,n)}):n&&e.searchText&&U(n).then(function(t){t.toString().toLowerCase()===e.searchText.toLowerCase()&&(e.searchText="")}),t!==n&&M()}function M(){t.isFunction(e.itemChange)&&e.itemChange(j(e.selectedItem))}function P(){t.isFunction(e.textChange)&&e.textChange()}function $(e,t){Ce.forEach(function(n){n(e,t)})}function N(e){-1==Ce.indexOf(e)&&Ce.push(e)}function O(e){var t=Ce.indexOf(e);-1!=t&&Ce.splice(t,1)}function R(t,n){ve.index=W(),t!==n&&(g(),U(e.selectedItem).then(function(i){t!==i&&(e.selectedItem=null,t!==n&&P(),te()?pe():(ve.matches=[],z(!1),se()))}))}function L(e){xe=!1,Ae||(ve.hidden=q(),ge("ngBlur",{$event:e}))}function G(e){e&&(Ae=!1,xe=!1),_e.input.blur()}function B(e){xe=!0,V()&&te()&&pe(),ve.hidden=q(),ge("ngFocus",{$event:e})}function F(t){switch(t.keyCode){case l.KEY_CODE.DOWN_ARROW:if(ve.loading)return;t.stopPropagation(),t.preventDefault(),ve.index=Math.min(ve.index+1,ve.matches.length-1),ce(),se();break;case l.KEY_CODE.UP_ARROW:if(ve.loading)return;t.stopPropagation(),t.preventDefault(),ve.index=ve.index<0?ve.matches.length-1:Math.max(0,ve.index-1),ce(),se();break;case l.KEY_CODE.TAB:if(D(),ve.hidden||ve.loading||ve.index<0||ve.matches.length<1)return;ne(ve.index);break;case l.KEY_CODE.ENTER:if(ve.hidden||ve.loading||ve.index<0||ve.matches.length<1)return;if(Z())return;t.stopPropagation(),t.preventDefault(),ne(ve.index);break;case l.KEY_CODE.ESCAPE:if(t.preventDefault(),!Y())return;t.stopPropagation(),re(),e.searchText&&K("clear")&&oe(),ve.hidden=!0,K("blur")&&G(!0)}}function H(){return t.isNumber(e.minLength)?e.minLength:1}function U(n){return f.when(function(t){return t&&e.itemText?e.itemText(j(t)):null}(n)||n).then(function(e){return e&&!t.isString(e)&&m.warn("md-autocomplete: Could not resolve display value to a string. Please check the `md-item-text` attribute."),e})}function j(e){if(!e)return n;var t={};return ve.itemName&&(t[ve.itemName]=e),t}function W(){return e.autoselect?0:-1}function z(e){ve.loading!=e&&(ve.loading=e),ve.hidden=q()}function q(){return!V()||!Q()}function V(){return!(ve.loading&&!X())&&(!Z()&&!!xe)}function Y(){return K("blur")||!ve.hidden||ve.loading||K("clear")&&e.searchText}function K(t){return!e.escapeOptions||-1!==e.escapeOptions.toLowerCase().indexOf(t)}function Q(){return te()&&X()||he()}function X(){return!!ve.matches.length}function Z(){return!!ve.scope.selectedItem}function J(){return ve.loading&&!Z()}function ee(){return U(ve.matches[ve.index])}function te(){return(e.searchText||"").length>=H()}function ne(t){s.nextTick(function(){U(ve.matches[t]).then(function(e){var t=_e.$.input.controller("ngModel");t.$setViewValue(e),t.$render()}).finally(function(){e.selectedItem=ve.matches[t],z(!1)})},!1)}function ie(){re(),oe()}function re(){ve.index=0,ve.matches=[]}function oe(){z(!0),e.searchText="";var t=document.createEvent("CustomEvent");t.initCustomEvent("change",!0,!0,{value:""}),_e.input.dispatchEvent(t),_e.input.blur(),e.searchText="",_e.input.focus()}function ae(n){function i(t){we[o]=t,(n||"")===(e.searchText||"")&&fe(t)}var r=e.$parent.$eval(ye),o=n.toLowerCase(),a=t.isArray(r),l=!!r.then;a?i(r):l&&function(t){t&&(t=f.when(t),Ee++,z(!0),s.nextTick(function(){t.then(i).finally(function(){0==--Ee&&z(!1)})},!0,e))}(r)}function se(){ee().then(function(e){ve.messages=[le(),e]})}function le(){if(Se===ve.matches.length)return"";switch(Se=ve.matches.length,ve.matches.length){case 0:return"There are no matches available.";case 1:return"There is 1 match available.";default:return"There are "+ve.matches.length+" matches available."}}function ce(){if(_e.li[0]){var e=_e.li[0].offsetHeight,t=e*ve.index,n=t+e,i=_e.scroller.clientHeight,r=_e.scroller.scrollTop;t<r?de(t):n>r+i&&de(n-i)}}function ue(){return 0!==Ee}function de(e){_e.$.scrollContainer.controller("mdVirtualRepeatContainer").scrollTo(e)}function he(){var e=(ve.scope.searchText||"").length;return ve.hasNotFound&&!X()&&(!ve.loading||ue())&&e>=H()&&(xe||Ae)&&!Z()}function pe(){var t=e.searchText||"",n=t.toLowerCase();!e.noCache&&we[n]?fe(we[n]):ae(t),ve.hidden=q()}function fe(t){ve.matches=t,ve.hidden=q(),ve.loading&&z(!1),e.selectOnMatch&&me(),se(),v()}function me(){var t=e.searchText,n=ve.matches,i=n[0];1===n.length&&U(i).then(function(n){var i=t==n;e.matchInsensitive&&!i&&(i=t.toLowerCase()==n.toLowerCase()),i&&ne(0)})}function ge(t,n){p[t]&&e.$parent.$eval(p[t],n||{})}var ve=this,be=e.itemsExpr.split(/ in /i),ye=be[1],_e=null,we={},Ae=!1,Ce=[],xe=!1,Se=0,Ee=0,Te=null,De=null;return function(e,t,n){Object.defineProperty(ve,e,{get:function(){return n},set:function(e){var i=n;n=e,t(e,i)}})}("hidden",S,!0),ve.scope=e,ve.parent=e.$parent,ve.itemName=be[0],ve.matches=[],ve.loading=!1,ve.hidden=!0,ve.index=null,ve.messages=[],ve.id=s.nextUid(),ve.isDisabled=null,ve.isRequired=null,ve.isReadonly=null,ve.hasNotFound=!1,ve.keydown=F,ve.blur=L,ve.focus=B,ve.clear=ie,ve.select=ne,ve.listEnter=T,ve.listLeave=D,ve.mouseUp=I,ve.getCurrentDisplayValue=ee,ve.registerSelectedItemWatcher=N,ve.unregisterSelectedItemWatcher=O,ve.notFoundVisible=he,ve.loadingIsVisible=J,ve.positionDropdown=v,function(){s.initOptionalProperties(e,p,{searchText:"",selectedItem:null}),c(a),_(),s.nextTick(function(){A(),b(),e.autofocus&&a.on("focus",y)})}()}e.$inject=["$scope","$element","$mdUtil","$mdConstant","$mdTheming","$window","$animate","$rootElement","$attrs","$q","$log"],t.module("material.components.autocomplete").controller("MdAutocompleteCtrl",e);var i=225.5,r=8,o=2}(),function(){function e(e){return{controller:"MdAutocompleteCtrl",controllerAs:"$mdAutocompleteCtrl",scope:{inputName:"@mdInputName",inputMinlength:"@mdInputMinlength",inputMaxlength:"@mdInputMaxlength",searchText:"=?mdSearchText",selectedItem:"=?mdSelectedItem",itemsExpr:"@mdItems",itemText:"&mdItemText",placeholder:"@placeholder",noCache:"=?mdNoCache",requireMatch:"=?mdRequireMatch",selectOnMatch:"=?mdSelectOnMatch",matchInsensitive:"=?mdMatchCaseInsensitive",itemChange:"&?mdSelectedItemChange",textChange:"&?mdSearchTextChange",minLength:"=?mdMinLength",delay:"=?mdDelay",autofocus:"=?mdAutofocus",floatingLabel:"@?mdFloatingLabel",autoselect:"=?mdAutoselect",menuClass:"@?mdMenuClass",inputId:"@?mdInputId",escapeOptions:"@?mdEscapeOptions"},link:function(e,t,n,i){i.hasNotFound=!!t.attr("md-has-not-found")},template:function(t,n){var i=function(){var e=t.find("md-not-found").detach(),n=e.length?e.html():"";return n?'<li ng-if="$mdAutocompleteCtrl.notFoundVisible()"                         md-autocomplete-parent-scope>'+n+"</li>":""}(),r=function(){var e=t.find("md-item-template").detach(),n=e.length?e.html():t.html();return e.length||t.empty(),"<md-autocomplete-parent-scope md-autocomplete-replace>"+n+"</md-autocomplete-parent-scope>"}(),o=t.html(),a=n.tabindex;return i&&t.attr("md-has-not-found",!0),t.attr("tabindex","-1"),"        <md-autocomplete-wrap            ng-class=\"{ 'md-whiteframe-z1': !floatingLabel, 'md-menu-showing': !$mdAutocompleteCtrl.hidden }\">          "+function(){return n.mdFloatingLabel?'            <md-input-container ng-if="floatingLabel">              <label>{{floatingLabel}}</label>              <input type="search"                  '+(null!=a?'tabindex="'+a+'"':"")+'                  id="{{ inputId || \'fl-input-\' + $mdAutocompleteCtrl.id }}"                  name="{{inputName}}"                  autocomplete="off"                  ng-required="$mdAutocompleteCtrl.isRequired"                  ng-readonly="$mdAutocompleteCtrl.isReadonly"                  ng-minlength="inputMinlength"                  ng-maxlength="inputMaxlength"                  ng-disabled="$mdAutocompleteCtrl.isDisabled"                  ng-model="$mdAutocompleteCtrl.scope.searchText"                  ng-model-options="{ allowInvalid: true }"                  ng-keydown="$mdAutocompleteCtrl.keydown($event)"                  ng-blur="$mdAutocompleteCtrl.blur($event)"                  ng-focus="$mdAutocompleteCtrl.focus($event)"                  aria-owns="ul-{{$mdAutocompleteCtrl.id}}"                  '+(null!=n.mdNoAsterisk?'md-no-asterisk="'+n.mdNoAsterisk+'"':"")+"                  "+(null!=n.mdSelectOnFocus?'md-select-on-focus=""':"")+'                  aria-label="{{floatingLabel}}"                  aria-autocomplete="list"                  role="combobox"                  aria-haspopup="true"                  aria-activedescendant=""                  aria-expanded="{{!$mdAutocompleteCtrl.hidden}}"/>              <div md-autocomplete-parent-scope md-autocomplete-replace>'+o+"</div>            </md-input-container>":'            <input type="search"                '+(null!=a?'tabindex="'+a+'"':"")+'                id="{{ inputId || \'input-\' + $mdAutocompleteCtrl.id }}"                name="{{inputName}}"                ng-if="!floatingLabel"                autocomplete="off"                ng-required="$mdAutocompleteCtrl.isRequired"                ng-disabled="$mdAutocompleteCtrl.isDisabled"                ng-readonly="$mdAutocompleteCtrl.isReadonly"                ng-model="$mdAutocompleteCtrl.scope.searchText"                ng-keydown="$mdAutocompleteCtrl.keydown($event)"                ng-blur="$mdAutocompleteCtrl.blur($event)"                ng-focus="$mdAutocompleteCtrl.focus($event)"                placeholder="{{placeholder}}"                aria-owns="ul-{{$mdAutocompleteCtrl.id}}"                '+(null!=n.mdSelectOnFocus?'md-select-on-focus=""':"")+'                aria-label="{{placeholder}}"                aria-autocomplete="list"                role="combobox"                aria-haspopup="true"                aria-activedescendant=""                aria-expanded="{{!$mdAutocompleteCtrl.hidden}}"/>            <button                type="button"                tabindex="-1"                ng-if="$mdAutocompleteCtrl.scope.searchText && !$mdAutocompleteCtrl.isDisabled"                ng-click="$mdAutocompleteCtrl.clear($event)">              <md-icon md-svg-src="'+e.mdClose+'"></md-icon>              <span class="md-visually-hidden">Clear</span>            </button>                '}()+'          <md-progress-linear              class="'+(n.mdFloatingLabel?"md-inline":"")+'"              ng-if="$mdAutocompleteCtrl.loadingIsVisible()"              md-mode="indeterminate"></md-progress-linear>          <md-virtual-repeat-container              md-auto-shrink              md-auto-shrink-min="1"              ng-mouseenter="$mdAutocompleteCtrl.listEnter()"              ng-mouseleave="$mdAutocompleteCtrl.listLeave()"              ng-mouseup="$mdAutocompleteCtrl.mouseUp()"              ng-hide="$mdAutocompleteCtrl.hidden"              class="md-autocomplete-suggestions-container md-whiteframe-z1"              ng-class="{ \'md-not-found\': $mdAutocompleteCtrl.notFoundVisible() }"              role="presentation">            <ul class="md-autocomplete-suggestions"                ng-class="::menuClass"                id="ul-{{$mdAutocompleteCtrl.id}}">              <li md-virtual-repeat="item in $mdAutocompleteCtrl.matches"                  ng-class="{ selected: $index === $mdAutocompleteCtrl.index }"                  ng-click="$mdAutocompleteCtrl.select($index)"                  md-extra-name="$mdAutocompleteCtrl.itemName">                  '+r+"                  </li>"+i+'            </ul>          </md-virtual-repeat-container>        </md-autocomplete-wrap>        <aria-status            class="md-visually-hidden"            role="status"            aria-live="assertive">          <p ng-repeat="message in $mdAutocompleteCtrl.messages track by $index" ng-if="message">{{message}}</p>        </aria-status>'}}}e.$inject=["$$mdSvgRegistry"],t.module("material.components.autocomplete").directive("mdAutocomplete",e)}(),function(){function e(e,t){function n(e,n,i){return function(e,n,r){function o(n,i){s[i]=e[n],e.$watch(n,function(e){t.nextTick(function(){s[i]=e})})}var a=e.$mdAutocompleteCtrl,s=a.parent.$new(),l=a.itemName;o("$index","$index"),o("item",l),function(){var t=!1,n=!1;e.$watch(function(){n||t||(t=!0,e.$$postDigest(function(){n||s.$digest(),t=n=!1}))}),s.$watch(function(){n=!0})}(),i(s,function(e){n.after(e)})}}return{restrict:"AE",compile:n,terminal:!0,transclude:"element"}}e.$inject=["$compile","$mdUtil"],t.module("material.components.autocomplete").directive("mdAutocompleteParentScope",e)}(),function(){function e(e,t,n){this.$scope=e,this.$element=t,this.$attrs=n,this.regex=null}e.$inject=["$scope","$element","$attrs"],t.module("material.components.autocomplete").controller("MdHighlightCtrl",e),e.prototype.init=function(e,t){this.flags=this.$attrs.mdHighlightFlags||"",this.unregisterFn=this.$scope.$watch(function(n){return{term:e(n),contentText:t(n)}}.bind(this),this.onRender.bind(this),!0),this.$element.on("$destroy",this.unregisterFn)},e.prototype.onRender=function(e,t){var n=e.contentText;null!==this.regex&&e.term===t.term||(this.regex=this.createRegex(e.term,this.flags)),e.term?this.applyRegex(n):this.$element.text(n)},e.prototype.applyRegex=function(e){var n=this.resolveTokens(e);this.$element.empty(),n.forEach(function(e){if(e.isMatch){var n=t.element('<span class="highlight">').text(e.text);this.$element.append(n)}else this.$element.append(document.createTextNode(e))}.bind(this))},e.prototype.resolveTokens=function(e){function t(t,i){var r=e.slice(t,i);r&&n.push(r)}var n=[],i=0;return e.replace(this.regex,function(e,r){t(i,r),n.push({text:e,isMatch:!0}),i=r+e.length}),t(i),n},e.prototype.createRegex=function(e,t){var n="",i="",r=this.sanitizeRegex(e);return t.indexOf("^")>=0&&(n="^"),t.indexOf("$")>=0&&(i="$"),new RegExp(n+r+i,t.replace(/[$\^]/g,""))},e.prototype.sanitizeRegex=function(e){return e&&e.toString().replace(/[\\\^\$\*\+\?\.\(\)\|\{}\[\]]/g,"\\$&")}}(),function(){function e(e,t){return{terminal:!0,controller:"MdHighlightCtrl",compile:function(n,i){var r=t(i.mdHighlightText),o=e(n.html());return function(e,t,n,i){i.init(r,o)}}}}e.$inject=["$interpolate","$parse"],t.module("material.components.autocomplete").directive("mdHighlightText",e)}(),function(){function i(e,t,i,r,o){this.$scope=e,this.$element=t,this.$mdConstant=i,this.$timeout=r,this.$mdUtil=o,this.isEditting=!1,this.parentController=n,this.enableChipEdit=!1}i.$inject=["$scope","$element","$mdConstant","$timeout","$mdUtil"],t.module("material.components.chips").controller("MdChipCtrl",i),i.prototype.init=function(e){this.parentController=e,this.enableChipEdit=this.parentController.enableChipEdit,this.enableChipEdit&&(this.$element.on("keydown",this.chipKeyDown.bind(this)),this.$element.on("mousedown",this.chipMouseDown.bind(this)),this.getChipContent().addClass("_md-chip-content-edit-is-enabled"))},i.prototype.getChipContent=function(){var e=this.$element[0].getElementsByClassName("md-chip-content");return t.element(e[0])},i.prototype.getContentElement=function(){return t.element(this.getChipContent().children()[0])},i.prototype.getChipIndex=function(){return parseInt(this.$element.attr("index"))},i.prototype.goOutOfEditMode=function(){if(this.isEditting){this.isEditting=!1,this.$element.removeClass("_md-chip-editing"),this.getChipContent()[0].contentEditable="false";var e=this.getChipIndex();this.getContentElement().text()?(this.parentController.updateChipContents(e,this.getContentElement().text()),this.$mdUtil.nextTick(function(){this.parentController.selectedChip===e&&this.parentController.focusChip(e)}.bind(this))):this.parentController.removeChipAndFocusInput(e)}},i.prototype.selectNodeContents=function(t){var n,i;document.body.createTextRange?((n=document.body.createTextRange()).moveToElementText(t),n.select()):e.getSelection&&(i=e.getSelection(),(n=document.createRange()).selectNodeContents(t),i.removeAllRanges(),i.addRange(n))},i.prototype.goInEditMode=function(){this.isEditting=!0,this.$element.addClass("_md-chip-editing"),this.getChipContent()[0].contentEditable="true",this.getChipContent().on("blur",function(){this.goOutOfEditMode()}.bind(this)),this.selectNodeContents(this.getChipContent()[0])},i.prototype.chipKeyDown=function(e){this.isEditting||e.keyCode!==this.$mdConstant.KEY_CODE.ENTER&&e.keyCode!==this.$mdConstant.KEY_CODE.SPACE?this.isEditting&&e.keyCode===this.$mdConstant.KEY_CODE.ENTER&&(e.preventDefault(),this.goOutOfEditMode()):(e.preventDefault(),this.goInEditMode())},i.prototype.chipMouseDown=function(){this.getChipIndex()==this.parentController.selectedChip&&this.enableChipEdit&&!this.isEditting&&this.goInEditMode()}}(),function(){function e(e,i){function r(n,r){return n.append(i.processTemplate(o)),function(n,i,r,o){var a=o.shift(),s=o.shift();e(i),a&&(s.init(a),t.element(i[0].querySelector(".md-chip-content")).on("blur",function(){a.resetSelectedChip(),a.$scope.$applyAsync()}))}}var o=i.processTemplate(n);return{restrict:"E",require:["^?mdChips","mdChip"],compile:r,controller:"MdChipCtrl"}}e.$inject=["$mdTheming","$mdUtil"],t.module("material.components.chips").directive("mdChip",e);var n='    <span ng-if="!$mdChipsCtrl.readonly" class="md-visually-hidden">      {{$mdChipsCtrl.deleteHint}}    </span>'}(),function(){function e(e){function t(t,n,i,r){n.on("click",function(e){t.$apply(function(){r.removeChip(t.$$replacedScope.$index)})}),e(function(){n.attr({tabindex:-1,"aria-hidden":!0}),n.find("button").attr("tabindex","-1")})}return{restrict:"A",require:"^mdChips",scope:!1,link:t}}e.$inject=["$timeout"],t.module("material.components.chips").directive("mdChipRemove",e)}(),function(){function e(e){function t(t,n,i){var r=t.$parent.$mdChipsCtrl,o=r.parent.$new(!1,r.parent);o.$$replacedScope=t,o.$chip=t.$chip,o.$index=t.$index,o.$mdChipsCtrl=r;var a=r.$scope.$eval(i.mdChipTransclude);n.html(a),e(n.contents())(o)}return{restrict:"EA",terminal:!0,link:t,scope:!1}}e.$inject=["$compile"],t.module("material.components.chips").directive("mdChipTransclude",e)}(),function(){function e(e,t,n,i,r,o,a){this.$timeout=o,this.$mdConstant=n,this.$scope=e,this.parent=e.$parent,this.$log=i,this.$element=r,this.ngModelCtrl=null,this.userInputNgModelCtrl=null,this.autocompleteCtrl=null,this.userInputElement=null,this.items=[],this.selectedChip=-1,this.enableChipEdit=a.parseAttributeBoolean(t.mdEnableChipEdit),this.addOnBlur=a.parseAttributeBoolean(t.mdAddOnBlur),this.deleteHint="Press delete to remove this chip.",this.deleteButtonLabel="Remove",this.chipBuffer="",this.useTransformChip=!1,this.useOnAdd=!1,this.useOnRemove=!1}e.$inject=["$scope","$attrs","$mdConstant","$log","$element","$timeout","$mdUtil"],t.module("material.components.chips").controller("MdChipsCtrl",e),e.prototype.inputKeydown=function(e){var t=this.getChipBuffer();if(!(this.autocompleteCtrl&&e.isDefaultPrevented&&e.isDefaultPrevented())){if(e.keyCode===this.$mdConstant.KEY_CODE.BACKSPACE){if(0!==this.getCursorPosition(e.target))return;return e.preventDefault(),e.stopPropagation(),void(this.items.length&&this.selectAndFocusChipSafe(this.items.length-1))}if((!this.separatorKeys||this.separatorKeys.length<1)&&(this.separatorKeys=[this.$mdConstant.KEY_CODE.ENTER]),-1!==this.separatorKeys.indexOf(e.keyCode)){if(this.autocompleteCtrl&&this.requireMatch||!t)return;if(e.preventDefault(),this.hasMaxChipsReached())return;this.appendChip(t.trim()),this.resetChipBuffer()}}},e.prototype.getCursorPosition=function(e){try{if(e.selectionStart===e.selectionEnd)return e.selectionStart}catch(t){if(!e.value)return 0}},e.prototype.updateChipContents=function(e,t){e>=0&&e<this.items.length&&(this.items[e]=t,this.ngModelCtrl.$setDirty())},e.prototype.isEditingChip=function(){return!!this.$element[0].getElementsByClassName("_md-chip-editing").length},e.prototype.isRemovable=function(){return!!this.ngModelCtrl&&(this.readonly?this.removable:!t.isDefined(this.removable)||this.removable)},e.prototype.chipKeydown=function(e){if(!this.getChipBuffer()&&!this.isEditingChip())switch(e.keyCode){case this.$mdConstant.KEY_CODE.BACKSPACE:case this.$mdConstant.KEY_CODE.DELETE:if(this.selectedChip<0)return;if(e.preventDefault(),!this.isRemovable())return;this.removeAndSelectAdjacentChip(this.selectedChip);break;case this.$mdConstant.KEY_CODE.LEFT_ARROW:e.preventDefault(),this.selectedChip<0&&(this.selectedChip=this.items.length),this.items.length&&this.selectAndFocusChipSafe(this.selectedChip-1);break;case this.$mdConstant.KEY_CODE.RIGHT_ARROW:e.preventDefault(),this.selectAndFocusChipSafe(this.selectedChip+1);break;case this.$mdConstant.KEY_CODE.ESCAPE:case this.$mdConstant.KEY_CODE.TAB:if(this.selectedChip<0)return;e.preventDefault(),this.onFocus()}},e.prototype.getPlaceholder=function(){return this.items&&this.items.length&&(""==this.secondaryPlaceholder||this.secondaryPlaceholder)?this.secondaryPlaceholder:this.placeholder},e.prototype.removeAndSelectAdjacentChip=function(e){var n=this.getAdjacentChipIndex(e);this.removeChip(e),this.$timeout(t.bind(this,function(){this.selectAndFocusChipSafe(n)}))},e.prototype.resetSelectedChip=function(){this.selectedChip=-1},e.prototype.getAdjacentChipIndex=function(e){var t=this.items.length-1;return 0==t?-1:e==t?e-1:e},e.prototype.appendChip=function(e){if(this.useTransformChip&&this.transformChip){var n=this.transformChip({$chip:e});t.isDefined(n)&&(e=n)}if(!(t.isObject(e)&&this.items.some(function(n){return t.equals(e,n)})||null==e||this.items.indexOf(e)+1)){var i=this.items.push(e);this.ngModelCtrl.$setDirty(),this.validateModel(),this.useOnAdd&&this.onAdd&&this.onAdd({$chip:e,$index:i})}},e.prototype.useTransformChipExpression=function(){this.useTransformChip=!0},e.prototype.useOnAddExpression=function(){this.useOnAdd=!0},e.prototype.useOnRemoveExpression=function(){this.useOnRemove=!0},e.prototype.useOnSelectExpression=function(){this.useOnSelect=!0},e.prototype.getChipBuffer=function(){return this.userInputElement?this.userInputNgModelCtrl?this.userInputNgModelCtrl.$viewValue:this.userInputElement[0].value:this.chipBuffer},e.prototype.resetChipBuffer=function(){this.userInputElement?this.userInputNgModelCtrl?(this.userInputNgModelCtrl.$setViewValue(""),this.userInputNgModelCtrl.$render()):this.userInputElement[0].value="":this.chipBuffer=""},e.prototype.hasMaxChipsReached=function(){return t.isString(this.maxChips)&&(this.maxChips=parseInt(this.maxChips,10)||0),this.maxChips>0&&this.items.length>=this.maxChips},e.prototype.validateModel=function(){this.ngModelCtrl.$setValidity("md-max-chips",!this.hasMaxChipsReached())},e.prototype.removeChip=function(e){var t=this.items.splice(e,1);this.ngModelCtrl.$setDirty(),this.validateModel(),t&&t.length&&this.useOnRemove&&this.onRemove&&this.onRemove({$chip:t[0],$index:e})},e.prototype.removeChipAndFocusInput=function(e){this.removeChip(e),this.autocompleteCtrl?(this.autocompleteCtrl.hidden=!0,this.$mdUtil.nextTick(this.onFocus.bind(this))):this.onFocus()},e.prototype.selectAndFocusChipSafe=function(e){return this.items.length?e===this.items.length?this.onFocus():(e=Math.max(e,0),e=Math.min(e,this.items.length-1),this.selectChip(e),void this.focusChip(e)):(this.selectChip(-1),void this.onFocus())},e.prototype.selectChip=function(e){e>=-1&&e<=this.items.length?(this.selectedChip=e,this.useOnSelect&&this.onSelect&&this.onSelect({$chip:this.items[this.selectedChip]})):this.$log.warn("Selected Chip index out of bounds; ignoring.")},e.prototype.selectAndFocusChip=function(e){this.selectChip(e),-1!=e&&this.focusChip(e)},e.prototype.focusChip=function(e){this.$element[0].querySelector('md-chip[index="'+e+'"] .md-chip-content').focus()},e.prototype.configureNgModel=function(e){this.ngModelCtrl=e;var t=this;e.$render=function(){t.items=t.ngModelCtrl.$viewValue}},e.prototype.onFocus=function(){var e=this.$element[0].querySelector("input");e&&e.focus(),this.resetSelectedChip()},e.prototype.onInputFocus=function(){this.inputHasFocus=!0,this.resetSelectedChip()},e.prototype.onInputBlur=function(){this.inputHasFocus=!1;var e=this.getChipBuffer().trim();this.validateModel();var t=this.ngModelCtrl.$valid;this.userInputNgModelCtrl&&(t&=this.userInputNgModelCtrl.$valid),this.addOnBlur&&e&&t&&(this.appendChip(e),this.resetChipBuffer())},e.prototype.configureUserInput=function(e){this.userInputElement=e;var n=e.controller("ngModel");n!=this.ngModelCtrl&&(this.userInputNgModelCtrl=n);var i=this.$scope,r=this,o=function(e,n){i.$evalAsync(t.bind(r,n,e))};e.attr({tabindex:0}).on("keydown",function(e){o(e,r.inputKeydown)}).on("focus",function(e){o(e,r.onInputFocus)}).on("blur",function(e){o(e,r.onInputBlur)})},e.prototype.configureAutocomplete=function(e){e&&(this.autocompleteCtrl=e,e.registerSelectedItemWatcher(t.bind(this,function(e){if(e){if(this.hasMaxChipsReached())return;this.appendChip(e),this.resetChipBuffer()}})),this.$element.find("input").on("focus",t.bind(this,this.onInputFocus)).on("blur",t.bind(this,this.onInputBlur)))},e.prototype.hasFocus=function(){return this.inputHasFocus||this.selectedChip>=0}}(),function(){function e(e,t,a,s,l,c){function u(n,i){function r(e){if(i.ngModel){var t=o[0].querySelector(e);return t&&t.outerHTML}}var o=i.$mdUserTemplate;i.$mdUserTemplate=null;var u=r("md-chips>md-chip-template"),h=r(t.prefixer().buildList("md-chip-remove").map(function(e){return"md-chips>*["+e+"]"}).join(","))||d.remove,p=u||d.default,f=r("md-chips>md-autocomplete")||r("md-chips>input")||d.input,m=o.find("md-chip");return o[0].querySelector("md-chip-template>*[md-chip-remove]")&&s.warn("invalid placement of md-chip-remove within md-chip-template."),function(n,r,o,s){t.initOptionalProperties(n,i),e(r);var g=s[0];if(u&&(g.enableChipEdit=!1),g.chipContentsTemplate=p,g.chipRemoveTemplate=h,g.chipInputTemplate=f,g.mdCloseIcon=c.mdClose,r.attr({"aria-hidden":!0,tabindex:-1}).on("focus",function(){g.onFocus()}),i.ngModel&&(g.configureNgModel(r.controller("ngModel")),o.mdTransformChip&&g.useTransformChipExpression(),o.mdOnAppend&&g.useOnAppendExpression(),o.mdOnAdd&&g.useOnAddExpression(),o.mdOnRemove&&g.useOnRemoveExpression(),o.mdOnSelect&&g.useOnSelectExpression(),f!=d.input&&n.$watch("$mdChipsCtrl.readonly",function(e){e||t.nextTick(function(){if(0===f.indexOf("<md-autocomplete")){var e=r.find("md-autocomplete");g.configureAutocomplete(e.controller("mdAutocomplete"))}g.configureUserInput(r.find("input"))})}),t.nextTick(function(){var e=r.find("input");e&&e.toggleClass("md-input",!0)})),m.length>0){var v=a(m.clone())(n.$parent);l(function(){r.find("md-chips-wrap").prepend(v)})}}}var d=function(){return{chips:t.processTemplate(n),input:t.processTemplate(i),default:t.processTemplate(r),remove:t.processTemplate(o)}}();return{template:function(e,t){return t.$mdUserTemplate=e.clone(),d.chips},require:["mdChips"],restrict:"E",controller:"MdChipsCtrl",controllerAs:"$mdChipsCtrl",bindToController:!0,compile:u,scope:{readonly:"=readonly",removable:"=mdRemovable",placeholder:"@",secondaryPlaceholder:"@",maxChips:"@mdMaxChips",transformChip:"&mdTransformChip",onAppend:"&mdOnAppend",onAdd:"&mdOnAdd",onRemove:"&mdOnRemove",onSelect:"&mdOnSelect",deleteHint:"@",deleteButtonLabel:"@",separatorKeys:"=?mdSeparatorKeys",requireMatch:"=?mdRequireMatch"}}}e.$inject=["$mdTheming","$mdUtil","$compile","$log","$timeout","$$mdSvgRegistry"],t.module("material.components.chips").directive("mdChips",e);var n='      <md-chips-wrap          ng-keydown="$mdChipsCtrl.chipKeydown($event)"          ng-class="{ \'md-focused\': $mdChipsCtrl.hasFocus(),                       \'md-readonly\': !$mdChipsCtrl.ngModelCtrl || $mdChipsCtrl.readonly,                      \'md-removable\': $mdChipsCtrl.isRemovable() }"          class="md-chips">        <md-chip ng-repeat="$chip in $mdChipsCtrl.items"            index="{{$index}}"            ng-class="{\'md-focused\': $mdChipsCtrl.selectedChip == $index, \'md-readonly\': !$mdChipsCtrl.ngModelCtrl || $mdChipsCtrl.readonly}">          <div class="md-chip-content"              tabindex="-1"              aria-hidden="true"              ng-click="!$mdChipsCtrl.readonly && $mdChipsCtrl.focusChip($index)"              ng-focus="!$mdChipsCtrl.readonly && $mdChipsCtrl.selectChip($index)"              md-chip-transclude="$mdChipsCtrl.chipContentsTemplate"></div>          <div ng-if="$mdChipsCtrl.isRemovable()"               class="md-chip-remove-container"               md-chip-transclude="$mdChipsCtrl.chipRemoveTemplate"></div>        </md-chip>        <div class="md-chip-input-container" ng-if="!$mdChipsCtrl.readonly && $mdChipsCtrl.ngModelCtrl">          <div md-chip-transclude="$mdChipsCtrl.chipInputTemplate"></div>        </div>      </md-chips-wrap>',i='        <input            class="md-input"            tabindex="0"            placeholder="{{$mdChipsCtrl.getPlaceholder()}}"            aria-label="{{$mdChipsCtrl.getPlaceholder()}}"            ng-model="$mdChipsCtrl.chipBuffer"            ng-focus="$mdChipsCtrl.onInputFocus()"            ng-blur="$mdChipsCtrl.onInputBlur()"            ng-keydown="$mdChipsCtrl.inputKeydown($event)">',r="      <span>{{$chip}}</span>",o='      <button          class="md-chip-remove"          ng-if="$mdChipsCtrl.isRemovable()"          ng-click="$mdChipsCtrl.removeChipAndFocusInput($$replacedScope.$index)"          type="button"          aria-hidden="true"          tabindex="-1">        <md-icon md-svg-src="{{ $mdChipsCtrl.mdCloseIcon }}"></md-icon>        <span class="md-visually-hidden">          {{$mdChipsCtrl.deleteButtonLabel}}        </span>      </button>'}(),function(){function e(){this.selectedItem=null,this.searchText=""}t.module("material.components.chips").controller("MdContactChipsCtrl",e),e.prototype.queryContact=function(e){var n=this.contactQuery({$query:e});return this.filterSelected?n.filter(t.bind(this,this.filterSelectedContacts)):n},e.prototype.itemName=function(e){return e[this.contactName]},e.prototype.filterSelectedContacts=function(e){return-1==this.contacts.indexOf(e)}}(),function(){function e(e,t){function i(n,i){return function(n,r,o,a){t.initOptionalProperties(n,i),e(r),r.attr("tabindex","-1")}}return{template:function(e,t){return n},restrict:"E",controller:"MdContactChipsCtrl",controllerAs:"$mdContactChipsCtrl",bindToController:!0,compile:i,scope:{contactQuery:"&mdContacts",placeholder:"@",secondaryPlaceholder:"@",contactName:"@mdContactName",contactImage:"@mdContactImage",contactEmail:"@mdContactEmail",contacts:"=ngModel",requireMatch:"=?mdRequireMatch",highlightFlags:"@?mdHighlightFlags"}}}e.$inject=["$mdTheming","$mdUtil"],t.module("material.components.chips").directive("mdContactChips",e);var n='      <md-chips class="md-contact-chips"          ng-model="$mdContactChipsCtrl.contacts"          md-require-match="$mdContactChipsCtrl.requireMatch"          md-autocomplete-snap>          <md-autocomplete              md-menu-class="md-contact-chips-suggestions"              md-selected-item="$mdContactChipsCtrl.selectedItem"              md-search-text="$mdContactChipsCtrl.searchText"              md-items="item in $mdContactChipsCtrl.queryContact($mdContactChipsCtrl.searchText)"              md-item-text="$mdContactChipsCtrl.itemName(item)"              md-no-cache="true"              md-autoselect              placeholder="{{$mdContactChipsCtrl.contacts.length == 0 ?                  $mdContactChipsCtrl.placeholder : $mdContactChipsCtrl.secondaryPlaceholder}}">            <div class="md-contact-suggestion">              <img                   ng-src="{{item[$mdContactChipsCtrl.contactImage]}}"                  alt="{{item[$mdContactChipsCtrl.contactName]}}"                  ng-if="item[$mdContactChipsCtrl.contactImage]" />              <span class="md-contact-name" md-highlight-text="$mdContactChipsCtrl.searchText"                    md-highlight-flags="{{$mdContactChipsCtrl.highlightFlags}}">                {{item[$mdContactChipsCtrl.contactName]}}              </span>              <span class="md-contact-email" >{{item[$mdContactChipsCtrl.contactEmail]}}</span>            </div>          </md-autocomplete>          <md-chip-template>            <div class="md-contact-avatar">              <img                   ng-src="{{$chip[$mdContactChipsCtrl.contactImage]}}"                  alt="{{$chip[$mdContactChipsCtrl.contactName]}}"                  ng-if="$chip[$mdContactChipsCtrl.contactImage]" />            </div>            <div class="md-contact-name">              {{$chip[$mdContactChipsCtrl.contactName]}}            </div>          </md-chip-template>      </md-chips>'}(),function(){!function(){function e(){return{template:function(e,t){return'<div ng-switch="calendarCtrl.currentView" '+(t.hasOwnProperty("ngIf")?"":'ng-if="calendarCtrl.isInitialized"')+'><md-calendar-year ng-switch-when="year"></md-calendar-year><md-calendar-month ng-switch-default></md-calendar-month></div>'},scope:{minDate:"=mdMinDate",maxDate:"=mdMaxDate",dateFilter:"=mdDateFilter",_currentView:"@mdCurrentView"},require:["ngModel","mdCalendar"],controller:n,controllerAs:"calendarCtrl",bindToController:!0,link:function(e,t,n,i){var r=i[0];i[1].configureNgModel(r)}}}function n(e,n,i,o,a,s,l,c,u){s(e),this.$element=e,this.$scope=n,this.dateUtil=i,this.$mdUtil=o,this.keyCode=a.KEY_CODE,this.$$rAF=l,this.today=this.dateUtil.createDateAtMidnight(),this.ngModelCtrl=null,this.currentView=this._currentView||"month",this.SELECTED_DATE_CLASS="md-calendar-selected-date",this.TODAY_CLASS="md-calendar-date-today",this.FOCUSED_DATE_CLASS="md-focus",this.id=r++,this.displayDate=null,this.selectedDate=null,this.firstRenderableDate=null,this.lastRenderableDate=null,this.isInitialized=!1,this.width=0,this.scrollbarWidth=0,c.tabindex||e.attr("tabindex","-1");var d=t.bind(this,this.handleKeyEvent);t.element(document.body).on("keydown",d),n.$on("$destroy",function(){t.element(document.body).off("keydown",d)}),this.minDate&&this.minDate>u.firstRenderableDate?this.firstRenderableDate=this.minDate:this.firstRenderableDate=u.firstRenderableDate,this.maxDate&&this.maxDate<u.lastRenderableDate?this.lastRenderableDate=this.maxDate:this.lastRenderableDate=u.lastRenderableDate}n.$inject=["$element","$scope","$$mdDateUtil","$mdUtil","$mdConstant","$mdTheming","$$rAF","$attrs","$mdDateLocale"],t.module("material.components.datepicker").directive("mdCalendar",e);var i=340,r=0;n.prototype.configureNgModel=function(e){var t=this;t.ngModelCtrl=e,t.$mdUtil.nextTick(function(){t.isInitialized=!0}),e.$render=function(){var e=this.$viewValue;t.$scope.$broadcast("md-calendar-parent-changed",e),t.selectedDate||(t.selectedDate=e),t.displayDate||(t.displayDate=t.selectedDate||t.today)}},n.prototype.setNgModelValue=function(e){var t=this.dateUtil.createDateAtMidnight(e);return this.focus(t),this.$scope.$emit("md-calendar-change",t),this.ngModelCtrl.$setViewValue(t),this.ngModelCtrl.$render(),t},n.prototype.setCurrentView=function(e,n){var i=this;i.$mdUtil.nextTick(function(){i.currentView=e,n&&(i.displayDate=t.isDate(n)?n:new Date(n))})},n.prototype.focus=function(e){if(this.dateUtil.isValidDate(e)){var t=this.$element[0].querySelector(".md-focus");t&&t.classList.remove(this.FOCUSED_DATE_CLASS);var n=this.getDateId(e,this.currentView),i=document.getElementById(n);i&&(i.classList.add(this.FOCUSED_DATE_CLASS),i.focus(),this.displayDate=e)}else{var r=this.$element[0].querySelector("[ng-switch]");r&&r.focus()}},n.prototype.getActionFromKeyEvent=function(e){var t=this.keyCode;switch(e.which){case t.ENTER:return"select";case t.RIGHT_ARROW:return"move-right";case t.LEFT_ARROW:return"move-left";case t.DOWN_ARROW:return e.metaKey?"move-page-down":"move-row-down";case t.UP_ARROW:return e.metaKey?"move-page-up":"move-row-up";case t.PAGE_DOWN:return"move-page-down";case t.PAGE_UP:return"move-page-up";case t.HOME:return"start";case t.END:return"end";default:return null}},n.prototype.handleKeyEvent=function(e){var t=this;this.$scope.$apply(function(){if(e.which==t.keyCode.ESCAPE||e.which==t.keyCode.TAB)return t.$scope.$emit("md-calendar-close"),void(e.which==t.keyCode.TAB&&e.preventDefault());var n=t.getActionFromKeyEvent(e);n&&(e.preventDefault(),e.stopPropagation(),t.$scope.$broadcast("md-calendar-parent-action",n))})},n.prototype.hideVerticalScrollbar=function(e){function t(){var t=n.width||i,r=n.scrollbarWidth,a=e.calendarScroller;o.style.width=t+"px",a.style.width=t+r+"px",a.style.paddingRight=r+"px"}var n=this,r=e.$element[0],o=r.querySelector(".md-calendar-scroll-mask");n.width>0?t():n.$$rAF(function(){var i=e.calendarScroller;n.scrollbarWidth=i.offsetWidth-i.clientWidth,n.width=r.querySelector("table").offsetWidth,t()})},n.prototype.getDateId=function(e,t){if(!t)throw new Error("A namespace for the date id has to be specified.");return["md",this.id,t,e.getFullYear(),e.getMonth(),e.getDate()].join("-")},n.prototype.updateVirtualRepeat=function(){var e=this.$scope,t=e.$on("$md-resize-enable",function(){e.$$phase||e.$apply(),t()})}}()}(),function(){!function(){function e(){return{template:'<table aria-hidden="true" class="md-calendar-day-header"><thead></thead></table><div class="md-calendar-scroll-mask"><md-virtual-repeat-container class="md-calendar-scroll-container" md-offset-size="'+(r-i)+'"><table role="grid" tabindex="0" class="md-calendar" aria-readonly="true"><tbody md-calendar-month-body role="rowgroup" md-virtual-repeat="i in monthCtrl.items" md-month-offset="$index" class="md-calendar-month" md-start-index="monthCtrl.getSelectedMonthIndex()" md-item-size="'+i+'"></tbody></table></md-virtual-repeat-container></div>',require:["^^mdCalendar","mdCalendarMonth"],controller:n,controllerAs:"monthCtrl",bindToController:!0,link:function(e,t,n,i){var r=i[0];i[1].initialize(r)}}}function n(e,t,n,i,r,o){this.$element=e,this.$scope=t,this.$animate=n,this.$q=i,this.dateUtil=r,this.dateLocale=o,this.calendarScroller=e[0].querySelector(".md-virtual-repeat-scroller"),this.isInitialized=!1,this.isMonthTransitionInProgress=!1;var a=this;this.cellClickHandler=function(){var e=r.getTimestampFromNode(this);a.$scope.$apply(function(){a.calendarCtrl.setNgModelValue(e)})},this.headerClickHandler=function(){a.calendarCtrl.setCurrentView("year",r.getTimestampFromNode(this))}}n.$inject=["$element","$scope","$animate","$q","$$mdDateUtil","$mdDateLocale"],t.module("material.components.datepicker").directive("mdCalendarMonth",e);var i=265,r=45;n.prototype.initialize=function(e){this.items={length:this.dateUtil.getMonthDistance(e.firstRenderableDate,e.lastRenderableDate)+2},this.calendarCtrl=e,this.attachScopeListeners(),e.updateVirtualRepeat(),e.ngModelCtrl&&e.ngModelCtrl.$render()},n.prototype.getSelectedMonthIndex=function(){var e=this.calendarCtrl;return this.dateUtil.getMonthDistance(e.firstRenderableDate,e.displayDate||e.selectedDate||e.today)},n.prototype.changeSelectedDate=function(e){var t=this.calendarCtrl,n=t.selectedDate;t.selectedDate=e,this.changeDisplayDate(e).then(function(){var i=t.SELECTED_DATE_CLASS;if(n){var r=document.getElementById(t.getDateId(n,"month"));r&&(r.classList.remove(i),r.setAttribute("aria-selected","false"))}if(e){var o=document.getElementById(t.getDateId(e,"month"));o&&(o.classList.add(i),o.setAttribute("aria-selected","true"))}})},n.prototype.changeDisplayDate=function(e){if(!this.isInitialized)return this.buildWeekHeader(),this.calendarCtrl.hideVerticalScrollbar(this),this.isInitialized=!0,this.$q.when();if(!this.dateUtil.isValidDate(e)||this.isMonthTransitionInProgress)return this.$q.when();this.isMonthTransitionInProgress=!0;var t=this.animateDateChange(e);this.calendarCtrl.displayDate=e;var n=this;return t.then(function(){n.isMonthTransitionInProgress=!1}),t},n.prototype.animateDateChange=function(e){if(this.dateUtil.isValidDate(e)){var t=this.dateUtil.getMonthDistance(this.calendarCtrl.firstRenderableDate,e);this.calendarScroller.scrollTop=t*i}return this.$q.when()},n.prototype.buildWeekHeader=function(){for(var e=this.dateLocale.firstDayOfWeek,t=this.dateLocale.shortDays,n=document.createElement("tr"),i=0;i<7;i++){var r=document.createElement("th");r.textContent=t[(i+e)%7],n.appendChild(r)}this.$element.find("thead").append(n)},n.prototype.attachScopeListeners=function(){var e=this;e.$scope.$on("md-calendar-parent-changed",function(t,n){e.changeSelectedDate(n)}),e.$scope.$on("md-calendar-parent-action",t.bind(this,this.handleKeyEvent))},n.prototype.handleKeyEvent=function(e,t){var n=this.calendarCtrl,i=n.displayDate;if("select"===t)n.setNgModelValue(i);else{var r=null,o=this.dateUtil;switch(t){case"move-right":r=o.incrementDays(i,1);break;case"move-left":r=o.incrementDays(i,-1);break;case"move-page-down":r=o.incrementMonths(i,1);break;case"move-page-up":r=o.incrementMonths(i,-1);break;case"move-row-down":r=o.incrementDays(i,7);break;case"move-row-up":r=o.incrementDays(i,-7);break;case"start":r=o.getFirstDateOfMonth(i);break;case"end":r=o.getLastDateOfMonth(i)}r&&(r=this.dateUtil.clampDate(r,n.minDate,n.maxDate),this.changeDisplayDate(r).then(function(){n.focus(r)}))}}}()}(),function(){!function(){function e(e,t){var i=e('<md-icon md-svg-src="'+t.mdTabsArrow+'"></md-icon>')({})[0];return{require:["^^mdCalendar","^^mdCalendarMonth","mdCalendarMonthBody"],scope:{offset:"=mdMonthOffset"},controller:n,controllerAs:"mdMonthBodyCtrl",bindToController:!0,link:function(e,t,n,r){var o=r[0],a=r[1],s=r[2];s.calendarCtrl=o,s.monthCtrl=a,s.arrowIcon=i.cloneNode(!0),e.$watch(function(){return s.offset},function(e,t){e!==t&&s.generateContent()})}}}function n(e,t,n){this.$element=e,this.dateUtil=t,this.dateLocale=n,this.monthCtrl=null,this.calendarCtrl=null,this.offset=null,this.focusAfterAppend=null}e.$inject=["$compile","$$mdSvgRegistry"],n.$inject=["$element","$$mdDateUtil","$mdDateLocale"],t.module("material.components.datepicker").directive("mdCalendarMonthBody",e),n.prototype.generateContent=function(){var e=this.dateUtil.incrementMonths(this.calendarCtrl.firstRenderableDate,this.offset);this.$element.empty().append(this.buildCalendarForMonth(e)),this.focusAfterAppend&&(this.focusAfterAppend.classList.add(this.calendarCtrl.FOCUSED_DATE_CLASS),this.focusAfterAppend.focus(),this.focusAfterAppend=null)},n.prototype.buildDateCell=function(e){var t=this.monthCtrl,n=this.calendarCtrl,i=document.createElement("td");if(i.tabIndex=-1,i.classList.add("md-calendar-date"),i.setAttribute("role","gridcell"),e){i.setAttribute("tabindex","-1"),i.setAttribute("aria-label",this.dateLocale.longDateFormatter(e)),i.id=n.getDateId(e,"month"),i.setAttribute("data-timestamp",e.getTime()),this.dateUtil.isSameDay(e,n.today)&&i.classList.add(n.TODAY_CLASS),this.dateUtil.isValidDate(n.selectedDate)&&this.dateUtil.isSameDay(e,n.selectedDate)&&(i.classList.add(n.SELECTED_DATE_CLASS),i.setAttribute("aria-selected","true"));var r=this.dateLocale.dates[e.getDate()];if(this.isDateEnabled(e)){var o=document.createElement("span");o.classList.add("md-calendar-date-selection-indicator"),o.textContent=r,i.appendChild(o),i.addEventListener("click",t.cellClickHandler),n.displayDate&&this.dateUtil.isSameDay(e,n.displayDate)&&(this.focusAfterAppend=i)}else i.classList.add("md-calendar-date-disabled"),i.textContent=r}return i},n.prototype.isDateEnabled=function(e){return this.dateUtil.isDateWithinRange(e,this.calendarCtrl.minDate,this.calendarCtrl.maxDate)&&(!t.isFunction(this.calendarCtrl.dateFilter)||this.calendarCtrl.dateFilter(e))},n.prototype.buildDateRow=function(e){var t=document.createElement("tr");return t.setAttribute("role","row"),t.setAttribute("aria-label",this.dateLocale.weekNumberFormatter(e)),t},n.prototype.buildCalendarForMonth=function(e){var t=this.dateUtil.isValidDate(e)?e:new Date,n=this.dateUtil.getFirstDateOfMonth(t),i=this.getLocaleDay_(n),r=this.dateUtil.getNumberOfDaysInMonth(t),o=document.createDocumentFragment(),a=1,s=this.buildDateRow(a);o.appendChild(s);var l=this.offset===this.monthCtrl.items.length-1,c=0,u=document.createElement("td"),d=document.createElement("span");if(d.textContent=this.dateLocale.monthHeaderFormatter(t),u.appendChild(d),u.classList.add("md-calendar-month-label"),this.calendarCtrl.maxDate&&n>this.calendarCtrl.maxDate?u.classList.add("md-calendar-month-label-disabled"):(u.addEventListener("click",this.monthCtrl.headerClickHandler),u.setAttribute("data-timestamp",n.getTime()),u.setAttribute("aria-label",this.dateLocale.monthFormatter(t)),u.appendChild(this.arrowIcon.cloneNode(!0))),i<=2){u.setAttribute("colspan","7");var h=this.buildDateRow();if(h.appendChild(u),o.insertBefore(h,s),l)return o}else c=3,u.setAttribute("colspan","3"),s.appendChild(u);for(var p=c;p<i;p++)s.appendChild(this.buildDateCell());for(var f=i,m=n,g=1;g<=r;g++){if(7===f){if(l)return o;f=0,a++,s=this.buildDateRow(a),o.appendChild(s)}m.setDate(g);var v=this.buildDateCell(m);s.appendChild(v),f++}for(;s.childNodes.length<7;)s.appendChild(this.buildDateCell());for(;o.childNodes.length<6;){for(var b=this.buildDateRow(),y=0;y<7;y++)b.appendChild(this.buildDateCell());o.appendChild(b)}return o},n.prototype.getLocaleDay_=function(e){return(e.getDay()+(7-this.dateLocale.firstDayOfWeek))%7}}()}(),function(){!function(){function e(){return{template:'<div class="md-calendar-scroll-mask"><md-virtual-repeat-container class="md-calendar-scroll-container"><table role="grid" tabindex="0" class="md-calendar" aria-readonly="true"><tbody md-calendar-year-body role="rowgroup" md-virtual-repeat="i in yearCtrl.items" md-year-offset="$index" class="md-calendar-year" md-start-index="yearCtrl.getFocusedYearIndex()" md-item-size="'+i+'"></tbody></table></md-virtual-repeat-container></div>',require:["^^mdCalendar","mdCalendarYear"],controller:n,controllerAs:"yearCtrl",bindToController:!0,link:function(e,t,n,i){var r=i[0];i[1].initialize(r)}}}function n(e,t,n,i,r){this.$element=e,this.$scope=t,this.$animate=n,this.$q=i,this.dateUtil=r,this.calendarScroller=e[0].querySelector(".md-virtual-repeat-scroller"),this.isInitialized=!1,this.isMonthTransitionInProgress=!1;var o=this;this.cellClickHandler=function(){o.calendarCtrl.setCurrentView("month",r.getTimestampFromNode(this))}}n.$inject=["$element","$scope","$animate","$q","$$mdDateUtil"],t.module("material.components.datepicker").directive("mdCalendarYear",e);var i=88;n.prototype.initialize=function(e){this.items={length:this.dateUtil.getYearDistance(e.firstRenderableDate,e.lastRenderableDate)+1},this.calendarCtrl=e,this.attachScopeListeners(),e.updateVirtualRepeat(),e.ngModelCtrl&&e.ngModelCtrl.$render()},n.prototype.getFocusedYearIndex=function(){var e=this.calendarCtrl;return this.dateUtil.getYearDistance(e.firstRenderableDate,e.displayDate||e.selectedDate||e.today)},n.prototype.changeDate=function(e){if(!this.isInitialized)return this.calendarCtrl.hideVerticalScrollbar(this),this.isInitialized=!0,this.$q.when();if(this.dateUtil.isValidDate(e)&&!this.isMonthTransitionInProgress){var t=this,n=this.animateDateChange(e);return t.isMonthTransitionInProgress=!0,t.calendarCtrl.displayDate=e,n.then(function(){t.isMonthTransitionInProgress=!1})}},n.prototype.animateDateChange=function(e){if(this.dateUtil.isValidDate(e)){var t=this.dateUtil.getYearDistance(this.calendarCtrl.firstRenderableDate,e);this.calendarScroller.scrollTop=t*i}return this.$q.when()},n.prototype.handleKeyEvent=function(e,t){var n=this.calendarCtrl,i=n.displayDate;if("select"===t)this.changeDate(i).then(function(){n.setCurrentView("month",i),n.focus(i)});else{var r=null,o=this.dateUtil;switch(t){case"move-right":r=o.incrementMonths(i,1);break;case"move-left":r=o.incrementMonths(i,-1);break;case"move-row-down":r=o.incrementMonths(i,6);break;case"move-row-up":r=o.incrementMonths(i,-6)}if(r){var a=n.minDate?o.getFirstDateOfMonth(n.minDate):null,s=n.maxDate?o.getFirstDateOfMonth(n.maxDate):null;r=o.getFirstDateOfMonth(this.dateUtil.clampDate(r,a,s)),this.changeDate(r).then(function(){n.focus(r)})}}},n.prototype.attachScopeListeners=function(){var e=this;e.$scope.$on("md-calendar-parent-changed",function(t,n){e.changeDate(n)}),e.$scope.$on("md-calendar-parent-action",t.bind(e,e.handleKeyEvent))}}()}(),function(){!function(){function e(){return{require:["^^mdCalendar","^^mdCalendarYear","mdCalendarYearBody"],scope:{offset:"=mdYearOffset"},controller:n,controllerAs:"mdYearBodyCtrl",bindToController:!0,link:function(e,t,n,i){var r=i[0],o=i[1],a=i[2];a.calendarCtrl=r,a.yearCtrl=o,e.$watch(function(){return a.offset},function(e,t){e!==t&&a.generateContent()})}}}function n(e,t,n){this.$element=e,this.dateUtil=t,this.dateLocale=n,this.calendarCtrl=null,this.yearCtrl=null,this.offset=null,this.focusAfterAppend=null}n.$inject=["$element","$$mdDateUtil","$mdDateLocale"],t.module("material.components.datepicker").directive("mdCalendarYearBody",e),n.prototype.generateContent=function(){var e=this.dateUtil.incrementYears(this.calendarCtrl.firstRenderableDate,this.offset);this.$element.empty().append(this.buildCalendarForYear(e)),this.focusAfterAppend&&(this.focusAfterAppend.classList.add(this.calendarCtrl.FOCUSED_DATE_CLASS),this.focusAfterAppend.focus(),this.focusAfterAppend=null)},n.prototype.buildMonthCell=function(e,t){var n=this.calendarCtrl,i=this.yearCtrl,r=this.buildBlankCell(),o=new Date(e,t,1);r.setAttribute("aria-label",this.dateLocale.monthFormatter(o)),r.id=n.getDateId(o,"year"),r.setAttribute("data-timestamp",o.getTime()),this.dateUtil.isSameMonthAndYear(o,n.today)&&r.classList.add(n.TODAY_CLASS),this.dateUtil.isValidDate(n.selectedDate)&&this.dateUtil.isSameMonthAndYear(o,n.selectedDate)&&(r.classList.add(n.SELECTED_DATE_CLASS),r.setAttribute("aria-selected","true"));var a=this.dateLocale.shortMonths[t];if(this.dateUtil.isMonthWithinRange(o,n.minDate,n.maxDate)){var s=document.createElement("span");s.classList.add("md-calendar-date-selection-indicator"),s.textContent=a,r.appendChild(s),r.addEventListener("click",i.cellClickHandler),n.displayDate&&this.dateUtil.isSameMonthAndYear(o,n.displayDate)&&(this.focusAfterAppend=r)}else r.classList.add("md-calendar-date-disabled"),r.textContent=a;return r},n.prototype.buildBlankCell=function(){var e=document.createElement("td");return e.tabIndex=-1,e.classList.add("md-calendar-date"),e.setAttribute("role","gridcell"),e.setAttribute("tabindex","-1"),e},n.prototype.buildCalendarForYear=function(e){var t,n=e.getFullYear(),i=document.createDocumentFragment(),r=document.createElement("tr"),o=document.createElement("td");for(o.className="md-calendar-month-label",o.textContent=n,r.appendChild(o),t=0;t<6;t++)r.appendChild(this.buildMonthCell(n,t));i.appendChild(r);var a=document.createElement("tr");for(a.appendChild(this.buildBlankCell()),t=6;t<12;t++)a.appendChild(this.buildMonthCell(n,t));return i.appendChild(a),i}}()}(),function(){!function(){t.module("material.components.datepicker").config(["$provide",function(e){function t(){this.months=null,this.shortMonths=null,this.days=null,this.shortDays=null,this.dates=null,this.firstDayOfWeek=0,this.formatDate=null,this.parseDate=null,this.monthHeaderFormatter=null,this.weekNumberFormatter=null,this.longDateFormatter=null,this.msgCalendar="",this.msgOpenCalendar=""}t.prototype.$get=function(e,t){function n(e){if(!e)return"";var n=e.toLocaleTimeString(),i=e;return 0!=e.getHours()||-1===n.indexOf("11:")&&-1===n.indexOf("23:")||(i=new Date(e.getFullYear(),e.getMonth(),e.getDate(),1,0,0)),t("date")(i,"M/d/yyyy")}function i(e){return new Date(e)}function r(e){return e=e.trim(),/^(([a-zA-Z]{3,}|[0-9]{1,4})([ \.,]+|[\/\-])){2}([a-zA-Z]{3,}|[0-9]{1,4})$/.test(e)}function o(e){return f.shortMonths[e.getMonth()]+" "+e.getFullYear()}function a(e){return f.months[e.getMonth()]+" "+e.getFullYear()}function s(e){return"Week "+e}function l(e){return[f.days[e.getDay()],f.months[e.getMonth()],f.dates[e.getDate()],e.getFullYear()].join(" ")}for(var c=e.DATETIME_FORMATS.SHORTDAY.map(function(e){return e.substring(0,1)}),u=Array(32),d=1;d<=31;d++)u[d]=d;var h=new Date(1880,0,1),p=new Date(h.getFullYear()+250,0,1),f={months:this.months||e.DATETIME_FORMATS.MONTH,shortMonths:this.shortMonths||e.DATETIME_FORMATS.SHORTMONTH,days:this.days||e.DATETIME_FORMATS.DAY,shortDays:this.shortDays||c,dates:this.dates||u,firstDayOfWeek:this.firstDayOfWeek||0,formatDate:this.formatDate||n,parseDate:this.parseDate||i,isDateComplete:this.isDateComplete||r,monthHeaderFormatter:this.monthHeaderFormatter||o,monthFormatter:this.monthFormatter||a,weekNumberFormatter:this.weekNumberFormatter||s,longDateFormatter:this.longDateFormatter||l,msgCalendar:this.msgCalendar||"Calendar",msgOpenCalendar:this.msgOpenCalendar||"Open calendar",firstRenderableDate:this.firstRenderableDate||h,lastRenderableDate:this.lastRenderableDate||p};return f},t.prototype.$get.$inject=["$locale","$filter"],e.provider("$mdDateLocale",new t)}])}()}(),function(){!function(){t.module("material.components.datepicker").factory("$$mdDateUtil",function(){function e(e){return new Date(e.getFullYear(),e.getMonth(),1)}function n(e){return new Date(e.getFullYear(),e.getMonth()+1,0).getDate()}function i(e){return new Date(e.getFullYear(),e.getMonth()+1,1)}function r(e){return new Date(e.getFullYear(),e.getMonth()-1,1)}function o(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()}function a(e,t){return e.getDate()==t.getDate()&&o(e,t)}function s(e,t){return o(i(e),t)}function l(e,t){return o(t,r(e))}function c(e,t){return v((e.getTime()+t.getTime())/2)}function u(t){var n=e(t);return Math.floor((n.getDay()+t.getDate()-1)/7)}function d(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+t)}function h(e,t){var i=new Date(e.getFullYear(),e.getMonth()+t,1),r=n(i);return r<e.getDate()?i.setDate(r):i.setDate(e.getDate()),i}function p(e,t){return 12*(t.getFullYear()-e.getFullYear())+(t.getMonth()-e.getMonth())}function f(e){return new Date(e.getFullYear(),e.getMonth(),n(e))}function m(e){return null!=e&&e.getTime&&!isNaN(e.getTime())}function g(e){m(e)&&e.setHours(0,0,0,0)}function v(e){var n;return n=t.isUndefined(e)?new Date:new Date(e),g(n),n}function b(e,t,n){var i=v(e),r=m(t)?v(t):null,o=m(n)?v(n):null;return(!r||r<=i)&&(!o||o>=i)}function y(e,t){return h(e,12*t)}function _(e,t){return t.getFullYear()-e.getFullYear()}function w(e,t,n){var i=e;return t&&e<t&&(i=new Date(t.getTime())),n&&e>n&&(i=new Date(n.getTime())),i}function A(e){if(e&&e.hasAttribute("data-timestamp"))return Number(e.getAttribute("data-timestamp"))}function C(e,t,n){var i=e.getMonth(),r=e.getFullYear();return(!t||t.getFullYear()<r||t.getMonth()<=i)&&(!n||n.getFullYear()>r||n.getMonth()>=i)}return{getFirstDateOfMonth:e,getNumberOfDaysInMonth:n,getDateInNextMonth:i,getDateInPreviousMonth:r,isInNextMonth:s,isInPreviousMonth:l,getDateMidpoint:c,isSameMonthAndYear:o,getWeekOfMonth:u,incrementDays:d,incrementMonths:h,getLastDateOfMonth:f,isSameDay:a,getMonthDistance:p,isValidDate:m,setDateTimeToMidnight:g,createDateAtMidnight:v,isDateWithinRange:b,incrementYears:y,getYearDistance:_,clampDate:w,getTimestampFromNode:A,isMonthWithinRange:C}})}()}(),function(){!function(){function n(e,n,r,s){return{template:function(t,n){var i=n.mdHideIcons,r=n.ariaLabel||n.mdPlaceholder,o="all"===i||"calendar"===i?"":'<md-button class="md-datepicker-button md-icon-button" type="button" tabindex="-1" aria-hidden="true" ng-click="ctrl.openCalendarPane($event)"><md-icon class="md-datepicker-calendar-icon" aria-label="md-calendar" md-svg-src="'+e.mdCalendar+'"></md-icon></md-button>',a="all"===i||"triangle"===i?"":'<md-button type="button" md-no-ink class="md-datepicker-triangle-button md-icon-button" ng-click="ctrl.openCalendarPane($event)" aria-label="{{::ctrl.dateLocale.msgOpenCalendar}}"><div class="md-datepicker-expand-triangle"></div></md-button>';return o+'<div class="md-datepicker-input-container" ng-class="{\'md-datepicker-focused\': ctrl.isFocused}"><input '+(r?'aria-label="'+r+'" ':"")+'class="md-datepicker-input" aria-haspopup="true" ng-focus="ctrl.setFocused(true)" ng-blur="ctrl.setFocused(false)"> '+a+'</div><div class="md-datepicker-calendar-pane md-whiteframe-z1"><div class="md-datepicker-input-mask"><div class="md-datepicker-input-mask-opaque"></div></div><div class="md-datepicker-calendar"><md-calendar role="dialog" aria-label="{{::ctrl.dateLocale.msgCalendar}}" md-current-view="{{::ctrl.currentView}}"md-min-date="ctrl.minDate"md-max-date="ctrl.maxDate"md-date-filter="ctrl.dateFilter"ng-model="ctrl.date" ng-if="ctrl.isCalendarOpen"></md-calendar></div></div>'},require:["ngModel","mdDatepicker","?^mdInputContainer","?^form"],scope:{minDate:"=mdMinDate",maxDate:"=mdMaxDate",placeholder:"@mdPlaceholder",currentView:"@mdCurrentView",dateFilter:"=mdDateFilter",isOpen:"=?mdIsOpen",debounceInterval:"=mdDebounceInterval"},controller:i,controllerAs:"ctrl",bindToController:!0,link:function(e,i,l,c){var u=c[0],d=c[1],h=c[2],p=c[3],f=n.parseAttributeBoolean(l.mdNoAsterisk);if(d.configureNgModel(u,h,s),h){var m=i[0].querySelector(".md-errors-spacer");m&&i.after(t.element("<div>").append(m)),h.setHasPlaceholder(l.mdPlaceholder),h.input=i,h.element.addClass(o).toggleClass(a,"calendar"!==l.mdHideIcons&&"all"!==l.mdHideIcons),h.label?f||l.$observe("required",function(e){h.label.toggleClass("md-required",!!e)}):r.expect(i,"aria-label",l.mdPlaceholder),e.$watch(h.isErrorGetter||function(){return u.$invalid&&(u.$touched||p&&p.$submitted)},h.setInvalid)}else if(p)var g=e.$watch(function(){return p.$submitted},function(e){e&&(d.updateErrorState(),g())})}}}function i(e,n,i,r,o,a,s,l,c,u,d,h){this.$window=r,this.dateLocale=l,this.dateUtil=c,this.$mdConstant=o,this.$mdUtil=s,this.$$rAF=u,this.documentElement=t.element(document.documentElement),this.ngModelCtrl=null,this.inputElement=n[0].querySelector("input"),this.ngInputElement=t.element(this.inputElement),this.inputContainer=n[0].querySelector(".md-datepicker-input-container"),this.calendarPane=n[0].querySelector(".md-datepicker-calendar-pane"),this.calendarButton=n[0].querySelector(".md-datepicker-button"),this.inputMask=t.element(n[0].querySelector(".md-datepicker-input-mask-opaque")),this.$element=n,this.$attrs=i,this.$scope=e,this.date=null,this.isFocused=!1,this.isDisabled,this.setDisabled(n[0].disabled||t.isString(i.disabled)),this.isCalendarOpen=!1,this.openOnFocus=i.hasOwnProperty("mdOpenOnFocus"),this.mdInputContainer=null,this.calendarPaneOpenedFrom=null,this.calendarPane.id="md-date-pane"+s.nextUid(),this.bodyClickHandler=t.bind(this,this.handleBodyClick),this.windowEventName=d.isIos||d.isAndroid?"orientationchange":"resize",this.windowEventHandler=s.debounce(t.bind(this,this.closeCalendarPane),100),this.windowBlurHandler=t.bind(this,this.handleWindowBlur),this.ngDateFilter=h("date"),this.leftMargin=20,this.topMargin=null,i.tabindex?(this.ngInputElement.attr("tabindex",i.tabindex),i.$set("tabindex",null)):i.$set("tabindex","-1"),a(n),a(t.element(this.calendarPane)),this.installPropertyInterceptors(),this.attachChangeListeners(),this.attachInteractionListeners();var p=this;e.$on("$destroy",function(){p.detachCalendarPane()}),i.mdIsOpen&&e.$watch("ctrl.isOpen",function(e){e?p.openCalendarPane({target:p.inputElement}):p.closeCalendarPane()})}i.$inject=["$scope","$element","$attrs","$window","$mdConstant","$mdTheming","$mdUtil","$mdDateLocale","$$mdDateUtil","$$rAF","$mdGesture","$filter"],n.$inject=["$$mdSvgRegistry","$mdUtil","$mdAria","inputDirective"],t.module("material.components.datepicker").directive("mdDatepicker",n);var r="md-datepicker-open",o="_md-datepicker-floating-label",a="_md-datepicker-has-calendar-icon";i.prototype.configureNgModel=function(e,n,i){this.ngModelCtrl=e,this.mdInputContainer=n,this.$attrs.$set("type","date"),i[0].link.pre(this.$scope,{on:t.noop,val:t.noop,0:{}},this.$attrs,[e]);var r=this;r.ngModelCtrl.$formatters.push(function(e){if(e&&!(e instanceof Date))throw Error("The ng-model for md-datepicker must be a Date instance. Currently the model is a: "+typeof e);return r.date=e,r.inputElement.value=r.dateLocale.formatDate(e),r.mdInputContainer&&r.mdInputContainer.setHasValue(!!e),r.resizeInputElement(),r.updateErrorState(),e}),e.$viewChangeListeners.unshift(t.bind(this,this.updateErrorState))},i.prototype.attachChangeListeners=function(){var e=this;e.$scope.$on("md-calendar-change",function(t,n){e.setModelValue(n),e.date=n,e.inputElement.value=e.dateLocale.formatDate(n),e.mdInputContainer&&e.mdInputContainer.setHasValue(!!n),e.closeCalendarPane(),e.resizeInputElement(),e.updateErrorState()}),e.ngInputElement.on("input",t.bind(e,e.resizeInputElement));var n=t.isDefined(this.debounceInterval)?this.debounceInterval:500;e.ngInputElement.on("input",e.$mdUtil.debounce(e.handleInputEvent,n,e))},i.prototype.attachInteractionListeners=function(){var e=this,n=this.$scope,i=this.$mdConstant.KEY_CODE;e.ngInputElement.on("keydown",function(t){t.altKey&&t.keyCode==i.DOWN_ARROW&&(e.openCalendarPane(t),n.$digest())}),e.openOnFocus&&(e.ngInputElement.on("focus",t.bind(e,e.openCalendarPane)),t.element(e.$window).on("blur",e.windowBlurHandler),n.$on("$destroy",function(){t.element(e.$window).off("blur",e.windowBlurHandler)})),n.$on("md-calendar-close",function(){e.closeCalendarPane()})},i.prototype.installPropertyInterceptors=function(){var e=this;if(this.$attrs.ngDisabled){var t=this.$scope.$parent;t&&t.$watch(this.$attrs.ngDisabled,function(t){e.setDisabled(t)})}Object.defineProperty(this,"placeholder",{get:function(){return e.inputElement.placeholder},set:function(t){e.inputElement.placeholder=t||""}})},i.prototype.setDisabled=function(e){this.isDisabled=e,this.inputElement.disabled=e,this.calendarButton&&(this.calendarButton.disabled=e)},i.prototype.updateErrorState=function(e){var n=e||this.date;if(this.clearErrorState(),this.dateUtil.isValidDate(n)){if(n=this.dateUtil.createDateAtMidnight(n),this.dateUtil.isValidDate(this.minDate)){var i=this.dateUtil.createDateAtMidnight(this.minDate);this.ngModelCtrl.$setValidity("mindate",n>=i)}if(this.dateUtil.isValidDate(this.maxDate)){var r=this.dateUtil.createDateAtMidnight(this.maxDate);this.ngModelCtrl.$setValidity("maxdate",n<=r)}t.isFunction(this.dateFilter)&&this.ngModelCtrl.$setValidity("filtered",this.dateFilter(n))}else this.ngModelCtrl.$setValidity("valid",null==n);this.ngModelCtrl.$valid||this.inputContainer.classList.add("md-datepicker-invalid")},i.prototype.clearErrorState=function(){this.inputContainer.classList.remove("md-datepicker-invalid"),["mindate","maxdate","filtered","valid"].forEach(function(e){this.ngModelCtrl.$setValidity(e,!0)},this)},i.prototype.resizeInputElement=function(){this.inputElement.size=this.inputElement.value.length+3},i.prototype.handleInputEvent=function(){var e=this.inputElement.value,t=e?this.dateLocale.parseDate(e):null;this.dateUtil.setDateTimeToMidnight(t),(""==e||this.dateUtil.isValidDate(t)&&this.dateLocale.isDateComplete(e)&&this.isDateEnabled(t))&&(this.setModelValue(t),this.date=t),this.updateErrorState(t)},i.prototype.isDateEnabled=function(e){return this.dateUtil.isDateWithinRange(e,this.minDate,this.maxDate)&&(!t.isFunction(this.dateFilter)||this.dateFilter(e))},i.prototype.attachCalendarPane=function(){var e=this.calendarPane,n=document.body;e.style.transform="",this.$element.addClass(r),this.mdInputContainer&&this.mdInputContainer.element.addClass(r),t.element(n).addClass("md-datepicker-is-showing");var i=this.inputContainer.getBoundingClientRect(),o=n.getBoundingClientRect();(!this.topMargin||this.topMargin<0)&&(this.topMargin=(this.inputMask.parent().prop("clientHeight")-this.ngInputElement.prop("clientHeight"))/2);var a=i.top-o.top-this.topMargin,s=i.left-o.left-this.leftMargin,l=o.top<0&&0==document.body.scrollTop?-o.top:document.body.scrollTop,c=o.left<0&&0==document.body.scrollLeft?-o.left:document.body.scrollLeft,u=l+this.$window.innerHeight,d=c+this.$window.innerWidth;if(this.inputMask.css({position:"absolute",left:this.leftMargin+"px",top:this.topMargin+"px",width:i.width-1+"px",height:i.height-2+"px"}),s+360>d){if(d-360>0)s=d-360;else{s=c;var h=this.$window.innerWidth/360;e.style.transform="scale("+h+")"}e.classList.add("md-datepicker-pos-adjusted")}a+368>u&&u-368>l&&(a=u-368,e.classList.add("md-datepicker-pos-adjusted")),e.style.left=s+"px",e.style.top=a+"px",document.body.appendChild(e),this.$$rAF(function(){e.classList.add("md-pane-open")})},i.prototype.detachCalendarPane=function(){this.$element.removeClass(r),this.mdInputContainer&&this.mdInputContainer.element.removeClass(r),t.element(document.body).removeClass("md-datepicker-is-showing"),this.calendarPane.classList.remove("md-pane-open"),this.calendarPane.classList.remove("md-datepicker-pos-adjusted"),this.isCalendarOpen&&this.$mdUtil.enableScrolling(),this.calendarPane.parentNode&&this.calendarPane.parentNode.removeChild(this.calendarPane)},i.prototype.openCalendarPane=function(t){if(!this.isCalendarOpen&&!this.isDisabled&&!this.inputFocusedOnWindowBlur){this.isCalendarOpen=this.isOpen=!0,this.calendarPaneOpenedFrom=t.target,this.$mdUtil.disableScrollAround(this.calendarPane),this.attachCalendarPane(),this.focusCalendar(),this.evalAttr("ngFocus");var n=this;this.$mdUtil.nextTick(function(){n.documentElement.on("click touchstart",n.bodyClickHandler)},!1),e.addEventListener(this.windowEventName,this.windowEventHandler)}},i.prototype.closeCalendarPane=function(){function t(){n.isCalendarOpen=n.isOpen=!1}if(this.isCalendarOpen){var n=this;n.detachCalendarPane(),n.ngModelCtrl.$setTouched(),n.evalAttr("ngBlur"),n.documentElement.off("click touchstart",n.bodyClickHandler),e.removeEventListener(n.windowEventName,n.windowEventHandler),n.calendarPaneOpenedFrom.focus(),n.calendarPaneOpenedFrom=null,n.openOnFocus?n.$mdUtil.nextTick(t):t()}},i.prototype.getCalendarCtrl=function(){return t.element(this.calendarPane.querySelector("md-calendar")).controller("mdCalendar")},i.prototype.focusCalendar=function(){var e=this;this.$mdUtil.nextTick(function(){e.getCalendarCtrl().focus()},!1)},i.prototype.setFocused=function(e){e||this.ngModelCtrl.$setTouched(),this.openOnFocus||this.evalAttr(e?"ngFocus":"ngBlur"),this.isFocused=e},i.prototype.handleBodyClick=function(e){this.isCalendarOpen&&(this.$mdUtil.getClosest(e.target,"md-calendar")||this.closeCalendarPane(),this.$scope.$digest())},i.prototype.handleWindowBlur=function(){this.inputFocusedOnWindowBlur=document.activeElement===this.inputElement},i.prototype.evalAttr=function(e){this.$attrs[e]&&this.$scope.$parent.$eval(this.$attrs[e])},i.prototype.setModelValue=function(e){this.ngModelCtrl.$setViewValue(this.ngDateFilter(e,"yyyy-MM-dd"))}}()}(),function(){function e(e,t,n,i){function r(i,r,o){function a(){if(!o.mdSvgIcon&&!o.mdSvgSrc){o.mdFontIcon&&(r.removeClass(s),r.addClass(o.mdFontIcon),s=o.mdFontIcon);var t=e.fontSet(o.mdFontSet);l!==t&&(r.removeClass(l),r.addClass(t),l=t)}}t(r);var s=o.mdFontIcon,l=e.fontSet(o.mdFontSet);!function(){o.mdSvgIcon||o.mdSvgSrc||(o.mdFontIcon&&r.addClass("md-font "+o.mdFontIcon),r.addClass(l))}(),o.$observe("mdFontIcon",a),o.$observe("mdFontSet",a);r[0].getAttribute(o.$attr.mdSvgSrc);var c=o.alt||o.mdFontIcon||o.mdSvgIcon||r.text(),u=o.$normalize(o.$attr.mdSvgIcon||o.$attr.mdSvgSrc||"");o["aria-label"]||(""===c||function(){var e=r.parent();return!(!e.attr("aria-label")&&!e.text())||!(!e.parent().attr("aria-label")&&!e.parent().text())}()?r.text()||n.expect(r,"aria-hidden","true"):(n.expect(r,"aria-label",c),n.expect(r,"role","img"))),u&&o.$observe(u,function(t){r.empty(),t&&e(t).then(function(e){r.empty(),r.append(e)})})}return{restrict:"E",link:r}}t.module("material.components.icon").directive("mdIcon",["$mdIcon","$mdTheming","$mdAria","$sce",e])}(),function(){function n(){}function i(e,t){this.url=e,this.viewBoxSize=t||o.defaultViewBoxSize}function r(n,i,r,o,a,s){function l(e){return e=e||"",t.isString(e)||(e=s.getTrustedUrl(e)),y[e]?r.when(u(y[e])):w.test(e)||A.test(e)?f(e).then(d(e)):(-1==e.indexOf(":")&&(e="$default:"+e),(n[e]?h:p)(e).then(d(e)))}function c(e){if(t.isUndefined(e)||!(e&&e.length))return n.defaultFontSet;var i=e;return t.forEach(n.fontSets,function(t){t.alias==e&&(i=t.fontSet||i)}),i}function u(e){var n=e.clone(),i="_cache"+a.nextUid();return n.id&&(n.id+=i),t.forEach(n.querySelectorAll("[id]"),function(e){e.id+=i}),n}function d(e){return function(t){return y[e]=m(t)?t:new g(t,n[e]),y[e].clone()}}function h(e){var t=n[e];return f(t.url).then(function(e){return new g(e,t)})}function p(e){function t(t){var n=e.slice(e.lastIndexOf(":")+1),r=t.querySelector("#"+n);return r?new g(r,s):i(e)}function i(e){var t="icon "+e+" not found";return o.warn(t),r.reject(t||e)}var a=e.substring(0,e.lastIndexOf(":"))||"$default",s=n[a];return s?f(s.url).then(t):i(e)}function f(n){return A.test(n)?function(n){var i=A.exec(n),o=/base64/i.test(n)?e.atob(i[2]):i[2];return r.when(t.element(o)[0])}(n):function(e){return r(function(n,r){var a=function(e){var n=t.isString(e)?e:e.message||e.data||e.statusText;o.warn(n),r(e)},s=function(i){_[e]||(_[e]=t.element("<div>").append(i)[0].querySelector("svg")),n(_[e])};i(e,!0).then(s,a)})}(n)}function m(e){return t.isDefined(e.element)&&t.isDefined(e.config)}function g(e,n){e&&"svg"!=e.tagName&&(e=t.element('<svg xmlns="http://www.w3.org/2000/svg">').append(e.cloneNode(!0))[0]),e.getAttribute("xmlns")||e.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.element=e,this.config=n,this.prepare()}function v(){var e=this.config?this.config.viewBoxSize:n.defaultViewBoxSize;t.forEach({fit:"",height:"100%",width:"100%",preserveAspectRatio:"xMidYMid meet",viewBox:this.element.getAttribute("viewBox")||"0 0 "+e+" "+e,focusable:!1},function(e,t){this.element.setAttribute(t,e)},this)}function b(){return this.element.cloneNode(!0)}var y={},_={},w=/[-\w@:%\+.~#?&//=]{2,}\.[a-z]{2,4}\b(\/[-\w@:%\+.~#?&//=]*)?/i,A=/^data:image\/svg\+xml[\s*;\w\-\=]*?(base64)?,(.*)$/i;return g.prototype={clone:b,prepare:v},l.fontSet=c,l}r.$inject=["config","$templateRequest","$q","$log","$mdUtil","$sce"],t.module("material.components.icon").constant("$$mdSvgRegistry",{mdTabsArrow:"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnPjxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyICIvPjwvZz48L3N2Zz4=",mdClose:"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnPjxwYXRoIGQ9Ik0xOSA2LjQxbC0xLjQxLTEuNDEtNS41OSA1LjU5LTUuNTktNS41OS0xLjQxIDEuNDEgNS41OSA1LjU5LTUuNTkgNS41OSAxLjQxIDEuNDEgNS41OS01LjU5IDUuNTkgNS41OSAxLjQxLTEuNDEtNS41OS01LjU5eiIvPjwvZz48L3N2Zz4=",mdCancel:"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnPjxwYXRoIGQ9Ik0xMiAyYy01LjUzIDAtMTAgNC40Ny0xMCAxMHM0LjQ3IDEwIDEwIDEwIDEwLTQuNDcgMTAtMTAtNC40Ny0xMC0xMC0xMHptNSAxMy41OWwtMS40MSAxLjQxLTMuNTktMy41OS0zLjU5IDMuNTktMS40MS0xLjQxIDMuNTktMy41OS0zLjU5LTMuNTkgMS40MS0xLjQxIDMuNTkgMy41OSAzLjU5LTMuNTkgMS40MSAxLjQxLTMuNTkgMy41OSAzLjU5IDMuNTl6Ii8+PC9nPjwvc3ZnPg==",mdMenu:"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGQ9Ik0zLDZIMjFWOEgzVjZNMywxMUgyMVYxM0gzVjExTTMsMTZIMjFWMThIM1YxNloiIC8+PC9zdmc+",mdToggleArrow:"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNDggNDgiPjxwYXRoIGQ9Ik0yNCAxNmwtMTIgMTIgMi44MyAyLjgzIDkuMTctOS4xNyA5LjE3IDkuMTcgMi44My0yLjgzeiIvPjxwYXRoIGQ9Ik0wIDBoNDh2NDhoLTQ4eiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==",mdCalendar:"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTkgM2gtMVYxaC0ydjJIOFYxSDZ2Mkg1Yy0xLjExIDAtMS45OS45LTEuOTkgMkwzIDE5YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bTAgMTZINVY4aDE0djExek03IDEwaDV2NUg3eiIvPjwvc3ZnPg==",mdChecked:"data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnPjxwYXRoIGQ9Ik05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXoiLz48L2c+PC9zdmc+"}).provider("$mdIcon",n);var o={defaultViewBoxSize:24,defaultFontSet:"material-icons",fontSets:[]};n.prototype={icon:function(e,t,n){return-1==e.indexOf(":")&&(e="$default:"+e),o[e]=new i(t,n),this},iconSet:function(e,t,n){return o[e]=new i(t,n),this},defaultIconSet:function(e,t){return o.$default||(o.$default=new i(e,t)),o.$default.viewBoxSize=t||o.defaultViewBoxSize,this},defaultViewBoxSize:function(e){return o.defaultViewBoxSize=e,this},fontSet:function(e,t){return o.fontSets.push({alias:e,fontSet:t||e}),this},defaultFontSet:function(e){return o.defaultFontSet=e||"",this},defaultIconSize:function(e){return o.defaultIconSize=e,this},$get:["$templateRequest","$q","$log","$mdUtil","$sce",function(e,t,n,i,a){return r(o,e,t,n,i,a)}]}}(),function(){function e(e,i,r,o,a,s,l,c){var u,d,h=a.prefixer(),p=this;this.nestLevel=parseInt(i.mdNestLevel,10)||0,this.init=function(n,i){i=i||{},u=n,(d=r[0].querySelector(h.buildSelector(["ng-click","ng-mouseenter"]))).setAttribute("aria-expanded","false"),this.isInMenuBar=i.isInMenuBar,this.nestedMenus=a.nodesToArray(u[0].querySelectorAll(".md-nested-menu")),u.on("$mdInterimElementRemove",function(){p.isOpen=!1,a.nextTick(function(){p.onIsOpenChanged(p.isOpen)})}),a.nextTick(function(){p.onIsOpenChanged(p.isOpen)});var s="menu_container_"+a.nextUid();u.attr("id",s),t.element(d).attr({"aria-owns":s,"aria-haspopup":"true"}),o.$on("$destroy",t.bind(this,function(){this.disableHoverListener(),e.destroy()})),u.on("$destroy",function(){e.destroy()})};var f,m,g=[];this.enableHoverListener=function(){g.push(l.$on("$mdMenuOpen",function(e,t){u[0].contains(t[0])&&(p.currentlyOpenMenu=t.controller("mdMenu"),p.isAlreadyOpening=!1,p.currentlyOpenMenu.registerContainerProxy(p.triggerContainerProxy.bind(p)))})),g.push(l.$on("$mdMenuClose",function(e,t){u[0].contains(t[0])&&(p.currentlyOpenMenu=n)})),(m=t.element(a.nodesToArray(u[0].children[0].children))).on("mouseenter",p.handleMenuItemHover),m.on("mouseleave",p.handleMenuItemMouseLeave)},this.disableHoverListener=function(){for(;g.length;)g.shift()();m&&m.off("mouseenter",p.handleMenuItemHover),m&&m.off("mouseleave",p.handleMenuItemMouseLeave)},this.handleMenuItemHover=function(e){if(!p.isAlreadyOpening){var n=e.target.querySelector("md-menu")||a.getClosest(e.target,"MD-MENU");f=s(function(){if(n&&(n=t.element(n).controller("mdMenu")),p.currentlyOpenMenu&&p.currentlyOpenMenu!=n){var e=p.nestLevel+1;p.currentlyOpenMenu.close(!0,{closeTo:e}),p.isAlreadyOpening=!!n,n&&n.open()}else n&&!n.isOpen&&n.open&&(p.isAlreadyOpening=!!n,n&&n.open())},n?100:250);var i=e.currentTarget.querySelector(".md-button:not([disabled])");i&&i.focus()}},this.handleMenuItemMouseLeave=function(){f&&(s.cancel(f),f=n)},this.open=function(t){t&&t.stopPropagation(),t&&t.preventDefault(),p.isOpen||(p.enableHoverListener(),p.isOpen=!0,a.nextTick(function(){p.onIsOpenChanged(p.isOpen)}),(d=d||(t?t.target:r[0])).setAttribute("aria-expanded","true"),o.$emit("$mdMenuOpen",r),e.show({scope:o,mdMenuCtrl:p,nestLevel:p.nestLevel,element:u,target:d,preserveElement:!0,parent:"body"}).finally(function(){d.setAttribute("aria-expanded","false"),p.disableHoverListener()}))},o.$mdOpenMenu=this.open,this.onIsOpenChanged=function(e){e?(u.attr("aria-hidden","false"),r[0].classList.add("md-open"),t.forEach(p.nestedMenus,function(e){e.classList.remove("md-open")})):(u.attr("aria-hidden","true"),r[0].classList.remove("md-open")),o.$mdMenuIsOpen=p.isOpen},this.focusMenuContainer=function(){var e=u[0].querySelector(h.buildSelector(["md-menu-focus-target","md-autofocus"]));e||(e=u[0].querySelector(".md-button")),e.focus()},this.registerContainerProxy=function(e){this.containerProxy=e},this.triggerContainerProxy=function(e){this.containerProxy&&this.containerProxy(e)},this.destroy=function(){return p.isOpen?e.destroy():c.when(!1)},this.close=function(n,i){if(p.isOpen){p.isOpen=!1,a.nextTick(function(){p.onIsOpenChanged(p.isOpen)});var s=t.extend({},i,{skipFocus:n});if(o.$emit("$mdMenuClose",r,s),e.hide(null,i),!n){var l=p.restoreFocusTo||r.find("button")[0];l instanceof t.element&&(l=l[0]),l&&l.focus()}}},this.positionMode=function(){var e=(i.mdPositionMode||"target").split(" ");return 1==e.length&&e.push(e[0]),{left:e[0],top:e[1]}},this.offsets=function(){var e=(i.mdOffset||"0 0").split(" ").map(parseFloat);if(2==e.length)return{left:e[0],top:e[1]};if(1==e.length)return{top:e[0],left:e[0]};throw Error("Invalid offsets specified. Please follow format <x, y> or <n>")}}e.$inject=["$mdMenu","$attrs","$element","$scope","$mdUtil","$timeout","$rootScope","$q"],t.module("material.components.menu").controller("mdMenuCtrl",e)}(),function(){function e(e){function i(n){n.addClass("md-menu");var i=n.children()[0],a=e.prefixer();if(a.hasAttribute(i,"ng-click")||(i=i.querySelector(a.buildSelector(["ng-click","ng-mouseenter"]))||i),!i||"MD-BUTTON"!=i.nodeName&&"BUTTON"!=i.nodeName||i.hasAttribute("type")||i.setAttribute("type","button"),2!=n.children().length)throw Error(o+"Expected two children elements.");i&&i.setAttribute("aria-haspopup","true");var s=n[0].querySelectorAll("md-menu"),l=parseInt(n[0].getAttribute("md-nest-level"),10)||0;return s&&t.forEach(e.nodesToArray(s),function(e){e.hasAttribute("md-position-mode")||e.setAttribute("md-position-mode","cascade"),e.classList.add("_md-nested-menu"),e.setAttribute("md-nest-level",l+1)}),r}function r(e,i,r,o){var a=o[0],s=o[1]!=n,l=t.element('<div class="_md md-open-menu-container md-whiteframe-z2"></div>'),c=i.children()[1];i.addClass("_md"),c.hasAttribute("role")||c.setAttribute("role","menu"),l.append(c),i.on("$destroy",function(){l.remove()}),i.append(l),l[0].style.display="none",a.init(l,{isInMenuBar:s})}var o="Invalid HTML for md-menu: ";return{restrict:"E",require:["mdMenu","?^mdMenuBar"],controller:"mdMenuCtrl",scope:!0,compile:i}}e.$inject=["$mdUtil"],t.module("material.components.menu").directive("mdMenu",e)}(),function(){function e(e){function i(e,i,a,s,l,c,u,d,h){function p(n,i,r){return r.nestLevel?t.noop:(r.disableParentScroll&&!e.getClosest(r.target,"MD-DIALOG")?r.restoreScroll=e.disableScrollAround(r.element,r.parent):r.disableParentScroll=!1,r.hasBackdrop&&(r.backdrop=e.createBackdrop(n,"md-menu-backdrop md-click-catcher"),h.enter(r.backdrop,s[0].body)),function(){r.backdrop&&r.backdrop.remove(),r.disableParentScroll&&r.restoreScroll()})}function f(e,t,n){function i(){t.removeClass("md-active"),b(t,n),n.alreadyOpen=!1}return n.cleanupInteraction&&n.cleanupInteraction(),n.cleanupResizing(),n.hideBackdrop(),!0===n.$destroy?i():function(){return d(t,{addClass:"md-leave"}).start()}().then(i)}function m(n,r,o){function s(){function t(t){var n;switch(t.keyCode){case a.KEY_CODE.ESCAPE:o.mdMenuCtrl.close(!1,{closeAll:!0}),n=!0;break;case a.KEY_CODE.UP_ARROW:g(t,o.menuContentEl,o,-1)||o.nestLevel||o.mdMenuCtrl.triggerContainerProxy(t),n=!0;break;case a.KEY_CODE.DOWN_ARROW:g(t,o.menuContentEl,o,1)||o.nestLevel||o.mdMenuCtrl.triggerContainerProxy(t),n=!0;break;case a.KEY_CODE.LEFT_ARROW:o.nestLevel?o.mdMenuCtrl.close():o.mdMenuCtrl.triggerContainerProxy(t),n=!0;break;case a.KEY_CODE.RIGHT_ARROW:var i=e.getClosest(t.target,"MD-MENU");i&&i!=o.parent[0]?t.target.click():o.mdMenuCtrl.triggerContainerProxy(t),n=!0}n&&(t.preventDefault(),t.stopImmediatePropagation())}function i(e){e.preventDefault(),e.stopPropagation(),n.$apply(function(){o.mdMenuCtrl.close(!0,{closeAll:!0})})}function s(t){function i(e,t){if(!e)return!1;for(var n,i=0;n=t[i];++i)if(_.hasAttribute(e,n))return!0;return!1}var r=t.target;do{if(r==o.menuContentEl[0])return;if((i(r,["ng-click","ng-href","ui-sref"])||"BUTTON"==r.nodeName||"MD-BUTTON"==r.nodeName)&&!i(r,["md-prevent-menu-close"])){var a=e.getClosest(r,"MD-MENU");r.hasAttribute("disabled")||a&&a!=o.parent[0]||function(){n.$apply(function(){o.mdMenuCtrl.close(!0,{closeAll:!0})})}();break}}while(r=r.parentNode)}r.addClass("md-clickable"),o.backdrop&&o.backdrop.on("click",i),o.menuContentEl.on("keydown",t),o.menuContentEl[0].addEventListener("click",s,!0);var l=o.menuContentEl[0].querySelector(_.buildSelector(["md-menu-focus-target","md-autofocus"]));if(!l){var c=o.menuContentEl[0].firstElementChild;l=c&&(c.querySelector(".md-button:not([disabled])")||c.firstElementChild)}return l&&l.focus(),function(){r.removeClass("md-clickable"),o.backdrop&&o.backdrop.off("click",i),o.menuContentEl.off("keydown",t),o.menuContentEl[0].removeEventListener("click",s,!0)}}return function(){if(!o.target)throw Error("$mdMenu.show() expected a target to animate from in options.target");t.extend(o,{alreadyOpen:!1,isRemoved:!1,target:t.element(o.target),parent:t.element(o.parent),menuContentEl:t.element(r[0].querySelector("md-menu-content"))})}(),i.inherit(o.menuContentEl,o.target),o.cleanupResizing=function(){var e=function(e,t){return u.throttle(function(){if(!o.isRemoved){var n=y(e,t);e.css(w.toCss(n))}})}(r,o);return l.addEventListener("resize",e),l.addEventListener("orientationchange",e),function(){l.removeEventListener("resize",e),l.removeEventListener("orientationchange",e)}}(),o.hideBackdrop=p(n,r,o),function(){return o.parent.append(r),r[0].style.display="",c(function(e){var t=y(r,o);r.removeClass("md-leave"),d(r,{addClass:"md-active",from:w.toCss(t),to:w.toCss({transform:""})}).start().then(e)})}().then(function(e){return o.alreadyOpen=!0,o.cleanupInteraction=s(),e})}function g(t,n,i,r){for(var o,a=e.getClosest(t.target,"MD-MENU-ITEM"),s=e.nodesToArray(n[0].children),l=s.indexOf(a)+r;l>=0&&l<s.length&&!(o=v(s[l].querySelector(".md-button")));l+=r);return o}function v(e){if(e&&-1!=e.getAttribute("tabindex"))return e.focus(),s[0].activeElement==e}function b(e,t){t.preserveElement?r(e).style.display="none":r(e).parentNode===r(t.parent)&&r(t.parent).removeChild(r(e))}function y(t,i){var r,a=t[0],c=t[0].firstElementChild,u=c.getBoundingClientRect(),d=s[0].body.getBoundingClientRect(),h=l.getComputedStyle(c),p=i.target[0].querySelector(_.buildSelector("md-menu-origin"))||i.target[0],f=p.getBoundingClientRect(),m={left:d.left+o,top:Math.max(d.top,0)+o,bottom:Math.max(d.bottom,Math.max(d.top,0)+d.height)-o,right:d.right-o},g={top:0,left:0,right:0,bottom:0},v={top:0,left:0,right:0,bottom:0},b=i.mdMenuCtrl.positionMode();"target"!=b.top&&"target"!=b.left&&"target-right"!=b.left||(r=function(){for(var e=0;e<c.children.length;++e)if("none"!=l.getComputedStyle(c.children[e]).display)return c.children[e]}())&&(g=(r=(r=r.firstElementChild||r).querySelector(_.buildSelector("md-menu-align-target"))||r).getBoundingClientRect(),v={top:parseFloat(a.style.top||0),left:parseFloat(a.style.left||0)});var y={},w="top ";switch(b.top){case"target":y.top=v.top+f.top-g.top;break;case"cascade":y.top=f.top-parseFloat(h.paddingTop)-p.style.top;break;case"bottom":y.top=f.top+f.height;break;default:throw new Error('Invalid target mode "'+b.top+'" specified for md-menu on Y axis.')}var A="rtl"==e.bidi();switch(b.left){case"target":y.left=v.left+f.left-g.left,w+=A?"right":"left";break;case"target-left":y.left=f.left,w+="left";break;case"target-right":y.left=f.right-u.width+(u.right-g.right),w+="right";break;case"cascade":var C=A?f.left-u.width<m.left:f.right+u.width<m.right;y.left=C?f.right-p.style.left:f.left-p.style.left-u.width,w+=C?"left":"right";break;case"right":A?(y.left=f.right-f.width,w+="left"):(y.left=f.right-u.width,w+="right");break;case"left":A?(y.left=f.right-u.width,w+="right"):(y.left=f.left,w+="left");break;default:throw new Error('Invalid target mode "'+b.left+'" specified for md-menu on X axis.')}var x=i.mdMenuCtrl.offsets();y.top+=x.top,y.left+=x.left,function(e){e.top=Math.max(Math.min(e.top,m.bottom-a.offsetHeight),m.top),e.left=Math.max(Math.min(e.left,m.right-a.offsetWidth),m.left)}(y);var S=Math.round(100*Math.min(f.width/a.offsetWidth,1))/100,E=Math.round(100*Math.min(f.height/a.offsetHeight,1))/100;return{top:Math.round(y.top),left:Math.round(y.left),transform:i.alreadyOpen?n:e.supplant("scale({0},{1})",[S,E]),transformOrigin:w}}var _=e.prefixer(),w=e.dom.animator;return{parent:"body",onShow:m,onRemove:f,hasBackdrop:!0,disableParentScroll:!0,skipCompile:!0,preserveScope:!0,skipHide:!0,themable:!0}}function r(e){return e instanceof t.element&&(e=e[0]),e}i.$inject=["$mdUtil","$mdTheming","$mdConstant","$document","$window","$q","$$rAF","$animateCss","$animate"];var o=8;return e("$mdMenu").setDefaults({methods:["target"],options:i})}e.$inject=["$$interimElementProvider"],t.module("material.components.menu").provider("$mdMenu",e)}(),function(){function e(e,n,r,o,a,s,l,c){this.$element=r,this.$attrs=o,this.$mdConstant=a,this.$mdUtil=l,this.$document=s,this.$scope=e,this.$rootScope=n,this.$timeout=c;var u=this;t.forEach(i,function(e){u[e]=t.bind(u,u[e])})}e.$inject=["$scope","$rootScope","$element","$attrs","$mdConstant","$document","$mdUtil","$timeout"],t.module("material.components.menuBar").controller("MenuBarController",e);var i=["handleKeyDown","handleMenuHover","scheduleOpenHoveredMenu","cancelScheduledOpen"];e.prototype.init=function(){var e=this.$element,t=this.$mdUtil,i=this.$scope,r=this,o=[];e.on("keydown",this.handleKeyDown),this.parentToolbar=t.getClosest(e,"MD-TOOLBAR"),o.push(this.$rootScope.$on("$mdMenuOpen",function(t,n){-1!=r.getMenus().indexOf(n[0])&&(e[0].classList.add("md-open"),n[0].classList.add("md-open"),r.currentlyOpenMenu=n.controller("mdMenu"),r.currentlyOpenMenu.registerContainerProxy(r.handleKeyDown),r.enableOpenOnHover())})),o.push(this.$rootScope.$on("$mdMenuClose",function(i,o,a){var s=r.getMenus();if(-1!=s.indexOf(o[0])&&(e[0].classList.remove("md-open"),o[0].classList.remove("md-open")),e[0].contains(o[0])){for(var l=o[0];l&&-1==s.indexOf(l);)l=t.getClosest(l,"MD-MENU",!0);l&&(a.skipFocus||l.querySelector("button:not([disabled])").focus(),r.currentlyOpenMenu=n,r.disableOpenOnHover(),r.setKeyboardMode(!0))}})),i.$on("$destroy",function(){for(r.disableOpenOnHover();o.length;)o.shift()()}),this.setKeyboardMode(!0)},e.prototype.setKeyboardMode=function(e){e?this.$element[0].classList.add("md-keyboard-mode"):this.$element[0].classList.remove("md-keyboard-mode")},e.prototype.enableOpenOnHover=function(){if(!this.openOnHoverEnabled){var e=this;e.openOnHoverEnabled=!0,e.parentToolbar&&(e.parentToolbar.classList.add("md-has-open-menu"),e.$mdUtil.nextTick(function(){t.element(e.parentToolbar).on("click",e.handleParentClick)},!1)),t.element(e.getMenus()).on("mouseenter",e.handleMenuHover)}},e.prototype.handleMenuHover=function(e){this.setKeyboardMode(!1),this.openOnHoverEnabled&&this.scheduleOpenHoveredMenu(e)},e.prototype.disableOpenOnHover=function(){this.openOnHoverEnabled&&(this.openOnHoverEnabled=!1,this.parentToolbar&&(this.parentToolbar.classList.remove("md-has-open-menu"),t.element(this.parentToolbar).off("click",this.handleParentClick)),t.element(this.getMenus()).off("mouseenter",this.handleMenuHover))},e.prototype.scheduleOpenHoveredMenu=function(e){var n=t.element(e.currentTarget).controller("mdMenu");this.setKeyboardMode(!1),this.scheduleOpenMenu(n)},e.prototype.scheduleOpenMenu=function(e){var t=this,i=this.$timeout;e!=t.currentlyOpenMenu&&(i.cancel(t.pendingMenuOpen),t.pendingMenuOpen=i(function(){t.pendingMenuOpen=n,t.currentlyOpenMenu&&t.currentlyOpenMenu.close(!0,{closeAll:!0}),e.open()},200,!1))},e.prototype.handleKeyDown=function(e){var n=this.$mdConstant.KEY_CODE,i=this.currentlyOpenMenu,r=i&&i.isOpen;this.setKeyboardMode(!0);var o,a,s;switch(e.keyCode){case n.DOWN_ARROW:i?i.focusMenuContainer():this.openFocusedMenu(),o=!0;break;case n.UP_ARROW:i&&i.close(),o=!0;break;case n.LEFT_ARROW:a=this.focusMenu(-1),r&&(s=t.element(a).controller("mdMenu"),this.scheduleOpenMenu(s)),o=!0;break;case n.RIGHT_ARROW:a=this.focusMenu(1),r&&(s=t.element(a).controller("mdMenu"),this.scheduleOpenMenu(s)),o=!0}o&&(e&&e.preventDefault&&e.preventDefault(),e&&e.stopImmediatePropagation&&e.stopImmediatePropagation())},e.prototype.focusMenu=function(e){var t=this.getMenus(),n=this.getFocusedMenuIndex();-1==n&&(n=this.getOpenMenuIndex());var i=!1;if(-1==n?(n=0,i=!0):(e<0&&n>0||e>0&&n<t.length-e)&&(n+=e,i=!0),i)return t[n].querySelector("button").focus(),t[n]},e.prototype.openFocusedMenu=function(){var e=this.getFocusedMenu();e&&t.element(e).controller("mdMenu").open()},e.prototype.getMenus=function(){var e=this.$element;return this.$mdUtil.nodesToArray(e[0].children).filter(function(e){return"MD-MENU"==e.nodeName})},e.prototype.getFocusedMenu=function(){return this.getMenus()[this.getFocusedMenuIndex()]},e.prototype.getFocusedMenuIndex=function(){var e=this.$mdUtil.getClosest(this.$document[0].activeElement,"MD-MENU");return e?this.getMenus().indexOf(e):-1},e.prototype.getOpenMenuIndex=function(){for(var e=this.getMenus(),t=0;t<e.length;++t)if(e[t].classList.contains("md-open"))return t;return-1},e.prototype.handleParentClick=function(e){var n=this.querySelector("md-menu.md-open");n&&!n.contains(e.target)&&t.element(n).controller("mdMenu").close()}}(),function(){function e(e,n){return{restrict:"E",require:"mdMenuBar",controller:"MenuBarController",compile:function(i,r){return r.ariaRole||i[0].setAttribute("role","menubar"),t.forEach(i[0].children,function(n){if("MD-MENU"==n.nodeName){n.hasAttribute("md-position-mode")||(n.setAttribute("md-position-mode","left bottom"),n.querySelector("button, a, md-button").setAttribute("role","menuitem"));var i=e.nodesToArray(n.querySelectorAll("md-menu-content"));t.forEach(i,function(e){e.classList.add("md-menu-bar-menu"),e.classList.add("md-dense"),e.hasAttribute("width")||e.setAttribute("width",5)})}}),i.find("md-menu-item").addClass("md-in-menu-bar"),function(e,t,i,r){t.addClass("_md"),n(e,t),r.init()}}}}e.$inject=["$mdUtil","$mdTheming"],t.module("material.components.menuBar").directive("mdMenuBar",e)}(),function(){function e(){return{restrict:"E",compile:function(e,t){t.role||e[0].setAttribute("role","separator")}}}t.module("material.components.menuBar").directive("mdMenuDivider",e)}(),function(){function e(e,t,n){this.$element=t,this.$attrs=n,this.$scope=e}e.$inject=["$scope","$element","$attrs"],t.module("material.components.menuBar").controller("MenuItemController",e),e.prototype.init=function(e){var t=this.$element,n=this.$attrs;this.ngModel=e,"checkbox"!=n.type&&"radio"!=n.type||(this.mode=n.type,this.iconEl=t[0].children[0],this.buttonEl=t[0].children[1],e&&this.initClickListeners())},e.prototype.clearNgAria=function(){var e=this.$element[0],n=["role","tabindex","aria-invalid","aria-checked"];t.forEach(n,function(t){e.removeAttribute(t)})},e.prototype.initClickListeners=function(){function e(){if("radio"==s){var e=a.ngValue?o.$eval(a.ngValue):a.value;return r.$modelValue==e}return r.$modelValue}function n(e){e?c.off("click",u):c.on("click",u)}var i=this,r=this.ngModel,o=this.$scope,a=this.$attrs,s=(this.$element,this.mode);this.handleClick=t.bind(this,this.handleClick);var l=this.iconEl,c=t.element(this.buttonEl),u=this.handleClick;a.$observe("disabled",n),n(a.disabled),r.$render=function(){i.clearNgAria(),e()?(l.style.display="",c.attr("aria-checked","true")):(l.style.display="none",c.attr("aria-checked","false"))},o.$$postDigest(r.$render)},e.prototype.handleClick=function(e){var t,n=this.mode,i=this.ngModel,r=this.$attrs;"checkbox"==n?t=!i.$modelValue:"radio"==n&&(t=r.ngValue?this.$scope.$eval(r.ngValue):r.value),i.$setViewValue(t),i.$render()}}(),function(){function e(e,n){return{controller:"MenuItemController",require:["mdMenuItem","?ngModel"],priority:210,compile:function(i,r){function o(e,n,r){(r=r||i)instanceof t.element&&(r=r[0]),r.hasAttribute(e)||r.setAttribute(e,n)}var a=r.type;if("checkbox"!=a&&"radio"!=a||!i.hasClass("md-in-menu-bar"))o("role","menuitem",i[0].querySelector("md-button, button, a"));else{var s=i[0].textContent,l=t.element('<md-button type="button"></md-button>'),c='<md-icon md-svg-src="'+n.mdChecked+'"></md-icon>';l.html(s),l.attr("tabindex","0"),i.html(""),i.append(t.element(c)),i.append(l),i.addClass("md-indent").removeClass("md-in-menu-bar"),o("role","checkbox"==a?"menuitemcheckbox":"menuitemradio",l),function(n){var r=e.prefixer(n);t.forEach(r,function(e){if(i[0].hasAttribute(e)){var t=i[0].getAttribute(e);l[0].setAttribute(e,t),i[0].removeAttribute(e)}})}("ng-disabled")}return function(e,t,n,i){var r=i[0],o=i[1];r.init(o)}}}}e.$inject=["$mdUtil","$$mdSvgRegistry"],t.module("material.components.menuBar").directive("mdMenuItem",e)}(),function(){function e(e,n,i,r,o,a){function s(a,s,c){function m(t,i,o,s,c){var u=++M,f=r.now(),m=i-t,g=d(a.mdDiameter),v=g-h(g),b=o||n.easeFn,y=s||n.duration;i===t?T.attr("d",l(i,g,v,c)):C=p(function n(){var i=e.Math.max(0,e.Math.min(r.now()-f,y));T.attr("d",l(b(i,t,m,y),g,v,c)),u===M&&i<y&&(C=p(n))})}function _(){m(D,I,n.easeFnIndeterminate,n.durationIndeterminate,k),k=(k+I)%100;var e=D;D=-I,I=-e}function w(){x||(x=o(_,n.durationIndeterminate+50,0,!1),_(),s.addClass(y).removeAttr("aria-valuenow"))}function A(){x&&(o.cancel(x),x=null,s.removeClass(y))}var C,x,S=s[0],E=t.element(S.querySelector("svg")),T=t.element(S.querySelector("path")),D=n.startIndeterminate,I=n.endIndeterminate,k=0,M=0;i(s),s.toggleClass(b,c.hasOwnProperty("disabled")),a.mdMode===v&&w(),a.$on("$destroy",function(){A(),C&&f(C)}),a.$watchGroup(["value","mdMode",function(){var e=S.disabled;return!0===e||!1===e?e:t.isDefined(s.attr("disabled"))}],function(e,t){var n=e[1],i=e[2];if(i!==t[2]&&s.toggleClass(b,!!i),i)A();else if(n!==g&&n!==v&&(n=v,c.$set("mdMode",n)),n===v)w();else{var r=u(e[0]);A(),s.attr("aria-valuenow",r),m(u(t[0]),r)}}),a.$watch("mdDiameter",function(e){var t=d(e),n=h(t),i=t/2+"px",r={width:t+"px",height:t+"px"};E[0].setAttribute("viewBox","0 0 "+t+" "+t),E.css(r).css("transform-origin",i+" "+i+" "+i),s.css(r),T.css("stroke-width",n+"px")})}function l(e,t,n,i){var r,o=t/2,a=n/2,s=3.5999*(i||0),l=3.5999*e,u=c(o,a,s),d=c(o,a,l+s),h=l<0?0:1;return r=l<0?l>=-180?0:1:l<=180?0:1,"M"+u+"A"+a+","+a+" 0 "+r+","+h+" "+d}function c(t,n,i){var r=(i-90)*m;return t+n*e.Math.cos(r)+","+(t+n*e.Math.sin(r))}function u(t){return e.Math.max(0,e.Math.min(t||0,100))}function d(e){var t=n.progressSize;if(e){var i=parseFloat(e);return e.lastIndexOf("%")===e.length-1&&(i=i/100*t),i}return t}function h(e){return n.strokeWidth/100*e}var p=e.requestAnimationFrame||e.webkitRequestAnimationFrame||t.noop,f=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame||t.noop,m=e.Math.PI/180,g="determinate",v="indeterminate",b="_md-progress-circular-disabled",y="md-mode-indeterminate";return{restrict:"E",scope:{value:"@",mdDiameter:"@",mdMode:"@"},template:'<svg xmlns="http://www.w3.org/2000/svg"><path fill="none"/></svg>',compile:function(e,n){if(e.attr({"aria-valuemin":0,"aria-valuemax":100,role:"progressbar"}),t.isUndefined(n.mdMode)){var i=t.isDefined(n.value)?g:v;n.$set("mdMode",i)}else n.$set("mdMode",n.mdMode.trim());return s}}}e.$inject=["$window","$mdProgressCircular","$mdTheming","$mdUtil","$interval","$log"],t.module("material.components.progressCircular").directive("mdProgressCircular",e)}(),function(){function e(){function e(e,t,n,i){return n*e/i+t}function n(e,t,n,i){var r=(e/=i)*e,o=r*e;return t+n*(6*o*r+-15*r*r+10*o)}var i={progressSize:50,strokeWidth:10,duration:100,easeFn:e,durationIndeterminate:500,startIndeterminate:3,endIndeterminate:80,easeFnIndeterminate:n,easingPresets:{linearEase:e,materialEase:n}};return{configure:function(e){return i=t.extend(i,e||{})},$get:function(){return i}}}t.module("material.components.progressCircular").provider("$mdProgressCircular",e)}(),function(){function e(){function e(e,i,r,o){if(o){var a=o.getTabElementIndex(i),s=n(i,"md-tab-body").remove(),l=n(i,"md-tab-label").remove(),c=o.insertTab({scope:e,parent:e.$parent,index:a,element:i,template:s.html(),label:l.html()},a);e.select=e.select||t.noop,e.deselect=e.deselect||t.noop,e.$watch("active",function(e){e&&o.select(c.getIndex(),!0)}),e.$watch("disabled",function(){o.refreshIndex()}),e.$watch(function(){return o.getTabElementIndex(i)},function(e){c.index=e,o.updateTabOrder()}),e.$on("$destroy",function(){o.removeTab(c)})}}function n(e,n){for(var i=e[0].children,r=0,o=i.length;r<o;r++){var a=i[r];if(a.tagName===n.toUpperCase())return t.element(a)}return t.element()}return{require:"^?mdTabs",terminal:!0,compile:function(i,r){var o=n(i,"md-tab-label"),a=n(i,"md-tab-body");if(0==o.length&&(o=t.element("<md-tab-label></md-tab-label>"),r.label?o.text(r.label):o.append(i.contents()),0==a.length)){var s=i.contents().detach();(a=t.element("<md-tab-body></md-tab-body>")).append(s)}return i.append(o),a.html()&&i.append(a),e},scope:{active:"=?mdActive",disabled:"=?ngDisabled",select:"&?mdOnSelect",deselect:"&?mdOnDeselect"}}}t.module("material.components.tabs").directive("mdTab",e)}(),function(){function e(){return{require:"^?mdTabs",link:function(e,t,n,i){i&&i.attachRipple(e,t)}}}t.module("material.components.tabs").directive("mdTabItem",e)}(),function(){function e(){return{terminal:!0}}t.module("material.components.tabs").directive("mdTabLabel",e)}(),function(){function e(e){return{restrict:"A",compile:function(t,n){var i=e(n.mdTabScroll,null,!0);return function(e,t){t.on("mousewheel",function(t){e.$apply(function(){i(e,{$event:t})})})}}}}e.$inject=["$parse"],t.module("material.components.tabs").directive("mdTabScroll",e)}(),function(){function e(e,i,r,o,a,s,l,c,u,d){function h(){var e=c.$mdTabsTemplate,n=t.element(i[0].querySelector("md-tab-data"));n.html(e),u(n.contents())(le.parent),delete c.$mdTabsTemplate}function p(){t.element(r).on("resize",P),e.$on("$destroy",g)}function f(){e.$watch("$mdTabsCtrl.selectedIndex",x)}function m(e,t){function n(t){le[e]="false"!==t}var i=c.$normalize("md-"+e);t&&W(e,t),c.hasOwnProperty(i)&&n(c[i]),c.$observe(i,n)}function g(){he=!0,t.element(r).off("resize",P)}function v(e){var n=L();t.element(n.wrapper).toggleClass("md-stretch-tabs",F()),re()}function b(e){le.shouldCenterTabs=H()}function y(e,n){if(e!==n){var i=L();t.forEach(i.tabs,function(t){t.style.maxWidth=e+"px"}),s.nextTick(le.updateInkBarStyles)}}function _(e,t){e!==t&&(le.maxTabWidth=K(),le.shouldCenterTabs=H(),s.nextTick(function(){le.maxTabWidth=K(),J(le.selectedIndex)}))}function w(e){i[e?"removeClass":"addClass"]("md-no-tab-content")}function A(n){var i=L(),r=le.shouldCenterTabs?"":"-"+n+"px";t.element(i.paging).css(o.CSS.TRANSFORM,"translate3d("+r+", 0, 0)"),e.$broadcast("$mdTabsPaginationChanged")}function C(e,t){e!==t&&L().tabs[e]&&(J(),Z())}function x(t,n){t!==n&&(le.selectedIndex=j(t),le.lastSelectedIndex=n,le.updateInkBarStyles(),ie(),J(t),e.$broadcast("$mdTabsChanged"),le.tabs[n]&&le.tabs[n].scope.deselect(),le.tabs[t]&&le.tabs[t].scope.select())}function S(e){var t=i[0].getElementsByTagName("md-tab");return Array.prototype.indexOf.call(t,e[0])}function E(){E.watcher||(E.watcher=e.$watch(function(){s.nextTick(function(){E.watcher&&i.prop("offsetParent")&&(E.watcher(),E.watcher=null,P())},!1)}))}function T(e){switch(e.keyCode){case o.KEY_CODE.LEFT_ARROW:e.preventDefault(),X(-1,!0);break;case o.KEY_CODE.RIGHT_ARROW:e.preventDefault(),X(1,!0);break;case o.KEY_CODE.SPACE:case o.KEY_CODE.ENTER:e.preventDefault(),ce||D(le.focusIndex)}le.lastClick=!1}function D(e,t){ce||(le.focusIndex=le.selectedIndex=e),le.lastClick=!0,t&&le.noSelectClick||s.nextTick(function(){le.tabs[e].element.triggerHandler("click")},!1)}function I(e){le.shouldPaginate&&(e.preventDefault(),le.offsetLeft=ae(le.offsetLeft-e.wheelDelta))}function k(){var e,t,n=L(),i=n.canvas.clientWidth,r=i+le.offsetLeft;for(e=0;e<n.tabs.length&&!((t=n.tabs[e]).offsetLeft+t.offsetWidth>r);e++);i>t.offsetWidth?le.offsetLeft=ae(t.offsetLeft):le.offsetLeft=ae(t.offsetLeft+(t.offsetWidth-i+1))}function M(){var e,t,n=L();for(e=0;e<n.tabs.length&&!((t=n.tabs[e]).offsetLeft+t.offsetWidth>=le.offsetLeft);e++);n.canvas.clientWidth>t.offsetWidth?le.offsetLeft=ae(t.offsetLeft+t.offsetWidth-n.canvas.clientWidth):le.offsetLeft=ae(t.offsetLeft)}function P(){le.lastSelectedIndex=le.selectedIndex,le.offsetLeft=ae(le.offsetLeft),s.nextTick(function(){le.updateInkBarStyles(),z()})}function $(e){t.element(L().inkBar).toggleClass("ng-hide",e)}function N(e){i.toggleClass("md-dynamic-height",e)}function O(e){if(!he){var t=le.selectedIndex,n=le.tabs.splice(e.getIndex(),1)[0];ne(),le.selectedIndex===t&&(n.scope.deselect(),le.tabs[le.selectedIndex]&&le.tabs[le.selectedIndex].scope.select()),s.nextTick(function(){z(),le.offsetLeft=ae(le.offsetLeft)})}}function R(e,n){var i=pe,r={getIndex:function(){return le.tabs.indexOf(o)},isActive:function(){return this.getIndex()===le.selectedIndex},isLeft:function(){return this.getIndex()<le.selectedIndex},isRight:function(){return this.getIndex()>le.selectedIndex},shouldRender:function(){return!le.noDisconnect||this.isActive()},hasFocus:function(){return!le.lastClick&&le.hasFocus&&this.getIndex()===le.focusIndex},id:s.nextUid()},o=t.extend(r,e);return t.isDefined(n)?le.tabs.splice(n,0,o):le.tabs.push(o),ee(),te(),s.nextTick(function(){z(),i&&le.autoselect&&s.nextTick(function(){s.nextTick(function(){D(le.tabs.indexOf(o))})})}),o}function L(){var e={},t=i[0];return e.wrapper=t.querySelector("md-tabs-wrapper"),e.canvas=e.wrapper.querySelector("md-tabs-canvas"),e.paging=e.canvas.querySelector("md-pagination-wrapper"),e.inkBar=e.paging.querySelector("md-ink-bar"),e.contents=t.querySelectorAll("md-tabs-content-wrapper > md-tab-content"),e.tabs=e.paging.querySelectorAll("md-tab-item"),e.dummies=e.canvas.querySelectorAll("md-dummy-tab"),e}function G(){return le.offsetLeft>0}function B(){var e=L(),t=e.tabs[e.tabs.length-1];return t&&t.offsetLeft+t.offsetWidth>e.canvas.clientWidth+le.offsetLeft}function F(){switch(le.stretchTabs){case"always":return!0;case"never":return!1;default:return!le.shouldPaginate&&r.matchMedia("(max-width: 600px)").matches}}function H(){return le.centerTabs&&!le.shouldPaginate}function U(){if(le.noPagination||!pe)return!1;var e=i.prop("clientWidth");return t.forEach(L().dummies,function(t){e-=t.offsetWidth}),e<0}function j(e){if(-1===e)return-1;var t,n,i=Math.max(le.tabs.length-e,e);for(t=0;t<=i;t++){if((n=le.tabs[e+t])&&!0!==n.scope.disabled)return n.getIndex();if((n=le.tabs[e-t])&&!0!==n.scope.disabled)return n.getIndex()}return e}function W(e,t,n){Object.defineProperty(le,e,{get:function(){return n},set:function(e){var i=n;n=e,t&&t(e,i)}})}function z(){q(),le.maxTabWidth=K(),le.shouldPaginate=U()}function q(){var e=L();F()?t.element(e.paging).css("width",""):t.element(e.paging).css("width",V()+"px")}function V(){return Y(L().dummies)}function Y(e){var n=0;return t.forEach(e,function(e){n+=Math.max(e.offsetWidth,e.getBoundingClientRect().width)}),Math.ceil(n)}function K(){return i.prop("clientWidth")}function Q(){var e=le.tabs[le.selectedIndex],t=le.tabs[le.focusIndex];le.tabs=le.tabs.sort(function(e,t){return e.index-t.index}),le.selectedIndex=le.tabs.indexOf(e),le.focusIndex=le.tabs.indexOf(t)}function X(e,t){var n,i=t?"focusIndex":"selectedIndex";for(n=le[i]+e;le.tabs[n]&&le.tabs[n].scope.disabled;n+=e);le.tabs[n]&&(le[i]=n)}function Z(){L().dummies[le.focusIndex].focus()}function J(e){var t=L();if(null==e&&(e=le.focusIndex),t.tabs[e]&&!le.shouldCenterTabs){var n=t.tabs[e],i=n.offsetLeft,r=n.offsetWidth+i;le.offsetLeft=Math.max(le.offsetLeft,ae(r-t.canvas.clientWidth+64)),le.offsetLeft=Math.min(le.offsetLeft,ae(i))}}function ee(){de.forEach(function(e){s.nextTick(e)}),de=[]}function te(){var e=!1;t.forEach(le.tabs,function(t){t.template&&(e=!0)}),le.hasContent=e}function ne(){le.selectedIndex=j(le.selectedIndex),le.focusIndex=j(le.focusIndex)}function ie(){if(!le.dynamicHeight)return i.css("height","");if(!le.tabs.length)return de.push(ie);var e=L(),t=e.contents[le.selectedIndex],r=t?t.offsetHeight:0,o=e.wrapper.offsetHeight,a=r+o,c=i.prop("clientHeight");if(c!==a){"bottom"===i.attr("md-align-tabs")&&(c-=o,a-=o,i.attr("md-border-bottom")!==n&&++c),ce=!0;var u={height:c+"px"},d={height:a+"px"};i.css(u),l(i,{from:u,to:d,easing:"cubic-bezier(0.35, 0, 0.25, 1)",duration:.5}).start().done(function(){i.css({transition:"none",height:""}),s.nextTick(function(){i.css("transition","")}),ce=!1})}}function re(){var e=L();if(e.tabs[le.selectedIndex]){if(!le.tabs.length)return de.push(le.updateInkBarStyles);if(!i.prop("offsetParent"))return E();var n=le.selectedIndex,r=e.paging.offsetWidth,o=e.tabs[n],a=o.offsetLeft,l=r-a-o.offsetWidth;le.shouldCenterTabs&&r>Y(e.tabs)&&s.nextTick(re,!1),oe(),t.element(e.inkBar).css({left:a+"px",right:l+"px"})}else t.element(e.inkBar).css({left:"auto",right:"auto"})}function oe(){var e=L(),n=le.selectedIndex,i=le.lastSelectedIndex,r=t.element(e.inkBar);t.isNumber(i)&&r.toggleClass("md-left",n<i).toggleClass("md-right",n>i)}function ae(e){var t=L();if(!t.tabs.length||!le.shouldPaginate)return 0;var n=t.tabs[t.tabs.length-1],i=n.offsetLeft+n.offsetWidth;return e=Math.max(0,e),e=Math.min(i-t.canvas.clientWidth,e)}function se(e,n){var i=L(),r={colorElement:t.element(i.inkBar)};a.attach(e,n,r)}var le=this,ce=!1,ue=L(),de=[],he=!1,pe=!1;!function(e,t){var n=c.$normalize("md-"+e);t&&W(e,t),c.$observe(n,function(t){le[e]=t})}("stretchTabs",v),W("focusIndex",C,le.selectedIndex||0),W("offsetLeft",A,0),W("hasContent",w,!1),W("maxTabWidth",y,K()),W("shouldPaginate",_,!1),m("noInkBar",$),m("dynamicHeight",N),m("noPagination"),m("swipeContent"),m("noDisconnect"),m("autoselect"),m("noSelectClick"),m("centerTabs",b),m("enableDisconnect"),le.scope=e,le.parent=e.$parent,le.tabs=[],le.lastSelectedIndex=null,le.hasFocus=!1,le.lastClick=!0,le.shouldCenterTabs=H(),le.updatePagination=s.debounce(z,100),le.redirectFocus=Z,le.attachRipple=se,le.insertTab=R,le.removeTab=O,le.select=D,le.scroll=I,le.nextPage=k,le.previousPage=M,le.keydown=T,le.canPageForward=B,le.canPageBack=G,le.refreshIndex=ne,le.incrementIndex=X,le.getTabElementIndex=S,le.updateInkBarStyles=s.debounce(re,100),le.updateTabOrder=s.debounce(Q,100),function(){le.selectedIndex=le.selectedIndex||0,h(),f(),p(),d(i),s.nextTick(function(){ue=L(),ie(),J(),re(),le.tabs[le.selectedIndex]&&le.tabs[le.selectedIndex].scope.select(),pe=!0,z()})}()}e.$inject=["$scope","$element","$window","$mdConstant","$mdTabInkRipple","$mdUtil","$animateCss","$attrs","$compile","$mdTheming"],t.module("material.components.tabs").controller("MdTabsController",e)}(),function(){function e(e){return{scope:{selectedIndex:"=?mdSelected"},template:function(t,n){return n.$mdTabsTemplate=t.html(),'<md-tabs-wrapper> <md-tab-data></md-tab-data> <md-prev-button tabindex="-1" role="button" aria-label="Previous Page" aria-disabled="{{!$mdTabsCtrl.canPageBack()}}" ng-class="{ \'md-disabled\': !$mdTabsCtrl.canPageBack() }" ng-if="$mdTabsCtrl.shouldPaginate" ng-click="$mdTabsCtrl.previousPage()"> <md-icon md-svg-src="'+e.mdTabsArrow+'"></md-icon> </md-prev-button> <md-next-button tabindex="-1" role="button" aria-label="Next Page" aria-disabled="{{!$mdTabsCtrl.canPageForward()}}" ng-class="{ \'md-disabled\': !$mdTabsCtrl.canPageForward() }" ng-if="$mdTabsCtrl.shouldPaginate" ng-click="$mdTabsCtrl.nextPage()"> <md-icon md-svg-src="'+e.mdTabsArrow+'"></md-icon> </md-next-button> <md-tabs-canvas tabindex="{{ $mdTabsCtrl.hasFocus ? -1 : 0 }}" aria-activedescendant="tab-item-{{$mdTabsCtrl.tabs[$mdTabsCtrl.focusIndex].id}}" ng-focus="$mdTabsCtrl.redirectFocus()" ng-class="{ \'md-paginated\': $mdTabsCtrl.shouldPaginate, \'md-center-tabs\': $mdTabsCtrl.shouldCenterTabs }" ng-keydown="$mdTabsCtrl.keydown($event)" role="tablist"> <md-pagination-wrapper ng-class="{ \'md-center-tabs\': $mdTabsCtrl.shouldCenterTabs }" md-tab-scroll="$mdTabsCtrl.scroll($event)"> <md-tab-item tabindex="-1" class="md-tab" ng-repeat="tab in $mdTabsCtrl.tabs" role="tab" aria-controls="tab-content-{{::tab.id}}" aria-selected="{{tab.isActive()}}" aria-disabled="{{tab.scope.disabled || \'false\'}}" ng-click="$mdTabsCtrl.select(tab.getIndex())" ng-class="{ \'md-active\':    tab.isActive(), \'md-focused\':   tab.hasFocus(), \'md-disabled\':  tab.scope.disabled }" ng-disabled="tab.scope.disabled" md-swipe-left="$mdTabsCtrl.nextPage()" md-swipe-right="$mdTabsCtrl.previousPage()" md-tabs-template="::tab.label" md-scope="::tab.parent"></md-tab-item> <md-ink-bar></md-ink-bar> </md-pagination-wrapper> <md-tabs-dummy-wrapper class="md-visually-hidden md-dummy-wrapper"> <md-dummy-tab class="md-tab" tabindex="-1" id="tab-item-{{::tab.id}}" role="tab" aria-controls="tab-content-{{::tab.id}}" aria-selected="{{tab.isActive()}}" aria-disabled="{{tab.scope.disabled || \'false\'}}" ng-focus="$mdTabsCtrl.hasFocus = true" ng-blur="$mdTabsCtrl.hasFocus = false" ng-repeat="tab in $mdTabsCtrl.tabs" md-tabs-template="::tab.label" md-scope="::tab.parent"></md-dummy-tab> </md-tabs-dummy-wrapper> </md-tabs-canvas> </md-tabs-wrapper> <md-tabs-content-wrapper ng-show="$mdTabsCtrl.hasContent && $mdTabsCtrl.selectedIndex >= 0" class="_md"> <md-tab-content id="tab-content-{{::tab.id}}" class="_md" role="tabpanel" aria-labelledby="tab-item-{{::tab.id}}" md-swipe-left="$mdTabsCtrl.swipeContent && $mdTabsCtrl.incrementIndex(1)" md-swipe-right="$mdTabsCtrl.swipeContent && $mdTabsCtrl.incrementIndex(-1)" ng-if="$mdTabsCtrl.hasContent" ng-repeat="(index, tab) in $mdTabsCtrl.tabs" ng-class="{ \'md-no-transition\': $mdTabsCtrl.lastSelectedIndex == null, \'md-active\':        tab.isActive(), \'md-left\':          tab.isLeft(), \'md-right\':         tab.isRight(), \'md-no-scroll\':     $mdTabsCtrl.dynamicHeight }"> <div md-tabs-template="::tab.template" md-connected-if="tab.isActive()" md-scope="::tab.parent" ng-if="$mdTabsCtrl.enableDisconnect || tab.shouldRender()"></div> </md-tab-content> </md-tabs-content-wrapper>'},controller:"MdTabsController",controllerAs:"$mdTabsCtrl",bindToController:!0}}e.$inject=["$$mdSvgRegistry"],t.module("material.components.tabs").directive("mdTabs",e)}(),function(){function e(e,t){return{require:"^?mdTabs",link:function(n,i,r,o){if(o){var a,s,l=function(){o.updatePagination(),o.updateInkBarStyles()};if("MutationObserver"in t){var c={childList:!0,subtree:!0,characterData:!0};(a=new MutationObserver(l)).observe(i[0],c),s=a.disconnect.bind(a)}else{var u=e.debounce(l,15,null,!1);i.on("DOMSubtreeModified",u),s=i.off.bind(i,"DOMSubtreeModified",u)}n.$on("$destroy",function(){s()})}}}}e.$inject=["$mdUtil","$window"],t.module("material.components.tabs").directive("mdTabsDummyWrapper",e)}(),function(){function e(e,t){function n(n,i,r,o){function a(){n.$watch("connected",function(e){!1===e?s():l()}),n.$on("$destroy",l)}function s(){o.enableDisconnect&&t.disconnectScope(c)}function l(){o.enableDisconnect&&t.reconnectScope(c)}if(o){var c=o.enableDisconnect?n.compileScope.$new():n.compileScope;return i.html(n.template),e(i.contents())(c),t.nextTick(a)}}return{restrict:"A",link:n,scope:{template:"=mdTabsTemplate",connected:"=?mdConnectedIf",compileScope:"=mdScope"},require:"^?mdTabs"}}e.$inject=["$compile","$mdUtil"],t.module("material.components.tabs").directive("mdTabsTemplate",e)}(),function(){t.module("material.core").constant("$MD_THEME_CSS","md-autocomplete.md-THEME_NAME-theme {  background: '{{background-A100}}'; }  md-autocomplete.md-THEME_NAME-theme[disabled]:not([md-floating-label]) {    background: '{{background-100}}'; }  md-autocomplete.md-THEME_NAME-theme button md-icon path {    fill: '{{background-600}}'; }  md-autocomplete.md-THEME_NAME-theme button:after {    background: '{{background-600-0.3}}'; }.md-autocomplete-suggestions-container.md-THEME_NAME-theme {  background: '{{background-A100}}'; }  .md-autocomplete-suggestions-container.md-THEME_NAME-theme li {    color: '{{background-900}}'; }    .md-autocomplete-suggestions-container.md-THEME_NAME-theme li .highlight {      color: '{{background-600}}'; }    .md-autocomplete-suggestions-container.md-THEME_NAME-theme li:hover, .md-autocomplete-suggestions-container.md-THEME_NAME-theme li.selected {      background: '{{background-200}}'; }md-backdrop {  background-color: '{{background-900-0.0}}'; }  md-backdrop.md-opaque.md-THEME_NAME-theme {    background-color: '{{background-900-1.0}}'; }md-bottom-sheet.md-THEME_NAME-theme {  background-color: '{{background-50}}';  border-top-color: '{{background-300}}'; }  md-bottom-sheet.md-THEME_NAME-theme.md-list md-list-item {    color: '{{foreground-1}}'; }  md-bottom-sheet.md-THEME_NAME-theme .md-subheader {    background-color: '{{background-50}}'; }  md-bottom-sheet.md-THEME_NAME-theme .md-subheader {    color: '{{foreground-1}}'; }.md-button.md-THEME_NAME-theme:not([disabled]):hover {  background-color: '{{background-500-0.2}}'; }.md-button.md-THEME_NAME-theme:not([disabled]).md-focused {  background-color: '{{background-500-0.2}}'; }.md-button.md-THEME_NAME-theme:not([disabled]).md-icon-button:hover {  background-color: transparent; }.md-button.md-THEME_NAME-theme.md-fab {  background-color: '{{accent-color}}';  color: '{{accent-contrast}}'; }  .md-button.md-THEME_NAME-theme.md-fab md-icon {    color: '{{accent-contrast}}'; }  .md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover {    background-color: '{{accent-A700}}'; }  .md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused {    background-color: '{{accent-A700}}'; }.md-button.md-THEME_NAME-theme.md-primary {  color: '{{primary-color}}'; }  .md-button.md-THEME_NAME-theme.md-primary.md-raised, .md-button.md-THEME_NAME-theme.md-primary.md-fab {    color: '{{primary-contrast}}';    background-color: '{{primary-color}}'; }    .md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]) md-icon, .md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]) md-icon {      color: '{{primary-contrast}}'; }    .md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]):hover, .md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]):hover {      background-color: '{{primary-600}}'; }    .md-button.md-THEME_NAME-theme.md-primary.md-raised:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme.md-primary.md-fab:not([disabled]).md-focused {      background-color: '{{primary-600}}'; }  .md-button.md-THEME_NAME-theme.md-primary:not([disabled]) md-icon {    color: '{{primary-color}}'; }.md-button.md-THEME_NAME-theme.md-fab {  background-color: '{{accent-color}}';  color: '{{accent-contrast}}'; }  .md-button.md-THEME_NAME-theme.md-fab:not([disabled]) .md-icon {    color: '{{accent-contrast}}'; }  .md-button.md-THEME_NAME-theme.md-fab:not([disabled]):hover {    background-color: '{{accent-A700}}'; }  .md-button.md-THEME_NAME-theme.md-fab:not([disabled]).md-focused {    background-color: '{{accent-A700}}'; }.md-button.md-THEME_NAME-theme.md-raised {  color: '{{background-900}}';  background-color: '{{background-50}}'; }  .md-button.md-THEME_NAME-theme.md-raised:not([disabled]) md-icon {    color: '{{background-900}}'; }  .md-button.md-THEME_NAME-theme.md-raised:not([disabled]):hover {    background-color: '{{background-50}}'; }  .md-button.md-THEME_NAME-theme.md-raised:not([disabled]).md-focused {    background-color: '{{background-200}}'; }.md-button.md-THEME_NAME-theme.md-warn {  color: '{{warn-color}}'; }  .md-button.md-THEME_NAME-theme.md-warn.md-raised, .md-button.md-THEME_NAME-theme.md-warn.md-fab {    color: '{{warn-contrast}}';    background-color: '{{warn-color}}'; }    .md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]) md-icon, .md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]) md-icon {      color: '{{warn-contrast}}'; }    .md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]):hover, .md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]):hover {      background-color: '{{warn-600}}'; }    .md-button.md-THEME_NAME-theme.md-warn.md-raised:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme.md-warn.md-fab:not([disabled]).md-focused {      background-color: '{{warn-600}}'; }  .md-button.md-THEME_NAME-theme.md-warn:not([disabled]) md-icon {    color: '{{warn-color}}'; }.md-button.md-THEME_NAME-theme.md-accent {  color: '{{accent-color}}'; }  .md-button.md-THEME_NAME-theme.md-accent.md-raised, .md-button.md-THEME_NAME-theme.md-accent.md-fab {    color: '{{accent-contrast}}';    background-color: '{{accent-color}}'; }    .md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]) md-icon, .md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]) md-icon {      color: '{{accent-contrast}}'; }    .md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]):hover, .md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]):hover {      background-color: '{{accent-A700}}'; }    .md-button.md-THEME_NAME-theme.md-accent.md-raised:not([disabled]).md-focused, .md-button.md-THEME_NAME-theme.md-accent.md-fab:not([disabled]).md-focused {      background-color: '{{accent-A700}}'; }  .md-button.md-THEME_NAME-theme.md-accent:not([disabled]) md-icon {    color: '{{accent-color}}'; }.md-button.md-THEME_NAME-theme[disabled], .md-button.md-THEME_NAME-theme.md-raised[disabled], .md-button.md-THEME_NAME-theme.md-fab[disabled], .md-button.md-THEME_NAME-theme.md-accent[disabled], .md-button.md-THEME_NAME-theme.md-warn[disabled] {  color: '{{foreground-3}}';  cursor: default; }  .md-button.md-THEME_NAME-theme[disabled] md-icon, .md-button.md-THEME_NAME-theme.md-raised[disabled] md-icon, .md-button.md-THEME_NAME-theme.md-fab[disabled] md-icon, .md-button.md-THEME_NAME-theme.md-accent[disabled] md-icon, .md-button.md-THEME_NAME-theme.md-warn[disabled] md-icon {    color: '{{foreground-3}}'; }.md-button.md-THEME_NAME-theme.md-raised[disabled], .md-button.md-THEME_NAME-theme.md-fab[disabled] {  background-color: '{{foreground-4}}'; }.md-button.md-THEME_NAME-theme[disabled] {  background-color: transparent; }._md a.md-THEME_NAME-theme:not(.md-button).md-primary {  color: '{{primary-color}}'; }  ._md a.md-THEME_NAME-theme:not(.md-button).md-primary:hover {    color: '{{primary-700}}'; }._md a.md-THEME_NAME-theme:not(.md-button).md-accent {  color: '{{accent-color}}'; }  ._md a.md-THEME_NAME-theme:not(.md-button).md-accent:hover {    color: '{{accent-700}}'; }._md a.md-THEME_NAME-theme:not(.md-button).md-accent {  color: '{{accent-color}}'; }  ._md a.md-THEME_NAME-theme:not(.md-button).md-accent:hover {    color: '{{accent-A700}}'; }._md a.md-THEME_NAME-theme:not(.md-button).md-warn {  color: '{{warn-color}}'; }  ._md a.md-THEME_NAME-theme:not(.md-button).md-warn:hover {    color: '{{warn-700}}'; }md-card.md-THEME_NAME-theme {  color: '{{foreground-1}}';  background-color: '{{background-hue-1}}';  border-radius: 2px; }  md-card.md-THEME_NAME-theme .md-card-image {    border-radius: 2px 2px 0 0; }  md-card.md-THEME_NAME-theme md-card-header md-card-avatar md-icon {    color: '{{background-color}}';    background-color: '{{foreground-3}}'; }  md-card.md-THEME_NAME-theme md-card-header md-card-header-text .md-subhead {    color: '{{foreground-2}}'; }  md-card.md-THEME_NAME-theme md-card-title md-card-title-text:not(:only-child) .md-subhead {    color: '{{foreground-2}}'; }md-chips.md-THEME_NAME-theme .md-chips {  box-shadow: 0 1px '{{foreground-4}}'; }  md-chips.md-THEME_NAME-theme .md-chips.md-focused {    box-shadow: 0 2px '{{primary-color}}'; }  md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input {    color: '{{foreground-1}}'; }    md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input::-webkit-input-placeholder {      color: '{{foreground-3}}'; }    md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input:-moz-placeholder {      color: '{{foreground-3}}'; }    md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input::-moz-placeholder {      color: '{{foreground-3}}'; }    md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input:-ms-input-placeholder {      color: '{{foreground-3}}'; }    md-chips.md-THEME_NAME-theme .md-chips .md-chip-input-container input::-webkit-input-placeholder {      color: '{{foreground-3}}'; }md-chips.md-THEME_NAME-theme md-chip {  background: '{{background-300}}';  color: '{{background-800}}'; }  md-chips.md-THEME_NAME-theme md-chip md-icon {    color: '{{background-700}}'; }  md-chips.md-THEME_NAME-theme md-chip.md-focused {    background: '{{primary-color}}';    color: '{{primary-contrast}}'; }    md-chips.md-THEME_NAME-theme md-chip.md-focused md-icon {      color: '{{primary-contrast}}'; }  md-chips.md-THEME_NAME-theme md-chip._md-chip-editing {    background: transparent;    color: '{{background-800}}'; }md-chips.md-THEME_NAME-theme md-chip-remove .md-button md-icon path {  fill: '{{background-500}}'; }.md-contact-suggestion span.md-contact-email {  color: '{{background-400}}'; }md-checkbox.md-THEME_NAME-theme .md-ripple {  color: '{{accent-A700}}'; }md-checkbox.md-THEME_NAME-theme.md-checked .md-ripple {  color: '{{background-600}}'; }md-checkbox.md-THEME_NAME-theme.md-checked.md-focused .md-container:before {  background-color: '{{accent-color-0.26}}'; }md-checkbox.md-THEME_NAME-theme .md-ink-ripple {  color: '{{foreground-2}}'; }md-checkbox.md-THEME_NAME-theme.md-checked .md-ink-ripple {  color: '{{accent-color-0.87}}'; }md-checkbox.md-THEME_NAME-theme:not(.md-checked) .md-icon {  border-color: '{{foreground-2}}'; }md-checkbox.md-THEME_NAME-theme.md-checked .md-icon {  background-color: '{{accent-color-0.87}}'; }md-checkbox.md-THEME_NAME-theme.md-checked .md-icon:after {  border-color: '{{accent-contrast-0.87}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-ripple {  color: '{{primary-600}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ripple {  color: '{{background-600}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-ink-ripple {  color: '{{foreground-2}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple {  color: '{{primary-color-0.87}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary:not(.md-checked) .md-icon {  border-color: '{{foreground-2}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-icon {  background-color: '{{primary-color-0.87}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked.md-focused .md-container:before {  background-color: '{{primary-color-0.26}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-icon:after {  border-color: '{{primary-contrast-0.87}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-primary .md-indeterminate[disabled] .md-container {  color: '{{foreground-3}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn .md-ripple {  color: '{{warn-600}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn .md-ink-ripple {  color: '{{foreground-2}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple {  color: '{{warn-color-0.87}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn:not(.md-checked) .md-icon {  border-color: '{{foreground-2}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-icon {  background-color: '{{warn-color-0.87}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked.md-focused:not([disabled]) .md-container:before {  background-color: '{{warn-color-0.26}}'; }md-checkbox.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-icon:after {  border-color: '{{background-200}}'; }md-checkbox.md-THEME_NAME-theme[disabled]:not(.md-checked) .md-icon {  border-color: '{{foreground-3}}'; }md-checkbox.md-THEME_NAME-theme[disabled].md-checked .md-icon {  background-color: '{{foreground-3}}'; }md-checkbox.md-THEME_NAME-theme[disabled].md-checked .md-icon:after {  border-color: '{{background-200}}'; }md-checkbox.md-THEME_NAME-theme[disabled] .md-icon:after {  border-color: '{{foreground-3}}'; }md-checkbox.md-THEME_NAME-theme[disabled] .md-label {  color: '{{foreground-3}}'; }md-content.md-THEME_NAME-theme {  color: '{{foreground-1}}';  background-color: '{{background-default}}'; }/** Theme styles for mdCalendar. */.md-calendar.md-THEME_NAME-theme {  background: '{{background-A100}}';  color: '{{background-A200-0.87}}'; }  .md-calendar.md-THEME_NAME-theme tr:last-child td {    border-bottom-color: '{{background-200}}'; }.md-THEME_NAME-theme .md-calendar-day-header {  background: '{{background-300}}';  color: '{{background-A200-0.87}}'; }.md-THEME_NAME-theme .md-calendar-date.md-calendar-date-today .md-calendar-date-selection-indicator {  border: 1px solid '{{primary-500}}'; }.md-THEME_NAME-theme .md-calendar-date.md-calendar-date-today.md-calendar-date-disabled {  color: '{{primary-500-0.6}}'; }.md-calendar-date.md-focus .md-THEME_NAME-theme .md-calendar-date-selection-indicator, .md-THEME_NAME-theme .md-calendar-date-selection-indicator:hover {  background: '{{background-300}}'; }.md-THEME_NAME-theme .md-calendar-date.md-calendar-selected-date .md-calendar-date-selection-indicator,.md-THEME_NAME-theme .md-calendar-date.md-focus.md-calendar-selected-date .md-calendar-date-selection-indicator {  background: '{{primary-500}}';  color: '{{primary-500-contrast}}';  border-color: transparent; }.md-THEME_NAME-theme .md-calendar-date-disabled,.md-THEME_NAME-theme .md-calendar-month-label-disabled {  color: '{{background-A200-0.435}}'; }/** Theme styles for mdDatepicker. */.md-THEME_NAME-theme .md-datepicker-input {  color: '{{foreground-1}}'; }  .md-THEME_NAME-theme .md-datepicker-input::-webkit-input-placeholder {    color: '{{foreground-3}}'; }  .md-THEME_NAME-theme .md-datepicker-input:-moz-placeholder {    color: '{{foreground-3}}'; }  .md-THEME_NAME-theme .md-datepicker-input::-moz-placeholder {    color: '{{foreground-3}}'; }  .md-THEME_NAME-theme .md-datepicker-input:-ms-input-placeholder {    color: '{{foreground-3}}'; }  .md-THEME_NAME-theme .md-datepicker-input::-webkit-input-placeholder {    color: '{{foreground-3}}'; }.md-THEME_NAME-theme .md-datepicker-input-container {  border-bottom-color: '{{foreground-4}}'; }  .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused {    border-bottom-color: '{{primary-color}}'; }    .md-accent .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused {      border-bottom-color: '{{accent-color}}'; }    .md-warn .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-focused {      border-bottom-color: '{{warn-A700}}'; }  .md-THEME_NAME-theme .md-datepicker-input-container.md-datepicker-invalid {    border-bottom-color: '{{warn-A700}}'; }.md-THEME_NAME-theme .md-datepicker-calendar-pane {  border-color: '{{background-hue-1}}'; }.md-THEME_NAME-theme .md-datepicker-triangle-button .md-datepicker-expand-triangle {  border-top-color: '{{foreground-3}}'; }.md-THEME_NAME-theme .md-datepicker-triangle-button:hover .md-datepicker-expand-triangle {  border-top-color: '{{foreground-2}}'; }.md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon {  color: '{{primary-color}}'; }.md-THEME_NAME-theme .md-datepicker-open.md-accent .md-datepicker-calendar-icon, .md-accent .md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon {  color: '{{accent-color}}'; }.md-THEME_NAME-theme .md-datepicker-open.md-warn .md-datepicker-calendar-icon, .md-warn .md-THEME_NAME-theme .md-datepicker-open .md-datepicker-calendar-icon {  color: '{{warn-A700}}'; }.md-THEME_NAME-theme .md-datepicker-calendar {  background: '{{background-A100}}'; }.md-THEME_NAME-theme .md-datepicker-input-mask-opaque {  box-shadow: 0 0 0 9999px \"{{background-hue-1}}\"; }.md-THEME_NAME-theme .md-datepicker-open .md-datepicker-input-container {  background: \"{{background-hue-1}}\"; }md-dialog.md-THEME_NAME-theme {  border-radius: 4px;  background-color: '{{background-hue-1}}';  color: '{{foreground-1}}'; }  md-dialog.md-THEME_NAME-theme.md-content-overflow .md-actions, md-dialog.md-THEME_NAME-theme.md-content-overflow md-dialog-actions {    border-top-color: '{{foreground-4}}'; }md-divider.md-THEME_NAME-theme {  border-top-color: '{{foreground-4}}'; }.layout-row > md-divider.md-THEME_NAME-theme,.layout-xs-row > md-divider.md-THEME_NAME-theme, .layout-gt-xs-row > md-divider.md-THEME_NAME-theme,.layout-sm-row > md-divider.md-THEME_NAME-theme, .layout-gt-sm-row > md-divider.md-THEME_NAME-theme,.layout-md-row > md-divider.md-THEME_NAME-theme, .layout-gt-md-row > md-divider.md-THEME_NAME-theme,.layout-lg-row > md-divider.md-THEME_NAME-theme, .layout-gt-lg-row > md-divider.md-THEME_NAME-theme,.layout-xl-row > md-divider.md-THEME_NAME-theme {  border-right-color: '{{foreground-4}}'; }md-icon.md-THEME_NAME-theme {  color: '{{foreground-2}}'; }  md-icon.md-THEME_NAME-theme.md-primary {    color: '{{primary-color}}'; }  md-icon.md-THEME_NAME-theme.md-accent {    color: '{{accent-color}}'; }  md-icon.md-THEME_NAME-theme.md-warn {    color: '{{warn-color}}'; }md-input-container.md-THEME_NAME-theme .md-input {  color: '{{foreground-1}}';  border-color: '{{foreground-4}}'; }  md-input-container.md-THEME_NAME-theme .md-input::-webkit-input-placeholder {    color: '{{foreground-3}}'; }  md-input-container.md-THEME_NAME-theme .md-input:-moz-placeholder {    color: '{{foreground-3}}'; }  md-input-container.md-THEME_NAME-theme .md-input::-moz-placeholder {    color: '{{foreground-3}}'; }  md-input-container.md-THEME_NAME-theme .md-input:-ms-input-placeholder {    color: '{{foreground-3}}'; }  md-input-container.md-THEME_NAME-theme .md-input::-webkit-input-placeholder {    color: '{{foreground-3}}'; }md-input-container.md-THEME_NAME-theme > md-icon {  color: '{{foreground-1}}'; }md-input-container.md-THEME_NAME-theme label,md-input-container.md-THEME_NAME-theme .md-placeholder {  color: '{{foreground-3}}'; }md-input-container.md-THEME_NAME-theme label.md-required:after {  color: '{{warn-A700}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-focused):not(.md-input-invalid) label.md-required:after {  color: '{{foreground-2}}'; }md-input-container.md-THEME_NAME-theme .md-input-messages-animation, md-input-container.md-THEME_NAME-theme .md-input-message-animation {  color: '{{warn-A700}}'; }  md-input-container.md-THEME_NAME-theme .md-input-messages-animation .md-char-counter, md-input-container.md-THEME_NAME-theme .md-input-message-animation .md-char-counter {    color: '{{foreground-1}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-has-value label {  color: '{{foreground-2}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused .md-input, md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-resized .md-input {  border-color: '{{primary-color}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused label,md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused md-icon {  color: '{{primary-color}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent .md-input {  border-color: '{{accent-color}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent label,md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-accent md-icon {  color: '{{accent-color}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn .md-input {  border-color: '{{warn-A700}}'; }md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn label,md-input-container.md-THEME_NAME-theme:not(.md-input-invalid).md-input-focused.md-warn md-icon {  color: '{{warn-A700}}'; }md-input-container.md-THEME_NAME-theme.md-input-invalid .md-input {  border-color: '{{warn-A700}}'; }md-input-container.md-THEME_NAME-theme.md-input-invalid label,md-input-container.md-THEME_NAME-theme.md-input-invalid .md-input-message-animation,md-input-container.md-THEME_NAME-theme.md-input-invalid .md-char-counter {  color: '{{warn-A700}}'; }md-input-container.md-THEME_NAME-theme .md-input[disabled],[disabled] md-input-container.md-THEME_NAME-theme .md-input {  border-bottom-color: transparent;  color: '{{foreground-3}}';  background-image: linear-gradient(to right, \"{{foreground-3}}\" 0%, \"{{foreground-3}}\" 33%, transparent 0%);  background-image: -ms-linear-gradient(left, transparent 0%, \"{{foreground-3}}\" 100%); }md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text h3, md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text h4,md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text h3,md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text h4 {  color: '{{foreground-1}}'; }md-list.md-THEME_NAME-theme md-list-item.md-2-line .md-list-item-text p,md-list.md-THEME_NAME-theme md-list-item.md-3-line .md-list-item-text p {  color: '{{foreground-2}}'; }md-list.md-THEME_NAME-theme .md-proxy-focus.md-focused div.md-no-style {  background-color: '{{background-100}}'; }md-list.md-THEME_NAME-theme md-list-item .md-avatar-icon {  background-color: '{{foreground-3}}';  color: '{{background-color}}'; }md-list.md-THEME_NAME-theme md-list-item > md-icon {  color: '{{foreground-2}}'; }  md-list.md-THEME_NAME-theme md-list-item > md-icon.md-highlight {    color: '{{primary-color}}'; }    md-list.md-THEME_NAME-theme md-list-item > md-icon.md-highlight.md-accent {      color: '{{accent-color}}'; }md-menu-content.md-THEME_NAME-theme {  background-color: '{{background-A100}}'; }  md-menu-content.md-THEME_NAME-theme md-menu-item {    color: '{{background-A200-0.87}}'; }    md-menu-content.md-THEME_NAME-theme md-menu-item md-icon {      color: '{{background-A200-0.54}}'; }    md-menu-content.md-THEME_NAME-theme md-menu-item .md-button[disabled] {      color: '{{background-A200-0.25}}'; }      md-menu-content.md-THEME_NAME-theme md-menu-item .md-button[disabled] md-icon {        color: '{{background-A200-0.25}}'; }  md-menu-content.md-THEME_NAME-theme md-menu-divider {    background-color: '{{background-A200-0.11}}'; }md-menu-bar.md-THEME_NAME-theme > button.md-button {  color: '{{foreground-2}}';  border-radius: 2px; }md-menu-bar.md-THEME_NAME-theme md-menu.md-open > button, md-menu-bar.md-THEME_NAME-theme md-menu > button:focus {  outline: none;  background: '{{background-200}}'; }md-menu-bar.md-THEME_NAME-theme.md-open:not(.md-keyboard-mode) md-menu:hover > button {  background-color: '{{ background-500-0.2}}'; }md-menu-bar.md-THEME_NAME-theme:not(.md-keyboard-mode):not(.md-open) md-menu button:hover,md-menu-bar.md-THEME_NAME-theme:not(.md-keyboard-mode):not(.md-open) md-menu button:focus {  background: transparent; }md-menu-content.md-THEME_NAME-theme .md-menu > .md-button:after {  color: '{{background-A200-0.54}}'; }md-menu-content.md-THEME_NAME-theme .md-menu.md-open > .md-button {  background-color: '{{ background-500-0.2}}'; }md-toolbar.md-THEME_NAME-theme.md-menu-toolbar {  background-color: '{{background-A100}}';  color: '{{background-A200}}'; }  md-toolbar.md-THEME_NAME-theme.md-menu-toolbar md-toolbar-filler {    background-color: '{{primary-color}}';    color: '{{background-A100-0.87}}'; }    md-toolbar.md-THEME_NAME-theme.md-menu-toolbar md-toolbar-filler md-icon {      color: '{{background-A100-0.87}}'; }md-nav-bar.md-THEME_NAME-theme .md-nav-bar {  background-color: transparent;  border-color: '{{foreground-4}}'; }md-nav-bar.md-THEME_NAME-theme .md-button._md-nav-button.md-unselected {  color: '{{foreground-2}}'; }md-nav-bar.md-THEME_NAME-theme md-nav-ink-bar {  color: '{{accent-color}}';  background: '{{accent-color}}'; }.md-panel {  background-color: '{{background-900-0.0}}'; }  .md-panel._md-panel-backdrop.md-THEME_NAME-theme {    background-color: '{{background-900-1.0}}'; }md-progress-circular.md-THEME_NAME-theme path {  stroke: '{{primary-color}}'; }md-progress-circular.md-THEME_NAME-theme.md-warn path {  stroke: '{{warn-color}}'; }md-progress-circular.md-THEME_NAME-theme.md-accent path {  stroke: '{{accent-color}}'; }md-progress-linear.md-THEME_NAME-theme .md-container {  background-color: '{{primary-100}}'; }md-progress-linear.md-THEME_NAME-theme .md-bar {  background-color: '{{primary-color}}'; }md-progress-linear.md-THEME_NAME-theme.md-warn .md-container {  background-color: '{{warn-100}}'; }md-progress-linear.md-THEME_NAME-theme.md-warn .md-bar {  background-color: '{{warn-color}}'; }md-progress-linear.md-THEME_NAME-theme.md-accent .md-container {  background-color: '{{accent-100}}'; }md-progress-linear.md-THEME_NAME-theme.md-accent .md-bar {  background-color: '{{accent-color}}'; }md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-warn .md-bar1 {  background-color: '{{warn-100}}'; }md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-warn .md-dashed:before {  background: radial-gradient(\"{{warn-100}}\" 0%, \"{{warn-100}}\" 16%, transparent 42%); }md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-accent .md-bar1 {  background-color: '{{accent-100}}'; }md-progress-linear.md-THEME_NAME-theme[md-mode=buffer].md-accent .md-dashed:before {  background: radial-gradient(\"{{accent-100}}\" 0%, \"{{accent-100}}\" 16%, transparent 42%); }md-radio-button.md-THEME_NAME-theme .md-off {  border-color: '{{foreground-2}}'; }md-radio-button.md-THEME_NAME-theme .md-on {  background-color: '{{accent-color-0.87}}'; }md-radio-button.md-THEME_NAME-theme.md-checked .md-off {  border-color: '{{accent-color-0.87}}'; }md-radio-button.md-THEME_NAME-theme.md-checked .md-ink-ripple {  color: '{{accent-color-0.87}}'; }md-radio-button.md-THEME_NAME-theme .md-container .md-ripple {  color: '{{accent-A700}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-on, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-on,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-on,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-on {  background-color: '{{primary-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-off {  border-color: '{{primary-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary.md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary.md-checked .md-ink-ripple {  color: '{{primary-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-primary .md-container .md-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-primary .md-container .md-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-primary .md-container .md-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-primary .md-container .md-ripple {  color: '{{primary-600}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-on, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-on,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-on,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-on {  background-color: '{{warn-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-off, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-off,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-off {  border-color: '{{warn-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-ink-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn.md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-checked .md-ink-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn.md-checked .md-ink-ripple {  color: '{{warn-color-0.87}}'; }md-radio-group.md-THEME_NAME-theme:not([disabled]) .md-warn .md-container .md-ripple, md-radio-group.md-THEME_NAME-theme:not([disabled]).md-warn .md-container .md-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]) .md-warn .md-container .md-ripple,md-radio-button.md-THEME_NAME-theme:not([disabled]).md-warn .md-container .md-ripple {  color: '{{warn-600}}'; }md-radio-group.md-THEME_NAME-theme[disabled],md-radio-button.md-THEME_NAME-theme[disabled] {  color: '{{foreground-3}}'; }  md-radio-group.md-THEME_NAME-theme[disabled] .md-container .md-off,  md-radio-button.md-THEME_NAME-theme[disabled] .md-container .md-off {    border-color: '{{foreground-3}}'; }  md-radio-group.md-THEME_NAME-theme[disabled] .md-container .md-on,  md-radio-button.md-THEME_NAME-theme[disabled] .md-container .md-on {    border-color: '{{foreground-3}}'; }md-radio-group.md-THEME_NAME-theme .md-checked .md-ink-ripple {  color: '{{accent-color-0.26}}'; }md-radio-group.md-THEME_NAME-theme.md-primary .md-checked:not([disabled]) .md-ink-ripple, md-radio-group.md-THEME_NAME-theme .md-checked:not([disabled]).md-primary .md-ink-ripple {  color: '{{primary-color-0.26}}'; }md-radio-group.md-THEME_NAME-theme .md-checked.md-primary .md-ink-ripple {  color: '{{warn-color-0.26}}'; }md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked .md-container:before {  background-color: '{{accent-color-0.26}}'; }md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty).md-primary .md-checked .md-container:before,md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked.md-primary .md-container:before {  background-color: '{{primary-color-0.26}}'; }md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty).md-warn .md-checked .md-container:before,md-radio-group.md-THEME_NAME-theme.md-focused:not(:empty) .md-checked.md-warn .md-container:before {  background-color: '{{warn-color-0.26}}'; }md-input-container md-select.md-THEME_NAME-theme .md-select-value span:first-child:after {  color: '{{warn-A700}}'; }md-input-container:not(.md-input-focused):not(.md-input-invalid) md-select.md-THEME_NAME-theme .md-select-value span:first-child:after {  color: '{{foreground-3}}'; }md-input-container.md-input-focused:not(.md-input-has-value) md-select.md-THEME_NAME-theme .md-select-value {  color: '{{primary-color}}'; }  md-input-container.md-input-focused:not(.md-input-has-value) md-select.md-THEME_NAME-theme .md-select-value.md-select-placeholder {    color: '{{primary-color}}'; }md-input-container.md-input-invalid md-select.md-THEME_NAME-theme .md-select-value {  color: '{{warn-A700}}' !important;  border-bottom-color: '{{warn-A700}}' !important; }md-input-container.md-input-invalid md-select.md-THEME_NAME-theme.md-no-underline .md-select-value {  border-bottom-color: transparent !important; }md-select.md-THEME_NAME-theme[disabled] .md-select-value {  border-bottom-color: transparent;  background-image: linear-gradient(to right, \"{{foreground-3}}\" 0%, \"{{foreground-3}}\" 33%, transparent 0%);  background-image: -ms-linear-gradient(left, transparent 0%, \"{{foreground-3}}\" 100%); }md-select.md-THEME_NAME-theme .md-select-value {  border-bottom-color: '{{foreground-4}}'; }  md-select.md-THEME_NAME-theme .md-select-value.md-select-placeholder {    color: '{{foreground-3}}'; }  md-select.md-THEME_NAME-theme .md-select-value span:first-child:after {    color: '{{warn-A700}}'; }md-select.md-THEME_NAME-theme.md-no-underline .md-select-value {  border-bottom-color: transparent !important; }md-select.md-THEME_NAME-theme.ng-invalid.ng-touched .md-select-value {  color: '{{warn-A700}}' !important;  border-bottom-color: '{{warn-A700}}' !important; }md-select.md-THEME_NAME-theme.ng-invalid.ng-touched.md-no-underline .md-select-value {  border-bottom-color: transparent !important; }md-select.md-THEME_NAME-theme:not([disabled]):focus .md-select-value {  border-bottom-color: '{{primary-color}}';  color: '{{ foreground-1 }}'; }  md-select.md-THEME_NAME-theme:not([disabled]):focus .md-select-value.md-select-placeholder {    color: '{{ foreground-1 }}'; }md-select.md-THEME_NAME-theme:not([disabled]):focus.md-no-underline .md-select-value {  border-bottom-color: transparent !important; }md-select.md-THEME_NAME-theme:not([disabled]):focus.md-accent .md-select-value {  border-bottom-color: '{{accent-color}}'; }md-select.md-THEME_NAME-theme:not([disabled]):focus.md-warn .md-select-value {  border-bottom-color: '{{warn-color}}'; }md-select.md-THEME_NAME-theme[disabled] .md-select-value {  color: '{{foreground-3}}'; }  md-select.md-THEME_NAME-theme[disabled] .md-select-value.md-select-placeholder {    color: '{{foreground-3}}'; }md-select-menu.md-THEME_NAME-theme md-content {  background: '{{background-A100}}'; }  md-select-menu.md-THEME_NAME-theme md-content md-optgroup {    color: '{{background-600-0.87}}'; }  md-select-menu.md-THEME_NAME-theme md-content md-option {    color: '{{background-900-0.87}}'; }    md-select-menu.md-THEME_NAME-theme md-content md-option[disabled] .md-text {      color: '{{background-400-0.87}}'; }    md-select-menu.md-THEME_NAME-theme md-content md-option:not([disabled]):focus, md-select-menu.md-THEME_NAME-theme md-content md-option:not([disabled]):hover {      background: '{{background-200}}'; }    md-select-menu.md-THEME_NAME-theme md-content md-option[selected] {      color: '{{primary-500}}'; }      md-select-menu.md-THEME_NAME-theme md-content md-option[selected]:focus {        color: '{{primary-600}}'; }      md-select-menu.md-THEME_NAME-theme md-content md-option[selected].md-accent {        color: '{{accent-color}}'; }        md-select-menu.md-THEME_NAME-theme md-content md-option[selected].md-accent:focus {          color: '{{accent-A700}}'; }.md-checkbox-enabled.md-THEME_NAME-theme .md-ripple {  color: '{{primary-600}}'; }.md-checkbox-enabled.md-THEME_NAME-theme[selected] .md-ripple {  color: '{{background-600}}'; }.md-checkbox-enabled.md-THEME_NAME-theme .md-ink-ripple {  color: '{{foreground-2}}'; }.md-checkbox-enabled.md-THEME_NAME-theme[selected] .md-ink-ripple {  color: '{{primary-color-0.87}}'; }.md-checkbox-enabled.md-THEME_NAME-theme:not(.md-checked) .md-icon {  border-color: '{{foreground-2}}'; }.md-checkbox-enabled.md-THEME_NAME-theme[selected] .md-icon {  background-color: '{{primary-color-0.87}}'; }.md-checkbox-enabled.md-THEME_NAME-theme[selected].md-focused .md-container:before {  background-color: '{{primary-color-0.26}}'; }.md-checkbox-enabled.md-THEME_NAME-theme[selected] .md-icon:after {  border-color: '{{primary-contrast-0.87}}'; }.md-checkbox-enabled.md-THEME_NAME-theme .md-indeterminate[disabled] .md-container {  color: '{{foreground-3}}'; }.md-checkbox-enabled.md-THEME_NAME-theme md-option .md-text {  color: '{{background-900-0.87}}'; }md-sidenav.md-THEME_NAME-theme, md-sidenav.md-THEME_NAME-theme md-content {  background-color: '{{background-hue-1}}'; }md-slider.md-THEME_NAME-theme .md-track {  background-color: '{{foreground-3}}'; }md-slider.md-THEME_NAME-theme .md-track-ticks {  color: '{{background-contrast}}'; }md-slider.md-THEME_NAME-theme .md-focus-ring {  background-color: '{{accent-A200-0.2}}'; }md-slider.md-THEME_NAME-theme .md-disabled-thumb {  border-color: '{{background-color}}';  background-color: '{{background-color}}'; }md-slider.md-THEME_NAME-theme.md-min .md-thumb:after {  background-color: '{{background-color}}';  border-color: '{{foreground-3}}'; }md-slider.md-THEME_NAME-theme.md-min .md-focus-ring {  background-color: '{{foreground-3-0.38}}'; }md-slider.md-THEME_NAME-theme.md-min[md-discrete] .md-thumb:after {  background-color: '{{background-contrast}}';  border-color: transparent; }md-slider.md-THEME_NAME-theme.md-min[md-discrete] .md-sign {  background-color: '{{background-400}}'; }  md-slider.md-THEME_NAME-theme.md-min[md-discrete] .md-sign:after {    border-top-color: '{{background-400}}'; }md-slider.md-THEME_NAME-theme.md-min[md-discrete][md-vertical] .md-sign:after {  border-top-color: transparent;  border-left-color: '{{background-400}}'; }md-slider.md-THEME_NAME-theme .md-track.md-track-fill {  background-color: '{{accent-color}}'; }md-slider.md-THEME_NAME-theme .md-thumb:after {  border-color: '{{accent-color}}';  background-color: '{{accent-color}}'; }md-slider.md-THEME_NAME-theme .md-sign {  background-color: '{{accent-color}}'; }  md-slider.md-THEME_NAME-theme .md-sign:after {    border-top-color: '{{accent-color}}'; }md-slider.md-THEME_NAME-theme[md-vertical] .md-sign:after {  border-top-color: transparent;  border-left-color: '{{accent-color}}'; }md-slider.md-THEME_NAME-theme .md-thumb-text {  color: '{{accent-contrast}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-focus-ring {  background-color: '{{warn-200-0.38}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-track.md-track-fill {  background-color: '{{warn-color}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-thumb:after {  border-color: '{{warn-color}}';  background-color: '{{warn-color}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-sign {  background-color: '{{warn-color}}'; }  md-slider.md-THEME_NAME-theme.md-warn .md-sign:after {    border-top-color: '{{warn-color}}'; }md-slider.md-THEME_NAME-theme.md-warn[md-vertical] .md-sign:after {  border-top-color: transparent;  border-left-color: '{{warn-color}}'; }md-slider.md-THEME_NAME-theme.md-warn .md-thumb-text {  color: '{{warn-contrast}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-focus-ring {  background-color: '{{primary-200-0.38}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-track.md-track-fill {  background-color: '{{primary-color}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-thumb:after {  border-color: '{{primary-color}}';  background-color: '{{primary-color}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-sign {  background-color: '{{primary-color}}'; }  md-slider.md-THEME_NAME-theme.md-primary .md-sign:after {    border-top-color: '{{primary-color}}'; }md-slider.md-THEME_NAME-theme.md-primary[md-vertical] .md-sign:after {  border-top-color: transparent;  border-left-color: '{{primary-color}}'; }md-slider.md-THEME_NAME-theme.md-primary .md-thumb-text {  color: '{{primary-contrast}}'; }md-slider.md-THEME_NAME-theme[disabled] .md-thumb:after {  border-color: transparent; }md-slider.md-THEME_NAME-theme[disabled]:not(.md-min) .md-thumb:after, md-slider.md-THEME_NAME-theme[disabled][md-discrete] .md-thumb:after {  background-color: '{{foreground-3}}';  border-color: transparent; }md-slider.md-THEME_NAME-theme[disabled][readonly] .md-sign {  background-color: '{{background-400}}'; }  md-slider.md-THEME_NAME-theme[disabled][readonly] .md-sign:after {    border-top-color: '{{background-400}}'; }md-slider.md-THEME_NAME-theme[disabled][readonly][md-vertical] .md-sign:after {  border-top-color: transparent;  border-left-color: '{{background-400}}'; }md-slider.md-THEME_NAME-theme[disabled][readonly] .md-disabled-thumb {  border-color: transparent;  background-color: transparent; }md-slider-container[disabled] > *:first-child:not(md-slider),md-slider-container[disabled] > *:last-child:not(md-slider) {  color: '{{foreground-3}}'; }.md-subheader.md-THEME_NAME-theme {  color: '{{ foreground-2-0.23 }}';  background-color: '{{background-default}}'; }  .md-subheader.md-THEME_NAME-theme.md-primary {    color: '{{primary-color}}'; }  .md-subheader.md-THEME_NAME-theme.md-accent {    color: '{{accent-color}}'; }  .md-subheader.md-THEME_NAME-theme.md-warn {    color: '{{warn-color}}'; }md-switch.md-THEME_NAME-theme .md-ink-ripple {  color: '{{background-500}}'; }md-switch.md-THEME_NAME-theme .md-thumb {  background-color: '{{background-50}}'; }md-switch.md-THEME_NAME-theme .md-bar {  background-color: '{{background-500}}'; }md-switch.md-THEME_NAME-theme.md-checked .md-ink-ripple {  color: '{{accent-color}}'; }md-switch.md-THEME_NAME-theme.md-checked .md-thumb {  background-color: '{{accent-color}}'; }md-switch.md-THEME_NAME-theme.md-checked .md-bar {  background-color: '{{accent-color-0.5}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-focused .md-thumb:before {  background-color: '{{accent-color-0.26}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-ink-ripple {  color: '{{primary-color}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-thumb {  background-color: '{{primary-color}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-primary .md-bar {  background-color: '{{primary-color-0.5}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-primary.md-focused .md-thumb:before {  background-color: '{{primary-color-0.26}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-ink-ripple {  color: '{{warn-color}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-thumb {  background-color: '{{warn-color}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-warn .md-bar {  background-color: '{{warn-color-0.5}}'; }md-switch.md-THEME_NAME-theme.md-checked.md-warn.md-focused .md-thumb:before {  background-color: '{{warn-color-0.26}}'; }md-switch.md-THEME_NAME-theme[disabled] .md-thumb {  background-color: '{{background-400}}'; }md-switch.md-THEME_NAME-theme[disabled] .md-bar {  background-color: '{{foreground-4}}'; }md-tabs.md-THEME_NAME-theme md-tabs-wrapper {  background-color: transparent;  border-color: '{{foreground-4}}'; }md-tabs.md-THEME_NAME-theme .md-paginator md-icon {  color: '{{primary-color}}'; }md-tabs.md-THEME_NAME-theme md-ink-bar {  color: '{{accent-color}}';  background: '{{accent-color}}'; }md-tabs.md-THEME_NAME-theme .md-tab {  color: '{{foreground-2}}'; }  md-tabs.md-THEME_NAME-theme .md-tab[disabled], md-tabs.md-THEME_NAME-theme .md-tab[disabled] md-icon {    color: '{{foreground-3}}'; }  md-tabs.md-THEME_NAME-theme .md-tab.md-active, md-tabs.md-THEME_NAME-theme .md-tab.md-active md-icon, md-tabs.md-THEME_NAME-theme .md-tab.md-focused, md-tabs.md-THEME_NAME-theme .md-tab.md-focused md-icon {    color: '{{primary-color}}'; }  md-tabs.md-THEME_NAME-theme .md-tab.md-focused {    background: '{{primary-color-0.1}}'; }  md-tabs.md-THEME_NAME-theme .md-tab .md-ripple-container {    color: '{{accent-A100}}'; }md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper {  background-color: '{{accent-color}}'; }  md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) {    color: '{{accent-A100}}'; }    md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active md-icon, md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused, md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused md-icon {      color: '{{accent-contrast}}'; }    md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused {      background: '{{accent-contrast-0.1}}'; }  md-tabs.md-THEME_NAME-theme.md-accent > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-ink-bar {    color: '{{primary-600-1}}';    background: '{{primary-600-1}}'; }md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper {  background-color: '{{primary-color}}'; }  md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) {    color: '{{primary-100}}'; }    md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active md-icon, md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused, md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused md-icon {      color: '{{primary-contrast}}'; }    md-tabs.md-THEME_NAME-theme.md-primary > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused {      background: '{{primary-contrast-0.1}}'; }md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper {  background-color: '{{warn-color}}'; }  md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) {    color: '{{warn-100}}'; }    md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active md-icon, md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused, md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused md-icon {      color: '{{warn-contrast}}'; }    md-tabs.md-THEME_NAME-theme.md-warn > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused {      background: '{{warn-contrast-0.1}}'; }md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper {  background-color: '{{primary-color}}'; }  md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) {    color: '{{primary-100}}'; }    md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active md-icon, md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused, md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused md-icon {      color: '{{primary-contrast}}'; }    md-toolbar > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused {      background: '{{primary-contrast-0.1}}'; }md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper {  background-color: '{{accent-color}}'; }  md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) {    color: '{{accent-A100}}'; }    md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active md-icon, md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused, md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused md-icon {      color: '{{accent-contrast}}'; }    md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused {      background: '{{accent-contrast-0.1}}'; }  md-toolbar.md-accent > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-ink-bar {    color: '{{primary-600-1}}';    background: '{{primary-600-1}}'; }md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper {  background-color: '{{warn-color}}'; }  md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]) {    color: '{{warn-100}}'; }    md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active, md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-active md-icon, md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused, md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused md-icon {      color: '{{warn-contrast}}'; }    md-toolbar.md-warn > md-tabs.md-THEME_NAME-theme > md-tabs-wrapper > md-tabs-canvas > md-pagination-wrapper > md-tab-item:not([disabled]).md-focused {      background: '{{warn-contrast-0.1}}'; }md-toast.md-THEME_NAME-theme .md-toast-content {  background-color: #323232;  color: '{{background-50}}'; }  md-toast.md-THEME_NAME-theme .md-toast-content .md-button {    color: '{{background-50}}'; }    md-toast.md-THEME_NAME-theme .md-toast-content .md-button.md-highlight {      color: '{{accent-color}}'; }      md-toast.md-THEME_NAME-theme .md-toast-content .md-button.md-highlight.md-primary {        color: '{{primary-color}}'; }      md-toast.md-THEME_NAME-theme .md-toast-content .md-button.md-highlight.md-warn {        color: '{{warn-color}}'; }md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) {  background-color: '{{primary-color}}';  color: '{{primary-contrast}}'; }  md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) md-icon {    color: '{{primary-contrast}}';    fill: '{{primary-contrast}}'; }  md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar) .md-button[disabled] md-icon {    color: '{{primary-contrast-0.26}}';    fill: '{{primary-contrast-0.26}}'; }  md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent {    background-color: '{{accent-color}}';    color: '{{accent-contrast}}'; }    md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent .md-ink-ripple {      color: '{{accent-contrast}}'; }    md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent md-icon {      color: '{{accent-contrast}}';      fill: '{{accent-contrast}}'; }    md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-accent .md-button[disabled] md-icon {      color: '{{accent-contrast-0.26}}';      fill: '{{accent-contrast-0.26}}'; }  md-toolbar.md-THEME_NAME-theme:not(.md-menu-toolbar).md-warn {    background-color: '{{warn-color}}';    color: '{{warn-contrast}}'; }md-tooltip.md-THEME_NAME-theme {  color: '{{background-700-contrast}}'; }  md-tooltip.md-THEME_NAME-theme .md-content {    background-color: '{{background-700}}'; }/*  Only used with Theme processes */html.md-THEME_NAME-theme, body.md-THEME_NAME-theme {  color: '{{foreground-1}}';  background-color: '{{background-color}}'; }")}()}(window,window.angular),window.ngMaterial={version:{full:"1.1.1"}},function(){function e(e){return e&&(e.ownerDocument||e.document||e).documentElement}function t(e){return e&&(e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView)}function n(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function i(e){return null===e?NaN:+e}function r(e){return!isNaN(e)}function o(e){return{left:function(t,n,i,r){for(arguments.length<3&&(i=0),arguments.length<4&&(r=t.length);i<r;){var o=i+r>>>1;e(t[o],n)<0?i=o+1:r=o}return i},right:function(t,n,i,r){for(arguments.length<3&&(i=0),arguments.length<4&&(r=t.length);i<r;){var o=i+r>>>1;e(t[o],n)>0?r=o:i=o+1}return i}}}function a(e){return e.length}function s(e){for(var t=1;e*t%1;)t*=10;return t}function l(e,t){for(var n in t)Object.defineProperty(e.prototype,n,{value:t[n],enumerable:!1})}function c(){this._=Object.create(null)}function u(e){return(e+="")===ba||e[0]===ya?ya+e:e}function d(e){return(e+="")[0]===ya?e.slice(1):e}function h(e){return u(e)in this._}function p(e){return(e=u(e))in this._&&delete this._[e]}function f(){var e=[];for(var t in this._)e.push(d(t));return e}function m(){var e=0;for(var t in this._)++e;return e}function g(){for(var e in this._)return!1;return!0}function v(){this._=Object.create(null)}function b(e){return e}function y(e,t,n){return function(){var i=n.apply(t,arguments);return i===t?e:i}}function _(e,t){if(t in e)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var n=0,i=_a.length;n<i;++n){var r=_a[n]+t;if(r in e)return r}}function w(){}function A(){}function C(e){function t(){for(var t,i=n,r=-1,o=i.length;++r<o;)(t=i[r].on)&&t.apply(this,arguments);return e}var n=[],i=new c;return t.on=function(t,r){var o,a=i.get(t);return arguments.length<2?a&&a.on:(a&&(a.on=null,n=n.slice(0,o=n.indexOf(a)).concat(n.slice(o+1)),i.remove(t)),r&&n.push(i.set(t,{on:r})),e)},t}function x(){sa.event.preventDefault()}function S(){for(var e,t=sa.event;e=t.sourceEvent;)t=e;return t}function E(e){for(var t=new A,n=0,i=arguments.length;++n<i;)t[arguments[n]]=C(t);return t.of=function(n,i){return function(r){try{var o=r.sourceEvent=sa.event;r.target=e,sa.event=r,t[r.type].apply(n,i)}finally{sa.event=o}}},t}function T(e){return Aa(e,Ea),e}function D(e){return"function"==typeof e?e:function(){return Ca(e,this)}}function I(e){return"function"==typeof e?e:function(){return xa(e,this)}}function k(e,t){function n(){this.removeAttribute(e)}function i(){this.removeAttributeNS(e.space,e.local)}function r(){this.setAttribute(e,t)}function o(){this.setAttributeNS(e.space,e.local,t)}function a(){var n=t.apply(this,arguments);null==n?this.removeAttribute(e):this.setAttribute(e,n)}function s(){var n=t.apply(this,arguments);null==n?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}return e=sa.ns.qualify(e),null==t?e.local?i:n:"function"==typeof t?e.local?s:a:e.local?o:r}function M(e){return e.trim().replace(/\s+/g," ")}function P(e){return new RegExp("(?:^|\\s+)"+sa.requote(e)+"(?:\\s+|$)","g")}function $(e){return(e+"").trim().split(/^|\s+/)}function N(e,t){function n(){for(var n=-1;++n<r;)e[n](this,t)}function i(){for(var n=-1,i=t.apply(this,arguments);++n<r;)e[n](this,i)}var r=(e=$(e).map(O)).length;return"function"==typeof t?i:n}function O(e){var t=P(e);return function(n,i){if(r=n.classList)return i?r.add(e):r.remove(e);var r=n.getAttribute("class")||"";i?(t.lastIndex=0,t.test(r)||n.setAttribute("class",M(r+" "+e))):n.setAttribute("class",M(r.replace(t," ")))}}function R(e,t,n){function i(){this.style.removeProperty(e)}function r(){this.style.setProperty(e,t,n)}function o(){var i=t.apply(this,arguments);null==i?this.style.removeProperty(e):this.style.setProperty(e,i,n)}return null==t?i:"function"==typeof t?o:r}function L(e,t){function n(){delete this[e]}function i(){this[e]=t}function r(){var n=t.apply(this,arguments);null==n?delete this[e]:this[e]=n}return null==t?n:"function"==typeof t?r:i}function G(e){function t(){var t=this.ownerDocument,n=this.namespaceURI;return n===Ta&&t.documentElement.namespaceURI===Ta?t.createElement(e):t.createElementNS(n,e)}function n(){return this.ownerDocument.createElementNS(e.space,e.local)}return"function"==typeof e?e:(e=sa.ns.qualify(e)).local?n:t}function B(){var e=this.parentNode;e&&e.removeChild(this)}function F(e){return{__data__:e}}function H(e){return function(){return Sa(this,e)}}function U(e){return arguments.length||(e=n),function(t,n){return t&&n?e(t.__data__,n.__data__):!t-!n}}function j(e,t){for(var n=0,i=e.length;n<i;n++)for(var r,o=e[n],a=0,s=o.length;a<s;a++)(r=o[a])&&t(r,a,n);return e}function W(e){return Aa(e,Ia),e}function z(e){var t,n;return function(i,r,o){var a,s=e[o].update,l=s.length;for(o!=n&&(n=o,t=0),r>=t&&(t=r+1);!(a=s[t])&&++t<l;);return a}}function q(e,t,n){function i(){var t=this[a];t&&(this.removeEventListener(e,t,t.$),delete this[a])}function r(){var r=l(t,ca(arguments));i.call(this),this.addEventListener(e,this[a]=r,r.$=n),r._=t}function o(){var t,n=new RegExp("^__on([^.]+)"+sa.requote(e)+"$");for(var i in this)if(t=i.match(n)){var r=this[i];this.removeEventListener(t[1],r,r.$),delete this[i]}}var a="__on"+e,s=e.indexOf("."),l=V;s>0&&(e=e.slice(0,s));var c=ka.get(e);return c&&(e=c,l=Y),s?t?r:i:t?w:o}function V(e,t){return function(n){var i=sa.event;sa.event=n,t[0]=this.__data__;try{e.apply(this,t)}finally{sa.event=i}}}function Y(e,t){var n=V(e,t);return function(e){var t=this,i=e.relatedTarget;i&&(i===t||8&i.compareDocumentPosition(t))||n.call(t,e)}}function K(n){var i=".dragsuppress-"+ ++Pa,r="click"+i,o=sa.select(t(n)).on("touchmove"+i,x).on("dragstart"+i,x).on("selectstart"+i,x);if(null==Ma&&(Ma=!("onselectstart"in n)&&_(n.style,"userSelect")),Ma){var a=e(n).style,s=a[Ma];a[Ma]="none"}return function(e){if(o.on(i,null),Ma&&(a[Ma]=s),e){var t=function(){o.on(r,null)};o.on(r,function(){x(),t()},!0),setTimeout(t,0)}}}function Q(e,n){n.changedTouches&&(n=n.changedTouches[0]);var i=e.ownerSVGElement||e;if(i.createSVGPoint){var r=i.createSVGPoint();if($a<0){var o=t(e);if(o.scrollX||o.scrollY){var a=(i=sa.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important"))[0][0].getScreenCTM();$a=!(a.f||a.e),i.remove()}}return $a?(r.x=n.pageX,r.y=n.pageY):(r.x=n.clientX,r.y=n.clientY),r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}var s=e.getBoundingClientRect();return[n.clientX-s.left-e.clientLeft,n.clientY-s.top-e.clientTop]}function X(){return sa.event.changedTouches[0].identifier}function Z(e){return e>0?1:e<0?-1:0}function J(e,t,n){return(t[0]-e[0])*(n[1]-e[1])-(t[1]-e[1])*(n[0]-e[0])}function ee(e){return e>1?0:e<-1?Ra:Math.acos(e)}function te(e){return e>1?Ba:e<-1?-Ba:Math.asin(e)}function ne(e){return((e=Math.exp(e))-1/e)/2}function ie(e){return((e=Math.exp(e))+1/e)/2}function re(e){return((e=Math.exp(2*e))-1)/(e+1)}function oe(e){return(e=Math.sin(e/2))*e}function ae(){}function se(e,t,n){return this instanceof se?(this.h=+e,this.s=+t,void(this.l=+n)):arguments.length<2?e instanceof se?new se(e.h,e.s,e.l):we(""+e,Ae,se):new se(e,t,n)}function le(e,t,n){function i(e){return e>360?e-=360:e<0&&(e+=360),e<60?o+(a-o)*e/60:e<180?a:e<240?o+(a-o)*(240-e)/60:o}function r(e){return Math.round(255*i(e))}var o,a;return e=isNaN(e)?0:(e%=360)<0?e+360:e,t=isNaN(t)?0:t<0?0:t>1?1:t,n=n<0?0:n>1?1:n,a=n<=.5?n*(1+t):n+t-n*t,o=2*n-a,new ve(r(e+120),r(e),r(e-120))}function ce(e,t,n){return this instanceof ce?(this.h=+e,this.c=+t,void(this.l=+n)):arguments.length<2?e instanceof ce?new ce(e.h,e.c,e.l):e instanceof de?pe(e.l,e.a,e.b):pe((e=Ce((e=sa.rgb(e)).r,e.g,e.b)).l,e.a,e.b):new ce(e,t,n)}function ue(e,t,n){return isNaN(e)&&(e=0),isNaN(t)&&(t=0),new de(n,Math.cos(e*=Fa)*t,Math.sin(e)*t)}function de(e,t,n){return this instanceof de?(this.l=+e,this.a=+t,void(this.b=+n)):arguments.length<2?e instanceof de?new de(e.l,e.a,e.b):e instanceof ce?ue(e.h,e.c,e.l):Ce((e=ve(e)).r,e.g,e.b):new de(e,t,n)}function he(e,t,n){var i=(e+16)/116,r=i+t/500,o=i-n/200;return r=fe(r)*Ka,i=fe(i)*Qa,o=fe(o)*Xa,new ve(ge(3.2404542*r-1.5371385*i-.4985314*o),ge(-.969266*r+1.8760108*i+.041556*o),ge(.0556434*r-.2040259*i+1.0572252*o))}function pe(e,t,n){return e>0?new ce(Math.atan2(n,t)*Ha,Math.sqrt(t*t+n*n),e):new ce(NaN,NaN,e)}function fe(e){return e>.206893034?e*e*e:(e-4/29)/7.787037}function me(e){return e>.008856?Math.pow(e,1/3):7.787037*e+4/29}function ge(e){return Math.round(255*(e<=.00304?12.92*e:1.055*Math.pow(e,1/2.4)-.055))}function ve(e,t,n){return this instanceof ve?(this.r=~~e,this.g=~~t,void(this.b=~~n)):arguments.length<2?e instanceof ve?new ve(e.r,e.g,e.b):we(""+e,ve,le):new ve(e,t,n)}function be(e){return new ve(e>>16,e>>8&255,255&e)}function ye(e){return be(e)+""}function _e(e){return e<16?"0"+Math.max(0,e).toString(16):Math.min(255,e).toString(16)}function we(e,t,n){var i,r,o,a=0,s=0,l=0;if(i=/([a-z]+)\((.*)\)/.exec(e=e.toLowerCase()))switch(r=i[2].split(","),i[1]){case"hsl":return n(parseFloat(r[0]),parseFloat(r[1])/100,parseFloat(r[2])/100);case"rgb":return t(Se(r[0]),Se(r[1]),Se(r[2]))}return(o=es.get(e))?t(o.r,o.g,o.b):(null==e||"#"!==e.charAt(0)||isNaN(o=parseInt(e.slice(1),16))||(4===e.length?(a=(3840&o)>>4,a|=a>>4,s=240&o,s|=s>>4,l=15&o,l|=l<<4):7===e.length&&(a=(16711680&o)>>16,s=(65280&o)>>8,l=255&o)),t(a,s,l))}function Ae(e,t,n){var i,r,o=Math.min(e/=255,t/=255,n/=255),a=Math.max(e,t,n),s=a-o,l=(a+o)/2;return s?(r=l<.5?s/(a+o):s/(2-a-o),i=e==a?(t-n)/s+(t<n?6:0):t==a?(n-e)/s+2:(e-t)/s+4,i*=60):(i=NaN,r=l>0&&l<1?0:i),new se(i,r,l)}function Ce(e,t,n){var i=me((.4124564*(e=xe(e))+.3575761*(t=xe(t))+.1804375*(n=xe(n)))/Ka),r=me((.2126729*e+.7151522*t+.072175*n)/Qa);return de(116*r-16,500*(i-r),200*(r-me((.0193339*e+.119192*t+.9503041*n)/Xa)))}function xe(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Se(e){var t=parseFloat(e);return"%"===e.charAt(e.length-1)?Math.round(2.55*t):t}function Ee(e){return"function"==typeof e?e:function(){return e}}function Te(e){return function(t,n,i){return 2===arguments.length&&"function"==typeof n&&(i=n,n=null),De(t,n,e,i)}}function De(e,t,n,i){function r(){var e,t=l.status;if(!t&&ke(l)||t>=200&&t<300||304===t){try{e=n.call(o,l)}catch(e){return void a.error.call(o,e)}a.load.call(o,e)}else a.error.call(o,l)}var o={},a=sa.dispatch("beforesend","progress","load","error"),s={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(e)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=r:l.onreadystatechange=function(){l.readyState>3&&r()},l.onprogress=function(e){var t=sa.event;sa.event=e;try{a.progress.call(o,l)}finally{sa.event=t}},o.header=function(e,t){return e=(e+"").toLowerCase(),arguments.length<2?s[e]:(null==t?delete s[e]:s[e]=t+"",o)},o.mimeType=function(e){return arguments.length?(t=null==e?null:e+"",o):t},o.responseType=function(e){return arguments.length?(c=e,o):c},o.response=function(e){return n=e,o},["get","post"].forEach(function(e){o[e]=function(){return o.send.apply(o,[e].concat(ca(arguments)))}}),o.send=function(n,i,r){if(2===arguments.length&&"function"==typeof i&&(r=i,i=null),l.open(n,e,!0),null==t||"accept"in s||(s.accept=t+",*/*"),l.setRequestHeader)for(var u in s)l.setRequestHeader(u,s[u]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=r&&o.on("error",r).on("load",function(e){r(null,e)}),a.beforesend.call(o,l),l.send(null==i?null:i),o},o.abort=function(){return l.abort(),o},sa.rebind(o,a,"on"),null==i?o:o.get(Ie(i))}function Ie(e){return 1===e.length?function(t,n){e(null==t?n:null)}:e}function ke(e){var t=e.responseType;return t&&"text"!==t?e.response:e.responseText}function Me(e,t,n){var i=arguments.length;i<2&&(t=0),i<3&&(n=Date.now());var r={c:e,t:n+t,n:null};return ns?ns.n=r:ts=r,ns=r,is||(rs=clearTimeout(rs),is=1,os(Pe)),r}function Pe(){var e=$e(),t=Ne()-e;t>24?(isFinite(t)&&(clearTimeout(rs),rs=setTimeout(Pe,t)),is=0):(is=1,os(Pe))}function $e(){for(var e=Date.now(),t=ts;t;)e>=t.t&&t.c(e-t.t)&&(t.c=null),t=t.n;return e}function Ne(){for(var e,t=ts,n=1/0;t;)t.c?(t.t<n&&(n=t.t),t=(e=t).n):t=e?e.n=t.n:ts=t.n;return ns=e,n}function Oe(e,t){return t-(e?Math.ceil(Math.log(e)/Math.LN10):1)}function Re(e,t){var n=Math.pow(10,3*va(8-t));return{scale:t>8?function(e){return e/n}:function(e){return e*n},symbol:e}}function Le(e){var t=e.decimal,n=e.thousands,i=e.grouping,r=e.currency,o=i&&n?function(e,t){for(var r=e.length,o=[],a=0,s=i[0],l=0;r>0&&s>0&&(l+s+1>t&&(s=Math.max(1,t-l)),o.push(e.substring(r-=s,r+s)),!((l+=s+1)>t));)s=i[a=(a+1)%i.length];return o.reverse().join(n)}:b;return function(e){var n=ss.exec(e),i=n[1]||" ",a=n[2]||">",s=n[3]||"-",l=n[4]||"",c=n[5],u=+n[6],d=n[7],h=n[8],p=n[9],f=1,m="",g="",v=!1,b=!0;switch(h&&(h=+h.substring(1)),(c||"0"===i&&"="===a)&&(c=i="0",a="="),p){case"n":d=!0,p="g";break;case"%":f=100,g="%",p="f";break;case"p":f=100,g="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(m="0"+p.toLowerCase());case"c":b=!1;case"d":v=!0,h=0;break;case"s":f=-1,p="r"}"$"===l&&(m=r[0],g=r[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=ls.get(p)||Ge;var y=c&&d;return function(e){var n=g;if(v&&e%1)return"";var r=e<0||0===e&&1/e<0?(e=-e,"-"):"-"===s?"":s;if(f<0){var l=sa.formatPrefix(e,h);e=l.scale(e),n=l.symbol+g}else e*=f;var _,w,A=(e=p(e,h)).lastIndexOf(".");if(A<0){var C=b?e.lastIndexOf("e"):-1;C<0?(_=e,w=""):(_=e.substring(0,C),w=e.substring(C))}else _=e.substring(0,A),w=t+e.substring(A+1);!c&&d&&(_=o(_,1/0));var x=m.length+_.length+w.length+(y?0:r.length),S=x<u?new Array(x=u-x+1).join(i):"";return y&&(_=o(S+_,S.length?u-w.length:1/0)),r+=m,e=_+w,("<"===a?r+e+S:">"===a?S+r+e:"^"===a?S.substring(0,x>>=1)+r+e+S.substring(x):r+(y?e:S+e))+n}}}function Ge(e){return e+""}function Be(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Fe(e,t,n){function i(t){var n=e(t),i=o(n,1);return t-n<i-t?n:i}function r(n){return t(n=e(new us(n-1)),1),n}function o(e,n){return t(e=new us(+e),n),e}function a(e,i,o){var a=r(e),s=[];if(o>1)for(;a<i;)n(a)%o||s.push(new Date(+a)),t(a,1);else for(;a<i;)s.push(new Date(+a)),t(a,1);return s}function s(e,t,n){try{us=Be;var i=new Be;return i._=e,a(i,t,n)}finally{us=Date}}e.floor=e,e.round=i,e.ceil=r,e.offset=o,e.range=a;var l=e.utc=He(e);return l.floor=l,l.round=He(i),l.ceil=He(r),l.offset=He(o),l.range=s,e}function He(e){return function(t,n){try{us=Be;var i=new Be;return i._=t,e(i,n)._}finally{us=Date}}}function Ue(e){function t(e){function t(t){for(var n,r,o,a=[],s=-1,l=0;++s<i;)37===e.charCodeAt(s)&&(a.push(e.slice(l,s)),null!=(r=hs[n=e.charAt(++s)])&&(n=e.charAt(++s)),(o=D[n])&&(n=o(t,null==r?"e"===n?" ":"0":r)),a.push(n),l=s+1);return a.push(e.slice(l,s)),a.join("")}var i=e.length;return t.parse=function(t){var i={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null};if(n(i,e,t,0)!=t.length)return null;"p"in i&&(i.H=i.H%12+12*i.p);var r=null!=i.Z&&us!==Be,o=new(r?Be:us);return"j"in i?o.setFullYear(i.y,0,i.j):"W"in i||"U"in i?("w"in i||(i.w="W"in i?1:0),o.setFullYear(i.y,0,1),o.setFullYear(i.y,0,"W"in i?(i.w+6)%7+7*i.W-(o.getDay()+5)%7:i.w+7*i.U-(o.getDay()+6)%7)):o.setFullYear(i.y,i.m,i.d),o.setHours(i.H+(i.Z/100|0),i.M+i.Z%100,i.S,i.L),r?o._:o},t.toString=function(){return e},t}function n(e,t,n,i){for(var r,o,a,s=0,l=t.length,c=n.length;s<l;){if(i>=c)return-1;if(37===(r=t.charCodeAt(s++))){if(a=t.charAt(s++),!(o=I[a in hs?t.charAt(s++):a])||(i=o(e,n,i))<0)return-1}else if(r!=n.charCodeAt(i++))return-1}return i}function i(e,t,n){A.lastIndex=0;var i=A.exec(t.slice(n));return i?(e.w=C.get(i[0].toLowerCase()),n+i[0].length):-1}function r(e,t,n){_.lastIndex=0;var i=_.exec(t.slice(n));return i?(e.w=w.get(i[0].toLowerCase()),n+i[0].length):-1}function o(e,t,n){E.lastIndex=0;var i=E.exec(t.slice(n));return i?(e.m=T.get(i[0].toLowerCase()),n+i[0].length):-1}function a(e,t,n){x.lastIndex=0;var i=x.exec(t.slice(n));return i?(e.m=S.get(i[0].toLowerCase()),n+i[0].length):-1}function s(e,t,i){return n(e,D.c.toString(),t,i)}function l(e,t,i){return n(e,D.x.toString(),t,i)}function c(e,t,i){return n(e,D.X.toString(),t,i)}function u(e,t,n){var i=y.get(t.slice(n,n+=2).toLowerCase());return null==i?-1:(e.p=i,n)}var d=e.dateTime,h=e.date,p=e.time,f=e.periods,m=e.days,g=e.shortDays,v=e.months,b=e.shortMonths;t.utc=function(e){function n(e){try{var t=new(us=Be);return t._=e,i(t)}finally{us=Date}}var i=t(e);return n.parse=function(e){try{us=Be;var t=i.parse(e);return t&&t._}finally{us=Date}},n.toString=i.toString,n},t.multi=t.utc.multi=lt;var y=sa.map(),_=We(m),w=ze(m),A=We(g),C=ze(g),x=We(v),S=ze(v),E=We(b),T=ze(b);f.forEach(function(e,t){y.set(e.toLowerCase(),t)});var D={a:function(e){return g[e.getDay()]},A:function(e){return m[e.getDay()]},b:function(e){return b[e.getMonth()]},B:function(e){return v[e.getMonth()]},c:t(d),d:function(e,t){return je(e.getDate(),t,2)},e:function(e,t){return je(e.getDate(),t,2)},H:function(e,t){return je(e.getHours(),t,2)},I:function(e,t){return je(e.getHours()%12||12,t,2)},j:function(e,t){return je(1+cs.dayOfYear(e),t,3)},L:function(e,t){return je(e.getMilliseconds(),t,3)},m:function(e,t){return je(e.getMonth()+1,t,2)},M:function(e,t){return je(e.getMinutes(),t,2)},p:function(e){return f[+(e.getHours()>=12)]},S:function(e,t){return je(e.getSeconds(),t,2)},U:function(e,t){return je(cs.sundayOfYear(e),t,2)},w:function(e){return e.getDay()},W:function(e,t){return je(cs.mondayOfYear(e),t,2)},x:t(h),X:t(p),y:function(e,t){return je(e.getFullYear()%100,t,2)},Y:function(e,t){return je(e.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},I={a:i,A:r,b:o,B:a,c:s,d:et,e:et,H:nt,I:nt,j:tt,L:ot,m:Je,M:it,p:u,S:rt,U:Ve,w:qe,W:Ye,x:l,X:c,y:Qe,Y:Ke,Z:Xe,"%":st};return t}function je(e,t,n){var i=e<0?"-":"",r=(i?-e:e)+"",o=r.length;return i+(o<n?new Array(n-o+1).join(t)+r:r)}function We(e){return new RegExp("^(?:"+e.map(sa.requote).join("|")+")","i")}function ze(e){for(var t=new c,n=-1,i=e.length;++n<i;)t.set(e[n].toLowerCase(),n);return t}function qe(e,t,n){ps.lastIndex=0;var i=ps.exec(t.slice(n,n+1));return i?(e.w=+i[0],n+i[0].length):-1}function Ve(e,t,n){ps.lastIndex=0;var i=ps.exec(t.slice(n));return i?(e.U=+i[0],n+i[0].length):-1}function Ye(e,t,n){ps.lastIndex=0;var i=ps.exec(t.slice(n));return i?(e.W=+i[0],n+i[0].length):-1}function Ke(e,t,n){ps.lastIndex=0;var i=ps.exec(t.slice(n,n+4));return i?(e.y=+i[0],n+i[0].length):-1}function Qe(e,t,n){ps.lastIndex=0;var i=ps.exec(t.slice(n,n+2));return i?(e.y=Ze(+i[0]),n+i[0].length):-1}function Xe(e,t,n){return/^[+-]\d{4}$/.test(t=t.slice(n,n+5))?(e.Z=-t,n+5):-1}function Ze(e){return e+(e>68?1900:2e3)}function Je(e,t,n){ps.lastIndex=0;var i=ps.exec(t.slice(n,n+2));return i?(e.m=i[0]-1,n+i[0].length):-1}function et(e,t,n){ps.lastIndex=0;var i=ps.exec(t.slice(n,n+2));return i?(e.d=+i[0],n+i[0].length):-1}function tt(e,t,n){ps.lastIndex=0;var i=ps.exec(t.slice(n,n+3));return i?(e.j=+i[0],n+i[0].length):-1}function nt(e,t,n){ps.lastIndex=0;var i=ps.exec(t.slice(n,n+2));return i?(e.H=+i[0],n+i[0].length):-1}function it(e,t,n){ps.lastIndex=0;var i=ps.exec(t.slice(n,n+2));return i?(e.M=+i[0],n+i[0].length):-1}function rt(e,t,n){ps.lastIndex=0;var i=ps.exec(t.slice(n,n+2));return i?(e.S=+i[0],n+i[0].length):-1}function ot(e,t,n){ps.lastIndex=0;var i=ps.exec(t.slice(n,n+3));return i?(e.L=+i[0],n+i[0].length):-1}function at(e){var t=e.getTimezoneOffset(),n=t>0?"-":"+",i=va(t)/60|0,r=va(t)%60;return n+je(i,"0",2)+je(r,"0",2)}function st(e,t,n){fs.lastIndex=0;var i=fs.exec(t.slice(n,n+1));return i?n+i[0].length:-1}function lt(e){for(var t=e.length,n=-1;++n<t;)e[n][0]=this(e[n][0]);return function(t){for(var n=0,i=e[n];!i[1](t);)i=e[++n];return i[0](t)}}function ct(){}function ut(e,t,n){var i=n.s=e+t,r=i-e,o=i-r;n.t=e-o+(t-r)}function dt(e,t){e&&bs.hasOwnProperty(e.type)&&bs[e.type](e,t)}function ht(e,t,n){var i,r=-1,o=e.length-n;for(t.lineStart();++r<o;)i=e[r],t.point(i[0],i[1],i[2]);t.lineEnd()}function pt(e,t){var n=-1,i=e.length;for(t.polygonStart();++n<i;)ht(e[n],t,1);t.polygonEnd()}function ft(){function e(e,t){t=t*Fa/2+Ra/4;var n=(e*=Fa)-i,a=n>=0?1:-1,s=a*n,l=Math.cos(t),c=Math.sin(t),u=o*c,d=r*l+u*Math.cos(s),h=u*a*Math.sin(s);_s.add(Math.atan2(h,d)),i=e,r=l,o=c}var t,n,i,r,o;ws.point=function(a,s){ws.point=e,i=(t=a)*Fa,r=Math.cos(s=(n=s)*Fa/2+Ra/4),o=Math.sin(s)},ws.lineEnd=function(){e(t,n)}}function mt(e){var t=e[0],n=e[1],i=Math.cos(n);return[i*Math.cos(t),i*Math.sin(t),Math.sin(n)]}function gt(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function vt(e,t){return[e[1]*t[2]-e[2]*t[1],e[2]*t[0]-e[0]*t[2],e[0]*t[1]-e[1]*t[0]]}function bt(e,t){e[0]+=t[0],e[1]+=t[1],e[2]+=t[2]}function yt(e,t){return[e[0]*t,e[1]*t,e[2]*t]}function _t(e){var t=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]/=t,e[1]/=t,e[2]/=t}function wt(e){return[Math.atan2(e[1],e[0]),te(e[2])]}function At(e,t){return va(e[0]-t[0])<Na&&va(e[1]-t[1])<Na}function Ct(e,t){e*=Fa;var n=Math.cos(t*=Fa);xt(n*Math.cos(e),n*Math.sin(e),Math.sin(t))}function xt(e,t,n){xs+=(e-xs)/++As,Ss+=(t-Ss)/As,Es+=(n-Es)/As}function St(){function e(e,r){e*=Fa;var o=Math.cos(r*=Fa),a=o*Math.cos(e),s=o*Math.sin(e),l=Math.sin(r),c=Math.atan2(Math.sqrt((c=n*l-i*s)*c+(c=i*a-t*l)*c+(c=t*s-n*a)*c),t*a+n*s+i*l);Cs+=c,Ts+=c*(t+(t=a)),Ds+=c*(n+(n=s)),Is+=c*(i+(i=l)),xt(t,n,i)}var t,n,i;$s.point=function(r,o){r*=Fa;var a=Math.cos(o*=Fa);t=a*Math.cos(r),n=a*Math.sin(r),i=Math.sin(o),$s.point=e,xt(t,n,i)}}function Et(){$s.point=Ct}function Tt(){function e(e,t){e*=Fa;var n=Math.cos(t*=Fa),a=n*Math.cos(e),s=n*Math.sin(e),l=Math.sin(t),c=r*l-o*s,u=o*a-i*l,d=i*s-r*a,h=Math.sqrt(c*c+u*u+d*d),p=i*a+r*s+o*l,f=h&&-ee(p)/h,m=Math.atan2(h,p);ks+=f*c,Ms+=f*u,Ps+=f*d,Cs+=m,Ts+=m*(i+(i=a)),Ds+=m*(r+(r=s)),Is+=m*(o+(o=l)),xt(i,r,o)}var t,n,i,r,o;$s.point=function(a,s){t=a,n=s,$s.point=e,a*=Fa;var l=Math.cos(s*=Fa);i=l*Math.cos(a),r=l*Math.sin(a),o=Math.sin(s),xt(i,r,o)},$s.lineEnd=function(){e(t,n),$s.lineEnd=Et,$s.point=Ct}}function Dt(e,t){function n(n,i){return n=e(n,i),t(n[0],n[1])}return e.invert&&t.invert&&(n.invert=function(n,i){return(n=t.invert(n,i))&&e.invert(n[0],n[1])}),n}function It(){return!0}function kt(e,t,n,i,r){var o=[],a=[];if(e.forEach(function(e){if(!((t=e.length-1)<=0)){var t,n=e[0],i=e[t];if(At(n,i)){r.lineStart();for(var s=0;s<t;++s)r.point((n=e[s])[0],n[1]);r.lineEnd()}else{var l=new Pt(n,e,null,!0),c=new Pt(n,null,l,!1);l.o=c,o.push(l),a.push(c),c=new Pt(i,null,l=new Pt(i,e,null,!1),!0),l.o=c,o.push(l),a.push(c)}}}),a.sort(t),Mt(o),Mt(a),o.length){for(var s=0,l=n,c=a.length;s<c;++s)a[s].e=l=!l;for(var u,d,h=o[0];;){for(var p=h,f=!0;p.v;)if((p=p.n)===h)return;u=p.z,r.lineStart();do{if(p.v=p.o.v=!0,p.e){if(f)for(var s=0,c=u.length;s<c;++s)r.point((d=u[s])[0],d[1]);else i(p.x,p.n.x,1,r);p=p.n}else{if(f)for(s=(u=p.p.z).length-1;s>=0;--s)r.point((d=u[s])[0],d[1]);else i(p.x,p.p.x,-1,r);p=p.p}u=(p=p.o).z,f=!f}while(!p.v);r.lineEnd()}}}function Mt(e){if(t=e.length){for(var t,n,i=0,r=e[0];++i<t;)r.n=n=e[i],n.p=r,r=n;r.n=n=e[0],n.p=r}}function Pt(e,t,n,i){this.x=e,this.z=t,this.o=n,this.e=i,this.v=!1,this.n=this.p=null}function $t(e,t,n,i){return function(r,o){function a(t,n){var i=r(t,n);e(t=i[0],n=i[1])&&o.point(t,n)}function s(e,t){var n=r(e,t);g.point(n[0],n[1])}function l(){b.point=s,g.lineStart()}function c(){b.point=a,g.lineEnd()}function u(e,t){m.push([e,t]);var n=r(e,t);_.point(n[0],n[1])}function d(){_.lineStart(),m=[]}function h(){u(m[0][0],m[0][1]),_.lineEnd();var e,t=_.clean(),n=y.buffer(),i=n.length;if(m.pop(),f.push(m),m=null,i)if(1&t){var r,a=-1;if((i=(e=n[0]).length-1)>0){for(w||(o.polygonStart(),w=!0),o.lineStart();++a<i;)o.point((r=e[a])[0],r[1]);o.lineEnd()}}else i>1&&2&t&&n.push(n.pop().concat(n.shift())),p.push(n.filter(Nt))}var p,f,m,g=t(o),v=r.invert(i[0],i[1]),b={point:a,lineStart:l,lineEnd:c,polygonStart:function(){b.point=u,b.lineStart=d,b.lineEnd=h,p=[],f=[]},polygonEnd:function(){b.point=a,b.lineStart=l,b.lineEnd=c,p=sa.merge(p);var e=Ft(v,f);p.length?(w||(o.polygonStart(),w=!0),kt(p,Rt,e,n,o)):e&&(w||(o.polygonStart(),w=!0),o.lineStart(),n(null,null,1,o),o.lineEnd()),w&&(o.polygonEnd(),w=!1),p=f=null},sphere:function(){o.polygonStart(),o.lineStart(),n(null,null,1,o),o.lineEnd(),o.polygonEnd()}},y=Ot(),_=t(y),w=!1;return b}}function Nt(e){return e.length>1}function Ot(){var e,t=[];return{lineStart:function(){t.push(e=[])},point:function(t,n){e.push([t,n])},lineEnd:w,buffer:function(){var n=t;return t=[],e=null,n},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Rt(e,t){return((e=e.x)[0]<0?e[1]-Ba-Na:Ba-e[1])-((t=t.x)[0]<0?t[1]-Ba-Na:Ba-t[1])}function Lt(e){var t,n=NaN,i=NaN,r=NaN;return{lineStart:function(){e.lineStart(),t=1},point:function(o,a){var s=o>0?Ra:-Ra,l=va(o-n);va(l-Ra)<Na?(e.point(n,i=(i+a)/2>0?Ba:-Ba),e.point(r,i),e.lineEnd(),e.lineStart(),e.point(s,i),e.point(o,i),t=0):r!==s&&l>=Ra&&(va(n-r)<Na&&(n-=r*Na),va(o-s)<Na&&(o-=s*Na),i=Gt(n,i,o,a),e.point(r,i),e.lineEnd(),e.lineStart(),e.point(s,i),t=0),e.point(n=o,i=a),r=s},lineEnd:function(){e.lineEnd(),n=i=NaN},clean:function(){return 2-t}}}function Gt(e,t,n,i){var r,o,a=Math.sin(e-n);return va(a)>Na?Math.atan((Math.sin(t)*(o=Math.cos(i))*Math.sin(n)-Math.sin(i)*(r=Math.cos(t))*Math.sin(e))/(r*o*a)):(t+i)/2}function Bt(e,t,n,i){var r;if(null==e)r=n*Ba,i.point(-Ra,r),i.point(0,r),i.point(Ra,r),i.point(Ra,0),i.point(Ra,-r),i.point(0,-r),i.point(-Ra,-r),i.point(-Ra,0),i.point(-Ra,r);else if(va(e[0]-t[0])>Na){var o=e[0]<t[0]?Ra:-Ra;r=n*o/2,i.point(-o,r),i.point(0,r),i.point(o,r)}else i.point(t[0],t[1])}function Ft(e,t){var n=e[0],i=e[1],r=[Math.sin(n),-Math.cos(n),0],o=0,a=0;_s.reset();for(var s=0,l=t.length;s<l;++s){var c=t[s],u=c.length;if(u)for(var d=c[0],h=d[0],p=d[1]/2+Ra/4,f=Math.sin(p),m=Math.cos(p),g=1;;){g===u&&(g=0);var v=(e=c[g])[0],b=e[1]/2+Ra/4,y=Math.sin(b),_=Math.cos(b),w=v-h,A=w>=0?1:-1,C=A*w,x=C>Ra,S=f*y;if(_s.add(Math.atan2(S*A*Math.sin(C),m*_+S*Math.cos(C))),o+=x?w+A*La:w,x^h>=n^v>=n){var E=vt(mt(d),mt(e));_t(E);var T=vt(r,E);_t(T);var D=(x^w>=0?-1:1)*te(T[2]);(i>D||i===D&&(E[0]||E[1]))&&(a+=x^w>=0?1:-1)}if(!g++)break;h=v,f=y,m=_,d=e}}return(o<-Na||o<Na&&_s<-Na)^1&a}function Ht(e){function t(e,t){return Math.cos(e)*Math.cos(t)>o}function n(e){var n,o,l,c,u;return{lineStart:function(){c=l=!1,u=1},point:function(d,h){var p,f=[d,h],m=t(d,h),g=a?m?0:r(d,h):m?r(d+(d<0?Ra:-Ra),h):0;if(!n&&(c=l=m)&&e.lineStart(),m!==l&&(p=i(n,f),(At(n,p)||At(f,p))&&(f[0]+=Na,f[1]+=Na,m=t(f[0],f[1]))),m!==l)u=0,m?(e.lineStart(),p=i(f,n),e.point(p[0],p[1])):(p=i(n,f),e.point(p[0],p[1]),e.lineEnd()),n=p;else if(s&&n&&a^m){var v;g&o||!(v=i(f,n,!0))||(u=0,a?(e.lineStart(),e.point(v[0][0],v[0][1]),e.point(v[1][0],v[1][1]),e.lineEnd()):(e.point(v[1][0],v[1][1]),e.lineEnd(),e.lineStart(),e.point(v[0][0],v[0][1])))}!m||n&&At(n,f)||e.point(f[0],f[1]),n=f,l=m,o=g},lineEnd:function(){l&&e.lineEnd(),n=null},clean:function(){return u|(c&&l)<<1}}}function i(e,t,n){var i=[1,0,0],r=vt(mt(e),mt(t)),a=gt(r,r),s=r[0],l=a-s*s;if(!l)return!n&&e;var c=o*a/l,u=-o*s/l,d=vt(i,r),h=yt(i,c);bt(h,yt(r,u));var p=d,f=gt(h,p),m=gt(p,p),g=f*f-m*(gt(h,h)-1);if(!(g<0)){var v=Math.sqrt(g),b=yt(p,(-f-v)/m);if(bt(b,h),b=wt(b),!n)return b;var y,_=e[0],w=t[0],A=e[1],C=t[1];w<_&&(y=_,_=w,w=y);var x=w-_,S=va(x-Ra)<Na,E=S||x<Na;if(!S&&C<A&&(y=A,A=C,C=y),E?S?A+C>0^b[1]<(va(b[0]-_)<Na?A:C):A<=b[1]&&b[1]<=C:x>Ra^(_<=b[0]&&b[0]<=w)){var T=yt(p,(-f+v)/m);return bt(T,h),[b,wt(T)]}}}function r(t,n){var i=a?e:Ra-e,r=0;return t<-i?r|=1:t>i&&(r|=2),n<-i?r|=4:n>i&&(r|=8),r}var o=Math.cos(e),a=o>0,s=va(o)>Na;return $t(t,n,mn(e,6*Fa),a?[0,-e]:[-Ra,e-Ra])}function Ut(e,t,n,i){return function(r){var o,a=r.a,s=r.b,l=a.x,c=a.y,u=0,d=1,h=s.x-l,p=s.y-c;if(o=e-l,h||!(o>0)){if(o/=h,h<0){if(o<u)return;o<d&&(d=o)}else if(h>0){if(o>d)return;o>u&&(u=o)}if(o=n-l,h||!(o<0)){if(o/=h,h<0){if(o>d)return;o>u&&(u=o)}else if(h>0){if(o<u)return;o<d&&(d=o)}if(o=t-c,p||!(o>0)){if(o/=p,p<0){if(o<u)return;o<d&&(d=o)}else if(p>0){if(o>d)return;o>u&&(u=o)}if(o=i-c,p||!(o<0)){if(o/=p,p<0){if(o>d)return;o>u&&(u=o)}else if(p>0){if(o<u)return;o<d&&(d=o)}return u>0&&(r.a={x:l+u*h,y:c+u*p}),d<1&&(r.b={x:l+d*h,y:c+d*p}),r}}}}}}function jt(e,t,n,i){function r(i,r){return va(i[0]-e)<Na?r>0?0:3:va(i[0]-n)<Na?r>0?2:1:va(i[1]-t)<Na?r>0?1:0:r>0?3:2}function o(e,t){return a(e.x,t.x)}function a(e,t){var n=r(e,1),i=r(t,1);return n!==i?n-i:0===n?t[1]-e[1]:1===n?e[0]-t[0]:2===n?e[1]-t[1]:t[0]-e[0]}return function(s){function l(e){for(var t=0,n=g.length,i=e[1],r=0;r<n;++r)for(var o,a=1,s=g[r],l=s.length,c=s[0];a<l;++a)o=s[a],c[1]<=i?o[1]>i&&J(c,o,e)>0&&++t:o[1]<=i&&J(c,o,e)<0&&--t,c=o;return 0!==t}function c(o,s,l,c){var u=0,d=0;if(null==o||(u=r(o,l))!==(d=r(s,l))||a(o,s)<0^l>0)do{c.point(0===u||3===u?e:n,u>1?i:t)}while((u=(u+l+4)%4)!==d);else c.point(s[0],s[1])}function u(r,o){return e<=r&&r<=n&&t<=o&&o<=i}function d(e,t){u(e,t)&&s.point(e,t)}function h(){I.point=f,g&&g.push(v=[]),x=!0,C=!1,w=A=NaN}function p(){m&&(f(b,y),_&&C&&T.rejoin(),m.push(T.buffer())),I.point=d,C&&s.lineEnd()}function f(e,t){var n=u(e=Math.max(-Os,Math.min(Os,e)),t=Math.max(-Os,Math.min(Os,t)));if(g&&v.push([e,t]),x)b=e,y=t,_=n,x=!1,n&&(s.lineStart(),s.point(e,t));else if(n&&C)s.point(e,t);else{var i={a:{x:w,y:A},b:{x:e,y:t}};D(i)?(C||(s.lineStart(),s.point(i.a.x,i.a.y)),s.point(i.b.x,i.b.y),n||s.lineEnd(),S=!1):n&&(s.lineStart(),s.point(e,t),S=!1)}w=e,A=t,C=n}var m,g,v,b,y,_,w,A,C,x,S,E=s,T=Ot(),D=Ut(e,t,n,i),I={point:d,lineStart:h,lineEnd:p,polygonStart:function(){s=T,m=[],g=[],S=!0},polygonEnd:function(){s=E,m=sa.merge(m);var t=l([e,i]),n=S&&t,r=m.length;(n||r)&&(s.polygonStart(),n&&(s.lineStart(),c(null,null,1,s),s.lineEnd()),r&&kt(m,o,t,c,s),s.polygonEnd()),m=g=v=null}};return I}}function Wt(e){var t=0,n=Ra/3,i=sn(e),r=i(t,n);return r.parallels=function(e){return arguments.length?i(t=e[0]*Ra/180,n=e[1]*Ra/180):[t/Ra*180,n/Ra*180]},r}function zt(e,t){function n(e,t){var n=Math.sqrt(o-2*r*Math.sin(t))/r;return[n*Math.sin(e*=r),a-n*Math.cos(e)]}var i=Math.sin(e),r=(i+Math.sin(t))/2,o=1+i*(2*r-i),a=Math.sqrt(o)/r;return n.invert=function(e,t){var n=a-t;return[Math.atan2(e,n)/r,te((o-(e*e+n*n)*r*r)/(2*r))]},n}function qt(){function e(e,t){Ls+=r*e-i*t,i=e,r=t}var t,n,i,r;Us.point=function(o,a){Us.point=e,t=i=o,n=r=a},Us.lineEnd=function(){e(t,n)}}function Vt(e,t){e<Gs&&(Gs=e),e>Fs&&(Fs=e),t<Bs&&(Bs=t),t>Hs&&(Hs=t)}function Yt(){function e(e,t){a.push("M",e,",",t,o)}function t(e,t){a.push("M",e,",",t),s.point=n}function n(e,t){a.push("L",e,",",t)}function i(){s.point=e}function r(){a.push("Z")}var o=Kt(4.5),a=[],s={point:e,lineStart:function(){s.point=t},lineEnd:i,polygonStart:function(){s.lineEnd=r},polygonEnd:function(){s.lineEnd=i,s.point=e},pointRadius:function(e){return o=Kt(e),s},result:function(){if(a.length){var e=a.join("");return a=[],e}}};return s}function Kt(e){return"m0,"+e+"a"+e+","+e+" 0 1,1 0,"+-2*e+"a"+e+","+e+" 0 1,1 0,"+2*e+"z"}function Qt(e,t){xs+=e,Ss+=t,++Es}function Xt(){function e(e,i){var r=e-t,o=i-n,a=Math.sqrt(r*r+o*o);Ts+=a*(t+e)/2,Ds+=a*(n+i)/2,Is+=a,Qt(t=e,n=i)}var t,n;Ws.point=function(i,r){Ws.point=e,Qt(t=i,n=r)}}function Zt(){Ws.point=Qt}function Jt(){function e(e,t){var n=e-i,o=t-r,a=Math.sqrt(n*n+o*o);Ts+=a*(i+e)/2,Ds+=a*(r+t)/2,Is+=a,ks+=(a=r*e-i*t)*(i+e),Ms+=a*(r+t),Ps+=3*a,Qt(i=e,r=t)}var t,n,i,r;Ws.point=function(o,a){Ws.point=e,Qt(t=i=o,n=r=a)},Ws.lineEnd=function(){e(t,n)}}function en(e){function t(t,n){e.moveTo(t+a,n),e.arc(t,n,a,0,La)}function n(t,n){e.moveTo(t,n),s.point=i}function i(t,n){e.lineTo(t,n)}function r(){s.point=t}function o(){e.closePath()}var a=4.5,s={point:t,lineStart:function(){s.point=n},lineEnd:r,polygonStart:function(){s.lineEnd=o},polygonEnd:function(){s.lineEnd=r,s.point=t},pointRadius:function(e){return a=e,s},result:w};return s}function tn(e){function t(e){return(s?i:n)(e)}function n(t){return on(t,function(n,i){n=e(n,i),t.point(n[0],n[1])})}function i(t){function n(n,i){n=e(n,i),t.point(n[0],n[1])}function i(){y=NaN,x.point=o,t.lineStart()}function o(n,i){var o=mt([n,i]),a=e(n,i);r(y,_,b,w,A,C,y=a[0],_=a[1],b=n,w=o[0],A=o[1],C=o[2],s,t),t.point(y,_)}function a(){x.point=n,t.lineEnd()}function l(){i(),x.point=c,x.lineEnd=u}function c(e,t){o(d=e,h=t),p=y,f=_,m=w,g=A,v=C,x.point=o}function u(){r(y,_,b,w,A,C,p,f,d,m,g,v,s,t),x.lineEnd=a,a()}var d,h,p,f,m,g,v,b,y,_,w,A,C,x={point:n,lineStart:i,lineEnd:a,polygonStart:function(){t.polygonStart(),x.lineStart=l},polygonEnd:function(){t.polygonEnd(),x.lineStart=i}};return x}function r(t,n,i,s,l,c,u,d,h,p,f,m,g,v){var b=u-t,y=d-n,_=b*b+y*y;if(_>4*o&&g--){var w=s+p,A=l+f,C=c+m,x=Math.sqrt(w*w+A*A+C*C),S=Math.asin(C/=x),E=va(va(C)-1)<Na||va(i-h)<Na?(i+h)/2:Math.atan2(A,w),T=e(E,S),D=T[0],I=T[1],k=D-t,M=I-n,P=y*k-b*M;(P*P/_>o||va((b*k+y*M)/_-.5)>.3||s*p+l*f+c*m<a)&&(r(t,n,i,s,l,c,D,I,E,w/=x,A/=x,C,g,v),v.point(D,I),r(D,I,E,w,A,C,u,d,h,p,f,m,g,v))}}var o=.5,a=Math.cos(30*Fa),s=16;return t.precision=function(e){return arguments.length?(s=(o=e*e)>0&&16,t):Math.sqrt(o)},t}function nn(e){var t=tn(function(t,n){return e([t*Ha,n*Ha])});return function(e){return ln(t(e))}}function rn(e){this.stream=e}function on(e,t){return{point:t,sphere:function(){e.sphere()},lineStart:function(){e.lineStart()},lineEnd:function(){e.lineEnd()},polygonStart:function(){e.polygonStart()},polygonEnd:function(){e.polygonEnd()}}}function an(e){return sn(function(){return e})()}function sn(e){function t(e){return e=s(e[0]*Fa,e[1]*Fa),[e[0]*h+l,c-e[1]*h]}function n(e){return(e=s.invert((e[0]-l)/h,(c-e[1])/h))&&[e[0]*Ha,e[1]*Ha]}function i(){s=Dt(a=dn(v,y,_),o);var e=o(m,g);return l=p-e[0]*h,c=f+e[1]*h,r()}function r(){return u&&(u.valid=!1,u=null),t}var o,a,s,l,c,u,d=tn(function(e,t){return e=o(e,t),[e[0]*h+l,c-e[1]*h]}),h=150,p=480,f=250,m=0,g=0,v=0,y=0,_=0,w=Ns,A=b,C=null,x=null;return t.stream=function(e){return u&&(u.valid=!1),u=ln(w(a,d(A(e)))),u.valid=!0,u},t.clipAngle=function(e){return arguments.length?(w=null==e?(C=e,Ns):Ht((C=+e)*Fa),r()):C},t.clipExtent=function(e){return arguments.length?(x=e,A=e?jt(e[0][0],e[0][1],e[1][0],e[1][1]):b,r()):x},t.scale=function(e){return arguments.length?(h=+e,i()):h},t.translate=function(e){return arguments.length?(p=+e[0],f=+e[1],i()):[p,f]},t.center=function(e){return arguments.length?(m=e[0]%360*Fa,g=e[1]%360*Fa,i()):[m*Ha,g*Ha]},t.rotate=function(e){return arguments.length?(v=e[0]%360*Fa,y=e[1]%360*Fa,_=e.length>2?e[2]%360*Fa:0,i()):[v*Ha,y*Ha,_*Ha]},sa.rebind(t,d,"precision"),function(){return o=e.apply(this,arguments),t.invert=o.invert&&n,i()}}function ln(e){return on(e,function(t,n){e.point(t*Fa,n*Fa)})}function cn(e,t){return[e,t]}function un(e,t){return[e>Ra?e-La:e<-Ra?e+La:e,t]}function dn(e,t,n){return e?t||n?Dt(pn(e),fn(t,n)):pn(e):t||n?fn(t,n):un}function hn(e){return function(t,n){return t+=e,[t>Ra?t-La:t<-Ra?t+La:t,n]}}function pn(e){var t=hn(e);return t.invert=hn(-e),t}function fn(e,t){function n(e,t){var n=Math.cos(t),s=Math.cos(e)*n,l=Math.sin(e)*n,c=Math.sin(t),u=c*i+s*r;return[Math.atan2(l*o-u*a,s*i-c*r),te(u*o+l*a)]}var i=Math.cos(e),r=Math.sin(e),o=Math.cos(t),a=Math.sin(t);return n.invert=function(e,t){var n=Math.cos(t),s=Math.cos(e)*n,l=Math.sin(e)*n,c=Math.sin(t),u=c*o-l*a;return[Math.atan2(l*o+c*a,s*i+u*r),te(u*i-s*r)]},n}function mn(e,t){var n=Math.cos(e),i=Math.sin(e);return function(r,o,a,s){var l=a*t;null!=r?(r=gn(n,r),o=gn(n,o),(a>0?r<o:r>o)&&(r+=a*La)):(r=e+a*La,o=e-.5*l);for(var c,u=r;a>0?u>o:u<o;u-=l)s.point((c=wt([n,-i*Math.cos(u),-i*Math.sin(u)]))[0],c[1])}}function gn(e,t){var n=mt(t);n[0]-=e,_t(n);var i=ee(-n[1]);return((-n[2]<0?-i:i)+2*Math.PI-Na)%(2*Math.PI)}function vn(e,t,n){var i=sa.range(e,t-Na,n).concat(t);return function(e){return i.map(function(t){return[e,t]})}}function bn(e,t,n){var i=sa.range(e,t-Na,n).concat(t);return function(e){return i.map(function(t){return[t,e]})}}function yn(e){return e.source}function _n(e){return e.target}function wn(e,t,n,i){var r=Math.cos(t),o=Math.sin(t),a=Math.cos(i),s=Math.sin(i),l=r*Math.cos(e),c=r*Math.sin(e),u=a*Math.cos(n),d=a*Math.sin(n),h=2*Math.asin(Math.sqrt(oe(i-t)+r*a*oe(n-e))),p=1/Math.sin(h),f=h?function(e){var t=Math.sin(e*=h)*p,n=Math.sin(h-e)*p,i=n*l+t*u,r=n*c+t*d,a=n*o+t*s;return[Math.atan2(r,i)*Ha,Math.atan2(a,Math.sqrt(i*i+r*r))*Ha]}:function(){return[e*Ha,t*Ha]};return f.distance=h,f}function An(){function e(e,r){var o=Math.sin(r*=Fa),a=Math.cos(r),s=va((e*=Fa)-t),l=Math.cos(s);zs+=Math.atan2(Math.sqrt((s=a*Math.sin(s))*s+(s=i*o-n*a*l)*s),n*o+i*a*l),t=e,n=o,i=a}var t,n,i;qs.point=function(r,o){t=r*Fa,n=Math.sin(o*=Fa),i=Math.cos(o),qs.point=e},qs.lineEnd=function(){qs.point=qs.lineEnd=w}}function Cn(e,t){function n(t,n){var i=Math.cos(t),r=Math.cos(n),o=e(i*r);return[o*r*Math.sin(t),o*Math.sin(n)]}return n.invert=function(e,n){var i=Math.sqrt(e*e+n*n),r=t(i),o=Math.sin(r),a=Math.cos(r);return[Math.atan2(e*o,i*a),Math.asin(i&&n*o/i)]},n}function xn(e,t){function n(e,t){a>0?t<-Ba+Na&&(t=-Ba+Na):t>Ba-Na&&(t=Ba-Na);var n=a/Math.pow(r(t),o);return[n*Math.sin(o*e),a-n*Math.cos(o*e)]}var i=Math.cos(e),r=function(e){return Math.tan(Ra/4+e/2)},o=e===t?Math.sin(e):Math.log(i/Math.cos(t))/Math.log(r(t)/r(e)),a=i*Math.pow(r(e),o)/o;return o?(n.invert=function(e,t){var n=a-t,i=Z(o)*Math.sqrt(e*e+n*n);return[Math.atan2(e,n)/o,2*Math.atan(Math.pow(a/i,1/o))-Ba]},n):En}function Sn(e,t){function n(e,t){var n=o-t;return[n*Math.sin(r*e),o-n*Math.cos(r*e)]}var i=Math.cos(e),r=e===t?Math.sin(e):(i-Math.cos(t))/(t-e),o=i/r+e;return va(r)<Na?cn:(n.invert=function(e,t){var n=o-t;return[Math.atan2(e,n)/r,o-Z(r)*Math.sqrt(e*e+n*n)]},n)}function En(e,t){return[e,Math.log(Math.tan(Ra/4+t/2))]}function Tn(e){var t,n=an(e),i=n.scale,r=n.translate,o=n.clipExtent;return n.scale=function(){var e=i.apply(n,arguments);return e===n?t?n.clipExtent(null):n:e},n.translate=function(){var e=r.apply(n,arguments);return e===n?t?n.clipExtent(null):n:e},n.clipExtent=function(e){var a=o.apply(n,arguments);if(a===n){if(t=null==e){var s=Ra*i(),l=r();o([[l[0]-s,l[1]-s],[l[0]+s,l[1]+s]])}}else t&&(a=null);return a},n.clipExtent(null)}function Dn(e,t){return[Math.log(Math.tan(Ra/4+t/2)),-e]}function In(e){return e[0]}function kn(e){return e[1]}function Mn(e){for(var t=e.length,n=[0,1],i=2,r=2;r<t;r++){for(;i>1&&J(e[n[i-2]],e[n[i-1]],e[r])<=0;)--i;n[i++]=r}return n.slice(0,i)}function Pn(e,t){return e[0]-t[0]||e[1]-t[1]}function $n(e,t,n){return(n[0]-t[0])*(e[1]-t[1])<(n[1]-t[1])*(e[0]-t[0])}function Nn(e,t,n,i){var r=e[0],o=n[0],a=t[0]-r,s=i[0]-o,l=e[1],c=n[1],u=t[1]-l,d=i[1]-c,h=(s*(l-c)-d*(r-o))/(d*a-s*u);return[r+h*a,l+h*u]}function On(e){var t=e[0],n=e[e.length-1];return!(t[0]-n[0]||t[1]-n[1])}function Rn(){ii(this),this.edge=this.site=this.circle=null}function Ln(e){var t=rl.pop()||new Rn;return t.site=e,t}function Gn(e){Yn(e),tl.remove(e),rl.push(e),ii(e)}function Bn(e){var t=e.circle,n=t.x,i=t.cy,r={x:n,y:i},o=e.P,a=e.N,s=[e];Gn(e);for(var l=o;l.circle&&va(n-l.circle.x)<Na&&va(i-l.circle.cy)<Na;)o=l.P,s.unshift(l),Gn(l),l=o;s.unshift(l),Yn(l);for(var c=a;c.circle&&va(n-c.circle.x)<Na&&va(i-c.circle.cy)<Na;)a=c.N,s.push(c),Gn(c),c=a;s.push(c),Yn(c);var u,d=s.length;for(u=1;u<d;++u)c=s[u],l=s[u-1],ei(c.edge,l.site,c.site,r);l=s[0],(c=s[d-1]).edge=Zn(l.site,c.site,null,r),Vn(l),Vn(c)}function Fn(e){for(var t,n,i,r,o=e.x,a=e.y,s=tl._;s;)if((i=Hn(s,a)-o)>Na)s=s.L;else{if(!((r=o-Un(s,a))>Na)){i>-Na?(t=s.P,n=s):r>-Na?(t=s,n=s.N):t=n=s;break}if(!s.R){t=s;break}s=s.R}var l=Ln(e);if(tl.insert(t,l),t||n){if(t===n)return Yn(t),n=Ln(t.site),tl.insert(l,n),l.edge=n.edge=Zn(t.site,l.site),Vn(t),void Vn(n);if(n){Yn(t),Yn(n);var c=t.site,u=c.x,d=c.y,h=e.x-u,p=e.y-d,f=n.site,m=f.x-u,g=f.y-d,v=2*(h*g-p*m),b=h*h+p*p,y=m*m+g*g,_={x:(g*b-p*y)/v+u,y:(h*y-m*b)/v+d};ei(n.edge,c,f,_),l.edge=Zn(c,e,null,_),n.edge=Zn(e,f,null,_),Vn(t),Vn(n)}else l.edge=Zn(t.site,l.site)}}function Hn(e,t){var n=e.site,i=n.x,r=n.y,o=r-t;if(!o)return i;var a=e.P;if(!a)return-1/0;var s=(n=a.site).x,l=n.y,c=l-t;if(!c)return s;var u=s-i,d=1/o-1/c,h=u/c;return d?(-h+Math.sqrt(h*h-2*d*(u*u/(-2*c)-l+c/2+r-o/2)))/d+i:(i+s)/2}function Un(e,t){var n=e.N;if(n)return Hn(n,t);var i=e.site;return i.y===t?i.x:1/0}function jn(e){this.site=e,this.edges=[]}function Wn(e){for(var t,n,i,r,o,a,s,l,c,u,d=e[0][0],h=e[1][0],p=e[0][1],f=e[1][1],m=el,g=m.length;g--;)if((o=m[g])&&o.prepare())for(l=(s=o.edges).length,a=0;a<l;)i=(u=s[a].end()).x,r=u.y,t=(c=s[++a%l].start()).x,n=c.y,(va(i-t)>Na||va(r-n)>Na)&&(s.splice(a,0,new ti(Jn(o.site,u,va(i-d)<Na&&f-r>Na?{x:d,y:va(t-d)<Na?n:f}:va(r-f)<Na&&h-i>Na?{x:va(n-f)<Na?t:h,y:f}:va(i-h)<Na&&r-p>Na?{x:h,y:va(t-h)<Na?n:p}:va(r-p)<Na&&i-d>Na?{x:va(n-p)<Na?t:d,y:p}:null),o.site,null)),++l)}function zn(e,t){return t.angle-e.angle}function qn(){ii(this),this.x=this.y=this.arc=this.site=this.cy=null}function Vn(e){var t=e.P,n=e.N;if(t&&n){var i=t.site,r=e.site,o=n.site;if(i!==o){var a=r.x,s=r.y,l=i.x-a,c=i.y-s,u=o.x-a,d=2*(l*(g=o.y-s)-c*u);if(!(d>=-Oa)){var h=l*l+c*c,p=u*u+g*g,f=(g*h-c*p)/d,m=(l*p-u*h)/d,g=m+s,v=ol.pop()||new qn;v.arc=e,v.site=r,v.x=f+a,v.y=g+Math.sqrt(f*f+m*m),v.cy=g,e.circle=v;for(var b=null,y=il._;y;)if(v.y<y.y||v.y===y.y&&v.x<=y.x){if(!y.L){b=y.P;break}y=y.L}else{if(!y.R){b=y;break}y=y.R}il.insert(b,v),b||(nl=v)}}}}function Yn(e){var t=e.circle;t&&(t.P||(nl=t.N),il.remove(t),ol.push(t),ii(t),e.circle=null)}function Kn(e){for(var t,n=Js,i=Ut(e[0][0],e[0][1],e[1][0],e[1][1]),r=n.length;r--;)(!Qn(t=n[r],e)||!i(t)||va(t.a.x-t.b.x)<Na&&va(t.a.y-t.b.y)<Na)&&(t.a=t.b=null,n.splice(r,1))}function Qn(e,t){var n=e.b;if(n)return!0;var i,r,o=e.a,a=t[0][0],s=t[1][0],l=t[0][1],c=t[1][1],u=e.l,d=e.r,h=u.x,p=u.y,f=d.x,m=d.y,g=(h+f)/2,v=(p+m)/2;if(m===p){if(g<a||g>=s)return;if(h>f){if(o){if(o.y>=c)return}else o={x:g,y:l};n={x:g,y:c}}else{if(o){if(o.y<l)return}else o={x:g,y:c};n={x:g,y:l}}}else if(i=(h-f)/(m-p),r=v-i*g,i<-1||i>1)if(h>f){if(o){if(o.y>=c)return}else o={x:(l-r)/i,y:l};n={x:(c-r)/i,y:c}}else{if(o){if(o.y<l)return}else o={x:(c-r)/i,y:c};n={x:(l-r)/i,y:l}}else if(p<m){if(o){if(o.x>=s)return}else o={x:a,y:i*a+r};n={x:s,y:i*s+r}}else{if(o){if(o.x<a)return}else o={x:s,y:i*s+r};n={x:a,y:i*a+r}}return e.a=o,e.b=n,!0}function Xn(e,t){this.l=e,this.r=t,this.a=this.b=null}function Zn(e,t,n,i){var r=new Xn(e,t);return Js.push(r),n&&ei(r,e,t,n),i&&ei(r,t,e,i),el[e.i].edges.push(new ti(r,e,t)),el[t.i].edges.push(new ti(r,t,e)),r}function Jn(e,t,n){var i=new Xn(e,null);return i.a=t,i.b=n,Js.push(i),i}function ei(e,t,n,i){e.a||e.b?e.l===n?e.b=i:e.a=i:(e.a=i,e.l=t,e.r=n)}function ti(e,t,n){var i=e.a,r=e.b;this.edge=e,this.site=t,this.angle=n?Math.atan2(n.y-t.y,n.x-t.x):e.l===t?Math.atan2(r.x-i.x,i.y-r.y):Math.atan2(i.x-r.x,r.y-i.y)}function ni(){this._=null}function ii(e){e.U=e.C=e.L=e.R=e.P=e.N=null}function ri(e,t){var n=t,i=t.R,r=n.U;r?r.L===n?r.L=i:r.R=i:e._=i,i.U=r,n.U=i,n.R=i.L,n.R&&(n.R.U=n),i.L=n}function oi(e,t){var n=t,i=t.L,r=n.U;r?r.L===n?r.L=i:r.R=i:e._=i,i.U=r,n.U=i,n.L=i.R,n.L&&(n.L.U=n),i.R=n}function ai(e){for(;e.L;)e=e.L;return e}function si(e,t){var n,i,r,o=e.sort(li).pop();for(Js=[],el=new Array(e.length),tl=new ni,il=new ni;;)if(r=nl,o&&(!r||o.y<r.y||o.y===r.y&&o.x<r.x))o.x===n&&o.y===i||(el[o.i]=new jn(o),Fn(o),n=o.x,i=o.y),o=e.pop();else{if(!r)break;Bn(r.arc)}t&&(Kn(t),Wn(t));var a={cells:el,edges:Js};return tl=il=Js=el=null,a}function li(e,t){return t.y-e.y||t.x-e.x}function ci(e,t,n){return(e.x-n.x)*(t.y-e.y)-(e.x-t.x)*(n.y-e.y)}function ui(e){return e.x}function di(e){return e.y}function hi(e,t,n,i,r,o){if(!e(t,n,i,r,o)){var a=.5*(n+r),s=.5*(i+o),l=t.nodes;l[0]&&hi(e,l[0],n,i,a,s),l[1]&&hi(e,l[1],a,i,r,s),l[2]&&hi(e,l[2],n,s,a,o),l[3]&&hi(e,l[3],a,s,r,o)}}function pi(e,t,n,i,r,o,a){var s,l=1/0;return function e(c,u,d,h,p){if(!(u>o||d>a||h<i||p<r)){if(f=c.point){var f,m=t-c.x,g=n-c.y,v=m*m+g*g;if(v<l){var b=Math.sqrt(l=v);i=t-b,r=n-b,o=t+b,a=n+b,s=f}}for(var y=c.nodes,_=.5*(u+h),w=.5*(d+p),A=(n>=w)<<1|t>=_,C=A+4;A<C;++A)if(c=y[3&A])switch(3&A){case 0:e(c,u,d,_,w);break;case 1:e(c,_,d,h,w);break;case 2:e(c,u,w,_,p);break;case 3:e(c,_,w,h,p)}}}(e,i,r,o,a),s}function fi(e,t){e=sa.rgb(e),t=sa.rgb(t);var n=e.r,i=e.g,r=e.b,o=t.r-n,a=t.g-i,s=t.b-r;return function(e){return"#"+_e(Math.round(n+o*e))+_e(Math.round(i+a*e))+_e(Math.round(r+s*e))}}function mi(e,t){var n,i={},r={};for(n in e)n in t?i[n]=bi(e[n],t[n]):r[n]=e[n];for(n in t)n in e||(r[n]=t[n]);return function(e){for(n in i)r[n]=i[n](e);return r}}function gi(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function vi(e,t){var n,i,r,o=sl.lastIndex=ll.lastIndex=0,a=-1,s=[],l=[];for(e+="",t+="";(n=sl.exec(e))&&(i=ll.exec(t));)(r=i.index)>o&&(r=t.slice(o,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(i=i[0])?s[a]?s[a]+=i:s[++a]=i:(s[++a]=null,l.push({i:a,x:gi(n,i)})),o=ll.lastIndex;return o<t.length&&(r=t.slice(o),s[a]?s[a]+=r:s[++a]=r),s.length<2?l[0]?(t=l[0].x,function(e){return t(e)+""}):function(){return t}:(t=l.length,function(e){for(var n,i=0;i<t;++i)s[(n=l[i]).i]=n.x(e);return s.join("")})}function bi(e,t){for(var n,i=sa.interpolators.length;--i>=0&&!(n=sa.interpolators[i](e,t)););return n}function yi(e,t){var n,i=[],r=[],o=e.length,a=t.length,s=Math.min(e.length,t.length);for(n=0;n<s;++n)i.push(bi(e[n],t[n]));for(;n<o;++n)r[n]=e[n];for(;n<a;++n)r[n]=t[n];return function(e){for(n=0;n<s;++n)r[n]=i[n](e);return r}}function _i(e){return function(t){return t<=0?0:t>=1?1:e(t)}}function wi(e){return function(t){return 1-e(1-t)}}function Ai(e){return function(t){return.5*(t<.5?e(2*t):2-e(2-2*t))}}function Ci(e){return e*e}function xi(e){return e*e*e}function Si(e){if(e<=0)return 0;if(e>=1)return 1;var t=e*e,n=t*e;return 4*(e<.5?n:3*(e-t)+n-.75)}function Ei(e){return function(t){return Math.pow(t,e)}}function Ti(e){return 1-Math.cos(e*Ba)}function Di(e){return Math.pow(2,10*(e-1))}function Ii(e){return 1-Math.sqrt(1-e*e)}function ki(e,t){var n;return arguments.length<2&&(t=.45),arguments.length?n=t/La*Math.asin(1/e):(e=1,n=t/4),function(i){return 1+e*Math.pow(2,-10*i)*Math.sin((i-n)*La/t)}}function Mi(e){return e||(e=1.70158),function(t){return t*t*((e+1)*t-e)}}function Pi(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375}function $i(e,t){e=sa.hcl(e),t=sa.hcl(t);var n=e.h,i=e.c,r=e.l,o=t.h-n,a=t.c-i,s=t.l-r;return isNaN(a)&&(a=0,i=isNaN(i)?t.c:i),isNaN(o)?(o=0,n=isNaN(n)?t.h:n):o>180?o-=360:o<-180&&(o+=360),function(e){return ue(n+o*e,i+a*e,r+s*e)+""}}function Ni(e,t){e=sa.hsl(e),t=sa.hsl(t);var n=e.h,i=e.s,r=e.l,o=t.h-n,a=t.s-i,s=t.l-r;return isNaN(a)&&(a=0,i=isNaN(i)?t.s:i),isNaN(o)?(o=0,n=isNaN(n)?t.h:n):o>180?o-=360:o<-180&&(o+=360),function(e){return le(n+o*e,i+a*e,r+s*e)+""}}function Oi(e,t){e=sa.lab(e),t=sa.lab(t);var n=e.l,i=e.a,r=e.b,o=t.l-n,a=t.a-i,s=t.b-r;return function(e){return he(n+o*e,i+a*e,r+s*e)+""}}function Ri(e,t){return t-=e,function(n){return Math.round(e+t*n)}}function Li(e){var t=[e.a,e.b],n=[e.c,e.d],i=Bi(t),r=Gi(t,n),o=Bi(Fi(n,t,-r))||0;t[0]*n[1]<n[0]*t[1]&&(t[0]*=-1,t[1]*=-1,i*=-1,r*=-1),this.rotate=(i?Math.atan2(t[1],t[0]):Math.atan2(-n[0],n[1]))*Ha,this.translate=[e.e,e.f],this.scale=[i,o],this.skew=o?Math.atan2(r,o)*Ha:0}function Gi(e,t){return e[0]*t[0]+e[1]*t[1]}function Bi(e){var t=Math.sqrt(Gi(e,e));return t&&(e[0]/=t,e[1]/=t),t}function Fi(e,t,n){return e[0]+=n*t[0],e[1]+=n*t[1],e}function Hi(e){return e.length?e.pop()+",":""}function Ui(e,t,n,i){if(e[0]!==t[0]||e[1]!==t[1]){var r=n.push("translate(",null,",",null,")");i.push({i:r-4,x:gi(e[0],t[0])},{i:r-2,x:gi(e[1],t[1])})}else(t[0]||t[1])&&n.push("translate("+t+")")}function ji(e,t,n,i){e!==t?(e-t>180?t+=360:t-e>180&&(e+=360),i.push({i:n.push(Hi(n)+"rotate(",null,")")-2,x:gi(e,t)})):t&&n.push(Hi(n)+"rotate("+t+")")}function Wi(e,t,n,i){e!==t?i.push({i:n.push(Hi(n)+"skewX(",null,")")-2,x:gi(e,t)}):t&&n.push(Hi(n)+"skewX("+t+")")}function zi(e,t,n,i){if(e[0]!==t[0]||e[1]!==t[1]){var r=n.push(Hi(n)+"scale(",null,",",null,")");i.push({i:r-4,x:gi(e[0],t[0])},{i:r-2,x:gi(e[1],t[1])})}else 1===t[0]&&1===t[1]||n.push(Hi(n)+"scale("+t+")")}function qi(e,t){var n=[],i=[];return e=sa.transform(e),t=sa.transform(t),Ui(e.translate,t.translate,n,i),ji(e.rotate,t.rotate,n,i),Wi(e.skew,t.skew,n,i),zi(e.scale,t.scale,n,i),e=t=null,function(e){for(var t,r=-1,o=i.length;++r<o;)n[(t=i[r]).i]=t.x(e);return n.join("")}}function Vi(e,t){return t=(t-=e=+e)||1/t,function(n){return(n-e)/t}}function Yi(e,t){return t=(t-=e=+e)||1/t,function(n){return Math.max(0,Math.min(1,(n-e)/t))}}function Ki(e){for(var t=e.source,n=e.target,i=Xi(t,n),r=[t];t!==i;)t=t.parent,r.push(t);for(var o=r.length;n!==i;)r.splice(o,0,n),n=n.parent;return r}function Qi(e){for(var t=[],n=e.parent;null!=n;)t.push(e),e=n,n=n.parent;return t.push(e),t}function Xi(e,t){if(e===t)return e;for(var n=Qi(e),i=Qi(t),r=n.pop(),o=i.pop(),a=null;r===o;)a=r,r=n.pop(),o=i.pop();return a}function Zi(e){e.fixed|=2}function Ji(e){e.fixed&=-7}function er(e){e.fixed|=4,e.px=e.x,e.py=e.y}function tr(e){e.fixed&=-5}function nr(e,t,n){var i=0,r=0;if(e.charge=0,!e.leaf)for(var o,a=e.nodes,s=a.length,l=-1;++l<s;)null!=(o=a[l])&&(nr(o,t,n),e.charge+=o.charge,i+=o.charge*o.cx,r+=o.charge*o.cy);if(e.point){e.leaf||(e.point.x+=Math.random()-.5,e.point.y+=Math.random()-.5);var c=t*n[e.point.index];e.charge+=e.pointCharge=c,i+=c*e.point.x,r+=c*e.point.y}e.cx=i/e.charge,e.cy=r/e.charge}function ir(e,t){return sa.rebind(e,t,"sort","children","value"),e.nodes=e,e.links=cr,e}function rr(e,t){for(var n=[e];null!=(e=n.pop());)if(t(e),(r=e.children)&&(i=r.length))for(var i,r;--i>=0;)n.push(r[i])}function or(e,t){for(var n=[e],i=[];null!=(e=n.pop());)if(i.push(e),(o=e.children)&&(r=o.length))for(var r,o,a=-1;++a<r;)n.push(o[a]);for(;null!=(e=i.pop());)t(e)}function ar(e){return e.children}function sr(e){return e.value}function lr(e,t){return t.value-e.value}function cr(e){return sa.merge(e.map(function(e){return(e.children||[]).map(function(t){return{source:e,target:t}})}))}function ur(e){return e.x}function dr(e){return e.y}function hr(e,t,n){e.y0=t,e.y=n}function pr(e){return sa.range(e.length)}function fr(e){for(var t=-1,n=e[0].length,i=[];++t<n;)i[t]=0;return i}function mr(e){for(var t,n=1,i=0,r=e[0][1],o=e.length;n<o;++n)(t=e[n][1])>r&&(i=n,r=t);return i}function gr(e){return e.reduce(vr,0)}function vr(e,t){return e+t[1]}function br(e,t){return yr(e,Math.ceil(Math.log(t.length)/Math.LN2+1))}function yr(e,t){for(var n=-1,i=+e[0],r=(e[1]-i)/t,o=[];++n<=t;)o[n]=r*n+i;return o}function _r(e){return[sa.min(e),sa.max(e)]}function wr(e,t){return e.value-t.value}function Ar(e,t){var n=e._pack_next;e._pack_next=t,t._pack_prev=e,t._pack_next=n,n._pack_prev=t}function Cr(e,t){e._pack_next=t,t._pack_prev=e}function xr(e,t){var n=t.x-e.x,i=t.y-e.y,r=e.r+t.r;return.999*r*r>n*n+i*i}function Sr(e){function t(e){u=Math.min(e.x-e.r,u),d=Math.max(e.x+e.r,d),h=Math.min(e.y-e.r,h),p=Math.max(e.y+e.r,p)}if((n=e.children)&&(c=n.length)){var n,i,r,o,a,s,l,c,u=1/0,d=-1/0,h=1/0,p=-1/0;if(n.forEach(Er),i=n[0],i.x=-i.r,i.y=0,t(i),c>1&&(r=n[1],r.x=r.r,r.y=0,t(r),c>2))for(Ir(i,r,o=n[2]),t(o),Ar(i,o),i._pack_prev=o,Ar(o,r),r=i._pack_next,a=3;a<c;a++){Ir(i,r,o=n[a]);var f=0,m=1,g=1;for(s=r._pack_next;s!==r;s=s._pack_next,m++)if(xr(s,o)){f=1;break}if(1==f)for(l=i._pack_prev;l!==s._pack_prev&&!xr(l,o);l=l._pack_prev,g++);f?(m<g||m==g&&r.r<i.r?Cr(i,r=s):Cr(i=l,r),a--):(Ar(i,o),r=o,t(o))}var v=(u+d)/2,b=(h+p)/2,y=0;for(a=0;a<c;a++)(o=n[a]).x-=v,o.y-=b,y=Math.max(y,o.r+Math.sqrt(o.x*o.x+o.y*o.y));e.r=y,n.forEach(Tr)}}function Er(e){e._pack_next=e._pack_prev=e}function Tr(e){delete e._pack_next,delete e._pack_prev}function Dr(e,t,n,i){var r=e.children;if(e.x=t+=i*e.x,e.y=n+=i*e.y,e.r*=i,r)for(var o=-1,a=r.length;++o<a;)Dr(r[o],t,n,i)}function Ir(e,t,n){var i=e.r+n.r,r=t.x-e.x,o=t.y-e.y;if(i&&(r||o)){var a=t.r+n.r,s=r*r+o*o,l=.5+((i*=i)-(a*=a))/(2*s),c=Math.sqrt(Math.max(0,2*a*(i+s)-(i-=s)*i-a*a))/(2*s);n.x=e.x+l*r+c*o,n.y=e.y+l*o-c*r}else n.x=e.x+i,n.y=e.y}function kr(e,t){return e.parent==t.parent?1:2}function Mr(e){var t=e.children;return t.length?t[0]:e.t}function Pr(e){var t,n=e.children;return(t=n.length)?n[t-1]:e.t}function $r(e,t,n){var i=n/(t.i-e.i);t.c-=i,t.s+=n,e.c+=i,t.z+=n,t.m+=n}function Nr(e){for(var t,n=0,i=0,r=e.children,o=r.length;--o>=0;)(t=r[o]).z+=n,t.m+=n,n+=t.s+(i+=t.c)}function Or(e,t,n){return e.a.parent===t.parent?e.a:n}function Rr(e){return 1+sa.max(e,function(e){return e.y})}function Lr(e){return e.reduce(function(e,t){return e+t.x},0)/e.length}function Gr(e){var t=e.children;return t&&t.length?Gr(t[0]):e}function Br(e){var t,n=e.children;return n&&(t=n.length)?Br(n[t-1]):e}function Fr(e){return{x:e.x,y:e.y,dx:e.dx,dy:e.dy}}function Hr(e,t){var n=e.x+t[3],i=e.y+t[0],r=e.dx-t[1]-t[3],o=e.dy-t[0]-t[2];return r<0&&(n+=r/2,r=0),o<0&&(i+=o/2,o=0),{x:n,y:i,dx:r,dy:o}}function Ur(e){var t=e[0],n=e[e.length-1];return t<n?[t,n]:[n,t]}function jr(e){return e.rangeExtent?e.rangeExtent():Ur(e.range())}function Wr(e,t,n,i){var r=n(e[0],e[1]),o=i(t[0],t[1]);return function(e){return o(r(e))}}function zr(e,t){var n,i=0,r=e.length-1,o=e[i],a=e[r];return a<o&&(n=i,i=r,r=n,n=o,o=a,a=n),e[i]=t.floor(o),e[r]=t.ceil(a),e}function qr(e){return e?{floor:function(t){return Math.floor(t/e)*e},ceil:function(t){return Math.ceil(t/e)*e}}:yl}function Vr(e,t,n,i){var r=[],o=[],a=0,s=Math.min(e.length,t.length)-1;for(e[s]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++a<=s;)r.push(n(e[a-1],e[a])),o.push(i(t[a-1],t[a]));return function(t){var n=sa.bisect(e,t,1,s)-1;return o[n](r[n](t))}}function Yr(e,t,n,i){function r(){var r=Math.min(e.length,t.length)>2?Vr:Wr,l=i?Yi:Vi;return a=r(e,t,l,n),s=r(t,e,l,bi),o}function o(e){return a(e)}var a,s;return o.invert=function(e){return s(e)},o.domain=function(t){return arguments.length?(e=t.map(Number),r()):e},o.range=function(e){return arguments.length?(t=e,r()):t},o.rangeRound=function(e){return o.range(e).interpolate(Ri)},o.clamp=function(e){return arguments.length?(i=e,r()):i},o.interpolate=function(e){return arguments.length?(n=e,r()):n},o.ticks=function(t){return Zr(e,t)},o.tickFormat=function(t,n){return Jr(e,t,n)},o.nice=function(t){return Qr(e,t),r()},o.copy=function(){return Yr(e,t,n,i)},r()}function Kr(e,t){return sa.rebind(e,t,"range","rangeRound","interpolate","clamp")}function Qr(e,t){return zr(e,qr(Xr(e,t)[2])),zr(e,qr(Xr(e,t)[2])),e}function Xr(e,t){null==t&&(t=10);var n=Ur(e),i=n[1]-n[0],r=Math.pow(10,Math.floor(Math.log(i/t)/Math.LN10)),o=t/i*r;return o<=.15?r*=10:o<=.35?r*=5:o<=.75&&(r*=2),n[0]=Math.ceil(n[0]/r)*r,n[1]=Math.floor(n[1]/r)*r+.5*r,n[2]=r,n}function Zr(e,t){return sa.range.apply(sa,Xr(e,t))}function Jr(e,t,n){var i=Xr(e,t);if(n){var r=ss.exec(n);if(r.shift(),"s"===r[8]){var o=sa.formatPrefix(Math.max(va(i[0]),va(i[1])));return r[7]||(r[7]="."+eo(o.scale(i[2]))),r[8]="f",n=sa.format(r.join("")),function(e){return n(o.scale(e))+o.symbol}}r[7]||(r[7]="."+to(r[8],i)),n=r.join("")}else n=",."+eo(i[2])+"f";return sa.format(n)}function eo(e){return-Math.floor(Math.log(e)/Math.LN10+.01)}function to(e,t){var n=eo(t[2]);return e in _l?Math.abs(n-eo(Math.max(va(t[0]),va(t[1]))))+ +("e"!==e):n-2*("%"===e)}function no(e,t,n,i){function r(e){return(n?Math.log(e<0?0:e):-Math.log(e>0?0:-e))/Math.log(t)}function o(e){return n?Math.pow(t,e):-Math.pow(t,-e)}function a(t){return e(r(t))}return a.invert=function(t){return o(e.invert(t))},a.domain=function(t){return arguments.length?(n=t[0]>=0,e.domain((i=t.map(Number)).map(r)),a):i},a.base=function(n){return arguments.length?(t=+n,e.domain(i.map(r)),a):t},a.nice=function(){var t=zr(i.map(r),n?Math:Al);return e.domain(t),i=t.map(o),a},a.ticks=function(){var e=Ur(i),a=[],s=e[0],l=e[1],c=Math.floor(r(s)),u=Math.ceil(r(l)),d=t%1?2:t;if(isFinite(u-c)){if(n){for(;c<u;c++)for(h=1;h<d;h++)a.push(o(c)*h);a.push(o(c))}else for(a.push(o(c));c++<u;)for(var h=d-1;h>0;h--)a.push(o(c)*h);for(c=0;a[c]<s;c++);for(u=a.length;a[u-1]>l;u--);a=a.slice(c,u)}return a},a.tickFormat=function(e,n){if(!arguments.length)return wl;arguments.length<2?n=wl:"function"!=typeof n&&(n=sa.format(n));var i=Math.max(1,t*e/a.ticks().length);return function(e){var a=e/o(Math.round(r(e)));return a*t<t-.5&&(a*=t),a<=i?n(e):""}},a.copy=function(){return no(e.copy(),t,n,i)},Kr(a,e)}function io(e,t,n){function i(t){return e(r(t))}var r=ro(t),o=ro(1/t);return i.invert=function(t){return o(e.invert(t))},i.domain=function(t){return arguments.length?(e.domain((n=t.map(Number)).map(r)),i):n},i.ticks=function(e){return Zr(n,e)},i.tickFormat=function(e,t){return Jr(n,e,t)},i.nice=function(e){return i.domain(Qr(n,e))},i.exponent=function(a){return arguments.length?(r=ro(t=a),o=ro(1/t),e.domain(n.map(r)),i):t},i.copy=function(){return io(e.copy(),t,n)},Kr(i,e)}function ro(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function oo(e,t){function n(n){return o[((r.get(n)||("range"===t.t?r.set(n,e.push(n)):NaN))-1)%o.length]}function i(t,n){return sa.range(e.length).map(function(e){return t+n*e})}var r,o,a;return n.domain=function(i){if(!arguments.length)return e;e=[],r=new c;for(var o,a=-1,s=i.length;++a<s;)r.has(o=i[a])||r.set(o,e.push(o));return n[t.t].apply(n,t.a)},n.range=function(e){return arguments.length?(o=e,a=0,t={t:"range",a:arguments},n):o},n.rangePoints=function(r,s){arguments.length<2&&(s=0);var l=r[0],c=r[1],u=e.length<2?(l=(l+c)/2,0):(c-l)/(e.length-1+s);return o=i(l+u*s/2,u),a=0,t={t:"rangePoints",a:arguments},n},n.rangeRoundPoints=function(r,s){arguments.length<2&&(s=0);var l=r[0],c=r[1],u=e.length<2?(l=c=Math.round((l+c)/2),0):(c-l)/(e.length-1+s)|0;return o=i(l+Math.round(u*s/2+(c-l-(e.length-1+s)*u)/2),u),a=0,t={t:"rangeRoundPoints",a:arguments},n},n.rangeBands=function(r,s,l){arguments.length<2&&(s=0),arguments.length<3&&(l=s);var c=r[1]<r[0],u=r[c-0],d=(r[1-c]-u)/(e.length-s+2*l);return o=i(u+d*l,d),c&&o.reverse(),a=d*(1-s),t={t:"rangeBands",a:arguments},n},n.rangeRoundBands=function(r,s,l){arguments.length<2&&(s=0),arguments.length<3&&(l=s);var c=r[1]<r[0],u=r[c-0],d=r[1-c],h=Math.floor((d-u)/(e.length-s+2*l));return o=i(u+Math.round((d-u-(e.length-s)*h)/2),h),c&&o.reverse(),a=Math.round(h*(1-s)),t={t:"rangeRoundBands",a:arguments},n},n.rangeBand=function(){return a},n.rangeExtent=function(){return Ur(t.a[0])},n.copy=function(){return oo(e,t)},n.domain(e)}function ao(e,t){function o(){var n=0,i=t.length;for(s=[];++n<i;)s[n-1]=sa.quantile(e,n/i);return a}function a(e){if(!isNaN(e=+e))return t[sa.bisect(s,e)]}var s;return a.domain=function(t){return arguments.length?(e=t.map(i).filter(r).sort(n),o()):e},a.range=function(e){return arguments.length?(t=e,o()):t},a.quantiles=function(){return s},a.invertExtent=function(n){return n=t.indexOf(n),n<0?[NaN,NaN]:[n>0?s[n-1]:e[0],n<s.length?s[n]:e[e.length-1]]},a.copy=function(){return ao(e,t)},o()}function so(e,t,n){function i(t){return n[Math.max(0,Math.min(a,Math.floor(o*(t-e))))]}function r(){return o=n.length/(t-e),a=n.length-1,i}var o,a;return i.domain=function(n){return arguments.length?(e=+n[0],t=+n[n.length-1],r()):[e,t]},i.range=function(e){return arguments.length?(n=e,r()):n},i.invertExtent=function(t){return t=n.indexOf(t),t=t<0?NaN:t/o+e,[t,t+1/o]},i.copy=function(){return so(e,t,n)},r()}function lo(e,t){function n(n){if(n<=n)return t[sa.bisect(e,n)]}return n.domain=function(t){return arguments.length?(e=t,n):e},n.range=function(e){return arguments.length?(t=e,n):t},n.invertExtent=function(n){return n=t.indexOf(n),[e[n-1],e[n]]},n.copy=function(){return lo(e,t)},n}function co(e){function t(e){return+e}return t.invert=t,t.domain=t.range=function(n){return arguments.length?(e=n.map(t),t):e},t.ticks=function(t){return Zr(e,t)},t.tickFormat=function(t,n){return Jr(e,t,n)},t.copy=function(){return co(e)},t}function uo(){return 0}function ho(e){return e.innerRadius}function po(e){return e.outerRadius}function fo(e){return e.startAngle}function mo(e){return e.endAngle}function go(e){return e&&e.padAngle}function vo(e,t,n,i){return(e-n)*t-(t-i)*e>0?0:1}function bo(e,t,n,i,r){var o=e[0]-t[0],a=e[1]-t[1],s=(r?i:-i)/Math.sqrt(o*o+a*a),l=s*a,c=-s*o,u=e[0]+l,d=e[1]+c,h=t[0]+l,p=t[1]+c,f=(u+h)/2,m=(d+p)/2,g=h-u,v=p-d,b=g*g+v*v,y=n-i,_=u*p-h*d,w=(v<0?-1:1)*Math.sqrt(Math.max(0,y*y*b-_*_)),A=(_*v-g*w)/b,C=(-_*g-v*w)/b,x=(_*v+g*w)/b,S=(-_*g+v*w)/b,E=A-f,T=C-m,D=x-f,I=S-m;return E*E+T*T>D*D+I*I&&(A=x,C=S),[[A-l,C-c],[A*n/y,C*n/y]]}function yo(e){function t(t){function a(){c.push("M",o(e(u),s))}for(var l,c=[],u=[],d=-1,h=t.length,p=Ee(n),f=Ee(i);++d<h;)r.call(this,l=t[d],d)?u.push([+p.call(this,l,d),+f.call(this,l,d)]):u.length&&(a(),u=[]);return u.length&&a(),c.length?c.join(""):null}var n=In,i=kn,r=It,o=_o,a=o.key,s=.7;return t.x=function(e){return arguments.length?(n=e,t):n},t.y=function(e){return arguments.length?(i=e,t):i},t.defined=function(e){return arguments.length?(r=e,t):r},t.interpolate=function(e){return arguments.length?(a="function"==typeof e?o=e:(o=Dl.get(e)||_o).key,t):a},t.tension=function(e){return arguments.length?(s=e,t):s},t}function _o(e){return e.length>1?e.join("L"):e+"Z"}function wo(e){return e.join("L")+"Z"}function Ao(e){for(var t=0,n=e.length,i=e[0],r=[i[0],",",i[1]];++t<n;)r.push("H",(i[0]+(i=e[t])[0])/2,"V",i[1]);return n>1&&r.push("H",i[0]),r.join("")}function Co(e){for(var t=0,n=e.length,i=e[0],r=[i[0],",",i[1]];++t<n;)r.push("V",(i=e[t])[1],"H",i[0]);return r.join("")}function xo(e){for(var t=0,n=e.length,i=e[0],r=[i[0],",",i[1]];++t<n;)r.push("H",(i=e[t])[0],"V",i[1]);return r.join("")}function So(e,t){return e.length<4?_o(e):e[1]+Do(e.slice(1,-1),Io(e,t))}function Eo(e,t){return e.length<3?wo(e):e[0]+Do((e.push(e[0]),e),Io([e[e.length-2]].concat(e,[e[1]]),t))}function To(e,t){return e.length<3?_o(e):e[0]+Do(e,Io(e,t))}function Do(e,t){if(t.length<1||e.length!=t.length&&e.length!=t.length+2)return _o(e);var n=e.length!=t.length,i="",r=e[0],o=e[1],a=t[0],s=a,l=1;if(n&&(i+="Q"+(o[0]-2*a[0]/3)+","+(o[1]-2*a[1]/3)+","+o[0]+","+o[1],r=e[1],l=2),t.length>1){s=t[1],o=e[l],l++,i+="C"+(r[0]+a[0])+","+(r[1]+a[1])+","+(o[0]-s[0])+","+(o[1]-s[1])+","+o[0]+","+o[1];for(var c=2;c<t.length;c++,l++)o=e[l],s=t[c],i+="S"+(o[0]-s[0])+","+(o[1]-s[1])+","+o[0]+","+o[1]}if(n){var u=e[l];i+="Q"+(o[0]+2*s[0]/3)+","+(o[1]+2*s[1]/3)+","+u[0]+","+u[1]}return i}function Io(e,t){for(var n,i=[],r=(1-t)/2,o=e[0],a=e[1],s=1,l=e.length;++s<l;)n=o,o=a,a=e[s],i.push([r*(a[0]-n[0]),r*(a[1]-n[1])]);return i}function ko(e){if(e.length<3)return _o(e);var t=1,n=e.length,i=e[0],r=i[0],o=i[1],a=[r,r,r,(i=e[1])[0]],s=[o,o,o,i[1]],l=[r,",",o,"L",No(Ml,a),",",No(Ml,s)];for(e.push(e[n-1]);++t<=n;)i=e[t],a.shift(),a.push(i[0]),s.shift(),s.push(i[1]),Oo(l,a,s);return e.pop(),l.push("L",i),l.join("")}function Mo(e){if(e.length<4)return _o(e);for(var t,n=[],i=-1,r=e.length,o=[0],a=[0];++i<3;)t=e[i],o.push(t[0]),a.push(t[1]);for(n.push(No(Ml,o)+","+No(Ml,a)),--i;++i<r;)t=e[i],o.shift(),o.push(t[0]),a.shift(),a.push(t[1]),Oo(n,o,a);return n.join("")}function Po(e){for(var t,n,i=-1,r=e.length,o=r+4,a=[],s=[];++i<4;)n=e[i%r],a.push(n[0]),s.push(n[1]);for(t=[No(Ml,a),",",No(Ml,s)],--i;++i<o;)n=e[i%r],a.shift(),a.push(n[0]),s.shift(),s.push(n[1]),Oo(t,a,s);return t.join("")}function $o(e,t){var n=e.length-1;if(n)for(var i,r,o=e[0][0],a=e[0][1],s=e[n][0]-o,l=e[n][1]-a,c=-1;++c<=n;)r=c/n,(i=e[c])[0]=t*i[0]+(1-t)*(o+r*s),i[1]=t*i[1]+(1-t)*(a+r*l);return ko(e)}function No(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function Oo(e,t,n){e.push("C",No(Il,t),",",No(Il,n),",",No(kl,t),",",No(kl,n),",",No(Ml,t),",",No(Ml,n))}function Ro(e,t){return(t[1]-e[1])/(t[0]-e[0])}function Lo(e){for(var t=0,n=e.length-1,i=[],r=e[0],o=e[1],a=i[0]=Ro(r,o);++t<n;)i[t]=(a+(a=Ro(r=o,o=e[t+1])))/2;return i[t]=a,i}function Go(e){for(var t,n,i,r,o=[],a=Lo(e),s=-1,l=e.length-1;++s<l;)t=Ro(e[s],e[s+1]),va(t)<Na?a[s]=a[s+1]=0:(r=(n=a[s]/t)*n+(i=a[s+1]/t)*i)>9&&(r=3*t/Math.sqrt(r),a[s]=r*n,a[s+1]=r*i);for(s=-1;++s<=l;)r=(e[Math.min(l,s+1)][0]-e[Math.max(0,s-1)][0])/(6*(1+a[s]*a[s])),o.push([r||0,a[s]*r||0]);return o}function Bo(e){return e.length<3?_o(e):e[0]+Do(e,Go(e))}function Fo(e){for(var t,n,i,r=-1,o=e.length;++r<o;)n=(t=e[r])[0],i=t[1]-Ba,t[0]=n*Math.cos(i),t[1]=n*Math.sin(i);return e}function Ho(e){function t(t){function l(){m.push("M",s(e(v),d),u,c(e(g.reverse()),d),"Z")}for(var h,p,f,m=[],g=[],v=[],b=-1,y=t.length,_=Ee(n),w=Ee(r),A=n===i?function(){return p}:Ee(i),C=r===o?function(){return f}:Ee(o);++b<y;)a.call(this,h=t[b],b)?(g.push([p=+_.call(this,h,b),f=+w.call(this,h,b)]),v.push([+A.call(this,h,b),+C.call(this,h,b)])):g.length&&(l(),g=[],v=[]);return g.length&&l(),m.length?m.join(""):null}var n=In,i=In,r=0,o=kn,a=It,s=_o,l=s.key,c=s,u="L",d=.7;return t.x=function(e){return arguments.length?(n=i=e,t):i},t.x0=function(e){return arguments.length?(n=e,t):n},t.x1=function(e){return arguments.length?(i=e,t):i},t.y=function(e){return arguments.length?(r=o=e,t):o},t.y0=function(e){return arguments.length?(r=e,t):r},t.y1=function(e){return arguments.length?(o=e,t):o},t.defined=function(e){return arguments.length?(a=e,t):a},t.interpolate=function(e){return arguments.length?(l="function"==typeof e?s=e:(s=Dl.get(e)||_o).key,c=s.reverse||s,u=s.closed?"M":"L",t):l},t.tension=function(e){return arguments.length?(d=e,t):d},t}function Uo(e){return e.radius}function jo(e){return[e.x,e.y]}function Wo(e){return function(){var t=e.apply(this,arguments),n=t[0],i=t[1]-Ba;return[n*Math.cos(i),n*Math.sin(i)]}}function zo(){return 64}function qo(){return"circle"}function Vo(e){var t=Math.sqrt(e/Ra);return"M0,"+t+"A"+t+","+t+" 0 1,1 0,"+-t+"A"+t+","+t+" 0 1,1 0,"+t+"Z"}function Yo(e){return function(){var t,n,i;(t=this[e])&&(i=t[n=t.active])&&(i.timer.c=null,i.timer.t=NaN,--t.count?delete t[n]:delete this[e],t.active+=.5,i.event&&i.event.interrupt.call(this,this.__data__,i.index))}}function Ko(e,t,n){return Aa(e,Gl),e.namespace=t,e.id=n,e}function Qo(e,t,n,i){var r=e.id,o=e.namespace;return j(e,"function"==typeof n?function(e,a,s){e[o][r].tween.set(t,i(n.call(e,e.__data__,a,s)))}:(n=i(n),function(e){e[o][r].tween.set(t,n)}))}function Xo(e){return null==e&&(e=""),function(){this.textContent=e}}function Zo(e){return null==e?"__transition__":"__transition_"+e+"__"}function Jo(e,t,n,i,r){function o(e){var t=m.delay;if(u.t=t+l,t<=e)return a(e-t);u.c=a}function a(n){var r=f.active,o=f[r];o&&(o.timer.c=null,o.timer.t=NaN,--f.count,delete f[r],o.event&&o.event.interrupt.call(e,e.__data__,o.index));for(var a in f)if(+a<i){var c=f[a];c.timer.c=null,c.timer.t=NaN,--f.count,delete f[a]}u.c=s,Me(function(){return u.c&&s(n||1)&&(u.c=null,u.t=NaN),1},0,l),f.active=i,m.event&&m.event.start.call(e,e.__data__,t),p=[],m.tween.forEach(function(n,i){(i=i.call(e,e.__data__,t))&&p.push(i)}),h=m.ease,d=m.duration}function s(r){for(var o=r/d,a=h(o),s=p.length;s>0;)p[--s].call(e,a);if(o>=1)return m.event&&m.event.end.call(e,e.__data__,t),--f.count?delete f[i]:delete e[n],1}var l,u,d,h,p,f=e[n]||(e[n]={active:0,count:0}),m=f[i];m||(l=r.time,u=Me(o,0,l),m=f[i]={tween:new c,time:l,timer:u,delay:r.delay,duration:r.duration,ease:r.ease,index:t},r=null,++f.count)}function ea(e,t,n){e.attr("transform",function(e){var i=t(e);return"translate("+(isFinite(i)?i:n(e))+",0)"})}function ta(e,t,n){e.attr("transform",function(e){var i=t(e);return"translate(0,"+(isFinite(i)?i:n(e))+")"})}function na(e){return e.toISOString()}function ia(e,t,n){function i(t){return e(t)}function r(e,n){var i=(e[1]-e[0])/n,r=sa.bisect(Vl,i);return r==Vl.length?[t.year,Xr(e.map(function(e){return e/31536e6}),n)[2]]:r?t[i/Vl[r-1]<Vl[r]/i?r-1:r]:[Ql,Xr(e,n)[2]]}return i.invert=function(t){return ra(e.invert(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain().map(ra)},i.nice=function(e,t){function n(n){return!isNaN(n)&&!e.range(n,ra(+n+1),t).length}var o=i.domain(),a=Ur(o),s=null==e?r(a,10):"number"==typeof e&&r(a,e);return s&&(e=s[0],t=s[1]),i.domain(zr(o,t>1?{floor:function(t){for(;n(t=e.floor(t));)t=ra(t-1);return t},ceil:function(t){for(;n(t=e.ceil(t));)t=ra(+t+1);return t}}:e))},i.ticks=function(e,t){var n=Ur(i.domain()),o=null==e?r(n,10):"number"==typeof e?r(n,e):!e.range&&[{range:e},t];return o&&(e=o[0],t=o[1]),e.range(n[0],ra(+n[1]+1),t<1?1:t)},i.tickFormat=function(){return n},i.copy=function(){return ia(e.copy(),t,n)},Kr(i,e)}function ra(e){return new Date(e)}function oa(e){return JSON.parse(e.responseText)}function aa(e){var t=ua.createRange();return t.selectNode(ua.body),t.createContextualFragment(e.responseText)}var sa={version:"3.5.17"},la=[].slice,ca=function(e){return la.call(e)},ua=this.document;if(ua)try{ca(ua.documentElement.childNodes)[0].nodeType}catch(e){ca=function(e){for(var t=e.length,n=new Array(t);t--;)n[t]=e[t];return n}}if(Date.now||(Date.now=function(){return+new Date}),ua)try{ua.createElement("DIV").style.setProperty("opacity",0,"")}catch(e){var da=this.Element.prototype,ha=da.setAttribute,pa=da.setAttributeNS,fa=this.CSSStyleDeclaration.prototype,ma=fa.setProperty;da.setAttribute=function(e,t){ha.call(this,e,t+"")},da.setAttributeNS=function(e,t,n){pa.call(this,e,t,n+"")},fa.setProperty=function(e,t,n){ma.call(this,e,t+"",n)}}sa.ascending=n,sa.descending=function(e,t){return t<e?-1:t>e?1:t>=e?0:NaN},sa.min=function(e,t){var n,i,r=-1,o=e.length;if(1===arguments.length){for(;++r<o;)if(null!=(i=e[r])&&i>=i){n=i;break}for(;++r<o;)null!=(i=e[r])&&n>i&&(n=i)}else{for(;++r<o;)if(null!=(i=t.call(e,e[r],r))&&i>=i){n=i;break}for(;++r<o;)null!=(i=t.call(e,e[r],r))&&n>i&&(n=i)}return n},sa.max=function(e,t){var n,i,r=-1,o=e.length;if(1===arguments.length){for(;++r<o;)if(null!=(i=e[r])&&i>=i){n=i;break}for(;++r<o;)null!=(i=e[r])&&i>n&&(n=i)}else{for(;++r<o;)if(null!=(i=t.call(e,e[r],r))&&i>=i){n=i;break}for(;++r<o;)null!=(i=t.call(e,e[r],r))&&i>n&&(n=i)}return n},sa.extent=function(e,t){var n,i,r,o=-1,a=e.length;if(1===arguments.length){for(;++o<a;)if(null!=(i=e[o])&&i>=i){n=r=i;break}for(;++o<a;)null!=(i=e[o])&&(n>i&&(n=i),r<i&&(r=i))}else{for(;++o<a;)if(null!=(i=t.call(e,e[o],o))&&i>=i){n=r=i;break}for(;++o<a;)null!=(i=t.call(e,e[o],o))&&(n>i&&(n=i),r<i&&(r=i))}return[n,r]},sa.sum=function(e,t){var n,i=0,o=e.length,a=-1;if(1===arguments.length)for(;++a<o;)r(n=+e[a])&&(i+=n);else for(;++a<o;)r(n=+t.call(e,e[a],a))&&(i+=n);return i},sa.mean=function(e,t){var n,o=0,a=e.length,s=-1,l=a;if(1===arguments.length)for(;++s<a;)r(n=i(e[s]))?o+=n:--l;else for(;++s<a;)r(n=i(t.call(e,e[s],s)))?o+=n:--l;if(l)return o/l},sa.quantile=function(e,t){var n=(e.length-1)*t+1,i=Math.floor(n),r=+e[i-1],o=n-i;return o?r+o*(e[i]-r):r},sa.median=function(e,t){var o,a=[],s=e.length,l=-1;if(1===arguments.length)for(;++l<s;)r(o=i(e[l]))&&a.push(o);else for(;++l<s;)r(o=i(t.call(e,e[l],l)))&&a.push(o);if(a.length)return sa.quantile(a.sort(n),.5)},sa.variance=function(e,t){var n,o,a=e.length,s=0,l=0,c=-1,u=0;if(1===arguments.length)for(;++c<a;)r(n=i(e[c]))&&(l+=(o=n-s)*(n-(s+=o/++u)));else for(;++c<a;)r(n=i(t.call(e,e[c],c)))&&(l+=(o=n-s)*(n-(s+=o/++u)));if(u>1)return l/(u-1)},sa.deviation=function(){var e=sa.variance.apply(this,arguments);return e?Math.sqrt(e):e};var ga=o(n);sa.bisectLeft=ga.left,sa.bisect=sa.bisectRight=ga.right,sa.bisector=function(e){return o(1===e.length?function(t,i){return n(e(t),i)}:e)},sa.shuffle=function(e,t,n){(o=arguments.length)<3&&(n=e.length,o<2&&(t=0));for(var i,r,o=n-t;o;)r=Math.random()*o--|0,i=e[o+t],e[o+t]=e[r+t],e[r+t]=i;return e},sa.permute=function(e,t){for(var n=t.length,i=new Array(n);n--;)i[n]=e[t[n]];return i},sa.pairs=function(e){for(var t=0,n=e.length-1,i=e[0],r=new Array(n<0?0:n);t<n;)r[t]=[i,i=e[++t]];return r},sa.transpose=function(e){if(!(r=e.length))return[];for(var t=-1,n=sa.min(e,a),i=new Array(n);++t<n;)for(var r,o=-1,s=i[t]=new Array(r);++o<r;)s[o]=e[o][t];return i},sa.zip=function(){return sa.transpose(arguments)},sa.keys=function(e){var t=[];for(var n in e)t.push(n);return t},sa.values=function(e){var t=[];for(var n in e)t.push(e[n]);return t},sa.entries=function(e){var t=[];for(var n in e)t.push({key:n,value:e[n]});return t},sa.merge=function(e){for(var t,n,i,r=e.length,o=-1,a=0;++o<r;)a+=e[o].length;for(n=new Array(a);--r>=0;)for(t=(i=e[r]).length;--t>=0;)n[--a]=i[t];return n};var va=Math.abs;sa.range=function(e,t,n){if(arguments.length<3&&(n=1,arguments.length<2&&(t=e,e=0)),(t-e)/n==1/0)throw new Error("infinite range");var i,r=[],o=s(va(n)),a=-1;if(e*=o,t*=o,(n*=o)<0)for(;(i=e+n*++a)>t;)r.push(i/o);else for(;(i=e+n*++a)<t;)r.push(i/o);return r},sa.map=function(e,t){var n=new c;if(e instanceof c)e.forEach(function(e,t){n.set(e,t)});else if(Array.isArray(e)){var i,r=-1,o=e.length;if(1===arguments.length)for(;++r<o;)n.set(r,e[r]);else for(;++r<o;)n.set(t.call(e,i=e[r],r),i)}else for(var a in e)n.set(a,e[a]);return n};var ba="__proto__",ya="\0";l(c,{has:h,get:function(e){return this._[u(e)]},set:function(e,t){return this._[u(e)]=t},remove:p,keys:f,values:function(){var e=[];for(var t in this._)e.push(this._[t]);return e},entries:function(){var e=[];for(var t in this._)e.push({key:d(t),value:this._[t]});return e},size:m,empty:g,forEach:function(e){for(var t in this._)e.call(this,d(t),this._[t])}}),sa.nest=function(){function e(t,a,s){if(s>=o.length)return i?i.call(r,a):n?a.sort(n):a;for(var l,u,d,h,p=-1,f=a.length,m=o[s++],g=new c;++p<f;)(h=g.get(l=m(u=a[p])))?h.push(u):g.set(l,[u]);return t?(u=t(),d=function(n,i){u.set(n,e(t,i,s))}):(u={},d=function(n,i){u[n]=e(t,i,s)}),g.forEach(d),u}function t(e,n){if(n>=o.length)return e;var i=[],r=a[n++];return e.forEach(function(e,r){i.push({key:e,values:t(r,n)})}),r?i.sort(function(e,t){return r(e.key,t.key)}):i}var n,i,r={},o=[],a=[];return r.map=function(t,n){return e(n,t,0)},r.entries=function(n){return t(e(sa.map,n,0),0)},r.key=function(e){return o.push(e),r},r.sortKeys=function(e){return a[o.length-1]=e,r},r.sortValues=function(e){return n=e,r},r.rollup=function(e){return i=e,r},r},sa.set=function(e){var t=new v;if(e)for(var n=0,i=e.length;n<i;++n)t.add(e[n]);return t},l(v,{has:h,add:function(e){return this._[u(e+="")]=!0,e},remove:p,values:f,size:m,empty:g,forEach:function(e){for(var t in this._)e.call(this,d(t))}}),sa.behavior={},sa.rebind=function(e,t){for(var n,i=1,r=arguments.length;++i<r;)e[n=arguments[i]]=y(e,t,t[n]);return e};var _a=["webkit","ms","moz","Moz","o","O"];sa.dispatch=function(){for(var e=new A,t=-1,n=arguments.length;++t<n;)e[arguments[t]]=C(e);return e},A.prototype.on=function(e,t){var n=e.indexOf("."),i="";if(n>=0&&(i=e.slice(n+1),e=e.slice(0,n)),e)return arguments.length<2?this[e].on(i):this[e].on(i,t);if(2===arguments.length){if(null==t)for(e in this)this.hasOwnProperty(e)&&this[e].on(i,null);return this}},sa.event=null,sa.requote=function(e){return e.replace(wa,"\\$&")};var wa=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,Aa={}.__proto__?function(e,t){e.__proto__=t}:function(e,t){for(var n in t)e[n]=t[n]},Ca=function(e,t){return t.querySelector(e)},xa=function(e,t){return t.querySelectorAll(e)},Sa=function(e,t){var n=e.matches||e[_(e,"matchesSelector")];return(Sa=function(e,t){return n.call(e,t)})(e,t)};"function"==typeof Sizzle&&(Ca=function(e,t){return Sizzle(e,t)[0]||null},xa=Sizzle,Sa=Sizzle.matchesSelector),sa.selection=function(){return sa.select(ua.documentElement)};var Ea=sa.selection.prototype=[];Ea.select=function(e){var t,n,i,r,o=[];e=D(e);for(var a=-1,s=this.length;++a<s;){o.push(t=[]),t.parentNode=(i=this[a]).parentNode;for(var l=-1,c=i.length;++l<c;)(r=i[l])?(t.push(n=e.call(r,r.__data__,l,a)),n&&"__data__"in r&&(n.__data__=r.__data__)):t.push(null)}return T(o)},Ea.selectAll=function(e){var t,n,i=[];e=I(e);for(var r=-1,o=this.length;++r<o;)for(var a=this[r],s=-1,l=a.length;++s<l;)(n=a[s])&&(i.push(t=ca(e.call(n,n.__data__,s,r))),t.parentNode=n);return T(i)};var Ta="http://www.w3.org/1999/xhtml",Da={svg:"http://www.w3.org/2000/svg",xhtml:Ta,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};sa.ns={prefix:Da,qualify:function(e){var t=e.indexOf(":"),n=e;return t>=0&&"xmlns"!==(n=e.slice(0,t))&&(e=e.slice(t+1)),Da.hasOwnProperty(n)?{space:Da[n],local:e}:e}},Ea.attr=function(e,t){if(arguments.length<2){if("string"==typeof e){var n=this.node();return e=sa.ns.qualify(e),e.local?n.getAttributeNS(e.space,e.local):n.getAttribute(e)}for(t in e)this.each(k(t,e[t]));return this}return this.each(k(e,t))},Ea.classed=function(e,t){if(arguments.length<2){if("string"==typeof e){var n=this.node(),i=(e=$(e)).length,r=-1;if(t=n.classList){for(;++r<i;)if(!t.contains(e[r]))return!1}else for(t=n.getAttribute("class");++r<i;)if(!P(e[r]).test(t))return!1;return!0}for(t in e)this.each(N(t,e[t]));return this}return this.each(N(e,t))},Ea.style=function(e,n,i){var r=arguments.length;if(r<3){if("string"!=typeof e){r<2&&(n="");for(i in e)this.each(R(i,e[i],n));return this}if(r<2){var o=this.node();return t(o).getComputedStyle(o,null).getPropertyValue(e)}i=""}return this.each(R(e,n,i))},Ea.property=function(e,t){if(arguments.length<2){if("string"==typeof e)return this.node()[e];for(t in e)this.each(L(t,e[t]));return this}return this.each(L(e,t))},Ea.text=function(e){return arguments.length?this.each("function"==typeof e?function(){var t=e.apply(this,arguments);this.textContent=null==t?"":t}:null==e?function(){this.textContent=""}:function(){this.textContent=e}):this.node().textContent},Ea.html=function(e){return arguments.length?this.each("function"==typeof e?function(){var t=e.apply(this,arguments);this.innerHTML=null==t?"":t}:null==e?function(){this.innerHTML=""}:function(){this.innerHTML=e}):this.node().innerHTML},Ea.append=function(e){return e=G(e),this.select(function(){return this.appendChild(e.apply(this,arguments))})},Ea.insert=function(e,t){return e=G(e),t=D(t),this.select(function(){return this.insertBefore(e.apply(this,arguments),t.apply(this,arguments)||null)})},Ea.remove=function(){return this.each(B)},Ea.data=function(e,t){function n(e,n){var i,r,o,a=e.length,d=n.length,h=Math.min(a,d),p=new Array(d),f=new Array(d),m=new Array(a);if(t){var g,v=new c,b=new Array(a);for(i=-1;++i<a;)(r=e[i])&&(v.has(g=t.call(r,r.__data__,i))?m[i]=r:v.set(g,r),b[i]=g);for(i=-1;++i<d;)(r=v.get(g=t.call(n,o=n[i],i)))?!0!==r&&(p[i]=r,r.__data__=o):f[i]=F(o),v.set(g,!0);for(i=-1;++i<a;)i in b&&!0!==v.get(b[i])&&(m[i]=e[i])}else{for(i=-1;++i<h;)r=e[i],o=n[i],r?(r.__data__=o,p[i]=r):f[i]=F(o);for(;i<d;++i)f[i]=F(n[i]);for(;i<a;++i)m[i]=e[i]}f.update=p,f.parentNode=p.parentNode=m.parentNode=e.parentNode,s.push(f),l.push(p),u.push(m)}var i,r,o=-1,a=this.length;if(!arguments.length){for(e=new Array(a=(i=this[0]).length);++o<a;)(r=i[o])&&(e[o]=r.__data__);return e}var s=W([]),l=T([]),u=T([]);if("function"==typeof e)for(;++o<a;)n(i=this[o],e.call(i,i.parentNode.__data__,o));else for(;++o<a;)n(i=this[o],e);return l.enter=function(){return s},l.exit=function(){return u},l},Ea.datum=function(e){return arguments.length?this.property("__data__",e):this.property("__data__")},Ea.filter=function(e){var t,n,i,r=[];"function"!=typeof e&&(e=H(e));for(var o=0,a=this.length;o<a;o++){r.push(t=[]),t.parentNode=(n=this[o]).parentNode;for(var s=0,l=n.length;s<l;s++)(i=n[s])&&e.call(i,i.__data__,s,o)&&t.push(i)}return T(r)},Ea.order=function(){for(var e=-1,t=this.length;++e<t;)for(var n,i=this[e],r=i.length-1,o=i[r];--r>=0;)(n=i[r])&&(o&&o!==n.nextSibling&&o.parentNode.insertBefore(n,o),o=n);return this},Ea.sort=function(e){e=U.apply(this,arguments);for(var t=-1,n=this.length;++t<n;)this[t].sort(e);return this.order()},Ea.each=function(e){return j(this,function(t,n,i){e.call(t,t.__data__,n,i)})},Ea.call=function(e){var t=ca(arguments);return e.apply(t[0]=this,t),this},Ea.empty=function(){return!this.node()},Ea.node=function(){for(var e=0,t=this.length;e<t;e++)for(var n=this[e],i=0,r=n.length;i<r;i++){var o=n[i];if(o)return o}return null},Ea.size=function(){var e=0;return j(this,function(){++e}),e};var Ia=[];sa.selection.enter=W,sa.selection.enter.prototype=Ia,Ia.append=Ea.append,Ia.empty=Ea.empty,Ia.node=Ea.node,Ia.call=Ea.call,Ia.size=Ea.size,Ia.select=function(e){for(var t,n,i,r,o,a=[],s=-1,l=this.length;++s<l;){i=(r=this[s]).update,a.push(t=[]),t.parentNode=r.parentNode;for(var c=-1,u=r.length;++c<u;)(o=r[c])?(t.push(i[c]=n=e.call(r.parentNode,o.__data__,c,s)),n.__data__=o.__data__):t.push(null)}return T(a)},Ia.insert=function(e,t){return arguments.length<2&&(t=z(this)),Ea.insert.call(this,e,t)},sa.select=function(t){var n;return"string"==typeof t?(n=[Ca(t,ua)]).parentNode=ua.documentElement:(n=[t]).parentNode=e(t),T([n])},sa.selectAll=function(e){var t;return"string"==typeof e?(t=ca(xa(e,ua))).parentNode=ua.documentElement:(t=ca(e)).parentNode=null,T([t])},Ea.on=function(e,t,n){var i=arguments.length;if(i<3){if("string"!=typeof e){i<2&&(t=!1);for(n in e)this.each(q(n,e[n],t));return this}if(i<2)return(i=this.node()["__on"+e])&&i._;n=!1}return this.each(q(e,t,n))};var ka=sa.map({mouseenter:"mouseover",mouseleave:"mouseout"});ua&&ka.forEach(function(e){"on"+e in ua&&ka.remove(e)});var Ma,Pa=0;sa.mouse=function(e){return Q(e,S())};var $a=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;sa.touch=function(e,t,n){if(arguments.length<3&&(n=t,t=S().changedTouches),t)for(var i,r=0,o=t.length;r<o;++r)if((i=t[r]).identifier===n)return Q(e,i)},sa.behavior.drag=function(){function e(){this.on("mousedown.drag",o).on("touchstart.drag",a)}function n(e,t,n,o,a){return function(){function s(){var e,n,i=t(h,m);i&&(e=i[0]-y[0],n=i[1]-y[1],f|=e|n,y=i,p({type:"drag",x:i[0]+c[0],y:i[1]+c[1],dx:e,dy:n}))}function l(){t(h,m)&&(v.on(o+g,null).on(a+g,null),b(f),p({type:"dragend"}))}var c,u=this,d=sa.event.target.correspondingElement||sa.event.target,h=u.parentNode,p=i.of(u,arguments),f=0,m=e(),g=".drag"+(null==m?"":"-"+m),v=sa.select(n(d)).on(o+g,s).on(a+g,l),b=K(d),y=t(h,m);r?(c=r.apply(u,arguments),c=[c.x-y[0],c.y-y[1]]):c=[0,0],p({type:"dragstart"})}}var i=E(e,"drag","dragstart","dragend"),r=null,o=n(w,sa.mouse,t,"mousemove","mouseup"),a=n(X,sa.touch,b,"touchmove","touchend");return e.origin=function(t){return arguments.length?(r=t,e):r},sa.rebind(e,i,"on")},sa.touches=function(e,t){return arguments.length<2&&(t=S().touches),t?ca(t).map(function(t){var n=Q(e,t);return n.identifier=t.identifier,n}):[]};var Na=1e-6,Oa=Na*Na,Ra=Math.PI,La=2*Ra,Ga=La-Na,Ba=Ra/2,Fa=Ra/180,Ha=180/Ra,Ua=Math.SQRT2;sa.interpolateZoom=function(e,t){var n,i,r=e[0],o=e[1],a=e[2],s=t[0],l=t[1],c=t[2],u=s-r,d=l-o,h=u*u+d*d;if(h<Oa)i=Math.log(c/a)/Ua,n=function(e){return[r+e*u,o+e*d,a*Math.exp(Ua*e*i)]};else{var p=Math.sqrt(h),f=(c*c-a*a+4*h)/(2*a*2*p),m=(c*c-a*a-4*h)/(2*c*2*p),g=Math.log(Math.sqrt(f*f+1)-f),v=Math.log(Math.sqrt(m*m+1)-m);i=(v-g)/Ua,n=function(e){var t=e*i,n=ie(g),s=a/(2*p)*(n*re(Ua*t+g)-ne(g));return[r+s*u,o+s*d,a*n/ie(Ua*t+g)]}}return n.duration=1e3*i,n},sa.behavior.zoom=function(){function e(e){e.on(M,d).on(Wa+".zoom",p).on("dblclick.zoom",f).on(N,h)}function n(e){return[(e[0]-S.x)/S.k,(e[1]-S.y)/S.k]}function i(e){return[e[0]*S.k+S.x,e[1]*S.k+S.y]}function r(e){S.k=Math.max(D[0],Math.min(D[1],e))}function o(e,t){t=i(t),S.x+=e[0]-t[0],S.y+=e[1]-t[1]}function a(t,n,i,a){t.__chart__={x:S.x,y:S.y,k:S.k},r(Math.pow(2,a)),o(g=n,i),t=sa.select(t),I>0&&(t=t.transition().duration(I)),t.call(e.event)}function s(){w&&w.domain(_.range().map(function(e){return(e-S.x)/S.k}).map(_.invert)),C&&C.domain(A.range().map(function(e){return(e-S.y)/S.k}).map(A.invert))}function l(e){k++||e({type:"zoomstart"})}function c(e){s(),e({type:"zoom",scale:S.k,translate:[S.x,S.y]})}function u(e){--k||(e({type:"zoomend"}),g=null)}function d(){function e(){s=1,o(sa.mouse(r),h),c(a)}function i(){d.on(P,null).on($,null),p(s),u(a)}var r=this,a=O.of(r,arguments),s=0,d=sa.select(t(r)).on(P,e).on($,i),h=n(sa.mouse(r)),p=K(r);Ll.call(r),l(a)}function h(){function e(){var e=sa.touches(f);return p=S.k,e.forEach(function(e){e.identifier in g&&(g[e.identifier]=n(e))}),e}function t(){var t=sa.event.target;sa.select(t).on(_,i).on(w,s),A.push(t);for(var n=sa.event.changedTouches,r=0,o=n.length;r<o;++r)g[n[r].identifier]=null;var l=e(),c=Date.now();if(1===l.length){if(c-y<500){u=l[0];a(f,u,g[u.identifier],Math.floor(Math.log(S.k)/Math.LN2)+1),x()}y=c}else if(l.length>1){var u=l[0],d=l[1],h=u[0]-d[0],p=u[1]-d[1];v=h*h+p*p}}function i(){var e,t,n,i,a=sa.touches(f);Ll.call(f);for(var s=0,l=a.length;s<l;++s,i=null)if(n=a[s],i=g[n.identifier]){if(t)break;e=n,t=i}if(i){var u=(u=n[0]-e[0])*u+(u=n[1]-e[1])*u,d=v&&Math.sqrt(u/v);e=[(e[0]+n[0])/2,(e[1]+n[1])/2],t=[(t[0]+i[0])/2,(t[1]+i[1])/2],r(d*p)}y=null,o(e,t),c(m)}function s(){if(sa.event.touches.length){for(var t=sa.event.changedTouches,n=0,i=t.length;n<i;++n)delete g[t[n].identifier];for(var r in g)return void e()}sa.selectAll(A).on(b,null),C.on(M,d).on(N,h),E(),u(m)}var p,f=this,m=O.of(f,arguments),g={},v=0,b=".zoom-"+sa.event.changedTouches[0].identifier,_="touchmove"+b,w="touchend"+b,A=[],C=sa.select(f),E=K(f);t(),l(m),C.on(M,null).on(N,t)}function p(){var e=O.of(this,arguments);b?clearTimeout(b):(Ll.call(this),m=n(g=v||sa.mouse(this)),l(e)),b=setTimeout(function(){b=null,u(e)},50),x(),r(Math.pow(2,.002*ja())*S.k),o(g,m),c(e)}function f(){var e=sa.mouse(this),t=Math.log(S.k)/Math.LN2;a(this,e,n(e),sa.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var m,g,v,b,y,_,w,A,C,S={x:0,y:0,k:1},T=[960,500],D=za,I=250,k=0,M="mousedown.zoom",P="mousemove.zoom",$="mouseup.zoom",N="touchstart.zoom",O=E(e,"zoomstart","zoom","zoomend");return Wa||(Wa="onwheel"in ua?(ja=function(){return-sa.event.deltaY*(sa.event.deltaMode?120:1)},"wheel"):"onmousewheel"in ua?(ja=function(){return sa.event.wheelDelta},"mousewheel"):(ja=function(){return-sa.event.detail},"MozMousePixelScroll")),e.event=function(e){e.each(function(){var e=O.of(this,arguments),t=S;Ol?sa.select(this).transition().each("start.zoom",function(){S=this.__chart__||{x:0,y:0,k:1},l(e)}).tween("zoom:zoom",function(){var n=T[0],i=T[1],r=g?g[0]:n/2,o=g?g[1]:i/2,a=sa.interpolateZoom([(r-S.x)/S.k,(o-S.y)/S.k,n/S.k],[(r-t.x)/t.k,(o-t.y)/t.k,n/t.k]);return function(t){var i=a(t),s=n/i[2];this.__chart__=S={x:r-i[0]*s,y:o-i[1]*s,k:s},c(e)}}).each("interrupt.zoom",function(){u(e)}).each("end.zoom",function(){u(e)}):(this.__chart__=S,l(e),c(e),u(e))})},e.translate=function(t){return arguments.length?(S={x:+t[0],y:+t[1],k:S.k},s(),e):[S.x,S.y]},e.scale=function(t){return arguments.length?(S={x:S.x,y:S.y,k:null},r(+t),s(),e):S.k},e.scaleExtent=function(t){return arguments.length?(D=null==t?za:[+t[0],+t[1]],e):D},e.center=function(t){return arguments.length?(v=t&&[+t[0],+t[1]],e):v},e.size=function(t){return arguments.length?(T=t&&[+t[0],+t[1]],e):T},e.duration=function(t){return arguments.length?(I=+t,e):I},e.x=function(t){return arguments.length?(w=t,_=t.copy(),S={x:0,y:0,k:1},e):w},e.y=function(t){return arguments.length?(C=t,A=t.copy(),S={x:0,y:0,k:1},e):C},sa.rebind(e,O,"on")};var ja,Wa,za=[0,1/0];sa.color=ae,ae.prototype.toString=function(){return this.rgb()+""},sa.hsl=se;var qa=se.prototype=new ae;qa.brighter=function(e){return e=Math.pow(.7,arguments.length?e:1),new se(this.h,this.s,this.l/e)},qa.darker=function(e){return e=Math.pow(.7,arguments.length?e:1),new se(this.h,this.s,e*this.l)},qa.rgb=function(){return le(this.h,this.s,this.l)},sa.hcl=ce;var Va=ce.prototype=new ae;Va.brighter=function(e){return new ce(this.h,this.c,Math.min(100,this.l+Ya*(arguments.length?e:1)))},Va.darker=function(e){return new ce(this.h,this.c,Math.max(0,this.l-Ya*(arguments.length?e:1)))},Va.rgb=function(){return ue(this.h,this.c,this.l).rgb()},sa.lab=de;var Ya=18,Ka=.95047,Qa=1,Xa=1.08883,Za=de.prototype=new ae;Za.brighter=function(e){return new de(Math.min(100,this.l+Ya*(arguments.length?e:1)),this.a,this.b)},Za.darker=function(e){return new de(Math.max(0,this.l-Ya*(arguments.length?e:1)),this.a,this.b)},Za.rgb=function(){return he(this.l,this.a,this.b)},sa.rgb=ve;var Ja=ve.prototype=new ae;Ja.brighter=function(e){e=Math.pow(.7,arguments.length?e:1);var t=this.r,n=this.g,i=this.b,r=30;return t||n||i?(t&&t<r&&(t=r),n&&n<r&&(n=r),i&&i<r&&(i=r),new ve(Math.min(255,t/e),Math.min(255,n/e),Math.min(255,i/e))):new ve(r,r,r)},Ja.darker=function(e){return e=Math.pow(.7,arguments.length?e:1),new ve(e*this.r,e*this.g,e*this.b)},Ja.hsl=function(){return Ae(this.r,this.g,this.b)},Ja.toString=function(){return"#"+_e(this.r)+_e(this.g)+_e(this.b)};var es=sa.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});es.forEach(function(e,t){es.set(e,be(t))}),sa.functor=Ee,sa.xhr=Te(b),sa.dsv=function(e,t){function n(e,n,o){arguments.length<3&&(o=n,n=null);var a=De(e,t,null==n?i:r(n),o);return a.row=function(e){return arguments.length?a.response(null==(n=e)?i:r(e)):n},a}function i(e){return n.parse(e.responseText)}function r(e){return function(t){return n.parse(t.responseText,e)}}function o(t){return t.map(a).join(e)}function a(e){return s.test(e)?'"'+e.replace(/\"/g,'""')+'"':e}var s=new RegExp('["'+e+"\n]"),l=e.charCodeAt(0);return n.parse=function(e,t){var i;return n.parseRows(e,function(e,n){if(i)return i(e,n-1);var r=new Function("d","return {"+e.map(function(e,t){return JSON.stringify(e)+": d["+t+"]"}).join(",")+"}");i=t?function(e,n){return t(r(e),n)}:r})},n.parseRows=function(e,t){function n(){if(u>=c)return a;if(r)return r=!1,o;var t=u;if(34===e.charCodeAt(t)){for(var n=t;n++<c;)if(34===e.charCodeAt(n)){if(34!==e.charCodeAt(n+1))break;++n}return u=n+2,13===(i=e.charCodeAt(n+1))?(r=!0,10===e.charCodeAt(n+2)&&++u):10===i&&(r=!0),e.slice(t+1,n).replace(/""/g,'"')}for(;u<c;){var i=e.charCodeAt(u++),s=1;if(10===i)r=!0;else if(13===i)r=!0,10===e.charCodeAt(u)&&(++u,++s);else if(i!==l)continue;return e.slice(t,u-s)}return e.slice(t)}for(var i,r,o={},a={},s=[],c=e.length,u=0,d=0;(i=n())!==a;){for(var h=[];i!==o&&i!==a;)h.push(i),i=n();t&&null==(h=t(h,d++))||s.push(h)}return s},n.format=function(t){if(Array.isArray(t[0]))return n.formatRows(t);var i=new v,r=[];return t.forEach(function(e){for(var t in e)i.has(t)||r.push(i.add(t))}),[r.map(a).join(e)].concat(t.map(function(t){return r.map(function(e){return a(t[e])}).join(e)})).join("\n")},n.formatRows=function(e){return e.map(o).join("\n")},n},sa.csv=sa.dsv(",","text/csv"),sa.tsv=sa.dsv("\t","text/tab-separated-values");var ts,ns,is,rs,os=this[_(this,"requestAnimationFrame")]||function(e){setTimeout(e,17)};sa.timer=function(){Me.apply(this,arguments)},sa.timer.flush=function(){$e(),Ne()},sa.round=function(e,t){return t?Math.round(e*(t=Math.pow(10,t)))/t:Math.round(e)};var as=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"].map(Re);sa.formatPrefix=function(e,t){var n=0;return(e=+e)&&(e<0&&(e*=-1),t&&(e=sa.round(e,Oe(e,t))),n=1+Math.floor(1e-12+Math.log(e)/Math.LN10),n=Math.max(-24,Math.min(24,3*Math.floor((n-1)/3)))),as[8+n/3]};var ss=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,ls=sa.map({b:function(e){return e.toString(2)},c:function(e){return String.fromCharCode(e)},o:function(e){return e.toString(8)},x:function(e){return e.toString(16)},X:function(e){return e.toString(16).toUpperCase()},g:function(e,t){return e.toPrecision(t)},e:function(e,t){return e.toExponential(t)},f:function(e,t){return e.toFixed(t)},r:function(e,t){return(e=sa.round(e,Oe(e,t))).toFixed(Math.max(0,Math.min(20,Oe(e*(1+1e-15),t))))}}),cs=sa.time={},us=Date;Be.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){ds.setUTCDate.apply(this._,arguments)},setDay:function(){ds.setUTCDay.apply(this._,arguments)},setFullYear:function(){ds.setUTCFullYear.apply(this._,arguments)},setHours:function(){ds.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){ds.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){ds.setUTCMinutes.apply(this._,arguments)},setMonth:function(){ds.setUTCMonth.apply(this._,arguments)},setSeconds:function(){ds.setUTCSeconds.apply(this._,arguments)},setTime:function(){ds.setTime.apply(this._,arguments)}};var ds=Date.prototype;cs.year=Fe(function(e){return(e=cs.day(e)).setMonth(0,1),e},function(e,t){e.setFullYear(e.getFullYear()+t)},function(e){return e.getFullYear()}),cs.years=cs.year.range,cs.years.utc=cs.year.utc.range,cs.day=Fe(function(e){var t=new us(2e3,0);return t.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),t},function(e,t){e.setDate(e.getDate()+t)},function(e){return e.getDate()-1}),cs.days=cs.day.range,cs.days.utc=cs.day.utc.range,cs.dayOfYear=function(e){var t=cs.year(e);return Math.floor((e-t-6e4*(e.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(e,t){t=7-t;var n=cs[e]=Fe(function(e){return(e=cs.day(e)).setDate(e.getDate()-(e.getDay()+t)%7),e},function(e,t){e.setDate(e.getDate()+7*Math.floor(t))},function(e){var n=cs.year(e).getDay();return Math.floor((cs.dayOfYear(e)+(n+t)%7)/7)-(n!==t)});cs[e+"s"]=n.range,cs[e+"s"].utc=n.utc.range,cs[e+"OfYear"]=function(e){var n=cs.year(e).getDay();return Math.floor((cs.dayOfYear(e)+(n+t)%7)/7)}}),cs.week=cs.sunday,cs.weeks=cs.sunday.range,cs.weeks.utc=cs.sunday.utc.range,cs.weekOfYear=cs.sundayOfYear;var hs={"-":"",_:" ",0:"0"},ps=/^\s*\d+/,fs=/^%/;sa.locale=function(e){return{numberFormat:Le(e),timeFormat:Ue(e)}};var ms=sa.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});sa.format=ms.numberFormat,sa.geo={},ct.prototype={s:0,t:0,add:function(e){ut(e,this.t,gs),ut(gs.s,this.s,this),this.s?this.t+=gs.t:this.s=gs.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var gs=new ct;sa.geo.stream=function(e,t){e&&vs.hasOwnProperty(e.type)?vs[e.type](e,t):dt(e,t)};var vs={Feature:function(e,t){dt(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,i=-1,r=n.length;++i<r;)dt(n[i].geometry,t)}},bs={Sphere:function(e,t){t.sphere()},Point:function(e,t){e=e.coordinates,t.point(e[0],e[1],e[2])},MultiPoint:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)e=n[i],t.point(e[0],e[1],e[2])},LineString:function(e,t){ht(e.coordinates,t,0)},MultiLineString:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)ht(n[i],t,0)},Polygon:function(e,t){pt(e.coordinates,t)},MultiPolygon:function(e,t){for(var n=e.coordinates,i=-1,r=n.length;++i<r;)pt(n[i],t)},GeometryCollection:function(e,t){for(var n=e.geometries,i=-1,r=n.length;++i<r;)dt(n[i],t)}};sa.geo.area=function(e){return ys=0,sa.geo.stream(e,ws),ys};var ys,_s=new ct,ws={sphere:function(){ys+=4*Ra},point:w,lineStart:w,lineEnd:w,polygonStart:function(){_s.reset(),ws.lineStart=ft},polygonEnd:function(){var e=2*_s;ys+=e<0?4*Ra+e:e,ws.lineStart=ws.lineEnd=ws.point=w}};sa.geo.bounds=function(){function e(e,t){y.push(_=[u=e,h=e]),t<d&&(d=t),t>p&&(p=t)}function t(t,n){var i=mt([t*Fa,n*Fa]);if(v){var r=vt(v,i),o=vt([r[1],-r[0],0],r);_t(o),o=wt(o);var a=t-f,l=a>0?1:-1,c=o[0]*Ha*l,m=va(a)>180;if(m^(l*f<c&&c<l*t))(g=o[1]*Ha)>p&&(p=g);else if(c=(c+360)%360-180,m^(l*f<c&&c<l*t)){var g=-o[1]*Ha;g<d&&(d=g)}else n<d&&(d=n),n>p&&(p=n);m?t<f?s(u,t)>s(u,h)&&(h=t):s(t,h)>s(u,h)&&(u=t):h>=u?(t<u&&(u=t),t>h&&(h=t)):t>f?s(u,t)>s(u,h)&&(h=t):s(t,h)>s(u,h)&&(u=t)}else e(t,n);v=i,f=t}function n(){w.point=t}function i(){_[0]=u,_[1]=h,w.point=e,v=null}function r(e,n){if(v){var i=e-f;b+=va(i)>180?i+(i>0?360:-360):i}else m=e,g=n;ws.point(e,n),t(e,n)}function o(){ws.lineStart()}function a(){r(m,g),ws.lineEnd(),va(b)>Na&&(u=-(h=180)),_[0]=u,_[1]=h,v=null}function s(e,t){return(t-=e)<0?t+360:t}function l(e,t){return e[0]-t[0]}function c(e,t){return t[0]<=t[1]?t[0]<=e&&e<=t[1]:e<t[0]||t[1]<e}var u,d,h,p,f,m,g,v,b,y,_,w={point:e,lineStart:n,lineEnd:i,polygonStart:function(){w.point=r,w.lineStart=o,w.lineEnd=a,b=0,ws.polygonStart()},polygonEnd:function(){ws.polygonEnd(),w.point=e,w.lineStart=n,w.lineEnd=i,_s<0?(u=-(h=180),d=-(p=90)):b>Na?p=90:b<-Na&&(d=-90),_[0]=u,_[1]=h}};return function(e){p=h=-(u=d=1/0),y=[],sa.geo.stream(e,w);var t=y.length;if(t){y.sort(l);for(var n=1,i=[f=y[0]];n<t;++n)c((o=y[n])[0],f)||c(o[1],f)?(s(f[0],o[1])>s(f[0],f[1])&&(f[1]=o[1]),s(o[0],f[1])>s(f[0],f[1])&&(f[0]=o[0])):i.push(f=o);for(var r,o,a=-1/0,n=0,f=i[t=i.length-1];n<=t;f=o,++n)o=i[n],(r=s(f[1],o[0]))>a&&(a=r,u=o[0],h=f[1])}return y=_=null,u===1/0||d===1/0?[[NaN,NaN],[NaN,NaN]]:[[u,d],[h,p]]}}(),sa.geo.centroid=function(e){As=Cs=xs=Ss=Es=Ts=Ds=Is=ks=Ms=Ps=0,sa.geo.stream(e,$s);var t=ks,n=Ms,i=Ps,r=t*t+n*n+i*i;return r<Oa&&(t=Ts,n=Ds,i=Is,Cs<Na&&(t=xs,n=Ss,i=Es),(r=t*t+n*n+i*i)<Oa)?[NaN,NaN]:[Math.atan2(n,t)*Ha,te(i/Math.sqrt(r))*Ha]};var As,Cs,xs,Ss,Es,Ts,Ds,Is,ks,Ms,Ps,$s={sphere:w,point:Ct,lineStart:St,lineEnd:Et,polygonStart:function(){$s.lineStart=Tt},polygonEnd:function(){$s.lineStart=St}},Ns=$t(It,Lt,Bt,[-Ra,-Ra/2]),Os=1e9;sa.geo.clipExtent=function(){var e,t,n,i,r,o,a={stream:function(e){return r&&(r.valid=!1),r=o(e),r.valid=!0,r},extent:function(s){return arguments.length?(o=jt(e=+s[0][0],t=+s[0][1],n=+s[1][0],i=+s[1][1]),r&&(r.valid=!1,r=null),a):[[e,t],[n,i]]}};return a.extent([[0,0],[960,500]])},(sa.geo.conicEqualArea=function(){return Wt(zt)}).raw=zt,sa.geo.albers=function(){return sa.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},sa.geo.albersUsa=function(){function e(e){var o=e[0],a=e[1];return t=null,n(o,a),t||(i(o,a),t)||r(o,a),t}var t,n,i,r,o=sa.geo.albers(),a=sa.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),s=sa.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(e,n){t=[e,n]}};return e.invert=function(e){var t=o.scale(),n=o.translate(),i=(e[0]-n[0])/t,r=(e[1]-n[1])/t;return(r>=.12&&r<.234&&i>=-.425&&i<-.214?a:r>=.166&&r<.234&&i>=-.214&&i<-.115?s:o).invert(e)},e.stream=function(e){var t=o.stream(e),n=a.stream(e),i=s.stream(e);return{point:function(e,r){t.point(e,r),n.point(e,r),i.point(e,r)},sphere:function(){t.sphere(),n.sphere(),i.sphere()},lineStart:function(){t.lineStart(),n.lineStart(),i.lineStart()},lineEnd:function(){t.lineEnd(),n.lineEnd(),i.lineEnd()},polygonStart:function(){t.polygonStart(),n.polygonStart(),i.polygonStart()},polygonEnd:function(){t.polygonEnd(),n.polygonEnd(),i.polygonEnd()}}},e.precision=function(t){return arguments.length?(o.precision(t),a.precision(t),s.precision(t),e):o.precision()},e.scale=function(t){return arguments.length?(o.scale(t),a.scale(.35*t),s.scale(t),e.translate(o.translate())):o.scale()},e.translate=function(t){if(!arguments.length)return o.translate();var c=o.scale(),u=+t[0],d=+t[1];return n=o.translate(t).clipExtent([[u-.455*c,d-.238*c],[u+.455*c,d+.238*c]]).stream(l).point,i=a.translate([u-.307*c,d+.201*c]).clipExtent([[u-.425*c+Na,d+.12*c+Na],[u-.214*c-Na,d+.234*c-Na]]).stream(l).point,r=s.translate([u-.205*c,d+.212*c]).clipExtent([[u-.214*c+Na,d+.166*c+Na],[u-.115*c-Na,d+.234*c-Na]]).stream(l).point,e},e.scale(1070)};var Rs,Ls,Gs,Bs,Fs,Hs,Us={point:w,lineStart:w,lineEnd:w,polygonStart:function(){Ls=0,Us.lineStart=qt},polygonEnd:function(){Us.lineStart=Us.lineEnd=Us.point=w,Rs+=va(Ls/2)}},js={point:Vt,lineStart:w,lineEnd:w,polygonStart:w,polygonEnd:w},Ws={point:Qt,lineStart:Xt,lineEnd:Zt,polygonStart:function(){Ws.lineStart=Jt},polygonEnd:function(){Ws.point=Qt,Ws.lineStart=Xt,Ws.lineEnd=Zt}};sa.geo.path=function(){function e(e){return e&&("function"==typeof s&&o.pointRadius(+s.apply(this,arguments)),a&&a.valid||(a=r(o)),sa.geo.stream(e,a)),o.result()}function t(){return a=null,e}var n,i,r,o,a,s=4.5;return e.area=function(e){return Rs=0,sa.geo.stream(e,r(Us)),Rs},e.centroid=function(e){return xs=Ss=Es=Ts=Ds=Is=ks=Ms=Ps=0,sa.geo.stream(e,r(Ws)),Ps?[ks/Ps,Ms/Ps]:Is?[Ts/Is,Ds/Is]:Es?[xs/Es,Ss/Es]:[NaN,NaN]},e.bounds=function(e){return Fs=Hs=-(Gs=Bs=1/0),sa.geo.stream(e,r(js)),[[Gs,Bs],[Fs,Hs]]},e.projection=function(e){return arguments.length?(r=(n=e)?e.stream||nn(e):b,t()):n},e.context=function(e){return arguments.length?(o=null==(i=e)?new Yt:new en(e),"function"!=typeof s&&o.pointRadius(s),t()):i},e.pointRadius=function(t){return arguments.length?(s="function"==typeof t?t:(o.pointRadius(+t),+t),e):s},e.projection(sa.geo.albersUsa()).context(null)},sa.geo.transform=function(e){return{stream:function(t){var n=new rn(t);for(var i in e)n[i]=e[i];return n}}},rn.prototype={point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},sa.geo.projection=an,sa.geo.projectionMutator=sn,(sa.geo.equirectangular=function(){return an(cn)}).raw=cn.invert=cn,sa.geo.rotation=function(e){function t(t){return t=e(t[0]*Fa,t[1]*Fa),t[0]*=Ha,t[1]*=Ha,t}return e=dn(e[0]%360*Fa,e[1]*Fa,e.length>2?e[2]*Fa:0),t.invert=function(t){return t=e.invert(t[0]*Fa,t[1]*Fa),t[0]*=Ha,t[1]*=Ha,t},t},un.invert=cn,sa.geo.circle=function(){function e(){var e="function"==typeof i?i.apply(this,arguments):i,t=dn(-e[0]*Fa,-e[1]*Fa,0).invert,r=[];return n(null,null,1,{point:function(e,n){r.push(e=t(e,n)),e[0]*=Ha,e[1]*=Ha}}),{type:"Polygon",coordinates:[r]}}var t,n,i=[0,0],r=6;return e.origin=function(t){return arguments.length?(i=t,e):i},e.angle=function(i){return arguments.length?(n=mn((t=+i)*Fa,r*Fa),e):t},e.precision=function(i){return arguments.length?(n=mn(t*Fa,(r=+i)*Fa),e):r},e.angle(90)},sa.geo.distance=function(e,t){var n,i=(t[0]-e[0])*Fa,r=e[1]*Fa,o=t[1]*Fa,a=Math.sin(i),s=Math.cos(i),l=Math.sin(r),c=Math.cos(r),u=Math.sin(o),d=Math.cos(o);return Math.atan2(Math.sqrt((n=d*a)*n+(n=c*u-l*d*s)*n),l*u+c*d*s)},sa.geo.graticule=function(){function e(){return{type:"MultiLineString",coordinates:t()}}function t(){return sa.range(Math.ceil(o/g)*g,r,g).map(h).concat(sa.range(Math.ceil(c/v)*v,l,v).map(p)).concat(sa.range(Math.ceil(i/f)*f,n,f).filter(function(e){return va(e%g)>Na}).map(u)).concat(sa.range(Math.ceil(s/m)*m,a,m).filter(function(e){return va(e%v)>Na}).map(d))}var n,i,r,o,a,s,l,c,u,d,h,p,f=10,m=f,g=90,v=360,b=2.5;return e.lines=function(){return t().map(function(e){return{type:"LineString",coordinates:e}})},e.outline=function(){return{type:"Polygon",coordinates:[h(o).concat(p(l).slice(1),h(r).reverse().slice(1),p(c).reverse().slice(1))]}},e.extent=function(t){return arguments.length?e.majorExtent(t).minorExtent(t):e.minorExtent()},e.majorExtent=function(t){return arguments.length?(o=+t[0][0],r=+t[1][0],c=+t[0][1],l=+t[1][1],o>r&&(t=o,o=r,r=t),c>l&&(t=c,c=l,l=t),e.precision(b)):[[o,c],[r,l]]},e.minorExtent=function(t){return arguments.length?(i=+t[0][0],n=+t[1][0],s=+t[0][1],a=+t[1][1],i>n&&(t=i,i=n,n=t),s>a&&(t=s,s=a,a=t),e.precision(b)):[[i,s],[n,a]]},e.step=function(t){return arguments.length?e.majorStep(t).minorStep(t):e.minorStep()},e.majorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],e):[g,v]},e.minorStep=function(t){return arguments.length?(f=+t[0],m=+t[1],e):[f,m]},e.precision=function(t){return arguments.length?(b=+t,u=vn(s,a,90),d=bn(i,n,b),h=vn(c,l,90),p=bn(o,r,b),e):b},e.majorExtent([[-180,-90+Na],[180,90-Na]]).minorExtent([[-180,-80-Na],[180,80+Na]])},sa.geo.greatArc=function(){function e(){return{type:"LineString",coordinates:[t||i.apply(this,arguments),n||r.apply(this,arguments)]}}var t,n,i=yn,r=_n;return e.distance=function(){return sa.geo.distance(t||i.apply(this,arguments),n||r.apply(this,arguments))},e.source=function(n){return arguments.length?(i=n,t="function"==typeof n?null:n,e):i},e.target=function(t){return arguments.length?(r=t,n="function"==typeof t?null:t,e):r},e.precision=function(){return arguments.length?e:0},e},sa.geo.interpolate=function(e,t){return wn(e[0]*Fa,e[1]*Fa,t[0]*Fa,t[1]*Fa)},sa.geo.length=function(e){return zs=0,sa.geo.stream(e,qs),zs};var zs,qs={sphere:w,point:w,lineStart:An,lineEnd:w,polygonStart:w,polygonEnd:w},Vs=Cn(function(e){return Math.sqrt(2/(1+e))},function(e){return 2*Math.asin(e/2)});(sa.geo.azimuthalEqualArea=function(){return an(Vs)}).raw=Vs;var Ys=Cn(function(e){var t=Math.acos(e);return t&&t/Math.sin(t)},b);(sa.geo.azimuthalEquidistant=function(){return an(Ys)}).raw=Ys,(sa.geo.conicConformal=function(){return Wt(xn)}).raw=xn,(sa.geo.conicEquidistant=function(){return Wt(Sn)}).raw=Sn;var Ks=Cn(function(e){return 1/e},Math.atan);(sa.geo.gnomonic=function(){return an(Ks)}).raw=Ks,En.invert=function(e,t){return[e,2*Math.atan(Math.exp(t))-Ba]},(sa.geo.mercator=function(){return Tn(En)}).raw=En;var Qs=Cn(function(){return 1},Math.asin);(sa.geo.orthographic=function(){return an(Qs)}).raw=Qs;var Xs=Cn(function(e){return 1/(1+e)},function(e){return 2*Math.atan(e)});(sa.geo.stereographic=function(){return an(Xs)}).raw=Xs,Dn.invert=function(e,t){return[-t,2*Math.atan(Math.exp(e))-Ba]},(sa.geo.transverseMercator=function(){var e=Tn(Dn),t=e.center,n=e.rotate;return e.center=function(e){return e?t([-e[1],e[0]]):(e=t(),[e[1],-e[0]])},e.rotate=function(e){return e?n([e[0],e[1],e.length>2?e[2]+90:90]):(e=n(),[e[0],e[1],e[2]-90])},n([0,0,90])}).raw=Dn,sa.geom={},sa.geom.hull=function(e){function t(e){if(e.length<3)return[];var t,r=Ee(n),o=Ee(i),a=e.length,s=[],l=[];for(t=0;t<a;t++)s.push([+r.call(this,e[t],t),+o.call(this,e[t],t),t]);for(s.sort(Pn),t=0;t<a;t++)l.push([s[t][0],-s[t][1]]);var c=Mn(s),u=Mn(l),d=u[0]===c[0],h=u[u.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(e[s[c[t]][2]]);for(t=+d;t<u.length-h;++t)p.push(e[s[u[t]][2]]);return p}var n=In,i=kn;return arguments.length?t(e):(t.x=function(e){return arguments.length?(n=e,t):n},t.y=function(e){return arguments.length?(i=e,t):i},t)},sa.geom.polygon=function(e){return Aa(e,Zs),e};var Zs=sa.geom.polygon.prototype=[];Zs.area=function(){for(var e,t=-1,n=this.length,i=this[n-1],r=0;++t<n;)e=i,i=this[t],r+=e[1]*i[0]-e[0]*i[1];return.5*r},Zs.centroid=function(e){var t,n,i=-1,r=this.length,o=0,a=0,s=this[r-1];for(arguments.length||(e=-1/(6*this.area()));++i<r;)t=s,s=this[i],n=t[0]*s[1]-s[0]*t[1],o+=(t[0]+s[0])*n,a+=(t[1]+s[1])*n;return[o*e,a*e]},Zs.clip=function(e){for(var t,n,i,r,o,a,s=On(e),l=-1,c=this.length-On(this),u=this[c-1];++l<c;){for(t=e.slice(),e.length=0,r=this[l],o=t[(i=t.length-s)-1],n=-1;++n<i;)$n(a=t[n],u,r)?($n(o,u,r)||e.push(Nn(o,a,u,r)),e.push(a)):$n(o,u,r)&&e.push(Nn(o,a,u,r)),o=a;s&&e.push(e[0]),u=r}return e};var Js,el,tl,nl,il,rl=[],ol=[];jn.prototype.prepare=function(){for(var e,t=this.edges,n=t.length;n--;)(e=t[n].edge).b&&e.a||t.splice(n,1);return t.sort(zn),t.length},ti.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},ni.prototype={insert:function(e,t){var n,i,r;if(e){if(t.P=e,t.N=e.N,e.N&&(e.N.P=t),e.N=t,e.R){for(e=e.R;e.L;)e=e.L;e.L=t}else e.R=t;n=e}else this._?(e=ai(this._),t.P=null,t.N=e,e.P=e.L=t,n=e):(t.P=t.N=null,this._=t,n=null);for(t.L=t.R=null,t.U=n,t.C=!0,e=t;n&&n.C;)n===(i=n.U).L?(r=i.R)&&r.C?(n.C=r.C=!1,i.C=!0,e=i):(e===n.R&&(ri(this,n),n=(e=n).U),n.C=!1,i.C=!0,oi(this,i)):(r=i.L)&&r.C?(n.C=r.C=!1,i.C=!0,e=i):(e===n.L&&(oi(this,n),n=(e=n).U),n.C=!1,i.C=!0,ri(this,i)),n=e.U;this._.C=!1},remove:function(e){e.N&&(e.N.P=e.P),e.P&&(e.P.N=e.N),e.N=e.P=null;var t,n,i,r=e.U,o=e.L,a=e.R;if(n=o?a?ai(a):o:a,r?r.L===e?r.L=n:r.R=n:this._=n,o&&a?(i=n.C,n.C=e.C,n.L=o,o.U=n,n!==a?(r=n.U,n.U=e.U,e=n.R,r.L=e,n.R=a,a.U=n):(n.U=r,r=n,e=n.R)):(i=e.C,e=n),e&&(e.U=r),!i)if(e&&e.C)e.C=!1;else{do{if(e===this._)break;if(e===r.L){if((t=r.R).C&&(t.C=!1,r.C=!0,ri(this,r),t=r.R),t.L&&t.L.C||t.R&&t.R.C){t.R&&t.R.C||(t.L.C=!1,t.C=!0,oi(this,t),t=r.R),t.C=r.C,r.C=t.R.C=!1,ri(this,r),e=this._;break}}else if((t=r.L).C&&(t.C=!1,r.C=!0,oi(this,r),t=r.L),t.L&&t.L.C||t.R&&t.R.C){t.L&&t.L.C||(t.R.C=!1,t.C=!0,ri(this,t),t=r.L),t.C=r.C,r.C=t.L.C=!1,oi(this,r),e=this._;break}t.C=!0,e=r,r=r.U}while(!e.C);e&&(e.C=!1)}}},sa.geom.voronoi=function(e){function t(e){var t=new Array(e.length),i=s[0][0],r=s[0][1],o=s[1][0],a=s[1][1];return si(n(e),s).cells.forEach(function(n,s){var l=n.edges,c=n.site;(t[s]=l.length?l.map(function(e){var t=e.start();return[t.x,t.y]}):c.x>=i&&c.x<=o&&c.y>=r&&c.y<=a?[[i,a],[o,a],[o,r],[i,r]]:[]).point=e[s]}),t}function n(e){return e.map(function(e,t){return{x:Math.round(o(e,t)/Na)*Na,y:Math.round(a(e,t)/Na)*Na,i:t}})}var i=In,r=kn,o=i,a=r,s=al;return e?t(e):(t.links=function(e){return si(n(e)).edges.filter(function(e){return e.l&&e.r}).map(function(t){return{source:e[t.l.i],target:e[t.r.i]}})},t.triangles=function(e){var t=[];return si(n(e)).cells.forEach(function(n,i){for(var r,o=n.site,a=n.edges.sort(zn),s=-1,l=a.length,c=a[l-1].edge,u=c.l===o?c.r:c.l;++s<l;)c,r=u,u=(c=a[s].edge).l===o?c.r:c.l,i<r.i&&i<u.i&&ci(o,r,u)<0&&t.push([e[i],e[r.i],e[u.i]])}),t},t.x=function(e){return arguments.length?(o=Ee(i=e),t):i},t.y=function(e){return arguments.length?(a=Ee(r=e),t):r},t.clipExtent=function(e){return arguments.length?(s=null==e?al:e,t):s===al?null:s},t.size=function(e){return arguments.length?t.clipExtent(e&&[[0,0],e]):s===al?null:s&&s[1]},t)};var al=[[-1e6,-1e6],[1e6,1e6]];sa.geom.delaunay=function(e){return sa.geom.voronoi().triangles(e)},sa.geom.quadtree=function(e,t,n,i,r){function o(e){function o(e,t,n,i,r,o,a,s){if(!isNaN(n)&&!isNaN(i))if(e.leaf){var l=e.x,u=e.y;if(null!=l)if(va(l-n)+va(u-i)<.01)c(e,t,n,i,r,o,a,s);else{var d=e.point;e.x=e.y=e.point=null,c(e,d,l,u,r,o,a,s),c(e,t,n,i,r,o,a,s)}else e.x=n,e.y=i,e.point=t}else c(e,t,n,i,r,o,a,s)}function c(e,t,n,i,r,a,s,l){var c=.5*(r+s),u=.5*(a+l),d=n>=c,h=i>=u,p=h<<1|d;e.leaf=!1,e=e.nodes[p]||(e.nodes[p]={leaf:!0,nodes:[],point:null,x:null,y:null}),d?r=c:s=c,h?a=u:l=u,o(e,t,n,i,r,a,s,l)}var u,d,h,p,f,m,g,v,b,y=Ee(s),_=Ee(l);if(null!=t)m=t,g=n,v=i,b=r;else if(v=b=-(m=g=1/0),d=[],h=[],f=e.length,a)for(p=0;p<f;++p)(u=e[p]).x<m&&(m=u.x),u.y<g&&(g=u.y),u.x>v&&(v=u.x),u.y>b&&(b=u.y),d.push(u.x),h.push(u.y);else for(p=0;p<f;++p){var w=+y(u=e[p],p),A=+_(u,p);w<m&&(m=w),A<g&&(g=A),w>v&&(v=w),A>b&&(b=A),d.push(w),h.push(A)}var C=v-m,x=b-g;C>x?b=g+C:v=m+x;var S={leaf:!0,nodes:[],point:null,x:null,y:null};if(S.add=function(e){o(S,e,+y(e,++p),+_(e,p),m,g,v,b)},S.visit=function(e){hi(e,S,m,g,v,b)},S.find=function(e){return pi(S,e[0],e[1],m,g,v,b)},p=-1,null==t){for(;++p<f;)o(S,e[p],d[p],h[p],m,g,v,b);--p}else e.forEach(S.add);return d=h=e=u=null,S}var a,s=In,l=kn;return(a=arguments.length)?(s=ui,l=di,3===a&&(r=n,i=t,n=t=0),o(e)):(o.x=function(e){return arguments.length?(s=e,o):s},o.y=function(e){return arguments.length?(l=e,o):l},o.extent=function(e){return arguments.length?(null==e?t=n=i=r=null:(t=+e[0][0],n=+e[0][1],i=+e[1][0],r=+e[1][1]),o):null==t?null:[[t,n],[i,r]]},o.size=function(e){return arguments.length?(null==e?t=n=i=r=null:(t=n=0,i=+e[0],r=+e[1]),o):null==t?null:[i-t,r-n]},o)},sa.interpolateRgb=fi,sa.interpolateObject=mi,sa.interpolateNumber=gi,sa.interpolateString=vi;var sl=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ll=new RegExp(sl.source,"g");sa.interpolate=bi,sa.interpolators=[function(e,t){var n=typeof t;return("string"===n?es.has(t.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(t)?fi:vi:t instanceof ae?fi:Array.isArray(t)?yi:"object"===n&&isNaN(t)?mi:gi)(e,t)}],sa.interpolateArray=yi;var cl=function(){return b},ul=sa.map({linear:cl,poly:Ei,quad:function(){return Ci},cubic:function(){return xi},sin:function(){return Ti},exp:function(){return Di},circle:function(){return Ii},elastic:ki,back:Mi,bounce:function(){return Pi}}),dl=sa.map({in:b,out:wi,"in-out":Ai,"out-in":function(e){return Ai(wi(e))}});sa.ease=function(e){var t=e.indexOf("-"),n=t>=0?e.slice(0,t):e,i=t>=0?e.slice(t+1):"in";return n=ul.get(n)||cl,i=dl.get(i)||b,_i(i(n.apply(null,la.call(arguments,1))))},sa.interpolateHcl=$i,sa.interpolateHsl=Ni,sa.interpolateLab=Oi,sa.interpolateRound=Ri,sa.transform=function(e){var t=ua.createElementNS(sa.ns.prefix.svg,"g");return(sa.transform=function(e){if(null!=e){t.setAttribute("transform",e);var n=t.transform.baseVal.consolidate()}return new Li(n?n.matrix:hl)})(e)},Li.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var hl={a:1,b:0,c:0,d:1,e:0,f:0};sa.interpolateTransform=qi,sa.layout={},sa.layout.bundle=function(){return function(e){for(var t=[],n=-1,i=e.length;++n<i;)t.push(Ki(e[n]));return t}},sa.layout.chord=function(){function e(){var e,c,d,h,p,f={},m=[],g=sa.range(o),v=[];for(n=[],i=[],e=0,h=-1;++h<o;){for(c=0,p=-1;++p<o;)c+=r[h][p];m.push(c),v.push(sa.range(o)),e+=c}for(a&&g.sort(function(e,t){return a(m[e],m[t])}),s&&v.forEach(function(e,t){e.sort(function(e,n){return s(r[t][e],r[t][n])})}),e=(La-u*o)/e,c=0,h=-1;++h<o;){for(d=c,p=-1;++p<o;){var b=g[h],y=v[b][p],_=r[b][y],w=c,A=c+=_*e;f[b+"-"+y]={index:b,subindex:y,startAngle:w,endAngle:A,value:_}}i[b]={index:b,startAngle:d,endAngle:c,value:m[b]},c+=u}for(h=-1;++h<o;)for(p=h-1;++p<o;){var C=f[h+"-"+p],x=f[p+"-"+h];(C.value||x.value)&&n.push(C.value<x.value?{source:x,target:C}:{source:C,target:x})}l&&t()}function t(){n.sort(function(e,t){return l((e.source.value+e.target.value)/2,(t.source.value+t.target.value)/2)})}var n,i,r,o,a,s,l,c={},u=0;return c.matrix=function(e){return arguments.length?(o=(r=e)&&r.length,n=i=null,c):r},c.padding=function(e){return arguments.length?(u=e,n=i=null,c):u},c.sortGroups=function(e){return arguments.length?(a=e,n=i=null,c):a},c.sortSubgroups=function(e){return arguments.length?(s=e,n=null,c):s},c.sortChords=function(e){return arguments.length?(l=e,n&&t(),c):l},c.chords=function(){return n||e(),n},c.groups=function(){return i||e(),i},c},sa.layout.force=function(){function e(e){return function(t,n,i,r){if(t.point!==e){var o=t.cx-e.x,a=t.cy-e.y,s=r-n,l=o*o+a*a;if(s*s/v<l){if(l<m){c=t.charge/l;e.px-=o*c,e.py-=a*c}return!0}if(t.point&&l&&l<m){var c=t.pointCharge/l;e.px-=o*c,e.py-=a*c}}return!t.charge}}function t(e){e.px=sa.event.x,e.py=sa.event.y,l.resume()}var n,i,r,o,a,s,l={},c=sa.dispatch("start","tick","end"),u=[1,1],d=.9,h=pl,p=fl,f=-30,m=ml,g=.1,v=.64,y=[],_=[];return l.tick=function(){if((r*=.99)<.005)return n=null,c.end({type:"end",alpha:r=0}),!0;var t,i,l,h,p,m,v,b,w,A=y.length,C=_.length;for(i=0;i<C;++i)h=(l=_[i]).source,(m=(b=(p=l.target).x-h.x)*b+(w=p.y-h.y)*w)&&(b*=m=r*a[i]*((m=Math.sqrt(m))-o[i])/m,w*=m,p.x-=b*(v=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=w*v,h.x+=b*(v=1-v),h.y+=w*v);if((v=r*g)&&(b=u[0]/2,w=u[1]/2,i=-1,v))for(;++i<A;)(l=y[i]).x+=(b-l.x)*v,l.y+=(w-l.y)*v;if(f)for(nr(t=sa.geom.quadtree(y),r,s),i=-1;++i<A;)(l=y[i]).fixed||t.visit(e(l));for(i=-1;++i<A;)(l=y[i]).fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*d,l.y-=(l.py-(l.py=l.y))*d);c.tick({type:"tick",alpha:r})},l.nodes=function(e){return arguments.length?(y=e,l):y},l.links=function(e){return arguments.length?(_=e,l):_},l.size=function(e){return arguments.length?(u=e,l):u},l.linkDistance=function(e){return arguments.length?(h="function"==typeof e?e:+e,l):h},l.distance=l.linkDistance,l.linkStrength=function(e){return arguments.length?(p="function"==typeof e?e:+e,l):p},l.friction=function(e){return arguments.length?(d=+e,l):d},l.charge=function(e){return arguments.length?(f="function"==typeof e?e:+e,l):f},l.chargeDistance=function(e){return arguments.length?(m=e*e,l):Math.sqrt(m)},l.gravity=function(e){return arguments.length?(g=+e,l):g},l.theta=function(e){return arguments.length?(v=e*e,l):Math.sqrt(v)},l.alpha=function(e){return arguments.length?(e=+e,r?e>0?r=e:(n.c=null,n.t=NaN,n=null,c.end({type:"end",alpha:r=0})):e>0&&(c.start({type:"start",alpha:r=e}),n=Me(l.tick)),l):r},l.start=function(){function e(e,i){if(!n){for(n=new Array(r),l=0;l<r;++l)n[l]=[];for(l=0;l<c;++l){var o=_[l];n[o.source.index].push(o.target),n[o.target.index].push(o.source)}}for(var a,s=n[t],l=-1,u=s.length;++l<u;)if(!isNaN(a=s[l][e]))return a;return Math.random()*i}var t,n,i,r=y.length,c=_.length,d=u[0],m=u[1];for(t=0;t<r;++t)(i=y[t]).index=t,i.weight=0;for(t=0;t<c;++t)"number"==typeof(i=_[t]).source&&(i.source=y[i.source]),"number"==typeof i.target&&(i.target=y[i.target]),++i.source.weight,++i.target.weight;for(t=0;t<r;++t)i=y[t],isNaN(i.x)&&(i.x=e("x",d)),isNaN(i.y)&&(i.y=e("y",m)),isNaN(i.px)&&(i.px=i.x),isNaN(i.py)&&(i.py=i.y);if(o=[],"function"==typeof h)for(t=0;t<c;++t)o[t]=+h.call(this,_[t],t);else for(t=0;t<c;++t)o[t]=h;if(a=[],"function"==typeof p)for(t=0;t<c;++t)a[t]=+p.call(this,_[t],t);else for(t=0;t<c;++t)a[t]=p;if(s=[],"function"==typeof f)for(t=0;t<r;++t)s[t]=+f.call(this,y[t],t);else for(t=0;t<r;++t)s[t]=f;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){if(i||(i=sa.behavior.drag().origin(b).on("dragstart.force",Zi).on("drag.force",t).on("dragend.force",Ji)),!arguments.length)return i;this.on("mouseover.force",er).on("mouseout.force",tr).call(i)},sa.rebind(l,c,"on")};var pl=20,fl=1,ml=1/0;sa.layout.hierarchy=function(){function e(r){var o,a=[r],s=[];for(r.depth=0;null!=(o=a.pop());)if(s.push(o),(c=n.call(e,o,o.depth))&&(l=c.length)){for(var l,c,u;--l>=0;)a.push(u=c[l]),u.parent=o,u.depth=o.depth+1;i&&(o.value=0),o.children=c}else i&&(o.value=+i.call(e,o,o.depth)||0),delete o.children;return or(r,function(e){var n,r;t&&(n=e.children)&&n.sort(t),i&&(r=e.parent)&&(r.value+=e.value)}),s}var t=lr,n=ar,i=sr;return e.sort=function(n){return arguments.length?(t=n,e):t},e.children=function(t){return arguments.length?(n=t,e):n},e.value=function(t){return arguments.length?(i=t,e):i},e.revalue=function(t){return i&&(rr(t,function(e){e.children&&(e.value=0)}),or(t,function(t){var n;t.children||(t.value=+i.call(e,t,t.depth)||0),(n=t.parent)&&(n.value+=t.value)})),t},e},sa.layout.partition=function(){function e(t,n,i,r){var o=t.children;if(t.x=n,t.y=t.depth*r,t.dx=i,t.dy=r,o&&(a=o.length)){var a,s,l,c=-1;for(i=t.value?i/t.value:0;++c<a;)e(s=o[c],n,l=s.value*i,r),n+=l}}function t(e){var n=e.children,i=0;if(n&&(r=n.length))for(var r,o=-1;++o<r;)i=Math.max(i,t(n[o]));return 1+i}function n(n,o){var a=i.call(this,n,o);return e(a[0],0,r[0],r[1]/t(a[0])),a}var i=sa.layout.hierarchy(),r=[1,1];return n.size=function(e){return arguments.length?(r=e,n):r},ir(n,i)},sa.layout.pie=function(){function e(a){var s,l=a.length,c=a.map(function(n,i){return+t.call(e,n,i)}),u=+("function"==typeof i?i.apply(this,arguments):i),d=("function"==typeof r?r.apply(this,arguments):r)-u,h=Math.min(Math.abs(d)/l,+("function"==typeof o?o.apply(this,arguments):o)),p=h*(d<0?-1:1),f=sa.sum(c),m=f?(d-l*p)/f:0,g=sa.range(l),v=[];return null!=n&&g.sort(n===gl?function(e,t){return c[t]-c[e]}:function(e,t){return n(a[e],a[t])}),g.forEach(function(e){v[e]={data:a[e],value:s=c[e],startAngle:u,endAngle:u+=s*m+p,padAngle:h}}),v}var t=Number,n=gl,i=0,r=La,o=0;return e.value=function(n){return arguments.length?(t=n,e):t},e.sort=function(t){return arguments.length?(n=t,e):n},e.startAngle=function(t){return arguments.length?(i=t,e):i},e.endAngle=function(t){return arguments.length?(r=t,e):r},e.padAngle=function(t){return arguments.length?(o=t,e):o},e};var gl={};sa.layout.stack=function(){function e(s,l){if(!(h=s.length))return s;var c=s.map(function(n,i){return t.call(e,n,i)}),u=c.map(function(t){return t.map(function(t,n){return[o.call(e,t,n),a.call(e,t,n)]})}),d=n.call(e,u,l);c=sa.permute(c,d),u=sa.permute(u,d);var h,p,f,m,g=i.call(e,u,l),v=c[0].length;for(f=0;f<v;++f)for(r.call(e,c[0][f],m=g[f],u[0][f][1]),p=1;p<h;++p)r.call(e,c[p][f],m+=u[p-1][f][1],u[p][f][1]);return s}var t=b,n=pr,i=fr,r=hr,o=ur,a=dr;return e.values=function(n){return arguments.length?(t=n,e):t},e.order=function(t){return arguments.length?(n="function"==typeof t?t:vl.get(t)||pr,e):n},e.offset=function(t){return arguments.length?(i="function"==typeof t?t:bl.get(t)||fr,e):i},e.x=function(t){return arguments.length?(o=t,e):o},e.y=function(t){return arguments.length?(a=t,e):a},e.out=function(t){return arguments.length?(r=t,e):r},e};var vl=sa.map({"inside-out":function(e){var t,n,i=e.length,r=e.map(mr),o=e.map(gr),a=sa.range(i).sort(function(e,t){return r[e]-r[t]}),s=0,l=0,c=[],u=[];for(t=0;t<i;++t)n=a[t],s<l?(s+=o[n],c.push(n)):(l+=o[n],u.push(n));return u.reverse().concat(c)},reverse:function(e){return sa.range(e.length).reverse()},default:pr}),bl=sa.map({silhouette:function(e){var t,n,i,r=e.length,o=e[0].length,a=[],s=0,l=[];for(n=0;n<o;++n){for(t=0,i=0;t<r;t++)i+=e[t][n][1];i>s&&(s=i),a.push(i)}for(n=0;n<o;++n)l[n]=(s-a[n])/2;return l},wiggle:function(e){var t,n,i,r,o,a,s,l,c,u=e.length,d=e[0],h=d.length,p=[];for(p[0]=l=c=0,n=1;n<h;++n){for(t=0,r=0;t<u;++t)r+=e[t][n][1];for(t=0,o=0,s=d[n][0]-d[n-1][0];t<u;++t){for(i=0,a=(e[t][n][1]-e[t][n-1][1])/(2*s);i<t;++i)a+=(e[i][n][1]-e[i][n-1][1])/s;o+=a*e[t][n][1]}p[n]=l-=r?o/r*s:0,l<c&&(c=l)}for(n=0;n<h;++n)p[n]-=c;return p},expand:function(e){var t,n,i,r=e.length,o=e[0].length,a=1/r,s=[];for(n=0;n<o;++n){for(t=0,i=0;t<r;t++)i+=e[t][n][1];if(i)for(t=0;t<r;t++)e[t][n][1]/=i;else for(t=0;t<r;t++)e[t][n][1]=a}for(n=0;n<o;++n)s[n]=0;return s},zero:fr});sa.layout.histogram=function(){function e(e,o){for(var a,s,l=[],c=e.map(n,this),u=i.call(this,c,o),d=r.call(this,u,c,o),o=-1,h=c.length,p=d.length-1,f=t?1:1/h;++o<p;)(a=l[o]=[]).dx=d[o+1]-(a.x=d[o]),a.y=0;if(p>0)for(o=-1;++o<h;)(s=c[o])>=u[0]&&s<=u[1]&&((a=l[sa.bisect(d,s,1,p)-1]).y+=f,a.push(e[o]));return l}var t=!0,n=Number,i=_r,r=br;return e.value=function(t){return arguments.length?(n=t,e):n},e.range=function(t){return arguments.length?(i=Ee(t),e):i},e.bins=function(t){return arguments.length?(r="number"==typeof t?function(e){return yr(e,t)}:Ee(t),e):r},e.frequency=function(n){return arguments.length?(t=!!n,e):t},e},sa.layout.pack=function(){function e(e,o){var a=n.call(this,e,o),s=a[0],l=r[0],c=r[1],u=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(s.x=s.y=0,or(s,function(e){e.r=+u(e.value)}),or(s,Sr),i){var d=i*(t?1:Math.max(2*s.r/l,2*s.r/c))/2;or(s,function(e){e.r+=d}),or(s,Sr),or(s,function(e){e.r-=d})}return Dr(s,l/2,c/2,t?1:1/Math.max(2*s.r/l,2*s.r/c)),a}var t,n=sa.layout.hierarchy().sort(wr),i=0,r=[1,1];return e.size=function(t){return arguments.length?(r=t,e):r},e.radius=function(n){return arguments.length?(t=null==n||"function"==typeof n?n:+n,e):t},e.padding=function(t){return arguments.length?(i=+t,e):i},ir(e,n)},sa.layout.tree=function(){function e(e,r){var u=a.call(this,e,r),d=u[0],h=t(d);if(or(h,n),h.parent.m=-h.z,rr(h,i),c)rr(d,o);else{var p=d,f=d,m=d;rr(d,function(e){e.x<p.x&&(p=e),e.x>f.x&&(f=e),e.depth>m.depth&&(m=e)});var g=s(p,f)/2-p.x,v=l[0]/(f.x+s(f,p)/2+g),b=l[1]/(m.depth||1);rr(d,function(e){e.x=(e.x+g)*v,e.y=e.depth*b})}return u}function t(e){for(var t,n={A:null,children:[e]},i=[n];null!=(t=i.pop());)for(var r,o=t.children,a=0,s=o.length;a<s;++a)i.push((o[a]=r={_:o[a],parent:t,children:(r=o[a].children)&&r.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:a}).a=r);return n.children[0]}function n(e){var t=e.children,n=e.parent.children,i=e.i?n[e.i-1]:null;if(t.length){Nr(e);var o=(t[0].z+t[t.length-1].z)/2;i?(e.z=i.z+s(e._,i._),e.m=e.z-o):e.z=o}else i&&(e.z=i.z+s(e._,i._));e.parent.A=r(e,i,e.parent.A||n[0])}function i(e){e._.x=e.z+e.parent.m,e.m+=e.parent.m}function r(e,t,n){if(t){for(var i,r=e,o=e,a=t,l=r.parent.children[0],c=r.m,u=o.m,d=a.m,h=l.m;a=Pr(a),r=Mr(r),a&&r;)l=Mr(l),(o=Pr(o)).a=e,(i=a.z+d-r.z-c+s(a._,r._))>0&&($r(Or(a,e,n),e,i),c+=i,u+=i),d+=a.m,c+=r.m,h+=l.m,u+=o.m;a&&!Pr(o)&&(o.t=a,o.m+=d-u),r&&!Mr(l)&&(l.t=r,l.m+=c-h,n=e)}return n}function o(e){e.x*=l[0],e.y=e.depth*l[1]}var a=sa.layout.hierarchy().sort(null).value(null),s=kr,l=[1,1],c=null;return e.separation=function(t){return arguments.length?(s=t,e):s},e.size=function(t){return arguments.length?(c=null==(l=t)?o:null,e):c?null:l},e.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:o,e):c?l:null},ir(e,a)},sa.layout.cluster=function(){function e(e,o){var a,s=t.call(this,e,o),l=s[0],c=0;or(l,function(e){var t=e.children;t&&t.length?(e.x=Lr(t),e.y=Rr(t)):(e.x=a?c+=n(e,a):0,e.y=0,a=e)});var u=Gr(l),d=Br(l),h=u.x-n(u,d)/2,p=d.x+n(d,u)/2;return or(l,r?function(e){e.x=(e.x-l.x)*i[0],e.y=(l.y-e.y)*i[1]}:function(e){e.x=(e.x-h)/(p-h)*i[0],e.y=(1-(l.y?e.y/l.y:1))*i[1]}),s}var t=sa.layout.hierarchy().sort(null).value(null),n=kr,i=[1,1],r=!1;return e.separation=function(t){return arguments.length?(n=t,e):n},e.size=function(t){return arguments.length?(r=null==(i=t),e):r?null:i},e.nodeSize=function(t){return arguments.length?(r=null!=(i=t),e):r?i:null},ir(e,t)},sa.layout.treemap=function(){function e(e,t){for(var n,i,r=-1,o=e.length;++r<o;)i=(n=e[r]).value*(t<0?0:t),n.area=isNaN(i)||i<=0?0:i}function t(n){var o=n.children;if(o&&o.length){var a,s,l,c=d(n),u=[],h=o.slice(),f=1/0,m="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&n.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(e(h,c.dx*c.dy/n.value),u.area=0;(l=h.length)>0;)u.push(a=h[l-1]),u.area+=a.area,"squarify"!==p||(s=i(u,m))<=f?(h.pop(),f=s):(u.area-=u.pop().area,r(u,m,c,!1),m=Math.min(c.dx,c.dy),u.length=u.area=0,f=1/0);u.length&&(r(u,m,c,!0),u.length=u.area=0),o.forEach(t)}}function n(t){var i=t.children;if(i&&i.length){var o,a=d(t),s=i.slice(),l=[];for(e(s,a.dx*a.dy/t.value),l.area=0;o=s.pop();)l.push(o),l.area+=o.area,null!=o.z&&(r(l,o.z?a.dx:a.dy,a,!s.length),l.length=l.area=0);i.forEach(n)}}function i(e,t){for(var n,i=e.area,r=0,o=1/0,a=-1,s=e.length;++a<s;)(n=e[a].area)&&(n<o&&(o=n),n>r&&(r=n));return i*=i,t*=t,i?Math.max(t*r*f/i,i/(t*o*f)):1/0}function r(e,t,n,i){var r,o=-1,a=e.length,s=n.x,c=n.y,u=t?l(e.area/t):0;if(t==n.dx){for((i||u>n.dy)&&(u=n.dy);++o<a;)(r=e[o]).x=s,r.y=c,r.dy=u,s+=r.dx=Math.min(n.x+n.dx-s,u?l(r.area/u):0);r.z=!0,r.dx+=n.x+n.dx-s,n.y+=u,n.dy-=u}else{for((i||u>n.dx)&&(u=n.dx);++o<a;)(r=e[o]).x=s,r.y=c,r.dx=u,c+=r.dy=Math.min(n.y+n.dy-c,u?l(r.area/u):0);r.z=!1,r.dy+=n.y+n.dy-c,n.x+=u,n.dx-=u}}function o(i){var r=a||s(i),o=r[0];return o.x=o.y=0,o.value?(o.dx=c[0],o.dy=c[1]):o.dx=o.dy=0,a&&s.revalue(o),e([o],o.dx*o.dy/o.value),(a?n:t)(o),h&&(a=r),r}var a,s=sa.layout.hierarchy(),l=Math.round,c=[1,1],u=null,d=Fr,h=!1,p="squarify",f=.5*(1+Math.sqrt(5));return o.size=function(e){return arguments.length?(c=e,o):c},o.padding=function(e){function t(t){var n=e.call(o,t,t.depth);return null==n?Fr(t):Hr(t,"number"==typeof n?[n,n,n,n]:n)}function n(t){return Hr(t,e)}if(!arguments.length)return u;var i;return d=null==(u=e)?Fr:"function"==(i=typeof e)?t:"number"===i?(e=[e,e,e,e],n):n,o},o.round=function(e){return arguments.length?(l=e?Math.round:Number,o):l!=Number},o.sticky=function(e){return arguments.length?(h=e,a=null,o):h},o.ratio=function(e){return arguments.length?(f=e,o):f},o.mode=function(e){return arguments.length?(p=e+"",o):p},ir(o,s)},sa.random={normal:function(e,t){var n=arguments.length;return n<2&&(t=1),n<1&&(e=0),function(){var n,i,r;do{r=(n=2*Math.random()-1)*n+(i=2*Math.random()-1)*i}while(!r||r>1);return e+t*n*Math.sqrt(-2*Math.log(r)/r)}},logNormal:function(){var e=sa.random.normal.apply(sa,arguments);return function(){return Math.exp(e())}},bates:function(e){var t=sa.random.irwinHall(e);return function(){return t()/e}},irwinHall:function(e){return function(){for(var t=0,n=0;n<e;n++)t+=Math.random();return t}}},sa.scale={};var yl={floor:b,ceil:b};sa.scale.linear=function(){return Yr([0,1],[0,1],bi,!1)};var _l={s:1,g:1,p:1,r:1,e:1};sa.scale.log=function(){return no(sa.scale.linear().domain([0,1]),10,!0,[1,10])};var wl=sa.format(".0e"),Al={floor:function(e){return-Math.ceil(-e)},ceil:function(e){return-Math.floor(-e)}};sa.scale.pow=function(){return io(sa.scale.linear(),1,[0,1])},sa.scale.sqrt=function(){return sa.scale.pow().exponent(.5)},sa.scale.ordinal=function(){return oo([],{t:"range",a:[[]]})},sa.scale.category10=function(){return sa.scale.ordinal().range(Cl)},sa.scale.category20=function(){return sa.scale.ordinal().range(xl)},sa.scale.category20b=function(){return sa.scale.ordinal().range(Sl)},sa.scale.category20c=function(){return sa.scale.ordinal().range(El)};var Cl=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(ye),xl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(ye),Sl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(ye),El=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(ye);sa.scale.quantile=function(){return ao([],[])},sa.scale.quantize=function(){return so(0,1,[0,1])},sa.scale.threshold=function(){return lo([.5],[0,1])},sa.scale.identity=function(){return co([0,1])},sa.svg={},sa.svg.arc=function(){function e(){var e=Math.max(0,+n.apply(this,arguments)),c=Math.max(0,+i.apply(this,arguments)),u=a.apply(this,arguments)-Ba,d=s.apply(this,arguments)-Ba,h=Math.abs(d-u),p=u>d?0:1;if(c<e&&(f=c,c=e,e=f),h>=Ga)return t(c,p)+(e?t(e,1-p):"")+"Z";var f,m,g,v,b,y,_,w,A,C,x,S,E=0,T=0,D=[];if((v=(+l.apply(this,arguments)||0)/2)&&(g=o===Tl?Math.sqrt(e*e+c*c):+o.apply(this,arguments),p||(T*=-1),c&&(T=te(g/c*Math.sin(v))),e&&(E=te(g/e*Math.sin(v)))),c){b=c*Math.cos(u+T),y=c*Math.sin(u+T),_=c*Math.cos(d-T),w=c*Math.sin(d-T);var I=Math.abs(d-u-2*T)<=Ra?0:1;if(T&&vo(b,y,_,w)===p^I){var k=(u+d)/2;b=c*Math.cos(k),y=c*Math.sin(k),_=w=null}}else b=y=0;if(e){A=e*Math.cos(d-E),C=e*Math.sin(d-E),x=e*Math.cos(u+E),S=e*Math.sin(u+E);var M=Math.abs(u-d+2*E)<=Ra?0:1;if(E&&vo(A,C,x,S)===1-p^M){var P=(u+d)/2;A=e*Math.cos(P),C=e*Math.sin(P),x=S=null}}else A=C=0;if(h>Na&&(f=Math.min(Math.abs(c-e)/2,+r.apply(this,arguments)))>.001){m=e<c^p?0:1;var $=f,N=f;if(h<Ra){var O=null==x?[A,C]:null==_?[b,y]:Nn([b,y],[x,S],[_,w],[A,C]),R=b-O[0],L=y-O[1],G=_-O[0],B=w-O[1],F=1/Math.sin(Math.acos((R*G+L*B)/(Math.sqrt(R*R+L*L)*Math.sqrt(G*G+B*B)))/2),H=Math.sqrt(O[0]*O[0]+O[1]*O[1]);N=Math.min(f,(e-H)/(F-1)),$=Math.min(f,(c-H)/(F+1))}if(null!=_){var U=bo(null==x?[A,C]:[x,S],[b,y],c,$,p),j=bo([_,w],[A,C],c,$,p);f===$?D.push("M",U[0],"A",$,",",$," 0 0,",m," ",U[1],"A",c,",",c," 0 ",1-p^vo(U[1][0],U[1][1],j[1][0],j[1][1]),",",p," ",j[1],"A",$,",",$," 0 0,",m," ",j[0]):D.push("M",U[0],"A",$,",",$," 0 1,",m," ",j[0])}else D.push("M",b,",",y);if(null!=x){var W=bo([b,y],[x,S],e,-N,p),z=bo([A,C],null==_?[b,y]:[_,w],e,-N,p);f===N?D.push("L",z[0],"A",N,",",N," 0 0,",m," ",z[1],"A",e,",",e," 0 ",p^vo(z[1][0],z[1][1],W[1][0],W[1][1]),",",1-p," ",W[1],"A",N,",",N," 0 0,",m," ",W[0]):D.push("L",z[0],"A",N,",",N," 0 0,",m," ",W[0])}else D.push("L",A,",",C)}else D.push("M",b,",",y),null!=_&&D.push("A",c,",",c," 0 ",I,",",p," ",_,",",w),D.push("L",A,",",C),null!=x&&D.push("A",e,",",e," 0 ",M,",",1-p," ",x,",",S);return D.push("Z"),D.join("")}function t(e,t){return"M0,"+e+"A"+e+","+e+" 0 1,"+t+" 0,"+-e+"A"+e+","+e+" 0 1,"+t+" 0,"+e}var n=ho,i=po,r=uo,o=Tl,a=fo,s=mo,l=go;return e.innerRadius=function(t){return arguments.length?(n=Ee(t),e):n},e.outerRadius=function(t){return arguments.length?(i=Ee(t),e):i},e.cornerRadius=function(t){return arguments.length?(r=Ee(t),e):r},e.padRadius=function(t){return arguments.length?(o=t==Tl?Tl:Ee(t),e):o},e.startAngle=function(t){return arguments.length?(a=Ee(t),e):a},e.endAngle=function(t){return arguments.length?(s=Ee(t),e):s},e.padAngle=function(t){return arguments.length?(l=Ee(t),e):l},e.centroid=function(){var e=(+n.apply(this,arguments)+ +i.apply(this,arguments))/2,t=(+a.apply(this,arguments)+ +s.apply(this,arguments))/2-Ba;return[Math.cos(t)*e,Math.sin(t)*e]},e};var Tl="auto";sa.svg.line=function(){return yo(b)};var Dl=sa.map({linear:_o,"linear-closed":wo,step:Ao,"step-before":Co,"step-after":xo,basis:ko,"basis-open":Mo,"basis-closed":Po,bundle:$o,cardinal:To,"cardinal-open":So,"cardinal-closed":Eo,monotone:Bo});Dl.forEach(function(e,t){t.key=e,t.closed=/-closed$/.test(e)});var Il=[0,2/3,1/3,0],kl=[0,1/3,2/3,0],Ml=[0,1/6,2/3,1/6];sa.svg.line.radial=function(){var e=yo(Fo);return e.radius=e.x,delete e.x,e.angle=e.y,delete e.y,e},Co.reverse=xo,xo.reverse=Co,sa.svg.area=function(){return Ho(b)},sa.svg.area.radial=function(){var e=Ho(Fo);return e.radius=e.x,delete e.x,e.innerRadius=e.x0,delete e.x0,e.outerRadius=e.x1,delete e.x1,e.angle=e.y,delete e.y,e.startAngle=e.y0,delete e.y0,e.endAngle=e.y1,delete e.y1,e},sa.svg.chord=function(){function e(e,s){var l=t(this,o,e,s),c=t(this,a,e,s);return"M"+l.p0+i(l.r,l.p1,l.a1-l.a0)+(n(l,c)?r(l.r,l.p1,l.r,l.p0):r(l.r,l.p1,c.r,c.p0)+i(c.r,c.p1,c.a1-c.a0)+r(c.r,c.p1,l.r,l.p0))+"Z"}function t(e,t,n,i){var r=t.call(e,n,i),o=s.call(e,r,i),a=l.call(e,r,i)-Ba,u=c.call(e,r,i)-Ba;return{r:o,a0:a,a1:u,p0:[o*Math.cos(a),o*Math.sin(a)],p1:[o*Math.cos(u),o*Math.sin(u)]}}function n(e,t){return e.a0==t.a0&&e.a1==t.a1}function i(e,t,n){return"A"+e+","+e+" 0 "+ +(n>Ra)+",1 "+t}function r(e,t,n,i){return"Q 0,0 "+i}var o=yn,a=_n,s=Uo,l=fo,c=mo;return e.radius=function(t){return arguments.length?(s=Ee(t),e):s},e.source=function(t){return arguments.length?(o=Ee(t),e):o},e.target=function(t){return arguments.length?(a=Ee(t),e):a},e.startAngle=function(t){return arguments.length?(l=Ee(t),e):l},e.endAngle=function(t){return arguments.length?(c=Ee(t),e):c},e},sa.svg.diagonal=function(){function e(e,r){var o=t.call(this,e,r),a=n.call(this,e,r),s=(o.y+a.y)/2,l=[o,{x:o.x,y:s},{x:a.x,y:s},a];return"M"+(l=l.map(i))[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=yn,n=_n,i=jo;return e.source=function(n){return arguments.length?(t=Ee(n),e):t},e.target=function(t){return arguments.length?(n=Ee(t),e):n},e.projection=function(t){return arguments.length?(i=t,e):i},e},sa.svg.diagonal.radial=function(){var e=sa.svg.diagonal(),t=jo,n=e.projection;return e.projection=function(e){return arguments.length?n(Wo(t=e)):t},e},sa.svg.symbol=function(){function e(e,i){return(Pl.get(t.call(this,e,i))||Vo)(n.call(this,e,i))}var t=qo,n=zo;return e.type=function(n){return arguments.length?(t=Ee(n),e):t},e.size=function(t){return arguments.length?(n=Ee(t),e):n},e};var Pl=sa.map({circle:Vo,cross:function(e){var t=Math.sqrt(e/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(e){var t=Math.sqrt(e/(2*Nl)),n=t*Nl;return"M0,"+-t+"L"+n+",0 0,"+t+" "+-n+",0Z"},square:function(e){var t=Math.sqrt(e)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(e){var t=Math.sqrt(e/$l),n=t*$l/2;return"M0,"+n+"L"+t+","+-n+" "+-t+","+-n+"Z"},"triangle-up":function(e){var t=Math.sqrt(e/$l),n=t*$l/2;return"M0,"+-n+"L"+t+","+n+" "+-t+","+n+"Z"}});sa.svg.symbolTypes=Pl.keys();var $l=Math.sqrt(3),Nl=Math.tan(30*Fa);Ea.transition=function(e){for(var t,n,i=Ol||++Bl,r=Zo(e),o=[],a=Rl||{time:Date.now(),ease:Si,delay:0,duration:250},s=-1,l=this.length;++s<l;){o.push(t=[]);for(var c=this[s],u=-1,d=c.length;++u<d;)(n=c[u])&&Jo(n,u,r,i,a),t.push(n)}return Ko(o,r,i)},Ea.interrupt=function(e){return this.each(null==e?Ll:Yo(Zo(e)))};var Ol,Rl,Ll=Yo(Zo()),Gl=[],Bl=0;Gl.call=Ea.call,Gl.empty=Ea.empty,Gl.node=Ea.node,Gl.size=Ea.size,sa.transition=function(e,t){return e&&e.transition?Ol?e.transition(t):e:sa.selection().transition(e)},sa.transition.prototype=Gl,Gl.select=function(e){var t,n,i,r=this.id,o=this.namespace,a=[];e=D(e);for(var s=-1,l=this.length;++s<l;){a.push(t=[]);for(var c=this[s],u=-1,d=c.length;++u<d;)(i=c[u])&&(n=e.call(i,i.__data__,u,s))?("__data__"in i&&(n.__data__=i.__data__),Jo(n,u,o,r,i[o][r]),t.push(n)):t.push(null)}return Ko(a,o,r)},Gl.selectAll=function(e){var t,n,i,r,o,a=this.id,s=this.namespace,l=[];e=I(e);for(var c=-1,u=this.length;++c<u;)for(var d=this[c],h=-1,p=d.length;++h<p;)if(i=d[h]){o=i[s][a],n=e.call(i,i.__data__,h,c),l.push(t=[]);for(var f=-1,m=n.length;++f<m;)(r=n[f])&&Jo(r,f,s,a,o),t.push(r)}return Ko(l,s,a)},Gl.filter=function(e){var t,n,i,r=[];"function"!=typeof e&&(e=H(e));for(var o=0,a=this.length;o<a;o++){r.push(t=[]);for(var s=0,l=(n=this[o]).length;s<l;s++)(i=n[s])&&e.call(i,i.__data__,s,o)&&t.push(i)}return Ko(r,this.namespace,this.id)},Gl.tween=function(e,t){var n=this.id,i=this.namespace;return arguments.length<2?this.node()[i][n].tween.get(e):j(this,null==t?function(t){t[i][n].tween.remove(e)}:function(r){r[i][n].tween.set(e,t)})},Gl.attr=function(e,t){function n(){this.removeAttribute(s)}function i(){this.removeAttributeNS(s.space,s.local)}function r(e){return null==e?n:(e+="",function(){var t,n=this.getAttribute(s);return n!==e&&(t=a(n,e),function(e){this.setAttribute(s,t(e))})})}function o(e){return null==e?i:(e+="",function(){var t,n=this.getAttributeNS(s.space,s.local);return n!==e&&(t=a(n,e),function(e){this.setAttributeNS(s.space,s.local,t(e))})})}if(arguments.length<2){for(t in e)this.attr(t,e[t]);return this}var a="transform"==e?qi:bi,s=sa.ns.qualify(e);return Qo(this,"attr."+e,t,s.local?o:r)},Gl.attrTween=function(e,t){function n(e,n){var i=t.call(this,e,n,this.getAttribute(r));return i&&function(e){this.setAttribute(r,i(e))}}function i(e,n){var i=t.call(this,e,n,this.getAttributeNS(r.space,r.local));return i&&function(e){this.setAttributeNS(r.space,r.local,i(e))}}var r=sa.ns.qualify(e);return this.tween("attr."+e,r.local?i:n)},Gl.style=function(e,n,i){function r(){this.style.removeProperty(e)}function o(n){return null==n?r:(n+="",function(){var r,o=t(this).getComputedStyle(this,null).getPropertyValue(e);return o!==n&&(r=bi(o,n),function(t){this.style.setProperty(e,r(t),i)})})}var a=arguments.length;if(a<3){if("string"!=typeof e){a<2&&(n="");for(i in e)this.style(i,e[i],n);return this}i=""}return Qo(this,"style."+e,n,o)},Gl.styleTween=function(e,n,i){function r(r,o){var a=n.call(this,r,o,t(this).getComputedStyle(this,null).getPropertyValue(e));return a&&function(t){this.style.setProperty(e,a(t),i)}}return arguments.length<3&&(i=""),this.tween("style."+e,r)},Gl.text=function(e){return Qo(this,"text",e,Xo)},Gl.remove=function(){var e=this.namespace;return this.each("end.transition",function(){var t;this[e].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Gl.ease=function(e){var t=this.id,n=this.namespace;return arguments.length<1?this.node()[n][t].ease:("function"!=typeof e&&(e=sa.ease.apply(sa,arguments)),j(this,function(i){i[n][t].ease=e}))},Gl.delay=function(e){var t=this.id,n=this.namespace;return arguments.length<1?this.node()[n][t].delay:j(this,"function"==typeof e?function(i,r,o){i[n][t].delay=+e.call(i,i.__data__,r,o)}:(e=+e,function(i){i[n][t].delay=e}))},Gl.duration=function(e){var t=this.id,n=this.namespace;return arguments.length<1?this.node()[n][t].duration:j(this,"function"==typeof e?function(i,r,o){i[n][t].duration=Math.max(1,e.call(i,i.__data__,r,o))}:(e=Math.max(1,e),function(i){i[n][t].duration=e}))},Gl.each=function(e,t){var n=this.id,i=this.namespace;if(arguments.length<2){var r=Rl,o=Ol;try{Ol=n,j(this,function(t,r,o){Rl=t[i][n],e.call(t,t.__data__,r,o)})}finally{Rl=r,Ol=o}}else j(this,function(r){var o=r[i][n];(o.event||(o.event=sa.dispatch("start","end","interrupt"))).on(e,t)});return this},Gl.transition=function(){for(var e,t,n,i,r=this.id,o=++Bl,a=this.namespace,s=[],l=0,c=this.length;l<c;l++){s.push(e=[]);for(var u=0,d=(t=this[l]).length;u<d;u++)(n=t[u])&&Jo(n,u,a,o,{time:(i=n[a][r]).time,ease:i.ease,delay:i.delay+i.duration,duration:i.duration}),e.push(n)}return Ko(s,a,o)},sa.svg.axis=function(){function e(e){e.each(function(){var e,c=sa.select(this),u=this.__chart__||n,d=this.__chart__=n.copy(),h=null==l?d.ticks?d.ticks.apply(d,s):d.domain():l,p=null==t?d.tickFormat?d.tickFormat.apply(d,s):b:t,f=c.selectAll(".tick").data(h,d),m=f.enter().insert("g",".domain").attr("class","tick").style("opacity",Na),g=sa.transition(f.exit()).style("opacity",Na).remove(),v=sa.transition(f.order()).style("opacity",1),y=Math.max(r,0)+a,_=jr(d),w=c.selectAll(".domain").data([0]),A=(w.enter().append("path").attr("class","domain"),sa.transition(w));m.append("line"),m.append("text");var C,x,S,E,T=m.select("line"),D=v.select("line"),I=f.select("text").text(p),k=m.select("text"),M=v.select("text"),P="top"===i||"left"===i?-1:1;if("bottom"===i||"top"===i?(e=ea,C="x",S="y",x="x2",E="y2",I.attr("dy",P<0?"0em":".71em").style("text-anchor","middle"),A.attr("d","M"+_[0]+","+P*o+"V0H"+_[1]+"V"+P*o)):(e=ta,C="y",S="x",x="y2",E="x2",I.attr("dy",".32em").style("text-anchor",P<0?"end":"start"),A.attr("d","M"+P*o+","+_[0]+"H0V"+_[1]+"H"+P*o)),T.attr(E,P*r),k.attr(S,P*y),D.attr(x,0).attr(E,P*r),M.attr(C,0).attr(S,P*y),d.rangeBand){var $=d,N=$.rangeBand()/2;u=d=function(e){return $(e)+N}}else u.rangeBand?u=d:g.call(e,d,u);m.call(e,u,d),v.call(e,d,d)})}var t,n=sa.scale.linear(),i=Fl,r=6,o=6,a=3,s=[10],l=null;return e.scale=function(t){return arguments.length?(n=t,e):n},e.orient=function(t){return arguments.length?(i=t in Hl?t+"":Fl,e):i},e.ticks=function(){return arguments.length?(s=ca(arguments),e):s},e.tickValues=function(t){return arguments.length?(l=t,e):l},e.tickFormat=function(n){return arguments.length?(t=n,e):t},e.tickSize=function(t){var n=arguments.length;return n?(r=+t,o=+arguments[n-1],e):r},e.innerTickSize=function(t){return arguments.length?(r=+t,e):r},e.outerTickSize=function(t){return arguments.length?(o=+t,e):o},e.tickPadding=function(t){return arguments.length?(a=+t,e):a},e.tickSubdivide=function(){return arguments.length&&e},e};var Fl="bottom",Hl={top:1,right:1,bottom:1,left:1};sa.svg.brush=function(){function e(t){t.each(function(){var t=sa.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",o).on("touchstart.brush",o),a=t.selectAll(".background").data([0]);a.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var s=t.selectAll(".resize").data(m,b);s.exit().remove(),s.enter().append("g").attr("class",function(e){return"resize "+e}).style("cursor",function(e){return Ul[e]}).append("rect").attr("x",function(e){return/[ew]$/.test(e)?-3:null}).attr("y",function(e){return/^[ns]/.test(e)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),s.style("display",e.empty()?"none":null);var l,d=sa.transition(t),h=sa.transition(a);c&&(l=jr(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),i(d)),u&&(l=jr(u),h.attr("y",l[0]).attr("height",l[1]-l[0]),r(d)),n(d)})}function n(e){e.selectAll(".resize").attr("transform",function(e){return"translate("+d[+/e$/.test(e)]+","+h[+/^s/.test(e)]+")"})}function i(e){e.select(".extent").attr("x",d[0]),e.selectAll(".extent,.n>rect,.s>rect").attr("width",d[1]-d[0])}function r(e){e.select(".extent").attr("y",h[0]),e.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function o(){function o(){32==sa.event.keyCode&&(I||(y=null,M[0]-=d[1],M[1]-=h[1],I=2),x())}function m(){32==sa.event.keyCode&&2==I&&(M[0]+=d[1],M[1]+=h[1],I=0,x())}function g(){var e=sa.mouse(w),t=!1;_&&(e[0]+=_[0],e[1]+=_[1]),I||(sa.event.altKey?(y||(y=[(d[0]+d[1])/2,(h[0]+h[1])/2]),M[0]=d[+(e[0]<y[0])],M[1]=h[+(e[1]<y[1])]):y=null),T&&v(e,c,0)&&(i(S),t=!0),D&&v(e,u,1)&&(r(S),t=!0),t&&(n(S),C({type:"brush",mode:I?"move":"resize"}))}function v(e,t,n){var i,r,o=jr(t),l=o[0],c=o[1],u=M[n],m=n?h:d,g=m[1]-m[0];if(I&&(l-=u,c-=g+u),i=(n?f:p)?Math.max(l,Math.min(c,e[n])):e[n],I?r=(i+=u)+g:(y&&(u=Math.max(l,Math.min(c,2*y[n]-i))),u<i?(r=i,i=u):r=u),m[0]!=i||m[1]!=r)return n?s=null:a=null,m[0]=i,m[1]=r,!0}function b(){g(),S.style("pointer-events","all").selectAll(".resize").style("display",e.empty()?"none":null),sa.select("body").style("cursor",null),P.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),k(),C({type:"brushend"})}var y,_,w=this,A=sa.select(sa.event.target),C=l.of(w,arguments),S=sa.select(w),E=A.datum(),T=!/^(n|s)$/.test(E)&&c,D=!/^(e|w)$/.test(E)&&u,I=A.classed("extent"),k=K(w),M=sa.mouse(w),P=sa.select(t(w)).on("keydown.brush",o).on("keyup.brush",m);if(sa.event.changedTouches?P.on("touchmove.brush",g).on("touchend.brush",b):P.on("mousemove.brush",g).on("mouseup.brush",b),S.interrupt().selectAll("*").interrupt(),I)M[0]=d[0]-M[0],M[1]=h[0]-M[1];else if(E){var $=+/w$/.test(E),N=+/^n/.test(E);_=[d[1-$]-M[0],h[1-N]-M[1]],M[0]=d[$],M[1]=h[N]}else sa.event.altKey&&(y=M.slice());S.style("pointer-events","none").selectAll(".resize").style("display",null),sa.select("body").style("cursor",A.style("cursor")),C({type:"brushstart"}),g()}var a,s,l=E(e,"brushstart","brush","brushend"),c=null,u=null,d=[0,0],h=[0,0],p=!0,f=!0,m=jl[0];return e.event=function(e){e.each(function(){var e=l.of(this,arguments),t={x:d,y:h,i:a,j:s},n=this.__chart__||t;this.__chart__=t,Ol?sa.select(this).transition().each("start.brush",function(){a=n.i,s=n.j,d=n.x,h=n.y,e({type:"brushstart"})}).tween("brush:brush",function(){var n=yi(d,t.x),i=yi(h,t.y);return a=s=null,function(r){d=t.x=n(r),h=t.y=i(r),e({type:"brush",mode:"resize"})}}).each("end.brush",function(){a=t.i,s=t.j,e({type:"brush",mode:"resize"}),e({type:"brushend"})}):(e({type:"brushstart"}),e({type:"brush",mode:"resize"}),e({type:"brushend"}))})},e.x=function(t){return arguments.length?(c=t,m=jl[!c<<1|!u],e):c},e.y=function(t){return arguments.length?(u=t,m=jl[!c<<1|!u],e):u},e.clamp=function(t){return arguments.length?(c&&u?(p=!!t[0],f=!!t[1]):c?p=!!t:u&&(f=!!t),e):c&&u?[p,f]:c?p:u?f:null},e.extent=function(t){var n,i,r,o,l;return arguments.length?(c&&(n=t[0],i=t[1],u&&(n=n[0],i=i[0]),a=[n,i],c.invert&&(n=c(n),i=c(i)),i<n&&(l=n,n=i,i=l),n==d[0]&&i==d[1]||(d=[n,i])),u&&(r=t[0],o=t[1],c&&(r=r[1],o=o[1]),s=[r,o],u.invert&&(r=u(r),o=u(o)),o<r&&(l=r,r=o,o=l),r==h[0]&&o==h[1]||(h=[r,o])),e):(c&&(a?(n=a[0],i=a[1]):(n=d[0],i=d[1],c.invert&&(n=c.invert(n),i=c.invert(i)),i<n&&(l=n,n=i,i=l))),u&&(s?(r=s[0],o=s[1]):(r=h[0],o=h[1],u.invert&&(r=u.invert(r),o=u.invert(o)),o<r&&(l=r,r=o,o=l))),c&&u?[[n,r],[i,o]]:c?[n,i]:u&&[r,o])},e.clear=function(){return e.empty()||(d=[0,0],h=[0,0],a=s=null),e},e.empty=function(){return!!c&&d[0]==d[1]||!!u&&h[0]==h[1]},sa.rebind(e,l,"on")};var Ul={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},jl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=cs.format=ms.timeFormat,zl=Wl.utc,ql=zl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?na:ql,na.parse=function(e){var t=new Date(e);return isNaN(t)?null:t},na.toString=ql.toString,cs.second=Fe(function(e){return new us(1e3*Math.floor(e/1e3))},function(e,t){e.setTime(e.getTime()+1e3*Math.floor(t))},function(e){return e.getSeconds()}),cs.seconds=cs.second.range,cs.seconds.utc=cs.second.utc.range,cs.minute=Fe(function(e){return new us(6e4*Math.floor(e/6e4))},function(e,t){e.setTime(e.getTime()+6e4*Math.floor(t))},function(e){return e.getMinutes()}),cs.minutes=cs.minute.range,cs.minutes.utc=cs.minute.utc.range,cs.hour=Fe(function(e){var t=e.getTimezoneOffset()/60;return new us(36e5*(Math.floor(e/36e5-t)+t))},function(e,t){e.setTime(e.getTime()+36e5*Math.floor(t))},function(e){return e.getHours()}),cs.hours=cs.hour.range,cs.hours.utc=cs.hour.utc.range,cs.month=Fe(function(e){return(e=cs.day(e)).setDate(1),e},function(e,t){e.setMonth(e.getMonth()+t)},function(e){return e.getMonth()}),cs.months=cs.month.range,cs.months.utc=cs.month.utc.range;var Vl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Yl=[[cs.second,1],[cs.second,5],[cs.second,15],[cs.second,30],[cs.minute,1],[cs.minute,5],[cs.minute,15],[cs.minute,30],[cs.hour,1],[cs.hour,3],[cs.hour,6],[cs.hour,12],[cs.day,1],[cs.day,2],[cs.week,1],[cs.month,1],[cs.month,3],[cs.year,1]],Kl=Wl.multi([[".%L",function(e){return e.getMilliseconds()}],[":%S",function(e){return e.getSeconds()}],["%I:%M",function(e){return e.getMinutes()}],["%I %p",function(e){return e.getHours()}],["%a %d",function(e){return e.getDay()&&1!=e.getDate()}],["%b %d",function(e){return 1!=e.getDate()}],["%B",function(e){return e.getMonth()}],["%Y",It]]),Ql={range:function(e,t,n){return sa.range(Math.ceil(e/n)*n,+t,n).map(ra)},floor:b,ceil:b};Yl.year=cs.year,cs.scale=function(){return ia(sa.scale.linear(),Yl,Kl)};var Xl=Yl.map(function(e){return[e[0].utc,e[1]]}),Zl=zl.multi([[".%L",function(e){return e.getUTCMilliseconds()}],[":%S",function(e){return e.getUTCSeconds()}],["%I:%M",function(e){return e.getUTCMinutes()}],["%I %p",function(e){return e.getUTCHours()}],["%a %d",function(e){return e.getUTCDay()&&1!=e.getUTCDate()}],["%b %d",function(e){return 1!=e.getUTCDate()}],["%B",function(e){return e.getUTCMonth()}],["%Y",It]]);Xl.year=cs.year.utc,cs.scale.utc=function(){return ia(sa.scale.linear(),Xl,Zl)},sa.text=Te(function(e){return e.responseText}),sa.json=function(e,t){return De(e,"application/json",oa,t)},sa.html=function(e,t){return De(e,"text/html",aa,t)},sa.xml=Te(function(e){return e.responseXML}),"function"==typeof define&&define.amd?(this.d3=sa,define(sa)):"object"==typeof module&&module.exports?module.exports=sa:this.d3=sa}(),function(){var e={};e.dev=!1,e.tooltip=e.tooltip||{},e.utils=e.utils||{},e.models=e.models||{},e.charts={},e.logs={},e.dom={},e.dispatch=d3.dispatch("render_start","render_end"),Function.prototype.bind||(Function.prototype.bind=function(e){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var t=Array.prototype.slice.call(arguments,1),n=this,i=function(){},r=function(){return n.apply(this instanceof i&&e?this:e,t.concat(Array.prototype.slice.call(arguments)))};return i.prototype=this.prototype,r.prototype=new i,r}),e.dev&&(e.dispatch.on("render_start",function(t){e.logs.startTime=+new Date}),e.dispatch.on("render_end",function(t){e.logs.endTime=+new Date,e.logs.totalTime=e.logs.endTime-e.logs.startTime,e.log("total",e.logs.totalTime)})),e.log=function(){return e.dev&&window.console&&console.log&&console.log.apply?console.log.apply(console,arguments):e.dev&&window.console&&"function"==typeof console.log&&Function.prototype.bind&&Function.prototype.bind.call(console.log,console).apply(console,arguments),arguments[arguments.length-1]},e.deprecated=function(e,t){console&&console.warn&&console.warn("nvd3 warning: `"+e+"` has been deprecated. ",t||"")},e.render=function(t){t=t||1,e.render.active=!0,e.dispatch.render_start();var n=function(){for(var i,r,o=0;o<t&&(r=e.render.queue[o]);o++)i=r.generate(),typeof r.callback==typeof Function&&r.callback(i);e.render.queue.splice(0,o),e.render.queue.length?setTimeout(n):(e.dispatch.render_end(),e.render.active=!1)};setTimeout(n)},e.render.active=!1,e.render.queue=[],e.addGraph=function(t){typeof arguments[0]==typeof Function&&(t={generate:arguments[0],callback:arguments[1]}),e.render.queue.push(t),e.render.active||e.render()},"undefined"!=typeof module&&"undefined"!=typeof exports&&(module.exports=e),"undefined"!=typeof window&&(window.nv=e),e.dom.write=function(e){return void 0!==window.fastdom?fastdom.write(e):e()},e.dom.read=function(e){return void 0!==window.fastdom?fastdom.read(e):e()},e.interactiveGuideline=function(){"use strict";function t(d){d.each(function(d){function h(){var e=d3.mouse(this),i=e[0],r=e[1],l=!0,c=!1;if(u&&(i=d3.event.offsetX,r=d3.event.offsetY,"svg"!==d3.event.target.tagName&&(l=!1),d3.event.target.className.baseVal.match("nv-legend")&&(c=!0)),l&&(i-=o.left,r-=o.top),i<0||r<0||i>f||r>m||d3.event.relatedTarget&&void 0===d3.event.relatedTarget.ownerSVGElement||c){if(u&&d3.event.relatedTarget&&void 0===d3.event.relatedTarget.ownerSVGElement&&(void 0===d3.event.relatedTarget.className||d3.event.relatedTarget.className.match(n.nvPointerEventsClass)))return;return s.elementMouseout({mouseX:i,mouseY:r}),t.renderGuideLine(null),void n.hidden(!0)}n.hidden(!1);var d=a.invert(i);s.elementMousemove({mouseX:i,mouseY:r,pointXValue:d}),"dblclick"===d3.event.type&&s.elementDblclick({mouseX:i,mouseY:r,pointXValue:d}),"click"===d3.event.type&&s.elementClick({mouseX:i,mouseY:r,pointXValue:d})}var p=d3.select(this),f=i||960,m=r||400,g=p.selectAll("g.nv-wrap.nv-interactiveLineLayer").data([d]);g.enter().append("g").attr("class"," nv-wrap nv-interactiveLineLayer").append("g").attr("class","nv-interactiveGuideLine"),c&&(c.on("touchmove",h).on("mousemove",h,!0).on("mouseout",h,!0).on("dblclick",h).on("click",h),t.guideLine=null,t.renderGuideLine=function(n){l&&(t.guideLine&&t.guideLine.attr("x1")===n||e.dom.write(function(){var t=g.select(".nv-interactiveGuideLine").selectAll("line").data(null!=n?[e.utils.NaNtoZero(n)]:[],String);t.enter().append("line").attr("class","nv-guideline").attr("x1",function(e){return e}).attr("x2",function(e){return e}).attr("y1",m).attr("y2",0),t.exit().remove()}))})})}var n=e.models.tooltip();n.duration(0).hideDelay(0)._isInteractiveLayer(!0).hidden(!1);var i=null,r=null,o={left:0,top:0},a=d3.scale.linear(),s=d3.dispatch("elementMousemove","elementMouseout","elementClick","elementDblclick"),l=!0,c=null,u="ActiveXObject"in window;return t.dispatch=s,t.tooltip=n,t.margin=function(e){return arguments.length?(o.top=void 0!==e.top?e.top:o.top,o.left=void 0!==e.left?e.left:o.left,t):o},t.width=function(e){return arguments.length?(i=e,t):i},t.height=function(e){return arguments.length?(r=e,t):r},t.xScale=function(e){return arguments.length?(a=e,t):a},t.showGuideLine=function(e){return arguments.length?(l=e,t):l},t.svgContainer=function(e){return arguments.length?(c=e,t):c},t},e.interactiveBisect=function(e,t,n){"use strict";if(!(e instanceof Array))return null;var i;i="function"!=typeof n?function(e){return e.x}:n;var r=function(e,t){return i(e)-t},o=d3.bisector(r).left,a=d3.max([0,o(e,t)-1]),s=i(e[a]);if(void 0===s&&(s=a),s===t)return a;var l=d3.min([a+1,e.length-1]),c=i(e[l]);return void 0===c&&(c=l),Math.abs(c-t)>=Math.abs(s-t)?a:l},e.nearestValueIndex=function(e,t,n){"use strict";var i=1/0,r=null;return e.forEach(function(e,o){var a=Math.abs(t-e);null!=e&&a<=i&&a<n&&(i=a,r=o)}),r},function(){"use strict";e.models.tooltip=function(){function t(){if(u){var e=d3.select(u);"svg"!==e.node().tagName&&(e=e.select("svg"));var t=e.node()?e.attr("viewBox"):null;if(t){t=t.split(" ");var n=parseInt(e.style("width"),10)/t[2];m.left=m.left*n,m.top=m.top*n}}}function n(){if(!p){var e;e=u||document.body,(p=d3.select(e).append("div").attr("class","nvtooltip "+(c||"xy-tooltip")).attr("id",w)).style("top",0).style("left",0),p.style("opacity",0),p.selectAll("div, table, td, tr").classed(A,!0),p.classed(A,!0),f=p.node()}}function i(){if(v&&T(r)){t();var o=m.left,a=null!==l?l:m.top;return e.dom.write(function(){n();var t=E(r);t&&(f.innerHTML=t),u&&_?e.dom.read(function(){var e=u.getElementsByTagName("svg")[0],t={left:0,top:0};if(e){var n=e.getBoundingClientRect(),i=u.getBoundingClientRect(),r=n.top;if(r<0){var l=u.getBoundingClientRect();r=Math.abs(r)>l.height?0:r}t.top=Math.abs(r-i.top),t.left=Math.abs(n.left-i.left)}o+=u.offsetLeft+t.left-2*u.scrollLeft,a+=u.offsetTop+t.top-2*u.scrollTop,s&&s>0&&(a=Math.floor(a/s)*s),D([o,a])}):D([o,a])}),i}}var r=null,o="w",a=25,s=0,l=null,c=null,u=null,d=!0,h=400,p=null,f=null,m={left:null,top:null},g={left:0,top:0},v=!0,b=100,y=!0,_=!1,w="nvtooltip-"+Math.floor(1e5*Math.random()),A="nv-pointer-events-none",C=function(e,t){return e},x=function(e){return e},S=function(e,t){return e},E=function(e){if(null===e)return"";var t=d3.select(document.createElement("table"));y&&t.selectAll("thead").data([e]).enter().append("thead").append("tr").append("td").attr("colspan",3).append("strong").classed("x-value",!0).html(x(e.value));var n=t.selectAll("tbody").data([e]).enter().append("tbody").selectAll("tr").data(function(e){return e.series}).enter().append("tr").classed("highlight",function(e){return e.highlight});n.append("td").classed("legend-color-guide",!0).append("div").style("background-color",function(e){return e.color}),n.append("td").classed("key",!0).html(function(e,t){return S(e.key,t)}),n.append("td").classed("value",!0).html(function(e,t){return C(e.value,t)}),n.selectAll("td").each(function(e){if(e.highlight){var t=d3.scale.linear().domain([0,1]).range(["#fff",e.color]);d3.select(this).style("border-bottom-color",t(.6)).style("border-top-color",t(.6))}});var i=t.node().outerHTML;return void 0!==e.footer&&(i+="<div class='footer'>"+e.footer+"</div>"),i},T=function(e){if(e&&e.series){if(e.series instanceof Array)return!!e.series.length;if(e.series instanceof Object)return e.series=[e.series],!0}return!1},D=function(t){f&&e.dom.read(function(){var n,i,r=parseInt(f.offsetHeight,10),s=parseInt(f.offsetWidth,10),l=e.utils.windowSize().width,c=e.utils.windowSize().height,u=window.pageYOffset,m=window.pageXOffset;c=window.innerWidth>=document.body.scrollWidth?c:c-16,l=window.innerHeight>=document.body.scrollHeight?l:l-16;var v,y,_=function(e){var t=i;do{isNaN(e.offsetTop)||(t+=e.offsetTop),e=e.offsetParent}while(e);return t},w=function(e){var t=n;do{isNaN(e.offsetLeft)||(t+=e.offsetLeft),e=e.offsetParent}while(e);return t};switch(o){case"e":n=t[0]-s-a,i=t[1]-r/2,v=w(f),y=_(f),v<m&&(n=t[0]+a>m?t[0]+a:m-v+n),y<u&&(i=u-y+i),y+r>u+c&&(i=u+c-y+i-r);break;case"w":n=t[0]+a,i=t[1]-r/2,v=w(f),y=_(f),v+s>l&&(n=t[0]-s-a),y<u&&(i=u+5),y+r>u+c&&(i=u+c-y+i-r);break;case"n":n=t[0]-s/2-5,i=t[1]+a,v=w(f),y=_(f),v<m&&(n=m+5),v+s>l&&(n=n-s/2+5),y+r>u+c&&(i=u+c-y+i-r);break;case"s":n=t[0]-s/2,i=t[1]-r-a,v=w(f),y=_(f),v<m&&(n=m+5),v+s>l&&(n=n-s/2+5),u>y&&(i=u);break;case"none":n=t[0],i=t[1]-a,v=w(f),y=_(f)}n-=g.left,i-=g.top;var A=f.getBoundingClientRect(),u=window.pageYOffset||document.documentElement.scrollTop,m=window.pageXOffset||document.documentElement.scrollLeft,C="translate("+(A.left+m)+"px, "+(A.top+u)+"px)",x="translate("+n+"px, "+i+"px)",S=d3.interpolateString(C,x),E=p.style("opacity")<.1;d?p.transition().delay(h).duration(0).style("opacity",0):p.interrupt().transition().duration(E?0:b).styleTween("transform",function(e){return S},"important").style("-webkit-transform",x).style("opacity",1)})};return i.nvPointerEventsClass=A,i.options=e.utils.optionsFunc.bind(i),i._options=Object.create({},{duration:{get:function(){return b},set:function(e){b=e}},gravity:{get:function(){return o},set:function(e){o=e}},distance:{get:function(){return a},set:function(e){a=e}},snapDistance:{get:function(){return s},set:function(e){s=e}},classes:{get:function(){return c},set:function(e){c=e}},chartContainer:{get:function(){return u},set:function(e){u=e}},fixedTop:{get:function(){return l},set:function(e){l=e}},enabled:{get:function(){return v},set:function(e){v=e}},hideDelay:{get:function(){return h},set:function(e){h=e}},contentGenerator:{get:function(){return E},set:function(e){E=e}},valueFormatter:{get:function(){return C},set:function(e){C=e}},headerFormatter:{get:function(){return x},set:function(e){x=e}},keyFormatter:{get:function(){return S},set:function(e){S=e}},headerEnabled:{get:function(){return y},set:function(e){y=e}},_isInteractiveLayer:{get:function(){return _},set:function(e){_=!!e}},position:{get:function(){return m},set:function(e){m.left=void 0!==e.left?e.left:m.left,m.top=void 0!==e.top?e.top:m.top}},offset:{get:function(){return g},set:function(e){g.left=void 0!==e.left?e.left:g.left,g.top=void 0!==e.top?e.top:g.top}},hidden:{get:function(){return d},set:function(e){d!=e&&(d=!!e,i())}},data:{get:function(){return r},set:function(e){e.point&&(e.value=e.point.x,e.series=e.series||{},e.series.value=e.point.y,e.series.color=e.point.color||e.series.color),r=e}},tooltipElem:{get:function(){return f},set:function(e){}},id:{get:function(){return w},set:function(e){}}}),e.utils.initOptions(i),i}}(),e.utils.windowSize=function(){var e={width:640,height:480};return window.innerWidth&&window.innerHeight?(e.width=window.innerWidth,e.height=window.innerHeight,e):"CSS1Compat"==document.compatMode&&document.documentElement&&document.documentElement.offsetWidth?(e.width=document.documentElement.offsetWidth,e.height=document.documentElement.offsetHeight,e):document.body&&document.body.offsetWidth?(e.width=document.body.offsetWidth,e.height=document.body.offsetHeight,e):e},e.utils.windowResize=function(t){return window.addEventListener?window.addEventListener("resize",t):e.log("ERROR: Failed to bind to window.resize with: ",t),{callback:t,clear:function(){window.removeEventListener("resize",t)}}},e.utils.getColor=function(t){if(void 0===t)return e.utils.defaultColor();if(Array.isArray(t)){var n=d3.scale.ordinal().range(t);return function(e,t){var i=void 0===t?e:t;return e.color||n(i)}}return t},e.utils.defaultColor=function(){return e.utils.getColor(d3.scale.category20().range())},e.utils.customTheme=function(e,t,n){t=t||function(e){return e.key};var i=(n=n||d3.scale.category20().range()).length;return function(r,o){var a=t(r);return"function"==typeof e[a]?e[a]():void 0!==e[a]?e[a]:(i||(i=n.length),i-=1,n[i])}},e.utils.pjax=function(t,n){var i=function(i){d3.html(i,function(i){var r=d3.select(n).node();r.parentNode.replaceChild(d3.select(i).select(n).node(),r),e.utils.pjax(t,n)})};d3.selectAll(t).on("click",function(){history.pushState(this.href,this.textContent,this.href),i(this.href),d3.event.preventDefault()}),d3.select(window).on("popstate",function(){d3.event.state&&i(d3.event.state)})},e.utils.calcApproxTextWidth=function(e){if("function"==typeof e.style&&"function"==typeof e.text){var t=parseInt(e.style("font-size").replace("px",""),10);return e.text().length*t*.5}return 0},e.utils.NaNtoZero=function(e){return"number"!=typeof e||isNaN(e)||null===e||e===1/0||e===-1/0?0:e},d3.selection.prototype.watchTransition=function(e){var t=[this].concat([].slice.call(arguments,1));return e.transition.apply(e,t)},e.utils.renderWatch=function(t,n){if(!(this instanceof e.utils.renderWatch))return new e.utils.renderWatch(t,n);var i=void 0!==n?n:250,r=[],o=this;this.models=function(e){return[].slice.call(arguments,0).forEach(function(e){e.__rendered=!1,function(e){e.dispatch.on("renderEnd",function(t){e.__rendered=!0,o.renderEnd("model")})}(e),r.indexOf(e)<0&&r.push(e)}),this},this.reset=function(e){void 0!==e&&(i=e),r=[]},this.transition=function(e,t,n){if(t=arguments.length>1?[].slice.call(arguments,1):[],n=t.length>1?t.pop():void 0!==i?i:250,e.__rendered=!1,r.indexOf(e)<0&&r.push(e),0===n)return e.__rendered=!0,e.delay=function(){return this},e.duration=function(){return this},e;0===e.length?e.__rendered=!0:e.every(function(e){return!e.length})?e.__rendered=!0:e.__rendered=!1;var a=0;return e.transition().duration(n).each(function(){++a}).each("end",function(n,i){0==--a&&(e.__rendered=!0,o.renderEnd.apply(this,t))})},this.renderEnd=function(){r.every(function(e){return e.__rendered})&&(r.forEach(function(e){e.__rendered=!1}),t.renderEnd.apply(this,arguments))}},e.utils.deepExtend=function(t){(arguments.length>1?[].slice.call(arguments,1):[]).forEach(function(n){for(var i in n){var r=t[i]instanceof Array,o="object"==typeof t[i],a="object"==typeof n[i];o&&!r&&a?e.utils.deepExtend(t[i],n[i]):t[i]=n[i]}})},e.utils.state=function(){if(!(this instanceof e.utils.state))return new e.utils.state;var t={},n=function(){},i=function(){return{}},r=null,o=null;this.dispatch=d3.dispatch("change","set"),this.dispatch.on("set",function(e){n(e,!0)}),this.getter=function(e){return i=e,this},this.setter=function(e,t){return t||(t=function(){}),n=function(n,i){e(n),i&&t()},this},this.init=function(t){r=r||{},e.utils.deepExtend(r,t)};var a=function(){var e=i();if(JSON.stringify(e)===JSON.stringify(t))return!1;for(var n in e)void 0===t[n]&&(t[n]={}),t[n]=e[n],o=!0;return!0};this.update=function(){r&&(n(r,!1),r=null),a.call(this)&&this.dispatch.change(t)}},e.utils.optionsFunc=function(e){return e&&d3.map(e).forEach(function(e,t){"function"==typeof this[e]&&this[e](t)}.bind(this)),this},e.utils.calcTicksX=function(t,n){var i=1,r=0;for(r;r<n.length;r+=1){var o=n[r]&&n[r].values?n[r].values.length:0;i=o>i?o:i}return e.log("Requested number of ticks: ",t),e.log("Calculated max values to be: ",i),t=t>i?t=i-1:t,t=t<1?1:t,t=Math.floor(t),e.log("Calculating tick count as: ",t),t},e.utils.calcTicksY=function(t,n){return e.utils.calcTicksX(t,n)},e.utils.initOption=function(e,t){e._calls&&e._calls[t]?e[t]=e._calls[t]:(e[t]=function(n){return arguments.length?(e._overrides[t]=!0,e._options[t]=n,e):e._options[t]},e["_"+t]=function(n){return arguments.length?(e._overrides[t]||(e._options[t]=n),e):e._options[t]})},e.utils.initOptions=function(t){t._overrides=t._overrides||{};var n=Object.getOwnPropertyNames(t._options||{}),i=Object.getOwnPropertyNames(t._calls||{});n=n.concat(i);for(var r in n)e.utils.initOption(t,n[r])},e.utils.inheritOptionsD3=function(e,t,n){e._d3options=n.concat(e._d3options||[]),n.unshift(t),n.unshift(e),d3.rebind.apply(this,n)},e.utils.arrayUnique=function(e){return e.sort().filter(function(t,n){return!n||t!=e[n-1]})},e.utils.symbolMap=d3.map(),e.utils.symbol=function(){function t(t,r){var o=n.call(this,t,r),a=i.call(this,t,r);return-1!==d3.svg.symbolTypes.indexOf(o)?d3.svg.symbol().type(o).size(a)():e.utils.symbolMap.get(o)(a)}var n,i=64;return t.type=function(e){return arguments.length?(n=d3.functor(e),t):n},t.size=function(e){return arguments.length?(i=d3.functor(e),t):i},t},e.utils.inheritOptions=function(t,n){var i=Object.getOwnPropertyNames(n._options||{}),r=Object.getOwnPropertyNames(n._calls||{}),o=n._inherited||[],a=n._d3options||[],s=i.concat(r).concat(o).concat(a);s.unshift(n),s.unshift(t),d3.rebind.apply(this,s),t._inherited=e.utils.arrayUnique(i.concat(r).concat(o).concat(i).concat(t._inherited||[])),t._d3options=e.utils.arrayUnique(a.concat(t._d3options||[]))},e.utils.initSVG=function(e){e.classed({"nvd3-svg":!0})},e.utils.sanitizeHeight=function(e,t){return e||parseInt(t.style("height"),10)||400},e.utils.sanitizeWidth=function(e,t){return e||parseInt(t.style("width"),10)||960},e.utils.availableHeight=function(t,n,i){return e.utils.sanitizeHeight(t,n)-i.top-i.bottom},e.utils.availableWidth=function(t,n,i){return e.utils.sanitizeWidth(t,n)-i.left-i.right},e.utils.noData=function(t,n){var i=t.options(),r=i.margin(),o=i.noData(),a=null==o?["No Data Available."]:[o],s=e.utils.availableHeight(i.height(),n,r),l=e.utils.availableWidth(i.width(),n,r),c=r.left+l/2,u=r.top+s/2;n.selectAll("g").remove();var d=n.selectAll(".nv-noData").data(a);d.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),d.attr("x",c).attr("y",u).text(function(e){return e})},e.models.axis=function(){"use strict";function t(a){return b.reset(),a.each(function(t){var a=d3.select(this);e.utils.initSVG(a);var m=a.selectAll("g.nv-wrap.nv-axis").data([t]),g=(m.enter().append("g").attr("class","nvd3 nv-wrap nv-axis").append("g"),m.select("g"));null!==p?n.ticks(p):"top"!=n.orient()&&"bottom"!=n.orient()||n.ticks(Math.abs(i.range()[1]-i.range()[0])/100),g.watchTransition(b,"axis").call(n),v=v||n.scale();var y=n.tickFormat();null==y&&(y=v.tickFormat());var _=g.selectAll("text.nv-axislabel").data([s||null]);_.exit().remove();var w,A,C;switch(n.orient()){case"top":_.enter().append("text").attr("class","nv-axislabel"),C=i.range().length<2?0:2===i.range().length?i.range()[1]:i.range()[i.range().length-1]+(i.range()[1]-i.range()[0]),_.attr("text-anchor","middle").attr("y",0).attr("x",C/2),l&&((A=m.selectAll("g.nv-axisMaxMin").data(i.domain())).enter().append("g").attr("class",function(e,t){return["nv-axisMaxMin","nv-axisMaxMin-x",0==t?"nv-axisMin-x":"nv-axisMax-x"].join(" ")}).append("text"),A.exit().remove(),A.attr("transform",function(t,n){return"translate("+e.utils.NaNtoZero(i(t))+",0)"}).select("text").attr("dy","-0.5em").attr("y",-n.tickPadding()).attr("text-anchor","middle").text(function(e,t){var n=y(e);return(""+n).match("NaN")?"":n}),A.watchTransition(b,"min-max top").attr("transform",function(t,n){return"translate("+e.utils.NaNtoZero(i.range()[n])+",0)"}));break;case"bottom":w=f+36;var x=30,S=0,E=g.selectAll("g").select("text"),T="";if(c%360){E.each(function(e,t){var n=this.getBoundingClientRect(),i=n.width;S=n.height,i>x&&(x=i)}),T="rotate("+c+" 0,"+(S/2+n.tickPadding())+")";var D=Math.abs(Math.sin(c*Math.PI/180));w=(D?D*x:x)+30,E.attr("transform",T).style("text-anchor",c%360>0?"start":"end")}_.enter().append("text").attr("class","nv-axislabel"),C=i.range().length<2?0:2===i.range().length?i.range()[1]:i.range()[i.range().length-1]+(i.range()[1]-i.range()[0]),_.attr("text-anchor","middle").attr("y",w).attr("x",C/2),l&&((A=m.selectAll("g.nv-axisMaxMin").data([i.domain()[0],i.domain()[i.domain().length-1]])).enter().append("g").attr("class",function(e,t){return["nv-axisMaxMin","nv-axisMaxMin-x",0==t?"nv-axisMin-x":"nv-axisMax-x"].join(" ")}).append("text"),A.exit().remove(),A.attr("transform",function(t,n){return"translate("+e.utils.NaNtoZero(i(t)+(h?i.rangeBand()/2:0))+",0)"}).select("text").attr("dy",".71em").attr("y",n.tickPadding()).attr("transform",T).style("text-anchor",c?c%360>0?"start":"end":"middle").text(function(e,t){var n=y(e);return(""+n).match("NaN")?"":n}),A.watchTransition(b,"min-max bottom").attr("transform",function(t,n){return"translate("+e.utils.NaNtoZero(i(t)+(h?i.rangeBand()/2:0))+",0)"})),d&&E.attr("transform",function(e,t){return"translate(0,"+(t%2==0?"0":"12")+")"});break;case"right":_.enter().append("text").attr("class","nv-axislabel"),_.style("text-anchor",u?"middle":"begin").attr("transform",u?"rotate(90)":"").attr("y",u?12-Math.max(r.right,o):-10).attr("x",u?d3.max(i.range())/2:n.tickPadding()),l&&((A=m.selectAll("g.nv-axisMaxMin").data(i.domain())).enter().append("g").attr("class",function(e,t){return["nv-axisMaxMin","nv-axisMaxMin-y",0==t?"nv-axisMin-y":"nv-axisMax-y"].join(" ")}).append("text").style("opacity",0),A.exit().remove(),A.attr("transform",function(t,n){return"translate(0,"+e.utils.NaNtoZero(i(t))+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",n.tickPadding()).style("text-anchor","start").text(function(e,t){var n=y(e);return(""+n).match("NaN")?"":n}),A.watchTransition(b,"min-max right").attr("transform",function(t,n){return"translate(0,"+e.utils.NaNtoZero(i.range()[n])+")"}).select("text").style("opacity",1));break;case"left":_.enter().append("text").attr("class","nv-axislabel"),_.style("text-anchor",u?"middle":"end").attr("transform",u?"rotate(-90)":"").attr("y",u?25-Math.max(r.left,o)-(f||0):-10).attr("x",u?-d3.max(i.range())/2:-n.tickPadding()),l&&((A=m.selectAll("g.nv-axisMaxMin").data(i.domain())).enter().append("g").attr("class",function(e,t){return["nv-axisMaxMin","nv-axisMaxMin-y",0==t?"nv-axisMin-y":"nv-axisMax-y"].join(" ")}).append("text").style("opacity",0),A.exit().remove(),A.attr("transform",function(t,n){return"translate(0,"+e.utils.NaNtoZero(v(t))+")"}).select("text").attr("dy",".32em").attr("y",0).attr("x",-n.tickPadding()).attr("text-anchor","end").text(function(e,t){var n=y(e);return(""+n).match("NaN")?"":n}),A.watchTransition(b,"min-max right").attr("transform",function(t,n){return"translate(0,"+e.utils.NaNtoZero(i.range()[n])+")"}).select("text").style("opacity",1))}if(_.text(function(e){return e}),!l||"left"!==n.orient()&&"right"!==n.orient()||(g.selectAll("g").each(function(e,t){d3.select(this).select("text").attr("opacity",1),(i(e)<i.range()[1]+10||i(e)>i.range()[0]-10)&&((e>1e-10||e<-1e-10)&&d3.select(this).attr("opacity",0),d3.select(this).select("text").attr("opacity",0))}),i.domain()[0]==i.domain()[1]&&0==i.domain()[0]&&m.selectAll("g.nv-axisMaxMin").style("opacity",function(e,t){return t?0:1})),l&&("top"===n.orient()||"bottom"===n.orient())){var I=[];m.selectAll("g.nv-axisMaxMin").each(function(e,t){try{t?I.push(i(e)-this.getBoundingClientRect().width-4):I.push(i(e)+this.getBoundingClientRect().width+4)}catch(n){t?I.push(i(e)-4):I.push(i(e)+4)}}),g.selectAll("g").each(function(e,t){(i(e)<I[0]||i(e)>I[1])&&(e>1e-10||e<-1e-10?d3.select(this).remove():d3.select(this).select("text").remove())})}g.selectAll(".tick").filter(function(e){return!parseFloat(Math.round(1e5*e)/1e6)&&void 0!==e}).classed("zero",!0),v=i.copy()}),b.renderEnd("axis immediate"),t}var n=d3.svg.axis(),i=d3.scale.linear(),r={top:0,right:0,bottom:0,left:0},o=75,a=60,s=null,l=!0,c=0,u=!0,d=!1,h=!1,p=null,f=0,m=250,g=d3.dispatch("renderEnd");n.scale(i).orient("bottom").tickFormat(function(e){return e});var v,b=e.utils.renderWatch(g,m);return t.axis=n,t.dispatch=g,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{axisLabelDistance:{get:function(){return f},set:function(e){f=e}},staggerLabels:{get:function(){return d},set:function(e){d=e}},rotateLabels:{get:function(){return c},set:function(e){c=e}},rotateYLabel:{get:function(){return u},set:function(e){u=e}},showMaxMin:{get:function(){return l},set:function(e){l=e}},axisLabel:{get:function(){return s},set:function(e){s=e}},height:{get:function(){return a},set:function(e){a=e}},ticks:{get:function(){return p},set:function(e){p=e}},width:{get:function(){return o},set:function(e){o=e}},margin:{get:function(){return r},set:function(e){r.top=void 0!==e.top?e.top:r.top,r.right=void 0!==e.right?e.right:r.right,r.bottom=void 0!==e.bottom?e.bottom:r.bottom,r.left=void 0!==e.left?e.left:r.left}},duration:{get:function(){return m},set:function(e){m=e,b.reset(m)}},scale:{get:function(){return i},set:function(r){i=r,n.scale(i),h="function"==typeof i.rangeBands,e.utils.inheritOptionsD3(t,i,["domain","range","rangeBand","rangeBands"])}}}),e.utils.initOptions(t),e.utils.inheritOptionsD3(t,n,["orient","tickValues","tickSubdivide","tickSize","tickPadding","tickFormat"]),e.utils.inheritOptionsD3(t,i,["domain","range","rangeBand","rangeBands"]),t},e.models.boxPlot=function(){"use strict";function t(d){return w.reset(),d.each(function(t){var d=c-l.left-l.right,m=u-l.top-l.bottom;v=d3.select(this),e.utils.initSVG(v),h.domain(n||t.map(function(e,t){return f(e,t)})).rangeBands(r||[0,d],.1);var A=[];i||(A=[d3.min(t.map(function(e){var t=[];return t.push(e.values.Q1),e.values.hasOwnProperty("whisker_low")&&null!==e.values.whisker_low&&t.push(e.values.whisker_low),e.values.hasOwnProperty("outliers")&&null!==e.values.outliers&&(t=t.concat(e.values.outliers)),d3.min(t)})),d3.max(t.map(function(e){var t=[];return t.push(e.values.Q3),e.values.hasOwnProperty("whisker_high")&&null!==e.values.whisker_high&&t.push(e.values.whisker_high),e.values.hasOwnProperty("outliers")&&null!==e.values.outliers&&(t=t.concat(e.values.outliers)),d3.max(t)}))]),p.domain(i||A),p.range(o||[m,0]),a=a||h,s=s||p.copy().range([p(0),p(0)]);var C=v.selectAll("g.nv-wrap").data([t]);C.enter().append("g").attr("class","nvd3 nv-wrap");C.attr("transform","translate("+l.left+","+l.top+")");var x=C.selectAll(".nv-boxplot").data(function(e){return e}),S=x.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6);x.attr("class","nv-boxplot").attr("transform",function(e,t,n){return"translate("+(h(f(e,t))+.05*h.rangeBand())+", 0)"}).classed("hover",function(e){return e.hover}),x.watchTransition(w,"nv-boxplot: boxplots").style("stroke-opacity",1).style("fill-opacity",.75).delay(function(e,n){return n*y/t.length}).attr("transform",function(e,t){return"translate("+(h(f(e,t))+.05*h.rangeBand())+", 0)"}),x.exit().remove(),S.each(function(e,t){var n=d3.select(this);["low","high"].forEach(function(i){e.values.hasOwnProperty("whisker_"+i)&&null!==e.values["whisker_"+i]&&(n.append("line").style("stroke",e.color?e.color:g(e,t)).attr("class","nv-boxplot-whisker nv-boxplot-"+i),n.append("line").style("stroke",e.color?e.color:g(e,t)).attr("class","nv-boxplot-tick nv-boxplot-"+i))})});var E=x.selectAll(".nv-boxplot-outlier").data(function(e){return e.values.hasOwnProperty("outliers")&&null!==e.values.outliers?e.values.outliers:[]});E.enter().append("circle").style("fill",function(e,t,n){return g(e,n)}).style("stroke",function(e,t,n){return g(e,n)}).on("mouseover",function(e,t,n){d3.select(this).classed("hover",!0),b.elementMouseover({series:{key:e,color:g(e,n)},e:d3.event})}).on("mouseout",function(e,t,n){d3.select(this).classed("hover",!1),b.elementMouseout({series:{key:e,color:g(e,n)},e:d3.event})}).on("mousemove",function(e,t){b.elementMousemove({e:d3.event})}),E.attr("class","nv-boxplot-outlier"),E.watchTransition(w,"nv-boxplot: nv-boxplot-outlier").attr("cx",.45*h.rangeBand()).attr("cy",function(e,t,n){return p(e)}).attr("r","3"),E.exit().remove();var T=function(){return null===_?.9*h.rangeBand():Math.min(75,.9*h.rangeBand())},D=function(){return.45*h.rangeBand()-T()/2},I=function(){return.45*h.rangeBand()+T()/2};["low","high"].forEach(function(e){var t="low"===e?"Q1":"Q3";x.select("line.nv-boxplot-whisker.nv-boxplot-"+e).watchTransition(w,"nv-boxplot: boxplots").attr("x1",.45*h.rangeBand()).attr("y1",function(t,n){return p(t.values["whisker_"+e])}).attr("x2",.45*h.rangeBand()).attr("y2",function(e,n){return p(e.values[t])}),x.select("line.nv-boxplot-tick.nv-boxplot-"+e).watchTransition(w,"nv-boxplot: boxplots").attr("x1",D).attr("y1",function(t,n){return p(t.values["whisker_"+e])}).attr("x2",I).attr("y2",function(t,n){return p(t.values["whisker_"+e])})}),["low","high"].forEach(function(e){S.selectAll(".nv-boxplot-"+e).on("mouseover",function(t,n,i){d3.select(this).classed("hover",!0),b.elementMouseover({series:{key:t.values["whisker_"+e],color:g(t,i)},e:d3.event})}).on("mouseout",function(t,n,i){d3.select(this).classed("hover",!1),b.elementMouseout({series:{key:t.values["whisker_"+e],color:g(t,i)},e:d3.event})}).on("mousemove",function(e,t){b.elementMousemove({e:d3.event})})}),S.append("rect").attr("class","nv-boxplot-box").on("mouseover",function(e,t){d3.select(this).classed("hover",!0),b.elementMouseover({key:e.label,value:e.label,series:[{key:"Q3",value:e.values.Q3,color:e.color||g(e,t)},{key:"Q2",value:e.values.Q2,color:e.color||g(e,t)},{key:"Q1",value:e.values.Q1,color:e.color||g(e,t)}],data:e,index:t,e:d3.event})}).on("mouseout",function(e,t){d3.select(this).classed("hover",!1),b.elementMouseout({key:e.label,value:e.label,series:[{key:"Q3",value:e.values.Q3,color:e.color||g(e,t)},{key:"Q2",value:e.values.Q2,color:e.color||g(e,t)},{key:"Q1",value:e.values.Q1,color:e.color||g(e,t)}],data:e,index:t,e:d3.event})}).on("mousemove",function(e,t){b.elementMousemove({e:d3.event})}),x.select("rect.nv-boxplot-box").watchTransition(w,"nv-boxplot: boxes").attr("y",function(e,t){return p(e.values.Q3)}).attr("width",T).attr("x",D).attr("height",function(e,t){return Math.abs(p(e.values.Q3)-p(e.values.Q1))||1}).style("fill",function(e,t){return e.color||g(e,t)}).style("stroke",function(e,t){return e.color||g(e,t)}),S.append("line").attr("class","nv-boxplot-median"),x.select("line.nv-boxplot-median").watchTransition(w,"nv-boxplot: boxplots line").attr("x1",D).attr("y1",function(e,t){return p(e.values.Q2)}).attr("x2",I).attr("y2",function(e,t){return p(e.values.Q2)}),a=h.copy(),s=p.copy()}),w.renderEnd("nv-boxplot immediate"),t}var n,i,r,o,a,s,l={top:0,right:0,bottom:0,left:0},c=960,u=500,d=Math.floor(1e4*Math.random()),h=d3.scale.ordinal(),p=d3.scale.linear(),f=function(e){return e.x},m=function(e){return e.y},g=e.utils.defaultColor(),v=null,b=d3.dispatch("elementMouseover","elementMouseout","elementMousemove","renderEnd"),y=250,_=null,w=e.utils.renderWatch(b,y);return t.dispatch=b,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return c},set:function(e){c=e}},height:{get:function(){return u},set:function(e){u=e}},maxBoxWidth:{get:function(){return _},set:function(e){_=e}},x:{get:function(){return f},set:function(e){f=e}},y:{get:function(){return m},set:function(e){m=e}},xScale:{get:function(){return h},set:function(e){h=e}},yScale:{get:function(){return p},set:function(e){p=e}},xDomain:{get:function(){return n},set:function(e){n=e}},yDomain:{get:function(){return i},set:function(e){i=e}},xRange:{get:function(){return r},set:function(e){r=e}},yRange:{get:function(){return o},set:function(e){o=e}},id:{get:function(){return d},set:function(e){d=e}},margin:{get:function(){return l},set:function(e){l.top=void 0!==e.top?e.top:l.top,l.right=void 0!==e.right?e.right:l.right,l.bottom=void 0!==e.bottom?e.bottom:l.bottom,l.left=void 0!==e.left?e.left:l.left}},color:{get:function(){return g},set:function(t){g=e.utils.getColor(t)}},duration:{get:function(){return y},set:function(e){y=e,w.reset(y)}}}),e.utils.initOptions(t),t},e.models.boxPlotChart=function(){"use strict";function t(u){return y.reset(),y.models(r),d&&y.models(o),h&&y.models(a),u.each(function(u){var m=d3.select(this);e.utils.initSVG(m);var y=(l||parseInt(m.style("width"))||960)-s.left-s.right,_=(c||parseInt(m.style("height"))||400)-s.top-s.bottom;if(t.update=function(){v.beforeUpdate(),m.transition().duration(b).call(t)},t.container=this,!(u&&u.length&&u.filter(function(e){return e.values.hasOwnProperty("Q1")&&e.values.hasOwnProperty("Q2")&&e.values.hasOwnProperty("Q3")}).length)){var w=m.selectAll(".nv-noData").data([g]);return w.enter().append("text").attr("class","nvd3 nv-noData").attr("dy","-.7em").style("text-anchor","middle"),w.attr("x",s.left+y/2).attr("y",s.top+_/2).text(function(e){return e}),t}m.selectAll(".nv-noData").remove(),n=r.xScale(),i=r.yScale().clamp(!0);var A=m.selectAll("g.nv-wrap.nv-boxPlotWithAxes").data([u]),C=A.enter().append("g").attr("class","nvd3 nv-wrap nv-boxPlotWithAxes").append("g"),x=C.append("defs"),S=A.select("g");if(C.append("g").attr("class","nv-x nv-axis"),C.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),C.append("g").attr("class","nv-barsWrap"),S.attr("transform","translate("+s.left+","+s.top+")"),p&&S.select(".nv-y.nv-axis").attr("transform","translate("+y+",0)"),r.width(y).height(_),S.select(".nv-barsWrap").datum(u.filter(function(e){return!e.disabled})).transition().call(r),x.append("clipPath").attr("id","nv-x-label-clip-"+r.id()).append("rect"),S.select("#nv-x-label-clip-"+r.id()+" rect").attr("width",n.rangeBand()*(f?2:1)).attr("height",16).attr("x",-n.rangeBand()/(f?1:2)),d){o.scale(n).ticks(e.utils.calcTicksX(y/100,u)).tickSize(-_,0),S.select(".nv-x.nv-axis").attr("transform","translate(0,"+i.range()[0]+")"),S.select(".nv-x.nv-axis").call(o);var E=S.select(".nv-x.nv-axis").selectAll("g");f&&E.selectAll("text").attr("transform",function(e,t,n){return"translate(0,"+(n%2==0?"5":"17")+")"})}h&&(a.scale(i).ticks(Math.floor(_/36)).tickSize(-y,0),S.select(".nv-y.nv-axis").call(a)),S.select(".nv-zeroLine line").attr("x1",0).attr("x2",y).attr("y1",i(0)).attr("y2",i(0))}),y.renderEnd("nv-boxplot chart immediate"),t}var n,i,r=e.models.boxPlot(),o=e.models.axis(),a=e.models.axis(),s={top:15,right:10,bottom:50,left:60},l=null,c=null,u=e.utils.getColor(),d=!0,h=!0,p=!1,f=!1,m=e.models.tooltip(),g="No Data Available.",v=d3.dispatch("tooltipShow","tooltipHide","beforeUpdate","renderEnd"),b=250;o.orient("bottom").showMaxMin(!1).tickFormat(function(e){return e}),a.orient(p?"right":"left").tickFormat(d3.format(",.1f")),m.duration(0);var y=e.utils.renderWatch(v,b);return r.dispatch.on("elementMouseover.tooltip",function(e){m.data(e).hidden(!1)}),r.dispatch.on("elementMouseout.tooltip",function(e){m.data(e).hidden(!0)}),r.dispatch.on("elementMousemove.tooltip",function(e){m.position({top:d3.event.pageY,left:d3.event.pageX})()}),t.dispatch=v,t.boxplot=r,t.xAxis=o,t.yAxis=a,t.tooltip=m,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return l},set:function(e){l=e}},height:{get:function(){return c},set:function(e){c=e}},staggerLabels:{get:function(){return f},set:function(e){f=e}},showXAxis:{get:function(){return d},set:function(e){d=e}},showYAxis:{get:function(){return h},set:function(e){h=e}},tooltips:{get:function(){return tooltips},set:function(e){tooltips=e}},tooltipContent:{get:function(){return m},set:function(e){m=e}},noData:{get:function(){return g},set:function(e){g=e}},margin:{get:function(){return s},set:function(e){s.top=void 0!==e.top?e.top:s.top,s.right=void 0!==e.right?e.right:s.right,s.bottom=void 0!==e.bottom?e.bottom:s.bottom,s.left=void 0!==e.left?e.left:s.left}},duration:{get:function(){return b},set:function(e){b=e,y.reset(b),r.duration(b),o.duration(b),a.duration(b)}},color:{get:function(){return u},set:function(t){u=e.utils.getColor(t),r.color(u)}},rightAlignYAxis:{get:function(){return p},set:function(e){p=e,a.orient(e?"right":"left")}}}),e.utils.inheritOptions(t,r),e.utils.initOptions(t),t},e.models.bullet=function(){"use strict";function t(i){return i.each(function(t,i){var m=h-n.left-n.right,b=p-n.top-n.bottom;f=d3.select(this),e.utils.initSVG(f);var y=o.call(this,t,i).slice().sort(d3.descending),_=a.call(this,t,i).slice().sort(d3.descending),w=s.call(this,t,i).slice().sort(d3.descending),A=l.call(this,t,i).slice(),C=c.call(this,t,i).slice(),x=u.call(this,t,i).slice(),S=d3.scale.linear().domain(d3.extent(d3.merge([d,y]))).range(r?[m,0]:[0,m]);this.__chart__||d3.scale.linear().domain([0,1/0]).range(S.range());this.__chart__=S;var E=d3.min(y),T=d3.max(y),D=y[1],I=f.selectAll("g.nv-wrap.nv-bullet").data([t]),k=I.enter().append("g").attr("class","nvd3 nv-wrap nv-bullet").append("g"),M=I.select("g");k.append("rect").attr("class","nv-range nv-rangeMax"),k.append("rect").attr("class","nv-range nv-rangeAvg"),k.append("rect").attr("class","nv-range nv-rangeMin"),k.append("rect").attr("class","nv-measure"),I.attr("transform","translate("+n.left+","+n.top+")");var P=function(e){return Math.abs(S(e)-S(0))},$=function(e){return S(e<0?e:0)};M.select("rect.nv-rangeMax").attr("height",b).attr("width",P(T>0?T:E)).attr("x",$(T>0?T:E)).datum(T>0?T:E),M.select("rect.nv-rangeAvg").attr("height",b).attr("width",P(D)).attr("x",$(D)).datum(D),M.select("rect.nv-rangeMin").attr("height",b).attr("width",P(T)).attr("x",$(T)).attr("width",P(T>0?E:T)).attr("x",$(T>0?E:T)).datum(T>0?E:T),M.select("rect.nv-measure").style("fill",g).attr("height",b/3).attr("y",b/3).attr("width",w<0?S(0)-S(w[0]):S(w[0])-S(0)).attr("x",$(w)).on("mouseover",function(){v.elementMouseover({value:w[0],label:x[0]||"Current",color:d3.select(this).style("fill")})}).on("mousemove",function(){v.elementMousemove({value:w[0],label:x[0]||"Current",color:d3.select(this).style("fill")})}).on("mouseout",function(){v.elementMouseout({value:w[0],label:x[0]||"Current",color:d3.select(this).style("fill")})});var N=b/6,O=_.map(function(e,t){return{value:e,label:C[t]}});k.selectAll("path.nv-markerTriangle").data(O).enter().append("path").attr("class","nv-markerTriangle").attr("transform",function(e){return"translate("+S(e.value)+","+b/2+")"}).attr("d","M0,"+N+"L"+N+","+-N+" "+-N+","+-N+"Z").on("mouseover",function(e){v.elementMouseover({value:e.value,label:e.label||"Previous",color:d3.select(this).style("fill"),pos:[S(e.value),b/2]})}).on("mousemove",function(e){v.elementMousemove({value:e.value,label:e.label||"Previous",color:d3.select(this).style("fill")})}).on("mouseout",function(e,t){v.elementMouseout({value:e.value,label:e.label||"Previous",color:d3.select(this).style("fill")})}),I.selectAll(".nv-range").on("mouseover",function(e,t){var n=A[t]||(t?1==t?"Mean":"Minimum":"Maximum");v.elementMouseover({value:e,label:n,color:d3.select(this).style("fill")})}).on("mousemove",function(){v.elementMousemove({value:w[0],label:x[0]||"Previous",color:d3.select(this).style("fill")})}).on("mouseout",function(e,t){var n=A[t]||(t?1==t?"Mean":"Minimum":"Maximum");v.elementMouseout({value:e,label:n,color:d3.select(this).style("fill")})})}),t}var n={top:0,right:0,bottom:0,left:0},i="left",r=!1,o=function(e){return e.ranges},a=function(e){return e.markers?e.markers:[0]},s=function(e){return e.measures},l=function(e){return e.rangeLabels?e.rangeLabels:[]},c=function(e){return e.markerLabels?e.markerLabels:[]},u=function(e){return e.measureLabels?e.measureLabels:[]},d=[0],h=380,p=30,f=null,m=null,g=e.utils.getColor(["#1f77b4"]),v=d3.dispatch("elementMouseover","elementMouseout","elementMousemove");return t.dispatch=v,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{ranges:{get:function(){return o},set:function(e){o=e}},markers:{get:function(){return a},set:function(e){a=e}},measures:{get:function(){return s},set:function(e){s=e}},forceX:{get:function(){return d},set:function(e){d=e}},width:{get:function(){return h},set:function(e){h=e}},height:{get:function(){return p},set:function(e){p=e}},tickFormat:{get:function(){return m},set:function(e){m=e}},margin:{get:function(){return n},set:function(e){n.top=void 0!==e.top?e.top:n.top,n.right=void 0!==e.right?e.right:n.right,n.bottom=void 0!==e.bottom?e.bottom:n.bottom,n.left=void 0!==e.left?e.left:n.left}},orient:{get:function(){return i},set:function(e){r="right"==(i=e)||"bottom"==i}},color:{get:function(){return g},set:function(t){g=e.utils.getColor(t)}}}),e.utils.initOptions(t),t},e.models.bulletChart=function(){"use strict";function t(i){return i.each(function(r,f){var m=d3.select(this);e.utils.initSVG(m);var g=e.utils.availableWidth(u,m,a),v=d-a.top-a.bottom;if(t.update=function(){t(i)},t.container=this,!r||!s.call(this,r,f))return e.utils.noData(t,m),t;m.selectAll(".nv-noData").remove();var b=s.call(this,r,f).slice().sort(d3.descending),y=l.call(this,r,f).slice().sort(d3.descending),_=c.call(this,r,f).slice().sort(d3.descending),w=m.selectAll("g.nv-wrap.nv-bulletChart").data([r]),A=w.enter().append("g").attr("class","nvd3 nv-wrap nv-bulletChart").append("g"),C=w.select("g");A.append("g").attr("class","nv-bulletWrap"),A.append("g").attr("class","nv-titles"),w.attr("transform","translate("+a.left+","+a.top+")");var x=d3.scale.linear().domain([0,Math.max(b[0],y[0],_[0])]).range(o?[g,0]:[0,g]),S=this.__chart__||d3.scale.linear().domain([0,1/0]).range(x.range());this.__chart__=x;var E=A.select(".nv-titles").append("g").attr("text-anchor","end").attr("transform","translate(-6,"+(d-a.top-a.bottom)/2+")");E.append("text").attr("class","nv-title").text(function(e){return e.title}),E.append("text").attr("class","nv-subtitle").attr("dy","1em").text(function(e){return e.subtitle}),n.width(g).height(v);var T=C.select(".nv-bulletWrap");d3.transition(T).call(n);var D=h||x.tickFormat(g/100),I=C.selectAll("g.nv-tick").data(x.ticks(p||g/50),function(e){return this.textContent||D(e)}),k=I.enter().append("g").attr("class","nv-tick").attr("transform",function(e){return"translate("+S(e)+",0)"}).style("opacity",1e-6);k.append("line").attr("y1",v).attr("y2",7*v/6),k.append("text").attr("text-anchor","middle").attr("dy","1em").attr("y",7*v/6).text(D);var M=d3.transition(I).attr("transform",function(e){return"translate("+x(e)+",0)"}).style("opacity",1);M.select("line").attr("y1",v).attr("y2",7*v/6),M.select("text").attr("y",7*v/6),d3.transition(I.exit()).attr("transform",function(e){return"translate("+x(e)+",0)"}).style("opacity",1e-6).remove()}),d3.timer.flush(),t}var n=e.models.bullet(),i=e.models.tooltip(),r="left",o=!1,a={top:5,right:40,bottom:20,left:120},s=function(e){return e.ranges},l=function(e){return e.markers?e.markers:[0]},c=function(e){return e.measures},u=null,d=55,h=null,p=null,f=null,m=d3.dispatch("tooltipShow","tooltipHide");return i.duration(0).headerEnabled(!1),n.dispatch.on("elementMouseover.tooltip",function(e){e.series={key:e.label,value:e.value,color:e.color},i.data(e).hidden(!1)}),n.dispatch.on("elementMouseout.tooltip",function(e){i.hidden(!0)}),n.dispatch.on("elementMousemove.tooltip",function(e){i.position({top:d3.event.pageY,left:d3.event.pageX})()}),t.bullet=n,t.dispatch=m,t.tooltip=i,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{ranges:{get:function(){return s},set:function(e){s=e}},markers:{get:function(){return l},set:function(e){l=e}},measures:{get:function(){return c},set:function(e){c=e}},width:{get:function(){return u},set:function(e){u=e}},height:{get:function(){return d},set:function(e){d=e}},tickFormat:{get:function(){return h},set:function(e){h=e}},ticks:{get:function(){return p},set:function(e){p=e}},noData:{get:function(){return f},set:function(e){f=e}},tooltips:{get:function(){return i.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),i.enabled(!!t)}},tooltipContent:{get:function(){return i.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),i.contentGenerator(t)}},margin:{get:function(){return a},set:function(e){a.top=void 0!==e.top?e.top:a.top,a.right=void 0!==e.right?e.right:a.right,a.bottom=void 0!==e.bottom?e.bottom:a.bottom,a.left=void 0!==e.left?e.left:a.left}},orient:{get:function(){return r},set:function(e){o="right"==(r=e)||"bottom"==r}}}),e.utils.inheritOptions(t,n),e.utils.initOptions(t),t},e.models.candlestickBar=function(){"use strict";function t(C){return C.each(function(t){n=d3.select(this);var C=e.utils.availableWidth(l,n,s),x=e.utils.availableHeight(c,n,s);e.utils.initSVG(n);var E=C/t[0].values.length*.45;d.domain(i||d3.extent(t[0].values.map(p).concat(y))),w?d.range(o||[.5*C/t[0].values.length,C*(t[0].values.length-.5)/t[0].values.length]):d.range(o||[5+E/2,C-E/2-5]),h.domain(r||[d3.min(t[0].values.map(b).concat(_)),d3.max(t[0].values.map(v).concat(_))]).range(a||[x,0]),d.domain()[0]===d.domain()[1]&&(d.domain()[0]?d.domain([d.domain()[0]-.01*d.domain()[0],d.domain()[1]+.01*d.domain()[1]]):d.domain([-1,1])),h.domain()[0]===h.domain()[1]&&(h.domain()[0]?h.domain([h.domain()[0]+.01*h.domain()[0],h.domain()[1]-.01*h.domain()[1]]):h.domain([-1,1]));var T=d3.select(this).selectAll("g.nv-wrap.nv-candlestickBar").data([t[0].values]),D=T.enter().append("g").attr("class","nvd3 nv-wrap nv-candlestickBar"),I=D.append("defs"),k=D.append("g"),M=T.select("g");k.append("g").attr("class","nv-ticks"),T.attr("transform","translate("+s.left+","+s.top+")"),n.on("click",function(e,t){S.chartClick({data:e,index:t,pos:d3.event,id:u})}),I.append("clipPath").attr("id","nv-chart-clip-path-"+u).append("rect"),T.select("#nv-chart-clip-path-"+u+" rect").attr("width",C).attr("height",x),M.attr("clip-path",A?"url(#nv-chart-clip-path-"+u+")":"");var P=T.select(".nv-ticks").selectAll(".nv-tick").data(function(e){return e});P.exit().remove();var $=P.enter().append("g").attr("class",function(e,t,n){return(m(e,t)>g(e,t)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+n+"-"+t});$.append("line").attr("class","nv-candlestick-lines").attr("transform",function(e,t){return"translate("+d(p(e,t))+",0)"}).attr("x1",0).attr("y1",function(e,t){return h(v(e,t))}).attr("x2",0).attr("y2",function(e,t){return h(b(e,t))}),$.append("rect").attr("class","nv-candlestick-rects nv-bars").attr("transform",function(e,t){return"translate("+(d(p(e,t))-E/2)+","+(h(f(e,t))-(m(e,t)>g(e,t)?h(g(e,t))-h(m(e,t)):0))+")"}).attr("x",0).attr("y",0).attr("width",E).attr("height",function(e,t){var n=m(e,t),i=g(e,t);return n>i?h(i)-h(n):h(n)-h(i)});n.selectAll(".nv-candlestick-lines").transition().attr("transform",function(e,t){return"translate("+d(p(e,t))+",0)"}).attr("x1",0).attr("y1",function(e,t){return h(v(e,t))}).attr("x2",0).attr("y2",function(e,t){return h(b(e,t))}),n.selectAll(".nv-candlestick-rects").transition().attr("transform",function(e,t){return"translate("+(d(p(e,t))-E/2)+","+(h(f(e,t))-(m(e,t)>g(e,t)?h(g(e,t))-h(m(e,t)):0))+")"}).attr("x",0).attr("y",0).attr("width",E).attr("height",function(e,t){var n=m(e,t),i=g(e,t);return n>i?h(i)-h(n):h(n)-h(i)})}),t}var n,i,r,o,a,s={top:0,right:0,bottom:0,left:0},l=null,c=null,u=Math.floor(1e4*Math.random()),d=d3.scale.linear(),h=d3.scale.linear(),p=function(e){return e.x},f=function(e){return e.y},m=function(e){return e.open},g=function(e){return e.close},v=function(e){return e.high},b=function(e){return e.low},y=[],_=[],w=!1,A=!0,C=e.utils.defaultColor(),x=!1,S=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd","chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove");return t.highlightPoint=function(e,i){t.clearHighlights(),n.select(".nv-candlestickBar .nv-tick-0-"+e).classed("hover",i)},t.clearHighlights=function(){n.select(".nv-candlestickBar .nv-tick.hover").classed("hover",!1)},t.dispatch=S,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return l},set:function(e){l=e}},height:{get:function(){return c},set:function(e){c=e}},xScale:{get:function(){return d},set:function(e){d=e}},yScale:{get:function(){return h},set:function(e){h=e}},xDomain:{get:function(){return i},set:function(e){i=e}},yDomain:{get:function(){return r},set:function(e){r=e}},xRange:{get:function(){return o},set:function(e){o=e}},yRange:{get:function(){return a},set:function(e){a=e}},forceX:{get:function(){return y},set:function(e){y=e}},forceY:{get:function(){return _},set:function(e){_=e}},padData:{get:function(){return w},set:function(e){w=e}},clipEdge:{get:function(){return A},set:function(e){A=e}},id:{get:function(){return u},set:function(e){u=e}},interactive:{get:function(){return x},set:function(e){x=e}},x:{get:function(){return p},set:function(e){p=e}},y:{get:function(){return f},set:function(e){f=e}},open:{get:function(){return m()},set:function(e){m=e}},close:{get:function(){return g()},set:function(e){g=e}},high:{get:function(){return v},set:function(e){v=e}},low:{get:function(){return b},set:function(e){b=e}},margin:{get:function(){return s},set:function(e){s.top=void 0!=e.top?e.top:s.top,s.right=void 0!=e.right?e.right:s.right,s.bottom=void 0!=e.bottom?e.bottom:s.bottom,s.left=void 0!=e.left?e.left:s.left}},color:{get:function(){return C},set:function(t){C=e.utils.getColor(t)}}}),e.utils.initOptions(t),t},e.models.cumulativeLineChart=function(){"use strict";function t(d){return $.reset(),$.models(o),v&&$.models(a),b&&$.models(s),d.each(function(d){function E(e,n){d3.select(t.container).style("cursor","ew-resize")}function k(e,t){P.x=d3.event.x,P.i=Math.round(M.invert(P.x)),R()}function $(e,n){d3.select(t.container).style("cursor","auto"),x.index=P.i,D.stateChange(x)}function R(){te.data([P]);var e=t.duration();t.duration(0),t.update(),t.duration(e)}var L=d3.select(this);e.utils.initSVG(L),L.classed("nv-chart-"+C,!0);var G=this,B=e.utils.availableWidth(f,L,h),F=e.utils.availableHeight(m,L,h);if(t.update=function(){0===I?L.call(t):L.transition().duration(I).call(t)},t.container=this,x.setter(O(d),t.update).getter(N(d)).update(),x.disabled=d.map(function(e){return!!e.disabled}),!S){var H;S={};for(H in x)x[H]instanceof Array?S[H]=x[H].slice(0):S[H]=x[H]}var U=d3.behavior.drag().on("dragstart",E).on("drag",k).on("dragend",$);if(!(d&&d.length&&d.filter(function(e){return e.values.length}).length))return e.utils.noData(t,L),t;if(L.selectAll(".nv-noData").remove(),i=o.xScale(),r=o.yScale(),A)o.yDomain(null);else{var j=d.filter(function(e){return!e.disabled}).map(function(e,t){var n=d3.extent(e.values,o.y());return n[0]<-.95&&(n[0]=-.95),[(n[0]-n[1])/(1+n[1]),(n[1]-n[0])/(1+n[0])]}),W=[d3.min(j,function(e){return e[0]}),d3.max(j,function(e){return e[1]})];o.yDomain(W)}M.domain([0,d[0].values.length-1]).range([0,B]).clamp(!0);var d=n(P.i,d),z=w?"none":"all",q=L.selectAll("g.nv-wrap.nv-cumulativeLine").data([d]),V=q.enter().append("g").attr("class","nvd3 nv-wrap nv-cumulativeLine").append("g"),Y=q.select("g");if(V.append("g").attr("class","nv-interactive"),V.append("g").attr("class","nv-x nv-axis").style("pointer-events","none"),V.append("g").attr("class","nv-y nv-axis"),V.append("g").attr("class","nv-background"),V.append("g").attr("class","nv-linesWrap").style("pointer-events",z),V.append("g").attr("class","nv-avgLinesWrap").style("pointer-events","none"),V.append("g").attr("class","nv-legendWrap"),V.append("g").attr("class","nv-controlsWrap"),g&&(l.width(B),Y.select(".nv-legendWrap").datum(d).call(l),h.top!=l.height()&&(h.top=l.height(),F=e.utils.availableHeight(m,L,h)),Y.select(".nv-legendWrap").attr("transform","translate(0,"+-h.top+")")),_){var K=[{key:"Re-scale y-axis",disabled:!A}];c.width(140).color(["#444","#444","#444"]).rightAlign(!1).margin({top:5,right:0,bottom:5,left:20}),Y.select(".nv-controlsWrap").datum(K).attr("transform","translate(0,"+-h.top+")").call(c)}q.attr("transform","translate("+h.left+","+h.top+")"),y&&Y.select(".nv-y.nv-axis").attr("transform","translate("+B+",0)");var Q=d.filter(function(e){return e.tempDisabled});q.select(".tempDisabled").remove(),Q.length&&q.append("text").attr("class","tempDisabled").attr("x",B/2).attr("y","-.71em").style("text-anchor","end").text(Q.map(function(e){return e.key}).join(", ")+" values cannot be calculated for this time period."),w&&(u.width(B).height(F).margin({left:h.left,top:h.top}).svgContainer(L).xScale(i),q.select(".nv-interactive").call(u)),V.select(".nv-background").append("rect"),Y.select(".nv-background rect").attr("width",B).attr("height",F),o.y(function(e){return e.display.y}).width(B).height(F).color(d.map(function(e,t){return e.color||p(e,t)}).filter(function(e,t){return!d[t].disabled&&!d[t].tempDisabled}));var X=Y.select(".nv-linesWrap").datum(d.filter(function(e){return!e.disabled&&!e.tempDisabled}));X.call(o),d.forEach(function(e,t){e.seriesIndex=t});var Z=d.filter(function(e){return!e.disabled&&!!T(e)}),J=Y.select(".nv-avgLinesWrap").selectAll("line").data(Z,function(e){return e.key}),ee=function(e){var t=r(T(e));return t<0?0:t>F?F:t};J.enter().append("line").style("stroke-width",2).style("stroke-dasharray","10,10").style("stroke",function(e,t){return o.color()(e,e.seriesIndex)}).attr("x1",0).attr("x2",B).attr("y1",ee).attr("y2",ee),J.style("stroke-opacity",function(e){var t=r(T(e));return t<0||t>F?0:1}).attr("x1",0).attr("x2",B).attr("y1",ee).attr("y2",ee),J.exit().remove();var te=X.selectAll(".nv-indexLine").data([P]);te.enter().append("rect").attr("class","nv-indexLine").attr("width",3).attr("x",-2).attr("fill","red").attr("fill-opacity",.5).style("pointer-events","all").call(U),te.attr("transform",function(e){return"translate("+M(e.i)+",0)"}).attr("height",F),v&&(a.scale(i)._ticks(e.utils.calcTicksX(B/70,d)).tickSize(-F,0),Y.select(".nv-x.nv-axis").attr("transform","translate(0,"+r.range()[0]+")"),Y.select(".nv-x.nv-axis").call(a)),b&&(s.scale(r)._ticks(e.utils.calcTicksY(F/36,d)).tickSize(-B,0),Y.select(".nv-y.nv-axis").call(s)),Y.select(".nv-background rect").on("click",function(){P.x=d3.mouse(this)[0],P.i=Math.round(M.invert(P.x)),x.index=P.i,D.stateChange(x),R()}),o.dispatch.on("elementClick",function(e){P.i=e.pointIndex,P.x=M(P.i),x.index=P.i,D.stateChange(x),R()}),c.dispatch.on("legendClick",function(e,n){e.disabled=!e.disabled,A=!e.disabled,x.rescaleY=A,D.stateChange(x),t.update()}),l.dispatch.on("stateChange",function(e){for(var n in e)x[n]=e[n];D.stateChange(x),t.update()}),u.dispatch.on("elementMousemove",function(n){o.clearHighlights();var i,r,l,c=[];if(d.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(a,s){r=e.interactiveBisect(a.values,n.pointXValue,t.x()),o.highlightPoint(s,r,!0);var u=a.values[r];void 0!==u&&(void 0===i&&(i=u),void 0===l&&(l=t.xScale()(t.x()(u,r))),c.push({key:a.key,value:t.y()(u,r),color:p(a,a.seriesIndex)}))}),c.length>2){var f=t.yScale().invert(n.mouseY),m=.03*Math.abs(t.yScale().domain()[0]-t.yScale().domain()[1]),g=e.nearestValueIndex(c.map(function(e){return e.value}),f,m);null!==g&&(c[g].highlight=!0)}var v=a.tickFormat()(t.x()(i,r),r);u.tooltip.position({left:l+h.left,top:n.mouseY+h.top}).chartContainer(G.parentNode).valueFormatter(function(e,t){return s.tickFormat()(e)}).data({value:v,series:c})(),u.renderGuideLine(l)}),u.dispatch.on("elementMouseout",function(e){o.clearHighlights()}),D.on("changeState",function(e){void 0!==e.disabled&&(d.forEach(function(t,n){t.disabled=e.disabled[n]}),x.disabled=e.disabled),void 0!==e.index&&(P.i=e.index,P.x=M(P.i),x.index=e.index,te.data([P])),void 0!==e.rescaleY&&(A=e.rescaleY),t.update()})}),$.renderEnd("cumulativeLineChart immediate"),t}function n(e,t){return R||(R=o.y()),t.map(function(t,n){if(!t.values)return t;var i=t.values[e];if(null==i)return t;var r=R(i,e);return r<-.95&&!k?(t.tempDisabled=!0,t):(t.tempDisabled=!1,t.values=t.values.map(function(e,t){return e.display={y:(R(e,t)-r)/(1+r)},e}),t)})}var i,r,o=e.models.line(),a=e.models.axis(),s=e.models.axis(),l=e.models.legend(),c=e.models.legend(),u=e.interactiveGuideline(),d=e.models.tooltip(),h={top:30,right:30,bottom:50,left:60},p=e.utils.defaultColor(),f=null,m=null,g=!0,v=!0,b=!0,y=!1,_=!0,w=!1,A=!0,C=o.id(),x=e.utils.state(),S=null,E=null,T=function(e){return e.average},D=d3.dispatch("stateChange","changeState","renderEnd"),I=250,k=!1;x.index=0,x.rescaleY=A,a.orient("bottom").tickPadding(7),s.orient(y?"right":"left"),d.valueFormatter(function(e,t){return s.tickFormat()(e,t)}).headerFormatter(function(e,t){return a.tickFormat()(e,t)}),c.updateState(!1);var M=d3.scale.linear(),P={i:0,x:0},$=e.utils.renderWatch(D,I),N=function(e){return function(){return{active:e.map(function(e){return!e.disabled}),index:P.i,rescaleY:A}}},O=function(e){return function(t){void 0!==t.index&&(P.i=t.index),void 0!==t.rescaleY&&(A=t.rescaleY),void 0!==t.active&&e.forEach(function(e,n){e.disabled=!t.active[n]})}};o.dispatch.on("elementMouseover.tooltip",function(e){var n={x:t.x()(e.point),y:t.y()(e.point),color:e.point.color};e.point=n,d.data(e).position(e.pos).hidden(!1)}),o.dispatch.on("elementMouseout.tooltip",function(e){d.hidden(!0)});var R=null;return t.dispatch=D,t.lines=o,t.legend=l,t.controls=c,t.xAxis=a,t.yAxis=s,t.interactiveLayer=u,t.state=x,t.tooltip=d,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return f},set:function(e){f=e}},height:{get:function(){return m},set:function(e){m=e}},rescaleY:{get:function(){return A},set:function(e){A=e}},showControls:{get:function(){return _},set:function(e){_=e}},showLegend:{get:function(){return g},set:function(e){g=e}},average:{get:function(){return T},set:function(e){T=e}},defaultState:{get:function(){return S},set:function(e){S=e}},noData:{get:function(){return E},set:function(e){E=e}},showXAxis:{get:function(){return v},set:function(e){v=e}},showYAxis:{get:function(){return b},set:function(e){b=e}},noErrorCheck:{get:function(){return k},set:function(e){k=e}},tooltips:{get:function(){return d.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),d.enabled(!!t)}},tooltipContent:{get:function(){return d.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),d.contentGenerator(t)}},margin:{get:function(){return h},set:function(e){h.top=void 0!==e.top?e.top:h.top,h.right=void 0!==e.right?e.right:h.right,h.bottom=void 0!==e.bottom?e.bottom:h.bottom,h.left=void 0!==e.left?e.left:h.left}},color:{get:function(){return p},set:function(t){p=e.utils.getColor(t),l.color(p)}},useInteractiveGuideline:{get:function(){return w},set:function(e){w=e,!0===e&&(t.interactive(!1),t.useVoronoi(!1))}},rightAlignYAxis:{get:function(){return y},set:function(e){y=e,s.orient(e?"right":"left")}},duration:{get:function(){return I},set:function(e){I=e,o.duration(I),a.duration(I),s.duration(I),$.reset(I)}}}),e.utils.inheritOptions(t,o),e.utils.initOptions(t),t},e.models.discreteBar=function(){"use strict";function t(h){return x.reset(),h.each(function(t){var h=u-c.left-c.right,C=d-c.top-c.bottom;n=d3.select(this),e.utils.initSVG(n),t.forEach(function(e,t){e.values.forEach(function(e){e.series=t})});var S=i&&r?[]:t.map(function(e){return e.values.map(function(e,t){return{x:m(e,t),y:g(e,t),y0:e.y0}})});p.domain(i||d3.merge(S).map(function(e){return e.x})).rangeBands(o||[0,h],.1),f.domain(r||d3.extent(d3.merge(S).map(function(e){return e.y}).concat(v))),y?f.range(a||[C-(f.domain()[0]<0?12:0),f.domain()[1]>0?12:0]):f.range(a||[C,0]),s=s||p,l=l||f.copy().range([f(0),f(0)]);var E=n.selectAll("g.nv-wrap.nv-discretebar").data([t]),T=E.enter().append("g").attr("class","nvd3 nv-wrap nv-discretebar").append("g");E.select("g");T.append("g").attr("class","nv-groups"),E.attr("transform","translate("+c.left+","+c.top+")");var D=E.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e){return e.key});D.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),D.exit().watchTransition(x,"discreteBar: exit groups").style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),D.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}),D.watchTransition(x,"discreteBar: groups").style("stroke-opacity",1).style("fill-opacity",.75);var I=D.selectAll("g.nv-bar").data(function(e){return e.values});I.exit().remove();var k=I.enter().append("g").attr("transform",function(e,t,n){return"translate("+(p(m(e,t))+.05*p.rangeBand())+", "+f(0)+")"}).on("mouseover",function(e,t){d3.select(this).classed("hover",!0),w.elementMouseover({data:e,index:t,color:d3.select(this).style("fill")})}).on("mouseout",function(e,t){d3.select(this).classed("hover",!1),w.elementMouseout({data:e,index:t,color:d3.select(this).style("fill")})}).on("mousemove",function(e,t){w.elementMousemove({data:e,index:t,color:d3.select(this).style("fill")})}).on("click",function(e,t){w.elementClick({data:e,index:t,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}).on("dblclick",function(e,t){w.elementDblClick({data:e,index:t,color:d3.select(this).style("fill")}),d3.event.stopPropagation()});k.append("rect").attr("height",0).attr("width",.9*p.rangeBand()/t.length),y?(k.append("text").attr("text-anchor","middle"),I.select("text").text(function(e,t){return _(g(e,t))}).watchTransition(x,"discreteBar: bars text").attr("x",.9*p.rangeBand()/2).attr("y",function(e,t){return g(e,t)<0?f(g(e,t))-f(0)+12:-4})):I.selectAll("text").remove(),I.attr("class",function(e,t){return g(e,t)<0?"nv-bar negative":"nv-bar positive"}).style("fill",function(e,t){return e.color||b(e,t)}).style("stroke",function(e,t){return e.color||b(e,t)}).select("rect").attr("class",A).watchTransition(x,"discreteBar: bars rect").attr("width",.9*p.rangeBand()/t.length),I.watchTransition(x,"discreteBar: bars").attr("transform",function(e,t){return"translate("+(p(m(e,t))+.05*p.rangeBand())+", "+(g(e,t)<0?f(0):f(0)-f(g(e,t))<1?f(0)-1:f(g(e,t)))+")"}).select("rect").attr("height",function(e,t){return Math.max(Math.abs(f(g(e,t))-f(r&&r[0]||0))||1)}),s=p.copy(),l=f.copy()}),x.renderEnd("discreteBar immediate"),t}var n,i,r,o,a,s,l,c={top:0,right:0,bottom:0,left:0},u=960,d=500,h=Math.floor(1e4*Math.random()),p=d3.scale.ordinal(),f=d3.scale.linear(),m=function(e){return e.x},g=function(e){return e.y},v=[0],b=e.utils.defaultColor(),y=!1,_=d3.format(",.2f"),w=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),A="discreteBar",C=250,x=e.utils.renderWatch(w,C);return t.dispatch=w,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return u},set:function(e){u=e}},height:{get:function(){return d},set:function(e){d=e}},forceY:{get:function(){return v},set:function(e){v=e}},showValues:{get:function(){return y},set:function(e){y=e}},x:{get:function(){return m},set:function(e){m=e}},y:{get:function(){return g},set:function(e){g=e}},xScale:{get:function(){return p},set:function(e){p=e}},yScale:{get:function(){return f},set:function(e){f=e}},xDomain:{get:function(){return i},set:function(e){i=e}},yDomain:{get:function(){return r},set:function(e){r=e}},xRange:{get:function(){return o},set:function(e){o=e}},yRange:{get:function(){return a},set:function(e){a=e}},valueFormat:{get:function(){return _},set:function(e){_=e}},id:{get:function(){return h},set:function(e){h=e}},rectClass:{get:function(){return A},set:function(e){A=e}},margin:{get:function(){return c},set:function(e){c.top=void 0!==e.top?e.top:c.top,c.right=void 0!==e.right?e.right:c.right,c.bottom=void 0!==e.bottom?e.bottom:c.bottom,c.left=void 0!==e.left?e.left:c.left}},color:{get:function(){return b},set:function(t){b=e.utils.getColor(t)}},duration:{get:function(){return C},set:function(e){C=e,x.reset(C)}}}),e.utils.initOptions(t),t},e.models.discreteBarChart=function(){"use strict";function t(s){return y.reset(),y.models(r),h&&y.models(o),p&&y.models(a),s.each(function(s){var d=d3.select(this);e.utils.initSVG(d);var g=e.utils.availableWidth(c,d,l),y=e.utils.availableHeight(u,d,l);if(t.update=function(){v.beforeUpdate(),d.transition().duration(b).call(t)},t.container=this,!(s&&s.length&&s.filter(function(e){return e.values.length}).length))return e.utils.noData(t,d),t;d.selectAll(".nv-noData").remove(),n=r.xScale(),i=r.yScale().clamp(!0);var _=d.selectAll("g.nv-wrap.nv-discreteBarWithAxes").data([s]),w=_.enter().append("g").attr("class","nvd3 nv-wrap nv-discreteBarWithAxes").append("g"),A=w.append("defs"),C=_.select("g");if(w.append("g").attr("class","nv-x nv-axis"),w.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),w.append("g").attr("class","nv-barsWrap"),C.attr("transform","translate("+l.left+","+l.top+")"),f&&C.select(".nv-y.nv-axis").attr("transform","translate("+g+",0)"),r.width(g).height(y),C.select(".nv-barsWrap").datum(s.filter(function(e){return!e.disabled})).transition().call(r),A.append("clipPath").attr("id","nv-x-label-clip-"+r.id()).append("rect"),C.select("#nv-x-label-clip-"+r.id()+" rect").attr("width",n.rangeBand()*(m?2:1)).attr("height",16).attr("x",-n.rangeBand()/(m?1:2)),h){o.scale(n)._ticks(e.utils.calcTicksX(g/100,s)).tickSize(-y,0),C.select(".nv-x.nv-axis").attr("transform","translate(0,"+(i.range()[0]+(r.showValues()&&i.domain()[0]<0?16:0))+")"),C.select(".nv-x.nv-axis").call(o);var x=C.select(".nv-x.nv-axis").selectAll("g");m&&x.selectAll("text").attr("transform",function(e,t,n){return"translate(0,"+(n%2==0?"5":"17")+")"})}p&&(a.scale(i)._ticks(e.utils.calcTicksY(y/36,s)).tickSize(-g,0),C.select(".nv-y.nv-axis").call(a)),C.select(".nv-zeroLine line").attr("x1",0).attr("x2",g).attr("y1",i(0)).attr("y2",i(0))}),y.renderEnd("discreteBar chart immediate"),t}var n,i,r=e.models.discreteBar(),o=e.models.axis(),a=e.models.axis(),s=e.models.tooltip(),l={top:15,right:10,bottom:50,left:60},c=null,u=null,d=e.utils.getColor(),h=!0,p=!0,f=!1,m=!1,g=null,v=d3.dispatch("beforeUpdate","renderEnd"),b=250;o.orient("bottom").showMaxMin(!1).tickFormat(function(e){return e}),a.orient(f?"right":"left").tickFormat(d3.format(",.1f")),s.duration(0).headerEnabled(!1).valueFormatter(function(e,t){return a.tickFormat()(e,t)}).keyFormatter(function(e,t){return o.tickFormat()(e,t)});var y=e.utils.renderWatch(v,b);return r.dispatch.on("elementMouseover.tooltip",function(e){e.series={key:t.x()(e.data),value:t.y()(e.data),color:e.color},s.data(e).hidden(!1)}),r.dispatch.on("elementMouseout.tooltip",function(e){s.hidden(!0)}),r.dispatch.on("elementMousemove.tooltip",function(e){s.position({top:d3.event.pageY,left:d3.event.pageX})()}),t.dispatch=v,t.discretebar=r,t.xAxis=o,t.yAxis=a,t.tooltip=s,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return c},set:function(e){c=e}},height:{get:function(){return u},set:function(e){u=e}},staggerLabels:{get:function(){return m},set:function(e){m=e}},showXAxis:{get:function(){return h},set:function(e){h=e}},showYAxis:{get:function(){return p},set:function(e){p=e}},noData:{get:function(){return g},set:function(e){g=e}},tooltips:{get:function(){return s.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),s.enabled(!!t)}},tooltipContent:{get:function(){return s.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),s.contentGenerator(t)}},margin:{get:function(){return l},set:function(e){l.top=void 0!==e.top?e.top:l.top,l.right=void 0!==e.right?e.right:l.right,l.bottom=void 0!==e.bottom?e.bottom:l.bottom,l.left=void 0!==e.left?e.left:l.left}},duration:{get:function(){return b},set:function(e){b=e,y.reset(b),r.duration(b),o.duration(b),a.duration(b)}},color:{get:function(){return d},set:function(t){d=e.utils.getColor(t),r.color(d)}},rightAlignYAxis:{get:function(){return f},set:function(e){f=e,a.orient(e?"right":"left")}}}),e.utils.inheritOptions(t,r),e.utils.initOptions(t),t},e.models.distribution=function(){"use strict";function t(r){return h.reset(),r.each(function(t){"x"===a?(i.left,i.right):(i.top,i.bottom);var r="x"==a?"y":"x",u=d3.select(this);e.utils.initSVG(u),n=n||c;var d=u.selectAll("g.nv-distribution").data([t]),p=(d.enter().append("g").attr("class","nvd3 nv-distribution").append("g"),d.select("g"));d.attr("transform","translate("+i.left+","+i.top+")");var f=p.selectAll("g.nv-dist").data(function(e){return e},function(e){return e.key});f.enter().append("g"),f.attr("class",function(e,t){return"nv-dist nv-series-"+t}).style("stroke",function(e,t){return l(e,t)});var m=f.selectAll("line.nv-dist"+a).data(function(e){return e.values});m.enter().append("line").attr(a+"1",function(e,t){return n(s(e,t))}).attr(a+"2",function(e,t){return n(s(e,t))}),h.transition(f.exit().selectAll("line.nv-dist"+a),"dist exit").attr(a+"1",function(e,t){return c(s(e,t))}).attr(a+"2",function(e,t){return c(s(e,t))}).style("stroke-opacity",0).remove(),m.attr("class",function(e,t){return"nv-dist"+a+" nv-dist"+a+"-"+t}).attr(r+"1",0).attr(r+"2",o),h.transition(m,"dist").attr(a+"1",function(e,t){return c(s(e,t))}).attr(a+"2",function(e,t){return c(s(e,t))}),n=c.copy()}),h.renderEnd("distribution immediate"),t}var n,i={top:0,right:0,bottom:0,left:0},r=400,o=8,a="x",s=function(e){return e[a]},l=e.utils.defaultColor(),c=d3.scale.linear(),u=250,d=d3.dispatch("renderEnd"),h=e.utils.renderWatch(d,u);return t.options=e.utils.optionsFunc.bind(t),t.dispatch=d,t.margin=function(e){return arguments.length?(i.top=void 0!==e.top?e.top:i.top,i.right=void 0!==e.right?e.right:i.right,i.bottom=void 0!==e.bottom?e.bottom:i.bottom,i.left=void 0!==e.left?e.left:i.left,t):i},t.width=function(e){return arguments.length?(r=e,t):r},t.axis=function(e){return arguments.length?(a=e,t):a},t.size=function(e){return arguments.length?(o=e,t):o},t.getData=function(e){return arguments.length?(s=d3.functor(e),t):s},t.scale=function(e){return arguments.length?(c=e,t):c},t.color=function(n){return arguments.length?(l=e.utils.getColor(n),t):l},t.duration=function(e){return arguments.length?(u=e,h.reset(u),t):u},t},e.models.furiousLegend=function(){"use strict";function t(m){function g(e,t){return"furious"!=f?"#000":h?e.disengaged?a(e,t):"#fff":h?void 0:e.disabled?a(e,t):"#fff"}function v(e,t){return h&&"furious"==f?e.disengaged?"#fff":a(e,t):e.disabled?"#fff":a(e,t)}return m.each(function(t){var m=i-n.left-n.right,b=d3.select(this);e.utils.initSVG(b);var y=b.selectAll("g.nv-legend").data([t]),_=(y.enter().append("g").attr("class","nvd3 nv-legend").append("g"),y.select("g"));y.attr("transform","translate("+n.left+","+n.top+")");var w,A=_.selectAll(".nv-series").data(function(e){return"furious"!=f?e:e.filter(function(e){return!!h||!e.disengaged})}),C=A.enter().append("g").attr("class","nv-series");"classic"==f?(C.append("circle").style("stroke-width",2).attr("class","nv-legend-symbol").attr("r",5),w=A.select("circle")):"furious"==f&&(C.append("rect").style("stroke-width",2).attr("class","nv-legend-symbol").attr("rx",3).attr("ry",3),w=A.select("rect"),C.append("g").attr("class","nv-check-box").property("innerHTML",'<path d="M0.5,5 L22.5,5 L22.5,26.5 L0.5,26.5 L0.5,5 Z" class="nv-box"></path><path d="M5.5,12.8618467 L11.9185089,19.2803556 L31,0.198864511" class="nv-check"></path>').attr("transform","translate(-10,-8)scale(0.5)"),A.select(".nv-check-box").each(function(e,t){d3.select(this).selectAll("path").attr("stroke",g(e,t))})),C.append("text").attr("text-anchor","start").attr("class","nv-legend-text").attr("dy",".32em").attr("dx","8");var x=A.select("text.nv-legend-text");A.on("mouseover",function(e,t){p.legendMouseover(e,t)}).on("mouseout",function(e,t){p.legendMouseout(e,t)}).on("click",function(e,t){p.legendClick(e,t);var n=A.data();u&&("classic"==f?d?(n.forEach(function(e){e.disabled=!0}),e.disabled=!1):(e.disabled=!e.disabled,n.every(function(e){return e.disabled})&&n.forEach(function(e){e.disabled=!1})):"furious"==f&&(h?(e.disengaged=!e.disengaged,e.userDisabled=void 0==e.userDisabled?!!e.disabled:e.userDisabled,e.disabled=e.disengaged||e.userDisabled):h||(e.disabled=!e.disabled,e.userDisabled=e.disabled,n.filter(function(e){return!e.disengaged}).every(function(e){return e.userDisabled})&&n.forEach(function(e){e.disabled=e.userDisabled=!1}))),p.stateChange({disabled:n.map(function(e){return!!e.disabled}),disengaged:n.map(function(e){return!!e.disengaged})}))}).on("dblclick",function(e,t){if(("furious"!=f||!h)&&(p.legendDblclick(e,t),u)){var n=A.data();n.forEach(function(e){e.disabled=!0,"furious"==f&&(e.userDisabled=e.disabled)}),e.disabled=!1,"furious"==f&&(e.userDisabled=e.disabled),p.stateChange({disabled:n.map(function(e){return!!e.disabled})})}}),A.classed("nv-disabled",function(e){return e.userDisabled}),A.exit().remove(),x.attr("fill",g).text(o);var S;switch(f){case"furious":S=23;break;case"classic":S=20}if(s){var E=[];A.each(function(t,n){var i,r=d3.select(this).select("text");try{if((i=r.node().getComputedTextLength())<=0)throw Error()}catch(t){i=e.utils.calcApproxTextWidth(r)}E.push(i+l)});for(var T=0,D=0,I=[];D<m&&T<E.length;)I[T]=E[T],D+=E[T++];for(0===T&&(T=1);D>m&&T>1;){I=[],T--;for(var k=0;k<E.length;k++)E[k]>(I[k%T]||0)&&(I[k%T]=E[k]);D=I.reduce(function(e,t,n,i){return e+t})}for(var M=[],P=0,$=0;P<T;P++)M[P]=$,$+=I[P];A.attr("transform",function(e,t){return"translate("+M[t%T]+","+(5+Math.floor(t/T)*S)+")"}),c?_.attr("transform","translate("+(i-n.right-D)+","+n.top+")"):_.attr("transform","translate(0,"+n.top+")"),r=n.top+n.bottom+Math.ceil(E.length/T)*S}else{var N,O=5,R=5,L=0;A.attr("transform",function(e,t){var r=d3.select(this).select("text").node().getComputedTextLength()+l;return N=R,i<n.left+n.right+N+r&&(R=N=5,O+=S),(R+=r)>L&&(L=R),"translate("+N+","+O+")"}),_.attr("transform","translate("+(i-n.right-L)+","+n.top+")"),r=n.top+n.bottom+O+15}"furious"==f&&w.attr("width",function(e,t){return x[0][t].getComputedTextLength()+27}).attr("height",18).attr("y",-9).attr("x",-15),w.style("fill",v).style("stroke",function(e,t){return e.color||a(e,t)})}),t}var n={top:5,right:0,bottom:5,left:0},i=400,r=20,o=function(e){return e.key},a=e.utils.getColor(),s=!0,l=28,c=!0,u=!0,d=!1,h=!1,p=d3.dispatch("legendClick","legendDblclick","legendMouseover","legendMouseout","stateChange"),f="classic";return t.dispatch=p,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return i},set:function(e){i=e}},height:{get:function(){return r},set:function(e){r=e}},key:{get:function(){return o},set:function(e){o=e}},align:{get:function(){return s},set:function(e){s=e}},rightAlign:{get:function(){return c},set:function(e){c=e}},padding:{get:function(){return l},set:function(e){l=e}},updateState:{get:function(){return u},set:function(e){u=e}},radioButtonMode:{get:function(){return d},set:function(e){d=e}},expanded:{get:function(){return h},set:function(e){h=e}},vers:{get:function(){return f},set:function(e){f=e}},margin:{get:function(){return n},set:function(e){n.top=void 0!==e.top?e.top:n.top,n.right=void 0!==e.right?e.right:n.right,n.bottom=void 0!==e.bottom?e.bottom:n.bottom,n.left=void 0!==e.left?e.left:n.left}},color:{get:function(){return a},set:function(t){a=e.utils.getColor(t)}}}),e.utils.initOptions(t),t},e.models.historicalBar=function(){"use strict";function t(C){return C.each(function(t){A.reset(),u=d3.select(this);var C=e.utils.availableWidth(s,u,a),x=e.utils.availableHeight(l,u,a);e.utils.initSVG(u),d.domain(n||d3.extent(t[0].values.map(p).concat(m))),v?d.range(r||[.5*C/t[0].values.length,C*(t[0].values.length-.5)/t[0].values.length]):d.range(r||[0,C]),h.domain(i||d3.extent(t[0].values.map(f).concat(g))).range(o||[x,0]),d.domain()[0]===d.domain()[1]&&(d.domain()[0]?d.domain([d.domain()[0]-.01*d.domain()[0],d.domain()[1]+.01*d.domain()[1]]):d.domain([-1,1])),h.domain()[0]===h.domain()[1]&&(h.domain()[0]?h.domain([h.domain()[0]+.01*h.domain()[0],h.domain()[1]-.01*h.domain()[1]]):h.domain([-1,1]));var S=u.selectAll("g.nv-wrap.nv-historicalBar-"+c).data([t[0].values]),E=S.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBar-"+c),T=E.append("defs"),D=E.append("g"),I=S.select("g");D.append("g").attr("class","nv-bars"),S.attr("transform","translate("+a.left+","+a.top+")"),u.on("click",function(e,t){_.chartClick({data:e,index:t,pos:d3.event,id:c})}),T.append("clipPath").attr("id","nv-chart-clip-path-"+c).append("rect"),S.select("#nv-chart-clip-path-"+c+" rect").attr("width",C).attr("height",x),I.attr("clip-path",b?"url(#nv-chart-clip-path-"+c+")":"");var k=S.select(".nv-bars").selectAll(".nv-bar").data(function(e){return e},function(e,t){return p(e,t)});k.exit().remove(),k.enter().append("rect").attr("x",0).attr("y",function(t,n){return e.utils.NaNtoZero(h(Math.max(0,f(t,n))))}).attr("height",function(t,n){return e.utils.NaNtoZero(Math.abs(h(f(t,n))-h(0)))}).attr("transform",function(e,n){return"translate("+(d(p(e,n))-C/t[0].values.length*.45)+",0)"}).on("mouseover",function(e,t){w&&(d3.select(this).classed("hover",!0),_.elementMouseover({data:e,index:t,color:d3.select(this).style("fill")}))}).on("mouseout",function(e,t){w&&(d3.select(this).classed("hover",!1),_.elementMouseout({data:e,index:t,color:d3.select(this).style("fill")}))}).on("mousemove",function(e,t){w&&_.elementMousemove({data:e,index:t,color:d3.select(this).style("fill")})}).on("click",function(e,t){w&&(_.elementClick({data:e,index:t,color:d3.select(this).style("fill")}),d3.event.stopPropagation())}).on("dblclick",function(e,t){w&&(_.elementDblClick({data:e,index:t,color:d3.select(this).style("fill")}),d3.event.stopPropagation())}),k.attr("fill",function(e,t){return y(e,t)}).attr("class",function(e,t,n){return(f(e,t)<0?"nv-bar negative":"nv-bar positive")+" nv-bar-"+n+"-"+t}).watchTransition(A,"bars").attr("transform",function(e,n){return"translate("+(d(p(e,n))-C/t[0].values.length*.45)+",0)"}).attr("width",C/t[0].values.length*.9),k.watchTransition(A,"bars").attr("y",function(t,n){var i=f(t,n)<0?h(0):h(0)-h(f(t,n))<1?h(0)-1:h(f(t,n));return e.utils.NaNtoZero(i)}).attr("height",function(t,n){return e.utils.NaNtoZero(Math.max(Math.abs(h(f(t,n))-h(0)),1))})}),A.renderEnd("historicalBar immediate"),t}var n,i,r,o,a={top:0,right:0,bottom:0,left:0},s=null,l=null,c=Math.floor(1e4*Math.random()),u=null,d=d3.scale.linear(),h=d3.scale.linear(),p=function(e){return e.x},f=function(e){return e.y},m=[],g=[0],v=!1,b=!0,y=e.utils.defaultColor(),_=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),w=!0,A=e.utils.renderWatch(_,0);return t.highlightPoint=function(e,t){u.select(".nv-bars .nv-bar-0-"+e).classed("hover",t)},t.clearHighlights=function(){u.select(".nv-bars .nv-bar.hover").classed("hover",!1)},t.dispatch=_,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return s},set:function(e){s=e}},height:{get:function(){return l},set:function(e){l=e}},forceX:{get:function(){return m},set:function(e){m=e}},forceY:{get:function(){return g},set:function(e){g=e}},padData:{get:function(){return v},set:function(e){v=e}},x:{get:function(){return p},set:function(e){p=e}},y:{get:function(){return f},set:function(e){f=e}},xScale:{get:function(){return d},set:function(e){d=e}},yScale:{get:function(){return h},set:function(e){h=e}},xDomain:{get:function(){return n},set:function(e){n=e}},yDomain:{get:function(){return i},set:function(e){i=e}},xRange:{get:function(){return r},set:function(e){r=e}},yRange:{get:function(){return o},set:function(e){o=e}},clipEdge:{get:function(){return b},set:function(e){b=e}},id:{get:function(){return c},set:function(e){c=e}},interactive:{get:function(){return w},set:function(e){w=e}},margin:{get:function(){return a},set:function(e){a.top=void 0!==e.top?e.top:a.top,a.right=void 0!==e.right?e.right:a.right,a.bottom=void 0!==e.bottom?e.bottom:a.bottom,a.left=void 0!==e.left?e.left:a.left}},color:{get:function(){return y},set:function(t){y=e.utils.getColor(t)}}}),e.utils.initOptions(t),t},e.models.historicalBarChart=function(t){"use strict";function n(t){return t.each(function(u){S.reset(),S.models(o),g&&S.models(a),v&&S.models(s);var A=d3.select(this),E=this;e.utils.initSVG(A);var T=e.utils.availableWidth(p,A,d),D=e.utils.availableHeight(f,A,d);if(n.update=function(){A.transition().duration(x).call(n)},n.container=this,_.disabled=u.map(function(e){return!!e.disabled}),!w){var I;w={};for(I in _)_[I]instanceof Array?w[I]=_[I].slice(0):w[I]=_[I]}if(!(u&&u.length&&u.filter(function(e){return e.values.length}).length))return e.utils.noData(n,A),n;A.selectAll(".nv-noData").remove(),i=o.xScale(),r=o.yScale();var k=A.selectAll("g.nv-wrap.nv-historicalBarChart").data([u]),M=k.enter().append("g").attr("class","nvd3 nv-wrap nv-historicalBarChart").append("g"),P=k.select("g");M.append("g").attr("class","nv-x nv-axis"),M.append("g").attr("class","nv-y nv-axis"),M.append("g").attr("class","nv-barsWrap"),M.append("g").attr("class","nv-legendWrap"),M.append("g").attr("class","nv-interactive"),m&&(l.width(T),P.select(".nv-legendWrap").datum(u).call(l),d.top!=l.height()&&(d.top=l.height(),D=e.utils.availableHeight(f,A,d)),k.select(".nv-legendWrap").attr("transform","translate(0,"+-d.top+")")),k.attr("transform","translate("+d.left+","+d.top+")"),b&&P.select(".nv-y.nv-axis").attr("transform","translate("+T+",0)"),y&&(c.width(T).height(D).margin({left:d.left,top:d.top}).svgContainer(A).xScale(i),k.select(".nv-interactive").call(c)),o.width(T).height(D).color(u.map(function(e,t){return e.color||h(e,t)}).filter(function(e,t){return!u[t].disabled})),P.select(".nv-barsWrap").datum(u.filter(function(e){return!e.disabled})).transition().call(o),g&&(a.scale(i)._ticks(e.utils.calcTicksX(T/100,u)).tickSize(-D,0),P.select(".nv-x.nv-axis").attr("transform","translate(0,"+r.range()[0]+")"),P.select(".nv-x.nv-axis").transition().call(a)),v&&(s.scale(r)._ticks(e.utils.calcTicksY(D/36,u)).tickSize(-T,0),P.select(".nv-y.nv-axis").transition().call(s)),c.dispatch.on("elementMousemove",function(t){o.clearHighlights();var i,r,l,p=[];u.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(a,s){r=e.interactiveBisect(a.values,t.pointXValue,n.x()),o.highlightPoint(r,!0);var c=a.values[r];void 0!==c&&(void 0===i&&(i=c),void 0===l&&(l=n.xScale()(n.x()(c,r))),p.push({key:a.key,value:n.y()(c,r),color:h(a,a.seriesIndex),data:a.values[r]}))});var f=a.tickFormat()(n.x()(i,r));c.tooltip.position({left:l+d.left,top:t.mouseY+d.top}).chartContainer(E.parentNode).valueFormatter(function(e,t){return s.tickFormat()(e)}).data({value:f,index:r,series:p})(),c.renderGuideLine(l)}),c.dispatch.on("elementMouseout",function(e){C.tooltipHide(),o.clearHighlights()}),l.dispatch.on("legendClick",function(e,i){e.disabled=!e.disabled,u.filter(function(e){return!e.disabled}).length||u.map(function(e){return e.disabled=!1,k.selectAll(".nv-series").classed("disabled",!1),e}),_.disabled=u.map(function(e){return!!e.disabled}),C.stateChange(_),t.transition().call(n)}),l.dispatch.on("legendDblclick",function(e){u.forEach(function(e){e.disabled=!0}),e.disabled=!1,_.disabled=u.map(function(e){return!!e.disabled}),C.stateChange(_),n.update()}),C.on("changeState",function(e){void 0!==e.disabled&&(u.forEach(function(t,n){t.disabled=e.disabled[n]}),_.disabled=e.disabled),n.update()})}),S.renderEnd("historicalBarChart immediate"),n}var i,r,o=t||e.models.historicalBar(),a=e.models.axis(),s=e.models.axis(),l=e.models.legend(),c=e.interactiveGuideline(),u=e.models.tooltip(),d={top:30,right:90,bottom:50,left:90},h=e.utils.defaultColor(),p=null,f=null,m=!1,g=!0,v=!0,b=!1,y=!1,_={},w=null,A=null,C=d3.dispatch("tooltipHide","stateChange","changeState","renderEnd"),x=250;a.orient("bottom").tickPadding(7),s.orient(b?"right":"left"),u.duration(0).headerEnabled(!1).valueFormatter(function(e,t){return s.tickFormat()(e,t)}).headerFormatter(function(e,t){return a.tickFormat()(e,t)});var S=e.utils.renderWatch(C,0);return o.dispatch.on("elementMouseover.tooltip",function(e){e.series={key:n.x()(e.data),value:n.y()(e.data),color:e.color},u.data(e).hidden(!1)}),o.dispatch.on("elementMouseout.tooltip",function(e){u.hidden(!0)}),o.dispatch.on("elementMousemove.tooltip",function(e){u.position({top:d3.event.pageY,left:d3.event.pageX})()}),n.dispatch=C,n.bars=o,n.legend=l,n.xAxis=a,n.yAxis=s,n.interactiveLayer=c,n.tooltip=u,n.options=e.utils.optionsFunc.bind(n),n._options=Object.create({},{width:{get:function(){return p},set:function(e){p=e}},height:{get:function(){return f},set:function(e){f=e}},showLegend:{get:function(){return m},set:function(e){m=e}},showXAxis:{get:function(){return g},set:function(e){g=e}},showYAxis:{get:function(){return v},set:function(e){v=e}},defaultState:{get:function(){return w},set:function(e){w=e}},noData:{get:function(){return A},set:function(e){A=e}},tooltips:{get:function(){return u.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),u.enabled(!!t)}},tooltipContent:{get:function(){return u.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),u.contentGenerator(t)}},margin:{get:function(){return d},set:function(e){d.top=void 0!==e.top?e.top:d.top,d.right=void 0!==e.right?e.right:d.right,d.bottom=void 0!==e.bottom?e.bottom:d.bottom,d.left=void 0!==e.left?e.left:d.left}},color:{get:function(){return h},set:function(t){h=e.utils.getColor(t),l.color(h),o.color(h)}},duration:{get:function(){return x},set:function(e){x=e,S.reset(x),s.duration(x),a.duration(x)}},rightAlignYAxis:{get:function(){return b},set:function(e){b=e,s.orient(e?"right":"left")}},useInteractiveGuideline:{get:function(){return y},set:function(e){y=e,!0===e&&n.interactive(!1)}}}),e.utils.inheritOptions(n,o),e.utils.initOptions(n),n},e.models.ohlcBarChart=function(){var t=e.models.historicalBarChart(e.models.ohlcBar());return t.useInteractiveGuideline(!0),t.interactiveLayer.tooltip.contentGenerator(function(e){var n=e.series[0].data;return'<h3 style="color: #'+(n.open<n.close?"2ca02c":"d62728")+'">'+e.value+"</h3><table><tr><td>open:</td><td>"+t.yAxis.tickFormat()(n.open)+"</td></tr><tr><td>close:</td><td>"+t.yAxis.tickFormat()(n.close)+"</td></tr><tr><td>high</td><td>"+t.yAxis.tickFormat()(n.high)+"</td></tr><tr><td>low:</td><td>"+t.yAxis.tickFormat()(n.low)+"</td></tr></table>"}),t},e.models.candlestickBarChart=function(){var t=e.models.historicalBarChart(e.models.candlestickBar());return t.useInteractiveGuideline(!0),t.interactiveLayer.tooltip.contentGenerator(function(e){var n=e.series[0].data;return'<h3 style="color: #'+(n.open<n.close?"2ca02c":"d62728")+'">'+e.value+"</h3><table><tr><td>open:</td><td>"+t.yAxis.tickFormat()(n.open)+"</td></tr><tr><td>close:</td><td>"+t.yAxis.tickFormat()(n.close)+"</td></tr><tr><td>high</td><td>"+t.yAxis.tickFormat()(n.high)+"</td></tr><tr><td>low:</td><td>"+t.yAxis.tickFormat()(n.low)+"</td></tr></table>"}),t},e.models.legend=function(){"use strict";function t(m){function g(e,t){return"furious"!=f?"#000":h?e.disengaged?"#000":"#fff":h?void 0:(e.color||(e.color=a(e,t)),e.disabled?e.color:"#fff")}function v(e,t){return h&&"furious"==f&&e.disengaged?"#eee":e.color||a(e,t)}function b(e,t){return h&&"furious"==f?1:e.disabled?0:1}return m.each(function(t){var a=i-n.left-n.right,m=d3.select(this);e.utils.initSVG(m);var y=m.selectAll("g.nv-legend").data([t]),_=y.enter().append("g").attr("class","nvd3 nv-legend").append("g"),w=y.select("g");y.attr("transform","translate("+n.left+","+n.top+")");var A,C,x=w.selectAll(".nv-series").data(function(e){return"furious"!=f?e:e.filter(function(e){return!!h||!e.disengaged})}),S=x.enter().append("g").attr("class","nv-series");switch(f){case"furious":C=23;break;case"classic":C=20}"classic"==f?(S.append("circle").style("stroke-width",2).attr("class","nv-legend-symbol").attr("r",5),A=x.select("circle")):"furious"==f&&(S.append("rect").style("stroke-width",2).attr("class","nv-legend-symbol").attr("rx",3).attr("ry",3),A=x.select(".nv-legend-symbol"),S.append("g").attr("class","nv-check-box").property("innerHTML",'<path d="M0.5,5 L22.5,5 L22.5,26.5 L0.5,26.5 L0.5,5 Z" class="nv-box"></path><path d="M5.5,12.8618467 L11.9185089,19.2803556 L31,0.198864511" class="nv-check"></path>').attr("transform","translate(-10,-8)scale(0.5)"),x.select(".nv-check-box").each(function(e,t){d3.select(this).selectAll("path").attr("stroke",g(e,t))})),S.append("text").attr("text-anchor","start").attr("class","nv-legend-text").attr("dy",".32em").attr("dx","8");var E=x.select("text.nv-legend-text");x.on("mouseover",function(e,t){p.legendMouseover(e,t)}).on("mouseout",function(e,t){p.legendMouseout(e,t)}).on("click",function(e,t){p.legendClick(e,t);var n=x.data();u&&("classic"==f?d?(n.forEach(function(e){e.disabled=!0}),e.disabled=!1):(e.disabled=!e.disabled,n.every(function(e){return e.disabled})&&n.forEach(function(e){e.disabled=!1})):"furious"==f&&(h?(e.disengaged=!e.disengaged,e.userDisabled=void 0==e.userDisabled?!!e.disabled:e.userDisabled,e.disabled=e.disengaged||e.userDisabled):h||(e.disabled=!e.disabled,e.userDisabled=e.disabled,n.filter(function(e){return!e.disengaged}).every(function(e){return e.userDisabled})&&n.forEach(function(e){e.disabled=e.userDisabled=!1}))),p.stateChange({disabled:n.map(function(e){return!!e.disabled}),disengaged:n.map(function(e){return!!e.disengaged})}))}).on("dblclick",function(e,t){if(("furious"!=f||!h)&&(p.legendDblclick(e,t),u)){var n=x.data();n.forEach(function(e){e.disabled=!0,"furious"==f&&(e.userDisabled=e.disabled)}),e.disabled=!1,"furious"==f&&(e.userDisabled=e.disabled),p.stateChange({disabled:n.map(function(e){return!!e.disabled})})}}),x.classed("nv-disabled",function(e){return e.userDisabled}),x.exit().remove(),E.attr("fill",g).text(o);var T=0;if(s){var D=[];x.each(function(t,n){var i,r=d3.select(this).select("text");try{if((i=r.node().getComputedTextLength())<=0)throw Error()}catch(t){i=e.utils.calcApproxTextWidth(r)}D.push(i+l)});var I=0,k=[];for(T=0;T<a&&I<D.length;)k[I]=D[I],T+=D[I++];for(0===I&&(I=1);T>a&&I>1;){k=[],I--;for(var M=0;M<D.length;M++)D[M]>(k[M%I]||0)&&(k[M%I]=D[M]);T=k.reduce(function(e,t,n,i){return e+t})}for(var P=[],$=0,N=0;$<I;$++)P[$]=N,N+=k[$];x.attr("transform",function(e,t){return"translate("+P[t%I]+","+(5+Math.floor(t/I)*C)+")"}),c?w.attr("transform","translate("+(i-n.right-T)+","+n.top+")"):w.attr("transform","translate(0,"+n.top+")"),r=n.top+n.bottom+Math.ceil(D.length/I)*C}else{var O,R=5,L=5,G=0;x.attr("transform",function(e,t){var r=d3.select(this).select("text").node().getComputedTextLength()+l;return O=L,i<n.left+n.right+O+r&&(L=O=5,R+=C),(L+=r)>G&&(G=L),T<O+G&&(T=O+G),"translate("+O+","+R+")"}),w.attr("transform","translate("+(i-n.right-G)+","+n.top+")"),r=n.top+n.bottom+R+15}"furious"==f&&(A.attr("width",function(e,t){return E[0][t].getComputedTextLength()+27}).attr("height",18).attr("y",-9).attr("x",-15),_.insert("rect",":first-child").attr("class","nv-legend-bg").attr("fill","#eee").attr("opacity",0),w.select(".nv-legend-bg").transition().duration(300).attr("x",-C).attr("width",T+C-12).attr("height",r+10).attr("y",-n.top-10).attr("opacity",h?1:0)),A.style("fill",v).style("fill-opacity",b).style("stroke",v)}),t}var n={top:5,right:0,bottom:5,left:0},i=400,r=20,o=function(e){return e.key},a=e.utils.getColor(),s=!0,l=32,c=!0,u=!0,d=!1,h=!1,p=d3.dispatch("legendClick","legendDblclick","legendMouseover","legendMouseout","stateChange"),f="classic";return t.dispatch=p,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return i},set:function(e){i=e}},height:{get:function(){return r},set:function(e){r=e}},key:{get:function(){return o},set:function(e){o=e}},align:{get:function(){return s},set:function(e){s=e}},rightAlign:{get:function(){return c},set:function(e){c=e}},padding:{get:function(){return l},set:function(e){l=e}},updateState:{get:function(){return u},set:function(e){u=e}},radioButtonMode:{get:function(){return d},set:function(e){d=e}},expanded:{get:function(){return h},set:function(e){h=e}},vers:{get:function(){return f},set:function(e){f=e}},margin:{get:function(){return n},set:function(e){n.top=void 0!==e.top?e.top:n.top,n.right=void 0!==e.right?e.right:n.right,n.bottom=void 0!==e.bottom?e.bottom:n.bottom,n.left=void 0!==e.left?e.left:n.left}},color:{get:function(){return a},set:function(t){a=e.utils.getColor(t)}}}),e.utils.initOptions(t),t},e.models.line=function(){"use strict";function t(v){return w.reset(),w.models(r),v.each(function(t){l=d3.select(this);var v=e.utils.availableWidth(a,l,o),b=e.utils.availableHeight(s,l,o);e.utils.initSVG(l),n=r.xScale(),i=r.yScale(),y=y||n,_=_||i;var A=l.selectAll("g.nv-wrap.nv-line").data([t]),C=A.enter().append("g").attr("class","nvd3 nv-wrap nv-line"),x=C.append("defs"),S=C.append("g"),E=A.select("g");S.append("g").attr("class","nv-groups"),S.append("g").attr("class","nv-scatterWrap"),A.attr("transform","translate("+o.left+","+o.top+")"),r.width(v).height(b);var T=A.select(".nv-scatterWrap");T.call(r),x.append("clipPath").attr("id","nv-edge-clip-"+r.id()).append("rect"),A.select("#nv-edge-clip-"+r.id()+" rect").attr("width",v).attr("height",b>0?b:0),E.attr("clip-path",m?"url(#nv-edge-clip-"+r.id()+")":""),T.attr("clip-path",m?"url(#nv-edge-clip-"+r.id()+")":"");var D=A.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e){return e.key});D.enter().append("g").style("stroke-opacity",1e-6).style("stroke-width",function(e){return e.strokeWidth||c}).style("fill-opacity",1e-6),D.exit().remove(),D.attr("class",function(e,t){return(e.classed||"")+" nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}).style("fill",function(e,t){return u(e,t)}).style("stroke",function(e,t){return u(e,t)}),D.watchTransition(w,"line: groups").style("stroke-opacity",1).style("fill-opacity",function(e){return e.fillOpacity||.5});var I=D.selectAll("path.nv-area").data(function(e){return f(e)?[e]:[]});I.enter().append("path").attr("class","nv-area").attr("d",function(t){return d3.svg.area().interpolate(g).defined(p).x(function(t,n){return e.utils.NaNtoZero(y(d(t,n)))}).y0(function(t,n){return e.utils.NaNtoZero(_(h(t,n)))}).y1(function(e,t){return _(i.domain()[0]<=0?i.domain()[1]>=0?0:i.domain()[1]:i.domain()[0])}).apply(this,[t.values])}),D.exit().selectAll("path.nv-area").remove(),I.watchTransition(w,"line: areaPaths").attr("d",function(t){return d3.svg.area().interpolate(g).defined(p).x(function(t,i){return e.utils.NaNtoZero(n(d(t,i)))}).y0(function(t,n){return e.utils.NaNtoZero(i(h(t,n)))}).y1(function(e,t){return i(i.domain()[0]<=0?i.domain()[1]>=0?0:i.domain()[1]:i.domain()[0])}).apply(this,[t.values])});var k=D.selectAll("path.nv-line").data(function(e){return[e.values]});k.enter().append("path").attr("class","nv-line").attr("d",d3.svg.line().interpolate(g).defined(p).x(function(t,n){return e.utils.NaNtoZero(y(d(t,n)))}).y(function(t,n){return e.utils.NaNtoZero(_(h(t,n)))})),k.watchTransition(w,"line: linePaths").attr("d",d3.svg.line().interpolate(g).defined(p).x(function(t,i){return e.utils.NaNtoZero(n(d(t,i)))}).y(function(t,n){return e.utils.NaNtoZero(i(h(t,n)))})),y=n.copy(),_=i.copy()}),w.renderEnd("line immediate"),t}var n,i,r=e.models.scatter(),o={top:0,right:0,bottom:0,left:0},a=960,s=500,l=null,c=1.5,u=e.utils.defaultColor(),d=function(e){return e.x},h=function(e){return e.y},p=function(e,t){return!isNaN(h(e,t))&&null!==h(e,t)},f=function(e){return e.area},m=!1,g="linear",v=250,b=d3.dispatch("elementClick","elementMouseover","elementMouseout","renderEnd");r.pointSize(16).pointDomain([16,256]);var y,_,w=e.utils.renderWatch(b,v);return t.dispatch=b,t.scatter=r,r.dispatch.on("elementClick",function(){b.elementClick.apply(this,arguments)}),r.dispatch.on("elementMouseover",function(){b.elementMouseover.apply(this,arguments)}),r.dispatch.on("elementMouseout",function(){b.elementMouseout.apply(this,arguments)}),t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return a},set:function(e){a=e}},height:{get:function(){return s},set:function(e){s=e}},defined:{get:function(){return p},set:function(e){p=e}},interpolate:{get:function(){return g},set:function(e){g=e}},clipEdge:{get:function(){return m},set:function(e){m=e}},margin:{get:function(){return o},set:function(e){o.top=void 0!==e.top?e.top:o.top,o.right=void 0!==e.right?e.right:o.right,o.bottom=void 0!==e.bottom?e.bottom:o.bottom,o.left=void 0!==e.left?e.left:o.left}},duration:{get:function(){return v},set:function(e){v=e,w.reset(v),r.duration(v)}},isArea:{get:function(){return f},set:function(e){f=d3.functor(e)}},x:{get:function(){return d},set:function(e){d=e,r.x(e)}},y:{get:function(){return h},set:function(e){h=e,r.y(e)}},color:{get:function(){return u},set:function(t){u=e.utils.getColor(t),r.color(u)}}}),e.utils.inheritOptions(t,r),e.utils.initOptions(t),t},e.models.lineChart=function(){"use strict";function t(c){return x.reset(),x.models(r),m&&x.models(o),g&&x.models(a),c.each(function(c){var w=d3.select(this),x=this;e.utils.initSVG(w);var T=e.utils.availableWidth(h,w,u),D=e.utils.availableHeight(p,w,u);if(t.update=function(){0===C?w.call(t):w.transition().duration(C).call(t)},t.container=this,y.setter(E(c),t.update).getter(S(c)).update(),y.disabled=c.map(function(e){return!!e.disabled}),!_){var I;_={};for(I in y)y[I]instanceof Array?_[I]=y[I].slice(0):_[I]=y[I]}if(!(c&&c.length&&c.filter(function(e){return e.values.length}).length))return e.utils.noData(t,w),t;w.selectAll(".nv-noData").remove(),n=r.xScale(),i=r.yScale();var k=w.selectAll("g.nv-wrap.nv-lineChart").data([c]),M=k.enter().append("g").attr("class","nvd3 nv-wrap nv-lineChart").append("g"),P=k.select("g");M.append("rect").style("opacity",0),M.append("g").attr("class","nv-x nv-axis"),M.append("g").attr("class","nv-y nv-axis"),M.append("g").attr("class","nv-linesWrap"),M.append("g").attr("class","nv-legendWrap"),M.append("g").attr("class","nv-interactive"),P.select("rect").attr("width",T).attr("height",D>0?D:0),f&&(s.width(T),P.select(".nv-legendWrap").datum(c).call(s),u.top!=s.height()&&(u.top=s.height(),D=e.utils.availableHeight(p,w,u)),k.select(".nv-legendWrap").attr("transform","translate(0,"+-u.top+")")),k.attr("transform","translate("+u.left+","+u.top+")"),v&&P.select(".nv-y.nv-axis").attr("transform","translate("+T+",0)"),b&&(l.width(T).height(D).margin({left:u.left,top:u.top}).svgContainer(w).xScale(n),k.select(".nv-interactive").call(l)),r.width(T).height(D).color(c.map(function(e,t){return e.color||d(e,t)}).filter(function(e,t){return!c[t].disabled})),P.select(".nv-linesWrap").datum(c.filter(function(e){return!e.disabled})).call(r),m&&(o.scale(n)._ticks(e.utils.calcTicksX(T/100,c)).tickSize(-D,0),P.select(".nv-x.nv-axis").attr("transform","translate(0,"+i.range()[0]+")"),P.select(".nv-x.nv-axis").call(o)),g&&(a.scale(i)._ticks(e.utils.calcTicksY(D/36,c)).tickSize(-T,0),P.select(".nv-y.nv-axis").call(a)),s.dispatch.on("stateChange",function(e){for(var n in e)y[n]=e[n];A.stateChange(y),t.update()}),l.dispatch.on("elementMousemove",function(n){r.clearHighlights();var i,s,h,p=[];if(c.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(o,a){s=e.interactiveBisect(o.values,n.pointXValue,t.x());var l=o.values[s],c=t.y()(l,s);null!=c&&r.highlightPoint(a,s,!0),void 0!==l&&(void 0===i&&(i=l),void 0===h&&(h=t.xScale()(t.x()(l,s))),p.push({key:o.key,value:c,color:d(o,o.seriesIndex)}))}),p.length>2){var f=t.yScale().invert(n.mouseY),m=.03*Math.abs(t.yScale().domain()[0]-t.yScale().domain()[1]),g=e.nearestValueIndex(p.map(function(e){return e.value}),f,m);null!==g&&(p[g].highlight=!0)}var v=o.tickFormat()(t.x()(i,s));l.tooltip.position({left:n.mouseX+u.left,top:n.mouseY+u.top}).chartContainer(x.parentNode).valueFormatter(function(e,t){return null==e?"N/A":a.tickFormat()(e)}).data({value:v,index:s,series:p})(),l.renderGuideLine(h)}),l.dispatch.on("elementClick",function(n){var i,o=[];c.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(r){var a=e.interactiveBisect(r.values,n.pointXValue,t.x()),s=r.values[a];if(void 0!==s){void 0===i&&(i=t.xScale()(t.x()(s,a)));var l=t.yScale()(t.y()(s,a));o.push({point:s,pointIndex:a,pos:[i,l],seriesIndex:r.seriesIndex,series:r})}}),r.dispatch.elementClick(o)}),l.dispatch.on("elementMouseout",function(e){r.clearHighlights()}),A.on("changeState",function(e){void 0!==e.disabled&&c.length===e.disabled.length&&(c.forEach(function(t,n){t.disabled=e.disabled[n]}),y.disabled=e.disabled),t.update()})}),x.renderEnd("lineChart immediate"),t}var n,i,r=e.models.line(),o=e.models.axis(),a=e.models.axis(),s=e.models.legend(),l=e.interactiveGuideline(),c=e.models.tooltip(),u={top:30,right:20,bottom:50,left:60},d=e.utils.defaultColor(),h=null,p=null,f=!0,m=!0,g=!0,v=!1,b=!1,y=e.utils.state(),_=null,w=null,A=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd"),C=250;o.orient("bottom").tickPadding(7),a.orient(v?"right":"left"),c.valueFormatter(function(e,t){return a.tickFormat()(e,t)}).headerFormatter(function(e,t){return o.tickFormat()(e,t)});var x=e.utils.renderWatch(A,C),S=function(e){return function(){return{active:e.map(function(e){return!e.disabled})}}},E=function(e){return function(t){void 0!==t.active&&e.forEach(function(e,n){e.disabled=!t.active[n]})}};return r.dispatch.on("elementMouseover.tooltip",function(e){c.data(e).position(e.pos).hidden(!1)}),r.dispatch.on("elementMouseout.tooltip",function(e){c.hidden(!0)}),t.dispatch=A,t.lines=r,t.legend=s,t.xAxis=o,t.yAxis=a,t.interactiveLayer=l,t.tooltip=c,t.dispatch=A,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return h},set:function(e){h=e}},height:{get:function(){return p},set:function(e){p=e}},showLegend:{get:function(){return f},set:function(e){f=e}},showXAxis:{get:function(){return m},set:function(e){m=e}},showYAxis:{get:function(){return g},set:function(e){g=e}},defaultState:{get:function(){return _},set:function(e){_=e}},noData:{get:function(){return w},set:function(e){w=e}},tooltips:{get:function(){return c.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),c.enabled(!!t)}},tooltipContent:{get:function(){return c.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),c.contentGenerator(t)}},margin:{get:function(){return u},set:function(e){u.top=void 0!==e.top?e.top:u.top,u.right=void 0!==e.right?e.right:u.right,u.bottom=void 0!==e.bottom?e.bottom:u.bottom,u.left=void 0!==e.left?e.left:u.left}},duration:{get:function(){return C},set:function(e){C=e,x.reset(C),r.duration(C),o.duration(C),a.duration(C)}},color:{get:function(){return d},set:function(t){d=e.utils.getColor(t),s.color(d),r.color(d)}},rightAlignYAxis:{get:function(){return v},set:function(e){v=e,a.orient(v?"right":"left")}},useInteractiveGuideline:{get:function(){return b},set:function(e){(b=e)&&(r.interactive(!1),r.useVoronoi(!1))}}}),e.utils.inheritOptions(t,r),e.utils.initOptions(t),t},e.models.linePlusBarChart=function(){"use strict";function t(w){return w.each(function(w){function O(e){var t=+("e"==e),n=t?1:-1,i=K/3;return"M"+.5*n+","+i+"A6,6 0 0 "+t+" "+6.5*n+","+(i+6)+"V"+(2*i-6)+"A6,6 0 0 "+t+" "+.5*n+","+2*i+"ZM"+2.5*n+","+(i+8)+"V"+(2*i-8)+"M"+4.5*n+","+(i+8)+"V"+(2*i-8)}function W(){_.empty()||_.extent(N),ue.data([_.empty()?r.domain():N]).each(function(e,t){var n=r(e[0])-r.range()[0],i=r.range()[1]-r(e[1]);d3.select(this).select(".left").attr("width",n<0?0:n),d3.select(this).select(".right").attr("x",r(e[1])).attr("width",i<0?0:i)})}function z(){N=_.empty()?null:_.extent(),n=_.empty()?r.domain():_.extent(),R.brush({extent:n,brush:_}),W(),d.width(V).height(Y).color(w.map(function(e,t){return e.color||D(e,t)}).filter(function(e,t){return!w[t].disabled&&w[t].bar})),c.width(V).height(Y).color(w.map(function(e,t){return e.color||D(e,t)}).filter(function(e,t){return!w[t].disabled&&!w[t].bar}));var t=ie.select(".nv-focus .nv-barsWrap").datum(X.length?X.map(function(e,t){return{key:e.key,values:e.values.filter(function(e,t){return d.x()(e,t)>=n[0]&&d.x()(e,t)<=n[1]})}}):[{values:[]}]),s=ie.select(".nv-focus .nv-linesWrap").datum(Z[0].disabled?[{values:[]}]:Z.map(function(e,t){return{area:e.area,fillOpacity:e.fillOpacity,key:e.key,values:e.values.filter(function(e,t){return c.x()(e,t)>=n[0]&&c.x()(e,t)<=n[1]})}}));i=X.length?d.xScale():c.xScale(),p.scale(i)._ticks(e.utils.calcTicksX(V/100,w)).tickSize(-Y,0),p.domain([Math.ceil(n[0]),Math.floor(n[1])]),ie.select(".nv-x.nv-axis").transition().duration(L).call(p),t.transition().duration(L).call(d),s.transition().duration(L).call(c),ie.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+o.range()[0]+")"),m.scale(o)._ticks(e.utils.calcTicksY(Y/36,w)).tickSize(-V,0),g.scale(a)._ticks(e.utils.calcTicksY(Y/36,w)).tickSize(X.length?0:-V,0),ie.select(".nv-focus .nv-y1.nv-axis").style("opacity",X.length?1:0),ie.select(".nv-focus .nv-y2.nv-axis").style("opacity",Z.length&&!Z[0].disabled?1:0).attr("transform","translate("+i.range()[1]+",0)"),ie.select(".nv-focus .nv-y1.nv-axis").transition().duration(L).call(m),ie.select(".nv-focus .nv-y2.nv-axis").transition().duration(L).call(g)}var q=d3.select(this);e.utils.initSVG(q);var V=e.utils.availableWidth(x,q,A),Y=e.utils.availableHeight(S,q,A)-(k?$:0),K=$-C.top-C.bottom;if(t.update=function(){q.transition().duration(L).call(t)},t.container=this,G.setter(j(w),t.update).getter(U(w)).update(),G.disabled=w.map(function(e){return!!e.disabled}),!B){var Q;B={};for(Q in G)G[Q]instanceof Array?B[Q]=G[Q].slice(0):B[Q]=G[Q]}if(!(w&&w.length&&w.filter(function(e){return e.values.length}).length))return e.utils.noData(t,q),t;q.selectAll(".nv-noData").remove();var X=w.filter(function(e){return!e.disabled&&e.bar}),Z=w.filter(function(e){return!e.bar});i=d.xScale(),r=f.scale(),o=d.yScale(),a=c.yScale(),s=h.yScale(),l=u.yScale();var J=w.filter(function(e){return!e.disabled&&e.bar}).map(function(e){return e.values.map(function(e,t){return{x:E(e,t),y:T(e,t)}})}),ee=w.filter(function(e){return!e.disabled&&!e.bar}).map(function(e){return e.values.map(function(e,t){return{x:E(e,t),y:T(e,t)}})});i.range([0,V]),r.domain(d3.extent(d3.merge(J.concat(ee)),function(e){return e.x})).range([0,V]);var te=q.selectAll("g.nv-wrap.nv-linePlusBar").data([w]),ne=te.enter().append("g").attr("class","nvd3 nv-wrap nv-linePlusBar").append("g"),ie=te.select("g");ne.append("g").attr("class","nv-legendWrap");var re=ne.append("g").attr("class","nv-focus");re.append("g").attr("class","nv-x nv-axis"),re.append("g").attr("class","nv-y1 nv-axis"),re.append("g").attr("class","nv-y2 nv-axis"),re.append("g").attr("class","nv-barsWrap"),re.append("g").attr("class","nv-linesWrap");var oe=ne.append("g").attr("class","nv-context");if(oe.append("g").attr("class","nv-x nv-axis"),oe.append("g").attr("class","nv-y1 nv-axis"),oe.append("g").attr("class","nv-y2 nv-axis"),oe.append("g").attr("class","nv-barsWrap"),oe.append("g").attr("class","nv-linesWrap"),oe.append("g").attr("class","nv-brushBackground"),oe.append("g").attr("class","nv-x nv-brush"),I){var ae=y.align()?V/2:V,se=y.align()?ae:0;y.width(ae),ie.select(".nv-legendWrap").datum(w.map(function(e){return e.originalKey=void 0===e.originalKey?e.key:e.originalKey,e.key=e.originalKey+(e.bar?F:H),e})).call(y),A.top!=y.height()&&(A.top=y.height(),Y=e.utils.availableHeight(S,q,A)-$),ie.select(".nv-legendWrap").attr("transform","translate("+se+","+-A.top+")")}te.attr("transform","translate("+A.left+","+A.top+")"),ie.select(".nv-context").style("display",k?"initial":"none"),h.width(V).height(K).color(w.map(function(e,t){return e.color||D(e,t)}).filter(function(e,t){return!w[t].disabled&&w[t].bar})),u.width(V).height(K).color(w.map(function(e,t){return e.color||D(e,t)}).filter(function(e,t){return!w[t].disabled&&!w[t].bar}));var le=ie.select(".nv-context .nv-barsWrap").datum(X.length?X:[{values:[]}]),ce=ie.select(".nv-context .nv-linesWrap").datum(Z[0].disabled?[{values:[]}]:Z);ie.select(".nv-context").attr("transform","translate(0,"+(Y+A.bottom+C.top)+")"),le.transition().call(h),ce.transition().call(u),P&&(f._ticks(e.utils.calcTicksX(V/100,w)).tickSize(-K,0),ie.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+s.range()[0]+")"),ie.select(".nv-context .nv-x.nv-axis").transition().call(f)),M&&(v.scale(s)._ticks(K/36).tickSize(-V,0),b.scale(l)._ticks(K/36).tickSize(X.length?0:-V,0),ie.select(".nv-context .nv-y3.nv-axis").style("opacity",X.length?1:0).attr("transform","translate(0,"+r.range()[0]+")"),ie.select(".nv-context .nv-y2.nv-axis").style("opacity",Z.length?1:0).attr("transform","translate("+r.range()[1]+",0)"),ie.select(".nv-context .nv-y1.nv-axis").transition().call(v),ie.select(".nv-context .nv-y2.nv-axis").transition().call(b)),_.x(r).on("brush",z),N&&_.extent(N);var ue=ie.select(".nv-brushBackground").selectAll("g").data([N||_.extent()]),de=ue.enter().append("g");de.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",K),de.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",K);var he=ie.select(".nv-x.nv-brush").call(_);he.selectAll("rect").attr("height",K),he.selectAll(".resize").append("path").attr("d",O),y.dispatch.on("stateChange",function(e){for(var n in e)G[n]=e[n];R.stateChange(G),t.update()}),R.on("changeState",function(e){void 0!==e.disabled&&(w.forEach(function(t,n){t.disabled=e.disabled[n]}),G.disabled=e.disabled),t.update()}),z()}),t}var n,i,r,o,a,s,l,c=e.models.line(),u=e.models.line(),d=e.models.historicalBar(),h=e.models.historicalBar(),p=e.models.axis(),f=e.models.axis(),m=e.models.axis(),g=e.models.axis(),v=e.models.axis(),b=e.models.axis(),y=e.models.legend(),_=d3.svg.brush(),w=e.models.tooltip(),A={top:30,right:30,bottom:30,left:60},C={top:0,right:30,bottom:20,left:60},x=null,S=null,E=function(e){return e.x},T=function(e){return e.y},D=e.utils.defaultColor(),I=!0,k=!0,M=!1,P=!0,$=50,N=null,O=null,R=d3.dispatch("brush","stateChange","changeState"),L=0,G=e.utils.state(),B=null,F=" (left axis)",H=" (right axis)";c.clipEdge(!0),u.interactive(!1),p.orient("bottom").tickPadding(5),m.orient("left"),g.orient("right"),f.orient("bottom").tickPadding(5),v.orient("left"),b.orient("right"),w.headerEnabled(!0).headerFormatter(function(e,t){return p.tickFormat()(e,t)});var U=function(e){return function(){return{active:e.map(function(e){return!e.disabled})}}},j=function(e){return function(t){void 0!==t.active&&e.forEach(function(e,n){e.disabled=!t.active[n]})}};return c.dispatch.on("elementMouseover.tooltip",function(e){w.duration(100).valueFormatter(function(e,t){return g.tickFormat()(e,t)}).data(e).position(e.pos).hidden(!1)}),c.dispatch.on("elementMouseout.tooltip",function(e){w.hidden(!0)}),d.dispatch.on("elementMouseover.tooltip",function(e){e.value=t.x()(e.data),e.series={value:t.y()(e.data),color:e.color},w.duration(0).valueFormatter(function(e,t){return m.tickFormat()(e,t)}).data(e).hidden(!1)}),d.dispatch.on("elementMouseout.tooltip",function(e){w.hidden(!0)}),d.dispatch.on("elementMousemove.tooltip",function(e){w.position({top:d3.event.pageY,left:d3.event.pageX})()}),t.dispatch=R,t.legend=y,t.lines=c,t.lines2=u,t.bars=d,t.bars2=h,t.xAxis=p,t.x2Axis=f,t.y1Axis=m,t.y2Axis=g,t.y3Axis=v,t.y4Axis=b,t.tooltip=w,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return x},set:function(e){x=e}},height:{get:function(){return S},set:function(e){S=e}},showLegend:{get:function(){return I},set:function(e){I=e}},brushExtent:{get:function(){return N},set:function(e){N=e}},noData:{get:function(){return O},set:function(e){O=e}},focusEnable:{get:function(){return k},set:function(e){k=e}},focusHeight:{get:function(){return $},set:function(e){$=e}},focusShowAxisX:{get:function(){return P},set:function(e){P=e}},focusShowAxisY:{get:function(){return M},set:function(e){M=e}},legendLeftAxisHint:{get:function(){return F},set:function(e){F=e}},legendRightAxisHint:{get:function(){return H},set:function(e){H=e}},tooltips:{get:function(){return w.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),w.enabled(!!t)}},tooltipContent:{get:function(){return w.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),w.contentGenerator(t)}},margin:{get:function(){return A},set:function(e){A.top=void 0!==e.top?e.top:A.top,A.right=void 0!==e.right?e.right:A.right,A.bottom=void 0!==e.bottom?e.bottom:A.bottom,A.left=void 0!==e.left?e.left:A.left}},duration:{get:function(){return L},set:function(e){L=e}},color:{get:function(){return D},set:function(t){D=e.utils.getColor(t),y.color(D)}},x:{get:function(){return E},set:function(e){E=e,c.x(e),u.x(e),d.x(e),h.x(e)}},y:{get:function(){return T},set:function(e){T=e,c.y(e),u.y(e),d.y(e),h.y(e)}}}),e.utils.inheritOptions(t,c),e.utils.initOptions(t),t},e.models.lineWithFocusChart=function(){"use strict";function t(f){return f.each(function(f){function S(e){var t=+("e"==e),n=t?1:-1,i=G/3;return"M"+.5*n+","+i+"A6,6 0 0 "+t+" "+6.5*n+","+(i+6)+"V"+(2*i-6)+"A6,6 0 0 "+t+" "+.5*n+","+2*i+"ZM"+2.5*n+","+(i+8)+"V"+(2*i-8)+"M"+4.5*n+","+(i+8)+"V"+(2*i-8)}function P(){p.empty()||p.extent(x),q.data([p.empty()?r.domain():x]).each(function(e,t){var i=r(e[0])-n.range()[0],o=R-r(e[1]);d3.select(this).select(".left").attr("width",i<0?0:i),d3.select(this).select(".right").attr("x",r(e[1])).attr("width",o<0?0:o)})}function $(){x=p.empty()?null:p.extent();var e=p.empty()?r.domain():p.extent();Math.abs(e[0]-e[1])<=1||(E.brush({extent:e,brush:p}),P(),U.select(".nv-focus .nv-linesWrap").datum(f.filter(function(e){return!e.disabled}).map(function(t,n){return{key:t.key,area:t.area,values:t.values.filter(function(t,n){return a.x()(t,n)>=e[0]&&a.x()(t,n)<=e[1]})}})).transition().duration(T).call(a),U.select(".nv-focus .nv-x.nv-axis").transition().duration(T).call(l),U.select(".nv-focus .nv-y.nv-axis").transition().duration(T).call(c))}var N=d3.select(this),O=this;e.utils.initSVG(N);var R=e.utils.availableWidth(y,N,g),L=e.utils.availableHeight(_,N,g)-w,G=w-v.top-v.bottom;if(t.update=function(){N.transition().duration(T).call(t)},t.container=this,D.setter(M(f),t.update).getter(k(f)).update(),D.disabled=f.map(function(e){return!!e.disabled}),!I){var B;I={};for(B in D)D[B]instanceof Array?I[B]=D[B].slice(0):I[B]=D[B]}if(!(f&&f.length&&f.filter(function(e){return e.values.length}).length))return e.utils.noData(t,N),t;N.selectAll(".nv-noData").remove(),n=a.xScale(),i=a.yScale(),r=s.xScale(),o=s.yScale();var F=N.selectAll("g.nv-wrap.nv-lineWithFocusChart").data([f]),H=F.enter().append("g").attr("class","nvd3 nv-wrap nv-lineWithFocusChart").append("g"),U=F.select("g");H.append("g").attr("class","nv-legendWrap");var j=H.append("g").attr("class","nv-focus");j.append("g").attr("class","nv-x nv-axis"),j.append("g").attr("class","nv-y nv-axis"),j.append("g").attr("class","nv-linesWrap"),j.append("g").attr("class","nv-interactive");var W=H.append("g").attr("class","nv-context");W.append("g").attr("class","nv-x nv-axis"),W.append("g").attr("class","nv-y nv-axis"),W.append("g").attr("class","nv-linesWrap"),W.append("g").attr("class","nv-brushBackground"),W.append("g").attr("class","nv-x nv-brush"),C&&(h.width(R),U.select(".nv-legendWrap").datum(f).call(h),g.top!=h.height()&&(g.top=h.height(),L=e.utils.availableHeight(_,N,g)-w),U.select(".nv-legendWrap").attr("transform","translate(0,"+-g.top+")")),F.attr("transform","translate("+g.left+","+g.top+")"),A&&(m.width(R).height(L).margin({left:g.left,top:g.top}).svgContainer(N).xScale(n),F.select(".nv-interactive").call(m)),a.width(R).height(L).color(f.map(function(e,t){return e.color||b(e,t)}).filter(function(e,t){return!f[t].disabled})),s.defined(a.defined()).width(R).height(G).color(f.map(function(e,t){return e.color||b(e,t)}).filter(function(e,t){return!f[t].disabled})),U.select(".nv-context").attr("transform","translate(0,"+(L+g.bottom+v.top)+")");var z=U.select(".nv-context .nv-linesWrap").datum(f.filter(function(e){return!e.disabled}));d3.transition(z).call(s),l.scale(n)._ticks(e.utils.calcTicksX(R/100,f)).tickSize(-L,0),c.scale(i)._ticks(e.utils.calcTicksY(L/36,f)).tickSize(-R,0),U.select(".nv-focus .nv-x.nv-axis").attr("transform","translate(0,"+L+")"),p.x(r).on("brush",function(){$()}),x&&p.extent(x);var q=U.select(".nv-brushBackground").selectAll("g").data([x||p.extent()]),V=q.enter().append("g");V.append("rect").attr("class","left").attr("x",0).attr("y",0).attr("height",G),V.append("rect").attr("class","right").attr("x",0).attr("y",0).attr("height",G);var Y=U.select(".nv-x.nv-brush").call(p);Y.selectAll("rect").attr("height",G),Y.selectAll(".resize").append("path").attr("d",S),$(),u.scale(r)._ticks(e.utils.calcTicksX(R/100,f)).tickSize(-G,0),U.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+o.range()[0]+")"),d3.transition(U.select(".nv-context .nv-x.nv-axis")).call(u),d.scale(o)._ticks(e.utils.calcTicksY(G/36,f)).tickSize(-R,0),d3.transition(U.select(".nv-context .nv-y.nv-axis")).call(d),U.select(".nv-context .nv-x.nv-axis").attr("transform","translate(0,"+o.range()[0]+")"),h.dispatch.on("stateChange",function(e){for(var n in e)D[n]=e[n];E.stateChange(D),t.update()}),m.dispatch.on("elementMousemove",function(n){a.clearHighlights();var i,o,s,u=[];if(f.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(l,c){var d=p.empty()?r.domain():p.extent(),h=l.values.filter(function(e,t){return a.x()(e,t)>=d[0]&&a.x()(e,t)<=d[1]}),f=h[o=e.interactiveBisect(h,n.pointXValue,a.x())];null!=t.y()(f,o)&&a.highlightPoint(c,o,!0),void 0!==f&&(void 0===i&&(i=f),void 0===s&&(s=t.xScale()(t.x()(f,o))),u.push({key:l.key,value:t.y()(f,o),color:b(l,l.seriesIndex)}))}),u.length>2){var d=t.yScale().invert(n.mouseY),h=.03*Math.abs(t.yScale().domain()[0]-t.yScale().domain()[1]),v=e.nearestValueIndex(u.map(function(e){return e.value}),d,h);null!==v&&(u[v].highlight=!0)}var y=l.tickFormat()(t.x()(i,o));m.tooltip.position({left:n.mouseX+g.left,top:n.mouseY+g.top}).chartContainer(O.parentNode).valueFormatter(function(e,t){return null==e?"N/A":c.tickFormat()(e)}).data({value:y,index:o,series:u})(),m.renderGuideLine(s)}),m.dispatch.on("elementMouseout",function(e){a.clearHighlights()}),E.on("changeState",function(e){void 0!==e.disabled&&f.forEach(function(t,n){t.disabled=e.disabled[n]}),t.update()})}),t}var n,i,r,o,a=e.models.line(),s=e.models.line(),l=e.models.axis(),c=e.models.axis(),u=e.models.axis(),d=e.models.axis(),h=e.models.legend(),p=d3.svg.brush(),f=e.models.tooltip(),m=e.interactiveGuideline(),g={top:30,right:30,bottom:30,left:60},v={top:0,right:30,bottom:20,left:60},b=e.utils.defaultColor(),y=null,_=null,w=50,A=!1,C=!0,x=null,S=null,E=d3.dispatch("brush","stateChange","changeState"),T=250,D=e.utils.state(),I=null;a.clipEdge(!0).duration(0),s.interactive(!1),l.orient("bottom").tickPadding(5),c.orient("left"),u.orient("bottom").tickPadding(5),d.orient("left"),f.valueFormatter(function(e,t){return c.tickFormat()(e,t)}).headerFormatter(function(e,t){return l.tickFormat()(e,t)});var k=function(e){return function(){return{active:e.map(function(e){return!e.disabled})}}},M=function(e){return function(t){void 0!==t.active&&e.forEach(function(e,n){e.disabled=!t.active[n]})}};return a.dispatch.on("elementMouseover.tooltip",function(e){f.data(e).position(e.pos).hidden(!1)}),a.dispatch.on("elementMouseout.tooltip",function(e){f.hidden(!0)}),t.dispatch=E,t.legend=h,t.lines=a,t.lines2=s,t.xAxis=l,t.yAxis=c,t.x2Axis=u,t.y2Axis=d,t.interactiveLayer=m,t.tooltip=f,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return y},set:function(e){y=e}},height:{get:function(){return _},set:function(e){_=e}},focusHeight:{get:function(){return w},set:function(e){w=e}},showLegend:{get:function(){return C},set:function(e){C=e}},brushExtent:{get:function(){return x},set:function(e){x=e}},defaultState:{get:function(){return I},set:function(e){I=e}},noData:{get:function(){return S},set:function(e){S=e}},tooltips:{get:function(){return f.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),f.enabled(!!t)}},tooltipContent:{get:function(){return f.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),f.contentGenerator(t)}},margin:{get:function(){return g},set:function(e){g.top=void 0!==e.top?e.top:g.top,g.right=void 0!==e.right?e.right:g.right,g.bottom=void 0!==e.bottom?e.bottom:g.bottom,g.left=void 0!==e.left?e.left:g.left}},color:{get:function(){return b},set:function(t){b=e.utils.getColor(t),h.color(b)}},interpolate:{get:function(){return a.interpolate()},set:function(e){a.interpolate(e),s.interpolate(e)}},xTickFormat:{get:function(){return l.tickFormat()},set:function(e){l.tickFormat(e),u.tickFormat(e)}},yTickFormat:{get:function(){return c.tickFormat()},set:function(e){c.tickFormat(e),d.tickFormat(e)}},duration:{get:function(){return T},set:function(e){T=e,c.duration(T),d.duration(T),l.duration(T),u.duration(T)}},x:{get:function(){return a.x()},set:function(e){a.x(e),s.x(e)}},y:{get:function(){return a.y()},set:function(e){a.y(e),s.y(e)}},useInteractiveGuideline:{get:function(){return A},set:function(e){(A=e)&&(a.interactive(!1),a.useVoronoi(!1))}}}),e.utils.inheritOptions(t,a),e.utils.initOptions(t),t},e.models.multiBar=function(){"use strict";function t(k){return D.reset(),k.each(function(t){var k=u-c.left-c.right,M=d-c.top-c.bottom;m=d3.select(this),e.utils.initSVG(m);var P=0;if(C&&t.length&&(C=[{values:t[0].values.map(function(e){return{x:e.x,y:0,series:e.series,size:.01}})}]),_){var $=d3.layout.stack().offset(w).values(function(e){return e.values}).y(v)(!t.length&&C?C:t);$.forEach(function(e,n){e.nonStackable?(t[n].nonStackableSeries=P++,$[n]=t[n]):n>0&&$[n-1].nonStackable&&$[n].values.map(function(e,t){e.y0-=$[n-1].values[t].y,e.y1=e.y0+e.y})}),t=$}t.forEach(function(e,t){e.values.forEach(function(n){n.series=t,n.key=e.key})}),_&&t[0].values.map(function(e,n){var i=0,r=0;t.map(function(e,o){if(!t[o].nonStackable){var a=e.values[n];a.size=Math.abs(a.y),a.y<0?(a.y1=r,r-=a.size):(a.y1=a.size+i,i+=a.size)}})});var N=i&&r?[]:t.map(function(e,t){return e.values.map(function(e,n){return{x:g(e,n),y:v(e,n),y0:e.y0,y1:e.y1,idx:t}})});h.domain(i||d3.merge(N).map(function(e){return e.x})).rangeBands(o||[0,k],E),p.domain(r||d3.extent(d3.merge(N).map(function(e){var n=e.y;return _&&!t[e.idx].nonStackable&&(n=e.y>0?e.y1:e.y1+e.y),n}).concat(b))).range(a||[M,0]),h.domain()[0]===h.domain()[1]&&(h.domain()[0]?h.domain([h.domain()[0]-.01*h.domain()[0],h.domain()[1]+.01*h.domain()[1]]):h.domain([-1,1])),p.domain()[0]===p.domain()[1]&&(p.domain()[0]?p.domain([p.domain()[0]+.01*p.domain()[0],p.domain()[1]-.01*p.domain()[1]]):p.domain([-1,1])),s=s||h,l=l||p;var O=m.selectAll("g.nv-wrap.nv-multibar").data([t]),R=O.enter().append("g").attr("class","nvd3 nv-wrap nv-multibar"),L=R.append("defs"),G=R.append("g"),B=O.select("g");G.append("g").attr("class","nv-groups"),O.attr("transform","translate("+c.left+","+c.top+")"),L.append("clipPath").attr("id","nv-edge-clip-"+f).append("rect"),O.select("#nv-edge-clip-"+f+" rect").attr("width",k).attr("height",M),B.attr("clip-path",y?"url(#nv-edge-clip-"+f+")":"");var F=O.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e,t){return t});F.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6);var H=D.transition(F.exit().selectAll("rect.nv-bar"),"multibarExit",Math.min(100,S)).attr("y",function(e,n,i){var r=l(0)||0;return _&&t[e.series]&&!t[e.series].nonStackable&&(r=l(e.y0)),r}).attr("height",0).remove();H.delay&&H.delay(function(e,t){return t*(S/(I+1))-t}),F.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}).style("fill",function(e,t){return A(e,t)}).style("stroke",function(e,t){return A(e,t)}),F.style("stroke-opacity",1).style("fill-opacity",.75);var U=F.selectAll("rect.nv-bar").data(function(e){return C&&!t.length?C.values:e.values});U.exit().remove();U.enter().append("rect").attr("class",function(e,t){return v(e,t)<0?"nv-bar negative":"nv-bar positive"}).attr("x",function(e,n,i){return _&&!t[i].nonStackable?0:i*h.rangeBand()/t.length}).attr("y",function(e,n,i){return l(_&&!t[i].nonStackable?e.y0:0)||0}).attr("height",0).attr("width",function(e,n,i){return h.rangeBand()/(_&&!t[i].nonStackable?1:t.length)}).attr("transform",function(e,t){return"translate("+h(g(e,t))+",0)"});U.style("fill",function(e,t,n){return A(e,n,t)}).style("stroke",function(e,t,n){return A(e,n,t)}).on("mouseover",function(e,t){d3.select(this).classed("hover",!0),T.elementMouseover({data:e,index:t,color:d3.select(this).style("fill")})}).on("mouseout",function(e,t){d3.select(this).classed("hover",!1),T.elementMouseout({data:e,index:t,color:d3.select(this).style("fill")})}).on("mousemove",function(e,t){T.elementMousemove({data:e,index:t,color:d3.select(this).style("fill")})}).on("click",function(e,t){T.elementClick({data:e,index:t,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}).on("dblclick",function(e,t){T.elementDblClick({data:e,index:t,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}),U.attr("class",function(e,t){return v(e,t)<0?"nv-bar negative":"nv-bar positive"}).attr("transform",function(e,t){return"translate("+h(g(e,t))+",0)"}),x&&(n||(n=t.map(function(){return!0})),U.style("fill",function(e,t,i){return d3.rgb(x(e,t)).darker(n.map(function(e,t){return t}).filter(function(e,t){return!n[t]})[i]).toString()}).style("stroke",function(e,t,i){return d3.rgb(x(e,t)).darker(n.map(function(e,t){return t}).filter(function(e,t){return!n[t]})[i]).toString()}));var j=U.watchTransition(D,"multibar",Math.min(250,S)).delay(function(e,n){return n*S/t[0].values.length});_?j.attr("y",function(e,n,i){return t[i].nonStackable?v(e,n)<0?p(0):p(0)-p(v(e,n))<-1?p(0)-1:p(v(e,n))||0:p(e.y1)}).attr("height",function(e,n,i){return t[i].nonStackable?Math.max(Math.abs(p(v(e,n))-p(0)),1)||0:Math.max(Math.abs(p(e.y+e.y0)-p(e.y0)),1)}).attr("x",function(e,n,i){var r=0;return t[i].nonStackable&&(r=e.series*h.rangeBand()/t.length,t.length!==P&&(r=t[i].nonStackableSeries*h.rangeBand()/(2*P))),r}).attr("width",function(e,n,i){if(t[i].nonStackable){var r=h.rangeBand()/P;return t.length!==P&&(r=h.rangeBand()/(2*P)),r}return h.rangeBand()}):j.attr("x",function(e,n){return e.series*h.rangeBand()/t.length}).attr("width",h.rangeBand()/t.length).attr("y",function(e,t){return v(e,t)<0?p(0):p(0)-p(v(e,t))<1?p(0)-1:p(v(e,t))||0}).attr("height",function(e,t){return Math.max(Math.abs(p(v(e,t))-p(0)),1)||0}),s=h.copy(),l=p.copy(),t[0]&&t[0].values&&(I=t[0].values.length)}),D.renderEnd("multibar immediate"),t}var n,i,r,o,a,s,l,c={top:0,right:0,bottom:0,left:0},u=960,d=500,h=d3.scale.ordinal(),p=d3.scale.linear(),f=Math.floor(1e4*Math.random()),m=null,g=function(e){return e.x},v=function(e){return e.y},b=[0],y=!0,_=!1,w="zero",A=e.utils.defaultColor(),C=!1,x=null,S=500,E=.1,T=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),D=e.utils.renderWatch(T,S),I=0;return t.dispatch=T,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return u},set:function(e){u=e}},height:{get:function(){return d},set:function(e){d=e}},x:{get:function(){return g},set:function(e){g=e}},y:{get:function(){return v},set:function(e){v=e}},xScale:{get:function(){return h},set:function(e){h=e}},yScale:{get:function(){return p},set:function(e){p=e}},xDomain:{get:function(){return i},set:function(e){i=e}},yDomain:{get:function(){return r},set:function(e){r=e}},xRange:{get:function(){return o},set:function(e){o=e}},yRange:{get:function(){return a},set:function(e){a=e}},forceY:{get:function(){return b},set:function(e){b=e}},stacked:{get:function(){return _},set:function(e){_=e}},stackOffset:{get:function(){return w},set:function(e){w=e}},clipEdge:{get:function(){return y},set:function(e){y=e}},disabled:{get:function(){return n},set:function(e){n=e}},id:{get:function(){return f},set:function(e){f=e}},hideable:{get:function(){return C},set:function(e){C=e}},groupSpacing:{get:function(){return E},set:function(e){E=e}},margin:{get:function(){return c},set:function(e){c.top=void 0!==e.top?e.top:c.top,c.right=void 0!==e.right?e.right:c.right,c.bottom=void 0!==e.bottom?e.bottom:c.bottom,c.left=void 0!==e.left?e.left:c.left}},duration:{get:function(){return S},set:function(e){S=e,D.reset(S)}},color:{get:function(){return A},set:function(t){A=e.utils.getColor(t)}},barColor:{get:function(){return x},set:function(t){x=t?e.utils.getColor(t):null}}}),e.utils.initOptions(t),t},e.models.multiBarChart=function(){"use strict";function t(c){return I.reset(),I.models(r),v&&I.models(o),b&&I.models(a),c.each(function(c){var S=d3.select(this);e.utils.initSVG(S);var I=e.utils.availableWidth(d,S,u),$=e.utils.availableHeight(h,S,u);if(t.update=function(){0===D?S.call(t):S.transition().duration(D).call(t)},t.container=this,C.setter(P(c),t.update).getter(M(c)).update(),C.disabled=c.map(function(e){return!!e.disabled}),!x){var N;x={};for(N in C)C[N]instanceof Array?x[N]=C[N].slice(0):x[N]=C[N]}if(!(c&&c.length&&c.filter(function(e){return e.values.length}).length))return e.utils.noData(t,S),t;S.selectAll(".nv-noData").remove(),n=r.xScale(),i=r.yScale();var O=S.selectAll("g.nv-wrap.nv-multiBarWithLegend").data([c]),R=O.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarWithLegend").append("g"),L=O.select("g");if(R.append("g").attr("class","nv-x nv-axis"),R.append("g").attr("class","nv-y nv-axis"),R.append("g").attr("class","nv-barsWrap"),R.append("g").attr("class","nv-legendWrap"),R.append("g").attr("class","nv-controlsWrap"),g&&(s.width(I-T()),L.select(".nv-legendWrap").datum(c).call(s),u.top!=s.height()&&(u.top=s.height(),$=e.utils.availableHeight(h,S,u)),L.select(".nv-legendWrap").attr("transform","translate("+T()+","+-u.top+")")),f){var G=[{key:m.grouped||"Grouped",disabled:r.stacked()},{key:m.stacked||"Stacked",disabled:!r.stacked()}];l.width(T()).color(["#444","#444","#444"]),L.select(".nv-controlsWrap").datum(G).attr("transform","translate(0,"+-u.top+")").call(l)}if(O.attr("transform","translate("+u.left+","+u.top+")"),y&&L.select(".nv-y.nv-axis").attr("transform","translate("+I+",0)"),r.disabled(c.map(function(e){return e.disabled})).width(I).height($).color(c.map(function(e,t){return e.color||p(e,t)}).filter(function(e,t){return!c[t].disabled})),L.select(".nv-barsWrap").datum(c.filter(function(e){return!e.disabled})).call(r),v){o.scale(n)._ticks(e.utils.calcTicksX(I/100,c)).tickSize(-$,0),L.select(".nv-x.nv-axis").attr("transform","translate(0,"+i.range()[0]+")"),L.select(".nv-x.nv-axis").call(o);var B=L.select(".nv-x.nv-axis > g").selectAll("g");if(B.selectAll("line, text").style("opacity",1),w){var F=function(e,t){return"translate("+e+","+t+")"};B.selectAll("text").attr("transform",function(e,t,n){return F(0,n%2==0?5:17)});var H=d3.selectAll(".nv-x.nv-axis .nv-wrap g g text")[0].length;L.selectAll(".nv-x.nv-axis .nv-axisMaxMin text").attr("transform",function(e,t){return F(0,0===t||H%2!=0?17:5)})}_&&B.filter(function(e,t){return t%Math.ceil(c[0].values.length/(I/100))!=0}).selectAll("text, line").style("opacity",0),A&&B.selectAll(".tick text").attr("transform","rotate("+A+" 0,0)").style("text-anchor",A>0?"start":"end"),L.select(".nv-x.nv-axis").selectAll("g.nv-axisMaxMin text").style("opacity",1)}b&&(a.scale(i)._ticks(e.utils.calcTicksY($/36,c)).tickSize(-I,0),L.select(".nv-y.nv-axis").call(a)),s.dispatch.on("stateChange",function(e){for(var n in e)C[n]=e[n];E.stateChange(C),t.update()}),l.dispatch.on("legendClick",function(e,n){if(e.disabled){switch(G=G.map(function(e){return e.disabled=!0,e}),e.disabled=!1,e.key){case"Grouped":case m.grouped:r.stacked(!1);break;case"Stacked":case m.stacked:r.stacked(!0)}C.stacked=r.stacked(),E.stateChange(C),t.update()}}),E.on("changeState",function(e){void 0!==e.disabled&&(c.forEach(function(t,n){t.disabled=e.disabled[n]}),C.disabled=e.disabled),void 0!==e.stacked&&(r.stacked(e.stacked),C.stacked=e.stacked,k=e.stacked),t.update()})}),I.renderEnd("multibarchart immediate"),t}var n,i,r=e.models.multiBar(),o=e.models.axis(),a=e.models.axis(),s=e.models.legend(),l=e.models.legend(),c=e.models.tooltip(),u={top:30,right:20,bottom:50,left:60},d=null,h=null,p=e.utils.defaultColor(),f=!0,m={},g=!0,v=!0,b=!0,y=!1,_=!0,w=!1,A=0,C=e.utils.state(),x=null,S=null,E=d3.dispatch("stateChange","changeState","renderEnd"),T=function(){return f?180:0},D=250;C.stacked=!1,r.stacked(!1),o.orient("bottom").tickPadding(7).showMaxMin(!1).tickFormat(function(e){return e}),a.orient(y?"right":"left").tickFormat(d3.format(",.1f")),c.duration(0).valueFormatter(function(e,t){return a.tickFormat()(e,t)}).headerFormatter(function(e,t){return o.tickFormat()(e,t)}),l.updateState(!1);var I=e.utils.renderWatch(E),k=!1,M=function(e){return function(){return{active:e.map(function(e){return!e.disabled}),stacked:k}}},P=function(e){return function(t){void 0!==t.stacked&&(k=t.stacked),void 0!==t.active&&e.forEach(function(e,n){e.disabled=!t.active[n]})}};return r.dispatch.on("elementMouseover.tooltip",function(e){e.value=t.x()(e.data),e.series={key:e.data.key,value:t.y()(e.data),color:e.color},c.data(e).hidden(!1)}),r.dispatch.on("elementMouseout.tooltip",function(e){c.hidden(!0)}),r.dispatch.on("elementMousemove.tooltip",function(e){c.position({top:d3.event.pageY,left:d3.event.pageX})()}),t.dispatch=E,t.multibar=r,t.legend=s,t.controls=l,t.xAxis=o,t.yAxis=a,t.state=C,t.tooltip=c,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return d},set:function(e){d=e}},height:{get:function(){return h},set:function(e){h=e}},showLegend:{get:function(){return g},set:function(e){g=e}},showControls:{get:function(){return f},set:function(e){f=e}},controlLabels:{get:function(){return m},set:function(e){m=e}},showXAxis:{get:function(){return v},set:function(e){v=e}},showYAxis:{get:function(){return b},set:function(e){b=e}},defaultState:{get:function(){return x},set:function(e){x=e}},noData:{get:function(){return S},set:function(e){S=e}},reduceXTicks:{get:function(){return _},set:function(e){_=e}},rotateLabels:{get:function(){return A},set:function(e){A=e}},staggerLabels:{get:function(){return w},set:function(e){w=e}},tooltips:{get:function(){return c.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),c.enabled(!!t)}},tooltipContent:{get:function(){return c.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),c.contentGenerator(t)}},margin:{get:function(){return u},set:function(e){u.top=void 0!==e.top?e.top:u.top,u.right=void 0!==e.right?e.right:u.right,u.bottom=void 0!==e.bottom?e.bottom:u.bottom,u.left=void 0!==e.left?e.left:u.left}},duration:{get:function(){return D},set:function(e){D=e,r.duration(D),o.duration(D),a.duration(D),I.reset(D)}},color:{get:function(){return p},set:function(t){p=e.utils.getColor(t),s.color(p)}},rightAlignYAxis:{get:function(){return y},set:function(e){y=e,a.orient(y?"right":"left")}},barColor:{get:function(){return r.barColor},set:function(e){r.barColor(e),s.color(function(e,t){return d3.rgb("#ccc").darker(1.5*t).toString()})}}}),e.utils.inheritOptions(t,r),e.utils.initOptions(t),t},e.models.multiBarHorizontal=function(){"use strict";function t(h){return k.reset(),h.each(function(t){var h=u-c.left-c.right,D=d-c.top-c.bottom;p=d3.select(this),e.utils.initSVG(p),A&&(t=d3.layout.stack().offset("zero").values(function(e){return e.values}).y(v)(t)),t.forEach(function(e,t){e.values.forEach(function(n){n.series=t,n.key=e.key})}),A&&t[0].values.map(function(e,n){var i=0,r=0;t.map(function(e){var t=e.values[n];t.size=Math.abs(t.y),t.y<0?(t.y1=r-t.size,r-=t.size):(t.y1=i,i+=t.size)})});var M=i&&r?[]:t.map(function(e){return e.values.map(function(e,t){return{x:g(e,t),y:v(e,t),y0:e.y0,y1:e.y1}})});f.domain(i||d3.merge(M).map(function(e){return e.x})).rangeBands(o||[0,D],E),m.domain(r||d3.extent(d3.merge(M).map(function(e){return A?e.y>0?e.y1+e.y:e.y1:e.y}).concat(y))),C&&!A?m.range(a||[m.domain()[0]<0?S:0,h-(m.domain()[1]>0?S:0)]):m.range(a||[0,h]),s=s||f,l=l||d3.scale.linear().domain(m.domain()).range([m(0),m(0)]);var P=d3.select(this).selectAll("g.nv-wrap.nv-multibarHorizontal").data([t]),$=P.enter().append("g").attr("class","nvd3 nv-wrap nv-multibarHorizontal"),N=($.append("defs"),$.append("g"));P.select("g");N.append("g").attr("class","nv-groups"),P.attr("transform","translate("+c.left+","+c.top+")");var O=P.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e,t){return t});O.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),O.exit().watchTransition(k,"multibarhorizontal: exit groups").style("stroke-opacity",1e-6).style("fill-opacity",1e-6).remove(),O.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}).style("fill",function(e,t){return _(e,t)}).style("stroke",function(e,t){return _(e,t)}),O.watchTransition(k,"multibarhorizontal: groups").style("stroke-opacity",1).style("fill-opacity",.75);var R=O.selectAll("g.nv-bar").data(function(e){return e.values});R.exit().remove();var L=R.enter().append("g").attr("transform",function(e,n,i){return"translate("+l(A?e.y0:0)+","+(A?0:i*f.rangeBand()/t.length+f(g(e,n)))+")"});L.append("rect").attr("width",0).attr("height",f.rangeBand()/(A?1:t.length)),R.on("mouseover",function(e,t){d3.select(this).classed("hover",!0),I.elementMouseover({data:e,index:t,color:d3.select(this).style("fill")})}).on("mouseout",function(e,t){d3.select(this).classed("hover",!1),I.elementMouseout({data:e,index:t,color:d3.select(this).style("fill")})}).on("mouseout",function(e,t){I.elementMouseout({data:e,index:t,color:d3.select(this).style("fill")})}).on("mousemove",function(e,t){I.elementMousemove({data:e,index:t,color:d3.select(this).style("fill")})}).on("click",function(e,t){I.elementClick({data:e,index:t,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}).on("dblclick",function(e,t){I.elementDblClick({data:e,index:t,color:d3.select(this).style("fill")}),d3.event.stopPropagation()}),b(t[0],0)&&(L.append("polyline"),R.select("polyline").attr("fill","none").attr("points",function(e,n){var i=b(e,n),r=.8*f.rangeBand()/(2*(A?1:t.length));return[[(i=(i=i.length?i:[-Math.abs(i),Math.abs(i)]).map(function(e){return m(e)-m(0)}))[0],-r],[i[0],r],[i[0],0],[i[1],0],[i[1],-r],[i[1],r]].map(function(e){return e.join(",")}).join(" ")}).attr("transform",function(e,n){var i=f.rangeBand()/(2*(A?1:t.length));return"translate("+(v(e,n)<0?0:m(v(e,n))-m(0))+", "+i+")"})),L.append("text"),C&&!A?(R.select("text").attr("text-anchor",function(e,t){return v(e,t)<0?"end":"start"}).attr("y",f.rangeBand()/(2*t.length)).attr("dy",".32em").text(function(e,t){var n=T(v(e,t)),i=b(e,t);return void 0===i?n:i.length?n+"+"+T(Math.abs(i[1]))+"-"+T(Math.abs(i[0])):n+"±"+T(Math.abs(i))}),R.watchTransition(k,"multibarhorizontal: bars").select("text").attr("x",function(e,t){return v(e,t)<0?-4:m(v(e,t))-m(0)+4})):R.selectAll("text").text(""),x&&!A?(L.append("text").classed("nv-bar-label",!0),R.select("text.nv-bar-label").attr("text-anchor",function(e,t){return v(e,t)<0?"start":"end"}).attr("y",f.rangeBand()/(2*t.length)).attr("dy",".32em").text(function(e,t){return g(e,t)}),R.watchTransition(k,"multibarhorizontal: bars").select("text.nv-bar-label").attr("x",function(e,t){return v(e,t)<0?m(0)-m(v(e,t))+4:-4})):R.selectAll("text.nv-bar-label").text(""),R.attr("class",function(e,t){return v(e,t)<0?"nv-bar negative":"nv-bar positive"}),w&&(n||(n=t.map(function(){return!0})),R.style("fill",function(e,t,i){return d3.rgb(w(e,t)).darker(n.map(function(e,t){return t}).filter(function(e,t){return!n[t]})[i]).toString()}).style("stroke",function(e,t,i){return d3.rgb(w(e,t)).darker(n.map(function(e,t){return t}).filter(function(e,t){return!n[t]})[i]).toString()})),A?R.watchTransition(k,"multibarhorizontal: bars").attr("transform",function(e,t){return"translate("+m(e.y1)+","+f(g(e,t))+")"}).select("rect").attr("width",function(e,t){return Math.abs(m(v(e,t)+e.y0)-m(e.y0))}).attr("height",f.rangeBand()):R.watchTransition(k,"multibarhorizontal: bars").attr("transform",function(e,n){return"translate("+m(v(e,n)<0?v(e,n):0)+","+(e.series*f.rangeBand()/t.length+f(g(e,n)))+")"}).select("rect").attr("height",f.rangeBand()/t.length).attr("width",function(e,t){return Math.max(Math.abs(m(v(e,t))-m(0)),1)}),s=f.copy(),l=m.copy()}),k.renderEnd("multibarHorizontal immediate"),t}var n,i,r,o,a,s,l,c={top:0,right:0,bottom:0,left:0},u=960,d=500,h=Math.floor(1e4*Math.random()),p=null,f=d3.scale.ordinal(),m=d3.scale.linear(),g=function(e){return e.x},v=function(e){return e.y},b=function(e){return e.yErr},y=[0],_=e.utils.defaultColor(),w=null,A=!1,C=!1,x=!1,S=60,E=.1,T=d3.format(",.2f"),D=250,I=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),k=e.utils.renderWatch(I,D);return t.dispatch=I,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return u},set:function(e){u=e}},height:{get:function(){return d},set:function(e){d=e}},x:{get:function(){return g},set:function(e){g=e}},y:{get:function(){return v},set:function(e){v=e}},yErr:{get:function(){return b},set:function(e){b=e}},xScale:{get:function(){return f},set:function(e){f=e}},yScale:{get:function(){return m},set:function(e){m=e}},xDomain:{get:function(){return i},set:function(e){i=e}},yDomain:{get:function(){return r},set:function(e){r=e}},xRange:{get:function(){return o},set:function(e){o=e}},yRange:{get:function(){return a},set:function(e){a=e}},forceY:{get:function(){return y},set:function(e){y=e}},stacked:{get:function(){return A},set:function(e){A=e}},showValues:{get:function(){return C},set:function(e){C=e}},disabled:{get:function(){return n},set:function(e){n=e}},id:{get:function(){return h},set:function(e){h=e}},valueFormat:{get:function(){return T},set:function(e){T=e}},valuePadding:{get:function(){return S},set:function(e){S=e}},groupSpacing:{get:function(){return E},set:function(e){E=e}},margin:{get:function(){return c},set:function(e){c.top=void 0!==e.top?e.top:c.top,c.right=void 0!==e.right?e.right:c.right,c.bottom=void 0!==e.bottom?e.bottom:c.bottom,c.left=void 0!==e.left?e.left:c.left}},duration:{get:function(){return D},set:function(e){D=e,k.reset(D)}},color:{get:function(){return _},set:function(t){_=e.utils.getColor(t)}},barColor:{get:function(){return w},set:function(t){w=t?e.utils.getColor(t):null}}}),e.utils.initOptions(t),t},e.models.multiBarHorizontalChart=function(){"use strict";function t(c){return D.reset(),D.models(r),v&&D.models(o),b&&D.models(a),c.each(function(c){var A=d3.select(this);e.utils.initSVG(A);var D=e.utils.availableWidth(d,A,u),I=e.utils.availableHeight(h,A,u);if(t.update=function(){A.transition().duration(S).call(t)},t.container=this,y=r.stacked(),_.setter(T(c),t.update).getter(E(c)).update(),_.disabled=c.map(function(e){return!!e.disabled}),!w){var k;w={};for(k in _)_[k]instanceof Array?w[k]=_[k].slice(0):w[k]=_[k]}if(!(c&&c.length&&c.filter(function(e){return e.values.length}).length))return e.utils.noData(t,A),t;A.selectAll(".nv-noData").remove(),n=r.xScale(),i=r.yScale();var M=A.selectAll("g.nv-wrap.nv-multiBarHorizontalChart").data([c]),P=M.enter().append("g").attr("class","nvd3 nv-wrap nv-multiBarHorizontalChart").append("g"),$=M.select("g");if(P.append("g").attr("class","nv-x nv-axis"),P.append("g").attr("class","nv-y nv-axis").append("g").attr("class","nv-zeroLine").append("line"),P.append("g").attr("class","nv-barsWrap"),P.append("g").attr("class","nv-legendWrap"),P.append("g").attr("class","nv-controlsWrap"),g&&(s.width(D-x()),$.select(".nv-legendWrap").datum(c).call(s),u.top!=s.height()&&(u.top=s.height(),I=e.utils.availableHeight(h,A,u)),$.select(".nv-legendWrap").attr("transform","translate("+x()+","+-u.top+")")),f){var N=[{key:m.grouped||"Grouped",disabled:r.stacked()},{key:m.stacked||"Stacked",disabled:!r.stacked()}];l.width(x()).color(["#444","#444","#444"]),$.select(".nv-controlsWrap").datum(N).attr("transform","translate(0,"+-u.top+")").call(l)}M.attr("transform","translate("+u.left+","+u.top+")"),r.disabled(c.map(function(e){return e.disabled})).width(D).height(I).color(c.map(function(e,t){return e.color||p(e,t)}).filter(function(e,t){return!c[t].disabled})),$.select(".nv-barsWrap").datum(c.filter(function(e){return!e.disabled})).transition().call(r),v&&(o.scale(n)._ticks(e.utils.calcTicksY(I/24,c)).tickSize(-D,0),$.select(".nv-x.nv-axis").call(o),$.select(".nv-x.nv-axis").selectAll("g").selectAll("line, text")),b&&(a.scale(i)._ticks(e.utils.calcTicksX(D/100,c)).tickSize(-I,0),$.select(".nv-y.nv-axis").attr("transform","translate(0,"+I+")"),$.select(".nv-y.nv-axis").call(a)),$.select(".nv-zeroLine line").attr("x1",i(0)).attr("x2",i(0)).attr("y1",0).attr("y2",-I),s.dispatch.on("stateChange",function(e){for(var n in e)_[n]=e[n];C.stateChange(_),t.update()}),l.dispatch.on("legendClick",function(e,n){if(e.disabled){switch(N=N.map(function(e){return e.disabled=!0,e}),e.disabled=!1,e.key){case"Grouped":r.stacked(!1);break;case"Stacked":r.stacked(!0)}_.stacked=r.stacked(),C.stateChange(_),y=r.stacked(),t.update()}}),C.on("changeState",function(e){void 0!==e.disabled&&(c.forEach(function(t,n){t.disabled=e.disabled[n]}),_.disabled=e.disabled),void 0!==e.stacked&&(r.stacked(e.stacked),_.stacked=e.stacked,y=e.stacked),t.update()})}),D.renderEnd("multibar horizontal chart immediate"),t}var n,i,r=e.models.multiBarHorizontal(),o=e.models.axis(),a=e.models.axis(),s=e.models.legend().height(30),l=e.models.legend().height(30),c=e.models.tooltip(),u={top:30,right:20,bottom:50,left:60},d=null,h=null,p=e.utils.defaultColor(),f=!0,m={},g=!0,v=!0,b=!0,y=!1,_=e.utils.state(),w=null,A=null,C=d3.dispatch("stateChange","changeState","renderEnd"),x=function(){return f?180:0},S=250;_.stacked=!1,r.stacked(y),o.orient("left").tickPadding(5).showMaxMin(!1).tickFormat(function(e){return e}),a.orient("bottom").tickFormat(d3.format(",.1f")),c.duration(0).valueFormatter(function(e,t){return a.tickFormat()(e,t)}).headerFormatter(function(e,t){return o.tickFormat()(e,t)}),l.updateState(!1);var E=function(e){return function(){return{active:e.map(function(e){return!e.disabled}),stacked:y}}},T=function(e){return function(t){void 0!==t.stacked&&(y=t.stacked),void 0!==t.active&&e.forEach(function(e,n){e.disabled=!t.active[n]})}},D=e.utils.renderWatch(C,S);return r.dispatch.on("elementMouseover.tooltip",function(e){e.value=t.x()(e.data),e.series={key:e.data.key,value:t.y()(e.data),color:e.color},c.data(e).hidden(!1)}),r.dispatch.on("elementMouseout.tooltip",function(e){c.hidden(!0)}),r.dispatch.on("elementMousemove.tooltip",function(e){c.position({top:d3.event.pageY,left:d3.event.pageX})()}),t.dispatch=C,t.multibar=r,t.legend=s,t.controls=l,t.xAxis=o,t.yAxis=a,t.state=_,t.tooltip=c,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return d},set:function(e){d=e}},height:{get:function(){return h},set:function(e){h=e}},showLegend:{get:function(){return g},set:function(e){g=e}},showControls:{get:function(){return f},set:function(e){f=e}},controlLabels:{get:function(){return m},set:function(e){m=e}},showXAxis:{get:function(){return v},set:function(e){v=e}},showYAxis:{get:function(){return b},set:function(e){b=e}},defaultState:{get:function(){return w},set:function(e){w=e}},noData:{get:function(){return A},set:function(e){A=e}},tooltips:{get:function(){return c.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),c.enabled(!!t)}},tooltipContent:{get:function(){return c.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),c.contentGenerator(t)}},margin:{get:function(){return u},set:function(e){u.top=void 0!==e.top?e.top:u.top,u.right=void 0!==e.right?e.right:u.right,u.bottom=void 0!==e.bottom?e.bottom:u.bottom,u.left=void 0!==e.left?e.left:u.left}},duration:{get:function(){return S},set:function(e){S=e,D.reset(S),r.duration(S),o.duration(S),a.duration(S)}},color:{get:function(){return p},set:function(t){p=e.utils.getColor(t),s.color(p)}},barColor:{get:function(){return r.barColor},set:function(e){r.barColor(e),s.color(function(e,t){return d3.rgb("#ccc").darker(1.5*t).toString()})}}}),e.utils.inheritOptions(t,r),e.utils.initOptions(t),t},e.models.multiChart=function(){"use strict";function t(c){return c.each(function(c){function u(e){var t=2===c[e.seriesIndex].yAxis?S:x;e.value=e.point.x,e.series={value:e.point.y,color:e.point.color},T.duration(100).valueFormatter(function(e,n){return t.tickFormat()(e,n)}).data(e).position(e.pos).hidden(!1)}function d(e){var t=2===c[e.seriesIndex].yAxis?S:x;e.point.x=w.x()(e.point),e.point.y=w.y()(e.point),T.duration(100).valueFormatter(function(e,n){return t.tickFormat()(e,n)}).data(e).position(e.pos).hidden(!1)}function p(e){var t=2===c[e.data.series].yAxis?S:x;e.value=y.x()(e.data),e.series={value:y.y()(e.data),color:e.color},T.duration(0).valueFormatter(function(e,n){return t.tickFormat()(e,n)}).data(e).hidden(!1)}var D=d3.select(this);e.utils.initSVG(D),t.update=function(){D.transition().call(t)},t.container=this;var I=e.utils.availableWidth(a,D,r),k=e.utils.availableHeight(s,D,r),M=c.filter(function(e){return"line"==e.type&&1==e.yAxis}),P=c.filter(function(e){return"line"==e.type&&2==e.yAxis}),$=c.filter(function(e){return"bar"==e.type&&1==e.yAxis}),N=c.filter(function(e){return"bar"==e.type&&2==e.yAxis}),O=c.filter(function(e){return"area"==e.type&&1==e.yAxis}),R=c.filter(function(e){return"area"==e.type&&2==e.yAxis});if(!(c&&c.length&&c.filter(function(e){return e.values.length}).length))return e.utils.noData(t,D),t;D.selectAll(".nv-noData").remove();var L=c.filter(function(e){return!e.disabled&&1==e.yAxis}).map(function(e){return e.values.map(function(e,t){return{x:e.x,y:e.y}})}),G=c.filter(function(e){return!e.disabled&&2==e.yAxis}).map(function(e){return e.values.map(function(e,t){return{x:e.x,y:e.y}})});f.domain(d3.extent(d3.merge(L.concat(G)),function(e){return e.x})).range([0,I]);var B=D.selectAll("g.wrap.multiChart").data([c]),F=B.enter().append("g").attr("class","wrap nvd3 multiChart").append("g");F.append("g").attr("class","nv-x nv-axis"),F.append("g").attr("class","nv-y1 nv-axis"),F.append("g").attr("class","nv-y2 nv-axis"),F.append("g").attr("class","lines1Wrap"),F.append("g").attr("class","lines2Wrap"),F.append("g").attr("class","bars1Wrap"),F.append("g").attr("class","bars2Wrap"),F.append("g").attr("class","stack1Wrap"),F.append("g").attr("class","stack2Wrap"),F.append("g").attr("class","legendWrap");var H=B.select("g"),U=c.map(function(e,t){return c[t].color||o(e,t)});if(l){var j=E.align()?I/2:I,W=E.align()?j:0;E.width(j),E.color(U),H.select(".legendWrap").datum(c.map(function(e){return e.originalKey=void 0===e.originalKey?e.key:e.originalKey,e.key=e.originalKey+(1==e.yAxis?"":" (right axis)"),e})).call(E),r.top!=E.height()&&(r.top=E.height(),k=e.utils.availableHeight(s,D,r)),H.select(".legendWrap").attr("transform","translate("+W+","+-r.top+")")}v.width(I).height(k).interpolate(h).color(U.filter(function(e,t){return!c[t].disabled&&1==c[t].yAxis&&"line"==c[t].type})),b.width(I).height(k).interpolate(h).color(U.filter(function(e,t){return!c[t].disabled&&2==c[t].yAxis&&"line"==c[t].type})),y.width(I).height(k).color(U.filter(function(e,t){return!c[t].disabled&&1==c[t].yAxis&&"bar"==c[t].type})),_.width(I).height(k).color(U.filter(function(e,t){return!c[t].disabled&&2==c[t].yAxis&&"bar"==c[t].type})),w.width(I).height(k).color(U.filter(function(e,t){return!c[t].disabled&&1==c[t].yAxis&&"area"==c[t].type})),A.width(I).height(k).color(U.filter(function(e,t){return!c[t].disabled&&2==c[t].yAxis&&"area"==c[t].type})),H.attr("transform","translate("+r.left+","+r.top+")");var z=H.select(".lines1Wrap").datum(M.filter(function(e){return!e.disabled})),q=H.select(".bars1Wrap").datum($.filter(function(e){return!e.disabled})),V=H.select(".stack1Wrap").datum(O.filter(function(e){return!e.disabled})),Y=H.select(".lines2Wrap").datum(P.filter(function(e){return!e.disabled})),K=H.select(".bars2Wrap").datum(N.filter(function(e){return!e.disabled})),Q=H.select(".stack2Wrap").datum(R.filter(function(e){return!e.disabled})),X=O.length?O.map(function(e){return e.values}).reduce(function(e,t){return e.map(function(e,n){return{x:e.x,y:e.y+t[n].y}})}).concat([{x:0,y:0}]):[],Z=R.length?R.map(function(e){return e.values}).reduce(function(e,t){return e.map(function(e,n){return{x:e.x,y:e.y+t[n].y}})}).concat([{x:0,y:0}]):[];m.domain(n||d3.extent(d3.merge(L).concat(X),function(e){return e.y})).range([0,k]),g.domain(i||d3.extent(d3.merge(G).concat(Z),function(e){return e.y})).range([0,k]),v.yDomain(m.domain()),y.yDomain(m.domain()),w.yDomain(m.domain()),b.yDomain(g.domain()),_.yDomain(g.domain()),A.yDomain(g.domain()),O.length&&d3.transition(V).call(w),R.length&&d3.transition(Q).call(A),$.length&&d3.transition(q).call(y),N.length&&d3.transition(K).call(_),M.length&&d3.transition(z).call(v),P.length&&d3.transition(Y).call(b),C._ticks(e.utils.calcTicksX(I/100,c)).tickSize(-k,0),H.select(".nv-x.nv-axis").attr("transform","translate(0,"+k+")"),d3.transition(H.select(".nv-x.nv-axis")).call(C),x._ticks(e.utils.calcTicksY(k/36,c)).tickSize(-I,0),d3.transition(H.select(".nv-y1.nv-axis")).call(x),S._ticks(e.utils.calcTicksY(k/36,c)).tickSize(-I,0),d3.transition(H.select(".nv-y2.nv-axis")).call(S),H.select(".nv-y1.nv-axis").classed("nv-disabled",!L.length).attr("transform","translate("+f.range()[0]+",0)"),H.select(".nv-y2.nv-axis").classed("nv-disabled",!G.length).attr("transform","translate("+f.range()[1]+",0)"),E.dispatch.on("stateChange",function(e){t.update()}),v.dispatch.on("elementMouseover.tooltip",u),b.dispatch.on("elementMouseover.tooltip",u),v.dispatch.on("elementMouseout.tooltip",function(e){T.hidden(!0)}),b.dispatch.on("elementMouseout.tooltip",function(e){T.hidden(!0)}),w.dispatch.on("elementMouseover.tooltip",d),A.dispatch.on("elementMouseover.tooltip",d),w.dispatch.on("elementMouseout.tooltip",function(e){T.hidden(!0)}),A.dispatch.on("elementMouseout.tooltip",function(e){T.hidden(!0)}),y.dispatch.on("elementMouseover.tooltip",p),_.dispatch.on("elementMouseover.tooltip",p),y.dispatch.on("elementMouseout.tooltip",function(e){T.hidden(!0)}),_.dispatch.on("elementMouseout.tooltip",function(e){T.hidden(!0)}),y.dispatch.on("elementMousemove.tooltip",function(e){T.position({top:d3.event.pageY,left:d3.event.pageX})()}),_.dispatch.on("elementMousemove.tooltip",function(e){T.position({top:d3.event.pageY,left:d3.event.pageX})()})}),t}var n,i,r={top:30,right:20,bottom:50,left:60},o=e.utils.defaultColor(),a=null,s=null,l=!0,c=null,u=function(e){return e.x},d=function(e){return e.y},h="monotone",p=!0,f=d3.scale.linear(),m=d3.scale.linear(),g=d3.scale.linear(),v=e.models.line().yScale(m),b=e.models.line().yScale(g),y=e.models.multiBar().stacked(!1).yScale(m),_=e.models.multiBar().stacked(!1).yScale(g),w=e.models.stackedArea().yScale(m),A=e.models.stackedArea().yScale(g),C=e.models.axis().scale(f).orient("bottom").tickPadding(5),x=e.models.axis().scale(m).orient("left"),S=e.models.axis().scale(g).orient("right"),E=e.models.legend().height(30),T=e.models.tooltip(),D=d3.dispatch();return t.dispatch=D,t.lines1=v,t.lines2=b,t.bars1=y,t.bars2=_,t.stack1=w,t.stack2=A,t.xAxis=C,t.yAxis1=x,t.yAxis2=S,t.tooltip=T,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return a},set:function(e){a=e}},height:{get:function(){return s},set:function(e){s=e}},showLegend:{get:function(){return l},set:function(e){l=e}},yDomain1:{get:function(){return n},set:function(e){n=e}},yDomain2:{get:function(){return i},set:function(e){i=e}},noData:{get:function(){return c},set:function(e){c=e}},interpolate:{get:function(){return h},set:function(e){h=e}},tooltips:{get:function(){return T.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),T.enabled(!!t)}},tooltipContent:{get:function(){return T.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),T.contentGenerator(t)}},margin:{get:function(){return r},set:function(e){r.top=void 0!==e.top?e.top:r.top,r.right=void 0!==e.right?e.right:r.right,r.bottom=void 0!==e.bottom?e.bottom:r.bottom,r.left=void 0!==e.left?e.left:r.left}},color:{get:function(){return o},set:function(t){o=e.utils.getColor(t)}},x:{get:function(){return u},set:function(e){u=e,v.x(e),b.x(e),y.x(e),_.x(e),w.x(e),A.x(e)}},y:{get:function(){return d},set:function(e){d=e,v.y(e),b.y(e),w.y(e),A.y(e),y.y(e),_.y(e)}},useVoronoi:{get:function(){return p},set:function(e){p=e,v.useVoronoi(e),b.useVoronoi(e),w.useVoronoi(e),A.useVoronoi(e)}}}),e.utils.initOptions(t),t},e.models.ohlcBar=function(){"use strict";function t(x){return x.each(function(t){u=d3.select(this);var x=e.utils.availableWidth(s,u,a),E=e.utils.availableHeight(l,u,a);e.utils.initSVG(u);var T=x/t[0].values.length*.9;d.domain(n||d3.extent(t[0].values.map(p).concat(y))),w?d.range(r||[.5*x/t[0].values.length,x*(t[0].values.length-.5)/t[0].values.length]):d.range(r||[5+T/2,x-T/2-5]),h.domain(i||[d3.min(t[0].values.map(b).concat(_)),d3.max(t[0].values.map(v).concat(_))]).range(o||[E,0]),d.domain()[0]===d.domain()[1]&&(d.domain()[0]?d.domain([d.domain()[0]-.01*d.domain()[0],d.domain()[1]+.01*d.domain()[1]]):d.domain([-1,1])),h.domain()[0]===h.domain()[1]&&(h.domain()[0]?h.domain([h.domain()[0]+.01*h.domain()[0],h.domain()[1]-.01*h.domain()[1]]):h.domain([-1,1]));var D=d3.select(this).selectAll("g.nv-wrap.nv-ohlcBar").data([t[0].values]),I=D.enter().append("g").attr("class","nvd3 nv-wrap nv-ohlcBar"),k=I.append("defs"),M=I.append("g"),P=D.select("g");M.append("g").attr("class","nv-ticks"),D.attr("transform","translate("+a.left+","+a.top+")"),u.on("click",function(e,t){S.chartClick({data:e,index:t,pos:d3.event,id:c})}),k.append("clipPath").attr("id","nv-chart-clip-path-"+c).append("rect"),D.select("#nv-chart-clip-path-"+c+" rect").attr("width",x).attr("height",E),P.attr("clip-path",A?"url(#nv-chart-clip-path-"+c+")":"");var $=D.select(".nv-ticks").selectAll(".nv-tick").data(function(e){return e});$.exit().remove(),$.enter().append("path").attr("class",function(e,t,n){return(m(e,t)>g(e,t)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+n+"-"+t}).attr("d",function(e,t){return"m0,0l0,"+(h(m(e,t))-h(v(e,t)))+"l"+-T/2+",0l"+T/2+",0l0,"+(h(b(e,t))-h(m(e,t)))+"l0,"+(h(g(e,t))-h(b(e,t)))+"l"+T/2+",0l"+-T/2+",0z"}).attr("transform",function(e,t){return"translate("+d(p(e,t))+","+h(v(e,t))+")"}).attr("fill",function(e,t){return C[0]}).attr("stroke",function(e,t){return C[0]}).attr("x",0).attr("y",function(e,t){return h(Math.max(0,f(e,t)))}).attr("height",function(e,t){return Math.abs(h(f(e,t))-h(0))}),$.attr("class",function(e,t,n){return(m(e,t)>g(e,t)?"nv-tick negative":"nv-tick positive")+" nv-tick-"+n+"-"+t}),d3.transition($).attr("transform",function(e,t){return"translate("+d(p(e,t))+","+h(v(e,t))+")"}).attr("d",function(e,n){var i=x/t[0].values.length*.9;return"m0,0l0,"+(h(m(e,n))-h(v(e,n)))+"l"+-i/2+",0l"+i/2+",0l0,"+(h(b(e,n))-h(m(e,n)))+"l0,"+(h(g(e,n))-h(b(e,n)))+"l"+i/2+",0l"+-i/2+",0z"})}),t}var n,i,r,o,a={top:0,right:0,bottom:0,left:0},s=null,l=null,c=Math.floor(1e4*Math.random()),u=null,d=d3.scale.linear(),h=d3.scale.linear(),p=function(e){return e.x},f=function(e){return e.y},m=function(e){return e.open},g=function(e){return e.close},v=function(e){return e.high},b=function(e){return e.low},y=[],_=[],w=!1,A=!0,C=e.utils.defaultColor(),x=!1,S=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd","chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove");return t.highlightPoint=function(e,n){t.clearHighlights(),u.select(".nv-ohlcBar .nv-tick-0-"+e).classed("hover",n)},t.clearHighlights=function(){u.select(".nv-ohlcBar .nv-tick.hover").classed("hover",!1)},t.dispatch=S,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return s},set:function(e){s=e}},height:{get:function(){return l},set:function(e){l=e}},xScale:{get:function(){return d},set:function(e){d=e}},yScale:{get:function(){return h},set:function(e){h=e}},xDomain:{get:function(){return n},set:function(e){n=e}},yDomain:{get:function(){return i},set:function(e){i=e}},xRange:{get:function(){return r},set:function(e){r=e}},yRange:{get:function(){return o},set:function(e){o=e}},forceX:{get:function(){return y},set:function(e){y=e}},forceY:{get:function(){return _},set:function(e){_=e}},padData:{get:function(){return w},set:function(e){w=e}},clipEdge:{get:function(){return A},set:function(e){A=e}},id:{get:function(){return c},set:function(e){c=e}},interactive:{get:function(){return x},set:function(e){x=e}},x:{get:function(){return p},set:function(e){p=e}},y:{get:function(){return f},set:function(e){f=e}},open:{get:function(){return m()},set:function(e){m=e}},close:{get:function(){return g()},set:function(e){g=e}},high:{get:function(){return v},set:function(e){v=e}},low:{get:function(){return b},set:function(e){b=e}},margin:{get:function(){return a},set:function(e){a.top=void 0!=e.top?e.top:a.top,a.right=void 0!=e.right?e.right:a.right,a.bottom=void 0!=e.bottom?e.bottom:a.bottom,a.left=void 0!=e.left?e.left:a.left}},color:{get:function(){return C},set:function(t){C=e.utils.getColor(t)}}}),e.utils.initOptions(t),t},e.models.parallelCoordinates=function(){"use strict";function t(m){return m.each(function(t){function m(e){return k(s.map(function(t){if(isNaN(e[t])||isNaN(parseFloat(e[t]))){var n=a[t].domain(),i=a[t].range(),r=n[0]-(n[1]-n[0])/9;if(N.indexOf(t)<0){var s=d3.scale.linear().domain([r,n[1]]).range([C-12,i[1]]);a[t].brush.y(s),N.push(t)}return[o(t),a[t](r)]}return N.length>0?(D.style("display","inline"),I.style("display","inline")):(D.style("display","none"),I.style("display","none")),[o(t),a[t](e[t])]}))}function g(){var e=s.filter(function(e){return!a[e].brush.empty()}),t=e.map(function(e){return a[e].brush.extent()});u=[],e.forEach(function(e,n){u[n]={dimension:e,extent:t[n]}}),d=[],L.style("display",function(n){var i=e.every(function(e,i){return!(!isNaN(n[e])||t[i][0]!=a[e].brush.y().domain()[0])||t[i][0]<=n[e]&&n[e]<=t[i][1]});return i&&d.push(n),i?null:"none"}),f.brush({filters:u,active:d})}function v(e,t){h[e]=this.parentNode.__origin__=o(e),R.attr("visibility","hidden")}function b(e,t){h[e]=Math.min(A,Math.max(0,this.parentNode.__origin__+=d3.event.x)),L.attr("d",m),s.sort(function(e,t){return _(e)-_(t)}),o.domain(s),G.attr("transform",function(e){return"translate("+_(e)+")"})}function y(e,t){delete this.parentNode.__origin__,delete h[e],d3.select(this.parentNode).attr("transform","translate("+o(e)+")"),L.attr("d",m),R.attr("d",m).attr("visibility",null)}function _(e){var t=h[e];return null==t?o(e):t}var w=d3.select(this),A=e.utils.availableWidth(i,w,n),C=e.utils.availableHeight(r,w,n);e.utils.initSVG(w),d=t,o.rangePoints([0,A],1).domain(s);var x={};s.forEach(function(e){var n=d3.extent(t,function(t){return+t[e]});return x[e]=!1,void 0===n[0]&&(x[e]=!0,n[0]=0,n[1]=0),n[0]===n[1]&&(n[0]=n[0]-1,n[1]=n[1]+1),a[e]=d3.scale.linear().domain(n).range([.9*(C-12),0]),a[e].brush=d3.svg.brush().y(a[e]).on("brush",g),"name"!=e});var S=w.selectAll("g.nv-wrap.nv-parallelCoordinates").data([t]),E=S.enter().append("g").attr("class","nvd3 nv-wrap nv-parallelCoordinates").append("g"),T=S.select("g");E.append("g").attr("class","nv-parallelCoordinates background"),E.append("g").attr("class","nv-parallelCoordinates foreground"),E.append("g").attr("class","nv-parallelCoordinates missingValuesline"),S.attr("transform","translate("+n.left+","+n.top+")");var D,I,k=d3.svg.line().interpolate("cardinal").tension(p),M=d3.svg.axis().orient("left"),P=d3.behavior.drag().on("dragstart",v).on("drag",b).on("dragend",y),$=o.range()[1]-o.range()[0],N=[],O=[0+$/2,C-12,A-$/2,C-12];(D=S.select(".missingValuesline").selectAll("line").data([O])).enter().append("line"),D.exit().remove(),D.attr("x1",function(e){return e[0]}).attr("y1",function(e){return e[1]}).attr("x2",function(e){return e[2]}).attr("y2",function(e){return e[3]}),(I=S.select(".missingValuesline").selectAll("text").data(["undefined values"])).append("text").data(["undefined values"]),I.enter().append("text"),I.exit().remove(),I.attr("y",C).attr("x",A-92-$/2).text(function(e){return e});var R=S.select(".background").selectAll("path").data(t);R.enter().append("path"),R.exit().remove(),R.attr("d",m);var L=S.select(".foreground").selectAll("path").data(t);L.enter().append("path"),L.exit().remove(),L.attr("d",m).attr("stroke",c),L.on("mouseover",function(e,t){d3.select(this).classed("hover",!0),f.elementMouseover({label:e.name,data:e.data,index:t,pos:[d3.mouse(this.parentNode)[0],d3.mouse(this.parentNode)[1]]})}),L.on("mouseout",function(e,t){d3.select(this).classed("hover",!1),f.elementMouseout({label:e.name,data:e.data,index:t})});var G=T.selectAll(".dimension").data(s),B=G.enter().append("g").attr("class","nv-parallelCoordinates dimension");B.append("g").attr("class","nv-parallelCoordinates nv-axis"),B.append("g").attr("class","nv-parallelCoordinates-brush"),B.append("text").attr("class","nv-parallelCoordinates nv-label"),G.attr("transform",function(e){return"translate("+o(e)+",0)"}),G.exit().remove(),G.select(".nv-label").style("cursor","move").attr("dy","-1em").attr("text-anchor","middle").text(String).on("mouseover",function(e,t){f.elementMouseover({dim:e,pos:[d3.mouse(this.parentNode.parentNode)[0],d3.mouse(this.parentNode.parentNode)[1]]})}).on("mouseout",function(e,t){f.elementMouseout({dim:e})}).call(P),G.select(".nv-axis").each(function(e,t){d3.select(this).call(M.scale(a[e]).tickFormat(d3.format(l[t])))}),G.select(".nv-parallelCoordinates-brush").each(function(e){d3.select(this).call(a[e].brush)}).selectAll("rect").attr("x",-8).attr("width",16)}),t}var n={top:30,right:0,bottom:10,left:0},i=null,r=null,o=d3.scale.ordinal(),a={},s=[],l=[],c=e.utils.defaultColor(),u=[],d=[],h=[],p=1,f=d3.dispatch("brush","elementMouseover","elementMouseout");return t.dispatch=f,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return i},set:function(e){i=e}},height:{get:function(){return r},set:function(e){r=e}},dimensionNames:{get:function(){return s},set:function(e){s=e}},dimensionFormats:{get:function(){return l},set:function(e){l=e}},lineTension:{get:function(){return p},set:function(e){p=e}},dimensions:{get:function(){return s},set:function(t){e.deprecated("dimensions","use dimensionNames instead"),s=t}},margin:{get:function(){return n},set:function(e){n.top=void 0!==e.top?e.top:n.top,n.right=void 0!==e.right?e.right:n.right,n.bottom=void 0!==e.bottom?e.bottom:n.bottom,n.left=void 0!==e.left?e.left:n.left}},color:{get:function(){return c},set:function(t){c=e.utils.getColor(t)}}}),e.utils.initOptions(t),t},e.models.pie=function(){"use strict";function t(k){return I.reset(),k.each(function(t){function k(e,t){e.endAngle=isNaN(e.endAngle)?0:e.endAngle,e.startAngle=isNaN(e.startAngle)?0:e.startAngle,m||(e.innerRadius=0);var n=d3.interpolate(this._current,e);return this._current=n(0),function(e){return T[t](n(e))}}var M=i-n.left-n.right,P=r-n.top-n.bottom,$=Math.min(M,P)/2,N=[],O=[];if(l=d3.select(this),0===S.length)for(var R=$-$/5,L=x*$,G=0;G<t[0].length;G++)N.push(R),O.push(L);else N=S.map(function(e){return(e.outer-e.outer/5)*$}),O=S.map(function(e){return(e.inner-e.inner/5)*$}),x=d3.min(S.map(function(e){return e.inner-e.inner/5}));e.utils.initSVG(l);var B=l.selectAll(".nv-wrap.nv-pie").data(t),F=B.enter().append("g").attr("class","nvd3 nv-wrap nv-pie nv-chart-"+s).append("g"),H=B.select("g"),U=F.append("g").attr("class","nv-pie");F.append("g").attr("class","nv-pieLabels"),B.attr("transform","translate("+n.left+","+n.top+")"),H.select(".nv-pie").attr("transform","translate("+M/2+","+P/2+")"),H.select(".nv-pieLabels").attr("transform","translate("+M/2+","+P/2+")"),l.on("click",function(e,t){E.chartClick({data:e,index:t,pos:d3.event,id:s})}),T=[],D=[];for(G=0;G<t[0].length;G++){var j=d3.svg.arc().outerRadius(N[G]),W=d3.svg.arc().outerRadius(N[G]+5);!1!==_&&(j.startAngle(_),W.startAngle(_)),!1!==A&&(j.endAngle(A),W.endAngle(A)),m&&(j.innerRadius(O[G]),W.innerRadius(O[G])),j.cornerRadius&&C&&(j.cornerRadius(C),W.cornerRadius(C)),T.push(j),D.push(W)}var z=d3.layout.pie().sort(null).value(function(e){return e.disabled?0:a(e)});z.padAngle&&w&&z.padAngle(w),m&&g&&(U.append("text").attr("class","nv-pie-title"),B.select(".nv-pie-title").style("text-anchor","middle").text(function(e){return g}).style("font-size",Math.min(M,P)*x*2/(g.length+2)+"px").attr("dy","0.35em").attr("transform",function(e,t){return"translate(0, "+b+")"}));var q=B.select(".nv-pie").selectAll(".nv-slice").data(z),V=B.select(".nv-pieLabels").selectAll(".nv-label").data(z);q.exit().remove(),V.exit().remove();var Y=q.enter().append("g");Y.attr("class","nv-slice"),Y.on("mouseover",function(e,t){d3.select(this).classed("hover",!0),v&&d3.select(this).select("path").transition().duration(70).attr("d",D[t]),E.elementMouseover({data:e.data,index:t,color:d3.select(this).style("fill")})}),Y.on("mouseout",function(e,t){d3.select(this).classed("hover",!1),v&&d3.select(this).select("path").transition().duration(50).attr("d",T[t]),E.elementMouseout({data:e.data,index:t})}),Y.on("mousemove",function(e,t){E.elementMousemove({data:e.data,index:t})}),Y.on("click",function(e,t){E.elementClick({data:e.data,index:t,color:d3.select(this).style("fill")})}),Y.on("dblclick",function(e,t){E.elementDblClick({data:e.data,index:t,color:d3.select(this).style("fill")})}),q.attr("fill",function(e,t){return c(e.data,t)}),q.attr("stroke",function(e,t){return c(e.data,t)});Y.append("path").each(function(e){this._current=e});if(q.select("path").transition().attr("d",function(e,t){return T[t](e)}).attrTween("d",k),d){for(var K=[],G=0;G<t[0].length;G++)K.push(T[G]),h?m&&(K[G]=d3.svg.arc().outerRadius(T[G].outerRadius()),!1!==_&&K[G].startAngle(_),!1!==A&&K[G].endAngle(A)):m||K[G].innerRadius(0);V.enter().append("g").classed("nv-label",!0).each(function(e,t){var n=d3.select(this);n.attr("transform",function(e,t){if(y){e.outerRadius=N[t]+10,e.innerRadius=N[t]+15;var n=(e.startAngle+e.endAngle)/2*(180/Math.PI);return(e.startAngle+e.endAngle)/2<Math.PI?n-=90:n+=90,"translate("+K[t].centroid(e)+") rotate("+n+")"}return e.outerRadius=$+10,e.innerRadius=$+15,"translate("+K[t].centroid(e)+")"}),n.append("rect").style("stroke","#fff").style("fill","#fff").attr("rx",3).attr("ry",3),n.append("text").style("text-anchor",y?(e.startAngle+e.endAngle)/2<Math.PI?"start":"end":"middle").style("fill","#000")});var Q={},X=function(e){return 140*Math.floor(e[0]/140)+","+14*Math.floor(e[1]/14)};V.watchTransition(I,"pie labels").attr("transform",function(e,t){if(y){e.outerRadius=N[t]+10,e.innerRadius=N[t]+15;var n=(e.startAngle+e.endAngle)/2*(180/Math.PI);return(e.startAngle+e.endAngle)/2<Math.PI?n-=90:n+=90,"translate("+K[t].centroid(e)+") rotate("+n+")"}e.outerRadius=$+10,e.innerRadius=$+15;var i=K[t].centroid(e);if(e.value){var r=X(i);Q[r]&&(i[1]-=14),Q[X(i)]=!0}return"translate("+i+")"}),V.select(".nv-label text").style("text-anchor",function(e,t){return y?(e.startAngle+e.endAngle)/2<Math.PI?"start":"end":"middle"}).text(function(e,t){var n=(e.endAngle-e.startAngle)/(2*Math.PI),i="";if(!e.value||n<f)return"";if("function"==typeof p)i=p(e,t,{key:o(e.data),value:a(e.data),percent:u(n)});else switch(p){case"key":i=o(e.data);break;case"value":i=u(a(e.data));break;case"percent":i=d3.format("%")(n)}return i})}}),I.renderEnd("pie immediate"),t}var n={top:0,right:0,bottom:0,left:0},i=500,r=500,o=function(e){return e.x},a=function(e){return e.y},s=Math.floor(1e4*Math.random()),l=null,c=e.utils.defaultColor(),u=d3.format(",.2f"),d=!0,h=!1,p="key",f=.02,m=!1,g=!1,v=!0,b=0,y=!1,_=!1,w=!1,A=!1,C=0,x=.5,S=[],E=d3.dispatch("chartClick","elementClick","elementDblClick","elementMouseover","elementMouseout","elementMousemove","renderEnd"),T=[],D=[],I=e.utils.renderWatch(E);return t.dispatch=E,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{arcsRadius:{get:function(){return S},set:function(e){S=e}},width:{get:function(){return i},set:function(e){i=e}},height:{get:function(){return r},set:function(e){r=e}},showLabels:{get:function(){return d},set:function(e){d=e}},title:{get:function(){return g},set:function(e){g=e}},titleOffset:{get:function(){return b},set:function(e){b=e}},labelThreshold:{get:function(){return f},set:function(e){f=e}},valueFormat:{get:function(){return u},set:function(e){u=e}},x:{get:function(){return o},set:function(e){o=e}},id:{get:function(){return s},set:function(e){s=e}},endAngle:{get:function(){return A},set:function(e){A=e}},startAngle:{get:function(){return _},set:function(e){_=e}},padAngle:{get:function(){return w},set:function(e){w=e}},cornerRadius:{get:function(){return C},set:function(e){C=e}},donutRatio:{get:function(){return x},set:function(e){x=e}},labelsOutside:{get:function(){return h},set:function(e){h=e}},labelSunbeamLayout:{get:function(){return y},set:function(e){y=e}},donut:{get:function(){return m},set:function(e){m=e}},growOnHover:{get:function(){return v},set:function(e){v=e}},pieLabelsOutside:{get:function(){return h},set:function(t){h=t,e.deprecated("pieLabelsOutside","use labelsOutside instead")}},donutLabelsOutside:{get:function(){return h},set:function(t){h=t,e.deprecated("donutLabelsOutside","use labelsOutside instead")}},labelFormat:{get:function(){return u},set:function(t){u=t,e.deprecated("labelFormat","use valueFormat instead")}},margin:{get:function(){return n},set:function(e){n.top=void 0!==e.top?e.top:n.top,n.right=void 0!==e.right?e.right:n.right,n.bottom=void 0!==e.bottom?e.bottom:n.bottom,n.left=void 0!==e.left?e.left:n.left}},y:{get:function(){return a},set:function(e){a=d3.functor(e)}},color:{get:function(){return c},set:function(t){c=e.utils.getColor(t)}},labelType:{get:function(){return p},set:function(e){p=e||"key"}}}),e.utils.initOptions(t),t},e.models.pieChart=function(){"use strict";function t(r){return g.reset(),g.models(n),r.each(function(r){var u=d3.select(this);e.utils.initSVG(u);var p=e.utils.availableWidth(a,u,o),f=e.utils.availableHeight(s,u,o);if(t.update=function(){u.transition().call(t)},t.container=this,d.setter(b(r),t.update).getter(v(r)).update(),d.disabled=r.map(function(e){return!!e.disabled}),!h){var g;h={};for(g in d)d[g]instanceof Array?h[g]=d[g].slice(0):h[g]=d[g]}if(!r||!r.length)return e.utils.noData(t,u),t;u.selectAll(".nv-noData").remove();var y=u.selectAll("g.nv-wrap.nv-pieChart").data([r]),_=y.enter().append("g").attr("class","nvd3 nv-wrap nv-pieChart").append("g"),w=y.select("g");if(_.append("g").attr("class","nv-pieWrap"),_.append("g").attr("class","nv-legendWrap"),l)if("top"===c)i.width(p).key(n.x()),y.select(".nv-legendWrap").datum(r).call(i),o.top!=i.height()&&(o.top=i.height(),f=e.utils.availableHeight(s,u,o)),y.select(".nv-legendWrap").attr("transform","translate(0,"+-o.top+")");else if("right"===c){var A=e.models.legend().width();p/2<A&&(A=p/2),i.height(f).key(n.x()),i.width(A),p-=i.width(),y.select(".nv-legendWrap").datum(r).call(i).attr("transform","translate("+p+",0)")}y.attr("transform","translate("+o.left+","+o.top+")"),n.width(p).height(f);var C=w.select(".nv-pieWrap").datum([r]);d3.transition(C).call(n),i.dispatch.on("stateChange",function(e){for(var n in e)d[n]=e[n];m.stateChange(d),t.update()}),m.on("changeState",function(e){void 0!==e.disabled&&(r.forEach(function(t,n){t.disabled=e.disabled[n]}),d.disabled=e.disabled),t.update()})}),g.renderEnd("pieChart immediate"),t}var n=e.models.pie(),i=e.models.legend(),r=e.models.tooltip(),o={top:30,right:20,bottom:20,left:20},a=null,s=null,l=!0,c="top",u=e.utils.defaultColor(),d=e.utils.state(),h=null,p=null,f=250,m=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd");r.headerEnabled(!1).duration(0).valueFormatter(function(e,t){return n.valueFormat()(e,t)});var g=e.utils.renderWatch(m),v=function(e){return function(){return{active:e.map(function(e){return!e.disabled})}}},b=function(e){return function(t){void 0!==t.active&&e.forEach(function(e,n){e.disabled=!t.active[n]})}};return n.dispatch.on("elementMouseover.tooltip",function(e){e.series={key:t.x()(e.data),value:t.y()(e.data),color:e.color},r.data(e).hidden(!1)}),n.dispatch.on("elementMouseout.tooltip",function(e){r.hidden(!0)}),n.dispatch.on("elementMousemove.tooltip",function(e){r.position({top:d3.event.pageY,left:d3.event.pageX})()}),t.legend=i,t.dispatch=m,t.pie=n,t.tooltip=r,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{noData:{get:function(){return p},set:function(e){p=e}},showLegend:{get:function(){return l},set:function(e){l=e}},legendPosition:{get:function(){return c},set:function(e){c=e}},defaultState:{get:function(){return h},set:function(e){h=e}},tooltips:{get:function(){return r.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),r.enabled(!!t)}},tooltipContent:{get:function(){return r.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),r.contentGenerator(t)}},color:{get:function(){return u},set:function(e){u=e,i.color(u),n.color(u)}},duration:{get:function(){return f},set:function(e){f=e,g.reset(f)}},margin:{get:function(){return o},set:function(e){o.top=void 0!==e.top?e.top:o.top,o.right=void 0!==e.right?e.right:o.right,o.bottom=void 0!==e.bottom?e.bottom:o.bottom,o.left=void 0!==e.left?e.left:o.left}}}),e.utils.inheritOptions(t,n),e.utils.initOptions(t),t},e.models.scatter=function(){"use strict";function t(B){return H.reset(),B.each(function(t){function B(){if(F=!1,!A)return!1;if(!0===G){var e=d3.merge(t.map(function(e,t){return e.values.map(function(e,n){var i=m(e,n),r=g(e,n);return[h(i)+1e-4*Math.random(),p(r)+1e-4*Math.random(),t,n,e]}).filter(function(e,t){return C(e[4],t)})}));if(0==e.length)return!1;e.length<3&&(e.push([h.range()[0]-20,p.range()[0]-20,null,null]),e.push([h.range()[1]+20,p.range()[1]+20,null,null]),e.push([h.range()[0]-20,p.range()[0]+20,null,null]),e.push([h.range()[1]+20,p.range()[1]-20,null,null]));var n=d3.geom.polygon([[-10,-10],[-10,l+10],[s+10,l+10],[s+10,-10]]),i=d3.geom.voronoi(e).map(function(t,i){return{data:n.clip(t),series:e[i][2],point:e[i][3]}});q.select(".nv-point-paths").selectAll("path").remove();var r=q.select(".nv-point-paths").selectAll("path").data(i),o=r.enter().append("svg:path").attr("d",function(e){return e&&e.data&&0!==e.data.length?"M"+e.data.join(",")+"Z":"M 0 0"}).attr("id",function(e,t){return"nv-path-"+t}).attr("clip-path",function(e,t){return"url(#nv-clip-"+t+")"});D&&o.style("fill",d3.rgb(230,230,230)).style("fill-opacity",.4).style("stroke-opacity",1).style("stroke",d3.rgb(200,200,200)),T&&(q.select(".nv-point-clips").selectAll("clipPath").remove(),q.select(".nv-point-clips").selectAll("clipPath").data(e).enter().append("svg:clipPath").attr("id",function(e,t){return"nv-clip-"+t}).append("svg:circle").attr("cx",function(e){return e[0]}).attr("cy",function(e){return e[1]}).attr("r",I));var u=function(e,n){if(F)return 0;var i=t[e.series];if(void 0!==i){var r=i.values[e.point];r.color=c(i,e.series),r.x=m(r),r.y=g(r);var o=d.node().getBoundingClientRect(),s=window.pageYOffset||document.documentElement.scrollTop,l=window.pageXOffset||document.documentElement.scrollLeft;n({point:r,series:i,pos:{left:h(m(r,e.point))+o.left+l+a.left+10,top:p(g(r,e.point))+o.top+s+a.top+10},seriesIndex:e.series,pointIndex:e.point})}};r.on("click",function(e){u(e,L.elementClick)}).on("dblclick",function(e){u(e,L.elementDblClick)}).on("mouseover",function(e){u(e,L.elementMouseover)}).on("mouseout",function(e,t){u(e,L.elementMouseout)})}else q.select(".nv-groups").selectAll(".nv-group").selectAll(".nv-point").on("click",function(e,n){if(F||!t[e.series])return 0;var i=t[e.series],r=i.values[n];L.elementClick({point:r,series:i,pos:[h(m(r,n))+a.left,p(g(r,n))+a.top],seriesIndex:e.series,pointIndex:n})}).on("dblclick",function(e,n){if(F||!t[e.series])return 0;var i=t[e.series],r=i.values[n];L.elementDblClick({point:r,series:i,pos:[h(m(r,n))+a.left,p(g(r,n))+a.top],seriesIndex:e.series,pointIndex:n})}).on("mouseover",function(e,n){if(F||!t[e.series])return 0;var i=t[e.series],r=i.values[n];L.elementMouseover({point:r,series:i,pos:[h(m(r,n))+a.left,p(g(r,n))+a.top],seriesIndex:e.series,pointIndex:n,color:c(e,n)})}).on("mouseout",function(e,n){if(F||!t[e.series])return 0;var i=t[e.series],r=i.values[n];L.elementMouseout({point:r,series:i,seriesIndex:e.series,pointIndex:n,color:c(e,n)})})}d=d3.select(this);var j=e.utils.availableWidth(s,d,a),W=e.utils.availableHeight(l,d,a);e.utils.initSVG(d),t.forEach(function(e,t){e.values.forEach(function(e){e.series=t})});var z=k&&M&&N?[]:d3.merge(t.map(function(e){return e.values.map(function(e,t){return{x:m(e,t),y:g(e,t),size:v(e,t)}})}));h.domain(k||d3.extent(z.map(function(e){return e.x}).concat(y))),x&&t[0]?h.range(P||[(j*S+j)/(2*t[0].values.length),j-j*(1+S)/(2*t[0].values.length)]):h.range(P||[0,j]),p.domain(M||d3.extent(z.map(function(e){return e.y}).concat(_))).range($||[W,0]),f.domain(N||d3.extent(z.map(function(e){return e.size}).concat(w))).range(O||U),R=h.domain()[0]===h.domain()[1]||p.domain()[0]===p.domain()[1],h.domain()[0]===h.domain()[1]&&(h.domain()[0]?h.domain([h.domain()[0]-.01*h.domain()[0],h.domain()[1]+.01*h.domain()[1]]):h.domain([-1,1])),p.domain()[0]===p.domain()[1]&&(p.domain()[0]?p.domain([p.domain()[0]-.01*p.domain()[0],p.domain()[1]+.01*p.domain()[1]]):p.domain([-1,1])),isNaN(h.domain()[0])&&h.domain([-1,1]),isNaN(p.domain()[0])&&p.domain([-1,1]),n=n||h,i=i||p,r=r||f;var q=d.selectAll("g.nv-wrap.nv-scatter").data([t]),V=q.enter().append("g").attr("class","nvd3 nv-wrap nv-scatter nv-chart-"+u),Y=V.append("defs"),K=V.append("g"),Q=q.select("g");q.classed("nv-single-point",R),K.append("g").attr("class","nv-groups"),K.append("g").attr("class","nv-point-paths"),V.append("g").attr("class","nv-point-clips"),q.attr("transform","translate("+a.left+","+a.top+")"),Y.append("clipPath").attr("id","nv-edge-clip-"+u).append("rect"),q.select("#nv-edge-clip-"+u+" rect").attr("width",j).attr("height",W>0?W:0),Q.attr("clip-path",E?"url(#nv-edge-clip-"+u+")":""),F=!0;var X=q.select(".nv-groups").selectAll(".nv-group").data(function(e){return e},function(e){return e.key});X.enter().append("g").style("stroke-opacity",1e-6).style("fill-opacity",1e-6),X.exit().remove(),X.attr("class",function(e,t){return"nv-group nv-series-"+t}).classed("hover",function(e){return e.hover}),X.watchTransition(H,"scatter: groups").style("fill",function(e,t){return c(e,t)}).style("stroke",function(e,t){return c(e,t)}).style("stroke-opacity",1).style("fill-opacity",.5);var Z=X.selectAll("path.nv-point").data(function(e){return e.values.map(function(e,t){return[e,t]}).filter(function(e,t){return C(e[0],t)})});Z.enter().append("path").style("fill",function(e){return e.color}).style("stroke",function(e){return e.color}).attr("transform",function(e){return"translate("+n(m(e[0],e[1]))+","+i(g(e[0],e[1]))+")"}).attr("d",e.utils.symbol().type(function(e){return b(e[0])}).size(function(e){return f(v(e[0],e[1]))})),Z.exit().remove(),X.exit().selectAll("path.nv-point").watchTransition(H,"scatter exit").attr("transform",function(e){return"translate("+h(m(e[0],e[1]))+","+p(g(e[0],e[1]))+")"}).remove(),Z.each(function(e){d3.select(this).classed("nv-point",!0).classed("nv-point-"+e[1],!0).classed("nv-noninteractive",!A).classed("hover",!1)}),Z.watchTransition(H,"scatter points").attr("transform",function(e){return"translate("+h(m(e[0],e[1]))+","+p(g(e[0],e[1]))+")"}).attr("d",e.utils.symbol().type(function(e){return b(e[0])}).size(function(e){return f(v(e[0],e[1]))})),clearTimeout(o),o=setTimeout(B,300),n=h.copy(),i=p.copy(),r=f.copy()}),H.renderEnd("scatter immediate"),t}var n,i,r,o,a={top:0,right:0,bottom:0,left:0},s=null,l=null,c=e.utils.defaultColor(),u=Math.floor(1e5*Math.random()),d=null,h=d3.scale.linear(),p=d3.scale.linear(),f=d3.scale.linear(),m=function(e){return e.x},g=function(e){return e.y},v=function(e){return e.size||1},b=function(e){return e.shape||"circle"},y=[],_=[],w=[],A=!0,C=function(e){return!e.notActive},x=!1,S=.1,E=!1,T=!0,D=!1,I=function(){return 25},k=null,M=null,P=null,$=null,N=null,O=null,R=!1,L=d3.dispatch("elementClick","elementDblClick","elementMouseover","elementMouseout","renderEnd"),G=!0,B=250,F=!1,H=e.utils.renderWatch(L,B),U=[16,256];return t.dispatch=L,t.options=e.utils.optionsFunc.bind(t),t._calls=new function(){this.clearHighlights=function(){return e.dom.write(function(){d.selectAll(".nv-point.hover").classed("hover",!1)}),null},this.highlightPoint=function(t,n,i){e.dom.write(function(){d.select(" .nv-series-"+t+" .nv-point-"+n).classed("hover",i)})}},L.on("elementMouseover.point",function(e){A&&t._calls.highlightPoint(e.seriesIndex,e.pointIndex,!0)}),L.on("elementMouseout.point",function(e){A&&t._calls.highlightPoint(e.seriesIndex,e.pointIndex,!1)}),t._options=Object.create({},{width:{get:function(){return s},set:function(e){s=e}},height:{get:function(){return l},set:function(e){l=e}},xScale:{get:function(){return h},set:function(e){h=e}},yScale:{get:function(){return p},set:function(e){p=e}},pointScale:{get:function(){return f},set:function(e){f=e}},xDomain:{get:function(){return k},set:function(e){k=e}},yDomain:{get:function(){return M},set:function(e){M=e}},pointDomain:{get:function(){return N},set:function(e){N=e}},xRange:{get:function(){return P},set:function(e){P=e}},yRange:{get:function(){return $},set:function(e){$=e}},pointRange:{get:function(){return O},set:function(e){O=e}},forceX:{get:function(){return y},set:function(e){y=e}},forceY:{get:function(){return _},set:function(e){_=e}},forcePoint:{get:function(){return w},set:function(e){w=e}},interactive:{get:function(){return A},set:function(e){A=e}},pointActive:{get:function(){return C},set:function(e){C=e}},padDataOuter:{get:function(){return S},set:function(e){S=e}},padData:{get:function(){return x},set:function(e){x=e}},clipEdge:{get:function(){return E},set:function(e){E=e}},clipVoronoi:{get:function(){return T},set:function(e){T=e}},clipRadius:{get:function(){return I},set:function(e){I=e}},showVoronoi:{get:function(){return D},set:function(e){D=e}},id:{get:function(){return u},set:function(e){u=e}},x:{get:function(){return m},set:function(e){m=d3.functor(e)}},y:{get:function(){return g},set:function(e){g=d3.functor(e)}},pointSize:{get:function(){return v},set:function(e){v=d3.functor(e)}},pointShape:{get:function(){return b},set:function(e){b=d3.functor(e)}},margin:{get:function(){return a},set:function(e){a.top=void 0!==e.top?e.top:a.top,a.right=void 0!==e.right?e.right:a.right,a.bottom=void 0!==e.bottom?e.bottom:a.bottom,a.left=void 0!==e.left?e.left:a.left}},duration:{get:function(){return B},set:function(e){B=e,H.reset(B)}},color:{get:function(){return c},set:function(t){c=e.utils.getColor(t)}},useVoronoi:{get:function(){return G},set:function(e){!1===(G=e)&&(T=!1)}}}),e.utils.initOptions(t),t},e.models.scatterChart=function(){"use strict";function t(S){return I.reset(),I.models(n),y&&I.models(i),_&&I.models(r),g&&I.models(a),v&&I.models(s),S.each(function(S){h=d3.select(this),e.utils.initSVG(h);var P=e.utils.availableWidth(u,h,c),$=e.utils.availableHeight(d,h,c);if(t.update=function(){0===E?h.call(t):h.transition().duration(E).call(t)},t.container=this,A.setter(M(S),t.update).getter(k(S)).update(),A.disabled=S.map(function(e){return!!e.disabled}),!C){var N;C={};for(N in A)A[N]instanceof Array?C[N]=A[N].slice(0):C[N]=A[N]}if(!(S&&S.length&&S.filter(function(e){return e.values.length}).length))return e.utils.noData(t,h),I.renderEnd("scatter immediate"),t;h.selectAll(".nv-noData").remove(),f=n.xScale(),m=n.yScale();var O=h.selectAll("g.nv-wrap.nv-scatterChart").data([S]),R=O.enter().append("g").attr("class","nvd3 nv-wrap nv-scatterChart nv-chart-"+n.id()).append("g"),L=O.select("g");if(R.append("rect").attr("class","nvd3 nv-background").style("pointer-events","none"),R.append("g").attr("class","nv-x nv-axis"),R.append("g").attr("class","nv-y nv-axis"),R.append("g").attr("class","nv-scatterWrap"),R.append("g").attr("class","nv-regressionLinesWrap"),R.append("g").attr("class","nv-distWrap"),R.append("g").attr("class","nv-legendWrap"),w&&L.select(".nv-y.nv-axis").attr("transform","translate("+P+",0)"),b){var G=P;o.width(G),O.select(".nv-legendWrap").datum(S).call(o),c.top!=o.height()&&(c.top=o.height(),$=e.utils.availableHeight(d,h,c)),O.select(".nv-legendWrap").attr("transform","translate(0,"+-c.top+")")}O.attr("transform","translate("+c.left+","+c.top+")"),n.width(P).height($).color(S.map(function(e,t){return e.color=e.color||p(e,t),e.color}).filter(function(e,t){return!S[t].disabled})),O.select(".nv-scatterWrap").datum(S.filter(function(e){return!e.disabled})).call(n),O.select(".nv-regressionLinesWrap").attr("clip-path","url(#nv-edge-clip-"+n.id()+")");var B=O.select(".nv-regressionLinesWrap").selectAll(".nv-regLines").data(function(e){return e});B.enter().append("g").attr("class","nv-regLines");var F=B.selectAll(".nv-regLine").data(function(e){return[e]});F.enter().append("line").attr("class","nv-regLine").style("stroke-opacity",0),F.filter(function(e){return e.intercept&&e.slope}).watchTransition(I,"scatterPlusLineChart: regline").attr("x1",f.range()[0]).attr("x2",f.range()[1]).attr("y1",function(e,t){return m(f.domain()[0]*e.slope+e.intercept)}).attr("y2",function(e,t){return m(f.domain()[1]*e.slope+e.intercept)}).style("stroke",function(e,t,n){return p(e,n)}).style("stroke-opacity",function(e,t){return e.disabled||void 0===e.slope||void 0===e.intercept?0:1}),y&&(i.scale(f)._ticks(e.utils.calcTicksX(P/100,S)).tickSize(-$,0),L.select(".nv-x.nv-axis").attr("transform","translate(0,"+m.range()[0]+")").call(i)),_&&(r.scale(m)._ticks(e.utils.calcTicksY($/36,S)).tickSize(-P,0),L.select(".nv-y.nv-axis").call(r)),g&&(a.getData(n.x()).scale(f).width(P).color(S.map(function(e,t){return e.color||p(e,t)}).filter(function(e,t){return!S[t].disabled})),R.select(".nv-distWrap").append("g").attr("class","nv-distributionX"),L.select(".nv-distributionX").attr("transform","translate(0,"+m.range()[0]+")").datum(S.filter(function(e){return!e.disabled})).call(a)),v&&(s.getData(n.y()).scale(m).width($).color(S.map(function(e,t){return e.color||p(e,t)}).filter(function(e,t){return!S[t].disabled})),R.select(".nv-distWrap").append("g").attr("class","nv-distributionY"),L.select(".nv-distributionY").attr("transform","translate("+(w?P:-s.size())+",0)").datum(S.filter(function(e){return!e.disabled})).call(s)),o.dispatch.on("stateChange",function(e){for(var n in e)A[n]=e[n];x.stateChange(A),t.update()}),x.on("changeState",function(e){void 0!==e.disabled&&(S.forEach(function(t,n){t.disabled=e.disabled[n]}),A.disabled=e.disabled),t.update()}),n.dispatch.on("elementMouseout.tooltip",function(e){l.hidden(!0),h.select(".nv-chart-"+n.id()+" .nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",0),h.select(".nv-chart-"+n.id()+" .nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",s.size())}),n.dispatch.on("elementMouseover.tooltip",function(e){h.select(".nv-series-"+e.seriesIndex+" .nv-distx-"+e.pointIndex).attr("y1",e.pos.top-$-c.top),h.select(".nv-series-"+e.seriesIndex+" .nv-disty-"+e.pointIndex).attr("x2",e.pos.left+a.size()-c.left),l.position(e.pos).data(e).hidden(!1)}),T=f.copy(),D=m.copy()}),I.renderEnd("scatter with line immediate"),t}var n=e.models.scatter(),i=e.models.axis(),r=e.models.axis(),o=e.models.legend(),a=e.models.distribution(),s=e.models.distribution(),l=e.models.tooltip(),c={top:30,right:20,bottom:50,left:75},u=null,d=null,h=null,p=e.utils.defaultColor(),f=n.xScale(),m=n.yScale(),g=!1,v=!1,b=!0,y=!0,_=!0,w=!1,A=e.utils.state(),C=null,x=d3.dispatch("stateChange","changeState","renderEnd"),S=null,E=250;n.xScale(f).yScale(m),i.orient("bottom").tickPadding(10),r.orient(w?"right":"left").tickPadding(10),a.axis("x"),s.axis("y"),l.headerFormatter(function(e,t){return i.tickFormat()(e,t)}).valueFormatter(function(e,t){return r.tickFormat()(e,t)});var T,D,I=e.utils.renderWatch(x,E),k=function(e){return function(){return{active:e.map(function(e){return!e.disabled})}}},M=function(e){return function(t){void 0!==t.active&&e.forEach(function(e,n){e.disabled=!t.active[n]})}};return t.dispatch=x,t.scatter=n,t.legend=o,t.xAxis=i,t.yAxis=r,t.distX=a,t.distY=s,t.tooltip=l,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return u},set:function(e){u=e}},height:{get:function(){return d},set:function(e){d=e}},container:{get:function(){return h},set:function(e){h=e}},showDistX:{get:function(){return g},set:function(e){g=e}},showDistY:{get:function(){return v},set:function(e){v=e}},showLegend:{get:function(){return b},set:function(e){b=e}},showXAxis:{get:function(){return y},set:function(e){y=e}},showYAxis:{get:function(){return _},set:function(e){_=e}},defaultState:{get:function(){return C},set:function(e){C=e}},noData:{get:function(){return S},set:function(e){S=e}},duration:{get:function(){return E},set:function(e){E=e}},tooltips:{get:function(){return l.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),l.enabled(!!t)}},tooltipContent:{get:function(){return l.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),l.contentGenerator(t)}},tooltipXContent:{get:function(){return l.contentGenerator()},set:function(t){e.deprecated("tooltipContent","This option is removed, put values into main tooltip.")}},tooltipYContent:{get:function(){return l.contentGenerator()},set:function(t){e.deprecated("tooltipContent","This option is removed, put values into main tooltip.")}},margin:{get:function(){return c},set:function(e){c.top=void 0!==e.top?e.top:c.top,c.right=void 0!==e.right?e.right:c.right,c.bottom=void 0!==e.bottom?e.bottom:c.bottom,c.left=void 0!==e.left?e.left:c.left}},rightAlignYAxis:{get:function(){return w},set:function(e){w=e,r.orient(e?"right":"left")}},color:{get:function(){return p},set:function(t){p=e.utils.getColor(t),o.color(p),a.color(p),s.color(p)}}}),e.utils.inheritOptions(t,n),e.utils.initOptions(t),t},e.models.sparkline=function(){"use strict";function t(u){return u.each(function(t){var u=s-a.left-a.right,g=l-a.top-a.bottom;c=d3.select(this),e.utils.initSVG(c),d.domain(n||d3.extent(t,p)).range(r||[0,u]),h.domain(i||d3.extent(t,f)).range(o||[g,0]);var v=c.selectAll("g.nv-wrap.nv-sparkline").data([t]);v.enter().append("g").attr("class","nvd3 nv-wrap nv-sparkline").append("g"),v.select("g");v.attr("transform","translate("+a.left+","+a.top+")");var b=v.selectAll("path").data(function(e){return[e]});b.enter().append("path"),b.exit().remove(),b.style("stroke",function(e,t){return e.color||m(e,t)}).attr("d",d3.svg.line().x(function(e,t){return d(p(e,t))}).y(function(e,t){return h(f(e,t))}));var y=v.selectAll("circle.nv-point").data(function(e){function t(t){if(-1!=t){var n=e[t];return n.pointIndex=t,n}return null}var n=e.map(function(e,t){return f(e,t)}),i=t(n.lastIndexOf(h.domain()[1]));return[t(n.indexOf(h.domain()[0])),i,t(n.length-1)].filter(function(e){return null!=e})});y.enter().append("circle"),y.exit().remove(),y.attr("cx",function(e,t){return d(p(e,e.pointIndex))}).attr("cy",function(e,t){return h(f(e,e.pointIndex))}).attr("r",2).attr("class",function(e,t){return p(e,e.pointIndex)==d.domain()[1]?"nv-point nv-currentValue":f(e,e.pointIndex)==h.domain()[0]?"nv-point nv-minValue":"nv-point nv-maxValue"})}),t}var n,i,r,o,a={top:2,right:0,bottom:2,left:0},s=400,l=32,c=null,u=!0,d=d3.scale.linear(),h=d3.scale.linear(),p=function(e){return e.x},f=function(e){return e.y},m=e.utils.getColor(["#000"]);return t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return s},set:function(e){s=e}},height:{get:function(){return l},set:function(e){l=e}},xDomain:{get:function(){return n},set:function(e){n=e}},yDomain:{get:function(){return i},set:function(e){i=e}},xRange:{get:function(){return r},set:function(e){r=e}},yRange:{get:function(){return o},set:function(e){o=e}},xScale:{get:function(){return d},set:function(e){d=e}},yScale:{get:function(){return h},set:function(e){h=e}},animate:{get:function(){return u},set:function(e){u=e}},x:{get:function(){return p},set:function(e){p=d3.functor(e)}},y:{get:function(){return f},set:function(e){f=d3.functor(e)}},margin:{get:function(){return a},set:function(e){a.top=void 0!==e.top?e.top:a.top,a.right=void 0!==e.right?e.right:a.right,a.bottom=void 0!==e.bottom?e.bottom:a.bottom,a.left=void 0!==e.left?e.left:a.left}},color:{get:function(){return m},set:function(t){m=e.utils.getColor(t)}}}),e.utils.initOptions(t),t},e.models.sparklinePlus=function(){"use strict";function t(m){return m.each(function(m){function g(){if(!c){var e=x.selectAll(".nv-hoverValue").data(l),t=e.enter().append("g").attr("class","nv-hoverValue").style("stroke-opacity",0).style("fill-opacity",0);e.exit().transition().duration(250).style("stroke-opacity",0).style("fill-opacity",0).remove(),e.attr("transform",function(e){return"translate("+n(r.x()(m[e],e))+",0)"}).transition().duration(250).style("stroke-opacity",1).style("fill-opacity",1),l.length&&(t.append("line").attr("x1",0).attr("y1",-o.top).attr("x2",0).attr("y2",_),t.append("text").attr("class","nv-xValue").attr("x",-6).attr("y",-o.top).attr("text-anchor","end").attr("dy",".9em"),x.select(".nv-hoverValue .nv-xValue").text(u(r.x()(m[l[0]],l[0]))),t.append("text").attr("class","nv-yValue").attr("x",6).attr("y",-o.top).attr("text-anchor","start").attr("dy",".9em"),x.select(".nv-hoverValue .nv-yValue").text(d(r.y()(m[l[0]],l[0]))))}}function v(){if(!c){var e=d3.mouse(this)[0]-o.left;l=[function(e,t){for(var n=Math.abs(r.x()(e[0],0)-t),i=0,o=0;o<e.length;o++)Math.abs(r.x()(e[o],o)-t)<n&&(n=Math.abs(r.x()(e[o],o)-t),i=o);return i}(m,Math.round(n.invert(e)))],g()}}var b=d3.select(this);e.utils.initSVG(b);var y=e.utils.availableWidth(a,b,o),_=e.utils.availableHeight(s,b,o);if(t.update=function(){b.call(t)},t.container=this,!m||!m.length)return e.utils.noData(t,b),t;b.selectAll(".nv-noData").remove();var w=r.y()(m[m.length-1],m.length-1);n=r.xScale(),i=r.yScale();var A=b.selectAll("g.nv-wrap.nv-sparklineplus").data([m]),C=A.enter().append("g").attr("class","nvd3 nv-wrap nv-sparklineplus").append("g"),x=A.select("g");C.append("g").attr("class","nv-sparklineWrap"),C.append("g").attr("class","nv-valueWrap"),C.append("g").attr("class","nv-hoverArea"),A.attr("transform","translate("+o.left+","+o.top+")");var S=x.select(".nv-sparklineWrap");if(r.width(y).height(_),S.call(r),h){var E=x.select(".nv-valueWrap").selectAll(".nv-currentValue").data([w]);E.enter().append("text").attr("class","nv-currentValue").attr("dx",f?-8:8).attr("dy",".9em").style("text-anchor",f?"end":"start"),E.attr("x",y+(f?o.right:0)).attr("y",p?function(e){return i(e)}:0).style("fill",r.color()(m[m.length-1],m.length-1)).text(d(w))}C.select(".nv-hoverArea").append("rect").on("mousemove",v).on("click",function(){c=!c}).on("mouseout",function(){l=[],g()}),x.select(".nv-hoverArea rect").attr("transform",function(e){return"translate("+-o.left+","+-o.top+")"}).attr("width",y+o.left+o.right).attr("height",_+o.top)}),t}var n,i,r=e.models.sparkline(),o={top:15,right:100,bottom:10,left:50},a=null,s=null,l=[],c=!1,u=d3.format(",r"),d=d3.format(",.2f"),h=!0,p=!0,f=!1,m=null;return t.sparkline=r,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return a},set:function(e){a=e}},height:{get:function(){return s},set:function(e){s=e}},xTickFormat:{get:function(){return u},set:function(e){u=e}},yTickFormat:{get:function(){return d},set:function(e){d=e}},showLastValue:{get:function(){return h},set:function(e){h=e}},alignValue:{get:function(){return p},set:function(e){p=e}},rightAlignValue:{get:function(){return f},set:function(e){f=e}},noData:{get:function(){return m},set:function(e){m=e}},margin:{get:function(){return o},set:function(e){o.top=void 0!==e.top?e.top:o.top,o.right=void 0!==e.right?e.right:o.right,o.bottom=void 0!==e.bottom?e.bottom:o.bottom,o.left=void 0!==e.left?e.left:o.left}}}),e.utils.inheritOptions(t,r),e.utils.initOptions(t),t},e.models.stackedArea=function(){"use strict";function t(h){return _.reset(),_.models(v),h.each(function(h){var b=o-r.left-r.right,w=a-r.top-r.bottom;c=d3.select(this),e.utils.initSVG(c),n=v.xScale(),i=v.yScale();var A=h;h.forEach(function(e,t){e.seriesIndex=t,e.values=e.values.map(function(e,n){return e.index=n,e.seriesIndex=t,e})});var C=h.filter(function(e){return!e.disabled});h=d3.layout.stack().order(f).offset(p).values(function(e){return e.values}).x(u).y(d).out(function(e,t,n){e.display={y:n,y0:t}})(C);var x=c.selectAll("g.nv-wrap.nv-stackedarea").data([h]),S=x.enter().append("g").attr("class","nvd3 nv-wrap nv-stackedarea"),E=S.append("defs"),T=S.append("g"),D=x.select("g");T.append("g").attr("class","nv-areaWrap"),T.append("g").attr("class","nv-scatterWrap"),x.attr("transform","translate("+r.left+","+r.top+")"),0==v.forceY().length&&v.forceY().push(0),v.width(b).height(w).x(u).y(function(e){return e.display.y+e.display.y0}).forceY([0]).color(h.map(function(e,t){return e.color||s(e,e.seriesIndex)})),D.select(".nv-scatterWrap").datum(h).call(v),E.append("clipPath").attr("id","nv-edge-clip-"+l).append("rect"),x.select("#nv-edge-clip-"+l+" rect").attr("width",b).attr("height",w),D.attr("clip-path",g?"url(#nv-edge-clip-"+l+")":"");var I=d3.svg.area().x(function(e,t){return n(u(e,t))}).y0(function(e){return i(e.display.y0)}).y1(function(e){return i(e.display.y+e.display.y0)}).interpolate(m),k=d3.svg.area().x(function(e,t){return n(u(e,t))}).y0(function(e){return i(e.display.y0)}).y1(function(e){return i(e.display.y0)}),M=D.select(".nv-areaWrap").selectAll("path.nv-area").data(function(e){return e});M.enter().append("path").attr("class",function(e,t){return"nv-area nv-area-"+t}).attr("d",function(e,t){return k(e.values,e.seriesIndex)}).on("mouseover",function(e,t){d3.select(this).classed("hover",!0),y.areaMouseover({point:e,series:e.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:e.seriesIndex})}).on("mouseout",function(e,t){d3.select(this).classed("hover",!1),y.areaMouseout({point:e,series:e.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:e.seriesIndex})}).on("click",function(e,t){d3.select(this).classed("hover",!1),y.areaClick({point:e,series:e.key,pos:[d3.event.pageX,d3.event.pageY],seriesIndex:e.seriesIndex})}),M.exit().remove(),M.style("fill",function(e,t){return e.color||s(e,e.seriesIndex)}).style("stroke",function(e,t){return e.color||s(e,e.seriesIndex)}),M.watchTransition(_,"stackedArea path").attr("d",function(e,t){return I(e.values,t)}),v.dispatch.on("elementMouseover.area",function(e){D.select(".nv-chart-"+l+" .nv-area-"+e.seriesIndex).classed("hover",!0)}),v.dispatch.on("elementMouseout.area",function(e){D.select(".nv-chart-"+l+" .nv-area-"+e.seriesIndex).classed("hover",!1)}),t.d3_stackedOffset_stackPercent=function(e){var t,n,i,r=e.length,o=e[0].length,a=[];for(n=0;n<o;++n){for(t=0,i=0;t<A.length;t++)i+=d(A[t].values[n]);if(i)for(t=0;t<r;t++)e[t][n][1]/=i;else for(t=0;t<r;t++)e[t][n][1]=0}for(n=0;n<o;++n)a[n]=0;return a}}),_.renderEnd("stackedArea immediate"),t}var n,i,r={top:0,right:0,bottom:0,left:0},o=960,a=500,s=e.utils.defaultColor(),l=Math.floor(1e5*Math.random()),c=null,u=function(e){return e.x},d=function(e){return e.y},h="stack",p="zero",f="default",m="linear",g=!1,v=e.models.scatter(),b=250,y=d3.dispatch("areaClick","areaMouseover","areaMouseout","renderEnd","elementClick","elementMouseover","elementMouseout");v.pointSize(2.2).pointDomain([2.2,2.2]);var _=e.utils.renderWatch(y,b);return t.dispatch=y,t.scatter=v,v.dispatch.on("elementClick",function(){y.elementClick.apply(this,arguments)}),v.dispatch.on("elementMouseover",function(){y.elementMouseover.apply(this,arguments)}),v.dispatch.on("elementMouseout",function(){y.elementMouseout.apply(this,arguments)}),t.interpolate=function(e){return arguments.length?(m=e,t):m},t.duration=function(e){return arguments.length?(b=e,_.reset(b),v.duration(b),t):b},t.dispatch=y,t.scatter=v,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return o},set:function(e){o=e}},height:{get:function(){return a},set:function(e){a=e}},clipEdge:{get:function(){return g},set:function(e){g=e}},offset:{get:function(){return p},set:function(e){p=e}},order:{get:function(){return f},set:function(e){f=e}},interpolate:{get:function(){return m},set:function(e){m=e}},x:{get:function(){return u},set:function(e){u=d3.functor(e)}},y:{get:function(){return d},set:function(e){d=d3.functor(e)}},margin:{get:function(){return r},set:function(e){r.top=void 0!==e.top?e.top:r.top,r.right=void 0!==e.right?e.right:r.right,r.bottom=void 0!==e.bottom?e.bottom:r.bottom,r.left=void 0!==e.left?e.left:r.left}},color:{get:function(){return s},set:function(t){s=e.utils.getColor(t)}},style:{get:function(){return h},set:function(e){switch(h=e){case"stack":t.offset("zero"),t.order("default");break;case"stream":t.offset("wiggle"),t.order("inside-out");break;case"stream-center":t.offset("silhouette"),t.order("inside-out");break;case"expand":t.offset("expand"),t.order("default");break;case"stack_percent":t.offset(t.d3_stackedOffset_stackPercent),t.order("default")}}},duration:{get:function(){return b},set:function(e){b=e,_.reset(b),v.duration(b)}}}),e.utils.inheritOptions(t,v),e.utils.initOptions(t),t},e.models.stackedAreaChart=function(){"use strict";function t(u){return M.reset(),M.models(r),v&&M.models(o),b&&M.models(a),u.each(function(u){var C=d3.select(this),M=this;e.utils.initSVG(C);var R=e.utils.availableWidth(h,C,d),L=e.utils.availableHeight(p,C,d);if(t.update=function(){C.transition().duration(D).call(t)},t.container=this,w.setter(N(u),t.update).getter($(u)).update(),w.disabled=u.map(function(e){return!!e.disabled}),!A){var G;A={};for(G in w)w[G]instanceof Array?A[G]=w[G].slice(0):A[G]=w[G]}if(!(u&&u.length&&u.filter(function(e){return e.values.length}).length))return e.utils.noData(t,C),t;C.selectAll(".nv-noData").remove(),n=r.xScale(),i=r.yScale();var B=C.selectAll("g.nv-wrap.nv-stackedAreaChart").data([u]),F=B.enter().append("g").attr("class","nvd3 nv-wrap nv-stackedAreaChart").append("g"),H=B.select("g");if(F.append("rect").style("opacity",0),F.append("g").attr("class","nv-x nv-axis"),F.append("g").attr("class","nv-y nv-axis"),F.append("g").attr("class","nv-stackedWrap"),F.append("g").attr("class","nv-legendWrap"),F.append("g").attr("class","nv-controlsWrap"),F.append("g").attr("class","nv-interactive"),H.select("rect").attr("width",R).attr("height",L),g){var U=m?R-S:R;s.width(U),H.select(".nv-legendWrap").datum(u).call(s),d.top!=s.height()&&(d.top=s.height(),L=e.utils.availableHeight(p,C,d)),H.select(".nv-legendWrap").attr("transform","translate("+(R-U)+","+-d.top+")")}if(m){var j=[{key:T.stacked||"Stacked",metaKey:"Stacked",disabled:"stack"!=r.style(),style:"stack"},{key:T.stream||"Stream",metaKey:"Stream",disabled:"stream"!=r.style(),style:"stream"},{key:T.expanded||"Expanded",metaKey:"Expanded",disabled:"expand"!=r.style(),style:"expand"},{key:T.stack_percent||"Stack %",metaKey:"Stack_Percent",disabled:"stack_percent"!=r.style(),style:"stack_percent"}];S=E.length/3*260,j=j.filter(function(e){return-1!==E.indexOf(e.metaKey)}),l.width(S).color(["#444","#444","#444"]),H.select(".nv-controlsWrap").datum(j).call(l),d.top!=Math.max(l.height(),s.height())&&(d.top=Math.max(l.height(),s.height()),L=e.utils.availableHeight(p,C,d)),H.select(".nv-controlsWrap").attr("transform","translate(0,"+-d.top+")")}if(B.attr("transform","translate("+d.left+","+d.top+")"),y&&H.select(".nv-y.nv-axis").attr("transform","translate("+R+",0)"),_&&(c.width(R).height(L).margin({left:d.left,top:d.top}).svgContainer(C).xScale(n),B.select(".nv-interactive").call(c)),r.width(R).height(L),H.select(".nv-stackedWrap").datum(u).transition().call(r),v&&(o.scale(n)._ticks(e.utils.calcTicksX(R/100,u)).tickSize(-L,0),H.select(".nv-x.nv-axis").attr("transform","translate(0,"+L+")"),H.select(".nv-x.nv-axis").transition().duration(0).call(o)),b){var W;if(W="wiggle"===r.offset()?0:e.utils.calcTicksY(L/36,u),a.scale(i)._ticks(W).tickSize(-R,0),"expand"===r.style()||"stack_percent"===r.style()){var z=a.tickFormat();I&&z===O||(I=z),a.tickFormat(O)}else I&&(a.tickFormat(I),I=null);H.select(".nv-y.nv-axis").transition().duration(0).call(a)}r.dispatch.on("areaClick.toggle",function(e){1===u.filter(function(e){return!e.disabled}).length?u.forEach(function(e){e.disabled=!1}):u.forEach(function(t,n){t.disabled=n!=e.seriesIndex}),w.disabled=u.map(function(e){return!!e.disabled}),x.stateChange(w),t.update()}),s.dispatch.on("stateChange",function(e){for(var n in e)w[n]=e[n];x.stateChange(w),t.update()}),l.dispatch.on("legendClick",function(e,n){e.disabled&&(j=j.map(function(e){return e.disabled=!0,e}),e.disabled=!1,r.style(e.style),w.style=r.style(),x.stateChange(w),t.update())}),c.dispatch.on("elementMousemove",function(n){r.clearHighlights();var i,a,s,l=[];if(u.filter(function(e,t){return e.seriesIndex=t,!e.disabled}).forEach(function(o,c){a=e.interactiveBisect(o.values,n.pointXValue,t.x());var u=o.values[a];if(null!=t.y()(u,a)&&r.highlightPoint(c,a,!0),void 0!==u){void 0===i&&(i=u),void 0===s&&(s=t.xScale()(t.x()(u,a)));var d="expand"==r.style()?u.display.y:t.y()(u,a);l.push({key:o.key,value:d,color:f(o,o.seriesIndex),stackedValue:u.display})}}),l.reverse(),l.length>2){var h=t.yScale().invert(n.mouseY),p=null;l.forEach(function(e,t){h=Math.abs(h);var n=Math.abs(e.stackedValue.y0),i=Math.abs(e.stackedValue.y);h>=n&&h<=i+n&&(p=t)}),null!=p&&(l[p].highlight=!0)}var m=o.tickFormat()(t.x()(i,a)),g=c.tooltip.valueFormatter();"expand"===r.style()||"stack_percent"===r.style()?(k||(k=g),g=d3.format(".1%")):k&&(g=k,k=null),c.tooltip.position({left:s+d.left,top:n.mouseY+d.top}).chartContainer(M.parentNode).valueFormatter(g).data({value:m,series:l})(),c.renderGuideLine(s)}),c.dispatch.on("elementMouseout",function(e){r.clearHighlights()}),x.on("changeState",function(e){void 0!==e.disabled&&u.length===e.disabled.length&&(u.forEach(function(t,n){t.disabled=e.disabled[n]}),w.disabled=e.disabled),void 0!==e.style&&(r.style(e.style),P=e.style),t.update()})}),M.renderEnd("stacked Area chart immediate"),t}var n,i,r=e.models.stackedArea(),o=e.models.axis(),a=e.models.axis(),s=e.models.legend(),l=e.models.legend(),c=e.interactiveGuideline(),u=e.models.tooltip(),d={top:30,right:25,bottom:50,left:60},h=null,p=null,f=e.utils.defaultColor(),m=!0,g=!0,v=!0,b=!0,y=!1,_=!1,w=e.utils.state(),A=null,C=null,x=d3.dispatch("stateChange","changeState","renderEnd"),S=250,E=["Stacked","Stream","Expanded"],T={},D=250;w.style=r.style(),o.orient("bottom").tickPadding(7),a.orient(y?"right":"left"),u.headerFormatter(function(e,t){return o.tickFormat()(e,t)}).valueFormatter(function(e,t){return a.tickFormat()(e,t)}),c.tooltip.headerFormatter(function(e,t){return o.tickFormat()(e,t)}).valueFormatter(function(e,t){return a.tickFormat()(e,t)});var I=null,k=null;l.updateState(!1);var M=e.utils.renderWatch(x),P=r.style(),$=function(e){return function(){return{active:e.map(function(e){return!e.disabled}),style:r.style()}}},N=function(e){return function(t){void 0!==t.style&&(P=t.style),void 0!==t.active&&e.forEach(function(e,n){e.disabled=!t.active[n]})}},O=d3.format("%");return r.dispatch.on("elementMouseover.tooltip",function(e){e.point.x=r.x()(e.point),e.point.y=r.y()(e.point),u.data(e).position(e.pos).hidden(!1)}),r.dispatch.on("elementMouseout.tooltip",function(e){u.hidden(!0)}),t.dispatch=x,t.stacked=r,t.legend=s,t.controls=l,t.xAxis=o,t.yAxis=a,t.interactiveLayer=c,t.tooltip=u,t.dispatch=x,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return h},set:function(e){h=e}},height:{get:function(){return p},set:function(e){p=e}},showLegend:{get:function(){return g},set:function(e){g=e}},showXAxis:{get:function(){return v},set:function(e){v=e}},showYAxis:{get:function(){return b},set:function(e){b=e}},defaultState:{get:function(){return A},set:function(e){A=e}},noData:{get:function(){return C},set:function(e){C=e}},showControls:{get:function(){return m},set:function(e){m=e}},controlLabels:{get:function(){return T},set:function(e){T=e}},controlOptions:{get:function(){return E},set:function(e){E=e}},tooltips:{get:function(){return u.enabled()},set:function(t){e.deprecated("tooltips","use chart.tooltip.enabled() instead"),u.enabled(!!t)}},tooltipContent:{get:function(){return u.contentGenerator()},set:function(t){e.deprecated("tooltipContent","use chart.tooltip.contentGenerator() instead"),u.contentGenerator(t)}},margin:{get:function(){return d},set:function(e){d.top=void 0!==e.top?e.top:d.top,d.right=void 0!==e.right?e.right:d.right,d.bottom=void 0!==e.bottom?e.bottom:d.bottom,d.left=void 0!==e.left?e.left:d.left}},duration:{get:function(){return D},set:function(e){D=e,M.reset(D),r.duration(D),o.duration(D),a.duration(D)}},color:{get:function(){return f},set:function(t){f=e.utils.getColor(t),s.color(f),r.color(f)}},rightAlignYAxis:{get:function(){return y},set:function(e){y=e,a.orient(y?"right":"left")}},useInteractiveGuideline:{get:function(){return _},set:function(e){_=!!e,t.interactive(!e),t.useVoronoi(!e),r.scatter.interactive(!e)}}}),e.utils.inheritOptions(t,r),e.utils.initOptions(t),t},e.models.sunburst=function(){"use strict";function t(_){return y.reset(),_.each(function(t){function y(e){e.x0=e.x,e.dx0=e.dx}function _(e){var t=d3.interpolate(m.domain(),[e.x,e.x+e.dx]),n=d3.interpolate(g.domain(),[e.y,1]),i=d3.interpolate(g.range(),[e.y?20:0,x]);return function(e,r){return r?function(t){return b(e)}:function(r){return m.domain(t(r)),g.domain(n(r)).range(i(r)),b(e)}}}d=d3.select(this);var w,A=e.utils.availableWidth(a,d,o),C=e.utils.availableHeight(s,d,o),x=Math.min(A,C)/2;e.utils.initSVG(d);var S=d.selectAll(".nv-wrap.nv-sunburst").data(t),E=S.enter().append("g").attr("class","nvd3 nv-wrap nv-sunburst nv-chart-"+u).selectAll("nv-sunburst");S.attr("transform","translate("+A/2+","+C/2+")"),d.on("click",function(e,t){f.chartClick({data:e,index:t,pos:d3.event,id:u})}),g.range([0,x]),n=n||t,r=t[0],v.value(c[l]||c.count),w=E.data(v.nodes).enter().append("path").attr("d",b).style("fill",function(e){return h((e.children?e:e.parent).name)}).style("stroke","#FFF").on("click",function(e){i!==n&&n!==e&&(i=n),n=e,w.transition().duration(p).attrTween("d",_(e))}).each(y).on("dblclick",function(e){i.parent==e&&w.transition().duration(p).attrTween("d",_(r))}).each(y).on("mouseover",function(e,t){d3.select(this).classed("hover",!0).style("opacity",.8),f.elementMouseover({data:e,color:d3.select(this).style("fill")})}).on("mouseout",function(e,t){d3.select(this).classed("hover",!1).style("opacity",1),f.elementMouseout({data:e})}).on("mousemove",function(e,t){f.elementMousemove({data:e})})}),y.renderEnd("sunburst immediate"),t}var n,i,r,o={top:0,right:0,bottom:0,left:0},a=null,s=null,l="count",c={count:function(e){return 1},size:function(e){return e.size}},u=Math.floor(1e4*Math.random()),d=null,h=e.utils.defaultColor(),p=500,f=d3.dispatch("chartClick","elementClick","elementDblClick","elementMousemove","elementMouseover","elementMouseout","renderEnd"),m=d3.scale.linear().range([0,2*Math.PI]),g=d3.scale.sqrt(),v=d3.layout.partition().sort(null).value(function(e){return 1}),b=d3.svg.arc().startAngle(function(e){return Math.max(0,Math.min(2*Math.PI,m(e.x)))}).endAngle(function(e){return Math.max(0,Math.min(2*Math.PI,m(e.x+e.dx)))}).innerRadius(function(e){return Math.max(0,g(e.y))}).outerRadius(function(e){return Math.max(0,g(e.y+e.dy))}),y=e.utils.renderWatch(f);return t.dispatch=f,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{width:{get:function(){return a},set:function(e){a=e}},height:{get:function(){return s},set:function(e){s=e}},mode:{get:function(){return l},set:function(e){l=e}},id:{get:function(){return u},set:function(e){u=e}},duration:{get:function(){return p},set:function(e){p=e}},margin:{get:function(){return o},set:function(e){o.top=void 0!=e.top?e.top:o.top,o.right=void 0!=e.right?e.right:o.right,o.bottom=void 0!=e.bottom?e.bottom:o.bottom,o.left=void 0!=e.left?e.left:o.left}},color:{get:function(){return h},set:function(t){h=e.utils.getColor(t)}}}),e.utils.initOptions(t),t},e.models.sunburstChart=function(){"use strict";function t(i){return h.reset(),h.models(n),i.each(function(i){var s=d3.select(this);e.utils.initSVG(s);var l=e.utils.availableWidth(o,s,r),c=e.utils.availableHeight(a,s,r);if(t.update=function(){0===u?s.call(t):s.transition().duration(u).call(t)},t.container=this,!i||!i.length)return e.utils.noData(t,s),t;s.selectAll(".nv-noData").remove();var d=s.selectAll("g.nv-wrap.nv-sunburstChart").data(i),h=d.enter().append("g").attr("class","nvd3 nv-wrap nv-sunburstChart").append("g"),p=d.select("g");h.append("g").attr("class","nv-sunburstWrap"),d.attr("transform","translate("+r.left+","+r.top+")"),n.width(l).height(c);var f=p.select(".nv-sunburstWrap").datum(i);d3.transition(f).call(n)}),h.renderEnd("sunburstChart immediate"),t}var n=e.models.sunburst(),i=e.models.tooltip(),r={top:30,right:20,bottom:20,left:20},o=null,a=null,s=e.utils.defaultColor(),l=(Math.round(1e5*Math.random()),null),c=null,u=250,d=d3.dispatch("tooltipShow","tooltipHide","stateChange","changeState","renderEnd"),h=e.utils.renderWatch(d);return i.headerEnabled(!1).duration(0).valueFormatter(function(e,t){return e}),n.dispatch.on("elementMouseover.tooltip",function(e){e.series={key:e.data.name,value:e.data.size,color:e.color},i.data(e).hidden(!1)}),n.dispatch.on("elementMouseout.tooltip",function(e){i.hidden(!0)}),n.dispatch.on("elementMousemove.tooltip",function(e){i.position({top:d3.event.pageY,left:d3.event.pageX})()}),t.dispatch=d,t.sunburst=n,t.tooltip=i,t.options=e.utils.optionsFunc.bind(t),t._options=Object.create({},{noData:{get:function(){return c},set:function(e){c=e}},defaultState:{get:function(){return l},set:function(e){l=e}},color:{get:function(){return s},set:function(e){s=e,n.color(s)}},duration:{get:function(){return u},set:function(e){u=e,h.reset(u),n.duration(u)}},margin:{get:function(){return r},set:function(e){r.top=void 0!==e.top?e.top:r.top,r.right=void 0!==e.right?e.right:r.right,r.bottom=void 0!==e.bottom?e.bottom:r.bottom,r.left=void 0!==e.left?e.left:r.left}}}),e.utils.inheritOptions(t,n),e.utils.initOptions(t),t},e.version="1.8.1"}(),function(){"use strict";angular.module("nvd3",[]).directive("nvd3",["nvd3Utils",function(e){return{restrict:"AE",scope:{data:"=",options:"=",api:"=?",events:"=?",config:"=?",onReady:"&?"},link:function(t,n,i){function r(e,n,i){e&&n&&angular.forEach(e,function(a,s){"_"===s[0]||("dispatch"===s?(void 0!==n[s]&&null!==n[s]||t._config.extended&&(n[s]={}),o(a,n[s])):"tooltip"===s?(void 0!==n[s]&&null!==n[s]||t._config.extended&&(n[s]={}),r(e[s],n[s],i)):"contentGenerator"===s?n[s]&&e[s](n[s]):-1===["axis","clearHighlights","defined","highlightPoint","nvPointerEventsClass","options","rangeBand","rangeBands","scatter","open","close","node"].indexOf(s)&&(void 0===n[s]||null===n[s]?t._config.extended&&(n[s]=a()):e[s](n[s])))})}function o(e,n){e&&n&&angular.forEach(e,function(i,r){void 0===n[r]||null===n[r]?t._config.extended&&(n[r]=i.on):e.on(r+"._",n[r])})}function a(i){var r=e.deepExtend(l(i),t.options[i]||{});t._config.extended&&(t.options[i]=r);var o=angular.element("<div></div>").html(r.html||"").addClass(i).addClass(r.className).removeAttr("style").css(r.css);r.html||o.text(r.text),r.enable&&("title"===i?n.prepend(o):"subtitle"===i?angular.element(n[0].querySelector(".title")).after(o):"caption"===i&&n.append(o))}function s(){var i=e.deepExtend({classes:{"with-3d-shadow":!0,"with-transitions":!0,gallery:!1},css:{}},t.options.styles||{});t._config.extended&&(t.options.styles=i),angular.forEach(i.classes,function(e,t){e?n.addClass(t):n.removeClass(t)}),n.removeAttr("style").css(i.css)}function l(e){switch(e){case"title":return{enable:!1,text:"Write Your Title",className:"h4",css:{width:t.options.chart.width+"px",textAlign:"center"}};case"subtitle":return{enable:!1,text:"Write Your Subtitle",css:{width:t.options.chart.width+"px",textAlign:"center"}};case"caption":return{enable:!1,text:"Figure 1. Write Your Caption text.",css:{width:t.options.chart.width+"px",textAlign:"center"}}}}function c(e,n){e!==n&&(t._config.disabled||(t._config.refreshDataOnly?t.api.update():t.api.refresh()))}var u={extended:!1,visible:!0,disabled:!1,refreshDataOnly:!0,deepWatchOptions:!0,deepWatchData:!0,deepWatchDataDepth:2,debounce:10,debounceImmediate:!0};t.isReady=!1,t._config=angular.extend(u,t.config),t.api={refresh:function(){t.api.updateWithOptions(t.options),t.isReady=!0},refreshWithTimeout:function(e){setTimeout(function(){t.api.refresh()},e)},update:function(){t.chart&&t.svg?t.svg.datum(t.data).call(t.chart):t.api.refresh()},updateWithTimeout:function(e){setTimeout(function(){t.api.update()},e)},updateWithOptions:function(n){t.api.clearElement(),!1!==angular.isDefined(n)&&t._config.visible&&(t.chart=nv.models[n.chart.type](),t.chart.id=Math.random().toString(36).substr(2,15),angular.forEach(t.chart,function(e,i){"_"===i[0]||["clearHighlights","highlightPoint","id","options","resizeHandler","state","open","close","tooltipContent"].indexOf(i)>=0||("dispatch"===i?(void 0!==n.chart[i]&&null!==n.chart[i]||t._config.extended&&(n.chart[i]={}),o(t.chart[i],n.chart[i])):["bars","bars1","bars2","boxplot","bullet","controls","discretebar","distX","distY","interactiveLayer","legend","lines","lines1","lines2","multibar","pie","scatter","scatters1","scatters2","sparkline","stack1","stack2","sunburst","tooltip","x2Axis","xAxis","y1Axis","y2Axis","y3Axis","y4Axis","yAxis","yAxis1","yAxis2"].indexOf(i)>=0||"stacked"===i&&"stackedAreaChart"===n.chart.type?(void 0!==n.chart[i]&&null!==n.chart[i]||t._config.extended&&(n.chart[i]={}),r(t.chart[i],n.chart[i],n.chart.type)):"focusHeight"===i&&"lineChart"===n.chart.type||"focusHeight"===i&&"lineWithFocusChart"===n.chart.type||("xTickFormat"!==i&&"yTickFormat"!==i||"lineWithFocusChart"!==n.chart.type)&&("tooltips"===i&&"boxPlotChart"===n.chart.type||("tooltipXContent"!==i&&"tooltipYContent"!==i||"scatterChart"!==n.chart.type)&&("x"!==i&&"y"!==i||"forceDirectedGraph"!==n.chart.type)&&(void 0===n.chart[i]||null===n.chart[i]?t._config.extended&&(n.chart[i]="barColor"===i?e()():e()):t.chart[i](n.chart[i]))))}),"sunburstChart"===n.chart.type?t.api.updateWithData(angular.copy(t.data)):t.api.updateWithData(t.data),(n.title||t._config.extended)&&a("title"),(n.subtitle||t._config.extended)&&a("subtitle"),(n.caption||t._config.extended)&&a("caption"),(n.styles||t._config.extended)&&s(),nv.addGraph(function(){if(t.chart)return t.chart.resizeHandler&&t.chart.resizeHandler.clear(),t.chart.resizeHandler=nv.utils.windowResize(function(){t.chart&&t.chart.update&&t.chart.update()}),void 0!==n.chart.zoom&&["scatterChart","lineChart","candlestickBarChart","cumulativeLineChart","historicalBarChart","ohlcBarChart","stackedAreaChart"].indexOf(n.chart.type)>-1&&e.zoom(t,n),t.chart},n.chart.callback))},updateWithData:function(e){if(e){d3.select(n[0]).select("svg").remove();var i,r;t.svg=d3.select(n[0]).append("svg"),(i=t.options.chart.height)&&(isNaN(+i)||(i+="px"),t.svg.attr("height",i).style({height:i})),(r=t.options.chart.width)?(isNaN(+r)||(r+="px"),t.svg.attr("width",r).style({width:r})):t.svg.attr("width","100%").style({width:"100%"}),t.svg.datum(e).call(t.chart)}},clearElement:function(){if(n.find(".title").remove(),n.find(".subtitle").remove(),n.find(".caption").remove(),n.empty(),t.chart&&t.chart.tooltip&&t.chart.tooltip.id&&d3.select("#"+t.chart.tooltip.id()).remove(),nv.graphs&&t.chart)for(var e=nv.graphs.length-1;e>=0;e--)nv.graphs[e]&&nv.graphs[e].id===t.chart.id&&nv.graphs.splice(e,1);nv.tooltip&&nv.tooltip.cleanup&&nv.tooltip.cleanup(),t.chart&&t.chart.resizeHandler&&t.chart.resizeHandler.clear(),t.chart=null},getScope:function(){return t},getElement:function(){return n}},t._config.deepWatchOptions&&t.$watch("options",e.debounce(function(e){t._config.disabled||t.api.refresh()},t._config.debounce,t._config.debounceImmediate),!0),t._config.deepWatchData&&(1===t._config.deepWatchDataDepth?t.$watchCollection("data",c):t.$watch("data",c,2===t._config.deepWatchDataDepth)),t.$watch("config",function(e,n){e!==n&&(t._config=angular.extend(u,e),t.api.refresh())},!0),t._config.deepWatchOptions||t._config.deepWatchData||t.api.refresh(),angular.forEach(t.events,function(e,n){t.$on(n,function(n,i){return e(n,t,i)})}),n.on("$destroy",function(){t.api.clearElement()}),t.$watch("isReady",function(e){e&&t.onReady&&"function"==typeof t.onReady()&&t.onReady()(t,n)})}}}]).factory("nvd3Utils",function(){return{debounce:function(e,t,n){var i;return function(){var r=this,o=arguments,a=function(){i=null,n||e.apply(r,o)},s=n&&!i;clearTimeout(i),i=setTimeout(a,t),s&&e.apply(r,o)}},deepExtend:function(e){var t=this;return angular.forEach(arguments,function(n){n!==e&&angular.forEach(n,function(n,i){e[i]&&e[i].constructor&&e[i].constructor===Object?t.deepExtend(e[i],n):e[i]=n})}),e},zoom:function(e,t){var n=t.chart.zoom;if(void 0===n.enabled||null===n.enabled||n.enabled){var i,r,o,a,s,l=e.chart.xAxis.scale(),c=e.chart.yAxis.scale(),u=e.chart.xDomain||l.domain,d=e.chart.yDomain||c.domain,h=l.domain().slice(),p=c.domain().slice(),f=n.scale||1,m=n.translate||[0,0],g=n.scaleExtent||[1,10],v=n.useFixedDomain||!1,b=n.useNiceScale||!1,y=n.horizontalOff||!1,_=n.verticalOff||!1,w=n.unzoomEventType||"dblclick.zoom";b&&(l.nice(),c.nice()),i=function(e,t){return e[0]=Math.min(Math.max(e[0],t[0]),t[1]-t[1]/g[1]),e[1]=Math.max(t[0]+t[1]/g[1],Math.min(e[1],t[1])),e},o=function(){if(void 0!==n.zoomed){var t=n.zoomed(l.domain(),c.domain());y||u([t.x1,t.x2]),_||d([t.y1,t.y2])}else y||u(v?i(l.domain(),h):l.domain()),_||d(v?i(c.domain(),p):c.domain());e.chart.update()},a=function(){if(void 0!==n.unzoomed){var t=n.unzoomed(l.domain(),c.domain());y||u([t.x1,t.x2]),_||d([t.y1,t.y2])}else y||u(h),_||d(p);r.scale(f).translate(m),e.chart.update()},s=function(){void 0!==n.zoomend&&n.zoomend()},r=d3.behavior.zoom().x(l).y(c).scaleExtent(g).on("zoom",o).on("zoomend",s),e.svg.call(r),r.scale(f).translate(m).event(e.svg),"none"!==w&&e.svg.on(w,a)}}}})}(),function(e,t){"use strict";function n(e){return null!=e&&""!==e&&"hasOwnProperty"!==e&&a.test("."+e)}function i(e,i){if(!n(i))throw o("badmember",'Dotted member path "@{0}" is invalid.',i);for(var r=i.split("."),a=0,s=r.length;a<s&&t.isDefined(e);a++){var l=r[a];e=null!==e?e[l]:void 0}return e}function r(e,n){n=n||{},t.forEach(n,function(e,t){delete n[t]});for(var i in e)!e.hasOwnProperty(i)||"$"===i.charAt(0)&&"$"===i.charAt(1)||(n[i]=e[i]);return n}var o=t.$$minErr("$resource"),a=/^(\.[a-zA-Z_$@][0-9a-zA-Z_$@]*)+$/;t.module("ngResource",["ng"]).provider("$resource",function(){var e=/^https?:\/\/[^\/]*/,n=this;this.defaults={stripTrailingSlashes:!0,cancellable:!1,actions:{get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},delete:{method:"DELETE"}}},this.$get=["$http","$log","$q","$timeout",function(a,s,l,c){function u(e){return d(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function d(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,t?"%20":"+")}function h(e,t){this.template=e,this.defaults=g({},n.defaults,t),this.urlParams={}}function p(e,u,d,y){function _(e,t){var n={};return t=g({},u,t),m(t,function(t,r){b(t)&&(t=t(e)),n[r]=t&&t.charAt&&"@"==t.charAt(0)?i(e,t.substr(1)):t}),n}function w(e){return e.resource}function A(e){r(e||{},this)}var C=new h(e,y);return d=g({},n.defaults.actions,d),A.prototype.toJSON=function(){var e=g({},this);return delete e.$promise,delete e.$resolved,e},m(d,function(e,i){var u=/^(POST|PUT|PATCH)$/i.test(e.method),d=e.timeout,h=t.isDefined(e.cancellable)?e.cancellable:y&&t.isDefined(y.cancellable)?y.cancellable:n.defaults.cancellable;d&&!t.isNumber(d)&&(s.debug("ngResource:\n  Only numeric values are allowed as `timeout`.\n  Promises are not supported in $resource, because the same value would be used for multiple requests. If you are looking for a way to cancel requests, you should use the `cancellable` option."),delete e.timeout,d=null),A[i]=function(n,s,p,y){var x,S,E,T={};switch(arguments.length){case 4:E=y,S=p;case 3:case 2:if(!b(s)){T=n,x=s,S=p;break}if(b(n)){S=n,E=s;break}S=s,E=p;case 1:b(n)?S=n:u?x=n:T=n;break;case 0:break;default:throw o("badargs","Expected up to 4 arguments [params, data, success, error], got {0} arguments",arguments.length)}var D,I,k=this instanceof A,M=k?x:e.isArray?[]:new A(x),P={},$=e.interceptor&&e.interceptor.response||w,N=e.interceptor&&e.interceptor.responseError||void 0;m(e,function(e,t){switch(t){default:P[t]=v(e);break;case"params":case"isArray":case"interceptor":case"cancellable":}}),!k&&h&&(D=l.defer(),P.timeout=D.promise,d&&(I=c(D.resolve,d))),u&&(P.data=x),C.setUrlParams(P,g({},_(x,e.params||{}),T),e.url);var O=a(P).then(function(n){var a=n.data;if(a){if(t.isArray(a)!==!!e.isArray)throw o("badcfg","Error in resource configuration for action `{0}`. Expected response to contain an {1} but got an {2} (Request: {3} {4})",i,e.isArray?"array":"object",t.isArray(a)?"array":"object",P.method,P.url);if(e.isArray)M.length=0,m(a,function(e){"object"==typeof e?M.push(new A(e)):M.push(e)});else{var s=M.$promise;r(a,M),M.$promise=s}}return n.resource=M,n},function(e){return(E||f)(e),l.reject(e)});return O.finally(function(){M.$resolved=!0,!k&&h&&(M.$cancelRequest=t.noop,c.cancel(I),D=I=P.timeout=null)}),O=O.then(function(e){var t=$(e);return(S||f)(t,e.headers),t},N),k?O:(M.$promise=O,M.$resolved=!1,h&&(M.$cancelRequest=D.resolve),M)},A.prototype["$"+i]=function(e,t,n){b(e)&&(n=t,t=e,e={});var r=A[i].call(this,e,this,t,n);return r.$promise||r}}),A.bind=function(t){return p(e,g({},u,t),d)},A}var f=t.noop,m=t.forEach,g=t.extend,v=t.copy,b=t.isFunction;return h.prototype={setUrlParams:function(n,i,r){var a,s,l=this,c=r||l.template,h="",p=l.urlParams={};m(c.split(/\W/),function(e){if("hasOwnProperty"===e)throw o("badname","hasOwnProperty is not a valid parameter name.");!new RegExp("^\\d+$").test(e)&&e&&new RegExp("(^|[^\\\\]):"+e+"(\\W|$)").test(c)&&(p[e]={isQueryParamValue:new RegExp("\\?.*=:"+e+"(?:\\W|$)").test(c)})}),c=c.replace(/\\:/g,":"),c=c.replace(e,function(e){return h=e,""}),i=i||{},m(l.urlParams,function(e,n){a=i.hasOwnProperty(n)?i[n]:l.defaults[n],t.isDefined(a)&&null!==a?(s=e.isQueryParamValue?d(a,!0):u(a),c=c.replace(new RegExp(":"+n+"(\\W|$)","g"),function(e,t){return s+t})):c=c.replace(new RegExp("(/?):"+n+"(\\W|$)","g"),function(e,t,n){return"/"==n.charAt(0)?n:t+n})}),l.defaults.stripTrailingSlashes&&(c=c.replace(/\/+$/,"")||"/"),c=c.replace(/\/\.(?=\w+($|\?))/,"."),n.url=h+c.replace(/\/\\\./,"/."),m(i,function(e,t){l.urlParams[t]||(n.params=n.params||{},n.params[t]=e)})}},p}]})}(window,window.angular),function(e,t){"use strict";function n(){function n(e,t){var n,i={},r=e.split(",");for(n=0;n<r.length;n++)i[t?l(r[n]):r[n]]=!0;return i}function i(t,n){null===t||void 0===t?t="":"string"!=typeof t&&(t=""+t),b.innerHTML=t;var i=5;do{if(0===i)throw h("uinput","Failed to sanitize html because the input is unstable");i--,e.document.documentMode&&g(b),t=b.innerHTML,b.innerHTML=t}while(t!==b.innerHTML);for(var r=b.firstChild;r;){switch(r.nodeType){case 1:n.start(r.nodeName.toLowerCase(),p(r.attributes));break;case 3:n.chars(r.textContent)}var o;if(!((o=r.firstChild)||(1==r.nodeType&&n.end(r.nodeName.toLowerCase()),o=r.nextSibling)))for(;null==o&&(r=r.parentNode)!==b;)o=r.nextSibling,1==r.nodeType&&n.end(r.nodeName.toLowerCase());r=o}for(;r=b.firstChild;)b.removeChild(r)}function p(e){for(var t={},n=0,i=e.length;n<i;n++){var r=e[n];t[r.name]=r.value}return t}function f(e){return e.replace(/&/g,"&amp;").replace(y,function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"}).replace(_,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function m(e,t){var n=!1,i=r(e,e.push);return{start:function(e,r){e=l(e),!n&&D[e]&&(n=e),n||!0!==I[e]||(i("<"),i(e),a(r,function(n,r){var o=l(r),a="img"===e&&"src"===o||"background"===o;!0!==$[o]||!0===k[o]&&!t(n,a)||(i(" "),i(r),i('="'),i(f(n)),i('"'))}),i(">"))},end:function(e){e=l(e),n||!0!==I[e]||!0===w[e]||(i("</"),i(e),i(">")),e==n&&(n=!1)},chars:function(e){n||i(f(e))}}}function g(t){if(t.nodeType===e.Node.ELEMENT_NODE)for(var n=t.attributes,i=0,r=n.length;i<r;i++){var o=n[i],a=o.name.toLowerCase();"xmlns:ns1"!==a&&0!==a.lastIndexOf("ns1:",0)||(t.removeAttributeNode(o),i--,r--)}var s=t.firstChild;s&&g(s),(s=t.nextSibling)&&g(s)}var v=!1;this.$get=["$$sanitizeUri",function(e){return v&&o(I,T),function(t){var n=[];return u(t,d(n,function(t,n){return!/^unsafe:/.test(e(t,n))})),n.join("")}}],this.enableSvg=function(e){return s(e)?(v=e,this):v},r=t.bind,o=t.extend,a=t.forEach,s=t.isDefined,l=t.lowercase,c=t.noop,u=i,d=m;var b,y=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,_=/([^\#-~ |!])/g,w=n("area,br,col,hr,img,wbr"),A=n("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),C=n("rp,rt"),x=o({},C,A),S=o({},A,n("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul")),E=o({},C,n("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),T=n("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,stop,svg,switch,text,title,tspan"),D=n("script,style"),I=o({},w,S,E,x),k=n("background,cite,href,longdesc,src,xlink:href"),M=n("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,valign,value,vspace,width"),P=n("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan",!0),$=o({},k,P,M);!function(e){var t;if(!e.document||!e.document.implementation)throw h("noinert","Can't create an inert html document");var n=((t=e.document.implementation.createHTMLDocument("inert")).documentElement||t.getDocumentElement()).getElementsByTagName("body");if(1===n.length)b=n[0];else{var i=t.createElement("html");b=t.createElement("body"),i.appendChild(b),t.appendChild(i)}}(e)}function i(e){var t=[];return d(t,c).chars(e),t.join("")}var r,o,a,s,l,c,u,d,h=t.$$minErr("$sanitize");t.module("ngSanitize",[]).provider("$sanitize",n),t.module("ngSanitize").filter("linky",["$sanitize",function(e){var n=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,r=/^mailto:/i,o=t.$$minErr("linky"),a=t.isDefined,s=t.isFunction,l=t.isObject,c=t.isString;return function(t,u,d){function h(e){e&&b.push(i(e))}if(null==t||""===t)return t;if(!c(t))throw o("notstring","Expected string but received: {0}",t);for(var p,f,m,g=s(d)?d:l(d)?function(){return d}:function(){return{}},v=t,b=[];p=v.match(n);)f=p[0],p[2]||p[4]||(f=(p[3]?"http://":"mailto:")+f),m=p.index,h(v.substr(0,m)),function(e,t){var n,i=g(e);b.push("<a ");for(n in i)b.push(n+'="'+i[n]+'" ');!a(u)||"target"in i||b.push('target="',u,'" '),b.push('href="',e.replace(/"/g,"&quot;"),'">'),h(t),b.push("</a>")}(f,p[0].replace(r,"")),v=v.substring(m+p[0].length);return h(v),e(b.join(""))}}])}(window,window.angular),function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";function e(){return oi.apply(null,arguments)}function t(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function n(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function i(e,t){var n,i=[];for(n=0;n<e.length;++n)i.push(t(e[n],n));return i}function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function o(e,t){for(var n in t)r(t,n)&&(e[n]=t[n]);return r(t,"toString")&&(e.toString=t.toString),r(t,"valueOf")&&(e.valueOf=t.valueOf),e}function a(e,t,n,i){return Ne(e,t,n,i,!0).utc()}function s(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null}}function l(e){return null==e._pf&&(e._pf=s()),e._pf}function c(e){if(null==e._isValid){var t=l(e),n=ai.call(t.parsedDateParts,function(e){return null!=e});e._isValid=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n),e._strict&&(e._isValid=e._isValid&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour)}return e._isValid}function u(e){var t=a(NaN);return null!=e?o(l(t),e):l(t).userInvalidated=!0,t}function d(e){return void 0===e}function h(e,t){var n,i,r;if(d(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),d(t._i)||(e._i=t._i),d(t._f)||(e._f=t._f),d(t._l)||(e._l=t._l),d(t._strict)||(e._strict=t._strict),d(t._tzm)||(e._tzm=t._tzm),d(t._isUTC)||(e._isUTC=t._isUTC),d(t._offset)||(e._offset=t._offset),d(t._pf)||(e._pf=l(t)),d(t._locale)||(e._locale=t._locale),si.length>0)for(n in si)d(r=t[i=si[n]])||(e[i]=r);return e}function p(t){h(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),!1===li&&(li=!0,e.updateOffset(this),li=!1)}function f(e){return e instanceof p||null!=e&&null!=e._isAMomentObject}function m(e){return e<0?Math.ceil(e):Math.floor(e)}function g(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=m(t)),n}function v(e,t,n){var i,r=Math.min(e.length,t.length),o=Math.abs(e.length-t.length),a=0;for(i=0;i<r;i++)(n&&e[i]!==t[i]||!n&&g(e[i])!==g(t[i]))&&a++;return a+o}function b(t){!1===e.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function y(t,n){var i=!0;return o(function(){return null!=e.deprecationHandler&&e.deprecationHandler(null,t),i&&(b(t+"\nArguments: "+Array.prototype.slice.call(arguments).join(", ")+"\n"+(new Error).stack),i=!1),n.apply(this,arguments)},n)}function _(t,n){null!=e.deprecationHandler&&e.deprecationHandler(t,n),ci[t]||(b(n),ci[t]=!0)}function w(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function A(e){return"[object Object]"===Object.prototype.toString.call(e)}function C(e){var t,n;for(n in e)w(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function x(e,t){var n,i=o({},e);for(n in t)r(t,n)&&(A(e[n])&&A(t[n])?(i[n]={},o(i[n],e[n]),o(i[n],t[n])):null!=t[n]?i[n]=t[n]:delete i[n]);return i}function S(e){null!=e&&this.set(e)}function E(e){return e?e.toLowerCase().replace("_","-"):e}function T(e){for(var t,n,i,r,o=0;o<e.length;){for(t=(r=E(e[o]).split("-")).length,n=(n=E(e[o+1]))?n.split("-"):null;t>0;){if(i=D(r.slice(0,t).join("-")))return i;if(n&&n.length>=t&&v(r,n,!0)>=t-1)break;t--}o++}return null}function D(e){var t=null;if(!pi[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=di._abbr,require("./locale/"+e),I(t)}catch(e){}return pi[e]}function I(e,t){var n;return e&&(n=d(t)?P(e):k(e,t))&&(di=n),di._abbr}function k(e,t){return null!==t?(t.abbr=e,null!=pi[e]?(_("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale"),t=x(pi[e]._config,t)):null!=t.parentLocale&&(null!=pi[t.parentLocale]?t=x(pi[t.parentLocale]._config,t):_("parentLocaleUndefined","specified parentLocale is not defined yet")),pi[e]=new S(t),I(e),pi[e]):(delete pi[e],null)}function M(e,t){if(null!=t){var n;null!=pi[e]&&(t=x(pi[e]._config,t)),(n=new S(t)).parentLocale=pi[e],pi[e]=n,I(e)}else null!=pi[e]&&(null!=pi[e].parentLocale?pi[e]=pi[e].parentLocale:null!=pi[e]&&delete pi[e]);return pi[e]}function P(e){var n;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return di;if(!t(e)){if(n=D(e))return n;e=[e]}return T(e)}function $(){return ui(pi)}function N(e,t){var n=e.toLowerCase();fi[n]=fi[n+"s"]=fi[t]=e}function O(e){return"string"==typeof e?fi[e]||fi[e.toLowerCase()]:void 0}function R(e){var t,n,i={};for(n in e)r(e,n)&&(t=O(n))&&(i[t]=e[n]);return i}function L(t,n){return function(i){return null!=i?(B(this,t,i),e.updateOffset(this,n),this):G(this,t)}}function G(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function B(e,t,n){e.isValid()&&e._d["set"+(e._isUTC?"UTC":"")+t](n)}function F(e,t){var n;if("object"==typeof e)for(n in e)this.set(n,e[n]);else if(e=O(e),w(this[e]))return this[e](t);return this}function H(e,t,n){var i=""+Math.abs(e),r=t-i.length;return(e>=0?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+i}function U(e,t,n,i){var r=i;"string"==typeof i&&(r=function(){return this[i]()}),e&&(bi[e]=r),t&&(bi[t[0]]=function(){return H(r.apply(this,arguments),t[1],t[2])}),n&&(bi[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),e)})}function j(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function W(e){var t,n,i=e.match(mi);for(t=0,n=i.length;t<n;t++)bi[i[t]]?i[t]=bi[i[t]]:i[t]=j(i[t]);return function(t){var r,o="";for(r=0;r<n;r++)o+=i[r]instanceof Function?i[r].call(t,e):i[r];return o}}function z(e,t){return e.isValid()?(t=q(t,e.localeData()),vi[t]=vi[t]||W(t),vi[t](e)):e.localeData().invalidDate()}function q(e,t){function n(e){return t.longDateFormat(e)||e}var i=5;for(gi.lastIndex=0;i>=0&&gi.test(e);)e=e.replace(gi,n),gi.lastIndex=0,i-=1;return e}function V(e,t,n){Ri[e]=w(t)?t:function(e,i){return e&&n?n:t}}function Y(e,t){return r(Ri,e)?Ri[e](t._strict,t._locale):new RegExp(K(e))}function K(e){return Q(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,i,r){return t||n||i||r}))}function Q(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function X(e,t){var n,i=t;for("string"==typeof e&&(e=[e]),"number"==typeof t&&(i=function(e,n){n[t]=g(e)}),n=0;n<e.length;n++)Li[e[n]]=i}function Z(e,t){X(e,function(e,n,i,r){i._w=i._w||{},t(e,i._w,i,r)})}function J(e,t,n){null!=t&&r(Li,e)&&Li[e](t,n._a,n,e)}function ee(e,t){return new Date(Date.UTC(e,t+1,0)).getUTCDate()}function te(e,n){return t(this._months)?this._months[e.month()]:this._months[Vi.test(n)?"format":"standalone"][e.month()]}function ne(e,n){return t(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[Vi.test(n)?"format":"standalone"][e.month()]}function ie(e,t,n){var i,r,o,s=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)o=a([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(o,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(o,"").toLocaleLowerCase();return n?"MMM"===t?(r=hi.call(this._shortMonthsParse,s),-1!==r?r:null):(r=hi.call(this._longMonthsParse,s),-1!==r?r:null):"MMM"===t?-1!==(r=hi.call(this._shortMonthsParse,s))?r:(r=hi.call(this._longMonthsParse,s),-1!==r?r:null):-1!==(r=hi.call(this._longMonthsParse,s))?r:(r=hi.call(this._shortMonthsParse,s),-1!==r?r:null)}function re(e,t,n){var i,r,o;if(this._monthsParseExact)return ie.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(r=a([2e3,i]),n&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(r,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(r,"").replace(".","")+"$","i")),n||this._monthsParse[i]||(o="^"+this.months(r,"")+"|^"+this.monthsShort(r,""),this._monthsParse[i]=new RegExp(o.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[i].test(e))return i;if(n&&"MMM"===t&&this._shortMonthsParse[i].test(e))return i;if(!n&&this._monthsParse[i].test(e))return i}}function oe(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=g(t);else if("number"!=typeof(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),ee(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function ae(t){return null!=t?(oe(this,t),e.updateOffset(this,!0),this):G(this,"Month")}function se(){return ee(this.year(),this.month())}function le(e){return this._monthsParseExact?(r(this,"_monthsRegex")||ue.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex}function ce(e){return this._monthsParseExact?(r(this,"_monthsRegex")||ue.call(this),e?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex}function ue(){function e(e,t){return t.length-e.length}var t,n,i=[],r=[],o=[];for(t=0;t<12;t++)n=a([2e3,t]),i.push(this.monthsShort(n,"")),r.push(this.months(n,"")),o.push(this.months(n,"")),o.push(this.monthsShort(n,""));for(i.sort(e),r.sort(e),o.sort(e),t=0;t<12;t++)i[t]=Q(i[t]),r[t]=Q(r[t]),o[t]=Q(o[t]);this._monthsRegex=new RegExp("^("+o.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+i.join("|")+")","i")}function de(e){var t,n=e._a;return n&&-2===l(e).overflow&&(t=n[Bi]<0||n[Bi]>11?Bi:n[Fi]<1||n[Fi]>ee(n[Gi],n[Bi])?Fi:n[Hi]<0||n[Hi]>24||24===n[Hi]&&(0!==n[Ui]||0!==n[ji]||0!==n[Wi])?Hi:n[Ui]<0||n[Ui]>59?Ui:n[ji]<0||n[ji]>59?ji:n[Wi]<0||n[Wi]>999?Wi:-1,l(e)._overflowDayOfYear&&(t<Gi||t>Fi)&&(t=Fi),l(e)._overflowWeeks&&-1===t&&(t=zi),l(e)._overflowWeekday&&-1===t&&(t=qi),l(e).overflow=t),e}function he(e){var t,n,i,r,o,a,s=e._i,c=Zi.exec(s)||Ji.exec(s);if(c){for(l(e).iso=!0,t=0,n=tr.length;t<n;t++)if(tr[t][1].exec(c[1])){r=tr[t][0],i=!1!==tr[t][2];break}if(null==r)return void(e._isValid=!1);if(c[3]){for(t=0,n=nr.length;t<n;t++)if(nr[t][1].exec(c[3])){o=(c[2]||" ")+nr[t][0];break}if(null==o)return void(e._isValid=!1)}if(!i&&null!=o)return void(e._isValid=!1);if(c[4]){if(!er.exec(c[4]))return void(e._isValid=!1);a="Z"}e._f=r+(o||"")+(a||""),Te(e)}else e._isValid=!1}function pe(t){var n=ir.exec(t._i);null===n?(he(t),!1===t._isValid&&(delete t._isValid,e.createFromInputFallback(t))):t._d=new Date(+n[1])}function fe(e,t,n,i,r,o,a){var s=new Date(e,t,n,i,r,o,a);return e<100&&e>=0&&isFinite(s.getFullYear())&&s.setFullYear(e),s}function me(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function ge(e){return ve(e)?366:365}function ve(e){return e%4==0&&e%100!=0||e%400==0}function be(){return ve(this.year())}function ye(e,t,n){var i=7+t-n;return-((7+me(e,0,i).getUTCDay()-t)%7)+i-1}function _e(e,t,n,i,r){var o,a,s=1+7*(t-1)+(7+n-i)%7+ye(e,i,r);return s<=0?a=ge(o=e-1)+s:s>ge(e)?(o=e+1,a=s-ge(e)):(o=e,a=s),{year:o,dayOfYear:a}}function we(e,t,n){var i,r,o=ye(e.year(),t,n),a=Math.floor((e.dayOfYear()-o-1)/7)+1;return a<1?i=a+Ae(r=e.year()-1,t,n):a>Ae(e.year(),t,n)?(i=a-Ae(e.year(),t,n),r=e.year()+1):(r=e.year(),i=a),{week:i,year:r}}function Ae(e,t,n){var i=ye(e,t,n),r=ye(e+1,t,n);return(ge(e)-i+r)/7}function Ce(e,t,n){return null!=e?e:null!=t?t:n}function xe(t){var n=new Date(e.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function Se(e){var t,n,i,r,o=[];if(!e._d){for(i=xe(e),e._w&&null==e._a[Fi]&&null==e._a[Bi]&&Ee(e),e._dayOfYear&&(r=Ce(e._a[Gi],i[Gi]),e._dayOfYear>ge(r)&&(l(e)._overflowDayOfYear=!0),n=me(r,0,e._dayOfYear),e._a[Bi]=n.getUTCMonth(),e._a[Fi]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=i[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[Hi]&&0===e._a[Ui]&&0===e._a[ji]&&0===e._a[Wi]&&(e._nextDay=!0,e._a[Hi]=0),e._d=(e._useUTC?me:fe).apply(null,o),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[Hi]=24)}}function Ee(e){var t,n,i,r,o,a,s,c;null!=(t=e._w).GG||null!=t.W||null!=t.E?(o=1,a=4,n=Ce(t.GG,e._a[Gi],we(Oe(),1,4).year),i=Ce(t.W,1),((r=Ce(t.E,1))<1||r>7)&&(c=!0)):(o=e._locale._week.dow,a=e._locale._week.doy,n=Ce(t.gg,e._a[Gi],we(Oe(),o,a).year),i=Ce(t.w,1),null!=t.d?((r=t.d)<0||r>6)&&(c=!0):null!=t.e?(r=t.e+o,(t.e<0||t.e>6)&&(c=!0)):r=o),i<1||i>Ae(n,o,a)?l(e)._overflowWeeks=!0:null!=c?l(e)._overflowWeekday=!0:(s=_e(n,i,r,o,a),e._a[Gi]=s.year,e._dayOfYear=s.dayOfYear)}function Te(t){if(t._f!==e.ISO_8601){t._a=[],l(t).empty=!0;var n,i,r,o,a,s=""+t._i,c=s.length,u=0;for(r=q(t._f,t._locale).match(mi)||[],n=0;n<r.length;n++)o=r[n],(i=(s.match(Y(o,t))||[])[0])&&((a=s.substr(0,s.indexOf(i))).length>0&&l(t).unusedInput.push(a),s=s.slice(s.indexOf(i)+i.length),u+=i.length),bi[o]?(i?l(t).empty=!1:l(t).unusedTokens.push(o),J(o,i,t)):t._strict&&!i&&l(t).unusedTokens.push(o);l(t).charsLeftOver=c-u,s.length>0&&l(t).unusedInput.push(s),!0===l(t).bigHour&&t._a[Hi]<=12&&t._a[Hi]>0&&(l(t).bigHour=void 0),l(t).parsedDateParts=t._a.slice(0),l(t).meridiem=t._meridiem,t._a[Hi]=De(t._locale,t._a[Hi],t._meridiem),Se(t),de(t)}else he(t)}function De(e,t,n){var i;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((i=e.isPM(n))&&t<12&&(t+=12),i||12!==t||(t=0),t):t}function Ie(e){var t,n,i,r,a;if(0===e._f.length)return l(e).invalidFormat=!0,void(e._d=new Date(NaN));for(r=0;r<e._f.length;r++)a=0,t=h({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[r],Te(t),c(t)&&(a+=l(t).charsLeftOver,a+=10*l(t).unusedTokens.length,l(t).score=a,(null==i||a<i)&&(i=a,n=t));o(e,n||t)}function ke(e){if(!e._d){var t=R(e._i);e._a=i([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),Se(e)}}function Me(e){var t=new p(de(Pe(e)));return t._nextDay&&(t.add(1,"d"),t._nextDay=void 0),t}function Pe(e){var i=e._i,r=e._f;return e._locale=e._locale||P(e._l),null===i||void 0===r&&""===i?u({nullInput:!0}):("string"==typeof i&&(e._i=i=e._locale.preparse(i)),f(i)?new p(de(i)):(t(r)?Ie(e):r?Te(e):n(i)?e._d=i:$e(e),c(e)||(e._d=null),e))}function $e(r){var o=r._i;void 0===o?r._d=new Date(e.now()):n(o)?r._d=new Date(o.valueOf()):"string"==typeof o?pe(r):t(o)?(r._a=i(o.slice(0),function(e){return parseInt(e,10)}),Se(r)):"object"==typeof o?ke(r):"number"==typeof o?r._d=new Date(o):e.createFromInputFallback(r)}function Ne(e,t,n,i,r){var o={};return"boolean"==typeof n&&(i=n,n=void 0),o._isAMomentObject=!0,o._useUTC=o._isUTC=r,o._l=n,o._i=e,o._f=t,o._strict=i,Me(o)}function Oe(e,t,n,i){return Ne(e,t,n,i,!1)}function Re(e,n){var i,r;if(1===n.length&&t(n[0])&&(n=n[0]),!n.length)return Oe();for(i=n[0],r=1;r<n.length;++r)n[r].isValid()&&!n[r][e](i)||(i=n[r]);return i}function Le(){return Re("isBefore",[].slice.call(arguments,0))}function Ge(){return Re("isAfter",[].slice.call(arguments,0))}function Be(e){var t=R(e),n=t.year||0,i=t.quarter||0,r=t.month||0,o=t.week||0,a=t.day||0,s=t.hour||0,l=t.minute||0,c=t.second||0,u=t.millisecond||0;this._milliseconds=+u+1e3*c+6e4*l+1e3*s*60*60,this._days=+a+7*o,this._months=+r+3*i+12*n,this._data={},this._locale=P(),this._bubble()}function Fe(e){return e instanceof Be}function He(e,t){U(e,0,0,function(){var e=this.utcOffset(),n="+";return e<0&&(e=-e,n="-"),n+H(~~(e/60),2)+t+H(~~e%60,2)})}function Ue(e,t){var n=(t||"").match(e)||[],i=((n[n.length-1]||[])+"").match(lr)||["-",0,0],r=60*i[1]+g(i[2]);return"+"===i[0]?r:-r}function je(t,i){var r,o;return i._isUTC?(r=i.clone(),o=(f(t)||n(t)?t.valueOf():Oe(t).valueOf())-r.valueOf(),r._d.setTime(r._d.valueOf()+o),e.updateOffset(r,!1),r):Oe(t).local()}function We(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function ze(t,n){var i,r=this._offset||0;return this.isValid()?null!=t?("string"==typeof t?t=Ue($i,t):Math.abs(t)<16&&(t*=60),!this._isUTC&&n&&(i=We(this)),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),r!==t&&(!n||this._changeInProgress?lt(this,nt(t-r,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?r:We(this):null!=t?this:NaN}function qe(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}function Ve(e){return this.utcOffset(0,e)}function Ye(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(We(this),"m")),this}function Ke(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Ue(Pi,this._i)),this}function Qe(e){return!!this.isValid()&&(e=e?Oe(e).utcOffset():0,(this.utcOffset()-e)%60==0)}function Xe(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ze(){if(!d(this._isDSTShifted))return this._isDSTShifted;var e={};if(h(e,this),(e=Pe(e))._a){var t=e._isUTC?a(e._a):Oe(e._a);this._isDSTShifted=this.isValid()&&v(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Je(){return!!this.isValid()&&!this._isUTC}function et(){return!!this.isValid()&&this._isUTC}function tt(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function nt(e,t){var n,i,o,a=e,s=null;return Fe(e)?a={ms:e._milliseconds,d:e._days,M:e._months}:"number"==typeof e?(a={},t?a[t]=e:a.milliseconds=e):(s=cr.exec(e))?(n="-"===s[1]?-1:1,a={y:0,d:g(s[Fi])*n,h:g(s[Hi])*n,m:g(s[Ui])*n,s:g(s[ji])*n,ms:g(s[Wi])*n}):(s=ur.exec(e))?(n="-"===s[1]?-1:1,a={y:it(s[2],n),M:it(s[3],n),w:it(s[4],n),d:it(s[5],n),h:it(s[6],n),m:it(s[7],n),s:it(s[8],n)}):null==a?a={}:"object"==typeof a&&("from"in a||"to"in a)&&(o=ot(Oe(a.from),Oe(a.to)),(a={}).ms=o.milliseconds,a.M=o.months),i=new Be(a),Fe(e)&&r(e,"_locale")&&(i._locale=e._locale),i}function it(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function rt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function ot(e,t){var n;return e.isValid()&&t.isValid()?(t=je(t,e),e.isBefore(t)?n=rt(e,t):((n=rt(t,e)).milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function at(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function st(e,t){return function(n,i){var r,o;return null===i||isNaN(+i)||(_(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period)."),o=n,n=i,i=o),n="string"==typeof n?+n:n,r=nt(n,i),lt(this,r,e),this}}function lt(t,n,i,r){var o=n._milliseconds,a=at(n._days),s=at(n._months);t.isValid()&&(r=null==r||r,o&&t._d.setTime(t._d.valueOf()+o*i),a&&B(t,"Date",G(t,"Date")+a*i),s&&oe(t,G(t,"Month")+s*i),r&&e.updateOffset(t,a||s))}function ct(e,t){var n=e||Oe(),i=je(n,this).startOf("day"),r=this.diff(i,"days",!0),o=r<-6?"sameElse":r<-1?"lastWeek":r<0?"lastDay":r<1?"sameDay":r<2?"nextDay":r<7?"nextWeek":"sameElse",a=t&&(w(t[o])?t[o]():t[o]);return this.format(a||this.localeData().calendar(o,this,Oe(n)))}function ut(){return new p(this)}function dt(e,t){var n=f(e)?e:Oe(e);return!(!this.isValid()||!n.isValid())&&(t=O(d(t)?"millisecond":t),"millisecond"===t?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())}function ht(e,t){var n=f(e)?e:Oe(e);return!(!this.isValid()||!n.isValid())&&(t=O(d(t)?"millisecond":t),"millisecond"===t?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())}function pt(e,t,n,i){return i=i||"()",("("===i[0]?this.isAfter(e,n):!this.isBefore(e,n))&&(")"===i[1]?this.isBefore(t,n):!this.isAfter(t,n))}function ft(e,t){var n,i=f(e)?e:Oe(e);return!(!this.isValid()||!i.isValid())&&(t=O(t||"millisecond"),"millisecond"===t?this.valueOf()===i.valueOf():(n=i.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))}function mt(e,t){return this.isSame(e,t)||this.isAfter(e,t)}function gt(e,t){return this.isSame(e,t)||this.isBefore(e,t)}function vt(e,t,n){var i,r,o,a;return this.isValid()&&(i=je(e,this)).isValid()?(r=6e4*(i.utcOffset()-this.utcOffset()),t=O(t),"year"===t||"month"===t||"quarter"===t?(a=bt(this,i),"quarter"===t?a/=3:"year"===t&&(a/=12)):(o=this-i,a="second"===t?o/1e3:"minute"===t?o/6e4:"hour"===t?o/36e5:"day"===t?(o-r)/864e5:"week"===t?(o-r)/6048e5:o),n?a:m(a)):NaN}function bt(e,t){var n,i=12*(t.year()-e.year())+(t.month()-e.month()),r=e.clone().add(i,"months");return n=t-r<0?(t-r)/(r-e.clone().add(i-1,"months")):(t-r)/(e.clone().add(i+1,"months")-r),-(i+n)||0}function yt(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function _t(){var e=this.clone().utc();return 0<e.year()&&e.year()<=9999?w(Date.prototype.toISOString)?this.toDate().toISOString():z(e,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):z(e,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function wt(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=z(this,t);return this.localeData().postformat(n)}function At(e,t){return this.isValid()&&(f(e)&&e.isValid()||Oe(e).isValid())?nt({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Ct(e){return this.from(Oe(),e)}function xt(e,t){return this.isValid()&&(f(e)&&e.isValid()||Oe(e).isValid())?nt({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function St(e){return this.to(Oe(),e)}function Et(e){var t;return void 0===e?this._locale._abbr:(null!=(t=P(e))&&(this._locale=t),this)}function Tt(){return this._locale}function Dt(e){switch(e=O(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this}function It(e){return void 0===(e=O(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))}function kt(){return this._d.valueOf()-6e4*(this._offset||0)}function Mt(){return Math.floor(this.valueOf()/1e3)}function Pt(){return this._offset?new Date(this.valueOf()):this._d}function $t(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function Nt(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Ot(){return this.isValid()?this.toISOString():null}function Rt(){return c(this)}function Lt(){return o({},l(this))}function Gt(){return l(this).overflow}function Bt(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ft(e,t){U(0,[e,e.length],0,t)}function Ht(e){return zt.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Ut(e){return zt.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function jt(){return Ae(this.year(),1,4)}function Wt(){var e=this.localeData()._week;return Ae(this.year(),e.dow,e.doy)}function zt(e,t,n,i,r){var o;return null==e?we(this,i,r).year:(o=Ae(e,i,r),t>o&&(t=o),qt.call(this,e,t,n,i,r))}function qt(e,t,n,i,r){var o=_e(e,t,n,i,r),a=me(o.year,0,o.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}function Vt(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Yt(e){return we(e,this._week.dow,this._week.doy).week}function Kt(){return this._week.dow}function Qt(){return this._week.doy}function Xt(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Zt(e){var t=we(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Jt(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function en(e,n){return t(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(n)?"format":"standalone"][e.day()]}function tn(e){return this._weekdaysShort[e.day()]}function nn(e){return this._weekdaysMin[e.day()]}function rn(e,t,n){var i,r,o,s=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)o=a([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===t?(r=hi.call(this._weekdaysParse,s),-1!==r?r:null):"ddd"===t?(r=hi.call(this._shortWeekdaysParse,s),-1!==r?r:null):(r=hi.call(this._minWeekdaysParse,s),-1!==r?r:null):"dddd"===t?-1!==(r=hi.call(this._weekdaysParse,s))?r:-1!==(r=hi.call(this._shortWeekdaysParse,s))?r:(r=hi.call(this._minWeekdaysParse,s),-1!==r?r:null):"ddd"===t?-1!==(r=hi.call(this._shortWeekdaysParse,s))?r:-1!==(r=hi.call(this._weekdaysParse,s))?r:(r=hi.call(this._minWeekdaysParse,s),-1!==r?r:null):-1!==(r=hi.call(this._minWeekdaysParse,s))?r:-1!==(r=hi.call(this._weekdaysParse,s))?r:(r=hi.call(this._shortWeekdaysParse,s),-1!==r?r:null)}function on(e,t,n){var i,r,o;if(this._weekdaysParseExact)return rn.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(r=a([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(r,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(r,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(r,"").replace(".",".?")+"$","i")),this._weekdaysParse[i]||(o="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[i]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[i].test(e))return i;if(n&&"ddd"===t&&this._shortWeekdaysParse[i].test(e))return i;if(n&&"dd"===t&&this._minWeekdaysParse[i].test(e))return i;if(!n&&this._weekdaysParse[i].test(e))return i}}function an(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Jt(e,this.localeData()),this.add(e-t,"d")):t}function sn(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function ln(e){return this.isValid()?null==e?this.day()||7:this.day(this.day()%7?e:e-7):null!=e?this:NaN}function cn(e){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||hn.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex}function un(e){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||hn.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}function dn(e){return this._weekdaysParseExact?(r(this,"_weekdaysRegex")||hn.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}function hn(){function e(e,t){return t.length-e.length}var t,n,i,r,o,s=[],l=[],c=[],u=[];for(t=0;t<7;t++)n=a([2e3,1]).day(t),i=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),o=this.weekdays(n,""),s.push(i),l.push(r),c.push(o),u.push(i),u.push(r),u.push(o);for(s.sort(e),l.sort(e),c.sort(e),u.sort(e),t=0;t<7;t++)l[t]=Q(l[t]),c[t]=Q(c[t]),u[t]=Q(u[t]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+c.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function pn(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}function fn(){return this.hours()%12||12}function mn(){return this.hours()||24}function gn(e,t){U(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function vn(e,t){return t._meridiemParse}function bn(e){return"p"===(e+"").toLowerCase().charAt(0)}function yn(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}function _n(e,t){t[Wi]=g(1e3*("0."+e))}function wn(){return this._isUTC?"UTC":""}function An(){return this._isUTC?"Coordinated Universal Time":""}function Cn(e){return Oe(1e3*e)}function xn(){return Oe.apply(null,arguments).parseZone()}function Sn(e,t,n){var i=this._calendar[e];return w(i)?i.call(t,n):i}function En(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])}function Tn(){return this._invalidDate}function Dn(e){return this._ordinal.replace("%d",e)}function In(e){return e}function kn(e,t,n,i){var r=this._relativeTime[n];return w(r)?r(e,t,n,i):r.replace(/%d/i,e)}function Mn(e,t){var n=this._relativeTime[e>0?"future":"past"];return w(n)?n(t):n.replace(/%s/i,t)}function Pn(e,t,n,i){var r=P(),o=a().set(i,t);return r[n](o,e)}function $n(e,t,n){if("number"==typeof e&&(t=e,e=void 0),e=e||"",null!=t)return Pn(e,t,n,"month");var i,r=[];for(i=0;i<12;i++)r[i]=Pn(e,i,n,"month");return r}function Nn(e,t,n,i){"boolean"==typeof e?("number"==typeof t&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,"number"==typeof t&&(n=t,t=void 0),t=t||"");var r=P(),o=e?r._week.dow:0;if(null!=n)return Pn(t,(n+o)%7,i,"day");var a,s=[];for(a=0;a<7;a++)s[a]=Pn(t,(a+o)%7,i,"day");return s}function On(e,t){return $n(e,t,"months")}function Rn(e,t){return $n(e,t,"monthsShort")}function Ln(e,t,n){return Nn(e,t,n,"weekdays")}function Gn(e,t,n){return Nn(e,t,n,"weekdaysShort")}function Bn(e,t,n){return Nn(e,t,n,"weekdaysMin")}function Fn(){var e=this._data;return this._milliseconds=Or(this._milliseconds),this._days=Or(this._days),this._months=Or(this._months),e.milliseconds=Or(e.milliseconds),e.seconds=Or(e.seconds),e.minutes=Or(e.minutes),e.hours=Or(e.hours),e.months=Or(e.months),e.years=Or(e.years),this}function Hn(e,t,n,i){var r=nt(t,n);return e._milliseconds+=i*r._milliseconds,e._days+=i*r._days,e._months+=i*r._months,e._bubble()}function Un(e,t){return Hn(this,e,t,1)}function jn(e,t){return Hn(this,e,t,-1)}function Wn(e){return e<0?Math.floor(e):Math.ceil(e)}function zn(){var e,t,n,i,r,o=this._milliseconds,a=this._days,s=this._months,l=this._data;return o>=0&&a>=0&&s>=0||o<=0&&a<=0&&s<=0||(o+=864e5*Wn(Vn(s)+a),a=0,s=0),l.milliseconds=o%1e3,e=m(o/1e3),l.seconds=e%60,t=m(e/60),l.minutes=t%60,n=m(t/60),l.hours=n%24,a+=m(n/24),r=m(qn(a)),s+=r,a-=Wn(Vn(r)),i=m(s/12),s%=12,l.days=a,l.months=s,l.years=i,this}function qn(e){return 4800*e/146097}function Vn(e){return 146097*e/4800}function Yn(e){var t,n,i=this._milliseconds;if("month"===(e=O(e))||"year"===e)return t=this._days+i/864e5,n=this._months+qn(t),"month"===e?n:n/12;switch(t=this._days+Math.round(Vn(this._months)),e){case"week":return t/7+i/6048e5;case"day":return t+i/864e5;case"hour":return 24*t+i/36e5;case"minute":return 1440*t+i/6e4;case"second":return 86400*t+i/1e3;case"millisecond":return Math.floor(864e5*t)+i;default:throw new Error("Unknown unit "+e)}}function Kn(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12)}function Qn(e){return function(){return this.as(e)}}function Xn(e){return e=O(e),this[e+"s"]()}function Zn(e){return function(){return this._data[e]}}function Jn(){return m(this.days()/7)}function ei(e,t,n,i,r){return r.relativeTime(t||1,!!n,e,i)}function ti(e,t,n){var i=nt(e).abs(),r=Xr(i.as("s")),o=Xr(i.as("m")),a=Xr(i.as("h")),s=Xr(i.as("d")),l=Xr(i.as("M")),c=Xr(i.as("y")),u=r<Zr.s&&["s",r]||o<=1&&["m"]||o<Zr.m&&["mm",o]||a<=1&&["h"]||a<Zr.h&&["hh",a]||s<=1&&["d"]||s<Zr.d&&["dd",s]||l<=1&&["M"]||l<Zr.M&&["MM",l]||c<=1&&["y"]||["yy",c];return u[2]=t,u[3]=+e>0,u[4]=n,ei.apply(null,u)}function ni(e,t){return void 0!==Zr[e]&&(void 0===t?Zr[e]:(Zr[e]=t,!0))}function ii(e){var t=this.localeData(),n=ti(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)}function ri(){var e,t,n,i=Jr(this._milliseconds)/1e3,r=Jr(this._days),o=Jr(this._months);t=m((e=m(i/60))/60),i%=60,e%=60;var a=n=m(o/12),s=o%=12,l=r,c=t,u=e,d=i,h=this.asSeconds();return h?(h<0?"-":"")+"P"+(a?a+"Y":"")+(s?s+"M":"")+(l?l+"D":"")+(c||u||d?"T":"")+(c?c+"H":"")+(u?u+"M":"")+(d?d+"S":""):"P0D"}var oi,ai;ai=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,i=0;i<n;i++)if(i in t&&e.call(this,t[i],i,t))return!0;return!1};var si=e.momentProperties=[],li=!1,ci={};e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;var ui;ui=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)r(e,t)&&n.push(t);return n};var di,hi,pi={},fi={},mi=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,gi=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,vi={},bi={},yi=/\d/,_i=/\d\d/,wi=/\d{3}/,Ai=/\d{4}/,Ci=/[+-]?\d{6}/,xi=/\d\d?/,Si=/\d\d\d\d?/,Ei=/\d\d\d\d\d\d?/,Ti=/\d{1,3}/,Di=/\d{1,4}/,Ii=/[+-]?\d{1,6}/,ki=/\d+/,Mi=/[+-]?\d+/,Pi=/Z|[+-]\d\d:?\d\d/gi,$i=/Z|[+-]\d\d(?::?\d\d)?/gi,Ni=/[+-]?\d+(\.\d{1,3})?/,Oi=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Ri={},Li={},Gi=0,Bi=1,Fi=2,Hi=3,Ui=4,ji=5,Wi=6,zi=7,qi=8;hi=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},U("M",["MM",2],"Mo",function(){return this.month()+1}),U("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),U("MMMM",0,0,function(e){return this.localeData().months(this,e)}),N("month","M"),V("M",xi),V("MM",xi,_i),V("MMM",function(e,t){return t.monthsShortRegex(e)}),V("MMMM",function(e,t){return t.monthsRegex(e)}),X(["M","MM"],function(e,t){t[Bi]=g(e)-1}),X(["MMM","MMMM"],function(e,t,n,i){var r=n._locale.monthsParse(e,i,n._strict);null!=r?t[Bi]=r:l(n).invalidMonth=e});var Vi=/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/,Yi="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),Ki="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),Qi=Oi,Xi=Oi,Zi=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,Ji=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?/,er=/Z|[+-]\d\d(?::?\d\d)?/,tr=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],nr=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],ir=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=y("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),U("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),U(0,["YY",2],0,function(){return this.year()%100}),U(0,["YYYY",4],0,"year"),U(0,["YYYYY",5],0,"year"),U(0,["YYYYYY",6,!0],0,"year"),N("year","y"),V("Y",Mi),V("YY",xi,_i),V("YYYY",Di,Ai),V("YYYYY",Ii,Ci),V("YYYYYY",Ii,Ci),X(["YYYYY","YYYYYY"],Gi),X("YYYY",function(t,n){n[Gi]=2===t.length?e.parseTwoDigitYear(t):g(t)}),X("YY",function(t,n){n[Gi]=e.parseTwoDigitYear(t)}),X("Y",function(e,t){t[Gi]=parseInt(e,10)}),e.parseTwoDigitYear=function(e){return g(e)+(g(e)>68?1900:2e3)};var rr=L("FullYear",!0);e.ISO_8601=function(){};var or=y("moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var e=Oe.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:u()}),ar=y("moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var e=Oe.apply(null,arguments);return this.isValid()&&e.isValid()?e>this?this:e:u()}),sr=function(){return Date.now?Date.now():+new Date};He("Z",":"),He("ZZ",""),V("Z",$i),V("ZZ",$i),X(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Ue($i,e)});var lr=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var cr=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?\d*)?$/,ur=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;nt.fn=Be.prototype;var dr=st(1,"add"),hr=st(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var pr=y("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});U(0,["gg",2],0,function(){return this.weekYear()%100}),U(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ft("gggg","weekYear"),Ft("ggggg","weekYear"),Ft("GGGG","isoWeekYear"),Ft("GGGGG","isoWeekYear"),N("weekYear","gg"),N("isoWeekYear","GG"),V("G",Mi),V("g",Mi),V("GG",xi,_i),V("gg",xi,_i),V("GGGG",Di,Ai),V("gggg",Di,Ai),V("GGGGG",Ii,Ci),V("ggggg",Ii,Ci),Z(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,i){t[i.substr(0,2)]=g(e)}),Z(["gg","GG"],function(t,n,i,r){n[r]=e.parseTwoDigitYear(t)}),U("Q",0,"Qo","quarter"),N("quarter","Q"),V("Q",yi),X("Q",function(e,t){t[Bi]=3*(g(e)-1)}),U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),N("week","w"),N("isoWeek","W"),V("w",xi),V("ww",xi,_i),V("W",xi),V("WW",xi,_i),Z(["w","ww","W","WW"],function(e,t,n,i){t[i.substr(0,1)]=g(e)});var fr={dow:0,doy:6};U("D",["DD",2],"Do","date"),N("date","D"),V("D",xi),V("DD",xi,_i),V("Do",function(e,t){return e?t._ordinalParse:t._ordinalParseLenient}),X(["D","DD"],Fi),X("Do",function(e,t){t[Fi]=g(e.match(xi)[0],10)});var mr=L("Date",!0);U("d",0,"do","day"),U("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),U("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),U("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),U("e",0,0,"weekday"),U("E",0,0,"isoWeekday"),N("day","d"),N("weekday","e"),N("isoWeekday","E"),V("d",xi),V("e",xi),V("E",xi),V("dd",function(e,t){return t.weekdaysMinRegex(e)}),V("ddd",function(e,t){return t.weekdaysShortRegex(e)}),V("dddd",function(e,t){return t.weekdaysRegex(e)}),Z(["dd","ddd","dddd"],function(e,t,n,i){var r=n._locale.weekdaysParse(e,i,n._strict);null!=r?t.d=r:l(n).invalidWeekday=e}),Z(["d","e","E"],function(e,t,n,i){t[i]=g(e)});var gr="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),vr="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),br="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),yr=Oi,_r=Oi,wr=Oi;U("DDD",["DDDD",3],"DDDo","dayOfYear"),N("dayOfYear","DDD"),V("DDD",Ti),V("DDDD",wi),X(["DDD","DDDD"],function(e,t,n){n._dayOfYear=g(e)}),U("H",["HH",2],0,"hour"),U("h",["hh",2],0,fn),U("k",["kk",2],0,mn),U("hmm",0,0,function(){return""+fn.apply(this)+H(this.minutes(),2)}),U("hmmss",0,0,function(){return""+fn.apply(this)+H(this.minutes(),2)+H(this.seconds(),2)}),U("Hmm",0,0,function(){return""+this.hours()+H(this.minutes(),2)}),U("Hmmss",0,0,function(){return""+this.hours()+H(this.minutes(),2)+H(this.seconds(),2)}),gn("a",!0),gn("A",!1),N("hour","h"),V("a",vn),V("A",vn),V("H",xi),V("h",xi),V("HH",xi,_i),V("hh",xi,_i),V("hmm",Si),V("hmmss",Ei),V("Hmm",Si),V("Hmmss",Ei),X(["H","HH"],Hi),X(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),X(["h","hh"],function(e,t,n){t[Hi]=g(e),l(n).bigHour=!0}),X("hmm",function(e,t,n){var i=e.length-2;t[Hi]=g(e.substr(0,i)),t[Ui]=g(e.substr(i)),l(n).bigHour=!0}),X("hmmss",function(e,t,n){var i=e.length-4,r=e.length-2;t[Hi]=g(e.substr(0,i)),t[Ui]=g(e.substr(i,2)),t[ji]=g(e.substr(r)),l(n).bigHour=!0}),X("Hmm",function(e,t,n){var i=e.length-2;t[Hi]=g(e.substr(0,i)),t[Ui]=g(e.substr(i))}),X("Hmmss",function(e,t,n){var i=e.length-4,r=e.length-2;t[Hi]=g(e.substr(0,i)),t[Ui]=g(e.substr(i,2)),t[ji]=g(e.substr(r))});var Ar=/[ap]\.?m?\.?/i,Cr=L("Hours",!0);U("m",["mm",2],0,"minute"),N("minute","m"),V("m",xi),V("mm",xi,_i),X(["m","mm"],Ui);var xr=L("Minutes",!1);U("s",["ss",2],0,"second"),N("second","s"),V("s",xi),V("ss",xi,_i),X(["s","ss"],ji);var Sr=L("Seconds",!1);U("S",0,0,function(){return~~(this.millisecond()/100)}),U(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),U(0,["SSS",3],0,"millisecond"),U(0,["SSSS",4],0,function(){return 10*this.millisecond()}),U(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),U(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),U(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),U(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),U(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),N("millisecond","ms"),V("S",Ti,yi),V("SS",Ti,_i),V("SSS",Ti,wi);var Er;for(Er="SSSS";Er.length<=9;Er+="S")V(Er,ki);for(Er="S";Er.length<=9;Er+="S")X(Er,_n);var Tr=L("Milliseconds",!1);U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var Dr=p.prototype;Dr.add=dr,Dr.calendar=ct,Dr.clone=ut,Dr.diff=vt,Dr.endOf=It,Dr.format=wt,Dr.from=At,Dr.fromNow=Ct,Dr.to=xt,Dr.toNow=St,Dr.get=F,Dr.invalidAt=Gt,Dr.isAfter=dt,Dr.isBefore=ht,Dr.isBetween=pt,Dr.isSame=ft,Dr.isSameOrAfter=mt,Dr.isSameOrBefore=gt,Dr.isValid=Rt,Dr.lang=pr,Dr.locale=Et,Dr.localeData=Tt,Dr.max=ar,Dr.min=or,Dr.parsingFlags=Lt,Dr.set=F,Dr.startOf=Dt,Dr.subtract=hr,Dr.toArray=$t,Dr.toObject=Nt,Dr.toDate=Pt,Dr.toISOString=_t,Dr.toJSON=Ot,Dr.toString=yt,Dr.unix=Mt,Dr.valueOf=kt,Dr.creationData=Bt,Dr.year=rr,Dr.isLeapYear=be,Dr.weekYear=Ht,Dr.isoWeekYear=Ut,Dr.quarter=Dr.quarters=Vt,Dr.month=ae,Dr.daysInMonth=se,Dr.week=Dr.weeks=Xt,Dr.isoWeek=Dr.isoWeeks=Zt,Dr.weeksInYear=Wt,Dr.isoWeeksInYear=jt,Dr.date=mr,Dr.day=Dr.days=an,Dr.weekday=sn,Dr.isoWeekday=ln,Dr.dayOfYear=pn,Dr.hour=Dr.hours=Cr,Dr.minute=Dr.minutes=xr,Dr.second=Dr.seconds=Sr,Dr.millisecond=Dr.milliseconds=Tr,Dr.utcOffset=ze,Dr.utc=Ve,Dr.local=Ye,Dr.parseZone=Ke,Dr.hasAlignedHourOffset=Qe,Dr.isDST=Xe,Dr.isDSTShifted=Ze,Dr.isLocal=Je,Dr.isUtcOffset=et,Dr.isUtc=tt,Dr.isUTC=tt,Dr.zoneAbbr=wn,Dr.zoneName=An,Dr.dates=y("dates accessor is deprecated. Use date instead.",mr),Dr.months=y("months accessor is deprecated. Use month instead",ae),Dr.years=y("years accessor is deprecated. Use year instead",rr),Dr.zone=y("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",qe);var Ir=Dr,kr={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Mr={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Pr=/\d{1,2}/,$r={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Nr=S.prototype;Nr._calendar=kr,Nr.calendar=Sn,Nr._longDateFormat=Mr,Nr.longDateFormat=En,Nr._invalidDate="Invalid date",Nr.invalidDate=Tn,Nr._ordinal="%d",Nr.ordinal=Dn,Nr._ordinalParse=Pr,Nr.preparse=In,Nr.postformat=In,Nr._relativeTime=$r,Nr.relativeTime=kn,Nr.pastFuture=Mn,Nr.set=C,Nr.months=te,Nr._months=Yi,Nr.monthsShort=ne,Nr._monthsShort=Ki,Nr.monthsParse=re,Nr._monthsRegex=Xi,Nr.monthsRegex=ce,Nr._monthsShortRegex=Qi,Nr.monthsShortRegex=le,Nr.week=Yt,Nr._week=fr,Nr.firstDayOfYear=Qt,Nr.firstDayOfWeek=Kt,Nr.weekdays=en,Nr._weekdays=gr,Nr.weekdaysMin=nn,Nr._weekdaysMin=br,Nr.weekdaysShort=tn,Nr._weekdaysShort=vr,Nr.weekdaysParse=on,Nr._weekdaysRegex=yr,Nr.weekdaysRegex=cn,Nr._weekdaysShortRegex=_r,Nr.weekdaysShortRegex=un,Nr._weekdaysMinRegex=wr,Nr.weekdaysMinRegex=dn,Nr.isPM=bn,Nr._meridiemParse=Ar,Nr.meridiem=yn,I("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===g(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),e.lang=y("moment.lang is deprecated. Use moment.locale instead.",I),e.langData=y("moment.langData is deprecated. Use moment.localeData instead.",P);var Or=Math.abs,Rr=Qn("ms"),Lr=Qn("s"),Gr=Qn("m"),Br=Qn("h"),Fr=Qn("d"),Hr=Qn("w"),Ur=Qn("M"),jr=Qn("y"),Wr=Zn("milliseconds"),zr=Zn("seconds"),qr=Zn("minutes"),Vr=Zn("hours"),Yr=Zn("days"),Kr=Zn("months"),Qr=Zn("years"),Xr=Math.round,Zr={s:45,m:45,h:22,d:26,M:11},Jr=Math.abs,eo=Be.prototype;return eo.abs=Fn,eo.add=Un,eo.subtract=jn,eo.as=Yn,eo.asMilliseconds=Rr,eo.asSeconds=Lr,eo.asMinutes=Gr,eo.asHours=Br,eo.asDays=Fr,eo.asWeeks=Hr,eo.asMonths=Ur,eo.asYears=jr,eo.valueOf=Kn,eo._bubble=zn,eo.get=Xn,eo.milliseconds=Wr,eo.seconds=zr,eo.minutes=qr,eo.hours=Vr,eo.days=Yr,eo.weeks=Jn,eo.months=Kr,eo.years=Qr,eo.humanize=ii,eo.toISOString=ri,eo.toString=ri,eo.toJSON=ri,eo.locale=Et,eo.localeData=Tt,eo.toIsoString=y("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ri),eo.lang=pr,U("X",0,0,"unix"),U("x",0,0,"valueOf"),V("x",Mi),V("X",Ni),X("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),X("x",function(e,t,n){n._d=new Date(g(e))}),e.version="2.13.0",function(e){oi=e}(Oe),e.fn=Ir,e.min=Le,e.max=Ge,e.now=sr,e.utc=a,e.unix=Cn,e.months=On,e.isDate=n,e.locale=I,e.invalid=u,e.duration=nt,e.isMoment=f,e.weekdays=Ln,e.parseZone=xn,e.localeData=P,e.isDuration=Fe,e.monthsShort=Rn,e.weekdaysMin=Bn,e.defineLocale=k,e.updateLocale=M,e.locales=$,e.weekdaysShort=Gn,e.normalizeUnits=O,e.relativeTimeThreshold=ni,e.prototype=Ir,e}),function(){function e(e){var t=function(e,i){return n(e,r({},t,i||{}))};return r(t,{language:"en",delimiter:", ",spacer:" ",units:["year","month","week","day","hour","minute","second"],languages:{},halfUnit:!0,round:!1},e)}function t(){return u.apply(u,arguments)}function n(e,t){if(0===(e=Math.abs(e)))return"0";var n=t.languages[t.language]||c[t.language];if(!n)throw new Error("No language "+n+".");for(var r,o,a,s,u=[],d=0,h=t.units.length;d<h;d++){if("s"===(r=t.units[d])[r.length-1]&&(r=r.substring(0,r.length-1)),o=l[r],0===u.length&&t.halfUnit&&(s=e/o*2)===Math.floor(s))return i(s/2,r,n,t.spacer);d+1===h?(a=e/o,t.round&&(a=Math.round(a))):a=Math.floor(e/o),a&&u.push(i(a,r,n,t.spacer)),e-=a*o}return u.join(t.delimiter)}function i(e,t,n,i){var r,o=n[t];return r="function"==typeof o?o(e):o,e+i+r}function r(e){for(var t,n=1;n<arguments.length;n++){t=arguments[n];for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i])}return e}function o(e){return 1===e?0:Math.floor(e)!==e?1:2<=e%10&&e%10<=4&&!(10<e%100&&e%100<20)?2:3}function a(e){return Math.floor(e)!==e?2:0===e||e>=5&&e<=20||e%10>=5&&e%10<=9||e%10==0?0:1===e||e%10==1?1:e>1?2:0}function s(){var e=[];for(var t in c)c.hasOwnProperty(t)&&e.push(t);return e}var l={year:315576e5,month:26298e5,week:6048e5,day:864e5,hour:36e5,minute:6e4,second:1e3,millisecond:1},c={ar:{year:function(e){return 1===e?"سنة":"سنوات"},month:function(e){return 1===e?"شهر":"أشهر"},week:function(e){return 1===e?"أسبوع":"أسابيع"},day:function(e){return 1===e?"يوم":"أيام"},hour:function(e){return 1===e?"ساعة":"ساعات"},minute:function(e){return 1===e?"دقيقة":"دقائق"},second:function(e){return 1===e?"ثانية":"ثواني"},millisecond:function(e){return 1===e?"جزء من الثانية":"أجزاء من الثانية"}},ca:{year:function(e){return"any"+(1!==e?"s":"")},month:function(e){return"mes"+(1!==e?"os":"")},week:function(e){return"setman"+(1!==e?"es":"a")},day:function(e){return"di"+(1!==e?"es":"a")},hour:function(e){return"hor"+(1!==e?"es":"a")},minute:function(e){return"minut"+(1!==e?"s":"")},second:function(e){return"segon"+(1!==e?"s":"")},millisecond:function(e){return"milisegon"+(1!==e?"s":"")}},da:{year:"år",month:function(e){return"måned"+(1!==e?"er":"")},week:function(e){return"uge"+(1!==e?"r":"")},day:function(e){return"dag"+(1!==e?"e":"")},hour:function(e){return"time"+(1!==e?"r":"")},minute:function(e){return"minut"+(1!==e?"ter":"")},second:function(e){return"sekund"+(1!==e?"er":"")},millisecond:function(e){return"millisekund"+(1!==e?"er":"")}},de:{year:function(e){return"Jahr"+(1!==e?"e":"")},month:function(e){return"Monat"+(1!==e?"e":"")},week:function(e){return"Woche"+(1!==e?"n":"")},day:function(e){return"Tag"+(1!==e?"e":"")},hour:function(e){return"Stunde"+(1!==e?"n":"")},minute:function(e){return"Minute"+(1!==e?"n":"")},second:function(e){return"Sekunde"+(1!==e?"n":"")},millisecond:function(e){return"Millisekunde"+(1!==e?"n":"")}},en:{year:function(e){return"year"+(1!==e?"s":"")},month:function(e){return"month"+(1!==e?"s":"")},week:function(e){return"week"+(1!==e?"s":"")},day:function(e){return"day"+(1!==e?"s":"")},hour:function(e){return"hour"+(1!==e?"s":"")},minute:function(e){return"minute"+(1!==e?"s":"")},second:function(e){return"second"+(1!==e?"s":"")},millisecond:function(e){return"millisecond"+(1!==e?"s":"")}},es:{year:function(e){return"año"+(1!==e?"s":"")},month:function(e){return"mes"+(1!==e?"es":"")},week:function(e){return"semana"+(1!==e?"s":"")},day:function(e){return"día"+(1!==e?"s":"")},hour:function(e){return"hora"+(1!==e?"s":"")},minute:function(e){return"minuto"+(1!==e?"s":"")},second:function(e){return"segundo"+(1!==e?"s":"")},millisecond:function(e){return"milisegundo"+(1!==e?"s":"")}},fr:{year:function(e){return"an"+(1!==e?"s":"")},month:"mois",week:function(e){return"semaine"+(1!==e?"s":"")},day:function(e){return"jour"+(1!==e?"s":"")},hour:function(e){return"heure"+(1!==e?"s":"")},minute:function(e){return"minute"+(1!==e?"s":"")},second:function(e){return"seconde"+(1!==e?"s":"")},millisecond:function(e){return"milliseconde"+(1!==e?"s":"")}},hu:{year:"év",month:"hónap",week:"hét",day:"nap",hour:"óra",minute:"perc",second:"másodperc",millisecond:"ezredmásodperc"},it:{year:function(e){return"ann"+(1!==e?"i":"o")},month:function(e){return"mes"+(1!==e?"i":"e")},week:function(e){return"settiman"+(1!==e?"e":"a")},day:function(e){return"giorn"+(1!==e?"i":"o")},hour:function(e){return"or"+(1!==e?"e":"a")},minute:function(e){return"minut"+(1!==e?"i":"o")},second:function(e){return"second"+(1!==e?"i":"o")},millisecond:function(e){return"millisecond"+(1!==e?"i":"o")}},ja:{year:"年",month:"月",week:"週",day:"日",hour:"時間",minute:"分",second:"秒",millisecond:"ミリ秒"},ko:{year:"년",month:"개월",week:"주일",day:"일",hour:"시간",minute:"분",second:"초",millisecond:"밀리 초"},nl:{year:"jaar",month:function(e){return 1===e?"maand":"maanden"},week:function(e){return 1===e?"week":"weken"},day:function(e){return 1===e?"dag":"dagen"},hour:"uur",minute:function(e){return 1===e?"minuut":"minuten"},second:function(e){return 1===e?"seconde":"seconden"},millisecond:function(e){return 1===e?"milliseconde":"milliseconden"}},nob:{year:"år",month:function(e){return"måned"+(1!==e?"er":"")},week:function(e){return"uke"+(1!==e?"r":"")},day:function(e){return"dag"+(1!==e?"er":"")},hour:function(e){return"time"+(1!==e?"r":"")},minute:function(e){return"minutt"+(1!==e?"er":"")},second:function(e){return"sekund"+(1!==e?"er":"")},millisecond:function(e){return"millisekund"+(1!==e?"er":"")}},pl:{year:function(e){return["rok","roku","lata","lat"][o(e)]},month:function(e){return["miesiąc","miesiąca","miesiące","miesięcy"][o(e)]},week:function(e){return["tydzień","tygodnia","tygodnie","tygodni"][o(e)]},day:function(e){return["dzień","dnia","dni","dni"][o(e)]},hour:function(e){return["godzina","godziny","godziny","godzin"][o(e)]},minute:function(e){return["minuta","minuty","minuty","minut"][o(e)]},second:function(e){return["sekunda","sekundy","sekundy","sekund"][o(e)]},millisecond:function(e){return["milisekunda","milisekundy","milisekundy","milisekund"][o(e)]}},pt:{year:function(e){return"ano"+(1!==e?"s":"")},month:function(e){return 1!==e?"meses":"mês"},week:function(e){return"semana"+(1!==e?"s":"")},day:function(e){return"dia"+(1!==e?"s":"")},hour:function(e){return"hora"+(1!==e?"s":"")},minute:function(e){return"minuto"+(1!==e?"s":"")},second:function(e){return"segundo"+(1!==e?"s":"")},millisecond:function(e){return"milissegundo"+(1!==e?"s":"")}},ru:{year:function(e){return["лет","год","года"][a(e)]},month:function(e){return["месяцев","месяц","месяца"][a(e)]},week:function(e){return["недель","неделя","недели"][a(e)]},day:function(e){return["дней","день","дня"][a(e)]},hour:function(e){return["часов","час","часа"][a(e)]},minute:function(e){return["минут","минута","минуты"][a(e)]},second:function(e){return["секунд","секунда","секунды"][a(e)]},millisecond:function(e){return["миллисекунд","миллисекунда","миллисекунды"][a(e)]}},sv:{year:"år",month:function(e){return"månad"+(1!==e?"er":"")},week:function(e){return"veck"+(1!==e?"or":"a")},day:function(e){return"dag"+(1!==e?"ar":"")},hour:function(e){return"timm"+(1!==e?"ar":"e")},minute:function(e){return"minut"+(1!==e?"er":"")},second:function(e){return"sekund"+(1!==e?"er":"")},millisecond:function(e){return"millisekund"+(1!==e?"er":"")}},tr:{year:"yıl",month:"ay",week:"hafta",day:"gün",hour:"saat",minute:"dakika",second:"saniye",millisecond:"milisaniye"},"zh-CN":{year:"年",month:"个月",week:"周",day:"天",hour:"小时",minute:"分钟",second:"秒",millisecond:"毫秒"},"zh-TW":{year:"年",month:"個月",week:"周",day:"天",hour:"小時",minute:"分鐘",second:"秒",millisecond:"毫秒"}},u=e({});t.humanizer=e,t.getSupportedLanguages=s,"function"==typeof define&&define.amd?define(function(){return t}):"undefined"!=typeof module&&module.exports?module.exports=t:this.humanizeDuration=t}();var timerModule=angular.module("timer",[]).directive("timer",["$compile",function(e){return{restrict:"EA",replace:!1,scope:{interval:"=interval",startTimeAttr:"=startTime",endTimeAttr:"=endTime",countdownattr:"=countdown",finishCallback:"&finishCallback",autoStart:"&autoStart",language:"@?",fallback:"@?",maxTimeUnit:"=",seconds:"=?",minutes:"=?",hours:"=?",days:"=?",months:"=?",years:"=?",secondsS:"=?",minutesS:"=?",hoursS:"=?",daysS:"=?",monthsS:"=?",yearsS:"=?"},controller:["$scope","$element","$attrs","$timeout","I18nService","$interpolate","progressBarService",function(t,n,i,r,o,a,s){function l(){t.timeoutId&&clearTimeout(t.timeoutId)}function c(){var e={};void 0!==i.startTime&&(t.millis=moment().diff(moment(t.startTimeAttr))),e=u.getTimeUnits(t.millis),t.maxTimeUnit&&"day"!==t.maxTimeUnit?"second"===t.maxTimeUnit?(t.seconds=Math.floor(t.millis/1e3),t.minutes=0,t.hours=0,t.days=0,t.months=0,t.years=0):"minute"===t.maxTimeUnit?(t.seconds=Math.floor(t.millis/1e3%60),t.minutes=Math.floor(t.millis/6e4),t.hours=0,t.days=0,t.months=0,t.years=0):"hour"===t.maxTimeUnit?(t.seconds=Math.floor(t.millis/1e3%60),t.minutes=Math.floor(t.millis/6e4%60),t.hours=Math.floor(t.millis/36e5),t.days=0,t.months=0,t.years=0):"month"===t.maxTimeUnit?(t.seconds=Math.floor(t.millis/1e3%60),t.minutes=Math.floor(t.millis/6e4%60),t.hours=Math.floor(t.millis/36e5%24),t.days=Math.floor(t.millis/36e5/24%30),t.months=Math.floor(t.millis/36e5/24/30),t.years=0):"year"===t.maxTimeUnit&&(t.seconds=Math.floor(t.millis/1e3%60),t.minutes=Math.floor(t.millis/6e4%60),t.hours=Math.floor(t.millis/36e5%24),t.days=Math.floor(t.millis/36e5/24%30),t.months=Math.floor(t.millis/36e5/24/30%12),t.years=Math.floor(t.millis/36e5/24/365)):(t.seconds=Math.floor(t.millis/1e3%60),t.minutes=Math.floor(t.millis/6e4%60),t.hours=Math.floor(t.millis/36e5%24),t.days=Math.floor(t.millis/36e5/24),t.months=0,t.years=0),t.secondsS=1===t.seconds?"":"s",t.minutesS=1===t.minutes?"":"s",t.hoursS=1===t.hours?"":"s",t.daysS=1===t.days?"":"s",t.monthsS=1===t.months?"":"s",t.yearsS=1===t.years?"":"s",t.secondUnit=e.seconds,t.minuteUnit=e.minutes,t.hourUnit=e.hours,t.dayUnit=e.days,t.monthUnit=e.months,t.yearUnit=e.years,t.sseconds=t.seconds<10?"0"+t.seconds:t.seconds,t.mminutes=t.minutes<10?"0"+t.minutes:t.minutes,t.hhours=t.hours<10?"0"+t.hours:t.hours,t.ddays=t.days<10?"0"+t.days:t.days,t.mmonths=t.months<10?"0"+t.months:t.months,t.yyears=t.years<10?"0"+t.years:t.years}"function"!=typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),t.autoStart=i.autoStart||i.autostart,t.language=t.language||"en",t.fallback=t.fallback||"en",t.$watch("language",function(e,n){void 0!==e&&u.init(e,t.fallback)});var u=new o;u.init(t.language,t.fallback),t.displayProgressBar=0,t.displayProgressActive="active",0===n.html().trim().length?n.append(e("<span>"+a.startSymbol()+"millis"+a.endSymbol()+"</span>")(t)):n.append(e(n.contents())(t)),t.startTime=null,t.endTime=null,t.timeoutId=null,t.countdown=angular.isNumber(t.countdownattr)&&parseInt(t.countdownattr,10)>=0?parseInt(t.countdownattr,10):void 0,t.isRunning=!1,t.$on("timer-start",function(){t.start()}),t.$on("timer-resume",function(){t.resume()}),t.$on("timer-stop",function(){t.stop()}),t.$on("timer-clear",function(){t.clear()}),t.$on("timer-reset",function(){t.reset()}),t.$on("timer-set-countdown",function(e,n){t.countdown=n}),t.$watch("startTimeAttr",function(e,n){e!==n&&t.isRunning&&t.start()}),t.$watch("endTimeAttr",function(e,n){e!==n&&t.isRunning&&t.start()}),t.start=n[0].start=function(){t.startTime=t.startTimeAttr?moment(t.startTimeAttr):moment(),t.endTime=t.endTimeAttr?moment(t.endTimeAttr):null,angular.isNumber(t.countdown)||(t.countdown=angular.isNumber(t.countdownattr)&&parseInt(t.countdownattr,10)>0?parseInt(t.countdownattr,10):void 0),l(),d(),t.isRunning=!0},t.resume=n[0].resume=function(){l(),t.countdownattr&&(t.countdown+=1),t.startTime=moment().diff(moment(t.stoppedTime).diff(moment(t.startTime))),d(),t.isRunning=!0},t.stop=t.pause=n[0].stop=n[0].pause=function(){var e=t.timeoutId;t.clear(),t.$emit("timer-stopped",{timeoutId:e,millis:t.millis,seconds:t.seconds,minutes:t.minutes,hours:t.hours,days:t.days})},t.clear=n[0].clear=function(){t.stoppedTime=moment(),l(),t.timeoutId=null,t.isRunning=!1},t.reset=n[0].reset=function(){t.startTime=t.startTimeAttr?moment(t.startTimeAttr):moment(),t.endTime=t.endTimeAttr?moment(t.endTimeAttr):null,t.countdown=angular.isNumber(t.countdownattr)&&parseInt(t.countdownattr,10)>0?parseInt(t.countdownattr,10):void 0,l(),d(),t.isRunning=!1,t.clear()},n.bind("$destroy",function(){l(),t.isRunning=!1}),t.countdownattr?(t.millis=1e3*t.countdownattr,t.addCDSeconds=n[0].addCDSeconds=function(e){t.countdown+=e,t.$digest(),t.isRunning||t.start()},t.$on("timer-add-cd-seconds",function(e,n){r(function(){t.addCDSeconds(n)})}),t.$on("timer-set-countdown-seconds",function(e,n){t.isRunning||t.clear(),t.countdown=n,t.millis=1e3*n,c()})):t.millis=0,c();var d=function e(){var i=null;t.millis=moment().diff(t.startTime);var r=t.millis%1e3;if(t.endTimeAttr&&(i=t.endTimeAttr,t.millis=moment(t.endTime).diff(moment()),r=t.interval-t.millis%1e3),t.countdownattr&&(i=t.countdownattr,t.millis=1e3*t.countdown),t.millis<0)return t.stop(),t.millis=0,c(),void(t.finishCallback&&t.$eval(t.finishCallback));c(),t.timeoutId=setTimeout(function(){e(),t.$digest()},t.interval-r),t.$emit("timer-tick",{timeoutId:t.timeoutId,millis:t.millis,timerElement:n[0]}),t.countdown>0?t.countdown--:t.countdown<=0&&(t.stop(),t.finishCallback&&t.$eval(t.finishCallback)),null!==i&&(t.progressBar=s.calculateProgressBar(t.startTime,t.millis,t.endTime,t.countdownattr),100===t.progressBar&&(t.displayProgressActive=""))};void 0!==t.autoStart&&!0!==t.autoStart||t.start()}]}}]);"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports=timerModule);var app=angular.module("timer");app.factory("I18nService",function(){var e=function(){};return e.prototype.language="en",e.prototype.fallback="en",e.prototype.timeHumanizer={},e.prototype.init=function(e,t){var n=humanizeDuration.getSupportedLanguages();this.fallback=void 0!==t?t:"en",-1===n.indexOf(t)&&(this.fallback="en"),this.language=e,-1===n.indexOf(e)&&(this.language=this.fallback),moment.locale(this.language),this.timeHumanizer=humanizeDuration.humanizer({language:this.language,halfUnit:!1})},e.prototype.getTimeUnits=function(e){var t=1e3*Math.round(e/1e3),n={};return void 0!==this.timeHumanizer?n={millis:this.timeHumanizer(t,{units:["milliseconds"]}),seconds:this.timeHumanizer(t,{units:["seconds"]}),minutes:this.timeHumanizer(t,{units:["minutes","seconds"]}),hours:this.timeHumanizer(t,{units:["hours","minutes","seconds"]}),days:this.timeHumanizer(t,{units:["days","hours","minutes","seconds"]}),months:this.timeHumanizer(t,{units:["months","days","hours","minutes","seconds"]}),years:this.timeHumanizer(t,{units:["years","months","days","hours","minutes","seconds"]})}:console.error('i18nService has not been initialized. You must call i18nService.init("en") for example'),n},e}),(app=angular.module("timer")).factory("progressBarService",function(){var e=function(){};return e.prototype.calculateProgressBar=function(e,t,n,i){var r=0;return t/=1e3,r=null!==n?100*t/moment(n).diff(e,"seconds"):100*t/i,r=100-r,(r=Math.round(10*r)/10)>100&&(r=100),r},new e}),function(e,t){"function"==typeof define&&define.amd?define([],function(){return t()}):"object"==typeof exports?module.exports=t():t()}(0,function(){function e(e){"use strict";var t=e.storageKey(),n=e.storage(),i=function(){var i=e.preferredLanguage();angular.isString(i)?e.use(i):n.put(t,e.use())};i.displayName="fallbackFromIncorrectStorageValue",n?n.get(t)?e.use(n.get(t)).catch(i):i():angular.isString(e.preferredLanguage())&&e.use(e.preferredLanguage())}function t(){"use strict";var e,t,n=null,i=!1,r=!1;(t={sanitize:function(e,t){return"text"===t&&(e=a(e)),e},escape:function(e,t){return"text"===t&&(e=o(e)),e},sanitizeParameters:function(e,t){return"params"===t&&(e=s(e,a)),e},escapeParameters:function(e,t){return"params"===t&&(e=s(e,o)),e}}).escaped=t.escapeParameters,this.addStrategy=function(e,n){return t[e]=n,this},this.removeStrategy=function(e){return delete t[e],this},this.useStrategy=function(e){return i=!0,n=e,this},this.$get=["$injector","$log",function(o,a){var s={},l=function(e,n,i){return angular.forEach(i,function(i){if(angular.isFunction(i))e=i(e,n);else if(angular.isFunction(t[i]))e=t[i](e,n);else{if(!angular.isString(t[i]))throw new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '"+i+"'");if(!s[t[i]])try{s[t[i]]=o.get(t[i])}catch(e){throw s[t[i]]=function(){},new Error("pascalprecht.translate.$translateSanitization: Unknown sanitization strategy: '"+i+"'")}e=s[t[i]](e,n)}}),e},c=function(){i||r||(a.warn("pascalprecht.translate.$translateSanitization: No sanitization strategy has been configured. This can have serious security implications. See http://angular-translate.github.io/docs/#/guide/19_security for details."),r=!0)};return o.has("$sanitize")&&(e=o.get("$sanitize")),{useStrategy:function(e){return function(t){e.useStrategy(t)}}(this),sanitize:function(e,t,i){if(n||c(),arguments.length<3&&(i=n),!i)return e;var r=angular.isArray(i)?i:[i];return l(e,t,r)}}}];var o=function(e){var t=angular.element("<div></div>");return t.text(e),t.html()},a=function(t){if(!e)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot find $sanitize service. Either include the ngSanitize module (https://docs.angularjs.org/api/ngSanitize) or use a sanitization strategy which does not depend on $sanitize, such as 'escape'.");return e(t)},s=function(e,t,n){if(angular.isObject(e)){var i=angular.isArray(e)?[]:{};if(n){if(n.indexOf(e)>-1)throw new Error("pascalprecht.translate.$translateSanitization: Error cannot interpolate parameter due recursive object")}else n=[];return n.push(e),angular.forEach(e,function(e,r){i[r]=s(e,t,n)}),n.splice(-1,1),i}return angular.isNumber(e)?e:t(e)}}function n(e,t,n,i){"use strict";var r,o,a,s,l,c,u,d,h,p,f,m,g,v,b,y,_={},w=[],A=e,C=[],x="translate-cloak",S=!1,E=!1,T=".",D=!1,I=0,k=!0,M="default",P={default:function(e){return(e||"").split("-").join("_")},java:function(e){var t=(e||"").split("-").join("_"),n=t.split("_");return n.length>1?n[0].toLowerCase()+"_"+n[1].toUpperCase():t},bcp47:function(e){var t=(e||"").split("_").join("-"),n=t.split("-");return n.length>1?n[0].toLowerCase()+"-"+n[1].toUpperCase():t},"iso639-1":function(e){return(e||"").split("_").join("-").split("-")[0].toLowerCase()}},$=function(){if(angular.isFunction(i.getLocale))return i.getLocale();var e,n,r=t.$get().navigator,o=["language","browserLanguage","systemLanguage","userLanguage"];if(angular.isArray(r.languages))for(e=0;e<r.languages.length;e++)if((n=r.languages[e])&&n.length)return n;for(e=0;e<o.length;e++)if((n=r[o[e]])&&n.length)return n;return null};$.displayName="angular-translate/service: getFirstBrowserLanguage";var N=function(){var e=$()||"";return P[M]&&(e=P[M](e)),e};N.displayName="angular-translate/service: getLocale";var O=function(e,t){for(var n=0,i=e.length;n<i;n++)if(e[n]===t)return n;return-1},R=function(){return this.toString().replace(/^\s+|\s+$/g,"")},L=function(e){if(e){for(var t=[],n=angular.lowercase(e),i=0,r=w.length;i<r;i++)t.push(angular.lowercase(w[i]));if(O(t,n)>-1)return e;if(o){var a;for(var s in o)if(o.hasOwnProperty(s)){var l=!1,c=Object.prototype.hasOwnProperty.call(o,s)&&angular.lowercase(s)===angular.lowercase(e);if("*"===s.slice(-1)&&(l=s.slice(0,-1)===e.slice(0,s.length-1)),(c||l)&&(a=o[s],O(t,angular.lowercase(a))>-1))return a}}var u=e.split("_");return u.length>1&&O(t,angular.lowercase(u[0]))>-1?u[0]:void 0}},G=function(e,t){if(!e&&!t)return _;if(e&&!t){if(angular.isString(e))return _[e]}else angular.isObject(_[e])||(_[e]={}),angular.extend(_[e],B(t));return this};this.translations=G,this.cloakClassName=function(e){return e?(x=e,this):x},this.nestedObjectDelimeter=function(e){return e?(T=e,this):T};var B=function(e,t,n,i){var r,o,a;t||(t=[]),n||(n={});for(r in e)Object.prototype.hasOwnProperty.call(e,r)&&(a=e[r],angular.isObject(a)?B(a,t.concat(r),n,r):(o=t.length?""+t.join(T)+T+r:r,t.length&&r===i&&(n[""+t.join(T)]="@:"+o),n[o]=a));return n};B.displayName="flatObject",this.addInterpolation=function(e){return C.push(e),this},this.useMessageFormatInterpolation=function(){return this.useInterpolation("$translateMessageFormatInterpolation")},this.useInterpolation=function(e){return p=e,this},this.useSanitizeValueStrategy=function(e){return n.useStrategy(e),this},this.preferredLanguage=function(e){return e?(F(e),this):r};var F=function(e){return e&&(r=e),r};this.translationNotFoundIndicator=function(e){return this.translationNotFoundIndicatorLeft(e),this.translationNotFoundIndicatorRight(e),this},this.translationNotFoundIndicatorLeft=function(e){return e?(g=e,this):g},this.translationNotFoundIndicatorRight=function(e){return e?(v=e,this):v},this.fallbackLanguage=function(e){return H(e),this};var H=function(e){return e?(angular.isString(e)?(s=!0,a=[e]):angular.isArray(e)&&(s=!1,a=e),angular.isString(r)&&O(a,r)<0&&a.push(r),this):s?a[0]:a};this.use=function(e){if(e){if(!_[e]&&!f)throw new Error("$translateProvider couldn't find translationTable for langKey: '"+e+"'");return l=e,this}return l},this.resolveClientLocale=function(){return N()};var U=function(e){return e?(A=e,this):d?d+A:A};this.storageKey=U,this.useUrlLoader=function(e,t){return this.useLoader("$translateUrlLoader",angular.extend({url:e},t))},this.useStaticFilesLoader=function(e){return this.useLoader("$translateStaticFilesLoader",e)},this.useLoader=function(e,t){return f=e,m=t||{},this},this.useLocalStorage=function(){return this.useStorage("$translateLocalStorage")},this.useCookieStorage=function(){return this.useStorage("$translateCookieStorage")},this.useStorage=function(e){return u=e,this},this.storagePrefix=function(e){return e?(d=e,this):e},this.useMissingTranslationHandlerLog=function(){return this.useMissingTranslationHandler("$translateMissingTranslationHandlerLog")},this.useMissingTranslationHandler=function(e){return h=e,this},this.usePostCompiling=function(e){return S=!!e,this},this.forceAsyncReload=function(e){return E=!!e,this},this.uniformLanguageTag=function(e){return e?angular.isString(e)&&(e={standard:e}):e={},M=e.standard,this},this.determinePreferredLanguage=function(e){var t=e&&angular.isFunction(e)?e():N();return r=w.length?L(t)||t:t,this},this.registerAvailableLanguageKeys=function(e,t){return e?(w=e,t&&(o=t),this):w},this.useLoaderCache=function(e){return!1===e?b=void 0:!0===e?b=!0:void 0===e?b="$translationCache":e&&(b=e),this},this.directivePriority=function(e){return void 0===e?I:(I=e,this)},this.statefulFilter=function(e){return void 0===e?k:(k=e,this)},this.postProcess=function(e){return y=e||void 0,this},this.$get=["$log","$injector","$rootScope","$q",function(e,t,n,i){var o,d,M,P=t.get(p||"$translateDefaultInterpolation"),$=!1,j={},W={},z=function(e,t,n,s,c){!l&&r&&(l=r);var h=c&&c!==l?L(c)||c:l;if(c&&le(c),angular.isArray(e)){return function(e){for(var r={},o=[],a=0,l=e.length;a<l;a++)o.push(function(e){var o=i.defer(),a=function(t){r[e]=t,o.resolve([e,t])};return z(e,t,n,s,c).then(a,a),o.promise}(e[a]));return i.all(o).then(function(){return r})}(e)}var p=i.defer();e&&(e=R.apply(e));var f=function(){var e=r?W[r]:W[h];if(d=0,u&&!e){var t=o.get(A);if(e=W[t],a&&a.length){var n=O(a,t);d=0===n?1:0,O(a,r)<0&&a.push(r)}}return e}();if(f){var m=function(){c||(h=l),re(e,t,n,s,h).then(p.resolve,p.reject)};m.displayName="promiseResolved",f.finally(m)}else re(e,t,n,s,h).then(p.resolve,p.reject);return p.promise},q=function(e){return g&&(e=[g,e].join(" ")),v&&(e=[e,v].join(" ")),e},V=function(e){l=e,u&&o.put(z.storageKey(),l),n.$emit("$translateChangeSuccess",{language:e}),P.setLocale(l);var t=function(e,t){j[t].setLocale(l)};t.displayName="eachInterpolatorLocaleSetter",angular.forEach(j,t),n.$emit("$translateChangeEnd",{language:e})},Y=function(e){if(!e)throw"No language key specified for loading.";var r=i.defer();n.$emit("$translateLoadingStart",{language:e}),$=!0;var o=b;"string"==typeof o&&(o=t.get(o));var a=angular.extend({},m,{key:e,$http:angular.extend({},{cache:o},m.$http)}),s=function(t){var i={};n.$emit("$translateLoadingSuccess",{language:e}),angular.isArray(t)?angular.forEach(t,function(e){angular.extend(i,B(e))}):angular.extend(i,B(t)),$=!1,r.resolve({key:e,table:i}),n.$emit("$translateLoadingEnd",{language:e})};s.displayName="onLoaderSuccess";var l=function(e){n.$emit("$translateLoadingError",{language:e}),r.reject(e),n.$emit("$translateLoadingEnd",{language:e})};return l.displayName="onLoaderError",t.get(f)(a).then(s,l),r.promise};if(u&&(!(o=t.get(u)).get||!o.put))throw new Error("Couldn't use storage '"+u+"', missing get() or put() method!");if(C.length){var K=function(e){var n=t.get(e);n.setLocale(r||l),j[n.getInterpolationIdentifier()]=n};K.displayName="interpolationFactoryAdder",angular.forEach(C,K)}var Q=function(e){var t=i.defer();if(Object.prototype.hasOwnProperty.call(_,e))t.resolve(_[e]);else if(W[e]){var n=function(e){G(e.key,e.table),t.resolve(e.table)};n.displayName="translationTableResolver",W[e].then(n,t.reject)}else t.reject();return t.promise},X=function(e,t,n,r){var o=i.defer(),a=function(i){if(Object.prototype.hasOwnProperty.call(i,t)){r.setLocale(e);var a=i[t];if("@:"===a.substr(0,2))X(e,a.substr(2),n,r).then(o.resolve,o.reject);else{var s=r.interpolate(i[t],n);s=se(t,i[t],s,n,e),o.resolve(s)}r.setLocale(l)}else o.reject()};return a.displayName="fallbackTranslationResolver",Q(e).then(a,o.reject),o.promise},Z=function(e,t,n,i){var r,o=_[e];if(o&&Object.prototype.hasOwnProperty.call(o,t)){if(i.setLocale(e),"@:"===(r=i.interpolate(o[t],n)).substr(0,2))return Z(e,r.substr(2),n,i);i.setLocale(l)}return r},J=function(e,n,i){if(h){var r=t.get(h)(e,l,n,i);return void 0!==r?r:e}return e},ee=function(e,t,n,r,o){var s=i.defer();if(e<a.length){var l=a[e];X(l,t,n,r).then(function(e){s.resolve(e)},function(){return ee(e+1,t,n,r,o).then(s.resolve,s.reject)})}else o?s.resolve(o):h?s.resolve(J(t,n)):s.reject(J(t,n));return s.promise},te=function(e,t,n,i){var r;if(e<a.length){var o=a[e];(r=Z(o,t,n,i))||(r=te(e+1,t,n,i))}return r},ne=function(e,t,n,i){return ee(M>0?M:d,e,t,n,i)},ie=function(e,t,n){return te(M>0?M:d,e,t,n)},re=function(e,t,n,r,o){var s=i.defer(),l=o?_[o]:_,c=n?j[n]:P;if(l&&Object.prototype.hasOwnProperty.call(l,e)){var u=l[e];if("@:"===u.substr(0,2))z(u.substr(2),t,n,r,o).then(s.resolve,s.reject);else{var d=c.interpolate(u,t);d=se(e,u,d,t,o),s.resolve(d)}}else{var p;h&&!$&&(p=J(e,t,r)),o&&a&&a.length?ne(e,t,c,r).then(function(e){s.resolve(e)},function(e){s.reject(q(e))}):h&&!$&&p?r?s.resolve(r):s.resolve(p):r?s.resolve(r):s.reject(q(e))}return s.promise},oe=function(e,t,n,i){var r,o=i?_[i]:_,s=P;if(j&&Object.prototype.hasOwnProperty.call(j,n)&&(s=j[n]),o&&Object.prototype.hasOwnProperty.call(o,e)){var l=o[e];r="@:"===l.substr(0,2)?oe(l.substr(2),t,n,i):s.interpolate(l,t)}else{var c;h&&!$&&(c=J(e,t)),i&&a&&a.length?(d=0,r=ie(e,t,s)):r=h&&!$&&c?c:q(e)}return r},ae=function(e){c===e&&(c=void 0),W[e]=void 0},se=function(e,n,i,r,o){var a=y;return a&&("string"==typeof a&&(a=t.get(a)),a)?a(e,n,i,r,o):i},le=function(e){_[e]||!f||W[e]||(W[e]=Y(e).then(function(e){G(e.key,e.table)}))};z.preferredLanguage=function(e){return e&&F(e),r},z.cloakClassName=function(){return x},z.nestedObjectDelimeter=function(){return T},z.fallbackLanguage=function(e){if(void 0!==e&&null!==e){if(H(e),f&&a&&a.length)for(var t=0,n=a.length;t<n;t++)W[a[t]]||(W[a[t]]=Y(a[t]));z.use(z.use())}return s?a[0]:a},z.useFallbackLanguage=function(e){if(void 0!==e&&null!==e)if(e){var t=O(a,e);t>-1&&(M=t)}else M=0},z.proposedLanguage=function(){return c},z.storage=function(){return o},z.negotiateLocale=L,z.use=function(e){if(!e)return l;var t=i.defer();n.$emit("$translateChangeStart",{language:e});var r=L(e);return w.length>0&&!r?i.reject(e):(r&&(e=r),c=e,!E&&_[e]||!f||W[e]?W[e]?W[e].then(function(e){return c===e.key&&V(e.key),t.resolve(e.key),e},function(e){return!l&&a&&a.length>0?z.use(a[0]).then(t.resolve,t.reject):t.reject(e)}):(t.resolve(e),V(e)):(W[e]=Y(e).then(function(n){return G(n.key,n.table),t.resolve(n.key),c===e&&V(n.key),n},function(e){return n.$emit("$translateChangeError",{language:e}),t.reject(e),n.$emit("$translateChangeEnd",{language:e}),i.reject(e)}),W[e].finally(function(){ae(e)})),t.promise)},z.resolveClientLocale=function(){return N()},z.storageKey=function(){return U()},z.isPostCompilingEnabled=function(){return S},z.isForceAsyncReloadEnabled=function(){return E},z.refresh=function(e){function t(){o.resolve(),n.$emit("$translateRefreshEnd",{language:e})}function r(){o.reject(),n.$emit("$translateRefreshEnd",{language:e})}if(!f)throw new Error("Couldn't refresh translation table, no loader registered!");var o=i.defer();if(n.$emit("$translateRefreshStart",{language:e}),e)if(_[e]){var s=function(n){G(n.key,n.table),e===l&&V(l),t()};s.displayName="refreshPostProcessor",Y(e).then(s,r)}else r();else{var c=[],u={};if(a&&a.length)for(var d=0,h=a.length;d<h;d++)c.push(Y(a[d])),u[a[d]]=!0;l&&!u[l]&&c.push(Y(l));var p=function(e){_={},angular.forEach(e,function(e){G(e.key,e.table)}),l&&V(l),t()};p.displayName="refreshPostProcessor",i.all(c).then(p,r)}return o.promise},z.instant=function(e,t,n,i){var o=i&&i!==l?L(i)||i:l;if(null===e||angular.isUndefined(e))return e;if(i&&le(i),angular.isArray(e)){for(var s={},c=0,u=e.length;c<u;c++)s[e[c]]=z.instant(e[c],t,n,i);return s}if(angular.isString(e)&&e.length<1)return e;e&&(e=R.apply(e));var d,p=[];r&&p.push(r),o&&p.push(o),a&&a.length&&(p=p.concat(a));for(var f=0,m=p.length;f<m;f++){var b=p[f];if(_[b]&&void 0!==_[b][e]&&(d=oe(e,t,n,o)),void 0!==d)break}return d||""===d||(g||v?d=q(e):(d=P.interpolate(e,t),h&&!$&&(d=J(e,t)))),d},z.versionInfo=function(){return"2.11.0"},z.loaderCache=function(){return b},z.directivePriority=function(){return I},z.statefulFilter=function(){return k},z.isReady=function(){return D};var ce=i.defer();ce.promise.then(function(){D=!0}),z.onReady=function(e){var t=i.defer();return angular.isFunction(e)&&t.promise.then(e),D?t.resolve():ce.promise.then(t.resolve),t.promise},z.getAvailableLanguageKeys=function(){return w.length>0?w:null};var ue=n.$on("$translateReady",function(){ce.resolve(),ue(),ue=null}),de=n.$on("$translateChangeEnd",function(){ce.resolve(),de(),de=null});if(f){if(angular.equals(_,{})&&z.use()&&z.use(z.use()),a&&a.length)for(var he=function(e){return G(e.key,e.table),n.$emit("$translateChangeEnd",{language:e.key}),e},pe=0,fe=a.length;pe<fe;pe++){var me=a[pe];!E&&_[me]||(W[me]=Y(me).then(he))}}else n.$emit("$translateReady",{language:z.use()});return z}]}function i(e,t){"use strict";var n,i={};return i.setLocale=function(e){n=e},i.getInterpolationIdentifier=function(){return"default"},i.useSanitizeValueStrategy=function(e){return t.useStrategy(e),this},i.interpolate=function(n,i){i=i||{},i=t.sanitize(i,"params");var r=e(n)(i);return r=t.sanitize(r,"text")},i}function r(e,t,n,i,r,a){"use strict";var s=function(){return this.toString().replace(/^\s+|\s+$/g,"")};return{restrict:"AE",scope:!0,priority:e.directivePriority(),compile:function(t,l){var c=l.translateValues?l.translateValues:void 0,u=l.translateInterpolation?l.translateInterpolation:void 0,d=t[0].outerHTML.match(/translate-value-+/i),h="^(.*)("+n.startSymbol()+".*"+n.endSymbol()+")(.*)",p="^(.*)"+n.startSymbol()+"(.*)"+n.endSymbol()+"(.*)";return function(t,f,m){t.interpolateParams={},t.preText="",t.postText="",t.translateNamespace=o(t);var g={},v=function(e){if(angular.isFunction(v._unwatchOld)&&(v._unwatchOld(),v._unwatchOld=void 0),angular.equals(e,"")||!angular.isDefined(e)){var i=s.apply(f.text()),r=i.match(h);if(angular.isArray(r)){t.preText=r[1],t.postText=r[3],g.translate=n(r[2])(t.$parent);var o=i.match(p);angular.isArray(o)&&o[2]&&o[2].length&&(v._unwatchOld=t.$watch(o[2],function(e){g.translate=e,w()}))}else g.translate=i||void 0}else g.translate=e;w()};!function(e,n,i){if(n.translateValues&&angular.extend(e,r(n.translateValues)(t.$parent)),d)for(var o in i)Object.prototype.hasOwnProperty.call(n,o)&&"translateValue"===o.substr(0,14)&&"translateValues"!==o&&(e[angular.lowercase(o.substr(14,1))+o.substr(15)]=i[o])}(t.interpolateParams,m,l);var b=!0;m.$observe("translate",function(e){void 0===e?v(""):""===e&&b||(g.translate=e,w()),b=!1});for(var y in m)m.hasOwnProperty(y)&&"translateAttr"===y.substr(0,13)&&function(e){m.$observe(e,function(t){g[e]=t,w()})}(y);if(m.$observe("translateDefault",function(e){t.defaultText=e,w()}),c&&m.$observe("translateValues",function(e){e&&t.$parent.$watch(function(){angular.extend(t.interpolateParams,r(e)(t.$parent))})}),d){for(var _ in m)Object.prototype.hasOwnProperty.call(m,_)&&"translateValue"===_.substr(0,14)&&"translateValues"!==_&&function(e){m.$observe(e,function(n){var i=angular.lowercase(e.substr(14,1))+e.substr(15);t.interpolateParams[i]=n})}(_)}var w=function(){for(var e in g)g.hasOwnProperty(e)&&void 0!==g[e]&&A(e,g[e],t,t.interpolateParams,t.defaultText,t.translateNamespace)},A=function(t,n,i,r,o,a){n?(a&&"."===n.charAt(0)&&(n=a+n),e(n,r,u,o,i.translateLanguage).then(function(e){C(e,i,!0,t)},function(e){C(e,i,!1,t)})):C(n,i,!1,t)},C=function(t,n,r,o){if(r||void 0!==n.defaultText&&(t=n.defaultText),"translate"===o){(r||!r&&void 0===m.translateKeepContent)&&f.empty().append(n.preText+t+n.postText);var a=e.isPostCompilingEnabled(),s=void 0!==l.translateCompile,c=s&&"false"!==l.translateCompile;(a&&!s||c)&&i(f.contents())(n)}else{var u=m.$attr[o];"data-"===u.substr(0,5)&&(u=u.substr(5)),u=u.substr(15),f.attr(u,t)}};(c||d||m.translateDefault)&&t.$watch("interpolateParams",w,!0);var x=t.$on("translateLanguageChanged",w),S=a.$on("$translateChangeSuccess",w);f.text().length?v(m.translate?m.translate:""):m.translate&&v(m.translate),w(),t.$on("$destroy",function(){x(),S()})}}}}function o(e){"use strict";return e.translateNamespace?e.translateNamespace:e.$parent?o(e.$parent):void 0}function a(e,t){"use strict";return{compile:function(n){var i=function(){n.addClass(e.cloakClassName())},r=function(){n.removeClass(e.cloakClassName())};return e.onReady(function(){r()}),i(),function(n,o,a){a.translateCloak&&a.translateCloak.length&&(a.$observe("translateCloak",function(t){e(t).then(r,i)}),t.$on("$translateChangeSuccess",function(){e(a.translateCloak).then(r,i)}))}}}}function s(){"use strict";return{restrict:"A",scope:!0,compile:function(){return{pre:function(e,t,n){e.translateNamespace=o(e),e.translateNamespace&&"."===n.translateNamespace.charAt(0)?e.translateNamespace+=n.translateNamespace:e.translateNamespace=n.translateNamespace}}}}}function o(e){"use strict";return e.translateNamespace?e.translateNamespace:e.$parent?o(e.$parent):void 0}function l(){"use strict";return{restrict:"A",scope:!0,compile:function(){return function(e,t,n){n.$observe("translateLanguage",function(t){e.translateLanguage=t}),e.$watch("translateLanguage",function(){e.$broadcast("translateLanguageChanged")})}}}}function c(e,t){"use strict";var n=function(n,i,r,o){return angular.isObject(i)||(i=e(i)(this)),t.instant(n,i,r,o)};return t.statefulFilter()&&(n.$stateful=!0),n}function u(e){"use strict";return e("translations")}return e.$inject=["$translate"],n.$inject=["$STORAGE_KEY","$windowProvider","$translateSanitizationProvider","pascalprechtTranslateOverrider"],i.$inject=["$interpolate","$translateSanitization"],r.$inject=["$translate","$q","$interpolate","$compile","$parse","$rootScope"],a.$inject=["$translate","$rootScope"],c.$inject=["$parse","$translate"],u.$inject=["$cacheFactory"],angular.module("pascalprecht.translate",["ng"]).run(e),e.displayName="runTranslate",angular.module("pascalprecht.translate").provider("$translateSanitization",t),angular.module("pascalprecht.translate").constant("pascalprechtTranslateOverrider",{}).provider("$translate",n),n.displayName="displayName",angular.module("pascalprecht.translate").factory("$translateDefaultInterpolation",i),i.displayName="$translateDefaultInterpolation",angular.module("pascalprecht.translate").constant("$STORAGE_KEY","NG_TRANSLATE_LANG_KEY"),angular.module("pascalprecht.translate").directive("translate",r),r.displayName="translateDirective",angular.module("pascalprecht.translate").directive("translateCloak",a),a.displayName="translateCloakDirective",angular.module("pascalprecht.translate").directive("translateNamespace",s),s.displayName="translateNamespaceDirective",angular.module("pascalprecht.translate").directive("translateLanguage",l),l.displayName="translateLanguageDirective",angular.module("pascalprecht.translate").filter("translate",c),c.displayName="translateFilterFactory",angular.module("pascalprecht.translate").factory("$translationCache",u),u.displayName="$translationCache","pascalprecht.translate"}),function(e,t){"function"==typeof define&&define.amd?define([],function(){return t()}):"object"==typeof exports?module.exports=t():t()}(0,function(){function e(){"use strict";function e(e,t){this.name=e,this.isActive=!0,this.tables={},this.priority=t||0}function t(e){return Object.prototype.hasOwnProperty.call(a,e)}function n(e){return angular.isString(e)&&""!==e}function i(e){if(!n(e))throw new TypeError("Invalid type of a first argument, a non-empty string expected.");return t(e)&&a[e].isActive}function r(e,t){for(var n in t)t[n]&&t[n].constructor&&t[n].constructor===Object?(e[n]=e[n]||{},r(e[n],t[n])):e[n]=t[n];return e}function o(){var e=[];for(var t in a)a[t].isActive&&e.push(a[t]);return e.sort(function(e,t){return e.priority-t.priority}),e}e.prototype.parseUrl=function(e,t){return angular.isFunction(e)?e(this.name,t):e.replace(/\{part\}/g,this.name).replace(/\{lang\}/g,t)},e.prototype.getTable=function(e,t,n,i,r,o){if(this.tables[e])return t.when(this.tables[e]);var a=this;return n(angular.extend({method:"GET",url:this.parseUrl(r,e)},i)).then(function(t){return a.tables[e]=t.data,t.data},function(){return o?o(a.name,e).then(function(t){return a.tables[e]=t,t},function(){return t.reject(a.name)}):t.reject(a.name)})};var a={};this.addPart=function(i,r){if(!n(i))throw new TypeError("Couldn't add part, part name has to be a string!");return t(i)||(a[i]=new e(i,r)),a[i].isActive=!0,this},this.setPart=function(i,r,o){if(!n(i))throw new TypeError("Couldn't set part.`lang` parameter has to be a string!");if(!n(r))throw new TypeError("Couldn't set part.`part` parameter has to be a string!");if("object"!=typeof o||null===o)throw new TypeError("Couldn't set part. `table` parameter has to be an object!");return t(r)||(a[r]=new e(r),a[r].isActive=!1),a[r].tables[i]=o,this},this.deletePart=function(e){if(!n(e))throw new TypeError("Couldn't delete part, first arg has to be string.");return t(e)&&(a[e].isActive=!1),this},this.isPartAvailable=i,this.$get=["$rootScope","$injector","$q","$http",function(s,l,c,u){var d=function(e){if(!n(e.key))throw new TypeError("Unable to load data, a key is not a non-empty string.");if(!n(e.urlTemplate)&&!angular.isFunction(e.urlTemplate))throw new TypeError("Unable to load data, a urlTemplate is not a non-empty string or not a function.");var t=e.loadFailureHandler;if(void 0!==t){if(!angular.isString(t))throw new Error("Unable to load data, a loadFailureHandler is not a string.");t=l.get(t)}var i=[],a=o();return angular.forEach(a,function(n){i.push(n.getTable(e.key,c,u,e.$http,e.urlTemplate,t)),n.urlTemplate=e.urlTemplate}),c.all(i).then(function(){var t={};return a=o(),angular.forEach(a,function(n){r(t,n.tables[e.key])}),t},function(){return c.reject(e.key)})};return d.addPart=function(i,r){if(!n(i))throw new TypeError("Couldn't add part, first arg has to be a string");return t(i)?a[i].isActive||(a[i].isActive=!0,s.$emit("$translatePartialLoaderStructureChanged",i)):(a[i]=new e(i,r),s.$emit("$translatePartialLoaderStructureChanged",i)),d},d.deletePart=function(e,i){if(!n(e))throw new TypeError("Couldn't delete part, first arg has to be string");if(void 0===i)i=!1;else if("boolean"!=typeof i)throw new TypeError("Invalid type of a second argument, a boolean expected.");if(t(e)){var r=a[e].isActive;if(i){var o=l.get("$translate").loaderCache();"string"==typeof o&&(o=l.get(o)),"object"==typeof o&&angular.forEach(a[e].tables,function(t,n){o.remove(a[e].parseUrl(a[e].urlTemplate,n))}),delete a[e]}else a[e].isActive=!1;r&&s.$emit("$translatePartialLoaderStructureChanged",e)}return d},d.isPartLoaded=function(e,t){return angular.isDefined(a[e])&&angular.isDefined(a[e].tables[t])},d.getRegisteredParts=function(){var e=[];return angular.forEach(a,function(t){t.isActive&&e.push(t.name)}),e},d.isPartAvailable=i,d}]}return angular.module("pascalprecht.translate").provider("$translatePartialLoader",e),e.displayName="$translatePartialLoader","pascalprecht.translate"}),function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):"object"==typeof exports?module.exports=e(require("jquery"),require("moment")):e(jQuery,moment)}(function(e,t){function n(){var t,n,i,r,o,a=Array.prototype.slice.call(arguments),s={};for(t=0;t<Re.length;t++){for(n=Re[t],i=null,r=0;r<a.length;r++)o=a[r][n],e.isPlainObject(o)?i=e.extend(i||{},o):null!=o&&(i=null);null!==i&&(s[n]=i)}return a.unshift({}),a.push(s),e.extend.apply(e,a)}function i(t){var n,i={views:t.views||{}};return e.each(t,function(t,r){"views"!=t&&(e.isPlainObject(r)&&!/(time|duration|interval)$/i.test(t)&&-1==e.inArray(t,Re)?(n=null,e.each(r,function(e,r){/^(month|week|day|default|basic(Week|Day)?|agenda(Week|Day)?)$/.test(e)?(i.views[e]||(i.views[e]={}),i.views[e][t]=r):(n||(n={}),n[e]=r)}),n&&(i[t]=n)):i[t]=r)}),i}function r(e,t){t.left&&e.css({"border-left-width":1,"margin-left":t.left-1}),t.right&&e.css({"border-right-width":1,"margin-right":t.right-1})}function o(e){e.css({"margin-left":"","margin-right":"","border-left-width":"","border-right-width":""})}function a(){e("body").addClass("fc-not-allowed")}function s(){e("body").removeClass("fc-not-allowed")}function l(t,n,i){var r=Math.floor(n/t.length),o=Math.floor(n-r*(t.length-1)),a=[],s=[],l=[],u=0;c(t),t.each(function(n,i){var c=n===t.length-1?o:r,d=e(i).outerHeight(!0);d<c?(a.push(i),s.push(d),l.push(e(i).height())):u+=d}),i&&(n-=u,r=Math.floor(n/a.length),o=Math.floor(n-r*(a.length-1))),e(a).each(function(t,n){var i=t===a.length-1?o:r,c=s[t],u=i-(c-l[t]);c<i&&e(n).height(u)})}function c(e){e.height("")}function u(t){var n=0;return t.find("> *").each(function(t,i){var r=e(i).outerWidth();r>n&&(n=r)}),n++,t.width(n),n}function d(e,t){return e.height(t).addClass("fc-scroller"),e[0].scrollHeight-1>e[0].clientHeight||(h(e),!1)}function h(e){e.height("").removeClass("fc-scroller")}function p(t){var n=t.css("position"),i=t.parents().filter(function(){var t=e(this);return/(auto|scroll)/.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==n&&i.length?i:e(t[0].ownerDocument||document)}function f(e){var t=e.offset();return{left:t.left,right:t.left+e.outerWidth(),top:t.top,bottom:t.top+e.outerHeight()}}function m(e){var t=e.offset(),n=v(e),i=t.left+_(e,"border-left-width")+n.left,r=t.top+_(e,"border-top-width")+n.top;return{left:i,right:i+e[0].clientWidth,top:r,bottom:r+e[0].clientHeight}}function g(e){var t=e.offset(),n=t.left+_(e,"border-left-width")+_(e,"padding-left"),i=t.top+_(e,"border-top-width")+_(e,"padding-top");return{left:n,right:n+e.width(),top:i,bottom:i+e.height()}}function v(e){var t=e.innerWidth()-e[0].clientWidth,n={left:0,right:0,top:0,bottom:e.innerHeight()-e[0].clientHeight};return b()&&"rtl"==e.css("direction")?n.left=t:n.right=t,n}function b(){return null===Le&&(Le=y()),Le}function y(){var t=e("<div><div/></div>").css({position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}).appendTo("body"),n=t.children().offset().left>t.offset().left;return t.remove(),n}function _(e,t){return parseFloat(e.css(t))||0}function w(e){return 1==e.which&&!e.ctrlKey}function A(e,t){var n={left:Math.max(e.left,t.left),right:Math.min(e.right,t.right),top:Math.max(e.top,t.top),bottom:Math.min(e.bottom,t.bottom)};return n.left<n.right&&n.top<n.bottom&&n}function C(e,t){return{left:Math.min(Math.max(e.left,t.left),t.right),top:Math.min(Math.max(e.top,t.top),t.bottom)}}function x(e){return{left:(e.left+e.right)/2,top:(e.top+e.bottom)/2}}function S(e,t){return{left:e.left-t.left,top:e.top-t.top}}function E(e,t){var n,i,r,o,a=e.start,s=e.end,l=t.start,c=t.end;if(s>l&&a<c)return a>=l?(n=a.clone(),r=!0):(n=l.clone(),r=!1),s<=c?(i=s.clone(),o=!0):(i=c.clone(),o=!1),{start:n,end:i,isStart:r,isEnd:o}}function T(e,n){return t.duration({days:e.clone().stripTime().diff(n.clone().stripTime(),"days"),ms:e.time()-n.time()})}function D(e,n){return t.duration({days:e.clone().stripTime().diff(n.clone().stripTime(),"days")})}function I(e,n,i){return t.duration(Math.round(e.diff(n,i,!0)),i)}function k(e,t){var n,i,r;for(n=0;n<Ue.length&&(i=Ue[n],!((r=M(i,e,t))>=1&&V(r)));n++);return i}function M(e,n,i){return null!=i?i.diff(n,e,!0):t.isDuration(n)?n.as(e):n.end.diff(n.start,e,!0)}function P(e){return Boolean(e.hours()||e.minutes()||e.seconds()||e.milliseconds())}function $(e){return"[object Date]"===Object.prototype.toString.call(e)||e instanceof Date}function N(e){return/^\d+\:\d+(?:\:\d+\.?(?:\d{3})?)?$/.test(e)}function O(e){var t=function(){};return t.prototype=e,new t}function R(e,t){for(var n in e)G(e,n)&&(t[n]=e[n])}function L(e,t){var n,i,r=["constructor","toString","valueOf"];for(n=0;n<r.length;n++)e[i=r[n]]!==Object.prototype[i]&&(t[i]=e[i])}function G(e,t){return je.call(e,t)}function B(t){return/undefined|null|boolean|number|string/.test(e.type(t))}function F(t,n,i){if(e.isFunction(t)&&(t=[t]),t){var r,o;for(r=0;r<t.length;r++)o=t[r].apply(n,i)||o;return o}}function H(){for(var e=0;e<arguments.length;e++)if(void 0!==arguments[e])return arguments[e]}function U(e){return(e+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#039;").replace(/"/g,"&quot;").replace(/\n/g,"<br />")}function j(e){return e.replace(/&.*?;/g,"")}function W(t){var n=[];return e.each(t,function(e,t){null!=t&&n.push(e+":"+t)}),n.join(";")}function z(e){return e.charAt(0).toUpperCase()+e.slice(1)}function q(e,t){return e-t}function V(e){return e%1==0}function Y(e,t){var n=e[t];return function(){return n.apply(e,arguments)}}function K(e,t){var n,i,r,o,a=function(){var s=+new Date-o;s<t&&s>0?n=setTimeout(a,t-s):(n=null,e.apply(r,i),n||(r=i=null))};return function(){r=this,i=arguments,o=+new Date,n||(n=setTimeout(a,t))}}function Q(n,i,r){var o,a,s,l,c=n[0],u=1==n.length&&"string"==typeof c;return t.isMoment(c)?Z(c,l=t.apply(null,n)):$(c)||void 0===c?l=t.apply(null,n):(o=!1,a=!1,u?We.test(c)?(n=[c+="-01"],o=!0,a=!0):(s=ze.exec(c))&&(o=!s[5],a=!0):e.isArray(c)&&(a=!0),l=i||o?t.utc.apply(t,n):t.apply(null,n),o?(l._ambigTime=!0,l._ambigZone=!0):r&&(a?l._ambigZone=!0:u&&(l.utcOffset?l.utcOffset(c):l.zone(c)))),l._fullCalendar=!0,l}function X(e,n){var i,r,o=!1,a=!1,s=e.length,l=[];for(i=0;i<s;i++)r=e[i],t.isMoment(r)||(r=Ne.moment.parseZone(r)),o=o||r._ambigTime,a=a||r._ambigZone,l.push(r);for(i=0;i<s;i++)r=l[i],n||!o||r._ambigTime?a&&!r._ambigZone&&(l[i]=r.clone().stripZone()):l[i]=r.clone().stripTime();return l}function Z(e,t){e._ambigTime?t._ambigTime=!0:t._ambigTime&&(t._ambigTime=!1),e._ambigZone?t._ambigZone=!0:t._ambigZone&&(t._ambigZone=!1)}function J(e,t){e.year(t[0]||0).month(t[1]||0).date(t[2]||0).hours(t[3]||0).minutes(t[4]||0).seconds(t[5]||0).milliseconds(t[6]||0)}function ee(e,t){return Ve.format.call(e,t)}function te(e,t){return ne(e,se(t))}function ne(e,t){var n,i="";for(n=0;n<t.length;n++)i+=ie(e,t[n]);return i}function ie(e,t){var n,i;return"string"==typeof t?t:(n=t.token)?Ye[n]?Ye[n](e):ee(e,n):t.maybe&&(i=ne(e,t.maybe)).match(/[1-9]/)?i:""}function re(e,t,n,i,r){var o;return e=Ne.moment.parseZone(e),t=Ne.moment.parseZone(t),o=(e.localeData||e.lang).call(e),n=o.longDateFormat(n)||n,i=i||" - ",oe(e,t,se(n),i,r)}function oe(e,t,n,i,r){var o,a,s,l,c="",u="",d="",h="",p="";for(a=0;a<n.length&&!1!==(o=ae(e,t,n[a]));a++)c+=o;for(s=n.length-1;s>a&&!1!==(o=ae(e,t,n[s]));s--)u=o+u;for(l=a;l<=s;l++)d+=ie(e,n[l]),h+=ie(t,n[l]);return(d||h)&&(p=r?h+i+d:d+i+h),c+p+u}function ae(e,t,n){var i,r;return"string"==typeof n?n:!!((i=n.token)&&(r=Ke[i.charAt(0)])&&e.isSame(t,r))&&ee(e,i)}function se(e){return e in Qe?Qe[e]:Qe[e]=le(e)}function le(e){for(var t,n=[],i=/\[([^\]]*)\]|\(([^\)]*)\)|(LTS|LT|(\w)\4*o?)|([^\w\[\(]+)/g;t=i.exec(e);)t[1]?n.push(t[1]):t[2]?n.push({maybe:le(t[2])}):t[3]?n.push({token:t[3]}):t[5]&&n.push(t[5]);return n}function ce(){}function ue(e,t){return!e&&!t||!(!e||!t)&&(e.grid===t.grid&&e.row===t.row&&e.col===t.col)}function de(e){var t=pe(e);return"background"===t||"inverse-background"===t}function he(e){return"inverse-background"===pe(e)}function pe(e){return H((e.source||{}).rendering,e.rendering)}function fe(e){var t,n,i={};for(t=0;t<e.length;t++)(i[(n=e[t])._id]||(i[n._id]=[])).push(n);return i}function me(e,t){return e.eventStartMS-t.eventStartMS}function ge(e,t){return e.eventStartMS-t.eventStartMS||t.eventDurationMS-e.eventDurationMS||t.event.allDay-e.event.allDay||(e.event.title||"").localeCompare(t.event.title)}function ve(n){var i,r,o,a,s=Ne.dataAttrPrefix;return s&&(s+="-"),(i=n.data(s+"event")||null)&&(null==(r=(i="object"==typeof i?e.extend({},i):{}).start)&&(r=i.time),o=i.duration,a=i.stick,delete i.start,delete i.time,delete i.duration,delete i.stick),null==r&&(r=n.data(s+"start")),null==r&&(r=n.data(s+"time")),null==o&&(o=n.data(s+"duration")),null==a&&(a=n.data(s+"stick")),r=null!=r?t.duration(r):null,o=null!=o?t.duration(o):null,a=Boolean(a),{eventProps:i,startTime:r,duration:o,stick:a}}function be(e,t){var n,i;for(n=0;n<t.length;n++)if((i=t[n]).leftCol<=e.rightCol&&i.rightCol>=e.leftCol)return!0;return!1}function ye(e,t){return e.leftCol-t.leftCol}function _e(e){var t,n,i;if(e.sort(ge),t=we(e),Ae(t),n=t[0]){for(i=0;i<n.length;i++)Ce(n[i]);for(i=0;i<n.length;i++)xe(n[i],0,0)}}function we(e){var t,n,i,r=[];for(t=0;t<e.length;t++){for(n=e[t],i=0;i<r.length&&Se(n,r[i]).length;i++);n.level=i,(r[i]||(r[i]=[])).push(n)}return r}function Ae(e){var t,n,i,r,o;for(t=0;t<e.length;t++)for(n=e[t],i=0;i<n.length;i++)for((r=n[i]).forwardSegs=[],o=t+1;o<e.length;o++)Se(r,e[o],r.forwardSegs)}function Ce(e){var t,n,i=e.forwardSegs,r=0;if(void 0===e.forwardPressure){for(t=0;t<i.length;t++)Ce(n=i[t]),r=Math.max(r,1+n.forwardPressure);e.forwardPressure=r}}function xe(e,t,n){var i,r=e.forwardSegs;if(void 0===e.forwardCoord)for(r.length?(r.sort(Te),xe(r[0],t+1,n),e.forwardCoord=r[0].backwardCoord):e.forwardCoord=1,e.backwardCoord=e.forwardCoord-(e.forwardCoord-n)/(t+1),i=0;i<r.length;i++)xe(r[i],0,e.forwardCoord)}function Se(e,t,n){n=n||[];for(var i=0;i<t.length;i++)Ee(e,t[i])&&n.push(t[i]);return n}function Ee(e,t){return e.bottom>t.top&&e.top<t.bottom}function Te(e,t){return t.forwardPressure-e.forwardPressure||(e.backwardCoord||0)-(t.backwardCoord||0)||ge(e,t)}function De(n,i){function r(){q?s()&&(u(),l()):o()}function o(){V=H.theme?"ui":"fc",n.addClass("fc"),H.isRTL?n.addClass("fc-rtl"):n.addClass("fc-ltr"),H.theme?n.addClass("ui-widget"):n.addClass("fc-unthemed"),q=e("<div class='fc-view-container'/>").prependTo(n),W=F.header=new Me(F,H),(z=W.render())&&n.prepend(z),l(H.defaultView),H.handleWindowResize&&(X=K(h,H.windowResizeDelay),e(window).resize(X))}function a(){Y&&Y.removeElement(),W.destroy(),q.remove(),n.removeClass("fc fc-ltr fc-rtl fc-unthemed ui-widget"),X&&e(window).unbind("resize",X)}function s(){return n.is(":visible")}function l(t){ie++,Y&&t&&Y.type!==t&&(W.deactivateButton(Y.type),$(),Y.removeElement(),Y=F.view=null),!Y&&t&&((Y=F.view=ne[t]||(ne[t]=F.instantiateView(t))).setElement(e("<div class='fc-view fc-"+t+"-view' />").appendTo(q)),W.activateButton(t)),Y&&(Z=Y.massageCurrentDate(Z),Y.isDisplayed&&Z.isWithin(Y.intervalStart,Y.intervalEnd)||s()&&($(),Y.display(Z),N(),_(),w(),g())),N(),ie--}function c(e){if(s())return e&&d(),ie++,Y.updateSize(!0),ie--,!0}function u(){s()&&d()}function d(){Q="number"==typeof H.contentHeight?H.contentHeight:"number"==typeof H.height?H.height-(z?z.outerHeight(!0):0):Math.round(q.width()/Math.max(H.aspectRatio,.5))}function h(e){!ie&&e.target===window&&Y.start&&c(!0)&&Y.trigger("windowResize",te)}function p(){m(),v()}function f(){s()&&($(),Y.displayEvents(re),N())}function m(){$(),Y.clearEvents(),N()}function g(){!H.lazyFetching||J(Y.start,Y.end)?v():f()}function v(){ee(Y.start,Y.end)}function b(e){re=e,f()}function y(){f()}function _(){W.updateTitle(Y.title)}function w(){F.getNow().isWithin(Y.intervalStart,Y.intervalEnd)?W.disableButton("today"):W.enableButton("today")}function A(e,t){e=F.moment(e),t=t?F.moment(t):e.hasTime()?e.clone().add(F.defaultTimedEventDuration):e.clone().add(F.defaultAllDayEventDuration),Y.select({start:e,end:t})}function C(){Y&&Y.unselect()}function x(){Z=Y.computePrevDate(Z),l()}function S(){Z=Y.computeNextDate(Z),l()}function E(){Z.add(-1,"years"),l()}function T(){Z.add(1,"years"),l()}function D(){Z=F.getNow(),l()}function I(e){Z=F.moment(e),l()}function k(e){Z.add(t.duration(e)),l()}function M(e,t){var n;t=t||"day",n=F.getViewSpec(t)||F.getUnitViewSpec(t),Z=e,l(n?n.type:null)}function P(){return Z.clone()}function $(){q.css({width:"100%",height:q.height(),overflow:"hidden"})}function N(){q.css({width:"",height:"",overflow:""})}function R(){return F}function L(){return Y}function G(e,t){if(void 0===t)return H[e];"height"!=e&&"contentHeight"!=e&&"aspectRatio"!=e||(H[e]=t,c(!0))}function B(e,t){if(H[e])return H[e].apply(t||te,Array.prototype.slice.call(arguments,2))}var F=this;F.initOptions(i||{});var H=this.options;F.render=r,F.destroy=a,F.refetchEvents=p,F.reportEvents=b,F.reportEventChange=y,F.rerenderEvents=f,F.changeView=l,F.select=A,F.unselect=C,F.prev=x,F.next=S,F.prevYear=E,F.nextYear=T,F.today=D,F.gotoDate=I,F.incrementDate=k,F.zoomTo=M,F.getDate=P,F.getCalendar=R,F.getView=L,F.option=G,F.trigger=B;var U=O(ke(H.lang));if(H.monthNames&&(U._months=H.monthNames),H.monthNamesShort&&(U._monthsShort=H.monthNamesShort),H.dayNames&&(U._weekdays=H.dayNames),H.dayNamesShort&&(U._weekdaysShort=H.dayNamesShort),null!=H.firstDay){var j=O(U._week);j.dow=H.firstDay,U._week=j}U._fullCalendar_weekCalc=function(e){return"function"==typeof e?e:"local"===e?e:"iso"===e||"ISO"===e?"ISO":void 0}(H.weekNumberCalculation),F.defaultAllDayEventDuration=t.duration(H.defaultAllDayEventDuration),F.defaultTimedEventDuration=t.duration(H.defaultTimedEventDuration),F.moment=function(){var e;return"local"===H.timezone?(e=Ne.moment.apply(null,arguments)).hasTime()&&e.local():e="UTC"===H.timezone?Ne.moment.utc.apply(null,arguments):Ne.moment.parseZone.apply(null,arguments),"_locale"in e?e._locale=U:e._lang=U,e},F.getIsAmbigTimezone=function(){return"local"!==H.timezone&&"UTC"!==H.timezone},F.rezoneDate=function(e){return F.moment(e.toArray())},F.getNow=function(){var e=H.now;return"function"==typeof e&&(e=e()),F.moment(e)},F.getEventEnd=function(e){return e.end?e.end.clone():F.getDefaultEventEnd(e.allDay,e.start)},F.getDefaultEventEnd=function(e,t){var n=t.clone();return e?n.stripTime().add(F.defaultAllDayEventDuration):n.add(F.defaultTimedEventDuration),F.getIsAmbigTimezone()&&n.stripZone(),n},F.humanizeDuration=function(e){return(e.locale||e.lang).call(e,H.lang).humanize()},Pe.call(F,H);var W,z,q,V,Y,Q,X,Z,J=F.isFetchNeeded,ee=F.fetchEvents,te=n[0],ne={},ie=0,re=[];Z=null!=H.defaultDate?F.moment(H.defaultDate):F.getNow(),F.getSuggestedViewHeight=function(){return void 0===Q&&u(),Q},F.isHeightAuto=function(){return"auto"===H.contentHeight||"auto"===H.height}}function Ie(t){e.each(ht,function(e,n){null==t[e]&&(t[e]=n(t))})}function ke(e){var n=t.localeData||t.langData;return n.call(t,e)||n.call(t,"en")}function Me(t,n){function i(){var t=n.header;if(p=n.theme?"ui":"fc",t)return f=e("<div class='fc-toolbar'/>").append(o("left")).append(o("right")).append(o("center")).append('<div class="fc-clear"/>')}function r(){f.remove()}function o(i){var r=e('<div class="fc-'+i+'"/>'),o=n.header[i];return o&&e.each(o.split(" "),function(i){var o,a=e(),s=!0;e.each(this.split(","),function(i,r){var o,l,c,u,d,h,f,g;"title"==r?(a=a.add(e("<h2>&nbsp;</h2>")),s=!1):((o=t.getViewSpec(r))?(l=function(){t.changeView(r)},m.push(r),c=o.buttonTextOverride,u=o.buttonTextDefault):t[r]&&(l=function(){t[r]()},c=(t.overrides.buttonText||{})[r],u=n.buttonText[r]),l&&(d=n.themeButtonIcons[r],h=n.buttonIcons[r],f=c?U(c):d&&n.theme?"<span class='ui-icon ui-icon-"+d+"'></span>":h&&!n.theme?"<span class='fc-icon fc-icon-"+h+"'></span>":U(u),g=e('<button type="button" class="'+["fc-"+r+"-button",p+"-button",p+"-state-default"].join(" ")+'">'+f+"</button>").click(function(){g.hasClass(p+"-state-disabled")||(l(),(g.hasClass(p+"-state-active")||g.hasClass(p+"-state-disabled"))&&g.removeClass(p+"-state-hover"))}).mousedown(function(){g.not("."+p+"-state-active").not("."+p+"-state-disabled").addClass(p+"-state-down")}).mouseup(function(){g.removeClass(p+"-state-down")}).hover(function(){g.not("."+p+"-state-active").not("."+p+"-state-disabled").addClass(p+"-state-hover")},function(){g.removeClass(p+"-state-hover").removeClass(p+"-state-down")}),a=a.add(g)))}),s&&a.first().addClass(p+"-corner-left").end().last().addClass(p+"-corner-right").end(),a.length>1?(o=e("<div/>"),s&&o.addClass("fc-button-group"),o.append(a),r.append(o)):r.append(a)}),r}function a(e){f.find("h2").text(e)}function s(e){f.find(".fc-"+e+"-button").addClass(p+"-state-active")}function l(e){f.find(".fc-"+e+"-button").removeClass(p+"-state-active")}function c(e){f.find(".fc-"+e+"-button").attr("disabled","disabled").addClass(p+"-state-disabled")}function u(e){f.find(".fc-"+e+"-button").removeAttr("disabled").removeClass(p+"-state-disabled")}function d(){return m}var h=this;h.render=i,h.destroy=r,h.updateTitle=a,h.activateButton=s,h.deactivateButton=l,h.disableButton=c,h.enableButton=u,h.getViewsWithButtons=d;var p,f=e(),m=[]}function Pe(n){function i(e,t){return!W||e.clone().stripZone()<W.clone().stripZone()||t.clone().stripZone()>z.clone().stripZone()}function r(e,t){W=e,z=t,ee=[];var n=++X,i=Q.length;Z=i;for(var r=0;r<i;r++)o(Q[r],n)}function o(t,n){a(t,function(i){var r,o,a,s=e.isArray(t.events);if(n==X){if(i)for(r=0;r<i.length;r++)o=i[r],(a=s?o:_(o,t))&&ee.push.apply(ee,S(a));--Z||Y(ee)}})}function a(t,i){var r,o,s=Ne.sourceFetchers;for(r=0;r<s.length;r++){if(!0===(o=s[r].call(j,t,W.clone(),z.clone(),n.timezone,i)))return;if("object"==typeof o)return void a(o,i)}var l=t.events;if(l)e.isFunction(l)?(b(),l.call(j,W.clone(),z.clone(),n.timezone,function(e){i(e),y()})):e.isArray(l)?i(l):i();else if(t.url){var c,u=t.success,d=t.error,h=t.complete;c=e.isFunction(t.data)?t.data():t.data;var p=e.extend({},c||{}),f=H(t.startParam,n.startParam),m=H(t.endParam,n.endParam),g=H(t.timezoneParam,n.timezoneParam);f&&(p[f]=W.format()),m&&(p[m]=z.format()),n.timezone&&"local"!=n.timezone&&(p[g]=n.timezone),b(),e.ajax(e.extend({},pt,t,{data:p,success:function(t){t=t||[];var n=F(u,this,arguments);e.isArray(n)&&(t=n),i(t)},error:function(){F(d,this,arguments),i()},complete:function(){F(h,this,arguments),y()}}))}else i()}function s(e){var t=l(e);t&&(Q.push(t),Z++,o(t,X))}function l(t){var n,i,r=Ne.sourceNormalizers;if(e.isFunction(t)||e.isArray(t)?n={events:t}:"string"==typeof t?n={url:t}:"object"==typeof t&&(n=e.extend({},t)),n){for(n.className?"string"==typeof n.className&&(n.className=n.className.split(/\s+/)):n.className=[],e.isArray(n.events)&&(n.origArray=n.events,n.events=e.map(n.events,function(e){return _(e,n)})),i=0;i<r.length;i++)r[i].call(j,n);return n}}function c(t){Q=e.grep(Q,function(e){return!u(e,t)}),ee=e.grep(ee,function(e){return!u(e.source,t)}),Y(ee)}function u(e,t){return e&&t&&d(e)==d(t)}function d(e){return("object"==typeof e?e.origArray||e.googleCalendarId||e.url||e.events:null)||e}function h(e){e.start=j.moment(e.start),e.end?e.end=j.moment(e.end):e.end=null,E(e,p(e)),Y(ee)}function p(t){var n={};return e.each(t,function(e,t){f(e)&&void 0!==t&&B(t)&&(n[e]=t)}),n}function f(e){return!/^_|^(id|allDay|start|end)$/.test(e)}function m(e,t){var n,i,r,o=_(e);if(o){for(n=S(o),i=0;i<n.length;i++)(r=n[i]).source||(t&&(K.events.push(r),r.source=K),ee.push(r));return Y(ee),n}return[]}function g(t){var n,i;for(null==t?t=function(){return!0}:e.isFunction(t)||(n=t+"",t=function(e){return e._id==n}),ee=e.grep(ee,t,!0),i=0;i<Q.length;i++)e.isArray(Q[i].events)&&(Q[i].events=e.grep(Q[i].events,t,!0));Y(ee)}function v(t){return e.isFunction(t)?e.grep(ee,t):null!=t?(t+="",e.grep(ee,function(e){return e._id==t})):ee}function b(){J++||q("loading",null,!0,V())}function y(){--J||q("loading",null,!1,V())}function _(i,r){var o,a,s,l={};if(n.eventDataTransform&&(i=n.eventDataTransform(i)),r&&r.eventDataTransform&&(i=r.eventDataTransform(i)),e.extend(l,i),r&&(l.source=r),l._id=i._id||(void 0===i.id?"_fc"+ft++:i.id+""),i.className?"string"==typeof i.className?l.className=i.className.split(/\s+/):l.className=i.className:l.className=[],o=i.start||i.date,a=i.end,N(o)&&(o=t.duration(o)),N(a)&&(a=t.duration(a)),i.dow||t.isDuration(o)||t.isDuration(a))l.start=o?t.duration(o):null,l.end=a?t.duration(a):null,l._recurring=!0;else{if(o&&!(o=j.moment(o)).isValid())return!1;a&&((a=j.moment(a)).isValid()||(a=null)),void 0===(s=i.allDay)&&(s=H(r?r.allDayDefault:void 0,n.allDayDefault)),w(o,a,s,l)}return l}function w(e,t,n,i){i.start=e,i.end=t,i.allDay=n,A(i),$e(i)}function A(e){C(e),e.end&&!e.end.isAfter(e.start)&&(e.end=null),e.end||(n.forceEventDuration?e.end=j.getDefaultEventEnd(e.allDay,e.start):e.end=null)}function C(e){null==e.allDay&&(e.allDay=!(e.start.hasTime()||e.end&&e.end.hasTime())),e.allDay?(e.start.stripTime(),e.end&&e.end.stripTime()):(e.start.hasTime()||(e.start=j.rezoneDate(e.start)),e.end&&!e.end.hasTime()&&(e.end=j.rezoneDate(e.end)))}function x(t){var n;return t.end||(null==(n=t.allDay)&&(n=!t.start.hasTime()),(t=e.extend({},t)).end=j.getDefaultEventEnd(n,t.start)),t}function S(t,n,i){var r,o,a,s,l,c,u,d,h,p=[];if(n=n||W,i=i||z,t)if(t._recurring){if(o=t.dow)for(r={},a=0;a<o.length;a++)r[o[a]]=!0;for(s=n.clone().stripTime();s.isBefore(i);)r&&!r[s.day()]||(l=t.start,c=t.end,u=s.clone(),d=null,l&&(u=u.time(l)),c&&(d=s.clone().time(c)),h=e.extend({},t),w(u,d,!l&&!c,h),p.push(h)),s.add(1,"days")}else p.push(t);return p}function E(t,n,i){function r(e,t){return i?I(e,t,i):n.allDay?D(e,t):T(e,t)}var o,a,s,l,c,u={};return(n=n||{}).start||(n.start=t.start.clone()),void 0===n.end&&(n.end=t.end?t.end.clone():null),null==n.allDay&&(n.allDay=t.allDay),A(n),o={start:t._start.clone(),end:t._end?t._end.clone():j.getDefaultEventEnd(t._allDay,t._start),allDay:n.allDay},A(o),a=null!==t._end&&null===n.end,s=r(n.start,o.start),l=n.end?r(n.end,o.end).subtract(s):null,e.each(n,function(e,t){f(e)&&void 0!==t&&(u[e]=t)}),c=k(v(t._id),a,n.allDay,s,l,u),{dateDelta:s,durationDelta:l,undo:c}}function k(t,n,i,r,o,a){var s=j.getIsAmbigTimezone(),l=[];return r&&!r.valueOf()&&(r=null),o&&!o.valueOf()&&(o=null),e.each(t,function(t,c){var u,d;u={start:c.start.clone(),end:c.end?c.end.clone():null,allDay:c.allDay},e.each(a,function(e){u[e]=c[e]}),A(d={start:c._start,end:c._end,allDay:i}),n?d.end=null:o&&!d.end&&(d.end=j.getDefaultEventEnd(d.allDay,d.start)),r&&(d.start.add(r),d.end&&d.end.add(r)),o&&d.end.add(o),s&&!d.allDay&&(r||o)&&(d.start.stripZone(),d.end&&d.end.stripZone()),e.extend(c,a,d),$e(c),l.push(function(){e.extend(c,u),$e(c)})}),function(){for(var e=0;e<l.length;e++)l[e]()}}function M(t){var i,r=n.businessHours,o={className:"fc-nonbusiness",start:"09:00",end:"17:00",dow:[1,2,3,4,5],rendering:"inverse-background"},a=j.getView();return r&&(i=e.extend({},o,"object"==typeof r?r:{})),i?(t&&(i.start=null,i.end=null),S(_(i),a.start,a.end)):[]}function P(e,t){var i=t.source||{},r=H(t.constraint,i.constraint,n.eventConstraint),o=H(t.overlap,i.overlap,n.eventOverlap);return e=x(e),R(e,r,o,t)}function $(e){return R(e,n.selectConstraint,n.selectOverlap)}function O(t,n){var i;return n&&(i=S(_(e.extend({},n,t)))[0]),i?P(t,i):(t=x(t),$(t))}function R(t,n,i,r){var o,a,s,l,c,u;if(t=e.extend({},t),t.start=t.start.clone().stripZone(),t.end=t.end.clone().stripZone(),null!=n){for(o=L(n),a=!1,l=0;l<o.length;l++)if(G(o[l],t)){a=!0;break}if(!a)return!1}for(s=j.getPeerEvents(r,t),l=0;l<s.length;l++)if(c=s[l],U(c,t)){if(!1===i)return!1;if("function"==typeof i&&!i(c,r))return!1;if(r){if(!1===(u=H(c.overlap,(c.source||{}).overlap)))return!1;if("function"==typeof u&&!u(r,c))return!1}}return!0}function L(e){return"businessHours"===e?M():"object"==typeof e?S(_(e)):v(e)}function G(e,t){var n=e.start.clone().stripZone(),i=j.getEventEnd(e).stripZone();return t.start>=n&&t.end<=i}function U(e,t){var n=e.start.clone().stripZone(),i=j.getEventEnd(e).stripZone();return t.start<i&&t.end>n}var j=this;j.isFetchNeeded=i,j.fetchEvents=r,j.addEventSource=s,j.removeEventSource=c,j.updateEvent=h,j.renderEvent=m,j.removeEvents=g,j.clientEvents=v,j.mutateEvent=E,j.normalizeEventRange=A,j.normalizeEventRangeTimes=C,j.ensureVisibleEventRange=x;var W,z,q=j.trigger,V=j.getView,Y=j.reportEvents,K={events:[]},Q=[K],X=0,Z=0,J=0,ee=[];e.each((n.events?[n.events]:[]).concat(n.eventSources||[]),function(e,t){var n=l(t);n&&Q.push(n)}),j.getBusinessHoursEvents=M,j.isEventRangeAllowed=P,j.isSelectionRangeAllowed=$,j.isExternalDropRangeAllowed=O,j.getEventCache=function(){return ee}}function $e(e){e._allDay=e.allDay,e._start=e.start.clone(),e._end=e.end?e.end.clone():null}var Ne=e.fullCalendar={version:"2.3.1"},Oe=Ne.views={};e.fn.fullCalendar=function(t){var n=Array.prototype.slice.call(arguments,1),i=this;return this.each(function(r,o){var a,s=e(o),l=s.data("fullCalendar");"string"==typeof t?l&&e.isFunction(l[t])&&(a=l[t].apply(l,n),r||(i=a),"destroy"===t&&s.removeData("fullCalendar")):l||(l=new Ne.CalendarBase(s,t),s.data("fullCalendar",l),l.render())}),i};var Re=["header","buttonText","buttonIcons","themeButtonIcons"];Ne.intersectionToSeg=E,Ne.applyAll=F,Ne.debounce=K,Ne.isInt=V,Ne.htmlEscape=U,Ne.cssToStr=W,Ne.proxy=Y,Ne.getClientRect=m,Ne.getContentRect=g,Ne.getScrollbarWidths=v;var Le=null;Ne.computeIntervalUnit=k,Ne.durationHasTime=P;var Ge,Be,Fe,He=["sun","mon","tue","wed","thu","fri","sat"],Ue=["year","month","week","day","hour","minute","second","millisecond"],je={}.hasOwnProperty,We=/^\s*\d{4}-\d\d$/,ze=/^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?)?$/,qe=t.fn,Ve=e.extend({},qe);Ne.moment=function(){return Q(arguments)},Ne.moment.utc=function(){var e=Q(arguments,!0);return e.hasTime()&&e.utc(),e},Ne.moment.parseZone=function(){return Q(arguments,!0,!0)},qe.clone=function(){var e=Ve.clone.apply(this,arguments);return Z(this,e),this._fullCalendar&&(e._fullCalendar=!0),e},qe.week=qe.weeks=function(e){var t=(this._locale||this._lang)._fullCalendar_weekCalc;return null==e&&"function"==typeof t?t(this):"ISO"===t?Ve.isoWeek.apply(this,arguments):Ve.week.apply(this,arguments)},qe.time=function(e){if(!this._fullCalendar)return Ve.time.apply(this,arguments);if(null==e)return t.duration({hours:this.hours(),minutes:this.minutes(),seconds:this.seconds(),milliseconds:this.milliseconds()});this._ambigTime=!1,t.isDuration(e)||t.isMoment(e)||(e=t.duration(e));var n=0;return t.isDuration(e)&&(n=24*Math.floor(e.asDays())),this.hours(n+e.hours()).minutes(e.minutes()).seconds(e.seconds()).milliseconds(e.milliseconds())},qe.stripTime=function(){var e;return this._ambigTime||(e=this.toArray(),this.utc(),Be(this,e.slice(0,3)),this._ambigTime=!0,this._ambigZone=!0),this},qe.hasTime=function(){return!this._ambigTime},qe.stripZone=function(){var e,t;return this._ambigZone||(e=this.toArray(),t=this._ambigTime,this.utc(),Be(this,e),this._ambigTime=t||!1,this._ambigZone=!0),this},qe.hasZone=function(){return!this._ambigZone},qe.local=function(){var e=this.toArray(),t=this._ambigZone;return Ve.local.apply(this,arguments),this._ambigTime=!1,this._ambigZone=!1,t&&Fe(this,e),this},qe.utc=function(){return Ve.utc.apply(this,arguments),this._ambigTime=!1,this._ambigZone=!1,this},e.each(["zone","utcOffset"],function(e,t){Ve[t]&&(qe[t]=function(e){return null!=e&&(this._ambigTime=!1,this._ambigZone=!1),Ve[t].apply(this,arguments)})}),qe.format=function(){return this._fullCalendar&&arguments[0]?te(this,arguments[0]):this._ambigTime?ee(this,"YYYY-MM-DD"):this._ambigZone?ee(this,"YYYY-MM-DD[T]HH:mm:ss"):Ve.format.apply(this,arguments)},qe.toISOString=function(){return this._ambigTime?ee(this,"YYYY-MM-DD"):this._ambigZone?ee(this,"YYYY-MM-DD[T]HH:mm:ss"):Ve.toISOString.apply(this,arguments)},qe.isWithin=function(e,t){var n=X([this,e,t]);return n[0]>=n[1]&&n[0]<n[2]},qe.isSame=function(e,t){var n;return this._fullCalendar?t?(n=X([this,e],!0),Ve.isSame.call(n[0],n[1],t)):(e=Ne.moment.parseZone(e),Ve.isSame.call(this,e)&&Boolean(this._ambigTime)===Boolean(e._ambigTime)&&Boolean(this._ambigZone)===Boolean(e._ambigZone)):Ve.isSame.apply(this,arguments)},e.each(["isBefore","isAfter"],function(e,t){qe[t]=function(e,n){var i;return this._fullCalendar?(i=X([this,e]),Ve[t].call(i[0],i[1],n)):Ve[t].apply(this,arguments)}}),Ge="_d"in t()&&"updateOffset"in t,Be=Ge?function(e,n){e._d.setTime(Date.UTC.apply(Date,n)),t.updateOffset(e,!1)}:J,Fe=Ge?function(e,n){e._d.setTime(+new Date(n[0]||0,n[1]||0,n[2]||0,n[3]||0,n[4]||0,n[5]||0,n[6]||0)),t.updateOffset(e,!1)}:J;var Ye={t:function(e){return ee(e,"a").charAt(0)},T:function(e){return ee(e,"A").charAt(0)}};Ne.formatRange=re;var Ke={Y:"year",M:"month",D:"day",d:"day",A:"second",a:"second",T:"second",t:"second",H:"second",h:"second",m:"second",s:"second"},Qe={};Ne.Class=ce,ce.extend=function(e){var t,n=this;return e=e||{},G(e,"constructor")&&(t=e.constructor),"function"!=typeof t&&(t=e.constructor=function(){n.apply(this,arguments)}),t.prototype=O(n.prototype),R(e,t.prototype),L(e,t.prototype),R(n,t),t},ce.mixin=function(e){R(e.prototype||e,this.prototype)};var Xe=ce.extend({isHidden:!0,options:null,el:null,documentMousedownProxy:null,margin:10,constructor:function(e){this.options=e||{}},show:function(){this.isHidden&&(this.el||this.render(),this.el.show(),this.position(),this.isHidden=!1,this.trigger("show"))},hide:function(){this.isHidden||(this.el.hide(),this.isHidden=!0,this.trigger("hide"))},render:function(){var t=this,n=this.options;this.el=e('<div class="fc-popover"/>').addClass(n.className||"").css({top:0,left:0}).append(n.content).appendTo(n.parentEl),this.el.on("click",".fc-close",function(){t.hide()}),n.autoHide&&e(document).on("mousedown",this.documentMousedownProxy=Y(this,"documentMousedown"))},documentMousedown:function(t){this.el&&!e(t.target).closest(this.el).length&&this.hide()},destroy:function(){this.hide(),this.el&&(this.el.remove(),this.el=null),e(document).off("mousedown",this.documentMousedownProxy)},position:function(){var t,n,i,r,o,a=this.options,s=this.el.offsetParent().offset(),l=this.el.outerWidth(),c=this.el.outerHeight(),u=e(window),d=p(this.el);r=a.top||0,o=void 0!==a.left?a.left:void 0!==a.right?a.right-l:0,d.is(window)||d.is(document)?(d=u,t=0,n=0):(t=(i=d.offset()).top,n=i.left),t+=u.scrollTop(),n+=u.scrollLeft(),!1!==a.viewportConstrain&&(r=Math.min(r,t+d.outerHeight()-c-this.margin),r=Math.max(r,t+this.margin),o=Math.min(o,n+d.outerWidth()-l-this.margin),o=Math.max(o,n+this.margin)),this.el.css({top:r-s.top,left:o-s.left})},trigger:function(e){this.options[e]&&this.options[e].apply(this,Array.prototype.slice.call(arguments,1))}}),Ze=ce.extend({grid:null,rowCoords:null,colCoords:null,containerEl:null,bounds:null,constructor:function(e){this.grid=e},build:function(){this.rowCoords=this.grid.computeRowCoords(),this.colCoords=this.grid.computeColCoords(),this.computeBounds()},clear:function(){this.rowCoords=null,this.colCoords=null},getCell:function(t,n){var i,r,o,a=this.rowCoords,s=a.length,l=this.colCoords,c=l.length,u=null,d=null;if(this.inBounds(t,n)){for(i=0;i<s;i++)if(r=a[i],n>=r.top&&n<r.bottom){u=i;break}for(i=0;i<c;i++)if(r=l[i],t>=r.left&&t<r.right){d=i;break}if(null!==u&&null!==d)return o=this.grid.getCell(u,d),o.grid=this.grid,e.extend(o,a[u],l[d]),o}return null},computeBounds:function(){this.bounds=this.containerEl?m(this.containerEl):null},inBounds:function(e,t){var n=this.bounds;return!n||e>=n.left&&e<n.right&&t>=n.top&&t<n.bottom}}),Je=ce.extend({coordMaps:null,constructor:function(e){this.coordMaps=e},build:function(){var e,t=this.coordMaps;for(e=0;e<t.length;e++)t[e].build()},getCell:function(e,t){var n,i=this.coordMaps,r=null;for(n=0;n<i.length&&!r;n++)r=i[n].getCell(e,t);return r},clear:function(){var e,t=this.coordMaps;for(e=0;e<t.length;e++)t[e].clear()}}),et=Ne.DragListener=ce.extend({options:null,isListening:!1,isDragging:!1,originX:null,originY:null,mousemoveProxy:null,mouseupProxy:null,subjectEl:null,subjectHref:null,scrollEl:null,scrollBounds:null,scrollTopVel:null,scrollLeftVel:null,scrollIntervalId:null,scrollHandlerProxy:null,scrollSensitivity:30,scrollSpeed:200,scrollIntervalMs:50,constructor:function(e){e=e||{},this.options=e,this.subjectEl=e.subjectEl},mousedown:function(e){w(e)&&(e.preventDefault(),this.startListening(e),this.options.distance||this.startDrag(e))},startListening:function(t){var n;this.isListening||(t&&this.options.scroll&&((n=p(e(t.target))).is(window)||n.is(document)||(this.scrollEl=n,this.scrollHandlerProxy=K(Y(this,"scrollHandler"),100),this.scrollEl.on("scroll",this.scrollHandlerProxy))),e(document).on("mousemove",this.mousemoveProxy=Y(this,"mousemove")).on("mouseup",this.mouseupProxy=Y(this,"mouseup")).on("selectstart",this.preventDefault),t?(this.originX=t.pageX,this.originY=t.pageY):(this.originX=0,this.originY=0),this.isListening=!0,this.listenStart(t))},listenStart:function(e){this.trigger("listenStart",e)},mousemove:function(e){var t,n=e.pageX-this.originX,i=e.pageY-this.originY;this.isDragging||n*n+i*i>=(t=this.options.distance||1)*t&&this.startDrag(e),this.isDragging&&this.drag(n,i,e)},startDrag:function(e){this.isListening||this.startListening(),this.isDragging||(this.isDragging=!0,this.dragStart(e))},dragStart:function(e){var t=this.subjectEl;this.trigger("dragStart",e),(this.subjectHref=t?t.attr("href"):null)&&t.removeAttr("href")},drag:function(e,t,n){this.trigger("drag",e,t,n),this.updateScroll(n)},mouseup:function(e){this.stopListening(e)},stopDrag:function(e){this.isDragging&&(this.stopScrolling(),this.dragStop(e),this.isDragging=!1)},dragStop:function(e){var t=this;this.trigger("dragStop",e),setTimeout(function(){t.subjectHref&&t.subjectEl.attr("href",t.subjectHref)},0)},stopListening:function(t){this.stopDrag(t),this.isListening&&(this.scrollEl&&(this.scrollEl.off("scroll",this.scrollHandlerProxy),this.scrollHandlerProxy=null),e(document).off("mousemove",this.mousemoveProxy).off("mouseup",this.mouseupProxy).off("selectstart",this.preventDefault),this.mousemoveProxy=null,this.mouseupProxy=null,this.isListening=!1,this.listenStop(t))},listenStop:function(e){this.trigger("listenStop",e)},trigger:function(e){this.options[e]&&this.options[e].apply(this,Array.prototype.slice.call(arguments,1))},preventDefault:function(e){e.preventDefault()},computeScrollBounds:function(){var e=this.scrollEl;this.scrollBounds=e?f(e):null},updateScroll:function(e){var t,n,i,r,o=this.scrollSensitivity,a=this.scrollBounds,s=0,l=0;a&&(t=(o-(e.pageY-a.top))/o,n=(o-(a.bottom-e.pageY))/o,i=(o-(e.pageX-a.left))/o,r=(o-(a.right-e.pageX))/o,t>=0&&t<=1?s=t*this.scrollSpeed*-1:n>=0&&n<=1&&(s=n*this.scrollSpeed),i>=0&&i<=1?l=i*this.scrollSpeed*-1:r>=0&&r<=1&&(l=r*this.scrollSpeed)),this.setScrollVel(s,l)},setScrollVel:function(e,t){this.scrollTopVel=e,this.scrollLeftVel=t,this.constrainScrollVel(),!this.scrollTopVel&&!this.scrollLeftVel||this.scrollIntervalId||(this.scrollIntervalId=setInterval(Y(this,"scrollIntervalFunc"),this.scrollIntervalMs))},constrainScrollVel:function(){var e=this.scrollEl;this.scrollTopVel<0?e.scrollTop()<=0&&(this.scrollTopVel=0):this.scrollTopVel>0&&e.scrollTop()+e[0].clientHeight>=e[0].scrollHeight&&(this.scrollTopVel=0),this.scrollLeftVel<0?e.scrollLeft()<=0&&(this.scrollLeftVel=0):this.scrollLeftVel>0&&e.scrollLeft()+e[0].clientWidth>=e[0].scrollWidth&&(this.scrollLeftVel=0)},scrollIntervalFunc:function(){var e=this.scrollEl,t=this.scrollIntervalMs/1e3;this.scrollTopVel&&e.scrollTop(e.scrollTop()+this.scrollTopVel*t),this.scrollLeftVel&&e.scrollLeft(e.scrollLeft()+this.scrollLeftVel*t),this.constrainScrollVel(),this.scrollTopVel||this.scrollLeftVel||this.stopScrolling()},stopScrolling:function(){this.scrollIntervalId&&(clearInterval(this.scrollIntervalId),this.scrollIntervalId=null,this.scrollStop())},scrollHandler:function(){this.scrollIntervalId||this.scrollStop()},scrollStop:function(){}}),tt=et.extend({coordMap:null,origCell:null,cell:null,coordAdjust:null,constructor:function(e,t){et.prototype.constructor.call(this,t),this.coordMap=e},listenStart:function(e){var t,n,i,r=this.subjectEl;et.prototype.listenStart.apply(this,arguments),this.computeCoords(),e?(i=n={left:e.pageX,top:e.pageY},r&&(i=C(i,t=f(r))),this.origCell=this.getCell(i.left,i.top),r&&this.options.subjectCenter&&(this.origCell&&(t=A(this.origCell,t)||t),i=x(t)),this.coordAdjust=S(i,n)):(this.origCell=null,this.coordAdjust=null)},computeCoords:function(){this.coordMap.build(),this.computeScrollBounds()},dragStart:function(e){var t;et.prototype.dragStart.apply(this,arguments),(t=this.getCell(e.pageX,e.pageY))&&this.cellOver(t)},drag:function(e,t,n){var i;et.prototype.drag.apply(this,arguments),ue(i=this.getCell(n.pageX,n.pageY),this.cell)||(this.cell&&this.cellOut(),i&&this.cellOver(i))},dragStop:function(){this.cellDone(),et.prototype.dragStop.apply(this,arguments)},cellOver:function(e){this.cell=e,this.trigger("cellOver",e,ue(e,this.origCell),this.origCell)},cellOut:function(){this.cell&&(this.trigger("cellOut",this.cell),this.cellDone(),this.cell=null)},cellDone:function(){this.cell&&this.trigger("cellDone",this.cell)},listenStop:function(){et.prototype.listenStop.apply(this,arguments),this.origCell=this.cell=null,this.coordMap.clear()},scrollStop:function(){et.prototype.scrollStop.apply(this,arguments),this.computeCoords()},getCell:function(e,t){return this.coordAdjust&&(e+=this.coordAdjust.left,t+=this.coordAdjust.top),this.coordMap.getCell(e,t)}}),nt=ce.extend({options:null,sourceEl:null,el:null,parentEl:null,top0:null,left0:null,mouseY0:null,mouseX0:null,topDelta:null,leftDelta:null,mousemoveProxy:null,isFollowing:!1,isHidden:!1,isAnimating:!1,constructor:function(t,n){this.options=n=n||{},this.sourceEl=t,this.parentEl=n.parentEl?e(n.parentEl):t.parent()},start:function(t){this.isFollowing||(this.isFollowing=!0,this.mouseY0=t.pageY,this.mouseX0=t.pageX,this.topDelta=0,this.leftDelta=0,this.isHidden||this.updatePosition(),e(document).on("mousemove",this.mousemoveProxy=Y(this,"mousemove")))},stop:function(t,n){function i(){this.isAnimating=!1,r.destroyEl(),this.top0=this.left0=null,n&&n()}var r=this,o=this.options.revertDuration;this.isFollowing&&!this.isAnimating&&(this.isFollowing=!1,e(document).off("mousemove",this.mousemoveProxy),t&&o&&!this.isHidden?(this.isAnimating=!0,this.el.animate({top:this.top0,left:this.left0},{duration:o,complete:i})):i())},getEl:function(){var e=this.el;return e||(this.sourceEl.width(),e=this.el=this.sourceEl.clone().css({position:"absolute",visibility:"",display:this.isHidden?"none":"",margin:0,right:"auto",bottom:"auto",width:this.sourceEl.width(),height:this.sourceEl.height(),opacity:this.options.opacity||"",zIndex:this.options.zIndex}).appendTo(this.parentEl)),e},destroyEl:function(){this.el&&(this.el.remove(),this.el=null)},updatePosition:function(){var e,t;this.getEl(),null===this.top0&&(this.sourceEl.width(),e=this.sourceEl.offset(),t=this.el.offsetParent().offset(),this.top0=e.top-t.top,this.left0=e.left-t.left),this.el.css({top:this.top0+this.topDelta,left:this.left0+this.leftDelta})},mousemove:function(e){this.topDelta=e.pageY-this.mouseY0,this.leftDelta=e.pageX-this.mouseX0,this.isHidden||this.updatePosition()},hide:function(){this.isHidden||(this.isHidden=!0,this.el&&this.el.hide())},show:function(){this.isHidden&&(this.isHidden=!1,this.updatePosition(),this.getEl().show())}}),it=ce.extend({view:null,isRTL:null,cellHtml:"<td/>",constructor:function(e){this.view=e,this.isRTL=e.opt("isRTL")},rowHtml:function(e,t){var n,i=this.getHtmlRenderer("cell",e),r="";for(t=t||0,n=0;n<this.colCnt;n++)r+=i(this.getCell(t,n));return"<tr>"+(r=this.bookendCells(r,e,t))+"</tr>"},bookendCells:function(e,t,n){var i=this.getHtmlRenderer("intro",t)(n||0),r=this.getHtmlRenderer("outro",t)(n||0),o=this.isRTL?r:i,a=this.isRTL?i:r;return"string"==typeof e?o+e+a:e.prepend(o).append(a)},getHtmlRenderer:function(e,t){var n,i,r,o,a=this.view;return n=e+"Html",t&&(i=t+z(e)+"Html"),i&&(o=a[i])?r=a:i&&(o=this[i])?r=this:(o=a[n])?r=a:(o=this[n])&&(r=this),"function"==typeof o?function(){return o.apply(r,arguments)||""}:function(){return o||""}}}),rt=Ne.Grid=it.extend({start:null,end:null,rowCnt:0,colCnt:0,rowData:null,colData:null,el:null,coordMap:null,elsByFill:null,externalDragStartProxy:null,colHeadFormat:null,eventTimeFormat:null,displayEventTime:null,displayEventEnd:null,cellDuration:null,largeUnit:null,constructor:function(){it.apply(this,arguments),this.coordMap=new Ze(this),this.elsByFill={},this.externalDragStartProxy=Y(this,"externalDragStart")},computeColHeadFormat:function(){},computeEventTimeFormat:function(){return this.view.opt("smallTimeFormat")},computeDisplayEventTime:function(){return!0},computeDisplayEventEnd:function(){return!0},setRange:function(e){var t,n,i=this.view;this.start=e.start.clone(),this.end=e.end.clone(),this.rowData=[],this.colData=[],this.updateCells(),this.colHeadFormat=i.opt("columnFormat")||this.computeColHeadFormat(),this.eventTimeFormat=i.opt("eventTimeFormat")||i.opt("timeFormat")||this.computeEventTimeFormat(),null==(t=i.opt("displayEventTime"))&&(t=this.computeDisplayEventTime()),null==(n=i.opt("displayEventEnd"))&&(n=this.computeDisplayEventEnd()),this.displayEventTime=t,this.displayEventEnd=n},updateCells:function(){},rangeToSegs:function(e){},diffDates:function(e,t){return this.largeUnit?I(e,t,this.largeUnit):T(e,t)},getCell:function(t,n){var i;return null==n&&("number"==typeof t?(n=t%this.colCnt,t=Math.floor(t/this.colCnt)):(n=t.col,t=t.row)),i={row:t,col:n},e.extend(i,this.getRowData(t),this.getColData(n)),e.extend(i,this.computeCellRange(i)),i},computeCellRange:function(e){var t=this.computeCellDate(e);return{start:t,end:t.clone().add(this.cellDuration)}},computeCellDate:function(e){},getRowData:function(e){return this.rowData[e]||{}},getColData:function(e){return this.colData[e]||{}},getRowEl:function(e){},getColEl:function(e){},getCellDayEl:function(e){return this.getColEl(e.col)||this.getRowEl(e.row)},computeRowCoords:function(){var e,t,n,i=[];for(e=0;e<this.rowCnt;e++)n=(t=this.getRowEl(e)).offset().top,i.push({top:n,bottom:n+t.outerHeight()});return i},computeColCoords:function(){var e,t,n,i=[];for(e=0;e<this.colCnt;e++)n=(t=this.getColEl(e)).offset().left,i.push({left:n,right:n+t.outerWidth()});return i},setElement:function(t){var n=this;this.el=t,t.on("mousedown",function(t){e(t.target).is(".fc-event-container *, .fc-more")||e(t.target).closest(".fc-popover").length||n.dayMousedown(t)}),this.bindSegHandlers(),this.bindGlobalHandlers()},removeElement:function(){this.unbindGlobalHandlers(),this.el.remove()},renderSkeleton:function(){},renderDates:function(){},destroyDates:function(){},bindGlobalHandlers:function(){e(document).on("dragstart sortstart",this.externalDragStartProxy)},unbindGlobalHandlers:function(){e(document).off("dragstart sortstart",this.externalDragStartProxy)},dayMousedown:function(e){var t,n,i=this,r=this.view,o=r.opt("selectable");new tt(this.coordMap,{scroll:r.opt("dragScroll"),dragStart:function(){r.unselect()},cellOver:function(e,r,s){s&&(t=r?e:null,o&&((n=i.computeSelection(s,e))?i.renderSelection(n):a()))},cellOut:function(e){t=null,n=null,i.destroySelection(),s()},listenStop:function(e){t&&r.trigger("dayClick",i.getCellDayEl(t),t.start,e),n&&r.reportSelection(n,e),s()}}).mousedown(e)},renderRangeHelper:function(e,t){var n=this.fabricateHelperEvent(e,t);this.renderHelper(n,t)},fabricateHelperEvent:function(e,t){var n=t?O(t.event):{};return n.start=e.start.clone(),n.end=e.end?e.end.clone():null,n.allDay=null,this.view.calendar.normalizeEventRange(n),n.className=(n.className||[]).concat("fc-helper"),t||(n.editable=!1),n},renderHelper:function(e,t){},destroyHelper:function(){},renderSelection:function(e){this.renderHighlight(e)},destroySelection:function(){this.destroyHighlight()},computeSelection:function(e,t){var n,i=[e.start,e.end,t.start,t.end];return i.sort(q),n={start:i[0].clone(),end:i[3].clone()},this.view.calendar.isSelectionRangeAllowed(n)?n:null},renderHighlight:function(e){this.renderFill("highlight",this.rangeToSegs(e))},destroyHighlight:function(){this.destroyFill("highlight")},highlightSegClasses:function(){return["fc-highlight"]},renderFill:function(e,t){},destroyFill:function(e){var t=this.elsByFill[e];t&&(t.remove(),delete this.elsByFill[e])},renderFillSegEls:function(t,n){var i,r=this,o=this[t+"SegEl"],a="",s=[];if(n.length){for(i=0;i<n.length;i++)a+=this.fillSegHtml(t,n[i]);e(a).each(function(t,i){var a=n[t],l=e(i);o&&(l=o.call(r,a,l)),l&&(l=e(l)).is(r.fillSegTag)&&(a.el=l,s.push(a))})}return s},fillSegTag:"div",fillSegHtml:function(e,t){var n=this[e+"SegClasses"],i=this[e+"SegCss"],r=n?n.call(this,t):[],o=W(i?i.call(this,t):{});return"<"+this.fillSegTag+(r.length?' class="'+r.join(" ")+'"':"")+(o?' style="'+o+'"':"")+" />"},headHtml:function(){return'<div class="fc-row '+this.view.widgetHeaderClass+'"><table><thead>'+this.rowHtml("head")+"</thead></table></div>"},headCellHtml:function(e){var t=this.view,n=e.start;return'<th class="fc-day-header '+t.widgetHeaderClass+" fc-"+He[n.day()]+'">'+U(n.format(this.colHeadFormat))+"</th>"},bgCellHtml:function(e){var t=this.view,n=e.start,i=this.getDayClasses(n);return i.unshift("fc-day",t.widgetContentClass),'<td class="'+i.join(" ")+'" data-date="'+n.format("YYYY-MM-DD")+'"></td>'},getDayClasses:function(e){var t=this.view,n=t.calendar.getNow().stripTime(),i=["fc-"+He[e.day()]];return 1==t.intervalDuration.as("months")&&e.month()!=t.intervalStart.month()&&i.push("fc-other-month"),e.isSame(n,"day")?i.push("fc-today",t.highlightStateClass):e<n?i.push("fc-past"):i.push("fc-future"),i}});rt.mixin({mousedOverSeg:null,isDraggingSeg:!1,isResizingSeg:!1,isDraggingExternal:!1,segs:null,renderEvents:function(e){var t,n,i=this.eventsToSegs(e),r=[],o=[];for(t=0;t<i.length;t++)de((n=i[t]).event)?r.push(n):o.push(n);r=this.renderBgSegs(r)||r,o=this.renderFgSegs(o)||o,this.segs=r.concat(o)},destroyEvents:function(){this.triggerSegMouseout(),this.destroyFgSegs(),this.destroyBgSegs(),this.segs=null},getEventSegs:function(){return this.segs||[]},renderFgSegs:function(e){},destroyFgSegs:function(){},renderFgSegEls:function(t,n){var i,r=this.view,o="",a=[];if(t.length){for(i=0;i<t.length;i++)o+=this.fgSegHtml(t[i],n);e(o).each(function(n,i){var o=t[n],s=r.resolveEventEl(o.event,e(i));s&&(s.data("fc-seg",o),o.el=s,a.push(o))})}return a},fgSegHtml:function(e,t){},renderBgSegs:function(e){return this.renderFill("bgEvent",e)},destroyBgSegs:function(){this.destroyFill("bgEvent")},bgEventSegEl:function(e,t){return this.view.resolveEventEl(e.event,t)},bgEventSegClasses:function(e){var t=e.event,n=t.source||{};return["fc-bgevent"].concat(t.className,n.className||[])},bgEventSegCss:function(e){var t=this.view,n=e.event,i=n.source||{};return{"background-color":n.backgroundColor||n.color||i.backgroundColor||i.color||t.opt("eventBackgroundColor")||t.opt("eventColor")}},businessHoursSegClasses:function(e){return["fc-nonbusiness","fc-bgevent"]},bindSegHandlers:function(){var t=this,n=this.view;e.each({mouseenter:function(e,n){t.triggerSegMouseover(e,n)},mouseleave:function(e,n){t.triggerSegMouseout(e,n)},click:function(e,t){return n.trigger("eventClick",this,e.event,t)},mousedown:function(i,r){e(r.target).is(".fc-resizer")&&n.isEventResizable(i.event)?t.segResizeMousedown(i,r,e(r.target).is(".fc-start-resizer")):n.isEventDraggable(i.event)&&t.segDragMousedown(i,r)}},function(n,i){t.el.on(n,".fc-event-container > *",function(n){var r=e(this).data("fc-seg");if(r&&!t.isDraggingSeg&&!t.isResizingSeg)return i.call(this,r,n)})})},triggerSegMouseover:function(e,t){this.mousedOverSeg||(this.mousedOverSeg=e,this.view.trigger("eventMouseover",e.el[0],e.event,t))},triggerSegMouseout:function(e,t){t=t||{},this.mousedOverSeg&&(e=e||this.mousedOverSeg,this.mousedOverSeg=null,this.view.trigger("eventMouseout",e.el[0],e.event,t))},segDragMousedown:function(e,t){var n,i=this,r=this.view,o=r.calendar,l=e.el,c=e.event,u=new nt(e.el,{parentEl:r.el,opacity:r.opt("dragOpacity"),revertDuration:r.opt("dragRevertDuration"),zIndex:2});new tt(r.coordMap,{distance:5,scroll:r.opt("dragScroll"),subjectEl:l,subjectCenter:!0,listenStart:function(e){u.hide(),u.start(e)},dragStart:function(t){i.triggerSegMouseout(e,t),i.segDragStart(e,t),r.hideEvent(c)},cellOver:function(t,s,l){e.cell&&(l=e.cell),(n=i.computeEventDrop(l,t,c))&&!o.isEventRangeAllowed(n,c)&&(a(),n=null),n&&r.renderDrag(n,e)?u.hide():u.show(),s&&(n=null)},cellOut:function(){r.destroyDrag(),u.show(),n=null},cellDone:function(){s()},dragStop:function(t){u.stop(!n,function(){r.destroyDrag(),r.showEvent(c),i.segDragStop(e,t),n&&r.reportEventDrop(c,n,this.largeUnit,l,t)})},listenStop:function(){u.stop()}}).mousedown(t)},segDragStart:function(e,t){this.isDraggingSeg=!0,this.view.trigger("eventDragStart",e.el[0],e.event,t,{})},segDragStop:function(e,t){this.isDraggingSeg=!1,this.view.trigger("eventDragStop",e.el[0],e.event,t,{})},computeEventDrop:function(e,t,n){var i,r,o=this.view.calendar,a=e.start,s=t.start;return a.hasTime()===s.hasTime()?(i=this.diffDates(s,a),n.allDay&&P(i)?(r={start:n.start.clone(),end:o.getEventEnd(n),allDay:!1},o.normalizeEventRangeTimes(r)):r={start:n.start.clone(),end:n.end?n.end.clone():null,allDay:n.allDay},r.start.add(i),r.end&&r.end.add(i)):r={start:s.clone(),end:null,allDay:!s.hasTime()},r},applyDragOpacity:function(e){var t=this.view.opt("dragOpacity");null!=t&&e.each(function(e,n){n.style.opacity=t})},externalDragStart:function(t,n){var i,r,o=this.view;o.opt("droppable")&&(i=e((n?n.item:null)||t.target),r=o.opt("dropAccept"),(e.isFunction(r)?r.call(i[0],i):i.is(r))&&(this.isDraggingExternal||this.listenToExternalDrag(i,t,n)))},listenToExternalDrag:function(e,t,n){var i,r=this,o=ve(e);new tt(this.coordMap,{listenStart:function(){r.isDraggingExternal=!0},cellOver:function(e){(i=r.computeExternalDrop(e,o))?r.renderDrag(i):a()},cellOut:function(){i=null,r.destroyDrag(),s()},dragStop:function(){r.destroyDrag(),s(),i&&r.view.reportExternalDrop(o,i,e,t,n)},listenStop:function(){r.isDraggingExternal=!1}}).startDrag(t)},computeExternalDrop:function(e,t){var n={start:e.start.clone(),end:null};return t.startTime&&!n.start.hasTime()&&n.start.time(t.startTime),t.duration&&(n.end=n.start.clone().add(t.duration)),this.view.calendar.isExternalDropRangeAllowed(n,t.eventProps)?n:null},renderDrag:function(e,t){},destroyDrag:function(){},segResizeMousedown:function(e,t,n){var i,r=this,o=this.view,l=o.calendar,c=e.el,u=e.event,d=l.getEventEnd(u);new tt(this.coordMap,{distance:5,scroll:o.opt("dragScroll"),subjectEl:c,dragStart:function(t){r.triggerSegMouseout(e,t),r.segResizeStart(e,t)},cellOver:function(t,s,c){(i=n?r.computeEventStartResize(c,t,u):r.computeEventEndResize(c,t,u))&&(l.isEventRangeAllowed(i,u)?i.start.isSame(u.start)&&i.end.isSame(d)&&(i=null):(a(),i=null)),i&&(o.hideEvent(u),r.renderEventResize(i,e))},cellOut:function(){i=null},cellDone:function(){r.destroyEventResize(),o.showEvent(u),s()},dragStop:function(t){r.segResizeStop(e,t),i&&o.reportEventResize(u,i,this.largeUnit,c,t)}}).mousedown(t)},segResizeStart:function(e,t){this.isResizingSeg=!0,this.view.trigger("eventResizeStart",e.el[0],e.event,t,{})},segResizeStop:function(e,t){this.isResizingSeg=!1,this.view.trigger("eventResizeStop",e.el[0],e.event,t,{})},computeEventStartResize:function(e,t,n){return this.computeEventResize("start",e,t,n)},computeEventEndResize:function(e,t,n){return this.computeEventResize("end",e,t,n)},computeEventResize:function(e,t,n,i){var r,o,a=this.view.calendar,s=this.diffDates(n[e],t[e]);return(r={start:i.start.clone(),end:a.getEventEnd(i),allDay:i.allDay}).allDay&&P(s)&&(r.allDay=!1,a.normalizeEventRangeTimes(r)),r[e].add(s),r.start.isBefore(r.end)||(o=i.allDay?a.defaultAllDayEventDuration:a.defaultTimedEventDuration,this.cellDuration&&this.cellDuration<o&&(o=this.cellDuration),"start"==e?r.start=r.end.clone().subtract(o):r.end=r.start.clone().add(o)),r},renderEventResize:function(e,t){},destroyEventResize:function(){},getEventTimeText:function(e,t,n){return null==t&&(t=this.eventTimeFormat),null==n&&(n=this.displayEventEnd),this.displayEventTime&&e.start.hasTime()?n&&e.end?this.view.formatRange(e,t):e.start.format(t):""},getSegClasses:function(e,t,n){var i=e.event,r=["fc-event",e.isStart?"fc-start":"fc-not-start",e.isEnd?"fc-end":"fc-not-end"].concat(i.className,i.source?i.source.className:[]);return t&&r.push("fc-draggable"),n&&r.push("fc-resizable"),r},getEventSkinCss:function(e){var t=this.view,n=e.source||{},i=e.color,r=n.color,o=t.opt("eventColor");return{"background-color":e.backgroundColor||i||n.backgroundColor||r||t.opt("eventBackgroundColor")||o,"border-color":e.borderColor||i||n.borderColor||r||t.opt("eventBorderColor")||o,color:e.textColor||n.textColor||t.opt("eventTextColor")}},eventsToSegs:function(e,t){var n,i=this.eventsToRanges(e),r=[];for(n=0;n<i.length;n++)r.push.apply(r,this.eventRangeToSegs(i[n],t));return r},eventsToRanges:function(t){var n=this,i=fe(t),r=[];return e.each(i,function(e,t){t.length&&r.push.apply(r,he(t[0])?n.eventsToInverseRanges(t):n.eventsToNormalRanges(t))}),r},eventsToNormalRanges:function(e){var t,n,i,r,o=this.view.calendar,a=[];for(t=0;t<e.length;t++)i=(n=e[t]).start.clone().stripZone(),r=o.getEventEnd(n).stripZone(),a.push({event:n,start:i,end:r,eventStartMS:+i,eventDurationMS:r-i});return a},eventsToInverseRanges:function(e){var t,n,i=this.view,r=i.start.clone().stripZone(),o=i.end.clone().stripZone(),a=this.eventsToNormalRanges(e),s=[],l=e[0],c=r;for(a.sort(me),t=0;t<a.length;t++)(n=a[t]).start>c&&s.push({event:l,start:c,end:n.start}),c=n.end;return c<o&&s.push({event:l,start:c,end:o}),s},eventRangeToSegs:function(e,t){var n,i,r;for(n=t?t(e):this.rangeToSegs(e),i=0;i<n.length;i++)(r=n[i]).event=e.event,r.eventStartMS=e.eventStartMS,r.eventDurationMS=e.eventDurationMS;return n}}),Ne.compareSegs=ge,Ne.dataAttrPrefix="";var ot=rt.extend({numbersVisible:!1,bottomCoordPadding:0,breakOnWeeks:null,cellDates:null,dayToCellOffsets:null,rowEls:null,dayEls:null,helperEls:null,constructor:function(){rt.apply(this,arguments),this.cellDuration=t.duration(1,"day")},renderDates:function(e){var t,n,i,r=this.view,o=this.rowCnt,a=o*this.colCnt,s="";for(t=0;t<o;t++)s+=this.dayRowHtml(t,e);for(this.el.html(s),this.rowEls=this.el.find(".fc-row"),this.dayEls=this.el.find(".fc-day"),n=0;n<a;n++)i=this.getCell(n),r.trigger("dayRender",null,i.start,this.dayEls.eq(n))},destroyDates:function(){this.destroySegPopover()},renderBusinessHours:function(){var e=this.view.calendar.getBusinessHoursEvents(!0),t=this.eventsToSegs(e);this.renderFill("businessHours",t,"bgevent")},dayRowHtml:function(e,t){var n=["fc-row","fc-week",this.view.widgetContentClass];return t&&n.push("fc-rigid"),'<div class="'+n.join(" ")+'"><div class="fc-bg"><table>'+this.rowHtml("day",e)+'</table></div><div class="fc-content-skeleton"><table>'+(this.numbersVisible?"<thead>"+this.rowHtml("number",e)+"</thead>":"")+"</table></div></div>"},dayCellHtml:function(e){return this.bgCellHtml(e)},computeColHeadFormat:function(){return this.rowCnt>1?"ddd":this.colCnt>1?this.view.opt("dayOfMonthFormat"):"dddd"},computeEventTimeFormat:function(){return this.view.opt("extraSmallTimeFormat")},computeDisplayEventEnd:function(){return 1==this.colCnt},updateCells:function(){var e,t,n,i;if(this.updateCellDates(),e=this.cellDates,this.breakOnWeeks){for(t=e[0].day(),i=1;i<e.length&&e[i].day()!=t;i++);n=Math.ceil(e.length/i)}else n=1,i=e.length;this.rowCnt=n,this.colCnt=i},updateCellDates:function(){for(var e=this.view,t=this.start.clone(),n=[],i=-1,r=[];t.isBefore(this.end);)e.isHiddenDay(t)?r.push(i+.5):(i++,r.push(i),n.push(t.clone())),t.add(1,"days");this.cellDates=n,this.dayToCellOffsets=r},computeCellDate:function(e){var t=this.colCnt,n=e.row*t+(this.isRTL?t-e.col-1:e.col);return this.cellDates[n].clone()},getRowEl:function(e){return this.rowEls.eq(e)},getColEl:function(e){return this.dayEls.eq(e)},getCellDayEl:function(e){return this.dayEls.eq(e.row*this.colCnt+e.col)},computeRowCoords:function(){var e=rt.prototype.computeRowCoords.call(this);return e[e.length-1].bottom+=this.bottomCoordPadding,e},rangeToSegs:function(e){var t,n,i,r,o,a,s,l,c,u,d=this.isRTL,h=this.rowCnt,p=this.colCnt,f=[];for(e=this.view.computeDayRange(e),t=this.dateToCellOffset(e.start),n=this.dateToCellOffset(e.end.subtract(1,"days")),i=0;i<h;i++)o=(r=i*p)+p-1,l=Math.max(r,t),c=Math.min(o,n),(l=Math.ceil(l))<=(c=Math.floor(c))&&(a=l===t,s=c===n,l-=r,c-=r,u={row:i,isStart:a,isEnd:s},d?(u.leftCol=p-c-1,u.rightCol=p-l-1):(u.leftCol=l,u.rightCol=c),f.push(u));return f},dateToCellOffset:function(e){var t=this.dayToCellOffsets,n=e.diff(this.start,"days");return n<0?t[0]-1:n>=t.length?t[t.length-1]+1:t[n]},renderDrag:function(e,t){if(this.renderHighlight(this.view.calendar.ensureVisibleEventRange(e)),t&&!t.el.closest(this.el).length)return this.renderRangeHelper(e,t),this.applyDragOpacity(this.helperEls),!0},destroyDrag:function(){this.destroyHighlight(),this.destroyHelper()},renderEventResize:function(e,t){this.renderHighlight(e),this.renderRangeHelper(e,t)},destroyEventResize:function(){this.destroyHighlight(),this.destroyHelper()},renderHelper:function(t,n){var i,r=[],o=this.eventsToSegs([t]);o=this.renderFgSegEls(o),i=this.renderSegRows(o),this.rowEls.each(function(t,o){var a,s=e(o),l=e('<div class="fc-helper-skeleton"><table/></div>');a=n&&n.row===t?n.el.position().top:s.find(".fc-content-skeleton tbody").position().top,l.css("top",a).find("table").append(i[t].tbodyEl),s.append(l),r.push(l[0])}),this.helperEls=e(r)},destroyHelper:function(){this.helperEls&&(this.helperEls.remove(),this.helperEls=null)},fillSegTag:"td",renderFill:function(t,n,i){var r,o,a,s=[];for(n=this.renderFillSegEls(t,n),r=0;r<n.length;r++)o=n[r],a=this.renderFillRow(t,o,i),this.rowEls.eq(o.row).append(a),s.push(a[0]);return this.elsByFill[t]=e(s),n},renderFillRow:function(t,n,i){var r,o,a=this.colCnt,s=n.leftCol,l=n.rightCol+1;return i=i||t.toLowerCase(),r=e('<div class="fc-'+i+'-skeleton"><table><tr/></table></div>'),o=r.find("tr"),s>0&&o.append('<td colspan="'+s+'"/>'),o.append(n.el.attr("colspan",l-s)),l<a&&o.append('<td colspan="'+(a-l)+'"/>'),this.bookendCells(o,t),r}});ot.mixin({rowStructs:null,destroyEvents:function(){this.destroySegPopover(),rt.prototype.destroyEvents.apply(this,arguments)},getEventSegs:function(){return rt.prototype.getEventSegs.call(this).concat(this.popoverSegs||[])},renderBgSegs:function(t){var n=e.grep(t,function(e){return e.event.allDay});return rt.prototype.renderBgSegs.call(this,n)},renderFgSegs:function(t){var n;return t=this.renderFgSegEls(t),n=this.rowStructs=this.renderSegRows(t),this.rowEls.each(function(t,i){e(i).find(".fc-content-skeleton > table").append(n[t].tbodyEl)}),t},destroyFgSegs:function(){for(var e,t=this.rowStructs||[];e=t.pop();)e.tbodyEl.remove();this.rowStructs=null},renderSegRows:function(e){var t,n,i=[];for(t=this.groupSegRows(e),n=0;n<t.length;n++)i.push(this.renderSegRow(n,t[n]));return i},fgSegHtml:function(e,t){var n,i,r=this.view,o=e.event,a=r.isEventDraggable(o),s=!t&&o.allDay&&e.isStart&&r.isEventResizableFromStart(o),l=!t&&o.allDay&&e.isEnd&&r.isEventResizableFromEnd(o),c=this.getSegClasses(e,a,s||l),u=W(this.getEventSkinCss(o)),d="";return c.unshift("fc-day-grid-event","fc-h-event"),e.isStart&&(n=this.getEventTimeText(o))&&(d='<span class="fc-time">'+U(n)+"</span>"),i='<span class="fc-title">'+(U(o.title||"")||"&nbsp;")+"</span>",'<a class="'+c.join(" ")+'"'+(o.url?' href="'+U(o.url)+'"':"")+(u?' style="'+u+'"':"")+'><div class="fc-content">'+(this.isRTL?i+" "+d:d+" "+i)+"</div>"+(s?'<div class="fc-resizer fc-start-resizer" />':"")+(l?'<div class="fc-resizer fc-end-resizer" />':"")+"</a>"},renderSegRow:function(t,n){function i(t){for(;a<t;)(u=(v[r-1]||[])[a])?u.attr("rowspan",parseInt(u.attr("rowspan")||1,10)+1):(u=e("<td/>"),s.append(u)),g[r][a]=u,v[r][a]=u,a++}var r,o,a,s,l,c,u,d=this.colCnt,h=this.buildSegLevels(n),p=Math.max(1,h.length),f=e("<tbody/>"),m=[],g=[],v=[];for(r=0;r<p;r++){if(o=h[r],a=0,s=e("<tr/>"),m.push([]),g.push([]),v.push([]),o)for(l=0;l<o.length;l++){for(i((c=o[l]).leftCol),u=e('<td class="fc-event-container"/>').append(c.el),c.leftCol!=c.rightCol?u.attr("colspan",c.rightCol-c.leftCol+1):v[r][a]=u;a<=c.rightCol;)g[r][a]=u,m[r][a]=c,a++;s.append(u)}i(d),this.bookendCells(s,"eventSkeleton"),f.append(s)}return{row:t,tbodyEl:f,cellMatrix:g,segMatrix:m,segLevels:h,segs:n}},buildSegLevels:function(e){var t,n,i,r=[];for(e.sort(ge),t=0;t<e.length;t++){for(n=e[t],i=0;i<r.length&&be(n,r[i]);i++);n.level=i,(r[i]||(r[i]=[])).push(n)}for(i=0;i<r.length;i++)r[i].sort(ye);return r},groupSegRows:function(e){var t,n=[];for(t=0;t<this.rowCnt;t++)n.push([]);for(t=0;t<e.length;t++)n[e[t].row].push(e[t]);return n}}),ot.mixin({segPopover:null,popoverSegs:null,destroySegPopover:function(){this.segPopover&&this.segPopover.hide()},limitRows:function(e){var t,n,i=this.rowStructs||[];for(t=0;t<i.length;t++)this.unlimitRow(t),!1!==(n=!!e&&("number"==typeof e?e:this.computeRowLevelLimit(t)))&&this.limitRow(t,n)},computeRowLevelLimit:function(t){function n(t,n){o=Math.max(o,e(n).outerHeight())}var i,r,o,a=this.rowEls.eq(t).height(),s=this.rowStructs[t].tbodyEl.children();for(i=0;i<s.length;i++)if(r=s.eq(i).removeClass("fc-limited"),o=0,r.find("> td > :first-child").each(n),r.position().top+o>a)return i;return!1},limitRow:function(t,n){function i(i){for(;C<i;)r=_.getCell(t,C),(u=_.getCellSegs(r,n)).length&&(p=a[n-1][C],y=_.renderMoreLink(r,u),b=e("<div/>").append(y),p.append(b),A.push(b[0])),C++}var r,o,a,s,l,c,u,d,h,p,f,m,g,v,b,y,_=this,w=this.rowStructs[t],A=[],C=0;if(n&&n<w.segLevels.length){for(o=w.segLevels[n-1],a=w.cellMatrix,s=w.tbodyEl.children().slice(n).addClass("fc-limited").get(),l=0;l<o.length;l++){for(i((c=o[l]).leftCol),h=[],d=0;C<=c.rightCol;)r=this.getCell(t,C),u=this.getCellSegs(r,n),h.push(u),d+=u.length,C++;if(d){for(f=(p=a[n-1][c.leftCol]).attr("rowspan")||1,m=[],g=0;g<h.length;g++)v=e('<td class="fc-more-cell"/>').attr("rowspan",f),u=h[g],r=this.getCell(t,c.leftCol+g),y=this.renderMoreLink(r,[c].concat(u)),b=e("<div/>").append(y),v.append(b),m.push(v[0]),A.push(v[0]);p.addClass("fc-limited").after(e(m)),s.push(p[0])}}i(this.colCnt),w.moreEls=e(A),w.limitedEls=e(s)}},unlimitRow:function(e){var t=this.rowStructs[e];t.moreEls&&(t.moreEls.remove(),t.moreEls=null),t.limitedEls&&(t.limitedEls.removeClass("fc-limited"),t.limitedEls=null)},renderMoreLink:function(t,n){var i=this,r=this.view;return e('<a class="fc-more"/>').text(this.getMoreLinkText(n.length)).on("click",function(o){var a=r.opt("eventLimitClick"),s=t.start,l=e(this),c=i.getCellDayEl(t),u=i.getCellSegs(t),d=i.resliceDaySegs(u,s),h=i.resliceDaySegs(n,s);"function"==typeof a&&(a=r.trigger("eventLimitClick",null,{date:s,dayEl:c,moreEl:l,segs:d,hiddenSegs:h},o)),"popover"===a?i.showSegPopover(t,l,d):"string"==typeof a&&r.calendar.zoomTo(s,a)})},showSegPopover:function(e,t,n){var i,r,o=this,a=this.view,s=t.parent();i=1==this.rowCnt?a.el:this.rowEls.eq(e.row),r={className:"fc-more-popover",content:this.renderSegPopoverContent(e,n),parentEl:this.el,top:i.offset().top,autoHide:!0,viewportConstrain:a.opt("popoverViewportConstrain"),hide:function(){o.segPopover.destroy(),o.segPopover=null,o.popoverSegs=null}},this.isRTL?r.right=s.offset().left+s.outerWidth()+1:r.left=s.offset().left-1,this.segPopover=new Xe(r),this.segPopover.show()},renderSegPopoverContent:function(t,n){var i,r=this.view,o=r.opt("theme"),a=t.start.format(r.opt("dayPopoverFormat")),s=e('<div class="fc-header '+r.widgetHeaderClass+'"><span class="fc-close '+(o?"ui-icon ui-icon-closethick":"fc-icon fc-icon-x")+'"></span><span class="fc-title">'+U(a)+'</span><div class="fc-clear"/></div><div class="fc-body '+r.widgetContentClass+'"><div class="fc-event-container"></div></div>'),l=s.find(".fc-event-container");for(n=this.renderFgSegEls(n,!0),this.popoverSegs=n,i=0;i<n.length;i++)n[i].cell=t,l.append(n[i].el);return s},resliceDaySegs:function(t,n){var i=e.map(t,function(e){return e.event}),r=n.clone().stripTime(),o={start:r,end:r.clone().add(1,"days")};return(t=this.eventsToSegs(i,function(e){var t=E(e,o);return t?[t]:[]})).sort(ge),t},getMoreLinkText:function(e){var t=this.view.opt("eventLimitText");return"function"==typeof t?t(e):"+"+e+" "+t},getCellSegs:function(e,t){for(var n,i=this.rowStructs[e.row].segMatrix,r=t||0,o=[];r<i.length;)(n=i[r][e.col])&&o.push(n),r++;return o}});var at=rt.extend({slotDuration:null,snapDuration:null,minTime:null,maxTime:null,axisFormat:null,dayEls:null,slatEls:null,slatTops:null,helperEl:null,businessHourSegs:null,constructor:function(){rt.apply(this,arguments),this.processOptions()},renderDates:function(){this.el.html(this.renderHtml()),this.dayEls=this.el.find(".fc-day"),this.slatEls=this.el.find(".fc-slats tr")},renderBusinessHours:function(){var e=this.view.calendar.getBusinessHoursEvents();this.businessHourSegs=this.renderFill("businessHours",this.eventsToSegs(e),"bgevent")},renderHtml:function(){return'<div class="fc-bg"><table>'+this.rowHtml("slotBg")+'</table></div><div class="fc-slats"><table>'+this.slatRowHtml()+"</table></div>"},slotBgCellHtml:function(e){return this.bgCellHtml(e)},slatRowHtml:function(){for(var e,n,i,r=this.view,o=this.isRTL,a="",s=this.slotDuration.asMinutes()%15==0,l=t.duration(+this.minTime);l<this.maxTime;)n=(e=this.start.clone().time(l)).minutes(),i='<td class="fc-axis fc-time '+r.widgetContentClass+'" '+r.axisStyleAttr()+">"+(s&&n?"":"<span>"+U(e.format(this.axisFormat))+"</span>")+"</td>",a+="<tr "+(n?'class="fc-minor"':"")+">"+(o?"":i)+'<td class="'+r.widgetContentClass+'"/>'+(o?i:"")+"</tr>",l.add(this.slotDuration);return a},processOptions:function(){var e=this.view,n=e.opt("slotDuration"),i=e.opt("snapDuration");n=t.duration(n),i=i?t.duration(i):n,this.slotDuration=n,this.snapDuration=i,this.cellDuration=i,this.minTime=t.duration(e.opt("minTime")),this.maxTime=t.duration(e.opt("maxTime")),this.axisFormat=e.opt("axisFormat")||e.opt("smallTimeFormat")},computeColHeadFormat:function(){return this.colCnt>1?this.view.opt("dayOfMonthFormat"):"dddd"},computeEventTimeFormat:function(){return this.view.opt("noMeridiemTimeFormat")},computeDisplayEventEnd:function(){return!0},updateCells:function(){var e,t=this.view,n=[];for(e=this.start.clone();e.isBefore(this.end);)n.push({day:e.clone()}),e.add(1,"day"),e=t.skipHiddenDays(e);this.isRTL&&n.reverse(),this.colData=n,this.colCnt=n.length,this.rowCnt=Math.ceil((this.maxTime-this.minTime)/this.snapDuration)},computeCellDate:function(e){var t=this.computeSnapTime(e.row);return this.view.calendar.rezoneDate(e.day).time(t)},getColEl:function(e){return this.dayEls.eq(e)},computeSnapTime:function(e){return t.duration(this.minTime+this.snapDuration*e)},rangeToSegs:function(e){var t,n,i,r=this.colCnt,o=[];for(e={start:e.start.clone().stripZone(),end:e.end.clone().stripZone()},n=0;n<r;n++)(t=E(e,{start:(i=this.colData[n].day).clone().time(this.minTime),end:i.clone().time(this.maxTime)}))&&(t.col=n,o.push(t));return o},updateSize:function(e){this.computeSlatTops(),e&&this.updateSegVerticals()},computeRowCoords:function(){var e,t,n=this.el.offset().top,i=[];for(e=0;e<this.rowCnt;e++)t={top:n+this.computeTimeTop(this.computeSnapTime(e))},e>0&&(i[e-1].bottom=t.top),i.push(t);return t.bottom=t.top+this.computeTimeTop(this.computeSnapTime(e)),i},computeDateTop:function(e,n){return this.computeTimeTop(t.duration(e.clone().stripZone()-n.clone().stripTime()))},computeTimeTop:function(e){var t,n,i,r,o=(e-this.minTime)/this.slotDuration;return o=Math.max(0,o),o=Math.min(this.slatEls.length,o),t=Math.floor(o),n=o-t,i=this.slatTops[t],n?(r=this.slatTops[t+1],i+(r-i)*n):i},computeSlatTops:function(){var t,n=[];this.slatEls.each(function(i,r){t=e(r).position().top,n.push(t)}),n.push(t+this.slatEls.last().outerHeight()),this.slatTops=n},renderDrag:function(e,t){if(t)return this.renderRangeHelper(e,t),this.applyDragOpacity(this.helperEl),!0;this.renderHighlight(this.view.calendar.ensureVisibleEventRange(e))},destroyDrag:function(){this.destroyHelper(),this.destroyHighlight()},renderEventResize:function(e,t){this.renderRangeHelper(e,t)},destroyEventResize:function(){this.destroyHelper()},renderHelper:function(t,n){var i,r,o,a,s=this.eventsToSegs([t]);for(s=this.renderFgSegEls(s),i=this.renderSegTable(s),r=0;r<s.length;r++)o=s[r],n&&n.col===o.col&&(a=n.el,o.el.css({left:a.css("left"),right:a.css("right"),"margin-left":a.css("margin-left"),"margin-right":a.css("margin-right")}));this.helperEl=e('<div class="fc-helper-skeleton"/>').append(i).appendTo(this.el)},destroyHelper:function(){this.helperEl&&(this.helperEl.remove(),this.helperEl=null)},renderSelection:function(e){this.view.opt("selectHelper")?this.renderRangeHelper(e):this.renderHighlight(e)},destroySelection:function(){this.destroyHelper(),this.destroyHighlight()},renderFill:function(t,n,i){var r,o,a,s,l,c,u,d,h,p;if(n.length){for(n=this.renderFillSegEls(t,n),r=this.groupSegCols(n),i=i||t.toLowerCase(),a=(o=e('<div class="fc-'+i+'-skeleton"><table><tr/></table></div>')).find("tr"),s=0;s<r.length;s++)if(l=r[s],c=e("<td/>").appendTo(a),l.length)for(u=e('<div class="fc-'+i+'-container"/>').appendTo(c),d=this.colData[s].day,h=0;h<l.length;h++)p=l[h],u.append(p.el.css({top:this.computeDateTop(p.start,d),bottom:-this.computeDateTop(p.end,d)}));this.bookendCells(a,t),this.el.append(o),this.elsByFill[t]=o}return n}});at.mixin({eventSkeletonEl:null,renderFgSegs:function(t){return t=this.renderFgSegEls(t),this.el.append(this.eventSkeletonEl=e('<div class="fc-content-skeleton"/>').append(this.renderSegTable(t))),t},destroyFgSegs:function(e){this.eventSkeletonEl&&(this.eventSkeletonEl.remove(),this.eventSkeletonEl=null)},renderSegTable:function(t){var n,i,r,o,a,s,l=e("<table><tr/></table>"),c=l.find("tr");for(n=this.groupSegCols(t),this.computeSegVerticals(t),o=0;o<n.length;o++){for(_e(a=n[o]),s=e('<div class="fc-event-container"/>'),i=0;i<a.length;i++)(r=a[i]).el.css(this.generateSegPositionCss(r)),r.bottom-r.top<30&&r.el.addClass("fc-short"),s.append(r.el);c.append(e("<td/>").append(s))}return this.bookendCells(c,"eventSkeleton"),l},updateSegVerticals:function(){var e,t=(this.segs||[]).concat(this.businessHourSegs||[]);for(this.computeSegVerticals(t),e=0;e<t.length;e++)t[e].el.css(this.generateSegVerticalCss(t[e]))},computeSegVerticals:function(e){var t,n;for(t=0;t<e.length;t++)(n=e[t]).top=this.computeDateTop(n.start,n.start),n.bottom=this.computeDateTop(n.end,n.start)},fgSegHtml:function(e,t){var n,i,r,o=this.view,a=e.event,s=o.isEventDraggable(a),l=!t&&e.isStart&&o.isEventResizableFromStart(a),c=!t&&e.isEnd&&o.isEventResizableFromEnd(a),u=this.getSegClasses(e,s,l||c),d=W(this.getEventSkinCss(a));return u.unshift("fc-time-grid-event","fc-v-event"),o.isMultiDayEvent(a)?(e.isStart||e.isEnd)&&(n=this.getEventTimeText(e),i=this.getEventTimeText(e,"LT"),r=this.getEventTimeText(e,null,!1)):(n=this.getEventTimeText(a),i=this.getEventTimeText(a,"LT"),r=this.getEventTimeText(a,null,!1)),'<a class="'+u.join(" ")+'"'+(a.url?' href="'+U(a.url)+'"':"")+(d?' style="'+d+'"':"")+'><div class="fc-content">'+(n?'<div class="fc-time" data-start="'+U(r)+'" data-full="'+U(i)+'"><span>'+U(n)+"</span></div>":"")+(a.title?'<div class="fc-title">'+U(a.title)+"</div>":"")+'</div><div class="fc-bg"/>'+(c?'<div class="fc-resizer fc-end-resizer" />':"")+"</a>"},generateSegPositionCss:function(e){var t,n,i=this.view.opt("slotEventOverlap"),r=e.backwardCoord,o=e.forwardCoord,a=this.generateSegVerticalCss(e);return i&&(o=Math.min(1,r+2*(o-r))),this.isRTL?(t=1-o,n=r):(t=r,n=1-o),a.zIndex=e.level+1,a.left=100*t+"%",a.right=100*n+"%",i&&e.forwardPressure&&(a[this.isRTL?"marginLeft":"marginRight"]=20),a},generateSegVerticalCss:function(e){return{top:e.top,bottom:-e.bottom}},groupSegCols:function(e){var t,n=[];for(t=0;t<this.colCnt;t++)n.push([]);for(t=0;t<e.length;t++)n[e[t].col].push(e[t]);return n}});var st=Ne.View=ce.extend({type:null,name:null,title:null,calendar:null,options:null,coordMap:null,el:null,isDisplayed:!1,isSkeletonRendered:!1,isEventsRendered:!1,start:null,end:null,intervalStart:null,intervalEnd:null,intervalDuration:null,intervalUnit:null,isSelected:!1,scrollerEl:null,scrollTop:null,widgetHeaderClass:null,widgetContentClass:null,highlightStateClass:null,nextDayThreshold:null,isHiddenDayHash:null,documentMousedownProxy:null,constructor:function(e,n,i,r){this.calendar=e,this.type=this.name=n,this.options=i,this.intervalDuration=r||t.duration(1,"day"),this.nextDayThreshold=t.duration(this.opt("nextDayThreshold")),this.initThemingProps(),this.initHiddenDays(),this.documentMousedownProxy=Y(this,"documentMousedown"),this.initialize()},initialize:function(){},opt:function(e){return this.options[e]},trigger:function(e,t){var n=this.calendar;return n.trigger.apply(n,[e,t||this].concat(Array.prototype.slice.call(arguments,2),[this]))},setDate:function(e){this.setRange(this.computeRange(e))},setRange:function(t){e.extend(this,t),this.updateTitle()},computeRange:function(e){var t,n,i=k(this.intervalDuration),r=e.clone().startOf(i),o=r.clone().add(this.intervalDuration);return/year|month|week|day/.test(i)?(r.stripTime(),o.stripTime()):(r.hasTime()||(r=this.calendar.rezoneDate(r)),o.hasTime()||(o=this.calendar.rezoneDate(o))),t=r.clone(),t=this.skipHiddenDays(t),n=o.clone(),n=this.skipHiddenDays(n,-1,!0),{intervalUnit:i,intervalStart:r,intervalEnd:o,start:t,end:n}},computePrevDate:function(e){return this.massageCurrentDate(e.clone().startOf(this.intervalUnit).subtract(this.intervalDuration),-1)},computeNextDate:function(e){return this.massageCurrentDate(e.clone().startOf(this.intervalUnit).add(this.intervalDuration))},massageCurrentDate:function(e,t){return this.intervalDuration.as("days")<=1&&this.isHiddenDay(e)&&(e=this.skipHiddenDays(e,t)).startOf("day"),e},updateTitle:function(){this.title=this.computeTitle()},computeTitle:function(){return this.formatRange({start:this.intervalStart,end:this.intervalEnd},this.opt("titleFormat")||this.computeTitleFormat(),this.opt("titleRangeSeparator"))},computeTitleFormat:function(){return"year"==this.intervalUnit?"YYYY":"month"==this.intervalUnit?this.opt("monthYearFormat"):this.intervalDuration.as("days")>1?"ll":"LL"},formatRange:function(e,t,n){var i=e.end;return i.hasTime()||(i=i.clone().subtract(1)),re(e.start,i,t,n,this.opt("isRTL"))},setElement:function(e){this.el=e,this.bindGlobalHandlers()},removeElement:function(){this.clear(),this.isSkeletonRendered&&(this.destroySkeleton(),this.isSkeletonRendered=!1),this.unbindGlobalHandlers(),this.el.remove()},display:function(e){var t=null;this.isDisplayed&&(t=this.queryScroll()),this.clear(),this.setDate(e),this.render(),this.updateSize(),this.renderBusinessHours(),this.isDisplayed=!0,t=this.computeInitialScroll(t),this.forceScroll(t),this.triggerRender()},clear:function(){this.isDisplayed&&(this.unselect(),this.clearEvents(),this.triggerDestroy(),this.destroyBusinessHours(),this.destroy(),this.isDisplayed=!1)},render:function(){this.isSkeletonRendered||(this.renderSkeleton(),this.isSkeletonRendered=!0),this.renderDates()},destroy:function(){this.destroyDates()},renderSkeleton:function(){},destroySkeleton:function(){},renderDates:function(){},destroyDates:function(){},renderBusinessHours:function(){},destroyBusinessHours:function(){},triggerRender:function(){this.trigger("viewRender",this,this,this.el)},triggerDestroy:function(){this.trigger("viewDestroy",this,this,this.el)},bindGlobalHandlers:function(){e(document).on("mousedown",this.documentMousedownProxy)},unbindGlobalHandlers:function(){e(document).off("mousedown",this.documentMousedownProxy)},initThemingProps:function(){var e=this.opt("theme")?"ui":"fc";this.widgetHeaderClass=e+"-widget-header",this.widgetContentClass=e+"-widget-content",this.highlightStateClass=e+"-state-highlight"},updateSize:function(e){var t;e&&(t=this.queryScroll()),this.updateHeight(),this.updateWidth(),e&&this.setScroll(t)},updateWidth:function(){},updateHeight:function(){var e=this.calendar;this.setHeight(e.getSuggestedViewHeight(),e.isHeightAuto())},setHeight:function(e,t){},computeScrollerHeight:function(e){var t,n,i=this.scrollerEl;return(t=this.el.add(i)).css({position:"relative",left:-1}),n=this.el.outerHeight()-i.height(),t.css({position:"",left:""}),e-n},computeInitialScroll:function(e){return 0},queryScroll:function(){if(this.scrollerEl)return this.scrollerEl.scrollTop()},setScroll:function(e){if(this.scrollerEl)return this.scrollerEl.scrollTop(e)},forceScroll:function(e){var t=this;this.setScroll(e),setTimeout(function(){t.setScroll(e)},0)},displayEvents:function(e){var t=this.queryScroll();this.clearEvents(),this.renderEvents(e),this.isEventsRendered=!0,this.setScroll(t),this.triggerEventRender()},clearEvents:function(){this.isEventsRendered&&(this.triggerEventDestroy(),this.destroyEvents(),this.isEventsRendered=!1)},renderEvents:function(e){},destroyEvents:function(){},triggerEventRender:function(){this.renderedEventSegEach(function(e){this.trigger("eventAfterRender",e.event,e.event,e.el)}),this.trigger("eventAfterAllRender")},triggerEventDestroy:function(){this.renderedEventSegEach(function(e){this.trigger("eventDestroy",e.event,e.event,e.el)})},resolveEventEl:function(t,n){var i=this.trigger("eventRender",t,t,n);return!1===i?n=null:i&&!0!==i&&(n=e(i)),n},showEvent:function(e){this.renderedEventSegEach(function(e){e.el.css("visibility","")},e)},hideEvent:function(e){this.renderedEventSegEach(function(e){e.el.css("visibility","hidden")},e)},renderedEventSegEach:function(e,t){var n,i=this.getEventSegs();for(n=0;n<i.length;n++)t&&i[n].event._id!==t._id||i[n].el&&e.call(this,i[n])},getEventSegs:function(){return[]},isEventDraggable:function(e){var t=e.source||{};return H(e.startEditable,t.startEditable,this.opt("eventStartEditable"),e.editable,t.editable,this.opt("editable"))},reportEventDrop:function(e,t,n,i,r){var o=this.calendar,a=o.mutateEvent(e,t,n),s=function(){a.undo(),o.reportEventChange()};this.triggerEventDrop(e,a.dateDelta,s,i,r),o.reportEventChange()},triggerEventDrop:function(e,t,n,i,r){this.trigger("eventDrop",i[0],e,t,n,r,{})},reportExternalDrop:function(t,n,i,r,o){var a,s,l=t.eventProps;l&&(a=e.extend({},l,n),s=this.calendar.renderEvent(a,t.stick)[0]),this.triggerExternalDrop(s,n,i,r,o)},triggerExternalDrop:function(e,t,n,i,r){this.trigger("drop",n[0],t.start,i,r),e&&this.trigger("eventReceive",null,e)},renderDrag:function(e,t){},destroyDrag:function(){},isEventResizableFromStart:function(e){return this.opt("eventResizableFromStart")&&this.isEventResizable(e)},isEventResizableFromEnd:function(e){return this.isEventResizable(e)},isEventResizable:function(e){var t=e.source||{};return H(e.durationEditable,t.durationEditable,this.opt("eventDurationEditable"),e.editable,t.editable,this.opt("editable"))},reportEventResize:function(e,t,n,i,r){var o=this.calendar,a=o.mutateEvent(e,t,n),s=function(){a.undo(),o.reportEventChange()};this.triggerEventResize(e,a.durationDelta,s,i,r),o.reportEventChange()},triggerEventResize:function(e,t,n,i,r){this.trigger("eventResize",i[0],e,t,n,r,{})},select:function(e,t){this.unselect(t),this.renderSelection(e),this.reportSelection(e,t)},renderSelection:function(e){},reportSelection:function(e,t){this.isSelected=!0,this.trigger("select",null,e.start,e.end,t)},unselect:function(e){this.isSelected&&(this.isSelected=!1,this.destroySelection(),this.trigger("unselect",null,e))},destroySelection:function(){},documentMousedown:function(t){var n;this.isSelected&&this.opt("unselectAuto")&&w(t)&&((n=this.opt("unselectCancel"))&&e(t.target).closest(n).length||this.unselect(t))},initHiddenDays:function(){var t,n=this.opt("hiddenDays")||[],i=[],r=0;for(!1===this.opt("weekends")&&n.push(0,6),t=0;t<7;t++)(i[t]=-1!==e.inArray(t,n))||r++;if(!r)throw"invalid hiddenDays";this.isHiddenDayHash=i},isHiddenDay:function(e){return t.isMoment(e)&&(e=e.day()),this.isHiddenDayHash[e]},skipHiddenDays:function(e,t,n){var i=e.clone();for(t=t||1;this.isHiddenDayHash[(i.day()+(n?t:0)+7)%7];)i.add(t,"days");return i},computeDayRange:function(e){var t,n=e.start.clone().stripTime(),i=e.end,r=null;return i&&(r=i.clone().stripTime(),(t=+i.time())&&t>=this.nextDayThreshold&&r.add(1,"days")),(!i||r<=n)&&(r=n.clone().add(1,"days")),{start:n,end:r}},isMultiDayEvent:function(e){var t=this.computeDayRange(e);return t.end.diff(t.start,"days")>1}}),lt=Ne.Calendar=Ne.CalendarBase=ce.extend({dirDefaults:null,langDefaults:null,overrides:null,options:null,viewSpecCache:null,view:null,header:null,constructor:De,initOptions:function(e){var t,r,o;t=(e=i(e)).lang,(r=ct[t])||(t=lt.defaults.lang,r=ct[t]||{}),o=H(e.isRTL,r.isRTL,lt.defaults.isRTL)?lt.rtlDefaults:{},this.dirDefaults=o,this.langDefaults=r,this.overrides=e,this.options=n(lt.defaults,o,r,e),Ie(this.options),this.viewSpecCache={}},getViewSpec:function(e){var t=this.viewSpecCache;return t[e]||(t[e]=this.buildViewSpec(e))},getUnitViewSpec:function(t){var n,i,r;if(-1!=e.inArray(t,Ue))for(n=this.header.getViewsWithButtons(),e.each(Ne.views,function(e){n.push(e)}),i=0;i<n.length;i++)if((r=this.getViewSpec(n[i]))&&r.singleUnit==t)return r},buildViewSpec:function(e){for(var i,r,o,a,s,l,c=this.overrides.views||{},u=[],d=[],h=e;h&&!i;)r=Oe[h]||{},o=c[h]||{},a=a||o.duration||r.duration,h=o.type||r.type,"function"==typeof r?(i=r,u.unshift(i.defaults||{})):u.unshift(r),d.unshift(o);if(i)return l={class:i,type:e},a&&((a=t.duration(a)).valueOf()||(a=null)),a&&(l.duration=a,s=k(a),1===a.as(s)&&(l.singleUnit=s,d.unshift(c[s]||{}))),l.defaults=n.apply(null,u),l.overrides=n.apply(null,d),this.buildViewSpecOptions(l),this.buildViewSpecButtonText(l,e),l},buildViewSpecOptions:function(e){e.options=n(lt.defaults,e.defaults,this.dirDefaults,this.langDefaults,this.overrides,e.overrides),Ie(e.options)},buildViewSpecButtonText:function(e,t){function n(n){var i=n.buttonText||{};return i[t]||(e.singleUnit?i[e.singleUnit]:null)}e.buttonTextOverride=n(this.overrides)||e.overrides.buttonText,e.buttonTextDefault=n(this.langDefaults)||n(this.dirDefaults)||e.defaults.buttonText||n(lt.defaults)||(e.duration?this.humanizeDuration(e.duration):null)||t},instantiateView:function(e){var t=this.getViewSpec(e);return new t.class(this,e,t.options,t.duration)},isValidViewType:function(e){return Boolean(this.getViewSpec(e))}});lt.defaults={titleRangeSeparator:" — ",monthYearFormat:"MMMM YYYY",defaultTimedEventDuration:"02:00:00",defaultAllDayEventDuration:{days:1},forceEventDuration:!1,nextDayThreshold:"09:00:00",defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberTitle:"W",weekNumberCalculation:"local",lazyFetching:!0,startParam:"start",endParam:"end",timezoneParam:"timezone",timezone:!1,isRTL:!1,buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day"},buttonIcons:{prev:"left-single-arrow",next:"right-single-arrow",prevYear:"left-double-arrow",nextYear:"right-double-arrow"},theme:!1,themeButtonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e",prevYear:"seek-prev",nextYear:"seek-next"},dragOpacity:.75,dragRevertDuration:500,dragScroll:!0,unselectAuto:!0,dropAccept:"*",eventLimit:!1,eventLimitText:"more",eventLimitClick:"popover",dayPopoverFormat:"LL",handleWindowResize:!0,windowResizeDelay:200},lt.englishDefaults={dayPopoverFormat:"dddd, MMMM D"},lt.rtlDefaults={header:{left:"next,prev today",center:"",right:"title"},buttonIcons:{prev:"right-single-arrow",next:"left-single-arrow",prevYear:"right-double-arrow",nextYear:"left-double-arrow"},themeButtonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w",nextYear:"seek-prev",prevYear:"seek-next"}};var ct=Ne.langs={};Ne.datepickerLang=function(t,n,i){var r=ct[t]||(ct[t]={});r.isRTL=i.isRTL,r.weekNumberTitle=i.weekHeader,e.each(ut,function(e,t){r[e]=t(i)}),e.datepicker&&(e.datepicker.regional[n]=e.datepicker.regional[t]=i,e.datepicker.regional.en=e.datepicker.regional[""],e.datepicker.setDefaults(i))},Ne.lang=function(t,i){var r,o;r=ct[t]||(ct[t]={}),i&&(r=ct[t]=n(r,i)),o=ke(t),e.each(dt,function(e,t){null==r[e]&&(r[e]=t(o,r))}),lt.defaults.lang=t};var ut={buttonText:function(e){return{prev:j(e.prevText),next:j(e.nextText),today:j(e.currentText)}},monthYearFormat:function(e){return e.showMonthAfterYear?"YYYY["+e.yearSuffix+"] MMMM":"MMMM YYYY["+e.yearSuffix+"]"}},dt={dayOfMonthFormat:function(e,t){var n=e.longDateFormat("l");return n=n.replace(/^Y+[^\w\s]*|[^\w\s]*Y+$/g,""),t.isRTL?n+=" ddd":n="ddd "+n,n},mediumTimeFormat:function(e){return e.longDateFormat("LT").replace(/\s*a$/i,"a")},smallTimeFormat:function(e){return e.longDateFormat("LT").replace(":mm","(:mm)").replace(/(\Wmm)$/,"($1)").replace(/\s*a$/i,"a")},extraSmallTimeFormat:function(e){return e.longDateFormat("LT").replace(":mm","(:mm)").replace(/(\Wmm)$/,"($1)").replace(/\s*a$/i,"t")},hourFormat:function(e){return e.longDateFormat("LT").replace(":mm","").replace(/(\Wmm)$/,"").replace(/\s*a$/i,"a")},noMeridiemTimeFormat:function(e){return e.longDateFormat("LT").replace(/\s*a$/i,"")}},ht={smallDayDateFormat:function(e){return e.isRTL?"D dd":"dd D"},weekFormat:function(e){return e.isRTL?"w[ "+e.weekNumberTitle+"]":"["+e.weekNumberTitle+" ]w"},smallWeekFormat:function(e){return e.isRTL?"w["+e.weekNumberTitle+"]":"["+e.weekNumberTitle+"]w"}};Ne.lang("en",lt.englishDefaults),Ne.sourceNormalizers=[],Ne.sourceFetchers=[];var pt={dataType:"json",cache:!1},ft=1;lt.prototype.getPeerEvents=function(e,t){var n,i,r=this.getEventCache(),o=[];for(n=0;n<r.length;n++)i=r[n],e&&e._id===i._id||o.push(i);return o};var mt=Oe.basic=st.extend({dayGrid:null,dayNumbersVisible:!1,weekNumbersVisible:!1,weekNumberWidth:null,headRowEl:null,initialize:function(){this.dayGrid=new ot(this),this.coordMap=this.dayGrid.coordMap},setRange:function(e){st.prototype.setRange.call(this,e),this.dayGrid.breakOnWeeks=/year|month|week/.test(this.intervalUnit),this.dayGrid.setRange(e)},computeRange:function(e){var t=st.prototype.computeRange.call(this,e);return/year|month/.test(t.intervalUnit)&&(t.start.startOf("week"),t.start=this.skipHiddenDays(t.start),t.end.weekday()&&(t.end.add(1,"week").startOf("week"),t.end=this.skipHiddenDays(t.end,-1,!0))),t},render:function(){this.dayNumbersVisible=this.dayGrid.rowCnt>1,this.weekNumbersVisible=this.opt("weekNumbers"),this.dayGrid.numbersVisible=this.dayNumbersVisible||this.weekNumbersVisible,this.el.addClass("fc-basic-view").html(this.renderHtml()),this.headRowEl=this.el.find("thead .fc-row"),this.scrollerEl=this.el.find(".fc-day-grid-container"),this.dayGrid.coordMap.containerEl=this.scrollerEl,this.dayGrid.setElement(this.el.find(".fc-day-grid")),this.dayGrid.renderDates(this.hasRigidRows())},destroy:function(){this.dayGrid.destroyDates(),this.dayGrid.removeElement()},renderBusinessHours:function(){this.dayGrid.renderBusinessHours()},renderHtml:function(){return'<table><thead class="fc-head"><tr><td class="'+this.widgetHeaderClass+'">'+this.dayGrid.headHtml()+'</td></tr></thead><tbody class="fc-body"><tr><td class="'+this.widgetContentClass+'"><div class="fc-day-grid-container"><div class="fc-day-grid"/></div></td></tr></tbody></table>'},headIntroHtml:function(){if(this.weekNumbersVisible)return'<th class="fc-week-number '+this.widgetHeaderClass+'" '+this.weekNumberStyleAttr()+"><span>"+U(this.opt("weekNumberTitle"))+"</span></th>"},numberIntroHtml:function(e){if(this.weekNumbersVisible)return'<td class="fc-week-number" '+this.weekNumberStyleAttr()+"><span>"+this.dayGrid.getCell(e,0).start.format("w")+"</span></td>"},dayIntroHtml:function(){if(this.weekNumbersVisible)return'<td class="fc-week-number '+this.widgetContentClass+'" '+this.weekNumberStyleAttr()+"></td>"},introHtml:function(){if(this.weekNumbersVisible)return'<td class="fc-week-number" '+this.weekNumberStyleAttr()+"></td>"},numberCellHtml:function(e){var t,n=e.start;return this.dayNumbersVisible?((t=this.dayGrid.getDayClasses(n)).unshift("fc-day-number"),'<td class="'+t.join(" ")+'" data-date="'+n.format()+'">'+n.date()+"</td>"):"<td/>"},weekNumberStyleAttr:function(){return null!==this.weekNumberWidth?'style="width:'+this.weekNumberWidth+'px"':""},hasRigidRows:function(){var e=this.opt("eventLimit");return e&&"number"!=typeof e},updateWidth:function(){this.weekNumbersVisible&&(this.weekNumberWidth=u(this.el.find(".fc-week-number")))},setHeight:function(e,t){var n,i=this.opt("eventLimit");h(this.scrollerEl),o(this.headRowEl),this.dayGrid.destroySegPopover(),i&&"number"==typeof i&&this.dayGrid.limitRows(i),n=this.computeScrollerHeight(e),this.setGridHeight(n,t),i&&"number"!=typeof i&&this.dayGrid.limitRows(i),!t&&d(this.scrollerEl,n)&&(r(this.headRowEl,v(this.scrollerEl)),n=this.computeScrollerHeight(e),this.scrollerEl.height(n))},setGridHeight:function(e,t){t?c(this.dayGrid.rowEls):l(this.dayGrid.rowEls,e,!0)},renderEvents:function(e){this.dayGrid.renderEvents(e),this.updateHeight()},getEventSegs:function(){return this.dayGrid.getEventSegs()},destroyEvents:function(){this.dayGrid.destroyEvents()},renderDrag:function(e,t){return this.dayGrid.renderDrag(e,t)},destroyDrag:function(){this.dayGrid.destroyDrag()},renderSelection:function(e){this.dayGrid.renderSelection(e)},destroySelection:function(){this.dayGrid.destroySelection()}}),gt=Oe.month=mt.extend({computeRange:function(e){var t,n=mt.prototype.computeRange.call(this,e);return this.isFixedWeeks()&&(t=Math.ceil(n.end.diff(n.start,"weeks",!0)),n.end.add(6-t,"weeks")),n},setGridHeight:function(e,t){(t=t||"variable"===this.opt("weekMode"))&&(e*=this.rowCnt/6),l(this.dayGrid.rowEls,e,!t)},isFixedWeeks:function(){var e=this.opt("weekMode");return e?"fixed"===e:this.opt("fixedWeekCount")}});gt.duration={months:1},gt.defaults={fixedWeekCount:!0},Oe.basicWeek={type:"basic",duration:{weeks:1}},Oe.basicDay={type:"basic",duration:{days:1}};var vt={allDaySlot:!0,allDayText:"all-day",scrollTime:"06:00:00",slotDuration:"00:30:00",minTime:"00:00:00",maxTime:"24:00:00",slotEventOverlap:!0};return(Oe.agenda=st.extend({timeGrid:null,dayGrid:null,axisWidth:null,noScrollRowEls:null,bottomRuleEl:null,bottomRuleHeight:null,initialize:function(){this.timeGrid=new at(this),this.opt("allDaySlot")?(this.dayGrid=new ot(this),this.coordMap=new Je([this.dayGrid.coordMap,this.timeGrid.coordMap])):this.coordMap=this.timeGrid.coordMap},setRange:function(e){st.prototype.setRange.call(this,e),this.timeGrid.setRange(e),this.dayGrid&&this.dayGrid.setRange(e)},render:function(){this.el.addClass("fc-agenda-view").html(this.renderHtml()),this.scrollerEl=this.el.find(".fc-time-grid-container"),this.timeGrid.coordMap.containerEl=this.scrollerEl,this.timeGrid.setElement(this.el.find(".fc-time-grid")),this.timeGrid.renderDates(),this.bottomRuleEl=e('<hr class="fc-divider '+this.widgetHeaderClass+'"/>').appendTo(this.timeGrid.el),this.dayGrid&&(this.dayGrid.setElement(this.el.find(".fc-day-grid")),this.dayGrid.renderDates(),this.dayGrid.bottomCoordPadding=this.dayGrid.el.next("hr").outerHeight()),this.noScrollRowEls=this.el.find(".fc-row:not(.fc-scroller *)")},destroy:function(){this.timeGrid.destroyDates(),this.timeGrid.removeElement(),this.dayGrid&&(this.dayGrid.destroyDates(),this.dayGrid.removeElement())},renderBusinessHours:function(){this.timeGrid.renderBusinessHours(),this.dayGrid&&this.dayGrid.renderBusinessHours()},renderHtml:function(){return'<table><thead class="fc-head"><tr><td class="'+this.widgetHeaderClass+'">'+this.timeGrid.headHtml()+'</td></tr></thead><tbody class="fc-body"><tr><td class="'+this.widgetContentClass+'">'+(this.dayGrid?'<div class="fc-day-grid"/><hr class="fc-divider '+this.widgetHeaderClass+'"/>':"")+'<div class="fc-time-grid-container"><div class="fc-time-grid"/></div></td></tr></tbody></table>'},headIntroHtml:function(){var e,t;return this.opt("weekNumbers")?(e=this.timeGrid.getCell(0).start,t=e.format(this.opt("smallWeekFormat")),'<th class="fc-axis fc-week-number '+this.widgetHeaderClass+'" '+this.axisStyleAttr()+"><span>"+U(t)+"</span></th>"):'<th class="fc-axis '+this.widgetHeaderClass+'" '+this.axisStyleAttr()+"></th>"},dayIntroHtml:function(){return'<td class="fc-axis '+this.widgetContentClass+'" '+this.axisStyleAttr()+"><span>"+(this.opt("allDayHtml")||U(this.opt("allDayText")))+"</span></td>"},slotBgIntroHtml:function(){return'<td class="fc-axis '+this.widgetContentClass+'" '+this.axisStyleAttr()+"></td>"},introHtml:function(){return'<td class="fc-axis" '+this.axisStyleAttr()+"></td>"},axisStyleAttr:function(){return null!==this.axisWidth?'style="width:'+this.axisWidth+'px"':""},updateSize:function(e){this.timeGrid.updateSize(e),st.prototype.updateSize.call(this,e)},updateWidth:function(){this.axisWidth=u(this.el.find(".fc-axis"))},setHeight:function(e,t){var n,i;null===this.bottomRuleHeight&&(this.bottomRuleHeight=this.bottomRuleEl.outerHeight()),this.bottomRuleEl.hide(),this.scrollerEl.css("overflow",""),h(this.scrollerEl),o(this.noScrollRowEls),this.dayGrid&&(this.dayGrid.destroySegPopover(),(n=this.opt("eventLimit"))&&"number"!=typeof n&&(n=5),n&&this.dayGrid.limitRows(n)),t||(i=this.computeScrollerHeight(e),d(this.scrollerEl,i)?(r(this.noScrollRowEls,v(this.scrollerEl)),i=this.computeScrollerHeight(e),this.scrollerEl.height(i)):(this.scrollerEl.height(i).css("overflow","hidden"),this.bottomRuleEl.show()))},computeInitialScroll:function(){var e=t.duration(this.opt("scrollTime")),n=this.timeGrid.computeTimeTop(e);return(n=Math.ceil(n))&&n++,n},renderEvents:function(e){var t,n=[],i=[];for(t=0;t<e.length;t++)e[t].allDay?n.push(e[t]):i.push(e[t]);this.timeGrid.renderEvents(i),this.dayGrid&&this.dayGrid.renderEvents(n),this.updateHeight()},getEventSegs:function(){return this.timeGrid.getEventSegs().concat(this.dayGrid?this.dayGrid.getEventSegs():[])},destroyEvents:function(){this.timeGrid.destroyEvents(),this.dayGrid&&this.dayGrid.destroyEvents()},renderDrag:function(e,t){return e.start.hasTime()?this.timeGrid.renderDrag(e,t):this.dayGrid?this.dayGrid.renderDrag(e,t):void 0},destroyDrag:function(){this.timeGrid.destroyDrag(),this.dayGrid&&this.dayGrid.destroyDrag()},renderSelection:function(e){e.start.hasTime()||e.end.hasTime()?this.timeGrid.renderSelection(e):this.dayGrid&&this.dayGrid.renderSelection(e)},destroySelection:function(){this.timeGrid.destroySelection(),this.dayGrid&&this.dayGrid.destroySelection()}})).defaults=vt,Oe.agendaWeek={type:"agenda",duration:{weeks:1}},Oe.agendaDay={type:"agenda",duration:{days:1}},Ne}),angular.module("ui.calendar",[]).constant("uiCalendarConfig",{calendars:{}}).controller("uiCalendarCtrl",["$scope","$locale",function(e,t){var n=e.eventSources,i=e.calendarWatchEvent?e.calendarWatchEvent:angular.noop,r=function(t){return function(){if(e.$root.$$phase)return t.apply(this,arguments);var n=arguments,i=this;return e.$root.$apply(function(){return t.apply(i,n)})}},o=1;this.eventFingerprint=function(e){return e._id||(e._id=o++),""+e._id+(e.id||"")+(e.title||"")+(e.url||"")+(+e.start||"")+(+e.end||"")+(e.allDay||"")+(e.className||"")+i({event:e})||""};var a=1,s=1;this.sourceFingerprint=function(e){var t=""+(e.__id||(e.__id=a++)),n=angular.isObject(e)&&e.events;return n&&(t=t+"-"+(n.__id||(n.__id=s++))),t},this.allEvents=function(){for(var e=[],t=0,i=n.length;t<i;t++){var r=n[t];if(angular.isArray(r))e.push(r);else if(angular.isObject(r)&&angular.isArray(r.events)){var o={};for(var a in r)"_id"!==a&&"events"!==a&&(o[a]=r[a]);for(var s=0;s<r.events.length;s++)angular.extend(r.events[s],o);e.push(r.events)}}return Array.prototype.concat.apply([],e)},this.changeWatcher=function(e,t){var n,i=function(){for(var n,i,r=angular.isFunction(e)?e():e,a=[],s=0,l=r.length;s<l;s++)i=r[s],n=t(i),o[n]=i,a.push(n);return a},r=function(e,t){var n,i,r=[],o={};for(n=0,i=t.length;n<i;n++)o[t[n]]=!0;for(n=0,i=e.length;n<i;n++)o[e[n]]||r.push(e[n]);return r},o={},a=function(e,i){var a,s,l,c,u={},d=r(i,e);for(a=0,s=d.length;a<s;a++){var h=d[a];l=o[h],delete o[h];var p=t(l);p===h?n.onRemoved(l):(u[p]=h,n.onChanged(l))}var f=r(e,i);for(a=0,s=f.length;a<s;a++)c=f[a],l=o[c],u[c]||n.onAdded(l)};return n={subscribe:function(e,t){e.$watch(i,function(e,n){!(t&&!1===t(e,n))&&a(e,n)},!0)},onAdded:angular.noop,onChanged:angular.noop,onRemoved:angular.noop}},this.getFullCalendarConfig=function(e,t){var n={};return angular.extend(n,t),angular.extend(n,e),angular.forEach(n,function(e,t){"function"==typeof e&&(n[t]=r(n[t]))}),n},this.getLocaleConfig=function(e){if(!e.lang||e.useNgLocale){var n=function(e){var t,n;t=[];for(n in e)t[n]=e[n];return t},i=t.DATETIME_FORMATS;return{monthNames:n(i.MONTH),monthNamesShort:n(i.SHORTMONTH),dayNames:n(i.DAY),dayNamesShort:n(i.SHORTDAY)}}return{}}}]).directive("uiCalendar",["uiCalendarConfig",function(e){return{restrict:"A",scope:{eventSources:"=ngModel",calendarWatchEvent:"&"},controller:"uiCalendarCtrl",link:function(t,n,i,r){function o(){var n,o=i.uiCalendar?t.$parent.$eval(i.uiCalendar):{};n=r.getFullCalendarConfig(o,e);var a=r.getLocaleConfig(n);angular.extend(a,n),d={eventSources:s},angular.extend(d,a),d.calendars=null;var l={};for(var c in d)"eventSources"!==c&&(l[c]=d[c]);return JSON.stringify(l)}var a,s=t.eventSources,l=!1,c=r.changeWatcher(s,r.sourceFingerprint),u=r.changeWatcher(r.allEvents,r.eventFingerprint),d=null;t.destroy=function(){a&&a.fullCalendar&&a.fullCalendar("destroy"),a=i.calendar?e.calendars[i.calendar]=$(n).html(""):$(n).html("")},t.init=function(){a.fullCalendar(d),i.calendar&&(e.calendars[i.calendar]=a)},c.onAdded=function(e){a.fullCalendar("addEventSource",e),l=!0},c.onRemoved=function(e){a.fullCalendar("removeEventSource",e),l=!0},c.onChanged=function(e){a.fullCalendar("refetchEvents"),l=!0},u.onAdded=function(e){a.fullCalendar("renderEvent",e,!!e.stick)},u.onRemoved=function(e){a.fullCalendar("removeEvents",e._id)},u.onChanged=function(e){for(var t=a.fullCalendar("clientEvents",e._id),n=0;n<t.length;n++){var i=t[n];i=angular.extend(i,e),a.fullCalendar("updateEvent",i)}},c.subscribe(t),u.subscribe(t,function(){if(!0===l)return l=!1,!1}),t.$watch(o,function(e,n){t.destroy(),t.init()})}}}]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ui.router"),function(e,t,n){"use strict";function i(e,t){return j(new(j(function(){},{prototype:e})),t)}function r(e){return U(arguments,function(t){t!==e&&U(t,function(t,n){e.hasOwnProperty(n)||(e[n]=t)})}),e}function o(e,t){var n=[];for(var i in e.path){if(e.path[i]!==t.path[i])break;n.push(e.path[i])}return n}function a(e){if(Object.keys)return Object.keys(e);var t=[];return U(e,function(e,n){t.push(n)}),t}function s(e,t){if(Array.prototype.indexOf)return e.indexOf(t,Number(arguments[2])||0);var n=e.length>>>0,i=Number(arguments[2])||0;for((i=i<0?Math.ceil(i):Math.floor(i))<0&&(i+=n);i<n;i++)if(i in e&&e[i]===t)return i;return-1}function l(e,t,n,i){var r,l=o(n,i),c={},u=[];for(var d in l)if(l[d]&&l[d].params&&(r=a(l[d].params)).length)for(var h in r)s(u,r[h])>=0||(u.push(r[h]),c[r[h]]=e[r[h]]);return j({},c,t)}function c(e,t,n){if(!n){n=[];for(var i in e)n.push(i)}for(var r=0;r<n.length;r++){var o=n[r];if(e[o]!=t[o])return!1}return!0}function u(e,t){var n={};return U(e,function(e){n[e]=t[e]}),n}function d(e){var t={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));return U(n,function(n){n in e&&(t[n]=e[n])}),t}function h(e){var t={},n=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));for(var i in e)-1==s(n,i)&&(t[i]=e[i]);return t}function p(e,t){var n=H(e),i=n?[]:{};return U(e,function(e,r){t(e,r)&&(i[n?i.length:r]=e)}),i}function f(e,t){var n=H(e)?[]:{};return U(e,function(e,i){n[i]=t(e,i)}),n}function m(e,t){var i=1,o=2,l={},c=[],u=l,d=j(e.when(l),{$$promises:l,$$values:l});this.study=function(l){function p(e,n){if(b[n]!==o){if(v.push(n),b[n]===i)throw v.splice(0,s(v,n)),new Error("Cyclic dependency: "+v.join(" -> "));if(b[n]=i,B(e))g.push(n,[function(){return t.get(e)}],c);else{var r=t.annotate(e);U(r,function(e){e!==n&&l.hasOwnProperty(e)&&p(l[e],e)}),g.push(n,e,r)}v.pop(),b[n]=o}}function f(e){return F(e)&&e.then&&e.$$promises}if(!F(l))throw new Error("'invocables' must be an object");var m=a(l||{}),g=[],v=[],b={};return U(l,p),l=v=b=null,function(i,o,a){function s(){--y||(_||r(b,o.$$values),p.$$values=b,p.$$promises=p.$$promises||!0,delete p.$$inheritedValues,c.resolve(b))}function l(e){p.$$failure=e,c.reject(e)}if(f(i)&&a===n&&(a=o,o=i,i=null),i){if(!F(i))throw new Error("'locals' must be an object")}else i=u;if(o){if(!f(o))throw new Error("'parent' must be a promise returned by $resolve.resolve()")}else o=d;var c=e.defer(),p=c.promise,v=p.$$promises={},b=j({},i),y=1+g.length/3,_=!1;if(L(o.$$failure))return l(o.$$failure),p;o.$$inheritedValues&&r(b,h(o.$$inheritedValues,m)),j(v,o.$$promises),o.$$values?(_=r(b,h(o.$$values,m)),p.$$inheritedValues=h(o.$$values,m),s()):(o.$$inheritedValues&&(p.$$inheritedValues=h(o.$$inheritedValues,m)),o.then(s,l));for(var w=0,A=g.length;w<A;w+=3)i.hasOwnProperty(g[w])?s():function(n,r,o){function c(e){d.reject(e),l(e)}function u(){if(!L(p.$$failure))try{d.resolve(t.invoke(r,a,b)),d.promise.then(function(e){b[n]=e,s()},c)}catch(e){c(e)}}var d=e.defer(),h=0;U(o,function(e){v.hasOwnProperty(e)&&!i.hasOwnProperty(e)&&(h++,v[e].then(function(t){b[e]=t,--h||u()},c))}),h||u(),v[n]=d.promise}(g[w],g[w+1],g[w+2]);return p}},this.resolve=function(e,t,n,i){return this.study(e)(t,n,i)}}function g(e,t,n){this.fromConfig=function(e,t,n){return L(e.template)?this.fromString(e.template,t):L(e.templateUrl)?this.fromUrl(e.templateUrl,t):L(e.templateProvider)?this.fromProvider(e.templateProvider,t,n):null},this.fromString=function(e,t){return G(e)?e(t):e},this.fromUrl=function(n,i){return G(n)&&(n=n(i)),null==n?null:e.get(n,{cache:t,headers:{Accept:"text/html"}}).then(function(e){return e.data})},this.fromProvider=function(e,t,i){return n.invoke(e,null,i||{params:t})}}function v(e,t,r){function o(t,n,i,r){if(g.push(t),f[t])return f[t];if(!/^\w+([-.]+\w+)*(?:\[\])?$/.test(t))throw new Error("Invalid parameter name '"+t+"' in pattern '"+e+"'");if(m[t])throw new Error("Duplicate parameter name '"+t+"' in pattern '"+e+"'");return m[t]=new q.Param(t,n,i,r),m[t]}function a(e,t,n,i){var r=["",""],o=e.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!t)return o;switch(n){case!1:r=["(",")"+(i?"?":"")];break;case!0:o=o.replace(/\/$/,""),r=["(?:/(",")|/)?"];break;default:r=["("+n+"|",")?"]}return o+r[0]+t+r[1]}function s(r,o){var a,s,l,c,u;return a=r[2]||r[3],u=t.params[a],l=e.substring(h,r.index),(s=o?r[4]:r[4]||("*"==r[1]?".*":null))&&(c=q.type(s)||i(q.type("string"),{pattern:new RegExp(s,t.caseInsensitive?"i":n)})),{id:a,regexp:s,segment:l,type:c,cfg:u}}t=j({params:{}},F(t)?t:{});var l,c=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,u=/([:]?)([\w\[\].-]+)|\{([\w\[\].-]+)(?:\:\s*((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,d="^",h=0,p=this.segments=[],f=r?r.params:{},m=this.params=r?r.params.$$new():new q.ParamSet,g=[];this.source=e;for(var v,b,y;(l=c.exec(e))&&!((v=s(l,!1)).segment.indexOf("?")>=0);)b=o(v.id,v.type,v.cfg,"path"),d+=a(v.segment,b.type.pattern.source,b.squash,b.isOptional),p.push(v.segment),h=c.lastIndex;var _=(y=e.substring(h)).indexOf("?");if(_>=0){var w=this.sourceSearch=y.substring(_);if(y=y.substring(0,_),this.sourcePath=e.substring(0,h+_),w.length>0)for(h=0;l=u.exec(w);)b=o((v=s(l,!0)).id,v.type,v.cfg,"search"),h=c.lastIndex}else this.sourcePath=e,this.sourceSearch="";d+=a(y)+(!1===t.strict?"/?":"")+"$",p.push(y),this.regexp=new RegExp(d,t.caseInsensitive?"i":n),this.prefix=p[0],this.$$paramNames=g}function b(e){j(this,e)}function y(){function e(e){return null!=e?e.toString().replace(/~/g,"~~").replace(/\//g,"~2F"):e}function r(e){return null!=e?e.toString().replace(/~2F/g,"/").replace(/~~/g,"~"):e}function o(){return{strict:m,caseInsensitive:h}}function l(e){return G(e)||H(e)&&G(e[e.length-1])}function c(){for(;A.length;){var e=A.shift();if(e.pattern)throw new Error("You cannot override a type's .pattern at runtime.");t.extend(_[e.name],d.invoke(e.def))}}function u(e){j(this,e||{})}q=this;var d,h=!1,m=!0,g=!1,_={},w=!0,A=[],C={string:{encode:e,decode:r,is:function(e){return null==e||!L(e)||"string"==typeof e},pattern:/[^/]*/},int:{encode:e,decode:function(e){return parseInt(e,10)},is:function(e){return L(e)&&this.decode(e.toString())===e},pattern:/\d+/},bool:{encode:function(e){return e?1:0},decode:function(e){return 0!==parseInt(e,10)},is:function(e){return!0===e||!1===e},pattern:/0|1/},date:{encode:function(e){return this.is(e)?[e.getFullYear(),("0"+(e.getMonth()+1)).slice(-2),("0"+e.getDate()).slice(-2)].join("-"):n},decode:function(e){if(this.is(e))return e;var t=this.capture.exec(e);return t?new Date(t[1],t[2]-1,t[3]):n},is:function(e){return e instanceof Date&&!isNaN(e.valueOf())},equals:function(e,t){return this.is(e)&&this.is(t)&&e.toISOString()===t.toISOString()},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:t.toJson,decode:t.fromJson,is:t.isObject,equals:t.equals,pattern:/[^/]*/},any:{encode:t.identity,decode:t.identity,equals:t.equals,pattern:/.*/}};y.$$getDefaultValue=function(e){if(!l(e.value))return e.value;if(!d)throw new Error("Injectable functions cannot be called at configuration time");return d.invoke(e.value)},this.caseInsensitive=function(e){return L(e)&&(h=e),h},this.strictMode=function(e){return L(e)&&(m=e),m},this.defaultSquashPolicy=function(e){if(!L(e))return g;if(!0!==e&&!1!==e&&!B(e))throw new Error("Invalid squash policy: "+e+". Valid policies: false, true, arbitrary-string");return g=e,e},this.compile=function(e,t){return new v(e,j(o(),t))},this.isMatcher=function(e){if(!F(e))return!1;var t=!0;return U(v.prototype,function(n,i){G(n)&&(t=t&&L(e[i])&&G(e[i]))}),t},this.type=function(e,t,n){if(!L(t))return _[e];if(_.hasOwnProperty(e))throw new Error("A type named '"+e+"' has already been defined.");return _[e]=new b(j({name:e},t)),n&&(A.push({name:e,def:n}),w||c()),this},U(C,function(e,t){_[t]=new b(j({name:t},e))}),_=i(_,{}),this.$get=["$injector",function(e){return d=e,w=!1,c(),U(C,function(e,t){_[t]||(_[t]=new b(e))}),this}],this.Param=function(e,i,r,o){function c(){if(!d)throw new Error("Injectable functions cannot be called at configuration time");var e=d.invoke(r.$$fn);if(null!==e&&e!==n&&!m.type.is(e))throw new Error("Default value ("+e+") for parameter '"+m.id+"' is not an instance of Type ("+m.type.name+")");return e}function u(e){function t(e){return function(t){return t.from===e}}return e=function(e){var n=f(p(m.replace,t(e)),function(e){return e.to});return n.length?n[0]:e}(e),L(e)?m.type.$normalize(e):c()}function h(){return"{Param:"+e+" "+i+" squash: '"+w+"' optional: "+y+"}"}var m=this;r=function(e){var t=F(e)?a(e):[];return-1===s(t,"value")&&-1===s(t,"type")&&-1===s(t,"squash")&&-1===s(t,"array")&&(e={value:e}),e.$$fn=l(e.value)?e.value:function(){return e.value},e}(r),i=function(n,i,r){if(n.type&&i)throw new Error("Param '"+e+"' has two type configurations.");return i||(n.type?t.isString(n.type)?_[n.type]:n.type instanceof b?n.type:new b(n.type):"config"===r?_.any:_.string)}(r,i,o);var v=function(){var t={array:"search"===o&&"auto"},n=e.match(/\[\]$/)?{array:!0}:{};return j(t,n,r).array}();"string"!==(i=v?i.$asArray(v,"search"===o):i).name||v||"path"!==o||r.value!==n||(r.value="");var y=r.value!==n,w=function(e,t){var n=e.squash;if(!t||!1===n)return!1;if(!L(n)||null==n)return g;if(!0===n||B(n))return n;throw new Error("Invalid squash policy: '"+n+"'. Valid policies: false, true, or arbitrary string")}(r,y),A=function(e,t,i,r){var o,a,l=[{from:"",to:i||t?n:""},{from:null,to:i||t?n:""}];return o=H(e.replace)?e.replace:[],B(r)&&o.push({from:r,to:n}),a=f(o,function(e){return e.from}),p(l,function(e){return-1===s(a,e.from)}).concat(o)}(r,v,y,w);j(this,{id:e,type:i,location:o,array:v,squash:w,replace:A,isOptional:y,value:u,dynamic:n,config:r,toString:h})},u.prototype={$$new:function(){return i(this,j(new u,{$$parent:this}))},$$keys:function(){for(var e=[],t=[],n=this,i=a(u.prototype);n;)t.push(n),n=n.$$parent;return t.reverse(),U(t,function(t){U(a(t),function(t){-1===s(e,t)&&-1===s(i,t)&&e.push(t)})}),e},$$values:function(e){var t={},n=this;return U(n.$$keys(),function(i){t[i]=n[i].value(e&&e[i])}),t},$$equals:function(e,t){var n=!0,i=this;return U(i.$$keys(),function(r){var o=e&&e[r],a=t&&t[r];i[r].type.equals(o,a)||(n=!1)}),n},$$validates:function(e){var i,r,o,a,s,l=this.$$keys();for(i=0;i<l.length&&(r=this[l[i]],(o=e[l[i]])!==n&&null!==o||!r.isOptional);i++){if(a=r.type.$normalize(o),!r.type.is(a))return!1;if(s=r.type.encode(a),t.isString(s)&&!r.type.pattern.exec(s))return!1}return!0},$$parent:n},this.ParamSet=u}function _(e,i){function r(e){var t=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(e.source);return null!=t?t[1].replace(/\\(.)/g,"$1"):""}function o(e,t){return e.replace(/\$(\$|\d{1,2})/,function(e,n){return t["$"===n?0:Number(n)]})}function a(e,t,n){if(!n)return!1;var i=e.invoke(t,t,{$match:n});return!L(i)||i}function s(i,r,o,a,s){function h(e,t,n){return"/"===g?e:t?g.slice(0,-1)+e:n?g.slice(1)+e:e}function p(e){function t(e){var t=e(o,i);return!!t&&(B(t)&&i.replace().url(t),!0)}if(!e||!e.defaultPrevented){m&&i.url();m=n;var r,a=c.length;for(r=0;r<a;r++)if(t(c[r]))return;u&&t(u)}}function f(){return l=l||r.$on("$locationChangeSuccess",p)}var m,g=a.baseHref(),v=i.url();return d||f(),{sync:function(){p()},listen:function(){return f()},update:function(e){e?v=i.url():i.url()!==v&&(i.url(v),i.replace())},push:function(e,t,r){var o=e.format(t||{});null!==o&&t&&t["#"]&&(o+="#"+t["#"]),i.url(o),m=r&&r.$$avoidResync?i.url():n,r&&r.replace&&i.replace()},href:function(n,r,o){if(!n.validates(r))return null;var a=e.html5Mode();t.isObject(a)&&(a=a.enabled),a=a&&s.history;var l=n.format(r);if(o=o||{},a||null===l||(l="#"+e.hashPrefix()+l),null!==l&&r&&r["#"]&&(l+="#"+r["#"]),l=h(l,a,o.absolute),!o.absolute||!l)return l;var c=!a&&l?"/":"",u=i.port();return u=80===u||443===u?"":":"+u,[i.protocol(),"://",i.host(),u,c,l].join("")}}}var l,c=[],u=null,d=!1;this.rule=function(e){if(!G(e))throw new Error("'rule' must be a function");return c.push(e),this},this.otherwise=function(e){if(B(e)){var t=e;e=function(){return t}}else if(!G(e))throw new Error("'rule' must be a function");return u=e,this},this.when=function(e,t){var n,s=B(t);if(B(e)&&(e=i.compile(e)),!s&&!G(t)&&!H(t))throw new Error("invalid 'handler' in when()");var l={matcher:function(e,t){return s&&(n=i.compile(t),t=["$match",function(e){return n.format(e)}]),j(function(n,i){return a(n,t,e.exec(i.path(),i.search()))},{prefix:B(e.prefix)?e.prefix:""})},regex:function(e,t){if(e.global||e.sticky)throw new Error("when() RegExp must not be global or sticky");return s&&(n=t,t=["$match",function(e){return o(n,e)}]),j(function(n,i){return a(n,t,e.exec(i.path()))},{prefix:r(e)})}},c={matcher:i.isMatcher(e),regex:e instanceof RegExp};for(var u in c)if(c[u])return this.rule(l[u](e,t));throw new Error("invalid 'what' in when()")},this.deferIntercept=function(e){e===n&&(e=!0),d=e},this.$get=s,s.$inject=["$location","$rootScope","$injector","$browser","$sniffer"]}function w(e,r){function o(e){return 0===e.indexOf(".")||0===e.indexOf("^")}function h(e,t){if(!e)return n;var i=B(e),r=i?e:e.name;if(o(r)){if(!t)throw new Error("No reference point given for path '"+r+"'");t=h(t);for(var a=r.split("."),s=0,l=a.length,c=t;s<l;s++)if(""!==a[s]||0!==s){if("^"!==a[s])break;if(!c.parent)throw new Error("Path '"+r+"' not valid for state '"+t.name+"'");c=c.parent}else c=t;a=a.slice(s).join("."),r=c.name+(c.name&&a?".":"")+a}var u=S[r];return!u||!i&&(i||u!==e&&u.self!==e)?n:u}function p(e,t){E[e]||(E[e]=[]),E[e].push(t)}function m(e){for(var t=E[e]||[];t.length;)g(t.shift())}function g(t){var n=(t=i(t,{self:t,resolve:t.resolve||{},toString:function(){return this.name}})).name;if(!B(n)||n.indexOf("@")>=0)throw new Error("State must have a valid name");if(S.hasOwnProperty(n))throw new Error("State '"+n+"' is already defined");var r=-1!==n.indexOf(".")?n.substring(0,n.lastIndexOf(".")):B(t.parent)?t.parent:F(t.parent)&&B(t.parent.name)?t.parent.name:"";if(r&&!S[r])return p(r,t.self);for(var o in D)G(D[o])&&(t[o]=D[o](t,D.$delegates[o]));return S[n]=t,!t[T]&&t.url&&e.when(t.url,["$match","$stateParams",function(e,n){x.$current.navigable==t&&c(e,n)||x.transitionTo(t,e,{inherit:!0,location:!1})}]),m(n),t}function v(e){return e.indexOf("*")>-1}function b(e){for(var t=e.split("."),n=x.$current.name.split("."),i=0,r=t.length;i<r;i++)"*"===t[i]&&(n[i]="*");return"**"===t[0]&&(n=n.slice(s(n,t[1]))).unshift("**"),"**"===t[t.length-1]&&(n.splice(s(n,t[t.length-2])+1,Number.MAX_VALUE),n.push("**")),t.length==n.length&&n.join("")===t.join("")}function y(e,t){return B(e)&&!L(t)?D[e]:G(t)&&B(e)?(D[e]&&!D.$delegates[e]&&(D.$delegates[e]=D[e]),D[e]=t,this):this}function _(e,t){return F(e)?t=e:t.name=e,g(t),this}function w(e,r,o,s,d,p,m,g,y){function _(t,n,i,o){var a=e.$broadcast("$stateNotFound",t,n,i);if(a.defaultPrevented)return m.update(),I;if(!a.retry)return null;if(o.$retry)return m.update(),k;var s=x.transition=r.when(a.retry);return s.then(function(){return s!==x.transition?E:(t.options.$retry=!0,x.transitionTo(t.to,t.toParams,t.options))},function(){return I}),m.update(),s}function w(e,n,i,a,l,c){function h(){var n=[];return U(e.views,function(i,r){var a=i.resolve&&i.resolve!==e.resolve?i.resolve:{};a.$template=[function(){return o.load(r,{view:i,locals:l.globals,params:p,notify:c.notify})||""}],n.push(d.resolve(a,l.globals,l.resolve,e).then(function(n){if(G(i.controllerProvider)||H(i.controllerProvider)){var o=t.extend({},a,l.globals);n.$$controller=s.invoke(i.controllerProvider,null,o)}else n.$$controller=i.controller;n.$$state=e,n.$$controllerAs=i.controllerAs,n.$$resolveAs=i.resolveAs,l[r]=n}))}),r.all(n).then(function(){return l.globals})}var p=i?n:u(e.params.$$keys(),n),f={$stateParams:p};l.resolve=d.resolve(e.resolve,f,l.resolve,e);var m=[l.resolve.then(function(e){l.globals=e})];return a&&m.push(a),r.all(m).then(h).then(function(e){return l})}var E=r.reject(new Error("transition superseded")),D=r.reject(new Error("transition prevented")),I=r.reject(new Error("transition aborted")),k=r.reject(new Error("transition failed"));return C.locals={resolve:null,globals:{$stateParams:{}}},x={params:{},current:C.self,$current:C,transition:null},x.reload=function(e){return x.transitionTo(x.current,p,{reload:e||!0,inherit:!1,notify:!0})},x.go=function(e,t,n){return x.transitionTo(e,t,j({inherit:!0,relative:x.$current},n))},x.transitionTo=function(t,n,o){n=n||{},o=j({location:!0,inherit:!1,relative:null,notify:!0,reload:!1,$retry:!1},o||{});var a,c=x.$current,d=x.params,f=c.path,g=h(t,o.relative),v=n["#"];if(!L(g)){var b={to:t,toParams:n,options:o},y=_(b,c.self,d,o);if(y)return y;if(t=b.to,n=b.toParams,o=b.options,g=h(t,o.relative),!L(g)){if(!o.relative)throw new Error("No such state '"+t+"'");throw new Error("Could not resolve '"+t+"' from state '"+o.relative+"'")}}if(g[T])throw new Error("Cannot transition to abstract state '"+t+"'");if(o.inherit&&(n=l(p,n||{},x.$current,g)),!g.params.$$validates(n))return k;n=g.params.$$values(n);var S=(t=g).path,I=0,M=S[I],P=C.locals,$=[];if(o.reload){if(B(o.reload)||F(o.reload)){if(F(o.reload)&&!o.reload.name)throw new Error("Invalid reload state object");var N=!0===o.reload?f[0]:h(o.reload);if(o.reload&&!N)throw new Error("No such reload state '"+(B(o.reload)?o.reload:o.reload.name)+"'");for(;M&&M===f[I]&&M!==N;)P=$[I]=M.locals,M=S[++I]}}else for(;M&&M===f[I]&&M.ownParams.$$equals(n,d);)P=$[I]=M.locals,M=S[++I];if(A(t,n,c,d,P,o))return v&&(n["#"]=v),x.params=n,W(x.params,p),W(u(t.params.$$keys(),p),t.locals.globals.$stateParams),o.location&&t.navigable&&t.navigable.url&&(m.push(t.navigable.url,n,{$$avoidResync:!0,replace:"replace"===o.location}),m.update(!0)),x.transition=null,r.when(x.current);if(n=u(t.params.$$keys(),n||{}),v&&(n["#"]=v),o.notify&&e.$broadcast("$stateChangeStart",t.self,n,c.self,d,o).defaultPrevented)return e.$broadcast("$stateChangeCancel",t.self,n,c.self,d),null==x.transition&&m.update(),D;for(var O=r.when(P),R=I;R<S.length;R++,M=S[R])P=$[R]=i(P),O=w(M,n,M===t,O,P,o);var G=x.transition=O.then(function(){var i,r,a;if(x.transition!==G)return E;for(i=f.length-1;i>=I;i--)(a=f[i]).self.onExit&&s.invoke(a.self.onExit,a.self,a.locals.globals),a.locals=null;for(i=I;i<S.length;i++)(r=S[i]).locals=$[i],r.self.onEnter&&s.invoke(r.self.onEnter,r.self,r.locals.globals);return x.transition!==G?E:(x.$current=t,x.current=t.self,x.params=n,W(x.params,p),x.transition=null,o.location&&t.navigable&&m.push(t.navigable.url,t.navigable.locals.globals.$stateParams,{$$avoidResync:!0,replace:"replace"===o.location}),o.notify&&e.$broadcast("$stateChangeSuccess",t.self,n,c.self,d),m.update(!0),x.current)},function(i){return x.transition!==G?E:(x.transition=null,(a=e.$broadcast("$stateChangeError",t.self,n,c.self,d,i)).defaultPrevented||m.update(),r.reject(i))});return G},x.is=function(e,t,i){var r=h(e,(i=j({relative:x.$current},i||{})).relative);return L(r)?x.$current===r&&(!t||c(r.params.$$values(t),p)):n},x.includes=function(e,t,i){if(i=j({relative:x.$current},i||{}),B(e)&&v(e)){if(!b(e))return!1;e=x.$current.name}var r=h(e,i.relative);return L(r)?!!L(x.$current.includes[r.name])&&(!t||c(r.params.$$values(t),p,a(t))):n},x.href=function(e,t,i){var r=h(e,(i=j({lossy:!0,inherit:!0,absolute:!1,relative:x.$current},i||{})).relative);if(!L(r))return null;i.inherit&&(t=l(p,t||{},x.$current,r));var o=r&&i.lossy?r.navigable:r;return o&&o.url!==n&&null!==o.url?m.href(o.url,u(r.params.$$keys().concat("#"),t||{}),{absolute:i.absolute}):null},x.get=function(e,t){if(0===arguments.length)return f(a(S),function(e){return S[e].self});var n=h(e,t||x.$current);return n&&n.self?n.self:null},x}function A(e,t,n,i,r,o){if(!o.reload&&e===n&&(r===n.locals||!1===e.self.reloadOnSearch&&function(e,t,n){function i(t){return"search"!=e.params[t].location}var r=e.params.$$keys().filter(i),o=d.apply({},[e.params].concat(r));return new q.ParamSet(o).$$equals(t,n)}(n,i,t)))return!0}var C,x,S={},E={},T="abstract",D={parent:function(e){if(L(e.parent)&&e.parent)return h(e.parent);var t=/^(.+)\.[^.]+$/.exec(e.name);return t?h(t[1]):C},data:function(e){return e.parent&&e.parent.data&&(e.data=e.self.data=i(e.parent.data,e.data)),e.data},url:function(e){var t=e.url,n={params:e.params||{}};if(B(t))return"^"==t.charAt(0)?r.compile(t.substring(1),n):(e.parent.navigable||C).url.concat(t,n);if(!t||r.isMatcher(t))return t;throw new Error("Invalid url '"+t+"' in state '"+e+"'")},navigable:function(e){return e.url?e:e.parent?e.parent.navigable:null},ownParams:function(e){var t=e.url&&e.url.params||new q.ParamSet;return U(e.params||{},function(e,n){t[n]||(t[n]=new q.Param(n,null,e,"config"))}),t},params:function(e){var t=d(e.ownParams,e.ownParams.$$keys());return e.parent&&e.parent.params?j(e.parent.params.$$new(),t):new q.ParamSet},views:function(e){var t={};return U(L(e.views)?e.views:{"":e},function(n,i){i.indexOf("@")<0&&(i+="@"+e.parent.name),n.resolveAs=n.resolveAs||e.resolveAs||"$resolve",t[i]=n}),t},path:function(e){return e.parent?e.parent.path.concat(e):[]},includes:function(e){var t=e.parent?j({},e.parent.includes):{};return t[e.name]=!0,t},$delegates:{}};(C=g({name:"",url:"^",views:null,abstract:!0})).navigable=null,this.decorator=y,this.state=_,this.$get=w,w.$inject=["$rootScope","$q","$view","$injector","$resolve","$stateParams","$urlRouter","$location","$urlMatcherFactory"]}function A(){function e(e,t){return{load:function(e,n){var i;return(n=j({template:null,controller:null,view:null,locals:null,notify:!0,async:!0,params:{}},n)).view&&(i=t.fromConfig(n.view,n.params,n.locals)),i}}}this.$get=e,e.$inject=["$rootScope","$templateFactory"]}function C(){var e=!1;this.useAnchorScroll=function(){e=!0},this.$get=["$anchorScroll","$timeout",function(t,n){return e?t:function(e){return n(function(){e[0].scrollIntoView()},0,!1)}}]}function x(e,n,i,r,o){function a(e,n){if(c)return{enter:function(e,n,i){t.version.minor>2?c.enter(e,null,n).then(i):c.enter(e,null,n,i)},leave:function(e,n){t.version.minor>2?c.leave(e).then(n):c.leave(e,n)}};if(l){var i=l&&l(n,e);return{enter:function(e,t,n){i.enter(e,null,t),n()},leave:function(e,t){i.leave(e),t()}}}return function(){return{enter:function(e,t,n){t.after(e),n()},leave:function(e,t){e.remove(),t()}}}()}var s=function(){return n.has?function(e){return n.has(e)?n.get(e):null}:function(e){try{return n.get(e)}catch(e){return null}}}(),l=s("$animator"),c=s("$animate");return{restrict:"ECA",terminal:!0,priority:400,transclude:"element",compile:function(n,s,l){return function(n,s,c){function u(){if(h&&(h.remove(),h=null),f&&(f.$destroy(),f=null),p){var e=p.data("$uiView");b.leave(p,function(){e.$$animLeave.resolve(),h=null}),h=p,p=null}}function d(a){var d,h=E(n,c,y,r),_=h&&e.$current&&e.$current.locals[h];if(a||_!==m){d=n.$new(),m=e.$current.locals[h],d.$emit("$viewContentLoading",h);var w=l(d,function(e){var r=o.defer(),a=o.defer(),l={name:h,$animEnter:r.promise,$animLeave:a.promise,$$animLeave:a};b.enter(e.data("$uiView",l),s,function(){r.resolve(),f&&f.$emit("$viewContentAnimationEnded"),(t.isDefined(v)&&!v||n.$eval(v))&&i(e)}),u()});p=w,(f=d).$emit("$viewContentLoaded",h),f.$eval(g)}}var h,p,f,m,g=c.onload||"",v=c.autoscroll,b=a(c,n),y=s.inheritedData("$uiView");n.$on("$stateChangeSuccess",function(){d(!1)}),d(!0)}}}}function S(e,n,i,r){return{restrict:"ECA",priority:-400,compile:function(r){var o=r.html();return function(r,a,s){var l=i.$current,c=a.data("$uiView"),u=l&&l.locals[c.name];if(u){j(c,{state:u.$$state}),a.html(u.$template?u.$template:o);var d=t.extend({},u);r[u.$$resolveAs]=d;var h=e(a.contents());if(u.$$controller){u.$scope=r,u.$element=a;var p=n(u.$$controller,u);u.$$controllerAs&&(r[u.$$controllerAs]=p,r[u.$$controllerAs][u.$$resolveAs]=d),G(p.$onInit)&&p.$onInit(),a.data("$ngControllerController",p),a.children().data("$ngControllerController",p)}h(r)}}}}}function E(e,t,n,i){var r=i(t.uiView||t.name||"")(e);return r.indexOf("@")>=0?r:r+"@"+(n?n.state.name:"")}function T(e,t){var n,i=e.match(/^\s*({[^}]*})\s*$/);if(i&&(e=t+"("+i[1]+")"),!(n=e.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/))||4!==n.length)throw new Error("Invalid state ref '"+e+"'");return{state:n[1],paramExpr:n[3]||null}}function D(e){var t=e.parent().inheritedData("$uiView");if(t&&t.state&&t.state.name)return t.state}function I(e){var t="[object SVGAnimatedString]"===Object.prototype.toString.call(e.prop("href")),n="FORM"===e[0].nodeName;return{attr:n?"action":t?"xlink:href":"href",isAnchor:"A"===e.prop("tagName").toUpperCase(),clickable:!n}}function k(e,t,n,i,r){return function(o){var a=o.which||o.button,s=r();if(!(a>1||o.ctrlKey||o.metaKey||o.shiftKey||e.attr("target"))){var l=n(function(){t.go(s.state,s.params,s.options)});o.preventDefault();var c=i.isAnchor&&!s.href?1:0;o.preventDefault=function(){c--<=0&&n.cancel(l)}}}}function M(e,t){return{relative:D(e)||t.$current,inherit:!0}}function P(e,n){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(i,r,o,a){var s,l=T(o.uiSref,e.current.name),c={state:l.state,href:null,params:null},u=I(r),d=a[1]||a[0],h=null;c.options=j(M(r,e),o.uiSrefOpts?i.$eval(o.uiSrefOpts):{});var p=function(n){n&&(c.params=t.copy(n)),c.href=e.href(l.state,c.params,c.options),h&&h(),d&&(h=d.$$addStateInfo(l.state,c.params)),null!==c.href&&o.$set(u.attr,c.href)};l.paramExpr&&(i.$watch(l.paramExpr,function(e){e!==c.params&&p(e)},!0),c.params=t.copy(i.$eval(l.paramExpr))),p(),u.clickable&&(s=k(r,e,n,u,function(){return c}),r.bind("click",s),i.$on("$destroy",function(){r.unbind("click",s)}))}}}function $(e,t){return{restrict:"A",require:["?^uiSrefActive","?^uiSrefActiveEq"],link:function(n,i,r,o){function a(t){d.state=t[0],d.params=t[1],d.options=t[2],d.href=e.href(d.state,d.params,d.options),h&&h(),c&&(h=c.$$addStateInfo(d.state,d.params)),d.href&&r.$set(l.attr,d.href)}var s,l=I(i),c=o[1]||o[0],u="["+[r.uiState,r.uiStateParams||null,r.uiStateOpts||null].map(function(e){return e||"null"}).join(", ")+"]",d={state:null,params:null,options:null,href:null},h=null;n.$watch(u,a,!0),a(n.$eval(u)),l.clickable&&(s=k(i,e,t,l,function(){return d}),i.bind("click",s),n.$on("$destroy",function(){i.unbind("click",s)}))}}}function N(e,t,n){return{restrict:"A",controller:["$scope","$element","$attrs","$timeout",function(t,i,r,o){function a(t,n,r){var o=e.get(t,D(i)),a=s(t,n),l={state:o||{name:t},params:n,hash:a};return m.push(l),g[a]=r,function(){var e=m.indexOf(l);-1!==e&&m.splice(e,1)}}function s(e,n){if(!B(e))throw new Error("state should be a string");return F(n)?e+z(n):(n=t.$eval(n),F(n)?e+z(n):e)}function l(){for(var e=0;e<m.length;e++)d(m[e].state,m[e].params)?c(i,g[m[e].hash]):u(i,g[m[e].hash]),h(m[e].state,m[e].params)?c(i,p):u(i,p)}function c(e,t){o(function(){e.addClass(t)})}function u(e,t){e.removeClass(t)}function d(t,n){return e.includes(t.name,n)}function h(t,n){return e.is(t.name,n)}var p,f,m=[],g={};p=n(r.uiSrefActiveEq||"",!1)(t);try{f=t.$eval(r.uiSrefActive)}catch(e){}f=f||n(r.uiSrefActive||"",!1)(t),F(f)&&U(f,function(n,i){if(B(n)){var r=T(n,e.current.name);a(r.state,t.$eval(r.paramExpr),i)}}),this.$$addStateInfo=function(e,t){if(!(F(f)&&m.length>0)){var n=a(e,t,f);return l(),n}},t.$on("$stateChangeSuccess",l),l()}]}}function O(e){var t=function(t,n){return e.is(t,n)};return t.$stateful=!0,t}function R(e){var t=function(t,n,i){return e.includes(t,n,i)};return t.$stateful=!0,t}var L=t.isDefined,G=t.isFunction,B=t.isString,F=t.isObject,H=t.isArray,U=t.forEach,j=t.extend,W=t.copy,z=t.toJson;t.module("ui.router.util",["ng"]),t.module("ui.router.router",["ui.router.util"]),t.module("ui.router.state",["ui.router.router","ui.router.util"]),t.module("ui.router",["ui.router.state"]),t.module("ui.router.compat",["ui.router"]),m.$inject=["$q","$injector"],t.module("ui.router.util").service("$resolve",m),g.$inject=["$http","$templateCache","$injector"],t.module("ui.router.util").service("$templateFactory",g);var q;v.prototype.concat=function(e,t){var n={caseInsensitive:q.caseInsensitive(),strict:q.strictMode(),squash:q.defaultSquashPolicy()};return new v(this.sourcePath+e+this.sourceSearch,j(n,t),this)},v.prototype.toString=function(){return this.source},v.prototype.exec=function(e,t){var n=this.regexp.exec(e);if(!n)return null;t=t||{};var i,r,o,a=this.parameters(),s=a.length,l=this.segments.length-1,c={};if(l!==n.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");var u,d;for(i=0;i<l;i++){for(o=a[i],u=this.params[o],d=n[i+1],r=0;r<u.replace.length;r++)u.replace[r].from===d&&(d=u.replace[r].to);d&&!0===u.array&&(d=function(e){function t(e){return e.split("").reverse().join("")}function n(e){return e.replace(/\\-/g,"-")}return f(f(t(e).split(/-(?!\\)/),t),n).reverse()}(d)),L(d)&&(d=u.type.decode(d)),c[o]=u.value(d)}for(;i<s;i++){for(c[o=a[i]]=this.params[o].value(t[o]),u=this.params[o],d=t[o],r=0;r<u.replace.length;r++)u.replace[r].from===d&&(d=u.replace[r].to);L(d)&&(d=u.type.decode(d)),c[o]=u.value(d)}return c},v.prototype.parameters=function(e){return L(e)?this.params[e]||null:this.$$paramNames},v.prototype.validates=function(e){return this.params.$$validates(e)},v.prototype.format=function(e){function t(e){return encodeURIComponent(e).replace(/-/g,function(e){return"%5C%"+e.charCodeAt(0).toString(16).toUpperCase()})}e=e||{};var n=this.segments,i=this.parameters(),r=this.params;if(!this.validates(e))return null;var o,a=!1,s=n.length-1,l=i.length,c=n[0];for(o=0;o<l;o++){var u=o<s,d=i[o],h=r[d],p=h.value(e[d]),m=h.isOptional&&h.type.equals(h.value(),p),g=!!m&&h.squash,v=h.type.encode(p);if(u){var b=n[o+1],y=o+1===s;if(!1===g)null!=v&&(H(v)?c+=f(v,t).join("-"):c+=encodeURIComponent(v)),c+=b;else if(!0===g){var _=c.match(/\/$/)?/\/?(.*)/:/(.*)/;c+=b.match(_)[1]}else B(g)&&(c+=g+b);y&&!0===h.squash&&"/"===c.slice(-1)&&(c=c.slice(0,-1))}else{if(null==v||m&&!1!==g)continue;if(H(v)||(v=[v]),0===v.length)continue;v=f(v,encodeURIComponent).join("&"+d+"="),c+=(a?"&":"?")+d+"="+v,a=!0}}return c},b.prototype.is=function(e,t){return!0},b.prototype.encode=function(e,t){return e},b.prototype.decode=function(e,t){return e},b.prototype.equals=function(e,t){return e==t},b.prototype.$subPattern=function(){var e=this.pattern.toString();return e.substr(1,e.length-2)},b.prototype.pattern=/.*/,b.prototype.toString=function(){return"{Type:"+this.name+"}"},b.prototype.$normalize=function(e){return this.is(e)?e:this.decode(e)},b.prototype.$asArray=function(e,t){function i(e,t){function i(e,t){return function(){return e[t].apply(e,arguments)}}function r(e){return H(e)?e:L(e)?[e]:[]}function o(e){switch(e.length){case 0:return n;case 1:return"auto"===t?e[0]:e;default:return e}}function a(e){return!e}function s(e,t){return function(n){if(H(n)&&0===n.length)return n;var i=f(n=r(n),e);return!0===t?0===p(i,a).length:o(i)}}this.encode=s(i(e,"encode")),this.decode=s(i(e,"decode")),this.is=s(i(e,"is"),!0),this.equals=function(e){return function(t,n){var i=r(t),o=r(n);if(i.length!==o.length)return!1;for(var a=0;a<i.length;a++)if(!e(i[a],o[a]))return!1;return!0}}(i(e,"equals")),this.pattern=e.pattern,this.$normalize=s(i(e,"$normalize")),this.name=e.name,this.$arrayMode=t}if(!e)return this;if("auto"===e&&!t)throw new Error("'auto' array mode is for query parameters only");return new i(this,e)},t.module("ui.router.util").provider("$urlMatcherFactory",y),t.module("ui.router.util").run(["$urlMatcherFactory",function(e){}]),_.$inject=["$locationProvider","$urlMatcherFactoryProvider"],t.module("ui.router.router").provider("$urlRouter",_),w.$inject=["$urlRouterProvider","$urlMatcherFactoryProvider"],t.module("ui.router.state").factory("$stateParams",function(){return{}}).constant("$state.runtime",{autoinject:!0}).provider("$state",w).run(["$injector",function(e){e.get("$state.runtime").autoinject&&e.get("$state")}]),A.$inject=[],t.module("ui.router.state").provider("$view",A),t.module("ui.router.state").provider("$uiViewScroll",C),x.$inject=["$state","$injector","$uiViewScroll","$interpolate","$q"],S.$inject=["$compile","$controller","$state","$interpolate"],t.module("ui.router.state").directive("uiView",x),t.module("ui.router.state").directive("uiView",S),P.$inject=["$state","$timeout"],$.$inject=["$state","$timeout"],N.$inject=["$state","$stateParams","$interpolate"],t.module("ui.router.state").directive("uiSref",P).directive("uiSrefActive",N).directive("uiSrefActiveEq",N).directive("uiState",$),O.$inject=["$state"],R.$inject=["$state"],t.module("ui.router.state").filter("isState",O).filter("includedByState",R)}(window,window.angular),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(e){function t(e){for(var t=e.css("visibility");"inherit"===t;)t=(e=e.parent()).css("visibility");return"hidden"!==t}function n(e){for(var t,n;e.length&&e[0]!==document;){if(("absolute"===(t=e.css("position"))||"relative"===t||"fixed"===t)&&(n=parseInt(e.css("zIndex"),10),!isNaN(n)&&0!==n))return n;e=e.parent()}return 0}function i(){this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},e.extend(this._defaults,this.regional[""]),this.regional.en=e.extend(!0,{},this.regional[""]),this.regional["en-US"]=e.extend(!0,{},this.regional.en),this.dpDiv=r(e("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}function r(t){var n="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return t.on("mouseout",n,function(){e(this).removeClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).removeClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).removeClass("ui-datepicker-next-hover")}).on("mouseover",n,o)}function o(){e.datepicker._isDisabledDatepicker(p.inline?p.dpDiv.parent()[0]:p.input[0])||(e(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),e(this).addClass("ui-state-hover"),-1!==this.className.indexOf("ui-datepicker-prev")&&e(this).addClass("ui-datepicker-prev-hover"),-1!==this.className.indexOf("ui-datepicker-next")&&e(this).addClass("ui-datepicker-next-hover"))}function a(t,n){e.extend(t,n);for(var i in n)null==n[i]&&(t[i]=n[i]);return t}function s(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.ui=e.ui||{};e.ui.version="1.12.1";var l=0,c=Array.prototype.slice;e.cleanData=function(t){return function(n){var i,r,o;for(o=0;null!=(r=n[o]);o++)try{(i=e._data(r,"events"))&&i.remove&&e(r).triggerHandler("remove")}catch(e){}t(n)}}(e.cleanData),e.widget=function(t,n,i){var r,o,a,s={},l=t.split(".")[0],c=l+"-"+(t=t.split(".")[1]);return i||(i=n,n=e.Widget),e.isArray(i)&&(i=e.extend.apply(null,[{}].concat(i))),e.expr[":"][c.toLowerCase()]=function(t){return!!e.data(t,c)},e[l]=e[l]||{},r=e[l][t],o=e[l][t]=function(e,t){if(!this._createWidget)return new o(e,t);arguments.length&&this._createWidget(e,t)},e.extend(o,r,{version:i.version,_proto:e.extend({},i),_childConstructors:[]}),a=new n,a.options=e.widget.extend({},a.options),e.each(i,function(t,i){e.isFunction(i)?s[t]=function(){function e(){return n.prototype[t].apply(this,arguments)}function r(e){return n.prototype[t].apply(this,e)}return function(){var t,n=this._super,o=this._superApply;return this._super=e,this._superApply=r,t=i.apply(this,arguments),this._super=n,this._superApply=o,t}}():s[t]=i}),o.prototype=e.widget.extend(a,{widgetEventPrefix:r?a.widgetEventPrefix||t:t},s,{constructor:o,namespace:l,widgetName:t,widgetFullName:c}),r?(e.each(r._childConstructors,function(t,n){var i=n.prototype;e.widget(i.namespace+"."+i.widgetName,o,n._proto)}),delete r._childConstructors):n._childConstructors.push(o),e.widget.bridge(t,o),o},e.widget.extend=function(t){for(var n,i,r=c.call(arguments,1),o=0,a=r.length;o<a;o++)for(n in r[o])i=r[o][n],r[o].hasOwnProperty(n)&&void 0!==i&&(e.isPlainObject(i)?t[n]=e.isPlainObject(t[n])?e.widget.extend({},t[n],i):e.widget.extend({},i):t[n]=i);return t},e.widget.bridge=function(t,n){var i=n.prototype.widgetFullName||t;e.fn[t]=function(r){var o="string"==typeof r,a=c.call(arguments,1),s=this;return o?this.length||"instance"!==r?this.each(function(){var n,o=e.data(this,i);return"instance"===r?(s=o,!1):o?e.isFunction(o[r])&&"_"!==r.charAt(0)?(n=o[r].apply(o,a),n!==o&&void 0!==n?(s=n&&n.jquery?s.pushStack(n.get()):n,!1):void 0):e.error("no such method '"+r+"' for "+t+" widget instance"):e.error("cannot call methods on "+t+" prior to initialization; attempted to call method '"+r+"'")}):s=void 0:(a.length&&(r=e.widget.extend.apply(null,[r].concat(a))),this.each(function(){var t=e.data(this,i);t?(t.option(r||{}),t._init&&t._init()):e.data(this,i,new n(r,this))})),s}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,n){n=e(n||this.defaultElement||this)[0],this.element=e(n),this.uuid=l++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=e(),this.hoverable=e(),this.focusable=e(),this.classesElementLookup={},n!==this&&(e.data(n,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===n&&this.destroy()}}),this.document=e(n.style?n.ownerDocument:n.document||n),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){var t=this;this._destroy(),e.each(this.classesElementLookup,function(e,n){t._removeClass(n,e)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:e.noop,widget:function(){return this.element},option:function(t,n){var i,r,o,a=t;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof t)if(a={},i=t.split("."),t=i.shift(),i.length){for(r=a[t]=e.widget.extend({},this.options[t]),o=0;o<i.length-1;o++)r[i[o]]=r[i[o]]||{},r=r[i[o]];if(t=i.pop(),1===arguments.length)return void 0===r[t]?null:r[t];r[t]=n}else{if(1===arguments.length)return void 0===this.options[t]?null:this.options[t];a[t]=n}return this._setOptions(a),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return"classes"===e&&this._setOptionClasses(t),this.options[e]=t,"disabled"===e&&this._setOptionDisabled(t),this},_setOptionClasses:function(t){var n,i,r;for(n in t)r=this.classesElementLookup[n],t[n]!==this.options.classes[n]&&r&&r.length&&(i=e(r.get()),this._removeClass(r,n),i.addClass(this._classes({element:i,keys:n,classes:t,add:!0})))},_setOptionDisabled:function(e){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!e),e&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(t){function n(n,o){var a,s;for(s=0;s<n.length;s++)a=r.classesElementLookup[n[s]]||e(),a=e(t.add?e.unique(a.get().concat(t.element.get())):a.not(t.element).get()),r.classesElementLookup[n[s]]=a,i.push(n[s]),o&&t.classes[n[s]]&&i.push(t.classes[n[s]])}var i=[],r=this;return t=e.extend({element:this.element,classes:this.options.classes||{}},t),this._on(t.element,{remove:"_untrackClassesElement"}),t.keys&&n(t.keys.match(/\S+/g)||[],!0),t.extra&&n(t.extra.match(/\S+/g)||[]),i.join(" ")},_untrackClassesElement:function(t){var n=this;e.each(n.classesElementLookup,function(i,r){-1!==e.inArray(t.target,r)&&(n.classesElementLookup[i]=e(r.not(t.target).get()))})},_removeClass:function(e,t,n){return this._toggleClass(e,t,n,!1)},_addClass:function(e,t,n){return this._toggleClass(e,t,n,!0)},_toggleClass:function(e,t,n,i){i="boolean"==typeof i?i:n;var r="string"==typeof e||null===e,o={extra:r?t:n,keys:r?e:t,element:r?this.element:e,add:i};return o.element.toggleClass(this._classes(o),i),this},_on:function(t,n,i){var r,o=this;"boolean"!=typeof t&&(i=n,n=t,t=!1),i?(n=r=e(n),this.bindings=this.bindings.add(n)):(i=n,n=this.element,r=this.widget()),e.each(i,function(i,a){function s(){if(t||!0!==o.options.disabled&&!e(this).hasClass("ui-state-disabled"))return("string"==typeof a?o[a]:a).apply(o,arguments)}"string"!=typeof a&&(s.guid=a.guid=a.guid||s.guid||e.guid++);var l=i.match(/^([\w:-]*)\s*(.*)$/),c=l[1]+o.eventNamespace,u=l[2];u?r.on(c,u,s):n.on(c,s)})},_off:function(t,n){n=(n||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.off(n).off(n),this.bindings=e(this.bindings.not(t).get()),this.focusable=e(this.focusable.not(t).get()),this.hoverable=e(this.hoverable.not(t).get())},_delay:function(e,t){function n(){return("string"==typeof e?i[e]:e).apply(i,arguments)}var i=this;return setTimeout(n,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){this._addClass(e(t.currentTarget),null,"ui-state-hover")},mouseleave:function(t){this._removeClass(e(t.currentTarget),null,"ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){this._addClass(e(t.currentTarget),null,"ui-state-focus")},focusout:function(t){this._removeClass(e(t.currentTarget),null,"ui-state-focus")}})},_trigger:function(t,n,i){var r,o,a=this.options[t];if(i=i||{},n=e.Event(n),n.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),n.target=this.element[0],o=n.originalEvent)for(r in o)r in n||(n[r]=o[r]);return this.element.trigger(n,i),!(e.isFunction(a)&&!1===a.apply(this.element[0],[n].concat(i))||n.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,n){e.Widget.prototype["_"+t]=function(i,r,o){"string"==typeof r&&(r={effect:r});var a,s=r?!0===r||"number"==typeof r?n:r.effect||n:t;"number"==typeof(r=r||{})&&(r={duration:r}),a=!e.isEmptyObject(r),r.complete=o,r.delay&&i.delay(r.delay),a&&e.effects&&e.effects.effect[s]?i[t](r):s!==t&&i[s]?i[s](r.duration,r.easing,o):i.queue(function(n){e(this)[t](),o&&o.call(i[0]),n()})}});e.widget;!function(){function t(e,t,n){return[parseFloat(e[0])*(d.test(e[0])?t/100:1),parseFloat(e[1])*(d.test(e[1])?n/100:1)]}function n(t,n){return parseInt(e.css(t,n),10)||0}function i(t){var n=t[0];return 9===n.nodeType?{width:t.width(),height:t.height(),offset:{top:0,left:0}}:e.isWindow(n)?{width:t.width(),height:t.height(),offset:{top:t.scrollTop(),left:t.scrollLeft()}}:n.preventDefault?{width:0,height:0,offset:{top:n.pageY,left:n.pageX}}:{width:t.outerWidth(),height:t.outerHeight(),offset:t.offset()}}var r,o=Math.max,a=Math.abs,s=/left|center|right/,l=/top|center|bottom/,c=/[\+\-]\d+(\.[\d]+)?%?/,u=/^\w+/,d=/%$/,h=e.fn.position;e.position={scrollbarWidth:function(){if(void 0!==r)return r;var t,n,i=e("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=i.children()[0];return e("body").append(i),t=o.offsetWidth,i.css("overflow","scroll"),n=o.offsetWidth,t===n&&(n=i[0].clientWidth),i.remove(),r=t-n},getScrollInfo:function(t){var n=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),r="scroll"===n||"auto"===n&&t.width<t.element[0].scrollWidth;return{width:"scroll"===i||"auto"===i&&t.height<t.element[0].scrollHeight?e.position.scrollbarWidth():0,height:r?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var n=e(t||window),i=e.isWindow(n[0]),r=!!n[0]&&9===n[0].nodeType;return{element:n,isWindow:i,isDocument:r,offset:!i&&!r?e(t).offset():{left:0,top:0},scrollLeft:n.scrollLeft(),scrollTop:n.scrollTop(),width:n.outerWidth(),height:n.outerHeight()}}},e.fn.position=function(r){if(!r||!r.of)return h.apply(this,arguments);r=e.extend({},r);var d,p,f,m,g,v,b=e(r.of),y=e.position.getWithinInfo(r.within),_=e.position.getScrollInfo(y),w=(r.collision||"flip").split(" "),A={};return v=i(b),b[0].preventDefault&&(r.at="left top"),p=v.width,f=v.height,m=v.offset,g=e.extend({},m),e.each(["my","at"],function(){var e,t,n=(r[this]||"").split(" ");1===n.length&&(n=s.test(n[0])?n.concat(["center"]):l.test(n[0])?["center"].concat(n):["center","center"]),n[0]=s.test(n[0])?n[0]:"center",n[1]=l.test(n[1])?n[1]:"center",e=c.exec(n[0]),t=c.exec(n[1]),A[this]=[e?e[0]:0,t?t[0]:0],r[this]=[u.exec(n[0])[0],u.exec(n[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===r.at[0]?g.left+=p:"center"===r.at[0]&&(g.left+=p/2),"bottom"===r.at[1]?g.top+=f:"center"===r.at[1]&&(g.top+=f/2),d=t(A.at,p,f),g.left+=d[0],g.top+=d[1],this.each(function(){var i,s,l=e(this),c=l.outerWidth(),u=l.outerHeight(),h=n(this,"marginLeft"),v=n(this,"marginTop"),C=c+h+n(this,"marginRight")+_.width,x=u+v+n(this,"marginBottom")+_.height,S=e.extend({},g),E=t(A.my,l.outerWidth(),l.outerHeight());"right"===r.my[0]?S.left-=c:"center"===r.my[0]&&(S.left-=c/2),"bottom"===r.my[1]?S.top-=u:"center"===r.my[1]&&(S.top-=u/2),S.left+=E[0],S.top+=E[1],i={marginLeft:h,marginTop:v},e.each(["left","top"],function(t,n){e.ui.position[w[t]]&&e.ui.position[w[t]][n](S,{targetWidth:p,targetHeight:f,elemWidth:c,elemHeight:u,collisionPosition:i,collisionWidth:C,collisionHeight:x,offset:[d[0]+E[0],d[1]+E[1]],my:r.my,at:r.at,within:y,elem:l})}),r.using&&(s=function(e){var t=m.left-S.left,n=t+p-c,i=m.top-S.top,s=i+f-u,d={target:{element:b,left:m.left,top:m.top,width:p,height:f},element:{element:l,left:S.left,top:S.top,width:c,height:u},horizontal:n<0?"left":t>0?"right":"center",vertical:s<0?"top":i>0?"bottom":"middle"};p<c&&a(t+n)<p&&(d.horizontal="center"),f<u&&a(i+s)<f&&(d.vertical="middle"),o(a(t),a(n))>o(a(i),a(s))?d.important="horizontal":d.important="vertical",r.using.call(this,e,d)}),l.offset(e.extend(S,{using:s}))})},e.ui.position={fit:{left:function(e,t){var n,i=t.within,r=i.isWindow?i.scrollLeft:i.offset.left,a=i.width,s=e.left-t.collisionPosition.marginLeft,l=r-s,c=s+t.collisionWidth-a-r;t.collisionWidth>a?l>0&&c<=0?(n=e.left+l+t.collisionWidth-a-r,e.left+=l-n):e.left=c>0&&l<=0?r:l>c?r+a-t.collisionWidth:r:l>0?e.left+=l:c>0?e.left-=c:e.left=o(e.left-s,e.left)},top:function(e,t){var n,i=t.within,r=i.isWindow?i.scrollTop:i.offset.top,a=t.within.height,s=e.top-t.collisionPosition.marginTop,l=r-s,c=s+t.collisionHeight-a-r;t.collisionHeight>a?l>0&&c<=0?(n=e.top+l+t.collisionHeight-a-r,e.top+=l-n):e.top=c>0&&l<=0?r:l>c?r+a-t.collisionHeight:r:l>0?e.top+=l:c>0?e.top-=c:e.top=o(e.top-s,e.top)}},flip:{left:function(e,t){var n,i,r=t.within,o=r.offset.left+r.scrollLeft,s=r.width,l=r.isWindow?r.scrollLeft:r.offset.left,c=e.left-t.collisionPosition.marginLeft,u=c-l,d=c+t.collisionWidth-s-l,h="left"===t.my[0]?-t.elemWidth:"right"===t.my[0]?t.elemWidth:0,p="left"===t.at[0]?t.targetWidth:"right"===t.at[0]?-t.targetWidth:0,f=-2*t.offset[0];u<0?((n=e.left+h+p+f+t.collisionWidth-s-o)<0||n<a(u))&&(e.left+=h+p+f):d>0&&((i=e.left-t.collisionPosition.marginLeft+h+p+f-l)>0||a(i)<d)&&(e.left+=h+p+f)},top:function(e,t){var n,i,r=t.within,o=r.offset.top+r.scrollTop,s=r.height,l=r.isWindow?r.scrollTop:r.offset.top,c=e.top-t.collisionPosition.marginTop,u=c-l,d=c+t.collisionHeight-s-l,h="top"===t.my[1]?-t.elemHeight:"bottom"===t.my[1]?t.elemHeight:0,p="top"===t.at[1]?t.targetHeight:"bottom"===t.at[1]?-t.targetHeight:0,f=-2*t.offset[1];u<0?((i=e.top+h+p+f+t.collisionHeight-s-o)<0||i<a(u))&&(e.top+=h+p+f):d>0&&((n=e.top-t.collisionPosition.marginTop+h+p+f-l)>0||a(n)<d)&&(e.top+=h+p+f)}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}}}();e.ui.position,e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,i){return!!e.data(t,i[3])}}),e.fn.extend({disableSelection:function(){var e="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(e+".ui-disableSelection",function(e){e.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}});var u="ui-effects-animated",d=e;e.effects={effect:{}},function(e,t){function n(e,t,n){var i=u[t.type]||{};return null==e?n||!t.def?null:t.def:(e=i.floor?~~e:parseFloat(e),isNaN(e)?t.def:i.mod?(e+i.mod)%i.mod:0>e?0:i.max<e?i.max:e)}function i(t){var n=l(),i=n._rgba=[];return t=t.toLowerCase(),p(s,function(e,r){var o,a=r.re.exec(t),s=a&&r.parse(a),l=r.space||"rgba";if(s)return o=n[l](s),n[c[l].cache]=o[c[l].cache],i=n._rgba=o._rgba,!1}),i.length?("0,0,0,0"===i.join()&&e.extend(i,o.transparent),n):o[t]}function r(e,t,n){return n=(n+1)%1,6*n<1?e+(t-e)*n*6:2*n<1?t:3*n<2?e+(t-e)*(2/3-n)*6:e}var o,a=/^([\-+])=\s*(\d+\.?\d*)/,s=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(e){return[2.55*e[1],2.55*e[2],2.55*e[3],e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],l=e.Color=function(t,n,i,r){return new e.Color.fn.parse(t,n,i,r)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={byte:{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=l.support={},h=e("<p>")[0],p=e.each;h.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=h.style.backgroundColor.indexOf("rgba")>-1,p(c,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),l.fn=e.extend(l.prototype,{parse:function(t,r,a,s){if(void 0===t)return this._rgba=[null,null,null,null],this;(t.jquery||t.nodeType)&&(t=e(t).css(r),r=void 0);var u=this,d=e.type(t),h=this._rgba=[];return void 0!==r&&(t=[t,r,a,s],d="array"),"string"===d?this.parse(i(t)||o._default):"array"===d?(p(c.rgba.props,function(e,i){h[i.idx]=n(t[i.idx],i)}),this):"object"===d?(t instanceof l?p(c,function(e,n){t[n.cache]&&(u[n.cache]=t[n.cache].slice())}):p(c,function(i,r){var o=r.cache;p(r.props,function(e,i){if(!u[o]&&r.to){if("alpha"===e||null==t[e])return;u[o]=r.to(u._rgba)}u[o][i.idx]=n(t[e],i,!0)}),u[o]&&e.inArray(null,u[o].slice(0,3))<0&&(u[o][3]=1,r.from&&(u._rgba=r.from(u[o])))}),this):void 0},is:function(e){var t=l(e),n=!0,i=this;return p(c,function(e,r){var o,a=t[r.cache];return a&&(o=i[r.cache]||r.to&&r.to(i._rgba)||[],p(r.props,function(e,t){if(null!=a[t.idx])return n=a[t.idx]===o[t.idx]})),n}),n},_space:function(){var e=[],t=this;return p(c,function(n,i){t[i.cache]&&e.push(n)}),e.pop()},transition:function(e,t){var i=l(e),r=i._space(),o=c[r],a=0===this.alpha()?l("transparent"):this,s=a[o.cache]||o.to(a._rgba),d=s.slice();return i=i[o.cache],p(o.props,function(e,r){var o=r.idx,a=s[o],l=i[o],c=u[r.type]||{};null!==l&&(null===a?d[o]=l:(c.mod&&(l-a>c.mod/2?a+=c.mod:a-l>c.mod/2&&(a-=c.mod)),d[o]=n((l-a)*t+a,r)))}),this[r](d)},blend:function(t){if(1===this._rgba[3])return this;var n=this._rgba.slice(),i=n.pop(),r=l(t)._rgba;return l(e.map(n,function(e,t){return(1-i)*r[t]+i*e}))},toRgbaString:function(){var t="rgba(",n=e.map(this._rgba,function(e,t){return null==e?t>2?1:0:e});return 1===n[3]&&(n.pop(),t="rgb("),t+n.join()+")"},toHslaString:function(){var t="hsla(",n=e.map(this.hsla(),function(e,t){return null==e&&(e=t>2?1:0),t&&t<3&&(e=Math.round(100*e)+"%"),e});return 1===n[3]&&(n.pop(),t="hsl("),t+n.join()+")"},toHexString:function(t){var n=this._rgba.slice(),i=n.pop();return t&&n.push(~~(255*i)),"#"+e.map(n,function(e){return e=(e||0).toString(16),1===e.length?"0"+e:e}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),l.fn.parse.prototype=l.fn,c.hsla.to=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t,n,i=e[0]/255,r=e[1]/255,o=e[2]/255,a=e[3],s=Math.max(i,r,o),l=Math.min(i,r,o),c=s-l,u=s+l,d=.5*u;return t=l===s?0:i===s?60*(r-o)/c+360:r===s?60*(o-i)/c+120:60*(i-r)/c+240,n=0===c?0:d<=.5?c/u:c/(2-u),[Math.round(t)%360,n,d,null==a?1:a]},c.hsla.from=function(e){if(null==e[0]||null==e[1]||null==e[2])return[null,null,null,e[3]];var t=e[0]/360,n=e[1],i=e[2],o=e[3],a=i<=.5?i*(1+n):i+n-i*n,s=2*i-a;return[Math.round(255*r(s,a,t+1/3)),Math.round(255*r(s,a,t)),Math.round(255*r(s,a,t-1/3)),o]},p(c,function(t,i){var r=i.props,o=i.cache,s=i.to,c=i.from;l.fn[t]=function(t){if(s&&!this[o]&&(this[o]=s(this._rgba)),void 0===t)return this[o].slice();var i,a=e.type(t),u="array"===a||"object"===a?t:arguments,d=this[o].slice();return p(r,function(e,t){var i=u["object"===a?e:t.idx];null==i&&(i=d[t.idx]),d[t.idx]=n(i,t)}),c?(i=l(c(d)),i[o]=d,i):l(d)},p(r,function(n,i){l.fn[n]||(l.fn[n]=function(r){var o,s=e.type(r),l="alpha"===n?this._hsla?"hsla":"rgba":t,c=this[l](),u=c[i.idx];return"undefined"===s?u:("function"===s&&(r=r.call(this,u),s=e.type(r)),null==r&&i.empty?this:("string"===s&&(o=a.exec(r))&&(r=u+parseFloat(o[2])*("+"===o[1]?1:-1)),c[i.idx]=r,this[l](c)))})})}),l.hook=function(t){var n=t.split(" ");p(n,function(t,n){e.cssHooks[n]={set:function(t,r){var o,a,s="";if("transparent"!==r&&("string"!==e.type(r)||(o=i(r)))){if(r=l(o||r),!d.rgba&&1!==r._rgba[3]){for(a="backgroundColor"===n?t.parentNode:t;(""===s||"transparent"===s)&&a&&a.style;)try{s=e.css(a,"backgroundColor"),a=a.parentNode}catch(e){}r=r.blend(s&&"transparent"!==s?s:"_default")}r=r.toRgbaString()}try{t.style[n]=r}catch(e){}}},e.fx.step[n]=function(t){t.colorInit||(t.start=l(t.elem,n),t.end=l(t.end),t.colorInit=!0),e.cssHooks[n].set(t.elem,t.start.transition(t.end,t.pos))}})},l.hook("backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor"),e.cssHooks.borderColor={expand:function(e){var t={};return p(["Top","Right","Bottom","Left"],function(n,i){t["border"+i+"Color"]=e}),t}},o=e.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(d),function(){function t(t){var n,i,r=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,o={};if(r&&r.length&&r[0]&&r[r[0]])for(i=r.length;i--;)"string"==typeof r[n=r[i]]&&(o[e.camelCase(n)]=r[n]);else for(n in r)"string"==typeof r[n]&&(o[n]=r[n]);return o}function n(t,n){var i,o,a={};for(i in n)o=n[i],t[i]!==o&&(r[i]||!e.fx.step[i]&&isNaN(parseFloat(o))||(a[i]=o));return a}var i=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,n){e.fx.step[n]=function(e){("none"!==e.end&&!e.setAttr||1===e.pos&&!e.setAttr)&&(d.style(e.elem,n,e.end),e.setAttr=!0)}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(r,o,a,s){var l=e.speed(o,a,s);return this.queue(function(){var o,a=e(this),s=a.attr("class")||"",c=l.children?a.find("*").addBack():a;c=c.map(function(){return{el:e(this),start:t(this)}}),(o=function(){e.each(i,function(e,t){r[t]&&a[t+"Class"](r[t])})})(),c=c.map(function(){return this.end=t(this.el[0]),this.diff=n(this.start,this.end),this}),a.attr("class",s),c=c.map(function(){var t=this,n=e.Deferred(),i=e.extend({},l,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,i),n.promise()}),e.when.apply(e,c.get()).done(function(){o(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),l.complete.call(a[0])})})},e.fn.extend({addClass:function(t){return function(n,i,r,o){return i?e.effects.animateClass.call(this,{add:n},i,r,o):t.apply(this,arguments)}}(e.fn.addClass),removeClass:function(t){return function(n,i,r,o){return arguments.length>1?e.effects.animateClass.call(this,{remove:n},i,r,o):t.apply(this,arguments)}}(e.fn.removeClass),toggleClass:function(t){return function(n,i,r,o,a){return"boolean"==typeof i||void 0===i?r?e.effects.animateClass.call(this,i?{add:n}:{remove:n},r,o,a):t.apply(this,arguments):e.effects.animateClass.call(this,{toggle:n},i,r,o)}}(e.fn.toggleClass),switchClass:function(t,n,i,r,o){return e.effects.animateClass.call(this,{add:n,remove:t},i,r,o)}})}(),function(){function t(t,n,i,r){return e.isPlainObject(t)&&(n=t,t=t.effect),t={effect:t},null==n&&(n={}),e.isFunction(n)&&(r=n,i=null,n={}),("number"==typeof n||e.fx.speeds[n])&&(r=i,i=n,n={}),e.isFunction(i)&&(r=i,i=null),n&&e.extend(t,n),i=i||n.duration,t.duration=e.fx.off?0:"number"==typeof i?i:i in e.fx.speeds?e.fx.speeds[i]:e.fx.speeds._default,t.complete=r||n.complete,t}function n(t){return!(t&&"number"!=typeof t&&!e.fx.speeds[t])||("string"==typeof t&&!e.effects.effect[t]||(!!e.isFunction(t)||"object"==typeof t&&!t.effect))}function i(e,t){var n=t.outerWidth(),i=t.outerHeight(),r=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/.exec(e)||["",0,n,i,0];return{top:parseFloat(r[1])||0,right:"auto"===r[2]?n:parseFloat(r[2]),bottom:"auto"===r[3]?i:parseFloat(r[3]),left:parseFloat(r[4])||0}}e.expr&&e.expr.filters&&e.expr.filters.animated&&(e.expr.filters.animated=function(t){return function(n){return!!e(n).data(u)||t(n)}}(e.expr.filters.animated)),!1!==e.uiBackCompat&&e.extend(e.effects,{save:function(e,t){for(var n=0,i=t.length;n<i;n++)null!==t[n]&&e.data("ui-effects-"+t[n],e[0].style[t[n]])},restore:function(e,t){for(var n,i=0,r=t.length;i<r;i++)null!==t[i]&&(n=e.data("ui-effects-"+t[i]),e.css(t[i],n))},setMode:function(e,t){return"toggle"===t&&(t=e.is(":hidden")?"show":"hide"),t},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var n={width:t.outerWidth(!0),height:t.outerHeight(!0),float:t.css("float")},i=e("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),r={width:t.width(),height:t.height()},o=document.activeElement;try{o.id}catch(e){o=document.body}return t.wrap(i),(t[0]===o||e.contains(t[0],o))&&e(o).trigger("focus"),i=t.parent(),"static"===t.css("position")?(i.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,i){n[i]=t.css(i),isNaN(parseInt(n[i],10))&&(n[i]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(r),i.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).trigger("focus")),t}}),e.extend(e.effects,{version:"1.12.1",define:function(t,n,i){return i||(i=n,n="effect"),e.effects.effect[t]=i,e.effects.effect[t].mode=n,i},scaledDimensions:function(e,t,n){if(0===t)return{height:0,width:0,outerHeight:0,outerWidth:0};var i="horizontal"!==n?(t||100)/100:1,r="vertical"!==n?(t||100)/100:1;return{height:e.height()*r,width:e.width()*i,outerHeight:e.outerHeight()*r,outerWidth:e.outerWidth()*i}},clipToBox:function(e){return{width:e.clip.right-e.clip.left,height:e.clip.bottom-e.clip.top,left:e.clip.left,top:e.clip.top}},unshift:function(e,t,n){var i=e.queue();t>1&&i.splice.apply(i,[1,0].concat(i.splice(t,n))),e.dequeue()},saveStyle:function(e){e.data("ui-effects-style",e[0].style.cssText)},restoreStyle:function(e){e[0].style.cssText=e.data("ui-effects-style")||"",e.removeData("ui-effects-style")},mode:function(e,t){var n=e.is(":hidden");return"toggle"===t&&(t=n?"show":"hide"),(n?"hide"===t:"show"===t)&&(t="none"),t},getBaseline:function(e,t){var n,i;switch(e[0]){case"top":n=0;break;case"middle":n=.5;break;case"bottom":n=1;break;default:n=e[0]/t.height}switch(e[1]){case"left":i=0;break;case"center":i=.5;break;case"right":i=1;break;default:i=e[1]/t.width}return{x:i,y:n}},createPlaceholder:function(t){var n,i=t.css("position"),r=t.position();return t.css({marginTop:t.css("marginTop"),marginBottom:t.css("marginBottom"),marginLeft:t.css("marginLeft"),marginRight:t.css("marginRight")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()),/^(static|relative)/.test(i)&&(i="absolute",n=e("<"+t[0].nodeName+">").insertAfter(t).css({display:/^(inline|ruby)/.test(t.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:t.css("marginTop"),marginBottom:t.css("marginBottom"),marginLeft:t.css("marginLeft"),marginRight:t.css("marginRight"),float:t.css("float")}).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).addClass("ui-effects-placeholder"),t.data("ui-effects-placeholder",n)),t.css({position:i,left:r.left,top:r.top}),n},removePlaceholder:function(e){var t="ui-effects-placeholder",n=e.data(t);n&&(n.remove(),e.removeData(t))},cleanUp:function(t){e.effects.restoreStyle(t),e.effects.removePlaceholder(t)},setTransition:function(t,n,i,r){return r=r||{},e.each(n,function(e,n){var o=t.cssUnit(n);o[0]>0&&(r[n]=o[0]*i+o[1])}),r}}),e.fn.extend({effect:function(){function n(t){function n(){s.removeData(u),e.effects.cleanUp(s),"hide"===i.mode&&s.hide(),a()}function a(){e.isFunction(l)&&l.call(s[0]),e.isFunction(t)&&t()}var s=e(this);i.mode=d.shift(),!1===e.uiBackCompat||o?"none"===i.mode?(s[c](),a()):r.call(s[0],i,n):(s.is(":hidden")?"hide"===c:"show"===c)?(s[c](),a()):r.call(s[0],i,a)}var i=t.apply(this,arguments),r=e.effects.effect[i.effect],o=r.mode,a=i.queue,s=a||"fx",l=i.complete,c=i.mode,d=[],h=function(t){var n=e(this),i=e.effects.mode(n,c)||o;n.data(u,!0),d.push(i),o&&("show"===i||i===o&&"hide"===i)&&n.show(),o&&"none"===i||e.effects.saveStyle(n),e.isFunction(t)&&t()};return e.fx.off||!r?c?this[c](i.duration,l):this.each(function(){l&&l.call(this)}):!1===a?this.each(h).each(n):this.queue(s,h).queue(s,n)},show:function(e){return function(i){if(n(i))return e.apply(this,arguments);var r=t.apply(this,arguments);return r.mode="show",this.effect.call(this,r)}}(e.fn.show),hide:function(e){return function(i){if(n(i))return e.apply(this,arguments);var r=t.apply(this,arguments);return r.mode="hide",this.effect.call(this,r)}}(e.fn.hide),toggle:function(e){return function(i){if(n(i)||"boolean"==typeof i)return e.apply(this,arguments);var r=t.apply(this,arguments);return r.mode="toggle",this.effect.call(this,r)}}(e.fn.toggle),cssUnit:function(t){var n=this.css(t),i=[];return e.each(["em","px","%","pt"],function(e,t){n.indexOf(t)>0&&(i=[parseFloat(n),t])}),i},cssClip:function(e){return e?this.css("clip","rect("+e.top+"px "+e.right+"px "+e.bottom+"px "+e.left+"px)"):i(this.css("clip"),this)},transfer:function(t,n){var i=e(this),r=e(t.to),o="fixed"===r.css("position"),a=e("body"),s=o?a.scrollTop():0,l=o?a.scrollLeft():0,c=r.offset(),u={top:c.top-s,left:c.left-l,height:r.innerHeight(),width:r.innerWidth()},d=i.offset(),h=e("<div class='ui-effects-transfer'></div>").appendTo("body").addClass(t.className).css({top:d.top-s,left:d.left-l,height:i.innerHeight(),width:i.innerWidth(),position:o?"fixed":"absolute"}).animate(u,t.duration,t.easing,function(){h.remove(),e.isFunction(n)&&n()})}}),e.fx.step.clip=function(t){t.clipInit||(t.start=e(t.elem).cssClip(),"string"==typeof t.end&&(t.end=i(t.end,t.elem)),t.clipInit=!0),e(t.elem).cssClip({top:t.pos*(t.end.top-t.start.top)+t.start.top,right:t.pos*(t.end.right-t.start.right)+t.start.right,bottom:t.pos*(t.end.bottom-t.start.bottom)+t.start.bottom,left:t.pos*(t.end.left-t.start.left)+t.start.left})}}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,n){t[n]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return 0===e||1===e?e:-Math.pow(2,8*(e-1))*Math.sin((80*(e-1)-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){for(var t,n=4;e<((t=Math.pow(2,--n))-1)/11;);return 1/Math.pow(4,3-n)-7.5625*Math.pow((3*t-2)/22-e,2)}}),e.each(t,function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(2*e)/2:1-n(-2*e+2)/2}})}();e.effects,e.effects.define("blind","hide",function(t,n){var i={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},r=e(this),o=t.direction||"up",a=r.cssClip(),s={clip:e.extend({},a)},l=e.effects.createPlaceholder(r);s.clip[i[o][0]]=s.clip[i[o][1]],"show"===t.mode&&(r.cssClip(s.clip),l&&l.css(e.effects.clipToBox(s)),s.clip=a),l&&l.animate(e.effects.clipToBox(s),t.duration,t.easing),r.animate(s,{queue:!1,duration:t.duration,easing:t.easing,complete:n})}),e.effects.define("bounce",function(t,n){var i,r,o,a=e(this),s=t.mode,l="hide"===s,c="show"===s,u=t.direction||"up",d=t.distance,h=t.times||5,p=2*h+(c||l?1:0),f=t.duration/p,m=t.easing,g="up"===u||"down"===u?"top":"left",v="up"===u||"left"===u,b=0,y=a.queue().length;for(e.effects.createPlaceholder(a),o=a.css(g),d||(d=a["top"===g?"outerHeight":"outerWidth"]()/3),c&&((r={opacity:1})[g]=o,a.css("opacity",0).css(g,v?2*-d:2*d).animate(r,f,m)),l&&(d/=Math.pow(2,h-1)),(r={})[g]=o;b<h;b++)(i={})[g]=(v?"-=":"+=")+d,a.animate(i,f,m).animate(r,f,m),d=l?2*d:d/2;l&&((i={opacity:0})[g]=(v?"-=":"+=")+d,a.animate(i,f,m)),a.queue(n),e.effects.unshift(a,y,p+1)}),e.effects.define("clip","hide",function(t,n){var i,r={},o=e(this),a=t.direction||"vertical",s="both"===a,l=s||"horizontal"===a,c=s||"vertical"===a;i=o.cssClip(),r.clip={top:c?(i.bottom-i.top)/2:i.top,right:l?(i.right-i.left)/2:i.right,bottom:c?(i.bottom-i.top)/2:i.bottom,left:l?(i.right-i.left)/2:i.left},e.effects.createPlaceholder(o),"show"===t.mode&&(o.cssClip(r.clip),r.clip=i),o.animate(r,{queue:!1,duration:t.duration,easing:t.easing,complete:n})}),e.effects.define("drop","hide",function(t,n){var i,r=e(this),o="show"===t.mode,a=t.direction||"left",s="up"===a||"down"===a?"top":"left",l="up"===a||"left"===a?"-=":"+=",c="+="===l?"-=":"+=",u={opacity:0};e.effects.createPlaceholder(r),i=t.distance||r["top"===s?"outerHeight":"outerWidth"](!0)/2,u[s]=l+i,o&&(r.css(u),u[s]=c+i,u.opacity=1),r.animate(u,{queue:!1,duration:t.duration,easing:t.easing,complete:n})}),e.effects.define("explode","hide",function(t,n){function i(){b.push(this),b.length===d*h&&r()}function r(){p.css({visibility:"visible"}),e(b).remove(),n()}var o,a,s,l,c,u,d=t.pieces?Math.round(Math.sqrt(t.pieces)):3,h=d,p=e(this),f="show"===t.mode,m=p.show().css("visibility","hidden").offset(),g=Math.ceil(p.outerWidth()/h),v=Math.ceil(p.outerHeight()/d),b=[];for(o=0;o<d;o++)for(l=m.top+o*v,u=o-(d-1)/2,a=0;a<h;a++)s=m.left+a*g,c=a-(h-1)/2,p.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-a*g,top:-o*v}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g,height:v,left:s+(f?c*g:0),top:l+(f?u*v:0),opacity:f?0:1}).animate({left:s+(f?0:c*g),top:l+(f?0:u*v),opacity:f?1:0},t.duration||500,t.easing,i)}),e.effects.define("fade","toggle",function(t,n){var i="show"===t.mode;e(this).css("opacity",i?0:1).animate({opacity:i?1:0},{queue:!1,duration:t.duration,easing:t.easing,complete:n})}),e.effects.define("fold","hide",function(t,n){var i=e(this),r=t.mode,o="show"===r,a="hide"===r,s=t.size||15,l=/([0-9]+)%/.exec(s),c=!!t.horizFirst?["right","bottom"]:["bottom","right"],u=t.duration/2,d=e.effects.createPlaceholder(i),h=i.cssClip(),p={clip:e.extend({},h)},f={clip:e.extend({},h)},m=[h[c[0]],h[c[1]]],g=i.queue().length;l&&(s=parseInt(l[1],10)/100*m[a?0:1]),p.clip[c[0]]=s,f.clip[c[0]]=s,f.clip[c[1]]=0,o&&(i.cssClip(f.clip),d&&d.css(e.effects.clipToBox(f)),f.clip=h),i.queue(function(n){d&&d.animate(e.effects.clipToBox(p),u,t.easing).animate(e.effects.clipToBox(f),u,t.easing),n()}).animate(p,u,t.easing).animate(f,u,t.easing).queue(n),e.effects.unshift(i,g,4)}),e.effects.define("highlight","show",function(t,n){var i=e(this),r={backgroundColor:i.css("backgroundColor")};"hide"===t.mode&&(r.opacity=0),e.effects.saveStyle(i),i.css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(r,{queue:!1,duration:t.duration,easing:t.easing,complete:n})}),e.effects.define("size",function(t,n){var i,r,o,a=e(this),s=["fontSize"],l=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],c=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],u=t.mode,d="effect"!==u,h=t.scale||"both",p=t.origin||["middle","center"],f=a.css("position"),m=a.position(),g=e.effects.scaledDimensions(a),v=t.from||g,b=t.to||e.effects.scaledDimensions(a,0);e.effects.createPlaceholder(a),"show"===u&&(o=v,v=b,b=o),r={from:{y:v.height/g.height,x:v.width/g.width},to:{y:b.height/g.height,x:b.width/g.width}},"box"!==h&&"both"!==h||(r.from.y!==r.to.y&&(v=e.effects.setTransition(a,l,r.from.y,v),b=e.effects.setTransition(a,l,r.to.y,b)),r.from.x!==r.to.x&&(v=e.effects.setTransition(a,c,r.from.x,v),b=e.effects.setTransition(a,c,r.to.x,b))),"content"!==h&&"both"!==h||r.from.y!==r.to.y&&(v=e.effects.setTransition(a,s,r.from.y,v),b=e.effects.setTransition(a,s,r.to.y,b)),p&&(i=e.effects.getBaseline(p,g),v.top=(g.outerHeight-v.outerHeight)*i.y+m.top,v.left=(g.outerWidth-v.outerWidth)*i.x+m.left,b.top=(g.outerHeight-b.outerHeight)*i.y+m.top,b.left=(g.outerWidth-b.outerWidth)*i.x+m.left),a.css(v),"content"!==h&&"both"!==h||(l=l.concat(["marginTop","marginBottom"]).concat(s),c=c.concat(["marginLeft","marginRight"]),a.find("*[width]").each(function(){var n=e(this),i=e.effects.scaledDimensions(n),o={height:i.height*r.from.y,width:i.width*r.from.x,outerHeight:i.outerHeight*r.from.y,outerWidth:i.outerWidth*r.from.x},a={height:i.height*r.to.y,width:i.width*r.to.x,outerHeight:i.height*r.to.y,outerWidth:i.width*r.to.x};r.from.y!==r.to.y&&(o=e.effects.setTransition(n,l,r.from.y,o),a=e.effects.setTransition(n,l,r.to.y,a)),r.from.x!==r.to.x&&(o=e.effects.setTransition(n,c,r.from.x,o),a=e.effects.setTransition(n,c,r.to.x,a)),d&&e.effects.saveStyle(n),n.css(o),n.animate(a,t.duration,t.easing,function(){d&&e.effects.restoreStyle(n)})})),a.animate(b,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){var t=a.offset();0===b.opacity&&a.css("opacity",v.opacity),d||(a.css("position","static"===f?"relative":f).offset(t),e.effects.saveStyle(a)),n()}})}),e.effects.define("scale",function(t,n){var i=e(this),r=t.mode,o=parseInt(t.percent,10)||(0===parseInt(t.percent,10)?0:"effect"!==r?0:100),a=e.extend(!0,{from:e.effects.scaledDimensions(i),to:e.effects.scaledDimensions(i,o,t.direction||"both"),origin:t.origin||["middle","center"]},t);t.fade&&(a.from.opacity=1,a.to.opacity=0),e.effects.effect.size.call(this,a,n)}),e.effects.define("puff","hide",function(t,n){var i=e.extend(!0,{},t,{fade:!0,percent:parseInt(t.percent,10)||150});e.effects.effect.scale.call(this,i,n)}),e.effects.define("pulsate","show",function(t,n){var i=e(this),r=t.mode,o="show"===r,a="hide"===r,s=o||a,l=2*(t.times||5)+(s?1:0),c=t.duration/l,u=0,d=1,h=i.queue().length;for(!o&&i.is(":visible")||(i.css("opacity",0).show(),u=1);d<l;d++)i.animate({opacity:u},c,t.easing),u=1-u;i.animate({opacity:u},c,t.easing),i.queue(n),e.effects.unshift(i,h,l+1)}),e.effects.define("shake",function(t,n){var i=1,r=e(this),o=t.direction||"left",a=t.distance||20,s=t.times||3,l=2*s+1,c=Math.round(t.duration/l),u="up"===o||"down"===o?"top":"left",d="up"===o||"left"===o,h={},p={},f={},m=r.queue().length;for(e.effects.createPlaceholder(r),h[u]=(d?"-=":"+=")+a,p[u]=(d?"+=":"-=")+2*a,f[u]=(d?"-=":"+=")+2*a,r.animate(h,c,t.easing);i<s;i++)r.animate(p,c,t.easing).animate(f,c,t.easing);r.animate(p,c,t.easing).animate(h,c/2,t.easing).queue(n),e.effects.unshift(r,m,l+1)}),e.effects.define("slide","show",function(t,n){var i,r,o=e(this),a={up:["bottom","top"],down:["top","bottom"],left:["right","left"],right:["left","right"]},s=t.mode,l=t.direction||"left",c="up"===l||"down"===l?"top":"left",u="up"===l||"left"===l,d=t.distance||o["top"===c?"outerHeight":"outerWidth"](!0),h={};e.effects.createPlaceholder(o),i=o.cssClip(),r=o.position()[c],h[c]=(u?-1:1)*d+r,h.clip=o.cssClip(),h.clip[a[l][1]]=h.clip[a[l][0]],"show"===s&&(o.cssClip(h.clip),o.css(c,h[c]),h.clip=i,h[c]=r),o.animate(h,{queue:!1,duration:t.duration,easing:t.easing,complete:n})});!1!==e.uiBackCompat&&e.effects.define("transfer",function(t,n){e(this).transfer(t,n)});e.ui.focusable=function(n,i){var r,o,a,s,l,c=n.nodeName.toLowerCase();return"area"===c?(r=n.parentNode,o=r.name,!(!n.href||!o||"map"!==r.nodeName.toLowerCase())&&((a=e("img[usemap='#"+o+"']")).length>0&&a.is(":visible"))):(/^(input|select|textarea|button|object)$/.test(c)?(s=!n.disabled)&&(l=e(n).closest("fieldset")[0])&&(s=!l.disabled):s="a"===c?n.href||i:i,s&&e(n).is(":visible")&&t(e(n)))},e.extend(e.expr[":"],{focusable:function(t){return e.ui.focusable(t,null!=e.attr(t,"tabindex"))}});e.ui.focusable,e.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):e(this[0].form)},e.ui.formResetMixin={_formResetHandler:function(){var t=e(this);setTimeout(function(){var n=t.data("ui-form-reset-instances");e.each(n,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var e=this.form.data("ui-form-reset-instances")||[];e.length||this.form.on("reset.ui-form-reset",this._formResetHandler),e.push(this),this.form.data("ui-form-reset-instances",e)}},_unbindFormResetHandler:function(){if(this.form.length){var t=this.form.data("ui-form-reset-instances");t.splice(e.inArray(this,t),1),t.length?this.form.data("ui-form-reset-instances",t):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}};"1.7"===e.fn.jquery.substring(0,3)&&(e.each(["Width","Height"],function(t,n){function i(t,n,i,o){return e.each(r,function(){n-=parseFloat(e.css(t,"padding"+this))||0,i&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),o&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var r="Width"===n?["Left","Right"]:["Top","Bottom"],o=n.toLowerCase(),a={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+n]=function(t){return void 0===t?a["inner"+n].call(this):this.each(function(){e(this).css(o,i(this,t)+"px")})},e.fn["outer"+n]=function(t,r){return"number"!=typeof t?a["outer"+n].call(this,t):this.each(function(){e(this).css(o,i(this,t,!0,r)+"px")})}}),e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))});e.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},e.ui.escapeSelector=function(){var e=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(t){return t.replace(e,"\\$1")}}(),e.fn.labels=function(){var t,n,i,r,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(r=this.eq(0).parents("label"),(i=this.attr("id"))&&(o=(t=this.eq(0).parents().last()).add(t.length?t.siblings():this.siblings()),n="label[for='"+e.ui.escapeSelector(i)+"']",r=r.add(o.find(n).addBack(n))),this.pushStack(r))},e.fn.scrollParent=function(t){var n=this.css("position"),i="absolute"===n,r=t?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var t=e(this);return(!i||"static"!==t.css("position"))&&r.test(t.css("overflow")+t.css("overflow-y")+t.css("overflow-x"))}).eq(0);return"fixed"!==n&&o.length?o:e(this[0].ownerDocument||document)},e.extend(e.expr[":"],{tabbable:function(t){var n=e.attr(t,"tabindex"),i=null!=n;return(!i||n>=0)&&e.ui.focusable(t,i)}}),e.fn.extend({uniqueId:function(){var e=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++e)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&e(this).removeAttr("id")})}}),e.widget("ui.accordion",{version:"1.12.1",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:"> li > :first-child, > :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),t.collapsible||!1!==t.active&&null!=t.active||(t.active=0),this._processPanels(),t.active<0&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e()}},_createIcons:function(){var t,n,i=this.options.icons;i&&(t=e("<span>"),this._addClass(t,"ui-accordion-header-icon","ui-icon "+i.header),t.prependTo(this.headers),n=this.active.children(".ui-accordion-header-icon"),this._removeClass(n,i.header)._addClass(n,null,i.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){"active"!==e?("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||!1!==this.options.active||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons())):this._activate(t)},_setOptionDisabled:function(e){this._super(e),this.element.attr("aria-disabled",e),this._toggleClass(null,"ui-state-disabled",!!e),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!e)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var n=e.ui.keyCode,i=this.headers.length,r=this.headers.index(t.target),o=!1;switch(t.keyCode){case n.RIGHT:case n.DOWN:o=this.headers[(r+1)%i];break;case n.LEFT:case n.UP:o=this.headers[(r-1+i)%i];break;case n.SPACE:case n.ENTER:this._eventHandler(t);break;case n.HOME:o=this.headers[0];break;case n.END:o=this.headers[i-1]}o&&(e(t.target).attr("tabIndex",-1),e(o).attr("tabIndex",0),e(o).trigger("focus"),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().trigger("focus")},refresh:function(){var t=this.options;this._processPanels(),!1===t.active&&!0===t.collapsible||!this.headers.length?(t.active=!1,this.active=e()):!1===t.active?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var e=this.headers,t=this.panels;this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),t&&(this._off(e.not(this.headers)),this._off(t.not(this.panels)))},_refresh:function(){var t,n=this.options,i=n.heightStyle,r=this.element.parent();this.active=this._findActive(n.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var t=e(this),n=t.uniqueId().attr("id"),i=t.next(),r=i.uniqueId().attr("id");t.attr("aria-controls",r),i.attr("aria-labelledby",n)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(n.event),"fill"===i?(t=r.height(),this.element.siblings(":visible").each(function(){var n=e(this),i=n.css("position");"absolute"!==i&&"fixed"!==i&&(t-=n.outerHeight(!0))}),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===i&&(t=0,this.headers.next().each(function(){var n=e(this).is(":visible");n||e(this).show(),t=Math.max(t,e(this).css("height","").height()),n||e(this).hide()}).height(t))},_activate:function(t){var n=this._findActive(t)[0];n!==this.active[0]&&(n=n||this.active[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var n={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,n),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var n,i,r=this.options,o=this.active,a=e(t.currentTarget),s=a[0]===o[0],l=s&&r.collapsible,c=l?e():a.next(),u={oldHeader:o,oldPanel:o.next(),newHeader:l?e():a,newPanel:c};t.preventDefault(),s&&!r.collapsible||!1===this._trigger("beforeActivate",t,u)||(r.active=!l&&this.headers.index(a),this.active=s?e():a,this._toggle(u),this._removeClass(o,"ui-accordion-header-active","ui-state-active"),r.icons&&(n=o.children(".ui-accordion-header-icon"),this._removeClass(n,null,r.icons.activeHeader)._addClass(n,null,r.icons.header)),s||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),r.icons&&(i=a.children(".ui-accordion-header-icon"),this._removeClass(i,null,r.icons.header)._addClass(i,null,r.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active")))},_toggle:function(t){var n=t.newPanel,i=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=n,this.prevHide=i,this.options.animate?this._animate(n,i,t):(i.hide(),n.show(),this._toggleComplete(t)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),n.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):n.length&&this.headers.filter(function(){return 0===parseInt(e(this).attr("tabIndex"),10)}).attr("tabIndex",-1),n.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(e,t,n){var i,r,o,a=this,s=0,l=e.css("box-sizing"),c=e.length&&(!t.length||e.index()<t.index()),u=this.options.animate||{},d=c&&u.down||u,h=function(){a._toggleComplete(n)};return"number"==typeof d&&(o=d),"string"==typeof d&&(r=d),r=r||d.easing||u.easing,o=o||d.duration||u.duration,t.length?e.length?(i=e.show().outerHeight(),t.animate(this.hideProps,{duration:o,easing:r,step:function(e,t){t.now=Math.round(e)}}),void e.hide().animate(this.showProps,{duration:o,easing:r,complete:h,step:function(e,n){n.now=Math.round(e),"height"!==n.prop?"content-box"===l&&(s+=n.now):"content"!==a.options.heightStyle&&(n.now=Math.round(i-t.outerHeight()-s),s=0)}})):t.animate(this.hideProps,o,r,h):e.animate(this.showProps,o,r,h)},_toggleComplete:function(e){var t=e.oldPanel,n=t.prev();this._removeClass(t,"ui-accordion-content-active"),this._removeClass(n,"ui-accordion-header-active")._addClass(n,"ui-accordion-header-collapsed"),t.length&&(t.parent()[0].className=t.parent()[0].className),this._trigger("activate",null,e)}}),e.ui.safeActiveElement=function(e){var t;try{t=e.activeElement}catch(n){t=e.body}return t||(t=e.body),t.nodeName||(t=e.body),t},e.widget("ui.menu",{version:"1.12.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(e){e.preventDefault()},"click .ui-menu-item":function(t){var n=e(t.target),i=e(e.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&n.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),n.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){if(!this.previousFilter){var n=e(t.target).closest(".ui-menu-item"),i=e(t.currentTarget);n[0]===i[0]&&(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var n=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,n)},blur:function(t){this._delay(function(){!e.contains(this.element[0],e.ui.safeActiveElement(this.document[0]))&&this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),t.children().each(function(){var t=e(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var n,i,r,o,a=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:a=!1,i=this.previousFilter||"",o=!1,r=t.keyCode>=96&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),r===i?o=!0:r=i+r,n=this._filterMenuItems(r),(n=o&&-1!==n.index(this.active.next())?this.active.nextAll(".ui-menu-item"):n).length||(r=String.fromCharCode(t.keyCode),n=this._filterMenuItems(r)),n.length?(this.focus(t,n),this.previousFilter=r,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&t.preventDefault()},_activate:function(e){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,n,i,r,o=this,a=this.options.icons.submenu,s=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),n=s.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),n=t.prev(),i=e("<span>").data("ui-menu-submenu-caret",!0);o._addClass(i,"ui-menu-icon","ui-icon "+a),n.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",n.attr("id"))}),this._addClass(n,"ui-menu","ui-widget ui-widget-content ui-front"),(t=s.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=e(this);o._isDivider(t)&&o._addClass(t,"ui-menu-divider","ui-widget-content")}),r=(i=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(i,"ui-menu-item")._addClass(r,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){if("icons"===e){var n=this.element.find(".ui-menu-icon");this._removeClass(n,null,this.options.icons.submenu)._addClass(n,null,t.submenu)}this._super(e,t)},_setOptionDisabled:function(e){this._super(e),this.element.attr("aria-disabled",String(e)),this._toggleClass(null,"ui-state-disabled",!!e)},focus:function(e,t){var n,i,r;this.blur(e,e&&"focus"===e.type),this._scrollIntoView(t),this.active=t.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),r=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(r,null,"ui-state-active"),e&&"keydown"===e.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(n=t.children(".ui-menu")).length&&e&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var n,i,r,o,a,s;this._hasScroll()&&(n=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,i=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,r=t.offset().top-this.activeMenu.offset().top-n-i,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),s=t.outerHeight(),r<0?this.activeMenu.scrollTop(o+r):r+s>a&&this.activeMenu.scrollTop(o+r-a+s))},blur:function(e,t){t||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",e,{item:this.active}),this.active=null)},_startOpening:function(e){clearTimeout(this.timer),"true"===e.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(e)},this.delay))},_open:function(t){var n=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(t,n){clearTimeout(this.timer),this.timer=this._delay(function(){var i=n?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));i.length||(i=this.element),this._close(i),this.blur(t),this._removeClass(i.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=i},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(t){return!e(t.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,n){var i;this.active&&(i="first"===e||"last"===e?this.active["first"===e?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[e+"All"](".ui-menu-item").eq(0)),i&&i.length&&this.active||(i=this.activeMenu.find(this.options.items)[t]()),this.focus(n,i)},nextPage:function(t){var n,i,r;this.active?this.isLastItem()||(this._hasScroll()?(i=this.active.offset().top,r=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return(n=e(this)).offset().top-i-r<0}),this.focus(t,n)):this.focus(t,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())):this.next(t)},previousPage:function(t){var n,i,r;this.active?this.isFirstItem()||(this._hasScroll()?(i=this.active.offset().top,r=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return(n=e(this)).offset().top-i+r>0}),this.focus(t,n)):this.focus(t,this.activeMenu.find(this.options.items).first())):this.next(t)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var n={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,n)},_filterMenuItems:function(t){var n=t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),i=new RegExp("^"+n,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return i.test(e.trim(e(this).children(".ui-menu-item-wrapper").text()))})}});e.widget("ui.autocomplete",{version:"1.12.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,n,i,r=this.element[0].nodeName.toLowerCase(),o="textarea"===r,a="input"===r;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(r){if(this.element.prop("readOnly"))return t=!0,i=!0,void(n=!0);t=!1,i=!1,n=!1;var o=e.ui.keyCode;switch(r.keyCode){case o.PAGE_UP:t=!0,this._move("previousPage",r);break;case o.PAGE_DOWN:t=!0,this._move("nextPage",r);break;case o.UP:t=!0,this._keyEvent("previous",r);break;case o.DOWN:t=!0,this._keyEvent("next",r);break;case o.ENTER:this.menu.active&&(t=!0,r.preventDefault(),this.menu.select(r));break;case o.TAB:this.menu.active&&this.menu.select(r);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(r),r.preventDefault());break;default:n=!0,this._searchTimeout(r)}},keypress:function(i){if(t)return t=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||i.preventDefault());if(!n){var r=e.ui.keyCode;switch(i.keyCode){case r.PAGE_UP:this._move("previousPage",i);break;case r.PAGE_DOWN:this._move("nextPage",i);break;case r.UP:this._keyEvent("previous",i);break;case r.DOWN:this._keyEvent("next",i)}}},input:function(e){if(i)return i=!1,void e.preventDefault();this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){this.cancelBlur?delete this.cancelBlur:(clearTimeout(this.searching),this.close(e),this._change(e))}}),this._initSource(),this.menu=e("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==e.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(t,n){var i,r;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)});r=n.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:r})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(r.value),(i=n.item.attr("aria-label")||r.value)&&e.trim(i).length&&(this.liveRegion.children().hide(),e("<div>").text(i).appendTo(this.liveRegion))},menuselect:function(t,n){var i=n.item.data("ui-autocomplete-item"),r=this.previous;this.element[0]!==e.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=r,this._delay(function(){this.previous=r,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=e("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(t){var n=this.menu.element[0];return t.target===this.element[0]||t.target===n||e.contains(n,t.target)},_closeOnClickOutside:function(e){this._isEventTargetInWidget(e)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front, dialog")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,n,i=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(n,i){i(e.ui.autocomplete.filter(t,n.term))}):"string"==typeof this.options.source?(n=this.options.source,this.source=function(t,r){i.xhr&&i.xhr.abort(),i.xhr=e.ajax({url:n,data:t,dataType:"json",success:function(e){r(e)},error:function(){r([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),n=this.menu.element.is(":visible"),i=e.altKey||e.ctrlKey||e.metaKey||e.shiftKey;t&&(!t||n||i)||(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length<this.options.minLength?this.close(t):!1!==this._trigger("search",t)?this._search(e):void 0},_search:function(e){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var t=++this.requestIndex;return e.proxy(function(e){t===this.requestIndex&&this.__response(e),--this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return"string"==typeof t?{label:t,value:t}:e.extend({},t,{label:t.label||t.value,value:t.value||t.label})})},_suggest:function(t){var n=this.menu.element.empty();this._renderMenu(n,t),this.isNewMenu=!0,this.menu.refresh(),n.show(),this._resizeMenu(),n.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,n){var i=this;e.each(n,function(e,n){i._renderItemData(t,n)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,n){return e("<li>").append(e("<div>").text(n.label)).appendTo(t)},_move:function(e,t){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[e](t);this.search(null,t)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){this.isMultiLine&&!this.menu.element.is(":visible")||(this._move(e,t),t.preventDefault())},_isContentEditable:function(e){if(!e.length)return!1;var t=e.prop("contentEditable");return"inherit"===t?this._isContentEditable(e.parent()):"true"===t}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,n){var i=new RegExp(e.ui.autocomplete.escapeRegex(n),"i");return e.grep(t,function(e){return i.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(t){var n;this._superApply(arguments),this.options.disabled||this.cancelSearch||(n=t&&t.length?this.options.messages.results(t.length):this.options.messages.noResults,this.liveRegion.children().hide(),e("<div>").text(n).appendTo(this.liveRegion))}});e.ui.autocomplete;var h=/ui-corner-([a-z]){2,6}/g;e.widget("ui.controlgroup",{version:"1.12.1",defaultElement:"<div>",options:{direction:"horizontal",disabled:null,onlyVisible:!0,items:{button:"input[type=button], input[type=submit], input[type=reset], button, a",controlgroupLabel:".ui-controlgroup-label",checkboxradio:"input[type='checkbox'], input[type='radio']",selectmenu:"select",spinner:".ui-spinner-input"}},_create:function(){this._enhance()},_enhance:function(){this.element.attr("role","toolbar"),this.refresh()},_destroy:function(){this._callChildMethod("destroy"),this.childWidgets.removeData("ui-controlgroup-data"),this.element.removeAttr("role"),this.options.items.controlgroupLabel&&this.element.find(this.options.items.controlgroupLabel).find(".ui-controlgroup-label-contents").contents().unwrap()},_initWidgets:function(){var t=this,n=[];e.each(this.options.items,function(i,r){var o,a={};if(r)return"controlgroupLabel"===i?((o=t.element.find(r)).each(function(){var t=e(this);t.children(".ui-controlgroup-label-contents").length||t.contents().wrapAll("<span class='ui-controlgroup-label-contents'></span>")}),t._addClass(o,null,"ui-widget ui-widget-content ui-state-default"),void(n=n.concat(o.get()))):void(e.fn[i]&&(a=t["_"+i+"Options"]?t["_"+i+"Options"]("middle"):{classes:{}},t.element.find(r).each(function(){var r=e(this),o=r[i]("instance"),s=e.widget.extend({},a);if("button"!==i||!r.parent(".ui-spinner").length){o||(o=r[i]()[i]("instance")),o&&(s.classes=t._resolveClassesValues(s.classes,o)),r[i](s);var l=r[i]("widget");e.data(l[0],"ui-controlgroup-data",o||r[i]("instance")),n.push(l[0])}})))}),this.childWidgets=e(e.unique(n)),this._addClass(this.childWidgets,"ui-controlgroup-item")},_callChildMethod:function(t){this.childWidgets.each(function(){var n=e(this).data("ui-controlgroup-data");n&&n[t]&&n[t]()})},_updateCornerClass:function(e,t){var n=this._buildSimpleOptions(t,"label").classes.label;this._removeClass(e,null,"ui-corner-top ui-corner-bottom ui-corner-left ui-corner-right ui-corner-all"),this._addClass(e,null,n)},_buildSimpleOptions:function(e,t){var n="vertical"===this.options.direction,i={classes:{}};return i.classes[t]={middle:"",first:"ui-corner-"+(n?"top":"left"),last:"ui-corner-"+(n?"bottom":"right"),only:"ui-corner-all"}[e],i},_spinnerOptions:function(e){var t=this._buildSimpleOptions(e,"ui-spinner");return t.classes["ui-spinner-up"]="",t.classes["ui-spinner-down"]="",t},_buttonOptions:function(e){return this._buildSimpleOptions(e,"ui-button")},_checkboxradioOptions:function(e){return this._buildSimpleOptions(e,"ui-checkboxradio-label")},_selectmenuOptions:function(e){var t="vertical"===this.options.direction;return{width:!!t&&"auto",classes:{middle:{"ui-selectmenu-button-open":"","ui-selectmenu-button-closed":""},first:{"ui-selectmenu-button-open":"ui-corner-"+(t?"top":"tl"),"ui-selectmenu-button-closed":"ui-corner-"+(t?"top":"left")},last:{"ui-selectmenu-button-open":t?"":"ui-corner-tr","ui-selectmenu-button-closed":"ui-corner-"+(t?"bottom":"right")},only:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"}}[e]}},_resolveClassesValues:function(t,n){var i={};return e.each(t,function(r){var o=n.options.classes[r]||"";o=e.trim(o.replace(h,"")),i[r]=(o+" "+t[r]).replace(/\s+/g," ")}),i},_setOption:function(e,t){"direction"===e&&this._removeClass("ui-controlgroup-"+this.options.direction),this._super(e,t),"disabled"!==e?this.refresh():this._callChildMethod(t?"disable":"enable")},refresh:function(){var t,n=this;this._addClass("ui-controlgroup ui-controlgroup-"+this.options.direction),"horizontal"===this.options.direction&&this._addClass(null,"ui-helper-clearfix"),this._initWidgets(),t=this.childWidgets,this.options.onlyVisible&&(t=t.filter(":visible")),t.length&&(e.each(["first","last"],function(e,i){var r=t[i]().data("ui-controlgroup-data");if(r&&n["_"+r.widgetName+"Options"]){var o=n["_"+r.widgetName+"Options"](1===t.length?"only":i);o.classes=n._resolveClassesValues(o.classes,r),r.element[r.widgetName](o)}else n._updateCornerClass(t[i](),i)}),this._callChildMethod("refresh"))}});e.widget("ui.checkboxradio",[e.ui.formResetMixin,{version:"1.12.1",options:{disabled:null,label:null,icon:!0,classes:{"ui-checkboxradio-label":"ui-corner-all","ui-checkboxradio-icon":"ui-corner-all"}},_getCreateOptions:function(){var t,n,i=this,r=this._super()||{};return this._readType(),n=this.element.labels(),this.label=e(n[n.length-1]),this.label.length||e.error("No label found for checkboxradio widget"),this.originalLabel="",this.label.contents().not(this.element[0]).each(function(){i.originalLabel+=3===this.nodeType?e(this).text():this.outerHTML}),this.originalLabel&&(r.label=this.originalLabel),null!=(t=this.element[0].disabled)&&(r.disabled=t),r},_create:function(){var e=this.element[0].checked;this._bindFormResetHandler(),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled),this._setOption("disabled",this.options.disabled),this._addClass("ui-checkboxradio","ui-helper-hidden-accessible"),this._addClass(this.label,"ui-checkboxradio-label","ui-button ui-widget"),"radio"===this.type&&this._addClass(this.label,"ui-checkboxradio-radio-label"),this.options.label&&this.options.label!==this.originalLabel?this._updateLabel():this.originalLabel&&(this.options.label=this.originalLabel),this._enhance(),e&&(this._addClass(this.label,"ui-checkboxradio-checked","ui-state-active"),this.icon&&this._addClass(this.icon,null,"ui-state-hover")),this._on({change:"_toggleClasses",focus:function(){this._addClass(this.label,null,"ui-state-focus ui-visual-focus")},blur:function(){this._removeClass(this.label,null,"ui-state-focus ui-visual-focus")}})},_readType:function(){var t=this.element[0].nodeName.toLowerCase();this.type=this.element[0].type,"input"===t&&/radio|checkbox/.test(this.type)||e.error("Can't create checkboxradio on element.nodeName="+t+" and element.type="+this.type)},_enhance:function(){this._updateIcon(this.element[0].checked)},widget:function(){return this.label},_getRadioGroup:function(){var t=this.element[0].name,n="input[name='"+e.ui.escapeSelector(t)+"']";return t?(this.form.length?e(this.form[0].elements).filter(n):e(n).filter(function(){return 0===e(this).form().length})).not(this.element):e([])},_toggleClasses:function(){var t=this.element[0].checked;this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",t),this.options.icon&&"checkbox"===this.type&&this._toggleClass(this.icon,null,"ui-icon-check ui-state-checked",t)._toggleClass(this.icon,null,"ui-icon-blank",!t),"radio"===this.type&&this._getRadioGroup().each(function(){var t=e(this).checkboxradio("instance");t&&t._removeClass(t.label,"ui-checkboxradio-checked","ui-state-active")})},_destroy:function(){this._unbindFormResetHandler(),this.icon&&(this.icon.remove(),this.iconSpace.remove())},_setOption:function(e,t){if("label"!==e||t){if(this._super(e,t),"disabled"===e)return this._toggleClass(this.label,null,"ui-state-disabled",t),void(this.element[0].disabled=t);this.refresh()}},_updateIcon:function(t){var n="ui-icon ui-icon-background ";this.options.icon?(this.icon||(this.icon=e("<span>"),this.iconSpace=e("<span> </span>"),this._addClass(this.iconSpace,"ui-checkboxradio-icon-space")),"checkbox"===this.type?(n+=t?"ui-icon-check ui-state-checked":"ui-icon-blank",this._removeClass(this.icon,null,t?"ui-icon-blank":"ui-icon-check")):n+="ui-icon-blank",this._addClass(this.icon,"ui-checkboxradio-icon",n),t||this._removeClass(this.icon,null,"ui-icon-check ui-state-checked"),this.icon.prependTo(this.label).after(this.iconSpace)):void 0!==this.icon&&(this.icon.remove(),this.iconSpace.remove(),delete this.icon)},_updateLabel:function(){var e=this.label.contents().not(this.element[0]);this.icon&&(e=e.not(this.icon[0])),this.iconSpace&&(e=e.not(this.iconSpace[0])),e.remove(),this.label.append(this.options.label)},refresh:function(){var e=this.element[0].checked,t=this.element[0].disabled;this._updateIcon(e),this._toggleClass(this.label,"ui-checkboxradio-checked","ui-state-active",e),null!==this.options.label&&this._updateLabel(),t!==this.options.disabled&&this._setOptions({disabled:t})}}]);e.ui.checkboxradio;e.widget("ui.button",{version:"1.12.1",defaultElement:"<button>",options:{classes:{"ui-button":"ui-corner-all"},disabled:null,icon:null,iconPosition:"beginning",label:null,showLabel:!0},_getCreateOptions:function(){var e,t=this._super()||{};return this.isInput=this.element.is("input"),null!=(e=this.element[0].disabled)&&(t.disabled=e),this.originalLabel=this.isInput?this.element.val():this.element.html(),this.originalLabel&&(t.label=this.originalLabel),t},_create:function(){!this.option.showLabel&!this.options.icon&&(this.options.showLabel=!0),null==this.options.disabled&&(this.options.disabled=this.element[0].disabled||!1),this.hasTitle=!!this.element.attr("title"),this.options.label&&this.options.label!==this.originalLabel&&(this.isInput?this.element.val(this.options.label):this.element.html(this.options.label)),this._addClass("ui-button","ui-widget"),this._setOption("disabled",this.options.disabled),this._enhance(),this.element.is("a")&&this._on({keyup:function(t){t.keyCode===e.ui.keyCode.SPACE&&(t.preventDefault(),this.element[0].click?this.element[0].click():this.element.trigger("click"))}})},_enhance:function(){this.element.is("button")||this.element.attr("role","button"),this.options.icon&&(this._updateIcon("icon",this.options.icon),this._updateTooltip())},_updateTooltip:function(){this.title=this.element.attr("title"),this.options.showLabel||this.title||this.element.attr("title",this.options.label)},_updateIcon:function(t,n){var i="iconPosition"!==t,r=i?this.options.iconPosition:n,o="top"===r||"bottom"===r;this.icon?i&&this._removeClass(this.icon,null,this.options.icon):(this.icon=e("<span>"),this._addClass(this.icon,"ui-button-icon","ui-icon"),this.options.showLabel||this._addClass("ui-button-icon-only")),i&&this._addClass(this.icon,null,n),this._attachIcon(r),o?(this._addClass(this.icon,null,"ui-widget-icon-block"),this.iconSpace&&this.iconSpace.remove()):(this.iconSpace||(this.iconSpace=e("<span> </span>"),this._addClass(this.iconSpace,"ui-button-icon-space")),this._removeClass(this.icon,null,"ui-wiget-icon-block"),this._attachIconSpace(r))},_destroy:function(){this.element.removeAttr("role"),this.icon&&this.icon.remove(),this.iconSpace&&this.iconSpace.remove(),this.hasTitle||this.element.removeAttr("title")},_attachIconSpace:function(e){this.icon[/^(?:end|bottom)/.test(e)?"before":"after"](this.iconSpace)},_attachIcon:function(e){this.element[/^(?:end|bottom)/.test(e)?"append":"prepend"](this.icon)},_setOptions:function(e){var t=void 0===e.showLabel?this.options.showLabel:e.showLabel,n=void 0===e.icon?this.options.icon:e.icon;t||n||(e.showLabel=!0),this._super(e)},_setOption:function(e,t){"icon"===e&&(t?this._updateIcon(e,t):this.icon&&(this.icon.remove(),this.iconSpace&&this.iconSpace.remove())),"iconPosition"===e&&this._updateIcon(e,t),"showLabel"===e&&(this._toggleClass("ui-button-icon-only",null,!t),this._updateTooltip()),"label"===e&&(this.isInput?this.element.val(t):(this.element.html(t),this.icon&&(this._attachIcon(this.options.iconPosition),this._attachIconSpace(this.options.iconPosition)))),this._super(e,t),"disabled"===e&&(this._toggleClass(null,"ui-state-disabled",t),this.element[0].disabled=t,t&&this.element.blur())},refresh:function(){var e=this.element.is("input, button")?this.element[0].disabled:this.element.hasClass("ui-button-disabled");e!==this.options.disabled&&this._setOptions({disabled:e}),this._updateTooltip()}}),!1!==e.uiBackCompat&&(e.widget("ui.button",e.ui.button,{options:{text:!0,icons:{primary:null,secondary:null}},_create:function(){this.options.showLabel&&!this.options.text&&(this.options.showLabel=this.options.text),!this.options.showLabel&&this.options.text&&(this.options.text=this.options.showLabel),this.options.icon||!this.options.icons.primary&&!this.options.icons.secondary?this.options.icon&&(this.options.icons.primary=this.options.icon):this.options.icons.primary?this.options.icon=this.options.icons.primary:(this.options.icon=this.options.icons.secondary,this.options.iconPosition="end"),this._super()},_setOption:function(e,t){"text"!==e?("showLabel"===e&&(this.options.text=t),"icon"===e&&(this.options.icons.primary=t),"icons"===e&&(t.primary?(this._super("icon",t.primary),this._super("iconPosition","beginning")):t.secondary&&(this._super("icon",t.secondary),this._super("iconPosition","end"))),this._superApply(arguments)):this._super("showLabel",t)}}),e.fn.button=function(t){return function(){return!this.length||this.length&&"INPUT"!==this[0].tagName||this.length&&"INPUT"===this[0].tagName&&"checkbox"!==this.attr("type")&&"radio"!==this.attr("type")?t.apply(this,arguments):(e.ui.checkboxradio||e.error("Checkboxradio widget missing"),0===arguments.length?this.checkboxradio({icon:!1}):this.checkboxradio.apply(this,arguments))}}(e.fn.button),e.fn.buttonset=function(){return e.ui.controlgroup||e.error("Controlgroup widget missing"),"option"===arguments[0]&&"items"===arguments[1]&&arguments[2]?this.controlgroup.apply(this,[arguments[0],"items.button",arguments[2]]):"option"===arguments[0]&&"items"===arguments[1]?this.controlgroup.apply(this,[arguments[0],"items.button"]):("object"==typeof arguments[0]&&arguments[0].items&&(arguments[0].items={button:arguments[0].items}),this.controlgroup.apply(this,arguments))});e.ui.button;e.extend(e.ui,{datepicker:{version:"1.12.1"}});var p;e.extend(i.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return a(this._defaults,e||{}),this},_attachDatepicker:function(t,n){var i,r,o;r="div"===(i=t.nodeName.toLowerCase())||"span"===i,t.id||(this.uuid+=1,t.id="dp"+this.uuid),(o=this._newInst(e(t),r)).settings=e.extend({},n||{}),"input"===i?this._connectDatepicker(t,o):r&&this._inlineDatepicker(t,o)},_newInst:function(t,n){return{id:t[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1"),input:t,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:n,dpDiv:n?r(e("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>")):this.dpDiv}},_connectDatepicker:function(t,n){var i=e(t);n.append=e([]),n.trigger=e([]),i.hasClass(this.markerClassName)||(this._attachments(i,n),i.addClass(this.markerClassName).on("keydown",this._doKeyDown).on("keypress",this._doKeyPress).on("keyup",this._doKeyUp),this._autoSize(n),e.data(t,"datepicker",n),n.settings.disabled&&this._disableDatepicker(t))},_attachments:function(t,n){var i,r,o,a=this._get(n,"appendText"),s=this._get(n,"isRTL");n.append&&n.append.remove(),a&&(n.append=e("<span class='"+this._appendClass+"'>"+a+"</span>"),t[s?"before":"after"](n.append)),t.off("focus",this._showDatepicker),n.trigger&&n.trigger.remove(),"focus"!==(i=this._get(n,"showOn"))&&"both"!==i||t.on("focus",this._showDatepicker),"button"!==i&&"both"!==i||(r=this._get(n,"buttonText"),o=this._get(n,"buttonImage"),n.trigger=e(this._get(n,"buttonImageOnly")?e("<img/>").addClass(this._triggerClass).attr({src:o,alt:r,title:r}):e("<button type='button'></button>").addClass(this._triggerClass).html(o?e("<img/>").attr({src:o,alt:r,title:r}):r)),t[s?"before":"after"](n.trigger),n.trigger.on("click",function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,n,i,r,o=new Date(2009,11,20),a=this._get(e,"dateFormat");a.match(/[DM]/)&&(t=function(e){for(n=0,i=0,r=0;r<e.length;r++)e[r].length>n&&(n=e[r].length,i=r);return i},o.setMonth(t(this._get(e,a.match(/MM/)?"monthNames":"monthNamesShort"))),o.setDate(t(this._get(e,a.match(/DD/)?"dayNames":"dayNamesShort"))+20-o.getDay())),e.input.attr("size",this._formatDate(e,o).length)}},_inlineDatepicker:function(t,n){var i=e(t);i.hasClass(this.markerClassName)||(i.addClass(this.markerClassName).append(n.dpDiv),e.data(t,"datepicker",n),this._setDate(n,this._getDefaultDate(n),!0),this._updateDatepicker(n),this._updateAlternate(n),n.settings.disabled&&this._disableDatepicker(t),n.dpDiv.css("display","block"))},_dialogDatepicker:function(t,n,i,r,o){var s,l,c,u,d,h=this._dialogInst;return h||(this.uuid+=1,s="dp"+this.uuid,this._dialogInput=e("<input type='text' id='"+s+"' style='position: absolute; top: -100px; width: 0px;'/>"),this._dialogInput.on("keydown",this._doKeyDown),e("body").append(this._dialogInput),(h=this._dialogInst=this._newInst(this._dialogInput,!1)).settings={},e.data(this._dialogInput[0],"datepicker",h)),a(h.settings,r||{}),n=n&&n.constructor===Date?this._formatDate(h,n):n,this._dialogInput.val(n),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(l=document.documentElement.clientWidth,c=document.documentElement.clientHeight,u=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[l/2-100+u,c/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),h.settings.onSelect=i,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],"datepicker",h),this},_destroyDatepicker:function(t){var n,i=e(t),r=e.data(t,"datepicker");i.hasClass(this.markerClassName)&&(n=t.nodeName.toLowerCase(),e.removeData(t,"datepicker"),"input"===n?(r.append.remove(),r.trigger.remove(),i.removeClass(this.markerClassName).off("focus",this._showDatepicker).off("keydown",this._doKeyDown).off("keypress",this._doKeyPress).off("keyup",this._doKeyUp)):"div"!==n&&"span"!==n||i.removeClass(this.markerClassName).empty(),p===r&&(p=null))},_enableDatepicker:function(t){var n,i,r=e(t),o=e.data(t,"datepicker");r.hasClass(this.markerClassName)&&("input"===(n=t.nodeName.toLowerCase())?(t.disabled=!1,o.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):"div"!==n&&"span"!==n||((i=r.children("."+this._inlineClass)).children().removeClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}))},_disableDatepicker:function(t){var n,i,r=e(t),o=e.data(t,"datepicker");r.hasClass(this.markerClassName)&&("input"===(n=t.nodeName.toLowerCase())?(t.disabled=!0,o.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):"div"!==n&&"span"!==n||((i=r.children("."+this._inlineClass)).children().addClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;t<this._disabledInputs.length;t++)if(this._disabledInputs[t]===e)return!0;return!1},_getInst:function(t){try{return e.data(t,"datepicker")}catch(e){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(t,n,i){var r,o,s,l,c=this._getInst(t);if(2===arguments.length&&"string"==typeof n)return"defaults"===n?e.extend({},e.datepicker._defaults):c?"all"===n?e.extend({},c.settings):this._get(c,n):null;r=n||{},"string"==typeof n&&((r={})[n]=i),c&&(this._curInst===c&&this._hideDatepicker(),o=this._getDateDatepicker(t,!0),s=this._getMinMaxDate(c,"min"),l=this._getMinMaxDate(c,"max"),a(c.settings,r),null!==s&&void 0!==r.dateFormat&&void 0===r.minDate&&(c.settings.minDate=this._formatDate(c,s)),null!==l&&void 0!==r.dateFormat&&void 0===r.maxDate&&(c.settings.maxDate=this._formatDate(c,l)),"disabled"in r&&(r.disabled?this._disableDatepicker(t):this._enableDatepicker(t)),this._attachments(e(t),c),this._autoSize(c),this._setDate(c,o),this._updateAlternate(c),this._updateDatepicker(c))},_changeDatepicker:function(e,t,n){this._optionDatepicker(e,t,n)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var n=this._getInst(e);n&&(this._setDate(n,t),this._updateDatepicker(n),this._updateAlternate(n))},_getDateDatepicker:function(e,t){var n=this._getInst(e);return n&&!n.inline&&this._setDateFromField(n,t),n?this._getDate(n):null},_doKeyDown:function(t){var n,i,r,o=e.datepicker._getInst(t.target),a=!0,s=o.dpDiv.is(".ui-datepicker-rtl");if(o._keyEvent=!0,e.datepicker._datepickerShowing)switch(t.keyCode){case 9:e.datepicker._hideDatepicker(),a=!1;break;case 13:return(r=e("td."+e.datepicker._dayOverClass+":not(."+e.datepicker._currentClass+")",o.dpDiv))[0]&&e.datepicker._selectDay(t.target,o.selectedMonth,o.selectedYear,r[0]),n=e.datepicker._get(o,"onSelect"),n?(i=e.datepicker._formatDate(o),n.apply(o.input?o.input[0]:null,[i,o])):e.datepicker._hideDatepicker(),!1;case 27:e.datepicker._hideDatepicker();break;case 33:e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(o,"stepBigMonths"):-e.datepicker._get(o,"stepMonths"),"M");break;case 34:e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(o,"stepBigMonths"):+e.datepicker._get(o,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&e.datepicker._clearDate(t.target),a=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&e.datepicker._gotoToday(t.target),a=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,s?1:-1,"D"),a=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(o,"stepBigMonths"):-e.datepicker._get(o,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,-7,"D"),a=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,s?-1:1,"D"),a=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(o,"stepBigMonths"):+e.datepicker._get(o,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,7,"D"),a=t.ctrlKey||t.metaKey;break;default:a=!1}else 36===t.keyCode&&t.ctrlKey?e.datepicker._showDatepicker(this):a=!1;a&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(t){var n,i,r=e.datepicker._getInst(t.target);if(e.datepicker._get(r,"constrainInput"))return n=e.datepicker._possibleChars(e.datepicker._get(r,"dateFormat")),i=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||i<" "||!n||n.indexOf(i)>-1},_doKeyUp:function(t){var n=e.datepicker._getInst(t.target);if(n.input.val()!==n.lastVal)try{e.datepicker.parseDate(e.datepicker._get(n,"dateFormat"),n.input?n.input.val():null,e.datepicker._getFormatConfig(n))&&(e.datepicker._setDateFromField(n),e.datepicker._updateAlternate(n),e.datepicker._updateDatepicker(n))}catch(e){}return!0},_showDatepicker:function(t){if("input"!==(t=t.target||t).nodeName.toLowerCase()&&(t=e("input",t.parentNode)[0]),!e.datepicker._isDisabledDatepicker(t)&&e.datepicker._lastInput!==t){var i,r,o,s,l,c,u;i=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==i&&(e.datepicker._curInst.dpDiv.stop(!0,!0),i&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),!1!==(o=(r=e.datepicker._get(i,"beforeShow"))?r.apply(t,[t,i]):{})&&(a(i.settings,o),i.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(i),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),s=!1,e(t).parents().each(function(){return!(s|="fixed"===e(this).css("position"))}),l={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(i),l=e.datepicker._checkOffset(i,l,s),i.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":s?"fixed":"absolute",display:"none",left:l.left+"px",top:l.top+"px"}),i.inline||(c=e.datepicker._get(i,"showAnim"),u=e.datepicker._get(i,"duration"),i.dpDiv.css("z-index",n(e(t))+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[c]?i.dpDiv.show(c,e.datepicker._get(i,"showOptions"),u):i.dpDiv[c||"show"](c?u:null),e.datepicker._shouldFocusInput(i)&&i.input.trigger("focus"),e.datepicker._curInst=i))}},_updateDatepicker:function(t){this.maxRows=4,p=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t);var n,i=this._getNumberOfMonths(t),r=i[1],a=t.dpDiv.find("."+this._dayOverClass+" a");a.length>0&&o.apply(a.get(0)),t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),r>1&&t.dpDiv.addClass("ui-datepicker-multi-"+r).css("width",17*r+"em"),t.dpDiv[(1!==i[0]||1!==i[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&e.datepicker._shouldFocusInput(t)&&t.input.trigger("focus"),t.yearshtml&&(n=t.yearshtml,setTimeout(function(){n===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),n=t.yearshtml=null},0))},_shouldFocusInput:function(e){return e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&!e.input.is(":focus")},_checkOffset:function(t,n,i){var r=t.dpDiv.outerWidth(),o=t.dpDiv.outerHeight(),a=t.input?t.input.outerWidth():0,s=t.input?t.input.outerHeight():0,l=document.documentElement.clientWidth+(i?0:e(document).scrollLeft()),c=document.documentElement.clientHeight+(i?0:e(document).scrollTop());return n.left-=this._get(t,"isRTL")?r-a:0,n.left-=i&&n.left===t.input.offset().left?e(document).scrollLeft():0,n.top-=i&&n.top===t.input.offset().top+s?e(document).scrollTop():0,n.left-=Math.min(n.left,n.left+r>l&&l>r?Math.abs(n.left+r-l):0),n.top-=Math.min(n.top,n.top+o>c&&c>o?Math.abs(o+s):0),n},_findPos:function(t){for(var n,i=this._getInst(t),r=this._get(i,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||e.expr.filters.hidden(t));)t=t[r?"previousSibling":"nextSibling"];return n=e(t).offset(),[n.left,n.top]},_hideDatepicker:function(t){var n,i,r,o,a=this._curInst;!a||t&&a!==e.data(t,"datepicker")||this._datepickerShowing&&(n=this._get(a,"showAnim"),i=this._get(a,"duration"),r=function(){e.datepicker._tidyDialog(a)},e.effects&&(e.effects.effect[n]||e.effects[n])?a.dpDiv.hide(n,e.datepicker._get(a,"showOptions"),i,r):a.dpDiv["slideDown"===n?"slideUp":"fadeIn"===n?"fadeOut":"hide"](n?i:null,r),n||r(),this._datepickerShowing=!1,(o=this._get(a,"onClose"))&&o.apply(a.input?a.input[0]:null,[a.input?a.input.val():"",a]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).off(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(e.datepicker._curInst){var n=e(t.target),i=e.datepicker._getInst(n[0]);(n[0].id===e.datepicker._mainDivId||0!==n.parents("#"+e.datepicker._mainDivId).length||n.hasClass(e.datepicker.markerClassName)||n.closest("."+e.datepicker._triggerClass).length||!e.datepicker._datepickerShowing||e.datepicker._inDialog&&e.blockUI)&&(!n.hasClass(e.datepicker.markerClassName)||e.datepicker._curInst===i)||e.datepicker._hideDatepicker()}},_adjustDate:function(t,n,i){var r=e(t),o=this._getInst(r[0]);this._isDisabledDatepicker(r[0])||(this._adjustInstDate(o,n+("M"===i?this._get(o,"showCurrentAtPos"):0),i),this._updateDatepicker(o))},_gotoToday:function(t){var n,i=e(t),r=this._getInst(i[0]);this._get(r,"gotoCurrent")&&r.currentDay?(r.selectedDay=r.currentDay,r.drawMonth=r.selectedMonth=r.currentMonth,r.drawYear=r.selectedYear=r.currentYear):(n=new Date,r.selectedDay=n.getDate(),r.drawMonth=r.selectedMonth=n.getMonth(),r.drawYear=r.selectedYear=n.getFullYear()),this._notifyChange(r),this._adjustDate(i)},_selectMonthYear:function(t,n,i){var r=e(t),o=this._getInst(r[0]);o["selected"+("M"===i?"Month":"Year")]=o["draw"+("M"===i?"Month":"Year")]=parseInt(n.options[n.selectedIndex].value,10),this._notifyChange(o),this._adjustDate(r)},_selectDay:function(t,n,i,r){var o,a=e(t);e(r).hasClass(this._unselectableClass)||this._isDisabledDatepicker(a[0])||((o=this._getInst(a[0])).selectedDay=o.currentDay=e("a",r).html(),o.selectedMonth=o.currentMonth=n,o.selectedYear=o.currentYear=i,this._selectDate(t,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear)))},_clearDate:function(t){var n=e(t);this._selectDate(n,"")},_selectDate:function(t,n){var i,r=e(t),o=this._getInst(r[0]);n=null!=n?n:this._formatDate(o),o.input&&o.input.val(n),this._updateAlternate(o),(i=this._get(o,"onSelect"))?i.apply(o.input?o.input[0]:null,[n,o]):o.input&&o.input.trigger("change"),o.inline?this._updateDatepicker(o):(this._hideDatepicker(),this._lastInput=o.input[0],"object"!=typeof o.input[0]&&o.input.trigger("focus"),this._lastInput=null)},_updateAlternate:function(t){var n,i,r,o=this._get(t,"altField");o&&(n=this._get(t,"altFormat")||this._get(t,"dateFormat"),i=this._getDate(t),r=this.formatDate(n,i,this._getFormatConfig(t)),e(o).val(r))},noWeekends:function(e){var t=e.getDay();return[t>0&&t<6,""]},iso8601Week:function(e){var t,n=new Date(e.getTime());return n.setDate(n.getDate()+4-(n.getDay()||7)),t=n.getTime(),n.setMonth(0),n.setDate(1),Math.floor(Math.round((t-n)/864e5)/7)+1},parseDate:function(t,n,i){if(null==t||null==n)throw"Invalid arguments";if(""===(n="object"==typeof n?n.toString():n+""))return null;var r,o,a,s,l=0,c=(i?i.shortYearCutoff:null)||this._defaults.shortYearCutoff,u="string"!=typeof c?c:(new Date).getFullYear()%100+parseInt(c,10),d=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,h=(i?i.dayNames:null)||this._defaults.dayNames,p=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,f=(i?i.monthNames:null)||this._defaults.monthNames,m=-1,g=-1,v=-1,b=-1,y=!1,_=function(e){var n=r+1<t.length&&t.charAt(r+1)===e;return n&&r++,n},w=function(e){var t=_(e),i="@"===e?14:"!"===e?20:"y"===e&&t?4:"o"===e?3:2,r="y"===e?i:1,o=new RegExp("^\\d{"+r+","+i+"}"),a=n.substring(l).match(o);if(!a)throw"Missing number at position "+l;return l+=a[0].length,parseInt(a[0],10)},A=function(t,i,r){var o=-1,a=e.map(_(t)?r:i,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)});if(e.each(a,function(e,t){var i=t[1];if(n.substr(l,i.length).toLowerCase()===i.toLowerCase())return o=t[0],l+=i.length,!1}),-1!==o)return o+1;throw"Unknown name at position "+l},C=function(){if(n.charAt(l)!==t.charAt(r))throw"Unexpected literal at position "+l;l++};for(r=0;r<t.length;r++)if(y)"'"!==t.charAt(r)||_("'")?C():y=!1;else switch(t.charAt(r)){case"d":v=w("d");break;case"D":A("D",d,h);break;case"o":b=w("o");break;case"m":g=w("m");break;case"M":g=A("M",p,f);break;case"y":m=w("y");break;case"@":m=(s=new Date(w("@"))).getFullYear(),g=s.getMonth()+1,v=s.getDate();break;case"!":m=(s=new Date((w("!")-this._ticksTo1970)/1e4)).getFullYear(),g=s.getMonth()+1,v=s.getDate();break;case"'":_("'")?C():y=!0;break;default:C()}if(l<n.length&&(a=n.substr(l),!/^\s+/.test(a)))throw"Extra/unparsed characters found in date: "+a;if(-1===m?m=(new Date).getFullYear():m<100&&(m+=(new Date).getFullYear()-(new Date).getFullYear()%100+(m<=u?0:-100)),b>-1)for(g=1,v=b;;){if(o=this._getDaysInMonth(m,g-1),v<=o)break;g++,v-=o}if((s=this._daylightSavingAdjust(new Date(m,g-1,v))).getFullYear()!==m||s.getMonth()+1!==g||s.getDate()!==v)throw"Invalid date";return s},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*60*60*1e7,formatDate:function(e,t,n){if(!t)return"";var i,r=(n?n.dayNamesShort:null)||this._defaults.dayNamesShort,o=(n?n.dayNames:null)||this._defaults.dayNames,a=(n?n.monthNamesShort:null)||this._defaults.monthNamesShort,s=(n?n.monthNames:null)||this._defaults.monthNames,l=function(t){var n=i+1<e.length&&e.charAt(i+1)===t;return n&&i++,n},c=function(e,t,n){var i=""+t;if(l(e))for(;i.length<n;)i="0"+i;return i},u=function(e,t,n,i){return l(e)?i[t]:n[t]},d="",h=!1;if(t)for(i=0;i<e.length;i++)if(h)"'"!==e.charAt(i)||l("'")?d+=e.charAt(i):h=!1;else switch(e.charAt(i)){case"d":d+=c("d",t.getDate(),2);break;case"D":d+=u("D",t.getDay(),r,o);break;case"o":d+=c("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":d+=c("m",t.getMonth()+1,2);break;case"M":d+=u("M",t.getMonth(),a,s);break;case"y":d+=l("y")?t.getFullYear():(t.getFullYear()%100<10?"0":"")+t.getFullYear()%100;break;case"@":d+=t.getTime();break;case"!":d+=1e4*t.getTime()+this._ticksTo1970;break;case"'":l("'")?d+="'":h=!0;break;default:d+=e.charAt(i)}return d},_possibleChars:function(e){var t,n="",i=!1,r=function(n){var i=t+1<e.length&&e.charAt(t+1)===n;return i&&t++,i};for(t=0;t<e.length;t++)if(i)"'"!==e.charAt(t)||r("'")?n+=e.charAt(t):i=!1;else switch(e.charAt(t)){case"d":case"m":case"y":case"@":n+="0123456789";break;case"D":case"M":return null;case"'":r("'")?n+="'":i=!0;break;default:n+=e.charAt(t)}return n},_get:function(e,t){return void 0!==e.settings[t]?e.settings[t]:this._defaults[t]},_setDateFromField:function(e,t){if(e.input.val()!==e.lastVal){var n=this._get(e,"dateFormat"),i=e.lastVal=e.input?e.input.val():null,r=this._getDefaultDate(e),o=r,a=this._getFormatConfig(e);try{o=this.parseDate(n,i,a)||r}catch(e){i=t?"":i}e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),e.currentDay=i?o.getDate():0,e.currentMonth=i?o.getMonth():0,e.currentYear=i?o.getFullYear():0,this._adjustInstDate(e)}},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(t,n,i){var r=null==n||""===n?i:"string"==typeof n?function(n){try{return e.datepicker.parseDate(e.datepicker._get(t,"dateFormat"),n,e.datepicker._getFormatConfig(t))}catch(e){}for(var i=(n.toLowerCase().match(/^c/)?e.datepicker._getDate(t):null)||new Date,r=i.getFullYear(),o=i.getMonth(),a=i.getDate(),s=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,l=s.exec(n);l;){switch(l[2]||"d"){case"d":case"D":a+=parseInt(l[1],10);break;case"w":case"W":a+=7*parseInt(l[1],10);break;case"m":case"M":o+=parseInt(l[1],10),a=Math.min(a,e.datepicker._getDaysInMonth(r,o));break;case"y":case"Y":r+=parseInt(l[1],10),a=Math.min(a,e.datepicker._getDaysInMonth(r,o))}l=s.exec(n)}return new Date(r,o,a)}(n):"number"==typeof n?isNaN(n)?i:function(e){var t=new Date;return t.setDate(t.getDate()+e),t}(n):new Date(n.getTime());return(r=r&&"Invalid Date"===r.toString()?i:r)&&(r.setHours(0),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0)),this._daylightSavingAdjust(r)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,n){var i=!t,r=e.selectedMonth,o=e.selectedYear,a=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=a.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=a.getMonth(),e.drawYear=e.selectedYear=e.currentYear=a.getFullYear(),r===e.selectedMonth&&o===e.selectedYear||n||this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(i?"":this._formatDate(e))},_getDate:function(e){return!e.currentYear||e.input&&""===e.input.val()?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay))},_attachHandlers:function(t){var n=this._get(t,"stepMonths"),i="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){e.datepicker._adjustDate(i,-n,"M")},next:function(){e.datepicker._adjustDate(i,+n,"M")},hide:function(){e.datepicker._hideDatepicker()},today:function(){e.datepicker._gotoToday(i)},selectDay:function(){return e.datepicker._selectDay(i,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return e.datepicker._selectMonthYear(i,this,"M"),!1},selectYear:function(){return e.datepicker._selectMonthYear(i,this,"Y"),!1}};e(this).on(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,n,i,r,o,a,s,l,c,u,d,h,p,f,m,g,v,b,y,_,w,A,C,x,S,E,T,D,I,k,M,P,$,N,O,R,L,G,B,F=new Date,H=this._daylightSavingAdjust(new Date(F.getFullYear(),F.getMonth(),F.getDate())),U=this._get(e,"isRTL"),j=this._get(e,"showButtonPanel"),W=this._get(e,"hideIfNoPrevNext"),z=this._get(e,"navigationAsDateFormat"),q=this._getNumberOfMonths(e),V=this._get(e,"showCurrentAtPos"),Y=this._get(e,"stepMonths"),K=1!==q[0]||1!==q[1],Q=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),X=this._getMinMaxDate(e,"min"),Z=this._getMinMaxDate(e,"max"),J=e.drawMonth-V,ee=e.drawYear;if(J<0&&(J+=12,ee--),Z)for(t=this._daylightSavingAdjust(new Date(Z.getFullYear(),Z.getMonth()-q[0]*q[1]+1,Z.getDate())),t=X&&t<X?X:t;this._daylightSavingAdjust(new Date(ee,J,1))>t;)--J<0&&(J=11,ee--);for(e.drawMonth=J,e.drawYear=ee,n=this._get(e,"prevText"),n=z?this.formatDate(n,this._daylightSavingAdjust(new Date(ee,J-Y,1)),this._getFormatConfig(e)):n,i=this._canAdjustMonth(e,-1,ee,J)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(U?"e":"w")+"'>"+n+"</span></a>":W?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+n+"'><span class='ui-icon ui-icon-circle-triangle-"+(U?"e":"w")+"'>"+n+"</span></a>",r=this._get(e,"nextText"),r=z?this.formatDate(r,this._daylightSavingAdjust(new Date(ee,J+Y,1)),this._getFormatConfig(e)):r,o=this._canAdjustMonth(e,1,ee,J)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click' title='"+r+"'><span class='ui-icon ui-icon-circle-triangle-"+(U?"w":"e")+"'>"+r+"</span></a>":W?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+r+"'><span class='ui-icon ui-icon-circle-triangle-"+(U?"w":"e")+"'>"+r+"</span></a>",a=this._get(e,"currentText"),s=this._get(e,"gotoCurrent")&&e.currentDay?Q:H,a=z?this.formatDate(a,s,this._getFormatConfig(e)):a,l=e.inline?"":"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(e,"closeText")+"</button>",c=j?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(U?l:"")+(this._isInRange(e,s)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'>"+a+"</button>":"")+(U?"":l)+"</div>":"",u=parseInt(this._get(e,"firstDay"),10),u=isNaN(u)?0:u,d=this._get(e,"showWeek"),h=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),f=this._get(e,"monthNames"),m=this._get(e,"monthNamesShort"),g=this._get(e,"beforeShowDay"),v=this._get(e,"showOtherMonths"),b=this._get(e,"selectOtherMonths"),y=this._getDefaultDate(e),_="",A=0;A<q[0];A++){for(C="",this.maxRows=4,x=0;x<q[1];x++){if(S=this._daylightSavingAdjust(new Date(ee,J,e.selectedDay)),E=" ui-corner-all",T="",K){if(T+="<div class='ui-datepicker-group",q[1]>1)switch(x){case 0:T+=" ui-datepicker-group-first",E=" ui-corner-"+(U?"right":"left");break;case q[1]-1:T+=" ui-datepicker-group-last",E=" ui-corner-"+(U?"left":"right");break;default:T+=" ui-datepicker-group-middle",E=""}T+="'>"}for(T+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+E+"'>"+(/all|left/.test(E)&&0===A?U?o:i:"")+(/all|right/.test(E)&&0===A?U?i:o:"")+this._generateMonthYearHeader(e,J,ee,X,Z,A>0||x>0,f,m)+"</div><table class='ui-datepicker-calendar'><thead><tr>",D=d?"<th class='ui-datepicker-week-col'>"+this._get(e,"weekHeader")+"</th>":"",w=0;w<7;w++)I=(w+u)%7,D+="<th scope='col'"+((w+u+6)%7>=5?" class='ui-datepicker-week-end'":"")+"><span title='"+h[I]+"'>"+p[I]+"</span></th>";for(T+=D+"</tr></thead><tbody>",k=this._getDaysInMonth(ee,J),ee===e.selectedYear&&J===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,k)),M=(this._getFirstDayOfMonth(ee,J)-u+7)%7,P=Math.ceil((M+k)/7),$=K&&this.maxRows>P?this.maxRows:P,this.maxRows=$,N=this._daylightSavingAdjust(new Date(ee,J,1-M)),O=0;O<$;O++){for(T+="<tr>",R=d?"<td class='ui-datepicker-week-col'>"+this._get(e,"calculateWeek")(N)+"</td>":"",w=0;w<7;w++)L=g?g.apply(e.input?e.input[0]:null,[N]):[!0,""],B=(G=N.getMonth()!==J)&&!b||!L[0]||X&&N<X||Z&&N>Z,R+="<td class='"+((w+u+6)%7>=5?" ui-datepicker-week-end":"")+(G?" ui-datepicker-other-month":"")+(N.getTime()===S.getTime()&&J===e.selectedMonth&&e._keyEvent||y.getTime()===N.getTime()&&y.getTime()===S.getTime()?" "+this._dayOverClass:"")+(B?" "+this._unselectableClass+" ui-state-disabled":"")+(G&&!v?"":" "+L[1]+(N.getTime()===Q.getTime()?" "+this._currentClass:"")+(N.getTime()===H.getTime()?" ui-datepicker-today":""))+"'"+(G&&!v||!L[2]?"":" title='"+L[2].replace(/'/g,"&#39;")+"'")+(B?"":" data-handler='selectDay' data-event='click' data-month='"+N.getMonth()+"' data-year='"+N.getFullYear()+"'")+">"+(G&&!v?"&#xa0;":B?"<span class='ui-state-default'>"+N.getDate()+"</span>":"<a class='ui-state-default"+(N.getTime()===H.getTime()?" ui-state-highlight":"")+(N.getTime()===Q.getTime()?" ui-state-active":"")+(G?" ui-priority-secondary":"")+"' href='#'>"+N.getDate()+"</a>")+"</td>",N.setDate(N.getDate()+1),N=this._daylightSavingAdjust(N);T+=R+"</tr>"}++J>11&&(J=0,ee++),C+=T+="</tbody></table>"+(K?"</div>"+(q[0]>0&&x===q[1]-1?"<div class='ui-datepicker-row-break'></div>":""):"")}_+=C}return _+=c,e._keyEvent=!1,_},_generateMonthYearHeader:function(e,t,n,i,r,o,a,s){var l,c,u,d,h,p,f,m,g=this._get(e,"changeMonth"),v=this._get(e,"changeYear"),b=this._get(e,"showMonthAfterYear"),y="<div class='ui-datepicker-title'>",_="";if(o||!g)_+="<span class='ui-datepicker-month'>"+a[t]+"</span>";else{for(l=i&&i.getFullYear()===n,c=r&&r.getFullYear()===n,_+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>",u=0;u<12;u++)(!l||u>=i.getMonth())&&(!c||u<=r.getMonth())&&(_+="<option value='"+u+"'"+(u===t?" selected='selected'":"")+">"+s[u]+"</option>");_+="</select>"}if(b||(y+=_+(!o&&g&&v?"":"&#xa0;")),!e.yearshtml)if(e.yearshtml="",o||!v)y+="<span class='ui-datepicker-year'>"+n+"</span>";else{for(d=this._get(e,"yearRange").split(":"),h=(new Date).getFullYear(),f=(p=function(e){var t=e.match(/c[+\-].*/)?n+parseInt(e.substring(1),10):e.match(/[+\-].*/)?h+parseInt(e,10):parseInt(e,10);return isNaN(t)?h:t})(d[0]),m=Math.max(f,p(d[1]||"")),f=i?Math.max(f,i.getFullYear()):f,m=r?Math.min(m,r.getFullYear()):m,e.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";f<=m;f++)e.yearshtml+="<option value='"+f+"'"+(f===n?" selected='selected'":"")+">"+f+"</option>";e.yearshtml+="</select>",y+=e.yearshtml,e.yearshtml=null}return y+=this._get(e,"yearSuffix"),b&&(y+=(!o&&g&&v?"":"&#xa0;")+_),y+="</div>"},_adjustInstDate:function(e,t,n){var i=e.selectedYear+("Y"===n?t:0),r=e.selectedMonth+("M"===n?t:0),o=Math.min(e.selectedDay,this._getDaysInMonth(i,r))+("D"===n?t:0),a=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(i,r,o)));e.selectedDay=a.getDate(),e.drawMonth=e.selectedMonth=a.getMonth(),e.drawYear=e.selectedYear=a.getFullYear(),"M"!==n&&"Y"!==n||this._notifyChange(e)},_restrictMinMax:function(e,t){var n=this._getMinMaxDate(e,"min"),i=this._getMinMaxDate(e,"max"),r=n&&t<n?n:t;return i&&r>i?i:r},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,n,i){var r=this._getNumberOfMonths(e),o=this._daylightSavingAdjust(new Date(n,i+(t<0?t:r[0]*r[1]),1));return t<0&&o.setDate(this._getDaysInMonth(o.getFullYear(),o.getMonth())),this._isInRange(e,o)},_isInRange:function(e,t){var n,i,r=this._getMinMaxDate(e,"min"),o=this._getMinMaxDate(e,"max"),a=null,s=null,l=this._get(e,"yearRange");return l&&(n=l.split(":"),i=(new Date).getFullYear(),a=parseInt(n[0],10),s=parseInt(n[1],10),n[0].match(/[+\-].*/)&&(a+=i),n[1].match(/[+\-].*/)&&(s+=i)),(!r||t.getTime()>=r.getTime())&&(!o||t.getTime()<=o.getTime())&&(!a||t.getFullYear()>=a)&&(!s||t.getFullYear()<=s)},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,n,i){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var r=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(i,n,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),r,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).on("mousedown",e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var n=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(n)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(n)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(n))},e.datepicker=new i,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.12.1";e.datepicker,e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var f=!1;e(document).on("mouseup",function(){f=!1});e.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.on("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).on("click."+this.widgetName,function(n){if(!0===e.data(n.target,t.widgetName+".preventClickEvent"))return e.removeData(n.target,t.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(!f){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var n=this,i=1===t.which,r=!("string"!=typeof this.options.cancel||!t.target.nodeName)&&e(t.target).closest(this.options.cancel).length;return!(i&&!r&&this._mouseCapture(t))||(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){n.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(t),!this._mouseStarted)?(t.preventDefault(),!0):(!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return n._mouseMove(e)},this._mouseUpDelegate=function(e){return n._mouseUp(e)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),f=!0,!0))}},_mouseMove:function(t){if(this._mouseMoved){if(e.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button)return this._mouseUp(t);if(!t.which)if(t.originalEvent.altKey||t.originalEvent.ctrlKey||t.originalEvent.metaKey||t.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(t)}return(t.which||t.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=!1!==this._mouseStart(this._mouseDownEvent,t),this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,f=!1,t.preventDefault()},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),e.ui.plugin={add:function(t,n,i){var r,o=e.ui[t].prototype;for(r in i)o.plugins[r]=o.plugins[r]||[],o.plugins[r].push([n,i[r]])},call:function(e,t,n,i){var r,o=e.plugins[t];if(o&&(i||e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType))for(r=0;r<o.length;r++)e.options[o[r][0]]&&o[r][1].apply(e.element,n)}},e.ui.safeBlur=function(t){t&&"body"!==t.nodeName.toLowerCase()&&e(t).trigger("blur")};e.widget("ui.draggable",e.ui.mouse,{version:"1.12.1",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"===this.options.helper&&this._setPositionRelative(),this.options.addClasses&&this._addClass("ui-draggable"),this._setHandleClassName(),this._mouseInit()},_setOption:function(e,t){this._super(e,t),"handle"===e&&(this._removeHandleClassName(),this._setHandleClassName())},_destroy:function(){(this.helper||this.element).is(".ui-draggable-dragging")?this.destroyOnClear=!0:(this._removeHandleClassName(),this._mouseDestroy())},_mouseCapture:function(t){var n=this.options;return!(this.helper||n.disabled||e(t.target).closest(".ui-resizable-handle").length>0)&&(this.handle=this._getHandle(t),!!this.handle&&(this._blurActiveElement(t),this._blockFrames(!0===n.iframeFix?"iframe":n.iframeFix),!0))},_blockFrames:function(t){this.iframeBlocks=this.document.find(t).map(function(){var t=e(this);return e("<div>").css("position","absolute").appendTo(t.parent()).outerWidth(t.outerWidth()).outerHeight(t.outerHeight()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(t){var n=e.ui.safeActiveElement(this.document[0]);e(t.target).closest(n).length||e.ui.safeBlur(n)},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this._addClass(this.helper,"ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(!0),this.offsetParent=this.helper.offsetParent(),this.hasFixedAncestor=this.helper.parents().filter(function(){return"fixed"===e(this).css("position")}).length>0,this.positionAbs=this.element.offset(),this._refreshOffsets(t),this.originalPosition=this.position=this._generatePosition(t,!1),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),this._setContainment(),!1===this._trigger("start",t)?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_refreshOffsets:function(e){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:!1,parent:this._getParentOffset(),relative:this._getRelativeOffset()},this.offset.click={left:e.pageX-this.offset.left,top:e.pageY-this.offset.top}},_mouseDrag:function(t,n){if(this.hasFixedAncestor&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(t,!0),this.positionAbs=this._convertPositionTo("absolute"),!n){var i=this._uiHash();if(!1===this._trigger("drag",t,i))return this._mouseUp(new e.Event("mouseup",t)),!1;this.position=i.position}return this.helper[0].style.left=this.position.left+"px",this.helper[0].style.top=this.position.top+"px",e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=this,i=!1;return e.ui.ddmanager&&!this.options.dropBehaviour&&(i=e.ui.ddmanager.drop(this,t)),this.dropped&&(i=this.dropped,this.dropped=!1),"invalid"===this.options.revert&&!i||"valid"===this.options.revert&&i||!0===this.options.revert||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,i)?e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){!1!==n._trigger("stop",t)&&n._clear()}):!1!==this._trigger("stop",t)&&this._clear(),!1},_mouseUp:function(t){return this._unblockFrames(),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),this.handleElement.is(t.target)&&this.element.trigger("focus"),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp(new e.Event("mouseup",{target:this.element[0]})):this._clear(),this},_getHandle:function(t){return!this.options.handle||!!e(t.target).closest(this.element.find(this.options.handle)).length},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element,this._addClass(this.handleElement,"ui-draggable-handle")},_removeHandleClassName:function(){this._removeClass(this.handleElement,"ui-draggable-handle")},_createHelper:function(t){var n=this.options,i=e.isFunction(n.helper),r=i?e(n.helper.apply(this.element[0],[t])):"clone"===n.helper?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo("parent"===n.appendTo?this.element[0].parentNode:n.appendTo),i&&r[0]===this.element[0]&&this._setPositionRelative(),r[0]===this.element[0]||/(fixed|absolute)/.test(r.css("position"))||r.css("position","absolute"),r},_setPositionRelative:function(){/^(?:r|a|f)/.test(this.element.css("position"))||(this.element[0].style.position="relative")},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_isRootNode:function(e){return/(html|body)/i.test(e.tagName)||e===this.document[0]},_getParentOffset:function(){var t=this.offsetParent.offset(),n=this.document[0];return"absolute"===this.cssPosition&&this.scrollParent[0]!==n&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),this._isRootNode(this.offsetParent[0])&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"!==this.cssPosition)return{top:0,left:0};var e=this.element.position(),t=this._isRootNode(this.scrollParent[0]);return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+(t?0:this.scrollParent.scrollTop()),left:e.left-(parseInt(this.helper.css("left"),10)||0)+(t?0:this.scrollParent.scrollLeft())}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,n,i,r=this.options,o=this.document[0];this.relativeContainer=null,r.containment?"window"!==r.containment?"document"!==r.containment?r.containment.constructor!==Array?("parent"===r.containment&&(r.containment=this.helper[0].parentNode),(i=(n=e(r.containment))[0])&&(t=/(scroll|auto)/.test(n.css("overflow")),this.containment=[(parseInt(n.css("borderLeftWidth"),10)||0)+(parseInt(n.css("paddingLeft"),10)||0),(parseInt(n.css("borderTopWidth"),10)||0)+(parseInt(n.css("paddingTop"),10)||0),(t?Math.max(i.scrollWidth,i.offsetWidth):i.offsetWidth)-(parseInt(n.css("borderRightWidth"),10)||0)-(parseInt(n.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(t?Math.max(i.scrollHeight,i.offsetHeight):i.offsetHeight)-(parseInt(n.css("borderBottomWidth"),10)||0)-(parseInt(n.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relativeContainer=n)):this.containment=r.containment:this.containment=[0,0,e(o).width()-this.helperProportions.width-this.margins.left,(e(o).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:this.containment=[e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,e(window).scrollLeft()+e(window).width()-this.helperProportions.width-this.margins.left,e(window).scrollTop()+(e(window).height()||o.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]:this.containment=null},_convertPositionTo:function(e,t){t||(t=this.position);var n="absolute"===e?1:-1,i=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*n+this.offset.parent.top*n-("fixed"===this.cssPosition?-this.offset.scroll.top:i?0:this.offset.scroll.top)*n,left:t.left+this.offset.relative.left*n+this.offset.parent.left*n-("fixed"===this.cssPosition?-this.offset.scroll.left:i?0:this.offset.scroll.left)*n}},_generatePosition:function(e,t){var n,i,r,o,a=this.options,s=this._isRootNode(this.scrollParent[0]),l=e.pageX,c=e.pageY;return s&&this.offset.scroll||(this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}),t&&(this.containment&&(this.relativeContainer?(i=this.relativeContainer.offset(),n=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]):n=this.containment,e.pageX-this.offset.click.left<n[0]&&(l=n[0]+this.offset.click.left),e.pageY-this.offset.click.top<n[1]&&(c=n[1]+this.offset.click.top),e.pageX-this.offset.click.left>n[2]&&(l=n[2]+this.offset.click.left),e.pageY-this.offset.click.top>n[3]&&(c=n[3]+this.offset.click.top)),a.grid&&(r=a.grid[1]?this.originalPageY+Math.round((c-this.originalPageY)/a.grid[1])*a.grid[1]:this.originalPageY,c=n?r-this.offset.click.top>=n[1]||r-this.offset.click.top>n[3]?r:r-this.offset.click.top>=n[1]?r-a.grid[1]:r+a.grid[1]:r,o=a.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/a.grid[0])*a.grid[0]:this.originalPageX,l=n?o-this.offset.click.left>=n[0]||o-this.offset.click.left>n[2]?o:o-this.offset.click.left>=n[0]?o-a.grid[0]:o+a.grid[0]:o),"y"===a.axis&&(l=this.originalPageX),"x"===a.axis&&(c=this.originalPageY)),{top:c-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)}},_clear:function(){this._removeClass(this.helper,"ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1,this.destroyOnClear&&this.destroy()},_trigger:function(t,n,i){return i=i||this._uiHash(),e.ui.plugin.call(this,t,[n,i,this],!0),/^(drag|start|stop)/.test(t)&&(this.positionAbs=this._convertPositionTo("absolute"),i.offset=this.positionAbs),e.Widget.prototype._trigger.call(this,t,n,i)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,n,i){var r=e.extend({},n,{item:i.element});i.sortables=[],e(i.options.connectToSortable).each(function(){var n=e(this).sortable("instance");n&&!n.options.disabled&&(i.sortables.push(n),n.refreshPositions(),n._trigger("activate",t,r))})},stop:function(t,n,i){var r=e.extend({},n,{item:i.element});i.cancelHelperRemoval=!1,e.each(i.sortables,function(){var e=this;e.isOver?(e.isOver=0,i.cancelHelperRemoval=!0,e.cancelHelperRemoval=!1,e._storedCSS={position:e.placeholder.css("position"),top:e.placeholder.css("top"),left:e.placeholder.css("left")},e._mouseStop(t),e.options.helper=e.options._helper):(e.cancelHelperRemoval=!0,e._trigger("deactivate",t,r))})},drag:function(t,n,i){e.each(i.sortables,function(){var r=!1,o=this;o.positionAbs=i.positionAbs,o.helperProportions=i.helperProportions,o.offset.click=i.offset.click,o._intersectsWith(o.containerCache)&&(r=!0,e.each(i.sortables,function(){return this.positionAbs=i.positionAbs,this.helperProportions=i.helperProportions,this.offset.click=i.offset.click,this!==o&&this._intersectsWith(this.containerCache)&&e.contains(o.element[0],this.element[0])&&(r=!1),r})),r?(o.isOver||(o.isOver=1,i._parent=n.helper.parent(),o.currentItem=n.helper.appendTo(o.element).data("ui-sortable-item",!0),o.options._helper=o.options.helper,o.options.helper=function(){return n.helper[0]},t.target=o.currentItem[0],o._mouseCapture(t,!0),o._mouseStart(t,!0,!0),o.offset.click.top=i.offset.click.top,o.offset.click.left=i.offset.click.left,o.offset.parent.left-=i.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=i.offset.parent.top-o.offset.parent.top,i._trigger("toSortable",t),i.dropped=o.element,e.each(i.sortables,function(){this.refreshPositions()}),i.currentItem=i.element,o.fromOutside=i),o.currentItem&&(o._mouseDrag(t),n.position=o.position)):o.isOver&&(o.isOver=0,o.cancelHelperRemoval=!0,o.options._revert=o.options.revert,o.options.revert=!1,o._trigger("out",t,o._uiHash(o)),o._mouseStop(t,!0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),n.helper.appendTo(i._parent),i._refreshOffsets(t),n.position=i._generatePosition(t,!0),i._trigger("fromSortable",t),i.dropped=!1,e.each(i.sortables,function(){this.refreshPositions()}))})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,n,i){var r=e("body"),o=i.options;r.css("cursor")&&(o._cursor=r.css("cursor")),r.css("cursor",o.cursor)},stop:function(t,n,i){var r=i.options;r._cursor&&e("body").css("cursor",r._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,n,i){var r=e(n.helper),o=i.options;r.css("opacity")&&(o._opacity=r.css("opacity")),r.css("opacity",o.opacity)},stop:function(t,n,i){var r=i.options;r._opacity&&e(n.helper).css("opacity",r._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(e,t,n){n.scrollParentNotHidden||(n.scrollParentNotHidden=n.helper.scrollParent(!1)),n.scrollParentNotHidden[0]!==n.document[0]&&"HTML"!==n.scrollParentNotHidden[0].tagName&&(n.overflowOffset=n.scrollParentNotHidden.offset())},drag:function(t,n,i){var r=i.options,o=!1,a=i.scrollParentNotHidden[0],s=i.document[0];a!==s&&"HTML"!==a.tagName?(r.axis&&"x"===r.axis||(i.overflowOffset.top+a.offsetHeight-t.pageY<r.scrollSensitivity?a.scrollTop=o=a.scrollTop+r.scrollSpeed:t.pageY-i.overflowOffset.top<r.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-r.scrollSpeed)),r.axis&&"y"===r.axis||(i.overflowOffset.left+a.offsetWidth-t.pageX<r.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+r.scrollSpeed:t.pageX-i.overflowOffset.left<r.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-r.scrollSpeed))):(r.axis&&"x"===r.axis||(t.pageY-e(s).scrollTop()<r.scrollSensitivity?o=e(s).scrollTop(e(s).scrollTop()-r.scrollSpeed):e(window).height()-(t.pageY-e(s).scrollTop())<r.scrollSensitivity&&(o=e(s).scrollTop(e(s).scrollTop()+r.scrollSpeed))),r.axis&&"y"===r.axis||(t.pageX-e(s).scrollLeft()<r.scrollSensitivity?o=e(s).scrollLeft(e(s).scrollLeft()-r.scrollSpeed):e(window).width()-(t.pageX-e(s).scrollLeft())<r.scrollSensitivity&&(o=e(s).scrollLeft(e(s).scrollLeft()+r.scrollSpeed)))),!1!==o&&e.ui.ddmanager&&!r.dropBehaviour&&e.ui.ddmanager.prepareOffsets(i,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,n,i){var r=i.options;i.snapElements=[],e(r.snap.constructor!==String?r.snap.items||":data(ui-draggable)":r.snap).each(function(){var t=e(this),n=t.offset();this!==i.element[0]&&i.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:n.top,left:n.left})})},drag:function(t,n,i){var r,o,a,s,l,c,u,d,h,p,f=i.options,m=f.snapTolerance,g=n.offset.left,v=g+i.helperProportions.width,b=n.offset.top,y=b+i.helperProportions.height;for(h=i.snapElements.length-1;h>=0;h--)c=(l=i.snapElements[h].left-i.margins.left)+i.snapElements[h].width,d=(u=i.snapElements[h].top-i.margins.top)+i.snapElements[h].height,v<l-m||g>c+m||y<u-m||b>d+m||!e.contains(i.snapElements[h].item.ownerDocument,i.snapElements[h].item)?(i.snapElements[h].snapping&&i.options.snap.release&&i.options.snap.release.call(i.element,t,e.extend(i._uiHash(),{snapItem:i.snapElements[h].item})),i.snapElements[h].snapping=!1):("inner"!==f.snapMode&&(r=Math.abs(u-y)<=m,o=Math.abs(d-b)<=m,a=Math.abs(l-v)<=m,s=Math.abs(c-g)<=m,r&&(n.position.top=i._convertPositionTo("relative",{top:u-i.helperProportions.height,left:0}).top),o&&(n.position.top=i._convertPositionTo("relative",{top:d,left:0}).top),a&&(n.position.left=i._convertPositionTo("relative",{top:0,left:l-i.helperProportions.width}).left),s&&(n.position.left=i._convertPositionTo("relative",{top:0,left:c}).left)),p=r||o||a||s,"outer"!==f.snapMode&&(r=Math.abs(u-b)<=m,o=Math.abs(d-y)<=m,a=Math.abs(l-g)<=m,s=Math.abs(c-v)<=m,r&&(n.position.top=i._convertPositionTo("relative",{top:u,left:0}).top),o&&(n.position.top=i._convertPositionTo("relative",{top:d-i.helperProportions.height,left:0}).top),a&&(n.position.left=i._convertPositionTo("relative",{top:0,left:l}).left),s&&(n.position.left=i._convertPositionTo("relative",{top:0,left:c-i.helperProportions.width}).left)),!i.snapElements[h].snapping&&(r||o||a||s||p)&&i.options.snap.snap&&i.options.snap.snap.call(i.element,t,e.extend(i._uiHash(),{snapItem:i.snapElements[h].item})),i.snapElements[h].snapping=r||o||a||s||p)}}),e.ui.plugin.add("draggable","stack",{start:function(t,n,i){var r,o=i.options,a=e.makeArray(e(o.stack)).sort(function(t,n){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(n).css("zIndex"),10)||0)});a.length&&(r=parseInt(e(a[0]).css("zIndex"),10)||0,e(a).each(function(t){e(this).css("zIndex",r+t)}),this.css("zIndex",r+a.length))}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,n,i){var r=e(n.helper),o=i.options;r.css("zIndex")&&(o._zIndex=r.css("zIndex")),r.css("zIndex",o.zIndex)},stop:function(t,n,i){var r=i.options;r._zIndex&&e(n.helper).css("zIndex",r._zIndex)}});e.ui.draggable;e.widget("ui.resizable",e.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(e){return parseFloat(e)||0},_isNumber:function(e){return!isNaN(parseFloat(e))},_hasScroll:function(t,n){if("hidden"===e(t).css("overflow"))return!1;var i=n&&"left"===n?"scrollLeft":"scrollTop",r=!1;return t[i]>0||(t[i]=1,r=t[i]>0,t[i]=0,r)},_create:function(){var t,n=this.options,i=this;this._addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!n.aspectRatio,aspectRatio:n.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:n.helper||n.ghost||n.animate?n.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(e("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),n.autoHide&&e(this.element).on("mouseenter",function(){n.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){n.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t,n=function(t){e(t).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(n(this.element),t=this.element,this.originalElement.css({position:t.css("position"),width:t.outerWidth(),height:t.outerHeight(),top:t.css("top"),left:t.css("left")}).insertAfter(t),t.remove()),this.originalElement.css("resize",this.originalResizeStyle),n(this.originalElement),this},_setOption:function(e,t){switch(this._super(e,t),e){case"handles":this._removeHandles(),this._setupHandles()}},_setupHandles:function(){var t,n,i,r,o,a=this.options,s=this;if(this.handles=a.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=e(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},n=0;n<i.length;n++)r="ui-resizable-"+(t=e.trim(i[n])),o=e("<div>"),this._addClass(o,"ui-resizable-handle "+r),o.css({zIndex:a.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.append(o);this._renderAxis=function(t){var n,i,r,o;t=t||this.element;for(n in this.handles)this.handles[n].constructor===String?this.handles[n]=this.element.children(this.handles[n]).first().show():(this.handles[n].jquery||this.handles[n].nodeType)&&(this.handles[n]=e(this.handles[n]),this._on(this.handles[n],{mousedown:s._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=e(this.handles[n],this.element),o=/sw|ne|nw|se|n|s/.test(n)?i.outerHeight():i.outerWidth(),r=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join(""),t.css(r,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[n])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){s.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),s.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(t){var n,i,r=!1;for(n in this.handles)((i=e(this.handles[n])[0])===t.target||e.contains(i,t.target))&&(r=!0);return!this.options.disabled&&r},_mouseStart:function(t){var n,i,r,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),n=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),o.containment&&(n+=e(o.containment).scrollLeft()||0,i+=e(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:n,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:n,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,r=e(".ui-resizable-"+this.axis).css("cursor"),e("body").css("cursor","auto"===r?this.axis+"-resize":r),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var n,i,r=this.originalMousePosition,o=this.axis,a=t.pageX-r.left||0,s=t.pageY-r.top||0,l=this._change[o];return this._updatePrevProperties(),!!l&&(n=l.apply(this,[t,a,s]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(n=this._updateRatio(n,t)),n=this._respectSize(n,t),this._updateCache(n),this._propagate("resize",t),i=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),e.isEmptyObject(i)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges()),!1)},_mouseStop:function(t){this.resizing=!1;var n,i,r,o,a,s,l,c=this.options,u=this;return this._helper&&(r=(i=(n=this._proportionallyResizeElements).length&&/textarea/i.test(n[0].nodeName))&&this._hasScroll(n[0],"left")?0:u.sizeDiff.height,o=i?0:u.sizeDiff.width,a={width:u.helper.width()-o,height:u.helper.height()-r},s=parseFloat(u.element.css("left"))+(u.position.left-u.originalPosition.left)||null,l=parseFloat(u.element.css("top"))+(u.position.top-u.originalPosition.top)||null,c.animate||this.element.css(e.extend(a,{top:l,left:s})),u.helper.height(u.size.height),u.helper.width(u.size.width),this._helper&&!c.animate&&this._proportionallyResize()),e("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var e={};return this.position.top!==this.prevPosition.top&&(e.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(e.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(e.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(e.height=this.size.height+"px"),this.helper.css(e),e},_updateVirtualBoundaries:function(e){var t,n,i,r,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||e)&&(t=o.minHeight*this.aspectRatio,i=o.minWidth/this.aspectRatio,n=o.maxHeight*this.aspectRatio,r=o.maxWidth/this.aspectRatio,t>o.minWidth&&(o.minWidth=t),i>o.minHeight&&(o.minHeight=i),n<o.maxWidth&&(o.maxWidth=n),r<o.maxHeight&&(o.maxHeight=r)),this._vBoundaries=o},_updateCache:function(e){this.offset=this.helper.offset(),this._isNumber(e.left)&&(this.position.left=e.left),this._isNumber(e.top)&&(this.position.top=e.top),this._isNumber(e.height)&&(this.size.height=e.height),this._isNumber(e.width)&&(this.size.width=e.width)},_updateRatio:function(e){var t=this.position,n=this.size,i=this.axis;return this._isNumber(e.height)?e.width=e.height*this.aspectRatio:this._isNumber(e.width)&&(e.height=e.width/this.aspectRatio),"sw"===i&&(e.left=t.left+(n.width-e.width),e.top=null),"nw"===i&&(e.top=t.top+(n.height-e.height),e.left=t.left+(n.width-e.width)),e},_respectSize:function(e){var t=this._vBoundaries,n=this.axis,i=this._isNumber(e.width)&&t.maxWidth&&t.maxWidth<e.width,r=this._isNumber(e.height)&&t.maxHeight&&t.maxHeight<e.height,o=this._isNumber(e.width)&&t.minWidth&&t.minWidth>e.width,a=this._isNumber(e.height)&&t.minHeight&&t.minHeight>e.height,s=this.originalPosition.left+this.originalSize.width,l=this.originalPosition.top+this.originalSize.height,c=/sw|nw|w/.test(n),u=/nw|ne|n/.test(n);return o&&(e.width=t.minWidth),a&&(e.height=t.minHeight),i&&(e.width=t.maxWidth),r&&(e.height=t.maxHeight),o&&c&&(e.left=s-t.minWidth),i&&c&&(e.left=s-t.maxWidth),a&&u&&(e.top=l-t.minHeight),r&&u&&(e.top=l-t.maxHeight),e.width||e.height||e.left||!e.top?e.width||e.height||e.top||!e.left||(e.left=null):e.top=null,e},_getPaddingPlusBorderDimensions:function(e){for(var t=0,n=[],i=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],r=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];t<4;t++)n[t]=parseFloat(i[t])||0,n[t]+=parseFloat(r[t])||0;return{height:n[0]+n[2],width:n[1]+n[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e,t=0,n=this.helper||this.element;t<this._proportionallyResizeElements.length;t++)e=this._proportionallyResizeElements[t],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(e)),e.css({height:n.height()-this.outerDimensions.height||0,width:n.width()-this.outerDimensions.width||0})},_renderProxy:function(){var t=this.element,n=this.options;this.elementOffset=t.offset(),this._helper?(this.helper=this.helper||e("<div style='overflow:hidden;'></div>"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(e,t){return{width:this.originalSize.width+t}},w:function(e,t){var n=this.originalSize;return{left:this.originalPosition.left+t,width:n.width-t}},n:function(e,t,n){var i=this.originalSize;return{top:this.originalPosition.top+n,height:i.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,i){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,i]))},sw:function(t,n,i){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,i]))},ne:function(t,n,i){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,i]))},nw:function(t,n,i){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,i]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),"resize"!==t&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","animate",{stop:function(t){var n=e(this).resizable("instance"),i=n.options,r=n._proportionallyResizeElements,o=r.length&&/textarea/i.test(r[0].nodeName),a=o&&n._hasScroll(r[0],"left")?0:n.sizeDiff.height,s=o?0:n.sizeDiff.width,l={width:n.size.width-s,height:n.size.height-a},c=parseFloat(n.element.css("left"))+(n.position.left-n.originalPosition.left)||null,u=parseFloat(n.element.css("top"))+(n.position.top-n.originalPosition.top)||null;n.element.animate(e.extend(l,u&&c?{top:u,left:c}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var i={width:parseFloat(n.element.css("width")),height:parseFloat(n.element.css("height")),top:parseFloat(n.element.css("top")),left:parseFloat(n.element.css("left"))};r&&r.length&&e(r[0]).css({width:i.width,height:i.height}),n._updateCache(i),n._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(){var t,n,i,r,o,a,s,l=e(this).resizable("instance"),c=l.options,u=l.element,d=c.containment,h=d instanceof e?d.get(0):/parent/.test(d)?u.parent().get(0):d;h&&(l.containerElement=e(h),/document/.test(d)||d===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}):(t=e(h),n=[],e(["Top","Right","Left","Bottom"]).each(function(e,i){n[e]=l._num(t.css("padding"+i))}),l.containerOffset=t.offset(),l.containerPosition=t.position(),l.containerSize={height:t.innerHeight()-n[3],width:t.innerWidth()-n[1]},i=l.containerOffset,r=l.containerSize.height,o=l.containerSize.width,a=l._hasScroll(h,"left")?h.scrollWidth:o,s=l._hasScroll(h)?h.scrollHeight:r,l.parentData={element:h,left:i.left,top:i.top,width:a,height:s}))},resize:function(t){var n,i,r,o,a=e(this).resizable("instance"),s=a.options,l=a.containerOffset,c=a.position,u=a._aspectRatio||t.shiftKey,d={top:0,left:0},h=a.containerElement,p=!0;h[0]!==document&&/static/.test(h.css("position"))&&(d=l),c.left<(a._helper?l.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-l.left:a.position.left-d.left),u&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=s.helper?l.left:0),c.top<(a._helper?l.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-l.top:a.position.top),u&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?l.top:0),r=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),r&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),n=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-d.left:a.offset.left-l.left)),i=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-d.top:a.offset.top-l.top)),n+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-n,u&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),i+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-i,u&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var t=e(this).resizable("instance"),n=t.options,i=t.containerOffset,r=t.containerPosition,o=t.containerElement,a=e(t.helper),s=a.offset(),l=a.outerWidth()-t.sizeDiff.width,c=a.outerHeight()-t.sizeDiff.height;t._helper&&!n.animate&&/relative/.test(o.css("position"))&&e(this).css({left:s.left-r.left-i.left,width:l,height:c}),t._helper&&!n.animate&&/static/.test(o.css("position"))&&e(this).css({left:s.left-r.left-i.left,width:l,height:c})}}),e.ui.plugin.add("resizable","alsoResize",{start:function(){var t=e(this).resizable("instance").options;e(t.alsoResize).each(function(){var t=e(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,n){var i=e(this).resizable("instance"),r=i.options,o=i.originalSize,a=i.originalPosition,s={height:i.size.height-o.height||0,width:i.size.width-o.width||0,top:i.position.top-a.top||0,left:i.position.left-a.left||0};e(r.alsoResize).each(function(){var t=e(this),i=e(this).data("ui-resizable-alsoresize"),r={},o=t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var n=(i[t]||0)+(s[t]||0);n&&n>=0&&(r[t]=n||null)}),t.css(r)})},stop:function(){e(this).removeData("ui-resizable-alsoresize")}}),e.ui.plugin.add("resizable","ghost",{start:function(){var t=e(this).resizable("instance"),n=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:n.height,width:n.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==e.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=e(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=e(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(){var t,n=e(this).resizable("instance"),i=n.options,r=n.size,o=n.originalSize,a=n.originalPosition,s=n.axis,l="number"==typeof i.grid?[i.grid,i.grid]:i.grid,c=l[0]||1,u=l[1]||1,d=Math.round((r.width-o.width)/c)*c,h=Math.round((r.height-o.height)/u)*u,p=o.width+d,f=o.height+h,m=i.maxWidth&&i.maxWidth<p,g=i.maxHeight&&i.maxHeight<f,v=i.minWidth&&i.minWidth>p,b=i.minHeight&&i.minHeight>f;i.grid=l,v&&(p+=c),b&&(f+=u),m&&(p-=c),g&&(f-=u),/^(se|s|e)$/.test(s)?(n.size.width=p,n.size.height=f):/^(ne)$/.test(s)?(n.size.width=p,n.size.height=f,n.position.top=a.top-h):/^(sw)$/.test(s)?(n.size.width=p,n.size.height=f,n.position.left=a.left-d):((f-u<=0||p-c<=0)&&(t=n._getPaddingPlusBorderDimensions(this)),f-u>0?(n.size.height=f,n.position.top=a.top-h):(f=u-t.height,n.size.height=f,n.position.top=a.top+o.height-f),p-c>0?(n.size.width=p,n.position.left=a.left-d):(p=c-t.width,n.size.width=p,n.position.left=a.left+o.width-p))}});e.ui.resizable;e.widget("ui.dialog",{version:"1.12.1",options:{appendTo:"body",autoOpen:!0,buttons:[],classes:{"ui-dialog":"ui-corner-all","ui-dialog-titlebar":"ui-corner-all"},closeOnEscape:!0,closeText:"Close",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},resizableRelatedOptions:{maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),null==this.options.title&&null!=this.originalTitle&&(this.options.title=this.originalTitle),this.options.disabled&&(this.options.disabled=!1),this._createWrapper(),this.element.show().removeAttr("title").appendTo(this.uiDialog),this._addClass("ui-dialog-content","ui-widget-content"),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1,this._trackFocus()},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._untrackInstance(),this._destroyOverlay(),this.element.removeUniqueId().css(this.originalCss).detach(),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),(e=t.parent.children().eq(t.index)).length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var n=this;this._isOpen&&!1!==this._trigger("beforeClose",t)&&(this._isOpen=!1,this._focusedElement=null,this._destroyOverlay(),this._untrackInstance(),this.opener.filter(":focusable").trigger("focus").length||e.ui.safeBlur(e.ui.safeActiveElement(this.document[0])),this._hide(this.uiDialog,this.options.hide,function(){n._trigger("close",t)}))},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(t,n){var i=!1,r=this.uiDialog.siblings(".ui-front:visible").map(function(){return+e(this).css("z-index")}).get(),o=Math.max.apply(null,r);return o>=+this.uiDialog.css("z-index")&&(this.uiDialog.css("z-index",o+1),i=!0),i&&!n&&this._trigger("focus",t),i},open:function(){var t=this;this._isOpen?this._moveToTop()&&this._focusTabbable():(this._isOpen=!0,this.opener=e(e.ui.safeActiveElement(this.document[0])),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this.overlay&&this.overlay.css("z-index",this.uiDialog.css("z-index")-1),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._makeFocusTarget(),this._trigger("open"))},_focusTabbable:function(){var e=this._focusedElement;e||(e=this.element.find("[autofocus]")),e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).trigger("focus")},_keepFocus:function(t){function n(){var t=e.ui.safeActiveElement(this.document[0]);this.uiDialog[0]===t||e.contains(this.uiDialog[0],t)||this._focusTabbable()}t.preventDefault(),n.call(this),this._delay(n)},_createWrapper:function(){this.uiDialog=e("<div>").hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._addClass(this.uiDialog,"ui-dialog","ui-widget ui-widget-content ui-front"),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE)return t.preventDefault(),void this.close(t);if(t.keyCode===e.ui.keyCode.TAB&&!t.isDefaultPrevented()){var n=this.uiDialog.find(":tabbable"),i=n.filter(":first"),r=n.filter(":last");t.target!==r[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==i[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){r.trigger("focus")}),t.preventDefault()):(this._delay(function(){i.trigger("focus")}),t.preventDefault())}},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("<div>"),this._addClass(this.uiDialogTitlebar,"ui-dialog-titlebar","ui-widget-header ui-helper-clearfix"),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.trigger("focus")}}),this.uiDialogTitlebarClose=e("<button type='button'></button>").button({label:e("<a>").text(this.options.closeText).html(),icon:"ui-icon-closethick",showLabel:!1}).appendTo(this.uiDialogTitlebar),this._addClass(this.uiDialogTitlebarClose,"ui-dialog-titlebar-close"),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("<span>").uniqueId().prependTo(this.uiDialogTitlebar),this._addClass(t,"ui-dialog-title"),this._title(t),this.uiDialogTitlebar.prependTo(this.uiDialog),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title?e.text(this.options.title):e.html("&#160;")},_createButtonPane:function(){this.uiDialogButtonPane=e("<div>"),this._addClass(this.uiDialogButtonPane,"ui-dialog-buttonpane","ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("<div>").appendTo(this.uiDialogButtonPane),this._addClass(this.uiButtonSet,"ui-dialog-buttonset"),this._createButtons()},_createButtons:function(){var t=this,n=this.options.buttons;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),e.isEmptyObject(n)||e.isArray(n)&&!n.length?this._removeClass(this.uiDialog,"ui-dialog-buttons"):(e.each(n,function(n,i){var r,o;i=e.isFunction(i)?{click:i,text:n}:i,i=e.extend({type:"button"},i),r=i.click,o={icon:i.icon,iconPosition:i.iconPosition,showLabel:i.showLabel,icons:i.icons,text:i.text},delete i.click,delete i.icon,delete i.iconPosition,delete i.showLabel,delete i.icons,"boolean"==typeof i.text&&delete i.text,e("<button></button>",i).button(o).appendTo(t.uiButtonSet).on("click",function(){r.apply(t.element[0],arguments)})}),this._addClass(this.uiDialog,"ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog))},_makeDraggable:function(){function t(e){return{position:e.position,offset:e.offset}}var n=this,i=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(i,r){n._addClass(e(this),"ui-dialog-dragging"),n._blockFrames(),n._trigger("dragStart",i,t(r))},drag:function(e,i){n._trigger("drag",e,t(i))},stop:function(r,o){var a=o.offset.left-n.document.scrollLeft(),s=o.offset.top-n.document.scrollTop();i.position={my:"left top",at:"left"+(a>=0?"+":"")+a+" top"+(s>=0?"+":"")+s,of:n.window},n._removeClass(e(this),"ui-dialog-dragging"),n._unblockFrames(),n._trigger("dragStop",r,t(o))}})},_makeResizable:function(){function t(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var n=this,i=this.options,r=i.resizable,o=this.uiDialog.css("position"),a="string"==typeof r?r:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:i.maxWidth,maxHeight:i.maxHeight,minWidth:i.minWidth,minHeight:this._minHeight(),handles:a,start:function(i,r){n._addClass(e(this),"ui-dialog-resizing"),n._blockFrames(),n._trigger("resizeStart",i,t(r))},resize:function(e,i){n._trigger("resize",e,t(i))},stop:function(r,o){var a=n.uiDialog.offset(),s=a.left-n.document.scrollLeft(),l=a.top-n.document.scrollTop();i.height=n.uiDialog.height(),i.width=n.uiDialog.width(),i.position={my:"left top",at:"left"+(s>=0?"+":"")+s+" top"+(l>=0?"+":"")+l,of:n.window},n._removeClass(e(this),"ui-dialog-resizing"),n._unblockFrames(),n._trigger("resizeStop",r,t(o))}}).css("position",o)},_trackFocus:function(){this._on(this.widget(),{focusin:function(t){this._makeFocusTarget(),this._focusedElement=e(t.target)}})},_makeFocusTarget:function(){this._untrackInstance(),this._trackingInstances().unshift(this)},_untrackInstance:function(){var t=this._trackingInstances(),n=e.inArray(this,t);-1!==n&&t.splice(n,1)},_trackingInstances:function(){var e=this.document.data("ui-dialog-instances");return e||(e=[],this.document.data("ui-dialog-instances",e)),e},_minHeight:function(){var e=this.options;return"auto"===e.height?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(t){var n=this,i=!1,r={};e.each(t,function(e,t){n._setOption(e,t),e in n.sizeRelatedOptions&&(i=!0),e in n.resizableRelatedOptions&&(r[e]=t)}),i&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",r)},_setOption:function(t,n){var i,r,o=this.uiDialog;"disabled"!==t&&(this._super(t,n),"appendTo"===t&&this.uiDialog.appendTo(this._appendTo()),"buttons"===t&&this._createButtons(),"closeText"===t&&this.uiDialogTitlebarClose.button({label:e("<a>").text(""+this.options.closeText).html()}),"draggable"===t&&((i=o.is(":data(ui-draggable)"))&&!n&&o.draggable("destroy"),!i&&n&&this._makeDraggable()),"position"===t&&this._position(),"resizable"===t&&((r=o.is(":data(ui-resizable)"))&&!n&&o.resizable("destroy"),r&&"string"==typeof n&&o.resizable("option","handles",n),r||!1===n||this._makeResizable()),"title"===t&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var e,t,n,i=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),i.minWidth>i.width&&(i.width=i.minWidth),e=this.uiDialog.css({height:"auto",width:i.width}).outerHeight(),t=Math.max(0,i.minHeight-e),n="number"==typeof i.maxHeight?Math.max(0,i.maxHeight-e):"none","auto"===i.height?this.element.css({minHeight:t,maxHeight:n,height:"auto"}):this.element.height(Math.max(0,i.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("<div>").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return!!e(t.target).closest(".ui-dialog").length||!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var t=!0;this._delay(function(){t=!1}),this.document.data("ui-dialog-overlays")||this._on(this.document,{focusin:function(e){t||this._allowInteraction(e)||(e.preventDefault(),this._trackingInstances()[0]._focusTabbable())}}),this.overlay=e("<div>").appendTo(this._appendTo()),this._addClass(this.overlay,null,"ui-widget-overlay ui-front"),this._on(this.overlay,{mousedown:"_keepFocus"}),this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)}},_destroyOverlay:function(){if(this.options.modal&&this.overlay){var e=this.document.data("ui-dialog-overlays")-1;e?this.document.data("ui-dialog-overlays",e):(this._off(this.document,"focusin"),this.document.removeData("ui-dialog-overlays")),this.overlay.remove(),this.overlay=null}}}),!1!==e.uiBackCompat&&e.widget("ui.dialog",e.ui.dialog,{options:{dialogClass:""},_createWrapper:function(){this._super(),this.uiDialog.addClass(this.options.dialogClass)},_setOption:function(e,t){"dialogClass"===e&&this.uiDialog.removeClass(this.options.dialogClass).addClass(t),this._superApply(arguments)}});e.ui.dialog;e.widget("ui.droppable",{version:"1.12.1",widgetEventPrefix:"drop",options:{accept:"*",addClasses:!0,greedy:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var t,n=this.options,i=n.accept;this.isover=!1,this.isout=!0,this.accept=e.isFunction(i)?i:function(e){return e.is(i)},this.proportions=function(){if(!arguments.length)return t||(t={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight});t=arguments[0]},this._addToManager(n.scope),n.addClasses&&this._addClass("ui-droppable")},_addToManager:function(t){e.ui.ddmanager.droppables[t]=e.ui.ddmanager.droppables[t]||[],e.ui.ddmanager.droppables[t].push(this)},_splice:function(e){for(var t=0;t<e.length;t++)e[t]===this&&e.splice(t,1)},_destroy:function(){var t=e.ui.ddmanager.droppables[this.options.scope];this._splice(t)},_setOption:function(t,n){if("accept"===t)this.accept=e.isFunction(n)?n:function(e){return e.is(n)};else if("scope"===t){var i=e.ui.ddmanager.droppables[this.options.scope];this._splice(i),this._addToManager(n)}this._super(t,n)},_activate:function(t){var n=e.ui.ddmanager.current;this._addActiveClass(),n&&this._trigger("activate",t,this.ui(n))},_deactivate:function(t){var n=e.ui.ddmanager.current;this._removeActiveClass(),n&&this._trigger("deactivate",t,this.ui(n))},_over:function(t){var n=e.ui.ddmanager.current;n&&(n.currentItem||n.element)[0]!==this.element[0]&&this.accept.call(this.element[0],n.currentItem||n.element)&&(this._addHoverClass(),this._trigger("over",t,this.ui(n)))},_out:function(t){var n=e.ui.ddmanager.current;n&&(n.currentItem||n.element)[0]!==this.element[0]&&this.accept.call(this.element[0],n.currentItem||n.element)&&(this._removeHoverClass(),this._trigger("out",t,this.ui(n)))},_drop:function(t,n){var i=n||e.ui.ddmanager.current,r=!1;return!(!i||(i.currentItem||i.element)[0]===this.element[0])&&(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var n=e(this).droppable("instance");if(n.options.greedy&&!n.options.disabled&&n.options.scope===i.options.scope&&n.accept.call(n.element[0],i.currentItem||i.element)&&m(i,e.extend(n,{offset:n.element.offset()}),n.options.tolerance,t))return r=!0,!1}),!r&&(!!this.accept.call(this.element[0],i.currentItem||i.element)&&(this._removeActiveClass(),this._removeHoverClass(),this._trigger("drop",t,this.ui(i)),this.element)))},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}},_addHoverClass:function(){this._addClass("ui-droppable-hover")},_removeHoverClass:function(){this._removeClass("ui-droppable-hover")},_addActiveClass:function(){this._addClass("ui-droppable-active")},_removeActiveClass:function(){this._removeClass("ui-droppable-active")}});var m=e.ui.intersect=function(){function e(e,t,n){return e>=t&&e<t+n}return function(t,n,i,r){if(!n.offset)return!1;var o=(t.positionAbs||t.position.absolute).left+t.margins.left,a=(t.positionAbs||t.position.absolute).top+t.margins.top,s=o+t.helperProportions.width,l=a+t.helperProportions.height,c=n.offset.left,u=n.offset.top,d=c+n.proportions().width,h=u+n.proportions().height;switch(i){case"fit":return c<=o&&s<=d&&u<=a&&l<=h;case"intersect":return c<o+t.helperProportions.width/2&&s-t.helperProportions.width/2<d&&u<a+t.helperProportions.height/2&&l-t.helperProportions.height/2<h;case"pointer":return e(r.pageY,u,n.proportions().height)&&e(r.pageX,c,n.proportions().width);case"touch":return(a>=u&&a<=h||l>=u&&l<=h||a<u&&l>h)&&(o>=c&&o<=d||s>=c&&s<=d||o<c&&s>d);default:return!1}}}();e.ui.ddmanager={current:null,droppables:{default:[]},prepareOffsets:function(t,n){var i,r,o=e.ui.ddmanager.droppables[t.options.scope]||[],a=n?n.type:null,s=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();e:for(i=0;i<o.length;i++)if(!(o[i].options.disabled||t&&!o[i].accept.call(o[i].element[0],t.currentItem||t.element))){for(r=0;r<s.length;r++)if(s[r]===o[i].element[0]){o[i].proportions().height=0;continue e}o[i].visible="none"!==o[i].element.css("display"),o[i].visible&&("mousedown"===a&&o[i]._activate.call(o[i],n),o[i].offset=o[i].element.offset(),o[i].proportions({width:o[i].element[0].offsetWidth,height:o[i].element[0].offsetHeight}))}},drop:function(t,n){var i=!1;return e.each((e.ui.ddmanager.droppables[t.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&m(t,this,this.options.tolerance,n)&&(i=this._drop.call(this,n)||i),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,n)))}),i},dragStart:function(t,n){t.element.parentsUntil("body").on("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,n)})},drag:function(t,n){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,n),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var i,r,o,a=m(t,this,this.options.tolerance,n),s=!a&&this.isover?"isout":a&&!this.isover?"isover":null;s&&(this.options.greedy&&(r=this.options.scope,(o=this.element.parents(":data(ui-droppable)").filter(function(){return e(this).droppable("instance").options.scope===r})).length&&((i=e(o[0]).droppable("instance")).greedyChild="isover"===s)),i&&"isover"===s&&(i.isover=!1,i.isout=!0,i._out.call(i,n)),this[s]=!0,this["isout"===s?"isover":"isout"]=!1,this["isover"===s?"_over":"_out"].call(this,n),i&&"isout"===s&&(i.isout=!1,i.isover=!0,i._over.call(i,n)))}})},dragStop:function(t,n){t.element.parentsUntil("body").off("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,n)}},!1!==e.uiBackCompat&&e.widget("ui.droppable",e.ui.droppable,{options:{hoverClass:!1,activeClass:!1},_addActiveClass:function(){this._super(),this.options.activeClass&&this.element.addClass(this.options.activeClass)},_removeActiveClass:function(){this._super(),this.options.activeClass&&this.element.removeClass(this.options.activeClass)},_addHoverClass:function(){this._super(),this.options.hoverClass&&this.element.addClass(this.options.hoverClass)},_removeHoverClass:function(){this._super(),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass)}});e.ui.droppable,e.widget("ui.progressbar",{version:"1.12.1",options:{classes:{"ui-progressbar":"ui-corner-all","ui-progressbar-value":"ui-corner-left","ui-progressbar-complete":"ui-corner-right"},max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue(),this.element.attr({role:"progressbar","aria-valuemin":this.min}),this._addClass("ui-progressbar","ui-widget ui-widget-content"),this.valueDiv=e("<div>").appendTo(this.element),this._addClass(this.valueDiv,"ui-progressbar-value","ui-widget-header"),this._refreshValue()},_destroy:function(){this.element.removeAttr("role aria-valuemin aria-valuemax aria-valuenow"),this.valueDiv.remove()},value:function(e){if(void 0===e)return this.options.value;this.options.value=this._constrainedValue(e),this._refreshValue()},_constrainedValue:function(e){return void 0===e&&(e=this.options.value),this.indeterminate=!1===e,"number"!=typeof e&&(e=0),!this.indeterminate&&Math.min(this.options.max,Math.max(this.min,e))},_setOptions:function(e){var t=e.value;delete e.value,this._super(e),this.options.value=this._constrainedValue(t),this._refreshValue()},_setOption:function(e,t){"max"===e&&(t=Math.max(this.min,t)),this._super(e,t)},_setOptionDisabled:function(e){this._super(e),this.element.attr("aria-disabled",e),this._toggleClass(null,"ui-state-disabled",!!e)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var t=this.options.value,n=this._percentage();this.valueDiv.toggle(this.indeterminate||t>this.min).width(n.toFixed(0)+"%"),this._toggleClass(this.valueDiv,"ui-progressbar-complete",null,t===this.options.max)._toggleClass("ui-progressbar-indeterminate",null,this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=e("<div>").appendTo(this.valueDiv),this._addClass(this.overlayDiv,"ui-progressbar-overlay"))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":t}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==t&&(this.oldValue=t,this._trigger("change")),t===this.options.max&&this._trigger("complete")}}),e.widget("ui.selectable",e.ui.mouse,{version:"1.12.1",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var t=this;this._addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){t.elementPos=e(t.element[0]).offset(),t.selectees=e(t.options.filter,t.element[0]),t._addClass(t.selectees,"ui-selectee"),t.selectees.each(function(){var n=e(this),i=n.offset(),r={left:i.left-t.elementPos.left,top:i.top-t.elementPos.top};e.data(this,"selectable-item",{element:this,$element:n,left:r.left,top:r.top,right:r.left+n.outerWidth(),bottom:r.top+n.outerHeight(),startselected:!1,selected:n.hasClass("ui-selected"),selecting:n.hasClass("ui-selecting"),unselecting:n.hasClass("ui-unselecting")})})},this.refresh(),this._mouseInit(),this.helper=e("<div>"),this._addClass(this.helper,"ui-selectable-helper")},_destroy:function(){this.selectees.removeData("selectable-item"),this._mouseDestroy()},_mouseStart:function(t){var n=this,i=this.options;this.opos=[t.pageX,t.pageY],this.elementPos=e(this.element[0]).offset(),this.options.disabled||(this.selectees=e(i.filter,this.element[0]),this._trigger("start",t),e(i.appendTo).append(this.helper),this.helper.css({left:t.pageX,top:t.pageY,width:0,height:0}),i.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var i=e.data(this,"selectable-item");i.startselected=!0,t.metaKey||t.ctrlKey||(n._removeClass(i.$element,"ui-selected"),i.selected=!1,n._addClass(i.$element,"ui-unselecting"),i.unselecting=!0,n._trigger("unselecting",t,{unselecting:i.element}))}),e(t.target).parents().addBack().each(function(){var i,r=e.data(this,"selectable-item");if(r)return i=!t.metaKey&&!t.ctrlKey||!r.$element.hasClass("ui-selected"),n._removeClass(r.$element,i?"ui-unselecting":"ui-selected")._addClass(r.$element,i?"ui-selecting":"ui-unselecting"),r.unselecting=!i,r.selecting=i,r.selected=i,i?n._trigger("selecting",t,{selecting:r.element}):n._trigger("unselecting",t,{unselecting:r.element}),!1}))},_mouseDrag:function(t){if(this.dragged=!0,!this.options.disabled){var n,i=this,r=this.options,o=this.opos[0],a=this.opos[1],s=t.pageX,l=t.pageY;return o>s&&(n=s,s=o,o=n),a>l&&(n=l,l=a,a=n),this.helper.css({left:o,top:a,width:s-o,height:l-a}),this.selectees.each(function(){var n=e.data(this,"selectable-item"),c=!1,u={};n&&n.element!==i.element[0]&&(u.left=n.left+i.elementPos.left,u.right=n.right+i.elementPos.left,u.top=n.top+i.elementPos.top,u.bottom=n.bottom+i.elementPos.top,"touch"===r.tolerance?c=!(u.left>s||u.right<o||u.top>l||u.bottom<a):"fit"===r.tolerance&&(c=u.left>o&&u.right<s&&u.top>a&&u.bottom<l),c?(n.selected&&(i._removeClass(n.$element,"ui-selected"),n.selected=!1),n.unselecting&&(i._removeClass(n.$element,"ui-unselecting"),n.unselecting=!1),n.selecting||(i._addClass(n.$element,"ui-selecting"),n.selecting=!0,i._trigger("selecting",t,{selecting:n.element}))):(n.selecting&&((t.metaKey||t.ctrlKey)&&n.startselected?(i._removeClass(n.$element,"ui-selecting"),n.selecting=!1,i._addClass(n.$element,"ui-selected"),n.selected=!0):(i._removeClass(n.$element,"ui-selecting"),n.selecting=!1,n.startselected&&(i._addClass(n.$element,"ui-unselecting"),n.unselecting=!0),i._trigger("unselecting",t,{unselecting:n.element}))),n.selected&&(t.metaKey||t.ctrlKey||n.startselected||(i._removeClass(n.$element,"ui-selected"),n.selected=!1,i._addClass(n.$element,"ui-unselecting"),n.unselecting=!0,i._trigger("unselecting",t,{unselecting:n.element})))))}),!1}},_mouseStop:function(t){var n=this;return this.dragged=!1,e(".ui-unselecting",this.element[0]).each(function(){var i=e.data(this,"selectable-item");n._removeClass(i.$element,"ui-unselecting"),i.unselecting=!1,i.startselected=!1,n._trigger("unselected",t,{unselected:i.element})}),e(".ui-selecting",this.element[0]).each(function(){var i=e.data(this,"selectable-item");n._removeClass(i.$element,"ui-selecting")._addClass(i.$element,"ui-selected"),i.selecting=!1,i.selected=!0,i.startselected=!0,n._trigger("selected",t,{selected:i.element})}),this._trigger("stop",t),this.helper.remove(),!1}}),e.widget("ui.selectmenu",[e.ui.formResetMixin,{version:"1.12.1",defaultElement:"<select>",options:{appendTo:null,classes:{"ui-selectmenu-button-open":"ui-corner-top","ui-selectmenu-button-closed":"ui-corner-all"},disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:!1,change:null,close:null,focus:null,open:null,select:null},_create:function(){var t=this.element.uniqueId().attr("id");this.ids={element:t,button:t+"-button",menu:t+"-menu"},this._drawButton(),this._drawMenu(),this._bindFormResetHandler(),this._rendered=!1,this.menuItems=e()},_drawButton:function(){var t,n=this,i=this._parseOption(this.element.find("option:selected"),this.element[0].selectedIndex);this.labels=this.element.labels().attr("for",this.ids.button),this._on(this.labels,{click:function(e){this.button.focus(),e.preventDefault()}}),this.element.hide(),this.button=e("<span>",{tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true",title:this.element.attr("title")}).insertAfter(this.element),this._addClass(this.button,"ui-selectmenu-button ui-selectmenu-button-closed","ui-button ui-widget"),t=e("<span>").appendTo(this.button),this._addClass(t,"ui-selectmenu-icon","ui-icon "+this.options.icons.button),this.buttonItem=this._renderButtonItem(i).appendTo(this.button),!1!==this.options.width&&this._resizeButton(),this._on(this.button,this._buttonEvents),this.button.one("focusin",function(){n._rendered||n._refreshMenu()})},_drawMenu:function(){var t=this;this.menu=e("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu}),this.menuWrap=e("<div>").append(this.menu),this._addClass(this.menuWrap,"ui-selectmenu-menu","ui-front"),this.menuWrap.appendTo(this._appendTo()),this.menuInstance=this.menu.menu({classes:{"ui-menu":"ui-corner-bottom"},role:"listbox",select:function(e,n){e.preventDefault(),t._setSelection(),t._select(n.item.data("ui-selectmenu-item"),e)},focus:function(e,n){var i=n.item.data("ui-selectmenu-item");null!=t.focusIndex&&i.index!==t.focusIndex&&(t._trigger("focus",e,{item:i}),t.isOpen||t._select(i,e)),t.focusIndex=i.index,t.button.attr("aria-activedescendant",t.menuItems.eq(i.index).attr("id"))}}).menu("instance"),this.menuInstance._off(this.menu,"mouseleave"),this.menuInstance._closeOnDocumentClick=function(){return!1},this.menuInstance._isDivider=function(){return!1}},refresh:function(){this._refreshMenu(),this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(this._getSelectedItem().data("ui-selectmenu-item")||{})),null===this.options.width&&this._resizeButton()},_refreshMenu:function(){var e,t=this.element.find("option");this.menu.empty(),this._parseOptions(t),this._renderMenu(this.menu,this.items),this.menuInstance.refresh(),this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup").find(".ui-menu-item-wrapper"),this._rendered=!0,t.length&&(e=this._getSelectedItem(),this.menuInstance.focus(null,e),this._setAria(e.data("ui-selectmenu-item")),this._setOption("disabled",this.element.prop("disabled")))},open:function(e){this.options.disabled||(this._rendered?(this._removeClass(this.menu.find(".ui-state-active"),null,"ui-state-active"),this.menuInstance.focus(null,this._getSelectedItem())):this._refreshMenu(),this.menuItems.length&&(this.isOpen=!0,this._toggleAttr(),this._resizeMenu(),this._position(),this._on(this.document,this._documentClick),this._trigger("open",e)))},_position:function(){this.menuWrap.position(e.extend({of:this.button},this.options.position))},close:function(e){this.isOpen&&(this.isOpen=!1,this._toggleAttr(),this.range=null,this._off(this.document),this._trigger("close",e))},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderButtonItem:function(t){var n=e("<span>");return this._setText(n,t.label),this._addClass(n,"ui-selectmenu-text"),n},_renderMenu:function(t,n){var i=this,r="";e.each(n,function(n,o){var a;o.optgroup!==r&&(a=e("<li>",{text:o.optgroup}),i._addClass(a,"ui-selectmenu-optgroup","ui-menu-divider"+(o.element.parent("optgroup").prop("disabled")?" ui-state-disabled":"")),a.appendTo(t),r=o.optgroup),i._renderItemData(t,o)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-selectmenu-item",t)},_renderItem:function(t,n){var i=e("<li>"),r=e("<div>",{title:n.element.attr("title")});return n.disabled&&this._addClass(i,null,"ui-state-disabled"),this._setText(r,n.label),i.append(r).appendTo(t)},_setText:function(e,t){t?e.text(t):e.html("&#160;")},_move:function(e,t){var n,i,r=".ui-menu-item";this.isOpen?n=this.menuItems.eq(this.focusIndex).parent("li"):(n=this.menuItems.eq(this.element[0].selectedIndex).parent("li"),r+=":not(.ui-state-disabled)"),(i="first"===e||"last"===e?n["first"===e?"prevAll":"nextAll"](r).eq(-1):n[e+"All"](r).eq(0)).length&&this.menuInstance.focus(t,i)},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex).parent("li")},_toggle:function(e){this[this.isOpen?"close":"open"](e)},_setSelection:function(){var e;this.range&&(window.getSelection?((e=window.getSelection()).removeAllRanges(),e.addRange(this.range)):this.range.select(),this.button.focus())},_documentClick:{mousedown:function(t){this.isOpen&&(e(t.target).closest(".ui-selectmenu-menu, #"+e.ui.escapeSelector(this.ids.button)).length||this.close(t))}},_buttonEvents:{mousedown:function(){var e;window.getSelection?(e=window.getSelection()).rangeCount&&(this.range=e.getRangeAt(0)):this.range=document.selection.createRange()},click:function(e){this._setSelection(),this._toggle(e)},keydown:function(t){var n=!0;switch(t.keyCode){case e.ui.keyCode.TAB:case e.ui.keyCode.ESCAPE:this.close(t),n=!1;break;case e.ui.keyCode.ENTER:this.isOpen&&this._selectFocusedItem(t);break;case e.ui.keyCode.UP:t.altKey?this._toggle(t):this._move("prev",t);break;case e.ui.keyCode.DOWN:t.altKey?this._toggle(t):this._move("next",t);break;case e.ui.keyCode.SPACE:this.isOpen?this._selectFocusedItem(t):this._toggle(t);break;case e.ui.keyCode.LEFT:this._move("prev",t);break;case e.ui.keyCode.RIGHT:this._move("next",t);break;case e.ui.keyCode.HOME:case e.ui.keyCode.PAGE_UP:this._move("first",t);break;case e.ui.keyCode.END:case e.ui.keyCode.PAGE_DOWN:this._move("last",t);break;default:this.menu.trigger(t),n=!1}n&&t.preventDefault()}},_selectFocusedItem:function(e){var t=this.menuItems.eq(this.focusIndex).parent("li");t.hasClass("ui-state-disabled")||this._select(t.data("ui-selectmenu-item"),e)},_select:function(e,t){var n=this.element[0].selectedIndex;this.element[0].selectedIndex=e.index,this.buttonItem.replaceWith(this.buttonItem=this._renderButtonItem(e)),this._setAria(e),this._trigger("select",t,{item:e}),e.index!==n&&this._trigger("change",t,{item:e}),this.close(t)},_setAria:function(e){var t=this.menuItems.eq(e.index).attr("id");this.button.attr({"aria-labelledby":t,"aria-activedescendant":t}),this.menu.attr("aria-activedescendant",t)},_setOption:function(e,t){if("icons"===e){var n=this.button.find("span.ui-icon");this._removeClass(n,null,this.options.icons.button)._addClass(n,null,t.button)}this._super(e,t),"appendTo"===e&&this.menuWrap.appendTo(this._appendTo()),"width"===e&&this._resizeButton()},_setOptionDisabled:function(e){this._super(e),this.menuInstance.option("disabled",e),this.button.attr("aria-disabled",e),this._toggleClass(this.button,null,"ui-state-disabled",e),this.element.prop("disabled",e),e?(this.button.attr("tabindex",-1),this.close()):this.button.attr("tabindex",0)},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t&&t[0]||(t=this.element.closest(".ui-front, dialog")),t.length||(t=this.document[0].body),t},_toggleAttr:function(){this.button.attr("aria-expanded",this.isOpen),this._removeClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"closed":"open"))._addClass(this.button,"ui-selectmenu-button-"+(this.isOpen?"open":"closed"))._toggleClass(this.menuWrap,"ui-selectmenu-open",null,this.isOpen),this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var e=this.options.width;!1!==e?(null===e&&(e=this.element.show().outerWidth(),this.element.hide()),this.button.outerWidth(e)):this.button.css("width","")},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){var e=this._super();return e.disabled=this.element.prop("disabled"),e},_parseOptions:function(t){var n=this,i=[];t.each(function(t,r){i.push(n._parseOption(e(r),t))}),this.items=i},_parseOption:function(e,t){var n=e.parent("optgroup");return{element:e,index:t,value:e.val(),label:e.text(),optgroup:n.attr("label")||"",disabled:n.prop("disabled")||e.prop("disabled")}},_destroy:function(){this._unbindFormResetHandler(),this.menuWrap.remove(),this.button.remove(),this.element.show(),this.element.removeUniqueId(),this.labels.attr("for",this.ids.element)}}]),e.widget("ui.slider",e.ui.mouse,{version:"1.12.1",widgetEventPrefix:"slide",options:{animate:!1,classes:{"ui-slider":"ui-corner-all","ui-slider-handle":"ui-corner-all","ui-slider-range":"ui-corner-all ui-widget-header"},distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this._calculateNewMax(),this._addClass("ui-slider ui-slider-"+this.orientation,"ui-widget ui-widget-content"),this._refresh(),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var t,n,i=this.options,r=this.element.find(".ui-slider-handle"),o=[];for(n=i.values&&i.values.length||1,r.length>n&&(r.slice(n).remove(),r=r.slice(0,n)),t=r.length;t<n;t++)o.push("<span tabindex='0'></span>");this.handles=r.add(e(o.join("")).appendTo(this.element)),this._addClass(this.handles,"ui-slider-handle","ui-state-default"),this.handle=this.handles.eq(0),this.handles.each(function(t){e(this).data("ui-slider-handle-index",t).attr("tabIndex",0)})},_createRange:function(){var t=this.options;t.range?(!0===t.range&&(t.values?t.values.length&&2!==t.values.length?t.values=[t.values[0],t.values[0]]:e.isArray(t.values)&&(t.values=t.values.slice(0)):t.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?(this._removeClass(this.range,"ui-slider-range-min ui-slider-range-max"),this.range.css({left:"",bottom:""})):(this.range=e("<div>").appendTo(this.element),this._addClass(this.range,"ui-slider-range")),"min"!==t.range&&"max"!==t.range||this._addClass(this.range,"ui-slider-range-"+t.range)):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){this._off(this.handles),this._on(this.handles,this._handleEvents),this._hoverable(this.handles),this._focusable(this.handles)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this._mouseDestroy()},_mouseCapture:function(t){var n,i,r,o,a,s,l,c=this,u=this.options;return!u.disabled&&(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),n={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(n),r=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var n=Math.abs(i-c.values(t));(r>n||r===n&&(t===c._lastChangedValue||c.values(t)===u.min))&&(r=n,o=e(this),a=t)}),!1!==this._start(t,a)&&(this._mouseSliding=!0,this._handleIndex=a,this._addClass(o,null,"ui-state-active"),o.trigger("focus"),s=o.offset(),l=!e(t.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:t.pageX-s.left-o.width()/2,top:t.pageY-s.top-o.height()/2-(parseInt(o.css("borderTopWidth"),10)||0)-(parseInt(o.css("borderBottomWidth"),10)||0)+(parseInt(o.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,a,i),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},n=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,n),!1},_mouseStop:function(e){return this._removeClass(this.handles,null,"ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,n,i,r,o;return"horizontal"===this.orientation?(t=this.elementSize.width,n=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,n=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),(i=n/t)>1&&(i=1),i<0&&(i=0),"vertical"===this.orientation&&(i=1-i),r=this._valueMax()-this._valueMin(),o=this._valueMin()+i*r,this._trimAlignValue(o)},_uiHash:function(e,t,n){var i={handle:this.handles[e],handleIndex:e,value:void 0!==t?t:this.value()};return this._hasMultipleValues()&&(i.value=void 0!==t?t:this.values(e),i.values=n||this.values()),i},_hasMultipleValues:function(){return this.options.values&&this.options.values.length},_start:function(e,t){return this._trigger("start",e,this._uiHash(t))},_slide:function(e,t,n){var i,r=this.value(),o=this.values();this._hasMultipleValues()&&(i=this.values(t?0:1),r=this.values(t),2===this.options.values.length&&!0===this.options.range&&(n=0===t?Math.min(i,n):Math.max(i,n)),o[t]=n),n!==r&&!1!==this._trigger("slide",e,this._uiHash(t,n,o))&&(this._hasMultipleValues()?this.values(t,n):this.value(n))},_stop:function(e,t){this._trigger("stop",e,this._uiHash(t))},_change:function(e,t){this._keySliding||this._mouseSliding||(this._lastChangedValue=t,this._trigger("change",e,this._uiHash(t)))},value:function(e){return arguments.length?(this.options.value=this._trimAlignValue(e),this._refreshValue(),void this._change(null,0)):this._value()},values:function(t,n){var i,r,o;if(arguments.length>1)return this.options.values[t]=this._trimAlignValue(n),this._refreshValue(),void this._change(null,t);if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this._hasMultipleValues()?this._values(t):this.value();for(i=this.options.values,r=arguments[0],o=0;o<i.length;o+=1)i[o]=this._trimAlignValue(r[o]),this._change(null,o);this._refreshValue()},_setOption:function(t,n){var i,r=0;switch("range"===t&&!0===this.options.range&&("min"===n?(this.options.value=this._values(0),this.options.values=null):"max"===n&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),e.isArray(this.options.values)&&(r=this.options.values.length),this._super(t,n),t){case"orientation":this._detectOrientation(),this._removeClass("ui-slider-horizontal ui-slider-vertical")._addClass("ui-slider-"+this.orientation),this._refreshValue(),this.options.range&&this._refreshRange(n),this.handles.css("horizontal"===n?"bottom":"left","");break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),i=r-1;i>=0;i--)this._change(null,i);this._animateOff=!1;break;case"step":case"min":case"max":this._animateOff=!0,this._calculateNewMax(),this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_setOptionDisabled:function(e){this._super(e),this._toggleClass(null,"ui-state-disabled",!!e)},_value:function(){var e=this.options.value;return e=this._trimAlignValue(e)},_values:function(e){var t,n,i;if(arguments.length)return t=this.options.values[e],t=this._trimAlignValue(t);if(this._hasMultipleValues()){for(n=this.options.values.slice(),i=0;i<n.length;i+=1)n[i]=this._trimAlignValue(n[i]);return n}return[]},_trimAlignValue:function(e){if(e<=this._valueMin())return this._valueMin();if(e>=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,n=(e-this._valueMin())%t,i=e-n;return 2*Math.abs(n)>=t&&(i+=n>0?t:-t),parseFloat(i.toFixed(5))},_calculateNewMax:function(){var e=this.options.max,t=this._valueMin(),n=this.options.step;(e=Math.round((e-t)/n)*n+t)>this.options.max&&(e-=n),this.max=parseFloat(e.toFixed(this._precision()))},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return-1===n?0:t.length-n-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshRange:function(e){"vertical"===e&&this.range.css({width:"",left:""}),"horizontal"===e&&this.range.css({height:"",bottom:""})},_refreshValue:function(){var t,n,i,r,o,a=this.options.range,s=this.options,l=this,c=!this._animateOff&&s.animate,u={};this._hasMultipleValues()?this.handles.each(function(i){n=(l.values(i)-l._valueMin())/(l._valueMax()-l._valueMin())*100,u["horizontal"===l.orientation?"left":"bottom"]=n+"%",e(this).stop(1,1)[c?"animate":"css"](u,s.animate),!0===l.options.range&&("horizontal"===l.orientation?(0===i&&l.range.stop(1,1)[c?"animate":"css"]({left:n+"%"},s.animate),1===i&&l.range[c?"animate":"css"]({width:n-t+"%"},{queue:!1,duration:s.animate})):(0===i&&l.range.stop(1,1)[c?"animate":"css"]({bottom:n+"%"},s.animate),1===i&&l.range[c?"animate":"css"]({height:n-t+"%"},{queue:!1,duration:s.animate}))),t=n}):(i=this.value(),r=this._valueMin(),o=this._valueMax(),n=o!==r?(i-r)/(o-r)*100:0,u["horizontal"===this.orientation?"left":"bottom"]=n+"%",this.handle.stop(1,1)[c?"animate":"css"](u,s.animate),"min"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[c?"animate":"css"]({width:n+"%"},s.animate),"max"===a&&"horizontal"===this.orientation&&this.range.stop(1,1)[c?"animate":"css"]({width:100-n+"%"},s.animate),"min"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[c?"animate":"css"]({height:n+"%"},s.animate),"max"===a&&"vertical"===this.orientation&&this.range.stop(1,1)[c?"animate":"css"]({height:100-n+"%"},s.animate))},_handleEvents:{keydown:function(t){var n,i,r,o=e(t.target).data("ui-slider-handle-index");switch(t.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(t.preventDefault(),!this._keySliding&&(this._keySliding=!0,this._addClass(e(t.target),null,"ui-state-active"),!1===this._start(t,o)))return}switch(r=this.options.step,n=i=this._hasMultipleValues()?this.values(o):this.value(),t.keyCode){case e.ui.keyCode.HOME:i=this._valueMin();break;case e.ui.keyCode.END:i=this._valueMax();break;case e.ui.keyCode.PAGE_UP:i=this._trimAlignValue(n+(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.PAGE_DOWN:i=this._trimAlignValue(n-(this._valueMax()-this._valueMin())/this.numPages);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(n===this._valueMax())return;i=this._trimAlignValue(n+r);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(n===this._valueMin())return;i=this._trimAlignValue(n-r)}this._slide(t,o,i)},keyup:function(t){var n=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,n),this._change(t,n),this._removeClass(e(t.target),null,"ui-state-active"))}}}),e.widget("ui.sortable",e.ui.mouse,{version:"1.12.1",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(e,t,n){return e>=t&&e<t+n},_isFloating:function(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))},_create:function(){this.containerCache={},this._addClass("ui-sortable"),this.refresh(),this.offset=this.element.offset(),this._mouseInit(),this._setHandleClassName(),this.ready=!0},_setOption:function(e,t){this._super(e,t),"handle"===e&&this._setHandleClassName()},_setHandleClassName:function(){var t=this;this._removeClass(this.element.find(".ui-sortable-handle"),"ui-sortable-handle"),e.each(this.items,function(){t._addClass(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item,"ui-sortable-handle")})},_destroy:function(){this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_mouseCapture:function(t,n){var i=null,r=!1,o=this;return!this.reverting&&(!this.options.disabled&&"static"!==this.options.type&&(this._refreshItems(t),e(t.target).parents().each(function(){if(e.data(this,o.widgetName+"-item")===o)return i=e(this),!1}),e.data(t.target,o.widgetName+"-item")===o&&(i=e(t.target)),!!i&&(!(this.options.handle&&!n&&(e(this.options.handle,i).find("*").addBack().each(function(){this===t.target&&(r=!0)}),!r))&&(this.currentItem=i,this._removeCurrentsFromItems(),!0))))},_mouseStart:function(t,n,i){var r,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=e("<style>*{ cursor: "+a.cursor+" !important; }</style>").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!i)for(r=this.containers.length-1;r>=0;r--)this.containers[r]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!a.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this._addClass(this.helper,"ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var n,i,r,o,a=this.options,s=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=s=this.scrollParent[0].scrollTop+a.scrollSpeed:t.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=s=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=s=this.scrollParent[0].scrollLeft+a.scrollSpeed:t.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=s=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(t.pageY-this.document.scrollTop()<a.scrollSensitivity?s=this.document.scrollTop(this.document.scrollTop()-a.scrollSpeed):this.window.height()-(t.pageY-this.document.scrollTop())<a.scrollSensitivity&&(s=this.document.scrollTop(this.document.scrollTop()+a.scrollSpeed)),t.pageX-this.document.scrollLeft()<a.scrollSensitivity?s=this.document.scrollLeft(this.document.scrollLeft()-a.scrollSpeed):this.window.width()-(t.pageX-this.document.scrollLeft())<a.scrollSensitivity&&(s=this.document.scrollLeft(this.document.scrollLeft()+a.scrollSpeed))),!1!==s&&e.ui.ddmanager&&!a.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),n=this.items.length-1;n>=0;n--)if(i=this.items[n],r=i.item[0],(o=this._intersectsWithPointer(i))&&i.instance===this.currentContainer&&!(r===this.currentItem[0]||this.placeholder[1===o?"next":"prev"]()[0]===r||e.contains(this.placeholder[0],r)||"semi-dynamic"===this.options.type&&e.contains(this.element[0],r))){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(i))break;this._rearrange(t,i),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,n){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var i=this,r=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=r.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=r.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){i._clear(t)})}else this._clear(t,n);return!1}},cancel:function(){if(this.dragging){this._mouseUp(new e.Event("mouseup",{target:null})),"original"===this.options.helper?(this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var n=this._getItemsAsjQuery(t&&t.connected),i=[];return t=t||{},e(n).each(function(){var n=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);n&&i.push((t.key||n[1]+"[]")+"="+(t.key&&t.expression?n[1]:n[2]))}),!i.length&&t.key&&i.push(t.key+"="),i.join("&")},toArray:function(t){var n=this._getItemsAsjQuery(t&&t.connected),i=[];return t=t||{},n.each(function(){i.push(e(t.item||this).attr(t.attribute||"id")||"")}),i},_intersectsWith:function(e){var t=this.positionAbs.left,n=t+this.helperProportions.width,i=this.positionAbs.top,r=i+this.helperProportions.height,o=e.left,a=o+e.width,s=e.top,l=s+e.height,c=this.offset.click.top,u=this.offset.click.left,d="x"===this.options.axis||i+c>s&&i+c<l,h="y"===this.options.axis||t+u>o&&t+u<a,p=d&&h;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?p:o<t+this.helperProportions.width/2&&n-this.helperProportions.width/2<a&&s<i+this.helperProportions.height/2&&r-this.helperProportions.height/2<l},_intersectsWithPointer:function(e){var t,n,i="x"===this.options.axis||this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top,e.height),r="y"===this.options.axis||this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left,e.width);return!(!i||!r)&&(t=this._getDragVerticalDirection(),n=this._getDragHorizontalDirection(),this.floating?"right"===n||"down"===t?2:1:t&&("down"===t?2:1))},_intersectsWithSides:function(e){var t=this._isOverAxis(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),n=this._isOverAxis(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),i=this._getDragVerticalDirection(),r=this._getDragHorizontalDirection();return this.floating&&r?"right"===r&&n||"left"===r&&!n:i&&("down"===i&&t||"up"===i&&!t)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this._setHandleClassName(),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){function n(){s.push(this)}var i,r,o,a,s=[],l=[],c=this._connectWith();if(c&&t)for(i=c.length-1;i>=0;i--)for(r=(o=e(c[i],this.document[0])).length-1;r>=0;r--)(a=e.data(o[r],this.widgetFullName))&&a!==this&&!a.options.disabled&&l.push([e.isFunction(a.options.items)?a.options.items.call(a.element):e(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(l.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),i=l.length-1;i>=0;i--)l[i][0].each(n);return e(s)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var n=0;n<t.length;n++)if(t[n]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var n,i,r,o,a,s,l,c,u=this.items,d=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],h=this._connectWith();if(h&&this.ready)for(n=h.length-1;n>=0;n--)for(i=(r=e(h[n],this.document[0])).length-1;i>=0;i--)(o=e.data(r[i],this.widgetFullName))&&o!==this&&!o.options.disabled&&(d.push([e.isFunction(o.options.items)?o.options.items.call(o.element[0],t,{item:this.currentItem}):e(o.options.items,o.element),o]),this.containers.push(o));for(n=d.length-1;n>=0;n--)for(a=d[n][1],i=0,c=(s=d[n][0]).length;i<c;i++)(l=e(s[i])).data(this.widgetName+"-item",a),u.push({item:l,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.floating=!!this.items.length&&("x"===this.options.axis||this._isFloating(this.items[0].item)),this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var n,i,r,o;for(n=this.items.length-1;n>=0;n--)(i=this.items[n]).instance!==this.currentContainer&&this.currentContainer&&i.item[0]!==this.currentItem[0]||(r=this.options.toleranceElement?e(this.options.toleranceElement,i.item):i.item,t||(i.width=r.outerWidth(),i.height=r.outerHeight()),o=r.offset(),i.left=o.left,i.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(n=this.containers.length-1;n>=0;n--)o=this.containers[n].element.offset(),this.containers[n].containerCache.left=o.left,this.containers[n].containerCache.top=o.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),this.containers[n].containerCache.height=this.containers[n].element.outerHeight();return this},_createPlaceholder:function(t){var n,i=(t=t||this).options;i.placeholder&&i.placeholder.constructor!==String||(n=i.placeholder,i.placeholder={element:function(){var i=t.currentItem[0].nodeName.toLowerCase(),r=e("<"+i+">",t.document[0]);return t._addClass(r,"ui-sortable-placeholder",n||t.currentItem[0].className)._removeClass(r,"ui-sortable-helper"),"tbody"===i?t._createTrPlaceholder(t.currentItem.find("tr").eq(0),e("<tr>",t.document[0]).appendTo(r)):"tr"===i?t._createTrPlaceholder(t.currentItem,r):"img"===i&&r.attr("src",t.currentItem.attr("src")),n||r.css("visibility","hidden"),r},update:function(e,r){n&&!i.forcePlaceholderSize||(r.height()||r.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),r.width()||r.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(i.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),i.placeholder.update(t,t.placeholder)},_createTrPlaceholder:function(t,n){var i=this;t.children().each(function(){e("<td>&#160;</td>",i.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(n)})},_contactContainers:function(t){var n,i,r,o,a,s,l,c,u,d,h=null,p=null;for(n=this.containers.length-1;n>=0;n--)if(!e.contains(this.currentItem[0],this.containers[n].element[0]))if(this._intersectsWith(this.containers[n].containerCache)){if(h&&e.contains(this.containers[n].element[0],h.element[0]))continue;h=this.containers[n],p=n}else this.containers[n].containerCache.over&&(this.containers[n]._trigger("out",t,this._uiHash(this)),this.containers[n].containerCache.over=0);if(h)if(1===this.containers.length)this.containers[p].containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1);else{for(r=1e4,o=null,a=(u=h.floating||this._isFloating(this.currentItem))?"left":"top",s=u?"width":"height",d=u?"pageX":"pageY",i=this.items.length-1;i>=0;i--)e.contains(this.containers[p].element[0],this.items[i].item[0])&&this.items[i].item[0]!==this.currentItem[0]&&(l=this.items[i].item.offset()[a],c=!1,t[d]-l>this.items[i][s]/2&&(c=!0),Math.abs(t[d]-l)<r&&(r=Math.abs(t[d]-l),o=this.items[i],this.direction=c?"up":"down"));if(!o&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[p])return void(this.currentContainer.containerCache.over||(this.containers[p]._trigger("over",t,this._uiHash()),this.currentContainer.containerCache.over=1));o?this._rearrange(t,o,null,!0):this._rearrange(t,null,this.containers[p].element,!0),this._trigger("change",t,this._uiHash()),this.containers[p]._trigger("change",t,this._uiHash(this)),this.currentContainer=this.containers[p],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[p]._trigger("over",t,this._uiHash(this)),this.containers[p].containerCache.over=1}},_createHelper:function(t){var n=this.options,i=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t,this.currentItem])):"clone"===n.helper?this.currentItem.clone():this.currentItem;return i.parents("body").length||e("parent"!==n.appendTo?n.appendTo:this.currentItem[0].parentNode)[0].appendChild(i[0]),i[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),i[0].style.width&&!n.forceHelperSize||i.width(this.currentItem.width()),i[0].style.height&&!n.forceHelperSize||i.height(this.currentItem.height()),i},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,n,i,r=this.options;"parent"===r.containment&&(r.containment=this.helper[0].parentNode),"document"!==r.containment&&"window"!==r.containment||(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,"document"===r.containment?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,("document"===r.containment?this.document.height()||document.body.parentNode.scrollHeight:this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(r.containment)||(t=e(r.containment)[0],n=e(r.containment).offset(),i="hidden"!==e(t).css("overflow"),this.containment=[n.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,n.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,n.left+(i?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,n.top+(i?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,n){n||(n=this.position);var i="absolute"===t?1:-1,r="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(r[0].tagName);return{top:n.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:r.scrollTop())*i,left:n.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:r.scrollLeft())*i}},_generatePosition:function(t){var n,i,r=this.options,o=t.pageX,a=t.pageY,s="absolute"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,l=/(html|body)/i.test(s[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),r.grid&&(n=this.originalPageY+Math.round((a-this.originalPageY)/r.grid[1])*r.grid[1],a=this.containment?n-this.offset.click.top>=this.containment[1]&&n-this.offset.click.top<=this.containment[3]?n:n-this.offset.click.top>=this.containment[1]?n-r.grid[1]:n+r.grid[1]:n,i=this.originalPageX+Math.round((o-this.originalPageX)/r.grid[0])*r.grid[0],o=this.containment?i-this.offset.click.left>=this.containment[0]&&i-this.offset.click.left<=this.containment[2]?i:i-this.offset.click.left>=this.containment[0]?i-r.grid[0]:i+r.grid[0]:i)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():l?0:s.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():l?0:s.scrollLeft())}},_rearrange:function(e,t,n,i){n?n[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var r=this.counter;this._delay(function(){r===this.counter&&this.refreshPositions(!i)})},_clear:function(e,t){function n(e,t,n){return function(i){n._trigger(e,i,t._uiHash(t))}}this.reverting=!1;var i,r=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(i in this._storedCSS)"auto"!==this._storedCSS[i]&&"static"!==this._storedCSS[i]||(this._storedCSS[i]="");this.currentItem.css(this._storedCSS),this._removeClass(this.currentItem,"ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&r.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||r.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(r.push(function(e){this._trigger("remove",e,this._uiHash())}),r.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),r.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),i=this.containers.length-1;i>=0;i--)t||r.push(n("deactivate",this,this.containers[i])),this.containers[i].containerCache.over&&(r.push(n("out",this,this.containers[i])),this.containers[i].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.cancelHelperRemoval||(this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null),!t){for(i=0;i<r.length;i++)r[i].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!this.cancelHelperRemoval},_trigger:function(){!1===e.Widget.prototype._trigger.apply(this,arguments)&&this.cancel()},_uiHash:function(t){var n=t||this;return{helper:n.helper,placeholder:n.placeholder||e([]),position:n.position,originalPosition:n.originalPosition,offset:n.positionAbs,item:n.currentItem,sender:t?t.element:null}}});e.widget("ui.spinner",{version:"1.12.1",defaultElement:"<input>",widgetEventPrefix:"spin",options:{classes:{"ui-spinner":"ui-corner-all","ui-spinner-down":"ui-corner-br","ui-spinner-up":"ui-corner-tr"},culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t=this._super(),n=this.element;return e.each(["min","max","step"],function(e,i){var r=n.attr(i);null!=r&&r.length&&(t[i]=r)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){this.cancelBlur?delete this.cancelBlur:(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e))},mousewheel:function(e,t){if(t){if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()}},"mousedown .ui-spinner-button":function(t){function n(){this.element[0]===e.ui.safeActiveElement(this.document[0])||(this.element.trigger("focus"),this.previous=i,this._delay(function(){this.previous=i}))}var i;i=this.element[0]===e.ui.safeActiveElement(this.document[0])?this.previous:this.element.val(),t.preventDefault(),n.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,n.call(this)}),!1!==this._start(t)&&this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){if(e(t.currentTarget).hasClass("ui-state-active"))return!1!==this._start(t)&&void this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseleave .ui-spinner-button":"_stop"},_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap("<span>").parent().append("<a></a><a></a>")},_draw:function(){this._enhance(),this._addClass(this.uiSpinner,"ui-spinner","ui-widget ui-widget-content"),this._addClass("ui-spinner-input"),this.element.attr("role","spinbutton"),this.buttons=this.uiSpinner.children("a").attr("tabIndex",-1).attr("aria-hidden",!0).button({classes:{"ui-button":""}}),this._removeClass(this.buttons,"ui-corner-all"),this._addClass(this.buttons.first(),"ui-spinner-button ui-spinner-up"),this._addClass(this.buttons.last(),"ui-spinner-button ui-spinner-down"),this.buttons.first().button({icon:this.options.icons.up,showLabel:!1}),this.buttons.last().button({icon:this.options.icons.down,showLabel:!1}),this.buttons.height()>Math.ceil(.5*this.uiSpinner.height())&&this.uiSpinner.height()>0&&this.uiSpinner.height(this.uiSpinner.height())},_keydown:function(t){var n=this.options,i=e.ui.keyCode;switch(t.keyCode){case i.UP:return this._repeat(null,1,t),!0;case i.DOWN:return this._repeat(null,-1,t),!0;case i.PAGE_UP:return this._repeat(null,n.page,t),!0;case i.PAGE_DOWN:return this._repeat(null,-n.page,t),!0}return!1},_start:function(e){return!(!this.spinning&&!1===this._trigger("start",e))&&(this.counter||(this.counter=1),this.spinning=!0,!0)},_repeat:function(e,t,n){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,n)},e),this._spin(t*this.options.step,n)},_spin:function(e,t){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+e*this._increment(this.counter)),this.spinning&&!1===this._trigger("spin",t,{value:n})||(this._value(n),this.counter++)},_increment:function(t){var n=this.options.incremental;return n?e.isFunction(n)?n(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return null!==this.options.min&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return-1===n?0:t.length-n-1},_adjustValue:function(e){var t,n,i=this.options;return t=null!==i.min?i.min:0,n=e-t,n=Math.round(n/i.step)*i.step,e=t+n,e=parseFloat(e.toFixed(this._precision())),null!==i.max&&e>i.max?i.max:null!==i.min&&e<i.min?i.min:e},_stop:function(e){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",e))},_setOption:function(e,t){var n,i,r;if("culture"===e||"numberFormat"===e)return n=this._parse(this.element.val()),this.options[e]=t,void this.element.val(this._format(n));"max"!==e&&"min"!==e&&"step"!==e||"string"==typeof t&&(t=this._parse(t)),"icons"===e&&(i=this.buttons.first().find(".ui-icon"),this._removeClass(i,null,this.options.icons.up),this._addClass(i,null,t.up),r=this.buttons.last().find(".ui-icon"),this._removeClass(r,null,this.options.icons.down),this._addClass(r,null,t.down)),this._super(e,t)},_setOptionDisabled:function(e){this._super(e),this._toggleClass(this.uiSpinner,null,"ui-state-disabled",!!e),this.element.prop("disabled",!!e),this.buttons.button(e?"disable":"enable")},_setOptions:s(function(e){this._super(e)}),_parse:function(e){return"string"==typeof e&&""!==e&&(e=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(e,10,this.options.culture):+e),""===e||isNaN(e)?null:e},_format:function(e){return""===e?"":window.Globalize&&this.options.numberFormat?Globalize.format(e,this.options.numberFormat,this.options.culture):e},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var e=this.value();return null!==e&&e===this._adjustValue(e)},_value:function(e,t){var n;""!==e&&null!==(n=this._parse(e))&&(t||(n=this._adjustValue(n)),e=this._format(n)),this.element.val(e),this._refresh()},_destroy:function(){this.element.prop("disabled",!1).removeAttr("autocomplete role aria-valuemin aria-valuemax aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:s(function(e){this._stepUp(e)}),_stepUp:function(e){this._start()&&(this._spin((e||1)*this.options.step),this._stop())},stepDown:s(function(e){this._stepDown(e)}),_stepDown:function(e){this._start()&&(this._spin((e||1)*-this.options.step),this._stop())},pageUp:s(function(e){this._stepUp((e||1)*this.options.page)}),pageDown:s(function(e){this._stepDown((e||1)*this.options.page)}),value:function(e){if(!arguments.length)return this._parse(this.element.val());s(this._value).call(this,e)},widget:function(){return this.uiSpinner}}),!1!==e.uiBackCompat&&e.widget("ui.spinner",e.ui.spinner,{_enhance:function(){this.uiSpinner=this.element.attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml())},_uiSpinnerHtml:function(){return"<span>"},_buttonHtml:function(){return"<a></a><a></a>"}});e.ui.spinner;e.widget("ui.tabs",{version:"1.12.1",delay:300,options:{active:null,classes:{"ui-tabs":"ui-corner-all","ui-tabs-nav":"ui-corner-all","ui-tabs-panel":"ui-corner-bottom","ui-tabs-tab":"ui-corner-top"},collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var e=/#.*$/;return function(t){var n,i;n=t.href.replace(e,""),i=location.href.replace(e,"");try{n=decodeURIComponent(n)}catch(e){}try{i=decodeURIComponent(i)}catch(e){}return t.hash.length>1&&n===i}}(),_create:function(){var t=this,n=this.options;this.running=!1,this._addClass("ui-tabs","ui-widget ui-widget-content"),this._toggleClass("ui-tabs-collapsible",null,n.collapsible),this._processTabs(),n.active=this._initialActive(),e.isArray(n.disabled)&&(n.disabled=e.unique(n.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),!1!==this.options.active&&this.anchors.length?this.active=this._findActive(n.active):this.active=e(),this._refresh(),this.active.length&&this.load(n.active)},_initialActive:function(){var t=this.options.active,n=this.options.collapsible,i=location.hash.substring(1);return null===t&&(i&&this.tabs.each(function(n,r){if(e(r).attr("aria-controls")===i)return t=n,!1}),null===t&&(t=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),null!==t&&-1!==t||(t=!!this.tabs.length&&0)),!1!==t&&-1===(t=this.tabs.index(this.tabs.eq(t)))&&(t=!n&&0),!n&&!1===t&&this.anchors.length&&(t=0),t},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var n=e(e.ui.safeActiveElement(this.document[0])).closest("li"),i=this.tabs.index(n),r=!0;if(!this._handlePageNav(t)){switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:i++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:r=!1,i--;break;case e.ui.keyCode.END:i=this.anchors.length-1;break;case e.ui.keyCode.HOME:i=0;break;case e.ui.keyCode.SPACE:return t.preventDefault(),clearTimeout(this.activating),void this._activate(i);case e.ui.keyCode.ENTER:return t.preventDefault(),clearTimeout(this.activating),void this._activate(i!==this.options.active&&i);default:return}t.preventDefault(),clearTimeout(this.activating),i=this._focusNextTab(i,r),t.ctrlKey||t.metaKey||(n.attr("aria-selected","false"),this.tabs.eq(i).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",i)},this.delay))}},_panelKeydown:function(t){this._handlePageNav(t)||t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.trigger("focus"))},_handlePageNav:function(t){return t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):void 0},_findNextTab:function(t,n){for(var i=this.tabs.length-1;-1!==e.inArray(function(){return t>i&&(t=0),t<0&&(t=i),t}(),this.options.disabled);)t=n?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).trigger("focus"),e},_setOption:function(e,t){"active"!==e?(this._super(e,t),"collapsible"===e&&(this._toggleClass("ui-tabs-collapsible",null,t),t||!1!==this.options.active||this._activate(0)),"event"===e&&this._setupEvents(t),"heightStyle"===e&&this._setupHeightStyle(t)):this._activate(t)},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,n=this.tablist.children(":has(a[href])");t.disabled=e.map(n.filter(".ui-state-disabled"),function(e){return n.index(e)}),this._processTabs(),!1!==t.active&&this.anchors.length?this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=e()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this,n=this.tabs,i=this.anchors,r=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).attr({role:"presentation",tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=e(),this.anchors.each(function(n,i){var r,o,a,s=e(i).uniqueId().attr("id"),l=e(i).closest("li"),c=l.attr("aria-controls");t._isLocal(i)?(a=(r=i.hash).substring(1),o=t.element.find(t._sanitizeSelector(r))):(r="#"+(a=l.attr("aria-controls")||e({}).uniqueId()[0].id),(o=t.element.find(r)).length||(o=t._createPanel(a)).insertAfter(t.panels[n-1]||t.tablist),o.attr("aria-live","polite")),o.length&&(t.panels=t.panels.add(o)),c&&l.data("ui-tabs-aria-controls",c),l.attr({"aria-controls":a,"aria-labelledby":s}),o.attr("aria-labelledby",s)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),n&&(this._off(n.not(this.tabs)),this._off(i.not(this.anchors)),this._off(r.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(t){return e("<div>").attr("id",t).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(t){var n,i,r;for(e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1),r=0;i=this.tabs[r];r++)n=e(i),!0===t||-1!==e.inArray(r,t)?(n.attr("aria-disabled","true"),this._addClass(n,null,"ui-state-disabled")):(n.removeAttr("aria-disabled"),this._removeClass(n,null,"ui-state-disabled"));this.options.disabled=t,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!0===t)},_setupEvents:function(t){var n={};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(e){e.preventDefault()}}),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var n,i=this.element.parent();"fill"===t?(n=i.height(),n-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=e(this),i=t.css("position");"absolute"!==i&&"fixed"!==i&&(n-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){n-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,n-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===t&&(n=0,this.panels.each(function(){n=Math.max(n,e(this).height("").height())}).height(n))},_eventHandler:function(t){var n=this.options,i=this.active,r=e(t.currentTarget).closest("li"),o=r[0]===i[0],a=o&&n.collapsible,s=a?e():this._getPanelForTab(r),l=i.length?this._getPanelForTab(i):e(),c={oldTab:i,oldPanel:l,newTab:a?e():r,newPanel:s};t.preventDefault(),r.hasClass("ui-state-disabled")||r.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||!1===this._trigger("beforeActivate",t,c)||(n.active=!a&&this.tabs.index(r),this.active=o?e():r,this.xhr&&this.xhr.abort(),l.length||s.length||e.error("jQuery UI Tabs: Mismatching fragment identifier."),s.length&&this.load(this.tabs.index(r),t),this._toggle(t,c))},_toggle:function(t,n){function i(){o.running=!1,o._trigger("activate",t,n)}function r(){o._addClass(n.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&o.options.show?o._show(a,o.options.show,i):(a.show(),i())}var o=this,a=n.newPanel,s=n.oldPanel;this.running=!0,s.length&&this.options.hide?this._hide(s,this.options.hide,function(){o._removeClass(n.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),r()}):(this._removeClass(n.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),s.hide(),r()),s.attr("aria-hidden","true"),n.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&s.length?n.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),n.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var n,i=this._findActive(t);i[0]!==this.active[0]&&(i.length||(i=this.active),n=i.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop}))},_findActive:function(t){return!1===t?e():this.tabs.eq(t)},_getIndex:function(t){return"string"==typeof t&&(t=this.anchors.index(this.anchors.filter("[href$='"+e.ui.escapeSelector(t)+"']"))),t},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var t=e(this),n=t.data("ui-tabs-aria-controls");n?t.attr("aria-controls",n).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(t){var n=this.options.disabled;!1!==n&&(void 0===t?n=!1:(t=this._getIndex(t),n=e.isArray(n)?e.map(n,function(e){return e!==t?e:null}):e.map(this.tabs,function(e,n){return n!==t?n:null})),this._setOptionDisabled(n))},disable:function(t){var n=this.options.disabled;if(!0!==n){if(void 0===t)n=!0;else{if(t=this._getIndex(t),-1!==e.inArray(t,n))return;n=e.isArray(n)?e.merge([t],n).sort():[t]}this._setOptionDisabled(n)}},load:function(t,n){t=this._getIndex(t);var i=this,r=this.tabs.eq(t),o=r.find(".ui-tabs-anchor"),a=this._getPanelForTab(r),s={tab:r,panel:a},l=function(e,t){"abort"===t&&i.panels.stop(!1,!0),i._removeClass(r,"ui-tabs-loading"),a.removeAttr("aria-busy"),e===i.xhr&&delete i.xhr};this._isLocal(o[0])||(this.xhr=e.ajax(this._ajaxSettings(o,n,s)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(r,"ui-tabs-loading"),a.attr("aria-busy","true"),this.xhr.done(function(e,t,r){setTimeout(function(){a.html(e),i._trigger("load",n,s),l(r,t)},1)}).fail(function(e,t){setTimeout(function(){l(e,t)},1)})))},_ajaxSettings:function(t,n,i){var r=this;return{url:t.attr("href").replace(/#.*$/,""),beforeSend:function(t,o){return r._trigger("beforeLoad",n,e.extend({jqXHR:t,ajaxSettings:o},i))}}},_getPanelForTab:function(t){var n=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}}),!1!==e.uiBackCompat&&e.widget("ui.tabs",e.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}});e.ui.tabs;e.widget("ui.tooltip",{version:"1.12.1",options:{classes:{"ui-tooltip":"ui-corner-all ui-widget-shadow"},content:function(){var t=e(this).attr("title")||"";return e("<a>").text(t).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,track:!1,close:null,open:null},_addDescribedBy:function(t,n){var i=(t.attr("aria-describedby")||"").split(/\s+/);i.push(n),t.data("ui-tooltip-id",n).attr("aria-describedby",e.trim(i.join(" ")))},_removeDescribedBy:function(t){var n=t.data("ui-tooltip-id"),i=(t.attr("aria-describedby")||"").split(/\s+/),r=e.inArray(n,i);-1!==r&&i.splice(r,1),t.removeData("ui-tooltip-id"),(i=e.trim(i.join(" ")))?t.attr("aria-describedby",i):t.removeAttr("aria-describedby")},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.liveRegion=e("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this.disabledTitles=e([])},_setOption:function(t,n){var i=this;this._super(t,n),"content"===t&&e.each(this.tooltips,function(e,t){i._updateContent(t.element)})},_setOptionDisabled:function(e){this[e?"_disable":"_enable"]()},_disable:function(){var t=this;e.each(this.tooltips,function(n,i){var r=e.Event("blur");r.target=r.currentTarget=i.element[0],t.close(r,!0)}),this.disabledTitles=this.disabledTitles.add(this.element.find(this.options.items).addBack().filter(function(){var t=e(this);if(t.is("[title]"))return t.data("ui-tooltip-title",t.attr("title")).removeAttr("title")}))},_enable:function(){this.disabledTitles.each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))}),this.disabledTitles=e([])},open:function(t){var n=this,i=e(t?t.target:this.element).closest(this.options.items);i.length&&!i.data("ui-tooltip-id")&&(i.attr("title")&&i.data("ui-tooltip-title",i.attr("title")),i.data("ui-tooltip-open",!0),t&&"mouseover"===t.type&&i.parents().each(function(){var t,i=e(this);i.data("ui-tooltip-open")&&((t=e.Event("blur")).target=t.currentTarget=this,n.close(t,!0)),i.attr("title")&&(i.uniqueId(),n.parents[this.id]={element:this,title:i.attr("title")},i.attr("title",""))}),this._registerCloseHandlers(t,i),this._updateContent(i,t))},_updateContent:function(e,t){var n,i=this.options.content,r=this,o=t?t.type:null;if("string"==typeof i||i.nodeType||i.jquery)return this._open(t,e,i);(n=i.call(e[0],function(n){r._delay(function(){e.data("ui-tooltip-open")&&(t&&(t.type=o),this._open(t,e,n))})}))&&this._open(t,e,n)},_open:function(t,n,i){function r(e){c.of=e,a.is(":hidden")||a.position(c)}var o,a,s,l,c=e.extend({},this.options.position);i&&((o=this._find(n))?o.tooltip.find(".ui-tooltip-content").html(i):(n.is("[title]")&&(t&&"mouseover"===t.type?n.attr("title",""):n.removeAttr("title")),o=this._tooltip(n),a=o.tooltip,this._addDescribedBy(n,a.attr("id")),a.find(".ui-tooltip-content").html(i),this.liveRegion.children().hide(),(l=e("<div>").html(a.find(".ui-tooltip-content").html())).removeAttr("name").find("[name]").removeAttr("name"),l.removeAttr("id").find("[id]").removeAttr("id"),l.appendTo(this.liveRegion),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:r}),r(t)):a.position(e.extend({of:n},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.track&&this.options.show&&this.options.show.delay&&(s=this.delayedShow=setInterval(function(){a.is(":visible")&&(r(c.of),clearInterval(s))},e.fx.interval)),this._trigger("open",t,{tooltip:a})))},_registerCloseHandlers:function(t,n){var i={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var i=e.Event(t);i.currentTarget=n[0],this.close(i,!0)}}};n[0]!==this.element[0]&&(i.remove=function(){this._removeTooltip(this._find(n).tooltip)}),t&&"mouseover"!==t.type||(i.mouseleave="close"),t&&"focusin"!==t.type||(i.focusout="close"),this._on(!0,n,i)},close:function(t){var n,i=this,r=e(t?t.currentTarget:this.element),o=this._find(r);o?(n=o.tooltip,o.closing||(clearInterval(this.delayedShow),r.data("ui-tooltip-title")&&!r.attr("title")&&r.attr("title",r.data("ui-tooltip-title")),this._removeDescribedBy(r),o.hiding=!0,n.stop(!0),this._hide(n,this.options.hide,function(){i._removeTooltip(e(this))}),r.removeData("ui-tooltip-open"),this._off(r,"mouseleave focusout keyup"),r[0]!==this.element[0]&&this._off(r,"remove"),this._off(this.document,"mousemove"),t&&"mouseleave"===t.type&&e.each(this.parents,function(t,n){e(n.element).attr("title",n.title),delete i.parents[t]}),o.closing=!0,this._trigger("close",t,{tooltip:n}),o.hiding||(o.closing=!1))):r.removeData("ui-tooltip-open")},_tooltip:function(t){var n=e("<div>").attr("role","tooltip"),i=e("<div>").appendTo(n),r=n.uniqueId().attr("id");return this._addClass(i,"ui-tooltip-content"),this._addClass(n,"ui-tooltip","ui-widget ui-widget-content"),n.appendTo(this._appendTo(t)),this.tooltips[r]={element:t,tooltip:n}},_find:function(e){var t=e.data("ui-tooltip-id");return t?this.tooltips[t]:null},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_appendTo:function(e){var t=e.closest(".ui-front, dialog");return t.length||(t=this.document[0].body),t},_destroy:function(){var t=this;e.each(this.tooltips,function(n,i){var r=e.Event("blur"),o=i.element;r.target=r.currentTarget=o[0],t.close(r,!0),e("#"+n).remove(),o.data("ui-tooltip-title")&&(o.attr("title")||o.attr("title",o.data("ui-tooltip-title")),o.removeData("ui-tooltip-title"))}),this.liveRegion.remove()}}),!1!==e.uiBackCompat&&e.widget("ui.tooltip",e.ui.tooltip,{options:{tooltipClass:null},_tooltip:function(){var e=this._superApply(arguments);return this.options.tooltipClass&&e.tooltip.addClass(this.options.tooltipClass),e}});e.ui.tooltip}),function(e,t,n){"use strict";t.module("ui.sortable",[]).value("uiSortableConfig",{items:"> [ng-repeat],> [data-ng-repeat],> [x-ng-repeat]"}).directive("uiSortable",["uiSortableConfig","$timeout","$log",function(e,i,r){return{require:"?ngModel",scope:{ngModel:"=",uiSortable:"="},link:function(o,a,s,l){function c(e,t){var n=e&&"function"==typeof e,i=t&&"function"==typeof t;return n&&i?function(){e.apply(this,arguments),t.apply(this,arguments)}:i?t:e}function u(e){var t=e.data("ui-sortable");return t&&"object"==typeof t&&"ui-sortable"===t.widgetFullName?t:null}function d(t,n){return T[t]?("stop"===t&&(n=c(n=c(n,function(){o.$apply()}),y)),n=c(T[t],n)):D[t]&&(n=D[t](n)),n||("items"===t?n=e.items:"ui-model-items"===t&&(n=e.items)),n}function h(e,i,r){function o(e,t){t in S||(S[t]=null)}t.forEach(T,o);var a=null;if(i){var s;t.forEach(i,function(i,r){if(!(e&&r in e)){if(r in E)return void(S[r]="ui-floating"===r?"auto":d(r,n));s||(s=t.element.ui.sortable().options);var o=s[r];o=d(r,o),a||(a={}),a[r]=o,S[r]=o}})}return t.forEach(e,function(e,t){if(t in E)return"ui-floating"!==t||!1!==e&&!0!==e||!r||(r.floating=e),void(S[t]=d(t,e));e=d(t,e),a||(a={}),a[t]=e,S[t]=e}),a}function p(e){var n=e.sortable("option","placeholder");if(n&&n.element&&"function"==typeof n.element){var i=n.element();return i=t.element(i)}return null}function f(e,t){var n=S["ui-model-items"].replace(/[^,]*>/g,"");return e.find('[class="'+t.attr("class")+'"]:not('+n+")")}function m(e,t){var n=e.sortable("option","helper");return"clone"===n||"function"==typeof n&&t.item.sortable.isCustomHelperUsed()}function g(e,t,n){var i=null;return m(e,t)&&"parent"===e.sortable("option","appendTo")&&(i=n.last()),i}function v(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))}function b(e,t){for(var n=null,i=0;i<e.length;i++){var r=e[i];if(r.element[0]===t[0]){n=r.scope;break}}return n}function y(e,t){t.item.sortable._destroy()}function _(e){return e.item.parent().find(S["ui-model-items"]).index(e.item)}function w(){o.$watchCollection("ngModel",function(){i(function(){u(a)&&a.sortable("refresh")},0,!1)}),T.start=function(e,i){if("auto"===S["ui-floating"]){var r=i.item.siblings();u(t.element(e.target)).floating=v(r)}var o=_(i);i.item.sortable={model:l.$modelValue[o],index:o,source:i.item.parent(),sourceModel:l.$modelValue,cancel:function(){i.item.sortable._isCanceled=!0},isCanceled:function(){return i.item.sortable._isCanceled},isCustomHelperUsed:function(){return!!i.item.sortable._isCustomHelperUsed},_isCanceled:!1,_isCustomHelperUsed:i.item.sortable._isCustomHelperUsed,_destroy:function(){t.forEach(i.item.sortable,function(e,t){i.item.sortable[t]=n})}}},T.activate=function(e,t){x=a.contents();var n=p(a);if(n&&n.length){var i=f(a,n);x=x.not(i)}var r=t.item.sortable._connectedSortables||[];r.push({element:a,scope:o}),t.item.sortable._connectedSortables=r},T.update=function(e,t){if(!t.item.sortable.received){t.item.sortable.dropindex=_(t);var n=t.item.parent();t.item.sortable.droptarget=n;var i=b(t.item.sortable._connectedSortables,n);t.item.sortable.droptargetModel=i.ngModel,a.sortable("cancel")}var r=!t.item.sortable.received&&g(a,t,x);r&&r.length&&(x=x.not(r)),x.appendTo(a),t.item.sortable.received&&(x=null),t.item.sortable.received&&!t.item.sortable.isCanceled()&&o.$apply(function(){l.$modelValue.splice(t.item.sortable.dropindex,0,t.item.sortable.moved)})},T.stop=function(e,n){if(!n.item.sortable.received&&"dropindex"in n.item.sortable&&!n.item.sortable.isCanceled())o.$apply(function(){l.$modelValue.splice(n.item.sortable.dropindex,0,l.$modelValue.splice(n.item.sortable.index,1)[0])});else if((!("dropindex"in n.item.sortable)||n.item.sortable.isCanceled())&&!t.equals(a.contents(),x)){var i=g(a,n,x);i&&i.length&&(x=x.not(i)),x.appendTo(a)}x=null},T.receive=function(e,t){t.item.sortable.received=!0},T.remove=function(e,t){"dropindex"in t.item.sortable||(a.sortable("cancel"),t.item.sortable.cancel()),t.item.sortable.isCanceled()||o.$apply(function(){t.item.sortable.moved=l.$modelValue.splice(t.item.sortable.index,1)[0]})},D.helper=function(e){return e&&"function"==typeof e?function(t,n){var i=e.apply(this,arguments);return n.sortable._isCustomHelperUsed=n!==i,i}:e},o.$watchCollection("uiSortable",function(e,t){var n=u(a);if(n){var i=h(e,t,n);i&&a.sortable("option",i)}},!0),h(S)}function A(){l?w():r.info("ui.sortable: ngModel not provided!",a),a.sortable(S)}function C(){return(!o.uiSortable||!o.uiSortable.disabled)&&(A(),C.cancelWatcher(),C.cancelWatcher=t.noop,!0)}var x,S={},E={"ui-floating":n,"ui-model-items":e.items},T={receive:null,remove:null,start:null,stop:null,update:null},D={helper:null};t.extend(S,E,e,o.uiSortable),t.element.fn&&t.element.fn.jquery?(C.cancelWatcher=t.noop,C()||(C.cancelWatcher=o.$watch("uiSortable.disabled",C))):r.error("ui.sortable: jQuery should be included before AngularJS!")}}}])}(window,window.angular),function(){"use strict";angular.module("ui.tree",[]).constant("treeConfig",{treeClass:"angular-ui-tree",emptyTreeClass:"angular-ui-tree-empty",hiddenClass:"angular-ui-tree-hidden",nodesClass:"angular-ui-tree-nodes",nodeClass:"angular-ui-tree-node",handleClass:"angular-ui-tree-handle",placeholderClass:"angular-ui-tree-placeholder",dragClass:"angular-ui-tree-drag",dragThreshold:3,levelThreshold:30,defaultCollapsed:!1})}(),function(){"use strict";angular.module("ui.tree").controller("TreeHandleController",["$scope","$element",function(e,t){this.scope=e,e.$element=t,e.$nodeScope=null,e.$type="uiTreeHandle"}])}(),function(){"use strict";angular.module("ui.tree").controller("TreeNodeController",["$scope","$element",function(e,t){function n(e){var t,i,r=0,o=e.childNodes();if(!o||0===o.length)return 0;for(i=o.length-1;i>=0;i--)t=1+n(o[i]),r=Math.max(r,t);return r}this.scope=e,e.$element=t,e.$modelValue=null,e.$parentNodeScope=null,e.$childNodesScope=null,e.$parentNodesScope=null,e.$treeScope=null,e.$handleScope=null,e.$type="uiTreeNode",e.$$allowNodeDrop=!1,e.collapsed=!1,e.init=function(n){var i=n[0];e.$treeScope=n[1]?n[1].scope:null,e.$parentNodeScope=i.scope.$nodeScope,e.$modelValue=i.scope.$modelValue[e.$index],e.$parentNodesScope=i.scope,i.scope.initSubNode(e),t.on("$destroy",function(){i.scope.destroySubNode(e)})},e.index=function(){return e.$parentNodesScope.$modelValue.indexOf(e.$modelValue)},e.dragEnabled=function(){return!(e.$treeScope&&!e.$treeScope.dragEnabled)},e.isSibling=function(t){return e.$parentNodesScope==t.$parentNodesScope},e.isChild=function(t){var n=e.childNodes();return n&&n.indexOf(t)>-1},e.prev=function(){var t=e.index();return t>0?e.siblings()[t-1]:null},e.siblings=function(){return e.$parentNodesScope.childNodes()},e.childNodesCount=function(){return e.childNodes()?e.childNodes().length:0},e.hasChild=function(){return e.childNodesCount()>0},e.childNodes=function(){return e.$childNodesScope&&e.$childNodesScope.$modelValue?e.$childNodesScope.childNodes():null},e.accept=function(t,n){return e.$childNodesScope&&e.$childNodesScope.$modelValue&&e.$childNodesScope.accept(t,n)},e.remove=function(){return e.$parentNodesScope.removeNode(e)},e.toggle=function(){e.collapsed=!e.collapsed},e.collapse=function(){e.collapsed=!0},e.expand=function(){e.collapsed=!1},e.depth=function(){var t=e.$parentNodeScope;return t?t.depth()+1:1},e.maxSubDepth=function(){return e.$childNodesScope?n(e.$childNodesScope):0}}])}(),function(){"use strict";angular.module("ui.tree").controller("TreeNodesController",["$scope","$element",function(e,t){this.scope=e,e.$element=t,e.$modelValue=null,e.$nodeScope=null,e.$treeScope=null,e.$type="uiTreeNodes",e.$nodesMap={},e.nodropEnabled=!1,e.maxDepth=0,e.cloneEnabled=!1,e.initSubNode=function(t){if(!t.$modelValue)return null;e.$nodesMap[t.$modelValue.$$hashKey]=t},e.destroySubNode=function(t){if(!t.$modelValue)return null;e.$nodesMap[t.$modelValue.$$hashKey]=null},e.accept=function(t,n){return e.$treeScope.$callbacks.accept(t,e,n)},e.beforeDrag=function(t){return e.$treeScope.$callbacks.beforeDrag(t)},e.isParent=function(t){return t.$parentNodesScope==e},e.hasChild=function(){return e.$modelValue.length>0},e.safeApply=function(e){var t=this.$root.$$phase;"$apply"==t||"$digest"==t?e&&"function"==typeof e&&e():this.$apply(e)},e.removeNode=function(t){var n=e.$modelValue.indexOf(t.$modelValue);return n>-1?(e.safeApply(function(){e.$modelValue.splice(n,1)[0]}),e.$treeScope.$callbacks.removed(t)):null},e.insertNode=function(t,n){e.safeApply(function(){e.$modelValue.splice(t,0,n)})},e.childNodes=function(){var t,n=[];if(e.$modelValue)for(t=0;t<e.$modelValue.length;t++)n.push(e.$nodesMap[e.$modelValue[t].$$hashKey]);return n},e.depth=function(){return e.$nodeScope?e.$nodeScope.depth():0},e.outOfDepth=function(t){var n=e.maxDepth||e.$treeScope.maxDepth;return n>0&&e.depth()+t.maxSubDepth()+1>n}}])}(),function(){"use strict";angular.module("ui.tree").controller("TreeController",["$scope","$element",function(e,t){this.scope=e,e.$element=t,e.$nodesScope=null,e.$type="uiTree",e.$emptyElm=null,e.$callbacks=null,e.dragEnabled=!0,e.emptyPlaceholderEnabled=!0,e.maxDepth=0,e.dragDelay=0,e.cloneEnabled=!1,e.nodropEnabled=!1,e.isEmpty=function(){return e.$nodesScope&&e.$nodesScope.$modelValue&&0===e.$nodesScope.$modelValue.length},e.place=function(t){e.$nodesScope.$element.append(t),e.$emptyElm.remove()},this.resetEmptyElement=function(){e.$nodesScope.$modelValue&&0!==e.$nodesScope.$modelValue.length||!e.emptyPlaceholderEnabled?e.$emptyElm.remove():t.append(e.$emptyElm)},e.resetEmptyElement=this.resetEmptyElement}])}(),function(){"use strict";angular.module("ui.tree").directive("uiTree",["treeConfig","$window",function(e,t){return{restrict:"A",scope:!0,controller:"TreeController",link:function(n,i,r,o){var a,s,l,c={accept:null,beforeDrag:null},u={};angular.extend(u,e),u.treeClass&&i.addClass(u.treeClass),"table"===i.prop("tagName").toLowerCase()?(n.$emptyElm=angular.element(t.document.createElement("tr")),l=(s=i.find("tr")).length>0?angular.element(s).children().length:1e6,a=angular.element(t.document.createElement("td")).attr("colspan",l),n.$emptyElm.append(a)):n.$emptyElm=angular.element(t.document.createElement("div")),u.emptyTreeClass&&n.$emptyElm.addClass(u.emptyTreeClass),n.$watch("$nodesScope.$modelValue.length",function(e){angular.isNumber(e)&&o.resetEmptyElement()},!0),n.$watch(r.dragEnabled,function(e){"boolean"==typeof e&&(n.dragEnabled=e)}),n.$watch(r.emptyPlaceholderEnabled,function(e){"boolean"==typeof e&&(n.emptyPlaceholderEnabled=e,o.resetEmptyElement())}),n.$watch(r.nodropEnabled,function(e){"boolean"==typeof e&&(n.nodropEnabled=e)}),n.$watch(r.cloneEnabled,function(e){"boolean"==typeof e&&(n.cloneEnabled=e)}),n.$watch(r.maxDepth,function(e){"number"==typeof e&&(n.maxDepth=e)}),n.$watch(r.dragDelay,function(e){"number"==typeof e&&(n.dragDelay=e)}),c.accept=function(e,t,n){return!(t.nodropEnabled||t.$treeScope.nodropEnabled||t.outOfDepth(e))},c.beforeDrag=function(e){return!0},c.removed=function(e){},c.dropped=function(e){},c.dragStart=function(e){},c.dragMove=function(e){},c.dragStop=function(e){},c.beforeDrop=function(e){},n.$watch(r.uiTree,function(e,t){angular.forEach(e,function(e,t){c[t]&&"function"==typeof e&&(c[t]=e)}),n.$callbacks=c},!0)}}}])}(),function(){"use strict";angular.module("ui.tree").directive("uiTreeHandle",["treeConfig",function(e){return{require:"^uiTreeNode",restrict:"A",scope:!0,controller:"TreeHandleController",link:function(t,n,i,r){var o={};angular.extend(o,e),o.handleClass&&n.addClass(o.handleClass),t!=r.scope&&(t.$nodeScope=r.scope,r.scope.$handleScope=t)}}}])}(),function(){"use strict";angular.module("ui.tree").directive("uiTreeNode",["treeConfig","UiTreeHelper","$window","$document","$timeout","$q","$rootElement",function(e,t,n,i,r,o,a){return{require:["^uiTreeNodes","^uiTree"],restrict:"A",controller:"TreeNodeController",link:function(s,l,c,u){var d,h,p,f,m,g,v,b,y,_,w,A,C,x,S,E,T,D,I,k,M,P,$,N,O={},R="ontouchstart"in window,L=null,G=document.body,B=document.documentElement;angular.extend(O,e),O.nodeClass&&l.addClass(O.nodeClass),s.init(u),s.collapsed=!!t.getNodeAttribute(s,"collapsed")||e.defaultCollapsed,s.sourceOnly=s.nodropEnabled||s.$treeScope.nodropEnabled,s.$watch(c.collapsed,function(e){"boolean"==typeof e&&(s.collapsed=e)}),s.$watch("collapsed",function(e){t.setNodeAttribute(s,"collapsed",e),c.$set("collapsed",e)}),s.$on("angular-ui-tree:collapse-all",function(){s.collapsed=!0}),s.$on("angular-ui-tree:expand-all",function(){s.collapsed=!1}),_=function(e){if((R||2!==e.button&&3!==e.which)&&!(e.uiTreeDragging||e.originalEvent&&e.originalEvent.uiTreeDragging)){var r,o,c,u,_,w,A,C,x,S=angular.element(e.target);if((r=t.treeNodeHandlerContainerOfElement(S))&&(S=angular.element(r)),o=l.clone(),C=t.elementIsTreeNode(S),x=t.elementIsTreeNodeHandle(S),(C||x)&&!(C&&t.elementContainsTreeNodeHandler(S)||"input"==(c=S.prop("tagName").toLowerCase())||"textarea"==c||"button"==c||"select"==c)){for(N=angular.element(e.target);N&&N[0]&&N[0]!==l;){if(t.nodrag(N))return;N=N.parent()}s.beforeDrag(s)&&(e.uiTreeDragging=!0,e.originalEvent&&(e.originalEvent.uiTreeDragging=!0),e.preventDefault(),_=t.eventObj(e),d=!0,h=t.dragInfo(s),"tr"===(u=l.prop("tagName")).toLowerCase()?(f=angular.element(n.document.createElement(u)),w=angular.element(n.document.createElement("td")).addClass(O.placeholderClass).attr("colspan",l[0].children.length),f.append(w)):f=angular.element(n.document.createElement(u)).addClass(O.placeholderClass),m=angular.element(n.document.createElement(u)),O.hiddenClass&&m.addClass(O.hiddenClass),p=t.positionStarted(_,l),f.css("height",t.height(l)+"px"),(g=angular.element(n.document.createElement(s.$parentNodesScope.$element.prop("tagName"))).addClass(s.$parentNodesScope.$element.attr("class")).addClass(O.dragClass)).css("width",t.width(l)+"px"),g.css("z-index",9999),(A=(l[0].querySelector(".angular-ui-tree-handle")||l[0]).currentStyle)&&(document.body.setAttribute("ui-tree-cursor",i.find("body").css("cursor")||""),i.find("body").css({cursor:A.cursor+"!important"})),s.sourceOnly&&f.css("display","none"),l.after(f),l.after(m),h.isClone()&&s.sourceOnly?g.append(o):g.append(l),a.append(g),g.css({left:_.pageX-p.offsetX+"px",top:_.pageY-p.offsetY+"px"}),v={placeholder:f,dragging:g},I(),s.$apply(function(){s.$treeScope.$callbacks.dragStart(h.eventArgs(v,p))}),b=Math.max(G.scrollHeight,G.offsetHeight,B.clientHeight,B.scrollHeight,B.offsetHeight),y=Math.max(G.scrollWidth,G.offsetWidth,B.clientWidth,B.scrollWidth,B.offsetWidth))}}},w=function(e){var i,r,o,a,l,c,u,m,_,w,A,C,x,S,E=t.eventObj(e);if(g){if(e.preventDefault(),n.getSelection?n.getSelection().removeAllRanges():n.document.selection&&n.document.selection.empty(),r=E.pageX-p.offsetX,o=E.pageY-p.offsetY,r<0&&(r=0),o<0&&(o=0),o+10>b&&(o=b-10),r+10>y&&(r=y-10),g.css({left:r+"px",top:o+"px"}),a=window.pageYOffset||n.document.documentElement.scrollTop,(l=a+(window.innerHeight||n.document.clientHeight||n.document.clientHeight))<E.pageY&&l<=b&&window.scrollBy(0,10),a>E.pageY&&window.scrollBy(0,-10),t.positionMoved(e,p,d),d)return void(d=!1);if(t.offset(g).left-t.offset(f).left>=O.threshold,u=E.pageX-(n.pageXOffset||n.document.body.scrollLeft||n.document.documentElement.scrollLeft)-(n.document.documentElement.clientLeft||0),m=E.pageY-(n.pageYOffset||n.document.body.scrollTop||n.document.documentElement.scrollTop)-(n.document.documentElement.clientTop||0),angular.isFunction(g.hide)?g.hide():(_=g[0].style.display,g[0].style.display="none"),n.document.elementFromPoint(u,m),A=angular.element(n.document.elementFromPoint(u,m)),($=t.treeNodeHandlerContainerOfElement(A))&&(A=angular.element($)),angular.isFunction(g.show)?g.show():g[0].style.display=_,(P=!(t.elementIsTreeNodeHandle(A)||t.elementIsTreeNode(A)||t.elementIsTreeNodes(A)||t.elementIsTree(A)||t.elementIsPlaceholder(A)))&&(f.remove(),L&&(L.resetEmptyElement(),L=null)),p.dirAx&&p.distAxX>=O.levelThreshold&&(p.distAxX=0,p.distX>0&&(i=h.prev())&&!i.collapsed&&i.accept(s,i.childNodesCount())&&(i.$childNodesScope.$element.append(f),h.moveTo(i.$childNodesScope,i.childNodes(),i.childNodesCount())),p.distX<0&&(h.next()||(c=h.parentNode())&&c.$parentNodesScope.accept(s,c.index()+1)&&(c.$element.after(f),h.moveTo(c.$parentNodesScope,c.siblings(),c.index()+1)))),!p.dirAx){if(t.elementIsTree(A)?w=A.controller("uiTree").scope:t.elementIsTreeNodeHandle(A)?w=A.controller("uiTreeHandle").scope:t.elementIsTreeNode(A)?w=A.controller("uiTreeNode").scope:t.elementIsTreeNodes(A)?w=A.controller("uiTreeNodes").scope:t.elementIsPlaceholder(A)?w=A.controller("uiTreeNodes").scope:A.controller("uiTreeNode")&&(w=A.controller("uiTreeNode").scope),C=!1,!w)return;if(!w.$treeScope||w.$parent.nodropEnabled||w.$treeScope.nodropEnabled||f.css("display",""),"uiTree"==w.$type&&w.dragEnabled&&(C=w.isEmpty()),"uiTreeHandle"==w.$type&&(w=w.$nodeScope),"uiTreeNode"!=w.$type&&!C)return;L&&f.parent()[0]!=L.$element[0]&&(L.resetEmptyElement(),L=null),C?(L=w,w.$nodesScope.accept(s,0)&&(w.place(f),h.moveTo(w.$nodesScope,w.$nodesScope.childNodes(),0))):w.dragEnabled()&&(A=w.$element,x=t.offset(A),S=w.horizontal?E.pageX<x.left+t.width(A)/2:E.pageY<x.top+t.height(A)/2,w.$parentNodesScope.accept(s,w.index())?S?(A[0].parentNode.insertBefore(f[0],A[0]),h.moveTo(w.$parentNodesScope,w.siblings(),w.index())):(A.after(f),h.moveTo(w.$parentNodesScope,w.siblings(),w.index()+1)):!S&&w.accept(s,w.childNodesCount())?(w.$childNodesScope.$element.append(f),h.moveTo(w.$childNodesScope,w.childNodes(),w.childNodesCount())):P=!0)}s.$apply(function(){s.$treeScope.$callbacks.dragMove(h.eventArgs(v,p))})}},A=function(e){var t=h.eventArgs(v,p);e.preventDefault(),k(),s.$treeScope.$apply(function(){o.when(s.$treeScope.$callbacks.beforeDrop(t)).then(function(e){!1!==e&&s.$$allowNodeDrop&&!P?(h.apply(),s.$treeScope.$callbacks.dropped(t)):D()}).catch(function(){D()}).finally(function(){m.replaceWith(s.$element),f.remove(),g&&(g.remove(),g=null),s.$treeScope.$callbacks.dragStop(t),s.$$allowNodeDrop=!1,h=null;var e=document.body.getAttribute("ui-tree-cursor");null!==e&&(i.find("body").css({cursor:e}),document.body.removeAttribute("ui-tree-cursor"))})})},C=function(e){s.dragEnabled()&&_(e)},x=function(e){w(e)},S=function(e){s.$$allowNodeDrop=!0,A(e)},E=function(e){A(e)},T=function(){var e;return{exec:function(t,n){n||(n=0),this.cancel(),e=r(t,n)},cancel:function(){r.cancel(e)}}}(),(D=function(){l.bind("touchstart mousedown",function(e){T.exec(function(){C(e)},s.dragDelay||0)}),l.bind("touchend touchcancel mouseup",function(){T.cancel()})})(),I=function(){angular.element(i).bind("touchend",S),angular.element(i).bind("touchcancel",S),angular.element(i).bind("touchmove",x),angular.element(i).bind("mouseup",S),angular.element(i).bind("mousemove",x),angular.element(i).bind("mouseleave",E)},k=function(){angular.element(i).unbind("touchend",S),angular.element(i).unbind("touchcancel",S),angular.element(i).unbind("touchmove",x),angular.element(i).unbind("mouseup",S),angular.element(i).unbind("mousemove",x),angular.element(i).unbind("mouseleave",E)},M=function(e){27==e.keyCode&&(s.$$allowNodeDrop=!1,A(e))},angular.element(n.document).bind("keydown",M),s.$on("$destroy",function(){angular.element(n.document).unbind("keydown",M)})}}}])}(),function(){"use strict";angular.module("ui.tree").directive("uiTreeNodes",["treeConfig","$window",function(e){return{require:["ngModel","?^uiTreeNode","^uiTree"],restrict:"A",scope:!0,controller:"TreeNodesController",link:function(t,n,i,r){var o={},a=r[0],s=r[1],l=r[2];angular.extend(o,e),o.nodesClass&&n.addClass(o.nodesClass),s?(s.scope.$childNodesScope=t,t.$nodeScope=s.scope):l.scope.$nodesScope=t,t.$treeScope=l.scope,a&&(a.$render=function(){t.$modelValue=a.$modelValue}),t.$watch(function(){return i.maxDepth},function(e){"number"==typeof e&&(t.maxDepth=e)}),t.$watch(function(){return i.nodropEnabled},function(e){void 0!==e&&(t.nodropEnabled=!0)},!0),i.$observe("horizontal",function(e){t.horizontal=void 0!==e})}}}])}(),function(){"use strict";function e(e,t){if(void 0===t)return null;for(var n=t.parentNode,i=1,r="function"==typeof n.setAttribute&&n.hasAttribute(e)?n:null;n&&"function"==typeof n.setAttribute&&!n.hasAttribute(e);){if(n=n.parentNode,r=n,n===document.documentElement){r=null;break}i++}return r}angular.module("ui.tree").factory("UiTreeHelper",["$document","$window","treeConfig",function(t,n,i){return{nodesData:{},setNodeAttribute:function(e,t,n){if(!e.$modelValue)return null;var i=this.nodesData[e.$modelValue.$$hashKey];i||(i={},this.nodesData[e.$modelValue.$$hashKey]=i),i[t]=n},getNodeAttribute:function(e,t){if(!e.$modelValue)return null;var n=this.nodesData[e.$modelValue.$$hashKey];return n?n[t]:null},nodrag:function(e){return void 0!==e.attr("data-nodrag")&&"false"!==e.attr("data-nodrag")},eventObj:function(e){var t=e;return void 0!==e.targetTouches?t=e.targetTouches.item(0):void 0!==e.originalEvent&&void 0!==e.originalEvent.targetTouches&&(t=e.originalEvent.targetTouches.item(0)),t},dragInfo:function(e){return{source:e,sourceInfo:{cloneModel:!0===e.$treeScope.cloneEnabled?angular.copy(e.$modelValue):void 0,nodeScope:e,index:e.index(),nodesScope:e.$parentNodesScope},index:e.index(),siblings:e.siblings().slice(0),parent:e.$parentNodesScope,moveTo:function(e,t,n){this.parent=e,this.siblings=t.slice(0);var i=this.siblings.indexOf(this.source);i>-1&&(this.siblings.splice(i,1),this.source.index()<n&&n--),this.siblings.splice(n,0,this.source),this.index=n},parentNode:function(){return this.parent.$nodeScope},prev:function(){return this.index>0?this.siblings[this.index-1]:null},next:function(){return this.index<this.siblings.length-1?this.siblings[this.index+1]:null},isClone:function(){return!0===this.source.$treeScope.cloneEnabled},clonedNode:function(e){return angular.copy(e)},isDirty:function(){return this.source.$parentNodesScope!=this.parent||this.source.index()!=this.index},isForeign:function(){return this.source.$treeScope!==this.parent.$treeScope},eventArgs:function(e,t){return{source:this.sourceInfo,dest:{index:this.index,nodesScope:this.parent},elements:e,pos:t}},apply:function(){var e=this.source.$modelValue;this.parent.nodropEnabled||this.parent.$treeScope.nodropEnabled||this.isDirty()&&(this.isClone()&&this.isForeign()?this.parent.insertNode(this.index,this.sourceInfo.cloneModel):(this.source.remove(),this.parent.insertNode(this.index,e)))}}},height:function(e){return e.prop("scrollHeight")},width:function(e){return e.prop("scrollWidth")},offset:function(e){var i=e[0].getBoundingClientRect();return{width:e.prop("offsetWidth"),height:e.prop("offsetHeight"),top:i.top+(n.pageYOffset||t[0].body.scrollTop||t[0].documentElement.scrollTop),left:i.left+(n.pageXOffset||t[0].body.scrollLeft||t[0].documentElement.scrollLeft)}},positionStarted:function(e,t){var n={},i=e.pageX,r=e.pageY;return e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches.length>0&&(i=e.originalEvent.touches[0].pageX,r=e.originalEvent.touches[0].pageY),n.offsetX=i-this.offset(t).left,n.offsetY=r-this.offset(t).top,n.startX=n.lastX=i,n.startY=n.lastY=r,n.nowX=n.nowY=n.distX=n.distY=n.dirAx=0,n.dirX=n.dirY=n.lastDirX=n.lastDirY=n.distAxX=n.distAxY=0,n},positionMoved:function(e,t,n){var i,r=e.pageX,o=e.pageY;if(e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches.length>0&&(r=e.originalEvent.touches[0].pageX,o=e.originalEvent.touches[0].pageY),t.lastX=t.nowX,t.lastY=t.nowY,t.nowX=r,t.nowY=o,t.distX=t.nowX-t.lastX,t.distY=t.nowY-t.lastY,t.lastDirX=t.dirX,t.lastDirY=t.dirY,t.dirX=0===t.distX?0:t.distX>0?1:-1,t.dirY=0===t.distY?0:t.distY>0?1:-1,i=Math.abs(t.distX)>Math.abs(t.distY)?1:0,n)return t.dirAx=i,void(t.moving=!0);t.dirAx!==i?(t.distAxX=0,t.distAxY=0):(t.distAxX+=Math.abs(t.distX),0!==t.dirX&&t.dirX!==t.lastDirX&&(t.distAxX=0),t.distAxY+=Math.abs(t.distY),0!==t.dirY&&t.dirY!==t.lastDirY&&(t.distAxY=0)),t.dirAx=i},elementIsTreeNode:function(e){return void 0!==e.attr("ui-tree-node")},elementIsTreeNodeHandle:function(e){return void 0!==e.attr("ui-tree-handle")},elementIsTree:function(e){return void 0!==e.attr("ui-tree")},elementIsTreeNodes:function(e){return void 0!==e.attr("ui-tree-nodes")},elementIsPlaceholder:function(e){return e.hasClass(i.placeholderClass)},elementContainsTreeNodeHandler:function(e){return e[0].querySelectorAll("[ui-tree-handle]").length>=1},treeNodeHandlerContainerOfElement:function(t){return e("ui-tree-handle",t[0])}}}])}(),function(){var e=window.ResizeSensor;"undefined"!=typeof module&&void 0!==module.exports&&(e=require("./ResizeSensor"));var t=this.ElementQueries=function(){function n(e){e||(e=document.documentElement);var t=getComputedStyle(e,"fontSize");return parseFloat(t)||16}function i(e,t){var i=t.replace(/[0-9]*/,"");switch(t=parseFloat(t),i){case"px":return t;case"em":return t*n(e);case"rem":return t*n();case"vw":return t*document.documentElement.clientWidth/100;case"vh":return t*document.documentElement.clientHeight/100;case"vmin":case"vmax":var r=document.documentElement.clientWidth/100,o=document.documentElement.clientHeight/100;return t*(0,Math["vmin"===i?"min":"max"])(r,o);default:return t}}function r(e){this.element=e,this.options={};var t,n,r,o,a,s,l,c=0,u=0;this.addOption=function(e){var t=[e.mode,e.property,e.value].join(",");this.options[t]=e};var d=["min-width","min-height","max-width","max-height"];this.call=function(){c=this.element.offsetWidth,u=this.element.offsetHeight,a={};for(t in this.options)this.options.hasOwnProperty(t)&&(n=this.options[t],r=i(this.element,n.value),o="width"==n.property?c:u,l=n.mode+"-"+n.property,s="","min"==n.mode&&o>=r&&(s+=n.value),"max"==n.mode&&o<=r&&(s+=n.value),a[l]||(a[l]=""),s&&-1===(" "+a[l]+" ").indexOf(" "+s+" ")&&(a[l]+=" "+s));for(var e in d)d.hasOwnProperty(e)&&(a[d[e]]?this.element.setAttribute(d[e],a[d[e]].substr(1)):this.element.removeAttribute(d[e]))}}function o(t,n){t.elementQueriesSetupInformation?t.elementQueriesSetupInformation.addOption(n):(t.elementQueriesSetupInformation=new r(t),t.elementQueriesSetupInformation.addOption(n),t.elementQueriesSensor=new e(t,function(){t.elementQueriesSetupInformation.call()})),t.elementQueriesSetupInformation.call(),p&&f.indexOf(t)<0&&f.push(t)}function a(e,t,n,i){void 0===m[t]&&(m[t]={}),void 0===m[t][n]&&(m[t][n]={}),void 0===m[t][n][i]?m[t][n][i]=e:m[t][n][i]+=","+e}function s(){var e;if(document.querySelectorAll&&(e=document.querySelectorAll.bind(document)),e||"undefined"==typeof $$||(e=$$),e||"undefined"==typeof jQuery||(e=jQuery),!e)throw"No document.querySelectorAll, jQuery or Mootools's $$ found.";return e}function l(){var e=s();for(var t in m)if(m.hasOwnProperty(t))for(var n in m[t])if(m[t].hasOwnProperty(n))for(var i in m[t][n])if(m[t][n].hasOwnProperty(i))for(var r=e(m[t][n][i]),a=0,l=r.length;a<l;a++)o(r[a],{mode:t,property:n,value:i})}function c(t){function n(){var e,n=!1;for(e in i)i.hasOwnProperty(e)&&r[e].minWidth&&t.offsetWidth>r[e].minWidth&&(n=e);if(n||(n=a),s!=n)if(l[n])i[s].style.display="none",i[n].style.display="block",s=n;else{var c=new Image;c.onload=function(){i[n].src=o[n],i[s].style.display="none",i[n].style.display="block",l[n]=!0,s=n},c.src=o[n]}else i[n].src=o[n]}var i=[],r=[],o=[],a=0,s=-1,l=[];for(var c in t.children)if(t.children.hasOwnProperty(c)&&t.children[c].tagName&&"img"===t.children[c].tagName.toLowerCase()){i.push(t.children[c]);var u=t.children[c].getAttribute("min-width")||t.children[c].getAttribute("data-min-width"),d=t.children[c].getAttribute("data-src")||t.children[c].getAttribute("url");o.push(d);var h={minWidth:u};r.push(h),u?t.children[c].style.display="none":(a=i.length-1,t.children[c].style.display="block")}s=a,t.resizeSensor=new e(t,n),n(),p&&f.push(t)}function u(){for(var e=s()("[data-responsive-image],[responsive-image]"),t=0,n=e.length;t<n;t++)c(e[t])}function d(e){var t,n;for(e=e.replace(/'/g,'"');null!==(t=g.exec(e));)for(n=t[1]+t[3],attrs=t[2];null!==(attrMatch=v.exec(attrs));)a(n,attrMatch[1],attrMatch[2],attrMatch[3])}function h(e){var t="";if(e)if("string"==typeof e)-1===(e=e.toLowerCase()).indexOf("min-width")&&-1===e.indexOf("max-width")||d(e);else for(var n=0,i=e.length;n<i;n++)1===e[n].type?-1!==(t=e[n].selectorText||e[n].cssText).indexOf("min-height")||-1!==t.indexOf("max-height")?d(t):-1===t.indexOf("min-width")&&-1===t.indexOf("max-width")||d(t):4===e[n].type&&h(e[n].cssRules||e[n].rules)}var p=!1,f=[],m={},g=/,?[\s\t]*([^,\n]*?)((?:\[[\s\t]*?(?:min|max)-(?:width|height)[\s\t]*?[~$\^]?=[\s\t]*?"[^"]*?"[\s\t]*?])+)([^,\n\s\{]*)/gim,v=/\[[\s\t]*?(min|max)-(width|height)[\s\t]*?[~$\^]?=[\s\t]*?"([^"]*?)"[\s\t]*?]/gim,b=!1;this.init=function(e){p=void 0!==e&&e;for(var t=0,n=document.styleSheets.length;t<n;t++)try{h(document.styleSheets[t].cssRules||document.styleSheets[t].rules||document.styleSheets[t].cssText)}catch(e){if("SecurityError"!==e.name)throw e}if(!b){var i=document.createElement("style");i.type="text/css",i.innerHTML="[responsive-image] > img, [data-responsive-image] {overflow: hidden; padding: 0; } [responsive-image] > img, [data-responsive-image] > img { width: 100%;}",document.getElementsByTagName("head")[0].appendChild(i),b=!0}l(),u()},this.update=function(e){this.init(e)},this.detach=function(){if(!this.withTracking)throw"withTracking is not enabled. We can not detach elements since we don not store it.Use ElementQueries.withTracking = true; before domready or call ElementQueryes.update(true).";for(var e;e=f.pop();)t.detach(e);f=[]}};t.update=function(e){t.instance.update(e)},t.detach=function(e){e.elementQueriesSetupInformation?(e.elementQueriesSensor.detach(),delete e.elementQueriesSetupInformation,delete e.elementQueriesSensor):e.resizeSensor&&(e.resizeSensor.detach(),delete e.resizeSensor)},t.withTracking=!1,t.init=function(){t.instance||(t.instance=new t),t.instance.init(t.withTracking)};var n=function(e){if(document.addEventListener)document.addEventListener("DOMContentLoaded",e,!1);else if(/KHTML|WebKit|iCab/i.test(navigator.userAgent))var t=setInterval(function(){/loaded|complete/i.test(document.readyState)&&(e(),clearInterval(t))},10);else window.onload=e};t.listen=function(){n(t.init)},"undefined"!=typeof module&&void 0!==module.exports?module.exports=t:(window.ElementQueries=t,t.listen())}(),function(){var e=function(t,n){function i(){this.q=[],this.add=function(e){this.q.push(e)};var e,t;this.call=function(){for(e=0,t=this.q.length;e<t;e++)this.q[e].call()}}function r(e,t){return e.currentStyle?e.currentStyle[t]:window.getComputedStyle?window.getComputedStyle(e,null).getPropertyValue(t):e.style[t]}function o(e,t){if(e.resizedAttached){if(e.resizedAttached)return void e.resizedAttached.add(t)}else e.resizedAttached=new i,e.resizedAttached.add(t);e.resizeSensor=document.createElement("div"),e.resizeSensor.className="resize-sensor";var n="position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;",o="position: absolute; left: 0; top: 0; transition: 0s;";e.resizeSensor.style.cssText=n,e.resizeSensor.innerHTML='<div class="resize-sensor-expand" style="'+n+'"><div style="'+o+'"></div></div><div class="resize-sensor-shrink" style="'+n+'"><div style="'+o+' width: 200%; height: 200%"></div></div>',e.appendChild(e.resizeSensor),{fixed:1,absolute:1}[r(e,"position")]||(e.style.position="relative");var a,s,l=e.resizeSensor.childNodes[0],c=l.childNodes[0],u=e.resizeSensor.childNodes[1],d=(u.childNodes[0],function(){c.style.width=l.offsetWidth+10+"px",c.style.height=l.offsetHeight+10+"px",l.scrollLeft=l.scrollWidth,l.scrollTop=l.scrollHeight,u.scrollLeft=u.scrollWidth,u.scrollTop=u.scrollHeight,a=e.offsetWidth,s=e.offsetHeight});d();var h=function(){e.resizedAttached&&e.resizedAttached.call()},p=function(e,t,n){e.attachEvent?e.attachEvent("on"+t,n):e.addEventListener(t,n)},f=function(){e.offsetWidth==a&&e.offsetHeight==s||h(),d()};p(l,"scroll",f),p(u,"scroll",f)}var a=Object.prototype.toString.call(t),s="[object Array]"===a||"[object NodeList]"===a||"[object HTMLCollection]"===a||"undefined"!=typeof jQuery&&t instanceof jQuery||"undefined"!=typeof Elements&&t instanceof Elements;if(s)for(var l=0,c=t.length;l<c;l++)o(t[l],n);else o(t,n);this.detach=function(){if(s)for(var n=0,i=t.length;n<i;n++)e.detach(t[n]);else e.detach(t)}};e.detach=function(e){e.resizeSensor&&(e.removeChild(e.resizeSensor),delete e.resizeSensor,delete e.resizedAttached)},"undefined"!=typeof module&&void 0!==module.exports?module.exports=e:window.ResizeSensor=e}(),function(e){"function"==typeof define&&define.amd?define(["jquery","datatables.net"],function(t){return e(t,window,document)}):"object"==typeof exports?module.exports=function(t,n){return t||(t=window),n&&n.fn.dataTable||(n=require("datatables.net")(t,n).$),e(n,t,t.document)}:e(jQuery,window,document)}(function(e,t,n,i){"use strict";var r=e.fn.dataTable,o=function(t,n){if(!r.versionCheck||!r.versionCheck("1.10.3"))throw"DataTables Responsive requires DataTables 1.10.3 or newer";this.s={dt:new r.Api(t),columns:[],current:[]},this.s.dt.settings()[0].responsive||(n&&"string"==typeof n.details?n.details={type:n.details}:n&&!1===n.details?n.details={type:!1}:n&&!0===n.details&&(n.details={type:"inline"}),this.c=e.extend(!0,{},o.defaults,r.defaults.responsive,n),t.responsive=this,this._constructor())};e.extend(o.prototype,{_constructor:function(){var n=this,i=this.s.dt,o=i.settings()[0],a=e(t).width();i.settings()[0]._responsive=this,e(t).on("resize.dtr orientationchange.dtr",r.util.throttle(function(){var i=e(t).width();i!==a&&(n._resize(),a=i)})),o.oApi._fnCallbackReg(o,"aoRowCreatedCallback",function(t,r,o){-1!==e.inArray(!1,n.s.current)&&e("td, th",t).each(function(t){var r=i.column.index("toData",t);!1===n.s.current[r]&&e(this).css("display","none")})}),i.on("destroy.dtr",function(){i.off(".dtr"),e(i.table().body()).off(".dtr"),e(t).off("resize.dtr orientationchange.dtr"),e.each(n.s.current,function(e,t){!1===t&&n._setColumnVis(e,!0)})}),this.c.breakpoints.sort(function(e,t){return e.width<t.width?1:e.width>t.width?-1:0}),this._classLogic(),this._resizeAuto();var s=this.c.details;!1!==s.type&&(n._detailsInit(),i.on("column-visibility.dtr",function(e,t,i,r){n._classLogic(),n._resizeAuto(),n._resize()}),i.on("draw.dtr",function(){n._redrawChildren()}),e(i.table().node()).addClass("dtr-"+s.type)),i.on("column-reorder.dtr",function(e,t,i){n._classLogic(),n._resizeAuto(),n._resize()}),i.on("column-sizing.dtr",function(){n._resizeAuto(),n._resize()}),i.on("init.dtr",function(t,r,o){n._resizeAuto(),n._resize(),e.inArray(!1,n.s.current)&&i.columns.adjust()}),this._resize()},_columnsVisiblity:function(t){var n,i,r=this.s.dt,o=this.s.columns,a=o.map(function(e,t){return{columnIdx:t,priority:e.priority}}).sort(function(e,t){return e.priority!==t.priority?e.priority-t.priority:e.columnIdx-t.columnIdx}),s=e.map(o,function(n){return(!n.auto||null!==n.minWidth)&&(!0===n.auto?"-":-1!==e.inArray(t,n.includeIn))}),l=0;for(n=0,i=s.length;n<i;n++)!0===s[n]&&(l+=o[n].minWidth);var c=r.settings()[0].oScroll,u=c.sY||c.sX?c.iBarWidth:0,d=r.table().container().offsetWidth-u-l;for(n=0,i=s.length;n<i;n++)o[n].control&&(d-=o[n].minWidth);var h=!1;for(n=0,i=a.length;n<i;n++){var p=a[n].columnIdx;"-"===s[p]&&!o[p].control&&o[p].minWidth&&(h||d-o[p].minWidth<0?(h=!0,s[p]=!1):s[p]=!0,d-=o[p].minWidth)}var f=!1;for(n=0,i=o.length;n<i;n++)if(!o[n].control&&!o[n].never&&!s[n]){f=!0;break}for(n=0,i=o.length;n<i;n++)o[n].control&&(s[n]=f);return-1===e.inArray(!0,s)&&(s[0]=!0),s},_classLogic:function(){var t=this,n=this.c.breakpoints,r=this.s.dt,o=r.columns().eq(0).map(function(t){var n=this.column(t),o=n.header().className,a=r.settings()[0].aoColumns[t].responsivePriority;if(a===i){var s=e(n.header()).data("priority");a=s!==i?1*s:1e4}return{className:o,includeIn:[],auto:!1,control:!1,never:!!o.match(/\bnever\b/),priority:a}}),a=function(t,n){var i=o[t].includeIn;-1===e.inArray(n,i)&&i.push(n)},s=function(e,i,r,s){var l,c,u;if(r){if("max-"===r)for(l=t._find(i).width,c=0,u=n.length;c<u;c++)n[c].width<=l&&a(e,n[c].name);else if("min-"===r)for(l=t._find(i).width,c=0,u=n.length;c<u;c++)n[c].width>=l&&a(e,n[c].name);else if("not-"===r)for(c=0,u=n.length;c<u;c++)-1===n[c].name.indexOf(s)&&a(e,n[c].name)}else o[e].includeIn.push(i)};o.each(function(t,i){for(var r=t.className.split(" "),o=!1,a=0,l=r.length;a<l;a++){var c=e.trim(r[a]);if("all"===c)return o=!0,void(t.includeIn=e.map(n,function(e){return e.name}));if("none"===c||t.never)return void(o=!0);if("control"===c)return o=!0,void(t.control=!0);e.each(n,function(e,t){var n=t.name.split("-"),r=new RegExp("(min\\-|max\\-|not\\-)?("+n[0]+")(\\-[_a-zA-Z0-9])?"),a=c.match(r);a&&(o=!0,a[2]===n[0]&&a[3]==="-"+n[1]?s(i,t.name,a[1],a[2]+a[3]):a[2]!==n[0]||a[3]||s(i,t.name,a[1],a[2]))})}o||(t.auto=!0)}),this.s.columns=o},_detailsDisplay:function(t,n){var i=this,r=this.s.dt,o=this.c.details;if(o&&!1!==o.type){var a=o.display(t,n,function(){return o.renderer(r,t[0],i._detailsObj(t[0]))});!0!==a&&!1!==a||e(r.table().node()).triggerHandler("responsive-display.dt",[r,t,a,n])}},_detailsInit:function(){var t=this,n=this.s.dt,i=this.c.details;"inline"===i.type&&(i.target="td:first-child, th:first-child"),n.on("draw.dtr",function(){t._tabIndexes()}),t._tabIndexes(),e(n.table().body()).on("keyup.dtr","td, th",function(t){13===t.keyCode&&e(this).data("dtr-keyboard")&&e(this).click()});var r=i.target,o="string"==typeof r?r:"td, th";e(n.table().body()).on("click.dtr mousedown.dtr mouseup.dtr",o,function(i){if(e(n.table().node()).hasClass("collapsed")&&n.row(e(this).closest("tr")).length){if("number"==typeof r){var o=r<0?n.columns().eq(0).length+r:r;if(n.cell(this).index().column!==o)return}var a=n.row(e(this).closest("tr"));"click"===i.type?t._detailsDisplay(a,!1):"mousedown"===i.type?e(this).css("outline","none"):"mouseup"===i.type&&e(this).blur().css("outline","")}})},_detailsObj:function(t){var n=this,i=this.s.dt;return e.map(this.s.columns,function(e,r){if(!e.never&&!e.control)return{title:i.settings()[0].aoColumns[r].sTitle,data:i.cell(t,r).render(n.c.orthogonal),hidden:i.column(r).visible()&&!n.s.current[r],columnIndex:r,rowIndex:t}})},_find:function(e){for(var t=this.c.breakpoints,n=0,i=t.length;n<i;n++)if(t[n].name===e)return t[n]},_redrawChildren:function(){var e=this,t=this.s.dt;t.rows({page:"current"}).iterator("row",function(n,i){t.row(i);e._detailsDisplay(t.row(i),!0)})},_resize:function(){var n,i,r=this,o=this.s.dt,a=e(t).width(),s=this.c.breakpoints,l=s[0].name,c=this.s.columns,u=this.s.current.slice();for(n=s.length-1;n>=0;n--)if(a<=s[n].width){l=s[n].name;break}var d=this._columnsVisiblity(l);this.s.current=d;var h=!1;for(n=0,i=c.length;n<i;n++)if(!1===d[n]&&!c[n].never&&!c[n].control){h=!0;break}e(o.table().node()).toggleClass("collapsed",h);var p=!1;o.columns().eq(0).each(function(e,t){d[t]!==u[t]&&(p=!0,r._setColumnVis(e,d[t]))}),p&&(this._redrawChildren(),e(o.table().node()).trigger("responsive-resize.dt",[o,this.s.current]))},_resizeAuto:function(){var t=this.s.dt,n=this.s.columns;if(this.c.auto&&-1!==e.inArray(!0,e.map(n,function(e){return e.auto}))){t.table().node().offsetWidth,t.columns;var i=t.table().node().cloneNode(!1),r=e(t.table().header().cloneNode(!1)).appendTo(i),o=e(t.table().body()).clone(!1,!1).empty().appendTo(i),a=t.columns().header().filter(function(e){return t.column(e).visible()}).to$().clone(!1).css("display","table-cell");e(o).append(e(t.rows({page:"current"}).nodes()).clone(!1)).find("th, td").css("display","");var s=t.table().footer();if(s){var l=e(s.cloneNode(!1)).appendTo(i),c=t.columns().footer().filter(function(e){return t.column(e).visible()}).to$().clone(!1).css("display","table-cell");e("<tr/>").append(c).appendTo(l)}e("<tr/>").append(a).appendTo(r),"inline"===this.c.details.type&&e(i).addClass("dtr-inline collapsed"),e(i).find("[name]").removeAttr("name");var u=e("<div/>").css({width:1,height:1,overflow:"hidden"}).append(i);u.insertBefore(t.table().node()),a.each(function(e){var i=t.column.index("fromVisible",e);n[i].minWidth=this.offsetWidth||0}),u.remove()}},_setColumnVis:function(t,n){var i=this.s.dt,r=n?"":"none";e(i.column(t).header()).css("display",r),e(i.column(t).footer()).css("display",r),i.column(t).nodes().to$().css("display",r)},_tabIndexes:function(){var t=this.s.dt,n=t.cells({page:"current"}).nodes().to$(),i=t.settings()[0],r=this.c.details.target;n.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]"),e("number"==typeof r?":eq("+r+")":r,t.rows({page:"current"}).nodes()).attr("tabIndex",i.iTabIndex).data("dtr-keyboard",1)}}),o.breakpoints=[{name:"desktop",width:1/0},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}],o.display={childRow:function(t,n,i){return n?e(t.node()).hasClass("parent")?(t.child(i(),"child").show(),!0):void 0:t.child.isShown()?(t.child(!1),e(t.node()).removeClass("parent"),!1):(t.child(i(),"child").show(),e(t.node()).addClass("parent"),!0)},childRowImmediate:function(t,n,i){return!n&&t.child.isShown()||!t.responsive.hasHidden()?(t.child(!1),e(t.node()).removeClass("parent"),!1):(t.child(i(),"child").show(),e(t.node()).addClass("parent"),!0)},modal:function(t){return function(i,r,o){if(r)e("div.dtr-modal-content").empty().append(o());else{var a=function(){s.remove(),e(n).off("keypress.dtr")},s=e('<div class="dtr-modal"/>').append(e('<div class="dtr-modal-display"/>').append(e('<div class="dtr-modal-content"/>').append(o())).append(e('<div class="dtr-modal-close">&times;</div>').click(function(){a()}))).append(e('<div class="dtr-modal-background"/>').click(function(){a()})).appendTo("body");e(n).on("keyup.dtr",function(e){27===e.keyCode&&(e.stopPropagation(),a())})}t&&t.header&&e("div.dtr-modal-content").prepend("<h2>"+t.header(i)+"</h2>")}}},o.renderer={listHidden:function(){return function(t,n,i){var r=e.map(i,function(e){return e.hidden?'<li data-dtr-index="'+e.columnIndex+'" data-dt-row="'+e.rowIndex+'" data-dt-column="'+e.columnIndex+'"><span class="dtr-title">'+e.title+'</span> <span class="dtr-data">'+e.data+"</span></li>":""}).join("");return!!r&&e('<ul data-dtr-index="'+n+'"/>').append(r)}},tableAll:function(t){return t=e.extend({tableClass:""},t),function(n,i,r){var o=e.map(r,function(e){return'<tr data-dt-row="'+e.rowIndex+'" data-dt-column="'+e.columnIndex+'"><td>'+e.title+":</td> <td>"+e.data+"</td></tr>"}).join("");return e('<table class="'+t.tableClass+'" width="100%"/>').append(o)}}},o.defaults={breakpoints:o.breakpoints,auto:!0,details:{display:o.display.childRow,renderer:o.renderer.listHidden(),target:0,type:"inline"},orthogonal:"display"};var a=e.fn.dataTable.Api;return a.register("responsive()",function(){return this}),a.register("responsive.index()",function(t){return t=e(t),{column:t.data("dtr-index"),row:t.parent().data("dtr-index")}}),a.register("responsive.rebuild()",function(){return this.iterator("table",function(e){e._responsive&&e._responsive._classLogic()})}),a.register("responsive.recalc()",function(){return this.iterator("table",function(e){e._responsive&&(e._responsive._resizeAuto(),e._responsive._resize())})}),a.register("responsive.hasHidden()",function(){var t=this.context[0];return!!t._responsive&&-1!==e.inArray(!1,t._responsive.s.current)}),o.version="2.1.0",e.fn.dataTable.Responsive=o,e.fn.DataTable.Responsive=o,e(n).on("preInit.dt.dtr",function(t,n,i){if("dt"===t.namespace&&(e(n.nTable).hasClass("responsive")||e(n.nTable).hasClass("dt-responsive")||n.oInit.responsive||r.defaults.responsive)){var a=n.oInit.responsive;!1!==a&&new o(n,e.isPlainObject(a)?a:{})}}),o}),function(e){"undefined"!=typeof exports?e(exports):(window.hljs=e({}),"function"==typeof define&&define.amd&&define("hljs",[],function(){return window.hljs}))}(function(e){function t(e){return e.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function n(e){return e.nodeName.toLowerCase()}function i(e,t){var n=e&&e.exec(t);return n&&0==n.index}function r(e){return/^(no-?highlight|plain|text)$/i.test(e)}function o(e){var t,n,i,o=e.className+" ";if(o+=e.parentNode?e.parentNode.className:"",n=/\blang(?:uage)?-([\w-]+)\b/i.exec(o))return _(n[1])?n[1]:"no-highlight";for(t=0,i=(o=o.split(/\s+/)).length;t<i;t++)if(_(o[t])||r(o[t]))return o[t]}function a(e,t){var n,i={};for(n in e)i[n]=e[n];if(t)for(n in t)i[n]=t[n];return i}function s(e){var t=[];return function e(i,r){for(var o=i.firstChild;o;o=o.nextSibling)3==o.nodeType?r+=o.nodeValue.length:1==o.nodeType&&(t.push({event:"start",offset:r,node:o}),r=e(o,r),n(o).match(/br|hr|img|input/)||t.push({event:"stop",offset:r,node:o}));return r}(e,0),t}function l(e,i,r){function o(){return e.length&&i.length?e[0].offset!=i[0].offset?e[0].offset<i[0].offset?e:i:"start"==i[0].event?e:i:e.length?e:i}function a(e){function i(e){return" "+e.nodeName+'="'+t(e.value)+'"'}u+="<"+n(e)+Array.prototype.map.call(e.attributes,i).join("")+">"}function s(e){u+="</"+n(e)+">"}function l(e){("start"==e.event?a:s)(e.node)}for(var c=0,u="",d=[];e.length||i.length;){var h=o();if(u+=t(r.substr(c,h[0].offset-c)),c=h[0].offset,h==e){d.reverse().forEach(s);do{l(h.splice(0,1)[0]),h=o()}while(h==e&&h.length&&h[0].offset==c);d.reverse().forEach(a)}else"start"==h[0].event?d.push(h[0].node):d.pop(),l(h.splice(0,1)[0])}return u+t(r.substr(c))}function c(e){function t(e){return e&&e.source||e}function n(n,i){return new RegExp(t(n),"m"+(e.case_insensitive?"i":"")+(i?"g":""))}function i(r,o){if(!r.compiled){if(r.compiled=!0,r.keywords=r.keywords||r.beginKeywords,r.keywords){var s={},l=function(t,n){e.case_insensitive&&(n=n.toLowerCase()),n.split(" ").forEach(function(e){var n=e.split("|");s[n[0]]=[t,n[1]?Number(n[1]):1]})};"string"==typeof r.keywords?l("keyword",r.keywords):Object.keys(r.keywords).forEach(function(e){l(e,r.keywords[e])}),r.keywords=s}r.lexemesRe=n(r.lexemes||/\b\w+\b/,!0),o&&(r.beginKeywords&&(r.begin="\\b("+r.beginKeywords.split(" ").join("|")+")\\b"),r.begin||(r.begin=/\B|\b/),r.beginRe=n(r.begin),r.end||r.endsWithParent||(r.end=/\B|\b/),r.end&&(r.endRe=n(r.end)),r.terminator_end=t(r.end)||"",r.endsWithParent&&o.terminator_end&&(r.terminator_end+=(r.end?"|":"")+o.terminator_end)),r.illegal&&(r.illegalRe=n(r.illegal)),void 0===r.relevance&&(r.relevance=1),r.contains||(r.contains=[]);var c=[];r.contains.forEach(function(e){e.variants?e.variants.forEach(function(t){c.push(a(e,t))}):c.push("self"==e?r:e)}),r.contains=c,r.contains.forEach(function(e){i(e,r)}),r.starts&&i(r.starts,o);var u=r.contains.map(function(e){return e.beginKeywords?"\\.?("+e.begin+")\\.?":e.begin}).concat([r.terminator_end,r.illegal]).map(t).filter(Boolean);r.terminators=u.length?n(u.join("|"),!0):{exec:function(){return null}}}}i(e)}function u(e,n,r,o){function a(e,t){for(var n=0;n<t.contains.length;n++)if(i(t.contains[n].beginRe,e))return t.contains[n]}function s(e,t){if(i(e.endRe,t)){for(;e.endsParent&&e.parent;)e=e.parent;return e}if(e.endsWithParent)return s(e.parent,t)}function l(e,t){return!r&&i(t.illegalRe,e)}function h(e,t){var n=y.case_insensitive?t[0].toLowerCase():t[0];return e.keywords.hasOwnProperty(n)&&e.keywords[n]}function p(e,t,n,i){var r='<span class="'+(i?"":w.classPrefix);return(r+=e+'">')+t+(n?"":"</span>")}function f(){if(!x.keywords)return t(T);var e="",n=0;x.lexemesRe.lastIndex=0;for(var i=x.lexemesRe.exec(T);i;){e+=t(T.substr(n,i.index-n));var r=h(x,i);r?(D+=r[1],e+=p(r[0],t(i[0]))):e+=t(i[0]),n=x.lexemesRe.lastIndex,i=x.lexemesRe.exec(T)}return e+t(T.substr(n))}function m(){var e="string"==typeof x.subLanguage;if(e&&!A[x.subLanguage])return t(T);var n=e?u(x.subLanguage,T,!0,S[x.subLanguage]):d(T,x.subLanguage.length?x.subLanguage:void 0);return x.relevance>0&&(D+=n.relevance),e&&(S[x.subLanguage]=n.top),p(n.language,n.value,!1,!0)}function g(){return void 0!==x.subLanguage?m():f()}function v(e,n){var i=e.className?p(e.className,"",!0):"";e.returnBegin?(E+=i,T=""):e.excludeBegin?(E+=t(n)+i,T=""):(E+=i,T=n),x=Object.create(e,{parent:{value:x}})}function b(e,n){if(T+=e,void 0===n)return E+=g(),0;var i=a(n,x);if(i)return E+=g(),v(i,n),i.returnBegin?0:n.length;var r=s(x,n);if(r){var o=x;o.returnEnd||o.excludeEnd||(T+=n),E+=g();do{x.className&&(E+="</span>"),D+=x.relevance,x=x.parent}while(x!=r.parent);return o.excludeEnd&&(E+=t(n)),T="",r.starts&&v(r.starts,""),o.returnEnd?0:n.length}if(l(n,x))throw new Error('Illegal lexeme "'+n+'" for mode "'+(x.className||"<unnamed>")+'"');return T+=n,n.length||1}var y=_(e);if(!y)throw new Error('Unknown language: "'+e+'"');c(y);var C,x=o||y,S={},E="";for(C=x;C!=y;C=C.parent)C.className&&(E=p(C.className,"",!0)+E);var T="",D=0;try{for(var I,k,M=0;;){if(x.terminators.lastIndex=M,!(I=x.terminators.exec(n)))break;k=b(n.substr(M,I.index-M),I[0]),M=I.index+k}for(b(n.substr(M)),C=x;C.parent;C=C.parent)C.className&&(E+="</span>");return{relevance:D,value:E,language:e,top:x}}catch(e){if(-1!=e.message.indexOf("Illegal"))return{relevance:0,value:t(n)};throw e}}function d(e,n){n=n||w.languages||Object.keys(A);var i={relevance:0,value:t(e)},r=i;return n.forEach(function(t){if(_(t)){var n=u(t,e,!1);n.language=t,n.relevance>r.relevance&&(r=n),n.relevance>i.relevance&&(r=i,i=n)}}),r.language&&(i.second_best=r),i}function h(e){return w.tabReplace&&(e=e.replace(/^((<[^>]+>|\t)+)/gm,function(e,t){return t.replace(/\t/g,w.tabReplace)})),w.useBR&&(e=e.replace(/\n/g,"<br>")),e}function p(e,t,n){var i=t?C[t]:n,r=[e.trim()];return e.match(/\bhljs\b/)||r.push("hljs"),-1===e.indexOf(i)&&r.push(i),r.join(" ").trim()}function f(e){var t=o(e);if(!r(t)){var n;w.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n"):n=e;var i=n.textContent,a=t?u(t,i,!0):d(i),c=s(n);if(c.length){var f=document.createElementNS("http://www.w3.org/1999/xhtml","div");f.innerHTML=a.value,a.value=l(c,s(f),i)}a.value=h(a.value),e.innerHTML=a.value,e.className=p(e.className,t,a.language),e.result={language:a.language,re:a.relevance},a.second_best&&(e.second_best={language:a.second_best.language,re:a.second_best.relevance})}}function m(e){w=a(w,e)}function g(){if(!g.called){g.called=!0;var e=document.querySelectorAll("pre code");Array.prototype.forEach.call(e,f)}}function v(){addEventListener("DOMContentLoaded",g,!1),addEventListener("load",g,!1)}function b(t,n){var i=A[t]=n(e);i.aliases&&i.aliases.forEach(function(e){C[e]=t})}function y(){return Object.keys(A)}function _(e){return e=(e||"").toLowerCase(),A[e]||A[C[e]]}var w={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},A={},C={};return e.highlight=u,e.highlightAuto=d,e.fixMarkup=h,e.highlightBlock=f,e.configure=m,e.initHighlighting=g,e.initHighlightingOnLoad=v,e.registerLanguage=b,e.listLanguages=y,e.getLanguage=_,e.inherit=a,e.IDENT_RE="[a-zA-Z]\\w*",e.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",e.NUMBER_RE="\\b\\d+(\\.\\d+)?",e.C_NUMBER_RE="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BINARY_NUMBER_RE="\\b(0b[01]+)",e.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BACKSLASH_ESCAPE={begin:"\\\\[\\s\\S]",relevance:0},e.APOS_STRING_MODE={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},e.PHRASAL_WORDS_MODE={begin:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},e.COMMENT=function(t,n,i){var r=e.inherit({className:"comment",begin:t,end:n,contains:[]},i||{});return r.contains.push(e.PHRASAL_WORDS_MODE),r.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|XXX):",relevance:0}),r},e.C_LINE_COMMENT_MODE=e.COMMENT("//","$"),e.C_BLOCK_COMMENT_MODE=e.COMMENT("/\\*","\\*/"),e.HASH_COMMENT_MODE=e.COMMENT("#","$"),e.NUMBER_MODE={className:"number",begin:e.NUMBER_RE,relevance:0},e.C_NUMBER_MODE={className:"number",begin:e.C_NUMBER_RE,relevance:0},e.BINARY_NUMBER_MODE={className:"number",begin:e.BINARY_NUMBER_RE,relevance:0},e.CSS_NUMBER_MODE={className:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},e.REGEXP_MODE={className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}]},e.TITLE_MODE={className:"title",begin:e.IDENT_RE,relevance:0},e.UNDERSCORE_TITLE_MODE={className:"title",begin:e.UNDERSCORE_IDENT_RE,relevance:0},e.registerLanguage("1c",function(e){var t="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*",n={className:"dquote",begin:'""'},i={className:"string",begin:'"',end:'"|$',contains:[n]},r={className:"string",begin:"\\|",end:'"|$',contains:[n]};return{case_insensitive:!0,lexemes:t,keywords:{keyword:"возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт",built_in:"ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку  стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон"},contains:[e.C_LINE_COMMENT_MODE,e.NUMBER_MODE,i,r,{className:"function",begin:"(процедура|функция)",end:"$",lexemes:t,keywords:"процедура функция",contains:[e.inherit(e.TITLE_MODE,{begin:t}),{className:"tail",endsWithParent:!0,contains:[{className:"params",begin:"\\(",end:"\\)",lexemes:t,keywords:"знач",contains:[i,r]},{className:"export",begin:"экспорт",endsWithParent:!0,lexemes:t,keywords:"экспорт",contains:[e.C_LINE_COMMENT_MODE]}]},e.C_LINE_COMMENT_MODE]},{className:"preprocessor",begin:"#",end:"$"},{className:"date",begin:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}),e.registerLanguage("accesslog",function(e){return{contains:[{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+\\b",relevance:0},{className:"string",begin:'"(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|PATCH|TRACE)',end:'"',keywords:"GET POST HEAD PUT DELETE CONNECT OPTIONS PATCH TRACE",illegal:"\\n",relevance:10},{className:"string",begin:/\[/,end:/\]/,illegal:"\\n"},{className:"string",begin:'"',end:'"',illegal:"\\n"}]}}),e.registerLanguage("actionscript",function(e){var t={className:"rest_arg",begin:"[.]{3}",end:"[a-zA-Z_$][a-zA-Z0-9_$]*",relevance:10};return{aliases:["as"],keywords:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"package",beginKeywords:"package",end:"{",contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.TITLE_MODE]},{className:"preprocessor",beginKeywords:"import include",end:";"},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t]},{className:"type",begin:":",end:"([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)",relevance:10}]}],illegal:/#/}}),e.registerLanguage("apache",function(e){var t={className:"number",begin:"[\\$%]\\d+"};return{aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"tag",begin:"</?",end:">"},{className:"keyword",begin:/\w+/,relevance:0,keywords:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all"},contains:[{className:"sqbracket",begin:"\\s\\[",end:"\\]$"},{className:"cbracket",begin:"[\\$%]\\{",end:"\\}",contains:["self",t]},t,e.QUOTE_STRING_MODE]}}],illegal:/\S/}}),e.registerLanguage("applescript",function(e){var t=e.inherit(e.QUOTE_STRING_MODE,{illegal:""}),n={className:"params",begin:"\\(",end:"\\)",contains:["self",e.C_NUMBER_MODE,t]},i=e.COMMENT("--","$"),r=[i,e.COMMENT("\\(\\*","\\*\\)",{contains:["self",i]}),e.HASH_COMMENT_MODE];return{aliases:["osascript"],keywords:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},contains:[t,e.C_NUMBER_MODE,{className:"type",begin:"\\bPOSIX file\\b"},{className:"command",begin:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{className:"constant",begin:"\\b(text item delimiters|current application|missing value)\\b"},{className:"keyword",begin:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{className:"property",begin:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{className:"function_start",beginKeywords:"on",illegal:"[${=;\\n]",contains:[e.UNDERSCORE_TITLE_MODE,n]}].concat(r),illegal:"//|->|=>|\\[\\["}}),e.registerLanguage("armasm",function(e){return{case_insensitive:!0,aliases:["arm"],lexemes:"\\.?"+e.IDENT_RE,keywords:{literal:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 ",preprocessor:".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND ",built_in:"{PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @ "},contains:[{className:"keyword",begin:"\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?",end:"\\s"},e.COMMENT("[;@]","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",relevance:0},{className:"title",begin:"\\|",end:"\\|",illegal:"\\n",relevance:0},{className:"number",variants:[{begin:"[#$=]?0x[0-9a-f]+"},{begin:"[#$=]?0b[01]+"},{begin:"[#$=]\\d+"},{begin:"\\b\\d+"}],relevance:0},{className:"label",variants:[{begin:"^[a-z_\\.\\$][a-z0-9_\\.\\$]+"},{begin:"^\\s*[a-z_\\.\\$][a-z0-9_\\.\\$]+:"},{begin:"[=#]\\w+"}],relevance:0}]}}),e.registerLanguage("xml",function(e){var t={begin:/<\?(php)?(?!\w)/,end:/\?>/,subLanguage:"php"},n={endsWithParent:!0,illegal:/</,relevance:0,contains:[t,{className:"attribute",begin:"[A-Za-z0-9\\._:-]+",relevance:0},{begin:"=",relevance:0,contains:[{className:"value",contains:[t],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/},{begin:/[^\s\/>]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],case_insensitive:!0,contains:[{className:"doctype",begin:"<!DOCTYPE",end:">",relevance:10,contains:[{begin:"\\[",end:"\\]"}]},e.COMMENT("\x3c!--","--\x3e",{relevance:10}),{className:"cdata",begin:"<\\!\\[CDATA\\[",end:"\\]\\]>",relevance:10},{className:"tag",begin:"<style(?=\\s|>|$)",end:">",keywords:{title:"style"},contains:[n],starts:{end:"</style>",returnEnd:!0,subLanguage:"css"}},{className:"tag",begin:"<script(?=\\s|>|$)",end:">",keywords:{title:"script"},contains:[n],starts:{end:"<\/script>",returnEnd:!0,subLanguage:["actionscript","javascript","handlebars"]}},t,{className:"pi",begin:/<\?\w+/,end:/\?>/,relevance:10},{className:"tag",begin:"</?",end:"/?>",contains:[{className:"title",begin:/[^ \/><\n\t]+/,relevance:0},n]}]}}),e.registerLanguage("asciidoc",function(e){return{aliases:["adoc"],contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"header",begin:"^(={1,5}) .+?( \\1)?$",relevance:10},{className:"header",begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",relevance:10},{className:"attribute",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"attribute",begin:"^\\[.+?\\]$",relevance:0},{className:"blockquote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},{className:"bullet",begin:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{className:"label",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},{className:"strong",begin:"\\B\\*(?![\\*\\s])",end:"(\\n{2}|\\*)",contains:[{begin:"\\\\*\\w",relevance:0}]},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0},{className:"emphasis",begin:"_(?![_\\s])",end:"(\\n{2}|_)",relevance:0},{className:"smartquote",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},{className:"horizontal_rule",begin:"^'{3,}[ \\t]*$",relevance:10},{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link_url",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"link_label",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}),e.registerLanguage("aspectj",function(e){var t="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else extends implements break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws privileged aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization staticinitialization withincode target within execution getWithinTypeName handler thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents warning error soft precedence thisAspectInstance";return{keywords:t,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"aspect",beginKeywords:"aspect",end:/[{;=]/,excludeEnd:!0,illegal:/[:;"\[\]]/,contains:[{beginKeywords:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},e.UNDERSCORE_TITLE_MODE,{begin:/\([^\)]*/,end:/[)]+/,keywords:t+" get set args call",excludeEnd:!1}]},{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,relevance:0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"pointcut after before around throwing returning",end:/[)]/,excludeEnd:!1,illegal:/["\[\]]/,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[e.UNDERSCORE_TITLE_MODE]}]},{begin:/[:]/,returnBegin:!0,end:/[{;]/,relevance:0,excludeEnd:!1,keywords:t,illegal:/["\[\]]/,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",keywords:t+" get set args call"},e.QUOTE_STRING_MODE]},{beginKeywords:"new throw",relevance:0},{className:"function",begin:/\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,returnBegin:!0,end:/[{;=]/,keywords:t,excludeEnd:!0,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,relevance:0,keywords:t,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"}]}}),e.registerLanguage("autohotkey",function(e){var t={className:"escape",begin:"`[\\s\\S]"},n=e.COMMENT(";","$",{relevance:0});return{case_insensitive:!0,keywords:{keyword:"Break Continue Else Gosub If Loop Return While",literal:"A true false NOT AND OR"},contains:[{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{className:"built_in",beginKeywords:"ComSpec Clipboard ClipboardAll ErrorLevel"}].concat([t,e.inherit(e.QUOTE_STRING_MODE,{contains:[t]}),n,{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"var_expand",begin:"%",end:"%",illegal:"\\n",contains:[t]},{className:"label",contains:[t],variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{begin:",\\s*,",relevance:10}])}}),e.registerLanguage("autoit",function(e){var t={variants:[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#cs","#ce"),e.COMMENT("#comments-start","#comments-end")]},n={className:"variable",begin:"\\$[A-z0-9_]+"},i={className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},r={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:"ByRef Case Const ContinueCase ContinueLoop Default Dim Do Else ElseIf EndFunc EndIf EndSelect EndSwitch EndWith Enum Exit ExitLoop For Func Global If In Local Next ReDim Return Select Static Step Switch Then To Until Volatile WEnd While With",built_in:"Abs ACos AdlibRegister AdlibUnRegister Asc AscW ASin Assign ATan AutoItSetOption AutoItWinGetTitle AutoItWinSetTitle Beep Binary BinaryLen BinaryMid BinaryToString BitAND BitNOT BitOR BitRotate BitShift BitXOR BlockInput Break Call CDTray Ceiling Chr ChrW ClipGet ClipPut ConsoleRead ConsoleWrite ConsoleWriteError ControlClick ControlCommand ControlDisable ControlEnable ControlFocus ControlGetFocus ControlGetHandle ControlGetPos ControlGetText ControlHide ControlListView ControlMove ControlSend ControlSetText ControlShow ControlTreeView Cos Dec DirCopy DirCreate DirGetSize DirMove DirRemove DllCall DllCallAddress DllCallbackFree DllCallbackGetPtr DllCallbackRegister DllClose DllOpen DllStructCreate DllStructGetData DllStructGetPtr DllStructGetSize DllStructSetData DriveGetDrive DriveGetFileSystem DriveGetLabel DriveGetSerial DriveGetType DriveMapAdd DriveMapDel DriveMapGet DriveSetLabel DriveSpaceFree DriveSpaceTotal DriveStatus EnvGet EnvSet EnvUpdate Eval Execute Exp FileChangeDir FileClose FileCopy FileCreateNTFSLink FileCreateShortcut FileDelete FileExists FileFindFirstFile FileFindNextFile FileFlush FileGetAttrib FileGetEncoding FileGetLongName FileGetPos FileGetShortcut FileGetShortName FileGetSize FileGetTime FileGetVersion FileInstall FileMove FileOpen FileOpenDialog FileRead FileReadLine FileReadToArray FileRecycle FileRecycleEmpty FileSaveDialog FileSelectFolder FileSetAttrib FileSetEnd FileSetPos FileSetTime FileWrite FileWriteLine Floor FtpSetProxy FuncName GUICreate GUICtrlCreateAvi GUICtrlCreateButton GUICtrlCreateCheckbox GUICtrlCreateCombo GUICtrlCreateContextMenu GUICtrlCreateDate GUICtrlCreateDummy GUICtrlCreateEdit GUICtrlCreateGraphic GUICtrlCreateGroup GUICtrlCreateIcon GUICtrlCreateInput GUICtrlCreateLabel GUICtrlCreateList GUICtrlCreateListView GUICtrlCreateListViewItem GUICtrlCreateMenu GUICtrlCreateMenuItem GUICtrlCreateMonthCal GUICtrlCreateObj GUICtrlCreatePic GUICtrlCreateProgress GUICtrlCreateRadio GUICtrlCreateSlider GUICtrlCreateTab GUICtrlCreateTabItem GUICtrlCreateTreeView GUICtrlCreateTreeViewItem GUICtrlCreateUpdown GUICtrlDelete GUICtrlGetHandle GUICtrlGetState GUICtrlRead GUICtrlRecvMsg GUICtrlRegisterListViewSort GUICtrlSendMsg GUICtrlSendToDummy GUICtrlSetBkColor GUICtrlSetColor GUICtrlSetCursor GUICtrlSetData GUICtrlSetDefBkColor GUICtrlSetDefColor GUICtrlSetFont GUICtrlSetGraphic GUICtrlSetImage GUICtrlSetLimit GUICtrlSetOnEvent GUICtrlSetPos GUICtrlSetResizing GUICtrlSetState GUICtrlSetStyle GUICtrlSetTip GUIDelete GUIGetCursorInfo GUIGetMsg GUIGetStyle GUIRegisterMsg GUISetAccelerators GUISetBkColor GUISetCoord GUISetCursor GUISetFont GUISetHelp GUISetIcon GUISetOnEvent GUISetState GUISetStyle GUIStartGroup GUISwitch Hex HotKeySet HttpSetProxy HttpSetUserAgent HWnd InetClose InetGet InetGetInfo InetGetSize InetRead IniDelete IniRead IniReadSection IniReadSectionNames IniRenameSection IniWrite IniWriteSection InputBox Int IsAdmin IsArray IsBinary IsBool IsDeclared IsDllStruct IsFloat IsFunc IsHWnd IsInt IsKeyword IsNumber IsObj IsPtr IsString Log MemGetStats Mod MouseClick MouseClickDrag MouseDown MouseGetCursor MouseGetPos MouseMove MouseUp MouseWheel MsgBox Number ObjCreate ObjCreateInterface ObjEvent ObjGet ObjName OnAutoItExitRegister OnAutoItExitUnRegister Opt Ping PixelChecksum PixelGetColor PixelSearch ProcessClose ProcessExists ProcessGetStats ProcessList ProcessSetPriority ProcessWait ProcessWaitClose ProgressOff ProgressOn ProgressSet Ptr Random RegDelete RegEnumKey RegEnumVal RegRead RegWrite Round Run RunAs RunAsWait RunWait Send SendKeepActive SetError SetExtended ShellExecute ShellExecuteWait Shutdown Sin Sleep SoundPlay SoundSetWaveVolume SplashImageOn SplashOff SplashTextOn Sqrt SRandom StatusbarGetText StderrRead StdinWrite StdioClose StdoutRead String StringAddCR StringCompare StringFormat StringFromASCIIArray StringInStr StringIsAlNum StringIsAlpha StringIsASCII StringIsDigit StringIsFloat StringIsInt StringIsLower StringIsSpace StringIsUpper StringIsXDigit StringLeft StringLen StringLower StringMid StringRegExp StringRegExpReplace StringReplace StringReverse StringRight StringSplit StringStripCR StringStripWS StringToASCIIArray StringToBinary StringTrimLeft StringTrimRight StringUpper Tan TCPAccept TCPCloseSocket TCPConnect TCPListen TCPNameToIP TCPRecv TCPSend TCPShutdown TCPStartup TimerDiff TimerInit ToolTip TrayCreateItem TrayCreateMenu TrayGetMsg TrayItemDelete TrayItemGetHandle TrayItemGetState TrayItemGetText TrayItemSetOnEvent TrayItemSetState TrayItemSetText TraySetClick TraySetIcon TraySetOnEvent TraySetPauseIcon TraySetState TraySetToolTip TrayTip UBound UDPBind UDPCloseSocket UDPOpen UDPRecv UDPSend UDPShutdown UDPStartup VarGetType WinActivate WinActive WinClose WinExists WinFlash WinGetCaretPos WinGetClassList WinGetClientSize WinGetHandle WinGetPos WinGetProcess WinGetState WinGetText WinGetTitle WinKill WinList WinMenuSelectItem WinMinimizeAll WinMinimizeAllUndo WinMove WinSetOnTop WinSetState WinSetTitle WinSetTrans WinWait WinWaitActive WinWaitClose WinWaitNotActive Array1DToHistogram ArrayAdd ArrayBinarySearch ArrayColDelete ArrayColInsert ArrayCombinations ArrayConcatenate ArrayDelete ArrayDisplay ArrayExtract ArrayFindAll ArrayInsert ArrayMax ArrayMaxIndex ArrayMin ArrayMinIndex ArrayPermute ArrayPop ArrayPush ArrayReverse ArraySearch ArrayShuffle ArraySort ArraySwap ArrayToClip ArrayToString ArrayTranspose ArrayTrim ArrayUnique Assert ChooseColor ChooseFont ClipBoard_ChangeChain ClipBoard_Close ClipBoard_CountFormats ClipBoard_Empty ClipBoard_EnumFormats ClipBoard_FormatStr ClipBoard_GetData ClipBoard_GetDataEx ClipBoard_GetFormatName ClipBoard_GetOpenWindow ClipBoard_GetOwner ClipBoard_GetPriorityFormat ClipBoard_GetSequenceNumber ClipBoard_GetViewer ClipBoard_IsFormatAvailable ClipBoard_Open ClipBoard_RegisterFormat ClipBoard_SetData ClipBoard_SetDataEx ClipBoard_SetViewer ClipPutFile ColorConvertHSLtoRGB ColorConvertRGBtoHSL ColorGetBlue ColorGetCOLORREF ColorGetGreen ColorGetRed ColorGetRGB ColorSetCOLORREF ColorSetRGB Crypt_DecryptData Crypt_DecryptFile Crypt_DeriveKey Crypt_DestroyKey Crypt_EncryptData Crypt_EncryptFile Crypt_GenRandom Crypt_HashData Crypt_HashFile Crypt_Shutdown Crypt_Startup DateAdd DateDayOfWeek DateDaysInMonth DateDiff DateIsLeapYear DateIsValid DateTimeFormat DateTimeSplit DateToDayOfWeek DateToDayOfWeekISO DateToDayValue DateToMonth Date_Time_CompareFileTime Date_Time_DOSDateTimeToArray Date_Time_DOSDateTimeToFileTime Date_Time_DOSDateTimeToStr Date_Time_DOSDateToArray Date_Time_DOSDateToStr Date_Time_DOSTimeToArray Date_Time_DOSTimeToStr Date_Time_EncodeFileTime Date_Time_EncodeSystemTime Date_Time_FileTimeToArray Date_Time_FileTimeToDOSDateTime Date_Time_FileTimeToLocalFileTime Date_Time_FileTimeToStr Date_Time_FileTimeToSystemTime Date_Time_GetFileTime Date_Time_GetLocalTime Date_Time_GetSystemTime Date_Time_GetSystemTimeAdjustment Date_Time_GetSystemTimeAsFileTime Date_Time_GetSystemTimes Date_Time_GetTickCount Date_Time_GetTimeZoneInformation Date_Time_LocalFileTimeToFileTime Date_Time_SetFileTime Date_Time_SetLocalTime Date_Time_SetSystemTime Date_Time_SetSystemTimeAdjustment Date_Time_SetTimeZoneInformation Date_Time_SystemTimeToArray Date_Time_SystemTimeToDateStr Date_Time_SystemTimeToDateTimeStr Date_Time_SystemTimeToFileTime Date_Time_SystemTimeToTimeStr Date_Time_SystemTimeToTzSpecificLocalTime Date_Time_TzSpecificLocalTimeToSystemTime DayValueToDate DebugBugReportEnv DebugCOMError DebugOut DebugReport DebugReportEx DebugReportVar DebugSetup Degree EventLog__Backup EventLog__Clear EventLog__Close EventLog__Count EventLog__DeregisterSource EventLog__Full EventLog__Notify EventLog__Oldest EventLog__Open EventLog__OpenBackup EventLog__Read EventLog__RegisterSource EventLog__Report Excel_BookAttach Excel_BookClose Excel_BookList Excel_BookNew Excel_BookOpen Excel_BookOpenText Excel_BookSave Excel_BookSaveAs Excel_Close Excel_ColumnToLetter Excel_ColumnToNumber Excel_ConvertFormula Excel_Export Excel_FilterGet Excel_FilterSet Excel_Open Excel_PictureAdd Excel_Print Excel_RangeCopyPaste Excel_RangeDelete Excel_RangeFind Excel_RangeInsert Excel_RangeLinkAddRemove Excel_RangeRead Excel_RangeReplace Excel_RangeSort Excel_RangeValidate Excel_RangeWrite Excel_SheetAdd Excel_SheetCopyMove Excel_SheetDelete Excel_SheetList FileCountLines FileCreate FileListToArray FileListToArrayRec FilePrint FileReadToArray FileWriteFromArray FileWriteLog FileWriteToLine FTP_Close FTP_Command FTP_Connect FTP_DecodeInternetStatus FTP_DirCreate FTP_DirDelete FTP_DirGetCurrent FTP_DirPutContents FTP_DirSetCurrent FTP_FileClose FTP_FileDelete FTP_FileGet FTP_FileGetSize FTP_FileOpen FTP_FilePut FTP_FileRead FTP_FileRename FTP_FileTimeLoHiToStr FTP_FindFileClose FTP_FindFileFirst FTP_FindFileNext FTP_GetLastResponseInfo FTP_ListToArray FTP_ListToArray2D FTP_ListToArrayEx FTP_Open FTP_ProgressDownload FTP_ProgressUpload FTP_SetStatusCallback GDIPlus_ArrowCapCreate GDIPlus_ArrowCapDispose GDIPlus_ArrowCapGetFillState GDIPlus_ArrowCapGetHeight GDIPlus_ArrowCapGetMiddleInset GDIPlus_ArrowCapGetWidth GDIPlus_ArrowCapSetFillState GDIPlus_ArrowCapSetHeight GDIPlus_ArrowCapSetMiddleInset GDIPlus_ArrowCapSetWidth GDIPlus_BitmapApplyEffect GDIPlus_BitmapApplyEffectEx GDIPlus_BitmapCloneArea GDIPlus_BitmapConvertFormat GDIPlus_BitmapCreateApplyEffect GDIPlus_BitmapCreateApplyEffectEx GDIPlus_BitmapCreateDIBFromBitmap GDIPlus_BitmapCreateFromFile GDIPlus_BitmapCreateFromGraphics GDIPlus_BitmapCreateFromHBITMAP GDIPlus_BitmapCreateFromHICON GDIPlus_BitmapCreateFromHICON32 GDIPlus_BitmapCreateFromMemory GDIPlus_BitmapCreateFromResource GDIPlus_BitmapCreateFromScan0 GDIPlus_BitmapCreateFromStream GDIPlus_BitmapCreateHBITMAPFromBitmap GDIPlus_BitmapDispose GDIPlus_BitmapGetHistogram GDIPlus_BitmapGetHistogramEx GDIPlus_BitmapGetHistogramSize GDIPlus_BitmapGetPixel GDIPlus_BitmapLockBits GDIPlus_BitmapSetPixel GDIPlus_BitmapUnlockBits GDIPlus_BrushClone GDIPlus_BrushCreateSolid GDIPlus_BrushDispose GDIPlus_BrushGetSolidColor GDIPlus_BrushGetType GDIPlus_BrushSetSolidColor GDIPlus_ColorMatrixCreate GDIPlus_ColorMatrixCreateGrayScale GDIPlus_ColorMatrixCreateNegative GDIPlus_ColorMatrixCreateSaturation GDIPlus_ColorMatrixCreateScale GDIPlus_ColorMatrixCreateTranslate GDIPlus_CustomLineCapClone GDIPlus_CustomLineCapCreate GDIPlus_CustomLineCapDispose GDIPlus_CustomLineCapGetStrokeCaps GDIPlus_CustomLineCapSetStrokeCaps GDIPlus_Decoders GDIPlus_DecodersGetCount GDIPlus_DecodersGetSize GDIPlus_DrawImageFX GDIPlus_DrawImageFXEx GDIPlus_DrawImagePoints GDIPlus_EffectCreate GDIPlus_EffectCreateBlur GDIPlus_EffectCreateBrightnessContrast GDIPlus_EffectCreateColorBalance GDIPlus_EffectCreateColorCurve GDIPlus_EffectCreateColorLUT GDIPlus_EffectCreateColorMatrix GDIPlus_EffectCreateHueSaturationLightness GDIPlus_EffectCreateLevels GDIPlus_EffectCreateRedEyeCorrection GDIPlus_EffectCreateSharpen GDIPlus_EffectCreateTint GDIPlus_EffectDispose GDIPlus_EffectGetParameters GDIPlus_EffectSetParameters GDIPlus_Encoders GDIPlus_EncodersGetCLSID GDIPlus_EncodersGetCount GDIPlus_EncodersGetParamList GDIPlus_EncodersGetParamListSize GDIPlus_EncodersGetSize GDIPlus_FontCreate GDIPlus_FontDispose GDIPlus_FontFamilyCreate GDIPlus_FontFamilyCreateFromCollection GDIPlus_FontFamilyDispose GDIPlus_FontFamilyGetCellAscent GDIPlus_FontFamilyGetCellDescent GDIPlus_FontFamilyGetEmHeight GDIPlus_FontFamilyGetLineSpacing GDIPlus_FontGetHeight GDIPlus_FontPrivateAddFont GDIPlus_FontPrivateAddMemoryFont GDIPlus_FontPrivateCollectionDispose GDIPlus_FontPrivateCreateCollection GDIPlus_GraphicsClear GDIPlus_GraphicsCreateFromHDC GDIPlus_GraphicsCreateFromHWND GDIPlus_GraphicsDispose GDIPlus_GraphicsDrawArc GDIPlus_GraphicsDrawBezier GDIPlus_GraphicsDrawClosedCurve GDIPlus_GraphicsDrawClosedCurve2 GDIPlus_GraphicsDrawCurve GDIPlus_GraphicsDrawCurve2 GDIPlus_GraphicsDrawEllipse GDIPlus_GraphicsDrawImage GDIPlus_GraphicsDrawImagePointsRect GDIPlus_GraphicsDrawImageRect GDIPlus_GraphicsDrawImageRectRect GDIPlus_GraphicsDrawLine GDIPlus_GraphicsDrawPath GDIPlus_GraphicsDrawPie GDIPlus_GraphicsDrawPolygon GDIPlus_GraphicsDrawRect GDIPlus_GraphicsDrawString GDIPlus_GraphicsDrawStringEx GDIPlus_GraphicsFillClosedCurve GDIPlus_GraphicsFillClosedCurve2 GDIPlus_GraphicsFillEllipse GDIPlus_GraphicsFillPath GDIPlus_GraphicsFillPie GDIPlus_GraphicsFillPolygon GDIPlus_GraphicsFillRect GDIPlus_GraphicsFillRegion GDIPlus_GraphicsGetCompositingMode GDIPlus_GraphicsGetCompositingQuality GDIPlus_GraphicsGetDC GDIPlus_GraphicsGetInterpolationMode GDIPlus_GraphicsGetSmoothingMode GDIPlus_GraphicsGetTransform GDIPlus_GraphicsMeasureCharacterRanges GDIPlus_GraphicsMeasureString GDIPlus_GraphicsReleaseDC GDIPlus_GraphicsResetClip GDIPlus_GraphicsResetTransform GDIPlus_GraphicsRestore GDIPlus_GraphicsRotateTransform GDIPlus_GraphicsSave GDIPlus_GraphicsScaleTransform GDIPlus_GraphicsSetClipPath GDIPlus_GraphicsSetClipRect GDIPlus_GraphicsSetClipRegion GDIPlus_GraphicsSetCompositingMode GDIPlus_GraphicsSetCompositingQuality GDIPlus_GraphicsSetInterpolationMode GDIPlus_GraphicsSetPixelOffsetMode GDIPlus_GraphicsSetSmoothingMode GDIPlus_GraphicsSetTextRenderingHint GDIPlus_GraphicsSetTransform GDIPlus_GraphicsTransformPoints GDIPlus_GraphicsTranslateTransform GDIPlus_HatchBrushCreate GDIPlus_HICONCreateFromBitmap GDIPlus_ImageAttributesCreate GDIPlus_ImageAttributesDispose GDIPlus_ImageAttributesSetColorKeys GDIPlus_ImageAttributesSetColorMatrix GDIPlus_ImageDispose GDIPlus_ImageGetDimension GDIPlus_ImageGetFlags GDIPlus_ImageGetGraphicsContext GDIPlus_ImageGetHeight GDIPlus_ImageGetHorizontalResolution GDIPlus_ImageGetPixelFormat GDIPlus_ImageGetRawFormat GDIPlus_ImageGetThumbnail GDIPlus_ImageGetType GDIPlus_ImageGetVerticalResolution GDIPlus_ImageGetWidth GDIPlus_ImageLoadFromFile GDIPlus_ImageLoadFromStream GDIPlus_ImageResize GDIPlus_ImageRotateFlip GDIPlus_ImageSaveToFile GDIPlus_ImageSaveToFileEx GDIPlus_ImageSaveToStream GDIPlus_ImageScale GDIPlus_LineBrushCreate GDIPlus_LineBrushCreateFromRect GDIPlus_LineBrushCreateFromRectWithAngle GDIPlus_LineBrushGetColors GDIPlus_LineBrushGetRect GDIPlus_LineBrushMultiplyTransform GDIPlus_LineBrushResetTransform GDIPlus_LineBrushSetBlend GDIPlus_LineBrushSetColors GDIPlus_LineBrushSetGammaCorrection GDIPlus_LineBrushSetLinearBlend GDIPlus_LineBrushSetPresetBlend GDIPlus_LineBrushSetSigmaBlend GDIPlus_LineBrushSetTransform GDIPlus_MatrixClone GDIPlus_MatrixCreate GDIPlus_MatrixDispose GDIPlus_MatrixGetElements GDIPlus_MatrixInvert GDIPlus_MatrixMultiply GDIPlus_MatrixRotate GDIPlus_MatrixScale GDIPlus_MatrixSetElements GDIPlus_MatrixShear GDIPlus_MatrixTransformPoints GDIPlus_MatrixTranslate GDIPlus_PaletteInitialize GDIPlus_ParamAdd GDIPlus_ParamInit GDIPlus_ParamSize GDIPlus_PathAddArc GDIPlus_PathAddBezier GDIPlus_PathAddClosedCurve GDIPlus_PathAddClosedCurve2 GDIPlus_PathAddCurve GDIPlus_PathAddCurve2 GDIPlus_PathAddCurve3 GDIPlus_PathAddEllipse GDIPlus_PathAddLine GDIPlus_PathAddLine2 GDIPlus_PathAddPath GDIPlus_PathAddPie GDIPlus_PathAddPolygon GDIPlus_PathAddRectangle GDIPlus_PathAddString GDIPlus_PathBrushCreate GDIPlus_PathBrushCreateFromPath GDIPlus_PathBrushGetCenterPoint GDIPlus_PathBrushGetFocusScales GDIPlus_PathBrushGetPointCount GDIPlus_PathBrushGetRect GDIPlus_PathBrushGetWrapMode GDIPlus_PathBrushMultiplyTransform GDIPlus_PathBrushResetTransform GDIPlus_PathBrushSetBlend GDIPlus_PathBrushSetCenterColor GDIPlus_PathBrushSetCenterPoint GDIPlus_PathBrushSetFocusScales GDIPlus_PathBrushSetGammaCorrection GDIPlus_PathBrushSetLinearBlend GDIPlus_PathBrushSetPresetBlend GDIPlus_PathBrushSetSigmaBlend GDIPlus_PathBrushSetSurroundColor GDIPlus_PathBrushSetSurroundColorsWithCount GDIPlus_PathBrushSetTransform GDIPlus_PathBrushSetWrapMode GDIPlus_PathClone GDIPlus_PathCloseFigure GDIPlus_PathCreate GDIPlus_PathCreate2 GDIPlus_PathDispose GDIPlus_PathFlatten GDIPlus_PathGetData GDIPlus_PathGetFillMode GDIPlus_PathGetLastPoint GDIPlus_PathGetPointCount GDIPlus_PathGetPoints GDIPlus_PathGetWorldBounds GDIPlus_PathIsOutlineVisiblePoint GDIPlus_PathIsVisiblePoint GDIPlus_PathIterCreate GDIPlus_PathIterDispose GDIPlus_PathIterGetSubpathCount GDIPlus_PathIterNextMarkerPath GDIPlus_PathIterNextSubpathPath GDIPlus_PathIterRewind GDIPlus_PathReset GDIPlus_PathReverse GDIPlus_PathSetFillMode GDIPlus_PathSetMarker GDIPlus_PathStartFigure GDIPlus_PathTransform GDIPlus_PathWarp GDIPlus_PathWiden GDIPlus_PathWindingModeOutline GDIPlus_PenCreate GDIPlus_PenCreate2 GDIPlus_PenDispose GDIPlus_PenGetAlignment GDIPlus_PenGetColor GDIPlus_PenGetCustomEndCap GDIPlus_PenGetDashCap GDIPlus_PenGetDashStyle GDIPlus_PenGetEndCap GDIPlus_PenGetMiterLimit GDIPlus_PenGetWidth GDIPlus_PenSetAlignment GDIPlus_PenSetColor GDIPlus_PenSetCustomEndCap GDIPlus_PenSetDashCap GDIPlus_PenSetDashStyle GDIPlus_PenSetEndCap GDIPlus_PenSetLineCap GDIPlus_PenSetLineJoin GDIPlus_PenSetMiterLimit GDIPlus_PenSetStartCap GDIPlus_PenSetWidth GDIPlus_RectFCreate GDIPlus_RegionClone GDIPlus_RegionCombinePath GDIPlus_RegionCombineRect GDIPlus_RegionCombineRegion GDIPlus_RegionCreate GDIPlus_RegionCreateFromPath GDIPlus_RegionCreateFromRect GDIPlus_RegionDispose GDIPlus_RegionGetBounds GDIPlus_RegionGetHRgn GDIPlus_RegionTransform GDIPlus_RegionTranslate GDIPlus_Shutdown GDIPlus_Startup GDIPlus_StringFormatCreate GDIPlus_StringFormatDispose GDIPlus_StringFormatGetMeasurableCharacterRangeCount GDIPlus_StringFormatSetAlign GDIPlus_StringFormatSetLineAlign GDIPlus_StringFormatSetMeasurableCharacterRanges GDIPlus_TextureCreate GDIPlus_TextureCreate2 GDIPlus_TextureCreateIA GetIP GUICtrlAVI_Close GUICtrlAVI_Create GUICtrlAVI_Destroy GUICtrlAVI_IsPlaying GUICtrlAVI_Open GUICtrlAVI_OpenEx GUICtrlAVI_Play GUICtrlAVI_Seek GUICtrlAVI_Show GUICtrlAVI_Stop GUICtrlButton_Click GUICtrlButton_Create GUICtrlButton_Destroy GUICtrlButton_Enable GUICtrlButton_GetCheck GUICtrlButton_GetFocus GUICtrlButton_GetIdealSize GUICtrlButton_GetImage GUICtrlButton_GetImageList GUICtrlButton_GetNote GUICtrlButton_GetNoteLength GUICtrlButton_GetSplitInfo GUICtrlButton_GetState GUICtrlButton_GetText GUICtrlButton_GetTextMargin GUICtrlButton_SetCheck GUICtrlButton_SetDontClick GUICtrlButton_SetFocus GUICtrlButton_SetImage GUICtrlButton_SetImageList GUICtrlButton_SetNote GUICtrlButton_SetShield GUICtrlButton_SetSize GUICtrlButton_SetSplitInfo GUICtrlButton_SetState GUICtrlButton_SetStyle GUICtrlButton_SetText GUICtrlButton_SetTextMargin GUICtrlButton_Show GUICtrlComboBoxEx_AddDir GUICtrlComboBoxEx_AddString GUICtrlComboBoxEx_BeginUpdate GUICtrlComboBoxEx_Create GUICtrlComboBoxEx_CreateSolidBitMap GUICtrlComboBoxEx_DeleteString GUICtrlComboBoxEx_Destroy GUICtrlComboBoxEx_EndUpdate GUICtrlComboBoxEx_FindStringExact GUICtrlComboBoxEx_GetComboBoxInfo GUICtrlComboBoxEx_GetComboControl GUICtrlComboBoxEx_GetCount GUICtrlComboBoxEx_GetCurSel GUICtrlComboBoxEx_GetDroppedControlRect GUICtrlComboBoxEx_GetDroppedControlRectEx GUICtrlComboBoxEx_GetDroppedState GUICtrlComboBoxEx_GetDroppedWidth GUICtrlComboBoxEx_GetEditControl GUICtrlComboBoxEx_GetEditSel GUICtrlComboBoxEx_GetEditText GUICtrlComboBoxEx_GetExtendedStyle GUICtrlComboBoxEx_GetExtendedUI GUICtrlComboBoxEx_GetImageList GUICtrlComboBoxEx_GetItem GUICtrlComboBoxEx_GetItemEx GUICtrlComboBoxEx_GetItemHeight GUICtrlComboBoxEx_GetItemImage GUICtrlComboBoxEx_GetItemIndent GUICtrlComboBoxEx_GetItemOverlayImage GUICtrlComboBoxEx_GetItemParam GUICtrlComboBoxEx_GetItemSelectedImage GUICtrlComboBoxEx_GetItemText GUICtrlComboBoxEx_GetItemTextLen GUICtrlComboBoxEx_GetList GUICtrlComboBoxEx_GetListArray GUICtrlComboBoxEx_GetLocale GUICtrlComboBoxEx_GetLocaleCountry GUICtrlComboBoxEx_GetLocaleLang GUICtrlComboBoxEx_GetLocalePrimLang GUICtrlComboBoxEx_GetLocaleSubLang GUICtrlComboBoxEx_GetMinVisible GUICtrlComboBoxEx_GetTopIndex GUICtrlComboBoxEx_GetUnicode GUICtrlComboBoxEx_InitStorage GUICtrlComboBoxEx_InsertString GUICtrlComboBoxEx_LimitText GUICtrlComboBoxEx_ReplaceEditSel GUICtrlComboBoxEx_ResetContent GUICtrlComboBoxEx_SetCurSel GUICtrlComboBoxEx_SetDroppedWidth GUICtrlComboBoxEx_SetEditSel GUICtrlComboBoxEx_SetEditText GUICtrlComboBoxEx_SetExtendedStyle GUICtrlComboBoxEx_SetExtendedUI GUICtrlComboBoxEx_SetImageList GUICtrlComboBoxEx_SetItem GUICtrlComboBoxEx_SetItemEx GUICtrlComboBoxEx_SetItemHeight GUICtrlComboBoxEx_SetItemImage GUICtrlComboBoxEx_SetItemIndent GUICtrlComboBoxEx_SetItemOverlayImage GUICtrlComboBoxEx_SetItemParam GUICtrlComboBoxEx_SetItemSelectedImage GUICtrlComboBoxEx_SetMinVisible GUICtrlComboBoxEx_SetTopIndex GUICtrlComboBoxEx_SetUnicode GUICtrlComboBoxEx_ShowDropDown GUICtrlComboBox_AddDir GUICtrlComboBox_AddString GUICtrlComboBox_AutoComplete GUICtrlComboBox_BeginUpdate GUICtrlComboBox_Create GUICtrlComboBox_DeleteString GUICtrlComboBox_Destroy GUICtrlComboBox_EndUpdate GUICtrlComboBox_FindString GUICtrlComboBox_FindStringExact GUICtrlComboBox_GetComboBoxInfo GUICtrlComboBox_GetCount GUICtrlComboBox_GetCueBanner GUICtrlComboBox_GetCurSel GUICtrlComboBox_GetDroppedControlRect GUICtrlComboBox_GetDroppedControlRectEx GUICtrlComboBox_GetDroppedState GUICtrlComboBox_GetDroppedWidth GUICtrlComboBox_GetEditSel GUICtrlComboBox_GetEditText GUICtrlComboBox_GetExtendedUI GUICtrlComboBox_GetHorizontalExtent GUICtrlComboBox_GetItemHeight GUICtrlComboBox_GetLBText GUICtrlComboBox_GetLBTextLen GUICtrlComboBox_GetList GUICtrlComboBox_GetListArray GUICtrlComboBox_GetLocale GUICtrlComboBox_GetLocaleCountry GUICtrlComboBox_GetLocaleLang GUICtrlComboBox_GetLocalePrimLang GUICtrlComboBox_GetLocaleSubLang GUICtrlComboBox_GetMinVisible GUICtrlComboBox_GetTopIndex GUICtrlComboBox_InitStorage GUICtrlComboBox_InsertString GUICtrlComboBox_LimitText GUICtrlComboBox_ReplaceEditSel GUICtrlComboBox_ResetContent GUICtrlComboBox_SelectString GUICtrlComboBox_SetCueBanner GUICtrlComboBox_SetCurSel GUICtrlComboBox_SetDroppedWidth GUICtrlComboBox_SetEditSel GUICtrlComboBox_SetEditText GUICtrlComboBox_SetExtendedUI GUICtrlComboBox_SetHorizontalExtent GUICtrlComboBox_SetItemHeight GUICtrlComboBox_SetMinVisible GUICtrlComboBox_SetTopIndex GUICtrlComboBox_ShowDropDown GUICtrlDTP_Create GUICtrlDTP_Destroy GUICtrlDTP_GetMCColor GUICtrlDTP_GetMCFont GUICtrlDTP_GetMonthCal GUICtrlDTP_GetRange GUICtrlDTP_GetRangeEx GUICtrlDTP_GetSystemTime GUICtrlDTP_GetSystemTimeEx GUICtrlDTP_SetFormat GUICtrlDTP_SetMCColor GUICtrlDTP_SetMCFont GUICtrlDTP_SetRange GUICtrlDTP_SetRangeEx GUICtrlDTP_SetSystemTime GUICtrlDTP_SetSystemTimeEx GUICtrlEdit_AppendText GUICtrlEdit_BeginUpdate GUICtrlEdit_CanUndo GUICtrlEdit_CharFromPos GUICtrlEdit_Create GUICtrlEdit_Destroy GUICtrlEdit_EmptyUndoBuffer GUICtrlEdit_EndUpdate GUICtrlEdit_Find GUICtrlEdit_FmtLines GUICtrlEdit_GetCueBanner GUICtrlEdit_GetFirstVisibleLine GUICtrlEdit_GetLimitText GUICtrlEdit_GetLine GUICtrlEdit_GetLineCount GUICtrlEdit_GetMargins GUICtrlEdit_GetModify GUICtrlEdit_GetPasswordChar GUICtrlEdit_GetRECT GUICtrlEdit_GetRECTEx GUICtrlEdit_GetSel GUICtrlEdit_GetText GUICtrlEdit_GetTextLen GUICtrlEdit_HideBalloonTip GUICtrlEdit_InsertText GUICtrlEdit_LineFromChar GUICtrlEdit_LineIndex GUICtrlEdit_LineLength GUICtrlEdit_LineScroll GUICtrlEdit_PosFromChar GUICtrlEdit_ReplaceSel GUICtrlEdit_Scroll GUICtrlEdit_SetCueBanner GUICtrlEdit_SetLimitText GUICtrlEdit_SetMargins GUICtrlEdit_SetModify GUICtrlEdit_SetPasswordChar GUICtrlEdit_SetReadOnly GUICtrlEdit_SetRECT GUICtrlEdit_SetRECTEx GUICtrlEdit_SetRECTNP GUICtrlEdit_SetRectNPEx GUICtrlEdit_SetSel GUICtrlEdit_SetTabStops GUICtrlEdit_SetText GUICtrlEdit_ShowBalloonTip GUICtrlEdit_Undo GUICtrlHeader_AddItem GUICtrlHeader_ClearFilter GUICtrlHeader_ClearFilterAll GUICtrlHeader_Create GUICtrlHeader_CreateDragImage GUICtrlHeader_DeleteItem GUICtrlHeader_Destroy GUICtrlHeader_EditFilter GUICtrlHeader_GetBitmapMargin GUICtrlHeader_GetImageList GUICtrlHeader_GetItem GUICtrlHeader_GetItemAlign GUICtrlHeader_GetItemBitmap GUICtrlHeader_GetItemCount GUICtrlHeader_GetItemDisplay GUICtrlHeader_GetItemFlags GUICtrlHeader_GetItemFormat GUICtrlHeader_GetItemImage GUICtrlHeader_GetItemOrder GUICtrlHeader_GetItemParam GUICtrlHeader_GetItemRect GUICtrlHeader_GetItemRectEx GUICtrlHeader_GetItemText GUICtrlHeader_GetItemWidth GUICtrlHeader_GetOrderArray GUICtrlHeader_GetUnicodeFormat GUICtrlHeader_HitTest GUICtrlHeader_InsertItem GUICtrlHeader_Layout GUICtrlHeader_OrderToIndex GUICtrlHeader_SetBitmapMargin GUICtrlHeader_SetFilterChangeTimeout GUICtrlHeader_SetHotDivider GUICtrlHeader_SetImageList GUICtrlHeader_SetItem GUICtrlHeader_SetItemAlign GUICtrlHeader_SetItemBitmap GUICtrlHeader_SetItemDisplay GUICtrlHeader_SetItemFlags GUICtrlHeader_SetItemFormat GUICtrlHeader_SetItemImage GUICtrlHeader_SetItemOrder GUICtrlHeader_SetItemParam GUICtrlHeader_SetItemText GUICtrlHeader_SetItemWidth GUICtrlHeader_SetOrderArray GUICtrlHeader_SetUnicodeFormat GUICtrlIpAddress_ClearAddress GUICtrlIpAddress_Create GUICtrlIpAddress_Destroy GUICtrlIpAddress_Get GUICtrlIpAddress_GetArray GUICtrlIpAddress_GetEx GUICtrlIpAddress_IsBlank GUICtrlIpAddress_Set GUICtrlIpAddress_SetArray GUICtrlIpAddress_SetEx GUICtrlIpAddress_SetFocus GUICtrlIpAddress_SetFont GUICtrlIpAddress_SetRange GUICtrlIpAddress_ShowHide GUICtrlListBox_AddFile GUICtrlListBox_AddString GUICtrlListBox_BeginUpdate GUICtrlListBox_ClickItem GUICtrlListBox_Create GUICtrlListBox_DeleteString GUICtrlListBox_Destroy GUICtrlListBox_Dir GUICtrlListBox_EndUpdate GUICtrlListBox_FindInText GUICtrlListBox_FindString GUICtrlListBox_GetAnchorIndex GUICtrlListBox_GetCaretIndex GUICtrlListBox_GetCount GUICtrlListBox_GetCurSel GUICtrlListBox_GetHorizontalExtent GUICtrlListBox_GetItemData GUICtrlListBox_GetItemHeight GUICtrlListBox_GetItemRect GUICtrlListBox_GetItemRectEx GUICtrlListBox_GetListBoxInfo GUICtrlListBox_GetLocale GUICtrlListBox_GetLocaleCountry GUICtrlListBox_GetLocaleLang GUICtrlListBox_GetLocalePrimLang GUICtrlListBox_GetLocaleSubLang GUICtrlListBox_GetSel GUICtrlListBox_GetSelCount GUICtrlListBox_GetSelItems GUICtrlListBox_GetSelItemsText GUICtrlListBox_GetText GUICtrlListBox_GetTextLen GUICtrlListBox_GetTopIndex GUICtrlListBox_InitStorage GUICtrlListBox_InsertString GUICtrlListBox_ItemFromPoint GUICtrlListBox_ReplaceString GUICtrlListBox_ResetContent GUICtrlListBox_SelectString GUICtrlListBox_SelItemRange GUICtrlListBox_SelItemRangeEx GUICtrlListBox_SetAnchorIndex GUICtrlListBox_SetCaretIndex GUICtrlListBox_SetColumnWidth GUICtrlListBox_SetCurSel GUICtrlListBox_SetHorizontalExtent GUICtrlListBox_SetItemData GUICtrlListBox_SetItemHeight GUICtrlListBox_SetLocale GUICtrlListBox_SetSel GUICtrlListBox_SetTabStops GUICtrlListBox_SetTopIndex GUICtrlListBox_Sort GUICtrlListBox_SwapString GUICtrlListBox_UpdateHScroll GUICtrlListView_AddArray GUICtrlListView_AddColumn GUICtrlListView_AddItem GUICtrlListView_AddSubItem GUICtrlListView_ApproximateViewHeight GUICtrlListView_ApproximateViewRect GUICtrlListView_ApproximateViewWidth GUICtrlListView_Arrange GUICtrlListView_BeginUpdate GUICtrlListView_CancelEditLabel GUICtrlListView_ClickItem GUICtrlListView_CopyItems GUICtrlListView_Create GUICtrlListView_CreateDragImage GUICtrlListView_CreateSolidBitMap GUICtrlListView_DeleteAllItems GUICtrlListView_DeleteColumn GUICtrlListView_DeleteItem GUICtrlListView_DeleteItemsSelected GUICtrlListView_Destroy GUICtrlListView_DrawDragImage GUICtrlListView_EditLabel GUICtrlListView_EnableGroupView GUICtrlListView_EndUpdate GUICtrlListView_EnsureVisible GUICtrlListView_FindInText GUICtrlListView_FindItem GUICtrlListView_FindNearest GUICtrlListView_FindParam GUICtrlListView_FindText GUICtrlListView_GetBkColor GUICtrlListView_GetBkImage GUICtrlListView_GetCallbackMask GUICtrlListView_GetColumn GUICtrlListView_GetColumnCount GUICtrlListView_GetColumnOrder GUICtrlListView_GetColumnOrderArray GUICtrlListView_GetColumnWidth GUICtrlListView_GetCounterPage GUICtrlListView_GetEditControl GUICtrlListView_GetExtendedListViewStyle GUICtrlListView_GetFocusedGroup GUICtrlListView_GetGroupCount GUICtrlListView_GetGroupInfo GUICtrlListView_GetGroupInfoByIndex GUICtrlListView_GetGroupRect GUICtrlListView_GetGroupViewEnabled GUICtrlListView_GetHeader GUICtrlListView_GetHotCursor GUICtrlListView_GetHotItem GUICtrlListView_GetHoverTime GUICtrlListView_GetImageList GUICtrlListView_GetISearchString GUICtrlListView_GetItem GUICtrlListView_GetItemChecked GUICtrlListView_GetItemCount GUICtrlListView_GetItemCut GUICtrlListView_GetItemDropHilited GUICtrlListView_GetItemEx GUICtrlListView_GetItemFocused GUICtrlListView_GetItemGroupID GUICtrlListView_GetItemImage GUICtrlListView_GetItemIndent GUICtrlListView_GetItemParam GUICtrlListView_GetItemPosition GUICtrlListView_GetItemPositionX GUICtrlListView_GetItemPositionY GUICtrlListView_GetItemRect GUICtrlListView_GetItemRectEx GUICtrlListView_GetItemSelected GUICtrlListView_GetItemSpacing GUICtrlListView_GetItemSpacingX GUICtrlListView_GetItemSpacingY GUICtrlListView_GetItemState GUICtrlListView_GetItemStateImage GUICtrlListView_GetItemText GUICtrlListView_GetItemTextArray GUICtrlListView_GetItemTextString GUICtrlListView_GetNextItem GUICtrlListView_GetNumberOfWorkAreas GUICtrlListView_GetOrigin GUICtrlListView_GetOriginX GUICtrlListView_GetOriginY GUICtrlListView_GetOutlineColor GUICtrlListView_GetSelectedColumn GUICtrlListView_GetSelectedCount GUICtrlListView_GetSelectedIndices GUICtrlListView_GetSelectionMark GUICtrlListView_GetStringWidth GUICtrlListView_GetSubItemRect GUICtrlListView_GetTextBkColor GUICtrlListView_GetTextColor GUICtrlListView_GetToolTips GUICtrlListView_GetTopIndex GUICtrlListView_GetUnicodeFormat GUICtrlListView_GetView GUICtrlListView_GetViewDetails GUICtrlListView_GetViewLarge GUICtrlListView_GetViewList GUICtrlListView_GetViewRect GUICtrlListView_GetViewSmall GUICtrlListView_GetViewTile GUICtrlListView_HideColumn GUICtrlListView_HitTest GUICtrlListView_InsertColumn GUICtrlListView_InsertGroup GUICtrlListView_InsertItem GUICtrlListView_JustifyColumn GUICtrlListView_MapIDToIndex GUICtrlListView_MapIndexToID GUICtrlListView_RedrawItems GUICtrlListView_RegisterSortCallBack GUICtrlListView_RemoveAllGroups GUICtrlListView_RemoveGroup GUICtrlListView_Scroll GUICtrlListView_SetBkColor GUICtrlListView_SetBkImage GUICtrlListView_SetCallBackMask GUICtrlListView_SetColumn GUICtrlListView_SetColumnOrder GUICtrlListView_SetColumnOrderArray GUICtrlListView_SetColumnWidth GUICtrlListView_SetExtendedListViewStyle GUICtrlListView_SetGroupInfo GUICtrlListView_SetHotItem GUICtrlListView_SetHoverTime GUICtrlListView_SetIconSpacing GUICtrlListView_SetImageList GUICtrlListView_SetItem GUICtrlListView_SetItemChecked GUICtrlListView_SetItemCount GUICtrlListView_SetItemCut GUICtrlListView_SetItemDropHilited GUICtrlListView_SetItemEx GUICtrlListView_SetItemFocused GUICtrlListView_SetItemGroupID GUICtrlListView_SetItemImage GUICtrlListView_SetItemIndent GUICtrlListView_SetItemParam GUICtrlListView_SetItemPosition GUICtrlListView_SetItemPosition32 GUICtrlListView_SetItemSelected GUICtrlListView_SetItemState GUICtrlListView_SetItemStateImage GUICtrlListView_SetItemText GUICtrlListView_SetOutlineColor GUICtrlListView_SetSelectedColumn GUICtrlListView_SetSelectionMark GUICtrlListView_SetTextBkColor GUICtrlListView_SetTextColor GUICtrlListView_SetToolTips GUICtrlListView_SetUnicodeFormat GUICtrlListView_SetView GUICtrlListView_SetWorkAreas GUICtrlListView_SimpleSort GUICtrlListView_SortItems GUICtrlListView_SubItemHitTest GUICtrlListView_UnRegisterSortCallBack GUICtrlMenu_AddMenuItem GUICtrlMenu_AppendMenu GUICtrlMenu_CalculatePopupWindowPosition GUICtrlMenu_CheckMenuItem GUICtrlMenu_CheckRadioItem GUICtrlMenu_CreateMenu GUICtrlMenu_CreatePopup GUICtrlMenu_DeleteMenu GUICtrlMenu_DestroyMenu GUICtrlMenu_DrawMenuBar GUICtrlMenu_EnableMenuItem GUICtrlMenu_FindItem GUICtrlMenu_FindParent GUICtrlMenu_GetItemBmp GUICtrlMenu_GetItemBmpChecked GUICtrlMenu_GetItemBmpUnchecked GUICtrlMenu_GetItemChecked GUICtrlMenu_GetItemCount GUICtrlMenu_GetItemData GUICtrlMenu_GetItemDefault GUICtrlMenu_GetItemDisabled GUICtrlMenu_GetItemEnabled GUICtrlMenu_GetItemGrayed GUICtrlMenu_GetItemHighlighted GUICtrlMenu_GetItemID GUICtrlMenu_GetItemInfo GUICtrlMenu_GetItemRect GUICtrlMenu_GetItemRectEx GUICtrlMenu_GetItemState GUICtrlMenu_GetItemStateEx GUICtrlMenu_GetItemSubMenu GUICtrlMenu_GetItemText GUICtrlMenu_GetItemType GUICtrlMenu_GetMenu GUICtrlMenu_GetMenuBackground GUICtrlMenu_GetMenuBarInfo GUICtrlMenu_GetMenuContextHelpID GUICtrlMenu_GetMenuData GUICtrlMenu_GetMenuDefaultItem GUICtrlMenu_GetMenuHeight GUICtrlMenu_GetMenuInfo GUICtrlMenu_GetMenuStyle GUICtrlMenu_GetSystemMenu GUICtrlMenu_InsertMenuItem GUICtrlMenu_InsertMenuItemEx GUICtrlMenu_IsMenu GUICtrlMenu_LoadMenu GUICtrlMenu_MapAccelerator GUICtrlMenu_MenuItemFromPoint GUICtrlMenu_RemoveMenu GUICtrlMenu_SetItemBitmaps GUICtrlMenu_SetItemBmp GUICtrlMenu_SetItemBmpChecked GUICtrlMenu_SetItemBmpUnchecked GUICtrlMenu_SetItemChecked GUICtrlMenu_SetItemData GUICtrlMenu_SetItemDefault GUICtrlMenu_SetItemDisabled GUICtrlMenu_SetItemEnabled GUICtrlMenu_SetItemGrayed GUICtrlMenu_SetItemHighlighted GUICtrlMenu_SetItemID GUICtrlMenu_SetItemInfo GUICtrlMenu_SetItemState GUICtrlMenu_SetItemSubMenu GUICtrlMenu_SetItemText GUICtrlMenu_SetItemType GUICtrlMenu_SetMenu GUICtrlMenu_SetMenuBackground GUICtrlMenu_SetMenuContextHelpID GUICtrlMenu_SetMenuData GUICtrlMenu_SetMenuDefaultItem GUICtrlMenu_SetMenuHeight GUICtrlMenu_SetMenuInfo GUICtrlMenu_SetMenuStyle GUICtrlMenu_TrackPopupMenu GUICtrlMonthCal_Create GUICtrlMonthCal_Destroy GUICtrlMonthCal_GetCalendarBorder GUICtrlMonthCal_GetCalendarCount GUICtrlMonthCal_GetColor GUICtrlMonthCal_GetColorArray GUICtrlMonthCal_GetCurSel GUICtrlMonthCal_GetCurSelStr GUICtrlMonthCal_GetFirstDOW GUICtrlMonthCal_GetFirstDOWStr GUICtrlMonthCal_GetMaxSelCount GUICtrlMonthCal_GetMaxTodayWidth GUICtrlMonthCal_GetMinReqHeight GUICtrlMonthCal_GetMinReqRect GUICtrlMonthCal_GetMinReqRectArray GUICtrlMonthCal_GetMinReqWidth GUICtrlMonthCal_GetMonthDelta GUICtrlMonthCal_GetMonthRange GUICtrlMonthCal_GetMonthRangeMax GUICtrlMonthCal_GetMonthRangeMaxStr GUICtrlMonthCal_GetMonthRangeMin GUICtrlMonthCal_GetMonthRangeMinStr GUICtrlMonthCal_GetMonthRangeSpan GUICtrlMonthCal_GetRange GUICtrlMonthCal_GetRangeMax GUICtrlMonthCal_GetRangeMaxStr GUICtrlMonthCal_GetRangeMin GUICtrlMonthCal_GetRangeMinStr GUICtrlMonthCal_GetSelRange GUICtrlMonthCal_GetSelRangeMax GUICtrlMonthCal_GetSelRangeMaxStr GUICtrlMonthCal_GetSelRangeMin GUICtrlMonthCal_GetSelRangeMinStr GUICtrlMonthCal_GetToday GUICtrlMonthCal_GetTodayStr GUICtrlMonthCal_GetUnicodeFormat GUICtrlMonthCal_HitTest GUICtrlMonthCal_SetCalendarBorder GUICtrlMonthCal_SetColor GUICtrlMonthCal_SetCurSel GUICtrlMonthCal_SetDayState GUICtrlMonthCal_SetFirstDOW GUICtrlMonthCal_SetMaxSelCount GUICtrlMonthCal_SetMonthDelta GUICtrlMonthCal_SetRange GUICtrlMonthCal_SetSelRange GUICtrlMonthCal_SetToday GUICtrlMonthCal_SetUnicodeFormat GUICtrlRebar_AddBand GUICtrlRebar_AddToolBarBand GUICtrlRebar_BeginDrag GUICtrlRebar_Create GUICtrlRebar_DeleteBand GUICtrlRebar_Destroy GUICtrlRebar_DragMove GUICtrlRebar_EndDrag GUICtrlRebar_GetBandBackColor GUICtrlRebar_GetBandBorders GUICtrlRebar_GetBandBordersEx GUICtrlRebar_GetBandChildHandle GUICtrlRebar_GetBandChildSize GUICtrlRebar_GetBandCount GUICtrlRebar_GetBandForeColor GUICtrlRebar_GetBandHeaderSize GUICtrlRebar_GetBandID GUICtrlRebar_GetBandIdealSize GUICtrlRebar_GetBandLength GUICtrlRebar_GetBandLParam GUICtrlRebar_GetBandMargins GUICtrlRebar_GetBandMarginsEx GUICtrlRebar_GetBandRect GUICtrlRebar_GetBandRectEx GUICtrlRebar_GetBandStyle GUICtrlRebar_GetBandStyleBreak GUICtrlRebar_GetBandStyleChildEdge GUICtrlRebar_GetBandStyleFixedBMP GUICtrlRebar_GetBandStyleFixedSize GUICtrlRebar_GetBandStyleGripperAlways GUICtrlRebar_GetBandStyleHidden GUICtrlRebar_GetBandStyleHideTitle GUICtrlRebar_GetBandStyleNoGripper GUICtrlRebar_GetBandStyleTopAlign GUICtrlRebar_GetBandStyleUseChevron GUICtrlRebar_GetBandStyleVariableHeight GUICtrlRebar_GetBandText GUICtrlRebar_GetBarHeight GUICtrlRebar_GetBarInfo GUICtrlRebar_GetBKColor GUICtrlRebar_GetColorScheme GUICtrlRebar_GetRowCount GUICtrlRebar_GetRowHeight GUICtrlRebar_GetTextColor GUICtrlRebar_GetToolTips GUICtrlRebar_GetUnicodeFormat GUICtrlRebar_HitTest GUICtrlRebar_IDToIndex GUICtrlRebar_MaximizeBand GUICtrlRebar_MinimizeBand GUICtrlRebar_MoveBand GUICtrlRebar_SetBandBackColor GUICtrlRebar_SetBandForeColor GUICtrlRebar_SetBandHeaderSize GUICtrlRebar_SetBandID GUICtrlRebar_SetBandIdealSize GUICtrlRebar_SetBandLength GUICtrlRebar_SetBandLParam GUICtrlRebar_SetBandStyle GUICtrlRebar_SetBandStyleBreak GUICtrlRebar_SetBandStyleChildEdge GUICtrlRebar_SetBandStyleFixedBMP GUICtrlRebar_SetBandStyleFixedSize GUICtrlRebar_SetBandStyleGripperAlways GUICtrlRebar_SetBandStyleHidden GUICtrlRebar_SetBandStyleHideTitle GUICtrlRebar_SetBandStyleNoGripper GUICtrlRebar_SetBandStyleTopAlign GUICtrlRebar_SetBandStyleUseChevron GUICtrlRebar_SetBandStyleVariableHeight GUICtrlRebar_SetBandText GUICtrlRebar_SetBarInfo GUICtrlRebar_SetBKColor GUICtrlRebar_SetColorScheme GUICtrlRebar_SetTextColor GUICtrlRebar_SetToolTips GUICtrlRebar_SetUnicodeFormat GUICtrlRebar_ShowBand GUICtrlRichEdit_AppendText GUICtrlRichEdit_AutoDetectURL GUICtrlRichEdit_CanPaste GUICtrlRichEdit_CanPasteSpecial GUICtrlRichEdit_CanRedo GUICtrlRichEdit_CanUndo GUICtrlRichEdit_ChangeFontSize GUICtrlRichEdit_Copy GUICtrlRichEdit_Create GUICtrlRichEdit_Cut GUICtrlRichEdit_Deselect GUICtrlRichEdit_Destroy GUICtrlRichEdit_EmptyUndoBuffer GUICtrlRichEdit_FindText GUICtrlRichEdit_FindTextInRange GUICtrlRichEdit_GetBkColor GUICtrlRichEdit_GetCharAttributes GUICtrlRichEdit_GetCharBkColor GUICtrlRichEdit_GetCharColor GUICtrlRichEdit_GetCharPosFromXY GUICtrlRichEdit_GetCharPosOfNextWord GUICtrlRichEdit_GetCharPosOfPreviousWord GUICtrlRichEdit_GetCharWordBreakInfo GUICtrlRichEdit_GetFirstCharPosOnLine GUICtrlRichEdit_GetFont GUICtrlRichEdit_GetLineCount GUICtrlRichEdit_GetLineLength GUICtrlRichEdit_GetLineNumberFromCharPos GUICtrlRichEdit_GetNextRedo GUICtrlRichEdit_GetNextUndo GUICtrlRichEdit_GetNumberOfFirstVisibleLine GUICtrlRichEdit_GetParaAlignment GUICtrlRichEdit_GetParaAttributes GUICtrlRichEdit_GetParaBorder GUICtrlRichEdit_GetParaIndents GUICtrlRichEdit_GetParaNumbering GUICtrlRichEdit_GetParaShading GUICtrlRichEdit_GetParaSpacing GUICtrlRichEdit_GetParaTabStops GUICtrlRichEdit_GetPasswordChar GUICtrlRichEdit_GetRECT GUICtrlRichEdit_GetScrollPos GUICtrlRichEdit_GetSel GUICtrlRichEdit_GetSelAA GUICtrlRichEdit_GetSelText GUICtrlRichEdit_GetSpaceUnit GUICtrlRichEdit_GetText GUICtrlRichEdit_GetTextInLine GUICtrlRichEdit_GetTextInRange GUICtrlRichEdit_GetTextLength GUICtrlRichEdit_GetVersion GUICtrlRichEdit_GetXYFromCharPos GUICtrlRichEdit_GetZoom GUICtrlRichEdit_GotoCharPos GUICtrlRichEdit_HideSelection GUICtrlRichEdit_InsertText GUICtrlRichEdit_IsModified GUICtrlRichEdit_IsTextSelected GUICtrlRichEdit_Paste GUICtrlRichEdit_PasteSpecial GUICtrlRichEdit_PauseRedraw GUICtrlRichEdit_Redo GUICtrlRichEdit_ReplaceText GUICtrlRichEdit_ResumeRedraw GUICtrlRichEdit_ScrollLineOrPage GUICtrlRichEdit_ScrollLines GUICtrlRichEdit_ScrollToCaret GUICtrlRichEdit_SetBkColor GUICtrlRichEdit_SetCharAttributes GUICtrlRichEdit_SetCharBkColor GUICtrlRichEdit_SetCharColor GUICtrlRichEdit_SetEventMask GUICtrlRichEdit_SetFont GUICtrlRichEdit_SetLimitOnText GUICtrlRichEdit_SetModified GUICtrlRichEdit_SetParaAlignment GUICtrlRichEdit_SetParaAttributes GUICtrlRichEdit_SetParaBorder GUICtrlRichEdit_SetParaIndents GUICtrlRichEdit_SetParaNumbering GUICtrlRichEdit_SetParaShading GUICtrlRichEdit_SetParaSpacing GUICtrlRichEdit_SetParaTabStops GUICtrlRichEdit_SetPasswordChar GUICtrlRichEdit_SetReadOnly GUICtrlRichEdit_SetRECT GUICtrlRichEdit_SetScrollPos GUICtrlRichEdit_SetSel GUICtrlRichEdit_SetSpaceUnit GUICtrlRichEdit_SetTabStops GUICtrlRichEdit_SetText GUICtrlRichEdit_SetUndoLimit GUICtrlRichEdit_SetZoom GUICtrlRichEdit_StreamFromFile GUICtrlRichEdit_StreamFromVar GUICtrlRichEdit_StreamToFile GUICtrlRichEdit_StreamToVar GUICtrlRichEdit_Undo GUICtrlSlider_ClearSel GUICtrlSlider_ClearTics GUICtrlSlider_Create GUICtrlSlider_Destroy GUICtrlSlider_GetBuddy GUICtrlSlider_GetChannelRect GUICtrlSlider_GetChannelRectEx GUICtrlSlider_GetLineSize GUICtrlSlider_GetLogicalTics GUICtrlSlider_GetNumTics GUICtrlSlider_GetPageSize GUICtrlSlider_GetPos GUICtrlSlider_GetRange GUICtrlSlider_GetRangeMax GUICtrlSlider_GetRangeMin GUICtrlSlider_GetSel GUICtrlSlider_GetSelEnd GUICtrlSlider_GetSelStart GUICtrlSlider_GetThumbLength GUICtrlSlider_GetThumbRect GUICtrlSlider_GetThumbRectEx GUICtrlSlider_GetTic GUICtrlSlider_GetTicPos GUICtrlSlider_GetToolTips GUICtrlSlider_GetUnicodeFormat GUICtrlSlider_SetBuddy GUICtrlSlider_SetLineSize GUICtrlSlider_SetPageSize GUICtrlSlider_SetPos GUICtrlSlider_SetRange GUICtrlSlider_SetRangeMax GUICtrlSlider_SetRangeMin GUICtrlSlider_SetSel GUICtrlSlider_SetSelEnd GUICtrlSlider_SetSelStart GUICtrlSlider_SetThumbLength GUICtrlSlider_SetTic GUICtrlSlider_SetTicFreq GUICtrlSlider_SetTipSide GUICtrlSlider_SetToolTips GUICtrlSlider_SetUnicodeFormat GUICtrlStatusBar_Create GUICtrlStatusBar_Destroy GUICtrlStatusBar_EmbedControl GUICtrlStatusBar_GetBorders GUICtrlStatusBar_GetBordersHorz GUICtrlStatusBar_GetBordersRect GUICtrlStatusBar_GetBordersVert GUICtrlStatusBar_GetCount GUICtrlStatusBar_GetHeight GUICtrlStatusBar_GetIcon GUICtrlStatusBar_GetParts GUICtrlStatusBar_GetRect GUICtrlStatusBar_GetRectEx GUICtrlStatusBar_GetText GUICtrlStatusBar_GetTextFlags GUICtrlStatusBar_GetTextLength GUICtrlStatusBar_GetTextLengthEx GUICtrlStatusBar_GetTipText GUICtrlStatusBar_GetUnicodeFormat GUICtrlStatusBar_GetWidth GUICtrlStatusBar_IsSimple GUICtrlStatusBar_Resize GUICtrlStatusBar_SetBkColor GUICtrlStatusBar_SetIcon GUICtrlStatusBar_SetMinHeight GUICtrlStatusBar_SetParts GUICtrlStatusBar_SetSimple GUICtrlStatusBar_SetText GUICtrlStatusBar_SetTipText GUICtrlStatusBar_SetUnicodeFormat GUICtrlStatusBar_ShowHide GUICtrlTab_ActivateTab GUICtrlTab_ClickTab GUICtrlTab_Create GUICtrlTab_DeleteAllItems GUICtrlTab_DeleteItem GUICtrlTab_DeselectAll GUICtrlTab_Destroy GUICtrlTab_FindTab GUICtrlTab_GetCurFocus GUICtrlTab_GetCurSel GUICtrlTab_GetDisplayRect GUICtrlTab_GetDisplayRectEx GUICtrlTab_GetExtendedStyle GUICtrlTab_GetImageList GUICtrlTab_GetItem GUICtrlTab_GetItemCount GUICtrlTab_GetItemImage GUICtrlTab_GetItemParam GUICtrlTab_GetItemRect GUICtrlTab_GetItemRectEx GUICtrlTab_GetItemState GUICtrlTab_GetItemText GUICtrlTab_GetRowCount GUICtrlTab_GetToolTips GUICtrlTab_GetUnicodeFormat GUICtrlTab_HighlightItem GUICtrlTab_HitTest GUICtrlTab_InsertItem GUICtrlTab_RemoveImage GUICtrlTab_SetCurFocus GUICtrlTab_SetCurSel GUICtrlTab_SetExtendedStyle GUICtrlTab_SetImageList GUICtrlTab_SetItem GUICtrlTab_SetItemImage GUICtrlTab_SetItemParam GUICtrlTab_SetItemSize GUICtrlTab_SetItemState GUICtrlTab_SetItemText GUICtrlTab_SetMinTabWidth GUICtrlTab_SetPadding GUICtrlTab_SetToolTips GUICtrlTab_SetUnicodeFormat GUICtrlToolbar_AddBitmap GUICtrlToolbar_AddButton GUICtrlToolbar_AddButtonSep GUICtrlToolbar_AddString GUICtrlToolbar_ButtonCount GUICtrlToolbar_CheckButton GUICtrlToolbar_ClickAccel GUICtrlToolbar_ClickButton GUICtrlToolbar_ClickIndex GUICtrlToolbar_CommandToIndex GUICtrlToolbar_Create GUICtrlToolbar_Customize GUICtrlToolbar_DeleteButton GUICtrlToolbar_Destroy GUICtrlToolbar_EnableButton GUICtrlToolbar_FindToolbar GUICtrlToolbar_GetAnchorHighlight GUICtrlToolbar_GetBitmapFlags GUICtrlToolbar_GetButtonBitmap GUICtrlToolbar_GetButtonInfo GUICtrlToolbar_GetButtonInfoEx GUICtrlToolbar_GetButtonParam GUICtrlToolbar_GetButtonRect GUICtrlToolbar_GetButtonRectEx GUICtrlToolbar_GetButtonSize GUICtrlToolbar_GetButtonState GUICtrlToolbar_GetButtonStyle GUICtrlToolbar_GetButtonText GUICtrlToolbar_GetColorScheme GUICtrlToolbar_GetDisabledImageList GUICtrlToolbar_GetExtendedStyle GUICtrlToolbar_GetHotImageList GUICtrlToolbar_GetHotItem GUICtrlToolbar_GetImageList GUICtrlToolbar_GetInsertMark GUICtrlToolbar_GetInsertMarkColor GUICtrlToolbar_GetMaxSize GUICtrlToolbar_GetMetrics GUICtrlToolbar_GetPadding GUICtrlToolbar_GetRows GUICtrlToolbar_GetString GUICtrlToolbar_GetStyle GUICtrlToolbar_GetStyleAltDrag GUICtrlToolbar_GetStyleCustomErase GUICtrlToolbar_GetStyleFlat GUICtrlToolbar_GetStyleList GUICtrlToolbar_GetStyleRegisterDrop GUICtrlToolbar_GetStyleToolTips GUICtrlToolbar_GetStyleTransparent GUICtrlToolbar_GetStyleWrapable GUICtrlToolbar_GetTextRows GUICtrlToolbar_GetToolTips GUICtrlToolbar_GetUnicodeFormat GUICtrlToolbar_HideButton GUICtrlToolbar_HighlightButton GUICtrlToolbar_HitTest GUICtrlToolbar_IndexToCommand GUICtrlToolbar_InsertButton GUICtrlToolbar_InsertMarkHitTest GUICtrlToolbar_IsButtonChecked GUICtrlToolbar_IsButtonEnabled GUICtrlToolbar_IsButtonHidden GUICtrlToolbar_IsButtonHighlighted GUICtrlToolbar_IsButtonIndeterminate GUICtrlToolbar_IsButtonPressed GUICtrlToolbar_LoadBitmap GUICtrlToolbar_LoadImages GUICtrlToolbar_MapAccelerator GUICtrlToolbar_MoveButton GUICtrlToolbar_PressButton GUICtrlToolbar_SetAnchorHighlight GUICtrlToolbar_SetBitmapSize GUICtrlToolbar_SetButtonBitMap GUICtrlToolbar_SetButtonInfo GUICtrlToolbar_SetButtonInfoEx GUICtrlToolbar_SetButtonParam GUICtrlToolbar_SetButtonSize GUICtrlToolbar_SetButtonState GUICtrlToolbar_SetButtonStyle GUICtrlToolbar_SetButtonText GUICtrlToolbar_SetButtonWidth GUICtrlToolbar_SetCmdID GUICtrlToolbar_SetColorScheme GUICtrlToolbar_SetDisabledImageList GUICtrlToolbar_SetDrawTextFlags GUICtrlToolbar_SetExtendedStyle GUICtrlToolbar_SetHotImageList GUICtrlToolbar_SetHotItem GUICtrlToolbar_SetImageList GUICtrlToolbar_SetIndent GUICtrlToolbar_SetIndeterminate GUICtrlToolbar_SetInsertMark GUICtrlToolbar_SetInsertMarkColor GUICtrlToolbar_SetMaxTextRows GUICtrlToolbar_SetMetrics GUICtrlToolbar_SetPadding GUICtrlToolbar_SetParent GUICtrlToolbar_SetRows GUICtrlToolbar_SetStyle GUICtrlToolbar_SetStyleAltDrag GUICtrlToolbar_SetStyleCustomErase GUICtrlToolbar_SetStyleFlat GUICtrlToolbar_SetStyleList GUICtrlToolbar_SetStyleRegisterDrop GUICtrlToolbar_SetStyleToolTips GUICtrlToolbar_SetStyleTransparent GUICtrlToolbar_SetStyleWrapable GUICtrlToolbar_SetToolTips GUICtrlToolbar_SetUnicodeFormat GUICtrlToolbar_SetWindowTheme GUICtrlTreeView_Add GUICtrlTreeView_AddChild GUICtrlTreeView_AddChildFirst GUICtrlTreeView_AddFirst GUICtrlTreeView_BeginUpdate GUICtrlTreeView_ClickItem GUICtrlTreeView_Create GUICtrlTreeView_CreateDragImage GUICtrlTreeView_CreateSolidBitMap GUICtrlTreeView_Delete GUICtrlTreeView_DeleteAll GUICtrlTreeView_DeleteChildren GUICtrlTreeView_Destroy GUICtrlTreeView_DisplayRect GUICtrlTreeView_DisplayRectEx GUICtrlTreeView_EditText GUICtrlTreeView_EndEdit GUICtrlTreeView_EndUpdate GUICtrlTreeView_EnsureVisible GUICtrlTreeView_Expand GUICtrlTreeView_ExpandedOnce GUICtrlTreeView_FindItem GUICtrlTreeView_FindItemEx GUICtrlTreeView_GetBkColor GUICtrlTreeView_GetBold GUICtrlTreeView_GetChecked GUICtrlTreeView_GetChildCount GUICtrlTreeView_GetChildren GUICtrlTreeView_GetCount GUICtrlTreeView_GetCut GUICtrlTreeView_GetDropTarget GUICtrlTreeView_GetEditControl GUICtrlTreeView_GetExpanded GUICtrlTreeView_GetFirstChild GUICtrlTreeView_GetFirstItem GUICtrlTreeView_GetFirstVisible GUICtrlTreeView_GetFocused GUICtrlTreeView_GetHeight GUICtrlTreeView_GetImageIndex GUICtrlTreeView_GetImageListIconHandle GUICtrlTreeView_GetIndent GUICtrlTreeView_GetInsertMarkColor GUICtrlTreeView_GetISearchString GUICtrlTreeView_GetItemByIndex GUICtrlTreeView_GetItemHandle GUICtrlTreeView_GetItemParam GUICtrlTreeView_GetLastChild GUICtrlTreeView_GetLineColor GUICtrlTreeView_GetNext GUICtrlTreeView_GetNextChild GUICtrlTreeView_GetNextSibling GUICtrlTreeView_GetNextVisible GUICtrlTreeView_GetNormalImageList GUICtrlTreeView_GetParentHandle GUICtrlTreeView_GetParentParam GUICtrlTreeView_GetPrev GUICtrlTreeView_GetPrevChild GUICtrlTreeView_GetPrevSibling GUICtrlTreeView_GetPrevVisible GUICtrlTreeView_GetScrollTime GUICtrlTreeView_GetSelected GUICtrlTreeView_GetSelectedImageIndex GUICtrlTreeView_GetSelection GUICtrlTreeView_GetSiblingCount GUICtrlTreeView_GetState GUICtrlTreeView_GetStateImageIndex GUICtrlTreeView_GetStateImageList GUICtrlTreeView_GetText GUICtrlTreeView_GetTextColor GUICtrlTreeView_GetToolTips GUICtrlTreeView_GetTree GUICtrlTreeView_GetUnicodeFormat GUICtrlTreeView_GetVisible GUICtrlTreeView_GetVisibleCount GUICtrlTreeView_HitTest GUICtrlTreeView_HitTestEx GUICtrlTreeView_HitTestItem GUICtrlTreeView_Index GUICtrlTreeView_InsertItem GUICtrlTreeView_IsFirstItem GUICtrlTreeView_IsParent GUICtrlTreeView_Level GUICtrlTreeView_SelectItem GUICtrlTreeView_SelectItemByIndex GUICtrlTreeView_SetBkColor GUICtrlTreeView_SetBold GUICtrlTreeView_SetChecked GUICtrlTreeView_SetCheckedByIndex GUICtrlTreeView_SetChildren GUICtrlTreeView_SetCut GUICtrlTreeView_SetDropTarget GUICtrlTreeView_SetFocused GUICtrlTreeView_SetHeight GUICtrlTreeView_SetIcon GUICtrlTreeView_SetImageIndex GUICtrlTreeView_SetIndent GUICtrlTreeView_SetInsertMark GUICtrlTreeView_SetInsertMarkColor GUICtrlTreeView_SetItemHeight GUICtrlTreeView_SetItemParam GUICtrlTreeView_SetLineColor GUICtrlTreeView_SetNormalImageList GUICtrlTreeView_SetScrollTime GUICtrlTreeView_SetSelected GUICtrlTreeView_SetSelectedImageIndex GUICtrlTreeView_SetState GUICtrlTreeView_SetStateImageIndex GUICtrlTreeView_SetStateImageList GUICtrlTreeView_SetText GUICtrlTreeView_SetTextColor GUICtrlTreeView_SetToolTips GUICtrlTreeView_SetUnicodeFormat GUICtrlTreeView_Sort GUIImageList_Add GUIImageList_AddBitmap GUIImageList_AddIcon GUIImageList_AddMasked GUIImageList_BeginDrag GUIImageList_Copy GUIImageList_Create GUIImageList_Destroy GUIImageList_DestroyIcon GUIImageList_DragEnter GUIImageList_DragLeave GUIImageList_DragMove GUIImageList_Draw GUIImageList_DrawEx GUIImageList_Duplicate GUIImageList_EndDrag GUIImageList_GetBkColor GUIImageList_GetIcon GUIImageList_GetIconHeight GUIImageList_GetIconSize GUIImageList_GetIconSizeEx GUIImageList_GetIconWidth GUIImageList_GetImageCount GUIImageList_GetImageInfoEx GUIImageList_Remove GUIImageList_ReplaceIcon GUIImageList_SetBkColor GUIImageList_SetIconSize GUIImageList_SetImageCount GUIImageList_Swap GUIScrollBars_EnableScrollBar GUIScrollBars_GetScrollBarInfoEx GUIScrollBars_GetScrollBarRect GUIScrollBars_GetScrollBarRGState GUIScrollBars_GetScrollBarXYLineButton GUIScrollBars_GetScrollBarXYThumbBottom GUIScrollBars_GetScrollBarXYThumbTop GUIScrollBars_GetScrollInfo GUIScrollBars_GetScrollInfoEx GUIScrollBars_GetScrollInfoMax GUIScrollBars_GetScrollInfoMin GUIScrollBars_GetScrollInfoPage GUIScrollBars_GetScrollInfoPos GUIScrollBars_GetScrollInfoTrackPos GUIScrollBars_GetScrollPos GUIScrollBars_GetScrollRange GUIScrollBars_Init GUIScrollBars_ScrollWindow GUIScrollBars_SetScrollInfo GUIScrollBars_SetScrollInfoMax GUIScrollBars_SetScrollInfoMin GUIScrollBars_SetScrollInfoPage GUIScrollBars_SetScrollInfoPos GUIScrollBars_SetScrollRange GUIScrollBars_ShowScrollBar GUIToolTip_Activate GUIToolTip_AddTool GUIToolTip_AdjustRect GUIToolTip_BitsToTTF GUIToolTip_Create GUIToolTip_Deactivate GUIToolTip_DelTool GUIToolTip_Destroy GUIToolTip_EnumTools GUIToolTip_GetBubbleHeight GUIToolTip_GetBubbleSize GUIToolTip_GetBubbleWidth GUIToolTip_GetCurrentTool GUIToolTip_GetDelayTime GUIToolTip_GetMargin GUIToolTip_GetMarginEx GUIToolTip_GetMaxTipWidth GUIToolTip_GetText GUIToolTip_GetTipBkColor GUIToolTip_GetTipTextColor GUIToolTip_GetTitleBitMap GUIToolTip_GetTitleText GUIToolTip_GetToolCount GUIToolTip_GetToolInfo GUIToolTip_HitTest GUIToolTip_NewToolRect GUIToolTip_Pop GUIToolTip_PopUp GUIToolTip_SetDelayTime GUIToolTip_SetMargin GUIToolTip_SetMaxTipWidth GUIToolTip_SetTipBkColor GUIToolTip_SetTipTextColor GUIToolTip_SetTitle GUIToolTip_SetToolInfo GUIToolTip_SetWindowTheme GUIToolTip_ToolExists GUIToolTip_ToolToArray GUIToolTip_TrackActivate GUIToolTip_TrackPosition GUIToolTip_Update GUIToolTip_UpdateTipText HexToString IEAction IEAttach IEBodyReadHTML IEBodyReadText IEBodyWriteHTML IECreate IECreateEmbedded IEDocGetObj IEDocInsertHTML IEDocInsertText IEDocReadHTML IEDocWriteHTML IEErrorNotify IEFormElementCheckBoxSelect IEFormElementGetCollection IEFormElementGetObjByName IEFormElementGetValue IEFormElementOptionSelect IEFormElementRadioSelect IEFormElementSetValue IEFormGetCollection IEFormGetObjByName IEFormImageClick IEFormReset IEFormSubmit IEFrameGetCollection IEFrameGetObjByName IEGetObjById IEGetObjByName IEHeadInsertEventScript IEImgClick IEImgGetCollection IEIsFrameSet IELinkClickByIndex IELinkClickByText IELinkGetCollection IELoadWait IELoadWaitTimeout IENavigate IEPropertyGet IEPropertySet IEQuit IETableGetCollection IETableWriteToArray IETagNameAllGetCollection IETagNameGetCollection IE_Example IE_Introduction IE_VersionInfo INetExplorerCapable INetGetSource INetMail INetSmtpMail IsPressed MathCheckDiv Max MemGlobalAlloc MemGlobalFree MemGlobalLock MemGlobalSize MemGlobalUnlock MemMoveMemory MemVirtualAlloc MemVirtualAllocEx MemVirtualFree MemVirtualFreeEx Min MouseTrap NamedPipes_CallNamedPipe NamedPipes_ConnectNamedPipe NamedPipes_CreateNamedPipe NamedPipes_CreatePipe NamedPipes_DisconnectNamedPipe NamedPipes_GetNamedPipeHandleState NamedPipes_GetNamedPipeInfo NamedPipes_PeekNamedPipe NamedPipes_SetNamedPipeHandleState NamedPipes_TransactNamedPipe NamedPipes_WaitNamedPipe Net_Share_ConnectionEnum Net_Share_FileClose Net_Share_FileEnum Net_Share_FileGetInfo Net_Share_PermStr Net_Share_ResourceStr Net_Share_SessionDel Net_Share_SessionEnum Net_Share_SessionGetInfo Net_Share_ShareAdd Net_Share_ShareCheck Net_Share_ShareDel Net_Share_ShareEnum Net_Share_ShareGetInfo Net_Share_ShareSetInfo Net_Share_StatisticsGetSvr Net_Share_StatisticsGetWrk Now NowCalc NowCalcDate NowDate NowTime PathFull PathGetRelative PathMake PathSplit ProcessGetName ProcessGetPriority Radian ReplaceStringInFile RunDos ScreenCapture_Capture ScreenCapture_CaptureWnd ScreenCapture_SaveImage ScreenCapture_SetBMPFormat ScreenCapture_SetJPGQuality ScreenCapture_SetTIFColorDepth ScreenCapture_SetTIFCompression Security__AdjustTokenPrivileges Security__CreateProcessWithToken Security__DuplicateTokenEx Security__GetAccountSid Security__GetLengthSid Security__GetTokenInformation Security__ImpersonateSelf Security__IsValidSid Security__LookupAccountName Security__LookupAccountSid Security__LookupPrivilegeValue Security__OpenProcessToken Security__OpenThreadToken Security__OpenThreadTokenEx Security__SetPrivilege Security__SetTokenInformation Security__SidToStringSid Security__SidTypeStr Security__StringSidToSid SendMessage SendMessageA SetDate SetTime Singleton SoundClose SoundLength SoundOpen SoundPause SoundPlay SoundPos SoundResume SoundSeek SoundStatus SoundStop SQLite_Changes SQLite_Close SQLite_Display2DResult SQLite_Encode SQLite_ErrCode SQLite_ErrMsg SQLite_Escape SQLite_Exec SQLite_FastEncode SQLite_FastEscape SQLite_FetchData SQLite_FetchNames SQLite_GetTable SQLite_GetTable2d SQLite_LastInsertRowID SQLite_LibVersion SQLite_Open SQLite_Query SQLite_QueryFinalize SQLite_QueryReset SQLite_QuerySingleRow SQLite_SafeMode SQLite_SetTimeout SQLite_Shutdown SQLite_SQLiteExe SQLite_Startup SQLite_TotalChanges StringBetween StringExplode StringInsert StringProper StringRepeat StringTitleCase StringToHex TCPIpToName TempFile TicksToTime Timer_Diff Timer_GetIdleTime Timer_GetTimerID Timer_Init Timer_KillAllTimers Timer_KillTimer Timer_SetTimer TimeToTicks VersionCompare viClose viExecCommand viFindGpib viGpibBusReset viGTL viInteractiveControl viOpen viSetAttribute viSetTimeout WeekNumberISO WinAPI_AbortPath WinAPI_ActivateKeyboardLayout WinAPI_AddClipboardFormatListener WinAPI_AddFontMemResourceEx WinAPI_AddFontResourceEx WinAPI_AddIconOverlay WinAPI_AddIconTransparency WinAPI_AddMRUString WinAPI_AdjustBitmap WinAPI_AdjustTokenPrivileges WinAPI_AdjustWindowRectEx WinAPI_AlphaBlend WinAPI_AngleArc WinAPI_AnimateWindow WinAPI_Arc WinAPI_ArcTo WinAPI_ArrayToStruct WinAPI_AssignProcessToJobObject WinAPI_AssocGetPerceivedType WinAPI_AssocQueryString WinAPI_AttachConsole WinAPI_AttachThreadInput WinAPI_BackupRead WinAPI_BackupReadAbort WinAPI_BackupSeek WinAPI_BackupWrite WinAPI_BackupWriteAbort WinAPI_Beep WinAPI_BeginBufferedPaint WinAPI_BeginDeferWindowPos WinAPI_BeginPaint WinAPI_BeginPath WinAPI_BeginUpdateResource WinAPI_BitBlt WinAPI_BringWindowToTop WinAPI_BroadcastSystemMessage WinAPI_BrowseForFolderDlg WinAPI_BufferedPaintClear WinAPI_BufferedPaintInit WinAPI_BufferedPaintSetAlpha WinAPI_BufferedPaintUnInit WinAPI_CallNextHookEx WinAPI_CallWindowProc WinAPI_CallWindowProcW WinAPI_CascadeWindows WinAPI_ChangeWindowMessageFilterEx WinAPI_CharToOem WinAPI_ChildWindowFromPointEx WinAPI_ClientToScreen WinAPI_ClipCursor WinAPI_CloseDesktop WinAPI_CloseEnhMetaFile WinAPI_CloseFigure WinAPI_CloseHandle WinAPI_CloseThemeData WinAPI_CloseWindow WinAPI_CloseWindowStation WinAPI_CLSIDFromProgID WinAPI_CoInitialize WinAPI_ColorAdjustLuma WinAPI_ColorHLSToRGB WinAPI_ColorRGBToHLS WinAPI_CombineRgn WinAPI_CombineTransform WinAPI_CommandLineToArgv WinAPI_CommDlgExtendedError WinAPI_CommDlgExtendedErrorEx WinAPI_CompareString WinAPI_CompressBitmapBits WinAPI_CompressBuffer WinAPI_ComputeCrc32 WinAPI_ConfirmCredentials WinAPI_CopyBitmap WinAPI_CopyCursor WinAPI_CopyEnhMetaFile WinAPI_CopyFileEx WinAPI_CopyIcon WinAPI_CopyImage WinAPI_CopyRect WinAPI_CopyStruct WinAPI_CoTaskMemAlloc WinAPI_CoTaskMemFree WinAPI_CoTaskMemRealloc WinAPI_CoUninitialize WinAPI_Create32BitHBITMAP WinAPI_Create32BitHICON WinAPI_CreateANDBitmap WinAPI_CreateBitmap WinAPI_CreateBitmapIndirect WinAPI_CreateBrushIndirect WinAPI_CreateBuffer WinAPI_CreateBufferFromStruct WinAPI_CreateCaret WinAPI_CreateColorAdjustment WinAPI_CreateCompatibleBitmap WinAPI_CreateCompatibleBitmapEx WinAPI_CreateCompatibleDC WinAPI_CreateDesktop WinAPI_CreateDIB WinAPI_CreateDIBColorTable WinAPI_CreateDIBitmap WinAPI_CreateDIBSection WinAPI_CreateDirectory WinAPI_CreateDirectoryEx WinAPI_CreateEllipticRgn WinAPI_CreateEmptyIcon WinAPI_CreateEnhMetaFile WinAPI_CreateEvent WinAPI_CreateFile WinAPI_CreateFileEx WinAPI_CreateFileMapping WinAPI_CreateFont WinAPI_CreateFontEx WinAPI_CreateFontIndirect WinAPI_CreateGUID WinAPI_CreateHardLink WinAPI_CreateIcon WinAPI_CreateIconFromResourceEx WinAPI_CreateIconIndirect WinAPI_CreateJobObject WinAPI_CreateMargins WinAPI_CreateMRUList WinAPI_CreateMutex WinAPI_CreateNullRgn WinAPI_CreateNumberFormatInfo WinAPI_CreateObjectID WinAPI_CreatePen WinAPI_CreatePoint WinAPI_CreatePolygonRgn WinAPI_CreateProcess WinAPI_CreateProcessWithToken WinAPI_CreateRect WinAPI_CreateRectEx WinAPI_CreateRectRgn WinAPI_CreateRectRgnIndirect WinAPI_CreateRoundRectRgn WinAPI_CreateSemaphore WinAPI_CreateSize WinAPI_CreateSolidBitmap WinAPI_CreateSolidBrush WinAPI_CreateStreamOnHGlobal WinAPI_CreateString WinAPI_CreateSymbolicLink WinAPI_CreateTransform WinAPI_CreateWindowEx WinAPI_CreateWindowStation WinAPI_DecompressBuffer WinAPI_DecryptFile WinAPI_DeferWindowPos WinAPI_DefineDosDevice WinAPI_DefRawInputProc WinAPI_DefSubclassProc WinAPI_DefWindowProc WinAPI_DefWindowProcW WinAPI_DeleteDC WinAPI_DeleteEnhMetaFile WinAPI_DeleteFile WinAPI_DeleteObject WinAPI_DeleteObjectID WinAPI_DeleteVolumeMountPoint WinAPI_DeregisterShellHookWindow WinAPI_DestroyCaret WinAPI_DestroyCursor WinAPI_DestroyIcon WinAPI_DestroyWindow WinAPI_DeviceIoControl WinAPI_DisplayStruct WinAPI_DllGetVersion WinAPI_DllInstall WinAPI_DllUninstall WinAPI_DPtoLP WinAPI_DragAcceptFiles WinAPI_DragFinish WinAPI_DragQueryFileEx WinAPI_DragQueryPoint WinAPI_DrawAnimatedRects WinAPI_DrawBitmap WinAPI_DrawEdge WinAPI_DrawFocusRect WinAPI_DrawFrameControl WinAPI_DrawIcon WinAPI_DrawIconEx WinAPI_DrawLine WinAPI_DrawShadowText WinAPI_DrawText WinAPI_DrawThemeBackground WinAPI_DrawThemeEdge WinAPI_DrawThemeIcon WinAPI_DrawThemeParentBackground WinAPI_DrawThemeText WinAPI_DrawThemeTextEx WinAPI_DuplicateEncryptionInfoFile WinAPI_DuplicateHandle WinAPI_DuplicateTokenEx WinAPI_DwmDefWindowProc WinAPI_DwmEnableBlurBehindWindow WinAPI_DwmEnableComposition WinAPI_DwmExtendFrameIntoClientArea WinAPI_DwmGetColorizationColor WinAPI_DwmGetColorizationParameters WinAPI_DwmGetWindowAttribute WinAPI_DwmInvalidateIconicBitmaps WinAPI_DwmIsCompositionEnabled WinAPI_DwmQueryThumbnailSourceSize WinAPI_DwmRegisterThumbnail WinAPI_DwmSetColorizationParameters WinAPI_DwmSetIconicLivePreviewBitmap WinAPI_DwmSetIconicThumbnail WinAPI_DwmSetWindowAttribute WinAPI_DwmUnregisterThumbnail WinAPI_DwmUpdateThumbnailProperties WinAPI_DWordToFloat WinAPI_DWordToInt WinAPI_EjectMedia WinAPI_Ellipse WinAPI_EmptyWorkingSet WinAPI_EnableWindow WinAPI_EncryptFile WinAPI_EncryptionDisable WinAPI_EndBufferedPaint WinAPI_EndDeferWindowPos WinAPI_EndPaint WinAPI_EndPath WinAPI_EndUpdateResource WinAPI_EnumChildProcess WinAPI_EnumChildWindows WinAPI_EnumDesktops WinAPI_EnumDesktopWindows WinAPI_EnumDeviceDrivers WinAPI_EnumDisplayDevices WinAPI_EnumDisplayMonitors WinAPI_EnumDisplaySettings WinAPI_EnumDllProc WinAPI_EnumFiles WinAPI_EnumFileStreams WinAPI_EnumFontFamilies WinAPI_EnumHardLinks WinAPI_EnumMRUList WinAPI_EnumPageFiles WinAPI_EnumProcessHandles WinAPI_EnumProcessModules WinAPI_EnumProcessThreads WinAPI_EnumProcessWindows WinAPI_EnumRawInputDevices WinAPI_EnumResourceLanguages WinAPI_EnumResourceNames WinAPI_EnumResourceTypes WinAPI_EnumSystemGeoID WinAPI_EnumSystemLocales WinAPI_EnumUILanguages WinAPI_EnumWindows WinAPI_EnumWindowsPopup WinAPI_EnumWindowStations WinAPI_EnumWindowsTop WinAPI_EqualMemory WinAPI_EqualRect WinAPI_EqualRgn WinAPI_ExcludeClipRect WinAPI_ExpandEnvironmentStrings WinAPI_ExtCreatePen WinAPI_ExtCreateRegion WinAPI_ExtFloodFill WinAPI_ExtractIcon WinAPI_ExtractIconEx WinAPI_ExtSelectClipRgn WinAPI_FatalAppExit WinAPI_FatalExit WinAPI_FileEncryptionStatus WinAPI_FileExists WinAPI_FileIconInit WinAPI_FileInUse WinAPI_FillMemory WinAPI_FillPath WinAPI_FillRect WinAPI_FillRgn WinAPI_FindClose WinAPI_FindCloseChangeNotification WinAPI_FindExecutable WinAPI_FindFirstChangeNotification WinAPI_FindFirstFile WinAPI_FindFirstFileName WinAPI_FindFirstStream WinAPI_FindNextChangeNotification WinAPI_FindNextFile WinAPI_FindNextFileName WinAPI_FindNextStream WinAPI_FindResource WinAPI_FindResourceEx WinAPI_FindTextDlg WinAPI_FindWindow WinAPI_FlashWindow WinAPI_FlashWindowEx WinAPI_FlattenPath WinAPI_FloatToDWord WinAPI_FloatToInt WinAPI_FlushFileBuffers WinAPI_FlushFRBuffer WinAPI_FlushViewOfFile WinAPI_FormatDriveDlg WinAPI_FormatMessage WinAPI_FrameRect WinAPI_FrameRgn WinAPI_FreeLibrary WinAPI_FreeMemory WinAPI_FreeMRUList WinAPI_FreeResource WinAPI_GdiComment WinAPI_GetActiveWindow WinAPI_GetAllUsersProfileDirectory WinAPI_GetAncestor WinAPI_GetApplicationRestartSettings WinAPI_GetArcDirection WinAPI_GetAsyncKeyState WinAPI_GetBinaryType WinAPI_GetBitmapBits WinAPI_GetBitmapDimension WinAPI_GetBitmapDimensionEx WinAPI_GetBkColor WinAPI_GetBkMode WinAPI_GetBoundsRect WinAPI_GetBrushOrg WinAPI_GetBufferedPaintBits WinAPI_GetBufferedPaintDC WinAPI_GetBufferedPaintTargetDC WinAPI_GetBufferedPaintTargetRect WinAPI_GetBValue WinAPI_GetCaretBlinkTime WinAPI_GetCaretPos WinAPI_GetCDType WinAPI_GetClassInfoEx WinAPI_GetClassLongEx WinAPI_GetClassName WinAPI_GetClientHeight WinAPI_GetClientRect WinAPI_GetClientWidth WinAPI_GetClipboardSequenceNumber WinAPI_GetClipBox WinAPI_GetClipCursor WinAPI_GetClipRgn WinAPI_GetColorAdjustment WinAPI_GetCompressedFileSize WinAPI_GetCompression WinAPI_GetConnectedDlg WinAPI_GetCurrentDirectory WinAPI_GetCurrentHwProfile WinAPI_GetCurrentObject WinAPI_GetCurrentPosition WinAPI_GetCurrentProcess WinAPI_GetCurrentProcessExplicitAppUserModelID WinAPI_GetCurrentProcessID WinAPI_GetCurrentThemeName WinAPI_GetCurrentThread WinAPI_GetCurrentThreadId WinAPI_GetCursor WinAPI_GetCursorInfo WinAPI_GetDateFormat WinAPI_GetDC WinAPI_GetDCEx WinAPI_GetDefaultPrinter WinAPI_GetDefaultUserProfileDirectory WinAPI_GetDesktopWindow WinAPI_GetDeviceCaps WinAPI_GetDeviceDriverBaseName WinAPI_GetDeviceDriverFileName WinAPI_GetDeviceGammaRamp WinAPI_GetDIBColorTable WinAPI_GetDIBits WinAPI_GetDiskFreeSpaceEx WinAPI_GetDlgCtrlID WinAPI_GetDlgItem WinAPI_GetDllDirectory WinAPI_GetDriveBusType WinAPI_GetDriveGeometryEx WinAPI_GetDriveNumber WinAPI_GetDriveType WinAPI_GetDurationFormat WinAPI_GetEffectiveClientRect WinAPI_GetEnhMetaFile WinAPI_GetEnhMetaFileBits WinAPI_GetEnhMetaFileDescription WinAPI_GetEnhMetaFileDimension WinAPI_GetEnhMetaFileHeader WinAPI_GetErrorMessage WinAPI_GetErrorMode WinAPI_GetExitCodeProcess WinAPI_GetExtended WinAPI_GetFileAttributes WinAPI_GetFileID WinAPI_GetFileInformationByHandle WinAPI_GetFileInformationByHandleEx WinAPI_GetFilePointerEx WinAPI_GetFileSizeEx WinAPI_GetFileSizeOnDisk WinAPI_GetFileTitle WinAPI_GetFileType WinAPI_GetFileVersionInfo WinAPI_GetFinalPathNameByHandle WinAPI_GetFinalPathNameByHandleEx WinAPI_GetFocus WinAPI_GetFontMemoryResourceInfo WinAPI_GetFontName WinAPI_GetFontResourceInfo WinAPI_GetForegroundWindow WinAPI_GetFRBuffer WinAPI_GetFullPathName WinAPI_GetGeoInfo WinAPI_GetGlyphOutline WinAPI_GetGraphicsMode WinAPI_GetGuiResources WinAPI_GetGUIThreadInfo WinAPI_GetGValue WinAPI_GetHandleInformation WinAPI_GetHGlobalFromStream WinAPI_GetIconDimension WinAPI_GetIconInfo WinAPI_GetIconInfoEx WinAPI_GetIdleTime WinAPI_GetKeyboardLayout WinAPI_GetKeyboardLayoutList WinAPI_GetKeyboardState WinAPI_GetKeyboardType WinAPI_GetKeyNameText WinAPI_GetKeyState WinAPI_GetLastActivePopup WinAPI_GetLastError WinAPI_GetLastErrorMessage WinAPI_GetLayeredWindowAttributes WinAPI_GetLocaleInfo WinAPI_GetLogicalDrives WinAPI_GetMapMode WinAPI_GetMemorySize WinAPI_GetMessageExtraInfo WinAPI_GetModuleFileNameEx WinAPI_GetModuleHandle WinAPI_GetModuleHandleEx WinAPI_GetModuleInformation WinAPI_GetMonitorInfo WinAPI_GetMousePos WinAPI_GetMousePosX WinAPI_GetMousePosY WinAPI_GetMUILanguage WinAPI_GetNumberFormat WinAPI_GetObject WinAPI_GetObjectID WinAPI_GetObjectInfoByHandle WinAPI_GetObjectNameByHandle WinAPI_GetObjectType WinAPI_GetOpenFileName WinAPI_GetOutlineTextMetrics WinAPI_GetOverlappedResult WinAPI_GetParent WinAPI_GetParentProcess WinAPI_GetPerformanceInfo WinAPI_GetPEType WinAPI_GetPhysicallyInstalledSystemMemory WinAPI_GetPixel WinAPI_GetPolyFillMode WinAPI_GetPosFromRect WinAPI_GetPriorityClass WinAPI_GetProcAddress WinAPI_GetProcessAffinityMask WinAPI_GetProcessCommandLine WinAPI_GetProcessFileName WinAPI_GetProcessHandleCount WinAPI_GetProcessID WinAPI_GetProcessIoCounters WinAPI_GetProcessMemoryInfo WinAPI_GetProcessName WinAPI_GetProcessShutdownParameters WinAPI_GetProcessTimes WinAPI_GetProcessUser WinAPI_GetProcessWindowStation WinAPI_GetProcessWorkingDirectory WinAPI_GetProfilesDirectory WinAPI_GetPwrCapabilities WinAPI_GetRawInputBuffer WinAPI_GetRawInputBufferLength WinAPI_GetRawInputData WinAPI_GetRawInputDeviceInfo WinAPI_GetRegionData WinAPI_GetRegisteredRawInputDevices WinAPI_GetRegKeyNameByHandle WinAPI_GetRgnBox WinAPI_GetROP2 WinAPI_GetRValue WinAPI_GetSaveFileName WinAPI_GetShellWindow WinAPI_GetStartupInfo WinAPI_GetStdHandle WinAPI_GetStockObject WinAPI_GetStretchBltMode WinAPI_GetString WinAPI_GetSysColor WinAPI_GetSysColorBrush WinAPI_GetSystemDefaultLangID WinAPI_GetSystemDefaultLCID WinAPI_GetSystemDefaultUILanguage WinAPI_GetSystemDEPPolicy WinAPI_GetSystemInfo WinAPI_GetSystemMetrics WinAPI_GetSystemPowerStatus WinAPI_GetSystemTimes WinAPI_GetSystemWow64Directory WinAPI_GetTabbedTextExtent WinAPI_GetTempFileName WinAPI_GetTextAlign WinAPI_GetTextCharacterExtra WinAPI_GetTextColor WinAPI_GetTextExtentPoint32 WinAPI_GetTextFace WinAPI_GetTextMetrics WinAPI_GetThemeAppProperties WinAPI_GetThemeBackgroundContentRect WinAPI_GetThemeBackgroundExtent WinAPI_GetThemeBackgroundRegion WinAPI_GetThemeBitmap WinAPI_GetThemeBool WinAPI_GetThemeColor WinAPI_GetThemeDocumentationProperty WinAPI_GetThemeEnumValue WinAPI_GetThemeFilename WinAPI_GetThemeFont WinAPI_GetThemeInt WinAPI_GetThemeMargins WinAPI_GetThemeMetric WinAPI_GetThemePartSize WinAPI_GetThemePosition WinAPI_GetThemePropertyOrigin WinAPI_GetThemeRect WinAPI_GetThemeString WinAPI_GetThemeSysBool WinAPI_GetThemeSysColor WinAPI_GetThemeSysColorBrush WinAPI_GetThemeSysFont WinAPI_GetThemeSysInt WinAPI_GetThemeSysSize WinAPI_GetThemeSysString WinAPI_GetThemeTextExtent WinAPI_GetThemeTextMetrics WinAPI_GetThemeTransitionDuration WinAPI_GetThreadDesktop WinAPI_GetThreadErrorMode WinAPI_GetThreadLocale WinAPI_GetThreadUILanguage WinAPI_GetTickCount WinAPI_GetTickCount64 WinAPI_GetTimeFormat WinAPI_GetTopWindow WinAPI_GetUDFColorMode WinAPI_GetUpdateRect WinAPI_GetUpdateRgn WinAPI_GetUserDefaultLangID WinAPI_GetUserDefaultLCID WinAPI_GetUserDefaultUILanguage WinAPI_GetUserGeoID WinAPI_GetUserObjectInformation WinAPI_GetVersion WinAPI_GetVersionEx WinAPI_GetVolumeInformation WinAPI_GetVolumeInformationByHandle WinAPI_GetVolumeNameForVolumeMountPoint WinAPI_GetWindow WinAPI_GetWindowDC WinAPI_GetWindowDisplayAffinity WinAPI_GetWindowExt WinAPI_GetWindowFileName WinAPI_GetWindowHeight WinAPI_GetWindowInfo WinAPI_GetWindowLong WinAPI_GetWindowOrg WinAPI_GetWindowPlacement WinAPI_GetWindowRect WinAPI_GetWindowRgn WinAPI_GetWindowRgnBox WinAPI_GetWindowSubclass WinAPI_GetWindowText WinAPI_GetWindowTheme WinAPI_GetWindowThreadProcessId WinAPI_GetWindowWidth WinAPI_GetWorkArea WinAPI_GetWorldTransform WinAPI_GetXYFromPoint WinAPI_GlobalMemoryStatus WinAPI_GradientFill WinAPI_GUIDFromString WinAPI_GUIDFromStringEx WinAPI_HashData WinAPI_HashString WinAPI_HiByte WinAPI_HideCaret WinAPI_HiDWord WinAPI_HiWord WinAPI_InflateRect WinAPI_InitMUILanguage WinAPI_InProcess WinAPI_IntersectClipRect WinAPI_IntersectRect WinAPI_IntToDWord WinAPI_IntToFloat WinAPI_InvalidateRect WinAPI_InvalidateRgn WinAPI_InvertANDBitmap WinAPI_InvertColor WinAPI_InvertRect WinAPI_InvertRgn WinAPI_IOCTL WinAPI_IsAlphaBitmap WinAPI_IsBadCodePtr WinAPI_IsBadReadPtr WinAPI_IsBadStringPtr WinAPI_IsBadWritePtr WinAPI_IsChild WinAPI_IsClassName WinAPI_IsDoorOpen WinAPI_IsElevated WinAPI_IsHungAppWindow WinAPI_IsIconic WinAPI_IsInternetConnected WinAPI_IsLoadKBLayout WinAPI_IsMemory WinAPI_IsNameInExpression WinAPI_IsNetworkAlive WinAPI_IsPathShared WinAPI_IsProcessInJob WinAPI_IsProcessorFeaturePresent WinAPI_IsRectEmpty WinAPI_IsThemeActive WinAPI_IsThemeBackgroundPartiallyTransparent WinAPI_IsThemePartDefined WinAPI_IsValidLocale WinAPI_IsWindow WinAPI_IsWindowEnabled WinAPI_IsWindowUnicode WinAPI_IsWindowVisible WinAPI_IsWow64Process WinAPI_IsWritable WinAPI_IsZoomed WinAPI_Keybd_Event WinAPI_KillTimer WinAPI_LineDDA WinAPI_LineTo WinAPI_LoadBitmap WinAPI_LoadCursor WinAPI_LoadCursorFromFile WinAPI_LoadIcon WinAPI_LoadIconMetric WinAPI_LoadIconWithScaleDown WinAPI_LoadImage WinAPI_LoadIndirectString WinAPI_LoadKeyboardLayout WinAPI_LoadLibrary WinAPI_LoadLibraryEx WinAPI_LoadMedia WinAPI_LoadResource WinAPI_LoadShell32Icon WinAPI_LoadString WinAPI_LoadStringEx WinAPI_LoByte WinAPI_LocalFree WinAPI_LockDevice WinAPI_LockFile WinAPI_LockResource WinAPI_LockWindowUpdate WinAPI_LockWorkStation WinAPI_LoDWord WinAPI_LongMid WinAPI_LookupIconIdFromDirectoryEx WinAPI_LoWord WinAPI_LPtoDP WinAPI_MAKELANGID WinAPI_MAKELCID WinAPI_MakeLong WinAPI_MakeQWord WinAPI_MakeWord WinAPI_MapViewOfFile WinAPI_MapVirtualKey WinAPI_MaskBlt WinAPI_MessageBeep WinAPI_MessageBoxCheck WinAPI_MessageBoxIndirect WinAPI_MirrorIcon WinAPI_ModifyWorldTransform WinAPI_MonitorFromPoint WinAPI_MonitorFromRect WinAPI_MonitorFromWindow WinAPI_Mouse_Event WinAPI_MoveFileEx WinAPI_MoveMemory WinAPI_MoveTo WinAPI_MoveToEx WinAPI_MoveWindow WinAPI_MsgBox WinAPI_MulDiv WinAPI_MultiByteToWideChar WinAPI_MultiByteToWideCharEx WinAPI_NtStatusToDosError WinAPI_OemToChar WinAPI_OffsetClipRgn WinAPI_OffsetPoints WinAPI_OffsetRect WinAPI_OffsetRgn WinAPI_OffsetWindowOrg WinAPI_OpenDesktop WinAPI_OpenFileById WinAPI_OpenFileDlg WinAPI_OpenFileMapping WinAPI_OpenIcon WinAPI_OpenInputDesktop WinAPI_OpenJobObject WinAPI_OpenMutex WinAPI_OpenProcess WinAPI_OpenProcessToken WinAPI_OpenSemaphore WinAPI_OpenThemeData WinAPI_OpenWindowStation WinAPI_PageSetupDlg WinAPI_PaintDesktop WinAPI_PaintRgn WinAPI_ParseURL WinAPI_ParseUserName WinAPI_PatBlt WinAPI_PathAddBackslash WinAPI_PathAddExtension WinAPI_PathAppend WinAPI_PathBuildRoot WinAPI_PathCanonicalize WinAPI_PathCommonPrefix WinAPI_PathCompactPath WinAPI_PathCompactPathEx WinAPI_PathCreateFromUrl WinAPI_PathFindExtension WinAPI_PathFindFileName WinAPI_PathFindNextComponent WinAPI_PathFindOnPath WinAPI_PathGetArgs WinAPI_PathGetCharType WinAPI_PathGetDriveNumber WinAPI_PathIsContentType WinAPI_PathIsDirectory WinAPI_PathIsDirectoryEmpty WinAPI_PathIsExe WinAPI_PathIsFileSpec WinAPI_PathIsLFNFileSpec WinAPI_PathIsRelative WinAPI_PathIsRoot WinAPI_PathIsSameRoot WinAPI_PathIsSystemFolder WinAPI_PathIsUNC WinAPI_PathIsUNCServer WinAPI_PathIsUNCServerShare WinAPI_PathMakeSystemFolder WinAPI_PathMatchSpec WinAPI_PathParseIconLocation WinAPI_PathRelativePathTo WinAPI_PathRemoveArgs WinAPI_PathRemoveBackslash WinAPI_PathRemoveExtension WinAPI_PathRemoveFileSpec WinAPI_PathRenameExtension WinAPI_PathSearchAndQualify WinAPI_PathSkipRoot WinAPI_PathStripPath WinAPI_PathStripToRoot WinAPI_PathToRegion WinAPI_PathUndecorate WinAPI_PathUnExpandEnvStrings WinAPI_PathUnmakeSystemFolder WinAPI_PathUnquoteSpaces WinAPI_PathYetAnotherMakeUniqueName WinAPI_PickIconDlg WinAPI_PlayEnhMetaFile WinAPI_PlaySound WinAPI_PlgBlt WinAPI_PointFromRect WinAPI_PolyBezier WinAPI_PolyBezierTo WinAPI_PolyDraw WinAPI_Polygon WinAPI_PostMessage WinAPI_PrimaryLangId WinAPI_PrintDlg WinAPI_PrintDlgEx WinAPI_PrintWindow WinAPI_ProgIDFromCLSID WinAPI_PtInRect WinAPI_PtInRectEx WinAPI_PtInRegion WinAPI_PtVisible WinAPI_QueryDosDevice WinAPI_QueryInformationJobObject WinAPI_QueryPerformanceCounter WinAPI_QueryPerformanceFrequency WinAPI_RadialGradientFill WinAPI_ReadDirectoryChanges WinAPI_ReadFile WinAPI_ReadProcessMemory WinAPI_Rectangle WinAPI_RectInRegion WinAPI_RectIsEmpty WinAPI_RectVisible WinAPI_RedrawWindow WinAPI_RegCloseKey WinAPI_RegConnectRegistry WinAPI_RegCopyTree WinAPI_RegCopyTreeEx WinAPI_RegCreateKey WinAPI_RegDeleteEmptyKey WinAPI_RegDeleteKey WinAPI_RegDeleteKeyValue WinAPI_RegDeleteTree WinAPI_RegDeleteTreeEx WinAPI_RegDeleteValue WinAPI_RegDisableReflectionKey WinAPI_RegDuplicateHKey WinAPI_RegEnableReflectionKey WinAPI_RegEnumKey WinAPI_RegEnumValue WinAPI_RegFlushKey WinAPI_RegisterApplicationRestart WinAPI_RegisterClass WinAPI_RegisterClassEx WinAPI_RegisterHotKey WinAPI_RegisterPowerSettingNotification WinAPI_RegisterRawInputDevices WinAPI_RegisterShellHookWindow WinAPI_RegisterWindowMessage WinAPI_RegLoadMUIString WinAPI_RegNotifyChangeKeyValue WinAPI_RegOpenKey WinAPI_RegQueryInfoKey WinAPI_RegQueryLastWriteTime WinAPI_RegQueryMultipleValues WinAPI_RegQueryReflectionKey WinAPI_RegQueryValue WinAPI_RegRestoreKey WinAPI_RegSaveKey WinAPI_RegSetValue WinAPI_ReleaseCapture WinAPI_ReleaseDC WinAPI_ReleaseMutex WinAPI_ReleaseSemaphore WinAPI_ReleaseStream WinAPI_RemoveClipboardFormatListener WinAPI_RemoveDirectory WinAPI_RemoveFontMemResourceEx WinAPI_RemoveFontResourceEx WinAPI_RemoveWindowSubclass WinAPI_ReOpenFile WinAPI_ReplaceFile WinAPI_ReplaceTextDlg WinAPI_ResetEvent WinAPI_RestartDlg WinAPI_RestoreDC WinAPI_RGB WinAPI_RotatePoints WinAPI_RoundRect WinAPI_SaveDC WinAPI_SaveFileDlg WinAPI_SaveHBITMAPToFile WinAPI_SaveHICONToFile WinAPI_ScaleWindowExt WinAPI_ScreenToClient WinAPI_SearchPath WinAPI_SelectClipPath WinAPI_SelectClipRgn WinAPI_SelectObject WinAPI_SendMessageTimeout WinAPI_SetActiveWindow WinAPI_SetArcDirection WinAPI_SetBitmapBits WinAPI_SetBitmapDimensionEx WinAPI_SetBkColor WinAPI_SetBkMode WinAPI_SetBoundsRect WinAPI_SetBrushOrg WinAPI_SetCapture WinAPI_SetCaretBlinkTime WinAPI_SetCaretPos WinAPI_SetClassLongEx WinAPI_SetColorAdjustment WinAPI_SetCompression WinAPI_SetCurrentDirectory WinAPI_SetCurrentProcessExplicitAppUserModelID WinAPI_SetCursor WinAPI_SetDCBrushColor WinAPI_SetDCPenColor WinAPI_SetDefaultPrinter WinAPI_SetDeviceGammaRamp WinAPI_SetDIBColorTable WinAPI_SetDIBits WinAPI_SetDIBitsToDevice WinAPI_SetDllDirectory WinAPI_SetEndOfFile WinAPI_SetEnhMetaFileBits WinAPI_SetErrorMode WinAPI_SetEvent WinAPI_SetFileAttributes WinAPI_SetFileInformationByHandleEx WinAPI_SetFilePointer WinAPI_SetFilePointerEx WinAPI_SetFileShortName WinAPI_SetFileValidData WinAPI_SetFocus WinAPI_SetFont WinAPI_SetForegroundWindow WinAPI_SetFRBuffer WinAPI_SetGraphicsMode WinAPI_SetHandleInformation WinAPI_SetInformationJobObject WinAPI_SetKeyboardLayout WinAPI_SetKeyboardState WinAPI_SetLastError WinAPI_SetLayeredWindowAttributes WinAPI_SetLocaleInfo WinAPI_SetMapMode WinAPI_SetMessageExtraInfo WinAPI_SetParent WinAPI_SetPixel WinAPI_SetPolyFillMode WinAPI_SetPriorityClass WinAPI_SetProcessAffinityMask WinAPI_SetProcessShutdownParameters WinAPI_SetProcessWindowStation WinAPI_SetRectRgn WinAPI_SetROP2 WinAPI_SetSearchPathMode WinAPI_SetStretchBltMode WinAPI_SetSysColors WinAPI_SetSystemCursor WinAPI_SetTextAlign WinAPI_SetTextCharacterExtra WinAPI_SetTextColor WinAPI_SetTextJustification WinAPI_SetThemeAppProperties WinAPI_SetThreadDesktop WinAPI_SetThreadErrorMode WinAPI_SetThreadExecutionState WinAPI_SetThreadLocale WinAPI_SetThreadUILanguage WinAPI_SetTimer WinAPI_SetUDFColorMode WinAPI_SetUserGeoID WinAPI_SetUserObjectInformation WinAPI_SetVolumeMountPoint WinAPI_SetWindowDisplayAffinity WinAPI_SetWindowExt WinAPI_SetWindowLong WinAPI_SetWindowOrg WinAPI_SetWindowPlacement WinAPI_SetWindowPos WinAPI_SetWindowRgn WinAPI_SetWindowsHookEx WinAPI_SetWindowSubclass WinAPI_SetWindowText WinAPI_SetWindowTheme WinAPI_SetWinEventHook WinAPI_SetWorldTransform WinAPI_SfcIsFileProtected WinAPI_SfcIsKeyProtected WinAPI_ShellAboutDlg WinAPI_ShellAddToRecentDocs WinAPI_ShellChangeNotify WinAPI_ShellChangeNotifyDeregister WinAPI_ShellChangeNotifyRegister WinAPI_ShellCreateDirectory WinAPI_ShellEmptyRecycleBin WinAPI_ShellExecute WinAPI_ShellExecuteEx WinAPI_ShellExtractAssociatedIcon WinAPI_ShellExtractIcon WinAPI_ShellFileOperation WinAPI_ShellFlushSFCache WinAPI_ShellGetFileInfo WinAPI_ShellGetIconOverlayIndex WinAPI_ShellGetImageList WinAPI_ShellGetKnownFolderIDList WinAPI_ShellGetKnownFolderPath WinAPI_ShellGetLocalizedName WinAPI_ShellGetPathFromIDList WinAPI_ShellGetSetFolderCustomSettings WinAPI_ShellGetSettings WinAPI_ShellGetSpecialFolderLocation WinAPI_ShellGetSpecialFolderPath WinAPI_ShellGetStockIconInfo WinAPI_ShellILCreateFromPath WinAPI_ShellNotifyIcon WinAPI_ShellNotifyIconGetRect WinAPI_ShellObjectProperties WinAPI_ShellOpenFolderAndSelectItems WinAPI_ShellOpenWithDlg WinAPI_ShellQueryRecycleBin WinAPI_ShellQueryUserNotificationState WinAPI_ShellRemoveLocalizedName WinAPI_ShellRestricted WinAPI_ShellSetKnownFolderPath WinAPI_ShellSetLocalizedName WinAPI_ShellSetSettings WinAPI_ShellStartNetConnectionDlg WinAPI_ShellUpdateImage WinAPI_ShellUserAuthenticationDlg WinAPI_ShellUserAuthenticationDlgEx WinAPI_ShortToWord WinAPI_ShowCaret WinAPI_ShowCursor WinAPI_ShowError WinAPI_ShowLastError WinAPI_ShowMsg WinAPI_ShowOwnedPopups WinAPI_ShowWindow WinAPI_ShutdownBlockReasonCreate WinAPI_ShutdownBlockReasonDestroy WinAPI_ShutdownBlockReasonQuery WinAPI_SizeOfResource WinAPI_StretchBlt WinAPI_StretchDIBits WinAPI_StrFormatByteSize WinAPI_StrFormatByteSizeEx WinAPI_StrFormatKBSize WinAPI_StrFromTimeInterval WinAPI_StringFromGUID WinAPI_StringLenA WinAPI_StringLenW WinAPI_StrLen WinAPI_StrokeAndFillPath WinAPI_StrokePath WinAPI_StructToArray WinAPI_SubLangId WinAPI_SubtractRect WinAPI_SwapDWord WinAPI_SwapQWord WinAPI_SwapWord WinAPI_SwitchColor WinAPI_SwitchDesktop WinAPI_SwitchToThisWindow WinAPI_SystemParametersInfo WinAPI_TabbedTextOut WinAPI_TerminateJobObject WinAPI_TerminateProcess WinAPI_TextOut WinAPI_TileWindows WinAPI_TrackMouseEvent WinAPI_TransparentBlt WinAPI_TwipsPerPixelX WinAPI_TwipsPerPixelY WinAPI_UnhookWindowsHookEx WinAPI_UnhookWinEvent WinAPI_UnionRect WinAPI_UnionStruct WinAPI_UniqueHardwareID WinAPI_UnloadKeyboardLayout WinAPI_UnlockFile WinAPI_UnmapViewOfFile WinAPI_UnregisterApplicationRestart WinAPI_UnregisterClass WinAPI_UnregisterHotKey WinAPI_UnregisterPowerSettingNotification WinAPI_UpdateLayeredWindow WinAPI_UpdateLayeredWindowEx WinAPI_UpdateLayeredWindowIndirect WinAPI_UpdateResource WinAPI_UpdateWindow WinAPI_UrlApplyScheme WinAPI_UrlCanonicalize WinAPI_UrlCombine WinAPI_UrlCompare WinAPI_UrlCreateFromPath WinAPI_UrlFixup WinAPI_UrlGetPart WinAPI_UrlHash WinAPI_UrlIs WinAPI_UserHandleGrantAccess WinAPI_ValidateRect WinAPI_ValidateRgn WinAPI_VerQueryRoot WinAPI_VerQueryValue WinAPI_VerQueryValueEx WinAPI_WaitForInputIdle WinAPI_WaitForMultipleObjects WinAPI_WaitForSingleObject WinAPI_WideCharToMultiByte WinAPI_WidenPath WinAPI_WindowFromDC WinAPI_WindowFromPoint WinAPI_WordToShort WinAPI_Wow64EnableWow64FsRedirection WinAPI_WriteConsole WinAPI_WriteFile WinAPI_WriteProcessMemory WinAPI_ZeroMemory WinNet_AddConnection WinNet_AddConnection2 WinNet_AddConnection3 WinNet_CancelConnection WinNet_CancelConnection2 WinNet_CloseEnum WinNet_ConnectionDialog WinNet_ConnectionDialog1 WinNet_DisconnectDialog WinNet_DisconnectDialog1 WinNet_EnumResource WinNet_GetConnection WinNet_GetConnectionPerformance WinNet_GetLastError WinNet_GetNetworkInformation WinNet_GetProviderName WinNet_GetResourceInformation WinNet_GetResourceParent WinNet_GetUniversalName WinNet_GetUser WinNet_OpenEnum WinNet_RestoreConnection WinNet_UseConnection Word_Create Word_DocAdd Word_DocAttach Word_DocClose Word_DocExport Word_DocFind Word_DocFindReplace Word_DocGet Word_DocLinkAdd Word_DocLinkGet Word_DocOpen Word_DocPictureAdd Word_DocPrint Word_DocRangeSet Word_DocSave Word_DocSaveAs Word_DocTableRead Word_DocTableWrite Word_Quit",literal:"True False And Null Not Or"},contains:[t,n,i,r,{className:"preprocessor",begin:"#",end:"$",keywords:"include include-once NoTrayIcon OnAutoItStartRegister RequireAdmin pragma Au3Stripper_Ignore_Funcs Au3Stripper_Ignore_Variables Au3Stripper_Off Au3Stripper_On Au3Stripper_Parameters AutoIt3Wrapper_Add_Constants AutoIt3Wrapper_Au3Check_Parameters AutoIt3Wrapper_Au3Check_Stop_OnWarning AutoIt3Wrapper_Aut2Exe AutoIt3Wrapper_AutoIt3 AutoIt3Wrapper_AutoIt3Dir AutoIt3Wrapper_Change2CUI AutoIt3Wrapper_Compile_Both AutoIt3Wrapper_Compression AutoIt3Wrapper_EndIf AutoIt3Wrapper_Icon AutoIt3Wrapper_If_Compile AutoIt3Wrapper_If_Run AutoIt3Wrapper_Jump_To_First_Error AutoIt3Wrapper_OutFile AutoIt3Wrapper_OutFile_Type AutoIt3Wrapper_OutFile_X64 AutoIt3Wrapper_PlugIn_Funcs AutoIt3Wrapper_Res_Comment Autoit3Wrapper_Res_Compatibility AutoIt3Wrapper_Res_Description AutoIt3Wrapper_Res_Field AutoIt3Wrapper_Res_File_Add AutoIt3Wrapper_Res_FileVersion AutoIt3Wrapper_Res_FileVersion_AutoIncrement AutoIt3Wrapper_Res_Icon_Add AutoIt3Wrapper_Res_Language AutoIt3Wrapper_Res_LegalCopyright AutoIt3Wrapper_Res_ProductVersion AutoIt3Wrapper_Res_requestedExecutionLevel AutoIt3Wrapper_Res_SaveSource AutoIt3Wrapper_Run_After AutoIt3Wrapper_Run_Au3Check AutoIt3Wrapper_Run_Au3Stripper AutoIt3Wrapper_Run_Before AutoIt3Wrapper_Run_Debug_Mode AutoIt3Wrapper_Run_SciTE_Minimized AutoIt3Wrapper_Run_SciTE_OutputPane_Minimized AutoIt3Wrapper_Run_Tidy AutoIt3Wrapper_ShowProgress AutoIt3Wrapper_Testing AutoIt3Wrapper_Tidy_Stop_OnError AutoIt3Wrapper_UPX_Parameters AutoIt3Wrapper_UseUPX AutoIt3Wrapper_UseX64 AutoIt3Wrapper_Version AutoIt3Wrapper_Versioning AutoIt3Wrapper_Versioning_Parameters Tidy_Off Tidy_On Tidy_Parameters EndRegion Region",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[i,{className:"string",variants:[{begin:"<",end:">"},{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]}]},i,t]},{className:"constant",begin:"@[A-z0-9_]+"},{className:"function",beginKeywords:"Func",end:"$",excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[n,i,r]}]}]}}),e.registerLanguage("avrasm",function(e){return{case_insensitive:!0,lexemes:"\\.?"+e.IDENT_RE,keywords:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",preprocessor:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{relevance:0}),e.C_NUMBER_MODE,e.BINARY_NUMBER_MODE,{className:"number",begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"label",begin:"^[A-Za-z0-9_.$]+:"},{className:"preprocessor",begin:"#",end:"$"},{className:"localvars",begin:"@[0-9]+"}]}}),e.registerLanguage("axapta",function(e){return{keywords:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$"},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]}]}}),e.registerLanguage("bash",function(e){var t={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)}/}]},n={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,{className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]}]},i={className:"string",begin:/'/,end:/'/};return{aliases:["sh","zsh"],lexemes:/-?[a-z\.]+/,keywords:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"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 autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},contains:[{className:"shebang",begin:/^#![^\n]+sh\s*$/,relevance:10},{className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},e.HASH_COMMENT_MODE,e.NUMBER_MODE,n,i,t]}}),e.registerLanguage("brainfuck",function(e){var t={className:"literal",begin:"[\\+\\-]",relevance:0};return{aliases:["bf"],contains:[e.COMMENT("[^\\[\\]\\.,\\+\\-<> \r\n]","[\\[\\]\\.,\\+\\-<> \r\n]",{returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/\+\+|\-\-/,returnBegin:!0,contains:[t]},t]}}),e.registerLanguage("cal",function(e){var t="div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to until while with var",n=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],i={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},r={className:"string",begin:/(#\d+)+/},o={className:"date",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},a={className:"variable",begin:'"',end:'"'},s={className:"function",beginKeywords:"procedure",end:/[:;]/,keywords:"procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,contains:[i,r]}].concat(n)},l={className:"class",begin:"OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)",returnBegin:!0,contains:[e.TITLE_MODE,s]};return{case_insensitive:!0,keywords:{keyword:t,literal:"false true"},illegal:/\/\*/,contains:[i,r,o,a,e.NUMBER_MODE,l,s]}}),e.registerLanguage("capnproto",function(e){return{aliases:["capnp"],keywords:{keyword:"struct enum interface union group import using const annotation extends in of on as with from fixed",built_in:"Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 Text Data AnyPointer AnyStruct Capability List",literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.HASH_COMMENT_MODE,{className:"shebang",begin:/@0x[\w\d]{16};/,illegal:/\n/},{className:"number",begin:/@\d+\b/},{className:"class",beginKeywords:"struct enum",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"class",beginKeywords:"interface",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]}]}}),e.registerLanguage("ceylon",function(e){var t="assembly module package import alias class interface object given value assign void function new of extends satisfies abstracts in out return break continue throw assert dynamic if else switch case for while try catch finally then let this outer super is exists nonempty",n={className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:t,relevance:10},i=[{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[n]},{className:"string",begin:"'",end:"'"},{className:"number",begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",relevance:0}];return n.contains=i,{keywords:{keyword:t,annotation:"shared abstract formal default actual variable late native deprecatedfinal sealed annotation suppressWarnings small doc by license see throws tagged"},illegal:"\\$[^01]|#[^0-9a-fA-F]",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),{className:"annotation",begin:'@[a-z]\\w*(?:\\:"[^"]*")?'}].concat(i)}}),e.registerLanguage("clojure",function(e){var t={built_in:"def defonce cond apply if-not if-let if not not= = < > <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},n="[a-zA-Z_\\-!.?+*=<>&#'][a-zA-Z_\\-!.?+*=<>&#'0-9/;:]*",i={begin:n,relevance:0},r={className:"number",begin:"[-+]?\\d+(\\.\\d+)?",relevance:0},o=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),a=e.COMMENT(";","$",{relevance:0}),s={className:"literal",begin:/\b(true|false|nil)\b/},l={className:"collection",begin:"[\\[\\{]",end:"[\\]\\}]"},c={className:"comment",begin:"\\^"+n},u=e.COMMENT("\\^\\{","\\}"),d={className:"attribute",begin:"[:]"+n},h={className:"list",begin:"\\(",end:"\\)"},p={endsWithParent:!0,relevance:0},f={keywords:t,lexemes:n,className:"keyword",begin:n,starts:p},m=[h,o,c,u,a,d,l,r,s,i];return h.contains=[e.COMMENT("comment",""),f,p],p.contains=m,l.contains=m,{aliases:["clj"],illegal:/\S/,contains:[h,o,c,u,a,d,l,r,s]}}),e.registerLanguage("clojure-repl",function(e){return{contains:[{className:"prompt",begin:/^([\w.-]+|\s*#_)=>/,starts:{end:/$/,subLanguage:"clojure"}}]}}),e.registerLanguage("cmake",function(e){return{aliases:["cmake.in"],case_insensitive:!0,keywords:{keyword:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or",operator:"equal less greater strless strgreater strequal matches"},contains:[{className:"envvar",begin:"\\${",end:"}"},e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}),e.registerLanguage("coffeescript",function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",built_in:"npm require console print module global window document"},n="[A-Za-z$_][0-9A-Za-z$_]*",i={className:"subst",begin:/#\{/,end:/}/,keywords:t},r=[e.BINARY_NUMBER_MODE,e.inherit(e.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,i]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i]}]},{className:"regexp",variants:[{begin:"///",end:"///",contains:[i,e.HASH_COMMENT_MODE]},{begin:"//[gim]*",relevance:0},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{className:"property",begin:"@"+n},{begin:"`",end:"`",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];i.contains=r;var o=e.inherit(e.TITLE_MODE,{begin:n}),a={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(r)}]};return{aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,contains:r.concat([e.COMMENT("###","###"),e.HASH_COMMENT_MODE,{className:"function",begin:"^\\s*"+n+"\\s*=\\s*(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[o,a]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",begin:"(\\(.*\\))?\\s*\\B[-=]>",end:"[-=]>",returnBegin:!0,contains:[a]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[o]},o]},{className:"attribute",begin:n+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}),e.registerLanguage("cpp",function(e){var t={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},n={className:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{begin:'((u8?|U)|L)?"'}),{begin:'(u8?|U)?R"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",end:"'",illegal:"."}]},i={className:"number",variants:[{begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},{begin:e.C_NUMBER_RE}]},r={className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line pragma ifdef ifndef",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[n,{className:"string",begin:"<",end:">",illegal:"\\n"}]},n,i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},o=e.IDENT_RE+"\\s*\\(",a={keyword:"int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong",built_in:"std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf",literal:"true false nullptr NULL"};return{aliases:["c","cc","h","c++","h++","hpp"],keywords:a,illegal:"</",contains:[t,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,n,r,{begin:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",end:">",keywords:a,contains:["self",t]},{begin:e.IDENT_RE+"::",keywords:a},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"("+e.IDENT_RE+"[\\*&\\s]+)+"+o,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:a,illegal:/[^\w\s\*&]/,contains:[{begin:o,returnBegin:!0,contains:[e.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:a,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,i]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r]}]}}),e.registerLanguage("crmsh",function(e){var t="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml";return{aliases:["crm","pcmk"],case_insensitive:!0,keywords:{keyword:"params meta operations op rule attributes utilization",operator:"read write deny defined not_defined in_range date spec in ref reference attribute type xpath version and or lt gt tag lte gte eq ne \\",type:"number string",literal:"Master Started Slave Stopped start promote demote stop monitor true false"},contains:[e.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{className:"identifier",end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}}},{beginKeywords:"primitive rsc_template",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*",starts:{className:"pragma",end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{begin:"\\b("+t.split(" ").join("|")+")\\s+",keywords:t,starts:{className:"title",end:"[\\$\\w_][\\w_-]*"}},{beginKeywords:"property rsc_defaults op_defaults",starts:{className:"title",end:"\\s*([\\w_-]+:)?"}},e.QUOTE_STRING_MODE,{className:"pragma",begin:"(ocf|systemd|service|lsb):[\\w_:-]+",relevance:0},{className:"number",begin:"\\b\\d+(\\.\\d+)?(ms|s|h|m)?",relevance:0},{className:"number",begin:"[-]?(infinity|inf)",relevance:0},{className:"variable",begin:/([A-Za-z\$_\#][\w_-]+)=/,relevance:0},{className:"tag",begin:"</?",end:"/?>",relevance:0}]}}),e.registerLanguage("crystal",function(e){function t(e,t){var n=[{begin:e,end:t}];return n[0].contains=n,n}var n="(_[uif](8|16|32|64))?",i="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?",r={keyword:"abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? return require self sizeof struct super then type typeof union unless until when while with yield __DIR__ __FILE__ __LINE__",literal:"false nil true"},o={className:"subst",begin:"#{",end:"}",keywords:r},a={className:"expansion",variants:[{begin:"\\{\\{",end:"\\}\\}"},{begin:"\\{%",end:"%\\}"}],keywords:r,relevance:10},s={className:"string",contains:[e.BACKSLASH_ESCAPE,o],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%w?\\(",end:"\\)",contains:t("\\(","\\)")},{begin:"%w?\\[",end:"\\]",contains:t("\\[","\\]")},{begin:"%w?{",end:"}",contains:t("{","}")},{begin:"%w?<",end:">",contains:t("<",">")},{begin:"%w?/",end:"/"},{begin:"%w?%",end:"%"},{begin:"%w?-",end:"-"},{begin:"%w?\\|",end:"\\|"}],relevance:0},l={className:"annotation",begin:"@\\[",end:"\\]",relevance:5},c=[a,s,{begin:"(!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~)\\s*",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,o],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\(",end:"\\)",contains:t("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:t("\\[","\\]")},{begin:"%r{",end:"}",contains:t("{","}")},{begin:"%r<",end:">",contains:t("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}]}],relevance:0},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,o],variants:[{begin:"%r\\(",end:"\\)",contains:t("\\(","\\)")},{begin:"%r\\[",end:"\\]",contains:t("\\[","\\]")},{begin:"%r{",end:"}",contains:t("{","}")},{begin:"%r<",end:">",contains:t("<",">")},{begin:"%r/",end:"/"},{begin:"%r%",end:"%"},{begin:"%r-",end:"-"},{begin:"%r\\|",end:"\\|"}],relevance:0},l,e.HASH_COMMENT_MODE,{className:"class",beginKeywords:"class module struct",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{className:"inheritance",begin:"<\\s*",contains:[{className:"parent",begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}]},{className:"class",beginKeywords:"lib enum union",end:"$|;",illegal:/=/,contains:[e.HASH_COMMENT_MODE,e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"})],relevance:10},{className:"function",beginKeywords:"def",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:i,endsParent:!0})]},{className:"function",beginKeywords:"fun macro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:i,endsParent:!0})],relevance:5},{className:"constant",begin:"(::)?(\\b[A-Z]\\w*(::)?)+",relevance:0},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[s,{begin:i}],relevance:0},{className:"number",variants:[{begin:"\\b0b([01_]*[01])"+n},{begin:"\\b0o([0-7_]*[0-7])"+n},{begin:"\\b0x([A-Fa-f0-9_]*[A-Fa-f0-9])"+n},{begin:"\\b(([0-9][0-9_]*[0-9]|[0-9])(\\.[0-9_]*[0-9])?([eE][+-]?[0-9_]*[0-9])?)"+n}],relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?|%)(\\w+))"}];return o.contains=c,l.contains=c,a.contains=c.slice(1),{aliases:["cr"],lexemes:"[a-zA-Z_]\\w*[!?=]?",keywords:r,contains:c}}),e.registerLanguage("cs",function(e){var t="abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long null when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async protected public private internal ascending descending from get group into join let orderby partial select set value var where yield",n=e.IDENT_RE+"(<"+e.IDENT_RE+">)?";return{aliases:["csharp"],keywords:t,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"xmlDocTag",variants:[{begin:"///",relevance:0},{begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line region endregion pragma checksum"},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{beginKeywords:"class interface",end:/[{;=]/,illegal:/[^\s:]/,contains:[e.TITLE_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",end:/[{;=]/,illegal:/[^\s:]/,contains:[{className:"title",begin:"[a-zA-Z](\\.?\\w)*",relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new return throw await",relevance:0},{className:"function",begin:"("+n+"\\s+)+"+e.IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:t,contains:[{begin:e.IDENT_RE+"\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE],relevance:0},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}]}}),e.registerLanguage("css",function(e){var t={className:"function",begin:"[a-zA-Z-][a-zA-Z0-9_-]*\\(",returnBegin:!0,excludeEnd:!0,end:"\\("},n={className:"rule",begin:/[A-Z\_\.\-]+\s*:/,returnBegin:!0,end:";",endsWithParent:!0,contains:[{className:"attribute",begin:/\S/,end:":",excludeEnd:!0,starts:{className:"value",endsWithParent:!0,excludeEnd:!0,contains:[t,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE,{className:"hexcolor",begin:"#[0-9A-Fa-f]+"},{className:"important",begin:"!important"}]}}]};return{case_insensitive:!0,illegal:/[=\/|'\$]/,contains:[e.C_BLOCK_COMMENT_MODE,{className:"id",begin:/\#[A-Za-z0-9_-]+/},{className:"class",begin:/\.[A-Za-z0-9_-]+/},{className:"attr_selector",begin:/\[/,end:/\]/,illegal:"$"},{className:"pseudo",begin:/:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/},{className:"at_rule",begin:"@(font-face|page)",lexemes:"[a-z-]+",keywords:"font-face page"},{className:"at_rule",begin:"@",end:"[{;]",contains:[{className:"keyword",begin:/\S+/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,contains:[t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.CSS_NUMBER_MODE]}]},{className:"tag",begin:"[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},{className:"rules",begin:"{",end:"}",illegal:/\S/,contains:[e.C_BLOCK_COMMENT_MODE,n]}]}}),e.registerLanguage("d",function(e){var t={keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"},n="((0|[1-9][\\d_]*)|0[bB][01_]+|0[xX]([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))",i="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};",r={className:"number",begin:"\\b"+n+"(L|u|U|Lu|LU|uL|UL)?",relevance:0},o={className:"number",begin:"\\b(((0[xX](([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)\\.([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)|\\.?([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*))[pP][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))|((0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(\\.\\d*|([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)))|\\d+\\.(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)|\\.(0|[1-9][\\d_]*)([eE][+-]?(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d))?))([fF]|L|i|[fF]i|Li)?|"+n+"(i|[fF]i|Li))",relevance:0},a={className:"string",begin:"'("+i+"|.)",end:"'",illegal:"."},s={className:"string",begin:'"',contains:[{begin:i,relevance:0}],end:'"[cwd]?'},l={className:"string",begin:'[rq]"',end:'"[cwd]?',relevance:5},c={className:"string",begin:"`",end:"`[cwd]?"},u={className:"string",begin:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',relevance:10},d={className:"string",begin:'q"\\{',end:'\\}"'},h={className:"shebang",begin:"^#!",end:"$",relevance:5},p={className:"preprocessor",begin:"#(line)",end:"$",relevance:5},f={className:"keyword",begin:"@[a-zA-Z_][a-zA-Z_\\d]*"},m=e.COMMENT("\\/\\+","\\+\\/",{contains:["self"],relevance:10});return{lexemes:e.UNDERSCORE_IDENT_RE,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,m,u,s,l,c,d,o,r,a,h,p,f]}}),e.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],contains:[{className:"header",variants:[{begin:"^#{1,6}",end:"$"},{begin:"^.+?\\n[=-]{2,}$"}]},{begin:"<",end:">",subLanguage:"xml",relevance:0},{className:"bullet",begin:"^([*+-]|(\\d+\\.))\\s+"},{className:"strong",begin:"[*_]{2}.+?[*_]{2}"},{className:"emphasis",variants:[{begin:"\\*.+?\\*"},{begin:"_.+?_",relevance:0}]},{className:"blockquote",begin:"^>\\s+",end:"$"},{className:"code",variants:[{begin:"`.+?`"},{begin:"^( {4}|\t)",end:"$",relevance:0}]},{className:"horizontal_rule",begin:"^[-\\*]{3,}",end:"$"},{begin:"\\[.+?\\][\\(\\[].*?[\\)\\]]",returnBegin:!0,contains:[{className:"link_label",begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0,relevance:0},{className:"link_url",begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"link_reference",begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}],relevance:10},{begin:"^\\[.+\\]:",returnBegin:!0,contains:[{className:"link_reference",begin:"\\[",end:"\\]:",excludeBegin:!0,excludeEnd:!0,starts:{className:"link_url",end:"$"}}]}]}}),e.registerLanguage("dart",function(e){var t={className:"subst",begin:"\\$\\{",end:"}",keywords:"true false null this is new super"},n={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{begin:'r"',end:'"',illegal:"\\n"},{begin:"'''",end:"'''",contains:[e.BACKSLASH_ESCAPE,t]},{begin:'"""',end:'"""',contains:[e.BACKSLASH_ESCAPE,t]},{begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t]},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,t]}]};return t.contains=[e.C_NUMBER_MODE,n],{keywords:{keyword:"assert break case catch class const continue default do else enum extends false final finally for if in is new null rethrow return super switch this throw true try var void while with",literal:"abstract as dynamic export external factory get implements import library operator part set static typedef",built_in:"print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num document window querySelector querySelectorAll Element ElementList"},contains:[n,e.COMMENT("/\\*\\*","\\*/",{subLanguage:"markdown"}),e.COMMENT("///","$",{subLanguage:"markdown"}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},e.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"},{begin:"=>"}]}}),e.registerLanguage("delphi",function(e){var t="exports register file shl array record property for mod while set ally label uses raise not stored class safecall var interface or private static exit index inherited to else stdcall override shr asm far resourcestring finalization packed virtual out and protected library do xorwrite goto near function end div overload object unit begin string on inline repeat until destructor write message program with read initialization except default nil if case cdecl in downto threadvar of try pascal const external constructor type public then implementation finally published procedure",n=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],i={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},r={className:"string",begin:/(#\d+)+/},o={begin:e.IDENT_RE+"\\s*=\\s*class\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE]},a={className:"function",beginKeywords:"function constructor destructor procedure",end:/[:;]/,keywords:"function constructor|10 destructor|10 procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:t,contains:[i,r]}].concat(n)};return{case_insensitive:!0,keywords:t,illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[i,r,e.NUMBER_MODE,o,a].concat(n)}}),e.registerLanguage("diff",function(e){return{aliases:["patch"],contains:[{className:"chunk",relevance:10,variants:[{begin:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{className:"header",variants:[{begin:/Index: /,end:/$/},{begin:/=====/,end:/=====$/},{begin:/^\-\-\-/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+\+\+/,end:/$/},{begin:/\*{5}/,end:/\*{5}$/}]},{className:"addition",begin:"^\\+",end:"$"},{className:"deletion",begin:"^\\-",end:"$"},{className:"change",begin:"^\\!",end:"$"}]}}),e.registerLanguage("django",function(e){var t={className:"filter",begin:/\|[A-Za-z]+:?/,keywords:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",contains:[{className:"argument",begin:/"/,end:/"/},{className:"argument",begin:/'/,end:/'/}]};return{aliases:["jinja"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{%\s*comment\s*%}/,/\{%\s*endcomment\s*%}/),e.COMMENT(/\{#/,/#}/),{className:"template_tag",begin:/\{%/,end:/%}/,keywords:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",contains:[t]},{className:"variable",begin:/\{\{/,end:/}}/,contains:[t]}]}}),e.registerLanguage("dns",function(e){return{aliases:["bind","zone"],keywords:{keyword:"IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT"},contains:[e.COMMENT(";","$"),{className:"operator",beginKeywords:"$TTL $GENERATE $INCLUDE $ORIGIN"},{className:"number",begin:"((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))"},{className:"number",begin:"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])"}]}}),e.registerLanguage("dockerfile",function(e){return{aliases:["docker"],case_insensitive:!0,keywords:{built_ins:"from maintainer cmd expose add copy entrypoint volume user workdir onbuild run env label"},contains:[e.HASH_COMMENT_MODE,{keywords:{built_in:"run cmd entrypoint volume add copy workdir onbuild label"},begin:/^ *(onbuild +)?(run|cmd|entrypoint|volume|add|copy|workdir|label) +/,starts:{end:/[^\\]\n/,subLanguage:"bash"}},{keywords:{built_in:"from maintainer expose env user onbuild"},begin:/^ *(onbuild +)?(from|maintainer|expose|env|user|onbuild) +/,end:/[^\\]\n/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.HASH_COMMENT_MODE]}]}}),e.registerLanguage("dos",function(e){var t=e.COMMENT(/@?rem\b/,/$/,{relevance:10});return{aliases:["bat","cmd"],case_insensitive:!0,illegal:/\/\*/,keywords:{flow:"if else goto for in do call exit not exist errorlevel defined",operator:"equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping net ipconfig taskkill xcopy ren del",built_in:"append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color comp compact convert date dir diskcomp diskcopy doskey erase fs find findstr format ftype graftabl help keyb label md mkdir mode more move path pause print popd pushd promt rd recover rem rename replace restore rmdir shiftsort start subst time title tree type ver verify vol"},contains:[{className:"envvar",begin:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{className:"function",begin:{className:"label",begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",relevance:0}.begin,end:"goto:eof",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),t]},{className:"number",begin:"\\b\\d+",relevance:0},t]}}),e.registerLanguage("dust",function(e){var t="if eq ne lt lte gt gte select default math sep";return{aliases:["dst"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"expression",begin:"{",end:"}",relevance:0,contains:[{className:"begin-block",begin:"#[a-zA-Z- .]+",keywords:t},{className:"string",begin:'"',end:'"'},{className:"end-block",begin:"\\/[a-zA-Z- .]+",keywords:t},{className:"variable",begin:"[a-zA-Z-.]+",keywords:t,relevance:0}]}]}}),e.registerLanguage("elixir",function(e){var t="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",n="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",i={className:"subst",begin:"#\\{",end:"}",lexemes:t,keywords:n},r={className:"string",contains:[e.BACKSLASH_ESCAPE,i],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]},o={className:"function",beginKeywords:"def defp defmacro",end:/\B\b/,contains:[e.inherit(e.TITLE_MODE,{begin:t,endsParent:!0})]},a=e.inherit(o,{className:"class",beginKeywords:"defmodule defrecord",end:/\bdo\b|$|;/}),s=[r,e.HASH_COMMENT_MODE,a,o,{className:"constant",begin:"(\\b[A-Z_]\\w*(.)?)+",relevance:0},{className:"symbol",begin:":",contains:[r,{begin:"[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?"}],relevance:0},{className:"symbol",begin:t+":",relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"->"},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[e.HASH_COMMENT_MODE,{className:"regexp",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,i],variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}],relevance:0}];return i.contains=s,{lexemes:t,keywords:n,contains:s}}),e.registerLanguage("elm",function(e){var t=[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})],n={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},i={className:"container",begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"}].concat(t)},r={className:"container",begin:"{",end:"}",contains:i.contains};return{keywords:"let in if then else case of where module import exposing type alias as infix infixl infixr port",contains:[{className:"module",begin:"\\bmodule\\b",end:"where",keywords:"module where",contains:[i].concat(t),illegal:"\\W\\.|;"},{className:"import",begin:"\\bimport\\b",end:"$",keywords:"import|0 as exposing",contains:[i].concat(t),illegal:"\\W\\.|;"},{className:"typedef",begin:"\\btype\\b",end:"$",keywords:"type alias",contains:[n,i,r].concat(t)},{className:"infix",beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE].concat(t)},{className:"foreign",begin:"\\bport\\b",end:"$",keywords:"port",contains:t},e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,n,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),{begin:"->|<-"}].concat(t)}}),e.registerLanguage("ruby",function(e){var t="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",n="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",i={className:"doctag",begin:"@[A-Za-z]+"},r={className:"value",begin:"#<",end:">"},o=[e.COMMENT("#","$",{contains:[i]}),e.COMMENT("^\\=begin","^\\=end",{contains:[i],relevance:10}),e.COMMENT("^__END__","\\n$")],a={className:"subst",begin:"#\\{",end:"}",keywords:n},s={className:"string",contains:[e.BACKSLASH_ESCAPE,a],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:"%[qQwWx]?\\(",end:"\\)"},{begin:"%[qQwWx]?\\[",end:"\\]"},{begin:"%[qQwWx]?{",end:"}"},{begin:"%[qQwWx]?<",end:">"},{begin:"%[qQwWx]?/",end:"/"},{begin:"%[qQwWx]?%",end:"%"},{begin:"%[qQwWx]?-",end:"-"},{begin:"%[qQwWx]?\\|",end:"\\|"},{begin:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]},l={className:"params",begin:"\\(",end:"\\)",keywords:n},c=[s,r,{className:"class",beginKeywords:"class module",end:"$|;",illegal:/=/,contains:[e.inherit(e.TITLE_MODE,{begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{className:"inheritance",begin:"<\\s*",contains:[{className:"parent",begin:"("+e.IDENT_RE+"::)?"+e.IDENT_RE}]}].concat(o)},{className:"function",beginKeywords:"def",end:"$|;",contains:[e.inherit(e.TITLE_MODE,{begin:t}),l].concat(o)},{className:"constant",begin:"(::)?(\\b[A-Z]\\w*(::)?)+",relevance:0},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(\\!|\\?)?:",relevance:0},{className:"symbol",begin:":",contains:[s,{begin:t}],relevance:0},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"variable",begin:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{begin:"("+e.RE_STARTERS_RE+")\\s*",contains:[r,{className:"regexp",contains:[e.BACKSLASH_ESCAPE,a],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:"%r{",end:"}[a-z]*"},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(o),relevance:0}].concat(o);a.contains=c,l.contains=c;var u=[{begin:/^\s*=>/,className:"status",starts:{end:"$",contains:c}},{className:"prompt",begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{end:"$",contains:c}}];return{aliases:["rb","gemspec","podspec","thor","irb"],keywords:n,illegal:/\/\*/,contains:o.concat(u).concat(c)}}),e.registerLanguage("erb",function(e){return{subLanguage:"xml",contains:[e.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}}),e.registerLanguage("erlang-repl",function(e){return{keywords:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"prompt",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"constant",begin:"\\?(::)?([A-Z]\\w*(::)?)+"},{className:"arrow",begin:"->"},{className:"ok",begin:"ok"},{className:"exclamation_mark",begin:"!"},{className:"function_or_atom",begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{className:"variable",begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}),e.registerLanguage("erlang",function(e){var t="[a-z'][a-zA-Z0-9_']*",n="("+t+":"+t+"|"+t+")",i={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},r=e.COMMENT("%","$"),o={className:"number",begin:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",relevance:0},a={begin:"fun\\s+"+t+"/\\d+"},s={begin:n+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{className:"function_name",begin:n,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},l={className:"tuple",begin:"{",end:"}",relevance:0},c={className:"variable",begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},u={className:"variable",begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},d={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{className:"record_name",begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:"{",end:"}",relevance:0}]},h={beginKeywords:"fun receive if try case",end:"end",keywords:i};h.contains=[r,a,e.inherit(e.APOS_STRING_MODE,{className:""}),h,s,e.QUOTE_STRING_MODE,o,l,c,u,d];var p=[r,a,h,s,e.QUOTE_STRING_MODE,o,l,c,u,d];s.contains[1].contains=p,l.contains=p,d.contains[1].contains=p;var f={className:"params",begin:"\\(",end:"\\)",contains:p};return{aliases:["erl"],keywords:i,illegal:"(</|\\*=|\\+=|-=|/\\*|\\*/|\\(\\*|\\*\\))",contains:[{className:"function",begin:"^"+t+"\\s*\\(",end:"->",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[f,e.inherit(e.TITLE_MODE,{begin:t})],starts:{end:";|\\.",keywords:i,contains:p}},r,{className:"pp",begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,lexemes:"-"+e.IDENT_RE,keywords:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",contains:[f]},o,e.QUOTE_STRING_MODE,d,c,u,l,{begin:/\.$/}]}}),e.registerLanguage("fix",function(e){return{contains:[{begin:/[^\u2401\u0001]+/,end:/[\u2401\u0001]/,excludeEnd:!0,returnBegin:!0,returnEnd:!1,contains:[{begin:/([^\u2401\u0001=]+)/,end:/=([^\u2401\u0001=]+)/,returnEnd:!0,returnBegin:!1,className:"attribute"},{begin:/=/,end:/([\u2401\u0001])/,excludeEnd:!0,excludeBegin:!0,className:"string"}]}],case_insensitive:!0}}),e.registerLanguage("fortran",function(e){var t={className:"params",begin:"\\(",end:"\\)"};return{case_insensitive:!0,aliases:["f90","f95"],keywords:{constant:".False. .True.",type:"integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated  c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image"},illegal:/\/\*/,contains:[e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,t]},e.COMMENT("!","$",{relevance:0}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}}),e.registerLanguage("fsharp",function(e){var t={begin:"<",end:">",contains:[e.inherit(e.TITLE_MODE,{begin:/'[a-zA-Z0-9_]+/})]};return{aliases:["fs"],keywords:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",illegal:/\/\*/,contains:[{className:"keyword",begin:/\b(yield|return|let|do)!/},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:'"""',end:'"""'},e.COMMENT("\\(\\*","\\*\\)"),{className:"class",beginKeywords:"type",end:"\\(|=|$",excludeEnd:!0,contains:[e.UNDERSCORE_TITLE_MODE,t]},{className:"annotation",begin:"\\[<",end:">\\]",relevance:10},{className:"attribute",begin:"\\B('[A-Za-z])\\b",contains:[e.BACKSLASH_ESCAPE]},e.C_LINE_COMMENT_MODE,e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),e.C_NUMBER_MODE]}}),e.registerLanguage("gams",function(e){return{aliases:["gms"],case_insensitive:!0,keywords:"abort acronym acronyms alias all and assign binary card diag display else1 eps eq equation equations file files for1 free ge gt if inf integer le loop lt maximizing minimizing model models na ne negative no not option options or ord parameter parameters positive prod putpage puttl repeat sameas scalar scalars semicont semiint set1 sets smax smin solve sos1 sos2 sum system table then until using variable variables while1 xor yes",contains:[{className:"section",beginKeywords:"sets parameters variables equations",end:";",contains:[{begin:"/",end:"/",contains:[e.NUMBER_MODE]}]},{className:"string",begin:"\\*{3}",end:"\\*{3}"},e.NUMBER_MODE,{className:"number",begin:"\\$[a-zA-Z0-9]+"}]}}),e.registerLanguage("gcode",function(e){var t={literal:"",built_in:"",keyword:"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR"},n={className:"preprocessor",begin:"([O])([0-9]+)"},i=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(/\(/,/\)/),e.inherit(e.C_NUMBER_MODE,{begin:"([-+]?([0-9]*\\.?[0-9]+\\.?))|"+e.C_NUMBER_RE}),e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"keyword",begin:"([G])([0-9]+\\.?[0-9]?)"},{className:"title",begin:"([M])([0-9]+\\.?[0-9]?)"},{className:"title",begin:"(VC|VS|#)",end:"(\\d+)"},{className:"title",begin:"(VZOFX|VZOFY|VZOFZ)"},{className:"built_in",begin:"(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",end:"([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])"},{className:"label",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}];return{aliases:["nc"],case_insensitive:!0,lexemes:"[A-Z_][A-Z0-9_.]*",keywords:t,contains:[{className:"preprocessor",begin:"\\%"},n].concat(i)}}),e.registerLanguage("gherkin",function(e){return{aliases:["feature"],keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",contains:[{className:"keyword",begin:"\\*"},e.COMMENT("@[^@\r\n\t ]+","$"),{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string",begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},e.HASH_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},e.QUOTE_STRING_MODE]}}),e.registerLanguage("glsl",function(e){return{keywords:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},illegal:'"',contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$"}]}}),e.registerLanguage("go",function(e){return{aliases:["golang"],keywords:{keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'"},{className:"string",begin:"`",end:"`"},{className:"number",begin:e.C_NUMBER_RE+"[dflsi]?",relevance:0},e.C_NUMBER_MODE]}}),e.registerLanguage("golo",function(e){return{keywords:{keyword:"println readln print import module function local return let var while for foreach times in case when match with break continue augment augmentation each find filter reduce if then else otherwise try catch finally raise throw orIfNull",typename:"DynamicObject|10 DynamicVariable struct Observable map set vector list array",literal:"true false null"},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"}]}}),e.registerLanguage("gradle",function(e){return{case_insensitive:!0,keywords:{keyword:"task project allprojects subprojects artifacts buildscript configurations dependencies repositories sourceSets description delete from into include exclude source classpath destinationDir includes options sourceCompatibility targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant def abstract break case catch continue default do else extends final finally for if implements instanceof native new private protected public return static switch synchronized throw throws transient try volatile while strictfp package import false null super this true antlrtask checkstyle codenarc copy boolean byte char class double float int interface long short void compile runTime file fileTree abs any append asList asWritable call collect compareTo count div dump each eachByte eachFile eachLine every find findAll flatten getAt getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter newReader newWriter next plus pop power previous print println push putAt read readBytes readLines reverse reverseEach round size sort splitEachLine step subMap times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader withStream withWriter withWriterAppend write writeLine"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.REGEXP_MODE]}}),e.registerLanguage("groovy",function(e){return{keywords:{typename:"byte short char int long boolean float double void",literal:"true false null",keyword:"def as in assert trait super this abstract static volatile transient public private protected synchronized final class interface enum if else for while switch case break default continue throw throws try catch finally implements extends new import package return instanceof"},contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},{className:"string",begin:"'''",end:"'''"},{className:"string",begin:"\\$/",end:"/\\$",relevance:10},e.APOS_STRING_MODE,{className:"regexp",begin:/~?\/[^\/\n]+\//,contains:[e.BACKSLASH_ESCAPE]},e.QUOTE_STRING_MODE,{className:"shebang",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},e.BINARY_NUMBER_MODE,{className:"class",beginKeywords:"class interface trait enum",end:"{",illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},e.C_NUMBER_MODE,{className:"annotation",begin:"@[A-Za-z]+"},{className:"string",begin:/[^\?]{0}[A-Za-z0-9_$]+ *:/},{begin:/\?/,end:/\:/},{className:"label",begin:"^\\s*[A-Za-z0-9_$]+:",relevance:0}],illegal:/#/}}),e.registerLanguage("haml",function(e){return{case_insensitive:!0,contains:[{className:"doctype",begin:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",relevance:10},e.COMMENT("^\\s*(!=#|=#|-#|/).*$",!1,{relevance:0}),{begin:"^\\s*(-|=|!=)(?!#)",starts:{end:"\\n",subLanguage:"ruby"}},{className:"tag",begin:"^\\s*%",contains:[{className:"title",begin:"\\w+"},{className:"value",begin:"[#\\.][\\w-]+"},{begin:"{\\s*",end:"\\s*}",excludeEnd:!0,contains:[{begin:":\\w+\\s*=>",end:",\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"symbol",begin:":\\w+"},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]},{begin:"\\(\\s*",end:"\\s*\\)",excludeEnd:!0,contains:[{begin:"\\w+\\s*=",end:"\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attribute",begin:"\\w+",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]}]},{className:"bullet",begin:"^\\s*[=~]\\s*",relevance:0},{begin:"#{",starts:{end:"}",subLanguage:"ruby"}}]}}),e.registerLanguage("handlebars",function(e){var t="each in with if else unless bindattr action collection debugger log outlet template unbound view yield";return{aliases:["hbs","html.hbs","html.handlebars"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"expression",begin:"{{",end:"}}",contains:[{className:"begin-block",begin:"#[a-zA-Z- .]+",keywords:t},{className:"string",begin:'"',end:'"'},{className:"end-block",begin:"\\/[a-zA-Z- .]+",keywords:t},{className:"variable",begin:"[a-zA-Z-.]+",keywords:t}]}]}}),e.registerLanguage("haskell",function(e){var t=[e.COMMENT("--","$"),e.COMMENT("{-","-}",{contains:["self"]})],n={className:"pragma",begin:"{-#",end:"#-}"},i={className:"preprocessor",begin:"^#",end:"$"},r={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},o={className:"container",begin:"\\(",end:"\\)",illegal:'"',contains:[n,i,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"})].concat(t)},a={className:"container",begin:"{",end:"}",contains:o.contains};return{aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{className:"module",begin:"\\bmodule\\b",end:"where",keywords:"module where",contains:[o].concat(t),illegal:"\\W\\.|;"},{className:"import",begin:"\\bimport\\b",end:"$",keywords:"import|0 qualified as hiding",contains:[o].concat(t),illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[r,o].concat(t)},{className:"typedef",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[n,r,o,a].concat(t)},{className:"default",beginKeywords:"default",end:"$",contains:[r,o].concat(t)},{className:"infix",beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE].concat(t)},{className:"foreign",begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[r,e.QUOTE_STRING_MODE].concat(t)},{className:"shebang",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},n,i,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,r,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),{begin:"->|<-"}].concat(t)}}),e.registerLanguage("haxe",function(e){return{aliases:["hx"],keywords:{keyword:"break callback case cast catch class continue default do dynamic else enum extends extern for function here if implements import in inline interface never new override package private public return static super switch this throw trace try typedef untyped using var while",literal:"true false null"},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.TITLE_MODE]},{className:"preprocessor",begin:"#",end:"$",keywords:"if else elseif end error"},{className:"function",beginKeywords:"function",end:"[{;]",excludeEnd:!0,illegal:"\\S",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"type",begin:":",end:"([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)",relevance:10}]}]}}),e.registerLanguage("http",function(e){return{aliases:["https"],illegal:"\\S",contains:[{className:"status",begin:"^HTTP/[0-9\\.]+",end:"$",contains:[{className:"number",begin:"\\b\\d{3}\\b"}]},{className:"request",begin:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",returnBegin:!0,end:"$",contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0}]},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,illegal:"\\n|\\s|=",starts:{className:"string",end:"$"}},{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}]}}),e.registerLanguage("inform7",function(e){return{aliases:["i7"],case_insensitive:!0,keywords:{keyword:"thing room person man woman animal container supporter backdrop door scenery open closed locked inside gender is are say understand kind of rule"},contains:[{className:"string",begin:'"',end:'"',relevance:0,contains:[{className:"subst",begin:"\\[",end:"\\]"}]},{className:"title",begin:/^(Volume|Book|Part|Chapter|Section|Table)\b/,end:"$"},{begin:/^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,end:":",contains:[{begin:"\\b\\(This",end:"\\)"}]},{className:"comment",begin:"\\[",end:"\\]",contains:["self"]}]}}),e.registerLanguage("ini",function(e){var t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]};return{aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT(";","$"),e.HASH_COMMENT_MODE,{className:"title",begin:/^\s*\[+/,end:/\]+/},{className:"setting",begin:/^[a-z0-9\[\]_-]+\s*=\s*/,end:"$",contains:[{className:"value",endsWithParent:!0,keywords:"on off true false yes no",contains:[{className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)}/}]},t,{className:"number",begin:/([\+\-]+)?[\d]+_[\d_]+/},e.NUMBER_MODE],relevance:0}]}]}}),e.registerLanguage("irpf90",function(e){var t={className:"params",begin:"\\(",end:"\\)"};return{case_insensitive:!0,keywords:{constant:".False. .True.",type:"integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated  c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image IRP_ALIGN irp_here"},illegal:/\/\*/,contains:[e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,t]},e.COMMENT("!","$",{relevance:0}),e.COMMENT("begin_doc","end_doc",{relevance:10}),{className:"number",begin:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",relevance:0}]}}),e.registerLanguage("java",function(e){var t=e.UNDERSCORE_IDENT_RE+"(<"+e.UNDERSCORE_IDENT_RE+">)?",n="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",i={className:"number",begin:"\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\d]+[\\d_]+[\\d]+|[\\d]+)(\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))?|\\.([\\d]+[\\d_]+[\\d]+|[\\d]+))([eE][-+]?\\d+)?)[lLfF]?",relevance:0};return{aliases:["jsp"],keywords:n,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"class",beginKeywords:"class interface",end:/[{;=]/,excludeEnd:!0,keywords:"class interface",illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"new throw return else",relevance:0},{className:"function",begin:"("+t+"\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:n,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,keywords:n,relevance:0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},i,{className:"annotation",begin:"@[A-Za-z]+"}]}}),e.registerLanguage("javascript",function(e){return{aliases:["js"],keywords:{keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},contains:[{className:"pi",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE,{begin:/</,end:/>\s*[);\]]/,relevance:0,subLanguage:"xml"}],relevance:0},{className:"function",beginKeywords:"function",end:/\{/,excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}],illegal:/\[|%/},{begin:/\$[(.]/},{begin:"\\."+e.IDENT_RE,relevance:0},{beginKeywords:"import",end:"[;$]",keywords:"import from as",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},{className:"class",beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"\[\]]/,contains:[{beginKeywords:"extends"},e.UNDERSCORE_TITLE_MODE]}],illegal:/#/}}),e.registerLanguage("json",function(e){var t={literal:"true false null"},n=[e.QUOTE_STRING_MODE,e.C_NUMBER_MODE],i={className:"value",end:",",endsWithParent:!0,excludeEnd:!0,contains:n,keywords:t},r={begin:"{",end:"}",contains:[{className:"attribute",begin:'\\s*"',end:'"\\s*:\\s*',excludeBegin:!0,excludeEnd:!0,contains:[e.BACKSLASH_ESCAPE],illegal:"\\n",starts:i}],illegal:"\\S"},o={begin:"\\[",end:"\\]",contains:[e.inherit(i,{className:null})],illegal:"\\S"};return n.splice(n.length,0,r,o),{contains:n,keywords:t,illegal:"\\S"}}),e.registerLanguage("julia",function(e){var t={keyword:"in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export finally for function global if immutable import importall let local macro module quote return try type typealias using while",literal:"true false ANY ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e|0 eu|0 eulergamma golden im nothing pi γ π φ",built_in:"ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip"},n="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",i={lexemes:n,keywords:t},r={className:"type-annotation",begin:/::/},o={className:"subtype",begin:/<:/},a={className:"number",begin:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,relevance:0},s={className:"char",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},l={className:"subst",begin:/\$\(/,end:/\)/,keywords:t},c={className:"variable",begin:"\\$"+n},u={className:"string",contains:[e.BACKSLASH_ESCAPE,l,c],variants:[{begin:/\w*"/,end:/"\w*/},{begin:/\w*"""/,end:/"""\w*/}]},d={className:"string",contains:[e.BACKSLASH_ESCAPE,l,c],begin:"`",end:"`"},h={className:"macrocall",begin:"@"+n},p={className:"comment",variants:[{begin:"#=",end:"=#",relevance:10},{begin:"#",end:"$"}]};return i.contains=[a,s,r,o,u,d,h,p,e.HASH_COMMENT_MODE],l.contains=i.contains,i}),e.registerLanguage("kotlin",function(e){var t="val var get set class trait object public open private protected final enum if else do while for when break continue throw try catch finally import package is as in return fun override default companion reified inline volatile transient native";return{keywords:{typename:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null",keyword:t},contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"type",begin:/</,end:/>/,returnBegin:!0,excludeEnd:!1,relevance:0},{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,illegal:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:t,relevance:0,illegal:/\([^\(,\s:]+,/,contains:[{className:"typename",begin:/:\s*/,end:/\s*[=\)]/,excludeBegin:!0,returnEnd:!0,relevance:0}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",beginKeywords:"class trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"typename",begin:/[,:]\s*/,end:/[<\(,]|$/,excludeBegin:!0,returnEnd:!0}]},{className:"variable",beginKeywords:"var val",end:/\s*[=:$]/,excludeEnd:!0},e.QUOTE_STRING_MODE,{className:"shebang",begin:"^#!/usr/bin/env",end:"$",illegal:"\n"},e.C_NUMBER_MODE]}}),e.registerLanguage("lasso",function(e){var t="[a-zA-Z_][a-zA-Z0-9_.]*",n={literal:"true false none minimal full all void bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",built_in:"array date decimal duration integer map pair string tag xml null boolean bytes keyword list locale queue set stack staticarray local var variable global data self inherited currentcapture givenblock",keyword:"error_code error_msg error_pop error_push error_reset cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome"},i=e.COMMENT("\x3c!--","--\x3e",{relevance:0}),r={className:"preprocessor",begin:"\\[noprocess\\]",starts:{className:"markup",end:"\\[/noprocess\\]",returnEnd:!0,contains:[i]}},o={className:"preprocessor",begin:"\\[/noprocess|<\\?(lasso(script)?|=)"},a={className:"variable",begin:"'"+t+"'"},s=[e.COMMENT("/\\*\\*!","\\*/"),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.inherit(e.C_NUMBER_MODE,{begin:e.C_NUMBER_RE+"|(infinity|nan)\\b"}),e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"`",end:"`"},{className:"variable",variants:[{begin:"[#$]"+t},{begin:"#",end:"\\d+",illegal:"\\W"}]},{className:"tag",begin:"::\\s*",end:t,illegal:"\\W"},{className:"attribute",variants:[{begin:"-(?!infinity)"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:"(\\.\\.\\.)"}]},{className:"subst",variants:[{begin:"->\\s*",contains:[a]},{begin:"->|\\\\|&&?|\\|\\||!(?!=|>)|(and|or|not)\\b",relevance:0}]},{className:"built_in",begin:"\\.\\.?\\s*",relevance:0,contains:[a]},{className:"class",beginKeywords:"define",returnEnd:!0,end:"\\(|=>",contains:[e.inherit(e.TITLE_MODE,{begin:e.UNDERSCORE_IDENT_RE+"(=(?!>))?"})]}];return{aliases:["ls","lassoscript"],case_insensitive:!0,lexemes:t+"|&[lg]t;",keywords:n,contains:[{className:"preprocessor",begin:"\\]|\\?>",relevance:0,starts:{className:"markup",end:"\\[|<\\?(lasso(script)?|=)",returnEnd:!0,relevance:0,contains:[i]}},r,o,{className:"preprocessor",begin:"\\[no_square_brackets",starts:{end:"\\[/no_square_brackets\\]",lexemes:t+"|&[lg]t;",keywords:n,contains:[{className:"preprocessor",begin:"\\]|\\?>",relevance:0,starts:{className:"markup",end:"\\[noprocess\\]|<\\?(lasso(script)?|=)",returnEnd:!0,contains:[i]}},r,o].concat(s)}},{className:"preprocessor",begin:"\\[",relevance:0},{className:"shebang",begin:"^#!.+lasso9\\b",relevance:10}].concat(s)}}),e.registerLanguage("less",function(e){var t="([\\w-]+|@{[\\w-]+})",n=[],i=[],r=function(e){return{className:"string",begin:"~?"+e+".*?"+e}},o=function(e,t,n){return{className:e,begin:t,relevance:n}},a=function(t,n,i){return e.inherit({className:t,begin:n+"\\(",end:"\\(",returnBegin:!0,excludeEnd:!0,relevance:0},i)},s={begin:"\\(",end:"\\)",contains:i,relevance:0};i.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r("'"),r('"'),e.CSS_NUMBER_MODE,o("hexcolor","#[0-9A-Fa-f]+\\b"),a("function","(url|data-uri)",{starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}}),a("function","[\\w-]+"),s,o("variable","@@?[\\w-]+",10),o("variable","@{[\\w-]+}"),o("built_in","~?`[^`]*?`"),{className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0});var l=i.concat({begin:"{",end:"}",contains:n}),c={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(i)},u={className:"attribute",begin:t,end:":",excludeEnd:!0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:/\S/,starts:{end:"[;}]",returnEnd:!0,contains:i,illegal:"[<=$]"}},d={className:"at_rule",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",returnEnd:!0,contains:i,relevance:0}},h={className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:l}},p={variants:[{begin:"[\\.#:&\\[]",end:"[;{}]"},{begin:t+"[^;]*{",end:"{"}],returnBegin:!0,returnEnd:!0,illegal:"[<='$\"]",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,c,o("keyword","all\\b"),o("variable","@{[\\w-]+}"),o("tag",t+"%?",0),o("id","#"+t),o("class","\\."+t,0),o("keyword","&",0),a("pseudo",":not"),a("keyword",":extend"),o("pseudo","::?"+t),{className:"attr_selector",begin:"\\[",end:"\\]"},{begin:"\\(",end:"\\)",contains:l},{begin:"!important"}]};return n.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,d,h,p,u),{case_insensitive:!0,illegal:"[=>'/<($\"]",contains:n}}),e.registerLanguage("lisp",function(e){var t="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*",n="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?",i={className:"shebang",begin:"^#!",end:"$"},r={className:"literal",begin:"\\b(t{1}|nil)\\b"},o={className:"number",variants:[{begin:n,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{begin:"#(c|C)\\("+n+" +"+n,end:"\\)"}]},a=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),s=e.COMMENT(";","$",{relevance:0}),l={className:"variable",begin:"\\*",end:"\\*"},c={className:"keyword",begin:"[:&]"+t},u={begin:t,relevance:0},d={begin:"\\|[^]*?\\|"},h={className:"quoted",contains:[o,a,l,c,{begin:"\\(",end:"\\)",contains:["self",r,a,o,u]},u],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:"quote"},{begin:"'\\|[^]*?\\|"}]},p={className:"quoted",variants:[{begin:"'"+t},{begin:"#'"+t+"(::"+t+")*"}]},f={className:"list",begin:"\\(\\s*",end:"\\)"},m={endsWithParent:!0,relevance:0};return f.contains=[{className:"keyword",variants:[{begin:t},{begin:"\\|[^]*?\\|"}]},m],m.contains=[h,p,f,r,o,a,s,l,c,d,u],{illegal:/\S/,contains:[o,i,r,a,s,h,p,f,u]}}),e.registerLanguage("livecodeserver",function(e){var t={className:"variable",begin:"\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+",relevance:0},n=[e.C_BLOCK_COMMENT_MODE,e.HASH_COMMENT_MODE,e.COMMENT("--","$"),e.COMMENT("[^:]//","$")],i=e.inherit(e.TITLE_MODE,{variants:[{begin:"\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*"},{begin:"\\b_[a-z0-9\\-]+"}]}),r=e.inherit(e.TITLE_MODE,{begin:"\\b([A-Za-z0-9_\\-]+)\\b"});return{case_insensitive:!1,keywords:{keyword:"$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word words fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if",constant:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",operator:"div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys",built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress constantNames cos date dateFormat decompress directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load multiply socket prepare process post seek rel relative read from process rename replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop subtract union unload wait write"},contains:[t,{className:"keyword",begin:"\\bend\\sif\\b"},{className:"function",beginKeywords:"function",end:"$",contains:[t,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,i]},{className:"function",begin:"\\bend\\s+",end:"$",keywords:"end",contains:[r,i]},{className:"command",beginKeywords:"command on",end:"$",contains:[t,r,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,i]},{className:"preprocessor",variants:[{begin:"<\\?(rev|lc|livecode)",relevance:10},{begin:"<\\?"},{begin:"\\?>"}]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE,i].concat(n),illegal:";$|^\\[|^="}}),e.registerLanguage("livescript",function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger case default function var with then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super case default function var void const let enum export import native __hasProp __extends __slice __bind __indexOf",literal:"true false null undefined yes no on off it that void",built_in:"npm require console print module global window document"},n="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",i=e.inherit(e.TITLE_MODE,{begin:n}),r={className:"subst",begin:/#\{/,end:/}/,keywords:t},o={className:"subst",begin:/#[A-Za-z$_]/,end:/(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,keywords:t},a=[e.BINARY_NUMBER_MODE,{className:"number",begin:"(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)",relevance:0,starts:{end:"(\\s*/)?",relevance:0}},{className:"string",variants:[{begin:/'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,r,o]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,r,o]},{begin:/\\/,end:/(\s|$)/,excludeEnd:!0}]},{className:"pi",variants:[{begin:"//",end:"//[gim]*",contains:[r,e.HASH_COMMENT_MODE]},{begin:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{className:"property",begin:"@"+n},{begin:"``",end:"``",excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"}];r.contains=a;var s={className:"params",begin:"\\(",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:t,contains:["self"].concat(a)}]};return{aliases:["ls"],keywords:t,illegal:/\/\*/,contains:a.concat([e.COMMENT("\\/\\*","\\*\\/"),e.HASH_COMMENT_MODE,{className:"function",contains:[i,s],returnBegin:!0,variants:[{begin:"("+n+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B\\->\\*?",end:"\\->\\*?"},{begin:"("+n+"\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?",end:"[-~]{1,2}>\\*?"},{begin:"("+n+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?",end:"!?[-~]{1,2}>\\*?"}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[i]},i]},{className:"attribute",begin:n+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}),e.registerLanguage("lua",function(e){var t={begin:"\\[=*\\[",end:"\\]=*\\]",contains:["self"]},n=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[","\\]=*\\]",{contains:[t],relevance:10})];return{lexemes:e.UNDERSCORE_IDENT_RE,keywords:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},contains:n.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:n}].concat(n)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\[=*\\[",end:"\\]=*\\]",contains:[t],relevance:5}])}}),e.registerLanguage("makefile",function(e){var t={className:"variable",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]};return{aliases:["mk","mak"],contains:[e.HASH_COMMENT_MODE,{begin:/^\w+\s*\W*=/,returnBegin:!0,relevance:0,starts:{className:"constant",end:/\s*\W*=/,excludeEnd:!0,starts:{end:/$/,relevance:0,contains:[t]}}},{className:"title",begin:/^[\w]+:\s*$/},{className:"phony",begin:/^\.PHONY:/,end:/$/,keywords:".PHONY",lexemes:/[\.\w]+/},{begin:/^\t+/,end:/$/,relevance:0,contains:[e.QUOTE_STRING_MODE,t]}]}}),e.registerLanguage("mathematica",function(e){return{aliases:["mma"],lexemes:"(\\$|\\b)"+e.IDENT_RE+"\\b",keywords:"AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine Transparent UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian XMLElement XMLObject Xnor Xor Yellow YuleDissimilarity ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform $Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber",contains:[{className:"comment",begin:/\(\*/,end:/\*\)/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"list",begin:/\{/,end:/\}/,illegal:/:/}]}}),e.registerLanguage("matlab",function(e){var t=[e.C_NUMBER_MODE,{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]}],n={relevance:0,contains:[{className:"operator",begin:/'['\.]*/}]};return{keywords:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},illegal:'(//|"|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"},{className:"params",begin:"\\[",end:"\\]"}]},{begin:/[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,returnBegin:!0,relevance:0,contains:[{begin:/[a-zA-Z_][a-zA-Z_0-9]*/,relevance:0},n.contains[0]]},{className:"matrix",begin:"\\[",end:"\\]",contains:t,relevance:0,starts:n},{className:"cell",begin:"\\{",end:/}/,contains:t,relevance:0,starts:n},{begin:/\)/,relevance:0,starts:n},e.COMMENT("^\\s*\\%\\{\\s*$","^\\s*\\%\\}\\s*$"),e.COMMENT("\\%","$")].concat(t)}}),e.registerLanguage("mel",function(e){return{keywords:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",illegal:"</",contains:[e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{className:"variable",variants:[{begin:"\\$\\d"},{begin:"[\\$\\%\\@](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"},{begin:"\\*(\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)",relevance:0}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}),e.registerLanguage("mercury",function(e){var t={keyword:"module use_module import_module include_module end_module initialise mutable initialize finalize finalise interface implementation pred mode func type inst solver any_pred any_func is semidet det nondet multi erroneous failure cc_nondet cc_multi typeclass instance where pragma promise external trace atomic or_else require_complete_switch require_det require_semidet require_multi require_nondet require_cc_multi require_cc_nondet require_erroneous require_failure",pragma:"inline no_inline type_spec source_file fact_table obsolete memo loop_check minimal_model terminates does_not_terminate check_termination promise_equivalent_clauses",preprocessor:"foreign_proc foreign_decl foreign_code foreign_type foreign_import_module foreign_export_enum foreign_export foreign_enum may_call_mercury will_not_call_mercury thread_safe not_thread_safe maybe_thread_safe promise_pure promise_semipure tabled_for_io local untrailed trailed attach_to_io_state can_pass_as_mercury_type stable will_not_throw_exception may_modify_trail will_not_modify_trail may_duplicate may_not_duplicate affects_liveness does_not_affect_liveness doesnt_affect_liveness no_sharing unknown_sharing sharing",built_in:"some all not if then else true fail false try catch catch_any semidet_true semidet_false semidet_fail impure_true impure semipure"},n={className:"label",begin:"XXX",end:"$",endsWithParent:!0,relevance:0},i=e.inherit(e.C_LINE_COMMENT_MODE,{begin:"%"}),r=e.inherit(e.C_BLOCK_COMMENT_MODE,{relevance:0});i.contains.push(n),r.contains.push(n);var o={className:"number",begin:"0'.\\|0[box][0-9a-fA-F]*"},a=e.inherit(e.APOS_STRING_MODE,{relevance:0}),s=e.inherit(e.QUOTE_STRING_MODE,{relevance:0}),l={className:"constant",begin:"\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]",relevance:0};return s.contains.push(l),{aliases:["m","moo"],keywords:t,contains:[{className:"built_in",variants:[{begin:"<=>"},{begin:"<=",relevance:0},{begin:"=>",relevance:0},{begin:"/\\\\"},{begin:"\\\\/"}]},{className:"built_in",variants:[{begin:":-\\|--\x3e"},{begin:"=",relevance:0}]},i,r,o,e.NUMBER_MODE,a,s,{begin:/:-/}]}}),e.registerLanguage("mizar",function(e){return{keywords:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity",contains:[e.COMMENT("::","$")]}}),e.registerLanguage("perl",function(e){var t="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",n={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:t},i={begin:"->{",end:"}"},r={className:"variable",variants:[{begin:/\$\d/},{begin:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{begin:/[\$%@][^\s\w{]/,relevance:0}]},o=[e.BACKSLASH_ESCAPE,n,r],a=[r,e.HASH_COMMENT_MODE,e.COMMENT("^\\=\\w","\\=cut",{endsWithParent:!0}),i,{className:"string",contains:o,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*\\<",end:"\\>",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:"{\\w+}",contains:[],relevance:0},{begin:"-?\\w+\\s*\\=\\>",contains:[],relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",begin:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",relevance:10},{className:"regexp",begin:"(m|qr)?/",end:"/[a-z]*",contains:[e.BACKSLASH_ESCAPE],relevance:0}]},{className:"sub",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",relevance:5},{className:"operator",begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return n.contains=a,i.contains=a,{aliases:["pl"],keywords:t,contains:a}}),e.registerLanguage("mojolicious",function(e){return{subLanguage:"xml",contains:[{className:"preprocessor",begin:"^__(END|DATA)__$"},{begin:"^\\s*%{1,2}={0,2}",end:"$",subLanguage:"perl"},{begin:"<%{1,2}={0,2}",end:"={0,1}%>",subLanguage:"perl",excludeBegin:!0,excludeEnd:!0}]}}),e.registerLanguage("monkey",function(e){var t={className:"number",relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},e.NUMBER_MODE]};return{case_insensitive:!0,keywords:{keyword:"public private property continue exit extern new try catch eachin not abstract final select case default const local global field end if then else elseif endif while wend repeat until forever for to step next return module inline throw",built_in:"DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI",literal:"true false null and or shl shr mod"},illegal:/\/\*/,contains:[e.COMMENT("#rem","#end"),e.COMMENT("'","$",{relevance:0}),{className:"function",beginKeywords:"function method",end:"[(=:]|$",illegal:/\n/,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"$",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{className:"variable",begin:"\\b(self|super)\\b"},{className:"preprocessor",beginKeywords:"import",end:"$"},{className:"preprocessor",begin:"\\s*#",end:"$",keywords:"if else elseif endif end then"},{className:"pi",begin:"^\\s*strict\\b"},{beginKeywords:"alias",end:"=",contains:[e.UNDERSCORE_TITLE_MODE]},e.QUOTE_STRING_MODE,t]}}),e.registerLanguage("nginx",function(e){var t={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/}/},{begin:"[\\$\\@]"+e.UNDERSCORE_IDENT_RE}]},n={endsWithParent:!0,lexemes:"[a-z/_]+",keywords:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{className:"url",begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[t]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,t],variants:[{begin:"\\s\\^",end:"\\s|{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},t]};return{aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|{",returnBegin:!0,contains:[{className:"title",begin:e.UNDERSCORE_IDENT_RE,starts:n}],relevance:0}],illegal:"[^\\s\\}]"}}),e.registerLanguage("nimrod",function(e){return{aliases:["nim"],keywords:{keyword:"addr and as asm bind block break|0 case|0 cast const|0 continue|0 converter discard distinct|10 div do elif else|0 end|0 enum|0 except export finally for from generic if|0 import|0 in include|0 interface is isnot|10 iterator|10 let|0 macro method|10 mixin mod nil not notin|10 object|0 of or out proc|10 ptr raise ref|10 return shl shr static template try|0 tuple type|0 using|0 var|0 when while|0 with without xor yield",literal:"shared guarded stdin stdout stderr result|10 true false"},contains:[{className:"decorator",begin:/{\./,end:/\.}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},e.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"type",begin:/\b(int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|float|float32|float64|bool|char|string|cstring|pointer|expr|stmt|void|auto|any|range|array|openarray|varargs|seq|set|clong|culong|cchar|cschar|cshort|cint|csize|clonglong|cfloat|cdouble|clongdouble|cuchar|cushort|cuint|culonglong|cstringarray|semistatic)\b/},{className:"number",begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},{className:"number",begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/,relevance:0},e.HASH_COMMENT_MODE]}}),e.registerLanguage("nix",function(e){var t={keyword:"rec with let in inherit assert if else then",constant:"true false or and null",built_in:"import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation"},n={className:"subst",begin:/\$\{/,end:/}/,keywords:t},i={className:"variable",begin:/[a-zA-Z0-9-_]+(\s*=)/,relevance:0},r={className:"string",begin:"''",end:"''",contains:[n]},o={className:"string",begin:'"',end:'"',contains:[n]},a=[e.NUMBER_MODE,e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,o,i];return n.contains=a,{aliases:["nixos"],keywords:t,contains:a}}),e.registerLanguage("nsis",function(e){var t={className:"symbol",begin:"\\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)"},n={className:"constant",begin:"\\$+{[a-zA-Z0-9_]+}"},i={className:"variable",begin:"\\$+[a-zA-Z0-9_]+",illegal:"\\(\\){}"},r={className:"constant",begin:"\\$+\\([a-zA-Z0-9_]+\\)"},o={className:"params",begin:"(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)"},a={className:"constant",begin:"\\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)"};return{case_insensitive:!1,keywords:{keyword:"Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetPluginUnload SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption SubSectionEnd Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle",literal:"admin all auto both colored current false force hide highest lastused leave listonly none normal notset off on open print show silent silentlog smooth textonly true user "},contains:[e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[{className:"symbol",begin:"\\$(\\\\(n|r|t)|\\$)"},t,n,i,r]},e.COMMENT(";","$",{relevance:0}),{className:"function",beginKeywords:"Function PageEx Section SectionGroup SubSection",end:"$"},a,n,i,r,o,e.NUMBER_MODE,{className:"literal",begin:e.IDENT_RE+"::"+e.IDENT_RE}]}}),e.registerLanguage("objectivec",function(e){var t=/[a-zA-Z@][a-zA-Z0-9_]*/,n="@interface @class @protocol @implementation";return{aliases:["mm","objc","obj-c"],keywords:{keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},lexemes:t,illegal:"</",contains:[{className:"built_in",begin:"(AV|CA|CF|CG|CI|MK|MP|NS|UI)\\w+"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"}]},{className:"preprocessor",begin:"#",end:"$",contains:[{className:"title",variants:[{begin:'"',end:'"'},{begin:"<",end:">"}]}]},{className:"class",begin:"("+n.split(" ").join("|")+")\\b",end:"({|$)",excludeEnd:!0,keywords:n,lexemes:t,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"variable",begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}),e.registerLanguage("ocaml",function(e){return{aliases:["ml"],keywords:{keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},illegal:/\/\/|>>/,lexemes:"[a-z_]\\w*!?",contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"tag",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},e.inherit(e.APOS_STRING_MODE,{className:"char",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}}),e.registerLanguage("openscad",function(e){var t={className:"keyword",begin:"\\$(f[asn]|t|vp[rtd]|children)"},n={className:"literal",begin:"false|true|PI|undef"},i={className:"number",begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0},r=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),o={className:"preprocessor",keywords:"include use",begin:"include|use <",end:">"},a={className:"built_in",begin:"[*!#%]",relevance:0},s={className:"function",beginKeywords:"module function",end:"\\=|\\{",contains:[{className:"params",begin:"\\(",end:"\\)",contains:["self",i,r,t,n]},e.UNDERSCORE_TITLE_MODE]};return{aliases:["scad"],keywords:{keyword:"function module include use for intersection_for if else \\%",literal:"false true PI undef",built_in:"circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,o,r,t,a,s]}}),e.registerLanguage("oxygene",function(e){var t="abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained",n=e.COMMENT("{","}",{relevance:0}),i=e.COMMENT("\\(\\*","\\*\\)",{relevance:10}),r={className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},o={className:"string",begin:"(#\\d+)+"},a={className:"function",beginKeywords:"function constructor destructor procedure method",end:"[:;]",keywords:"function constructor|10 destructor|10 procedure|10 method|10",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",keywords:t,contains:[r,o]},n,i]};return{case_insensitive:!0,keywords:t,illegal:'("|\\$[G-Zg-z]|\\/\\*|</|=>|->)',contains:[n,i,e.C_LINE_COMMENT_MODE,r,o,e.NUMBER_MODE,a,{className:"class",begin:"=\\bclass\\b",end:"end;",keywords:t,contains:[r,o,n,i,e.C_LINE_COMMENT_MODE,a]}]}}),e.registerLanguage("parser3",function(e){var t=e.COMMENT("{","}",{contains:["self"]});return{subLanguage:"xml",relevance:0,contains:[e.COMMENT("^#","$"),e.COMMENT("\\^rem{","}",{relevance:10,contains:[t]}),{className:"preprocessor",begin:"^@(?:BASE|USE|CLASS|OPTIONS)$",relevance:10},{className:"title",begin:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{className:"variable",begin:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{className:"keyword",begin:"\\^[\\w\\-\\.\\:]+"},{className:"number",begin:"\\^#[0-9a-fA-F]+"},e.C_NUMBER_MODE]}}),e.registerLanguage("pf",function(e){var t={className:"variable",begin:/\$[\w\d#@][\w\d_]*/},n={className:"variable",begin:/</,end:/>/};return{aliases:["pf.conf"],lexemes:/[a-z0-9_<>-]+/,keywords:{built_in:"block match pass load anchor|5 antispoof|10 set table",keyword:"in out log quick on rdomain inet inet6 proto from port os to routeallow-opts divert-packet divert-reply divert-to flags group icmp-typeicmp6-type label once probability recieved-on rtable prio queuetos tag tagged user keep fragment for os dropaf-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robinsource-hash static-portdup-to reply-to route-toparent bandwidth default min max qlimitblock-policy debug fingerprints hostid limit loginterface optimizationreassemble ruleset-optimization basic none profile skip state-defaultsstate-policy timeoutconst counters persistno modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppysource-track global rule max-src-nodes max-src-states max-src-connmax-src-conn-rate overload flushscrub|5 max-mss min-ttl no-df|10 random-id",literal:"all any no-route self urpf-failed egress|5 unknown"},contains:[e.HASH_COMMENT_MODE,e.NUMBER_MODE,e.QUOTE_STRING_MODE,t,n]}}),e.registerLanguage("php",function(e){var t={className:"variable",begin:"\\$+[a-zA-Z_\7f-ÿ][a-zA-Z0-9_\7f-ÿ]*"},n={className:"preprocessor",begin:/<\?(php)?|\?>/},i={className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},r={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{aliases:["php3","php4","php5","php6"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",contains:[e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"},n]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:e.UNDERSCORE_IDENT_RE}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;?$/,contains:[e.BACKSLASH_ESCAPE,{className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]}]},n,t,{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",t,e.C_BLOCK_COMMENT_MODE,i,r]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},i,r]}}),e.registerLanguage("powershell",function(e){var t={className:"variable",variants:[{begin:/\$[\w\d][\w\d_:]*/}]},n={className:"string",begin:/"/,end:/"/,contains:[{begin:"`[\\s\\S]",relevance:0},t,{className:"variable",begin:/\$[A-z]/,end:/[^A-z]/}]},i={className:"string",begin:/'/,end:/'/};return{aliases:["ps"],lexemes:/-?[A-z\.\-]+/,case_insensitive:!0,keywords:{keyword:"if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch",literal:"$null $true $false",built_in:"Add-Content Add-History Add-Member Add-PSSnapin Clear-Content Clear-Item Clear-Item Property Clear-Variable Compare-Object ConvertFrom-SecureString Convert-Path ConvertTo-Html ConvertTo-SecureString Copy-Item Copy-ItemProperty Export-Alias Export-Clixml Export-Console Export-Csv ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-Content Get-Credential Get-Culture Get-Date Get-EventLog Get-ExecutionPolicy Get-Help Get-History Get-Host Get-Item Get-ItemProperty Get-Location Get-Member Get-PfxCertificate Get-Process Get-PSDrive Get-PSProvider Get-PSSnapin Get-Service Get-TraceSource Get-UICulture Get-Unique Get-Variable Get-WmiObject Group-Object Import-Alias Import-Clixml Import-Csv Invoke-Expression Invoke-History Invoke-Item Join-Path Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Item New-ItemProperty New-Object New-PSDrive New-Service New-TimeSpan New-Variable Out-Default Out-File Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Remove-Item Remove-ItemProperty Remove-PSDrive Remove-PSSnapin Remove-Variable Rename-Item Rename-ItemProperty Resolve-Path Restart-Service Resume-Service Select-Object Select-String Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-Location Set-PSDebug Set-Service Set-TraceSource Set-Variable Sort-Object Split-Path Start-Service Start-Sleep Start-Transcript Stop-Process Stop-Service Stop-Transcript Suspend-Service Tee-Object Test-Path Trace-Command Update-FormatData Update-TypeData Where-Object Write-Debug Write-Error Write-Host Write-Output Write-Progress Write-Verbose Write-Warning",operator:"-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace"},contains:[e.HASH_COMMENT_MODE,e.NUMBER_MODE,n,i,t]}}),e.registerLanguage("processing",function(e){return{keywords:{keyword:"BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject Object StringDict StringList Table TableRow XML false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",constant:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI",variable:"displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key keyCode pixels focused frameCount frameRate height width",title:"setup draw",built_in:"size createGraphics beginDraw createShape loadShape PShape arc ellipse line point quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour millis minute month second year background clear colorMode fill noFill noStroke stroke alpha blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}),e.registerLanguage("profile",function(e){return{contains:[e.C_NUMBER_MODE,{className:"built_in",begin:"{",end:"}$",excludeBegin:!0,excludeEnd:!0,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE],relevance:0},{className:"filename",begin:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",end:":",excludeEnd:!0},{className:"header",begin:"(ncalls|tottime|cumtime)",end:"$",keywords:"ncalls tottime|10 cumtime|10 filename",relevance:10},{className:"summary",begin:"function calls",end:"$",contains:[e.C_NUMBER_MODE],relevance:10},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"function",begin:"\\(",end:"\\)$",contains:[e.UNDERSCORE_TITLE_MODE],relevance:0}]}}),e.registerLanguage("prolog",function(e){var t={className:"atom",begin:/[a-z][A-Za-z0-9_]*/,relevance:0},n={className:"name",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{begin:/_[A-Za-z0-9_]*/}],relevance:0},i={begin:/\(/,end:/\)/,relevance:0},r={begin:/\[/,end:/\]/},o={className:"comment",begin:/%/,end:/$/,contains:[e.PHRASAL_WORDS_MODE]},a={className:"string",begin:/`/,end:/`/,contains:[e.BACKSLASH_ESCAPE]},s={className:"string",begin:/0\'(\\\'|.)/},l={className:"string",begin:/0\'\\s/},c=[t,n,i,{begin:/:-/},r,o,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,a,s,l,e.C_NUMBER_MODE];return i.contains=c,r.contains=c,{contains:c.concat([{begin:/\.$/}])}}),e.registerLanguage("protobuf",function(e){return{keywords:{keyword:"package import option optional required repeated group",built_in:"double float int32 int64 uint32 uint64 sint32 sint64 fixed32 fixed64 sfixed32 sfixed64 bool string bytes",literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,{className:"class",beginKeywords:"message enum service",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"function",beginKeywords:"rpc",end:/;/,excludeEnd:!0,keywords:"rpc returns"},{className:"constant",begin:/^\s*[A-Z_]+/,end:/\s*=/,excludeEnd:!0}]}}),e.registerLanguage("puppet",function(e){var t={keyword:"and case default else elsif false if in import enherits node or true undef unless main settings $string ",literal:"alias audit before loglevel noop require subscribe tag owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check en_address ip_address realname command environment hour monute month monthday special target weekday creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey sslverify mounted",built_in:"architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version"},n=e.COMMENT("#","$"),i=e.inherit(e.TITLE_MODE,{begin:"([A-Za-z_]|::)(\\w|::)*"}),r={className:"variable",begin:"\\$([A-Za-z_]|::)(\\w|::)*"},o={className:"string",contains:[e.BACKSLASH_ESCAPE,r],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/}]};return{aliases:["pp"],contains:[n,r,o,{beginKeywords:"class",end:"\\{|;",illegal:/=/,contains:[i,n]},{beginKeywords:"define",end:/\{/,contains:[{className:"title",begin:e.IDENT_RE,endsParent:!0}]},{begin:e.IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\S/,contains:[{className:"name",begin:e.IDENT_RE},{begin:/\{/,end:/\}/,keywords:t,relevance:0,contains:[o,n,{begin:"[a-zA-Z_]+\\s*=>"},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},r]}],relevance:0}]}}),e.registerLanguage("python",function(e){var t={className:"prompt",begin:/^(>>>|\.\.\.) /},n={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,contains:[t],relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,contains:[t],relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},i={className:"number",relevance:0,variants:[{begin:e.BINARY_NUMBER_RE+"[lLjJ]?"},{begin:"\\b(0o[0-7]+)[lLjJ]?"},{begin:e.C_NUMBER_RE+"[lLjJ]?"}]},r={className:"params",begin:/\(/,end:/\)/,contains:["self",t,i,n]};return{aliases:["py","gyp"],keywords:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},illegal:/(<\/|->|\?)/,contains:[t,i,n,e.HASH_COMMENT_MODE,{variants:[{className:"function",beginKeywords:"def",relevance:10},{className:"class",beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,contains:[e.UNDERSCORE_TITLE_MODE,r]},{className:"decorator",begin:/^[\t ]*@/,end:/$/},{begin:/\b(print|exec)\(/}]}}),e.registerLanguage("q",function(e){return{aliases:["k","kdb"],keywords:{keyword:"do while select delete by update from",constant:"0b 1b",built_in:"neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum",typename:"`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid"},lexemes:/\b(`?)[A-Za-z0-9_]+\b/,contains:[e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}),e.registerLanguage("r",function(e){var t="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{contains:[e.HASH_COMMENT_MODE,{begin:t,lexemes:t,keywords:{keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},relevance:0},{className:"number",begin:"0[xX][0-9a-fA-F]+[Li]?\\b",relevance:0},{className:"number",begin:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",relevance:0},{className:"number",begin:"\\d+\\.(?!\\d)(?:i\\b)?",relevance:0},{className:"number",begin:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{className:"number",begin:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",relevance:0},{begin:"`",end:"`",relevance:0},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'"',end:'"'},{begin:"'",end:"'"}]}]}}),e.registerLanguage("rib",function(e){return{keywords:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",illegal:"</",contains:[e.HASH_COMMENT_MODE,e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}}),e.registerLanguage("roboconf",function(e){var t="[a-zA-Z-_][^\n{\r\n]+\\{";return{aliases:["graph","instances"],case_insensitive:!0,keywords:"import",contains:[{className:"facet",begin:"^facet "+t,end:"}",keywords:"facet installer exports children extends",contains:[e.HASH_COMMENT_MODE]},{className:"instance-of",begin:"^instance of "+t,end:"}",keywords:"name count channels instance-data instance-state instance of",contains:[{className:"keyword",begin:"[a-zA-Z-_]+( |\t)*:"},e.HASH_COMMENT_MODE]},{className:"component",begin:"^"+t,end:"}",lexemes:"\\(?[a-zA-Z]+\\)?",keywords:"installer exports children extends imports facets alias (optional)",contains:[{className:"string",begin:"\\.[a-zA-Z-_]+",end:"\\s|,|;",excludeEnd:!0},e.HASH_COMMENT_MODE]},e.HASH_COMMENT_MODE]}}),e.registerLanguage("rsl",function(e){return{keywords:{keyword:"float color point normal vector matrix while for if do return else break extern continue",built_in:"abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$"},{className:"shader",beginKeywords:"surface displacement light volume imager",end:"\\("},{className:"shading",beginKeywords:"illuminate illuminance gather",end:"\\("}]}}),e.registerLanguage("ruleslanguage",function(e){return{keywords:{keyword:"BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 INTDCREATEHANDLE|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE NOVALUE SECTION WARN SAVE_UPDATE DETERMINANT LABEL REPORT REVENUE EACH IN FROM TOTAL CHARGE BLOCK AND OR CSV_FILE RATE_CODE AUXILIARY_DEMAND UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM NUMDAYS READ_DATE STAGING",built_in:"IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"array",variants:[{begin:"#\\s+[a-zA-Z\\ \\.]*",relevance:0},{begin:"#[a-zA-Z\\ \\.]+"}]}]}}),e.registerLanguage("rust",function(e){var t="([uif](8|16|32|64|size))?",n=e.inherit(e.C_BLOCK_COMMENT_MODE);return n.contains.push("self"),{aliases:["rs"],keywords:{keyword:"alignof as be box break const continue crate do else enum extern false fn for if impl in let loop match mod mut offsetof once priv proc pub pure ref return self Self sizeof static struct super trait true type typeof unsafe unsized use virtual while where yield int i8 i16 i32 i64 uint u8 u32 u64 float f32 f64 str char bool",built_in:"Copy Send Sized Sync Drop Fn FnMut FnOnce drop Box ToOwned Clone PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator Option Some None Result Ok Err SliceConcatExt String ToString Vec assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln!"},lexemes:e.IDENT_RE+"!?",illegal:"</",contains:[e.C_LINE_COMMENT_MODE,n,e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",variants:[{begin:/r(#*)".*?"\1(?!#)/},{begin:/'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/},{begin:/'[a-zA-Z_][a-zA-Z0-9_]*/}]},{className:"number",variants:[{begin:"\\b0b([01_]+)"+t},{begin:"\\b0o([0-7_]+)"+t},{begin:"\\b0x([A-Fa-f0-9_]+)"+t},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+t}],relevance:0},{className:"function",beginKeywords:"fn",end:"(\\(|<)",excludeEnd:!0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"preprocessor",begin:"#\\!?\\[",end:"\\]"},{beginKeywords:"type",end:"(=|<)",contains:[e.UNDERSCORE_TITLE_MODE],illegal:"\\S"},{beginKeywords:"trait enum",end:"{",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"[\\w\\d]"},{begin:e.IDENT_RE+"::"},{begin:"->"}]}}),e.registerLanguage("scala",function(e){var t={className:"annotation",begin:"@[A-Za-z]+"},n={className:"string",begin:'u?r?"""',end:'"""',relevance:10},i={className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},r={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},o={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},a={className:"class",beginKeywords:"class object trait type",end:/[:={\[(\n;]/,contains:[{className:"keyword",beginKeywords:"extends with",relevance:10},o]},s={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,contains:[o]};return{keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,e.QUOTE_STRING_MODE,i,r,s,a,e.C_NUMBER_MODE,t]}}),e.registerLanguage("scheme",function(e){var t="[^\\(\\)\\[\\]\\{\\}\",'`;#|\\\\\\s]+",n={built_in:"case-lambda call/cc class define-class exit-handler field import inherit init-field interface let*-values let-values let/ec mixin opt-lambda override protect provide public rename require require-for-syntax syntax syntax-case syntax-error unit/sig unless when with-syntax and begin call-with-current-continuation call-with-input-file call-with-output-file case cond define define-syntax delay do dynamic-wind else for-each if lambda let let* let-syntax letrec letrec-syntax map or syntax-rules ' * + , ,@ - ... / ; < <= = => > >= ` abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci<? char-ci=? char-ci>=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char<? char=? char>=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci<? string-ci=? string-ci>=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string<? string=? string>=? string>? string? substring symbol->string symbol? tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"},i={className:"shebang",begin:"^#!",end:"$"},r={className:"literal",begin:"(#t|#f|#\\\\"+t+"|#\\\\.)"},o={className:"number",variants:[{begin:"(\\-|\\+)?\\d+([./]\\d+)?",relevance:0},{begin:"(\\-|\\+)?\\d+([./]\\d+)?[+\\-](\\-|\\+)?\\d+([./]\\d+)?i",relevance:0},{begin:"#b[0-1]+(/[0-1]+)?"},{begin:"#o[0-7]+(/[0-7]+)?"},{begin:"#x[0-9a-f]+(/[0-9a-f]+)?"}]},a=e.QUOTE_STRING_MODE,s=[e.COMMENT(";","$",{relevance:0}),e.COMMENT("#\\|","\\|#")],l={begin:t,relevance:0},c={className:"variable",begin:"'"+t},u={endsWithParent:!0,relevance:0},d={className:"list",variants:[{begin:"\\(",end:"\\)"},{begin:"\\[",end:"\\]"}],contains:[{className:"keyword",begin:t,lexemes:t,keywords:n},u]};return u.contains=[r,o,a,l,c,d].concat(s),{illegal:/\S/,contains:[i,o,a,c,d].concat(s)}}),e.registerLanguage("scilab",function(e){var t=[e.C_NUMBER_MODE,{className:"string",begin:"'|\"",end:"'|\"",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]}];return{aliases:["sci"],keywords:{keyword:"abort break case clear catch continue do elseif else endfunction end for functionglobal if pause return resume select try then while%f %F %t %T %pi %eps %inf %nan %e %i %z %s",built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp errorexec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isemptyisinfisnan isvector lasterror length load linspace list listfiles log10 log2 logmax min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand realround sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tantype typename warning zeros matrix"},illegal:'("|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function endfunction",end:"$",keywords:"function endfunction|10",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},{className:"transposed_variable",begin:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",end:"",relevance:0},{className:"matrix",begin:"\\[",end:"\\]'*[\\.']*",relevance:0,contains:t},e.COMMENT("//","$")].concat(t)}}),e.registerLanguage("scss",function(e){var t={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"},n={className:"function",begin:"[a-zA-Z-][a-zA-Z0-9_-]*\\(",returnBegin:!0,excludeEnd:!0,end:"\\("},i={className:"hexcolor",begin:"#[0-9A-Fa-f]+"};e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_BLOCK_COMMENT_MODE;return{case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"id",begin:"\\#[A-Za-z0-9_-]+",relevance:0},{className:"class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},{className:"attr_selector",begin:"\\[",end:"\\]",illegal:"$"},{className:"tag",begin:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",relevance:0},{className:"pseudo",begin:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{className:"pseudo",begin:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},t,{className:"attribute",begin:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",illegal:"[^\\s]"},{className:"value",begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{className:"value",begin:":",end:";",contains:[n,t,i,e.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{className:"important",begin:"!important"}]},{className:"at_rule",begin:"@",end:"[{;]",keywords:"mixin include extend for if else each while charset import debug media page content font-face namespace warn",contains:[n,t,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,i,e.CSS_NUMBER_MODE,{className:"preprocessor",begin:"\\s[A-Za-z0-9_.-]+",relevance:0}]}]}}),e.registerLanguage("smali",function(e){var t=["add","and","cmp","cmpg","cmpl","const","div","double","float","goto","if","int","long","move","mul","neg","new","nop","not","or","rem","return","shl","shr","sput","sub","throw","ushr","xor"],n=["aget","aput","array","check","execute","fill","filled","goto/16","goto/32","iget","instance","invoke","iput","monitor","packed","sget","sparse"],i=["transient","constructor","abstract","final","synthetic","public","private","protected","static","bridge","system"];return{aliases:["smali"],contains:[{className:"string",begin:'"',end:'"',relevance:0},e.COMMENT("#","$",{relevance:0}),{className:"keyword",begin:"\\s*\\.end\\s[a-zA-Z0-9]*",relevance:1},{className:"keyword",begin:"^[ ]*\\.[a-zA-Z]*",relevance:0},{className:"keyword",begin:"\\s:[a-zA-Z_0-9]*",relevance:0},{className:"keyword",begin:"\\s("+i.join("|")+")",relevance:1},{className:"keyword",begin:"\\[",relevance:0},{className:"instruction",begin:"\\s("+t.join("|")+")\\s",relevance:1},{className:"instruction",begin:"\\s("+t.join("|")+")((\\-|/)[a-zA-Z0-9]+)+\\s",relevance:10},{className:"instruction",begin:"\\s("+n.join("|")+")((\\-|/)[a-zA-Z0-9]+)*\\s",relevance:10},{className:"class",begin:"L[^(;:\n]*;",relevance:0},{className:"function",begin:'( |->)[^(\n ;"]*\\(',relevance:0},{className:"function",begin:"\\)",relevance:0},{className:"variable",begin:"[vp][0-9]+",relevance:0}]}}),e.registerLanguage("smalltalk",function(e){var t={className:"char",begin:"\\$.{1}"},n={className:"symbol",begin:"#"+e.UNDERSCORE_IDENT_RE};return{aliases:["st"],keywords:"self super nil true false thisContext",contains:[e.COMMENT('"','"'),e.APOS_STRING_MODE,{className:"class",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{className:"method",begin:"[a-z][a-zA-Z0-9_]*:",relevance:0},e.C_NUMBER_MODE,n,t,{className:"localvars",begin:"\\|[ ]*[a-z][a-zA-Z0-9_]*([ ]+[a-z][a-zA-Z0-9_]*)*[ ]*\\|",returnBegin:!0,end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?[a-z][a-zA-Z0-9_]*"}]},{className:"array",begin:"\\#\\(",end:"\\)",contains:[e.APOS_STRING_MODE,t,e.C_NUMBER_MODE,n]}]}}),e.registerLanguage("sml",function(e){return{aliases:["ml"],keywords:{keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while",built_in:"array bool char exn int list option order real ref string substring vector unit word",literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/,lexemes:"[a-z_]\\w*!?",contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)"},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"tag",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},e.inherit(e.APOS_STRING_MODE,{className:"char",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}}),e.registerLanguage("sqf",function(e){var t=["case","catch","default","do","else","exit","exitWith|5","for","forEach","from","if","switch","then","throw","to","try","while","with"],n=["!","-","+","!=","%","&&","*","/","=","==",">",">=","<","<=","^",":",">>"],i=["_forEachIndex|10","_this|10","_x|10"],r=["true","false","nil"],o=["!","-","+","!=","%","&&","*","/","=","==",">",">=","<","<=","or","plus","^",":",">>","abs","accTime","acos","action","actionKeys","actionKeysImages","actionKeysNames","actionKeysNamesArray","actionName","activateAddons","activatedAddons","activateKey","addAction","addBackpack","addBackpackCargo","addBackpackCargoGlobal","addBackpackGlobal","addCamShake","addCuratorAddons","addCuratorCameraArea","addCuratorEditableObjects","addCuratorEditingArea","addCuratorPoints","addEditorObject","addEventHandler","addGoggles","addGroupIcon","addHandgunItem","addHeadgear","addItem","addItemCargo","addItemCargoGlobal","addItemPool","addItemToBackpack","addItemToUniform","addItemToVest","addLiveStats","addMagazine","addMagazine array","addMagazineAmmoCargo","addMagazineCargo","addMagazineCargoGlobal","addMagazineGlobal","addMagazinePool","addMagazines","addMagazineTurret","addMenu","addMenuItem","addMissionEventHandler","addMPEventHandler","addMusicEventHandler","addPrimaryWeaponItem","addPublicVariableEventHandler","addRating","addResources","addScore","addScoreSide","addSecondaryWeaponItem","addSwitchableUnit","addTeamMember","addToRemainsCollector","addUniform","addVehicle","addVest","addWaypoint","addWeapon","addWeaponCargo","addWeaponCargoGlobal","addWeaponGlobal","addWeaponPool","addWeaponTurret","agent","agents","AGLToASL","aimedAtTarget","aimPos","airDensityRTD","airportSide","AISFinishHeal","alive","allControls","allCurators","allDead","allDeadMen","allDisplays","allGroups","allMapMarkers","allMines","allMissionObjects","allow3DMode","allowCrewInImmobile","allowCuratorLogicIgnoreAreas","allowDamage","allowDammage","allowFileOperations","allowFleeing","allowGetIn","allPlayers","allSites","allTurrets","allUnits","allUnitsUAV","allVariables","ammo","and","animate","animateDoor","animationPhase","animationState","append","armoryPoints","arrayIntersect","asin","ASLToAGL","ASLToATL","assert","assignAsCargo","assignAsCargoIndex","assignAsCommander","assignAsDriver","assignAsGunner","assignAsTurret","assignCurator","assignedCargo","assignedCommander","assignedDriver","assignedGunner","assignedItems","assignedTarget","assignedTeam","assignedVehicle","assignedVehicleRole","assignItem","assignTeam","assignToAirport","atan","atan2","atg","ATLToASL","attachedObject","attachedObjects","attachedTo","attachObject","attachTo","attackEnabled","backpack","backpackCargo","backpackContainer","backpackItems","backpackMagazines","backpackSpaceFor","behaviour","benchmark","binocular","blufor","boundingBox","boundingBoxReal","boundingCenter","breakOut","breakTo","briefingName","buildingExit","buildingPos","buttonAction","buttonSetAction","cadetMode","call","callExtension","camCommand","camCommit","camCommitPrepared","camCommitted","camConstuctionSetParams","camCreate","camDestroy","cameraEffect","cameraEffectEnableHUD","cameraInterest","cameraOn","cameraView","campaignConfigFile","camPreload","camPreloaded","camPrepareBank","camPrepareDir","camPrepareDive","camPrepareFocus","camPrepareFov","camPrepareFovRange","camPreparePos","camPrepareRelPos","camPrepareTarget","camSetBank","camSetDir","camSetDive","camSetFocus","camSetFov","camSetFovRange","camSetPos","camSetRelPos","camSetTarget","camTarget","camUseNVG","canAdd","canAddItemToBackpack","canAddItemToUniform","canAddItemToVest","cancelSimpleTaskDestination","canFire","canMove","canSlingLoad","canStand","canUnloadInCombat","captive","captiveNum","case","catch","cbChecked","cbSetChecked","ceil","cheatsEnabled","checkAIFeature","civilian","className","clearAllItemsFromBackpack","clearBackpackCargo","clearBackpackCargoGlobal","clearGroupIcons","clearItemCargo","clearItemCargoGlobal","clearItemPool","clearMagazineCargo","clearMagazineCargoGlobal","clearMagazinePool","clearOverlay","clearRadio","clearWeaponCargo","clearWeaponCargoGlobal","clearWeaponPool","closeDialog","closeDisplay","closeOverlay","collapseObjectTree","combatMode","commandArtilleryFire","commandChat","commander","commandFire","commandFollow","commandFSM","commandGetOut","commandingMenu","commandMove","commandRadio","commandStop","commandTarget","commandWatch","comment","commitOverlay","compile","compileFinal","completedFSM","composeText","configClasses","configFile","configHierarchy","configName","configProperties","configSourceMod","configSourceModList","connectTerminalToUAV","controlNull","controlsGroupCtrl","copyFromClipboard","copyToClipboard","copyWaypoints","cos","count","countEnemy","countFriendly","countSide","countType","countUnknown","createAgent","createCenter","createDialog","createDiaryLink","createDiaryRecord","createDiarySubject","createDisplay","createGearDialog","createGroup","createGuardedPoint","createLocation","createMarker","createMarkerLocal","createMenu","createMine","createMissionDisplay","createSimpleTask","createSite","createSoundSource","createTask","createTeam","createTrigger","createUnit","createUnit array","createVehicle","createVehicle array","createVehicleCrew","createVehicleLocal","crew","ctrlActivate","ctrlAddEventHandler","ctrlAutoScrollDelay","ctrlAutoScrollRewind","ctrlAutoScrollSpeed","ctrlChecked","ctrlClassName","ctrlCommit","ctrlCommitted","ctrlCreate","ctrlDelete","ctrlEnable","ctrlEnabled","ctrlFade","ctrlHTMLLoaded","ctrlIDC","ctrlIDD","ctrlMapAnimAdd","ctrlMapAnimClear","ctrlMapAnimCommit","ctrlMapAnimDone","ctrlMapCursor","ctrlMapMouseOver","ctrlMapScale","ctrlMapScreenToWorld","ctrlMapWorldToScreen","ctrlModel","ctrlModelDirAndUp","ctrlModelScale","ctrlParent","ctrlPosition","ctrlRemoveAllEventHandlers","ctrlRemoveEventHandler","ctrlScale","ctrlSetActiveColor","ctrlSetAutoScrollDelay","ctrlSetAutoScrollRewind","ctrlSetAutoScrollSpeed","ctrlSetBackgroundColor","ctrlSetChecked","ctrlSetEventHandler","ctrlSetFade","ctrlSetFocus","ctrlSetFont","ctrlSetFontH1","ctrlSetFontH1B","ctrlSetFontH2","ctrlSetFontH2B","ctrlSetFontH3","ctrlSetFontH3B","ctrlSetFontH4","ctrlSetFontH4B","ctrlSetFontH5","ctrlSetFontH5B","ctrlSetFontH6","ctrlSetFontH6B","ctrlSetFontHeight","ctrlSetFontHeightH1","ctrlSetFontHeightH2","ctrlSetFontHeightH3","ctrlSetFontHeightH4","ctrlSetFontHeightH5","ctrlSetFontHeightH6","ctrlSetFontP","ctrlSetFontPB","ctrlSetForegroundColor","ctrlSetModel","ctrlSetModelDirAndUp","ctrlSetModelScale","ctrlSetPosition","ctrlSetScale","ctrlSetStructuredText","ctrlSetText","ctrlSetTextColor","ctrlSetTooltip","ctrlSetTooltipColorBox","ctrlSetTooltipColorShade","ctrlSetTooltipColorText","ctrlShow","ctrlShown","ctrlText","ctrlTextHeight","ctrlType","ctrlVisible","curatorAddons","curatorCamera","curatorCameraArea","curatorCameraAreaCeiling","curatorCoef","curatorEditableObjects","curatorEditingArea","curatorEditingAreaType","curatorMouseOver","curatorPoints","curatorRegisteredObjects","curatorSelected","curatorWaypointCost","currentChannel","currentCommand","currentMagazine","currentMagazineDetail","currentMagazineDetailTurret","currentMagazineTurret","currentMuzzle","currentNamespace","currentTask","currentTasks","currentThrowable","currentVisionMode","currentWaypoint","currentWeapon","currentWeaponMode","currentWeaponTurret","currentZeroing","cursorTarget","customChat","customRadio","cutFadeOut","cutObj","cutRsc","cutText","damage","date","dateToNumber","daytime","deActivateKey","debriefingText","debugFSM","debugLog","default","deg","deleteAt","deleteCenter","deleteCollection","deleteEditorObject","deleteGroup","deleteIdentity","deleteLocation","deleteMarker","deleteMarkerLocal","deleteRange","deleteResources","deleteSite","deleteStatus","deleteTeam","deleteVehicle","deleteVehicleCrew","deleteWaypoint","detach","detectedMines","diag activeMissionFSMs","diag activeSQFScripts","diag activeSQSScripts","diag captureFrame","diag captureSlowFrame","diag fps","diag fpsMin","diag frameNo","diag log","diag logSlowFrame","diag tickTime","dialog","diarySubjectExists","didJIP","didJIPOwner","difficulty","difficultyEnabled","difficultyEnabledRTD","direction","directSay","disableAI","disableCollisionWith","disableConversation","disableDebriefingStats","disableSerialization","disableTIEquipment","disableUAVConnectability","disableUserInput","displayAddEventHandler","displayCtrl","displayNull","displayRemoveAllEventHandlers","displayRemoveEventHandler","displaySetEventHandler","dissolveTeam","distance","distance2D","distanceSqr","distributionRegion","do","doArtilleryFire","doFire","doFollow","doFSM","doGetOut","doMove","doorPhase","doStop","doTarget","doWatch","drawArrow","drawEllipse","drawIcon","drawIcon3D","drawLine","drawLine3D","drawLink","drawLocation","drawRectangle","driver","drop","east","echo","editObject","editorSetEventHandler","effectiveCommander","else","emptyPositions","enableAI","enableAIFeature","enableAttack","enableCamShake","enableCaustics","enableCollisionWith","enableCopilot","enableDebriefingStats","enableDiagLegend","enableEndDialog","enableEngineArtillery","enableEnvironment","enableFatigue","enableGunLights","enableIRLasers","enableMimics","enablePersonTurret","enableRadio","enableReload","enableRopeAttach","enableSatNormalOnDetail","enableSaving","enableSentences","enableSimulation","enableSimulationGlobal","enableTeamSwitch","enableUAVConnectability","enableUAVWaypoints","endLoadingScreen","endMission","engineOn","enginesIsOnRTD","enginesRpmRTD","enginesTorqueRTD","entities","estimatedEndServerTime","estimatedTimeLeft","evalObjectArgument","everyBackpack","everyContainer","exec","execEditorScript","execFSM","execVM","exit","exitWith","exp","expectedDestination","eyeDirection","eyePos","face","faction","fadeMusic","fadeRadio","fadeSound","fadeSpeech","failMission","false","fillWeaponsFromPool","find","findCover","findDisplay","findEditorObject","findEmptyPosition","findEmptyPositionReady","findNearestEnemy","finishMissionInit","finite","fire","fireAtTarget","firstBackpack","flag","flagOwner","fleeing","floor","flyInHeight","fog","fogForecast","fogParams","for","forceAddUniform","forceEnd","forceMap","forceRespawn","forceSpeed","forceWalk","forceWeaponFire","forceWeatherChange","forEach","forEachMember","forEachMemberAgent","forEachMemberTeam","format","formation","formationDirection","formationLeader","formationMembers","formationPosition","formationTask","formatText","formLeader","freeLook","from","fromEditor","fuel","fullCrew","gearSlotAmmoCount","gearSlotData","getAllHitPointsDamage","getAmmoCargo","getArray","getArtilleryAmmo","getArtilleryComputerSettings","getArtilleryETA","getAssignedCuratorLogic","getAssignedCuratorUnit","getBackpackCargo","getBleedingRemaining","getBurningValue","getCargoIndex","getCenterOfMass","getClientState","getConnectedUAV","getDammage","getDescription","getDir","getDirVisual","getDLCs","getEditorCamera","getEditorMode","getEditorObjectScope","getElevationOffset","getFatigue","getFriend","getFSMVariable","getFuelCargo","getGroupIcon","getGroupIconParams","getGroupIcons","getHideFrom","getHit","getHitIndex","getHitPointDamage","getItemCargo","getMagazineCargo","getMarkerColor","getMarkerPos","getMarkerSize","getMarkerType","getMass","getModelInfo","getNumber","getObjectArgument","getObjectChildren","getObjectDLC","getObjectMaterials","getObjectProxy","getObjectTextures","getObjectType","getObjectViewDistance","getOxygenRemaining","getPersonUsedDLCs","getPlayerChannel","getPlayerUID","getPos","getPosASL","getPosASLVisual","getPosASLW","getPosATL","getPosATLVisual","getPosVisual","getPosWorld","getRepairCargo","getResolution","getShadowDistance","getSlingLoad","getSpeed","getSuppression","getTerrainHeightASL","getText","getVariable","getWeaponCargo","getWPPos","glanceAt","globalChat","globalRadio","goggles","goto","group","groupChat","groupFromNetId","groupIconSelectable","groupIconsVisible","groupId","groupOwner","groupRadio","groupSelectedUnits","groupSelectUnit","grpNull","gunner","gusts","halt","handgunItems","handgunMagazine","handgunWeapon","handsHit","hasInterface","hasWeapon","hcAllGroups","hcGroupParams","hcLeader","hcRemoveAllGroups","hcRemoveGroup","hcSelected","hcSelectGroup","hcSetGroup","hcShowBar","hcShownBar","headgear","hideBody","hideObject","hideObjectGlobal","hint","hintC","hintCadet","hintSilent","hmd","hostMission","htmlLoad","HUDMovementLevels","humidity","if","image","importAllGroups","importance","in","incapacitatedState","independent","inflame","inflamed","inGameUISetEventHandler","inheritsFrom","initAmbientLife","inputAction","inRangeOfArtillery","insertEditorObject","intersect","isAbleToBreathe","isAgent","isArray","isAutoHoverOn","isAutonomous","isAutotest","isBleeding","isBurning","isClass","isCollisionLightOn","isCopilotEnabled","isDedicated","isDLCAvailable","isEngineOn","isEqualTo","isFlashlightOn","isFlatEmpty","isForcedWalk","isFormationLeader","isHidden","isInRemainsCollector","isInstructorFigureEnabled","isIRLaserOn","isKeyActive","isKindOf","isLightOn","isLocalized","isManualFire","isMarkedForCollection","isMultiplayer","isNil","isNull","isNumber","isObjectHidden","isObjectRTD","isOnRoad","isPipEnabled","isPlayer","isRealTime","isServer","isShowing3DIcons","isSteamMission","isStreamFriendlyUIEnabled","isText","isTouchingGround","isTurnedOut","isTutHintsEnabled","isUAVConnectable","isUAVConnected","isUniformAllowed","isWalking","isWeaponDeployed","isWeaponRested","itemCargo","items","itemsWithMagazines","join","joinAs","joinAsSilent","joinSilent","joinString","kbAddDatabase","kbAddDatabaseTargets","kbAddTopic","kbHasTopic","kbReact","kbRemoveTopic","kbTell","kbWasSaid","keyImage","keyName","knowsAbout","land","landAt","landResult","language","laserTarget","lbAdd","lbClear","lbColor","lbCurSel","lbData","lbDelete","lbIsSelected","lbPicture","lbSelection","lbSetColor","lbSetCurSel","lbSetData","lbSetPicture","lbSetPictureColor","lbSetPictureColorDisabled","lbSetPictureColorSelected","lbSetSelectColor","lbSetSelectColorRight","lbSetSelected","lbSetTooltip","lbSetValue","lbSize","lbSort","lbSortByValue","lbText","lbValue","leader","leaderboardDeInit","leaderboardGetRows","leaderboardInit","leaveVehicle","libraryCredits","libraryDisclaimers","lifeState","lightAttachObject","lightDetachObject","lightIsOn","lightnings","limitSpeed","linearConversion","lineBreak","lineIntersects","lineIntersectsObjs","lineIntersectsSurfaces","lineIntersectsWith","linkItem","list","listObjects","ln","lnbAddArray","lnbAddColumn","lnbAddRow","lnbClear","lnbColor","lnbCurSelRow","lnbData","lnbDeleteColumn","lnbDeleteRow","lnbGetColumnsPosition","lnbPicture","lnbSetColor","lnbSetColumnsPos","lnbSetCurSelRow","lnbSetData","lnbSetPicture","lnbSetText","lnbSetValue","lnbSize","lnbText","lnbValue","load","loadAbs","loadBackpack","loadFile","loadGame","loadIdentity","loadMagazine","loadOverlay","loadStatus","loadUniform","loadVest","local","localize","locationNull","locationPosition","lock","lockCameraTo","lockCargo","lockDriver","locked","lockedCargo","lockedDriver","lockedTurret","lockTurret","lockWP","log","logEntities","lookAt","lookAtPos","magazineCargo","magazines","magazinesAllTurrets","magazinesAmmo","magazinesAmmoCargo","magazinesAmmoFull","magazinesDetail","magazinesDetailBackpack","magazinesDetailUniform","magazinesDetailVest","magazinesTurret","magazineTurretAmmo","mapAnimAdd","mapAnimClear","mapAnimCommit","mapAnimDone","mapCenterOnCamera","mapGridPosition","markAsFinishedOnSteam","markerAlpha","markerBrush","markerColor","markerDir","markerPos","markerShape","markerSize","markerText","markerType","max","members","min","mineActive","mineDetectedBy","missionConfigFile","missionName","missionNamespace","missionStart","mod","modelToWorld","modelToWorldVisual","moonIntensity","morale","move","moveInAny","moveInCargo","moveInCommander","moveInDriver","moveInGunner","moveInTurret","moveObjectToEnd","moveOut","moveTime","moveTo","moveToCompleted","moveToFailed","musicVolume","name","name location","nameSound","nearEntities","nearestBuilding","nearestLocation","nearestLocations","nearestLocationWithDubbing","nearestObject","nearestObjects","nearObjects","nearObjectsReady","nearRoads","nearSupplies","nearTargets","needReload","netId","netObjNull","newOverlay","nextMenuItemIndex","nextWeatherChange","nil","nMenuItems","not","numberToDate","objectCurators","objectFromNetId","objectParent","objNull","objStatus","onBriefingGroup","onBriefingNotes","onBriefingPlan","onBriefingTeamSwitch","onCommandModeChanged","onDoubleClick","onEachFrame","onGroupIconClick","onGroupIconOverEnter","onGroupIconOverLeave","onHCGroupSelectionChanged","onMapSingleClick","onPlayerConnected","onPlayerDisconnected","onPreloadFinished","onPreloadStarted","onShowNewObject","onTeamSwitch","openCuratorInterface","openMap","openYoutubeVideo","opfor","or","orderGetIn","overcast","overcastForecast","owner","param","params","parseNumber","parseText","parsingNamespace","particlesQuality","pi","pickWeaponPool","pitch","playableSlotsNumber","playableUnits","playAction","playActionNow","player","playerRespawnTime","playerSide","playersNumber","playGesture","playMission","playMove","playMoveNow","playMusic","playScriptedMission","playSound","playSound3D","position","positionCameraToWorld","posScreenToWorld","posWorldToScreen","ppEffectAdjust","ppEffectCommit","ppEffectCommitted","ppEffectCreate","ppEffectDestroy","ppEffectEnable","ppEffectForceInNVG","precision","preloadCamera","preloadObject","preloadSound","preloadTitleObj","preloadTitleRsc","preprocessFile","preprocessFileLineNumbers","primaryWeapon","primaryWeaponItems","primaryWeaponMagazine","priority","private","processDiaryLink","productVersion","profileName","profileNamespace","profileNameSteam","progressLoadingScreen","progressPosition","progressSetPosition","publicVariable","publicVariableClient","publicVariableServer","pushBack","putWeaponPool","queryItemsPool","queryMagazinePool","queryWeaponPool","rad","radioChannelAdd","radioChannelCreate","radioChannelRemove","radioChannelSetCallSign","radioChannelSetLabel","radioVolume","rain","rainbow","random","rank","rankId","rating","rectangular","registeredTasks","registerTask","reload","reloadEnabled","remoteControl","remoteExec","remoteExecCall","removeAction","removeAllActions","removeAllAssignedItems","removeAllContainers","removeAllCuratorAddons","removeAllCuratorCameraAreas","removeAllCuratorEditingAreas","removeAllEventHandlers","removeAllHandgunItems","removeAllItems","removeAllItemsWithMagazines","removeAllMissionEventHandlers","removeAllMPEventHandlers","removeAllMusicEventHandlers","removeAllPrimaryWeaponItems","removeAllWeapons","removeBackpack","removeBackpackGlobal","removeCuratorAddons","removeCuratorCameraArea","removeCuratorEditableObjects","removeCuratorEditingArea","removeDrawIcon","removeDrawLinks","removeEventHandler","removeFromRemainsCollector","removeGoggles","removeGroupIcon","removeHandgunItem","removeHeadgear","removeItem","removeItemFromBackpack","removeItemFromUniform","removeItemFromVest","removeItems","removeMagazine","removeMagazineGlobal","removeMagazines","removeMagazinesTurret","removeMagazineTurret","removeMenuItem","removeMissionEventHandler","removeMPEventHandler","removeMusicEventHandler","removePrimaryWeaponItem","removeSecondaryWeaponItem","removeSimpleTask","removeSwitchableUnit","removeTeamMember","removeUniform","removeVest","removeWeapon","removeWeaponGlobal","removeWeaponTurret","requiredVersion","resetCamShake","resetSubgroupDirection","resistance","resize","resources","respawnVehicle","restartEditorCamera","reveal","revealMine","reverse","reversedMouseY","roadsConnectedTo","roleDescription","ropeAttachedObjects","ropeAttachedTo","ropeAttachEnabled","ropeAttachTo","ropeCreate","ropeCut","ropeEndPosition","ropeLength","ropes","ropeUnwind","ropeUnwound","rotorsForcesRTD","rotorsRpmRTD","round","runInitScript","safeZoneH","safeZoneW","safeZoneWAbs","safeZoneX","safeZoneXAbs","safeZoneY","saveGame","saveIdentity","saveJoysticks","saveOverlay","saveProfileNamespace","saveStatus","saveVar","savingEnabled","say","say2D","say3D","scopeName","score","scoreSide","screenToWorld","scriptDone","scriptName","scriptNull","scudState","secondaryWeapon","secondaryWeaponItems","secondaryWeaponMagazine","select","selectBestPlaces","selectDiarySubject","selectedEditorObjects","selectEditorObject","selectionPosition","selectLeader","selectNoPlayer","selectPlayer","selectWeapon","selectWeaponTurret","sendAUMessage","sendSimpleCommand","sendTask","sendTaskResult","sendUDPMessage","serverCommand","serverCommandAvailable","serverCommandExecutable","serverName","serverTime","set","setAccTime","setAirportSide","setAmmo","setAmmoCargo","setAperture","setApertureNew","setArmoryPoints","setAttributes","setAutonomous","setBehaviour","setBleedingRemaining","setCameraInterest","setCamShakeDefParams","setCamShakeParams","setCamUseTi","setCaptive","setCenterOfMass","setCollisionLight","setCombatMode","setCompassOscillation","setCuratorCameraAreaCeiling","setCuratorCoef","setCuratorEditingAreaType","setCuratorWaypointCost","setCurrentChannel","setCurrentTask","setCurrentWaypoint","setDamage","setDammage","setDate","setDebriefingText","setDefaultCamera","setDestination","setDetailMapBlendPars","setDir","setDirection","setDrawIcon","setDropInterval","setEditorMode","setEditorObjectScope","setEffectCondition","setFace","setFaceAnimation","setFatigue","setFlagOwner","setFlagSide","setFlagTexture","setFog","setFog array","setFormation","setFormationTask","setFormDir","setFriend","setFromEditor","setFSMVariable","setFuel","setFuelCargo","setGroupIcon","setGroupIconParams","setGroupIconsSelectable","setGroupIconsVisible","setGroupId","setGroupIdGlobal","setGroupOwner","setGusts","setHideBehind","setHit","setHitIndex","setHitPointDamage","setHorizonParallaxCoef","setHUDMovementLevels","setIdentity","setImportance","setLeader","setLightAmbient","setLightAttenuation","setLightBrightness","setLightColor","setLightDayLight","setLightFlareMaxDistance","setLightFlareSize","setLightIntensity","setLightnings","setLightUseFlare","setLocalWindParams","setMagazineTurretAmmo","setMarkerAlpha","setMarkerAlphaLocal","setMarkerBrush","setMarkerBrushLocal","setMarkerColor","setMarkerColorLocal","setMarkerDir","setMarkerDirLocal","setMarkerPos","setMarkerPosLocal","setMarkerShape","setMarkerShapeLocal","setMarkerSize","setMarkerSizeLocal","setMarkerText","setMarkerTextLocal","setMarkerType","setMarkerTypeLocal","setMass","setMimic","setMousePosition","setMusicEffect","setMusicEventHandler","setName","setNameSound","setObjectArguments","setObjectMaterial","setObjectProxy","setObjectTexture","setObjectTextureGlobal","setObjectViewDistance","setOvercast","setOwner","setOxygenRemaining","setParticleCircle","setParticleClass","setParticleFire","setParticleParams","setParticleRandom","setPilotLight","setPiPEffect","setPitch","setPlayable","setPlayerRespawnTime","setPos","setPosASL","setPosASL2","setPosASLW","setPosATL","setPosition","setPosWorld","setRadioMsg","setRain","setRainbow","setRandomLip","setRank","setRectangular","setRepairCargo","setShadowDistance","setSide","setSimpleTaskDescription","setSimpleTaskDestination","setSimpleTaskTarget","setSimulWeatherLayers","setSize","setSkill","setSkill array","setSlingLoad","setSoundEffect","setSpeaker","setSpeech","setSpeedMode","setStatValue","setSuppression","setSystemOfUnits","setTargetAge","setTaskResult","setTaskState","setTerrainGrid","setText","setTimeMultiplier","setTitleEffect","setTriggerActivation","setTriggerArea","setTriggerStatements","setTriggerText","setTriggerTimeout","setTriggerType","setType","setUnconscious","setUnitAbility","setUnitPos","setUnitPosWeak","setUnitRank","setUnitRecoilCoefficient","setUnloadInCombat","setUserActionText","setVariable","setVectorDir","setVectorDirAndUp","setVectorUp","setVehicleAmmo","setVehicleAmmoDef","setVehicleArmor","setVehicleId","setVehicleLock","setVehiclePosition","setVehicleTiPars","setVehicleVarName","setVelocity","setVelocityTransformation","setViewDistance","setVisibleIfTreeCollapsed","setWaves","setWaypointBehaviour","setWaypointCombatMode","setWaypointCompletionRadius","setWaypointDescription","setWaypointFormation","setWaypointHousePosition","setWaypointLoiterRadius","setWaypointLoiterType","setWaypointName","setWaypointPosition","setWaypointScript","setWaypointSpeed","setWaypointStatements","setWaypointTimeout","setWaypointType","setWaypointVisible","setWeaponReloadingTime","setWind","setWindDir","setWindForce","setWindStr","setWPPos","show3DIcons","showChat","showCinemaBorder","showCommandingMenu","showCompass","showCuratorCompass","showGPS","showHUD","showLegend","showMap","shownArtilleryComputer","shownChat","shownCompass","shownCuratorCompass","showNewEditorObject","shownGPS","shownHUD","shownMap","shownPad","shownRadio","shownUAVFeed","shownWarrant","shownWatch","showPad","showRadio","showSubtitles","showUAVFeed","showWarrant","showWatch","showWaypoint","side","sideChat","sideEnemy","sideFriendly","sideLogic","sideRadio","sideUnknown","simpleTasks","simulationEnabled","simulCloudDensity","simulCloudOcclusion","simulInClouds","simulWeatherSync","sin","size","sizeOf","skill","skillFinal","skipTime","sleep","sliderPosition","sliderRange","sliderSetPosition","sliderSetRange","sliderSetSpeed","sliderSpeed","slingLoadAssistantShown","soldierMagazines","someAmmo","sort","soundVolume","spawn","speaker","speed","speedMode","splitString","sqrt","squadParams","stance","startLoadingScreen","step","stop","stopped","str","sunOrMoon","supportInfo","suppressFor","surfaceIsWater","surfaceNormal","surfaceType","swimInDepth","switch","switchableUnits","switchAction","switchCamera","switchGesture","switchLight","switchMove","synchronizedObjects","synchronizedTriggers","synchronizedWaypoints","synchronizeObjectsAdd","synchronizeObjectsRemove","synchronizeTrigger","synchronizeWaypoint","synchronizeWaypoint trigger","systemChat","systemOfUnits","tan","targetKnowledge","targetsAggregate","targetsQuery","taskChildren","taskCompleted","taskDescription","taskDestination","taskHint","taskNull","taskParent","taskResult","taskState","teamMember","teamMemberNull","teamName","teams","teamSwitch","teamSwitchEnabled","teamType","terminate","terrainIntersect","terrainIntersectASL","text","text location","textLog","textLogFormat","tg","then","throw","time","timeMultiplier","titleCut","titleFadeOut","titleObj","titleRsc","titleText","to","toArray","toLower","toString","toUpper","triggerActivated","triggerActivation","triggerArea","triggerAttachedVehicle","triggerAttachObject","triggerAttachVehicle","triggerStatements","triggerText","triggerTimeout","triggerTimeoutCurrent","triggerType","true","try","turretLocal","turretOwner","turretUnit","tvAdd","tvClear","tvCollapse","tvCount","tvCurSel","tvData","tvDelete","tvExpand","tvPicture","tvSetCurSel","tvSetData","tvSetPicture","tvSetPictureColor","tvSetTooltip","tvSetValue","tvSort","tvSortByValue","tvText","tvValue","type","typeName","typeOf","UAVControl","uiNamespace","uiSleep","unassignCurator","unassignItem","unassignTeam","unassignVehicle","underwater","uniform","uniformContainer","uniformItems","uniformMagazines","unitAddons","unitBackpack","unitPos","unitReady","unitRecoilCoefficient","units","unitsBelowHeight","unlinkItem","unlockAchievement","unregisterTask","updateDrawIcon","updateMenuItem","updateObjectTree","useAudioTimeForMoves","vectorAdd","vectorCos","vectorCrossProduct","vectorDiff","vectorDir","vectorDirVisual","vectorDistance","vectorDistanceSqr","vectorDotProduct","vectorFromTo","vectorMagnitude","vectorMagnitudeSqr","vectorMultiply","vectorNormalized","vectorUp","vectorUpVisual","vehicle","vehicleChat","vehicleRadio","vehicles","vehicleVarName","velocity","velocityModelSpace","verifySignature","vest","vestContainer","vestItems","vestMagazines","viewDistance","visibleCompass","visibleGPS","visibleMap","visiblePosition","visiblePositionASL","visibleWatch","waitUntil","waves","waypointAttachedObject","waypointAttachedVehicle","waypointAttachObject","waypointAttachVehicle","waypointBehaviour","waypointCombatMode","waypointCompletionRadius","waypointDescription","waypointFormation","waypointHousePosition","waypointLoiterRadius","waypointLoiterType","waypointName","waypointPosition","waypoints","waypointScript","waypointsEnabledUAV","waypointShow","waypointSpeed","waypointStatements","waypointTimeout","waypointTimeoutCurrent","waypointType","waypointVisible","weaponAccessories","weaponCargo","weaponDirection","weaponLowered","weapons","weaponsItems","weaponsItemsCargo","weaponState","weaponsTurret","weightRTD","west","WFSideText","while","wind","windDir","windStr","wingsForcesRTD","with","worldName","worldSize","worldToModel","worldToModelVisual","worldToScreen"].filter(function(e){return-1==t.indexOf(e)&&-1==r.indexOf(e)&&-1==n.indexOf(e)});o=o.concat(i);var a={className:"string",relevance:0,variants:[{begin:'"',end:'"',contains:[{begin:'""'}]},{begin:"'",end:"'",contains:[{begin:"''"}]}]},s={className:"number",begin:e.NUMBER_RE,relevance:0},l={className:"string",variants:[e.QUOTE_STRING_MODE,{begin:"'\\\\?.",end:"'",illegal:"."}]},c={className:"preprocessor",begin:"#",end:"$",keywords:"if else elif endif define undef warning error line pragma ifdef ifndef",contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",contains:[l,{className:"string",begin:"<",end:">",illegal:"\\n"}]},l,s,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]};return{aliases:["sqf"],case_insensitive:!0,keywords:{keyword:t.join(" "),built_in:o.join(" "),literal:r.join(" ")},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,a,c]}}),e.registerLanguage("sql",function(e){var t=e.COMMENT("--","$");return{case_insensitive:!0,illegal:/[<>{}*]/,contains:[{className:"operator",beginKeywords:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke",end:/;/,endsWithParent:!0,keywords:{keyword:"abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias allocate allow alter always analyze ancillary and any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound buffer_cache buffer_pool build bulk by byte byteordermark bytes c cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle d data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration e each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain export export_set extended extent external external_1 external_2 externally extract f failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function g general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour http i id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists k keep keep_duplicates key keys kill l language large last last_day last_insert_id last_value lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim m main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex n name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding p package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second section securefile security seed segment select self sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime t table tables tablespace tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text varchar varying void"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE,{begin:'""'}]},{className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t]},e.C_BLOCK_COMMENT_MODE,t]}}),e.registerLanguage("stata",function(e){return{aliases:["do","ado"],case_insensitive:!0,keywords:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate g gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l la lab labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize meqparse mer merg merge mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5",contains:[{className:"label",variants:[{begin:"\\$\\{?[a-zA-Z0-9_]+\\}?"},{begin:"`[a-zA-Z0-9_]+'"}]},{className:"string",variants:[{begin:'`"[^\r\n]*?"\''},{begin:'"[^\r\n"]*"'}]},{className:"literal",variants:[{begin:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\(|$)"}]},e.COMMENT("^[ \t]*\\*.*$",!1),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}),e.registerLanguage("step21",function(e){var t={literal:"",built_in:"",keyword:"HEADER ENDSEC DATA"},n={className:"preprocessor",begin:"ISO-10303-21;",relevance:10},i=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*!","\\*/"),e.C_NUMBER_MODE,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"label",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}];return{aliases:["p21","step","stp"],case_insensitive:!0,lexemes:"[A-Z_][A-Z0-9_.]*",keywords:t,contains:[{className:"preprocessor",begin:"END-ISO-10303-21;",relevance:10},n].concat(i)}}),e.registerLanguage("stylus",function(e){var t={className:"variable",begin:"\\$"+e.IDENT_RE},n={className:"hexcolor",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})",relevance:10},i=["charset","css","debug","extend","font-face","for","import","include","media","mixin","page","warn","while"],r=["after","before","first-letter","first-line","active","first-child","focus","hover","lang","link","visited"],o=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],a="[\\.\\s\\n\\[\\:,]",s=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-variant-ligatures","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"];return{aliases:["styl"],case_insensitive:!1,illegal:"("+["\\{","\\}","\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"].join("|")+")",keywords:"if else for in",contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,{begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"+a,returnBegin:!0,contains:[{className:"class",begin:"\\.[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"+a,returnBegin:!0,contains:[{className:"id",begin:"\\#[a-zA-Z][a-zA-Z0-9_-]*"}]},{begin:"\\b("+o.join("|")+")"+a,returnBegin:!0,contains:[{className:"tag",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"}]},{className:"pseudo",begin:"&?:?:\\b("+r.join("|")+")"+a},{className:"at_rule",begin:"@("+i.join("|")+")\\b"},t,e.CSS_NUMBER_MODE,e.NUMBER_MODE,{className:"function",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",illegal:"[\\n]",returnBegin:!0,contains:[{className:"title",begin:"\\b[a-zA-Z][a-zA-Z0-9_-]*"},{className:"params",begin:/\(/,end:/\)/,contains:[n,t,e.APOS_STRING_MODE,e.CSS_NUMBER_MODE,e.NUMBER_MODE,e.QUOTE_STRING_MODE]}]},{className:"attribute",begin:"\\b("+s.reverse().join("|")+")\\b"}]}}),e.registerLanguage("swift",function(e){var t={keyword:"__COLUMN__ __FILE__ __FUNCTION__ __LINE__ as as! as? associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip"},n={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},i=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r={className:"subst",begin:/\\\(/,end:"\\)",keywords:t,contains:[]},o={className:"number",begin:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",relevance:0},a=e.inherit(e.QUOTE_STRING_MODE,{contains:[r,e.BACKSLASH_ESCAPE]});return r.contains=[o],{keywords:t,contains:[a,e.C_LINE_COMMENT_MODE,i,n,o,{className:"func",beginKeywords:"func",end:"{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/,illegal:/\(/}),{className:"generics",begin:/</,end:/>/,illegal:/>/},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,contains:["self",o,a,e.C_BLOCK_COMMENT_MODE,{begin:":"}],illegal:/["']/}],illegal:/\[|%/},{className:"class",beginKeywords:"struct protocol class extension enum",keywords:t,end:"\\{",excludeEnd:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/})]},{className:"preprocessor",begin:"(@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain)"},{beginKeywords:"import",end:/$/,contains:[e.C_LINE_COMMENT_MODE,i]}]}}),e.registerLanguage("tcl",function(e){return{aliases:["tk"],keywords:"after append apply array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock close concat continue dde dict encoding eof error eval exec exit expr fblocked fconfigure fcopy file fileevent filename flush for foreach format gets glob global history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename return safe scan seek set socket source split string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update uplevel upvar variable vwait while",contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"symbol",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",excludeEnd:!0,variants:[{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)",end:"[^a-zA-Z0-9_\\}\\$]"},{begin:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"(\\))?[^a-zA-Z0-9_\\}\\$]"}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},{className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]}]}}),e.registerLanguage("tex",function(e){var t={className:"command",begin:"\\\\[a-zA-Zа-яА-я]+[\\*]?"},n={className:"command",begin:"\\\\[^a-zA-Zа-яА-я0-9]"},i={className:"special",begin:"[{}\\[\\]\\&#~]",relevance:0};return{contains:[{begin:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",returnBegin:!0,contains:[t,n,{className:"number",begin:" *=",end:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",excludeBegin:!0}],relevance:10},t,n,i,{className:"formula",begin:"\\$\\$",end:"\\$\\$",contains:[t,n,i],relevance:0},{className:"formula",begin:"\\$",end:"\\$",contains:[t,n,i],relevance:0},e.COMMENT("%","$",{relevance:0})]}}),e.registerLanguage("thrift",function(e){return{keywords:{keyword:"namespace const typedef struct enum service exception void oneway set list map required optional",built_in:"bool byte i16 i32 i64 double string binary",literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",end:">",keywords:"bool byte i16 i32 i64 double string binary",contains:["self"]}]}}),e.registerLanguage("tp",function(e){var t={className:"number",begin:"[1-9][0-9]*",relevance:0},n={className:"comment",begin:":[^\\]]+"};return{keywords:{keyword:"ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN SUBSTR FINDSTR VOFFSET",constant:"ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET"},contains:[{className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|    TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",t,n]},{className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",t,e.QUOTE_STRING_MODE,n]},{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},e.COMMENT("//","[;$]"),e.COMMENT("!","[;$]"),e.COMMENT("--eg:","$"),e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"'"},e.C_NUMBER_MODE,{className:"variable",begin:"\\$[A-Za-z0-9_]+"}]}}),e.registerLanguage("twig",function(e){var t={className:"function",beginKeywords:"attribute block constant cycle date dump include max min parent random range source template_from_string",relevance:0,contains:[{className:"params",begin:"\\(",end:"\\)"}]},n={className:"filter",begin:/\|[A-Za-z_]+:?/,keywords:"abs batch capitalize convert_encoding date date_modify default escape first format join json_encode keys last length lower merge nl2br number_format raw replace reverse round slice sort split striptags title trim upper url_encode",contains:[t]},i="autoescape block do embed extends filter flush for if import include macro sandbox set spaceless use verbatim";return i=i+" "+i.split(" ").map(function(e){return"end"+e}).join(" "),{aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#}/),{className:"template_tag",begin:/\{%/,end:/%}/,keywords:i,contains:[n,t]},{className:"variable",begin:/\{\{/,end:/}}/,contains:[n,t]}]}}),e.registerLanguage("typescript",function(e){var t={keyword:"in if for while finally var new function|0 do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private protected get set super static implements enum export import declare type namespace abstract",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void"};return{aliases:["ts"],keywords:t,contains:[{className:"pi",begin:/^\s*['"]use strict['"]/,relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"number",variants:[{begin:"\\b(0[bB][01]+)"},{begin:"\\b(0[oO][0-7]+)"},{begin:e.C_NUMBER_RE}],relevance:0},{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.REGEXP_MODE],relevance:0},{className:"function",begin:"function",end:/[\{;]/,excludeEnd:!0,keywords:t,contains:["self",e.inherit(e.TITLE_MODE,{begin:/[A-Za-z$_][0-9A-Za-z$_]*/}),{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:/["'\(]/}],illegal:/\[|%/,relevance:0},{className:"constructor",beginKeywords:"constructor",end:/\{/,excludeEnd:!0,relevance:10},{className:"module",beginKeywords:"module",end:/\{/,excludeEnd:!0},{className:"interface",beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:"interface extends"},{begin:/\$[(.]/},{begin:"\\."+e.IDENT_RE,relevance:0}]}}),e.registerLanguage("vala",function(e){return{keywords:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},contains:[{className:"class",beginKeywords:"class interface delegate namespace",end:"{",excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[e.UNDERSCORE_TITLE_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""',relevance:5},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"preprocessor",begin:"^#",end:"$",relevance:2},{className:"constant",begin:" [A-Z_]+ ",relevance:0}]}}),e.registerLanguage("vbnet",function(e){return{aliases:["vb"],case_insensitive:!0,keywords:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},illegal:"//|{|}|endif|gosub|variant|wend",contains:[e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT("'","$",{returnBegin:!0,contains:[{className:"xmlDocTag",begin:"'''|\x3c!--|--\x3e",contains:[e.PHRASAL_WORDS_MODE]},{className:"xmlDocTag",begin:"</?",end:">",contains:[e.PHRASAL_WORDS_MODE]}]}),e.C_NUMBER_MODE,{className:"preprocessor",begin:"#",end:"$",keywords:"if else elseif end region externalsource"}]}}),e.registerLanguage("vbscript",function(e){return{aliases:["vbs"],case_insensitive:!0,keywords:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},illegal:"//",contains:[e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{relevance:0}),e.C_NUMBER_MODE]}}),e.registerLanguage("vbscript-html",function(e){return{subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}}),e.registerLanguage("verilog",function(e){return{aliases:["v"],case_insensitive:!0,keywords:{keyword:"always and assign begin buf bufif0 bufif1 case casex casez cmos deassign default defparam disable edge else end endcase endfunction endmodule endprimitive endspecify endtable endtask event for force forever fork function if ifnone initial inout input join macromodule module nand negedge nmos nor not notif0 notif1 or output parameter pmos posedge primitive pulldown pullup rcmos release repeat rnmos rpmos rtran rtranif0 rtranif1 specify specparam table task timescale tran tranif0 tranif1 wait while xnor xor",typename:"highz0 highz1 integer large medium pull0 pull1 real realtime reg scalared signed small strong0 strong1 supply0 supply0 supply1 supply1 time tri tri0 tri1 triand trior trireg vectored wand weak0 weak1 wire wor"},contains:[e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"number",begin:"\\b(\\d+'(b|h|o|d|B|H|O|D))?[0-9xzXZ]+",contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"typename",begin:"\\.\\w+",relevance:0},{className:"value",begin:"#\\((?!parameter).+\\)"},{className:"keyword",begin:"\\+|-|\\*|/|%|<|>|=|#|`|\\!|&|\\||@|:|\\^|~|\\{|\\}",relevance:0}]}}),e.registerLanguage("vhdl",function(e){return{case_insensitive:!0,keywords:{keyword:"abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",typename:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},illegal:"{",contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{className:"number",begin:"\\b(\\d(_|\\d)*#\\w+(\\.\\w+)?#([eE][-+]?\\d(_|\\d)*)?|\\d(_|\\d)*(\\.\\d(_|\\d)*)?([eE][-+]?\\d(_|\\d)*)?)",relevance:0},{className:"literal",begin:"'(U|X|0|1|Z|W|L|H|-)'",contains:[e.BACKSLASH_ESCAPE]},{className:"attribute",begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[e.BACKSLASH_ESCAPE]}]}}),e.registerLanguage("vim",function(e){return{lexemes:/[!#@\w]+/,keywords:{keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw d|0 delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu g|0 go gr grepa gu gv ha h|0 helpf helpg helpt hi hid his i|0 ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs n|0 new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf q|0 quita qa r|0 rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv s|0 sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync t|0 tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up v|0 ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",built_in:"abs acos add and append argc argidx argv asin atan atan2 browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call ceil changenr char2nr cindent clearmatches col complete complete_add complete_check confirm copy cos cosh count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists exp expand extend feedkeys filereadable filewritable filter finddir findfile float2nr floor fmod fnameescape fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getmatches getpid getpos getqflist getreg getregtype gettabvar gettabwinvar getwinposx getwinposy getwinvar glob globpath has has_key haslocaldir hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert invert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime log log10 luaeval map maparg mapcheck match matchadd matcharg matchdelete matchend matchlist matchstr max min mkdir mode mzeval nextnonblank nr2char or pathshorten pow prevnonblank printf pumvisible py3eval pyeval range readfile reltime reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse round screenattr screenchar screencol screenrow search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setmatches setpos setqflist setreg settabvar settabwinvar setwinvar sha256 shellescape shiftwidth simplify sin sinh sort soundfold spellbadword spellsuggest split sqrt str2float str2nr strchars strdisplaywidth strftime stridx string strlen strpart strridx strtrans strwidth submatch substitute synconcealed synID synIDattr synIDtrans synstack system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tan tanh tempname tolower toupper tr trunc type undofile undotree values virtcol visualmode wildmenumode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile xor"},illegal:/[{:]/,contains:[e.NUMBER_MODE,e.APOS_STRING_MODE,{className:"string",begin:/"((\\")|[^"\n])*("|\n)/},{className:"variable",begin:/[bwtglsav]:[\w\d_]*/},{className:"function",beginKeywords:"function function!",end:"$",relevance:0,contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]}]}}),e.registerLanguage("x86asm",function(e){return{case_insensitive:!0,lexemes:"\\.?"+e.IDENT_RE,keywords:{keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",literal:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0  xmm1  xmm2  xmm3  xmm4  xmm5  xmm6  xmm7  xmm8  xmm9 xmm10  xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0  ymm1  ymm2  ymm3  ymm4  ymm5  ymm6  ymm7  ymm8  ymm9 ymm10  ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0  zmm1  zmm2  zmm3  zmm4  zmm5  zmm6  zmm7  zmm8  zmm9 zmm10  zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l",pseudo:"db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times",preprocessor:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr __FILE__ __LINE__ __SECT__  __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__  __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public ",built_in:"bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},contains:[e.COMMENT(";","$",{relevance:0}),{className:"number",variants:[{begin:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",relevance:0},{begin:"\\$[0-9][0-9A-Fa-f]*",relevance:0},{begin:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{begin:"\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"}]},e.QUOTE_STRING_MODE,{className:"string",variants:[{begin:"'",end:"[^\\\\]'"},{begin:"`",end:"[^\\\\]`"},{begin:"\\.[A-Za-z0-9]+"}],relevance:0},{className:"label",variants:[{begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)"},{begin:"^\\s*%%[A-Za-z0-9_$#@~.?]*:"}],relevance:0},{className:"argument",begin:"%[0-9]+",relevance:0},{className:"built_in",begin:"%!S+",relevance:0}]}}),e.registerLanguage("xl",function(e){var t="ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts",n={className:"constant",begin:"[A-Z][A-Z_0-9]+",relevance:0},i={className:"variable",begin:"([A-Z][a-z_0-9]+)+",relevance:0},r={className:"id",begin:"[a-z][a-z_0-9]+",relevance:0},o={className:"string",begin:'"',end:'"',illegal:"\\n"},a={className:"string",begin:"'",end:"'",illegal:"\\n"},s={className:"string",begin:"<<",end:">>"},l={className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?",relevance:10},c={className:"import",beginKeywords:"import",end:"$",keywords:{keyword:"import",module:t},relevance:0,contains:[o]},u={className:"function",begin:"[a-z].*->"};return{aliases:["tao"],lexemes:/[a-zA-Z][a-zA-Z0-9_?]*/,keywords:{keyword:"if then else do while until for loop import with is as where when by data constant",literal:"true false nil",type:"integer real text name boolean symbol infix prefix postfix block tree",built_in:"in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin acos atan exp expm1 log log2 log10 log1p pi at",module:t,id:"text_length text_range text_find text_replace contains page slide basic_slide title_slide title subtitle fade_in fade_out fade_at clear_color color line_color line_width texture_wrap texture_transform texture scale_?x scale_?y scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y rotate_?z? rectangle circle ellipse sphere path line_to move_to quad_to curve_to theme background contents locally time mouse_?x mouse_?y mouse_buttons"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,o,a,s,u,c,n,i,r,l,e.NUMBER_MODE]}}),e.registerLanguage("xquery",function(e){var t={begin:"{",end:"}"},n=[{className:"variable",begin:/\$[a-zA-Z0-9\-]+/,relevance:5},{className:"string",variants:[{begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{className:"comment",begin:"\\(:",end:":\\)",relevance:10,contains:[{className:"doc",begin:"@\\w+"}]},{className:"decorator",begin:"%\\w+"},t];return t.contains=n,{aliases:["xpath","xq"],case_insensitive:!1,lexemes:/[a-zA-Z\$][a-zA-Z0-9_:\-]*/,illegal:/(proc)|(abstract)|(extends)|(until)|(#)/,keywords:{keyword:"for let if while then else return where group by xquery encoding versionmodule namespace boundary-space preserve strip default collation base-uri orderingcopy-namespaces order declare import schema namespace function option in allowing emptyat tumbling window sliding window start when only end when previous next stable ascendingdescending empty greatest least some every satisfies switch case typeswitch try catch andor to union intersect instance of treat as castable cast map array delete insert intoreplace value rename copy modify update",literal:"false true xs:string xs:integer element item xs:date xs:datetime xs:float xs:double xs:decimal QName xs:anyURI xs:long xs:int xs:short xs:byte attribute"},contains:n}}),e.registerLanguage("zephir",function(e){var t={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:'b"',end:'"'},{begin:"b'",end:"'"},e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},n={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{aliases:["zep"],case_insensitive:!0,keywords:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var let while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally int uint long ulong char uchar double float bool boolean stringlikely unlikely",contains:[e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,keywords:"__halt_compiler",lexemes:e.UNDERSCORE_IDENT_RE}),{className:"string",begin:"<<<['\"]?\\w+['\"]?$",end:"^\\w+;",contains:[e.BACKSLASH_ESCAPE]},{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function",end:/[;{]/,excludeEnd:!0,illegal:"\\$|\\[|%",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",contains:["self",e.C_BLOCK_COMMENT_MODE,t,n]}]},{className:"class",beginKeywords:"class interface",end:"{",excludeEnd:!0,illegal:/[:\(\$"]/,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",end:";",illegal:/[\.']/,contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",end:";",contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"=>"},t,n]}}),e}),function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){"use strict";function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var n=this._events=this._events||{},i=n[e]=n[e]||[];return-1==i.indexOf(t)&&i.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var n=this._onceEvents=this._onceEvents||{};return(n[e]=n[e]||{})[t]=!0,this}},t.off=function(e,t){var n=this._events&&this._events[e];if(n&&n.length){var i=n.indexOf(t);return-1!=i&&n.splice(i,1),this}},t.emitEvent=function(e,t){var n=this._events&&this._events[e];if(n&&n.length){var i=0,r=n[i];t=t||[];for(var o=this._onceEvents&&this._onceEvents[e];r;){var a=o&&o[r];a&&(this.off(e,r),delete o[r]),r.apply(this,t),r=n[i+=a?0:1]}return this}},e}),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["ev-emitter/ev-emitter"],function(n){return t(e,n)}):"object"==typeof module&&module.exports?module.exports=t(e,require("ev-emitter")):e.imagesLoaded=t(e,e.EvEmitter)}(window,function(e,t){"use strict";function n(e,t){for(var n in t)e[n]=t[n];return e}function i(e){var t=[];if(Array.isArray(e))t=e;else if("number"==typeof e.length)for(var n=0;n<e.length;n++)t.push(e[n]);else t.push(e);return t}function r(e,t,o){if(!(this instanceof r))return new r(e,t,o);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=i(e),this.options=n({},this.options),"function"==typeof t?o=t:n(this.options,t),o&&this.on("always",o),this.getImages(),s&&(this.jqDeferred=new s.Deferred),setTimeout(function(){this.check()}.bind(this))}function o(e){this.img=e}function a(e,t){this.url=e,this.element=t,this.img=new Image}var s=e.jQuery,l=e.console;r.prototype=Object.create(t.prototype),r.prototype.options={},r.prototype.getImages=function(){this.images=[],this.elements.forEach(this.addElementImages,this)},r.prototype.addElementImages=function(e){"IMG"==e.nodeName&&this.addImage(e),!0===this.options.background&&this.addElementBackgroundImages(e);var t=e.nodeType;if(t&&c[t]){for(var n=e.querySelectorAll("img"),i=0;i<n.length;i++){var r=n[i];this.addImage(r)}if("string"==typeof this.options.background){var o=e.querySelectorAll(this.options.background);for(i=0;i<o.length;i++){var a=o[i];this.addElementBackgroundImages(a)}}}};var c={1:!0,9:!0,11:!0};return r.prototype.addElementBackgroundImages=function(e){var t=getComputedStyle(e);if(t)for(var n=/url\((['"])?(.*?)\1\)/gi,i=n.exec(t.backgroundImage);null!==i;){var r=i&&i[2];r&&this.addBackground(r,e),i=n.exec(t.backgroundImage)}},r.prototype.addImage=function(e){var t=new o(e);this.images.push(t)},r.prototype.addBackground=function(e,t){var n=new a(e,t);this.images.push(n)},r.prototype.check=function(){function e(e,n,i){setTimeout(function(){t.progress(e,n,i)})}var t=this;this.progressedCount=0,this.hasAnyBroken=!1,this.images.length?this.images.forEach(function(t){t.once("progress",e),t.check()}):this.complete()},r.prototype.progress=function(e,t,n){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded,this.emitEvent("progress",[this,e,t]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,e),this.progressedCount==this.images.length&&this.complete(),this.options.debug&&l&&l.log("progress: "+n,e,t)},r.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(e,[this]),this.emitEvent("always",[this]),this.jqDeferred){var t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},o.prototype=Object.create(t.prototype),o.prototype.check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.src)},o.prototype.getIsImageComplete=function(){return this.img.complete&&void 0!==this.img.naturalWidth},o.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.img,t])},o.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},o.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},o.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},o.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},a.prototype=Object.create(o.prototype),a.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},a.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},a.prototype.confirm=function(e,t){this.isLoaded=e,this.emitEvent("progress",[this,this.element,t])},r.makeJQueryPlugin=function(t){(t=t||e.jQuery)&&((s=t).fn.imagesLoaded=function(e,t){return new r(this,e,t).jqDeferred.promise(s(this))})},r.makeJQueryPlugin(),r}),function(e){function t(e,t){if(!(e.originalEvent.touches.length>1)){e.preventDefault();var n=e.originalEvent.changedTouches[0],i=document.createEvent("MouseEvents");i.initMouseEvent(t,!0,!0,window,1,n.screenX,n.screenY,n.clientX,n.clientY,!1,!1,!1,!1,0,null),e.target.dispatchEvent(i)}}if(e.support.touch="ontouchend"in document,e.support.touch){var n,i=e.ui.mouse.prototype,r=i._mouseInit,o=i._mouseDestroy;i._touchStart=function(e){var i=this;!n&&i._mouseCapture(e.originalEvent.changedTouches[0])&&(n=!0,i._touchMoved=!1,t(e,"mouseover"),t(e,"mousemove"),t(e,"mousedown"))},i._touchMove=function(e){n&&(this._touchMoved=!0,t(e,"mousemove"))},i._touchEnd=function(e){n&&(t(e,"mouseup"),t(e,"mouseout"),this._touchMoved||t(e,"click"),n=!1)},i._mouseInit=function(){var t=this;t.element.bind({touchstart:e.proxy(t,"_touchStart"),touchmove:e.proxy(t,"_touchMove"),touchend:e.proxy(t,"_touchEnd")}),r.call(t)},i._mouseDestroy=function(){var t=this;t.element.unbind({touchstart:e.proxy(t,"_touchStart"),touchmove:e.proxy(t,"_touchMove"),touchend:e.proxy(t,"_touchEnd")}),o.call(t)}}}(jQuery),function(e,t){e(function(){"use strict";function e(e,t){return null!=e&&null!=t&&e.toLowerCase()===t.toLowerCase()}function t(e,t){var n,i,r=e.length;if(!r||!t)return!1;for(n=t.toLowerCase(),i=0;i<r;++i)if(n===e[i].toLowerCase())return!0;return!1}function n(e){for(var t in e)a.call(e,t)&&(e[t]=new RegExp(e[t],"i"))}function i(e,t){this.ua=e||"",this._cache={},this.maxPhoneWidth=t||600}var r={};r.mobileDetectRules={phones:{iPhone:"\\biPhone\\b|\\biPod\\b",BlackBerry:"BlackBerry|\\bBB10\\b|rim[0-9]+",HTC:"HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\bEVO\\b|T-Mobile G1|Z520m",Nexus:"Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 6",Dell:"Dell.*Streak|Dell.*Aero|Dell.*Venue|DELL.*Venue Pro|Dell Flash|Dell Smoke|Dell Mini 3iX|XCD28|XCD35|\\b001DL\\b|\\b101DL\\b|\\bGS01\\b",Motorola:"Motorola|DROIDX|DROID BIONIC|\\bDroid\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\bMoto E\\b",Samsung:"Samsung|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350",LG:"\\bLG\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323)",Sony:"SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533",Asus:"Asus.*Galaxy|PadFone.*Mobile",Micromax:"Micromax.*\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\b",Palm:"PalmSource|Palm",Vertu:"Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature",Pantech:"PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790",Fly:"IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250",Wiko:"KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM",iMobile:"i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)",SimValley:"\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\b",Wolfgang:"AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q",Alcatel:"Alcatel",Nintendo:"Nintendo 3DS",Amoi:"Amoi",INQ:"INQ",GenericPhone:"Tapatalk|PDA;|SAGEM|\\bmmp\\b|pocket|\\bpsp\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\bwap\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser"},tablets:{iPad:"iPad|iPad.*Mobile",NexusTablet:"Android.*Nexus[\\s]+(7|9|10)",SamsungTablet:"SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561",Kindle:"Kindle|Silk.*Accelerated|Android.*\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI)\\b",SurfaceTablet:"Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)",HPTablet:"HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10",AsusTablet:"^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\bK00F\\b|\\bK00C\\b|\\bK00E\\b|\\bK00L\\b|TX201LA|ME176C|ME102A|\\bM80TA\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K017 |ME572C|ME103K|ME170C|ME171C|\\bME70C\\b|ME581C|ME581CL|ME8510C|ME181C",BlackBerryTablet:"PlayBook|RIM Tablet",HTCtablet:"HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410",MotorolaTablet:"xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617",NookTablet:"Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2",AcerTablet:"Android.*; \\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\b|W3-810|\\bA3-A10\\b|\\bA3-A11\\b",ToshibaTablet:"Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO",LGTablet:"\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\b",FujitsuTablet:"Android.*\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\b",PrestigioTablet:"PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002",LenovoTablet:"Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)",DellTablet:"Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7",YarvikTablet:"Android.*\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\b",MedionTablet:"Android.*\\bOYO\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB",ArnovaTablet:"AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2",IntensoTablet:"INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004",IRUTablet:"M702pro",MegafonTablet:"MegaFon V9|\\bZTE V9\\b|Android.*\\bMT7A\\b",EbodaTablet:"E-Boda (Supreme|Impresspeed|Izzycomm|Essential)",AllViewTablet:"Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)",ArchosTablet:"\\b(101G9|80G9|A101IT)\\b|Qilive 97R|Archos5|\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\b",AinolTablet:"NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark",SonyTablet:"Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP612|SOT31",PhilipsTablet:"\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\b",CubeTablet:"Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT",CobyTablet:"MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010",MIDTablet:"M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10",MSITablet:"MSI \\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\b",SMiTTablet:"Android.*(\\bMID\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)",RockChipTablet:"Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A",FlyTablet:"IQ310|Fly Vision",bqTablet:"Android.*(bq)?.*(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris E10)|Maxwell.*Lite|Maxwell.*Plus",HuaweiTablet:"MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim",NecTablet:"\\bN-06D|\\bN-08D",PantechTablet:"Pantech.*P4100",BronchoTablet:"Broncho.*(N701|N708|N802|a710)",VersusTablet:"TOUCHPAD.*[78910]|\\bTOUCHTAB\\b",ZyncTablet:"z1000|Z99 2G|z99|z930|z999|z990|z909|Z919|z900",PositivoTablet:"TB07STA|TB10STA|TB07FTA|TB10FTA",NabiTablet:"Android.*\\bNabi",KoboTablet:"Kobo Touch|\\bK080\\b|\\bVox\\b Build|\\bArc\\b Build",DanewTablet:"DSlide.*\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\b",TexetTablet:"NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE",PlaystationTablet:"Playstation.*(Portable|Vita)",TrekstorTablet:"ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab",PyleAudioTablet:"\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\b",AdvanTablet:"Android.* \\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\b ",DanyTechTablet:"Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1",GalapadTablet:"Android.*\\bG1\\b",MicromaxTablet:"Funbook|Micromax.*\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\b",KarbonnTablet:"Android.*\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\b",AllFineTablet:"Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide",PROSCANTablet:"\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\b",YONESTablet:"BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026",ChangJiaTablet:"TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503",GUTablet:"TX-A1301|TX-M9002|Q702|kf026",PointOfViewTablet:"TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10",OvermaxTablet:"OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)",HCLTablet:"HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync",DPSTablet:"DPS Dream 9|DPS Dual 7",VistureTablet:"V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10",CrestaTablet:"CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989",MediatekTablet:"\\bMT8125|MT8389|MT8135|MT8377\\b",ConcordeTablet:"Concorde([ ]+)?Tab|ConCorde ReadMan",GoCleverTablet:"GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042",ModecomTablet:"FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003",VoninoTablet:"\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\bQ8\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\b",ECSTablet:"V07OT2|TM105A|S10OT1|TR10CS1",StorexTablet:"eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab",VodafoneTablet:"SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7",EssentielBTablet:"Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2",RossMoorTablet:"RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711",iMobileTablet:"i-mobile i-note",TolinoTablet:"tolino tab [0-9.]+|tolino shine",AudioSonicTablet:"\\bC-22Q|T7-QC|T-17B|T-17P\\b",AMPETablet:"Android.* A78 ",SkkTablet:"Android.* (SKYPAD|PHOENIX|CYCLOPS)",TecnoTablet:"TECNO P9",JXDTablet:"Android.* \\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\b",iJoyTablet:"Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)",FX2Tablet:"FX2 PAD7|FX2 PAD10",XoroTablet:"KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151",ViewsonicTablet:"ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a",OdysTablet:"LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\bXELIO\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10",CaptivaTablet:"CAPTIVA PAD",IconbitTablet:"NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S",TeclastTablet:"T98 4G|\\bP80\\b|\\bX90HD\\b|X98 Air|X98 Air 3G|\\bX89\\b|P80 3G|\\bX80h\\b|P98 Air|\\bX89HD\\b|P98 3G|\\bP90HD\\b|P89 3G|X98 3G|\\bP70h\\b|P79HD 3G|G18d 3G|\\bP79HD\\b|\\bP89s\\b|\\bA88\\b|\\bP10HD\\b|\\bP19HD\\b|G18 3G|\\bP78HD\\b|\\bA78\\b|\\bP75\\b|G17s 3G|G17h 3G|\\bP85t\\b|\\bP90\\b|\\bP11\\b|\\bP98t\\b|\\bP98HD\\b|\\bG18d\\b|\\bP85s\\b|\\bP11HD\\b|\\bP88s\\b|\\bA80HD\\b|\\bA80se\\b|\\bA10h\\b|\\bP89\\b|\\bP78s\\b|\\bG18\\b|\\bP85\\b|\\bA70h\\b|\\bA70\\b|\\bG17\\b|\\bP18\\b|\\bA80s\\b|\\bA11s\\b|\\bP88HD\\b|\\bA80h\\b|\\bP76s\\b|\\bP76h\\b|\\bP98\\b|\\bA10HD\\b|\\bP78\\b|\\bP88\\b|\\bA11\\b|\\bA10t\\b|\\bP76a\\b|\\bP76t\\b|\\bP76e\\b|\\bP85HD\\b|\\bP85a\\b|\\bP86\\b|\\bP75HD\\b|\\bP76v\\b|\\bA12\\b|\\bP75a\\b|\\bA15\\b|\\bP76Ti\\b|\\bP81HD\\b|\\bA10\\b|\\bT760VE\\b|\\bT720HD\\b|\\bP76\\b|\\bP73\\b|\\bP71\\b|\\bP72\\b|\\bT720SE\\b|\\bC520Ti\\b|\\bT760\\b|\\bT720VE\\b|T720-3GE|T720-WiFi",OndaTablet:"\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\b[\\s]+",JaytechTablet:"TPC-PA762",BlaupunktTablet:"Endeavour 800NG|Endeavour 1010",DigmaTablet:"\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\b",EvolioTablet:"ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\bEvotab\\b|\\bNeura\\b",LavaTablet:"QPAD E704|\\bIvoryS\\b|E-TAB IVORY|\\bE-TAB\\b",AocTablet:"MW0811|MW0812|MW0922|MTK8382",MpmanTablet:"MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\\bMPG7\\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010",CelkonTablet:"CT695|CT888|CT[\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\bCT-1\\b",WolderTablet:"miTab \\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\b",MiTablet:"\\bMI PAD\\b|\\bHM NOTE 1W\\b",NibiruTablet:"Nibiru M1|Nibiru Jupiter One",NexoTablet:"NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI",LeaderTablet:"TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100",UbislateTablet:"UbiSlate[\\s]?7C",PocketBookTablet:"Pocketbook",Hudl:"Hudl HT7S3|Hudl 2",TelstraTablet:"T-Hub2",GenericTablet:"Android.*\\b97D\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\bA7EB\\b|CatNova8|A1_07|CT704|CT1002|\\bM721\\b|rk30sdk|\\bEVOTAB\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\bM6pro\\b|CT1020W|arc 10HD|\\bJolla\\b|\\bTP750\\b"},oss:{AndroidOS:"Android",BlackBerryOS:"blackberry|\\bBB10\\b|rim tablet os",PalmOS:"PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino",SymbianOS:"Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\bS60\\b",WindowsMobileOS:"Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Window Mobile|Windows Phone [0-9.]+|WCE;",WindowsPhoneOS:"Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;",iOS:"\\biPhone.*Mobile|\\biPod|\\biPad",MeeGoOS:"MeeGo",MaemoOS:"Maemo",JavaOS:"J2ME/|\\bMIDP\\b|\\bCLDC\\b",webOS:"webOS|hpwOS",badaOS:"\\bBada\\b",BREWOS:"BREW"},uas:{Chrome:"\\bCrMo\\b|CriOS|Android.*Chrome/[.0-9]* (Mobile)?",Dolfin:"\\bDolfin\\b",Opera:"Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR/[0-9.]+|Coast/[0-9.]+",Skyfire:"Skyfire",IE:"IEMobile|MSIEMobile",Firefox:"fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile",Bolt:"bolt",TeaShark:"teashark",Blazer:"Blazer",Safari:"Version.*Mobile.*Safari|Safari.*Mobile|MobileSafari",Tizen:"Tizen",UCBrowser:"UC.*Browser|UCWEB",baiduboxapp:"baiduboxapp",baidubrowser:"baidubrowser",DiigoBrowser:"DiigoBrowser",Puffin:"Puffin",Mercury:"\\bMercury\\b",ObigoBrowser:"Obigo",NetFront:"NF-Browser",GenericBrowser:"NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger"},props:{Mobile:"Mobile/[VER]",Build:"Build/[VER]",Version:"Version/[VER]",VendorID:"VendorID/[VER]",iPad:"iPad.*CPU[a-z ]+[VER]",iPhone:"iPhone.*CPU[a-z ]+[VER]",iPod:"iPod.*CPU[a-z ]+[VER]",Kindle:"Kindle/[VER]",Chrome:["Chrome/[VER]","CriOS/[VER]","CrMo/[VER]"],Coast:["Coast/[VER]"],Dolfin:"Dolfin/[VER]",Firefox:"Firefox/[VER]",Fennec:"Fennec/[VER]",IE:["IEMobile/[VER];","IEMobile [VER]","MSIE [VER];","Trident/[0-9.]+;.*rv:[VER]"],NetFront:"NetFront/[VER]",NokiaBrowser:"NokiaBrowser/[VER]",Opera:[" OPR/[VER]","Opera Mini/[VER]","Version/[VER]"],"Opera Mini":"Opera Mini/[VER]","Opera Mobi":"Version/[VER]","UC Browser":"UC Browser[VER]",MQQBrowser:"MQQBrowser/[VER]",MicroMessenger:"MicroMessenger/[VER]",baiduboxapp:"baiduboxapp/[VER]",baidubrowser:"baidubrowser/[VER]",Iron:"Iron/[VER]",Safari:["Version/[VER]","Safari/[VER]"],Skyfire:"Skyfire/[VER]",Tizen:"Tizen/[VER]",Webkit:"webkit[ /][VER]",Gecko:"Gecko/[VER]",Trident:"Trident/[VER]",Presto:"Presto/[VER]",iOS:" \\bi?OS\\b [VER][ ;]{1}",Android:"Android [VER]",BlackBerry:["BlackBerry[\\w]+/[VER]","BlackBerry.*Version/[VER]","Version/[VER]"],BREW:"BREW [VER]",Java:"Java/[VER]","Windows Phone OS":["Windows Phone OS [VER]","Windows Phone [VER]"],"Windows Phone":"Windows Phone [VER]","Windows CE":"Windows CE/[VER]","Windows NT":"Windows NT [VER]",Symbian:["SymbianOS/[VER]","Symbian/[VER]"],webOS:["webOS/[VER]","hpwOS/[VER];"]},utils:{Bot:"Googlebot|facebookexternalhit|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom",MobileBot:"Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker/M1A1-R2D2",DesktopMode:"WPDesktop",TV:"SonyDTV|HbbTV",WebKit:"(webkit)[ /]([\\w.]+)",Console:"\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|PLAYSTATION|Xbox)\\b",Watch:"SM-V700"}},r.detectMobileBrowsers={fullPattern:/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,shortPattern:/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,tabletPattern:/android|ipad|playbook|silk/i};var o,a=Object.prototype.hasOwnProperty;return r.FALLBACK_PHONE="UnknownPhone",r.FALLBACK_TABLET="UnknownTablet",r.FALLBACK_MOBILE="UnknownMobile",o="isArray"in Array?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)},function(){var e,t,i,s,l,c,u=r.mobileDetectRules;for(e in u.props)if(a.call(u.props,e)){for(t=u.props[e],o(t)||(t=[t]),l=t.length,s=0;s<l;++s)(c=(i=t[s]).indexOf("[VER]"))>=0&&(i=i.substring(0,c)+"([\\w._\\+]+)"+i.substring(c+5)),t[s]=new RegExp(i,"i");u.props[e]=t}n(u.oss),n(u.phones),n(u.tablets),n(u.uas),n(u.utils),u.oss0={WindowsPhoneOS:u.oss.WindowsPhoneOS,WindowsMobileOS:u.oss.WindowsMobileOS}}(),r.findMatch=function(e,t){for(var n in e)if(a.call(e,n)&&e[n].test(t))return n;return null},r.findMatches=function(e,t){var n=[];for(var i in e)a.call(e,i)&&e[i].test(t)&&n.push(i);return n},r.getVersionStr=function(e,t){var n,i,o,s,l=r.mobileDetectRules.props;if(a.call(l,e))for(o=(n=l[e]).length,i=0;i<o;++i)if(null!==(s=n[i].exec(t)))return s[1];return null},r.getVersion=function(e,t){var n=r.getVersionStr(e,t);return n?r.prepareVersionNo(n):NaN},r.prepareVersionNo=function(e){var t;return 1===(t=e.split(/[a-z._ \/\-]/i)).length&&(e=t[0]),t.length>1&&(e=t[0]+".",t.shift(),e+=t.join("")),Number(e)},r.isMobileFallback=function(e){return r.detectMobileBrowsers.fullPattern.test(e)||r.detectMobileBrowsers.shortPattern.test(e.substr(0,4))},r.isTabletFallback=function(e){return r.detectMobileBrowsers.tabletPattern.test(e)},r.prepareDetectionCache=function(e,t,n){if(void 0===e.mobile){var o,a,s;if(a=r.findMatch(r.mobileDetectRules.tablets,t))return e.mobile=e.tablet=a,void(e.phone=null);if(o=r.findMatch(r.mobileDetectRules.phones,t))return e.mobile=e.phone=o,void(e.tablet=null);r.isMobileFallback(t)?void 0===(s=i.isPhoneSized(n))?(e.mobile=r.FALLBACK_MOBILE,e.tablet=e.phone=null):s?(e.mobile=e.phone=r.FALLBACK_PHONE,e.tablet=null):(e.mobile=e.tablet=r.FALLBACK_TABLET,e.phone=null):r.isTabletFallback(t)?(e.mobile=e.tablet=r.FALLBACK_TABLET,e.phone=null):e.mobile=e.tablet=e.phone=null}},r.mobileGrade=function(e){var t=null!==e.mobile();return e.os("iOS")&&e.version("iPad")>=4.3||e.os("iOS")&&e.version("iPhone")>=3.1||e.os("iOS")&&e.version("iPod")>=3.1||e.version("Android")>2.1&&e.is("Webkit")||e.version("Windows Phone OS")>=7||e.is("BlackBerry")&&e.version("BlackBerry")>=6||e.match("Playbook.*Tablet")||e.version("webOS")>=1.4&&e.match("Palm|Pre|Pixi")||e.match("hp.*TouchPad")||e.is("Firefox")&&e.version("Firefox")>=12||e.is("Chrome")&&e.is("AndroidOS")&&e.version("Android")>=4||e.is("Skyfire")&&e.version("Skyfire")>=4.1&&e.is("AndroidOS")&&e.version("Android")>=2.3||e.is("Opera")&&e.version("Opera Mobi")>11&&e.is("AndroidOS")||e.is("MeeGoOS")||e.is("Tizen")||e.is("Dolfin")&&e.version("Bada")>=2||(e.is("UC Browser")||e.is("Dolfin"))&&e.version("Android")>=2.3||e.match("Kindle Fire")||e.is("Kindle")&&e.version("Kindle")>=3||e.is("AndroidOS")&&e.is("NookTablet")||e.version("Chrome")>=11&&!t||e.version("Safari")>=5&&!t||e.version("Firefox")>=4&&!t||e.version("MSIE")>=7&&!t||e.version("Opera")>=10&&!t?"A":e.os("iOS")&&e.version("iPad")<4.3||e.os("iOS")&&e.version("iPhone")<3.1||e.os("iOS")&&e.version("iPod")<3.1||e.is("Blackberry")&&e.version("BlackBerry")>=5&&e.version("BlackBerry")<6||e.version("Opera Mini")>=5&&e.version("Opera Mini")<=6.5&&(e.version("Android")>=2.3||e.is("iOS"))||e.match("NokiaN8|NokiaC7|N97.*Series60|Symbian/3")||e.version("Opera Mobi")>=11&&e.is("SymbianOS")?"B":(e.version("BlackBerry")<5||e.match("MSIEMobile|Windows CE.*Mobile")||e.version("Windows Mobile"),"C")},r.detectOS=function(e){return r.findMatch(r.mobileDetectRules.oss0,e)||r.findMatch(r.mobileDetectRules.oss,e)},r.getDeviceSmallerSide=function(){return window.screen.width<window.screen.height?window.screen.width:window.screen.height},i.prototype={constructor:i,mobile:function(){return r.prepareDetectionCache(this._cache,this.ua,this.maxPhoneWidth),this._cache.mobile},phone:function(){return r.prepareDetectionCache(this._cache,this.ua,this.maxPhoneWidth),this._cache.phone},tablet:function(){return r.prepareDetectionCache(this._cache,this.ua,this.maxPhoneWidth),this._cache.tablet},userAgent:function(){return void 0===this._cache.userAgent&&(this._cache.userAgent=r.findMatch(r.mobileDetectRules.uas,this.ua)),this._cache.userAgent},userAgents:function(){return void 0===this._cache.userAgents&&(this._cache.userAgents=r.findMatches(r.mobileDetectRules.uas,this.ua)),this._cache.userAgents},os:function(){return void 0===this._cache.os&&(this._cache.os=r.detectOS(this.ua)),this._cache.os},version:function(e){return r.getVersion(e,this.ua)},versionStr:function(e){return r.getVersionStr(e,this.ua)},is:function(n){return t(this.userAgents(),n)||e(n,this.os())||e(n,this.phone())||e(n,this.tablet())||t(r.findMatches(r.mobileDetectRules.utils,this.ua),n)},match:function(e){return e instanceof RegExp||(e=new RegExp(e,"i")),e.test(this.ua)},isPhoneSized:function(e){return i.isPhoneSized(e||this.maxPhoneWidth)},mobileGrade:function(){return void 0===this._cache.grade&&(this._cache.grade=r.mobileGrade(this)),this._cache.grade}},"undefined"!=typeof window&&window.screen?i.isPhoneSized=function(e){return e<0?void 0:r.getDeviceSmallerSide()<=e}:i.isPhoneSized=function(){},i._impl=r,i})}(function(e){if("undefined"!=typeof module&&module.exports)return function(e){module.exports=e()};if("function"==typeof define&&define.amd)return define;if("undefined"!=typeof window)return function(e){window.MobileDetect=e()};throw new Error("unknown environment")}()),function(e){var t,n,i,r,o,a=function(){function t(){defaults={locale:"en",format:"L LTS",minView:"year",maxView:"minute",startView:"year",leftArrow:"&larr;",rightArrow:"&rarr;",monthsFormat:"MMM",daysFormat:"D",hoursFormat:"HH:[00]",minutesFormat:moment.localeData().longDateFormat("LT").replace(/[aA]/,""),secondsFormat:"ss",minutesStep:5,secondsStep:1}}return t.prototype.options=function(t){return e.extend(defaults,t),e.copy(defaults)},t.prototype.$get=function(){return defaults},t}(),s=function(){function a(e,a,s,l,c){this.restrict="A",this.scope={model:"=momentPicker",locale:"@?",format:"@?",minView:"@?",maxView:"@?",startView:"@?",minDate:"=?",maxDate:"=?",disabled:"=?disable",change:"&?"},t=e,n=a,i=s,r=l,o=c}return a.prototype.$inject=["$timeout","$sce","$compile","$document","momentPicker"],a.prototype.link=function(a,s,l){a.template='<div class="moment-picker-container {{view.selected}}-view" ng-show="view.isOpen && !disabled" ng-class="{\'moment-picker-disabled\': disabled}"><table class="header-view"><thead><tr><th ng-class="{disabled: !view.previous.selectable}" ng-bind-html="view.previous.label" ng-click="view.previous.set()"></th><th ng-bind="view.title" ng-click="view.setParentView()"></th><th ng-class="{disabled: !view.next.selectable}" ng-bind-html="view.next.label" ng-click="view.next.set()"></th></tr></thead></table><div class="moment-picker-specific-views"><table ng-if="view.selected == \'year\'"><tbody><tr ng-repeat="fourMonth in yearView.fourMonths"><td ng-repeat="month in fourMonth track by month.month" ng-class="month.class" ng-bind="month.label" ng-click="yearView.setMonth(month)"></td></tr></tbody></table><table ng-if="view.selected == \'month\'"><thead><tr><th ng-repeat="day in monthView.days" ng-bind="day"></th></tr></thead><tbody><tr ng-repeat="days in monthView.weeks"><td ng-repeat="day in days track by day.date" ng-class="day.class" ng-bind="day.label" ng-click="monthView.setDate(day)"></td></tr></tbody></table><table ng-if="view.selected == \'day\'"><tbody><tr ng-repeat="threeHours in dayView.threeHours"><td ng-repeat="hour in threeHours track by hour.hour" ng-class="hour.class" ng-bind="hour.label" ng-click="dayView.setHour(hour)"></td></tr></tbody></table><table ng-if="view.selected == \'hour\'"><tbody><tr ng-repeat="minutes in hourView.minutes"><td ng-repeat="minute in minutes" ng-class="minute.class" ng-bind="minute.label" ng-click="hourView.setMinute(minute)"></td></tr></tbody></table><table ng-if="view.selected == \'minute\'"><tbody><tr ng-repeat="seconds in minuteView.seconds"><td ng-repeat="second in seconds" ng-class="second.class" ng-bind="second.label" ng-click="minuteView.setSecond(second)"></td></tr></tbody></table></div></div>',e.forEach(["locale","format","minView","maxView","startView","leftArrow","rightArrow"],function(t){e.isDefined(a[t])||(a[t]=o[t]),e.isDefined(l[t])||(l[t]=a[t])}),a.momentToDate=function(t){return e.isDefined(t)&&t.isValid()?t.clone().toDate():void 0},a.valueUpdate=function(){a.disabled||(a.value=a.momentToDate(a.valueMoment))},a.limits={isAfterOrEqualMin:function(t,n){return!e.isDefined(a.minDateMoment)||t.isAfter(a.minDateMoment,n)||t.isSame(a.minDateMoment,n)},isBeforeOrEqualMax:function(t,n){return!e.isDefined(a.maxDateMoment)||t.isBefore(a.maxDateMoment,n)||t.isSame(a.maxDateMoment,n)},isSelectable:function(e,t){return a.limits.isAfterOrEqualMin(e,t)&&a.limits.isBeforeOrEqualMax(e,t)},checkValue:function(){e.isDefined(a.valueMoment)&&(a.limits.isAfterOrEqualMin(a.valueMoment)||a.valueUpdate(a.valueMoment=a.minDateMoment.clone()),a.limits.isBeforeOrEqualMax(a.valueMoment)||a.valueUpdate(a.valueMoment=a.maxDateMoment.clone()))},checkView:function(){e.isDefined(a.view.moment)||(a.view.moment=moment().locale(a.locale)),a.limits.isAfterOrEqualMin(a.view.moment)||(a.view.moment=a.minDateMoment.clone()),a.limits.isBeforeOrEqualMax(a.view.moment)||(a.view.moment=a.maxDateMoment.clone()),a.view.update()}},a.views={all:["year","month","day","hour","minute"],formats:{year:"M{1,4}(?![Mo])|Mo|Q|[Ll]{1,4}(?!T)",month:"[Dd]{1,4}(?![Ddo])|DDDo|[Dd]o|[Ww]{1,2}(?![Wwo])|[Ww]o|[Ee]|L{1,4}(?!T)|l{1,4}",day:"[Hh]{1,2}|LTS?",hour:"m{1,2}|[Ll]{3,4}|LT(?!S)",minute:"s{1,2}|S{1,}|X|LTS"},detectMinMax:function(){var t,n;e.forEach(a.views.formats,function(i,r){var o=new RegExp("("+i+")(?![^[]*])","g");a.format.match(o)&&(e.isDefined(t)||(t=r),n=r)}),t=e.isDefined(t)?Math.max(0,a.views.all.indexOf(t)):0,n=e.isDefined(n)?Math.min(a.views.all.length-1,a.views.all.indexOf(n)):a.views.all.length-1,t>a.views.all.indexOf(a.minView)&&(a.minView=a.views.all[t]),n<a.views.all.indexOf(a.maxView)&&(a.maxView=a.views.all[n])}},a.view={isOpen:!1,selected:a.startView,update:function(){a.view.value=a.momentToDate(a.view.moment)},toggle:function(){a.view.isOpen?a.view.close():a.view.open()},open:function(){e.forEach(r[0].querySelectorAll(".moment-picker-container.open"),function(t){((e.element(t).scope().view||{}).close||e.noop)()}),a.view.isOpen=!0},close:function(){a.view.isOpen=!1,a.view.selected=a.startView},title:"",previous:{selectable:!0,label:n.trustAsHtml(a.leftArrow),selectable:!0,set:function(){a.view.previous.selectable&&a.view.update(a.view.moment.subtract(1,a.view.selected).toDate())}},next:{selectable:!0,label:n.trustAsHtml(a.rightArrow),set:function(){a.view.next.selectable&&a.view.update(a.view.moment.add(1,a.view.selected).toDate())}},setParentView:function(){a.view.change(a.views.all[Math.max(0,a.views.all.indexOf(a.view.selected)-1)])},render:function(){var e=a.view.moment.clone().startOf(a.view.selected).subtract(1,a.view.selected),t=a.view.moment.clone().endOf(a.view.selected).add(1,a.view.selected);a.view.previous.selectable=a.limits.isAfterOrEqualMin(e,a.view.selected),a.view.previous.label=n.trustAsHtml(a.view.previous.selectable?a.leftArrow:"&nbsp;"),a.view.next.selectable=a.limits.isBeforeOrEqualMax(t,a.view.selected),a.view.next.label=n.trustAsHtml(a.view.next.selectable?a.rightArrow:"&nbsp;"),a.view.title=a[a.view.selected+"View"].render()},change:function(e){var t=a.views.all.indexOf(e),n=a.views.all.indexOf(a.minView),i=a.views.all.indexOf(a.maxView);0>t||t>i?(a.valueUpdate(a.valueMoment=a.view.moment.clone()),a.view.close()):t>=n&&(a.view.selected=e)}},a.yearView={fourMonths:{},render:function(){var e=a.view.moment.clone().startOf("year"),t=moment.monthsShort();return a.yearView.fourMonths=[],t.forEach(function(t,n){var i=Math.floor(n/4),r=a.limits.isSelectable(e,"month");a.yearView.fourMonths[i]||(a.yearView.fourMonths[i]=[]),a.yearView.fourMonths[i].push({label:e.format(o.monthsFormat),year:e.year(),month:e.month(),class:r?e.isSame(a.valueMoment,"month")?"selected":"":"disabled",selectable:r}),e.add(1,"months")}),a.view.moment.format("YYYY")},setMonth:function(e){e.selectable&&(a.view.update(a.view.moment.year(e.year).month(e.month)),a.view.change("month"))}},a.monthView={days:function(){for(var e=[],t=moment().locale(a.locale).startOf("week"),n=0;7>n;n++)e.push(t.format("dd")),t.add(1,"days");return e}(),weeks:[],render:function(){var t=a.view.moment.month(),n=a.view.moment.clone().startOf("month").startOf("week"),i=(a.view.moment.clone().endOf("month").endOf("week"),n.week()),r=i+5;weeks={},a.monthView.weeks=[];for(var s=i;r>=s;s++)weeks[s]="0000000".split("").map(function(){var e=a.limits.isSelectable(n,"day"),i={label:n.format(o.daysFormat),year:n.year(),date:n.date(),month:n.month(),class:e&&n.month()==t?n.isSame(a.valueMoment,"day")?"selected":"":"disabled",selectable:e};return n.add(1,"days"),i});return e.forEach(weeks,function(e){a.monthView.weeks.push(e)}),a.view.moment.format("MMMM YYYY")},setDate:function(e){e.selectable&&(a.view.update(a.view.moment.year(e.year).month(e.month).date(e.date)),a.view.change("day"))}},a.dayView={threeHours:[],render:function(){var e=a.view.moment.clone().startOf("day");moment.localeData().longDateFormat("LT").replace(/[aA]/,""),a.dayView.threeHours=[];for(var t=0;24>t;t++){var n=Math.floor(t/4),i=a.limits.isSelectable(e,"hour");a.dayView.threeHours[n]||(a.dayView.threeHours[n]=[]),a.dayView.threeHours[n].push({label:e.format(o.hoursFormat),year:e.year(),month:e.month(),date:e.date(),hour:e.hour(),class:i?e.isSame(a.valueMoment,"hour")?"selected":"":"disabled",selectable:i}),e.add(1,"hours")}return a.view.moment.format("LL")},setHour:function(e){e.selectable&&(a.view.update(a.view.moment.year(e.year).month(e.month).date(e.date).hour(e.hour)),a.view.change("hour"))}},a.hourView={minutes:[],render:function(){var e=0,t=a.view.moment.clone().startOf("hour");a.hourView.minutes=[];for(var n=0;60>n;n+=o.minutesStep){var i=Math.floor(e/4),r=a.limits.isSelectable(t,"minute");a.hourView.minutes[i]||(a.hourView.minutes[i]=[]),a.hourView.minutes[i].push({label:t.format(o.minutesFormat),year:t.year(),month:t.month(),date:t.date(),hour:t.hour(),minute:t.minute(),class:r?t.isSame(a.valueMoment,"minute")?"selected":"":"disabled",selectable:r}),e++,t.add(o.minutesStep,"minutes")}return a.view.moment.clone().startOf("hour").format("lll")},setMinute:function(e){e.selectable&&(a.view.update(a.view.moment.year(e.year).month(e.month).date(e.date).hour(e.hour).minute(e.minute)),a.view.change("minute"))}},a.minuteView={seconds:[],render:function(){var e=0,t=a.view.moment.clone().startOf("minute");a.minuteView.seconds=[];for(var n=0;60>n;n+=o.secondsStep){var i=Math.floor(e/6),r=a.limits.isSelectable(t,"second");a.minuteView.seconds[i]||(a.minuteView.seconds[i]=[]),a.minuteView.seconds[i].push({label:t.format(o.secondsFormat),year:t.year(),month:t.month(),date:t.date(),hour:t.hour(),minute:t.minute(),second:t.second(),class:r?t.isSame(a.valueMoment,"second")?"selected":"":"disabled",selectable:r}),e++,t.add(o.secondsStep,"seconds")}return a.view.moment.clone().startOf("minute").format("lll")},setSecond:function(e){e.selectable&&(a.view.update(a.view.moment.year(e.year).month(e.month).date(e.date).hour(e.hour).minute(e.minute).second(e.second)),a.view.change("second"))}},a.picker=e.element('<span class="moment-picker"></span>'),s.after(a.picker),a.contents=s.addClass("moment-picker-contents").removeAttr("moment-picker"),a.container=i(a.template)(a),a.picker.append(a.contents),a.picker.append(a.container),a.views.detectMinMax(),a.limits.checkView(),a.$watch("model",function(t,n){e.isDefined(t)&&(a.valueMoment=moment(t,a.format,a.locale),a.valueMoment.isValid()?(a.view.moment=a.valueMoment.clone(),a.view.update()):a.valueMoment=void 0),a.valueUpdate(a.valueMoment),a.limits.checkValue()}),a.$watch("value",function(n,i){if(e.isDefined(a.valueMoment)){var r=a.model,o=a.valueMoment.format(a.format);o!=r&&t(function(){a.view.update(a.view.moment=a.valueMoment.clone()),a.model=o,e.isFunction(a.change)&&a.change({newValue:o,oldValue:r})})}}),a.$watch("[view.selected, view.value]",a.view.render,!0),a.$watch("[minView, maxView]",function(){a.views.detectMinMax(),a.startView=a.views.all[Math.max(Math.min(a.views.all.indexOf(a.startView),a.views.all.indexOf(a.maxView)),a.views.all.indexOf(a.minView))],a.view.selected=a.startView}),a.$watch("[minDate, maxDate]",function(){e.forEach(["minDate","maxDate"],function(t){e.isDefined(a[t])&&(a[t+"Moment"]=moment(a[t],a.format,a.locale),a[t+"Moment"].isValid()||(a[t+"Moment"]=void 0))}),a.limits.checkValue(),a.limits.checkView(),a.view.render()},!0),r.on("click",function(){a.view.isOpen&&t(a.view.close)}),a.container.on("click",function(e){e.stopPropagation()}),a.contents.on("click",function(e){e.stopPropagation(),a.view.isOpen||t(a.view.open)}),e.element(a.contents[0].querySelector("input")).on("focus",function(){a.view.isOpen||t(a.view.open)})},a}();e.module("moment-picker",[]).provider("momentPicker",[function(){return new a}]).directive("momentPicker",["$timeout","$sce","$compile","$document","momentPicker",function(e,t,n,i,r){return new s(e,t,n,i,r)}])}(window.angular),function(e,t){"function"==typeof define&&define.amd?define(["moment"],function(n){return e.DateRange=t(n)}):"object"==typeof exports?module.exports=t(require("moment")):e.DateRange=t(moment)}(this,function(e){function t(t,n){var i,r=t,o=n;1!==arguments.length&&void 0!==n||("object"==typeof t&&2===t.length?(r=t[0],o=t[1]):"string"==typeof t&&(r=(i=t.split("/"))[0],o=i[1])),this.start=e(null===r?-864e13:r),this.end=e(null===o?864e13:o)}function n(t,n,i){for(var r=e(this.start);this.contains(r,i);)n.call(this,r.clone()),r.add(1,t)}function i(t,n,i){var r=this/t,o=Math.floor(r);if(o!==1/0){o===r&&i&&o--;for(var a=0;a<=o;a++)n.call(this,e(this.start.valueOf()+t.valueOf()*a))}}var r={year:!0,month:!0,week:!0,day:!0,hour:!0,minute:!0,second:!0};return t.prototype.constructor=t,t.prototype.clone=function(){return e().range(this.start,this.end)},t.prototype.contains=function(e,n){var i=this.start,r=this.end;return e instanceof t?i<=e.start&&(r>e.end||r.isSame(e.end)&&!n):i<=e&&(r>e||r.isSame(e)&&!n)},t.prototype.overlaps=function(e){return null!==this.intersect(e)},t.prototype.intersect=function(e){var n=this.start,i=this.end;return n<=e.start&&e.start<i&&i<e.end?new t(e.start,i):e.start<n&&n<e.end&&e.end<=i?new t(n,e.end):e.start<n&&n<=i&&i<e.end?this:n<=e.start&&e.start<=e.end&&e.end<=i?e:null},t.prototype.add=function(n){return this.overlaps(n)?new t(e.min(this.start,n.start),e.max(this.end,n.end)):null},t.prototype.subtract=function(e){var n=this.start,i=this.end;return null===this.intersect(e)?[this]:e.start<=n&&n<i&&i<=e.end?[]:e.start<=n&&n<e.end&&e.end<i?[new t(e.end,i)]:n<e.start&&e.start<i&&i<=e.end?[new t(n,e.start)]:n<e.start&&e.start<e.end&&e.end<i?[new t(n,e.start),new t(e.end,i)]:n<e.start&&e.start<i&&e.end<i?[new t(n,e.start),new t(e.start,i)]:void 0},t.prototype.toArray=function(e,t){var n=[];return this.by(e,function(e){n.push(e)},t),n},t.prototype.by=function(e,t,r){return"string"==typeof e?n.call(this,e,t,r):i.call(this,e,t,r),this},t.prototype.toString=function(){return this.start.format()+"/"+this.end.format()},t.prototype.valueOf=function(){return this.end-this.start},t.prototype.center=function(){var t=this.start+this.diff()/2;return e(t)},t.prototype.toDate=function(){return[this.start.toDate(),this.end.toDate()]},t.prototype.isSame=function(e){return this.start.isSame(e.start)&&this.end.isSame(e.end)},t.prototype.diff=function(e){return this.end.diff(this.start,e)},e.range=function(n,i){return n in r?new t(e(this).startOf(n),e(this).endOf(n)):new t(n,i)},e.range.constructor=t,e.fn.range=e.range,e.fn.within=function(e){return e.contains(this._d)},t}),function(e,t,n){"use strict";function i(t){if(this.support=!("undefined"==typeof File||"undefined"==typeof Blob||"undefined"==typeof FileList||!Blob.prototype.slice&&!Blob.prototype.webkitSlice&&!Blob.prototype.mozSlice),this.support){this.supportDirectory=/Chrome/.test(e.navigator.userAgent),this.files=[],this.defaults={chunkSize:1048576,forceChunkSize:!1,simultaneousUploads:3,singleFile:!1,fileParameterName:"file",progressCallbacksInterval:500,speedSmoothingFactor:.1,query:{},headers:{},withCredentials:!1,preprocess:null,method:"multipart",testMethod:"GET",uploadMethod:"POST",prioritizeFirstAndLastChunk:!1,allowDuplicateUploads:!1,target:"/",testChunks:!0,generateUniqueIdentifier:null,maxChunkRetries:0,chunkRetryInterval:null,permanentErrors:[404,413,415,500,501],successStatuses:[200,201,202],onDropStopPropagation:!1,initFileFn:null,readFileFn:o},this.opts={},this.events={};var n=this;this.onDrop=function(e){n.opts.onDropStopPropagation&&e.stopPropagation(),e.preventDefault();var t=e.dataTransfer;t.items&&t.items[0]&&t.items[0].webkitGetAsEntry?n.webkitReadDataTransfer(e):n.addFiles(t.files,e)},this.preventEvent=function(e){e.preventDefault()},this.opts=i.extend({},this.defaults,t||{})}}function r(e,t){this.flowObj=e,this.bytes=null,this.file=t,this.name=t.fileName||t.name,this.size=t.size,this.relativePath=t.relativePath||t.webkitRelativePath||this.name,this.uniqueIdentifier=e.generateUniqueIdentifier(t),this.chunks=[],this.paused=!1,this.error=!1,this.averageSpeed=0,this.currentSpeed=0,this._lastProgressCallback=Date.now(),this._prevUploadedSize=0,this._prevProgress=0,this.bootstrap()}function o(e,t,n,i,r){var o="slice";e.file.slice?o="slice":e.file.mozSlice?o="mozSlice":e.file.webkitSlice&&(o="webkitSlice"),r.readFinished(e.file[o](t,n,i))}function a(e,t,n){this.flowObj=e,this.fileObj=t,this.offset=n,this.tested=!1,this.retries=0,this.pendingRetry=!1,this.preprocessState=0,this.readState=0,this.loaded=0,this.total=0,this.chunkSize=this.flowObj.opts.chunkSize,this.startByte=this.offset*this.chunkSize,this.computeEndByte=function(){var e=Math.min(this.fileObj.size,(this.offset+1)*this.chunkSize);return this.fileObj.size-e<this.chunkSize&&!this.flowObj.opts.forceChunkSize&&(e=this.fileObj.size),e},this.endByte=this.computeEndByte(),this.xhr=null;var i=this;this.event=function(e,t){(t=Array.prototype.slice.call(arguments)).unshift(i),i.fileObj.chunkEvent.apply(i.fileObj,t)},this.progressHandler=function(e){e.lengthComputable&&(i.loaded=e.loaded,i.total=e.total),i.event("progress",e)},this.testHandler=function(e){var t=i.status(!0);"error"===t?(i.event(t,i.message()),i.flowObj.uploadNextChunk()):"success"===t?(i.tested=!0,i.event(t,i.message()),i.flowObj.uploadNextChunk()):i.fileObj.paused||(i.tested=!0,i.send())},this.doneHandler=function(e){var t=i.status();if("success"===t||"error"===t)delete this.data,i.event(t,i.message()),i.flowObj.uploadNextChunk();else{i.event("retry",i.message()),i.pendingRetry=!0,i.abort(),i.retries++;var n=i.flowObj.opts.chunkRetryInterval;null!==n?setTimeout(function(){i.send()},n):i.send()}}}function s(e,t){var n=e.indexOf(t);n>-1&&e.splice(n,1)}function l(e,t){return"function"==typeof e&&(t=Array.prototype.slice.call(arguments),e=e.apply(null,t.slice(1))),e}function c(e,t){setTimeout(e.bind(t),0)}function u(e,t){return d(arguments,function(t){t!==e&&d(t,function(t,n){e[n]=t})}),e}function d(e,t,n){if(e){var i;if(void 0!==e.length){for(i=0;i<e.length;i++)if(!1===t.call(n,e[i],i))return}else for(i in e)if(e.hasOwnProperty(i)&&!1===t.call(n,e[i],i))return}}var h=e.navigator.msPointerEnabled;i.prototype={on:function(e,t){e=e.toLowerCase(),this.events.hasOwnProperty(e)||(this.events[e]=[]),this.events[e].push(t)},off:function(e,t){void 0!==e?(e=e.toLowerCase(),void 0!==t?this.events.hasOwnProperty(e)&&s(this.events[e],t):delete this.events[e]):this.events={}},fire:function(e,t){t=Array.prototype.slice.call(arguments),e=e.toLowerCase();var n=!1;return this.events.hasOwnProperty(e)&&d(this.events[e],function(e){n=!1===e.apply(this,t.slice(1))||n},this),"catchall"!=e&&(t.unshift("catchAll"),n=!1===this.fire.apply(this,t)||n),!n},webkitReadDataTransfer:function(e){function t(e){e.readEntries(function(o){o.length?(a+=o.length,d(o,function(e){if(e.isFile){var r=e.fullPath;e.file(function(e){n(e,r)},i)}else e.isDirectory&&t(e.createReader())}),t(e)):r()},i)}function n(e,t){e.relativePath=t.substring(1),s.push(e),r()}function i(e){throw e}function r(){0==--a&&o.addFiles(s,e)}var o=this,a=e.dataTransfer.items.length,s=[];d(e.dataTransfer.items,function(e){var i=e.webkitGetAsEntry();i?i.isFile?n(e.getAsFile(),i.fullPath):t(i.createReader()):r()})},generateUniqueIdentifier:function(e){var t=this.opts.generateUniqueIdentifier;if("function"==typeof t)return t(e);var n=e.relativePath||e.webkitRelativePath||e.fileName||e.name;return e.size+"-"+n.replace(/[^0-9a-zA-Z_-]/gim,"")},uploadNextChunk:function(e){var t=!1;if(this.opts.prioritizeFirstAndLastChunk&&(d(this.files,function(e){return!e.paused&&e.chunks.length&&"pending"===e.chunks[0].status()?(e.chunks[0].send(),t=!0,!1):!e.paused&&e.chunks.length>1&&"pending"===e.chunks[e.chunks.length-1].status()?(e.chunks[e.chunks.length-1].send(),t=!0,!1):void 0}),t))return t;if(d(this.files,function(e){if(e.paused||d(e.chunks,function(e){if("pending"===e.status())return e.send(),t=!0,!1}),t)return!1}),t)return!0;var n=!1;return d(this.files,function(e){if(!e.isComplete())return n=!0,!1}),n||e||c(function(){this.fire("complete")},this),!1},assignBrowse:function(e,n,i,r){e instanceof Element&&(e=[e]),d(e,function(e){var o;"INPUT"===e.tagName&&"file"===e.type?o=e:((o=t.createElement("input")).setAttribute("type","file"),u(o.style,{visibility:"hidden",position:"absolute",width:"1px",height:"1px"}),e.appendChild(o),e.addEventListener("click",function(){o.click()},!1)),this.opts.singleFile||i||o.setAttribute("multiple","multiple"),n&&o.setAttribute("webkitdirectory","webkitdirectory"),d(r,function(e,t){o.setAttribute(t,e)});var a=this;o.addEventListener("change",function(e){e.target.value&&(a.addFiles(e.target.files,e),e.target.value="")},!1)},this)},assignDrop:function(e){void 0===e.length&&(e=[e]),d(e,function(e){e.addEventListener("dragover",this.preventEvent,!1),e.addEventListener("dragenter",this.preventEvent,!1),e.addEventListener("drop",this.onDrop,!1)},this)},unAssignDrop:function(e){void 0===e.length&&(e=[e]),d(e,function(e){e.removeEventListener("dragover",this.preventEvent),e.removeEventListener("dragenter",this.preventEvent),e.removeEventListener("drop",this.onDrop)},this)},isUploading:function(){var e=!1;return d(this.files,function(t){if(t.isUploading())return e=!0,!1}),e},_shouldUploadNext:function(){var e=0,t=!0,n=this.opts.simultaneousUploads;return d(this.files,function(i){d(i.chunks,function(i){if("uploading"===i.status()&&++e>=n)return t=!1,!1})}),t&&e},upload:function(){var e=this._shouldUploadNext();if(!1!==e){this.fire("uploadStart");for(var t=!1,n=1;n<=this.opts.simultaneousUploads-e;n++)t=this.uploadNextChunk(!0)||t;t||c(function(){this.fire("complete")},this)}},resume:function(){d(this.files,function(e){e.resume()})},pause:function(){d(this.files,function(e){e.pause()})},cancel:function(){for(var e=this.files.length-1;e>=0;e--)this.files[e].cancel()},progress:function(){var e=0,t=0;return d(this.files,function(n){e+=n.progress()*n.size,t+=n.size}),t>0?e/t:0},addFile:function(e,t){this.addFiles([e],t)},addFiles:function(e,t){var n=[];d(e,function(e){if((!h||h&&e.size>0)&&(e.size%4096!=0||"."!==e.name&&"."!==e.fileName)&&(this.opts.allowDuplicateUploads||!this.getFromUniqueIdentifier(this.generateUniqueIdentifier(e)))){var i=new r(this,e);this.fire("fileAdded",i,t)&&n.push(i)}},this),this.fire("filesAdded",n,t)&&(d(n,function(e){this.opts.singleFile&&this.files.length>0&&this.removeFile(this.files[0]),this.files.push(e)},this),this.fire("filesSubmitted",n,t))},removeFile:function(e){for(var t=this.files.length-1;t>=0;t--)this.files[t]===e&&(this.files.splice(t,1),e.abort(),this.fire("fileRemoved",e))},getFromUniqueIdentifier:function(e){var t=!1;return d(this.files,function(n){n.uniqueIdentifier===e&&(t=n)}),t},getSize:function(){var e=0;return d(this.files,function(t){e+=t.size}),e},sizeUploaded:function(){var e=0;return d(this.files,function(t){e+=t.sizeUploaded()}),e},timeRemaining:function(){var e=0,t=0;return d(this.files,function(n){n.paused||n.error||(e+=n.size-n.sizeUploaded(),t+=n.averageSpeed)}),e&&!t?Number.POSITIVE_INFINITY:e||t?Math.floor(e/t):0}},r.prototype={measureSpeed:function(){var e=Date.now()-this._lastProgressCallback;if(e){var t=this.flowObj.opts.speedSmoothingFactor,n=this.sizeUploaded();this.currentSpeed=Math.max((n-this._prevUploadedSize)/e*1e3,0),this.averageSpeed=t*this.currentSpeed+(1-t)*this.averageSpeed,this._prevUploadedSize=n}},chunkEvent:function(e,t,n){switch(t){case"progress":if(Date.now()-this._lastProgressCallback<this.flowObj.opts.progressCallbacksInterval)break;this.measureSpeed(),this.flowObj.fire("fileProgress",this,e),this.flowObj.fire("progress"),this._lastProgressCallback=Date.now();break;case"error":this.error=!0,this.abort(!0),this.flowObj.fire("fileError",this,n,e),this.flowObj.fire("error",n,this,e);break;case"success":if(this.error)return;this.measureSpeed(),this.flowObj.fire("fileProgress",this,e),this.flowObj.fire("progress"),this._lastProgressCallback=Date.now(),this.isComplete()&&(this.currentSpeed=0,this.averageSpeed=0,this.flowObj.fire("fileSuccess",this,n,e));break;case"retry":this.flowObj.fire("fileRetry",this,e)}},pause:function(){this.paused=!0,this.abort()},resume:function(){this.paused=!1,this.flowObj.upload()},abort:function(e){this.currentSpeed=0,this.averageSpeed=0;var t=this.chunks;e&&(this.chunks=[]),d(t,function(e){"uploading"===e.status()&&(e.abort(),this.flowObj.uploadNextChunk())},this)},cancel:function(){this.flowObj.removeFile(this)},retry:function(){this.bootstrap(),this.flowObj.upload()},bootstrap:function(){"function"==typeof this.flowObj.opts.initFileFn&&this.flowObj.opts.initFileFn(this),this.abort(!0),this.error=!1,this._prevProgress=0;for(var e=this.flowObj.opts.forceChunkSize?Math.ceil:Math.floor,t=Math.max(e(this.size/this.flowObj.opts.chunkSize),1),n=0;n<t;n++)this.chunks.push(new a(this.flowObj,this,n))},progress:function(){if(this.error)return 1;if(1===this.chunks.length)return this._prevProgress=Math.max(this._prevProgress,this.chunks[0].progress()),this._prevProgress;var e=0;d(this.chunks,function(t){e+=t.progress()*(t.endByte-t.startByte)});var t=e/this.size;return this._prevProgress=Math.max(this._prevProgress,t>.9999?1:t),this._prevProgress},isUploading:function(){var e=!1;return d(this.chunks,function(t){if("uploading"===t.status())return e=!0,!1}),e},isComplete:function(){var e=!1;return d(this.chunks,function(t){var n=t.status();if("pending"===n||"uploading"===n||"reading"===n||1===t.preprocessState||1===t.readState)return e=!0,!1}),!e},sizeUploaded:function(){var e=0;return d(this.chunks,function(t){e+=t.sizeUploaded()}),e},timeRemaining:function(){if(this.paused||this.error)return 0;var e=this.size-this.sizeUploaded();return e&&!this.averageSpeed?Number.POSITIVE_INFINITY:e||this.averageSpeed?Math.floor(e/this.averageSpeed):0},getType:function(){return this.file.type&&this.file.type.split("/")[1]},getExtension:function(){return this.name.substr(2+(~-this.name.lastIndexOf(".")>>>0)).toLowerCase()}},a.prototype={getParams:function(){return{flowChunkNumber:this.offset+1,flowChunkSize:this.flowObj.opts.chunkSize,flowCurrentChunkSize:this.endByte-this.startByte,flowTotalSize:this.fileObj.size,flowIdentifier:this.fileObj.uniqueIdentifier,flowFilename:this.fileObj.name,flowRelativePath:this.fileObj.relativePath,flowTotalChunks:this.fileObj.chunks.length}},getTarget:function(e,t){return e.indexOf("?")<0?e+="?":e+="&",e+t.join("&")},test:function(){this.xhr=new XMLHttpRequest,this.xhr.addEventListener("load",this.testHandler,!1),this.xhr.addEventListener("error",this.testHandler,!1);var e=l(this.flowObj.opts.testMethod,this.fileObj,this),t=this.prepareXhrRequest(e,!0);this.xhr.send(t)},preprocessFinished:function(){this.endByte=this.computeEndByte(),this.preprocessState=2,this.send()},readFinished:function(e){this.readState=2,this.bytes=e,this.send()},send:function(){var e=this.flowObj.opts.preprocess,t=this.flowObj.opts.readFileFn;if("function"==typeof e)switch(this.preprocessState){case 0:return this.preprocessState=1,void e(this);case 1:return}switch(this.readState){case 0:return this.readState=1,void t(this.fileObj,this.startByte,this.endByte,this.fileObj.file.type,this);case 1:return}if(!this.flowObj.opts.testChunks||this.tested){this.loaded=0,this.total=0,this.pendingRetry=!1,this.xhr=new XMLHttpRequest,this.xhr.upload.addEventListener("progress",this.progressHandler,!1),this.xhr.addEventListener("load",this.doneHandler,!1),this.xhr.addEventListener("error",this.doneHandler,!1);var n=l(this.flowObj.opts.uploadMethod,this.fileObj,this),i=this.prepareXhrRequest(n,!1,this.flowObj.opts.method,this.bytes);this.xhr.send(i)}else this.test()},abort:function(){var e=this.xhr;this.xhr=null,e&&e.abort()},status:function(e){return 1===this.readState?"reading":this.pendingRetry||1===this.preprocessState?"uploading":this.xhr?this.xhr.readyState<4?"uploading":this.flowObj.opts.successStatuses.indexOf(this.xhr.status)>-1?"success":this.flowObj.opts.permanentErrors.indexOf(this.xhr.status)>-1||!e&&this.retries>=this.flowObj.opts.maxChunkRetries?"error":(this.abort(),"pending"):"pending"},message:function(){return this.xhr?this.xhr.responseText:""},progress:function(){if(this.pendingRetry)return 0;var e=this.status();return"success"===e||"error"===e?1:"pending"===e?0:this.total>0?this.loaded/this.total:0},sizeUploaded:function(){var e=this.endByte-this.startByte;return"success"!==this.status()&&(e=this.progress()*e),e},prepareXhrRequest:function(e,t,n,i){var r=l(this.flowObj.opts.query,this.fileObj,this,t);r=u(r,this.getParams());var o=l(this.flowObj.opts.target,this.fileObj,this,t),a=null;if("GET"===e||"octet"===n){var s=[];d(r,function(e,t){s.push([encodeURIComponent(t),encodeURIComponent(e)].join("="))}),o=this.getTarget(o,s),a=i||null}else a=new FormData,d(r,function(e,t){a.append(t,e)}),a.append(this.flowObj.opts.fileParameterName,i,this.fileObj.file.name);return this.xhr.open(e,o,!0),this.xhr.withCredentials=this.flowObj.opts.withCredentials,d(l(this.flowObj.opts.headers,this.fileObj,this,t),function(e,t){this.xhr.setRequestHeader(t,e)},this),a}},i.evalOpts=l,i.extend=u,i.each=d,i.FlowFile=r,i.FlowChunk=a,i.version="2.11.2","object"==typeof module&&module&&"object"==typeof module.exports?module.exports=i:(e.Flow=i,"function"==typeof define&&define.amd&&define("flow",[],function(){return i}))}(window,document),angular.module("flow.provider",[]).provider("flowFactory",function(){"use strict";this.defaults={},this.factory=function(e){return new Flow(e)},this.events=[],this.on=function(e,t){this.events.push([e,t])},this.$get=function(){var e=this.factory,t=this.defaults,n=this.events;return{create:function(i){var r=e(angular.extend({},t,i));return angular.forEach(n,function(e){r.on(e[0],e[1])}),r}}}}),angular.module("flow.init",["flow.provider"]).controller("flowCtrl",["$scope","$attrs","$parse","flowFactory",function(e,t,n,i){var r=angular.extend({},e.$eval(t.flowInit)),o=e.$eval(t.flowObject)||i.create(r),a=function(t){var n=Array.prototype.slice.call(arguments);n.shift();var i=e.$broadcast.apply(e,["flow::"+t,o].concat(n));if({progress:1,filesSubmitted:1,fileSuccess:1,fileError:1,complete:1}[t]&&e.$apply(),i.defaultPrevented)return!1};o.on("catchAll",a),e.$on("$destroy",function(){o.off("catchAll",a)}),e.$flow=o,t.hasOwnProperty("flowName")&&(n(t.flowName).assign(e,o),e.$on("$destroy",function(){n(t.flowName).assign(e)}))}]).directive("flowInit",[function(){return{scope:!0,controller:"flowCtrl"}}]),angular.module("flow.btn",["flow.init"]).directive("flowBtn",[function(){return{restrict:"EA",scope:!1,require:"^flowInit",link:function(e,t,n){var i=n.hasOwnProperty("flowDirectory"),r=n.hasOwnProperty("flowSingleFile"),o=n.hasOwnProperty("flowAttrs")&&e.$eval(n.flowAttrs);e.$flow.assignBrowse(t,i,r,o)}}}]),angular.module("flow.dragEvents",["flow.init"]).directive("flowPreventDrop",function(){return{scope:!1,link:function(e,t,n){t.bind("drop dragover",function(e){e.preventDefault()})}}}).directive("flowDragEnter",["$timeout",function(e){return{scope:!1,link:function(t,n,i){function r(e){var t=!1,n=e.dataTransfer||e.originalEvent.dataTransfer;return angular.forEach(n&&n.types,function(e){"Files"===e&&(t=!0)}),t}var o,a=!1;n.bind("dragover",function(n){r(n)&&(a||(t.$apply(i.flowDragEnter),a=!0),e.cancel(o),n.preventDefault())}),n.bind("dragleave drop",function(n){e.cancel(o),o=e(function(){t.$eval(i.flowDragLeave),o=null,a=!1},100)})}}}]),angular.module("flow.drop",["flow.init"]).directive("flowDrop",function(){return{scope:!1,require:"^flowInit",link:function(e,t,n){function i(){e.$flow.assignDrop(t)}function r(){e.$flow.unAssignDrop(t)}n.flowDropEnabled?e.$watch(n.flowDropEnabled,function(e){e?i():r()}):i()}}}),function(e){"use strict";function t(e){return e.charAt(0).toUpperCase()+e.slice(1)}var n=e.module("flow.events",["flow.init"]),i={fileSuccess:["$file","$message"],fileProgress:["$file"],fileAdded:["$file","$event"],filesAdded:["$files","$event"],filesSubmitted:["$files","$event"],fileRetry:["$file"],fileError:["$file","$message"],uploadStart:[],complete:[],progress:[],error:["$message","$file"]};e.forEach(i,function(i,r){var o="flow"+t(r);"flowUploadStart"==o&&(o="flowUploadStarted"),n.directive(o,[function(){return{require:"^flowInit",controller:["$scope","$attrs",function(t,n){t.$on("flow::"+r,function(){var r=Array.prototype.slice.call(arguments),a=r.shift();if(t.$flow===r.shift()){var s={};e.forEach(i,function(e,t){s[e]=r[t]}),!1===t.$eval(n[o],s)&&a.preventDefault()}})}]}}])})}(angular),angular.module("flow.img",["flow.init"]).directive("flowImg",[function(){return{scope:!1,require:"^flowInit",link:function(e,t,n){var i=n.flowImg;e.$watch(i,function(t){if(t){var i=new FileReader;i.readAsDataURL(t.file),i.onload=function(t){e.$apply(function(){n.$set("src",t.target.result)})}}})}}}]),angular.module("flow.transfers",["flow.init"]).directive("flowTransfers",[function(){return{scope:!0,require:"^flowInit",link:function(e){e.transfers=e.$flow.files}}}]),angular.module("flow",["flow.provider","flow.init","flow.events","flow.btn","flow.drop","flow.transfers","flow.img","flow.dragEvents"]),function e(t,n,i){function r(a,s){if(!n[a]){if(!t[a]){var l="function"==typeof require&&require;if(!s&&l)return l(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var u=n[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return r(n||e)},u,u.exports,e,t,n,i)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<i.length;a++)r(i[a]);return r}({1:[function(e,t,n){"use strict";var i=e("../main");"function"==typeof define&&define.amd?define(i):(window.PerfectScrollbar=i,void 0===window.Ps&&(window.Ps=i))},{"../main":7}],2:[function(e,t,n){"use strict";function i(e,t){var n=e.className.split(" ");n.indexOf(t)<0&&n.push(t),e.className=n.join(" ")}function r(e,t){var n=e.className.split(" "),i=n.indexOf(t);i>=0&&n.splice(i,1),e.className=n.join(" ")}n.add=function(e,t){e.classList?e.classList.add(t):i(e,t)},n.remove=function(e,t){e.classList?e.classList.remove(t):r(e,t)},n.list=function(e){return e.classList?Array.prototype.slice.apply(e.classList):e.className.split(" ")}},{}],3:[function(e,t,n){"use strict";function i(e,t){return window.getComputedStyle(e)[t]}function r(e,t,n){return"number"==typeof n&&(n=n.toString()+"px"),e.style[t]=n,e}function o(e,t){for(var n in t){var i=t[n];"number"==typeof i&&(i=i.toString()+"px"),e.style[n]=i}return e}var a={};a.e=function(e,t){var n=document.createElement(e);return n.className=t,n},a.appendTo=function(e,t){return t.appendChild(e),e},a.css=function(e,t,n){return"object"==typeof t?o(e,t):void 0===n?i(e,t):r(e,t,n)},a.matches=function(e,t){return void 0!==e.matches?e.matches(t):void 0!==e.matchesSelector?e.matchesSelector(t):void 0!==e.webkitMatchesSelector?e.webkitMatchesSelector(t):void 0!==e.mozMatchesSelector?e.mozMatchesSelector(t):void 0!==e.msMatchesSelector?e.msMatchesSelector(t):void 0},a.remove=function(e){void 0!==e.remove?e.remove():e.parentNode&&e.parentNode.removeChild(e)},a.queryChildren=function(e,t){return Array.prototype.filter.call(e.childNodes,function(e){return a.matches(e,t)})},t.exports=a},{}],4:[function(e,t,n){"use strict";var i=function(e){this.element=e,this.events={}};i.prototype.bind=function(e,t){void 0===this.events[e]&&(this.events[e]=[]),this.events[e].push(t),this.element.addEventListener(e,t,!1)},i.prototype.unbind=function(e,t){var n=void 0!==t;this.events[e]=this.events[e].filter(function(i){return!(!n||i===t)||(this.element.removeEventListener(e,i,!1),!1)},this)},i.prototype.unbindAll=function(){for(var e in this.events)this.unbind(e)};var r=function(){this.eventElements=[]};r.prototype.eventElement=function(e){var t=this.eventElements.filter(function(t){return t.element===e})[0];return void 0===t&&(t=new i(e),this.eventElements.push(t)),t},r.prototype.bind=function(e,t,n){this.eventElement(e).bind(t,n)},r.prototype.unbind=function(e,t,n){this.eventElement(e).unbind(t,n)},r.prototype.unbindAll=function(){for(var e=0;e<this.eventElements.length;e++)this.eventElements[e].unbindAll()},r.prototype.once=function(e,t,n){var i=this.eventElement(e),r=function(e){i.unbind(t,r),n(e)};i.bind(t,r)},t.exports=r},{}],5:[function(e,t,n){"use strict";t.exports=function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return function(){return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}}()},{}],6:[function(e,t,n){"use strict";var i=e("./class"),r=e("./dom"),o=n.toInt=function(e){return parseInt(e,10)||0},a=n.clone=function(e){if(null===e)return null;if(e.constructor===Array)return e.map(a);if("object"==typeof e){var t={};for(var n in e)t[n]=a(e[n]);return t}return e};n.extend=function(e,t){var n=a(e);for(var i in t)n[i]=a(t[i]);return n},n.isEditable=function(e){return r.matches(e,"input,[contenteditable]")||r.matches(e,"select,[contenteditable]")||r.matches(e,"textarea,[contenteditable]")||r.matches(e,"button,[contenteditable]")},n.removePsClasses=function(e){for(var t=i.list(e),n=0;n<t.length;n++){var r=t[n];0===r.indexOf("ps-")&&i.remove(e,r)}},n.outerWidth=function(e){return o(r.css(e,"width"))+o(r.css(e,"paddingLeft"))+o(r.css(e,"paddingRight"))+o(r.css(e,"borderLeftWidth"))+o(r.css(e,"borderRightWidth"))},n.startScrolling=function(e,t){i.add(e,"ps-in-scrolling"),void 0!==t?i.add(e,"ps-"+t):(i.add(e,"ps-x"),i.add(e,"ps-y"))},n.stopScrolling=function(e,t){i.remove(e,"ps-in-scrolling"),void 0!==t?i.remove(e,"ps-"+t):(i.remove(e,"ps-x"),i.remove(e,"ps-y"))},n.env={isWebKit:"WebkitAppearance"in document.documentElement.style,supportsTouch:"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch,supportsIePointer:null!==window.navigator.msMaxTouchPoints}},{"./class":2,"./dom":3}],7:[function(e,t,n){"use strict";var i=e("./plugin/destroy"),r=e("./plugin/initialize"),o=e("./plugin/update");t.exports={initialize:r,update:o,destroy:i}},{"./plugin/destroy":9,"./plugin/initialize":17,"./plugin/update":21}],8:[function(e,t,n){"use strict";t.exports={handlers:["click-rail","drag-scrollbar","keyboard","wheel","touch"],maxScrollbarLength:null,minScrollbarLength:null,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0,suppressScrollX:!1,suppressScrollY:!1,swipePropagation:!0,useBothWheelAxes:!1,wheelPropagation:!1,wheelSpeed:1,theme:"default"}},{}],9:[function(e,t,n){"use strict";var i=e("../lib/helper"),r=e("../lib/dom"),o=e("./instances");t.exports=function(e){var t=o.get(e);t&&(t.event.unbindAll(),r.remove(t.scrollbarX),r.remove(t.scrollbarY),r.remove(t.scrollbarXRail),r.remove(t.scrollbarYRail),i.removePsClasses(e),o.remove(e))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18}],10:[function(e,t,n){"use strict";function i(e,t){function n(e){return e.getBoundingClientRect()}var i=function(e){e.stopPropagation()};t.settings.stopPropagationOnClick&&t.event.bind(t.scrollbarY,"click",i),t.event.bind(t.scrollbarYRail,"click",function(i){var o=r.toInt(t.scrollbarYHeight/2),l=t.railYRatio*(i.pageY-window.pageYOffset-n(t.scrollbarYRail).top-o)/(t.railYRatio*(t.railYHeight-t.scrollbarYHeight));l<0?l=0:l>1&&(l=1),s(e,"top",(t.contentHeight-t.containerHeight)*l),a(e),i.stopPropagation()}),t.settings.stopPropagationOnClick&&t.event.bind(t.scrollbarX,"click",i),t.event.bind(t.scrollbarXRail,"click",function(i){var o=r.toInt(t.scrollbarXWidth/2),l=t.railXRatio*(i.pageX-window.pageXOffset-n(t.scrollbarXRail).left-o)/(t.railXRatio*(t.railXWidth-t.scrollbarXWidth));l<0?l=0:l>1&&(l=1),s(e,"left",(t.contentWidth-t.containerWidth)*l-t.negativeScrollAdjustment),a(e),i.stopPropagation()})}var r=e("../../lib/helper"),o=e("../instances"),a=e("../update-geometry"),s=e("../update-scroll");t.exports=function(e){i(e,o.get(e))}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],11:[function(e,t,n){"use strict";function i(e,t){function n(n){var r=i+n*t.railXRatio,a=Math.max(0,t.scrollbarXRail.getBoundingClientRect().left)+t.railXRatio*(t.railXWidth-t.scrollbarXWidth);t.scrollbarXLeft=r<0?0:r>a?a:r;var s=o.toInt(t.scrollbarXLeft*(t.contentWidth-t.containerWidth)/(t.containerWidth-t.railXRatio*t.scrollbarXWidth))-t.negativeScrollAdjustment;c(e,"left",s)}var i=null,r=null,s=function(t){n(t.pageX-r),l(e),t.stopPropagation(),t.preventDefault()},u=function(){o.stopScrolling(e,"x"),t.event.unbind(t.ownerDocument,"mousemove",s)};t.event.bind(t.scrollbarX,"mousedown",function(n){r=n.pageX,i=o.toInt(a.css(t.scrollbarX,"left"))*t.railXRatio,o.startScrolling(e,"x"),t.event.bind(t.ownerDocument,"mousemove",s),t.event.once(t.ownerDocument,"mouseup",u),n.stopPropagation(),n.preventDefault()})}function r(e,t){function n(n){var r=i+n*t.railYRatio,a=Math.max(0,t.scrollbarYRail.getBoundingClientRect().top)+t.railYRatio*(t.railYHeight-t.scrollbarYHeight);t.scrollbarYTop=r<0?0:r>a?a:r;var s=o.toInt(t.scrollbarYTop*(t.contentHeight-t.containerHeight)/(t.containerHeight-t.railYRatio*t.scrollbarYHeight));c(e,"top",s)}var i=null,r=null,s=function(t){n(t.pageY-r),l(e),t.stopPropagation(),t.preventDefault()},u=function(){o.stopScrolling(e,"y"),t.event.unbind(t.ownerDocument,"mousemove",s)};t.event.bind(t.scrollbarY,"mousedown",function(n){r=n.pageY,i=o.toInt(a.css(t.scrollbarY,"top"))*t.railYRatio,o.startScrolling(e,"y"),t.event.bind(t.ownerDocument,"mousemove",s),t.event.once(t.ownerDocument,"mouseup",u),n.stopPropagation(),n.preventDefault()})}var o=e("../../lib/helper"),a=e("../../lib/dom"),s=e("../instances"),l=e("../update-geometry"),c=e("../update-scroll");t.exports=function(e){var t=s.get(e);i(e,t),r(e,t)}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],12:[function(e,t,n){"use strict";function i(e,t){function n(n,i){var r=e.scrollTop;if(0===n){if(!t.scrollbarYActive)return!1;if(0===r&&i>0||r>=t.contentHeight-t.containerHeight&&i<0)return!t.settings.wheelPropagation}var o=e.scrollLeft;if(0===i){if(!t.scrollbarXActive)return!1;if(0===o&&n<0||o>=t.contentWidth-t.containerWidth&&n>0)return!t.settings.wheelPropagation}return!0}var i=!1;t.event.bind(e,"mouseenter",function(){i=!0}),t.event.bind(e,"mouseleave",function(){i=!1});var a=!1;t.event.bind(t.ownerDocument,"keydown",function(c){if(!c.isDefaultPrevented||!c.isDefaultPrevented()){var u=o.matches(t.scrollbarX,":focus")||o.matches(t.scrollbarY,":focus");if(i||u){var d=document.activeElement?document.activeElement:t.ownerDocument.activeElement;if(d){if("IFRAME"===d.tagName)d=d.contentDocument.activeElement;else for(;d.shadowRoot;)d=d.shadowRoot.activeElement;if(r.isEditable(d))return}var h=0,p=0;switch(c.which){case 37:h=-30;break;case 38:p=30;break;case 39:h=30;break;case 40:p=-30;break;case 33:p=90;break;case 32:p=c.shiftKey?90:-90;break;case 34:p=-90;break;case 35:p=c.ctrlKey?-t.contentHeight:-t.containerHeight;break;case 36:p=c.ctrlKey?e.scrollTop:t.containerHeight;break;default:return}l(e,"top",e.scrollTop-p),l(e,"left",e.scrollLeft+h),s(e),(a=n(h,p))&&c.preventDefault()}}})}var r=e("../../lib/helper"),o=e("../../lib/dom"),a=e("../instances"),s=e("../update-geometry"),l=e("../update-scroll");t.exports=function(e){i(e,a.get(e))}},{"../../lib/dom":3,"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],13:[function(e,t,n){"use strict";function i(e,t){function n(n,i){var r=e.scrollTop;if(0===n){if(!t.scrollbarYActive)return!1;if(0===r&&i>0||r>=t.contentHeight-t.containerHeight&&i<0)return!t.settings.wheelPropagation}var o=e.scrollLeft;if(0===i){if(!t.scrollbarXActive)return!1;if(0===o&&n<0||o>=t.contentWidth-t.containerWidth&&n>0)return!t.settings.wheelPropagation}return!0}function i(e){var t=e.deltaX,n=-1*e.deltaY;return void 0!==t&&void 0!==n||(t=-1*e.wheelDeltaX/6,n=e.wheelDeltaY/6),e.deltaMode&&1===e.deltaMode&&(t*=10,n*=10),t!==t&&n!==n&&(t=0,n=e.wheelDelta),[t,n]}function r(t,n){var i=e.querySelector("textarea:hover, .ps-child:hover");if(i){if("TEXTAREA"!==i.tagName&&!window.getComputedStyle(i).overflow.match(/(scroll|auto)/))return!1;var r=i.scrollHeight-i.clientHeight;if(r>0&&!(0===i.scrollTop&&n>0||i.scrollTop===r&&n<0))return!0;var o=i.scrollLeft-i.clientWidth;if(o>0&&!(0===i.scrollLeft&&t<0||i.scrollLeft===o&&t>0))return!0}return!1}function s(s){var c=i(s),u=c[0],d=c[1];r(u,d)||(l=!1,t.settings.useBothWheelAxes?t.scrollbarYActive&&!t.scrollbarXActive?(d?a(e,"top",e.scrollTop-d*t.settings.wheelSpeed):a(e,"top",e.scrollTop+u*t.settings.wheelSpeed),l=!0):t.scrollbarXActive&&!t.scrollbarYActive&&(u?a(e,"left",e.scrollLeft+u*t.settings.wheelSpeed):a(e,"left",e.scrollLeft-d*t.settings.wheelSpeed),l=!0):(a(e,"top",e.scrollTop-d*t.settings.wheelSpeed),a(e,"left",e.scrollLeft+u*t.settings.wheelSpeed)),o(e),(l=l||n(u,d))&&(s.stopPropagation(),s.preventDefault()))}var l=!1;void 0!==window.onwheel?t.event.bind(e,"wheel",s):void 0!==window.onmousewheel&&t.event.bind(e,"mousewheel",s)}var r=e("../instances"),o=e("../update-geometry"),a=e("../update-scroll");t.exports=function(e){i(e,r.get(e))}},{"../instances":18,"../update-geometry":19,"../update-scroll":20}],14:[function(e,t,n){"use strict";function i(e,t){t.event.bind(e,"scroll",function(){o(e)})}var r=e("../instances"),o=e("../update-geometry");t.exports=function(e){i(e,r.get(e))}},{"../instances":18,"../update-geometry":19}],15:[function(e,t,n){"use strict";function i(e,t){function n(){var e=window.getSelection?window.getSelection():document.getSelection?document.getSelection():"";return 0===e.toString().length?null:e.getRangeAt(0).commonAncestorContainer}function i(){c||(c=setInterval(function(){o.get(e)?(s(e,"top",e.scrollTop+u.top),s(e,"left",e.scrollLeft+u.left),a(e)):clearInterval(c)},50))}function l(){c&&(clearInterval(c),c=null),r.stopScrolling(e)}var c=null,u={top:0,left:0},d=!1;t.event.bind(t.ownerDocument,"selectionchange",function(){e.contains(n())?d=!0:(d=!1,l())}),t.event.bind(window,"mouseup",function(){d&&(d=!1,l())}),t.event.bind(window,"mousemove",function(t){if(d){var n={x:t.pageX,y:t.pageY},o={left:e.offsetLeft,right:e.offsetLeft+e.offsetWidth,top:e.offsetTop,bottom:e.offsetTop+e.offsetHeight};n.x<o.left+3?(u.left=-5,r.startScrolling(e,"x")):n.x>o.right-3?(u.left=5,r.startScrolling(e,"x")):u.left=0,n.y<o.top+3?(u.top=o.top+3-n.y<5?-5:-20,r.startScrolling(e,"y")):n.y>o.bottom-3?(u.top=n.y-o.bottom+3<5?5:20,r.startScrolling(e,"y")):u.top=0,0===u.top&&0===u.left?l():i()}})}var r=e("../../lib/helper"),o=e("../instances"),a=e("../update-geometry"),s=e("../update-scroll");t.exports=function(e){i(e,o.get(e))}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],16:[function(e,t,n){"use strict";function i(e,t,n,i){function r(n,i){var r=e.scrollTop,o=e.scrollLeft,a=Math.abs(n),s=Math.abs(i);if(s>a){if(i<0&&r===t.contentHeight-t.containerHeight||i>0&&0===r)return!t.settings.swipePropagation}else if(a>s&&(n<0&&o===t.contentWidth-t.containerWidth||n>0&&0===o))return!t.settings.swipePropagation;return!0}function l(t,n){s(e,"top",e.scrollTop-n),s(e,"left",e.scrollLeft-t),a(e)}function c(){_=!0}function u(){_=!1}function d(e){return e.targetTouches?e.targetTouches[0]:e}function h(e){return!(!e.targetTouches||1!==e.targetTouches.length)||!(!e.pointerType||"mouse"===e.pointerType||e.pointerType===e.MSPOINTER_TYPE_MOUSE)}function p(e){if(h(e)){w=!0;var t=d(e);g.pageX=t.pageX,g.pageY=t.pageY,v=(new Date).getTime(),null!==y&&clearInterval(y),e.stopPropagation()}}function f(e){if(!w&&t.settings.swipePropagation&&p(e),!_&&w&&h(e)){var n=d(e),i={pageX:n.pageX,pageY:n.pageY},o=i.pageX-g.pageX,a=i.pageY-g.pageY;l(o,a),g=i;var s=(new Date).getTime(),c=s-v;c>0&&(b.x=o/c,b.y=a/c,v=s),r(o,a)&&(e.stopPropagation(),e.preventDefault())}}function m(){!_&&w&&(w=!1,clearInterval(y),y=setInterval(function(){o.get(e)?Math.abs(b.x)<.01&&Math.abs(b.y)<.01?clearInterval(y):(l(30*b.x,30*b.y),b.x*=.8,b.y*=.8):clearInterval(y)},10))}var g={},v=0,b={},y=null,_=!1,w=!1;n&&(t.event.bind(window,"touchstart",c),t.event.bind(window,"touchend",u),t.event.bind(e,"touchstart",p),t.event.bind(e,"touchmove",f),t.event.bind(e,"touchend",m)),i&&(window.PointerEvent?(t.event.bind(window,"pointerdown",c),t.event.bind(window,"pointerup",u),t.event.bind(e,"pointerdown",p),t.event.bind(e,"pointermove",f),t.event.bind(e,"pointerup",m)):window.MSPointerEvent&&(t.event.bind(window,"MSPointerDown",c),t.event.bind(window,"MSPointerUp",u),t.event.bind(e,"MSPointerDown",p),t.event.bind(e,"MSPointerMove",f),t.event.bind(e,"MSPointerUp",m)))}var r=e("../../lib/helper"),o=e("../instances"),a=e("../update-geometry"),s=e("../update-scroll");t.exports=function(e){(r.env.supportsTouch||r.env.supportsIePointer)&&i(e,o.get(e),r.env.supportsTouch,r.env.supportsIePointer)}},{"../../lib/helper":6,"../instances":18,"../update-geometry":19,"../update-scroll":20}],17:[function(e,t,n){"use strict";var i=e("../lib/helper"),r=e("../lib/class"),o=e("./instances"),a=e("./update-geometry"),s={"click-rail":e("./handler/click-rail"),"drag-scrollbar":e("./handler/drag-scrollbar"),keyboard:e("./handler/keyboard"),wheel:e("./handler/mouse-wheel"),touch:e("./handler/touch"),selection:e("./handler/selection")},l=e("./handler/native-scroll");t.exports=function(e,t){t="object"==typeof t?t:{},r.add(e,"ps-container");var n=o.add(e);n.settings=i.extend(n.settings,t),r.add(e,"ps-theme-"+n.settings.theme),n.settings.handlers.forEach(function(t){s[t](e)}),l(e),a(e)}},{"../lib/class":2,"../lib/helper":6,"./handler/click-rail":10,"./handler/drag-scrollbar":11,"./handler/keyboard":12,"./handler/mouse-wheel":13,"./handler/native-scroll":14,"./handler/selection":15,"./handler/touch":16,"./instances":18,"./update-geometry":19}],18:[function(e,t,n){"use strict";function i(e){function t(){l.add(e,"ps-focus")}function n(){l.remove(e,"ps-focus")}var i=this;i.settings=s.clone(c),i.containerWidth=null,i.containerHeight=null,i.contentWidth=null,i.contentHeight=null,i.isRtl="rtl"===u.css(e,"direction"),i.isNegativeScroll=function(){var t=e.scrollLeft,n=null;return e.scrollLeft=-1,n=e.scrollLeft<0,e.scrollLeft=t,n}(),i.negativeScrollAdjustment=i.isNegativeScroll?e.scrollWidth-e.clientWidth:0,i.event=new d,i.ownerDocument=e.ownerDocument||document,i.scrollbarXRail=u.appendTo(u.e("div","ps-scrollbar-x-rail"),e),i.scrollbarX=u.appendTo(u.e("div","ps-scrollbar-x"),i.scrollbarXRail),i.scrollbarX.setAttribute("tabindex",0),i.event.bind(i.scrollbarX,"focus",t),i.event.bind(i.scrollbarX,"blur",n),i.scrollbarXActive=null,i.scrollbarXWidth=null,i.scrollbarXLeft=null,i.scrollbarXBottom=s.toInt(u.css(i.scrollbarXRail,"bottom")),i.isScrollbarXUsingBottom=i.scrollbarXBottom===i.scrollbarXBottom,i.scrollbarXTop=i.isScrollbarXUsingBottom?null:s.toInt(u.css(i.scrollbarXRail,"top")),i.railBorderXWidth=s.toInt(u.css(i.scrollbarXRail,"borderLeftWidth"))+s.toInt(u.css(i.scrollbarXRail,"borderRightWidth")),u.css(i.scrollbarXRail,"display","block"),i.railXMarginWidth=s.toInt(u.css(i.scrollbarXRail,"marginLeft"))+s.toInt(u.css(i.scrollbarXRail,"marginRight")),u.css(i.scrollbarXRail,"display",""),i.railXWidth=null,i.railXRatio=null,i.scrollbarYRail=u.appendTo(u.e("div","ps-scrollbar-y-rail"),e),i.scrollbarY=u.appendTo(u.e("div","ps-scrollbar-y"),i.scrollbarYRail),i.scrollbarY.setAttribute("tabindex",0),i.event.bind(i.scrollbarY,"focus",t),i.event.bind(i.scrollbarY,"blur",n),i.scrollbarYActive=null,i.scrollbarYHeight=null,i.scrollbarYTop=null,i.scrollbarYRight=s.toInt(u.css(i.scrollbarYRail,"right")),i.isScrollbarYUsingRight=i.scrollbarYRight===i.scrollbarYRight,i.scrollbarYLeft=i.isScrollbarYUsingRight?null:s.toInt(u.css(i.scrollbarYRail,"left")),i.scrollbarYOuterWidth=i.isRtl?s.outerWidth(i.scrollbarY):null,i.railBorderYWidth=s.toInt(u.css(i.scrollbarYRail,"borderTopWidth"))+s.toInt(u.css(i.scrollbarYRail,"borderBottomWidth")),u.css(i.scrollbarYRail,"display","block"),i.railYMarginHeight=s.toInt(u.css(i.scrollbarYRail,"marginTop"))+s.toInt(u.css(i.scrollbarYRail,"marginBottom")),u.css(i.scrollbarYRail,"display",""),i.railYHeight=null,i.railYRatio=null}function r(e){return e.getAttribute("data-ps-id")}function o(e,t){e.setAttribute("data-ps-id",t)}function a(e){e.removeAttribute("data-ps-id")}var s=e("../lib/helper"),l=e("../lib/class"),c=e("./default-setting"),u=e("../lib/dom"),d=e("../lib/event-manager"),h=e("../lib/guid"),p={};n.add=function(e){var t=h();return o(e,t),p[t]=new i(e),p[t]},n.remove=function(e){delete p[r(e)],a(e)},n.get=function(e){return p[r(e)]}},{"../lib/class":2,"../lib/dom":3,"../lib/event-manager":4,"../lib/guid":5,"../lib/helper":6,"./default-setting":8}],19:[function(e,t,n){"use strict";function i(e,t){return e.settings.minScrollbarLength&&(t=Math.max(t,e.settings.minScrollbarLength)),e.settings.maxScrollbarLength&&(t=Math.min(t,e.settings.maxScrollbarLength)),t}function r(e,t){var n={width:t.railXWidth};t.isRtl?n.left=t.negativeScrollAdjustment+e.scrollLeft+t.containerWidth-t.contentWidth:n.left=e.scrollLeft,t.isScrollbarXUsingBottom?n.bottom=t.scrollbarXBottom-e.scrollTop:n.top=t.scrollbarXTop+e.scrollTop,s.css(t.scrollbarXRail,n);var i={top:e.scrollTop,height:t.railYHeight};t.isScrollbarYUsingRight?t.isRtl?i.right=t.contentWidth-(t.negativeScrollAdjustment+e.scrollLeft)-t.scrollbarYRight-t.scrollbarYOuterWidth:i.right=t.scrollbarYRight-e.scrollLeft:t.isRtl?i.left=t.negativeScrollAdjustment+e.scrollLeft+2*t.containerWidth-t.contentWidth-t.scrollbarYLeft-t.scrollbarYOuterWidth:i.left=t.scrollbarYLeft+e.scrollLeft,s.css(t.scrollbarYRail,i),s.css(t.scrollbarX,{left:t.scrollbarXLeft,width:t.scrollbarXWidth-t.railBorderXWidth}),s.css(t.scrollbarY,{top:t.scrollbarYTop,height:t.scrollbarYHeight-t.railBorderYWidth})}var o=e("../lib/helper"),a=e("../lib/class"),s=e("../lib/dom"),l=e("./instances"),c=e("./update-scroll");t.exports=function(e){var t=l.get(e);t.containerWidth=e.clientWidth,t.containerHeight=e.clientHeight,t.contentWidth=e.scrollWidth,t.contentHeight=e.scrollHeight;var n;e.contains(t.scrollbarXRail)||((n=s.queryChildren(e,".ps-scrollbar-x-rail")).length>0&&n.forEach(function(e){s.remove(e)}),s.appendTo(t.scrollbarXRail,e)),e.contains(t.scrollbarYRail)||((n=s.queryChildren(e,".ps-scrollbar-y-rail")).length>0&&n.forEach(function(e){s.remove(e)}),s.appendTo(t.scrollbarYRail,e)),!t.settings.suppressScrollX&&t.containerWidth+t.settings.scrollXMarginOffset<t.contentWidth?(t.scrollbarXActive=!0,t.railXWidth=t.containerWidth-t.railXMarginWidth,t.railXRatio=t.containerWidth/t.railXWidth,t.scrollbarXWidth=i(t,o.toInt(t.railXWidth*t.containerWidth/t.contentWidth)),t.scrollbarXLeft=o.toInt((t.negativeScrollAdjustment+e.scrollLeft)*(t.railXWidth-t.scrollbarXWidth)/(t.contentWidth-t.containerWidth))):t.scrollbarXActive=!1,!t.settings.suppressScrollY&&t.containerHeight+t.settings.scrollYMarginOffset<t.contentHeight?(t.scrollbarYActive=!0,t.railYHeight=t.containerHeight-t.railYMarginHeight,t.railYRatio=t.containerHeight/t.railYHeight,t.scrollbarYHeight=i(t,o.toInt(t.railYHeight*t.containerHeight/t.contentHeight)),t.scrollbarYTop=o.toInt(e.scrollTop*(t.railYHeight-t.scrollbarYHeight)/(t.contentHeight-t.containerHeight))):t.scrollbarYActive=!1,t.scrollbarXLeft>=t.railXWidth-t.scrollbarXWidth&&(t.scrollbarXLeft=t.railXWidth-t.scrollbarXWidth),t.scrollbarYTop>=t.railYHeight-t.scrollbarYHeight&&(t.scrollbarYTop=t.railYHeight-t.scrollbarYHeight),r(e,t),t.scrollbarXActive?a.add(e,"ps-active-x"):(a.remove(e,"ps-active-x"),t.scrollbarXWidth=0,t.scrollbarXLeft=0,c(e,"left",0)),t.scrollbarYActive?a.add(e,"ps-active-y"):(a.remove(e,"ps-active-y"),t.scrollbarYHeight=0,t.scrollbarYTop=0,c(e,"top",0))}},{"../lib/class":2,"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-scroll":20}],20:[function(e,t,n){"use strict";var i,r,o=e("./instances"),a=document.createEvent("Event"),s=document.createEvent("Event"),l=document.createEvent("Event"),c=document.createEvent("Event"),u=document.createEvent("Event"),d=document.createEvent("Event"),h=document.createEvent("Event"),p=document.createEvent("Event"),f=document.createEvent("Event"),m=document.createEvent("Event");a.initEvent("ps-scroll-up",!0,!0),s.initEvent("ps-scroll-down",!0,!0),l.initEvent("ps-scroll-left",!0,!0),c.initEvent("ps-scroll-right",!0,!0),u.initEvent("ps-scroll-y",!0,!0),d.initEvent("ps-scroll-x",!0,!0),h.initEvent("ps-x-reach-start",!0,!0),p.initEvent("ps-x-reach-end",!0,!0),f.initEvent("ps-y-reach-start",!0,!0),m.initEvent("ps-y-reach-end",!0,!0),t.exports=function(e,t,n){if(void 0===e)throw"You must provide an element to the update-scroll function";if(void 0===t)throw"You must provide an axis to the update-scroll function";if(void 0===n)throw"You must provide a value to the update-scroll function";"top"===t&&n<=0&&(e.scrollTop=n=0,e.dispatchEvent(f)),"left"===t&&n<=0&&(e.scrollLeft=n=0,e.dispatchEvent(h));var g=o.get(e);"top"===t&&n>=g.contentHeight-g.containerHeight&&((n=g.contentHeight-g.containerHeight)-e.scrollTop<=1?n=e.scrollTop:e.scrollTop=n,e.dispatchEvent(m)),"left"===t&&n>=g.contentWidth-g.containerWidth&&((n=g.contentWidth-g.containerWidth)-e.scrollLeft<=1?n=e.scrollLeft:e.scrollLeft=n,e.dispatchEvent(p)),i||(i=e.scrollTop),r||(r=e.scrollLeft),"top"===t&&n<i&&e.dispatchEvent(a),"top"===t&&n>i&&e.dispatchEvent(s),"left"===t&&n<r&&e.dispatchEvent(l),"left"===t&&n>r&&e.dispatchEvent(c),"top"===t&&(e.scrollTop=i=n,e.dispatchEvent(u)),"left"===t&&(e.scrollLeft=r=n,e.dispatchEvent(d))}},{"./instances":18}],21:[function(e,t,n){"use strict";var i=e("../lib/helper"),r=e("../lib/dom"),o=e("./instances"),a=e("./update-geometry"),s=e("./update-scroll");t.exports=function(e){var t=o.get(e);t&&(t.negativeScrollAdjustment=t.isNegativeScroll?e.scrollWidth-e.clientWidth:0,r.css(t.scrollbarXRail,"display","block"),r.css(t.scrollbarYRail,"display","block"),t.railXMarginWidth=i.toInt(r.css(t.scrollbarXRail,"marginLeft"))+i.toInt(r.css(t.scrollbarXRail,"marginRight")),t.railYMarginHeight=i.toInt(r.css(t.scrollbarYRail,"marginTop"))+i.toInt(r.css(t.scrollbarYRail,"marginBottom")),r.css(t.scrollbarXRail,"display","none"),r.css(t.scrollbarYRail,"display","none"),a(e),s(e,"top",e.scrollTop),s(e,"left",e.scrollLeft),r.css(t.scrollbarXRail,"display",""),r.css(t.scrollbarYRail,"display",""))}},{"../lib/dom":3,"../lib/helper":6,"./instances":18,"./update-geometry":19,"./update-scroll":20}]},{},[1]),function(e){"use strict";"function"==typeof define&&define.amd?define(e):"undefined"!=typeof module&&void 0!==module.exports?module.exports=e():"undefined"!=typeof Package?Sortable=e():window.Sortable=e()}(function(){"use strict";function e(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be HTMLElement, and not "+{}.toString.call(e);this.el=e,this.options=t=v({},t),e[L]=this;var n={group:Math.random(),sort:!0,disabled:!1,store:null,handle:null,scroll:!0,scrollSensitivity:30,scrollSpeed:10,draggable:/[uo]l/i.test(e.nodeName)?"li":">*",ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",ignore:"a, img",filter:null,animation:0,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1};for(var i in n)!(i in t)&&(t[i]=n[i]);V(t);for(var o in this)"_"===o.charAt(0)&&(this[o]=this[o].bind(this));this.nativeDraggable=!t.forceFallback&&H,r(e,"mousedown",this._onTapStart),r(e,"touchstart",this._onTapStart),this.nativeDraggable&&(r(e,"dragover",this),r(e,"dragenter",this)),z.push(this._onDragOver),t.store&&this.sort(t.store.get(this))}function t(e){w&&w.state!==e&&(s(w,"display",e?"none":""),!e&&w.state&&A.insertBefore(w,b),w.state=e)}function n(e,t,n){if(e){n=n||B;var i=(t=t.split(".")).shift().toUpperCase(),r=new RegExp("\\s("+t.join("|")+")(?=\\s)","g");do{if(">*"===i&&e.parentNode===n||(""===i||e.nodeName.toUpperCase()==i)&&(!t.length||((" "+e.className+" ").match(r)||[]).length==t.length))return e}while(e!==n&&(e=e.parentNode))}return null}function i(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.preventDefault()}function r(e,t,n){e.addEventListener(t,n,!1)}function o(e,t,n){e.removeEventListener(t,n,!1)}function a(e,t,n){if(e)if(e.classList)e.classList[n?"add":"remove"](t);else{var i=(" "+e.className+" ").replace(R," ").replace(" "+t+" "," ");e.className=(i+(n?" "+t:"")).replace(R," ")}}function s(e,t,n){var i=e&&e.style;if(i){if(void 0===n)return B.defaultView&&B.defaultView.getComputedStyle?n=B.defaultView.getComputedStyle(e,""):e.currentStyle&&(n=e.currentStyle),void 0===t?n:n[t];t in i||(t="-webkit-"+t),i[t]=n+("string"==typeof n?"":"px")}}function l(e,t,n){if(e){var i=e.getElementsByTagName(t),r=0,o=i.length;if(n)for(;r<o;r++)n(i[r],r);return i}return[]}function c(e,t,n,i,r,o,a){var s=B.createEvent("Event"),l=(e||t[L]).options,c="on"+n.charAt(0).toUpperCase()+n.substr(1);s.initEvent(n,!0,!0),s.to=t,s.from=r||t,s.item=i||t,s.clone=w,s.oldIndex=o,s.newIndex=a,t.dispatchEvent(s),l[c]&&l[c].call(e,s)}function u(e,t,n,i,r,o){var a,s,l=e[L],c=l.options.onMove;return(a=B.createEvent("Event")).initEvent("move",!0,!0),a.to=t,a.from=e,a.dragged=n,a.draggedRect=i,a.related=r||t,a.relatedRect=o||t.getBoundingClientRect(),e.dispatchEvent(a),c&&(s=c.call(l,a)),s}function d(e){e.draggable=!1}function h(){j=!1}function p(e,t){var n=e.lastElementChild,i=n.getBoundingClientRect();return(t.clientY-(i.top+i.height)>5||t.clientX-(i.right+i.width)>5)&&n}function f(e){for(var t=e.tagName+e.className+e.src+e.href+e.textContent,n=t.length,i=0;n--;)i+=t.charCodeAt(n);return i.toString(36)}function m(e){var t=0;if(!e||!e.parentNode)return-1;for(;e&&(e=e.previousElementSibling);)"TEMPLATE"!==e.nodeName.toUpperCase()&&t++;return t}function g(e,t){var n,i;return function(){void 0===n&&(n=arguments,i=this,setTimeout(function(){1===n.length?e.call(i,n[0]):e.apply(i,n),n=void 0},t))}}function v(e,t){if(e&&t)for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}var b,y,_,w,A,C,x,S,E,T,D,I,k,M,P,$,N,O={},R=/\s+/g,L="Sortable"+(new Date).getTime(),G=window,B=G.document,F=G.parseInt,H=!!("draggable"in B.createElement("div")),U=function(e){return e=B.createElement("x"),e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}(),j=!1,W=Math.abs,z=[],q=g(function(e,t,n){if(n&&t.scroll){var i,r,o,a,s=t.scrollSensitivity,l=t.scrollSpeed,c=e.clientX,u=e.clientY,d=window.innerWidth,h=window.innerHeight;if(S!==n&&(x=t.scroll,S=n,!0===x)){x=n;do{if(x.offsetWidth<x.scrollWidth||x.offsetHeight<x.scrollHeight)break}while(x=x.parentNode)}x&&(i=x,r=x.getBoundingClientRect(),o=(W(r.right-c)<=s)-(W(r.left-c)<=s),a=(W(r.bottom-u)<=s)-(W(r.top-u)<=s)),o||a||(a=(h-u<=s)-(u<=s),((o=(d-c<=s)-(c<=s))||a)&&(i=G)),O.vx===o&&O.vy===a&&O.el===i||(O.el=i,O.vx=o,O.vy=a,clearInterval(O.pid),i&&(O.pid=setInterval(function(){i===G?G.scrollTo(G.pageXOffset+o*l,G.pageYOffset+a*l):(a&&(i.scrollTop+=a*l),o&&(i.scrollLeft+=o*l))},24)))}},30),V=function(e){var t=e.group;t&&"object"==typeof t||(t=e.group={name:t}),["pull","put"].forEach(function(e){e in t||(t[e]=!0)}),e.groups=" "+t.name+(t.put.join?" "+t.put.join(" "):"")+" "};return e.prototype={constructor:e,_onTapStart:function(e){var t=this,i=this.el,r=this.options,o=e.type,a=e.touches&&e.touches[0],s=(a||e).target,l=s,u=r.filter;if(!("mousedown"===o&&0!==e.button||r.disabled)&&(s=n(s,r.draggable,i))){if(I=m(s),"function"==typeof u){if(u.call(this,e,s,this))return c(t,l,"filter",s,i,I),void e.preventDefault()}else if(u&&(u=u.split(",").some(function(e){if(e=n(l,e.trim(),i))return c(t,e,"filter",s,i,I),!0})))return void e.preventDefault();r.handle&&!n(l,r.handle,i)||this._prepareDragStart(e,a,s)}},_prepareDragStart:function(e,t,n){var i,o=this,s=o.el,c=o.options,u=s.ownerDocument;n&&!b&&n.parentNode===s&&(P=e,A=s,y=(b=n).parentNode,C=b.nextSibling,M=c.group,i=function(){o._disableDelayedDrag(),b.draggable=!0,a(b,o.options.chosenClass,!0),o._triggerDragStart(t)},c.ignore.split(",").forEach(function(e){l(b,e.trim(),d)}),r(u,"mouseup",o._onDrop),r(u,"touchend",o._onDrop),r(u,"touchcancel",o._onDrop),c.delay?(r(u,"mouseup",o._disableDelayedDrag),r(u,"touchend",o._disableDelayedDrag),r(u,"touchcancel",o._disableDelayedDrag),r(u,"mousemove",o._disableDelayedDrag),r(u,"touchmove",o._disableDelayedDrag),o._dragStartTimer=setTimeout(i,c.delay)):i())},_disableDelayedDrag:function(){var e=this.el.ownerDocument;clearTimeout(this._dragStartTimer),o(e,"mouseup",this._disableDelayedDrag),o(e,"touchend",this._disableDelayedDrag),o(e,"touchcancel",this._disableDelayedDrag),o(e,"mousemove",this._disableDelayedDrag),o(e,"touchmove",this._disableDelayedDrag)},_triggerDragStart:function(e){e?(P={target:b,clientX:e.clientX,clientY:e.clientY},this._onDragStart(P,"touch")):this.nativeDraggable?(r(b,"dragend",this),r(A,"dragstart",this._onDragStart)):this._onDragStart(P,!0);try{B.selection?B.selection.empty():window.getSelection().removeAllRanges()}catch(e){}},_dragStarted:function(){A&&b&&(a(b,this.options.ghostClass,!0),e.active=this,c(this,A,"start",b,A,I))},_emulateDragOver:function(){if($){if(this._lastX===$.clientX&&this._lastY===$.clientY)return;this._lastX=$.clientX,this._lastY=$.clientY,U||s(_,"display","none");var e=B.elementFromPoint($.clientX,$.clientY),t=e,n=" "+this.options.group.name,i=z.length;if(t)do{if(t[L]&&t[L].options.groups.indexOf(n)>-1){for(;i--;)z[i]({clientX:$.clientX,clientY:$.clientY,target:e,rootEl:t});break}e=t}while(t=t.parentNode);U||s(_,"display","")}},_onTouchMove:function(t){if(P){e.active||this._dragStarted(),this._appendGhost();var n=t.touches?t.touches[0]:t,i=n.clientX-P.clientX,r=n.clientY-P.clientY,o=t.touches?"translate3d("+i+"px,"+r+"px,0)":"translate("+i+"px,"+r+"px)";N=!0,$=n,s(_,"webkitTransform",o),s(_,"mozTransform",o),s(_,"msTransform",o),s(_,"transform",o),t.preventDefault()}},_appendGhost:function(){if(!_){var e,t=b.getBoundingClientRect(),n=s(b),i=this.options;a(_=b.cloneNode(!0),i.ghostClass,!1),a(_,i.fallbackClass,!0),s(_,"top",t.top-F(n.marginTop,10)),s(_,"left",t.left-F(n.marginLeft,10)),s(_,"width",t.width),s(_,"height",t.height),s(_,"opacity","0.8"),s(_,"position","fixed"),s(_,"zIndex","100000"),s(_,"pointerEvents","none"),i.fallbackOnBody&&B.body.appendChild(_)||A.appendChild(_),e=_.getBoundingClientRect(),s(_,"width",2*t.width-e.width),s(_,"height",2*t.height-e.height)}},_onDragStart:function(e,t){var n=e.dataTransfer,i=this.options;this._offUpEvents(),"clone"==M.pull&&(s(w=b.cloneNode(!0),"display","none"),A.insertBefore(w,b)),t?("touch"===t?(r(B,"touchmove",this._onTouchMove),r(B,"touchend",this._onDrop),r(B,"touchcancel",this._onDrop)):(r(B,"mousemove",this._onTouchMove),r(B,"mouseup",this._onDrop)),this._loopId=setInterval(this._emulateDragOver,50)):(n&&(n.effectAllowed="move",i.setData&&i.setData.call(this,n,b)),r(B,"drop",this),setTimeout(this._dragStarted,0))},_onDragOver:function(e){var i,r,o,a=this.el,l=this.options,c=l.group,d=c.put,f=M===c,m=l.sort;if(void 0!==e.preventDefault&&(e.preventDefault(),!l.dragoverBubble&&e.stopPropagation()),N=!0,M&&!l.disabled&&(f?m||(o=!A.contains(b)):M.pull&&d&&(M.name===c.name||d.indexOf&&~d.indexOf(M.name)))&&(void 0===e.rootEl||e.rootEl===this.el)){if(q(e,l,this.el),j)return;if(i=n(e.target,l.draggable,a),r=b.getBoundingClientRect(),o)return t(!0),void(w||C?A.insertBefore(b,w||C):m||A.appendChild(b));if(0===a.children.length||a.children[0]===_||a===e.target&&(i=p(a,e))){if(i){if(i.animated)return;v=i.getBoundingClientRect()}t(f),!1!==u(A,a,b,r,i,v)&&(b.contains(a)||(a.appendChild(b),y=a),this._animate(r,b),i&&this._animate(v,i))}else if(i&&!i.animated&&i!==b&&void 0!==i.parentNode[L]){E!==i&&(E=i,T=s(i),D=s(i.parentNode));var g,v=i.getBoundingClientRect(),x=v.right-v.left,S=v.bottom-v.top,I=/left|right|inline/.test(T.cssFloat+T.display)||"flex"==D.display&&0===D["flex-direction"].indexOf("row"),k=i.offsetWidth>b.offsetWidth,P=i.offsetHeight>b.offsetHeight,$=(I?(e.clientX-v.left)/x:(e.clientY-v.top)/S)>.5,O=i.nextElementSibling,R=u(A,a,b,r,i,v);if(!1!==R){if(j=!0,setTimeout(h,30),t(f),1===R||-1===R)g=1===R;else if(I){var G=b.offsetTop,B=i.offsetTop;g=G===B?i.previousElementSibling===b&&!k||$&&k:B>G}else g=O!==b&&!P||$&&P;b.contains(a)||(g&&!O?a.appendChild(b):i.parentNode.insertBefore(b,g?O:i)),y=b.parentNode,this._animate(r,b),this._animate(v,i)}}}},_animate:function(e,t){var n=this.options.animation;if(n){var i=t.getBoundingClientRect();s(t,"transition","none"),s(t,"transform","translate3d("+(e.left-i.left)+"px,"+(e.top-i.top)+"px,0)"),t.offsetWidth,s(t,"transition","all "+n+"ms"),s(t,"transform","translate3d(0,0,0)"),clearTimeout(t.animated),t.animated=setTimeout(function(){s(t,"transition",""),s(t,"transform",""),t.animated=!1},n)}},_offUpEvents:function(){var e=this.el.ownerDocument;o(B,"touchmove",this._onTouchMove),o(e,"mouseup",this._onDrop),o(e,"touchend",this._onDrop),o(e,"touchcancel",this._onDrop)},_onDrop:function(t){var n=this.el,i=this.options;clearInterval(this._loopId),clearInterval(O.pid),clearTimeout(this._dragStartTimer),o(B,"mousemove",this._onTouchMove),this.nativeDraggable&&(o(B,"drop",this),o(n,"dragstart",this._onDragStart)),this._offUpEvents(),t&&(N&&(t.preventDefault(),!i.dropBubble&&t.stopPropagation()),_&&_.parentNode.removeChild(_),b&&(this.nativeDraggable&&o(b,"dragend",this),d(b),a(b,this.options.ghostClass,!1),a(b,this.options.chosenClass,!1),A!==y?(k=m(b))>=0&&(c(null,y,"sort",b,A,I,k),c(this,A,"sort",b,A,I,k),c(null,y,"add",b,A,I,k),c(this,A,"remove",b,A,I,k)):(w&&w.parentNode.removeChild(w),b.nextSibling!==C&&(k=m(b))>=0&&(c(this,A,"update",b,A,I,k),c(this,A,"sort",b,A,I,k))),e.active&&(null!==k&&-1!==k||(k=I),c(this,A,"end",b,A,I,k),this.save())),A=b=y=_=C=w=x=S=P=$=N=k=E=T=M=e.active=null)},handleEvent:function(e){var t=e.type;"dragover"===t||"dragenter"===t?b&&(this._onDragOver(e),i(e)):"drop"!==t&&"dragend"!==t||this._onDrop(e)},toArray:function(){for(var e,t=[],i=this.el.children,r=0,o=i.length,a=this.options;r<o;r++)n(e=i[r],a.draggable,this.el)&&t.push(e.getAttribute(a.dataIdAttr)||f(e));return t},sort:function(e){var t={},i=this.el;this.toArray().forEach(function(e,r){var o=i.children[r];n(o,this.options.draggable,i)&&(t[e]=o)},this),e.forEach(function(e){t[e]&&(i.removeChild(t[e]),i.appendChild(t[e]))})},save:function(){var e=this.options.store;e&&e.set(this)},closest:function(e,t){return n(e,t||this.options.draggable,this.el)},option:function(e,t){var n=this.options;if(void 0===t)return n[e];n[e]=t,"group"===e&&V(n)},destroy:function(){var e=this.el;e[L]=null,o(e,"mousedown",this._onTapStart),o(e,"touchstart",this._onTapStart),this.nativeDraggable&&(o(e,"dragover",this),o(e,"dragenter",this)),Array.prototype.forEach.call(e.querySelectorAll("[draggable]"),function(e){e.removeAttribute("draggable")}),z.splice(z.indexOf(this._onDragOver),1),this._onDrop(),this.el=e=null}},e.utils={on:r,off:o,css:s,find:l,is:function(e,t){return!!n(e,t,e)},extend:v,throttle:g,closest:n,toggleClass:a,index:m},e.create=function(t,n){return new e(t,n)},e.version="1.4.2",e}),function(e){"use strict";"function"==typeof define&&define.amd?define(["angular","./Sortable"],e):"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?(require("angular"),e(angular,require("./Sortable")),module.exports="ng-sortable"):window.angular&&window.Sortable&&e(angular,Sortable)}(function(e,t){"use strict";var n="Sortable:ng-sortable";e.module("ng-sortable",[]).constant("ngSortableVersion","0.4.0").constant("ngSortableConfig",{}).directive("ngSortable",["$parse","ngSortableConfig",function(i,r){var o,a,s=function(e,t){var n=[].filter.call(e.childNodes,function(e){return 8===e.nodeType&&-1!==e.nodeValue.indexOf("ngRepeat:")})[0];if(!n)return function(){return null};n=n.nodeValue.match(/ngRepeat:\s*(?:\(.*?,\s*)?([^\s)]+)[\s)]+in\s+([^\s|]+)/);var r=i(n[2]);return function(){return r(t.$parent)||[]}};return{restrict:"AC",scope:{ngSortable:"=?"},link:function(i,l){function c(e,t){var n="on"+e.type.charAt(0).toUpperCase()+e.type.substr(1),i=m();p[n]&&p[n]({model:t||i[e.newIndex],models:i,oldIndex:e.oldIndex,newIndex:e.newIndex})}function u(r){var s=m();if(s){var l=r.oldIndex,c=r.newIndex;if(h!==r.from){var u=r.from[n]();o=u[l],r.clone?(o=e.copy(o),u.splice(t.utils.index(r.clone),0,u.splice(l,1)[0]),r.from.removeChild(r.clone)):u.splice(l,1),s.splice(c,0,o),r.from.insertBefore(r.item,a)}else s.splice(c,0,s.splice(l,1)[0]);i.$apply()}}var d,h=l[0],p=e.extend(i.ngSortable||{},r),f=[],m=s(h,i);h[n]=m,d=t.create(h,Object.keys(p).reduce(function(e,t){return e[t]=e[t]||p[t],e},{onStart:function(e){a=e.item.nextSibling,c(e),i.$apply()},onEnd:function(e){c(e,o),i.$apply()},onAdd:function(e){u(e),c(e,o),i.$apply()},onUpdate:function(e){u(e),c(e)},onRemove:function(e){c(e,o)},onSort:function(e){c(e)}})),l.on("$destroy",function(){e.forEach(f,function(e){e()}),d.destroy(),h[n]=null,h=null,f=null,d=null,a=null}),e.forEach(["sort","disabled","draggable","handle","animation","group","ghostClass","filter","onStart","onEnd","onAdd","onUpdate","onRemove","onSort"],function(e){f.push(i.$watch("ngSortable."+e,function(t){void 0!==t&&(p[e]=t,/^on[A-Z]/.test(e)||d.option(e,t))}))})}}}])}),function(e,t){"function"==typeof define&&define.amd?define(e):"undefined"!=typeof module&&"object"==typeof exports?module.exports=e():t.rangy=e()}(function(){function e(e,t){var n=typeof e[t];return n==_||!(n!=y||!e[t])||"unknown"==n}function t(e,t){return!(typeof e[t]!=y||!e[t])}function n(e,t){return typeof e[t]!=w}function i(e){return function(t,n){for(var i=n.length;i--;)if(!e(t,n[i]))return!1;return!0}}function r(e){return e&&E(e,S)&&D(e,x)}function o(e){return t(e,"body")?e.body:e.getElementsByTagName("body")[0]}function a(t){typeof console!=w&&e(console,"log")&&console.log(t)}function s(e,t){M&&t?alert(e):a(e)}function l(e){$.initialized=!0,$.supported=!1,s("Rangy is not supported in this environment. Reason: "+e,$.config.alertOnFail)}function c(e){s("Rangy warning: "+e,$.config.alertOnWarn)}function u(e){return e.message||e.description||String(e)}function d(){if(M&&!$.initialized){var t,n=!1,i=!1;e(document,"createRange")&&(t=document.createRange(),E(t,C)&&D(t,A)&&(n=!0));var s=o(document);if(s&&"body"==s.nodeName.toLowerCase())if(s&&e(s,"createTextRange")&&r(t=s.createTextRange())&&(i=!0),n||i){$.initialized=!0,$.features={implementsDomRange:n,implementsTextRange:i};var c;for(var d in k)(c=k[d])instanceof m&&c.init(c,$);for(var h=0,p=R.length;h<p;++h)try{R[h]($)}catch(e){a("Rangy init listener threw an exception. Continuing. Detail: "+u(e))}}else l("Neither Range nor TextRange are available");else l("No body element found")}}function h(e,t,n){n&&(e+=" in module "+n.name),$.warn("DEPRECATED: "+e+" is deprecated. Please use "+t+" instead.")}function p(e,t,n,i){e[t]=function(){return h(t,n,i),e[n].apply(e,P.toArray(arguments))}}function f(e){e=e||window,d();for(var t=0,n=L.length;t<n;++t)L[t](e)}function m(e,t,n){this.name=e,this.dependencies=t,this.initialized=!1,this.supported=!1,this.initializer=n}function g(e,t,n){var i=new m(e,t,function(t){if(!t.initialized){t.initialized=!0;try{n($,t),t.supported=!0}catch(t){a("Module '"+e+"' failed to load: "+u(t)),t.stack&&a(t.stack)}}});return k[e]=i,i}function v(){}function b(){}var y="object",_="function",w="undefined",A=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],C=["setStart","setStartBefore","setStartAfter","setEnd","setEndBefore","setEndAfter","collapse","selectNode","selectNodeContents","compareBoundaryPoints","deleteContents","extractContents","cloneContents","insertNode","surroundContents","cloneRange","toString","detach"],x=["boundingHeight","boundingLeft","boundingTop","boundingWidth","htmlText","text"],S=["collapse","compareEndPoints","duplicate","moveToElementText","parentElement","select","setEndPoint","getBoundingClientRect"],E=i(e),T=i(t),D=i(n),I=[].forEach?function(e,t){e.forEach(t)}:function(e,t){for(var n=0,i=e.length;n<i;++n)t(e[n],n)},k={},M=typeof window!=w&&typeof document!=w,P={isHostMethod:e,isHostObject:t,isHostProperty:n,areHostMethods:E,areHostObjects:T,areHostProperties:D,isTextRange:r,getBody:o,forEach:I},$={version:"1.3.0",initialized:!1,isBrowser:M,supported:!0,util:P,features:{},modules:k,config:{alertOnFail:!1,alertOnWarn:!1,preferTextRange:!1,autoInitialize:typeof rangyAutoInitialize==w||rangyAutoInitialize}};$.fail=l,$.warn=c;var N;!{}.hasOwnProperty?l("hasOwnProperty not supported"):(P.extend=N=function(e,t,n){var i,r;for(var o in t)t.hasOwnProperty(o)&&(i=e[o],r=t[o],n&&null!==i&&"object"==typeof i&&null!==r&&"object"==typeof r&&N(i,r,!0),e[o]=r);return t.hasOwnProperty("toString")&&(e.toString=t.toString),e},P.createOptions=function(e,t){var n={};return N(n,t),e&&N(n,e),n}),M||l("Rangy can only run in a browser"),function(){var e;if(M){var t=document.createElement("div");t.appendChild(document.createElement("span"));var n=[].slice;try{1==n.call(t.childNodes,0)[0].nodeType&&(e=function(e){return n.call(e,0)})}catch(e){}}e||(e=function(e){for(var t=[],n=0,i=e.length;n<i;++n)t[n]=e[n];return t}),P.toArray=e}();var O;M&&(e(document,"addEventListener")?O=function(e,t,n){e.addEventListener(t,n,!1)}:e(document,"attachEvent")?O=function(e,t,n){e.attachEvent("on"+t,n)}:l("Document does not have required addEventListener or attachEvent method"),P.addListener=O);var R=[];P.deprecationNotice=h,P.createAliasForDeprecatedMethod=p,$.init=d,$.addInitListener=function(e){$.initialized?e($):R.push(e)};var L=[];$.addShimListener=function(e){L.push(e)},M&&($.shim=$.createMissingNativeApi=f,p($,"createMissingNativeApi","shim")),m.prototype={init:function(){for(var e,t,n=this.dependencies||[],i=0,r=n.length;i<r;++i){if(t=n[i],!((e=k[t])&&e instanceof m))throw new Error("required module '"+t+"' not found");if(e.init(),!e.supported)throw new Error("required module '"+t+"' not supported")}this.initializer(this)},fail:function(e){throw this.initialized=!0,this.supported=!1,new Error(e)},warn:function(e){$.warn("Module "+this.name+": "+e)},deprecationNotice:function(e,t){$.warn("DEPRECATED: "+e+" in module "+this.name+" is deprecated. Please use "+t+" instead")},createError:function(e){return new Error("Error in Rangy "+this.name+" module: "+e)}},$.createModule=function(e){var t,n;2==arguments.length?(t=arguments[1],n=[]):(t=arguments[2],n=arguments[1]);var i=g(e,n,t);$.initialized&&$.supported&&i.init()},$.createCoreModule=function(e,t,n){g(e,t,n)},$.RangePrototype=v,$.rangePrototype=new v,$.selectionPrototype=new b,$.createCoreModule("DomUtil",[],function(e,t){function n(e){var t;return typeof e.namespaceURI==M||null===(t=e.namespaceURI)||"http://www.w3.org/1999/xhtml"==t}function i(e){var t=e.parentNode;return 1==t.nodeType?t:null}function r(e){for(var t=0;e=e.previousSibling;)++t;return t}function o(e){switch(e.nodeType){case 7:case 10:return 0;case 3:case 8:return e.length;default:return e.childNodes.length}}function a(e,t){var n,i=[];for(n=e;n;n=n.parentNode)i.push(n);for(n=t;n;n=n.parentNode)if(R(i,n))return n;return null}function s(e,t,n){for(var i=n?t:t.parentNode;i;){if(i===e)return!0;i=i.parentNode}return!1}function l(e,t){return s(e,t,!0)}function c(e,t,n){for(var i,r=n?e:e.parentNode;r;){if((i=r.parentNode)===t)return r;r=i}return null}function u(e){var t=e.nodeType;return 3==t||4==t||8==t}function d(e){if(!e)return!1;var t=e.nodeType;return 3==t||8==t}function h(e,t){var n=t.nextSibling,i=t.parentNode;return n?i.insertBefore(e,n):i.appendChild(e),e}function p(e,t,n){var i=e.cloneNode(!1);if(i.deleteData(0,t),e.deleteData(t,e.length-t),h(i,e),n)for(var o,a=0;o=n[a++];)o.node==e&&o.offset>t?(o.node=i,o.offset-=t):o.node==e.parentNode&&o.offset>r(e)&&++o.offset;return i}function f(e){if(9==e.nodeType)return e;if(typeof e.ownerDocument!=M)return e.ownerDocument;if(typeof e.document!=M)return e.document;if(e.parentNode)return f(e.parentNode);throw t.createError("getDocument: no document found for node")}function m(e){var n=f(e);if(typeof n.defaultView!=M)return n.defaultView;if(typeof n.parentWindow!=M)return n.parentWindow;throw t.createError("Cannot get a window object for node")}function g(e){if(typeof e.contentDocument!=M)return e.contentDocument;if(typeof e.contentWindow!=M)return e.contentWindow.document;throw t.createError("getIframeDocument: No Document object found for iframe element")}function v(e){if(typeof e.contentWindow!=M)return e.contentWindow;if(typeof e.contentDocument!=M)return e.contentDocument.defaultView;throw t.createError("getIframeWindow: No Window object found for iframe element")}function b(e){return e&&P.isHostMethod(e,"setTimeout")&&P.isHostObject(e,"document")}function y(e,t,n){var i;if(e?P.isHostProperty(e,"nodeType")?i=1==e.nodeType&&"iframe"==e.tagName.toLowerCase()?g(e):f(e):b(e)&&(i=e.document):i=document,!i)throw t.createError(n+"(): Parameter must be a Window object or DOM node");return i}function _(e){for(var t;t=e.parentNode;)e=t;return e}function w(e,n,i,o){var s,l,u,d,h;if(e==i)return n===o?0:n<o?-1:1;if(s=c(i,e,!0))return n<=r(s)?-1:1;if(s=c(e,i,!0))return r(s)<o?-1:1;if(!(l=a(e,i)))throw new Error("comparePoints error: nodes have no common ancestor");if(u=e===l?l:c(e,l,!0),d=i===l?l:c(i,l,!0),u===d)throw t.createError("comparePoints got to case 4 and childA and childB are the same!");for(h=l.firstChild;h;){if(h===u)return-1;if(h===d)return 1;h=h.nextSibling}}function A(e){try{return e.parentNode,!1}catch(e){return!0}}function C(e){if(!e)return"[No node]";if(L&&A(e))return"[Broken node]";if(u(e))return'"'+e.data+'"';if(1==e.nodeType){var t=e.id?' id="'+e.id+'"':"";return"<"+e.nodeName+t+">[index:"+r(e)+",length:"+e.childNodes.length+"]["+(e.innerHTML||"[innerHTML not supported]").slice(0,25)+"]"}return e.nodeName}function x(e){for(var t,n=f(e).createDocumentFragment();t=e.firstChild;)n.appendChild(t);return n}function S(e,t,n){var i=$(e),r=e.createElement("div");r.contentEditable=""+!!n,t&&(r.innerHTML=t);var o=i.firstChild;return o?i.insertBefore(r,o):i.appendChild(r),r}function E(e){return e.parentNode.removeChild(e)}function T(e){this.root=e,this._next=e}function D(e){return new T(e)}function I(e,t){this.node=e,this.offset=t}function k(e){this.code=this[e],this.codeName=e,this.message="DOMException: "+this.codeName}var M="undefined",P=e.util,$=P.getBody;P.areHostMethods(document,["createDocumentFragment","createElement","createTextNode"])||t.fail("document missing a Node creation method"),P.isHostMethod(document,"getElementsByTagName")||t.fail("document missing getElementsByTagName method");var N=document.createElement("div");P.areHostMethods(N,["insertBefore","appendChild","cloneNode"]||!P.areHostObjects(N,["previousSibling","nextSibling","childNodes","parentNode"]))||t.fail("Incomplete Element implementation"),P.isHostProperty(N,"innerHTML")||t.fail("Element is missing innerHTML property");var O=document.createTextNode("test");P.areHostMethods(O,["splitText","deleteData","insertData","appendData","cloneNode"]||!P.areHostObjects(N,["previousSibling","nextSibling","childNodes","parentNode"])||!P.areHostProperties(O,["data"]))||t.fail("Incomplete Text Node implementation");var R=function(e,t){for(var n=e.length;n--;)if(e[n]===t)return!0;return!1},L=!1;!function(){var t=document.createElement("b");t.innerHTML="1";var n=t.firstChild;t.innerHTML="<br />",L=A(n),e.features.crashyTextNodes=L}();var G;typeof window.getComputedStyle!=M?G=function(e,t){return m(e).getComputedStyle(e,null)[t]}:typeof document.documentElement.currentStyle!=M?G=function(e,t){return e.currentStyle?e.currentStyle[t]:""}:t.fail("No means of obtaining computed style properties found"),T.prototype={_current:null,hasNext:function(){return!!this._next},next:function(){var e,t,n=this._current=this._next;if(this._current)if(e=n.firstChild)this._next=e;else{for(t=null;n!==this.root&&!(t=n.nextSibling);)n=n.parentNode;this._next=t}return this._current},detach:function(){this._current=this._next=this.root=null}},I.prototype={equals:function(e){return!!e&&this.node===e.node&&this.offset==e.offset},inspect:function(){return"[DomPosition("+C(this.node)+":"+this.offset+")]"},toString:function(){return this.inspect()}},k.prototype={INDEX_SIZE_ERR:1,HIERARCHY_REQUEST_ERR:3,WRONG_DOCUMENT_ERR:4,NO_MODIFICATION_ALLOWED_ERR:7,NOT_FOUND_ERR:8,NOT_SUPPORTED_ERR:9,INVALID_STATE_ERR:11,INVALID_NODE_TYPE_ERR:24},k.prototype.toString=function(){return this.message},e.dom={arrayContains:R,isHtmlNamespace:n,parentElement:i,getNodeIndex:r,getNodeLength:o,getCommonAncestor:a,isAncestorOf:s,isOrIsAncestorOf:l,getClosestAncestorIn:c,isCharacterDataNode:u,isTextOrCommentNode:d,insertAfter:h,splitDataNode:p,getDocument:f,getWindow:m,getIframeWindow:v,getIframeDocument:g,getBody:$,isWindow:b,getContentDocument:y,getRootContainer:_,comparePoints:w,isBrokenNode:A,inspectNode:C,getComputedStyleProperty:G,createTestElement:S,removeNode:E,fragmentFromNodeChildren:x,createIterator:D,DomPosition:I},e.DOMException=k}),$.createCoreModule("DomRange",["DomUtil"],function(e,t){function n(e,t){return 3!=e.nodeType&&(H(e,t.startContainer)||H(e,t.endContainer))}function i(e){return e.document||U(e.startContainer)}function r(e){return Y(e.startContainer)}function o(e){return new L(e.parentNode,F(e))}function a(e){return new L(e.parentNode,F(e)+1)}function s(e,t,n){var i=11==e.nodeType?e.firstChild:e;return B(t)?n==t.length?O.insertAfter(e,t):t.parentNode.insertBefore(e,0==n?t:W(t,n)):n>=t.childNodes.length?t.appendChild(e):t.insertBefore(e,t.childNodes[n]),i}function l(e,t,n){if(S(e),S(t),i(t)!=i(e))throw new G("WRONG_DOCUMENT_ERR");var r=j(e.startContainer,e.startOffset,t.endContainer,t.endOffset),o=j(e.endContainer,e.endOffset,t.startContainer,t.startOffset);return n?r<=0&&o>=0:r<0&&o>0}function c(e){for(var t,n,r,o=i(e.range).createDocumentFragment();n=e.next();){if(t=e.isPartiallySelectedSubtree(),n=n.cloneNode(!t),t&&(r=e.getSubtreeIterator(),n.appendChild(c(r)),r.detach()),10==n.nodeType)throw new G("HIERARCHY_REQUEST_ERR");o.appendChild(n)}return o}function u(e,t,n){var i,r;n=n||{stop:!1};for(var o,a;o=e.next();)if(e.isPartiallySelectedSubtree()){if(!1===t(o))return void(n.stop=!0);if(a=e.getSubtreeIterator(),u(a,t,n),a.detach(),n.stop)return}else for(i=O.createIterator(o);r=i.next();)if(!1===t(r))return void(n.stop=!0)}function d(e){for(var t;e.next();)e.isPartiallySelectedSubtree()?(d(t=e.getSubtreeIterator()),t.detach()):e.remove()}function h(e){for(var t,n,r=i(e.range).createDocumentFragment();t=e.next();){if(e.isPartiallySelectedSubtree()?(t=t.cloneNode(!1),n=e.getSubtreeIterator(),t.appendChild(h(n)),n.detach()):e.remove(),10==t.nodeType)throw new G("HIERARCHY_REQUEST_ERR");r.appendChild(t)}return r}function p(e,t,n){var i,r=!(!t||!t.length),o=!!n;r&&(i=new RegExp("^("+t.join("|")+")$"));var a=[];return u(new m(e,!1),function(t){if((!r||i.test(t.nodeType))&&(!o||n(t))){var s=e.startContainer;if(t!=s||!B(s)||e.startOffset!=s.length){var l=e.endContainer;t==l&&B(l)&&0==e.endOffset||a.push(t)}}}),a}function f(e){return"["+(void 0===e.getName?"Range":e.getName())+"("+O.inspectNode(e.startContainer)+":"+e.startOffset+", "+O.inspectNode(e.endContainer)+":"+e.endOffset+")]"}function m(e,t){if(this.range=e,this.clonePartiallySelectedTextNodes=t,!e.collapsed){this.sc=e.startContainer,this.so=e.startOffset,this.ec=e.endContainer,this.eo=e.endOffset;var n=e.commonAncestorContainer;this.sc===this.ec&&B(this.sc)?(this.isSingleCharacterDataNode=!0,this._first=this._last=this._next=this.sc):(this._first=this._next=this.sc!==n||B(this.sc)?z(this.sc,n,!0):this.sc.childNodes[this.so],this._last=this.ec!==n||B(this.ec)?z(this.ec,n,!0):this.ec.childNodes[this.eo-1])}}function g(e){return function(t,n){for(var i,r=n?t:t.parentNode;r;){if(i=r.nodeType,V(e,i))return r;r=r.parentNode}return null}}function v(e,t){if(re(e,t))throw new G("INVALID_NODE_TYPE_ERR")}function b(e,t){if(!V(t,e.nodeType))throw new G("INVALID_NODE_TYPE_ERR")}function y(e,t){if(t<0||t>(B(e)?e.length:e.childNodes.length))throw new G("INDEX_SIZE_ERR")}function _(e,t){if(ne(e,!0)!==ne(t,!0))throw new G("WRONG_DOCUMENT_ERR")}function w(e){if(ie(e,!0))throw new G("NO_MODIFICATION_ALLOWED_ERR")}function A(e,t){if(!e)throw new G(t)}function C(e,t){return t<=(B(e)?e.length:e.childNodes.length)}function x(e){return!!e.startContainer&&!!e.endContainer&&!(K&&(O.isBrokenNode(e.startContainer)||O.isBrokenNode(e.endContainer)))&&Y(e.startContainer)==Y(e.endContainer)&&C(e.startContainer,e.startOffset)&&C(e.endContainer,e.endOffset)}function S(e){if(!x(e))throw new Error("Range error: Range is not valid. This usually happens after DOM mutation. Range: ("+e.inspect()+")")}function E(e,t){S(e);var n=e.startContainer,i=e.startOffset,r=e.endContainer,o=e.endOffset,a=n===r;B(r)&&o>0&&o<r.length&&W(r,o,t),B(n)&&i>0&&i<n.length&&(n=W(n,i,t),a?(o-=i,r=n):r==n.parentNode&&o>=F(n)&&o++,i=0),e.setStartAndEnd(n,i,r,o)}function T(e){S(e);var t=e.commonAncestorContainer.parentNode.cloneNode(!1);return t.appendChild(e.cloneContents()),t.innerHTML}function D(e){e.START_TO_START=ce,e.START_TO_END=ue,e.END_TO_END=de,e.END_TO_START=he,e.NODE_BEFORE=pe,e.NODE_AFTER=fe,e.NODE_BEFORE_AND_AFTER=me,e.NODE_INSIDE=ge}function I(e){D(e),D(e.prototype)}function k(e,t){return function(){S(this);var n,i=this.startContainer,r=this.startOffset,o=this.commonAncestorContainer,s=new m(this,!0);i!==o&&(i=(n=a(z(i,o,!0))).node,r=n.offset),u(s,w),s.reset();var l=e(s);return s.detach(),t(this,i,r,i,r),l}}function M(t,i){function r(e,t){return function(n){b(n,X),b(Y(n),Z);var i=(e?o:a)(n);(t?s:l)(this,i.node,i.offset)}}function s(e,t,n){var r=e.endContainer,o=e.endOffset;t===e.startContainer&&n===e.startOffset||(Y(t)==Y(r)&&1!=j(t,n,r,o)||(r=t,o=n),i(e,t,n,r,o))}function l(e,t,n){var r=e.startContainer,o=e.startOffset;t===e.endContainer&&n===e.endOffset||(Y(t)==Y(r)&&-1!=j(t,n,r,o)||(r=t,o=n),i(e,r,o,t,n))}var c=function(){};c.prototype=e.rangePrototype,t.prototype=new c,R.extend(t.prototype,{setStart:function(e,t){v(e,!0),y(e,t),s(this,e,t)},setEnd:function(e,t){v(e,!0),y(e,t),l(this,e,t)},setStartAndEnd:function(){var e=arguments,t=e[0],n=e[1],r=t,o=n;switch(e.length){case 3:o=e[2];break;case 4:r=e[2],o=e[3]}i(this,t,n,r,o)},setBoundary:function(e,t,n){this["set"+(n?"Start":"End")](e,t)},setStartBefore:r(!0,!0),setStartAfter:r(!1,!0),setEndBefore:r(!0,!1),setEndAfter:r(!1,!1),collapse:function(e){S(this),e?i(this,this.startContainer,this.startOffset,this.startContainer,this.startOffset):i(this,this.endContainer,this.endOffset,this.endContainer,this.endOffset)},selectNodeContents:function(e){v(e,!0),i(this,e,0,e,q(e))},selectNode:function(e){v(e,!1),b(e,X);var t=o(e),n=a(e);i(this,t.node,t.offset,n.node,n.offset)},extractContents:k(h,i),deleteContents:k(d,i),canSurroundContents:function(){S(this),w(this.startContainer),w(this.endContainer);var e=new m(this,!0),t=e._first&&n(e._first,this)||e._last&&n(e._last,this);return e.detach(),!t},splitBoundaries:function(){E(this)},splitBoundariesPreservingPositions:function(e){E(this,e)},normalizeBoundaries:function(){S(this);var e,t=this.startContainer,n=this.startOffset,r=this.endContainer,o=this.endOffset,a=function(e){var t=e.nextSibling;t&&t.nodeType==e.nodeType&&(r=e,o=e.length,e.appendData(t.data),Q(t))},s=function(e){var i=e.previousSibling;if(i&&i.nodeType==e.nodeType){t=e;var a=e.length;if(n=i.length,e.insertData(0,i.data),Q(i),t==r)o+=n,r=t;else if(r==e.parentNode){var s=F(e);o==s?(r=e,o=a):o>s&&o--}}},l=!0;if(B(r))o==r.length?a(r):0==o&&(e=r.previousSibling)&&e.nodeType==r.nodeType&&(o=e.length,t==r&&(l=!1),e.appendData(r.data),Q(r),r=e);else{if(o>0){var c=r.childNodes[o-1];c&&B(c)&&a(c)}l=!this.collapsed}if(l){if(B(t))0==n?s(t):n==t.length&&(e=t.nextSibling)&&e.nodeType==t.nodeType&&(r==e&&(r=t,o+=t.length),t.appendData(e.data),Q(e));else if(n<t.childNodes.length){var u=t.childNodes[n];u&&B(u)&&s(u)}}else t=r,n=o;i(this,t,n,r,o)},collapseToPoint:function(e,t){v(e,!0),y(e,t),this.setStartAndEnd(e,t)}}),I(t)}function P(e){e.collapsed=e.startContainer===e.endContainer&&e.startOffset===e.endOffset,e.commonAncestorContainer=e.collapsed?e.startContainer:O.getCommonAncestor(e.startContainer,e.endContainer)}function $(e,t,n,i,r){e.startContainer=t,e.startOffset=n,e.endContainer=i,e.endOffset=r,e.document=O.getDocument(t),P(e)}function N(e){this.startContainer=e,this.startOffset=0,this.endContainer=e,this.endOffset=0,this.document=e,P(this)}var O=e.dom,R=e.util,L=O.DomPosition,G=e.DOMException,B=O.isCharacterDataNode,F=O.getNodeIndex,H=O.isOrIsAncestorOf,U=O.getDocument,j=O.comparePoints,W=O.splitDataNode,z=O.getClosestAncestorIn,q=O.getNodeLength,V=O.arrayContains,Y=O.getRootContainer,K=e.features.crashyTextNodes,Q=O.removeNode;m.prototype={_current:null,_next:null,_first:null,_last:null,isSingleCharacterDataNode:!1,reset:function(){this._current=null,this._next=this._first},hasNext:function(){return!!this._next},next:function(){var e=this._current=this._next;return e&&(this._next=e!==this._last?e.nextSibling:null,B(e)&&this.clonePartiallySelectedTextNodes&&(e===this.ec&&(e=e.cloneNode(!0)).deleteData(this.eo,e.length-this.eo),this._current===this.sc&&(e=e.cloneNode(!0)).deleteData(0,this.so))),e},remove:function(){var e,t,n=this._current;!B(n)||n!==this.sc&&n!==this.ec?n.parentNode&&Q(n):(e=n===this.sc?this.so:0)!=(t=n===this.ec?this.eo:n.length)&&n.deleteData(e,t-e)},isPartiallySelectedSubtree:function(){return n(this._current,this.range)},getSubtreeIterator:function(){var e;if(this.isSingleCharacterDataNode)(e=this.range.cloneRange()).collapse(!1);else{e=new N(i(this.range));var t=this._current,n=t,r=0,o=t,a=q(t);H(t,this.sc)&&(n=this.sc,r=this.so),H(t,this.ec)&&(o=this.ec,a=this.eo),$(e,n,r,o,a)}return new m(e,this.clonePartiallySelectedTextNodes)},detach:function(){this.range=this._current=this._next=this._first=this._last=this.sc=this.so=this.ec=this.eo=null}};var X=[1,3,4,5,7,8,10],Z=[2,9,11],J=[5,6,10,12],ee=[1,3,4,5,7,8,10,11],te=[1,3,4,5,7,8],ne=g([9,11]),ie=g(J),re=g([6,10,12]),oe=document.createElement("style"),ae=!1;try{oe.innerHTML="<b>x</b>",ae=3==oe.firstChild.nodeType}catch(e){}e.features.htmlParsingConforms=ae;var se=ae?function(e){var t=this.startContainer,n=U(t);if(!t)throw new G("INVALID_STATE_ERR");var i=null;return 1==t.nodeType?i=t:B(t)&&(i=O.parentElement(t)),i=null===i||"HTML"==i.nodeName&&O.isHtmlNamespace(U(i).documentElement)&&O.isHtmlNamespace(i)?n.createElement("body"):i.cloneNode(!1),i.innerHTML=e,O.fragmentFromNodeChildren(i)}:function(e){var t=i(this).createElement("body");return t.innerHTML=e,O.fragmentFromNodeChildren(t)},le=["startContainer","startOffset","endContainer","endOffset","collapsed","commonAncestorContainer"],ce=0,ue=1,de=2,he=3,pe=0,fe=1,me=2,ge=3;R.extend(e.rangePrototype,{compareBoundaryPoints:function(e,t){S(this),_(this.startContainer,t.startContainer);var n,i,r,o,a=e==he||e==ce?"start":"end",s=e==ue||e==ce?"start":"end";return n=this[a+"Container"],i=this[a+"Offset"],r=t[s+"Container"],o=t[s+"Offset"],j(n,i,r,o)},insertNode:function(e){if(S(this),b(e,ee),w(this.startContainer),H(e,this.startContainer))throw new G("HIERARCHY_REQUEST_ERR");var t=s(e,this.startContainer,this.startOffset);this.setStartBefore(t)},cloneContents:function(){S(this);var e,t;if(this.collapsed)return i(this).createDocumentFragment();if(this.startContainer===this.endContainer&&B(this.startContainer))return e=this.startContainer.cloneNode(!0),e.data=e.data.slice(this.startOffset,this.endOffset),(t=i(this).createDocumentFragment()).appendChild(e),t;var n=new m(this,!0);return e=c(n),n.detach(),e},canSurroundContents:function(){S(this),w(this.startContainer),w(this.endContainer);var e=new m(this,!0),t=e._first&&n(e._first,this)||e._last&&n(e._last,this);return e.detach(),!t},surroundContents:function(e){if(b(e,te),!this.canSurroundContents())throw new G("INVALID_STATE_ERR");var t=this.extractContents();if(e.hasChildNodes())for(;e.lastChild;)e.removeChild(e.lastChild);s(e,this.startContainer,this.startOffset),e.appendChild(t),this.selectNode(e)},cloneRange:function(){S(this);for(var e,t=new N(i(this)),n=le.length;n--;)t[e=le[n]]=this[e];return t},toString:function(){S(this);var e=this.startContainer;if(e===this.endContainer&&B(e))return 3==e.nodeType||4==e.nodeType?e.data.slice(this.startOffset,this.endOffset):"";var t=[],n=new m(this,!0);return u(n,function(e){3!=e.nodeType&&4!=e.nodeType||t.push(e.data)}),n.detach(),t.join("")},compareNode:function(e){S(this);var t=e.parentNode,n=F(e);if(!t)throw new G("NOT_FOUND_ERR");var i=this.comparePoint(t,n),r=this.comparePoint(t,n+1);return i<0?r>0?me:pe:r>0?fe:ge},comparePoint:function(e,t){return S(this),A(e,"HIERARCHY_REQUEST_ERR"),_(e,this.startContainer),j(e,t,this.startContainer,this.startOffset)<0?-1:j(e,t,this.endContainer,this.endOffset)>0?1:0},createContextualFragment:se,toHtml:function(){return T(this)},intersectsNode:function(e,t){if(S(this),Y(e)!=r(this))return!1;var n=e.parentNode,i=F(e);if(!n)return!0;var o=j(n,i,this.endContainer,this.endOffset),a=j(n,i+1,this.startContainer,this.startOffset);return t?o<=0&&a>=0:o<0&&a>0},isPointInRange:function(e,t){return S(this),A(e,"HIERARCHY_REQUEST_ERR"),_(e,this.startContainer),j(e,t,this.startContainer,this.startOffset)>=0&&j(e,t,this.endContainer,this.endOffset)<=0},intersectsRange:function(e){return l(this,e,!1)},intersectsOrTouchesRange:function(e){return l(this,e,!0)},intersection:function(e){if(this.intersectsRange(e)){var t=j(this.startContainer,this.startOffset,e.startContainer,e.startOffset),n=j(this.endContainer,this.endOffset,e.endContainer,e.endOffset),i=this.cloneRange();return-1==t&&i.setStart(e.startContainer,e.startOffset),1==n&&i.setEnd(e.endContainer,e.endOffset),i}return null},union:function(e){if(this.intersectsOrTouchesRange(e)){var t=this.cloneRange();return-1==j(e.startContainer,e.startOffset,this.startContainer,this.startOffset)&&t.setStart(e.startContainer,e.startOffset),1==j(e.endContainer,e.endOffset,this.endContainer,this.endOffset)&&t.setEnd(e.endContainer,e.endOffset),t}throw new G("Ranges do not intersect")},containsNode:function(e,t){return t?this.intersectsNode(e,!1):this.compareNode(e)==ge},containsNodeContents:function(e){return this.comparePoint(e,0)>=0&&this.comparePoint(e,q(e))<=0},containsRange:function(e){var t=this.intersection(e);return null!==t&&e.equals(t)},containsNodeText:function(e){var t=this.cloneRange();t.selectNode(e);var n=t.getNodes([3]);if(n.length>0){t.setStart(n[0],0);var i=n.pop();return t.setEnd(i,i.length),this.containsRange(t)}return this.containsNodeContents(e)},getNodes:function(e,t){return S(this),p(this,e,t)},getDocument:function(){return i(this)},collapseBefore:function(e){this.setEndBefore(e),this.collapse(!1)},collapseAfter:function(e){this.setStartAfter(e),this.collapse(!0)},getBookmark:function(t){var n=i(this),r=e.createRange(n);t=t||O.getBody(n),r.selectNodeContents(t);var o=this.intersection(r),a=0,s=0;return o&&(r.setEnd(o.startContainer,o.startOffset),s=(a=r.toString().length)+o.toString().length),{start:a,end:s,containerNode:t}},moveToBookmark:function(e){var t=e.containerNode,n=0;this.setStart(t,0),this.collapse(!0);for(var i,r,o,a,s=[t],l=!1,c=!1;!c&&(i=s.pop());)if(3==i.nodeType)r=n+i.length,!l&&e.start>=n&&e.start<=r&&(this.setStart(i,e.start-n),l=!0),l&&e.end>=n&&e.end<=r&&(this.setEnd(i,e.end-n),c=!0),n=r;else for(o=(a=i.childNodes).length;o--;)s.push(a[o])},getName:function(){return"DomRange"},equals:function(e){return N.rangesEqual(this,e)},isValid:function(){return x(this)},inspect:function(){return f(this)},detach:function(){}}),M(N,$),R.extend(N,{rangeProperties:le,RangeIterator:m,copyComparisonConstants:I,createPrototypeRange:M,inspect:f,toHtml:T,getRangeDocument:i,rangesEqual:function(e,t){return e.startContainer===t.startContainer&&e.startOffset===t.startOffset&&e.endContainer===t.endContainer&&e.endOffset===t.endOffset}}),e.DomRange=N}),$.createCoreModule("WrappedRange",["DomRange"],function(e,t){var n,i,r=e.dom,o=e.util,a=r.DomPosition,s=e.DomRange,l=r.getBody,c=r.getContentDocument,u=r.isCharacterDataNode;if(e.features.implementsDomRange&&function(){function i(e){for(var t,n=h.length;n--;)e[t=h[n]]=e.nativeRange[t];e.collapsed=e.startContainer===e.endContainer&&e.startOffset===e.endOffset}function a(e,t,n,i,r){var o=e.startContainer!==t||e.startOffset!=n,a=e.endContainer!==i||e.endOffset!=r,s=!e.equals(e.nativeRange);(o||a||s)&&(e.setEnd(i,r),e.setStart(t,n))}var u,d,h=s.rangeProperties;n=function(e){if(!e)throw t.createError("WrappedRange: Range must be specified");this.nativeRange=e,i(this)},s.createPrototypeRange(n,a),(u=n.prototype).selectNode=function(e){this.nativeRange.selectNode(e),i(this)},u.cloneContents=function(){return this.nativeRange.cloneContents()},u.surroundContents=function(e){this.nativeRange.surroundContents(e),i(this)},u.collapse=function(e){this.nativeRange.collapse(e),i(this)},u.cloneRange=function(){return new n(this.nativeRange.cloneRange())},u.refresh=function(){i(this)},u.toString=function(){return this.nativeRange.toString()};var p=document.createTextNode("test");l(document).appendChild(p);var f=document.createRange();f.setStart(p,0),f.setEnd(p,0);try{f.setStart(p,1),u.setStart=function(e,t){this.nativeRange.setStart(e,t),i(this)},u.setEnd=function(e,t){this.nativeRange.setEnd(e,t),i(this)},d=function(e){return function(t){this.nativeRange[e](t),i(this)}}}catch(e){u.setStart=function(e,t){try{this.nativeRange.setStart(e,t)}catch(n){this.nativeRange.setEnd(e,t),this.nativeRange.setStart(e,t)}i(this)},u.setEnd=function(e,t){try{this.nativeRange.setEnd(e,t)}catch(n){this.nativeRange.setStart(e,t),this.nativeRange.setEnd(e,t)}i(this)},d=function(e,t){return function(n){try{this.nativeRange[e](n)}catch(i){this.nativeRange[t](n),this.nativeRange[e](n)}i(this)}}}u.setStartBefore=d("setStartBefore","setEndBefore"),u.setStartAfter=d("setStartAfter","setEndAfter"),u.setEndBefore=d("setEndBefore","setStartBefore"),u.setEndAfter=d("setEndAfter","setStartAfter"),u.selectNodeContents=function(e){this.setStartAndEnd(e,0,r.getNodeLength(e))},f.selectNodeContents(p),f.setEnd(p,3);var m=document.createRange();m.selectNodeContents(p),m.setEnd(p,4),m.setStart(p,2),-1==f.compareBoundaryPoints(f.START_TO_END,m)&&1==f.compareBoundaryPoints(f.END_TO_START,m)?u.compareBoundaryPoints=function(e,t){return t=t.nativeRange||t,e==t.START_TO_END?e=t.END_TO_START:e==t.END_TO_START&&(e=t.START_TO_END),this.nativeRange.compareBoundaryPoints(e,t)}:u.compareBoundaryPoints=function(e,t){return this.nativeRange.compareBoundaryPoints(e,t.nativeRange||t)};var g=document.createElement("div");g.innerHTML="123";var v=g.firstChild,b=l(document);b.appendChild(g),f.setStart(v,1),f.setEnd(v,2),f.deleteContents(),"13"==v.data&&(u.deleteContents=function(){this.nativeRange.deleteContents(),i(this)},u.extractContents=function(){var e=this.nativeRange.extractContents();return i(this),e}),b.removeChild(g),b=null,o.isHostMethod(f,"createContextualFragment")&&(u.createContextualFragment=function(e){return this.nativeRange.createContextualFragment(e)}),l(document).removeChild(p),u.getName=function(){return"WrappedRange"},e.WrappedRange=n,e.createNativeRange=function(e){return(e=c(e,t,"createNativeRange")).createRange()}}(),e.features.implementsTextRange){var d=function(e){var t=e.parentElement(),n=e.duplicate();n.collapse(!0);var i=n.parentElement();(n=e.duplicate()).collapse(!1);var o=n.parentElement(),a=i==o?i:r.getCommonAncestor(i,o);return a==t?a:r.getCommonAncestor(t,a)},h=function(e){return 0==e.compareEndPoints("StartToEnd",e)},p=function(e,t,n,i,o){var s=e.duplicate();s.collapse(n);var l=s.parentElement();if(r.isOrIsAncestorOf(t,l)||(l=t),!l.canHaveHTML){var c=new a(l.parentNode,r.getNodeIndex(l));return{boundaryPosition:c,nodeInfo:{nodeIndex:c.offset,containerElement:c.node}}}var d=r.getDocument(l).createElement("span");d.parentNode&&r.removeNode(d);for(var h,p,f,m,g,v=n?"StartToStart":"StartToEnd",b=o&&o.containerElement==l?o.nodeIndex:0,y=l.childNodes.length,_=y,w=_;;){if(w==y?l.appendChild(d):l.insertBefore(d,l.childNodes[w]),s.moveToElementText(d),0==(h=s.compareEndPoints(v,e))||b==_)break;if(-1==h){if(_==b+1)break;b=w}else _=_==b+1?b:w;w=Math.floor((b+_)/2),l.removeChild(d)}if(g=d.nextSibling,-1==h&&g&&u(g)){s.setEndPoint(n?"EndToStart":"EndToEnd",e);var A;if(/[\r\n]/.test(g.data)){var C=s.duplicate(),x=C.text.replace(/\r\n/g,"\r").length;for(A=C.moveStart("character",x);-1==(h=C.compareEndPoints("StartToEnd",C));)A++,C.moveStart("character",1)}else A=s.text.length;m=new a(g,A)}else p=(i||!n)&&d.previousSibling,m=(f=(i||n)&&d.nextSibling)&&u(f)?new a(f,0):p&&u(p)?new a(p,p.data.length):new a(l,r.getNodeIndex(d));return r.removeNode(d),{boundaryPosition:m,nodeInfo:{nodeIndex:w,containerElement:l}}},f=function(e,t){var n,i,o,a,s=e.offset,c=r.getDocument(e.node),d=l(c).createTextRange(),h=u(e.node);return h?i=(n=e.node).parentNode:(n=s<(a=e.node.childNodes).length?a[s]:null,i=e.node),o=c.createElement("span"),o.innerHTML="&#feff;",n?i.insertBefore(o,n):i.appendChild(o),d.moveToElementText(o),d.collapse(!t),i.removeChild(o),h&&d[t?"moveStart":"moveEnd"]("character",s),d};(i=function(e){this.textRange=e,this.refresh()}).prototype=new s(document),i.prototype.refresh=function(){var e,t,n,i=d(this.textRange);h(this.textRange)?t=e=p(this.textRange,i,!0,!0).boundaryPosition:(e=(n=p(this.textRange,i,!0,!1)).boundaryPosition,t=p(this.textRange,i,!1,!1,n.nodeInfo).boundaryPosition),this.setStart(e.node,e.offset),this.setEnd(t.node,t.offset)},i.prototype.getName=function(){return"WrappedTextRange"},s.copyComparisonConstants(i);var m=function(e){if(e.collapsed)return f(new a(e.startContainer,e.startOffset),!0);var t=f(new a(e.startContainer,e.startOffset),!0),n=f(new a(e.endContainer,e.endOffset),!1),i=l(s.getRangeDocument(e)).createTextRange();return i.setEndPoint("StartToStart",t),i.setEndPoint("EndToEnd",n),i};if(i.rangeToTextRange=m,i.prototype.toTextRange=function(){return m(this)},e.WrappedTextRange=i,!e.features.implementsDomRange||e.config.preferTextRange){var g=function(e){return e("return this;")()}(Function);void 0===g.Range&&(g.Range=i),e.createNativeRange=function(e){return e=c(e,t,"createNativeRange"),l(e).createTextRange()},e.WrappedRange=i}}e.createRange=function(n){return n=c(n,t,"createRange"),new e.WrappedRange(e.createNativeRange(n))},e.createRangyRange=function(e){return e=c(e,t,"createRangyRange"),new s(e)},o.createAliasForDeprecatedMethod(e,"createIframeRange","createRange"),o.createAliasForDeprecatedMethod(e,"createIframeRangyRange","createRangyRange"),e.addShimListener(function(t){var n=t.document;void 0===n.createRange&&(n.createRange=function(){return e.createRange(n)}),n=t=null})}),$.createCoreModule("WrappedSelection",["DomRange","WrappedRange"],function(e,t){function n(e){return"string"==typeof e?/^backward(s)?$/i.test(e):!!e}function i(e,n){if(e){if(E.isWindow(e))return e;if(e instanceof v)return e.win;var i=E.getContentDocument(e,t,n);return E.getWindow(i)}return window}function r(e){return i(e,"getWinSelection").getSelection()}function o(e){return i(e,"getDocSelection").document.selection}function a(e){var t=!1;return e.anchorNode&&(t=1==E.comparePoints(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)),t}function s(e,t,n){var i=n?"end":"start",r=n?"start":"end";e.anchorNode=t[i+"Container"],e.anchorOffset=t[i+"Offset"],e.focusNode=t[r+"Container"],e.focusOffset=t[r+"Offset"]}function l(e){var t=e.nativeSelection;e.anchorNode=t.anchorNode,e.anchorOffset=t.anchorOffset,e.focusNode=t.focusNode,e.focusOffset=t.focusOffset}function c(e){e.anchorNode=e.focusNode=null,e.anchorOffset=e.focusOffset=0,e.rangeCount=0,e.isCollapsed=!0,e._ranges.length=0}function u(t){var n;return t instanceof I?((n=e.createNativeRange(t.getDocument())).setEnd(t.endContainer,t.endOffset),n.setStart(t.startContainer,t.startOffset)):t instanceof k?n=t.nativeRange:$.implementsDomRange&&t instanceof E.getWindow(t.startContainer).Range&&(n=t),n}function d(e){if(!e.length||1!=e[0].nodeType)return!1;for(var t=1,n=e.length;t<n;++t)if(!E.isAncestorOf(e[0],e[t]))return!1;return!0}function h(e){var n=e.getNodes();if(!d(n))throw t.createError("getSingleElementFromRange: range "+e.inspect()+" did not consist of a single element");return n[0]}function p(e){return!!e&&void 0!==e.text}function f(e,t){var n=new k(t);e._ranges=[n],s(e,n,!1),e.rangeCount=1,e.isCollapsed=n.collapsed}function m(t){if(t._ranges.length=0,"None"==t.docSelection.type)c(t);else{var n=t.docSelection.createRange();if(p(n))f(t,n);else{t.rangeCount=n.length;for(var i,r=N(n.item(0)),o=0;o<t.rangeCount;++o)(i=e.createRange(r)).selectNode(n.item(o)),t._ranges.push(i);t.isCollapsed=1==t.rangeCount&&t._ranges[0].collapsed,s(t,t._ranges[t.rangeCount-1],!1)}}}function g(e,n){for(var i=e.docSelection.createRange(),r=h(n),o=N(i.item(0)),a=O(o).createControlRange(),s=0,l=i.length;s<l;++s)a.add(i.item(s));try{a.add(r)}catch(e){throw t.createError("addRange(): Element within the specified Range could not be added to control selection (does it have layout?)")}a.select(),m(e)}function v(e,t,n){this.nativeSelection=e,this.docSelection=t,this._ranges=[],this.win=n,this.refresh()}function b(e){e.win=e.anchorNode=e.focusNode=e._ranges=null,e.rangeCount=e.anchorOffset=e.focusOffset=0,e.detached=!0}function y(e,t){for(var n,i,r=Z.length;r--;)if(n=Z[r],i=n.selection,"deleteAll"==t)b(i);else if(n.win==e)return"delete"==t?(Z.splice(r,1),!0):i;return"deleteAll"==t&&(Z.length=0),null}function _(e,n){for(var i,r=N(n[0].startContainer),o=O(r).createControlRange(),a=0,s=n.length;a<s;++a){i=h(n[a]);try{o.add(i)}catch(e){throw t.createError("setRanges(): Element within one of the specified Ranges could not be added to control selection (does it have layout?)")}}o.select(),m(e)}function w(e,t){if(e.win.document!=N(t))throw new M("WRONG_DOCUMENT_ERR")}function A(t){return function(n,i){var r;this.rangeCount?(r=this.getRangeAt(0))["set"+(t?"Start":"End")](n,i):(r=e.createRange(this.win.document)).setStartAndEnd(n,i),this.setSingleRange(r,this.isBackward())}}function C(e){var t=[],n=new P(e.anchorNode,e.anchorOffset),i=new P(e.focusNode,e.focusOffset),r="function"==typeof e.getName?e.getName():"Selection";if(void 0!==e.rangeCount)for(var o=0,a=e.rangeCount;o<a;++o)t[o]=I.inspect(e.getRangeAt(o));return"["+r+"(Ranges: "+t.join(", ")+")(anchor: "+n.inspect()+", focus: "+i.inspect()+"]"}e.config.checkSelectionRanges=!0;var x,S,E=e.dom,T=e.util,D=T.isHostMethod,I=e.DomRange,k=e.WrappedRange,M=e.DOMException,P=E.DomPosition,$=e.features,N=E.getDocument,O=E.getBody,R=I.rangesEqual,L=D(window,"getSelection"),G=T.isHostObject(document,"selection");$.implementsWinGetSelection=L,$.implementsDocSelection=G;var B=G&&(!L||e.config.preferTextRange);if(B)x=o,e.isSelectionValid=function(e){var t=i(e,"isSelectionValid").document,n=t.selection;return"None"!=n.type||N(n.createRange().parentElement())==t};else{if(!L)return t.fail("Neither document.selection or window.getSelection() detected."),!1;x=r,e.isSelectionValid=function(){return!0}}e.getNativeSelection=x;var F=x();if(!F)return t.fail("Native selection was null (possibly issue 138?)"),!1;var H=e.createNativeRange(document),U=O(document),j=T.areHostProperties(F,["anchorNode","focusNode","anchorOffset","focusOffset"]);$.selectionHasAnchorAndFocus=j;var W=D(F,"extend");$.selectionHasExtend=W;var z="number"==typeof F.rangeCount;$.selectionHasRangeCount=z;var q=!1,V=!0,Y=W?function(t,n){var i=I.getRangeDocument(n),r=e.createRange(i);r.collapseToPoint(n.endContainer,n.endOffset),t.addRange(u(r)),t.extend(n.startContainer,n.startOffset)}:null;T.areHostMethods(F,["addRange","getRangeAt","removeAllRanges"])&&"number"==typeof F.rangeCount&&$.implementsDomRange&&function(){var t=window.getSelection();if(t){for(var n=t.rangeCount,i=n>1,r=[],o=a(t),s=0;s<n;++s)r[s]=t.getRangeAt(s);var l=E.createTestElement(document,"",!1),c=l.appendChild(document.createTextNode("   ")),u=document.createRange();if(u.setStart(c,1),u.collapse(!0),t.removeAllRanges(),t.addRange(u),V=1==t.rangeCount,t.removeAllRanges(),!i){var d=window.navigator.appVersion.match(/Chrome\/(.*?) /);if(d&&parseInt(d[1])>=36)q=!1;else{var h=u.cloneRange();u.setStart(c,0),h.setEnd(c,3),h.setStart(c,2),t.addRange(u),t.addRange(h),q=2==t.rangeCount}}for(E.removeNode(l),t.removeAllRanges(),s=0;s<n;++s)0==s&&o?Y?Y(t,r[s]):(e.warn("Rangy initialization: original selection was backwards but selection has been restored forwards because the browser does not support Selection.extend"),t.addRange(r[s])):t.addRange(r[s])}}(),$.selectionSupportsMultipleRanges=q,$.collapsedNonEditableSelectionsSupported=V;var K,Q=!1;U&&D(U,"createControlRange")&&(K=U.createControlRange(),T.areHostProperties(K,["item","add"])&&(Q=!0)),$.implementsControlRange=Q,S=j?function(e){return e.anchorNode===e.focusNode&&e.anchorOffset===e.focusOffset}:function(e){return!!e.rangeCount&&e.getRangeAt(e.rangeCount-1).collapsed};var X;D(F,"getRangeAt")?X=function(e,t){try{return e.getRangeAt(t)}catch(e){return null}}:j&&(X=function(t){var n=N(t.anchorNode),i=e.createRange(n);return i.setStartAndEnd(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),i.collapsed!==this.isCollapsed&&i.setStartAndEnd(t.focusNode,t.focusOffset,t.anchorNode,t.anchorOffset),i}),v.prototype=e.selectionPrototype;var Z=[],J=function(e){if(e&&e instanceof v)return e.refresh(),e;var t=y(e=i(e,"getNativeSelection")),n=x(e),r=G?o(e):null;return t?(t.nativeSelection=n,t.docSelection=r,t.refresh()):(t=new v(n,r,e),Z.push({win:e,selection:t})),t};e.getSelection=J,T.createAliasForDeprecatedMethod(e,"getIframeSelection","getSelection");var ee=v.prototype;if(!B&&j&&T.areHostMethods(F,["removeAllRanges","addRange"])){ee.removeAllRanges=function(){this.nativeSelection.removeAllRanges(),c(this)};var te=function(e,t){Y(e.nativeSelection,t),e.refresh()};ee.addRange=z?function(t,i){if(Q&&G&&"Control"==this.docSelection.type)g(this,t);else if(n(i)&&W)te(this,t);else{var r;q?r=this.rangeCount:(this.removeAllRanges(),r=0);var o=u(t).cloneRange();try{this.nativeSelection.addRange(o)}catch(e){}if(this.rangeCount=this.nativeSelection.rangeCount,this.rangeCount==r+1){if(e.config.checkSelectionRanges){var a=X(this.nativeSelection,this.rangeCount-1);a&&!R(a,t)&&(t=new k(a))}this._ranges[this.rangeCount-1]=t,s(this,t,re(this.nativeSelection)),this.isCollapsed=S(this)}else this.refresh()}}:function(e,t){n(t)&&W?te(this,e):(this.nativeSelection.addRange(u(e)),this.refresh())},ee.setRanges=function(e){if(Q&&G&&e.length>1)_(this,e);else{this.removeAllRanges();for(var t=0,n=e.length;t<n;++t)this.addRange(e[t])}}}else{if(!(D(F,"empty")&&D(H,"select")&&Q&&B))return t.fail("No means of selecting a Range or TextRange was found"),!1;ee.removeAllRanges=function(){try{if(this.docSelection.empty(),"None"!=this.docSelection.type){var e;if(this.anchorNode)e=N(this.anchorNode);else if("Control"==this.docSelection.type){var t=this.docSelection.createRange();t.length&&(e=N(t.item(0)))}e&&(O(e).createTextRange().select(),this.docSelection.empty())}}catch(e){}c(this)},ee.addRange=function(t){"Control"==this.docSelection.type?g(this,t):(e.WrappedTextRange.rangeToTextRange(t).select(),this._ranges[0]=t,this.rangeCount=1,this.isCollapsed=this._ranges[0].collapsed,s(this,t,!1))},ee.setRanges=function(e){this.removeAllRanges();var t=e.length;t>1?_(this,e):t&&this.addRange(e[0])}}ee.getRangeAt=function(e){if(e<0||e>=this.rangeCount)throw new M("INDEX_SIZE_ERR");return this._ranges[e].cloneRange()};var ne;if(B)ne=function(t){var n;e.isSelectionValid(t.win)?n=t.docSelection.createRange():(n=O(t.win.document).createTextRange()).collapse(!0),"Control"==t.docSelection.type?m(t):p(n)?f(t,n):c(t)};else if(D(F,"getRangeAt")&&"number"==typeof F.rangeCount)ne=function(t){if(Q&&G&&"Control"==t.docSelection.type)m(t);else if(t._ranges.length=t.rangeCount=t.nativeSelection.rangeCount,t.rangeCount){for(var n=0,i=t.rangeCount;n<i;++n)t._ranges[n]=new e.WrappedRange(t.nativeSelection.getRangeAt(n));s(t,t._ranges[t.rangeCount-1],re(t.nativeSelection)),t.isCollapsed=S(t)}else c(t)};else{if(!j||"boolean"!=typeof F.isCollapsed||"boolean"!=typeof H.collapsed||!$.implementsDomRange)return t.fail("No means of obtaining a Range or TextRange from the user's selection was found"),!1;ne=function(e){var t,n=e.nativeSelection;n.anchorNode?(t=X(n,0),e._ranges=[t],e.rangeCount=1,l(e),e.isCollapsed=S(e)):c(e)}}ee.refresh=function(e){var t=e?this._ranges.slice(0):null,n=this.anchorNode,i=this.anchorOffset;if(ne(this),e){var r=t.length;if(r!=this._ranges.length)return!0;if(this.anchorNode!=n||this.anchorOffset!=i)return!0;for(;r--;)if(!R(t[r],this._ranges[r]))return!0;return!1}};var ie=function(e,t){var n=e.getAllRanges();e.removeAllRanges();for(var i=0,r=n.length;i<r;++i)R(t,n[i])||e.addRange(n[i]);e.rangeCount||c(e)};ee.removeRange=Q&&G?function(e){if("Control"==this.docSelection.type){for(var t=this.docSelection.createRange(),n=h(e),i=N(t.item(0)),r=O(i).createControlRange(),o=!1,a=0,s=t.length;a<s;++a)t.item(a)!==n||o?r.add(t.item(a)):o=!0;r.select(),m(this)}else ie(this,e)}:function(e){ie(this,e)};var re;!B&&j&&$.implementsDomRange?(re=a,ee.isBackward=function(){return re(this)}):re=ee.isBackward=function(){return!1},ee.isBackwards=ee.isBackward,ee.toString=function(){for(var e=[],t=0,n=this.rangeCount;t<n;++t)e[t]=""+this._ranges[t];return e.join("")},ee.collapse=function(t,n){w(this,t);var i=e.createRange(t);i.collapseToPoint(t,n),this.setSingleRange(i),this.isCollapsed=!0},ee.collapseToStart=function(){if(!this.rangeCount)throw new M("INVALID_STATE_ERR");var e=this._ranges[0];this.collapse(e.startContainer,e.startOffset)},ee.collapseToEnd=function(){if(!this.rangeCount)throw new M("INVALID_STATE_ERR");var e=this._ranges[this.rangeCount-1];this.collapse(e.endContainer,e.endOffset)},ee.selectAllChildren=function(t){w(this,t);var n=e.createRange(t);n.selectNodeContents(t),this.setSingleRange(n)},ee.deleteFromDocument=function(){if(Q&&G&&"Control"==this.docSelection.type){for(var e,t=this.docSelection.createRange();t.length;)e=t.item(0),t.remove(e),E.removeNode(e);this.refresh()}else if(this.rangeCount){var n=this.getAllRanges();if(n.length){this.removeAllRanges();for(var i=0,r=n.length;i<r;++i)n[i].deleteContents();this.addRange(n[r-1])}}},ee.eachRange=function(e,t){for(var n=0,i=this._ranges.length;n<i;++n)if(e(this.getRangeAt(n)))return t},ee.getAllRanges=function(){var e=[];return this.eachRange(function(t){e.push(t)}),e},ee.setSingleRange=function(e,t){this.removeAllRanges(),this.addRange(e,t)},ee.callMethodOnEachRange=function(e,t){var n=[];return this.eachRange(function(i){n.push(i[e].apply(i,t||[]))}),n},ee.setStart=A(!0),ee.setEnd=A(!1),e.rangePrototype.select=function(e){J(this.getDocument()).setSingleRange(this,e)},ee.changeEachRange=function(e){var t=[],n=this.isBackward();this.eachRange(function(n){e(n),t.push(n)}),this.removeAllRanges(),n&&1==t.length?this.addRange(t[0],"backward"):this.setRanges(t)},ee.containsNode=function(e,t){return this.eachRange(function(n){return n.containsNode(e,t)},!0)||!1},ee.getBookmark=function(e){return{backward:this.isBackward(),rangeBookmarks:this.callMethodOnEachRange("getBookmark",[e])}},ee.moveToBookmark=function(t){for(var n,i,r=[],o=0;n=t.rangeBookmarks[o++];)(i=e.createRange(this.win)).moveToBookmark(n),r.push(i);t.backward?this.setSingleRange(r[0],"backward"):this.setRanges(r)},ee.saveRanges=function(){return{backward:this.isBackward(),ranges:this.callMethodOnEachRange("cloneRange")}},ee.restoreRanges=function(e){this.removeAllRanges();for(var t,n=0;t=e.ranges[n];++n)this.addRange(t,e.backward&&0==n)},ee.toHtml=function(){var e=[];return this.eachRange(function(t){e.push(I.toHtml(t))}),e.join("")},$.implementsTextRange&&(ee.getNativeTextRange=function(){var n;if(n=this.docSelection){var i=n.createRange();if(p(i))return i;throw t.createError("getNativeTextRange: selection is a control selection")}if(this.rangeCount>0)return e.WrappedTextRange.rangeToTextRange(this.getRangeAt(0));throw t.createError("getNativeTextRange: selection contains no range")}),ee.getName=function(){return"WrappedSelection"},ee.inspect=function(){return C(this)},ee.detach=function(){y(this.win,"delete"),b(this)},v.detachAll=function(){y(null,"deleteAll")},v.inspect=C,v.isDirectionBackward=n,e.Selection=v,e.selectionPrototype=ee,e.addShimListener(function(e){void 0===e.getSelection&&(e.getSelection=function(){return J(e)}),e=null})});var G=!1,B=function(e){G||(G=!0,!$.initialized&&$.config.autoInitialize&&d())};return M&&("complete"==document.readyState?B():(e(document,"addEventListener")&&document.addEventListener("DOMContentLoaded",B,!1),O(window,"load",B))),$},this),function(e,t){"function"==typeof define&&define.amd?define(["./rangy-core"],e):"undefined"!=typeof module&&"object"==typeof exports?module.exports=e(require("rangy")):e(t.rangy)}(function(e){return e.createModule("ClassApplier",["WrappedSelection"],function(e,t){function n(e,t){for(var n in e)if(e.hasOwnProperty(n)&&!1===t(n,e[n]))return!1;return!0}function r(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function o(e,t){return!!e&&new RegExp("(?:^|\\s)"+t+"(?:\\s|$)").test(e)}function a(e,t){return"object"==typeof e.classList?e.classList.contains(t):o("string"==typeof e.className?e.className:e.getAttribute("class"),t)}function s(e,t){if("object"==typeof e.classList)e.classList.add(t);else{var n="string"==typeof e.className,i=n?e.className:e.getAttribute("class");i?o(i,t)||(i+=" "+t):i=t,n?e.className=i:e.setAttribute("class",i)}}function l(e){return"string"==typeof e.className?e.className:e.getAttribute("class")}function c(e){return e&&e.split(/\s+/).sort().join(" ")}function u(e){return c(l(e))}function d(e,t){return u(e)==u(t)}function h(e,t){for(var n=t.split(/\s+/),i=0,o=n.length;i<o;++i)if(!a(e,r(n[i])))return!1;return!0}function p(e){var t=e.parentNode;return t&&1==t.nodeType&&!/^(textarea|style|script|select|iframe)$/i.test(t.nodeName)}function f(e,t,n,i,r){var o=e.node,a=e.offset,s=o,l=a;o==i&&a>r&&++l,o!=t||a!=n&&a!=n+1||(s=i,l+=r-n),o==t&&a>n+1&&--l,e.node=s,e.offset=l}function m(e,t,n){e.node==t&&e.offset>n&&--e.offset}function g(e,t,n,i){-1==n&&(n=t.childNodes.length);var r=e.parentNode,o=L.getNodeIndex(e);H(i,function(e){f(e,r,o,t,n)}),t.childNodes.length==n?t.appendChild(e):t.insertBefore(e,t.childNodes[n])}function v(e,t){var n=e.parentNode,i=L.getNodeIndex(e);H(t,function(e){m(e,n,i)}),L.removeNode(e)}function b(e,t,n,i,r){for(var o,a=[];o=e.firstChild;)g(o,t,n++,r),a.push(o);return i&&v(e,r),a}function y(e,t){return b(e,e.parentNode,L.getNodeIndex(e),!0,t)}function _(e,t){var n=e.cloneRange();n.selectNodeContents(t);var i=n.intersection(e);return""!=(i?i.toString():"")}function w(e){for(var t,n=e.getNodes([3]),i=0;(t=n[i])&&!_(e,t);)++i;for(var r=n.length-1;(t=n[r])&&!_(e,t);)--r;return n.slice(i,r+1)}function A(e,t){if(e.attributes.length!=t.attributes.length)return!1;for(var n,i,r,o=0,a=e.attributes.length;o<a;++o)if(n=e.attributes[o],"class"!=(r=n.name)){if(i=t.attributes.getNamedItem(r),null===n!=(null===i))return!1;if(n.specified!=i.specified)return!1;if(n.specified&&n.nodeValue!==i.nodeValue)return!1}return!0}function C(e,t){for(var n,i=0,r=e.attributes.length;i<r;++i)if(n=e.attributes[i].name,(!t||!B(t,n))&&e.attributes[i].specified&&"class"!=n)return!0;return!1}function x(e){var t;return e&&1==e.nodeType&&((t=e.parentNode)&&9==t.nodeType&&"on"==t.designMode||z(e)&&!z(e.parentNode))}function S(e){return(z(e)||1!=e.nodeType&&z(e.parentNode))&&!x(e)}function E(e){return e&&1==e.nodeType&&!q.test(W(e,"display"))}function T(e){if(0==e.data.length)return!0;if(V.test(e.data))return!1;switch(W(e.parentNode,"whiteSpace")){case"pre":case"pre-wrap":case"-moz-pre-wrap":return!1;case"pre-line":if(/[\r\n]/.test(e.data))return!1}return E(e.previousSibling)||E(e.nextSibling)}function D(e){var t,n,i=[];for(t=0;n=e[t++];)i.push(new G(n.startContainer,n.startOffset),new G(n.endContainer,n.endOffset));return i}function I(e,t){for(var n,i,r,o=0,a=e.length;o<a;++o)n=e[o],i=t[2*o],r=t[2*o+1],n.setStartAndEnd(i.node,i.offset,r.node,r.offset)}function k(e,t){return L.isCharacterDataNode(e)?0==t?!!e.previousSibling:t!=e.length||!!e.nextSibling:t>0&&t<e.childNodes.length}function M(e,n,i,r){var o,a,s=0==i;if(L.isAncestorOf(n,e))return e;if(L.isCharacterDataNode(n)){var l=L.getNodeIndex(n);if(0==i)i=l;else{if(i!=n.length)throw t.createError("splitNodeAt() should not be called with offset in the middle of a data node ("+i+" in "+n.data);i=l+1}n=n.parentNode}if(k(n,i)){o=n.cloneNode(!1),a=n.parentNode,o.id&&o.removeAttribute("id");for(var c,u=0;c=n.childNodes[i];)g(c,o,u++,r);return g(o,a,L.getNodeIndex(n)+1,r),n==e?o:M(e,a,L.getNodeIndex(o),r)}if(e!=n){o=n.parentNode;var d=L.getNodeIndex(n);return s||d++,M(e,o,d,r)}return e}function P(e,t){return e.namespaceURI==t.namespaceURI&&e.tagName.toLowerCase()==t.tagName.toLowerCase()&&d(e,t)&&A(e,t)&&"inline"==W(e,"display")&&"inline"==W(t,"display")}function $(e){var t=e?"nextSibling":"previousSibling";return function(n,i){var r=n.parentNode,o=n[t];if(o){if(o&&3==o.nodeType)return o}else if(i&&(o=r[t])&&1==o.nodeType&&P(r,o)){var a=o[e?"firstChild":"lastChild"];if(a&&3==a.nodeType)return a}return null}}function N(e){this.isElementMerge=1==e.nodeType,this.textNodes=[];var t=this.isElementMerge?e.lastChild:e;t&&(this.textNodes[0]=t)}function O(e,t,i){var o,a,s,l,u=this;u.cssClass=u.className=e;var d=null,h={};if("object"==typeof t&&null!==t){for(void 0!==t.elementTagName&&(t.elementTagName=t.elementTagName.toLowerCase()),i=t.tagNames,d=t.elementProperties,h=t.elementAttributes,a=0;l=Q[a++];)t.hasOwnProperty(l)&&(u[l]=t[l]);o=t.normalize}else o=t;u.normalize=void 0===o||o,u.attrExceptions=[];var p=document.createElement(u.elementTagName);u.elementProperties=u.copyPropertiesToElement(d,p,!0),n(h,function(e,t){u.attrExceptions.push(e),h[e]=""+t}),u.elementAttributes=h,u.elementSortedClassName=u.elementProperties.hasOwnProperty("className")?c(u.elementProperties.className+" "+e):e,u.applyToAnyTagName=!1;var f=typeof i;if("string"==f)"*"==i?u.applyToAnyTagName=!0:u.tagNames=r(i.toLowerCase()).split(/\s*,\s*/);else if("object"==f&&"number"==typeof i.length)for(u.tagNames=[],a=0,s=i.length;a<s;++a)"*"==i[a]?u.applyToAnyTagName=!0:u.tagNames.push(i[a].toLowerCase());else u.tagNames=[u.elementTagName]}function R(e,t,n){return new O(e,t,n)}var L=e.dom,G=L.DomPosition,B=L.arrayContains,F=e.util,H=F.forEach,U=F.isHostMethod(document,"createElementNS"),j=function(){function e(e,t,n){return t&&n?" ":""}return function(t,n){if("object"==typeof t.classList)t.classList.remove(n);else{var i="string"==typeof t.className,r=i?t.className:t.getAttribute("class");r=r.replace(new RegExp("(^|\\s)"+n+"(\\s|$)"),e),i?t.className=r:t.setAttribute("class",r)}}}(),W=L.getComputedStyleProperty,z=function(){return"boolean"==typeof document.createElement("div").isContentEditable?function(e){return e&&1==e.nodeType&&e.isContentEditable}:function(e){return!(!e||1!=e.nodeType||"false"==e.contentEditable)&&("true"==e.contentEditable||z(e.parentNode))}}(),q=/^inline(-block|-table)?$/i,V=/[^\r\n\t\f \u200B]/,Y=$(!1),K=$(!0);N.prototype={doMerge:function(e){var t=this.textNodes,n=t[0];if(t.length>1){var i,r=L.getNodeIndex(n),o=[],a=0;H(t,function(t,s){i=t.parentNode,s>0&&(i.removeChild(t),i.hasChildNodes()||L.removeNode(i),e&&H(e,function(e){e.node==t&&(e.node=n,e.offset+=a),e.node==i&&e.offset>r&&--e.offset==r+1&&s<len-1&&(e.node=n,e.offset=a)})),o[s]=t.data,a+=t.data.length}),n.data=o.join("")}return n.data},getLength:function(){for(var e=this.textNodes.length,t=0;e--;)t+=this.textNodes[e].length;return t},toString:function(){var e=[];return H(this.textNodes,function(t,n){e[n]="'"+t.data+"'"}),"[Merge("+e.join(",")+")]"}};var Q=["elementTagName","ignoreWhiteSpace","applyToEditableOnly","useExistingElements","removeEmptyElements","onElementCreate"],X={};O.prototype={elementTagName:"span",elementProperties:{},elementAttributes:{},ignoreWhiteSpace:!0,applyToEditableOnly:!1,useExistingElements:!0,removeEmptyElements:!0,onElementCreate:null,copyPropertiesToElement:function(e,t,n){var i,r,o,a,l,u,d={};for(var h in e)if(e.hasOwnProperty(h))if(a=e[h],l=t[h],"className"==h)s(t,a),s(t,this.className),t[h]=c(t[h]),n&&(d[h]=a);else if("style"==h){r=l,n&&(d[h]=o={});for(i in e[h])e[h].hasOwnProperty(i)&&(r[i]=a[i],n&&(o[i]=r[i]));this.attrExceptions.push(h)}else t[h]=a,n&&(d[h]=t[h],u=X.hasOwnProperty(h)?X[h]:h,this.attrExceptions.push(u));return n?d:""},copyAttributesToElement:function(e,t){for(var n in e)e.hasOwnProperty(n)&&!/^class(?:Name)?$/i.test(n)&&t.setAttribute(n,e[n])},appliesToElement:function(e){return B(this.tagNames,e.tagName.toLowerCase())},getEmptyElements:function(e){var t=this;return e.getNodes([1],function(e){return t.appliesToElement(e)&&!e.hasChildNodes()})},hasClass:function(e){return 1==e.nodeType&&(this.applyToAnyTagName||this.appliesToElement(e))&&a(e,this.className)},getSelfOrAncestorWithClass:function(e){for(;e;){if(this.hasClass(e))return e;e=e.parentNode}return null},isModifiable:function(e){return!this.applyToEditableOnly||S(e)},isIgnorableWhiteSpaceNode:function(e){return this.ignoreWhiteSpace&&e&&3==e.nodeType&&T(e)},postApply:function(e,t,n,r){var o,a,s=e[0],l=e[e.length-1],c=[],u=s,d=l,h=0,p=l.length;H(e,function(e){(a=Y(e,!r))?(o||(o=new N(a),c.push(o)),o.textNodes.push(e),e===s&&(u=o.textNodes[0],h=u.length),e===l&&(d=o.textNodes[0],p=o.getLength())):o=null});var f=K(l,!r);if(f&&(o||(o=new N(l),c.push(o)),o.textNodes.push(f)),c.length){for(i=0,len=c.length;i<len;++i)c[i].doMerge(n);t.setStartAndEnd(u,h,d,p)}},createContainer:function(e){var t,n=L.getDocument(e),i=U&&!L.isHtmlNamespace(e)&&(t=e.namespaceURI)?n.createElementNS(e.namespaceURI,this.elementTagName):n.createElement(this.elementTagName);return this.copyPropertiesToElement(this.elementProperties,i,!1),this.copyAttributesToElement(this.elementAttributes,i),s(i,this.className),this.onElementCreate&&this.onElementCreate(i,this),i},elementHasProperties:function(e,t){var i=this;return n(t,function(t,n){if("className"==t)return h(e,n);if("object"==typeof n){if(!i.elementHasProperties(e[t],n))return!1}else if(e[t]!==n)return!1})},elementHasAttributes:function(e,t){return n(t,function(t,n){if(e.getAttribute(t)!==n)return!1})},applyToTextNode:function(e,t){if(p(e)){var n=e.parentNode;if(1==n.childNodes.length&&this.useExistingElements&&this.appliesToElement(n)&&this.elementHasProperties(n,this.elementProperties)&&this.elementHasAttributes(n,this.elementAttributes))s(n,this.className);else{var i=e.parentNode,r=this.createContainer(i);i.insertBefore(r,e),r.appendChild(e)}}},isRemovable:function(e){return e.tagName.toLowerCase()==this.elementTagName&&u(e)==this.elementSortedClassName&&this.elementHasProperties(e,this.elementProperties)&&!C(e,this.attrExceptions)&&this.elementHasAttributes(e,this.elementAttributes)&&this.isModifiable(e)},isEmptyContainer:function(e){var t=e.childNodes.length;return 1==e.nodeType&&this.isRemovable(e)&&(0==t||1==t&&this.isEmptyContainer(e.firstChild))},removeEmptyContainers:function(e){var t=this,n=e.getNodes([1],function(e){return t.isEmptyContainer(e)}),i=[e],r=D(i);H(n,function(e){v(e,r)}),I(i,r)},undoToTextNode:function(e,t,n,i){if(!t.containsNode(n)){var r=t.cloneRange();r.selectNode(n),r.isPointInRange(t.endContainer,t.endOffset)&&(M(n,t.endContainer,t.endOffset,i),t.setEndAfter(n)),r.isPointInRange(t.startContainer,t.startOffset)&&(n=M(n,t.startContainer,t.startOffset,i))}this.isRemovable(n)?y(n,i):j(n,this.className)},splitAncestorWithClass:function(e,t,n){var i=this.getSelfOrAncestorWithClass(e);i&&M(i,e,t,n)},undoToAncestor:function(e,t){this.isRemovable(e)?y(e,t):j(e,this.className)},applyToRange:function(e,t){var n=this,i=D((t=t||[])||[]);e.splitBoundariesPreservingPositions(i),n.removeEmptyElements&&n.removeEmptyContainers(e);var r=w(e);if(r.length){H(r,function(e){n.isIgnorableWhiteSpaceNode(e)||n.getSelfOrAncestorWithClass(e)||!n.isModifiable(e)||n.applyToTextNode(e,i)});var o=r[r.length-1];e.setStartAndEnd(r[0],0,o,o.length),n.normalize&&n.postApply(r,e,i,!1),I(t,i)}var a=n.getEmptyElements(e);H(a,function(e){s(e,n.className)})},applyToRanges:function(e){for(var t=e.length;t--;)this.applyToRange(e[t],e);return e},applyToSelection:function(t){var n=e.getSelection(t);n.setRanges(this.applyToRanges(n.getAllRanges()))},undoToRange:function(e,t){var n=this,i=D(t=t||[]);e.splitBoundariesPreservingPositions(i),n.removeEmptyElements&&n.removeEmptyContainers(e,i);var r,o,a=w(e),s=a[a.length-1];if(a.length){n.splitAncestorWithClass(e.endContainer,e.endOffset,i),n.splitAncestorWithClass(e.startContainer,e.startOffset,i);for(var l=0,c=a.length;l<c;++l)r=a[l],(o=n.getSelfOrAncestorWithClass(r))&&n.isModifiable(r)&&n.undoToAncestor(o,i);e.setStartAndEnd(a[0],0,s,s.length),n.normalize&&n.postApply(a,e,i,!0),I(t,i)}var u=n.getEmptyElements(e);H(u,function(e){j(e,n.className)})},undoToRanges:function(e){for(var t=e.length;t--;)this.undoToRange(e[t],e);return e},undoToSelection:function(t){var n=e.getSelection(t),i=e.getSelection(t).getAllRanges();this.undoToRanges(i),n.setRanges(i)},isAppliedToRange:function(e){if(e.collapsed||""==e.toString())return!!this.getSelfOrAncestorWithClass(e.commonAncestorContainer);var t=e.getNodes([3]);if(t.length)for(var n,i=0;n=t[i++];)if(!this.isIgnorableWhiteSpaceNode(n)&&_(e,n)&&this.isModifiable(n)&&!this.getSelfOrAncestorWithClass(n))return!1;return!0},isAppliedToRanges:function(e){var t=e.length;if(0==t)return!1;for(;t--;)if(!this.isAppliedToRange(e[t]))return!1;return!0},isAppliedToSelection:function(t){var n=e.getSelection(t);return this.isAppliedToRanges(n.getAllRanges())},toggleRange:function(e){this.isAppliedToRange(e)?this.undoToRange(e):this.applyToRange(e)},toggleSelection:function(e){this.isAppliedToSelection(e)?this.undoToSelection(e):this.applyToSelection(e)},getElementsWithClassIntersectingRange:function(e){var t=[],n=this;return e.getNodes([3],function(e){var i=n.getSelfOrAncestorWithClass(e);i&&!B(t,i)&&t.push(i)}),t},detach:function(){}},O.util={hasClass:a,addClass:s,removeClass:j,getClass:l,hasSameClasses:d,hasAllClasses:h,replaceWithOwnChildren:y,elementsHaveSameNonClassAttributes:A,elementHasNonClassAttributes:C,splitNodeAt:M,isEditableElement:z,isEditingHost:x,isEditable:S},e.CssClassApplier=e.ClassApplier=O,e.createClassApplier=R,F.createAliasForDeprecatedMethod(e,"createCssClassApplier","createClassApplier",t)}),e},this),function(e,t){"function"==typeof define&&define.amd?define(["./rangy-core"],e):"undefined"!=typeof module&&"object"==typeof exports?module.exports=e(require("rangy")):e(t.rangy)}(function(e){return e.createModule("Highlighter",["ClassApplier"],function(e,t){function n(e,t){return e.characterRange.start-t.characterRange.start}function i(e,t){return t?e.getElementById(t):h(e)}function r(e,t){this.type=e,this.converterCreator=t}function o(e,t){g[e]=new r(e,t)}function a(e){var t=g[e];if(t instanceof r)return t.create();throw new Error("Highlighter type '"+e+"' is not valid")}function s(e,t){this.start=e,this.end=t}function l(e,t,n,i,r,o){r?(this.id=r,m=Math.max(m,r+1)):this.id=m++,this.characterRange=t,this.doc=e,this.classApplier=n,this.converter=i,this.containerElementId=o||null,this.applied=!1}function c(e,t){t=t||"textContent",this.doc=e||document,this.classAppliers={},this.highlights=[],this.converter=a(t)}var u=e.dom,d=u.arrayContains,h=u.getBody,p=e.util.createOptions,f=e.util.forEach,m=1,g={};r.prototype.create=function(){var e=this.converterCreator();return e.type=this.type,e},e.registerHighlighterType=o,s.prototype={intersects:function(e){return this.start<e.end&&this.end>e.start},isContiguousWith:function(e){return this.start==e.end||this.end==e.start},union:function(e){return new s(Math.min(this.start,e.start),Math.max(this.end,e.end))},intersection:function(e){return new s(Math.max(this.start,e.start),Math.min(this.end,e.end))},getComplements:function(e){var t=[];if(this.start>=e.start){if(this.end<=e.end)return[];t.push(new s(e.end,this.end))}else t.push(new s(this.start,Math.min(this.end,e.start))),this.end>e.end&&t.push(new s(e.end,this.end));return t},toString:function(){return"[CharacterRange("+this.start+", "+this.end+")]"}},s.fromCharacterRange=function(e){return new s(e.start,e.end)};var v={rangeToCharacterRange:function(e,t){var n=e.getBookmark(t);return new s(n.start,n.end)},characterRangeToRange:function(t,n,i){var r=e.createRange(t);return r.moveToBookmark({start:n.start,end:n.end,containerNode:i}),r},serializeSelection:function(e,t){for(var n=e.getAllRanges(),i=[],r=1==n.length&&e.isBackward(),o=0,a=n.length;o<a;++o)i[o]={characterRange:this.rangeToCharacterRange(n[o],t),backward:r};return i},restoreSelection:function(e,t,n){e.removeAllRanges();for(var i,r,o=e.win.document,a=0,s=t.length;a<s;++a)(r=t[a]).characterRange,i=this.characterRangeToRange(o,r.characterRange,n),e.addRange(i,r.backward)}};o("textContent",function(){return v}),o("TextRange",function(){var t;return function(){if(!t){var n=e.modules.TextRange;if(!n)throw new Error("TextRange module is missing.");if(!n.supported)throw new Error("TextRange module is present but not supported.");t={rangeToCharacterRange:function(e,t){return s.fromCharacterRange(e.toCharacterRange(t))},characterRangeToRange:function(t,n,i){var r=e.createRange(t);return r.selectCharacters(i,n.start,n.end),r},serializeSelection:function(e,t){return e.saveCharacterRanges(t)},restoreSelection:function(e,t,n){e.restoreCharacterRanges(n,t)}}}return t}}()),l.prototype={getContainerElement:function(){return i(this.doc,this.containerElementId)},getRange:function(){return this.converter.characterRangeToRange(this.doc,this.characterRange,this.getContainerElement())},fromRange:function(e){this.characterRange=this.converter.rangeToCharacterRange(e,this.getContainerElement())},getText:function(){return this.getRange().toString()},containsElement:function(e){return this.getRange().containsNodeContents(e.firstChild)},unapply:function(){this.classApplier.undoToRange(this.getRange()),this.applied=!1},apply:function(){this.classApplier.applyToRange(this.getRange()),this.applied=!0},getHighlightElements:function(){return this.classApplier.getElementsWithClassIntersectingRange(this.getRange())},toString:function(){return"[Highlight(ID: "+this.id+", class: "+this.classApplier.className+", character range: "+this.characterRange.start+" - "+this.characterRange.end+")]"}},c.prototype={addClassApplier:function(e){this.classAppliers[e.className]=e},getHighlightForElement:function(e){for(var t=this.highlights,n=0,i=t.length;n<i;++n)if(t[n].containsElement(e))return t[n];return null},removeHighlights:function(e){for(var t,n=0,i=this.highlights.length;n<i;++n)t=this.highlights[n],d(e,t)&&(t.unapply(),this.highlights.splice(n--,1))},removeAllHighlights:function(){this.removeHighlights(this.highlights)},getIntersectingHighlights:function(e){var t=[],n=this.highlights;return f(e,function(e){f(n,function(n){e.intersectsRange(n.getRange())&&!d(t,n)&&t.push(n)})}),t},highlightCharacterRanges:function(t,n,i){var r,o,a,c,u,d,h=this.highlights,m=this.converter,g=this.doc,v=[],b=t?this.classAppliers[t]:null,y=(i=p(i,{containerElementId:null,exclusive:!0})).containerElementId,_=i.exclusive;y&&(c=this.doc.getElementById(y))&&((u=e.createRange(this.doc)).selectNodeContents(c),d=new s(0,u.toString().length));var w,A,C,x,S,E;for(r=0,o=n.length;r<o;++r)if(w=n[r],S=[],d&&(w=w.intersection(d)),w.start!=w.end){for(a=0;a<h.length;++a)C=!1,y==h[a].containerElementId&&(A=h[a].characterRange,E=!(x=b==h[a].classApplier)&&_,(A.intersects(w)||A.isContiguousWith(w))&&(x||E)&&(E&&f(A.getComplements(w),function(e){S.push(new l(g,e,h[a].classApplier,m,null,y))}),C=!0,x&&(w=A.union(w)))),C?(v.push(h[a]),h[a]=new l(g,A.union(w),b,m,null,y)):S.push(h[a]);b&&S.push(new l(g,w,b,m,null,y)),this.highlights=h=S}f(v,function(e){e.unapply()});var T=[];return f(h,function(e){e.applied||(e.apply(),T.push(e))}),T},highlightRanges:function(t,n,i){var r,o=[],a=this.converter,s=(i=p(i,{containerElement:null,exclusive:!0})).containerElement,l=s?s.id:null;return s&&(r=e.createRange(s)).selectNodeContents(s),f(n,function(e){var t=s?r.intersection(e):e;o.push(a.rangeToCharacterRange(t,s||h(e.getDocument())))}),this.highlightCharacterRanges(t,o,{containerElementId:l,exclusive:i.exclusive})},highlightSelection:function(t,n){var r=this.converter,o=!!t&&this.classAppliers[t],a=(n=p(n,{containerElementId:null,selection:e.getSelection(this.doc),exclusive:!0})).containerElementId,l=n.exclusive,c=n.selection,u=i(c.win.document,a);if(!o&&!1!==t)throw new Error("No class applier found for class '"+t+"'");var d=r.serializeSelection(c,u),h=[];f(d,function(e){h.push(s.fromCharacterRange(e.characterRange))});var m=this.highlightCharacterRanges(t,h,{containerElementId:a,exclusive:l});return r.restoreSelection(c,d,u),m},unhighlightSelection:function(t){t=t||e.getSelection(this.doc);var n=this.getIntersectingHighlights(t.getAllRanges());return this.removeHighlights(n),t.removeAllRanges(),n},getHighlightsInSelection:function(t){return t=t||e.getSelection(this.doc),this.getIntersectingHighlights(t.getAllRanges())},selectionOverlapsHighlight:function(e){return this.getHighlightsInSelection(e).length>0},serialize:function(e){var t,i,r,o,s=this,l=s.highlights;return l.sort(n),e=p(e,{serializeHighlightText:!1,type:s.converter.type}),t=e.type,(r=t!=s.converter.type)&&(o=a(t)),i=["type:"+t],f(l,function(t){var n,a=t.characterRange;r&&(n=t.getContainerElement(),a=o.rangeToCharacterRange(s.converter.characterRangeToRange(s.doc,a,n),n));var l=[a.start,a.end,t.id,t.classApplier.className,t.containerElementId];e.serializeHighlightText&&l.push(t.getText()),i.push(l.join("$"))}),i.join("|")},deserialize:function(e){var t,n,r,o=e.split("|"),c=[],u=o[0],d=!1;if(!u||!(t=/^type:(\w+)$/.exec(u)))throw new Error("Serialized highlights are invalid.");(n=t[1])!=this.converter.type&&(r=a(n),d=!0),o.shift();for(var h,p,f,m,g,v,b=o.length;b-- >0;){if(v=o[b].split("$"),f=new s(+v[0],+v[1]),m=v[4]||null,d&&(g=i(this.doc,m),f=this.converter.rangeToCharacterRange(r.characterRangeToRange(this.doc,f,g),g)),!(h=this.classAppliers[v[3]]))throw new Error("No class applier found for class '"+v[3]+"'");(p=new l(this.doc,f,h,this.converter,parseInt(v[2]),m)).apply(),c.push(p)}this.highlights=c}},e.Highlighter=c,e.createHighlighter=function(e,t){return new c(e,t)}}),e},this),function(e,t){"function"==typeof define&&define.amd?define(["./rangy-core"],e):"undefined"!=typeof module&&"object"==typeof exports?module.exports=e(require("rangy")):e(t.rangy)}(function(e){return e.createModule("SaveRestore",["WrappedRange"],function(e,t){function n(e,t){return(t||document).getElementById(e)}function i(e,t){var n,i="selectionBoundary_"+ +new Date+"_"+(""+Math.random()).slice(2),r=f.getDocument(e.startContainer),o=e.cloneRange();return o.collapse(t),n=r.createElement("span"),n.id=i,n.style.lineHeight="0",n.style.display="none",n.className="rangySelectionBoundary",n.appendChild(r.createTextNode(v)),o.insertNode(n),n}function r(e,i,r,o){var a=n(r,e);a?(i[o?"setStartBefore":"setEndBefore"](a),m(a)):t.warn("Marker element has been removed. Cannot restore selection.")}function o(e,t){return t.compareBoundaryPoints(e.START_TO_START,e)}function a(t,n){var r,o,a=e.DomRange.getRangeDocument(t),s=t.toString(),l=g(n);return t.collapsed?(o=i(t,!1),{document:a,markerId:o.id,collapsed:!0}):(o=i(t,!1),r=i(t,!0),{document:a,startMarkerId:r.id,endMarkerId:o.id,collapsed:!1,backward:l,toString:function(){return"original text: '"+s+"', new text: '"+t.toString()+"'"}})}function s(i,o){var a=i.document;void 0===o&&(o=!0);var s=e.createRange(a);if(i.collapsed){var l=n(i.markerId,a);if(l){l.style.display="inline";var c=l.previousSibling;c&&3==c.nodeType?(m(l),s.collapseToPoint(c,c.length)):(s.collapseBefore(l),m(l))}else t.warn("Marker element has been removed. Cannot restore selection.")}else r(a,s,i.startMarkerId,!0),r(a,s,i.endMarkerId,!1);return o&&s.normalizeBoundaries(),s}function l(t,i){var r,s,l=[],c=g(i);(t=t.slice(0)).sort(o);for(var u=0,d=t.length;u<d;++u)l[u]=a(t[u],c);for(u=d-1;u>=0;--u)r=t[u],s=e.DomRange.getRangeDocument(r),r.collapsed?r.collapseAfter(n(l[u].markerId,s)):(r.setEndBefore(n(l[u].endMarkerId,s)),r.setStartAfter(n(l[u].startMarkerId,s)));return l}function c(n){if(!e.isSelectionValid(n))return t.warn("Cannot save selection. This usually happens when the selection is collapsed and the selection document has lost focus."),null;var i=e.getSelection(n),r=i.getAllRanges(),o=1==r.length&&i.isBackward(),a=l(r,o);return o?i.setSingleRange(r[0],o):i.setRanges(r),{win:n,rangeInfos:a,restored:!1}}function u(e){for(var t=[],n=e.length-1;n>=0;n--)t[n]=s(e[n],!0);return t}function d(t,n){if(!t.restored){var i=t.rangeInfos,r=e.getSelection(t.win),o=u(i);1==i.length&&n&&e.features.selectionHasExtend&&i[0].backward?(r.removeAllRanges(),r.addRange(o[0],!0)):r.setRanges(o),t.restored=!0}}function h(e,t){var i=n(t,e);i&&m(i)}function p(e){for(var t,n=e.rangeInfos,i=0,r=n.length;i<r;++i)(t=n[i]).collapsed?h(e.doc,t.markerId):(h(e.doc,t.startMarkerId),h(e.doc,t.endMarkerId))}var f=e.dom,m=f.removeNode,g=e.Selection.isDirectionBackward,v="\ufeff";e.util.extend(e,{saveRange:a,restoreRange:s,saveRanges:l,restoreRanges:u,saveSelection:c,restoreSelection:d,removeMarkerElement:h,removeMarkers:p})}),e},this),function(e,t){"function"==typeof define&&define.amd?define(["./rangy-core"],e):"undefined"!=typeof module&&"object"==typeof exports?module.exports=e(require("rangy")):e(t.rangy)}(function(e){return e.createModule("Serializer",["WrappedSelection"],function(e,t){function n(e){return e.replace(/</g,"&lt;").replace(/>/g,"&gt;")}function i(e,t){t=t||[];var r=e.nodeType,o=e.childNodes,a=o.length,s=[r,e.nodeName,a].join(":"),l="",c="";switch(r){case 3:l=n(e.nodeValue);break;case 8:l="\x3c!--"+n(e.nodeValue)+"--\x3e";break;default:l="<"+s+">",c="</>"}l&&t.push(l);for(var u=0;u<a;++u)i(o[u],t);return c&&t.push(c),t}function r(e){var t=i(e).join("");return v(t).toString(16)}function o(e,t,n){var i=[],r=e;for(n=n||b.getDocument(e).documentElement;r&&r!=n;)i.push(b.getNodeIndex(r,!0)),r=r.parentNode;return i.join("/")+":"+t}function a(e,n,i){n||(n=(i||document).documentElement);for(var r,o=e.split(":"),a=n,s=o[0]?o[0].split("/"):[],l=s.length;l--;){if(!((r=parseInt(s[l],10))<a.childNodes.length))throw t.createError("deserializePosition() failed: node "+b.inspectNode(a)+" has no child with index "+r+", "+l);a=a.childNodes[r]}return new b.DomPosition(a,parseInt(o[1],10))}function s(n,i,a){if(a=a||e.DomRange.getRangeDocument(n).documentElement,!b.isOrIsAncestorOf(a,n.commonAncestorContainer))throw t.createError("serializeRange(): range "+n.inspect()+" is not wholly contained within specified root node "+b.inspectNode(a));var s=o(n.startContainer,n.startOffset,a)+","+o(n.endContainer,n.endOffset,a);return i||(s+="{"+r(a)+"}"),s}function l(n,i,o){i?o=o||b.getDocument(i):i=(o=o||document).documentElement;var s=y.exec(n),l=s[4];if(l){var c=r(i);if(l!==c)throw t.createError("deserializeRange(): checksums of serialized range root node ("+l+") and target root node ("+c+") do not match")}var u=a(s[1],i,o),d=a(s[2],i,o),h=e.createRange(o);return h.setStartAndEnd(u.node,u.offset,d.node,d.offset),h}function c(e,t,n){t||(t=(n||document).documentElement);var i=y.exec(e)[3];return!i||i===r(t)}function u(t,n,i){for(var r=(t=e.getSelection(t)).getAllRanges(),o=[],a=0,l=r.length;a<l;++a)o[a]=s(r[a],n,i);return o.join("|")}function d(t,n,i){n?i=i||b.getWindow(n):n=(i=i||window).document.documentElement;for(var r=t.split("|"),o=e.getSelection(i),a=[],s=0,c=r.length;s<c;++s)a[s]=l(r[s],n,i.document);return o.setRanges(a),o}function h(e,t,n){var i;t?i=n?n.document:b.getDocument(t):t=(n=n||window).document.documentElement;for(var r=e.split("|"),o=0,a=r.length;o<a;++o)if(!c(r[o],t,i))return!1;return!0}function p(e){for(var t,n,i=e.split(/[;,]/),r=0,o=i.length;r<o;++r)if((t=i[r].split("="))[0].replace(/^\s+/,"")==_&&(n=t[1]))return decodeURIComponent(n.replace(/\s+$/,""));return null}function f(e){var t=p((e=e||window).document.cookie);t&&d(t,e.doc)}function m(t,n){t=t||window;var i=(n="object"==typeof n?n:{}).expires?";expires="+n.expires.toUTCString():"",r=n.path?";path="+n.path:"",o=n.domain?";domain="+n.domain:"",a=n.secure?";secure":"",s=u(e.getSelection(t));t.document.cookie=encodeURIComponent(_)+"="+encodeURIComponent(s)+i+r+o+a}var g=e.util;"undefined"!=typeof encodeURIComponent&&"undefined"!=typeof decodeURIComponent||t.fail("encodeURIComponent and/or decodeURIComponent method is missing");var v=function(){function e(e){for(var t,n=[],i=0,r=e.length;i<r;++i)(t=e.charCodeAt(i))<128?n.push(t):t<2048?n.push(t>>6|192,63&t|128):n.push(t>>12|224,t>>6&63|128,63&t|128);return n}function t(){for(var e,t,n=[],i=0;i<256;++i){for(t=i,e=8;e--;)1==(1&t)?t=t>>>1^3988292384:t>>>=1;n[i]=t>>>0}return n}function n(){return i||(i=t()),i}var i=null;return function(t){for(var i=e(t),r=-1,o=n(),a=0,s=i.length;a<s;++a)r=r>>>8^o[255&(r^i[a])];return(-1^r)>>>0}}(),b=e.dom,y=/^([^,]+),([^,\{]+)(\{([^}]+)\})?$/,_="rangySerializedSelection";g.extend(e,{serializePosition:o,deserializePosition:a,serializeRange:s,deserializeRange:l,canDeserializeRange:c,serializeSelection:u,deserializeSelection:d,canDeserializeSelection:h,restoreSelectionFromCookie:f,saveSelectionCookie:m,getElementChecksum:r,nodeToInfoString:i}),g.crc32=v}),e},this),function(e,t){"function"==typeof define&&define.amd?define(["./rangy-core"],e):"undefined"!=typeof module&&"object"==typeof exports?module.exports=e(require("rangy")):e(t.rangy)}(function(e){return e.createModule("TextRange",["WrappedSelection"],function(e,t){function n(e,t){function n(e,t,n){s.push({start:e,end:t,isWord:n})}for(var i,r,o,a=e.join(""),s=[],l=0;i=t.wordRegex.exec(a);){if(r=i.index,o=r+i[0].length,r>l&&n(l,r,!1),t.includeTrailingSpace)for(;Z.test(e[o]);)++o;n(r,o,!0),l=o}return l<e.length&&n(l,e.length,!1),s}function i(e,t){for(var n=e.slice(t.start,t.end),i={isWord:t.isWord,chars:n,toString:function(){return n.join("")}},r=0,o=n.length;r<o;++r)n[r].token=i;return i}function r(e,t,n){for(var r,o=n(e,t),a=[],s=0;r=o[s++];)a.push(i(e,r));return a}function o(e){var t=e||"",n="string"==typeof t?t.split(""):t;return n.sort(function(e,t){return e.charCodeAt(0)-t.charCodeAt(0)}),n.join("").replace(/(.)\1+/g,"$1")}function a(e){var t,n;return e?(t=e.language||J,n={},q(n,se[t]||se[J]),q(n,e),n):se[J]}function s(e,t){var n=V(e,t);return t.hasOwnProperty("wordOptions")&&(n.wordOptions=a(n.wordOptions)),t.hasOwnProperty("characterOptions")&&(n.characterOptions=V(n.characterOptions,oe)),n}function l(e,t){var n=he(e,"display",t),i=e.tagName.toLowerCase();return"block"==n&&re&&pe.hasOwnProperty(i)?pe[i]:n}function c(e){for(var t=f(e),n=0,i=t.length;n<i;++n)if(1==t[n].nodeType&&"none"==l(t[n]))return!0;return!1}function u(e){var t;return 3==e.nodeType&&(t=e.parentNode)&&"hidden"==he(t,"visibility")}function d(e){return e&&(1==e.nodeType&&!/^(inline(-block|-table)?|none)$/.test(l(e))||9==e.nodeType||11==e.nodeType)}function h(e){return W.isCharacterDataNode(e)||!/^(area|base|basefont|br|col|frame|hr|img|input|isindex|link|meta|param)$/i.test(e.nodeName)}function p(e){for(var t=[];e.parentNode;)t.unshift(e.parentNode),e=e.parentNode;return t}function f(e){return p(e).concat([e])}function m(e){for(;e&&!e.nextSibling;)e=e.parentNode;return e?e.nextSibling:null}function g(e,t){return!t&&e.hasChildNodes()?e.firstChild:m(e)}function v(e){var t=e.previousSibling;if(t){for(e=t;e.hasChildNodes();)e=e.lastChild;return e}var n=e.parentNode;return n&&1==n.nodeType?n:null}function b(e){if(!e||3!=e.nodeType)return!1;var t=e.data;if(""===t)return!0;var n=e.parentNode;if(!n||1!=n.nodeType)return!1;var i=he(e.parentNode,"whiteSpace");return/^[\t\n\r ]+$/.test(t)&&/^(normal|nowrap)$/.test(i)||/^[\t\r ]+$/.test(t)&&"pre-line"==i}function y(e){return""===e.data||!!b(e)&&(!e.parentNode||!!c(e))}function _(e){var t=e.nodeType;return 7==t||8==t||c(e)||/^(script|style)$/i.test(e.nodeName)||u(e)||y(e)}function w(e,t){var n=e.nodeType;return 7==n||8==n||1==n&&"none"==l(e,t)}function A(){this.store={}}function C(e,t,n){return function(i){var r=this.cache;if(r.hasOwnProperty(e))return fe++,r[e];me++;var o=t.call(this,n?this[n]:this,i);return r[e]=o,o}}function x(e,t){this.node=e,this.session=t,this.cache=new A,this.positions=new A}function S(e,t){this.offset=t,this.nodeWrapper=e,this.node=e.node,this.session=e.session,this.cache=new A}function E(){return"[Position("+W.inspectNode(this.node)+":"+this.offset+")]"}function T(){return I(),be=new ye}function D(){return be||T()}function I(){be&&be.detach(),be=null}function k(e,n,i,r){function o(){var e=null;return n?(e=s,l||(s=s.previousVisible(),l=!s||i&&s.equals(i))):l||(e=s=s.nextVisible(),l=!s||i&&s.equals(i)),l&&(s=null),e}i&&(n?_(i.node)&&(i=e.previousVisible()):_(i.node)&&(i=i.nextVisible()));var a,s=e,l=!1,c=!1;return{next:function(){if(c)return c=!1,a;for(var e;e=o();)if(e.getCharacter(r))return a=e,e;return null},rewind:function(){if(!a)throw t.createError("createCharacterIterator: cannot rewind. Only one position can be rewound.");c=!0},dispose:function(){e=i=null}}}function M(e,t,n){function i(e){for(var t,n,i=[],r=e?o:a,s=!1,l=!1;t=r.next();){if(n=t.character,X.test(n))l&&(l=!1,s=!0);else{if(s){r.rewind();break}l=!0}i.push(t)}return i}var o=k(e,!1,null,t),a=k(e,!0,null,t),s=n.tokenizer,l=i(!0),c=i(!1).reverse(),u=r(c.concat(l),n,s),d=l.length?u.slice(_e(u,l[0].token)):[],h=c.length?u.slice(0,_e(u,c.pop().token)+1):[];return{nextEndToken:function(){for(var e,t;1==d.length&&!(e=d[0]).isWord&&(t=i(!0)).length>0;)d=r(e.chars.concat(t),n,s);return d.shift()},previousStartToken:function(){for(var e,t;1==h.length&&!(e=h[0]).isWord&&(t=i(!1)).length>0;)h=r(t.reverse().concat(e.chars),n,s);return h.pop()},dispose:function(){o.dispose(),a.dispose(),d=h=null}}}function P(e,t,n,i,r){var o,a,s,l,c=0,u=e,d=Math.abs(n);if(0!==n){var h=n<0;switch(t){case U:for(a=k(e,h,null,i);(o=a.next())&&c<d;)++c,u=o;s=o,a.dispose();break;case j:for(var p=M(e,i,r),f=h?p.previousStartToken:p.nextEndToken;(l=f())&&c<d;)l.isWord&&(++c,u=h?l.chars[0]:l.chars[l.chars.length-1]);break;default:throw new Error("movePositionBy: unit '"+t+"' not implemented")}h?(u=u.previousVisible(),c=-c):u&&u.isLeadingSpace&&!u.isTrailingSpace&&(t==j&&(s=(a=k(e,!1,null,i)).next(),a.dispose()),s&&(u=s.previousVisible()))}return{position:u,unitsMoved:c}}function $(e,t,n,i){var r=e.getRangeBoundaryPosition(t,!0),o=e.getRangeBoundaryPosition(t,!1);return k(i?o:r,!!i,i?r:o,n)}function N(e,t,n){for(var i,r=[],o=$(e,t,n);i=o.next();)r.push(i);return o.dispose(),r}function O(t,n,i){var r=e.createRange(t.node);return r.setStartAndEnd(t.node,t.offset,n.node,n.offset),!r.expand("word",{wordOptions:i})}function R(e,t,n,i,r){function o(e,t){var n=m[e].previousVisible(),i=m[t-1];return{startPos:n,endPos:i,valid:!r.wholeWordsOnly||O(n,i,r.wordOptions)}}for(var a,s,l,c,u,d,h=ee(r.direction),p=k(e,h,e.session.getRangeBoundaryPosition(i,h),r.characterOptions),f="",m=[],g=null;a=p.next();)if(s=a.character,n||r.caseSensitive||(s=s.toLowerCase()),h?(m.unshift(a),f=s+f):(m.push(a),f+=s),n){if(u=t.exec(f))if(l=u.index,c=l+u[0].length,d){if(!h&&c<f.length||h&&l>0){g=o(l,c);break}}else d=!0}else if(-1!=(l=f.indexOf(t))){g=o(l,l+t.length);break}return d&&(g=o(l,c)),p.dispose(),g}function L(e){return function(){var t=!!be,n=[D()].concat(z.toArray(arguments)),i=e.apply(this,n);return t||I(),i}}function G(e,t){return L(function(n,i,r,o){typeof r==H&&(r=i,i=U),o=s(o,ce);var a=e;t&&(a=r>=0,this.collapse(!a));var l=P(n.getRangeBoundaryPosition(this,a),i,r,o.characterOptions,o.wordOptions),c=l.position;return this[a?"setStart":"setEnd"](c.node,c.offset),l.unitsMoved})}function B(e){return L(function(t,n){for(var i,r=$(t,this,n=V(n,oe),!e),o=0;(i=r.next())&&X.test(i.character);)++o;r.dispose();var a=o>0;return a&&this[e?"moveStart":"moveEnd"]("character",e?o:-o,{characterOptions:n}),a})}function F(e){return L(function(t,n){var i=!1;return this.changeEachRange(function(t){i=t[e](n)||i}),i})}var H="undefined",U="character",j="word",W=e.dom,z=e.util,q=z.extend,V=z.createOptions,Y=W.getBody,K=/^[ \t\f\r\n]+$/,Q=/^[ \t\f\r]+$/,X=/^[\t-\r \u0085\u00A0\u1680\u180E\u2000-\u200B\u2028\u2029\u202F\u205F\u3000]+$/,Z=/^[\t \u00A0\u1680\u180E\u2000-\u200B\u202F\u205F\u3000]+$/,J="en",ee=e.Selection.isDirectionBackward,te=!1,ne=!1,ie=!1;!function(){var t=W.createTestElement(document,"<p>1 </p><p></p>",!0),n=t.firstChild,i=e.getSelection();i.collapse(n.lastChild,2),i.setStart(n.firstChild,0),te=1==(""+i).length,t.innerHTML="1 <br />",i.collapse(t,2),i.setStart(t.firstChild,0),ne=1==(""+i).length,t.innerHTML="1 <p>1</p>",i.collapse(t,2),i.setStart(t.firstChild,0),ie=1==(""+i).length,W.removeNode(t),i.removeAllRanges()}();var re,oe={includeBlockContentTrailingSpace:!0,includeSpaceBeforeBr:!0,includeSpaceBeforeBlock:!0,includePreLineTrailingSpace:!0,ignoreCharacters:""},ae={includeBlockContentTrailingSpace:!1,includeSpaceBeforeBr:!ne,includeSpaceBeforeBlock:!ie,includePreLineTrailingSpace:!0},se={en:{wordRegex:/[a-z0-9]+('[a-z0-9]+)*/gi,includeTrailingSpace:!1,tokenizer:n}},le={caseSensitive:!1,withinRange:null,wholeWordsOnly:!1,wrap:!1,direction:"forward",wordOptions:null,characterOptions:null},ce={wordOptions:null,characterOptions:null},ue={wordOptions:null,characterOptions:null,trim:!1,trimStart:!0,trimEnd:!0},de={wordOptions:null,characterOptions:null,direction:"forward"},he=W.getComputedStyleProperty;!function(){var e=document.createElement("table"),t=Y(document);t.appendChild(e),re="block"==he(e,"display"),t.removeChild(e)}();var pe={table:"table",caption:"table-caption",colgroup:"table-column-group",col:"table-column",thead:"table-header-group",tbody:"table-row-group",tfoot:"table-footer-group",tr:"table-row",td:"table-cell",th:"table-cell"};A.prototype={get:function(e){return this.store.hasOwnProperty(e)?this.store[e]:null},set:function(e,t){return this.store[e]=t}};var fe=0,me=0,ge={getPosition:function(e){var t=this.positions;return t.get(e)||t.set(e,new S(this,e))},toString:function(){return"[NodeWrapper("+W.inspectNode(this.node)+")]"}};x.prototype=ge;q(ge,{isCharacterDataNode:C("isCharacterDataNode",W.isCharacterDataNode,"node"),getNodeIndex:C("nodeIndex",W.getNodeIndex,"node"),getLength:C("nodeLength",W.getNodeLength,"node"),containsPositions:C("containsPositions",h,"node"),isWhitespace:C("isWhitespace",b,"node"),isCollapsedWhitespace:C("isCollapsedWhitespace",y,"node"),getComputedDisplay:C("computedDisplay",l,"node"),isCollapsed:C("collapsed",_,"node"),isIgnored:C("ignored",w,"node"),next:C("nextPos",g,"node"),previous:C("previous",v,"node"),getTextNodeInfo:C("textNodeInfo",function(e){var t=null,n=!1,i=he(e.parentNode,"whiteSpace"),r="pre-line"==i;return r?(t=Q,n=!0):"normal"!=i&&"nowrap"!=i||(t=K,n=!0),{node:e,text:e.data,spaceRegex:t,collapseSpaces:n,preLine:r}},"node"),hasInnerText:C("hasInnerText",function(e,t){for(var n=this.session,i=n.getPosition(e.parentNode,this.getNodeIndex()+1),r=n.getPosition(e,0),o=t?i:r,a=t?r:i;o!==a;){if(o.prepopulateChar(),o.isDefinitelyNonEmpty())return!0;o=t?o.previousVisible():o.nextVisible()}return!1},"node"),isRenderedBlock:C("isRenderedBlock",function(e){for(var t=e.getElementsByTagName("br"),n=0,i=t.length;n<i;++n)if(!_(t[n]))return!0;return this.hasInnerText()},"node"),getTrailingSpace:C("trailingSpace",function(e){if("br"==e.tagName.toLowerCase())return"";switch(this.getComputedDisplay()){case"inline":for(var t=e.lastChild;t;){if(!w(t))return 1==t.nodeType?this.session.getNodeWrapper(t).getTrailingSpace():"";t=t.previousSibling}break;case"inline-block":case"inline-table":case"none":case"table-column":case"table-column-group":break;case"table-cell":return"\t";default:return this.isRenderedBlock(!0)?"\n":""}return""},"node"),getLeadingSpace:C("leadingSpace",function(e){switch(this.getComputedDisplay()){case"inline":case"inline-block":case"inline-table":case"none":case"table-column":case"table-column-group":case"table-cell":break;default:return this.isRenderedBlock(!1)?"\n":""}return""},"node")});var ve={character:"",characterType:"EMPTY",isBr:!1,prepopulateChar:function(){var e=this;if(!e.prepopulatedChar){var t=e.node,n=e.offset,i="",r="EMPTY",o=!1;if(n>0)if(3==t.nodeType){var a=t.data,s=a.charAt(n-1),l=e.nodeWrapper.getTextNodeInfo(),c=l.spaceRegex;l.collapseSpaces?c.test(s)?n>1&&c.test(a.charAt(n-2))||(l.preLine&&"\n"===a.charAt(n)?(i=" ",r="PRE_LINE_TRAILING_SPACE_BEFORE_LINE_BREAK"):(i=" ",r="COLLAPSIBLE_SPACE")):(i=s,r="NON_SPACE",o=!0):(i=s,r="UNCOLLAPSIBLE_SPACE",o=!0)}else{var u=t.childNodes[n-1];if(u&&1==u.nodeType&&!_(u)&&("br"==u.tagName.toLowerCase()?(i="\n",e.isBr=!0,r="COLLAPSIBLE_SPACE",o=!1):e.checkForTrailingSpace=!0),!i){var d=t.childNodes[n];d&&1==d.nodeType&&!_(d)&&(e.checkForLeadingSpace=!0)}}e.prepopulatedChar=!0,e.character=i,e.characterType=r,e.isCharInvariant=o}},isDefinitelyNonEmpty:function(){var e=this.characterType;return"NON_SPACE"==e||"UNCOLLAPSIBLE_SPACE"==e},resolveLeadingAndTrailingSpaces:function(){if(this.prepopulatedChar||this.prepopulateChar(),this.checkForTrailingSpace){var e=this.session.getNodeWrapper(this.node.childNodes[this.offset-1]).getTrailingSpace();e&&(this.isTrailingSpace=!0,this.character=e,this.characterType="COLLAPSIBLE_SPACE"),this.checkForTrailingSpace=!1}if(this.checkForLeadingSpace){var t=this.session.getNodeWrapper(this.node.childNodes[this.offset]).getLeadingSpace();t&&(this.isLeadingSpace=!0,this.character=t,this.characterType="COLLAPSIBLE_SPACE"),this.checkForLeadingSpace=!1}},getPrecedingUncollapsedPosition:function(e){for(var t=this;t=t.previousVisible();)if(""!==t.getCharacter(e))return t;return null},getCharacter:function(e){function t(){return d||(c=h.getPrecedingUncollapsedPosition(e),d=!0),c}this.resolveLeadingAndTrailingSpaces();var n=this.character,i=o(e.ignoreCharacters),r=""!==n&&i.indexOf(n)>-1;if(this.isCharInvariant)return r?"":n;var a=["character",e.includeSpaceBeforeBr,e.includeBlockContentTrailingSpace,e.includePreLineTrailingSpace,i].join("_"),s=this.cache.get(a);if(null!==s)return s;var l,c,u="",d=!1,h=this;return"COLLAPSIBLE_SPACE"==this.characterType&&("INCLUDED_TRAILING_LINE_BREAK_AFTER_BR"==this.type?u="\n":" "==n&&(!t()||c.isTrailingSpace||"\n"==c.character||" "==c.character&&"COLLAPSIBLE_SPACE"==c.characterType)||("\n"==n&&this.isLeadingSpace?t()&&"\n"!=c.character&&(u="\n"):(l=this.nextUncollapsed())&&(l.isBr?this.type="TRAILING_SPACE_BEFORE_BR":l.isTrailingSpace&&"\n"==l.character?this.type="TRAILING_SPACE_IN_BLOCK":l.isLeadingSpace&&"\n"==l.character&&(this.type="TRAILING_SPACE_BEFORE_BLOCK"),"\n"==l.character?("TRAILING_SPACE_BEFORE_BR"!=this.type||e.includeSpaceBeforeBr)&&("TRAILING_SPACE_BEFORE_BLOCK"!=this.type||e.includeSpaceBeforeBlock)&&("TRAILING_SPACE_IN_BLOCK"==this.type&&l.isTrailingSpace&&!e.includeBlockContentTrailingSpace||("PRE_LINE_TRAILING_SPACE_BEFORE_LINE_BREAK"!=this.type||"NON_SPACE"!=l.type||e.includePreLineTrailingSpace)&&("\n"==n?l.isTrailingSpace?this.isTrailingSpace||this.isBr&&(l.type="TRAILING_LINE_BREAK_AFTER_BR",t()&&c.isLeadingSpace&&!c.isTrailingSpace&&"\n"==c.character?l.character="":l.type="INCLUDED_TRAILING_LINE_BREAK_AFTER_BR"):u="\n":" "==n&&(u=" "))):u=n))),i.indexOf(u)>-1&&(u=""),this.cache.set(a,u),u},equals:function(e){return!!e&&this.node===e.node&&this.offset===e.offset},inspect:E,toString:function(){return this.character}};S.prototype=ve,q(ve,{next:C("nextPos",function(e){var t=e.nodeWrapper,n=e.node,i=e.offset,r=t.session;if(!n)return null;var o,a,s;return i==t.getLength()?a=(o=n.parentNode)?t.getNodeIndex()+1:0:t.isCharacterDataNode()?(o=n,a=i+1):(s=n.childNodes[i],r.getNodeWrapper(s).containsPositions()?(o=s,a=0):(o=n,a=i+1)),o?r.getPosition(o,a):null}),previous:C("previous",function(e){var t,n,i,r=e.nodeWrapper,o=e.node,a=e.offset,s=r.session;return 0==a?n=(t=o.parentNode)?r.getNodeIndex():0:r.isCharacterDataNode()?(t=o,n=a-1):(i=o.childNodes[a-1],s.getNodeWrapper(i).containsPositions()?(t=i,n=W.getNodeLength(i)):(t=o,n=a-1)),t?s.getPosition(t,n):null}),nextVisible:C("nextVisible",function(e){var t=e.next();if(!t)return null;var n=t.nodeWrapper,i=t.node,r=t;return n.isCollapsed()&&(r=n.session.getPosition(i.parentNode,n.getNodeIndex()+1)),r}),nextUncollapsed:C("nextUncollapsed",function(e){for(var t=e;t=t.nextVisible();)if(t.resolveLeadingAndTrailingSpaces(),""!==t.character)return t;return null}),previousVisible:C("previousVisible",function(e){var t=e.previous();if(!t)return null;var n=t.nodeWrapper,i=t.node,r=t;return n.isCollapsed()&&(r=n.session.getPosition(i.parentNode,n.getNodeIndex())),r})});var be=null,ye=function(){function e(e){var t=new A;return{get:function(n){var i=t.get(n[e]);if(i)for(var r,o=0;r=i[o++];)if(r.node===n)return r;return null},set:function(n){var i=n.node[e];(t.get(i)||t.set(i,[])).push(n)}}}function t(){this.initCaches()}var n=z.isHostProperty(document.documentElement,"uniqueID");return t.prototype={initCaches:function(){this.elementCache=n?function(){var e=new A;return{get:function(t){return e.get(t.uniqueID)},set:function(t){e.set(t.node.uniqueID,t)}}}():e("tagName"),this.textNodeCache=e("data"),this.otherNodeCache=e("nodeName")},getNodeWrapper:function(e){var t;switch(e.nodeType){case 1:t=this.elementCache;break;case 3:t=this.textNodeCache;break;default:t=this.otherNodeCache}var n=t.get(e);return n||(n=new x(e,this),t.set(n)),n},getPosition:function(e,t){return this.getNodeWrapper(e).getPosition(t)},getRangeBoundaryPosition:function(e,t){var n=t?"start":"end";return this.getPosition(e[n+"Container"],e[n+"Offset"])},detach:function(){this.elementCache=this.textNodeCache=this.otherNodeCache=null}},t}();q(W,{nextNode:g,previousNode:v});var _e=Array.prototype.indexOf?function(e,t){return e.indexOf(t)}:function(e,t){for(var n=0,i=e.length;n<i;++n)if(e[n]===t)return n;return-1};q(e.rangePrototype,{moveStart:G(!0,!1),moveEnd:G(!1,!1),move:G(!0,!0),trimStart:B(!0),trimEnd:B(!1),trim:L(function(e,t){var n=this.trimStart(t),i=this.trimEnd(t);return n||i}),expand:L(function(e,t,n){var i=!1,r=(n=s(n,ue)).characterOptions;if(t||(t=U),t==j){var o,a,l=n.wordOptions,c=e.getRangeBoundaryPosition(this,!0),u=e.getRangeBoundaryPosition(this,!1),d=M(c,r,l).nextEndToken(),h=d.chars[0].previousVisible();return o=this.collapsed?d:M(u,r,l).previousStartToken(),a=o.chars[o.chars.length-1],h.equals(c)||(this.setStart(h.node,h.offset),i=!0),a&&!a.equals(u)&&(this.setEnd(a.node,a.offset),i=!0),n.trim&&(n.trimStart&&(i=this.trimStart(r)||i),n.trimEnd&&(i=this.trimEnd(r)||i)),i}return this.moveEnd(U,1,n)}),text:L(function(e,t){return this.collapsed?"":N(e,this,V(t,oe)).join("")}),selectCharacters:L(function(e,t,n,i,r){var o={characterOptions:r};t||(t=Y(this.getDocument())),this.selectNodeContents(t),this.collapse(!0),this.moveStart("character",n,o),this.collapse(!0),this.moveEnd("character",i-n,o)}),toCharacterRange:L(function(e,t,n){t||(t=Y(this.getDocument()));var i,r,o=t.parentNode,a=W.getNodeIndex(t),s=-1==W.comparePoints(this.startContainer,this.endContainer,o,a),l=this.cloneRange();return s?(l.setStartAndEnd(this.startContainer,this.startOffset,o,a),i=-l.text(n).length):(l.setStartAndEnd(o,a,this.startContainer,this.startOffset),i=l.text(n).length),r=i+this.text(n).length,{start:i,end:r}}),findText:L(function(t,n,i){(i=s(i,le)).wholeWordsOnly&&(i.wordOptions.includeTrailingSpace=!1);var r=ee(i.direction),o=i.withinRange;o||(o=e.createRange()).selectNodeContents(this.getDocument());var a=n,l=!1;"string"==typeof a?i.caseSensitive||(a=a.toLowerCase()):l=!0;var c=t.getRangeBoundaryPosition(this,!r),u=o.comparePoint(c.node,c.offset);-1===u?c=t.getRangeBoundaryPosition(o,!0):1===u&&(c=t.getRangeBoundaryPosition(o,!1));for(var d,h=c,p=!1;;)if(d=R(h,a,l,o,i)){if(d.valid)return this.setStartAndEnd(d.startPos.node,d.startPos.offset,d.endPos.node,d.endPos.offset),!0;h=r?d.startPos:d.endPos}else{if(!i.wrap||p)return!1;o=o.cloneRange(),h=t.getRangeBoundaryPosition(o,!r),o.setBoundary(c.node,c.offset,r),p=!0}}),pasteHtml:function(e){if(this.deleteContents(),e){var t=this.createContextualFragment(e),n=t.lastChild;this.insertNode(t),this.collapseAfter(n)}}}),q(e.selectionPrototype,{expand:L(function(e,t,n){this.changeEachRange(function(e){e.expand(t,n)})}),move:L(function(e,t,n,i){var r=0;if(this.focusNode){this.collapse(this.focusNode,this.focusOffset);var o=this.getRangeAt(0);i||(i={}),i.characterOptions=V(i.characterOptions,ae),r=o.move(t,n,i),this.setSingleRange(o)}return r}),trimStart:F("trimStart"),trimEnd:F("trimEnd"),trim:F("trim"),selectCharacters:L(function(t,n,i,r,o,a){var s=e.createRange(n);s.selectCharacters(n,i,r,a),this.setSingleRange(s,o)}),saveCharacterRanges:L(function(e,t,n){for(var i=this.getAllRanges(),r=[],o=1==i.length&&this.isBackward(),a=0,s=i.length;a<s;++a)r[a]={characterRange:i[a].toCharacterRange(t,n),backward:o,characterOptions:n};return r}),restoreCharacterRanges:L(function(t,n,i){this.removeAllRanges();for(var r,o,a,s=0,l=i.length;s<l;++s)a=(o=i[s]).characterRange,(r=e.createRange(n)).selectCharacters(n,a.start,a.end,o.characterOptions),this.addRange(r,o.backward)}),text:L(function(e,t){for(var n=[],i=0,r=this.rangeCount;i<r;++i)n[i]=this.getRangeAt(i).text(t);return n.join("")})}),e.innerText=function(t,n){var i=e.createRange(t);return i.selectNodeContents(t),i.text(n)},e.createWordIterator=function(e,t,n){var i=D();n=s(n,de);var r=M(i.getPosition(e,t),n.characterOptions,n.wordOptions),o=ee(n.direction);return{next:function(){return o?r.previousStartToken():r.nextEndToken()},dispose:function(){r.dispose(),this.next=function(){}}}},e.noMutation=function(e){e(D()),I()},e.noMutation.createEntryPointFunction=L,e.textRange={isBlockNode:d,isCollapsedWhitespaceNode:y,createPosition:L(function(e,t,n){return e.getPosition(t,n)})}}),e},this);var _browserDetect={ie:function(){for(var e=3,t=document.createElement("div"),n=t.getElementsByTagName("i");t.innerHTML="\x3c!--[if gt IE "+ ++e+"]><i></i><![endif]--\x3e",n[0];);return e>4?e:void 0}(),webkit:/AppleWebKit\/([\d.]+)/i.test(navigator.userAgent)},globalContentEditableBlur=!1;_browserDetect.webkit&&(document.addEventListener("mousedown",function(e){var t=(e||window.event).target;if(globalContentEditableBlur&&null!==t){for(var n=!1,i=t;null!==i&&"html"!==i.tagName.toLowerCase()&&!n;)n="true"===i.contentEditable,i=i.parentNode;n||(document.getElementById("textAngular-editableFix-010203040506070809").setSelectionRange(0,0),t.focus(),t.select&&t.select())}globalContentEditableBlur=!1},!1),angular.element(document).ready(function(){angular.element(document.body).append(angular.element('<input id="textAngular-editableFix-010203040506070809" class="ta-hidden-input" aria-hidden="true" unselectable="on" tabIndex="-1">'))}));var BLOCKELEMENTS=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video)$/i,LISTELEMENTS=/^(ul|li|ol)$/i,VALIDELEMENTS=/^(address|article|aside|audio|blockquote|canvas|dd|div|dl|fieldset|figcaption|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|noscript|ol|output|p|pre|section|table|tfoot|ul|video|li)$/i;String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")});var sheet,addCSSRule,removeCSSRule,_addCSSRule,_removeCSSRule,_getRuleIndex;if(_browserDetect.ie>8||void 0===_browserDetect.ie){for(var _sheets=document.styleSheets,i=0;i<_sheets.length;i++)if((0===_sheets[i].media.length||_sheets[i].media.mediaText.match(/(all|screen)/gi))&&_sheets[i].href&&_sheets[i].href.match(/textangular\.(min\.|)css/gi)){sheet=_sheets[i];break}sheet||(sheet=function(){var e=document.createElement("style");return _browserDetect.webkit&&e.appendChild(document.createTextNode("")),document.getElementsByTagName("head")[0].appendChild(e),e.sheet}()),addCSSRule=function(e,t){return _addCSSRule(sheet,e,t)},_addCSSRule=function(e,t,n){var i,r;return e.cssRules?i=Math.max(e.cssRules.length-1,0):e.rules&&(i=Math.max(e.rules.length-1,0)),e.insertRule?e.insertRule(t+"{"+n+"}",i):e.addRule(t,n,i),sheet.rules?r=sheet.rules[i]:sheet.cssRules&&(r=sheet.cssRules[i]),r},_getRuleIndex=function(e,t){var n,i;for(n=0;n<t.length;n++)if(t[n].cssText===e.cssText){i=n;break}return i},removeCSSRule=function(e){_removeCSSRule(sheet,e)},_removeCSSRule=function(e,t){var n=e.cssRules||e.rules;if(n&&0!==n.length){var i=_getRuleIndex(t,n);e.removeRule?e.removeRule(i):e.deleteRule(i)}}}angular.module("textAngular.factories",[]).factory("taBrowserTag",[function(){return function(e){return e?""===e?void 0===_browserDetect.ie?"div":_browserDetect.ie<=8?"P":"p":_browserDetect.ie<=8?e.toUpperCase():e:_browserDetect.ie<=8?"P":"p"}}]).factory("taApplyCustomRenderers",["taCustomRenderers","taDOM",function(e,t){return function(n){var i=angular.element("<div></div>");return i[0].innerHTML=n,angular.forEach(e,function(e){var n=[];e.selector&&""!==e.selector?n=i.find(e.selector):e.customAttribute&&""!==e.customAttribute&&(n=t.getByAttribute(i,e.customAttribute)),angular.forEach(n,function(t){t=angular.element(t),e.selector&&""!==e.selector&&e.customAttribute&&""!==e.customAttribute?void 0!==t.attr(e.customAttribute)&&e.renderLogic(t):e.renderLogic(t)})}),i[0].innerHTML}}]).factory("taFixChrome",function(){return function(e){if(!e||!angular.isString(e)||e.length<=0)return e;for(var t,n,i,r=/<([^>\/]+?)style=("([^"]+)"|'([^']+)')([^>]*)>/gi,o="",a=0;t=r.exec(e);)(n=t[3]||t[4])&&n.match(/line-height: 1.[0-9]{3,12};|color: inherit; line-height: 1.1;/i)&&(n=n.replace(/( |)font-family: inherit;|( |)line-height: 1.[0-9]{3,12};|( |)color: inherit;/gi,""),i="<"+t[1].trim(),n.trim().length>0&&(i+=" style="+t[2].substring(0,1)+n+t[2].substring(0,1)),i+=t[5].trim()+">",o+=e.substring(a,t.index)+i,a=t.index+t[0].length);return o+=e.substring(a),a>0?o.replace(/<span\s?>(.*?)<\/span>(<br(\/|)>|)/gi,"$1"):e}}).factory("taSanitize",["$sanitize",function(e){function t(e,t){for(var n,i=0,r=0,o=/<[^>]*>/gi;n=o.exec(e);)if(r=n.index,"/"===n[0].substr(1,1)){if(0===i)break;i--}else i++;return t+e.substring(0,r)+angular.element(t)[0].outerHTML.substring(t.length)+e.substring(r)}function n(e){if(!e||!angular.isString(e)||e.length<=0)return e;for(var i,o,a,s,l,u,d=/<([^>\/]+?)style=("([^"]+)"|'([^']+)')([^>]*)>/gi,h="",p="",f=0;o=d.exec(e);){s=o[3]||o[4];var m=new RegExp(c,"i");if(angular.isString(s)&&m.test(s)){l="";for(var g=new RegExp(c,"ig");a=g.exec(s);)for(i=0;i<r.length;i++)a[2*i+2]&&(l+="<"+r[i].tag+">");u=n(e.substring(f,o.index)),h.length>0?p+=t(u,h):p+=u,s=s.replace(new RegExp(c,"ig"),""),p+="<"+o[1].trim(),s.length>0&&(p+=' style="'+s+'"'),p+=o[5]+">",f=o.index+o[0].length,h=l}}return h.length>0?p+=t(e.substring(f),h):p+=e.substring(f),p}function i(e){if(!e||!angular.isString(e)||e.length<=0)return e;for(var t,n=/<([^>\/]+?)align=("([^"]+)"|'([^']+)')([^>]*)>/gi,i="",r=0;t=n.exec(e);){i+=e.substring(r,t.index),r=t.index+t[0].length;var o="<"+t[1]+t[5];/style=("([^"]+)"|'([^']+)')/gi.test(o)?o=o.replace(/style=("([^"]+)"|'([^']+)')/i,'style="$2$3 text-align:'+(t[3]||t[4])+';"'):o+=' style="text-align:'+(t[3]||t[4])+';"',i+=o+=">"}return i+e.substring(r)}for(var r=[{property:"font-weight",values:["bold"],tag:"b"},{property:"font-style",values:["italic"],tag:"i"}],o=[],a=0;a<r.length;a++){for(var s="("+r[a].property+":\\s*(",l=0;l<r[a].values.length;l++)l>0&&(s+="|"),s+=r[a].values[l];s+=");)",o.push(s)}var c="("+o.join("|")+")";return function(t,r,o){if(!o)try{t=n(t)}catch(e){}t=i(t);var a;try{a=e(t),o&&(a=t)}catch(e){a=r||""}var s,l=a.match(/(<pre[^>]*>.*?<\/pre[^>]*>)/gi),c=a.replace(/(&#(9|10);)*/gi,""),u=/<pre[^>]*>.*?<\/pre[^>]*>/gi,d=0,h=0;for(a="";null!==(s=u.exec(c))&&d<l.length;)a+=c.substring(h,s.index)+l[d],h=s.index+s[0].length,d++;return a+c.substring(h)}}]).factory("taToolExecuteAction",["$q","$log",function(e,t){return function(n){void 0!==n&&(this.$editor=function(){return n});var i,r=e.defer(),o=r.promise,a=this.$editor();try{i=this.action(r,a.startAction()),o.finally(function(){a.endAction.call(a)})}catch(e){t.error(e)}(i||void 0===i)&&r.resolve()}}]),angular.module("textAngular.DOM",["textAngular.factories"]).factory("taExecCommand",["taSelection","taBrowserTag","$document",function(e,t,n){var i=function(t,n){var i,r,o=t.find("li");for(r=o.length-1;r>=0;r--)i=angular.element("<"+n+">"+o[r].innerHTML+"</"+n+">"),t.after(i);t.remove(),e.setSelectionToElementEnd(i[0])},r=function(t){/(<br(|\/)>)$/i.test(t.innerHTML.trim())?e.setSelectionBeforeElement(angular.element(t).find("br")[0]):e.setSelectionToElementEnd(t)},o=function(e,t){var n=angular.element("<"+t+">"+e[0].innerHTML+"</"+t+">");e.after(n),e.remove(),r(n.find("li")[0])},a=function(e,n,i){for(var o="",a=0;a<e.length;a++)o+="<"+t("li")+">"+e[a].innerHTML+"</"+t("li")+">";var s=angular.element("<"+i+">"+o+"</"+i+">");n.after(s),n.remove(),r(s.find("li")[0])};return function(r,s){return r=t(r),function(l,c,u,d){var h,p,f,m,g,v,b,y=angular.element("<"+r+">");try{b=e.getSelectionElement()}catch(e){}var _=angular.element(b);if(void 0!==b){var w=b.tagName.toLowerCase();if("insertorderedlist"===l.toLowerCase()||"insertunorderedlist"===l.toLowerCase()){var A=t("insertorderedlist"===l.toLowerCase()?"ol":"ul");if(w===A)return i(_,r);if("li"===w&&_.parent()[0].tagName.toLowerCase()===A&&1===_.parent().children().length)return i(_.parent(),r);if("li"===w&&_.parent()[0].tagName.toLowerCase()!==A&&1===_.parent().children().length)return o(_.parent(),A);if(w.match(BLOCKELEMENTS)&&!_.hasClass("ta-bind")){if("ol"===w||"ul"===w)return o(_,A);var C=!1;return angular.forEach(_.children(),function(e){e.tagName.match(BLOCKELEMENTS)&&(C=!0)}),C?a(_.children(),_,A):a([angular.element("<div>"+b.innerHTML+"</div>")[0]],_,A)}if(w.match(BLOCKELEMENTS)){if(0===(m=e.getOnlySelectedElements()).length)p=angular.element("<"+A+"><li>"+b.innerHTML+"</li></"+A+">"),_.html(""),_.append(p);else{if(1===m.length&&("ol"===m[0].tagName.toLowerCase()||"ul"===m[0].tagName.toLowerCase()))return m[0].tagName.toLowerCase()===A?i(angular.element(m[0]),r):o(angular.element(m[0]),A);f="";var x=[];for(h=0;h<m.length;h++)if(3!==m[h].nodeType){var S=angular.element(m[h]);if("li"===m[h].tagName.toLowerCase())continue;"ol"===m[h].tagName.toLowerCase()||"ul"===m[h].tagName.toLowerCase()?f+=S[0].innerHTML:"span"!==m[h].tagName.toLowerCase()||"ol"!==m[h].childNodes[0].tagName.toLowerCase()&&"ul"!==m[h].childNodes[0].tagName.toLowerCase()?f+="<"+t("li")+">"+S[0].innerHTML+"</"+t("li")+">":f+=S[0].childNodes[0].innerHTML,x.unshift(S)}p=angular.element("<"+A+">"+f+"</"+A+">"),x.pop().replaceWith(p),angular.forEach(x,function(e){e.remove()})}return void e.setSelectionToElementEnd(p[0])}}else{if("formatblock"===l.toLowerCase()){for("default"===(v=u.toLowerCase().replace(/[<>]/gi,"")).trim()&&(v=r,u="<"+r+">"),p="li"===w?_.parent():_;!p[0].tagName||!p[0].tagName.match(BLOCKELEMENTS)&&!p.parent().attr("contenteditable");)w=((p=p.parent())[0].tagName||"").toLowerCase();if(w===v){m=p.children();var E=!1;for(h=0;h<m.length;h++)E=E||m[h].tagName.match(BLOCKELEMENTS);E?(p.after(m),g=p.next(),p.remove(),p=g):(y.append(p[0].childNodes),p.after(y),p.remove(),p=y)}else if(p.parent()[0].tagName.toLowerCase()!==v||p.parent().hasClass("ta-bind"))if(w.match(LISTELEMENTS))p.wrap(u);else{for(0===(m=e.getOnlySelectedElements()).length&&(m=[p[0]]),h=0;h<m.length;h++)if(3===m[h].nodeType||!m[h].tagName.match(BLOCKELEMENTS))for(;3===m[h].nodeType||!m[h].tagName||!m[h].tagName.match(BLOCKELEMENTS);)m[h]=m[h].parentNode;if(angular.element(m[0]).hasClass("ta-bind"))(p=angular.element(u))[0].innerHTML=m[0].innerHTML,m[0].innerHTML=p[0].outerHTML;else if("blockquote"===v){for(f="",h=0;h<m.length;h++)f+=m[h].outerHTML;for((p=angular.element(u))[0].innerHTML=f,m[0].parentNode.insertBefore(p[0],m[0]),h=m.length-1;h>=0;h--)m[h].parentNode&&m[h].parentNode.removeChild(m[h])}else for(h=0;h<m.length;h++)(p=angular.element(u))[0].innerHTML=m[h].innerHTML,m[h].parentNode.insertBefore(p[0],m[h]),m[h].parentNode.removeChild(m[h])}else{var T=p.parent(),D=T.contents();for(h=0;h<D.length;h++)T.parent().hasClass("ta-bind")&&3===D[h].nodeType&&((y=angular.element("<"+r+">"))[0].innerHTML=D[h].outerHTML,D[h]=y[0]),T.parent()[0].insertBefore(D[h],T[0]);T.remove()}return void e.setSelectionToElementEnd(p[0])}if("createlink"===l.toLowerCase()){var I='<a href="'+u+'" target="'+(d.a.target?d.a.target:"")+'">';if(e.getSelection().collapsed)e.insertHtml(I+u+"</a>",s);else if(rangy.getSelection().getRangeAt(0).canSurroundContents()){var k=angular.element(I+"</a>")[0];rangy.getSelection().getRangeAt(0).surroundContents(k)}return}if("inserthtml"===l.toLowerCase())return void e.insertHtml(u,s)}}try{n[0].execCommand(l,c,u)}catch(e){}}}}]).service("taSelection",["$document","taDOM",function(e,t){var n=e[0],i=function(e,t){return e.tagName&&e.tagName.match(/^br$/i)&&0===t&&!e.previousSibling?{element:e.parentNode,offset:0}:{element:e,offset:t}},r={getSelection:function(){var e=rangy.getSelection().getRangeAt(0),t=e.commonAncestorContainer,n={start:i(e.startContainer,e.startOffset),end:i(e.endContainer,e.endOffset),collapsed:e.collapsed};return t=3===t.nodeType?t.parentNode:t,t.parentNode===n.start.element||t.parentNode===n.end.element?n.container=t.parentNode:n.container=t,n},getOnlySelectedElements:function(){var e=rangy.getSelection().getRangeAt(0),t=e.commonAncestorContainer;return t=3===t.nodeType?t.parentNode:t,e.getNodes([1],function(e){return e.parentNode===t})},getSelectionElement:function(){return r.getSelection().container},setSelection:function(e,t,n){var i=rangy.createRange();i.setStart(e,t),i.setEnd(e,n),rangy.getSelection().setSingleRange(i)},setSelectionBeforeElement:function(e){var t=rangy.createRange();t.selectNode(e),t.collapse(!0),rangy.getSelection().setSingleRange(t)},setSelectionAfterElement:function(e){var t=rangy.createRange();t.selectNode(e),t.collapse(!1),rangy.getSelection().setSingleRange(t)},setSelectionToElementStart:function(e){var t=rangy.createRange();t.selectNodeContents(e),t.collapse(!0),rangy.getSelection().setSingleRange(t)},setSelectionToElementEnd:function(e){var t=rangy.createRange();t.selectNodeContents(e),t.collapse(!1),e.childNodes&&e.childNodes[e.childNodes.length-1]&&"br"===e.childNodes[e.childNodes.length-1].nodeName&&(t.startOffset=t.endOffset=t.startOffset-1),rangy.getSelection().setSingleRange(t)},insertHtml:function(e,i){var o,a,s,l,c,u,d,h=angular.element("<div>"+e+"</div>"),p=rangy.getSelection().getRangeAt(0),f=n.createDocumentFragment(),m=h[0].childNodes,g=!0;if(m.length>0){for(l=[],s=0;s<m.length;s++)"p"===m[s].nodeName.toLowerCase()&&""===m[s].innerHTML.trim()||3===m[s].nodeType&&""===m[s].nodeValue.trim()||(g=g&&!BLOCKELEMENTS.test(m[s].nodeName),l.push(m[s]));for(var v=0;v<l.length;v++)u=f.appendChild(l[v]);!g&&p.collapsed&&/^(|<br(|\/)>)$/i.test(p.startContainer.innerHTML)&&p.selectNode(p.startContainer)}else g=!0,u=f=n.createTextNode(e);if(g)p.deleteContents();else if(p.collapsed&&p.startContainer!==i)if(p.startContainer.innerHTML&&p.startContainer.innerHTML.match(/^<[^>]*>$/i))o=p.startContainer,1===p.startOffset?(p.setStartAfter(o),p.setEndAfter(o)):(p.setStartBefore(o),p.setEndBefore(o));else{if(3===p.startContainer.nodeType&&p.startContainer.parentNode!==i)for(a=(o=p.startContainer.parentNode).cloneNode(),t.splitNodes(o.childNodes,o,a,p.startContainer,p.startOffset);!VALIDELEMENTS.test(o.nodeName);){angular.element(o).after(a);var b=a;a=(o=o.parentNode).cloneNode(),t.splitNodes(o.childNodes,o,a,b)}else a=(o=p.startContainer).cloneNode(),t.splitNodes(o.childNodes,o,a,void 0,void 0,p.startOffset);if(angular.element(o).after(a),p.setStartAfter(o),p.setEndAfter(o),/^(|<br(|\/)>)$/i.test(o.innerHTML.trim())&&(p.setStartBefore(o),p.setEndBefore(o),angular.element(o).remove()),/^(|<br(|\/)>)$/i.test(a.innerHTML.trim())&&angular.element(a).remove(),"li"===o.nodeName.toLowerCase()){for(d=n.createDocumentFragment(),c=0;c<f.childNodes.length;c++)h=angular.element("<li>"),t.transferChildNodes(f.childNodes[c],h[0]),t.transferNodeAttributes(f.childNodes[c],h[0]),d.appendChild(h[0]);f=d,u&&(u=(u=f.childNodes[f.childNodes.length-1]).childNodes[u.childNodes.length-1])}}else p.deleteContents();p.insertNode(f),u&&r.setSelectionToElementEnd(u)}};return r}]).service("taDOM",function(){var e={getByAttribute:function(t,n){var i=[],r=t.children();return r.length&&angular.forEach(r,function(t){i=i.concat(e.getByAttribute(angular.element(t),n))}),void 0!==t.attr(n)&&i.push(t),i},transferChildNodes:function(e,t){for(t.innerHTML="";e.childNodes.length>0;)t.appendChild(e.childNodes[0]);return t},splitNodes:function(t,n,i,r,o,a){if(!r&&isNaN(a))throw new Error("taDOM.splitNodes requires a splitNode or splitIndex");for(var s=document.createDocumentFragment(),l=document.createDocumentFragment(),c=0;t.length>0&&(isNaN(a)||a!==c)&&t[0]!==r;)s.appendChild(t[0]),c++;for(!isNaN(o)&&o>=0&&t[0]&&(s.appendChild(document.createTextNode(t[0].nodeValue.substring(0,o))),t[0].nodeValue=t[0].nodeValue.substring(o));t.length>0;)l.appendChild(t[0]);e.transferChildNodes(s,n),e.transferChildNodes(l,i)},transferNodeAttributes:function(e,t){for(var n=0;n<e.attributes.length;n++)t.setAttribute(e.attributes[n].name,e.attributes[n].value);return t}};return e}),angular.module("textAngular.validators",[]).directive("taMaxText",function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,i){var r=parseInt(e.$eval(n.taMaxText));if(isNaN(r))throw"Max text must be an integer";n.$observe("taMaxText",function(e){if(r=parseInt(e),isNaN(r))throw"Max text must be an integer";i.$dirty&&i.$validate()}),i.$validators.taMaxText=function(e){var t=angular.element("<div/>");return t.html(e),t.text().length<=r}}}}).directive("taMinText",function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,i){var r=parseInt(e.$eval(n.taMinText));if(isNaN(r))throw"Min text must be an integer";n.$observe("taMinText",function(e){if(r=parseInt(e),isNaN(r))throw"Min text must be an integer";i.$dirty&&i.$validate()}),i.$validators.taMinText=function(e){var t=angular.element("<div/>");return t.html(e),!t.text().length||t.text().length>=r}}}}),angular.module("textAngular.taBind",["textAngular.factories","textAngular.DOM"]).service("_taBlankTest",[function(){var e=/<(a|abbr|acronym|bdi|bdo|big|cite|code|del|dfn|img|ins|kbd|label|map|mark|q|ruby|rp|rt|s|samp|time|tt|var)[^>]*(>|$)/i;return function(t){return function(n){if(!n)return!0;var i,r=/(^[^<]|>)[^<]/i.exec(n);return i=r?r.index:(n=n.toString().replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,"").replace(/="[^"]*"/i,"")).indexOf(">"),n=n.trim().substring(i,i+100),!/^[^<>]+$/i.test(n)&&(!(0!==n.length&&n!==t&&!/^>(\s|&nbsp;)*<\/[^>]+>$/gi.test(n))||!/>\s*[^\s<]/i.test(n)&&!e.test(n))}}}]).directive("taButton",[function(){return{link:function(e,t,n){t.attr("unselectable","on"),t.on("mousedown",function(e,t){return t&&angular.extend(e,t),e.preventDefault(),!1})}}}]).directive("taBind",["taSanitize","$timeout","$document","taFixChrome","taBrowserTag","taSelection","taSelectableElements","taApplyCustomRenderers","taOptions","_taBlankTest","$parse","taDOM","textAngularManager",function(e,t,n,i,r,o,a,s,l,c,u,d,h){return{priority:2,require:["ngModel","?ngModelOptions"],link:function(r,p,f,m){function g(e){var t;return O.forEach(function(n){if(n.keyCode===e.keyCode){var i=(e.metaKey?P:0)+(e.ctrlKey?M:0)+(e.shiftKey?N:0)+(e.altKey?$:0);if(n.forbiddenModifiers&i)return;n.mustHaveModifiers.every(function(e){return i&e})&&(t=n.specialKey)}}),t}var v,b,y,_,w=m[0],A=m[1]||{},C=void 0!==p.attr("contenteditable")&&p.attr("contenteditable"),x=C||"textarea"===p[0].tagName.toLowerCase()||"input"===p[0].tagName.toLowerCase(),S=!1,E=!1,T=!1,D=f.taUnsafeSanitizer||l.disableSanitizer,I=/^(9|19|20|27|33|34|35|36|37|38|39|40|45|112|113|114|115|116|117|118|119|120|121|122|123|144|145)$/i,k=/^(8|13|32|46|59|61|107|109|173|186|187|188|189|190|191|192|219|220|221|222)$/i,M=1,P=2,$=4,N=8,O=[{specialKey:"UndoKey",forbiddenModifiers:$+N,mustHaveModifiers:[P+M],keyCode:90},{specialKey:"RedoKey",forbiddenModifiers:$,mustHaveModifiers:[P+M,N],keyCode:90},{specialKey:"RedoKey",forbiddenModifiers:$+N,mustHaveModifiers:[P+M],keyCode:89},{specialKey:"TabKey",forbiddenModifiers:P+N+$+M,mustHaveModifiers:[],keyCode:9},{specialKey:"ShiftTabKey",forbiddenModifiers:P+$+M,mustHaveModifiers:[N],keyCode:9}];void 0===f.taDefaultWrap&&(f.taDefaultWrap="p"),""===f.taDefaultWrap?(y="",_=void 0===_browserDetect.ie?"<div><br></div>":_browserDetect.ie>=11?"<p><br></p>":_browserDetect.ie<=8?"<P>&nbsp;</P>":"<p>&nbsp;</p>"):(y=void 0===_browserDetect.ie||_browserDetect.ie>=11?"<"+f.taDefaultWrap+"><br></"+f.taDefaultWrap+">":_browserDetect.ie<=8?"<"+f.taDefaultWrap.toUpperCase()+"></"+f.taDefaultWrap.toUpperCase()+">":"<"+f.taDefaultWrap+"></"+f.taDefaultWrap+">",_=void 0===_browserDetect.ie||_browserDetect.ie>=11?"<"+f.taDefaultWrap+"><br></"+f.taDefaultWrap+">":_browserDetect.ie<=8?"<"+f.taDefaultWrap.toUpperCase()+">&nbsp;</"+f.taDefaultWrap.toUpperCase()+">":"<"+f.taDefaultWrap+">&nbsp;</"+f.taDefaultWrap+">"),A.$options||(A.$options={});var R=c(_),L=function(e){if(R(e))return e;var t=angular.element("<div>"+e+"</div>");if(0===t.children().length)e="<"+f.taDefaultWrap+">"+e+"</"+f.taDefaultWrap+">";else{var n,i=t[0].childNodes,r=!1;for(n=0;n<i.length&&!(r=i[n].nodeName.toLowerCase().match(BLOCKELEMENTS));n++);if(r)for(e="",n=0;n<i.length;n++){var o=i[n],a=o.nodeName.toLowerCase();if("#comment"===a)e+="\x3c!--"+o.nodeValue+"--\x3e";else if("#text"===a){var s=o.textContent;s.trim()?e+="<"+f.taDefaultWrap+">"+s+"</"+f.taDefaultWrap+">":e+=s}else if(a.match(BLOCKELEMENTS))e+=o.outerHTML;else{var l=o.outerHTML||o.nodeValue;""!==l.trim()?e+="<"+f.taDefaultWrap+">"+l+"</"+f.taDefaultWrap+">":e+=l}}else e="<"+f.taDefaultWrap+">"+e+"</"+f.taDefaultWrap+">"}return e};f.taPaste&&(b=u(f.taPaste)),p.addClass("ta-bind");var G;r["$undoManager"+(f.id||"")]=w.$undoManager={_stack:[],_index:0,_max:1e3,push:function(e){return void 0===e||null===e||void 0!==this.current()&&null!==this.current()&&e===this.current()?e:(this._index<this._stack.length-1&&(this._stack=this._stack.slice(0,this._index+1)),this._stack.push(e),G&&t.cancel(G),this._stack.length>this._max&&this._stack.shift(),this._index=this._stack.length-1,e)},undo:function(){return this.setToIndex(this._index-1)},redo:function(){return this.setToIndex(this._index+1)},setToIndex:function(e){if(!(e<0||e>this._stack.length-1))return this._index=e,this.current()},current:function(){return this._stack[this._index]}};var B,F=r["$undoTaBind"+(f.id||"")]=function(){if(!S&&C){var e=w.$undoManager.undo();void 0!==e&&null!==e&&(ne(e),j(e,!1),B&&t.cancel(B),B=t(function(){p[0].focus(),o.setSelectionToElementEnd(p[0])},1))}},H=r["$redoTaBind"+(f.id||"")]=function(){if(!S&&C){var e=w.$undoManager.redo();void 0!==e&&null!==e&&(ne(e),j(e,!1),B&&t.cancel(B),B=t(function(){p[0].focus(),o.setSelectionToElementEnd(p[0])},1))}},U=function(){if(C)return p[0].innerHTML;if(x)return p.val();throw"textAngular Error: attempting to update non-editable taBind"},j=function(e,t,n){T=n||!1,void 0!==t&&null!==t||(t=C),void 0!==e&&null!==e||(e=U()),R(e)?(""!==w.$viewValue&&w.$setViewValue(""),t&&""!==w.$undoManager.current()&&w.$undoManager.push("")):(te(),w.$viewValue!==e&&(w.$setViewValue(e),t&&w.$undoManager.push(e))),w.$render()};r["updateTaBind"+(f.id||"")]=function(){S||j(void 0,void 0,!0)};var W=function(t){return w.$oldViewValue=e(i(t),w.$oldViewValue,D)};if(p.attr("required")&&(w.$validators.required=function(e,t){return!R(e||t)}),w.$parsers.push(W),w.$parsers.unshift(L),w.$formatters.push(W),w.$formatters.unshift(L),w.$formatters.unshift(function(e){return w.$undoManager.push(e||"")}),x)if(r.events={},C){var z=!1,q=function(n){var i=n.match(/content=["']*OneNote.File/i);if(n&&n.trim().length){if(n.match(/class=["']*Mso(Normal|List)/i)||n.match(/content=["']*Word.Document/i)||n.match(/content=["']*OneNote.File/i)){var a=n.match(/<!--StartFragment-->([\s\S]*?)<!--EndFragment-->/i);a=(a=a?a[1]:n).replace(/<o:p>[\s\S]*?<\/o:p>/gi,"").replace(/class=(["']|)MsoNormal(["']|)/gi,"");var s=angular.element("<div>"+a+"</div>"),l=angular.element("<div></div>"),c={element:null,lastIndent:[],lastLi:null,isUl:!1};c.lastIndent.peek=function(){var e=this.length;if(e>0)return this[e-1]};for(var u=function(e){c.isUl=e,c.element=angular.element(e?"<ul>":"<ol>"),c.lastIndent=[],c.lastIndent.peek=function(){var e=this.length;if(e>0)return this[e-1]},c.lastLevelMatch=null},h=0;h<=s[0].childNodes.length;h++)if(s[0].childNodes[h]&&"#text"!==s[0].childNodes[h].nodeName){var f=s[0].childNodes[h].tagName.toLowerCase();if("p"===f||"h1"===f||"h2"===f||"h3"===f||"h4"===f||"h5"===f||"h6"===f){var m=angular.element(s[0].childNodes[h]),g=(m.attr("class")||"").match(/MsoList(Bullet|Number|Paragraph)(CxSp(First|Middle|Last)|)/i);if(g){if(m[0].childNodes.length<2||m[0].childNodes[1].childNodes.length<1)continue;var v="bullet"===g[1].toLowerCase()||"number"!==g[1].toLowerCase()&&!(/^[^0-9a-z<]*[0-9a-z]+[^0-9a-z<>]</i.test(m[0].childNodes[1].innerHTML)||/^[^0-9a-z<]*[0-9a-z]+[^0-9a-z<>]</i.test(m[0].childNodes[1].childNodes[0].innerHTML)),y=(m.attr("style")||"").match(/margin-left:([\-\.0-9]*)/i),_=parseFloat(y?y[1]:0),A=(m.attr("style")||"").match(/mso-list:l([0-9]+) level([0-9]+) lfo[0-9+]($|;)/i);if(A&&A[2]&&(_=parseInt(A[2])),A&&(!c.lastLevelMatch||A[1]!==c.lastLevelMatch[1])||!g[3]||"first"===g[3].toLowerCase()||null===c.lastIndent.peek()||c.isUl!==v&&c.lastIndent.peek()===_)u(v),l.append(c.element);else if(null!=c.lastIndent.peek()&&c.lastIndent.peek()<_)c.element=angular.element(v?"<ul>":"<ol>"),c.lastLi.append(c.element);else if(null!=c.lastIndent.peek()&&c.lastIndent.peek()>_){for(;null!=c.lastIndent.peek()&&c.lastIndent.peek()>_;)if("li"!==c.element.parent()[0].tagName.toLowerCase()){if(!/[uo]l/i.test(c.element.parent()[0].tagName.toLowerCase()))break;c.element=c.element.parent(),c.lastIndent.pop()}else c.element=c.element.parent();c.isUl="ul"===c.element[0].tagName.toLowerCase(),v!==c.isUl&&(u(v),l.append(c.element))}c.lastLevelMatch=A,_!==c.lastIndent.peek()&&c.lastIndent.push(_),c.lastLi=angular.element("<li>"),c.element.append(c.lastLi),c.lastLi.html(m.html().replace(/<!(--|)\[if !supportLists\](--|)>[\s\S]*?<!(--|)\[endif\](--|)>/gi,"")),m.remove()}else u(!1),l.append(m)}}var C=function(e){for(var t=(e=angular.element(e))[0].childNodes.length-1;t>=0;t--)e.after(e[0].childNodes[t]);e.remove()};angular.forEach(l.find("span"),function(e){e.removeAttribute("lang"),e.attributes.length<=0&&C(e)}),angular.forEach(l.find("font"),C),n=l.html(),i&&(n=l.html()||s.html())}else{if((n=n.replace(/<(|\/)meta[^>]*?>/gi,"")).match(/<[^>]*?(ta-bind)[^>]*?>/)){if(n.match(/<[^>]*?(text-angular)[^>]*?>/)){var x=angular.element("<div>"+n+"</div>");x.find("textarea").remove();for(var S=d.getByAttribute(x,"ta-bind"),E=0;E<S.length;E++){for(var T=S[E][0].parentNode.parentNode,I=0;I<S[E][0].childNodes.length;I++)T.parentNode.insertBefore(S[E][0].childNodes[I],T);T.parentNode.removeChild(T)}n=x.html().replace('<br class="Apple-interchange-newline">',"")}}else n.match(/^<span/)&&(n.match(/<span class=(\"Apple-converted-space\"|\'Apple-converted-space\')>.<\/span>/gi)||(n=n.replace(/<(|\/)span[^>]*?>/gi,"")));n=n.replace(/<br class="Apple-interchange-newline"[^>]*?>/gi,"").replace(/<span class="Apple-converted-space">( |&nbsp;)<\/span>/gi,"&nbsp;")}/<li(\s.*)?>/i.test(n)&&!1===/(<ul(\s.*)?>|<ol(\s.*)?>).*<li(\s.*)?>/i.test(n)&&(n=n.replace(/<li(\s.*)?>.*<\/li(\s.*)?>/i,"<ul>$&</ul>")),n=n.replace(/^[ |\u00A0]+/gm,function(e){for(var t="",n=0;n<e.length;n++)t+="&nbsp;";return t}).replace(/\n|\r\n|\r/g,"<br />").replace(/\t/g,"&nbsp;&nbsp;&nbsp;&nbsp;"),b&&(n=b(r,{$html:n})||n),n=e(n,"",D),o.insertHtml(n,p[0]),t(function(){w.$setViewValue(U()),z=!1,p.removeClass("processing-paste")},0)}else z=!1,p.removeClass("processing-paste")};p.on("paste",r.events.paste=function(e,i){if(i&&angular.extend(e,i),S||z)return e.stopPropagation(),e.preventDefault(),!1;z=!0,p.addClass("processing-paste");var r,o=(e.originalEvent||e).clipboardData;if(o&&o.getData&&o.types.length>0){for(var a="",s=0;s<o.types.length;s++)a+=" "+o.types[s];return/text\/html/i.test(a)?r=o.getData("text/html"):/text\/plain/i.test(a)&&(r=o.getData("text/plain")),q(r),e.stopPropagation(),e.preventDefault(),!1}var l=rangy.saveSelection(),c=angular.element('<div class="ta-hidden-input" contenteditable="true"></div>');n.find("body").append(c),c[0].focus(),t(function(){rangy.restoreSelection(l),q(c[0].innerHTML),p[0].focus(),c.remove()},0)}),p.on("cut",r.events.cut=function(e){S?e.preventDefault():t(function(){w.$setViewValue(U())},0)}),p.on("keydown",r.events.keydown=function(e,t){t&&angular.extend(e,t),e.specialKey=g(e);var n;if(l.keyMappings.forEach(function(t){e.specialKey===t.commandKeyCode&&(e.specialKey=void 0),t.testForKey(e)&&(n=t.commandKeyCode),"UndoKey"!==t.commandKeyCode&&"RedoKey"!==t.commandKeyCode||t.enablePropagation||e.preventDefault()}),void 0!==n&&(e.specialKey=n),void 0===e.specialKey||"UndoKey"===e.specialKey&&"RedoKey"===e.specialKey||(e.preventDefault(),h.sendKeyCommand(r,e)),!S&&("UndoKey"===e.specialKey&&(F(),e.preventDefault()),"RedoKey"===e.specialKey&&(H(),e.preventDefault()),13===e.keyCode&&!e.shiftKey)){var i,a=o.getSelectionElement();if(!a.tagName.match(VALIDELEMENTS))return;var s=angular.element(y);if(function(e,t){for(var n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}(["blockquote","ul","ol"],a.parentNode.tagName.toLowerCase())){if(/^<br(|\/)>$/i.test(a.innerHTML.trim())&&!a.nextSibling){var c=(i=angular.element(a)).parent();c.after(s),i.remove(),0===c.children().length&&c.remove(),o.setSelectionToElementStart(s[0]),e.preventDefault()}/^<[^>]+><br(|\/)><\/[^>]+>$/i.test(a.innerHTML.trim())&&((i=angular.element(a)).after(s),i.remove(),o.setSelectionToElementStart(s[0]),e.preventDefault())}}});var V;if(p.on("keyup",r.events.keyup=function(e,n){if(n&&angular.extend(e,n),9!==e.keyCode){if(G&&t.cancel(G),!S&&!I.test(e.keyCode)){if(""!==y&&13===e.keyCode&&!e.shiftKey){for(var i=o.getSelectionElement();!i.tagName.match(VALIDELEMENTS)&&i!==p[0];)i=i.parentNode;if(i.tagName.toLowerCase()!==f.taDefaultWrap&&"li"!==i.tagName.toLowerCase()&&(""===i.innerHTML.trim()||"<br>"===i.innerHTML.trim())){var r=angular.element(y);angular.element(i).replaceWith(r),o.setSelectionToElementStart(r[0])}}var a=U();""!==y&&""===a.trim()?(ne(y),o.setSelectionToElementStart(p.children()[0])):"<"!==a.substring(0,1)&&f.taDefaultWrap;var s=v!==e.keyCode&&k.test(e.keyCode);V&&t.cancel(V),V=t(function(){j(a,s,!0)},A.$options.debounce||400),s||(G=t(function(){w.$undoManager.push(a)},250)),v=e.keyCode}}else o.getSelection().start.element===p[0]&&p.children().length&&o.setSelectionToElementStart(p.children()[0])}),p.on("blur",r.events.blur=function(){E=!1,S?(T=!0,w.$render()):j(void 0,void 0,!0)}),f.placeholder&&(_browserDetect.ie>8||void 0===_browserDetect.ie)){var Y;if(!f.id)throw"textAngular Error: An unique ID is required for placeholders to work";Y=addCSSRule("#"+f.id+".placeholder-text:before",'content: "'+f.placeholder+'"'),r.$on("$destroy",function(){removeCSSRule(Y)})}p.on("focus",r.events.focus=function(){E=!0,p.removeClass("placeholder-text"),te()}),p.on("mouseup",r.events.mouseup=function(){o.getSelection().start.element===p[0]&&p.children().length&&o.setSelectionToElementStart(p.children()[0])}),p.on("mousedown",r.events.mousedown=function(e,t){t&&angular.extend(e,t),e.stopPropagation()})}else{p.on("change blur",r.events.change=r.events.blur=function(){S||w.$setViewValue(U())}),p.on("keydown",r.events.keydown=function(e,t){if(t&&angular.extend(e,t),9===e.keyCode){var n=this.selectionStart,i=this.selectionEnd,r=p.val();if(e.shiftKey){var o=r.lastIndexOf("\n",n),a=r.lastIndexOf("\t",n);-1!==a&&a>=o&&(p.val(r.substring(0,a)+r.substring(a+1)),this.selectionStart=this.selectionEnd=n-1)}else p.val(r.substring(0,n)+"\t"+r.substring(i)),this.selectionStart=this.selectionEnd=n+1;e.preventDefault()}});var K=function(e,t){for(var n="",i=0;i<t;i++)n+=e;return n},Q=function(e,t,n){for(var i=0;i<e.length;i++)t.call(n,i,e[i])},X=function(e,t){var n="",i=e.childNodes;return t++,n+=K("\t",t-1)+e.outerHTML.substring(0,4),Q(i,function(e,i){var r=i.nodeName.toLowerCase();"#comment"!==r?"#text"!==r?i.outerHTML&&(n+="ul"===r||"ol"===r?"\n"+X(i,t):"\n"+K("\t",t)+i.outerHTML):n+=i.textContent:n+="\x3c!--"+i.nodeValue+"--\x3e"}),n+="\n"+K("\t",t-1)+e.outerHTML.substring(e.outerHTML.lastIndexOf("<"))};w.$formatters.unshift(function(e){var t=angular.element("<div>"+e+"</div>")[0].childNodes;return t.length>0&&(e="",Q(t,function(t,n){var i=n.nodeName.toLowerCase();"#comment"!==i?"#text"!==i?n.outerHTML&&(e.length>0&&(e+="\n"),e+="ul"===i||"ol"===i?""+X(n,0):""+n.outerHTML):e+=n.textContent:e+="\x3c!--"+n.nodeValue+"--\x3e"})),e})}var Z,J=function(e){return r.$emit("ta-element-select",this),e.preventDefault(),!1},ee=function(e,n){if(n&&angular.extend(e,n),!dropFired&&!S){dropFired=!0;var i;i=e.originalEvent?e.originalEvent.dataTransfer:e.dataTransfer,r.$emit("ta-drop-event",this,e,i),t(function(){dropFired=!1,j(void 0,void 0,!0)},100)}},te=r["reApplyOnSelectorHandlers"+(f.id||"")]=function(){S||angular.forEach(a,function(e){p.find(e).off("click",J).on("click",J)})},ne=function(e){p[0].innerHTML=e},ie=!1;w.$render=function(){if(!ie){ie=!0;var e=w.$viewValue||"";T||(C&&E&&(p.removeClass("placeholder-text"),Z&&t.cancel(Z),Z=t(function(){E||(p[0].focus(),o.setSelectionToElementEnd(p.children()[p.children().length-1])),Z=void 0},1)),C?(ne(f.placeholder?""===e?y:e:""===e?y:e),S?p.off("drop",ee):(te(),p.on("drop",ee))):"textarea"!==p[0].tagName.toLowerCase()&&"input"!==p[0].tagName.toLowerCase()?ne(s(e)):p.val(e)),C&&f.placeholder&&(""===e?E?p.removeClass("placeholder-text"):p.addClass("placeholder-text"):p.removeClass("placeholder-text")),ie=T=!1}},f.taReadonly&&((S=r.$eval(f.taReadonly))?(p.addClass("ta-readonly"),"textarea"!==p[0].tagName.toLowerCase()&&"input"!==p[0].tagName.toLowerCase()||p.attr("disabled","disabled"),void 0!==p.attr("contenteditable")&&p.attr("contenteditable")&&p.removeAttr("contenteditable")):(p.removeClass("ta-readonly"),"textarea"===p[0].tagName.toLowerCase()||"input"===p[0].tagName.toLowerCase()?p.removeAttr("disabled"):C&&p.attr("contenteditable","true")),r.$watch(f.taReadonly,function(e,t){t!==e&&(e?(p.addClass("ta-readonly"),"textarea"!==p[0].tagName.toLowerCase()&&"input"!==p[0].tagName.toLowerCase()||p.attr("disabled","disabled"),void 0!==p.attr("contenteditable")&&p.attr("contenteditable")&&p.removeAttr("contenteditable"),angular.forEach(a,function(e){p.find(e).on("click",J)}),p.off("drop",ee)):(p.removeClass("ta-readonly"),"textarea"===p[0].tagName.toLowerCase()||"input"===p[0].tagName.toLowerCase()?p.removeAttr("disabled"):C&&p.attr("contenteditable","true"),angular.forEach(a,function(e){p.find(e).off("click",J)}),p.on("drop",ee)),S=e)})),C&&!S&&(angular.forEach(a,function(e){p.find(e).on("click",J)}),p.on("drop",ee),p.on("blur",function(){_browserDetect.webkit&&(globalContentEditableBlur=!0)}))}}}]);var dropFired=!1,textAngular=angular.module("textAngular",["ngSanitize","textAngularSetup","textAngular.factories","textAngular.DOM","textAngular.validators","textAngular.taBind"]);textAngular.config([function(){angular.forEach(taTools,function(e,t){delete taTools[t]})}]),textAngular.directive("textAngular",["$compile","$timeout","taOptions","taSelection","taExecCommand","textAngularManager","$document","$animate","$log","$q","$parse",function(e,t,n,i,r,o,a,s,l,c,u){return{require:"?ngModel",scope:{},restrict:"EA",priority:2,link:function(d,h,p,f){var m,g,v,b,y,_,w,A,C,x,S,E=p.serial?p.serial:Math.floor(1e16*Math.random());d._name=p.name?p.name:"textAngularEditor"+E;var T=function(e,n,i){t(function(){var t=function(){e.off(n,t),i.apply(this,arguments)};e.on(n,t)},100)};if(C=r(p.taDefaultWrap),angular.extend(d,angular.copy(n),{wrapSelection:function(e,t,n){"undo"===e.toLowerCase()?d["$undoTaBindtaTextElement"+E]():"redo"===e.toLowerCase()?d["$redoTaBindtaTextElement"+E]():(C(e,!1,t,d.defaultTagAttributes),n&&d["reApplyOnSelectorHandlerstaTextElement"+E](),d.displayElements.text[0].focus())},showHtml:d.$eval(p.taShowHtml)||!1}),p.taFocussedClass&&(d.classes.focussed=p.taFocussedClass),p.taTextEditorClass&&(d.classes.textEditor=p.taTextEditorClass),p.taHtmlEditorClass&&(d.classes.htmlEditor=p.taHtmlEditorClass),p.taDefaultTagAttributes)try{angular.extend(d.defaultTagAttributes,angular.fromJson(p.taDefaultTagAttributes))}catch(e){l.error(e)}p.taTextEditorSetup&&(d.setup.textEditorSetup=d.$parent.$eval(p.taTextEditorSetup)),p.taHtmlEditorSetup&&(d.setup.htmlEditorSetup=d.$parent.$eval(p.taHtmlEditorSetup)),p.taFileDrop?d.fileDropHandler=d.$parent.$eval(p.taFileDrop):d.fileDropHandler=d.defaultFileDropHandler,w=h[0].innerHTML,h[0].innerHTML="",d.displayElements={forminput:angular.element("<input type='hidden' tabindex='-1' style='display: none;'>"),html:angular.element("<textarea></textarea>"),text:angular.element("<div></div>"),scrollWindow:angular.element("<div class='ta-scroll-window'></div>"),popover:angular.element('<div class="popover fade bottom" style="max-width: none; width: 305px;"></div>'),popoverArrow:angular.element('<div class="arrow"></div>'),popoverContainer:angular.element('<div class="popover-content"></div>'),resize:{overlay:angular.element('<div class="ta-resizer-handle-overlay"></div>'),background:angular.element('<div class="ta-resizer-handle-background"></div>'),anchors:[angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-tl"></div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-tr"></div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-bl"></div>'),angular.element('<div class="ta-resizer-handle-corner ta-resizer-handle-corner-br"></div>')],info:angular.element('<div class="ta-resizer-handle-info"></div>')}},d.displayElements.popover.append(d.displayElements.popoverArrow),d.displayElements.popover.append(d.displayElements.popoverContainer),d.displayElements.scrollWindow.append(d.displayElements.popover),d.displayElements.popover.on("mousedown",function(e,t){return t&&angular.extend(e,t),e.preventDefault(),!1}),d.showPopover=function(e){d.displayElements.popover.css("display","block"),d.reflowPopover(e),s.addClass(d.displayElements.popover,"in"),T(a.find("body"),"click keyup",function(){d.hidePopover()})},d.reflowPopover=function(e){d.displayElements.text[0].offsetHeight-51>e[0].offsetTop?(d.displayElements.popover.css("top",e[0].offsetTop+e[0].offsetHeight+d.displayElements.scrollWindow[0].scrollTop+"px"),d.displayElements.popover.removeClass("top").addClass("bottom")):(d.displayElements.popover.css("top",e[0].offsetTop-54+d.displayElements.scrollWindow[0].scrollTop+"px"),d.displayElements.popover.removeClass("bottom").addClass("top"));var t=d.displayElements.text[0].offsetWidth-d.displayElements.popover[0].offsetWidth,n=e[0].offsetLeft+e[0].offsetWidth/2-d.displayElements.popover[0].offsetWidth/2;d.displayElements.popover.css("left",Math.max(0,Math.min(t,n))+"px"),d.displayElements.popoverArrow.css("margin-left",Math.min(n,Math.max(0,n-t))-11+"px")},d.hidePopover=function(){d.displayElements.popover.css("display",""),d.displayElements.popoverContainer.attr("style",""),d.displayElements.popoverContainer.attr("class","popover-content"),d.displayElements.popover.removeClass("in")},d.displayElements.resize.overlay.append(d.displayElements.resize.background),angular.forEach(d.displayElements.resize.anchors,function(e){d.displayElements.resize.overlay.append(e)}),d.displayElements.resize.overlay.append(d.displayElements.resize.info),d.displayElements.scrollWindow.append(d.displayElements.resize.overlay),d.reflowResizeOverlay=function(e){e=angular.element(e)[0],d.displayElements.resize.overlay.css({display:"block",left:e.offsetLeft-5+"px",top:e.offsetTop-5+"px",width:e.offsetWidth+10+"px",height:e.offsetHeight+10+"px"}),d.displayElements.resize.info.text(e.offsetWidth+" x "+e.offsetHeight)},d.showResizeOverlay=function(e){var t=a.find("body");x=function(n){var i={width:parseInt(e.attr("width")),height:parseInt(e.attr("height")),x:n.clientX,y:n.clientY};(void 0===i.width||isNaN(i.width))&&(i.width=e[0].offsetWidth),(void 0===i.height||isNaN(i.height))&&(i.height=e[0].offsetHeight),d.hidePopover();var r=i.height/i.width,o=function(t){function n(e){return Math.round(Math.max(0,e))}var o={x:Math.max(0,i.width+(t.clientX-i.x)),y:Math.max(0,i.height+(t.clientY-i.y))},a=void 0!==p.taResizeForceAspectRatio,s=p.taResizeMaintainAspectRatio;if(a||s&&!t.shiftKey){var l=o.y/o.x;o.x=r>l?o.x:o.y/r,o.y=r>l?o.x*r:o.y}var c=angular.element(e);c.css("height",n(o.y)+"px"),c.css("width",n(o.x)+"px"),d.reflowResizeOverlay(e)};t.on("mousemove",o),T(t,"mouseup",function(e){e.preventDefault(),e.stopPropagation(),t.off("mousemove",o),d.$apply(function(){d.hidePopover(),d.updateTaBindtaTextElement()},100)}),n.stopPropagation(),n.preventDefault()},d.displayElements.resize.anchors[3].off("mousedown"),d.displayElements.resize.anchors[3].on("mousedown",x),d.reflowResizeOverlay(e),T(t,"click",function(){d.hideResizeOverlay()})},d.hideResizeOverlay=function(){d.displayElements.resize.anchors[3].off("mousedown",x),d.displayElements.resize.overlay.css("display","")},d.setup.htmlEditorSetup(d.displayElements.html),d.setup.textEditorSetup(d.displayElements.text),d.displayElements.html.attr({id:"taHtmlElement"+E,"ng-show":"showHtml","ta-bind":"ta-bind","ng-model":"html","ng-model-options":h.attr("ng-model-options")}),d.displayElements.text.attr({id:"taTextElement"+E,contentEditable:"true","ta-bind":"ta-bind","ng-model":"html","ng-model-options":h.attr("ng-model-options")}),d.displayElements.scrollWindow.attr({"ng-hide":"showHtml"}),p.taDefaultWrap&&d.displayElements.text.attr("ta-default-wrap",p.taDefaultWrap),p.taUnsafeSanitizer&&(d.displayElements.text.attr("ta-unsafe-sanitizer",p.taUnsafeSanitizer),d.displayElements.html.attr("ta-unsafe-sanitizer",p.taUnsafeSanitizer)),d.displayElements.scrollWindow.append(d.displayElements.text),h.append(d.displayElements.scrollWindow),h.append(d.displayElements.html),d.displayElements.forminput.attr("name",d._name),h.append(d.displayElements.forminput),p.tabindex&&(h.removeAttr("tabindex"),d.displayElements.text.attr("tabindex",p.tabindex),d.displayElements.html.attr("tabindex",p.tabindex)),p.placeholder&&(d.displayElements.text.attr("placeholder",p.placeholder),d.displayElements.html.attr("placeholder",p.placeholder)),p.taDisabled&&(d.displayElements.text.attr("ta-readonly","disabled"),d.displayElements.html.attr("ta-readonly","disabled"),d.disabled=d.$parent.$eval(p.taDisabled),d.$parent.$watch(p.taDisabled,function(e){d.disabled=e,d.disabled?h.addClass(d.classes.disabled):h.removeClass(d.classes.disabled)})),p.taPaste&&(d._pasteHandler=function(e){return u(p.taPaste)(d.$parent,{$html:e})},d.displayElements.text.attr("ta-paste","_pasteHandler($html)")),e(d.displayElements.scrollWindow)(d),e(d.displayElements.html)(d),d.updateTaBindtaTextElement=d["updateTaBindtaTextElement"+E],d.updateTaBindtaHtmlElement=d["updateTaBindtaHtmlElement"+E],h.addClass("ta-root"),d.displayElements.scrollWindow.addClass("ta-text ta-editor "+d.classes.textEditor),d.displayElements.html.addClass("ta-html ta-editor "+d.classes.htmlEditor),d._actionRunning=!1;var D=!1;if(d.startAction=function(){return d._actionRunning=!0,D=rangy.saveSelection(),function(){D&&rangy.restoreSelection(D)}},d.endAction=function(){d._actionRunning=!1,D&&(d.showHtml?d.displayElements.html[0].focus():d.displayElements.text[0].focus(),rangy.removeMarkers(D)),D=!1,d.updateSelectedStyles(),d.showHtml||d["updateTaBindtaTextElement"+E]()},y=function(){d.focussed=!0,h.addClass(d.classes.focussed),A.focus(),h.triggerHandler("focus")},d.displayElements.html.on("focus",y),d.displayElements.text.on("focus",y),_=function(e){return d._actionRunning||a[0].activeElement===d.displayElements.html[0]||a[0].activeElement===d.displayElements.text[0]||(h.removeClass(d.classes.focussed),A.unfocus(),t(function(){d._bUpdateSelectedStyles=!1,h.triggerHandler("blur"),d.focussed=!1},0)),e.preventDefault(),!1},d.displayElements.html.on("blur",_),d.displayElements.text.on("blur",_),d.displayElements.text.on("paste",function(e){h.triggerHandler("paste",e)}),d.queryFormatBlockState=function(e){return!d.showHtml&&e.toLowerCase()===a[0].queryCommandValue("formatBlock").toLowerCase()},d.queryCommandState=function(e){return d.showHtml?"":a[0].queryCommandState(e)},d.switchView=function(){d.showHtml=!d.showHtml,s.enabled(!1,d.displayElements.html),s.enabled(!1,d.displayElements.text),d.showHtml?t(function(){return s.enabled(!0,d.displayElements.html),s.enabled(!0,d.displayElements.text),d.displayElements.html[0].focus()},100):t(function(){return s.enabled(!0,d.displayElements.html),s.enabled(!0,d.displayElements.text),d.displayElements.text[0].focus()},100)},p.ngModel){var I=!0;f.$render=function(){if(I){I=!1;var e=d.$parent.$eval(p.ngModel);void 0!==e&&null!==e||!w||""===w||f.$setViewValue(w)}d.displayElements.forminput.val(f.$viewValue),d.html=f.$viewValue||""},h.attr("required")&&(f.$validators.required=function(e,t){var n=e||t;return!(!n||""===n.trim())})}else d.displayElements.forminput.val(w),d.html=w;if(d.$watch("html",function(e,t){e!==t&&(p.ngModel&&f.$viewValue!==e&&f.$setViewValue(e),d.displayElements.forminput.val(e))}),p.taTargetToolbars)A=o.registerEditor(d._name,d,p.taTargetToolbars.split(","));else{var k=angular.element('<div text-angular-toolbar name="textAngularToolbar'+E+'">');p.taToolbar&&k.attr("ta-toolbar",p.taToolbar),p.taToolbarClass&&k.attr("ta-toolbar-class",p.taToolbarClass),p.taToolbarGroupClass&&k.attr("ta-toolbar-group-class",p.taToolbarGroupClass),p.taToolbarButtonClass&&k.attr("ta-toolbar-button-class",p.taToolbarButtonClass),p.taToolbarActiveButtonClass&&k.attr("ta-toolbar-active-button-class",p.taToolbarActiveButtonClass),p.taFocussedClass&&k.attr("ta-focussed-class",p.taFocussedClass),h.prepend(k),e(k)(d.$parent),A=o.registerEditor(d._name,d,["textAngularToolbar"+E])}d.$on("$destroy",function(){o.unregisterEditor(d._name),angular.element(window).off("blur")}),d.$on("ta-element-select",function(e,t){A.triggerElementSelect(e,t)&&d["reApplyOnSelectorHandlerstaTextElement"+E]()}),d.$on("ta-drop-event",function(e,n,i,r){d.displayElements.text[0].focus(),r&&r.files&&r.files.length>0?(angular.forEach(r.files,function(e){try{c.when(d.fileDropHandler(e,d.wrapSelection)||d.fileDropHandler!==d.defaultFileDropHandler&&c.when(d.defaultFileDropHandler(e,d.wrapSelection))).then(function(){d["updateTaBindtaTextElement"+E]()})}catch(e){l.error(e)}}),i.preventDefault(),i.stopPropagation()):t(function(){d["updateTaBindtaTextElement"+E]()},0)}),d._bUpdateSelectedStyles=!1,angular.element(window).on("blur",function(){d._bUpdateSelectedStyles=!1,d.focussed=!1}),d.updateSelectedStyles=function(){var e;S&&t.cancel(S),void 0!==(e=i.getSelectionElement())&&e.parentNode!==d.displayElements.text[0]?A.updateSelectedStyles(angular.element(e)):A.updateSelectedStyles(),d._bUpdateSelectedStyles&&(S=t(d.updateSelectedStyles,200))},m=function(){d.focussed?d._bUpdateSelectedStyles||(d._bUpdateSelectedStyles=!0,d.$apply(function(){d.updateSelectedStyles()})):d._bUpdateSelectedStyles=!1},d.displayElements.html.on("keydown",m),d.displayElements.text.on("keydown",m),g=function(){d._bUpdateSelectedStyles=!1},d.displayElements.html.on("keyup",g),d.displayElements.text.on("keyup",g),v=function(e,t){t&&angular.extend(e,t),d.$apply(function(){if(A.sendKeyCommand(e))return d._bUpdateSelectedStyles||d.updateSelectedStyles(),e.preventDefault(),!1})},d.displayElements.html.on("keypress",v),d.displayElements.text.on("keypress",v),b=function(){d._bUpdateSelectedStyles=!1,d.$apply(function(){d.updateSelectedStyles()})},d.displayElements.html.on("mouseup",b),d.displayElements.text.on("mouseup",b)}}}]),textAngular.service("textAngularManager",["taToolExecuteAction","taTools","taRegisterTool",function(e,t,n){var i={},r={};return{registerEditor:function(n,o,a){if(!n||""===n)throw"textAngular Error: An editor requires a name";if(!o)throw"textAngular Error: An editor requires a scope";if(r[n])throw'textAngular Error: An Editor with name "'+n+'" already exists';var s=[];return angular.forEach(a,function(e){i[e]&&s.push(i[e])}),r[n]={scope:o,toolbars:a,_registerToolbar:function(e){this.toolbars.indexOf(e.name)>=0&&s.push(e)},editorFunctions:{disable:function(){angular.forEach(s,function(e){e.disabled=!0})},enable:function(){angular.forEach(s,function(e){e.disabled=!1})},focus:function(){angular.forEach(s,function(e){e._parent=o,e.disabled=!1,e.focussed=!0,o.focussed=!0})},unfocus:function(){angular.forEach(s,function(e){e.disabled=!0,e.focussed=!1}),o.focussed=!1},updateSelectedStyles:function(e){angular.forEach(s,function(t){angular.forEach(t.tools,function(n){n.activeState&&(t._parent=o,n.active=n.activeState(e))})})},sendKeyCommand:function(n){var i=!1;return(n.ctrlKey||n.metaKey||n.specialKey)&&angular.forEach(t,function(t,r){if(t.commandKeyCode&&(t.commandKeyCode===n.which||t.commandKeyCode===n.specialKey))for(var a=0;a<s.length;a++)if(void 0!==s[a].tools[r]){e.call(s[a].tools[r],o),i=!0;break}}),i},triggerElementSelect:function(e,n){var i=function(e,t){for(var n=!0,i=0;i<t.length;i++)n=n&&e.attr(t[i]);return n},r=[],a={},l=!1;n=angular.element(n);var c=!1;if(angular.forEach(t,function(e,t){e.onElementSelect&&e.onElementSelect.element&&e.onElementSelect.element.toLowerCase()===n[0].tagName.toLowerCase()&&(!e.onElementSelect.filter||e.onElementSelect.filter(n))&&(c=c||angular.isArray(e.onElementSelect.onlyWithAttrs)&&i(n,e.onElementSelect.onlyWithAttrs),e.onElementSelect.onlyWithAttrs&&!i(n,e.onElementSelect.onlyWithAttrs)||(a[t]=e))}),c?(angular.forEach(a,function(e,t){e.onElementSelect.onlyWithAttrs&&i(n,e.onElementSelect.onlyWithAttrs)&&r.push({name:t,tool:e})}),r.sort(function(e,t){return t.tool.onElementSelect.onlyWithAttrs.length-e.tool.onElementSelect.onlyWithAttrs.length})):angular.forEach(a,function(e,t){r.push({name:t,tool:e})}),r.length>0)for(var u=0;u<r.length;u++){for(var d=r[u].tool,h=r[u].name,p=0;p<s.length;p++)if(void 0!==s[p].tools[h]){d.onElementSelect.action.call(s[p].tools[h],e,n,o),l=!0;break}if(l)break}return l}}},r[n].editorFunctions},retrieveEditor:function(e){return r[e]},unregisterEditor:function(e){delete r[e]},registerToolbar:function(e){if(!e)throw"textAngular Error: A toolbar requires a scope";if(!e.name||""===e.name)throw"textAngular Error: A toolbar requires a name";if(i[e.name])throw'textAngular Error: A toolbar with name "'+e.name+'" already exists';i[e.name]=e,angular.forEach(r,function(t){t._registerToolbar(e)})},retrieveToolbar:function(e){return i[e]},retrieveToolbarsViaEditor:function(e){var t=[],n=this;return angular.forEach(this.retrieveEditor(e).toolbars,function(e){t.push(n.retrieveToolbar(e))}),t},unregisterToolbar:function(e){delete i[e]},updateToolsDisplay:function(e){var t=this;angular.forEach(e,function(e,n){t.updateToolDisplay(n,e)})},resetToolsDisplay:function(){var e=this;angular.forEach(t,function(t,n){e.resetToolDisplay(n)})},updateToolDisplay:function(e,t){var n=this;angular.forEach(i,function(i,r){n.updateToolbarToolDisplay(r,e,t)})},resetToolDisplay:function(e){var t=this;angular.forEach(i,function(n,i){t.resetToolbarToolDisplay(i,e)})},updateToolbarToolDisplay:function(e,t,n){if(!i[e])throw'textAngular Error: No Toolbar with name "'+e+'" exists';i[e].updateToolDisplay(t,n)},resetToolbarToolDisplay:function(e,n){if(!i[e])throw'textAngular Error: No Toolbar with name "'+e+'" exists';i[e].updateToolDisplay(n,t[n],!0)},removeTool:function(e){delete t[e],angular.forEach(i,function(t){delete t.tools[e];for(var n=0;n<t.toolbar.length;n++){for(var i,r=0;r<t.toolbar[n].length;r++){if(t.toolbar[n][r]===e){i={group:n,index:r};break}if(void 0!==i)break}void 0!==i&&(t.toolbar[i.group].slice(i.index,1),t._$element.children().eq(i.group).children().eq(i.index).remove())}})},addTool:function(e,t,r,o){n(e,t),angular.forEach(i,function(n){n.addTool(e,t,r,o)})},addToolToToolbar:function(e,t,r,o,a){n(e,t),i[r].addTool(e,t,o,a)},refreshEditor:function(e){if(!r[e])throw'textAngular Error: No Editor with name "'+e+'" exists';r[e].scope.updateTaBindtaTextElement(),r[e].scope.$$phase||r[e].scope.$digest()},sendKeyCommand:function(e,t){var n=r[e._name];if(n&&n.editorFunctions.sendKeyCommand(t))return e._bUpdateSelectedStyles||e.updateSelectedStyles(),t.preventDefault(),!1}}}]),textAngular.directive("textAngularToolbar",["$compile","textAngularManager","taOptions","taTools","taToolExecuteAction","$window",function(e,t,n,i,r,o){return{scope:{name:"@"},restrict:"EA",link:function(a,s,l){if(!a.name||""===a.name)throw"textAngular Error: A toolbar requires a name";angular.extend(a,angular.copy(n)),l.taToolbar&&(a.toolbar=a.$parent.$eval(l.taToolbar)),l.taToolbarClass&&(a.classes.toolbar=l.taToolbarClass),l.taToolbarGroupClass&&(a.classes.toolbarGroup=l.taToolbarGroupClass),l.taToolbarButtonClass&&(a.classes.toolbarButton=l.taToolbarButtonClass),l.taToolbarActiveButtonClass&&(a.classes.toolbarButtonActive=l.taToolbarActiveButtonClass),l.taFocussedClass&&(a.classes.focussed=l.taFocussedClass),a.disabled=!0,a.focussed=!1,a._$element=s,s[0].innerHTML="",s.addClass("ta-toolbar "+a.classes.toolbar),a.$watch("focussed",function(){a.focussed?s.addClass(a.classes.focussed):s.removeClass(a.classes.focussed)});var c=function(t,n){var i;if(i=t&&t.display?angular.element(t.display):angular.element("<button type='button'>"),t&&t.class?i.addClass(t.class):i.addClass(a.classes.toolbarButton),i.attr("name",n.name),i.attr("ta-button","ta-button"),i.attr("ng-disabled","isDisabled()"),i.attr("tabindex","-1"),i.attr("ng-click","executeAction()"),i.attr("ng-class","displayActiveToolClass(active)"),t&&t.tooltiptext&&i.attr("title",t.tooltiptext),t&&!t.display&&!n._display&&(i[0].innerHTML="",t.buttontext&&(i[0].innerHTML=t.buttontext),t.iconclass)){var r=angular.element("<i>"),o=i[0].innerHTML;r.addClass(t.iconclass),i[0].innerHTML="",i.append(r),o&&""!==o&&i.append("&nbsp;"+o)}return n._lastToolDefinition=angular.copy(t),e(i)(n)};a.tools={},a._parent={disabled:!0,showHtml:!1,queryFormatBlockState:function(){return!1},queryCommandState:function(){return!1}};var u={$window:o,$editor:function(){return a._parent},isDisabled:function(){return"function"!=typeof this.$eval("disabled")&&this.$eval("disabled")||this.$eval("disabled()")||"html"!==this.name&&this.$editor().showHtml||this.$parent.disabled||this.$editor().disabled},displayActiveToolClass:function(e){return e?a.classes.toolbarButtonActive:""},executeAction:r};angular.forEach(a.toolbar,function(e){var t=angular.element("<div>");t.addClass(a.classes.toolbarGroup),angular.forEach(e,function(e){a.tools[e]=angular.extend(a.$new(!0),i[e],u,{name:e}),a.tools[e].$element=c(i[e],a.tools[e]),t.append(a.tools[e].$element)}),s.append(t)}),a.updateToolDisplay=function(e,t,n){var i=a.tools[e];if(i){if(i._lastToolDefinition&&!n&&(t=angular.extend({},i._lastToolDefinition,t)),null===t.buttontext&&null===t.iconclass&&null===t.display)throw'textAngular Error: Tool Definition for updating "'+e+'" does not have a valid display/iconclass/buttontext value';null===t.buttontext&&delete t.buttontext,null===t.iconclass&&delete t.iconclass,null===t.display&&delete t.display;var r=c(t,i);i.$element.replaceWith(r),i.$element=r}},a.addTool=function(e,t,n,r){a.tools[e]=angular.extend(a.$new(!0),i[e],u,{name:e}),a.tools[e].$element=c(i[e],a.tools[e]);var o;void 0===n&&(n=a.toolbar.length-1),o=angular.element(s.children()[n]),void 0===r?(o.append(a.tools[e].$element),a.toolbar[n][a.toolbar[n].length-1]=e):(o.children().eq(r).after(a.tools[e].$element),a.toolbar[n][r]=e)},t.registerToolbar(a),a.$on("$destroy",function(){t.unregisterToolbar(a.name)})}}}]),function(e,t,n){"use strict";function i(){this.$get=["$$sanitizeUri",function(e){return function(t){void 0!==arguments[1]&&(arguments[1].version="taSanitize");var n=[];return a(t,d(n,function(t,n){return!/^unsafe/.test(e(t,n))})),n.join("")}}]}function r(e){var n=[];return d(n,t.noop).chars(e),n.join("")}function o(e){var t,n={},i=e.split(",");for(t=0;t<i.length;t++)n[i[t]]=!0;return n}function a(e,n){function i(e,i,o,a){if(i=t.lowercase(i),I[i])for(;u.last()&&k[u.last()];)r("",u.last());D[i]&&u.last()==i&&r("",i),(a=S[i]||!!a)||u.push(i);var l={};o.replace(m,function(e,t,n,i,r){var o=n||i||r||"";l[t]=s(o)}),n.start&&n.start(i,l,a)}function r(e,i){var r,o=0;if(i=t.lowercase(i))for(o=u.length-1;o>=0&&u[o]!=i;o--);if(o>=0){for(r=u.length-1;r>=o;r--)n.end&&n.end(u[r]);u.length=o}}"string"!=typeof e&&(e=null===e||void 0===e?"":""+e);var o,a,l,c,u=[],d=e;for(u.last=function(){return u[u.length-1]};e;){if(c="",a=!0,u.last()&&P[u.last()])e=e.replace(new RegExp("([^]*)<\\s*\\/\\s*"+u.last()+"[^>]*>","i"),function(e,t){return t=t.replace(b,"$1").replace(w,"$1"),n.chars&&n.chars(s(t)),""}),r("",u.last());else{if(x.test(e)){if(l=e.match(x)){l[0];n.whitespace&&n.whitespace(l[0]),e=e.replace(l[0],""),a=!1}}else y.test(e)?(l=e.match(y))&&(n.comment&&n.comment(l[1]),e=e.replace(l[0],""),a=!1):_.test(e)?(l=e.match(_))&&(e=e.replace(l[0],""),a=!1):v.test(e)?(l=e.match(f))&&(e=e.substring(l[0].length),l[0].replace(f,r),a=!1):g.test(e)&&((l=e.match(p))?(l[4]&&(e=e.substring(l[0].length),l[0].replace(p,i)),a=!1):(c+="<",e=e.substring(1)));a&&(c+=(o=e.indexOf("<"))<0?e:e.substring(0,o),e=o<0?"":e.substring(o),n.chars&&n.chars(s(c)))}if(e==d)throw h("badparse","The sanitizer was unable to parse the following block of html: {0}",e);d=e}r()}function s(e){if(!e)return"";var t=B.exec(e),n=t[1],i=t[3],r=t[2];return r&&(G.innerHTML=r.replace(/</g,"&lt;"),r="textContent"in G?G.textContent:G.innerText),n+r+i}function l(e){return e.replace(/&/g,"&amp;").replace(A,function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"}).replace(C,function(e){var t=e.charCodeAt(0);return t<=159||173==t||t>=1536&&t<=1540||1807==t||6068==t||6069==t||t>=8204&&t<=8207||t>=8232&&t<=8239||t>=8288&&t<=8303||65279==t||t>=65520&&t<=65535?"&#"+t+";":e}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}function c(e){var n="",i=e.split(";");return t.forEach(i,function(e){var i=e.split(":");if(2==i.length){var r=F(t.lowercase(i[0])),e=F(t.lowercase(i[1]));(("color"===r||"background-color"===r)&&(e.match(/^rgb\([0-9%,\. ]*\)$/i)||e.match(/^rgba\([0-9%,\. ]*\)$/i)||e.match(/^hsl\([0-9%,\. ]*\)$/i)||e.match(/^hsla\([0-9%,\. ]*\)$/i)||e.match(/^#[0-9a-f]{3,6}$/i)||e.match(/^[a-z]*$/i))||"text-align"===r&&("left"===e||"right"===e||"center"===e||"justify"===e)||"text-decoration"===r&&("underline"===e||"line-through"===e)||"font-weight"===r&&"bold"===e||"float"===r&&("left"===e||"right"===e||"none"===e)||("width"===r||"height"===r)&&e.match(/[0-9\.]*(px|em|rem|%)/)||"direction"===r&&e.match(/^ltr|rtl|initial|inherit$/))&&(n+=r+": "+e+";")}}),n}function u(e,t,n,i){return!("img"!==e||!t["ta-insert-video"]||"ta-insert-video"!==n&&"allowfullscreen"!==n&&"frameborder"!==n&&("contenteditable"!==n||"false"!==i))}function d(e,n){var i=!1,r=t.bind(e,e.push);return{start:function(e,o,a){e=t.lowercase(e),!i&&P[e]&&(i=e),i||!0!==$[e]||(r("<"),r(e),t.forEach(o,function(i,a){var s=t.lowercase(a),d="img"===e&&"src"===s||"background"===s;("style"===s&&""!==(i=c(i))||u(e,o,s,i)||!0===L[s]&&(!0!==N[s]||n(i,d)))&&(r(" "),r(a),r('="'),r(l(i)),r('"'))}),r(a?"/>":">"))},comment:function(e){r(e)},whitespace:function(e){r(l(e))},end:function(e){e=t.lowercase(e),i||!0!==$[e]||(r("</"),r(e),r(">")),e==i&&(i=!1)},chars:function(e){i||r(l(e))}}}var h=t.$$minErr("$sanitize"),p=/^<((?:[a-zA-Z])[\w:-]*)((?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)\s*(>?)/,f=/^<\/\s*([\w:-]+)[^>]*>/,m=/([\w:-]+)(?:\s*=\s*(?:(?:"((?:[^"])*)")|(?:'((?:[^'])*)')|([^>\s]+)))?/g,g=/^</,v=/^<\//,b=/<!--(.*?)-->/g,y=/(^<!--.*?-->)/,_=/<!DOCTYPE([^>]*?)>/i,w=/<!\[CDATA\[(.*?)]]>/g,A=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,C=/([^\#-~| |!])/g,x=/^(\s+)/,S=o("area,br,col,hr,img,wbr,input"),E=o("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),T=o("rp,rt"),D=t.extend({},T,E),I=t.extend({},E,o("address,article,aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,script,section,table,ul")),k=t.extend({},T,o("a,abbr,acronym,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,samp,small,span,strike,strong,sub,sup,time,tt,u,var")),M=o("animate,animateColor,animateMotion,animateTransform,circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,radialGradient,rect,set,stop,svg,switch,text,title,tspan,use"),P=o("script,style"),$=t.extend({},S,I,k,D,M),N=o("background,cite,href,longdesc,src,usemap,xlink:href"),O=o("abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,id,ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,scope,scrolling,shape,size,span,start,summary,target,title,type,valign,value,vspace,width"),R=o("accent-height,accumulate,additive,alphabetic,arabic-form,ascent,attributeName,attributeType,baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan"),L=t.extend({},N,R,O),G=document.createElement("pre"),B=/^(\s*)([\s\S]*?)(\s*)$/,F=function(){return String.prototype.trim?function(e){return t.isString(e)?e.trim():e}:function(e){return t.isString(e)?e.replace(/^\s\s*/,"").replace(/\s\s*$/,""):e}}();t.module("ngSanitize",[]).provider("$sanitize",i),t.module("ngSanitize").filter("linky",["$sanitize",function(e){var n=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"”’]/,i=/^mailto:/;return function(o,a){function s(e){e&&h.push(r(e))}if(!o)return o;for(var l,c,u,d=o,h=[];l=d.match(n);)c=l[0],l[2]||l[4]||(c=(l[3]?"http://":"mailto:")+c),u=l.index,s(d.substr(0,u)),function(e,n){h.push("<a "),t.isDefined(a)&&h.push('target="',a,'" '),h.push('href="',e.replace(/"/g,"&quot;"),'">'),s(n),h.push("</a>")}(c,l[0].replace(i,"")),d=d.substring(u+l[0].length);return s(d),e(h.join(""))}}])}(window,window.angular);var taTools={};if(angular.module("textAngularSetup",[]).constant("taRegisterTool",registerTextAngularTool).value("taTools",taTools).value("taOptions",{forceTextAngularSanitize:!0,keyMappings:[],toolbar:[["h1","h2","h3","h4","h5","h6","p","pre","quote"],["bold","italics","underline","strikeThrough","ul","ol","redo","undo","clear"],["justifyLeft","justifyCenter","justifyRight","justifyFull","indent","outdent"],["html","insertImage","insertLink","insertVideo","wordcount","charcount"]],classes:{focussed:"focussed",toolbar:"btn-toolbar",toolbarGroup:"btn-group",toolbarButton:"btn btn-default",toolbarButtonActive:"active",disabled:"disabled",textEditor:"form-control",htmlEditor:"form-control"},defaultTagAttributes:{a:{target:""}},setup:{textEditorSetup:function(e){},htmlEditorSetup:function(e){}},defaultFileDropHandler:function(e,t){var n=new FileReader;return"image"===e.type.substring(0,5)&&(n.onload=function(){""!==n.result&&t("insertImage",n.result,!0)},n.readAsDataURL(e),!0)}}).value("taSelectableElements",["a","img"]).value("taCustomRenderers",[{selector:"img",customAttribute:"ta-insert-video",renderLogic:function(e){var t=angular.element("<iframe></iframe>"),n=e.prop("attributes");angular.forEach(n,function(e){t.attr(e.name,e.value)}),t.attr("src",t.attr("ta-insert-video")),e.replaceWith(t)}}]).value("taTranslations",{html:{tooltip:"Toggle html / Rich Text"},heading:{tooltip:"Heading "},p:{tooltip:"Paragraph"},pre:{tooltip:"Preformatted text"},ul:{tooltip:"Unordered List"},ol:{tooltip:"Ordered List"},quote:{tooltip:"Quote/unquote selection or paragraph"},undo:{tooltip:"Undo"},redo:{tooltip:"Redo"},bold:{tooltip:"Bold"},italic:{tooltip:"Italic"},underline:{tooltip:"Underline"},strikeThrough:{tooltip:"Strikethrough"},justifyLeft:{tooltip:"Align text left"},justifyRight:{tooltip:"Align text right"},justifyFull:{tooltip:"Justify text"},justifyCenter:{tooltip:"Center"},indent:{tooltip:"Increase indent"},outdent:{tooltip:"Decrease indent"},clear:{tooltip:"Clear formatting"},insertImage:{dialogPrompt:"Please enter an image URL to insert",tooltip:"Insert image",hotkey:"the - possibly language dependent hotkey ... for some future implementation"},insertVideo:{tooltip:"Insert video",dialogPrompt:"Please enter a youtube URL to embed"},insertLink:{tooltip:"Insert / edit link",dialogPrompt:"Please enter a URL to insert"},editLink:{reLinkButton:{tooltip:"Relink"},unLinkButton:{tooltip:"Unlink"},targetToggle:{buttontext:"Open in New Window"}},wordcount:{tooltip:"Display words Count"},charcount:{tooltip:"Display characters Count"}}).factory("taToolFunctions",["$window","taTranslations",function(e,t){return{imgOnSelectAction:function(e,t,n){var i=function(){n.updateTaBindtaTextElement(),n.hidePopover()};e.preventDefault(),n.displayElements.popover.css("width","375px");var r=n.displayElements.popoverContainer;r.empty();var o=angular.element('<div class="btn-group" style="padding-right: 6px;">'),a=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">100% </button>');a.on("click",function(e){e.preventDefault(),t.css({width:"100%",height:""}),i()});var s=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">50% </button>');s.on("click",function(e){e.preventDefault(),t.css({width:"50%",height:""}),i()});var l=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">25% </button>');l.on("click",function(e){e.preventDefault(),t.css({width:"25%",height:""}),i()});var c=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1">Reset</button>');c.on("click",function(e){e.preventDefault(),t.css({width:"",height:""}),i()}),o.append(a),o.append(s),o.append(l),o.append(c),r.append(o),o=angular.element('<div class="btn-group" style="padding-right: 6px;">');var u=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-left"></i></button>');u.on("click",function(e){e.preventDefault(),t.css("float","left"),t.css("cssFloat","left"),t.css("styleFloat","left"),i()});var d=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-right"></i></button>');d.on("click",function(e){e.preventDefault(),t.css("float","right"),t.css("cssFloat","right"),t.css("styleFloat","right"),i()});var h=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-align-justify"></i></button>');h.on("click",function(e){e.preventDefault(),t.css("float",""),t.css("cssFloat",""),t.css("styleFloat",""),i()}),o.append(u),o.append(h),o.append(d),r.append(o),o=angular.element('<div class="btn-group">');var p=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" unselectable="on" tabindex="-1"><i class="fa fa-trash-o"></i></button>');p.on("click",function(e){e.preventDefault(),t.remove(),i()}),o.append(p),r.append(o),n.showPopover(t),n.showResizeOverlay(t)},aOnSelectAction:function(n,i,r){n.preventDefault(),r.displayElements.popover.css("width","436px");var o=r.displayElements.popoverContainer;o.empty(),o.css("line-height","28px");var a=angular.element('<a href="'+i.attr("href")+'" target="_blank">'+i.attr("href")+"</a>");a.css({display:"inline-block","max-width":"200px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap","vertical-align":"middle"}),o.append(a);var s=angular.element('<div class="btn-group pull-right">'),l=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on" title="'+t.editLink.reLinkButton.tooltip+'"><i class="fa fa-edit icon-edit"></i></button>');l.on("click",function(n){n.preventDefault();var o=e.prompt(t.insertLink.dialogPrompt,i.attr("href"));o&&""!==o&&"http://"!==o&&(i.attr("href",o),r.updateTaBindtaTextElement()),r.hidePopover()}),s.append(l);var c=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on" title="'+t.editLink.unLinkButton.tooltip+'"><i class="fa fa-unlink icon-unlink"></i></button>');c.on("click",function(e){e.preventDefault(),i.replaceWith(i.contents()),r.updateTaBindtaTextElement(),r.hidePopover()}),s.append(c);var u=angular.element('<button type="button" class="btn btn-default btn-sm btn-small" tabindex="-1" unselectable="on">'+t.editLink.targetToggle.buttontext+"</button>");"_blank"===i.attr("target")&&u.addClass("active"),u.on("click",function(e){e.preventDefault(),i.attr("target","_blank"===i.attr("target")?"":"_blank"),u.toggleClass("active"),r.updateTaBindtaTextElement()}),s.append(u),o.append(s),r.showPopover(i)},extractYoutubeVideoId:function(e){var t=/(?:youtube(?:-nocookie)?\.com\/(?:[^\/\n\s]+\/\S+\/|(?:v|e(?:mbed)?)\/|\S*?[?&]v=)|youtu\.be\/)([a-zA-Z0-9_-]{11})/i,n=e.match(t);return n&&n[1]||null}}}]).run(["taRegisterTool","$window","taTranslations","taSelection","taToolFunctions","$sanitize","taOptions",function(e,t,n,i,r,o,a){var s={};if(o("",s),!0===a.forceTextAngularSanitize&&"taSanitize"!==s.version)throw angular.$$minErr("textAngular")("textAngularSetup","The textAngular-sanitize provider has been replaced by another -- have you included angular-sanitize by mistake?");e("html",{iconclass:"fa fa-code",tooltiptext:n.html.tooltip,action:function(){this.$editor().switchView()},activeState:function(){return this.$editor().showHtml}});var l=function(e){return function(){return this.$editor().queryFormatBlockState(e)}},c=function(){return this.$editor().wrapSelection("formatBlock","<"+this.name.toUpperCase()+">")};angular.forEach(["h1","h2","h3","h4","h5","h6"],function(t){e(t.toLowerCase(),{buttontext:t.toUpperCase(),tooltiptext:n.heading.tooltip+t.charAt(1),action:c,activeState:l(t.toLowerCase())})}),e("p",{buttontext:"P",tooltiptext:n.p.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<P>")},activeState:function(){return this.$editor().queryFormatBlockState("p")}}),e("pre",{buttontext:"pre",tooltiptext:n.pre.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<PRE>")},activeState:function(){return this.$editor().queryFormatBlockState("pre")}}),e("ul",{iconclass:"fa fa-list-ul",tooltiptext:n.ul.tooltip,action:function(){return this.$editor().wrapSelection("insertUnorderedList",null)},activeState:function(){return this.$editor().queryCommandState("insertUnorderedList")}}),e("ol",{iconclass:"fa fa-list-ol",tooltiptext:n.ol.tooltip,action:function(){return this.$editor().wrapSelection("insertOrderedList",null)},activeState:function(){return this.$editor().queryCommandState("insertOrderedList")}}),e("quote",{iconclass:"fa fa-quote-right",tooltiptext:n.quote.tooltip,action:function(){return this.$editor().wrapSelection("formatBlock","<BLOCKQUOTE>")},activeState:function(){return this.$editor().queryFormatBlockState("blockquote")}}),e("undo",{iconclass:"fa fa-undo",tooltiptext:n.undo.tooltip,action:function(){return this.$editor().wrapSelection("undo",null)}}),e("redo",{iconclass:"fa fa-repeat",tooltiptext:n.redo.tooltip,action:function(){return this.$editor().wrapSelection("redo",null)}}),e("bold",{iconclass:"fa fa-bold",tooltiptext:n.bold.tooltip,action:function(){return this.$editor().wrapSelection("bold",null)},activeState:function(){return this.$editor().queryCommandState("bold")},commandKeyCode:98}),e("justifyLeft",{iconclass:"fa fa-align-left",tooltiptext:n.justifyLeft.tooltip,action:function(){return this.$editor().wrapSelection("justifyLeft",null)},activeState:function(e){if(e&&"#document"===e.nodeName)return!1;var t=!1;return e&&(t="left"===e.css("text-align")||"left"===e.attr("align")||"right"!==e.css("text-align")&&"center"!==e.css("text-align")&&"justify"!==e.css("text-align")&&!this.$editor().queryCommandState("justifyRight")&&!this.$editor().queryCommandState("justifyCenter")&&!this.$editor().queryCommandState("justifyFull")),t=t||this.$editor().queryCommandState("justifyLeft")}}),e("justifyRight",{iconclass:"fa fa-align-right",tooltiptext:n.justifyRight.tooltip,action:function(){return this.$editor().wrapSelection("justifyRight",null)},activeState:function(e){if(e&&"#document"===e.nodeName)return!1;var t=!1;return e&&(t="right"===e.css("text-align")),t=t||this.$editor().queryCommandState("justifyRight")}}),e("justifyFull",{iconclass:"fa fa-align-justify",tooltiptext:n.justifyFull.tooltip,action:function(){return this.$editor().wrapSelection("justifyFull",null)},activeState:function(e){var t=!1;return e&&(t="justify"===e.css("text-align")),t=t||this.$editor().queryCommandState("justifyFull")}}),e("justifyCenter",{iconclass:"fa fa-align-center",tooltiptext:n.justifyCenter.tooltip,action:function(){return this.$editor().wrapSelection("justifyCenter",null)},activeState:function(e){if(e&&"#document"===e.nodeName)return!1;var t=!1;return e&&(t="center"===e.css("text-align")),t=t||this.$editor().queryCommandState("justifyCenter")}}),e("indent",{iconclass:"fa fa-indent",tooltiptext:n.indent.tooltip,action:function(){return this.$editor().wrapSelection("indent",null)},activeState:function(){return this.$editor().queryFormatBlockState("blockquote")},commandKeyCode:"TabKey"}),e("outdent",{iconclass:"fa fa-outdent",tooltiptext:n.outdent.tooltip,action:function(){return this.$editor().wrapSelection("outdent",null)},activeState:function(){return!1},commandKeyCode:"ShiftTabKey"}),e("italics",{iconclass:"fa fa-italic",tooltiptext:n.italic.tooltip,action:function(){return this.$editor().wrapSelection("italic",null)},activeState:function(){return this.$editor().queryCommandState("italic")},commandKeyCode:105}),e("underline",{iconclass:"fa fa-underline",tooltiptext:n.underline.tooltip,action:function(){return this.$editor().wrapSelection("underline",null)},activeState:function(){return this.$editor().queryCommandState("underline")},commandKeyCode:117}),e("strikeThrough",{iconclass:"fa fa-strikethrough",tooltiptext:n.strikeThrough.tooltip,action:function(){return this.$editor().wrapSelection("strikeThrough",null)},activeState:function(){return document.queryCommandState("strikeThrough")}}),e("clear",{iconclass:"fa fa-ban",tooltiptext:n.clear.tooltip,action:function(e,t){var n;this.$editor().wrapSelection("removeFormat",null);var r=angular.element(i.getSelectionElement()),o=function(e){var t=e=angular.element(e);angular.forEach(e.children(),function(e){var n=angular.element("<p></p>");n.html(angular.element(e).html()),t.after(n),t=n}),e.remove()};if(angular.forEach(r.find("ul"),o),angular.forEach(r.find("ol"),o),"li"===r[0].tagName.toLowerCase()){var a=r[0].parentNode.childNodes,s=[],l=[],c=!1;for(n=0;n<a.length;n++)a[n]===r[0]?c=!0:c?l.push(a[n]):s.push(a[n]);var u=angular.element(r[0].parentNode),d=angular.element("<p></p>");if(d.html(angular.element(r[0]).html()),0===s.length||0===l.length)0===l.length?u.after(d):u[0].parentNode.insertBefore(d[0],u[0]),0===s.length&&0===l.length?u.remove():angular.element(r[0]).remove();else{var h=angular.element("<"+u[0].tagName+"></"+u[0].tagName+">"),p=angular.element("<"+u[0].tagName+"></"+u[0].tagName+">");for(n=0;n<s.length;n++)h.append(angular.element(s[n]));for(n=0;n<l.length;n++)p.append(angular.element(l[n]));u.after(p),u.after(d),u.after(h),u.remove()}i.setSelectionToElementEnd(d[0])}var f=this.$editor(),m=function(e){(e=angular.element(e))[0]!==f.displayElements.text[0]&&e.removeAttr("class"),angular.forEach(e.children(),m)};angular.forEach(r,m),"li"!==r[0].tagName.toLowerCase()&&"ol"!==r[0].tagName.toLowerCase()&&"ul"!==r[0].tagName.toLowerCase()&&this.$editor().wrapSelection("formatBlock","default"),t()}}),e("insertImage",{iconclass:"fa fa-picture-o",tooltiptext:n.insertImage.tooltip,action:function(){var e;if((e=t.prompt(n.insertImage.dialogPrompt,"http://"))&&""!==e&&"http://"!==e)return this.$editor().wrapSelection("insertImage",e,!0)},onElementSelect:{element:"img",action:r.imgOnSelectAction}}),e("insertVideo",{iconclass:"fa fa-youtube-play",tooltiptext:n.insertVideo.tooltip,action:function(){var e;if((e=t.prompt(n.insertVideo.dialogPrompt,"https://"))&&""!==e&&"https://"!==e&&(videoId=r.extractYoutubeVideoId(e),videoId)){var i="https://www.youtube.com/embed/"+videoId,o='<img class="ta-insert-video" src="https://img.youtube.com/vi/'+videoId+'/hqdefault.jpg" ta-insert-video="'+i+'" contenteditable="false" allowfullscreen="true" frameborder="0" />';return this.$editor().wrapSelection("insertHTML",o,!0)}},onElementSelect:{element:"img",onlyWithAttrs:["ta-insert-video"],action:r.imgOnSelectAction}}),e("insertLink",{tooltiptext:n.insertLink.tooltip,iconclass:"fa fa-link",action:function(){var e;if((e=t.prompt(n.insertLink.dialogPrompt,"http://"))&&""!==e&&"http://"!==e)return this.$editor().wrapSelection("createLink",e,!0)},activeState:function(e){return!!e&&"A"===e[0].tagName},onElementSelect:{element:"a",action:r.aOnSelectAction}}),e("wordcount",{display:'<div id="toolbarWC" style="display:block; min-width:100px;">Words: <span ng-bind="wordcount"></span></div>',disabled:!0,wordcount:0,activeState:function(){var e=this.$editor().displayElements.text[0].innerHTML||"",t=0;return""!==e.replace(/\s*<[^>]*?>\s*/g,"")&&(t=e.replace(/<\/?(b|i|em|strong|span|u|strikethrough|a|img|small|sub|sup|label)( [^>*?])?>/gi,"").replace(/(<[^>]*?>\s*<[^>]*?>)/gi," ").replace(/(<[^>]*?>)/gi,"").replace(/\s+/gi," ").match(/\S+/g).length),this.wordcount=t,this.$editor().wordcount=t,!1}}),e("charcount",{display:'<div id="toolbarCC" style="display:block; min-width:120px;">Characters: <span ng-bind="charcount"></span></div>',disabled:!0,charcount:0,activeState:function(){var e=this.$editor().displayElements.text,t=(e[0].innerText||e[0].textContent).replace(/(\r\n|\n|\r)/gm,"").replace(/^\s+/g," ").replace(/\s+$/g," ").length;return this.charcount=t,this.$editor().charcount=t,!1}})}]),function(e){angular.module("ngCsv.config",[]).value("ngCsv.config",{debug:!0}).config(["$compileProvider",function(e){angular.isDefined(e.urlSanitizationWhitelist)?e.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/):e.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|data):/)}]),angular.module("ngCsv.directives",["ngCsv.services"]),angular.module("ngCsv.services",[]),angular.module("ngCsv",["ngCsv.config","ngCsv.services","ngCsv.directives","ngSanitize"]),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="ngCsv"),angular.module("ngCsv.services").service("CSV",["$q",function(e){var t="\r\n",n={"\\t":"\t","\\b":"\b","\\v":"\v","\\f":"\f","\\r":"\r"};this.stringifyField=function(e,t){return"locale"===t.decimalSep&&this.isFloat(e)?e.toLocaleString():"."!==t.decimalSep&&this.isFloat(e)?e.toString().replace(".",t.decimalSep):"string"==typeof e?(e=e.replace(/"/g,'""'),(t.quoteStrings||e.indexOf(",")>-1||e.indexOf("\n")>-1||e.indexOf("\r")>-1)&&(e=t.txtDelim+e+t.txtDelim),e):"boolean"==typeof e?e?"TRUE":"FALSE":e},this.isFloat=function(e){return+e===e&&(!isFinite(e)||Boolean(e%1))},this.stringify=function(n,i){var r=e.defer(),o=this,a="",s="",l=e.when(n).then(function(e){if(angular.isDefined(i.header)&&i.header){var n,l;n=[],angular.forEach(i.header,function(e){this.push(o.stringifyField(e,i))},n),l=n.join(i.fieldSep?i.fieldSep:","),s+=l+t}var c=[];if(angular.isArray(e)?c=e:angular.isFunction(e)&&(c=e()),angular.isDefined(i.label)&&i.label&&"boolean"==typeof i.label){var u,d;u=[],angular.forEach(c[0],function(e,t){this.push(o.stringifyField(t,i))},u),d=u.join(i.fieldSep?i.fieldSep:","),s+=d+t}angular.forEach(c,function(e,n){var r,a,l=angular.copy(c[n]);a=[];var u=i.columnOrder?i.columnOrder:l;angular.forEach(u,function(e){var t=i.columnOrder?l[e]:e;this.push(o.stringifyField(t,i))},a),r=a.join(i.fieldSep?i.fieldSep:","),s+=n<c.length?r+t:r}),i.addByteOrderMarker&&(a+="\ufeff"),a+=s,r.resolve(a)});return"function"==typeof l.catch&&l.catch(function(e){r.reject(e)}),r.promise},this.isSpecialChar=function(e){return void 0!==n[e]},this.getSpecialChar=function(e){return n[e]}}]),angular.module("ngCsv.directives").directive("ngCsv",["$parse","$q","CSV","$document","$timeout",function(t,n,i,r,o){return{restrict:"AC",scope:{data:"&ngCsv",filename:"@filename",header:"&csvHeader",columnOrder:"&csvColumnOrder",txtDelim:"@textDelimiter",decimalSep:"@decimalSeparator",quoteStrings:"@quoteStrings",fieldSep:"@fieldSeparator",lazyLoad:"@lazyLoad",addByteOrderMarker:"@addBom",ngClick:"&",charset:"@charset",label:"&csvLabel"},controller:["$scope","$element","$attrs","$transclude",function(e,t,r){function o(){var t={txtDelim:e.txtDelim?e.txtDelim:'"',decimalSep:e.decimalSep?e.decimalSep:".",quoteStrings:e.quoteStrings,addByteOrderMarker:e.addByteOrderMarker};return angular.isDefined(r.csvHeader)&&(t.header=e.$eval(e.header)),angular.isDefined(r.csvColumnOrder)&&(t.columnOrder=e.$eval(e.columnOrder)),angular.isDefined(r.csvLabel)&&(t.label=e.$eval(e.label)),t.fieldSep=e.fieldSep?e.fieldSep:",",t.fieldSep=i.isSpecialChar(t.fieldSep)?i.getSpecialChar(t.fieldSep):t.fieldSep,t}e.csv="",angular.isDefined(e.lazyLoad)&&"true"==e.lazyLoad||angular.isArray(e.data)&&e.$watch("data",function(){e.buildCSV()},!0),e.getFilename=function(){return e.filename||"download.csv"},e.buildCSV=function(){var a=n.defer();return t.addClass(r.ngCsvLoadingClass||"ng-csv-loading"),i.stringify(e.data(),o()).then(function(n){e.csv=n,t.removeClass(r.ngCsvLoadingClass||"ng-csv-loading"),a.resolve(n)}),e.$apply(),a.promise}}],link:function(t,n){function i(){var n=t.charset||"utf-8",i=new Blob([t.csv],{type:"text/csv;charset="+n+";"});if(e.navigator.msSaveOrOpenBlob)navigator.msSaveBlob(i,t.getFilename());else{var a=angular.element('<div data-tap-disabled="true"><a></a></div>'),s=angular.element(a.children()[0]);s.attr("href",e.URL.createObjectURL(i)),s.attr("download",t.getFilename()),s.attr("target","_blank"),r.find("body").append(a),o(function(){s[0].click(),s.remove()},null)}}n.bind("click",function(){t.buildCSV().then(function(){i()}),t.$apply()})}}}])}(window,document),function(){"use strict";function e(){function e(e,t,n,i){var r=i[1],o=i[0],a=r[n.matchPassword],s=function(){return a.$viewValue};e.$watch(s,function(){o.$$parseAndValidate()}),o.$validators?o.$validators.passwordMatch=function(e){return!e&&!a.$modelValue||e===a.$modelValue}:o.$parsers.push(function(e){return o.$setValidity("passwordMatch",!e&&!a.$viewValue||e===a.$viewValue),e}),a.$parsers.push(function(e){return o.$setValidity("passwordMatch",!e&&!o.$viewValue||e===o.$viewValue),e})}return{restrict:"A",require:["^ngModel","^form"],link:e}}angular.module("ngPassword",[]).directive("matchPassword",e),angular.module("angular.password",["ngPassword"]),angular.module("angular-password",["ngPassword"]),"object"==typeof module&&"function"!=typeof define&&(module.exports=angular.module("ngPassword"))}(),function(e,t,n){"use strict";function i(){function e(e){e.addClass("md-body")}return{compile:e,restrict:"A"}}function r(){function e(e){var t=e.find("md-select");return t.length&&t.addClass("md-table-select").attr("md-container-class","md-table-select"),e.addClass("md-cell"),n}function t(){}function n(e,t,n,i){function r(){return l.$$columns[o()]}function o(){return Array.prototype.indexOf.call(t.parent().children(),t[0])}var a=t.find("md-select"),s=i.shift(),l=i.shift();n.ngClick&&t.addClass("md-clickable"),a.length&&(a.on("click",function(e){e.stopPropagation()}),t.addClass("md-clickable").on("click",function(e){e.stopPropagation(),a[0].click()})),s.getTable=l.getElement,e.$watch(r,function(e){e&&(e.numeric?t.addClass("md-numeric"):t.removeClass("md-numeric"))})}return{controller:t,compile:e,require:["mdCell","^^mdTable"],restrict:"A"}}function o(e,n){function i(e){return e.addClass("md-column"),r}function r(i,r,o,a){function s(){var n=t.element('<md-icon md-svg-icon="arrow-up.svg">');e(n.addClass("md-sort-icon").attr("ng-class","getDirection()"))(i),r.hasClass("md-numeric")?r.prepend(n):r.append(n)}function l(){Array.prototype.some.call(r.find("md-icon"),function(e){return e.classList.contains("md-sort-icon")&&r[0].removeChild(e)})}function c(){l(),r.removeClass("md-sort").off("click",f)}function u(){s(),r.addClass("md-sort").on("click",f)}function d(){return Array.prototype.indexOf.call(r.parent().children(),r[0])}function h(){return i.orderBy&&(g.order===i.orderBy||g.order==="-"+i.orderBy)}function p(){return""===o.mdNumeric||i.numeric}function f(){i.$applyAsync(function(){h()?g.order="md-asc"===i.getDirection()?"-"+i.orderBy:i.orderBy:g.order="md-asc"===i.getDirection()?i.orderBy:"-"+i.orderBy,t.isFunction(g.onReorder)&&n.nextTick(function(){g.onReorder(g.order)})})}function m(e,t){v.$$columns[e]=t,t.numeric?r.addClass("md-numeric"):r.removeClass("md-numeric")}var g=a.shift(),v=a.shift();i.getDirection=function(){return h()?"-"===g.order.charAt(0)?"md-desc":"md-asc":""===o.mdDesc||i.$eval(o.mdDesc)?"md-desc":"md-asc"},i.$watch(h,function(e){e?r.addClass("md-active"):r.removeClass("md-active")}),i.$watch(d,function(e){m(e,{numeric:p()})}),i.$watch(p,function(e){m(d(),{numeric:e})}),i.$watch("orderBy",function(e){e?r.hasClass("md-sort")||u():r.hasClass("md-sort")&&c()})}return{compile:i,require:["^^mdHead","^^mdTable"],restrict:"A",scope:{numeric:"=?mdNumeric",orderBy:"@?mdOrderBy"}}}function a(e){return function(n,i,r,o){if(r&&"object"==typeof r){var a=e(n,i,!0,o);return t.extend(a.instance,r),a()}return e(n,i,r,o)}}function s(e,n,i,r,o,a,s,l,c){function u(n,i){var o,s=a.$new(),l=e(n)(s),c=r.createBackdrop(s,"md-edit-dialog-backdrop");return i.controller?o=h(i,s,{$element:l,$scope:s}):t.extend(s,i.scope),i.disableScroll&&d(l),w.prepend(c).append(l.addClass("md-whiteframe-1dp")),v(l,i.target),i.focusOnOpen&&g(l),i.clickOutsideToClose&&c.on("click",function(){l.remove()}),i.escToClose&&m(l),l.on("$destroy",function(){_=!1,c.remove()}),o}function d(e){var t=r.disableScrollAround(e,w);e.on("$destroy",function(){t()})}function h(e,i,r){if(e.controller)return e.resolve&&t.extend(r,e.resolve),e.locals&&t.extend(r,e.locals),e.controllerAs?(i[e.controllerAs]={},e.bindToController?t.extend(i[e.controllerAs],e.scope):t.extend(i,e.scope)):t.extend(i,e.scope),e.bindToController?n(e.controller,r,i[e.controllerAs]):n(e.controller,r)}function p(e){return o(function(n,i){var r=e.template;if(r)return t.isString(r)?n(r):function(e){i("Unexpected template value. Expected a string; received a "+e+".")}(typeof r);if(e.templateUrl){if(r=s.get(e.templateUrl))return n(r);var o=function(e){return n(e)},a=function(){return i("Error retrieving template from URL.")};return l(e.templateUrl).then(o,a)}i("Template not provided.")})}function f(e){_=!1,console.error(e)}function m(e){var t=function(t){t.keyCode===y&&e.remove()};w.on("keyup",t),e.on("$destroy",function(){w.off("keyup",t)})}function g(e){r.nextTick(function(){var t=r.findFocusTarget(e);t&&t.focus()},!1)}function v(e,n){var i=t.element(n).controller("mdCell").getTable(),r=function(){return e.prop("clientHeight")},o=function(){return{width:l(),height:r()}},s=function(){var e=i.parent();return"MD-TABLE-CONTAINER"===e.prop("tagName")?e[0].getBoundingClientRect():i[0].getBoundingClientRect()},l=function(){return e.prop("clientWidth")},u=function(){var t=o(),i=n.getBoundingClientRect(),r=s();t.width>r.right-i.left?e.css("left",r.right-t.width+"px"):e.css("left",i.left+"px"),t.height>r.bottom-i.top?e.css("top",r.bottom-t.height+"px"):e.css("top",i.top+1+"px"),e.css("minWidth",i.width+"px")},d=a.$watch(l,u),h=a.$watch(r,u);c.addEventListener("resize",u),e.on("$destroy",function(){d(),h(),c.removeEventListener("resize",u)})}function b(e,n){return{controller:["$element","$q","save","$scope",function(e,n,i,r){function o(){return r.editDialog.$invalid?n.reject():t.isFunction(i)?n.when(i(r.editDialog.input)):n.resolve()}this.dismiss=function(){e.remove()},this.getInput=function(){return r.editDialog.input},r.dismiss=this.dismiss,r.submit=function(){o().then(function(){r.dismiss()})}}],locals:{save:n.save},scope:{cancel:n.cancel||"Cancel",messages:n.messages,model:n.modelValue,ok:n.ok||"Save",placeholder:n.placeholder,title:n.title,size:e},template:'<md-edit-dialog><div layout="column" class="md-content"><div ng-if="size === \'large\'" class="md-title">{{title || \'Edit\'}}</div><form name="editDialog" layout="column" ng-submit="submit(model)"><md-input-container md-no-float><input name="input" ng-model="model" md-autofocus placeholder="{{placeholder}} "'+function(){var e='type="'+(n.type||"text")+'"';for(var t in n.validators)e+=" "+t+'="'+n.validators[t]+'"';return e}()+'><div ng-messages="editDialog.input.$error"><div ng-repeat="(key, message) in messages" ng-message="{{key}}">{{message}}</div></div></md-input-container></form></div><div ng-if="size === \'large\'" layout="row" layout-align="end" class="md-actions"><md-button class="md-primary" ng-click="dismiss()">{{cancel}}</md-button><md-button class="md-primary" ng-click="submit()">{{ok}}</md-button></div></md-edit-dialog>'}}var y=27,_=!1,w=t.element(i.prop("body")),A={clickOutsideToClose:!0,disableScroll:!0,escToClose:!0,focusOnOpen:!0};return this.show=function(e){if(_)return o.reject();if(_=!0,!(e=t.extend({},A,e)).targetEvent)return f("options.targetEvent is required to align the dialog with the table cell.");if(!e.targetEvent.currentTarget.classList.contains("md-cell"))return f("The event target must be a table cell.");if(e.bindToController&&!e.controllerAs)return f("You must define options.controllerAs when options.bindToController is true.");e.target=e.targetEvent.currentTarget;var n=p(e),i=[n];for(var r in e.resolve)n=e.resolve[r],i.push(o.when(t.isFunction(n)?n():n));return(n=o.all(i)).catch(f),n.then(function(t){var n=t.shift();for(var i in e.resolve)e.resolve[i]=t.shift();return u(n,e)})},this.small=function(e){return this.show(t.extend({},e,b("small",e)))}.bind(this),this.large=function(e){return this.show(t.extend({},e,b("large",e)))}.bind(this),this}function l(){function e(e){e.addClass("md-foot")}return{compile:e,restrict:"A"}}function c(e){function n(e){return e.addClass("md-head"),r}function i(){}function r(n,i,r,o){function a(){i.children().prepend('<th class="md-column md-checkbox-column">')}function s(){i.prop("lastElementChild").firstElementChild.appendChild(e(l())(n)[0])}function l(){return t.element("<md-checkbox>").attr({"aria-label":"Select All","ng-click":"toggleAll()","ng-checked":"allSelected()","ng-disabled":"!getSelectableRows().length"})}function c(){var e=i.prop("lastElementChild").firstElementChild;e.classList.contains("md-checkbox-column")&&t.element(e).empty()}function u(){return o.$$rowSelect}function d(e){return t.element(e).controller("mdSelect")}function h(){Array.prototype.some.call(i.find("th"),function(e){return e.classList.contains("md-checkbox-column")&&e.remove()})}var p=new Array(2);n.allSelected=function(){var e=n.getSelectableRows();return e.length&&e.every(function(e){return e.isSelected()})},n.getSelectableRows=function(){return o.getBodyRows().map(d).filter(function(e){return e&&!e.disabled})},n.selectAll=function(){o.getBodyRows().map(d).forEach(function(e){e&&!e.isSelected()&&e.select()})},n.toggleAll=function(){return n.allSelected()?n.unSelectAll():n.selectAll()},n.unSelectAll=function(){o.getBodyRows().map(d).forEach(function(e){e&&e.isSelected()&&e.deselect()})},n.$watchGroup([u,o.enableMultiSelect],function(e){e[0]!==p[0]?e[0]?(a(),e[1]&&s()):h():e[0]&&e[1]!==p[1]&&(e[1]?s():c()),t.copy(e,p)})}return{bindToController:!0,compile:n,controller:i,controllerAs:"$mdHead",require:"^^mdTable",restrict:"A",scope:{order:"=?mdOrder",onReorder:"=?mdOnReorder"}}}function u(){function e(e){return e.addClass("md-row"),n}function n(e,n,i,r){function o(){return r.$$rowSelect}function a(e){return n[0].contains(e[0])}if(function(){return-1!==r.getBodyRows().indexOf(n[0])}()){var s=t.element('<td class="md-cell">');e.$watch(o,function(e){!e||i.mdSelect?a(s)&&s.remove():a(s)||n.prepend(s)})}}return{compile:e,require:"^^mdTable",restrict:"A"}}function d(e,n){function i(){}function r(i,r,o,a){function s(){return""===o.mdAutoSelect||f.autoSelect}function l(){var n=t.element("<md-checkbox>").attr({"aria-label":"Select Row","ng-click":"$mdSelect.toggle($event)","ng-checked":"$mdSelect.isSelected()","ng-disabled":"$mdSelect.disabled"});return t.element('<td class="md-cell md-checkbox-cell">').append(e(n)(i))}function c(){Array.prototype.some.call(r.children(),function(e){return e.classList.contains("md-checkbox-cell")&&r[0].removeChild(e)}),s()&&r.off("click",p)}function u(){r.prepend(l()),s()&&r.on("click",p)}function d(){return m.$$rowSelect}function h(e){f.id&&(m.$$hash.has(f.id)?-1===e.indexOf(m.$$hash.get(f.id))&&m.$$hash.purge(f.id):-1!==e.indexOf(f.model)&&m.$$hash.update(f.id,f.model))}function p(e){i.$applyAsync(function(){f.toggle(e)})}var f=a.shift(),m=a.shift(),g=n(o.mdSelectId);if(f.id=g(f.model),m.$$rowSelect&&f.id)if(m.$$hash.has(f.id)){var v=m.selected.indexOf(m.$$hash.get(f.id));-1===v?m.$$hash.purge(f.id):m.$$hash.equals(f.id,f.model)||(m.$$hash.update(f.id,f.model),m.selected.splice(v,1,f.model))}else m.selected.some(function(e,t){if(g(e)===f.id)return m.$$hash.update(f.id,f.model),m.selected.splice(t,1,f.model),!0});f.isSelected=function(){return!!m.$$rowSelect&&(f.id?m.$$hash.has(f.id):-1!==m.selected.indexOf(f.model))},f.select=function(){f.disabled||(m.enableMultiSelect()?m.selected.push(f.model):m.selected.splice(0,m.selected.length,f.model),t.isFunction(f.onSelect)&&f.onSelect(f.model))},f.deselect=function(){f.disabled||(m.selected.splice(m.selected.indexOf(f.model),1),t.isFunction(f.onDeselect)&&f.onDeselect(f.model))},f.toggle=function(e){return e&&e.stopPropagation&&e.stopPropagation(),f.isSelected()?f.deselect():f.select()},i.$watch(d,function(e){e?u():c()}),i.$watch(s,function(e,t){e!==t&&(m.$$rowSelect&&e?r.on("click",p):r.off("click",p))}),i.$watch(f.isSelected,function(e){return e?r.addClass("md-selected"):r.removeClass("md-selected")}),i.$watch(m.enableMultiSelect,function(e){m.$$rowSelect&&!e&&m.selected.splice(1)}),m.registerModelChangeListener(h),r.on("$destroy",function(){m.removeModelChangeListener(h)})}return{bindToController:!0,controller:i,controllerAs:"$mdSelect",link:r,require:["mdSelect","^^mdTable"],restrict:"A",scope:{model:"=mdSelect",disabled:"=ngDisabled",onSelect:"=?mdOnSelect",onDeselect:"=?mdOnDeselect",autoSelect:"=mdAutoSelect"}}}function h(){var e={};this.equals=function(t,n){return e[t]===n},this.get=function(t){return e[t]},this.has=function(t){return e.hasOwnProperty(t)},this.purge=function(t){delete e[t]},this.update=function(t,n){e[t]=n}}function p(){function e(e,n){if(e.addClass("md-table"),n.hasOwnProperty("mdProgress")){var i=e.find("tbody")[0],r=t.element('<thead class="md-table-progress" md-table-progress>');i&&e[0].insertBefore(r[0],i)}}function n(e,n,i,r){function o(){d.$$rowSelect=!0,u=r.$watchCollection("$mdTable.selected",function(e){f.forEach(function(t){t(e)})}),n.addClass("md-row-select")}function a(){d.$$rowSelect=!1,t.isFunction(u)&&u(),n.removeClass("md-row-select")}function s(){if(!p.length)return r.$applyAsync();p[0].finally(function(){p.shift(),s()})}function l(){return""===e.mdRowSelect||d.rowSelect}function c(){return d.selected?!!t.isArray(d.selected)||console.error("Row selection: Expected an array. Recived "+typeof d.selected+"."):console.error("Row selection: ngModel is not defined.")}var u,d=this,p=[],f=[];d.$$hash=new h,d.$$columns={},d.columnCount=function(){return d.getRows(n[0]).reduce(function(e,t){return t.cells.length>e?t.cells.length:e},0)},d.getRows=function(e){return Array.prototype.filter.call(e.rows,function(e){return!e.classList.contains("ng-leave")})},d.getBodyRows=function(){return Array.prototype.reduce.call(n.prop("tBodies"),function(e,t){return e.concat(d.getRows(t))},[])},d.getElement=function(){return n},d.getHeaderRows=function(){return d.getRows(n.prop("tHead"))},d.enableMultiSelect=function(){return""===e.multiple||r.$eval(e.multiple)},d.waitingOnPromise=function(){return!!p.length},d.queuePromise=function(e){e&&1===p.push(t.isArray(e)?i.all(e):i.when(e))&&s()},d.registerModelChangeListener=function(e){f.push(e)},d.removeModelChangeListener=function(e){var t=f.indexOf(e);-1!==t&&f.splice(t,1)},e.hasOwnProperty("mdProgress")&&r.$watch("$mdTable.progress",d.queuePromise),r.$watch(l,function(e){e&&c()?o():a()})}return n.$inject=["$attrs","$element","$q","$scope"],{bindToController:!0,compile:e,controller:n,controllerAs:"$mdTable",restrict:"A",scope:{progress:"=?mdProgress",selected:"=ngModel",rowSelect:"=mdRowSelect"}}}function f(){function e(e){e.addClass("md-table-pagination")}function n(e,n,i){function r(e){return parseInt(e,10)>0}var o=this,a={page:"Page:",rowsPerPage:"Rows per page:",of:"of"};o.label=t.copy(a),o.eval=function(e){return i.$eval(e)},o.first=function(){o.page=1,o.onPaginationChange()},o.hasNext=function(){return o.page*o.limit<o.total},o.hasPrevious=function(){return o.page>1},o.last=function(){o.page=o.pages(),o.onPaginationChange()},o.max=function(){return o.hasNext()?o.page*o.limit:o.total},o.min=function(){return r(o.total)?o.page*o.limit-o.limit+1:0},o.next=function(){o.page++,o.onPaginationChange()},o.onPaginationChange=function(){t.isFunction(o.onPaginate)&&n.nextTick(function(){o.onPaginate(o.page,o.limit)})},o.pages=function(){return r(o.total)?Math.ceil(o.total/(r(o.limit)?o.limit:1)):1},o.previous=function(){o.page--,o.onPaginationChange()},o.showBoundaryLinks=function(){return""===e.mdBoundaryLinks||o.boundaryLinks},o.showPageSelect=function(){return""===e.mdPageSelect||o.pageSelect},i.$watch("$pagination.limit",function(e,t){isNaN(e)||isNaN(t)||e===t||(o.page=Math.floor((o.page*t-t+e)/(r(e)?e:1)),o.onPaginationChange())}),e.$observe("mdLabel",function(e){t.extend(o.label,a,i.$eval(e))}),i.$watch("$pagination.total",function(e,t){isNaN(e)||e===t||o.page>o.pages()&&o.last()})}return n.$inject=["$attrs","$mdUtil","$scope"],{bindToController:{boundaryLinks:"=?mdBoundaryLinks",disabled:"=ngDisabled",limit:"=mdLimit",page:"=mdPage",pageSelect:"=?mdPageSelect",onPaginate:"=?mdOnPaginate",limitOptions:"=?mdLimitOptions",total:"@mdTotal"},compile:e,controller:n,controllerAs:"$pagination",restrict:"E",scope:{},templateUrl:"md-table-pagination.html"}}function m(){function e(e,t,n,i){e.columnCount=i.columnCount,e.deferred=i.waitingOnPromise}return{link:e,require:"^^mdTable",restrict:"A",scope:{},templateUrl:"md-table-progress.html"}}function g(){function e(e,t){function n(e,t){return Math.min(e,isFinite(t)&&i(t)?t:1)}function i(e){return e>0}function r(e){if(o.pages.length>e)return o.pages.splice(e);for(var t=o.pages.length;t<e;t++)o.pages.push(t+1)}var o=this,a=e.find("md-content");o.pages=[],a.on("scroll",function(){a.prop("clientHeight")+a.prop("scrollTop")>=a.prop("scrollHeight")&&t.$applyAsync(function(){r(n(o.pages.length+10,o.total))})}),t.$watch("$pageSelect.total",function(e){r(n(Math.max(o.pages.length,10),e))}),t.$watch("$pagination.page",function(e){for(var t=o.pages.length;t<e;t++)o.pages.push(t+1)})}return e.$inject=["$element","$scope"],{bindToController:{total:"@"},controller:e,controllerAs:"$pageSelect"}}t.module("md.table.templates",["md-table-pagination.html","md-table-progress.html","arrow-up.svg","navigate-before.svg","navigate-first.svg","navigate-last.svg","navigate-next.svg"]),t.module("md-table-pagination.html",[]).run(["$templateCache",function(e){e.put("md-table-pagination.html",'<div class="page-select" ng-if="$pagination.showPageSelect()">\n  <div class="label">{{$pagination.label.page}}</div>\n\n  <md-select virtual-page-select total="{{$pagination.pages()}}" class="md-table-select" ng-model="$pagination.page" md-container-class="md-pagination-select" ng-change="$pagination.onPaginationChange()" ng-disabled="$pagination.disabled" aria-label="Page">\n    <md-content>\n      <md-option ng-repeat="page in $pageSelect.pages" ng-value="page">{{page}}</md-option>\n    </md-content>\n  </md-select>\n</div>\n\n<div class="limit-select" ng-if="$pagination.limitOptions">\n  <div class="label">{{$pagination.label.rowsPerPage}}</div>\n\n  <md-select class="md-table-select" ng-model="$pagination.limit" md-container-class="md-pagination-select" ng-disabled="$pagination.disabled" aria-label="Rows" placeholder="{{ $pagination.limitOptions[0] }}">\n    <md-option ng-repeat="option in $pagination.limitOptions" ng-value="option.value ? $pagination.eval(option.value) : option">{{::option.label ? option.label : option}}</md-option>\n  </md-select>\n</div>\n\n<div class="buttons">\n  <div class="label">{{$pagination.min()}} - {{$pagination.max()}} {{$pagination.label.of}} {{$pagination.total}}</div>\n\n  <md-button class="md-icon-button" type="button" ng-if="$pagination.showBoundaryLinks()" ng-click="$pagination.first()" ng-disabled="$pagination.disabled || !$pagination.hasPrevious()" aria-label="First">\n    <md-icon md-svg-icon="navigate-first.svg"></md-icon>\n  </md-button>\n\n  <md-button class="md-icon-button" type="button" ng-click="$pagination.previous()" ng-disabled="$pagination.disabled || !$pagination.hasPrevious()" aria-label="Previous">\n    <md-icon md-svg-icon="navigate-before.svg"></md-icon>\n  </md-button>\n\n  <md-button class="md-icon-button" type="button" ng-click="$pagination.next()" ng-disabled="$pagination.disabled || !$pagination.hasNext()" aria-label="Next">\n    <md-icon md-svg-icon="navigate-next.svg"></md-icon>\n  </md-button>\n\n  <md-button class="md-icon-button" type="button" ng-if="$pagination.showBoundaryLinks()" ng-click="$pagination.last()" ng-disabled="$pagination.disabled || !$pagination.hasNext()" aria-label="Last">\n    <md-icon md-svg-icon="navigate-last.svg"></md-icon>\n  </md-button>\n</div>')}]),t.module("md-table-progress.html",[]).run(["$templateCache",function(e){e.put("md-table-progress.html",'<tr>\n  <th colspan="{{columnCount()}}">\n    <md-progress-linear ng-show="deferred()" md-mode="indeterminate"></md-progress-linear>\n  </th>\n</tr>')}]),t.module("arrow-up.svg",[]).run(["$templateCache",function(e){e.put("arrow-up.svg",'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"/></svg>')}]),t.module("navigate-before.svg",[]).run(["$templateCache",function(e){e.put("navigate-before.svg",'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>')}]),t.module("navigate-first.svg",[]).run(["$templateCache",function(e){e.put("navigate-first.svg",'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M7 6 v12 h2 v-12 h-2z M17.41 7.41L16 6l-6 6 6 6 1.41-1.41L12.83 12z"/></svg>')}]),t.module("navigate-last.svg",[]).run(["$templateCache",function(e){e.put("navigate-last.svg",'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15 6 v12 h2 v-12 h-2z M8 6L6.59 7.41 11.17 12l-4.58 4.59L8 18l6-6z"/></svg>')}]),t.module("navigate-next.svg",[]).run(["$templateCache",function(e){e.put("navigate-next.svg",'<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>')}]),t.module("md.data.table",["md.table.templates"]),t.module("md.data.table").directive("mdBody",i),t.module("md.data.table").directive("mdCell",r),t.module("md.data.table").directive("mdColumn",o),o.$inject=["$compile","$mdUtil"],t.module("md.data.table").decorator("$controller",a).factory("$mdEditDialog",s),a.$inject=["$delegate"],s.$inject=["$compile","$controller","$document","$mdUtil","$q","$rootScope","$templateCache","$templateRequest","$window"],t.module("md.data.table").directive("mdFoot",l),t.module("md.data.table").directive("mdHead",c),c.$inject=["$compile"],t.module("md.data.table").directive("mdRow",u),t.module("md.data.table").directive("mdSelect",d),d.$inject=["$compile","$parse"],t.module("md.data.table").directive("mdTable",p),t.module("md.data.table").directive("mdTablePagination",f),t.module("md.data.table").directive("mdTableProgress",m),t.module("md.data.table").directive("virtualPageSelect",g)}(window,angular),angular.module("angular-toasty",[]),angular.module("angular-toasty").directive("toasty",["toasty","$timeout","$sce",function(e,t,n){return{replace:!0,restrict:"EA",scope:!0,link:function(e,i,r){function o(t){t?angular.forEach(e.toasty,function(n,i){n.id==t&&(e.$broadcast("toasty-cleared",e.toasty[i]),n.onRemove&&angular.isFunction(n.onRemove)&&n.onRemove.call(e.toasty[i]),e.toasty.splice(i,1),e.$$phase||e.$digest())}):(angular.forEach(e.toasty,function(t,n){t.onRemove&&angular.isFunction(t.onRemove)&&t.onRemove.call(e.toasty[n])}),e.toasty=[],e.$broadcast("toasty-cleared"))}function a(e,n){e.timeout=t(function(){o(e.id)},n)}function s(e,t,n){return 0!=t[n]&&(!!t[n]||e[n])}function l(t,i){c++;var r,o=s(t,i,"sound"),l=s(t,i,"showClose"),d=s(t,i,"clickToClose"),h=s(t,i,"html"),p=s(t,i,"shake");r=i.theme&&u.indexOf(i.theme)>-1?i.theme:t.theme,e.toasty.length>=t.limit&&e.toasty.shift(),o&&document.getElementById("toasty-sound").play();var f={id:c,title:h?n.trustAsHtml(i.title):i.title,msg:h?n.trustAsHtml(i.msg):i.msg,showClose:l,clickToClose:d,sound:o,shake:p?"toasty-shake":"",html:h,type:"toasty-type-"+i.type,theme:"toasty-theme-"+r,onAdd:i.onAdd&&angular.isFunction(i.onAdd)?i.onAdd:null,onRemove:i.onRemove&&angular.isFunction(i.onRemove)?i.onRemove:null,onClick:i.onClick&&angular.isFunction(i.onClick)?i.onClick:null};e.toasty.push(f),i.onAdd&&angular.isFunction(i.onAdd)&&i.onAdd.call(f),e.$broadcast("toasty-added",f),0!=i.timeout&&(i.timeout||t.timeout)&&a(e.toasty[e.toasty.length-1],i.timeout||t.timeout)}var c=0,u=["default","material","bootstrap"];e.position="",e.toasty=[],e.$on("toasty-new",function(t,n){var i=n.config,r=n.options;e.position||(e.position="toasty-position-"+i.position),l(i,r)}),e.$on("toasty-clear",function(e,t){o(t.id)}),e.close=function(e){o(e)},e.clickToasty=function(t){e.$broadcast("toasty-clicked",t),t.onClick&&angular.isFunction(t.onClick)&&t.onClick.call(t),t.clickToClose&&o(t.id)}},template:'<div id="toasty" ng-class="[position]"><audio id="toasty-sound" src="data:audio/wav;base64,UklGRiQ9AABXQVZFZm10IBAAAAABAAEAIlYAAESsAAACABAAZGF0YQA9AAA4AFAASABAADgAQAAwACgAGAAoADAAIAAoADgAKAAgACAAKAA4ADgAMABIADgAQABIAFAAWABQAHAASABYAFAAUAA4AEAAMAAwADgAQABQAFAASABYAFgAaABwAHgAeABoAGgAaABoAGgAUABQAFAAWABQAEgASAA4AEAAOAAgADAAMABIAEAAOABAADAAQAAwADgAKAAwACAAIAAwACAAIAAwACgAGAAQABAAAAD4//D/2P/o/+j/8P/o/+D/0P/Y/9D/2P/I/8D/yP/g/8j/0P/Y/+j/2P/w/9D/2P/A/8D/yP/A/9D/yP/A/9D/0P/I/8j/yP+4/9j/6P/g/+D/2P/Y/+D/4P/Y/9j/4P/o/+j/0P/g/+D/4P/o/+D/4P/g/9D/4P/g/+D/4P/w/wAAIAAwABgAMABAADAAOAAwADAAKAAwADgAIAAYACAAAAAAAAgAIAAIABAACAAgACAAIAAgAAgAEAAIAAAAAAAAAOj/8P8AAAAA+P/4//j/+P/o/+j/6P/g/+j/+P8AAPD/6P/o//D/2P/o/9D/4P/w/+j/4P8IABAAAAAQABgAAAAAAAgAAAAAAPj/8P/w//D/6P/4//D/+P8AAPj/AAAAAAgACAD4//j/CAAAAPj/CAAAAAAAAAAQABgAIAA4ADgAMABIAEgAOAAwAFAAOABAAEAASABIAEAAOAAgACgAGAAwACAAKAAwADgAMAA4ADgAQABAADAAKAAYAPj/6P/4/+j/4P/I/8D/uP+w/8D/uP+o/7j/qP/A/9j/qP/I/9j/wP/A/8D/4P/g/9j/2P+4/8D/wP+w/9D/wP/Q/9j/0P/Q/8D/2P/I/9j/6P/o/+j/+P/o//j/AAAAAAgAEAAIAAAAAAAIAAgAEAAYABAACAAgACAAAAAYADgAMABIAEAAKAA4ADAASABQAFAAUABYAEAAKAAQAAgAEAAQACgAGAAYABgAGAAgACAAMAAgADgAMAAwADgAMABIAEAASAAoAEgAQABYADAAUABQADgAMAAoACgAOABAAEAAMAAoACgAIAAgACAAOAAwACgAKAAoADAAKAAwACAAIAAYADAAKAAgACgAIAAQABgAGAAIAAgAAAAIAAAAAAD4//j/EAAYAAAAAAAQAPD/GAAgABAAEAAYACAAOABIAEAAMABAACgAKAAoAAgAEAAgABgACAAQAAgAEAAgAAgAAAAAABgACAAYABAACAAQAAAAAAAQAAgA+P/w/+j/4P/w/+D/6P/o//D/2P/g/9D/6P/o/8D/wP+w/7j/0P/I/9D/wP/g/9j/6P/g/+D/2P/Y/9D/2P/g/9j/0P+w/6j/4P/Y/9j/2P/Y/9D/0P/A/8D/8P+w/8D/uP/A/8j/0P/Q/9D/0P/w//D/2P/g/+D/6P8AAPD/6P/g/+j/6P/Q/+D/4P/4/+j/+P/o/+D/8P/4/wAAAAD4//j/6P/Y/9D/yP/g/+j/2P/Y/9j/yP/Q/9D/yP/Q/9D/yP+4/6D/qP+g/7j/sP+4/8D/yP/Y/8D/wP/Q//D/0P/g/8j/wP/A/7j/qP+w/7D/sP+w/6j/sP+w/7j/uP/A/8D/2P/A/+D/6P/o/+j/4P/Y/+j/2P/Q/9j/4P/o//j/EAAAAAgA+P/4//D/AAAAAAAAAAD4//j/8P/4/wAAIAAQACAAEAAIABgACAAQADAAKAAgACAAMABAAEgAMAAwAFgAWABgAFgAQABIAFgAYABYAGgAUABwAEgAQABAADgAOAA4ADgAMAAgACgAKAAoACgAMAAoACAAEAAQABAACAAIAAAAAAD4/wAAEAAIAPj/6P/Y//D/AAAAAOj/4P/w//j/8P8IAPj/EAAAAPj/6P/4/+D/4P/Y/9j/2P/g//D/8P/o/+D/6P8gABAACAD4/yAAIABAADgAMAA4ADgAIAAQACAAIAAgADAAKAAwAEgAOAA4AEAAQABIAEAAMABAAEAAMABQADAAYABAAEgAQABQADAAUABYABgAQABAAEAAKABIADAAIAAYABgAAAAgACAAGAAgAAgAGAAAAAgACAAQABAACAAQAPD/IAAoAPD/CAAgAPj/4P/w//D/+P/g/9j/2P/Y/9j/6P/I/6j/4P/Y/+D/0P/A/8D/yP/A/8D/2P8AAPD/CAAAAAAAGAAQAOj/GAAoAPD/GAAYAPD/IAAgAOj/GAAgAAAACABQACgAEABQADAAKADw//j/+P8IABAAGAAYADgAEAD4/8D/2P8AAFAAKAAoAPj/8P8QAOj/6P/Q/7j/iP+I/7j/8P8oAPj/aP9w/5j/+P8YAAAACAB4/5j/CAAQAOj/GADg/1D/uP8oAHAAKADw/4D/sAAwABAA4P9I/2j/AACAAXAAiABo/zAAMAAA/+D9EP7w/2AAKAGAAOAAiP8YAFD/YP5I/7j+mP2g/jAAIAPQAYAAMP/Y/8D/SP6g/ID9yP/QAYgCiAGQAMgAKAD4/0j+CP9g/ij9AP+QAAACQAAwADAAmP8gATD/cP6Y/rD/gADA/7j8iP04/WD/QAEYATD+yP9g/Lj8WP/I/tAAIP6I/wj+uP8IAagA8P9g/gj+cAOw/dD+QADYAYgDSP8QAhj8uP5wAXj+wAMIAfgBsP+w/7gBmAMwA4AAmAC4AAj/SP0IAegEoAWw/lD7iPrY/IACuP+QA4gEqAgAACj4CAFQ+9gB8P9wAjgDOP5QBbgCSAfgAfD/IP+Y/qgFmACIAsAEIP0wBTAAeAGo/OgFWP2oDrADoAZAAqgK+P5ACsgBCALwD0AL0AlwBhgCiP9o/dj7+AJg/6AEWAXICej7KADYAjgCEP94B4j4SAEY/yAAWP4Y/8D8QACIAYgDUP4w/fj98AEYANgDGAIoAJD90AcIBXgC4AeYB+D9OP0Q+IAAWAKQCPgFsAZI/AADmPxQBKD/kABIAcAFqP+IBnAH4AQoApgSYP4QDmjvwAGgBdgCiAJw+wgDAAE4B6gT8P6wB9D78AdQCbj/aACo/oAAWPtYAvj/IPug+MgDQAJQA7D7EPdI/yD2uPSg+dDyyPWw7pjysOvY9vjugO8Y6ZjfeOZw62jkgOXA4ijgsOSw4dDdKOBY1QjTMNUg1GDciNfY0ADbUNhA29DUqNQY3HDe4Ncg1QjVoND41aDUcNno2QDWYNdw2tDjUOEA5QDpoO3Y70D46PFY8vj3iP4QBRgBAAiADVAP6BDIFogfqCHQKTgzcDGgNfg48EPQRzBGCEvQUMhQ4FLgV2BZ8FpAUnBVUFhgUehRCFDYUShKeEMYQhg9uDCAMfgrACUwG8AUcBXYDBAGuALA/oD0mOt451jlyOAg3vDaQNhw1BDRgNBgzVDOIM+Y04jR0NJA0pDY0N0g3rjlUOow7tDt4PdA/agACASYCGAOSBHgEhAX8ByQH1AneCd4KbApACqALhAv+C4gMLgvuC/4MPgqyCmIJRgfAB2QGTgTyA6QCjgHcAK4+oj4MPHI7BDrYOgg4fjcSNrg1zDUINHAz2jNuMqAybjJaMewydjJYM7wz4DSgNRQ2XjciOP46ODrmPCg9UD5SP1YAcAE4AqYDDgSUBPAGKgb4BqYHiAg6CFoIFAj8CNgIvggoCBoHqAawBUwEygQMAtoB2gCYP6Y+Pj3APFA7UDqeOfw4qDeQN7I2nDYWNUQ1qjRCNJg0KjRANKQ1NDWGNfo2qDckN/44NjnyOuY8LD1OPvI/lgEAAegCqgOwBGoGFgZKB6IH3Ak8CHYJgAnqCh4KZgpACqQJ8gnICdQJUghuCDQHFAYMBPgD+gMaAfoBQgB2PwQ+LD1OPLo7kDsOOwo6ojn4OYw5vDj4OO45CDk2OSQ5MDnuOlI7SjukO9Q8yD2cPuY/LgBoAQAB0ALUA4wEVgTMBUQF9AYUBloG2ga+BlwGzgamBlIF3gWSBQoE7ARQBHADfAJaAdQA+AAaP14+iD2WPKQ8fjsCOuI6EDmqOM44ujhyOAQ30DgIOIg4tDiyOPA5ODlgOgw60DsIO+Y8hD22PmY+xD/cAB4AhgHoAgoDKAOOBIgFNAVOBcAGPAWgBewF/AWCBeQF7gUuBMAEuAPGA2ACfgJUAd4BWADKALg/pD6APo49sjz+PAg8PjtMO7Q7mjtEOpg6xjs2Ozg7MDtMO9A8HDySPQ49oD3iPpI/KD+QAEwBMgFaAjIC7gNAA4gDrAQCBGQEtATABVAFHgUgBR4E5gR4BB4DwgNAAzwCQAHUAQQA/gAeP5w/ID6IPcY9Yj0cPIY8RDu6O3g6jjrMOqY6SDpMOo462DsqO5g7uDvmO+A8nj0OPbo+GD7wP4QAbgDGAUYBkAJQAzIDbAQaBE4FMgTWBa4FogWABZAFiAXGBbIFfgUgBSoE7gRyA4IDXgKwAjYBUgEsAJo/xj9oPoA+Zj28PXg8xDycPEo8NDuIO1g7CjsqOo46/jrGO0w7WjvSPII80D0CPWo9hD5WPtA/Xj+uABYA+gFcAcQCmgLWAxYDSAQQBHYETgS8BKIEzATGBPwEWARmBGgEEgQUA+4DlANKAuYCegHcAWoA9AB4AA4/xj+aP3w+xD6IPlI95j26PV49qD1wPWA9RD1mPRw9aD10PUo9yD5kPp4+qD7SP1I/pj+eAA4APAAUAK4A3gECAWwBzAGuAfgBuAGUAeQBugGgAYgBqgEkAMIA2ACoAAYAIj/UP/Y/Wj98Psg+wj6CPhY9wD28PUo9cD1iPWY9VD14PT49MD1uPXQ9QD26Pao+Lj4OPqg+6D8oP2I/nAAUAKAA2AF0AbwB3AIMAgwCbAJcAsQCzAM8AzgDDgNSA04DVAMeAswC6AJsAjwBxgHAAY4BQgE8AHQAEgAyP8I/hj9OP3w+3j6EPqw+LD46Peo9tj32PfI+Gj4yPiA+dj5ePqo+kj8cP3I/Sj/WAAwAVgCYAKQBKgEwAUwBuAHuAhQCUgKqAkwCpAJWAmoCOAIaAiwCOAHEAgAB/AFUATQAtAB0P8A/9D9yP1I/MD6EPqI+Ej4KPco9nD20PUg9Sj0kPMA9GDzGPMQ8/DyiPPQ9MD1IPeg95j44PiA+RD6cPqo++D8aP2Y/qD/SABoAegBsAJ4A9ADUAT4BAgFcAVgBTAFuASQBHAE2AOgAzADaAMIAxgCoAEIAFj/wP4g/ij9uPxo/BD8ePvA+kD6uPm4+dD5aPlw+Yj5QPmY+WD50Pkw+jj6APtg+0j8QP0g/gD/OP/Y/xAAkP9oAFAA4AFIAvACCARwBIAEiASIBBgFgAXgBDgG2AUoBhgFSAVoBVgFKAVwBDAEgARYBAAE4ATQA3AEsANIA+ACqALwAhgDIAOwA6AD8AKAAzADMAOoAuACGAM4A3gDMANQA5gDCAQABLgEgAVoBQgGeAWgBfAEgARgBPADuANgA3gDgAP4A3ADUAMYA2gC8AFwAdgAWAAAAPj/oP8g/0j+yP2g/Xj9KP1Q/Bj9mPxA/Cj8WPzQ+6D7kPuo+1D7mPvg+1j8aP2A/Wj9UPwg/BD8gPwY/aj9SP6o/sj+gP6g/qj+gP5A/zj/mP+w/xD/QP9o/nj+IP7A/dD9yP3w/Rj+2P34/eD9SP3I/JD8GPz4+0D8EPwo/Cj8+PuQ+9D7cPsQ+8j7+Ptg/Aj8YPzI/PD82PyY/Aj9UP1g/lj+eP8IAEgAOADo/wAAUAAAAXABOAKAApgC6AL4AgADkAMwA/gDAATgA6ADiAOQA6ADSAMgA8gCyAGQAbAB2AGYASABiADwAAgAYP+o/iD+iP2Q/ZD9gP14/eD8iPyo+zj7APtQ+wD7EPsQ+zD7CPv4+nD72PvY+3D8qP2g/eD9cP6w/rj+6P4IAOj/OACYAHgBCALQAngDmAMIBAAE+APYA2AE4ATYBcAF4AWoBTAFUAXYBJAEqAQQBVgFYAXgBHAEiAO4AyADAAPwAhAD4AJYAoACGAKoARgBAAFYADAAmACAAKgAEADQ/yAA8P/A/wAAWACwAEgAuACoACAA4P9gAHAA0ACAAJAAsAAAATABAAF4ARABKAHgAJgAsABwAAABmABQAEAA2P+o/2j/eP+A/1j/WP8Y/4D/KP/Q/tj+uP7Q/pj+oP7A/rD+0P7Y/rD+gP5o/kj+OP64/mj+kP4I/yD/EP9I/4D/sP/Y/ygASAA4AHAAkADgAPAAmACIAKAAwAA4ATgB0AG4AZgBYAE4AcgAsACwAHgAsABYAIgAWABoAPD/sP+o/+j+0P7Y/gD/cP74/Qj+IP6A/Yj9QP0o/VD9cP1Y/ZD9CP3w/CD9+Pz4/PD84Px4/Vj9iP24/Yj9kP3Q/fD9aP7Y/lj/uP/Y/xgAeAB4ALgAMAFgAcgBYAJoApACaAIoAhgCiAJwAkACQAIwAlACQAIYAngCCALQAaAB8AC4AGgAAAD4/+j/UP/4/rj+4P2Q/cj9iP1A/Tj9QP1Y/cj8+Pzo/Mj8EP2I/XD9oP3w/Rj+KP5A/jj+aP7w/lD/yP+AAAgBmAHgAYACwALwAmgDoAMgBFAEgASYBDgEcAQIBfgEAAU4BUAFQAV4BUgFCAW4BGAECARwA+gCoAJgAigCkAEQAXAA6P9o//j+2P5w/hj+cP3A/Gj8KPwI/Nj7mPtA++D6kPp4+tD6uPq4+sD6APvQ+sD6yPpo+wj8CPwQ/Hj8UPzg/Ej9YP1o/dj9SP54/oj+2P5I/zj/eP+Y/5D/sP8QAFgAkACAAHgAWAAYALj/QP84/7j+2P7w/hD/8P6I/nj+gP54/kD+OP4w/kD+aP54/nD+0P6w/hD/GP8o/1D/gP8IAEgA+ABoAbABoAJYA4gD8ANwBNAEMAWIBegF8AX4BRAGeAagBrgGyAaoBoAGQAZABugFqAVgBRgFqARwBMADaAPwApgCwAHYACAAYP9Y/+D+mP4w/sD9KP34/ID8IPwQ/Pj7EPwA/OD7uPuw+4D7APwY/Ej8sPwY/RD9mP0Q/oD+2P7w/rj/0P+IABgBqAHYAUACqALYAvgCCAOIA8ADOATQA9gD+AMABJgDsANIAyADmAJIAgAC0AGgAVABEAFAAMj/OP/A/nD+6P2g/UD98PzA/HD8GPy4+5j7kPt4+zD7OPtI+2j7oPuY++D78Pvw+1j8uPzo/FD9oP0g/mj+uP4w/4j/yP9wABABUAGoAZgB8AEAAgAC6AEwAggCSAJIAiAC0AFYAfgA2ADQAIAAeAD4/6D/WP9A/4j+aP64/aD9cP0I/dj8yPyI/GD8iPww/Cj8EPxI/KD8uPz4/Kj9yP1A/sj+gP/Y/wgAiADQAIABEAKwAmgDIATIBAgFYAXIBSgGsAYoB7gH6AcYCCgIsAeIB1gHIAfIBqgGGAbgBWgF+ASIBNgDMAOIAugBmAGwAOj/KP9I/rD96PxA/JD72PqI+jD6wPmQ+Yj5QPnw+GD4gPiA+MD4MPlo+ej5+PlA+pj68Pqg+zD84PyY/Uj+2P6I/9j/SAD4AJgBAAKIAsACMAOIA9ADOAQYBCAEIAT4AxgEyAOAA3gDOAPAAnAC6AFoAeAAoABAAND/UP/I/ij+wP1o/fj8oPwY/Mj7YPuY+8D7sPug+6D7iPuo+9D76Ps4/LD8SP2o/Sj+cP44/3j/8P+AABABmAEQAsACKAO4A/ADWASIBOgESAVwBdgF6AXIBZgFkAVwBTgFAAUABaAEeAQIBJgDMAPQAmAC0AEwAeAAQAC4/xj/oP74/XD9yPxg/Mj7IPvw+qj6aPoY+uj54PnI+bD5mPl4+Xj5ePn4+Xj6IPsg+6j78PsY/KD8UP0w/rD+iP9AANAAWAEIAsACgAMgBHAE4AQYBdAFQAaoBvgG4AYoBygHSAc4B1AHYAdQB2AHEAfIBiAG2AWQBSAFsAQABHAD2AI4AtABEAGQADAAkP8Q/3D+GP6w/Uj9KP3Y/JD8EPzY+8j7ePu4+6D7uPvo+7D7qPvY++j7OPyY/BD9gP3g/Sj+WP6A/tj+EP+o/+j/OACAAIgA+ABoAcABsAHIAeABIAJQAmACcAJIAlACMAIoAtABeAEwAQgBKAHYAKgAWADY/2D/OP8Y/7D+oP5w/jj+2P3I/aj9gP2I/Vj9EP3Q/PD8+Pw4/XD9eP1Q/Uj9kP2I/fj9SP6Q/rD+uP4A/xj/CP9o/1j/cP9g/4j/eP9w/5j/gP+Y/5j/sP/Q/yAAGAAwAIAAQABQADAAMABgAFgAiACIAFgAYABwAHgAIADQ/9j/IAAgAPj/MAA4AAgA+P/I/6j/yP/I/7j/qP9o/0D/SP8Y/xj/AP/g/qj+cP54/oD+gP64/oj+YP5Q/uD90P0o/nD+qP6Y/uD+GP8g/yj/UP94/+j/EABQALgAAAEQAXgB6AHIAQACUAJwAqgC8AIwA1gDIAMQAygDSANgA5ADoANwA4gDSANQAygDyAKYAlAC6AG4AUAB+AC4AHAA4P+o/xj/yP6I/lj+MP4A/rD9SP3o/KD8iPxQ/DD8KPw4/ED8aPyQ/ID8wPwI/UD9cP24/VD+6P6A/+D/KABYAMgAWAHYATgCsAIQA5AD0AMoBHgE+AQQBWAFiAWwBcgF8AUABhAGoAVoBSgF2ASoBIAEAASoAygDoAIQAlgBsAAoAIj/AP94/hj+cP24/Dj8sPs4+7D6YPr4+fD52Pnw+cj5sPmY+cD56Pko+rD6APt4++j7gPzQ/HD98P2g/ij/2P9QAMAAkAFAAnAC6AKIA+ADaATIBCAFiAWgBfgF4AXwBegFuAWABXAFSAUgBeAEgAQQBHgDCAOQAvgBaAEAAYgAIACY/0j/sP5I/gj+cP34/Lj8aPwI/DD8KPwo/BD8KPwo/Fj8aPyg/Cj9qP1A/pj+8P4I/5D/EACYABABkAH4AWgC+AIoA5AD0AP4AyAEQARoBIgEeASYBFgE+AN4AxAD2AKQApgCCAJQAdgAUAC4/wD/eP7I/SD9aPwA/Ij7GPvY+mj6wPlQ+RD58PjA+LD4wPiQ+Lj46Pj4+Dj5cPng+Wj62PpA++j7aPwA/Yj90P1I/sj+UP/w/6AAMAGoATACwAIYAxgDMAN4A7gDAAQIBPgDwAOwA4ADIAPYArgCQALgAZgBcAEwAbAASACg/xD/uP5A/kD++P0I/uD9qP1w/VD9+PwY/UD9QP2Q/aj94P3w/RD+aP7Y/ij/kP/A/xAAeADQABABcAHAAdAB+AE4AmgCkAKwAtgC+AIIAwADsAKIAnACUAIgAugBiAEwAdgAeAAoAOj/aP/4/qj+eP4o/gD+yP1o/UD9CP3Q/MD8yPwI/XD9WP1Y/Tj9cP2Q/cj9GP5w/vD+QP+I//D/KACAANgAQAG4ASACoALoAkADmAPIA+ADEARYBJAE2AToBBgF+ATwBOAEqASYBJgEYAQYBOADsANYAxgD6AIoAuABmAFgASgB0ACQAFgA+P/Q/4j/QP8Y/wD/2P7g/sD+wP7o/rD+0P7Q/rj+4P4A/zj/UP9o/5D/uP/g//D/AAAQACgASABYAIgAkAB4AJAAoABgACgAGAAIAAAA6P/Y/7D/kP9w/1D/+P6o/lj+OP5I/gD+8P2w/Xj9QP0I/QD9GP0g/UD9eP2Q/Zj9wP3Q/QD+SP6Q/uj+IP+Y/8j/CABIAIgA2AAYAXABoAEQAkACmALYAhgDWAOAA5gDoAOwA7ADyAOwA4ADYAMwA8gCiAJQAhAC+AGYAUgB6AC4AGgA8P+w/2j/CP+4/pD+UP44/vj9gP1Q/Sj9AP3o/Mj88Pzw/AD9CP0g/WD9iP2Y/dj9EP5A/qj+AP8o/5D/8P8gAHgAoADIABgBUAHAAdgBCAIQAjACMAIgAggCEAIIAvAByAGoAWABGAHIAIgAMAD4/8D/eP8o/+j+aP4w/vD9wP1w/Tj98PzQ/MD8sPy4/ID8aPxg/Fj8YPyY/Lj8CP1Y/Yj9qP2w/eD9AP6A/tD+SP9w/9j/EABoAMAAAAEwAVABmAGgAdgB+AEYAgACKAI4AhAC6AHgAegBwAHIAcABmAFAASgB2AC4AJgAcABgAGgASAAIAOj/yP9o/0D/cP9A/zj/OP8Q//j+0P7A/rj+kP5w/nj+gP5g/nj+mP6I/qD+gP6Y/nD+eP6A/mD+cP6I/mj+YP6Q/oD+kP6o/qD+0P6o/tD+2P7g/vj+CP8g/xj/QP9o/8D/4P/w/wAAGABQAHgAsAC4ABABWAGgAdAB+AEIAigCUAJgApgCgAKgAtgC6ALoAgADCAP4AtgCoAJwAkACIALwAeABuAGAATgBKAHIAKAAeAAYAAgAsP9g/xD/oP5w/jD+6P3A/aj9iP1Y/Uj9MP0o/QD9EP1A/Xj9iP2g/bD96P1A/mD+gP6o/tj+CP9Q/6D/GAAwAIAAsADYAPAAMAFwAbgBAAIgAjgCQAIoAkgCWAJoAoACWAJIAmACYAJIAkgCGALwAagBaAFQAVgBEAEAAfgAyACwAIAAWABIAEgAMAAIAMj/uP+Q/5D/oP+o/8j/2P/Y/8D/0P/Q/9D/wP/Q/+D/+P8AAPj/CAAAABAAEAAoAEAAUABYABgACAAIAAgAEAA4ACgAWABoAFgAQAAwAEgAOABIADgAIAD4//j/AAD4/wAAMAAwACAACAAIAAAAAAAYABgACAAIACAAIAA4ADgAWABwAIAAgACIAHgAmACgALAAsACgALgAoACYAKAAmACgALAAmACgAJAAeABwAGgAgABoAEgAMAAgABAA4P/I/6j/kP9Y/0j/GP8Q/wD/0P7Q/pD+gP5o/lD+UP5Q/lj+eP5A/lj+SP44/jj+QP5g/lj+aP6Y/rj+wP74/iD/SP9g/2D/gP+I/7j/wP/Y/+j/CAAIAPD/8P/w/wgA+P/g/9j/2P/A/8D/eP+A/2D/QP9I/0D/CP/o/sj+qP6I/mj+YP44/jj+QP4I/vj9KP44/kj+UP54/oj+sP7Q/vD+MP9Q/4j/wP+g/zAAIACIAKgAAAEgAWABeAFwAbgB0AHgAfABCAIgAjgCQAJAAiACKAIIAugByAGoAbABuAGgAVgBIAEIAcgAkABgAEgAUABIACAA6P/Q/8j/mP94/3D/aP9g/0D/QP9I/yD/OP84/0j/IP9I/0j/aP94/3j/gP+Y/6D/sP+4/9j/6P/g/xAAGAA4ABAAAAAIAAAA+P8QACAAQAAwACgAOAAYADAAKAAIAPj/+P/o/9j/qP/Y/9j/sP+4/5D/kP+w/7D/yP+o/7j/qP+g/8D/4P/Q/8D/yP/w//j/CAAoADAAaAB4AIAAkACIALgAsACoAMAAsACoALAA8ADQAOAA2ADAAKgAmACYAKAAeAB4AGgASABQAGAAaABoAFAAWABgAHAAaABYAFgAeABwAHAAcACQAIAAeACQAJAAcACAAJgAiACwAMgAwADQALgAsADIAMgAyAC4ALgAmACIAIAAcABYAFAAOAAYAAgA8P/o/7j/uP+Q/4D/gP9I/yj/MP8w/wD/+P7Q/qj+kP54/pj+oP6o/qj+eP54/qj+oP64/tj+AP8I/xj/SP84/1j/gP+w/9D/6P8AABAAQABwAIgAsACwAPAAIAFAAVABSAFoAXgBcAGYAagBsAGoAYgBeAGgAYgBcAF4AVgBQAEIAfgAuACAAEAAQAAQAAAAuP+A/0j/OP8I/+D+qP6Y/nD+eP5g/lj+aP5Q/mD+YP5w/nj+mP6w/rj+4P4A/yj/OP9w/5j/mP+o/9j/AAAYAEgAiAB4AKAAuADAALgAAAEgAQABOAEIARAB+ADwAPAA6ADQAMAAqACIAEgAMAAIAPj/6P+w/3j/QP8Y/wj/6P7Y/pj+eP5Y/iD+AP4Y/iD+IP4g/jD+OP5A/kD+MP5A/oj+uP7Y/vD+IP9Q/4D/yP/o/xgAUAB4AKAA2AD4APgAKAFYAZABoAGwAbgBwAHYAdgB4AHwAegB0AGgAYgBeAFQATABGAH4AMgAuABwAGAAGAAAANj/sP+Y/3D/UP8Y//j++P7o/uD+yP7Q/tj+wP7A/sD+wP7w/gj/OP9A/0j/cP+I/7j/+P8QADAASABwAIgAuADYAOgA6ADwAOgA4AAAAfgAIAEwASgBMAE4AQgBEAHwAPAA4ADIAKAAqAB4AGgAGAAIAOj/0P+g/5D/cP9I/0j/QP8g//D+AP8A/+D+8P7Q/uj+8P74/hj/GP8Y/yj/GP8Y/1D/eP+4/7j/0P/A/9D/6P8AACAAKAAwADAAUABYADgAaAB4AFgAWABIAFgAQABQAGgAGAAAAAgAEAD4//j/AADo/9D/wP+o/5D/kP+Q/6D/mP+Q/4j/oP+Q/5D/kP+I/5D/qP+Y/7j/0P/o/wAA8P/o//D/6P/w/wAAEAAIACAACAAoAEgAQABYAFAAUABoAEgASABAACgAGAAoABgAKAA4ACgAIAAIAAgAAADw/+j/+P/w/+j/AAAAAPj/AAAAABgAIAAQACAAQAAoAGgAgACIALAAuADAAOAAAAEwAUgBcAFwAXgBiAGYAZABuAGwAbgBuAGoAaABkAGQAXABYAEoAQAB4ACwAJAAaABQABgA4P+w/3D/KP8Y/9D+oP5w/lD+OP4Q/uD9wP2w/aD9qP2I/Zj9oP2g/cD96P34/TD+UP54/qj++P4o/5D/uP8IAFgAkACwAAABUAGAAcgBEAI4AjgCUAJIAlgCcAJgAlgCOAJAAjACIALgAbABeAFQARAB2ACoAFgAAADQ/6j/WP8Y/7j+iP5Y/gD+wP2g/XD9UP0w/Qj96PzQ/Oj8+Pzw/Pj8CP1A/XD9mP3Q/Qj+QP6A/tD+IP9o/5j/2P8oAHAAoADoADgBSAGIAdAB0AHwARACIAIoAjACSAJAAjgCOAIIAuABqAF4ATgBKAHoALAAeAA4ABgA2P+w/3D/OP8g/+j+wP6Y/pD+cP5g/mj+WP5o/oj+kP7I/vj++P5I/2j/oP/A//D/SACgAMgAAAFAAWgBqAHYAfgBQAJIAlgCcAKAAogCiAKAAngCWAJQAkgCGALoAcABkAFIARAB0ACIAEAA8P+o/1j/CP+w/oD+aP5A/uj9sP2g/Wj9UP1I/Rj9EP0Q/RD9QP0w/WD9mP2Y/dj9KP5Y/pD+6P4w/3D/oP/w/xAAcADAAPgAOAF4AagByAHoARgCKAI4AkgCYAJQAkgCSAIgAgACuAF4AWABKAEIAdAAkABQACgA4P+4/1D/GP+4/nD+WP4Q/tj9mP2Q/XD9WP04/Sj9IP0I/Sj9MP1A/VD9aP2Y/bj9+P0A/lD+gP7Q/vj+QP9w/7j/8P8gAHgAuAAIAUABWAFoAZABmAG4AcgB0AHYAdgB2AG4AagBkAFwAXABUAE4AQgBwACoAHAASAAgAOj/uP+Y/4D/MP/g/uD+wP6Y/oj+aP5Q/kj+UP5Q/mD+cP6I/oj+iP6w/rj+0P7o/iD/KP9Q/4D/mP/Q/+j/EAAwAGgAmACwANgACAEwARgBMAE4AUgBKAFAATgBMAE4ASgBEAEYAfgA+ADoANAA0ADAAKAAkABwAGgAWAAwAPD/6P/Q/+D/4P/w/8j/0P/I/8j/0P/I/+j/8P/o/wAA6P8AAPj/AAAIADAAMAAwADAAQABAAFgAcACQAIAAsAC4ANgAwADgAOAA+ADoANgA2ACwALgAmACIAHgAcABwAGAAWABYAEgASABIAEAASABQAEAAQAAoABgAGAAIAAgAEAD4/wAAAAD4/wAA+P/w/+j/8P8AACAAKAA4AEAAKABYAEgAaABoAGAAeACQALAAkACIAJAAiAB4AIAAiACIAHgAgABwAGAAQAAwACAAIAAoABAAAAD4/wAA6P/Y/9j/wP+g/5j/kP+o/5j/kP+I/6j/mP+w/4j/mP+o/6j/oP+o/8D/qP+4/6j/sP/I/9j/2P/g//D/AAAIABAACAAAAPj/AADo//D/2P+4/6D/mP+o/6j/uP+Y/5D/kP94/3D/eP9w/2D/UP9o/0j/UP9Q/1j/YP94/3D/iP+Q/5j/mP/A/+D/+P8QACAAMAA4AFAAUABwAHgAsADYAOAA6ADwAAgBEAEQAQABOAFAAUABQAFIAVgBUAEoASABCAHgANgAuACgAHgAYAAwAAgA6P+w/3j/UP8w/xj/AP/w/sD+sP6Q/oj+YP5g/mD+SP5g/jj+OP4g/ij+OP44/jj+SP5Y/lj+cP6Q/rD+4P4I/0D/cP+Y/7D/4P8YADAAcACgANAA2ADwAAgBGAE4AWABYAFYAWgBcAFoAWgBSAFQATABIAHoANgAsAB4AJAAkABIAEgAKAAIAPj/wP+Y/5D/eP9o/1D/OP8w/yD/AP8A//D+4P7o/uD+6P74/gD/GP8g/yD/QP9I/2j/iP/A/9j/+P8QABAAIAAQADAAQABAAFgAgACAAJAAmACgAKgAoACoAJAAiACIAHgAaABYAFAAOAAYAAgA+P/Y/8j/uP+Q/3j/YP9I/1D/MP84/zj/KP8Y/xj/EP/o/uj+AP8Q/xD/KP9I/3j/mP+w/8D/0P/g/wAAIAA4AFgAkAC4AMgA4AAQARABGAFIAUgBWAFoAXgBmAGgAagBiAGQAXgBcAFwAVgBUAFIAUABKAEAAfgA0AC4AKgAmACQAHAAaABQAEgAKAAoABAAGAAAAAAACADo//D/0P/A/7j/uP/I/9j/6P/Y//D/+P8IABAAKAAIACgAEAAYABgAKAAYAAAACAAAAAAA+P/o/+D/yP/A/8j/mP+A/2j/cP9I/1D/SP9A/zj/KP8o/wD/+P7g/uj+8P7o/vD++P7o/tD+0P74/uD+8P4A//j+8P4Q/yD/SP9g/3D/cP94/3j/oP+w/8j/6P/4/wgAAAAYABgAGAAwADAAMAAoADAAEAAQAAAAAADo//j/+P/4/+j/8P/4/8j/4P/g/+D/4P/I/9D/yP/Q/9D/2P/Y/9D/uP/Q/8D/2P/A/+D/4P/w//j/8P/4/+j/EAA4ADgASABQAFAASABAADAAOAAYACAAKAAAAPj/CAD4//D/8P/Y/+j/0P/I/8j/oP+Q/5D/cP9g/1D/MP84/zj/OP8o/0j/KP8o/zj/KP9A/1D/SP9o/2j/eP+I/5D/mP+4/+j/4P8IABAAKAA4AFAAeACIAKAAwADIANAA0ADoAOgA+ADwAPgACAEAAfgA6ADYAOAA0AC4AKgAkAB4AGgAWABYAEgAOAAwABgA8P/g/+j/2P+4/8D/uP+4/7j/wP+w/8j/wP+4/8D/yP/g/9j/8P/g//D/+P8AAAAAEAAgADAAKABAAEgAWABgAGAAQABQAFgAWABwAGAAaAB4AFgAUAAwACgAEAAwAAgACAAAAPj/6P/Y/7j/wP+w/5j/kP+Q/5j/mP9w/3D/eP94/2j/gP+Q/6D/2P/Q/+D/8P8AAAAAEAAoAEgAYAB4AKAAqACwANAA4AAAAfgA8ADwAPAAEAEQAQgBEAEIASABAAEAAfgA8AD4AOgA2ADIALAAkACIAHAAYABAAFAAIAAoABAAAADo/9j/2P/I/7D/0P/A/7D/qP+g/6j/oP+w/9D/0P/Y/9j/+P/g/+D/UAB4AHAAeACIAJAAqACYAMAA4AAAATABMAFIATgBGAEoASgBMAEwAVABSAFIATABMAEgAQgBCAEAAdgAyACwAKgAsACQAJAAiABwAGAAOAAoABgAEAD4//j/4P/I/6D/eP9w/2D/UP9Q/0D/IP8w/yD/QP8o/xj/OP8o/xD/GP8g/wj/EP8Y/xj/CP8g/xj/IP8Y/yj/KP8g/xj/IP8Y/wj/GP8o/yD/OP9Q/1D/WP9w/1j/UP9g/2D/YP9Y/2D/aP9w/4j/kP+g/6j/uP+4/6j/oP+w/5j/sP+g/5j/kP+I/3j/cP9g/1j/WP9Y/1D/SP9A/zj/KP8w/zj/OP84/yD/KP8o/yj/KP9A/0j/OP8w/0D/OP9Q/1D/gP9w/4D/aP+A/4j/kP/A/7j/0P/I//D/+P8AABgAMABQAGgAiACQAKgAsACgALgAwADYAPAA6ADgAOgA4ADYAMgAyAC4AMAAwACoAJgAkABwAFgAUABQACgAMAAIABAA+P/g/8D/oP+I/3j/aP9o/2j/YP9A/zj/QP84/0D/UP9Y/1D/aP9o/2j/cP94/5D/kP+Y/7D/sP+4/7D/0P/4/wgAIABAAFgAWABoAIgAgACAAIgAkACQAJAAmACQAJAAiAB4AHAAcABoAFgAUAAwADgAMAAQAAgAAADg/9D/2P/Q/8D/yP+o/6D/iP+I/4j/gP+Q/3j/cP+A/5D/kP+I/5D/mP+o/6j/kP+w/9D/wP/o//D/+P8IABgAIAA4ADgAQABIAFAAUABQAGgAkABwAHAAcABoAHAAWABgAFAAOABAADAAIAAYADAAKAAgADAAIAAYAAAAAADo/wAA+P/4/+j/4P/A/7j/sP+Y/6D/sP+w/8D/wP/Q/9D/0P/Q/9D/2P/g//j/AAAgADAAQABAAGAAeACAAJgAwADAAOAAyADgAMAA6ADgANAA8ADoAAAB+AAIAdgAyADoAOgA2ADYAMgAwAC4AKgAqACQAHgAaABQAEAAKAAYAAgAAAAAAOD/uP+w/7D/oP+Y/5j/gP+A/3j/aP9w/3D/SP9g/2j/YP9g/2j/eP9w/3j/eP9w/3D/iP+Q/5D/mP+4/7j/wP/I/+j/6P/4/wAAAAAIABAAAAAIADAAOAAwAEgAQABIAFAASABQAGgAWABIAEgAUABYAFgAQAAoABgACAAQAPD/2P/Q/+D/yP/A/7j/uP/A/8D/sP+4/6j/oP+Y/4j/mP+Q/4D/gP+A/3j/iP+I/5j/oP+g/7D/yP/Y/+D/4P/g//D/+P8AAAAA6P8QAAAA+P8YABgACAAQACAAGAAYACAAKAA4AEgAUABYAGgAUAA4AEgASABAAEgAQAAoACgAMAAgABAAGAAwADAAIAAQACAAGAAwADgAKAAoADAAIAAYABgAIAAIABAACAAYAAAACAAoACgAMABAADgAUABIAFgAaABoAHgAeABwAGgAUABAADgAKAAwACAAGAAgABgACAAQACAAIAAgADAAQABAAFAAUABQAFAASABIADgAOAAwAEAAOABAACgAIAAgACgAKAAoADAAMAAYADAAMABAAEAAOABQAGgAaABwAIAAcABoAHAAYABIAFgAQABgAFAAcABwAHgAeABwAIAAiAB4AHAAaABoAEAAWABIACgAMAAgACAAAAAAAOj/6P/Q/+j/yP/A/7D/qP+g/4j/iP94/3D/aP9o/3D/OP8w/zj/GP8o/0D/MP9A/0D/OP8w/yj/OP9A/0j/UP9A/2D/WP9o/3j/gP9w/6D/mP+o/7j/qP+4/7D/2P/A/+D/yP/Q//D/6P/o/+D/AAD4/wgAKAAgADgAKAAgACgAMAAoACgACAAAABgAAAAIAAgACAAAAPD/AADw/9j/4P/Q/8j/0P+w/7j/sP+w/5j/iP9w/3D/YP9Y/1j/UP84/yj/IP9I/1j/WP9w/3D/cP+I/4j/eP+Q/4j/oP+w/6j/uP+4/7D/0P/Y//D/AAAIABAAIAAwAEAASABwAHgAcAB4AJAAmACIAIAAcABgAFAAYAAwADAAQAAgAAgACAD4//D/0P/Q/8D/qP+Y/4j/aP9w/2j/YP9A/yD/IP8I//D+GP8I/wj/AP8I/xD/KP9A/0j/UP9Y/3j/eP+Q/6j/yP/Q//D/AAAAADAAQABIAFAAaACIAJgAsAC4ANAA2ADgANAA2ADoAOgAyADQAMAAsACYAIgAgACIAIAAaABgAEgAKAAQAAAA+P/w/+D/wP+4/6D/mP+A/4D/UP9Q/0D/UP9A/xj/IP8g/yD/KP8g/zD/QP9A/0j/YP9w/4D/kP+Y/7D/wP/Q/+D/+P8AAAgAGAAoADgAUABQAGAAcACAAIgAiACIAJgAgACIAJAAiACYAJgAoACIAIgAkACIAHgAcABwAGAAWABAADgAKAAwACAAQAAoACAAKAAYACgAIAAwADAAKAAgADgAIAAgAEAAMABYAFgAaABoAGgAgACAAHAAaACAAHgAiABoAGgAeABgAGgAiABwAGgAQABAACAAIAAQAAAACAAIAAAA6P/Y/9D/4P/Y/8D/0P+4/7D/sP+o/5j/eP9w/0j/UP9I/0j/MP9Y/1j/aP+I/3j/kP+Y/5j/qP/A/8D/wP/Y//j/8P8QABAACAAgABAAEAAgADAAMABIAGAAYABYAFgAaABoAGgAaABoAFAAaABQAFgAUAAwADAAIAAgABAACAAYABAAAAAAAAgA+P8IAPj/CADw/+D/AAAAAAAAAAAYAAgAAAAAAAAAAAD4//j/AAAAAPj/8P/w//D/8P/w/wAACAAQAAAA8P/w//D/4P/w/+D/2P/o/8D/2P/g/7j/0P+w/8D/qP/A/7D/sP+o/7j/uP/I/8j/yP/Y/9j/0P/I/8j/4P/o//j/+P8QAAgAGAAYACAAEAAgAEAASABIAEgAUABgAGAAcABYAFgAaABQAEgAWABIAFgAWABgAFAASABQAEgAQABYAEgAUABYAEgAUAAwADAAOAAYABgAEAAAAPj/+P/4/+D/wP/A/7D/qP+w/6j/sP/Q/8j/2P/g/+D/AAAAAPj/+P8IAPD/AAAQAAgAAAAYABgACAAQABgAIAAgABgAGAAgACAAKAAwADAAKAAgABgAEAAYAAAA+P/o//D/2P/o/+D/0P/Q/9j/2P/I/+j/4P/w/9D/0P/A/7j/qP+w/5D/qP+Y/7D/sP+o/8D/yP/Y/+D/6P/4/wgAKAAwACgAOABAAEgASABAAEAAQAA4ACgAMABIAEgAUABwAGgAaABoAHgAaABoAGgAYABwAFAAWABQAEgASAA4ACgAOAAwABgAKAAAAAgAAAD4//j/6P/o//D/yP/I/9j/4P/g/9D/yP/I/8j/sP/I/8D/yP/Y/9D/4P/Y/+D/4P/Y//D/+P/g/wAACAAIAPD/EAAgADAAIAAQABAAGAAYABAAEAAwAEgAMAAwAEgAMAA4ACgAMAAgADAAKAAoABgACADw/+D/2P+4/8D/wP+g/5j/mP+o/6D/kP+Q/5j/qP+o/5j/qP+g/7D/qP+g/6D/qP+Y/6j/uP/A/8j/2P/Y/wAA8P/4/wAACAAYABgAIAAoABgAOAA4AEAAYAB4AHAAcABwAHgAeABQAGAAOAAgACgACAAQAAgACAAIAPj/4P/Y/+D/uP+w/7D/qP+Q/5j/kP94/2D/UP9A/1D/SP9I/2D/OP9A/0j/UP9Y/1D/UP9I/2D/aP94/4D/gP+Q/6D/oP+o/6D/qP/I/+D/4P/w/wAACAAQAAgAAAAgACAAMAAwAEAASABQAGgAYABoAHAAaACAAGAAaABQAEgASABAADAAMABAADgAMAAgABAAGAAQABgAIAAoABAAGAAoACAAGAAIAAAAAAAQAAAAAAAIAPD/AAAYAOj/AAAQABAAMAAoABgAMABAAEAAIAA4ADgAQABAACAAKAAYADgAKAA4AEgAOABIAFgAYABgAFgAcABwAIgAiACAAGAAaABwAHAAgABoAGAAeABIAGAAcABYAGgAUABIAFgAUABQAGAAWABgAGAAYABoAEgASABIADAAKAAwACgAIAAYABAACAAIAPj/6P/4/wAA+P/w/+j/AADo/+j/AADY//j/AADw//j/4P/Q/9j/2P/g/8D/uP/Q/8D/uP/I/8D/0P/Q/9D/wP+4/7D/mP+Y/5D/eP9w/2j/cP9g/2j/YP9Q/1j/WP9g/1j/cP94/4D/gP+A/4j/aP9g/2D/UP9o/2j/cP9Y/4D/gP94/4j/kP+Q/6D/sP+4/9j/4P8IAAAAAAAYABgAEAAQABgAKAAwACAAGAAgAEAAMAAwADgAKAAwADgAOAAYADAAGAAgABAAGAAAAAgAAADg/9D/yP/Y/9D/wP+4/8j/2P+4/7D/sP+4/8D/qP+Y/4j/cP9w/3D/cP9w/4j/kP+Y/6D/sP+w/7j/uP/Y/+D/4P8QAAgAIABAAEgAUABgAHAAeAB4AJAAmACoALAAuADAAMgAyADYAMAAuADAALAAoACYAJAAcABwAFAAQAAwABgAAAAQAOj/4P/Y/6D/oP+Y/4D/aP9g/1D/QP9I/1j/SP84/zD/SP9g/2j/cP+A/3j/iP+A/5j/kP+w/8D/4P/4//D/AAAQACAAUABAAFAAWACAAJAAiACIAIgAcAB4AGAAWABoAEgAUABIADAAMAAoACgAGAAQAPD/8P8AAPD/8P/Y/+D/+P/Q/8D/yP+w/7D/sP+w/6j/oP+g/5D/iP+I/5j/qP+o/6j/wP/Y/+D/8P8IACAAMAAoAEAAUABYAGAAcACIAKAAoACIAKgAsACwAKgAqACgALgAsACoAKgAsACgAJgAmACAAIgAYABQAFAASABgAEgASAAoADAAKAAYAAAAEAAYABAAAAAAAAAAAAAQAAgAAAAQAAgAAAAYACgAIAA4AEAAWABoAHAAeACIAIAAiACAAIAAcACAAIgAiACIAIgAeACAAHAAeABoAHgAeABIAEgAKAAoADgAMAAwADAAMAAYAAAAAADo/+j/+P/w//j/8P/g/+j/0P/I/7j/wP/A/7j/sP+w/7D/uP+w/5j/sP+o/7D/sP/A/8j/wP/I/+D/2P/g/+j/0P+4/9D/yP/Q/7j/uP/I/8D/wP+o/5j/gP94/2D/cP9w/4D/aP9w/1j/WP9g/0j/UP9Y/1D/QP9Q/zj/QP8o/zj/QP8w/0D/MP9I/1j/WP9o/2j/YP+A/2j/eP94/2D/aP94/3D/cP+Y/6D/sP+o/8D/uP+4/7j/sP/A/8D/uP+4/5j/uP+g/5j/mP+g/5j/kP+A/5D/iP+g/5j/sP+Y/4j/mP+g/5D/qP+Y/5D/mP+Y/4j/sP+o/7D/wP/Q/9D/0P8AAAgAAAAAACgAMAAwADgAWABYAFAAaABgAGAAUABgAFgA" preload="auto"></audio><div class="toast" ng-repeat="toast in toasty" ng-class="[toast.type, toast.interact, toast.shake, toast.theme]" ng-click="clickToasty(toast)"><div ng-click="close(toast.id)" class="close-button" ng-if="toast.showClose"></div><div ng-if="toast.title || toast.msg" class="toast-text"><span class="toast-title" ng-if="!toast.html && toast.title" ng-bind="toast.title"></span><span class="toast-title" ng-if="toast.html && toast.title" ng-bind-html="toast.title"></span><br ng-if="toast.title && toast.msg" /><span class="toast-msg" ng-if="!toast.html && toast.msg" ng-bind="toast.msg"></span><span class="toast-msg" ng-if="toast.html && toast.msg" ng-bind-html="toast.msg"></span></div></div></div>'}}]),angular.module("angular-toasty").provider("toastyConfig",function(){var e={limit:5,showClose:!0,clickToClose:!1,position:"bottom-right",timeout:5e3,sound:!0,html:!1,shake:!1,theme:"default"},t={};return{setConfig:function(e){t=e},$get:function(){return{config:angular.extend(e,t)}}}}),angular.module("angular-toasty").factory("toasty",["$rootScope","toastyConfig",function(e,t){var n=t.config,i=function(t,i){(angular.isString(t)&&""!=t||angular.isNumber(t))&&(t={title:t.toString()}),t&&(t.title||t.msg)?(t.type=i||"default",e.$broadcast("toasty-new",{config:n,options:t})):console.error("angular-toasty: No toast title or message specified!")};return i.default=function(e){i(e)},i.info=function(e){i(e,"info")},i.wait=function(e){i(e,"wait")},i.success=function(e){i(e,"success")},i.error=function(e){i(e,"error")},i.warning=function(e){i(e,"warning")},i.clear=function(t){e.$broadcast("toasty-clear",{id:t})},i.getGlobalConfig=function(){return n},i}]),function(e,t,n){"use strict";function i(e){return k(e)?e:Object.keys(e).map(function(t){return e[t]})}function r(e){return null===e}function o(e,t){return-1==Object.keys(e).map(function(i){return t[i]!==n&&t[i]==e[i]}).indexOf(!1)}function a(e,t){for(var n=0,i=0;i<=t.length;i++){var r=function(e,t,n){for(var i=0;t+i<=e.length;){if(e.charAt(t+i)==n)return i;i++}return-1}(e,n,t.charAt(i));if(-1==r)return!1;n+=r+1}return!0}function s(e,t,n){var i=0;return e.filter(function(e){var r=x(n)?i<t&&n(e):i<t;return i=r?i+1:i,r})}function l(e,t){return Math.round(e*Math.pow(10,t))/Math.pow(10,t)}function c(e,t,n){return t=t||[],Object.keys(e).forEach(function(i){if(I(e[i])&&!k(e[i])){var r=n?n+"."+i:n;c(e[i],t,r||i)}else{var o=n?n+"."+i:i;t.push(o)}}),t}function u(e){return e&&e.$evalAsync&&e.$watch}function d(){return function(e,t){return e>t}}function h(){return function(e,t){return e>=t}}function p(){return function(e,t){return e<t}}function f(){return function(e,t){return e<=t}}function m(){return function(e,t){return e==t}}function g(){return function(e,t){return e!=t}}function v(){return function(e,t){return e===t}}function b(){return function(e,t){return e!==t}}function y(e){return function(t,n){return t=I(t)?i(t):t,!(!k(t)||S(n))&&t.some(function(t){return T(n)&&I(t)||E(n)?e(n)(t):t===n})}}function _(e,t){return t=t||0,t>=e.length?e:k(e[t])?_(e.slice(0,t).concat(e[t],e.slice(t+1)),t):_(e,t+1)}function w(e){return function(t,n){function r(e,t){return!S(t)&&e.some(function(e){return N(e,t)})}if(t=I(t)?i(t):t,!k(t))return t;var o=[],a=e(n);return S(n)?t.filter(function(e,t,n){return n.indexOf(e)===t}):t.filter(function(e){var t=a(e);return!r(o,t)&&(o.push(t),!0)})}}function A(e,t,n){return t?e+n+A(e,--t,n):e}function C(){return function(e){return T(e)?e.split(" ").map(function(e){return e.charAt(0).toUpperCase()+e.substring(1)}).join(" "):e}}var x=t.isDefined,S=t.isUndefined,E=t.isFunction,T=t.isString,D=t.isNumber,I=t.isObject,k=t.isArray,M=t.forEach,P=t.extend,$=t.copy,N=t.equals;String.prototype.contains||(String.prototype.contains=function(){return-1!==String.prototype.indexOf.apply(this,arguments)}),t.module("a8m.angular",[]).filter("isUndefined",function(){return function(e){return t.isUndefined(e)}}).filter("isDefined",function(){return function(e){return t.isDefined(e)}}).filter("isFunction",function(){return function(e){return t.isFunction(e)}}).filter("isString",function(){return function(e){return t.isString(e)}}).filter("isNumber",function(){return function(e){return t.isNumber(e)}}).filter("isArray",function(){return function(e){return t.isArray(e)}}).filter("isObject",function(){return function(e){return t.isObject(e)}}).filter("isEqual",function(){return function(e,n){return t.equals(e,n)}}),t.module("a8m.conditions",[]).filter({isGreaterThan:d,">":d,isGreaterThanOrEqualTo:h,">=":h,isLessThan:p,"<":p,isLessThanOrEqualTo:f,"<=":f,isEqualTo:m,"==":m,isNotEqualTo:g,"!=":g,isIdenticalTo:v,"===":v,isNotIdenticalTo:b,"!==":b}),t.module("a8m.is-null",[]).filter("isNull",function(){return function(e){return r(e)}}),t.module("a8m.after-where",[]).filter("afterWhere",function(){return function(e,t){if(e=I(e)?i(e):e,!k(e)||S(t))return e;var n=e.map(function(e){return o(t,e)}).indexOf(!0);return e.slice(-1===n?0:n)}}),t.module("a8m.after",[]).filter("after",function(){return function(e,t){return e=I(e)?i(e):e,k(e)?e.slice(t):e}}),t.module("a8m.before-where",[]).filter("beforeWhere",function(){return function(e,t){if(e=I(e)?i(e):e,!k(e)||S(t))return e;var n=e.map(function(e){return o(t,e)}).indexOf(!0);return e.slice(0,-1===n?e.length:++n)}}),t.module("a8m.before",[]).filter("before",function(){return function(e,t){return e=I(e)?i(e):e,k(e)?e.slice(0,t?--t:t):e}}),t.module("a8m.chunk-by",["a8m.filter-watcher"]).filter("chunkBy",["filterWatcher",function(e){return function(t,n,i){function r(e,t){for(var n=[];e--;)n[e]=t;return n}return e.isMemoized("chunkBy",arguments)||e.memoize("chunkBy",arguments,this,function(e,t,n){return k(e)?e.map(function(e,i,o){return i*=t,e=o.slice(i,i+t),!S(n)&&e.length<t?e.concat(r(t-e.length,n)):e}).slice(0,Math.ceil(e.length/t)):e}(t,n,i))}}]),t.module("a8m.concat",[]).filter("concat",[function(){return function(e,t){if(S(t))return e;if(k(e))return I(t)?e.concat(i(t)):e.concat(t);if(I(e)){var n=i(e);return I(t)?n.concat(i(t)):n.concat(t)}return e}}]),t.module("a8m.contains",[]).filter({contains:["$parse",y],some:["$parse",y]}),t.module("a8m.count-by",[]).filter("countBy",["$parse",function(e){return function(t,n){var r,o={},a=e(n);return t=I(t)?i(t):t,!k(t)||S(n)?t:(t.forEach(function(e){r=a(e),o[r]||(o[r]=0),o[r]++}),o)}}]),t.module("a8m.defaults",[]).filter("defaults",["$parse",function(e){return function(t,n){if(t=I(t)?i(t):t,!k(t)||!I(n))return t;var r=c(n);return t.forEach(function(t){r.forEach(function(i){var r=e(i),o=r.assign;S(r(t))&&o(t,r(n))})}),t}}]),t.module("a8m.every",[]).filter("every",["$parse",function(e){return function(t,n){return t=I(t)?i(t):t,!(k(t)&&!S(n))||t.every(function(t){return I(t)||E(n)?e(n)(t):t===n})}}]),t.module("a8m.filter-by",[]).filter("filterBy",["$parse",function(e){return function(t,r,o,a){var s;return o=T(o)||D(o)?String(o).toLowerCase():n,t=I(t)?i(t):t,!k(t)||S(o)?t:t.filter(function(t){return r.some(function(n){if(~n.indexOf("+")){var i=n.replace(/\s+/g,"").split("+");s=i.map(function(n){return e(n)(t)}).join(" ")}else s=e(n)(t);return!(!T(s)&&!D(s))&&(s=String(s).toLowerCase(),a?s===o:s.contains(o))})})}}]),t.module("a8m.first",[]).filter("first",["$parse",function(e){return function(t){var r,o,a;return t=I(t)?i(t):t,k(t)?(a=Array.prototype.slice.call(arguments,1),r=D(a[0])?a[0]:1,o=D(a[0])?D(a[1])?n:a[1]:a[0],a.length?s(t,r,o?e(o):o):t[0]):t}}]),t.module("a8m.flatten",[]).filter("flatten",function(){return function(e,t){return t=t||!1,e=I(e)?i(e):e,k(e)?t?[].concat.apply([],e):_(e,0):e}}),t.module("a8m.fuzzy-by",[]).filter("fuzzyBy",["$parse",function(e){return function(t,n,r,o){var s,l,c=o||!1;return t=I(t)?i(t):t,!k(t)||S(n)||S(r)?t:(l=e(n),t.filter(function(e){return s=l(e),!!T(s)&&(s=c?s:s.toLowerCase(),r=c?r:r.toLowerCase(),!1!==a(s,r))}))}}]),t.module("a8m.fuzzy",[]).filter("fuzzy",function(){return function(e,t,n){function r(e,t){var n,i;return 0<Object.keys(e).filter(function(r){return n=e[r],!!i||!!T(n)&&(n=o?n:n.toLowerCase(),i=!1!==a(n,t))}).length}var o=n||!1;return e=I(e)?i(e):e,!k(e)||S(t)?e:(t=o?t:t.toLowerCase(),e.filter(function(e){return T(e)?(e=o?e:e.toLowerCase(),!1!==a(e,t)):!!I(e)&&r(e,t)}))}}),t.module("a8m.group-by",["a8m.filter-watcher"]).filter("groupBy",["$parse","filterWatcher",function(e,t){return function(n,i){return!I(n)||S(i)?n:t.isMemoized("groupBy",arguments)||t.memoize("groupBy",arguments,this,function(e,t){var n,i={};return M(e,function(e){n=t(e),i[n]||(i[n]=[]),i[n].push(e)}),i}(n,e(i)))}}]),t.module("a8m.is-empty",[]).filter("isEmpty",function(){return function(e){return I(e)?!i(e).length:!e.length}}),t.module("a8m.join",[]).filter("join",function(){return function(e,t){return S(e)||!k(e)?e:(S(t)&&(t=" "),e.join(t))}}),t.module("a8m.last",[]).filter("last",["$parse",function(e){return function(t){var r,o,a,l=$(t);return l=I(l)?i(l):l,k(l)?(a=Array.prototype.slice.call(arguments,1),r=D(a[0])?a[0]:1,o=D(a[0])?D(a[1])?n:a[1]:a[0],a.length?s(l.reverse(),r,o?e(o):o).reverse():l[l.length-1]):l}}]),t.module("a8m.map",[]).filter("map",["$parse",function(e){return function(t,n){return t=I(t)?i(t):t,!k(t)||S(n)?t:t.map(function(t){return e(n)(t)})}}]),t.module("a8m.omit",[]).filter("omit",["$parse",function(e){return function(t,n){return t=I(t)?i(t):t,!k(t)||S(n)?t:t.filter(function(t){return!e(n)(t)})}}]),t.module("a8m.pick",[]).filter("pick",["$parse",function(e){return function(t,n){return t=I(t)?i(t):t,!k(t)||S(n)?t:t.filter(function(t){return e(n)(t)})}}]),t.module("a8m.range",[]).filter("range",function(){return function(e,t,n,i,r){n=n||0,i=i||1;for(var o=0;o<parseInt(t);o++){var a=n+o*i;e.push(E(r)?r(a):a)}return e}}),t.module("a8m.remove-with",[]).filter("removeWith",function(){return function(e,t){return S(t)?e:(e=I(e)?i(e):e).filter(function(e){return!o(t,e)})}}),t.module("a8m.remove",[]).filter("remove",function(){return function(e){e=I(e)?i(e):e;var t=Array.prototype.slice.call(arguments,1);return k(e)?e.filter(function(e){return!t.some(function(t){return N(t,e)})}):e}}),t.module("a8m.reverse",[]).filter("reverse",[function(){return function(e){return e=I(e)?i(e):e,T(e)?e.split("").reverse().join(""):k(e)?e.slice().reverse():e}}]),t.module("a8m.search-field",[]).filter("searchField",["$parse",function(e){return function(t){var n,r;t=I(t)?i(t):t;var o=Array.prototype.slice.call(arguments,1);return k(t)&&o.length?t.map(function(t){return r=o.map(function(i){return(n=e(i))(t)}).join(" "),P(t,{searchField:r})}):t}}]),t.module("a8m.to-array",[]).filter("toArray",function(){return function(e,t){return I(e)?t?Object.keys(e).map(function(t){return P(e[t],{$key:t})}):i(e):e}}),t.module("a8m.unique",[]).filter({unique:["$parse",w],uniq:["$parse",w]}),t.module("a8m.where",[]).filter("where",function(){return function(e,t){return S(t)?e:(e=I(e)?i(e):e).filter(function(e){return o(t,e)})}}),t.module("a8m.xor",[]).filter("xor",["$parse",function(e){return function(t,n,r){function o(t,n){var i=e(r);return n.some(function(e){return r?N(i(e),i(t)):N(e,t)})}return r=r||!1,t=I(t)?i(t):t,n=I(n)?i(n):n,k(t)&&k(n)?t.concat(n).filter(function(e){return!(o(e,t)&&o(e,n))}):t}}]),t.module("a8m.math.abs",[]).filter("abs",function(){return function(e){return Math.abs(e)}}),t.module("a8m.math.byteFmt",[]).filter("byteFmt",function(){var e=[{str:"B",val:1024}];return["KB","MB","GB","TB","PB","EB","ZB","YB"].forEach(function(t,n){e.push({str:t,val:1024*e[n].val})}),function(t,n){if(D(n)&&isFinite(n)&&n%1==0&&n>=0&&D(t)&&isFinite(t)){for(var i=0;i<e.length-1&&t>=e[i].val;)i++;return t/=i>0?e[i-1].val:1,l(t,n)+" "+e[i].str}return"NaN"}}),t.module("a8m.math.degrees",[]).filter("degrees",function(){return function(e,t){if(D(t)&&isFinite(t)&&t%1==0&&t>=0&&D(e)&&isFinite(e)){var n=180*e/Math.PI;return Math.round(n*Math.pow(10,t))/Math.pow(10,t)}return"NaN"}}),t.module("a8m.math.kbFmt",[]).filter("kbFmt",function(){var e=[{str:"KB",val:1024}];return["MB","GB","TB","PB","EB","ZB","YB"].forEach(function(t,n){e.push({str:t,val:1024*e[n].val})}),function(t,n){if(D(n)&&isFinite(n)&&n%1==0&&n>=0&&D(t)&&isFinite(t)){for(var i=0;i<e.length-1&&t>=e[i].val;)i++;return t/=i>0?e[i-1].val:1,l(t,n)+" "+e[i].str}return"NaN"}}),t.module("a8m.math.max",[]).filter("max",["$parse",function(e){function t(t,n){var i=t.map(function(t){return e(n)(t)});return i.indexOf(Math.max.apply(Math,i))}return function(e,n){return k(e)?S(n)?Math.max.apply(Math,e):e[t(e,n)]:e}}]),t.module("a8m.math.min",[]).filter("min",["$parse",function(e){function t(t,n){var i=t.map(function(t){return e(n)(t)});return i.indexOf(Math.min.apply(Math,i))}return function(e,n){return k(e)?S(n)?Math.min.apply(Math,e):e[t(e,n)]:e}}]),t.module("a8m.math.percent",[]).filter("percent",function(){return function(e,t,n){var i=T(e)?Number(e):e;return t=t||100,n=n||!1,!D(i)||isNaN(i)?e:n?Math.round(i/t*100):i/t*100}}),t.module("a8m.math.radians",[]).filter("radians",function(){return function(e,t){if(D(t)&&isFinite(t)&&t%1==0&&t>=0&&D(e)&&isFinite(e)){var n=3.14159265359*e/180;return Math.round(n*Math.pow(10,t))/Math.pow(10,t)}return"NaN"}}),t.module("a8m.math.radix",[]).filter("radix",function(){return function(e,t){var n=/^[2-9]$|^[1-2]\d$|^3[0-6]$/;return D(e)&&n.test(t)?e.toString(t).toUpperCase():e}}),t.module("a8m.math.shortFmt",[]).filter("shortFmt",function(){return function(e,t){return D(t)&&isFinite(t)&&t%1==0&&t>=0&&D(e)&&isFinite(e)?e<1e3?""+e:e<1e6?l(e/1e3,t)+" K":e<1e9?l(e/1e6,t)+" M":l(e/1e9,t)+" B":"NaN"}}),t.module("a8m.math.sum",[]).filter("sum",function(){return function(e,t){return k(e)?e.reduce(function(e,t){return e+t},t||0):e}}),t.module("a8m.ends-with",[]).filter("endsWith",function(){return function(e,t,n){var i,r=n||!1;return!T(e)||S(t)?e:(e=r?e:e.toLowerCase(),i=e.length-t.length,-1!==e.indexOf(r?t:t.toLowerCase(),i))}}),t.module("a8m.latinize",[]).filter("latinize",[function(){function e(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return n[e]||e})}for(var t=[{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"OE",letters:"\8cŒ"},{base:"oe",letters:"\9cœ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ"},{base:"nj",letters:"nj"},{base:"o",letters:"oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],n={},i=0;i<t.length;i++)for(var r=t[i].letters.split(""),o=0;o<r.length;o++)n[r[o]]=t[i].base;return function(t){return T(t)?e(t):t}}]),t.module("a8m.ltrim",[]).filter("ltrim",function(){return function(e,t){var n=t||"\\s";return T(e)?e.replace(new RegExp("^"+n+"+"),""):e}}),t.module("a8m.match",[]).filter("match",function(){return function(e,t,n){var i=new RegExp(t,n);return T(e)?e.match(i):null}}),t.module("a8m.phoneUS",[]).filter("phoneUS",function(){return function(e){return"("+(e+="").slice(0,3)+") "+e.slice(3,6)+"-"+e.slice(6)}}),t.module("a8m.repeat",[]).filter("repeat",[function(){return function(e,t,n){var i=~~t;return T(e)&&i?A(e,--t,n||""):e}}]),t.module("a8m.rtrim",[]).filter("rtrim",function(){return function(e,t){var n=t||"\\s";return T(e)?e.replace(new RegExp(n+"+$"),""):e}}),t.module("a8m.slugify",[]).filter("slugify",[function(){return function(e,t){var n=S(t)?"-":t;return T(e)?e.toLowerCase().replace(/\s+/g,n):e}}]),t.module("a8m.split",[]).filter("split",function(){function e(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}return function(t,n,i){var o,a,s,l;return S(t)||!T(t)?null:(S(n)&&(n=""),isNaN(i)&&(i=0),o=new RegExp(e(n),"g"),a=t.match(o),r(a)||i>=a.length?[t]:0===i?t.split(n):(s=t.split(n),l=s.splice(0,i+1),s.unshift(l.join(n)),s))}}),t.module("a8m.starts-with",[]).filter("startsWith",function(){return function(e,t,n){var i=n||!1;return!T(e)||S(t)?e:!(e=i?e:e.toLowerCase()).indexOf(i?t:t.toLowerCase())}}),t.module("a8m.stringular",[]).filter("stringular",function(){return function(e){var t=Array.prototype.slice.call(arguments,1);return e.replace(/{(\d+)}/g,function(e,n){return S(t[n])?e:t[n]})}}),t.module("a8m.strip-tags",[]).filter("stripTags",function(){return function(e){return T(e)?e.replace(/<\S[^><]*>/g,""):e}}),t.module("a8m.test",[]).filter("test",function(){return function(e,t,n){var i=new RegExp(t,n);return T(e)?i.test(e):e}}),t.module("a8m.trim",[]).filter("trim",function(){return function(e,t){var n=t||"\\s";return T(e)?e.replace(new RegExp("^"+n+"+|"+n+"+$","g"),""):e}}),t.module("a8m.truncate",[]).filter("truncate",function(){return function(e,t,n,i){return t=S(t)?e.length:t,i=i||!1,n=n||"",!T(e)||e.length<=t?e:e.substring(0,i?-1===e.indexOf(" ",t)?e.length:e.indexOf(" ",t):t)+n}}),t.module("a8m.ucfirst",[]).filter({ucfirst:C,titleize:C}),t.module("a8m.uri-component-encode",[]).filter("uriComponentEncode",["$window",function(e){return function(t){return T(t)?e.encodeURIComponent(t):t}}]),t.module("a8m.uri-encode",[]).filter("uriEncode",["$window",function(e){return function(t){return T(t)?e.encodeURI(t):t}}]),t.module("a8m.wrap",[]).filter("wrap",function(){return function(e,t,n){return T(e)&&x(t)?[t,e,n||t].join(""):e}}),t.module("a8m.filter-watcher",[]).provider("filterWatcher",function(){this.$get=["$window","$rootScope",function(e,t){function n(t,n){return[t,JSON.stringify(n,function(){var t=[];return function(n,i){if(I(i)&&!r(i)){if(~t.indexOf(i))return"[Circular]";t.push(i)}return e==i?"$WINDOW":e.document==i?"$DOCUMENT":u(i)?"$SCOPE":i}}())].join("#").replace(/"/g,"")}function i(e){var t=e.targetScope.$id;M(d[t],function(e){delete c[e]}),delete d[t]}function o(){h(function(){t.$$phase||(c={})},2e3)}function a(e,t){var n=e.$id;return S(d[n])&&(e.$on("$destroy",i),d[n]=[]),d[n].push(t)}function s(e,t){var i=n(e,t);return c[i]}function l(e,t,i,r){var s=n(e,t);return c[s]=r,u(i)?a(i,s):o(),r}var c={},d={},h=e.setTimeout;return{isMemoized:s,memoize:l}}]}),t.module("angular.filter",["a8m.ucfirst","a8m.uri-encode","a8m.uri-component-encode","a8m.slugify","a8m.latinize","a8m.strip-tags","a8m.stringular","a8m.truncate","a8m.starts-with","a8m.ends-with","a8m.wrap","a8m.trim","a8m.ltrim","a8m.rtrim","a8m.repeat","a8m.test","a8m.match","a8m.split","a8m.phoneUS","a8m.to-array","a8m.concat","a8m.contains","a8m.unique","a8m.is-empty","a8m.after","a8m.after-where","a8m.before","a8m.before-where","a8m.defaults","a8m.where","a8m.reverse","a8m.remove","a8m.remove-with","a8m.group-by","a8m.count-by","a8m.chunk-by","a8m.search-field","a8m.fuzzy-by","a8m.fuzzy","a8m.omit","a8m.pick","a8m.every","a8m.filter-by","a8m.xor","a8m.map","a8m.first","a8m.last","a8m.flatten","a8m.join","a8m.range","a8m.math.max","a8m.math.min","a8m.math.abs","a8m.math.percent","a8m.math.radix","a8m.math.sum","a8m.math.degrees","a8m.math.radians","a8m.math.byteFmt","a8m.math.kbFmt","a8m.math.shortFmt","a8m.angular","a8m.conditions","a8m.is-null","a8m.filter-watcher"])}(window,window.angular),function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof module&&module.exports?module.exports=t():e.Papa=t()}(this,function(){"use strict";function e(e,t){var n=(t=t||{}).dynamicTyping||!1;if(g(n)&&(t.dynamicTypingFunction=n,n={}),t.dynamicTyping=n,t.worker&&x.WORKERS_SUPPORTED){var s=c();return s.userStep=t.step,s.userChunk=t.chunk,s.userComplete=t.complete,s.userError=t.error,t.step=g(t.step),t.chunk=g(t.chunk),t.complete=g(t.complete),t.error=g(t.error),delete t.worker,void s.postMessage({input:e,config:t,workerId:s.id})}var l=null;return"string"==typeof e?l=t.download?new i(t):new o(t):!0===e.readable&&g(e.read)&&g(e.on)?l=new a(t):(b.File&&e instanceof File||e instanceof Object)&&(l=new r(t)),l.stream(e)}function t(e,t){function n(e){if("object"!=typeof e)return[];var t=[];for(var n in e)t.push(n);return t}function i(e,t){var n="";"string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t));var i=e instanceof Array&&e.length>0,o=!(t[0]instanceof Array);if(i&&s){for(var a=0;a<e.length;a++)a>0&&(n+=l),n+=r(e[a],a);t.length>0&&(n+=c)}for(var u=0;u<t.length;u++){for(var d=i?e.length:t[u].length,h=0;h<d;h++){h>0&&(n+=l);var p=i&&o?e[h]:h;n+=r(t[u][p],h)}u<t.length-1&&(n+=c)}return n}function r(e,t){return void 0===e||null===e?"":(e=e.toString().replace(d,u+u),"boolean"==typeof a&&a||a instanceof Array&&a[t]||o(e,x.BAD_DELIMITERS)||e.indexOf(l)>-1||" "===e.charAt(0)||" "===e.charAt(e.length-1)?u+e+u:e)}function o(e,t){for(var n=0;n<t.length;n++)if(e.indexOf(t[n])>-1)return!0;return!1}var a=!1,s=!0,l=",",c="\r\n",u='"';!function(){"object"==typeof t&&("string"==typeof t.delimiter&&1===t.delimiter.length&&-1===x.BAD_DELIMITERS.indexOf(t.delimiter)&&(l=t.delimiter),("boolean"==typeof t.quotes||t.quotes instanceof Array)&&(a=t.quotes),"string"==typeof t.newline&&(c=t.newline),"string"==typeof t.quoteChar&&(u=t.quoteChar),"boolean"==typeof t.header&&(s=t.header))}();var d=new RegExp(u,"g");if("string"==typeof e&&(e=JSON.parse(e)),e instanceof Array){if(!e.length||e[0]instanceof Array)return i(null,e);if("object"==typeof e[0])return i(n(e[0]),e)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),e.data instanceof Array&&(e.fields||(e.fields=e.meta&&e.meta.fields),e.fields||(e.fields=e.data[0]instanceof Array?e.fields:n(e.data[0])),e.data[0]instanceof Array||"object"==typeof e.data[0]||(e.data=[e.data])),i(e.fields||[],e.data||[]);throw"exception: Unable to serialize unrecognized input"}function n(e){function t(e){var t=f(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null),this._handle=new s(t),this._handle.streamer=this,this._config=t}this._handle=null,this._paused=!1,this._finished=!1,this._input=null,this._baseIndex=0,this._partialLine="",this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},t.call(this,e),this.parseChunk=function(e){if(this.isFirstChunk&&g(this._config.beforeFirstChunk)){var t=this._config.beforeFirstChunk(e);void 0!==t&&(e=t)}this.isFirstChunk=!1;var n=this._partialLine+e;this._partialLine="";var i=this._handle.parse(n,this._baseIndex,!this._finished);if(!this._handle.paused()&&!this._handle.aborted()){var r=i.meta.cursor;this._finished||(this._partialLine=n.substring(r-this._baseIndex),this._baseIndex=r),i&&i.data&&(this._rowCount+=i.data.length);var o=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(_)b.postMessage({results:i,workerId:x.WORKER_ID,finished:o});else if(g(this._config.chunk)){if(this._config.chunk(i,this._handle),this._paused)return;i=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(i.data),this._completeResults.errors=this._completeResults.errors.concat(i.errors),this._completeResults.meta=i.meta),!o||!g(this._config.complete)||i&&i.meta.aborted||this._config.complete(this._completeResults,this._input),o||i&&i.meta.paused||this._nextChunk(),i}},this._sendError=function(e){g(this._config.error)?this._config.error(e):_&&this._config.error&&b.postMessage({workerId:x.WORKER_ID,error:e,finished:!1})}}function i(e){function t(e){var t=e.getResponseHeader("Content-Range");return null===t?-1:parseInt(t.substr(t.lastIndexOf("/")+1))}(e=e||{}).chunkSize||(e.chunkSize=x.RemoteChunkSize),n.call(this,e);var i;this._nextChunk=y?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(i=new XMLHttpRequest,this._config.withCredentials&&(i.withCredentials=this._config.withCredentials),y||(i.onload=m(this._chunkLoaded,this),i.onerror=m(this._chunkError,this)),i.open("GET",this._input,!y),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var t in e)i.setRequestHeader(t,e[t])}if(this._config.chunkSize){var n=this._start+this._config.chunkSize-1;i.setRequestHeader("Range","bytes="+this._start+"-"+n),i.setRequestHeader("If-None-Match","webkit-no-cache")}try{i.send()}catch(e){this._chunkError(e.message)}y&&0===i.status?this._chunkError():this._start+=this._config.chunkSize}},this._chunkLoaded=function(){4==i.readyState&&(i.status<200||i.status>=400?this._chunkError():(this._finished=!this._config.chunkSize||this._start>t(i),this.parseChunk(i.responseText)))},this._chunkError=function(e){var t=i.statusText||e;this._sendError(t)}}function r(e){(e=e||{}).chunkSize||(e.chunkSize=x.LocalChunkSize),n.call(this,e);var t,i,r="undefined"!=typeof FileReader;this.stream=function(e){this._input=e,i=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=m(this._chunkLoaded,this),t.onerror=m(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input;if(this._config.chunkSize){var n=Math.min(this._start+this._config.chunkSize,this._input.size);e=i.call(e,this._start,n)}var o=t.readAsText(e,this._config.encoding);r||this._chunkLoaded({target:{result:o}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function o(e){e=e||{},n.call(this,e);var t,i;this.stream=function(e){return t=e,i=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e=this._config.chunkSize,t=e?i.substr(0,e):i;return i=e?i.substr(e):"",this._finished=!i,this.parseChunk(t)}}}function a(e){e=e||{},n.call(this,e);var t=[],i=!0;this.stream=function(e){this._input=e,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._nextChunk=function(){t.length?this.parseChunk(t.shift()):i=!0},this._streamData=m(function(e){try{t.push("string"==typeof e?e:e.toString(this._config.encoding)),i&&(i=!1,this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=m(function(e){this._streamCleanUp(),this._sendError(e.message)},this),this._streamEnd=m(function(){this._streamCleanUp(),this._finished=!0,this._streamData("")},this),this._streamCleanUp=m(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function s(e){function t(){if(C&&m&&(d("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+x.DefaultDelimiter+"'"),m=!1),e.skipEmptyLines)for(var t=0;t<C.data.length;t++)1===C.data[t].length&&""===C.data[t][0]&&C.data.splice(t--,1);return n()&&i(),a()}function n(){return e.header&&0===A.length}function i(){if(C){for(var e=0;n()&&e<C.data.length;e++)for(var t=0;t<C.data[e].length;t++)A.push(C.data[e][t]);C.data.splice(0,1)}}function r(t){return e.dynamicTypingFunction&&void 0===e.dynamicTyping[t]&&(e.dynamicTyping[t]=e.dynamicTypingFunction(t)),!0===(e.dynamicTyping[t]||e.dynamicTyping)}function o(e,t){return r(e)?"true"===t||"TRUE"===t||"false"!==t&&"FALSE"!==t&&u(t):t}function a(){if(!C||!e.header&&!e.dynamicTyping)return C;for(var t=0;t<C.data.length;t++){for(var n=e.header?{}:[],i=0;i<C.data[t].length;i++){var r=i,a=C.data[t][i];e.header&&(r=i>=A.length?"__parsed_extra":A[i]),a=o(r,a),"__parsed_extra"===r?(n[r]=n[r]||[],n[r].push(a)):n[r]=a}C.data[t]=n,e.header&&(i>A.length?d("FieldMismatch","TooManyFields","Too many fields: expected "+A.length+" fields but parsed "+i,t):i<A.length&&d("FieldMismatch","TooFewFields","Too few fields: expected "+A.length+" fields but parsed "+i,t))}return e.header&&C.meta&&(C.meta.fields=A),C}function s(t,n){for(var i,r,o,a=[",","\t","|",";",x.RECORD_SEP,x.UNIT_SEP],s=0;s<a.length;s++){var c=a[s],u=0,d=0;o=void 0;for(var h=new l({delimiter:c,newline:n,preview:10}).parse(t),p=0;p<h.data.length;p++){var f=h.data[p].length;d+=f,void 0!==o?f>1&&(u+=Math.abs(f-o),o=f):o=f}h.data.length>0&&(d/=h.data.length),(void 0===r||u<r)&&d>1.99&&(r=u,i=c)}return e.delimiter=i,{successful:!!i,bestDelimiter:i}}function c(e){var t=(e=e.substr(0,1048576)).split("\r"),n=e.split("\n"),i=n.length>1&&n[0].length<t[0].length;if(1===t.length||i)return"\n";for(var r=0,o=0;o<t.length;o++)"\n"===t[o][0]&&r++;return r>=t.length/2?"\r\n":"\r"}function u(e){return v.test(e)?parseFloat(e):e}function d(e,t,n,i){C.errors.push({type:e,code:t,message:n,row:i})}var h,p,m,v=/^\s*-?(\d*\.?\d+|\d+\.?\d*)(e[-+]?\d+)?\s*$/i,b=this,y=0,_=!1,w=!1,A=[],C={data:[],errors:[],meta:{}};if(g(e.step)){var S=e.step;e.step=function(i){if(C=i,n())t();else{if(t(),0===C.data.length)return;y+=i.data.length,e.preview&&y>e.preview?p.abort():S(C,b)}}}this.parse=function(n,i,r){if(e.newline||(e.newline=c(n)),m=!1,e.delimiter)g(e.delimiter)&&(e.delimiter=e.delimiter(n),C.meta.delimiter=e.delimiter);else{var o=s(n,e.newline);o.successful?e.delimiter=o.bestDelimiter:(m=!0,e.delimiter=x.DefaultDelimiter),C.meta.delimiter=e.delimiter}var a=f(e);return e.preview&&e.header&&a.preview++,h=n,p=new l(a),C=p.parse(h,i,r),t(),_?{meta:{paused:!0}}:C||{meta:{paused:!1}}},this.paused=function(){return _},this.pause=function(){_=!0,p.abort(),h=h.substr(p.getCharIndex())},this.resume=function(){_=!1,b.streamer.parseChunk(h)},this.aborted=function(){return w},this.abort=function(){w=!0,p.abort(),C.meta.aborted=!0,g(e.complete)&&e.complete(C),h=""}}function l(e){var t=(e=e||{}).delimiter,n=e.newline,i=e.comments,r=e.step,o=e.preview,a=e.fastMode,s=e.quoteChar||'"';if(("string"!=typeof t||x.BAD_DELIMITERS.indexOf(t)>-1)&&(t=","),i===t)throw"Comment character same as delimiter";!0===i?i="#":("string"!=typeof i||x.BAD_DELIMITERS.indexOf(i)>-1)&&(i=!1),"\n"!=n&&"\r"!=n&&"\r\n"!=n&&(n="\n");var l=0,c=!1;this.parse=function(e,u,d){function h(e){C.push(e),E=l}function p(t){return d?m():(void 0===t&&(t=e.substr(l)),S.push(t),l=b,h(S),A&&v(),m())}function f(t){l=t,h(S),S=[],k=e.indexOf(n,l)}function m(e){return{data:C,errors:x,meta:{delimiter:t,linebreak:n,aborted:c,truncated:!!e,cursor:E+(u||0)}}}function v(){r(m()),C=[],x=[]}if("string"!=typeof e)throw"Input must be a string";var b=e.length,y=t.length,_=n.length,w=i.length,A=g(r);l=0;var C=[],x=[],S=[],E=0;if(!e)return m();if(a||!1!==a&&-1===e.indexOf(s)){for(var T=e.split(n),D=0;D<T.length;D++){S=T[D];if(l+=S.length,D!==T.length-1)l+=n.length;else if(d)return m();if(!i||S.substr(0,w)!==i){if(A){if(C=[],h(S.split(t)),v(),c)return m()}else h(S.split(t));if(o&&D>=o)return C=C.slice(0,o),m(!0)}}return m()}for(var I=e.indexOf(t,l),k=e.indexOf(n,l),M=new RegExp(s+s,"g");;)if(e[l]!==s)if(i&&0===S.length&&e.substr(l,w)===i){if(-1===k)return m();l=k+_,k=e.indexOf(n,l),I=e.indexOf(t,l)}else if(-1!==I&&(I<k||-1===k))S.push(e.substring(l,I)),l=I+y,I=e.indexOf(t,l);else{if(-1===k)break;if(S.push(e.substring(l,k)),f(k+_),A&&(v(),c))return m();if(o&&C.length>=o)return m(!0)}else{var P=l;for(l++;;){if(-1===(P=e.indexOf(s,P+1)))return d||x.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:C.length,index:l}),p();if(P===b-1)return p(e.substring(l,P).replace(M,s));if(e[P+1]!==s){if(e[P+1]===t){S.push(e.substring(l,P).replace(M,s)),l=P+1+y,I=e.indexOf(t,l),k=e.indexOf(n,l);break}if(e.substr(P+1,_)===n){if(S.push(e.substring(l,P).replace(M,s)),f(P+1+_),I=e.indexOf(t,l),A&&(v(),c))return m();if(o&&C.length>=o)return m(!0);break}}else P++}}return p()},this.abort=function(){c=!0},this.getCharIndex=function(){return l}}function c(){if(!x.WORKERS_SUPPORTED)return!1;if(!w&&null===x.SCRIPT_PATH)throw new Error("Script path cannot be determined automatically when Papa Parse is loaded asynchronously. You need to set Papa.SCRIPT_PATH manually.");var e=x.SCRIPT_PATH||v;e+=(-1!==e.indexOf("?")?"&":"?")+"papaworker";var t=new b.Worker(e);return t.onmessage=u,t.id=C++,A[t.id]=t,t}function u(e){var t=e.data,n=A[t.workerId],i=!1;if(t.error)n.userError(t.error,t.file);else if(t.results&&t.results.data){var r={abort:function(){i=!0,d(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:h,resume:h};if(g(n.userStep)){for(var o=0;o<t.results.data.length&&(n.userStep({data:[t.results.data[o]],errors:t.results.errors,meta:t.results.meta},r),!i);o++);delete t.results}else g(n.userChunk)&&(n.userChunk(t.results,r,t.file),delete t.results)}t.finished&&!i&&d(t.workerId,t.results)}function d(e,t){var n=A[e];g(n.userComplete)&&n.userComplete(t),n.terminate(),delete A[e]}function h(){throw"Not implemented."}function p(e){var t=e.data;if(void 0===x.WORKER_ID&&t&&(x.WORKER_ID=t.workerId),"string"==typeof t.input)b.postMessage({workerId:x.WORKER_ID,results:x.parse(t.input,t.config),finished:!0});else if(b.File&&t.input instanceof File||t.input instanceof Object){var n=x.parse(t.input,t.config);n&&b.postMessage({workerId:x.WORKER_ID,results:n,finished:!0})}}function f(e){if("object"!=typeof e)return e;var t=e instanceof Array?[]:{};for(var n in e)t[n]=f(e[n]);return t}function m(e,t){return function(){e.apply(t,arguments)}}function g(e){return"function"==typeof e}var v,b=function(){return"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==b?b:{}}(),y=!b.document&&!!b.postMessage,_=y&&/(\?|&)papaworker(=|&|$)/.test(b.location.search),w=!1,A={},C=0,x={};if(x.parse=e,x.unparse=t,x.RECORD_SEP=String.fromCharCode(30),x.UNIT_SEP=String.fromCharCode(31),x.BYTE_ORDER_MARK="\ufeff",x.BAD_DELIMITERS=["\r","\n",'"',x.BYTE_ORDER_MARK],x.WORKERS_SUPPORTED=!y&&!!b.Worker,x.SCRIPT_PATH=null,x.LocalChunkSize=10485760,x.RemoteChunkSize=5242880,x.DefaultDelimiter=",",x.Parser=l,x.ParserHandle=s,x.NetworkStreamer=i,x.FileStreamer=r,x.StringStreamer=o,x.ReadableStreamStreamer=a,b.jQuery){var S=b.jQuery;S.fn.parse=function(e){function t(){if(0!==o.length){var t=o[0];if(g(e.before)){var r=e.before(t.file,t.inputElem);if("object"==typeof r){if("abort"===r.action)return void n("AbortError",t.file,t.inputElem,r.reason);if("skip"===r.action)return void i();"object"==typeof r.config&&(t.instanceConfig=S.extend(t.instanceConfig,r.config))}else if("skip"===r)return void i()}var a=t.instanceConfig.complete;t.instanceConfig.complete=function(e){g(a)&&a(e,t.file,t.inputElem),i()},x.parse(t.file,t.instanceConfig)}else g(e.complete)&&e.complete()}function n(t,n,i,r){g(e.error)&&e.error({name:t},n,i,r)}function i(){o.splice(0,1),t()}var r=e.config||{},o=[];return this.each(function(e){if(!("INPUT"===S(this).prop("tagName").toUpperCase()&&"file"===S(this).attr("type").toLowerCase()&&b.FileReader)||!this.files||0===this.files.length)return!0;for(var t=0;t<this.files.length;t++)o.push({file:this.files[t],inputElem:this,instanceConfig:S.extend({},r)})}),t(),this}}return _?b.onmessage=p:x.WORKERS_SUPPORTED&&(v=function(){var e=document.getElementsByTagName("script");return e.length?e[e.length-1].src:""}(),document.body?document.addEventListener("DOMContentLoaded",function(){w=!0},!0):w=!0),i.prototype=Object.create(n.prototype),i.prototype.constructor=i,r.prototype=Object.create(n.prototype),r.prototype.constructor=r,o.prototype=Object.create(o.prototype),o.prototype.constructor=o,a.prototype=Object.create(n.prototype),a.prototype.constructor=a,x}),function(e){function t(e,i){if(e=e||"",i=i||{},e instanceof t)return e;if(!(this instanceof t))return new t(e,i);var r=n(e);this._originalInput=e,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=F(100*this._a)/100,this._format=i.format||r.format,this._gradientType=i.gradientType,this._r<1&&(this._r=F(this._r)),this._g<1&&(this._g=F(this._g)),this._b<1&&(this._b=F(this._b)),this._ok=r.ok,this._tc_id=B++}function n(e){var t={r:0,g:0,b:0},n=1,r=null,a=null,l=null,c=!1,u=!1;return"string"==typeof e&&(e=O(e)),"object"==typeof e&&(N(e.r)&&N(e.g)&&N(e.b)?(t=i(e.r,e.g,e.b),c=!0,u="%"===String(e.r).substr(-1)?"prgb":"rgb"):N(e.h)&&N(e.s)&&N(e.v)?(r=M(e.s),a=M(e.v),t=s(e.h,r,a),c=!0,u="hsv"):N(e.h)&&N(e.s)&&N(e.l)&&(r=M(e.s),l=M(e.l),t=o(e.h,r,l),c=!0,u="hsl"),e.hasOwnProperty("a")&&(n=e.a)),n=x(n),{ok:c,format:e.format||u,r:H(255,U(t.r,0)),g:H(255,U(t.g,0)),b:H(255,U(t.b,0)),a:n}}function i(e,t,n){return{r:255*S(e,255),g:255*S(t,255),b:255*S(n,255)}}function r(e,t,n){e=S(e,255),t=S(t,255),n=S(n,255);var i,r,o=U(e,t,n),a=H(e,t,n),s=(o+a)/2;if(o==a)i=r=0;else{var l=o-a;switch(r=s>.5?l/(2-o-a):l/(o+a),o){case e:i=(t-n)/l+(t<n?6:0);break;case t:i=(n-e)/l+2;break;case n:i=(e-t)/l+4}i/=6}return{h:i,s:r,l:s}}function o(e,t,n){function i(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var r,o,a;if(e=S(e,360),t=S(t,100),n=S(n,100),0===t)r=o=a=n;else{var s=n<.5?n*(1+t):n+t-n*t,l=2*n-s;r=i(l,s,e+1/3),o=i(l,s,e),a=i(l,s,e-1/3)}return{r:255*r,g:255*o,b:255*a}}function a(e,t,n){e=S(e,255),t=S(t,255),n=S(n,255);var i,r,o=U(e,t,n),a=H(e,t,n),s=o,l=o-a;if(r=0===o?0:l/o,o==a)i=0;else{switch(o){case e:i=(t-n)/l+(t<n?6:0);break;case t:i=(n-e)/l+2;break;case n:i=(e-t)/l+4}i/=6}return{h:i,s:r,v:s}}function s(t,n,i){t=6*S(t,360),n=S(n,100),i=S(i,100);var r=e.floor(t),o=t-r,a=i*(1-n),s=i*(1-o*n),l=i*(1-(1-o)*n),c=r%6;return{r:255*[i,s,a,a,l,i][c],g:255*[l,i,i,s,a,a][c],b:255*[a,a,l,i,i,s][c]}}function l(e,t,n,i){var r=[k(F(e).toString(16)),k(F(t).toString(16)),k(F(n).toString(16))];return i&&r[0].charAt(0)==r[0].charAt(1)&&r[1].charAt(0)==r[1].charAt(1)&&r[2].charAt(0)==r[2].charAt(1)?r[0].charAt(0)+r[1].charAt(0)+r[2].charAt(0):r.join("")}function c(e,t,n,i,r){var o=[k(F(e).toString(16)),k(F(t).toString(16)),k(F(n).toString(16)),k(P(i))];return r&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0):o.join("")}function u(e,t,n,i){return[k(P(i)),k(F(e).toString(16)),k(F(t).toString(16)),k(F(n).toString(16))].join("")}function d(e,n){n=0===n?0:n||10;var i=t(e).toHsl();return i.s-=n/100,i.s=E(i.s),t(i)}function h(e,n){n=0===n?0:n||10;var i=t(e).toHsl();return i.s+=n/100,i.s=E(i.s),t(i)}function p(e){return t(e).desaturate(100)}function f(e,n){n=0===n?0:n||10;var i=t(e).toHsl();return i.l+=n/100,i.l=E(i.l),t(i)}function m(e,n){n=0===n?0:n||10;var i=t(e).toRgb();return i.r=U(0,H(255,i.r-F(-n/100*255))),i.g=U(0,H(255,i.g-F(-n/100*255))),i.b=U(0,H(255,i.b-F(-n/100*255))),t(i)}function g(e,n){n=0===n?0:n||10;var i=t(e).toHsl();return i.l-=n/100,i.l=E(i.l),t(i)}function v(e,n){var i=t(e).toHsl(),r=(i.h+n)%360;return i.h=r<0?360+r:r,t(i)}function b(e){var n=t(e).toHsl();return n.h=(n.h+180)%360,t(n)}function y(e){var n=t(e).toHsl(),i=n.h;return[t(e),t({h:(i+120)%360,s:n.s,l:n.l}),t({h:(i+240)%360,s:n.s,l:n.l})]}function _(e){var n=t(e).toHsl(),i=n.h;return[t(e),t({h:(i+90)%360,s:n.s,l:n.l}),t({h:(i+180)%360,s:n.s,l:n.l}),t({h:(i+270)%360,s:n.s,l:n.l})]}function w(e){var n=t(e).toHsl(),i=n.h;return[t(e),t({h:(i+72)%360,s:n.s,l:n.l}),t({h:(i+216)%360,s:n.s,l:n.l})]}function A(e,n,i){n=n||6,i=i||30;var r=t(e).toHsl(),o=360/i,a=[t(e)];for(r.h=(r.h-(o*n>>1)+720)%360;--n;)r.h=(r.h+o)%360,a.push(t(r));return a}function C(e,n){n=n||6;for(var i=t(e).toHsv(),r=i.h,o=i.s,a=i.v,s=[],l=1/n;n--;)s.push(t({h:r,s:o,v:a})),a=(a+l)%1;return s}function x(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function S(t,n){D(t)&&(t="100%");var i=I(t);return t=H(n,U(0,parseFloat(t))),i&&(t=parseInt(t*n,10)/100),e.abs(t-n)<1e-6?1:t%n/parseFloat(n)}function E(e){return H(1,U(0,e))}function T(e){return parseInt(e,16)}function D(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)}function I(e){return"string"==typeof e&&-1!=e.indexOf("%")}function k(e){return 1==e.length?"0"+e:""+e}function M(e){return e<=1&&(e=100*e+"%"),e}function P(t){return e.round(255*parseFloat(t)).toString(16)}function $(e){return T(e)/255}function N(e){return!!q.CSS_UNIT.exec(e)}function O(e){e=e.replace(L,"").replace(G,"").toLowerCase();var t=!1;if(W[e])e=W[e],t=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};var n;return(n=q.rgb.exec(e))?{r:n[1],g:n[2],b:n[3]}:(n=q.rgba.exec(e))?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=q.hsl.exec(e))?{h:n[1],s:n[2],l:n[3]}:(n=q.hsla.exec(e))?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=q.hsv.exec(e))?{h:n[1],s:n[2],v:n[3]}:(n=q.hsva.exec(e))?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=q.hex8.exec(e))?{r:T(n[1]),g:T(n[2]),b:T(n[3]),a:$(n[4]),format:t?"name":"hex8"}:(n=q.hex6.exec(e))?{r:T(n[1]),g:T(n[2]),b:T(n[3]),format:t?"name":"hex"}:(n=q.hex4.exec(e))?{r:T(n[1]+""+n[1]),g:T(n[2]+""+n[2]),b:T(n[3]+""+n[3]),a:$(n[4]+""+n[4]),format:t?"name":"hex8"}:!!(n=q.hex3.exec(e))&&{r:T(n[1]+""+n[1]),g:T(n[2]+""+n[2]),b:T(n[3]+""+n[3]),format:t?"name":"hex"}}function R(e){var t,n;return e=e||{level:"AA",size:"small"},t=(e.level||"AA").toUpperCase(),n=(e.size||"small").toLowerCase(),"AA"!==t&&"AAA"!==t&&(t="AA"),"small"!==n&&"large"!==n&&(n="small"),{level:t,size:n}}var L=/^\s+/,G=/\s+$/,B=0,F=e.round,H=e.min,U=e.max,j=e.random;t.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var t,n,i,r,o,a,s=this.toRgb();return t=s.r/255,n=s.g/255,i=s.b/255,r=t<=.03928?t/12.92:e.pow((t+.055)/1.055,2.4),o=n<=.03928?n/12.92:e.pow((n+.055)/1.055,2.4),a=i<=.03928?i/12.92:e.pow((i+.055)/1.055,2.4),.2126*r+.7152*o+.0722*a},setAlpha:function(e){return this._a=x(e),this._roundA=F(100*this._a)/100,this},toHsv:function(){var e=a(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=a(this._r,this._g,this._b),t=F(360*e.h),n=F(100*e.s),i=F(100*e.v);return 1==this._a?"hsv("+t+", "+n+"%, "+i+"%)":"hsva("+t+", "+n+"%, "+i+"%, "+this._roundA+")"},toHsl:function(){var e=r(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=r(this._r,this._g,this._b),t=F(360*e.h),n=F(100*e.s),i=F(100*e.l);return 1==this._a?"hsl("+t+", "+n+"%, "+i+"%)":"hsla("+t+", "+n+"%, "+i+"%, "+this._roundA+")"},toHex:function(e){return l(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return c(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:F(this._r),g:F(this._g),b:F(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+F(this._r)+", "+F(this._g)+", "+F(this._b)+")":"rgba("+F(this._r)+", "+F(this._g)+", "+F(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:F(100*S(this._r,255))+"%",g:F(100*S(this._g,255))+"%",b:F(100*S(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+F(100*S(this._r,255))+"%, "+F(100*S(this._g,255))+"%, "+F(100*S(this._b,255))+"%)":"rgba("+F(100*S(this._r,255))+"%, "+F(100*S(this._g,255))+"%, "+F(100*S(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(z[l(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var n="#"+u(this._r,this._g,this._b,this._a),i=n,r=this._gradientType?"GradientType = 1, ":"";if(e){var o=t(e);i="#"+u(o._r,o._g,o._b,o._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+n+",endColorstr="+i+")"},toString:function(e){var t=!!e;e=e||this._format;var n=!1,i=this._a<1&&this._a>=0;return t||!i||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(n=this.toRgbString()),"prgb"===e&&(n=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(n=this.toHexString()),"hex3"===e&&(n=this.toHexString(!0)),"hex4"===e&&(n=this.toHex8String(!0)),"hex8"===e&&(n=this.toHex8String()),"name"===e&&(n=this.toName()),"hsl"===e&&(n=this.toHslString()),"hsv"===e&&(n=this.toHsvString()),n||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return t(this.toString())},_applyModification:function(e,t){var n=e.apply(null,[this].concat([].slice.call(t)));return this._r=n._r,this._g=n._g,this._b=n._b,this.setAlpha(n._a),this},lighten:function(){return this._applyModification(f,arguments)},brighten:function(){return this._applyModification(m,arguments)},darken:function(){return this._applyModification(g,arguments)},desaturate:function(){return this._applyModification(d,arguments)},saturate:function(){return this._applyModification(h,arguments)},greyscale:function(){return this._applyModification(p,arguments)},spin:function(){return this._applyModification(v,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(A,arguments)},complement:function(){return this._applyCombination(b,arguments)},monochromatic:function(){return this._applyCombination(C,arguments)},splitcomplement:function(){return this._applyCombination(w,arguments)},triad:function(){return this._applyCombination(y,arguments)},tetrad:function(){return this._applyCombination(_,arguments)}},t.fromRatio=function(e,n){if("object"==typeof e){var i={};for(var r in e)e.hasOwnProperty(r)&&(i[r]="a"===r?e[r]:M(e[r]));e=i}return t(e,n)},t.equals=function(e,n){return!(!e||!n)&&t(e).toRgbString()==t(n).toRgbString()},t.random=function(){return t.fromRatio({r:j(),g:j(),b:j()})},t.mix=function(e,n,i){i=0===i?0:i||50;var r=t(e).toRgb(),o=t(n).toRgb(),a=i/100;return t({r:(o.r-r.r)*a+r.r,g:(o.g-r.g)*a+r.g,b:(o.b-r.b)*a+r.b,a:(o.a-r.a)*a+r.a})},t.readability=function(n,i){var r=t(n),o=t(i);return(e.max(r.getLuminance(),o.getLuminance())+.05)/(e.min(r.getLuminance(),o.getLuminance())+.05)},t.isReadable=function(e,n,i){var r,o,a=t.readability(e,n);switch(o=!1,(r=R(i)).level+r.size){case"AAsmall":case"AAAlarge":o=a>=4.5;break;case"AAlarge":o=a>=3;break;case"AAAsmall":o=a>=7}return o},t.mostReadable=function(e,n,i){var r,o,a,s,l=null,c=0;o=(i=i||{}).includeFallbackColors,a=i.level,s=i.size;for(var u=0;u<n.length;u++)(r=t.readability(e,n[u]))>c&&(c=r,l=t(n[u]));return t.isReadable(e,l,{level:a,size:s})||!o?l:(i.includeFallbackColors=!1,t.mostReadable(e,["#fff","#000"],i))};var W=t.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},z=t.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(W),q=function(){var e="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",t="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?",n="[\\s|\\(]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")[,|\\s]+("+e+")\\s*\\)?";return{CSS_UNIT:new RegExp(e),rgb:new RegExp("rgb"+t),rgba:new RegExp("rgba"+n),hsl:new RegExp("hsl"+t),hsla:new RegExp("hsla"+n),hsv:new RegExp("hsv"+t),hsva:new RegExp("hsva"+n),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();"undefined"!=typeof module&&module.exports?module.exports=t:"function"==typeof define&&define.amd?define(function(){return t}):window.tinycolor=t}(Math),function(e,t,n){!function(e,t,i){"use strict";var r=function(e,n){this.type=e,this.restrictX=n,this.offset={x:null,y:null},this.height=255,this.$scope=null,this.$element=null,this.get=t.bind(this,function(e,n,i){this.$scope=e,this.$element=n,this.canvas=this.$element.children()[0],this.marker=this.$element.children()[1],this.context=this.canvas.getContext("2d"),this.currentColor=this.$scope.color.toRgb(),this.currentHue=this.$scope.color.toHsv().h,this.$element.on("mousedown",t.bind(this,this.onMouseDown)),this.$scope.$on("mdColorPicker:colorSet",t.bind(this,this.onColorSet)),this.extra&&this.extra(),this.draw()})};r.prototype.$window=t.element(e),r.prototype.getColorByMouse=function(e){var t=e.pageX-this.offset.x,n=e.pageY-this.offset.y;return this.getColorByPoint(t,n)},r.prototype.setMarkerCenter=function(e,n){var r=-1*this.marker.offsetWidth/2,o=-1*this.marker.offsetHeight/2;n===i?(n=e+o,n=Math.max(Math.min(this.height-1+o,n),Math.ceil(o)),e=0):(e+=r,n+=o,e=Math.max(Math.min(this.height+r,e),Math.ceil(r)),n=Math.max(Math.min(this.height+o,n),Math.ceil(o))),t.element(this.marker).css({left:e+"px"}),t.element(this.marker).css({top:n+"px"})},r.prototype.getMarkerCenter=function(){return{x:this.marker.offsetLeft+Math.floor(this.marker.offsetWidth/2),y:this.marker.offsetTop+Math.floor(this.marker.offsetHeight/2)}},r.prototype.getImageData=function(e,t){return e=Math.max(0,Math.min(e,this.canvas.width-1)),t=Math.max(0,Math.min(t,this.canvas.height-1)),this.context.getImageData(e,t,1,1).data},r.prototype.onMouseDown=function(e){e.preventDefault(),e.stopImmediatePropagation(),this.$scope.previewUnfocus(),this.$element.css({cursor:"none"}),this.offset.x=this.canvas.getBoundingClientRect().left+1,this.offset.y=this.canvas.getBoundingClientRect().top;var n=t.bind(this,function(e){switch(this.type){case"hue":var t=this.getColorByMouse(e);this.$scope.$broadcast("mdColorPicker:spectrumHueChange",{hue:t});break;case"alpha":var n=this.getColorByMouse(e);this.$scope.color.setAlpha(n),this.$scope.alpha=n,this.$scope.$apply();break;case"spectrum":var i=this.getColorByMouse(e);this.setColor(i)}});this.$window.on("mousemove",n),this.$window.one("mouseup",t.bind(this,function(e){this.$window.off("mousemove",n),this.$element.css({cursor:"crosshair"})})),n(e)},r.prototype.setColor=function(e){this.$scope.color._r=e.r,this.$scope.color._g=e.g,this.$scope.color._b=e.b,this.$scope.$apply(),this.$scope.$broadcast("mdColorPicker:spectrumColorChange",{color:e})},r.prototype.onColorSet=function(e,t){switch(this.type){case"hue":r=this.$scope.color.toHsv();this.setMarkerCenter(this.canvas.height-this.canvas.height*(r.h/360));break;case"alpha":this.currentColor=t.color.toRgb(),this.draw();var n=t.color.getAlpha(),i=this.canvas.height-this.canvas.height*n;this.setMarkerCenter(i);break;case"spectrum":var r=t.color.toHsv();this.currentHue=r.h,this.draw();var o=this.canvas.width*r.s,a=this.canvas.height-this.canvas.height*r.v;this.setMarkerCenter(o,a)}};var o=new r("hue",!0);o.getColorByPoint=function(e,t){var i=this.getImageData(e,t);return this.setMarkerCenter(t),new n({r:i[0],g:i[1],b:i[2]}).toHsl().h},o.draw=function(){this.$element.css({height:this.height+"px"}),this.canvas.height=this.height,this.canvas.width=this.height;var e=this.context.createLinearGradient(90,0,90,this.height);e.addColorStop(.01,"rgba(255, 0, 0, 1.000)"),e.addColorStop(.167,"rgba(255, 0, 255, 1.000)"),e.addColorStop(.333,"rgba(0, 0, 255, 1.000)"),e.addColorStop(.5,"rgba(0, 255, 255, 1.000)"),e.addColorStop(.666,"rgba(0, 255, 0, 1.000)"),e.addColorStop(.828,"rgba(255, 255, 0, 1.000)"),e.addColorStop(.999,"rgba(255, 0, 0, 1.000)"),this.context.fillStyle=e,this.context.fillRect(0,0,this.canvas.width,this.height)};var a=new r("alpha",!0);a.getColorByPoint=function(e,t){var n=this.getImageData(e,t);return this.setMarkerCenter(t),n[3]/255},a.draw=function(){this.$element.css({height:this.height+"px"}),this.canvas.height=this.height,this.canvas.width=this.height;var e=this.context.createLinearGradient(90,0,90,this.height);e.addColorStop(.01,"rgba("+this.currentColor.r+","+this.currentColor.g+","+this.currentColor.b+", 1.000)"),e.addColorStop(.999,"rgba("+this.currentColor.r+","+this.currentColor.g+","+this.currentColor.b+", 0.000)"),this.context.fillStyle=e,this.context.fillRect(0,0,this.canvas.width,this.height)},a.extra=function(){this.$scope.$on("mdColorPicker:spectrumColorChange",t.bind(this,function(e,t){this.currentColor=t.color,this.draw()}))};var s=new r("spectrum",!1);s.getColorByPoint=function(e,t){var n=this.getImageData(e,t);return this.setMarkerCenter(e,t),{r:n[0],g:n[1],b:n[2]}},s.draw=function(){this.canvas.height=this.height,this.canvas.width=this.height,this.context.clearRect(0,0,this.canvas.width,this.canvas.height);var e=this.context.createLinearGradient(0,0,this.canvas.width,0);e.addColorStop(0,"rgba(255, 255, 255, 1.000)"),e.addColorStop(1,"rgba(255, 255, 255, 0.000)");var t=this.context.createLinearGradient(0,0,0,this.canvas.height);t.addColorStop(0,"rgba(0, 0, 0, 0.000)"),t.addColorStop(1,"rgba(0, 0, 0, 1.000)"),this.context.fillStyle="hsl( "+this.currentHue+", 100%, 50%)",this.context.fillRect(0,0,this.canvas.width,this.canvas.height),this.context.fillStyle=e,this.context.fillRect(0,0,this.canvas.width,this.canvas.height),this.context.fillStyle=t,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)},s.extra=function(){this.$scope.$on("mdColorPicker:spectrumHueChange",t.bind(this,function(e,t){this.currentHue=t.hue,this.draw();var n=this.getMarkerCenter(),i=this.getColorByPoint(n.x,n.y);this.setColor(i)}))},t.module("mdColorPicker",[]).run(["$templateCache",function(e){var t={clear:'<path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/>',gradient:'<path d="M11 9h2v2h-2zm-2 2h2v2H9zm4 0h2v2h-2zm2-2h2v2h-2zM7 9h2v2H7zm12-6H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 18H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm2-7h-2v2h2v2h-2v-2h-2v2h-2v-2h-2v2H9v-2H7v2H5v-2h2v-2H5V5h14v6z"/>',tune:'<path d="M13 21v-2h8v-2h-8v-2h-2v6h2zM3 17v2h6v-2H3z"/><path d="M21 13v-2H11v2h10zM7 9v2H3v2h4v2h2V9H7z"/><path d="M15 9h2V7h4V5h-4V3h-2v6zM3 5v2h10V5H3z"/>',view_module:'<path d="M4 11h5V5H4v6z"/><path d="M4 18h5v-6H4v6z"/><path d="M10 18h5v-6h-5v6z"/><path d="M16 18h5v-6h-5v6z"/><path d="M10 11h5V5h-5v6z"/><path d="M16 5v6h5V5h-5z"/>',view_headline:'<path d="M4 15h17v-2H4v2z"/><path d="M4 19h17v-2H4v2z"/><path d="M4 11h17V9H4v2z"/><path d="M4 5v2h17V5H4z"/>',history:'<path d="M13 3c-4.97 0-9 4.03-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42C8.27 19.99 10.51 21 13 21c4.97 0 9-4.03 9-9s-4.03-9-9-9z"/><path d="M12 8v5l4.28 2.54.72-1.21-3.5-2.08V8H12z"/>',clear_all:'<path d="M5 13h14v-2H5v2zm-2 4h14v-2H3v2zM7 7v2h14V7H7z"/>'};for(var n in t)t.hasOwnProperty(n)&&e.put([n,"svg"].join("."),['<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24">',t[n],"</svg>"].join(""))}]).factory("mdColorPickerHistory",["$injector",function(e){var t=[],i=[],r=!1;try{r=e.get("$cookies")}catch(e){}if(r)for(var o=r.getObject("mdColorPickerHistory")||[],a=0;a<o.length;a++)t.push(n(o[a])),i.push(o[a]);var s=40;return{length:function(){return arguments[0]?void(s=arguments[0]):t.length},add:function(e){for(var n=0;n<t.length;n++)t[n].toRgbString()===e.toRgbString()&&(t.splice(n,1),i.splice(n,1));t.unshift(e),i.unshift(e.toRgbString()),t.length>s&&(t.pop(),i.pop()),r&&r.putObject("mdColorPickerHistory",i)},get:function(){return t},reset:function(){t=[],i=[],r&&r.putObject("mdColorPickerHistory",i)}}}]).directive("mdColorPicker",["$timeout","mdColorPickerHistory",function(e,t){return{templateUrl:"mdColorPicker.tpl.html",require:"^ngModel",scope:{options:"=mdColorPicker",type:"@",label:"@",icon:"@",random:"@",default:"@",openOnInput:"@",hasBackdrop:"@",clickOutsideToClose:"@",skipHide:"@",preserveScope:"@",mdColorClearButton:"=?",mdColorPreview:"=?",mdColorAlphaChannel:"=?",mdColorSpectrum:"=?",mdColorSliders:"=?",mdColorGenericPalette:"=?",mdColorMaterialPalette:"=?",mdColorHistory:"=?",mdColorDefaultTab:"=?"},controller:["$scope","$element","$attrs","$mdDialog","$mdColorPicker",function(e,t,n,r,o){if(e.options!==i)for(var a in e.options)if(e.options.hasOwnProperty(a)){var s=i;e.hasOwnProperty(a)?s=a:e.hasOwnProperty("mdColor"+a.slice(0,1).toUpperCase()+a.slice(1))&&(s="mdColor"+a.slice(0,1).toUpperCase()+a.slice(1)),s&&e[s]===i&&(e[s]=e.options[a])}var l=t.controller("ngModel"),c=function(t){e.value=t||l.$viewValue||""};e.mdColorClearButton=e.mdColorClearButton===i||e.mdColorClearButton,e.mdColorPreview=e.mdColorPreview===i||e.mdColorPreview,e.mdColorAlphaChannel=e.mdColorAlphaChannel===i||e.mdColorAlphaChannel,e.mdColorSpectrum=e.mdColorSpectrum===i||e.mdColorSpectrum,e.mdColorSliders=e.mdColorSliders===i||e.mdColorSliders,e.mdColorGenericPalette=e.mdColorGenericPalette===i||e.mdColorGenericPalette,e.mdColorMaterialPalette=e.mdColorMaterialPalette===i||e.mdColorMaterialPalette,e.mdColorHistory=e.mdColorHistory===i||e.mdColorHistory,c(),e.$watch(function(){return l.$modelValue},function(e){c(e)}),e.$watch("value",function(e,t){""!==e&&void 0!==e&&e&&e!==t&&l.$setViewValue(e)}),e.clearValue=function(){e.value=""},e.showColorPicker=function(t){o.show({value:e.value,defaultValue:e.default,random:e.random,clickOutsideToClose:e.clickOutsideToClose,hasBackdrop:e.hasBackdrop,skipHide:e.skipHide,preserveScope:e.preserveScope,mdColorAlphaChannel:e.mdColorAlphaChannel,mdColorSpectrum:e.mdColorSpectrum,mdColorSliders:e.mdColorSliders,mdColorGenericPalette:e.mdColorGenericPalette,mdColorMaterialPalette:e.mdColorMaterialPalette,mdColorHistory:e.mdColorHistory,mdColorDefaultTab:e.mdColorDefaultTab,$event:t}).then(function(t){e.value=t})}}],compile:function(e,t){t.type=t.type!==i?t.type:0}}}]).directive("mdColorPickerContainer",["$compile","$timeout","$mdColorPalette","mdColorPickerHistory",function(e,i,r,o){return{templateUrl:"mdColorPickerContainer.tpl.html",scope:{value:"=?",default:"@",random:"@",ok:"=?",mdColorAlphaChannel:"=",mdColorSpectrum:"=",mdColorSliders:"=",mdColorGenericPalette:"=",mdColorMaterialPalette:"=",mdColorHistory:"=",mdColorDefaultTab:"="},controller:["$scope","$element","$attrs",function(e,a,s){var l=t.element(a[0].querySelector(".md-color-picker-container")),c=(t.element(l[0].querySelector(".md-color-picker-result")),t.element(a[0].querySelector(".md-color-picker-preview-input"))),u=["toHexString","toRgbString","toHslString"];e.default=e.default?e.default:e.random?n.random():"rgb(255,255,255)",e.value.search("#")>=0?e.type=0:e.value.search("rgb")>=0?e.type=1:e.value.search("hsl")>=0&&(e.type=2),e.color=new n(e.value||e.default),e.alpha=e.color.getAlpha(),e.history=o,e.materialFamily=[],e.whichPane=function(t){var n=0;if(t&&"string"==typeof t){for(var i="mdColor"+t.slice(0,1).toUpperCase()+t.slice(1),r=["mdColorSpectrum","mdColorSliders","mdColorGenericPalette","mdColorMaterialPalette","mdColorHistory"],o=0;o<r.length;o++)if(r[o]==i&&e[i]){n=o;break}}else t&&"number"==typeof t&&(n=t);return n}(e.mdColorDefaultTab),e.inputFocus=!1;Math.PI,e.palette=[["rgb(255, 204, 204)","rgb(255, 230, 204)","rgb(255, 255, 204)","rgb(204, 255, 204)","rgb(204, 255, 230)","rgb(204, 255, 255)","rgb(204, 230, 255)","rgb(204, 204, 255)","rgb(230, 204, 255)","rgb(255, 204, 255)"],["rgb(255, 153, 153)","rgb(255, 204, 153)","rgb(255, 255, 153)","rgb(153, 255, 153)","rgb(153, 255, 204)","rgb(153, 255, 255)","rgb(153, 204, 255)","rgb(153, 153, 255)","rgb(204, 153, 255)","rgb(255, 153, 255)"],["rgb(255, 102, 102)","rgb(255, 179, 102)","rgb(255, 255, 102)","rgb(102, 255, 102)","rgb(102, 255, 179)","rgb(102, 255, 255)","rgb(102, 179, 255)","rgb(102, 102, 255)","rgb(179, 102, 255)","rgb(255, 102, 255)"],["rgb(255, 51, 51)","rgb(255, 153, 51)","rgb(255, 255, 51)","rgb(51, 255, 51)","rgb(51, 255, 153)","rgb(51, 255, 255)","rgb(51, 153, 255)","rgb(51, 51, 255)","rgb(153, 51, 255)","rgb(255, 51, 255)"],["rgb(255, 0, 0)","rgb(255, 128, 0)","rgb(255, 255, 0)","rgb(0, 255, 0)","rgb(0, 255, 128)","rgb(0, 255, 255)","rgb(0, 128, 255)","rgb(0, 0, 255)","rgb(128, 0, 255)","rgb(255, 0, 255)"],["rgb(245, 0, 0)","rgb(245, 123, 0)","rgb(245, 245, 0)","rgb(0, 245, 0)","rgb(0, 245, 123)","rgb(0, 245, 245)","rgb(0, 123, 245)","rgb(0, 0, 245)","rgb(123, 0, 245)","rgb(245, 0, 245)"],["rgb(214, 0, 0)","rgb(214, 108, 0)","rgb(214, 214, 0)","rgb(0, 214, 0)","rgb(0, 214, 108)","rgb(0, 214, 214)","rgb(0, 108, 214)","rgb(0, 0, 214)","rgb(108, 0, 214)","rgb(214, 0, 214)"],["rgb(163, 0, 0)","rgb(163, 82, 0)","rgb(163, 163, 0)","rgb(0, 163, 0)","rgb(0, 163, 82)","rgb(0, 163, 163)","rgb(0, 82, 163)","rgb(0, 0, 163)","rgb(82, 0, 163)","rgb(163, 0, 163)"],["rgb(92, 0, 0)","rgb(92, 46, 0)","rgb(92, 92, 0)","rgb(0, 92, 0)","rgb(0, 92, 46)","rgb(0, 92, 92)","rgb(0, 46, 92)","rgb(0, 0, 92)","rgb(46, 0, 92)","rgb(92, 0, 92)"],["rgb(255, 255, 255)","rgb(205, 205, 205)","rgb(178, 178, 178)","rgb(153, 153, 153)","rgb(127, 127, 127)","rgb(102, 102, 102)","rgb(76, 76, 76)","rgb(51, 51, 51)","rgb(25, 25, 25)","rgb(0, 0, 0)"]],e.materialPalette=r,e.isDark=function(e){return t.isArray(e)?n({r:e[0],g:e[1],b:e[2]}).isDark():n(e).isDark()},e.previewFocus=function(){e.inputFocus=!0,i(function(){c[0].setSelectionRange(0,c[0].value.length)})},e.previewUnfocus=function(){e.inputFocus=!1,c[0].blur()},e.previewBlur=function(){e.inputFocus=!1,e.setValue()},e.previewKeyDown=function(t){13==t.keyCode&&e.ok&&e.ok()},e.setPaletteColor=function(t){i(function(){e.color=n(t.target.style.backgroundColor)})},e.setValue=function(){e.color&&e.color&&u[e.type]&&"rgba(0, 0, 0, 0)"!==e.color.toRgbString()&&(e.value=e.color[u[e.type]]())},e.changeValue=function(){e.color=n(e.value),e.$broadcast("mdColorPicker:colorSet",{color:e.color})},e.$watch("color._a",function(t){e.color.setAlpha(t)},!0),e.$watch("whichPane",function(t){e.$broadcast("mdColorPicker:colorSet",{color:e.color})}),e.$watch("type",function(){c.removeClass("switch"),i(function(){c.addClass("switch")})}),e.$watchGroup(["color.toRgbString()","type"],function(t){e.inputFocus||e.setValue()}),i(function(){e.$broadcast("mdColorPicker:colorSet",{color:e.color}),c.focus(),e.previewFocus()})}],link:function(e,n,r){function o(){var i=t.element(n[0].querySelector(".md-color-picker-palette")),r=t.element(n[0].querySelector(".md-color-picker-material-palette")),o=t.element('<div class="flex-15 layout-fill layout-row layout-align-space-between" layout-align="space-between" layout="row" layout-fill"></div>'),a=t.element('<div class="flex-10"></div>'),s=t.element('<div class="md-color-picker-material-title"></div>'),l=t.element('<div class="md-color-picker-with-label"></div>');t.forEach(e.palette,function(n,r){var s=o.clone();t.forEach(n,function(t){var n=a.clone();n.css({height:"25.5px",backgroundColor:t}),n.bind("click",e.setPaletteColor),s.append(n)}),i.append(s)}),t.forEach(e.materialPalette,function(n,i){var o=s.clone();o.html("<span>"+i.replace("-"," ")+"</span>"),o.css({height:"75px",backgroundColor:"rgb("+n[500].value[0]+","+n[500].value[1]+","+n[500].value[2]+")"}),e.isDark(n[500].value)&&o.addClass("dark"),r.append(o),t.forEach(n,function(t,n){var i=l.clone();i.css({height:"33px",backgroundColor:"rgb("+t.value[0]+","+t.value[1]+","+t.value[2]+")"}),e.isDark(t.value)&&i.addClass("dark"),i.html("<span>"+n+"</span>"),i.bind("click",e.setPaletteColor),r.append(i)})})}n[0].getElementsByTagName("md-tab"),i(function(){o()})}}}]).directive("mdColorPickerHue",[function(){return{template:'<canvas width="100%" height="100%"></canvas><div class="md-color-picker-marker"></div>',link:o.get,controller:function(){}}}]).directive("mdColorPickerAlpha",[function(){return{template:'<canvas width="100%" height="100%"></canvas><div class="md-color-picker-marker"></div>',link:a.get,controller:function(){}}}]).directive("mdColorPickerSpectrum",[function(){return{template:'<canvas width="100%" height="100%"></canvas><div class="md-color-picker-marker"></div>{{hue}}',link:s.get,controller:function(){}}}]).factory("$mdColorPicker",["$q","$mdDialog","mdColorPickerHistory",function(e,t,r){var o;return{show:function(e){return e===i&&(e={}),e.hasBackdrop=e.hasBackdrop===i||e.hasBackdrop,e.clickOutsideToClose=e.clickOutsideToClose===i||e.clickOutsideToClose,e.defaultValue=e.defaultValue===i?"#FFFFFF":e.defaultValue,e.focusOnOpen=e.focusOnOpen!==i&&e.focusOnOpen,e.preserveScope=e.preserveScope===i||e.preserveScope,e.skipHide=e.skipHide===i||e.skipHide,e.mdColorAlphaChannel=e.mdColorAlphaChannel!==i&&e.mdColorAlphaChannel,e.mdColorSpectrum=e.mdColorSpectrum===i||e.mdColorSpectrum,e.mdColorSliders=e.mdColorSliders===i||e.mdColorSliders,e.mdColorGenericPalette=e.mdColorGenericPalette===i||e.mdColorGenericPalette,e.mdColorMaterialPalette=e.mdColorMaterialPalette===i||e.mdColorMaterialPalette,e.mdColorHistory=e.mdColorHistory===i||e.mdColorHistory,(o=t.show({templateUrl:"mdColorPickerDialog.tpl.html",hasBackdrop:e.hasBackdrop,clickOutsideToClose:e.clickOutsideToClose,controller:["$scope","options",function(e,n){e.close=function(){t.cancel()},e.ok=function(){t.hide(e.value)},e.hide=e.ok,e.value=n.value,e.default=n.defaultValue,e.random=n.random,e.mdColorAlphaChannel=n.mdColorAlphaChannel,e.mdColorSpectrum=n.mdColorSpectrum,e.mdColorSliders=n.mdColorSliders,e.mdColorGenericPalette=n.mdColorGenericPalette,e.mdColorMaterialPalette=n.mdColorMaterialPalette,e.mdColorHistory=n.mdColorHistory,e.mdColorDefaultTab=n.mdColorDefaultTab}],locals:{options:e},preserveScope:e.preserveScope,skipHide:e.skipHide,targetEvent:e.$event,focusOnOpen:e.focusOnOpen,autoWrap:!1,onShowing:function(){},onComplete:function(){}})).then(function(e){r.add(new n(e))},function(){}),o},hide:function(){return o.hide()},cancel:function(){return o.cancel()}}}])}(t,t.angular),e.module("mdColorPicker").run(["$templateCache",function(e){e.put("mdColorPicker.tpl.html",'<div class="md-color-picker-input-container" layout="row">\n\t<div class="md-color-picker-preview md-color-picker-checkered-bg" ng-click="showColorPicker($event)" ng-if="mdColorPreview">\n\t\t<div class="md-color-picker-result" ng-style="{background: value}"></div>\n\t</div>\n\t<md-input-container flex>\n\t\t<label><md-icon ng-if="icon">{{icon}}</md-icon>{{label}}</label>\n\t\t<input type="input" ng-model="value" class=\'md-color-picker-input\'  ng-mousedown="(openOnInput || !mdColorPreview) && showColorPicker($event)"/>\n\t</md-input-container>\n\t<md-button class="md-icon-button md-color-picker-clear" ng-if="mdColorClearButton && value" ng-click="clearValue();" aria-label="Clear Color">\n\t\t<md-icon md-svg-icon="clear.svg"></md-icon>\n\t</md-button>\n</div>\n'),e.put("mdColorPickerContainer.tpl.html",'<div class="md-color-picker-container in" layout="column">\n\t<div class="md-color-picker-arrow" ng-style="{\'border-bottom-color\': color.toRgbString() }"></div>\n\n\t<div class="md-color-picker-preview md-color-picker-checkered-bg" ng-class="{\'dark\': !color.isDark() || color.getAlpha() < .45}" flex="1" layout="column">\n\n\t\t<div class="md-color-picker-result" ng-style="{\'background\': color.toRgbString()}" flex="100" layout="column" layout-fill layout-align="center center" ng-click="focusPreviewInput( $event )">\n\t\t\t\x3c!--<span flex  layout="column" layout-align="center center">{{value}}</span>--\x3e\n\t\t\t<div flex  layout="row" layout-align="center center">\n\t\t\t\t<input class="md-color-picker-preview-input" type="text" ng-model="value" ng-focus="previewFocus($event);" ng-blur="previewBlur()" ng-change="changeValue()" ng-keypress="previewKeyDown($event)" layout-fill />\n\t\t\t</div>\n\t\t\t<div class="md-color-picker-tabs" style="width: 100%">\n\t\t\t\t<md-tabs md-selected="type" md-stretch-tabs="always" md-no-bar md-no-ink md-no-pagination="true" >\n\t\t\t\t\t<md-tab label="Hex" ng-disabled="color.getAlpha() !== 1" md-ink-ripple="#ffffff"></md-tab>\n\t\t\t\t\t<md-tab label="RGB"></md-tab>\n\t\t\t\t\t<md-tab label="HSL"></md-tab>\n\t\t\t\t\t\x3c!--<md-tab label="HSV"></md-tab>\n\t\t\t\t\t<md-tab label="VEC"></md-tab>--\x3e\n\t\t\t\t</md-tabs>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\n\t<div class="md-color-picker-tabs md-color-picker-colors">\n\t\t<md-tabs md-stretch-tabs="always" md-align-tabs="bottom"  md-selected="whichPane" md-no-pagination>\n\t\t\t<md-tab ng-if="mdColorSpectrum">\n\t\t\t\t<md-tab-label>\n\t\t\t\t\t<md-icon md-svg-icon="gradient.svg"></md-icon>\n\t\t\t\t</md-tab-label>\n\t\t\t\t<md-tab-body>\n\t\t\t\t\t<div layout="row" layout-align="space-between" style="height: 255px">\n\t\t\t\t\t\t<div md-color-picker-spectrum></div>\n\t\t\t\t\t\t<div md-color-picker-hue ng-class="{\'md-color-picker-wide\': !mdColorAlphaChannel}"></div>\n\t\t\t\t\t\t<div md-color-picker-alpha class="md-color-picker-checkered-bg" ng-if="mdColorAlphaChannel"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</md-tab-body>\n\t\t\t</md-tab>\n\t\t\t<md-tab ng-if="mdColorSliders">\n\t\t\t\t<md-tab-label>\n\t\t\t\t\t<md-icon md-svg-icon="tune.svg"></md-icon>\n\t\t\t\t</md-tab-label>\n\t\t\t\t<md-tab-body>\n\t\t\t\t\t<div layout="column" flex="100" layout-fill layout-align="space-between start center" class="md-color-picker-sliders">\n\t\t\t\t\t\t<div layout="row" layout-align="start center" layout-wrap flex layout-fill>\n\t\t\t\t\t\t\t<div flex="10" layout layout-align="center center">\n\t\t\t\t\t\t\t\t<span class="md-body-1">R</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<md-slider flex="65" min="0" max="255" ng-model="color._r" aria-label="red" class="red-slider"></md-slider>\n\t\t\t\t\t\t\t<span flex></span>\n\t\t\t\t\t\t\t<div flex="20" layout layout-align="center center">\n\t\t\t\t\t\t\t\t<input style="width: 100%;" min="0" max="255" type="number" ng-model="color._r" aria-label="red" aria-controls="red-slider">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div layout="row" layout-align="start center" layout-wrap flex layout-fill>\n\t\t\t\t\t\t\t<div flex="10" layout layout-align="center center">\n\t\t\t\t\t\t\t\t<span class="md-body-1">G</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<md-slider flex="65" min="0" max="255" ng-model="color._g" aria-label="green" class="green-slider"></md-slider>\n\t\t\t\t\t\t\t<span flex></span>\n\t\t\t\t\t\t\t<div flex="20" layout layout-align="center center">\n\t\t\t\t\t\t\t\t<input style="width: 100%;" min="0" max="255" type="number" ng-model="color._g" aria-label="green" aria-controls="green-slider">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div layout="row" layout-align="start center" layout-wrap flex layout-fill>\n\t\t\t\t\t\t\t<div flex="10" layout layout-align="center center">\n\t\t\t\t\t\t\t\t<span class="md-body-1">B</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<md-slider flex="65" min="0" max="255" ng-model="color._b" aria-label="blue" class="blue-slider"></md-slider>\n\t\t\t\t\t\t\t<span flex></span>\n\t\t\t\t\t\t\t<div flex="20" layout layout-align="center center" >\n\t\t\t\t\t\t\t\t<input style="width: 100%;" min="0" max="255" type="number" ng-model="color._b" aria-label="blue" aria-controls="blue-slider">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div layout="row" layout-align="start center" layout-wrap flex layout-fill ng-if="!mdColorAlphaChannel">\n\t\t\t\t\t\t\t<div flex="10" layout layout-align="center center">\n\t\t\t\t\t\t\t\t<span class="md-body-1">A</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<md-slider flex="65" min="0" max="1" step=".01" ng-model="color._a" aria-label="alpha" class="md-primary"></md-slider>\n\t\t\t\t\t\t\t<span flex></span>\n\t\t\t\t\t\t\t<div flex="20" layout layout-align="center center" >\n\t\t\t\t\t\t\t\t<input style="width: 100%;" min="0" max="1" step=".01" type="number" ng-model="color._a" aria-label="alpha" aria-controls="alpha-slider">\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</md-tab-body>\n\t\t\t</md-tab>\n\t\t\t<md-tab ng-if="mdColorGenericPalette">\n\t\t\t\t<md-tab-label>\n\t\t\t\t\t<md-icon md-svg-icon="view_module.svg"></md-icon>\n\t\t\t\t</md-tab-label>\n\t\t\t\t<md-tab-body>\n\t\t\t\t\t<div layout="column" layout-align="space-between start center" flex class="md-color-picker-palette">\n\n\t\t\t\t\t</div>\n\t\t\t\t</md-tab-body>\n\t\t\t</md-tab>\n\t\t\t<md-tab  ng-if="mdColorMaterialPalette">\n\t\t\t\t<md-tab-label>\n\t\t\t\t\t<md-icon md-svg-icon="view_headline.svg"></md-icon>\n\t\t\t\t</md-tab-label>\n\t\t\t\t<md-tab-body>\n\t\t\t\t\t<div layout="column" layout-fill flex class="md-color-picker-material-palette">\n\n\t\t\t\t\t</div>\n\t\t\t\t</md-tab-body>\n\t\t\t</md-tab>\n\t\t\t<md-tab ng-if="mdColorHistory">\n\t\t\t\t<md-tab-label>\n\t\t\t\t\t<md-icon md-svg-icon="history.svg"></md-icon>\n\t\t\t\t</md-tab-label>\n\t\t\t\t<md-tab-body layout="row" layout-fill>\n\t\t\t\t\t<div layout="column" flex layout-align="space-between start" layout-wrap layout-fill class="md-color-picker-history">\n\t\t\t\t\t\t<div layout="row" flex="80" layout-align="space-between start start" layout-wrap  layout-fill>\n\t\t\t\t\t\t\t<div flex="10" ng-repeat="historyColor in history.get() track by $index">\n\t\t\t\t\t\t\t\t<div  ng-style="{\'background\': historyColor.toRgbString()}" ng-click="setPaletteColor($event)"></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\n\t\t\t\t\t\t<md-button flex-end ng-click="history.reset()" class="md-mini" aria-label="Clear History">\n\t\t\t\t\t\t\t<md-icon md-svg-icon="clear_all.svg"></md-icon>\n\t\t\t\t\t\t</md-button>\n\t\t\t\t\t</div>\n\t\t\t\t</md-tab-body>\n\t\t\t</md-tab>\n\t\t</md-tabs>\n\t</div>\n\n</div>\n'),e.put("mdColorPickerDialog.tpl.html",'<md-dialog class="md-color-picker-dialog">\n\t<div md-color-picker-container\n\t\tvalue="value"\n\t\tdefault="{{defaultValue}}"\n\t\trandom="{{random}}"\n\t\tok="ok"\n\t\tmd-color-alpha-channel="mdColorAlphaChannel"\n\t\tmd-color-spectrum="mdColorSpectrum"\n\t\tmd-color-sliders="mdColorSliders"\n\t\tmd-color-generic-palette="mdColorGenericPalette"\n\t\tmd-color-material-palette="mdColorMaterialPalette"\n\t\tmd-color-history="mdColorHistory"\n\t\tmd-color-default-tab="mdColorDefaultTab"\n\t></div>\n\t<md-actions layout="row">\n\t\t<md-button class="md-mini" ng-click="close()" style="width: 50%;">Cancel</md-button>\n\t\t<md-button class="md-mini" ng-click="ok()" style="width: 50%;">Select</md-button>\n\t</md-actions>\n</md-dialog>\n')}])}(angular,window,tinycolor),function(){"use strict";function e(e,t,n,i,r,o){var a=this;this.date=moment(r),this.minDate=o.minDate&&moment(o.minDate).isValid()?moment(o.minDate):null,this.maxDate=o.maxDate&&moment(o.maxDate).isValid()?moment(o.maxDate):null,this.displayFormat=o.displayFormat||"ddd, MMM DD",this.dateFilter=angular.isFunction(o.dateFilter)?o.dateFilter:null,this.selectingYear=!1,this.minDate&&this.maxDate&&this.maxDate.isBefore(this.minDate)&&(this.maxDate=moment(this.minDate).add(1,"days")),this.date&&(this.minDate&&this.date.isBefore(this.minDate)&&(this.date=moment(this.minDate)),this.maxDate&&this.date.isAfter(this.maxDate)&&(this.date=moment(this.maxDate))),this.yearItems={currentIndex_:0,PAGE_SIZE:5,START:a.minDate?a.minDate.year():1900,END:a.maxDate?a.maxDate.year():0,getItemAtIndex:function(e){return this.currentIndex_<e&&(this.currentIndex_=e),this.START+e},getLength:function(){return Math.min(this.currentIndex_+Math.floor(this.PAGE_SIZE/2),Math.abs(this.START-this.END)+1)}},e.$mdMedia=n,e.year=this.date.year(),this.selectYear=function(t){a.date.year(t),e.year=t,a.selectingYear=!1,a.animate()},this.showYear=function(){a.yearTopIndex=a.date.year()-a.yearItems.START+Math.floor(a.yearItems.PAGE_SIZE/2),a.yearItems.currentIndex_=a.date.year()-a.yearItems.START+1,a.selectingYear=!0},this.showCalendar=function(){a.selectingYear=!1},this.cancel=function(){t.cancel()},this.confirm=function(){var e=this.date;this.minDate&&this.date.isBefore(this.minDate)&&(e=moment(this.minDate)),this.maxDate&&this.date.isAfter(this.maxDate)&&(e=moment(this.maxDate)),t.hide(e.toDate())},this.animate=function(){a.animating=!0,i(angular.noop).then(function(){a.animating=!1})}}function t(e){var t=this;this.dow=moment.localeData().firstDayOfWeek(),this.weekDays=[].concat(moment.weekdaysMin().slice(this.dow),moment.weekdaysMin().slice(0,this.dow)),this.daysInMonth=[],this.getDaysInMonth=function(){var e=t.date.daysInMonth(),n=moment(t.date).date(1).day()-this.dow;0>n&&(n=this.weekDays.length-1);for(var i=[],r=1;n+e>=r;r++){var o=null;r>n&&(o={value:r-n,enabled:t.isDayEnabled(moment(t.date).date(r-n).toDate())}),i.push(o)}return i},this.isDayEnabled=function(e){return!(this.minDate&&!(this.minDate<=e)||this.maxDate&&!(this.maxDate>=e)||t.dateFilter&&t.dateFilter(e))},this.selectDate=function(e){t.date.date(e)},this.nextMonth=function(){t.date.add(1,"months")},this.prevMonth=function(){t.date.subtract(1,"months")},this.updateDaysInMonth=function(){t.daysInMonth=t.getDaysInMonth()},e.$watch(function(){return t.date.unix()},function(e,n){e&&e!==n&&t.updateDaysInMonth()}),t.updateDaysInMonth()}function n(e,t){return!e||angular.isDate(e)||moment(e,t,!0).isValid()}function i(e,t,n){var n=moment(n,"YYYY-MM-DD",!0),i=angular.isDate(e)?moment(e):moment(e,t,!0);return!e||angular.isDate(e)||!n.isValid()||i.isSameOrAfter(n)}function r(e,t,n){var n=moment(n,"YYYY-MM-DD",!0),i=angular.isDate(e)?moment(e):moment(e,t,!0);return!e||angular.isDate(e)||!n.isValid()||i.isSameOrBefore(n)}function o(e,t,n){var i=angular.isDate(e)?moment(e):moment(e,t,!0);return!e||angular.isDate(e)||!angular.isFunction(n)||!n(i)}function a(e,t,n,i,r){var o=this;this.VIEW_HOURS=1,this.VIEW_MINUTES=2,this.currentView=this.VIEW_HOURS,this.time=moment(n),this.autoSwitch=!!i,this.clockHours=parseInt(this.time.format("h")),this.clockMinutes=parseInt(this.time.minutes()),e.$mdMedia=r,this.switchView=function(){o.currentView=o.currentView==o.VIEW_HOURS?o.VIEW_MINUTES:o.VIEW_HOURS},this.setAM=function(){o.time.hours()>=12&&o.time.hour(o.time.hour()-12)},this.setPM=function(){o.time.hours()<12&&o.time.hour(o.time.hour()+12)},this.cancel=function(){t.cancel()},this.confirm=function(){t.hide(this.time.toDate())}}function s(e){var t="hours",n="minutes",i=this;this.STEP_DEG=30,this.steps=[],this.CLOCK_TYPES={hours:{range:12},minutes:{range:60}},this.getPointerStyle=function(){var e=1;switch(i.type){case t:e=12;break;case n:e=60}var r=Math.round(i.selected*(360/e))-180;return{"-webkit-transform":"rotate("+r+"deg)","-ms-transform":"rotate("+r+"deg)",transform:"rotate("+r+"deg)"}},this.setTimeByDeg=function(e){e=e>=360?0:e;var r=0;switch(i.type){case t:r=12;break;case n:r=60}i.setTime(Math.round(r/360*e))},this.setTime=function(e,r){switch(this.selected=e,i.type){case t:"PM"==i.time.format("A")&&(e+=12),this.time.hours(e);break;case n:e>59&&(e-=60),this.time.minutes(e)}},this.init=function(){switch(i.type=i.type||"hours",i.type){case t:for(e=1;12>=e;e++)i.steps.push(e);i.selected=i.time.hours()||0,i.selected>12&&(i.selected-=12);break;case n:for(var e=5;55>=e;e+=5)i.steps.push(e);i.steps.push(0),i.selected=i.time.minutes()||0}},this.init()}var l=angular.module("mdPickers",["ngMaterial","ngAnimate","ngAria"]);l.config(["$mdIconProvider","mdpIconsRegistry",function(e,t){angular.forEach(t,function(t,n){e.icon(t.id,t.url)})}]),l.run(["$templateCache","mdpIconsRegistry",function(e,t){angular.forEach(t,function(t,n){e.put(t.url,t.svg)})}]),l.constant("mdpIconsRegistry",[{id:"mdp-chevron-left",url:"mdp-chevron-left.svg",svg:'<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/><path d="M0 0h24v24H0z" fill="none"/></svg>'},{id:"mdp-chevron-right",url:"mdp-chevron-right.svg",svg:'<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/><path d="M0 0h24v24H0z" fill="none"/></svg>'},{id:"mdp-access-time",url:"mdp-access-time.svg",svg:'<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"/><path d="M0 0h24v24H0z" fill="none"/><path d="M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"/></svg>'},{id:"mdp-event",url:"mdp-event.svg",svg:'<svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"/><path d="M0 0h24v24H0z" fill="none"/></svg>'}]),l.directive("ngMessage",["$mdUtil",function(e){return{restrict:"EA",priority:101,compile:function(t){if(e.getClosest(t,"mdp-time-picker",!0)||e.getClosest(t,"mdp-date-picker",!0))return t.toggleClass("md-input-message-animation",!0),{}}}}]),l.provider("$mdpDatePicker",function(){var t="OK",n="Cancel",i="ddd, MMM DD";this.setDisplayFormat=function(e){i=e},this.setOKButtonLabel=function(e){t=e},this.setCancelButtonLabel=function(e){n=e},this.$get=["$mdDialog",function(r){return function(o,a){return angular.isDate(o)||(o=Date.now()),angular.isObject(a)||(a={}),a.displayFormat=i,r.show({controller:["$scope","$mdDialog","$mdMedia","$timeout","currentDate","options",e],controllerAs:"datepicker",clickOutsideToClose:!0,template:'<md-dialog aria-label="" class="mdp-datepicker" ng-class="{ \'portrait\': !$mdMedia(\'gt-xs\') }"><md-dialog-content layout="row" layout-wrap><div layout="column" layout-align="start center"><md-toolbar layout-align="start start" flex class="mdp-datepicker-date-wrapper md-hue-1 md-primary" layout="column"><span class="mdp-datepicker-year" ng-click="datepicker.showYear()" ng-class="{ \'active\': datepicker.selectingYear }">{{ datepicker.date.format(\'YYYY\') }}</span><span class="mdp-datepicker-date" ng-click="datepicker.showCalendar()" ng-class="{ \'active\': !datepicker.selectingYear }">{{ datepicker.date.format(datepicker.displayFormat) }}</span> </md-toolbar></div><div><div class="mdp-datepicker-select-year mdp-animation-zoom" layout="column" layout-align="center start" ng-if="datepicker.selectingYear"><md-virtual-repeat-container md-auto-shrink md-top-index="datepicker.yearTopIndex"><div flex md-virtual-repeat="item in datepicker.yearItems" md-on-demand class="repeated-year"><span class="md-button" ng-click="datepicker.selectYear(item)" md-ink-ripple ng-class="{ \'md-primary current\': item == year }">{{ item }}</span></div></md-virtual-repeat-container></div><mdp-calendar ng-if="!datepicker.selectingYear" class="mdp-animation-zoom" date="datepicker.date" min-date="datepicker.minDate" date-filter="datepicker.dateFilter" max-date="datepicker.maxDate"></mdp-calendar><md-dialog-actions layout="row"><span flex></span><md-button ng-click="datepicker.cancel()" aria-label="'+n+'">'+n+'</md-button><md-button ng-click="datepicker.confirm()" class="md-primary" aria-label="'+t+'">'+t+"</md-button></md-dialog-actions></div></md-dialog-content></md-dialog>",targetEvent:a.targetEvent,locals:{currentDate:o,options:a},skipHide:!0})}}]}),l.directive("mdpCalendar",["$animate",function(e){return{restrict:"E",bindToController:{date:"=",minDate:"=",maxDate:"=",dateFilter:"="},template:'<div class="mdp-calendar"><div layout="row" layout-align="space-between center"><md-button aria-label="previous month" class="md-icon-button" ng-click="calendar.prevMonth()"><md-icon md-svg-icon="mdp-chevron-left"></md-icon></md-button><div class="mdp-calendar-monthyear" ng-show="!calendar.animating">{{ calendar.date.format("MMMM YYYY") }}</div><md-button aria-label="next month" class="md-icon-button" ng-click="calendar.nextMonth()"><md-icon md-svg-icon="mdp-chevron-right"></md-icon></md-button></div><div layout="row" layout-align="space-around center" class="mdp-calendar-week-days" ng-show="!calendar.animating"><div layout layout-align="center center" ng-repeat="d in calendar.weekDays track by $index">{{ d }}</div></div><div layout="row" layout-align="start center" layout-wrap class="mdp-calendar-days" ng-class="{ \'mdp-animate-next\': calendar.animating }" ng-show="!calendar.animating" md-swipe-left="calendar.nextMonth()" md-swipe-right="calendar.prevMonth()"><div layout layout-align="center center" ng-repeat-start="day in calendar.daysInMonth track by $index" ng-class="{ \'mdp-day-placeholder\': !day }"><md-button class="md-icon-button md-raised" aria-label="Select day" ng-if="day" ng-class="{ \'md-accent\': calendar.date.date() == day.value }" ng-click="calendar.selectDate(day.value)" ng-disabled="!day.enabled">{{ day.value }}</md-button></div><div flex="100" ng-if="($index + 1) % 7 == 0" ng-repeat-end></div></div></div>',controller:["$scope",t],controllerAs:"calendar",link:function(t,n,i,r){var o=[n[0].querySelector(".mdp-calendar-week-days"),n[0].querySelector(".mdp-calendar-days"),n[0].querySelector(".mdp-calendar-monthyear")].map(function(e){return angular.element(e)});t.$watch(function(){return r.date.format("YYYYMM")},function(t,n){var i=null;if(t>n?i="mdp-animate-next":n>t&&(i="mdp-animate-prev"),i)for(var r in o)o[r].addClass(i),e.removeClass(o[r],i)})}}}]),l.directive("mdpDatePicker",["$mdpDatePicker","$timeout",function(e,t){return{restrict:"E",require:"ngModel",transclude:!0,template:function(e,t){var n=angular.isDefined(t.mdpNoFloat),i=angular.isDefined(t.mdpPlaceholder)?t.mdpPlaceholder:"",r=!!angular.isDefined(t.mdpOpenOnClick);return'<div layout layout-align="start start"><md-button'+(angular.isDefined(t.mdpDisabled)?' ng-disabled="disabled"':"")+' class="md-icon-button" ng-click="showPicker($event)"><md-icon md-svg-icon="mdp-event"></md-icon></md-button><md-input-container'+(n?" md-no-float":"")+' md-is-error="isError()"><input type="{{ ::type }}"'+(angular.isDefined(t.mdpDisabled)?' ng-disabled="disabled"':"")+' aria-label="'+i+'" placeholder="'+i+'"'+(r?' ng-click="showPicker($event)" ':"")+" /></md-input-container></div>"},scope:{minDate:"=mdpMinDate",maxDate:"=mdpMaxDate",dateFilter:"=mdpDateFilter",dateFormat:"@mdpFormat",placeholder:"@mdpPlaceholder",noFloat:"=mdpNoFloat",openOnClick:"=mdpOpenOnClick",disabled:"=?mdpDisabled"},link:{pre:function(e,t,n,i,r){},post:function(t,a,s,l,c){function u(e){p[0].value=e,m.setHasValue(!l.$isEmpty(e))}function d(e){var n=moment(e,angular.isDate(e)?null:t.dateFormat,!0),i=n.format(t.dateFormat);n.isValid()?(u(i),l.$setViewValue(i)):(u(e),l.$setViewValue(e)),!l.$pristine&&g.hasClass("md-auto-hide")&&f.hasClass("md-input-invalid")&&g.removeClass("md-auto-hide"),l.$render()}function h(e){e.target.value!==l.$viewVaue&&d(e.target.value)}var p=angular.element(a[0].querySelector("input")),f=angular.element(a[0].querySelector("md-input-container")),m=f.controller("mdInputContainer");c(function(e){f.append(e)});var g=angular.element(f[0].querySelector("[ng-messages]"));t.type=t.dateFormat?"text":"date",t.dateFormat=t.dateFormat||"YYYY-MM-DD",t.model=l,t.isError=function(){return!l.$pristine&&!!l.$invalid},l.$formatters.unshift(function(e){var n=angular.isDate(e)&&moment(e);u(n&&n.isValid()?n.format(t.dateFormat):null)}),l.$validators.format=function(e,i){return n(i,t.dateFormat)},l.$validators.minDate=function(e,n){return i(n,t.dateFormat,t.minDate)},l.$validators.maxDate=function(e,n){return r(n,t.dateFormat,t.maxDate)},l.$validators.filter=function(e,n){return o(n,t.dateFormat,t.dateFilter)},l.$validators.required=function(e,t){return angular.isUndefined(s.required)||!l.$isEmpty(e)||!l.$isEmpty(t)},l.$parsers.unshift(function(e){var n=moment(e,t.dateFormat,!0);if(n.isValid()){if(angular.isDate(l.$modelValue)){var i=moment(l.$modelValue);i.year(n.year()),i.month(n.month()),i.date(n.date()),n=i}return n.toDate()}return null}),t.showPicker=function(n){e(l.$modelValue,{minDate:t.minDate,maxDate:t.maxDate,dateFilter:t.dateFilter,targetEvent:n}).then(d)},p.on("reset input blur",h),t.$on("$destroy",function(){p.off("reset input blur",h)})}}}}]),l.directive("mdpDatePicker",["$mdpDatePicker","$timeout",function(e,t){return{restrict:"A",require:"ngModel",scope:{minDate:"@min",maxDate:"@max",dateFilter:"=mdpDateFilter",dateFormat:"@mdpFormat"},link:function(t,a,s,l,c){function u(n){e(l.$modelValue,{minDate:t.minDate,maxDate:t.maxDate,dateFilter:t.dateFilter,targetEvent:n}).then(function(e){l.$setViewValue(moment(e).format(t.format)),l.$render()})}t.dateFormat=t.dateFormat||"YYYY-MM-DD",l.$validators.format=function(e,i){return n(i,t.format)},l.$validators.minDate=function(e,n){return i(n,t.format,t.minDate)},l.$validators.maxDate=function(e,n){return r(n,t.format,t.maxDate)},l.$validators.filter=function(e,n){return o(n,t.format,t.dateFilter)},a.on("click",u),t.$on("$destroy",function(){a.off("click",u)})}}}]),l.directive("mdpClock",["$animate","$timeout",function(e,t){return{restrict:"E",bindToController:{type:"@?",time:"=",autoSwitch:"=?"},replace:!0,template:'<div class="mdp-clock"><div class="mdp-clock-container"><md-toolbar class="mdp-clock-center md-primary"></md-toolbar><md-toolbar ng-style="clock.getPointerStyle()" class="mdp-pointer md-primary"><span class="mdp-clock-selected md-button md-raised md-primary"></span></md-toolbar><md-button ng-class="{ \'md-primary\': clock.selected == step }" class="md-icon-button md-raised mdp-clock-deg{{ ::(clock.STEP_DEG * ($index + 1)) }}" ng-repeat="step in clock.steps" ng-click="clock.setTime(step)">{{ step }}</md-button></div></div>',controller:["$scope",s],controllerAs:"clock",link:function(e,n,i,r){var o=(angular.element(n[0].querySelector(".mdp-pointer")),e.$parent.timepicker),a=function(e){var n=e.currentTarget.getClientRects()[0],i=e.currentTarget.offsetWidth/2-(e.pageX-n.left),a=e.pageY-n.top-e.currentTarget.offsetHeight/2,s=Math.round(Math.atan2(i,a)*(180/Math.PI));t(function(){r.setTimeByDeg(s+180),r.autoSwitch&&-1!==["mouseup","click"].indexOf(e.type)&&o&&o.switchView()})};n.on("mousedown",function(){n.on("mousemove",a)}),n.on("mouseup",function(e){n.off("mousemove")}),n.on("click",a),e.$on("$destroy",function(){n.off("click",a),n.off("mousemove",a)})}}}]),l.provider("$mdpTimePicker",function(){var e="OK",t="Cancel";this.setOKButtonLabel=function(t){e=t},this.setCancelButtonLabel=function(e){t=e},this.$get=["$mdDialog",function(n){return function(i,r){return angular.isDate(i)||(i=Date.now()),angular.isObject(r)||(r={}),n.show({controller:["$scope","$mdDialog","time","autoSwitch","$mdMedia",a],controllerAs:"timepicker",clickOutsideToClose:!0,template:'<md-dialog aria-label="" class="mdp-timepicker" ng-class="{ \'portrait\': !$mdMedia(\'gt-xs\') }"><md-dialog-content layout-gt-xs="row" layout-wrap><md-toolbar layout-gt-xs="column" layout-xs="row" layout-align="center center" flex class="mdp-timepicker-time md-hue-1 md-primary"><div class="mdp-timepicker-selected-time"><span ng-class="{ \'active\': timepicker.currentView == timepicker.VIEW_HOURS }" ng-click="timepicker.currentView = timepicker.VIEW_HOURS">{{ timepicker.time.format("h") }}</span>:<span ng-class="{ \'active\': timepicker.currentView == timepicker.VIEW_MINUTES }" ng-click="timepicker.currentView = timepicker.VIEW_MINUTES">{{ timepicker.time.format("mm") }}</span></div><div layout="column" class="mdp-timepicker-selected-ampm"><span ng-click="timepicker.setAM()" ng-class="{ \'active\': timepicker.time.hours() < 12 }">AM</span><span ng-click="timepicker.setPM()" ng-class="{ \'active\': timepicker.time.hours() >= 12 }">PM</span></div></md-toolbar><div><div class="mdp-clock-switch-container" ng-switch="timepicker.currentView" layout layout-align="center center"><mdp-clock class="mdp-animation-zoom" auto-switch="timepicker.autoSwitch" time="timepicker.time" type="hours" ng-switch-when="1"></mdp-clock><mdp-clock class="mdp-animation-zoom" auto-switch="timepicker.autoSwitch" time="timepicker.time" type="minutes" ng-switch-when="2"></mdp-clock></div><md-dialog-actions layout="row"><span flex></span><md-button ng-click="timepicker.cancel()" aria-label="'+t+'">'+t+'</md-button><md-button ng-click="timepicker.confirm()" class="md-primary" aria-label="'+e+'">'+e+"</md-button></md-dialog-actions></div></md-dialog-content></md-dialog>",targetEvent:r.targetEvent,locals:{time:i,autoSwitch:r.autoSwitch},skipHide:!0})}}]}),l.directive("mdpTimePicker",["$mdpTimePicker","$timeout",function(e,t){return{restrict:"E",require:"ngModel",transclude:!0,template:function(e,t){var n=angular.isDefined(t.mdpNoFloat),i=angular.isDefined(t.mdpPlaceholder)?t.mdpPlaceholder:"",r=!!angular.isDefined(t.mdpOpenOnClick);return'<div layout layout-align="start start"><md-button class="md-icon-button" ng-click="showPicker($event)"'+(angular.isDefined(t.mdpDisabled)?' ng-disabled="disabled"':"")+'><md-icon md-svg-icon="mdp-access-time"></md-icon></md-button><md-input-container'+(n?" md-no-float":"")+' md-is-error="isError()"><input type="{{ ::type }}"'+(angular.isDefined(t.mdpDisabled)?' ng-disabled="disabled"':"")+' aria-label="'+i+'" placeholder="'+i+'"'+(r?' ng-click="showPicker($event)" ':"")+" /></md-input-container></div>"},scope:{timeFormat:"@mdpFormat",placeholder:"@mdpPlaceholder",autoSwitch:"=?mdpAutoSwitch",disabled:"=?mdpDisabled"},link:function(t,n,i,r,o){function a(e){c[0].value=e,d.setHasValue(!r.$isEmpty(e))}function s(e){var n=moment(e,angular.isDate(e)?null:t.timeFormat,!0),i=n.format(t.timeFormat);n.isValid()?(a(i),r.$setViewValue(i)):(a(e),r.$setViewValue(e)),!r.$pristine&&h.hasClass("md-auto-hide")&&u.hasClass("md-input-invalid")&&h.removeClass("md-auto-hide"),r.$render()}function l(e){e.target.value!==r.$viewVaue&&s(e.target.value)}var c=angular.element(n[0].querySelector("input")),u=angular.element(n[0].querySelector("md-input-container")),d=u.controller("mdInputContainer");o(function(e){u.append(e)});var h=angular.element(u[0].querySelector("[ng-messages]"));t.type=t.timeFormat?"text":"time",t.timeFormat=t.timeFormat||"HH:mm",t.autoSwitch=t.autoSwitch||!1,t.$watch(function(){return r.$error},function(e,t){d.setInvalid(!r.$pristine&&!!Object.keys(r.$error).length)},!0),r.$formatters.unshift(function(e){var n=angular.isDate(e)&&moment(e);a(n&&n.isValid()?n.format(t.timeFormat):null)}),r.$validators.format=function(e,n){return!n||angular.isDate(n)||moment(n,t.timeFormat,!0).isValid()},r.$validators.required=function(e,t){return angular.isUndefined(i.required)||!r.$isEmpty(e)||!r.$isEmpty(t)},r.$parsers.unshift(function(e){var n=moment(e,t.timeFormat,!0);if(n.isValid()){if(angular.isDate(r.$modelValue)){var i=moment(r.$modelValue);i.minutes(n.minutes()),i.hours(n.hours()),i.seconds(n.seconds()),n=i}return n.toDate()}return null}),t.showPicker=function(n){e(r.$modelValue,{targetEvent:n,autoSwitch:t.autoSwitch}).then(function(e){s(e,!0)})},c.on("reset input blur",l),t.$on("$destroy",function(){c.off("reset input blur",l)})}}}]),l.directive("mdpTimePicker",["$mdpTimePicker","$timeout",function(e,t){return{restrict:"A",require:"ngModel",scope:{timeFormat:"@mdpFormat",autoSwitch:"=?mdpAutoSwitch"},link:function(t,n,i,r,o){function a(n){e(r.$modelValue,{targetEvent:n,autoSwitch:t.autoSwitch}).then(function(e){r.$setViewValue(moment(e).format(t.format)),r.$render()})}t.format=t.format||"HH:mm",n.on("click",a),t.$on("$destroy",function(){n.off("click",a)})}}}])}(),function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):"undefined"!=typeof module&&module.exports?module.exports=e(require("jquery")):e(jQuery)}(function(e,t){"use strict";if(!e.jstree){var n=0,i=!1,r=!1,o=!1,a=[],s=e("script:last").attr("src"),l=window.document;e.jstree={version:"3.3.4",defaults:{plugins:[]},plugins:{},path:s&&-1!==s.indexOf("/")?s.replace(/\/[^\/]+$/,""):"",idregex:/[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g,root:"#"},e.jstree.create=function(t,i){var r=new e.jstree.core(++n),o=i;return i=e.extend(!0,{},e.jstree.defaults,i),o&&o.plugins&&(i.plugins=o.plugins),e.each(i.plugins,function(e,t){"core"!==e&&(r=r.plugin(t,i[t]))}),e(t).data("jstree",r),r.init(t,i),r},e.jstree.destroy=function(){e(".jstree:jstree").jstree("destroy"),e(l).off(".jstree")},e.jstree.core=function(e){this._id=e,this._cnt=0,this._wrk=null,this._data={core:{themes:{name:!1,dots:!1,icons:!1,ellipsis:!1},selected:[],last_error:{},working:!1,worker_queue:[],focused:null}}},e.jstree.reference=function(t){var n=null,i=null;if(!t||!t.id||t.tagName&&t.nodeType||(t=t.id),!i||!i.length)try{i=e(t)}catch(e){}if(!i||!i.length)try{i=e("#"+t.replace(e.jstree.idregex,"\\$&"))}catch(e){}return i&&i.length&&(i=i.closest(".jstree")).length&&(i=i.data("jstree"))?n=i:e(".jstree").each(function(){var i=e(this).data("jstree");if(i&&i._model.data[t])return n=i,!1}),n},e.fn.jstree=function(n){var i="string"==typeof n,r=Array.prototype.slice.call(arguments,1),o=null;return!(!0===n&&!this.length)&&(this.each(function(){var a=e.jstree.reference(this),s=i&&a?a[n]:null;if(o=i&&s?s.apply(a,r):null,a||i||n!==t&&!e.isPlainObject(n)||e.jstree.create(this,n),(a&&!i||!0===n)&&(o=a||!1),null!==o&&o!==t)return!1}),null!==o&&o!==t?o:this)},e.expr.pseudos.jstree=e.expr.createPseudo(function(n){return function(n){return e(n).hasClass("jstree")&&e(n).data("jstree")!==t}}),e.jstree.defaults.core={data:!1,strings:!1,check_callback:!1,error:e.noop,animation:200,multiple:!0,themes:{name:!1,url:!1,dir:!1,dots:!0,icons:!0,ellipsis:!1,stripes:!1,variant:!1,responsive:!1},expand_selected_onload:!0,worker:!0,force_text:!1,dblclick_toggle:!0},e.jstree.core.prototype={plugin:function(t,n){var i=e.jstree.plugins[t];return i?(this._data[t]={},i.prototype=this,new i(n,this)):this},init:function(t,n){this._model={data:{},changed:[],force_full_redraw:!1,redraw_timeout:!1,default_state:{loaded:!0,opened:!1,selected:!1,disabled:!1}},this._model.data[e.jstree.root]={id:e.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this.element=e(t).addClass("jstree jstree-"+this._id),this.settings=n,this._data.core.ready=!1,this._data.core.loaded=!1,this._data.core.rtl="rtl"===this.element.css("direction"),this.element[this._data.core.rtl?"addClass":"removeClass"]("jstree-rtl"),this.element.attr("role","tree"),this.settings.core.multiple&&this.element.attr("aria-multiselectable",!0),this.element.attr("tabindex")||this.element.attr("tabindex","0"),this.bind(),this.trigger("init"),this._data.core.original_container_html=this.element.find(" > ul > li").clone(!0),this._data.core.original_container_html.find("li").addBack().contents().filter(function(){return 3===this.nodeType&&(!this.nodeValue||/^\s+$/.test(this.nodeValue))}).remove(),this.element.html("<ul class='jstree-container-ul jstree-children' role='group'><li id='j"+this._id+"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='tree-item'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading"),this._data.core.li_height=this.get_container_ul().children("li").first().outerHeight()||24,this._data.core.node=this._create_prototype_node(),this.trigger("loading"),this.load_node(e.jstree.root)},destroy:function(e){if(this.trigger("destroy"),this._wrk)try{window.URL.revokeObjectURL(this._wrk),this._wrk=null}catch(e){}e||this.element.empty(),this.teardown()},_create_prototype_node:function(){var e,t,n=l.createElement("LI");return n.setAttribute("role","treeitem"),e=l.createElement("I"),e.className="jstree-icon jstree-ocl",e.setAttribute("role","presentation"),n.appendChild(e),e=l.createElement("A"),e.className="jstree-anchor",e.setAttribute("href","#"),e.setAttribute("tabindex","-1"),t=l.createElement("I"),t.className="jstree-icon jstree-themeicon",t.setAttribute("role","presentation"),e.appendChild(t),n.appendChild(e),e=t=null,n},teardown:function(){this.unbind(),this.element.removeClass("jstree").removeData("jstree").find("[class^='jstree']").addBack().attr("class",function(){return this.className.replace(/jstree[^ ]*|$/gi,"")}),this.element=null},bind:function(){var t="",n=null,i=0;this.element.on("dblclick.jstree",function(e){if(e.target.tagName&&"input"===e.target.tagName.toLowerCase())return!0;if(l.selection&&l.selection.empty)l.selection.empty();else if(window.getSelection){var t=window.getSelection();try{t.removeAllRanges(),t.collapse()}catch(e){}}}).on("mousedown.jstree",e.proxy(function(e){e.target===this.element[0]&&(e.preventDefault(),i=+new Date)},this)).on("mousedown.jstree",".jstree-ocl",function(e){e.preventDefault()}).on("click.jstree",".jstree-ocl",e.proxy(function(e){this.toggle_node(e.target)},this)).on("dblclick.jstree",".jstree-anchor",e.proxy(function(e){if(e.target.tagName&&"input"===e.target.tagName.toLowerCase())return!0;this.settings.core.dblclick_toggle&&this.toggle_node(e.target)},this)).on("click.jstree",".jstree-anchor",e.proxy(function(t){t.preventDefault(),t.currentTarget!==l.activeElement&&e(t.currentTarget).focus(),this.activate_node(t.currentTarget,t)},this)).on("keydown.jstree",".jstree-anchor",e.proxy(function(t){if(t.target.tagName&&"input"===t.target.tagName.toLowerCase())return!0;if(32!==t.which&&13!==t.which&&(t.shiftKey||t.ctrlKey||t.altKey||t.metaKey))return!0;var n=null;switch(this._data.core.rtl&&(37===t.which?t.which=39:39===t.which&&(t.which=37)),t.which){case 32:t.ctrlKey&&(t.type="click",e(t.currentTarget).trigger(t));break;case 13:t.type="click",e(t.currentTarget).trigger(t);break;case 37:t.preventDefault(),this.is_open(t.currentTarget)?this.close_node(t.currentTarget):(n=this.get_parent(t.currentTarget))&&n.id!==e.jstree.root&&this.get_node(n,!0).children(".jstree-anchor").focus();break;case 38:t.preventDefault(),(n=this.get_prev_dom(t.currentTarget))&&n.length&&n.children(".jstree-anchor").focus();break;case 39:t.preventDefault(),this.is_closed(t.currentTarget)?this.open_node(t.currentTarget,function(e){this.get_node(e,!0).children(".jstree-anchor").focus()}):this.is_open(t.currentTarget)&&(n=this.get_node(t.currentTarget,!0).children(".jstree-children")[0])&&e(this._firstChild(n)).children(".jstree-anchor").focus();break;case 40:t.preventDefault(),(n=this.get_next_dom(t.currentTarget))&&n.length&&n.children(".jstree-anchor").focus();break;case 106:this.open_all();break;case 36:t.preventDefault(),(n=this._firstChild(this.get_container_ul()[0]))&&e(n).children(".jstree-anchor").filter(":visible").focus();break;case 35:t.preventDefault(),this.element.find(".jstree-anchor").filter(":visible").last().focus();break;case 113:t.preventDefault(),this.edit(t.currentTarget)}},this)).on("load_node.jstree",e.proxy(function(t,n){n.status&&(n.node.id!==e.jstree.root||this._data.core.loaded||(this._data.core.loaded=!0,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.trigger("loaded")),this._data.core.ready||setTimeout(e.proxy(function(){if(this.element&&!this.get_container_ul().find(".jstree-loading").length){if(this._data.core.ready=!0,this._data.core.selected.length){if(this.settings.core.expand_selected_onload){var t,n,i=[];for(t=0,n=this._data.core.selected.length;t<n;t++)i=i.concat(this._model.data[this._data.core.selected[t]].parents);for(t=0,n=(i=e.vakata.array_unique(i)).length;t<n;t++)this.open_node(i[t],!1,0)}this.trigger("changed",{action:"ready",selected:this._data.core.selected})}this.trigger("ready")}},this),0))},this)).on("keypress.jstree",e.proxy(function(i){if(i.target.tagName&&"input"===i.target.tagName.toLowerCase())return!0;n&&clearTimeout(n),n=setTimeout(function(){t=""},500);var r=String.fromCharCode(i.which).toLowerCase(),o=this.element.find(".jstree-anchor").filter(":visible"),a=o.index(l.activeElement)||0,s=!1;if((t+=r).length>1){if(o.slice(a).each(e.proxy(function(n,i){if(0===e(i).text().toLowerCase().indexOf(t))return e(i).focus(),s=!0,!1},this)),s)return;if(o.slice(0,a).each(e.proxy(function(n,i){if(0===e(i).text().toLowerCase().indexOf(t))return e(i).focus(),s=!0,!1},this)),s)return}if(new RegExp("^"+r.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")+"+$").test(t)){if(o.slice(a+1).each(e.proxy(function(t,n){if(e(n).text().toLowerCase().charAt(0)===r)return e(n).focus(),s=!0,!1},this)),s)return;if(o.slice(0,a+1).each(e.proxy(function(t,n){if(e(n).text().toLowerCase().charAt(0)===r)return e(n).focus(),s=!0,!1},this)),s)return}},this)).on("init.jstree",e.proxy(function(){var e=this.settings.core.themes;this._data.core.themes.dots=e.dots,this._data.core.themes.stripes=e.stripes,this._data.core.themes.icons=e.icons,this._data.core.themes.ellipsis=e.ellipsis,this.set_theme(e.name||"default",e.url),this.set_theme_variant(e.variant)},this)).on("loading.jstree",e.proxy(function(){this[this._data.core.themes.dots?"show_dots":"hide_dots"](),this[this._data.core.themes.icons?"show_icons":"hide_icons"](),this[this._data.core.themes.stripes?"show_stripes":"hide_stripes"](),this[this._data.core.themes.ellipsis?"show_ellipsis":"hide_ellipsis"]()},this)).on("blur.jstree",".jstree-anchor",e.proxy(function(t){this._data.core.focused=null,e(t.currentTarget).filter(".jstree-hovered").mouseleave(),this.element.attr("tabindex","0")},this)).on("focus.jstree",".jstree-anchor",e.proxy(function(t){var n=this.get_node(t.currentTarget);n&&n.id&&(this._data.core.focused=n.id),this.element.find(".jstree-hovered").not(t.currentTarget).mouseleave(),e(t.currentTarget).mouseenter(),this.element.attr("tabindex","-1")},this)).on("focus.jstree",e.proxy(function(){if(+new Date-i>500&&!this._data.core.focused){i=0;var e=this.get_node(this.element.attr("aria-activedescendant"),!0);e&&e.find("> .jstree-anchor").focus()}},this)).on("mouseenter.jstree",".jstree-anchor",e.proxy(function(e){this.hover_node(e.currentTarget)},this)).on("mouseleave.jstree",".jstree-anchor",e.proxy(function(e){this.dehover_node(e.currentTarget)},this))},unbind:function(){this.element.off(".jstree"),e(l).off(".jstree-"+this._id)},trigger:function(e,t){t||(t={}),t.instance=this,this.element.triggerHandler(e.replace(".jstree","")+".jstree",t)},get_container:function(){return this.element},get_container_ul:function(){return this.element.children(".jstree-children").first()},get_string:function(t){var n=this.settings.core.strings;return e.isFunction(n)?n.call(this,t):n&&n[t]?n[t]:t},_firstChild:function(e){for(e=e?e.firstChild:null;null!==e&&1!==e.nodeType;)e=e.nextSibling;return e},_nextSibling:function(e){for(e=e?e.nextSibling:null;null!==e&&1!==e.nodeType;)e=e.nextSibling;return e},_previousSibling:function(e){for(e=e?e.previousSibling:null;null!==e&&1!==e.nodeType;)e=e.previousSibling;return e},get_node:function(t,n){t&&t.id&&(t=t.id);var i;try{if(this._model.data[t])t=this._model.data[t];else if("string"==typeof t&&this._model.data[t.replace(/^#/,"")])t=this._model.data[t.replace(/^#/,"")];else if("string"==typeof t&&(i=e("#"+t.replace(e.jstree.idregex,"\\$&"),this.element)).length&&this._model.data[i.closest(".jstree-node").attr("id")])t=this._model.data[i.closest(".jstree-node").attr("id")];else if((i=e(t,this.element)).length&&this._model.data[i.closest(".jstree-node").attr("id")])t=this._model.data[i.closest(".jstree-node").attr("id")];else{if(!(i=e(t,this.element)).length||!i.hasClass("jstree"))return!1;t=this._model.data[e.jstree.root]}return n&&(t=t.id===e.jstree.root?this.element:e("#"+t.id.replace(e.jstree.idregex,"\\$&"),this.element)),t}catch(e){return!1}},get_path:function(t,n,i){if(!(t=t.parents?t:this.get_node(t))||t.id===e.jstree.root||!t.parents)return!1;var r,o,a=[];for(a.push(i?t.id:t.text),r=0,o=t.parents.length;r<o;r++)a.push(i?t.parents[r]:this.get_text(t.parents[r]));return a=a.reverse().slice(1),n?a.join(n):a},get_next_dom:function(t,n){var i;if((t=this.get_node(t,!0))[0]===this.element[0]){for(i=this._firstChild(this.get_container_ul()[0]);i&&0===i.offsetHeight;)i=this._nextSibling(i);return!!i&&e(i)}if(!t||!t.length)return!1;if(n){i=t[0];do{i=this._nextSibling(i)}while(i&&0===i.offsetHeight);return!!i&&e(i)}if(t.hasClass("jstree-open")){for(i=this._firstChild(t.children(".jstree-children")[0]);i&&0===i.offsetHeight;)i=this._nextSibling(i);if(null!==i)return e(i)}i=t[0];do{i=this._nextSibling(i)}while(i&&0===i.offsetHeight);return null!==i?e(i):t.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first()},get_prev_dom:function(t,n){var i;if((t=this.get_node(t,!0))[0]===this.element[0]){for(i=this.get_container_ul()[0].lastChild;i&&0===i.offsetHeight;)i=this._previousSibling(i);return!!i&&e(i)}if(!t||!t.length)return!1;if(n){i=t[0];do{i=this._previousSibling(i)}while(i&&0===i.offsetHeight);return!!i&&e(i)}i=t[0];do{i=this._previousSibling(i)}while(i&&0===i.offsetHeight);if(null!==i){for(t=e(i);t.hasClass("jstree-open");)t=t.children(".jstree-children").first().children(".jstree-node:visible:last");return t}return!(!(i=t[0].parentNode.parentNode)||!i.className||-1===i.className.indexOf("jstree-node"))&&e(i)},get_parent:function(t){return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.parent},get_children_dom:function(e){return e=this.get_node(e,!0),e[0]===this.element[0]?this.get_container_ul().children(".jstree-node"):!(!e||!e.length)&&e.children(".jstree-children").children(".jstree-node")},is_parent:function(e){return(e=this.get_node(e))&&(!1===e.state.loaded||e.children.length>0)},is_loaded:function(e){return(e=this.get_node(e))&&e.state.loaded},is_loading:function(e){return(e=this.get_node(e))&&e.state&&e.state.loading},is_open:function(e){return(e=this.get_node(e))&&e.state.opened},is_closed:function(e){return(e=this.get_node(e))&&this.is_parent(e)&&!e.state.opened},is_leaf:function(e){return!this.is_parent(e)},load_node:function(t,n){var i,r,o,a,s;if(e.isArray(t))return this._load_nodes(t.slice(),n),!0;if(!(t=this.get_node(t)))return n&&n.call(this,t,!1),!1;if(t.state.loaded){for(t.state.loaded=!1,o=0,a=t.parents.length;o<a;o++)this._model.data[t.parents[o]].children_d=e.vakata.array_filter(this._model.data[t.parents[o]].children_d,function(n){return-1===e.inArray(n,t.children_d)});for(i=0,r=t.children_d.length;i<r;i++)this._model.data[t.children_d[i]].state.selected&&(s=!0),delete this._model.data[t.children_d[i]];s&&(this._data.core.selected=e.vakata.array_filter(this._data.core.selected,function(n){return-1===e.inArray(n,t.children_d)})),t.children=[],t.children_d=[],s&&this.trigger("changed",{action:"load_node",node:t,selected:this._data.core.selected})}return t.state.failed=!1,t.state.loading=!0,this.get_node(t,!0).addClass("jstree-loading").attr("aria-busy",!0),this._load_node(t,e.proxy(function(e){(t=this._model.data[t.id]).state.loading=!1,t.state.loaded=e,t.state.failed=!t.state.loaded;var i=this.get_node(t,!0),r=0,o=0,a=this._model.data,s=!1;for(r=0,o=t.children.length;r<o;r++)if(a[t.children[r]]&&!a[t.children[r]].state.hidden){s=!0;break}t.state.loaded&&i&&i.length&&(i.removeClass("jstree-closed jstree-open jstree-leaf"),s?"#"!==t.id&&i.addClass(t.state.opened?"jstree-open":"jstree-closed"):i.addClass("jstree-leaf")),i.removeClass("jstree-loading").attr("aria-busy",!1),this.trigger("load_node",{node:t,status:e}),n&&n.call(this,t,e)},this)),!0},_load_nodes:function(e,t,n,i){var r,o,a=!0,s=function(){this._load_nodes(e,t,!0)},l=this._model.data,c=[];for(r=0,o=e.length;r<o;r++)l[e[r]]&&(!l[e[r]].state.loaded&&!l[e[r]].state.failed||!n&&i)&&(this.is_loading(e[r])||this.load_node(e[r],s),a=!1);if(a){for(r=0,o=e.length;r<o;r++)l[e[r]]&&l[e[r]].state.loaded&&c.push(e[r]);t&&!t.done&&(t.call(this,c),t.done=!0)}},load_all:function(t,n){if(t||(t=e.jstree.root),!(t=this.get_node(t)))return!1;var i,r,o=[],a=this._model.data,s=a[t.id].children_d;for(t.state&&!t.state.loaded&&o.push(t.id),i=0,r=s.length;i<r;i++)a[s[i]]&&a[s[i]].state&&!a[s[i]].state.loaded&&o.push(s[i]);o.length?this._load_nodes(o,function(){this.load_all(t,n)}):(n&&n.call(this,t),this.trigger("load_all",{node:t}))},_load_node:function(t,n){var i,r=this.settings.core.data,o=function(){return 3!==this.nodeType&&8!==this.nodeType};return r?e.isFunction(r)?r.call(this,t,e.proxy(function(i){!1===i?n.call(this,!1):this["string"==typeof i?"_append_html_data":"_append_json_data"](t,"string"==typeof i?e(e.parseHTML(i)).filter(o):i,function(e){n.call(this,e)})},this)):"object"==typeof r?r.url?(r=e.extend(!0,{},r),e.isFunction(r.url)&&(r.url=r.url.call(this,t)),e.isFunction(r.data)&&(r.data=r.data.call(this,t)),e.ajax(r).done(e.proxy(function(i,r,a){var s=a.getResponseHeader("Content-Type");return s&&-1!==s.indexOf("json")||"object"==typeof i?this._append_json_data(t,i,function(e){n.call(this,e)}):s&&-1!==s.indexOf("html")||"string"==typeof i?this._append_html_data(t,e(e.parseHTML(i)).filter(o),function(e){n.call(this,e)}):(this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:t.id,xhr:a})},this.settings.core.error.call(this,this._data.core.last_error),n.call(this,!1))},this)).fail(e.proxy(function(e){this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:t.id,xhr:e})},n.call(this,!1),this.settings.core.error.call(this,this._data.core.last_error)},this))):(i=e.isArray(r)?e.extend(!0,[],r):e.isPlainObject(r)?e.extend(!0,{},r):r,t.id===e.jstree.root?this._append_json_data(t,i,function(e){n.call(this,e)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_05",reason:"Could not load node",data:JSON.stringify({id:t.id})},this.settings.core.error.call(this,this._data.core.last_error),n.call(this,!1))):"string"==typeof r?t.id===e.jstree.root?this._append_html_data(t,e(e.parseHTML(r)).filter(o),function(e){n.call(this,e)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_06",reason:"Could not load node",data:JSON.stringify({id:t.id})},this.settings.core.error.call(this,this._data.core.last_error),n.call(this,!1)):n.call(this,!1):t.id===e.jstree.root?this._append_html_data(t,this._data.core.original_container_html.clone(!0),function(e){n.call(this,e)}):n.call(this,!1)},_node_changed:function(e){(e=this.get_node(e))&&this._model.changed.push(e.id)},_append_html_data:function(t,n,i){(t=this.get_node(t)).children=[],t.children_d=[];var r,o,a,s=n.is("ul")?n.children():n,l=t.id,c=[],u=[],d=this._model.data,h=d[l],p=this._data.core.selected.length;for(s.each(e.proxy(function(t,n){(r=this._parse_model_from_html(e(n),l,h.parents.concat()))&&(c.push(r),u.push(r),d[r].children_d.length&&(u=u.concat(d[r].children_d)))},this)),h.children=c,h.children_d=u,o=0,a=h.parents.length;o<a;o++)d[h.parents[o]].children_d=d[h.parents[o]].children_d.concat(u);this.trigger("model",{nodes:u,parent:l}),l!==e.jstree.root?(this._node_changed(l),this.redraw()):(this.get_container_ul().children(".jstree-initial-node").remove(),this.redraw(!0)),this._data.core.selected.length!==p&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),i.call(this,!0)},_append_json_data:function(t,n,i,r){if(null!==this.element){(t=this.get_node(t)).children=[],t.children_d=[],n.d&&"string"==typeof(n=n.d)&&(n=JSON.parse(n)),e.isArray(n)||(n=[n]);var o=null,a={df:this._model.default_state,dat:n,par:t.id,m:this._model.data,t_id:this._id,t_cnt:this._cnt,sel:this._data.core.selected},s=function(e,t){e.data&&(e=e.data);var n,i,r,o,a=e.dat,s=e.par,l=[],c=[],u=[],d=e.df,h=e.t_id,p=e.t_cnt,f=e.m,m=f[s],g=e.sel,v=function(e,n,i){i=i?i.concat():[],n&&i.unshift(n);var r,o,a,s,l=e.id.toString(),c={id:l,text:e.text||"",icon:e.icon===t||e.icon,parent:n,parents:i,children:e.children||[],children_d:e.children_d||[],data:e.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(r in d)d.hasOwnProperty(r)&&(c.state[r]=d[r]);if(e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(c.icon=e.data.jstree.icon),c.icon!==t&&null!==c.icon&&""!==c.icon||(c.icon=!0),e&&e.data&&(c.data=e.data,e.data.jstree))for(r in e.data.jstree)e.data.jstree.hasOwnProperty(r)&&(c.state[r]=e.data.jstree[r]);if(e&&"object"==typeof e.state)for(r in e.state)e.state.hasOwnProperty(r)&&(c.state[r]=e.state[r]);if(e&&"object"==typeof e.li_attr)for(r in e.li_attr)e.li_attr.hasOwnProperty(r)&&(c.li_attr[r]=e.li_attr[r]);if(c.li_attr.id||(c.li_attr.id=l),e&&"object"==typeof e.a_attr)for(r in e.a_attr)e.a_attr.hasOwnProperty(r)&&(c.a_attr[r]=e.a_attr[r]);for(e&&e.children&&!0===e.children&&(c.state.loaded=!1,c.children=[],c.children_d=[]),f[c.id]=c,r=0,o=c.children.length;r<o;r++)a=v(f[c.children[r]],c.id,i),s=f[a],c.children_d.push(a),s.children_d.length&&(c.children_d=c.children_d.concat(s.children_d));return delete e.data,delete e.children,f[c.id].original=e,c.state.selected&&u.push(c.id),c.id},b=function(e,n,i){i=i?i.concat():[],n&&i.unshift(n);var r,o,a,s,l,c=!1;do{c="j"+h+"_"+ ++p}while(f[c]);l={id:!1,text:"string"==typeof e?e:"",icon:"object"!=typeof e||e.icon===t||e.icon,parent:n,parents:i,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(r in d)d.hasOwnProperty(r)&&(l.state[r]=d[r]);if(e&&e.id&&(l.id=e.id.toString()),e&&e.text&&(l.text=e.text),e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(l.icon=e.data.jstree.icon),l.icon!==t&&null!==l.icon&&""!==l.icon||(l.icon=!0),e&&e.data&&(l.data=e.data,e.data.jstree))for(r in e.data.jstree)e.data.jstree.hasOwnProperty(r)&&(l.state[r]=e.data.jstree[r]);if(e&&"object"==typeof e.state)for(r in e.state)e.state.hasOwnProperty(r)&&(l.state[r]=e.state[r]);if(e&&"object"==typeof e.li_attr)for(r in e.li_attr)e.li_attr.hasOwnProperty(r)&&(l.li_attr[r]=e.li_attr[r]);if(l.li_attr.id&&!l.id&&(l.id=l.li_attr.id.toString()),l.id||(l.id=c),l.li_attr.id||(l.li_attr.id=l.id),e&&"object"==typeof e.a_attr)for(r in e.a_attr)e.a_attr.hasOwnProperty(r)&&(l.a_attr[r]=e.a_attr[r]);if(e&&e.children&&e.children.length){for(r=0,o=e.children.length;r<o;r++)a=b(e.children[r],l.id,i),s=f[a],l.children.push(a),s.children_d.length&&(l.children_d=l.children_d.concat(s.children_d));l.children_d=l.children_d.concat(l.children)}return e&&e.children&&!0===e.children&&(l.state.loaded=!1,l.children=[],l.children_d=[]),delete e.data,delete e.children,l.original=e,f[l.id]=l,l.state.selected&&u.push(l.id),l.id};if(a.length&&a[0].id!==t&&a[0].parent!==t){for(i=0,r=a.length;i<r;i++)a[i].children||(a[i].children=[]),f[a[i].id.toString()]=a[i];for(i=0,r=a.length;i<r;i++)f[a[i].parent.toString()].children.push(a[i].id.toString()),m.children_d.push(a[i].id.toString());for(i=0,r=m.children.length;i<r;i++)n=v(f[m.children[i]],s,m.parents.concat()),c.push(n),f[n].children_d.length&&(c=c.concat(f[n].children_d));for(i=0,r=m.parents.length;i<r;i++)f[m.parents[i]].children_d=f[m.parents[i]].children_d.concat(c);o={cnt:p,mod:f,sel:g,par:s,dpc:c,add:u}}else{for(i=0,r=a.length;i<r;i++)(n=b(a[i],s,m.parents.concat()))&&(l.push(n),c.push(n),f[n].children_d.length&&(c=c.concat(f[n].children_d)));for(m.children=l,m.children_d=c,i=0,r=m.parents.length;i<r;i++)f[m.parents[i]].children_d=f[m.parents[i]].children_d.concat(c);o={cnt:p,mod:f,sel:g,par:s,dpc:c,add:u}}if("undefined"!=typeof window&&void 0!==window.document)return o;postMessage(o)},l=function(t,n){if(null!==this.element){this._cnt=t.cnt;var r,o=this._model.data;for(r in o)o.hasOwnProperty(r)&&o[r].state&&o[r].state.loading&&t.mod[r]&&(t.mod[r].state.loading=!0);if(this._model.data=t.mod,n){var a,s=t.add,l=t.sel,c=this._data.core.selected.slice();if(o=this._model.data,l.length!==c.length||e.vakata.array_unique(l.concat(c)).length!==l.length){for(r=0,a=l.length;r<a;r++)-1===e.inArray(l[r],s)&&-1===e.inArray(l[r],c)&&(o[l[r]].state.selected=!1);for(r=0,a=c.length;r<a;r++)-1===e.inArray(c[r],l)&&(o[c[r]].state.selected=!0)}}t.add.length&&(this._data.core.selected=this._data.core.selected.concat(t.add)),this.trigger("model",{nodes:t.dpc,parent:t.par}),t.par!==e.jstree.root?(this._node_changed(t.par),this.redraw()):this.redraw(!0),t.add.length&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),i.call(this,!0)}};if(this.settings.core.worker&&window.Blob&&window.URL&&window.Worker)try{null===this._wrk&&(this._wrk=window.URL.createObjectURL(new window.Blob(["self.onmessage = "+s.toString()],{type:"text/javascript"}))),!this._data.core.working||r?(this._data.core.working=!0,(o=new window.Worker(this._wrk)).onmessage=e.proxy(function(e){l.call(this,e.data,!0);try{o.terminate(),o=null}catch(e){}this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1},this),a.par?o.postMessage(a):this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1):this._data.core.worker_queue.push([t,n,i,!0])}catch(e){l.call(this,s(a),!1),this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1}else l.call(this,s(a),!1)}},_parse_model_from_html:function(n,i,r){r=r?[].concat(r):[],i&&r.unshift(i);var o,a,s,l,c,u=this._model.data,d={id:!1,text:!1,icon:!0,parent:i,parents:r,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(s in this._model.default_state)this._model.default_state.hasOwnProperty(s)&&(d.state[s]=this._model.default_state[s]);if(l=e.vakata.attributes(n,!0),e.each(l,function(t,n){if(!(n=e.trim(n)).length)return!0;d.li_attr[t]=n,"id"===t&&(d.id=n.toString())}),(l=n.children("a").first()).length&&(l=e.vakata.attributes(l,!0),e.each(l,function(t,n){(n=e.trim(n)).length&&(d.a_attr[t]=n)})),(l=n.children("a").first().length?n.children("a").first().clone():n.clone()).children("ins, i, ul").remove(),l=l.html(),l=e("<div />").html(l),d.text=this.settings.core.force_text?l.text():l.html(),l=n.data(),d.data=l?e.extend(!0,{},l):null,d.state.opened=n.hasClass("jstree-open"),d.state.selected=n.children("a").hasClass("jstree-clicked"),d.state.disabled=n.children("a").hasClass("jstree-disabled"),d.data&&d.data.jstree)for(s in d.data.jstree)d.data.jstree.hasOwnProperty(s)&&(d.state[s]=d.data.jstree[s]);(l=n.children("a").children(".jstree-themeicon")).length&&(d.icon=!l.hasClass("jstree-themeicon-hidden")&&l.attr("rel")),d.state.icon!==t&&(d.icon=d.state.icon),d.icon!==t&&null!==d.icon&&""!==d.icon||(d.icon=!0),l=n.children("ul").children("li");do{c="j"+this._id+"_"+ ++this._cnt}while(u[c]);return d.id=d.li_attr.id?d.li_attr.id.toString():c,l.length?(l.each(e.proxy(function(t,n){o=this._parse_model_from_html(e(n),d.id,r),a=this._model.data[o],d.children.push(o),a.children_d.length&&(d.children_d=d.children_d.concat(a.children_d))},this)),d.children_d=d.children_d.concat(d.children)):n.hasClass("jstree-closed")&&(d.state.loaded=!1),d.li_attr.class&&(d.li_attr.class=d.li_attr.class.replace("jstree-closed","").replace("jstree-open","")),d.a_attr.class&&(d.a_attr.class=d.a_attr.class.replace("jstree-clicked","").replace("jstree-disabled","")),u[d.id]=d,d.state.selected&&this._data.core.selected.push(d.id),d.id},_parse_model_from_flat_json:function(e,n,i){i=i?i.concat():[],n&&i.unshift(n);var r,o,a,s,l=e.id.toString(),c=this._model.data,u=this._model.default_state,d={id:l,text:e.text||"",icon:e.icon===t||e.icon,parent:n,parents:i,children:e.children||[],children_d:e.children_d||[],data:e.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(r in u)u.hasOwnProperty(r)&&(d.state[r]=u[r]);if(e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(d.icon=e.data.jstree.icon),d.icon!==t&&null!==d.icon&&""!==d.icon||(d.icon=!0),e&&e.data&&(d.data=e.data,e.data.jstree))for(r in e.data.jstree)e.data.jstree.hasOwnProperty(r)&&(d.state[r]=e.data.jstree[r]);if(e&&"object"==typeof e.state)for(r in e.state)e.state.hasOwnProperty(r)&&(d.state[r]=e.state[r]);if(e&&"object"==typeof e.li_attr)for(r in e.li_attr)e.li_attr.hasOwnProperty(r)&&(d.li_attr[r]=e.li_attr[r]);if(d.li_attr.id||(d.li_attr.id=l),e&&"object"==typeof e.a_attr)for(r in e.a_attr)e.a_attr.hasOwnProperty(r)&&(d.a_attr[r]=e.a_attr[r]);for(e&&e.children&&!0===e.children&&(d.state.loaded=!1,d.children=[],d.children_d=[]),c[d.id]=d,r=0,o=d.children.length;r<o;r++)s=c[a=this._parse_model_from_flat_json(c[d.children[r]],d.id,i)],d.children_d.push(a),s.children_d.length&&(d.children_d=d.children_d.concat(s.children_d));return delete e.data,delete e.children,c[d.id].original=e,d.state.selected&&this._data.core.selected.push(d.id),d.id},_parse_model_from_json:function(e,n,i){i=i?i.concat():[],n&&i.unshift(n);var r,o,a,s,l,c=!1,u=this._model.data,d=this._model.default_state;do{c="j"+this._id+"_"+ ++this._cnt}while(u[c]);l={id:!1,text:"string"==typeof e?e:"",icon:"object"!=typeof e||e.icon===t||e.icon,parent:n,parents:i,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(r in d)d.hasOwnProperty(r)&&(l.state[r]=d[r]);if(e&&e.id&&(l.id=e.id.toString()),e&&e.text&&(l.text=e.text),e&&e.data&&e.data.jstree&&e.data.jstree.icon&&(l.icon=e.data.jstree.icon),l.icon!==t&&null!==l.icon&&""!==l.icon||(l.icon=!0),e&&e.data&&(l.data=e.data,e.data.jstree))for(r in e.data.jstree)e.data.jstree.hasOwnProperty(r)&&(l.state[r]=e.data.jstree[r]);if(e&&"object"==typeof e.state)for(r in e.state)e.state.hasOwnProperty(r)&&(l.state[r]=e.state[r]);if(e&&"object"==typeof e.li_attr)for(r in e.li_attr)e.li_attr.hasOwnProperty(r)&&(l.li_attr[r]=e.li_attr[r]);if(l.li_attr.id&&!l.id&&(l.id=l.li_attr.id.toString()),l.id||(l.id=c),l.li_attr.id||(l.li_attr.id=l.id),e&&"object"==typeof e.a_attr)for(r in e.a_attr)e.a_attr.hasOwnProperty(r)&&(l.a_attr[r]=e.a_attr[r]);if(e&&e.children&&e.children.length){for(r=0,o=e.children.length;r<o;r++)s=u[a=this._parse_model_from_json(e.children[r],l.id,i)],l.children.push(a),s.children_d.length&&(l.children_d=l.children_d.concat(s.children_d));l.children_d=l.children_d.concat(l.children)}return e&&e.children&&!0===e.children&&(l.state.loaded=!1,l.children=[],l.children_d=[]),delete e.data,delete e.children,l.original=e,u[l.id]=l,l.state.selected&&this._data.core.selected.push(l.id),l.id},_redraw:function(){var t,n,i,r=this._model.force_full_redraw?this._model.data[e.jstree.root].children.concat([]):this._model.changed.concat([]),o=l.createElement("UL"),a=this._data.core.focused;for(n=0,i=r.length;n<i;n++)(t=this.redraw_node(r[n],!0,this._model.force_full_redraw))&&this._model.force_full_redraw&&o.appendChild(t);this._model.force_full_redraw&&(o.className=this.get_container_ul()[0].className,o.setAttribute("role","group"),this.element.empty().append(o)),null!==a&&((t=this.get_node(a,!0))&&t.length&&t.children(".jstree-anchor")[0]!==l.activeElement?t.children(".jstree-anchor").focus():this._data.core.focused=null),this._model.force_full_redraw=!1,this._model.changed=[],this.trigger("redraw",{nodes:r})},redraw:function(e){e&&(this._model.force_full_redraw=!0),this._redraw()},draw_children:function(t){var n=this.get_node(t),i=!1,r=!1,o=!1,a=l;if(!n)return!1;if(n.id===e.jstree.root)return this.redraw(!0);if(!(t=this.get_node(t,!0))||!t.length)return!1;if(t.children(".jstree-children").remove(),t=t[0],n.children.length&&n.state.loaded){for((o=a.createElement("UL")).setAttribute("role","group"),o.className="jstree-children",i=0,r=n.children.length;i<r;i++)o.appendChild(this.redraw_node(n.children[i],!0,!0));t.appendChild(o)}},redraw_node:function(t,n,i,r){var o=this.get_node(t),a=!1,s=!1,c=!1,u=!1,d=!1,h=!1,p="",f=l,m=this._model.data,g=!1,v=null,b=0,y=0,_=!1,w=!1;if(!o)return!1;if(o.id===e.jstree.root)return this.redraw(!0);if(n=n||0===o.children.length,t=l.querySelector?this.element[0].querySelector("#"+(-1!=="0123456789".indexOf(o.id[0])?"\\3"+o.id[0]+" "+o.id.substr(1).replace(e.jstree.idregex,"\\$&"):o.id.replace(e.jstree.idregex,"\\$&"))):l.getElementById(o.id))t=e(t),i||((a=t.parent().parent()[0])===this.element[0]&&(a=null),s=t.index()),n||!o.children.length||t.children(".jstree-children").length||(n=!0),n||(c=t.children(".jstree-children")[0]),g=t.children(".jstree-anchor")[0]===l.activeElement,t.remove();else if(n=!0,!i){if(!(null===(a=o.parent!==e.jstree.root?e("#"+o.parent.replace(e.jstree.idregex,"\\$&"),this.element)[0]:null)||a&&m[o.parent].state.opened))return!1;s=e.inArray(o.id,null===a?m[e.jstree.root].children:m[o.parent].children)}t=this._data.core.node.cloneNode(!0),p="jstree-node ";for(u in o.li_attr)if(o.li_attr.hasOwnProperty(u)){if("id"===u)continue;"class"!==u?t.setAttribute(u,o.li_attr[u]):p+=o.li_attr[u]}for(o.a_attr.id||(o.a_attr.id=o.id+"_anchor"),t.setAttribute("aria-selected",!!o.state.selected),t.setAttribute("aria-level",o.parents.length),t.setAttribute("aria-labelledby",o.a_attr.id),o.state.disabled&&t.setAttribute("aria-disabled",!0),u=0,d=o.children.length;u<d;u++)if(!m[o.children[u]].state.hidden){_=!0;break}if(null!==o.parent&&m[o.parent]&&!o.state.hidden&&(u=e.inArray(o.id,m[o.parent].children),w=o.id,-1!==u))for(u++,d=m[o.parent].children.length;u<d&&(m[m[o.parent].children[u]].state.hidden||(w=m[o.parent].children[u]),w===o.id);u++);o.state.hidden&&(p+=" jstree-hidden"),o.state.loaded&&!_?p+=" jstree-leaf":(p+=o.state.opened&&o.state.loaded?" jstree-open":" jstree-closed",t.setAttribute("aria-expanded",o.state.opened&&o.state.loaded)),w===o.id&&(p+=" jstree-last"),t.id=o.id,t.className=p,p=(o.state.selected?" jstree-clicked":"")+(o.state.disabled?" jstree-disabled":"");for(d in o.a_attr)if(o.a_attr.hasOwnProperty(d)){if("href"===d&&"#"===o.a_attr[d])continue;"class"!==d?t.childNodes[1].setAttribute(d,o.a_attr[d]):p+=" "+o.a_attr[d]}if(p.length&&(t.childNodes[1].className="jstree-anchor "+p),(o.icon&&!0!==o.icon||!1===o.icon)&&(!1===o.icon?t.childNodes[1].childNodes[0].className+=" jstree-themeicon-hidden":-1===o.icon.indexOf("/")&&-1===o.icon.indexOf(".")?t.childNodes[1].childNodes[0].className+=" "+o.icon+" jstree-themeicon-custom":(t.childNodes[1].childNodes[0].style.backgroundImage='url("'+o.icon+'")',t.childNodes[1].childNodes[0].style.backgroundPosition="center center",t.childNodes[1].childNodes[0].style.backgroundSize="auto",t.childNodes[1].childNodes[0].className+=" jstree-themeicon-custom")),this.settings.core.force_text?t.childNodes[1].appendChild(f.createTextNode(o.text)):t.childNodes[1].innerHTML+=o.text,n&&o.children.length&&(o.state.opened||r)&&o.state.loaded){for((h=f.createElement("UL")).setAttribute("role","group"),h.className="jstree-children",u=0,d=o.children.length;u<d;u++)h.appendChild(this.redraw_node(o.children[u],n,!0));t.appendChild(h)}if(c&&t.appendChild(c),!i){for(a||(a=this.element[0]),u=0,d=a.childNodes.length;u<d;u++)if(a.childNodes[u]&&a.childNodes[u].className&&-1!==a.childNodes[u].className.indexOf("jstree-children")){v=a.childNodes[u];break}v||((v=f.createElement("UL")).setAttribute("role","group"),v.className="jstree-children",a.appendChild(v)),s<(a=v).childNodes.length?a.insertBefore(t,a.childNodes[s]):a.appendChild(t),g&&(b=this.element[0].scrollTop,y=this.element[0].scrollLeft,t.childNodes[1].focus(),this.element[0].scrollTop=b,this.element[0].scrollLeft=y)}return o.state.opened&&!o.state.loaded&&(o.state.opened=!1,setTimeout(e.proxy(function(){this.open_node(o.id,!1,0)},this),0)),t},open_node:function(n,i,r){var o,a,s,l;if(e.isArray(n)){for(o=0,a=(n=n.slice()).length;o<a;o++)this.open_node(n[o],i,r);return!0}return!(!(n=this.get_node(n))||n.id===e.jstree.root)&&(r=r===t?this.settings.core.animation:r,this.is_closed(n)?this.is_loaded(n)?(s=this.get_node(n,!0),l=this,s.length&&(r&&s.children(".jstree-children").length&&s.children(".jstree-children").stop(!0,!0),n.children.length&&!this._firstChild(s.children(".jstree-children")[0])&&this.draw_children(n),r?(this.trigger("before_open",{node:n}),s.children(".jstree-children").css("display","none").end().removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded",!0).children(".jstree-children").stop(!0,!0).slideDown(r,function(){this.style.display="",l.element&&l.trigger("after_open",{node:n})})):(this.trigger("before_open",{node:n}),s[0].className=s[0].className.replace("jstree-closed","jstree-open"),s[0].setAttribute("aria-expanded",!0))),n.state.opened=!0,i&&i.call(this,n,!0),s.length||this.trigger("before_open",{node:n}),this.trigger("open_node",{node:n}),r&&s.length||this.trigger("after_open",{node:n}),!0):this.is_loading(n)?setTimeout(e.proxy(function(){this.open_node(n,i,r)},this),500):void this.load_node(n,function(e,t){return t?this.open_node(e,i,r):!!i&&i.call(this,e,!1)}):(i&&i.call(this,n,!1),!1))},_open_to:function(t){if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;var n,i,r=t.parents;for(n=0,i=r.length;n<i;n+=1)n!==e.jstree.root&&this.open_node(r[n],!1,0);return e("#"+t.id.replace(e.jstree.idregex,"\\$&"),this.element)},close_node:function(n,i){var r,o,a,s;if(e.isArray(n)){for(r=0,o=(n=n.slice()).length;r<o;r++)this.close_node(n[r],i);return!0}return!(!(n=this.get_node(n))||n.id===e.jstree.root)&&(!this.is_closed(n)&&(i=i===t?this.settings.core.animation:i,a=this,s=this.get_node(n,!0),n.state.opened=!1,this.trigger("close_node",{node:n}),void(s.length?i?s.children(".jstree-children").attr("style","display:block !important").end().removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded",!1).children(".jstree-children").stop(!0,!0).slideUp(i,function(){this.style.display="",s.children(".jstree-children").remove(),a.element&&a.trigger("after_close",{node:n})}):(s[0].className=s[0].className.replace("jstree-open","jstree-closed"),s.attr("aria-expanded",!1).children(".jstree-children").remove(),this.trigger("after_close",{node:n})):this.trigger("after_close",{node:n}))))},toggle_node:function(t){var n,i;if(e.isArray(t)){for(n=0,i=(t=t.slice()).length;n<i;n++)this.toggle_node(t[n]);return!0}return this.is_closed(t)?this.open_node(t):this.is_open(t)?this.close_node(t):void 0},open_all:function(t,n,i){if(t||(t=e.jstree.root),!(t=this.get_node(t)))return!1;var r,o,a,s=t.id===e.jstree.root?this.get_container_ul():this.get_node(t,!0);if(!s.length){for(r=0,o=t.children_d.length;r<o;r++)this.is_closed(this._model.data[t.children_d[r]])&&(this._model.data[t.children_d[r]].state.opened=!0);return this.trigger("open_all",{node:t})}i=i||s,a=this,(s=this.is_closed(t)?s.find(".jstree-closed").addBack():s.find(".jstree-closed")).each(function(){a.open_node(this,function(e,t){t&&this.is_parent(e)&&this.open_all(e,n,i)},n||0)}),0===i.find(".jstree-closed").length&&this.trigger("open_all",{node:this.get_node(i)})},close_all:function(t,n){if(t||(t=e.jstree.root),!(t=this.get_node(t)))return!1;var i,r,o=t.id===e.jstree.root?this.get_container_ul():this.get_node(t,!0),a=this;for(o.length&&(o=this.is_open(t)?o.find(".jstree-open").addBack():o.find(".jstree-open"),e(o.get().reverse()).each(function(){a.close_node(this,n||0)})),i=0,r=t.children_d.length;i<r;i++)this._model.data[t.children_d[i]].state.opened=!1;this.trigger("close_all",{node:t})},is_disabled:function(e){return(e=this.get_node(e))&&e.state&&e.state.disabled},enable_node:function(t){var n,i;if(e.isArray(t)){for(n=0,i=(t=t.slice()).length;n<i;n++)this.enable_node(t[n]);return!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;t.state.disabled=!1,this.get_node(t,!0).children(".jstree-anchor").removeClass("jstree-disabled").attr("aria-disabled",!1),this.trigger("enable_node",{node:t})},disable_node:function(t){var n,i;if(e.isArray(t)){for(n=0,i=(t=t.slice()).length;n<i;n++)this.disable_node(t[n]);return!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;t.state.disabled=!0,this.get_node(t,!0).children(".jstree-anchor").addClass("jstree-disabled").attr("aria-disabled",!0),this.trigger("disable_node",{node:t})},is_hidden:function(e){return!0===(e=this.get_node(e)).state.hidden},hide_node:function(t,n){var i,r;if(e.isArray(t)){for(i=0,r=(t=t.slice()).length;i<r;i++)this.hide_node(t[i],!0);return n||this.redraw(),!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;t.state.hidden||(t.state.hidden=!0,this._node_changed(t.parent),n||this.redraw(),this.trigger("hide_node",{node:t}))},show_node:function(t,n){var i,r;if(e.isArray(t)){for(i=0,r=(t=t.slice()).length;i<r;i++)this.show_node(t[i],!0);return n||this.redraw(),!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;t.state.hidden&&(t.state.hidden=!1,this._node_changed(t.parent),n||this.redraw(),this.trigger("show_node",{node:t}))},hide_all:function(t){var n,i=this._model.data,r=[];for(n in i)i.hasOwnProperty(n)&&n!==e.jstree.root&&!i[n].state.hidden&&(i[n].state.hidden=!0,r.push(n));return this._model.force_full_redraw=!0,t||this.redraw(),this.trigger("hide_all",{nodes:r}),r},show_all:function(t){var n,i=this._model.data,r=[];for(n in i)i.hasOwnProperty(n)&&n!==e.jstree.root&&i[n].state.hidden&&(i[n].state.hidden=!1,r.push(n));return this._model.force_full_redraw=!0,t||this.redraw(),this.trigger("show_all",{nodes:r}),r},activate_node:function(e,n){if(this.is_disabled(e))return!1;if(n&&"object"==typeof n||(n={}),this._data.core.last_clicked=this._data.core.last_clicked&&this._data.core.last_clicked.id!==t?this.get_node(this._data.core.last_clicked.id):null,this._data.core.last_clicked&&!this._data.core.last_clicked.state.selected&&(this._data.core.last_clicked=null),!this._data.core.last_clicked&&this._data.core.selected.length&&(this._data.core.last_clicked=this.get_node(this._data.core.selected[this._data.core.selected.length-1])),this.settings.core.multiple&&(n.metaKey||n.ctrlKey||n.shiftKey)&&(!n.shiftKey||this._data.core.last_clicked&&this.get_parent(e)&&this.get_parent(e)===this._data.core.last_clicked.parent))if(n.shiftKey){var i,r,o=this.get_node(e).id,a=this._data.core.last_clicked.id,s=this.get_node(this._data.core.last_clicked.parent).children,l=!1;for(i=0,r=s.length;i<r;i+=1)s[i]===o&&(l=!l),s[i]===a&&(l=!l),this.is_disabled(s[i])||!l&&s[i]!==o&&s[i]!==a?this.deselect_node(s[i],!0,n):this.is_hidden(s[i])||this.select_node(s[i],!0,!1,n);this.trigger("changed",{action:"select_node",node:this.get_node(e),selected:this._data.core.selected,event:n})}else this.is_selected(e)?this.deselect_node(e,!1,n):this.select_node(e,!1,!1,n);else!this.settings.core.multiple&&(n.metaKey||n.ctrlKey||n.shiftKey)&&this.is_selected(e)?this.deselect_node(e,!1,n):(this.deselect_all(!0),this.select_node(e,!1,!1,n),this._data.core.last_clicked=this.get_node(e));this.trigger("activate_node",{node:this.get_node(e),event:n})},hover_node:function(e){if(!(e=this.get_node(e,!0))||!e.length||e.children(".jstree-hovered").length)return!1;var t=this.element.find(".jstree-hovered"),n=this.element;t&&t.length&&this.dehover_node(t),e.children(".jstree-anchor").addClass("jstree-hovered"),this.trigger("hover_node",{node:this.get_node(e)}),setTimeout(function(){n.attr("aria-activedescendant",e[0].id)},0)},dehover_node:function(e){if(!(e=this.get_node(e,!0))||!e.length||!e.children(".jstree-hovered").length)return!1;e.children(".jstree-anchor").removeClass("jstree-hovered"),this.trigger("dehover_node",{node:this.get_node(e)})},select_node:function(t,n,i,r){var o,a,s;if(e.isArray(t)){for(a=0,s=(t=t.slice()).length;a<s;a++)this.select_node(t[a],n,i,r);return!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;o=this.get_node(t,!0),t.state.selected||(t.state.selected=!0,this._data.core.selected.push(t.id),i||(o=this._open_to(t)),o&&o.length&&o.attr("aria-selected",!0).children(".jstree-anchor").addClass("jstree-clicked"),this.trigger("select_node",{node:t,selected:this._data.core.selected,event:r}),n||this.trigger("changed",{action:"select_node",node:t,selected:this._data.core.selected,event:r}))},deselect_node:function(t,n,i){var r,o,a;if(e.isArray(t)){for(r=0,o=(t=t.slice()).length;r<o;r++)this.deselect_node(t[r],n,i);return!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;a=this.get_node(t,!0),t.state.selected&&(t.state.selected=!1,this._data.core.selected=e.vakata.array_remove_item(this._data.core.selected,t.id),a.length&&a.attr("aria-selected",!1).children(".jstree-anchor").removeClass("jstree-clicked"),this.trigger("deselect_node",{node:t,selected:this._data.core.selected,event:i}),n||this.trigger("changed",{action:"deselect_node",node:t,selected:this._data.core.selected,event:i}))},select_all:function(t){var n,i,r=this._data.core.selected.concat([]);for(this._data.core.selected=this._model.data[e.jstree.root].children_d.concat(),n=0,i=this._data.core.selected.length;n<i;n++)this._model.data[this._data.core.selected[n]]&&(this._model.data[this._data.core.selected[n]].state.selected=!0);this.redraw(!0),this.trigger("select_all",{selected:this._data.core.selected}),t||this.trigger("changed",{action:"select_all",selected:this._data.core.selected,old_selection:r})},deselect_all:function(e){var t,n,i=this._data.core.selected.concat([]);for(t=0,n=this._data.core.selected.length;t<n;t++)this._model.data[this._data.core.selected[t]]&&(this._model.data[this._data.core.selected[t]].state.selected=!1);this._data.core.selected=[],this.element.find(".jstree-clicked").removeClass("jstree-clicked").parent().attr("aria-selected",!1),this.trigger("deselect_all",{selected:this._data.core.selected,node:i}),e||this.trigger("changed",{action:"deselect_all",selected:this._data.core.selected,old_selection:i})},is_selected:function(t){return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.state.selected},get_selected:function(t){return t?e.map(this._data.core.selected,e.proxy(function(e){return this.get_node(e)},this)):this._data.core.selected.slice()},get_top_selected:function(t){var n,i,r,o,a=this.get_selected(!0),s={};for(n=0,i=a.length;n<i;n++)s[a[n].id]=a[n];for(n=0,i=a.length;n<i;n++)for(r=0,o=a[n].children_d.length;r<o;r++)s[a[n].children_d[r]]&&delete s[a[n].children_d[r]];a=[];for(n in s)s.hasOwnProperty(n)&&a.push(n);return t?e.map(a,e.proxy(function(e){return this.get_node(e)},this)):a},get_bottom_selected:function(t){var n,i,r=this.get_selected(!0),o=[];for(n=0,i=r.length;n<i;n++)r[n].children.length||o.push(r[n].id);return t?e.map(o,e.proxy(function(e){return this.get_node(e)},this)):o},get_state:function(){var t,n={core:{open:[],scroll:{left:this.element.scrollLeft(),top:this.element.scrollTop()},selected:[]}};for(t in this._model.data)this._model.data.hasOwnProperty(t)&&t!==e.jstree.root&&(this._model.data[t].state.opened&&n.core.open.push(t),this._model.data[t].state.selected&&n.core.selected.push(t));return n},set_state:function(n,i){if(n){if(n.core&&n.core.selected&&n.core.initial_selection===t&&(n.core.initial_selection=this._data.core.selected.concat([]).sort().join(",")),n.core){var r,o;if(n.core.open)return e.isArray(n.core.open)&&n.core.open.length?this._load_nodes(n.core.open,function(e){this.open_node(e,!1,0),delete n.core.open,this.set_state(n,i)}):(delete n.core.open,this.set_state(n,i)),!1;if(n.core.scroll)return n.core.scroll&&n.core.scroll.left!==t&&this.element.scrollLeft(n.core.scroll.left),n.core.scroll&&n.core.scroll.top!==t&&this.element.scrollTop(n.core.scroll.top),delete n.core.scroll,this.set_state(n,i),!1;if(n.core.selected)return r=this,n.core.initial_selection!==t&&n.core.initial_selection!==this._data.core.selected.concat([]).sort().join(",")||(this.deselect_all(),e.each(n.core.selected,function(e,t){r.select_node(t,!1,!0)})),delete n.core.initial_selection,delete n.core.selected,this.set_state(n,i),!1;for(o in n)n.hasOwnProperty(o)&&"core"!==o&&-1===e.inArray(o,this.settings.plugins)&&delete n[o];if(e.isEmptyObject(n.core))return delete n.core,this.set_state(n,i),!1}return!e.isEmptyObject(n)||(n=null,i&&i.call(this),this.trigger("set_state"),!1)}return!1},refresh:function(t,n){this._data.core.state=!0===n?{}:this.get_state(),n&&e.isFunction(n)&&(this._data.core.state=n.call(this,this._data.core.state)),this._cnt=0,this._model.data={},this._model.data[e.jstree.root]={id:e.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this._data.core.selected=[],this._data.core.last_clicked=null,this._data.core.focused=null;var i=this.get_container_ul()[0].className;t||(this.element.html("<ul class='"+i+"' role='group'><li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><i class='jstree-icon jstree-ocl'></i><a class='jstree-anchor' href='#'><i class='jstree-icon jstree-themeicon-hidden'></i>"+this.get_string("Loading ...")+"</a></li></ul>"),this.element.attr("aria-activedescendant","j"+this._id+"_loading")),this.load_node(e.jstree.root,function(t,n){n&&(this.get_container_ul()[0].className=i,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.set_state(e.extend(!0,{},this._data.core.state),function(){this.trigger("refresh")})),this._data.core.state=null})},refresh_node:function(t){if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;var n=[],i=[],r=this._data.core.selected.concat([]);i.push(t.id),!0===t.state.opened&&n.push(t.id),this.get_node(t,!0).find(".jstree-open").each(function(){i.push(this.id),n.push(this.id)}),this._load_nodes(i,e.proxy(function(e){this.open_node(n,!1,0),this.select_node(r),this.trigger("refresh_node",{node:t,nodes:e})},this),!1,!0)},set_id:function(t,n){if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;var i,r,o=this._model.data,a=t.id;for(n=n.toString(),o[t.parent].children[e.inArray(t.id,o[t.parent].children)]=n,i=0,r=t.parents.length;i<r;i++)o[t.parents[i]].children_d[e.inArray(t.id,o[t.parents[i]].children_d)]=n;for(i=0,r=t.children.length;i<r;i++)o[t.children[i]].parent=n;for(i=0,r=t.children_d.length;i<r;i++)o[t.children_d[i]].parents[e.inArray(t.id,o[t.children_d[i]].parents)]=n;return-1!==(i=e.inArray(t.id,this._data.core.selected))&&(this._data.core.selected[i]=n),(i=this.get_node(t.id,!0))&&(i.attr("id",n),this.element.attr("aria-activedescendant")===t.id&&this.element.attr("aria-activedescendant",n)),delete o[t.id],t.id=n,t.li_attr.id=n,o[n]=t,this.trigger("set_id",{node:t,new:t.id,old:a}),!0},get_text:function(t){return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.text},set_text:function(t,n){var i,r;if(e.isArray(t)){for(i=0,r=(t=t.slice()).length;i<r;i++)this.set_text(t[i],n);return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(t.text=n,this.get_node(t,!0).length&&this.redraw_node(t.id),this.trigger("set_text",{obj:t,text:n}),!0)},get_json:function(t,n,i){if(!(t=this.get_node(t||e.jstree.root)))return!1;n&&n.flat&&!i&&(i=[]);var r,o,a={id:t.id,text:t.text,icon:this.get_icon(t),li_attr:e.extend(!0,{},t.li_attr),a_attr:e.extend(!0,{},t.a_attr),state:{},data:(!n||!n.no_data)&&e.extend(!0,e.isArray(t.data)?[]:{},t.data)};if(n&&n.flat?a.parent=t.parent:a.children=[],n&&n.no_state)delete a.state;else for(r in t.state)t.state.hasOwnProperty(r)&&(a.state[r]=t.state[r]);if(n&&n.no_li_attr&&delete a.li_attr,n&&n.no_a_attr&&delete a.a_attr,n&&n.no_id&&(delete a.id,a.li_attr&&a.li_attr.id&&delete a.li_attr.id,a.a_attr&&a.a_attr.id&&delete a.a_attr.id),n&&n.flat&&t.id!==e.jstree.root&&i.push(a),!n||!n.no_children)for(r=0,o=t.children.length;r<o;r++)n&&n.flat?this.get_json(t.children[r],n,i):a.children.push(this.get_json(t.children[r],n));return n&&n.flat?i:t.id===e.jstree.root?a.children:a},create_node:function(n,i,r,o,a){if(null===n&&(n=e.jstree.root),!(n=this.get_node(n)))return!1;if(!(r=r===t?"last":r).toString().match(/^(before|after)$/)&&!a&&!this.is_loaded(n))return this.load_node(n,function(){this.create_node(n,i,r,o,!0)});i||(i={text:this.get_string("New node")}),(i="string"==typeof i?{text:i}:e.extend(!0,{},i)).text===t&&(i.text=this.get_string("New node"));var s,l,c,u;switch(n.id===e.jstree.root&&("before"===r&&(r="first"),"after"===r&&(r="last")),r){case"before":s=this.get_node(n.parent),r=e.inArray(n.id,s.children),n=s;break;case"after":s=this.get_node(n.parent),r=e.inArray(n.id,s.children)+1,n=s;break;case"inside":case"first":r=0;break;case"last":r=n.children.length;break;default:r||(r=0)}if(r>n.children.length&&(r=n.children.length),i.id||(i.id=!0),!this.check("create_node",i,n,r))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(!0===i.id&&delete i.id,!(i=this._parse_model_from_json(i,n.id,n.parents.concat())))return!1;for(s=this.get_node(i),(l=[]).push(i),l=l.concat(s.children_d),this.trigger("model",{nodes:l,parent:n.id}),n.children_d=n.children_d.concat(l),c=0,u=n.parents.length;c<u;c++)this._model.data[n.parents[c]].children_d=this._model.data[n.parents[c]].children_d.concat(l);for(i=s,s=[],c=0,u=n.children.length;c<u;c++)s[c>=r?c+1:c]=n.children[c];return s[r]=i.id,n.children=s,this.redraw_node(n,!0),this.trigger("create_node",{node:this.get_node(i),parent:n.id,position:r}),o&&o.call(this,this.get_node(i)),i.id},rename_node:function(t,n){var i,r,o;if(e.isArray(t)){for(i=0,r=(t=t.slice()).length;i<r;i++)this.rename_node(t[i],n);return!0}return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&(o=t.text,this.check("rename_node",t,this.get_parent(t),n)?(this.set_text(t,n),this.trigger("rename_node",{node:t,text:n,old:o}),!0):(this.settings.core.error.call(this,this._data.core.last_error),!1))},delete_node:function(t){var n,i,r,o,a,s,l,c,u,d,h,p;if(e.isArray(t)){for(n=0,i=(t=t.slice()).length;n<i;n++)this.delete_node(t[n]);return!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;if(r=this.get_node(t.parent),o=e.inArray(t.id,r.children),d=!1,!this.check("delete_node",t,r,o))return this.settings.core.error.call(this,this._data.core.last_error),!1;for(-1!==o&&(r.children=e.vakata.array_remove(r.children,o)),(a=t.children_d.concat([])).push(t.id),s=0,l=t.parents.length;s<l;s++)this._model.data[t.parents[s]].children_d=e.vakata.array_filter(this._model.data[t.parents[s]].children_d,function(t){return-1===e.inArray(t,a)});for(c=0,u=a.length;c<u;c++)if(this._model.data[a[c]].state.selected){d=!0;break}for(d&&(this._data.core.selected=e.vakata.array_filter(this._data.core.selected,function(t){return-1===e.inArray(t,a)})),this.trigger("delete_node",{node:t,parent:r.id}),d&&this.trigger("changed",{action:"delete_node",node:t,selected:this._data.core.selected,parent:r.id}),c=0,u=a.length;c<u;c++)delete this._model.data[a[c]];return-1!==e.inArray(this._data.core.focused,a)&&(this._data.core.focused=null,h=this.element[0].scrollTop,p=this.element[0].scrollLeft,r.id===e.jstree.root?this._model.data[e.jstree.root].children[0]&&this.get_node(this._model.data[e.jstree.root].children[0],!0).children(".jstree-anchor").focus():this.get_node(r,!0).children(".jstree-anchor").focus(),this.element[0].scrollTop=h,this.element[0].scrollLeft=p),this.redraw_node(r,!0),!0},check:function(t,n,i,r,o){n=n&&n.id?n:this.get_node(n),i=i&&i.id?i:this.get_node(i);var a=t.match(/^move_node|copy_node|create_node$/i)?i:n,s=this.settings.core.check_callback;return"move_node"!==t&&"copy_node"!==t||o&&o.is_multi||n.id!==i.id&&("move_node"!==t||e.inArray(n.id,i.children)!==r)&&-1===e.inArray(i.id,n.children_d)?(a&&a.data&&(a=a.data),a&&a.functions&&(!1===a.functions[t]||!0===a.functions[t])?(!1===a.functions[t]&&(this._data.core.last_error={error:"check",plugin:"core",id:"core_02",reason:"Node data prevents function: "+t,data:JSON.stringify({chk:t,pos:r,obj:!(!n||!n.id)&&n.id,par:!(!i||!i.id)&&i.id})}),a.functions[t]):!(!1===s||e.isFunction(s)&&!1===s.call(this,t,n,i,r,o)||s&&!1===s[t])||(this._data.core.last_error={error:"check",plugin:"core",id:"core_03",reason:"User config for core.check_callback prevents function: "+t,data:JSON.stringify({chk:t,pos:r,obj:!(!n||!n.id)&&n.id,par:!(!i||!i.id)&&i.id})},!1)):(this._data.core.last_error={error:"check",plugin:"core",id:"core_01",reason:"Moving parent inside child",data:JSON.stringify({chk:t,pos:r,obj:!(!n||!n.id)&&n.id,par:!(!i||!i.id)&&i.id})},!1)},last_error:function(){return this._data.core.last_error},move_node:function(n,i,r,o,a,s,l){var c,u,d,h,p,f,m,g,v,b,y,_,w,A;if(i=this.get_node(i),r=r===t?0:r,!i)return!1;if(!r.toString().match(/^(before|after)$/)&&!a&&!this.is_loaded(i))return this.load_node(i,function(){this.move_node(n,i,r,o,!0,!1,l)});if(e.isArray(n)){if(1!==n.length){for(c=0,u=n.length;c<u;c++)(v=this.move_node(n[c],i,r,o,a,!1,l))&&(i=v,r="after");return this.redraw(),!0}n=n[0]}if(!(n=n&&n.id?n:this.get_node(n))||n.id===e.jstree.root)return!1;if(d=(n.parent||e.jstree.root).toString(),p=r.toString().match(/^(before|after)$/)&&i.id!==e.jstree.root?this.get_node(i.parent):i,f=l||(this._model.data[n.id]?this:e.jstree.reference(n.id)),m=!f||!f._id||this._id!==f._id,h=f&&f._id&&d&&f._model.data[d]&&f._model.data[d].children?e.inArray(n.id,f._model.data[d].children):-1,f&&f._id&&(n=f._model.data[n.id]),m)return!!(v=this.copy_node(n,i,r,o,a,!1,l))&&(f&&f.delete_node(n),v);switch(i.id===e.jstree.root&&("before"===r&&(r="first"),"after"===r&&(r="last")),r){case"before":r=e.inArray(i.id,p.children);break;case"after":r=e.inArray(i.id,p.children)+1;break;case"inside":case"first":r=0;break;case"last":r=p.children.length;break;default:r||(r=0)}if(r>p.children.length&&(r=p.children.length),!this.check("move_node",n,p,r,{core:!0,origin:l,is_multi:f&&f._id&&f._id!==this._id,is_foreign:!f||!f._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(n.parent===p.id){for(g=p.children.concat(),-1!==(v=e.inArray(n.id,g))&&(g=e.vakata.array_remove(g,v),r>v&&r--),v=[],b=0,y=g.length;b<y;b++)v[b>=r?b+1:b]=g[b];v[r]=n.id,p.children=v,this._node_changed(p.id),this.redraw(p.id===e.jstree.root)}else{for((v=n.children_d.concat()).push(n.id),b=0,y=n.parents.length;b<y;b++){for(g=[],_=0,w=(A=f._model.data[n.parents[b]].children_d).length;_<w;_++)-1===e.inArray(A[_],v)&&g.push(A[_]);f._model.data[n.parents[b]].children_d=g}for(f._model.data[d].children=e.vakata.array_remove_item(f._model.data[d].children,n.id),b=0,y=p.parents.length;b<y;b++)this._model.data[p.parents[b]].children_d=this._model.data[p.parents[b]].children_d.concat(v);for(g=[],b=0,y=p.children.length;b<y;b++)g[b>=r?b+1:b]=p.children[b];for(g[r]=n.id,p.children=g,p.children_d.push(n.id),p.children_d=p.children_d.concat(n.children_d),n.parent=p.id,(v=p.parents.concat()).unshift(p.id),A=n.parents.length,n.parents=v,v=v.concat(),b=0,y=n.children_d.length;b<y;b++)this._model.data[n.children_d[b]].parents=this._model.data[n.children_d[b]].parents.slice(0,-1*A),Array.prototype.push.apply(this._model.data[n.children_d[b]].parents,v);d!==e.jstree.root&&p.id!==e.jstree.root||(this._model.force_full_redraw=!0),this._model.force_full_redraw||(this._node_changed(d),this._node_changed(p.id)),s||this.redraw()}return o&&o.call(this,n,p,r),this.trigger("move_node",{node:n,parent:p.id,position:r,old_parent:d,old_position:h,is_multi:f&&f._id&&f._id!==this._id,is_foreign:!f||!f._id,old_instance:f,new_instance:this}),n.id},copy_node:function(n,i,r,o,a,s,l){var c,u,d,h,p,f,m,g,v,b;if(i=this.get_node(i),r=r===t?0:r,!i)return!1;if(!r.toString().match(/^(before|after)$/)&&!a&&!this.is_loaded(i))return this.load_node(i,function(){this.copy_node(n,i,r,o,!0,!1,l)});if(e.isArray(n)){if(1!==n.length){for(c=0,u=n.length;c<u;c++)(h=this.copy_node(n[c],i,r,o,a,!0,l))&&(i=h,r="after");return this.redraw(),!0}n=n[0]}if(!(n=n&&n.id?n:this.get_node(n))||n.id===e.jstree.root)return!1;switch(g=(n.parent||e.jstree.root).toString(),v=r.toString().match(/^(before|after)$/)&&i.id!==e.jstree.root?this.get_node(i.parent):i,b=l||(this._model.data[n.id]?this:e.jstree.reference(n.id)),!b||!b._id||this._id!==b._id,b&&b._id&&(n=b._model.data[n.id]),i.id===e.jstree.root&&("before"===r&&(r="first"),"after"===r&&(r="last")),r){case"before":r=e.inArray(i.id,v.children);break;case"after":r=e.inArray(i.id,v.children)+1;break;case"inside":case"first":r=0;break;case"last":r=v.children.length;break;default:r||(r=0)}if(r>v.children.length&&(r=v.children.length),!this.check("copy_node",n,v,r,{core:!0,origin:l,is_multi:b&&b._id&&b._id!==this._id,is_foreign:!b||!b._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(!(m=b?b.get_json(n,{no_id:!0,no_data:!0,no_state:!0}):n))return!1;if(!0===m.id&&delete m.id,!(m=this._parse_model_from_json(m,v.id,v.parents.concat())))return!1;for(h=this.get_node(m),n&&n.state&&!1===n.state.loaded&&(h.state.loaded=!1),(d=[]).push(m),d=d.concat(h.children_d),this.trigger("model",{nodes:d,parent:v.id}),p=0,f=v.parents.length;p<f;p++)this._model.data[v.parents[p]].children_d=this._model.data[v.parents[p]].children_d.concat(d);for(d=[],p=0,f=v.children.length;p<f;p++)d[p>=r?p+1:p]=v.children[p];return d[r]=h.id,v.children=d,v.children_d.push(h.id),v.children_d=v.children_d.concat(h.children_d),v.id===e.jstree.root&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||this._node_changed(v.id),s||this.redraw(v.id===e.jstree.root),o&&o.call(this,h,v,r),this.trigger("copy_node",{node:h,original:n,parent:v.id,position:r,old_parent:g,old_position:b&&b._id&&g&&b._model.data[g]&&b._model.data[g].children?e.inArray(n.id,b._model.data[g].children):-1,is_multi:b&&b._id&&b._id!==this._id,is_foreign:!b||!b._id,old_instance:b,new_instance:this}),h.id},cut:function(t){if(t||(t=this._data.core.selected.concat()),e.isArray(t)||(t=[t]),!t.length)return!1;var n,a,s,l=[];for(a=0,s=t.length;a<s;a++)(n=this.get_node(t[a]))&&n.id&&n.id!==e.jstree.root&&l.push(n);if(!l.length)return!1;i=l,o=this,r="move_node",this.trigger("cut",{node:t})},copy:function(t){if(t||(t=this._data.core.selected.concat()),e.isArray(t)||(t=[t]),!t.length)return!1;var n,a,s,l=[];for(a=0,s=t.length;a<s;a++)(n=this.get_node(t[a]))&&n.id&&n.id!==e.jstree.root&&l.push(n);if(!l.length)return!1;i=l,o=this,r="copy_node",this.trigger("copy",{node:t})},get_buffer:function(){return{mode:r,node:i,inst:o}},can_paste:function(){return!1!==r&&!1!==i},paste:function(e,t){if(!((e=this.get_node(e))&&r&&r.match(/^(copy_node|move_node)$/)&&i))return!1;this[r](i,e,t,!1,!1,!1,o)&&this.trigger("paste",{parent:e.id,node:i,mode:r}),i=!1,r=!1,o=!1},clear_buffer:function(){i=!1,r=!1,o=!1,this.trigger("clear_buffer")},edit:function(t,n,i){var r,o,a,s,c,u,d,h,p,f=!1;return!!(t=this.get_node(t))&&(this.check("edit",t,this.get_parent(t))?(p=t,n="string"==typeof n?n:t.text,this.set_text(t,""),t=this._open_to(t),p.text=n,r=this._data.core.rtl,o=this.element.width(),this._data.core.focused=p.id,a=t.children(".jstree-anchor").focus(),s=e("<span>"),c=n,u=e("<div />",{css:{position:"absolute",top:"-200px",left:r?"0px":"-1000px",visibility:"hidden"}}).appendTo("body"),d=e("<input />",{value:c,class:"jstree-rename-input",css:{padding:"0",border:"1px solid silver","box-sizing":"border-box",display:"inline-block",height:this._data.core.li_height+"px",lineHeight:this._data.core.li_height+"px",width:"150px"},blur:e.proxy(function(n){n.stopImmediatePropagation(),n.preventDefault();var r,o=s.children(".jstree-rename-input").val(),l=this.settings.core.force_text;""===o&&(o=c),u.remove(),s.replaceWith(a),s.remove(),c=l?c:e("<div></div>").append(e.parseHTML(c)).html(),this.set_text(t,c),(r=!!this.rename_node(t,l?e("<div></div>").text(o).text():e("<div></div>").append(e.parseHTML(o)).html()))||this.set_text(t,c),this._data.core.focused=p.id,setTimeout(e.proxy(function(){var e=this.get_node(p.id,!0);e.length&&(this._data.core.focused=p.id,e.children(".jstree-anchor").focus())},this),0),i&&i.call(this,p,r,f),d=null},this),keydown:function(e){var t=e.which;27===t&&(f=!0,this.value=c),27!==t&&13!==t&&37!==t&&38!==t&&39!==t&&40!==t&&32!==t||e.stopImmediatePropagation(),27!==t&&13!==t||(e.preventDefault(),this.blur())},click:function(e){e.stopImmediatePropagation()},mousedown:function(e){e.stopImmediatePropagation()},keyup:function(e){d.width(Math.min(u.text("pW"+this.value).width(),o))},keypress:function(e){if(13===e.which)return!1}}),h={fontFamily:a.css("fontFamily")||"",fontSize:a.css("fontSize")||"",fontWeight:a.css("fontWeight")||"",fontStyle:a.css("fontStyle")||"",fontStretch:a.css("fontStretch")||"",fontVariant:a.css("fontVariant")||"",letterSpacing:a.css("letterSpacing")||"",wordSpacing:a.css("wordSpacing")||""},s.attr("class",a.attr("class")).append(a.contents().clone()).append(d),a.replaceWith(s),u.css(h),d.css(h).width(Math.min(u.text("pW"+d[0].value).width(),o))[0].select(),void e(l).one("mousedown.jstree touchstart.jstree dnd_start.vakata",function(t){d&&t.target!==d&&e(d).blur()})):(this.settings.core.error.call(this,this._data.core.last_error),!1))},set_theme:function(t,n){if(!t)return!1;if(!0===n){var i=this.settings.core.themes.dir;i||(i=e.jstree.path+"/themes"),n=i+"/"+t+"/style.css"}n&&-1===e.inArray(n,a)&&(e("head").append('<link rel="stylesheet" href="'+n+'" type="text/css" />'),a.push(n)),this._data.core.themes.name&&this.element.removeClass("jstree-"+this._data.core.themes.name),this._data.core.themes.name=t,this.element.addClass("jstree-"+t),this.element[this.settings.core.themes.responsive?"addClass":"removeClass"]("jstree-"+t+"-responsive"),this.trigger("set_theme",{theme:t})},get_theme:function(){return this._data.core.themes.name},set_theme_variant:function(e){this._data.core.themes.variant&&this.element.removeClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant),this._data.core.themes.variant=e,e&&this.element.addClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant)},get_theme_variant:function(){return this._data.core.themes.variant},show_stripes:function(){this._data.core.themes.stripes=!0,this.get_container_ul().addClass("jstree-striped"),this.trigger("show_stripes")},hide_stripes:function(){this._data.core.themes.stripes=!1,this.get_container_ul().removeClass("jstree-striped"),this.trigger("hide_stripes")},toggle_stripes:function(){this._data.core.themes.stripes?this.hide_stripes():this.show_stripes()},show_dots:function(){this._data.core.themes.dots=!0,this.get_container_ul().removeClass("jstree-no-dots"),this.trigger("show_dots")},hide_dots:function(){this._data.core.themes.dots=!1,this.get_container_ul().addClass("jstree-no-dots"),this.trigger("hide_dots")},toggle_dots:function(){this._data.core.themes.dots?this.hide_dots():this.show_dots()},show_icons:function(){this._data.core.themes.icons=!0,this.get_container_ul().removeClass("jstree-no-icons"),this.trigger("show_icons")},hide_icons:function(){this._data.core.themes.icons=!1,this.get_container_ul().addClass("jstree-no-icons"),this.trigger("hide_icons")},toggle_icons:function(){this._data.core.themes.icons?this.hide_icons():this.show_icons()},show_ellipsis:function(){this._data.core.themes.ellipsis=!0,this.get_container_ul().addClass("jstree-ellipsis"),this.trigger("show_ellipsis")},hide_ellipsis:function(){this._data.core.themes.ellipsis=!1,this.get_container_ul().removeClass("jstree-ellipsis"),this.trigger("hide_ellipsis")},toggle_ellipsis:function(){this._data.core.themes.ellipsis?this.hide_ellipsis():this.show_ellipsis()},set_icon:function(n,i){var r,o,a,s;if(e.isArray(n)){for(r=0,o=(n=n.slice()).length;r<o;r++)this.set_icon(n[r],i);return!0}return!(!(n=this.get_node(n))||n.id===e.jstree.root)&&(s=n.icon,n.icon=!0===i||null===i||i===t||""===i||i,a=this.get_node(n,!0).children(".jstree-anchor").children(".jstree-themeicon"),!1===i?this.hide_icon(n):!0===i||null===i||i===t||""===i?(a.removeClass("jstree-themeicon-custom "+s).css("background","").removeAttr("rel"),!1===s&&this.show_icon(n)):-1===i.indexOf("/")&&-1===i.indexOf(".")?(a.removeClass(s).css("background",""),a.addClass(i+" jstree-themeicon-custom").attr("rel",i),!1===s&&this.show_icon(n)):(a.removeClass(s).css("background",""),a.addClass("jstree-themeicon-custom").css("background","url('"+i+"') center center no-repeat").attr("rel",i),!1===s&&this.show_icon(n)),!0)},get_icon:function(t){return!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.icon},hide_icon:function(t){var n,i;if(e.isArray(t)){for(n=0,i=(t=t.slice()).length;n<i;n++)this.hide_icon(t[n]);return!0}return!(!(t=this.get_node(t))||t===e.jstree.root)&&(t.icon=!1,this.get_node(t,!0).children(".jstree-anchor").children(".jstree-themeicon").addClass("jstree-themeicon-hidden"),!0)},show_icon:function(t){var n,i,r;if(e.isArray(t)){for(n=0,i=(t=t.slice()).length;n<i;n++)this.show_icon(t[n]);return!0}return!(!(t=this.get_node(t))||t===e.jstree.root)&&(r=this.get_node(t,!0),t.icon=!r.length||r.children(".jstree-anchor").children(".jstree-themeicon").attr("rel"),t.icon||(t.icon=!0),r.children(".jstree-anchor").children(".jstree-themeicon").removeClass("jstree-themeicon-hidden"),!0)}},e.vakata={},e.vakata.attributes=function(t,n){t=e(t)[0];var i=n?{}:[];return t&&t.attributes&&e.each(t.attributes,function(t,r){-1===e.inArray(r.name.toLowerCase(),["style","contenteditable","hasfocus","tabindex"])&&null!==r.value&&""!==e.trim(r.value)&&(n?i[r.name]=r.value:i.push(r.name))}),i},e.vakata.array_unique=function(e){var n,i,r=[],o={};for(n=0,i=e.length;n<i;n++)o[e[n]]===t&&(r.push(e[n]),o[e[n]]=!0);return r},e.vakata.array_remove=function(e,t){return e.splice(t,1),e},e.vakata.array_remove_item=function(t,n){var i=e.inArray(n,t);return-1!==i?e.vakata.array_remove(t,i):t},e.vakata.array_filter=function(e,t,n,i,r){if(e.filter)return e.filter(t,n);i=[];for(r in e)~~r+""==r+""&&r>=0&&t.call(n,e[r],+r,e)&&i.push(e[r]);return i},e.jstree.plugins.changed=function(e,t){var n=[];this.trigger=function(e,i){var r,o;if(i||(i={}),"changed"===e.replace(".jstree","")){i.changed={selected:[],deselected:[]};var a={};for(r=0,o=n.length;r<o;r++)a[n[r]]=1;for(r=0,o=i.selected.length;r<o;r++)a[i.selected[r]]?a[i.selected[r]]=2:i.changed.selected.push(i.selected[r]);for(r=0,o=n.length;r<o;r++)1===a[n[r]]&&i.changed.deselected.push(n[r]);n=i.selected.slice()}t.trigger.call(this,e,i)},this.refresh=function(e,i){return n=[],t.refresh.apply(this,arguments)}};var c=l.createElement("I");c.className="jstree-icon jstree-checkbox",c.setAttribute("role","presentation"),e.jstree.defaults.checkbox={visible:!0,three_state:!0,whole_node:!0,keep_selected_style:!0,cascade:"",tie_selection:!0,cascade_to_disabled:!0,cascade_to_hidden:!0},e.jstree.plugins.checkbox=function(n,i){this.bind=function(){i.bind.call(this),this._data.checkbox.uto=!1,this._data.checkbox.selected=[],this.settings.checkbox.three_state&&(this.settings.checkbox.cascade="up+down+undetermined"),this.element.on("init.jstree",e.proxy(function(){this._data.checkbox.visible=this.settings.checkbox.visible,this.settings.checkbox.keep_selected_style||this.element.addClass("jstree-checkbox-no-clicked"),this.settings.checkbox.tie_selection&&this.element.addClass("jstree-checkbox-selection")},this)).on("loading.jstree",e.proxy(function(){this[this._data.checkbox.visible?"show_checkboxes":"hide_checkboxes"]()},this)),-1!==this.settings.checkbox.cascade.indexOf("undetermined")&&this.element.on("changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree",e.proxy(function(){this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(e.proxy(this._undetermined,this),50)},this)),this.settings.checkbox.tie_selection||this.element.on("model.jstree",e.proxy(function(e,t){var n,i,r=this._model.data,o=(r[t.parent],t.nodes);for(n=0,i=o.length;n<i;n++)r[o[n]].state.checked=r[o[n]].state.checked||r[o[n]].original&&r[o[n]].original.state&&r[o[n]].original.state.checked,r[o[n]].state.checked&&this._data.checkbox.selected.push(o[n])},this)),-1===this.settings.checkbox.cascade.indexOf("up")&&-1===this.settings.checkbox.cascade.indexOf("down")||this.element.on("model.jstree",e.proxy(function(t,n){var i,r,o,a,s,l,c=this._model.data,u=c[n.parent],d=n.nodes,h=[],p=this.settings.checkbox.cascade,f=this.settings.checkbox.tie_selection;if(-1!==p.indexOf("down"))if(u.state[f?"selected":"checked"]){for(r=0,o=d.length;r<o;r++)c[d[r]].state[f?"selected":"checked"]=!0;this._data[f?"core":"checkbox"].selected=this._data[f?"core":"checkbox"].selected.concat(d)}else for(r=0,o=d.length;r<o;r++)if(c[d[r]].state[f?"selected":"checked"]){for(a=0,s=c[d[r]].children_d.length;a<s;a++)c[c[d[r]].children_d[a]].state[f?"selected":"checked"]=!0;this._data[f?"core":"checkbox"].selected=this._data[f?"core":"checkbox"].selected.concat(c[d[r]].children_d)}if(-1!==p.indexOf("up")){for(r=0,o=u.children_d.length;r<o;r++)c[u.children_d[r]].children.length||h.push(c[u.children_d[r]].parent);for(a=0,s=(h=e.vakata.array_unique(h)).length;a<s;a++)for(u=c[h[a]];u&&u.id!==e.jstree.root;){for(i=0,r=0,o=u.children.length;r<o;r++)i+=c[u.children[r]].state[f?"selected":"checked"];if(i!==o)break;u.state[f?"selected":"checked"]=!0,this._data[f?"core":"checkbox"].selected.push(u.id),(l=this.get_node(u,!0))&&l.length&&l.attr("aria-selected",!0).children(".jstree-anchor").addClass(f?"jstree-clicked":"jstree-checked"),u=this.get_node(u.parent)}}this._data[f?"core":"checkbox"].selected=e.vakata.array_unique(this._data[f?"core":"checkbox"].selected)},this)).on(this.settings.checkbox.tie_selection?"select_node.jstree":"check_node.jstree",e.proxy(function(t,n){var i,r,o,a,s=n.node,l=this._model.data,c=this.get_node(s.parent),u=this.settings.checkbox.cascade,d=this.settings.checkbox.tie_selection,h={},p=this._data[d?"core":"checkbox"].selected;for(i=0,r=p.length;i<r;i++)h[p[i]]=!0;if(-1!==u.indexOf("down")){var f=this._cascade_new_checked_state(s.id,!0);s.children_d.concat(s.id).forEach(function(e){f.indexOf(e)>-1?h[e]=!0:delete h[e]})}if(-1!==u.indexOf("up"))for(;c&&c.id!==e.jstree.root;){for(o=0,i=0,r=c.children.length;i<r;i++)o+=l[c.children[i]].state[d?"selected":"checked"];if(o!==r)break;c.state[d?"selected":"checked"]=!0,h[c.id]=!0,(a=this.get_node(c,!0))&&a.length&&a.attr("aria-selected",!0).children(".jstree-anchor").addClass(d?"jstree-clicked":"jstree-checked"),c=this.get_node(c.parent)}p=[];for(i in h)h.hasOwnProperty(i)&&p.push(i);this._data[d?"core":"checkbox"].selected=p},this)).on(this.settings.checkbox.tie_selection?"deselect_all.jstree":"uncheck_all.jstree",e.proxy(function(t,n){var i,r,o,a=this.get_node(e.jstree.root),s=this._model.data;for(i=0,r=a.children_d.length;i<r;i++)(o=s[a.children_d[i]])&&o.original&&o.original.state&&o.original.state.undetermined&&(o.original.state.undetermined=!1)},this)).on(this.settings.checkbox.tie_selection?"deselect_node.jstree":"uncheck_node.jstree",e.proxy(function(e,t){var n,i,r,o=t.node,a=(this.get_node(o,!0),this.settings.checkbox.cascade),s=this.settings.checkbox.tie_selection,l=this._data[s?"core":"checkbox"].selected,c=o.children_d.concat(o.id);if(-1!==a.indexOf("down")){var u=this._cascade_new_checked_state(o.id,!1);l=l.filter(function(e){return-1===c.indexOf(e)||u.indexOf(e)>-1})}if(-1!==a.indexOf("up")&&-1===l.indexOf(o.id)){for(n=0,i=o.parents.length;n<i;n++)(r=this._model.data[o.parents[n]]).state[s?"selected":"checked"]=!1,r&&r.original&&r.original.state&&r.original.state.undetermined&&(r.original.state.undetermined=!1),(r=this.get_node(o.parents[n],!0))&&r.length&&r.attr("aria-selected",!1).children(".jstree-anchor").removeClass(s?"jstree-clicked":"jstree-checked");l=l.filter(function(e){return-1===o.parents.indexOf(e)})}this._data[s?"core":"checkbox"].selected=l},this)),-1!==this.settings.checkbox.cascade.indexOf("up")&&this.element.on("delete_node.jstree",e.proxy(function(t,n){for(var i,r,o,a,s=this.get_node(n.parent),l=this._model.data,c=this.settings.checkbox.tie_selection;s&&s.id!==e.jstree.root&&!s.state[c?"selected":"checked"];){for(o=0,i=0,r=s.children.length;i<r;i++)o+=l[s.children[i]].state[c?"selected":"checked"];if(!(r>0&&o===r))break;s.state[c?"selected":"checked"]=!0,this._data[c?"core":"checkbox"].selected.push(s.id),(a=this.get_node(s,!0))&&a.length&&a.attr("aria-selected",!0).children(".jstree-anchor").addClass(c?"jstree-clicked":"jstree-checked"),s=this.get_node(s.parent)}},this)).on("move_node.jstree",e.proxy(function(t,n){var i,r,o,a,s,l=n.is_multi,c=n.old_parent,u=this.get_node(n.parent),d=this._model.data,h=this.settings.checkbox.tie_selection;if(!l)for(i=this.get_node(c);i&&i.id!==e.jstree.root&&!i.state[h?"selected":"checked"];){for(r=0,o=0,a=i.children.length;o<a;o++)r+=d[i.children[o]].state[h?"selected":"checked"];if(!(a>0&&r===a))break;i.state[h?"selected":"checked"]=!0,this._data[h?"core":"checkbox"].selected.push(i.id),(s=this.get_node(i,!0))&&s.length&&s.attr("aria-selected",!0).children(".jstree-anchor").addClass(h?"jstree-clicked":"jstree-checked"),i=this.get_node(i.parent)}for(i=u;i&&i.id!==e.jstree.root;){for(r=0,o=0,a=i.children.length;o<a;o++)r+=d[i.children[o]].state[h?"selected":"checked"];if(r===a)i.state[h?"selected":"checked"]||(i.state[h?"selected":"checked"]=!0,this._data[h?"core":"checkbox"].selected.push(i.id),(s=this.get_node(i,!0))&&s.length&&s.attr("aria-selected",!0).children(".jstree-anchor").addClass(h?"jstree-clicked":"jstree-checked"));else{if(!i.state[h?"selected":"checked"])break;i.state[h?"selected":"checked"]=!1,this._data[h?"core":"checkbox"].selected=e.vakata.array_remove_item(this._data[h?"core":"checkbox"].selected,i.id),(s=this.get_node(i,!0))&&s.length&&s.attr("aria-selected",!1).children(".jstree-anchor").removeClass(h?"jstree-clicked":"jstree-checked")}i=this.get_node(i.parent)}},this))},this._undetermined=function(){if(null!==this.element){var n,i,r,o,a={},s=this._model.data,l=this.settings.checkbox.tie_selection,c=this._data[l?"core":"checkbox"].selected,u=[],d=this;for(n=0,i=c.length;n<i;n++)if(s[c[n]]&&s[c[n]].parents)for(r=0,o=s[c[n]].parents.length;r<o&&a[s[c[n]].parents[r]]===t;r++)s[c[n]].parents[r]!==e.jstree.root&&(a[s[c[n]].parents[r]]=!0,u.push(s[c[n]].parents[r]));for(this.element.find(".jstree-closed").not(":has(.jstree-children)").each(function(){var l,c=d.get_node(this);if(c)if(c.state.loaded){for(n=0,i=c.children_d.length;n<i;n++)if(!(l=s[c.children_d[n]]).state.loaded&&l.original&&l.original.state&&l.original.state.undetermined&&!0===l.original.state.undetermined)for(a[l.id]===t&&l.id!==e.jstree.root&&(a[l.id]=!0,u.push(l.id)),r=0,o=l.parents.length;r<o;r++)a[l.parents[r]]===t&&l.parents[r]!==e.jstree.root&&(a[l.parents[r]]=!0,u.push(l.parents[r]))}else if(c.original&&c.original.state&&c.original.state.undetermined&&!0===c.original.state.undetermined)for(a[c.id]===t&&c.id!==e.jstree.root&&(a[c.id]=!0,u.push(c.id)),r=0,o=c.parents.length;r<o;r++)a[c.parents[r]]===t&&c.parents[r]!==e.jstree.root&&(a[c.parents[r]]=!0,u.push(c.parents[r]))}),this.element.find(".jstree-undetermined").removeClass("jstree-undetermined"),n=0,i=u.length;n<i;n++)s[u[n]].state[l?"selected":"checked"]||(c=this.get_node(u[n],!0))&&c.length&&c.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-undetermined")}},this.redraw_node=function(t,n,r,o){if(t=i.redraw_node.apply(this,arguments)){var a,s,l=null,u=null;for(a=0,s=t.childNodes.length;a<s;a++)if(t.childNodes[a]&&t.childNodes[a].className&&-1!==t.childNodes[a].className.indexOf("jstree-anchor")){l=t.childNodes[a];break}l&&(!this.settings.checkbox.tie_selection&&this._model.data[t.id].state.checked&&(l.className+=" jstree-checked"),u=c.cloneNode(!1),this._model.data[t.id].state.checkbox_disabled&&(u.className+=" jstree-checkbox-disabled"),l.insertBefore(u,l.childNodes[0]))}return r||-1===this.settings.checkbox.cascade.indexOf("undetermined")||(this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(e.proxy(this._undetermined,this),50)),t},this.show_checkboxes=function(){this._data.core.themes.checkboxes=!0,this.get_container_ul().removeClass("jstree-no-checkboxes")},this.hide_checkboxes=function(){this._data.core.themes.checkboxes=!1,this.get_container_ul().addClass("jstree-no-checkboxes")},this.toggle_checkboxes=function(){this._data.core.themes.checkboxes?this.hide_checkboxes():this.show_checkboxes()},this.is_undetermined=function(t){t=this.get_node(t);var n,i,r=this.settings.checkbox.cascade,o=this.settings.checkbox.tie_selection,a=this._data[o?"core":"checkbox"].selected,s=this._model.data;if(!t||!0===t.state[o?"selected":"checked"]||-1===r.indexOf("undetermined")||-1===r.indexOf("down")&&-1===r.indexOf("up"))return!1;if(!t.state.loaded&&!0===t.original.state.undetermined)return!0;for(n=0,i=t.children_d.length;n<i;n++)if(-1!==e.inArray(t.children_d[n],a)||!s[t.children_d[n]].state.loaded&&s[t.children_d[n]].original.state.undetermined)return!0;return!1},this.disable_checkbox=function(t){var n,i,r;if(e.isArray(t)){for(n=0,i=(t=t.slice()).length;n<i;n++)this.disable_checkbox(t[n]);return!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;r=this.get_node(t,!0),t.state.checkbox_disabled||(t.state.checkbox_disabled=!0,r&&r.length&&r.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-checkbox-disabled"),this.trigger("disable_checkbox",{node:t}))},this.enable_checkbox=function(t){var n,i,r;if(e.isArray(t)){for(n=0,i=(t=t.slice()).length;n<i;n++)this.enable_checkbox(t[n]);return!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;r=this.get_node(t,!0),t.state.checkbox_disabled&&(t.state.checkbox_disabled=!1,r&&r.length&&r.children(".jstree-anchor").children(".jstree-checkbox").removeClass("jstree-checkbox-disabled"),this.trigger("enable_checkbox",{node:t}))},this.activate_node=function(t,n){return!e(n.target).hasClass("jstree-checkbox-disabled")&&(this.settings.checkbox.tie_selection&&(this.settings.checkbox.whole_node||e(n.target).hasClass("jstree-checkbox"))&&(n.ctrlKey=!0),this.settings.checkbox.tie_selection||!this.settings.checkbox.whole_node&&!e(n.target).hasClass("jstree-checkbox")?i.activate_node.call(this,t,n):!this.is_disabled(t)&&(this.is_checked(t)?this.uncheck_node(t,n):this.check_node(t,n),void this.trigger("activate_node",{node:this.get_node(t)})))},this._cascade_new_checked_state=function(e,t){var n=this,i=this.settings.checkbox.tie_selection,r=this._model.data[e],o=[],a=[];if(!this.settings.checkbox.cascade_to_disabled&&r.state.disabled||!this.settings.checkbox.cascade_to_hidden&&r.state.hidden){var s=this.get_checked_descendants(e);r.state[i?"selected":"checked"]&&s.push(r.id),o=o.concat(s)}else{r.children&&r.children.forEach(function(e){var i=n._cascade_new_checked_state(e,t);o=o.concat(i),i.indexOf(e)>-1&&a.push(e)});var l=n.get_node(r,!0),c=a.length>0&&a.length<r.children.length;r.original&&r.original.state&&r.original.state.undetermined&&(r.original.state.undetermined=c),c?(r.state[i?"selected":"checked"]=!1,l.attr("aria-selected",!1).children(".jstree-anchor").removeClass(i?"jstree-clicked":"jstree-checked")):t&&a.length===r.children.length?(r.state[i?"selected":"checked"]=t,o.push(r.id),l.attr("aria-selected",!0).children(".jstree-anchor").addClass(i?"jstree-clicked":"jstree-checked")):(r.state[i?"selected":"checked"]=!1,l.attr("aria-selected",!1).children(".jstree-anchor").removeClass(i?"jstree-clicked":"jstree-checked"))}return o},this.get_checked_descendants=function(e){var t=this,n=t.settings.checkbox.tie_selection;return t._model.data[e].children_d.filter(function(e){return t._model.data[e].state[n?"selected":"checked"]})},this.check_node=function(t,n){if(this.settings.checkbox.tie_selection)return this.select_node(t,!1,!0,n);var i,r,o;if(e.isArray(t)){for(r=0,o=(t=t.slice()).length;r<o;r++)this.check_node(t[r],n);return!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;i=this.get_node(t,!0),t.state.checked||(t.state.checked=!0,this._data.checkbox.selected.push(t.id),i&&i.length&&i.children(".jstree-anchor").addClass("jstree-checked"),this.trigger("check_node",{node:t,selected:this._data.checkbox.selected,event:n}))},this.uncheck_node=function(t,n){if(this.settings.checkbox.tie_selection)return this.deselect_node(t,!1,n);var i,r,o;if(e.isArray(t)){for(i=0,r=(t=t.slice()).length;i<r;i++)this.uncheck_node(t[i],n);return!0}if(!(t=this.get_node(t))||t.id===e.jstree.root)return!1;o=this.get_node(t,!0),t.state.checked&&(t.state.checked=!1,this._data.checkbox.selected=e.vakata.array_remove_item(this._data.checkbox.selected,t.id),o.length&&o.children(".jstree-anchor").removeClass("jstree-checked"),this.trigger("uncheck_node",{node:t,selected:this._data.checkbox.selected,event:n}))},this.check_all=function(){if(this.settings.checkbox.tie_selection)return this.select_all();var t,n;this._data.checkbox.selected.concat([]);for(this._data.checkbox.selected=this._model.data[e.jstree.root].children_d.concat(),t=0,n=this._data.checkbox.selected.length;t<n;t++)this._model.data[this._data.checkbox.selected[t]]&&(this._model.data[this._data.checkbox.selected[t]].state.checked=!0);this.redraw(!0),this.trigger("check_all",{selected:this._data.checkbox.selected})},this.uncheck_all=function(){if(this.settings.checkbox.tie_selection)return this.deselect_all();var e,t,n=this._data.checkbox.selected.concat([]);for(e=0,t=this._data.checkbox.selected.length;e<t;e++)this._model.data[this._data.checkbox.selected[e]]&&(this._model.data[this._data.checkbox.selected[e]].state.checked=!1);this._data.checkbox.selected=[],this.element.find(".jstree-checked").removeClass("jstree-checked"),this.trigger("uncheck_all",{selected:this._data.checkbox.selected,node:n})},this.is_checked=function(t){return this.settings.checkbox.tie_selection?this.is_selected(t):!(!(t=this.get_node(t))||t.id===e.jstree.root)&&t.state.checked},this.get_checked=function(t){return this.settings.checkbox.tie_selection?this.get_selected(t):t?e.map(this._data.checkbox.selected,e.proxy(function(e){return this.get_node(e)},this)):this._data.checkbox.selected},this.get_top_checked=function(t){if(this.settings.checkbox.tie_selection)return this.get_top_selected(t);var n,i,r,o,a=this.get_checked(!0),s={};for(n=0,i=a.length;n<i;n++)s[a[n].id]=a[n];for(n=0,i=a.length;n<i;n++)for(r=0,o=a[n].children_d.length;r<o;r++)s[a[n].children_d[r]]&&delete s[a[n].children_d[r]];a=[];for(n in s)s.hasOwnProperty(n)&&a.push(n);return t?e.map(a,e.proxy(function(e){return this.get_node(e)},this)):a},this.get_bottom_checked=function(t){if(this.settings.checkbox.tie_selection)return this.get_bottom_selected(t);var n,i,r=this.get_checked(!0),o=[];for(n=0,i=r.length;n<i;n++)r[n].children.length||o.push(r[n].id);return t?e.map(o,e.proxy(function(e){return this.get_node(e)},this)):o},this.load_node=function(t,n){var r,o,a;if(!e.isArray(t)&&!this.settings.checkbox.tie_selection&&(a=this.get_node(t))&&a.state.loaded)for(r=0,o=a.children_d.length;r<o;r++)this._model.data[a.children_d[r]].state.checked&&(!0,this._data.checkbox.selected=e.vakata.array_remove_item(this._data.checkbox.selected,a.children_d[r]));return i.load_node.apply(this,arguments)},this.get_state=function(){var e=i.get_state.apply(this,arguments);return this.settings.checkbox.tie_selection?e:(e.checkbox=this._data.checkbox.selected.slice(),e)},this.set_state=function(t,n){var r=i.set_state.apply(this,arguments);if(r&&t.checkbox){if(!this.settings.checkbox.tie_selection){this.uncheck_all();var o=this;e.each(t.checkbox,function(e,t){o.check_node(t)})}return delete t.checkbox,this.set_state(t,n),!1}return r},this.refresh=function(e,t){return this.settings.checkbox.tie_selection||(this._data.checkbox.selected=[]),i.refresh.apply(this,arguments)}},e.jstree.defaults.conditionalselect=function(){return!0},e.jstree.plugins.conditionalselect=function(e,t){this.activate_node=function(e,n){this.settings.conditionalselect.call(this,this.get_node(e),n)&&t.activate_node.call(this,e,n)}},e.jstree.defaults.contextmenu={select_node:!0,show_at_node:!0,items:function(t,n){return{create:{separator_before:!1,separator_after:!0,_disabled:!1,label:"Create",action:function(t){var n=e.jstree.reference(t.reference),i=n.get_node(t.reference);n.create_node(i,{},"last",function(e){try{n.edit(e)}catch(t){setTimeout(function(){n.edit(e)},0)}})}},rename:{separator_before:!1,separator_after:!1,_disabled:!1,label:"Rename",action:function(t){var n=e.jstree.reference(t.reference),i=n.get_node(t.reference);n.edit(i)}},remove:{separator_before:!1,icon:!1,separator_after:!1,_disabled:!1,label:"Delete",action:function(t){var n=e.jstree.reference(t.reference),i=n.get_node(t.reference);n.is_selected(i)?n.delete_node(n.get_selected()):n.delete_node(i)}},ccp:{separator_before:!0,icon:!1,separator_after:!1,label:"Edit",action:!1,submenu:{cut:{separator_before:!1,separator_after:!1,label:"Cut",action:function(t){var n=e.jstree.reference(t.reference),i=n.get_node(t.reference);n.is_selected(i)?n.cut(n.get_top_selected()):n.cut(i)}},copy:{separator_before:!1,icon:!1,separator_after:!1,label:"Copy",action:function(t){var n=e.jstree.reference(t.reference),i=n.get_node(t.reference);n.is_selected(i)?n.copy(n.get_top_selected()):n.copy(i)}},paste:{separator_before:!1,icon:!1,_disabled:function(t){return!e.jstree.reference(t.reference).can_paste()},separator_after:!1,label:"Paste",action:function(t){var n=e.jstree.reference(t.reference),i=n.get_node(t.reference);n.paste(i)}}}}}}},e.jstree.plugins.contextmenu=function(n,i){this.bind=function(){i.bind.call(this);var t,n,r=0,o=null;this.element.on("init.jstree loading.jstree ready.jstree",e.proxy(function(){this.get_container_ul().addClass("jstree-contextmenu")},this)).on("contextmenu.jstree",".jstree-anchor",e.proxy(function(e,t){"input"!==e.target.tagName.toLowerCase()&&(e.preventDefault(),r=e.ctrlKey?+new Date:0,(t||o)&&(r=+new Date+1e4),o&&clearTimeout(o),this.is_loading(e.currentTarget)||this.show_contextmenu(e.currentTarget,e.pageX,e.pageY,e))},this)).on("click.jstree",".jstree-anchor",e.proxy(function(t){this._data.contextmenu.visible&&(!r||+new Date-r>250)&&e.vakata.context.hide(),r=0},this)).on("touchstart.jstree",".jstree-anchor",function(i){i.originalEvent&&i.originalEvent.changedTouches&&i.originalEvent.changedTouches[0]&&(t=i.originalEvent.changedTouches[0].clientX,n=i.originalEvent.changedTouches[0].clientY,o=setTimeout(function(){e(i.currentTarget).trigger("contextmenu",!0)},750))}).on("touchmove.vakata.jstree",function(e){o&&e.originalEvent&&e.originalEvent.changedTouches&&e.originalEvent.changedTouches[0]&&(Math.abs(t-e.originalEvent.changedTouches[0].clientX)>50||Math.abs(n-e.originalEvent.changedTouches[0].clientY)>50)&&clearTimeout(o)}).on("touchend.vakata.jstree",function(e){o&&clearTimeout(o)}),e(l).on("context_hide.vakata.jstree",e.proxy(function(t,n){this._data.contextmenu.visible=!1,e(n.reference).removeClass("jstree-context")},this))},this.teardown=function(){this._data.contextmenu.visible&&e.vakata.context.hide(),i.teardown.call(this)},this.show_contextmenu=function(n,i,r,o){if(!(n=this.get_node(n))||n.id===e.jstree.root)return!1;var a=this.settings.contextmenu,s=this.get_node(n,!0).children(".jstree-anchor"),l=!1,c=!1;(a.show_at_node||i===t||r===t)&&(l=s.offset(),i=l.left,r=l.top+this._data.core.li_height),this.settings.contextmenu.select_node&&!this.is_selected(n)&&this.activate_node(n,o),c=a.items,e.isFunction(c)&&(c=c.call(this,n,e.proxy(function(e){this._show_contextmenu(n,i,r,e)},this))),e.isPlainObject(c)&&this._show_contextmenu(n,i,r,c)},this._show_contextmenu=function(t,n,i,r){var o=this.get_node(t,!0).children(".jstree-anchor");e(l).one("context_show.vakata.jstree",e.proxy(function(t,n){var i="jstree-contextmenu jstree-"+this.get_theme()+"-contextmenu";e(n.element).addClass(i),o.addClass("jstree-context")},this)),this._data.contextmenu.visible=!0,e.vakata.context.show(o,{x:n,y:i},r),this.trigger("show_contextmenu",{node:t,x:n,y:i})}},function(e){var t=!1,n={element:!1,reference:!1,position_x:0,position_y:0,items:[],html:"",is_visible:!1};e.vakata.context={settings:{hide_onmouseleave:0,icons:!0},_trigger:function(t){e(l).triggerHandler("context_"+t+".vakata",{reference:n.reference,element:n.element,position:{x:n.position_x,y:n.position_y}})},_execute:function(t){return!(!(t=n.items[t])||t._disabled&&(!e.isFunction(t._disabled)||t._disabled({item:t,reference:n.reference,element:n.element}))||!t.action)&&t.action.call(null,{item:t,reference:n.reference,element:n.element,position:{x:n.position_x,y:n.position_y}})},_parse:function(t,i){if(!t)return!1;i||(n.html="",n.items=[]);var r,o="",a=!1;return i&&(o+="<ul>"),e.each(t,function(t,i){if(!i)return!0;n.items.push(i),!a&&i.separator_before&&(o+="<li class='vakata-context-separator'><a href='#' "+(e.vakata.context.settings.icons?"":'style="margin-left:0px;"')+">&#160;</a></li>"),a=!1,o+="<li class='"+(i._class||"")+(!0===i._disabled||e.isFunction(i._disabled)&&i._disabled({item:i,reference:n.reference,element:n.element})?" vakata-contextmenu-disabled ":"")+"' "+(i.shortcut?" data-shortcut='"+i.shortcut+"' ":"")+">",o+="<a href='#' rel='"+(n.items.length-1)+"' "+(i.title?"title='"+i.title+"'":"")+">",e.vakata.context.settings.icons&&(o+="<i ",i.icon&&(-1!==i.icon.indexOf("/")||-1!==i.icon.indexOf(".")?o+=" style='background:url(\""+i.icon+"\") center center no-repeat' ":o+=" class='"+i.icon+"' "),o+="></i><span class='vakata-contextmenu-sep'>&#160;</span>"),o+=(e.isFunction(i.label)?i.label({item:t,reference:n.reference,element:n.element}):i.label)+(i.shortcut?' <span class="vakata-contextmenu-shortcut vakata-contextmenu-shortcut-'+i.shortcut+'">'+(i.shortcut_label||"")+"</span>":"")+"</a>",i.submenu&&(r=e.vakata.context._parse(i.submenu,!0))&&(o+=r),o+="</li>",i.separator_after&&(o+="<li class='vakata-context-separator'><a href='#' "+(e.vakata.context.settings.icons?"":'style="margin-left:0px;"')+">&#160;</a></li>",a=!0)}),o=o.replace(/<li class\='vakata-context-separator'\><\/li\>$/,""),i&&(o+="</ul>"),i||(n.html=o,e.vakata.context._trigger("parse")),o.length>10&&o},_show_submenu:function(n){if((n=e(n)).length&&n.children("ul").length){var i=n.children("ul"),r=n.offset().left,o=r+n.outerWidth(),a=n.offset().top,s=i.width(),l=i.height(),c=e(window).width()+e(window).scrollLeft(),u=e(window).height()+e(window).scrollTop();t?n[o-(s+10+n.outerWidth())<0?"addClass":"removeClass"]("vakata-context-left"):n[o+s>c&&r>c-o?"addClass":"removeClass"]("vakata-context-right"),a+l+10>u&&i.css("bottom","-1px"),n.hasClass("vakata-context-right")?r<s&&i.css("margin-right",r-s):c-o<s&&i.css("margin-left",c-o-s),i.show()}},show:function(i,r,o){var a,s,l,c,u,d,h,p;switch(n.element&&n.element.length&&n.element.width(""),!0){case!r&&!i:return!1;case!!r&&!!i:n.reference=i,n.position_x=r.x,n.position_y=r.y;break;case!r&&!!i:n.reference=i,a=i.offset(),n.position_x=a.left+i.outerHeight(),n.position_y=a.top;break;case!!r&&!i:n.position_x=r.x,n.position_y=r.y}i&&!o&&e(i).data("vakata_contextmenu")&&(o=e(i).data("vakata_contextmenu")),e.vakata.context._parse(o)&&n.element.html(n.html),n.items.length&&(n.element.appendTo("body"),s=n.element,l=n.position_x,c=n.position_y,u=s.width(),d=s.height(),h=e(window).width()+e(window).scrollLeft(),p=e(window).height()+e(window).scrollTop(),t&&(l-=s.outerWidth()-e(i).outerWidth())<e(window).scrollLeft()+20&&(l=e(window).scrollLeft()+20),l+u+20>h&&(l=h-(u+20)),c+d+20>p&&(c=p-(d+20)),n.element.css({left:l,top:c}).show().find("a").first().focus().parent().addClass("vakata-context-hover"),n.is_visible=!0,e.vakata.context._trigger("show"))},hide:function(){n.is_visible&&(n.element.hide().find("ul").hide().end().find(":focus").blur().end().detach(),n.is_visible=!1,e.vakata.context._trigger("hide"))}},e(function(){t="rtl"===e("body").css("direction");var i=!1;n.element=e("<ul class='vakata-context'></ul>"),n.element.on("mouseenter","li",function(t){t.stopImmediatePropagation(),e.contains(this,t.relatedTarget)||(i&&clearTimeout(i),n.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(),e(this).siblings().find("ul").hide().end().end().parentsUntil(".vakata-context","li").addBack().addClass("vakata-context-hover"),e.vakata.context._show_submenu(this))}).on("mouseleave","li",function(t){e.contains(this,t.relatedTarget)||e(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover")}).on("mouseleave",function(t){e(this).find(".vakata-context-hover").removeClass("vakata-context-hover"),e.vakata.context.settings.hide_onmouseleave&&(i=setTimeout(function(t){return function(){e.vakata.context.hide()}}(),e.vakata.context.settings.hide_onmouseleave))}).on("click","a",function(t){t.preventDefault(),e(this).blur().parent().hasClass("vakata-context-disabled")||!1===e.vakata.context._execute(e(this).attr("rel"))||e.vakata.context.hide()}).on("keydown","a",function(t){var i=null;switch(t.which){case 13:case 32:t.type="click",t.preventDefault(),e(t.currentTarget).trigger(t);break;case 37:n.is_visible&&(n.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children("a").focus(),t.stopImmediatePropagation(),t.preventDefault());break;case 38:n.is_visible&&((i=n.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first()).length||(i=n.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last()),i.addClass("vakata-context-hover").children("a").focus(),t.stopImmediatePropagation(),t.preventDefault());break;case 39:n.is_visible&&(n.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children("a").focus(),t.stopImmediatePropagation(),t.preventDefault());break;case 40:n.is_visible&&((i=n.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first()).length||(i=n.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first()),i.addClass("vakata-context-hover").children("a").focus(),t.stopImmediatePropagation(),t.preventDefault());break;case 27:e.vakata.context.hide(),t.preventDefault()}}).on("keydown",function(e){e.preventDefault();var t=n.element.find(".vakata-contextmenu-shortcut-"+e.which).parent();t.parent().not(".vakata-context-disabled")&&t.click()}),e(l).on("mousedown.vakata.jstree",function(t){n.is_visible&&n.element[0]!==t.target&&!e.contains(n.element[0],t.target)&&e.vakata.context.hide()}).on("context_show.vakata.jstree",function(e,i){n.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"),t&&n.element.addClass("vakata-context-rtl").css("direction","rtl"),n.element.find("ul").hide().end()})})}(e),e.jstree.defaults.dnd={copy:!0,open_timeout:500,is_draggable:!0,check_while_dragging:!0,always_copy:!1,inside_pos:0,drag_selection:!0,touch:!0,large_drop_target:!1,large_drag_target:!1,use_html5:!1};var u,d;e.jstree.plugins.dnd=function(t,n){this.init=function(e,t){n.init.call(this,e,t),this.settings.dnd.use_html5=this.settings.dnd.use_html5&&"draggable"in l.createElement("span")},this.bind=function(){n.bind.call(this),this.element.on(this.settings.dnd.use_html5?"dragstart.jstree":"mousedown.jstree touchstart.jstree",this.settings.dnd.large_drag_target?".jstree-node":".jstree-anchor",e.proxy(function(t){if(this.settings.dnd.large_drag_target&&e(t.target).closest(".jstree-node")[0]!==t.currentTarget)return!0;if("touchstart"===t.type&&(!this.settings.dnd.touch||"selected"===this.settings.dnd.touch&&!e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").hasClass("jstree-clicked")))return!0;var n=this.get_node(t.target),i=this.is_selected(n)&&this.settings.dnd.drag_selection?this.get_top_selected().length:1,r=i>1?i+" "+this.get_string("nodes"):this.get_text(t.currentTarget);if(this.settings.core.force_text&&(r=e.vakata.html.escape(r)),n&&n.id&&n.id!==e.jstree.root&&(1===t.which||"touchstart"===t.type||"dragstart"===t.type)&&(!0===this.settings.dnd.is_draggable||e.isFunction(this.settings.dnd.is_draggable)&&this.settings.dnd.is_draggable.call(this,i>1?this.get_top_selected(!0):[n],t))){if(u={jstree:!0,origin:this,obj:this.get_node(n,!0),nodes:i>1?this.get_top_selected():[n.id]},d=t.currentTarget,!this.settings.dnd.use_html5)return this.element.trigger("mousedown.jstree"),e.vakata.dnd.start(t,u,'<div id="jstree-dnd" class="jstree-'+this.get_theme()+" jstree-"+this.get_theme()+"-"+this.get_theme_variant()+" "+(this.settings.core.themes.responsive?" jstree-dnd-responsive":"")+'"><i class="jstree-icon jstree-er"></i>'+r+'<ins class="jstree-copy" style="display:none;">+</ins></div>');e.vakata.dnd._trigger("start",t,{helper:e(),element:d,data:u})}},this)),this.settings.dnd.use_html5&&this.element.on("dragover.jstree",function(t){return t.preventDefault(),e.vakata.dnd._trigger("move",t,{helper:e(),element:d,data:u}),!1}).on("drop.jstree",e.proxy(function(t){return t.preventDefault(),e.vakata.dnd._trigger("stop",t,{helper:e(),element:d,data:u}),!1},this))},this.redraw_node=function(e,t,i,r){if((e=n.redraw_node.apply(this,arguments))&&this.settings.dnd.use_html5)if(this.settings.dnd.large_drag_target)e.setAttribute("draggable",!0);else{var o,a,s=null;for(o=0,a=e.childNodes.length;o<a;o++)if(e.childNodes[o]&&e.childNodes[o].className&&-1!==e.childNodes[o].className.indexOf("jstree-anchor")){s=e.childNodes[o];break}s&&s.setAttribute("draggable",!0)}return e}},e(function(){var n=!1,i=!1,r=!1,o=!1,a=e('<div id="jstree-marker">&#160;</div>').hide();e(l).on("dnd_start.vakata.jstree",function(e,t){n=!1,r=!1,t&&t.data&&t.data.jstree&&a.appendTo("body")}).on("dnd_move.vakata.jstree",function(s,l){var c=l.event.target!==r.target;if(o&&(l.event&&"dragover"===l.event.type&&!c||clearTimeout(o)),l&&l.data&&l.data.jstree&&(!l.event.target.id||"jstree-marker"!==l.event.target.id)){r=l.event;var u,d,h,p,f,m,g,v,b,y,_,w,A,C,x,S,E=e.jstree.reference(l.event.target),T=!1,D=!1,I=!1;if(E&&E._data&&E._data.dnd)if(a.attr("class","jstree-"+E.get_theme()+(E.settings.core.themes.responsive?" jstree-dnd-responsive":"")),x=l.data.origin&&(l.data.origin.settings.dnd.always_copy||l.data.origin.settings.dnd.copy&&(l.event.metaKey||l.event.ctrlKey)),l.helper.children().attr("class","jstree-"+E.get_theme()+" jstree-"+E.get_theme()+"-"+E.get_theme_variant()+" "+(E.settings.core.themes.responsive?" jstree-dnd-responsive":"")).find(".jstree-copy").first()[x?"show":"hide"](),l.event.target!==E.element[0]&&l.event.target!==E.get_container_ul()[0]||0!==E.get_container_ul().children().length){if((T=E.settings.dnd.large_drop_target?e(l.event.target).closest(".jstree-node").children(".jstree-anchor"):e(l.event.target).closest(".jstree-anchor"))&&T.length&&T.parent().is(".jstree-closed, .jstree-open, .jstree-leaf")&&(D=T.offset(),I=(l.event.pageY!==t?l.event.pageY:l.event.originalEvent.pageY)-D.top,h=T.outerHeight(),m=I<h/3?["b","i","a"]:I>h-h/3?["a","i","b"]:I>h/2?["i","a","b"]:["i","b","a"],e.each(m,function(t,r){switch(r){case"b":u=D.left-6,d=D.top,p=E.get_parent(T),f=T.parent().index();break;case"i":A=E.settings.dnd.inside_pos,C=E.get_node(T.parent()),u=D.left-2,d=D.top+h/2+1,p=C.id,f="first"===A?0:"last"===A?C.children.length:Math.min(A,C.children.length);break;case"a":u=D.left-6,d=D.top+h,p=E.get_parent(T),f=T.parent().index()+1}for(g=!0,v=0,b=l.data.nodes.length;v<b;v++)if(y=l.data.origin&&(l.data.origin.settings.dnd.always_copy||l.data.origin.settings.dnd.copy&&(l.event.metaKey||l.event.ctrlKey))?"copy_node":"move_node",_=f,"move_node"===y&&"a"===r&&l.data.origin&&l.data.origin===E&&p===E.get_parent(l.data.nodes[v])&&(w=E.get_node(p),_>e.inArray(l.data.nodes[v],w.children)&&(_-=1)),!(g=g&&(E&&E.settings&&E.settings.dnd&&!1===E.settings.dnd.check_while_dragging||E.check(y,l.data.origin&&l.data.origin!==E?l.data.origin.get_node(l.data.nodes[v]):l.data.nodes[v],p,_,{dnd:!0,ref:E.get_node(T.parent()),pos:r,origin:l.data.origin,is_multi:l.data.origin&&l.data.origin!==E,is_foreign:!l.data.origin})))){E&&E.last_error&&(i=E.last_error());break}if("i"===r&&T.parent().is(".jstree-closed")&&E.settings.dnd.open_timeout&&(l.event&&"dragover"===l.event.type&&!c||(o&&clearTimeout(o),o=setTimeout(function(e,t){return function(){e.open_node(t)}}(E,T),E.settings.dnd.open_timeout))),g)return(S=E.get_node(p,!0)).hasClass(".jstree-dnd-parent")||(e(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),S.addClass("jstree-dnd-parent")),n={ins:E,par:p,pos:"i"!==r||"last"!==A||0!==f||E.is_loaded(C)?f:"last"},a.css({left:u+"px",top:d+"px"}).show(),l.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),l.event.originalEvent&&l.event.originalEvent.dataTransfer&&(l.event.originalEvent.dataTransfer.dropEffect=x?"copy":"move"),i={},m=!0,!1}),!0===m))return}else{for(g=!0,v=0,b=l.data.nodes.length;v<b&&(g=g&&E.check(l.data.origin&&(l.data.origin.settings.dnd.always_copy||l.data.origin.settings.dnd.copy&&(l.event.metaKey||l.event.ctrlKey))?"copy_node":"move_node",l.data.origin&&l.data.origin!==E?l.data.origin.get_node(l.data.nodes[v]):l.data.nodes[v],e.jstree.root,"last",{dnd:!0,ref:E.get_node(e.jstree.root),pos:"i",origin:l.data.origin,is_multi:l.data.origin&&l.data.origin!==E,is_foreign:!l.data.origin}));v++);if(g)return n={ins:E,par:e.jstree.root,pos:"last"},a.hide(),l.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),void(l.event.originalEvent&&l.event.originalEvent.dataTransfer&&(l.event.originalEvent.dataTransfer.dropEffect=x?"copy":"move"))}e(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),n=!1,l.helper.find(".jstree-icon").removeClass("jstree-ok").addClass("jstree-er"),l.event.originalEvent&&l.event.originalEvent.dataTransfer&&(l.event.originalEvent.dataTransfer.dropEffect="none"),a.hide()}}).on("dnd_scroll.vakata.jstree",function(e,t){t&&t.data&&t.data.jstree&&(a.hide(),n=!1,r=!1,t.helper.find(".jstree-icon").first().removeClass("jstree-ok").addClass("jstree-er"))}).on("dnd_stop.vakata.jstree",function(t,s){if(e(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),o&&clearTimeout(o),s&&s.data&&s.data.jstree){a.hide().detach();var l,c,u=[];if(n){for(l=0,c=s.data.nodes.length;l<c;l++)u[l]=s.data.origin?s.data.origin.get_node(s.data.nodes[l]):s.data.nodes[l];n.ins[s.data.origin&&(s.data.origin.settings.dnd.always_copy||s.data.origin.settings.dnd.copy&&(s.event.metaKey||s.event.ctrlKey))?"copy_node":"move_node"](u,n.par,n.pos,!1,!1,!1,s.data.origin)}else(l=e(s.event.target).closest(".jstree")).length&&i&&i.error&&"check"===i.error&&(l=l.jstree(!0))&&l.settings.core.error.call(this,i);r=!1,n=!1}}).on("keyup.jstree keydown.jstree",function(t,s){(s=e.vakata.dnd._get())&&s.data&&s.data.jstree&&("keyup"===t.type&&27===t.which?(o&&clearTimeout(o),n=!1,i=!1,r=!1,o=!1,a.hide().detach(),e.vakata.dnd._clean()):(s.helper.find(".jstree-copy").first()[s.data.origin&&(s.data.origin.settings.dnd.always_copy||s.data.origin.settings.dnd.copy&&(t.metaKey||t.ctrlKey))?"show":"hide"](),r&&(r.metaKey=t.metaKey,r.ctrlKey=t.ctrlKey,e.vakata.dnd._trigger("move",r))))})}),function(e){e.vakata.html={div:e("<div />"),escape:function(t){return e.vakata.html.div.text(t).html()},strip:function(t){return e.vakata.html.div.empty().append(e.parseHTML(t)).text()}};var n={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1};e.vakata.dnd={settings:{scroll_speed:10,scroll_proximity:20,helper_left:5,helper_top:10,threshold:5,threshold_touch:50},_trigger:function(n,i,r){r===t&&(r=e.vakata.dnd._get()),r.event=i,e(l).triggerHandler("dnd_"+n+".vakata",r)},_get:function(){return{data:n.data,element:n.element,helper:n.helper}},_clean:function(){n.helper&&n.helper.remove(),n.scroll_i&&(clearInterval(n.scroll_i),n.scroll_i=!1),n={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1},e(l).off("mousemove.vakata.jstree touchmove.vakata.jstree",e.vakata.dnd.drag),e(l).off("mouseup.vakata.jstree touchend.vakata.jstree",e.vakata.dnd.stop)},_scroll:function(t){if(!n.scroll_e||!n.scroll_l&&!n.scroll_t)return n.scroll_i&&(clearInterval(n.scroll_i),n.scroll_i=!1),!1;if(!n.scroll_i)return n.scroll_i=setInterval(e.vakata.dnd._scroll,100),!1;if(!0===t)return!1;var i=n.scroll_e.scrollTop(),r=n.scroll_e.scrollLeft();n.scroll_e.scrollTop(i+n.scroll_t*e.vakata.dnd.settings.scroll_speed),n.scroll_e.scrollLeft(r+n.scroll_l*e.vakata.dnd.settings.scroll_speed),i===n.scroll_e.scrollTop()&&r===n.scroll_e.scrollLeft()||e.vakata.dnd._trigger("scroll",n.scroll_e)},start:function(t,i,r){"touchstart"===t.type&&t.originalEvent&&t.originalEvent.changedTouches&&t.originalEvent.changedTouches[0]&&(t.pageX=t.originalEvent.changedTouches[0].pageX,t.pageY=t.originalEvent.changedTouches[0].pageY,t.target=l.elementFromPoint(t.originalEvent.changedTouches[0].pageX-window.pageXOffset,t.originalEvent.changedTouches[0].pageY-window.pageYOffset)),n.is_drag&&e.vakata.dnd.stop({});try{t.currentTarget.unselectable="on",t.currentTarget.onselectstart=function(){return!1},t.currentTarget.style&&(t.currentTarget.style.touchAction="none",t.currentTarget.style.msTouchAction="none",t.currentTarget.style.MozUserSelect="none")}catch(e){}return n.init_x=t.pageX,n.init_y=t.pageY,n.data=i,n.is_down=!0,n.element=t.currentTarget,n.target=t.target,n.is_touch="touchstart"===t.type,!1!==r&&(n.helper=e("<div id='vakata-dnd'></div>").html(r).css({display:"block",margin:"0",padding:"0",position:"absolute",top:"-2000px",lineHeight:"16px",zIndex:"10000"})),e(l).on("mousemove.vakata.jstree touchmove.vakata.jstree",e.vakata.dnd.drag),e(l).on("mouseup.vakata.jstree touchend.vakata.jstree",e.vakata.dnd.stop),!1},drag:function(t){if("touchmove"===t.type&&t.originalEvent&&t.originalEvent.changedTouches&&t.originalEvent.changedTouches[0]&&(t.pageX=t.originalEvent.changedTouches[0].pageX,t.pageY=t.originalEvent.changedTouches[0].pageY,t.target=l.elementFromPoint(t.originalEvent.changedTouches[0].pageX-window.pageXOffset,t.originalEvent.changedTouches[0].pageY-window.pageYOffset)),n.is_down){if(!n.is_drag){if(!(Math.abs(t.pageX-n.init_x)>(n.is_touch?e.vakata.dnd.settings.threshold_touch:e.vakata.dnd.settings.threshold)||Math.abs(t.pageY-n.init_y)>(n.is_touch?e.vakata.dnd.settings.threshold_touch:e.vakata.dnd.settings.threshold)))return;n.helper&&(n.helper.appendTo("body"),n.helper_w=n.helper.outerWidth()),n.is_drag=!0,e(n.target).one("click.vakata",!1),e.vakata.dnd._trigger("start",t)}var i=!1,r=!1,o=!1,a=!1,s=!1,c=!1,u=!1,d=!1,h=!1,p=!1;return n.scroll_t=0,n.scroll_l=0,n.scroll_e=!1,e(e(t.target).parentsUntil("body").addBack().get().reverse()).filter(function(){return/^auto|scroll$/.test(e(this).css("overflow"))&&(this.scrollHeight>this.offsetHeight||this.scrollWidth>this.offsetWidth)}).each(function(){var i=e(this),r=i.offset();if(this.scrollHeight>this.offsetHeight&&(r.top+i.height()-t.pageY<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_t=1),t.pageY-r.top<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_t=-1)),this.scrollWidth>this.offsetWidth&&(r.left+i.width()-t.pageX<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_l=1),t.pageX-r.left<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_l=-1)),n.scroll_t||n.scroll_l)return n.scroll_e=e(this),!1}),n.scroll_e||(i=e(l),r=e(window),o=i.height(),a=r.height(),s=i.width(),c=r.width(),u=i.scrollTop(),d=i.scrollLeft(),o>a&&t.pageY-u<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_t=-1),o>a&&a-(t.pageY-u)<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_t=1),s>c&&t.pageX-d<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_l=-1),s>c&&c-(t.pageX-d)<e.vakata.dnd.settings.scroll_proximity&&(n.scroll_l=1),(n.scroll_t||n.scroll_l)&&(n.scroll_e=i)),n.scroll_e&&e.vakata.dnd._scroll(!0),n.helper&&(h=parseInt(t.pageY+e.vakata.dnd.settings.helper_top,10),p=parseInt(t.pageX+e.vakata.dnd.settings.helper_left,10),o&&h+25>o&&(h=o-50),s&&p+n.helper_w>s&&(p=s-(n.helper_w+2)),n.helper.css({left:p+"px",top:h+"px"})),e.vakata.dnd._trigger("move",t),!1}},stop:function(t){if("touchend"===t.type&&t.originalEvent&&t.originalEvent.changedTouches&&t.originalEvent.changedTouches[0]&&(t.pageX=t.originalEvent.changedTouches[0].pageX,t.pageY=t.originalEvent.changedTouches[0].pageY,t.target=l.elementFromPoint(t.originalEvent.changedTouches[0].pageX-window.pageXOffset,t.originalEvent.changedTouches[0].pageY-window.pageYOffset)),n.is_drag)t.target!==n.target&&e(n.target).off("click.vakata"),e.vakata.dnd._trigger("stop",t);else if("touchend"===t.type&&t.target===n.target){var i=setTimeout(function(){e(t.target).click()},100);e(t.target).one("click",function(){i&&clearTimeout(i)})}return e.vakata.dnd._clean(),!1}}}(e),e.jstree.defaults.massload=null,e.jstree.plugins.massload=function(t,n){this.init=function(e,t){this._data.massload={},n.init.call(this,e,t)},this._load_nodes=function(t,i,r,o){var a,s,l,c=this.settings.massload,u=(JSON.stringify(t),[]),d=this._model.data;if(!r){for(a=0,s=t.length;a<s;a++)d[t[a]]&&(d[t[a]].state.loaded||d[t[a]].state.failed)&&!o||(u.push(t[a]),(l=this.get_node(t[a],!0))&&l.length&&l.addClass("jstree-loading").attr("aria-busy",!0));if(this._data.massload={},u.length){if(e.isFunction(c))return c.call(this,u,e.proxy(function(e){var a,s;if(e)for(a in e)e.hasOwnProperty(a)&&(this._data.massload[a]=e[a]);for(a=0,s=t.length;a<s;a++)(l=this.get_node(t[a],!0))&&l.length&&l.removeClass("jstree-loading").attr("aria-busy",!1);n._load_nodes.call(this,t,i,r,o)},this));if("object"==typeof c&&c&&c.url)return c=e.extend(!0,{},c),e.isFunction(c.url)&&(c.url=c.url.call(this,u)),e.isFunction(c.data)&&(c.data=c.data.call(this,u)),e.ajax(c).done(e.proxy(function(e,a,s){var c,u;if(e)for(c in e)e.hasOwnProperty(c)&&(this._data.massload[c]=e[c]);for(c=0,u=t.length;c<u;c++)(l=this.get_node(t[c],!0))&&l.length&&l.removeClass("jstree-loading").attr("aria-busy",!1);n._load_nodes.call(this,t,i,r,o)},this)).fail(e.proxy(function(e){n._load_nodes.call(this,t,i,r,o)},this))}}return n._load_nodes.call(this,t,i,r,o)},this._load_node=function(t,i){var r,o=this._data.massload[t.id],a=null;return o?(a=this["string"==typeof o?"_append_html_data":"_append_json_data"](t,"string"==typeof o?e(e.parseHTML(o)).filter(function(){return 3!==this.nodeType}):o,function(e){i.call(this,e)}),(r=this.get_node(t.id,!0))&&r.length&&r.removeClass("jstree-loading").attr("aria-busy",!1),delete this._data.massload[t.id],a):n._load_node.call(this,t,i)}},e.jstree.defaults.search={ajax:!1,fuzzy:!1,case_sensitive:!1,show_only_matches:!1,show_only_matches_children:!1,close_opened_onclear:!0,search_leaves_only:!1,search_callback:!1},e.jstree.plugins.search=function(n,i){this.bind=function(){i.bind.call(this),this._data.search.str="",this._data.search.dom=e(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=!1,this._data.search.smc=!1,this._data.search.hdn=[],this.element.on("search.jstree",e.proxy(function(t,n){if(this._data.search.som&&n.res.length){var i,r,o,a,s=this._model.data,l=[];for(i=0,r=n.res.length;i<r;i++)if(s[n.res[i]]&&!s[n.res[i]].state.hidden&&(l.push(n.res[i]),l=l.concat(s[n.res[i]].parents),this._data.search.smc))for(o=0,a=s[n.res[i]].children_d.length;o<a;o++)s[s[n.res[i]].children_d[o]]&&!s[s[n.res[i]].children_d[o]].state.hidden&&l.push(s[n.res[i]].children_d[o]);l=e.vakata.array_remove_item(e.vakata.array_unique(l),e.jstree.root),this._data.search.hdn=this.hide_all(!0),this.show_node(l,!0),this.redraw(!0)}},this)).on("clear_search.jstree",e.proxy(function(e,t){this._data.search.som&&t.res.length&&(this.show_node(this._data.search.hdn,!0),this.redraw(!0))},this))},this.search=function(n,i,r,o,a,s){if(!1===n||""===e.trim(n.toString()))return this.clear_search();o=this.get_node(o),o=o&&o.id?o.id:null,n=n.toString();var l,c,u=this.settings.search,d=!!u.ajax&&u.ajax,h=this._model.data,p=null,f=[],m=[];if(this._data.search.res.length&&!a&&this.clear_search(),r===t&&(r=u.show_only_matches),s===t&&(s=u.show_only_matches_children),!i&&!1!==d)return e.isFunction(d)?d.call(this,n,e.proxy(function(t){t&&t.d&&(t=t.d),this._load_nodes(e.isArray(t)?e.vakata.array_unique(t):[],function(){this.search(n,!0,r,o,a,s)})},this),o):((d=e.extend({},d)).data||(d.data={}),d.data.str=n,o&&(d.data.inside=o),this._data.search.lastRequest&&this._data.search.lastRequest.abort(),this._data.search.lastRequest=e.ajax(d).fail(e.proxy(function(){this._data.core.last_error={error:"ajax",plugin:"search",id:"search_01",reason:"Could not load search parents",data:JSON.stringify(d)},this.settings.core.error.call(this,this._data.core.last_error)},this)).done(e.proxy(function(t){t&&t.d&&(t=t.d),this._load_nodes(e.isArray(t)?e.vakata.array_unique(t):[],function(){this.search(n,!0,r,o,a,s)})},this)),this._data.search.lastRequest);if(a||(this._data.search.str=n,this._data.search.dom=e(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=r,this._data.search.smc=s),p=new e.vakata.search(n,!0,{caseSensitive:u.case_sensitive,fuzzy:u.fuzzy}),e.each(h[o||e.jstree.root].children_d,function(e,t){var i=h[t];i.text&&!i.state.hidden&&(!u.search_leaves_only||i.state.loaded&&0===i.children.length)&&(u.search_callback&&u.search_callback.call(this,n,i)||!u.search_callback&&p.search(i.text).isMatch)&&(f.push(t),m=m.concat(i.parents))}),f.length){for(l=0,c=(m=e.vakata.array_unique(m)).length;l<c;l++)m[l]!==e.jstree.root&&h[m[l]]&&!0===this.open_node(m[l],null,0)&&this._data.search.opn.push(m[l]);a?(this._data.search.dom=this._data.search.dom.add(e(this.element[0].querySelectorAll("#"+e.map(f,function(t){return-1!=="0123456789".indexOf(t[0])?"\\3"+t[0]+" "+t.substr(1).replace(e.jstree.idregex,"\\$&"):t.replace(e.jstree.idregex,"\\$&")}).join(", #")))),this._data.search.res=e.vakata.array_unique(this._data.search.res.concat(f))):(this._data.search.dom=e(this.element[0].querySelectorAll("#"+e.map(f,function(t){return-1!=="0123456789".indexOf(t[0])?"\\3"+t[0]+" "+t.substr(1).replace(e.jstree.idregex,"\\$&"):t.replace(e.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.res=f),this._data.search.dom.children(".jstree-anchor").addClass("jstree-search")}this.trigger("search",{nodes:this._data.search.dom,str:n,res:this._data.search.res,show_only_matches:r})},this.clear_search=function(){this.settings.search.close_opened_onclear&&this.close_node(this._data.search.opn,0),this.trigger("clear_search",{nodes:this._data.search.dom,str:this._data.search.str,res:this._data.search.res}),this._data.search.res.length&&(this._data.search.dom=e(this.element[0].querySelectorAll("#"+e.map(this._data.search.res,function(t){return-1!=="0123456789".indexOf(t[0])?"\\3"+t[0]+" "+t.substr(1).replace(e.jstree.idregex,"\\$&"):t.replace(e.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search")),this._data.search.str="",this._data.search.res=[],this._data.search.opn=[],this._data.search.dom=e()},this.redraw_node=function(t,n,r,o){if((t=i.redraw_node.apply(this,arguments))&&-1!==e.inArray(t.id,this._data.search.res)){var a,s,l=null;for(a=0,s=t.childNodes.length;a<s;a++)if(t.childNodes[a]&&t.childNodes[a].className&&-1!==t.childNodes[a].className.indexOf("jstree-anchor")){l=t.childNodes[a];break}l&&(l.className+=" jstree-search")}return t}},function(e){e.vakata.search=function(t,n,i){i=i||{},!1!==(i=e.extend({},e.vakata.search.defaults,i)).fuzzy&&(i.fuzzy=!0),t=i.caseSensitive?t:t.toLowerCase();var r,o,a,s,l=i.location,c=i.distance,u=i.threshold,d=t.length;return d>32&&(i.fuzzy=!1),i.fuzzy&&(r=1<<d-1,o=function(){var e={},n=0;for(n=0;n<d;n++)e[t.charAt(n)]=0;for(n=0;n<d;n++)e[t.charAt(n)]|=1<<d-n-1;return e}(),a=function(e,t){var n=e/d,i=Math.abs(l-t);return c?n+i/c:i?1:n}),s=function(e){if(e=i.caseSensitive?e:e.toLowerCase(),t===e||-1!==e.indexOf(t))return{isMatch:!0,score:0};if(!i.fuzzy)return{isMatch:!1,score:1};var n,s,c,h,p,f,m,g,v,b=e.length,y=u,_=e.indexOf(t,l),w=d+b,A=1,C=[];for(-1!==_&&(y=Math.min(a(0,_),y),-1!==(_=e.lastIndexOf(t,l+d))&&(y=Math.min(a(0,_),y))),_=-1,n=0;n<d;n++){for(c=0,h=w;c<h;)a(n,l+h)<=y?c=h:w=h,h=Math.floor((w-c)/2+c);for(w=h,f=Math.max(1,l-h+1),m=Math.min(l+h,b)+d,(g=new Array(m+2))[m+1]=(1<<n)-1,s=m;s>=f;s--)if(v=o[e.charAt(s-1)],g[s]=0===n?(g[s+1]<<1|1)&v:(g[s+1]<<1|1)&v|(p[s+1]|p[s])<<1|1|p[s+1],g[s]&r&&(A=a(n,s-1))<=y){if(y=A,_=s-1,C.push(_),!(_>l))break;f=Math.max(1,2*l-_)}if(a(n+1,l)>y)break;p=g}return{isMatch:_>=0,score:A}},!0===n?{search:s}:s(n)},e.vakata.search.defaults={location:0,distance:100,threshold:.6,fuzzy:!1,caseSensitive:!1}}(e),e.jstree.defaults.sort=function(e,t){return this.get_text(e)>this.get_text(t)?1:-1},e.jstree.plugins.sort=function(t,n){this.bind=function(){n.bind.call(this),this.element.on("model.jstree",e.proxy(function(e,t){this.sort(t.parent,!0)},this)).on("rename_node.jstree create_node.jstree",e.proxy(function(e,t){this.sort(t.parent||t.node.parent,!1),this.redraw_node(t.parent||t.node.parent,!0)},this)).on("move_node.jstree copy_node.jstree",e.proxy(function(e,t){this.sort(t.parent,!1),this.redraw_node(t.parent,!0)},this))},this.sort=function(t,n){var i,r;if((t=this.get_node(t))&&t.children&&t.children.length&&(t.children.sort(e.proxy(this.settings.sort,this)),n))for(i=0,r=t.children_d.length;i<r;i++)this.sort(t.children_d[i],!1)}};var h=!1;e.jstree.defaults.state={key:"jstree",events:"changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree",ttl:!1,filter:!1},e.jstree.plugins.state=function(t,n){this.bind=function(){n.bind.call(this);var t=e.proxy(function(){this.element.on(this.settings.state.events,e.proxy(function(){h&&clearTimeout(h),h=setTimeout(e.proxy(function(){this.save_state()},this),100)},this)),this.trigger("state_ready")},this);this.element.on("ready.jstree",e.proxy(function(e,n){this.element.one("restore_state.jstree",t),this.restore_state()||t()},this))},this.save_state=function(){var t={state:this.get_state(),ttl:this.settings.state.ttl,sec:+new Date};e.vakata.storage.set(this.settings.state.key,JSON.stringify(t))},this.restore_state=function(){var t=e.vakata.storage.get(this.settings.state.key);if(t)try{t=JSON.parse(t)}catch(e){return!1}return!(t&&t.ttl&&t.sec&&+new Date-t.sec>t.ttl)&&(t&&t.state&&(t=t.state),t&&e.isFunction(this.settings.state.filter)&&(t=this.settings.state.filter.call(this,t)),!!t&&(this.element.one("set_state.jstree",function(n,i){i.instance.trigger("restore_state",{state:e.extend(!0,{},t)})}),this.set_state(t),!0))},this.clear_state=function(){return e.vakata.storage.del(this.settings.state.key)}},function(e,t){e.vakata.storage={set:function(e,t){return window.localStorage.setItem(e,t)},get:function(e){return window.localStorage.getItem(e)},del:function(e){return window.localStorage.removeItem(e)}}}(e),e.jstree.defaults.types={default:{}},e.jstree.defaults.types[e.jstree.root]={},e.jstree.plugins.types=function(n,i){this.init=function(n,r){var o,a;if(r&&r.types&&r.types.default)for(o in r.types)if("default"!==o&&o!==e.jstree.root&&r.types.hasOwnProperty(o))for(a in r.types.default)r.types.default.hasOwnProperty(a)&&r.types[o][a]===t&&(r.types[o][a]=r.types.default[a]);i.init.call(this,n,r),this._model.data[e.jstree.root].type=e.jstree.root},this.refresh=function(t,n){i.refresh.call(this,t,n),this._model.data[e.jstree.root].type=e.jstree.root},this.bind=function(){this.element.on("model.jstree",e.proxy(function(n,i){var r,o,a,s=this._model.data,l=i.nodes,c=this.settings.types,u="default";for(r=0,o=l.length;r<o;r++){if(u="default",s[l[r]].original&&s[l[r]].original.type&&c[s[l[r]].original.type]&&(u=s[l[r]].original.type),s[l[r]].data&&s[l[r]].data.jstree&&s[l[r]].data.jstree.type&&c[s[l[r]].data.jstree.type]&&(u=s[l[r]].data.jstree.type),s[l[r]].type=u,!0===s[l[r]].icon&&c[u].icon!==t&&(s[l[r]].icon=c[u].icon),c[u].li_attr!==t&&"object"==typeof c[u].li_attr)for(a in c[u].li_attr)if(c[u].li_attr.hasOwnProperty(a)){if("id"===a)continue;s[l[r]].li_attr[a]===t?s[l[r]].li_attr[a]=c[u].li_attr[a]:"class"===a&&(s[l[r]].li_attr.class=c[u].li_attr.class+" "+s[l[r]].li_attr.class)}if(c[u].a_attr!==t&&"object"==typeof c[u].a_attr)for(a in c[u].a_attr)if(c[u].a_attr.hasOwnProperty(a)){if("id"===a)continue;s[l[r]].a_attr[a]===t?s[l[r]].a_attr[a]=c[u].a_attr[a]:"href"===a&&"#"===s[l[r]].a_attr[a]?s[l[r]].a_attr.href=c[u].a_attr.href:"class"===a&&(s[l[r]].a_attr.class=c[u].a_attr.class+" "+s[l[r]].a_attr.class)}}s[e.jstree.root].type=e.jstree.root},this)),i.bind.call(this)},this.get_json=function(t,n,r){var o,a,s=this._model.data,l=n?e.extend(!0,{},n,{no_id:!1}):{},c=i.get_json.call(this,t,l,r);if(!1===c)return!1;if(e.isArray(c))for(o=0,a=c.length;o<a;o++)c[o].type=c[o].id&&s[c[o].id]&&s[c[o].id].type?s[c[o].id].type:"default",n&&n.no_id&&(delete c[o].id,c[o].li_attr&&c[o].li_attr.id&&delete c[o].li_attr.id,c[o].a_attr&&c[o].a_attr.id&&delete c[o].a_attr.id);else c.type=c.id&&s[c.id]&&s[c.id].type?s[c.id].type:"default",n&&n.no_id&&(c=this._delete_ids(c));return c},this._delete_ids=function(t){if(e.isArray(t)){for(var n=0,i=t.length;n<i;n++)t[n]=this._delete_ids(t[n]);return t}return delete t.id,t.li_attr&&t.li_attr.id&&delete t.li_attr.id,t.a_attr&&t.a_attr.id&&delete t.a_attr.id,t.children&&e.isArray(t.children)&&(t.children=this._delete_ids(t.children)),t},this.check=function(n,r,o,a,s){if(!1===i.check.call(this,n,r,o,a,s))return!1;r=r&&r.id?r:this.get_node(r),o=o&&o.id?o:this.get_node(o);var l,c,u,d,h=r&&r.id?s&&s.origin?s.origin:e.jstree.reference(r.id):null;switch(h=h&&h._model&&h._model.data?h._model.data:null,n){case"create_node":case"move_node":case"copy_node":if("move_node"!==n||-1===e.inArray(r.id,o.children)){if((l=this.get_rules(o)).max_children!==t&&-1!==l.max_children&&l.max_children===o.children.length)return this._data.core.last_error={error:"check",plugin:"types",id:"types_01",reason:"max_children prevents function: "+n,data:JSON.stringify({chk:n,pos:a,obj:!(!r||!r.id)&&r.id,par:!(!o||!o.id)&&o.id})},!1;if(l.valid_children!==t&&-1!==l.valid_children&&-1===e.inArray(r.type||"default",l.valid_children))return this._data.core.last_error={error:"check",plugin:"types",id:"types_02",reason:"valid_children prevents function: "+n,data:JSON.stringify({chk:n,pos:a,obj:!(!r||!r.id)&&r.id,par:!(!o||!o.id)&&o.id})},!1;if(h&&r.children_d&&r.parents){for(c=0,u=0,d=r.children_d.length;u<d;u++)c=Math.max(c,h[r.children_d[u]].parents.length);c=c-r.parents.length+1}(c<=0||c===t)&&(c=1);do{if(l.max_depth!==t&&-1!==l.max_depth&&l.max_depth<c)return this._data.core.last_error={error:"check",plugin:"types",id:"types_03",reason:"max_depth prevents function: "+n,data:JSON.stringify({chk:n,pos:a,obj:!(!r||!r.id)&&r.id,par:!(!o||!o.id)&&o.id})},!1;o=this.get_node(o.parent),l=this.get_rules(o),c++}while(o)}}return!0},this.get_rules=function(e){if(!(e=this.get_node(e)))return!1;var n=this.get_type(e,!0);return n.max_depth===t&&(n.max_depth=-1),n.max_children===t&&(n.max_children=-1),n.valid_children===t&&(n.valid_children=-1),n},this.get_type=function(t,n){return!!(t=this.get_node(t))&&(n?e.extend({type:t.type},this.settings.types[t.type]):t.type)},this.set_type=function(n,i){var r,o,a,s,l,c,u,d,h=this._model.data;if(e.isArray(n)){for(o=0,a=(n=n.slice()).length;o<a;o++)this.set_type(n[o],i);return!0}if(r=this.settings.types,n=this.get_node(n),!r[i]||!n)return!1;if((u=this.get_node(n,!0))&&u.length&&(d=u.children(".jstree-anchor")),s=n.type,l=this.get_icon(n),n.type=i,(!0===l||!r[s]||r[s].icon!==t&&l===r[s].icon)&&this.set_icon(n,r[i].icon===t||r[i].icon),r[s]&&r[s].li_attr!==t&&"object"==typeof r[s].li_attr)for(c in r[s].li_attr)if(r[s].li_attr.hasOwnProperty(c)){if("id"===c)continue;"class"===c?(h[n.id].li_attr.class=(h[n.id].li_attr.class||"").replace(r[s].li_attr[c],""),u&&u.removeClass(r[s].li_attr[c])):h[n.id].li_attr[c]===r[s].li_attr[c]&&(h[n.id].li_attr[c]=null,u&&u.removeAttr(c))}if(r[s]&&r[s].a_attr!==t&&"object"==typeof r[s].a_attr)for(c in r[s].a_attr)if(r[s].a_attr.hasOwnProperty(c)){if("id"===c)continue;"class"===c?(h[n.id].a_attr.class=(h[n.id].a_attr.class||"").replace(r[s].a_attr[c],""),d&&d.removeClass(r[s].a_attr[c])):h[n.id].a_attr[c]===r[s].a_attr[c]&&("href"===c?(h[n.id].a_attr[c]="#",d&&d.attr("href","#")):(delete h[n.id].a_attr[c],d&&d.removeAttr(c)))}if(r[i].li_attr!==t&&"object"==typeof r[i].li_attr)for(c in r[i].li_attr)if(r[i].li_attr.hasOwnProperty(c)){if("id"===c)continue;h[n.id].li_attr[c]===t?(h[n.id].li_attr[c]=r[i].li_attr[c],u&&("class"===c?u.addClass(r[i].li_attr[c]):u.attr(c,r[i].li_attr[c]))):"class"===c&&(h[n.id].li_attr.class=r[i].li_attr[c]+" "+h[n.id].li_attr.class,u&&u.addClass(r[i].li_attr[c]))}if(r[i].a_attr!==t&&"object"==typeof r[i].a_attr)for(c in r[i].a_attr)if(r[i].a_attr.hasOwnProperty(c)){if("id"===c)continue;h[n.id].a_attr[c]===t?(h[n.id].a_attr[c]=r[i].a_attr[c],d&&("class"===c?d.addClass(r[i].a_attr[c]):d.attr(c,r[i].a_attr[c]))):"href"===c&&"#"===h[n.id].a_attr[c]?(h[n.id].a_attr.href=r[i].a_attr.href,d&&d.attr("href",r[i].a_attr.href)):"class"===c&&(h[n.id].a_attr.class=r[i].a_attr.class+" "+h[n.id].a_attr.class,d&&d.addClass(r[i].a_attr[c]))}return!0}},e.jstree.defaults.unique={case_sensitive:!1,duplicate:function(e,t){return e+" ("+t+")"}},e.jstree.plugins.unique=function(n,i){this.check=function(t,n,r,o,a){if(!1===i.check.call(this,t,n,r,o,a))return!1;if(n=n&&n.id?n:this.get_node(n),!(r=r&&r.id?r:this.get_node(r))||!r.children)return!0;var s,l,c="rename_node"===t?o:n.text,u=[],d=this.settings.unique.case_sensitive,h=this._model.data;for(s=0,l=r.children.length;s<l;s++)u.push(d?h[r.children[s]].text:h[r.children[s]].text.toLowerCase());switch(d||(c=c.toLowerCase()),t){case"delete_node":return!0;case"rename_node":return(s=-1===e.inArray(c,u)||n.text&&n.text[d?"toString":"toLowerCase"]()===c)||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_01",reason:"Child with name "+c+" already exists. Preventing: "+t,data:JSON.stringify({chk:t,pos:o,obj:!(!n||!n.id)&&n.id,par:!(!r||!r.id)&&r.id})}),s;case"create_node":return(s=-1===e.inArray(c,u))||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_04",reason:"Child with name "+c+" already exists. Preventing: "+t,data:JSON.stringify({chk:t,pos:o,obj:!(!n||!n.id)&&n.id,par:!(!r||!r.id)&&r.id})}),s;case"copy_node":return(s=-1===e.inArray(c,u))||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_02",reason:"Child with name "+c+" already exists. Preventing: "+t,data:JSON.stringify({chk:t,pos:o,obj:!(!n||!n.id)&&n.id,par:!(!r||!r.id)&&r.id})}),s;case"move_node":return(s=n.parent===r.id&&(!a||!a.is_multi)||-1===e.inArray(c,u))||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_03",reason:"Child with name "+c+" already exists. Preventing: "+t,data:JSON.stringify({chk:t,pos:o,obj:!(!n||!n.id)&&n.id,par:!(!r||!r.id)&&r.id})}),s}return!0},this.create_node=function(n,r,o,a,s){if(!r||r.text===t){if(null===n&&(n=e.jstree.root),!(n=this.get_node(n)))return i.create_node.call(this,n,r,o,a,s);if(!(o=o===t?"last":o).toString().match(/^(before|after)$/)&&!s&&!this.is_loaded(n))return i.create_node.call(this,n,r,o,a,s);r||(r={});var l,c,u,d,h,p=this._model.data,f=this.settings.unique.case_sensitive,m=this.settings.unique.duplicate;for(c=l=this.get_string("New node"),u=[],d=0,h=n.children.length;d<h;d++)u.push(f?p[n.children[d]].text:p[n.children[d]].text.toLowerCase());for(d=1;-1!==e.inArray(f?c:c.toLowerCase(),u);)c=m.call(this,l,++d).toString();r.text=c}return i.create_node.call(this,n,r,o,a,s)}};var p=l.createElement("DIV");if(p.setAttribute("unselectable","on"),p.setAttribute("role","presentation"),p.className="jstree-wholerow",p.innerHTML="&#160;",e.jstree.plugins.wholerow=function(t,n){this.bind=function(){n.bind.call(this),this.element.on("ready.jstree set_state.jstree",e.proxy(function(){this.hide_dots()},this)).on("init.jstree loading.jstree ready.jstree",e.proxy(function(){this.get_container_ul().addClass("jstree-wholerow-ul")},this)).on("deselect_all.jstree",e.proxy(function(e,t){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked")},this)).on("changed.jstree",e.proxy(function(e,t){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked");var n,i,r=!1;for(n=0,i=t.selected.length;n<i;n++)(r=this.get_node(t.selected[n],!0))&&r.length&&r.children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("open_node.jstree",e.proxy(function(e,t){this.get_node(t.node,!0).find(".jstree-clicked").parent().children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("hover_node.jstree dehover_node.jstree",e.proxy(function(e,t){"hover_node"===e.type&&this.is_disabled(t.node)||this.get_node(t.node,!0).children(".jstree-wholerow")["hover_node"===e.type?"addClass":"removeClass"]("jstree-wholerow-hovered")},this)).on("contextmenu.jstree",".jstree-wholerow",e.proxy(function(t){if(this._data.contextmenu){t.preventDefault();var n=e.Event("contextmenu",{metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey,pageX:t.pageX,pageY:t.pageY});e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(n)}},this)).on("click.jstree",".jstree-wholerow",function(t){t.stopImmediatePropagation();var n=e.Event("click",{metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey});e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(n).focus()}).on("dblclick.jstree",".jstree-wholerow",function(t){t.stopImmediatePropagation();var n=e.Event("dblclick",{metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey});e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(n).focus()}).on("click.jstree",".jstree-leaf > .jstree-ocl",e.proxy(function(t){t.stopImmediatePropagation();var n=e.Event("click",{metaKey:t.metaKey,ctrlKey:t.ctrlKey,altKey:t.altKey,shiftKey:t.shiftKey});e(t.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(n).focus()},this)).on("mouseover.jstree",".jstree-wholerow, .jstree-icon",e.proxy(function(e){return e.stopImmediatePropagation(),this.is_disabled(e.currentTarget)||this.hover_node(e.currentTarget),!1},this)).on("mouseleave.jstree",".jstree-node",e.proxy(function(e){this.dehover_node(e.currentTarget)},this))},this.teardown=function(){this.settings.wholerow&&this.element.find(".jstree-wholerow").remove(),n.teardown.call(this)},this.redraw_node=function(t,i,r,o){if(t=n.redraw_node.apply(this,arguments)){var a=p.cloneNode(!0);-1!==e.inArray(t.id,this._data.core.selected)&&(a.className+=" jstree-wholerow-clicked"),this._data.core.focused&&this._data.core.focused===t.id&&(a.className+=" jstree-wholerow-hovered"),t.insertBefore(a,t.childNodes[0])}return t}},l.registerElement&&Object&&Object.create){var f=Object.create(HTMLElement.prototype);f.createdCallback=function(){var t,n={core:{},plugins:[]};for(t in e.jstree.plugins)e.jstree.plugins.hasOwnProperty(t)&&this.attributes[t]&&(n.plugins.push(t),this.getAttribute(t)&&JSON.parse(this.getAttribute(t))&&(n[t]=JSON.parse(this.getAttribute(t))));for(t in e.jstree.defaults.core)e.jstree.defaults.core.hasOwnProperty(t)&&this.attributes[t]&&(n.core[t]=JSON.parse(this.getAttribute(t))||this.getAttribute(t));e(this).jstree(n)};try{l.registerElement("vakata-jstree",{prototype:f})}catch(e){}}}}),function(e,t){"use strict";e.jstree.defaults.alltrigger=null,e.jstree.plugins.alltrigger=function(t,n){this.init=function(i,r){if(t){this.trigger=function(e,i){n.trigger.call(this,e,i),t(e.replace(".jstree","")+".jstree",i)};var o=e.vakata.context._trigger;e.vakata.context._trigger=function(e){o(e),t("context_"+e+".vakata")};var a=e.vakata.dnd._trigger;e.vakata.dnd._trigger=function(e,n,i){a(e,n,i),t("dnd_"+e+".vakata",n,i)}}n.init.call(this,i,r)}}}(jQuery),function(e){"use strict";function t(){var t=1,n=this;n.nodesFingerprint=function(e){return e.__uiNodeId||(e.__uiNodeId=t++),""+e.__uiNodeId+(e.id||"")+(e.text||"")+(e.type||"")},n.changeWatcher=function(t,n){var i,r=function(){var i,r,o=[];if(t)for(var s=e.isFunction(t)?t():t,l=0,c=s.length;l<c;l++)r=s[l],i=n(r),a[i]=r,o.push(i);return o},o=function(e,t){var n,i,r=[],o={};for(n=0,i=t.length;n<i;n++)o[t[n]]=!0;for(n=0,i=e.length;n<i;n++)o[e[n]]||r.push(e[n]);return r},a={},s=function(e,t){var r,s,l,c,u={},d=o(t,e);for(r=0,s=d.length;r<s;r++){var h=d[r];l=a[h],delete a[h];var p=n(l);p===h?i.onRemoved(l):(u[p]=h,i.onChanged(l))}var f=o(e,t);for(r=0,s=f.length;r<s;r++)c=f[r],l=a[c],u[c]||i.onAdded(l)};return i={subscribe:function(e,t){e.$watch(r,function(e,n){t&&!1===t(e,n)||s(e,n)},!0)},onAdded:e.noop,onChanged:e.noop,onRemoved:e.noop}}}function n(t){return{restrict:"A",scope:{treeData:"=ngModel",treeEventsObj:"=?treeEventsObj",shouldApply:"&"},controller:"jsTreeCtrl",link:function(n,i,r,o){function a(e,t){return function(){var n=arguments,i=e.$parent.$eval(t);e.$root.$$phase?i.apply(e.$parent,n):e.$parent.$apply(function(){i.apply(e.$parent,n)})}}function s(t,n,i){if(i.treeEvents)for(var r=i.treeEvents.split(";"),o=0;o<r.length;o++)if(r[o].length>0){var s=r[o].split(":")[0],l=r[o].split(":")[1];-1===s.indexOf(".")&&(s+=".jstree"),d.push(s),-1===s.indexOf(".vakata")?t.tree.on(s,a(t,l)):$(document).on(s,a(t,l))}e.isObject(t.treeEventsObj)&&e.forEach(t.treeEventsObj,function(e,n){-1===n.indexOf(".")&&(n+=".jstree"),d.push(n),-1===n.indexOf(".vakata")?t.tree.on(n,function(){var n=arguments;t.$root.$$phase?e.apply(t.$parent,n):t.$parent.$apply(function(){e.apply(t.$parent,n)})}):$(document).on(n,function(){var n=arguments;t.$root.$$phase?e.apply(t.$parent,n):t.$parent.$apply(function(){e.apply(t.$parent,n)})})})}function l(){var t=r.jsTree?n.$parent.$eval(r.jsTree):{};c={},e.copy(t,c);var i=JSON.stringify(c);return c.core?c.core.data=n.treeData:c.core={data:n.treeData},c.plugins?c.plugins.push("alltrigger"):c.plugins=["alltrigger"],c.alltrigger=function(e){n.$root.$$phase||-1!==d.indexOf(e)||n.$apply()},i}var c=null,u=o.changeWatcher(n.treeData,o.nodesFingerprint),d=[],h=!1;n.destroy=function(){if(d=[],r.tree)if(-1!==r.tree.indexOf(".")){for(var e=r.tree.split("."),t=e.pop(),o=n.$parent,a=0;a<e.length;a++)o=o[e[a]];n.tree=o[t]=i}else n.tree=n.$parent[r.tree]=i;else n.tree=i;n.tree.jstree("destroy")},n.init=function(){n.tree.jstree(c),t(function(){s(n,i,r)})},u.onChanged=function(t){e.isDefined(n.tree.jstree(!0).set_type)&&n.tree.jstree(!0).set_type(t.id,t.type),n.tree.jstree(!0).rename_node(t.id,t.text)},u.onAdded=function(e){t(function(){for(;h;);h=!0;var t=n.tree.jstree(!0).get_node(e.parent);n.tree.jstree(!0).create_node(t,e,"inside",function(){h=!1})||(h=!1)})},u.onRemoved=function(e){n.tree.jstree(!0).delete_node(e.id)},u.subscribe(n,function(){return!n.shouldApply||n.shouldApply()}),n.$watch(l,function(){n.destroy(),n.init()})}}}var i=e.module("ngJsTree",[]);i.controller("jsTreeCtrl",t),i.directive("jsTree",["$timeout",n])}(angular),function(){function e(e,t){return e.set(t[0],t[1]),e}function t(e,t){return e.add(t),e}function n(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function i(e,t,n,i){for(var r=-1,o=null==e?0:e.length;++r<o;){var a=e[r];t(i,a,n(a),e)}return i}function r(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e}function o(e,t){for(var n=null==e?0:e.length;n--&&!1!==t(e[n],n,e););return e}function a(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(!t(e[n],n,e))return!1;return!0}function s(e,t){for(var n=-1,i=null==e?0:e.length,r=0,o=[];++n<i;){var a=e[n];t(a,n,e)&&(o[r++]=a)}return o}function l(e,t){return!!(null==e?0:e.length)&&y(e,t,0)>-1}function c(e,t,n){for(var i=-1,r=null==e?0:e.length;++i<r;)if(n(t,e[i]))return!0;return!1}function u(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}function d(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e}function h(e,t,n,i){var r=-1,o=null==e?0:e.length;for(i&&o&&(n=e[++r]);++r<o;)n=t(n,e[r],r,e);return n}function p(e,t,n,i){var r=null==e?0:e.length;for(i&&r&&(n=e[--r]);r--;)n=t(n,e[r],r,e);return n}function f(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1}function m(e){return e.split("")}function g(e){return e.match(Ot)||[]}function v(e,t,n){var i;return n(e,function(e,n,r){if(t(e,n,r))return i=n,!1}),i}function b(e,t,n,i){for(var r=e.length,o=n+(i?1:-1);i?o--:++o<r;)if(t(e[o],o,e))return o;return-1}function y(e,t,n){return t===t?q(e,t,n):b(e,w,n)}function _(e,t,n,i){for(var r=n-1,o=e.length;++r<o;)if(i(e[r],t))return r;return-1}function w(e){return e!==e}function A(e,t){var n=null==e?0:e.length;return n?T(e,t)/n:ke}function C(e){return function(t){return null==t?J:t[e]}}function x(e){return function(t){return null==e?J:e[t]}}function S(e,t,n,i,r){return r(e,function(e,r,o){n=i?(i=!1,e):t(n,e,r,o)}),n}function E(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}function T(e,t){for(var n,i=-1,r=e.length;++i<r;){var o=t(e[i]);o!==J&&(n=n===J?o:n+o)}return n}function D(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i}function I(e,t){return u(t,function(t){return[t,e[t]]})}function k(e){return function(t){return e(t)}}function M(e,t){return u(t,function(t){return e[t]})}function P(e,t){return e.has(t)}function $(e,t){for(var n=-1,i=e.length;++n<i&&y(t,e[n],0)>-1;);return n}function N(e,t){for(var n=e.length;n--&&y(t,e[n],0)>-1;);return n}function O(e,t){for(var n=e.length,i=0;n--;)e[n]===t&&++i;return i}function R(e){return"\\"+An[e]}function L(e,t){return null==e?J:e[t]}function G(e){return pn.test(e)}function B(e){return fn.test(e)}function F(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}function H(e){var t=-1,n=Array(e.size);return e.forEach(function(e,i){n[++t]=[i,e]}),n}function U(e,t){return function(n){return e(t(n))}}function j(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n];a!==t&&a!==oe||(e[n]=oe,o[r++]=n)}return o}function W(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n}function z(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=[e,e]}),n}function q(e,t,n){for(var i=n-1,r=e.length;++i<r;)if(e[i]===t)return i;return-1}function V(e,t,n){for(var i=n+1;i--;)if(e[i]===t)return i;return i}function Y(e){return G(e)?Q(e):Bn(e)}function K(e){return G(e)?X(e):m(e)}function Q(e){for(var t=dn.lastIndex=0;dn.test(e);)++t;return t}function X(e){return e.match(dn)||[]}function Z(e){return e.match(hn)||[]}var J,ee=200,te="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",ne="Expected a function",ie="__lodash_hash_undefined__",re=500,oe="__lodash_placeholder__",ae=1,se=2,le=4,ce=1,ue=2,de=1,he=2,pe=4,fe=8,me=16,ge=32,ve=64,be=128,ye=256,_e=512,we=30,Ae="...",Ce=800,xe=16,Se=1,Ee=2,Te=1/0,De=9007199254740991,Ie=1.7976931348623157e308,ke=NaN,Me=4294967295,Pe=Me-1,$e=Me>>>1,Ne=[["ary",be],["bind",de],["bindKey",he],["curry",fe],["curryRight",me],["flip",_e],["partial",ge],["partialRight",ve],["rearg",ye]],Oe="[object Arguments]",Re="[object Array]",Le="[object AsyncFunction]",Ge="[object Boolean]",Be="[object Date]",Fe="[object DOMException]",He="[object Error]",Ue="[object Function]",je="[object GeneratorFunction]",We="[object Map]",ze="[object Number]",qe="[object Null]",Ve="[object Object]",Ye="[object Proxy]",Ke="[object RegExp]",Qe="[object Set]",Xe="[object String]",Ze="[object Symbol]",Je="[object Undefined]",et="[object WeakMap]",tt="[object WeakSet]",nt="[object ArrayBuffer]",it="[object DataView]",rt="[object Float32Array]",ot="[object Float64Array]",at="[object Int8Array]",st="[object Int16Array]",lt="[object Int32Array]",ct="[object Uint8Array]",ut="[object Uint8ClampedArray]",dt="[object Uint16Array]",ht="[object Uint32Array]",pt=/\b__p \+= '';/g,ft=/\b(__p \+=) '' \+/g,mt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,gt=/&(?:amp|lt|gt|quot|#39);/g,vt=/[&<>"']/g,bt=RegExp(gt.source),yt=RegExp(vt.source),_t=/<%-([\s\S]+?)%>/g,wt=/<%([\s\S]+?)%>/g,At=/<%=([\s\S]+?)%>/g,Ct=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xt=/^\w*$/,St=/^\./,Et=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Tt=/[\\^$.*+?()[\]{}|]/g,Dt=RegExp(Tt.source),It=/^\s+|\s+$/g,kt=/^\s+/,Mt=/\s+$/,Pt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,$t=/\{\n\/\* \[wrapped with (.+)\] \*/,Nt=/,? & /,Ot=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Rt=/\\(\\)?/g,Lt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Gt=/\w*$/,Bt=/^[-+]0x[0-9a-f]+$/i,Ft=/^0b[01]+$/i,Ht=/^\[object .+?Constructor\]$/,Ut=/^0o[0-7]+$/i,jt=/^(?:0|[1-9]\d*)$/,Wt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,zt=/($^)/,qt=/['\n\r\u2028\u2029\\]/g,Vt="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Yt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Kt="["+Yt+"]",Qt="["+Vt+"]",Xt="[a-z\\xdf-\\xf6\\xf8-\\xff]",Zt="[^\\ud800-\\udfff"+Yt+"\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",Jt="\\ud83c[\\udffb-\\udfff]",en="(?:\\ud83c[\\udde6-\\uddff]){2}",tn="[\\ud800-\\udbff][\\udc00-\\udfff]",nn="[A-Z\\xc0-\\xd6\\xd8-\\xde]",rn="(?:"+Xt+"|"+Zt+")",on="(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?",an="[\\ufe0e\\ufe0f]?"+on+("(?:\\u200d(?:"+["[^\\ud800-\\udfff]",en,tn].join("|")+")[\\ufe0e\\ufe0f]?"+on+")*"),sn="(?:"+["[\\u2700-\\u27bf]",en,tn].join("|")+")"+an,ln="(?:"+["[^\\ud800-\\udfff]"+Qt+"?",Qt,en,tn,"[\\ud800-\\udfff]"].join("|")+")",cn=RegExp("['’]","g"),un=RegExp(Qt,"g"),dn=RegExp(Jt+"(?="+Jt+")|"+ln+an,"g"),hn=RegExp([nn+"?"+Xt+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[Kt,nn,"$"].join("|")+")","(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[Kt,nn+rn,"$"].join("|")+")",nn+"?"+rn+"+(?:['’](?:d|ll|m|re|s|t|ve))?",nn+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:(?:1ST|2ND|3RD|(?![123])\\dTH)\\b)","\\d*(?:(?:1st|2nd|3rd|(?![123])\\dth)\\b)","\\d+",sn].join("|"),"g"),pn=RegExp("[\\u200d\\ud800-\\udfff"+Vt+"\\ufe0e\\ufe0f]"),fn=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,mn=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],gn=-1,vn={};vn[rt]=vn[ot]=vn[at]=vn[st]=vn[lt]=vn[ct]=vn[ut]=vn[dt]=vn[ht]=!0,vn[Oe]=vn[Re]=vn[nt]=vn[Ge]=vn[it]=vn[Be]=vn[He]=vn[Ue]=vn[We]=vn[ze]=vn[Ve]=vn[Ke]=vn[Qe]=vn[Xe]=vn[et]=!1;var bn={};bn[Oe]=bn[Re]=bn[nt]=bn[it]=bn[Ge]=bn[Be]=bn[rt]=bn[ot]=bn[at]=bn[st]=bn[lt]=bn[We]=bn[ze]=bn[Ve]=bn[Ke]=bn[Qe]=bn[Xe]=bn[Ze]=bn[ct]=bn[ut]=bn[dt]=bn[ht]=!0,bn[He]=bn[Ue]=bn[et]=!1;var yn={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},_n={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},wn={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},An={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Cn=parseFloat,xn=parseInt,Sn="object"==typeof global&&global&&global.Object===Object&&global,En="object"==typeof self&&self&&self.Object===Object&&self,Tn=Sn||En||Function("return this")(),Dn="object"==typeof exports&&exports&&!exports.nodeType&&exports,In=Dn&&"object"==typeof module&&module&&!module.nodeType&&module,kn=In&&In.exports===Dn,Mn=kn&&Sn.process,Pn=function(){try{return Mn&&Mn.binding&&Mn.binding("util")}catch(e){}}(),$n=Pn&&Pn.isArrayBuffer,Nn=Pn&&Pn.isDate,On=Pn&&Pn.isMap,Rn=Pn&&Pn.isRegExp,Ln=Pn&&Pn.isSet,Gn=Pn&&Pn.isTypedArray,Bn=C("length"),Fn=x(yn),Hn=x(_n),Un=x(wn),jn=function m(x){function q(e){if(ol(e)&&!gh(e)&&!(e instanceof Ot)){if(e instanceof X)return e;if(gu.call(e,"__wrapped__"))return na(e)}return new X(e)}function Q(){}function X(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=J}function Ot(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Me,this.__views__=[]}function Vt(){var e=new Ot(this.__wrapped__);return e.__actions__=Lr(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=Lr(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=Lr(this.__views__),e}function Yt(){if(this.__filtered__){var e=new Ot(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e}function Kt(){var e=this.__wrapped__.value(),t=this.__dir__,n=gh(e),i=t<0,r=n?e.length:0,o=To(0,r,this.__views__),a=o.start,s=o.end,l=s-a,c=i?s:a-1,u=this.__iteratees__,d=u.length,h=0,p=qu(l,this.__takeCount__);if(!n||!i&&r==l&&p==l)return br(e,this.__actions__);var f=[];e:for(;l--&&h<p;){for(var m=-1,g=e[c+=t];++m<d;){var v=u[m],b=v.iteratee,y=v.type,_=b(g);if(y==Ee)g=_;else if(!_){if(y==Se)continue e;break e}}f[h++]=g}return f}function Qt(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function Xt(){this.__data__=nd?nd(null):{},this.size=0}function Zt(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}function Jt(e){var t=this.__data__;if(nd){var n=t[e];return n===ie?J:n}return gu.call(t,e)?t[e]:J}function en(e){var t=this.__data__;return nd?t[e]!==J:gu.call(t,e)}function tn(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=nd&&t===J?ie:t,this}function nn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function rn(){this.__data__=[],this.size=0}function on(e){var t=this.__data__,n=Qn(t,e);return!(n<0)&&(n==t.length-1?t.pop():ku.call(t,n,1),--this.size,!0)}function an(e){var t=this.__data__,n=Qn(t,e);return n<0?J:t[n][1]}function sn(e){return Qn(this.__data__,e)>-1}function ln(e,t){var n=this.__data__,i=Qn(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this}function dn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}function hn(){this.size=0,this.__data__={hash:new Qt,map:new(Zu||nn),string:new Qt}}function pn(e){var t=Co(this,e).delete(e);return this.size-=t?1:0,t}function fn(e){return Co(this,e).get(e)}function yn(e){return Co(this,e).has(e)}function _n(e,t){var n=Co(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this}function wn(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new dn;++t<n;)this.add(e[t])}function An(e){return this.__data__.set(e,ie),this}function Sn(e){return this.__data__.has(e)}function En(e){var t=this.__data__=new nn(e);this.size=t.size}function Dn(){this.__data__=new nn,this.size=0}function In(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function Mn(e){return this.__data__.get(e)}function Pn(e){return this.__data__.has(e)}function Bn(e,t){var n=this.__data__;if(n instanceof nn){var i=n.__data__;if(!Zu||i.length<ee-1)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new dn(i)}return n.set(e,t),this.size=n.size,this}function Wn(e,t){var n=gh(e),i=!n&&mh(e),r=!n&&!i&&bh(e),o=!n&&!i&&!r&&Ch(e),a=n||i||r||o,s=a?D(e.length,cu):[],l=s.length;for(var c in e)!t&&!gu.call(e,c)||a&&("length"==c||r&&("offset"==c||"parent"==c)||o&&("buffer"==c||"byteLength"==c||"byteOffset"==c)||Oo(c,l))||s.push(c);return s}function zn(e){var t=e.length;return t?e[Ji(0,t-1)]:J}function qn(e,t){return Zo(Lr(e),ni(t,0,e.length))}function Vn(e){return Zo(Lr(e))}function Yn(e,t,n){(n===J||zs(e[t],n))&&(n!==J||t in e)||ei(e,t,n)}function Kn(e,t,n){var i=e[t];gu.call(e,t)&&zs(i,n)&&(n!==J||t in e)||ei(e,t,n)}function Qn(e,t){for(var n=e.length;n--;)if(zs(e[n][0],t))return n;return-1}function Xn(e,t,n,i){return fd(e,function(e,r,o){t(i,e,n(e),o)}),i}function Zn(e,t){return e&&Gr(t,Fl(t),e)}function Jn(e,t){return e&&Gr(t,Hl(t),e)}function ei(e,t,n){"__proto__"==t&&Nu?Nu(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}function ti(e,t){for(var n=-1,i=t.length,r=nu(i),o=null==e;++n<i;)r[n]=o?J:Ll(e,t[n]);return r}function ni(e,t,n){return e===e&&(n!==J&&(e=e<=n?e:n),t!==J&&(e=e>=t?e:t)),e}function ii(e,t,n,i,o,a){var s,l=t&ae,c=t&se,u=t&le;if(n&&(s=o?n(e,i,o,a):n(e)),s!==J)return s;if(!rl(e))return e;var d=gh(e);if(d){if(s=ko(e),!l)return Lr(e,s)}else{var h=Ed(e),p=h==Ue||h==je;if(bh(e))return Sr(e,l);if(h==Ve||h==Oe||p&&!o){if(s=c||p?{}:Mo(e),!l)return c?Fr(e,Jn(s,e)):Br(e,Zn(s,e))}else{if(!bn[h])return o?e:{};s=Po(e,h,ii,l)}}a||(a=new En);var f=a.get(e);if(f)return f;a.set(e,s);var m=u?c?yo:bo:c?Hl:Fl,g=d?J:m(e);return r(g||e,function(i,r){g&&(i=e[r=i]),Kn(s,r,ii(i,t,n,r,e,a))}),s}function ri(e){var t=Fl(e);return function(n){return oi(n,e,t)}}function oi(e,t,n){var i=n.length;if(null==e)return!i;for(e=su(e);i--;){var r=n[i],o=t[r],a=e[r];if(a===J&&!(r in e)||!o(a))return!1}return!0}function ai(e,t,n){if("function"!=typeof e)throw new uu(ne);return Id(function(){e.apply(J,n)},t)}function si(e,t,n,i){var r=-1,o=l,a=!0,s=e.length,d=[],h=t.length;if(!s)return d;n&&(t=u(t,k(n))),i?(o=c,a=!1):t.length>=ee&&(o=P,a=!1,t=new wn(t));e:for(;++r<s;){var p=e[r],f=null==n?p:n(p);if(p=i||0!==p?p:0,a&&f===f){for(var m=h;m--;)if(t[m]===f)continue e;d.push(p)}else o(t,f,i)||d.push(p)}return d}function li(e,t){var n=!0;return fd(e,function(e,i,r){return n=!!t(e,i,r)}),n}function ci(e,t,n){for(var i=-1,r=e.length;++i<r;){var o=e[i],a=t(o);if(null!=a&&(s===J?a===a&&!gl(a):n(a,s)))var s=a,l=o}return l}function ui(e,t,n,i){var r=e.length;for((n=Al(n))<0&&(n=-n>r?0:r+n),(i=i===J||i>r?r:Al(i))<0&&(i+=r),i=n>i?0:Cl(i);n<i;)e[n++]=t;return e}function di(e,t){var n=[];return fd(e,function(e,i,r){t(e,i,r)&&n.push(e)}),n}function hi(e,t,n,i,r){var o=-1,a=e.length;for(n||(n=No),r||(r=[]);++o<a;){var s=e[o];t>0&&n(s)?t>1?hi(s,t-1,n,i,r):d(r,s):i||(r[r.length]=s)}return r}function pi(e,t){return e&&gd(e,t,Fl)}function fi(e,t){return e&&vd(e,t,Fl)}function mi(e,t){return s(t,function(t){return tl(e[t])})}function gi(e,t){for(var n=0,i=(t=Cr(t,e)).length;null!=e&&n<i;)e=e[Jo(t[n++])];return n&&n==i?e:J}function vi(e,t,n){var i=t(e);return gh(e)?i:d(i,n(e))}function bi(e){return null==e?e===J?Je:qe:$u&&$u in su(e)?Eo(e):qo(e)}function yi(e,t){return e>t}function _i(e,t){return null!=e&&gu.call(e,t)}function wi(e,t){return null!=e&&t in su(e)}function Ai(e,t,n){return e>=qu(t,n)&&e<zu(t,n)}function Ci(e,t,n){for(var i=n?c:l,r=e[0].length,o=e.length,a=o,s=nu(o),d=1/0,h=[];a--;){var p=e[a];a&&t&&(p=u(p,k(t))),d=qu(p.length,d),s[a]=!n&&(t||r>=120&&p.length>=120)?new wn(a&&p):J}p=e[0];var f=-1,m=s[0];e:for(;++f<r&&h.length<d;){var g=p[f],v=t?t(g):g;if(g=n||0!==g?g:0,!(m?P(m,v):i(h,v,n))){for(a=o;--a;){var b=s[a];if(!(b?P(b,v):i(e[a],v,n)))continue e}m&&m.push(v),h.push(g)}}return h}function xi(e,t,n,i){return pi(e,function(e,r,o){t(i,n(e),r,o)}),i}function Si(e,t,i){var r=null==(e=Yo(e,t=Cr(t,e)))?e:e[Jo(wa(t))];return null==r?J:n(r,e,i)}function Ei(e){return ol(e)&&bi(e)==Oe}function Ti(e){return ol(e)&&bi(e)==nt}function Di(e){return ol(e)&&bi(e)==Be}function Ii(e,t,n,i,r){return e===t||(null==e||null==t||!ol(e)&&!ol(t)?e!==e&&t!==t:ki(e,t,n,i,Ii,r))}function ki(e,t,n,i,r,o){var a=gh(e),s=gh(t),l=a?Re:Ed(e),c=s?Re:Ed(t),u=(l=l==Oe?Ve:l)==Ve,d=(c=c==Oe?Ve:c)==Ve,h=l==c;if(h&&bh(e)){if(!bh(t))return!1;a=!0,u=!1}if(h&&!u)return o||(o=new En),a||Ch(e)?fo(e,t,n,i,r,o):mo(e,t,l,n,i,r,o);if(!(n&ce)){var p=u&&gu.call(e,"__wrapped__"),f=d&&gu.call(t,"__wrapped__");if(p||f){var m=p?e.value():e,g=f?t.value():t;return o||(o=new En),r(m,g,n,i,o)}}return!!h&&(o||(o=new En),go(e,t,n,i,r,o))}function Mi(e){return ol(e)&&Ed(e)==We}function Pi(e,t,n,i){var r=n.length,o=r,a=!i;if(null==e)return!o;for(e=su(e);r--;){var s=n[r];if(a&&s[2]?s[1]!==e[s[0]]:!(s[0]in e))return!1}for(;++r<o;){var l=(s=n[r])[0],c=e[l],u=s[1];if(a&&s[2]){if(c===J&&!(l in e))return!1}else{var d=new En;if(i)var h=i(c,u,l,e,t,d);if(!(h===J?Ii(u,c,ce|ue,i,d):h))return!1}}return!0}function $i(e){return!(!rl(e)||Fo(e))&&(tl(e)?Au:Ht).test(ea(e))}function Ni(e){return ol(e)&&bi(e)==Ke}function Oi(e){return ol(e)&&Ed(e)==Qe}function Ri(e){return ol(e)&&il(e.length)&&!!vn[bi(e)]}function Li(e){return"function"==typeof e?e:null==e?kc:"object"==typeof e?gh(e)?ji(e[0],e[1]):Ui(e):Gc(e)}function Gi(e){if(!Ho(e))return Wu(e);var t=[];for(var n in su(e))gu.call(e,n)&&"constructor"!=n&&t.push(n);return t}function Bi(e){if(!rl(e))return zo(e);var t=Ho(e),n=[];for(var i in e)("constructor"!=i||!t&&gu.call(e,i))&&n.push(i);return n}function Fi(e,t){return e<t}function Hi(e,t){var n=-1,i=qs(e)?nu(e.length):[];return fd(e,function(e,r,o){i[++n]=t(e,r,o)}),i}function Ui(e){var t=xo(e);return 1==t.length&&t[0][2]?jo(t[0][0],t[0][1]):function(n){return n===e||Pi(n,e,t)}}function ji(e,t){return Lo(e)&&Uo(t)?jo(Jo(e),t):function(n){var i=Ll(n,e);return i===J&&i===t?Bl(n,e):Ii(t,i,ce|ue)}}function Wi(e,t,n,i,r){e!==t&&gd(t,function(o,a){if(rl(o))r||(r=new En),zi(e,t,a,n,Wi,i,r);else{var s=i?i(e[a],o,a+"",e,t,r):J;s===J&&(s=o),Yn(e,a,s)}},Hl)}function zi(e,t,n,i,r,o,a){var s=e[n],l=t[n],c=a.get(l);if(c)Yn(e,n,c);else{var u=o?o(s,l,n+"",e,t,a):J,d=u===J;if(d){var h=gh(l),p=!h&&bh(l),f=!h&&!p&&Ch(l);u=l,h||p||f?gh(s)?u=s:Vs(s)?u=Lr(s):p?(d=!1,u=Sr(l,!0)):f?(d=!1,u=Pr(l,!0)):u=[]:pl(l)||mh(l)?(u=s,mh(s)?u=Sl(s):(!rl(s)||i&&tl(s))&&(u=Mo(l))):d=!1}d&&(a.set(l,u),r(u,l,i,o,a),a.delete(l)),Yn(e,n,u)}}function qi(e,t){var n=e.length;if(n)return t+=t<0?n:0,Oo(t,n)?e[t]:J}function Vi(e,t,n){var i=-1;return t=u(t.length?t:[kc],k(Ao())),E(Hi(e,function(e,n,r){return{criteria:u(t,function(t){return t(e)}),index:++i,value:e}}),function(e,t){return Nr(e,t,n)})}function Yi(e,t){return Ki(e,t,function(t,n){return Bl(e,n)})}function Ki(e,t,n){for(var i=-1,r=t.length,o={};++i<r;){var a=t[i],s=gi(e,a);n(s,a)&&or(o,Cr(a,e),s)}return o}function Qi(e){return function(t){return gi(t,e)}}function Xi(e,t,n,i){var r=i?_:y,o=-1,a=t.length,s=e;for(e===t&&(t=Lr(t)),n&&(s=u(e,k(n)));++o<a;)for(var l=0,c=t[o],d=n?n(c):c;(l=r(s,d,l,i))>-1;)s!==e&&ku.call(s,l,1),ku.call(e,l,1);return e}function Zi(e,t){for(var n=e?t.length:0,i=n-1;n--;){var r=t[n];if(n==i||r!==o){var o=r;Oo(r)?ku.call(e,r,1):mr(e,r)}}return e}function Ji(e,t){return e+Bu(Ku()*(t-e+1))}function er(e,t,n,i){for(var r=-1,o=zu(Gu((t-e)/(n||1)),0),a=nu(o);o--;)a[i?o:++r]=e,e+=n;return a}function tr(e,t){var n="";if(!e||t<1||t>De)return n;do{t%2&&(n+=e),(t=Bu(t/2))&&(e+=e)}while(t);return n}function nr(e,t){return kd(Vo(e,t,kc),e+"")}function ir(e){return zn(Jl(e))}function rr(e,t){var n=Jl(e);return Zo(n,ni(t,0,n.length))}function or(e,t,n,i){if(!rl(e))return e;for(var r=-1,o=(t=Cr(t,e)).length,a=o-1,s=e;null!=s&&++r<o;){var l=Jo(t[r]),c=n;if(r!=a){var u=s[l];(c=i?i(u,l,s):J)===J&&(c=rl(u)?u:Oo(t[r+1])?[]:{})}Kn(s,l,c),s=s[l]}return e}function ar(e){return Zo(Jl(e))}function sr(e,t,n){var i=-1,r=e.length;t<0&&(t=-t>r?0:r+t),(n=n>r?r:n)<0&&(n+=r),r=t>n?0:n-t>>>0,t>>>=0;for(var o=nu(r);++i<r;)o[i]=e[i+t];return o}function lr(e,t){var n;return fd(e,function(e,i,r){return!(n=t(e,i,r))}),!!n}function cr(e,t,n){var i=0,r=null==e?i:e.length;if("number"==typeof t&&t===t&&r<=$e){for(;i<r;){var o=i+r>>>1,a=e[o];null!==a&&!gl(a)&&(n?a<=t:a<t)?i=o+1:r=o}return r}return ur(e,t,kc,n)}function ur(e,t,n,i){t=n(t);for(var r=0,o=null==e?0:e.length,a=t!==t,s=null===t,l=gl(t),c=t===J;r<o;){var u=Bu((r+o)/2),d=n(e[u]),h=d!==J,p=null===d,f=d===d,m=gl(d);if(a)var g=i||f;else g=c?f&&(i||h):s?f&&h&&(i||!p):l?f&&h&&!p&&(i||!m):!p&&!m&&(i?d<=t:d<t);g?r=u+1:o=u}return qu(o,Pe)}function dr(e,t){for(var n=-1,i=e.length,r=0,o=[];++n<i;){var a=e[n],s=t?t(a):a;if(!n||!zs(s,l)){var l=s;o[r++]=0===a?0:a}}return o}function hr(e){return"number"==typeof e?e:gl(e)?ke:+e}function pr(e){if("string"==typeof e)return e;if(gh(e))return u(e,pr)+"";if(gl(e))return hd?hd.call(e):"";var t=e+"";return"0"==t&&1/e==-Te?"-0":t}function fr(e,t,n){var i=-1,r=l,o=e.length,a=!0,s=[],u=s;if(n)a=!1,r=c;else if(o>=ee){var d=t?null:Ad(e);if(d)return W(d);a=!1,r=P,u=new wn}else u=t?[]:s;e:for(;++i<o;){var h=e[i],p=t?t(h):h;if(h=n||0!==h?h:0,a&&p===p){for(var f=u.length;f--;)if(u[f]===p)continue e;t&&u.push(p),s.push(h)}else r(u,p,n)||(u!==s&&u.push(p),s.push(h))}return s}function mr(e,t){return t=Cr(t,e),null==(e=Yo(e,t))||delete e[Jo(wa(t))]}function gr(e,t,n,i){return or(e,t,n(gi(e,t)),i)}function vr(e,t,n,i){for(var r=e.length,o=i?r:-1;(i?o--:++o<r)&&t(e[o],o,e););return n?sr(e,i?0:o,i?o+1:r):sr(e,i?o+1:0,i?r:o)}function br(e,t){var n=e;return n instanceof Ot&&(n=n.value()),h(t,function(e,t){return t.func.apply(t.thisArg,d([e],t.args))},n)}function yr(e,t,n){var i=e.length;if(i<2)return i?fr(e[0]):[];for(var r=-1,o=nu(i);++r<i;)for(var a=e[r],s=-1;++s<i;)s!=r&&(o[r]=si(o[r]||a,e[s],t,n));return fr(hi(o,1),t,n)}function _r(e,t,n){for(var i=-1,r=e.length,o=t.length,a={};++i<r;){var s=i<o?t[i]:J;n(a,e[i],s)}return a}function wr(e){return Vs(e)?e:[]}function Ar(e){return"function"==typeof e?e:kc}function Cr(e,t){return gh(e)?e:Lo(e,t)?[e]:Md(Tl(e))}function xr(e,t,n){var i=e.length;return n=n===J?i:n,!t&&n>=i?e:sr(e,t,n)}function Sr(e,t){if(t)return e.slice();var n=e.length,i=Eu?Eu(n):new e.constructor(n);return e.copy(i),i}function Er(e){var t=new e.constructor(e.byteLength);return new Su(t).set(new Su(e)),t}function Tr(e,t){var n=t?Er(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}function Dr(t,n,i){return h(n?i(H(t),ae):H(t),e,new t.constructor)}function Ir(e){var t=new e.constructor(e.source,Gt.exec(e));return t.lastIndex=e.lastIndex,t}function kr(e,n,i){return h(n?i(W(e),ae):W(e),t,new e.constructor)}function Mr(e){return dd?su(dd.call(e)):{}}function Pr(e,t){var n=t?Er(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function $r(e,t){if(e!==t){var n=e!==J,i=null===e,r=e===e,o=gl(e),a=t!==J,s=null===t,l=t===t,c=gl(t);if(!s&&!c&&!o&&e>t||o&&a&&l&&!s&&!c||i&&a&&l||!n&&l||!r)return 1;if(!i&&!o&&!c&&e<t||c&&n&&r&&!i&&!o||s&&n&&r||!a&&r||!l)return-1}return 0}function Nr(e,t,n){for(var i=-1,r=e.criteria,o=t.criteria,a=r.length,s=n.length;++i<a;){var l=$r(r[i],o[i]);if(l)return i>=s?l:l*("desc"==n[i]?-1:1)}return e.index-t.index}function Or(e,t,n,i){for(var r=-1,o=e.length,a=n.length,s=-1,l=t.length,c=zu(o-a,0),u=nu(l+c),d=!i;++s<l;)u[s]=t[s];for(;++r<a;)(d||r<o)&&(u[n[r]]=e[r]);for(;c--;)u[s++]=e[r++];return u}function Rr(e,t,n,i){for(var r=-1,o=e.length,a=-1,s=n.length,l=-1,c=t.length,u=zu(o-s,0),d=nu(u+c),h=!i;++r<u;)d[r]=e[r];for(var p=r;++l<c;)d[p+l]=t[l];for(;++a<s;)(h||r<o)&&(d[p+n[a]]=e[r++]);return d}function Lr(e,t){var n=-1,i=e.length;for(t||(t=nu(i));++n<i;)t[n]=e[n];return t}function Gr(e,t,n,i){var r=!n;n||(n={});for(var o=-1,a=t.length;++o<a;){var s=t[o],l=i?i(n[s],e[s],s,n,e):J;l===J&&(l=e[s]),r?ei(n,s,l):Kn(n,s,l)}return n}function Br(e,t){return Gr(e,xd(e),t)}function Fr(e,t){return Gr(e,Sd(e),t)}function Hr(e,t){return function(n,r){var o=gh(n)?i:Xn,a=t?t():{};return o(n,e,Ao(r,2),a)}}function Ur(e){return nr(function(t,n){var i=-1,r=n.length,o=r>1?n[r-1]:J,a=r>2?n[2]:J;for(o=e.length>3&&"function"==typeof o?(r--,o):J,a&&Ro(n[0],n[1],a)&&(o=r<3?J:o,r=1),t=su(t);++i<r;){var s=n[i];s&&e(t,s,i,o)}return t})}function jr(e,t){return function(n,i){if(null==n)return n;if(!qs(n))return e(n,i);for(var r=n.length,o=t?r:-1,a=su(n);(t?o--:++o<r)&&!1!==i(a[o],o,a););return n}}function Wr(e){return function(t,n,i){for(var r=-1,o=su(t),a=i(t),s=a.length;s--;){var l=a[e?s:++r];if(!1===n(o[l],l,o))break}return t}}function zr(e,t,n){function i(){return(this&&this!==Tn&&this instanceof i?o:e).apply(r?n:this,arguments)}var r=t&de,o=Yr(e);return i}function qr(e){return function(t){var n=G(t=Tl(t))?K(t):J,i=n?n[0]:t.charAt(0),r=n?xr(n,1).join(""):t.slice(1);return i[e]()+r}}function Vr(e){return function(t){return h(Sc(oc(t).replace(cn,"")),e,"")}}function Yr(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=pd(e.prototype),i=e.apply(n,t);return rl(i)?i:n}}function Kr(e,t,i){function r(){for(var a=arguments.length,s=nu(a),l=a,c=wo(r);l--;)s[l]=arguments[l];var u=a<3&&s[0]!==c&&s[a-1]!==c?[]:j(s,c);return(a-=u.length)<i?ao(e,t,Zr,r.placeholder,J,s,u,J,J,i-a):n(this&&this!==Tn&&this instanceof r?o:e,this,s)}var o=Yr(e);return r}function Qr(e){return function(t,n,i){var r=su(t);if(!qs(t)){var o=Ao(n,3);t=Fl(t),n=function(e){return o(r[e],e,r)}}var a=e(t,n,i);return a>-1?r[o?t[a]:a]:J}}function Xr(e){return vo(function(t){var n=t.length,i=n,r=X.prototype.thru;for(e&&t.reverse();i--;){var o=t[i];if("function"!=typeof o)throw new uu(ne);if(r&&!a&&"wrapper"==_o(o))var a=new X([],!0)}for(i=a?i:n;++i<n;){var s=_o(o=t[i]),l="wrapper"==s?Cd(o):J;a=l&&Bo(l[0])&&l[1]==(be|fe|ge|ye)&&!l[4].length&&1==l[9]?a[_o(l[0])].apply(a,l[3]):1==o.length&&Bo(o)?a[s]():a.thru(o)}return function(){var e=arguments,i=e[0];if(a&&1==e.length&&gh(i))return a.plant(i).value();for(var r=0,o=n?t[r].apply(this,e):i;++r<n;)o=t[r].call(this,o);return o}})}function Zr(e,t,n,i,r,o,a,s,l,c){function u(){for(var v=arguments.length,b=nu(v),y=v;y--;)b[y]=arguments[y];if(f)var _=wo(u),w=O(b,_);if(i&&(b=Or(b,i,r,f)),o&&(b=Rr(b,o,a,f)),v-=w,f&&v<c){var A=j(b,_);return ao(e,t,Zr,u.placeholder,n,b,A,s,l,c-v)}var C=h?n:this,x=p?C[e]:e;return v=b.length,s?b=Ko(b,s):m&&v>1&&b.reverse(),d&&l<v&&(b.length=l),this&&this!==Tn&&this instanceof u&&(x=g||Yr(x)),x.apply(C,b)}var d=t&be,h=t&de,p=t&he,f=t&(fe|me),m=t&_e,g=p?J:Yr(e);return u}function Jr(e,t){return function(n,i){return xi(n,e,t(i),{})}}function eo(e,t){return function(n,i){var r;if(n===J&&i===J)return t;if(n!==J&&(r=n),i!==J){if(r===J)return i;"string"==typeof n||"string"==typeof i?(n=pr(n),i=pr(i)):(n=hr(n),i=hr(i)),r=e(n,i)}return r}}function to(e){return vo(function(t){return t=u(t,k(Ao())),nr(function(i){var r=this;return e(t,function(e){return n(e,r,i)})})})}function no(e,t){var n=(t=t===J?" ":pr(t)).length;if(n<2)return n?tr(t,e):t;var i=tr(t,Gu(e/Y(t)));return G(t)?xr(K(i),0,e).join(""):i.slice(0,e)}function io(e,t,i,r){function o(){for(var t=-1,l=arguments.length,c=-1,u=r.length,d=nu(u+l),h=this&&this!==Tn&&this instanceof o?s:e;++c<u;)d[c]=r[c];for(;l--;)d[c++]=arguments[++t];return n(h,a?i:this,d)}var a=t&de,s=Yr(e);return o}function ro(e){return function(t,n,i){return i&&"number"!=typeof i&&Ro(t,n,i)&&(n=i=J),t=wl(t),n===J?(n=t,t=0):n=wl(n),i=i===J?t<n?1:-1:wl(i),er(t,n,i,e)}}function oo(e){return function(t,n){return"string"==typeof t&&"string"==typeof n||(t=xl(t),n=xl(n)),e(t,n)}}function ao(e,t,n,i,r,o,a,s,l,c){var u=t&fe,d=u?a:J,h=u?J:a,p=u?o:J,f=u?J:o;t|=u?ge:ve,(t&=~(u?ve:ge))&pe||(t&=~(de|he));var m=[e,t,r,p,d,f,h,s,l,c],g=n.apply(J,m);return Bo(e)&&Dd(g,m),g.placeholder=i,Qo(g,e,t)}function so(e){var t=au[e];return function(e,n){if(e=xl(e),n=null==n?0:qu(Al(n),292)){var i=(Tl(e)+"e").split("e");return+((i=(Tl(t(i[0]+"e"+(+i[1]+n)))+"e").split("e"))[0]+"e"+(+i[1]-n))}return t(e)}}function lo(e){return function(t){var n=Ed(t);return n==We?H(t):n==Qe?z(t):I(t,e(t))}}function co(e,t,n,i,r,o,a,s){var l=t&he;if(!l&&"function"!=typeof e)throw new uu(ne);var c=i?i.length:0;if(c||(t&=~(ge|ve),i=r=J),a=a===J?a:zu(Al(a),0),s=s===J?s:Al(s),c-=r?r.length:0,t&ve){var u=i,d=r;i=r=J}var h=l?J:Cd(e),p=[e,t,n,i,r,u,d,o,a,s];if(h&&Wo(p,h),e=p[0],t=p[1],n=p[2],i=p[3],r=p[4],!(s=p[9]=p[9]===J?l?0:e.length:zu(p[9]-c,0))&&t&(fe|me)&&(t&=~(fe|me)),t&&t!=de)f=t==fe||t==me?Kr(e,t,s):t!=ge&&t!=(de|ge)||r.length?Zr.apply(J,p):io(e,t,n,i);else var f=zr(e,t,n);return Qo((h?bd:Dd)(f,p),e,t)}function uo(e,t,n,i){return e===J||zs(e,pu[n])&&!gu.call(i,n)?t:e}function ho(e,t,n,i,r,o){return rl(e)&&rl(t)&&(o.set(t,e),Wi(e,t,J,ho,o),o.delete(t)),e}function po(e){return pl(e)?J:e}function fo(e,t,n,i,r,o){var a=n&ce,s=e.length,l=t.length;if(s!=l&&!(a&&l>s))return!1;var c=o.get(e);if(c&&o.get(t))return c==t;var u=-1,d=!0,h=n&ue?new wn:J;for(o.set(e,t),o.set(t,e);++u<s;){var p=e[u],m=t[u];if(i)var g=a?i(m,p,u,t,e,o):i(p,m,u,e,t,o);if(g!==J){if(g)continue;d=!1;break}if(h){if(!f(t,function(e,t){if(!P(h,t)&&(p===e||r(p,e,n,i,o)))return h.push(t)})){d=!1;break}}else if(p!==m&&!r(p,m,n,i,o)){d=!1;break}}return o.delete(e),o.delete(t),d}function mo(e,t,n,i,r,o,a){switch(n){case it:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case nt:return!(e.byteLength!=t.byteLength||!o(new Su(e),new Su(t)));case Ge:case Be:case ze:return zs(+e,+t);case He:return e.name==t.name&&e.message==t.message;case Ke:case Xe:return e==t+"";case We:var s=H;case Qe:var l=i&ce;if(s||(s=W),e.size!=t.size&&!l)return!1;var c=a.get(e);if(c)return c==t;i|=ue,a.set(e,t);var u=fo(s(e),s(t),i,r,o,a);return a.delete(e),u;case Ze:if(dd)return dd.call(e)==dd.call(t)}return!1}function go(e,t,n,i,r,o){var a=n&ce,s=bo(e),l=s.length;if(l!=bo(t).length&&!a)return!1;for(var c=l;c--;){var u=s[c];if(!(a?u in t:gu.call(t,u)))return!1}var d=o.get(e);if(d&&o.get(t))return d==t;var h=!0;o.set(e,t),o.set(t,e);for(var p=a;++c<l;){var f=e[u=s[c]],m=t[u];if(i)var g=a?i(m,f,u,t,e,o):i(f,m,u,e,t,o);if(!(g===J?f===m||r(f,m,n,i,o):g)){h=!1;break}p||(p="constructor"==u)}if(h&&!p){var v=e.constructor,b=t.constructor;v!=b&&"constructor"in e&&"constructor"in t&&!("function"==typeof v&&v instanceof v&&"function"==typeof b&&b instanceof b)&&(h=!1)}return o.delete(e),o.delete(t),h}function vo(e){return kd(Vo(e,J,pa),e+"")}function bo(e){return vi(e,Fl,xd)}function yo(e){return vi(e,Hl,Sd)}function _o(e){for(var t=e.name+"",n=rd[t],i=gu.call(rd,t)?n.length:0;i--;){var r=n[i],o=r.func;if(null==o||o==e)return r.name}return t}function wo(e){return(gu.call(q,"placeholder")?q:e).placeholder}function Ao(){var e=q.iteratee||Mc;return e=e===Mc?Li:e,arguments.length?e(arguments[0],arguments[1]):e}function Co(e,t){var n=e.__data__;return Go(t)?n["string"==typeof t?"string":"hash"]:n.map}function xo(e){for(var t=Fl(e),n=t.length;n--;){var i=t[n],r=e[i];t[n]=[i,r,Uo(r)]}return t}function So(e,t){var n=L(e,t);return $i(n)?n:J}function Eo(e){var t=gu.call(e,$u),n=e[$u];try{e[$u]=J;var i=!0}catch(e){}var r=yu.call(e);return i&&(t?e[$u]=n:delete e[$u]),r}function To(e,t,n){for(var i=-1,r=n.length;++i<r;){var o=n[i],a=o.size;switch(o.type){case"drop":e+=a;break;case"dropRight":t-=a;break;case"take":t=qu(t,e+a);break;case"takeRight":e=zu(e,t-a)}}return{start:e,end:t}}function Do(e){var t=e.match($t);return t?t[1].split(Nt):[]}function Io(e,t,n){for(var i=-1,r=(t=Cr(t,e)).length,o=!1;++i<r;){var a=Jo(t[i]);if(!(o=null!=e&&n(e,a)))break;e=e[a]}return o||++i!=r?o:!!(r=null==e?0:e.length)&&il(r)&&Oo(a,r)&&(gh(e)||mh(e))}function ko(e){var t=e.length,n=e.constructor(t);return t&&"string"==typeof e[0]&&gu.call(e,"index")&&(n.index=e.index,n.input=e.input),n}function Mo(e){return"function"!=typeof e.constructor||Ho(e)?{}:pd(Tu(e))}function Po(e,t,n,i){var r=e.constructor;switch(t){case nt:return Er(e);case Ge:case Be:return new r(+e);case it:return Tr(e,i);case rt:case ot:case at:case st:case lt:case ct:case ut:case dt:case ht:return Pr(e,i);case We:return Dr(e,i,n);case ze:case Xe:return new r(e);case Ke:return Ir(e);case Qe:return kr(e,i,n);case Ze:return Mr(e)}}function $o(e,t){var n=t.length;if(!n)return e;var i=n-1;return t[i]=(n>1?"& ":"")+t[i],t=t.join(n>2?", ":" "),e.replace(Pt,"{\n/* [wrapped with "+t+"] */\n")}function No(e){return gh(e)||mh(e)||!!(Mu&&e&&e[Mu])}function Oo(e,t){return!!(t=null==t?De:t)&&("number"==typeof e||jt.test(e))&&e>-1&&e%1==0&&e<t}function Ro(e,t,n){if(!rl(n))return!1;var i=typeof t;return!!("number"==i?qs(n)&&Oo(t,n.length):"string"==i&&t in n)&&zs(n[t],e)}function Lo(e,t){if(gh(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!gl(e))||(xt.test(e)||!Ct.test(e)||null!=t&&e in su(t))}function Go(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}function Bo(e){var t=_o(e),n=q[t];if("function"!=typeof n||!(t in Ot.prototype))return!1;if(e===n)return!0;var i=Cd(n);return!!i&&e===i[0]}function Fo(e){return!!bu&&bu in e}function Ho(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||pu)}function Uo(e){return e===e&&!rl(e)}function jo(e,t){return function(n){return null!=n&&(n[e]===t&&(t!==J||e in su(n)))}}function Wo(e,t){var n=e[1],i=t[1],r=n|i,o=r<(de|he|be),a=i==be&&n==fe||i==be&&n==ye&&e[7].length<=t[8]||i==(be|ye)&&t[7].length<=t[8]&&n==fe;if(!o&&!a)return e;i&de&&(e[2]=t[2],r|=n&de?0:pe);var s=t[3];if(s){var l=e[3];e[3]=l?Or(l,s,t[4]):s,e[4]=l?j(e[3],oe):t[4]}return(s=t[5])&&(l=e[5],e[5]=l?Rr(l,s,t[6]):s,e[6]=l?j(e[5],oe):t[6]),(s=t[7])&&(e[7]=s),i&be&&(e[8]=null==e[8]?t[8]:qu(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=r,e}function zo(e){var t=[];if(null!=e)for(var n in su(e))t.push(n);return t}function qo(e){return yu.call(e)}function Vo(e,t,i){return t=zu(t===J?e.length-1:t,0),function(){for(var r=arguments,o=-1,a=zu(r.length-t,0),s=nu(a);++o<a;)s[o]=r[t+o];o=-1;for(var l=nu(t+1);++o<t;)l[o]=r[o];return l[t]=i(s),n(e,this,l)}}function Yo(e,t){return t.length<2?e:gi(e,sr(t,0,-1))}function Ko(e,t){for(var n=e.length,i=qu(t.length,n),r=Lr(e);i--;){var o=t[i];e[i]=Oo(o,n)?r[o]:J}return e}function Qo(e,t,n){var i=t+"";return kd(e,$o(i,ta(Do(i),n)))}function Xo(e){var t=0,n=0;return function(){var i=Vu(),r=xe-(i-n);if(n=i,r>0){if(++t>=Ce)return arguments[0]}else t=0;return e.apply(J,arguments)}}function Zo(e,t){var n=-1,i=e.length,r=i-1;for(t=t===J?i:t;++n<t;){var o=Ji(n,r),a=e[o];e[o]=e[n],e[n]=a}return e.length=t,e}function Jo(e){if("string"==typeof e||gl(e))return e;var t=e+"";return"0"==t&&1/e==-Te?"-0":t}function ea(e){if(null!=e){try{return mu.call(e)}catch(e){}try{return e+""}catch(e){}}return""}function ta(e,t){return r(Ne,function(n){var i="_."+n[0];t&n[1]&&!l(e,i)&&e.push(i)}),e.sort()}function na(e){if(e instanceof Ot)return e.clone();var t=new X(e.__wrapped__,e.__chain__);return t.__actions__=Lr(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}function ia(e,t,n){t=(n?Ro(e,t,n):t===J)?1:zu(Al(t),0);var i=null==e?0:e.length;if(!i||t<1)return[];for(var r=0,o=0,a=nu(Gu(i/t));r<i;)a[o++]=sr(e,r,r+=t);return a}function ra(e){for(var t=-1,n=null==e?0:e.length,i=0,r=[];++t<n;){var o=e[t];o&&(r[i++]=o)}return r}function oa(){var e=arguments.length;if(!e)return[];for(var t=nu(e-1),n=arguments[0],i=e;i--;)t[i-1]=arguments[i];return d(gh(n)?Lr(n):[n],hi(t,1))}function aa(e,t,n){var i=null==e?0:e.length;return i?(t=n||t===J?1:Al(t),sr(e,t<0?0:t,i)):[]}function sa(e,t,n){var i=null==e?0:e.length;return i?(t=n||t===J?1:Al(t),t=i-t,sr(e,0,t<0?0:t)):[]}function la(e,t){return e&&e.length?vr(e,Ao(t,3),!0,!0):[]}function ca(e,t){return e&&e.length?vr(e,Ao(t,3),!0):[]}function ua(e,t,n,i){var r=null==e?0:e.length;return r?(n&&"number"!=typeof n&&Ro(e,t,n)&&(n=0,i=r),ui(e,t,n,i)):[]}function da(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:Al(n);return r<0&&(r=zu(i+r,0)),b(e,Ao(t,3),r)}function ha(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=i-1;return n!==J&&(r=Al(n),r=n<0?zu(i+r,0):qu(r,i-1)),b(e,Ao(t,3),r,!0)}function pa(e){return(null==e?0:e.length)?hi(e,1):[]}function fa(e){return(null==e?0:e.length)?hi(e,Te):[]}function ma(e,t){return(null==e?0:e.length)?(t=t===J?1:Al(t),hi(e,t)):[]}function ga(e){for(var t=-1,n=null==e?0:e.length,i={};++t<n;){var r=e[t];i[r[0]]=r[1]}return i}function va(e){return e&&e.length?e[0]:J}function ba(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:Al(n);return r<0&&(r=zu(i+r,0)),y(e,t,r)}function ya(e){return(null==e?0:e.length)?sr(e,0,-1):[]}function _a(e,t){return null==e?"":ju.call(e,t)}function wa(e){var t=null==e?0:e.length;return t?e[t-1]:J}function Aa(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=i;return n!==J&&(r=(r=Al(n))<0?zu(i+r,0):qu(r,i-1)),t===t?V(e,t,r):b(e,w,r,!0)}function Ca(e,t){return e&&e.length?qi(e,Al(t)):J}function xa(e,t){return e&&e.length&&t&&t.length?Xi(e,t):e}function Sa(e,t,n){return e&&e.length&&t&&t.length?Xi(e,t,Ao(n,2)):e}function Ea(e,t,n){return e&&e.length&&t&&t.length?Xi(e,t,J,n):e}function Ta(e,t){var n=[];if(!e||!e.length)return n;var i=-1,r=[],o=e.length;for(t=Ao(t,3);++i<o;){var a=e[i];t(a,i,e)&&(n.push(a),r.push(i))}return Zi(e,r),n}function Da(e){return null==e?e:Qu.call(e)}function Ia(e,t,n){var i=null==e?0:e.length;return i?(n&&"number"!=typeof n&&Ro(e,t,n)?(t=0,n=i):(t=null==t?0:Al(t),n=n===J?i:Al(n)),sr(e,t,n)):[]}function ka(e,t){return cr(e,t)}function Ma(e,t,n){return ur(e,t,Ao(n,2))}function Pa(e,t){var n=null==e?0:e.length;if(n){var i=cr(e,t);if(i<n&&zs(e[i],t))return i}return-1}function $a(e,t){return cr(e,t,!0)}function Na(e,t,n){return ur(e,t,Ao(n,2),!0)}function Oa(e,t){if(null==e?0:e.length){var n=cr(e,t,!0)-1;if(zs(e[n],t))return n}return-1}function Ra(e){return e&&e.length?dr(e):[]}function La(e,t){return e&&e.length?dr(e,Ao(t,2)):[]}function Ga(e){var t=null==e?0:e.length;return t?sr(e,1,t):[]}function Ba(e,t,n){return e&&e.length?(t=n||t===J?1:Al(t),sr(e,0,t<0?0:t)):[]}function Fa(e,t,n){var i=null==e?0:e.length;return i?(t=n||t===J?1:Al(t),t=i-t,sr(e,t<0?0:t,i)):[]}function Ha(e,t){return e&&e.length?vr(e,Ao(t,3),!1,!0):[]}function Ua(e,t){return e&&e.length?vr(e,Ao(t,3)):[]}function ja(e){return e&&e.length?fr(e):[]}function Wa(e,t){return e&&e.length?fr(e,Ao(t,2)):[]}function za(e,t){return t="function"==typeof t?t:J,e&&e.length?fr(e,J,t):[]}function qa(e){if(!e||!e.length)return[];var t=0;return e=s(e,function(e){if(Vs(e))return t=zu(e.length,t),!0}),D(t,function(t){return u(e,C(t))})}function Va(e,t){if(!e||!e.length)return[];var i=qa(e);return null==t?i:u(i,function(e){return n(t,J,e)})}function Ya(e,t){return _r(e||[],t||[],Kn)}function Ka(e,t){return _r(e||[],t||[],or)}function Qa(e){var t=q(e);return t.__chain__=!0,t}function Xa(e,t){return t(e),e}function Za(e,t){return t(e)}function Ja(){return Qa(this)}function es(){return new X(this.value(),this.__chain__)}function ts(){this.__values__===J&&(this.__values__=_l(this.value()));var e=this.__index__>=this.__values__.length;return{done:e,value:e?J:this.__values__[this.__index__++]}}function ns(){return this}function is(e){for(var t,n=this;n instanceof Q;){var i=na(n);i.__index__=0,i.__values__=J,t?r.__wrapped__=i:t=i;var r=i;n=n.__wrapped__}return r.__wrapped__=e,t}function rs(){var e=this.__wrapped__;if(e instanceof Ot){var t=e;return this.__actions__.length&&(t=new Ot(this)),(t=t.reverse()).__actions__.push({func:Za,args:[Da],thisArg:J}),new X(t,this.__chain__)}return this.thru(Da)}function os(){return br(this.__wrapped__,this.__actions__)}function as(e,t,n){var i=gh(e)?a:li;return n&&Ro(e,t,n)&&(t=J),i(e,Ao(t,3))}function ss(e,t){return(gh(e)?s:di)(e,Ao(t,3))}function ls(e,t){return hi(fs(e,t),1)}function cs(e,t){return hi(fs(e,t),Te)}function us(e,t,n){return n=n===J?1:Al(n),hi(fs(e,t),n)}function ds(e,t){return(gh(e)?r:fd)(e,Ao(t,3))}function hs(e,t){return(gh(e)?o:md)(e,Ao(t,3))}function ps(e,t,n,i){e=qs(e)?e:Jl(e),n=n&&!i?Al(n):0;var r=e.length;return n<0&&(n=zu(r+n,0)),ml(e)?n<=r&&e.indexOf(t,n)>-1:!!r&&y(e,t,n)>-1}function fs(e,t){return(gh(e)?u:Hi)(e,Ao(t,3))}function ms(e,t,n,i){return null==e?[]:(gh(t)||(t=null==t?[]:[t]),n=i?J:n,gh(n)||(n=null==n?[]:[n]),Vi(e,t,n))}function gs(e,t,n){var i=gh(e)?h:S,r=arguments.length<3;return i(e,Ao(t,4),n,r,fd)}function vs(e,t,n){var i=gh(e)?p:S,r=arguments.length<3;return i(e,Ao(t,4),n,r,md)}function bs(e,t){return(gh(e)?s:di)(e,Ps(Ao(t,3)))}function ys(e){return(gh(e)?zn:ir)(e)}function _s(e,t,n){return t=(n?Ro(e,t,n):t===J)?1:Al(t),(gh(e)?qn:rr)(e,t)}function ws(e){return(gh(e)?Vn:ar)(e)}function As(e){if(null==e)return 0;if(qs(e))return ml(e)?Y(e):e.length;var t=Ed(e);return t==We||t==Qe?e.size:Gi(e).length}function Cs(e,t,n){var i=gh(e)?f:lr;return n&&Ro(e,t,n)&&(t=J),i(e,Ao(t,3))}function xs(e,t){if("function"!=typeof t)throw new uu(ne);return e=Al(e),function(){if(--e<1)return t.apply(this,arguments)}}function Ss(e,t,n){return t=n?J:t,t=e&&null==t?e.length:t,co(e,be,J,J,J,J,t)}function Es(e,t){var n;if("function"!=typeof t)throw new uu(ne);return e=Al(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=J),n}}function Ts(e,t,n){var i=co(e,fe,J,J,J,J,J,t=n?J:t);return i.placeholder=Ts.placeholder,i}function Ds(e,t,n){var i=co(e,me,J,J,J,J,J,t=n?J:t);return i.placeholder=Ds.placeholder,i}function Is(e,t,n){function i(t){var n=h,i=p;return h=p=J,b=t,m=e.apply(i,n)}function r(e){return b=e,g=Id(s,t),y?i(e):m}function o(e){var n=e-b,i=t-(e-v);return _?qu(i,f-n):i}function a(e){var n=e-v,i=e-b;return v===J||n>=t||n<0||_&&i>=f}function s(){var e=rh();if(a(e))return l(e);g=Id(s,o(e))}function l(e){return g=J,w&&h?i(e):(h=p=J,m)}function c(){g!==J&&wd(g),b=0,h=v=p=g=J}function u(){return g===J?m:l(rh())}function d(){var e=rh(),n=a(e);if(h=arguments,p=this,v=e,n){if(g===J)return r(v);if(_)return g=Id(s,t),i(v)}return g===J&&(g=Id(s,t)),m}var h,p,f,m,g,v,b=0,y=!1,_=!1,w=!0;if("function"!=typeof e)throw new uu(ne);return t=xl(t)||0,rl(n)&&(y=!!n.leading,f=(_="maxWait"in n)?zu(xl(n.maxWait)||0,t):f,w="trailing"in n?!!n.trailing:w),d.cancel=c,d.flush=u,d}function ks(e){return co(e,_e)}function Ms(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new uu(ne);var n=function(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var a=e.apply(this,i);return n.cache=o.set(r,a)||o,a};return n.cache=new(Ms.Cache||dn),n}function Ps(e){if("function"!=typeof e)throw new uu(ne);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function $s(e){return Es(2,e)}function Ns(e,t){if("function"!=typeof e)throw new uu(ne);return t=t===J?t:Al(t),nr(e,t)}function Os(e,t){if("function"!=typeof e)throw new uu(ne);return t=null==t?0:zu(Al(t),0),nr(function(i){var r=i[t],o=xr(i,0,t);return r&&d(o,r),n(e,this,o)})}function Rs(e,t,n){var i=!0,r=!0;if("function"!=typeof e)throw new uu(ne);return rl(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),Is(e,t,{leading:i,maxWait:t,trailing:r})}function Ls(e){return Ss(e,1)}function Gs(e,t){return uh(Ar(t),e)}function Bs(){if(!arguments.length)return[];var e=arguments[0];return gh(e)?e:[e]}function Fs(e){return ii(e,le)}function Hs(e,t){return t="function"==typeof t?t:J,ii(e,le,t)}function Us(e){return ii(e,ae|le)}function js(e,t){return t="function"==typeof t?t:J,ii(e,ae|le,t)}function Ws(e,t){return null==t||oi(e,t,Fl(t))}function zs(e,t){return e===t||e!==e&&t!==t}function qs(e){return null!=e&&il(e.length)&&!tl(e)}function Vs(e){return ol(e)&&qs(e)}function Ys(e){return!0===e||!1===e||ol(e)&&bi(e)==Ge}function Ks(e){return ol(e)&&1===e.nodeType&&!pl(e)}function Qs(e){if(null==e)return!0;if(qs(e)&&(gh(e)||"string"==typeof e||"function"==typeof e.splice||bh(e)||Ch(e)||mh(e)))return!e.length;var t=Ed(e);if(t==We||t==Qe)return!e.size;if(Ho(e))return!Gi(e).length;for(var n in e)if(gu.call(e,n))return!1;return!0}function Xs(e,t){return Ii(e,t)}function Zs(e,t,n){var i=(n="function"==typeof n?n:J)?n(e,t):J;return i===J?Ii(e,t,J,n):!!i}function Js(e){if(!ol(e))return!1;var t=bi(e);return t==He||t==Fe||"string"==typeof e.message&&"string"==typeof e.name&&!pl(e)}function el(e){return"number"==typeof e&&Uu(e)}function tl(e){if(!rl(e))return!1;var t=bi(e);return t==Ue||t==je||t==Le||t==Ye}function nl(e){return"number"==typeof e&&e==Al(e)}function il(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=De}function rl(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function ol(e){return null!=e&&"object"==typeof e}function al(e,t){return e===t||Pi(e,t,xo(t))}function sl(e,t,n){return n="function"==typeof n?n:J,Pi(e,t,xo(t),n)}function ll(e){return hl(e)&&e!=+e}function cl(e){if(Td(e))throw new ru(te);return $i(e)}function ul(e){return null===e}function dl(e){return null==e}function hl(e){return"number"==typeof e||ol(e)&&bi(e)==ze}function pl(e){if(!ol(e)||bi(e)!=Ve)return!1;var t=Tu(e);if(null===t)return!0;var n=gu.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&mu.call(n)==_u}function fl(e){return nl(e)&&e>=-De&&e<=De}function ml(e){return"string"==typeof e||!gh(e)&&ol(e)&&bi(e)==Xe}function gl(e){return"symbol"==typeof e||ol(e)&&bi(e)==Ze}function vl(e){return e===J}function bl(e){return ol(e)&&Ed(e)==et}function yl(e){return ol(e)&&bi(e)==tt}function _l(e){if(!e)return[];if(qs(e))return ml(e)?K(e):Lr(e);if(Pu&&e[Pu])return F(e[Pu]());var t=Ed(e);return(t==We?H:t==Qe?W:Jl)(e)}function wl(e){return e?(e=xl(e),e===Te||e===-Te?(e<0?-1:1)*Ie:e===e?e:0):0===e?e:0}function Al(e){var t=wl(e),n=t%1;return t===t?n?t-n:t:0}function Cl(e){return e?ni(Al(e),0,Me):0}function xl(e){if("number"==typeof e)return e;if(gl(e))return ke;if(rl(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=rl(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(It,"");var n=Ft.test(e);return n||Ut.test(e)?xn(e.slice(2),n?2:8):Bt.test(e)?ke:+e}function Sl(e){return Gr(e,Hl(e))}function El(e){return e?ni(Al(e),-De,De):0===e?e:0}function Tl(e){return null==e?"":pr(e)}function Dl(e,t){var n=pd(e);return null==t?n:Zn(n,t)}function Il(e,t){return v(e,Ao(t,3),pi)}function kl(e,t){return v(e,Ao(t,3),fi)}function Ml(e,t){return null==e?e:gd(e,Ao(t,3),Hl)}function Pl(e,t){return null==e?e:vd(e,Ao(t,3),Hl)}function $l(e,t){return e&&pi(e,Ao(t,3))}function Nl(e,t){return e&&fi(e,Ao(t,3))}function Ol(e){return null==e?[]:mi(e,Fl(e))}function Rl(e){return null==e?[]:mi(e,Hl(e))}function Ll(e,t,n){var i=null==e?J:gi(e,t);return i===J?n:i}function Gl(e,t){return null!=e&&Io(e,t,_i)}function Bl(e,t){return null!=e&&Io(e,t,wi)}function Fl(e){return qs(e)?Wn(e):Gi(e)}function Hl(e){return qs(e)?Wn(e,!0):Bi(e)}function Ul(e,t){var n={};return t=Ao(t,3),pi(e,function(e,i,r){ei(n,t(e,i,r),e)}),n}function jl(e,t){var n={};return t=Ao(t,3),pi(e,function(e,i,r){ei(n,i,t(e,i,r))}),n}function Wl(e,t){return zl(e,Ps(Ao(t)))}function zl(e,t){if(null==e)return{};var n=u(yo(e),function(e){return[e]});return t=Ao(t),Ki(e,n,function(e,n){return t(e,n[0])})}function ql(e,t,n){var i=-1,r=(t=Cr(t,e)).length;for(r||(r=1,e=J);++i<r;){var o=null==e?J:e[Jo(t[i])];o===J&&(i=r,o=n),e=tl(o)?o.call(e):o}return e}function Vl(e,t,n){return null==e?e:or(e,t,n)}function Yl(e,t,n,i){return i="function"==typeof i?i:J,null==e?e:or(e,t,n,i)}function Kl(e,t,n){var i=gh(e),o=i||bh(e)||Ch(e);if(t=Ao(t,4),null==n){var a=e&&e.constructor;n=o?i?new a:[]:rl(e)&&tl(a)?pd(Tu(e)):{}}return(o?r:pi)(e,function(e,i,r){return t(n,e,i,r)}),n}function Ql(e,t){return null==e||mr(e,t)}function Xl(e,t,n){return null==e?e:gr(e,t,Ar(n))}function Zl(e,t,n,i){return i="function"==typeof i?i:J,null==e?e:gr(e,t,Ar(n),i)}function Jl(e){return null==e?[]:M(e,Fl(e))}function ec(e){return null==e?[]:M(e,Hl(e))}function tc(e,t,n){return n===J&&(n=t,t=J),n!==J&&(n=(n=xl(n))===n?n:0),t!==J&&(t=(t=xl(t))===t?t:0),ni(xl(e),t,n)}function nc(e,t,n){return t=wl(t),n===J?(n=t,t=0):n=wl(n),e=xl(e),Ai(e,t,n)}function ic(e,t,n){if(n&&"boolean"!=typeof n&&Ro(e,t,n)&&(t=n=J),n===J&&("boolean"==typeof t?(n=t,t=J):"boolean"==typeof e&&(n=e,e=J)),e===J&&t===J?(e=0,t=1):(e=wl(e),t===J?(t=e,e=0):t=wl(t)),e>t){var i=e;e=t,t=i}if(n||e%1||t%1){var r=Ku();return qu(e+r*(t-e+Cn("1e-"+((r+"").length-1))),t)}return Ji(e,t)}function rc(e){return Kh(Tl(e).toLowerCase())}function oc(e){return(e=Tl(e))&&e.replace(Wt,Fn).replace(un,"")}function ac(e,t,n){e=Tl(e),t=pr(t);var i=e.length,r=n=n===J?i:ni(Al(n),0,i);return(n-=t.length)>=0&&e.slice(n,r)==t}function sc(e){return e=Tl(e),e&&yt.test(e)?e.replace(vt,Hn):e}function lc(e){return e=Tl(e),e&&Dt.test(e)?e.replace(Tt,"\\$&"):e}function cc(e,t,n){e=Tl(e);var i=(t=Al(t))?Y(e):0;if(!t||i>=t)return e;var r=(t-i)/2;return no(Bu(r),n)+e+no(Gu(r),n)}function uc(e,t,n){e=Tl(e);var i=(t=Al(t))?Y(e):0;return t&&i<t?e+no(t-i,n):e}function dc(e,t,n){e=Tl(e);var i=(t=Al(t))?Y(e):0;return t&&i<t?no(t-i,n)+e:e}function hc(e,t,n){return n||null==t?t=0:t&&(t=+t),Yu(Tl(e).replace(kt,""),t||0)}function pc(e,t,n){return t=(n?Ro(e,t,n):t===J)?1:Al(t),tr(Tl(e),t)}function fc(){var e=arguments,t=Tl(e[0]);return e.length<3?t:t.replace(e[1],e[2])}function mc(e,t,n){return n&&"number"!=typeof n&&Ro(e,t,n)&&(t=n=J),(n=n===J?Me:n>>>0)?(e=Tl(e),e&&("string"==typeof t||null!=t&&!wh(t))&&!(t=pr(t))&&G(e)?xr(K(e),0,n):e.split(t,n)):[]}function gc(e,t,n){return e=Tl(e),n=null==n?0:ni(Al(n),0,e.length),t=pr(t),e.slice(n,n+t.length)==t}function vc(e,t,n){var i=q.templateSettings;n&&Ro(e,t,n)&&(t=J),e=Tl(e),t=Dh({},t,i,uo);var r,o,a=Dh({},t.imports,i.imports,uo),s=Fl(a),l=M(a,s),c=0,u=t.interpolate||zt,d="__p += '",h=lu((t.escape||zt).source+"|"+u.source+"|"+(u===At?Lt:zt).source+"|"+(t.evaluate||zt).source+"|$","g"),p="//# sourceURL="+("sourceURL"in t?t.sourceURL:"lodash.templateSources["+ ++gn+"]")+"\n";e.replace(h,function(t,n,i,a,s,l){return i||(i=a),d+=e.slice(c,l).replace(qt,R),n&&(r=!0,d+="' +\n__e("+n+") +\n'"),s&&(o=!0,d+="';\n"+s+";\n__p += '"),i&&(d+="' +\n((__t = ("+i+")) == null ? '' : __t) +\n'"),c=l+t.length,t}),d+="';\n";var f=t.variable;f||(d="with (obj) {\n"+d+"\n}\n"),d=(o?d.replace(pt,""):d).replace(ft,"$1").replace(mt,"$1;"),d="function("+(f||"obj")+") {\n"+(f?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(r?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+d+"return __p\n}";var m=Qh(function(){return ou(s,p+"return "+d).apply(J,l)});if(m.source=d,Js(m))throw m;return m}function bc(e){return Tl(e).toLowerCase()}function yc(e){return Tl(e).toUpperCase()}function _c(e,t,n){if((e=Tl(e))&&(n||t===J))return e.replace(It,"");if(!e||!(t=pr(t)))return e;var i=K(e),r=K(t);return xr(i,$(i,r),N(i,r)+1).join("")}function wc(e,t,n){if((e=Tl(e))&&(n||t===J))return e.replace(Mt,"");if(!e||!(t=pr(t)))return e;var i=K(e);return xr(i,0,N(i,K(t))+1).join("")}function Ac(e,t,n){if((e=Tl(e))&&(n||t===J))return e.replace(kt,"");if(!e||!(t=pr(t)))return e;var i=K(e);return xr(i,$(i,K(t))).join("")}function Cc(e,t){var n=we,i=Ae;if(rl(t)){var r="separator"in t?t.separator:r;n="length"in t?Al(t.length):n,i="omission"in t?pr(t.omission):i}var o=(e=Tl(e)).length;if(G(e)){var a=K(e);o=a.length}if(n>=o)return e;var s=n-Y(i);if(s<1)return i;var l=a?xr(a,0,s).join(""):e.slice(0,s);if(r===J)return l+i;if(a&&(s+=l.length-s),wh(r)){if(e.slice(s).search(r)){var c,u=l;for(r.global||(r=lu(r.source,Tl(Gt.exec(r))+"g")),r.lastIndex=0;c=r.exec(u);)var d=c.index;l=l.slice(0,d===J?s:d)}}else if(e.indexOf(pr(r),s)!=s){var h=l.lastIndexOf(r);h>-1&&(l=l.slice(0,h))}return l+i}function xc(e){return e=Tl(e),e&&bt.test(e)?e.replace(gt,Un):e}function Sc(e,t,n){return e=Tl(e),t=n?J:t,t===J?B(e)?Z(e):g(e):e.match(t)||[]}function Ec(e){var t=null==e?0:e.length,i=Ao();return e=t?u(e,function(e){if("function"!=typeof e[1])throw new uu(ne);return[i(e[0]),e[1]]}):[],nr(function(i){for(var r=-1;++r<t;){var o=e[r];if(n(o[0],this,i))return n(o[1],this,i)}})}function Tc(e){return ri(ii(e,ae))}function Dc(e){return function(){return e}}function Ic(e,t){return null==e||e!==e?t:e}function kc(e){return e}function Mc(e){return Li("function"==typeof e?e:ii(e,ae))}function Pc(e){return Ui(ii(e,ae))}function $c(e,t){return ji(e,ii(t,ae))}function Nc(e,t,n){var i=Fl(t),o=mi(t,i);null!=n||rl(t)&&(o.length||!i.length)||(n=t,t=e,e=this,o=mi(t,Fl(t)));var a=!(rl(n)&&"chain"in n&&!n.chain),s=tl(e);return r(o,function(n){var i=t[n];e[n]=i,s&&(e.prototype[n]=function(){var t=this.__chain__;if(a||t){var n=e(this.__wrapped__);return(n.__actions__=Lr(this.__actions__)).push({func:i,args:arguments,thisArg:e}),n.__chain__=t,n}return i.apply(e,d([this.value()],arguments))})}),e}function Oc(){return Tn._===this&&(Tn._=wu),this}function Rc(){}function Lc(e){return e=Al(e),nr(function(t){return qi(t,e)})}function Gc(e){return Lo(e)?C(Jo(e)):Qi(e)}function Bc(e){return function(t){return null==e?J:gi(e,t)}}function Fc(){return[]}function Hc(){return!1}function Uc(){return{}}function jc(){return""}function Wc(){return!0}function zc(e,t){if((e=Al(e))<1||e>De)return[];var n=Me,i=qu(e,Me);t=Ao(t),e-=Me;for(var r=D(i,t);++n<e;)t(n);return r}function qc(e){return gh(e)?u(e,Jo):gl(e)?[e]:Lr(Md(Tl(e)))}function Vc(e){var t=++vu;return Tl(e)+t}function Yc(e){return e&&e.length?ci(e,kc,yi):J}function Kc(e,t){return e&&e.length?ci(e,Ao(t,2),yi):J}function Qc(e){return A(e,kc)}function Xc(e,t){return A(e,Ao(t,2))}function Zc(e){return e&&e.length?ci(e,kc,Fi):J}function Jc(e,t){return e&&e.length?ci(e,Ao(t,2),Fi):J}function eu(e){return e&&e.length?T(e,kc):0}function tu(e,t){return e&&e.length?T(e,Ao(t,2)):0}var nu=(x=null==x?Tn:jn.defaults(Tn.Object(),x,jn.pick(Tn,mn))).Array,iu=x.Date,ru=x.Error,ou=x.Function,au=x.Math,su=x.Object,lu=x.RegExp,cu=x.String,uu=x.TypeError,du=nu.prototype,hu=ou.prototype,pu=su.prototype,fu=x["__core-js_shared__"],mu=hu.toString,gu=pu.hasOwnProperty,vu=0,bu=function(){var e=/[^.]+$/.exec(fu&&fu.keys&&fu.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),yu=pu.toString,_u=mu.call(su),wu=Tn._,Au=lu("^"+mu.call(gu).replace(Tt,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Cu=kn?x.Buffer:J,xu=x.Symbol,Su=x.Uint8Array,Eu=Cu?Cu.allocUnsafe:J,Tu=U(su.getPrototypeOf,su),Du=su.create,Iu=pu.propertyIsEnumerable,ku=du.splice,Mu=xu?xu.isConcatSpreadable:J,Pu=xu?xu.iterator:J,$u=xu?xu.toStringTag:J,Nu=function(){try{var e=So(su,"defineProperty");return e({},"",{}),e}catch(e){}}(),Ou=x.clearTimeout!==Tn.clearTimeout&&x.clearTimeout,Ru=iu&&iu.now!==Tn.Date.now&&iu.now,Lu=x.setTimeout!==Tn.setTimeout&&x.setTimeout,Gu=au.ceil,Bu=au.floor,Fu=su.getOwnPropertySymbols,Hu=Cu?Cu.isBuffer:J,Uu=x.isFinite,ju=du.join,Wu=U(su.keys,su),zu=au.max,qu=au.min,Vu=iu.now,Yu=x.parseInt,Ku=au.random,Qu=du.reverse,Xu=So(x,"DataView"),Zu=So(x,"Map"),Ju=So(x,"Promise"),ed=So(x,"Set"),td=So(x,"WeakMap"),nd=So(su,"create"),id=td&&new td,rd={},od=ea(Xu),ad=ea(Zu),sd=ea(Ju),ld=ea(ed),cd=ea(td),ud=xu?xu.prototype:J,dd=ud?ud.valueOf:J,hd=ud?ud.toString:J,pd=function(){function e(){}return function(t){if(!rl(t))return{};if(Du)return Du(t);e.prototype=t;var n=new e;return e.prototype=J,n}}();q.templateSettings={escape:_t,evaluate:wt,interpolate:At,variable:"",imports:{_:q}},q.prototype=Q.prototype,q.prototype.constructor=q,X.prototype=pd(Q.prototype),X.prototype.constructor=X,Ot.prototype=pd(Q.prototype),Ot.prototype.constructor=Ot,Qt.prototype.clear=Xt,Qt.prototype.delete=Zt,Qt.prototype.get=Jt,Qt.prototype.has=en,Qt.prototype.set=tn,nn.prototype.clear=rn,nn.prototype.delete=on,nn.prototype.get=an,nn.prototype.has=sn,nn.prototype.set=ln,dn.prototype.clear=hn,dn.prototype.delete=pn,dn.prototype.get=fn,dn.prototype.has=yn,dn.prototype.set=_n,wn.prototype.add=wn.prototype.push=An,wn.prototype.has=Sn,En.prototype.clear=Dn,En.prototype.delete=In,En.prototype.get=Mn,En.prototype.has=Pn,En.prototype.set=Bn;var fd=jr(pi),md=jr(fi,!0),gd=Wr(),vd=Wr(!0),bd=id?function(e,t){return id.set(e,t),e}:kc,yd=Nu?function(e,t){return Nu(e,"toString",{configurable:!0,enumerable:!1,value:Dc(t),writable:!0})}:kc,_d=nr,wd=Ou||function(e){return Tn.clearTimeout(e)},Ad=ed&&1/W(new ed([,-0]))[1]==Te?function(e){return new ed(e)}:Rc,Cd=id?function(e){return id.get(e)}:Rc,xd=Fu?function(e){return null==e?[]:(e=su(e),s(Fu(e),function(t){return Iu.call(e,t)}))}:Fc,Sd=Fu?function(e){for(var t=[];e;)d(t,xd(e)),e=Tu(e);return t}:Fc,Ed=bi;(Xu&&Ed(new Xu(new ArrayBuffer(1)))!=it||Zu&&Ed(new Zu)!=We||Ju&&"[object Promise]"!=Ed(Ju.resolve())||ed&&Ed(new ed)!=Qe||td&&Ed(new td)!=et)&&(Ed=function(e){var t=bi(e),n=t==Ve?e.constructor:J,i=n?ea(n):"";if(i)switch(i){case od:return it;case ad:return We;case sd:return"[object Promise]";case ld:return Qe;case cd:return et}return t});var Td=fu?tl:Hc,Dd=Xo(bd),Id=Lu||function(e,t){return Tn.setTimeout(e,t)},kd=Xo(yd),Md=function(e){var t=Ms(e,function(e){return n.size===re&&n.clear(),e}),n=t.cache;return t}(function(e){var t=[];return St.test(e)&&t.push(""),e.replace(Et,function(e,n,i,r){t.push(i?r.replace(Rt,"$1"):n||e)}),t}),Pd=nr(function(e,t){return Vs(e)?si(e,hi(t,1,Vs,!0)):[]}),$d=nr(function(e,t){var n=wa(t);return Vs(n)&&(n=J),Vs(e)?si(e,hi(t,1,Vs,!0),Ao(n,2)):[]}),Nd=nr(function(e,t){var n=wa(t);return Vs(n)&&(n=J),Vs(e)?si(e,hi(t,1,Vs,!0),J,n):[]}),Od=nr(function(e){var t=u(e,wr);return t.length&&t[0]===e[0]?Ci(t):[]}),Rd=nr(function(e){var t=wa(e),n=u(e,wr);return t===wa(n)?t=J:n.pop(),n.length&&n[0]===e[0]?Ci(n,Ao(t,2)):[]}),Ld=nr(function(e){var t=wa(e),n=u(e,wr);return(t="function"==typeof t?t:J)&&n.pop(),n.length&&n[0]===e[0]?Ci(n,J,t):[]}),Gd=nr(xa),Bd=vo(function(e,t){var n=null==e?0:e.length,i=ti(e,t);return Zi(e,u(t,function(e){return Oo(e,n)?+e:e}).sort($r)),i}),Fd=nr(function(e){return fr(hi(e,1,Vs,!0))}),Hd=nr(function(e){var t=wa(e);return Vs(t)&&(t=J),fr(hi(e,1,Vs,!0),Ao(t,2))}),Ud=nr(function(e){var t=wa(e);return t="function"==typeof t?t:J,fr(hi(e,1,Vs,!0),J,t)}),jd=nr(function(e,t){return Vs(e)?si(e,t):[]}),Wd=nr(function(e){return yr(s(e,Vs))}),zd=nr(function(e){var t=wa(e);return Vs(t)&&(t=J),yr(s(e,Vs),Ao(t,2))}),qd=nr(function(e){var t=wa(e);return t="function"==typeof t?t:J,yr(s(e,Vs),J,t)}),Vd=nr(qa),Yd=nr(function(e){var t=e.length,n=t>1?e[t-1]:J;return n="function"==typeof n?(e.pop(),n):J,Va(e,n)}),Kd=vo(function(e){var t=e.length,n=t?e[0]:0,i=this.__wrapped__,r=function(t){return ti(t,e)};return!(t>1||this.__actions__.length)&&i instanceof Ot&&Oo(n)?((i=i.slice(n,+n+(t?1:0))).__actions__.push({func:Za,args:[r],thisArg:J}),new X(i,this.__chain__).thru(function(e){return t&&!e.length&&e.push(J),e})):this.thru(r)}),Qd=Hr(function(e,t,n){gu.call(e,n)?++e[n]:ei(e,n,1)}),Xd=Qr(da),Zd=Qr(ha),Jd=Hr(function(e,t,n){gu.call(e,n)?e[n].push(t):ei(e,n,[t])}),eh=nr(function(e,t,i){var r=-1,o="function"==typeof t,a=qs(e)?nu(e.length):[];return fd(e,function(e){a[++r]=o?n(t,e,i):Si(e,t,i)}),a}),th=Hr(function(e,t,n){ei(e,n,t)}),nh=Hr(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]}),ih=nr(function(e,t){if(null==e)return[];var n=t.length;return n>1&&Ro(e,t[0],t[1])?t=[]:n>2&&Ro(t[0],t[1],t[2])&&(t=[t[0]]),Vi(e,hi(t,1),[])}),rh=Ru||function(){return Tn.Date.now()},oh=nr(function(e,t,n){var i=de;if(n.length){var r=j(n,wo(oh));i|=ge}return co(e,i,t,n,r)}),ah=nr(function(e,t,n){var i=de|he;if(n.length){var r=j(n,wo(ah));i|=ge}return co(t,i,e,n,r)}),sh=nr(function(e,t){return ai(e,1,t)}),lh=nr(function(e,t,n){return ai(e,xl(t)||0,n)});Ms.Cache=dn;var ch=_d(function(e,t){var i=(t=1==t.length&&gh(t[0])?u(t[0],k(Ao())):u(hi(t,1),k(Ao()))).length;return nr(function(r){for(var o=-1,a=qu(r.length,i);++o<a;)r[o]=t[o].call(this,r[o]);return n(e,this,r)})}),uh=nr(function(e,t){var n=j(t,wo(uh));return co(e,ge,J,t,n)}),dh=nr(function(e,t){var n=j(t,wo(dh));return co(e,ve,J,t,n)}),hh=vo(function(e,t){return co(e,ye,J,J,J,t)}),ph=oo(yi),fh=oo(function(e,t){return e>=t}),mh=Ei(function(){return arguments}())?Ei:function(e){return ol(e)&&gu.call(e,"callee")&&!Iu.call(e,"callee")},gh=nu.isArray,vh=$n?k($n):Ti,bh=Hu||Hc,yh=Nn?k(Nn):Di,_h=On?k(On):Mi,wh=Rn?k(Rn):Ni,Ah=Ln?k(Ln):Oi,Ch=Gn?k(Gn):Ri,xh=oo(Fi),Sh=oo(function(e,t){return e<=t}),Eh=Ur(function(e,t){if(Ho(t)||qs(t))Gr(t,Fl(t),e);else for(var n in t)gu.call(t,n)&&Kn(e,n,t[n])}),Th=Ur(function(e,t){Gr(t,Hl(t),e)}),Dh=Ur(function(e,t,n,i){Gr(t,Hl(t),e,i)}),Ih=Ur(function(e,t,n,i){Gr(t,Fl(t),e,i)}),kh=vo(ti),Mh=nr(function(e){return e.push(J,uo),n(Dh,J,e)}),Ph=nr(function(e){return e.push(J,ho),n(Lh,J,e)}),$h=Jr(function(e,t,n){e[t]=n},Dc(kc)),Nh=Jr(function(e,t,n){gu.call(e,t)?e[t].push(n):e[t]=[n]},Ao),Oh=nr(Si),Rh=Ur(function(e,t,n){Wi(e,t,n)}),Lh=Ur(function(e,t,n,i){Wi(e,t,n,i)}),Gh=vo(function(e,t){var n={};if(null==e)return n;var i=!1;t=u(t,function(t){return t=Cr(t,e),i||(i=t.length>1),t}),Gr(e,yo(e),n),i&&(n=ii(n,ae|se|le,po));for(var r=t.length;r--;)mr(n,t[r]);return n}),Bh=vo(function(e,t){return null==e?{}:Yi(e,t)}),Fh=lo(Fl),Hh=lo(Hl),Uh=Vr(function(e,t,n){return t=t.toLowerCase(),e+(n?rc(t):t)}),jh=Vr(function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}),Wh=Vr(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}),zh=qr("toLowerCase"),qh=Vr(function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}),Vh=Vr(function(e,t,n){return e+(n?" ":"")+Kh(t)}),Yh=Vr(function(e,t,n){return e+(n?" ":"")+t.toUpperCase()}),Kh=qr("toUpperCase"),Qh=nr(function(e,t){try{return n(e,J,t)}catch(e){return Js(e)?e:new ru(e)}}),Xh=vo(function(e,t){return r(t,function(t){t=Jo(t),ei(e,t,oh(e[t],e))}),e}),Zh=Xr(),Jh=Xr(!0),ep=nr(function(e,t){return function(n){return Si(n,e,t)}}),tp=nr(function(e,t){return function(n){return Si(e,n,t)}}),np=to(u),ip=to(a),rp=to(f),op=ro(),ap=ro(!0),sp=eo(function(e,t){return e+t},0),lp=so("ceil"),cp=eo(function(e,t){return e/t},1),up=so("floor"),dp=eo(function(e,t){return e*t},1),hp=so("round"),pp=eo(function(e,t){return e-t},0);return q.after=xs,q.ary=Ss,q.assign=Eh,q.assignIn=Th,q.assignInWith=Dh,q.assignWith=Ih,q.at=kh,q.before=Es,q.bind=oh,q.bindAll=Xh,q.bindKey=ah,q.castArray=Bs,q.chain=Qa,q.chunk=ia,q.compact=ra,q.concat=oa,q.cond=Ec,q.conforms=Tc,q.constant=Dc,q.countBy=Qd,q.create=Dl,q.curry=Ts,q.curryRight=Ds,q.debounce=Is,q.defaults=Mh,q.defaultsDeep=Ph,q.defer=sh,q.delay=lh,q.difference=Pd,q.differenceBy=$d,q.differenceWith=Nd,q.drop=aa,q.dropRight=sa,q.dropRightWhile=la,q.dropWhile=ca,q.fill=ua,q.filter=ss,q.flatMap=ls,q.flatMapDeep=cs,q.flatMapDepth=us,q.flatten=pa,q.flattenDeep=fa,q.flattenDepth=ma,q.flip=ks,q.flow=Zh,q.flowRight=Jh,q.fromPairs=ga,q.functions=Ol,q.functionsIn=Rl,q.groupBy=Jd,q.initial=ya,q.intersection=Od,q.intersectionBy=Rd,q.intersectionWith=Ld,q.invert=$h,q.invertBy=Nh,q.invokeMap=eh,q.iteratee=Mc,q.keyBy=th,q.keys=Fl,q.keysIn=Hl,q.map=fs,q.mapKeys=Ul,q.mapValues=jl,q.matches=Pc,q.matchesProperty=$c,q.memoize=Ms,q.merge=Rh,q.mergeWith=Lh,q.method=ep,q.methodOf=tp,q.mixin=Nc,q.negate=Ps,q.nthArg=Lc,q.omit=Gh,q.omitBy=Wl,q.once=$s,q.orderBy=ms,q.over=np,q.overArgs=ch,q.overEvery=ip,q.overSome=rp,q.partial=uh,q.partialRight=dh,q.partition=nh,q.pick=Bh,q.pickBy=zl,q.property=Gc,q.propertyOf=Bc,q.pull=Gd,q.pullAll=xa,q.pullAllBy=Sa,q.pullAllWith=Ea,q.pullAt=Bd,q.range=op,q.rangeRight=ap,q.rearg=hh,q.reject=bs,q.remove=Ta,q.rest=Ns,q.reverse=Da,q.sampleSize=_s,q.set=Vl,q.setWith=Yl,q.shuffle=ws,q.slice=Ia,q.sortBy=ih,q.sortedUniq=Ra,q.sortedUniqBy=La,q.split=mc,q.spread=Os,q.tail=Ga,q.take=Ba,q.takeRight=Fa,q.takeRightWhile=Ha,q.takeWhile=Ua,q.tap=Xa,q.throttle=Rs,q.thru=Za,q.toArray=_l,q.toPairs=Fh,q.toPairsIn=Hh,q.toPath=qc,q.toPlainObject=Sl,q.transform=Kl,q.unary=Ls,q.union=Fd,q.unionBy=Hd,q.unionWith=Ud,q.uniq=ja,q.uniqBy=Wa,q.uniqWith=za,q.unset=Ql,q.unzip=qa,q.unzipWith=Va,q.update=Xl,q.updateWith=Zl,q.values=Jl,q.valuesIn=ec,q.without=jd,q.words=Sc,q.wrap=Gs,q.xor=Wd,q.xorBy=zd,q.xorWith=qd,q.zip=Vd,q.zipObject=Ya,q.zipObjectDeep=Ka,q.zipWith=Yd,q.entries=Fh,q.entriesIn=Hh,q.extend=Th,q.extendWith=Dh,Nc(q,q),q.add=sp,q.attempt=Qh,q.camelCase=Uh,q.capitalize=rc,q.ceil=lp,q.clamp=tc,q.clone=Fs,q.cloneDeep=Us,q.cloneDeepWith=js,q.cloneWith=Hs,q.conformsTo=Ws,q.deburr=oc,q.defaultTo=Ic,q.divide=cp,q.endsWith=ac,q.eq=zs,q.escape=sc,q.escapeRegExp=lc,q.every=as,q.find=Xd,q.findIndex=da,q.findKey=Il,q.findLast=Zd,q.findLastIndex=ha,q.findLastKey=kl,q.floor=up,q.forEach=ds,q.forEachRight=hs,q.forIn=Ml,q.forInRight=Pl,q.forOwn=$l,q.forOwnRight=Nl,q.get=Ll,q.gt=ph,q.gte=fh,q.has=Gl,q.hasIn=Bl,q.head=va,q.identity=kc,q.includes=ps,q.indexOf=ba,q.inRange=nc,q.invoke=Oh,q.isArguments=mh,q.isArray=gh,q.isArrayBuffer=vh,q.isArrayLike=qs,q.isArrayLikeObject=Vs,q.isBoolean=Ys,q.isBuffer=bh,q.isDate=yh,q.isElement=Ks,q.isEmpty=Qs,q.isEqual=Xs,q.isEqualWith=Zs,q.isError=Js,q.isFinite=el,q.isFunction=tl,q.isInteger=nl,q.isLength=il,q.isMap=_h,q.isMatch=al,q.isMatchWith=sl,q.isNaN=ll,q.isNative=cl,q.isNil=dl,q.isNull=ul,q.isNumber=hl,q.isObject=rl,q.isObjectLike=ol,q.isPlainObject=pl,q.isRegExp=wh,q.isSafeInteger=fl,q.isSet=Ah,q.isString=ml,q.isSymbol=gl,q.isTypedArray=Ch,q.isUndefined=vl,q.isWeakMap=bl,q.isWeakSet=yl,q.join=_a,q.kebabCase=jh,q.last=wa,q.lastIndexOf=Aa,q.lowerCase=Wh,q.lowerFirst=zh,q.lt=xh,q.lte=Sh,q.max=Yc,q.maxBy=Kc,q.mean=Qc,q.meanBy=Xc,q.min=Zc,q.minBy=Jc,q.stubArray=Fc,q.stubFalse=Hc,q.stubObject=Uc,q.stubString=jc,q.stubTrue=Wc,q.multiply=dp,q.nth=Ca,q.noConflict=Oc,q.noop=Rc,q.now=rh,q.pad=cc,q.padEnd=uc,q.padStart=dc,q.parseInt=hc,q.random=ic,q.reduce=gs,q.reduceRight=vs,q.repeat=pc,q.replace=fc,q.result=ql,q.round=hp,q.runInContext=m,q.sample=ys,q.size=As,q.snakeCase=qh,q.some=Cs,q.sortedIndex=ka,q.sortedIndexBy=Ma,q.sortedIndexOf=Pa,q.sortedLastIndex=$a,q.sortedLastIndexBy=Na,q.sortedLastIndexOf=Oa,q.startCase=Vh,q.startsWith=gc,q.subtract=pp,q.sum=eu,q.sumBy=tu,q.template=vc,q.times=zc,q.toFinite=wl,q.toInteger=Al,q.toLength=Cl,q.toLower=bc,q.toNumber=xl,q.toSafeInteger=El,q.toString=Tl,q.toUpper=yc,q.trim=_c,q.trimEnd=wc,q.trimStart=Ac,q.truncate=Cc,q.unescape=xc,q.uniqueId=Vc,q.upperCase=Yh,q.upperFirst=Kh,q.each=ds,q.eachRight=hs,q.first=va,Nc(q,function(){var e={};return pi(q,function(t,n){gu.call(q.prototype,n)||(e[n]=t)}),e}(),{chain:!1}),q.VERSION="4.17.4",r(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){q[e].placeholder=q}),r(["drop","take"],function(e,t){Ot.prototype[e]=function(n){n=n===J?1:zu(Al(n),0);var i=this.__filtered__&&!t?new Ot(this):this.clone();return i.__filtered__?i.__takeCount__=qu(n,i.__takeCount__):i.__views__.push({size:qu(n,Me),type:e+(i.__dir__<0?"Right":"")}),i},Ot.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}}),r(["filter","map","takeWhile"],function(e,t){var n=t+1,i=n==Se||3==n;Ot.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Ao(e,3),type:n}),t.__filtered__=t.__filtered__||i,t}}),r(["head","last"],function(e,t){var n="take"+(t?"Right":"");Ot.prototype[e]=function(){return this[n](1).value()[0]}}),r(["initial","tail"],function(e,t){var n="drop"+(t?"":"Right");Ot.prototype[e]=function(){return this.__filtered__?new Ot(this):this[n](1)}}),Ot.prototype.compact=function(){return this.filter(kc)},Ot.prototype.find=function(e){return this.filter(e).head()},Ot.prototype.findLast=function(e){return this.reverse().find(e)},Ot.prototype.invokeMap=nr(function(e,t){return"function"==typeof e?new Ot(this):this.map(function(n){return Si(n,e,t)})}),Ot.prototype.reject=function(e){return this.filter(Ps(Ao(e)))},Ot.prototype.slice=function(e,t){e=Al(e);var n=this;return n.__filtered__&&(e>0||t<0)?new Ot(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==J&&(n=(t=Al(t))<0?n.dropRight(-t):n.take(t-e)),n)},Ot.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},Ot.prototype.toArray=function(){return this.take(Me)},pi(Ot.prototype,function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),r=q[i?"take"+("last"==t?"Right":""):t],o=i||/^find/.test(t);r&&(q.prototype[t]=function(){var t=this.__wrapped__,a=i?[1]:arguments,s=t instanceof Ot,l=a[0],c=s||gh(t),u=function(e){var t=r.apply(q,d([e],a));return i&&h?t[0]:t};c&&n&&"function"==typeof l&&1!=l.length&&(s=c=!1);var h=this.__chain__,p=!!this.__actions__.length,f=o&&!h,m=s&&!p;if(!o&&c){t=m?t:new Ot(this);var g=e.apply(t,a);return g.__actions__.push({func:Za,args:[u],thisArg:J}),new X(g,h)}return f&&m?e.apply(this,a):(g=this.thru(u),f?i?g.value()[0]:g.value():g)})}),r(["pop","push","shift","sort","splice","unshift"],function(e){var t=du[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);q.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var r=this.value();return t.apply(gh(r)?r:[],e)}return this[n](function(n){return t.apply(gh(n)?n:[],e)})}}),pi(Ot.prototype,function(e,t){var n=q[t];if(n){var i=n.name+"";(rd[i]||(rd[i]=[])).push({name:t,func:n})}}),rd[Zr(J,he).name]=[{name:"wrapper",func:J}],Ot.prototype.clone=Vt,Ot.prototype.reverse=Yt,Ot.prototype.value=Kt,q.prototype.at=Kd,q.prototype.chain=Ja,q.prototype.commit=es,q.prototype.next=ts,q.prototype.plant=is,q.prototype.reverse=rs,q.prototype.toJSON=q.prototype.valueOf=q.prototype.value=os,q.prototype.first=q.prototype.head,Pu&&(q.prototype[Pu]=ns),q}();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Tn._=jn,define(function(){return jn})):In?((In.exports=jn)._=jn,Dn._=jn):Tn._=jn}.call(this),function(){function e(e){var t=e.__resizeTriggers__,n=t.firstElementChild,i=t.lastElementChild,r=n.firstElementChild;i.scrollLeft=i.scrollWidth,i.scrollTop=i.scrollHeight,r.style.width=n.offsetWidth+1+"px",r.style.height=n.offsetHeight+1+"px",n.scrollLeft=n.scrollWidth,n.scrollTop=n.scrollHeight}function t(e){return e.offsetWidth!=e.__resizeLast__.width||e.offsetHeight!=e.__resizeLast__.height}function n(n){var i=this;e(this),this.__resizeRAF__&&s(this.__resizeRAF__),this.__resizeRAF__=a(function(){t(i)&&(i.__resizeLast__.width=i.offsetWidth,i.__resizeLast__.height=i.offsetHeight,i.__resizeListeners__.forEach(function(e){e.call(i,n)}))})}function i(){if(!o){var e=(v||"")+".resize-triggers { "+(b||"")+'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e)),t.appendChild(n),o=!0}}var r=document.attachEvent,o=!1;if(!r){var a=function(){var e=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){return window.setTimeout(e,20)};return function(t){return e(t)}}(),s=function(){var e=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.webkitCancelAnimationFrame||window.clearTimeout;return function(t){return e(t)}}(),l=!1,c="",u="animationstart",d="Webkit Moz O ms".split(" "),h="webkitAnimationStart animationstart oAnimationStart MSAnimationStart".split(" "),p="",f=document.createElement("fakeelement");if(void 0!==f.style.animationName&&(l=!0),!1===l)for(var m=0;m<d.length;m++)if(void 0!==f.style[d[m]+"AnimationName"]){(p=d[m])+"Animation",c="-"+p.toLowerCase()+"-",u=h[m],l=!0;break}var g="resizeanim",v="@"+c+"keyframes "+g+" { from { opacity: 0; } to { opacity: 0; } } ",b=c+"animation: 1ms "+g+"; "}window.addResizeListener=function(t,o){r?t.attachEvent("onresize",o):(t.__resizeTriggers__||("static"==getComputedStyle(t).position&&(t.style.position="relative"),i(),t.__resizeLast__={},t.__resizeListeners__=[],(t.__resizeTriggers__=document.createElement("div")).className="resize-triggers",t.__resizeTriggers__.innerHTML='<div class="expand-trigger"><div></div></div><div class="contract-trigger"></div>',t.appendChild(t.__resizeTriggers__),e(t),t.addEventListener("scroll",n,!0),u&&t.__resizeTriggers__.addEventListener(u,function(n){n.animationName==g&&e(t)})),t.__resizeListeners__.push(o))},window.removeResizeListener=function(e,t){r?e.detachEvent("onresize",t):(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||(e.removeEventListener("scroll",n),e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)))}}(),function(e,t){"use strict";"function"==typeof define&&define.amd?define(["angular"],t):"object"==typeof exports?module.exports=t(require("angular")):t(e.angular)}(this,function(e){"use strict";return e.module("gridster",[]).constant("gridsterConfig",{columns:6,pushing:!0,floating:!0,swapping:!1,width:"auto",colWidth:"auto",rowHeight:"match",margins:[10,10],outerMargin:!0,sparse:!1,isMobile:!1,mobileBreakPoint:600,mobileModeEnabled:!0,minColumns:1,minRows:1,maxRows:100,defaultSizeX:2,defaultSizeY:1,minSizeX:1,maxSizeX:null,minSizeY:1,maxSizeY:null,saveGridItemCalculatedHeightInMobile:!1,resizable:{enabled:!0,handles:["s","e","n","w","se","ne","sw","nw"]},draggable:{enabled:!0,scrollSensitivity:20,scrollSpeed:15}}).controller("GridsterCtrl",["gridsterConfig","$timeout",function(t,n){var i=this;e.extend(this,t),this.resizable=e.extend({},t.resizable||{}),this.draggable=e.extend({},t.draggable||{});var r=!1;this.layoutChanged=function(){r||(r=!0,n(function(){r=!1,i.loaded&&i.floatItemsUp(),i.updateHeight(i.movingItem?i.movingItem.sizeY:0)},30))},this.grid=[],this.allItems=[],this.destroy=function(){this.grid&&(this.grid=[]),this.$element=null,this.allItems&&(this.allItems.length=0,this.allItems=null)},this.setOptions=function(t){if(t)if((t=e.extend({},t)).draggable&&(e.extend(this.draggable,t.draggable),delete t.draggable),t.resizable&&(e.extend(this.resizable,t.resizable),delete t.resizable),e.extend(this,t),this.margins&&2===this.margins.length)for(var n=0,i=this.margins.length;n<i;++n)this.margins[n]=parseInt(this.margins[n],10),isNaN(this.margins[n])&&(this.margins[n]=0);else this.margins=[0,0]},this.canItemOccupy=function(e,t,n){return t>-1&&n>-1&&e.sizeX+n<=this.columns&&e.sizeY+t<=this.maxRows},this.autoSetItemPosition=function(e){for(var t=0;t<this.maxRows;++t)for(var n=0;n<this.columns;++n)if(0===this.getItems(t,n,e.sizeX,e.sizeY,e).length&&this.canItemOccupy(e,t,n))return void this.putItem(e,t,n);throw new Error("Unable to place item!")},this.getItems=function(e,t,n,i,r){var o=[];n&&i||(n=i=1),!r||r instanceof Array||(r=[r]);var a;if(!1===this.sparse)for(var s=0;s<i;++s)for(var l=0;l<n;++l)!(a=this.getItem(e+s,t+l,r))||r&&-1!==r.indexOf(a)||-1!==o.indexOf(a)||o.push(a);else for(var c=e+i-1,u=t+n-1,d=0;d<this.allItems.length;++d)!(a=this.allItems[d])||r&&-1!==r.indexOf(a)||-1!==o.indexOf(a)||!this.intersect(a,t,u,e,c)||o.push(a);return o},this.getBoundingBox=function(e){if(0===e.length)return null;if(1===e.length)return{row:e[0].row,col:e[0].col,sizeY:e[0].sizeY,sizeX:e[0].sizeX};for(var t=0,n=0,i=9999,r=9999,o=0,a=e.length;o<a;++o){var s=e[o];i=Math.min(s.row,i),r=Math.min(s.col,r),t=Math.max(s.row+s.sizeY,t),n=Math.max(s.col+s.sizeX,n)}return{row:i,col:r,sizeY:t-i,sizeX:n-r}},this.intersect=function(e,t,n,i,r){return t<=e.col+e.sizeX-1&&n>=e.col&&i<=e.row+e.sizeY-1&&r>=e.row},this.removeItem=function(e){for(var t,n=0,i=this.grid.length;n<i;++n){var r=this.grid[n];if(r&&-1!==(t=r.indexOf(e))){r[t]=null;break}}this.sparse&&-1!==(t=this.allItems.indexOf(e))&&this.allItems.splice(t,1),this.layoutChanged()},this.getItem=function(e,t,n){!n||n instanceof Array||(n=[n]);for(var i=1;e>-1;){for(var r=1,o=t;o>-1;){var a=this.grid[e];if(a){var s=a[o];if(s&&(!n||-1===n.indexOf(s))&&s.sizeX>=r&&s.sizeY>=i)return s}++r,--o}--e,++i}return null},this.putItems=function(e){for(var t=0,n=e.length;t<n;++t)this.putItem(e[t])},this.putItem=function(e,t,n,i){if(void 0!==t&&null!==t||(t=e.row,n=e.col,void 0!==t&&null!==t)){if(this.canItemOccupy(e,t,n)||(n=Math.min(this.columns-e.sizeX,Math.max(0,n)),t=Math.min(this.maxRows-e.sizeY,Math.max(0,t))),null!==e.oldRow&&void 0!==e.oldRow){var r=e.oldRow===t&&e.oldColumn===n,o=this.grid[t]&&this.grid[t][n]===e;if(r&&o)return e.row=t,void(e.col=n);var a=this.grid[e.oldRow];a&&a[e.oldColumn]===e&&delete a[e.oldColumn]}e.oldRow=e.row=t,e.oldColumn=e.col=n,this.moveOverlappingItems(e,i),this.grid[t]||(this.grid[t]=[]),this.grid[t][n]=e,this.sparse&&-1===this.allItems.indexOf(e)&&this.allItems.push(e),this.movingItem===e&&this.floatItemUp(e),this.layoutChanged()}else this.autoSetItemPosition(e)},this.swapItems=function(e,t){this.grid[e.row][e.col]=t,this.grid[t.row][t.col]=e;var n=e.row,i=e.col;e.row=t.row,e.col=t.col,t.row=n,t.col=i},this.moveOverlappingItems=function(e,t){t?-1===t.indexOf(e)&&(t=t.slice(0)).push(e):t=[e];var n=this.getItems(e.row,e.col,e.sizeX,e.sizeY,t);this.moveItemsDown(n,e.row+e.sizeY,t)},this.moveItemsDown=function(e,t,n){if(e&&0!==e.length){e.sort(function(e,t){return e.row-t.row}),n=n?n.slice(0):[];var i,r,o,a={};for(r=0,o=e.length;r<o;++r){var s=a[(i=e[r]).col];(void 0===s||i.row<s)&&(a[i.col]=i.row)}for(r=0,o=e.length;r<o;++r){var l=t-a[(i=e[r]).col];this.moveItemDown(i,i.row+l,n),n.push(i)}}},this.moveItemDown=function(e,t,n){if(!(e.row>=t)){for(;e.row<t;)++e.row,this.moveOverlappingItems(e,n);this.putItem(e,e.row,e.col,n)}},this.floatItemsUp=function(){if(!1!==this.floating)for(var e=0,t=this.grid.length;e<t;++e){var n=this.grid[e];if(n)for(var i=0,r=n.length;i<r;++i){var o=n[i];o&&this.floatItemUp(o)}}},this.floatItemUp=function(e){if(!1!==this.floating){for(var t=e.col,n=e.sizeY,i=e.sizeX,r=null,o=null,a=e.row-1;a>-1&&0===this.getItems(a,t,i,n,e).length;)r=a,o=t,--a;null!==r&&this.putItem(e,r,o)}},this.updateHeight=function(e){var t=this.minRows;e=e||0;for(var n=this.grid.length;n>=0;--n){var i=this.grid[n];if(i)for(var r=0,o=i.length;r<o;++r)i[r]&&(t=Math.max(t,n+e+i[r].sizeY))}this.gridHeight=this.maxRows-t>0?Math.min(this.maxRows,t):Math.max(this.maxRows,t)},this.pixelsToRows=function(e,t){return this.outerMargin||(e+=this.margins[0]/2),!0===t?Math.ceil(e/this.curRowHeight):!1===t?Math.floor(e/this.curRowHeight):Math.round(e/this.curRowHeight)},this.pixelsToColumns=function(e,t){return this.outerMargin||(e+=this.margins[1]/2),!0===t?Math.ceil(e/this.curColWidth):!1===t?Math.floor(e/this.curColWidth):Math.round(e/this.curColWidth)}}]).directive("gridsterPreview",function(){return{replace:!0,scope:!0,require:"^gridster",template:'<div ng-style="previewStyle()" class="gridster-item gridster-preview-holder"></div>',link:function(e,t,n,i){e.previewStyle=function(){return i.movingItem?{display:"block",height:i.movingItem.sizeY*i.curRowHeight-i.margins[0]+"px",width:i.movingItem.sizeX*i.curColWidth-i.margins[1]+"px",top:i.movingItem.row*i.curRowHeight+(i.outerMargin?i.margins[0]:0)+"px",left:i.movingItem.col*i.curColWidth+(i.outerMargin?i.margins[1]:0)+"px"}:{display:"none"}}}}}).directive("gridster",["$timeout","$window","$rootScope","gridsterDebounce",function(t,n,i,r){return{scope:!0,restrict:"EAC",controller:"GridsterCtrl",controllerAs:"gridster",compile:function(o){return o.prepend('<div ng-if="gridster.movingItem" gridster-preview></div>'),function(o,a,s,l){function c(){a.css("height",l.gridHeight*l.curRowHeight+(l.outerMargin?l.margins[0]:-l.margins[0])+"px")}function u(e){if(l.setOptions(e),d(a[0])){"auto"===l.width?l.curWidth=a[0].offsetWidth||parseInt(a.css("width"),10):l.curWidth=l.width,"auto"===l.colWidth?l.curColWidth=(l.curWidth+(l.outerMargin?-l.margins[1]:l.margins[1]))/l.columns:l.curColWidth=l.colWidth,l.curRowHeight=l.rowHeight,"string"==typeof l.rowHeight&&("match"===l.rowHeight?l.curRowHeight=Math.round(l.curColWidth):-1!==l.rowHeight.indexOf("*")?l.curRowHeight=Math.round(l.curColWidth*l.rowHeight.replace("*","").replace(" ","")):-1!==l.rowHeight.indexOf("/")&&(l.curRowHeight=Math.round(l.curColWidth/l.rowHeight.replace("/","").replace(" ","")))),l.isMobile=l.mobileModeEnabled&&l.curWidth<=l.mobileBreakPoint;for(var t=0,n=l.grid.length;t<n;++t){var i=l.grid[t];if(i)for(var r=0,o=i.length;r<o;++r)if(i[r]){var s=i[r];s.setElementPosition(),s.setElementSizeY(),s.setElementSizeX()}}c()}}l.loaded=!1,l.$element=a,o.gridster=l,a.addClass("gridster");var d=function(e){return"hidden"!==e.style.visibility&&"none"!==e.style.display};o.$watch(function(){return l.gridHeight},c),o.$watch(function(){return l.movingItem},function(){l.updateHeight(l.movingItem?l.movingItem.sizeY:0)});var h=s.gridster;h?o.$parent.$watch(h,function(e){u(e)},!0):u({}),o.$watch(function(){return l.loaded},function(){l.loaded?(a.addClass("gridster-loaded"),i.$broadcast("gridster-loaded",l)):a.removeClass("gridster-loaded")}),o.$watch(function(){return l.isMobile},function(){l.isMobile?a.addClass("gridster-mobile").removeClass("gridster-desktop"):a.removeClass("gridster-mobile").addClass("gridster-desktop"),i.$broadcast("gridster-mobile-changed",l)}),o.$watch(function(){return l.draggable},function(){i.$broadcast("gridster-draggable-changed",l)},!0),o.$watch(function(){return l.resizable},function(){i.$broadcast("gridster-resizable-changed",l)},!0);var p=a[0].offsetWidth||parseInt(a.css("width"),10),f=function(){var e=a[0].offsetWidth||parseInt(a.css("width"),10);e&&e!==p&&!l.movingItem&&(p=e,l.loaded&&a.removeClass("gridster-loaded"),u(),l.loaded&&a.addClass("gridster-loaded"),i.$broadcast("gridster-resized",[e,a[0].offsetHeight],l))},m=r(function(){f(),t(function(){o.$apply()})},100);o.$watch(function(){return d(a[0])},m),"function"==typeof window.addResizeListener?window.addResizeListener(a[0],m):o.$watch(function(){return a[0].offsetWidth||parseInt(a.css("width"),10)},f);var g=e.element(n);g.on("resize",m),o.$on("$destroy",function(){l.destroy(),g.off("resize",m),"function"==typeof window.removeResizeListener&&window.removeResizeListener(a[0],m)}),t(function(){o.$watch("gridster.floating",function(){l.floatItemsUp()}),l.loaded=!0},100)}}}}]).controller("GridsterItemCtrl",function(){this.$element=null,this.gridster=null,this.row=null,this.col=null,this.sizeX=null,this.sizeY=null,this.minSizeX=0,this.minSizeY=0,this.maxSizeX=null,this.maxSizeY=null,this.init=function(e,t){this.$element=e,this.gridster=t,this.sizeX=t.defaultSizeX,this.sizeY=t.defaultSizeY},this.destroy=function(){this.gridster=null,this.$element=null},this.toJSON=function(){return{row:this.row,col:this.col,sizeY:this.sizeY,sizeX:this.sizeX}},this.isMoving=function(){return this.gridster.movingItem===this},this.setPosition=function(e,t){this.gridster.putItem(this,e,t),this.isMoving()||this.setElementPosition()},this.setSize=function(e,t,n){var i="size"+(e=e.toUpperCase()),r="Size"+e;if(""!==t){t=parseInt(t,10),(isNaN(t)||0===t)&&(t=this.gridster["default"+r]);var o="X"===e?this.gridster.columns:this.gridster.maxRows;this["max"+r]&&(o=Math.min(this["max"+r],o)),this.gridster["max"+r]&&(o=Math.min(this.gridster["max"+r],o)),"X"===e&&this.cols?o-=this.cols:"Y"===e&&this.rows&&(o-=this.rows);var a=0;this["min"+r]&&(a=Math.max(this["min"+r],a)),this.gridster["min"+r]&&(a=Math.max(this.gridster["min"+r],a)),t=Math.max(Math.min(t,o),a);var s=this[i]!==t||this["old"+r]&&this["old"+r]!==t;return this["old"+r]=this[i]=t,this.isMoving()||this["setElement"+r](),!n&&s&&(this.gridster.moveOverlappingItems(this),this.gridster.layoutChanged()),s}},this.setSizeY=function(e,t){return this.setSize("Y",e,t)},this.setSizeX=function(e,t){return this.setSize("X",e,t)},this.setElementPosition=function(){this.gridster.isMobile?this.$element.css({marginLeft:this.gridster.margins[0]+"px",marginRight:this.gridster.margins[0]+"px",marginTop:this.gridster.margins[1]+"px",marginBottom:this.gridster.margins[1]+"px",top:"",left:""}):this.$element.css({margin:0,top:this.row*this.gridster.curRowHeight+(this.gridster.outerMargin?this.gridster.margins[0]:0)+"px",left:this.col*this.gridster.curColWidth+(this.gridster.outerMargin?this.gridster.margins[1]:0)+"px"})},this.setElementSizeY=function(){this.gridster.isMobile&&!this.gridster.saveGridItemCalculatedHeightInMobile?this.$element.css("height",""):this.$element.css("height",this.sizeY*this.gridster.curRowHeight-this.gridster.margins[0]+"px")},this.setElementSizeX=function(){this.gridster.isMobile?this.$element.css("width",""):this.$element.css("width",this.sizeX*this.gridster.curColWidth-this.gridster.margins[1]+"px")},this.getElementSizeX=function(){return this.sizeX*this.gridster.curColWidth-this.gridster.margins[1]},this.getElementSizeY=function(){return this.sizeY*this.gridster.curRowHeight-this.gridster.margins[0]}}).factory("GridsterTouch",[function(){return function(e,t,n,i){var r,o,a={},s=function(e){if(Object.keys)return Object.keys(e).length;var t,n=0;for(t in e)++n;return n},l=function(e){for(var t=0,n=0,i=navigator.userAgent.match(/\bMSIE\b/),r=e;null!=r;r=r.offsetParent)i&&(!document.documentMode||document.documentMode<8)&&"relative"===r.currentStyle.position&&r.offsetParent&&"relative"===r.offsetParent.currentStyle.position&&r.offsetLeft===r.offsetParent.offsetLeft?n+=r.offsetTop:(t+=r.offsetLeft,n+=r.offsetTop);return{x:t,y:n}},c=l(e),u=!1,d=function(r){if("mousemove"!==r.type||0!==s(a)){for(var o=!0,h=r.changedTouches?r.changedTouches:[r],p=0;p<h.length;++p){var f=h[p],m=void 0!==f.identifier?f.identifier:void 0!==f.pointerId?f.pointerId:1;if(void 0===f.pageX)if(f.pageX=f.offsetX+c.x,f.pageY=f.offsetY+c.y,f.srcElement.offsetParent===e&&document.documentMode&&8===document.documentMode&&"mousedown"===f.type)f.pageX+=f.srcElement.offsetLeft,f.pageY+=f.srcElement.offsetTop;else if(f.srcElement!==e&&!document.documentMode||document.documentMode<8){for(var g=-2,v=-2,b=f.srcElement;null!==b;b=b.parentNode)g+=b.scrollLeft?b.scrollLeft:0,v+=b.scrollTop?b.scrollTop:0;f.pageX=f.clientX+g,f.pageY=f.clientY+v}var y=f.pageX,_=f.pageY;r.type.match(/(start|down)$/i)?(c=l(e),a[m]&&(i&&i({target:r.target,which:r.which,pointerId:m,pageX:y,pageY:_}),delete a[m]),t&&o&&(o=t({target:r.target,which:r.which,pointerId:m,pageX:y,pageY:_})),a[m]={x:y,y:_},e.msSetPointerCapture&&o?e.msSetPointerCapture(m):"mousedown"===r.type&&1===s(a)&&(u?e.setCapture(!0):(document.addEventListener("mousemove",d,!1),document.addEventListener("mouseup",d,!1)))):r.type.match(/move$/i)?!a[m]||a[m].x===y&&a[m].y===_||(n&&o&&(o=n({target:r.target,which:r.which,pointerId:m,pageX:y,pageY:_})),a[m].x=y,a[m].y=_):a[m]&&r.type.match(/(up|end|cancel)$/i)&&(i&&o&&(o=i({target:r.target,which:r.which,pointerId:m,pageX:y,pageY:_})),delete a[m],e.msReleasePointerCapture?e.msReleasePointerCapture(m):"mouseup"===r.type&&0===s(a)&&(u?e.releaseCapture():(document.removeEventListener("mousemove",d,!1),document.removeEventListener("mouseup",d,!1))))}o&&(r.preventDefault&&r.preventDefault(),r.preventManipulation&&r.preventManipulation(),r.preventMouseEvent&&r.preventMouseEvent())}};return this.enable=function(){window.navigator.msPointerEnabled?(e.addEventListener("MSPointerDown",d,!1),e.addEventListener("MSPointerMove",d,!1),e.addEventListener("MSPointerUp",d,!1),e.addEventListener("MSPointerCancel",d,!1),void 0!==e.style.msContentZooming&&(r=e.style.msContentZooming,e.style.msContentZooming="none"),void 0!==e.style.msTouchAction&&(o=e.style.msTouchAction,e.style.msTouchAction="none")):e.addEventListener?(e.addEventListener("touchstart",d,!1),e.addEventListener("touchmove",d,!1),e.addEventListener("touchend",d,!1),e.addEventListener("touchcancel",d,!1),e.addEventListener("mousedown",d,!1),e.setCapture&&!window.navigator.userAgent.match(/\bGecko\b/)&&(u=!0,e.addEventListener("mousemove",d,!1),e.addEventListener("mouseup",d,!1))):e.attachEvent&&e.setCapture&&(u=!0,e.attachEvent("onmousedown",function(){return d(window.event),window.event.returnValue=!1,!1}),e.attachEvent("onmousemove",function(){return d(window.event),window.event.returnValue=!1,!1}),e.attachEvent("onmouseup",function(){return d(window.event),window.event.returnValue=!1,!1}))},this.disable=function(){window.navigator.msPointerEnabled?(e.removeEventListener("MSPointerDown",d,!1),e.removeEventListener("MSPointerMove",d,!1),e.removeEventListener("MSPointerUp",d,!1),e.removeEventListener("MSPointerCancel",d,!1),r&&(e.style.msContentZooming=r),o&&(e.style.msTouchAction=o)):e.removeEventListener?(e.removeEventListener("touchstart",d,!1),e.removeEventListener("touchmove",d,!1),e.removeEventListener("touchend",d,!1),e.removeEventListener("touchcancel",d,!1),e.removeEventListener("mousedown",d,!1),e.setCapture&&!window.navigator.userAgent.match(/\bGecko\b/)&&(u=!0,e.removeEventListener("mousemove",d,!1),e.removeEventListener("mouseup",d,!1))):e.detachEvent&&e.setCapture&&(u=!0,e.detachEvent("onmousedown"),e.detachEvent("onmousemove"),e.detachEvent("onmouseup"))},this}}]).factory("GridsterDraggable",["$document","$window","GridsterTouch",function(t,n,i){function r(r,o,a,s,l){function c(e){r.addClass("gridster-item-moving"),a.movingItem=s,a.updateHeight(s.sizeY),o.$apply(function(){a.draggable&&a.draggable.start&&a.draggable.start(e,r,l,s)})}function u(e){var t=s.row,i=s.col,c=a.draggable&&a.draggable.drag,u=a.draggable.scrollSensitivity,d=a.draggable.scrollSpeed,h=Math.min(a.pixelsToRows(g),a.maxRows-1),p=Math.min(a.pixelsToColumns(m),a.columns-1),f=a.getItems(h,p,s.sizeX,s.sizeY,s),v=0!==f.length;if(!0===a.swapping&&v){var b=a.getBoundingBox(f),y=b.sizeX===s.sizeX&&b.sizeY===s.sizeY,_=b.row===t,w=b.col===i,A=b.row===h&&b.col===p,C=_||w;if(y&&1===f.length){if(A)a.swapItems(s,f[0]);else if(C)return}else if(b.sizeX<=s.sizeX&&b.sizeY<=s.sizeY&&C)for(var x=s.row<=h?s.row:h+s.sizeY,S=s.col<=p?s.col:p+s.sizeX,E=x-b.row,T=S-b.col,D=0,k=f.length;D<k;++D){var M=f[D];0===a.getItems(M.row+E,M.col+T,M.sizeX,M.sizeY,s).length&&a.putItem(M,M.row+E,M.col+T)}}!1===a.pushing&&v||(s.row=h,s.col=p),e.pageY-I.body.scrollTop<u?I.body.scrollTop=I.body.scrollTop-d:n.innerHeight-(e.pageY-I.body.scrollTop)<u&&(I.body.scrollTop=I.body.scrollTop+d),e.pageX-I.body.scrollLeft<u?I.body.scrollLeft=I.body.scrollLeft-d:n.innerWidth-(e.pageX-I.body.scrollLeft)<u&&(I.body.scrollLeft=I.body.scrollLeft+d),(c||t!==s.row||i!==s.col)&&o.$apply(function(){c&&a.draggable.drag(e,r,l,s)})}function d(e){r.removeClass("gridster-item-moving");var t=Math.min(a.pixelsToRows(g),a.maxRows-1),n=Math.min(a.pixelsToColumns(m),a.columns-1);!1===a.pushing&&0!==a.getItems(t,n,s.sizeX,s.sizeY,s).length||(s.row=t,s.col=n),a.movingItem=null,s.setPosition(s.row,s.col),o.$apply(function(){a.draggable&&a.draggable.stop&&a.draggable.stop(e,r,l,s)})}function h(t){if(-1!==k.indexOf(t.target.nodeName.toLowerCase()))return!1;var n=e.element(t.target);if(n.hasClass("gridster-item-resizable-handler"))return!1;if(n.attr("onclick")||n.attr("ng-click"))return!1;if(n.closest&&n.closest(".gridster-no-drag").length)return!1;if(a.draggable&&a.draggable.handle){var i=e.element(r[0].querySelectorAll(a.draggable.handle)),o=!1;e:for(var l=0,u=i.length;l<u;++l){var d=i[l];if(d===t.target){o=!0;break}for(var h=t.target,p=0;p<20;++p){var f=h.parentNode;if(f===r[0]||!f)break;if(f===d){o=!0;break e}h=f}}if(!o)return!1}switch(t.which){case 1:break;case 2:case 3:return}return C=t.pageX,x=t.pageY,m=parseInt(r.css("left"),10),g=parseInt(r.css("top"),10),v=r[0].offsetWidth,b=r[0].offsetHeight,y=s.col,_=s.row,c(t),!0}function p(e){if(!r.hasClass("gridster-item-moving")||r.hasClass("gridster-item-resizing"))return!1;var t=a.curWidth-1,n=a.curRowHeight*a.maxRows-1;w=e.pageX,A=e.pageY;var i=w-C+S,o=A-x+E;S=E=0,C=w,x=A;var s=i,l=o;return m+s<D?S=s-(i=D-m):m+v+s>t&&(S=s-(i=t-m-v)),g+l<T?E=l-(o=T-g):g+b+l>n&&(E=l-(o=n-g-b)),m+=i,g+=o,r.css({top:g+"px",left:m+"px"}),u(e),!0}function f(e){return!(!r.hasClass("gridster-item-moving")||r.hasClass("gridster-item-resizing"))&&(S=E=0,d(e),!0)}var m,g,v,b,y,_,w=0,A=0,C=0,x=0,S=0,E=0,T=0,D=0,I=t[0],k=["select","option","input","textarea","button"],M=null,P=null;this.enable=function(){!0!==M&&(M=!0,P?P.enable():(P=new i(r[0],h,p,f)).enable())},this.disable=function(){!1!==M&&(M=!1,P&&P.disable())},this.toggle=function(e){e?this.enable():this.disable()},this.destroy=function(){this.disable()}}return r}]).factory("GridsterResizable",["GridsterTouch",function(t){function n(n,i,r,o,a){function s(s){function l(e){n.addClass("gridster-item-moving"),n.addClass("gridster-item-resizing"),r.movingItem=o,o.setElementSizeX(),o.setElementSizeY(),o.setElementPosition(),r.updateHeight(1),i.$apply(function(){r.resizable&&r.resizable.start&&r.resizable.start(e,n,a,o)})}function c(e){var t=o.row,l=o.col,c=o.sizeX,u=o.sizeY,d=r.resizable&&r.resizable.resize,h=o.col;-1!==["w","nw","sw"].indexOf(s)&&(h=r.pixelsToColumns(f,!1));var p=o.row;-1!==["n","ne","nw"].indexOf(s)&&(p=r.pixelsToRows(m,!1));var b=o.sizeX;-1===["n","s"].indexOf(s)&&(b=r.pixelsToColumns(g,!0));var y=o.sizeY;-1===["e","w"].indexOf(s)&&(y=r.pixelsToRows(v,!0)),!(p>-1&&h>-1&&b+h<=r.columns&&y+p<=r.maxRows)||!1===r.pushing&&0!==r.getItems(p,h,b,y,o).length||(o.row=p,o.col=h,o.sizeX=b,o.sizeY=y);var _=o.row!==t||o.col!==l||o.sizeX!==c||o.sizeY!==u;(d||_)&&i.$apply(function(){d&&r.resizable.resize(e,n,a,o)})}function u(e){n.removeClass("gridster-item-moving"),n.removeClass("gridster-item-resizing"),r.movingItem=null,o.setPosition(o.row,o.col),o.setSizeY(o.sizeY),o.setSizeX(o.sizeX),i.$apply(function(){r.resizable&&r.resizable.stop&&r.resizable.stop(e,n,a,o)})}function d(e){switch(e.which){case 1:break;case 2:case 3:return}return(_=r.draggable.enabled)&&(r.draggable.enabled=!1,i.$broadcast("gridster-draggable-changed",r)),S=e.pageX,E=e.pageY,f=parseInt(n.css("left"),10),m=parseInt(n.css("top"),10),g=n[0].offsetWidth,v=n[0].offsetHeight,b=o.sizeX,y=o.sizeY,l(e),!0}function h(e){var t=r.curWidth-1;C=e.pageX,x=e.pageY;var i=C-S+T,o=x-E+D;T=D=0,S=C,E=x;var a=o,s=i;return A.indexOf("n")>=0&&(v-a<P()?(o=v-P(),D=a-o):m+a<I&&(D=a-(o=I-m)),m+=o,v-=o),A.indexOf("s")>=0&&(v+a<P()?(o=P()-v,D=a-o):m+v+a>k&&(D=a-(o=k-m-v)),v+=o),A.indexOf("w")>=0&&(g-s<$()?(i=g-$(),T=s-i):f+s<M&&(T=s-(i=M-f)),f+=i,g-=i),A.indexOf("e")>=0&&(g+s<$()?(i=$()-g,T=s-i):f+g+s>t&&(T=s-(i=t-f-g)),g+=i),n.css({top:m+"px",left:f+"px",width:g+"px",height:v+"px"}),c(e),!0}function p(e){return r.draggable.enabled!==_&&(r.draggable.enabled=_,i.$broadcast("gridster-draggable-changed",r)),T=D=0,u(e),!0}var f,m,g,v,b,y,_,w,A=s,C=0,x=0,S=0,E=0,T=0,D=0,I=0,k=9999,M=0,P=function(){return(o.minSizeY?o.minSizeY:1)*r.curRowHeight-r.margins[0]},$=function(){return(o.minSizeX?o.minSizeX:1)*r.curColWidth-r.margins[1]},N=null;this.enable=function(){N||(N=e.element('<div class="gridster-item-resizable-handler handle-'+A+'"></div>'),n.append(N)),(w=new t(N[0],d,h,p)).enable()},this.disable=function(){N&&(N.remove(),N=null),w.disable(),w=void 0},this.destroy=function(){this.disable()}}var l=[],c=r.resizable.handles;"string"==typeof c&&(c=r.resizable.handles.split(","));for(var u=!1,d=0,h=c.length;d<h;d++)l.push(new s(c[d]));this.enable=function(){if(!u){for(var e=0,t=l.length;e<t;e++)l[e].enable();u=!0}},this.disable=function(){if(u){for(var e=0,t=l.length;e<t;e++)l[e].disable();u=!1}},this.toggle=function(e){e?this.enable():this.disable()},this.destroy=function(){for(var e=0,t=l.length;e<t;e++)l[e].destroy()}}return n}]).factory("gridsterDebounce",function(){return function(e,t,n){var i;return function(){var r=this,o=arguments,a=function(){i=null,n||e.apply(r,o)},s=n&&!i;clearTimeout(i),i=setTimeout(a,t),s&&e.apply(r,o)}}}).directive("gridsterItem",["$parse","GridsterDraggable","GridsterResizable","gridsterDebounce",function(e,t,n,i){return{scope:!0,restrict:"EA",controller:"GridsterItemCtrl",controllerAs:"gridsterItem",require:["^gridster","gridsterItem"],link:function(r,o,a,s){function l(){p.setPosition(p.row,p.col),g.row&&g.row.assign&&g.row.assign(r,p.row),g.col&&g.col.assign&&g.col.assign(r,p.col)}function c(){var e=p.setSizeX(p.sizeX,!0);e&&g.sizeX&&g.sizeX.assign&&g.sizeX.assign(r,p.sizeX);var t=p.setSizeY(p.sizeY,!0);t&&g.sizeY&&g.sizeY.assign&&g.sizeY.assign(r,p.sizeY),(e||t)&&(p.gridster.moveOverlappingItems(p),h.layoutChanged(),r.$broadcast("gridster-item-resized",p))}var u,d=a.gridsterItem,h=s[0],p=s[1];if(r.gridster=h,d){var f=e(d);!(u=f(r)||{})&&f.assign&&(u={row:p.row,col:p.col,sizeX:p.sizeX,sizeY:p.sizeY,minSizeX:0,minSizeY:0,maxSizeX:null,maxSizeY:null},f.assign(r,u))}else u=a;p.init(o,h),o.addClass("gridster-item");for(var m=["minSizeX","maxSizeX","minSizeY","maxSizeY","sizeX","sizeY","row","col"],g={},v=[],b=0,y=m.length;b<y;++b)!function(t){var n;if("string"==typeof u[t])n=u[t];else if("string"==typeof u[t.toLowerCase()])n=u[t.toLowerCase()];else{if(!d)return;n=d+"."+t}v.push('"'+t+'":'+n),g[t]=e(n);var i=g[t](r);"number"==typeof i&&(p[t]=i)}(m[b]);var _="{"+v.join(",")+"}";r.$watchCollection(_,function(e,t){for(var n in e){var i=e[n];t[n]!==i&&(i=parseInt(i,10),isNaN(i)||(p[n]=i))}}),r.$watch(function(){return p.row+","+p.col},l),r.$watch(function(){return p.sizeY+","+p.sizeX+","+p.minSizeX+","+p.maxSizeX+","+p.minSizeY+","+p.maxSizeY},c);var w=new t(o,r,h,p,u),A=new n(o,r,h,p,u),C=function(){A.toggle(!h.isMobile&&h.resizable&&h.resizable.enabled)};C();var x=function(){w.toggle(!h.isMobile&&h.draggable&&h.draggable.enabled)};x(),r.$on("gridster-draggable-changed",x),r.$on("gridster-resizable-changed",C),r.$on("gridster-resized",C),r.$on("gridster-mobile-changed",function(){C(),x()});var S=i(function(){r.$apply(function(){r.$broadcast("gridster-item-transition-end",p)})},50);return o.on(function(){var e=document.createElement("div"),t={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(var n in t)if(void 0!==e.style[n])return t[n]}(),S),r.$broadcast("gridster-item-initialized",p),r.$on("$destroy",function(){try{A.destroy(),w.destroy()}catch(e){}try{h.removeItem(p)}catch(e){}try{p.destroy()}catch(e){}})}}}]).directive("gridsterNoDrag",function(){return{restrict:"A",link:function(e,t){t.addClass("gridster-no-drag")}}})}),function(){"use strict";function e(e,i){return{restrict:"EA",scope:{gmtOffset:"=gmtOffset",digitalFormat:"=digitalFormat",showDigital:"=showDigital",showAnalog:"=showAnalog",startTime:"=startTime",theme:"=theme"},template:'<div class="widget-clock" ng-class="themeClass" ng-if="date"><div class="digital" ng-if="digital"><span class="time"><span class="hours">{{digital}}</span></span></div><div class="analog" ng-if="analog"><div class="square"><svg viewBox="0 0 100 100"><g transform="translate(50,50)"><circle class="clock-face" r="48" /><line ng-repeat="minor in minors track by $index" class="minor" y1="42" y2="45" ng-attr-transform="rotate({{360 * $index / minors.length}})" /><line ng-repeat="major in majors track by $index" class="major" y1="35" y2="46" ng-attr-transform="rotate({{360 * $index / majors.length}})" /><line class="hour" y1="2" y2="-20" ng-attr-transform="rotate({{30 * date.hrs + date.mins / 2}})" /><line class="minute" y1="4" y2="-30" ng-attr-transform="rotate({{6 * date.mins + date.secs / 10}})" /><g ng-attr-transform="rotate({{6 * date.secs}})"><line class="second" y1="10" y2="-38" /><line class="second-counterweight" y1="10" y2="2" /></g></g></svg></div></div><div ng-if="gmtInfo" class="gmt-info">{{gmtInfo}}</div></div>',link:function(r,s,l){var c,u={},d=r.gmtOffset,h=r.digitalFormat?r.digitalFormat:"HH:mm:ss";u.showDigital=null!=r.showDigital?r.showDigital:void 0!==l.showDigital,u.showAnalog=null!=r.showAnalog?r.showAnalog:void 0!==l.showAnalog,u.showGmtInfo=void 0!==l.showGmtInfo,u.startTime=parseInt(r.startTime,10),r.themeClass=r.theme?r.theme:l.theme?l.theme:"light",u.showDigital||u.showAnalog||(u.showAnalog=!0,u.showDigital=!0),r.gmtInfo=!1,r.date=o(u),r.digital=!!u.showDigital&&"Loading..",r.analog=u.showAnalog,r.majors=new Array(12),r.minors=new Array(60);var p=null,f=function(){isNaN(u.startTime)||(u.startTime=u.startTime+1e3),p=o(u),r.date=p,u.showDigital&&(r.digital=a(p,h,d,i))};c=e(f,1e3),r.$watch("gmtOffset",function(e,i){d=e,u.gmtOffset=null!=d&&t(d),u.showGmtInfo&&!1!==u.gmtOffset&&(r.gmtInfo=n(u.gmtOffset)),f()}),r.$watch("digitalFormat",function(e,t){e!=t&&(h=e)}),r.$watch("showDigital",function(e,t){e!=t&&(u.showDigital=e,r.digital=!!u.showDigital&&"Loading..")}),r.$watch("showAnalog",function(e,t){e!=t&&(u.showAnalog=e,r.analog=e)}),r.$watch("theme",function(e,t){e!=t&&(r.themeClass=e||(l.theme?l.theme:"light"))}),s.on("$destroy",function(){e.cancel(c),c=null})}}}function t(e){return((e=parseFloat(e))>0?Math.floor(e):Math.ceil(e))+e%1/.6}function n(e){var t=e>0?Math.floor(e):Math.ceil(e),n=Math.round((e>0?e:-1*e)%1*60);return"GMT"+(0===e?"":(e>0?" +":" ")+i(t)+"."+r(n).substring(0,2))}function i(e){return e<0?(e>-10?"-0":"-")+-1*e:(e<10?"0":"")+e}function r(e){return e+(e<10?"0":"")}function o(e){var t=isNaN(e.startTime)?new Date:new Date(e.startTime);if(null!==e.gmtOffset&&!1!==e.gmtOffset){var n=t.getTime()+6e4*t.getTimezoneOffset(),i=new Date(n+36e5*e.gmtOffset);return{hrs:i.getHours(),mins:i.getMinutes(),secs:i.getSeconds(),date:i}}return{hrs:t.getHours(),mins:t.getMinutes(),secs:t.getSeconds(),date:t}}function a(e,t,n,i){return i("date")(e.date,t,n)}angular.module("ds.clock",[]).directive("dsWidgetClock",["$interval","$filter",function(t,n){return e(t,n)}])}(),"undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(e){"use strict";var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1==t[0]&&9==t[1]&&t[2]<1||t[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),function(e){"use strict";function t(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var n in t)if(void 0!==e.style[n])return{end:t[n]};return!1}e.fn.emulateTransitionEnd=function(t){var n=!1,i=this;e(this).one("bsTransitionEnd",function(){n=!0});var r=function(){n||e(i).trigger(e.support.transition.end)};return setTimeout(r,t),this},e(function(){e.support.transition=t(),e.support.transition&&(e.event.special.bsTransitionEnd={bindType:e.support.transition.end,delegateType:e.support.transition.end,handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}})})}(jQuery),function(e){"use strict";function t(t){return this.each(function(){var n=e(this),r=n.data("bs.alert");r||n.data("bs.alert",r=new i(this)),"string"==typeof t&&r[t].call(n)})}var n='[data-dismiss="alert"]',i=function(t){e(t).on("click",n,this.close)};i.VERSION="3.3.7",i.TRANSITION_DURATION=150,i.prototype.close=function(t){function n(){a.detach().trigger("closed.bs.alert").remove()}var r=e(this),o=r.attr("data-target");o||(o=(o=r.attr("href"))&&o.replace(/.*(?=#[^\s]*$)/,""));var a=e("#"===o?[]:o);t&&t.preventDefault(),a.length||(a=r.closest(".alert")),a.trigger(t=e.Event("close.bs.alert")),t.isDefaultPrevented()||(a.removeClass("in"),e.support.transition&&a.hasClass("fade")?a.one("bsTransitionEnd",n).emulateTransitionEnd(i.TRANSITION_DURATION):n())};var r=e.fn.alert;e.fn.alert=t,e.fn.alert.Constructor=i,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.bs.alert.data-api",n,i.prototype.close)}(jQuery),function(e){"use strict";function t(t){return this.each(function(){var i=e(this),r=i.data("bs.button"),o="object"==typeof t&&t;r||i.data("bs.button",r=new n(this,o)),"toggle"==t?r.toggle():t&&r.setState(t)})}var n=function(t,i){this.$element=e(t),this.options=e.extend({},n.DEFAULTS,i),this.isLoading=!1};n.VERSION="3.3.7",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(t){var n="disabled",i=this.$element,r=i.is("input")?"val":"html",o=i.data();t+="Text",null==o.resetText&&i.data("resetText",i[r]()),setTimeout(e.proxy(function(){i[r](null==o[t]?this.options[t]:o[t]),"loadingText"==t?(this.isLoading=!0,i.addClass(n).attr(n,n).prop(n,!0)):this.isLoading&&(this.isLoading=!1,i.removeClass(n).removeAttr(n).prop(n,!1))},this),0)},n.prototype.toggle=function(){var e=!0,t=this.$element.closest('[data-toggle="buttons"]');if(t.length){var n=this.$element.find("input");"radio"==n.prop("type")?(n.prop("checked")&&(e=!1),t.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==n.prop("type")&&(n.prop("checked")!==this.$element.hasClass("active")&&(e=!1),this.$element.toggleClass("active")),n.prop("checked",this.$element.hasClass("active")),e&&n.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var i=e.fn.button;e.fn.button=t,e.fn.button.Constructor=n,e.fn.button.noConflict=function(){return e.fn.button=i,this},e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(n){var i=e(n.target).closest(".btn");t.call(i,"toggle"),e(n.target).is('input[type="radio"], input[type="checkbox"]')||(n.preventDefault(),i.is("input,button")?i.trigger("focus"):i.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(t){e(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))})}(jQuery),function(e){"use strict";function t(t){return this.each(function(){var i=e(this),r=i.data("bs.carousel"),o=e.extend({},n.DEFAULTS,i.data(),"object"==typeof t&&t),a="string"==typeof t?t:o.slide;r||i.data("bs.carousel",r=new n(this,o)),"number"==typeof t?r.to(t):a?r[a]():o.interval&&r.pause().cycle()})}var n=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",e.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",e.proxy(this.pause,this)).on("mouseleave.bs.carousel",e.proxy(this.cycle,this))};n.VERSION="3.3.7",n.TRANSITION_DURATION=600,n.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},n.prototype.keydown=function(e){if(!/input|textarea/i.test(e.target.tagName)){switch(e.which){case 37:this.prev();break;case 39:this.next();break;default:return}e.preventDefault()}},n.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},n.prototype.getItemIndex=function(e){return this.$items=e.parent().children(".item"),this.$items.index(e||this.$active)},n.prototype.getItemForDirection=function(e,t){var n=this.getItemIndex(t);if(("prev"==e&&0===n||"next"==e&&n==this.$items.length-1)&&!this.options.wrap)return t;var i=(n+("prev"==e?-1:1))%this.$items.length;return this.$items.eq(i)},n.prototype.to=function(e){var t=this,n=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(e>this.$items.length-1||e<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){t.to(e)}):n==e?this.pause().cycle():this.slide(e>n?"next":"prev",this.$items.eq(e))},n.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition&&(this.$element.trigger(e.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},n.prototype.next=function(){if(!this.sliding)return this.slide("next")},n.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},n.prototype.slide=function(t,i){var r=this.$element.find(".item.active"),o=i||this.getItemForDirection(t,r),a=this.interval,s="next"==t?"left":"right",l=this;if(o.hasClass("active"))return this.sliding=!1;var c=o[0],u=e.Event("slide.bs.carousel",{relatedTarget:c,direction:s});if(this.$element.trigger(u),!u.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var d=e(this.$indicators.children()[this.getItemIndex(o)]);d&&d.addClass("active")}var h=e.Event("slid.bs.carousel",{relatedTarget:c,direction:s});return e.support.transition&&this.$element.hasClass("slide")?(o.addClass(t),o[0].offsetWidth,r.addClass(s),o.addClass(s),r.one("bsTransitionEnd",function(){o.removeClass([t,s].join(" ")).addClass("active"),r.removeClass(["active",s].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(h)},0)}).emulateTransitionEnd(n.TRANSITION_DURATION)):(r.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(h)),a&&this.cycle(),this}};var i=e.fn.carousel;e.fn.carousel=t,e.fn.carousel.Constructor=n,e.fn.carousel.noConflict=function(){return e.fn.carousel=i,this};var r=function(n){var i,r=e(this),o=e(r.attr("data-target")||(i=r.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,""));if(o.hasClass("carousel")){var a=e.extend({},o.data(),r.data()),s=r.attr("data-slide-to");s&&(a.interval=!1),t.call(o,a),s&&o.data("bs.carousel").to(s),n.preventDefault()}};e(document).on("click.bs.carousel.data-api","[data-slide]",r).on("click.bs.carousel.data-api","[data-slide-to]",r),e(window).on("load",function(){e('[data-ride="carousel"]').each(function(){var n=e(this);t.call(n,n.data())})})}(jQuery),function(e){"use strict";function t(t){var n,i=t.attr("data-target")||(n=t.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"");return e(i)}function n(t){return this.each(function(){var n=e(this),r=n.data("bs.collapse"),o=e.extend({},i.DEFAULTS,n.data(),"object"==typeof t&&t);!r&&o.toggle&&/show|hide/.test(t)&&(o.toggle=!1),r||n.data("bs.collapse",r=new i(this,o)),"string"==typeof t&&r[t]()})}var i=function(t,n){this.$element=e(t),this.options=e.extend({},i.DEFAULTS,n),this.$trigger=e('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};i.VERSION="3.3.7",i.TRANSITION_DURATION=350,i.DEFAULTS={toggle:!0},i.prototype.dimension=function(){return this.$element.hasClass("width")?"width":"height"},i.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var t,r=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(r&&r.length&&(t=r.data("bs.collapse"))&&t.transitioning)){var o=e.Event("show.bs.collapse");if(this.$element.trigger(o),!o.isDefaultPrevented()){r&&r.length&&(n.call(r,"hide"),t||r.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var s=function(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!e.support.transition)return s.call(this);var l=e.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",e.proxy(s,this)).emulateTransitionEnd(i.TRANSITION_DURATION)[a](this.$element[0][l])}}}},i.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var t=e.Event("hide.bs.collapse");if(this.$element.trigger(t),!t.isDefaultPrevented()){var n=this.dimension();this.$element[n](this.$element[n]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var r=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!e.support.transition)return r.call(this);this.$element[n](0).one("bsTransitionEnd",e.proxy(r,this)).emulateTransitionEnd(i.TRANSITION_DURATION)}}},i.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},i.prototype.getParent=function(){return e(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(e.proxy(function(n,i){var r=e(i);this.addAriaAndCollapsedClass(t(r),r)},this)).end()},i.prototype.addAriaAndCollapsedClass=function(e,t){var n=e.hasClass("in");e.attr("aria-expanded",n),t.toggleClass("collapsed",!n).attr("aria-expanded",n)};var r=e.fn.collapse;e.fn.collapse=n,e.fn.collapse.Constructor=i,e.fn.collapse.noConflict=function(){return e.fn.collapse=r,this},e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(i){var r=e(this);r.attr("data-target")||i.preventDefault();var o=t(r),a=o.data("bs.collapse")?"toggle":r.data();n.call(o,a)})}(jQuery),function(e){"use strict";function t(t){var n=t.attr("data-target");n||(n=(n=t.attr("href"))&&/#[A-Za-z]/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,""));var i=n&&e(n);return i&&i.length?i:t.parent()}function n(n){n&&3===n.which||(e(r).remove(),e(o).each(function(){var i=e(this),r=t(i),o={relatedTarget:this};r.hasClass("open")&&(n&&"click"==n.type&&/input|textarea/i.test(n.target.tagName)&&e.contains(r[0],n.target)||(r.trigger(n=e.Event("hide.bs.dropdown",o)),n.isDefaultPrevented()||(i.attr("aria-expanded","false"),r.removeClass("open").trigger(e.Event("hidden.bs.dropdown",o)))))}))}function i(t){return this.each(function(){var n=e(this),i=n.data("bs.dropdown");i||n.data("bs.dropdown",i=new a(this)),"string"==typeof t&&i[t].call(n)})}var r=".dropdown-backdrop",o='[data-toggle="dropdown"]',a=function(t){e(t).on("click.bs.dropdown",this.toggle)};a.VERSION="3.3.7",a.prototype.toggle=function(i){var r=e(this);if(!r.is(".disabled, :disabled")){var o=t(r),a=o.hasClass("open");if(n(),!a){"ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&e(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(e(this)).on("click",n);var s={relatedTarget:this};if(o.trigger(i=e.Event("show.bs.dropdown",s)),i.isDefaultPrevented())return;r.trigger("focus").attr("aria-expanded","true"),o.toggleClass("open").trigger(e.Event("shown.bs.dropdown",s))}return!1}},a.prototype.keydown=function(n){if(/(38|40|27|32)/.test(n.which)&&!/input|textarea/i.test(n.target.tagName)){var i=e(this);if(n.preventDefault(),n.stopPropagation(),!i.is(".disabled, :disabled")){var r=t(i),a=r.hasClass("open");if(!a&&27!=n.which||a&&27==n.which)return 27==n.which&&r.find(o).trigger("focus"),i.trigger("click");var s=r.find(".dropdown-menu li:not(.disabled):visible a");if(s.length){var l=s.index(n.target);38==n.which&&l>0&&l--,40==n.which&&l<s.length-1&&l++,~l||(l=0),s.eq(l).trigger("focus")}}}};var s=e.fn.dropdown;e.fn.dropdown=i,e.fn.dropdown.Constructor=a,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=s,this},e(document).on("click.bs.dropdown.data-api",n).on("click.bs.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("click.bs.dropdown.data-api",o,a.prototype.toggle).on("keydown.bs.dropdown.data-api",o,a.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",a.prototype.keydown)}(jQuery),function(e){"use strict";function t(t,i){return this.each(function(){var r=e(this),o=r.data("bs.modal"),a=e.extend({},n.DEFAULTS,r.data(),"object"==typeof t&&t);o||r.data("bs.modal",o=new n(this,a)),"string"==typeof t?o[t](i):a.show&&o.show(i)})}var n=function(t,n){this.options=n,this.$body=e(document.body),this.$element=e(t),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,e.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};n.VERSION="3.3.7",n.TRANSITION_DURATION=300,n.BACKDROP_TRANSITION_DURATION=150,n.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},n.prototype.toggle=function(e){return this.isShown?this.hide():this.show(e)},n.prototype.show=function(t){var i=this,r=e.Event("show.bs.modal",{relatedTarget:t});this.$element.trigger(r),this.isShown||r.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',e.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){i.$element.one("mouseup.dismiss.bs.modal",function(t){e(t.target).is(i.$element)&&(i.ignoreBackdropClick=!0)})}),this.backdrop(function(){var r=e.support.transition&&i.$element.hasClass("fade");i.$element.parent().length||i.$element.appendTo(i.$body),i.$element.show().scrollTop(0),i.adjustDialog(),r&&i.$element[0].offsetWidth,i.$element.addClass("in"),i.enforceFocus();var o=e.Event("shown.bs.modal",{relatedTarget:t});r?i.$dialog.one("bsTransitionEnd",function(){i.$element.trigger("focus").trigger(o)}).emulateTransitionEnd(n.TRANSITION_DURATION):i.$element.trigger("focus").trigger(o)}))},n.prototype.hide=function(t){t&&t.preventDefault(),t=e.Event("hide.bs.modal"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),e(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),e.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",e.proxy(this.hideModal,this)).emulateTransitionEnd(n.TRANSITION_DURATION):this.hideModal())},n.prototype.enforceFocus=function(){e(document).off("focusin.bs.modal").on("focusin.bs.modal",e.proxy(function(e){document===e.target||this.$element[0]===e.target||this.$element.has(e.target).length||this.$element.trigger("focus")},this))},n.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",e.proxy(function(e){27==e.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},n.prototype.resize=function(){this.isShown?e(window).on("resize.bs.modal",e.proxy(this.handleUpdate,this)):e(window).off("resize.bs.modal")},n.prototype.hideModal=function(){var e=this;this.$element.hide(),this.backdrop(function(){e.$body.removeClass("modal-open"),e.resetAdjustments(),e.resetScrollbar(),e.$element.trigger("hidden.bs.modal")})},n.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},n.prototype.backdrop=function(t){var i=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var o=e.support.transition&&r;if(this.$backdrop=e(document.createElement("div")).addClass("modal-backdrop "+r).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",e.proxy(function(e){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide())},this)),o&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!t)return;o?this.$backdrop.one("bsTransitionEnd",t).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):t()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var a=function(){i.removeBackdrop(),t&&t()};e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",a).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION):a()}else t&&t()},n.prototype.handleUpdate=function(){this.adjustDialog()},n.prototype.adjustDialog=function(){var e=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&e?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!e?this.scrollbarWidth:""})},n.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},n.prototype.checkScrollbar=function(){var e=window.innerWidth;if(!e){var t=document.documentElement.getBoundingClientRect();e=t.right-Math.abs(t.left)}this.bodyIsOverflowing=document.body.clientWidth<e,this.scrollbarWidth=this.measureScrollbar()},n.prototype.setScrollbar=function(){var e=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",e+this.scrollbarWidth)},n.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},n.prototype.measureScrollbar=function(){var e=document.createElement("div");e.className="modal-scrollbar-measure",this.$body.append(e);var t=e.offsetWidth-e.clientWidth;return this.$body[0].removeChild(e),t};var i=e.fn.modal;e.fn.modal=t,e.fn.modal.Constructor=n,e.fn.modal.noConflict=function(){return e.fn.modal=i,this},e(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(n){var i=e(this),r=i.attr("href"),o=e(i.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),a=o.data("bs.modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},o.data(),i.data());i.is("a")&&n.preventDefault(),o.one("show.bs.modal",function(e){e.isDefaultPrevented()||o.one("hidden.bs.modal",function(){i.is(":visible")&&i.trigger("focus")})}),t.call(o,a,this)})}(jQuery),function(e){"use strict";function t(t){return this.each(function(){var i=e(this),r=i.data("bs.tooltip"),o="object"==typeof t&&t;!r&&/destroy|hide/.test(t)||(r||i.data("bs.tooltip",r=new n(this,o)),"string"==typeof t&&r[t]())})}var n=function(e,t){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",e,t)};n.VERSION="3.3.7",n.TRANSITION_DURATION=150,n.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},n.prototype.init=function(t,n,i){if(this.enabled=!0,this.type=t,this.$element=e(n),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&e(e.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var r=this.options.trigger.split(" "),o=r.length;o--;){var a=r[o];if("click"==a)this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this));else if("manual"!=a){var s="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,e.proxy(this.leave,this))}}this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.getOptions=function(t){return(t=e.extend({},this.getDefaults(),this.$element.data(),t)).delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t},n.prototype.getDelegateOptions=function(){var t={},n=this.getDefaults();return this._options&&e.each(this._options,function(e,i){n[e]!=i&&(t[e]=i)}),t},n.prototype.enter=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusin"==t.type?"focus":"hover"]=!0),n.tip().hasClass("in")||"in"==n.hoverState)n.hoverState="in";else{if(clearTimeout(n.timeout),n.hoverState="in",!n.options.delay||!n.options.delay.show)return n.show();n.timeout=setTimeout(function(){"in"==n.hoverState&&n.show()},n.options.delay.show)}},n.prototype.isInStateTrue=function(){for(var e in this.inState)if(this.inState[e])return!0;return!1},n.prototype.leave=function(t){var n=t instanceof this.constructor?t:e(t.currentTarget).data("bs."+this.type);if(n||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n)),t instanceof e.Event&&(n.inState["focusout"==t.type?"focus":"hover"]=!1),!n.isInStateTrue()){if(clearTimeout(n.timeout),n.hoverState="out",!n.options.delay||!n.options.delay.hide)return n.hide();n.timeout=setTimeout(function(){"out"==n.hoverState&&n.hide()},n.options.delay.hide)}},n.prototype.show=function(){var t=e.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var i=e.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!i)return;var r=this,o=this.tip(),a=this.getUID(this.type);this.setContent(),o.attr("id",a),this.$element.attr("aria-describedby",a),this.options.animation&&o.addClass("fade");var s="function"==typeof this.options.placement?this.options.placement.call(this,o[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,c=l.test(s);c&&(s=s.replace(l,"")||"top"),o.detach().css({top:0,left:0,display:"block"}).addClass(s).data("bs."+this.type,this),this.options.container?o.appendTo(this.options.container):o.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var u=this.getPosition(),d=o[0].offsetWidth,h=o[0].offsetHeight;if(c){var p=s,f=this.getPosition(this.$viewport);s="bottom"==s&&u.bottom+h>f.bottom?"top":"top"==s&&u.top-h<f.top?"bottom":"right"==s&&u.right+d>f.width?"left":"left"==s&&u.left-d<f.left?"right":s,o.removeClass(p).addClass(s)}var m=this.getCalculatedOffset(s,u,d,h);this.applyPlacement(m,s);var g=function(){var e=r.hoverState;r.$element.trigger("shown.bs."+r.type),r.hoverState=null,"out"==e&&r.leave(r)};e.support.transition&&this.$tip.hasClass("fade")?o.one("bsTransitionEnd",g).emulateTransitionEnd(n.TRANSITION_DURATION):g()}},n.prototype.applyPlacement=function(t,n){var i=this.tip(),r=i[0].offsetWidth,o=i[0].offsetHeight,a=parseInt(i.css("margin-top"),10),s=parseInt(i.css("margin-left"),10);isNaN(a)&&(a=0),isNaN(s)&&(s=0),t.top+=a,t.left+=s,e.offset.setOffset(i[0],e.extend({using:function(e){i.css({top:Math.round(e.top),left:Math.round(e.left)})}},t),0),i.addClass("in");var l=i[0].offsetWidth,c=i[0].offsetHeight;"top"==n&&c!=o&&(t.top=t.top+o-c);var u=this.getViewportAdjustedDelta(n,t,l,c);u.left?t.left+=u.left:t.top+=u.top;var d=/top|bottom/.test(n),h=d?2*u.left-r+l:2*u.top-o+c,p=d?"offsetWidth":"offsetHeight";i.offset(t),this.replaceArrow(h,i[0][p],d)},n.prototype.replaceArrow=function(e,t,n){this.arrow().css(n?"left":"top",50*(1-e/t)+"%").css(n?"top":"left","")},n.prototype.setContent=function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},n.prototype.hide=function(t){function i(){"in"!=r.hoverState&&o.detach(),r.$element&&r.$element.removeAttr("aria-describedby").trigger("hidden.bs."+r.type),t&&t()}var r=this,o=e(this.$tip),a=e.Event("hide.bs."+this.type);if(this.$element.trigger(a),!a.isDefaultPrevented())return o.removeClass("in"),e.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",i).emulateTransitionEnd(n.TRANSITION_DURATION):i(),this.hoverState=null,this},n.prototype.fixTitle=function(){var e=this.$element;(e.attr("title")||"string"!=typeof e.attr("data-original-title"))&&e.attr("data-original-title",e.attr("title")||"").attr("title","")},n.prototype.hasContent=function(){return this.getTitle()},n.prototype.getPosition=function(t){var n=(t=t||this.$element)[0],i="BODY"==n.tagName,r=n.getBoundingClientRect();null==r.width&&(r=e.extend({},r,{width:r.right-r.left,height:r.bottom-r.top}));var o=window.SVGElement&&n instanceof window.SVGElement,a=i?{top:0,left:0}:o?null:t.offset(),s={scroll:i?document.documentElement.scrollTop||document.body.scrollTop:t.scrollTop()},l=i?{width:e(window).width(),height:e(window).height()}:null;return e.extend({},r,s,l,a)},n.prototype.getCalculatedOffset=function(e,t,n,i){return"bottom"==e?{top:t.top+t.height,left:t.left+t.width/2-n/2}:"top"==e?{top:t.top-i,left:t.left+t.width/2-n/2}:"left"==e?{top:t.top+t.height/2-i/2,left:t.left-n}:{top:t.top+t.height/2-i/2,left:t.left+t.width}},n.prototype.getViewportAdjustedDelta=function(e,t,n,i){var r={top:0,left:0};if(!this.$viewport)return r;var o=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(e)){var s=t.top-o-a.scroll,l=t.top+o-a.scroll+i;s<a.top?r.top=a.top-s:l>a.top+a.height&&(r.top=a.top+a.height-l)}else{var c=t.left-o,u=t.left+o+n;c<a.left?r.left=a.left-c:u>a.right&&(r.left=a.left+a.width-u)}return r},n.prototype.getTitle=function(){var e=this.$element,t=this.options;return e.attr("data-original-title")||("function"==typeof t.title?t.title.call(e[0]):t.title)},n.prototype.getUID=function(e){do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},n.prototype.tip=function(){if(!this.$tip&&(this.$tip=e(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},n.prototype.enable=function(){this.enabled=!0},n.prototype.disable=function(){this.enabled=!1},n.prototype.toggleEnabled=function(){this.enabled=!this.enabled},n.prototype.toggle=function(t){var n=this;t&&((n=e(t.currentTarget).data("bs."+this.type))||(n=new this.constructor(t.currentTarget,this.getDelegateOptions()),e(t.currentTarget).data("bs."+this.type,n))),t?(n.inState.click=!n.inState.click,n.isInStateTrue()?n.enter(n):n.leave(n)):n.tip().hasClass("in")?n.leave(n):n.enter(n)},n.prototype.destroy=function(){var e=this;clearTimeout(this.timeout),this.hide(function(){e.$element.off("."+e.type).removeData("bs."+e.type),e.$tip&&e.$tip.detach(),e.$tip=null,e.$arrow=null,e.$viewport=null,e.$element=null})};var i=e.fn.tooltip;e.fn.tooltip=t,e.fn.tooltip.Constructor=n,e.fn.tooltip.noConflict=function(){return e.fn.tooltip=i,this}}(jQuery),function(e){"use strict";function t(t){return this.each(function(){var i=e(this),r=i.data("bs.popover"),o="object"==typeof t&&t;!r&&/destroy|hide/.test(t)||(r||i.data("bs.popover",r=new n(this,o)),"string"==typeof t&&r[t]())})}var n=function(e,t){this.init("popover",e,t)};if(!e.fn.tooltip)throw new Error("Popover requires tooltip.js");n.VERSION="3.3.7",n.DEFAULTS=e.extend({},e.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),n.prototype=e.extend({},e.fn.tooltip.Constructor.prototype),n.prototype.constructor=n,n.prototype.getDefaults=function(){return n.DEFAULTS},n.prototype.setContent=function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof n?"html":"append":"text"](n),e.removeClass("fade top bottom left right in"),e.find(".popover-title").html()||e.find(".popover-title").hide()},n.prototype.hasContent=function(){return this.getTitle()||this.getContent()},n.prototype.getContent=function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},n.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var i=e.fn.popover;e.fn.popover=t,e.fn.popover.Constructor=n,e.fn.popover.noConflict=function(){return e.fn.popover=i,this}}(jQuery),function(e){"use strict";function t(n,i){this.$body=e(document.body),this.$scrollElement=e(e(n).is(document.body)?window:n),this.options=e.extend({},t.DEFAULTS,i),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e.proxy(this.process,this)),this.refresh(),this.process()}function n(n){return this.each(function(){var i=e(this),r=i.data("bs.scrollspy"),o="object"==typeof n&&n;r||i.data("bs.scrollspy",r=new t(this,o)),"string"==typeof n&&r[n]()})}t.VERSION="3.3.7",t.DEFAULTS={offset:10},t.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},t.prototype.refresh=function(){var t=this,n="offset",i=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),e.isWindow(this.$scrollElement[0])||(n="position",i=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var t=e(this),r=t.data("target")||t.attr("href"),o=/^#./.test(r)&&e(r);return o&&o.length&&o.is(":visible")&&[[o[n]().top+i,r]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},t.prototype.process=function(){var e,t=this.$scrollElement.scrollTop()+this.options.offset,n=this.getScrollHeight(),i=this.options.offset+n-this.$scrollElement.height(),r=this.offsets,o=this.targets,a=this.activeTarget;if(this.scrollHeight!=n&&this.refresh(),t>=i)return a!=(e=o[o.length-1])&&this.activate(e);if(a&&t<r[0])return this.activeTarget=null,this.clear();for(e=r.length;e--;)a!=o[e]&&t>=r[e]&&(void 0===r[e+1]||t<r[e+1])&&this.activate(o[e])},t.prototype.activate=function(t){this.activeTarget=t,this.clear();var n=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',i=e(n).parents("li").addClass("active");i.parent(".dropdown-menu").length&&(i=i.closest("li.dropdown").addClass("active")),i.trigger("activate.bs.scrollspy")},t.prototype.clear=function(){e(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var i=e.fn.scrollspy;e.fn.scrollspy=n,e.fn.scrollspy.Constructor=t,e.fn.scrollspy.noConflict=function(){return e.fn.scrollspy=i,this},e(window).on("load.bs.scrollspy.data-api",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);n.call(t,t.data())})})}(jQuery),function(e){"use strict";function t(t){return this.each(function(){var i=e(this),r=i.data("bs.tab");r||i.data("bs.tab",r=new n(this)),"string"==typeof t&&r[t]()})}var n=function(t){this.element=e(t)};n.VERSION="3.3.7",n.TRANSITION_DURATION=150,n.prototype.show=function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),i=t.data("target");if(i||(i=(i=t.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),!t.parent("li").hasClass("active")){var r=n.find(".active:last a"),o=e.Event("hide.bs.tab",{relatedTarget:t[0]}),a=e.Event("show.bs.tab",{relatedTarget:r[0]});if(r.trigger(o),t.trigger(a),!a.isDefaultPrevented()&&!o.isDefaultPrevented()){var s=e(i);this.activate(t.closest("li"),n),this.activate(s,s.parent(),function(){r.trigger({type:"hidden.bs.tab",relatedTarget:t[0]}),t.trigger({type:"shown.bs.tab",relatedTarget:r[0]})})}}},n.prototype.activate=function(t,i,r){function o(){a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),t.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu").length&&t.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),r&&r()}var a=i.find("> .active"),s=r&&e.support.transition&&(a.length&&a.hasClass("fade")||!!i.find("> .fade").length);a.length&&s?a.one("bsTransitionEnd",o).emulateTransitionEnd(n.TRANSITION_DURATION):o(),a.removeClass("in")};var i=e.fn.tab;e.fn.tab=t,e.fn.tab.Constructor=n,e.fn.tab.noConflict=function(){return e.fn.tab=i,this};var r=function(n){n.preventDefault(),t.call(e(this),"show")};e(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',r).on("click.bs.tab.data-api",'[data-toggle="pill"]',r)}(jQuery),function(e){"use strict";function t(t){return this.each(function(){var i=e(this),r=i.data("bs.affix"),o="object"==typeof t&&t;r||i.data("bs.affix",r=new n(this,o)),"string"==typeof t&&r[t]()})}var n=function(t,i){this.options=e.extend({},n.DEFAULTS,i),this.$target=e(this.options.target).on("scroll.bs.affix.data-api",e.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",e.proxy(this.checkPositionWithEventLoop,this)),this.$element=e(t),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};n.VERSION="3.3.7",n.RESET="affix affix-top affix-bottom",n.DEFAULTS={offset:0,target:window},n.prototype.getState=function(e,t,n,i){var r=this.$target.scrollTop(),o=this.$element.offset(),a=this.$target.height();if(null!=n&&"top"==this.affixed)return r<n&&"top";if("bottom"==this.affixed)return null!=n?!(r+this.unpin<=o.top)&&"bottom":!(r+a<=e-i)&&"bottom";var s=null==this.affixed,l=s?r:o.top,c=s?a:t;return null!=n&&r<=n?"top":null!=i&&l+c>=e-i&&"bottom"},n.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(n.RESET).addClass("affix");var e=this.$target.scrollTop(),t=this.$element.offset();return this.pinnedOffset=t.top-e},n.prototype.checkPositionWithEventLoop=function(){setTimeout(e.proxy(this.checkPosition,this),1)},n.prototype.checkPosition=function(){if(this.$element.is(":visible")){var t=this.$element.height(),i=this.options.offset,r=i.top,o=i.bottom,a=Math.max(e(document).height(),e(document.body).height());"object"!=typeof i&&(o=r=i),"function"==typeof r&&(r=i.top(this.$element)),"function"==typeof o&&(o=i.bottom(this.$element));var s=this.getState(a,t,r,o);if(this.affixed!=s){null!=this.unpin&&this.$element.css("top","");var l="affix"+(s?"-"+s:""),c=e.Event(l+".bs.affix");if(this.$element.trigger(c),c.isDefaultPrevented())return;this.affixed=s,this.unpin="bottom"==s?this.getPinnedOffset():null,this.$element.removeClass(n.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==s&&this.$element.offset({top:a-t-o})}};var i=e.fn.affix;e.fn.affix=t,e.fn.affix.Constructor=n,e.fn.affix.noConflict=function(){return e.fn.affix=i,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var n=e(this),i=n.data();i.offset=i.offset||{},null!=i.offsetBottom&&(i.offset.bottom=i.offsetBottom),null!=i.offsetTop&&(i.offset.top=i.offsetTop),t.call(n,i)})})}(jQuery),"undefined"!=typeof module&&"undefined"!=typeof exports&&module.exports===exports&&(module.exports="monospaced.elastic"),angular.module("monospaced.elastic",[]).constant("msdElasticConfig",{append:""}).directive("msdElastic",["$timeout","$window","msdElasticConfig",function(e,t,n){"use strict";return{require:"ngModel",restrict:"A, C",link:function(i,r,o,a){function s(){var e=v;p=u,_=getComputedStyle(u),angular.forEach(T,function(t){e+=t+":"+_.getPropertyValue(t)+";"}),y.setAttribute("style",e)}function l(){var t,n,r,o,a;p!==u&&s(),f||(f=!0,y.value=u.value+m,y.style.overflowY=u.style.overflowY,t=""===u.style.height?"auto":parseInt(u.style.height,10),"px"===(n=getComputedStyle(u).getPropertyValue("width")).substr(n.length-2,2)&&(o=parseInt(n,10)-A.width,y.style.width=o+"px"),(r=y.scrollHeight)>E?(r=E,a="scroll"):r<S&&(r=S),r+=A.height,u.style.overflowY=a||"hidden",t!==r&&(i.$emit("elastic:resize",d,t,r),u.style.height=r+"px"),e(function(){f=!1},1,!1))}function c(){f=!1,l()}var u=r[0],d=r;if("TEXTAREA"===u.nodeName&&t.getComputedStyle){d.css({overflow:"hidden","overflow-y":"hidden","word-wrap":"break-word"});var h=u.value;u.value="",u.value=h;var p,f,m=o.msdElastic?o.msdElastic.replace(/\\n/g,"\n"):n.append,g=angular.element(t),v="position: absolute; top: -999px; right: auto; bottom: auto;left: 0; overflow: hidden; -webkit-box-sizing: content-box;-moz-box-sizing: content-box; box-sizing: content-box;min-height: 0 !important; height: 0 !important; padding: 0;word-wrap: break-word; border: 0;",b=angular.element('<textarea aria-hidden="true" tabindex="-1" style="'+v+'"/>').data("elastic",!0),y=b[0],_=getComputedStyle(u),w=_.getPropertyValue("resize"),A="border-box"===_.getPropertyValue("box-sizing")||"border-box"===_.getPropertyValue("-moz-box-sizing")||"border-box"===_.getPropertyValue("-webkit-box-sizing")?{width:parseInt(_.getPropertyValue("border-right-width"),10)+parseInt(_.getPropertyValue("padding-right"),10)+parseInt(_.getPropertyValue("padding-left"),10)+parseInt(_.getPropertyValue("border-left-width"),10),height:parseInt(_.getPropertyValue("border-top-width"),10)+parseInt(_.getPropertyValue("padding-top"),10)+parseInt(_.getPropertyValue("padding-bottom"),10)+parseInt(_.getPropertyValue("border-bottom-width"),10)}:{width:0,height:0},C=parseInt(_.getPropertyValue("min-height"),10),x=parseInt(_.getPropertyValue("height"),10),S=Math.max(C,x)-A.height,E=parseInt(_.getPropertyValue("max-height"),10),T=["font-family","font-size","font-weight","font-style","letter-spacing","line-height","text-transform","word-spacing","text-indent"];d.data("elastic")||(E=E&&E>0?E:9e4,y.parentNode!==document.body&&angular.element(document.body).append(y),d.css({resize:"none"===w||"vertical"===w?"none":"horizontal"}).data("elastic",!0),u.oninput="onpropertychange"in u&&"oninput"in u?u.onkeyup=l:l,g.bind("resize",c),i.$watch(function(){return a.$modelValue},function(e){c()}),i.$on("elastic:adjust",function(){s(),c()}),e(l,0,!1),i.$on("$destroy",function(){b.remove(),g.unbind("resize",c)}))}}}}]),angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.datepicker","ui.bootstrap.position","ui.bootstrap.datepickerPopup","ui.bootstrap.debounce","ui.bootstrap.dropdown","ui.bootstrap.stackedMap","ui.bootstrap.modal","ui.bootstrap.paging","ui.bootstrap.pager","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]),angular.module("ui.bootstrap.tpls",["uib/template/accordion/accordion-group.html","uib/template/accordion/accordion.html","uib/template/alert/alert.html","uib/template/carousel/carousel.html","uib/template/carousel/slide.html","uib/template/datepicker/datepicker.html","uib/template/datepicker/day.html","uib/template/datepicker/month.html","uib/template/datepicker/year.html","uib/template/datepickerPopup/popup.html","uib/template/modal/backdrop.html","uib/template/modal/window.html","uib/template/pager/pager.html","uib/template/pagination/pagination.html","uib/template/tooltip/tooltip-html-popup.html","uib/template/tooltip/tooltip-popup.html","uib/template/tooltip/tooltip-template-popup.html","uib/template/popover/popover-html.html","uib/template/popover/popover-template.html","uib/template/popover/popover.html","uib/template/progressbar/bar.html","uib/template/progressbar/progress.html","uib/template/progressbar/progressbar.html","uib/template/rating/rating.html","uib/template/tabs/tab.html","uib/template/tabs/tabset.html","uib/template/timepicker/timepicker.html","uib/template/typeahead/typeahead-match.html","uib/template/typeahead/typeahead-popup.html"]),angular.module("ui.bootstrap.collapse",[]).directive("uibCollapse",["$animate","$q","$parse","$injector",function(e,t,n,i){var r=i.has("$animateCss")?i.get("$animateCss"):null;return{link:function(i,o,a){function s(){o.hasClass("collapse")&&o.hasClass("in")||t.resolve(d(i)).then(function(){o.removeClass("collapse").addClass("collapsing").attr("aria-expanded",!0).attr("aria-hidden",!1),r?r(o,{addClass:"in",easing:"ease",to:{height:o[0].scrollHeight+"px"}}).start().finally(l):e.addClass(o,"in",{to:{height:o[0].scrollHeight+"px"}}).then(l)})}function l(){o.removeClass("collapsing").addClass("collapse").css({height:"auto"}),h(i)}function c(){if(!o.hasClass("collapse")&&!o.hasClass("in"))return u();t.resolve(p(i)).then(function(){o.css({height:o[0].scrollHeight+"px"}).removeClass("collapse").addClass("collapsing").attr("aria-expanded",!1).attr("aria-hidden",!0),r?r(o,{removeClass:"in",to:{height:"0"}}).start().finally(u):e.removeClass(o,"in",{to:{height:"0"}}).then(u)})}function u(){o.css({height:"0"}),o.removeClass("collapsing").addClass("collapse"),f(i)}var d=n(a.expanding),h=n(a.expanded),p=n(a.collapsing),f=n(a.collapsed);i.$eval(a.uibCollapse)||o.addClass("in").addClass("collapse").attr("aria-expanded",!0).attr("aria-hidden",!1).css({height:"auto"}),i.$watch(a.uibCollapse,function(e){e?c():s()})}}}]),angular.module("ui.bootstrap.accordion",["ui.bootstrap.collapse"]).constant("uibAccordionConfig",{closeOthers:!0}).controller("UibAccordionController",["$scope","$attrs","uibAccordionConfig",function(e,t,n){this.groups=[],this.closeOthers=function(i){(angular.isDefined(t.closeOthers)?e.$eval(t.closeOthers):n.closeOthers)&&angular.forEach(this.groups,function(e){e!==i&&(e.isOpen=!1)})},this.addGroup=function(e){var t=this;this.groups.push(e),e.$on("$destroy",function(n){t.removeGroup(e)})},this.removeGroup=function(e){var t=this.groups.indexOf(e);-1!==t&&this.groups.splice(t,1)}}]).directive("uibAccordion",function(){return{controller:"UibAccordionController",controllerAs:"accordion",transclude:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/accordion/accordion.html"}}}).directive("uibAccordionGroup",function(){return{require:"^uibAccordion",transclude:!0,replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/accordion/accordion-group.html"},scope:{heading:"@",panelClass:"@?",isOpen:"=?",isDisabled:"=?"},controller:function(){this.setHeading=function(e){this.heading=e}},link:function(e,t,n,i){i.addGroup(e),e.openClass=n.openClass||"panel-open",e.panelClass=n.panelClass||"panel-default",e.$watch("isOpen",function(n){t.toggleClass(e.openClass,!!n),n&&i.closeOthers(e)}),e.toggleOpen=function(t){e.isDisabled||t&&32!==t.which||(e.isOpen=!e.isOpen)};var r="accordiongroup-"+e.$id+"-"+Math.floor(1e4*Math.random());e.headingId=r+"-tab",e.panelId=r+"-panel"}}}).directive("uibAccordionHeading",function(){return{transclude:!0,template:"",replace:!0,require:"^uibAccordionGroup",link:function(e,t,n,i,r){i.setHeading(r(e,angular.noop))}}}).directive("uibAccordionTransclude",function(){return{require:"^uibAccordionGroup",link:function(e,t,n,i){e.$watch(function(){return i[n.uibAccordionTransclude]},function(e){if(e){var n=angular.element(t[0].querySelector("uib-accordion-header,data-uib-accordion-header,x-uib-accordion-header,uib\\:accordion-header,[uib-accordion-header],[data-uib-accordion-header],[x-uib-accordion-header]"));n.html(""),n.append(e)}})}}}),angular.module("ui.bootstrap.alert",[]).controller("UibAlertController",["$scope","$attrs","$interpolate","$timeout",function(e,t,n,i){e.closeable=!!t.close;var r=angular.isDefined(t.dismissOnTimeout)?n(t.dismissOnTimeout)(e.$parent):null;r&&i(function(){e.close()},parseInt(r,10))}]).directive("uibAlert",function(){return{controller:"UibAlertController",controllerAs:"alert",templateUrl:function(e,t){return t.templateUrl||"uib/template/alert/alert.html"},transclude:!0,replace:!0,scope:{type:"@",close:"&"}}}),angular.module("ui.bootstrap.buttons",[]).constant("uibButtonConfig",{activeClass:"active",toggleEvent:"click"}).controller("UibButtonsController",["uibButtonConfig",function(e){this.activeClass=e.activeClass||"active",this.toggleEvent=e.toggleEvent||"click"}]).directive("uibBtnRadio",["$parse",function(e){return{require:["uibBtnRadio","ngModel"],controller:"UibButtonsController",controllerAs:"buttons",link:function(t,n,i,r){var o=r[0],a=r[1],s=e(i.uibUncheckable);n.find("input").css({display:"none"}),a.$render=function(){n.toggleClass(o.activeClass,angular.equals(a.$modelValue,t.$eval(i.uibBtnRadio)))},n.on(o.toggleEvent,function(){if(!i.disabled){var e=n.hasClass(o.activeClass);e&&!angular.isDefined(i.uncheckable)||t.$apply(function(){a.$setViewValue(e?null:t.$eval(i.uibBtnRadio)),a.$render()})}}),i.uibUncheckable&&t.$watch(s,function(e){i.$set("uncheckable",e?"":void 0)})}}}]).directive("uibBtnCheckbox",function(){return{require:["uibBtnCheckbox","ngModel"],controller:"UibButtonsController",controllerAs:"button",link:function(e,t,n,i){function r(){return a(n.btnCheckboxTrue,!0)}function o(){return a(n.btnCheckboxFalse,!1)}function a(t,n){return angular.isDefined(t)?e.$eval(t):n}var s=i[0],l=i[1];t.find("input").css({display:"none"}),l.$render=function(){t.toggleClass(s.activeClass,angular.equals(l.$modelValue,r()))},t.on(s.toggleEvent,function(){n.disabled||e.$apply(function(){l.$setViewValue(t.hasClass(s.activeClass)?o():r()),l.$render()})})}}}),angular.module("ui.bootstrap.carousel",[]).controller("UibCarouselController",["$scope","$element","$interval","$timeout","$animate",function(e,t,n,i,r){function o(){for(;y.length;)y.shift()}function a(e){for(var t=0;t<g.length;t++)g[t].slide.active=t===e}function s(n,i,l){if(!_){if(angular.extend(n,{direction:l}),angular.extend(g[b].slide||{},{direction:l}),r.enabled(t)&&!e.$currentTransition&&g[i].element&&m.slides.length>1){g[i].element.data(v,n.direction);var c=m.getCurrentIndex();angular.isNumber(c)&&g[c].element&&g[c].element.data(v,n.direction),e.$currentTransition=!0,r.on("addClass",g[i].element,function(t,n){if("close"===n&&(e.$currentTransition=null,r.off("addClass",t),y.length)){var i=y.pop().slide,a=i.index,l=a>m.getCurrentIndex()?"next":"prev";o(),s(i,a,l)}})}e.active=n.index,b=n.index,a(i),d()}}function l(e){for(var t=0;t<g.length;t++)if(g[t].slide===e)return t}function c(){p&&(n.cancel(p),p=null)}function u(t){t.length||(e.$currentTransition=null,o())}function d(){c();var t=+e.interval;!isNaN(t)&&t>0&&(p=n(h,t))}function h(){var t=+e.interval;f&&!isNaN(t)&&t>0&&g.length?e.next():e.pause()}var p,f,m=this,g=m.slides=e.slides=[],v="uib-slideDirection",b=e.active,y=[],_=!1;m.addSlide=function(t,n){g.push({slide:t,element:n}),g.sort(function(e,t){return+e.slide.index-+t.slide.index}),(t.index===e.active||1===g.length&&!angular.isNumber(e.active))&&(e.$currentTransition&&(e.$currentTransition=null),b=t.index,e.active=t.index,a(b),m.select(g[l(t)]),1===g.length&&e.play())},m.getCurrentIndex=function(){for(var e=0;e<g.length;e++)if(g[e].slide.index===b)return e},m.next=e.next=function(){var t=(m.getCurrentIndex()+1)%g.length;{if(0!==t||!e.noWrap())return m.select(g[t],"next");e.pause()}},m.prev=e.prev=function(){var t=m.getCurrentIndex()-1<0?g.length-1:m.getCurrentIndex()-1;{if(!e.noWrap()||t!==g.length-1)return m.select(g[t],"prev");e.pause()}},m.removeSlide=function(t){var n=l(t),i=y.indexOf(g[n]);-1!==i&&y.splice(i,1),g.splice(n,1),g.length>0&&b===n?n>=g.length?(b=g.length-1,e.active=b,a(b),m.select(g[g.length-1])):(b=n,e.active=b,a(b),m.select(g[n])):b>n&&(b--,e.active=b),0===g.length&&(b=null,e.active=null,o())},m.select=e.select=function(t,n){var i=l(t.slide);void 0===n&&(n=i>m.getCurrentIndex()?"next":"prev"),t.slide.index===b||e.$currentTransition?t&&t.slide.index!==b&&e.$currentTransition&&y.push(g[i]):s(t.slide,i,n)},e.indexOfSlide=function(e){return+e.slide.index},e.isActive=function(t){return e.active===t.slide.index},e.isPrevDisabled=function(){return 0===e.active&&e.noWrap()},e.isNextDisabled=function(){return e.active===g.length-1&&e.noWrap()},e.pause=function(){e.noPause||(f=!1,c())},e.play=function(){f||(f=!0,d())},e.$on("$destroy",function(){_=!0,c()}),e.$watch("noTransition",function(e){r.enabled(t,!e)}),e.$watch("interval",d),e.$watchCollection("slides",u),e.$watch("active",function(e){if(angular.isNumber(e)&&b!==e){for(var t=0;t<g.length;t++)if(g[t].slide.index===e){e=t;break}g[e]&&(a(e),m.select(g[e]),b=e)}})}]).directive("uibCarousel",function(){return{transclude:!0,replace:!0,controller:"UibCarouselController",controllerAs:"carousel",templateUrl:function(e,t){return t.templateUrl||"uib/template/carousel/carousel.html"},scope:{active:"=",interval:"=",noTransition:"=",noPause:"=",noWrap:"&"}}}).directive("uibSlide",function(){return{require:"^uibCarousel",transclude:!0,replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/carousel/slide.html"},scope:{actual:"=?",index:"=?"},link:function(e,t,n,i){i.addSlide(e,t),e.$on("$destroy",function(){i.removeSlide(e)})}}}).animation(".item",["$animateCss",function(e){function t(e,t,n){e.removeClass(t),n&&n()}return{beforeAddClass:function(n,i,r){if("active"===i){var o=!1,a=n.data("uib-slideDirection"),s="next"===a?"left":"right",l=t.bind(this,n,s+" "+a,r);return n.addClass(a),e(n,{addClass:s}).start().done(l),function(){o=!0}}r()},beforeRemoveClass:function(n,i,r){if("active"===i){var o=!1,a="next"===n.data("uib-slideDirection")?"left":"right",s=t.bind(this,n,a,r);return e(n,{addClass:a}).start().done(s),function(){o=!0}}r()}}}]),angular.module("ui.bootstrap.dateparser",[]).service("uibDateParser",["$log","$locale","dateFilter","orderByFilter",function(e,t,n,i){function r(e,t){var n=[],r=e.split(""),o=e.indexOf("'");if(o>-1){var a=!1;e=e.split("");for(var s=o;s<e.length;s++)a?("'"===e[s]&&(s+1<e.length&&"'"===e[s+1]?(e[s+1]="$",r[s+1]=""):(r[s]="",a=!1)),e[s]="$"):"'"===e[s]&&(e[s]="$",r[s]="",a=!0);e=e.join("")}return angular.forEach(p,function(i){var o=e.indexOf(i.key);if(o>-1){e=e.split(""),r[o]="("+i.regex+")",e[o]="$";for(var a=o+1,s=o+i.key.length;a<s;a++)r[a]="",e[a]="$";e=e.join(""),n.push({index:o,key:i.key,apply:i[t],matcher:i.regex})}}),{regex:new RegExp("^"+r.join("")+"$"),map:i(n,"index")}}function o(e,t,n){return!(n<1)&&(1===t&&n>28?29===n&&(e%4==0&&e%100!=0||e%400==0):3!==t&&5!==t&&8!==t&&10!==t||n<31)}function a(e){return parseInt(e,10)}function s(e,t){return e&&t?d(e,t):e}function l(e,t){return e&&t?d(e,t,!0):e}function c(e,t){e=e.replace(/:/g,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function u(e,t){return(e=new Date(e.getTime())).setMinutes(e.getMinutes()+t),e}function d(e,t,n){n=n?-1:1;var i=e.getTimezoneOffset();return u(e,n*(c(t,i)-i))}var h,p,f=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;this.init=function(){h=t.id,this.parsers={},this.formatters={},p=[{key:"yyyy",regex:"\\d{4}",apply:function(e){this.year=+e},formatter:function(e){var t=new Date;return t.setFullYear(Math.abs(e.getFullYear())),n(t,"yyyy")}},{key:"yy",regex:"\\d{2}",apply:function(e){e=+e,this.year=e<69?e+2e3:e+1900},formatter:function(e){var t=new Date;return t.setFullYear(Math.abs(e.getFullYear())),n(t,"yy")}},{key:"y",regex:"\\d{1,4}",apply:function(e){this.year=+e},formatter:function(e){var t=new Date;return t.setFullYear(Math.abs(e.getFullYear())),n(t,"y")}},{key:"M!",regex:"0?[1-9]|1[0-2]",apply:function(e){this.month=e-1},formatter:function(e){var t=e.getMonth();return/^[0-9]$/.test(t)?n(e,"MM"):n(e,"M")}},{key:"MMMM",regex:t.DATETIME_FORMATS.MONTH.join("|"),apply:function(e){this.month=t.DATETIME_FORMATS.MONTH.indexOf(e)},formatter:function(e){return n(e,"MMMM")}},{key:"MMM",regex:t.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(e){this.month=t.DATETIME_FORMATS.SHORTMONTH.indexOf(e)},formatter:function(e){return n(e,"MMM")}},{key:"MM",regex:"0[1-9]|1[0-2]",apply:function(e){this.month=e-1},formatter:function(e){return n(e,"MM")}},{key:"M",regex:"[1-9]|1[0-2]",apply:function(e){this.month=e-1},formatter:function(e){return n(e,"M")}},{key:"d!",regex:"[0-2]?[0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e},formatter:function(e){var t=e.getDate();return/^[1-9]$/.test(t)?n(e,"dd"):n(e,"d")}},{key:"dd",regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e},formatter:function(e){return n(e,"dd")}},{key:"d",regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e},formatter:function(e){return n(e,"d")}},{key:"EEEE",regex:t.DATETIME_FORMATS.DAY.join("|"),formatter:function(e){return n(e,"EEEE")}},{key:"EEE",regex:t.DATETIME_FORMATS.SHORTDAY.join("|"),formatter:function(e){return n(e,"EEE")}},{key:"HH",regex:"(?:0|1)[0-9]|2[0-3]",apply:function(e){this.hours=+e},formatter:function(e){return n(e,"HH")}},{key:"hh",regex:"0[0-9]|1[0-2]",apply:function(e){this.hours=+e},formatter:function(e){return n(e,"hh")}},{key:"H",regex:"1?[0-9]|2[0-3]",apply:function(e){this.hours=+e},formatter:function(e){return n(e,"H")}},{key:"h",regex:"[0-9]|1[0-2]",apply:function(e){this.hours=+e},formatter:function(e){return n(e,"h")}},{key:"mm",regex:"[0-5][0-9]",apply:function(e){this.minutes=+e},formatter:function(e){return n(e,"mm")}},{key:"m",regex:"[0-9]|[1-5][0-9]",apply:function(e){this.minutes=+e},formatter:function(e){return n(e,"m")}},{key:"sss",regex:"[0-9][0-9][0-9]",apply:function(e){this.milliseconds=+e},formatter:function(e){return n(e,"sss")}},{key:"ss",regex:"[0-5][0-9]",apply:function(e){this.seconds=+e},formatter:function(e){return n(e,"ss")}},{key:"s",regex:"[0-9]|[1-5][0-9]",apply:function(e){this.seconds=+e},formatter:function(e){return n(e,"s")}},{key:"a",regex:t.DATETIME_FORMATS.AMPMS.join("|"),apply:function(e){12===this.hours&&(this.hours=0),"PM"===e&&(this.hours+=12)},formatter:function(e){return n(e,"a")}},{key:"Z",regex:"[+-]\\d{4}",apply:function(e){var t=e.match(/([+-])(\d{2})(\d{2})/),n=t[1],i=t[2],r=t[3];this.hours+=a(n+i),this.minutes+=a(n+r)},formatter:function(e){return n(e,"Z")}},{key:"ww",regex:"[0-4][0-9]|5[0-3]",formatter:function(e){return n(e,"ww")}},{key:"w",regex:"[0-9]|[1-4][0-9]|5[0-3]",formatter:function(e){return n(e,"w")}},{key:"GGGG",regex:t.DATETIME_FORMATS.ERANAMES.join("|").replace(/\s/g,"\\s"),formatter:function(e){return n(e,"GGGG")}},{key:"GGG",regex:t.DATETIME_FORMATS.ERAS.join("|"),formatter:function(e){return n(e,"GGG")}},{key:"GG",regex:t.DATETIME_FORMATS.ERAS.join("|"),formatter:function(e){return n(e,"GG")}},{key:"G",regex:t.DATETIME_FORMATS.ERAS.join("|"),formatter:function(e){return n(e,"G")}}]},this.init(),this.filter=function(e,n){if(!angular.isDate(e)||isNaN(e)||!n)return"";n=t.DATETIME_FORMATS[n]||n,t.id!==h&&this.init(),this.formatters[n]||(this.formatters[n]=r(n,"formatter"));var i=this.formatters[n].map,o=n;return i.reduce(function(t,n,r){var a=o.match(new RegExp("(.*)"+n.key));a&&angular.isString(a[1])&&(t+=a[1],o=o.replace(a[1]+n.key,""));var s=r===i.length-1?o:"";return n.apply?t+n.apply.call(null,e)+s:t+s},"")},this.parse=function(n,i,a){if(!angular.isString(n)||!i)return n;i=(i=t.DATETIME_FORMATS[i]||i).replace(f,"\\$&"),t.id!==h&&this.init(),this.parsers[i]||(this.parsers[i]=r(i,"apply"));var s=this.parsers[i],l=s.regex,c=s.map,u=n.match(l),d=!1;if(u&&u.length){var p,m;angular.isDate(a)&&!isNaN(a.getTime())?p={year:a.getFullYear(),month:a.getMonth(),date:a.getDate(),hours:a.getHours(),minutes:a.getMinutes(),seconds:a.getSeconds(),milliseconds:a.getMilliseconds()}:(a&&e.warn("dateparser:","baseDate is not a valid date"),p={year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0});for(var g=1,v=u.length;g<v;g++){var b=c[g-1];"Z"===b.matcher&&(d=!0),b.apply&&b.apply.call(p,u[g])}var y=d?Date.prototype.setUTCFullYear:Date.prototype.setFullYear,_=d?Date.prototype.setUTCHours:Date.prototype.setHours;return o(p.year,p.month,p.date)&&(!angular.isDate(a)||isNaN(a.getTime())||d?(m=new Date(0),y.call(m,p.year,p.month,p.date),_.call(m,p.hours||0,p.minutes||0,p.seconds||0,p.milliseconds||0)):(m=new Date(a),y.call(m,p.year,p.month,p.date),_.call(m,p.hours,p.minutes,p.seconds,p.milliseconds))),m}},this.toTimezone=s,this.fromTimezone=l,this.timezoneToOffset=c,this.addDateMinutes=u,this.convertTimezoneToLocal=d}]),angular.module("ui.bootstrap.isClass",[]).directive("uibIsClass",["$animate",function(e){var t=/^\s*([\s\S]+?)\s+on\s+([\s\S]+?)\s*$/,n=/^\s*([\s\S]+?)\s+for\s+([\s\S]+?)\s*$/;return{restrict:"A",compile:function(i,r){function o(e,t,n){l.push(e),c.push({scope:e,element:t}),p.forEach(function(t,n){a(t,e)}),e.$on("$destroy",s)}function a(t,i){var r=t.match(n),o=i.$eval(r[1]),a=r[2],s=u[t];if(!s){var l=function(t){var n=null;c.some(function(e){if(e.scope.$eval(h)===t)return n=e,!0}),s.lastActivated!==n&&(s.lastActivated&&e.removeClass(s.lastActivated.element,o),n&&e.addClass(n.element,o),s.lastActivated=n)};u[t]=s={lastActivated:null,scope:i,watchFn:l,compareWithExp:a,watcher:i.$watch(a,l)}}s.watchFn(i.$eval(a))}function s(e){var t=e.targetScope,n=l.indexOf(t);if(l.splice(n,1),c.splice(n,1),l.length){var i=l[0];angular.forEach(u,function(e){e.scope===t&&(e.watcher=i.$watch(e.compareWithExp,e.watchFn),e.scope=i)})}else u={}}var l=[],c=[],u={},d=r.uibIsClass.match(t),h=d[2],p=d[1].split(",");return o}}}]),angular.module("ui.bootstrap.datepicker",["ui.bootstrap.dateparser","ui.bootstrap.isClass"]).value("$datepickerSuppressError",!1).value("$datepickerLiteralWarning",!0).constant("uibDatepickerConfig",{datepickerMode:"day",formatDay:"dd",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",maxDate:null,maxMode:"year",minDate:null,minMode:"day",ngModelOptions:{},shortcutPropagation:!1,showWeeks:!0,yearColumns:5,yearRows:4}).controller("UibDatepickerController",["$scope","$attrs","$parse","$interpolate","$locale","$log","dateFilter","uibDatepickerConfig","$datepickerLiteralWarning","$datepickerSuppressError","uibDateParser",function(e,t,n,i,r,o,a,s,l,c,u){function d(t){e.datepickerMode=t,e.datepickerOptions.datepickerMode=t}var h=this,p={$setViewValue:angular.noop},f={},m=[];t.datepickerOptions;e.datepickerOptions||(e.datepickerOptions={}),this.modes=["day","month","year"],["customClass","dateDisabled","datepickerMode","formatDay","formatDayHeader","formatDayTitle","formatMonth","formatMonthTitle","formatYear","maxDate","maxMode","minDate","minMode","showWeeks","shortcutPropagation","startingDay","yearColumns","yearRows"].forEach(function(t){switch(t){case"customClass":case"dateDisabled":e[t]=e.datepickerOptions[t]||angular.noop;break;case"datepickerMode":e.datepickerMode=angular.isDefined(e.datepickerOptions.datepickerMode)?e.datepickerOptions.datepickerMode:s.datepickerMode;break;case"formatDay":case"formatDayHeader":case"formatDayTitle":case"formatMonth":case"formatMonthTitle":case"formatYear":h[t]=angular.isDefined(e.datepickerOptions[t])?i(e.datepickerOptions[t])(e.$parent):s[t];break;case"showWeeks":case"shortcutPropagation":case"yearColumns":case"yearRows":h[t]=angular.isDefined(e.datepickerOptions[t])?e.datepickerOptions[t]:s[t];break;case"startingDay":angular.isDefined(e.datepickerOptions.startingDay)?h.startingDay=e.datepickerOptions.startingDay:angular.isNumber(s.startingDay)?h.startingDay=s.startingDay:h.startingDay=(r.DATETIME_FORMATS.FIRSTDAYOFWEEK+8)%7;break;case"maxDate":case"minDate":e.$watch("datepickerOptions."+t,function(e){e?angular.isDate(e)?h[t]=u.fromTimezone(new Date(e),f.timezone):(l&&o.warn("Literal date support has been deprecated, please switch to date object usage"),h[t]=new Date(a(e,"medium"))):h[t]=s[t]?u.fromTimezone(new Date(s[t]),f.timezone):null,h.refreshView()});break;case"maxMode":case"minMode":e.datepickerOptions[t]?e.$watch(function(){return e.datepickerOptions[t]},function(n){h[t]=e[t]=angular.isDefined(n)?n:datepickerOptions[t],("minMode"===t&&h.modes.indexOf(e.datepickerOptions.datepickerMode)<h.modes.indexOf(h[t])||"maxMode"===t&&h.modes.indexOf(e.datepickerOptions.datepickerMode)>h.modes.indexOf(h[t]))&&(e.datepickerMode=h[t],e.datepickerOptions.datepickerMode=h[t])}):h[t]=e[t]=s[t]||null}}),e.uniqueId="datepicker-"+e.$id+"-"+Math.floor(1e4*Math.random()),e.disabled=angular.isDefined(t.disabled)||!1,angular.isDefined(t.ngDisabled)&&m.push(e.$parent.$watch(t.ngDisabled,function(t){e.disabled=t,h.refreshView()})),e.isActive=function(t){return 0===h.compare(t.date,h.activeDate)&&(e.activeDateId=t.uid,!0)},this.init=function(t){p=t,f=t.$options||s.ngModelOptions,e.datepickerOptions.initDate?(h.activeDate=u.fromTimezone(e.datepickerOptions.initDate,f.timezone)||new Date,e.$watch("datepickerOptions.initDate",function(e){e&&(p.$isEmpty(p.$modelValue)||p.$invalid)&&(h.activeDate=u.fromTimezone(e,f.timezone),h.refreshView())})):h.activeDate=new Date;var n=p.$modelValue?new Date(p.$modelValue):new Date;this.activeDate=isNaN(n)?u.fromTimezone(new Date,f.timezone):u.fromTimezone(n,f.timezone),p.$render=function(){h.render()}},this.render=function(){if(p.$viewValue){var e=new Date(p.$viewValue);!isNaN(e)?this.activeDate=u.fromTimezone(e,f.timezone):c||o.error('Datepicker directive: "ng-model" value must be a Date object')}this.refreshView()},this.refreshView=function(){if(this.element){e.selectedDt=null,this._refreshView(),e.activeDt&&(e.activeDateId=e.activeDt.uid);var t=p.$viewValue?new Date(p.$viewValue):null;t=u.fromTimezone(t,f.timezone),p.$setValidity("dateDisabled",!t||this.element&&!this.isDisabled(t))}},this.createDateObject=function(t,n){var i=p.$viewValue?new Date(p.$viewValue):null;i=u.fromTimezone(i,f.timezone);var r=new Date;r=u.fromTimezone(r,f.timezone);var o=this.compare(t,r),a={date:t,label:u.filter(t,n),selected:i&&0===this.compare(t,i),disabled:this.isDisabled(t),past:o<0,current:0===o,future:o>0,customClass:this.customClass(t)||null};return i&&0===this.compare(t,i)&&(e.selectedDt=a),h.activeDate&&0===this.compare(a.date,h.activeDate)&&(e.activeDt=a),a},this.isDisabled=function(t){return e.disabled||this.minDate&&this.compare(t,this.minDate)<0||this.maxDate&&this.compare(t,this.maxDate)>0||e.dateDisabled&&e.dateDisabled({date:t,mode:e.datepickerMode})},this.customClass=function(t){return e.customClass({date:t,mode:e.datepickerMode})},this.split=function(e,t){for(var n=[];e.length>0;)n.push(e.splice(0,t));return n},e.select=function(t){if(e.datepickerMode===h.minMode){var n=p.$viewValue?u.fromTimezone(new Date(p.$viewValue),f.timezone):new Date(0,0,0,0,0,0,0);n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n=u.toTimezone(n,f.timezone),p.$setViewValue(n),p.$render()}else h.activeDate=t,d(h.modes[h.modes.indexOf(e.datepickerMode)-1]),e.$emit("uib:datepicker.mode");e.$broadcast("uib:datepicker.focus")},e.move=function(e){var t=h.activeDate.getFullYear()+e*(h.step.years||0),n=h.activeDate.getMonth()+e*(h.step.months||0);h.activeDate.setFullYear(t,n,1),h.refreshView()},e.toggleMode=function(t){t=t||1,e.datepickerMode===h.maxMode&&1===t||e.datepickerMode===h.minMode&&-1===t||(d(h.modes[h.modes.indexOf(e.datepickerMode)+t]),e.$emit("uib:datepicker.mode"))},e.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"};var g=function(){h.element[0].focus()};e.$on("uib:datepicker.focus",g),e.keydown=function(t){var n=e.keys[t.which];if(n&&!t.shiftKey&&!t.altKey&&!e.disabled)if(t.preventDefault(),h.shortcutPropagation||t.stopPropagation(),"enter"===n||"space"===n){if(h.isDisabled(h.activeDate))return;e.select(h.activeDate)}else!t.ctrlKey||"up"!==n&&"down"!==n?(h.handleKeyDown(n,t),h.refreshView()):e.toggleMode("up"===n?1:-1)},e.$on("$destroy",function(){for(;m.length;)m.shift()()})}]).controller("UibDaypickerController",["$scope","$element","dateFilter",function(e,t,n){function i(e,t){return 1!==t||e%4!=0||e%100==0&&e%400!=0?o[t]:29}function r(e){var t=new Date(e);t.setDate(t.getDate()+4-(t.getDay()||7));var n=t.getTime();return t.setMonth(0),t.setDate(1),Math.floor(Math.round((n-t)/864e5)/7)+1}var o=[31,28,31,30,31,30,31,31,30,31,30,31];this.step={months:1},this.element=t,this.init=function(t){angular.extend(t,this),e.showWeeks=t.showWeeks,t.refreshView()},this.getDates=function(e,t){for(var n,i=new Array(t),r=new Date(e),o=0;o<t;)n=new Date(r),i[o++]=n,r.setDate(r.getDate()+1);return i},this._refreshView=function(){var t=this.activeDate.getFullYear(),i=this.activeDate.getMonth(),o=new Date(this.activeDate);o.setFullYear(t,i,1);var a=this.startingDay-o.getDay(),s=a>0?7-a:-a,l=new Date(o);s>0&&l.setDate(1-s);for(var c=this.getDates(l,42),u=0;u<42;u++)c[u]=angular.extend(this.createDateObject(c[u],this.formatDay),{secondary:c[u].getMonth()!==i,uid:e.uniqueId+"-"+u});e.labels=new Array(7);for(var d=0;d<7;d++)e.labels[d]={abbr:n(c[d].date,this.formatDayHeader),full:n(c[d].date,"EEEE")};if(e.title=n(this.activeDate,this.formatDayTitle),e.rows=this.split(c,7),e.showWeeks){e.weekNumbers=[];for(var h=(11-this.startingDay)%7,p=e.rows.length,f=0;f<p;f++)e.weekNumbers.push(r(e.rows[f][h].date))}},this.compare=function(e,t){var n=new Date(e.getFullYear(),e.getMonth(),e.getDate()),i=new Date(t.getFullYear(),t.getMonth(),t.getDate());return n.setFullYear(e.getFullYear()),i.setFullYear(t.getFullYear()),n-i},this.handleKeyDown=function(e,t){var n=this.activeDate.getDate();if("left"===e)n-=1;else if("up"===e)n-=7;else if("right"===e)n+=1;else if("down"===e)n+=7;else if("pageup"===e||"pagedown"===e){var r=this.activeDate.getMonth()+("pageup"===e?-1:1);this.activeDate.setMonth(r,1),n=Math.min(i(this.activeDate.getFullYear(),this.activeDate.getMonth()),n)}else"home"===e?n=1:"end"===e&&(n=i(this.activeDate.getFullYear(),this.activeDate.getMonth()));this.activeDate.setDate(n)}}]).controller("UibMonthpickerController",["$scope","$element","dateFilter",function(e,t,n){this.step={years:1},this.element=t,this.init=function(e){angular.extend(e,this),e.refreshView()},this._refreshView=function(){for(var t,i=new Array(12),r=this.activeDate.getFullYear(),o=0;o<12;o++)(t=new Date(this.activeDate)).setFullYear(r,o,1),i[o]=angular.extend(this.createDateObject(t,this.formatMonth),{uid:e.uniqueId+"-"+o});e.title=n(this.activeDate,this.formatMonthTitle),e.rows=this.split(i,3)},this.compare=function(e,t){var n=new Date(e.getFullYear(),e.getMonth()),i=new Date(t.getFullYear(),t.getMonth());return n.setFullYear(e.getFullYear()),i.setFullYear(t.getFullYear()),n-i},this.handleKeyDown=function(e,t){var n=this.activeDate.getMonth();if("left"===e)n-=1;else if("up"===e)n-=3;else if("right"===e)n+=1;else if("down"===e)n+=3;else if("pageup"===e||"pagedown"===e){var i=this.activeDate.getFullYear()+("pageup"===e?-1:1);this.activeDate.setFullYear(i)}else"home"===e?n=0:"end"===e&&(n=11);this.activeDate.setMonth(n)}}]).controller("UibYearpickerController",["$scope","$element","dateFilter",function(e,t,n){function i(e){return parseInt((e-1)/o,10)*o+1}var r,o;this.element=t,this.yearpickerInit=function(){r=this.yearColumns,o=this.yearRows*r,this.step={years:o}},this._refreshView=function(){for(var t,n=new Array(o),a=0,s=i(this.activeDate.getFullYear());a<o;a++)(t=new Date(this.activeDate)).setFullYear(s+a,0,1),n[a]=angular.extend(this.createDateObject(t,this.formatYear),{uid:e.uniqueId+"-"+a});e.title=[n[0].label,n[o-1].label].join(" - "),e.rows=this.split(n,r),e.columns=r},this.compare=function(e,t){return e.getFullYear()-t.getFullYear()},this.handleKeyDown=function(e,t){var n=this.activeDate.getFullYear();"left"===e?n-=1:"up"===e?n-=r:"right"===e?n+=1:"down"===e?n+=r:"pageup"===e||"pagedown"===e?n+=("pageup"===e?-1:1)*o:"home"===e?n=i(this.activeDate.getFullYear()):"end"===e&&(n=i(this.activeDate.getFullYear())+o-1),this.activeDate.setFullYear(n)}}]).directive("uibDatepicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepicker/datepicker.html"},scope:{datepickerOptions:"=?"},require:["uibDatepicker","^ngModel"],controller:"UibDatepickerController",controllerAs:"datepicker",link:function(e,t,n,i){var r=i[0],o=i[1];r.init(o)}}}).directive("uibDaypicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepicker/day.html"},require:["^uibDatepicker","uibDaypicker"],controller:"UibDaypickerController",link:function(e,t,n,i){var r=i[0];i[1].init(r)}}}).directive("uibMonthpicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepicker/month.html"},require:["^uibDatepicker","uibMonthpicker"],controller:"UibMonthpickerController",link:function(e,t,n,i){var r=i[0];i[1].init(r)}}}).directive("uibYearpicker",function(){return{replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepicker/year.html"},require:["^uibDatepicker","uibYearpicker"],controller:"UibYearpickerController",link:function(e,t,n,i){var r=i[0];angular.extend(r,i[1]),r.yearpickerInit(),r.refreshView()}}}),angular.module("ui.bootstrap.position",[]).factory("$uibPosition",["$document","$window",function(e,t){var n,i,r={normal:/(auto|scroll)/,hidden:/(auto|scroll|hidden)/},o={auto:/\s?auto?\s?/i,primary:/^(top|bottom|left|right)$/,secondary:/^(top|bottom|left|right|center)$/,vertical:/^(top|bottom)$/},a=/(HTML|BODY)/;return{getRawNode:function(e){return e.nodeName?e:e[0]||e},parseStyle:function(e){return e=parseFloat(e),isFinite(e)?e:0},offsetParent:function(n){for(var i=(n=this.getRawNode(n)).offsetParent||e[0].documentElement;i&&i!==e[0].documentElement&&function(e){return"static"===(t.getComputedStyle(e).position||"static")}(i);)i=i.offsetParent;return i||e[0].documentElement},scrollbarWidth:function(r){if(r){if(angular.isUndefined(i)){var o=e.find("body");o.addClass("uib-position-body-scrollbar-measure"),i=t.innerWidth-o[0].clientWidth,i=isFinite(i)?i:0,o.removeClass("uib-position-body-scrollbar-measure")}return i}if(angular.isUndefined(n)){var a=angular.element('<div class="uib-position-scrollbar-measure"></div>');e.find("body").append(a),n=a[0].offsetWidth-a[0].clientWidth,n=isFinite(n)?n:0,a.remove()}return n},scrollbarPadding:function(e){e=this.getRawNode(e);var n=t.getComputedStyle(e),i=this.parseStyle(n.paddingRight),r=this.parseStyle(n.paddingBottom),o=this.scrollParent(e,!1,!0),s=this.scrollbarWidth(o,a.test(o.tagName));return{scrollbarWidth:s,widthOverflow:o.scrollWidth>o.clientWidth,right:i+s,originalRight:i,heightOverflow:o.scrollHeight>o.clientHeight,bottom:r+s,originalBottom:r}},isScrollable:function(e,n){e=this.getRawNode(e);var i=n?r.hidden:r.normal,o=t.getComputedStyle(e);return i.test(o.overflow+o.overflowY+o.overflowX)},scrollParent:function(n,i,o){n=this.getRawNode(n);var a=i?r.hidden:r.normal,s=e[0].documentElement,l=t.getComputedStyle(n);if(o&&a.test(l.overflow+l.overflowY+l.overflowX))return n;var c="absolute"===l.position,u=n.parentElement||s;if(u===s||"fixed"===l.position)return s;for(;u.parentElement&&u!==s;){var d=t.getComputedStyle(u);if(c&&"static"!==d.position&&(c=!1),!c&&a.test(d.overflow+d.overflowY+d.overflowX))break;u=u.parentElement}return u},position:function(n,i){n=this.getRawNode(n);var r=this.offset(n);if(i){var o=t.getComputedStyle(n);r.top-=this.parseStyle(o.marginTop),r.left-=this.parseStyle(o.marginLeft)}var a=this.offsetParent(n),s={top:0,left:0};return a!==e[0].documentElement&&((s=this.offset(a)).top+=a.clientTop-a.scrollTop,s.left+=a.clientLeft-a.scrollLeft),{width:Math.round(angular.isNumber(r.width)?r.width:n.offsetWidth),height:Math.round(angular.isNumber(r.height)?r.height:n.offsetHeight),top:Math.round(r.top-s.top),left:Math.round(r.left-s.left)}},offset:function(n){var i=(n=this.getRawNode(n)).getBoundingClientRect();return{width:Math.round(angular.isNumber(i.width)?i.width:n.offsetWidth),height:Math.round(angular.isNumber(i.height)?i.height:n.offsetHeight),top:Math.round(i.top+(t.pageYOffset||e[0].documentElement.scrollTop)),left:Math.round(i.left+(t.pageXOffset||e[0].documentElement.scrollLeft))}},viewportOffset:function(n,i,r){r=!1!==r;var o=(n=this.getRawNode(n)).getBoundingClientRect(),a={top:0,left:0,bottom:0,right:0},s=i?e[0].documentElement:this.scrollParent(n),l=s.getBoundingClientRect();if(a.top=l.top+s.clientTop,a.left=l.left+s.clientLeft,s===e[0].documentElement&&(a.top+=t.pageYOffset,a.left+=t.pageXOffset),a.bottom=a.top+s.clientHeight,a.right=a.left+s.clientWidth,r){var c=t.getComputedStyle(s);a.top+=this.parseStyle(c.paddingTop),a.bottom-=this.parseStyle(c.paddingBottom),a.left+=this.parseStyle(c.paddingLeft),a.right-=this.parseStyle(c.paddingRight)}return{top:Math.round(o.top-a.top),bottom:Math.round(a.bottom-o.bottom),left:Math.round(o.left-a.left),right:Math.round(a.right-o.right)}},parsePlacement:function(e){var t=o.auto.test(e);return t&&(e=e.replace(o.auto,"")),e=e.split("-"),e[0]=e[0]||"top",o.primary.test(e[0])||(e[0]="top"),e[1]=e[1]||"center",o.secondary.test(e[1])||(e[1]="center"),e[2]=!!t,e},positionElements:function(e,n,i,r){e=this.getRawNode(e),n=this.getRawNode(n);var a=angular.isDefined(n.offsetWidth)?n.offsetWidth:n.prop("offsetWidth"),s=angular.isDefined(n.offsetHeight)?n.offsetHeight:n.prop("offsetHeight");i=this.parsePlacement(i);var l=r?this.offset(e):this.position(e),c={top:0,left:0,placement:""};if(i[2]){var u=this.viewportOffset(e,r),d=t.getComputedStyle(n),h={width:a+Math.round(Math.abs(this.parseStyle(d.marginLeft)+this.parseStyle(d.marginRight))),height:s+Math.round(Math.abs(this.parseStyle(d.marginTop)+this.parseStyle(d.marginBottom)))};if(i[0]="top"===i[0]&&h.height>u.top&&h.height<=u.bottom?"bottom":"bottom"===i[0]&&h.height>u.bottom&&h.height<=u.top?"top":"left"===i[0]&&h.width>u.left&&h.width<=u.right?"right":"right"===i[0]&&h.width>u.right&&h.width<=u.left?"left":i[0],i[1]="top"===i[1]&&h.height-l.height>u.bottom&&h.height-l.height<=u.top?"bottom":"bottom"===i[1]&&h.height-l.height>u.top&&h.height-l.height<=u.bottom?"top":"left"===i[1]&&h.width-l.width>u.right&&h.width-l.width<=u.left?"right":"right"===i[1]&&h.width-l.width>u.left&&h.width-l.width<=u.right?"left":i[1],"center"===i[1])if(o.vertical.test(i[0])){var p=l.width/2-a/2;u.left+p<0&&h.width-l.width<=u.right?i[1]="left":u.right+p<0&&h.width-l.width<=u.left&&(i[1]="right")}else{var f=l.height/2-h.height/2;u.top+f<0&&h.height-l.height<=u.bottom?i[1]="top":u.bottom+f<0&&h.height-l.height<=u.top&&(i[1]="bottom")}}switch(i[0]){case"top":c.top=l.top-s;break;case"bottom":c.top=l.top+l.height;break;case"left":c.left=l.left-a;break;case"right":c.left=l.left+l.width}switch(i[1]){case"top":c.top=l.top;break;case"bottom":c.top=l.top+l.height-s;break;case"left":c.left=l.left;break;case"right":c.left=l.left+l.width-a;break;case"center":o.vertical.test(i[0])?c.left=l.left+l.width/2-a/2:c.top=l.top+l.height/2-s/2}return c.top=Math.round(c.top),c.left=Math.round(c.left),c.placement="center"===i[1]?i[0]:i[0]+"-"+i[1],c},positionArrow:function(e,n){var i=(e=this.getRawNode(e)).querySelector(".tooltip-inner, .popover-inner");if(i){var r=angular.element(i).hasClass("tooltip-inner"),a=r?e.querySelector(".tooltip-arrow"):e.querySelector(".arrow");if(a){var s={top:"",bottom:"",left:"",right:""};if("center"!==(n=this.parsePlacement(n))[1]){var l="border-"+n[0]+"-width",c=t.getComputedStyle(a)[l],u="border-";o.vertical.test(n[0])?u+=n[0]+"-"+n[1]:u+=n[1]+"-"+n[0],u+="-radius";var d=t.getComputedStyle(r?i:e)[u];switch(n[0]){case"top":s.bottom=r?"0":"-"+c;break;case"bottom":s.top=r?"0":"-"+c;break;case"left":s.right=r?"0":"-"+c;break;case"right":s.left=r?"0":"-"+c}s[n[1]]=d,angular.element(a).css(s)}else angular.element(a).css(s)}}}}}]),angular.module("ui.bootstrap.datepickerPopup",["ui.bootstrap.datepicker","ui.bootstrap.position"]).value("$datepickerPopupLiteralWarning",!0).constant("uibDatepickerPopupConfig",{altInputFormats:[],appendToBody:!1,clearText:"Clear",closeOnDateSelection:!0,closeText:"Done",currentText:"Today",datepickerPopup:"yyyy-MM-dd",datepickerPopupTemplateUrl:"uib/template/datepickerPopup/popup.html",datepickerTemplateUrl:"uib/template/datepicker/datepicker.html",html5Types:{date:"yyyy-MM-dd","datetime-local":"yyyy-MM-ddTHH:mm:ss.sss",month:"yyyy-MM"},onOpenFocus:!0,showButtonBar:!0,placement:"auto bottom-left"}).controller("UibDatepickerPopupController",["$scope","$element","$attrs","$compile","$log","$parse","$window","$document","$rootScope","$uibPosition","dateFilter","uibDateParser","uibDatepickerPopupConfig","$timeout","uibDatepickerConfig","$datepickerPopupLiteralWarning",function(e,t,n,i,r,o,a,s,l,c,u,d,h,p,f,m){function g(t){var n=d.parse(t,A,e.date);if(isNaN(n))for(var i=0;i<N.length;i++)if(n=d.parse(t,N[i],e.date),!isNaN(n))return n;return n}function v(e){if(angular.isNumber(e)&&(e=new Date(e)),!e)return null;if(angular.isDate(e)&&!isNaN(e))return e;if(angular.isString(e)){var t=g(e);if(!isNaN(t))return d.toTimezone(t,O)}return M.$options&&M.$options.allowInvalid?e:void 0}function b(e,t){var i=e||t;return!n.ngRequired&&!i||(angular.isNumber(i)&&(i=new Date(i)),!i||(!(!angular.isDate(i)||isNaN(i))||!!angular.isString(i)&&!isNaN(g(t))))}function y(n){if(e.isOpen||!e.disabled){var i=$[0],r=t[0].contains(n.target),o=void 0!==i.contains&&i.contains(n.target);!e.isOpen||r||o||e.$apply(function(){e.isOpen=!1})}}function _(n){27===n.which&&e.isOpen?(n.preventDefault(),n.stopPropagation(),e.$apply(function(){e.isOpen=!1}),t[0].focus()):40!==n.which||e.isOpen||(n.preventDefault(),n.stopPropagation(),e.$apply(function(){e.isOpen=!0}))}function w(){if(e.isOpen){var i=angular.element($[0].querySelector(".uib-datepicker-popup")),r=n.popupPlacement?n.popupPlacement:h.placement,o=c.positionElements(t,i,r,x);i.css({top:o.top+"px",left:o.left+"px"}),i.hasClass("uib-position-measure")&&i.removeClass("uib-position-measure")}}var A,C,x,S,E,T,D,I,k,M,P,$,N,O,R=!1,L=[];this.init=function(r){if(M=r,P=r.$options,C=angular.isDefined(n.closeOnDateSelection)?e.$parent.$eval(n.closeOnDateSelection):h.closeOnDateSelection,x=angular.isDefined(n.datepickerAppendToBody)?e.$parent.$eval(n.datepickerAppendToBody):h.appendToBody,S=angular.isDefined(n.onOpenFocus)?e.$parent.$eval(n.onOpenFocus):h.onOpenFocus,E=angular.isDefined(n.datepickerPopupTemplateUrl)?n.datepickerPopupTemplateUrl:h.datepickerPopupTemplateUrl,T=angular.isDefined(n.datepickerTemplateUrl)?n.datepickerTemplateUrl:h.datepickerTemplateUrl,N=angular.isDefined(n.altInputFormats)?e.$parent.$eval(n.altInputFormats):h.altInputFormats,e.showButtonBar=angular.isDefined(n.showButtonBar)?e.$parent.$eval(n.showButtonBar):h.showButtonBar,h.html5Types[n.type]?(A=h.html5Types[n.type],R=!0):(A=n.uibDatepickerPopup||h.datepickerPopup,n.$observe("uibDatepickerPopup",function(e,t){var n=e||h.datepickerPopup;if(n!==A&&(A=n,M.$modelValue=null,!A))throw new Error("uibDatepickerPopup must have a date format specified.")})),!A)throw new Error("uibDatepickerPopup must have a date format specified.");if(R&&n.uibDatepickerPopup)throw new Error("HTML5 date input types do not support custom formats.");D=angular.element("<div uib-datepicker-popup-wrap><div uib-datepicker></div></div>"),P?(O=P.timezone,e.ngModelOptions=angular.copy(P),e.ngModelOptions.timezone=null,!0===e.ngModelOptions.updateOnDefault&&(e.ngModelOptions.updateOn=e.ngModelOptions.updateOn?e.ngModelOptions.updateOn+" default":"default"),D.attr("ng-model-options","ngModelOptions")):O=null,D.attr({"ng-model":"date","ng-change":"dateSelection(date)","template-url":E}),(I=angular.element(D.children()[0])).attr("template-url",T),e.datepickerOptions||(e.datepickerOptions={}),R&&"month"===n.type&&(e.datepickerOptions.datepickerMode="month",e.datepickerOptions.minMode="month"),I.attr("datepicker-options","datepickerOptions"),R?M.$formatters.push(function(t){return e.date=d.fromTimezone(t,O),t}):(M.$$parserName="date",M.$validators.date=b,M.$parsers.unshift(v),M.$formatters.push(function(t){return M.$isEmpty(t)?(e.date=t,t):(angular.isNumber(t)&&(t=new Date(t)),e.date=d.fromTimezone(t,O),d.filter(e.date,A))})),M.$viewChangeListeners.push(function(){e.date=g(M.$viewValue)}),t.on("keydown",_),$=i(D)(e),D.remove(),x?s.find("body").append($):t.after($),e.$on("$destroy",function(){for(!0===e.isOpen&&(l.$$phase||e.$apply(function(){e.isOpen=!1})),$.remove(),t.off("keydown",_),s.off("click",y),k&&k.off("scroll",w),angular.element(a).off("resize",w);L.length;)L.shift()()})},e.getText=function(t){return e[t+"Text"]||h[t+"Text"]},e.isDisabled=function(t){"today"===t&&(t=d.fromTimezone(new Date,O));var n={};return angular.forEach(["minDate","maxDate"],function(t){e.datepickerOptions[t]?angular.isDate(e.datepickerOptions[t])?n[t]=d.fromTimezone(new Date(e.datepickerOptions[t]),O):(m&&r.warn("Literal date support has been deprecated, please switch to date object usage"),n[t]=new Date(u(e.datepickerOptions[t],"medium"))):n[t]=null}),e.datepickerOptions&&n.minDate&&e.compare(t,n.minDate)<0||n.maxDate&&e.compare(t,n.maxDate)>0},e.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())},e.dateSelection=function(n){angular.isDefined(n)&&(e.date=n);var i=e.date?d.filter(e.date,A):null;t.val(i),M.$setViewValue(i),C&&(e.isOpen=!1,t[0].focus())},e.keydown=function(n){27===n.which&&(n.stopPropagation(),e.isOpen=!1,t[0].focus())},e.select=function(t,n){if(n.stopPropagation(),"today"===t){var i=new Date;angular.isDate(e.date)?(t=new Date(e.date)).setFullYear(i.getFullYear(),i.getMonth(),i.getDate()):t=new Date(i.setHours(0,0,0,0))}e.dateSelection(t)},e.close=function(n){n.stopPropagation(),e.isOpen=!1,t[0].focus()},e.disabled=angular.isDefined(n.disabled)||!1,n.ngDisabled&&L.push(e.$parent.$watch(o(n.ngDisabled),function(t){e.disabled=t})),e.$watch("isOpen",function(i){i?e.disabled?e.isOpen=!1:p(function(){w(),S&&e.$broadcast("uib:datepicker.focus"),s.on("click",y);var i=n.popupPlacement?n.popupPlacement:h.placement;x||c.parsePlacement(i)[2]?(k=k||angular.element(c.scrollParent(t)))&&k.on("scroll",w):k=null,angular.element(a).on("resize",w)},0,!1):(s.off("click",y),k&&k.off("scroll",w),angular.element(a).off("resize",w))}),e.$on("uib:datepicker.mode",function(){p(w,0,!1)})}]).directive("uibDatepickerPopup",function(){return{require:["ngModel","uibDatepickerPopup"],controller:"UibDatepickerPopupController",scope:{datepickerOptions:"=?",isOpen:"=?",currentText:"@",clearText:"@",closeText:"@"},link:function(e,t,n,i){var r=i[0];i[1].init(r)}}}).directive("uibDatepickerPopupWrap",function(){return{replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/datepickerPopup/popup.html"}}}),angular.module("ui.bootstrap.debounce",[]).factory("$$debounce",["$timeout",function(e){return function(t,n){var i;return function(){var r=this,o=Array.prototype.slice.call(arguments);i&&e.cancel(i),i=e(function(){t.apply(r,o)},n)}}}]),angular.module("ui.bootstrap.dropdown",["ui.bootstrap.position"]).constant("uibDropdownConfig",{appendToOpenClass:"uib-dropdown-open",openClass:"open"}).service("uibDropdownService",["$document","$rootScope",function(e,t){var n=null;this.open=function(t,o){n||(e.on("click",i),o.on("keydown",r)),n&&n!==t&&(n.isOpen=!1),n=t},this.close=function(t,o){n===t&&(n=null,e.off("click",i),o.off("keydown",r))};var i=function(e){if(n&&!(e&&"disabled"===n.getAutoClose()||e&&3===e.which)){var i=n.getToggleElement();if(!(e&&i&&i[0].contains(e.target))){var r=n.getDropdownElement();e&&"outsideClick"===n.getAutoClose()&&r&&r[0].contains(e.target)||(n.isOpen=!1,t.$$phase||n.$apply())}}},r=function(e){27===e.which?(e.stopPropagation(),n.focusToggleElement(),i()):n.isKeynavEnabled()&&-1!==[38,40].indexOf(e.which)&&n.isOpen&&(e.preventDefault(),e.stopPropagation(),n.focusDropdownEntry(e.which))}}]).controller("UibDropdownController",["$scope","$element","$attrs","$parse","uibDropdownConfig","uibDropdownService","$animate","$uibPosition","$document","$compile","$templateRequest",function(e,t,n,i,r,o,a,s,l,c,u){var d,h,p=this,f=e.$new(),m=r.appendToOpenClass,g=r.openClass,v=angular.noop,b=n.onToggle?i(n.onToggle):angular.noop,y=!1,_=null,w=!1,A=l.find("body");t.addClass("dropdown"),this.init=function(){if(n.isOpen&&(h=i(n.isOpen),v=h.assign,e.$watch(h,function(e){f.isOpen=!!e})),angular.isDefined(n.dropdownAppendTo)){var r=i(n.dropdownAppendTo)(f);r&&(_=angular.element(r))}y=angular.isDefined(n.dropdownAppendToBody),w=angular.isDefined(n.keyboardNav),y&&!_&&(_=A),_&&p.dropdownMenu&&(_.append(p.dropdownMenu),t.on("$destroy",function(){p.dropdownMenu.remove()}))},this.toggle=function(e){return f.isOpen=arguments.length?!!e:!f.isOpen,angular.isFunction(v)&&v(f,f.isOpen),f.isOpen},this.isOpen=function(){return f.isOpen},f.getToggleElement=function(){return p.toggleElement},f.getAutoClose=function(){return n.autoClose||"always"},f.getElement=function(){return t},f.isKeynavEnabled=function(){return w},f.focusDropdownEntry=function(e){var n=p.dropdownMenu?angular.element(p.dropdownMenu).find("a"):t.find("ul").eq(0).find("a");switch(e){case 40:angular.isNumber(p.selectedOption)?p.selectedOption=p.selectedOption===n.length-1?p.selectedOption:p.selectedOption+1:p.selectedOption=0;break;case 38:angular.isNumber(p.selectedOption)?p.selectedOption=0===p.selectedOption?0:p.selectedOption-1:p.selectedOption=n.length-1}n[p.selectedOption].focus()},f.getDropdownElement=function(){return p.dropdownMenu},f.focusToggleElement=function(){p.toggleElement&&p.toggleElement[0].focus()},f.$watch("isOpen",function(n,i){if(_&&p.dropdownMenu){var r,l,h,w=s.positionElements(t,p.dropdownMenu,"bottom-left",!0);if(r={top:w.top+"px",display:n?"block":"none"},l=p.dropdownMenu.hasClass("dropdown-menu-right"),l?(r.left="auto",h=s.scrollbarWidth(!0),r.right=window.innerWidth-h-(w.left+t.prop("offsetWidth"))+"px"):(r.left=w.left+"px",r.right="auto"),!y){var A=s.offset(_);r.top=w.top-A.top+"px",l?r.right=window.innerWidth-(w.left-A.left+t.prop("offsetWidth"))+"px":r.left=w.left-A.left+"px"}p.dropdownMenu.css(r)}var C=_||t;if(C.hasClass(_?m:g)===!n&&a[n?"addClass":"removeClass"](C,_?m:g).then(function(){angular.isDefined(n)&&n!==i&&b(e,{open:!!n})}),n)p.dropdownMenuTemplateUrl&&u(p.dropdownMenuTemplateUrl).then(function(e){d=f.$new(),c(e.trim())(d,function(e){var t=e;p.dropdownMenu.replaceWith(t),p.dropdownMenu=t})}),f.focusToggleElement(),o.open(f,t);else{if(p.dropdownMenuTemplateUrl){d&&d.$destroy();var x=angular.element('<ul class="dropdown-menu"></ul>');p.dropdownMenu.replaceWith(x),p.dropdownMenu=x}o.close(f,t),p.selectedOption=null}angular.isFunction(v)&&v(e,n)})}]).directive("uibDropdown",function(){return{controller:"UibDropdownController",link:function(e,t,n,i){i.init()}}}).directive("uibDropdownMenu",function(){return{restrict:"A",require:"?^uibDropdown",link:function(e,t,n,i){if(i&&!angular.isDefined(n.dropdownNested)){t.addClass("dropdown-menu");var r=n.templateUrl;r&&(i.dropdownMenuTemplateUrl=r),i.dropdownMenu||(i.dropdownMenu=t)}}}}).directive("uibDropdownToggle",function(){return{require:"?^uibDropdown",link:function(e,t,n,i){if(i){t.addClass("dropdown-toggle"),i.toggleElement=t;var r=function(r){r.preventDefault(),t.hasClass("disabled")||n.disabled||e.$apply(function(){i.toggle()})};t.bind("click",r),t.attr({"aria-haspopup":!0,"aria-expanded":!1}),e.$watch(i.isOpen,function(e){t.attr("aria-expanded",!!e)}),e.$on("$destroy",function(){t.unbind("click",r)})}}}}),angular.module("ui.bootstrap.stackedMap",[]).factory("$$stackedMap",function(){return{createNew:function(){var e=[];return{add:function(t,n){e.push({key:t,value:n})},get:function(t){for(var n=0;n<e.length;n++)if(t===e[n].key)return e[n]},keys:function(){for(var t=[],n=0;n<e.length;n++)t.push(e[n].key);return t},top:function(){return e[e.length-1]},remove:function(t){for(var n=-1,i=0;i<e.length;i++)if(t===e[i].key){n=i;break}return e.splice(n,1)[0]},removeTop:function(){return e.splice(e.length-1,1)[0]},length:function(){return e.length}}}}}),angular.module("ui.bootstrap.modal",["ui.bootstrap.stackedMap","ui.bootstrap.position"]).factory("$$multiMap",function(){return{createNew:function(){var e={};return{entries:function(){return Object.keys(e).map(function(t){return{key:t,value:e[t]}})},get:function(t){return e[t]},hasKey:function(t){return!!e[t]},keys:function(){return Object.keys(e)},put:function(t,n){e[t]||(e[t]=[]),e[t].push(n)},remove:function(t,n){var i=e[t];if(i){var r=i.indexOf(n);-1!==r&&i.splice(r,1),i.length||delete e[t]}}}}}}).provider("$uibResolve",function(){var e=this;this.resolver=null,this.setResolver=function(e){this.resolver=e},this.$get=["$injector","$q",function(t,n){var i=e.resolver?t.get(e.resolver):null;return{resolve:function(e,r,o,a){if(i)return i.resolve(e,r,o,a);var s=[];return angular.forEach(e,function(e){angular.isFunction(e)||angular.isArray(e)?s.push(n.resolve(t.invoke(e))):angular.isString(e)?s.push(n.resolve(t.get(e))):s.push(n.resolve(e))}),n.all(s).then(function(t){var n={},i=0;return angular.forEach(e,function(e,r){n[r]=t[i++]}),n})}}}]}).directive("uibModalBackdrop",["$animate","$injector","$uibModalStack",function(e,t,n){function i(t,i,r){r.modalInClass&&(e.addClass(i,r.modalInClass),t.$on(n.NOW_CLOSING_EVENT,function(n,o){var a=o();t.modalOptions.animation?e.removeClass(i,r.modalInClass).then(a):a()}))}return{replace:!0,templateUrl:"uib/template/modal/backdrop.html",compile:function(e,t){return e.addClass(t.backdropClass),i}}}]).directive("uibModalWindow",["$uibModalStack","$q","$animateCss","$document",function(e,t,n,i){return{scope:{index:"@"},replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/modal/window.html"},link:function(r,o,a){o.addClass(a.windowClass||""),o.addClass(a.windowTopClass||""),r.size=a.size,r.close=function(t){var n=e.getTop();n&&n.value.backdrop&&"static"!==n.value.backdrop&&t.target===t.currentTarget&&(t.preventDefault(),t.stopPropagation(),e.dismiss(n.key,"backdrop click"))},o.on("click",r.close),r.$isRendered=!0;var s=t.defer();a.$observe("modalRender",function(e){"true"===e&&s.resolve()}),s.promise.then(function(){var s=null;a.modalInClass&&(s=n(o,{addClass:a.modalInClass}).start(),r.$on(e.NOW_CLOSING_EVENT,function(e,t){var i=t();n(o,{removeClass:a.modalInClass}).start().then(i)})),t.when(s).then(function(){var t=e.getTop();if(t&&e.modalRendered(t.key),!i[0].activeElement||!o[0].contains(i[0].activeElement)){var n=o[0].querySelector("[autofocus]");n?n.focus():o[0].focus()}})})}}}]).directive("uibModalAnimationClass",function(){return{compile:function(e,t){t.modalAnimation&&e.addClass(t.uibModalAnimationClass)}}}).directive("uibModalTransclude",function(){return{link:function(e,t,n,i,r){r(e.$parent,function(e){t.empty(),t.append(e)})}}}).factory("$uibModalStack",["$animate","$animateCss","$document","$compile","$rootScope","$q","$$multiMap","$$stackedMap","$uibPosition",function(e,t,n,i,r,o,a,s,l){function c(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)}function u(){for(var e=-1,t=w.keys(),n=0;n<t.length;n++)w.get(t[n]).value.backdrop&&(e=n);return e>-1&&e<x&&(e=x),e}function d(e,t){var n=w.get(e).value,i=n.appendTo;w.remove(e),(S=w.top())&&(x=parseInt(S.value.modalDomEl.attr("index"),10)),f(n.modalDomEl,n.modalScope,function(){var t=n.openedClass||_;A.remove(t,e);var r=A.hasKey(t);i.toggleClass(t,r),!r&&y&&y.heightOverflow&&y.scrollbarWidth&&(y.originalRight?i.css({paddingRight:y.originalRight+"px"}):i.css({paddingRight:""}),y=null),h(!0)},n.closedDeferred),p(),t&&t.focus?t.focus():i.focus&&i.focus()}function h(e){var t;w.length()>0&&(t=w.top().value).modalDomEl.toggleClass(t.windowTopClass||"",e)}function p(){if(v&&-1===u()){var e=b;f(v,b,function(){e=null}),v=void 0,b=void 0}}function f(t,n,i,r){function a(){a.done||(a.done=!0,e.leave(t).then(function(){t.remove(),r&&r.resolve()}),n.$destroy(),i&&i())}var s,l=null,c=function(){return s||(s=o.defer(),l=s.promise),function(){s.resolve()}};return n.$broadcast(C.NOW_CLOSING_EVENT,c),o.when(l).then(a)}function m(e){if(e.isDefaultPrevented())return e;var t=w.top();if(t)switch(e.which){case 27:t.value.keyboard&&(e.preventDefault(),r.$apply(function(){C.dismiss(t.key,"escape key press")}));break;case 9:var n=C.loadFocusElementList(t),i=!1;e.shiftKey?(C.isFocusInFirstItem(e,n)||C.isModalFocused(e,t))&&(i=C.focusLastFocusableElement(n)):C.isFocusInLastItem(e,n)&&(i=C.focusFirstFocusableElement(n)),i&&(e.preventDefault(),e.stopPropagation())}}function g(e,t,n){return!e.value.modalScope.$broadcast("modal.closing",t,n).defaultPrevented}var v,b,y,_="modal-open",w=s.createNew(),A=a.createNew(),C={NOW_CLOSING_EVENT:"modal.stack.now-closing"},x=0,S=null;return r.$watch(u,function(e){b&&(b.index=e)}),n.on("keydown",m),r.$on("$destroy",function(){n.off("keydown",m)}),C.open=function(t,o){var a=n[0].activeElement,s=o.openedClass||_;h(!1),S=w.top(),w.add(t,{deferred:o.deferred,renderDeferred:o.renderDeferred,closedDeferred:o.closedDeferred,modalScope:o.scope,backdrop:o.backdrop,keyboard:o.keyboard,openedClass:o.openedClass,windowTopClass:o.windowTopClass,animation:o.animation,appendTo:o.appendTo}),A.put(s,t);var c=o.appendTo,d=u();if(!c.length)throw new Error("appendTo element not found. Make sure that the element passed is in DOM.");d>=0&&!v&&((b=r.$new(!0)).modalOptions=o,b.index=d,(v=angular.element('<div uib-modal-backdrop="modal-backdrop"></div>')).attr("backdrop-class",o.backdropClass),o.animation&&v.attr("modal-animation","true"),i(v)(b),e.enter(v,c),(y=l.scrollbarPadding(c)).heightOverflow&&y.scrollbarWidth&&c.css({paddingRight:y.right+"px"})),x=S?parseInt(S.value.modalDomEl.attr("index"),10)+1:0;var p=angular.element('<div uib-modal-window="modal-window"></div>');p.attr({"template-url":o.windowTemplateUrl,"window-class":o.windowClass,"window-top-class":o.windowTopClass,size:o.size,index:x,animate:"animate"}).html(o.content),o.animation&&p.attr("modal-animation","true"),c.addClass(s),e.enter(i(p)(o.scope),c),w.top().value.modalDomEl=p,w.top().value.modalOpener=a},C.close=function(e,t){var n=w.get(e);return n&&g(n,t,!0)?(n.value.modalScope.$$uibDestructionScheduled=!0,n.value.deferred.resolve(t),d(e,n.value.modalOpener),!0):!n},C.dismiss=function(e,t){var n=w.get(e);return n&&g(n,t,!1)?(n.value.modalScope.$$uibDestructionScheduled=!0,n.value.deferred.reject(t),d(e,n.value.modalOpener),!0):!n},C.dismissAll=function(e){for(var t=this.getTop();t&&this.dismiss(t.key,e);)t=this.getTop()},C.getTop=function(){return w.top()},C.modalRendered=function(e){var t=w.get(e);t&&t.value.renderDeferred.resolve()},C.focusFirstFocusableElement=function(e){return e.length>0&&(e[0].focus(),!0)},C.focusLastFocusableElement=function(e){return e.length>0&&(e[e.length-1].focus(),!0)},C.isModalFocused=function(e,t){if(e&&t){var n=t.value.modalDomEl;if(n&&n.length)return(e.target||e.srcElement)===n[0]}return!1},C.isFocusInFirstItem=function(e,t){return t.length>0&&(e.target||e.srcElement)===t[0]},C.isFocusInLastItem=function(e,t){return t.length>0&&(e.target||e.srcElement)===t[t.length-1]},C.loadFocusElementList=function(e){if(e){var t=e.value.modalDomEl;if(t&&t.length){var n=t[0].querySelectorAll("a[href], area[href], input:not([disabled]), button:not([disabled]),select:not([disabled]), textarea:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable=true]");return n?Array.prototype.filter.call(n,function(e){return c(e)}):n}}},C}]).provider("$uibModal",function(){var e={options:{animation:!0,backdrop:!0,keyboard:!0},$get:["$rootScope","$q","$document","$templateRequest","$controller","$uibResolve","$uibModalStack",function(t,n,i,r,o,a,s){function l(e){return e.template?n.when(e.template):r(angular.isFunction(e.templateUrl)?e.templateUrl():e.templateUrl)}var c={},u=null;return c.getPromiseChain=function(){return u},c.open=function(r){function c(){return v}var d=n.defer(),h=n.defer(),p=n.defer(),f=n.defer(),m={result:d.promise,opened:h.promise,closed:p.promise,rendered:f.promise,close:function(e){return s.close(m,e)},dismiss:function(e){return s.dismiss(m,e)}};if(r=angular.extend({},e.options,r),r.resolve=r.resolve||{},r.appendTo=r.appendTo||i.find("body").eq(0),!r.template&&!r.templateUrl)throw new Error("One of template or templateUrl options is required.");var g,v=n.all([l(r),a.resolve(r.resolve,{},null,null)]);return g=u=n.all([u]).then(c,c).then(function(e){var n=r.scope||t,i=n.$new();i.$close=m.close,i.$dismiss=m.dismiss,i.$on("$destroy",function(){i.$$uibDestructionScheduled||i.$dismiss("$uibUnscheduledDestruction")});var a,l,c={};r.controller&&(c.$scope=i,c.$scope.$resolve={},c.$uibModalInstance=m,angular.forEach(e[1],function(e,t){c[t]=e,c.$scope.$resolve[t]=e}),l=o(r.controller,c,!0,r.controllerAs),r.controllerAs&&r.bindToController&&((a=l.instance).$close=i.$close,a.$dismiss=i.$dismiss,angular.extend(a,{$resolve:c.$scope.$resolve},n)),a=l(),angular.isFunction(a.$onInit)&&a.$onInit()),s.open(m,{scope:i,deferred:d,renderDeferred:f,closedDeferred:p,content:e[0],animation:r.animation,backdrop:r.backdrop,keyboard:r.keyboard,backdropClass:r.backdropClass,windowTopClass:r.windowTopClass,windowClass:r.windowClass,windowTemplateUrl:r.windowTemplateUrl,size:r.size,openedClass:r.openedClass,appendTo:r.appendTo}),h.resolve(!0)},function(e){h.reject(e),d.reject(e)}).finally(function(){u===g&&(u=null)}),m},c}]};return e}),angular.module("ui.bootstrap.paging",[]).factory("uibPaging",["$parse",function(e){return{create:function(t,n,i){t.setNumPages=i.numPages?e(i.numPages).assign:angular.noop,t.ngModelCtrl={$setViewValue:angular.noop},t._watchers=[],t.init=function(e,r){t.ngModelCtrl=e,t.config=r,e.$render=function(){t.render()},i.itemsPerPage?t._watchers.push(n.$parent.$watch(i.itemsPerPage,function(e){t.itemsPerPage=parseInt(e,10),n.totalPages=t.calculateTotalPages(),t.updatePage()})):t.itemsPerPage=r.itemsPerPage,n.$watch("totalItems",function(e,i){(angular.isDefined(e)||e!==i)&&(n.totalPages=t.calculateTotalPages(),t.updatePage())})},t.calculateTotalPages=function(){var e=t.itemsPerPage<1?1:Math.ceil(n.totalItems/t.itemsPerPage);return Math.max(e||0,1)},t.render=function(){n.page=parseInt(t.ngModelCtrl.$viewValue,10)||1},n.selectPage=function(e,i){i&&i.preventDefault(),(!n.ngDisabled||!i)&&n.page!==e&&e>0&&e<=n.totalPages&&(i&&i.target&&i.target.blur(),t.ngModelCtrl.$setViewValue(e),t.ngModelCtrl.$render())},n.getText=function(e){return n[e+"Text"]||t.config[e+"Text"]},n.noPrevious=function(){return 1===n.page},n.noNext=function(){return n.page===n.totalPages},t.updatePage=function(){t.setNumPages(n.$parent,n.totalPages),n.page>n.totalPages?n.selectPage(n.totalPages):t.ngModelCtrl.$render()},n.$on("$destroy",function(){for(;t._watchers.length;)t._watchers.shift()()})}}}]),angular.module("ui.bootstrap.pager",["ui.bootstrap.paging"]).controller("UibPagerController",["$scope","$attrs","uibPaging","uibPagerConfig",function(e,t,n,i){e.align=angular.isDefined(t.align)?e.$parent.$eval(t.align):i.align,n.create(this,e,t)}]).constant("uibPagerConfig",{itemsPerPage:10,previousText:"« Previous",nextText:"Next »",align:!0}).directive("uibPager",["uibPagerConfig",function(e){return{scope:{totalItems:"=",previousText:"@",nextText:"@",ngDisabled:"="},require:["uibPager","?ngModel"],controller:"UibPagerController",controllerAs:"pager",templateUrl:function(e,t){return t.templateUrl||"uib/template/pager/pager.html"},replace:!0,link:function(t,n,i,r){var o=r[0],a=r[1];a&&o.init(a,e)}}}]),angular.module("ui.bootstrap.pagination",["ui.bootstrap.paging"]).controller("UibPaginationController",["$scope","$attrs","$parse","uibPaging","uibPaginationConfig",function(e,t,n,i,r){function o(e,t,n){return{number:e,text:t,active:n}}function a(e,t){var n=[],i=1,r=t,a=angular.isDefined(l)&&l<t;a&&(c?(r=(i=Math.max(e-Math.floor(l/2),1))+l-1)>t&&(i=(r=t)-l+1):(i=(Math.ceil(e/l)-1)*l+1,r=Math.min(i+l-1,t)));for(var s=i;s<=r;s++){var p=o(s,h(s),s===e);n.push(p)}if(a&&l>0&&(!c||u||d)){if(i>1){if(!d||i>3){var f=o(i-1,"...",!1);n.unshift(f)}if(d){if(3===i){var m=o(2,"2",!1);n.unshift(m)}var g=o(1,"1",!1);n.unshift(g)}}if(r<t){if(!d||r<t-2){var v=o(r+1,"...",!1);n.push(v)}if(d){if(r===t-2){var b=o(t-1,t-1,!1);n.push(b)}var y=o(t,t,!1);n.push(y)}}}return n}var s=this,l=angular.isDefined(t.maxSize)?e.$parent.$eval(t.maxSize):r.maxSize,c=angular.isDefined(t.rotate)?e.$parent.$eval(t.rotate):r.rotate,u=angular.isDefined(t.forceEllipses)?e.$parent.$eval(t.forceEllipses):r.forceEllipses,d=angular.isDefined(t.boundaryLinkNumbers)?e.$parent.$eval(t.boundaryLinkNumbers):r.boundaryLinkNumbers,h=angular.isDefined(t.pageLabel)?function(n){return e.$parent.$eval(t.pageLabel,{$page:n})}:angular.identity;e.boundaryLinks=angular.isDefined(t.boundaryLinks)?e.$parent.$eval(t.boundaryLinks):r.boundaryLinks,e.directionLinks=angular.isDefined(t.directionLinks)?e.$parent.$eval(t.directionLinks):r.directionLinks,i.create(this,e,t),t.maxSize&&s._watchers.push(e.$parent.$watch(n(t.maxSize),function(e){l=parseInt(e,10),s.render()}));var p=this.render;this.render=function(){p(),e.page>0&&e.page<=e.totalPages&&(e.pages=a(e.page,e.totalPages))}}]).constant("uibPaginationConfig",{itemsPerPage:10,boundaryLinks:!1,boundaryLinkNumbers:!1,directionLinks:!0,firstText:"First",previousText:"Previous",nextText:"Next",lastText:"Last",rotate:!0,forceEllipses:!1}).directive("uibPagination",["$parse","uibPaginationConfig",function(e,t){return{scope:{totalItems:"=",firstText:"@",previousText:"@",nextText:"@",lastText:"@",ngDisabled:"="},require:["uibPagination","?ngModel"],controller:"UibPaginationController",controllerAs:"pagination",templateUrl:function(e,t){return t.templateUrl||"uib/template/pagination/pagination.html"},replace:!0,link:function(e,n,i,r){var o=r[0],a=r[1];a&&o.init(a,t)}}}]),angular.module("ui.bootstrap.tooltip",["ui.bootstrap.position","ui.bootstrap.stackedMap"]).provider("$uibTooltip",function(){function e(e){var t=/[A-Z]/g;return e.replace(t,function(e,t){return(t?"-":"")+e.toLowerCase()})}var t={placement:"top",placementClassPrefix:"",animation:!0,popupDelay:0,popupCloseDelay:0,useContentExp:!1},n={mouseenter:"mouseleave",click:"click",outsideClick:"outsideClick",focus:"blur",none:""},i={};this.options=function(e){angular.extend(i,e)},this.setTriggers=function(e){angular.extend(n,e)},this.$get=["$window","$compile","$timeout","$document","$uibPosition","$interpolate","$rootScope","$parse","$$stackedMap",function(r,o,a,s,l,c,u,d,h){function p(e){if(27===e.which){var t=f.top();t&&(t.value.close(),f.removeTop(),t=null)}}var f=h.createNew();return s.on("keypress",p),u.$on("$destroy",function(){s.off("keypress",p)}),function(r,u,h,p){function m(e){var t=(e||p.trigger||h).split(" ");return{show:t,hide:t.map(function(e){return n[e]||e})}}p=angular.extend({},t,i,p);var g=e(r),v=c.startSymbol(),b=c.endSymbol(),y="<div "+g+'-popup uib-title="'+v+"title"+b+'" '+(p.useContentExp?'content-exp="contentExp()" ':'content="'+v+"content"+b+'" ')+'placement="'+v+"placement"+b+'" popup-class="'+v+"popupClass"+b+'" animation="animation" is-open="isOpen" origin-scope="origScope" class="uib-position-measure"></div>';return{compile:function(e,t){var n=o(y);return function(e,t,i,o){function c(){G.isOpen?g():h()}function h(){L&&!e.$eval(i[u+"Enable"])||(_(),C(),G.popupDelay?M||(M=a(v,G.popupDelay,!1)):v())}function g(){b(),G.popupCloseDelay?P||(P=a(y,G.popupCloseDelay,!1)):y()}function v(){if(b(),_(),!G.content)return angular.noop;w(),G.$evalAsync(function(){G.isOpen=!0,x(!0),j()})}function b(){M&&(a.cancel(M),M=null),$&&(a.cancel($),$=null)}function y(){G&&G.$evalAsync(function(){G&&(G.isOpen=!1,x(!1),G.animation?k||(k=a(A,150,!1)):A())})}function _(){P&&(a.cancel(P),P=null),k&&(a.cancel(k),k=null)}function w(){D||(I=G.$new(),D=n(I,function(e){O?s.find("body").append(e):t.after(e)}),S())}function A(){b(),_(),E(),D&&(D.remove(),D=null),I&&(I.$destroy(),I=null)}function C(){G.title=i[u+"Title"],G.content=H?H(e):i[r],G.popupClass=i[u+"Class"],G.placement=angular.isDefined(i[u+"Placement"])?i[u+"Placement"]:p.placement;var t=l.parsePlacement(G.placement);N=t[1]?t[0]+"-"+t[1]:t[0];var n=parseInt(i[u+"PopupDelay"],10),o=parseInt(i[u+"PopupCloseDelay"],10);G.popupDelay=isNaN(n)?p.popupDelay:n,G.popupCloseDelay=isNaN(o)?p.popupCloseDelay:o}function x(t){F&&angular.isFunction(F.assign)&&F.assign(e,t)}function S(){U.length=0,H?(U.push(e.$watch(H,function(e){G.content=e,!e&&G.isOpen&&y()})),U.push(I.$watch(function(){B||(B=!0,I.$$postDigest(function(){B=!1,G&&G.isOpen&&j()}))}))):U.push(i.$observe(r,function(e){G.content=e,!e&&G.isOpen?y():j()})),U.push(i.$observe(u+"Title",function(e){G.title=e,G.isOpen&&j()})),U.push(i.$observe(u+"Placement",function(e){G.placement=e||p.placement,G.isOpen&&j()}))}function E(){U.length&&(angular.forEach(U,function(e){e()}),U.length=0)}function T(e){G&&G.isOpen&&D&&(t[0].contains(e.target)||D[0].contains(e.target)||g())}var D,I,k,M,P,$,N,O=!!angular.isDefined(p.appendToBody)&&p.appendToBody,R=m(void 0),L=angular.isDefined(i[u+"Enable"]),G=e.$new(!0),B=!1,F=!!angular.isDefined(i[u+"IsOpen"])&&d(i[u+"IsOpen"]),H=!!p.useContentExp&&d(i[r]),U=[],j=function(){D&&D.html()&&($||($=a(function(){var e=l.positionElements(t,D,G.placement,O);D.css({top:e.top+"px",left:e.left+"px"}),D.hasClass(e.placement.split("-")[0])||(D.removeClass(N.split("-")[0]),D.addClass(e.placement.split("-")[0])),D.hasClass(p.placementClassPrefix+e.placement)||(D.removeClass(p.placementClassPrefix+N),D.addClass(p.placementClassPrefix+e.placement)),D.hasClass("uib-position-measure")?(l.positionArrow(D,e.placement),D.removeClass("uib-position-measure")):N!==e.placement&&l.positionArrow(D,e.placement),N=e.placement,$=null},0,!1)))};G.origScope=e,G.isOpen=!1,f.add(G,{close:y}),G.contentExp=function(){return G.content},i.$observe("disabled",function(e){e&&b(),e&&G.isOpen&&y()}),F&&e.$watch(F,function(e){G&&!e===G.isOpen&&c()});var W=function(){R.show.forEach(function(e){"outsideClick"===e?t.off("click",c):(t.off(e,h),t.off(e,c))}),R.hide.forEach(function(e){"outsideClick"===e?s.off("click",T):t.off(e,g)})};!function(){var e=i[u+"Trigger"];W(),"none"!==(R=m(e)).show&&R.show.forEach(function(e,n){"outsideClick"===e?(t.on("click",c),s.on("click",T)):e===R.hide[n]?t.on(e,c):e&&(t.on(e,h),t.on(R.hide[n],g)),t.on("keypress",function(e){27===e.which&&g()})})}();var z=e.$eval(i[u+"Animation"]);G.animation=angular.isDefined(z)?!!z:p.animation;var q,V=u+"AppendToBody";q=V in i&&void 0===i[V]||e.$eval(i[V]),O=angular.isDefined(q)?q:O,e.$on("$destroy",function(){W(),A(),f.remove(G),G=null})}}}}}]}).directive("uibTooltipTemplateTransclude",["$animate","$sce","$compile","$templateRequest",function(e,t,n,i){return{link:function(r,o,a){var s,l,c,u=r.$eval(a.tooltipTemplateTranscludeScope),d=0,h=function(){l&&(l.remove(),l=null),s&&(s.$destroy(),s=null),c&&(e.leave(c).then(function(){l=null}),l=c,c=null)};r.$watch(t.parseAsResourceUrl(a.uibTooltipTemplateTransclude),function(t){var a=++d;t?(i(t,!0).then(function(i){if(a===d){var r=u.$new(),l=n(i)(r,function(t){h(),e.enter(t,o)});c=l,(s=r).$emit("$includeContentLoaded",t)}},function(){a===d&&(h(),r.$emit("$includeContentError",t))}),r.$emit("$includeContentRequested",t)):h()}),r.$on("$destroy",h)}}}]).directive("uibTooltipClasses",["$uibPosition",function(e){return{restrict:"A",link:function(t,n,i){if(t.placement){var r=e.parsePlacement(t.placement);n.addClass(r[0])}t.popupClass&&n.addClass(t.popupClass),t.animation()&&n.addClass(i.tooltipAnimationClass)}}}]).directive("uibTooltipPopup",function(){return{replace:!0,scope:{content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-popup.html"}}).directive("uibTooltip",["$uibTooltip",function(e){return e("uibTooltip","tooltip","mouseenter")}]).directive("uibTooltipTemplatePopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/tooltip/tooltip-template-popup.html"}}).directive("uibTooltipTemplate",["$uibTooltip",function(e){return e("uibTooltipTemplate","tooltip","mouseenter",{useContentExp:!0})}]).directive("uibTooltipHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/tooltip/tooltip-html-popup.html"}}).directive("uibTooltipHtml",["$uibTooltip",function(e){return e("uibTooltipHtml","tooltip","mouseenter",{useContentExp:!0})}]),angular.module("ui.bootstrap.popover",["ui.bootstrap.tooltip"]).directive("uibPopoverTemplatePopup",function(){return{replace:!0,scope:{uibTitle:"@",contentExp:"&",placement:"@",popupClass:"@",animation:"&",isOpen:"&",originScope:"&"},templateUrl:"uib/template/popover/popover-template.html"}}).directive("uibPopoverTemplate",["$uibTooltip",function(e){return e("uibPopoverTemplate","popover","click",{useContentExp:!0})}]).directive("uibPopoverHtmlPopup",function(){return{replace:!0,scope:{contentExp:"&",uibTitle:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover-html.html"}}).directive("uibPopoverHtml",["$uibTooltip",function(e){return e("uibPopoverHtml","popover","click",{useContentExp:!0})}]).directive("uibPopoverPopup",function(){return{replace:!0,scope:{uibTitle:"@",content:"@",placement:"@",popupClass:"@",animation:"&",isOpen:"&"},templateUrl:"uib/template/popover/popover.html"}}).directive("uibPopover",["$uibTooltip",function(e){return e("uibPopover","popover","click")}]),angular.module("ui.bootstrap.progressbar",[]).constant("uibProgressConfig",{animate:!0,max:100}).controller("UibProgressController",["$scope","$attrs","uibProgressConfig",function(e,t,n){function i(){return angular.isDefined(e.maxParam)?e.maxParam:n.max}var r=this,o=angular.isDefined(t.animate)?e.$parent.$eval(t.animate):n.animate;this.bars=[],e.max=i(),this.addBar=function(e,t,n){o||t.css({transition:"none"}),this.bars.push(e),e.max=i(),e.title=n&&angular.isDefined(n.title)?n.title:"progressbar",e.$watch("value",function(t){e.recalculatePercentage()}),e.recalculatePercentage=function(){var t=r.bars.reduce(function(e,t){return t.percent=+(100*t.value/t.max).toFixed(2),e+t.percent},0);t>100&&(e.percent-=t-100)},e.$on("$destroy",function(){t=null,r.removeBar(e)})},this.removeBar=function(e){this.bars.splice(this.bars.indexOf(e),1),this.bars.forEach(function(e){e.recalculatePercentage()})},e.$watch("maxParam",function(e){r.bars.forEach(function(e){e.max=i(),e.recalculatePercentage()})})}]).directive("uibProgress",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",require:"uibProgress",scope:{maxParam:"=?max"},templateUrl:"uib/template/progressbar/progress.html"}}).directive("uibBar",function(){return{replace:!0,transclude:!0,require:"^uibProgress",scope:{value:"=",type:"@"},templateUrl:"uib/template/progressbar/bar.html",link:function(e,t,n,i){i.addBar(e,t,n)}}}).directive("uibProgressbar",function(){return{replace:!0,transclude:!0,controller:"UibProgressController",scope:{value:"=",maxParam:"=?max",type:"@"},templateUrl:"uib/template/progressbar/progressbar.html",link:function(e,t,n,i){i.addBar(e,angular.element(t.children()[0]),{title:n.title})}}}),angular.module("ui.bootstrap.rating",[]).constant("uibRatingConfig",{max:5,stateOn:null,stateOff:null,enableReset:!0,titles:["one","two","three","four","five"]}).controller("UibRatingController",["$scope","$attrs","uibRatingConfig",function(e,t,n){var i={$setViewValue:angular.noop},r=this;this.init=function(r){(i=r).$render=this.render,i.$formatters.push(function(e){return angular.isNumber(e)&&e<<0!==e&&(e=Math.round(e)),e}),this.stateOn=angular.isDefined(t.stateOn)?e.$parent.$eval(t.stateOn):n.stateOn,this.stateOff=angular.isDefined(t.stateOff)?e.$parent.$eval(t.stateOff):n.stateOff,this.enableReset=angular.isDefined(t.enableReset)?e.$parent.$eval(t.enableReset):n.enableReset;var o=angular.isDefined(t.titles)?e.$parent.$eval(t.titles):n.titles;this.titles=angular.isArray(o)&&o.length>0?o:n.titles;var a=angular.isDefined(t.ratingStates)?e.$parent.$eval(t.ratingStates):new Array(angular.isDefined(t.max)?e.$parent.$eval(t.max):n.max);e.range=this.buildTemplateObjects(a)},this.buildTemplateObjects=function(e){for(var t=0,n=e.length;t<n;t++)e[t]=angular.extend({index:t},{stateOn:this.stateOn,stateOff:this.stateOff,title:this.getTitle(t)},e[t]);return e},this.getTitle=function(e){return e>=this.titles.length?e+1:this.titles[e]},e.rate=function(t){if(!e.readonly&&t>=0&&t<=e.range.length){var n=r.enableReset&&i.$viewValue===t?0:t;i.$setViewValue(n),i.$render()}},e.enter=function(t){e.readonly||(e.value=t),e.onHover({value:t})},e.reset=function(){e.value=i.$viewValue,e.onLeave()},e.onKeydown=function(t){/(37|38|39|40)/.test(t.which)&&(t.preventDefault(),t.stopPropagation(),e.rate(e.value+(38===t.which||39===t.which?1:-1)))},this.render=function(){e.value=i.$viewValue,e.title=r.getTitle(e.value-1)}}]).directive("uibRating",function(){return{require:["uibRating","ngModel"],scope:{readonly:"=?readOnly",onHover:"&",onLeave:"&"},controller:"UibRatingController",templateUrl:"uib/template/rating/rating.html",replace:!0,link:function(e,t,n,i){var r=i[0],o=i[1];r.init(o)}}}),angular.module("ui.bootstrap.tabs",[]).controller("UibTabsetController",["$scope",function(e){function t(e){for(var t=0;t<i.tabs.length;t++)if(i.tabs[t].index===e)return t}var n,i=this;i.tabs=[],i.select=function(e,o){if(!r){var a=t(n),s=i.tabs[a];if(s){if(s.tab.onDeselect({$event:o,$selectedIndex:e}),o&&o.isDefaultPrevented())return;s.tab.active=!1}var l=i.tabs[e];l?(l.tab.onSelect({$event:o}),l.tab.active=!0,i.active=l.index,n=l.index):!l&&angular.isDefined(n)&&(i.active=null,n=null)}},i.addTab=function(e){if(i.tabs.push({tab:e,index:e.index}),i.tabs.sort(function(e,t){return e.index>t.index?1:e.index<t.index?-1:0}),e.index===i.active||!angular.isDefined(i.active)&&1===i.tabs.length){var n=t(e.index);i.select(n)}},i.removeTab=function(e){for(var t,n=0;n<i.tabs.length;n++)if(i.tabs[n].tab===e){t=n;break}if(i.tabs[t].index===i.active){var r=t===i.tabs.length-1?t-1:t+1%i.tabs.length;i.select(r)}i.tabs.splice(t,1)},e.$watch("tabset.active",function(e){angular.isDefined(e)&&e!==n&&i.select(t(e))});var r;e.$on("$destroy",function(){r=!0})}]).directive("uibTabset",function(){return{transclude:!0,replace:!0,scope:{},bindToController:{active:"=?",type:"@"},controller:"UibTabsetController",controllerAs:"tabset",templateUrl:function(e,t){return t.templateUrl||"uib/template/tabs/tabset.html"},link:function(e,t,n){e.vertical=!!angular.isDefined(n.vertical)&&e.$parent.$eval(n.vertical),e.justified=!!angular.isDefined(n.justified)&&e.$parent.$eval(n.justified)}}}).directive("uibTab",["$parse",function(e){return{require:"^uibTabset",replace:!0,templateUrl:function(e,t){return t.templateUrl||"uib/template/tabs/tab.html"},transclude:!0,scope:{heading:"@",index:"=?",classes:"@?",onSelect:"&select",onDeselect:"&deselect"},controller:function(){},controllerAs:"tab",link:function(t,n,i,r,o){t.disabled=!1,i.disable&&t.$parent.$watch(e(i.disable),function(e){t.disabled=!!e}),angular.isUndefined(i.index)&&(r.tabs&&r.tabs.length?t.index=Math.max.apply(null,r.tabs.map(function(e){return e.index}))+1:t.index=0),angular.isUndefined(i.classes)&&(t.classes=""),t.select=function(e){if(!t.disabled){for(var n,i=0;i<r.tabs.length;i++)if(r.tabs[i].tab===t){n=i;break}r.select(n,e)}},r.addTab(t),t.$on("$destroy",function(){r.removeTab(t)}),t.$transcludeFn=o}}}]).directive("uibTabHeadingTransclude",function(){return{restrict:"A",require:"^uibTab",link:function(e,t){e.$watch("headingElement",function(e){e&&(t.html(""),t.append(e))})}}}).directive("uibTabContentTransclude",function(){function e(e){return e.tagName&&(e.hasAttribute("uib-tab-heading")||e.hasAttribute("data-uib-tab-heading")||e.hasAttribute("x-uib-tab-heading")||"uib-tab-heading"===e.tagName.toLowerCase()||"data-uib-tab-heading"===e.tagName.toLowerCase()||"x-uib-tab-heading"===e.tagName.toLowerCase()||"uib:tab-heading"===e.tagName.toLowerCase())}return{restrict:"A",require:"^uibTabset",link:function(t,n,i){var r=t.$eval(i.uibTabContentTransclude).tab;r.$transcludeFn(r.$parent,function(t){angular.forEach(t,function(t){e(t)?r.headingElement=t:n.append(t)})})}}}),angular.module("ui.bootstrap.timepicker",[]).constant("uibTimepickerConfig",{hourStep:1,minuteStep:1,secondStep:1,showMeridian:!0,showSeconds:!1,meridians:null,readonlyInput:!1,mousewheel:!0,arrowkeys:!0,showSpinners:!0,templateUrl:"uib/template/timepicker/timepicker.html"}).controller("UibTimepickerController",["$scope","$element","$attrs","$parse","$log","$locale","uibTimepickerConfig",function(e,t,n,i,r,o,a){function s(){var t=+e.hours;if((e.showMeridian?t>0&&t<13:t>=0&&t<24)&&""!==e.hours)return e.showMeridian&&(12===t&&(t=0),e.meridian===w[1]&&(t+=12)),t}function l(){var t=+e.minutes;if(t>=0&&t<60&&""!==e.minutes)return t}function c(){var t=+e.seconds;return t>=0&&t<60?t:void 0}function u(e,t){return null===e?"":angular.isDefined(e)&&e.toString().length<2&&!t?"0"+e:e.toString()}function d(e){h(),_.$setViewValue(new Date(b)),p(e)}function h(){_.$setValidity("time",!0),e.invalidHours=!1,e.invalidMinutes=!1,e.invalidSeconds=!1}function p(t){if(_.$modelValue){var n=b.getHours(),i=b.getMinutes(),r=b.getSeconds();e.showMeridian&&(n=0===n||12===n?12:n%12),e.hours="h"===t?n:u(n,!A),"m"!==t&&(e.minutes=u(i)),e.meridian=b.getHours()<12?w[0]:w[1],"s"!==t&&(e.seconds=u(r)),e.meridian=b.getHours()<12?w[0]:w[1]}else e.hours=null,e.minutes=null,e.seconds=null,e.meridian=w[0]}function f(e){b=g(b,e),d()}function m(e,t){return g(e,60*t)}function g(e,t){var n=new Date(e.getTime()+1e3*t),i=new Date(e);return i.setHours(n.getHours(),n.getMinutes(),n.getSeconds()),i}function v(){return(null===e.hours||""===e.hours)&&(null===e.minutes||""===e.minutes)&&(!e.showSeconds||e.showSeconds&&(null===e.seconds||""===e.seconds))}var b=new Date,y=[],_={$setViewValue:angular.noop},w=angular.isDefined(n.meridians)?e.$parent.$eval(n.meridians):a.meridians||o.DATETIME_FORMATS.AMPMS,A=!angular.isDefined(n.padHours)||e.$parent.$eval(n.padHours);e.tabindex=angular.isDefined(n.tabindex)?n.tabindex:0,t.removeAttr("tabindex"),this.init=function(t,i){(_=t).$render=this.render,_.$formatters.unshift(function(e){return e?new Date(e):null});var r=i.eq(0),o=i.eq(1),s=i.eq(2);(angular.isDefined(n.mousewheel)?e.$parent.$eval(n.mousewheel):a.mousewheel)&&this.setupMousewheelEvents(r,o,s),(angular.isDefined(n.arrowkeys)?e.$parent.$eval(n.arrowkeys):a.arrowkeys)&&this.setupArrowkeyEvents(r,o,s),e.readonlyInput=angular.isDefined(n.readonlyInput)?e.$parent.$eval(n.readonlyInput):a.readonlyInput,this.setupInputEvents(r,o,s)};var C=a.hourStep;n.hourStep&&y.push(e.$parent.$watch(i(n.hourStep),function(e){C=+e}));var x=a.minuteStep;n.minuteStep&&y.push(e.$parent.$watch(i(n.minuteStep),function(e){x=+e}));var S;y.push(e.$parent.$watch(i(n.min),function(e){var t=new Date(e);S=isNaN(t)?void 0:t}));var E;y.push(e.$parent.$watch(i(n.max),function(e){var t=new Date(e);E=isNaN(t)?void 0:t}));var T=!1;n.ngDisabled&&y.push(e.$parent.$watch(i(n.ngDisabled),function(e){T=e})),e.noIncrementHours=function(){var e=m(b,60*C);return T||e>E||e<b&&e<S},e.noDecrementHours=function(){var e=m(b,60*-C);return T||e<S||e>b&&e>E},e.noIncrementMinutes=function(){var e=m(b,x);return T||e>E||e<b&&e<S},e.noDecrementMinutes=function(){var e=m(b,-x);return T||e<S||e>b&&e>E},e.noIncrementSeconds=function(){var e=g(b,D);return T||e>E||e<b&&e<S},e.noDecrementSeconds=function(){var e=g(b,-D);return T||e<S||e>b&&e>E},e.noToggleMeridian=function(){return b.getHours()<12?T||m(b,720)>E:T||m(b,-720)<S};var D=a.secondStep;n.secondStep&&y.push(e.$parent.$watch(i(n.secondStep),function(e){D=+e})),e.showSeconds=a.showSeconds,n.showSeconds&&y.push(e.$parent.$watch(i(n.showSeconds),function(t){e.showSeconds=!!t})),e.showMeridian=a.showMeridian,n.showMeridian&&y.push(e.$parent.$watch(i(n.showMeridian),function(t){if(e.showMeridian=!!t,_.$error.time){var n=s(),i=l();angular.isDefined(n)&&angular.isDefined(i)&&(b.setHours(n),d())}else p()})),this.setupMousewheelEvents=function(t,n,i){var r=function(e){e.originalEvent&&(e=e.originalEvent);var t=e.wheelDelta?e.wheelDelta:-e.deltaY;return e.detail||t>0};t.bind("mousewheel wheel",function(t){T||e.$apply(r(t)?e.incrementHours():e.decrementHours()),t.preventDefault()}),n.bind("mousewheel wheel",function(t){T||e.$apply(r(t)?e.incrementMinutes():e.decrementMinutes()),t.preventDefault()}),i.bind("mousewheel wheel",function(t){T||e.$apply(r(t)?e.incrementSeconds():e.decrementSeconds()),t.preventDefault()})},this.setupArrowkeyEvents=function(t,n,i){t.bind("keydown",function(t){T||(38===t.which?(t.preventDefault(),e.incrementHours(),e.$apply()):40===t.which&&(t.preventDefault(),e.decrementHours(),e.$apply()))}),n.bind("keydown",function(t){T||(38===t.which?(t.preventDefault(),e.incrementMinutes(),e.$apply()):40===t.which&&(t.preventDefault(),e.decrementMinutes(),e.$apply()))}),i.bind("keydown",function(t){T||(38===t.which?(t.preventDefault(),e.incrementSeconds(),e.$apply()):40===t.which&&(t.preventDefault(),e.decrementSeconds(),e.$apply()))})},this.setupInputEvents=function(t,n,i){if(e.readonlyInput)return e.updateHours=angular.noop,e.updateMinutes=angular.noop,void(e.updateSeconds=angular.noop);var r=function(t,n,i){_.$setViewValue(null),_.$setValidity("time",!1),angular.isDefined(t)&&(e.invalidHours=t),angular.isDefined(n)&&(e.invalidMinutes=n),angular.isDefined(i)&&(e.invalidSeconds=i)};e.updateHours=function(){var e=s(),t=l();_.$setDirty(),angular.isDefined(e)&&angular.isDefined(t)?(b.setHours(e),b.setMinutes(t),b<S||b>E?r(!0):d("h")):r(!0)},t.bind("blur",function(t){_.$setTouched(),v()?h():null===e.hours||""===e.hours?r(!0):!e.invalidHours&&e.hours<10&&e.$apply(function(){e.hours=u(e.hours,!A)})}),e.updateMinutes=function(){var e=l(),t=s();_.$setDirty(),angular.isDefined(e)&&angular.isDefined(t)?(b.setHours(t),b.setMinutes(e),b<S||b>E?r(void 0,!0):d("m")):r(void 0,!0)},n.bind("blur",function(t){_.$setTouched(),v()?h():null===e.minutes?r(void 0,!0):!e.invalidMinutes&&e.minutes<10&&e.$apply(function(){e.minutes=u(e.minutes)})}),e.updateSeconds=function(){var e=c();_.$setDirty(),angular.isDefined(e)?(b.setSeconds(e),d("s")):r(void 0,void 0,!0)},i.bind("blur",function(t){v()?h():!e.invalidSeconds&&e.seconds<10&&e.$apply(function(){e.seconds=u(e.seconds)})})},this.render=function(){var t=_.$viewValue;isNaN(t)?(_.$setValidity("time",!1),r.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.')):(t&&(b=t),b<S||b>E?(_.$setValidity("time",!1),e.invalidHours=!0,e.invalidMinutes=!0):h(),p())},e.showSpinners=angular.isDefined(n.showSpinners)?e.$parent.$eval(n.showSpinners):a.showSpinners,e.incrementHours=function(){e.noIncrementHours()||f(60*C*60)},e.decrementHours=function(){e.noDecrementHours()||f(60*-C*60)},e.incrementMinutes=function(){e.noIncrementMinutes()||f(60*x)},e.decrementMinutes=function(){e.noDecrementMinutes()||f(60*-x)},e.incrementSeconds=function(){e.noIncrementSeconds()||f(D)},e.decrementSeconds=function(){e.noDecrementSeconds()||f(-D)},e.toggleMeridian=function(){var t=l(),n=s();e.noToggleMeridian()||(angular.isDefined(t)&&angular.isDefined(n)?f(720*(b.getHours()<12?60:-60)):e.meridian=e.meridian===w[0]?w[1]:w[0])},e.blur=function(){_.$setTouched()},e.$on("$destroy",function(){for(;y.length;)y.shift()()})}]).directive("uibTimepicker",["uibTimepickerConfig",function(e){return{require:["uibTimepicker","?^ngModel"],controller:"UibTimepickerController",controllerAs:"timepicker",replace:!0,scope:{},templateUrl:function(t,n){return n.templateUrl||e.templateUrl},link:function(e,t,n,i){var r=i[0],o=i[1];o&&r.init(o,t.find("input"))}}}]),angular.module("ui.bootstrap.typeahead",["ui.bootstrap.debounce","ui.bootstrap.position"]).factory("uibTypeaheadParser",["$parse",function(e){var t=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(n){var i=n.match(t);if(!i)throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "'+n+'".');return{itemName:i[3],source:e(i[4]),viewMapper:e(i[2]||i[1]),modelMapper:e(i[1])}}}}]).controller("UibTypeaheadController",["$scope","$element","$attrs","$compile","$parse","$q","$timeout","$document","$window","$rootScope","$$debounce","$uibPosition","uibTypeaheadParser",function(e,t,n,i,r,o,a,s,l,c,u,d,h){function p(){B.moveInProgress||(B.moveInProgress=!0,B.$digest()),Q()}function f(){B.position=I?d.offset(t):d.position(t),B.position.top+=t.prop("offsetHeight")}var m,g,v=[9,13,27,38,40],b=e.$eval(n.typeaheadMinLength);b||0===b||(b=1),e.$watch(n.typeaheadMinLength,function(e){b=e||0===e?e:1});var y=e.$eval(n.typeaheadWaitMs)||0,_=!1!==e.$eval(n.typeaheadEditable);e.$watch(n.typeaheadEditable,function(e){_=!1!==e});var w,A,C=r(n.typeaheadLoading).assign||angular.noop,x=n.typeaheadShouldSelect?r(n.typeaheadShouldSelect):function(e,t){var n=t.$event;return 13===n.which||9===n.which},S=r(n.typeaheadOnSelect),E=!!angular.isDefined(n.typeaheadSelectOnBlur)&&e.$eval(n.typeaheadSelectOnBlur),T=r(n.typeaheadNoResults).assign||angular.noop,D=n.typeaheadInputFormatter?r(n.typeaheadInputFormatter):void 0,I=!!n.typeaheadAppendToBody&&e.$eval(n.typeaheadAppendToBody),k=n.typeaheadAppendTo?e.$eval(n.typeaheadAppendTo):null,M=!1!==e.$eval(n.typeaheadFocusFirst),P=!!n.typeaheadSelectOnExact&&e.$eval(n.typeaheadSelectOnExact),$=r(n.typeaheadIsOpen).assign||angular.noop,N=e.$eval(n.typeaheadShowHint)||!1,O=r(n.ngModel),R=r(n.ngModel+"($$$p)"),L=function(t,n){return angular.isFunction(O(e))&&g&&g.$options&&g.$options.getterSetter?R(t,{$$$p:n}):O.assign(t,n)},G=h.parse(n.uibTypeahead),B=e.$new(),F=e.$on("$destroy",function(){B.$destroy()});B.$on("$destroy",F);var H="typeahead-"+B.$id+"-"+Math.floor(1e4*Math.random());t.attr({"aria-autocomplete":"list","aria-expanded":!1,"aria-owns":H});var U,j;N&&((U=angular.element("<div></div>")).css("position","relative"),t.after(U),(j=t.clone()).attr("placeholder",""),j.attr("tabindex","-1"),j.val(""),j.css({position:"absolute",top:"0px",left:"0px","border-color":"transparent","box-shadow":"none",opacity:1,background:"none 0% 0% / auto repeat scroll padding-box border-box rgb(255, 255, 255)",color:"#999"}),t.css({position:"relative","vertical-align":"top","background-color":"transparent"}),U.append(j),j.after(t));var W=angular.element("<div uib-typeahead-popup></div>");W.attr({id:H,matches:"matches",active:"activeIdx",select:"select(activeIdx, evt)","move-in-progress":"moveInProgress",query:"query",position:"position","assign-is-open":"assignIsOpen(isOpen)",debounce:"debounceUpdate"}),angular.isDefined(n.typeaheadTemplateUrl)&&W.attr("template-url",n.typeaheadTemplateUrl),angular.isDefined(n.typeaheadPopupTemplateUrl)&&W.attr("popup-template-url",n.typeaheadPopupTemplateUrl);var z=function(){N&&j.val("")},q=function(){B.matches=[],B.activeIdx=-1,t.attr("aria-expanded",!1),z()},V=function(e){return H+"-option-"+e};B.$watch("activeIdx",function(e){e<0?t.removeAttr("aria-activedescendant"):t.attr("aria-activedescendant",V(e))});var Y=function(e,t){return!!(B.matches.length>t&&e)&&e.toUpperCase()===B.matches[t].label.toUpperCase()},K=function(n,i){var r={$viewValue:n};C(e,!0),T(e,!1),o.when(G.source(e,r)).then(function(o){var a=n===m.$viewValue;if(a&&w)if(o&&o.length>0){B.activeIdx=M?0:-1,T(e,!1),B.matches.length=0;for(var s=0;s<o.length;s++)r[G.itemName]=o[s],B.matches.push({id:V(s),label:G.viewMapper(B,r),model:o[s]});if(B.query=n,f(),t.attr("aria-expanded",!0),P&&1===B.matches.length&&Y(n,0)&&(angular.isNumber(B.debounceUpdate)||angular.isObject(B.debounceUpdate)?u(function(){B.select(0,i)},angular.isNumber(B.debounceUpdate)?B.debounceUpdate:B.debounceUpdate.default):B.select(0,i)),N){var l=B.matches[0].label;angular.isString(n)&&n.length>0&&l.slice(0,n.length).toUpperCase()===n.toUpperCase()?j.val(n+l.slice(n.length)):j.val("")}}else q(),T(e,!0);a&&C(e,!1)},function(){q(),C(e,!1),T(e,!0)})};I&&(angular.element(l).on("resize",p),s.find("body").on("scroll",p));var Q=u(function(){B.matches.length&&f(),B.moveInProgress=!1},200);B.moveInProgress=!1,B.query=void 0;var X,Z=function(e){X=a(function(){K(e)},y)},J=function(){X&&a.cancel(X)};q(),B.assignIsOpen=function(t){$(e,t)},B.select=function(i,r){var o,s,l={};A=!0,l[G.itemName]=s=B.matches[i].model,o=G.modelMapper(e,l),L(e,o),m.$setValidity("editable",!0),m.$setValidity("parse",!0),S(e,{$item:s,$model:o,$label:G.viewMapper(e,l),$event:r}),q(),!1!==B.$eval(n.typeaheadFocusOnSelect)&&a(function(){t[0].focus()},0,!1)},t.on("keydown",function(t){if(0!==B.matches.length&&-1!==v.indexOf(t.which)){var n=x(e,{$event:t});if(-1===B.activeIdx&&n||9===t.which&&t.shiftKey)return q(),void B.$digest();t.preventDefault();var i;switch(t.which){case 27:t.stopPropagation(),q(),e.$digest();break;case 38:B.activeIdx=(B.activeIdx>0?B.activeIdx:B.matches.length)-1,B.$digest(),(i=W.find("li")[B.activeIdx]).parentNode.scrollTop=i.offsetTop;break;case 40:B.activeIdx=(B.activeIdx+1)%B.matches.length,B.$digest(),(i=W.find("li")[B.activeIdx]).parentNode.scrollTop=i.offsetTop;break;default:n&&B.$apply(function(){angular.isNumber(B.debounceUpdate)||angular.isObject(B.debounceUpdate)?u(function(){B.select(B.activeIdx,t)},angular.isNumber(B.debounceUpdate)?B.debounceUpdate:B.debounceUpdate.default):B.select(B.activeIdx,t)})}}}),t.bind("focus",function(e){w=!0,0!==b||m.$viewValue||a(function(){K(m.$viewValue,e)},0)}),t.bind("blur",function(e){E&&B.matches.length&&-1!==B.activeIdx&&!A&&(A=!0,B.$apply(function(){angular.isObject(B.debounceUpdate)&&angular.isNumber(B.debounceUpdate.blur)?u(function(){B.select(B.activeIdx,e)},B.debounceUpdate.blur):B.select(B.activeIdx,e)})),!_&&m.$error.editable&&(m.$setViewValue(),m.$setValidity("editable",!0),m.$setValidity("parse",!0),t.val("")),w=!1,A=!1});var ee=function(n){t[0]!==n.target&&3!==n.which&&0!==B.matches.length&&(q(),c.$$phase||e.$digest())};s.on("click",ee),e.$on("$destroy",function(){s.off("click",ee),(I||k)&&te.remove(),I&&(angular.element(l).off("resize",p),s.find("body").off("scroll",p)),W.remove(),N&&U.remove()});var te=i(W)(B);I?s.find("body").append(te):k?angular.element(k).eq(0).append(te):t.after(te),this.init=function(t,n){m=t,g=n,B.debounceUpdate=m.$options&&r(m.$options.debounce)(e),m.$parsers.unshift(function(t){return w=!0,0===b||t&&t.length>=b?y>0?(J(),Z(t)):K(t):(C(e,!1),J(),q()),_?t:t?void m.$setValidity("editable",!1):(m.$setValidity("editable",!0),null)}),m.$formatters.push(function(t){var n,i,r={};return _||m.$setValidity("editable",!0),D?(r.$model=t,D(e,r)):(r[G.itemName]=t,n=G.viewMapper(e,r),r[G.itemName]=void 0,i=G.viewMapper(e,r),n!==i?n:t)})}}]).directive("uibTypeahead",function(){return{controller:"UibTypeaheadController",require:["ngModel","^?ngModelOptions","uibTypeahead"],link:function(e,t,n,i){i[2].init(i[0],i[1])}}}).directive("uibTypeaheadPopup",["$$debounce",function(e){return{scope:{matches:"=",query:"=",active:"=",position:"&",moveInProgress:"=",select:"&",assignIsOpen:"&",debounce:"&"},replace:!0,templateUrl:function(e,t){return t.popupTemplateUrl||"uib/template/typeahead/typeahead-popup.html"},link:function(t,n,i){t.templateUrl=i.templateUrl,t.isOpen=function(){var e=t.matches.length>0;return t.assignIsOpen({isOpen:e}),e},t.isActive=function(e){return t.active===e},t.selectActive=function(e){t.active=e},t.selectMatch=function(n,i){var r=t.debounce();angular.isNumber(r)||angular.isObject(r)?e(function(){t.select({activeIdx:n,evt:i})},angular.isNumber(r)?r:r.default):t.select({activeIdx:n,evt:i})}}}}]).directive("uibTypeaheadMatch",["$templateRequest","$compile","$parse",function(e,t,n){return{scope:{index:"=",match:"=",query:"="},link:function(i,r,o){var a=n(o.templateUrl)(i.$parent)||"uib/template/typeahead/typeahead-match.html";e(a).then(function(e){var n=angular.element(e.trim());r.replaceWith(n),t(n)(i)})}}}]).filter("uibTypeaheadHighlight",["$sce","$injector","$log",function(e,t,n){function i(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")}function r(e){return/<.*>/g.test(e)}var o;return o=t.has("$sanitize"),function(t,a){return!o&&r(t)&&n.warn("Unsafe use of typeahead please use ngSanitize"),t=a?(""+t).replace(new RegExp(i(a),"gi"),"<strong>$&</strong>"):t,o||(t=e.trustAsHtml(t)),t}}]),angular.module("uib/template/accordion/accordion-group.html",[]).run(["$templateCache",function(e){e.put("uib/template/accordion/accordion-group.html",'<div class="panel" ng-class="panelClass || \'panel-default\'">\n  <div role="tab" id="{{::headingId}}" aria-selected="{{isOpen}}" class="panel-heading" ng-keypress="toggleOpen($event)">\n    <h4 class="panel-title">\n      <a role="button" data-toggle="collapse" href aria-expanded="{{isOpen}}" aria-controls="{{::panelId}}" tabindex="0" class="accordion-toggle" ng-click="toggleOpen()" uib-accordion-transclude="heading"><span uib-accordion-header ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></a>\n    </h4>\n  </div>\n  <div id="{{::panelId}}" aria-labelledby="{{::headingId}}" aria-hidden="{{!isOpen}}" role="tabpanel" class="panel-collapse collapse" uib-collapse="!isOpen">\n    <div class="panel-body" ng-transclude></div>\n  </div>\n</div>\n')}]),angular.module("uib/template/accordion/accordion.html",[]).run(["$templateCache",function(e){e.put("uib/template/accordion/accordion.html",'<div role="tablist" class="panel-group" ng-transclude></div>')}]),angular.module("uib/template/alert/alert.html",[]).run(["$templateCache",function(e){e.put("uib/template/alert/alert.html",'<div class="alert" ng-class="[\'alert-\' + (type || \'warning\'), closeable ? \'alert-dismissible\' : null]" role="alert">\n    <button ng-show="closeable" type="button" class="close" ng-click="close({$event: $event})">\n        <span aria-hidden="true">&times;</span>\n        <span class="sr-only">Close</span>\n    </button>\n    <div ng-transclude></div>\n</div>\n')}]),angular.module("uib/template/carousel/carousel.html",[]).run(["$templateCache",function(e){e.put("uib/template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel" ng-swipe-right="prev()" ng-swipe-left="next()">\n  <div class="carousel-inner" ng-transclude></div>\n  <a role="button" href class="left carousel-control" ng-click="prev()" ng-class="{ disabled: isPrevDisabled() }" ng-show="slides.length > 1">\n    <span aria-hidden="true" class="glyphicon glyphicon-chevron-left"></span>\n    <span class="sr-only">previous</span>\n  </a>\n  <a role="button" href class="right carousel-control" ng-click="next()" ng-class="{ disabled: isNextDisabled() }" ng-show="slides.length > 1">\n    <span aria-hidden="true" class="glyphicon glyphicon-chevron-right"></span>\n    <span class="sr-only">next</span>\n  </a>\n  <ol class="carousel-indicators" ng-show="slides.length > 1">\n    <li ng-repeat="slide in slides | orderBy:indexOfSlide track by $index" ng-class="{ active: isActive(slide) }" ng-click="select(slide)">\n      <span class="sr-only">slide {{ $index + 1 }} of {{ slides.length }}<span ng-if="isActive(slide)">, currently active</span></span>\n    </li>\n  </ol>\n</div>\n')}]),angular.module("uib/template/carousel/slide.html",[]).run(["$templateCache",function(e){e.put("uib/template/carousel/slide.html",'<div ng-class="{\n    \'active\': active\n  }" class="item text-center" ng-transclude></div>\n')}]),angular.module("uib/template/datepicker/datepicker.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepicker/datepicker.html",'<div class="uib-datepicker" ng-switch="datepickerMode" role="application" ng-keydown="keydown($event)">\n  <uib-daypicker ng-switch-when="day" tabindex="0"></uib-daypicker>\n  <uib-monthpicker ng-switch-when="month" tabindex="0"></uib-monthpicker>\n  <uib-yearpicker ng-switch-when="year" tabindex="0"></uib-yearpicker>\n</div>\n')}]),angular.module("uib/template/datepicker/day.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepicker/day.html",'<table class="uib-daypicker" role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th colspan="{{::5 + showWeeks}}"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n    <tr>\n      <th ng-if="showWeeks" class="text-center"></th>\n      <th ng-repeat="label in ::labels track by $index" class="text-center"><small aria-label="{{::label.full}}">{{::label.abbr}}</small></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr class="uib-weeks" ng-repeat="row in rows track by $index">\n      <td ng-if="showWeeks" class="text-center h6"><em>{{ weekNumbers[$index] }}</em></td>\n      <td ng-repeat="dt in row" class="uib-day text-center" role="gridcell"\n        id="{{::dt.uid}}"\n        ng-class="::dt.customClass">\n        <button type="button" class="btn btn-default btn-sm"\n          uib-is-class="\n            \'btn-info\' for selectedDt,\n            \'active\' for activeDt\n            on dt"\n          ng-click="select(dt.date)"\n          ng-disabled="::dt.disabled"\n          tabindex="-1"><span ng-class="::{\'text-muted\': dt.secondary, \'text-info\': dt.current}">{{::dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("uib/template/datepicker/month.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepicker/month.html",'<table class="uib-monthpicker" role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr class="uib-months" ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row" class="uib-month text-center" role="gridcell"\n        id="{{::dt.uid}}"\n        ng-class="::dt.customClass">\n        <button type="button" class="btn btn-default"\n          uib-is-class="\n            \'btn-info\' for selectedDt,\n            \'active\' for activeDt\n            on dt"\n          ng-click="select(dt.date)"\n          ng-disabled="::dt.disabled"\n          tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("uib/template/datepicker/year.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepicker/year.html",'<table class="uib-yearpicker" role="grid" aria-labelledby="{{::uniqueId}}-title" aria-activedescendant="{{activeDateId}}">\n  <thead>\n    <tr>\n      <th><button type="button" class="btn btn-default btn-sm pull-left uib-left" ng-click="move(-1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-left"></i></button></th>\n      <th colspan="{{::columns - 2}}"><button id="{{::uniqueId}}-title" role="heading" aria-live="assertive" aria-atomic="true" type="button" class="btn btn-default btn-sm uib-title" ng-click="toggleMode()" ng-disabled="datepickerMode === maxMode" tabindex="-1"><strong>{{title}}</strong></button></th>\n      <th><button type="button" class="btn btn-default btn-sm pull-right uib-right" ng-click="move(1)" tabindex="-1"><i class="glyphicon glyphicon-chevron-right"></i></button></th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr class="uib-years" ng-repeat="row in rows track by $index">\n      <td ng-repeat="dt in row" class="uib-year text-center" role="gridcell"\n        id="{{::dt.uid}}"\n        ng-class="::dt.customClass">\n        <button type="button" class="btn btn-default"\n          uib-is-class="\n            \'btn-info\' for selectedDt,\n            \'active\' for activeDt\n            on dt"\n          ng-click="select(dt.date)"\n          ng-disabled="::dt.disabled"\n          tabindex="-1"><span ng-class="::{\'text-info\': dt.current}">{{::dt.label}}</span></button>\n      </td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("uib/template/datepickerPopup/popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/datepickerPopup/popup.html",'<div>\n  <ul class="uib-datepicker-popup dropdown-menu uib-position-measure" dropdown-nested ng-if="isOpen" ng-keydown="keydown($event)" ng-click="$event.stopPropagation()">\n    <li ng-transclude></li>\n    <li ng-if="showButtonBar" class="uib-button-bar">\n      <span class="btn-group pull-left">\n        <button type="button" class="btn btn-sm btn-info uib-datepicker-current" ng-click="select(\'today\', $event)" ng-disabled="isDisabled(\'today\')">{{ getText(\'current\') }}</button>\n        <button type="button" class="btn btn-sm btn-danger uib-clear" ng-click="select(null, $event)">{{ getText(\'clear\') }}</button>\n      </span>\n      <button type="button" class="btn btn-sm btn-success pull-right uib-close" ng-click="close($event)">{{ getText(\'close\') }}</button>\n    </li>\n  </ul>\n</div>\n')}]),angular.module("uib/template/modal/backdrop.html",[]).run(["$templateCache",function(e){e.put("uib/template/modal/backdrop.html",'<div class="modal-backdrop"\n     uib-modal-animation-class="fade"\n     modal-in-class="in"\n     ng-style="{\'z-index\': 1040 + (index && 1 || 0) + index*10}"\n></div>\n')}]),angular.module("uib/template/modal/window.html",[]).run(["$templateCache",function(e){e.put("uib/template/modal/window.html",'<div modal-render="{{$isRendered}}" tabindex="-1" role="dialog" class="modal"\n    uib-modal-animation-class="fade"\n    modal-in-class="in"\n    ng-style="{\'z-index\': 1050 + index*10, display: \'block\'}">\n    <div class="modal-dialog {{size ? \'modal-\' + size : \'\'}}"><div class="modal-content" uib-modal-transclude></div></div>\n</div>\n')}]),angular.module("uib/template/pager/pager.html",[]).run(["$templateCache",function(e){e.put("uib/template/pager/pager.html",'<ul class="pager">\n  <li ng-class="{disabled: noPrevious()||ngDisabled, previous: align}"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n  <li ng-class="{disabled: noNext()||ngDisabled, next: align}"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n</ul>\n')}]),angular.module("uib/template/pagination/pagination.html",[]).run(["$templateCache",function(e){e.put("uib/template/pagination/pagination.html",'<ul class="pagination">\n  <li ng-if="::boundaryLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-first"><a href ng-click="selectPage(1, $event)">{{::getText(\'first\')}}</a></li>\n  <li ng-if="::directionLinks" ng-class="{disabled: noPrevious()||ngDisabled}" class="pagination-prev"><a href ng-click="selectPage(page - 1, $event)">{{::getText(\'previous\')}}</a></li>\n  <li ng-repeat="page in pages track by $index" ng-class="{active: page.active,disabled: ngDisabled&&!page.active}" class="pagination-page"><a href ng-click="selectPage(page.number, $event)">{{page.text}}</a></li>\n  <li ng-if="::directionLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-next"><a href ng-click="selectPage(page + 1, $event)">{{::getText(\'next\')}}</a></li>\n  <li ng-if="::boundaryLinks" ng-class="{disabled: noNext()||ngDisabled}" class="pagination-last"><a href ng-click="selectPage(totalPages, $event)">{{::getText(\'last\')}}</a></li>\n</ul>\n')}]),angular.module("uib/template/tooltip/tooltip-html-popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/tooltip/tooltip-html-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" ng-bind-html="contentExp()"></div>\n</div>\n')}]),angular.module("uib/template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/tooltip/tooltip-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner" ng-bind="content"></div>\n</div>\n')}]),angular.module("uib/template/tooltip/tooltip-template-popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/tooltip/tooltip-template-popup.html",'<div class="tooltip"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="tooltip-arrow"></div>\n  <div class="tooltip-inner"\n    uib-tooltip-template-transclude="contentExp()"\n    tooltip-template-transclude-scope="originScope()"></div>\n</div>\n')}]),angular.module("uib/template/popover/popover-html.html",[]).run(["$templateCache",function(e){e.put("uib/template/popover/popover-html.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="uibTitle" ng-if="uibTitle"></h3>\n      <div class="popover-content" ng-bind-html="contentExp()"></div>\n  </div>\n</div>\n')}]),angular.module("uib/template/popover/popover-template.html",[]).run(["$templateCache",function(e){e.put("uib/template/popover/popover-template.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="uibTitle" ng-if="uibTitle"></h3>\n      <div class="popover-content"\n        uib-tooltip-template-transclude="contentExp()"\n        tooltip-template-transclude-scope="originScope()"></div>\n  </div>\n</div>\n')}]),angular.module("uib/template/popover/popover.html",[]).run(["$templateCache",function(e){e.put("uib/template/popover/popover.html",'<div class="popover"\n  tooltip-animation-class="fade"\n  uib-tooltip-classes\n  ng-class="{ in: isOpen() }">\n  <div class="arrow"></div>\n\n  <div class="popover-inner">\n      <h3 class="popover-title" ng-bind="uibTitle" ng-if="uibTitle"></h3>\n      <div class="popover-content" ng-bind="content"></div>\n  </div>\n</div>\n')}]),angular.module("uib/template/progressbar/bar.html",[]).run(["$templateCache",function(e){e.put("uib/template/progressbar/bar.html",'<div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" aria-labelledby="{{::title}}" ng-transclude></div>\n')}]),angular.module("uib/template/progressbar/progress.html",[]).run(["$templateCache",function(e){e.put("uib/template/progressbar/progress.html",'<div class="progress" ng-transclude aria-labelledby="{{::title}}"></div>')}]),angular.module("uib/template/progressbar/progressbar.html",[]).run(["$templateCache",function(e){e.put("uib/template/progressbar/progressbar.html",'<div class="progress">\n  <div class="progress-bar" ng-class="type && \'progress-bar-\' + type" role="progressbar" aria-valuenow="{{value}}" aria-valuemin="0" aria-valuemax="{{max}}" ng-style="{width: (percent < 100 ? percent : 100) + \'%\'}" aria-valuetext="{{percent | number:0}}%" aria-labelledby="{{::title}}" ng-transclude></div>\n</div>\n')}]),angular.module("uib/template/rating/rating.html",[]).run(["$templateCache",function(e){e.put("uib/template/rating/rating.html",'<span ng-mouseleave="reset()" ng-keydown="onKeydown($event)" tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="{{range.length}}" aria-valuenow="{{value}}" aria-valuetext="{{title}}">\n    <span ng-repeat-start="r in range track by $index" class="sr-only">({{ $index < value ? \'*\' : \' \' }})</span>\n    <i ng-repeat-end ng-mouseenter="enter($index + 1)" ng-click="rate($index + 1)" class="glyphicon" ng-class="$index < value && (r.stateOn || \'glyphicon-star\') || (r.stateOff || \'glyphicon-star-empty\')" ng-attr-title="{{r.title}}"></i>\n</span>\n')}]),angular.module("uib/template/tabs/tab.html",[]).run(["$templateCache",function(e){e.put("uib/template/tabs/tab.html",'<li ng-class="[{active: active, disabled: disabled}, classes]" class="uib-tab nav-item">\n  <a href ng-click="select($event)" class="nav-link" uib-tab-heading-transclude>{{heading}}</a>\n</li>\n')}]),angular.module("uib/template/tabs/tabset.html",[]).run(["$templateCache",function(e){e.put("uib/template/tabs/tabset.html",'<div>\n  <ul class="nav nav-{{tabset.type || \'tabs\'}}" ng-class="{\'nav-stacked\': vertical, \'nav-justified\': justified}" ng-transclude></ul>\n  <div class="tab-content">\n    <div class="tab-pane"\n         ng-repeat="tab in tabset.tabs"\n         ng-class="{active: tabset.active === tab.index}"\n         uib-tab-content-transclude="tab">\n    </div>\n  </div>\n</div>\n')}]),angular.module("uib/template/timepicker/timepicker.html",[]).run(["$templateCache",function(e){e.put("uib/template/timepicker/timepicker.html",'<table class="uib-timepicker">\n  <tbody>\n    <tr class="text-center" ng-show="::showSpinners">\n      <td class="uib-increment hours"><a ng-click="incrementHours()" ng-class="{disabled: noIncrementHours()}" class="btn btn-link" ng-disabled="noIncrementHours()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n      <td>&nbsp;</td>\n      <td class="uib-increment minutes"><a ng-click="incrementMinutes()" ng-class="{disabled: noIncrementMinutes()}" class="btn btn-link" ng-disabled="noIncrementMinutes()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n      <td ng-show="showSeconds">&nbsp;</td>\n      <td ng-show="showSeconds" class="uib-increment seconds"><a ng-click="incrementSeconds()" ng-class="{disabled: noIncrementSeconds()}" class="btn btn-link" ng-disabled="noIncrementSeconds()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-up"></span></a></td>\n      <td ng-show="showMeridian"></td>\n    </tr>\n    <tr>\n      <td class="form-group uib-time hours" ng-class="{\'has-error\': invalidHours}">\n        <input type="text" placeholder="HH" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementHours()" ng-blur="blur()">\n      </td>\n      <td class="uib-separator">:</td>\n      <td class="form-group uib-time minutes" ng-class="{\'has-error\': invalidMinutes}">\n        <input type="text" placeholder="MM" ng-model="minutes" ng-change="updateMinutes()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementMinutes()" ng-blur="blur()">\n      </td>\n      <td ng-show="showSeconds" class="uib-separator">:</td>\n      <td class="form-group uib-time seconds" ng-class="{\'has-error\': invalidSeconds}" ng-show="showSeconds">\n        <input type="text" placeholder="SS" ng-model="seconds" ng-change="updateSeconds()" class="form-control text-center" ng-readonly="readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementSeconds()" ng-blur="blur()">\n      </td>\n      <td ng-show="showMeridian" class="uib-time am-pm"><button type="button" ng-class="{disabled: noToggleMeridian()}" class="btn btn-default text-center" ng-click="toggleMeridian()" ng-disabled="noToggleMeridian()" tabindex="{{::tabindex}}">{{meridian}}</button></td>\n    </tr>\n    <tr class="text-center" ng-show="::showSpinners">\n      <td class="uib-decrement hours"><a ng-click="decrementHours()" ng-class="{disabled: noDecrementHours()}" class="btn btn-link" ng-disabled="noDecrementHours()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n      <td>&nbsp;</td>\n      <td class="uib-decrement minutes"><a ng-click="decrementMinutes()" ng-class="{disabled: noDecrementMinutes()}" class="btn btn-link" ng-disabled="noDecrementMinutes()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n      <td ng-show="showSeconds">&nbsp;</td>\n      <td ng-show="showSeconds" class="uib-decrement seconds"><a ng-click="decrementSeconds()" ng-class="{disabled: noDecrementSeconds()}" class="btn btn-link" ng-disabled="noDecrementSeconds()" tabindex="{{::tabindex}}"><span class="glyphicon glyphicon-chevron-down"></span></a></td>\n      <td ng-show="showMeridian"></td>\n    </tr>\n  </tbody>\n</table>\n')}]),angular.module("uib/template/typeahead/typeahead-match.html",[]).run(["$templateCache",function(e){e.put("uib/template/typeahead/typeahead-match.html",'<a href\n   tabindex="-1"\n   ng-bind-html="match.label | uibTypeaheadHighlight:query"\n   ng-attr-title="{{match.label}}"></a>\n')}]),angular.module("uib/template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function(e){e.put("uib/template/typeahead/typeahead-popup.html",'<ul class="dropdown-menu" ng-show="isOpen() && !moveInProgress" ng-style="{top: position().top+\'px\', left: position().left+\'px\'}" role="listbox" aria-hidden="{{!isOpen()}}">\n    <li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index, $event)" role="option" id="{{::match.id}}">\n        <div uib-typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>\n    </li>\n</ul>\n')}]),angular.module("ui.bootstrap.carousel").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibCarouselCss&&angular.element(document).find("head").prepend('<style type="text/css">.ng-animate.item:not(.left):not(.right){-webkit-transition:0s ease-in-out left;transition:0s ease-in-out left}</style>'),angular.$$uibCarouselCss=!0}),angular.module("ui.bootstrap.datepicker").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibDatepickerCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-datepicker .uib-title{width:100%;}.uib-day button,.uib-month button,.uib-year button{min-width:100%;}.uib-left,.uib-right{width:100%}</style>'),angular.$$uibDatepickerCss=!0}),angular.module("ui.bootstrap.position").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibPositionCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-position-measure{display:block !important;visibility:hidden !important;position:absolute !important;top:-9999px !important;left:-9999px !important;}.uib-position-scrollbar-measure{position:absolute !important;top:-9999px !important;width:50px !important;height:50px !important;overflow:scroll !important;}.uib-position-body-scrollbar-measure{overflow:scroll !important;}</style>'),angular.$$uibPositionCss=!0}),angular.module("ui.bootstrap.datepickerPopup").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibDatepickerpopupCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-datepicker-popup.dropdown-menu{display:block;float:none;margin:0;}.uib-button-bar{padding:10px 9px 2px;}</style>'),angular.$$uibDatepickerpopupCss=!0}),angular.module("ui.bootstrap.tooltip").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibTooltipCss&&angular.element(document).find("head").prepend('<style type="text/css">[uib-tooltip-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-bottom > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.right-bottom > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.right-bottom > .tooltip-arrow,[uib-popover-popup].popover.top-left > .arrow,[uib-popover-popup].popover.top-right > .arrow,[uib-popover-popup].popover.bottom-left > .arrow,[uib-popover-popup].popover.bottom-right > .arrow,[uib-popover-popup].popover.left-top > .arrow,[uib-popover-popup].popover.left-bottom > .arrow,[uib-popover-popup].popover.right-top > .arrow,[uib-popover-popup].popover.right-bottom > .arrow,[uib-popover-html-popup].popover.top-left > .arrow,[uib-popover-html-popup].popover.top-right > .arrow,[uib-popover-html-popup].popover.bottom-left > .arrow,[uib-popover-html-popup].popover.bottom-right > .arrow,[uib-popover-html-popup].popover.left-top > .arrow,[uib-popover-html-popup].popover.left-bottom > .arrow,[uib-popover-html-popup].popover.right-top > .arrow,[uib-popover-html-popup].popover.right-bottom > .arrow,[uib-popover-template-popup].popover.top-left > .arrow,[uib-popover-template-popup].popover.top-right > .arrow,[uib-popover-template-popup].popover.bottom-left > .arrow,[uib-popover-template-popup].popover.bottom-right > .arrow,[uib-popover-template-popup].popover.left-top > .arrow,[uib-popover-template-popup].popover.left-bottom > .arrow,[uib-popover-template-popup].popover.right-top > .arrow,[uib-popover-template-popup].popover.right-bottom > .arrow{top:auto;bottom:auto;left:auto;right:auto;margin:0;}[uib-popover-popup].popover,[uib-popover-html-popup].popover,[uib-popover-template-popup].popover{display:block !important;}</style>'),angular.$$uibTooltipCss=!0}),angular.module("ui.bootstrap.timepicker").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibTimepickerCss&&angular.element(document).find("head").prepend('<style type="text/css">.uib-time input{width:50px;}</style>'),angular.$$uibTimepickerCss=!0}),angular.module("ui.bootstrap.typeahead").run(function(){!angular.$$csp().noInlineStyle&&!angular.$$uibTypeaheadCss&&angular.element(document).find("head").prepend('<style type="text/css">[uib-typeahead-popup].dropdown-menu{display:block;}</style>'),angular.$$uibTypeaheadCss=!0}),angular.module("mwFormUtils",["mwFormUtils.responseUtils"]),angular.module("mwFormUtils.responseUtils",[]).factory("mwFormResponseUtils",function(){var e={},t=["text","textarea","number","date","time","email","range","url"];return e.$getObjectByIdMap=function(e,t){var n={};return e?(e.forEach(function(e){var i=e;t&&(i=t(e)),n[e.id]=i}),n):n},e.$getOfferedAnswerByIdMap=function(t){return e.$getObjectByIdMap(t.offeredAnswers,function(e){return{id:e.id,value:e.value}})},e.$extractResponseForQuestionWithOfferedAnswers=function(t,n){var i=e.$getOfferedAnswerByIdMap(t),r={};return n.selectedAnswers?(r.selectedAnswers=[],n.selectedAnswers.forEach(function(e){r.selectedAnswers.push(i[e])})):n.selectedAnswer&&(r.selectedAnswer=i[n.selectedAnswer]),n.other&&(r.other=n.other),r},e.$extractResponseForPriorityQuestion=function(t,n){var i=[];if(!n.priorityList)return i;var r=e.$getObjectByIdMap(t.priorityList);return n.priorityList.forEach(function(e){var t=r[e.id];i.push({id:t.id,value:t.value,priority:e.priority})}),i},e.$extractResponseForDivisionQuestion=function(t,n){var i=[],r=e.$getObjectByIdMap(t.divisionList);return Object.getOwnPropertyNames(n).forEach(function(e){var t=n[e],o=r[e];o&&i.push({id:o.id,label:o.value,value:t})}),i},e.$extractResponseForGridQuestion=function(t,n){if(!t.grid||!t.grid.rows)return i;if("radio"==t.grid.cellInputType)return e.$extractResponseForRadioGridQuestion(t,n);var i=[];return t.grid.rows.forEach(function(e){t.grid.cols.forEach(function(t){var r={row:{id:e.id,label:e.label},col:{id:t.id,label:t.label},value:null};n.hasOwnProperty(e.id)&&n[e.id].hasOwnProperty(t.id)&&(r.value=n[e.id][t.id]),i.push(r)})}),i},e.$extractResponseForRadioGridQuestion=function(t,n){var i=[],r=e.$getObjectByIdMap(t.grid.cols);return t.grid.rows.forEach(function(e){var t=n[e.id],o=null;t&&(o=r[t]);var a={row:{id:e.id,label:e.label},col:null};o&&(a.col={id:o.id,label:o.label}),i.push(a)}),i},e.extractResponse=function(n,i){return-1!==t.indexOf(n.type)?i.answer:"radio"==n.type||"checkbox"==n.type||"select"==n.type?e.$extractResponseForQuestionWithOfferedAnswers(n,i):"grid"==n.type?e.$extractResponseForGridQuestion(n,i):"priority"==n.type?e.$extractResponseForPriorityQuestion(n,i):"division"==n.type?e.$extractResponseForDivisionQuestion(n,i):null},e.mergeFormWithResponse=function(t,n){var i={};return angular.copy(t,i),i.pages.forEach(function(t){t.elements.forEach(function(t){var i=t.question;if(i){var r=n[i.id];r&&(i.response=e.extractResponse(i,r))}})}),i},e.getQuestionList=function(e,t){var n=[];return e.pages.forEach(function(e){e.elements.forEach(function(e){if(e.question){var i=e.question;t&&(i={},angular.copy(e.question,i)),n.push(i)}})}),n},e.getQuestionWithResponseList=function(t,n){var i=[];return e.getQuestionList(t,!0).forEach(function(t){var r=n[t.id];t.response=r?e.extractResponse(t,r):null,i.push(t)}),i},e.$$getHeader=function(e,t,n,i,r){var o="";return r&&((e||0===e)&&(o+=e+"."),null!==n&&void 0!==n&&(Array.isArray(n)||(n=[n]),n.forEach(function(e){o+=e+"."})),o.length&&(o+=" ")),o+=t,null===i||void 0===i?o:(Array.isArray(i)||(i=[i]),i.forEach(function(e){o+=" ["+e+"]"}),o)},e.getResponseSheetHeaders=function(t,n){var i=["grid","priority","division"],r=[],o=0;return e.getQuestionList(t).forEach(function(t){o++;var a=1;if(-1===i.indexOf(t.type))r.push(e.$$getHeader(o,t.text,null,null,n));else if("grid"==t.type){if(!t.grid)return;"radio"==t.grid.cellInputType?t.grid.rows.forEach(function(i){r.push(e.$$getHeader(o,t.text,a,i.label,n)),a++}):t.grid.rows.forEach(function(i,s){t.grid.cols.forEach(function(l,c){r.push(e.$$getHeader(o,t.text,[s+1,c+1],[i.label,l.label],n)),a++})})}else if("priority"==t.type){if(!t.priorityList)return;t.priorityList.forEach(function(i){r.push(e.$$getHeader(o,t.text,a,i.value,n)),a++})}else if("division"==t.type){if(!t.divisionList)return;t.divisionList.forEach(function(i){r.push(e.$$getHeader(o,t.text,a,i.value,n)),a++})}}),r},e.getResponseSheetRow=function(t,n){var i="; ",r=[];if(!n)return r;for(var o=e.getQuestionWithResponseList(t,n),a=["radio","checkbox","select","grid","priority","division"],s=0;s<o.length;s++){var l=o[s],c=l.response;if(-1!==a.indexOf(l.type)){if("radio"==l.type||"select"==l.type){if(!c){r.push("");continue}u="";c.selectedAnswer&&(u=c.selectedAnswer.value),c.other&&(u&&(u+=i),u+=c.other),r.push(u)}else if("checkbox"==l.type){if(!c||!c.selectedAnswers){r.push("");continue}var u="";c.selectedAnswers.forEach(function(e){u&&(u+=i),u+=e.value}),c.other&&(u&&(u+=i),u+=c.other),r.push(u)}else if("grid"==l.type){if(!l.grid)continue;if(!c){"radio"==l.grid.cellInputType?l.grid.rows.forEach(function(){r.push("")}):l.grid.rows.forEach(function(){l.grid.cols.forEach(function(){r.push("")})});continue}"radio"==l.grid.cellInputType?c.forEach(function(e){r.push(e.col?e.col.label:"")}):c.forEach(function(e){r.push(e.value)})}else if("priority"==l.type){if(!l.priorityList)continue;var d=e.$getObjectByIdMap(c);l.priorityList.forEach(function(e){var t=d[e.id];t?r.push(t.priority):r.push("")})}else if("division"==l.type){if(!l.divisionList)continue;var h=e.$getObjectByIdMap(c);l.divisionList.forEach(function(e){var t=h[e.id];t?r.push(t.value):r.push("")})}}else r.push(c||"")}return r},e.getResponseSheetRows=function(t,n){return n.map(function(n){return e.getResponseSheetRow(t,n)})},e.getResponseSheet=function(t,n,i){var r=[],o=e.getResponseSheetHeaders(t,i);return r.push(o),n?(n instanceof Array?n.forEach(function(n){r.push(e.getResponseSheetRow(t,n))}):r.push(e.getResponseSheetRow(t,n)),r):r},e}),angular.module("mwFormBuilder",["ngSanitize","ng-sortable","pascalprecht.translate"]),angular.module("mwFormBuilder").service("mwFormUuid",function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}this.get=function(){return e()+e()+e()+e()+e()+e()+e()+e()}}).factory("mwFormClone",["mwFormUuid",function(e){var t={},n=[];return t.resetIds=function(i,r){if(r&&(n=[]),!(n.indexOf(i)>=0)&&(n.push(i),!i!==Object(i))){if(Array.isArray(i))return void i.forEach(t.resetIds);for(var o in i)i.hasOwnProperty(o)&&t.resetIds(i[o]);if(i.hasOwnProperty("id")){var a=e.get();i.id,i.id=a}}},t.cloneElement=function(e){var n={};return angular.copy(e,n),t.resetIds(n,!0),n},t.clonePage=function(n){var i={};angular.copy(n,i),i.id=e.get();var r=[];if(Array.isArray(n.elements))for(var o=0;o<n.elements.length;o++)r.push(t.cloneElement(n.elements[o]));return i.elements=r,i},t.cloneForm=function(e){var n={};angular.copy(e,n);var i=[];if(Array.isArray(e.pages))for(var r=0;r<e.pages.length;r++)i.push(t.clonePage(e.pages[r]));return n.pages=i,n},t}]),angular.module("mwFormBuilder").directive("mwQuestionPriorityListBuilder",function(){return{replace:!0,restrict:"AE",require:"^mwFormQuestionBuilder",scope:{question:"=",readOnly:"=?",options:"=?"},templateUrl:"mw-question-priority-list-builder.html",controllerAs:"ctrl",bindToController:!0,controller:["mwFormUuid",function(e){function t(e){if(e)for(var t=0;t<e.length;t++)e[t].orderNo=t+1}function n(e){e.sort(function(e,t){return e.orderNo-t.orderNo})}var i=this;i.isNewItem={},this.$onInit=function(){i.question.priorityList||(i.question.priorityList=[],i.addNewItem()),n(i.question.priorityList),i.itemsSortableConfig={disabled:i.readOnly,ghostClass:"beingDragged",handle:".drag-handle",onEnd:function(e,n){t(i.question.priorityList)}}},i.addNewItem=function(t){var n={id:e.get(),orderNo:i.question.priorityList.length+1,value:null};t||(i.isNewItem[n.id]=!0),i.question.priorityList.push(n)},i.removeItem=function(e){var t=i.question.priorityList.indexOf(e);-1!=t&&i.question.priorityList.splice(t,1)},i.keyPressedOnInput=function(e,t){delete i.isNewItem[t.id],13===e.which&&(e.preventDefault(),i.addNewItem())},1===angular.version.major&&angular.version.minor<5&&this.$onInit()}],link:function(e,t,n,i){e.ctrl}}}),angular.module("mwFormBuilder").directive("mwQuestionOfferedAnswerListBuilder",function(){return{replace:!0,restrict:"AE",require:"^mwFormQuestionBuilder",scope:{question:"=",formObject:"=",readOnly:"=?",options:"=?",disableOtherAnswer:"=?"},templateUrl:"mw-question-offered-answer-list-builder.html",controllerAs:"ctrl",bindToController:!0,controller:["FormQuestionBuilderId","mwFormUuid",function(e,t){function n(){if(r.question.offeredAnswers)for(var e=0;e<r.question.offeredAnswers.length;e++)r.question.offeredAnswers[e].orderNo=e+1}function i(){r.question.offeredAnswers&&r.question.offeredAnswers.sort(function(e,t){return e.orderNo-t.orderNo})}var r=this;this.$onInit=function(){r.config={radio:{},checkbox:{}},r.isNewAnswer={},i(),r.offeredAnswersSortableConfig={disabled:r.readOnly,ghostClass:"beingDragged",handle:".drag-handle",onEnd:function(e,t){n()}}},r.addNewOfferedAnswer=function(){var e=r.possiblePageFlow[0],n={id:t.get(),orderNo:r.question.offeredAnswers.length+1,value:null,pageFlow:e};r.isNewAnswer[n.id]=!0,r.question.offeredAnswers.push(n)},r.removeOfferedAnswer=function(e){var t=r.question.offeredAnswers.indexOf(e);-1!=t&&r.question.offeredAnswers.splice(t,1)},r.addCustomAnswer=function(){r.question.otherAnswer=!0},r.removeCustomAnswer=function(){r.question.otherAnswer=!1},r.keyPressedOnInput=function(e,t){delete r.isNewAnswer[t.id],13===e.which&&(e.preventDefault(),r.addNewOfferedAnswer())},1===angular.version.major&&angular.version.minor<5&&this.$onInit()}],link:function(e,t,n,i){e.ctrl.possiblePageFlow=i.possiblePageFlow}}}),angular.module("mwFormBuilder").directive("mwQuestionGridBuilder",function(){return{replace:!0,restrict:"AE",require:"^mwFormQuestionBuilder",scope:{question:"=",formObject:"=",readOnly:"=?",options:"=?"},templateUrl:"mw-question-grid-builder.html",controllerAs:"ctrl",bindToController:!0,controller:["mwFormUuid","MW_GRID_CELL_INPUT_TYPES",function(e,t){function n(e){if(e)for(var t=0;t<e.length;t++)e[t].orderNo=t+1}function i(e){e.sort(function(e,t){return e.orderNo-t.orderNo})}var r=this;this.$onInit=function(){r.cellInputTypes=t,r.isNewInput={},r.question.grid||(r.question.grid={rows:[],cols:[]},r.addNewRow(),r.addNewCol(!0)),r.question.grid.cellInputType||(r.question.grid.cellInputType=r.cellInputTypes[0]),i(r.question.grid.rows),i(r.question.grid.cols),r.rowsSortableConfig={disabled:r.readOnly,ghostClass:"beingDragged",handle:".drag-handle",onEnd:function(e,t){n(r.question.grid.rows)}},r.colsSortableConfig={disabled:r.readOnly,ghostClass:"beingDragged",handle:".drag-handle",onEnd:function(e,t){n(r.question.grid.cols)}}},r.addNewRow=function(t){var n={id:e.get(),orderNo:r.question.grid.rows.length+1,label:null};t||(r.isNewInput[n.id]=!0),r.question.grid.rows.push(n)},r.addNewCol=function(t){var n={id:e.get(),orderNo:r.question.grid.cols.length+1,label:null};t||(r.isNewInput[n.id]=!0),r.question.grid.cols.push(n)},r.removeRow=function(e){var t=r.question.grid.rows.indexOf(e);-1!=t&&r.question.grid.rows.splice(t,1)},r.removeCol=function(e){var t=r.question.grid.cols.indexOf(e);-1!=t&&r.question.grid.cols.splice(t,1)},r.keyPressedOnInput=function(e,t,n){delete r.isNewInput[t.id],13===e.which&&(e.preventDefault(),"row"==n?r.addNewRow():r.addNewCol())},1===angular.version.major&&angular.version.minor<5&&this.$onInit()}],link:function(e,t,n,i){e.ctrl}}}),angular.module("mwFormBuilder").directive("mwQuestionDivisionBuilder",function(){return{replace:!0,restrict:"AE",require:"^mwFormQuestionBuilder",scope:{question:"=",readOnly:"=?",options:"=?"},templateUrl:"mw-question-division-builder.html",controllerAs:"ctrl",bindToController:!0,controller:["mwFormUuid",function(e){function t(e){if(e)for(var t=0;t<e.length;t++)e[t].orderNo=t+1}function n(e){e.sort(function(e,t){return e.orderNo-t.orderNo})}var i=this;i.$onInit=function(){i.isNewItem={},i.question.divisionList||(i.question.divisionList=[],i.addNewItem()),n(i.question.divisionList),i.itemsSortableConfig={disabled:i.readOnly,ghostClass:"beingDragged",handle:".drag-handle",onEnd:function(e,n){t(i.question.divisionList)}}},i.addNewItem=function(t){var n={id:e.get(),orderNo:i.question.divisionList.length+1,value:null};t||(i.isNewItem[n.id]=!0),i.question.divisionList.push(n)},i.removeItem=function(e){var t=i.question.divisionList.indexOf(e);-1!=t&&i.question.divisionList.splice(t,1)},i.keyPressedOnInput=function(e,t){delete i.isNewItem[t.id],13===e.which&&(e.preventDefault(),i.addNewItem())},1===angular.version.major&&angular.version.minor<5&&i.$onInit()}],link:function(e,t,n,i){e.ctrl}}}),angular.module("mwFormBuilder").directive("mwLabel",function(){return{replace:!0,restrict:"AE",scope:{labelKey:"@?",labelText:"@?",labelFor:"@",labelClass:"@",labelTranslateValues:"="},templateUrl:"mw-label.html",controllerAs:"ctrl",bindToController:!0,controller:["mwFormUuid",function(e){}],link:function(e,t,n){}}}),angular.module("mwFormBuilder").factory("FormQuestionBuilderId",function(){var e=0;return{next:function(){return++e}}}).directive("mwFormQuestionBuilder",function(){return{replace:!0,restrict:"AE",require:"^mwFormPageElementBuilder",scope:{question:"=",formObject:"=",onReady:"&",isPreview:"=?",readOnly:"=?"},templateUrl:"mw-form-question-builder.html",controllerAs:"ctrl",bindToController:!0,controller:["$timeout","FormQuestionBuilderId","mwFormBuilderOptions",function(e,t,n){function i(){if(a.question.offeredAnswers)for(var e=0;e<a.question.offeredAnswers.length;e++)a.question.offeredAnswers[e].orderNo=e+1}function r(){a.question.offeredAnswers&&a.question.offeredAnswers.sort(function(e,t){return e.orderNo-t.orderNo})}function o(){a.question.offeredAnswers&&a.question.offeredAnswers.forEach(function(e){a.question.pageFlowModifier?e.pageFlow=a.possiblePageFlow[0]:delete e.pageFlow})}var a=this;a.$onInit=function(){a.id=t.next(),a.questionTypes=n.questionTypes,a.formSubmitted=!1,r(),a.offeredAnswersSortableConfig={disabled:a.readOnly,ghostClass:"beingDragged",handle:".drag-handle",onEnd:function(e,t){i()}}},a.save=function(){a.formSubmitted=!0,a.form.$valid&&a.onReady()};var s=["radio","checkbox","select"];a.questionTypeChanged=function(){-1!==s.indexOf(a.question.type)&&(a.question.offeredAnswers||(a.question.offeredAnswers=[])),"radio"!=a.question.type&&(o(),e(function(){a.question.pageFlowModifier=!1})),-1===s.indexOf(a.question.type)&&delete a.question.offeredAnswers,"grid"!=a.question.type&&delete a.question.grid,"priority"!=a.question.type&&delete a.question.priorityList},a.pageFlowModifierChanged=function(){o()},1===angular.version.major&&angular.version.minor<5&&a.$onInit()}],link:function(e,t,n,i){var r=e.ctrl;r.possiblePageFlow=i.possiblePageFlow,r.options=i.options}}}),angular.module("mwFormBuilder").factory("FormParagraphBuilderId",function(){var e=0;return{next:function(){return++e}}}).directive("mwFormParagraphBuilder",function(){return{replace:!0,restrict:"AE",require:"^mwFormPageElementBuilder",scope:{paragraph:"=",formObject:"=",onReady:"&",isPreview:"=?",readOnly:"=?"},templateUrl:"mw-form-paragraph-builder.html",controllerAs:"ctrl",bindToController:!0,controller:["$timeout","FormParagraphBuilderId",function(e,t){var n=this;n.$onInit=function(){n.id=t.next(),n.formSubmitted=!1},n.save=function(){n.formSubmitted=!0,n.form.$valid&&n.onReady()},1===angular.version.major&&angular.version.minor<5&&n.$onInit()}],link:function(e,t,n,i){e.ctrl}}}),angular.module("mwFormBuilder").directive("mwFormPageElementBuilder",function(){return{replace:!0,restrict:"AE",require:"^mwFormPageBuilder",scope:{pageElement:"=",formObject:"=",isActive:"=",isFirst:"=",isLast:"=",onReady:"&",readOnly:"=?"},templateUrl:"mw-form-page-element-builder.html",controllerAs:"ctrl",bindToController:!0,controller:["mwFormUuid",function(e){var t=this;t.$onInit=function(){"question"==t.pageElement.type?t.pageElement.question||(t.pageElement.question={id:e.get(),text:null,type:null,required:!0}):"image"==t.pageElement.type?t.pageElement.image||(t.pageElement.image={id:e.get(),align:"left"}):"paragraph"==t.pageElement.type&&(t.pageElement.paragraph||(t.pageElement.paragraph={id:e.get(),html:""}))},t.callback=function(e,n){e.preventDefault(),e.stopPropagation(),n.callback&&"function"==typeof n.callback&&n.callback(t.pageElement)},t.filter=function(e){return!(!e.showInOpen&&t.isActive)&&!(!e.showInPreview&&!t.isActive)&&(!e.filter||"function"!=typeof e.filter||e.filter(t.pageElement))},1===angular.version.major&&angular.version.minor<5&&t.$onInit()}],link:function(e,t,n,i){var r=e.ctrl;r.possiblePageFlow=i.possiblePageFlow,r.hoverIn=function(){r.isHovered=!0},r.hoverOut=function(){r.isHovered=!1},r.editElement=function(){i.selectElement(r.pageElement)},r.cloneElement=function(e){e.preventDefault(),e.stopPropagation(),i.cloneElement(r.pageElement)},r.removeElement=function(){i.removeElement(r.pageElement)},r.moveDown=function(){i.moveDownElement(r.pageElement)},r.moveUp=function(){i.moveUpElement(r.pageElement)},r.options=i.options,r.onImageSelection=i.onImageSelection}}}),angular.module("mwFormBuilder").directive("mwFormPageBuilder",["$rootScope",function(e){return{replace:!0,restrict:"AE",require:"^mwFormBuilder",scope:{formPage:"=",formObject:"=",isFirst:"=",isLast:"=",readOnly:"=?"},templateUrl:"mw-form-page-builder.html",controllerAs:"ctrl",bindToController:!0,controller:["$timeout","mwFormUuid","mwFormClone","mwFormBuilderOptions",function(t,n,i,r){function o(){for(var e=0;e<c.formPage.elements.length;e++)c.formPage.elements[e].orderNo=e+1}function a(){c.formPage.elements.sort(function(e,t){return e.orderNo-t.orderNo})}function s(e,t){return{id:n.get(),orderNo:t,type:e}}function l(e,t,n){var i=e[t];e.splice(t,1),e.splice(n,0,i)}var c=this;c.$onInit=function(){c.hoverEdit=!1,c.formPage.namedPage=!!c.formPage.name,c.isFolded=!1,a(),c.sortableConfig={disabled:c.readOnly,ghostClass:"beingDragged",group:"survey",handle:".inactive",chosenClass:".page-element-list",onEnd:function(e,t){o()}},c.activeElement=null},c.unfold=function(){c.isFolded=!1},c.fold=function(){c.isFolded=!0},c.pageNameChanged=function(){e.$broadcast("mwForm.pageEvents.pageNameChanged",{page:c.formPage})},c.addElement=function(e){e||(e=r.elementTypes[0]);var t=s(e,c.formPage.elements.length+1);c.activeElement=t,c.formPage.elements.push(t)},c.cloneElement=function(e,t){var n=c.formPage.elements.indexOf(e),r=i.cloneElement(e);t&&(c.activeElement=r),c.formPage.elements.splice(n,0,r)},c.removeElement=function(e){var t=c.formPage.elements.indexOf(e);c.formPage.elements.splice(t,1)},c.moveDownElement=function(e){var t=c.formPage.elements.indexOf(e),n=t+1;n<c.formPage.elements.length&&l(c.formPage.elements,t,n),o()},c.moveUpElement=function(e){var t=c.formPage.elements.indexOf(e),n=t-1;n>=0&&l(c.formPage.elements,t,n),o()},c.isElementTypeEnabled=function(e){return-1!==r.elementTypes.indexOf(e)},c.addQuestion=function(){c.addElement("question")},c.addImage=function(){c.addElement("image")},c.addParagraph=function(){c.addElement("paragraph")},c.isElementActive=function(e){return c.activeElement==e},c.selectElement=function(e){c.activeElement=e},c.onElementReady=function(){t(function(){c.activeElement=null})},c.hoverIn=function(){c.hoverEdit=!0},c.hoverOut=function(){c.hoverEdit=!1},c.updateElementsOrderNo=o,1===angular.version.major&&angular.version.minor<5&&c.$onInit()}],link:function(e,t,n,i){var r=e.ctrl;r.possiblePageFlow=i.possiblePageFlow,r.moveDown=function(){i.moveDownPage(r.formPage)},r.moveUp=function(){i.moveUpPage(r.formPage)},r.removePage=function(){i.removePage(r.formPage)},r.addPage=function(){i.addPageAfter(r.formPage)},e.$watch("ctrl.formPage.elements.length",function(e,t){e!=t&&r.updateElementsOrderNo()}),r.options=i.options,r.onImageSelection=i.onImageSelection}}}]),angular.module("mwFormBuilder").factory("FormImageBuilderId",function(){var e=0;return{next:function(){return++e}}}).directive("mwFormImageBuilder",function(){return{replace:!0,restrict:"AE",require:"^mwFormPageElementBuilder",scope:{image:"=",formObject:"=",onReady:"&",isPreview:"=?",readOnly:"=?",onImageSelection:"&"},templateUrl:"mw-form-image-builder.html",controllerAs:"ctrl",bindToController:!0,controller:["$timeout","FormImageBuilderId","mwFormUuid",function(e,t,n){var i=this;i.id=t.next(),i.formSubmitted=!1,i.save=function(){i.formSubmitted=!0,i.form.$valid&&i.onReady()},i.selectImageButtonClicked=function(){i.onImageSelection().then(function(e){i.image.src=e}).catch(function(){})},i.setAlign=function(e){i.image.align=e}}],link:function(e,t,n,i){e.ctrl}}}),angular.module("mwFormBuilder").directive("mwFormConfirmationPageBuilder",function(){return{replace:!0,restrict:"AE",scope:{formObject:"=",readOnly:"=?"},templateUrl:"mw-form-confirmation-page-builder.html",controllerAs:"ctrl",bindToController:!0,controller:["$timeout",function(e){var t=this;t.hoverEdit=!1,t.hoverIn=function(){t.hoverEdit=!0},t.hoverOut=function(){t.hoverEdit=!1}}],link:function(e,t,n){}}}),angular.module("mwFormBuilder").directive("mwFormBuilder",["$rootScope",function(e){return{replace:!0,restrict:"AE",scope:{formData:"=",readOnly:"=?",options:"=?",formStatus:"=?",onImageSelection:"&",api:"=?"},templateUrl:"mw-form-builder.html",controllerAs:"ctrl",bindToController:!0,controller:["mwFormUuid","MW_QUESTION_TYPES","mwFormBuilderOptions",function(t,n,i){function r(e){var n=null;return s.possiblePageFlow&&(n=s.possiblePageFlow[0]),{id:t.get(),number:e,name:null,description:null,pageFlow:n,elements:[]}}function o(){for(var e=0;e<s.formData.pages.length;e++)s.formData.pages[e].number=e+1;s.updatePageFlow()}function a(e,t,n){var i=e[t];e.splice(t,1),e.splice(n,0,i)}var s=this;s.$onInit=function(){s.currentPage=0,s.formData.pages&&s.formData.pages.length||(s.formData.pages=[],s.formData.pages.push(r(1))),s.options=i.$init(s.options),s.api&&(s.api.reset=function(){for(var e in s.formData)s.formData.hasOwnProperty(e)&&"pages"!=e&&delete s.formData[e];s.formData.pages.length=0,s.formData.pages.push(r(1))})},s.numberOfPages=function(){return Math.ceil(s.formData.pages.length/s.options.pageSize)},s.lastPage=function(){s.currentPage=Math.ceil(s.formData.pages.length/s.options.pageSize-1)},s.addPage=function(){s.formData.pages.push(r(s.formData.pages.length+1)),s.lastPage(),e.$broadcast("mwForm.pageEvents.pageAdded")},s.onChangePageSize=function(){s.currentPage>Math.ceil(s.formData.pages.length/s.options.pageSize-1)&&(s.currentPage=Math.ceil(s.formData.pages.length/s.options.pageSize-1))},s.addPageAfter=function(t){var n=s.formData.pages.indexOf(t)+1,i=r(t.number+1);n<s.formData.pages.length?s.formData.pages.splice(n,0,i):s.formData.pages.push(i),o(),e.$broadcast("mwForm.pageEvents.pageAdded")},s.moveDownPage=function(t){var n=s.formData.pages.indexOf(t),i=n+1;i<s.formData.pages.length&&a(s.formData.pages,n,i),o(),e.$broadcast("mwForm.pageEvents.pageMoved")},s.moveUpPage=function(t){var n=s.formData.pages.indexOf(t),i=n-1;i>=0&&a(s.formData.pages,n,i),o(),e.$broadcast("mwForm.pageEvents.pageMoved")},s.removePage=function(t){var n=s.formData.pages.indexOf(t);s.formData.pages.splice(n,1),o(),e.$broadcast("mwForm.pageEvents.pageRemoved"),s.onChangePageSize()},1===angular.version.major&&angular.version.minor<5&&s.$onInit()}],link:function(t,n,i){var r=t.ctrl;r.formStatus&&(r.formStatus.form=r.form),r.possiblePageFlow=[];var o={nextPage:!0,label:"mwForm.pageFlow.goToNextPage"};r.possiblePageFlow.push(o),r.isSamePageFlow=function(e,t){return e.page&&t.page&&e.page.id==t.page.id||e.formSubmit&&t.formSubmit||e.nextPage&&t.nextPage},r.updatePageFlow=function(){r.possiblePageFlow.length=1,r.formData.pages.forEach(function(e){r.possiblePageFlow.push({page:{id:e.id,number:e.number},label:"mwForm.pageFlow.goToPage"})}),r.possiblePageFlow.push({formSubmit:!0,label:"mwForm.pageFlow.submitForm"}),r.formData.pages.forEach(function(e){r.possiblePageFlow.forEach(function(t){e.pageFlow?r.isSamePageFlow(t,e.pageFlow)&&(e.pageFlow=t):e.pageFlow=o,e.elements.forEach(function(e){var n=e.question;n&&n.pageFlowModifier&&n.offeredAnswers.forEach(function(e){e.pageFlow&&r.isSamePageFlow(t,e.pageFlow)&&(e.pageFlow=t)})})})})},t.$watch("ctrl.formData.pages.length",function(e,t){r.updatePageFlow()}),t.$watch("ctrl.currentPage",function(t,n){e.$broadcast("mwForm.pageEvents.pageCurrentChanged",{index:r.currentPage})}),t.$on("mwForm.pageEvents.changePage",function(e,t){void 0!==t.page&&t.page<r.numberOfPages()&&(r.currentPage=t.page)}),t.$on("mwForm.pageEvents.addPage",function(e,t){r.addPage()})}}}]),angular.module("mwFormBuilder").filter("mwStartFrom",function(){return function(e,t){return t=+t,e.slice(t)}}),angular.module("mwFormBuilder").constant("MW_QUESTION_TYPES",["text","textarea","radio","checkbox","select","grid","priority","division","number","date","time","email","range","url"]).constant("MW_ELEMENT_TYPES",["question","image","paragraph"]).constant("MW_GRID_CELL_INPUT_TYPES",["radio","checkbox","text","number","date","time"]).factory("mwFormBuilderOptions",["MW_ELEMENT_TYPES","MW_QUESTION_TYPES",function(e,t){function n(e,t){return e?e.map(function(e){return angular.extend({},t,e)}):[]}var i={title:null,icon:null,text:null,callback:null,filter:null,showInOpen:!1,showInPreview:!0,cssClass:""},r={key:null,label:null,selects:[],required:!0},o={elementTypes:e,questionTypes:t,elementButtons:[],pagesSize:[10,25,50,100],pageSize:10,customQuestionSelects:[],customElements:[]},a={$init:function(e){return angular.extend(a,o,e),a.customQuestionSelects=n(a.customQuestionSelects,r),a.elementButtons=n(a.elementButtons,i),a}};return a}]),angular.module("mwFormBuilder").directive("wdFocusMe",["$timeout","$parse",function(e,t){return{link:function(n,i,r){var o=t(r.wdFocusMe);n.$watch(o,function(t){!0===t&&e(function(){i[0].focus()})}),i.bind("blur",function(){e(function(){n.$apply(o.assign(n,!1))})})}}}]).factory("focus",["$timeout","$window",function(e,t){return function(n){e(function(){var e=t.document.getElementById(n);e&&e.focus()})}}]),angular.module("mwFormBuilder").directive("mwConfirmClick",["$window",function(e){return{restrict:"A",link:function(t,n,i){var r=i.wdConfirmClick||"Are you sure?";n.bind("click",function(n){e.confirm(r)&&t.$apply(i.confirmedAction)})}}}]),angular.module("mwFormBuilder").run(["$templateCache",function(e){e.put("mw-form-builder.html",'<div class=mw-form-builder><form name=ctrl.form role=form novalidate><div class=mw-title-page><md-input-container class=md-block><mw-label label-for=formName label-key=mwForm.form.name></mw-label><input type=text class=form-control name=formName id=formName ng-model=ctrl.formData.name ng-readonly=ctrl.readOnly required></md-input-container><md-input-container class=md-block><mw-label label-for=formDescription label-key=mwForm.form.description></mw-label><textarea msd-elastic class=form-control name=formDescription ng-model=ctrl.formData.description id=formDescription ng-readonly=ctrl.readOnly>\r\n            </textarea></md-input-container></div><div class=form-page-list><mw-form-page-builder ng-repeat="page in ctrl.formData.pages| mwStartFrom:ctrl.currentPage * ctrl.options.pageSize | limitTo:ctrl.options.pageSize" form-page=page form-object=ctrl.formData is-first=$first is-last=$last read-only=ctrl.readOnly></mw-form-page-builder></div><div layout=row layout-align="center center"><div flex-gt-xs=75><div layout=row layout-align="center center"><div flex-gt-xs=50><md-button class="md-icon-button md-raised" ng-disabled="ctrl.currentPage === 0" ng-click="ctrl.currentPage = 0"><i class="fa fa-angle-double-left fa-lg"></i></md-button><md-button class="md-icon-button md-raised" ng-disabled="ctrl.currentPage === 0" ng-click="ctrl.currentPage = ctrl.currentPage - 1"><i class="fa fa-angle-left fa-lg"></i></md-button>{{ctrl.currentPage + 1}}/{{ctrl.numberOfPages()}}<md-button class="md-icon-button md-raised" ng-disabled="ctrl.currentPage >= ctrl.formData.pages.length / ctrl.options.pageSize - 1" ng-click="ctrl.currentPage = ctrl.currentPage + 1"><i class="fa fa-angle-right fa-lg"></i></md-button><md-button class="md-icon-button md-raised" ng-disabled="ctrl.currentPage >= ctrl.formData.pages.length / ctrl.options.pageSize - 1" ng-click=ctrl.lastPage()><i class="fa fa-angle-double-right fa-lg"></i></md-button></div><div flex-gt-xs=18><md-input-container><md-select ng-change=ctrl.onChangePageSize() class=form-control ng-model=ctrl.options.pageSize><md-option ng-repeat="item in ctrl.options.pagesSize" value={{item}}>{{item}}</md-option></md-select></md-input-container></div></div></div><div flex><div layout=row layout-align=end><md-button type=button class="md-raised md-primary" ng-click=ctrl.addPage() ng-if=!ctrl.readOnly><i class="fa fa-plus"></i> <span translate=mwForm.buttons.addPage></span></md-button></div></div></div><mw-form-confirmation-page-builder form-object=ctrl.formData read-only=ctrl.readOnly></mw-form-confirmation-page-builder></form></div>'),e.put("mw-form-confirmation-page-builder.html",'<div class="mw-form-page-builder mw-confirmation-page"><div><div class=mw-page-tab-container><div class=mw-form-page-tab><span class=mw-page-tab-text role=heading translate=mwForm.confirmationPage.title>Strona potwierdzenia</span></div><div class=mw-page-tab-triangle></div></div><div ng-form=ctrl.form role=form novalidate class=form-page-builder-body><div class=form-group><md-input-container class=md-block><mw-label label-for=customConfirmationMessage label-key=mwForm.confirmationPage.customMessage></mw-label><textarea id=customConfirmationMessage msd-elastic class=form-control name=confirmationMessage ng-model=ctrl.formObject.confirmationMessage ng-disabled=ctrl.readOnly></textarea></md-input-container></div></div></div></div>'),e.put("mw-form-image-builder.html",'<div class=mw-form-image-builder-wrapper><div class=mw-form-image-builder ng-class="{\'ng-submitted\':ctrl.formSubmitted}"><div class=image-editor ng-form=ctrl.form ng-if=!ctrl.isPreview><button ng-if=!ctrl.image.src ng-click=ctrl.selectImageButtonClicked() type=button class="btn btn-default" translate=mwForm.image.selectImageButton>Select image</button><div class="image-edition row" ng-if=ctrl.image.src><div class=col-md-12 ng-class="\'align-\'+ctrl.image.align"><img ng-src={{ctrl.image.src}}></div><div class="col-md-12 image-align-control"><div class=btn-group role=group aria-label="Image align"><button type=button class="btn btn-default" ng-class="{\'selected\': ctrl.image.align==\'left\'}" ng-click="ctrl.setAlign(\'left\')"><i class="fa fa-align-left"></i></button> <button type=button class="btn btn-default" ng-class="{\'selected\': ctrl.image.align==\'center\'}" ng-click="ctrl.setAlign(\'center\')"><i class="fa fa-align-center"></i></button> <button type=button class="btn btn-default" ng-class="{\'selected\': ctrl.image.align==\'right\'}" ng-click="ctrl.setAlign(\'right\')"><i class="fa fa-align-right"></i></button></div></div><md-input-container class=md-block><mw-label label-for=image-caption-{{ctrl.id}} label-key=mwForm.image.caption>Image caption</mw-label><input type=text class=form-control name=text ng-attr-id=image-caption-{{ctrl.id}} ng-model=ctrl.image.caption ng-readonly=ctrl.readOnly></md-input-container></div><div ng-if=ctrl.image.src><br><br><md-button class="md-primary md-raised" type=button role=button ng-click=ctrl.save() translate=mwForm.buttons.questionReady>Ready</md-button></div></div><div class=mw-preview ng-if=ctrl.isPreview><figure ng-class="\'align-\'+ctrl.image.align"><img ng-src={{ctrl.image.src}} ng-attr-alt=ctrl.image.caption><figcaption ng-if=ctrl.image.caption>{{ctrl.image.caption}}</figcaption></figure></div></div></div>'),e.put("mw-form-page-builder.html",'<div class=mw-form-page-builder ng-class="{\'page-folded\': ctrl.isFolded}"><div ng-mouseover=ctrl.hoverIn() ng-mouseleave=ctrl.hoverOut()><div class=mw-page-tab-container><div class=mw-form-page-tab><span class=mw-page-tab-text role=heading translate=mwForm.page.tab.heading translate-values="{page: ctrl.formPage.number, allPages:ctrl.formObject.pages.length}">Strona 1 z 3</span> <span class=mw-page-tab-checkbox><label><input type=checkbox ng-model=ctrl.formPage.namedPage ng-disabled=ctrl.readOnly><span class=mw-page-tab-checkbox-text translate=mwForm.page.pageWithNameCheckbox>named</span></label></span></div><div class=mw-page-tab-triangle></div><div class=mw-page-tab-actions ng-switch=ctrl.readOnly><button type=button class=fold-button ng-click=ctrl.fold() ng-attr-title="{{\'mwForm.buttons.fold\' | translate}}"><md-tooltip md-direction=top><span translate=mwForm.buttons.fold>Fold</span></md-tooltip><i class="fa fa-compress"></i></button> <button type=button class=unfold-button ng-click=ctrl.unfold() ng-attr-title="{{\'mwForm.buttons.unfold\' | translate}}"><md-tooltip md-direction=top><span translate=mwForm.buttons.unfold>Unfold</span></md-tooltip><i class="fa fa-expand"></i></button> <button type=button class=move-down-button ng-click=ctrl.moveDown() ng-if=!ctrl.isLast ng-switch-when=false ng-attr-title="{{\'mwForm.buttons.moveDown\' | translate}}"><md-tooltip md-direction=top><span translate=mwForm.buttons.moveDown>Move down</span></md-tooltip><i class="fa fa-chevron-down"></i></button> <button type=button class=move-up-button ng-click=ctrl.moveUp() ng-if=!ctrl.isFirst ng-switch-when=false ng-attr-title="{{\'mwForm.buttons.moveUp\' | translate}}"><md-tooltip md-direction=top><span translate=mwForm.buttons.moveUp>move Up</span></md-tooltip><i class="fa fa-chevron-up"></i></button> <button type=button class=remove-button mw-confirm-click confirmed-action=ctrl.removePage() ng-switch-when=false ng-attr-title="{{\'mwForm.buttons.removePage\' | translate}}"><md-tooltip md-direction=top><span translate=mwForm.buttons.removePage>remove Page</span></md-tooltip><i class="fa fa-trash"></i></button></div></div><div ng-form=ctrl.form role=form novalidate class=form-page-builder-body><md-input-container class=md-block ng-if=ctrl.formPage.namedPage><label ng-attr-for=page-name-{{ctrl.formPage.number}} translate=mwForm.page.name>Nazwa strony</label> <input type=text class=form-control name=pageName ng-attr-id=page-name-{{ctrl.formPage.number}} ng-model=ctrl.formPage.name ng-blur=ctrl.pageNameChanged() ng-readonly=ctrl.readOnly></md-input-container><div class=page-element-list ng-sortable=ctrl.sortableConfig ng-model=ctrl.formPage.elements><div class="empty-page-element-list-label form-group" ng-if="!ctrl.formPage.elements || (ctrl.formPage.elements && ctrl.formPage.elements.length === 0)"><span translate=mwForm.page.elements.empty>Brak elementów</span></div><mw-form-page-element-builder ng-repeat="element in ctrl.formPage.elements" page-element=element form-object=ctrl.formObject is-active=ctrl.isElementActive(element) on-ready=ctrl.onElementReady() ng-click=ctrl.selectElement(element) is-first=$first is-last=$last read-only=ctrl.readOnly></mw-form-page-element-builder></div><md-menu ng-if=!ctrl.readOnly><md-button class=md-raised aria-label="{{\'mwForm.buttons.addElement\'|translate}}" ng-click=$mdOpenMenu($event) translate=mwForm.buttons.addElement>Add element</md-button><md-menu-content width=4><md-menu-item ng-if="ctrl.isElementTypeEnabled(\'question\')"><md-button type=button ng-click=ctrl.addQuestion()><span translate=mwForm.elements.question>Pytanie</span><i class="fa fa-question-circle fa-lg fa-fw" style="margin-left: 10px;"></i></md-button></md-menu-item><md-menu-item ng-if="ctrl.isElementTypeEnabled(\'image\')"><md-button type=button ng-click=ctrl.addImage()><span translate=mwForm.elements.image>Obraz</span><i class="fa fa-picture-o fa-lg fa-fw" style="margin-left: 10px;"></i></md-button></md-menu-item><md-menu-item ng-if="ctrl.isElementTypeEnabled(\'paragraph\')"><md-button type=button ng-click=ctrl.addParagraph()><span translate=mwForm.elements.paragraph>Obraz</span><i class="fa fa-paragraph fa-lg fa-fw" style="margin-left: 10px;"></i></md-button></md-menu-item></md-menu-content></md-menu></div><table cellspacing=0 class=mw-page-bottom-tab-container ng-if=!ctrl.isLast><tr><td class=mw-page-bottom-tab-triangle></td><td class=mw-form-page-bottom-tab><div class="page-flow-select form-inline"><label translate=mwForm.pageFlow.afterPage translate-values={page:ctrl.formPage.number} ng-attr-for=page-flow-select-{{ctrl.formPage.number}}>Po stronie 1</label><select ng-attr-id=page-flow-select-{{ctrl.formPage.number}} ng-options="pageFlow.label|translate:pageFlow for pageFlow in ctrl.possiblePageFlow" ng-model=ctrl.formPage.pageFlow class=form-control ng-disabled=ctrl.readOnly></select></div></td><td class=mw-page-bottom-tab-actions><button type=button role=button class=btn ng-click=ctrl.addPage() ng-if=!ctrl.readOnly ng-attr-title="{{\'mwForm.buttons.addPage\' | translate}}"><md-tooltip md-direction=top>{{\'mwForm.buttons.addPage\' | translate}}</md-tooltip><i class="fa fa-plus"></i></button></td></tr></table></div></div>'),e.put("mw-form-page-element-builder.html",'<div class=mw-form-page-element-builder-wrapper><div class=mw-form-page-element-builder ng-class="{\'active\': ctrl.isActive, \'inactive draggable\': !ctrl.isActive}"><div class=mw-page-element-actions-tab ng-switch=ctrl.isActive&&!ctrl.readOnly><span class=mw-additional-buttons><button type=button ng-click=ctrl.callback($event,button) ng-attr-title="{{button.title | translate}}" ng-class=button.cssClass class=edit-button aria-label="{{button.title | translate}}" aria-hidden=false ng-if="ctrl.filter(button) && !ctrl.readOnly" ng-repeat="button in ctrl.options.elementButtons"><md-tooltip md-direction=top><span>{{button.title | translate}}</span></md-tooltip><i class={{button.icon}}></i> {{button.text}}</button></span> <span ng-switch-when=true><button type=button class=move-down-button ng-click=ctrl.moveDown() ng-if=!ctrl.isLast ng-attr-title="{{\'mwForm.buttons.moveDown\' | translate}}"><md-tooltip md-direction=top><span translate=mwForm.buttons.moveDown>moveDown</span></md-tooltip><i class="fa fa-chevron-down"></i></button> <button type=button class=move-up-button ng-click=ctrl.moveUp() ng-if=!ctrl.isFirst ng-attr-title="{{\'mwForm.buttons.moveUp\' | translate}}"><md-tooltip md-direction=top><span translate=mwForm.buttons.moveUp>moveUp</span></md-tooltip><i class="fa fa-chevron-up"></i></button> <button type=button class=remove-button mw-confirm-click confirmed-action=ctrl.removeElement() ng-attr-title="{{\'mwForm.buttons.remove\' | translate}}"><md-tooltip md-direction=top><span translate=mwForm.buttons.remove>remove</span></md-tooltip><i class="fa fa-trash"></i></button></span> <span ng-switch-when=false><button type=button aria-label="{{\'mwForm.buttons.clone\' | translate}}" aria-hidden=false class=edit-button ng-click=ctrl.cloneElement($event) ng-if=!ctrl.readOnly ng-attr-title="{{\'mwForm.buttons.clone\' | translate}}"><md-tooltip md-direction=top><span translate=mwForm.buttons.clone>clone</span></md-tooltip><i class="fa fa-clone"></i></button> <button type=button aria-label="{{\'mwForm.buttons.edit\' | translate}}" aria-hidden=false class=edit-button ng-click=ctrl.editElement() ng-if=!ctrl.readOnly ng-attr-title="{{\'mwForm.buttons.edit\' | translate}}"><md-tooltip md-direction=top><span translate=mwForm.buttons.edit>edit</span></md-tooltip><i class="fa fa-pencil"></i></button> <button type=button aria-label="{{\'mwForm.buttons.view\' | translate}}" aria-hidden=false class=edit-button ng-click=ctrl.editElement() ng-if=ctrl.readOnly ng-attr-title="{{\'mwForm.buttons.view\' | translate}}"><md-tooltip md-direction=top><span translate=mwForm.buttons.view>view</span></md-tooltip><i class="fa fa-eye"></i></button></span></div><div ng-switch=ctrl.pageElement.type><mw-form-question-builder ng-switch-when=question question=ctrl.pageElement.question form-object=ctrl.formObject on-ready=ctrl.onReady() is-preview=!ctrl.isActive read-only=ctrl.readOnly></mw-form-question-builder><mw-form-image-builder ng-switch-when=image image=ctrl.pageElement.image form-object=ctrl.formObject on-ready=ctrl.onReady() is-preview=!ctrl.isActive read-only=ctrl.readOnly on-image-selection=ctrl.onImageSelection()></mw-form-image-builder><mw-form-paragraph-builder ng-switch-when=paragraph paragraph=ctrl.pageElement.paragraph form-object=ctrl.formObject on-ready=ctrl.onReady() is-preview=!ctrl.isActive read-only=ctrl.readOnly></mw-form-paragraph-builder></div></div></div>'),e.put("mw-form-paragraph-builder.html",'<div class=mw-form-paragraph-builder-wrapper><div class=mw-form-paragraph-builder ng-class="{\'ng-submitted\':ctrl.formSubmitted}"><div class=paragraph-editor ng-form=ctrl.form ng-if=!ctrl.isPreview><md-input-container class=md-block><mw-label label-for=paragraph-textarea-{{ctrl.id}} label-key=mwForm.paragraph.placeholder></mw-label><textarea msd-elastic class="form-control mw-form-paragraph-textarea" ng-model=ctrl.paragraph.html required ng-attr-id=paragraph-textarea-{{ctrl.id}} ng-readonly=ctrl.readOnly></textarea></md-input-container><div layout=row><br><md-button class="md-primary md-raised" type=button role=button ng-click=ctrl.save() translate=mwForm.buttons.questionReady>Ready</md-button></div></div><div class=mw-preview ng-if=ctrl.isPreview><p ng-bind-html=ctrl.paragraph.html></p></div></div></div>'),e.put("mw-form-question-builder.html",'<div class=mw-form-question-builder-wrapper><div class=mw-form-question-builder ng-class="{\'ng-submitted\':ctrl.formSubmitted}"><div ng-form=ctrl.form ng-if=!ctrl.isPreview><div class=form-horizontal><md-input-container class=md-block><mw-label label-for=question-text-{{ctrl.id}} label-key=mwForm.question.text></mw-label><input type=text name=text ng-attr-id=question-text-{{ctrl.id}} ng-model=ctrl.question.text ng-readonly=ctrl.readOnly required></md-input-container><div class=mw-question-type layout=row layout-align="start center"><md-input-container flex-gt-md=30><mw-label label-for=question-type-{{ctrl.id}} label-class="col-sm-2 control-label" label-key=mwForm.question.type></mw-label><md-select ng-attr-id=question-type-{{ctrl.id}} ng-model=ctrl.question.type ng-change=ctrl.questionTypeChanged() ng-disabled=ctrl.readOnly required><md-option ng-repeat="type in ctrl.questionTypes" ng-value=type>{{\'mwForm.question.types.\'+type+\'.name\'|translate}}</md-option></md-select></md-input-container><div flex flex-offset-gt-md=5><md-checkbox ng-if="ctrl.question.type==\'radio\' || ctrl.question.type==\'select\'" ng-model=ctrl.question.pageFlowModifier ng-change=ctrl.pageFlowModifierChanged() ng-readonly=ctrl.readOnly aria-label="Go to page"><span translate=mwForm.pageFlow.afterQuestionAnswer>Przejdź do strony w oparciu o odpowiedź</span></md-checkbox></div></div><div class="form-group mw-question-type" ng-repeat="select in ctrl.options.customQuestionSelects"><mw-label label-for=question-{{select.key}}-{{ctrl.id}} label-class="col-sm-2 control-label" label-key={{select.label}}></mw-label><div class="col-sm-10 form-inline"><select ng-attr-id=question-{{opt.key}}-{{ctrl.id}} ng-options="opt.label for opt in select.options track by opt.key" ng-model=ctrl.question[select.key] class=form-control ng-disabled=ctrl.readOnly ng-required=select.required></select></div></div></div><div ng-if=ctrl.question.type><div class=mw-form-question-answers-builder ng-switch=ctrl.question.type><div ng-if="ctrl.question.type==\'text\'"><md-input-container class=md-block><input class=form-control type=text disabled value="{{\'mwForm.question.preview.text\'|translate}}"></md-input-container></div><div ng-switch-when=textarea><md-input-container class=md-block><textarea class=form-control maxlength=150 rows=5 disabled>{{\'mwForm.question.preview.textarea\'|translate}}</textarea></md-input-container></div><div ng-switch-when=radio><mw-question-offered-answer-list-builder question=ctrl.question form-object=ctrl.formObject read-only=ctrl.readOnly></mw-question-offered-answer-list-builder></div><div ng-switch-when=select><mw-question-offered-answer-list-builder question=ctrl.question form-object=ctrl.formObject read-only=ctrl.readOnly disable-other-answer=true></mw-question-offered-answer-list-builder></div><div ng-switch-when=checkbox><mw-question-offered-answer-list-builder question=ctrl.question form-object=ctrl.formObject read-only=ctrl.readOnly></mw-question-offered-answer-list-builder></div><div ng-switch-when=priority><mw-question-priority-list-builder question=ctrl.question read-only=ctrl.readOnly></mw-question-priority-list-builder></div><div ng-switch-when=number class=form-inline><div class="range-config form-inline"><md-input-container><mw-label label-for=question-number-range-min-{{ctrl.id}} label-key=mwForm.question.number.min></mw-label><input ng-attr-id=question-number-range-min-{{ctrl.id}} class=form-control type=number ng-model=ctrl.question.min max={{ctrl.question.max}} ng-readonly=ctrl.readOnly></md-input-container><md-input-container><mw-label label-for=question-number-range-max-{{ctrl.id}} label-key=mwForm.question.number.max></mw-label><input ng-attr-id=question-number-range-max-{{ctrl.id}} class=form-control type=number min={{ctrl.question.min}} ng-model=ctrl.question.max ng-readonly=ctrl.readOnly></md-input-container></div><br><md-input-container><input class=form-control type=number disabled></md-input-container></div><div ng-switch-when=date class=form-inline><md-input-container><input class=form-control type=date disabled></md-input-container></div><div ng-switch-when=datetime class=form-inline><md-input-container><input class=form-control type=datetime disabled></md-input-container></div><div ng-switch-when=time class=form-inline><md-input-container><input class=form-control type=time disabled></md-input-container></div><div ng-switch-when=email class=form-inline><md-input-container><input class=form-control type=email disabled></md-input-container></div><div ng-switch-when=range><div class="range-config form-inline"><md-input-container><mw-label label-for=question-range-from-{{ctrl.id}} label-key=mwForm.question.range.from></mw-label><input ng-attr-id=question-range-from-{{ctrl.id}} type=number ng-model=ctrl.question.min max={{ctrl.question.max}} ng-readonly=ctrl.readOnly></md-input-container><md-input-container><mw-label label-for=question-range-to-{{ctrl.id}} label-key=mwForm.question.range.to></mw-label><input ng-attr-id=question-range-to-{{ctrl.id}} type=number min={{ctrl.question.min}} ng-model=ctrl.question.max ng-readonly=ctrl.readOnly></md-input-container></div><br><div class=mw-range><md-slider min=ctrl.question.min max=ctrl.question.max type=range disabled></md-slider></div></div><div ng-switch-when=url class=form-inline><input class=form-control type=url disabled></div></div><div class=col-sm-12 ng-if="ctrl.question.type==\'grid\'"><mw-question-grid-builder question=ctrl.question read-only=ctrl.readOnly></mw-question-grid-builder></div><div class=col-sm-12 ng-if="ctrl.question.type==\'division\'"><mw-question-division-builder question=ctrl.question read-only=ctrl.readOnly></mw-question-division-builder></div></div><br><br><div layout=row layout-align="start center"><div flex=20><md-button class="md-primary md-raised" type=button role=button ng-click=ctrl.save() translate=mwForm.buttons.questionReady>Ready</md-button></div><div flex><md-checkbox ng-model=ctrl.question.required ng-disabled=ctrl.readOnly flex><span translate=mwForm.question.required>Required</span></md-checkbox></div></div></div><div class=mw-preview ng-if=ctrl.isPreview><div class=mw-question-text>{{ctrl.question.text}} <span ng-if=ctrl.question.required>*</span></div><div class=question-answers ng-switch=ctrl.question.type><div ng-switch-when=text><md-input-container class=md-block><input class=form-control type=text disabled value="{{\'mwForm.question.preview.text\'|translate}}"></md-input-container></div><div ng-switch-when=number class=form-inline><md-input-container><input class=form-control type=number disabled></md-input-container></div><div ng-switch-when=date class=form-inline><md-input-container><input class=form-control type=date disabled></md-input-container></div><div ng-switch-when=datetime class=form-inline><md-input-container><input class=form-control type=datetime disabled></md-input-container></div><div ng-switch-when=time class=form-inline><md-input-container><input class=form-control type=time disabled></md-input-container></div><div ng-switch-when=email class=form-inline><md-input-container><input class=form-control type=email disabled></md-input-container></div><div ng-switch-when=range class=mw-range><md-slider min=ctrl.question.min max=ctrl.question.max type=range disabled></md-slider></div><div ng-switch-when=url class=form-inline><md-input-container class=md-block><input class=form-control type=url disabled></md-input-container></div><div ng-switch-when=textarea><md-input-container class=md-block><textarea class=form-control type=text disabled>{{\'mwForm.question.preview.textarea\'|translate}}</textarea></md-input-container></div><div ng-switch-when=radio><md-radio-group disabled><md-radio-button ng-repeat="answer in ctrl.question.offeredAnswers" aria-label="{{ answer.value }}">{{answer.value}}</md-radio-button><div layout=row layout-align="start center" class=mw-question-other-answer ng-if=ctrl.question.otherAnswer><div><md-radio-button disabled><span translate=mwForm.question.preview.otherAnswer>Inna</span>:</md-radio-button></div><div><md-input-container><input type=text class=form-control disabled></md-input-container></div></div></md-radio-group></div><div ng-switch-when=checkbox><div ng-repeat="answer in ctrl.question.offeredAnswers"><md-checkbox disabled>{{answer.value}}</md-checkbox></div><div layout=row layout-align="start center" class=mw-question-other-answer ng-if=ctrl.question.otherAnswer><div><md-checkbox disabled><span translate=mwForm.question.preview.otherAnswer>Inna</span>:</md-checkbox></div><div><md-input-container><input type=text class=form-control disabled></md-input-container></div></div></div><div ng-switch-when=select><md-input-container><md-select ng-disabled=true ng-model=ctrl.selectAnswerMock><md-option ng-repeat="answer in ctrl.question.offeredAnswers" ng-value=answer.id>{{answer.value}}</md-option></md-select></md-input-container></div><div ng-switch-when=grid><div class=table-responsive><table class="mw-data-table mw-no-border" border=0 cellpadding=5 cellspacing=0><thead><tr><td></td><td ng-repeat="col in ctrl.question.grid.cols"><label>{{col.label}}</label></td></tr></thead><tbody><tr ng-repeat="row in ctrl.question.grid.rows"><td>{{row.label}}</td><td ng-repeat="col in ctrl.question.grid.cols" ng-switch=ctrl.question.grid.cellInputType><md-radio-group ng-switch-when=radio><md-radio-button></md-radio-button></md-radio-group><div ng-switch-when=checkbox><md-checkbox></md-checkbox></div><md-input-container ng-switch-default><input ng-attr-type={{ctrl.question.grid.cellInputType}} disabled ng-class="\'form-control\'"></md-input-container></td></tr></tbody></table></div></div><div class=mw-priority-list ng-switch-when=priority><table><thead><tr><th translate=mwForm.question.priority.sorted>Sorted</th><th translate=mwForm.question.priority.available>Available</th></tr></thead><tbody><tr><td class=mw-ordered-items></td><td class=mw-available-items><div class=mw-item ng-repeat="item in ctrl.question.priorityList">{{::item.value}}</div></td></tr></tbody></table></div><div ng-switch-when=division class=mw-division-list><div class=form-inline style="margin-bottom: 5px" ng-repeat="item in ctrl.question.divisionList"><div class=form-group><label>{{item.value}}</label><md-input-container md-no-float><input type=number class=form-control style="width: 80px"></md-input-container><span>{{ctrl.question.unit}}</span></div></div><div class=form-inline style="margin-bottom: 5px"><div class=form-group><label translate=mwForm.question.division.assignedSumLabel>Przydzielono</label><md-input-container md-no-float><input type=number class="form-control strict-validation" style="width: 80px" readonly value=0></md-input-container><span>{{ctrl.question.unit}} <span translate=mwForm.question.division.fromRequiredLabel>z wymaganych</span> <strong>{{ctrl.question.quantity}}</strong> {{ctrl.question.unit}}</span></div></div></div></div></div></div></div>'),e.put("mw-label.html","<label ng-attr-for={{::ctrl.labelFor}} ng-attr-class={{::ctrl.labelClass}}>{{ctrl.labelKey|translate:ctrl.labelTranslateValues}}</label>"),e.put("mw-question-division-builder.html",'<div class=mw-question-division-builder><div><div><md-input-container><mw-label label-for=division-quantity-{{ctrl.question.id}} label-class="col-sm-2 control-label" label-key=mwForm.question.division.quantity></mw-label><div class="col-sm-10 col-md-8 form-inline"><input ng-attr-id=division-quantity-{{ctrl.question.id}} type=number ng-model=ctrl.question.quantity required class=form-control min=1 ng-readonly=ctrl.readOnly></div></md-input-container><md-input-container><mw-label label-for=division-unit-{{ctrl.question.id}} label-class="col-sm-2 control-label" label-key=mwForm.question.division.unit></mw-label><div class="col-sm-10 col-md-8 form-inline"><input ng-attr-id=division-unit-{{ctrl.question.id}} type=text ng-model=ctrl.question.unit required class=form-control ng-readonly=ctrl.readOnly></div></md-input-container></div></div><div><div class=question-division-list ng-sortable=ctrl.itemsSortableConfig ng-model=ctrl.question.divisionList role=list><div class=mw-question-division-list-item ng-repeat="item in ctrl.question.divisionList" role=listitem><div class=drag-handle ng-if=!ctrl.readOnly><i class="fa fa-arrows-v fa-lg handle-inner"></i></div><md-input-container><input wd-focus-me=ctrl.isNewItem[item.id] type=text ng-model=item.value ng-keypress=ctrl.keyPressedOnInput($event,item) required class="form-control item-value" ng-readonly=ctrl.readOnly></md-input-container><md-button role=button class="md-raised md-icon-button remove-item-button" ng-click=ctrl.removeItem(item) ng-if=!ctrl.readOnly ng-attr-title="{{\'mwForm.buttons.remove\' | translate}}"><md-tooltip md-direction=top>{{\'mwForm.buttons.remove\' | translate}}</md-tooltip><i class="fa fa-times"></i></md-button></div></div><div class="mw-question-division-list-item add-new-item-widget"><div class=drag-handle></div><md-input-container><span ng-click=ctrl.addNewItem() role=button ng-if=!ctrl.readOnly><input type=text required class=form-control value="{{\'mwForm.question.priority.clickToAddItem\'|translate}}"></span></md-input-container></div></div></div>'),e.put("mw-question-grid-builder.html",'<div class=mw-question-grid-builder><div class=mw-grid-rows-builder><div><div style="margin-top: 20px;" layout=row layout-align="start center"><md-input-container flex-gt-md=30><mw-label label-for=mw-grid-cell-input-type-{{ctrl.question.id}} label-class="col-sm-2 control-label" label-key=mwForm.question.grid.cellInputType></mw-label><md-select ng-attr-id=mw-grid-cell-input-type-{{ctrl.question.id}} ng-model=ctrl.question.grid.cellInputType ng-disabled=ctrl.readOnly required><md-option ng-repeat="opt in ctrl.cellInputTypes" ng-value=opt>{{\'mwForm.question.grid.cellInputTypes.\'+opt|translate}}</md-option></md-select></md-input-container></div></div><div class=mw-grid-row-list ng-sortable=ctrl.rowsSortableConfig ng-model=ctrl.question.grid.rows role=list><div class="mw-grid-item form-group" ng-repeat="row in ctrl.question.grid.rows" role=listitem layout=row layout-align="start center"><div flex-gt-xs=20><mw-label label-for=mw-grid-row-{{row.id}}-label label-class=col-sm-2 label-key=mwForm.question.grid.rowLabel label-translate-values="{row: row.orderNo}"></mw-label></div><div flex><div class=drag-handle><i class="fa fa-arrows-v fa-lg handle-inner"></i></div><md-input-container><input ng-attr-id=mw-grid-row-{{row.id}}-label wd-focus-me=ctrl.isNewInput[row.id] type=text ng-model=row.label ng-keypress="ctrl.keyPressedOnInput($event,row, \'row\')" required class="form-control mw-item-label-value" ng-readonly=ctrl.readOnly></md-input-container><md-button role=button class="md-raised md-icon-button remove-item-button" ng-click=ctrl.removeRow(row) ng-if=!ctrl.readOnly ng-attr-title="{{\'mwForm.buttons.remove\' | translate}}"><md-tooltip md-direction=top>{{\'mwForm.buttons.remove\' | translate}}</md-tooltip><i class="fa fa-times"></i></md-button></div></div></div><div class="mw-grid-item form-group add-new-item-widget" ng-if=!ctrl.readOnly layout=row layout-align="start center"><div flex-gt-xs=20><label translate=mwForm.question.grid.rowLabel translate-values="{row: ctrl.question.grid.rows.length+1}">Etykieta wiersza {{ctrl.question.grid.rows.length+1}}</label></div><div flex><div class=drag-handle></div><span ng-click=ctrl.addNewRow() role=button><md-input-container><input type=text required class=form-control value="{{\'mwForm.question.grid.clickToAddRow\'|translate}}"></md-input-container></span></div></div></div><div class=row><div class="mw-grid-separator col-sm-9 col-sm-offset-1"></div></div><div class="form-horizontal mw-grid-cols-builder"><div class=mw-grid-col-list ng-sortable=ctrl.colsSortableConfig ng-model=ctrl.question.grid.cols role=list><div class="mw-grid-item form-group" ng-repeat="col in ctrl.question.grid.cols" role=listitem layout=row layout-align="start center"><div flex-gt-xs=20><mw-label label-for=mw-grid-col-{{col.id}}-label label-class="col-sm-2 control-label" label-key=mwForm.question.grid.columnLabel label-translate-values="{col: col.orderNo}"></mw-label></div><div flex><div class=drag-handle><i class="fa fa-arrows-v fa-lg handle-inner"></i></div><md-input-container><input ng-attr-id=mw-grid-col-{{col.id}}-label wd-focus-me=ctrl.isNewInput[col.id] type=text ng-model=col.label ng-keypress="ctrl.keyPressedOnInput($event,col, \'col\')" required class="form-control mw-item-label-value" ng-readonly=ctrl.readOnly></md-input-container><md-button role=button class="md-raised md-icon-button remove-item-button" ng-click=ctrl.removeCol(col) ng-if=!ctrl.readOnly ng-attr-title="{{\'mwForm.buttons.remove\' | translate}}"><md-tooltip md-direction=top>{{\'mwForm.buttons.remove\' | translate}}</md-tooltip><i class="fa fa-times"></i></md-button></div></div></div><div class="mw-grid-item form-group add-new-item-widget" ng-if=!ctrl.readOnly layout=row layout-align="start center"><div flex-gt-xs=20><label class="col-sm-2 control-label" translate=mwForm.question.grid.columnLabel translate-values="{col: ctrl.question.grid.cols.length+1}">Etykieta kolumny {{ctrl.question.grid.cols.length+1}}</label></div><div flex><div class=drag-handle></div><span ng-click=ctrl.addNewCol() role=button><md-input-container><input type=text required class=form-control value="{{\'mwForm.question.grid.clickToAddColumn\'|translate}}"></md-input-container></span></div></div></div></div>'),e.put("mw-question-offered-answer-list-builder.html",'<div class=question-offered-answer-list-builder><div class=question-offered-answer-list ng-sortable=ctrl.offeredAnswersSortableConfig ng-model=ctrl.question.offeredAnswers role=list><div class=mw-question-offered-answer ng-repeat="answer in ctrl.question.offeredAnswers" role=listitem><div class=drag-handle ng-if=!ctrl.readOnly><i class="fa fa-arrows-v fa-lg handle-inner"></i></div><div class=option-type-indicator><i ng-if="ctrl.question.type==\'radio\'" class="fa fa-circle-thin fa-fw"></i> <i ng-if="ctrl.question.type==\'checkbox\'" class="fa fa-square-o fa-fw"></i></div><md-input-container><input wd-focus-me=ctrl.isNewAnswer[answer.id] type=text ng-model=answer.value ng-keypress=ctrl.keyPressedOnInput($event,answer) required class="form-control offered-answer-value" ng-readonly=ctrl.readOnly></md-input-container><md-button role=button class="md-raised md-icon-button remove-item-button" ng-click=ctrl.removeOfferedAnswer(answer) ng-if=!ctrl.readOnly ng-attr-title="{{\'mwForm.buttons.remove\' | translate}}"><md-tooltip md-direction=top>{{\'mwForm.buttons.remove\' | translate}}</md-tooltip><i class="fa fa-times"></i></md-button><span ng-if=ctrl.question.pageFlowModifier class=form-inline><md-input-container><md-select ng-model=answer.pageFlow ng-disabled=ctrl.readOnly><md-option ng-value=pageFlow ng-repeat="pageFlow in ctrl.possiblePageFlow">{{ pageFlow.label|translate:pageFlow }}</md-option></md-select></md-input-container></span></div></div><div class="mw-question-offered-answer add-new-answer-widget" ng-if=!ctrl.readOnly><div class=drag-handle></div><div class=option-type-indicator><i ng-if="ctrl.question.type==\'radio\'" class="fa fa-circle-thin fa-fw"></i> <i ng-if="ctrl.question.type==\'checkbox\'" class="fa fa-square-o fa-fw"></i></div><span ng-click=ctrl.addNewOfferedAnswer() role=button><md-input-container><input type=text class="form-control offered-answer-value" value="{{\'mwForm.question.buttons.addOption\'|translate}}"></md-input-container></span> <span class=add-custom-answer ng-if="!ctrl.disableOtherAnswer && !ctrl.question.otherAnswer"><span translate=mwForm.question.orLabel>or</span><md-button role=button ng-click=ctrl.addCustomAnswer() translate=mwForm.question.buttons.addOther>Dodaj "Inne"</md-button></span></div><div class="mw-question-offered-answer custom-answer" ng-if=ctrl.question.otherAnswer><div class=drag-handle ng-if=!ctrl.readOnly></div><div class=option-type-indicator><i ng-if="ctrl.question.type==\'radio\'" class="fa fa-circle-thin fa-fw"></i> <i ng-if="ctrl.question.type==\'checkbox\'" class="fa fa-square-o fa-fw"></i></div><label translate=mwForm.question.otherLabel>Inna:</label><md-input-container><input type=text value="{{\'mwForm.question.userAnswer\'|translate}}" class="form-control offered-answer-value" readonly></md-input-container><md-button type=button role=button class="md-raised md-icon-button remove-item-button" ng-click=ctrl.removeCustomAnswer() ng-if=!ctrl.readOnly ng-attr-title="{{\'mwForm.buttons.remove\' | translate}}"><md-tooltip md-direction=top>{{\'mwForm.buttons.remove\' | translate}}</md-tooltip><i class="fa fa-times"></i></md-button></div></div>'),e.put("mw-question-priority-list-builder.html",'<div class=mw-question-priority-list-builder><div class=question-priority-list ng-sortable=ctrl.itemsSortableConfig ng-model=ctrl.question.priorityList role=list><div class=mw-question-priority-list-item ng-repeat="item in ctrl.question.priorityList" role=listitem><div class=drag-handle ng-if=!ctrl.readOnly><i class="fa fa-arrows-v fa-lg handle-inner"></i></div><md-input-container><input wd-focus-me=ctrl.isNewItem[item.id] type=text ng-model=item.value ng-keypress=ctrl.keyPressedOnInput($event,item) required class="form-control item-value" ng-readonly=ctrl.readOnly></md-input-container><md-button role=button class="md-raised md-icon-button remove-item-button" ng-click=ctrl.removeItem(item) ng-if=!ctrl.readOnly ng-attr-title="{{\'mwForm.buttons.remove\' | translate}}"><md-tooltip md-direction=top>{{\'mwForm.buttons.remove\' | translate}}</md-tooltip><i class="fa fa-times"></i></md-button></div></div><div class="mw-question-priority-list-item add-new-item-widget"><div class=drag-handle></div><span ng-click=ctrl.addNewItem() role=button><md-input-container><input type=text required class=form-control value="{{\'mwForm.question.priority.clickToAddItem\'|translate}}"></md-input-container></span></div></div>')}]),angular.module("mwFormViewer",["ngSanitize","ui.bootstrap","ng-sortable","pascalprecht.translate"]),angular.module("mwFormViewer").directive("mwPriorityList",function(){return{replace:!0,restrict:"AE",require:"^mwFormQuestion",scope:{question:"=",questionResponse:"=",readOnly:"=?",options:"=?"},templateUrl:"mw-priority-list.html",controllerAs:"ctrl",bindToController:!0,controller:function(){function e(e){if(e)for(var t=0;t<e.length;t++)e[t].priority=t+1}function t(e){e.sort(function(e,t){return e.priority-t.priority})}var n=this;this.$onInit=function(){n.questionResponse.priorityList||(n.questionResponse.priorityList=[]),n.idToItem={},t(n.questionResponse.priorityList),n.availableItems=[],n.question.priorityList.forEach(function(e){n.idToItem[e.id]=e,n.questionResponse.priorityList.some(function(t){return e.id==t.id})||n.availableItems.push({priority:null,id:e.id})}),n.allItemsOrdered=0==n.availableItems.length||null;var i={disabled:n.readOnly,ghostClass:"beingDragged"};n.orderedConfig=angular.extend({},i,{group:{name:"A",pull:!1,put:["B"]},onEnd:function(t,i){e(n.questionResponse.priorityList)}}),n.availableConfig=angular.extend({},i,{sort:!1,group:{name:"B",pull:["A"],put:!1},onEnd:function(t,i){e(n.questionResponse.priorityList),n.allItemsOrdered=0==n.availableItems.length||null}})},1===angular.version.major&&angular.version.minor<5&&this.$onInit()},link:function(e,t,n,i){e.ctrl.print=i.print}}}),angular.module("mwFormViewer").directive("mwFormViewer",["$rootScope",function(e){return{replace:!0,restrict:"AE",scope:{formData:"=",responseData:"=",templateData:"=?",readOnly:"=?",options:"=?",formStatus:"=?",onSubmit:"&",api:"=?"},templateUrl:"mw-form-viewer.html",controllerAs:"ctrl",bindToController:!0,controller:["$timeout","$interpolate",function(t,n){function i(){r.formData.pages.sort(function(e,t){return e.number-t.number})}var r=this;r.$onInit=function(){r.defaultOptions={nestedForm:!1,autoStart:!1,disableSubmit:!1},r.options=angular.extend({},r.defaultOptions,r.options),r.submitStatus="NOT_SUBMITTED",r.formSubmitted=!1,i(),r.pageIdToPage={},r.formData.pages.forEach(function(e){r.pageIdToPage[e.id]=e}),r.buttons={prevPage:{visible:!1,disabled:!1},nextPage:{visible:!1,disabled:!1},submitForm:{visible:!1,disabled:!1}},r.resetPages(),r.api&&(r.api.reset=function(){for(var e in r.responseData)r.responseData.hasOwnProperty(e)&&delete r.responseData[e];r.buttons.submitForm.visible=!1,r.buttons.prevPage.visible=!1,r.buttons.nextPage.visible=!1,r.currentPage=null,t(r.resetPages,0)})},r.submitForm=function(){r.formSubmitted=!0,r.submitStatus="IN_PROGRESS",r.setCurrentPage(null),r.onSubmit().then(function(){r.submitStatus="SUCCESS"}).catch(function(){r.submitStatus="ERROR"})},r.setCurrentPage=function(e){return r.currentPage=e,e?(r.setDefaultNextPage(),void r.initResponsesForCurrentPage()):(r.buttons.submitForm.visible=!1,r.buttons.prevPage.visible=!1,void(r.buttons.nextPage.visible=!1))},r.setDefaultNextPage=function(){var e=r.formData.pages.indexOf(r.currentPage);if(r.currentPage.isFirst=0==e,r.currentPage.isLast=e==r.formData.pages.length-1,r.buttons.submitForm.visible=r.currentPage.isLast,r.buttons.prevPage.visible=!r.currentPage.isFirst,r.buttons.nextPage.visible=!r.currentPage.isLast,r.currentPage.isLast?r.nextPage=null:r.nextPage=r.formData.pages[e+1],r.currentPage.pageFlow){var t=!1;r.currentPage.pageFlow.formSubmit?(r.nextPage=null,t=!0):r.currentPage.pageFlow.page?(r.nextPage=r.pageIdToPage[r.currentPage.pageFlow.page.id],r.buttons.nextPage.visible=!0):r.currentPage.isLast&&(r.nextPage=null,t=!0),r.buttons.submitForm.visible=t,r.buttons.nextPage.visible=!t}},r.initResponsesForCurrentPage=function(){r.currentPage.elements.forEach(function(e){var t=e.question;t&&!r.responseData[t.id]&&(r.responseData[t.id]={})})},r.beginResponse=function(){r.formData.pages.length>0&&(r.setCurrentPage(r.formData.pages[0]),e.$broadcast("mwForm.pageEvents.pageCurrentChanged",{currentPage:r.currentPage}))},r.resetPages=function(){r.prevPages=[],r.currentPage=null,r.nextPage=null,r.formSubmitted=!1,r.options.autoStart&&r.beginResponse()},r.goToPrevPage=function(){var t=r.prevPages.pop();r.setCurrentPage(t),r.updateNextPageBasedOnAllAnswers(),e.$broadcast("mwForm.pageEvents.pageCurrentChanged",{currentPage:r.currentPage})},r.goToNextPage=function(){r.prevPages.push(r.currentPage),r.updateNextPageBasedOnAllAnswers(),r.setCurrentPage(r.nextPage),e.$broadcast("mwForm.pageEvents.pageCurrentChanged",{currentPage:r.currentPage})},r.updateNextPageBasedOnAllAnswers=function(){r.currentPage.elements.forEach(function(e){r.updateNextPageBasedOnPageElementAnswers(e)}),r.buttons.submitForm.visible=!r.nextPage,r.buttons.nextPage.visible=!!r.nextPage},r.updateNextPageBasedOnPageElementAnswers=function(e){var t=e.question;t&&t.pageFlowModifier&&t.offeredAnswers.forEach(function(e){e.pageFlow&&r.responseData[t.id].selectedAnswer==e.id&&(e.pageFlow.formSubmit?r.nextPage=null:e.pageFlow.page&&(r.nextPage=r.pageIdToPage[e.pageFlow.page.id]))})},r.onResponseChanged=function(e){r.setDefaultNextPage(),r.updateNextPageBasedOnAllAnswers()},r.print=function(e){return e&&r.templateData?n(e)(r.templateData):e},1===angular.version.major&&angular.version.minor<5&&r.$onInit()}],link:function(t,n,i){var r=t.ctrl;r.formStatus&&(r.formStatus.form=r.form),t.$on("mwForm.pageEvents.changePage",function(t,n){if(void 0!==n.page&&n.page<r.formData.pages.length){r.resetPages();for(var i=0;i<n.page;i++)r.prevPages.push(r.formData.pages[i]);var o=r.formData.pages[n.page];r.setCurrentPage(o),e.$broadcast("mwForm.pageEvents.pageCurrentChanged",{currentPage:o}),r.updateNextPageBasedOnAllAnswers()}})}}}]),angular.module("mwFormViewer").factory("FormQuestionId",function(){var e=0;return{next:function(){return++e}}}).directive("mwFormQuestion",function(){return{replace:!0,restrict:"AE",require:"^mwFormViewer",scope:{question:"=",questionResponse:"=",readOnly:"=?",options:"=?",onResponseChanged:"&?"},templateUrl:"mw-form-question.html",controllerAs:"ctrl",bindToController:!0,controller:["$timeout","FormQuestionId",function(e,t){var n=this;this.$onInit=function(){n.id=t.next(),"radio"==n.question.type?(n.questionResponse.selectedAnswer||(n.questionResponse.selectedAnswer=null),n.questionResponse.other&&(n.isOtherAnswer=!0)):"checkbox"==n.question.type?(n.questionResponse.selectedAnswers&&n.questionResponse.selectedAnswers.length?n.selectedAnswer=!0:n.questionResponse.selectedAnswers=[],n.questionResponse.other&&(n.isOtherAnswer=!0)):"grid"==n.question.type?n.question.grid.cellInputType||(n.question.grid.cellInputType="radio"):"division"==n.question.type?(n.computeDivisionSum=function(){n.divisionSum=0,n.question.divisionList.forEach(function(e){0==n.questionResponse[e.id]||n.questionResponse[e.id]?n.divisionSum+=n.questionResponse[e.id]:(n.questionResponse[e.id]=null,n.divisionSum+=0)})},n.computeDivisionSum()):"date"!=n.question.type&&"datetime"!=n.question.type&&"time"!=n.question.type||n.questionResponse.answer&&(n.questionResponse.answer=new Date(n.questionResponse.answer)),n.isAnswerSelected=!1,n.initialized=!0},n.selectedAnswerChanged=function(){delete n.questionResponse.other,n.isOtherAnswer=!1,n.answerChanged()},n.otherAnswerRadioChanged=function(){n.isOtherAnswer&&(n.questionResponse.selectedAnswer=null),n.answerChanged()},n.otherAnswerCheckboxChanged=function(){n.isOtherAnswer||delete n.questionResponse.other,n.selectedAnswer=!(!n.questionResponse.selectedAnswers.length&&!n.isOtherAnswer)||null,n.answerChanged()},n.toggleSelectedAnswer=function(e){-1===n.questionResponse.selectedAnswers.indexOf(e.id)?n.questionResponse.selectedAnswers.push(e.id):n.questionResponse.selectedAnswers.splice(n.questionResponse.selectedAnswers.indexOf(e.id),1),n.selectedAnswer=!(!n.questionResponse.selectedAnswers.length&&!n.isOtherAnswer)||null,n.answerChanged()},n.answerChanged=function(){n.onResponseChanged&&n.onResponseChanged()},1===angular.version.major&&angular.version.minor<5&&this.$onInit()}],link:function(e,t,n,i){e.ctrl.print=i.print}}}),angular.module("mwFormViewer").directive("mwFormConfirmationPage",function(){return{replace:!0,restrict:"AE",require:"^mwFormViewer",scope:{submitStatus:"=",confirmationMessage:"=",readOnly:"=?"},templateUrl:"mw-form-confirmation-page.html",controllerAs:"ctrl",bindToController:!0,controller:function(){},link:function(e,t,n,i){e.ctrl.print=i.print}}}),angular.module("mwFormViewer").run(["$templateCache",function(e){e.put("mw-form-confirmation-page.html","<div class=mw-form-confirmation-page><div class=mw-confirmation-message ng-if=\"ctrl.submitStatus=='SUCCESS'\"><span ng-if=ctrl.confirmationMessage>{{::ctrl.print(ctrl.confirmationMessage)}}</span> <span ng-if=!ctrl.confirmationMessage translate=mwForm.confirmationPage.defaultMessage>Twoja odpowiedź została zapisana</span></div><div class=mw-error-message ng-if=\"ctrl.submitStatus=='ERROR'\"><span translate=mwForm.confirmationPage.errorMessage>Bład. Twoja odpowiedź nie została zapisana.</span></div><div class=mw-pending-message ng-if=\"ctrl.submitStatus=='IN_PROGRESS'\"><span translate=mwForm.confirmationPage.pendingMessage>Zapisywanie odpowiedzi w trakcie.</span></div></div>"),e.put("mw-form-question.html",'<div class=mw-form-question><div class=mw-question-text>{{::ctrl.print(ctrl.question.text)}} <span ng-if=ctrl.question.required>*</span></div><div class=mw-question-answers ng-switch=ctrl.question.type><div ng-switch-when=text><md-input-container class=md-block md-no-float><input class=form-control type=text ng-model=ctrl.questionResponse.answer placeholder="{{\'mwForm.question.preview.text\'|translate}}" ng-required=ctrl.question.required ng-readonly=ctrl.readOnly></md-input-container></div><div ng-switch-when=textarea><md-input-container class=md-block md-no-float><textarea msd-elastic class=form-control ng-model=ctrl.questionResponse.answer placeholder="{{\'mwForm.question.preview.textarea\'|translate}}" ng-required=ctrl.question.required ng-readonly=ctrl.readOnly></textarea></md-input-container></div><div ng-switch-when=radio><md-radio-group ng-model=ctrl.questionResponse.selectedAnswer ng-required="ctrl.question.required &&!ctrl.isOtherAnswer" ng-disabled=ctrl.readOnly ng-change=ctrl.selectedAnswerChanged()><md-radio-button ng-repeat="answer in ctrl.question.offeredAnswers" aria-label="{{ answer.value }}" ng-value=answer.id name=answer-for-question-{{ctrl.question.id}} ng-readonly=ctrl.readOnly>{{::ctrl.print(answer.value)}}</md-radio-button></md-radio-group><md-radio-group ng-model=ctrl.isOtherAnswer ng-change=ctrl.otherAnswerRadioChanged() ng-disabled=ctrl.readOnly ng-readonly=ctrl.readOnly><div layout=row layout-align="start center" class=mw-question-other-answer ng-if=ctrl.question.otherAnswer><div><md-radio-button ng-model=ctrl.isOtherAnswer ng-value=true name=other-answer-for-question-{{ctrl.question.id}} ng-disabled=ctrl.readOnly ng-readonly=ctrl.readOnly><span translate=mwForm.question.preview.otherAnswer>Inna</span>:</md-radio-button></div><div><md-input-container><input type=text name=other-answer-for-question-{{ctrl.question.id}} ng-model=ctrl.questionResponse.other class=form-control ng-disabled="!ctrl.isOtherAnswer || ctrl.readOnly" ng-required=ctrl.isOtherAnswer></md-input-container></div></div></md-radio-group></div><div ng-switch-when=checkbox><div class=checkbox ng-repeat="answer in ::ctrl.question.offeredAnswers" ng-disabled=ctrl.readOnly ng-readonly=ctrl.readOnly><md-checkbox name=answer-for-question-{{ctrl.question.id}} ng-checked="ctrl.questionResponse.selectedAnswers.indexOf(answer.id) != -1" ng-click=ctrl.toggleSelectedAnswer(answer) ng-disabled=ctrl.readOnly ng-readonly=ctrl.readOnly>{{::ctrl.print(answer.value)}}</md-checkbox></div><div layout=row layout-align="start center" class=mw-question-other-answer ng-if=ctrl.question.otherAnswer><md-checkbox name=answer-for-question-{{ctrl.question.id}} ng-model=ctrl.isOtherAnswer ng-change=ctrl.otherAnswerCheckboxChanged() ng-readonly=ctrl.readOnly ng-disabled=ctrl.readOnly><span translate=mwForm.question.preview.otherAnswer>Inna</span>:</md-checkbox><div><md-input-container><input type=text ng-model=ctrl.questionResponse.other name=other-answer-for-question-{{ctrl.question.id}} class=form-control ng-disabled="!ctrl.isOtherAnswer || ctrl.readOnly" ng-required=ctrl.isOtherAnswer></md-input-container></div></div><input type=hidden ng-model=ctrl.selectedAnswer ng-required="ctrl.question.required &&!ctrl.isOtherAnswer"></div><div ng-switch-when=select><md-input-container><md-select ng-disabled=ctrl.readOnly ng-required=ctrl.question.required ng-model=ctrl.questionResponse.selectedAnswer><md-option ng-repeat="answer in ctrl.question.offeredAnswers" ng-value=answer.id>{{::ctrl.print(answer.value)}}</md-option></md-select></md-input-container></div><div ng-switch-when=grid><div><table class="mw-data-table mw-no-border" border=0 cellpadding=5 cellspacing=0><thead><tr><td></td><td ng-repeat="col in ::ctrl.question.grid.cols"><label>{{::ctrl.print(col.label)}}</label></td></tr></thead><tbody><tr ng-repeat="row in ::ctrl.question.grid.rows"><td>{{::ctrl.print(row.label)}}</td><td ng-repeat="col in ctrl.question.grid.cols" ng-switch=ctrl.question.grid.cellInputType><md-radio-group ng-switch-when=radio ng-model=ctrl.questionResponse[row.id] ng-required=ctrl.question.required ng-disabled=ctrl.readOnly><md-radio-button ng-value=col.id name=answer-for-question-{{row.id}} ng-disabled=ctrl.readOnly></md-radio-button></md-radio-group><div ng-switch-when=checkbox><md-checkbox ng-model=ctrl.questionResponse[row.id][col.id] name=answer-for-question-{{row.id}}-{{col.id}} ng-required=ctrl.question.required ng-disabled=ctrl.readOnly></md-checkbox></div><md-input-container ng-switch-default><input ng-attr-type={{ctrl.question.grid.cellInputType}} ng-model=ctrl.questionResponse[row.id][col.id] name=answer-for-question-{{row.id}}-{{col.id}} ng-required=ctrl.question.required ng-disabled=ctrl.readOnly></md-input-container></td></tr></tbody></table></div></div><div ng-switch-when=division class=mw-division-list ng-form=ctrl.divisionForm><div class=form-inline style="margin-bottom: 5px" ng-repeat="item in ctrl.question.divisionList"><div class=form-group><label>{{::ctrl.print(item.value)}}</label><md-input-container md-no-float><input type=number class=form-control ng-model=ctrl.questionResponse[item.id] min=0 max={{ctrl.question.quantity}} required style="width: 80px" ng-change=ctrl.computeDivisionSum() ng-readonly=ctrl.readOnly></md-input-container><span>{{::ctrl.print(ctrl.question.unit)}}</span></div></div><div class=form-inline style="margin-bottom: 5px"><div class=form-group><label translate=mwForm.question.division.assignedSumLabel>Przydzielono</label><md-input-container md-no-float><input type=number class="form-control strict-validation" ng-model=ctrl.divisionSum min={{ctrl.question.quantity}} max={{ctrl.question.quantity}} style="width: 80px" readonly></md-input-container><span>{{ctrl.question.unit}} <span translate=mwForm.question.division.fromRequiredLabel>z wymaganych</span> <strong>{{ctrl.question.quantity}}</strong> {{ctrl.question.unit}} <i ng-show=ctrl.divisionForm.$valid class="fa fa-check" style=color:#008000;></i></span></div></div></div><mw-priority-list ng-switch-when=priority question-response=ctrl.questionResponse question=ctrl.question read-only=ctrl.readOnly></mw-priority-list><div ng-switch-when=number class=form-inline><md-input-container><input class=form-control min={{ctrl.question.min}} max={{ctrl.question.max}} type=number ng-model=ctrl.questionResponse.answer ng-required=ctrl.question.required ng-readonly=ctrl.readOnly></md-input-container></div><div ng-switch-when=date class=form-inline><md-input-container><input class=form-control type=date ng-model=ctrl.questionResponse.answer ng-required=ctrl.question.required ng-readonly=ctrl.readOnly></md-input-container></div><div ng-switch-when=datetime class=form-inline><md-input-container><input class=form-control type=datetime ng-model=ctrl.questionResponse.answer ng-required=ctrl.question.required ng-readonly=ctrl.readOnly></md-input-container></div><div ng-switch-when=time class=form-inline><md-input-container><input class=form-control type=time ng-model=ctrl.questionResponse.answer ng-required=ctrl.question.required ng-readonly=ctrl.readOnly></md-input-container></div><div ng-switch-when=email class=form-inline><md-input-container><input class=form-control type=email ng-model=ctrl.questionResponse.answer ng-required=ctrl.question.required ng-readonly=ctrl.readOnly></md-input-container></div><div ng-switch-when=range class=mw-range><md-slider min={{ctrl.question.min}} max={{ctrl.question.max}} type=range ng-model=ctrl.questionResponse.answer ng-required=ctrl.question.required ng-disabled=ctrl.readOnly></md-slider><strong class=mw-range-value-label>{{ctrl.questionResponse.answer}}</strong></div><div ng-switch-when=url class=form-inline><md-input-container><input class=form-control type=url ng-model=ctrl.questionResponse.answer ng-required=ctrl.question.required ng-readonly=ctrl.readOnly></md-input-container></div></div></div>'),e.put("mw-form-viewer-content.html",'<div class=mw-form-viewer-content><h1 class=form-title>{{ctrl.formData.name}}</h1><div class=mw-title-page ng-if="!ctrl.currentPage && !ctrl.formSubmitted"><div class=mw-form-description>{{ctrl.formData.description}}</div><md-button type=button class="md-raised begin-response-button" ng-click=ctrl.beginResponse() translate=mwForm.buttons.begin>Rozpocznij</md-button></div><div class=mw-form-page ng-if=ctrl.currentPage><h2 class=mw-page-title ng-if="ctrl.currentPage.namedPage && ctrl.currentPage.name">{{ctrl.currentPage.name}}</h2><div class=mw-form-page-element-list><div class=mw-page-element ng-repeat="pageElement in ctrl.currentPage.elements" ng-switch=pageElement.type><mw-form-question ng-switch-when=question question=pageElement.question question-response=ctrl.responseData[pageElement.question.id] read-only=ctrl.readOnly on-response-changed=ctrl.onResponseChanged(pageElement)></mw-form-question><div class=image-element ng-switch-when=image><figure ng-class="\'align-\'+pageElement.image.align"><img ng-src={{pageElement.image.src}} ng-attr-alt=pageElement.image.caption><figcaption ng-if=pageElement.image.caption>{{pageElement.image.caption}}</figcaption></figure></div><div ng-switch-when=paragraph><p ng-bind-html=::ctrl.print(pageElement.paragraph.html)></p></div></div></div></div><mw-form-confirmation-page ng-if=ctrl.formSubmitted confirmation-message=ctrl.formData.confirmationMessage submit-status=ctrl.submitStatus></mw-form-confirmation-page><div class=mw-form-action-list><md-button type=button ng-if=ctrl.buttons.prevPage.visible class="md-raised prev-page-button" ng-click=ctrl.goToPrevPage()><i class="fa fa-chevron-left"></i> <span translate=mwForm.buttons.back>Wstecz</span></md-button><md-button type=button ng-disabled=ctrl.form.$invalid ng-if=ctrl.buttons.nextPage.visible class="md-raised next-page-button" ng-click=ctrl.goToNextPage()><span translate=mwForm.buttons.next>Dalej</span> <i class="fa fa-chevron-right"></i></md-button><md-button type=submit ng-disabled="ctrl.options.disableSubmit || ctrl.form.$invalid" ng-if="ctrl.buttons.submitForm.visible && !ctrl.readOnly" class="md-raised next-page-button" ng-click=ctrl.submitForm()><span translate=mwForm.buttons.submit>Submit</span></md-button></div></div>'),e.put("mw-form-viewer.html","<div class=mw-form-viewer><form ng-if=!ctrl.options.nestedForm name=ctrl.form role=form novalidate ng-include=\"'mw-form-viewer-content.html'\"></form><div ng-if=ctrl.options.nestedForm ng-form=ctrl.form ng-include=\"'mw-form-viewer-content.html'\"></div></div>"),e.put("mw-priority-list.html",'<div class=mw-priority-list><table><thead><tr><th translate=mwForm.question.priority.sorted>Sorted</th><th translate=mwForm.question.priority.available>Available</th></tr></thead><tbody><tr><td class=mw-ordered-items ng-sortable=ctrl.orderedConfig ng-model=ctrl.questionResponse.priorityList><div class=mw-item ng-repeat="item in ctrl.questionResponse.priorityList"><strong>{{$index+1}}.</strong> {{::ctrl.print(ctrl.idToItem[item.id].value)}}</div></td><td class=mw-available-items ng-sortable=ctrl.availableConfig ng-model=ctrl.availableItems><div class=mw-item ng-repeat="item in ctrl.availableItems">{{::ctrl.print(ctrl.idToItem[item.id].value)}}</div></td></tr></tbody></table><input type=hidden ng-model=ctrl.allItemsOrdered ng-required=ctrl.question.required></div>')}]);
\ No newline at end of file
diff --git a/public/styles/32px.png b/public/styles/32px.png
new file mode 100644 (file)
index 0000000..1532715
Binary files /dev/null and b/public/styles/32px.png differ
diff --git a/public/styles/40px.png b/public/styles/40px.png
new file mode 100644 (file)
index 0000000..1959347
Binary files /dev/null and b/public/styles/40px.png differ
diff --git a/public/styles/app.c546075c.css b/public/styles/app.c546075c.css
new file mode 100644 (file)
index 0000000..a4bf058
--- /dev/null
@@ -0,0 +1 @@
+[data-ng-click],[ng-click],[x-ng-click]{cursor:pointer}.ms-container{width:100%!important}.ms-container .ms-list{height:380px!important}.ms-container .ms-selectable li.ms-elem-selectable,.ms-container .ms-selection li.ms-elem-selection{padding:6px 12px!important;height:34px!important}.ms-container .ms-search{height:34px;margin-bottom:5px;border:solid 1px #e5e5e5;background-color:#fff;box-shadow:none;width:100%;padding-left:6px}.ms-container .ms-footer{text-align:center}.no-border{border:none!important}.left .motion-spinner{border-top-color:#ea4c61!important;border-left-color:#ea4c61!important}.right .motion-spinner{border-top-color:#ea4c61!important;border-right-color:#ea4c61!important}body,html{height:100%;position:relative}body{margin:0;padding:0}[tabindex='-1']:focus{outline:0}.inset{padding:10px}a.md-no-style,button.md-no-style{font-weight:400;background-color:inherit;text-align:left;border:none;padding:0;margin:0}button,input,select,textarea{vertical-align:baseline}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{cursor:default}textarea{vertical-align:top;overflow:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box;-webkit-box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input:-webkit-autofill{text-shadow:none}.md-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;text-transform:none;width:1px}.md-shadow{position:absolute;top:0;left:0;bottom:0;right:0;border-radius:inherit;pointer-events:none}.md-shadow-bottom-z-1{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-shadow-bottom-z-2{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-shadow-animated.md-shadow{transition:box-shadow .28s cubic-bezier(.4,0,.2,1)}.md-ripple-container{pointer-events:none;position:absolute;overflow:hidden;left:0;top:0;width:100%;height:100%;transition:all .55s cubic-bezier(.25,.8,.25,1)}.md-ripple{position:absolute;transform:translate(-50%,-50%) scale(0);transform-origin:50% 50%;opacity:0;border-radius:50%}.md-ripple.md-ripple-placed{transition:margin .9s cubic-bezier(.25,.8,.25,1),border .9s cubic-bezier(.25,.8,.25,1),width .9s cubic-bezier(.25,.8,.25,1),height .9s cubic-bezier(.25,.8,.25,1),opacity .9s cubic-bezier(.25,.8,.25,1),transform .9s cubic-bezier(.25,.8,.25,1)}.md-ripple.md-ripple-scaled{transform:translate(-50%,-50%) scale(1)}.md-ripple.md-ripple-active,.md-ripple.md-ripple-full,.md-ripple.md-ripple-visible{opacity:.2}.md-ripple.md-ripple-remove{animation:md-remove-ripple .9s cubic-bezier(.25,.8,.25,1)}@keyframes md-remove-ripple{0%{opacity:.15}100%{opacity:0}}.md-padding{padding:8px}.md-margin{margin:8px}.md-scroll-mask{position:absolute;background-color:transparent;top:0;right:0;bottom:0;left:0;z-index:50}.md-scroll-mask>.md-scroll-mask-bar{display:block;position:absolute;background-color:#fafafa;right:0;top:0;bottom:0;z-index:65;box-shadow:inset 0 0 1px rgba(0,0,0,.3)}.md-no-momentum{-webkit-overflow-scrolling:auto}.md-no-flicker{-webkit-filter:blur(0)}@media (min-width:960px){.md-padding{padding:16px}}body[dir=ltr],body[dir=rtl],html[dir=ltr],html[dir=rtl]{unicode-bidi:embed}bdo[dir=rtl]{direction:rtl;unicode-bidi:bidi-override}bdo[dir=ltr]{direction:ltr;unicode-bidi:bidi-override}body,html{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;min-height:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.md-display-4{font-size:112px;font-weight:300;letter-spacing:-.010em;line-height:112px}.md-display-3{font-size:56px;font-weight:400;letter-spacing:-.005em;line-height:56px}.md-display-2{font-size:45px;font-weight:400;line-height:64px}.md-display-1{font-size:34px;font-weight:400;line-height:40px}.md-headline{font-size:24px;font-weight:400;line-height:32px}.md-title{font-size:20px;font-weight:500;letter-spacing:.005em}.md-subhead{font-size:16px;font-weight:400;letter-spacing:.010em;line-height:24px}.md-body-1{font-size:14px;font-weight:400;letter-spacing:.010em;line-height:20px}.md-body-2{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:24px}.md-caption{font-size:12px;letter-spacing:.020em}.md-button{letter-spacing:.010em}button,html,input,select,textarea{font-family:Roboto,"Helvetica Neue",sans-serif}button,input,select,textarea{font-size:100%}@keyframes md-autocomplete-list-out{0%{animation-timing-function:linear}50%{opacity:0;height:40px;animation-timing-function:ease-in}100%{height:0;opacity:0}}@keyframes md-autocomplete-list-in{0%{opacity:0;height:0;animation-timing-function:ease-out}50%{opacity:0;height:40px}100%{opacity:1;height:40px}}md-autocomplete{border-radius:2px;display:block;height:40px;position:relative;overflow:visible;min-width:190px}md-autocomplete[disabled] input{cursor:default}md-autocomplete[md-floating-label]{border-radius:0;background:0 0;height:auto}md-autocomplete[md-floating-label] md-input-container{padding-bottom:0}md-autocomplete[md-floating-label] md-autocomplete-wrap{height:auto}md-autocomplete[md-floating-label] button{position:absolute;top:auto;bottom:0;right:0;width:30px;height:30px}md-autocomplete md-autocomplete-wrap{display:flex;flex-direction:row;box-sizing:border-box;position:relative;overflow:visible;height:40px}md-autocomplete md-autocomplete-wrap.md-menu-showing{z-index:51}md-autocomplete md-autocomplete-wrap input,md-autocomplete md-autocomplete-wrap md-input-container{flex:1 1 0%;box-sizing:border-box;min-width:0}md-autocomplete md-autocomplete-wrap md-progress-linear{position:absolute;bottom:-2px;left:0}md-autocomplete md-autocomplete-wrap md-progress-linear.md-inline{bottom:40px;right:2px;left:2px;width:auto}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate{position:absolute;top:0;left:0;width:100%;height:3px;transition:none}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate .md-container{transition:none;height:3px}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-enter.ng-enter-active{opacity:1}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave{transition:opacity .15s linear}md-autocomplete md-autocomplete-wrap md-progress-linear .md-mode-indeterminate.ng-leave.ng-leave-active{opacity:0}md-autocomplete input:not(.md-input){font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;width:100%;padding:0 15px;line-height:40px;height:40px}md-autocomplete input:not(.md-input)::-ms-clear{display:none}md-autocomplete button{position:relative;line-height:20px;text-align:center;width:30px;height:30px;cursor:pointer;border:none;border-radius:50%;padding:0;font-size:12px;background:0 0;margin:auto 5px}md-autocomplete button:after{content:'';position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;transform:scale(0);opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-autocomplete button:focus{outline:0}md-autocomplete button:focus:after{transform:scale(1);opacity:1}md-autocomplete button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0) scale(.9)}md-autocomplete button md-icon path{stroke-width:0}md-autocomplete button.ng-enter{transform:scale(0);transition:transform .15s ease-out}md-autocomplete button.ng-enter.ng-enter-active{transform:scale(1)}md-autocomplete button.ng-leave{transition:transform .15s ease-out}md-autocomplete button.ng-leave.ng-leave-active{transform:scale(0)}@media screen and (-ms-high-contrast:active){md-autocomplete input{border:1px solid #fff}md-autocomplete li:focus{color:#fff}}.md-virtual-repeat-container.md-autocomplete-suggestions-container{position:absolute;box-shadow:0 2px 5px rgba(0,0,0,.25);height:225.5px;max-height:225.5px;z-index:100}.md-virtual-repeat-container.md-not-found{height:48px}.md-autocomplete-suggestions{margin:0;list-style:none;padding:0}.md-autocomplete-suggestions li{font-size:14px;overflow:hidden;padding:0 15px;line-height:48px;height:48px;transition:background .15s linear;margin:0;white-space:nowrap;text-overflow:ellipsis}.md-autocomplete-suggestions li:focus{outline:0}.md-autocomplete-suggestions li:not(.md-not-found-wrapper){cursor:pointer}@media screen and (-ms-high-contrast:active){.md-autocomplete-suggestions,md-autocomplete{border:1px solid #fff}}md-backdrop{transition:opacity 450ms;position:absolute;top:0;bottom:0;left:0;right:0;z-index:50}md-backdrop.md-menu-backdrop{position:fixed!important;z-index:99}md-backdrop.md-select-backdrop{z-index:81;transition-duration:0}md-backdrop.md-dialog-backdrop{z-index:79}md-backdrop.md-bottom-sheet-backdrop{z-index:69}md-backdrop.md-sidenav-backdrop{z-index:59}md-backdrop.md-click-catcher{position:absolute}md-backdrop.md-opaque{opacity:.48}md-backdrop.md-opaque.ng-enter{opacity:0}md-backdrop.md-opaque.ng-enter.md-opaque.ng-enter-active{opacity:.48}md-backdrop.md-opaque.ng-leave{opacity:.48;transition:opacity .4s}md-backdrop.md-opaque.ng-leave.md-opaque.ng-leave-active{opacity:0}md-bottom-sheet{position:absolute;left:0;right:0;bottom:0;padding:8px 16px 88px 16px;z-index:70;border-top-width:1px;border-top-style:solid;transform:translate3d(0,80px,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:transform}md-bottom-sheet.md-has-header{padding-top:0}md-bottom-sheet.ng-enter{opacity:0;transform:translate3d(0,100%,0)}md-bottom-sheet.ng-enter-active{opacity:1;display:block;transform:translate3d(0,80px,0)!important}md-bottom-sheet.ng-leave-active{transform:translate3d(0,100%,0)!important;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-bottom-sheet .md-subheader{background-color:transparent;font-family:Roboto,"Helvetica Neue",sans-serif;line-height:56px;padding:0;white-space:nowrap}md-bottom-sheet md-inline-icon{display:inline-block;height:24px;width:24px;fill:#444}md-bottom-sheet md-list-item{display:flex;outline:0}md-bottom-sheet md-list-item:hover{cursor:pointer}md-bottom-sheet.md-list md-list-item{padding:0;align-items:center;height:48px}md-bottom-sheet.md-grid{padding-left:24px;padding-right:24px;padding-top:0}md-bottom-sheet.md-grid md-list{display:flex;flex-direction:row;flex-wrap:wrap;transition:all .5s;align-items:center}md-bottom-sheet.md-grid md-list-item{flex-direction:column;align-items:center;transition:all .5s;height:96px;margin-top:8px;margin-bottom:8px}@media (max-width:960px){md-bottom-sheet.md-grid md-list-item{flex:1 1 33.3333333333%;max-width:33.3333333333%}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n+1){align-items:flex-start}md-bottom-sheet.md-grid md-list-item:nth-of-type(3n){align-items:flex-end}}@media (min-width:960px) and (max-width:1279px){md-bottom-sheet.md-grid md-list-item{flex:1 1 25%;max-width:25%}}@media (min-width:1280px) and (max-width:1919px){md-bottom-sheet.md-grid md-list-item{flex:1 1 16.6666666667%;max-width:16.6666666667%}}@media (min-width:1920px){md-bottom-sheet.md-grid md-list-item{flex:1 1 14.2857142857%;max-width:14.2857142857%}}md-bottom-sheet.md-grid md-list-item::before{display:none}md-bottom-sheet.md-grid md-list-item .md-list-item-content{display:flex;flex-direction:column;align-items:center;width:48px;padding-bottom:16px}md-bottom-sheet.md-grid md-list-item .md-grid-item-content{border:1px solid transparent;display:flex;flex-direction:column;align-items:center;width:80px}md-bottom-sheet.md-grid md-list-item .md-grid-text{font-weight:400;line-height:16px;font-size:13px;margin:0;white-space:nowrap;width:64px;text-align:center;text-transform:none;padding-top:8px}@media screen and (-ms-high-contrast:active){md-bottom-sheet{border:1px solid #fff}}button.md-button::-moz-focus-inner{border:0}.md-button{display:inline-block;position:relative;cursor:pointer;min-height:36px;min-width:88px;line-height:36px;vertical-align:middle;align-items:center;text-align:center;border-radius:3px;box-sizing:border-box;user-select:none;outline:0;border:0;padding:0 6px;margin:6px 8px;background:0 0;color:currentColor;white-space:nowrap;text-transform:uppercase;font-weight:500;font-size:14px;font-style:inherit;font-variant:inherit;font-family:inherit;text-decoration:none;overflow:hidden;transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.md-button:focus{outline:0}.md-button:focus,.md-button:hover{text-decoration:none}.md-button.ng-hide,.md-button.ng-leave{transition:none}.md-button.md-cornered{border-radius:0}.md-button.md-icon{padding:0;background:0 0}.md-button.md-raised:not([disabled]){box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button.md-icon-button{margin:0 6px;height:40px;min-width:0;line-height:24px;padding:8px;width:40px;border-radius:50%}.md-button.md-icon-button .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab{z-index:20;line-height:56px;min-width:0;width:56px;height:56px;vertical-align:middle;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:50%;background-clip:padding-box;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-property:background-color,box-shadow,transform}.md-button.md-fab.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}.md-button.md-fab.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}.md-button.md-fab.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}.md-button.md-fab.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}.md-button.md-fab .md-ripple-container{border-radius:50%;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-fab.md-mini{line-height:40px;width:40px;height:40px}.md-button.md-fab.ng-hide,.md-button.md-fab.ng-leave{transition:none}.md-button:not([disabled]).md-fab.md-focused,.md-button:not([disabled]).md-raised.md-focused{box-shadow:0 2px 5px 0 rgba(0,0,0,.26)}.md-button:not([disabled]).md-fab:active,.md-button:not([disabled]).md-raised:active{box-shadow:0 4px 8px 0 rgba(0,0,0,.4)}.md-button .md-ripple-container{border-radius:3px;background-clip:padding-box;overflow:hidden;-webkit-mask-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC)}.md-button.md-icon-button md-icon,button.md-button.md-fab md-icon{display:block}.md-toast-open-top .md-button.md-fab-top-left,.md-toast-open-top .md-button.md-fab-top-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,42px,0)}.md-toast-open-top .md-button.md-fab-top-left:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-left:not([disabled]):hover,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]).md-focused,.md-toast-open-top .md-button.md-fab-top-right:not([disabled]):hover{transform:translate3d(0,41px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left,.md-toast-open-bottom .md-button.md-fab-bottom-right{transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate3d(0,-42px,0)}.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-left:not([disabled]):hover,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]).md-focused,.md-toast-open-bottom .md-button.md-fab-bottom-right:not([disabled]):hover{transform:translate3d(0,-43px,0)}.md-button-group{display:flex;flex:1;width:100%}.md-button-group>.md-button{flex:1;display:block;overflow:hidden;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.md-button-group>.md-button:first-child{border-radius:2px 0 0 2px}.md-button-group>.md-button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}@media screen and (-ms-high-contrast:active){.md-button.md-fab,.md-button.md-raised{border:1px solid #fff}}md-card{box-sizing:border-box;display:flex;flex-direction:column;margin:8px;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-card md-card-header{padding:16px;display:flex;flex-direction:row}md-card md-card-header:first-child md-card-avatar{margin-right:12px}[dir=rtl] md-card md-card-header:first-child md-card-avatar{margin-right:auto;margin-left:12px}md-card md-card-header:last-child md-card-avatar{margin-left:12px}[dir=rtl] md-card md-card-header:last-child md-card-avatar{margin-left:auto;margin-right:12px}md-card md-card-header md-card-avatar{width:40px;height:40px}md-card md-card-header md-card-avatar .md-user-avatar,md-card md-card-header md-card-avatar md-icon{border-radius:50%}md-card md-card-header md-card-avatar md-icon{padding:8px}md-card md-card-header md-card-avatar+md-card-header-text{max-height:40px}md-card md-card-header md-card-avatar+md-card-header-text .md-title{font-size:14px}md-card md-card-header md-card-header-text{display:flex;flex:1;flex-direction:column}md-card md-card-header md-card-header-text .md-subhead{font-size:14px}md-card md-card-title-media img,md-card>img,md-card>md-card-header img{box-sizing:border-box;display:flex;flex:0 0 auto;width:100%;height:auto}md-card md-card-title{padding:24px 16px 16px;display:flex;flex:1 1 auto;flex-direction:row}md-card md-card-title+md-card-content{padding-top:0}md-card md-card-title md-card-title-text{flex:1;flex-direction:column;display:flex}md-card md-card-title md-card-title-text .md-subhead{padding-top:0;font-size:14px}md-card md-card-title md-card-title-text:only-child .md-subhead{padding-top:12px}md-card md-card-title md-card-title-media{margin-top:-8px}md-card md-card-title md-card-title-media .md-media-sm{height:80px;width:80px}md-card md-card-title md-card-title-media .md-media-md{height:112px;width:112px}md-card md-card-title md-card-title-media .md-media-lg{height:152px;width:152px}md-card md-card-content{display:block;padding:16px}md-card md-card-content>p:first-child{margin-top:0}md-card md-card-content>p:last-child{margin-bottom:0}md-card md-card-content .md-media-xl{height:240px;width:240px}md-card .md-actions,md-card md-card-actions{margin:8px}md-card .md-actions.layout-column .md-button:not(.md-icon-button),md-card md-card-actions.layout-column .md-button:not(.md-icon-button){margin:2px 0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):first-of-type{margin-top:0}md-card .md-actions.layout-column .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions.layout-column .md-button:not(.md-icon-button):last-of-type{margin-bottom:0}md-card .md-actions.layout-column .md-button.md-icon-button,md-card md-card-actions.layout-column .md-button.md-icon-button{margin-top:6px;margin-bottom:6px}md-card .md-actions md-card-icon-actions,md-card md-card-actions md-card-icon-actions{flex:1;justify-content:flex-start;display:flex;flex-direction:row}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button),md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button){margin:0 4px}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):first-of-type{margin-left:auto;margin-right:0}md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:0}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button:not(.md-icon-button):last-of-type{margin-right:auto;margin-left:0}md-card .md-actions:not(.layout-column) .md-button.md-icon-button,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button{margin-left:6px;margin-right:6px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:first-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:first-of-type{margin-left:auto;margin-right:12px}md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:12px}[dir=rtl] md-card .md-actions:not(.layout-column) .md-button.md-icon-button:last-of-type,[dir=rtl] md-card md-card-actions:not(.layout-column) .md-button.md-icon-button:last-of-type{margin-right:auto;margin-left:12px}md-card .md-actions:not(.layout-column) .md-button+md-card-icon-actions,md-card md-card-actions:not(.layout-column) .md-button+md-card-icon-actions{flex:1;justify-content:flex-end;display:flex;flex-direction:row}md-card md-card-footer{margin-top:auto;padding:16px}@media screen and (-ms-high-contrast:active){md-card{border:1px solid #fff}}.md-image-no-fill>img{width:auto;height:auto}.md-contact-chips .md-chips md-chip{padding:0 25px 0 0}[dir=rtl] .md-contact-chips .md-chips md-chip{padding:0 0 0 25px}.md-contact-chips .md-chips md-chip .md-contact-avatar{float:left}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-avatar{float:right}.md-contact-chips .md-chips md-chip .md-contact-avatar img{height:32px;border-radius:16px}.md-contact-chips .md-chips md-chip .md-contact-name{display:inline-block;height:32px;margin-left:8px}[dir=rtl] .md-contact-chips .md-chips md-chip .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion{height:56px}.md-contact-suggestion img{height:40px;border-radius:20px;margin-top:8px}.md-contact-suggestion .md-contact-name{margin-left:8px;width:120px}[dir=rtl] .md-contact-suggestion .md-contact-name{margin-left:auto;margin-right:8px}.md-contact-suggestion .md-contact-email,.md-contact-suggestion .md-contact-name{display:inline-block;overflow:hidden;text-overflow:ellipsis}.md-contact-chips-suggestions li{height:100%}.md-chips{display:block;font-family:Roboto,"Helvetica Neue",sans-serif;font-size:16px;padding:0 0 8px 3px;vertical-align:middle}.md-chips:after{content:'';display:table;clear:both}[dir=rtl] .md-chips{padding:0 3px 8px 0}.md-chips.md-readonly .md-chip-input-container{min-height:32px}.md-chips:not(.md-readonly){cursor:text}.md-chips.md-removable md-chip{padding-right:22px}[dir=rtl] .md-chips.md-removable md-chip{padding-right:0;padding-left:22px}.md-chips.md-removable md-chip .md-chip-content{padding-right:4px}[dir=rtl] .md-chips.md-removable md-chip .md-chip-content{padding-right:0;padding-left:4px}.md-chips md-chip{cursor:default;border-radius:16px;display:block;height:32px;line-height:32px;margin:8px 8px 0 0;padding:0 12px 0 12px;float:left;box-sizing:border-box;max-width:100%;position:relative}[dir=rtl] .md-chips md-chip{margin:8px 0 0 8px}[dir=rtl] .md-chips md-chip{float:right}.md-chips md-chip .md-chip-content{display:block;float:left;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-chips md-chip .md-chip-content{float:right}.md-chips md-chip .md-chip-content:focus{outline:0}.md-chips md-chip._md-chip-content-edit-is-enabled{-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none}.md-chips md-chip .md-chip-remove-container{position:absolute;right:0;line-height:22px}[dir=rtl] .md-chips md-chip .md-chip-remove-container{right:auto;left:0}.md-chips md-chip .md-chip-remove{text-align:center;width:32px;height:32px;min-width:0;padding:0;background:0 0;border:none;box-shadow:none;margin:0;position:relative}.md-chips md-chip .md-chip-remove md-icon{height:18px;width:18px;position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.md-chips .md-chip-input-container{display:block;line-height:32px;margin:8px 8px 0 0;padding:0;float:left}[dir=rtl] .md-chips .md-chip-input-container{margin:8px 0 0 8px}[dir=rtl] .md-chips .md-chip-input-container{float:right}.md-chips .md-chip-input-container input:not([type]),.md-chips .md-chip-input-container input[type=email],.md-chips .md-chip-input-container input[type=number],.md-chips .md-chip-input-container input[type=tel],.md-chips .md-chip-input-container input[type=text],.md-chips .md-chip-input-container input[type=url]{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:not([type]):focus,.md-chips .md-chip-input-container input[type=email]:focus,.md-chips .md-chip-input-container input[type=number]:focus,.md-chips .md-chip-input-container input[type=tel]:focus,.md-chips .md-chip-input-container input[type=text]:focus,.md-chips .md-chip-input-container input[type=url]:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{background:0 0;height:32px}.md-chips .md-chip-input-container md-autocomplete md-autocomplete-wrap{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container input{border:0;height:32px;line-height:32px;padding:0}.md-chips .md-chip-input-container input:focus{outline:0}.md-chips .md-chip-input-container md-autocomplete,.md-chips .md-chip-input-container md-autocomplete-wrap{height:32px}.md-chips .md-chip-input-container md-autocomplete{box-shadow:none}.md-chips .md-chip-input-container md-autocomplete input{position:relative}.md-chips .md-chip-input-container:not(:first-child){margin:8px 8px 0 0}[dir=rtl] .md-chips .md-chip-input-container:not(:first-child){margin:8px 0 0 8px}.md-chips .md-chip-input-container input{background:0 0;border-width:0}.md-chips md-autocomplete button{display:none}@media screen and (-ms-high-contrast:active){.md-chip-input-container,md-chip{border:1px solid #fff}.md-chip-input-container md-autocomplete{border:none}}.md-inline-form md-checkbox{margin:19px 0 18px}md-checkbox{box-sizing:border-box;display:inline-block;margin-bottom:16px;white-space:nowrap;cursor:pointer;outline:0;user-select:none;position:relative;min-width:20px;min-height:20px;margin-left:0;margin-right:16px}[dir=rtl] md-checkbox{margin-left:16px}[dir=rtl] md-checkbox{margin-right:0}md-checkbox:last-of-type{margin-left:0;margin-right:0}md-checkbox.md-focused:not([disabled]) .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-checkbox.md-focused:not([disabled]):not(.md-checked) .md-container:before{background-color:rgba(0,0,0,.12)}md-checkbox.md-align-top-left>div.md-container{top:12px}md-checkbox .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-checkbox .md-container{left:auto}[dir=rtl] md-checkbox .md-container{right:0}md-checkbox .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-checkbox .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-checkbox .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-checkbox .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-checkbox.md-checked .md-icon{border-color:transparent}md-checkbox.md-checked .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox[disabled]{cursor:default}md-checkbox.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-checkbox .md-label{box-sizing:border-box;position:relative;display:inline-block;vertical-align:middle;white-space:normal;user-select:text;margin-left:30px;margin-right:0}[dir=rtl] md-checkbox .md-label{margin-left:0}[dir=rtl] md-checkbox .md-label{margin-right:30px}md-content{display:block;position:relative;overflow:auto;-webkit-overflow-scrolling:touch}md-content[md-scroll-y]{overflow-y:auto;overflow-x:hidden}md-content[md-scroll-x]{overflow-x:auto;overflow-y:hidden}@media print{md-content{overflow:visible!important}}md-calendar{font-size:13px;user-select:none}.md-calendar-scroll-mask{display:inline-block;overflow:hidden;height:308px}.md-calendar-scroll-mask .md-virtual-repeat-scroller{overflow-y:scroll;-webkit-overflow-scrolling:touch}.md-calendar-scroll-mask .md-virtual-repeat-scroller::-webkit-scrollbar{display:none}.md-calendar-scroll-mask .md-virtual-repeat-offsetter{width:100%}.md-calendar-scroll-container{box-shadow:inset -3px 3px 6px rgba(0,0,0,.2);display:inline-block;height:308px;width:346px}.md-calendar-date{height:44px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box}.md-calendar-date:first-child{padding-left:16px}[dir=rtl] .md-calendar-date:first-child{padding-left:0;padding-right:16px}.md-calendar-date:last-child{padding-right:16px}[dir=rtl] .md-calendar-date:last-child{padding-right:0;padding-left:16px}.md-calendar-date.md-calendar-date-disabled{cursor:default}.md-calendar-date-selection-indicator{transition:background-color,color .4s cubic-bezier(.25,.8,.25,1);border-radius:50%;display:inline-block;width:40px;height:40px;line-height:40px}.md-calendar-date:not(.md-disabled) .md-calendar-date-selection-indicator{cursor:pointer}.md-calendar-month-label{height:44px;font-size:14px;font-weight:500;padding:0 0 0 24px}[dir=rtl] .md-calendar-month-label{padding:0 24px 0 0}md-calendar-month .md-calendar-month-label:not(.md-calendar-month-label-disabled){cursor:pointer}.md-calendar-month-label md-icon{transform:rotate(180deg)}[dir=rtl] .md-calendar-month-label md-icon{transform:none}.md-calendar-month-label span{vertical-align:middle}.md-calendar-day-header{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar-day-header th{height:40px;width:44px;text-align:center;padding:0;border:none;box-sizing:content-box;font-weight:400}.md-calendar-day-header th:first-child{padding-left:16px}[dir=rtl] .md-calendar-day-header th:first-child{padding-left:0;padding-right:16px}.md-calendar-day-header th:last-child{padding-right:16px}[dir=rtl] .md-calendar-day-header th:last-child{padding-right:0;padding-left:16px}.md-calendar{table-layout:fixed;border-spacing:0;border-collapse:collapse}.md-calendar tr:last-child td{border-bottom-width:1px;border-bottom-style:solid}.md-calendar:first-child{border-top:1px solid transparent}.md-calendar tbody,.md-calendar td,.md-calendar tr{vertical-align:middle;box-sizing:content-box}md-datepicker{white-space:nowrap;overflow:hidden;padding-right:18px;margin-right:-18px;vertical-align:middle}[dir=rtl] md-datepicker{padding-right:0;padding-left:18px}[dir=rtl] md-datepicker{margin-right:auto;margin-left:-18px}.md-inline-form md-datepicker{margin-top:12px}.md-datepicker-button{display:inline-block;box-sizing:border-box;background:0 0;vertical-align:middle;position:relative}.md-datepicker-button:before{top:0;left:0;bottom:0;right:0;position:absolute;content:'';speak:none}.md-datepicker-input{font-size:14px;box-sizing:border-box;border:none;box-shadow:none;outline:0;background:0 0;min-width:120px;max-width:328px;padding:0 0 5px}.md-datepicker-input::-ms-clear{display:none}._md-datepicker-floating-label>md-datepicker{overflow:visible}._md-datepicker-floating-label>md-datepicker .md-datepicker-input-container{border:none}._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:left;margin-top:-2.5px}[dir=rtl] ._md-datepicker-floating-label>md-datepicker .md-datepicker-button{float:right}._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:18px;left:auto;width:calc(100% - 84px)}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){right:auto}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon>label:not(.md-no-float):not(.md-container-ignore){left:18px}._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:64px}[dir=rtl] ._md-datepicker-floating-label._md-datepicker-has-calendar-icon .md-input-message-animation{margin-left:auto;margin-right:64px}.md-datepicker-input-container{position:relative;border-bottom-width:1px;border-bottom-style:solid;display:inline-block;width:auto}.md-icon-button+.md-datepicker-input-container{margin-left:12px}[dir=rtl] .md-icon-button+.md-datepicker-input-container{margin-left:auto;margin-right:12px}.md-datepicker-input-container.md-datepicker-focused{border-bottom-width:2px}.md-datepicker-is-showing .md-scroll-mask{z-index:99}.md-datepicker-calendar-pane{position:absolute;top:0;left:-100%;z-index:100;border-width:1px;border-style:solid;background:0 0;transform:scale(0);transform-origin:0 0;transition:transform .2s cubic-bezier(.25,.8,.25,1)}.md-datepicker-calendar-pane.md-pane-open{transform:scale(1)}.md-datepicker-input-mask{height:40px;width:340px;position:relative;overflow:hidden;background:0 0;pointer-events:none;cursor:text}.md-datepicker-calendar{opacity:0;transition:opacity .2s cubic-bezier(.5,0,.25,1)}.md-pane-open .md-datepicker-calendar{opacity:1}.md-datepicker-calendar md-calendar:focus{outline:0}.md-datepicker-expand-triangle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid}.md-datepicker-triangle-button{position:absolute;right:0;top:5px;transform:translateY(-25%) translateX(45%)}[dir=rtl] .md-datepicker-triangle-button{right:auto;left:0}[dir=rtl] .md-datepicker-triangle-button{transform:translateY(-25%) translateX(-45%)}.md-datepicker-triangle-button.md-button.md-icon-button{height:36px;width:36px;position:absolute;padding:8px}md-datepicker[disabled] .md-datepicker-input-container{border-bottom-color:transparent}md-datepicker[disabled] .md-datepicker-triangle-button{display:none}.md-datepicker-open{overflow:hidden}.md-datepicker-open .md-datepicker-input-container,.md-datepicker-open input.md-input{border-bottom-color:transparent}.md-datepicker-open .md-datepicker-triangle-button,.md-datepicker-open.md-input-has-placeholder>label,.md-datepicker-open.md-input-has-value>label{display:none}.md-datepicker-pos-adjusted .md-datepicker-input-mask{display:none}.md-datepicker-calendar-pane .md-calendar{transform:translateY(-85px);transition:transform .65s cubic-bezier(.25,.8,.25,1);transition-delay:125ms}.md-datepicker-calendar-pane.md-pane-open .md-calendar{transform:translateY(0)}.md-dialog-is-showing{max-height:100%}.md-dialog-container{display:flex;justify-content:center;align-items:center;position:absolute;top:0;left:0;width:100%;height:100%;z-index:80;overflow:hidden}md-dialog{opacity:0;min-width:240px;max-width:80%;max-height:80%;position:relative;overflow:auto;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);display:flex;flex-direction:column}md-dialog.md-transition-in{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,0) scale(1)}md-dialog.md-transition-out{opacity:0;transition:all .4s cubic-bezier(.25,.8,.25,1);transform:translate(0,100%) scale(.2)}md-dialog>form{display:flex;flex-direction:column;overflow:auto}md-dialog .md-dialog-content{padding:24px}md-dialog md-dialog-content{order:1;flex-direction:column;overflow:auto;-webkit-overflow-scrolling:touch}md-dialog md-dialog-content:not([layout=row])>:first-child:not(.md-subheader){margin-top:0}md-dialog md-dialog-content:focus{outline:0}md-dialog md-dialog-content .md-subheader{margin:0}md-dialog md-dialog-content .md-dialog-content-body{width:100%}md-dialog md-dialog-content .md-prompt-input-container{width:100%;box-sizing:border-box}md-dialog .md-actions,md-dialog md-dialog-actions{display:flex;order:2;box-sizing:border-box;align-items:center;justify-content:flex-end;margin-bottom:0;padding-right:8px;padding-left:16px;min-height:52px;overflow:hidden}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-right:16px}[dir=rtl] md-dialog .md-actions,[dir=rtl] md-dialog md-dialog-actions{padding-left:8px}md-dialog .md-actions .md-button,md-dialog md-dialog-actions .md-button{margin-bottom:8px;margin-left:8px;margin-right:0;margin-top:8px}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-left:0}[dir=rtl] md-dialog .md-actions .md-button,[dir=rtl] md-dialog md-dialog-actions .md-button{margin-right:8px}md-dialog.md-content-overflow .md-actions,md-dialog.md-content-overflow md-dialog-actions{border-top-width:1px;border-top-style:solid}@media screen and (-ms-high-contrast:active){md-dialog{border:1px solid #fff}}@media (max-width:959px){md-dialog.md-dialog-fullscreen{min-height:100%;min-width:100%;border-radius:0}}md-divider{display:block;border-top-width:1px;border-top-style:solid;margin:0}md-divider[md-inset]{margin-left:80px}[dir=rtl] md-divider[md-inset]{margin-left:auto;margin-right:80px}.layout-gt-lg-row>md-divider,.layout-gt-md-row>md-divider,.layout-gt-sm-row>md-divider,.layout-gt-xs-row>md-divider,.layout-lg-row>md-divider,.layout-md-row>md-divider,.layout-row>md-divider,.layout-sm-row>md-divider,.layout-xl-row>md-divider,.layout-xs-row>md-divider{border-top-width:0;border-right-width:1px;border-right-style:solid}md-fab-speed-dial{position:relative;display:flex;align-items:center;z-index:20}md-fab-speed-dial.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-speed-dial.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-speed-dial.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-speed-dial.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-speed-dial:not(.md-hover-full){pointer-events:none}md-fab-speed-dial:not(.md-hover-full) .md-fab-action-item,md-fab-speed-dial:not(.md-hover-full) md-fab-trigger{pointer-events:auto}md-fab-speed-dial:not(.md-hover-full).md-is-open{pointer-events:auto}md-fab-speed-dial ._md-css-variables{z-index:20}md-fab-speed-dial.md-is-open .md-fab-action-item{align-items:center}md-fab-speed-dial md-fab-actions{display:flex;height:auto}md-fab-speed-dial md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-down{flex-direction:column}md-fab-speed-dial.md-down md-fab-trigger{order:1}md-fab-speed-dial.md-down md-fab-actions{flex-direction:column;order:2}md-fab-speed-dial.md-up{flex-direction:column}md-fab-speed-dial.md-up md-fab-trigger{order:2}md-fab-speed-dial.md-up md-fab-actions{flex-direction:column-reverse;order:1}md-fab-speed-dial.md-left{flex-direction:row}md-fab-speed-dial.md-left md-fab-trigger{order:2}md-fab-speed-dial.md-left md-fab-actions{flex-direction:row-reverse;order:1}md-fab-speed-dial.md-left md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-right{flex-direction:row}md-fab-speed-dial.md-right md-fab-trigger{order:1}md-fab-speed-dial.md-right md-fab-actions{flex-direction:row;order:2}md-fab-speed-dial.md-right md-fab-actions .md-fab-action-item{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-speed-dial.md-fling-remove .md-fab-action-item>*,md-fab-speed-dial.md-scale-remove .md-fab-action-item>*{visibility:hidden}md-fab-speed-dial.md-fling .md-fab-action-item{opacity:1}md-fab-speed-dial.md-fling.md-animations-waiting .md-fab-action-item{opacity:0;transition-duration:0s}md-fab-speed-dial.md-scale .md-fab-action-item{transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.1428571429s}md-fab-toolbar{display:block}md-fab-toolbar.md-fab-bottom-right{top:auto;right:20px;bottom:20px;left:auto;position:absolute}md-fab-toolbar.md-fab-bottom-left{top:auto;right:auto;bottom:20px;left:20px;position:absolute}md-fab-toolbar.md-fab-top-right{top:20px;right:20px;bottom:auto;left:auto;position:absolute}md-fab-toolbar.md-fab-top-left{top:20px;right:auto;bottom:auto;left:20px;position:absolute}md-fab-toolbar .md-fab-toolbar-wrapper{display:block;position:relative;overflow:hidden;height:68px}md-fab-toolbar md-fab-trigger{position:absolute;z-index:20}md-fab-toolbar md-fab-trigger button{overflow:visible!important}md-fab-toolbar md-fab-trigger .md-fab-toolbar-background{display:block;position:absolute;z-index:21;opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2)}md-fab-toolbar md-fab-trigger md-icon{position:relative;z-index:22;opacity:1;transition:all .2s ease-in}md-fab-toolbar.md-left md-fab-trigger{right:0}[dir=rtl] md-fab-toolbar.md-left md-fab-trigger{right:auto;left:0}md-fab-toolbar.md-left .md-toolbar-tools{flex-direction:row-reverse}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:.6rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-right:auto;margin-left:.6rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:-.8rem}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-.8rem}md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:8px}[dir=rtl] md-fab-toolbar.md-left .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:8px}md-fab-toolbar.md-right md-fab-trigger{left:0}[dir=rtl] md-fab-toolbar.md-right md-fab-trigger{left:auto;right:0}md-fab-toolbar.md-right .md-toolbar-tools{flex-direction:row}md-fab-toolbar md-toolbar{background-color:transparent!important;pointer-events:none;z-index:23}md-fab-toolbar md-toolbar .md-toolbar-tools{padding:0 20px;margin-top:3px}md-fab-toolbar md-toolbar .md-fab-action-item{opacity:0;transform:scale(0);transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.15s}md-fab-toolbar.md-is-open md-fab-trigger>button{box-shadow:none}md-fab-toolbar.md-is-open md-fab-trigger>button md-icon{opacity:0}md-fab-toolbar.md-is-open .md-fab-action-item{opacity:1;transform:scale(1)}md-grid-list{box-sizing:border-box;display:block;position:relative}md-grid-list md-grid-tile,md-grid-list md-grid-tile-footer,md-grid-list md-grid-tile-header,md-grid-list md-grid-tile>figure{box-sizing:border-box}md-grid-list md-grid-tile{display:block;position:absolute}md-grid-list md-grid-tile figure{display:flex;align-items:center;justify-content:center;height:100%;position:absolute;top:0;right:0;bottom:0;left:0;padding:0;margin:0}md-grid-list md-grid-tile md-grid-tile-footer,md-grid-list md-grid-tile md-grid-tile-header{display:flex;flex-direction:row;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.18);overflow:hidden;position:absolute;left:0;right:0}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h3,md-grid-list md-grid-tile md-grid-tile-header h4{font-weight:400;margin:0 0 0 16px}md-grid-list md-grid-tile md-grid-tile-footer h3,md-grid-list md-grid-tile md-grid-tile-header h3{font-size:14px}md-grid-list md-grid-tile md-grid-tile-footer h4,md-grid-list md-grid-tile md-grid-tile-header h4{font-size:12px}md-grid-list md-grid-tile md-grid-tile-header{top:0}md-grid-list md-grid-tile md-grid-tile-footer{bottom:0}@media screen and (-ms-high-contrast:active){md-grid-tile{border:1px solid #fff}md-grid-tile-footer{border-top:1px solid #fff}}md-icon{margin:auto;background-repeat:no-repeat no-repeat;display:inline-block;vertical-align:middle;fill:currentColor;height:24px;width:24px;min-height:24px;min-width:24px}md-icon svg{pointer-events:none;display:block}md-icon[md-font-icon]{line-height:24px;width:auto}md-input-container{display:inline-block;position:relative;padding:2px;margin:18px 0;vertical-align:middle}md-input-container:after{content:'';display:table;clear:both}md-input-container.md-block{display:block}md-input-container .md-errors-spacer{float:right;min-height:24px;min-width:1px}[dir=rtl] md-input-container .md-errors-spacer{float:left}md-input-container>md-icon{position:absolute;top:8px;left:2px;right:auto}[dir=rtl] md-input-container>md-icon{left:auto}[dir=rtl] md-input-container>md-icon{right:2px}md-input-container input[type=color],md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=datetime],md-input-container input[type=email],md-input-container input[type=month],md-input-container input[type=number],md-input-container input[type=password],md-input-container input[type=search],md-input-container input[type=tel],md-input-container input[type=text],md-input-container input[type=time],md-input-container input[type=url],md-input-container input[type=week],md-input-container textarea{-moz-appearance:none;-webkit-appearance:none}md-input-container input[type=date],md-input-container input[type=datetime-local],md-input-container input[type=month],md-input-container input[type=time],md-input-container input[type=week]{min-height:26px}md-input-container textarea{resize:none;overflow:hidden}md-input-container textarea.md-input{min-height:26px;-ms-flex-preferred-size:auto}md-input-container textarea[md-no-autogrow]{height:auto;overflow:auto}md-input-container label:not(.md-container-ignore){position:absolute;bottom:100%;left:0;right:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){left:auto}[dir=rtl] md-input-container label:not(.md-container-ignore){right:0}md-input-container label:not(.md-container-ignore).md-required:after{content:' *';font-size:13px;vertical-align:top}md-input-container .md-placeholder,md-input-container label:not(.md-no-float):not(.md-container-ignore){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:3px;padding-right:0;z-index:1;transform:translate3d(0,28px,0) scale(1);transition:transform .4s cubic-bezier(.25,.8,.25,1);max-width:100%;transform-origin:left top}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-left:0}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){padding-right:3px}[dir=rtl] md-input-container .md-placeholder,[dir=rtl] md-input-container label:not(.md-no-float):not(.md-container-ignore){transform-origin:right top}md-input-container .md-placeholder{position:absolute;top:0;opacity:0;transition-property:opacity,transform;transform:translate3d(0,30px,0)}md-input-container.md-input-focused .md-placeholder{opacity:1;transform:translate3d(0,24px,0)}md-input-container.md-input-has-value .md-placeholder{transition:none;opacity:0}md-input-container:not(.md-input-has-value) input:not(:focus),md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-ampm-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-day-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-hour-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-millisecond-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-minute-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-month-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-second-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-text,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-week-field,md-input-container:not(.md-input-has-value) input:not(:focus)::-webkit-datetime-edit-year-field{color:transparent}md-input-container .md-input{order:2;display:block;margin-top:0;background:0 0;padding-top:2px;padding-bottom:1px;padding-left:2px;padding-right:2px;border-width:0 0 1px 0;line-height:26px;height:30px;-ms-flex-preferred-size:26px;border-radius:0;border-style:solid;width:100%;box-sizing:border-box;float:left}[dir=rtl] md-input-container .md-input{float:right}md-input-container .md-input:focus{outline:0}md-input-container .md-input:invalid{outline:0;box-shadow:none}md-input-container .md-input.md-no-flex{flex:none!important}md-input-container .md-char-counter{text-align:right;padding-right:2px;padding-left:0}[dir=rtl] md-input-container .md-char-counter{text-align:left}[dir=rtl] md-input-container .md-char-counter{padding-right:0}[dir=rtl] md-input-container .md-char-counter{padding-left:2px}md-input-container .md-input-messages-animation{position:relative;order:4;overflow:hidden;clear:left}[dir=rtl] md-input-container .md-input-messages-animation{clear:right}md-input-container .md-input-messages-animation.ng-enter .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-char-counter,md-input-container .md-input-message-animation{font-size:12px;line-height:14px;overflow:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2);opacity:1;margin-top:0;padding-top:5px}md-input-container .md-char-counter:not(.md-char-counter),md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:5px;padding-left:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-right:0}[dir=rtl] md-input-container .md-char-counter:not(.md-char-counter),[dir=rtl] md-input-container .md-input-message-animation:not(.md-char-counter){padding-left:5px}md-input-container:not(.md-input-invalid) .md-auto-hide .md-input-message-animation{opacity:0;margin-top:-100px}md-input-container .md-input-message-animation:not(.ng-animate){opacity:0;margin-top:-100px}md-input-container .md-input-message-animation.ng-enter{opacity:0;margin-top:-100px}md-input-container.md-input-focused label:not(.md-no-float),md-input-container.md-input-has-placeholder label:not(.md-no-float),md-input-container.md-input-has-value label:not(.md-no-float){transform:translate3d(0,6px,0) scale(.75);transition:transform cubic-bezier(.25,.8,.25,1) .4s,width cubic-bezier(.25,.8,.25,1) .4s}md-input-container.md-input-has-value label{transition:none}md-input-container .md-input.ng-invalid.ng-dirty,md-input-container.md-input-focused .md-input,md-input-container.md-input-resized .md-input{padding-bottom:0;border-width:0 0 2px 0}[disabled] md-input-container .md-input,md-input-container .md-input[disabled]{background-position:bottom -1px left 0;background-size:4px 1px;background-repeat:repeat-x}md-input-container.md-icon-float{transition:margin-top .4s cubic-bezier(.25,.8,.25,1)}md-input-container.md-icon-float>label{pointer-events:none;position:absolute}md-input-container.md-icon-float>md-icon{top:8px;left:2px;right:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{left:auto}[dir=rtl] md-input-container.md-icon-float>md-icon{right:2px}md-input-container.md-icon-left>label .md-placeholder,md-input-container.md-icon-left>label:not(.md-no-float):not(.md-container-ignore),md-input-container.md-icon-right>label .md-placeholder,md-input-container.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - 36px - 18px)}md-input-container.md-icon-left{padding-left:36px;padding-right:0}[dir=rtl] md-input-container.md-icon-left{padding-left:0}[dir=rtl] md-input-container.md-icon-left{padding-right:36px}md-input-container.md-icon-left>label{left:36px;right:auto}[dir=rtl] md-input-container.md-icon-left>label{left:auto}[dir=rtl] md-input-container.md-icon-left>label{right:36px}md-input-container.md-icon-right{padding-left:0;padding-right:36px}[dir=rtl] md-input-container.md-icon-right{padding-left:36px}[dir=rtl] md-input-container.md-icon-right{padding-right:0}md-input-container.md-icon-right>md-icon:last-of-type{margin:0;right:2px;left:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{right:auto}[dir=rtl] md-input-container.md-icon-right>md-icon:last-of-type{left:2px}md-input-container.md-icon-left.md-icon-right{padding-left:36px;padding-right:36px}md-input-container.md-icon-left.md-icon-right>label .md-placeholder,md-input-container.md-icon-left.md-icon-right>label:not(.md-no-float):not(.md-container-ignore){width:calc(100% - (36px * 2))}.md-resize-wrapper{position:relative}.md-resize-wrapper:after{content:'';display:table;clear:both}.md-resize-handle{position:absolute;bottom:-5px;left:0;height:10px;background:0 0;width:100%;cursor:ns-resize}@media screen and (-ms-high-contrast:active){md-input-container.md-default-theme>md-icon{fill:#fff}}md-list{display:block;padding:8px 0 8px 0}md-list .md-subheader{font-size:14px;font-weight:500;letter-spacing:.010em;line-height:1.2em}md-list.md-dense md-list-item,md-list.md-dense md-list-item .md-list-item-inner{min-height:48px}md-list.md-dense md-list-item .md-list-item-inner::before,md-list.md-dense md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item .md-list-item-inner md-icon:first-child,md-list.md-dense md-list-item md-icon:first-child{width:20px;height:20px}md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:36px}[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list.md-dense md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:36px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-avatar-icon,md-list.md-dense md-list-item .md-list-item-inner .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:20px}[dir=rtl] md-list.md-dense md-list-item .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-avatar-icon,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list.md-dense md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:20px}md-list.md-dense md-list-item .md-avatar,md-list.md-dense md-list-item .md-list-item-inner .md-avatar{flex:none;width:36px;height:36px}md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list.md-dense md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line .md-list-item-text p,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line .md-list-item-text p,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h4,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text p{line-height:1.05;font-size:12px}md-list.md-dense md-list-item.md-2-line .md-list-item-text h3,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line .md-list-item-text h3,md-list.md-dense md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:13px}md-list.md-dense md-list-item.md-2-line,md-list.md-dense md-list-item.md-2-line>.md-no-style{min-height:60px}md-list.md-dense md-list-item.md-2-line::before,md-list.md-dense md-list-item.md-2-line>.md-no-style::before{content:'';min-height:60px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-2-line .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-avatar,md-list.md-dense md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list.md-dense md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list.md-dense md-list-item.md-3-line,md-list.md-dense md-list-item.md-3-line>.md-no-style{min-height:76px}md-list.md-dense md-list-item.md-3-line::before,md-list.md-dense md-list-item.md-3-line>.md-no-style::before{content:'';min-height:76px;visibility:hidden;display:inline-block}md-list.md-dense md-list-item.md-3-line>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>.md-avatar,md-list.md-dense md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list.md-dense md-list-item.md-3-line>md-icon:first-child{margin-top:16px}md-list-item{position:relative}md-list-item.md-proxy-focus.md-focused .md-no-style{transition:background-color .15s linear}md-list-item._md-button-wrap{position:relative}md-list-item._md-button-wrap>div.md-button:first-child{display:flex;align-items:center;justify-content:flex-start;padding:0 16px;margin:0;font-weight:400;text-align:left;border:medium none}[dir=rtl] md-list-item._md-button-wrap>div.md-button:first-child{text-align:right}md-list-item._md-button-wrap>div.md-button:first-child>.md-button:first-child{position:absolute;top:0;left:0;height:100%;margin:0;padding:0}md-list-item._md-button-wrap>div.md-button:first-child .md-list-item-inner{width:100%;min-height:inherit}md-list-item .md-no-style,md-list-item.md-no-proxy{position:relative;padding:0 16px;flex:1 1 auto}md-list-item .md-no-style.md-button,md-list-item.md-no-proxy.md-button{font-size:inherit;height:inherit;text-align:left;text-transform:none;width:100%;white-space:normal;flex-direction:inherit;align-items:inherit;border-radius:0;margin:0}[dir=rtl] md-list-item .md-no-style.md-button,[dir=rtl] md-list-item.md-no-proxy.md-button{text-align:right}md-list-item .md-no-style.md-button>.md-ripple-container,md-list-item.md-no-proxy.md-button>.md-ripple-container{border-radius:0}md-list-item .md-no-style:focus,md-list-item.md-no-proxy:focus{outline:0}md-list-item.md-clickable:hover{cursor:pointer}md-list-item md-divider{position:absolute;bottom:0;left:0;width:100%}[dir=rtl] md-list-item md-divider{left:auto;right:0}md-list-item md-divider[md-inset]{left:72px;width:calc(100% - 72px);margin:0!important}[dir=rtl] md-list-item md-divider[md-inset]{left:auto;right:72px}md-list-item,md-list-item .md-list-item-inner{display:flex;justify-content:flex-start;align-items:center;min-height:48px;height:auto}md-list-item .md-list-item-inner::before,md-list-item::before{content:'';min-height:48px;visibility:hidden;display:inline-block}md-list-item .md-list-item-inner>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon.md-secondary:not(.md-avatar-icon),md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>div.md-primary>md-icon:not(.md-avatar-icon),md-list-item>div.md-secondary>md-icon:not(.md-avatar-icon),md-list-item>md-icon.md-secondary:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){width:24px;margin-top:16px;margin-bottom:12px;box-sizing:content-box}md-list-item .md-list-item-inner md-checkbox.md-secondary,md-list-item .md-list-item-inner>div.md-primary>md-checkbox,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox,md-list-item .md-list-item-inner>md-checkbox,md-list-item md-checkbox.md-secondary,md-list-item>div.md-primary>md-checkbox,md-list-item>div.md-secondary>md-checkbox,md-list-item>md-checkbox{align-self:center}md-list-item .md-list-item-inner md-checkbox.md-secondary .md-label,md-list-item .md-list-item-inner>div.md-primary>md-checkbox .md-label,md-list-item .md-list-item-inner>div.md-secondary>md-checkbox .md-label,md-list-item .md-list-item-inner>md-checkbox .md-label,md-list-item md-checkbox.md-secondary .md-label,md-list-item>div.md-primary>md-checkbox .md-label,md-list-item>div.md-secondary>md-checkbox .md-label,md-list-item>md-checkbox .md-label{display:none}md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:32px}[dir=rtl] md-list-item .md-list-item-inner>md-icon:first-child:not(.md-avatar-icon),[dir=rtl] md-list-item>md-icon:first-child:not(.md-avatar-icon){margin-right:auto;margin-left:32px}md-list-item .md-avatar,md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar,md-list-item .md-list-item-inner .md-avatar-icon{margin-top:8px;margin-bottom:8px;margin-right:16px;border-radius:50%;box-sizing:content-box}[dir=rtl] md-list-item .md-avatar,[dir=rtl] md-list-item .md-avatar-icon,[dir=rtl] md-list-item .md-list-item-inner .md-avatar,[dir=rtl] md-list-item .md-list-item-inner .md-avatar-icon{margin-right:auto;margin-left:16px}md-list-item .md-avatar,md-list-item .md-list-item-inner .md-avatar{flex:none;width:40px;height:40px}md-list-item .md-avatar-icon,md-list-item .md-list-item-inner .md-avatar-icon{padding:8px}md-list-item .md-avatar-icon svg,md-list-item .md-list-item-inner .md-avatar-icon svg{width:24px;height:24px}md-list-item .md-list-item-inner>md-checkbox,md-list-item>md-checkbox{width:24px;margin-left:3px;margin-right:29px;margin-top:16px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-left:29px}[dir=rtl] md-list-item .md-list-item-inner>md-checkbox,[dir=rtl] md-list-item>md-checkbox{margin-right:3px}md-list-item .md-list-item-inner .md-secondary-container,md-list-item .md-secondary-container{display:flex;align-items:center;flex-shrink:0;margin:auto;margin-right:0;margin-left:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-right:auto}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container,[dir=rtl] md-list-item .md-secondary-container{margin-left:0}md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,md-list-item .md-secondary-container .md-button:last-of-type,md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container .md-icon-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-button:last-of-type,[dir=rtl] md-list-item .md-secondary-container .md-icon-button:last-of-type{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox,md-list-item .md-secondary-container md-checkbox{margin-top:0;margin-bottom:0}md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,md-list-item .md-secondary-container md-checkbox:last-child{width:24px;margin-right:0}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-checkbox:last-child,[dir=rtl] md-list-item .md-secondary-container md-checkbox:last-child{margin-right:auto;margin-left:0}md-list-item .md-list-item-inner .md-secondary-container md-switch,md-list-item .md-secondary-container md-switch{margin-top:0;margin-bottom:0;margin-right:-6px}[dir=rtl] md-list-item .md-list-item-inner .md-secondary-container md-switch,[dir=rtl] md-list-item .md-secondary-container md-switch{margin-right:auto;margin-left:-6px}md-list-item .md-list-item-inner>.md-list-item-inner>p,md-list-item .md-list-item-inner>p,md-list-item>.md-list-item-inner>p,md-list-item>p{flex:1 1 auto;margin:0}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style,md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{align-items:flex-start;justify-content:center}md-list-item.md-2-line.md-long-text,md-list-item.md-2-line>.md-no-style.md-long-text,md-list-item.md-3-line.md-long-text,md-list-item.md-3-line>.md-no-style.md-long-text{margin-top:8px;margin-bottom:8px}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text,md-list-item.md-3-line .md-list-item-text,md-list-item.md-3-line>.md-no-style .md-list-item-text{flex:1 1 auto;margin:auto;text-overflow:ellipsis;overflow:hidden}md-list-item.md-2-line .md-list-item-text.md-offset,md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,md-list-item.md-3-line .md-list-item-text.md-offset,md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:56px}[dir=rtl] md-list-item.md-2-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-2-line>.md-no-style .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line .md-list-item-text.md-offset,[dir=rtl] md-list-item.md-3-line>.md-no-style .md-list-item-text.md-offset{margin-left:auto;margin-right:56px}md-list-item.md-2-line .md-list-item-text h3,md-list-item.md-2-line>.md-no-style .md-list-item-text h3,md-list-item.md-3-line .md-list-item-text h3,md-list-item.md-3-line>.md-no-style .md-list-item-text h3{font-size:16px;font-weight:400;letter-spacing:.010em;margin:0;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text h4,md-list-item.md-2-line>.md-no-style .md-list-item-text h4,md-list-item.md-3-line .md-list-item-text h4,md-list-item.md-3-line>.md-no-style .md-list-item-text h4{font-size:14px;letter-spacing:.010em;margin:3px 0 1px 0;font-weight:400;line-height:1.2em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}md-list-item.md-2-line .md-list-item-text p,md-list-item.md-2-line>.md-no-style .md-list-item-text p,md-list-item.md-3-line .md-list-item-text p,md-list-item.md-3-line>.md-no-style .md-list-item-text p{font-size:14px;font-weight:500;letter-spacing:.010em;margin:0;line-height:1.6em}md-list-item.md-2-line,md-list-item.md-2-line>.md-no-style{height:auto;min-height:72px}md-list-item.md-2-line::before,md-list-item.md-2-line>.md-no-style::before{content:'';min-height:72px;visibility:hidden;display:inline-block}md-list-item.md-2-line .md-avatar-icon,md-list-item.md-2-line>.md-avatar,md-list-item.md-2-line>.md-no-style .md-avatar-icon,md-list-item.md-2-line>.md-no-style>.md-avatar{margin-top:12px}md-list-item.md-2-line>.md-no-style>md-icon:first-child,md-list-item.md-2-line>md-icon:first-child{align-self:flex-start}md-list-item.md-2-line .md-list-item-text,md-list-item.md-2-line>.md-no-style .md-list-item-text{flex:1 1 auto}md-list-item.md-3-line,md-list-item.md-3-line>.md-no-style{height:auto;min-height:88px}md-list-item.md-3-line::before,md-list-item.md-3-line>.md-no-style::before{content:'';min-height:88px;visibility:hidden;display:inline-block}md-list-item.md-3-line>.md-avatar,md-list-item.md-3-line>.md-no-style>.md-avatar,md-list-item.md-3-line>.md-no-style>md-icon:first-child,md-list-item.md-3-line>md-icon:first-child{margin-top:16px}.md-open-menu-container{position:fixed;left:0;top:0;z-index:100;opacity:0;border-radius:2px}.md-open-menu-container md-menu-divider{margin-top:4px;margin-bottom:4px;height:1px;min-height:1px;max-height:1px;width:100%}.md-open-menu-container md-menu-content>*{opacity:0}.md-open-menu-container:not(.md-clickable){pointer-events:none}.md-open-menu-container.md-active{opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}.md-open-menu-container.md-active>md-menu-content>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:.2s;transition-delay:.1s}.md-open-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-menu-content{display:flex;flex-direction:column;padding:8px 0;max-height:304px;overflow-y:auto}md-menu-content.md-dense{max-height:208px}md-menu-content.md-dense md-menu-item{height:32px;min-height:0}md-menu-item{display:flex;flex-direction:row;min-height:48px;height:48px;align-content:center;justify-content:flex-start}md-menu-item>*{width:100%;margin:auto 0;padding-left:16px;padding-right:16px}md-menu-item>a.md-button{padding-top:5px}md-menu-item>.md-button{text-align:left;display:inline-block;border-radius:0;margin:auto 0;font-size:15px;text-transform:none;font-weight:400;height:100%;padding-left:16px;padding-right:16px;width:100%}md-menu-item>.md-button::-moz-focus-inner{padding:0;border:0}[dir=rtl] md-menu-item>.md-button{text-align:right}md-menu-item>.md-button md-icon{margin:auto 16px auto 0}[dir=rtl] md-menu-item>.md-button md-icon{margin:auto 0 auto 16px}md-menu-item>.md-button p{display:inline-block;margin:auto}md-menu-item>.md-button span{margin-top:auto;margin-bottom:auto}md-menu-item>.md-button .md-ripple-container{border-radius:inherit}md-toolbar .md-menu{height:auto;margin:auto;padding:0}@media (max-width:959px){md-menu-content{min-width:112px}md-menu-content[width="3"]{min-width:168px}md-menu-content[width="4"]{min-width:224px}md-menu-content[width="5"]{min-width:280px}md-menu-content[width="6"]{min-width:336px}md-menu-content[width="7"]{min-width:392px}}@media (min-width:960px){md-menu-content{min-width:96px}md-menu-content[width="3"]{min-width:192px}md-menu-content[width="4"]{min-width:256px}md-menu-content[width="5"]{min-width:320px}md-menu-content[width="6"]{min-width:384px}md-menu-content[width="7"]{min-width:448px}}md-toolbar.md-menu-toolbar h2.md-toolbar-tools{line-height:1rem;height:auto;padding:28px;padding-bottom:12px}md-toolbar.md-has-open-menu{position:relative;z-index:100}md-menu-bar{padding:0 20px;display:block;position:relative;z-index:2}md-menu-bar .md-menu{display:inline-block;padding:0;position:relative}md-menu-bar button{font-size:14px;padding:0 10px;margin:0;border:0;background-color:transparent;height:40px}md-menu-bar md-backdrop.md-menu-backdrop{z-index:-2}md-menu-content.md-menu-bar-menu.md-dense{max-height:none;padding:16px 0}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent{position:relative}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{position:absolute;padding:0;width:24px;top:6px;left:24px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{left:auto;right:24px}md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 32px 0 64px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>.md-button{padding:0 64px 0 32px}md-menu-content.md-menu-bar-menu.md-dense .md-button{min-height:0;height:32px;display:flex}md-menu-content.md-menu-bar-menu.md-dense .md-button span{flex-grow:1}md-menu-content.md-menu-bar-menu.md-dense .md-button span.md-alt-text{flex-grow:0;align-self:flex-end;margin:0 8px}md-menu-content.md-menu-bar-menu.md-dense md-menu-divider{margin:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:left}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button,[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense md-menu-item>.md-button{text-align:right}md-menu-content.md-menu-bar-menu.md-dense .md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{position:relative;margin:0;width:100%;text-transform:none;font-weight:400;border-radius:0;padding-left:16px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button{padding-left:0;padding-right:16px}md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{display:block;content:'\25BC';position:absolute;top:0;speak:none;transform:rotate(270deg) scaleY(.45) scaleX(.9);right:28px}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{transform:rotate(90deg) scaleY(.45) scaleX(.9)}[dir=rtl] md-menu-content.md-menu-bar-menu.md-dense .md-menu>.md-button:after{right:auto;left:28px}.md-nav-bar{border-style:solid;border-width:0 0 1px;height:48px;position:relative}._md-nav-bar-list{outline:0;list-style:none;margin:0;padding:0;box-sizing:border-box;display:flex;flex-direction:row}.md-nav-item:first-of-type{margin-left:8px}.md-button._md-nav-button{line-height:24px;margin:0 4px;padding:12px 16px;transition:background-color .35s cubic-bezier(.35,0,.25,1)}.md-button._md-nav-button:focus{outline:0}.md-button._md-nav-button:hover{background-color:inherit}md-nav-ink-bar{bottom:0;height:2px;left:auto;position:absolute;right:auto;background-color:#000}md-nav-ink-bar._md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-nav-ink-bar._md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-nav-extra-content{min-height:48px;padding-right:12px}.md-panel-outer-wrapper{height:100%;left:0;position:absolute;top:0;width:100%}._md-panel-hidden{display:none}._md-panel-fullscreen{border-radius:0;left:0;min-height:100%;min-width:100%;position:fixed;top:0}._md-panel-shown .md-panel{opacity:1;transition:none}.md-panel{opacity:0;position:fixed}.md-panel._md-panel-shown{opacity:1;transition:none}.md-panel._md-panel-animate-enter{opacity:1;transition:all .3s cubic-bezier(0,0,.2,1)}.md-panel._md-panel-animate-leave{opacity:1;transition:all .3s cubic-bezier(.4,0,1,1)}.md-panel._md-panel-animate-fade-out,.md-panel._md-panel-animate-scale-out{opacity:0}.md-panel._md-panel-backdrop{height:100%;position:absolute;width:100%}.md-panel._md-opaque-enter{opacity:.48;transition:opacity .3s cubic-bezier(0,0,.2,1)}.md-panel._md-opaque-leave{transition:opacity .3s cubic-bezier(.4,0,1,1)}@keyframes indeterminate-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}md-progress-circular{position:relative;display:block}md-progress-circular._md-progress-circular-disabled{visibility:hidden}md-progress-circular.md-mode-indeterminate svg{animation:indeterminate-rotate 2.9s linear infinite}md-progress-circular svg{position:absolute;overflow:visible;top:0;left:0}md-progress-linear{display:block;position:relative;width:100%;height:5px;padding-top:0!important;margin-bottom:0!important}md-progress-linear._md-progress-linear-disabled{visibility:hidden}md-progress-linear .md-container{display:block;position:relative;overflow:hidden;width:100%;height:5px;transform:translate(0,0) scale(1,1)}md-progress-linear .md-container .md-bar{position:absolute;left:0;top:0;bottom:0;width:100%;height:5px}md-progress-linear .md-container .md-dashed:before{content:"";display:none;position:absolute;margin-top:0;height:5px;width:100%;background-color:transparent;background-size:10px 10px!important;background-position:0 -23px}md-progress-linear .md-container .md-bar1,md-progress-linear .md-container .md-bar2{transition:transform .2s linear}md-progress-linear .md-container.md-mode-query .md-bar1{display:none}md-progress-linear .md-container.md-mode-query .md-bar2{transition:all .2s linear;animation:query .8s infinite cubic-bezier(.39,.575,.565,1)}md-progress-linear .md-container.md-mode-determinate .md-bar1{display:none}md-progress-linear .md-container.md-mode-indeterminate .md-bar1{animation:md-progress-linear-indeterminate-scale-1 4s infinite,md-progress-linear-indeterminate-1 4s infinite}md-progress-linear .md-container.md-mode-indeterminate .md-bar2{animation:md-progress-linear-indeterminate-scale-2 4s infinite,md-progress-linear-indeterminate-2 4s infinite}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container{animation:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar1{animation-name:none}md-progress-linear .md-container.ng-hide ._md-progress-linear-disabled md-progress-linear .md-container .md-bar2{animation-name:none}md-progress-linear .md-container.md-mode-buffer{background-color:transparent!important;transition:all .2s linear}md-progress-linear .md-container.md-mode-buffer .md-dashed:before{display:block;animation:buffer 3s infinite linear}@keyframes query{0%{opacity:1;transform:translateX(35%) scale(.3,1)}100%{opacity:0;transform:translateX(-50%) scale(0,1)}}@keyframes buffer{0%{opacity:1;background-position:0 -23px}50%{opacity:0}100%{opacity:1;background-position:-200px -23px}}@keyframes md-progress-linear-indeterminate-scale-1{0%{transform:scaleX(.1);animation-timing-function:linear}36.6%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.334731432,.124819821,.785843996,1)}69.15%{transform:scaleX(.83);animation-timing-function:cubic-bezier(.225732004,0,.233648906,1.3709798)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-1{0%{left:-105.166666667%;animation-timing-function:linear}20%{left:-105.166666667%;animation-timing-function:cubic-bezier(.5,0,.701732,.495818703)}69.15%{left:21.5%;animation-timing-function:cubic-bezier(.302435,.38135197,.55,.956352125)}100%{left:95.4444444444%}}@keyframes md-progress-linear-indeterminate-scale-2{0%{transform:scaleX(.1);animation-timing-function:cubic-bezier(.205028172,.057050836,.57660995,.453970841)}19.15%{transform:scaleX(.57);animation-timing-function:cubic-bezier(.152312994,.196431957,.648373778,1.00431535)}44.15%{transform:scaleX(.91);animation-timing-function:cubic-bezier(.25775882,-.003163357,.211761916,1.38178961)}100%{transform:scaleX(.1)}}@keyframes md-progress-linear-indeterminate-2{0%{left:-54.8888888889%;animation-timing-function:cubic-bezier(.15,0,.5150584,.409684966)}25%{left:-17.25%;animation-timing-function:cubic-bezier(.3103299,.284057684,.8,.733718979)}48.35%{left:29.5%;animation-timing-function:cubic-bezier(.4,.627034903,.6,.902025796)}100%{left:117.388888889%}}md-radio-button{box-sizing:border-box;display:block;margin-bottom:16px;white-space:nowrap;cursor:pointer;position:relative}md-radio-button[disabled]{cursor:default}md-radio-button[disabled] .md-container{cursor:default}md-radio-button .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;cursor:pointer;left:0;right:auto}[dir=rtl] md-radio-button .md-container{left:auto}[dir=rtl] md-radio-button .md-container{right:0}md-radio-button .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-radio-button .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-radio-button.md-align-top-left>div.md-container{top:12px}md-radio-button .md-off{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-style:solid;border-width:2px;border-radius:50%;transition:border-color ease .28s}md-radio-button .md-on{box-sizing:border-box;position:absolute;top:0;left:0;width:20px;height:20px;border-radius:50%;transition:transform ease .28s;transform:scale(0)}md-radio-button.md-checked .md-on{transform:scale(.5)}md-radio-button .md-label{box-sizing:border-box;position:relative;display:inline-block;margin-left:30px;margin-right:0;vertical-align:middle;white-space:normal;pointer-events:none;width:auto}[dir=rtl] md-radio-button .md-label{margin-left:0}[dir=rtl] md-radio-button .md-label{margin-right:30px}md-radio-group.layout-column md-radio-button,md-radio-group.layout-gt-lg-column md-radio-button,md-radio-group.layout-gt-md-column md-radio-button,md-radio-group.layout-gt-sm-column md-radio-button,md-radio-group.layout-gt-xs-column md-radio-button,md-radio-group.layout-lg-column md-radio-button,md-radio-group.layout-md-column md-radio-button,md-radio-group.layout-sm-column md-radio-button,md-radio-group.layout-xl-column md-radio-button,md-radio-group.layout-xs-column md-radio-button{margin-bottom:16px}md-radio-group.layout-gt-lg-row md-radio-button,md-radio-group.layout-gt-md-row md-radio-button,md-radio-group.layout-gt-sm-row md-radio-button,md-radio-group.layout-gt-xs-row md-radio-button,md-radio-group.layout-lg-row md-radio-button,md-radio-group.layout-md-row md-radio-button,md-radio-group.layout-row md-radio-button,md-radio-group.layout-sm-row md-radio-button,md-radio-group.layout-xl-row md-radio-button,md-radio-group.layout-xs-row md-radio-button{margin-top:0;margin-bottom:0;margin-left:0;margin-right:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-left:16px}[dir=rtl] md-radio-group.layout-gt-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-md-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-gt-xs-row md-radio-button,[dir=rtl] md-radio-group.layout-lg-row md-radio-button,[dir=rtl] md-radio-group.layout-md-row md-radio-button,[dir=rtl] md-radio-group.layout-row md-radio-button,[dir=rtl] md-radio-group.layout-sm-row md-radio-button,[dir=rtl] md-radio-group.layout-xl-row md-radio-button,[dir=rtl] md-radio-group.layout-xs-row md-radio-button{margin-right:0}md-radio-group.layout-gt-lg-row md-radio-button:last-of-type,md-radio-group.layout-gt-md-row md-radio-button:last-of-type,md-radio-group.layout-gt-sm-row md-radio-button:last-of-type,md-radio-group.layout-gt-xs-row md-radio-button:last-of-type,md-radio-group.layout-lg-row md-radio-button:last-of-type,md-radio-group.layout-md-row md-radio-button:last-of-type,md-radio-group.layout-row md-radio-button:last-of-type,md-radio-group.layout-sm-row md-radio-button:last-of-type,md-radio-group.layout-xl-row md-radio-button:last-of-type,md-radio-group.layout-xs-row md-radio-button:last-of-type{margin-left:0;margin-right:0}md-radio-group:focus{outline:0}md-radio-group.md-focused .md-checked .md-container:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-radio-group[disabled] md-radio-button{cursor:default}md-radio-group[disabled] md-radio-button .md-container{cursor:default}.md-inline-form md-radio-group{margin:18px 0 19px}.md-inline-form md-radio-group md-radio-button{display:inline-block;height:30px;padding:2px;box-sizing:border-box;margin-top:0;margin-bottom:0}@media screen and (-ms-high-contrast:active){md-radio-button.md-default-theme .md-on{background-color:#fff}}md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transition:transform .4s cubic-bezier(.25,.8,.25,1);transform-origin:left top}[dir=rtl] md-input-container:not([md-no-float]) .md-select-placeholder span:first-child{transform-origin:right top}md-input-container.md-input-focused:not([md-no-float]) .md-select-placeholder span:first-child{transform:translateY(-22px) translateX(-2px) scale(.75)}.md-select-menu-container{position:fixed;left:0;top:0;z-index:90;opacity:0;display:none;transform:translateY(-1px)}.md-select-menu-container:not(.md-clickable){pointer-events:none}.md-select-menu-container md-progress-circular{display:table;margin:24px auto!important}.md-select-menu-container.md-active{display:block;opacity:1}.md-select-menu-container.md-active md-select-menu{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:150ms}.md-select-menu-container.md-active md-select-menu>*{opacity:1;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:150ms;transition-delay:.1s}.md-select-menu-container.md-leave{opacity:0;transition:all .3s cubic-bezier(.55,0,.55,.2);transition-duration:250ms}md-input-container>md-select{margin:0;order:2}md-input-container:not(.md-input-has-value) md-select.ng-required:not(.md-no-asterisk) .md-select-value span:first-child:after,md-input-container:not(.md-input-has-value) md-select[required]:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-input-container.md-input-invalid md-select .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select{display:flex;margin:20px 0 26px 0}md-select.ng-required.ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after,md-select[required].ng-invalid:not(.md-no-asterisk) .md-select-value span:first-child:after{content:' *';font-size:13px;vertical-align:top}md-select[disabled] .md-select-value{background-position:0 bottom;background-size:4px 1px;background-repeat:repeat-x;margin-bottom:-1px}md-select:focus{outline:0}md-select[disabled]:hover{cursor:default}md-select:not([disabled]):hover{cursor:pointer}md-select:not([disabled]).ng-invalid.ng-touched .md-select-value{border-bottom-style:solid;padding-bottom:1px}md-select:not([disabled]):focus .md-select-value{border-bottom-width:2px;border-bottom-style:solid;padding-bottom:0}md-select:not([disabled]):focus.ng-invalid.ng-touched .md-select-value{padding-bottom:0}md-input-container.md-input-has-value .md-select-value>span:not(.md-select-icon){transform:translate3d(0,1px,0)}.md-select-value{display:flex;align-items:center;padding:2px 2px 1px;border-bottom-width:1px;border-bottom-style:solid;background-color:transparent;position:relative;box-sizing:content-box;min-width:64px;min-height:26px;flex-grow:1}.md-select-value>span:not(.md-select-icon){max-width:100%;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md-select-value>span:not(.md-select-icon) .md-text{display:inline}.md-select-value .md-select-icon{display:block;align-items:flex-end;text-align:end;width:24px;margin:0 4px;transform:translate3d(0,-2px,0);font-size:1.2rem}.md-select-value .md-select-icon:after{display:block;content:'\25BC';position:relative;top:2px;speak:none;font-size:13px;transform:scaleY(.5) scaleX(1)}.md-select-value.md-select-placeholder{display:flex;order:1;pointer-events:none;-webkit-font-smoothing:antialiased;padding-left:2px;z-index:1}md-select-menu{display:flex;flex-direction:column;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);max-height:256px;min-height:48px;overflow-y:hidden;transform-origin:left top;transform:scale(1)}md-select-menu.md-reverse{flex-direction:column-reverse}md-select-menu:not(.md-overflow) md-content{padding-top:8px;padding-bottom:8px}[dir=rtl] md-select-menu{transform-origin:right top}md-select-menu md-content{min-width:136px;min-height:48px;max-height:256px;overflow-y:auto}md-select-menu>*{opacity:0}md-option{cursor:pointer;position:relative;display:flex;align-items:center;width:auto;transition:background .15s linear;padding:0 16px 0 16px;height:48px}md-option[disabled]{cursor:default}md-option:focus{outline:0}md-option .md-text{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}md-optgroup{display:block}md-optgroup label{display:block;font-size:14px;text-transform:uppercase;padding:16px;font-weight:500}md-optgroup md-option{padding-left:32px;padding-right:32px}@media screen and (-ms-high-contrast:active){.md-select-backdrop{background-color:transparent}md-select-menu{border:1px solid #fff}}md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:40px;padding-right:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-left:16px}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled{padding-right:40px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{position:absolute;top:50%;transform:translateY(-50%);box-sizing:border-box;display:inline-block;width:20px;height:20px;left:0;right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{right:0}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:before{box-sizing:border-box;background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container:after{box-sizing:border-box;content:'';position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-15px;top:-15px;right:-15px;bottom:-15px}md-select-menu[multiple] md-option.md-checkbox-enabled .md-icon{box-sizing:border-box;transition:240ms;position:absolute;top:0;left:0;width:20px;height:20px;border-width:2px;border-style:solid;border-radius:2px}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon{border-color:transparent}md-select-menu[multiple] md-option.md-checkbox-enabled[selected] .md-icon:after{box-sizing:border-box;transform:rotate(45deg);position:absolute;left:4.6666666667px;top:.2222222222px;display:table;width:6.6666666667px;height:13.3333333333px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled[disabled]{cursor:default}md-select-menu[multiple] md-option.md-checkbox-enabled.md-indeterminate .md-icon:after{box-sizing:border-box;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:table;width:12px;height:2px;border-width:2px;border-style:solid;border-top:0;border-left:0;content:''}md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:10.6666666667px;margin-right:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-left:auto}[dir=rtl] md-select-menu[multiple] md-option.md-checkbox-enabled .md-container{margin-right:10.6666666667px}md-sidenav{box-sizing:border-box;position:absolute;flex-direction:column;z-index:60;width:320px;max-width:320px;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch}md-sidenav ul{list-style:none}md-sidenav.md-closed{display:none}md-sidenav.md-closed-add,md-sidenav.md-closed-remove{display:flex;transition:.2s ease-in all}md-sidenav.md-closed-add.md-closed-add-active,md-sidenav.md-closed-remove.md-closed-remove-active{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-sidenav.md-locked-open-add,md-sidenav.md-locked-open-remove{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open,md-sidenav.md-locked-open-remove.md-closed,md-sidenav.md-locked-open.md-closed,md-sidenav.md-locked-open.md-closed.md-sidenav-left,md-sidenav.md-locked-open.md-closed.md-sidenav-right{position:static;display:flex;transform:translate3d(0,0,0)}md-sidenav.md-locked-open-remove-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:0!important;min-width:0!important}md-sidenav.md-closed.md-locked-open-add{width:0!important;min-width:0!important;transform:translate3d(0,0,0)}md-sidenav.md-closed.md-locked-open-add-active{transition:width .3s cubic-bezier(.55,0,.55,.2),min-width .3s cubic-bezier(.55,0,.55,.2);width:320px;min-width:320px;transform:translate3d(0,0,0)}.md-sidenav-backdrop.md-locked-open{display:none}.md-sidenav-left,md-sidenav{left:0;top:0;transform:translate3d(0,0,0)}.md-sidenav-left.md-closed,md-sidenav.md-closed{transform:translate3d(-100%,0,0)}.md-sidenav-right{left:100%;top:0;transform:translate(-100%,0)}.md-sidenav-right.md-closed{transform:translate(0,0)}@media (min-width:600px){md-sidenav{max-width:400px}}@media (max-width:456px){md-sidenav{width:calc(100% - 56px);min-width:calc(100% - 56px);max-width:calc(100% - 56px)}}@media screen and (-ms-high-contrast:active){.md-sidenav-left,md-sidenav{border-right:1px solid #fff}.md-sidenav-right{border-left:1px solid #fff}}@keyframes sliderFocusThumb{0%{transform:scale(.7)}30%{transform:scale(1)}100%{transform:scale(.7)}}@keyframes sliderDiscreteFocusThumb{0%{transform:scale(.7)}50%{transform:scale(.8)}100%{transform:scale(0)}}@keyframes sliderDiscreteFocusRing{0%{transform:scale(.7);opacity:0}50%{transform:scale(1);opacity:1}100%{transform:scale(0)}}md-slider{height:48px;min-width:128px;position:relative;margin-left:4px;margin-right:4px;padding:0;display:block;flex-direction:row}md-slider *,md-slider :after{box-sizing:border-box}md-slider .md-slider-wrapper{outline:0;width:100%;height:100%}md-slider .md-slider-content{position:relative}md-slider .md-track-container{width:100%;position:absolute;top:23px;height:2px}md-slider .md-track{position:absolute;left:0;right:0;height:100%}md-slider .md-track-fill{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:width,height}md-slider .md-track-ticks{position:absolute;left:0;right:0;height:100%}md-slider .md-track-ticks canvas{width:100%;height:100%}md-slider .md-thumb-container{position:absolute;left:0;top:50%;transform:translate3d(-50%,-50%,0);transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:left,right,bottom}[dir=rtl] md-slider .md-thumb-container{left:auto;right:0}md-slider .md-thumb{z-index:1;position:absolute;left:-10px;top:14px;width:20px;height:20px;border-radius:20px;transform:scale(.7);transition:all .4s cubic-bezier(.25,.8,.25,1)}[dir=rtl] md-slider .md-thumb{left:auto;right:-10px}md-slider .md-thumb:after{content:'';position:absolute;width:20px;height:20px;border-radius:20px;border-width:3px;border-style:solid;transition:inherit}md-slider .md-sign{display:flex;align-items:center;justify-content:center;position:absolute;left:-14px;top:-17px;width:28px;height:28px;border-radius:28px;transform:scale(.4) translate3d(0,67.5px,0);transition:all .3s cubic-bezier(.35,0,.25,1)}md-slider .md-sign:after{position:absolute;content:'';left:0;border-radius:16px;top:19px;border-left:14px solid transparent;border-right:14px solid transparent;border-top-width:16px;border-top-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-sign:after{left:auto;right:0}md-slider .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider .md-focus-ring{position:absolute;left:-17px;top:7px;width:34px;height:34px;border-radius:34px;transform:scale(.7);opacity:0;transition:all .35s cubic-bezier(.35,0,.25,1)}[dir=rtl] md-slider .md-focus-ring{left:auto;right:-17px}md-slider .md-disabled-thumb{position:absolute;left:-14px;top:10px;width:28px;height:28px;border-radius:28px;transform:scale(.5);border-width:4px;border-style:solid;display:none}[dir=rtl] md-slider .md-disabled-thumb{left:auto;right:-14px}md-slider.md-min .md-sign{opacity:0}md-slider:focus{outline:0}md-slider.md-dragging .md-thumb-container,md-slider.md-dragging .md-track-fill{transition:none}md-slider:not([md-discrete]) .md-sign,md-slider:not([md-discrete]) .md-track-ticks{display:none}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper .md-thumb:hover{transform:scale(.8)}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(1);opacity:1}md-slider:not([md-discrete]):not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderFocusThumb .7s cubic-bezier(.35,0,.25,1)}md-slider:not([md-discrete]):not([disabled]).md-active .md-slider-wrapper .md-thumb{transform:scale(1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-focus-ring{transform:scale(0);animation:sliderDiscreteFocusRing .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb{animation:sliderDiscreteFocusThumb .5s cubic-bezier(.35,0,.25,1)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-thumb,md-slider[md-discrete]:not([disabled]).md-active .md-thumb{transform:scale(0)}md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign,md-slider[md-discrete]:not([disabled]) .md-slider-wrapper.md-focused .md-sign:after,md-slider[md-discrete]:not([disabled]).md-active .md-sign,md-slider[md-discrete]:not([disabled]).md-active .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-discrete][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-discrete][disabled][readonly] .md-sign,md-slider[md-discrete][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[disabled] .md-track-fill{display:none}md-slider[disabled] .md-track-ticks{opacity:0}md-slider[disabled]:not([readonly]) .md-sign{opacity:0}md-slider[disabled] .md-thumb{transform:scale(.5)}md-slider[disabled] .md-disabled-thumb{display:block}md-slider[md-vertical]{flex-direction:column;min-height:128px;min-width:0}md-slider[md-vertical] .md-slider-wrapper{flex:1;padding-top:12px;padding-bottom:12px;width:48px;align-self:center;display:flex;justify-content:center}md-slider[md-vertical] .md-track-container{height:100%;width:2px;top:0;left:calc(50% - (2px / 2))}md-slider[md-vertical] .md-thumb-container{top:auto;margin-bottom:23px;left:calc(50% - 1px);bottom:0}md-slider[md-vertical] .md-thumb-container .md-thumb:after{left:1px}md-slider[md-vertical] .md-thumb-container .md-focus-ring{left:-16px}md-slider[md-vertical] .md-track-fill{bottom:0}md-slider[md-vertical][md-discrete] .md-sign{left:-40px;top:9.5px;transform:scale(.4) translate3d(67.5px,0,0)}md-slider[md-vertical][md-discrete] .md-sign:after{top:9.5px;left:19px;border-top:14px solid transparent;border-right:0;border-bottom:14px solid transparent;border-left-width:16px;border-left-style:solid;opacity:0;transform:translate3d(0,-8px,0);transition:all .2s ease-in-out}md-slider[md-vertical][md-discrete] .md-sign .md-thumb-text{z-index:1;font-size:12px;font-weight:700}md-slider[md-vertical][md-discrete] .md-focused .md-sign:after,md-slider[md-vertical][md-discrete].md-active .md-sign:after,md-slider[md-vertical][md-discrete][disabled][readonly] .md-sign:after{top:0}md-slider[md-vertical][disabled][readonly] .md-thumb{transform:scale(0)}md-slider[md-vertical][disabled][readonly] .md-sign,md-slider[md-vertical][disabled][readonly] .md-sign:after{opacity:1;transform:translate3d(0,0,0) scale(1)}md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:auto;right:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{left:0}[dir=rtl] md-slider[md-invert]:not([md-vertical]) .md-track-fill{right:auto}md-slider[md-invert][md-vertical] .md-track-fill{bottom:auto;top:0}md-slider-container{display:flex;align-items:center;flex-direction:row}md-slider-container>:first-child:not(md-slider),md-slider-container>:last-child:not(md-slider){min-width:25px;max-width:42px;height:25px;transition:all .4s cubic-bezier(.25,.8,.25,1);transition-property:color,max-width}md-slider-container>:first-child:not(md-slider){margin-right:16px}[dir=rtl] md-slider-container>:first-child:not(md-slider){margin-right:auto;margin-left:16px}md-slider-container>:last-child:not(md-slider){margin-left:16px}[dir=rtl] md-slider-container>:last-child:not(md-slider){margin-left:auto;margin-right:16px}md-slider-container[md-vertical]{flex-direction:column}md-slider-container[md-vertical]>:first-child:not(md-slider),md-slider-container[md-vertical]>:last-child:not(md-slider){margin-right:0;margin-left:0;text-align:center}md-slider-container md-input-container input[type=number]{text-align:center;padding-left:15px;height:50px;margin-top:-25px}[dir=rtl] md-slider-container md-input-container input[type=number]{padding-left:0;padding-right:15px}@media screen and (-ms-high-contrast:active){md-slider.md-default-theme .md-track{border-bottom:1px solid #fff}}.md-sticky-clone{z-index:2;top:0;left:0;right:0;position:absolute!important;transform:translate3d(-9999px,-9999px,0)}.md-sticky-clone[sticky-state=active]{transform:translate3d(0,0,0)}.md-sticky-clone[sticky-state=active]:not(.md-sticky-no-effect) .md-subheader-inner{animation:subheaderStickyHoverIn .3s ease-out both}@keyframes subheaderStickyHoverIn{0%{box-shadow:0 0 0 0 transparent}100%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}}@keyframes subheaderStickyHoverOut{0%{box-shadow:0 2px 4px 0 rgba(0,0,0,.16)}100%{box-shadow:0 0 0 0 transparent}}.md-subheader-wrapper:not(.md-sticky-no-effect){transition:.2s ease-out margin}.md-subheader-wrapper:not(.md-sticky-no-effect) .md-subheader{margin:0}.md-subheader-wrapper:not(.md-sticky-no-effect).md-sticky-clone{z-index:2}.md-subheader-wrapper:not(.md-sticky-no-effect)[sticky-state=active]{margin-top:-2px}.md-subheader-wrapper:not(.md-sticky-no-effect):not(.md-sticky-clone)[sticky-prev-state=active] .md-subheader-inner:after{animation:subheaderStickyHoverOut .3s ease-out both}.md-subheader{display:block;font-size:14px;font-weight:500;line-height:1em;margin:0;position:relative}.md-subheader .md-subheader-inner{display:block;padding:16px}.md-subheader .md-subheader-content{display:block;z-index:1;position:relative}.md-inline-form md-switch{margin-top:18px;margin-bottom:19px}md-switch{margin:16px 0;white-space:nowrap;cursor:pointer;outline:0;user-select:none;height:30px;line-height:28px;align-items:center;display:flex;margin-left:inherit;margin-right:16px}[dir=rtl] md-switch{margin-left:16px}[dir=rtl] md-switch{margin-right:inherit}md-switch:last-of-type{margin-left:inherit;margin-right:0}[dir=rtl] md-switch:last-of-type{margin-left:0}[dir=rtl] md-switch:last-of-type{margin-right:inherit}md-switch[disabled]{cursor:default}md-switch[disabled] .md-container{cursor:default}md-switch .md-container{cursor:grab;width:36px;height:24px;position:relative;user-select:none;margin-right:8px;float:left}[dir=rtl] md-switch .md-container{margin-right:auto;margin-left:8px}md-switch:not([disabled]) .md-dragging,md-switch:not([disabled]).md-dragging .md-container{cursor:grabbing}md-switch.md-focused:not([disabled]) .md-thumb:before{left:-8px;top:-8px;right:-8px;bottom:-8px}md-switch.md-focused:not([disabled]):not(.md-checked) .md-thumb:before{background-color:rgba(0,0,0,.12)}md-switch .md-label{border-color:transparent;border-width:0;float:left}md-switch .md-bar{left:1px;width:34px;top:5px;height:14px;border-radius:8px;position:absolute}md-switch .md-thumb-container{top:2px;left:0;width:16px;position:absolute;transform:translate3d(0,0,0);z-index:1}md-switch.md-checked .md-thumb-container{transform:translate3d(100%,0,0)}md-switch .md-thumb{position:absolute;margin:0;left:0;top:0;outline:0;height:20px;width:20px;border-radius:50%;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}md-switch .md-thumb:before{background-color:transparent;border-radius:50%;content:'';position:absolute;display:block;height:auto;left:0;top:0;right:0;bottom:0;transition:all .5s;width:auto}md-switch .md-thumb .md-ripple-container{position:absolute;display:block;width:auto;height:auto;left:-20px;top:-20px;right:-20px;bottom:-20px}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb,md-switch:not(.md-dragging) .md-thumb-container{transition:all 80ms linear;transition-property:transform,background-color}md-switch:not(.md-dragging) .md-bar,md-switch:not(.md-dragging) .md-thumb{transition-delay:50ms}@media screen and (-ms-high-contrast:active){md-switch.md-default-theme .md-bar{background-color:#666}md-switch.md-default-theme.md-checked .md-bar{background-color:#9e9e9e}md-switch.md-default-theme .md-thumb{background-color:#fff}}@keyframes md-tab-content-hide{0%{opacity:1}50%{opacity:1}100%{opacity:0}}md-tab-data{position:absolute;top:0;left:0;right:0;bottom:0;z-index:-1;opacity:0}md-tabs{display:block;margin:0;border-radius:2px;overflow:hidden;position:relative;flex-shrink:0}md-tabs:not(.md-no-tab-content):not(.md-dynamic-height){min-height:248px}md-tabs[md-align-tabs=bottom]{padding-bottom:48px}md-tabs[md-align-tabs=bottom] md-tabs-wrapper{position:absolute;bottom:0;left:0;right:0;height:48px;z-index:2}md-tabs[md-align-tabs=bottom] md-tabs-content-wrapper{top:0;bottom:48px}md-tabs.md-dynamic-height md-tabs-content-wrapper{min-height:0;position:relative;top:auto;left:auto;right:auto;bottom:auto;overflow:visible}md-tabs.md-dynamic-height md-tab-content.md-active{position:relative}md-tabs[md-border-bottom] md-tabs-wrapper{border-width:0 0 1px;border-style:solid}md-tabs[md-border-bottom]:not(.md-dynamic-height) md-tabs-content-wrapper{top:49px}md-tabs-wrapper{display:block;position:relative;transform:translate3d(0,0,0)}md-tabs-wrapper md-next-button,md-tabs-wrapper md-prev-button{height:100%;width:32px;position:absolute;top:50%;transform:translateY(-50%);line-height:1em;z-index:2;cursor:pointer;font-size:16px;background:transparent no-repeat center center;transition:all .5s cubic-bezier(.35,0,.25,1)}md-tabs-wrapper md-next-button:focus,md-tabs-wrapper md-prev-button:focus{outline:0}md-tabs-wrapper md-next-button.md-disabled,md-tabs-wrapper md-prev-button.md-disabled{opacity:.25;cursor:default}md-tabs-wrapper md-next-button.ng-leave,md-tabs-wrapper md-prev-button.ng-leave{transition:none}md-tabs-wrapper md-next-button md-icon,md-tabs-wrapper md-prev-button md-icon{position:absolute;top:50%;left:50%;transform:translate3d(-50%,-50%,0)}md-tabs-wrapper md-prev-button{left:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMjA4IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTUuNCw3LjQgMTQsNiA4LDEyIDE0LDE4IDE1LjQsMTYuNiAxMC44LDEyIAkJIiBzdHlsZT0iZmlsbDp3aGl0ZTsiLz4gPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+IDwvZz4gPC9nPiA8ZyBpZD0iR3JpZCIgZGlzcGxheT0ibm9uZSI+IDxnIGRpc3BsYXk9ImlubGluZSI+IDwvZz4gPC9nPiA8L3N2Zz4NCg==)}[dir=rtl] md-tabs-wrapper md-prev-button{left:auto;right:0}md-tabs-wrapper md-next-button{right:0;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE3LjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPiA8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyNHB4IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjQgMjQiIHhtbDpzcGFjZT0icHJlc2VydmUiPiA8ZyBpZD0iSGVhZGVyIj4gPGc+IDxyZWN0IHg9Ii02MTgiIHk9Ii0xMzM2IiBmaWxsPSJub25lIiB3aWR0aD0iMTQwMCIgaGVpZ2h0PSIzNjAwIi8+IDwvZz4gPC9nPiA8ZyBpZD0iTGFiZWwiPiA8L2c+IDxnIGlkPSJJY29uIj4gPGc+IDxwb2x5Z29uIHBvaW50cz0iMTAsNiA4LjYsNy40IDEzLjIsMTIgOC42LDE2LjYgMTAsMTggMTYsMTIgCQkiIHN0eWxlPSJmaWxsOndoaXRlOyIvPiA8cmVjdCBmaWxsPSJub25lIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiLz4gPC9nPiA8L2c+IDxnIGlkPSJHcmlkIiBkaXNwbGF5PSJub25lIj4gPGcgZGlzcGxheT0iaW5saW5lIj4gPC9nPiA8L2c+IDwvc3ZnPg0K)}[dir=rtl] md-tabs-wrapper md-next-button{right:auto;left:0}md-tabs-wrapper md-next-button md-icon{transform:translate3d(-50%,-50%,0) rotate(180deg)}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper{width:100%;display:flex;flex-direction:row}md-tabs-wrapper.md-stretch-tabs md-pagination-wrapper md-tab-item{flex-grow:1}md-tabs-canvas{position:relative;overflow:hidden;display:block;height:48px}md-tabs-canvas:after{content:'';display:table;clear:both}md-tabs-canvas .md-dummy-wrapper{position:absolute;top:0;left:0}[dir=rtl] md-tabs-canvas .md-dummy-wrapper{left:auto;right:0}md-tabs-canvas.md-paginated{margin:0 32px}md-tabs-canvas.md-center-tabs{display:flex;flex-direction:column;text-align:center}md-tabs-canvas.md-center-tabs .md-tab{float:none;display:inline-block}md-pagination-wrapper{height:48px;display:block;transition:transform .5s cubic-bezier(.35,0,.25,1);position:absolute;width:999999px;left:0;transform:translate3d(0,0,0)}md-pagination-wrapper:after{content:'';display:table;clear:both}[dir=rtl] md-pagination-wrapper{left:auto;right:0}md-pagination-wrapper.md-center-tabs{position:relative;width:auto;margin:0 auto}md-tabs-content-wrapper{display:block;position:absolute;top:48px;left:0;right:0;bottom:0;overflow:hidden}md-tab-content{display:block;position:absolute;top:0;left:0;right:0;bottom:0;transition:transform .5s cubic-bezier(.35,0,.25,1);overflow:auto;transform:translate3d(0,0,0)}md-tab-content.md-no-scroll{bottom:auto;overflow:hidden}md-tab-content.md-no-transition,md-tab-content.ng-leave{transition:none}md-tab-content.md-left:not(.md-active){transform:translateX(-100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-left:not(.md-active){transform:translateX(100%)}md-tab-content.md-left:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content.md-right:not(.md-active){transform:translateX(100%);animation:1s md-tab-content-hide;opacity:0}[dir=rtl] md-tab-content.md-right:not(.md-active){transform:translateX(-100%)}md-tab-content.md-right:not(.md-active) *{transition:visibility 0s linear;transition-delay:.5s;visibility:hidden}md-tab-content>div.ng-leave{animation:1s md-tab-content-hide}md-ink-bar{position:absolute;left:auto;right:auto;bottom:0;height:2px}md-ink-bar.md-left{transition:left 125ms cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-ink-bar.md-right{transition:left .25s cubic-bezier(.35,0,.25,1),right 125ms cubic-bezier(.35,0,.25,1)}md-tab{position:absolute;z-index:-1;left:-9999px}.md-tab{font-size:14px;text-align:center;line-height:24px;padding:12px 24px;transition:background-color .35s cubic-bezier(.35,0,.25,1);cursor:pointer;white-space:nowrap;position:relative;text-transform:uppercase;float:left;font-weight:500;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .md-tab{float:right}.md-tab.md-focused{box-shadow:none;outline:0}.md-tab.md-active{cursor:default}.md-tab.md-disabled{pointer-events:none;touch-action:pan-y;user-select:none;-webkit-user-drag:none;opacity:.5;cursor:default}.md-tab.ng-leave{transition:none}md-toolbar+md-tabs{border-top-left-radius:0;border-top-right-radius:0}.md-toast-text{padding:0 6px}md-toast{position:absolute;z-index:105;box-sizing:border-box;cursor:default;overflow:hidden;padding:8px;opacity:1;transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast .md-toast-content{display:flex;direction:row;align-items:center;max-height:168px;max-width:100%;min-height:48px;padding:0 18px;box-shadow:0 2px 5px 0 rgba(0,0,0,.26);border-radius:2px;font-size:14px;overflow:hidden;transform:translate3d(0,0,0) rotateZ(0);transition:all .4s cubic-bezier(.25,.8,.25,1);justify-content:flex-start}md-toast .md-toast-content::before{content:'';min-height:48px;visibility:hidden;display:inline-block}[dir=rtl] md-toast .md-toast-content{justify-content:flex-end}md-toast .md-toast-content span{flex:1 1 0%;box-sizing:border-box;min-width:0}md-toast.md-capsule{border-radius:24px}md-toast.md-capsule .md-toast-content{border-radius:24px}md-toast.ng-leave-active .md-toast-content{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-toast.md-swipedown .md-toast-content,md-toast.md-swipeleft .md-toast-content,md-toast.md-swiperight .md-toast-content,md-toast.md-swipeup .md-toast-content{transition:all .4s cubic-bezier(.25,.8,.25,1)}md-toast.ng-enter{opacity:0}md-toast.ng-enter .md-toast-content{transform:translate3d(0,100%,0)}md-toast.ng-enter.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast.ng-enter.ng-enter-active{opacity:1}md-toast.ng-enter.ng-enter-active .md-toast-content{transform:translate3d(0,0,0)}md-toast.ng-leave.ng-leave-active .md-toast-content{opacity:0;transform:translate3d(0,100%,0)}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}md-toast.ng-leave.ng-leave-active.md-top .md-toast-content{transform:translate3d(0,-100%,0)}md-toast .md-action{line-height:19px;margin-left:24px;margin-right:0;cursor:pointer;text-transform:uppercase;float:right}md-toast .md-button{min-width:0;margin-right:0;margin-left:12px}[dir=rtl] md-toast .md-button{margin-right:12px}[dir=rtl] md-toast .md-button{margin-left:0}@media (max-width:959px){md-toast{left:0;right:0;width:100%;max-width:100%;min-width:0;border-radius:0;bottom:0;padding:0}md-toast.ng-leave.ng-leave-active.md-swipeup .md-toast-content{transform:translate3d(0,-50%,0)}md-toast.ng-leave.ng-leave-active.md-swipedown .md-toast-content{transform:translate3d(0,50%,0)}}@media (min-width:960px){md-toast{min-width:304px}md-toast.md-bottom{bottom:0}md-toast.md-left{left:0}md-toast.md-right{right:0}md-toast.md-top{top:0}md-toast._md-start{left:0}[dir=rtl] md-toast._md-start{left:auto;right:0}md-toast._md-end{right:0}[dir=rtl] md-toast._md-end{right:auto;left:0}md-toast.ng-leave.ng-leave-active.md-swipeleft .md-toast-content{transform:translate3d(-50%,0,0)}md-toast.ng-leave.ng-leave-active.md-swiperight .md-toast-content{transform:translate3d(50%,0,0)}}@media (min-width:1920px){md-toast .md-toast-content{max-width:568px}}@media screen and (-ms-high-contrast:active){md-toast{border:1px solid #fff}}.md-toast-animating{overflow:hidden!important}md-toolbar{box-sizing:border-box;display:flex;flex-direction:column;position:relative;z-index:2;font-size:20px;min-height:64px;width:100%}md-toolbar._md-toolbar-transitions{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}md-toolbar.md-whiteframe-z1-add,md-toolbar.md-whiteframe-z1-remove{transition:box-shadow .5s linear}md-toolbar md-toolbar-filler{width:72px}md-toolbar *,md-toolbar :after,md-toolbar :before{box-sizing:border-box}md-toolbar.ng-animate{transition:none}md-toolbar.md-tall{height:128px;min-height:128px;max-height:128px}md-toolbar.md-medium-tall{height:88px;min-height:88px;max-height:88px}md-toolbar.md-medium-tall .md-toolbar-tools{height:48px;min-height:48px;max-height:48px}md-toolbar>.md-indent{margin-left:64px}[dir=rtl] md-toolbar>.md-indent{margin-left:auto;margin-right:64px}md-toolbar~md-content>md-list{padding:0}md-toolbar~md-content>md-list md-list-item:last-child md-divider{display:none}.md-toolbar-tools{font-size:20px;letter-spacing:.005em;box-sizing:border-box;font-weight:400;display:flex;align-items:center;flex-direction:row;width:100%;height:64px;max-height:64px;padding:0 16px;margin:0}.md-toolbar-tools h1,.md-toolbar-tools h2,.md-toolbar-tools h3{font-size:inherit;font-weight:inherit;margin:inherit}.md-toolbar-tools a{color:inherit;text-decoration:none}.md-toolbar-tools .fill-height{display:flex;align-items:center}.md-toolbar-tools .md-button{margin-top:0;margin-bottom:0}.md-toolbar-tools .md-button,.md-toolbar-tools .md-button.md-icon-button md-icon{transition-duration:.5s;transition-timing-function:cubic-bezier(.35,0,.25,1);transition-property:background-color,fill,color}.md-toolbar-tools .md-button.md-icon-button md-icon.ng-animate,.md-toolbar-tools .md-button.ng-animate{transition:none}.md-toolbar-tools>.md-button:first-child{margin-left:-8px}[dir=rtl] .md-toolbar-tools>.md-button:first-child{margin-left:auto;margin-right:-8px}.md-toolbar-tools>.md-button:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>.md-button:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child{margin-right:-8px}[dir=rtl] .md-toolbar-tools>md-menu:last-child{margin-right:auto;margin-left:-8px}.md-toolbar-tools>md-menu:last-child>.md-button{margin-right:0}[dir=rtl] .md-toolbar-tools>md-menu:last-child>.md-button{margin-right:auto;margin-left:0}@media screen and (-ms-high-contrast:active){.md-toolbar-tools{border-bottom:1px solid #fff}}@media (min-width:0) and (max-width:959px) and (orientation:portrait){md-toolbar{min-height:56px}.md-toolbar-tools{height:56px;max-height:56px}}@media (min-width:0) and (max-width:959px) and (orientation:landscape){md-toolbar{min-height:48px}.md-toolbar-tools{height:48px;max-height:48px}}md-tooltip{position:absolute;z-index:100;overflow:hidden;pointer-events:none;border-radius:4px;font-weight:500;font-size:14px}@media (min-width:960px){md-tooltip{font-size:10px}}md-tooltip .md-content{position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transform-origin:center top;transform:scale(0);opacity:0;height:32px;line-height:32px;padding-left:16px;padding-right:16px}@media (min-width:960px){md-tooltip .md-content{height:22px;line-height:22px;padding-left:8px;padding-right:8px}}md-tooltip .md-content.md-show-add{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s;transform:scale(0);opacity:0}md-tooltip .md-content.md-show,md-tooltip .md-content.md-show-add-active{transform:scale(1);opacity:.9;transform-origin:center top}md-tooltip .md-content.md-show-remove{transition:all .4s cubic-bezier(.25,.8,.25,1);transition-duration:.2s}md-tooltip .md-content.md-show-remove.md-show-remove-active{transform:scale(0);opacity:0}md-tooltip.md-hide{transition:all .3s cubic-bezier(.55,0,.55,.2)}md-tooltip.md-show{transition:all .4s cubic-bezier(.25,.8,.25,1);pointer-events:auto}.md-virtual-repeat-container{box-sizing:border-box;display:block;margin:0;overflow:hidden;padding:0;position:relative}.md-virtual-repeat-container .md-virtual-repeat-scroller{bottom:0;box-sizing:border-box;left:0;margin:0;overflow-x:hidden;padding:0;position:absolute;right:0;top:0;-webkit-overflow-scrolling:touch}.md-virtual-repeat-container .md-virtual-repeat-sizer{box-sizing:border-box;height:1px;display:block;margin:0;padding:0;width:1px}.md-virtual-repeat-container .md-virtual-repeat-offsetter{box-sizing:border-box;left:0;margin:0;padding:0;position:absolute;right:0;top:0}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-scroller{overflow-x:auto;overflow-y:hidden}.md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{bottom:16px;right:auto;white-space:nowrap}[dir=rtl] .md-virtual-repeat-container.md-orient-horizontal .md-virtual-repeat-offsetter{right:auto;left:auto}.md-whiteframe-1dp,.md-whiteframe-z1{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.md-whiteframe-2dp{box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}.md-whiteframe-3dp{box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.md-whiteframe-4dp,.md-whiteframe-z2{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.md-whiteframe-5dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)}.md-whiteframe-6dp{box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.md-whiteframe-7dp,.md-whiteframe-z3{box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.md-whiteframe-8dp{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.md-whiteframe-9dp{box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.md-whiteframe-10dp,.md-whiteframe-z4{box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)}.md-whiteframe-11dp{box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)}.md-whiteframe-12dp{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.md-whiteframe-13dp,.md-whiteframe-z5{box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)}.md-whiteframe-14dp{box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)}.md-whiteframe-15dp{box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)}.md-whiteframe-16dp{box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.md-whiteframe-17dp{box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)}.md-whiteframe-18dp{box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)}.md-whiteframe-19dp{box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)}.md-whiteframe-20dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)}.md-whiteframe-21dp{box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)}.md-whiteframe-22dp{box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)}.md-whiteframe-23dp{box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)}.md-whiteframe-24dp{box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}@media screen and (-ms-high-contrast:active){md-whiteframe{border:1px solid #fff}}@media print{[md-whiteframe],md-whiteframe{background-color:#fff}}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}@-moz-document url-prefix(){.layout-fill{margin:0;width:100%;min-height:100%;height:100%}}.flex-order{order:0}.flex-order--20{order:-20}.flex-order--19{order:-19}.flex-order--18{order:-18}.flex-order--17{order:-17}.flex-order--16{order:-16}.flex-order--15{order:-15}.flex-order--14{order:-14}.flex-order--13{order:-13}.flex-order--12{order:-12}.flex-order--11{order:-11}.flex-order--10{order:-10}.flex-order--9{order:-9}.flex-order--8{order:-8}.flex-order--7{order:-7}.flex-order--6{order:-6}.flex-order--5{order:-5}.flex-order--4{order:-4}.flex-order--3{order:-3}.flex-order--2{order:-2}.flex-order--1{order:-1}.flex-order-0{order:0}.flex-order-1{order:1}.flex-order-2{order:2}.flex-order-3{order:3}.flex-order-4{order:4}.flex-order-5{order:5}.flex-order-6{order:6}.flex-order-7{order:7}.flex-order-8{order:8}.flex-order-9{order:9}.flex-order-10{order:10}.flex-order-11{order:11}.flex-order-12{order:12}.flex-order-13{order:13}.flex-order-14{order:14}.flex-order-15{order:15}.flex-order-16{order:16}.flex-order-17{order:17}.flex-order-18{order:18}.flex-order-19{order:19}.flex-order-20{order:20}.flex-offset-0,.offset-0{margin-left:0}[dir=rtl] .flex-offset-0,[dir=rtl] .offset-0{margin-left:auto;margin-right:0}.flex-offset-5,.offset-5{margin-left:5%}[dir=rtl] .flex-offset-5,[dir=rtl] .offset-5{margin-left:auto;margin-right:5%}.flex-offset-10,.offset-10{margin-left:10%}[dir=rtl] .flex-offset-10,[dir=rtl] .offset-10{margin-left:auto;margin-right:10%}.flex-offset-15,.offset-15{margin-left:15%}[dir=rtl] .flex-offset-15,[dir=rtl] .offset-15{margin-left:auto;margin-right:15%}.flex-offset-20,.offset-20{margin-left:20%}[dir=rtl] .flex-offset-20,[dir=rtl] .offset-20{margin-left:auto;margin-right:20%}.flex-offset-25,.offset-25{margin-left:25%}[dir=rtl] .flex-offset-25,[dir=rtl] .offset-25{margin-left:auto;margin-right:25%}.flex-offset-30,.offset-30{margin-left:30%}[dir=rtl] .flex-offset-30,[dir=rtl] .offset-30{margin-left:auto;margin-right:30%}.flex-offset-35,.offset-35{margin-left:35%}[dir=rtl] .flex-offset-35,[dir=rtl] .offset-35{margin-left:auto;margin-right:35%}.flex-offset-40,.offset-40{margin-left:40%}[dir=rtl] .flex-offset-40,[dir=rtl] .offset-40{margin-left:auto;margin-right:40%}.flex-offset-45,.offset-45{margin-left:45%}[dir=rtl] .flex-offset-45,[dir=rtl] .offset-45{margin-left:auto;margin-right:45%}.flex-offset-50,.offset-50{margin-left:50%}[dir=rtl] .flex-offset-50,[dir=rtl] .offset-50{margin-left:auto;margin-right:50%}.flex-offset-55,.offset-55{margin-left:55%}[dir=rtl] .flex-offset-55,[dir=rtl] .offset-55{margin-left:auto;margin-right:55%}.flex-offset-60,.offset-60{margin-left:60%}[dir=rtl] .flex-offset-60,[dir=rtl] .offset-60{margin-left:auto;margin-right:60%}.flex-offset-65,.offset-65{margin-left:65%}[dir=rtl] .flex-offset-65,[dir=rtl] .offset-65{margin-left:auto;margin-right:65%}.flex-offset-70,.offset-70{margin-left:70%}[dir=rtl] .flex-offset-70,[dir=rtl] .offset-70{margin-left:auto;margin-right:70%}.flex-offset-75,.offset-75{margin-left:75%}[dir=rtl] .flex-offset-75,[dir=rtl] .offset-75{margin-left:auto;margin-right:75%}.flex-offset-80,.offset-80{margin-left:80%}[dir=rtl] .flex-offset-80,[dir=rtl] .offset-80{margin-left:auto;margin-right:80%}.flex-offset-85,.offset-85{margin-left:85%}[dir=rtl] .flex-offset-85,[dir=rtl] .offset-85{margin-left:auto;margin-right:85%}.flex-offset-90,.offset-90{margin-left:90%}[dir=rtl] .flex-offset-90,[dir=rtl] .offset-90{margin-left:auto;margin-right:90%}.flex-offset-95,.offset-95{margin-left:95%}[dir=rtl] .flex-offset-95,[dir=rtl] .offset-95{margin-left:auto;margin-right:95%}.flex-offset-33,.offset-33{margin-left:calc(100% / 3)}.flex-offset-66,.offset-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-66,[dir=rtl] .offset-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align,.layout-align-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-start,.layout-align-start-center,.layout-align-start-end,.layout-align-start-start,.layout-align-start-stretch{justify-content:flex-start}.layout-align-center,.layout-align-center-center,.layout-align-center-end,.layout-align-center-start,.layout-align-center-stretch{justify-content:center}.layout-align-end,.layout-align-end-center,.layout-align-end-end,.layout-align-end-start,.layout-align-end-stretch{justify-content:flex-end}.layout-align-space-around,.layout-align-space-around-center,.layout-align-space-around-end,.layout-align-space-around-start,.layout-align-space-around-stretch{justify-content:space-around}.layout-align-space-between,.layout-align-space-between-center,.layout-align-space-between-end,.layout-align-space-between-start,.layout-align-space-between-stretch{justify-content:space-between}.layout-align-center-start,.layout-align-end-start,.layout-align-space-around-start,.layout-align-space-between-start,.layout-align-start-start{align-items:flex-start;align-content:flex-start}.layout-align-center-center,.layout-align-end-center,.layout-align-space-around-center,.layout-align-space-between-center,.layout-align-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-center-center>*,.layout-align-end-center>*,.layout-align-space-around-center>*,.layout-align-space-between-center>*,.layout-align-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-center-end,.layout-align-end-end,.layout-align-space-around-end,.layout-align-space-between-end,.layout-align-start-end{align-items:flex-end;align-content:flex-end}.layout-align-center-stretch,.layout-align-end-stretch,.layout-align-space-around-stretch,.layout-align-space-between-stretch,.layout-align-start-stretch{align-items:stretch;align-content:stretch}.flex{flex:1;box-sizing:border-box}.flex-grow{flex:1 1 100%;box-sizing:border-box}.flex-initial{flex:0 1 auto;box-sizing:border-box}.flex-auto{flex:1 1 auto;box-sizing:border-box}.flex-none{flex:0 0 auto;box-sizing:border-box}.flex-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-row>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-row>.flex{min-width:0}.layout-column>.flex-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-column>.flex{min-height:0}.layout,.layout-column,.layout-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-column{flex-direction:column}.layout-row{flex-direction:row}.layout-padding-sm>*,.layout-padding>.flex-sm{padding:4px}.layout-padding,.layout-padding-gt-sm,.layout-padding-gt-sm>*,.layout-padding-md,.layout-padding-md>*,.layout-padding>*,.layout-padding>.flex,.layout-padding>.flex-gt-sm,.layout-padding>.flex-md{padding:8px}.layout-padding-gt-lg>*,.layout-padding-gt-md>*,.layout-padding-lg>*,.layout-padding>.flex-gt-lg,.layout-padding>.flex-gt-md,.layout-padding>.flex-lg{padding:16px}.layout-margin-sm>*,.layout-margin>.flex-sm{margin:4px}.layout-margin,.layout-margin-gt-sm,.layout-margin-gt-sm>*,.layout-margin-md,.layout-margin-md>*,.layout-margin>*,.layout-margin>.flex,.layout-margin>.flex-gt-sm,.layout-margin>.flex-md{margin:8px}.layout-margin-gt-lg>*,.layout-margin-gt-md>*,.layout-margin-lg>*,.layout-margin>.flex-gt-lg,.layout-margin>.flex-gt-md,.layout-margin>.flex-lg{margin:16px}.layout-wrap{flex-wrap:wrap}.layout-nowrap{flex-wrap:nowrap}.layout-fill{margin:0;width:100%;min-height:100%;height:100%}@media (max-width:599px){.hide-xs:not(.show-xs):not(.show),.hide:not(.show-xs):not(.show){display:none}.flex-order-xs--20{order:-20}.flex-order-xs--19{order:-19}.flex-order-xs--18{order:-18}.flex-order-xs--17{order:-17}.flex-order-xs--16{order:-16}.flex-order-xs--15{order:-15}.flex-order-xs--14{order:-14}.flex-order-xs--13{order:-13}.flex-order-xs--12{order:-12}.flex-order-xs--11{order:-11}.flex-order-xs--10{order:-10}.flex-order-xs--9{order:-9}.flex-order-xs--8{order:-8}.flex-order-xs--7{order:-7}.flex-order-xs--6{order:-6}.flex-order-xs--5{order:-5}.flex-order-xs--4{order:-4}.flex-order-xs--3{order:-3}.flex-order-xs--2{order:-2}.flex-order-xs--1{order:-1}.flex-order-xs-0{order:0}.flex-order-xs-1{order:1}.flex-order-xs-2{order:2}.flex-order-xs-3{order:3}.flex-order-xs-4{order:4}.flex-order-xs-5{order:5}.flex-order-xs-6{order:6}.flex-order-xs-7{order:7}.flex-order-xs-8{order:8}.flex-order-xs-9{order:9}.flex-order-xs-10{order:10}.flex-order-xs-11{order:11}.flex-order-xs-12{order:12}.flex-order-xs-13{order:13}.flex-order-xs-14{order:14}.flex-order-xs-15{order:15}.flex-order-xs-16{order:16}.flex-order-xs-17{order:17}.flex-order-xs-18{order:18}.flex-order-xs-19{order:19}.flex-order-xs-20{order:20}.flex-offset-xs-0,.offset-xs-0{margin-left:0}[dir=rtl] .flex-offset-xs-0,[dir=rtl] .offset-xs-0{margin-left:auto;margin-right:0}.flex-offset-xs-5,.offset-xs-5{margin-left:5%}[dir=rtl] .flex-offset-xs-5,[dir=rtl] .offset-xs-5{margin-left:auto;margin-right:5%}.flex-offset-xs-10,.offset-xs-10{margin-left:10%}[dir=rtl] .flex-offset-xs-10,[dir=rtl] .offset-xs-10{margin-left:auto;margin-right:10%}.flex-offset-xs-15,.offset-xs-15{margin-left:15%}[dir=rtl] .flex-offset-xs-15,[dir=rtl] .offset-xs-15{margin-left:auto;margin-right:15%}.flex-offset-xs-20,.offset-xs-20{margin-left:20%}[dir=rtl] .flex-offset-xs-20,[dir=rtl] .offset-xs-20{margin-left:auto;margin-right:20%}.flex-offset-xs-25,.offset-xs-25{margin-left:25%}[dir=rtl] .flex-offset-xs-25,[dir=rtl] .offset-xs-25{margin-left:auto;margin-right:25%}.flex-offset-xs-30,.offset-xs-30{margin-left:30%}[dir=rtl] .flex-offset-xs-30,[dir=rtl] .offset-xs-30{margin-left:auto;margin-right:30%}.flex-offset-xs-35,.offset-xs-35{margin-left:35%}[dir=rtl] .flex-offset-xs-35,[dir=rtl] .offset-xs-35{margin-left:auto;margin-right:35%}.flex-offset-xs-40,.offset-xs-40{margin-left:40%}[dir=rtl] .flex-offset-xs-40,[dir=rtl] .offset-xs-40{margin-left:auto;margin-right:40%}.flex-offset-xs-45,.offset-xs-45{margin-left:45%}[dir=rtl] .flex-offset-xs-45,[dir=rtl] .offset-xs-45{margin-left:auto;margin-right:45%}.flex-offset-xs-50,.offset-xs-50{margin-left:50%}[dir=rtl] .flex-offset-xs-50,[dir=rtl] .offset-xs-50{margin-left:auto;margin-right:50%}.flex-offset-xs-55,.offset-xs-55{margin-left:55%}[dir=rtl] .flex-offset-xs-55,[dir=rtl] .offset-xs-55{margin-left:auto;margin-right:55%}.flex-offset-xs-60,.offset-xs-60{margin-left:60%}[dir=rtl] .flex-offset-xs-60,[dir=rtl] .offset-xs-60{margin-left:auto;margin-right:60%}.flex-offset-xs-65,.offset-xs-65{margin-left:65%}[dir=rtl] .flex-offset-xs-65,[dir=rtl] .offset-xs-65{margin-left:auto;margin-right:65%}.flex-offset-xs-70,.offset-xs-70{margin-left:70%}[dir=rtl] .flex-offset-xs-70,[dir=rtl] .offset-xs-70{margin-left:auto;margin-right:70%}.flex-offset-xs-75,.offset-xs-75{margin-left:75%}[dir=rtl] .flex-offset-xs-75,[dir=rtl] .offset-xs-75{margin-left:auto;margin-right:75%}.flex-offset-xs-80,.offset-xs-80{margin-left:80%}[dir=rtl] .flex-offset-xs-80,[dir=rtl] .offset-xs-80{margin-left:auto;margin-right:80%}.flex-offset-xs-85,.offset-xs-85{margin-left:85%}[dir=rtl] .flex-offset-xs-85,[dir=rtl] .offset-xs-85{margin-left:auto;margin-right:85%}.flex-offset-xs-90,.offset-xs-90{margin-left:90%}[dir=rtl] .flex-offset-xs-90,[dir=rtl] .offset-xs-90{margin-left:auto;margin-right:90%}.flex-offset-xs-95,.offset-xs-95{margin-left:95%}[dir=rtl] .flex-offset-xs-95,[dir=rtl] .offset-xs-95{margin-left:auto;margin-right:95%}.flex-offset-xs-33,.offset-xs-33{margin-left:calc(100% / 3)}.flex-offset-xs-66,.offset-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xs-66,[dir=rtl] .offset-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xs,.layout-align-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xs-start,.layout-align-xs-start-center,.layout-align-xs-start-end,.layout-align-xs-start-start,.layout-align-xs-start-stretch{justify-content:flex-start}.layout-align-xs-center,.layout-align-xs-center-center,.layout-align-xs-center-end,.layout-align-xs-center-start,.layout-align-xs-center-stretch{justify-content:center}.layout-align-xs-end,.layout-align-xs-end-center,.layout-align-xs-end-end,.layout-align-xs-end-start,.layout-align-xs-end-stretch{justify-content:flex-end}.layout-align-xs-space-around,.layout-align-xs-space-around-center,.layout-align-xs-space-around-end,.layout-align-xs-space-around-start,.layout-align-xs-space-around-stretch{justify-content:space-around}.layout-align-xs-space-between,.layout-align-xs-space-between-center,.layout-align-xs-space-between-end,.layout-align-xs-space-between-start,.layout-align-xs-space-between-stretch{justify-content:space-between}.layout-align-xs-center-start,.layout-align-xs-end-start,.layout-align-xs-space-around-start,.layout-align-xs-space-between-start,.layout-align-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xs-center-center,.layout-align-xs-end-center,.layout-align-xs-space-around-center,.layout-align-xs-space-between-center,.layout-align-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xs-center-center>*,.layout-align-xs-end-center>*,.layout-align-xs-space-around-center>*,.layout-align-xs-space-between-center>*,.layout-align-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xs-center-end,.layout-align-xs-end-end,.layout-align-xs-space-around-end,.layout-align-xs-space-between-end,.layout-align-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xs-center-stretch,.layout-align-xs-end-stretch,.layout-align-xs-space-around-stretch,.layout-align-xs-space-between-stretch,.layout-align-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-xs{flex:1;box-sizing:border-box}.flex-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xs-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-xs-column>.flex-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-row>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-column>.flex-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xs-row>.flex{min-width:0}.layout-xs-column>.flex-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xs-column>.flex-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xs-column>.flex{min-height:0}.layout-xs,.layout-xs-column,.layout-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xs-column{flex-direction:column}.layout-xs-row{flex-direction:row}}@media (min-width:600px){.flex-order-gt-xs--20{order:-20}.flex-order-gt-xs--19{order:-19}.flex-order-gt-xs--18{order:-18}.flex-order-gt-xs--17{order:-17}.flex-order-gt-xs--16{order:-16}.flex-order-gt-xs--15{order:-15}.flex-order-gt-xs--14{order:-14}.flex-order-gt-xs--13{order:-13}.flex-order-gt-xs--12{order:-12}.flex-order-gt-xs--11{order:-11}.flex-order-gt-xs--10{order:-10}.flex-order-gt-xs--9{order:-9}.flex-order-gt-xs--8{order:-8}.flex-order-gt-xs--7{order:-7}.flex-order-gt-xs--6{order:-6}.flex-order-gt-xs--5{order:-5}.flex-order-gt-xs--4{order:-4}.flex-order-gt-xs--3{order:-3}.flex-order-gt-xs--2{order:-2}.flex-order-gt-xs--1{order:-1}.flex-order-gt-xs-0{order:0}.flex-order-gt-xs-1{order:1}.flex-order-gt-xs-2{order:2}.flex-order-gt-xs-3{order:3}.flex-order-gt-xs-4{order:4}.flex-order-gt-xs-5{order:5}.flex-order-gt-xs-6{order:6}.flex-order-gt-xs-7{order:7}.flex-order-gt-xs-8{order:8}.flex-order-gt-xs-9{order:9}.flex-order-gt-xs-10{order:10}.flex-order-gt-xs-11{order:11}.flex-order-gt-xs-12{order:12}.flex-order-gt-xs-13{order:13}.flex-order-gt-xs-14{order:14}.flex-order-gt-xs-15{order:15}.flex-order-gt-xs-16{order:16}.flex-order-gt-xs-17{order:17}.flex-order-gt-xs-18{order:18}.flex-order-gt-xs-19{order:19}.flex-order-gt-xs-20{order:20}.flex-offset-gt-xs-0,.offset-gt-xs-0{margin-left:0}[dir=rtl] .flex-offset-gt-xs-0,[dir=rtl] .offset-gt-xs-0{margin-left:auto;margin-right:0}.flex-offset-gt-xs-5,.offset-gt-xs-5{margin-left:5%}[dir=rtl] .flex-offset-gt-xs-5,[dir=rtl] .offset-gt-xs-5{margin-left:auto;margin-right:5%}.flex-offset-gt-xs-10,.offset-gt-xs-10{margin-left:10%}[dir=rtl] .flex-offset-gt-xs-10,[dir=rtl] .offset-gt-xs-10{margin-left:auto;margin-right:10%}.flex-offset-gt-xs-15,.offset-gt-xs-15{margin-left:15%}[dir=rtl] .flex-offset-gt-xs-15,[dir=rtl] .offset-gt-xs-15{margin-left:auto;margin-right:15%}.flex-offset-gt-xs-20,.offset-gt-xs-20{margin-left:20%}[dir=rtl] .flex-offset-gt-xs-20,[dir=rtl] .offset-gt-xs-20{margin-left:auto;margin-right:20%}.flex-offset-gt-xs-25,.offset-gt-xs-25{margin-left:25%}[dir=rtl] .flex-offset-gt-xs-25,[dir=rtl] .offset-gt-xs-25{margin-left:auto;margin-right:25%}.flex-offset-gt-xs-30,.offset-gt-xs-30{margin-left:30%}[dir=rtl] .flex-offset-gt-xs-30,[dir=rtl] .offset-gt-xs-30{margin-left:auto;margin-right:30%}.flex-offset-gt-xs-35,.offset-gt-xs-35{margin-left:35%}[dir=rtl] .flex-offset-gt-xs-35,[dir=rtl] .offset-gt-xs-35{margin-left:auto;margin-right:35%}.flex-offset-gt-xs-40,.offset-gt-xs-40{margin-left:40%}[dir=rtl] .flex-offset-gt-xs-40,[dir=rtl] .offset-gt-xs-40{margin-left:auto;margin-right:40%}.flex-offset-gt-xs-45,.offset-gt-xs-45{margin-left:45%}[dir=rtl] .flex-offset-gt-xs-45,[dir=rtl] .offset-gt-xs-45{margin-left:auto;margin-right:45%}.flex-offset-gt-xs-50,.offset-gt-xs-50{margin-left:50%}[dir=rtl] .flex-offset-gt-xs-50,[dir=rtl] .offset-gt-xs-50{margin-left:auto;margin-right:50%}.flex-offset-gt-xs-55,.offset-gt-xs-55{margin-left:55%}[dir=rtl] .flex-offset-gt-xs-55,[dir=rtl] .offset-gt-xs-55{margin-left:auto;margin-right:55%}.flex-offset-gt-xs-60,.offset-gt-xs-60{margin-left:60%}[dir=rtl] .flex-offset-gt-xs-60,[dir=rtl] .offset-gt-xs-60{margin-left:auto;margin-right:60%}.flex-offset-gt-xs-65,.offset-gt-xs-65{margin-left:65%}[dir=rtl] .flex-offset-gt-xs-65,[dir=rtl] .offset-gt-xs-65{margin-left:auto;margin-right:65%}.flex-offset-gt-xs-70,.offset-gt-xs-70{margin-left:70%}[dir=rtl] .flex-offset-gt-xs-70,[dir=rtl] .offset-gt-xs-70{margin-left:auto;margin-right:70%}.flex-offset-gt-xs-75,.offset-gt-xs-75{margin-left:75%}[dir=rtl] .flex-offset-gt-xs-75,[dir=rtl] .offset-gt-xs-75{margin-left:auto;margin-right:75%}.flex-offset-gt-xs-80,.offset-gt-xs-80{margin-left:80%}[dir=rtl] .flex-offset-gt-xs-80,[dir=rtl] .offset-gt-xs-80{margin-left:auto;margin-right:80%}.flex-offset-gt-xs-85,.offset-gt-xs-85{margin-left:85%}[dir=rtl] .flex-offset-gt-xs-85,[dir=rtl] .offset-gt-xs-85{margin-left:auto;margin-right:85%}.flex-offset-gt-xs-90,.offset-gt-xs-90{margin-left:90%}[dir=rtl] .flex-offset-gt-xs-90,[dir=rtl] .offset-gt-xs-90{margin-left:auto;margin-right:90%}.flex-offset-gt-xs-95,.offset-gt-xs-95{margin-left:95%}[dir=rtl] .flex-offset-gt-xs-95,[dir=rtl] .offset-gt-xs-95{margin-left:auto;margin-right:95%}.flex-offset-gt-xs-33,.offset-gt-xs-33{margin-left:calc(100% / 3)}.flex-offset-gt-xs-66,.offset-gt-xs-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-xs-66,[dir=rtl] .offset-gt-xs-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-xs,.layout-align-gt-xs-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-xs-start,.layout-align-gt-xs-start-center,.layout-align-gt-xs-start-end,.layout-align-gt-xs-start-start,.layout-align-gt-xs-start-stretch{justify-content:flex-start}.layout-align-gt-xs-center,.layout-align-gt-xs-center-center,.layout-align-gt-xs-center-end,.layout-align-gt-xs-center-start,.layout-align-gt-xs-center-stretch{justify-content:center}.layout-align-gt-xs-end,.layout-align-gt-xs-end-center,.layout-align-gt-xs-end-end,.layout-align-gt-xs-end-start,.layout-align-gt-xs-end-stretch{justify-content:flex-end}.layout-align-gt-xs-space-around,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-around-stretch{justify-content:space-around}.layout-align-gt-xs-space-between,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-space-between-stretch{justify-content:space-between}.layout-align-gt-xs-center-start,.layout-align-gt-xs-end-start,.layout-align-gt-xs-space-around-start,.layout-align-gt-xs-space-between-start,.layout-align-gt-xs-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-xs-center-center,.layout-align-gt-xs-end-center,.layout-align-gt-xs-space-around-center,.layout-align-gt-xs-space-between-center,.layout-align-gt-xs-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-xs-center-center>*,.layout-align-gt-xs-end-center>*,.layout-align-gt-xs-space-around-center>*,.layout-align-gt-xs-space-between-center>*,.layout-align-gt-xs-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-xs-center-end,.layout-align-gt-xs-end-end,.layout-align-gt-xs-space-around-end,.layout-align-gt-xs-space-between-end,.layout-align-gt-xs-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-xs-center-stretch,.layout-align-gt-xs-end-stretch,.layout-align-gt-xs-space-around-stretch,.layout-align-gt-xs-space-between-stretch,.layout-align-gt-xs-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-xs{flex:1;box-sizing:border-box}.flex-gt-xs-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-xs-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-xs-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-xs-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-xs-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-xs-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-xs-column>.flex-gt-xs-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex-gt-xs-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-xs-row>.flex{min-width:0}.layout-gt-xs-column>.flex-gt-xs-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-xs-column>.flex-gt-xs-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-xs-column>.flex{min-height:0}.layout-gt-xs,.layout-gt-xs-column,.layout-gt-xs-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-xs-column{flex-direction:column}.layout-gt-xs-row{flex-direction:row}}@media (min-width:600px) and (max-width:959px){.hide-gt-xs:not(.show-gt-xs):not(.show-sm):not(.show),.hide:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.hide-sm:not(.show-gt-xs):not(.show-sm):not(.show){display:none}.flex-order-sm--20{order:-20}.flex-order-sm--19{order:-19}.flex-order-sm--18{order:-18}.flex-order-sm--17{order:-17}.flex-order-sm--16{order:-16}.flex-order-sm--15{order:-15}.flex-order-sm--14{order:-14}.flex-order-sm--13{order:-13}.flex-order-sm--12{order:-12}.flex-order-sm--11{order:-11}.flex-order-sm--10{order:-10}.flex-order-sm--9{order:-9}.flex-order-sm--8{order:-8}.flex-order-sm--7{order:-7}.flex-order-sm--6{order:-6}.flex-order-sm--5{order:-5}.flex-order-sm--4{order:-4}.flex-order-sm--3{order:-3}.flex-order-sm--2{order:-2}.flex-order-sm--1{order:-1}.flex-order-sm-0{order:0}.flex-order-sm-1{order:1}.flex-order-sm-2{order:2}.flex-order-sm-3{order:3}.flex-order-sm-4{order:4}.flex-order-sm-5{order:5}.flex-order-sm-6{order:6}.flex-order-sm-7{order:7}.flex-order-sm-8{order:8}.flex-order-sm-9{order:9}.flex-order-sm-10{order:10}.flex-order-sm-11{order:11}.flex-order-sm-12{order:12}.flex-order-sm-13{order:13}.flex-order-sm-14{order:14}.flex-order-sm-15{order:15}.flex-order-sm-16{order:16}.flex-order-sm-17{order:17}.flex-order-sm-18{order:18}.flex-order-sm-19{order:19}.flex-order-sm-20{order:20}.flex-offset-sm-0,.offset-sm-0{margin-left:0}[dir=rtl] .flex-offset-sm-0,[dir=rtl] .offset-sm-0{margin-left:auto;margin-right:0}.flex-offset-sm-5,.offset-sm-5{margin-left:5%}[dir=rtl] .flex-offset-sm-5,[dir=rtl] .offset-sm-5{margin-left:auto;margin-right:5%}.flex-offset-sm-10,.offset-sm-10{margin-left:10%}[dir=rtl] .flex-offset-sm-10,[dir=rtl] .offset-sm-10{margin-left:auto;margin-right:10%}.flex-offset-sm-15,.offset-sm-15{margin-left:15%}[dir=rtl] .flex-offset-sm-15,[dir=rtl] .offset-sm-15{margin-left:auto;margin-right:15%}.flex-offset-sm-20,.offset-sm-20{margin-left:20%}[dir=rtl] .flex-offset-sm-20,[dir=rtl] .offset-sm-20{margin-left:auto;margin-right:20%}.flex-offset-sm-25,.offset-sm-25{margin-left:25%}[dir=rtl] .flex-offset-sm-25,[dir=rtl] .offset-sm-25{margin-left:auto;margin-right:25%}.flex-offset-sm-30,.offset-sm-30{margin-left:30%}[dir=rtl] .flex-offset-sm-30,[dir=rtl] .offset-sm-30{margin-left:auto;margin-right:30%}.flex-offset-sm-35,.offset-sm-35{margin-left:35%}[dir=rtl] .flex-offset-sm-35,[dir=rtl] .offset-sm-35{margin-left:auto;margin-right:35%}.flex-offset-sm-40,.offset-sm-40{margin-left:40%}[dir=rtl] .flex-offset-sm-40,[dir=rtl] .offset-sm-40{margin-left:auto;margin-right:40%}.flex-offset-sm-45,.offset-sm-45{margin-left:45%}[dir=rtl] .flex-offset-sm-45,[dir=rtl] .offset-sm-45{margin-left:auto;margin-right:45%}.flex-offset-sm-50,.offset-sm-50{margin-left:50%}[dir=rtl] .flex-offset-sm-50,[dir=rtl] .offset-sm-50{margin-left:auto;margin-right:50%}.flex-offset-sm-55,.offset-sm-55{margin-left:55%}[dir=rtl] .flex-offset-sm-55,[dir=rtl] .offset-sm-55{margin-left:auto;margin-right:55%}.flex-offset-sm-60,.offset-sm-60{margin-left:60%}[dir=rtl] .flex-offset-sm-60,[dir=rtl] .offset-sm-60{margin-left:auto;margin-right:60%}.flex-offset-sm-65,.offset-sm-65{margin-left:65%}[dir=rtl] .flex-offset-sm-65,[dir=rtl] .offset-sm-65{margin-left:auto;margin-right:65%}.flex-offset-sm-70,.offset-sm-70{margin-left:70%}[dir=rtl] .flex-offset-sm-70,[dir=rtl] .offset-sm-70{margin-left:auto;margin-right:70%}.flex-offset-sm-75,.offset-sm-75{margin-left:75%}[dir=rtl] .flex-offset-sm-75,[dir=rtl] .offset-sm-75{margin-left:auto;margin-right:75%}.flex-offset-sm-80,.offset-sm-80{margin-left:80%}[dir=rtl] .flex-offset-sm-80,[dir=rtl] .offset-sm-80{margin-left:auto;margin-right:80%}.flex-offset-sm-85,.offset-sm-85{margin-left:85%}[dir=rtl] .flex-offset-sm-85,[dir=rtl] .offset-sm-85{margin-left:auto;margin-right:85%}.flex-offset-sm-90,.offset-sm-90{margin-left:90%}[dir=rtl] .flex-offset-sm-90,[dir=rtl] .offset-sm-90{margin-left:auto;margin-right:90%}.flex-offset-sm-95,.offset-sm-95{margin-left:95%}[dir=rtl] .flex-offset-sm-95,[dir=rtl] .offset-sm-95{margin-left:auto;margin-right:95%}.flex-offset-sm-33,.offset-sm-33{margin-left:calc(100% / 3)}.flex-offset-sm-66,.offset-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-sm-66,[dir=rtl] .offset-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-sm,.layout-align-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-sm-start,.layout-align-sm-start-center,.layout-align-sm-start-end,.layout-align-sm-start-start,.layout-align-sm-start-stretch{justify-content:flex-start}.layout-align-sm-center,.layout-align-sm-center-center,.layout-align-sm-center-end,.layout-align-sm-center-start,.layout-align-sm-center-stretch{justify-content:center}.layout-align-sm-end,.layout-align-sm-end-center,.layout-align-sm-end-end,.layout-align-sm-end-start,.layout-align-sm-end-stretch{justify-content:flex-end}.layout-align-sm-space-around,.layout-align-sm-space-around-center,.layout-align-sm-space-around-end,.layout-align-sm-space-around-start,.layout-align-sm-space-around-stretch{justify-content:space-around}.layout-align-sm-space-between,.layout-align-sm-space-between-center,.layout-align-sm-space-between-end,.layout-align-sm-space-between-start,.layout-align-sm-space-between-stretch{justify-content:space-between}.layout-align-sm-center-start,.layout-align-sm-end-start,.layout-align-sm-space-around-start,.layout-align-sm-space-between-start,.layout-align-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-sm-center-center,.layout-align-sm-end-center,.layout-align-sm-space-around-center,.layout-align-sm-space-between-center,.layout-align-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-sm-center-center>*,.layout-align-sm-end-center>*,.layout-align-sm-space-around-center>*,.layout-align-sm-space-between-center>*,.layout-align-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-sm-center-end,.layout-align-sm-end-end,.layout-align-sm-space-around-end,.layout-align-sm-space-between-end,.layout-align-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-sm-center-stretch,.layout-align-sm-end-stretch,.layout-align-sm-space-around-stretch,.layout-align-sm-space-between-stretch,.layout-align-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-sm{flex:1;box-sizing:border-box}.flex-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-sm-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-sm-column>.flex-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-row>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-column>.flex-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-sm-row>.flex{min-width:0}.layout-sm-column>.flex-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-sm-column>.flex-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-sm-column>.flex{min-height:0}.layout-sm,.layout-sm-column,.layout-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-sm-column{flex-direction:column}.layout-sm-row{flex-direction:row}}@media (min-width:960px){.flex-order-gt-sm--20{order:-20}.flex-order-gt-sm--19{order:-19}.flex-order-gt-sm--18{order:-18}.flex-order-gt-sm--17{order:-17}.flex-order-gt-sm--16{order:-16}.flex-order-gt-sm--15{order:-15}.flex-order-gt-sm--14{order:-14}.flex-order-gt-sm--13{order:-13}.flex-order-gt-sm--12{order:-12}.flex-order-gt-sm--11{order:-11}.flex-order-gt-sm--10{order:-10}.flex-order-gt-sm--9{order:-9}.flex-order-gt-sm--8{order:-8}.flex-order-gt-sm--7{order:-7}.flex-order-gt-sm--6{order:-6}.flex-order-gt-sm--5{order:-5}.flex-order-gt-sm--4{order:-4}.flex-order-gt-sm--3{order:-3}.flex-order-gt-sm--2{order:-2}.flex-order-gt-sm--1{order:-1}.flex-order-gt-sm-0{order:0}.flex-order-gt-sm-1{order:1}.flex-order-gt-sm-2{order:2}.flex-order-gt-sm-3{order:3}.flex-order-gt-sm-4{order:4}.flex-order-gt-sm-5{order:5}.flex-order-gt-sm-6{order:6}.flex-order-gt-sm-7{order:7}.flex-order-gt-sm-8{order:8}.flex-order-gt-sm-9{order:9}.flex-order-gt-sm-10{order:10}.flex-order-gt-sm-11{order:11}.flex-order-gt-sm-12{order:12}.flex-order-gt-sm-13{order:13}.flex-order-gt-sm-14{order:14}.flex-order-gt-sm-15{order:15}.flex-order-gt-sm-16{order:16}.flex-order-gt-sm-17{order:17}.flex-order-gt-sm-18{order:18}.flex-order-gt-sm-19{order:19}.flex-order-gt-sm-20{order:20}.flex-offset-gt-sm-0,.offset-gt-sm-0{margin-left:0}[dir=rtl] .flex-offset-gt-sm-0,[dir=rtl] .offset-gt-sm-0{margin-left:auto;margin-right:0}.flex-offset-gt-sm-5,.offset-gt-sm-5{margin-left:5%}[dir=rtl] .flex-offset-gt-sm-5,[dir=rtl] .offset-gt-sm-5{margin-left:auto;margin-right:5%}.flex-offset-gt-sm-10,.offset-gt-sm-10{margin-left:10%}[dir=rtl] .flex-offset-gt-sm-10,[dir=rtl] .offset-gt-sm-10{margin-left:auto;margin-right:10%}.flex-offset-gt-sm-15,.offset-gt-sm-15{margin-left:15%}[dir=rtl] .flex-offset-gt-sm-15,[dir=rtl] .offset-gt-sm-15{margin-left:auto;margin-right:15%}.flex-offset-gt-sm-20,.offset-gt-sm-20{margin-left:20%}[dir=rtl] .flex-offset-gt-sm-20,[dir=rtl] .offset-gt-sm-20{margin-left:auto;margin-right:20%}.flex-offset-gt-sm-25,.offset-gt-sm-25{margin-left:25%}[dir=rtl] .flex-offset-gt-sm-25,[dir=rtl] .offset-gt-sm-25{margin-left:auto;margin-right:25%}.flex-offset-gt-sm-30,.offset-gt-sm-30{margin-left:30%}[dir=rtl] .flex-offset-gt-sm-30,[dir=rtl] .offset-gt-sm-30{margin-left:auto;margin-right:30%}.flex-offset-gt-sm-35,.offset-gt-sm-35{margin-left:35%}[dir=rtl] .flex-offset-gt-sm-35,[dir=rtl] .offset-gt-sm-35{margin-left:auto;margin-right:35%}.flex-offset-gt-sm-40,.offset-gt-sm-40{margin-left:40%}[dir=rtl] .flex-offset-gt-sm-40,[dir=rtl] .offset-gt-sm-40{margin-left:auto;margin-right:40%}.flex-offset-gt-sm-45,.offset-gt-sm-45{margin-left:45%}[dir=rtl] .flex-offset-gt-sm-45,[dir=rtl] .offset-gt-sm-45{margin-left:auto;margin-right:45%}.flex-offset-gt-sm-50,.offset-gt-sm-50{margin-left:50%}[dir=rtl] .flex-offset-gt-sm-50,[dir=rtl] .offset-gt-sm-50{margin-left:auto;margin-right:50%}.flex-offset-gt-sm-55,.offset-gt-sm-55{margin-left:55%}[dir=rtl] .flex-offset-gt-sm-55,[dir=rtl] .offset-gt-sm-55{margin-left:auto;margin-right:55%}.flex-offset-gt-sm-60,.offset-gt-sm-60{margin-left:60%}[dir=rtl] .flex-offset-gt-sm-60,[dir=rtl] .offset-gt-sm-60{margin-left:auto;margin-right:60%}.flex-offset-gt-sm-65,.offset-gt-sm-65{margin-left:65%}[dir=rtl] .flex-offset-gt-sm-65,[dir=rtl] .offset-gt-sm-65{margin-left:auto;margin-right:65%}.flex-offset-gt-sm-70,.offset-gt-sm-70{margin-left:70%}[dir=rtl] .flex-offset-gt-sm-70,[dir=rtl] .offset-gt-sm-70{margin-left:auto;margin-right:70%}.flex-offset-gt-sm-75,.offset-gt-sm-75{margin-left:75%}[dir=rtl] .flex-offset-gt-sm-75,[dir=rtl] .offset-gt-sm-75{margin-left:auto;margin-right:75%}.flex-offset-gt-sm-80,.offset-gt-sm-80{margin-left:80%}[dir=rtl] .flex-offset-gt-sm-80,[dir=rtl] .offset-gt-sm-80{margin-left:auto;margin-right:80%}.flex-offset-gt-sm-85,.offset-gt-sm-85{margin-left:85%}[dir=rtl] .flex-offset-gt-sm-85,[dir=rtl] .offset-gt-sm-85{margin-left:auto;margin-right:85%}.flex-offset-gt-sm-90,.offset-gt-sm-90{margin-left:90%}[dir=rtl] .flex-offset-gt-sm-90,[dir=rtl] .offset-gt-sm-90{margin-left:auto;margin-right:90%}.flex-offset-gt-sm-95,.offset-gt-sm-95{margin-left:95%}[dir=rtl] .flex-offset-gt-sm-95,[dir=rtl] .offset-gt-sm-95{margin-left:auto;margin-right:95%}.flex-offset-gt-sm-33,.offset-gt-sm-33{margin-left:calc(100% / 3)}.flex-offset-gt-sm-66,.offset-gt-sm-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-sm-66,[dir=rtl] .offset-gt-sm-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-sm,.layout-align-gt-sm-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-sm-start,.layout-align-gt-sm-start-center,.layout-align-gt-sm-start-end,.layout-align-gt-sm-start-start,.layout-align-gt-sm-start-stretch{justify-content:flex-start}.layout-align-gt-sm-center,.layout-align-gt-sm-center-center,.layout-align-gt-sm-center-end,.layout-align-gt-sm-center-start,.layout-align-gt-sm-center-stretch{justify-content:center}.layout-align-gt-sm-end,.layout-align-gt-sm-end-center,.layout-align-gt-sm-end-end,.layout-align-gt-sm-end-start,.layout-align-gt-sm-end-stretch{justify-content:flex-end}.layout-align-gt-sm-space-around,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-around-stretch{justify-content:space-around}.layout-align-gt-sm-space-between,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-space-between-stretch{justify-content:space-between}.layout-align-gt-sm-center-start,.layout-align-gt-sm-end-start,.layout-align-gt-sm-space-around-start,.layout-align-gt-sm-space-between-start,.layout-align-gt-sm-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-sm-center-center,.layout-align-gt-sm-end-center,.layout-align-gt-sm-space-around-center,.layout-align-gt-sm-space-between-center,.layout-align-gt-sm-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-sm-center-center>*,.layout-align-gt-sm-end-center>*,.layout-align-gt-sm-space-around-center>*,.layout-align-gt-sm-space-between-center>*,.layout-align-gt-sm-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-sm-center-end,.layout-align-gt-sm-end-end,.layout-align-gt-sm-space-around-end,.layout-align-gt-sm-space-between-end,.layout-align-gt-sm-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-sm-center-stretch,.layout-align-gt-sm-end-stretch,.layout-align-gt-sm-space-around-stretch,.layout-align-gt-sm-space-between-stretch,.layout-align-gt-sm-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-sm{flex:1;box-sizing:border-box}.flex-gt-sm-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-sm-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-sm-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-sm-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-sm-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-sm-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-sm-column>.flex-gt-sm-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex-gt-sm-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-sm-row>.flex{min-width:0}.layout-gt-sm-column>.flex-gt-sm-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-sm-column>.flex-gt-sm-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-sm-column>.flex{min-height:0}.layout-gt-sm,.layout-gt-sm-column,.layout-gt-sm-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-sm-column{flex-direction:column}.layout-gt-sm-row{flex-direction:row}}@media (min-width:960px) and (max-width:1279px){.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-md):not(.show){display:none}.hide-md:not(.show-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-md--20{order:-20}.flex-order-md--19{order:-19}.flex-order-md--18{order:-18}.flex-order-md--17{order:-17}.flex-order-md--16{order:-16}.flex-order-md--15{order:-15}.flex-order-md--14{order:-14}.flex-order-md--13{order:-13}.flex-order-md--12{order:-12}.flex-order-md--11{order:-11}.flex-order-md--10{order:-10}.flex-order-md--9{order:-9}.flex-order-md--8{order:-8}.flex-order-md--7{order:-7}.flex-order-md--6{order:-6}.flex-order-md--5{order:-5}.flex-order-md--4{order:-4}.flex-order-md--3{order:-3}.flex-order-md--2{order:-2}.flex-order-md--1{order:-1}.flex-order-md-0{order:0}.flex-order-md-1{order:1}.flex-order-md-2{order:2}.flex-order-md-3{order:3}.flex-order-md-4{order:4}.flex-order-md-5{order:5}.flex-order-md-6{order:6}.flex-order-md-7{order:7}.flex-order-md-8{order:8}.flex-order-md-9{order:9}.flex-order-md-10{order:10}.flex-order-md-11{order:11}.flex-order-md-12{order:12}.flex-order-md-13{order:13}.flex-order-md-14{order:14}.flex-order-md-15{order:15}.flex-order-md-16{order:16}.flex-order-md-17{order:17}.flex-order-md-18{order:18}.flex-order-md-19{order:19}.flex-order-md-20{order:20}.flex-offset-md-0,.offset-md-0{margin-left:0}[dir=rtl] .flex-offset-md-0,[dir=rtl] .offset-md-0{margin-left:auto;margin-right:0}.flex-offset-md-5,.offset-md-5{margin-left:5%}[dir=rtl] .flex-offset-md-5,[dir=rtl] .offset-md-5{margin-left:auto;margin-right:5%}.flex-offset-md-10,.offset-md-10{margin-left:10%}[dir=rtl] .flex-offset-md-10,[dir=rtl] .offset-md-10{margin-left:auto;margin-right:10%}.flex-offset-md-15,.offset-md-15{margin-left:15%}[dir=rtl] .flex-offset-md-15,[dir=rtl] .offset-md-15{margin-left:auto;margin-right:15%}.flex-offset-md-20,.offset-md-20{margin-left:20%}[dir=rtl] .flex-offset-md-20,[dir=rtl] .offset-md-20{margin-left:auto;margin-right:20%}.flex-offset-md-25,.offset-md-25{margin-left:25%}[dir=rtl] .flex-offset-md-25,[dir=rtl] .offset-md-25{margin-left:auto;margin-right:25%}.flex-offset-md-30,.offset-md-30{margin-left:30%}[dir=rtl] .flex-offset-md-30,[dir=rtl] .offset-md-30{margin-left:auto;margin-right:30%}.flex-offset-md-35,.offset-md-35{margin-left:35%}[dir=rtl] .flex-offset-md-35,[dir=rtl] .offset-md-35{margin-left:auto;margin-right:35%}.flex-offset-md-40,.offset-md-40{margin-left:40%}[dir=rtl] .flex-offset-md-40,[dir=rtl] .offset-md-40{margin-left:auto;margin-right:40%}.flex-offset-md-45,.offset-md-45{margin-left:45%}[dir=rtl] .flex-offset-md-45,[dir=rtl] .offset-md-45{margin-left:auto;margin-right:45%}.flex-offset-md-50,.offset-md-50{margin-left:50%}[dir=rtl] .flex-offset-md-50,[dir=rtl] .offset-md-50{margin-left:auto;margin-right:50%}.flex-offset-md-55,.offset-md-55{margin-left:55%}[dir=rtl] .flex-offset-md-55,[dir=rtl] .offset-md-55{margin-left:auto;margin-right:55%}.flex-offset-md-60,.offset-md-60{margin-left:60%}[dir=rtl] .flex-offset-md-60,[dir=rtl] .offset-md-60{margin-left:auto;margin-right:60%}.flex-offset-md-65,.offset-md-65{margin-left:65%}[dir=rtl] .flex-offset-md-65,[dir=rtl] .offset-md-65{margin-left:auto;margin-right:65%}.flex-offset-md-70,.offset-md-70{margin-left:70%}[dir=rtl] .flex-offset-md-70,[dir=rtl] .offset-md-70{margin-left:auto;margin-right:70%}.flex-offset-md-75,.offset-md-75{margin-left:75%}[dir=rtl] .flex-offset-md-75,[dir=rtl] .offset-md-75{margin-left:auto;margin-right:75%}.flex-offset-md-80,.offset-md-80{margin-left:80%}[dir=rtl] .flex-offset-md-80,[dir=rtl] .offset-md-80{margin-left:auto;margin-right:80%}.flex-offset-md-85,.offset-md-85{margin-left:85%}[dir=rtl] .flex-offset-md-85,[dir=rtl] .offset-md-85{margin-left:auto;margin-right:85%}.flex-offset-md-90,.offset-md-90{margin-left:90%}[dir=rtl] .flex-offset-md-90,[dir=rtl] .offset-md-90{margin-left:auto;margin-right:90%}.flex-offset-md-95,.offset-md-95{margin-left:95%}[dir=rtl] .flex-offset-md-95,[dir=rtl] .offset-md-95{margin-left:auto;margin-right:95%}.flex-offset-md-33,.offset-md-33{margin-left:calc(100% / 3)}.flex-offset-md-66,.offset-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-md-66,[dir=rtl] .offset-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-md,.layout-align-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-md-start,.layout-align-md-start-center,.layout-align-md-start-end,.layout-align-md-start-start,.layout-align-md-start-stretch{justify-content:flex-start}.layout-align-md-center,.layout-align-md-center-center,.layout-align-md-center-end,.layout-align-md-center-start,.layout-align-md-center-stretch{justify-content:center}.layout-align-md-end,.layout-align-md-end-center,.layout-align-md-end-end,.layout-align-md-end-start,.layout-align-md-end-stretch{justify-content:flex-end}.layout-align-md-space-around,.layout-align-md-space-around-center,.layout-align-md-space-around-end,.layout-align-md-space-around-start,.layout-align-md-space-around-stretch{justify-content:space-around}.layout-align-md-space-between,.layout-align-md-space-between-center,.layout-align-md-space-between-end,.layout-align-md-space-between-start,.layout-align-md-space-between-stretch{justify-content:space-between}.layout-align-md-center-start,.layout-align-md-end-start,.layout-align-md-space-around-start,.layout-align-md-space-between-start,.layout-align-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-md-center-center,.layout-align-md-end-center,.layout-align-md-space-around-center,.layout-align-md-space-between-center,.layout-align-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-md-center-center>*,.layout-align-md-end-center>*,.layout-align-md-space-around-center>*,.layout-align-md-space-between-center>*,.layout-align-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-md-center-end,.layout-align-md-end-end,.layout-align-md-space-around-end,.layout-align-md-space-between-end,.layout-align-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-md-center-stretch,.layout-align-md-end-stretch,.layout-align-md-space-around-stretch,.layout-align-md-space-between-stretch,.layout-align-md-start-stretch{align-items:stretch;align-content:stretch}.flex-md{flex:1;box-sizing:border-box}.flex-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-md-none{flex:0 0 auto;box-sizing:border-box}.flex-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-md-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-md-column>.flex-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-row>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-column>.flex-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-md-row>.flex{min-width:0}.layout-md-column>.flex-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-md-column>.flex-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-md-column>.flex{min-height:0}.layout-md,.layout-md-column,.layout-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-md-column{flex-direction:column}.layout-md-row{flex-direction:row}}@media (min-width:1280px){.flex-order-gt-md--20{order:-20}.flex-order-gt-md--19{order:-19}.flex-order-gt-md--18{order:-18}.flex-order-gt-md--17{order:-17}.flex-order-gt-md--16{order:-16}.flex-order-gt-md--15{order:-15}.flex-order-gt-md--14{order:-14}.flex-order-gt-md--13{order:-13}.flex-order-gt-md--12{order:-12}.flex-order-gt-md--11{order:-11}.flex-order-gt-md--10{order:-10}.flex-order-gt-md--9{order:-9}.flex-order-gt-md--8{order:-8}.flex-order-gt-md--7{order:-7}.flex-order-gt-md--6{order:-6}.flex-order-gt-md--5{order:-5}.flex-order-gt-md--4{order:-4}.flex-order-gt-md--3{order:-3}.flex-order-gt-md--2{order:-2}.flex-order-gt-md--1{order:-1}.flex-order-gt-md-0{order:0}.flex-order-gt-md-1{order:1}.flex-order-gt-md-2{order:2}.flex-order-gt-md-3{order:3}.flex-order-gt-md-4{order:4}.flex-order-gt-md-5{order:5}.flex-order-gt-md-6{order:6}.flex-order-gt-md-7{order:7}.flex-order-gt-md-8{order:8}.flex-order-gt-md-9{order:9}.flex-order-gt-md-10{order:10}.flex-order-gt-md-11{order:11}.flex-order-gt-md-12{order:12}.flex-order-gt-md-13{order:13}.flex-order-gt-md-14{order:14}.flex-order-gt-md-15{order:15}.flex-order-gt-md-16{order:16}.flex-order-gt-md-17{order:17}.flex-order-gt-md-18{order:18}.flex-order-gt-md-19{order:19}.flex-order-gt-md-20{order:20}.flex-offset-gt-md-0,.offset-gt-md-0{margin-left:0}[dir=rtl] .flex-offset-gt-md-0,[dir=rtl] .offset-gt-md-0{margin-left:auto;margin-right:0}.flex-offset-gt-md-5,.offset-gt-md-5{margin-left:5%}[dir=rtl] .flex-offset-gt-md-5,[dir=rtl] .offset-gt-md-5{margin-left:auto;margin-right:5%}.flex-offset-gt-md-10,.offset-gt-md-10{margin-left:10%}[dir=rtl] .flex-offset-gt-md-10,[dir=rtl] .offset-gt-md-10{margin-left:auto;margin-right:10%}.flex-offset-gt-md-15,.offset-gt-md-15{margin-left:15%}[dir=rtl] .flex-offset-gt-md-15,[dir=rtl] .offset-gt-md-15{margin-left:auto;margin-right:15%}.flex-offset-gt-md-20,.offset-gt-md-20{margin-left:20%}[dir=rtl] .flex-offset-gt-md-20,[dir=rtl] .offset-gt-md-20{margin-left:auto;margin-right:20%}.flex-offset-gt-md-25,.offset-gt-md-25{margin-left:25%}[dir=rtl] .flex-offset-gt-md-25,[dir=rtl] .offset-gt-md-25{margin-left:auto;margin-right:25%}.flex-offset-gt-md-30,.offset-gt-md-30{margin-left:30%}[dir=rtl] .flex-offset-gt-md-30,[dir=rtl] .offset-gt-md-30{margin-left:auto;margin-right:30%}.flex-offset-gt-md-35,.offset-gt-md-35{margin-left:35%}[dir=rtl] .flex-offset-gt-md-35,[dir=rtl] .offset-gt-md-35{margin-left:auto;margin-right:35%}.flex-offset-gt-md-40,.offset-gt-md-40{margin-left:40%}[dir=rtl] .flex-offset-gt-md-40,[dir=rtl] .offset-gt-md-40{margin-left:auto;margin-right:40%}.flex-offset-gt-md-45,.offset-gt-md-45{margin-left:45%}[dir=rtl] .flex-offset-gt-md-45,[dir=rtl] .offset-gt-md-45{margin-left:auto;margin-right:45%}.flex-offset-gt-md-50,.offset-gt-md-50{margin-left:50%}[dir=rtl] .flex-offset-gt-md-50,[dir=rtl] .offset-gt-md-50{margin-left:auto;margin-right:50%}.flex-offset-gt-md-55,.offset-gt-md-55{margin-left:55%}[dir=rtl] .flex-offset-gt-md-55,[dir=rtl] .offset-gt-md-55{margin-left:auto;margin-right:55%}.flex-offset-gt-md-60,.offset-gt-md-60{margin-left:60%}[dir=rtl] .flex-offset-gt-md-60,[dir=rtl] .offset-gt-md-60{margin-left:auto;margin-right:60%}.flex-offset-gt-md-65,.offset-gt-md-65{margin-left:65%}[dir=rtl] .flex-offset-gt-md-65,[dir=rtl] .offset-gt-md-65{margin-left:auto;margin-right:65%}.flex-offset-gt-md-70,.offset-gt-md-70{margin-left:70%}[dir=rtl] .flex-offset-gt-md-70,[dir=rtl] .offset-gt-md-70{margin-left:auto;margin-right:70%}.flex-offset-gt-md-75,.offset-gt-md-75{margin-left:75%}[dir=rtl] .flex-offset-gt-md-75,[dir=rtl] .offset-gt-md-75{margin-left:auto;margin-right:75%}.flex-offset-gt-md-80,.offset-gt-md-80{margin-left:80%}[dir=rtl] .flex-offset-gt-md-80,[dir=rtl] .offset-gt-md-80{margin-left:auto;margin-right:80%}.flex-offset-gt-md-85,.offset-gt-md-85{margin-left:85%}[dir=rtl] .flex-offset-gt-md-85,[dir=rtl] .offset-gt-md-85{margin-left:auto;margin-right:85%}.flex-offset-gt-md-90,.offset-gt-md-90{margin-left:90%}[dir=rtl] .flex-offset-gt-md-90,[dir=rtl] .offset-gt-md-90{margin-left:auto;margin-right:90%}.flex-offset-gt-md-95,.offset-gt-md-95{margin-left:95%}[dir=rtl] .flex-offset-gt-md-95,[dir=rtl] .offset-gt-md-95{margin-left:auto;margin-right:95%}.flex-offset-gt-md-33,.offset-gt-md-33{margin-left:calc(100% / 3)}.flex-offset-gt-md-66,.offset-gt-md-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-md-66,[dir=rtl] .offset-gt-md-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-md,.layout-align-gt-md-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-md-start,.layout-align-gt-md-start-center,.layout-align-gt-md-start-end,.layout-align-gt-md-start-start,.layout-align-gt-md-start-stretch{justify-content:flex-start}.layout-align-gt-md-center,.layout-align-gt-md-center-center,.layout-align-gt-md-center-end,.layout-align-gt-md-center-start,.layout-align-gt-md-center-stretch{justify-content:center}.layout-align-gt-md-end,.layout-align-gt-md-end-center,.layout-align-gt-md-end-end,.layout-align-gt-md-end-start,.layout-align-gt-md-end-stretch{justify-content:flex-end}.layout-align-gt-md-space-around,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-around-stretch{justify-content:space-around}.layout-align-gt-md-space-between,.layout-align-gt-md-space-between-center,.layout-align-gt-md-space-between-end,.layout-align-gt-md-space-between-start,.layout-align-gt-md-space-between-stretch{justify-content:space-between}.layout-align-gt-md-center-start,.layout-align-gt-md-end-start,.layout-align-gt-md-space-around-start,.layout-align-gt-md-space-between-start,.layout-align-gt-md-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-md-center-center,.layout-align-gt-md-end-center,.layout-align-gt-md-space-around-center,.layout-align-gt-md-space-between-center,.layout-align-gt-md-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-md-center-center>*,.layout-align-gt-md-end-center>*,.layout-align-gt-md-space-around-center>*,.layout-align-gt-md-space-between-center>*,.layout-align-gt-md-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-md-center-end,.layout-align-gt-md-end-end,.layout-align-gt-md-space-around-end,.layout-align-gt-md-space-between-end,.layout-align-gt-md-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-md-center-stretch,.layout-align-gt-md-end-stretch,.layout-align-gt-md-space-around-stretch,.layout-align-gt-md-space-between-stretch,.layout-align-gt-md-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-md{flex:1;box-sizing:border-box}.flex-gt-md-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-md-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-md-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-md-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-md-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-md-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-md-column>.flex-gt-md-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex-gt-md-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-md-row>.flex{min-width:0}.layout-gt-md-column>.flex-gt-md-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-md-column>.flex-gt-md-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-md-column>.flex{min-height:0}.layout-gt-md,.layout-gt-md-column,.layout-gt-md-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-md-column{flex-direction:column}.layout-gt-md-row{flex-direction:row}}@media (min-width:1280px) and (max-width:1919px){.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show){display:none}.hide-lg:not(.show-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}.flex-order-lg--20{order:-20}.flex-order-lg--19{order:-19}.flex-order-lg--18{order:-18}.flex-order-lg--17{order:-17}.flex-order-lg--16{order:-16}.flex-order-lg--15{order:-15}.flex-order-lg--14{order:-14}.flex-order-lg--13{order:-13}.flex-order-lg--12{order:-12}.flex-order-lg--11{order:-11}.flex-order-lg--10{order:-10}.flex-order-lg--9{order:-9}.flex-order-lg--8{order:-8}.flex-order-lg--7{order:-7}.flex-order-lg--6{order:-6}.flex-order-lg--5{order:-5}.flex-order-lg--4{order:-4}.flex-order-lg--3{order:-3}.flex-order-lg--2{order:-2}.flex-order-lg--1{order:-1}.flex-order-lg-0{order:0}.flex-order-lg-1{order:1}.flex-order-lg-2{order:2}.flex-order-lg-3{order:3}.flex-order-lg-4{order:4}.flex-order-lg-5{order:5}.flex-order-lg-6{order:6}.flex-order-lg-7{order:7}.flex-order-lg-8{order:8}.flex-order-lg-9{order:9}.flex-order-lg-10{order:10}.flex-order-lg-11{order:11}.flex-order-lg-12{order:12}.flex-order-lg-13{order:13}.flex-order-lg-14{order:14}.flex-order-lg-15{order:15}.flex-order-lg-16{order:16}.flex-order-lg-17{order:17}.flex-order-lg-18{order:18}.flex-order-lg-19{order:19}.flex-order-lg-20{order:20}.flex-offset-lg-0,.offset-lg-0{margin-left:0}[dir=rtl] .flex-offset-lg-0,[dir=rtl] .offset-lg-0{margin-left:auto;margin-right:0}.flex-offset-lg-5,.offset-lg-5{margin-left:5%}[dir=rtl] .flex-offset-lg-5,[dir=rtl] .offset-lg-5{margin-left:auto;margin-right:5%}.flex-offset-lg-10,.offset-lg-10{margin-left:10%}[dir=rtl] .flex-offset-lg-10,[dir=rtl] .offset-lg-10{margin-left:auto;margin-right:10%}.flex-offset-lg-15,.offset-lg-15{margin-left:15%}[dir=rtl] .flex-offset-lg-15,[dir=rtl] .offset-lg-15{margin-left:auto;margin-right:15%}.flex-offset-lg-20,.offset-lg-20{margin-left:20%}[dir=rtl] .flex-offset-lg-20,[dir=rtl] .offset-lg-20{margin-left:auto;margin-right:20%}.flex-offset-lg-25,.offset-lg-25{margin-left:25%}[dir=rtl] .flex-offset-lg-25,[dir=rtl] .offset-lg-25{margin-left:auto;margin-right:25%}.flex-offset-lg-30,.offset-lg-30{margin-left:30%}[dir=rtl] .flex-offset-lg-30,[dir=rtl] .offset-lg-30{margin-left:auto;margin-right:30%}.flex-offset-lg-35,.offset-lg-35{margin-left:35%}[dir=rtl] .flex-offset-lg-35,[dir=rtl] .offset-lg-35{margin-left:auto;margin-right:35%}.flex-offset-lg-40,.offset-lg-40{margin-left:40%}[dir=rtl] .flex-offset-lg-40,[dir=rtl] .offset-lg-40{margin-left:auto;margin-right:40%}.flex-offset-lg-45,.offset-lg-45{margin-left:45%}[dir=rtl] .flex-offset-lg-45,[dir=rtl] .offset-lg-45{margin-left:auto;margin-right:45%}.flex-offset-lg-50,.offset-lg-50{margin-left:50%}[dir=rtl] .flex-offset-lg-50,[dir=rtl] .offset-lg-50{margin-left:auto;margin-right:50%}.flex-offset-lg-55,.offset-lg-55{margin-left:55%}[dir=rtl] .flex-offset-lg-55,[dir=rtl] .offset-lg-55{margin-left:auto;margin-right:55%}.flex-offset-lg-60,.offset-lg-60{margin-left:60%}[dir=rtl] .flex-offset-lg-60,[dir=rtl] .offset-lg-60{margin-left:auto;margin-right:60%}.flex-offset-lg-65,.offset-lg-65{margin-left:65%}[dir=rtl] .flex-offset-lg-65,[dir=rtl] .offset-lg-65{margin-left:auto;margin-right:65%}.flex-offset-lg-70,.offset-lg-70{margin-left:70%}[dir=rtl] .flex-offset-lg-70,[dir=rtl] .offset-lg-70{margin-left:auto;margin-right:70%}.flex-offset-lg-75,.offset-lg-75{margin-left:75%}[dir=rtl] .flex-offset-lg-75,[dir=rtl] .offset-lg-75{margin-left:auto;margin-right:75%}.flex-offset-lg-80,.offset-lg-80{margin-left:80%}[dir=rtl] .flex-offset-lg-80,[dir=rtl] .offset-lg-80{margin-left:auto;margin-right:80%}.flex-offset-lg-85,.offset-lg-85{margin-left:85%}[dir=rtl] .flex-offset-lg-85,[dir=rtl] .offset-lg-85{margin-left:auto;margin-right:85%}.flex-offset-lg-90,.offset-lg-90{margin-left:90%}[dir=rtl] .flex-offset-lg-90,[dir=rtl] .offset-lg-90{margin-left:auto;margin-right:90%}.flex-offset-lg-95,.offset-lg-95{margin-left:95%}[dir=rtl] .flex-offset-lg-95,[dir=rtl] .offset-lg-95{margin-left:auto;margin-right:95%}.flex-offset-lg-33,.offset-lg-33{margin-left:calc(100% / 3)}.flex-offset-lg-66,.offset-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-lg-66,[dir=rtl] .offset-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-lg,.layout-align-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-lg-start,.layout-align-lg-start-center,.layout-align-lg-start-end,.layout-align-lg-start-start,.layout-align-lg-start-stretch{justify-content:flex-start}.layout-align-lg-center,.layout-align-lg-center-center,.layout-align-lg-center-end,.layout-align-lg-center-start,.layout-align-lg-center-stretch{justify-content:center}.layout-align-lg-end,.layout-align-lg-end-center,.layout-align-lg-end-end,.layout-align-lg-end-start,.layout-align-lg-end-stretch{justify-content:flex-end}.layout-align-lg-space-around,.layout-align-lg-space-around-center,.layout-align-lg-space-around-end,.layout-align-lg-space-around-start,.layout-align-lg-space-around-stretch{justify-content:space-around}.layout-align-lg-space-between,.layout-align-lg-space-between-center,.layout-align-lg-space-between-end,.layout-align-lg-space-between-start,.layout-align-lg-space-between-stretch{justify-content:space-between}.layout-align-lg-center-start,.layout-align-lg-end-start,.layout-align-lg-space-around-start,.layout-align-lg-space-between-start,.layout-align-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-lg-center-center,.layout-align-lg-end-center,.layout-align-lg-space-around-center,.layout-align-lg-space-between-center,.layout-align-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-lg-center-center>*,.layout-align-lg-end-center>*,.layout-align-lg-space-around-center>*,.layout-align-lg-space-between-center>*,.layout-align-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-lg-center-end,.layout-align-lg-end-end,.layout-align-lg-space-around-end,.layout-align-lg-space-between-end,.layout-align-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-lg-center-stretch,.layout-align-lg-end-stretch,.layout-align-lg-space-around-stretch,.layout-align-lg-space-between-stretch,.layout-align-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-lg{flex:1;box-sizing:border-box}.flex-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-lg-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-lg-column>.flex-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-row>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-column>.flex-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-lg-row>.flex{min-width:0}.layout-lg-column>.flex-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-lg-column>.flex-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-lg-column>.flex{min-height:0}.layout-lg,.layout-lg-column,.layout-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-lg-column{flex-direction:column}.layout-lg-row{flex-direction:row}}@media (min-width:1920px){.flex-order-gt-lg--20{order:-20}.flex-order-gt-lg--19{order:-19}.flex-order-gt-lg--18{order:-18}.flex-order-gt-lg--17{order:-17}.flex-order-gt-lg--16{order:-16}.flex-order-gt-lg--15{order:-15}.flex-order-gt-lg--14{order:-14}.flex-order-gt-lg--13{order:-13}.flex-order-gt-lg--12{order:-12}.flex-order-gt-lg--11{order:-11}.flex-order-gt-lg--10{order:-10}.flex-order-gt-lg--9{order:-9}.flex-order-gt-lg--8{order:-8}.flex-order-gt-lg--7{order:-7}.flex-order-gt-lg--6{order:-6}.flex-order-gt-lg--5{order:-5}.flex-order-gt-lg--4{order:-4}.flex-order-gt-lg--3{order:-3}.flex-order-gt-lg--2{order:-2}.flex-order-gt-lg--1{order:-1}.flex-order-gt-lg-0{order:0}.flex-order-gt-lg-1{order:1}.flex-order-gt-lg-2{order:2}.flex-order-gt-lg-3{order:3}.flex-order-gt-lg-4{order:4}.flex-order-gt-lg-5{order:5}.flex-order-gt-lg-6{order:6}.flex-order-gt-lg-7{order:7}.flex-order-gt-lg-8{order:8}.flex-order-gt-lg-9{order:9}.flex-order-gt-lg-10{order:10}.flex-order-gt-lg-11{order:11}.flex-order-gt-lg-12{order:12}.flex-order-gt-lg-13{order:13}.flex-order-gt-lg-14{order:14}.flex-order-gt-lg-15{order:15}.flex-order-gt-lg-16{order:16}.flex-order-gt-lg-17{order:17}.flex-order-gt-lg-18{order:18}.flex-order-gt-lg-19{order:19}.flex-order-gt-lg-20{order:20}.flex-offset-gt-lg-0,.offset-gt-lg-0{margin-left:0}[dir=rtl] .flex-offset-gt-lg-0,[dir=rtl] .offset-gt-lg-0{margin-left:auto;margin-right:0}.flex-offset-gt-lg-5,.offset-gt-lg-5{margin-left:5%}[dir=rtl] .flex-offset-gt-lg-5,[dir=rtl] .offset-gt-lg-5{margin-left:auto;margin-right:5%}.flex-offset-gt-lg-10,.offset-gt-lg-10{margin-left:10%}[dir=rtl] .flex-offset-gt-lg-10,[dir=rtl] .offset-gt-lg-10{margin-left:auto;margin-right:10%}.flex-offset-gt-lg-15,.offset-gt-lg-15{margin-left:15%}[dir=rtl] .flex-offset-gt-lg-15,[dir=rtl] .offset-gt-lg-15{margin-left:auto;margin-right:15%}.flex-offset-gt-lg-20,.offset-gt-lg-20{margin-left:20%}[dir=rtl] .flex-offset-gt-lg-20,[dir=rtl] .offset-gt-lg-20{margin-left:auto;margin-right:20%}.flex-offset-gt-lg-25,.offset-gt-lg-25{margin-left:25%}[dir=rtl] .flex-offset-gt-lg-25,[dir=rtl] .offset-gt-lg-25{margin-left:auto;margin-right:25%}.flex-offset-gt-lg-30,.offset-gt-lg-30{margin-left:30%}[dir=rtl] .flex-offset-gt-lg-30,[dir=rtl] .offset-gt-lg-30{margin-left:auto;margin-right:30%}.flex-offset-gt-lg-35,.offset-gt-lg-35{margin-left:35%}[dir=rtl] .flex-offset-gt-lg-35,[dir=rtl] .offset-gt-lg-35{margin-left:auto;margin-right:35%}.flex-offset-gt-lg-40,.offset-gt-lg-40{margin-left:40%}[dir=rtl] .flex-offset-gt-lg-40,[dir=rtl] .offset-gt-lg-40{margin-left:auto;margin-right:40%}.flex-offset-gt-lg-45,.offset-gt-lg-45{margin-left:45%}[dir=rtl] .flex-offset-gt-lg-45,[dir=rtl] .offset-gt-lg-45{margin-left:auto;margin-right:45%}.flex-offset-gt-lg-50,.offset-gt-lg-50{margin-left:50%}[dir=rtl] .flex-offset-gt-lg-50,[dir=rtl] .offset-gt-lg-50{margin-left:auto;margin-right:50%}.flex-offset-gt-lg-55,.offset-gt-lg-55{margin-left:55%}[dir=rtl] .flex-offset-gt-lg-55,[dir=rtl] .offset-gt-lg-55{margin-left:auto;margin-right:55%}.flex-offset-gt-lg-60,.offset-gt-lg-60{margin-left:60%}[dir=rtl] .flex-offset-gt-lg-60,[dir=rtl] .offset-gt-lg-60{margin-left:auto;margin-right:60%}.flex-offset-gt-lg-65,.offset-gt-lg-65{margin-left:65%}[dir=rtl] .flex-offset-gt-lg-65,[dir=rtl] .offset-gt-lg-65{margin-left:auto;margin-right:65%}.flex-offset-gt-lg-70,.offset-gt-lg-70{margin-left:70%}[dir=rtl] .flex-offset-gt-lg-70,[dir=rtl] .offset-gt-lg-70{margin-left:auto;margin-right:70%}.flex-offset-gt-lg-75,.offset-gt-lg-75{margin-left:75%}[dir=rtl] .flex-offset-gt-lg-75,[dir=rtl] .offset-gt-lg-75{margin-left:auto;margin-right:75%}.flex-offset-gt-lg-80,.offset-gt-lg-80{margin-left:80%}[dir=rtl] .flex-offset-gt-lg-80,[dir=rtl] .offset-gt-lg-80{margin-left:auto;margin-right:80%}.flex-offset-gt-lg-85,.offset-gt-lg-85{margin-left:85%}[dir=rtl] .flex-offset-gt-lg-85,[dir=rtl] .offset-gt-lg-85{margin-left:auto;margin-right:85%}.flex-offset-gt-lg-90,.offset-gt-lg-90{margin-left:90%}[dir=rtl] .flex-offset-gt-lg-90,[dir=rtl] .offset-gt-lg-90{margin-left:auto;margin-right:90%}.flex-offset-gt-lg-95,.offset-gt-lg-95{margin-left:95%}[dir=rtl] .flex-offset-gt-lg-95,[dir=rtl] .offset-gt-lg-95{margin-left:auto;margin-right:95%}.flex-offset-gt-lg-33,.offset-gt-lg-33{margin-left:calc(100% / 3)}.flex-offset-gt-lg-66,.offset-gt-lg-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-gt-lg-66,[dir=rtl] .offset-gt-lg-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-gt-lg,.layout-align-gt-lg-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-gt-lg-start,.layout-align-gt-lg-start-center,.layout-align-gt-lg-start-end,.layout-align-gt-lg-start-start,.layout-align-gt-lg-start-stretch{justify-content:flex-start}.layout-align-gt-lg-center,.layout-align-gt-lg-center-center,.layout-align-gt-lg-center-end,.layout-align-gt-lg-center-start,.layout-align-gt-lg-center-stretch{justify-content:center}.layout-align-gt-lg-end,.layout-align-gt-lg-end-center,.layout-align-gt-lg-end-end,.layout-align-gt-lg-end-start,.layout-align-gt-lg-end-stretch{justify-content:flex-end}.layout-align-gt-lg-space-around,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-around-stretch{justify-content:space-around}.layout-align-gt-lg-space-between,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-space-between-stretch{justify-content:space-between}.layout-align-gt-lg-center-start,.layout-align-gt-lg-end-start,.layout-align-gt-lg-space-around-start,.layout-align-gt-lg-space-between-start,.layout-align-gt-lg-start-start{align-items:flex-start;align-content:flex-start}.layout-align-gt-lg-center-center,.layout-align-gt-lg-end-center,.layout-align-gt-lg-space-around-center,.layout-align-gt-lg-space-between-center,.layout-align-gt-lg-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-gt-lg-center-center>*,.layout-align-gt-lg-end-center>*,.layout-align-gt-lg-space-around-center>*,.layout-align-gt-lg-space-between-center>*,.layout-align-gt-lg-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-gt-lg-center-end,.layout-align-gt-lg-end-end,.layout-align-gt-lg-space-around-end,.layout-align-gt-lg-space-between-end,.layout-align-gt-lg-start-end{align-items:flex-end;align-content:flex-end}.layout-align-gt-lg-center-stretch,.layout-align-gt-lg-end-stretch,.layout-align-gt-lg-space-around-stretch,.layout-align-gt-lg-space-between-stretch,.layout-align-gt-lg-start-stretch{align-items:stretch;align-content:stretch}.flex-gt-lg{flex:1;box-sizing:border-box}.flex-gt-lg-grow{flex:1 1 100%;box-sizing:border-box}.flex-gt-lg-initial{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-auto{flex:1 1 auto;box-sizing:border-box}.flex-gt-lg-none{flex:0 0 auto;box-sizing:border-box}.flex-gt-lg-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-gt-lg-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-gt-lg-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-gt-lg-column>.flex-gt-lg-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex-gt-lg-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-gt-lg-row>.flex{min-width:0}.layout-gt-lg-column>.flex-gt-lg-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-gt-lg-column>.flex-gt-lg-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-gt-lg-column>.flex{min-height:0}.layout-gt-lg,.layout-gt-lg-column,.layout-gt-lg-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-gt-lg-column{flex-direction:column}.layout-gt-lg-row{flex-direction:row}.flex-order-xl--20{order:-20}.flex-order-xl--19{order:-19}.flex-order-xl--18{order:-18}.flex-order-xl--17{order:-17}.flex-order-xl--16{order:-16}.flex-order-xl--15{order:-15}.flex-order-xl--14{order:-14}.flex-order-xl--13{order:-13}.flex-order-xl--12{order:-12}.flex-order-xl--11{order:-11}.flex-order-xl--10{order:-10}.flex-order-xl--9{order:-9}.flex-order-xl--8{order:-8}.flex-order-xl--7{order:-7}.flex-order-xl--6{order:-6}.flex-order-xl--5{order:-5}.flex-order-xl--4{order:-4}.flex-order-xl--3{order:-3}.flex-order-xl--2{order:-2}.flex-order-xl--1{order:-1}.flex-order-xl-0{order:0}.flex-order-xl-1{order:1}.flex-order-xl-2{order:2}.flex-order-xl-3{order:3}.flex-order-xl-4{order:4}.flex-order-xl-5{order:5}.flex-order-xl-6{order:6}.flex-order-xl-7{order:7}.flex-order-xl-8{order:8}.flex-order-xl-9{order:9}.flex-order-xl-10{order:10}.flex-order-xl-11{order:11}.flex-order-xl-12{order:12}.flex-order-xl-13{order:13}.flex-order-xl-14{order:14}.flex-order-xl-15{order:15}.flex-order-xl-16{order:16}.flex-order-xl-17{order:17}.flex-order-xl-18{order:18}.flex-order-xl-19{order:19}.flex-order-xl-20{order:20}.flex-offset-xl-0,.offset-xl-0{margin-left:0}[dir=rtl] .flex-offset-xl-0,[dir=rtl] .offset-xl-0{margin-left:auto;margin-right:0}.flex-offset-xl-5,.offset-xl-5{margin-left:5%}[dir=rtl] .flex-offset-xl-5,[dir=rtl] .offset-xl-5{margin-left:auto;margin-right:5%}.flex-offset-xl-10,.offset-xl-10{margin-left:10%}[dir=rtl] .flex-offset-xl-10,[dir=rtl] .offset-xl-10{margin-left:auto;margin-right:10%}.flex-offset-xl-15,.offset-xl-15{margin-left:15%}[dir=rtl] .flex-offset-xl-15,[dir=rtl] .offset-xl-15{margin-left:auto;margin-right:15%}.flex-offset-xl-20,.offset-xl-20{margin-left:20%}[dir=rtl] .flex-offset-xl-20,[dir=rtl] .offset-xl-20{margin-left:auto;margin-right:20%}.flex-offset-xl-25,.offset-xl-25{margin-left:25%}[dir=rtl] .flex-offset-xl-25,[dir=rtl] .offset-xl-25{margin-left:auto;margin-right:25%}.flex-offset-xl-30,.offset-xl-30{margin-left:30%}[dir=rtl] .flex-offset-xl-30,[dir=rtl] .offset-xl-30{margin-left:auto;margin-right:30%}.flex-offset-xl-35,.offset-xl-35{margin-left:35%}[dir=rtl] .flex-offset-xl-35,[dir=rtl] .offset-xl-35{margin-left:auto;margin-right:35%}.flex-offset-xl-40,.offset-xl-40{margin-left:40%}[dir=rtl] .flex-offset-xl-40,[dir=rtl] .offset-xl-40{margin-left:auto;margin-right:40%}.flex-offset-xl-45,.offset-xl-45{margin-left:45%}[dir=rtl] .flex-offset-xl-45,[dir=rtl] .offset-xl-45{margin-left:auto;margin-right:45%}.flex-offset-xl-50,.offset-xl-50{margin-left:50%}[dir=rtl] .flex-offset-xl-50,[dir=rtl] .offset-xl-50{margin-left:auto;margin-right:50%}.flex-offset-xl-55,.offset-xl-55{margin-left:55%}[dir=rtl] .flex-offset-xl-55,[dir=rtl] .offset-xl-55{margin-left:auto;margin-right:55%}.flex-offset-xl-60,.offset-xl-60{margin-left:60%}[dir=rtl] .flex-offset-xl-60,[dir=rtl] .offset-xl-60{margin-left:auto;margin-right:60%}.flex-offset-xl-65,.offset-xl-65{margin-left:65%}[dir=rtl] .flex-offset-xl-65,[dir=rtl] .offset-xl-65{margin-left:auto;margin-right:65%}.flex-offset-xl-70,.offset-xl-70{margin-left:70%}[dir=rtl] .flex-offset-xl-70,[dir=rtl] .offset-xl-70{margin-left:auto;margin-right:70%}.flex-offset-xl-75,.offset-xl-75{margin-left:75%}[dir=rtl] .flex-offset-xl-75,[dir=rtl] .offset-xl-75{margin-left:auto;margin-right:75%}.flex-offset-xl-80,.offset-xl-80{margin-left:80%}[dir=rtl] .flex-offset-xl-80,[dir=rtl] .offset-xl-80{margin-left:auto;margin-right:80%}.flex-offset-xl-85,.offset-xl-85{margin-left:85%}[dir=rtl] .flex-offset-xl-85,[dir=rtl] .offset-xl-85{margin-left:auto;margin-right:85%}.flex-offset-xl-90,.offset-xl-90{margin-left:90%}[dir=rtl] .flex-offset-xl-90,[dir=rtl] .offset-xl-90{margin-left:auto;margin-right:90%}.flex-offset-xl-95,.offset-xl-95{margin-left:95%}[dir=rtl] .flex-offset-xl-95,[dir=rtl] .offset-xl-95{margin-left:auto;margin-right:95%}.flex-offset-xl-33,.offset-xl-33{margin-left:calc(100% / 3)}.flex-offset-xl-66,.offset-xl-66{margin-left:calc(200% / 3)}[dir=rtl] .flex-offset-xl-66,[dir=rtl] .offset-xl-66{margin-left:auto;margin-right:calc(200% / 3)}.layout-align-xl,.layout-align-xl-start-stretch{justify-content:flex-start;align-content:stretch;align-items:stretch}.layout-align-xl-start,.layout-align-xl-start-center,.layout-align-xl-start-end,.layout-align-xl-start-start,.layout-align-xl-start-stretch{justify-content:flex-start}.layout-align-xl-center,.layout-align-xl-center-center,.layout-align-xl-center-end,.layout-align-xl-center-start,.layout-align-xl-center-stretch{justify-content:center}.layout-align-xl-end,.layout-align-xl-end-center,.layout-align-xl-end-end,.layout-align-xl-end-start,.layout-align-xl-end-stretch{justify-content:flex-end}.layout-align-xl-space-around,.layout-align-xl-space-around-center,.layout-align-xl-space-around-end,.layout-align-xl-space-around-start,.layout-align-xl-space-around-stretch{justify-content:space-around}.layout-align-xl-space-between,.layout-align-xl-space-between-center,.layout-align-xl-space-between-end,.layout-align-xl-space-between-start,.layout-align-xl-space-between-stretch{justify-content:space-between}.layout-align-xl-center-start,.layout-align-xl-end-start,.layout-align-xl-space-around-start,.layout-align-xl-space-between-start,.layout-align-xl-start-start{align-items:flex-start;align-content:flex-start}.layout-align-xl-center-center,.layout-align-xl-end-center,.layout-align-xl-space-around-center,.layout-align-xl-space-between-center,.layout-align-xl-start-center{align-items:center;align-content:center;max-width:100%}.layout-align-xl-center-center>*,.layout-align-xl-end-center>*,.layout-align-xl-space-around-center>*,.layout-align-xl-space-between-center>*,.layout-align-xl-start-center>*{max-width:100%;box-sizing:border-box}.layout-align-xl-center-end,.layout-align-xl-end-end,.layout-align-xl-space-around-end,.layout-align-xl-space-between-end,.layout-align-xl-start-end{align-items:flex-end;align-content:flex-end}.layout-align-xl-center-stretch,.layout-align-xl-end-stretch,.layout-align-xl-space-around-stretch,.layout-align-xl-space-between-stretch,.layout-align-xl-start-stretch{align-items:stretch;align-content:stretch}.flex-xl{flex:1;box-sizing:border-box}.flex-xl-grow{flex:1 1 100%;box-sizing:border-box}.flex-xl-initial{flex:0 1 auto;box-sizing:border-box}.flex-xl-auto{flex:1 1 auto;box-sizing:border-box}.flex-xl-none{flex:0 0 auto;box-sizing:border-box}.flex-xl-noshrink{flex:1 0 auto;box-sizing:border-box}.flex-xl-nogrow{flex:0 1 auto;box-sizing:border-box}.flex-xl-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-0{flex:1 1 0%;max-width:0;max-height:100%;box-sizing:border-box;min-width:0}.layout-xl-column>.flex-xl-0{flex:1 1 0%;max-width:100%;max-height:0%;box-sizing:border-box;min-height:0}.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-5{flex:1 1 5%;max-width:5%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-5{flex:1 1 5%;max-width:100%;max-height:5%;box-sizing:border-box}.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-10{flex:1 1 10%;max-width:10%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-10{flex:1 1 10%;max-width:100%;max-height:10%;box-sizing:border-box}.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-15{flex:1 1 15%;max-width:15%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-15{flex:1 1 15%;max-width:100%;max-height:15%;box-sizing:border-box}.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-20{flex:1 1 20%;max-width:20%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-20{flex:1 1 20%;max-width:100%;max-height:20%;box-sizing:border-box}.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-25{flex:1 1 25%;max-width:25%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-25{flex:1 1 25%;max-width:100%;max-height:25%;box-sizing:border-box}.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-30{flex:1 1 30%;max-width:30%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-30{flex:1 1 30%;max-width:100%;max-height:30%;box-sizing:border-box}.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-35{flex:1 1 35%;max-width:35%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-35{flex:1 1 35%;max-width:100%;max-height:35%;box-sizing:border-box}.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-40{flex:1 1 40%;max-width:40%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-40{flex:1 1 40%;max-width:100%;max-height:40%;box-sizing:border-box}.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-45{flex:1 1 45%;max-width:45%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-45{flex:1 1 45%;max-width:100%;max-height:45%;box-sizing:border-box}.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-50{flex:1 1 50%;max-width:50%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-50{flex:1 1 50%;max-width:100%;max-height:50%;box-sizing:border-box}.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-55{flex:1 1 55%;max-width:55%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-55{flex:1 1 55%;max-width:100%;max-height:55%;box-sizing:border-box}.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-60{flex:1 1 60%;max-width:60%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-60{flex:1 1 60%;max-width:100%;max-height:60%;box-sizing:border-box}.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-65{flex:1 1 65%;max-width:65%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-65{flex:1 1 65%;max-width:100%;max-height:65%;box-sizing:border-box}.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-70{flex:1 1 70%;max-width:70%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-70{flex:1 1 70%;max-width:100%;max-height:70%;box-sizing:border-box}.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-75{flex:1 1 75%;max-width:75%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-75{flex:1 1 75%;max-width:100%;max-height:75%;box-sizing:border-box}.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-80{flex:1 1 80%;max-width:80%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-80{flex:1 1 80%;max-width:100%;max-height:80%;box-sizing:border-box}.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-85{flex:1 1 85%;max-width:85%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-85{flex:1 1 85%;max-width:100%;max-height:85%;box-sizing:border-box}.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-90{flex:1 1 90%;max-width:90%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-90{flex:1 1 90%;max-width:100%;max-height:90%;box-sizing:border-box}.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-95{flex:1 1 95%;max-width:95%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-95{flex:1 1 95%;max-width:100%;max-height:95%;box-sizing:border-box}.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-row>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-column>.flex-xl-100{flex:1 1 100%;max-width:100%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-33{flex:1 1 33.33%;max-width:33.33%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex-xl-66{flex:1 1 66.66%;max-width:66.66%;max-height:100%;box-sizing:border-box}.layout-xl-row>.flex{min-width:0}.layout-xl-column>.flex-xl-33{flex:1 1 33.33%;max-width:100%;max-height:33.33%;box-sizing:border-box}.layout-xl-column>.flex-xl-66{flex:1 1 66.66%;max-width:100%;max-height:66.66%;box-sizing:border-box}.layout-xl-column>.flex{min-height:0}.layout-xl,.layout-xl-column,.layout-xl-row{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex}.layout-xl-column{flex-direction:column}.layout-xl-row{flex-direction:row}.hide-gt-lg:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide-gt-xs:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show),.hide:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-gt-lg):not(.show-xl):not(.show){display:none}.hide-xl:not(.show-xl):not(.show-gt-lg):not(.show-gt-md):not(.show-gt-sm):not(.show-gt-xs):not(.show){display:none}}@media print{.hide-print:not(.show-print):not(.show){display:none!important}}*{text-rendering:optimizeLegibility;-o-text-rendering:optimizeLegibility;-ms-text-rendering:optimizeLegibility;-moz-text-rendering:optimizeLegibility;-webkit-text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent;box-sizing:border-box}:after,:before{box-sizing:border-box}:focus{outline:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=email],:not(md-input-container)>input[type=image],:not(md-input-container)>input[type=password],:not(md-input-container)>input[type=search],:not(md-input-container)>input[type=submit],:not(md-input-container)>input[type=tel],:not(md-input-container)>input[type=text],:not(md-input-container)>textarea{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;appearance:none;-moz-appearance:none;-webkit-appearance:none;border:none;padding:0;margin:0}:not(md-input-container)>button,:not(md-input-container)>input[type=button],:not(md-input-container)>input[type=submit]{background:0 0}button{border-radius:0;font-family:inherit;font-size:inherit;padding:0;margin:0;appearance:none;-moz-appearance:none;-webkit-appearance:none}[layout]>*{min-height:auto;min-height:initial}md-card>:not(md-card-content) img,md-card>img{height:inherit;height:initial}.md-datepicker-calendar-pane *{box-sizing:initial}md-autocomplete-wrap>input[type=search]{background:#fff;padding:0 15px!important}md-backdrop.md-opaque{background-color:rgba(33,33,33,.48)!important}md-card md-card-header md-card-avatar md-icon{width:40px;height:40px}md-checkbox.no-label{margin:0}md-chip .md-chip-remove md-icon{margin-left:2px}md-chip .md-chip-remove md-icon svg{width:18px;height:18px;max-width:18px;max-height:18px;margin:4px}md-datepicker .md-datepicker-button{padding:0!important;margin:0!important;vertical-align:middle}md-datepicker .md-datepicker-input-container{margin-left:0}.md-inline-form md-datepicker{margin-top:14px}md-dialog md-dialog-content{padding:32px 24px 24px 24px}md-dialog md-dialog-actions{min-height:64px;padding-top:8px;padding-bottom:8px}md-dialog md-dialog-actions .md-button{margin:0 8px}md-input-container.no-errors-spacer .md-errors-spacer{display:none}md-input-container .input-hint{position:absolute;right:auto;bottom:7px;left:2px;font-size:12px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:rgba(0,0,0,.54)}md-input-container.md-icon-left .input-hint{left:38px}md-list-item .md-list-item-text p{font-size:13px!important}.md-menu,md-menu{padding:0}md-menu-content.md-menu-bar-menu.md-dense{padding:8px 0}md-menu-content.md-menu-bar-menu.md-dense .md-button,md-menu-content.md-menu-bar-menu.md-dense md-menu-item{height:40px;line-height:40px}md-menu-content.md-menu-bar-menu.md-dense .md-button.md-indent>md-icon,md-menu-content.md-menu-bar-menu.md-dense md-menu-item.md-indent>md-icon{top:8px}.md-open-menu-container md-menu-content md-menu-item.selected{opacity:.4}md-menu-content md-menu-item .md-button{text-align:left}md-select.simplified{margin:0 8px}md-select.simplified .md-select-value{border:none!important;box-sizing:border-box;padding:0}md-select.simplified .md-select-value :first-child{transform:none;height:auto}md-select.simplified .md-select-value .md-select-icon{transform:none;font-size:16px}md-select.simplified .md-select-value .md-select-icon:after{top:1px}md-select[multiple] md-select-value>:first-child{display:flex}md-select[multiple] md-select-value>:first-child>:first-child{flex:0}md-select[multiple] md-select-value>:first-child .md-container{padding-right:6px}md-select[multiple] md-select-value>:first-child .md-container:first-of-type{padding-right:0}md-select-menu md-select-header{position:relative;display:flex;align-items:center;width:auto;height:48px;padding-left:10.667px;box-shadow:0 1px 0 0 rgba(0,0,0,.1),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);cursor:pointer}md-select-menu md-select-header input[type=search]{border:none;outline:0;height:100%;width:100%;padding:0}md-sidenav{-webkit-overflow-scrolling:touch}md-toolbar.colored-toolbar{color:rgba(255,255,255,.87)}md-toolbar.colored-toolbar md-menu-bar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar md-menu._md-open>button{background:rgba(0,0,0,.12)}md-toolbar.colored-toolbar input{color:rgba(255,255,255,.87)!important}md-progress-circular[disabled]{visibility:hidden}body,html{overflow:hidden!important}#main{position:absolute;top:0;right:0;bottom:0;left:0}body.boxed{background:#3f4450}body.boxed #main{overflow:hidden!important;width:100%;max-width:1280px;margin:0 auto;box-shadow:0 0 12px rgba(0,0,0,.45)}#layout-content-only{position:relative;height:100%;max-height:100%}#layout-content-only #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-content-with-toolbar{position:relative;height:100%;max-height:100%}#layout-content-with-toolbar #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation{height:100%;max-height:100%}#layout-vertical-navigation #content-container{position:relative;overflow:hidden}#layout-vertical-navigation #content-container #content{position:absolute;top:64px;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-vertical-navigation-fullwidth-toolbar-2{height:100%;max-height:100%}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container{position:relative}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container{position:relative;overflow:hidden}#layout-vertical-navigation-fullwidth-toolbar-2 #main-container #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}#layout-horizontal-navigation{height:100%;max-height:100%}#layout-horizontal-navigation #content-container{position:relative;overflow:hidden}#layout-horizontal-navigation #content-container #content{position:absolute;top:0;right:0;bottom:0;left:0}.page-layout{position:relative;overflow:hidden}.page-layout .top-bg{position:absolute;z-index:1;top:0;right:0;left:0;height:200px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout md-backdrop{z-index:50}.page-layout>.header .breadcrumb{margin-bottom:16px;font-weight:500;color:rgba(0,0,0,.54)}.page-layout>.header .breadcrumb md-icon{margin:0}.page-layout>.header .breadcrumb .separator{margin:0 8px}.page-layout>.header .title{font-size:34px}.page-layout.carded{min-height:100%;height:100%}.page-layout.carded.fullwidth.single-scroll{height:auto}.page-layout.carded.fullwidth.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.fullwidth>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.fullwidth>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.fullwidth>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.fullwidth>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.fullwidth>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.left-sidenav.single-scroll{height:auto}.page-layout.carded.left-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.left-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px}.page-layout.carded.left-sidenav>.sidenav .content{background:0 0;padding:24px}.page-layout.carded.left-sidenav>.sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.left-sidenav>.sidenav.md-locked-open+.center{margin-left:0}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .header{border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden}.page-layout.carded.left-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.left-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.left-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.left-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.left-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 8px 0 0!important;padding:0!important;border-radius:0}.page-layout.carded.left-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.carded.right-sidenav.single-scroll{height:auto}.page-layout.carded.right-sidenav.single-scroll>.center .content-card .content{overflow:hidden}.page-layout.carded.right-sidenav>.sidenav{width:240px;min-width:240px;max-width:240px;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);z-index:51}.page-layout.carded.right-sidenav>.sidenav .header{height:200px;min-height:200px;max-height:200px;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav .content{background:0 0;padding:24px 24px 24px 0}.page-layout.carded.right-sidenav>.sidenav.md-locked-open{width:196px;min-width:196px;max-width:196px;z-index:2;background:0 0;box-shadow:none}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .header{padding:24px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.sidenav:not(.md-locked-open) .content{overflow:hidden;padding:24px}.page-layout.carded.right-sidenav>.center{position:relative;z-index:2;margin-left:32px;margin-right:32px}.page-layout.carded.right-sidenav>.center .header{height:136px;min-height:136px;max-height:136px;padding:24px}.page-layout.carded.right-sidenav>.center .content-card{background:#fff;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);overflow:hidden}.page-layout.carded.right-sidenav>.center .content-card .toolbar{padding:8px 24px;height:64px;min-height:64px;max-height:64px;border-bottom:1px solid rgba(0,0,0,.12)}.page-layout.carded.right-sidenav>.center .content-card .toolbar .sidenav-toggle{margin:0 0 0 8px!important;padding:0!important;border-radius:0}.page-layout.carded.right-sidenav>.center .content-card .content{padding:24px;background:#fff}.page-layout.simple.fullwidth,.page-layout.simple.inner-sidenav{min-height:100%}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.fullwidth>.content,.page-layout.simple.inner-sidenav>.content{padding:24px}.page-layout.simple.left-sidenav{min-height:100%;height:100%}.page-layout.simple.left-sidenav.single-scroll{height:auto}.page-layout.simple.left-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.left-sidenav.inner-sidenav>.content>md-sidenav{margin-right:24px}.page-layout.simple.left-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.left-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.left-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.left-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.right-sidenav{min-height:100%;height:100%}.page-layout.simple.right-sidenav.single-scroll{height:auto}.page-layout.simple.right-sidenav.single-scroll>.center{overflow:hidden}.page-layout.simple.right-sidenav.inner-sidenav>.content>md-sidenav{margin-left:24px}.page-layout.simple.right-sidenav .sidenav{width:240px;min-width:240px;max-width:240px;padding:24px;z-index:51;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav .sidenav.md-locked-open{width:220px;min-width:220px;max-width:220px;z-index:2;box-shadow:none;background:0 0}.page-layout.simple.right-sidenav>.center{position:relative;overflow:auto;z-index:3;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)}.page-layout.simple.right-sidenav>.center .header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.right-sidenav>.center .content{padding:24px;background:#fff}.page-layout.simple.inner-sidenav{height:auto}.page-layout.simple.inner-sidenav>.content>md-sidenav.md-locked-open{padding:0}.page-layout.simple.tabbed{min-height:100%}.page-layout.simple.tabbed>.header{height:200px;min-height:200px;max-height:200px;padding:24px;background-image:url(/assets/images/backgrounds/header-bg.png);background-size:cover}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}.page-layout.simple.tabbed>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}.page-layout.simple.tabbed>.content>md-tabs>md-tabs-content-wrapper>md-tab-content{padding:24px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);border:none;height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav{margin:0 12px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item{height:56px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button{height:56px;line-height:32px}.page-layout.simple.tabbed>.content>md-nav-bar .md-nav-bar nav .md-nav-item ._md-nav-button-text{text-transform:none}.page-layout.blank{min-height:100%;padding:24px}.single-scroll .carded.fullwidth{height:auto}.single-scroll .carded.fullwidth>.center .content-card .content{overflow:hidden}.single-scroll .carded.left-sidenav{height:auto}.single-scroll .carded.left-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .carded.right-sidenav{height:auto}.single-scroll .carded.right-sidenav>.center .content-card .content{overflow:hidden}.single-scroll .simple.left-sidenav{height:auto}.single-scroll .simple.left-sidenav>.center{overflow:hidden}.single-scroll .simple.right-sidenav{height:auto}.single-scroll .simple.right-sidenav>.center{overflow:hidden}@media screen and (max-width:1280px){.page-layout.simple.inner-sidenav.left-sidenav>.content,.page-layout.simple.inner-sidenav.right-sidenav>.content{height:auto!important}.page-layout.simple.inner-sidenav.left-sidenav>.content>md-sidenav,.page-layout.simple.inner-sidenav.right-sidenav>.content>md-sidenav{margin-left:0;margin-right:0}.sidenav-open .page-layout.simple.inner-sidenav{height:100%}}@media screen and (max-width:600px){.page-layout .top-bg{height:160px}.page-layout.carded.fullwidth>.center,.page-layout.carded.left-sidenav>.center,.page-layout.carded.right-sidenav>.center{margin-left:16px;margin-right:16px}.page-layout.carded.fullwidth>.center .header,.page-layout.carded.left-sidenav>.center .header,.page-layout.carded.right-sidenav>.center .header{height:96px;min-height:96px;max-height:96px;padding:16px}.page-layout.carded.fullwidth{height:auto}.page-layout.carded.fullwidth>.center .content-card .content{overflow:hidden}.page-layout.carded.left-sidenav,.page-layout.carded.right-sidenav{height:auto}.page-layout.carded.left-sidenav>.center .content-card .content,.page-layout.carded.right-sidenav>.center .content-card .content{overflow:hidden}.page-layout.simple.fullwidth>.header,.page-layout.simple.inner-sidenav>.header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav>.center .header,.page-layout.simple.right-sidenav>.center .header{height:160px;min-height:160px;max-height:160px;padding:16px}.page-layout.simple.left-sidenav,.page-layout.simple.right-sidenav{height:auto}.page-layout.simple.left-sidenav>.center,.page-layout.simple.right-sidenav>.center{overflow:hidden}}.animate-slide-up{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-up.ng-enter{transform:translateY(100%);opacity:0}.animate-slide-up.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-up.ng-leave{transform:translateY(0);opacity:1}.animate-slide-up.ng-leave.ng-leave-active{transition-property:all;transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-up.ng-hide-add-active,.animate-slide-up.ng-hide-remove-active{transition-property:all}.animate-slide-down{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-down.ng-enter{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-enter.ng-enter-active{transition-property:all;transform:translateY(0);opacity:1}.animate-slide-down.ng-leave{transform:translateY(0);opacity:1}.animate-slide-down.ng-leave.ng-leave-active{transition-property:all;transform:translateY(100%);opacity:0}.animate-slide-down.ng-hide{transform:translateY(-100%);opacity:0}.animate-slide-down.ng-hide-add-active,.animate-slide-down.ng-hide-remove-active{transition-property:all}.animate-slide-left{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-left.ng-enter{transform:translateX(100%);opacity:0}.animate-slide-left.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-left.ng-leave{transform:translateX(0);opacity:1}.animate-slide-left.ng-leave.ng-leave-active{transition-property:all;transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide{transform:translateX(-100%);opacity:0}.animate-slide-left.ng-hide-add-active,.animate-slide-left.ng-hide-remove-active{transition-property:all}.animate-slide-right{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-slide-right.ng-enter{transform:translateX(-100%);opacity:0}.animate-slide-right.ng-enter.ng-enter-active{transition-property:all;transform:translateX(0);opacity:1}.animate-slide-right.ng-leave{transform:translateX(0);opacity:1}.animate-slide-right.ng-leave.ng-leave-active{transition-property:all;transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide{transform:translateX(100%);opacity:0}.animate-slide-right.ng-hide-add-active,.animate-slide-right.ng-hide-remove-active{transition-property:all}.animate-fade-in-out{-webkit-backface-visibility:hidden;-webkit-perspective:1000px;transition-property:none;transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.46,.45,.94);opacity:1}.animate-fade-in-out.ng-enter{opacity:0}.animate-fade-in-out.ng-enter.ng-enter-active{transition-property:all;opacity:1}.animate-fade-in-out.ng-leave{opacity:1}.animate-fade-in-out.ng-leave.ng-leave-active{transition-property:all;opacity:0}.animate-fade-in-out.ng-hide{opacity:0}.animate-fade-in-out.ng-hide-add-active,.animate-fade-in-out.ng-hide-remove-active{transition-property:all}@keyframes slide-in-left{0%{opacity:0;transform:translateX(-500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(500px)}65%{opacity:1;transform:translateX(0)}100%{transform:translateX(0)}}@keyframes slide-in-bottom{0%{opacity:0;transform:translateY(200px)}65%{opacity:1;transform:translateY(0)}100%{transform:translateY(0)}}.animate-rotate{animation:rotate 1.75s linear infinite}@keyframes rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.black-fg,.black-text{color:rgba(0,0,0,.87)!important}.black-fg .icon,.black-fg .secondary-text,.black-fg.icon,.black-fg.secondary-text,.black-text .icon,.black-text .secondary-text,.black-text.icon,.black-text.secondary-text{color:rgba(0,0,0,.54)!important}.black-fg .disabled-text,.black-fg .hint-text,.black-fg.disabled-text,.black-fg.hint-text,.black-text .disabled-text,.black-text .hint-text,.black-text.disabled-text,.black-text.hint-text{color:rgba(0,0,0,.26)!important}.black-fg .divider,.black-fg .faint-text,.black-fg.divider,.black-fg.faint-text,.black-text .divider,.black-text .faint-text,.black-text.divider,.black-text.faint-text{color:rgba(0,0,0,.12)!important}.white-fg,.white-text{color:#fff!important}.white-fg .icon,.white-fg .secondary-text,.white-fg.icon,.white-fg.secondary-text,.white-text .icon,.white-text .secondary-text,.white-text.icon,.white-text.secondary-text{color:rgba(255,255,255,.7)!important}.white-fg .disabled-text,.white-fg .hint-text,.white-fg.disabled-text,.white-fg.hint-text,.white-text .disabled-text,.white-text .hint-text,.white-text.disabled-text,.white-text.hint-text{color:rgba(255,255,255,.3)!important}.white-fg .divider,.white-fg .faint-text,.white-fg.divider,.white-fg.faint-text,.white-text .divider,.white-text .faint-text,.white-text.divider,.white-text.faint-text{color:rgba(255,255,255,.12)!important}.white-fg md-icon,.white-text md-icon{color:#fff}.white-fg md-progress-linear .md-container,.white-text md-progress-linear .md-container{background:rgba(255,255,255,.3)}.white-fg md-progress-linear .md-bar,.white-text md-progress-linear .md-bar{background:rgba(255,255,255,.7)}.red-50-bg{background-color:#ffebee!important}.md-red-50-bg{background-color:#ffebee!important;color:rgba(0,0,0,.87)}.red-50-fg{color:#ffebee!important}.red-50-border{border-color:#ffebee!important}.red-50-border-top{border-top-color:#ffebee!important}.red-50-border-right{border-right-color:#ffebee!important}.red-50-border-bottom{border-bottom-color:#ffebee!important}.red-50-border-left{border-left-color:#ffebee!important}.red-100-bg{background-color:#ffcdd2!important}.md-red-100-bg{background-color:#ffcdd2!important;color:rgba(0,0,0,.87)}.red-100-fg{color:#ffcdd2!important}.red-100-border{border-color:#ffcdd2!important}.red-100-border-top{border-top-color:#ffcdd2!important}.red-100-border-right{border-right-color:#ffcdd2!important}.red-100-border-bottom{border-bottom-color:#ffcdd2!important}.red-100-border-left{border-left-color:#ffcdd2!important}.red-200-bg{background-color:#ef9a9a!important}.md-red-200-bg{background-color:#ef9a9a!important;color:rgba(0,0,0,.87)}.red-200-fg{color:#ef9a9a!important}.red-200-border{border-color:#ef9a9a!important}.red-200-border-top{border-top-color:#ef9a9a!important}.red-200-border-right{border-right-color:#ef9a9a!important}.red-200-border-bottom{border-bottom-color:#ef9a9a!important}.red-200-border-left{border-left-color:#ef9a9a!important}.red-300-bg{background-color:#e57373!important}.md-red-300-bg{background-color:#e57373!important;color:rgba(0,0,0,.87)}.red-300-fg{color:#e57373!important}.red-300-border{border-color:#e57373!important}.red-300-border-top{border-top-color:#e57373!important}.red-300-border-right{border-right-color:#e57373!important}.red-300-border-bottom{border-bottom-color:#e57373!important}.red-300-border-left{border-left-color:#e57373!important}.red-400-bg{background-color:#ef5350!important}.md-red-400-bg{background-color:#ef5350!important;color:#fff}.red-400-fg{color:#ef5350!important}.red-400-border{border-color:#ef5350!important}.red-400-border-top{border-top-color:#ef5350!important}.red-400-border-right{border-right-color:#ef5350!important}.red-400-border-bottom{border-bottom-color:#ef5350!important}.red-400-border-left{border-left-color:#ef5350!important}.red-500-bg{background-color:#f44336!important}.md-red-500-bg{background-color:#f44336!important;color:#fff}.red-500-fg{color:#f44336!important}.red-500-border{border-color:#f44336!important}.red-500-border-top{border-top-color:#f44336!important}.red-500-border-right{border-right-color:#f44336!important}.red-500-border-bottom{border-bottom-color:#f44336!important}.red-500-border-left{border-left-color:#f44336!important}.md-red-bg{background-color:#f44336!important;color:#fff}.red-bg{background-color:#f44336!important}.red-fg{color:#f44336!important}.red-border{border-color:#f44336!important}.red-border-top{border-top-color:#f44336!important}.red-border-right{border-right-color:#f44336!important}.red-border-bottom{border-bottom-color:#f44336!important}.red-border-left{border-left-color:#f44336!important}.red-600-bg{background-color:#e53935!important}.md-red-600-bg{background-color:#e53935!important;color:#fff}.red-600-fg{color:#e53935!important}.red-600-border{border-color:#e53935!important}.red-600-border-top{border-top-color:#e53935!important}.red-600-border-right{border-right-color:#e53935!important}.red-600-border-bottom{border-bottom-color:#e53935!important}.red-600-border-left{border-left-color:#e53935!important}.red-700-bg{background-color:#d32f2f!important}.md-red-700-bg{background-color:#d32f2f!important;color:#fff}.red-700-fg{color:#d32f2f!important}.red-700-border{border-color:#d32f2f!important}.red-700-border-top{border-top-color:#d32f2f!important}.red-700-border-right{border-right-color:#d32f2f!important}.red-700-border-bottom{border-bottom-color:#d32f2f!important}.red-700-border-left{border-left-color:#d32f2f!important}.red-800-bg{background-color:#c62828!important}.md-red-800-bg{background-color:#c62828!important;color:rgba(255,255,255,.87)}.red-800-fg{color:#c62828!important}.red-800-border{border-color:#c62828!important}.red-800-border-top{border-top-color:#c62828!important}.red-800-border-right{border-right-color:#c62828!important}.red-800-border-bottom{border-bottom-color:#c62828!important}.red-800-border-left{border-left-color:#c62828!important}.red-900-bg{background-color:#b71c1c!important}.md-red-900-bg{background-color:#b71c1c!important;color:rgba(255,255,255,.87)}.red-900-fg{color:#b71c1c!important}.red-900-border{border-color:#b71c1c!important}.red-900-border-top{border-top-color:#b71c1c!important}.red-900-border-right{border-right-color:#b71c1c!important}.red-900-border-bottom{border-bottom-color:#b71c1c!important}.red-900-border-left{border-left-color:#b71c1c!important}.red-A100-bg{background-color:#ff8a80!important}.md-red-A100-bg{background-color:#ff8a80!important;color:rgba(0,0,0,.87)}.red-A100-fg{color:#ff8a80!important}.red-A100-border{border-color:#ff8a80!important}.red-A100-border-top{border-top-color:#ff8a80!important}.red-A100-border-right{border-right-color:#ff8a80!important}.red-A100-border-bottom{border-bottom-color:#ff8a80!important}.red-A100-border-left{border-left-color:#ff8a80!important}.red-A200-bg{background-color:#ff5252!important}.md-red-A200-bg{background-color:#ff5252!important;color:#fff}.red-A200-fg{color:#ff5252!important}.red-A200-border{border-color:#ff5252!important}.red-A200-border-top{border-top-color:#ff5252!important}.red-A200-border-right{border-right-color:#ff5252!important}.red-A200-border-bottom{border-bottom-color:#ff5252!important}.red-A200-border-left{border-left-color:#ff5252!important}.red-A400-bg{background-color:#ff1744!important}.md-red-A400-bg{background-color:#ff1744!important;color:#fff}.red-A400-fg{color:#ff1744!important}.red-A400-border{border-color:#ff1744!important}.red-A400-border-top{border-top-color:#ff1744!important}.red-A400-border-right{border-right-color:#ff1744!important}.red-A400-border-bottom{border-bottom-color:#ff1744!important}.red-A400-border-left{border-left-color:#ff1744!important}.red-A700-bg{background-color:#d50000!important}.md-red-A700-bg{background-color:#d50000!important;color:#fff}.red-A700-fg{color:#d50000!important}.red-A700-border{border-color:#d50000!important}.red-A700-border-top{border-top-color:#d50000!important}.red-A700-border-right{border-right-color:#d50000!important}.red-A700-border-bottom{border-bottom-color:#d50000!important}.red-A700-border-left{border-left-color:#d50000!important}.pink-50-bg{background-color:#fce4ec!important}.md-pink-50-bg{background-color:#fce4ec!important;color:rgba(0,0,0,.87)}.pink-50-fg{color:#fce4ec!important}.pink-50-border{border-color:#fce4ec!important}.pink-50-border-top{border-top-color:#fce4ec!important}.pink-50-border-right{border-right-color:#fce4ec!important}.pink-50-border-bottom{border-bottom-color:#fce4ec!important}.pink-50-border-left{border-left-color:#fce4ec!important}.pink-100-bg{background-color:#f8bbd0!important}.md-pink-100-bg{background-color:#f8bbd0!important;color:rgba(0,0,0,.87)}.pink-100-fg{color:#f8bbd0!important}.pink-100-border{border-color:#f8bbd0!important}.pink-100-border-top{border-top-color:#f8bbd0!important}.pink-100-border-right{border-right-color:#f8bbd0!important}.pink-100-border-bottom{border-bottom-color:#f8bbd0!important}.pink-100-border-left{border-left-color:#f8bbd0!important}.pink-200-bg{background-color:#f48fb1!important}.md-pink-200-bg{background-color:#f48fb1!important;color:rgba(0,0,0,.87)}.pink-200-fg{color:#f48fb1!important}.pink-200-border{border-color:#f48fb1!important}.pink-200-border-top{border-top-color:#f48fb1!important}.pink-200-border-right{border-right-color:#f48fb1!important}.pink-200-border-bottom{border-bottom-color:#f48fb1!important}.pink-200-border-left{border-left-color:#f48fb1!important}.pink-300-bg{background-color:#f06292!important}.md-pink-300-bg{background-color:#f06292!important;color:rgba(255,255,255,.87)}.pink-300-fg{color:#f06292!important}.pink-300-border{border-color:#f06292!important}.pink-300-border-top{border-top-color:#f06292!important}.pink-300-border-right{border-right-color:#f06292!important}.pink-300-border-bottom{border-bottom-color:#f06292!important}.pink-300-border-left{border-left-color:#f06292!important}.pink-400-bg{background-color:#ec407a!important}.md-pink-400-bg{background-color:#ec407a!important;color:rgba(255,255,255,.87)}.pink-400-fg{color:#ec407a!important}.pink-400-border{border-color:#ec407a!important}.pink-400-border-top{border-top-color:#ec407a!important}.pink-400-border-right{border-right-color:#ec407a!important}.pink-400-border-bottom{border-bottom-color:#ec407a!important}.pink-400-border-left{border-left-color:#ec407a!important}.pink-500-bg{background-color:#e91e63!important}.md-pink-500-bg{background-color:#e91e63!important;color:#fff}.pink-500-fg{color:#e91e63!important}.pink-500-border{border-color:#e91e63!important}.pink-500-border-top{border-top-color:#e91e63!important}.pink-500-border-right{border-right-color:#e91e63!important}.pink-500-border-bottom{border-bottom-color:#e91e63!important}.pink-500-border-left{border-left-color:#e91e63!important}.md-pink-bg{background-color:#e91e63!important;color:#fff}.pink-bg{background-color:#e91e63!important}.pink-fg{color:#e91e63!important}.pink-border{border-color:#e91e63!important}.pink-border-top{border-top-color:#e91e63!important}.pink-border-right{border-right-color:#e91e63!important}.pink-border-bottom{border-bottom-color:#e91e63!important}.pink-border-left{border-left-color:#e91e63!important}.pink-600-bg{background-color:#d81b60!important}.md-pink-600-bg{background-color:#d81b60!important;color:#fff}.pink-600-fg{color:#d81b60!important}.pink-600-border{border-color:#d81b60!important}.pink-600-border-top{border-top-color:#d81b60!important}.pink-600-border-right{border-right-color:#d81b60!important}.pink-600-border-bottom{border-bottom-color:#d81b60!important}.pink-600-border-left{border-left-color:#d81b60!important}.pink-700-bg{background-color:#c2185b!important}.md-pink-700-bg{background-color:#c2185b!important;color:rgba(255,255,255,.87)}.pink-700-fg{color:#c2185b!important}.pink-700-border{border-color:#c2185b!important}.pink-700-border-top{border-top-color:#c2185b!important}.pink-700-border-right{border-right-color:#c2185b!important}.pink-700-border-bottom{border-bottom-color:#c2185b!important}.pink-700-border-left{border-left-color:#c2185b!important}.pink-800-bg{background-color:#ad1457!important}.md-pink-800-bg{background-color:#ad1457!important;color:rgba(255,255,255,.87)}.pink-800-fg{color:#ad1457!important}.pink-800-border{border-color:#ad1457!important}.pink-800-border-top{border-top-color:#ad1457!important}.pink-800-border-right{border-right-color:#ad1457!important}.pink-800-border-bottom{border-bottom-color:#ad1457!important}.pink-800-border-left{border-left-color:#ad1457!important}.pink-900-bg{background-color:#880e4f!important}.md-pink-900-bg{background-color:#880e4f!important;color:rgba(255,255,255,.87)}.pink-900-fg{color:#880e4f!important}.pink-900-border{border-color:#880e4f!important}.pink-900-border-top{border-top-color:#880e4f!important}.pink-900-border-right{border-right-color:#880e4f!important}.pink-900-border-bottom{border-bottom-color:#880e4f!important}.pink-900-border-left{border-left-color:#880e4f!important}.pink-A100-bg{background-color:#ff80ab!important}.md-pink-A100-bg{background-color:#ff80ab!important;color:rgba(0,0,0,.87)}.pink-A100-fg{color:#ff80ab!important}.pink-A100-border{border-color:#ff80ab!important}.pink-A100-border-top{border-top-color:#ff80ab!important}.pink-A100-border-right{border-right-color:#ff80ab!important}.pink-A100-border-bottom{border-bottom-color:#ff80ab!important}.pink-A100-border-left{border-left-color:#ff80ab!important}.pink-A200-bg{background-color:#ff4081!important}.md-pink-A200-bg{background-color:#ff4081!important;color:#fff}.pink-A200-fg{color:#ff4081!important}.pink-A200-border{border-color:#ff4081!important}.pink-A200-border-top{border-top-color:#ff4081!important}.pink-A200-border-right{border-right-color:#ff4081!important}.pink-A200-border-bottom{border-bottom-color:#ff4081!important}.pink-A200-border-left{border-left-color:#ff4081!important}.pink-A400-bg{background-color:#f50057!important}.md-pink-A400-bg{background-color:#f50057!important;color:#fff}.pink-A400-fg{color:#f50057!important}.pink-A400-border{border-color:#f50057!important}.pink-A400-border-top{border-top-color:#f50057!important}.pink-A400-border-right{border-right-color:#f50057!important}.pink-A400-border-bottom{border-bottom-color:#f50057!important}.pink-A400-border-left{border-left-color:#f50057!important}.pink-A700-bg{background-color:#c51162!important}.md-pink-A700-bg{background-color:#c51162!important;color:#fff}.pink-A700-fg{color:#c51162!important}.pink-A700-border{border-color:#c51162!important}.pink-A700-border-top{border-top-color:#c51162!important}.pink-A700-border-right{border-right-color:#c51162!important}.pink-A700-border-bottom{border-bottom-color:#c51162!important}.pink-A700-border-left{border-left-color:#c51162!important}.purple-50-bg{background-color:#f3e5f5!important}.md-purple-50-bg{background-color:#f3e5f5!important;color:rgba(0,0,0,.87)}.purple-50-fg{color:#f3e5f5!important}.purple-50-border{border-color:#f3e5f5!important}.purple-50-border-top{border-top-color:#f3e5f5!important}.purple-50-border-right{border-right-color:#f3e5f5!important}.purple-50-border-bottom{border-bottom-color:#f3e5f5!important}.purple-50-border-left{border-left-color:#f3e5f5!important}.purple-100-bg{background-color:#e1bee7!important}.md-purple-100-bg{background-color:#e1bee7!important;color:rgba(0,0,0,.87)}.purple-100-fg{color:#e1bee7!important}.purple-100-border{border-color:#e1bee7!important}.purple-100-border-top{border-top-color:#e1bee7!important}.purple-100-border-right{border-right-color:#e1bee7!important}.purple-100-border-bottom{border-bottom-color:#e1bee7!important}.purple-100-border-left{border-left-color:#e1bee7!important}.purple-200-bg{background-color:#ce93d8!important}.md-purple-200-bg{background-color:#ce93d8!important;color:rgba(0,0,0,.87)}.purple-200-fg{color:#ce93d8!important}.purple-200-border{border-color:#ce93d8!important}.purple-200-border-top{border-top-color:#ce93d8!important}.purple-200-border-right{border-right-color:#ce93d8!important}.purple-200-border-bottom{border-bottom-color:#ce93d8!important}.purple-200-border-left{border-left-color:#ce93d8!important}.purple-300-bg{background-color:#ba68c8!important}.md-purple-300-bg{background-color:#ba68c8!important;color:#fff}.purple-300-fg{color:#ba68c8!important}.purple-300-border{border-color:#ba68c8!important}.purple-300-border-top{border-top-color:#ba68c8!important}.purple-300-border-right{border-right-color:#ba68c8!important}.purple-300-border-bottom{border-bottom-color:#ba68c8!important}.purple-300-border-left{border-left-color:#ba68c8!important}.purple-400-bg{background-color:#ab47bc!important}.md-purple-400-bg{background-color:#ab47bc!important;color:#fff}.purple-400-fg{color:#ab47bc!important}.purple-400-border{border-color:#ab47bc!important}.purple-400-border-top{border-top-color:#ab47bc!important}.purple-400-border-right{border-right-color:#ab47bc!important}.purple-400-border-bottom{border-bottom-color:#ab47bc!important}.purple-400-border-left{border-left-color:#ab47bc!important}.purple-500-bg{background-color:#9c27b0!important}.md-purple-500-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-500-fg{color:#9c27b0!important}.purple-500-border{border-color:#9c27b0!important}.purple-500-border-top{border-top-color:#9c27b0!important}.purple-500-border-right{border-right-color:#9c27b0!important}.purple-500-border-bottom{border-bottom-color:#9c27b0!important}.purple-500-border-left{border-left-color:#9c27b0!important}.md-purple-bg{background-color:#9c27b0!important;color:rgba(255,255,255,.87)}.purple-bg{background-color:#9c27b0!important}.purple-fg{color:#9c27b0!important}.purple-border{border-color:#9c27b0!important}.purple-border-top{border-top-color:#9c27b0!important}.purple-border-right{border-right-color:#9c27b0!important}.purple-border-bottom{border-bottom-color:#9c27b0!important}.purple-border-left{border-left-color:#9c27b0!important}.purple-600-bg{background-color:#8e24aa!important}.md-purple-600-bg{background-color:#8e24aa!important;color:rgba(255,255,255,.87)}.purple-600-fg{color:#8e24aa!important}.purple-600-border{border-color:#8e24aa!important}.purple-600-border-top{border-top-color:#8e24aa!important}.purple-600-border-right{border-right-color:#8e24aa!important}.purple-600-border-bottom{border-bottom-color:#8e24aa!important}.purple-600-border-left{border-left-color:#8e24aa!important}.purple-700-bg{background-color:#7b1fa2!important}.md-purple-700-bg{background-color:#7b1fa2!important;color:rgba(255,255,255,.87)}.purple-700-fg{color:#7b1fa2!important}.purple-700-border{border-color:#7b1fa2!important}.purple-700-border-top{border-top-color:#7b1fa2!important}.purple-700-border-right{border-right-color:#7b1fa2!important}.purple-700-border-bottom{border-bottom-color:#7b1fa2!important}.purple-700-border-left{border-left-color:#7b1fa2!important}.purple-800-bg{background-color:#6a1b9a!important}.md-purple-800-bg{background-color:#6a1b9a!important;color:rgba(255,255,255,.87)}.purple-800-fg{color:#6a1b9a!important}.purple-800-border{border-color:#6a1b9a!important}.purple-800-border-top{border-top-color:#6a1b9a!important}.purple-800-border-right{border-right-color:#6a1b9a!important}.purple-800-border-bottom{border-bottom-color:#6a1b9a!important}.purple-800-border-left{border-left-color:#6a1b9a!important}.purple-900-bg{background-color:#4a148c!important}.md-purple-900-bg{background-color:#4a148c!important;color:rgba(255,255,255,.87)}.purple-900-fg{color:#4a148c!important}.purple-900-border{border-color:#4a148c!important}.purple-900-border-top{border-top-color:#4a148c!important}.purple-900-border-right{border-right-color:#4a148c!important}.purple-900-border-bottom{border-bottom-color:#4a148c!important}.purple-900-border-left{border-left-color:#4a148c!important}.purple-A100-bg{background-color:#ea80fc!important}.md-purple-A100-bg{background-color:#ea80fc!important;color:rgba(0,0,0,.87)}.purple-A100-fg{color:#ea80fc!important}.purple-A100-border{border-color:#ea80fc!important}.purple-A100-border-top{border-top-color:#ea80fc!important}.purple-A100-border-right{border-right-color:#ea80fc!important}.purple-A100-border-bottom{border-bottom-color:#ea80fc!important}.purple-A100-border-left{border-left-color:#ea80fc!important}.purple-A200-bg{background-color:#e040fb!important}.md-purple-A200-bg{background-color:#e040fb!important;color:#fff}.purple-A200-fg{color:#e040fb!important}.purple-A200-border{border-color:#e040fb!important}.purple-A200-border-top{border-top-color:#e040fb!important}.purple-A200-border-right{border-right-color:#e040fb!important}.purple-A200-border-bottom{border-bottom-color:#e040fb!important}.purple-A200-border-left{border-left-color:#e040fb!important}.purple-A400-bg{background-color:#d500f9!important}.md-purple-A400-bg{background-color:#d500f9!important;color:#fff}.purple-A400-fg{color:#d500f9!important}.purple-A400-border{border-color:#d500f9!important}.purple-A400-border-top{border-top-color:#d500f9!important}.purple-A400-border-right{border-right-color:#d500f9!important}.purple-A400-border-bottom{border-bottom-color:#d500f9!important}.purple-A400-border-left{border-left-color:#d500f9!important}.purple-A700-bg{background-color:#a0f!important}.md-purple-A700-bg{background-color:#a0f!important;color:#fff}.purple-A700-fg{color:#a0f!important}.purple-A700-border{border-color:#a0f!important}.purple-A700-border-top{border-top-color:#a0f!important}.purple-A700-border-right{border-right-color:#a0f!important}.purple-A700-border-bottom{border-bottom-color:#a0f!important}.purple-A700-border-left{border-left-color:#a0f!important}.deep-purple-50-bg{background-color:#ede7f6!important}.md-deep-purple-50-bg{background-color:#ede7f6!important;color:rgba(0,0,0,.87)}.deep-purple-50-fg{color:#ede7f6!important}.deep-purple-50-border{border-color:#ede7f6!important}.deep-purple-50-border-top{border-top-color:#ede7f6!important}.deep-purple-50-border-right{border-right-color:#ede7f6!important}.deep-purple-50-border-bottom{border-bottom-color:#ede7f6!important}.deep-purple-50-border-left{border-left-color:#ede7f6!important}.deep-purple-100-bg{background-color:#d1c4e9!important}.md-deep-purple-100-bg{background-color:#d1c4e9!important;color:rgba(0,0,0,.87)}.deep-purple-100-fg{color:#d1c4e9!important}.deep-purple-100-border{border-color:#d1c4e9!important}.deep-purple-100-border-top{border-top-color:#d1c4e9!important}.deep-purple-100-border-right{border-right-color:#d1c4e9!important}.deep-purple-100-border-bottom{border-bottom-color:#d1c4e9!important}.deep-purple-100-border-left{border-left-color:#d1c4e9!important}.deep-purple-200-bg{background-color:#b39ddb!important}.md-deep-purple-200-bg{background-color:#b39ddb!important;color:rgba(0,0,0,.87)}.deep-purple-200-fg{color:#b39ddb!important}.deep-purple-200-border{border-color:#b39ddb!important}.deep-purple-200-border-top{border-top-color:#b39ddb!important}.deep-purple-200-border-right{border-right-color:#b39ddb!important}.deep-purple-200-border-bottom{border-bottom-color:#b39ddb!important}.deep-purple-200-border-left{border-left-color:#b39ddb!important}.deep-purple-300-bg{background-color:#9575cd!important}.md-deep-purple-300-bg{background-color:#9575cd!important;color:#fff}.deep-purple-300-fg{color:#9575cd!important}.deep-purple-300-border{border-color:#9575cd!important}.deep-purple-300-border-top{border-top-color:#9575cd!important}.deep-purple-300-border-right{border-right-color:#9575cd!important}.deep-purple-300-border-bottom{border-bottom-color:#9575cd!important}.deep-purple-300-border-left{border-left-color:#9575cd!important}.deep-purple-400-bg{background-color:#7e57c2!important}.md-deep-purple-400-bg{background-color:#7e57c2!important;color:#fff}.deep-purple-400-fg{color:#7e57c2!important}.deep-purple-400-border{border-color:#7e57c2!important}.deep-purple-400-border-top{border-top-color:#7e57c2!important}.deep-purple-400-border-right{border-right-color:#7e57c2!important}.deep-purple-400-border-bottom{border-bottom-color:#7e57c2!important}.deep-purple-400-border-left{border-left-color:#7e57c2!important}.deep-purple-500-bg{background-color:#673ab7!important}.md-deep-purple-500-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-500-fg{color:#673ab7!important}.deep-purple-500-border{border-color:#673ab7!important}.deep-purple-500-border-top{border-top-color:#673ab7!important}.deep-purple-500-border-right{border-right-color:#673ab7!important}.deep-purple-500-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-500-border-left{border-left-color:#673ab7!important}.md-deep-purple-bg{background-color:#673ab7!important;color:rgba(255,255,255,.87)}.deep-purple-bg{background-color:#673ab7!important}.deep-purple-fg{color:#673ab7!important}.deep-purple-border{border-color:#673ab7!important}.deep-purple-border-top{border-top-color:#673ab7!important}.deep-purple-border-right{border-right-color:#673ab7!important}.deep-purple-border-bottom{border-bottom-color:#673ab7!important}.deep-purple-border-left{border-left-color:#673ab7!important}.deep-purple-600-bg{background-color:#5e35b1!important}.md-deep-purple-600-bg{background-color:#5e35b1!important;color:rgba(255,255,255,.87)}.deep-purple-600-fg{color:#5e35b1!important}.deep-purple-600-border{border-color:#5e35b1!important}.deep-purple-600-border-top{border-top-color:#5e35b1!important}.deep-purple-600-border-right{border-right-color:#5e35b1!important}.deep-purple-600-border-bottom{border-bottom-color:#5e35b1!important}.deep-purple-600-border-left{border-left-color:#5e35b1!important}.deep-purple-700-bg{background-color:#512da8!important}.md-deep-purple-700-bg{background-color:#512da8!important;color:rgba(255,255,255,.87)}.deep-purple-700-fg{color:#512da8!important}.deep-purple-700-border{border-color:#512da8!important}.deep-purple-700-border-top{border-top-color:#512da8!important}.deep-purple-700-border-right{border-right-color:#512da8!important}.deep-purple-700-border-bottom{border-bottom-color:#512da8!important}.deep-purple-700-border-left{border-left-color:#512da8!important}.deep-purple-800-bg{background-color:#4527a0!important}.md-deep-purple-800-bg{background-color:#4527a0!important;color:rgba(255,255,255,.87)}.deep-purple-800-fg{color:#4527a0!important}.deep-purple-800-border{border-color:#4527a0!important}.deep-purple-800-border-top{border-top-color:#4527a0!important}.deep-purple-800-border-right{border-right-color:#4527a0!important}.deep-purple-800-border-bottom{border-bottom-color:#4527a0!important}.deep-purple-800-border-left{border-left-color:#4527a0!important}.deep-purple-900-bg{background-color:#311b92!important}.md-deep-purple-900-bg{background-color:#311b92!important;color:rgba(255,255,255,.87)}.deep-purple-900-fg{color:#311b92!important}.deep-purple-900-border{border-color:#311b92!important}.deep-purple-900-border-top{border-top-color:#311b92!important}.deep-purple-900-border-right{border-right-color:#311b92!important}.deep-purple-900-border-bottom{border-bottom-color:#311b92!important}.deep-purple-900-border-left{border-left-color:#311b92!important}.deep-purple-A100-bg{background-color:#b388ff!important}.md-deep-purple-A100-bg{background-color:#b388ff!important;color:rgba(0,0,0,.87)}.deep-purple-A100-fg{color:#b388ff!important}.deep-purple-A100-border{border-color:#b388ff!important}.deep-purple-A100-border-top{border-top-color:#b388ff!important}.deep-purple-A100-border-right{border-right-color:#b388ff!important}.deep-purple-A100-border-bottom{border-bottom-color:#b388ff!important}.deep-purple-A100-border-left{border-left-color:#b388ff!important}.deep-purple-A200-bg{background-color:#7c4dff!important}.md-deep-purple-A200-bg{background-color:#7c4dff!important;color:#fff}.deep-purple-A200-fg{color:#7c4dff!important}.deep-purple-A200-border{border-color:#7c4dff!important}.deep-purple-A200-border-top{border-top-color:#7c4dff!important}.deep-purple-A200-border-right{border-right-color:#7c4dff!important}.deep-purple-A200-border-bottom{border-bottom-color:#7c4dff!important}.deep-purple-A200-border-left{border-left-color:#7c4dff!important}.deep-purple-A400-bg{background-color:#651fff!important}.md-deep-purple-A400-bg{background-color:#651fff!important;color:rgba(255,255,255,.87)}.deep-purple-A400-fg{color:#651fff!important}.deep-purple-A400-border{border-color:#651fff!important}.deep-purple-A400-border-top{border-top-color:#651fff!important}.deep-purple-A400-border-right{border-right-color:#651fff!important}.deep-purple-A400-border-bottom{border-bottom-color:#651fff!important}.deep-purple-A400-border-left{border-left-color:#651fff!important}.deep-purple-A700-bg{background-color:#6200ea!important}.md-deep-purple-A700-bg{background-color:#6200ea!important;color:rgba(255,255,255,.87)}.deep-purple-A700-fg{color:#6200ea!important}.deep-purple-A700-border{border-color:#6200ea!important}.deep-purple-A700-border-top{border-top-color:#6200ea!important}.deep-purple-A700-border-right{border-right-color:#6200ea!important}.deep-purple-A700-border-bottom{border-bottom-color:#6200ea!important}.deep-purple-A700-border-left{border-left-color:#6200ea!important}.indigo-50-bg{background-color:#e8eaf6!important}.md-indigo-50-bg{background-color:#e8eaf6!important;color:rgba(0,0,0,.87)}.indigo-50-fg{color:#e8eaf6!important}.indigo-50-border{border-color:#e8eaf6!important}.indigo-50-border-top{border-top-color:#e8eaf6!important}.indigo-50-border-right{border-right-color:#e8eaf6!important}.indigo-50-border-bottom{border-bottom-color:#e8eaf6!important}.indigo-50-border-left{border-left-color:#e8eaf6!important}.indigo-100-bg{background-color:#c5cae9!important}.md-indigo-100-bg{background-color:#c5cae9!important;color:rgba(0,0,0,.87)}.indigo-100-fg{color:#c5cae9!important}.indigo-100-border{border-color:#c5cae9!important}.indigo-100-border-top{border-top-color:#c5cae9!important}.indigo-100-border-right{border-right-color:#c5cae9!important}.indigo-100-border-bottom{border-bottom-color:#c5cae9!important}.indigo-100-border-left{border-left-color:#c5cae9!important}.indigo-200-bg{background-color:#9fa8da!important}.md-indigo-200-bg{background-color:#9fa8da!important;color:rgba(0,0,0,.87)}.indigo-200-fg{color:#9fa8da!important}.indigo-200-border{border-color:#9fa8da!important}.indigo-200-border-top{border-top-color:#9fa8da!important}.indigo-200-border-right{border-right-color:#9fa8da!important}.indigo-200-border-bottom{border-bottom-color:#9fa8da!important}.indigo-200-border-left{border-left-color:#9fa8da!important}.indigo-300-bg{background-color:#7986cb!important}.md-indigo-300-bg{background-color:#7986cb!important;color:#fff}.indigo-300-fg{color:#7986cb!important}.indigo-300-border{border-color:#7986cb!important}.indigo-300-border-top{border-top-color:#7986cb!important}.indigo-300-border-right{border-right-color:#7986cb!important}.indigo-300-border-bottom{border-bottom-color:#7986cb!important}.indigo-300-border-left{border-left-color:#7986cb!important}.indigo-400-bg{background-color:#5c6bc0!important}.md-indigo-400-bg{background-color:#5c6bc0!important;color:#fff}.indigo-400-fg{color:#5c6bc0!important}.indigo-400-border{border-color:#5c6bc0!important}.indigo-400-border-top{border-top-color:#5c6bc0!important}.indigo-400-border-right{border-right-color:#5c6bc0!important}.indigo-400-border-bottom{border-bottom-color:#5c6bc0!important}.indigo-400-border-left{border-left-color:#5c6bc0!important}.indigo-500-bg{background-color:#3f51b5!important}.md-indigo-500-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-500-fg{color:#3f51b5!important}.indigo-500-border{border-color:#3f51b5!important}.indigo-500-border-top{border-top-color:#3f51b5!important}.indigo-500-border-right{border-right-color:#3f51b5!important}.indigo-500-border-bottom{border-bottom-color:#3f51b5!important}.indigo-500-border-left{border-left-color:#3f51b5!important}.md-indigo-bg{background-color:#3f51b5!important;color:rgba(255,255,255,.87)}.indigo-bg{background-color:#3f51b5!important}.indigo-fg{color:#3f51b5!important}.indigo-border{border-color:#3f51b5!important}.indigo-border-top{border-top-color:#3f51b5!important}.indigo-border-right{border-right-color:#3f51b5!important}.indigo-border-bottom{border-bottom-color:#3f51b5!important}.indigo-border-left{border-left-color:#3f51b5!important}.indigo-600-bg{background-color:#3949ab!important}.md-indigo-600-bg{background-color:#3949ab!important;color:rgba(255,255,255,.87)}.indigo-600-fg{color:#3949ab!important}.indigo-600-border{border-color:#3949ab!important}.indigo-600-border-top{border-top-color:#3949ab!important}.indigo-600-border-right{border-right-color:#3949ab!important}.indigo-600-border-bottom{border-bottom-color:#3949ab!important}.indigo-600-border-left{border-left-color:#3949ab!important}.indigo-700-bg{background-color:#303f9f!important}.md-indigo-700-bg{background-color:#303f9f!important;color:rgba(255,255,255,.87)}.indigo-700-fg{color:#303f9f!important}.indigo-700-border{border-color:#303f9f!important}.indigo-700-border-top{border-top-color:#303f9f!important}.indigo-700-border-right{border-right-color:#303f9f!important}.indigo-700-border-bottom{border-bottom-color:#303f9f!important}.indigo-700-border-left{border-left-color:#303f9f!important}.indigo-800-bg{background-color:#283593!important}.md-indigo-800-bg{background-color:#283593!important;color:rgba(255,255,255,.87)}.indigo-800-fg{color:#283593!important}.indigo-800-border{border-color:#283593!important}.indigo-800-border-top{border-top-color:#283593!important}.indigo-800-border-right{border-right-color:#283593!important}.indigo-800-border-bottom{border-bottom-color:#283593!important}.indigo-800-border-left{border-left-color:#283593!important}.indigo-900-bg{background-color:#1a237e!important}.md-indigo-900-bg{background-color:#1a237e!important;color:rgba(255,255,255,.87)}.indigo-900-fg{color:#1a237e!important}.indigo-900-border{border-color:#1a237e!important}.indigo-900-border-top{border-top-color:#1a237e!important}.indigo-900-border-right{border-right-color:#1a237e!important}.indigo-900-border-bottom{border-bottom-color:#1a237e!important}.indigo-900-border-left{border-left-color:#1a237e!important}.indigo-A100-bg{background-color:#8c9eff!important}.md-indigo-A100-bg{background-color:#8c9eff!important;color:rgba(0,0,0,.87)}.indigo-A100-fg{color:#8c9eff!important}.indigo-A100-border{border-color:#8c9eff!important}.indigo-A100-border-top{border-top-color:#8c9eff!important}.indigo-A100-border-right{border-right-color:#8c9eff!important}.indigo-A100-border-bottom{border-bottom-color:#8c9eff!important}.indigo-A100-border-left{border-left-color:#8c9eff!important}.indigo-A200-bg{background-color:#536dfe!important}.md-indigo-A200-bg{background-color:#536dfe!important;color:#fff}.indigo-A200-fg{color:#536dfe!important}.indigo-A200-border{border-color:#536dfe!important}.indigo-A200-border-top{border-top-color:#536dfe!important}.indigo-A200-border-right{border-right-color:#536dfe!important}.indigo-A200-border-bottom{border-bottom-color:#536dfe!important}.indigo-A200-border-left{border-left-color:#536dfe!important}.indigo-A400-bg{background-color:#3d5afe!important}.md-indigo-A400-bg{background-color:#3d5afe!important;color:#fff}.indigo-A400-fg{color:#3d5afe!important}.indigo-A400-border{border-color:#3d5afe!important}.indigo-A400-border-top{border-top-color:#3d5afe!important}.indigo-A400-border-right{border-right-color:#3d5afe!important}.indigo-A400-border-bottom{border-bottom-color:#3d5afe!important}.indigo-A400-border-left{border-left-color:#3d5afe!important}.indigo-A700-bg{background-color:#304ffe!important}.md-indigo-A700-bg{background-color:#304ffe!important;color:rgba(255,255,255,.87)}.indigo-A700-fg{color:#304ffe!important}.indigo-A700-border{border-color:#304ffe!important}.indigo-A700-border-top{border-top-color:#304ffe!important}.indigo-A700-border-right{border-right-color:#304ffe!important}.indigo-A700-border-bottom{border-bottom-color:#304ffe!important}.indigo-A700-border-left{border-left-color:#304ffe!important}.blue-50-bg{background-color:#e3f2fd!important}.md-blue-50-bg{background-color:#e3f2fd!important;color:rgba(0,0,0,.87)}.blue-50-fg{color:#e3f2fd!important}.blue-50-border{border-color:#e3f2fd!important}.blue-50-border-top{border-top-color:#e3f2fd!important}.blue-50-border-right{border-right-color:#e3f2fd!important}.blue-50-border-bottom{border-bottom-color:#e3f2fd!important}.blue-50-border-left{border-left-color:#e3f2fd!important}.blue-100-bg{background-color:#bbdefb!important}.md-blue-100-bg{background-color:#bbdefb!important;color:rgba(0,0,0,.87)}.blue-100-fg{color:#bbdefb!important}.blue-100-border{border-color:#bbdefb!important}.blue-100-border-top{border-top-color:#bbdefb!important}.blue-100-border-right{border-right-color:#bbdefb!important}.blue-100-border-bottom{border-bottom-color:#bbdefb!important}.blue-100-border-left{border-left-color:#bbdefb!important}.blue-200-bg{background-color:#90caf9!important}.md-blue-200-bg{background-color:#90caf9!important;color:rgba(0,0,0,.87)}.blue-200-fg{color:#90caf9!important}.blue-200-border{border-color:#90caf9!important}.blue-200-border-top{border-top-color:#90caf9!important}.blue-200-border-right{border-right-color:#90caf9!important}.blue-200-border-bottom{border-bottom-color:#90caf9!important}.blue-200-border-left{border-left-color:#90caf9!important}.blue-300-bg{background-color:#64b5f6!important}.md-blue-300-bg{background-color:#64b5f6!important;color:rgba(0,0,0,.87)}.blue-300-fg{color:#64b5f6!important}.blue-300-border{border-color:#64b5f6!important}.blue-300-border-top{border-top-color:#64b5f6!important}.blue-300-border-right{border-right-color:#64b5f6!important}.blue-300-border-bottom{border-bottom-color:#64b5f6!important}.blue-300-border-left{border-left-color:#64b5f6!important}.blue-400-bg{background-color:#42a5f5!important}.md-blue-400-bg{background-color:#42a5f5!important;color:rgba(0,0,0,.87)}.blue-400-fg{color:#42a5f5!important}.blue-400-border{border-color:#42a5f5!important}.blue-400-border-top{border-top-color:#42a5f5!important}.blue-400-border-right{border-right-color:#42a5f5!important}.blue-400-border-bottom{border-bottom-color:#42a5f5!important}.blue-400-border-left{border-left-color:#42a5f5!important}.blue-500-bg{background-color:#2196f3!important}.md-blue-500-bg{background-color:#2196f3!important;color:#fff}.blue-500-fg{color:#2196f3!important}.blue-500-border{border-color:#2196f3!important}.blue-500-border-top{border-top-color:#2196f3!important}.blue-500-border-right{border-right-color:#2196f3!important}.blue-500-border-bottom{border-bottom-color:#2196f3!important}.blue-500-border-left{border-left-color:#2196f3!important}.md-blue-bg{background-color:#2196f3!important;color:#fff}.blue-bg{background-color:#2196f3!important}.blue-fg{color:#2196f3!important}.blue-border{border-color:#2196f3!important}.blue-border-top{border-top-color:#2196f3!important}.blue-border-right{border-right-color:#2196f3!important}.blue-border-bottom{border-bottom-color:#2196f3!important}.blue-border-left{border-left-color:#2196f3!important}.blue-600-bg{background-color:#1e88e5!important}.md-blue-600-bg{background-color:#1e88e5!important;color:#fff}.blue-600-fg{color:#1e88e5!important}.blue-600-border{border-color:#1e88e5!important}.blue-600-border-top{border-top-color:#1e88e5!important}.blue-600-border-right{border-right-color:#1e88e5!important}.blue-600-border-bottom{border-bottom-color:#1e88e5!important}.blue-600-border-left{border-left-color:#1e88e5!important}.blue-700-bg{background-color:#1976d2!important}.md-blue-700-bg{background-color:#1976d2!important;color:#fff}.blue-700-fg{color:#1976d2!important}.blue-700-border{border-color:#1976d2!important}.blue-700-border-top{border-top-color:#1976d2!important}.blue-700-border-right{border-right-color:#1976d2!important}.blue-700-border-bottom{border-bottom-color:#1976d2!important}.blue-700-border-left{border-left-color:#1976d2!important}.blue-800-bg{background-color:#1565c0!important}.md-blue-800-bg{background-color:#1565c0!important;color:rgba(255,255,255,.87)}.blue-800-fg{color:#1565c0!important}.blue-800-border{border-color:#1565c0!important}.blue-800-border-top{border-top-color:#1565c0!important}.blue-800-border-right{border-right-color:#1565c0!important}.blue-800-border-bottom{border-bottom-color:#1565c0!important}.blue-800-border-left{border-left-color:#1565c0!important}.blue-900-bg{background-color:#0d47a1!important}.md-blue-900-bg{background-color:#0d47a1!important;color:rgba(255,255,255,.87)}.blue-900-fg{color:#0d47a1!important}.blue-900-border{border-color:#0d47a1!important}.blue-900-border-top{border-top-color:#0d47a1!important}.blue-900-border-right{border-right-color:#0d47a1!important}.blue-900-border-bottom{border-bottom-color:#0d47a1!important}.blue-900-border-left{border-left-color:#0d47a1!important}.blue-A100-bg{background-color:#82b1ff!important}.md-blue-A100-bg{background-color:#82b1ff!important;color:rgba(0,0,0,.87)}.blue-A100-fg{color:#82b1ff!important}.blue-A100-border{border-color:#82b1ff!important}.blue-A100-border-top{border-top-color:#82b1ff!important}.blue-A100-border-right{border-right-color:#82b1ff!important}.blue-A100-border-bottom{border-bottom-color:#82b1ff!important}.blue-A100-border-left{border-left-color:#82b1ff!important}.blue-A200-bg{background-color:#448aff!important}.md-blue-A200-bg{background-color:#448aff!important;color:#fff}.blue-A200-fg{color:#448aff!important}.blue-A200-border{border-color:#448aff!important}.blue-A200-border-top{border-top-color:#448aff!important}.blue-A200-border-right{border-right-color:#448aff!important}.blue-A200-border-bottom{border-bottom-color:#448aff!important}.blue-A200-border-left{border-left-color:#448aff!important}.blue-A400-bg{background-color:#2979ff!important}.md-blue-A400-bg{background-color:#2979ff!important;color:#fff}.blue-A400-fg{color:#2979ff!important}.blue-A400-border{border-color:#2979ff!important}.blue-A400-border-top{border-top-color:#2979ff!important}.blue-A400-border-right{border-right-color:#2979ff!important}.blue-A400-border-bottom{border-bottom-color:#2979ff!important}.blue-A400-border-left{border-left-color:#2979ff!important}.blue-A700-bg{background-color:#2962ff!important}.md-blue-A700-bg{background-color:#2962ff!important;color:#fff}.blue-A700-fg{color:#2962ff!important}.blue-A700-border{border-color:#2962ff!important}.blue-A700-border-top{border-top-color:#2962ff!important}.blue-A700-border-right{border-right-color:#2962ff!important}.blue-A700-border-bottom{border-bottom-color:#2962ff!important}.blue-A700-border-left{border-left-color:#2962ff!important}.light-blue-50-bg{background-color:#e1f5fe!important}.md-light-blue-50-bg{background-color:#e1f5fe!important;color:rgba(0,0,0,.87)}.light-blue-50-fg{color:#e1f5fe!important}.light-blue-50-border{border-color:#e1f5fe!important}.light-blue-50-border-top{border-top-color:#e1f5fe!important}.light-blue-50-border-right{border-right-color:#e1f5fe!important}.light-blue-50-border-bottom{border-bottom-color:#e1f5fe!important}.light-blue-50-border-left{border-left-color:#e1f5fe!important}.light-blue-100-bg{background-color:#b3e5fc!important}.md-light-blue-100-bg{background-color:#b3e5fc!important;color:rgba(0,0,0,.87)}.light-blue-100-fg{color:#b3e5fc!important}.light-blue-100-border{border-color:#b3e5fc!important}.light-blue-100-border-top{border-top-color:#b3e5fc!important}.light-blue-100-border-right{border-right-color:#b3e5fc!important}.light-blue-100-border-bottom{border-bottom-color:#b3e5fc!important}.light-blue-100-border-left{border-left-color:#b3e5fc!important}.light-blue-200-bg{background-color:#81d4fa!important}.md-light-blue-200-bg{background-color:#81d4fa!important;color:rgba(0,0,0,.87)}.light-blue-200-fg{color:#81d4fa!important}.light-blue-200-border{border-color:#81d4fa!important}.light-blue-200-border-top{border-top-color:#81d4fa!important}.light-blue-200-border-right{border-right-color:#81d4fa!important}.light-blue-200-border-bottom{border-bottom-color:#81d4fa!important}.light-blue-200-border-left{border-left-color:#81d4fa!important}.light-blue-300-bg{background-color:#4fc3f7!important}.md-light-blue-300-bg{background-color:#4fc3f7!important;color:rgba(0,0,0,.87)}.light-blue-300-fg{color:#4fc3f7!important}.light-blue-300-border{border-color:#4fc3f7!important}.light-blue-300-border-top{border-top-color:#4fc3f7!important}.light-blue-300-border-right{border-right-color:#4fc3f7!important}.light-blue-300-border-bottom{border-bottom-color:#4fc3f7!important}.light-blue-300-border-left{border-left-color:#4fc3f7!important}.light-blue-400-bg{background-color:#29b6f6!important}.md-light-blue-400-bg{background-color:#29b6f6!important;color:rgba(0,0,0,.87)}.light-blue-400-fg{color:#29b6f6!important}.light-blue-400-border{border-color:#29b6f6!important}.light-blue-400-border-top{border-top-color:#29b6f6!important}.light-blue-400-border-right{border-right-color:#29b6f6!important}.light-blue-400-border-bottom{border-bottom-color:#29b6f6!important}.light-blue-400-border-left{border-left-color:#29b6f6!important}.light-blue-500-bg{background-color:#03a9f4!important}.md-light-blue-500-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-500-fg{color:#03a9f4!important}.light-blue-500-border{border-color:#03a9f4!important}.light-blue-500-border-top{border-top-color:#03a9f4!important}.light-blue-500-border-right{border-right-color:#03a9f4!important}.light-blue-500-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-500-border-left{border-left-color:#03a9f4!important}.md-light-blue-bg{background-color:#03a9f4!important;color:rgba(0,0,0,.87)}.light-blue-bg{background-color:#03a9f4!important}.light-blue-fg{color:#03a9f4!important}.light-blue-border{border-color:#03a9f4!important}.light-blue-border-top{border-top-color:#03a9f4!important}.light-blue-border-right{border-right-color:#03a9f4!important}.light-blue-border-bottom{border-bottom-color:#03a9f4!important}.light-blue-border-left{border-left-color:#03a9f4!important}.light-blue-600-bg{background-color:#039be5!important}.md-light-blue-600-bg{background-color:#039be5!important;color:#fff}.light-blue-600-fg{color:#039be5!important}.light-blue-600-border{border-color:#039be5!important}.light-blue-600-border-top{border-top-color:#039be5!important}.light-blue-600-border-right{border-right-color:#039be5!important}.light-blue-600-border-bottom{border-bottom-color:#039be5!important}.light-blue-600-border-left{border-left-color:#039be5!important}.light-blue-700-bg{background-color:#0288d1!important}.md-light-blue-700-bg{background-color:#0288d1!important;color:#fff}.light-blue-700-fg{color:#0288d1!important}.light-blue-700-border{border-color:#0288d1!important}.light-blue-700-border-top{border-top-color:#0288d1!important}.light-blue-700-border-right{border-right-color:#0288d1!important}.light-blue-700-border-bottom{border-bottom-color:#0288d1!important}.light-blue-700-border-left{border-left-color:#0288d1!important}.light-blue-800-bg{background-color:#0277bd!important}.md-light-blue-800-bg{background-color:#0277bd!important;color:#fff}.light-blue-800-fg{color:#0277bd!important}.light-blue-800-border{border-color:#0277bd!important}.light-blue-800-border-top{border-top-color:#0277bd!important}.light-blue-800-border-right{border-right-color:#0277bd!important}.light-blue-800-border-bottom{border-bottom-color:#0277bd!important}.light-blue-800-border-left{border-left-color:#0277bd!important}.light-blue-900-bg{background-color:#01579b!important}.md-light-blue-900-bg{background-color:#01579b!important;color:#fff}.light-blue-900-fg{color:#01579b!important}.light-blue-900-border{border-color:#01579b!important}.light-blue-900-border-top{border-top-color:#01579b!important}.light-blue-900-border-right{border-right-color:#01579b!important}.light-blue-900-border-bottom{border-bottom-color:#01579b!important}.light-blue-900-border-left{border-left-color:#01579b!important}.light-blue-A100-bg{background-color:#80d8ff!important}.md-light-blue-A100-bg{background-color:#80d8ff!important;color:rgba(0,0,0,.87)}.light-blue-A100-fg{color:#80d8ff!important}.light-blue-A100-border{border-color:#80d8ff!important}.light-blue-A100-border-top{border-top-color:#80d8ff!important}.light-blue-A100-border-right{border-right-color:#80d8ff!important}.light-blue-A100-border-bottom{border-bottom-color:#80d8ff!important}.light-blue-A100-border-left{border-left-color:#80d8ff!important}.light-blue-A200-bg{background-color:#40c4ff!important}.md-light-blue-A200-bg{background-color:#40c4ff!important;color:rgba(0,0,0,.87)}.light-blue-A200-fg{color:#40c4ff!important}.light-blue-A200-border{border-color:#40c4ff!important}.light-blue-A200-border-top{border-top-color:#40c4ff!important}.light-blue-A200-border-right{border-right-color:#40c4ff!important}.light-blue-A200-border-bottom{border-bottom-color:#40c4ff!important}.light-blue-A200-border-left{border-left-color:#40c4ff!important}.light-blue-A400-bg{background-color:#00b0ff!important}.md-light-blue-A400-bg{background-color:#00b0ff!important;color:rgba(0,0,0,.87)}.light-blue-A400-fg{color:#00b0ff!important}.light-blue-A400-border{border-color:#00b0ff!important}.light-blue-A400-border-top{border-top-color:#00b0ff!important}.light-blue-A400-border-right{border-right-color:#00b0ff!important}.light-blue-A400-border-bottom{border-bottom-color:#00b0ff!important}.light-blue-A400-border-left{border-left-color:#00b0ff!important}.light-blue-A700-bg{background-color:#0091ea!important}.md-light-blue-A700-bg{background-color:#0091ea!important;color:#fff}.light-blue-A700-fg{color:#0091ea!important}.light-blue-A700-border{border-color:#0091ea!important}.light-blue-A700-border-top{border-top-color:#0091ea!important}.light-blue-A700-border-right{border-right-color:#0091ea!important}.light-blue-A700-border-bottom{border-bottom-color:#0091ea!important}.light-blue-A700-border-left{border-left-color:#0091ea!important}.cyan-50-bg{background-color:#e0f7fa!important}.md-cyan-50-bg{background-color:#e0f7fa!important;color:rgba(0,0,0,.87)}.cyan-50-fg{color:#e0f7fa!important}.cyan-50-border{border-color:#e0f7fa!important}.cyan-50-border-top{border-top-color:#e0f7fa!important}.cyan-50-border-right{border-right-color:#e0f7fa!important}.cyan-50-border-bottom{border-bottom-color:#e0f7fa!important}.cyan-50-border-left{border-left-color:#e0f7fa!important}.cyan-100-bg{background-color:#b2ebf2!important}.md-cyan-100-bg{background-color:#b2ebf2!important;color:rgba(0,0,0,.87)}.cyan-100-fg{color:#b2ebf2!important}.cyan-100-border{border-color:#b2ebf2!important}.cyan-100-border-top{border-top-color:#b2ebf2!important}.cyan-100-border-right{border-right-color:#b2ebf2!important}.cyan-100-border-bottom{border-bottom-color:#b2ebf2!important}.cyan-100-border-left{border-left-color:#b2ebf2!important}.cyan-200-bg{background-color:#80deea!important}.md-cyan-200-bg{background-color:#80deea!important;color:rgba(0,0,0,.87)}.cyan-200-fg{color:#80deea!important}.cyan-200-border{border-color:#80deea!important}.cyan-200-border-top{border-top-color:#80deea!important}.cyan-200-border-right{border-right-color:#80deea!important}.cyan-200-border-bottom{border-bottom-color:#80deea!important}.cyan-200-border-left{border-left-color:#80deea!important}.cyan-300-bg{background-color:#4dd0e1!important}.md-cyan-300-bg{background-color:#4dd0e1!important;color:rgba(0,0,0,.87)}.cyan-300-fg{color:#4dd0e1!important}.cyan-300-border{border-color:#4dd0e1!important}.cyan-300-border-top{border-top-color:#4dd0e1!important}.cyan-300-border-right{border-right-color:#4dd0e1!important}.cyan-300-border-bottom{border-bottom-color:#4dd0e1!important}.cyan-300-border-left{border-left-color:#4dd0e1!important}.cyan-400-bg{background-color:#26c6da!important}.md-cyan-400-bg{background-color:#26c6da!important;color:rgba(0,0,0,.87)}.cyan-400-fg{color:#26c6da!important}.cyan-400-border{border-color:#26c6da!important}.cyan-400-border-top{border-top-color:#26c6da!important}.cyan-400-border-right{border-right-color:#26c6da!important}.cyan-400-border-bottom{border-bottom-color:#26c6da!important}.cyan-400-border-left{border-left-color:#26c6da!important}.cyan-500-bg{background-color:#00bcd4!important}.md-cyan-500-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-500-fg{color:#00bcd4!important}.cyan-500-border{border-color:#00bcd4!important}.cyan-500-border-top{border-top-color:#00bcd4!important}.cyan-500-border-right{border-right-color:#00bcd4!important}.cyan-500-border-bottom{border-bottom-color:#00bcd4!important}.cyan-500-border-left{border-left-color:#00bcd4!important}.md-cyan-bg{background-color:#00bcd4!important;color:rgba(0,0,0,.87)}.cyan-bg{background-color:#00bcd4!important}.cyan-fg{color:#00bcd4!important}.cyan-border{border-color:#00bcd4!important}.cyan-border-top{border-top-color:#00bcd4!important}.cyan-border-right{border-right-color:#00bcd4!important}.cyan-border-bottom{border-bottom-color:#00bcd4!important}.cyan-border-left{border-left-color:#00bcd4!important}.cyan-600-bg{background-color:#00acc1!important}.md-cyan-600-bg{background-color:#00acc1!important;color:rgba(0,0,0,.87)}.cyan-600-fg{color:#00acc1!important}.cyan-600-border{border-color:#00acc1!important}.cyan-600-border-top{border-top-color:#00acc1!important}.cyan-600-border-right{border-right-color:#00acc1!important}.cyan-600-border-bottom{border-bottom-color:#00acc1!important}.cyan-600-border-left{border-left-color:#00acc1!important}.cyan-700-bg{background-color:#0097a7!important}.md-cyan-700-bg{background-color:#0097a7!important;color:#fff}.cyan-700-fg{color:#0097a7!important}.cyan-700-border{border-color:#0097a7!important}.cyan-700-border-top{border-top-color:#0097a7!important}.cyan-700-border-right{border-right-color:#0097a7!important}.cyan-700-border-bottom{border-bottom-color:#0097a7!important}.cyan-700-border-left{border-left-color:#0097a7!important}.cyan-800-bg{background-color:#00838f!important}.md-cyan-800-bg{background-color:#00838f!important;color:#fff}.cyan-800-fg{color:#00838f!important}.cyan-800-border{border-color:#00838f!important}.cyan-800-border-top{border-top-color:#00838f!important}.cyan-800-border-right{border-right-color:#00838f!important}.cyan-800-border-bottom{border-bottom-color:#00838f!important}.cyan-800-border-left{border-left-color:#00838f!important}.cyan-900-bg{background-color:#006064!important}.md-cyan-900-bg{background-color:#006064!important;color:#fff}.cyan-900-fg{color:#006064!important}.cyan-900-border{border-color:#006064!important}.cyan-900-border-top{border-top-color:#006064!important}.cyan-900-border-right{border-right-color:#006064!important}.cyan-900-border-bottom{border-bottom-color:#006064!important}.cyan-900-border-left{border-left-color:#006064!important}.cyan-A100-bg{background-color:#84ffff!important}.md-cyan-A100-bg{background-color:#84ffff!important;color:rgba(0,0,0,.87)}.cyan-A100-fg{color:#84ffff!important}.cyan-A100-border{border-color:#84ffff!important}.cyan-A100-border-top{border-top-color:#84ffff!important}.cyan-A100-border-right{border-right-color:#84ffff!important}.cyan-A100-border-bottom{border-bottom-color:#84ffff!important}.cyan-A100-border-left{border-left-color:#84ffff!important}.cyan-A200-bg{background-color:#18ffff!important}.md-cyan-A200-bg{background-color:#18ffff!important;color:rgba(0,0,0,.87)}.cyan-A200-fg{color:#18ffff!important}.cyan-A200-border{border-color:#18ffff!important}.cyan-A200-border-top{border-top-color:#18ffff!important}.cyan-A200-border-right{border-right-color:#18ffff!important}.cyan-A200-border-bottom{border-bottom-color:#18ffff!important}.cyan-A200-border-left{border-left-color:#18ffff!important}.cyan-A400-bg{background-color:#00e5ff!important}.md-cyan-A400-bg{background-color:#00e5ff!important;color:rgba(0,0,0,.87)}.cyan-A400-fg{color:#00e5ff!important}.cyan-A400-border{border-color:#00e5ff!important}.cyan-A400-border-top{border-top-color:#00e5ff!important}.cyan-A400-border-right{border-right-color:#00e5ff!important}.cyan-A400-border-bottom{border-bottom-color:#00e5ff!important}.cyan-A400-border-left{border-left-color:#00e5ff!important}.cyan-A700-bg{background-color:#00b8d4!important}.md-cyan-A700-bg{background-color:#00b8d4!important;color:rgba(0,0,0,.87)}.cyan-A700-fg{color:#00b8d4!important}.cyan-A700-border{border-color:#00b8d4!important}.cyan-A700-border-top{border-top-color:#00b8d4!important}.cyan-A700-border-right{border-right-color:#00b8d4!important}.cyan-A700-border-bottom{border-bottom-color:#00b8d4!important}.cyan-A700-border-left{border-left-color:#00b8d4!important}.teal-50-bg{background-color:#e0f2f1!important}.md-teal-50-bg{background-color:#e0f2f1!important;color:rgba(0,0,0,.87)}.teal-50-fg{color:#e0f2f1!important}.teal-50-border{border-color:#e0f2f1!important}.teal-50-border-top{border-top-color:#e0f2f1!important}.teal-50-border-right{border-right-color:#e0f2f1!important}.teal-50-border-bottom{border-bottom-color:#e0f2f1!important}.teal-50-border-left{border-left-color:#e0f2f1!important}.teal-100-bg{background-color:#b2dfdb!important}.md-teal-100-bg{background-color:#b2dfdb!important;color:rgba(0,0,0,.87)}.teal-100-fg{color:#b2dfdb!important}.teal-100-border{border-color:#b2dfdb!important}.teal-100-border-top{border-top-color:#b2dfdb!important}.teal-100-border-right{border-right-color:#b2dfdb!important}.teal-100-border-bottom{border-bottom-color:#b2dfdb!important}.teal-100-border-left{border-left-color:#b2dfdb!important}.teal-200-bg{background-color:#80cbc4!important}.md-teal-200-bg{background-color:#80cbc4!important;color:rgba(0,0,0,.87)}.teal-200-fg{color:#80cbc4!important}.teal-200-border{border-color:#80cbc4!important}.teal-200-border-top{border-top-color:#80cbc4!important}.teal-200-border-right{border-right-color:#80cbc4!important}.teal-200-border-bottom{border-bottom-color:#80cbc4!important}.teal-200-border-left{border-left-color:#80cbc4!important}.teal-300-bg{background-color:#4db6ac!important}.md-teal-300-bg{background-color:#4db6ac!important;color:rgba(0,0,0,.87)}.teal-300-fg{color:#4db6ac!important}.teal-300-border{border-color:#4db6ac!important}.teal-300-border-top{border-top-color:#4db6ac!important}.teal-300-border-right{border-right-color:#4db6ac!important}.teal-300-border-bottom{border-bottom-color:#4db6ac!important}.teal-300-border-left{border-left-color:#4db6ac!important}.teal-400-bg{background-color:#26a69a!important}.md-teal-400-bg{background-color:#26a69a!important;color:rgba(0,0,0,.87)}.teal-400-fg{color:#26a69a!important}.teal-400-border{border-color:#26a69a!important}.teal-400-border-top{border-top-color:#26a69a!important}.teal-400-border-right{border-right-color:#26a69a!important}.teal-400-border-bottom{border-bottom-color:#26a69a!important}.teal-400-border-left{border-left-color:#26a69a!important}.teal-500-bg{background-color:#009688!important}.md-teal-500-bg{background-color:#009688!important;color:#fff}.teal-500-fg{color:#009688!important}.teal-500-border{border-color:#009688!important}.teal-500-border-top{border-top-color:#009688!important}.teal-500-border-right{border-right-color:#009688!important}.teal-500-border-bottom{border-bottom-color:#009688!important}.teal-500-border-left{border-left-color:#009688!important}.md-teal-bg{background-color:#009688!important;color:#fff}.teal-bg{background-color:#009688!important}.teal-fg{color:#009688!important}.teal-border{border-color:#009688!important}.teal-border-top{border-top-color:#009688!important}.teal-border-right{border-right-color:#009688!important}.teal-border-bottom{border-bottom-color:#009688!important}.teal-border-left{border-left-color:#009688!important}.teal-600-bg{background-color:#00897b!important}.md-teal-600-bg{background-color:#00897b!important;color:#fff}.teal-600-fg{color:#00897b!important}.teal-600-border{border-color:#00897b!important}.teal-600-border-top{border-top-color:#00897b!important}.teal-600-border-right{border-right-color:#00897b!important}.teal-600-border-bottom{border-bottom-color:#00897b!important}.teal-600-border-left{border-left-color:#00897b!important}.teal-700-bg{background-color:#00796b!important}.md-teal-700-bg{background-color:#00796b!important;color:#fff}.teal-700-fg{color:#00796b!important}.teal-700-border{border-color:#00796b!important}.teal-700-border-top{border-top-color:#00796b!important}.teal-700-border-right{border-right-color:#00796b!important}.teal-700-border-bottom{border-bottom-color:#00796b!important}.teal-700-border-left{border-left-color:#00796b!important}.teal-800-bg{background-color:#00695c!important}.md-teal-800-bg{background-color:#00695c!important;color:rgba(255,255,255,.87)}.teal-800-fg{color:#00695c!important}.teal-800-border{border-color:#00695c!important}.teal-800-border-top{border-top-color:#00695c!important}.teal-800-border-right{border-right-color:#00695c!important}.teal-800-border-bottom{border-bottom-color:#00695c!important}.teal-800-border-left{border-left-color:#00695c!important}.teal-900-bg{background-color:#004d40!important}.md-teal-900-bg{background-color:#004d40!important;color:rgba(255,255,255,.87)}.teal-900-fg{color:#004d40!important}.teal-900-border{border-color:#004d40!important}.teal-900-border-top{border-top-color:#004d40!important}.teal-900-border-right{border-right-color:#004d40!important}.teal-900-border-bottom{border-bottom-color:#004d40!important}.teal-900-border-left{border-left-color:#004d40!important}.teal-A100-bg{background-color:#a7ffeb!important}.md-teal-A100-bg{background-color:#a7ffeb!important;color:rgba(0,0,0,.87)}.teal-A100-fg{color:#a7ffeb!important}.teal-A100-border{border-color:#a7ffeb!important}.teal-A100-border-top{border-top-color:#a7ffeb!important}.teal-A100-border-right{border-right-color:#a7ffeb!important}.teal-A100-border-bottom{border-bottom-color:#a7ffeb!important}.teal-A100-border-left{border-left-color:#a7ffeb!important}.teal-A200-bg{background-color:#64ffda!important}.md-teal-A200-bg{background-color:#64ffda!important;color:rgba(0,0,0,.87)}.teal-A200-fg{color:#64ffda!important}.teal-A200-border{border-color:#64ffda!important}.teal-A200-border-top{border-top-color:#64ffda!important}.teal-A200-border-right{border-right-color:#64ffda!important}.teal-A200-border-bottom{border-bottom-color:#64ffda!important}.teal-A200-border-left{border-left-color:#64ffda!important}.teal-A400-bg{background-color:#1de9b6!important}.md-teal-A400-bg{background-color:#1de9b6!important;color:rgba(0,0,0,.87)}.teal-A400-fg{color:#1de9b6!important}.teal-A400-border{border-color:#1de9b6!important}.teal-A400-border-top{border-top-color:#1de9b6!important}.teal-A400-border-right{border-right-color:#1de9b6!important}.teal-A400-border-bottom{border-bottom-color:#1de9b6!important}.teal-A400-border-left{border-left-color:#1de9b6!important}.teal-A700-bg{background-color:#00bfa5!important}.md-teal-A700-bg{background-color:#00bfa5!important;color:rgba(0,0,0,.87)}.teal-A700-fg{color:#00bfa5!important}.teal-A700-border{border-color:#00bfa5!important}.teal-A700-border-top{border-top-color:#00bfa5!important}.teal-A700-border-right{border-right-color:#00bfa5!important}.teal-A700-border-bottom{border-bottom-color:#00bfa5!important}.teal-A700-border-left{border-left-color:#00bfa5!important}.green-50-bg{background-color:#e8f5e9!important}.md-green-50-bg{background-color:#e8f5e9!important;color:rgba(0,0,0,.87)}.green-50-fg{color:#e8f5e9!important}.green-50-border{border-color:#e8f5e9!important}.green-50-border-top{border-top-color:#e8f5e9!important}.green-50-border-right{border-right-color:#e8f5e9!important}.green-50-border-bottom{border-bottom-color:#e8f5e9!important}.green-50-border-left{border-left-color:#e8f5e9!important}.green-100-bg{background-color:#c8e6c9!important}.md-green-100-bg{background-color:#c8e6c9!important;color:rgba(0,0,0,.87)}.green-100-fg{color:#c8e6c9!important}.green-100-border{border-color:#c8e6c9!important}.green-100-border-top{border-top-color:#c8e6c9!important}.green-100-border-right{border-right-color:#c8e6c9!important}.green-100-border-bottom{border-bottom-color:#c8e6c9!important}.green-100-border-left{border-left-color:#c8e6c9!important}.green-200-bg{background-color:#a5d6a7!important}.md-green-200-bg{background-color:#a5d6a7!important;color:rgba(0,0,0,.87)}.green-200-fg{color:#a5d6a7!important}.green-200-border{border-color:#a5d6a7!important}.green-200-border-top{border-top-color:#a5d6a7!important}.green-200-border-right{border-right-color:#a5d6a7!important}.green-200-border-bottom{border-bottom-color:#a5d6a7!important}.green-200-border-left{border-left-color:#a5d6a7!important}.green-300-bg{background-color:#81c784!important}.md-green-300-bg{background-color:#81c784!important;color:rgba(0,0,0,.87)}.green-300-fg{color:#81c784!important}.green-300-border{border-color:#81c784!important}.green-300-border-top{border-top-color:#81c784!important}.green-300-border-right{border-right-color:#81c784!important}.green-300-border-bottom{border-bottom-color:#81c784!important}.green-300-border-left{border-left-color:#81c784!important}.green-400-bg{background-color:#66bb6a!important}.md-green-400-bg{background-color:#66bb6a!important;color:rgba(0,0,0,.87)}.green-400-fg{color:#66bb6a!important}.green-400-border{border-color:#66bb6a!important}.green-400-border-top{border-top-color:#66bb6a!important}.green-400-border-right{border-right-color:#66bb6a!important}.green-400-border-bottom{border-bottom-color:#66bb6a!important}.green-400-border-left{border-left-color:#66bb6a!important}.green-500-bg{background-color:#4caf50!important}.md-green-500-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-500-fg{color:#4caf50!important}.green-500-border{border-color:#4caf50!important}.green-500-border-top{border-top-color:#4caf50!important}.green-500-border-right{border-right-color:#4caf50!important}.green-500-border-bottom{border-bottom-color:#4caf50!important}.green-500-border-left{border-left-color:#4caf50!important}.md-green-bg{background-color:#4caf50!important;color:rgba(0,0,0,.87)}.green-bg{background-color:#4caf50!important}.green-fg{color:#4caf50!important}.green-border{border-color:#4caf50!important}.green-border-top{border-top-color:#4caf50!important}.green-border-right{border-right-color:#4caf50!important}.green-border-bottom{border-bottom-color:#4caf50!important}.green-border-left{border-left-color:#4caf50!important}.green-600-bg{background-color:#43a047!important}.md-green-600-bg{background-color:#43a047!important;color:#fff}.green-600-fg{color:#43a047!important}.green-600-border{border-color:#43a047!important}.green-600-border-top{border-top-color:#43a047!important}.green-600-border-right{border-right-color:#43a047!important}.green-600-border-bottom{border-bottom-color:#43a047!important}.green-600-border-left{border-left-color:#43a047!important}.green-700-bg{background-color:#388e3c!important}.md-green-700-bg{background-color:#388e3c!important;color:#fff}.green-700-fg{color:#388e3c!important}.green-700-border{border-color:#388e3c!important}.green-700-border-top{border-top-color:#388e3c!important}.green-700-border-right{border-right-color:#388e3c!important}.green-700-border-bottom{border-bottom-color:#388e3c!important}.green-700-border-left{border-left-color:#388e3c!important}.green-800-bg{background-color:#2e7d32!important}.md-green-800-bg{background-color:#2e7d32!important;color:rgba(255,255,255,.87)}.green-800-fg{color:#2e7d32!important}.green-800-border{border-color:#2e7d32!important}.green-800-border-top{border-top-color:#2e7d32!important}.green-800-border-right{border-right-color:#2e7d32!important}.green-800-border-bottom{border-bottom-color:#2e7d32!important}.green-800-border-left{border-left-color:#2e7d32!important}.green-900-bg{background-color:#1b5e20!important}.md-green-900-bg{background-color:#1b5e20!important;color:rgba(255,255,255,.87)}.green-900-fg{color:#1b5e20!important}.green-900-border{border-color:#1b5e20!important}.green-900-border-top{border-top-color:#1b5e20!important}.green-900-border-right{border-right-color:#1b5e20!important}.green-900-border-bottom{border-bottom-color:#1b5e20!important}.green-900-border-left{border-left-color:#1b5e20!important}.green-A100-bg{background-color:#b9f6ca!important}.md-green-A100-bg{background-color:#b9f6ca!important;color:rgba(0,0,0,.87)}.green-A100-fg{color:#b9f6ca!important}.green-A100-border{border-color:#b9f6ca!important}.green-A100-border-top{border-top-color:#b9f6ca!important}.green-A100-border-right{border-right-color:#b9f6ca!important}.green-A100-border-bottom{border-bottom-color:#b9f6ca!important}.green-A100-border-left{border-left-color:#b9f6ca!important}.green-A200-bg{background-color:#69f0ae!important}.md-green-A200-bg{background-color:#69f0ae!important;color:rgba(0,0,0,.87)}.green-A200-fg{color:#69f0ae!important}.green-A200-border{border-color:#69f0ae!important}.green-A200-border-top{border-top-color:#69f0ae!important}.green-A200-border-right{border-right-color:#69f0ae!important}.green-A200-border-bottom{border-bottom-color:#69f0ae!important}.green-A200-border-left{border-left-color:#69f0ae!important}.green-A400-bg{background-color:#00e676!important}.md-green-A400-bg{background-color:#00e676!important;color:rgba(0,0,0,.87)}.green-A400-fg{color:#00e676!important}.green-A400-border{border-color:#00e676!important}.green-A400-border-top{border-top-color:#00e676!important}.green-A400-border-right{border-right-color:#00e676!important}.green-A400-border-bottom{border-bottom-color:#00e676!important}.green-A400-border-left{border-left-color:#00e676!important}.green-A700-bg{background-color:#00c853!important}.md-green-A700-bg{background-color:#00c853!important;color:rgba(0,0,0,.87)}.green-A700-fg{color:#00c853!important}.green-A700-border{border-color:#00c853!important}.green-A700-border-top{border-top-color:#00c853!important}.green-A700-border-right{border-right-color:#00c853!important}.green-A700-border-bottom{border-bottom-color:#00c853!important}.green-A700-border-left{border-left-color:#00c853!important}.light-green-50-bg{background-color:#f1f8e9!important}.md-light-green-50-bg{background-color:#f1f8e9!important;color:rgba(0,0,0,.87)}.light-green-50-fg{color:#f1f8e9!important}.light-green-50-border{border-color:#f1f8e9!important}.light-green-50-border-top{border-top-color:#f1f8e9!important}.light-green-50-border-right{border-right-color:#f1f8e9!important}.light-green-50-border-bottom{border-bottom-color:#f1f8e9!important}.light-green-50-border-left{border-left-color:#f1f8e9!important}.light-green-100-bg{background-color:#dcedc8!important}.md-light-green-100-bg{background-color:#dcedc8!important;color:rgba(0,0,0,.87)}.light-green-100-fg{color:#dcedc8!important}.light-green-100-border{border-color:#dcedc8!important}.light-green-100-border-top{border-top-color:#dcedc8!important}.light-green-100-border-right{border-right-color:#dcedc8!important}.light-green-100-border-bottom{border-bottom-color:#dcedc8!important}.light-green-100-border-left{border-left-color:#dcedc8!important}.light-green-200-bg{background-color:#c5e1a5!important}.md-light-green-200-bg{background-color:#c5e1a5!important;color:rgba(0,0,0,.87)}.light-green-200-fg{color:#c5e1a5!important}.light-green-200-border{border-color:#c5e1a5!important}.light-green-200-border-top{border-top-color:#c5e1a5!important}.light-green-200-border-right{border-right-color:#c5e1a5!important}.light-green-200-border-bottom{border-bottom-color:#c5e1a5!important}.light-green-200-border-left{border-left-color:#c5e1a5!important}.light-green-300-bg{background-color:#aed581!important}.md-light-green-300-bg{background-color:#aed581!important;color:rgba(0,0,0,.87)}.light-green-300-fg{color:#aed581!important}.light-green-300-border{border-color:#aed581!important}.light-green-300-border-top{border-top-color:#aed581!important}.light-green-300-border-right{border-right-color:#aed581!important}.light-green-300-border-bottom{border-bottom-color:#aed581!important}.light-green-300-border-left{border-left-color:#aed581!important}.light-green-400-bg{background-color:#9ccc65!important}.md-light-green-400-bg{background-color:#9ccc65!important;color:rgba(0,0,0,.87)}.light-green-400-fg{color:#9ccc65!important}.light-green-400-border{border-color:#9ccc65!important}.light-green-400-border-top{border-top-color:#9ccc65!important}.light-green-400-border-right{border-right-color:#9ccc65!important}.light-green-400-border-bottom{border-bottom-color:#9ccc65!important}.light-green-400-border-left{border-left-color:#9ccc65!important}.light-green-500-bg{background-color:#8bc34a!important}.md-light-green-500-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-500-fg{color:#8bc34a!important}.light-green-500-border{border-color:#8bc34a!important}.light-green-500-border-top{border-top-color:#8bc34a!important}.light-green-500-border-right{border-right-color:#8bc34a!important}.light-green-500-border-bottom{border-bottom-color:#8bc34a!important}.light-green-500-border-left{border-left-color:#8bc34a!important}.md-light-green-bg{background-color:#8bc34a!important;color:rgba(0,0,0,.87)}.light-green-bg{background-color:#8bc34a!important}.light-green-fg{color:#8bc34a!important}.light-green-border{border-color:#8bc34a!important}.light-green-border-top{border-top-color:#8bc34a!important}.light-green-border-right{border-right-color:#8bc34a!important}.light-green-border-bottom{border-bottom-color:#8bc34a!important}.light-green-border-left{border-left-color:#8bc34a!important}.light-green-600-bg{background-color:#7cb342!important}.md-light-green-600-bg{background-color:#7cb342!important;color:rgba(0,0,0,.87)}.light-green-600-fg{color:#7cb342!important}.light-green-600-border{border-color:#7cb342!important}.light-green-600-border-top{border-top-color:#7cb342!important}.light-green-600-border-right{border-right-color:#7cb342!important}.light-green-600-border-bottom{border-bottom-color:#7cb342!important}.light-green-600-border-left{border-left-color:#7cb342!important}.light-green-700-bg{background-color:#689f38!important}.md-light-green-700-bg{background-color:#689f38!important;color:#fff}.light-green-700-fg{color:#689f38!important}.light-green-700-border{border-color:#689f38!important}.light-green-700-border-top{border-top-color:#689f38!important}.light-green-700-border-right{border-right-color:#689f38!important}.light-green-700-border-bottom{border-bottom-color:#689f38!important}.light-green-700-border-left{border-left-color:#689f38!important}.light-green-800-bg{background-color:#558b2f!important}.md-light-green-800-bg{background-color:#558b2f!important;color:#fff}.light-green-800-fg{color:#558b2f!important}.light-green-800-border{border-color:#558b2f!important}.light-green-800-border-top{border-top-color:#558b2f!important}.light-green-800-border-right{border-right-color:#558b2f!important}.light-green-800-border-bottom{border-bottom-color:#558b2f!important}.light-green-800-border-left{border-left-color:#558b2f!important}.light-green-900-bg{background-color:#33691e!important}.md-light-green-900-bg{background-color:#33691e!important;color:#fff}.light-green-900-fg{color:#33691e!important}.light-green-900-border{border-color:#33691e!important}.light-green-900-border-top{border-top-color:#33691e!important}.light-green-900-border-right{border-right-color:#33691e!important}.light-green-900-border-bottom{border-bottom-color:#33691e!important}.light-green-900-border-left{border-left-color:#33691e!important}.light-green-A100-bg{background-color:#ccff90!important}.md-light-green-A100-bg{background-color:#ccff90!important;color:rgba(0,0,0,.87)}.light-green-A100-fg{color:#ccff90!important}.light-green-A100-border{border-color:#ccff90!important}.light-green-A100-border-top{border-top-color:#ccff90!important}.light-green-A100-border-right{border-right-color:#ccff90!important}.light-green-A100-border-bottom{border-bottom-color:#ccff90!important}.light-green-A100-border-left{border-left-color:#ccff90!important}.light-green-A200-bg{background-color:#b2ff59!important}.md-light-green-A200-bg{background-color:#b2ff59!important;color:rgba(0,0,0,.87)}.light-green-A200-fg{color:#b2ff59!important}.light-green-A200-border{border-color:#b2ff59!important}.light-green-A200-border-top{border-top-color:#b2ff59!important}.light-green-A200-border-right{border-right-color:#b2ff59!important}.light-green-A200-border-bottom{border-bottom-color:#b2ff59!important}.light-green-A200-border-left{border-left-color:#b2ff59!important}.light-green-A400-bg{background-color:#76ff03!important}.md-light-green-A400-bg{background-color:#76ff03!important;color:rgba(0,0,0,.87)}.light-green-A400-fg{color:#76ff03!important}.light-green-A400-border{border-color:#76ff03!important}.light-green-A400-border-top{border-top-color:#76ff03!important}.light-green-A400-border-right{border-right-color:#76ff03!important}.light-green-A400-border-bottom{border-bottom-color:#76ff03!important}.light-green-A400-border-left{border-left-color:#76ff03!important}.light-green-A700-bg{background-color:#64dd17!important}.md-light-green-A700-bg{background-color:#64dd17!important;color:rgba(0,0,0,.87)}.light-green-A700-fg{color:#64dd17!important}.light-green-A700-border{border-color:#64dd17!important}.light-green-A700-border-top{border-top-color:#64dd17!important}.light-green-A700-border-right{border-right-color:#64dd17!important}.light-green-A700-border-bottom{border-bottom-color:#64dd17!important}.light-green-A700-border-left{border-left-color:#64dd17!important}.lime-50-bg{background-color:#f9fbe7!important}.md-lime-50-bg{background-color:#f9fbe7!important;color:rgba(0,0,0,.87)}.lime-50-fg{color:#f9fbe7!important}.lime-50-border{border-color:#f9fbe7!important}.lime-50-border-top{border-top-color:#f9fbe7!important}.lime-50-border-right{border-right-color:#f9fbe7!important}.lime-50-border-bottom{border-bottom-color:#f9fbe7!important}.lime-50-border-left{border-left-color:#f9fbe7!important}.lime-100-bg{background-color:#f0f4c3!important}.md-lime-100-bg{background-color:#f0f4c3!important;color:rgba(0,0,0,.87)}.lime-100-fg{color:#f0f4c3!important}.lime-100-border{border-color:#f0f4c3!important}.lime-100-border-top{border-top-color:#f0f4c3!important}.lime-100-border-right{border-right-color:#f0f4c3!important}.lime-100-border-bottom{border-bottom-color:#f0f4c3!important}.lime-100-border-left{border-left-color:#f0f4c3!important}.lime-200-bg{background-color:#e6ee9c!important}.md-lime-200-bg{background-color:#e6ee9c!important;color:rgba(0,0,0,.87)}.lime-200-fg{color:#e6ee9c!important}.lime-200-border{border-color:#e6ee9c!important}.lime-200-border-top{border-top-color:#e6ee9c!important}.lime-200-border-right{border-right-color:#e6ee9c!important}.lime-200-border-bottom{border-bottom-color:#e6ee9c!important}.lime-200-border-left{border-left-color:#e6ee9c!important}.lime-300-bg{background-color:#dce775!important}.md-lime-300-bg{background-color:#dce775!important;color:rgba(0,0,0,.87)}.lime-300-fg{color:#dce775!important}.lime-300-border{border-color:#dce775!important}.lime-300-border-top{border-top-color:#dce775!important}.lime-300-border-right{border-right-color:#dce775!important}.lime-300-border-bottom{border-bottom-color:#dce775!important}.lime-300-border-left{border-left-color:#dce775!important}.lime-400-bg{background-color:#d4e157!important}.md-lime-400-bg{background-color:#d4e157!important;color:rgba(0,0,0,.87)}.lime-400-fg{color:#d4e157!important}.lime-400-border{border-color:#d4e157!important}.lime-400-border-top{border-top-color:#d4e157!important}.lime-400-border-right{border-right-color:#d4e157!important}.lime-400-border-bottom{border-bottom-color:#d4e157!important}.lime-400-border-left{border-left-color:#d4e157!important}.lime-500-bg{background-color:#cddc39!important}.md-lime-500-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-500-fg{color:#cddc39!important}.lime-500-border{border-color:#cddc39!important}.lime-500-border-top{border-top-color:#cddc39!important}.lime-500-border-right{border-right-color:#cddc39!important}.lime-500-border-bottom{border-bottom-color:#cddc39!important}.lime-500-border-left{border-left-color:#cddc39!important}.md-lime-bg{background-color:#cddc39!important;color:rgba(0,0,0,.87)}.lime-bg{background-color:#cddc39!important}.lime-fg{color:#cddc39!important}.lime-border{border-color:#cddc39!important}.lime-border-top{border-top-color:#cddc39!important}.lime-border-right{border-right-color:#cddc39!important}.lime-border-bottom{border-bottom-color:#cddc39!important}.lime-border-left{border-left-color:#cddc39!important}.lime-600-bg{background-color:#c0ca33!important}.md-lime-600-bg{background-color:#c0ca33!important;color:rgba(0,0,0,.87)}.lime-600-fg{color:#c0ca33!important}.lime-600-border{border-color:#c0ca33!important}.lime-600-border-top{border-top-color:#c0ca33!important}.lime-600-border-right{border-right-color:#c0ca33!important}.lime-600-border-bottom{border-bottom-color:#c0ca33!important}.lime-600-border-left{border-left-color:#c0ca33!important}.lime-700-bg{background-color:#afb42b!important}.md-lime-700-bg{background-color:#afb42b!important;color:rgba(0,0,0,.87)}.lime-700-fg{color:#afb42b!important}.lime-700-border{border-color:#afb42b!important}.lime-700-border-top{border-top-color:#afb42b!important}.lime-700-border-right{border-right-color:#afb42b!important}.lime-700-border-bottom{border-bottom-color:#afb42b!important}.lime-700-border-left{border-left-color:#afb42b!important}.lime-800-bg{background-color:#9e9d24!important}.md-lime-800-bg{background-color:#9e9d24!important;color:rgba(0,0,0,.87)}.lime-800-fg{color:#9e9d24!important}.lime-800-border{border-color:#9e9d24!important}.lime-800-border-top{border-top-color:#9e9d24!important}.lime-800-border-right{border-right-color:#9e9d24!important}.lime-800-border-bottom{border-bottom-color:#9e9d24!important}.lime-800-border-left{border-left-color:#9e9d24!important}.lime-900-bg{background-color:#827717!important}.md-lime-900-bg{background-color:#827717!important;color:#fff}.lime-900-fg{color:#827717!important}.lime-900-border{border-color:#827717!important}.lime-900-border-top{border-top-color:#827717!important}.lime-900-border-right{border-right-color:#827717!important}.lime-900-border-bottom{border-bottom-color:#827717!important}.lime-900-border-left{border-left-color:#827717!important}.lime-A100-bg{background-color:#f4ff81!important}.md-lime-A100-bg{background-color:#f4ff81!important;color:rgba(0,0,0,.87)}.lime-A100-fg{color:#f4ff81!important}.lime-A100-border{border-color:#f4ff81!important}.lime-A100-border-top{border-top-color:#f4ff81!important}.lime-A100-border-right{border-right-color:#f4ff81!important}.lime-A100-border-bottom{border-bottom-color:#f4ff81!important}.lime-A100-border-left{border-left-color:#f4ff81!important}.lime-A200-bg{background-color:#eeff41!important}.md-lime-A200-bg{background-color:#eeff41!important;color:rgba(0,0,0,.87)}.lime-A200-fg{color:#eeff41!important}.lime-A200-border{border-color:#eeff41!important}.lime-A200-border-top{border-top-color:#eeff41!important}.lime-A200-border-right{border-right-color:#eeff41!important}.lime-A200-border-bottom{border-bottom-color:#eeff41!important}.lime-A200-border-left{border-left-color:#eeff41!important}.lime-A400-bg{background-color:#c6ff00!important}.md-lime-A400-bg{background-color:#c6ff00!important;color:rgba(0,0,0,.87)}.lime-A400-fg{color:#c6ff00!important}.lime-A400-border{border-color:#c6ff00!important}.lime-A400-border-top{border-top-color:#c6ff00!important}.lime-A400-border-right{border-right-color:#c6ff00!important}.lime-A400-border-bottom{border-bottom-color:#c6ff00!important}.lime-A400-border-left{border-left-color:#c6ff00!important}.lime-A700-bg{background-color:#aeea00!important}.md-lime-A700-bg{background-color:#aeea00!important;color:rgba(0,0,0,.87)}.lime-A700-fg{color:#aeea00!important}.lime-A700-border{border-color:#aeea00!important}.lime-A700-border-top{border-top-color:#aeea00!important}.lime-A700-border-right{border-right-color:#aeea00!important}.lime-A700-border-bottom{border-bottom-color:#aeea00!important}.lime-A700-border-left{border-left-color:#aeea00!important}.yellow-50-bg{background-color:#fffde7!important}.md-yellow-50-bg{background-color:#fffde7!important;color:rgba(0,0,0,.87)}.yellow-50-fg{color:#fffde7!important}.yellow-50-border{border-color:#fffde7!important}.yellow-50-border-top{border-top-color:#fffde7!important}.yellow-50-border-right{border-right-color:#fffde7!important}.yellow-50-border-bottom{border-bottom-color:#fffde7!important}.yellow-50-border-left{border-left-color:#fffde7!important}.yellow-100-bg{background-color:#fff9c4!important}.md-yellow-100-bg{background-color:#fff9c4!important;color:rgba(0,0,0,.87)}.yellow-100-fg{color:#fff9c4!important}.yellow-100-border{border-color:#fff9c4!important}.yellow-100-border-top{border-top-color:#fff9c4!important}.yellow-100-border-right{border-right-color:#fff9c4!important}.yellow-100-border-bottom{border-bottom-color:#fff9c4!important}.yellow-100-border-left{border-left-color:#fff9c4!important}.yellow-200-bg{background-color:#fff59d!important}.md-yellow-200-bg{background-color:#fff59d!important;color:rgba(0,0,0,.87)}.yellow-200-fg{color:#fff59d!important}.yellow-200-border{border-color:#fff59d!important}.yellow-200-border-top{border-top-color:#fff59d!important}.yellow-200-border-right{border-right-color:#fff59d!important}.yellow-200-border-bottom{border-bottom-color:#fff59d!important}.yellow-200-border-left{border-left-color:#fff59d!important}.yellow-300-bg{background-color:#fff176!important}.md-yellow-300-bg{background-color:#fff176!important;color:rgba(0,0,0,.87)}.yellow-300-fg{color:#fff176!important}.yellow-300-border{border-color:#fff176!important}.yellow-300-border-top{border-top-color:#fff176!important}.yellow-300-border-right{border-right-color:#fff176!important}.yellow-300-border-bottom{border-bottom-color:#fff176!important}.yellow-300-border-left{border-left-color:#fff176!important}.yellow-400-bg{background-color:#ffee58!important}.md-yellow-400-bg{background-color:#ffee58!important;color:rgba(0,0,0,.87)}.yellow-400-fg{color:#ffee58!important}.yellow-400-border{border-color:#ffee58!important}.yellow-400-border-top{border-top-color:#ffee58!important}.yellow-400-border-right{border-right-color:#ffee58!important}.yellow-400-border-bottom{border-bottom-color:#ffee58!important}.yellow-400-border-left{border-left-color:#ffee58!important}.yellow-500-bg{background-color:#ffeb3b!important}.md-yellow-500-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-500-fg{color:#ffeb3b!important}.yellow-500-border{border-color:#ffeb3b!important}.yellow-500-border-top{border-top-color:#ffeb3b!important}.yellow-500-border-right{border-right-color:#ffeb3b!important}.yellow-500-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-500-border-left{border-left-color:#ffeb3b!important}.md-yellow-bg{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)}.yellow-bg{background-color:#ffeb3b!important}.yellow-fg{color:#ffeb3b!important}.yellow-border{border-color:#ffeb3b!important}.yellow-border-top{border-top-color:#ffeb3b!important}.yellow-border-right{border-right-color:#ffeb3b!important}.yellow-border-bottom{border-bottom-color:#ffeb3b!important}.yellow-border-left{border-left-color:#ffeb3b!important}.yellow-600-bg{background-color:#fdd835!important}.md-yellow-600-bg{background-color:#fdd835!important;color:rgba(0,0,0,.87)}.yellow-600-fg{color:#fdd835!important}.yellow-600-border{border-color:#fdd835!important}.yellow-600-border-top{border-top-color:#fdd835!important}.yellow-600-border-right{border-right-color:#fdd835!important}.yellow-600-border-bottom{border-bottom-color:#fdd835!important}.yellow-600-border-left{border-left-color:#fdd835!important}.yellow-700-bg{background-color:#fbc02d!important}.md-yellow-700-bg{background-color:#fbc02d!important;color:rgba(0,0,0,.87)}.yellow-700-fg{color:#fbc02d!important}.yellow-700-border{border-color:#fbc02d!important}.yellow-700-border-top{border-top-color:#fbc02d!important}.yellow-700-border-right{border-right-color:#fbc02d!important}.yellow-700-border-bottom{border-bottom-color:#fbc02d!important}.yellow-700-border-left{border-left-color:#fbc02d!important}.yellow-800-bg{background-color:#f9a825!important}.md-yellow-800-bg{background-color:#f9a825!important;color:rgba(0,0,0,.87)}.yellow-800-fg{color:#f9a825!important}.yellow-800-border{border-color:#f9a825!important}.yellow-800-border-top{border-top-color:#f9a825!important}.yellow-800-border-right{border-right-color:#f9a825!important}.yellow-800-border-bottom{border-bottom-color:#f9a825!important}.yellow-800-border-left{border-left-color:#f9a825!important}.yellow-900-bg{background-color:#f57f17!important}.md-yellow-900-bg{background-color:#f57f17!important;color:rgba(0,0,0,.87)}.yellow-900-fg{color:#f57f17!important}.yellow-900-border{border-color:#f57f17!important}.yellow-900-border-top{border-top-color:#f57f17!important}.yellow-900-border-right{border-right-color:#f57f17!important}.yellow-900-border-bottom{border-bottom-color:#f57f17!important}.yellow-900-border-left{border-left-color:#f57f17!important}.yellow-A100-bg{background-color:#ffff8d!important}.md-yellow-A100-bg{background-color:#ffff8d!important;color:rgba(0,0,0,.87)}.yellow-A100-fg{color:#ffff8d!important}.yellow-A100-border{border-color:#ffff8d!important}.yellow-A100-border-top{border-top-color:#ffff8d!important}.yellow-A100-border-right{border-right-color:#ffff8d!important}.yellow-A100-border-bottom{border-bottom-color:#ffff8d!important}.yellow-A100-border-left{border-left-color:#ffff8d!important}.yellow-A200-bg{background-color:#ff0!important}.md-yellow-A200-bg{background-color:#ff0!important;color:rgba(0,0,0,.87)}.yellow-A200-fg{color:#ff0!important}.yellow-A200-border{border-color:#ff0!important}.yellow-A200-border-top{border-top-color:#ff0!important}.yellow-A200-border-right{border-right-color:#ff0!important}.yellow-A200-border-bottom{border-bottom-color:#ff0!important}.yellow-A200-border-left{border-left-color:#ff0!important}.yellow-A400-bg{background-color:#ffea00!important}.md-yellow-A400-bg{background-color:#ffea00!important;color:rgba(0,0,0,.87)}.yellow-A400-fg{color:#ffea00!important}.yellow-A400-border{border-color:#ffea00!important}.yellow-A400-border-top{border-top-color:#ffea00!important}.yellow-A400-border-right{border-right-color:#ffea00!important}.yellow-A400-border-bottom{border-bottom-color:#ffea00!important}.yellow-A400-border-left{border-left-color:#ffea00!important}.yellow-A700-bg{background-color:#ffd600!important}.md-yellow-A700-bg{background-color:#ffd600!important;color:rgba(0,0,0,.87)}.yellow-A700-fg{color:#ffd600!important}.yellow-A700-border{border-color:#ffd600!important}.yellow-A700-border-top{border-top-color:#ffd600!important}.yellow-A700-border-right{border-right-color:#ffd600!important}.yellow-A700-border-bottom{border-bottom-color:#ffd600!important}.yellow-A700-border-left{border-left-color:#ffd600!important}.amber-50-bg{background-color:#fff8e1!important}.md-amber-50-bg{background-color:#fff8e1!important;color:rgba(0,0,0,.87)}.amber-50-fg{color:#fff8e1!important}.amber-50-border{border-color:#fff8e1!important}.amber-50-border-top{border-top-color:#fff8e1!important}.amber-50-border-right{border-right-color:#fff8e1!important}.amber-50-border-bottom{border-bottom-color:#fff8e1!important}.amber-50-border-left{border-left-color:#fff8e1!important}.amber-100-bg{background-color:#ffecb3!important}.md-amber-100-bg{background-color:#ffecb3!important;color:rgba(0,0,0,.87)}.amber-100-fg{color:#ffecb3!important}.amber-100-border{border-color:#ffecb3!important}.amber-100-border-top{border-top-color:#ffecb3!important}.amber-100-border-right{border-right-color:#ffecb3!important}.amber-100-border-bottom{border-bottom-color:#ffecb3!important}.amber-100-border-left{border-left-color:#ffecb3!important}.amber-200-bg{background-color:#ffe082!important}.md-amber-200-bg{background-color:#ffe082!important;color:rgba(0,0,0,.87)}.amber-200-fg{color:#ffe082!important}.amber-200-border{border-color:#ffe082!important}.amber-200-border-top{border-top-color:#ffe082!important}.amber-200-border-right{border-right-color:#ffe082!important}.amber-200-border-bottom{border-bottom-color:#ffe082!important}.amber-200-border-left{border-left-color:#ffe082!important}.amber-300-bg{background-color:#ffd54f!important}.md-amber-300-bg{background-color:#ffd54f!important;color:rgba(0,0,0,.87)}.amber-300-fg{color:#ffd54f!important}.amber-300-border{border-color:#ffd54f!important}.amber-300-border-top{border-top-color:#ffd54f!important}.amber-300-border-right{border-right-color:#ffd54f!important}.amber-300-border-bottom{border-bottom-color:#ffd54f!important}.amber-300-border-left{border-left-color:#ffd54f!important}.amber-400-bg{background-color:#ffca28!important}.md-amber-400-bg{background-color:#ffca28!important;color:rgba(0,0,0,.87)}.amber-400-fg{color:#ffca28!important}.amber-400-border{border-color:#ffca28!important}.amber-400-border-top{border-top-color:#ffca28!important}.amber-400-border-right{border-right-color:#ffca28!important}.amber-400-border-bottom{border-bottom-color:#ffca28!important}.amber-400-border-left{border-left-color:#ffca28!important}.amber-500-bg{background-color:#ffc107!important}.md-amber-500-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-500-fg{color:#ffc107!important}.amber-500-border{border-color:#ffc107!important}.amber-500-border-top{border-top-color:#ffc107!important}.amber-500-border-right{border-right-color:#ffc107!important}.amber-500-border-bottom{border-bottom-color:#ffc107!important}.amber-500-border-left{border-left-color:#ffc107!important}.md-amber-bg{background-color:#ffc107!important;color:rgba(0,0,0,.87)}.amber-bg{background-color:#ffc107!important}.amber-fg{color:#ffc107!important}.amber-border{border-color:#ffc107!important}.amber-border-top{border-top-color:#ffc107!important}.amber-border-right{border-right-color:#ffc107!important}.amber-border-bottom{border-bottom-color:#ffc107!important}.amber-border-left{border-left-color:#ffc107!important}.amber-600-bg{background-color:#ffb300!important}.md-amber-600-bg{background-color:#ffb300!important;color:rgba(0,0,0,.87)}.amber-600-fg{color:#ffb300!important}.amber-600-border{border-color:#ffb300!important}.amber-600-border-top{border-top-color:#ffb300!important}.amber-600-border-right{border-right-color:#ffb300!important}.amber-600-border-bottom{border-bottom-color:#ffb300!important}.amber-600-border-left{border-left-color:#ffb300!important}.amber-700-bg{background-color:#ffa000!important}.md-amber-700-bg{background-color:#ffa000!important;color:rgba(0,0,0,.87)}.amber-700-fg{color:#ffa000!important}.amber-700-border{border-color:#ffa000!important}.amber-700-border-top{border-top-color:#ffa000!important}.amber-700-border-right{border-right-color:#ffa000!important}.amber-700-border-bottom{border-bottom-color:#ffa000!important}.amber-700-border-left{border-left-color:#ffa000!important}.amber-800-bg{background-color:#ff8f00!important}.md-amber-800-bg{background-color:#ff8f00!important;color:rgba(0,0,0,.87)}.amber-800-fg{color:#ff8f00!important}.amber-800-border{border-color:#ff8f00!important}.amber-800-border-top{border-top-color:#ff8f00!important}.amber-800-border-right{border-right-color:#ff8f00!important}.amber-800-border-bottom{border-bottom-color:#ff8f00!important}.amber-800-border-left{border-left-color:#ff8f00!important}.amber-900-bg{background-color:#ff6f00!important}.md-amber-900-bg{background-color:#ff6f00!important;color:rgba(0,0,0,.87)}.amber-900-fg{color:#ff6f00!important}.amber-900-border{border-color:#ff6f00!important}.amber-900-border-top{border-top-color:#ff6f00!important}.amber-900-border-right{border-right-color:#ff6f00!important}.amber-900-border-bottom{border-bottom-color:#ff6f00!important}.amber-900-border-left{border-left-color:#ff6f00!important}.amber-A100-bg{background-color:#ffe57f!important}.md-amber-A100-bg{background-color:#ffe57f!important;color:rgba(0,0,0,.87)}.amber-A100-fg{color:#ffe57f!important}.amber-A100-border{border-color:#ffe57f!important}.amber-A100-border-top{border-top-color:#ffe57f!important}.amber-A100-border-right{border-right-color:#ffe57f!important}.amber-A100-border-bottom{border-bottom-color:#ffe57f!important}.amber-A100-border-left{border-left-color:#ffe57f!important}.amber-A200-bg{background-color:#ffd740!important}.md-amber-A200-bg{background-color:#ffd740!important;color:rgba(0,0,0,.87)}.amber-A200-fg{color:#ffd740!important}.amber-A200-border{border-color:#ffd740!important}.amber-A200-border-top{border-top-color:#ffd740!important}.amber-A200-border-right{border-right-color:#ffd740!important}.amber-A200-border-bottom{border-bottom-color:#ffd740!important}.amber-A200-border-left{border-left-color:#ffd740!important}.amber-A400-bg{background-color:#ffc400!important}.md-amber-A400-bg{background-color:#ffc400!important;color:rgba(0,0,0,.87)}.amber-A400-fg{color:#ffc400!important}.amber-A400-border{border-color:#ffc400!important}.amber-A400-border-top{border-top-color:#ffc400!important}.amber-A400-border-right{border-right-color:#ffc400!important}.amber-A400-border-bottom{border-bottom-color:#ffc400!important}.amber-A400-border-left{border-left-color:#ffc400!important}.amber-A700-bg{background-color:#ffab00!important}.md-amber-A700-bg{background-color:#ffab00!important;color:rgba(0,0,0,.87)}.amber-A700-fg{color:#ffab00!important}.amber-A700-border{border-color:#ffab00!important}.amber-A700-border-top{border-top-color:#ffab00!important}.amber-A700-border-right{border-right-color:#ffab00!important}.amber-A700-border-bottom{border-bottom-color:#ffab00!important}.amber-A700-border-left{border-left-color:#ffab00!important}.orange-50-bg{background-color:#fff3e0!important}.md-orange-50-bg{background-color:#fff3e0!important;color:rgba(0,0,0,.87)}.orange-50-fg{color:#fff3e0!important}.orange-50-border{border-color:#fff3e0!important}.orange-50-border-top{border-top-color:#fff3e0!important}.orange-50-border-right{border-right-color:#fff3e0!important}.orange-50-border-bottom{border-bottom-color:#fff3e0!important}.orange-50-border-left{border-left-color:#fff3e0!important}.orange-100-bg{background-color:#ffe0b2!important}.md-orange-100-bg{background-color:#ffe0b2!important;color:rgba(0,0,0,.87)}.orange-100-fg{color:#ffe0b2!important}.orange-100-border{border-color:#ffe0b2!important}.orange-100-border-top{border-top-color:#ffe0b2!important}.orange-100-border-right{border-right-color:#ffe0b2!important}.orange-100-border-bottom{border-bottom-color:#ffe0b2!important}.orange-100-border-left{border-left-color:#ffe0b2!important}.orange-200-bg{background-color:#ffcc80!important}.md-orange-200-bg{background-color:#ffcc80!important;color:rgba(0,0,0,.87)}.orange-200-fg{color:#ffcc80!important}.orange-200-border{border-color:#ffcc80!important}.orange-200-border-top{border-top-color:#ffcc80!important}.orange-200-border-right{border-right-color:#ffcc80!important}.orange-200-border-bottom{border-bottom-color:#ffcc80!important}.orange-200-border-left{border-left-color:#ffcc80!important}.orange-300-bg{background-color:#ffb74d!important}.md-orange-300-bg{background-color:#ffb74d!important;color:rgba(0,0,0,.87)}.orange-300-fg{color:#ffb74d!important}.orange-300-border{border-color:#ffb74d!important}.orange-300-border-top{border-top-color:#ffb74d!important}.orange-300-border-right{border-right-color:#ffb74d!important}.orange-300-border-bottom{border-bottom-color:#ffb74d!important}.orange-300-border-left{border-left-color:#ffb74d!important}.orange-400-bg{background-color:#ffa726!important}.md-orange-400-bg{background-color:#ffa726!important;color:rgba(0,0,0,.87)}.orange-400-fg{color:#ffa726!important}.orange-400-border{border-color:#ffa726!important}.orange-400-border-top{border-top-color:#ffa726!important}.orange-400-border-right{border-right-color:#ffa726!important}.orange-400-border-bottom{border-bottom-color:#ffa726!important}.orange-400-border-left{border-left-color:#ffa726!important}.orange-500-bg{background-color:#ff9800!important}.md-orange-500-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-500-fg{color:#ff9800!important}.orange-500-border{border-color:#ff9800!important}.orange-500-border-top{border-top-color:#ff9800!important}.orange-500-border-right{border-right-color:#ff9800!important}.orange-500-border-bottom{border-bottom-color:#ff9800!important}.orange-500-border-left{border-left-color:#ff9800!important}.md-orange-bg{background-color:#ff9800!important;color:rgba(0,0,0,.87)}.orange-bg{background-color:#ff9800!important}.orange-fg{color:#ff9800!important}.orange-border{border-color:#ff9800!important}.orange-border-top{border-top-color:#ff9800!important}.orange-border-right{border-right-color:#ff9800!important}.orange-border-bottom{border-bottom-color:#ff9800!important}.orange-border-left{border-left-color:#ff9800!important}.orange-600-bg{background-color:#fb8c00!important}.md-orange-600-bg{background-color:#fb8c00!important;color:rgba(0,0,0,.87)}.orange-600-fg{color:#fb8c00!important}.orange-600-border{border-color:#fb8c00!important}.orange-600-border-top{border-top-color:#fb8c00!important}.orange-600-border-right{border-right-color:#fb8c00!important}.orange-600-border-bottom{border-bottom-color:#fb8c00!important}.orange-600-border-left{border-left-color:#fb8c00!important}.orange-700-bg{background-color:#f57c00!important}.md-orange-700-bg{background-color:#f57c00!important;color:rgba(0,0,0,.87)}.orange-700-fg{color:#f57c00!important}.orange-700-border{border-color:#f57c00!important}.orange-700-border-top{border-top-color:#f57c00!important}.orange-700-border-right{border-right-color:#f57c00!important}.orange-700-border-bottom{border-bottom-color:#f57c00!important}.orange-700-border-left{border-left-color:#f57c00!important}.orange-800-bg{background-color:#ef6c00!important}.md-orange-800-bg{background-color:#ef6c00!important;color:#fff}.orange-800-fg{color:#ef6c00!important}.orange-800-border{border-color:#ef6c00!important}.orange-800-border-top{border-top-color:#ef6c00!important}.orange-800-border-right{border-right-color:#ef6c00!important}.orange-800-border-bottom{border-bottom-color:#ef6c00!important}.orange-800-border-left{border-left-color:#ef6c00!important}.orange-900-bg{background-color:#e65100!important}.md-orange-900-bg{background-color:#e65100!important;color:#fff}.orange-900-fg{color:#e65100!important}.orange-900-border{border-color:#e65100!important}.orange-900-border-top{border-top-color:#e65100!important}.orange-900-border-right{border-right-color:#e65100!important}.orange-900-border-bottom{border-bottom-color:#e65100!important}.orange-900-border-left{border-left-color:#e65100!important}.orange-A100-bg{background-color:#ffd180!important}.md-orange-A100-bg{background-color:#ffd180!important;color:rgba(0,0,0,.87)}.orange-A100-fg{color:#ffd180!important}.orange-A100-border{border-color:#ffd180!important}.orange-A100-border-top{border-top-color:#ffd180!important}.orange-A100-border-right{border-right-color:#ffd180!important}.orange-A100-border-bottom{border-bottom-color:#ffd180!important}.orange-A100-border-left{border-left-color:#ffd180!important}.orange-A200-bg{background-color:#ffab40!important}.md-orange-A200-bg{background-color:#ffab40!important;color:rgba(0,0,0,.87)}.orange-A200-fg{color:#ffab40!important}.orange-A200-border{border-color:#ffab40!important}.orange-A200-border-top{border-top-color:#ffab40!important}.orange-A200-border-right{border-right-color:#ffab40!important}.orange-A200-border-bottom{border-bottom-color:#ffab40!important}.orange-A200-border-left{border-left-color:#ffab40!important}.orange-A400-bg{background-color:#ff9100!important}.md-orange-A400-bg{background-color:#ff9100!important;color:rgba(0,0,0,.87)}.orange-A400-fg{color:#ff9100!important}.orange-A400-border{border-color:#ff9100!important}.orange-A400-border-top{border-top-color:#ff9100!important}.orange-A400-border-right{border-right-color:#ff9100!important}.orange-A400-border-bottom{border-bottom-color:#ff9100!important}.orange-A400-border-left{border-left-color:#ff9100!important}.orange-A700-bg{background-color:#ff6d00!important}.md-orange-A700-bg{background-color:#ff6d00!important;color:rgba(0,0,0,.87)}.orange-A700-fg{color:#ff6d00!important}.orange-A700-border{border-color:#ff6d00!important}.orange-A700-border-top{border-top-color:#ff6d00!important}.orange-A700-border-right{border-right-color:#ff6d00!important}.orange-A700-border-bottom{border-bottom-color:#ff6d00!important}.orange-A700-border-left{border-left-color:#ff6d00!important}.deep-orange-50-bg{background-color:#fbe9e7!important}.md-deep-orange-50-bg{background-color:#fbe9e7!important;color:rgba(0,0,0,.87)}.deep-orange-50-fg{color:#fbe9e7!important}.deep-orange-50-border{border-color:#fbe9e7!important}.deep-orange-50-border-top{border-top-color:#fbe9e7!important}.deep-orange-50-border-right{border-right-color:#fbe9e7!important}.deep-orange-50-border-bottom{border-bottom-color:#fbe9e7!important}.deep-orange-50-border-left{border-left-color:#fbe9e7!important}.deep-orange-100-bg{background-color:#ffccbc!important}.md-deep-orange-100-bg{background-color:#ffccbc!important;color:rgba(0,0,0,.87)}.deep-orange-100-fg{color:#ffccbc!important}.deep-orange-100-border{border-color:#ffccbc!important}.deep-orange-100-border-top{border-top-color:#ffccbc!important}.deep-orange-100-border-right{border-right-color:#ffccbc!important}.deep-orange-100-border-bottom{border-bottom-color:#ffccbc!important}.deep-orange-100-border-left{border-left-color:#ffccbc!important}.deep-orange-200-bg{background-color:#ffab91!important}.md-deep-orange-200-bg{background-color:#ffab91!important;color:rgba(0,0,0,.87)}.deep-orange-200-fg{color:#ffab91!important}.deep-orange-200-border{border-color:#ffab91!important}.deep-orange-200-border-top{border-top-color:#ffab91!important}.deep-orange-200-border-right{border-right-color:#ffab91!important}.deep-orange-200-border-bottom{border-bottom-color:#ffab91!important}.deep-orange-200-border-left{border-left-color:#ffab91!important}.deep-orange-300-bg{background-color:#ff8a65!important}.md-deep-orange-300-bg{background-color:#ff8a65!important;color:rgba(0,0,0,.87)}.deep-orange-300-fg{color:#ff8a65!important}.deep-orange-300-border{border-color:#ff8a65!important}.deep-orange-300-border-top{border-top-color:#ff8a65!important}.deep-orange-300-border-right{border-right-color:#ff8a65!important}.deep-orange-300-border-bottom{border-bottom-color:#ff8a65!important}.deep-orange-300-border-left{border-left-color:#ff8a65!important}.deep-orange-400-bg{background-color:#ff7043!important}.md-deep-orange-400-bg{background-color:#ff7043!important;color:rgba(0,0,0,.87)}.deep-orange-400-fg{color:#ff7043!important}.deep-orange-400-border{border-color:#ff7043!important}.deep-orange-400-border-top{border-top-color:#ff7043!important}.deep-orange-400-border-right{border-right-color:#ff7043!important}.deep-orange-400-border-bottom{border-bottom-color:#ff7043!important}.deep-orange-400-border-left{border-left-color:#ff7043!important}.deep-orange-500-bg{background-color:#ff5722!important}.md-deep-orange-500-bg{background-color:#ff5722!important;color:#fff}.deep-orange-500-fg{color:#ff5722!important}.deep-orange-500-border{border-color:#ff5722!important}.deep-orange-500-border-top{border-top-color:#ff5722!important}.deep-orange-500-border-right{border-right-color:#ff5722!important}.deep-orange-500-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-500-border-left{border-left-color:#ff5722!important}.md-deep-orange-bg{background-color:#ff5722!important;color:#fff}.deep-orange-bg{background-color:#ff5722!important}.deep-orange-fg{color:#ff5722!important}.deep-orange-border{border-color:#ff5722!important}.deep-orange-border-top{border-top-color:#ff5722!important}.deep-orange-border-right{border-right-color:#ff5722!important}.deep-orange-border-bottom{border-bottom-color:#ff5722!important}.deep-orange-border-left{border-left-color:#ff5722!important}.deep-orange-600-bg{background-color:#f4511e!important}.md-deep-orange-600-bg{background-color:#f4511e!important;color:#fff}.deep-orange-600-fg{color:#f4511e!important}.deep-orange-600-border{border-color:#f4511e!important}.deep-orange-600-border-top{border-top-color:#f4511e!important}.deep-orange-600-border-right{border-right-color:#f4511e!important}.deep-orange-600-border-bottom{border-bottom-color:#f4511e!important}.deep-orange-600-border-left{border-left-color:#f4511e!important}.deep-orange-700-bg{background-color:#e64a19!important}.md-deep-orange-700-bg{background-color:#e64a19!important;color:#fff}.deep-orange-700-fg{color:#e64a19!important}.deep-orange-700-border{border-color:#e64a19!important}.deep-orange-700-border-top{border-top-color:#e64a19!important}.deep-orange-700-border-right{border-right-color:#e64a19!important}.deep-orange-700-border-bottom{border-bottom-color:#e64a19!important}.deep-orange-700-border-left{border-left-color:#e64a19!important}.deep-orange-800-bg{background-color:#d84315!important}.md-deep-orange-800-bg{background-color:#d84315!important;color:#fff}.deep-orange-800-fg{color:#d84315!important}.deep-orange-800-border{border-color:#d84315!important}.deep-orange-800-border-top{border-top-color:#d84315!important}.deep-orange-800-border-right{border-right-color:#d84315!important}.deep-orange-800-border-bottom{border-bottom-color:#d84315!important}.deep-orange-800-border-left{border-left-color:#d84315!important}.deep-orange-900-bg{background-color:#bf360c!important}.md-deep-orange-900-bg{background-color:#bf360c!important;color:#fff}.deep-orange-900-fg{color:#bf360c!important}.deep-orange-900-border{border-color:#bf360c!important}.deep-orange-900-border-top{border-top-color:#bf360c!important}.deep-orange-900-border-right{border-right-color:#bf360c!important}.deep-orange-900-border-bottom{border-bottom-color:#bf360c!important}.deep-orange-900-border-left{border-left-color:#bf360c!important}.deep-orange-A100-bg{background-color:#ff9e80!important}.md-deep-orange-A100-bg{background-color:#ff9e80!important;color:rgba(0,0,0,.87)}.deep-orange-A100-fg{color:#ff9e80!important}.deep-orange-A100-border{border-color:#ff9e80!important}.deep-orange-A100-border-top{border-top-color:#ff9e80!important}.deep-orange-A100-border-right{border-right-color:#ff9e80!important}.deep-orange-A100-border-bottom{border-bottom-color:#ff9e80!important}.deep-orange-A100-border-left{border-left-color:#ff9e80!important}.deep-orange-A200-bg{background-color:#ff6e40!important}.md-deep-orange-A200-bg{background-color:#ff6e40!important;color:rgba(0,0,0,.87)}.deep-orange-A200-fg{color:#ff6e40!important}.deep-orange-A200-border{border-color:#ff6e40!important}.deep-orange-A200-border-top{border-top-color:#ff6e40!important}.deep-orange-A200-border-right{border-right-color:#ff6e40!important}.deep-orange-A200-border-bottom{border-bottom-color:#ff6e40!important}.deep-orange-A200-border-left{border-left-color:#ff6e40!important}.deep-orange-A400-bg{background-color:#ff3d00!important}.md-deep-orange-A400-bg{background-color:#ff3d00!important;color:#fff}.deep-orange-A400-fg{color:#ff3d00!important}.deep-orange-A400-border{border-color:#ff3d00!important}.deep-orange-A400-border-top{border-top-color:#ff3d00!important}.deep-orange-A400-border-right{border-right-color:#ff3d00!important}.deep-orange-A400-border-bottom{border-bottom-color:#ff3d00!important}.deep-orange-A400-border-left{border-left-color:#ff3d00!important}.deep-orange-A700-bg{background-color:#dd2c00!important}.md-deep-orange-A700-bg{background-color:#dd2c00!important;color:#fff}.deep-orange-A700-fg{color:#dd2c00!important}.deep-orange-A700-border{border-color:#dd2c00!important}.deep-orange-A700-border-top{border-top-color:#dd2c00!important}.deep-orange-A700-border-right{border-right-color:#dd2c00!important}.deep-orange-A700-border-bottom{border-bottom-color:#dd2c00!important}.deep-orange-A700-border-left{border-left-color:#dd2c00!important}.brown-50-bg{background-color:#efebe9!important}.md-brown-50-bg{background-color:#efebe9!important;color:rgba(0,0,0,.87)}.brown-50-fg{color:#efebe9!important}.brown-50-border{border-color:#efebe9!important}.brown-50-border-top{border-top-color:#efebe9!important}.brown-50-border-right{border-right-color:#efebe9!important}.brown-50-border-bottom{border-bottom-color:#efebe9!important}.brown-50-border-left{border-left-color:#efebe9!important}.brown-100-bg{background-color:#d7ccc8!important}.md-brown-100-bg{background-color:#d7ccc8!important;color:rgba(0,0,0,.87)}.brown-100-fg{color:#d7ccc8!important}.brown-100-border{border-color:#d7ccc8!important}.brown-100-border-top{border-top-color:#d7ccc8!important}.brown-100-border-right{border-right-color:#d7ccc8!important}.brown-100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-100-border-left{border-left-color:#d7ccc8!important}.brown-200-bg{background-color:#bcaaa4!important}.md-brown-200-bg{background-color:#bcaaa4!important;color:rgba(0,0,0,.87)}.brown-200-fg{color:#bcaaa4!important}.brown-200-border{border-color:#bcaaa4!important}.brown-200-border-top{border-top-color:#bcaaa4!important}.brown-200-border-right{border-right-color:#bcaaa4!important}.brown-200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-200-border-left{border-left-color:#bcaaa4!important}.brown-300-bg{background-color:#a1887f!important}.md-brown-300-bg{background-color:#a1887f!important;color:#fff}.brown-300-fg{color:#a1887f!important}.brown-300-border{border-color:#a1887f!important}.brown-300-border-top{border-top-color:#a1887f!important}.brown-300-border-right{border-right-color:#a1887f!important}.brown-300-border-bottom{border-bottom-color:#a1887f!important}.brown-300-border-left{border-left-color:#a1887f!important}.brown-400-bg{background-color:#8d6e63!important}.md-brown-400-bg{background-color:#8d6e63!important;color:#fff}.brown-400-fg{color:#8d6e63!important}.brown-400-border{border-color:#8d6e63!important}.brown-400-border-top{border-top-color:#8d6e63!important}.brown-400-border-right{border-right-color:#8d6e63!important}.brown-400-border-bottom{border-bottom-color:#8d6e63!important}.brown-400-border-left{border-left-color:#8d6e63!important}.brown-500-bg{background-color:#795548!important}.md-brown-500-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-500-fg{color:#795548!important}.brown-500-border{border-color:#795548!important}.brown-500-border-top{border-top-color:#795548!important}.brown-500-border-right{border-right-color:#795548!important}.brown-500-border-bottom{border-bottom-color:#795548!important}.brown-500-border-left{border-left-color:#795548!important}.md-brown-bg{background-color:#795548!important;color:rgba(255,255,255,.87)}.brown-bg{background-color:#795548!important}.brown-fg{color:#795548!important}.brown-border{border-color:#795548!important}.brown-border-top{border-top-color:#795548!important}.brown-border-right{border-right-color:#795548!important}.brown-border-bottom{border-bottom-color:#795548!important}.brown-border-left{border-left-color:#795548!important}.brown-600-bg{background-color:#6d4c41!important}.md-brown-600-bg{background-color:#6d4c41!important;color:rgba(255,255,255,.87)}.brown-600-fg{color:#6d4c41!important}.brown-600-border{border-color:#6d4c41!important}.brown-600-border-top{border-top-color:#6d4c41!important}.brown-600-border-right{border-right-color:#6d4c41!important}.brown-600-border-bottom{border-bottom-color:#6d4c41!important}.brown-600-border-left{border-left-color:#6d4c41!important}.brown-700-bg{background-color:#5d4037!important}.md-brown-700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-700-fg{color:#5d4037!important}.brown-700-border{border-color:#5d4037!important}.brown-700-border-top{border-top-color:#5d4037!important}.brown-700-border-right{border-right-color:#5d4037!important}.brown-700-border-bottom{border-bottom-color:#5d4037!important}.brown-700-border-left{border-left-color:#5d4037!important}.brown-800-bg{background-color:#4e342e!important}.md-brown-800-bg{background-color:#4e342e!important;color:rgba(255,255,255,.87)}.brown-800-fg{color:#4e342e!important}.brown-800-border{border-color:#4e342e!important}.brown-800-border-top{border-top-color:#4e342e!important}.brown-800-border-right{border-right-color:#4e342e!important}.brown-800-border-bottom{border-bottom-color:#4e342e!important}.brown-800-border-left{border-left-color:#4e342e!important}.brown-900-bg{background-color:#3e2723!important}.md-brown-900-bg{background-color:#3e2723!important;color:rgba(255,255,255,.87)}.brown-900-fg{color:#3e2723!important}.brown-900-border{border-color:#3e2723!important}.brown-900-border-top{border-top-color:#3e2723!important}.brown-900-border-right{border-right-color:#3e2723!important}.brown-900-border-bottom{border-bottom-color:#3e2723!important}.brown-900-border-left{border-left-color:#3e2723!important}.brown-A100-bg{background-color:#d7ccc8!important}.md-brown-A100-bg{background-color:#d7ccc8!important;color:rgba(255,255,255,.87)}.brown-A100-fg{color:#d7ccc8!important}.brown-A100-border{border-color:#d7ccc8!important}.brown-A100-border-top{border-top-color:#d7ccc8!important}.brown-A100-border-right{border-right-color:#d7ccc8!important}.brown-A100-border-bottom{border-bottom-color:#d7ccc8!important}.brown-A100-border-left{border-left-color:#d7ccc8!important}.brown-A200-bg{background-color:#bcaaa4!important}.md-brown-A200-bg{background-color:#bcaaa4!important;color:rgba(255,255,255,.87)}.brown-A200-fg{color:#bcaaa4!important}.brown-A200-border{border-color:#bcaaa4!important}.brown-A200-border-top{border-top-color:#bcaaa4!important}.brown-A200-border-right{border-right-color:#bcaaa4!important}.brown-A200-border-bottom{border-bottom-color:#bcaaa4!important}.brown-A200-border-left{border-left-color:#bcaaa4!important}.brown-A400-bg{background-color:#8d6e63!important}.md-brown-A400-bg{background-color:#8d6e63!important;color:rgba(255,255,255,.87)}.brown-A400-fg{color:#8d6e63!important}.brown-A400-border{border-color:#8d6e63!important}.brown-A400-border-top{border-top-color:#8d6e63!important}.brown-A400-border-right{border-right-color:#8d6e63!important}.brown-A400-border-bottom{border-bottom-color:#8d6e63!important}.brown-A400-border-left{border-left-color:#8d6e63!important}.brown-A700-bg{background-color:#5d4037!important}.md-brown-A700-bg{background-color:#5d4037!important;color:rgba(255,255,255,.87)}.brown-A700-fg{color:#5d4037!important}.brown-A700-border{border-color:#5d4037!important}.brown-A700-border-top{border-top-color:#5d4037!important}.brown-A700-border-right{border-right-color:#5d4037!important}.brown-A700-border-bottom{border-bottom-color:#5d4037!important}.brown-A700-border-left{border-left-color:#5d4037!important}.grey-50-bg{background-color:#fafafa!important}.md-grey-50-bg{background-color:#fafafa!important;color:rgba(0,0,0,.87)}.grey-50-fg{color:#fafafa!important}.grey-50-border{border-color:#fafafa!important}.grey-50-border-top{border-top-color:#fafafa!important}.grey-50-border-right{border-right-color:#fafafa!important}.grey-50-border-bottom{border-bottom-color:#fafafa!important}.grey-50-border-left{border-left-color:#fafafa!important}.grey-100-bg{background-color:#f5f5f5!important}.md-grey-100-bg{background-color:#f5f5f5!important;color:rgba(0,0,0,.87)}.grey-100-fg{color:#f5f5f5!important}.grey-100-border{border-color:#f5f5f5!important}.grey-100-border-top{border-top-color:#f5f5f5!important}.grey-100-border-right{border-right-color:#f5f5f5!important}.grey-100-border-bottom{border-bottom-color:#f5f5f5!important}.grey-100-border-left{border-left-color:#f5f5f5!important}.grey-200-bg{background-color:#eee!important}.md-grey-200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-200-fg{color:#eee!important}.grey-200-border{border-color:#eee!important}.grey-200-border-top{border-top-color:#eee!important}.grey-200-border-right{border-right-color:#eee!important}.grey-200-border-bottom{border-bottom-color:#eee!important}.grey-200-border-left{border-left-color:#eee!important}.grey-300-bg{background-color:#e0e0e0!important}.md-grey-300-bg{background-color:#e0e0e0!important;color:rgba(0,0,0,.87)}.grey-300-fg{color:#e0e0e0!important}.grey-300-border{border-color:#e0e0e0!important}.grey-300-border-top{border-top-color:#e0e0e0!important}.grey-300-border-right{border-right-color:#e0e0e0!important}.grey-300-border-bottom{border-bottom-color:#e0e0e0!important}.grey-300-border-left{border-left-color:#e0e0e0!important}.grey-400-bg{background-color:#bdbdbd!important}.md-grey-400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-400-fg{color:#bdbdbd!important}.grey-400-border{border-color:#bdbdbd!important}.grey-400-border-top{border-top-color:#bdbdbd!important}.grey-400-border-right{border-right-color:#bdbdbd!important}.grey-400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-400-border-left{border-left-color:#bdbdbd!important}.grey-500-bg{background-color:#9e9e9e!important}.md-grey-500-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-500-fg{color:#9e9e9e!important}.grey-500-border{border-color:#9e9e9e!important}.grey-500-border-top{border-top-color:#9e9e9e!important}.grey-500-border-right{border-right-color:#9e9e9e!important}.grey-500-border-bottom{border-bottom-color:#9e9e9e!important}.grey-500-border-left{border-left-color:#9e9e9e!important}.md-grey-bg{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)}.grey-bg{background-color:#9e9e9e!important}.grey-fg{color:#9e9e9e!important}.grey-border{border-color:#9e9e9e!important}.grey-border-top{border-top-color:#9e9e9e!important}.grey-border-right{border-right-color:#9e9e9e!important}.grey-border-bottom{border-bottom-color:#9e9e9e!important}.grey-border-left{border-left-color:#9e9e9e!important}.grey-600-bg{background-color:#757575!important}.md-grey-600-bg{background-color:#757575!important;color:rgba(255,255,255,.87)}.grey-600-fg{color:#757575!important}.grey-600-border{border-color:#757575!important}.grey-600-border-top{border-top-color:#757575!important}.grey-600-border-right{border-right-color:#757575!important}.grey-600-border-bottom{border-bottom-color:#757575!important}.grey-600-border-left{border-left-color:#757575!important}.grey-700-bg{background-color:#616161!important}.md-grey-700-bg{background-color:#616161!important;color:rgba(255,255,255,.87)}.grey-700-fg{color:#616161!important}.grey-700-border{border-color:#616161!important}.grey-700-border-top{border-top-color:#616161!important}.grey-700-border-right{border-right-color:#616161!important}.grey-700-border-bottom{border-bottom-color:#616161!important}.grey-700-border-left{border-left-color:#616161!important}.grey-800-bg{background-color:#424242!important}.md-grey-800-bg{background-color:#424242!important;color:rgba(255,255,255,.87)}.grey-800-fg{color:#424242!important}.grey-800-border{border-color:#424242!important}.grey-800-border-top{border-top-color:#424242!important}.grey-800-border-right{border-right-color:#424242!important}.grey-800-border-bottom{border-bottom-color:#424242!important}.grey-800-border-left{border-left-color:#424242!important}.grey-900-bg{background-color:#212121!important}.md-grey-900-bg{background-color:#212121!important;color:rgba(255,255,255,.87)}.grey-900-fg{color:#212121!important}.grey-900-border{border-color:#212121!important}.grey-900-border-top{border-top-color:#212121!important}.grey-900-border-right{border-right-color:#212121!important}.grey-900-border-bottom{border-bottom-color:#212121!important}.grey-900-border-left{border-left-color:#212121!important}.grey-1000-bg{background-color:#000!important}.md-grey-1000-bg{background-color:#000!important}.grey-1000-fg{color:#000!important}.grey-1000-border{border-color:#000!important}.grey-1000-border-top{border-top-color:#000!important}.grey-1000-border-right{border-right-color:#000!important}.grey-1000-border-bottom{border-bottom-color:#000!important}.grey-1000-border-left{border-left-color:#000!important}.grey-A100-bg{background-color:#fff!important}.md-grey-A100-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.grey-A100-fg{color:#fff!important}.grey-A100-border{border-color:#fff!important}.grey-A100-border-top{border-top-color:#fff!important}.grey-A100-border-right{border-right-color:#fff!important}.grey-A100-border-bottom{border-bottom-color:#fff!important}.grey-A100-border-left{border-left-color:#fff!important}.grey-A200-bg{background-color:#eee!important}.md-grey-A200-bg{background-color:#eee!important;color:rgba(0,0,0,.87)}.grey-A200-fg{color:#eee!important}.grey-A200-border{border-color:#eee!important}.grey-A200-border-top{border-top-color:#eee!important}.grey-A200-border-right{border-right-color:#eee!important}.grey-A200-border-bottom{border-bottom-color:#eee!important}.grey-A200-border-left{border-left-color:#eee!important}.grey-A400-bg{background-color:#bdbdbd!important}.md-grey-A400-bg{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)}.grey-A400-fg{color:#bdbdbd!important}.grey-A400-border{border-color:#bdbdbd!important}.grey-A400-border-top{border-top-color:#bdbdbd!important}.grey-A400-border-right{border-right-color:#bdbdbd!important}.grey-A400-border-bottom{border-bottom-color:#bdbdbd!important}.grey-A400-border-left{border-left-color:#bdbdbd!important}.grey-A700-bg{background-color:#616161!important}.md-grey-A700-bg{background-color:#616161!important;color:rgba(0,0,0,.87)}.grey-A700-fg{color:#616161!important}.grey-A700-border{border-color:#616161!important}.grey-A700-border-top{border-top-color:#616161!important}.grey-A700-border-right{border-right-color:#616161!important}.grey-A700-border-bottom{border-bottom-color:#616161!important}.grey-A700-border-left{border-left-color:#616161!important}.blue-grey-50-bg{background-color:#eceff1!important}.md-blue-grey-50-bg{background-color:#eceff1!important;color:rgba(0,0,0,.87)}.blue-grey-50-fg{color:#eceff1!important}.blue-grey-50-border{border-color:#eceff1!important}.blue-grey-50-border-top{border-top-color:#eceff1!important}.blue-grey-50-border-right{border-right-color:#eceff1!important}.blue-grey-50-border-bottom{border-bottom-color:#eceff1!important}.blue-grey-50-border-left{border-left-color:#eceff1!important}.blue-grey-100-bg{background-color:#cfd8dc!important}.md-blue-grey-100-bg{background-color:#cfd8dc!important;color:rgba(0,0,0,.87)}.blue-grey-100-fg{color:#cfd8dc!important}.blue-grey-100-border{border-color:#cfd8dc!important}.blue-grey-100-border-top{border-top-color:#cfd8dc!important}.blue-grey-100-border-right{border-right-color:#cfd8dc!important}.blue-grey-100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-100-border-left{border-left-color:#cfd8dc!important}.blue-grey-200-bg{background-color:#b0bec5!important}.md-blue-grey-200-bg{background-color:#b0bec5!important;color:rgba(0,0,0,.87)}.blue-grey-200-fg{color:#b0bec5!important}.blue-grey-200-border{border-color:#b0bec5!important}.blue-grey-200-border-top{border-top-color:#b0bec5!important}.blue-grey-200-border-right{border-right-color:#b0bec5!important}.blue-grey-200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-200-border-left{border-left-color:#b0bec5!important}.blue-grey-300-bg{background-color:#90a4ae!important}.md-blue-grey-300-bg{background-color:#90a4ae!important;color:rgba(0,0,0,.87)}.blue-grey-300-fg{color:#90a4ae!important}.blue-grey-300-border{border-color:#90a4ae!important}.blue-grey-300-border-top{border-top-color:#90a4ae!important}.blue-grey-300-border-right{border-right-color:#90a4ae!important}.blue-grey-300-border-bottom{border-bottom-color:#90a4ae!important}.blue-grey-300-border-left{border-left-color:#90a4ae!important}.blue-grey-400-bg{background-color:#78909c!important}.md-blue-grey-400-bg{background-color:#78909c!important;color:#fff}.blue-grey-400-fg{color:#78909c!important}.blue-grey-400-border{border-color:#78909c!important}.blue-grey-400-border-top{border-top-color:#78909c!important}.blue-grey-400-border-right{border-right-color:#78909c!important}.blue-grey-400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-400-border-left{border-left-color:#78909c!important}.blue-grey-500-bg{background-color:#607d8b!important}.md-blue-grey-500-bg{background-color:#607d8b!important;color:#fff}.blue-grey-500-fg{color:#607d8b!important}.blue-grey-500-border{border-color:#607d8b!important}.blue-grey-500-border-top{border-top-color:#607d8b!important}.blue-grey-500-border-right{border-right-color:#607d8b!important}.blue-grey-500-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-500-border-left{border-left-color:#607d8b!important}.md-blue-grey-bg{background-color:#607d8b!important;color:#fff}.blue-grey-bg{background-color:#607d8b!important}.blue-grey-fg{color:#607d8b!important}.blue-grey-border{border-color:#607d8b!important}.blue-grey-border-top{border-top-color:#607d8b!important}.blue-grey-border-right{border-right-color:#607d8b!important}.blue-grey-border-bottom{border-bottom-color:#607d8b!important}.blue-grey-border-left{border-left-color:#607d8b!important}.blue-grey-600-bg{background-color:#546e7a!important}.md-blue-grey-600-bg{background-color:#546e7a!important;color:rgba(255,255,255,.87)}.blue-grey-600-fg{color:#546e7a!important}.blue-grey-600-border{border-color:#546e7a!important}.blue-grey-600-border-top{border-top-color:#546e7a!important}.blue-grey-600-border-right{border-right-color:#546e7a!important}.blue-grey-600-border-bottom{border-bottom-color:#546e7a!important}.blue-grey-600-border-left{border-left-color:#546e7a!important}.blue-grey-700-bg{background-color:#455a64!important}.md-blue-grey-700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-700-fg{color:#455a64!important}.blue-grey-700-border{border-color:#455a64!important}.blue-grey-700-border-top{border-top-color:#455a64!important}.blue-grey-700-border-right{border-right-color:#455a64!important}.blue-grey-700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-700-border-left{border-left-color:#455a64!important}.blue-grey-800-bg{background-color:#37474f!important}.md-blue-grey-800-bg{background-color:#37474f!important;color:rgba(255,255,255,.87)}.blue-grey-800-fg{color:#37474f!important}.blue-grey-800-border{border-color:#37474f!important}.blue-grey-800-border-top{border-top-color:#37474f!important}.blue-grey-800-border-right{border-right-color:#37474f!important}.blue-grey-800-border-bottom{border-bottom-color:#37474f!important}.blue-grey-800-border-left{border-left-color:#37474f!important}.blue-grey-900-bg{background-color:#263238!important}.md-blue-grey-900-bg{background-color:#263238!important;color:rgba(255,255,255,.87)}.blue-grey-900-fg{color:#263238!important}.blue-grey-900-border{border-color:#263238!important}.blue-grey-900-border-top{border-top-color:#263238!important}.blue-grey-900-border-right{border-right-color:#263238!important}.blue-grey-900-border-bottom{border-bottom-color:#263238!important}.blue-grey-900-border-left{border-left-color:#263238!important}.blue-grey-A100-bg{background-color:#cfd8dc!important}.md-blue-grey-A100-bg{background-color:#cfd8dc!important;color:rgba(255,255,255,.87)}.blue-grey-A100-fg{color:#cfd8dc!important}.blue-grey-A100-border{border-color:#cfd8dc!important}.blue-grey-A100-border-top{border-top-color:#cfd8dc!important}.blue-grey-A100-border-right{border-right-color:#cfd8dc!important}.blue-grey-A100-border-bottom{border-bottom-color:#cfd8dc!important}.blue-grey-A100-border-left{border-left-color:#cfd8dc!important}.blue-grey-A200-bg{background-color:#b0bec5!important}.md-blue-grey-A200-bg{background-color:#b0bec5!important;color:rgba(255,255,255,.87)}.blue-grey-A200-fg{color:#b0bec5!important}.blue-grey-A200-border{border-color:#b0bec5!important}.blue-grey-A200-border-top{border-top-color:#b0bec5!important}.blue-grey-A200-border-right{border-right-color:#b0bec5!important}.blue-grey-A200-border-bottom{border-bottom-color:#b0bec5!important}.blue-grey-A200-border-left{border-left-color:#b0bec5!important}.blue-grey-A400-bg{background-color:#78909c!important}.md-blue-grey-A400-bg{background-color:#78909c!important;color:rgba(255,255,255,.87)}.blue-grey-A400-fg{color:#78909c!important}.blue-grey-A400-border{border-color:#78909c!important}.blue-grey-A400-border-top{border-top-color:#78909c!important}.blue-grey-A400-border-right{border-right-color:#78909c!important}.blue-grey-A400-border-bottom{border-bottom-color:#78909c!important}.blue-grey-A400-border-left{border-left-color:#78909c!important}.blue-grey-A700-bg{background-color:#455a64!important}.md-blue-grey-A700-bg{background-color:#455a64!important;color:rgba(255,255,255,.87)}.blue-grey-A700-fg{color:#455a64!important}.blue-grey-A700-border{border-color:#455a64!important}.blue-grey-A700-border-top{border-top-color:#455a64!important}.blue-grey-A700-border-right{border-right-color:#455a64!important}.blue-grey-A700-border-bottom{border-bottom-color:#455a64!important}.blue-grey-A700-border-left{border-left-color:#455a64!important}.white-500-bg{background-color:#fff!important}.md-white-500-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-500-fg{color:#fff!important}.white-500-border{border-color:#fff!important}.white-500-border-top{border-top-color:#fff!important}.white-500-border-right{border-right-color:#fff!important}.white-500-border-bottom{border-bottom-color:#fff!important}.white-500-border-left{border-left-color:#fff!important}.md-white-bg{background-color:#fff!important;color:rgba(0,0,0,.87)}.white-bg{background-color:#fff!important}.white-fg{color:#fff!important}.white-border{border-color:#fff!important}.white-border-top{border-top-color:#fff!important}.white-border-right{border-right-color:#fff!important}.white-border-bottom{border-bottom-color:#fff!important}.white-border-left{border-left-color:#fff!important}.black-500-bg{background-color:#000!important}.md-black-500-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-500-fg{color:#000!important}.black-500-border{border-color:#000!important}.black-500-border-top{border-top-color:#000!important}.black-500-border-right{border-right-color:#000!important}.black-500-border-bottom{border-bottom-color:#000!important}.black-500-border-left{border-left-color:#000!important}.md-black-bg{background-color:#000!important;color:rgba(255,255,255,.87)}.black-bg{background-color:#000!important}.black-fg{color:#000!important}.black-border{border-color:#000!important}.black-border-top{border-top-color:#000!important}.black-border-right{border-right-color:#000!important}.black-border-bottom{border-bottom-color:#000!important}.black-border-left{border-left-color:#000!important}i,md-icon[md-font-icon]{font-size:24px;width:24px;height:24px;min-width:24px;min-height:24px;line-height:24px}i.s4,md-icon[md-font-icon].s4{font-size:4px!important;width:4px!important;height:4px!important;min-width:4px!important;min-height:4px!important;line-height:4px!important}i.s6,md-icon[md-font-icon].s6{font-size:6px!important;width:6px!important;height:6px!important;min-width:6px!important;min-height:6px!important;line-height:6px!important}i.s8,md-icon[md-font-icon].s8{font-size:8px!important;width:8px!important;height:8px!important;min-width:8px!important;min-height:8px!important;line-height:8px!important}i.s10,md-icon[md-font-icon].s10{font-size:10px!important;width:10px!important;height:10px!important;min-width:10px!important;min-height:10px!important;line-height:10px!important}i.s12,md-icon[md-font-icon].s12{font-size:12px!important;width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;line-height:12px!important}i.s14,md-icon[md-font-icon].s14{font-size:14px!important;width:14px!important;height:14px!important;min-width:14px!important;min-height:14px!important;line-height:14px!important}i.s16,md-icon[md-font-icon].s16{font-size:16px!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;line-height:16px!important}i.s18,md-icon[md-font-icon].s18{font-size:18px!important;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;line-height:18px!important}i.s20,md-icon[md-font-icon].s20{font-size:20px!important;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;line-height:20px!important}i.s22,md-icon[md-font-icon].s22{font-size:22px!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;line-height:22px!important}i.s24,md-icon[md-font-icon].s24{font-size:24px!important;width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;line-height:24px!important}i.s26,md-icon[md-font-icon].s26{font-size:26px!important;width:26px!important;height:26px!important;min-width:26px!important;min-height:26px!important;line-height:26px!important}i.s28,md-icon[md-font-icon].s28{font-size:28px!important;width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;line-height:28px!important}i.s30,md-icon[md-font-icon].s30{font-size:30px!important;width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;line-height:30px!important}i.s32,md-icon[md-font-icon].s32{font-size:32px!important;width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;line-height:32px!important}i.s34,md-icon[md-font-icon].s34{font-size:34px!important;width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;line-height:34px!important}i.s36,md-icon[md-font-icon].s36{font-size:36px!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;line-height:36px!important}i.s38,md-icon[md-font-icon].s38{font-size:38px!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;line-height:38px!important}i.s40,md-icon[md-font-icon].s40{font-size:40px!important;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;line-height:40px!important}i.s42,md-icon[md-font-icon].s42{font-size:42px!important;width:42px!important;height:42px!important;min-width:42px!important;min-height:42px!important;line-height:42px!important}i.s44,md-icon[md-font-icon].s44{font-size:44px!important;width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;line-height:44px!important}i.s46,md-icon[md-font-icon].s46{font-size:46px!important;width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;line-height:46px!important}i.s48,md-icon[md-font-icon].s48{font-size:48px!important;width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;line-height:48px!important}i.s50,md-icon[md-font-icon].s50{font-size:50px!important;width:50px!important;height:50px!important;min-width:50px!important;min-height:50px!important;line-height:50px!important}i.s52,md-icon[md-font-icon].s52{font-size:52px!important;width:52px!important;height:52px!important;min-width:52px!important;min-height:52px!important;line-height:52px!important}i.s54,md-icon[md-font-icon].s54{font-size:54px!important;width:54px!important;height:54px!important;min-width:54px!important;min-height:54px!important;line-height:54px!important}i.s56,md-icon[md-font-icon].s56{font-size:56px!important;width:56px!important;height:56px!important;min-width:56px!important;min-height:56px!important;line-height:56px!important}i.s58,md-icon[md-font-icon].s58{font-size:58px!important;width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important;line-height:58px!important}i.s60,md-icon[md-font-icon].s60{font-size:60px!important;width:60px!important;height:60px!important;min-width:60px!important;min-height:60px!important;line-height:60px!important}i.s62,md-icon[md-font-icon].s62{font-size:62px!important;width:62px!important;height:62px!important;min-width:62px!important;min-height:62px!important;line-height:62px!important}i.s64,md-icon[md-font-icon].s64{font-size:64px!important;width:64px!important;height:64px!important;min-width:64px!important;min-height:64px!important;line-height:64px!important}i.s66,md-icon[md-font-icon].s66{font-size:66px!important;width:66px!important;height:66px!important;min-width:66px!important;min-height:66px!important;line-height:66px!important}i.s68,md-icon[md-font-icon].s68{font-size:68px!important;width:68px!important;height:68px!important;min-width:68px!important;min-height:68px!important;line-height:68px!important}i.s70,md-icon[md-font-icon].s70{font-size:70px!important;width:70px!important;height:70px!important;min-width:70px!important;min-height:70px!important;line-height:70px!important}i.s72,md-icon[md-font-icon].s72{font-size:72px!important;width:72px!important;height:72px!important;min-width:72px!important;min-height:72px!important;line-height:72px!important}i.s74,md-icon[md-font-icon].s74{font-size:74px!important;width:74px!important;height:74px!important;min-width:74px!important;min-height:74px!important;line-height:74px!important}i.s76,md-icon[md-font-icon].s76{font-size:76px!important;width:76px!important;height:76px!important;min-width:76px!important;min-height:76px!important;line-height:76px!important}i.s78,md-icon[md-font-icon].s78{font-size:78px!important;width:78px!important;height:78px!important;min-width:78px!important;min-height:78px!important;line-height:78px!important}i.s80,md-icon[md-font-icon].s80{font-size:80px!important;width:80px!important;height:80px!important;min-width:80px!important;min-height:80px!important;line-height:80px!important}i.s82,md-icon[md-font-icon].s82{font-size:82px!important;width:82px!important;height:82px!important;min-width:82px!important;min-height:82px!important;line-height:82px!important}i.s84,md-icon[md-font-icon].s84{font-size:84px!important;width:84px!important;height:84px!important;min-width:84px!important;min-height:84px!important;line-height:84px!important}i.s86,md-icon[md-font-icon].s86{font-size:86px!important;width:86px!important;height:86px!important;min-width:86px!important;min-height:86px!important;line-height:86px!important}i.s88,md-icon[md-font-icon].s88{font-size:88px!important;width:88px!important;height:88px!important;min-width:88px!important;min-height:88px!important;line-height:88px!important}i.s90,md-icon[md-font-icon].s90{font-size:90px!important;width:90px!important;height:90px!important;min-width:90px!important;min-height:90px!important;line-height:90px!important}i.s92,md-icon[md-font-icon].s92{font-size:92px!important;width:92px!important;height:92px!important;min-width:92px!important;min-height:92px!important;line-height:92px!important}i.s94,md-icon[md-font-icon].s94{font-size:94px!important;width:94px!important;height:94px!important;min-width:94px!important;min-height:94px!important;line-height:94px!important}i.s96,md-icon[md-font-icon].s96{font-size:96px!important;width:96px!important;height:96px!important;min-width:96px!important;min-height:96px!important;line-height:96px!important}i.s98,md-icon[md-font-icon].s98{font-size:98px!important;width:98px!important;height:98px!important;min-width:98px!important;min-height:98px!important;line-height:98px!important}i.s100,md-icon[md-font-icon].s100{font-size:100px!important;width:100px!important;height:100px!important;min-width:100px!important;min-height:100px!important;line-height:100px!important}i.s102,md-icon[md-font-icon].s102{font-size:102px!important;width:102px!important;height:102px!important;min-width:102px!important;min-height:102px!important;line-height:102px!important}i.s104,md-icon[md-font-icon].s104{font-size:104px!important;width:104px!important;height:104px!important;min-width:104px!important;min-height:104px!important;line-height:104px!important}i.s106,md-icon[md-font-icon].s106{font-size:106px!important;width:106px!important;height:106px!important;min-width:106px!important;min-height:106px!important;line-height:106px!important}i.s108,md-icon[md-font-icon].s108{font-size:108px!important;width:108px!important;height:108px!important;min-width:108px!important;min-height:108px!important;line-height:108px!important}i.s110,md-icon[md-font-icon].s110{font-size:110px!important;width:110px!important;height:110px!important;min-width:110px!important;min-height:110px!important;line-height:110px!important}i.s112,md-icon[md-font-icon].s112{font-size:112px!important;width:112px!important;height:112px!important;min-width:112px!important;min-height:112px!important;line-height:112px!important}i.s114,md-icon[md-font-icon].s114{font-size:114px!important;width:114px!important;height:114px!important;min-width:114px!important;min-height:114px!important;line-height:114px!important}i.s116,md-icon[md-font-icon].s116{font-size:116px!important;width:116px!important;height:116px!important;min-width:116px!important;min-height:116px!important;line-height:116px!important}i.s118,md-icon[md-font-icon].s118{font-size:118px!important;width:118px!important;height:118px!important;min-width:118px!important;min-height:118px!important;line-height:118px!important}i.s120,md-icon[md-font-icon].s120{font-size:120px!important;width:120px!important;height:120px!important;min-width:120px!important;min-height:120px!important;line-height:120px!important}i.s122,md-icon[md-font-icon].s122{font-size:122px!important;width:122px!important;height:122px!important;min-width:122px!important;min-height:122px!important;line-height:122px!important}i.s124,md-icon[md-font-icon].s124{font-size:124px!important;width:124px!important;height:124px!important;min-width:124px!important;min-height:124px!important;line-height:124px!important}i.s126,md-icon[md-font-icon].s126{font-size:126px!important;width:126px!important;height:126px!important;min-width:126px!important;min-height:126px!important;line-height:126px!important}i.s128,md-icon[md-font-icon].s128{font-size:128px!important;width:128px!important;height:128px!important;min-width:128px!important;min-height:128px!important;line-height:128px!important}i.s130,md-icon[md-font-icon].s130{font-size:130px!important;width:130px!important;height:130px!important;min-width:130px!important;min-height:130px!important;line-height:130px!important}i.s132,md-icon[md-font-icon].s132{font-size:132px!important;width:132px!important;height:132px!important;min-width:132px!important;min-height:132px!important;line-height:132px!important}i.s134,md-icon[md-font-icon].s134{font-size:134px!important;width:134px!important;height:134px!important;min-width:134px!important;min-height:134px!important;line-height:134px!important}i.s136,md-icon[md-font-icon].s136{font-size:136px!important;width:136px!important;height:136px!important;min-width:136px!important;min-height:136px!important;line-height:136px!important}i.s138,md-icon[md-font-icon].s138{font-size:138px!important;width:138px!important;height:138px!important;min-width:138px!important;min-height:138px!important;line-height:138px!important}i.s140,md-icon[md-font-icon].s140{font-size:140px!important;width:140px!important;height:140px!important;min-width:140px!important;min-height:140px!important;line-height:140px!important}i.s142,md-icon[md-font-icon].s142{font-size:142px!important;width:142px!important;height:142px!important;min-width:142px!important;min-height:142px!important;line-height:142px!important}i.s144,md-icon[md-font-icon].s144{font-size:144px!important;width:144px!important;height:144px!important;min-width:144px!important;min-height:144px!important;line-height:144px!important}i.s146,md-icon[md-font-icon].s146{font-size:146px!important;width:146px!important;height:146px!important;min-width:146px!important;min-height:146px!important;line-height:146px!important}i.s148,md-icon[md-font-icon].s148{font-size:148px!important;width:148px!important;height:148px!important;min-width:148px!important;min-height:148px!important;line-height:148px!important}i.s150,md-icon[md-font-icon].s150{font-size:150px!important;width:150px!important;height:150px!important;min-width:150px!important;min-height:150px!important;line-height:150px!important}i.s152,md-icon[md-font-icon].s152{font-size:152px!important;width:152px!important;height:152px!important;min-width:152px!important;min-height:152px!important;line-height:152px!important}i.s154,md-icon[md-font-icon].s154{font-size:154px!important;width:154px!important;height:154px!important;min-width:154px!important;min-height:154px!important;line-height:154px!important}i.s156,md-icon[md-font-icon].s156{font-size:156px!important;width:156px!important;height:156px!important;min-width:156px!important;min-height:156px!important;line-height:156px!important}i.s158,md-icon[md-font-icon].s158{font-size:158px!important;width:158px!important;height:158px!important;min-width:158px!important;min-height:158px!important;line-height:158px!important}i.s160,md-icon[md-font-icon].s160{font-size:160px!important;width:160px!important;height:160px!important;min-width:160px!important;min-height:160px!important;line-height:160px!important}i.s162,md-icon[md-font-icon].s162{font-size:162px!important;width:162px!important;height:162px!important;min-width:162px!important;min-height:162px!important;line-height:162px!important}i.s164,md-icon[md-font-icon].s164{font-size:164px!important;width:164px!important;height:164px!important;min-width:164px!important;min-height:164px!important;line-height:164px!important}i.s166,md-icon[md-font-icon].s166{font-size:166px!important;width:166px!important;height:166px!important;min-width:166px!important;min-height:166px!important;line-height:166px!important}i.s168,md-icon[md-font-icon].s168{font-size:168px!important;width:168px!important;height:168px!important;min-width:168px!important;min-height:168px!important;line-height:168px!important}i.s170,md-icon[md-font-icon].s170{font-size:170px!important;width:170px!important;height:170px!important;min-width:170px!important;min-height:170px!important;line-height:170px!important}i.s172,md-icon[md-font-icon].s172{font-size:172px!important;width:172px!important;height:172px!important;min-width:172px!important;min-height:172px!important;line-height:172px!important}i.s174,md-icon[md-font-icon].s174{font-size:174px!important;width:174px!important;height:174px!important;min-width:174px!important;min-height:174px!important;line-height:174px!important}i.s176,md-icon[md-font-icon].s176{font-size:176px!important;width:176px!important;height:176px!important;min-width:176px!important;min-height:176px!important;line-height:176px!important}i.s178,md-icon[md-font-icon].s178{font-size:178px!important;width:178px!important;height:178px!important;min-width:178px!important;min-height:178px!important;line-height:178px!important}i.s180,md-icon[md-font-icon].s180{font-size:180px!important;width:180px!important;height:180px!important;min-width:180px!important;min-height:180px!important;line-height:180px!important}i.s182,md-icon[md-font-icon].s182{font-size:182px!important;width:182px!important;height:182px!important;min-width:182px!important;min-height:182px!important;line-height:182px!important}i.s184,md-icon[md-font-icon].s184{font-size:184px!important;width:184px!important;height:184px!important;min-width:184px!important;min-height:184px!important;line-height:184px!important}i.s186,md-icon[md-font-icon].s186{font-size:186px!important;width:186px!important;height:186px!important;min-width:186px!important;min-height:186px!important;line-height:186px!important}i.s188,md-icon[md-font-icon].s188{font-size:188px!important;width:188px!important;height:188px!important;min-width:188px!important;min-height:188px!important;line-height:188px!important}i.s190,md-icon[md-font-icon].s190{font-size:190px!important;width:190px!important;height:190px!important;min-width:190px!important;min-height:190px!important;line-height:190px!important}i.s192,md-icon[md-font-icon].s192{font-size:192px!important;width:192px!important;height:192px!important;min-width:192px!important;min-height:192px!important;line-height:192px!important}i.s194,md-icon[md-font-icon].s194{font-size:194px!important;width:194px!important;height:194px!important;min-width:194px!important;min-height:194px!important;line-height:194px!important}i.s196,md-icon[md-font-icon].s196{font-size:196px!important;width:196px!important;height:196px!important;min-width:196px!important;min-height:196px!important;line-height:196px!important}i.s198,md-icon[md-font-icon].s198{font-size:198px!important;width:198px!important;height:198px!important;min-width:198px!important;min-height:198px!important;line-height:198px!important}i.s200,md-icon[md-font-icon].s200{font-size:200px!important;width:200px!important;height:200px!important;min-width:200px!important;min-height:200px!important;line-height:200px!important}i.s202,md-icon[md-font-icon].s202{font-size:202px!important;width:202px!important;height:202px!important;min-width:202px!important;min-height:202px!important;line-height:202px!important}i.s204,md-icon[md-font-icon].s204{font-size:204px!important;width:204px!important;height:204px!important;min-width:204px!important;min-height:204px!important;line-height:204px!important}i.s206,md-icon[md-font-icon].s206{font-size:206px!important;width:206px!important;height:206px!important;min-width:206px!important;min-height:206px!important;line-height:206px!important}i.s208,md-icon[md-font-icon].s208{font-size:208px!important;width:208px!important;height:208px!important;min-width:208px!important;min-height:208px!important;line-height:208px!important}i.s210,md-icon[md-font-icon].s210{font-size:210px!important;width:210px!important;height:210px!important;min-width:210px!important;min-height:210px!important;line-height:210px!important}i.s212,md-icon[md-font-icon].s212{font-size:212px!important;width:212px!important;height:212px!important;min-width:212px!important;min-height:212px!important;line-height:212px!important}i.s214,md-icon[md-font-icon].s214{font-size:214px!important;width:214px!important;height:214px!important;min-width:214px!important;min-height:214px!important;line-height:214px!important}i.s216,md-icon[md-font-icon].s216{font-size:216px!important;width:216px!important;height:216px!important;min-width:216px!important;min-height:216px!important;line-height:216px!important}i.s218,md-icon[md-font-icon].s218{font-size:218px!important;width:218px!important;height:218px!important;min-width:218px!important;min-height:218px!important;line-height:218px!important}i.s220,md-icon[md-font-icon].s220{font-size:220px!important;width:220px!important;height:220px!important;min-width:220px!important;min-height:220px!important;line-height:220px!important}i.s222,md-icon[md-font-icon].s222{font-size:222px!important;width:222px!important;height:222px!important;min-width:222px!important;min-height:222px!important;line-height:222px!important}i.s224,md-icon[md-font-icon].s224{font-size:224px!important;width:224px!important;height:224px!important;min-width:224px!important;min-height:224px!important;line-height:224px!important}i.s226,md-icon[md-font-icon].s226{font-size:226px!important;width:226px!important;height:226px!important;min-width:226px!important;min-height:226px!important;line-height:226px!important}i.s228,md-icon[md-font-icon].s228{font-size:228px!important;width:228px!important;height:228px!important;min-width:228px!important;min-height:228px!important;line-height:228px!important}i.s230,md-icon[md-font-icon].s230{font-size:230px!important;width:230px!important;height:230px!important;min-width:230px!important;min-height:230px!important;line-height:230px!important}i.s232,md-icon[md-font-icon].s232{font-size:232px!important;width:232px!important;height:232px!important;min-width:232px!important;min-height:232px!important;line-height:232px!important}i.s234,md-icon[md-font-icon].s234{font-size:234px!important;width:234px!important;height:234px!important;min-width:234px!important;min-height:234px!important;line-height:234px!important}i.s236,md-icon[md-font-icon].s236{font-size:236px!important;width:236px!important;height:236px!important;min-width:236px!important;min-height:236px!important;line-height:236px!important}i.s238,md-icon[md-font-icon].s238{font-size:238px!important;width:238px!important;height:238px!important;min-width:238px!important;min-height:238px!important;line-height:238px!important}i.s240,md-icon[md-font-icon].s240{font-size:240px!important;width:240px!important;height:240px!important;min-width:240px!important;min-height:240px!important;line-height:240px!important}i.s242,md-icon[md-font-icon].s242{font-size:242px!important;width:242px!important;height:242px!important;min-width:242px!important;min-height:242px!important;line-height:242px!important}i.s244,md-icon[md-font-icon].s244{font-size:244px!important;width:244px!important;height:244px!important;min-width:244px!important;min-height:244px!important;line-height:244px!important}i.s246,md-icon[md-font-icon].s246{font-size:246px!important;width:246px!important;height:246px!important;min-width:246px!important;min-height:246px!important;line-height:246px!important}i.s248,md-icon[md-font-icon].s248{font-size:248px!important;width:248px!important;height:248px!important;min-width:248px!important;min-height:248px!important;line-height:248px!important}i.s250,md-icon[md-font-icon].s250{font-size:250px!important;width:250px!important;height:250px!important;min-width:250px!important;min-height:250px!important;line-height:250px!important}i.s252,md-icon[md-font-icon].s252{font-size:252px!important;width:252px!important;height:252px!important;min-width:252px!important;min-height:252px!important;line-height:252px!important}i.s254,md-icon[md-font-icon].s254{font-size:254px!important;width:254px!important;height:254px!important;min-width:254px!important;min-height:254px!important;line-height:254px!important}i.s256,md-icon[md-font-icon].s256{font-size:256px!important;width:256px!important;height:256px!important;min-width:256px!important;min-height:256px!important;line-height:256px!important}@font-face{font-family:icomoon;src:url(../assets/icons/fonts/icomoon.eot?5km1tg);src:url(../assets/icons/fonts/icomoon.eot?#iefix5km1tg) format("embedded-opentype"),url(../assets/icons/fonts/icomoon.ttf?5km1tg) format("truetype"),url(../assets/icons/fonts/icomoon.woff?5km1tg) format("woff"),url(../assets/icons/fonts/icomoon.svg?5km1tg#icomoon) format("svg");font-weight:400;font-style:normal}[class*=" icon-"],[class^=icon-]{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-account-alert:before{content:"\e600"}.icon-account-box-outline:before{content:"\e601"}.icon-account-box:before{content:"\e602"}.icon-account-check:before{content:"\e603"}.icon-account-circle:before{content:"\e604"}.icon-account-key:before{content:"\e605"}.icon-account-location:before{content:"\e606"}.icon-account-minus:before{content:"\e607"}.icon-account-multiple-outline:before{content:"\e608"}.icon-account-multiple-plus:before{content:"\e609"}.icon-account-multiple:before{content:"\e60a"}.icon-account-network:before{content:"\e60b"}.icon-account-outline:before{content:"\e60c"}.icon-account-plus:before{content:"\e60d"}.icon-account-remove:before{content:"\e60e"}.icon-account-search:before{content:"\e60f"}.icon-account-switch:before{content:"\e610"}.icon-account:before{content:"\e611"}.icon-airballoon:before{content:"\e612"}.icon-airplane-off:before{content:"\e613"}.icon-airplane:before{content:"\e614"}.icon-alarm-check:before{content:"\e615"}.icon-alarm-multiple:before{content:"\e616"}.icon-alarm-off:before{content:"\e617"}.icon-alarm-plus:before{content:"\e618"}.icon-alarm:before{content:"\e619"}.icon-album:before{content:"\e61a"}.icon-alert-box:before{content:"\e61b"}.icon-alert-circle:before{content:"\e61c"}.icon-alert-octagon:before{content:"\e61d"}.icon-alert:before{content:"\e61e"}.icon-alpha:before{content:"\e61f"}.icon-alphabetical:before{content:"\e620"}.icon-amazon-clouddrive:before{content:"\e621"}.icon-amazon:before{content:"\e622"}.icon-ambulance:before{content:"\e623"}.icon-android-debug-bridge:before{content:"\e624"}.icon-android-studio:before{content:"\e625"}.icon-android:before{content:"\e626"}.icon-apple-finder:before{content:"\e627"}.icon-apple-ios:before{content:"\e628"}.icon-apple-mobileme:before{content:"\e629"}.icon-apple-safari:before{content:"\e62a"}.icon-apple:before{content:"\e62b"}.icon-appnet:before{content:"\e62c"}.icon-apps:before{content:"\e62d"}.icon-archive:before{content:"\e62e"}.icon-arrange-bring-forward:before{content:"\e62f"}.icon-arrange-bring-to-front:before{content:"\e630"}.icon-arrange-send-backward:before{content:"\e631"}.icon-arrange-send-to-back:before{content:"\e632"}.icon-arrow-all:before{content:"\e633"}.icon-arrow-bottom-left:before{content:"\e634"}.icon-arrow-bottom-right:before{content:"\e635"}.icon-arrow-collapse:before{content:"\e636"}.icon-arrow-down-bold-circle-outline:before{content:"\e637"}.icon-arrow-down-bold-circle:before{content:"\e638"}.icon-arrow-down-bold-hexagon-outline:before{content:"\e639"}.icon-arrow-down-bold:before{content:"\e63a"}.icon-arrow-down:before{content:"\e63b"}.icon-arrow-expand:before{content:"\e63c"}.icon-arrow-left-bold-circle-outline:before{content:"\e63d"}.icon-arrow-left-bold-circle:before{content:"\e63e"}.icon-arrow-left-bold-hexagon-outline:before{content:"\e63f"}.icon-arrow-left-bold:before{content:"\e640"}.icon-arrow-left:before{content:"\e641"}.icon-arrow-right-bold-circle-outline:before{content:"\e642"}.icon-arrow-right-bold-circle:before{content:"\e643"}.icon-arrow-right-bold-hexagon-outline:before{content:"\e644"}.icon-arrow-right-bold:before{content:"\e645"}.icon-arrow-right:before{content:"\e646"}.icon-arrow-top-left:before{content:"\e647"}.icon-arrow-top-right:before{content:"\e648"}.icon-arrow-up-bold-circle-outline:before{content:"\e649"}.icon-arrow-up-bold-circle:before{content:"\e64a"}.icon-arrow-up-bold-hexagon-outline:before{content:"\e64b"}.icon-arrow-up-bold:before{content:"\e64c"}.icon-arrow-up:before{content:"\e64d"}.icon-at:before{content:"\e64e"}.icon-attachment:before{content:"\e64f"}.icon-audiobook:before{content:"\e650"}.icon-auto-fix:before{content:"\e651"}.icon-auto-upload:before{content:"\e652"}.icon-baby:before{content:"\e653"}.icon-backburger:before{content:"\e654"}.icon-backup-restore:before{content:"\e655"}.icon-bank:before{content:"\e656"}.icon-barcode:before{content:"\e657"}.icon-barley:before{content:"\e658"}.icon-barrel:before{content:"\e659"}.icon-basecamp:before{content:"\e65a"}.icon-basket-fill:before{content:"\e65b"}.icon-basket-unfill:before{content:"\e65c"}.icon-basket:before{content:"\e65d"}.icon-battery-10:before{content:"\e65e"}.icon-battery-20:before{content:"\e65f"}.icon-battery-30:before{content:"\e660"}.icon-battery-40:before{content:"\e661"}.icon-battery-50:before{content:"\e662"}.icon-battery-60:before{content:"\e663"}.icon-battery-70:before{content:"\e664"}.icon-battery-80:before{content:"\e665"}.icon-battery-90:before{content:"\e666"}.icon-battery-alert:before{content:"\e667"}.icon-battery-charging-20:before{content:"\e668"}.icon-battery-charging-30:before{content:"\e669"}.icon-battery-charging-40:before{content:"\e66a"}.icon-battery-charging-60:before{content:"\e66b"}.icon-battery-charging-80:before{content:"\e66c"}.icon-battery-charging-90:before{content:"\e66d"}.icon-battery-charging-100:before{content:"\e66e"}.icon-battery-minus:before{content:"\e66f"}.icon-battery-negative:before{content:"\e670"}.icon-battery-outline:before{content:"\e671"}.icon-battery-plus:before{content:"\e672"}.icon-battery-positive:before{content:"\e673"}.icon-battery-standard:before{content:"\e674"}.icon-battery-unknown:before{content:"\e675"}.icon-battery:before{content:"\e676"}.icon-beach:before{content:"\e677"}.icon-beaker-empty-outline:before{content:"\e678"}.icon-beaker-empty:before{content:"\e679"}.icon-beaker-outline:before{content:"\e67a"}.icon-beaker:before{content:"\e67b"}.icon-beats:before{content:"\e67c"}.icon-beer:before{content:"\e67d"}.icon-behance:before{content:"\e67e"}.icon-bell-off:before{content:"\e67f"}.icon-bell-outline:before{content:"\e680"}.icon-bell-ring-outline:before{content:"\e681"}.icon-bell-ring:before{content:"\e682"}.icon-bell-sleep:before{content:"\e683"}.icon-bell:before{content:"\e684"}.icon-beta:before{content:"\e685"}.icon-bike:before{content:"\e686"}.icon-bing:before{content:"\e687"}.icon-binoculars:before{content:"\e688"}.icon-bio:before{content:"\e689"}.icon-bitbucket:before{content:"\e68a"}.icon-black-mesa:before{content:"\e68b"}.icon-blackberry:before{content:"\e68c"}.icon-blinds:before{content:"\e68d"}.icon-block-helper:before{content:"\e68e"}.icon-blogger:before{content:"\e68f"}.icon-bluetooth-audio:before{content:"\e690"}.icon-bluetooth-connect:before{content:"\e691"}.icon-bluetooth-settings:before{content:"\e692"}.icon-bluetooth-transfer:before{content:"\e693"}.icon-bluetooth:before{content:"\e694"}.icon-blur-linear:before{content:"\e695"}.icon-blur-off:before{content:"\e696"}.icon-blur-radial:before{content:"\e697"}.icon-blur:before{content:"\e698"}.icon-bone:before{content:"\e699"}.icon-book-multiple-variant:before{content:"\e69a"}.icon-book-multiple:before{content:"\e69b"}.icon-book-open:before{content:"\e69c"}.icon-book-variant:before{content:"\e69d"}.icon-book:before{content:"\e69e"}.icon-bookmark-check:before{content:"\e69f"}.icon-bookmark-music:before{content:"\e6a0"}.icon-bookmark-outline-plus:before{content:"\e6a1"}.icon-bookmark-outline:before{content:"\e6a2"}.icon-bookmark-plus:before{content:"\e6a3"}.icon-bookmark-remove:before{content:"\e6a4"}.icon-bookmark:before{content:"\e6a5"}.icon-border-all:before{content:"\e6a6"}.icon-border-bottom:before{content:"\e6a7"}.icon-border-color:before{content:"\e6a8"}.icon-border-horizontal:before{content:"\e6a9"}.icon-border-inside:before{content:"\e6aa"}.icon-border-left:before{content:"\e6ab"}.icon-border-none:before{content:"\e6ac"}.icon-border-outside:before{content:"\e6ad"}.icon-border-right:before{content:"\e6ae"}.icon-border-top:before{content:"\e6af"}.icon-border-vertical:before{content:"\e6b0"}.icon-bowling:before{content:"\e6b1"}.icon-box-download:before{content:"\e6b2"}.icon-box-upload:before{content:"\e6b3"}.icon-box:before{content:"\e6b4"}.icon-briefcase-checked:before{content:"\e6b5"}.icon-briefcase-download:before{content:"\e6b6"}.icon-briefcase-upload:before{content:"\e6b7"}.icon-briefcase:before{content:"\e6b8"}.icon-brightness-1:before{content:"\e6b9"}.icon-brightness-2:before{content:"\e6ba"}.icon-brightness-3:before{content:"\e6bb"}.icon-brightness-4:before{content:"\e6bc"}.icon-brightness-5:before{content:"\e6bd"}.icon-brightness-6:before{content:"\e6be"}.icon-brightness-7:before{content:"\e6bf"}.icon-brightness-auto:before{content:"\e6c0"}.icon-brightness:before{content:"\e6c1"}.icon-broom:before{content:"\e6c2"}.icon-brush:before{content:"\e6c3"}.icon-bug:before{content:"\e6c4"}.icon-bulletin-board:before{content:"\e6c5"}.icon-bullhorn:before{content:"\e6c6"}.icon-bus:before{content:"\e6c7"}.icon-cake-variant:before{content:"\e6c8"}.icon-cake:before{content:"\e6c9"}.icon-calculator:before{content:"\e6ca"}.icon-calendar-blank:before{content:"\e6cb"}.icon-calendar-check-multiple:before{content:"\e6cc"}.icon-calendar-check:before{content:"\e6cd"}.icon-calendar-clock:before{content:"\e6ce"}.icon-calendar-multiple:before{content:"\e6cf"}.icon-calendar-plus:before{content:"\e6d0"}.icon-calendar-remove:before{content:"\e6d1"}.icon-calendar-select:before{content:"\e6d2"}.icon-calendar-text:before{content:"\e6d3"}.icon-calendar-today:before{content:"\e6d4"}.icon-calendar:before{content:"\e6d5"}.icon-camcorder-box-off:before{content:"\e6d6"}.icon-camcorder-box:before{content:"\e6d7"}.icon-camcorder-off:before{content:"\e6d8"}.icon-camcorder:before{content:"\e6d9"}.icon-camera-front-variant:before{content:"\e6da"}.icon-camera-front:before{content:"\e6db"}.icon-camera-iris:before{content:"\e6dc"}.icon-camera-party-mode:before{content:"\e6dd"}.icon-camera-rear-variant:before{content:"\e6de"}.icon-camera-rear:before{content:"\e6df"}.icon-camera-switch:before{content:"\e6e0"}.icon-camera-timer:before{content:"\e6e1"}.icon-camera:before{content:"\e6e2"}.icon-cancel:before{content:"\e6e3"}.icon-candycane:before{content:"\e6e4"}.icon-car-wash:before{content:"\e6e5"}.icon-car:before{content:"\e6e6"}.icon-carrot:before{content:"\e6e7"}.icon-cart-outline:before{content:"\e6e8"}.icon-cart:before{content:"\e6e9"}.icon-cash-100:before{content:"\e6ea"}.icon-cash-multiple:before{content:"\e6eb"}.icon-cash-usd:before{content:"\e6ec"}.icon-cash:before{content:"\e6ed"}.icon-cast-connected:before{content:"\e6ee"}.icon-cast:before{content:"\e6ef"}.icon-castle:before{content:"\e6f0"}.icon-cat:before{content:"\e6f1"}.icon-cellphone-android:before{content:"\e6f2"}.icon-cellphone-dock:before{content:"\e6f3"}.icon-cellphone-iphone:before{content:"\e6f4"}.icon-cellphone-link-off:before{content:"\e6f5"}.icon-cellphone-link:before{content:"\e6f6"}.icon-cellphone-settings:before{content:"\e6f7"}.icon-cellphone:before{content:"\e6f8"}.icon-chair-school:before{content:"\e6f9"}.icon-chart-arc:before{content:"\e6fa"}.icon-chart-areaspline:before{content:"\e6fb"}.icon-chart-bar:before{content:"\e6fc"}.icon-chart-histogram:before{content:"\e6fd"}.icon-chart-line:before{content:"\e6fe"}.icon-chart-pie:before{content:"\e6ff"}.icon-check-all:before{content:"\e700"}.icon-check-bookmark:before{content:"\e701"}.icon-check-circle:before{content:"\e702"}.icon-check:before{content:"\e703"}.icon-checkbox-blank-circle-outline:before{content:"\e704"}.icon-checkbox-blank-circle:before{content:"\e705"}.icon-checkbox-blank-outline:before{content:"\e706"}.icon-checkbox-blank:before{content:"\e707"}.icon-checkbox-marked-circle-outline:before{content:"\e708"}.icon-checkbox-marked-circle:before{content:"\e709"}.icon-checkbox-marked-outline:before{content:"\e70a"}.icon-checkbox-marked:before{content:"\e70b"}.icon-checkbox-multiple-blank-outline:before{content:"\e70c"}.icon-checkbox-multiple-blank:before{content:"\e70d"}.icon-checkbox-multiple-marked-outline:before{content:"\e70e"}.icon-checkbox-multiple-marked:before{content:"\e70f"}.icon-checkerboard:before{content:"\e710"}.icon-chevron-double-down:before{content:"\e711"}.icon-chevron-double-left:before{content:"\e712"}.icon-chevron-double-right:before{content:"\e713"}.icon-chevron-double-up:before{content:"\e714"}.icon-chevron-down:before{content:"\e715"}.icon-chevron-left:before{content:"\e716"}.icon-chevron-right:before{content:"\e717"}.icon-chevron-up:before{content:"\e718"}.icon-church:before{content:"\e719"}.icon-cisco-webex:before{content:"\e71a"}.icon-city:before{content:"\e71b"}.icon-clapperboard:before{content:"\e71c"}.icon-clipboard-account:before{content:"\e71d"}.icon-clipboard-alert:before{content:"\e71e"}.icon-clipboard-arrow-down:before{content:"\e71f"}.icon-clipboard-arrow-left:before{content:"\e720"}.icon-clipboard-check:before{content:"\e721"}.icon-clipboard-outline:before{content:"\e722"}.icon-clipboard-text:before{content:"\e723"}.icon-clipboard:before{content:"\e724"}.icon-clippy:before{content:"\e725"}.icon-clock-fast:before{content:"\e726"}.icon-clock:before{content:"\e727"}.icon-close-circle-outline:before{content:"\e728"}.icon-close-circle:before{content:"\e729"}.icon-close-network:before{content:"\e72a"}.icon-close:before{content:"\e72b"}.icon-closed-caption:before{content:"\e72c"}.icon-cloud-check:before{content:"\e72d"}.icon-cloud-circle:before{content:"\e72e"}.icon-cloud-download:before{content:"\e72f"}.icon-cloud-outline-off:before{content:"\e730"}.icon-cloud-outline:before{content:"\e731"}.icon-cloud-upload:before{content:"\e732"}.icon-cloud:before{content:"\e733"}.icon-code-array:before{content:"\e734"}.icon-code-braces:before{content:"\e735"}.icon-code-equal:before{content:"\e736"}.icon-code-greater-than-or-equal:before{content:"\e737"}.icon-code-greater-than:before{content:"\e738"}.icon-code-less-than-or-equal:before{content:"\e739"}.icon-code-less-than:before{content:"\e73a"}.icon-code-not-equal-variant:before{content:"\e73b"}.icon-code-not-equal:before{content:"\e73c"}.icon-code-string:before{content:"\e73d"}.icon-code-tags:before{content:"\e73e"}.icon-codepen:before{content:"\e73f"}.icon-coffee-to-go:before{content:"\e740"}.icon-coffee:before{content:"\e741"}.icon-cog-box:before{content:"\e742"}.icon-cog:before{content:"\e743"}.icon-coin:before{content:"\e744"}.icon-color-helper:before{content:"\e745"}.icon-comment-account-outline:before{content:"\e746"}.icon-comment-account:before{content:"\e747"}.icon-comment-alert-outline:before{content:"\e748"}.icon-comment-alert:before{content:"\e749"}.icon-comment-check-outline:before{content:"\e74a"}.icon-comment-check:before{content:"\e74b"}.icon-comment-multipe-outline:before{content:"\e74c"}.icon-comment-outline:before{content:"\e74d"}.icon-comment-plus-outline:before{content:"\e74e"}.icon-comment-processing-outline:before{content:"\e74f"}.icon-comment-processing:before{content:"\e750"}.icon-comment-remove-outline:before{content:"\e751"}.icon-comment-text-outline:before{content:"\e752"}.icon-comment-text:before{content:"\e753"}.icon-comment:before{content:"\e754"}.icon-compare:before{content:"\e755"}.icon-compass-outline:before{content:"\e756"}.icon-compass:before{content:"\e757"}.icon-console:before{content:"\e758"}.icon-content-copy:before{content:"\e759"}.icon-content-cut:before{content:"\e75a"}.icon-content-duplicate:before{content:"\e75b"}.icon-content-paste:before{content:"\e75c"}.icon-content-save-all:before{content:"\e75d"}.icon-content-save:before{content:"\e75e"}.icon-contrast-box:before{content:"\e75f"}.icon-contrast-circle:before{content:"\e760"}.icon-contrast:before{content:"\e761"}.icon-controller-xbox:before{content:"\e762"}.icon-cow:before{content:"\e763"}.icon-credit-card-multiple:before{content:"\e764"}.icon-credit-card:before{content:"\e765"}.icon-crop-free:before{content:"\e766"}.icon-crop-landscape:before{content:"\e767"}.icon-crop-portrait:before{content:"\e768"}.icon-crop-square:before{content:"\e769"}.icon-crop:before{content:"\e76a"}.icon-crosshairs-gps:before{content:"\e76b"}.icon-crosshairs:before{content:"\e76c"}.icon-crown:before{content:"\e76d"}.icon-cube-outline:before{content:"\e76e"}.icon-cube-unfolded:before{content:"\e76f"}.icon-cube:before{content:"\e770"}.icon-cup-water:before{content:"\e771"}.icon-cup:before{content:"\e772"}.icon-currency-btc:before{content:"\e773"}.icon-currency-eur:before{content:"\e774"}.icon-currency-gbp:before{content:"\e775"}.icon-currency-inr:before{content:"\e776"}.icon-currency-rub:before{content:"\e777"}.icon-currency-try:before{content:"\e778"}.icon-currency-usd:before{content:"\e779"}.icon-cursor-default-outline:before{content:"\e77a"}.icon-cursor-default:before{content:"\e77b"}.icon-cursor-move:before{content:"\e77c"}.icon-cursor-pointer:before{content:"\e77d"}.icon-data:before{content:"\e77e"}.icon-debug-step-into:before{content:"\e77f"}.icon-debug-step-out:before{content:"\e780"}.icon-debug-step-over:before{content:"\e781"}.icon-decimal-decrease:before{content:"\e782"}.icon-decimal-increase:before{content:"\e783"}.icon-delete-variant:before{content:"\e784"}.icon-delete:before{content:"\e785"}.icon-deskphone:before{content:"\e786"}.icon-desktop-mac:before{content:"\e787"}.icon-desktop-tower:before{content:"\e788"}.icon-details:before{content:"\e789"}.icon-deviantart:before{content:"\e78a"}.icon-diamond:before{content:"\e78b"}.icon-dice-1:before{content:"\e78c"}.icon-dice-2:before{content:"\e78d"}.icon-dice-3:before{content:"\e78e"}.icon-dice-4:before{content:"\e78f"}.icon-dice-5:before{content:"\e790"}.icon-dice-6:before{content:"\e791"}.icon-dice:before{content:"\e792"}.icon-directions:before{content:"\e793"}.icon-disk-alert:before{content:"\e794"}.icon-disqus-outline:before{content:"\e795"}.icon-disqus:before{content:"\e796"}.icon-division-box:before{content:"\e797"}.icon-division:before{content:"\e798"}.icon-dns:before{content:"\e799"}.icon-document:before{content:"\e79a"}.icon-domain:before{content:"\e79b"}.icon-dots-horizontal:before{content:"\e79c"}.icon-dots-vertical:before{content:"\e79d"}.icon-download:before{content:"\e79e"}.icon-drag-horizontal:before{content:"\e79f"}.icon-drag-vertical:before{content:"\e7a0"}.icon-drag:before{content:"\e7a1"}.icon-drawing-box:before{content:"\e7a2"}.icon-drawing:before{content:"\e7a3"}.icon-dribbble-box:before{content:"\e7a4"}.icon-dribbble:before{content:"\e7a5"}.icon-drone:before{content:"\e7a6"}.icon-dropbox:before{content:"\e7a7"}.icon-drupal:before{content:"\e7a8"}.icon-duck:before{content:"\e7a9"}.icon-dumbbell:before{content:"\e7aa"}.icon-earth-off:before{content:"\e7ab"}.icon-earth:before{content:"\e7ac"}.icon-ebay:before{content:"\e7ad"}.icon-edge:before{content:"\e7ae"}.icon-eject:before{content:"\e7af"}.icon-elevation-decline:before{content:"\e7b0"}.icon-elevation-rise:before{content:"\e7b1"}.icon-elevator:before{content:"\e7b2"}.icon-email-open:before{content:"\e7b3"}.icon-email-secure:before{content:"\e7b4"}.icon-email:before{content:"\e7b5"}.icon-emoticon-cool:before{content:"\e7b6"}.icon-emoticon-devil:before{content:"\e7b7"}.icon-emoticon-happy:before{content:"\e7b8"}.icon-emoticon-neutral:before{content:"\e7b9"}.icon-emoticon-poop:before{content:"\e7ba"}.icon-emoticon-sad:before{content:"\e7bb"}.icon-emoticon-tongue:before{content:"\e7bc"}.icon-emoticon:before{content:"\e7bd"}.icon-engine-outline:before{content:"\e7be"}.icon-engine:before{content:"\e7bf"}.icon-equal-box:before{content:"\e7c0"}.icon-equal:before{content:"\e7c1"}.icon-eraser:before{content:"\e7c2"}.icon-escalator:before{content:"\e7c3"}.icon-etsy:before{content:"\e7c4"}.icon-evernote:before{content:"\e7c5"}.icon-exclamation:before{content:"\e7c6"}.icon-exit-to-app:before{content:"\e7c7"}.icon-export:before{content:"\e7c8"}.icon-eye-off:before{content:"\e7c9"}.icon-eye:before{content:"\e7ca"}.icon-eyedropper-variant:before{content:"\e7cb"}.icon-eyedropper:before{content:"\e7cc"}.icon-facebook-box:before{content:"\e7cd"}.icon-facebook:before{content:"\e7ce"}.icon-factory:before{content:"\e7cf"}.icon-fan:before{content:"\e7d0"}.icon-fast-forward:before{content:"\e7d1"}.icon-ferry:before{content:"\e7d2"}.icon-file-cloud:before{content:"\e7d3"}.icon-file-delimited:before{content:"\e7d4"}.icon-file-document-box:before{content:"\e7d5"}.icon-file-document:before{content:"\e7d6"}.icon-file-excel-box:before{content:"\e7d7"}.icon-file-excel:before{content:"\e7d8"}.icon-file-find:before{content:"\e7d9"}.icon-file-hidden:before{content:"\e7da"}.icon-file-image-box:before{content:"\e7db"}.icon-file-image:before{content:"\e7dc"}.icon-file-multiple:before{content:"\e7dd"}.icon-file-music:before{content:"\e7de"}.icon-file-outline:before{content:"\e7df"}.icon-file-pdf-box:before{content:"\e7e0"}.icon-file-pdf:before{content:"\e7e1"}.icon-file-powerpoint-box:before{content:"\e7e2"}.icon-file-powerpoint:before{content:"\e7e3"}.icon-file-presentation-box:before{content:"\e7e4"}.icon-file-video:before{content:"\e7e5"}.icon-file-word-box:before{content:"\e7e6"}.icon-file-word:before{content:"\e7e7"}.icon-file-xml:before{content:"\e7e8"}.icon-file:before{content:"\e7e9"}.icon-fill:before{content:"\e7ea"}.icon-film:before{content:"\e7eb"}.icon-filmstrip-off:before{content:"\e7ec"}.icon-filmstrip:before{content:"\e7ed"}.icon-filter-outline:before{content:"\e7ee"}.icon-filter-remove-outline:before{content:"\e7ef"}.icon-filter-remove:before{content:"\e7f0"}.icon-filter-variant:before{content:"\e7f1"}.icon-filter:before{content:"\e7f2"}.icon-fire:before{content:"\e7f3"}.icon-fish:before{content:"\e7f4"}.icon-flag-checkered-variant:before{content:"\e7f5"}.icon-flag-checkered:before{content:"\e7f6"}.icon-flag-outline-variant:before{content:"\e7f7"}.icon-flag-outline:before{content:"\e7f8"}.icon-flag-triangle:before{content:"\e7f9"}.icon-flag-variant:before{content:"\e7fa"}.icon-flag:before{content:"\e7fb"}.icon-flash-auto:before{content:"\e7fc"}.icon-flash-off:before{content:"\e7fd"}.icon-flash:before{content:"\e7fe"}.icon-flashlight-off:before{content:"\e7ff"}.icon-flashlight:before{content:"\e800"}.icon-flattr:before{content:"\e801"}.icon-flickr-after:before{content:"\e802"}.icon-flickr-before:before{content:"\e803"}.icon-flip-to-back:before{content:"\e804"}.icon-flip-to-front:before{content:"\e805"}.icon-floppy:before{content:"\e806"}.icon-flower:before{content:"\e807"}.icon-folder-account:before{content:"\e808"}.icon-folder-download:before{content:"\e809"}.icon-folder-google-drive:before{content:"\e80a"}.icon-folder-image:before{content:"\e80b"}.icon-folder-lock-open:before{content:"\e80c"}.icon-folder-lock:before{content:"\e80d"}.icon-folder-move:before{content:"\e80e"}.icon-folder-multiple-image:before{content:"\e80f"}.icon-folder-multiple-outline:before{content:"\e810"}.icon-folder-multiple:before{content:"\e811"}.icon-folder-outline-lock:before{content:"\e812"}.icon-folder-outline:before{content:"\e813"}.icon-folder-plus:before{content:"\e814"}.icon-folder-remove:before{content:"\e815"}.icon-folder-upload:before{content:"\e816"}.icon-folder:before{content:"\e817"}.icon-food-apple:before{content:"\e818"}.icon-food-variant:before{content:"\e819"}.icon-food:before{content:"\e81a"}.icon-football-helmet:before{content:"\e81b"}.icon-football:before{content:"\e81c"}.icon-format-align-center:before{content:"\e81d"}.icon-format-align-justify:before{content:"\e81e"}.icon-format-align-left:before{content:"\e81f"}.icon-format-align-right:before{content:"\e820"}.icon-format-bold:before{content:"\e821"}.icon-format-clear:before{content:"\e822"}.icon-format-color-fill:before{content:"\e823"}.icon-format-color:before{content:"\e824"}.icon-format-float-center:before{content:"\e825"}.icon-format-float-left:before{content:"\e826"}.icon-format-float-none:before{content:"\e827"}.icon-format-float-right:before{content:"\e828"}.icon-format-header-1:before{content:"\e829"}.icon-format-header-2:before{content:"\e82a"}.icon-format-header-3:before{content:"\e82b"}.icon-format-header-4:before{content:"\e82c"}.icon-format-header-5:before{content:"\e82d"}.icon-format-header-6:before{content:"\e82e"}.icon-format-header-decrease:before{content:"\e82f"}.icon-format-header-down:before{content:"\e830"}.icon-format-header-equal:before{content:"\e831"}.icon-format-header-increase:before{content:"\e832"}.icon-format-header-pound:before{content:"\e833"}.icon-format-header-up:before{content:"\e834"}.icon-format-indent-decrease:before{content:"\e835"}.icon-format-indent-increase:before{content:"\e836"}.icon-format-italic:before{content:"\e837"}.icon-format-line-spacing:before{content:"\e838"}.icon-format-list-bulleted:before{content:"\e839"}.icon-format-list-numbers:before{content:"\e83a"}.icon-format-object-inline:before{content:"\e83b"}.icon-format-object-square:before{content:"\e83c"}.icon-format-object-tight:before{content:"\e83d"}.icon-format-object-top-bottom:before{content:"\e83e"}.icon-format-paint:before{content:"\e83f"}.icon-format-paragraph:before{content:"\e840"}.icon-format-quote:before{content:"\e841"}.icon-format-size:before{content:"\e842"}.icon-format-strikethrough:before{content:"\e843"}.icon-format-subscript:before{content:"\e844"}.icon-format-superscript:before{content:"\e845"}.icon-format-text:before{content:"\e846"}.icon-format-textdirection-l-to-r:before{content:"\e847"}.icon-format-textdirection-r-to-l:before{content:"\e848"}.icon-format-underline:before{content:"\e849"}.icon-forum:before{content:"\e84a"}.icon-forward:before{content:"\e84b"}.icon-foursquare:before{content:"\e84c"}.icon-fridge:before{content:"\e84d"}.icon-fullscreen-exit:before{content:"\e84e"}.icon-fullscreen:before{content:"\e84f"}.icon-function:before{content:"\e850"}.icon-gamepad-variant:before{content:"\e851"}.icon-gamepad:before{content:"\e852"}.icon-gas-station:before{content:"\e853"}.icon-gavel:before{content:"\e854"}.icon-gender-female:before{content:"\e855"}.icon-gender-male-female:before{content:"\e856"}.icon-gender-male:before{content:"\e857"}.icon-gender-transgender:before{content:"\e858"}.icon-gift:before{content:"\e859"}.icon-git:before{content:"\e85a"}.icon-github-box:before{content:"\e85b"}.icon-github:before{content:"\e85c"}.icon-glass-flute:before{content:"\e85d"}.icon-glass-mug:before{content:"\e85e"}.icon-glass-stange:before{content:"\e85f"}.icon-glass-tulip:before{content:"\e860"}.icon-glasses:before{content:"\e861"}.icon-gmail:before{content:"\e862"}.icon-google-chrome:before{content:"\e863"}.icon-google-circles-communities:before{content:"\e864"}.icon-google-circles-extended:before{content:"\e865"}.icon-google-circles-invite:before{content:"\e866"}.icon-google-circles:before{content:"\e867"}.icon-google-controller-off:before{content:"\e868"}.icon-google-controller:before{content:"\e869"}.icon-google-drive:before{content:"\e86a"}.icon-google-earth:before{content:"\e86b"}.icon-google-glass:before{content:"\e86c"}.icon-google-maps:before{content:"\e86d"}.icon-google-pages:before{content:"\e86e"}.icon-google-play:before{content:"\e86f"}.icon-google-plus-box:before{content:"\e870"}.icon-google-plus:before{content:"\e871"}.icon-google:before{content:"\e872"}.icon-grid-off:before{content:"\e873"}.icon-grid:before{content:"\e874"}.icon-group:before{content:"\e875"}.icon-hand-pointing-right:before{content:"\e876"}.icon-hanger:before{content:"\e877"}.icon-hangouts:before{content:"\e878"}.icon-harddisk:before{content:"\e879"}.icon-headphones-box:before{content:"\e87a"}.icon-headphones-dots:before{content:"\e87b"}.icon-headphones:before{content:"\e87c"}.icon-headset-dock:before{content:"\e87d"}.icon-headset-off:before{content:"\e87e"}.icon-headset:before{content:"\e87f"}.icon-heart-box-outline:before{content:"\e880"}.icon-heart-box:before{content:"\e881"}.icon-heart-broken:before{content:"\e882"}.icon-heart-outline:before{content:"\e883"}.icon-heart:before{content:"\e884"}.icon-help-circle:before{content:"\e885"}.icon-help:before{content:"\e886"}.icon-hexagon-outline:before{content:"\e887"}.icon-hexagon:before{content:"\e888"}.icon-history:before{content:"\e889"}.icon-hololens:before{content:"\e88a"}.icon-home-modern:before{content:"\e88b"}.icon-home-variant:before{content:"\e88c"}.icon-home:before{content:"\e88d"}.icon-hops:before{content:"\e88e"}.icon-hospital-building:before{content:"\e88f"}.icon-hospital-marker:before{content:"\e890"}.icon-hospital:before{content:"\e891"}.icon-hotel:before{content:"\e892"}.icon-houzz-box:before{content:"\e893"}.icon-human-child:before{content:"\e894"}.icon-human-male-female:before{content:"\e895"}.icon-human:before{content:"\e896"}.icon-image-album:before{content:"\e897"}.icon-image-area-close:before{content:"\e898"}.icon-image-area:before{content:"\e899"}.icon-image-broken:before{content:"\e89a"}.icon-image-filter-black-white:before{content:"\e89b"}.icon-image-filter-center-focus:before{content:"\e89c"}.icon-image-filter-drama:before{content:"\e89d"}.icon-image-filter-frames:before{content:"\e89e"}.icon-image-filter-hdr:before{content:"\e89f"}.icon-image-filter-none:before{content:"\e8a0"}.icon-image-filter-tilt-shift:before{content:"\e8a1"}.icon-image-filter-vintage:before{content:"\e8a2"}.icon-image-filter:before{content:"\e8a3"}.icon-image:before{content:"\e8a4"}.icon-import:before{content:"\e8a5"}.icon-inbox:before{content:"\e8a6"}.icon-indent:before{content:"\e8a7"}.icon-information-outline:before{content:"\e8a8"}.icon-information:before{content:"\e8a9"}.icon-instagram:before{content:"\e8aa"}.icon-instapaper:before{content:"\e8ab"}.icon-internet-explorer:before{content:"\e8ac"}.icon-invert-colors:before{content:"\e8ad"}.icon-jira:before{content:"\e8ae"}.icon-jsfiddle:before{content:"\e8af"}.icon-keg:before{content:"\e8b0"}.icon-key-change:before{content:"\e8b1"}.icon-key-minus:before{content:"\e8b2"}.icon-key-plus:before{content:"\e8b3"}.icon-key-remove:before{content:"\e8b4"}.icon-key-variant:before{content:"\e8b5"}.icon-key:before{content:"\e8b6"}.icon-keyboard-backspace:before{content:"\e8b7"}.icon-keyboard-caps:before{content:"\e8b8"}.icon-keyboard-close:before{content:"\e8b9"}.icon-keyboard-off:before{content:"\e8ba"}.icon-keyboard-return:before{content:"\e8bb"}.icon-keyboard-tab:before{content:"\e8bc"}.icon-keyboard-variant:before{content:"\e8bd"}.icon-keyboard:before{content:"\e8be"}.icon-label-outline:before{content:"\e8bf"}.icon-label:before{content:"\e8c0"}.icon-language-csharp:before{content:"\e8c1"}.icon-language-css3:before{content:"\e8c2"}.icon-language-html5:before{content:"\e8c3"}.icon-language-javascript:before{content:"\e8c4"}.icon-language-python-text:before{content:"\e8c5"}.icon-language-python:before{content:"\e8c6"}.icon-laptop-chromebook:before{content:"\e8c7"}.icon-laptop-mac:before{content:"\e8c8"}.icon-laptop-windows:before{content:"\e8c9"}.icon-laptop:before{content:"\e8ca"}.icon-lastfm:before{content:"\e8cb"}.icon-launch:before{content:"\e8cc"}.icon-layers-off:before{content:"\e8cd"}.icon-layers:before{content:"\e8ce"}.icon-leaf:before{content:"\e8cf"}.icon-library-books:before{content:"\e8d0"}.icon-library-music:before{content:"\e8d1"}.icon-library-plus:before{content:"\e8d2"}.icon-library:before{content:"\e8d3"}.icon-lightbulb-outline:before{content:"\e8d4"}.icon-lightbulb:before{content:"\e8d5"}.icon-link-off:before{content:"\e8d6"}.icon-link-variant-off:before{content:"\e8d7"}.icon-link-variant:before{content:"\e8d8"}.icon-link:before{content:"\e8d9"}.icon-linkedin-box:before{content:"\e8da"}.icon-linkedin:before{content:"\e8db"}.icon-linode:before{content:"\e8dc"}.icon-linux:before{content:"\e8dd"}.icon-lock-outline:before{content:"\e8de"}.icon-lock-unlocked-outline:before{content:"\e8df"}.icon-lock-unlocked:before{content:"\e8e0"}.icon-lock:before{content:"\e8e1"}.icon-login:before{content:"\e8e2"}.icon-logout:before{content:"\e8e3"}.icon-looks:before{content:"\e8e4"}.icon-loupe:before{content:"\e8e5"}.icon-lumx:before{content:"\e8e6"}.icon-magnet-on:before{content:"\e8e7"}.icon-magnet:before{content:"\e8e8"}.icon-magnify-minus:before{content:"\e8e9"}.icon-magnify-plus:before{content:"\e8ea"}.icon-magnify:before{content:"\e8eb"}.icon-mail-ru:before{content:"\e8ec"}.icon-map-marker-circle:before{content:"\e8ed"}.icon-map-marker-multiple:before{content:"\e8ee"}.icon-map-marker-off:before{content:"\e8ef"}.icon-map-marker-radius:before{content:"\e8f0"}.icon-map-marker:before{content:"\e8f1"}.icon-map:before{content:"\e8f2"}.icon-margin:before{content:"\e8f3"}.icon-markdown:before{content:"\e8f4"}.icon-marker-check:before{content:"\e8f5"}.icon-martini:before{content:"\e8f6"}.icon-material-ui:before{content:"\e8f7"}.icon-maxcdn:before{content:"\e8f8"}.icon-medium:before{content:"\e8f9"}.icon-memory:before{content:"\e8fa"}.icon-menu-down:before{content:"\e8fb"}.icon-menu-left:before{content:"\e8fc"}.icon-menu-right:before{content:"\e8fd"}.icon-menu-up:before{content:"\e8fe"}.icon-menu:before{content:"\e8ff"}.icon-message-alert:before{content:"\e900"}.icon-message-draw:before{content:"\e901"}.icon-message-image:before{content:"\e902"}.icon-message-processing:before{content:"\e903"}.icon-message-reply:before{content:"\e904"}.icon-message-text-outline:before{content:"\e905"}.icon-message-text:before{content:"\e906"}.icon-message-video:before{content:"\e907"}.icon-message:before{content:"\e908"}.icon-microphone-dots:before{content:"\e909"}.icon-microphone-off:before{content:"\e90a"}.icon-microphone-outline:before{content:"\e90b"}.icon-microphone-settings:before{content:"\e90c"}.icon-microphone-variant-off:before{content:"\e90d"}.icon-microphone-variant:before{content:"\e90e"}.icon-microphone:before{content:"\e90f"}.icon-minus-box:before{content:"\e910"}.icon-minus-circle-outline:before{content:"\e911"}.icon-minus-circle:before{content:"\e912"}.icon-minus-network:before{content:"\e913"}.icon-minus:before{content:"\e914"}.icon-monitor-multiple:before{content:"\e915"}.icon-monitor:before{content:"\e916"}.icon-more:before{content:"\e917"}.icon-mouse-off:before{content:"\e918"}.icon-mouse-variant-off:before{content:"\e919"}.icon-mouse-variant:before{content:"\e91a"}.icon-mouse:before{content:"\e91b"}.icon-movie:before{content:"\e91c"}.icon-multiplication-box:before{content:"\e91d"}.icon-multiplication:before{content:"\e91e"}.icon-music-box-outline:before{content:"\e91f"}.icon-music-box:before{content:"\e920"}.icon-music-circle:before{content:"\e921"}.icon-music-note-eighth:before{content:"\e922"}.icon-music-note-half:before{content:"\e923"}.icon-music-note-off:before{content:"\e924"}.icon-music-note-quarter:before{content:"\e925"}.icon-music-note-sixteenth:before{content:"\e926"}.icon-music-note-whole:before{content:"\e927"}.icon-music-note:before{content:"\e928"}.icon-nature-people:before{content:"\e929"}.icon-nature:before{content:"\e92a"}.icon-navigation:before{content:"\e92b"}.icon-needle:before{content:"\e92c"}.icon-nest-protect:before{content:"\e92d"}.icon-nest-thermostat:before{content:"\e92e"}.icon-newspaper:before{content:"\e92f"}.icon-nfc-tap:before{content:"\e930"}.icon-nfc-variant:before{content:"\e931"}.icon-nfc:before{content:"\e932"}.icon-no:before{content:"\e933"}.icon-not-equal:before{content:"\e934"}.icon-note-outline:before{content:"\e935"}.icon-note-text:before{content:"\e936"}.icon-note:before{content:"\e937"}.icon-numeric-0-box-multiple-outline:before{content:"\e938"}.icon-numeric-0-box-outline:before{content:"\e939"}.icon-numeric-0-box:before{content:"\e93a"}.icon-numeric-1-box-multiple-outline:before{content:"\e93b"}.icon-numeric-1-box-outline:before{content:"\e93c"}.icon-numeric-1-box:before{content:"\e93d"}.icon-numeric-2-box-multiple-outline:before{content:"\e93e"}.icon-numeric-2-box-outline:before{content:"\e93f"}.icon-numeric-2-box:before{content:"\e940"}.icon-numeric-3-box-multiple-outline:before{content:"\e941"}.icon-numeric-3-box-outline:before{content:"\e942"}.icon-numeric-3-box:before{content:"\e943"}.icon-numeric-4-box-multiple-outline:before{content:"\e944"}.icon-numeric-4-box-outline:before{content:"\e945"}.icon-numeric-4-box:before{content:"\e946"}.icon-numeric-5-box-multiple-outline:before{content:"\e947"}.icon-numeric-5-box-outline:before{content:"\e948"}.icon-numeric-5-box:before{content:"\e949"}.icon-numeric-6-box-multiple-outline:before{content:"\e94a"}.icon-numeric-6-box-outline:before{content:"\e94b"}.icon-numeric-6-box:before{content:"\e94c"}.icon-numeric-7-box-multiple-outline:before{content:"\e94d"}.icon-numeric-7-box-outline:before{content:"\e94e"}.icon-numeric-7-box:before{content:"\e94f"}.icon-numeric-8-box-multiple-outline:before{content:"\e950"}.icon-numeric-8-box-outline:before{content:"\e951"}.icon-numeric-8-box:before{content:"\e952"}.icon-numeric-9-box-multiple-outline:before{content:"\e953"}.icon-numeric-9-box-outline:before{content:"\e954"}.icon-numeric-9-box:before{content:"\e955"}.icon-numeric-9-plus-box-multiple-outline:before{content:"\e956"}.icon-numeric-9-plus-box-outline:before{content:"\e957"}.icon-numeric-9-plus-box:before{content:"\e958"}.icon-numeric:before{content:"\e959"}.icon-nutriton:before{content:"\e95a"}.icon-odnoklassniki:before{content:"\e95b"}.icon-office:before{content:"\e95c"}.icon-oil:before{content:"\e95d"}.icon-omega:before{content:"\e95e"}.icon-onedrive:before{content:"\e95f"}.icon-open-in-app:before{content:"\e960"}.icon-open-in-new:before{content:"\e961"}.icon-ornament-variant:before{content:"\e962"}.icon-ornament:before{content:"\e963"}.icon-outbox:before{content:"\e964"}.icon-outdent:before{content:"\e965"}.icon-owl:before{content:"\e966"}.icon-package-down:before{content:"\e967"}.icon-package-up:before{content:"\e968"}.icon-package-variant-closed:before{content:"\e969"}.icon-package-variant:before{content:"\e96a"}.icon-package:before{content:"\e96b"}.icon-palette-advanced:before{content:"\e96c"}.icon-palette:before{content:"\e96d"}.icon-panda:before{content:"\e96e"}.icon-pandora:before{content:"\e96f"}.icon-panorama-fisheye:before{content:"\e970"}.icon-panorama-horizontal:before{content:"\e971"}.icon-panorama-vertical:before{content:"\e972"}.icon-panorama-wide-angle:before{content:"\e973"}.icon-panorama:before{content:"\e974"}.icon-paper-cut-vertical:before{content:"\e975"}.icon-paperclip:before{content:"\e976"}.icon-parking:before{content:"\e977"}.icon-pause-circle-outline:before{content:"\e978"}.icon-pause-circle:before{content:"\e979"}.icon-pause-octagon-outline:before{content:"\e97a"}.icon-pause-octagon:before{content:"\e97b"}.icon-pause:before{content:"\e97c"}.icon-paw:before{content:"\e97d"}.icon-pen:before{content:"\e97e"}.icon-pencil-box-outline:before{content:"\e97f"}.icon-pencil-box:before{content:"\e980"}.icon-pencil:before{content:"\e981"}.icon-people:before{content:"\e982"}.icon-percent:before{content:"\e983"}.icon-person-box:before{content:"\e984"}.icon-person-minus:before{content:"\e985"}.icon-person-plus:before{content:"\e986"}.icon-pharmacy:before{content:"\e987"}.icon-phone-bluetooth:before{content:"\e988"}.icon-phone-dots:before{content:"\e989"}.icon-phone-forward:before{content:"\e98a"}.icon-phone-hangup:before{content:"\e98b"}.icon-phone-in-talk:before{content:"\e98c"}.icon-phone-incoming:before{content:"\e98d"}.icon-phone-locked:before{content:"\e98e"}.icon-phone-log:before{content:"\e98f"}.icon-phone-missed:before{content:"\e990"}.icon-phone-outgoing:before{content:"\e991"}.icon-phone-paused:before{content:"\e992"}.icon-phone:before{content:"\e993"}.icon-picture:before{content:"\e994"}.icon-pig:before{content:"\e995"}.icon-pill:before{content:"\e996"}.icon-pin-off:before{content:"\e997"}.icon-pin:before{content:"\e998"}.icon-pine-tree-box:before{content:"\e999"}.icon-pine-tree:before{content:"\e99a"}.icon-pinterest-box:before{content:"\e99b"}.icon-pinterest:before{content:"\e99c"}.icon-pizza:before{content:"\e99d"}.icon-plane:before{content:"\e99e"}.icon-play-box-outline:before{content:"\e99f"}.icon-play-circle-outline:before{content:"\e9a0"}.icon-play-circle:before{content:"\e9a1"}.icon-play:before{content:"\e9a2"}.icon-playlist-minus:before{content:"\e9a3"}.icon-playlist-plus:before{content:"\e9a4"}.icon-playstation:before{content:"\e9a5"}.icon-plus-box:before{content:"\e9a6"}.icon-plus-circle-outline:before{content:"\e9a7"}.icon-plus-circle:before{content:"\e9a8"}.icon-plus-network:before{content:"\e9a9"}.icon-plus-one:before{content:"\e9aa"}.icon-plus:before{content:"\e9ab"}.icon-pocket:before{content:"\e9ac"}.icon-poll-box:before{content:"\e9ad"}.icon-poll:before{content:"\e9ae"}.icon-polymer:before{content:"\e9af"}.icon-popcorn:before{content:"\e9b0"}.icon-pound-box:before{content:"\e9b1"}.icon-pound:before{content:"\e9b2"}.icon-power-settings:before{content:"\e9b3"}.icon-power-socket:before{content:"\e9b4"}.icon-power:before{content:"\e9b5"}.icon-presentation-play:before{content:"\e9b6"}.icon-presentation:before{content:"\e9b7"}.icon-printer-3d:before{content:"\e9b8"}.icon-printer:before{content:"\e9b9"}.icon-pulse:before{content:"\e9ba"}.icon-puzzle:before{content:"\e9bb"}.icon-qrcode:before{content:"\e9bc"}.icon-quadcopter:before{content:"\e9bd"}.icon-quality-high:before{content:"\e9be"}.icon-question-mark-circle:before{content:"\e9bf"}.icon-quick-reply:before{content:"\e9c0"}.icon-quicktime:before{content:"\e9c1"}.icon-rabbit:before{content:"\e9c2"}.icon-radiator:before{content:"\e9c3"}.icon-radio-tower:before{content:"\e9c4"}.icon-radio:before{content:"\e9c5"}.icon-radioactive:before{content:"\e9c6"}.icon-radiobox-blank:before{content:"\e9c7"}.icon-radiobox-marked:before{content:"\e9c8"}.icon-raspberrypi:before{content:"\e9c9"}.icon-rdio:before{content:"\e9ca"}.icon-read:before{content:"\e9cb"}.icon-readability:before{content:"\e9cc"}.icon-receipt:before{content:"\e9cd"}.icon-recycle:before{content:"\e9ce"}.icon-reddit:before{content:"\e9cf"}.icon-redo-variant:before{content:"\e9d0"}.icon-redo:before{content:"\e9d1"}.icon-refresh:before{content:"\e9d2"}.icon-relative-scale:before{content:"\e9d3"}.icon-reload:before{content:"\e9d4"}.icon-remote:before{content:"\e9d5"}.icon-rename-box:before{content:"\e9d6"}.icon-repeat-off:before{content:"\e9d7"}.icon-repeat-once:before{content:"\e9d8"}.icon-repeat:before{content:"\e9d9"}.icon-replay:before{content:"\e9da"}.icon-reply-all:before{content:"\e9db"}.icon-reply:before{content:"\e9dc"}.icon-reproduction:before{content:"\e9dd"}.icon-resize-bottom-right:before{content:"\e9de"}.icon-responsive:before{content:"\e9df"}.icon-restore:before{content:"\e9e0"}.icon-rewind:before{content:"\e9e1"}.icon-ribbon:before{content:"\e9e2"}.icon-road:before{content:"\e9e3"}.icon-rocket:before{content:"\e9e4"}.icon-rotate-3d:before{content:"\e9e5"}.icon-rotate-left-variant:before{content:"\e9e6"}.icon-rotate-left:before{content:"\e9e7"}.icon-rotate-right-variant:before{content:"\e9e8"}.icon-rotate-right:before{content:"\e9e9"}.icon-routes:before{content:"\e9ea"}.icon-rss-box:before{content:"\e9eb"}.icon-ruler:before{content:"\e9ec"}.icon-run:before{content:"\e9ed"}.icon-sale:before{content:"\e9ee"}.icon-satellite-variant:before{content:"\e9ef"}.icon-satellite:before{content:"\e9f0"}.icon-scale-bathroom:before{content:"\e9f1"}.icon-scale:before{content:"\e9f2"}.icon-school:before{content:"\e9f3"}.icon-screen-rotation-lock:before{content:"\e9f4"}.icon-screen-rotation:before{content:"\e9f5"}.icon-script:before{content:"\e9f6"}.icon-security-network:before{content:"\e9f7"}.icon-security:before{content:"\e9f8"}.icon-select-all:before{content:"\e9f9"}.icon-select-inverse:before{content:"\e9fa"}.icon-select-off:before{content:"\e9fb"}.icon-select:before{content:"\e9fc"}.icon-send:before{content:"\e9fd"}.icon-server-minus:before{content:"\e9fe"}.icon-server-network-off:before{content:"\e9ff"}.icon-server-network:before{content:"\ea00"}.icon-server-off:before{content:"\ea01"}.icon-server-plus:before{content:"\ea02"}.icon-server-remove:before{content:"\ea03"}.icon-server-security:before{content:"\ea04"}.icon-server:before{content:"\ea05"}.icon-shape-plus:before{content:"\ea06"}.icon-share-variant:before{content:"\ea07"}.icon-share:before{content:"\ea08"}.icon-shield-outline:before{content:"\ea09"}.icon-shield:before{content:"\ea0a"}.icon-shopping-music:before{content:"\ea0b"}.icon-shopping:before{content:"\ea0c"}.icon-shuffle:before{content:"\ea0d"}.icon-sigma:before{content:"\ea0e"}.icon-sign-caution:before{content:"\ea0f"}.icon-signal:before{content:"\ea10"}.icon-silverware-fork:before{content:"\ea11"}.icon-silverware-spoon:before{content:"\ea12"}.icon-silverware-variant:before{content:"\ea13"}.icon-silverware:before{content:"\ea14"}.icon-sim-alert:before{content:"\ea15"}.icon-sim:before{content:"\ea16"}.icon-sitemap:before{content:"\ea17"}.icon-skip-next:before{content:"\ea18"}.icon-skip-previous:before{content:"\ea19"}.icon-skype-business:before{content:"\ea1a"}.icon-skype:before{content:"\ea1b"}.icon-sleep-off:before{content:"\ea1c"}.icon-sleep:before{content:"\ea1d"}.icon-smoking-off:before{content:"\ea1e"}.icon-smoking:before{content:"\ea1f"}.icon-snapchat:before{content:"\ea20"}.icon-snowman:before{content:"\ea21"}.icon-sofa:before{content:"\ea22"}.icon-sort-alphabetical:before{content:"\ea23"}.icon-sort-ascending:before{content:"\ea24"}.icon-sort-descending:before{content:"\ea25"}.icon-sort-numeric:before{content:"\ea26"}.icon-sort-variant:before{content:"\ea27"}.icon-sort:before{content:"\ea28"}.icon-soundcloud:before{content:"\ea29"}.icon-source-fork:before{content:"\ea2a"}.icon-source-pull:before{content:"\ea2b"}.icon-speaker-off:before{content:"\ea2c"}.icon-speaker:before{content:"\ea2d"}.icon-speedometer:before{content:"\ea2e"}.icon-spellcheck:before{content:"\ea2f"}.icon-spotify:before{content:"\ea30"}.icon-spotlight-beam:before{content:"\ea31"}.icon-spotlight:before{content:"\ea32"}.icon-spreadsheet:before{content:"\ea33"}.icon-square-inc-cash:before{content:"\ea34"}.icon-square-inc:before{content:"\ea35"}.icon-stackoverflow:before{content:"\ea36"}.icon-star-circle:before{content:"\ea37"}.icon-star-half:before{content:"\ea38"}.icon-star-of-david:before{content:"\ea39"}.icon-star-outline:before{content:"\ea3a"}.icon-star:before{content:"\ea3b"}.icon-steam:before{content:"\ea3c"}.icon-stethoscope:before{content:"\ea3d"}.icon-stocking:before{content:"\ea3e"}.icon-stop:before{content:"\ea3f"}.icon-store-24-hour:before{content:"\ea40"}.icon-store:before{content:"\ea41"}.icon-stove:before{content:"\ea42"}.icon-subway:before{content:"\ea43"}.icon-sunglasses:before{content:"\ea44"}.icon-swap-horizontal:before{content:"\ea45"}.icon-swap-vertical:before{content:"\ea46"}.icon-swim:before{content:"\ea47"}.icon-sword:before{content:"\ea48"}.icon-sync-alert:before{content:"\ea49"}.icon-sync-off:before{content:"\ea4a"}.icon-sync:before{content:"\ea4b"}.icon-tab-unselected:before{content:"\ea4c"}.icon-tab:before{content:"\ea4d"}.icon-table-column-plus-after:before{content:"\ea4e"}.icon-table-column-plus-before:before{content:"\ea4f"}.icon-table-column-remove:before{content:"\ea50"}.icon-table-column-width:before{content:"\ea51"}.icon-table-edit:before{content:"\ea52"}.icon-table-large:before{content:"\ea53"}.icon-table-row-height:before{content:"\ea54"}.icon-table-row-plus-after:before{content:"\ea55"}.icon-table-row-plus-before:before{content:"\ea56"}.icon-table-row-remove:before{content:"\ea57"}.icon-table:before{content:"\ea58"}.icon-tablet-android:before{content:"\ea59"}.icon-tablet-ipad:before{content:"\ea5a"}.icon-tablet:before{content:"\ea5b"}.icon-tag-faces:before{content:"\ea5c"}.icon-tag-multiple:before{content:"\ea5d"}.icon-tag-outline:before{content:"\ea5e"}.icon-tag-text-outline:before{content:"\ea5f"}.icon-tag:before{content:"\ea60"}.icon-taxi:before{content:"\ea61"}.icon-teamviewer:before{content:"\ea62"}.icon-telegram:before{content:"\ea63"}.icon-television-guide:before{content:"\ea64"}.icon-television:before{content:"\ea65"}.icon-temperature-celsius:before{content:"\ea66"}.icon-temperature-fahrenheit:before{content:"\ea67"}.icon-temperature-kelvin:before{content:"\ea68"}.icon-tennis:before{content:"\ea69"}.icon-tent:before{content:"\ea6a"}.icon-terrain:before{content:"\ea6b"}.icon-text-to-speech-off:before{content:"\ea6c"}.icon-text-to-speech:before{content:"\ea6d"}.icon-texture:before{content:"\ea6e"}.icon-theater:before{content:"\ea6f"}.icon-theme-light-dark:before{content:"\ea70"}.icon-thermometer-lines:before{content:"\ea71"}.icon-thermometer:before{content:"\ea72"}.icon-thumb-down-outline:before{content:"\ea73"}.icon-thumb-down:before{content:"\ea74"}.icon-thumb-up-outline:before{content:"\ea75"}.icon-thumb-up:before{content:"\ea76"}.icon-thumbs-up-down:before{content:"\ea77"}.icon-ticket-account:before{content:"\ea78"}.icon-ticket:before{content:"\ea79"}.icon-tie:before{content:"\ea7a"}.icon-tile-four:before{content:"\ea7b"}.icon-timelapse:before{content:"\ea7c"}.icon-timer-3:before{content:"\ea7d"}.icon-timer-10:before{content:"\ea7e"}.icon-timer-off:before{content:"\ea7f"}.icon-timer-sand:before{content:"\ea80"}.icon-timer:before{content:"\ea81"}.icon-timetable:before{content:"\ea82"}.icon-toggle-switch-off:before{content:"\ea83"}.icon-toggle-switch-on:before{content:"\ea84"}.icon-tooltip-edit:before{content:"\ea85"}.icon-tooltip-image:before{content:"\ea86"}.icon-tooltip-outline-plus:before{content:"\ea87"}.icon-tooltip-outline:before{content:"\ea88"}.icon-tooltip-text:before{content:"\ea89"}.icon-tooltip:before{content:"\ea8a"}.icon-tor:before{content:"\ea8b"}.icon-traffic-light:before{content:"\ea8c"}.icon-train:before{content:"\ea8d"}.icon-tram:before{content:"\ea8e"}.icon-transcribe-close:before{content:"\ea8f"}.icon-transcribe:before{content:"\ea90"}.icon-transfer:before{content:"\ea91"}.icon-trash:before{content:"\ea92"}.icon-tree:before{content:"\ea93"}.icon-trello:before{content:"\ea94"}.icon-trending-down:before{content:"\ea95"}.icon-trending-neutral:before{content:"\ea96"}.icon-trending-up:before{content:"\ea97"}.icon-truck:before{content:"\ea98"}.icon-tshirt-crew:before{content:"\ea99"}.icon-tshirt-v:before{content:"\ea9a"}.icon-tumblr-reblog:before{content:"\ea9b"}.icon-tumblr:before{content:"\ea9c"}.icon-twitch:before{content:"\ea9d"}.icon-twitter-box:before{content:"\ea9e"}.icon-twitter-circle:before{content:"\ea9f"}.icon-twitter-retweet:before{content:"\eaa0"}.icon-twitter:before{content:"\eaa1"}.icon-ubuntu:before{content:"\eaa2"}.icon-umbrella-outline:before{content:"\eaa3"}.icon-umbrella:before{content:"\eaa4"}.icon-undo-variant:before{content:"\eaa5"}.icon-undo:before{content:"\eaa6"}.icon-unfold-less:before{content:"\eaa7"}.icon-unfold-more:before{content:"\eaa8"}.icon-ungroup:before{content:"\eaa9"}.icon-untappd:before{content:"\eaaa"}.icon-upload:before{content:"\eaab"}.icon-usb:before{content:"\eaac"}.icon-vector-curve:before{content:"\eaad"}.icon-vector-point:before{content:"\eaae"}.icon-vector-square:before{content:"\eaaf"}.icon-verified:before{content:"\eab0"}.icon-vibration:before{content:"\eab1"}.icon-video-off:before{content:"\eab2"}.icon-video-switch:before{content:"\eab3"}.icon-video:before{content:"\eab4"}.icon-view-agenda:before{content:"\eab5"}.icon-view-array:before{content:"\eab6"}.icon-view-carousel:before{content:"\eab7"}.icon-view-column:before{content:"\eab8"}.icon-view-dashboard:before{content:"\eab9"}.icon-view-day:before{content:"\eaba"}.icon-view-headline:before{content:"\eabb"}.icon-view-list:before{content:"\eabc"}.icon-view-module:before{content:"\eabd"}.icon-view-quilt:before{content:"\eabe"}.icon-view-stream:before{content:"\eabf"}.icon-view-week:before{content:"\eac0"}.icon-vimeo:before{content:"\eac1"}.icon-vine:before{content:"\eac2"}.icon-vk-box:before{content:"\eac3"}.icon-vk-circle:before{content:"\eac4"}.icon-vk:before{content:"\eac5"}.icon-voicemail:before{content:"\eac6"}.icon-volume-high:before{content:"\eac7"}.icon-volume-low:before{content:"\eac8"}.icon-volume-medium:before{content:"\eac9"}.icon-volume-off:before{content:"\eaca"}.icon-volume:before{content:"\eacb"}.icon-vpn:before{content:"\eacc"}.icon-walk:before{content:"\eacd"}.icon-wallet-giftcard:before{content:"\eace"}.icon-wallet-membership:before{content:"\eacf"}.icon-wallet-travel:before{content:"\ead0"}.icon-wallet:before{content:"\ead1"}.icon-washing-machine:before{content:"\ead2"}.icon-watch-export:before{content:"\ead3"}.icon-watch-import:before{content:"\ead4"}.icon-watch:before{content:"\ead5"}.icon-water-off:before{content:"\ead6"}.icon-water-pump:before{content:"\ead7"}.icon-water:before{content:"\ead8"}.icon-weather-cloudy:before{content:"\ead9"}.icon-weather-fog:before{content:"\eada"}.icon-weather-hail:before{content:"\eadb"}.icon-weather-lightning:before{content:"\eadc"}.icon-weather-night:before{content:"\eadd"}.icon-weather-partlycloudy:before{content:"\eade"}.icon-weather-pouring:before{content:"\eadf"}.icon-weather-rainy:before{content:"\eae0"}.icon-weather-snowy:before{content:"\eae1"}.icon-weather-sunny:before{content:"\eae2"}.icon-weather-sunset-down:before{content:"\eae3"}.icon-weather-sunset-up:before{content:"\eae4"}.icon-weather-sunset:before{content:"\eae5"}.icon-weather-windy-variant:before{content:"\eae6"}.icon-weather-windy:before{content:"\eae7"}.icon-web:before{content:"\eae8"}.icon-webcam:before{content:"\eae9"}.icon-weight-kilogram:before{content:"\eaea"}.icon-weight:before{content:"\eaeb"}.icon-whatsapp:before{content:"\eaec"}.icon-wheelchair-accessibility:before{content:"\eaed"}.icon-white-balance-auto:before{content:"\eaee"}.icon-white-balance-incandescent:before{content:"\eaef"}.icon-white-balance-irradescent:before{content:"\eaf0"}.icon-white-balance-sunny:before{content:"\eaf1"}.icon-wifi:before{content:"\eaf2"}.icon-wii:before{content:"\eaf3"}.icon-wikipedia:before{content:"\eaf4"}.icon-window-close:before{content:"\eaf5"}.icon-window-closed:before{content:"\eaf6"}.icon-window-maximize:before{content:"\eaf7"}.icon-window-minimize:before{content:"\eaf8"}.icon-window-open:before{content:"\eaf9"}.icon-window-restore:before{content:"\eafa"}.icon-windows:before{content:"\eafb"}.icon-wordpress:before{content:"\eafc"}.icon-worker:before{content:"\eafd"}.icon-wunderlist:before{content:"\eafe"}.icon-xbox-controller-off:before{content:"\eaff"}.icon-xbox-controller:before{content:"\eb00"}.icon-xbox:before{content:"\eb01"}.icon-xda:before{content:"\eb02"}.icon-xml:before{content:"\eb03"}.icon-yeast:before{content:"\eb04"}.icon-yelp:before{content:"\eb05"}.icon-youtube-play:before{content:"\eb06"}.icon-youtube:before{content:"\eb07"}.icon-zip-box:before{content:"\eb08"}.avatar{width:40px;min-width:40px;height:40px;line-height:40px;margin:0 8px 0 0;border-radius:50%;font-size:17px;font-weight:500;text-align:center;color:#fff}.avatar.square{border-radius:0}.avatar.small{width:20px;min-width:20px;height:20px;line-height:20px}.avatar.big{width:72px;min-width:72px;height:72px;line-height:72px}.avatar.huge{width:96px;min-width:96px;height:96px;line-height:96px}.form-wrapper{background:#fff;padding:16px}.form-wrapper .form-title{font-size:21px;padding:8px 0}.navigation-simple .item{position:relative;cursor:pointer;text-align:left;margin:0;padding:0 24px;text-transform:none;line-height:48px;max-height:48px;height:48px}.navigation-simple .item md-icon{margin:0 16px 0 0}.navigation-simple .item .title{font-size:13px;font-weight:500;line-height:1}.navigation-simple .item.selected{background-color:rgba(0,0,0,.06)}.navigation-simple .subheader{font-size:13px;border-top:1px solid rgba(0,0,0,.12);font-weight:500;margin-top:8px}.navigation-simple .subheader.light{border-top:1px solid rgba(255,255,255,.12)}.navigation-simple md-divider{margin:8px 0}.simple-pagination{position:relative;display:inline-flex;flex-direction:row;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);background-color:#fff;padding:0 8px}.simple-pagination .pagination-item{min-width:48px;min-height:56px;line-height:56px;border-radius:0;margin:0;font-weight:400;color:rgba(0,0,0,.54)}.simple-pagination .pagination-item:hover{color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.active{cursor:default;color:rgba(0,0,0,.87)}.simple-pagination .pagination-item.disabled{cursor:default;color:rgba(0,0,0,.26)}.price-tables .price-table{position:relative;background-color:#fff;width:280px;border-radius:2px;margin:24px 24px 0 0;overflow:hidden}.price-tables .price-table.style-1 .package-type{font-size:17px;padding:16px 24px}.price-tables .price-table.style-1 .package-type .sale{font-size:13px;font-weight:600}.price-tables .price-table.style-1 .price{padding:32px 32px 16px 32px}.price-tables .price-table.style-1 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 .price .value{font-size:72px;font-weight:300;line-height:1}.price-tables .price-table.style-1 .price .period{padding:0 0 5px 4px;font-size:17px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-1 md-divider{margin:16px 32px}.price-tables .price-table.style-1 .terms{padding:16px 32px;font-size:15px}.price-tables .price-table.style-1 .cta-button{margin:16px auto 32px auto;width:128px}.price-tables .price-table.style-2 .badge{position:absolute;top:0;left:50%;transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}.price-tables .price-table.style-2 .package-type{padding:48px 32px 24px 32px;font-size:20px;font-weight:500;text-align:center}.price-tables .price-table.style-2 .price{padding:0 32px 8px 32px}.price-tables .price-table.style-2 .price .currency{padding-right:4px;font-size:24px;font-weight:500;color:rgba(0,0,0,.54)}.price-tables .price-table.style-2 .price .value{font-size:56px;font-weight:300;line-height:1}.price-tables .price-table.style-2 .period{padding:0 32px;font-size:15px;font-weight:500;color:rgba(0,0,0,.54);text-align:center}.price-tables .price-table.style-2 .terms{padding:32px;font-size:15px}.price-tables .price-table.style-2 .terms .term{padding-bottom:8px}.price-tables .price-table.style-2 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-2 .cta-button{margin:8px auto 32px auto;width:128px}.price-tables .price-table.style-3 .package-type{padding:32px;text-align:center}.price-tables .price-table.style-3 .package-type .title{font-size:34px}.price-tables .price-table.style-3 .package-type .subtitle{font-size:17px;color:rgba(0,0,0,.54);font-weight:500}.price-tables .price-table.style-3 .price{padding:16px 32px}.price-tables .price-table.style-3 .price .currency{padding-right:4px;font-size:15px;font-weight:500}.price-tables .price-table.style-3 .price .value{font-size:34px;font-weight:300;line-height:1}.price-tables .price-table.style-3 .price .period{padding-left:4px;text-align:center}.price-tables .price-table.style-3 .terms{margin:32px;font-size:15px;color:rgba(0,0,0,.54)}.price-tables .price-table.style-3 .terms .term{padding-bottom:16px}.price-tables .price-table.style-3 .terms .term:last-child{padding-bottom:0}.price-tables .price-table.style-3 .cta-button{margin:8px 32px}.price-tables .price-table.style-3 .note{padding:8px 32px 16px 32px;text-align:center;color:rgba(0,0,0,.54)}.simple-table-container{background:#fff}.simple-table-container .table-title{font-size:20px;padding:24px}table.simple{width:100%;border:none;border-spacing:0;text-align:left}table.simple thead tr th{padding:16px 8px;font-weight:500;color:rgba(0,0,0,.54);border-bottom:1px solid rgba(0,0,0,.12);white-space:nowrap;min-width:120px}table.simple thead tr th:first-child{padding-left:24px}table.simple thead tr th:last-child{padding-right:24px}table.simple tbody tr td{padding:16px 8px;border-bottom:1px solid rgba(0,0,0,.12)}table.simple tbody tr td:first-child{padding-left:24px}table.simple tbody tr td:last-child{padding-right:24px}table.simple tbody tr:last-child td{border-bottom:none}table.simple.clickable tbody tr{cursor:pointer}table.simple.clickable tbody tr:hover{background:rgba(0,0,0,.03)}html{font-size:62.5%;font-family:Roboto,"Helvetica Neue",Arial,sans-serif;line-height:1.4;letter-spacing:-.1px}body{font-size:1.3rem}body,html{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}form{font-size:1.6rem}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:400}.h1,h1{font-size:2.4rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.6rem}.h4,h4{font-size:1.4rem}.h5,h5{font-size:1.3rem}.h6,h6{font-size:1.2rem}a{text-decoration:none}a:active,a:hover{text-decoration:underline}abbr{cursor:help;border-bottom:1px dotted rgba(0,0,0,.54)}blockquote{border-left:3px solid rgba(0,0,0,.12);font-style:italic;margin:1em 0;padding-left:16px}blockquote footer{font-style:normal}blockquote footer:before{content:'\2014 \00A0'}blockquote.reverse{border-left:none;border-right:3px solid rgba(0,0,0,.12);text-align:right;padding-left:0;padding-right:16px}blockquote.reverse footer:before{content:''}blockquote.reverse footer:after{content:'\2014 \00A0'}code{font-family:Monaco,Menlo,Consolas,"Ubuntu Mono",monospace}code:not(.highlight){background:rgba(0,0,0,.065);color:#106cc8;margin:0 1px;padding:2px 3px;border-radius:2px}dl dt{font-weight:700}dl dd{margin:4px 0 16px 0}mark{background:#f7f49a}pre{line-height:1.6;margin:8px 16px;white-space:pre-wrap}small{font-size:80%}table thead tr th{text-align:left}.text-italic{font-style:italic}.text-semibold{font-weight:600}.text-bold,strong{font-weight:700}.text-strike{text-decoration:line-through}.text-super{vertical-align:super}.text-sub{vertical-align:sub}.text-capitalize{text-transform:capitalize}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-weight-100{font-weight:100}.font-weight-200{font-weight:200}.font-weight-300{font-weight:300}.font-weight-400{font-weight:400}.font-weight-500{font-weight:500}.font-weight-600{font-weight:600}.font-weight-700{font-weight:700}.font-weight-800{font-weight:800}.font-weight-900{font-weight:900}.font-size-2{font-size:2px}.font-size-4{font-size:4px}.font-size-6{font-size:6px}.font-size-8{font-size:8px}.font-size-10{font-size:10px}.font-size-12{font-size:12px}.font-size-14{font-size:14px}.font-size-16{font-size:16px}.font-size-18{font-size:18px}.font-size-20{font-size:20px}.font-size-22{font-size:22px}.font-size-24{font-size:24px}.font-size-26{font-size:26px}.font-size-28{font-size:28px}.font-size-30{font-size:30px}.font-size-32{font-size:32px}.font-size-34{font-size:34px}.font-size-36{font-size:36px}.font-size-38{font-size:38px}.font-size-40{font-size:40px}.font-size-42{font-size:42px}.font-size-44{font-size:44px}.font-size-46{font-size:46px}.font-size-48{font-size:48px}.font-size-50{font-size:50px}.font-size-52{font-size:52px}.font-size-54{font-size:54px}.font-size-56{font-size:56px}.font-size-58{font-size:58px}.font-size-60{font-size:60px}.font-size-62{font-size:62px}.font-size-64{font-size:64px}.font-size-66{font-size:66px}.font-size-68{font-size:68px}.font-size-70{font-size:70px}.font-size-72{font-size:72px}.font-size-74{font-size:74px}.font-size-76{font-size:76px}.font-size-78{font-size:78px}.font-size-80{font-size:80px}.font-size-82{font-size:82px}.font-size-84{font-size:84px}.font-size-86{font-size:86px}.font-size-88{font-size:88px}.font-size-90{font-size:90px}.font-size-92{font-size:92px}.font-size-94{font-size:94px}.font-size-96{font-size:96px}.font-size-98{font-size:98px}.font-size-100{font-size:100px}.font-size-102{font-size:102px}.font-size-104{font-size:104px}.font-size-106{font-size:106px}.font-size-108{font-size:108px}.font-size-110{font-size:110px}.font-size-112{font-size:112px}.font-size-114{font-size:114px}.font-size-116{font-size:116px}.font-size-118{font-size:118px}.font-size-120{font-size:120px}.line-height-2{line-height:2px}.line-height-4{line-height:4px}.line-height-6{line-height:6px}.line-height-8{line-height:8px}.line-height-10{line-height:10px}.line-height-12{line-height:12px}.line-height-14{line-height:14px}.line-height-16{line-height:16px}.line-height-18{line-height:18px}.line-height-20{line-height:20px}.line-height-22{line-height:22px}.line-height-24{line-height:24px}.line-height-26{line-height:26px}.line-height-28{line-height:28px}.line-height-30{line-height:30px}.line-height-32{line-height:32px}.line-height-34{line-height:34px}.line-height-36{line-height:36px}.line-height-38{line-height:38px}.line-height-40{line-height:40px}.line-height-42{line-height:42px}.line-height-44{line-height:44px}.line-height-46{line-height:46px}.line-height-48{line-height:48px}.line-height-50{line-height:50px}.line-height-52{line-height:52px}.line-height-54{line-height:54px}.line-height-56{line-height:56px}.line-height-58{line-height:58px}.line-height-60{line-height:60px}.line-height-62{line-height:62px}.line-height-64{line-height:64px}.line-height-66{line-height:66px}.line-height-68{line-height:68px}.line-height-70{line-height:70px}.line-height-72{line-height:72px}.line-height-74{line-height:74px}.line-height-76{line-height:76px}.line-height-78{line-height:78px}.line-height-80{line-height:80px}.line-height-82{line-height:82px}.line-height-84{line-height:84px}.line-height-86{line-height:86px}.line-height-88{line-height:88px}.line-height-90{line-height:90px}.line-height-92{line-height:92px}.line-height-94{line-height:94px}.line-height-96{line-height:96px}.line-height-98{line-height:98px}.line-height-100{line-height:100px}.line-height-102{line-height:102px}.line-height-104{line-height:104px}.line-height-106{line-height:106px}.line-height-108{line-height:108px}.line-height-110{line-height:110px}.line-height-112{line-height:112px}.line-height-114{line-height:114px}.line-height-116{line-height:116px}.line-height-118{line-height:118px}.line-height-120{line-height:120px}.text-boxed,.text-boxed-light{border-radius:2px;padding:4px 8px;margin:0 8px;font-size:11px;font-weight:500;color:rgba(0,0,0,.54);background-color:rgba(0,0,0,.12);white-space:nowrap}.text-boxed-light{background-color:rgba(255,255,255,.7)}.text-truncate{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-nowrap{white-space:nowrap}.angular-google-map-container{height:400px}.moment-picker .moment-picker-container{width:296px;border:none;border-radius:2px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);margin-left:0;padding:8px}.moment-picker .moment-picker-container td,.moment-picker .moment-picker-container th{min-width:0;width:40px;height:40px;padding:8px;text-shadow:none;border-radius:35px}.moment-picker .moment-picker-container td:hover,.moment-picker .moment-picker-container th:hover{background:#f5f5f5;background-image:none}.moment-picker .moment-picker-container td.selected{background:#03a9f4;background-image:none}.moment-picker .moment-picker-container .header-view th{border-radius:0;white-space:nowrap;width:auto}.moment-picker .moment-picker-container .header-view th:first-child,.moment-picker .moment-picker-container .header-view th:last-child{width:20%}.c3{transition:all .3s ease}.c3 svg{font:12px RobotoDraft,Roboto,'Helvetica Neue',sans-serif}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif;user-select:none}.c3 .c3-bars path,.c3 .c3-event-rect,.c3 .c3-legend-item-tile,.c3 .c3-xgrid-focus,.c3 .c3-ygrid{shape-rendering:crispEdges}.c3 .c3-chart-line{transition:all .3s ease}.c3 .c3-line{stroke-width:1px}.c3.stroke-3 .c3-line{stroke-width:3px}.c3.stroke-2 .c3-line{stroke-width:2px}.c3 .c3-circle{transition:all .3s ease;stroke:#fff;stroke-width:2}.c3 .c3-circle._expanded_{stroke-width:3;stroke:#fff}.c3 .c3-chart-arc path{stroke:#fff}.c3 .c3-chart-arc text{fill:#fff;font-size:13px}.c3 .c3-grid line{stroke:rgba(0,0,0,.04);stroke-width:1px;stroke-dasharray:0}.c3 .c3-grid text{fill:#aaa}.c3 .c3-axis .tick{stroke-width:0}.c3 .c3-axis text{fill:rgba(0,0,0,.33)}.c3 .c3-axis line,.c3 .c3-axis path{stroke:rgba(0,0,0,.04)}.c3 .c3-xgrid,.c3 .c3-ygrid{stroke-dasharray:0 0}.c3 .c3-text.c3-empty{fill:grey;font-size:2em}.c3 .c3-bar{stroke-width:0}.c3 .c3-bar._expanded_{fill-opacity:.75}.c3 .c3-target.c3-focused{opacity:1}.c3 .c3-target.c3-focused .c3-target.c3-focused path.c3-step,.c3 .c3-target.c3-focused path.c3-line{stroke-width:3px;transition:all .3s ease}.c3 .c3-target.c3-defocused{opacity:.3!important}.c3 .c3-region{fill:#4682b4;fill-opacity:.1}.c3 .c3-brush .extent{fill-opacity:.1}.c3 .c3-legend-item{font-size:12px}.c3 .c3-legend-item-hidden{opacity:.15}.c3 .c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3 .c3-tooltip-container{z-index:10}.c3 .c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084);opacity:1;border-radius:2px;overflow:hidden;padding:4px 0}.c3 .c3-tooltip tr{border:none}.c3 .c3-tooltip th{background-color:transparent;font-size:14px;font-weight:400;padding:8px 12px;text-align:left;color:rgba(0,0,0,.54)}.c3 .c3-tooltip td{font-size:13px;padding:4px 12px!important;background-color:#fff;border-left:none;color:rgba(0,0,0,.84)}.c3 .c3-tooltip td>span{display:inline-block;width:10px;height:10px;margin-right:6px}.c3 .c3-tooltip td.value{font-size:14px!important;text-align:right;color:rgba(0,0,0,.84)}.c3 .c3-area{stroke-width:0;opacity:.2}.c3 .c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3 .c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-max{fill:#777}.c3 .c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3 .c3-chart-arc .c3-gauge-value{fill:#000}.ct-label{font-size:13px}.ct-chart-donut .ct-label,.ct-chart-pie .ct-label{font-size:13px}.bar-legend,.chart-legend,.doughnut-legend,.line-legend,.pie-legend,.polararea-legend,.radar-legend{margin-top:15px}table.dataTable{width:100%;margin:0 auto;clear:both;border-spacing:0}table.dataTable thead tr{background:#fff}table.dataTable thead th{text-align:left;vertical-align:middle;border-bottom:1px solid rgba(0,0,0,.12);padding:16px 8px}table.dataTable thead th:first-child{padding-left:24px}table.dataTable thead th:last-child{border-right:none;padding-right:24px}table.dataTable thead th:active{outline:0}table.dataTable thead th.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable thead th .table-header .column-title{display:block;font-weight:600;white-space:nowrap}table.dataTable thead th .table-header .selectize-control{margin-top:15px}table.dataTable thead th .table-header .selectize-control.single .selectize-input{padding:7px 10px}table.dataTable thead th .table-header .selectize-control.single .selectize-input:after{right:10px;border-width:5px 4px 0 4px;border-color:rgba(0,0,0,.12) transparent transparent transparent}table.dataTable thead th .table-header .column-search-input{display:inline-block;margin-top:15px;width:100%;height:33px}table.dataTable thead td{padding:15px;vertical-align:middle}table.dataTable thead td:active{outline:0}table.dataTable thead td.dt-head-left{text-align:left}table.dataTable thead td.dt-head-center{text-align:center}table.dataTable thead td.dt-head-right{text-align:right}table.dataTable thead td.dt-head-justify{text-align:justify}table.dataTable thead td.dt-head-nowrap{white-space:nowrap}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{background:0 0}table.dataTable thead .sorting .table-header .column-title,table.dataTable thead .sorting_asc .table-header .column-title,table.dataTable thead .sorting_desc .table-header .column-title{cursor:pointer}table.dataTable thead .sorting .table-header .column-title:after,table.dataTable thead .sorting_asc .table-header .column-title:after,table.dataTable thead .sorting_desc .table-header .column-title:after{position:relative;font-family:icomoon;font-weight:400;margin-left:10px;top:2px;font-size:16px;color:rgba(0,0,0,.54)}table.dataTable thead .sorting .table-header .column-title:after{content:'\eaa8'}table.dataTable thead .sorting_asc .table-header .column-title:after{content:'\e718'}table.dataTable thead .sorting_desc .table-header .column-title:after{content:'\e715'}table.dataTable tfoot th{font-weight:600;text-align:left;padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot th.dt-head-left{text-align:left}table.dataTable tfoot th.dt-head-center{text-align:center}table.dataTable tfoot th.dt-head-right{text-align:right}table.dataTable tfoot th.dt-head-justify{text-align:justify}table.dataTable tfoot th.dt-head-nowrap{white-space:nowrap}table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody tr.details-open td.detail-column i{background:#fff}table.dataTable tbody tr.details-row.odd tr{background:#fff}table.dataTable tbody tr.details-row>td{padding:0}table.dataTable tbody th{padding:14px 15px;vertical-align:middle}table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable tbody td{padding:16px 8px;vertical-align:middle}table.dataTable tbody td:first-child{padding-left:24px}table.dataTable tbody td:last-child{padding-right:24px}table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable th.dt-left{text-align:left}table.dataTable th.dt-center{text-align:center}table.dataTable th.dt-right{text-align:right}table.dataTable th.dt-justify{text-align:justify}table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable td.dt-left{text-align:left}table.dataTable td.dt-center{text-align:center}table.dataTable td.dataTables_empty{height:51px;text-align:center}table.dataTable td.dt-right{text-align:right}table.dataTable td.dt-justify{text-align:justify}table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable.row-border thead{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody tr:first-child th{border-top:none}table.dataTable.row-border tbody tr:first-child td{border-top:none}table.dataTable.row-border tbody tr:last-child td{border-bottom:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody th{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.row-border tbody td{border-top:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody tr:first-child th{border-top:none}table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody th:last-child{border-right:none}table.dataTable.cell-border tbody td{border-top:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}table.dataTable.cell-border tbody td:last-child{border-right:none}table.dataTable.stripe tbody tr.odd{background-color:#fff}table.dataTable.stripe tbody tr.odd.selected{background-color:#abb9d3}table.dataTable.hover tbody tr:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.odd:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.odd:hover.selected{background-color:#a9b7d1}table.dataTable.hover tbody tr.even:hover{background-color:#f5f5f5}table.dataTable.hover tbody tr.even:hover.selected{background-color:#a9b7d1}table.dataTable.order-column tbody tr>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_2{background-color:#f9f9f9}table.dataTable.order-column tbody tr>.sorting_3{background-color:#f9f9f9}table.dataTable.order-column tbody tr.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_2{background-color:#acbad4}table.dataTable.order-column tbody tr.selected>.sorting_3{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b3cd}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a7b5ce}table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b6d0}table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#f9f9f9}table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fbfbfb}table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fdfdfd}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad4}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#adbbd6}table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.odd:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.odd:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_1{background-color:#eaeaea}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_2{background-color:#ebebeb}table.dataTable.order-column.hover tbody tr.even:hover>.sorting_3{background-color:#eee}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_1{background-color:#a1aec7}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_2{background-color:#a2afc8}table.dataTable.order-column.hover tbody tr.even:hover.selected>.sorting_3{background-color:#a4b2cb}table.dataTable.no-footer{border-bottom:none}table.dataTable.nowrap th{white-space:nowrap}table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th{padding:5px 9px}table.dataTable.compact thead td{padding:5px 9px}table.dataTable.compact tfoot th{padding:5px 9px 3px 9px}table.dataTable.compact tfoot td{padding:5px 9px 3px 9px}table.dataTable.compact tbody th{padding:4px 5px}table.dataTable.compact tbody td{padding:4px 5px}.dataTables_wrapper{display:flex;flex:1 0 auto;flex-direction:column;min-height:0}.dataTables_wrapper .top{padding:16px 24px}.dataTables_wrapper .bottom{display:flex;min-height:64px;justify-content:space-between;padding:16px 8px;border-top:1px solid rgba(0,0,0,.12)}.dataTables_wrapper .bottom .left{display:flex;flex:0 0 50%;max-width:50%;align-self:center;padding:0 8px}.dataTables_wrapper .bottom .left .length{display:block}.dataTables_wrapper .bottom .right{display:flex;flex:0 0 50%;max-width:50%;align-self:center;justify-content:flex-end;padding:0 8px}.dataTables_wrapper .bottom .right .info{display:block;align-self:center}.dataTables_wrapper .bottom .right .info .dataTables_info{padding:0 8px;font-weight:600}.dataTables_wrapper .bottom .right .pagination{display:block;align-self:center;white-space:nowrap}.dataTables_wrapper .bottom .right .pagination .dataTables_paginate{padding:0;margin:0!important}.dataTables_wrapper .dataTables_filter{float:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em;border:1px solid rgba(0,0,0,.12);height:24px;padding:4px 8px}.dataTables_wrapper .dataTables_paginate .paginate_button{background:#fff;color:rgba(0,0,0,.87);border:1px solid rgba(0,0,0,.12);padding:9px 12px;border-radius:2px;cursor:pointer;user-select:none;margin:0 2px}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.05);color:rgba(0,0,0,.87)!important;border:1px solid rgba(0,0,0,.12)!important;background:0 0}.dataTables_wrapper .dataTables_paginate .paginate_button:active{box-shadow:inset 999em 0 0 0 rgba(0,0,0,.08),inset 0 1px 3px 0 rgba(0,0,0,.1),0 1px 0 0 rgba(255,255,255,.35)}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{color:rgba(0,0,0,.54)!important;border-color:rgba(0,0,0,.12)!important;background:#fff!important;box-shadow:none!important;cursor:default}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:#fff;background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(25%,rgba(255,255,255,.9)),color-stop(75%,rgba(255,255,255,.9)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_scroll{display:flex;flex:1 1 0;flex-direction:column;clear:both;min-height:0}.dataTables_wrapper .dataTables_scroll table.dataTable{box-shadow:none}.dataTables_wrapper .dataTables_scroll table.dataTable.row-border thead{border:none}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead{display:flex;min-height:56px;box-shadow:0 0 0 1px rgba(0,0,0,.095),0 1px 1px 0 rgba(0,0,0,.1),0 2px 1px 0 rgba(0,0,0,.05);background:#fff;overflow:visible!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollHead tr th:last-child .table-header .column-title{position:relative;left:7px}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody{display:flex;overflow-x:hidden!important;overflow-y:scroll!important;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody th>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper .dataTables_scroll .dataTables_scrollBody td>.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:none}.dataTables_wrapper.no-footer .dataTables_scrollBody table,.dataTables_wrapper.no-footer .dataTables_scrollHead table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}table.dataTable .show-details{padding:5px 10px;font-weight:700}table.dataTable .action-buttons{display:flex;justify-content:center}table.dataTable .action-buttons .button{padding:8px}.fullpage-datatable .dataTables_wrapper{height:100%;max-height:100%}.explorer-11 .fullpage-datatable .dataTables_scroll{flex:1}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child{padding-left:40px}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr>th:first-child:before{content:'+';width:15px;height:15px;line-height:15px;top:50%;margin-top:-7px;left:8px;color:rgba(0,0,0,.54);background:0 0;border:none;box-shadow:0 0 0 2px rgba(0,0,0,.54);font-weight:700}table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{background:0 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul{display:block}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;border-bottom:1px solid rgba(0,0,0,.12);padding:8px 0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:first-child{padding-top:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li:last-child{border-bottom:none;padding-bottom:0}table.dataTable.dtr-inline.collapsed>tbody>tr.child ul li .dtr-title{margin-right:8px}[hljs],hljs{display:block;overflow-x:auto;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.diff .hljs-header,.hljs-comment{color:#998;font-style:italic}.css .rule .hljs-keyword,.hljs-keyword,.hljs-request,.hljs-status,.hljs-subst,.hljs-winutils,.nginx .hljs-title{color:#333;font-weight:700}.hljs-hexcolor,.hljs-number,.ruby .hljs-constant{color:teal}.hljs-doctag,.hljs-string,.hljs-tag .hljs-value,.tex .hljs-formula{color:#d14}.hljs-id,.hljs-title,.scss .hljs-preprocessor{color:#900;font-weight:700}.hljs-list .hljs-keyword,.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type,.tex .hljs-command,.vhdl .hljs-literal{color:#458;font-weight:700}.django .hljs-tag .hljs-keyword,.hljs-rule .hljs-property,.hljs-tag,.hljs-tag .hljs-title{color:navy;font-weight:400}.hljs-attribute,.hljs-name,.hljs-variable,.lisp .hljs-body{color:teal}.hljs-regexp{color:#009926}.clojure .hljs-keyword,.hljs-prompt,.hljs-symbol,.lisp .hljs-keyword,.ruby .hljs-symbol .hljs-string,.scheme .hljs-keyword,.tex .hljs-special{color:#990073}.hljs-built_in{color:#0086b3}.hljs-cdata,.hljs-doctype,.hljs-pi,.hljs-pragma,.hljs-preprocessor,.hljs-shebang{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}nvd3{display:block;width:100%;height:100%}nvd3.remove-x-lines .nv-x .tick line{display:none}nvd3.remove-y-lines .nv-y .tick line{display:none}nvd3.remove-line-stroke .nv-groups path.nv-line{stroke-width:0!important}nvd3.remove-opacity .nv-groups .nv-group{fill-opacity:1!important}nvd3.show-line-points .nv-line .nv-scatter .nv-groups .nv-point{fill-opacity:1!important;stroke-opacity:1!important}.nvd3 text{font-family:Roboto,"Helvetica Neue",Arial,sans-serif}.nvd3 line.nv-guideline{stroke:rgba(0,0,0,.54)}.nvd3 .nv-groups .nv-point.hover{stroke-width:3px!important;fill-opacity:1!important;stroke-opacity:1!important}.nvtooltip{background:0 0;color:#fff;padding:0;border:none}.nvtooltip.gravity-n:after{display:block;position:absolute;content:'';width:0;height:0;left:50%;bottom:100%;margin-left:-5px;border:5px solid transparent;border-bottom-color:rgba(0,0,0,.87)}.nvtooltip.gravity-s:after{display:block;position:absolute;content:'';width:0;height:0;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:rgba(0,0,0,.87)}.nvtooltip.gravity-e:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;right:0;margin-top:-6px;margin-right:-11px;border:6px solid transparent;border-left-color:rgba(0,0,0,.87)}.nvtooltip.gravity-w:after{display:block;position:absolute;content:'';width:0;height:0;top:50%;margin-top:-6px;margin-left:-11px;border:6px solid transparent;border-right-color:rgba(0,0,0,.87)}.nvtooltip table{background:rgba(0,0,0,.87);padding:8px 12px;margin:0;border-radius:2px}.nvtooltip table tbody tr td.legend-color-guide div{border:none}.nvtooltip table tbody tr td:last-child{padding-right:0}.ps-container:hover .ps-in-scrolling{pointer-events:auto}.ps-container .ps-in-scrolling{pointer-events:auto}.ps-container>.ps-scrollbar-x-rail{background:0 0!important;margin:4px 0;height:4px;z-index:49}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{height:4px}.ps-container>.ps-scrollbar-y-rail{background:0 0!important;margin:4px 0;width:4px;z-index:49}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{width:4px}.ta-root{display:block}.ta-root .ta-scroll-window.form-control{border:1px solid rgba(0,0,0,.12)}.ta-root.focussed>.ta-scroll-window.form-control{outline:0 solid transparent;border:1px solid rgba(0,0,0,.12);box-shadow:none}.ta-root textarea.ta-editor.ta-html{resize:vertical;width:100%!important;border:1px solid rgba(0,0,0,.12);padding:16px}.ta-root .ta-toolbar{border:1px solid rgba(0,0,0,.12);border-bottom:none;background:#f5f5f5}.ta-root .ta-toolbar .ta-group{display:flex;align-items:center;align-content:center;flex-wrap:wrap}.ta-root .ta-toolbar .ta-group #toolbarCC,.ta-root .ta-toolbar .ta-group #toolbarWC{display:inline-block!important;line-height:24px}.ta-root .ta-toolbar .ta-group .md-button{width:40px;min-width:40px;line-height:14px;height:36px;min-height:36px;padding:6px;margin:4px 0}.ta-root .ta-toolbar .ta-group .md-button i{font-size:20px;width:20px;height:20px;line-height:20px}.ng-cloak,.x-ng-cloak,[data-ng-cloak],[ng-cloak],[ng\:cloak],[x-ng-cloak]{display:none!important}.no-padding{padding:0!important}.no-margin{margin:0!important}.no-radius{border-radius:0}.divider-vertical{background:rgba(0,0,0,.12);height:24px;width:1px;margin:0 8px}.hidden{visibility:hidden;opacity:0}[fill-width]{min-width:100%}[fill-height]{min-height:100%}.full-height{height:100%!important}a img{display:block;outline:0}img{max-width:100%;height:auto;vertical-align:top;border:none}.scrollable{display:block;position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.scrollable.only-x{overflow-x:auto;overflow-y:hidden}.scrollable.only-y{overflow-x:hidden;overflow-y:auto}.flex-scrollable{position:relative;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.flex-scrollable.only-x{overflow-x:auto;overflow-y:hidden}.flex-scrollable.only-y{overflow-x:hidden;overflow-y:auto}.background-image-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:-1}.align-vertical:before{display:inline-block;height:100%;content:'';vertical-align:middle}.align-vertical .align-vertical-bottom,.align-vertical .align-vertical-middle,.align-vertical .align-vertical-top{display:inline-block}.align-vertical .align-vertical-top{vertical-align:top}.align-vertical .align-vertical-middle{vertical-align:middle}.align-vertical .align-vertical-bottom{vertical-align:bottom}.p-0,.padding-0{padding:0}.padding-top-0,.pt-0{padding-top:0}.padding-right-0,.pr-0{padding-right:0}.padding-bottom-0,.pb-0{padding-bottom:0}.padding-left-0,.pl-0{padding-left:0}.padding-horizontal-0,.ph-0{padding-left:0;padding-right:0}.padding-vertical-0,.pv-0{padding-top:0;padding-bottom:0}.p-5,.padding-5{padding:5px}.padding-top-5,.pt-5{padding-top:5px}.padding-right-5,.pr-5{padding-right:5px}.padding-bottom-5,.pb-5{padding-bottom:5px}.padding-left-5,.pl-5{padding-left:5px}.padding-horizontal-5,.ph-5{padding-left:5px;padding-right:5px}.padding-vertical-5,.pv-5{padding-top:5px;padding-bottom:5px}.p-10,.padding-10{padding:10px}.padding-top-10,.pt-10{padding-top:10px}.padding-right-10,.pr-10{padding-right:10px}.padding-bottom-10,.pb-10{padding-bottom:10px}.padding-left-10,.pl-10{padding-left:10px}.padding-horizontal-10,.ph-10{padding-left:10px;padding-right:10px}.padding-vertical-10,.pv-10{padding-top:10px;padding-bottom:10px}.p-15,.padding-15{padding:15px}.padding-top-15,.pt-15{padding-top:15px}.padding-right-15,.pr-15{padding-right:15px}.padding-bottom-15,.pb-15{padding-bottom:15px}.padding-left-15,.pl-15{padding-left:15px}.padding-horizontal-15,.ph-15{padding-left:15px;padding-right:15px}.padding-vertical-15,.pv-15{padding-top:15px;padding-bottom:15px}.p-20,.padding-20{padding:20px}.padding-top-20,.pt-20{padding-top:20px}.padding-right-20,.pr-20{padding-right:20px}.padding-bottom-20,.pb-20{padding-bottom:20px}.padding-left-20,.pl-20{padding-left:20px}.padding-horizontal-20,.ph-20{padding-left:20px;padding-right:20px}.padding-vertical-20,.pv-20{padding-top:20px;padding-bottom:20px}.p-25,.padding-25{padding:25px}.padding-top-25,.pt-25{padding-top:25px}.padding-right-25,.pr-25{padding-right:25px}.padding-bottom-25,.pb-25{padding-bottom:25px}.padding-left-25,.pl-25{padding-left:25px}.padding-horizontal-25,.ph-25{padding-left:25px;padding-right:25px}.padding-vertical-25,.pv-25{padding-top:25px;padding-bottom:25px}.p-30,.padding-30{padding:30px}.padding-top-30,.pt-30{padding-top:30px}.padding-right-30,.pr-30{padding-right:30px}.padding-bottom-30,.pb-30{padding-bottom:30px}.padding-left-30,.pl-30{padding-left:30px}.padding-horizontal-30,.ph-30{padding-left:30px;padding-right:30px}.padding-vertical-30,.pv-30{padding-top:30px;padding-bottom:30px}.p-35,.padding-35{padding:35px}.padding-top-35,.pt-35{padding-top:35px}.padding-right-35,.pr-35{padding-right:35px}.padding-bottom-35,.pb-35{padding-bottom:35px}.padding-left-35,.pl-35{padding-left:35px}.padding-horizontal-35,.ph-35{padding-left:35px;padding-right:35px}.padding-vertical-35,.pv-35{padding-top:35px;padding-bottom:35px}.p-40,.padding-40{padding:40px}.padding-top-40,.pt-40{padding-top:40px}.padding-right-40,.pr-40{padding-right:40px}.padding-bottom-40,.pb-40{padding-bottom:40px}.padding-left-40,.pl-40{padding-left:40px}.padding-horizontal-40,.ph-40{padding-left:40px;padding-right:40px}.padding-vertical-40,.pv-40{padding-top:40px;padding-bottom:40px}.p-45,.padding-45{padding:45px}.padding-top-45,.pt-45{padding-top:45px}.padding-right-45,.pr-45{padding-right:45px}.padding-bottom-45,.pb-45{padding-bottom:45px}.padding-left-45,.pl-45{padding-left:45px}.padding-horizontal-45,.ph-45{padding-left:45px;padding-right:45px}.padding-vertical-45,.pv-45{padding-top:45px;padding-bottom:45px}.p-50,.padding-50{padding:50px}.padding-top-50,.pt-50{padding-top:50px}.padding-right-50,.pr-50{padding-right:50px}.padding-bottom-50,.pb-50{padding-bottom:50px}.padding-left-50,.pl-50{padding-left:50px}.padding-horizontal-50,.ph-50{padding-left:50px;padding-right:50px}.padding-vertical-50,.pv-50{padding-top:50px;padding-bottom:50px}.p-55,.padding-55{padding:55px}.padding-top-55,.pt-55{padding-top:55px}.padding-right-55,.pr-55{padding-right:55px}.padding-bottom-55,.pb-55{padding-bottom:55px}.padding-left-55,.pl-55{padding-left:55px}.padding-horizontal-55,.ph-55{padding-left:55px;padding-right:55px}.padding-vertical-55,.pv-55{padding-top:55px;padding-bottom:55px}.p-60,.padding-60{padding:60px}.padding-top-60,.pt-60{padding-top:60px}.padding-right-60,.pr-60{padding-right:60px}.padding-bottom-60,.pb-60{padding-bottom:60px}.padding-left-60,.pl-60{padding-left:60px}.padding-horizontal-60,.ph-60{padding-left:60px;padding-right:60px}.padding-vertical-60,.pv-60{padding-top:60px;padding-bottom:60px}.p-65,.padding-65{padding:65px}.padding-top-65,.pt-65{padding-top:65px}.padding-right-65,.pr-65{padding-right:65px}.padding-bottom-65,.pb-65{padding-bottom:65px}.padding-left-65,.pl-65{padding-left:65px}.padding-horizontal-65,.ph-65{padding-left:65px;padding-right:65px}.padding-vertical-65,.pv-65{padding-top:65px;padding-bottom:65px}.p-70,.padding-70{padding:70px}.padding-top-70,.pt-70{padding-top:70px}.padding-right-70,.pr-70{padding-right:70px}.padding-bottom-70,.pb-70{padding-bottom:70px}.padding-left-70,.pl-70{padding-left:70px}.padding-horizontal-70,.ph-70{padding-left:70px;padding-right:70px}.padding-vertical-70,.pv-70{padding-top:70px;padding-bottom:70px}.p-75,.padding-75{padding:75px}.padding-top-75,.pt-75{padding-top:75px}.padding-right-75,.pr-75{padding-right:75px}.padding-bottom-75,.pb-75{padding-bottom:75px}.padding-left-75,.pl-75{padding-left:75px}.padding-horizontal-75,.ph-75{padding-left:75px;padding-right:75px}.padding-vertical-75,.pv-75{padding-top:75px;padding-bottom:75px}.p-80,.padding-80{padding:80px}.padding-top-80,.pt-80{padding-top:80px}.padding-right-80,.pr-80{padding-right:80px}.padding-bottom-80,.pb-80{padding-bottom:80px}.padding-left-80,.pl-80{padding-left:80px}.padding-horizontal-80,.ph-80{padding-left:80px;padding-right:80px}.padding-vertical-80,.pv-80{padding-top:80px;padding-bottom:80px}.p-85,.padding-85{padding:85px}.padding-top-85,.pt-85{padding-top:85px}.padding-right-85,.pr-85{padding-right:85px}.padding-bottom-85,.pb-85{padding-bottom:85px}.padding-left-85,.pl-85{padding-left:85px}.padding-horizontal-85,.ph-85{padding-left:85px;padding-right:85px}.padding-vertical-85,.pv-85{padding-top:85px;padding-bottom:85px}.p-90,.padding-90{padding:90px}.padding-top-90,.pt-90{padding-top:90px}.padding-right-90,.pr-90{padding-right:90px}.padding-bottom-90,.pb-90{padding-bottom:90px}.padding-left-90,.pl-90{padding-left:90px}.padding-horizontal-90,.ph-90{padding-left:90px;padding-right:90px}.padding-vertical-90,.pv-90{padding-top:90px;padding-bottom:90px}.p-95,.padding-95{padding:95px}.padding-top-95,.pt-95{padding-top:95px}.padding-right-95,.pr-95{padding-right:95px}.padding-bottom-95,.pb-95{padding-bottom:95px}.padding-left-95,.pl-95{padding-left:95px}.padding-horizontal-95,.ph-95{padding-left:95px;padding-right:95px}.padding-vertical-95,.pv-95{padding-top:95px;padding-bottom:95px}.p-100,.padding-100{padding:100px}.padding-top-100,.pt-100{padding-top:100px}.padding-right-100,.pr-100{padding-right:100px}.padding-bottom-100,.pb-100{padding-bottom:100px}.padding-left-100,.pl-100{padding-left:100px}.padding-horizontal-100,.ph-100{padding-left:100px;padding-right:100px}.padding-vertical-100,.pv-100{padding-top:100px;padding-bottom:100px}.p-8,.padding-8{padding:8px}.padding-top-8,.pt-8{padding-top:8px}.padding-right-8,.pr-8{padding-right:8px}.padding-bottom-8,.pb-8{padding-bottom:8px}.padding-left-8,.pl-8{padding-left:8px}.padding-horizontal-8,.ph-8{padding-left:8px;padding-right:8px}.padding-vertical-8,.pv-8{padding-top:8px;padding-bottom:8px}.p-16,.padding-16{padding:16px}.padding-top-16,.pt-16{padding-top:16px}.padding-right-16,.pr-16{padding-right:16px}.padding-bottom-16,.pb-16{padding-bottom:16px}.padding-left-16,.pl-16{padding-left:16px}.padding-horizontal-16,.ph-16{padding-left:16px;padding-right:16px}.padding-vertical-16,.pv-16{padding-top:16px;padding-bottom:16px}.p-24,.padding-24{padding:24px}.padding-top-24,.pt-24{padding-top:24px}.padding-right-24,.pr-24{padding-right:24px}.padding-bottom-24,.pb-24{padding-bottom:24px}.padding-left-24,.pl-24{padding-left:24px}.padding-horizontal-24,.ph-24{padding-left:24px;padding-right:24px}.padding-vertical-24,.pv-24{padding-top:24px;padding-bottom:24px}.p-32,.padding-32{padding:32px}.padding-top-32,.pt-32{padding-top:32px}.padding-right-32,.pr-32{padding-right:32px}.padding-bottom-32,.pb-32{padding-bottom:32px}.padding-left-32,.pl-32{padding-left:32px}.padding-horizontal-32,.ph-32{padding-left:32px;padding-right:32px}.padding-vertical-32,.pv-32{padding-top:32px;padding-bottom:32px}.p-48,.padding-48{padding:48px}.padding-top-48,.pt-48{padding-top:48px}.padding-right-48,.pr-48{padding-right:48px}.padding-bottom-48,.pb-48{padding-bottom:48px}.padding-left-48,.pl-48{padding-left:48px}.padding-horizontal-48,.ph-48{padding-left:48px;padding-right:48px}.padding-vertical-48,.pv-48{padding-top:48px;padding-bottom:48px}.p-56,.padding-56{padding:56px}.padding-top-56,.pt-56{padding-top:56px}.padding-right-56,.pr-56{padding-right:56px}.padding-bottom-56,.pb-56{padding-bottom:56px}.padding-left-56,.pl-56{padding-left:56px}.padding-horizontal-56,.ph-56{padding-left:56px;padding-right:56px}.padding-vertical-56,.pv-56{padding-top:56px;padding-bottom:56px}.p-64,.padding-64{padding:64px}.padding-top-64,.pt-64{padding-top:64px}.padding-right-64,.pr-64{padding-right:64px}.padding-bottom-64,.pb-64{padding-bottom:64px}.padding-left-64,.pl-64{padding-left:64px}.padding-horizontal-64,.ph-64{padding-left:64px;padding-right:64px}.padding-vertical-64,.pv-64{padding-top:64px;padding-bottom:64px}.p-72,.padding-72{padding:72px}.padding-top-72,.pt-72{padding-top:72px}.padding-right-72,.pr-72{padding-right:72px}.padding-bottom-72,.pb-72{padding-bottom:72px}.padding-left-72,.pl-72{padding-left:72px}.padding-horizontal-72,.ph-72{padding-left:72px;padding-right:72px}.padding-vertical-72,.pv-72{padding-top:72px;padding-bottom:72px}.p-88,.padding-88{padding:88px}.padding-top-88,.pt-88{padding-top:88px}.padding-right-88,.pr-88{padding-right:88px}.padding-bottom-88,.pb-88{padding-bottom:88px}.padding-left-88,.pl-88{padding-left:88px}.padding-horizontal-88,.ph-88{padding-left:88px;padding-right:88px}.padding-vertical-88,.pv-88{padding-top:88px;padding-bottom:88px}.p-96,.padding-96{padding:96px}.padding-top-96,.pt-96{padding-top:96px}.padding-right-96,.pr-96{padding-right:96px}.padding-bottom-96,.pb-96{padding-bottom:96px}.padding-left-96,.pl-96{padding-left:96px}.padding-horizontal-96,.ph-96{padding-left:96px;padding-right:96px}.padding-vertical-96,.pv-96{padding-top:96px;padding-bottom:96px}.m-0,.margin-0{margin:0}.margin-top-0,.mt-0{margin-top:0}.margin-right-0,.mr-0{margin-right:0}.margin-bottom-0,.mb-0{margin-bottom:0}.margin-left-0,.ml-0{margin-left:0}.margin-horizontal-0,.mh-0{margin-left:0;margin-right:0}.margin-vertical-0,.mv-0{margin-top:0;margin-bottom:0}.m-5,.margin-5{margin:5px}.margin-top-5,.mt-5{margin-top:5px}.margin-right-5,.mr-5{margin-right:5px}.margin-bottom-5,.mb-5{margin-bottom:5px}.margin-left-5,.ml-5{margin-left:5px}.margin-horizontal-5,.mh-5{margin-left:5px;margin-right:5px}.margin-vertical-5,.mv-5{margin-top:5px;margin-bottom:5px}.m-10,.margin-10{margin:10px}.margin-top-10,.mt-10{margin-top:10px}.margin-right-10,.mr-10{margin-right:10px}.margin-bottom-10,.mb-10{margin-bottom:10px}.margin-left-10,.ml-10{margin-left:10px}.margin-horizontal-10,.mh-10{margin-left:10px;margin-right:10px}.margin-vertical-10,.mv-10{margin-top:10px;margin-bottom:10px}.m-15,.margin-15{margin:15px}.margin-top-15,.mt-15{margin-top:15px}.margin-right-15,.mr-15{margin-right:15px}.margin-bottom-15,.mb-15{margin-bottom:15px}.margin-left-15,.ml-15{margin-left:15px}.margin-horizontal-15,.mh-15{margin-left:15px;margin-right:15px}.margin-vertical-15,.mv-15{margin-top:15px;margin-bottom:15px}.m-20,.margin-20{margin:20px}.margin-top-20,.mt-20{margin-top:20px}.margin-right-20,.mr-20{margin-right:20px}.margin-bottom-20,.mb-20{margin-bottom:20px}.margin-left-20,.ml-20{margin-left:20px}.margin-horizontal-20,.mh-20{margin-left:20px;margin-right:20px}.margin-vertical-20,.mv-20{margin-top:20px;margin-bottom:20px}.m-25,.margin-25{margin:25px}.margin-top-25,.mt-25{margin-top:25px}.margin-right-25,.mr-25{margin-right:25px}.margin-bottom-25,.mb-25{margin-bottom:25px}.margin-left-25,.ml-25{margin-left:25px}.margin-horizontal-25,.mh-25{margin-left:25px;margin-right:25px}.margin-vertical-25,.mv-25{margin-top:25px;margin-bottom:25px}.m-30,.margin-30{margin:30px}.margin-top-30,.mt-30{margin-top:30px}.margin-right-30,.mr-30{margin-right:30px}.margin-bottom-30,.mb-30{margin-bottom:30px}.margin-left-30,.ml-30{margin-left:30px}.margin-horizontal-30,.mh-30{margin-left:30px;margin-right:30px}.margin-vertical-30,.mv-30{margin-top:30px;margin-bottom:30px}.m-35,.margin-35{margin:35px}.margin-top-35,.mt-35{margin-top:35px}.margin-right-35,.mr-35{margin-right:35px}.margin-bottom-35,.mb-35{margin-bottom:35px}.margin-left-35,.ml-35{margin-left:35px}.margin-horizontal-35,.mh-35{margin-left:35px;margin-right:35px}.margin-vertical-35,.mv-35{margin-top:35px;margin-bottom:35px}.m-40,.margin-40{margin:40px}.margin-top-40,.mt-40{margin-top:40px}.margin-right-40,.mr-40{margin-right:40px}.margin-bottom-40,.mb-40{margin-bottom:40px}.margin-left-40,.ml-40{margin-left:40px}.margin-horizontal-40,.mh-40{margin-left:40px;margin-right:40px}.margin-vertical-40,.mv-40{margin-top:40px;margin-bottom:40px}.m-45,.margin-45{margin:45px}.margin-top-45,.mt-45{margin-top:45px}.margin-right-45,.mr-45{margin-right:45px}.margin-bottom-45,.mb-45{margin-bottom:45px}.margin-left-45,.ml-45{margin-left:45px}.margin-horizontal-45,.mh-45{margin-left:45px;margin-right:45px}.margin-vertical-45,.mv-45{margin-top:45px;margin-bottom:45px}.m-50,.margin-50{margin:50px}.margin-top-50,.mt-50{margin-top:50px}.margin-right-50,.mr-50{margin-right:50px}.margin-bottom-50,.mb-50{margin-bottom:50px}.margin-left-50,.ml-50{margin-left:50px}.margin-horizontal-50,.mh-50{margin-left:50px;margin-right:50px}.margin-vertical-50,.mv-50{margin-top:50px;margin-bottom:50px}.m-55,.margin-55{margin:55px}.margin-top-55,.mt-55{margin-top:55px}.margin-right-55,.mr-55{margin-right:55px}.margin-bottom-55,.mb-55{margin-bottom:55px}.margin-left-55,.ml-55{margin-left:55px}.margin-horizontal-55,.mh-55{margin-left:55px;margin-right:55px}.margin-vertical-55,.mv-55{margin-top:55px;margin-bottom:55px}.m-60,.margin-60{margin:60px}.margin-top-60,.mt-60{margin-top:60px}.margin-right-60,.mr-60{margin-right:60px}.margin-bottom-60,.mb-60{margin-bottom:60px}.margin-left-60,.ml-60{margin-left:60px}.margin-horizontal-60,.mh-60{margin-left:60px;margin-right:60px}.margin-vertical-60,.mv-60{margin-top:60px;margin-bottom:60px}.m-65,.margin-65{margin:65px}.margin-top-65,.mt-65{margin-top:65px}.margin-right-65,.mr-65{margin-right:65px}.margin-bottom-65,.mb-65{margin-bottom:65px}.margin-left-65,.ml-65{margin-left:65px}.margin-horizontal-65,.mh-65{margin-left:65px;margin-right:65px}.margin-vertical-65,.mv-65{margin-top:65px;margin-bottom:65px}.m-70,.margin-70{margin:70px}.margin-top-70,.mt-70{margin-top:70px}.margin-right-70,.mr-70{margin-right:70px}.margin-bottom-70,.mb-70{margin-bottom:70px}.margin-left-70,.ml-70{margin-left:70px}.margin-horizontal-70,.mh-70{margin-left:70px;margin-right:70px}.margin-vertical-70,.mv-70{margin-top:70px;margin-bottom:70px}.m-75,.margin-75{margin:75px}.margin-top-75,.mt-75{margin-top:75px}.margin-right-75,.mr-75{margin-right:75px}.margin-bottom-75,.mb-75{margin-bottom:75px}.margin-left-75,.ml-75{margin-left:75px}.margin-horizontal-75,.mh-75{margin-left:75px;margin-right:75px}.margin-vertical-75,.mv-75{margin-top:75px;margin-bottom:75px}.m-80,.margin-80{margin:80px}.margin-top-80,.mt-80{margin-top:80px}.margin-right-80,.mr-80{margin-right:80px}.margin-bottom-80,.mb-80{margin-bottom:80px}.margin-left-80,.ml-80{margin-left:80px}.margin-horizontal-80,.mh-80{margin-left:80px;margin-right:80px}.margin-vertical-80,.mv-80{margin-top:80px;margin-bottom:80px}.m-85,.margin-85{margin:85px}.margin-top-85,.mt-85{margin-top:85px}.margin-right-85,.mr-85{margin-right:85px}.margin-bottom-85,.mb-85{margin-bottom:85px}.margin-left-85,.ml-85{margin-left:85px}.margin-horizontal-85,.mh-85{margin-left:85px;margin-right:85px}.margin-vertical-85,.mv-85{margin-top:85px;margin-bottom:85px}.m-90,.margin-90{margin:90px}.margin-top-90,.mt-90{margin-top:90px}.margin-right-90,.mr-90{margin-right:90px}.margin-bottom-90,.mb-90{margin-bottom:90px}.margin-left-90,.ml-90{margin-left:90px}.margin-horizontal-90,.mh-90{margin-left:90px;margin-right:90px}.margin-vertical-90,.mv-90{margin-top:90px;margin-bottom:90px}.m-95,.margin-95{margin:95px}.margin-top-95,.mt-95{margin-top:95px}.margin-right-95,.mr-95{margin-right:95px}.margin-bottom-95,.mb-95{margin-bottom:95px}.margin-left-95,.ml-95{margin-left:95px}.margin-horizontal-95,.mh-95{margin-left:95px;margin-right:95px}.margin-vertical-95,.mv-95{margin-top:95px;margin-bottom:95px}.m-100,.margin-100{margin:100px}.margin-top-100,.mt-100{margin-top:100px}.margin-right-100,.mr-100{margin-right:100px}.margin-bottom-100,.mb-100{margin-bottom:100px}.margin-left-100,.ml-100{margin-left:100px}.margin-horizontal-100,.mh-100{margin-left:100px;margin-right:100px}.margin-vertical-100,.mv-100{margin-top:100px;margin-bottom:100px}.m-8,.margin-8{margin:8px}.margin-top-8,.mt-8{margin-top:8px}.margin-right-8,.mr-8{margin-right:8px}.margin-bottom-8,.mb-8{margin-bottom:8px}.margin-left-8,.ml-8{margin-left:8px}.margin-horizontal-8,.mh-8{margin-left:8px;margin-right:8px}.margin-vertical-8,.mv-8{margin-top:8px;margin-bottom:8px}.m-16,.margin-16{margin:16px}.margin-top-16,.mt-16{margin-top:16px}.margin-right-16,.mr-16{margin-right:16px}.margin-bottom-16,.mb-16{margin-bottom:16px}.margin-left-16,.ml-16{margin-left:16px}.margin-horizontal-16,.mh-16{margin-left:16px;margin-right:16px}.margin-vertical-16,.mv-16{margin-top:16px;margin-bottom:16px}.m-24,.margin-24{margin:24px}.margin-top-24,.mt-24{margin-top:24px}.margin-right-24,.mr-24{margin-right:24px}.margin-bottom-24,.mb-24{margin-bottom:24px}.margin-left-24,.ml-24{margin-left:24px}.margin-horizontal-24,.mh-24{margin-left:24px;margin-right:24px}.margin-vertical-24,.mv-24{margin-top:24px;margin-bottom:24px}.m-32,.margin-32{margin:32px}.margin-top-32,.mt-32{margin-top:32px}.margin-right-32,.mr-32{margin-right:32px}.margin-bottom-32,.mb-32{margin-bottom:32px}.margin-left-32,.ml-32{margin-left:32px}.margin-horizontal-32,.mh-32{margin-left:32px;margin-right:32px}.margin-vertical-32,.mv-32{margin-top:32px;margin-bottom:32px}.m-48,.margin-48{margin:48px}.margin-top-48,.mt-48{margin-top:48px}.margin-right-48,.mr-48{margin-right:48px}.margin-bottom-48,.mb-48{margin-bottom:48px}.margin-left-48,.ml-48{margin-left:48px}.margin-horizontal-48,.mh-48{margin-left:48px;margin-right:48px}.margin-vertical-48,.mv-48{margin-top:48px;margin-bottom:48px}.m-56,.margin-56{margin:56px}.margin-top-56,.mt-56{margin-top:56px}.margin-right-56,.mr-56{margin-right:56px}.margin-bottom-56,.mb-56{margin-bottom:56px}.margin-left-56,.ml-56{margin-left:56px}.margin-horizontal-56,.mh-56{margin-left:56px;margin-right:56px}.margin-vertical-56,.mv-56{margin-top:56px;margin-bottom:56px}.m-64,.margin-64{margin:64px}.margin-top-64,.mt-64{margin-top:64px}.margin-right-64,.mr-64{margin-right:64px}.margin-bottom-64,.mb-64{margin-bottom:64px}.margin-left-64,.ml-64{margin-left:64px}.margin-horizontal-64,.mh-64{margin-left:64px;margin-right:64px}.margin-vertical-64,.mv-64{margin-top:64px;margin-bottom:64px}.m-72,.margin-72{margin:72px}.margin-top-72,.mt-72{margin-top:72px}.margin-right-72,.mr-72{margin-right:72px}.margin-bottom-72,.mb-72{margin-bottom:72px}.margin-left-72,.ml-72{margin-left:72px}.margin-horizontal-72,.mh-72{margin-left:72px;margin-right:72px}.margin-vertical-72,.mv-72{margin-top:72px;margin-bottom:72px}.m-88,.margin-88{margin:88px}.margin-top-88,.mt-88{margin-top:88px}.margin-right-88,.mr-88{margin-right:88px}.margin-bottom-88,.mb-88{margin-bottom:88px}.margin-left-88,.ml-88{margin-left:88px}.margin-horizontal-88,.mh-88{margin-left:88px;margin-right:88px}.margin-vertical-88,.mv-88{margin-top:88px;margin-bottom:88px}.m-96,.margin-96{margin:96px}.margin-top-96,.mt-96{margin-top:96px}.margin-right-96,.mr-96{margin-right:96px}.margin-bottom-96,.mb-96{margin-bottom:96px}.margin-left-96,.ml-96{margin-left:96px}.margin-horizontal-96,.mh-96{margin-left:96px;margin-right:96px}.margin-vertical-96,.mv-96{margin-top:96px;margin-bottom:96px}.h-0,.height-0{height:0!important;min-height:0!important;max-height:0!important}.w-0,.width-0{width:0!important;min-width:0!important;max-width:0!important}.h-5,.height-5{height:5px!important;min-height:5px!important;max-height:5px!important}.w-5,.width-5{width:5px!important;min-width:5px!important;max-width:5px!important}.h-10,.height-10{height:10px!important;min-height:10px!important;max-height:10px!important}.w-10,.width-10{width:10px!important;min-width:10px!important;max-width:10px!important}.h-15,.height-15{height:15px!important;min-height:15px!important;max-height:15px!important}.w-15,.width-15{width:15px!important;min-width:15px!important;max-width:15px!important}.h-20,.height-20{height:20px!important;min-height:20px!important;max-height:20px!important}.w-20,.width-20{width:20px!important;min-width:20px!important;max-width:20px!important}.h-25,.height-25{height:25px!important;min-height:25px!important;max-height:25px!important}.w-25,.width-25{width:25px!important;min-width:25px!important;max-width:25px!important}.h-30,.height-30{height:30px!important;min-height:30px!important;max-height:30px!important}.w-30,.width-30{width:30px!important;min-width:30px!important;max-width:30px!important}.h-35,.height-35{height:35px!important;min-height:35px!important;max-height:35px!important}.w-35,.width-35{width:35px!important;min-width:35px!important;max-width:35px!important}.h-40,.height-40{height:40px!important;min-height:40px!important;max-height:40px!important}.w-40,.width-40{width:40px!important;min-width:40px!important;max-width:40px!important}.h-45,.height-45{height:45px!important;min-height:45px!important;max-height:45px!important}.w-45,.width-45{width:45px!important;min-width:45px!important;max-width:45px!important}.h-50,.height-50{height:50px!important;min-height:50px!important;max-height:50px!important}.w-50,.width-50{width:50px!important;min-width:50px!important;max-width:50px!important}.h-55,.height-55{height:55px!important;min-height:55px!important;max-height:55px!important}.w-55,.width-55{width:55px!important;min-width:55px!important;max-width:55px!important}.h-60,.height-60{height:60px!important;min-height:60px!important;max-height:60px!important}.w-60,.width-60{width:60px!important;min-width:60px!important;max-width:60px!important}.h-65,.height-65{height:65px!important;min-height:65px!important;max-height:65px!important}.w-65,.width-65{width:65px!important;min-width:65px!important;max-width:65px!important}.h-70,.height-70{height:70px!important;min-height:70px!important;max-height:70px!important}.w-70,.width-70{width:70px!important;min-width:70px!important;max-width:70px!important}.h-75,.height-75{height:75px!important;min-height:75px!important;max-height:75px!important}.w-75,.width-75{width:75px!important;min-width:75px!important;max-width:75px!important}.h-80,.height-80{height:80px!important;min-height:80px!important;max-height:80px!important}.w-80,.width-80{width:80px!important;min-width:80px!important;max-width:80px!important}.h-85,.height-85{height:85px!important;min-height:85px!important;max-height:85px!important}.w-85,.width-85{width:85px!important;min-width:85px!important;max-width:85px!important}.h-90,.height-90{height:90px!important;min-height:90px!important;max-height:90px!important}.w-90,.width-90{width:90px!important;min-width:90px!important;max-width:90px!important}.h-95,.height-95{height:95px!important;min-height:95px!important;max-height:95px!important}.w-95,.width-95{width:95px!important;min-width:95px!important;max-width:95px!important}.h-100,.height-100{height:100px!important;min-height:100px!important;max-height:100px!important}.w-100,.width-100{width:100px!important;min-width:100px!important;max-width:100px!important}.h-105,.height-105{height:105px!important;min-height:105px!important;max-height:105px!important}.w-105,.width-105{width:105px!important;min-width:105px!important;max-width:105px!important}.h-110,.height-110{height:110px!important;min-height:110px!important;max-height:110px!important}.w-110,.width-110{width:110px!important;min-width:110px!important;max-width:110px!important}.h-115,.height-115{height:115px!important;min-height:115px!important;max-height:115px!important}.w-115,.width-115{width:115px!important;min-width:115px!important;max-width:115px!important}.h-120,.height-120{height:120px!important;min-height:120px!important;max-height:120px!important}.w-120,.width-120{width:120px!important;min-width:120px!important;max-width:120px!important}.h-125,.height-125{height:125px!important;min-height:125px!important;max-height:125px!important}.w-125,.width-125{width:125px!important;min-width:125px!important;max-width:125px!important}.h-130,.height-130{height:130px!important;min-height:130px!important;max-height:130px!important}.w-130,.width-130{width:130px!important;min-width:130px!important;max-width:130px!important}.h-135,.height-135{height:135px!important;min-height:135px!important;max-height:135px!important}.w-135,.width-135{width:135px!important;min-width:135px!important;max-width:135px!important}.h-140,.height-140{height:140px!important;min-height:140px!important;max-height:140px!important}.w-140,.width-140{width:140px!important;min-width:140px!important;max-width:140px!important}.h-145,.height-145{height:145px!important;min-height:145px!important;max-height:145px!important}.w-145,.width-145{width:145px!important;min-width:145px!important;max-width:145px!important}.h-150,.height-150{height:150px!important;min-height:150px!important;max-height:150px!important}.w-150,.width-150{width:150px!important;min-width:150px!important;max-width:150px!important}.h-155,.height-155{height:155px!important;min-height:155px!important;max-height:155px!important}.w-155,.width-155{width:155px!important;min-width:155px!important;max-width:155px!important}.h-160,.height-160{height:160px!important;min-height:160px!important;max-height:160px!important}.w-160,.width-160{width:160px!important;min-width:160px!important;max-width:160px!important}.h-165,.height-165{height:165px!important;min-height:165px!important;max-height:165px!important}.w-165,.width-165{width:165px!important;min-width:165px!important;max-width:165px!important}.h-170,.height-170{height:170px!important;min-height:170px!important;max-height:170px!important}.w-170,.width-170{width:170px!important;min-width:170px!important;max-width:170px!important}.h-175,.height-175{height:175px!important;min-height:175px!important;max-height:175px!important}.w-175,.width-175{width:175px!important;min-width:175px!important;max-width:175px!important}.h-180,.height-180{height:180px!important;min-height:180px!important;max-height:180px!important}.w-180,.width-180{width:180px!important;min-width:180px!important;max-width:180px!important}.h-185,.height-185{height:185px!important;min-height:185px!important;max-height:185px!important}.w-185,.width-185{width:185px!important;min-width:185px!important;max-width:185px!important}.h-190,.height-190{height:190px!important;min-height:190px!important;max-height:190px!important}.w-190,.width-190{width:190px!important;min-width:190px!important;max-width:190px!important}.h-195,.height-195{height:195px!important;min-height:195px!important;max-height:195px!important}.w-195,.width-195{width:195px!important;min-width:195px!important;max-width:195px!important}.h-200,.height-200{height:200px!important;min-height:200px!important;max-height:200px!important}.w-200,.width-200{width:200px!important;min-width:200px!important;max-width:200px!important}.h-205,.height-205{height:205px!important;min-height:205px!important;max-height:205px!important}.w-205,.width-205{width:205px!important;min-width:205px!important;max-width:205px!important}.h-210,.height-210{height:210px!important;min-height:210px!important;max-height:210px!important}.w-210,.width-210{width:210px!important;min-width:210px!important;max-width:210px!important}.h-215,.height-215{height:215px!important;min-height:215px!important;max-height:215px!important}.w-215,.width-215{width:215px!important;min-width:215px!important;max-width:215px!important}.h-220,.height-220{height:220px!important;min-height:220px!important;max-height:220px!important}.w-220,.width-220{width:220px!important;min-width:220px!important;max-width:220px!important}.h-225,.height-225{height:225px!important;min-height:225px!important;max-height:225px!important}.w-225,.width-225{width:225px!important;min-width:225px!important;max-width:225px!important}.h-230,.height-230{height:230px!important;min-height:230px!important;max-height:230px!important}.w-230,.width-230{width:230px!important;min-width:230px!important;max-width:230px!important}.h-235,.height-235{height:235px!important;min-height:235px!important;max-height:235px!important}.w-235,.width-235{width:235px!important;min-width:235px!important;max-width:235px!important}.h-240,.height-240{height:240px!important;min-height:240px!important;max-height:240px!important}.w-240,.width-240{width:240px!important;min-width:240px!important;max-width:240px!important}.h-245,.height-245{height:245px!important;min-height:245px!important;max-height:245px!important}.w-245,.width-245{width:245px!important;min-width:245px!important;max-width:245px!important}.h-250,.height-250{height:250px!important;min-height:250px!important;max-height:250px!important}.w-250,.width-250{width:250px!important;min-width:250px!important;max-width:250px!important}.h-255,.height-255{height:255px!important;min-height:255px!important;max-height:255px!important}.w-255,.width-255{width:255px!important;min-width:255px!important;max-width:255px!important}.h-260,.height-260{height:260px!important;min-height:260px!important;max-height:260px!important}.w-260,.width-260{width:260px!important;min-width:260px!important;max-width:260px!important}.h-265,.height-265{height:265px!important;min-height:265px!important;max-height:265px!important}.w-265,.width-265{width:265px!important;min-width:265px!important;max-width:265px!important}.h-270,.height-270{height:270px!important;min-height:270px!important;max-height:270px!important}.w-270,.width-270{width:270px!important;min-width:270px!important;max-width:270px!important}.h-275,.height-275{height:275px!important;min-height:275px!important;max-height:275px!important}.w-275,.width-275{width:275px!important;min-width:275px!important;max-width:275px!important}.h-280,.height-280{height:280px!important;min-height:280px!important;max-height:280px!important}.w-280,.width-280{width:280px!important;min-width:280px!important;max-width:280px!important}.h-285,.height-285{height:285px!important;min-height:285px!important;max-height:285px!important}.w-285,.width-285{width:285px!important;min-width:285px!important;max-width:285px!important}.h-290,.height-290{height:290px!important;min-height:290px!important;max-height:290px!important}.w-290,.width-290{width:290px!important;min-width:290px!important;max-width:290px!important}.h-295,.height-295{height:295px!important;min-height:295px!important;max-height:295px!important}.w-295,.width-295{width:295px!important;min-width:295px!important;max-width:295px!important}.h-300,.height-300{height:300px!important;min-height:300px!important;max-height:300px!important}.w-300,.width-300{width:300px!important;min-width:300px!important;max-width:300px!important}.h-305,.height-305{height:305px!important;min-height:305px!important;max-height:305px!important}.w-305,.width-305{width:305px!important;min-width:305px!important;max-width:305px!important}.h-310,.height-310{height:310px!important;min-height:310px!important;max-height:310px!important}.w-310,.width-310{width:310px!important;min-width:310px!important;max-width:310px!important}.h-315,.height-315{height:315px!important;min-height:315px!important;max-height:315px!important}.w-315,.width-315{width:315px!important;min-width:315px!important;max-width:315px!important}.h-320,.height-320{height:320px!important;min-height:320px!important;max-height:320px!important}.w-320,.width-320{width:320px!important;min-width:320px!important;max-width:320px!important}.h-325,.height-325{height:325px!important;min-height:325px!important;max-height:325px!important}.w-325,.width-325{width:325px!important;min-width:325px!important;max-width:325px!important}.h-330,.height-330{height:330px!important;min-height:330px!important;max-height:330px!important}.w-330,.width-330{width:330px!important;min-width:330px!important;max-width:330px!important}.h-335,.height-335{height:335px!important;min-height:335px!important;max-height:335px!important}.w-335,.width-335{width:335px!important;min-width:335px!important;max-width:335px!important}.h-340,.height-340{height:340px!important;min-height:340px!important;max-height:340px!important}.w-340,.width-340{width:340px!important;min-width:340px!important;max-width:340px!important}.h-345,.height-345{height:345px!important;min-height:345px!important;max-height:345px!important}.w-345,.width-345{width:345px!important;min-width:345px!important;max-width:345px!important}.h-350,.height-350{height:350px!important;min-height:350px!important;max-height:350px!important}.w-350,.width-350{width:350px!important;min-width:350px!important;max-width:350px!important}.h-355,.height-355{height:355px!important;min-height:355px!important;max-height:355px!important}.w-355,.width-355{width:355px!important;min-width:355px!important;max-width:355px!important}.h-360,.height-360{height:360px!important;min-height:360px!important;max-height:360px!important}.w-360,.width-360{width:360px!important;min-width:360px!important;max-width:360px!important}.h-365,.height-365{height:365px!important;min-height:365px!important;max-height:365px!important}.w-365,.width-365{width:365px!important;min-width:365px!important;max-width:365px!important}.h-370,.height-370{height:370px!important;min-height:370px!important;max-height:370px!important}.w-370,.width-370{width:370px!important;min-width:370px!important;max-width:370px!important}.h-375,.height-375{height:375px!important;min-height:375px!important;max-height:375px!important}.w-375,.width-375{width:375px!important;min-width:375px!important;max-width:375px!important}.h-380,.height-380{height:380px!important;min-height:380px!important;max-height:380px!important}.w-380,.width-380{width:380px!important;min-width:380px!important;max-width:380px!important}.h-385,.height-385{height:385px!important;min-height:385px!important;max-height:385px!important}.w-385,.width-385{width:385px!important;min-width:385px!important;max-width:385px!important}.h-390,.height-390{height:390px!important;min-height:390px!important;max-height:390px!important}.w-390,.width-390{width:390px!important;min-width:390px!important;max-width:390px!important}.h-395,.height-395{height:395px!important;min-height:395px!important;max-height:395px!important}.w-395,.width-395{width:395px!important;min-width:395px!important;max-width:395px!important}.h-400,.height-400{height:400px!important;min-height:400px!important;max-height:400px!important}.w-400,.width-400{width:400px!important;min-width:400px!important;max-width:400px!important}.h-405,.height-405{height:405px!important;min-height:405px!important;max-height:405px!important}.w-405,.width-405{width:405px!important;min-width:405px!important;max-width:405px!important}.h-410,.height-410{height:410px!important;min-height:410px!important;max-height:410px!important}.w-410,.width-410{width:410px!important;min-width:410px!important;max-width:410px!important}.h-415,.height-415{height:415px!important;min-height:415px!important;max-height:415px!important}.w-415,.width-415{width:415px!important;min-width:415px!important;max-width:415px!important}.h-420,.height-420{height:420px!important;min-height:420px!important;max-height:420px!important}.w-420,.width-420{width:420px!important;min-width:420px!important;max-width:420px!important}.h-425,.height-425{height:425px!important;min-height:425px!important;max-height:425px!important}.w-425,.width-425{width:425px!important;min-width:425px!important;max-width:425px!important}.h-430,.height-430{height:430px!important;min-height:430px!important;max-height:430px!important}.w-430,.width-430{width:430px!important;min-width:430px!important;max-width:430px!important}.h-435,.height-435{height:435px!important;min-height:435px!important;max-height:435px!important}.w-435,.width-435{width:435px!important;min-width:435px!important;max-width:435px!important}.h-440,.height-440{height:440px!important;min-height:440px!important;max-height:440px!important}.w-440,.width-440{width:440px!important;min-width:440px!important;max-width:440px!important}.h-445,.height-445{height:445px!important;min-height:445px!important;max-height:445px!important}.w-445,.width-445{width:445px!important;min-width:445px!important;max-width:445px!important}.h-450,.height-450{height:450px!important;min-height:450px!important;max-height:450px!important}.w-450,.width-450{width:450px!important;min-width:450px!important;max-width:450px!important}.h-455,.height-455{height:455px!important;min-height:455px!important;max-height:455px!important}.w-455,.width-455{width:455px!important;min-width:455px!important;max-width:455px!important}.h-460,.height-460{height:460px!important;min-height:460px!important;max-height:460px!important}.w-460,.width-460{width:460px!important;min-width:460px!important;max-width:460px!important}.h-465,.height-465{height:465px!important;min-height:465px!important;max-height:465px!important}.w-465,.width-465{width:465px!important;min-width:465px!important;max-width:465px!important}.h-470,.height-470{height:470px!important;min-height:470px!important;max-height:470px!important}.w-470,.width-470{width:470px!important;min-width:470px!important;max-width:470px!important}.h-475,.height-475{height:475px!important;min-height:475px!important;max-height:475px!important}.w-475,.width-475{width:475px!important;min-width:475px!important;max-width:475px!important}.h-480,.height-480{height:480px!important;min-height:480px!important;max-height:480px!important}.w-480,.width-480{width:480px!important;min-width:480px!important;max-width:480px!important}.h-485,.height-485{height:485px!important;min-height:485px!important;max-height:485px!important}.w-485,.width-485{width:485px!important;min-width:485px!important;max-width:485px!important}.h-490,.height-490{height:490px!important;min-height:490px!important;max-height:490px!important}.w-490,.width-490{width:490px!important;min-width:490px!important;max-width:490px!important}.h-495,.height-495{height:495px!important;min-height:495px!important;max-height:495px!important}.w-495,.width-495{width:495px!important;min-width:495px!important;max-width:495px!important}.h-500,.height-500{height:500px!important;min-height:500px!important;max-height:500px!important}.w-500,.width-500{width:500px!important;min-width:500px!important;max-width:500px!important}.h-8,.height-8{height:8px!important;min-height:8px!important;max-height:8px!important}.w-8,.width-8{width:8px!important;min-width:8px!important;max-width:8px!important}.h-16,.height-16{height:16px!important;min-height:16px!important;max-height:16px!important}.w-16,.width-16{width:16px!important;min-width:16px!important;max-width:16px!important}.h-24,.height-24{height:24px!important;min-height:24px!important;max-height:24px!important}.w-24,.width-24{width:24px!important;min-width:24px!important;max-width:24px!important}.h-32,.height-32{height:32px!important;min-height:32px!important;max-height:32px!important}.w-32,.width-32{width:32px!important;min-width:32px!important;max-width:32px!important}.h-48,.height-48{height:48px!important;min-height:48px!important;max-height:48px!important}.w-48,.width-48{width:48px!important;min-width:48px!important;max-width:48px!important}.h-56,.height-56{height:56px!important;min-height:56px!important;max-height:56px!important}.w-56,.width-56{width:56px!important;min-width:56px!important;max-width:56px!important}.h-64,.height-64{height:64px!important;min-height:64px!important;max-height:64px!important}.w-64,.width-64{width:64px!important;min-width:64px!important;max-width:64px!important}.h-72,.height-72{height:72px!important;min-height:72px!important;max-height:72px!important}.w-72,.width-72{width:72px!important;min-width:72px!important;max-width:72px!important}.h-88,.height-88{height:88px!important;min-height:88px!important;max-height:88px!important}.w-88,.width-88{width:88px!important;min-width:88px!important;max-width:88px!important}.h-96,.height-96{height:96px!important;min-height:96px!important;max-height:96px!important}.w-96,.width-96{width:96px!important;min-width:96px!important;max-width:96px!important}.h-104,.height-104{height:104px!important;min-height:104px!important;max-height:104px!important}.w-104,.width-104{width:104px!important;min-width:104px!important;max-width:104px!important}.h-112,.height-112{height:112px!important;min-height:112px!important;max-height:112px!important}.w-112,.width-112{width:112px!important;min-width:112px!important;max-width:112px!important}.h-128,.height-128{height:128px!important;min-height:128px!important;max-height:128px!important}.w-128,.width-128{width:128px!important;min-width:128px!important;max-width:128px!important}.h-136,.height-136{height:136px!important;min-height:136px!important;max-height:136px!important}.w-136,.width-136{width:136px!important;min-width:136px!important;max-width:136px!important}.h-144,.height-144{height:144px!important;min-height:144px!important;max-height:144px!important}.w-144,.width-144{width:144px!important;min-width:144px!important;max-width:144px!important}.h-152,.height-152{height:152px!important;min-height:152px!important;max-height:152px!important}.w-152,.width-152{width:152px!important;min-width:152px!important;max-width:152px!important}.h-168,.height-168{height:168px!important;min-height:168px!important;max-height:168px!important}.w-168,.width-168{width:168px!important;min-width:168px!important;max-width:168px!important}.h-176,.height-176{height:176px!important;min-height:176px!important;max-height:176px!important}.w-176,.width-176{width:176px!important;min-width:176px!important;max-width:176px!important}.h-184,.height-184{height:184px!important;min-height:184px!important;max-height:184px!important}.w-184,.width-184{width:184px!important;min-width:184px!important;max-width:184px!important}.h-192,.height-192{height:192px!important;min-height:192px!important;max-height:192px!important}.w-192,.width-192{width:192px!important;min-width:192px!important;max-width:192px!important}.h-208,.height-208{height:208px!important;min-height:208px!important;max-height:208px!important}.w-208,.width-208{width:208px!important;min-width:208px!important;max-width:208px!important}.h-216,.height-216{height:216px!important;min-height:216px!important;max-height:216px!important}.w-216,.width-216{width:216px!important;min-width:216px!important;max-width:216px!important}.h-224,.height-224{height:224px!important;min-height:224px!important;max-height:224px!important}.w-224,.width-224{width:224px!important;min-width:224px!important;max-width:224px!important}.h-232,.height-232{height:232px!important;min-height:232px!important;max-height:232px!important}.w-232,.width-232{width:232px!important;min-width:232px!important;max-width:232px!important}.h-248,.height-248{height:248px!important;min-height:248px!important;max-height:248px!important}.w-248,.width-248{width:248px!important;min-width:248px!important;max-width:248px!important}.h-256,.height-256{height:256px!important;min-height:256px!important;max-height:256px!important}.w-256,.width-256{width:256px!important;min-width:256px!important;max-width:256px!important}.h-264,.height-264{height:264px!important;min-height:264px!important;max-height:264px!important}.w-264,.width-264{width:264px!important;min-width:264px!important;max-width:264px!important}.h-272,.height-272{height:272px!important;min-height:272px!important;max-height:272px!important}.w-272,.width-272{width:272px!important;min-width:272px!important;max-width:272px!important}.h-288,.height-288{height:288px!important;min-height:288px!important;max-height:288px!important}.w-288,.width-288{width:288px!important;min-width:288px!important;max-width:288px!important}.h-296,.height-296{height:296px!important;min-height:296px!important;max-height:296px!important}.w-296,.width-296{width:296px!important;min-width:296px!important;max-width:296px!important}.h-304,.height-304{height:304px!important;min-height:304px!important;max-height:304px!important}.w-304,.width-304{width:304px!important;min-width:304px!important;max-width:304px!important}.h-312,.height-312{height:312px!important;min-height:312px!important;max-height:312px!important}.w-312,.width-312{width:312px!important;min-width:312px!important;max-width:312px!important}.h-328,.height-328{height:328px!important;min-height:328px!important;max-height:328px!important}.w-328,.width-328{width:328px!important;min-width:328px!important;max-width:328px!important}.h-336,.height-336{height:336px!important;min-height:336px!important;max-height:336px!important}.w-336,.width-336{width:336px!important;min-width:336px!important;max-width:336px!important}.h-344,.height-344{height:344px!important;min-height:344px!important;max-height:344px!important}.w-344,.width-344{width:344px!important;min-width:344px!important;max-width:344px!important}.h-352,.height-352{height:352px!important;min-height:352px!important;max-height:352px!important}.w-352,.width-352{width:352px!important;min-width:352px!important;max-width:352px!important}.h-368,.height-368{height:368px!important;min-height:368px!important;max-height:368px!important}.w-368,.width-368{width:368px!important;min-width:368px!important;max-width:368px!important}.h-376,.height-376{height:376px!important;min-height:376px!important;max-height:376px!important}.w-376,.width-376{width:376px!important;min-width:376px!important;max-width:376px!important}.h-384,.height-384{height:384px!important;min-height:384px!important;max-height:384px!important}.w-384,.width-384{width:384px!important;min-width:384px!important;max-width:384px!important}.h-392,.height-392{height:392px!important;min-height:392px!important;max-height:392px!important}.w-392,.width-392{width:392px!important;min-width:392px!important;max-width:392px!important}.h-408,.height-408{height:408px!important;min-height:408px!important;max-height:408px!important}.w-408,.width-408{width:408px!important;min-width:408px!important;max-width:408px!important}.h-416,.height-416{height:416px!important;min-height:416px!important;max-height:416px!important}.w-416,.width-416{width:416px!important;min-width:416px!important;max-width:416px!important}.h-424,.height-424{height:424px!important;min-height:424px!important;max-height:424px!important}.w-424,.width-424{width:424px!important;min-width:424px!important;max-width:424px!important}.h-432,.height-432{height:432px!important;min-height:432px!important;max-height:432px!important}.w-432,.width-432{width:432px!important;min-width:432px!important;max-width:432px!important}.h-448,.height-448{height:448px!important;min-height:448px!important;max-height:448px!important}.w-448,.width-448{width:448px!important;min-width:448px!important;max-width:448px!important}.h-456,.height-456{height:456px!important;min-height:456px!important;max-height:456px!important}.w-456,.width-456{width:456px!important;min-width:456px!important;max-width:456px!important}.h-464,.height-464{height:464px!important;min-height:464px!important;max-height:464px!important}.w-464,.width-464{width:464px!important;min-width:464px!important;max-width:464px!important}.h-472,.height-472{height:472px!important;min-height:472px!important;max-height:472px!important}.w-472,.width-472{width:472px!important;min-width:472px!important;max-width:472px!important}.h-488,.height-488{height:488px!important;min-height:488px!important;max-height:488px!important}.w-488,.width-488{width:488px!important;min-width:488px!important;max-width:488px!important}.h-496,.height-496{height:496px!important;min-height:496px!important;max-height:496px!important}.w-496,.width-496{width:496px!important;min-width:496px!important;max-width:496px!important}.h-504,.height-504{height:504px!important;min-height:504px!important;max-height:504px!important}.w-504,.width-504{width:504px!important;min-width:504px!important;max-width:504px!important}.h-512,.height-512{height:512px!important;min-height:512px!important;max-height:512px!important}.w-512,.width-512{width:512px!important;min-width:512px!important;max-width:512px!important}.h-528,.height-528{height:528px!important;min-height:528px!important;max-height:528px!important}.w-528,.width-528{width:528px!important;min-width:528px!important;max-width:528px!important}.h-536,.height-536{height:536px!important;min-height:536px!important;max-height:536px!important}.w-536,.width-536{width:536px!important;min-width:536px!important;max-width:536px!important}.h-544,.height-544{height:544px!important;min-height:544px!important;max-height:544px!important}.w-544,.width-544{width:544px!important;min-width:544px!important;max-width:544px!important}.h-552,.height-552{height:552px!important;min-height:552px!important;max-height:552px!important}.w-552,.width-552{width:552px!important;min-width:552px!important;max-width:552px!important}.h-568,.height-568{height:568px!important;min-height:568px!important;max-height:568px!important}.w-568,.width-568{width:568px!important;min-width:568px!important;max-width:568px!important}.h-576,.height-576{height:576px!important;min-height:576px!important;max-height:576px!important}.w-576,.width-576{width:576px!important;min-width:576px!important;max-width:576px!important}.h-584,.height-584{height:584px!important;min-height:584px!important;max-height:584px!important}.w-584,.width-584{width:584px!important;min-width:584px!important;max-width:584px!important}.h-592,.height-592{height:592px!important;min-height:592px!important;max-height:592px!important}.w-592,.width-592{width:592px!important;min-width:592px!important;max-width:592px!important}.h-608,.height-608{height:608px!important;min-height:608px!important;max-height:608px!important}.w-608,.width-608{width:608px!important;min-width:608px!important;max-width:608px!important}.h-616,.height-616{height:616px!important;min-height:616px!important;max-height:616px!important}.w-616,.width-616{width:616px!important;min-width:616px!important;max-width:616px!important}.h-624,.height-624{height:624px!important;min-height:624px!important;max-height:624px!important}.w-624,.width-624{width:624px!important;min-width:624px!important;max-width:624px!important}.h-632,.height-632{height:632px!important;min-height:632px!important;max-height:632px!important}.w-632,.width-632{width:632px!important;min-width:632px!important;max-width:632px!important}.h-648,.height-648{height:648px!important;min-height:648px!important;max-height:648px!important}.w-648,.width-648{width:648px!important;min-width:648px!important;max-width:648px!important}.h-656,.height-656{height:656px!important;min-height:656px!important;max-height:656px!important}.w-656,.width-656{width:656px!important;min-width:656px!important;max-width:656px!important}.h-664,.height-664{height:664px!important;min-height:664px!important;max-height:664px!important}.w-664,.width-664{width:664px!important;min-width:664px!important;max-width:664px!important}.h-672,.height-672{height:672px!important;min-height:672px!important;max-height:672px!important}.w-672,.width-672{width:672px!important;min-width:672px!important;max-width:672px!important}.h-688,.height-688{height:688px!important;min-height:688px!important;max-height:688px!important}.w-688,.width-688{width:688px!important;min-width:688px!important;max-width:688px!important}.h-696,.height-696{height:696px!important;min-height:696px!important;max-height:696px!important}.w-696,.width-696{width:696px!important;min-width:696px!important;max-width:696px!important}.h-704,.height-704{height:704px!important;min-height:704px!important;max-height:704px!important}.w-704,.width-704{width:704px!important;min-width:704px!important;max-width:704px!important}.h-712,.height-712{height:712px!important;min-height:712px!important;max-height:712px!important}.w-712,.width-712{width:712px!important;min-width:712px!important;max-width:712px!important}.h-728,.height-728{height:728px!important;min-height:728px!important;max-height:728px!important}.w-728,.width-728{width:728px!important;min-width:728px!important;max-width:728px!important}.h-736,.height-736{height:736px!important;min-height:736px!important;max-height:736px!important}.w-736,.width-736{width:736px!important;min-width:736px!important;max-width:736px!important}.h-744,.height-744{height:744px!important;min-height:744px!important;max-height:744px!important}.w-744,.width-744{width:744px!important;min-width:744px!important;max-width:744px!important}.h-752,.height-752{height:752px!important;min-height:752px!important;max-height:752px!important}.w-752,.width-752{width:752px!important;min-width:752px!important;max-width:752px!important}.h-768,.height-768{height:768px!important;min-height:768px!important;max-height:768px!important}.w-768,.width-768{width:768px!important;min-width:768px!important;max-width:768px!important}.h-776,.height-776{height:776px!important;min-height:776px!important;max-height:776px!important}.w-776,.width-776{width:776px!important;min-width:776px!important;max-width:776px!important}.h-784,.height-784{height:784px!important;min-height:784px!important;max-height:784px!important}.w-784,.width-784{width:784px!important;min-width:784px!important;max-width:784px!important}.h-792,.height-792{height:792px!important;min-height:792px!important;max-height:792px!important}.w-792,.width-792{width:792px!important;min-width:792px!important;max-width:792px!important}.b,.border{border:1px solid rgba(0,0,0,.12)}.border-top,.bt{border-top:1px solid rgba(0,0,0,.12)}.border-right,.br{border-right:1px solid rgba(0,0,0,.12)}.bb,.border-bottom{border-bottom:1px solid rgba(0,0,0,.12)}.bl,.border-left{border-left:1px solid rgba(0,0,0,.12)}.bh,.border-horizontal{border-left:1px solid rgba(0,0,0,.12);border-right:1px solid rgba(0,0,0,.12)}.border-vertical,.bv{border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12)}.brad-1{border-radius:1px}.brad-2{border-radius:2px}.brad-3{border-radius:3px}.brad-4{border-radius:4px}.brad-5{border-radius:5px}.brad-6{border-radius:6px}.brad-7{border-radius:7px}.brad-8{border-radius:8px}.brad-9{border-radius:9px}.brad-10{border-radius:10px}.brad-11{border-radius:11px}.brad-12{border-radius:12px}@media all{.page-break{display:none}}@media print{.page-break{display:block;break-after:always;page-break-after:always}#main #vertical-navigation{display:none}#main #toolbar{display:none}#main #quick-panel{display:none}#main #content{position:relative!important;top:0!important;right:0!important;bottom:0!important;left:0!important;background:0 0!important}ms-theme-options{display:none}.ps-scrollbar-x-rail,.ps-scrollbar-y-rail{display:none!important}.printable{overflow:visible!important}.printable .template-layout{display:inline!important}}.ms-card{display:flex;flex-direction:row;padding:8px}.ms-card .ms-card-content-wrapper{position:relative;overflow:hidden;width:100%;max-width:400px;border-radius:2px;background:#fff;box-shadow:0 3px 1px -2px rgba(0,0,0,.14),0 2px 2px 0 rgba(0,0,0,.098),0 1px 5px 0 rgba(0,0,0,.084)}.ms-card .template-1 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-10 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-2 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-2 .media .image{width:100%}.ms-card .template-4 .info{position:absolute;right:0;bottom:0;left:0;z-index:2;background:rgba(0,0,0,.54)}.ms-card .template-4 .media{z-index:1}.ms-card .template-4 .media .image{width:100%}.ms-card .template-5 .media{width:80px;min-width:80px;max-width:80px}.ms-card .template-5 .info,.ms-card .template-5 .media{-ms-flex:0 1 auto}.ms-card .template-8 .media .image{width:100%;border-radius:2px 2px 0 0}.ms-card .template-9 .header .avatar .image{display:block;width:40px;height:40px;border-radius:20px}.ms-card .template-9 .media .image{width:100%}md-dialog.dashboarditem-dialog{max-width:720px;width:720px}md-dialog.dashboarditem-dialog md-dialog-content{display:block;position:relative}md-dialog.dashboarditem-dialog md-toolbar .title{font-size:17px}md-dialog.dashboarditem-dialog md-input-container textarea{min-height:150px}md-dialog.dashboarditem-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.dashboarditem-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dashboarditem-dialog .date-container{padding:16px 0 24px 0}md-dialog.dashboarditem-dialog .error-list{font-size:13px}md-dialog.dashboarditem-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dashboarditem-dialog .error-list .error .message{font-weight:500}md-dialog.dashboarditem-dialog .error-list .error .md-button{margin:0}md-dialog.dashboarditem-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dashboarditem-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.dashboarditem-dialog{max-width:720px;width:720px}md-dialog.dashboarditem-dialog md-dialog-content{display:block;position:relative}md-dialog.dashboarditem-dialog md-toolbar .title{font-size:17px}md-dialog.dashboarditem-dialog md-input-container textarea{min-height:150px}md-dialog.dashboarditem-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.dashboarditem-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dashboarditem-dialog .date-container{padding:16px 0 24px 0}md-dialog.dashboarditem-dialog .error-list{font-size:13px}md-dialog.dashboarditem-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dashboarditem-dialog .error-list .error .message{font-weight:500}md-dialog.dashboarditem-dialog .error-list .error .md-button{margin:0}md-dialog.dashboarditem-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dashboarditem-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.dashboarditem-dialog{max-width:720px;width:720px}md-dialog.dashboarditem-dialog md-dialog-content{display:block;position:relative}md-dialog.dashboarditem-dialog md-toolbar .title{font-size:17px}md-dialog.dashboarditem-dialog md-input-container textarea{min-height:150px}md-dialog.dashboarditem-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.dashboarditem-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dashboarditem-dialog .date-container{padding:16px 0 24px 0}md-dialog.dashboarditem-dialog .error-list{font-size:13px}md-dialog.dashboarditem-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dashboarditem-dialog .error-list .error .message{font-weight:500}md-dialog.dashboarditem-dialog .error-list .error .md-button{margin:0}md-dialog.dashboarditem-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dashboarditem-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.dashboarditem-dialog{max-width:720px;width:720px}md-dialog.dashboarditem-dialog md-dialog-content{display:block;position:relative}md-dialog.dashboarditem-dialog md-toolbar .title{font-size:17px}md-dialog.dashboarditem-dialog md-input-container textarea{min-height:150px}md-dialog.dashboarditem-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.dashboarditem-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dashboarditem-dialog .date-container{padding:16px 0 24px 0}md-dialog.dashboarditem-dialog .error-list{font-size:13px}md-dialog.dashboarditem-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dashboarditem-dialog .error-list .error .message{font-weight:500}md-dialog.dashboarditem-dialog .error-list .error .md-button{margin:0}md-dialog.dashboarditem-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dashboarditem-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}.ms-form-wizard{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:72px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item{opacity:1!important;padding:24px}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:before{content:'';display:block;position:absolute;top:50%;left:0;right:50%;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:after{content:'';display:block;position:absolute;top:50%;left:50%;right:0;border-bottom:1px solid rgba(0,0,0,.12);z-index:8}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:first-of-type:before{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item:last-of-type:after{display:none}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item.md-disabled .ms-form-wizard-step-label .ms-form-wizard-step-number{background:rgba(0,0,0,.12)!important}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-pagination-wrapper md-tab-item .md-ripple-container{z-index:11}.ms-form-wizard md-tabs md-tabs-wrapper md-tabs-canvas md-ink-bar{display:none!important}.ms-form-wizard .ms-form-wizard-step-label{display:inline-block;position:relative;background:#fff;z-index:10;padding:0 16px;line-height:24px}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number{display:inline-block;vertical-align:middle;width:24px;height:24px;line-height:24px;font-size:14px;margin-right:12px;border-radius:50%;color:#fff!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-number i{line-height:24px!important}.ms-form-wizard .ms-form-wizard-step-label .ms-form-wizard-step-text{display:inline-block;vertical-align:middle;position:relative;line-height:24px}.ms-form-wizard .ms-form-wizard-form{padding:24px 16px}.ms-form-wizard .navigation{padding:16px}.ms-form-wizard .navigation .steps{display:flex;align-items:center;justify-content:center;padding:0 16px}.ms-form-wizard .navigation .steps span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-form-wizard .navigation .steps span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-form-wizard .navigation .steps span.selected{width:8px;height:8px}body.ms-info-bar-active #main{top:64px}ms-info-bar{display:block;position:relative;width:100%;height:64px;background-color:#e91e63;z-index:99998;box-shadow:0 1px 5px 0 rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.12)}ms-info-bar #ms-info-bar-message{padding:8px 16px;line-height:48px;font-size:16px}ms-info-bar #ms-info-bar-message a{overflow:hidden;height:48px;color:#fff}ms-masonry{width:100%;display:block}ms-masonry [ms-masonry-item],ms-masonry ms-masonry-item{transition:transform .3s ease;position:absolute;transform:translate3d(50vw,100vh,0)}ms-material-color-picker md-menu .md-button{font-size:12px}md-menu-content.ms-material-color-picker-menu-content{width:208px;max-width:208px;min-width:208px;padding:0;overflow:hidden}md-menu-content.ms-material-color-picker-menu-content header{height:48px;text-transform:uppercase}md-menu-content.ms-material-color-picker-menu-content header .md-button{display:flex;margin:0}md-menu-content.ms-material-color-picker-menu-content header>span{line-height:13px}md-menu-content.ms-material-color-picker-menu-content .colors{position:relative;width:208px;min-height:258px;height:258px;padding:4px}md-menu-content.ms-material-color-picker-menu-content .colors .color{position:relative;width:46px;height:46px;margin:2px;border-radius:0;cursor:pointer}md-menu-content.ms-material-color-picker-menu-content .colors .color .label{padding:2px;font-size:10px}md-menu-content.ms-material-color-picker-menu-content .colors .color .icon-check{position:absolute;top:2px;right:2px;font-size:16px;opacity:.7}ms-nav{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none;z-index:70}ms-nav ms-nav-item{display:block;position:relative;line-height:48px}ms-nav ms-nav-item.ms-nav-title{line-height:32px;font-size:12px;font-weight:500;margin-top:8px;padding:0 24px;width:100%;color:rgba(255,255,255,.3);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ms-nav ms-nav-item .ms-nav-button{display:flex;align-self:flex-start;align-items:center;position:relative;cursor:pointer;padding:0 48px 0 24px;color:rgba(255,255,255,.7);text-decoration:none}ms-nav ms-nav-item .ms-nav-button:not(.active):hover{background:rgba(0,0,0,.1);text-decoration:none}ms-nav ms-nav-item .ms-nav-button .ms-nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .arrow{position:absolute;top:16px;right:24px;margin:0;transition:transform .3s ease-in-out,opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button .ms-nav-badge{position:absolute;top:50%;right:24px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}ms-nav ms-nav-item .ms-nav-button.active{color:#fff!important}ms-nav ms-nav-item .ms-nav-button.active .ms-nav-badge{background:#fff!important;color:rgba(0,0,0,.87)!important}ms-nav ms-nav-item .ms-nav-button.active i{color:#fff}ms-nav ms-nav-item i{color:rgba(255,255,255,.7);margin:0 16px 0 0}ms-nav .ms-nav-toggle ms-nav-toggle-items{display:none;overflow:hidden}ms-nav .ms-nav-toggle ms-nav-toggle-items.expand-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items.collapse-animation{transition:height .35s cubic-bezier(.25,.46,.45,.94)}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:58px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:68px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:78px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:88px}ms-nav .ms-nav-toggle ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item ms-nav-toggle-items ms-nav-item .ms-nav-button{padding-left:98px}ms-nav .ms-nav-toggle.active>.ms-nav-button{color:#fff}ms-nav .ms-nav-toggle.active>.ms-nav-button a,ms-nav .ms-nav-toggle.active>.ms-nav-button md-icon{color:#fff}ms-nav .ms-nav-toggle[collapsed=false]>.ms-nav-button>.arrow{transform:rotate(90deg)}ms-nav>.ms-nav-toggle[collapsed=false]{background-color:rgba(0,0,0,.12)}@media only screen and (min-width:1280px){.ms-nav-folded #ms-nav-fold-close-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:0 0;z-index:998}.ms-nav-folded #ms-nav-fold-open-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title{height:32px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title:before{content:'';display:block;position:relative;top:12px;width:16px;border-top:1px solid rgba(255,255,255,.12)}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item.ms-nav-title span{display:none}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button{height:48px}.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.arrow,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-badge,.ms-nav-folded:not(.ms-nav-folded-open) ms-nav ms-nav-item .ms-nav-button>.ms-nav-label{opacity:0;visibility:hidden}}.ms-navigation{display:block;position:relative;color:rgba(255,255,255,.7);user-select:none}.ms-navigation li,.ms-navigation ul{padding:0;margin:0}.ms-navigation ul{display:block;overflow:hidden}.ms-navigation ul li{position:relative}.ms-navigation ul li.collapsed ul{display:none}.ms-navigation .animate-height{transition:height .25s cubic-bezier(.25,.46,.45,.94)}.ms-navigation .ms-navigation-node .ms-navigation-item{display:block;position:relative;cursor:pointer;color:rgba(255,255,255,.7)}.ms-navigation .ms-navigation-node .ms-navigation-item:hover{background:rgba(0,0,0,.1)}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button{display:flex;position:relative;width:100%;height:48px;line-height:48px;flex-direction:row;justify-content:flex-start;align-items:center;padding-right:16px;color:rgba(255,255,255,.7);text-decoration:none;white-space:nowrap;overflow:hidden}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .icon{color:rgba(255,255,255,.7);margin:0 16px 0 0}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button span{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button a{white-space:nowrap;overflow:hidden;opacity:1;transition:opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .arrow{margin:0;opacity:1;transition:transform .3s ease-in-out,opacity .25s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button .badge{position:absolute;top:50%;right:16px;min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transform:translateY(-50%);transition:opacity .2s ease-in-out .1s}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .icon{color:#fff}.ms-navigation .ms-navigation-node .ms-navigation-item>.ms-navigation-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}.ms-navigation .ms-navigation-node:not(.collapsed)>.ms-navigation-item>.ms-navigation-button .arrow{transform:rotate(90deg)}.ms-navigation .ms-navigation-node.group>.ms-navigation-item{font-size:12px;font-weight:500;margin-top:8px;cursor:auto;background:0 0!important;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ms-navigation .ms-navigation-node.group>.ms-navigation-item>.ms-navigation-button{height:32px;line-height:32px;color:rgba(255,255,255,.3)}.ms-navigation .ms-navigation-node:not(.group).has-children:not(.collapsed){background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children.collapsing{background-color:rgba(0,0,0,.12)}.ms-navigation .ms-navigation-node:not(.group).has-children .has-children:not(.collapsed){background:0 0}.ms-navigation li .ms-navigation-button{padding-left:24px}.ms-navigation li li .ms-navigation-button{padding-left:56px}.ms-navigation li li li .ms-navigation-button{padding-left:72px}.ms-navigation li li li li .ms-navigation-button{padding-left:88px}.ms-navigation li li li li li .ms-navigation-button{padding-left:104px}.ms-navigation li.group .ms-navigation-button{padding-left:24px}.ms-navigation li.group li .ms-navigation-button{padding-left:24px}.ms-navigation li.group li li .ms-navigation-button{padding-left:56px}.ms-navigation li.group li li li .ms-navigation-button{padding-left:72px}.ms-navigation li.group li li li li .ms-navigation-button{padding-left:88px}#horizontal-navigation{height:64px;min-height:64px;max-height:64px;background:#fff;z-index:54}#horizontal-navigation .ms-navigation-horizontal{display:flex;position:relative;user-select:none}#horizontal-navigation .ms-navigation-horizontal li,#horizontal-navigation .ms-navigation-horizontal ul{padding:0;margin:0;list-style:none}#horizontal-navigation .ms-navigation-horizontal .horizontal{display:flex;flex:1}#horizontal-navigation .ms-navigation-horizontal .horizontal li{position:relative;cursor:pointer}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:block;float:left;padding:12px 14px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button.active{background:0 0;border-bottom:2px solid}#horizontal-navigation .ms-navigation-horizontal .horizontal>li:last-child{margin-right:0}#horizontal-navigation .ms-navigation-horizontal .horizontal>li li .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active{color:#fff!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{display:none;position:absolute;background:#fff;z-index:999;min-width:200px;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);top:0;left:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal>.has-children>ul{top:100%;left:0}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button{display:flex;align-items:center;width:100%;color:rgba(0,0,0,.87);white-space:nowrap;padding:14px 16px;text-decoration:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .icon{color:rgba(0,0,0,.54);margin-right:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .badge{min-width:20px;height:20px;line-height:20px;padding:0 7px;font-size:11px;font-weight:700;border-radius:20px;transition:opacity .2s ease-in-out .1s}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button .arrow{margin-left:8px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .badge{background:#fff!important;color:rgba(0,0,0,.87)!important}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item .ms-navigation-horizontal-button.active .icon{color:#fff}@media only screen and (min-width:960px){body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .animate-height{transition:none}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .icon{margin:0}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .arrow,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .badge,body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node .ms-navigation-item .ms-navigation-button .title{opacity:0;visibility:hidden}body.ms-navigation-folded:not(.ms-navigation-folded-open) .ms-navigation .ms-navigation-node.group>.ms-navigation-item .ms-navigation-button:before{content:'';display:block;position:relative;width:16px;border-top:1px solid rgba(255,255,255,.12)}body.ms-navigation-folded:not(.ms-navigation-folded-open) #ms-navigation-fold-expander{position:absolute;top:0;right:0;bottom:0;left:0;z-index:999}body.ms-navigation-folded #ms-navigation-fold-collapser{position:absolute;top:0;right:0;bottom:0;left:0;z-index:59}}@media only screen and (max-width:960px){body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle{height:64px;margin-right:16px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .navigation-toggle .md-button{margin:0;width:64px;height:64px}body.ms-navigation-horizontal-mobile-menu-active #horizontal-navigation .ms-navigation-horizontal{display:block!important;background:#fff}#horizontal-navigation{z-index:60}#horizontal-navigation .ms-navigation-horizontal{position:absolute;display:none;top:0;right:0;bottom:0;left:0;padding:0 0 16px 0;z-index:9998;overflow-x:hidden;overflow-y:scroll}#horizontal-navigation .ms-navigation-horizontal .horizontal{flex-direction:column;min-height:100%;width:100%}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active):hover{background:0 0}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item{margin:4px}#horizontal-navigation .ms-navigation-horizontal .horizontal li:not(.active) .ms-navigation-horizontal-item:hover{background:rgba(0,0,0,.12)}#horizontal-navigation .ms-navigation-horizontal .horizontal>li{padding:0 12px}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button{display:flex;float:none}#horizontal-navigation .ms-navigation-horizontal .horizontal>li>.ms-navigation-horizontal-item>.ms-navigation-horizontal-button .arrow{display:block}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children ul{position:relative;top:0;left:0;box-shadow:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children:hover>ul{display:none}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded>.ms-navigation-horizontal-button .arrow{transform:rotate(90deg)}#horizontal-navigation .ms-navigation-horizontal .horizontal .has-children .expanded+ul{display:block;margin-left:16px}#horizontal-navigation .ms-navigation-horizontal .horizontal .ms-navigation-horizontal-item{min-height:48px;height:48px}}.ms-phonebar{height:64px;font-size:13px}.ms-phonebar .phonebar-container{height:64px;padding:0 8px;max-width:400px}.ms-phonebar .phonebar-container .phonebar{position:relative;overflow-x:scroll}.ms-phonebar .phonebar-container .phonebar>div{height:64px;min-width:44px}.ms-phonebar .phonebar-container .phonebar>div.dragging{cursor:grabbing}.ms-phonebar .phonebar-container .phonebar>div.dragging .md-ripple-container{display:none}.ms-phonebar .phonebar-container .phonebar>div.ghost .shortcut{opacity:.27}.ms-phonebar .phonebar-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-phonebar .phonebar-container.mobile-bar-active .phonebar,.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-phonebar .phonebar-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-phonebar .phonebar-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}.ms-responsive-table-wrapper{overflow-x:auto;overflow-y:hidden}.ms-scroll{overflow:hidden!important}.ms-search-bar{height:64px;font-size:13px}.ms-search-bar .ms-search-bar-collapser,.ms-search-bar .ms-search-bar-expander{cursor:pointer;padding:0 20px;margin:0;width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-bar-loader{width:64px!important;height:64px!important;line-height:64px!important}.ms-search-bar .ms-search-bar-collapser{display:none}.ms-search-bar #ms-search-bar-input{display:none;min-height:64px;background-color:transparent;font-size:16px}.ms-search-bar .ms-search-bar-results{position:absolute;top:64px;left:0;right:0;overflow-x:hidden;overflow-y:scroll;background:#fff;max-height:300px;box-shadow:0 1px 8px 0 rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 3px 3px -2px rgba(0,0,0,.12)}.ms-search-bar .ms-search-bar-results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}.ms-search-bar .ms-search-bar-results .result{position:relative;height:56px;min-height:56px;max-height:56px;padding:16px;cursor:pointer}.ms-search-bar .ms-search-bar-results .result.selected{background:rgba(0,0,0,.07)}.ms-search-bar .ms-search-bar-results .result .icon-container{min-width:32px;margin-right:8px}.ms-search-bar .ms-search-bar-results .result .icon-container .square{width:6px;height:6px}.ms-search-bar .ms-search-bar-results .result .title{font-size:16px}.ms-search-bar .ms-search-bar-results .result .description{padding-top:6px;font-size:14px}.ms-search-bar.expanded{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:10}.ms-search-bar.expanded #ms-search-bar-input{display:block}.ms-search-bar.expanded .ms-search-bar-collapser{display:block}body.ms-search-bar-expanded #toolbar{z-index:999!important}@media screen and (max-width:960px){.ms-search-bar-label{padding:0 8px 0 12px}}.ms-shortcuts{height:64px;font-size:13px}.ms-shortcuts .shortcuts-container{height:64px;padding:0 8px;max-width:400px}.ms-shortcuts .shortcuts-container .shortcuts{position:relative;overflow-x:scroll}.ms-shortcuts .shortcuts-container .shortcuts>div{height:64px;min-width:44px}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging{cursor:grabbing}.ms-shortcuts .shortcuts-container .shortcuts>div.dragging .md-ripple-container{display:none}.ms-shortcuts .shortcuts-container .shortcuts>div.ghost .shortcut{opacity:.27}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut{margin:2px}.ms-shortcuts .shortcuts-container .shortcuts>div .shortcut .first-letter{display:inline-block;vertical-align:middle;font-size:20px;text-transform:uppercase;color:rgba(0,0,0,.54)}.ms-shortcuts .shortcuts-container .shortcut-menu{margin:0}.ms-shortcuts .shortcuts-container.mobile-bar-active{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;z-index:99;max-width:none!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcut-menu,.ms-shortcuts .shortcuts-container.mobile-bar-active .shortcuts,.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{display:flex!important}.ms-shortcuts .shortcuts-container.mobile-bar-active .toggle-mobile-menu{margin-left:14px}.ms-shortcuts .shortcuts-container.mobile-bar-active>div{border-right:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu{position:relative;width:240px;min-width:240px;max-width:240px}#ms-shortcut-add-menu .add-shortcut-button{width:48px;height:48px;padding:0 12px;margin:0}#ms-shortcut-add-menu .shortcut-search{height:45px;padding:0 8px}#ms-shortcut-add-menu .shortcut-search .search-icon{width:40px;height:40px;line-height:48px}#ms-shortcut-add-menu .shortcut-search .shortcut-loader{padding:10px}#ms-shortcut-add-menu .shortcut-search input{padding:8px}#ms-shortcut-add-menu .results{position:relative;overflow-y:scroll;max-height:233px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.12)}#ms-shortcut-add-menu .results .no-results{font-size:18px;padding:16px;color:rgba(0,0,0,.54)}#ms-shortcut-add-menu .results .result{position:relative;min-height:56px;padding:16px;cursor:pointer}#ms-shortcut-add-menu .results .result.selected{background:rgba(0,0,0,.07)}#ms-shortcut-add-menu .results .result .icon-container{min-width:32px;margin-right:8px}#ms-shortcut-add-menu .results .result .icon-container .square{width:6px;height:6px}#ms-shortcut-add-menu .results .result .title{font-size:16px}#ms-shortcut-add-menu .results .result .description{padding-top:6px;font-size:14px}#splash-screen{display:block;position:absolute;top:0;left:0;right:0;bottom:0;background-color:#3c4252;z-index:99999}#splash-screen.ng-leave{opacity:1;transition:all linear .2s}#splash-screen.ng-leave-active{opacity:0}#splash-screen .center{display:block;width:100%;position:absolute;top:50%;transform:translateY(-50%)}#splash-screen .logo{width:96px;height:96px;line-height:96px;margin:0 auto;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:56px;text-align:center;border-radius:2px;background-color:#039be5;color:#fff;box-shadow:0 2px 14px 0 rgba(0,0,0,.22)}#splash-screen .spinner-wrapper{display:block;position:relative;width:100%;min-height:100px;height:100px}#splash-screen .spinner-wrapper .spinner{position:absolute;overflow:hidden;left:50%;margin-left:-50px;animation:outer-rotate 2.91667s linear infinite}#splash-screen .spinner-wrapper .spinner .inner{width:100px;height:100px;position:relative;animation:sporadic-rotate 5.25s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .gap{position:absolute;left:49px;right:49px;top:0;bottom:0;border-top:10px solid;box-sizing:border-box}#splash-screen .spinner-wrapper .spinner .inner .left,#splash-screen .spinner-wrapper .spinner .inner .right{position:absolute;top:0;height:100px;width:50px;overflow:hidden}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle,#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{position:absolute;top:0;width:100px;height:100px;box-sizing:border-box;border:10px solid #4285f4;border-bottom-color:transparent;border-radius:50%}#splash-screen .spinner-wrapper .spinner .inner .left{left:0}#splash-screen .spinner-wrapper .spinner .inner .left .half-circle{left:0;border-right-color:transparent;animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:left-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}#splash-screen .spinner-wrapper .spinner .inner .right{right:0}#splash-screen .spinner-wrapper .spinner .inner .right .half-circle{right:0;border-left-color:transparent;animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite;-webkit-animation:right-wobble 1.3125s cubic-bezier(.35,0,.25,1) infinite}@keyframes outer-rotate{0%{transform:rotate(0) scale(.5)}100%{transform:rotate(360deg) scale(.5)}}@keyframes left-wobble{0%,100%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@keyframes right-wobble{0%,100%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}@keyframes sporadic-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}.ms-stepper .ms-stepper-horizontal{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{height:72px;min-height:72px;max-height:72px;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after,.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{content:'';display:block;position:absolute;top:50%;width:24px;border-bottom:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:before{left:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:after{right:0}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .step{background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step{width:24px;min-width:24px;height:24px;border-radius:50%;margin:0 8px 0 16px;color:#fff}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .step .icon{color:#fff;font-weight:700;line-height:24px!important}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-horizontal .ms-stepper-steps{padding:24px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls{padding:0 16px 16px 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:none;align-items:center;justify-content:center;padding:0 16px}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span{width:5px;height:5px;margin:0 4px;border-radius:50%}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span:not(.md-accent-bg){background:rgba(0,0,0,.12)}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots span.selected{width:8px;height:8px}@media screen and (max-width:600px){.ms-stepper .ms-stepper-horizontal .ms-stepper-navigation-wrapper .ms-stepper-navigation{display:none}.ms-stepper .ms-stepper-horizontal .ms-stepper-controls .ms-stepper-dots{display:flex}}.ms-stepper .ms-stepper-vertical{position:relative;background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-vertical-line{display:block;position:absolute;width:1px;top:32px;bottom:32px;left:43px;border-left:1px solid rgba(0,0,0,.12)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps{padding:8px 0}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step{display:block}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item{display:flex;flex-direction:row;align-items:center;position:relative;width:100%;height:72px;min-height:72px;max-height:72px;line-height:24px;margin:0;padding:0 24px;border-radius:0;cursor:pointer;font-size:14px;text-transform:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:first-child:before{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:last-child:after{display:none}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item:hover:not(.disabled) .step{background-color:#ececec;border-color:#ececec}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.current .title{font-weight:600;color:rgba(0,0,0,.87)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled{cursor:default}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .title{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.disabled .subtitle{color:rgba(0,0,0,.27)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item.optional{padding:16px 24px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step{width:40px;min-width:40px;height:40px;margin:0 16px 0 0;border-radius:50%;background:#fff;border:8px solid #fff;color:#fff;transition:border-color .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .step .icon{font-weight:700;line-height:28px!important}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .title{padding-right:16px;color:rgba(0,0,0,.54)}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-navigation-item .subtitle{font-size:12px;padding-right:16px;color:rgba(0,0,0,.54);line-height:1}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-step-content{padding:0 24px 16px 64px}.ms-stepper .ms-stepper-vertical .ms-stepper-steps .ms-stepper-step .ms-stepper-controls{padding:0 16px 16px 56px}.ms-timeline .ms-timeline-loader{position:relative;display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto;background:#fff;font-weight:500;opacity:0;z-index:11;border-radius:50%}.ms-timeline .ms-timeline-loader.show{opacity:1}.ms-timeline .ms-timeline-loader .spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%}.ms-widget .ms-widget-front{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget .ms-widget-back{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12)}.ms-widget.sidenav-widget .ms-widget-back,.ms-widget.sidenav-widget .ms-widget-front{box-shadow:none}.ms-widget .flip-to-front{position:absolute;top:0;right:0}.ms-widget .c3{height:100%}.ms-widget .chart-fill-8{margin:0 -8px -8px -8px}.ms-widget .chart-fill-16{margin:0 -16px -16px -16px}.ms-widget .chart-fill-24{margin:0 -24px -24px -24px}.ms-widget .chart-fill-32{margin:0 -32px -32px -32px}.ms-widget .chart-fill-40{margin:0 -40px -40px -40px}.ms-widget .chart-fill-48{margin:0 -48px -48px -48px}.ms-widget .chart-fill-56{margin:0 -56px -56px -56px}.ms-widget .chart-fill-64{margin:0 -64px -64px -64px}.ms-widget .chart-fill-72{margin:0 -72px -72px -72px}.ms-widget .chart-fill-80{margin:0 -80px -80px -80px}.ms-widget{position:relative;font-size:1.3rem;perspective:3000px;padding:12px}.ms-widget .ms-widget-front{display:flex;flex-direction:column;flex:1 1 auto;position:relative;overflow:hidden;visibility:visible;width:100%;opacity:1;z-index:10;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(0);backface-visibility:hidden}.ms-widget .ms-widget-back{display:block;position:absolute;overflow:hidden;visibility:hidden;opacity:0;z-index:10;top:12px;right:12px;bottom:12px;left:12px;border-radius:2px;transition:transform .5s ease-out 0s,visibility 0s ease-in .2s,opacity 0s ease-in .2s;transform:rotateY(180deg);backface-visibility:hidden}.ms-widget .md-button{margin:0}.ms-widget .md-button.md-icon-button{margin:0}.ms-widget.flipped .ms-widget-front{visibility:hidden;opacity:0;transform:rotateY(180deg)}.ms-widget.flipped .ms-widget-back{display:block;visibility:visible;opacity:1;transform:rotateY(360deg)}.ms-widget.sidenav-widget{padding:0}.ms-widget.ar-2-1 .widget{padding:0;position:relative}.ms-widget.ar-2-1 .widget:before{display:block;content:"";width:100%;padding-top:50%}.ms-widget.ar-2-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-widget.ar-1-1 .widget{padding:0;position:relative}.ms-widget.ar-1-1 .widget:before{display:block;content:"";width:100%;padding-top:100%}.ms-widget.ar-1-1 .widget>.widget{position:absolute;top:8px;left:8px;right:8px;bottom:8px}.ms-theme-options .ms-theme-options-button{position:absolute;top:160px;right:0;z-index:50;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);width:48px;height:48px;line-height:48px;text-align:center;cursor:pointer;border-radius:0;margin:0;pointer-events:auto;opacity:.75}.ms-theme-options .ms-theme-options-button:hover{opacity:1}.ms-theme-options md-sidenav{width:384px;min-width:384px;max-width:384px}.ms-theme-options md-sidenav .ms-theme-options-list{background:#fff;z-index:12;pointer-events:auto}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option{padding:16px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button{width:160px;max-width:160px;margin:8px 8px 16px 8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button.md-checked ._md-label img,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button:hover ._md-label img{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-container{display:none}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label{margin-left:0}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.layout-options md-radio-button ._md-label img{opacity:.8;margin-bottom:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes md-menu-item{max-width:192px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button{border-bottom:16px solid;text-align:left;width:101px;height:88px;box-shadow:none;opacity:.8}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button.active,.ms-theme-options md-sidenav .ms-theme-options-list .theme-option.color-palettes .theme-button:hover{opacity:1;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option md-radio-button{margin:8px}.ms-theme-options md-sidenav .ms-theme-options-list .theme-option .option-title{font-size:14px;font-weight:500;padding:0 8px 12px 8px}#error-404 .content{width:90%;max-width:512px;margin-top:128px}#error-404 .content .error-code{font-size:112px;text-align:center;line-height:1;margin-bottom:16px;font-weight:500}#error-404 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-404 .content .search{width:100%;height:56px;line-height:56px;margin:48px auto 16px auto;padding:16px;background:#fff}#error-404 .content .search input{padding:0 0 0 16px}#error-404 .content .back-link{font-size:15px;text-align:center}#error-500 .content{width:90%;max-width:512px;margin-top:128px}#error-500 .content .error-code{font-size:112px;line-height:1;text-align:center;margin-bottom:16px;font-weight:500}#error-500 .content .message{font-size:24px;text-align:center;color:rgba(0,0,0,.54)}#error-500 .content .sub-message{font-size:17px;text-align:center;color:rgba(0,0,0,.54);margin:16px auto 48px auto}#error-500 .content .report-link{text-align:center;font-size:15px}#login{height:100%;background:url(/assets/images/backgrounds/march.jpg) no-repeat;background-size:cover}#login #login-form-wrapper{flex:1 0 auto;padding:32px}#login #login-form-wrapper #login-form{width:384px;max-width:384px;padding:32px;background:#fff;text-align:center}#login #login-form-wrapper #login-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#login #login-form-wrapper #login-form .title{font-size:17px;margin:16px 0 32px 0}#login #login-form-wrapper #login-form form{width:100%;text-align:left}#login #login-form-wrapper #login-form form md-checkbox{margin:0}#login #login-form-wrapper #login-form form .remember-forgot-password{font-size:13px;margin-top:8px}#login #login-form-wrapper #login-form form .remember-forgot-password .remember-me{margin-bottom:16px}#login #login-form-wrapper #login-form form .remember-forgot-password .forgot-password{font-size:13px;font-weight:500;margin-bottom:16px}#login #login-form-wrapper #login-form form .submit-button{width:220px;margin:16px auto;display:block}#login #login-form-wrapper #login-form .register{margin:32px auto 24px auto;width:250px;font-weight:500}#login #login-form-wrapper #login-form .register .text{margin-right:8px}#login #login-form-wrapper #login-form .separator{font-size:15px;font-weight:600;margin:24px auto 16px auto;position:relative;overflow:hidden;width:100px;color:rgba(0,0,0,.54)}#login #login-form-wrapper #login-form .separator .text{display:inline-block;vertical-align:baseline;position:relative;padding:0 8px;z-index:9999}#login #login-form-wrapper #login-form .separator .text:after,#login #login-form-wrapper #login-form .separator .text:before{content:'';display:block;width:30px;position:absolute;top:10px;border-top:1px solid rgba(0,0,0,.12)}#login #login-form-wrapper #login-form .separator .text:before{right:100%}#login #login-form-wrapper #login-form .separator .text:after{left:100%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:192px;text-transform:none;color:#fff;font-size:13px}#login #login-form-wrapper #login-form .md-button.facebook md-icon,#login #login-form-wrapper #login-form .md-button.google md-icon{color:#fff;margin:0 8px 0 0}#login #login-form-wrapper #login-form .md-button.google{background-color:#d73d32}#login #login-form-wrapper #login-form .md-button.facebook{background-color:#3f5c9a}@media screen and (max-width:600px){#login #login-form-wrapper{padding:16px}#login #login-form-wrapper #login-form{padding:24px;width:100%}#login #login-form-wrapper #login-form form .md-button{width:90%}#login #login-form-wrapper #login-form .md-button.facebook,#login #login-form-wrapper #login-form .md-button.google{width:80%}}md-dialog.extractedReport-dialog{max-width:720px;width:720px}md-dialog.extractedReport-dialog md-dialog-content{display:block;position:relative}md-dialog.extractedReport-dialog md-toolbar .title{font-size:17px}md-dialog.extractedReport-dialog md-input-container textarea{min-height:150px}md-dialog.extractedReport-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.extractedReport-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.extractedReport-dialog .date-container{padding:16px 0 24px 0}md-dialog.extractedReport-dialog .error-list{font-size:13px}md-dialog.extractedReport-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.extractedReport-dialog .error-list .error .message{font-weight:500}md-dialog.extractedReport-dialog .error-list .error .md-button{margin:0}md-dialog.extractedReport-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.extractedReport-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#extractedReports{position:relative}#extractedReports>.header{height:76px;min-height:76px;max-height:76px}#extractedReports>.header .logo .logo-icon{margin:0 16px 0 0}#extractedReports>.header .logo .logo-text{font-size:24px}#extractedReports>.header md-icon{color:#fff}#extractedReports>.header .search-input-wrapper{position:relative}#extractedReports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#extractedReports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#extractedReports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#extractedReports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#extractedReports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#extractedReports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#extractedReports>.header.selected-bar .close-button-wrapper{width:244px}#extractedReports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#extractedReports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#extractedReports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#extractedReports #add-extractedReport-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.metric-dialog{max-width:720px;width:720px}md-dialog.metric-dialog md-dialog-content{display:block;position:relative}md-dialog.metric-dialog md-toolbar .title{font-size:17px}md-dialog.metric-dialog md-input-container textarea{min-height:150px}md-dialog.metric-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.metric-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.metric-dialog .date-container{padding:16px 0 24px 0}md-dialog.metric-dialog .error-list{font-size:13px}md-dialog.metric-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.metric-dialog .error-list .error .message{font-weight:500}md-dialog.metric-dialog .error-list .error .md-button{margin:0}md-dialog.metric-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.metric-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#metrics{position:relative}#metrics>.header{height:76px;min-height:76px;max-height:76px}#metrics>.header .logo .logo-icon{margin:0 16px 0 0}#metrics>.header .logo .logo-text{font-size:24px}#metrics>.header md-icon{color:#fff}#metrics>.header .search-input-wrapper{position:relative}#metrics>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#metrics>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#metrics>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#metrics>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#metrics>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#metrics>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#metrics>.header.selected-bar .close-button-wrapper{width:244px}#metrics>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#metrics>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#metrics>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#metrics #add-metric-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.reportField-dialog{max-width:720px;width:720px}md-dialog.reportField-dialog md-dialog-content{display:block;position:relative}md-dialog.reportField-dialog md-toolbar .title{font-size:17px}md-dialog.reportField-dialog md-input-container textarea{min-height:150px}md-dialog.reportField-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.reportField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.reportField-dialog .date-container{padding:16px 0 24px 0}md-dialog.reportField-dialog .error-list{font-size:13px}md-dialog.reportField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.reportField-dialog .error-list .error .message{font-weight:500}md-dialog.reportField-dialog .error-list .error .md-button{margin:0}md-dialog.reportField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.reportField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#analytics-report .header{height:120px;min-height:120px;max-height:120px}#analytics-report .header .goto-reports-button{margin-right:16px}#analytics-report .header .report-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#analytics-report .header .report-image img{height:100%;width:auto;max-width:none}#analytics-report .header .subtitle{margin:6px 0 0 0}#analytics-report .report-detail-form-container{padding:24px;margin-bottom:24px}#analytics-report .report-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#analytics-report .report-detail-form-container .handle{cursor:move}#analytics-report .report-detail-form-container md-input-container md-switch{margin:0!important}#analytics-report .report-detail-form-container #report-image-uploader{position:relative}#analytics-report .report-detail-form-container #report-image-uploader.dropping .drop-text{display:flex}#analytics-report .report-detail-form-container #report-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#analytics-report .report-detail-form-container #report-image-uploader .upload-button{margin-bottom:16px}#analytics-report .report-detail-form-container #report-image-uploader .report-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#analytics-report .report-detail-form-container #report-image-uploader .report-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#analytics-report .report-detail-form-container #report-image-uploader .report-image .media{max-height:100%}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#reports{position:relative}#reports>.header{height:76px;min-height:76px;max-height:76px}#reports>.header .logo .logo-icon{margin:0 16px 0 0}#reports>.header .logo .logo-text{font-size:24px}#reports>.header md-icon{color:#fff}#reports>.header .search-input-wrapper{position:relative}#reports>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#reports>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#reports>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#reports>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#reports>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#reports>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#reports>.header.selected-bar .close-button-wrapper{width:244px}#reports>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#reports>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#reports>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}md-dialog.report-dialog{max-width:720px;width:720px}md-dialog.report-dialog md-dialog-content{display:block;position:relative}md-dialog.report-dialog md-toolbar .title{font-size:17px}md-dialog.report-dialog md-input-container textarea{min-height:150px}md-dialog.report-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.report-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.report-dialog .date-container{padding:16px 0 24px 0}md-dialog.report-dialog .error-list{font-size:13px}md-dialog.report-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.report-dialog .error-list .error .message{font-weight:500}md-dialog.report-dialog .error-list .error .md-button{margin:0}md-dialog.report-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.report-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.odbc-dialog{max-width:720px;width:720px}md-dialog.odbc-dialog md-dialog-content{display:block;position:relative}md-dialog.odbc-dialog md-toolbar .title{font-size:17px}md-dialog.odbc-dialog md-input-container textarea{min-height:150px}md-dialog.odbc-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.odbc-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.odbc-dialog .date-container{padding:16px 0 24px 0}md-dialog.odbc-dialog .error-list{font-size:13px}md-dialog.odbc-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.odbc-dialog .error-list .error .message{font-weight:500}md-dialog.odbc-dialog .error-list .error .md-button{margin:0}md-dialog.odbc-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.odbc-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#odbcs{position:relative}#odbcs>.header{height:76px;min-height:76px;max-height:76px}#odbcs>.header .logo .logo-icon{margin:0 16px 0 0}#odbcs>.header .logo .logo-text{font-size:24px}#odbcs>.header md-icon{color:#fff}#odbcs>.header .search-input-wrapper{position:relative}#odbcs>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#odbcs>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#odbcs>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#odbcs>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#odbcs>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#odbcs>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#odbcs>.header.selected-bar .close-button-wrapper{width:244px}#odbcs>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#odbcs>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#odbcs>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#odbcs #add-odbc-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}md-dialog.project-dialog .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#callysquare-project .header{height:120px;min-height:120px;max-height:120px}#callysquare-project .header .goto-projects-button{margin-right:16px}#callysquare-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#callysquare-project .header .project-image img{height:100%;width:auto;max-width:none}#callysquare-project .header .subtitle{margin:6px 0 0 0}#callysquare-project .project-detail-form-container{padding:24px;margin-bottom:24px}#callysquare-project .project-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#callysquare-project .project-detail-form-container #project-image-uploader{position:relative}#callysquare-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#callysquare-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#callysquare-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#callysquare-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#callysquare-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#callysquare-project>.callysquare-content{position:absolute;top:120px;bottom:0;left:0;right:0}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.squareRecording-dialog{max-width:720px;width:720px}md-dialog.squareRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.squareRecording-dialog md-toolbar .title{font-size:17px}md-dialog.squareRecording-dialog md-input-container textarea{min-height:150px}md-dialog.squareRecording-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.squareRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.squareRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.squareRecording-dialog .error-list{font-size:13px}md-dialog.squareRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.squareRecording-dialog .error-list .error .message{font-weight:500}md-dialog.squareRecording-dialog .error-list .error .md-button{margin:0}md-dialog.squareRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.squareRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#squareRecordings{position:relative}#squareRecordings>.header{height:76px;min-height:76px;max-height:76px}#squareRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#squareRecordings>.header .logo .logo-text{font-size:24px}#squareRecordings>.header md-icon{color:#fff}#squareRecordings>.header .search-input-wrapper{position:relative}#squareRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#squareRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#squareRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#squareRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#squareRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#squareRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#squareRecordings>.header.selected-bar .close-button-wrapper{width:244px}#squareRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#squareRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#squareRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#squareRecordings #add-squareRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#chatQueues{position:relative}#chatQueues>.header{height:76px;min-height:76px;max-height:76px}#chatQueues>.header .logo .logo-icon{margin:0 16px 0 0}#chatQueues>.header .logo .logo-text{font-size:24px}#chatQueues>.header md-icon{color:#fff}#chatQueues>.header .search-input-wrapper{position:relative}#chatQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatQueues>.header.selected-bar .close-button-wrapper{width:244px}#chatQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatQueues #add-chatQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatQueue-dialog{max-width:720px;width:720px}md-dialog.chatQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.chatQueue-dialog md-toolbar .title{font-size:17px}md-dialog.chatQueue-dialog md-input-container textarea{min-height:150px}md-dialog.chatQueue-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.chatQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatQueue-dialog .error-list{font-size:13px}md-dialog.chatQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatQueue-dialog .error-list .error .message{font-weight:500}md-dialog.chatQueue-dialog .error-list .error .md-button{margin:0}md-dialog.chatQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatQueue .header{height:120px;min-height:120px;max-height:120px}#chat-chatQueue .header .goto-chatQueues-button{margin-right:16px}#chat-chatQueue .header .chatQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatQueue .header .chatQueue-image img{height:100%;width:auto;max-width:none}#chat-chatQueue .header .subtitle{margin:6px 0 0 0}#chat-chatQueue .chatQueue-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatQueue .chatQueue-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#chat-chatQueue .chatQueue-detail-form-container .handle{cursor:move}#chat-chatQueue .chatQueue-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader{position:relative}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader.dropping .drop-text{display:flex}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .upload-button{margin-bottom:16px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatQueue .chatQueue-detail-form-container #chatQueue-image-uploader .chatQueue-image .media{max-height:100%}#chatWebsites{position:relative}#chatWebsites>.header{height:76px;min-height:76px;max-height:76px}#chatWebsites>.header .logo .logo-icon{margin:0 16px 0 0}#chatWebsites>.header .logo .logo-text{font-size:24px}#chatWebsites>.header md-icon{color:#fff}#chatWebsites>.header .search-input-wrapper{position:relative}#chatWebsites>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chatWebsites>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chatWebsites>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chatWebsites>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chatWebsites>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chatWebsites>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chatWebsites>.header.selected-bar .close-button-wrapper{width:244px}#chatWebsites>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chatWebsites>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chatWebsites>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chatWebsites #add-chatWebsite-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chatWebsite-dialog{max-width:720px;width:720px}md-dialog.chatWebsite-dialog md-dialog-content{display:block;position:relative}md-dialog.chatWebsite-dialog md-toolbar .title{font-size:17px}md-dialog.chatWebsite-dialog md-input-container textarea{min-height:150px}md-dialog.chatWebsite-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.chatWebsite-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatWebsite-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatWebsite-dialog .error-list{font-size:13px}md-dialog.chatWebsite-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatWebsite-dialog .error-list .error .message{font-weight:500}md-dialog.chatWebsite-dialog .error-list .error .md-button{margin:0}md-dialog.chatWebsite-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatWebsite-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.chatDisposition-dialog{max-width:720px;width:720px}md-dialog.chatDisposition-dialog md-dialog-content{display:block;position:relative}md-dialog.chatDisposition-dialog md-toolbar .title{font-size:17px}md-dialog.chatDisposition-dialog md-input-container textarea{min-height:150px}md-dialog.chatDisposition-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.chatDisposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chatDisposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.chatDisposition-dialog .error-list{font-size:13px}md-dialog.chatDisposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chatDisposition-dialog .error-list .error .message{font-weight:500}md-dialog.chatDisposition-dialog .error-list .error .md-button{margin:0}md-dialog.chatDisposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chatDisposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#chat-chatWebsite .header{height:120px;min-height:120px;max-height:120px}#chat-chatWebsite .header .goto-chatWebsites-button{margin-right:16px}#chat-chatWebsite .header .chatWebsite-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#chat-chatWebsite .header .chatWebsite-image img{height:100%;width:auto;max-width:none}#chat-chatWebsite .header .subtitle{margin:6px 0 0 0}#chat-chatWebsite .chatWebsite-detail-form-container{padding:24px;margin-bottom:24px}#chat-chatWebsite .chatWebsite-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#chat-chatWebsite .chatWebsite-detail-form-container .handle{cursor:move}#chat-chatWebsite .chatWebsite-detail-form-container md-input-container md-switch{margin:0!important}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader{position:relative}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader.dropping .drop-text{display:flex}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .upload-button{margin-bottom:16px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#chat-chatWebsite .chatWebsite-detail-form-container #chatWebsite-image-uploader .chatWebsite-image .media{max-height:100%}#companies{position:relative}#companies>.header{height:76px;min-height:76px;max-height:76px}#companies>.header .logo .logo-icon{margin:0 16px 0 0}#companies>.header .logo .logo-text{font-size:24px}#companies>.header md-icon{color:#fff}#companies>.header .search-input-wrapper{position:relative}#companies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#companies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#companies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#companies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#companies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#companies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#companies>.header.selected-bar .close-button-wrapper{width:244px}#companies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#companies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#companies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#companies #add-company-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.company-dialog{max-width:720px;width:720px}md-dialog.company-dialog md-dialog-content{display:block;position:relative}md-dialog.company-dialog md-toolbar .title{font-size:17px}md-dialog.company-dialog md-input-container textarea{min-height:150px}md-dialog.company-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.company-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.company-dialog .date-container{padding:16px 0 24px 0}md-dialog.company-dialog .error-list{font-size:13px}md-dialog.company-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.company-dialog .error-list .error .message{font-weight:500}md-dialog.company-dialog .error-list .error .md-button{margin:0}md-dialog.company-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.company-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-company .header{height:120px;min-height:120px;max-height:120px}#contactmanager-company .header .goto-companies-button{margin-right:16px}#contactmanager-company .header .company-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-company .header .company-image img{height:100%;width:auto;max-width:none}#contactmanager-company .header .subtitle{margin:6px 0 0 0}#contactmanager-company .company-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-company .company-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#contactmanager-company .company-detail-form-container .handle{cursor:move}#contactmanager-company .company-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-company .company-detail-form-container #company-image-uploader{position:relative}#contactmanager-company .company-detail-form-container #company-image-uploader.dropping .drop-text{display:flex}#contactmanager-company .company-detail-form-container #company-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-company .company-detail-form-container #company-image-uploader .upload-button{margin-bottom:16px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-company .company-detail-form-container #company-image-uploader .company-image .media{max-height:100%}#cm-contacts{position:relative}#cm-contacts>.header{height:76px;min-height:76px;max-height:76px}#cm-contacts>.header .logo .logo-icon{margin:0 16px 0 0}#cm-contacts>.header .logo .logo-text{font-size:24px}#cm-contacts>.header md-icon{color:#fff}#cm-contacts>.header .search-input-wrapper{position:relative}#cm-contacts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cm-contacts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cm-contacts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cm-contacts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cm-contacts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cm-contacts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cm-contacts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cm-contacts>.header.selected-bar .close-button-wrapper{width:244px}#cm-contacts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cm-contacts>.content>md-sidenav{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0}#cm-contacts>.content>md-sidenav .selected-list{background-color:rgba(158,158,158,.2)}#cm-contacts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cm-contacts>.content .main .contacts-list{box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);position:relative;margin-top:8px;padding-bottom:0}#cm-contacts>.content .main .contacts-list .md-subheader{box-shadow:0 1px 1px 0 rgba(0,0,0,.14);border-bottom:1px solid rgba(0,0,0,.14)}#cm-contacts>.content .main .contacts-list .md-subheader ._md-subheader-inner{padding:16px}#cm-contacts>.content .main .contacts-list .md-subheader .contacts-count{padding-left:4px}#cm-contacts>.content .main .contacts-list .md-subheader .list-title{margin-right:4px}#cm-contacts>.content .main .contacts-list .md-subheader .edit-group-form .editable-controls{display:flex;flex-direction:row;align-items:center;justify-content:flex-start}#cm-contacts>.content .main .contacts-list .md-subheader .edit-group-form .editable-controls .editable-input{border:1px solid rgba(0,0,0,.2);padding:4px 6px;margin-right:6px;font-size:13px}#cm-contacts>.content .main .contacts-list .md-subheader .edit-group-form .edit-group-button{margin:0}#cm-contacts>.content .main .contacts-list .md-subheader .edit-group-form .md-button{margin:0;margin:0;padding:0;height:32px;min-height:32px;line-height:32px;width:32px}#cm-contacts>.content .main .contacts-list .contact-item{position:absolute;right:0;left:0;width:100%;box-shadow:0 1px 1px 0 rgba(0,0,0,.14);background:#fff;transition:transform .2s ease-out;will-change:transform}#cm-contacts>.content .main .contacts-list .contact-item:last-of-type{margin-bottom:24px}#cm-contacts>.content .main .contacts-list .contact-item.ng-leave{transform:translateY(0);display:none}#cm-contacts>.content .main .contacts-list .contact-item.ng-leave.ng-leave-active{transform:translateY(-100%)}#cm-contacts>.content .main .contacts-list .contact-item.ng-hide{display:none}#cm-contacts>.content .main .contacts-list .contact-item.ng-hide-add-active,#cm-contacts>.content .main .contacts-list .contact-item.ng-hide-remove-active{display:block;transition-property:all}#cm-contacts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cm-contacts md-fab-speed-dial .text-capitalize{text-transform:capitalize}#cm-contacts md-fab-speed-dial .md-fab.md-focused,#cm-contacts md-fab-speed-dial .md-fab:hover{background-color:#000!important}#cm-contacts md-fab-speed-dial p.note{font-size:1.2rem}#cm-contacts md-fab-speed-dial .lock-size{min-width:300px;min-height:300px;width:300px;height:300px;margin-left:auto;margin-right:auto}#cm-contacts #add-contact-button{position:fixed;bottom:8px;right:8px;padding:0}@media screen and (min-width:1280px){#cm-contacts>.content .main{left:268px}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#cm-contact .pointer{cursor:pointer}#cm-contact .header{height:120px;min-height:120px;max-height:120px}#cm-contact .header .goto-contacts-button{margin-right:16px}#cm-contact .header .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#cm-contact .header .contact-image img{height:100%;width:auto;max-width:none}#cm-contact .header .subtitle{margin:6px 0 0 0}#cm-contact .contact-detail-form-container{padding:24px;margin-bottom:24px}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.email{color:green}#cm-contact .contact-detail-form-container md-input-container:not(.md-input-invalid)>md-icon.firstname{color:#1e90ff}#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.email,#cm-contact .contact-detail-form-container md-input-container.md-input-invalid>md-icon.firstname{color:red}#cm-contact .contact-detail-form-container .hint{position:absolute;left:2px;right:auto;bottom:7px;font-size:12px;line-height:14px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.cm-contact-dialog{max-width:720px;width:720px}md-dialog.cm-contact-dialog md-dialog-content{display:block;position:relative}md-dialog.cm-contact-dialog md-toolbar .title{font-size:17px}md-dialog.cm-contact-dialog md-input-container textarea{min-height:150px}md-dialog.cm-contact-dialog .date-container{padding:16px 0 24px 0}md-dialog.cm-contact-dialog .error-list{font-size:13px}md-dialog.cm-contact-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cm-contact-dialog .error-list .error .message{font-weight:500}md-dialog.cm-contact-dialog .error-list .error .md-button{margin:0}md-dialog.cm-contact-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cm-contact-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .contact-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}md-dialog.upload-dialog .contact-image img{height:100%;width:auto;max-width:none}md-dialog.upload-dialog .contact-image .media{max-height:100%}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.globalCustomField-dialog{max-width:720px;width:720px}md-dialog.globalCustomField-dialog md-dialog-content{display:block;position:relative}md-dialog.globalCustomField-dialog md-toolbar .title{font-size:17px}md-dialog.globalCustomField-dialog md-input-container textarea{min-height:150px}md-dialog.globalCustomField-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.globalCustomField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.globalCustomField-dialog .date-container{padding:16px 0 24px 0}md-dialog.globalCustomField-dialog .error-list{font-size:13px}md-dialog.globalCustomField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.globalCustomField-dialog .error-list .error .message{font-weight:500}md-dialog.globalCustomField-dialog .error-list .error .md-button{margin:0}md-dialog.globalCustomField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.globalCustomField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#globalCustomFields{position:relative}#globalCustomFields>.header{height:76px;min-height:76px;max-height:76px}#globalCustomFields>.header .logo .logo-icon{margin:0 16px 0 0}#globalCustomFields>.header .logo .logo-text{font-size:24px}#globalCustomFields>.header md-icon{color:#fff}#globalCustomFields>.header .search-input-wrapper{position:relative}#globalCustomFields>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#globalCustomFields>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#globalCustomFields>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#globalCustomFields>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#globalCustomFields>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#globalCustomFields>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#globalCustomFields>.header.selected-bar .close-button-wrapper{width:244px}#globalCustomFields>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#globalCustomFields>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#globalCustomFields>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#globalCustomFields #add-globalCustomField-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.list-dialog{max-width:720px;width:720px}md-dialog.list-dialog md-dialog-content{display:block;position:relative}md-dialog.list-dialog md-toolbar .title{font-size:17px}md-dialog.list-dialog md-input-container textarea{min-height:150px}md-dialog.list-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.list-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.list-dialog .date-container{padding:16px 0 24px 0}md-dialog.list-dialog .error-list{font-size:13px}md-dialog.list-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.list-dialog .error-list .error .message{font-weight:500}md-dialog.list-dialog .error-list .error .md-button{margin:0}md-dialog.list-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.list-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customField-dialog{max-width:720px;width:720px}md-dialog.customField-dialog md-dialog-content{display:block;position:relative}md-dialog.customField-dialog md-toolbar .title{font-size:17px}md-dialog.customField-dialog md-input-container textarea{min-height:150px}md-dialog.customField-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.customField-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customField-dialog .date-container{padding:16px 0 24px 0}md-dialog.customField-dialog .error-list{font-size:13px}md-dialog.customField-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customField-dialog .error-list .error .message{font-weight:500}md-dialog.customField-dialog .error-list .error .md-button{margin:0}md-dialog.customField-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customField-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#contactmanager-list .header{height:120px;min-height:120px;max-height:120px}#contactmanager-list .header .goto-lists-button{margin-right:16px}#contactmanager-list .header .list-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#contactmanager-list .header .list-image img{height:100%;width:auto;max-width:none}#contactmanager-list .header .subtitle{margin:6px 0 0 0}#contactmanager-list .list-detail-form-container{padding:24px;margin-bottom:24px}#contactmanager-list .list-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#contactmanager-list .list-detail-form-container .handle{cursor:move}#contactmanager-list .list-detail-form-container md-input-container md-switch{margin:0!important}#contactmanager-list .list-detail-form-container #list-image-uploader{position:relative}#contactmanager-list .list-detail-form-container #list-image-uploader.dropping .drop-text{display:flex}#contactmanager-list .list-detail-form-container #list-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#contactmanager-list .list-detail-form-container #list-image-uploader .upload-button{margin-bottom:16px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#contactmanager-list .list-detail-form-container #list-image-uploader .list-image .media{max-height:100%}md-dialog.voiceDisposition-dialog{max-width:720px;width:720px}md-dialog.voiceDisposition-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceDisposition-dialog md-toolbar .title{font-size:17px}md-dialog.voiceDisposition-dialog md-input-container textarea{min-height:150px}md-dialog.voiceDisposition-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.voiceDisposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceDisposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceDisposition-dialog .error-list{font-size:13px}md-dialog.voiceDisposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceDisposition-dialog .error-list .error .message{font-weight:500}md-dialog.voiceDisposition-dialog .error-list .error .md-button{margin:0}md-dialog.voiceDisposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceDisposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#lists{position:relative}#lists>.header{height:76px;min-height:76px;max-height:76px}#lists>.header .logo .logo-icon{margin:0 16px 0 0}#lists>.header .logo .logo-text{font-size:24px}#lists>.header md-icon{color:#fff}#lists>.header .search-input-wrapper{position:relative}#lists>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#lists>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#lists>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#lists>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#lists>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#lists>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#lists>.header.selected-bar .close-button-wrapper{width:244px}#lists>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#lists>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#lists>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#lists #add-list-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#dashboard-general>.center>.header{height:160px;min-height:160px;max-height:160px;padding-bottom:0}#dashboard-general>.center>.header .selected-general{background:rgba(0,0,0,.12);color:#fff;padding:8px 16px;height:40px;line-height:24px;font-size:16px}#dashboard-general>.center>.header .general-selector{margin-left:1px;border-radius:0;background:rgba(0,0,0,.12)}#dashboard-general>.center>.header .general-selector md-icon{color:#fff}#dashboard-general>.center>.content{background:0 0;padding:0}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper{background:#fff;box-shadow:0 1px 3px 0 rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 2px 1px -1px rgba(0,0,0,.12);padding:0 24px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas md-pagination-wrapper{height:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-wrapper md-tabs-canvas .md-tab{padding:16px 24px;text-transform:none}#dashboard-general>.center>.content>md-tabs:not(.md-dynamic-height) md-tabs-content-wrapper{top:56px}#dashboard-general>.center>.content>md-tabs>md-tabs-content-wrapper md-tab-content{padding:12px}#dashboard-general>.sidenav{width:330px;min-width:330px;max-width:330px;padding:0;z-index:51;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#dashboard-general>.sidenav.md-locked-open{width:250px;min-width:250px;max-width:250px;z-index:2;box-shadow:none;background:#eee}#dashboard-general .dashboard-container{padding:24px;margin-bottom:24px}md-dialog.faxAccount-dialog{max-width:720px;width:720px}md-dialog.faxAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.faxAccount-dialog md-toolbar .title{font-size:17px}md-dialog.faxAccount-dialog md-input-container textarea{min-height:150px}md-dialog.faxAccount-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.faxAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxAccount-dialog .error-list{font-size:13px}md-dialog.faxAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxAccount-dialog .error-list .error .message{font-weight:500}md-dialog.faxAccount-dialog .error-list .error .md-button{margin:0}md-dialog.faxAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.faxDisposition-dialog{max-width:720px;width:720px}md-dialog.faxDisposition-dialog md-dialog-content{display:block;position:relative}md-dialog.faxDisposition-dialog md-toolbar .title{font-size:17px}md-dialog.faxDisposition-dialog md-input-container textarea{min-height:150px}md-dialog.faxDisposition-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.faxDisposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxDisposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxDisposition-dialog .error-list{font-size:13px}md-dialog.faxDisposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxDisposition-dialog .error-list .error .message{font-weight:500}md-dialog.faxDisposition-dialog .error-list .error .md-button{margin:0}md-dialog.faxDisposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxDisposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxAccount .header{height:120px;min-height:120px;max-height:120px}#fax-faxAccount .header .goto-faxAccounts-button{margin-right:16px}#fax-faxAccount .header .faxAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxAccount .header .faxAccount-image img{height:100%;width:auto;max-width:none}#fax-faxAccount .header .subtitle{margin:6px 0 0 0}#fax-faxAccount .faxAccount-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxAccount .faxAccount-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#fax-faxAccount .faxAccount-detail-form-container .handle{cursor:move}#fax-faxAccount .faxAccount-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader{position:relative}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader.dropping .drop-text{display:flex}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .upload-button{margin-bottom:16px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxAccount .faxAccount-detail-form-container #faxAccount-image-uploader .faxAccount-image .media{max-height:100%}#faxAccounts{position:relative}#faxAccounts>.header{height:76px;min-height:76px;max-height:76px}#faxAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#faxAccounts>.header .logo .logo-text{font-size:24px}#faxAccounts>.header md-icon{color:#fff}#faxAccounts>.header .search-input-wrapper{position:relative}#faxAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxAccounts>.header.selected-bar .close-button-wrapper{width:244px}#faxAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxAccounts #add-faxAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.faxQueue-dialog{max-width:720px;width:720px}md-dialog.faxQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.faxQueue-dialog md-toolbar .title{font-size:17px}md-dialog.faxQueue-dialog md-input-container textarea{min-height:150px}md-dialog.faxQueue-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.faxQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.faxQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.faxQueue-dialog .error-list{font-size:13px}md-dialog.faxQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.faxQueue-dialog .error-list .error .message{font-weight:500}md-dialog.faxQueue-dialog .error-list .error .md-button{margin:0}md-dialog.faxQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.faxQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#fax-faxQueue .header{height:120px;min-height:120px;max-height:120px}#fax-faxQueue .header .goto-faxQueues-button{margin-right:16px}#fax-faxQueue .header .faxQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#fax-faxQueue .header .faxQueue-image img{height:100%;width:auto;max-width:none}#fax-faxQueue .header .subtitle{margin:6px 0 0 0}#fax-faxQueue .faxQueue-detail-form-container{padding:24px;margin-bottom:24px}#fax-faxQueue .faxQueue-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#fax-faxQueue .faxQueue-detail-form-container .handle{cursor:move}#fax-faxQueue .faxQueue-detail-form-container md-input-container md-switch{margin:0!important}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader{position:relative}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader.dropping .drop-text{display:flex}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .upload-button{margin-bottom:16px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#fax-faxQueue .faxQueue-detail-form-container #faxQueue-image-uploader .faxQueue-image .media{max-height:100%}#faxQueues{position:relative}#faxQueues>.header{height:76px;min-height:76px;max-height:76px}#faxQueues>.header .logo .logo-icon{margin:0 16px 0 0}#faxQueues>.header .logo .logo-text{font-size:24px}#faxQueues>.header md-icon{color:#fff}#faxQueues>.header .search-input-wrapper{position:relative}#faxQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#faxQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#faxQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#faxQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#faxQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#faxQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#faxQueues>.header.selected-bar .close-button-wrapper{width:244px}#faxQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#faxQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#faxQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#faxQueues #add-faxQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#profile .about-tab{max-width:1200px}#profile .about-tab .about{padding:8px}#profile .about-tab .about .general .location md-icon{line-height:13px!important}#profile .about-tab .about .work .job .company{padding:0 16px 0 0;font-weight:500}#profile .about-tab .about .work .job .date{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar{padding:8px 8px 8px 32px}#profile .about-tab .about-sidebar .friends .content .friend{padding:4px}#profile .about-tab .about-sidebar .groups .content .group{margin-bottom:16px}#profile .about-tab .about-sidebar .groups .content .group:last-child{margin-bottom:0}#profile .about-tab .about-sidebar .groups .content .group .logo{border:1px solid rgba(0,0,0,.12);margin-right:16px}#profile .about-tab .about-sidebar .groups .content .group .name{font-weight:500;font-size:15px}#profile .about-tab .about-sidebar .groups .content .group .category,#profile .about-tab .about-sidebar .groups .content .group .members{color:rgba(0,0,0,.54)}#profile .about-tab .about-sidebar .groups .content .group .members{margin-top:16px}@media screen and (max-width:960px){#profile .about-tab .about-sidebar{padding:8px}}#maintenance{height:100%;background:url(/assets/images/backgrounds/march.jpg) no-repeat;background-size:cover}#maintenance #maintenance-form-wrapper{flex:1 0 auto;padding:32px}#maintenance #maintenance-form-wrapper #maintenance-form{max-width:384px;padding:32px;background:#fff;text-align:center}#maintenance #maintenance-form-wrapper #maintenance-form .logo{width:128px;height:128px;line-height:128px;font-size:86px;font-weight:500;margin:32px auto;color:#fff;border-radius:2px}#maintenance #maintenance-form-wrapper #maintenance-form .title{font-size:17px;margin-top:16px}#maintenance #maintenance-form-wrapper #maintenance-form .subtitle{margin:16px 0;max-width:300px;color:rgba(0,0,0,.54);font-size:15px}@media screen and (max-width:600px){#maintenance #maintenance-form-wrapper{padding:16px}#maintenance #maintenance-form-wrapper #maintenance-form{padding:24px;width:100%}}md-dialog.freshdeskAccount-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.freshdeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.freshdeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskConfiguration-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.freshdeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskConfiguration-dialog .error-list{font-size:13px}md-dialog.freshdeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.freshdeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.freshdeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.freshdeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.freshdeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.freshdeskAccount-item-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.freshdeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.freshdeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.freshdeskAccount-item-dialog .error-list{font-size:13px}md-dialog.freshdeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.freshdeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.freshdeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.freshdeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.freshdeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-freshdeskAccount .header{height:120px;min-height:120px;max-height:120px}#integrations-freshdeskAccount .header .goto-freshdeskAccounts-button{margin-right:16px}#integrations-freshdeskAccount .header .freshdeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-freshdeskAccount .header .freshdeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-freshdeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container .handle{cursor:move}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader{position:relative}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-freshdeskAccount .freshdeskAccount-detail-form-container #freshdeskAccount-image-uploader .freshdeskAccount-image .media{max-height:100%}#freshdeskAccounts{position:relative}#freshdeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#freshdeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#freshdeskAccounts>.header .logo .logo-text{font-size:24px}#freshdeskAccounts>.header md-icon{color:#fff}#freshdeskAccounts>.header .search-input-wrapper{position:relative}#freshdeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#freshdeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#freshdeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#freshdeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#freshdeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#freshdeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#freshdeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#freshdeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#freshdeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#freshdeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#freshdeskAccounts #add-freshdeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.salesforceAccount-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.salesforceAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceConfiguration-dialog{max-width:720px;width:720px}md-dialog.salesforceConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceConfiguration-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.salesforceConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceConfiguration-dialog .error-list{font-size:13px}md-dialog.salesforceConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.salesforceAccount-item-dialog{max-width:720px;width:720px}md-dialog.salesforceAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.salesforceAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.salesforceAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.salesforceAccount-item-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.salesforceAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.salesforceAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.salesforceAccount-item-dialog .error-list{font-size:13px}md-dialog.salesforceAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.salesforceAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.salesforceAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.salesforceAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.salesforceAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-salesforceAccount .header{height:120px;min-height:120px;max-height:120px}#integrations-salesforceAccount .header .goto-salesforceAccounts-button{margin-right:16px}#integrations-salesforceAccount .header .salesforceAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-salesforceAccount .header .salesforceAccount-image img{height:100%;width:auto;max-width:none}#integrations-salesforceAccount .header .subtitle{margin:6px 0 0 0}#integrations-salesforceAccount .salesforceAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-salesforceAccount .salesforceAccount-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#integrations-salesforceAccount .salesforceAccount-detail-form-container .handle{cursor:move}#integrations-salesforceAccount .salesforceAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader{position:relative}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader.dropping .drop-text{display:flex}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-salesforceAccount .salesforceAccount-detail-form-container #salesforceAccount-image-uploader .salesforceAccount-image .media{max-height:100%}#salesforceAccounts{position:relative}#salesforceAccounts>.header{height:76px;min-height:76px;max-height:76px}#salesforceAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#salesforceAccounts>.header .logo .logo-text{font-size:24px}#salesforceAccounts>.header md-icon{color:#fff}#salesforceAccounts>.header .search-input-wrapper{position:relative}#salesforceAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#salesforceAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#salesforceAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#salesforceAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#salesforceAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#salesforceAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#salesforceAccounts>.header.selected-bar .close-button-wrapper{width:244px}#salesforceAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#salesforceAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#salesforceAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#salesforceAccounts #add-salesforceAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sugarcrmAccount-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.sugarcrmAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmConfiguration-dialog{max-width:720px;width:720px}md-dialog.sugarcrmConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmConfiguration-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.sugarcrmConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmConfiguration-dialog .error-list{font-size:13px}md-dialog.sugarcrmConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.sugarcrmAccount-item-dialog{max-width:720px;width:720px}md-dialog.sugarcrmAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.sugarcrmAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.sugarcrmAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.sugarcrmAccount-item-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.sugarcrmAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sugarcrmAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.sugarcrmAccount-item-dialog .error-list{font-size:13px}md-dialog.sugarcrmAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sugarcrmAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.sugarcrmAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.sugarcrmAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sugarcrmAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-sugarcrmAccount .header{height:120px;min-height:120px;max-height:120px}#integrations-sugarcrmAccount .header .goto-sugarcrmAccounts-button{margin-right:16px}#integrations-sugarcrmAccount .header .sugarcrmAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-sugarcrmAccount .header .sugarcrmAccount-image img{height:100%;width:auto;max-width:none}#integrations-sugarcrmAccount .header .subtitle{margin:6px 0 0 0}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container .handle{cursor:move}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader{position:relative}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader.dropping .drop-text{display:flex}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-sugarcrmAccount .sugarcrmAccount-detail-form-container #sugarcrmAccount-image-uploader .sugarcrmAccount-image .media{max-height:100%}#sugarcrmAccounts{position:relative}#sugarcrmAccounts>.header{height:76px;min-height:76px;max-height:76px}#sugarcrmAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#sugarcrmAccounts>.header .logo .logo-text{font-size:24px}#sugarcrmAccounts>.header md-icon{color:#fff}#sugarcrmAccounts>.header .search-input-wrapper{position:relative}#sugarcrmAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sugarcrmAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sugarcrmAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sugarcrmAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sugarcrmAccounts>.header.selected-bar .close-button-wrapper{width:244px}#sugarcrmAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sugarcrmAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sugarcrmAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sugarcrmAccounts #add-sugarcrmAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.zendeskAccount-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.zendeskAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.zendeskAccount-item-dialog{max-width:720px;width:720px}md-dialog.zendeskAccount-item-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskAccount-item-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskAccount-item-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskAccount-item-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.zendeskAccount-item-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskAccount-item-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskAccount-item-dialog .error-list{font-size:13px}md-dialog.zendeskAccount-item-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskAccount-item-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskAccount-item-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskAccount-item-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskAccount-item-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#integrations-zendeskAccount .header{height:120px;min-height:120px;max-height:120px}#integrations-zendeskAccount .header .goto-zendeskAccounts-button{margin-right:16px}#integrations-zendeskAccount .header .zendeskAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#integrations-zendeskAccount .header .zendeskAccount-image img{height:100%;width:auto;max-width:none}#integrations-zendeskAccount .header .subtitle{margin:6px 0 0 0}#integrations-zendeskAccount .zendeskAccount-detail-form-container{padding:24px;margin-bottom:24px}#integrations-zendeskAccount .zendeskAccount-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#integrations-zendeskAccount .zendeskAccount-detail-form-container .handle{cursor:move}#integrations-zendeskAccount .zendeskAccount-detail-form-container md-input-container md-switch{margin:0!important}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader{position:relative}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader.dropping .drop-text{display:flex}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .upload-button{margin-bottom:16px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#integrations-zendeskAccount .zendeskAccount-detail-form-container #zendeskAccount-image-uploader .zendeskAccount-image .media{max-height:100%}md-dialog.zendeskConfiguration-dialog{max-width:720px;width:720px}md-dialog.zendeskConfiguration-dialog md-dialog-content{display:block;position:relative}md-dialog.zendeskConfiguration-dialog md-toolbar .title{font-size:17px}md-dialog.zendeskConfiguration-dialog md-input-container textarea{min-height:150px}md-dialog.zendeskConfiguration-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.zendeskConfiguration-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.zendeskConfiguration-dialog .date-container{padding:16px 0 24px 0}md-dialog.zendeskConfiguration-dialog .error-list{font-size:13px}md-dialog.zendeskConfiguration-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.zendeskConfiguration-dialog .error-list .error .message{font-weight:500}md-dialog.zendeskConfiguration-dialog .error-list .error .md-button{margin:0}md-dialog.zendeskConfiguration-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.zendeskConfiguration-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#zendeskAccounts{position:relative}#zendeskAccounts>.header{height:76px;min-height:76px;max-height:76px}#zendeskAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#zendeskAccounts>.header .logo .logo-text{font-size:24px}#zendeskAccounts>.header md-icon{color:#fff}#zendeskAccounts>.header .search-input-wrapper{position:relative}#zendeskAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#zendeskAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#zendeskAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#zendeskAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#zendeskAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#zendeskAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#zendeskAccounts>.header.selected-bar .close-button-wrapper{width:244px}#zendeskAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#zendeskAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#zendeskAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#zendeskAccounts #add-zendeskAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.project-dialog{max-width:720px;width:720px}md-dialog.project-dialog md-dialog-content{display:block;position:relative}md-dialog.project-dialog md-toolbar .title{font-size:17px}md-dialog.project-dialog md-input-container textarea{min-height:150px}md-dialog.project-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.project-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.project-dialog .date-container{padding:16px 0 24px 0}md-dialog.project-dialog .error-list{font-size:13px}md-dialog.project-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.project-dialog .error-list .error .message{font-weight:500}md-dialog.project-dialog .error-list .error .md-button{margin:0}md-dialog.project-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.project-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#jscripty-project .header{height:120px;min-height:120px;max-height:120px}#jscripty-project .header .goto-projects-button{margin-right:16px}#jscripty-project .header .project-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#jscripty-project .header .project-image img{height:100%;width:auto;max-width:none}#jscripty-project .header .subtitle{margin:6px 0 0 0}#jscripty-project .project-detail-form-container{padding:24px;margin-bottom:24px}#jscripty-project .project-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#jscripty-project .project-detail-form-container .handle{cursor:move}#jscripty-project .project-detail-form-container md-input-container md-switch{margin:0!important}#jscripty-project .project-detail-form-container #project-image-uploader{position:relative}#jscripty-project .project-detail-form-container #project-image-uploader.dropping .drop-text{display:flex}#jscripty-project .project-detail-form-container #project-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#jscripty-project .project-detail-form-container #project-image-uploader .upload-button{margin-bottom:16px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#jscripty-project .project-detail-form-container #project-image-uploader .project-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#jscripty-project .project-detail-form-container #project-image-uploader .project-image .media{max-height:100%}#projects{position:relative}#projects>.header{height:76px;min-height:76px;max-height:76px}#projects>.header .logo .logo-icon{margin:0 16px 0 0}#projects>.header .logo .logo-text{font-size:24px}#projects>.header md-icon{color:#fff}#projects>.header .search-input-wrapper{position:relative}#projects>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#projects>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#projects>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#projects>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#projects>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#projects>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#projects>.header.selected-bar .close-button-wrapper{width:244px}#projects>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#projects>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#projects>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#projects #add-project-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailAccount-dialog{max-width:720px;width:720px}md-dialog.mailAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.mailAccount-dialog md-toolbar .title{font-size:17px}md-dialog.mailAccount-dialog md-input-container textarea{min-height:150px}md-dialog.mailAccount-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.mailAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailAccount-dialog .error-list{font-size:13px}md-dialog.mailAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailAccount-dialog .error-list .error .message{font-weight:500}md-dialog.mailAccount-dialog .error-list .error .md-button{margin:0}md-dialog.mailAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mailDisposition-dialog{max-width:720px;width:720px}md-dialog.mailDisposition-dialog md-dialog-content{display:block;position:relative}md-dialog.mailDisposition-dialog md-toolbar .title{font-size:17px}md-dialog.mailDisposition-dialog md-input-container textarea{min-height:150px}md-dialog.mailDisposition-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.mailDisposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailDisposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailDisposition-dialog .error-list{font-size:13px}md-dialog.mailDisposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailDisposition-dialog .error-list .error .message{font-weight:500}md-dialog.mailDisposition-dialog .error-list .error .md-button{margin:0}md-dialog.mailDisposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailDisposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailAccount .header{height:120px;min-height:120px;max-height:120px}#mail-mailAccount .header .goto-mailAccounts-button{margin-right:16px}#mail-mailAccount .header .mailAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailAccount .header .mailAccount-image img{height:100%;width:auto;max-width:none}#mail-mailAccount .header .subtitle{margin:6px 0 0 0}#mail-mailAccount .mailAccount-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailAccount .mailAccount-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#mail-mailAccount .mailAccount-detail-form-container .handle{cursor:move}#mail-mailAccount .mailAccount-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader{position:relative}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader.dropping .drop-text{display:flex}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .upload-button{margin-bottom:16px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailAccount .mailAccount-detail-form-container #mailAccount-image-uploader .mailAccount-image .media{max-height:100%}#mailAccounts{position:relative}#mailAccounts>.header{height:76px;min-height:76px;max-height:76px}#mailAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#mailAccounts>.header .logo .logo-text{font-size:24px}#mailAccounts>.header md-icon{color:#fff}#mailAccounts>.header .search-input-wrapper{position:relative}#mailAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailAccounts>.header.selected-bar .close-button-wrapper{width:244px}#mailAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailAccounts #add-mailAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.mailQueue-dialog{max-width:720px;width:720px}md-dialog.mailQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.mailQueue-dialog md-toolbar .title{font-size:17px}md-dialog.mailQueue-dialog md-input-container textarea{min-height:150px}md-dialog.mailQueue-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.mailQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mailQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.mailQueue-dialog .error-list{font-size:13px}md-dialog.mailQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mailQueue-dialog .error-list .error .message{font-weight:500}md-dialog.mailQueue-dialog .error-list .error .md-button{margin:0}md-dialog.mailQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mailQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#mail-mailQueue .header{height:120px;min-height:120px;max-height:120px}#mail-mailQueue .header .goto-mailQueues-button{margin-right:16px}#mail-mailQueue .header .mailQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#mail-mailQueue .header .mailQueue-image img{height:100%;width:auto;max-width:none}#mail-mailQueue .header .subtitle{margin:6px 0 0 0}#mail-mailQueue .mailQueue-detail-form-container{padding:24px;margin-bottom:24px}#mail-mailQueue .mailQueue-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#mail-mailQueue .mailQueue-detail-form-container .handle{cursor:move}#mail-mailQueue .mailQueue-detail-form-container md-input-container md-switch{margin:0!important}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader{position:relative}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader.dropping .drop-text{display:flex}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .upload-button{margin-bottom:16px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#mail-mailQueue .mailQueue-detail-form-container #mailQueue-image-uploader .mailQueue-image .media{max-height:100%}#mailQueues{position:relative}#mailQueues>.header{height:76px;min-height:76px;max-height:76px}#mailQueues>.header .logo .logo-icon{margin:0 16px 0 0}#mailQueues>.header .logo .logo-text{font-size:24px}#mailQueues>.header md-icon{color:#fff}#mailQueues>.header .search-input-wrapper{position:relative}#mailQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#mailQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#mailQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#mailQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#mailQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#mailQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#mailQueues>.header.selected-bar .close-button-wrapper{width:244px}#mailQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#mailQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#mailQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#mailQueues #add-mailQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.ivrCampaign-dialog{max-width:720px;width:720px}md-dialog.ivrCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.ivrCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.ivrCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.ivrCampaign-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.ivrCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.ivrCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.ivrCampaign-dialog .error-list{font-size:13px}md-dialog.ivrCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.ivrCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.ivrCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.ivrCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.ivrCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-ivrCampaign .header{height:120px;min-height:120px;max-height:120px}#motiondialer-ivrCampaign .header .goto-ivrCampaigns-button{margin-right:16px}#motiondialer-ivrCampaign .header .ivrCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-ivrCampaign .header .ivrCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-ivrCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container .handle{cursor:move}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader{position:relative}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-ivrCampaign .ivrCampaign-detail-form-container #ivrCampaign-image-uploader .ivrCampaign-image .media{max-height:100%}#ivrCampaigns{position:relative}#ivrCampaigns>.header{height:76px;min-height:76px;max-height:76px}#ivrCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#ivrCampaigns>.header .logo .logo-text{font-size:24px}#ivrCampaigns>.header md-icon{color:#fff}#ivrCampaigns>.header .search-input-wrapper{position:relative}#ivrCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#ivrCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#ivrCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#ivrCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#ivrCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#ivrCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#ivrCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#ivrCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#ivrCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#ivrCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#ivrCampaigns #add-ivrCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.queueCampaign-dialog{max-width:720px;width:720px}md-dialog.queueCampaign-dialog md-dialog-content{display:block;position:relative}md-dialog.queueCampaign-dialog md-toolbar .title{font-size:17px}md-dialog.queueCampaign-dialog md-input-container textarea{min-height:150px}md-dialog.queueCampaign-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.queueCampaign-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.queueCampaign-dialog .date-container{padding:16px 0 24px 0}md-dialog.queueCampaign-dialog .error-list{font-size:13px}md-dialog.queueCampaign-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.queueCampaign-dialog .error-list .error .message{font-weight:500}md-dialog.queueCampaign-dialog .error-list .error .md-button{margin:0}md-dialog.queueCampaign-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.queueCampaign-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.hopper-dialog{max-width:720px;width:720px}md-dialog.hopper-dialog md-dialog-content{display:block;position:relative}md-dialog.hopper-dialog md-toolbar .title{font-size:17px}md-dialog.hopper-dialog md-input-container textarea{min-height:150px}md-dialog.hopper-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.hopper-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.hopper-dialog .date-container{padding:16px 0 24px 0}md-dialog.hopper-dialog .error-list{font-size:13px}md-dialog.hopper-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.hopper-dialog .error-list .error .message{font-weight:500}md-dialog.hopper-dialog .error-list .error .md-button{margin:0}md-dialog.hopper-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.hopper-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#motiondialer-queueCampaign .header{height:120px;min-height:120px;max-height:120px}#motiondialer-queueCampaign .header .goto-queueCampaigns-button{margin-right:16px}#motiondialer-queueCampaign .header .queueCampaign-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#motiondialer-queueCampaign .header .queueCampaign-image img{height:100%;width:auto;max-width:none}#motiondialer-queueCampaign .header .subtitle{margin:6px 0 0 0}#motiondialer-queueCampaign .queueCampaign-detail-form-container{padding:24px;margin-bottom:24px}#motiondialer-queueCampaign .queueCampaign-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#motiondialer-queueCampaign .queueCampaign-detail-form-container .handle{cursor:move}#motiondialer-queueCampaign .queueCampaign-detail-form-container md-input-container md-switch{margin:0!important}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader{position:relative}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader.dropping .drop-text{display:flex}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .upload-button{margin-bottom:16px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#motiondialer-queueCampaign .queueCampaign-detail-form-container #queueCampaign-image-uploader .queueCampaign-image .media{max-height:100%}#queueCampaigns{position:relative}#queueCampaigns>.header{height:76px;min-height:76px;max-height:76px}#queueCampaigns>.header .logo .logo-icon{margin:0 16px 0 0}#queueCampaigns>.header .logo .logo-text{font-size:24px}#queueCampaigns>.header md-icon{color:#fff}#queueCampaigns>.header .search-input-wrapper{position:relative}#queueCampaigns>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#queueCampaigns>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#queueCampaigns>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#queueCampaigns>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#queueCampaigns>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#queueCampaigns>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#queueCampaigns>.header.selected-bar .close-button-wrapper{width:244px}#queueCampaigns>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#queueCampaigns>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#queueCampaigns>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#queueCampaigns #add-queueCampaign-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}@keyframes blinker{50%{opacity:0}}md-dialog.openchannelAccount-dialog{max-width:720px;width:720px}md-dialog.openchannelAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelAccount-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelAccount-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelAccount-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.openchannelAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelAccount-dialog .error-list{font-size:13px}md-dialog.openchannelAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelAccount-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelAccount-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.openchannelDisposition-dialog{max-width:720px;width:720px}md-dialog.openchannelDisposition-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelDisposition-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelDisposition-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelDisposition-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.openchannelDisposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelDisposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelDisposition-dialog .error-list{font-size:13px}md-dialog.openchannelDisposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelDisposition-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelDisposition-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelDisposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelDisposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelAccount .header{height:120px;min-height:120px;max-height:120px}#openchannel-openchannelAccount .header .goto-openchannelAccounts-button{margin-right:16px}#openchannel-openchannelAccount .header .openchannelAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelAccount .header .openchannelAccount-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelAccount .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelAccount .openchannelAccount-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#openchannel-openchannelAccount .openchannelAccount-detail-form-container .handle{cursor:move}#openchannel-openchannelAccount .openchannelAccount-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader{position:relative}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelAccount .openchannelAccount-detail-form-container #openchannelAccount-image-uploader .openchannelAccount-image .media{max-height:100%}#openchannelAccounts{position:relative}#openchannelAccounts>.header{height:76px;min-height:76px;max-height:76px}#openchannelAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelAccounts>.header .logo .logo-text{font-size:24px}#openchannelAccounts>.header md-icon{color:#fff}#openchannelAccounts>.header .search-input-wrapper{position:relative}#openchannelAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelAccounts>.header.selected-bar .close-button-wrapper{width:244px}#openchannelAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelAccounts #add-openchannelAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.openchannelQueue-dialog{max-width:720px;width:720px}md-dialog.openchannelQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.openchannelQueue-dialog md-toolbar .title{font-size:17px}md-dialog.openchannelQueue-dialog md-input-container textarea{min-height:150px}md-dialog.openchannelQueue-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.openchannelQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.openchannelQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.openchannelQueue-dialog .error-list{font-size:13px}md-dialog.openchannelQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.openchannelQueue-dialog .error-list .error .message{font-weight:500}md-dialog.openchannelQueue-dialog .error-list .error .md-button{margin:0}md-dialog.openchannelQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.openchannelQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#openchannel-openchannelQueue .header{height:120px;min-height:120px;max-height:120px}#openchannel-openchannelQueue .header .goto-openchannelQueues-button{margin-right:16px}#openchannel-openchannelQueue .header .openchannelQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#openchannel-openchannelQueue .header .openchannelQueue-image img{height:100%;width:auto;max-width:none}#openchannel-openchannelQueue .header .subtitle{margin:6px 0 0 0}#openchannel-openchannelQueue .openchannelQueue-detail-form-container{padding:24px;margin-bottom:24px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#openchannel-openchannelQueue .openchannelQueue-detail-form-container .handle{cursor:move}#openchannel-openchannelQueue .openchannelQueue-detail-form-container md-input-container md-switch{margin:0!important}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader{position:relative}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader.dropping .drop-text{display:flex}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .upload-button{margin-bottom:16px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#openchannel-openchannelQueue .openchannelQueue-detail-form-container #openchannelQueue-image-uploader .openchannelQueue-image .media{max-height:100%}#openchannelQueues{position:relative}#openchannelQueues>.header{height:76px;min-height:76px;max-height:76px}#openchannelQueues>.header .logo .logo-icon{margin:0 16px 0 0}#openchannelQueues>.header .logo .logo-text{font-size:24px}#openchannelQueues>.header md-icon{color:#fff}#openchannelQueues>.header .search-input-wrapper{position:relative}#openchannelQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#openchannelQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#openchannelQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#openchannelQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#openchannelQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#openchannelQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#openchannelQueues>.header.selected-bar .close-button-wrapper{width:244px}#openchannelQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#openchannelQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#openchannelQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#openchannelQueues #add-openchannelQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.customization-dialog{max-width:720px;width:720px}md-dialog.customization-dialog md-dialog-content{display:block;position:relative}md-dialog.customization-dialog md-toolbar .title{font-size:17px}md-dialog.customization-dialog md-input-container textarea{min-height:150px}md-dialog.customization-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.customization-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customization-dialog .date-container{padding:16px 0 24px 0}md-dialog.customization-dialog .error-list{font-size:13px}md-dialog.customization-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customization-dialog .error-list .error .message{font-weight:500}md-dialog.customization-dialog .error-list .error .md-button{margin:0}md-dialog.customization-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customization-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customizations{position:relative}#customizations>.header{height:76px;min-height:76px;max-height:76px}#customizations>.header .logo .logo-icon{margin:0 16px 0 0}#customizations>.header .logo .logo-text{font-size:24px}#customizations>.header md-icon{color:#fff}#customizations>.header .search-input-wrapper{position:relative}#customizations>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customizations>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customizations>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customizations>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customizations>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customizations>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customizations>.header.selected-bar .close-button-wrapper{width:244px}#customizations>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customizations>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customizations>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customizations>.content .customization-detail-form-container{padding:24px;margin-bottom:24px}#customizations>.content .customization-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#customizations>.content .customization-detail-form-container .handle{cursor:move}#customizations>.content .customization-detail-form-container md-input-container md-switch{margin:0!important}#customizations>.content .customization-detail-form-container #customization-image-uploader{position:relative}#customizations>.content .customization-detail-form-container #customization-image-uploader.dropping .drop-text{display:flex}#customizations>.content .customization-detail-form-container #customization-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#customizations>.content .customization-detail-form-container #customization-image-uploader .upload-button{margin-bottom:16px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#customizations>.content .customization-detail-form-container #customization-image-uploader .customization-image .media{max-height:100%}#customizations #add-customization-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.general-dialog{max-width:720px;width:720px}md-dialog.general-dialog md-dialog-content{display:block;position:relative}md-dialog.general-dialog md-toolbar .title{font-size:17px}md-dialog.general-dialog md-input-container textarea{min-height:150px}md-dialog.general-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.general-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.general-dialog .date-container{padding:16px 0 24px 0}md-dialog.general-dialog .error-list{font-size:13px}md-dialog.general-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.general-dialog .error-list .error .message{font-weight:500}md-dialog.general-dialog .error-list .error .md-button{margin:0}md-dialog.general-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.general-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#generals{position:relative}#generals>.header{height:76px;min-height:76px;max-height:76px}#generals>.header .logo .logo-icon{margin:0 16px 0 0}#generals>.header .logo .logo-text{font-size:24px}#generals>.header md-icon{color:#fff}#generals>.header .search-input-wrapper{position:relative}#generals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#generals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#generals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#generals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#generals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#generals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#generals>.header.selected-bar .close-button-wrapper{width:244px}#generals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#generals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#generals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#generals>.content .general-detail-form-container{padding:24px;margin-bottom:24px}#generals>.content .general-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#generals>.content .general-detail-form-container .handle{cursor:move}#generals>.content .general-detail-form-container md-input-container md-switch{margin:0!important}#generals>.content .general-detail-form-container #general-image-uploader{position:relative}#generals>.content .general-detail-form-container #general-image-uploader.dropping .drop-text{display:flex}#generals>.content .general-detail-form-container #general-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#generals>.content .general-detail-form-container #general-image-uploader .upload-button{margin-bottom:16px}#generals>.content .general-detail-form-container #general-image-uploader .general-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#generals>.content .general-detail-form-container #general-image-uploader .general-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#generals>.content .general-detail-form-container #general-image-uploader .general-image .media{max-height:100%}#generals #add-general-button{position:fixed;bottom:8px;right:8px;padding:0}#license{position:relative}#license .blink{animation:blinker 2s linear infinite}#license>.header{height:76px;min-height:76px;max-height:76px}#license>.header .logo .logo-icon{margin:0 16px 0 0}#license>.header .logo .logo-text{font-size:24px}#license>.header md-icon{color:#fff}#license>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#license>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#license>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#license>.content .badge{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:11px;font-weight:500;padding:6px 8px}md-dialog.request-dialog{max-width:720px;width:720px}md-dialog.request-dialog md-dialog-content{display:block;position:relative}md-dialog.request-dialog md-toolbar .title{font-size:17px}md-dialog.request-dialog md-input-container textarea{min-height:150px}md-dialog.request-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.request-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.request-dialog .date-container{padding:16px 0 24px 0}md-dialog.request-dialog .error-list{font-size:13px}md-dialog.request-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.request-dialog .error-list .error .message{font-weight:500}md-dialog.request-dialog .error-list .error .md-button{margin:0}md-dialog.request-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.request-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.network-dialog{max-width:720px;width:720px}md-dialog.network-dialog md-dialog-content{display:block;position:relative}md-dialog.network-dialog md-toolbar .title{font-size:17px}md-dialog.network-dialog md-input-container textarea{min-height:150px}md-dialog.network-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.network-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.network-dialog .date-container{padding:16px 0 24px 0}md-dialog.network-dialog .error-list{font-size:13px}md-dialog.network-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.network-dialog .error-list .error .message{font-weight:500}md-dialog.network-dialog .error-list .error .md-button{margin:0}md-dialog.network-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.network-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#networks{position:relative}#networks>.header{height:76px;min-height:76px;max-height:76px}#networks>.header .logo .logo-icon{margin:0 16px 0 0}#networks>.header .logo .logo-text{font-size:24px}#networks>.header md-icon{color:#fff}#networks>.header .search-input-wrapper{position:relative}#networks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#networks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#networks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#networks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#networks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#networks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#networks>.header.selected-bar .close-button-wrapper{width:244px}#networks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#networks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#networks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#networks #add-network-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smtp-dialog{max-width:720px;width:720px}md-dialog.smtp-dialog md-dialog-content{display:block;position:relative}md-dialog.smtp-dialog md-toolbar .title{font-size:17px}md-dialog.smtp-dialog md-input-container textarea{min-height:150px}md-dialog.smtp-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.smtp-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smtp-dialog .date-container{padding:16px 0 24px 0}md-dialog.smtp-dialog .error-list{font-size:13px}md-dialog.smtp-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smtp-dialog .error-list .error .message{font-weight:500}md-dialog.smtp-dialog .error-list .error .md-button{margin:0}md-dialog.smtp-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smtp-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#smtps{position:relative}#smtps>.header{height:76px;min-height:76px;max-height:76px}#smtps>.header .logo .logo-icon{margin:0 16px 0 0}#smtps>.header .logo .logo-text{font-size:24px}#smtps>.header md-icon{color:#fff}#smtps>.header .search-input-wrapper{position:relative}#smtps>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smtps>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smtps>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smtps>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smtps>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smtps>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smtps>.header.selected-bar .close-button-wrapper{width:244px}#smtps>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smtps>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smtps>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smtps>.content .smtp-detail-form-container{padding:24px;margin-bottom:24px}#smtps>.content .smtp-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#smtps>.content .smtp-detail-form-container .handle{cursor:move}#smtps>.content .smtp-detail-form-container md-input-container md-switch{margin:0!important}#smtps>.content .smtp-detail-form-container #smtp-image-uploader{position:relative}#smtps>.content .smtp-detail-form-container #smtp-image-uploader.dropping .drop-text{display:flex}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .upload-button{margin-bottom:16px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#smtps>.content .smtp-detail-form-container #smtp-image-uploader .smtp-image .media{max-height:100%}#smtps #add-smtp-button{position:fixed;bottom:8px;right:8px;padding:0}#system>.header{height:76px;min-height:76px;max-height:76px}#system>.header .logo .logo-icon{margin:0 16px 0 0}#system>.header .logo .logo-text{font-size:24px}#system>.header md-icon{color:#fff}#system .system-detail-form-container{padding:24px;margin-bottom:24px}#system .system-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#system .system-detail-form-container .handle{cursor:move}#system .system-detail-form-container md-input-container md-switch{margin:0!important}#system .system-detail-form-container #system-image-uploader{position:relative}#system .system-detail-form-container #system-image-uploader.dropping .drop-text{display:flex}#system .system-detail-form-container #system-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#system .system-detail-form-container #system-image-uploader .upload-button{margin-bottom:16px}#system .system-detail-form-container #system-image-uploader .system-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#system .system-detail-form-container #system-image-uploader .system-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#system .system-detail-form-container #system-image-uploader .system-image .media{max-height:100%}#updates{position:relative}#updates>.header{height:76px;min-height:76px;max-height:76px}#updates>.header .logo .logo-icon{margin:0 16px 0 0}#updates>.header .logo .logo-text{font-size:24px}#updates>.header md-icon{color:#fff}#updates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#updates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#updates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}md-dialog.smsAccount-dialog{max-width:720px;width:720px}md-dialog.smsAccount-dialog md-dialog-content{display:block;position:relative}md-dialog.smsAccount-dialog md-toolbar .title{font-size:17px}md-dialog.smsAccount-dialog md-input-container textarea{min-height:150px}md-dialog.smsAccount-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.smsAccount-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsAccount-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsAccount-dialog .error-list{font-size:13px}md-dialog.smsAccount-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsAccount-dialog .error-list .error .message{font-weight:500}md-dialog.smsAccount-dialog .error-list .error .md-button{margin:0}md-dialog.smsAccount-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsAccount-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.smsDisposition-dialog{max-width:720px;width:720px}md-dialog.smsDisposition-dialog md-dialog-content{display:block;position:relative}md-dialog.smsDisposition-dialog md-toolbar .title{font-size:17px}md-dialog.smsDisposition-dialog md-input-container textarea{min-height:150px}md-dialog.smsDisposition-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.smsDisposition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsDisposition-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsDisposition-dialog .error-list{font-size:13px}md-dialog.smsDisposition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsDisposition-dialog .error-list .error .message{font-weight:500}md-dialog.smsDisposition-dialog .error-list .error .md-button{margin:0}md-dialog.smsDisposition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsDisposition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsAccount .header{height:120px;min-height:120px;max-height:120px}#sms-smsAccount .header .goto-smsAccounts-button{margin-right:16px}#sms-smsAccount .header .smsAccount-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsAccount .header .smsAccount-image img{height:100%;width:auto;max-width:none}#sms-smsAccount .header .subtitle{margin:6px 0 0 0}#sms-smsAccount .smsAccount-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsAccount .smsAccount-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#sms-smsAccount .smsAccount-detail-form-container .handle{cursor:move}#sms-smsAccount .smsAccount-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader{position:relative}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader.dropping .drop-text{display:flex}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .upload-button{margin-bottom:16px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsAccount .smsAccount-detail-form-container #smsAccount-image-uploader .smsAccount-image .media{max-height:100%}#smsAccounts{position:relative}#smsAccounts>.header{height:76px;min-height:76px;max-height:76px}#smsAccounts>.header .logo .logo-icon{margin:0 16px 0 0}#smsAccounts>.header .logo .logo-text{font-size:24px}#smsAccounts>.header md-icon{color:#fff}#smsAccounts>.header .search-input-wrapper{position:relative}#smsAccounts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsAccounts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsAccounts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsAccounts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsAccounts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsAccounts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsAccounts>.header.selected-bar .close-button-wrapper{width:244px}#smsAccounts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsAccounts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsAccounts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsAccounts #add-smsAccount-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.smsQueue-dialog{max-width:720px;width:720px}md-dialog.smsQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.smsQueue-dialog md-toolbar .title{font-size:17px}md-dialog.smsQueue-dialog md-input-container textarea{min-height:150px}md-dialog.smsQueue-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.smsQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.smsQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.smsQueue-dialog .error-list{font-size:13px}md-dialog.smsQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.smsQueue-dialog .error-list .error .message{font-weight:500}md-dialog.smsQueue-dialog .error-list .error .md-button{margin:0}md-dialog.smsQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.smsQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sms-smsQueue .header{height:120px;min-height:120px;max-height:120px}#sms-smsQueue .header .goto-smsQueues-button{margin-right:16px}#sms-smsQueue .header .smsQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#sms-smsQueue .header .smsQueue-image img{height:100%;width:auto;max-width:none}#sms-smsQueue .header .subtitle{margin:6px 0 0 0}#sms-smsQueue .smsQueue-detail-form-container{padding:24px;margin-bottom:24px}#sms-smsQueue .smsQueue-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#sms-smsQueue .smsQueue-detail-form-container .handle{cursor:move}#sms-smsQueue .smsQueue-detail-form-container md-input-container md-switch{margin:0!important}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader{position:relative}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader.dropping .drop-text{display:flex}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .upload-button{margin-bottom:16px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#sms-smsQueue .smsQueue-detail-form-container #smsQueue-image-uploader .smsQueue-image .media{max-height:100%}#smsQueues{position:relative}#smsQueues>.header{height:76px;min-height:76px;max-height:76px}#smsQueues>.header .logo .logo-icon{margin:0 16px 0 0}#smsQueues>.header .logo .logo-text{font-size:24px}#smsQueues>.header md-icon{color:#fff}#smsQueues>.header .search-input-wrapper{position:relative}#smsQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#smsQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#smsQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#smsQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#smsQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#smsQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#smsQueues>.header.selected-bar .close-button-wrapper{width:244px}#smsQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#smsQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#smsQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#smsQueues #add-smsQueue-button{position:fixed;bottom:8px;right:8px;padding:0}#agents{position:relative}#agents>.header{height:76px;min-height:76px;max-height:76px}#agents>.header .logo .logo-icon{margin:0 16px 0 0}#agents>.header .logo .logo-text{font-size:24px}#agents>.header md-icon{color:#fff}#agents>.header .search-input-wrapper{position:relative}#agents>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#agents>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#agents>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#agents>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#agents>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#agents>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#agents>.header.selected-bar .close-button-wrapper{width:244px}#agents>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#agents>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#agents>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#agents #add-agent-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.agent-dialog{max-width:720px;width:720px}md-dialog.agent-dialog md-dialog-content{display:block;position:relative}md-dialog.agent-dialog md-toolbar .title{font-size:17px}md-dialog.agent-dialog md-input-container textarea{min-height:150px}md-dialog.agent-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.agent-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.agent-dialog .date-container{padding:16px 0 24px 0}md-dialog.agent-dialog .error-list{font-size:13px}md-dialog.agent-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.agent-dialog .error-list .error .message{font-weight:500}md-dialog.agent-dialog .error-list .error .md-button{margin:0}md-dialog.agent-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.agent-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-agent .header{height:120px;min-height:120px;max-height:120px}#staff-agent .header .goto-agents-button{margin-right:16px}#staff-agent .header .agent-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-agent .header .agent-image img{height:100%;width:auto;max-width:none}#staff-agent .header .subtitle{margin:6px 0 0 0}#staff-agent .agent-detail-form-container{padding:24px;margin-bottom:24px}#staff-agent .agent-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#staff-agent .agent-detail-form-container .handle{cursor:move}#staff-agent .agent-detail-form-container md-input-container md-switch{margin:0!important}#staff-agent .agent-detail-form-container #agent-image-uploader{position:relative}#staff-agent .agent-detail-form-container #agent-image-uploader.dropping .drop-text{display:flex}#staff-agent .agent-detail-form-container #agent-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-agent .agent-detail-form-container #agent-image-uploader .upload-button{margin-bottom:16px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-agent .agent-detail-form-container #agent-image-uploader .agent-image .media{max-height:100%}md-dialog.team-dialog{max-width:720px;width:720px}md-dialog.team-dialog md-dialog-content{display:block;position:relative}md-dialog.team-dialog md-toolbar .title{font-size:17px}md-dialog.team-dialog md-input-container textarea{min-height:150px}md-dialog.team-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.team-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.team-dialog .date-container{padding:16px 0 24px 0}md-dialog.team-dialog .error-list{font-size:13px}md-dialog.team-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.team-dialog .error-list .error .message{font-weight:500}md-dialog.team-dialog .error-list .error .md-button{margin:0}md-dialog.team-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.team-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#teams{position:relative}#teams>.header{height:76px;min-height:76px;max-height:76px}#teams>.header .logo .logo-icon{margin:0 16px 0 0}#teams>.header .logo .logo-text{font-size:24px}#teams>.header md-icon{color:#fff}#teams>.header .search-input-wrapper{position:relative}#teams>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#teams>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#teams>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#teams>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#teams>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#teams>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#teams>.header.selected-bar .close-button-wrapper{width:244px}#teams>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#teams>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#teams>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#teams #add-team-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.telephone-dialog{max-width:720px;width:720px}md-dialog.telephone-dialog md-dialog-content{display:block;position:relative}md-dialog.telephone-dialog md-toolbar .title{font-size:17px}md-dialog.telephone-dialog md-input-container textarea{min-height:150px}md-dialog.telephone-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.telephone-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.telephone-dialog .date-container{padding:16px 0 24px 0}md-dialog.telephone-dialog .error-list{font-size:13px}md-dialog.telephone-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.telephone-dialog .error-list .error .message{font-weight:500}md-dialog.telephone-dialog .error-list .error .md-button{margin:0}md-dialog.telephone-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.telephone-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-telephone .header{height:120px;min-height:120px;max-height:120px}#staff-telephone .header .goto-telephones-button{margin-right:16px}#staff-telephone .header .telephone-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-telephone .header .telephone-image img{height:100%;width:auto;max-width:none}#staff-telephone .header .subtitle{margin:6px 0 0 0}#staff-telephone .telephone-detail-form-container{padding:24px;margin-bottom:24px}#staff-telephone .telephone-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#staff-telephone .telephone-detail-form-container .handle{cursor:move}#staff-telephone .telephone-detail-form-container md-input-container md-switch{margin:0!important}#staff-telephone .telephone-detail-form-container #telephone-image-uploader{position:relative}#staff-telephone .telephone-detail-form-container #telephone-image-uploader.dropping .drop-text{display:flex}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .upload-button{margin-bottom:16px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-telephone .telephone-detail-form-container #telephone-image-uploader .telephone-image .media{max-height:100%}#telephones{position:relative}#telephones>.header{height:76px;min-height:76px;max-height:76px}#telephones>.header .logo .logo-icon{margin:0 16px 0 0}#telephones>.header .logo .logo-text{font-size:24px}#telephones>.header md-icon{color:#fff}#telephones>.header .search-input-wrapper{position:relative}#telephones>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#telephones>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#telephones>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#telephones>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#telephones>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#telephones>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#telephones>.header.selected-bar .close-button-wrapper{width:244px}#telephones>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#telephones>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#telephones>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#telephones #add-telephone-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.user-dialog{max-width:720px;width:720px}md-dialog.user-dialog md-dialog-content{display:block;position:relative}md-dialog.user-dialog md-toolbar .title{font-size:17px}md-dialog.user-dialog md-input-container textarea{min-height:150px}md-dialog.user-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.user-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.user-dialog .date-container{padding:16px 0 24px 0}md-dialog.user-dialog .error-list{font-size:13px}md-dialog.user-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.user-dialog .error-list .error .message{font-weight:500}md-dialog.user-dialog .error-list .error .md-button{margin:0}md-dialog.user-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.user-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#staff-user .header{height:120px;min-height:120px;max-height:120px}#staff-user .header .goto-users-button{margin-right:16px}#staff-user .header .user-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#staff-user .header .user-image img{height:100%;width:auto;max-width:none}#staff-user .header .subtitle{margin:6px 0 0 0}#staff-user .user-detail-form-container{padding:24px;margin-bottom:24px}#staff-user .user-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#staff-user .user-detail-form-container .handle{cursor:move}#staff-user .user-detail-form-container md-input-container md-switch{margin:0!important}#staff-user .user-detail-form-container #user-image-uploader{position:relative}#staff-user .user-detail-form-container #user-image-uploader.dropping .drop-text{display:flex}#staff-user .user-detail-form-container #user-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#staff-user .user-detail-form-container #user-image-uploader .upload-button{margin-bottom:16px}#staff-user .user-detail-form-container #user-image-uploader .user-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#staff-user .user-detail-form-container #user-image-uploader .user-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#staff-user .user-detail-form-container #user-image-uploader .user-image .media{max-height:100%}#users{position:relative}#users>.header{height:76px;min-height:76px;max-height:76px}#users>.header .logo .logo-icon{margin:0 16px 0 0}#users>.header .logo .logo-text{font-size:24px}#users>.header md-icon{color:#fff}#users>.header .search-input-wrapper{position:relative}#users>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#users>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#users>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#users>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#users>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#users>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#users>.header.selected-bar .close-button-wrapper{width:244px}#users>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#users>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#users>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#users #add-user-button{position:fixed;bottom:8px;right:8px;padding:0}#cannedAnswers{position:relative}#cannedAnswers>.header{height:76px;min-height:76px;max-height:76px}#cannedAnswers>.header .logo .logo-icon{margin:0 16px 0 0}#cannedAnswers>.header .logo .logo-text{font-size:24px}#cannedAnswers>.header md-icon{color:#fff}#cannedAnswers>.header .search-input-wrapper{position:relative}#cannedAnswers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#cannedAnswers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#cannedAnswers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#cannedAnswers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#cannedAnswers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#cannedAnswers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#cannedAnswers>.header.selected-bar .close-button-wrapper{width:244px}#cannedAnswers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#cannedAnswers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#cannedAnswers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#cannedAnswers #add-cannedAnswer-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.cannedAnswer-dialog{max-width:720px;width:720px}md-dialog.cannedAnswer-dialog md-dialog-content{display:block;position:relative}md-dialog.cannedAnswer-dialog md-toolbar .title{font-size:17px}md-dialog.cannedAnswer-dialog md-input-container textarea{min-height:150px}md-dialog.cannedAnswer-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.cannedAnswer-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.cannedAnswer-dialog .date-container{padding:16px 0 24px 0}md-dialog.cannedAnswer-dialog .error-list{font-size:13px}md-dialog.cannedAnswer-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.cannedAnswer-dialog .error-list .error .message{font-weight:500}md-dialog.cannedAnswer-dialog .error-list .error .md-button{margin:0}md-dialog.cannedAnswer-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.cannedAnswer-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.customDashboard-dialog{max-width:720px;width:720px}md-dialog.customDashboard-dialog md-dialog-content{display:block;position:relative}md-dialog.customDashboard-dialog md-toolbar .title{font-size:17px}md-dialog.customDashboard-dialog md-input-container textarea{min-height:150px}md-dialog.customDashboard-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.customDashboard-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.customDashboard-dialog .date-container{padding:16px 0 24px 0}md-dialog.customDashboard-dialog .error-list{font-size:13px}md-dialog.customDashboard-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.customDashboard-dialog .error-list .error .message{font-weight:500}md-dialog.customDashboard-dialog .error-list .error .md-button{margin:0}md-dialog.customDashboard-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.customDashboard-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#customDashboards{position:relative}#customDashboards>.header{height:76px;min-height:76px;max-height:76px}#customDashboards>.header .logo .logo-icon{margin:0 16px 0 0}#customDashboards>.header .logo .logo-text{font-size:24px}#customDashboards>.header md-icon{color:#fff}#customDashboards>.header .search-input-wrapper{position:relative}#customDashboards>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#customDashboards>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#customDashboards>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#customDashboards>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#customDashboards>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#customDashboards>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#customDashboards>.header.selected-bar .close-button-wrapper{width:244px}#customDashboards>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#customDashboards>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#customDashboards>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#customDashboards #add-customDashboard-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.dashboarditem-dialog{max-width:720px;width:720px}md-dialog.dashboarditem-dialog md-dialog-content{display:block;position:relative}md-dialog.dashboarditem-dialog md-toolbar .title{font-size:17px}md-dialog.dashboarditem-dialog md-input-container textarea{min-height:150px}md-dialog.dashboarditem-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.dashboarditem-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.dashboarditem-dialog .date-container{padding:16px 0 24px 0}md-dialog.dashboarditem-dialog .error-list{font-size:13px}md-dialog.dashboarditem-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.dashboarditem-dialog .error-list .error .message{font-weight:500}md-dialog.dashboarditem-dialog .error-list .error .md-button{margin:0}md-dialog.dashboarditem-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.dashboarditem-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-customDashboard .header{height:120px;min-height:120px;max-height:120px}#tools-customDashboard .header .goto-customDashboards-button{margin-right:16px}#tools-customDashboard .header .customDashboard-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-customDashboard .header .customDashboard-image img{height:100%;width:auto;max-width:none}#tools-customDashboard .header .subtitle{margin:6px 0 0 0}#tools-customDashboard .customDashboard-detail-form-container{padding:24px;margin-bottom:24px}#tools-customDashboard .customDashboard-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#tools-customDashboard .customDashboard-detail-form-container .handle{cursor:move}#tools-customDashboard .customDashboard-detail-form-container md-input-container md-switch{margin:0!important}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader{position:relative}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader.dropping .drop-text{display:flex}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .upload-button{margin-bottom:16px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-customDashboard .customDashboard-detail-form-container #customDashboard-image-uploader .customDashboard-image .media{max-height:100%}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.interval-dialog{max-width:720px;width:720px}md-dialog.interval-dialog md-dialog-content{display:block;position:relative}md-dialog.interval-dialog md-toolbar .title{font-size:17px}md-dialog.interval-dialog md-input-container textarea{min-height:150px}md-dialog.interval-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.interval-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.interval-dialog .date-container{padding:16px 0 24px 0}md-dialog.interval-dialog .error-list{font-size:13px}md-dialog.interval-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.interval-dialog .error-list .error .message{font-weight:500}md-dialog.interval-dialog .error-list .error .md-button{margin:0}md-dialog.interval-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.interval-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-interval .header{height:120px;min-height:120px;max-height:120px}#tools-interval .header .goto-intervals-button{margin-right:16px}#tools-interval .header .interval-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-interval .header .interval-image img{height:100%;width:auto;max-width:none}#tools-interval .header .subtitle{margin:6px 0 0 0}#tools-interval .interval-detail-form-container{padding:24px;margin-bottom:24px}#tools-interval .interval-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#tools-interval .interval-detail-form-container .handle{cursor:move}#tools-interval .interval-detail-form-container md-input-container md-switch{margin:0!important}#tools-interval .interval-detail-form-container #interval-image-uploader{position:relative}#tools-interval .interval-detail-form-container #interval-image-uploader.dropping .drop-text{display:flex}#tools-interval .interval-detail-form-container #interval-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-interval .interval-detail-form-container #interval-image-uploader .upload-button{margin-bottom:16px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-interval .interval-detail-form-container #interval-image-uploader .interval-image .media{max-height:100%}#intervals{position:relative}#intervals>.header{height:76px;min-height:76px;max-height:76px}#intervals>.header .logo .logo-icon{margin:0 16px 0 0}#intervals>.header .logo .logo-text{font-size:24px}#intervals>.header md-icon{color:#fff}#intervals>.header .search-input-wrapper{position:relative}#intervals>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#intervals>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#intervals>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#intervals>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#intervals>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#intervals>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#intervals>.header.selected-bar .close-button-wrapper{width:244px}#intervals>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#intervals>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#intervals>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#intervals #add-interval-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.pause-dialog{max-width:720px;width:720px}md-dialog.pause-dialog md-dialog-content{display:block;position:relative}md-dialog.pause-dialog md-toolbar .title{font-size:17px}md-dialog.pause-dialog md-input-container textarea{min-height:150px}md-dialog.pause-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.pause-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.pause-dialog .date-container{padding:16px 0 24px 0}md-dialog.pause-dialog .error-list{font-size:13px}md-dialog.pause-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.pause-dialog .error-list .error .message{font-weight:500}md-dialog.pause-dialog .error-list .error .md-button{margin:0}md-dialog.pause-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.pause-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#pauses{position:relative}#pauses>.header{height:76px;min-height:76px;max-height:76px}#pauses>.header .logo .logo-icon{margin:0 16px 0 0}#pauses>.header .logo .logo-text{font-size:24px}#pauses>.header md-icon{color:#fff}#pauses>.header .search-input-wrapper{position:relative}#pauses>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#pauses>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#pauses>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#pauses>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#pauses>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#pauses>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#pauses>.header.selected-bar .close-button-wrapper{width:244px}#pauses>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#pauses>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#pauses>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#pauses #add-pause-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.schedule-dialog{max-width:720px;width:720px}md-dialog.schedule-dialog md-dialog-content{display:block;position:relative}md-dialog.schedule-dialog md-toolbar .title{font-size:17px}md-dialog.schedule-dialog md-input-container textarea{min-height:150px}md-dialog.schedule-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.schedule-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.schedule-dialog .date-container{padding:16px 0 24px 0}md-dialog.schedule-dialog .error-list{font-size:13px}md-dialog.schedule-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.schedule-dialog .error-list .error .message{font-weight:500}md-dialog.schedule-dialog .error-list .error .md-button{margin:0}md-dialog.schedule-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.schedule-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-schedule .header{height:120px;min-height:120px;max-height:120px}#tools-schedule .header .goto-schedules-button{margin-right:16px}#tools-schedule .header .schedule-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-schedule .header .schedule-image img{height:100%;width:auto;max-width:none}#tools-schedule .header .subtitle{margin:6px 0 0 0}#tools-schedule .schedule-detail-form-container{padding:24px;margin-bottom:24px}#tools-schedule .schedule-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#tools-schedule .schedule-detail-form-container .handle{cursor:move}#tools-schedule .schedule-detail-form-container md-input-container md-switch{margin:0!important}#tools-schedule .schedule-detail-form-container #schedule-image-uploader{position:relative}#tools-schedule .schedule-detail-form-container #schedule-image-uploader.dropping .drop-text{display:flex}#tools-schedule .schedule-detail-form-container #schedule-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-schedule .schedule-detail-form-container #schedule-image-uploader .upload-button{margin-bottom:16px}#tools-schedule .schedule-detail-form-container #schedule-image-uploader .schedule-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-schedule .schedule-detail-form-container #schedule-image-uploader .schedule-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-schedule .schedule-detail-form-container #schedule-image-uploader .schedule-image .media{max-height:100%}#schedules{position:relative}#schedules>.header{height:76px;min-height:76px;max-height:76px}#schedules>.header .logo .logo-icon{margin:0 16px 0 0}#schedules>.header .logo .logo-text{font-size:24px}#schedules>.header md-icon{color:#fff}#schedules>.header .search-input-wrapper{position:relative}#schedules>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#schedules>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#schedules>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#schedules>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#schedules>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#schedules>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#schedules>.header.selected-bar .close-button-wrapper{width:244px}#schedules>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#schedules>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#schedules>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#schedules #add-schedule-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.sound-dialog{max-width:720px;width:720px}md-dialog.sound-dialog md-dialog-content{display:block;position:relative}md-dialog.sound-dialog md-toolbar .title{font-size:17px}md-dialog.sound-dialog md-input-container textarea{min-height:150px}md-dialog.sound-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.sound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.sound-dialog .date-container{padding:16px 0 24px 0}md-dialog.sound-dialog .error-list{font-size:13px}md-dialog.sound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.sound-dialog .error-list .error .message{font-weight:500}md-dialog.sound-dialog .error-list .error .md-button{margin:0}md-dialog.sound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.sound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#sounds{position:relative}#sounds>.header{height:76px;min-height:76px;max-height:76px}#sounds>.header .logo .logo-icon{margin:0 16px 0 0}#sounds>.header .logo .logo-text{font-size:24px}#sounds>.header md-icon{color:#fff}#sounds>.header .search-input-wrapper{position:relative}#sounds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#sounds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#sounds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#sounds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#sounds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#sounds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#sounds>.header.selected-bar .close-button-wrapper{width:244px}#sounds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#sounds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#sounds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#sounds #add-sound-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.upload-dialog{max-width:720px;width:720px}md-dialog.upload-dialog md-dialog-content{display:block;position:relative}md-dialog.upload-dialog md-toolbar .title{font-size:17px}md-dialog.upload-dialog md-input-container textarea{min-height:150px}md-dialog.upload-dialog .date-container{padding:16px 0 24px 0}md-dialog.upload-dialog .error-list{font-size:13px}md-dialog.upload-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.upload-dialog .error-list .error .message{font-weight:500}md-dialog.upload-dialog .error-list .error .md-button{margin:0}md-dialog.upload-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.upload-dialog .sound-image{overflow:hidden;max-width:148px;margin-right:16px;border:3px solid rgba(0,0,0,.12);padding:10px}md-dialog.upload-dialog .sound-image img{width:auto;max-width:none}md-dialog.upload-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.tag-dialog{max-width:720px;width:720px}md-dialog.tag-dialog md-dialog-content{display:block;position:relative}md-dialog.tag-dialog md-toolbar .title{font-size:17px}md-dialog.tag-dialog md-input-container textarea{min-height:150px}md-dialog.tag-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.tag-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.tag-dialog .date-container{padding:16px 0 24px 0}md-dialog.tag-dialog .error-list{font-size:13px}md-dialog.tag-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.tag-dialog .error-list .error .message{font-weight:500}md-dialog.tag-dialog .error-list .error .md-button{margin:0}md-dialog.tag-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.tag-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tags{position:relative}#tags>.header{height:76px;min-height:76px;max-height:76px}#tags>.header .logo .logo-icon{margin:0 16px 0 0}#tags>.header .logo .logo-text{font-size:24px}#tags>.header md-icon{color:#fff}#tags>.header .search-input-wrapper{position:relative}#tags>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#tags>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#tags>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#tags>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#tags>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#tags>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#tags>.header.selected-bar .close-button-wrapper{width:244px}#tags>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#tags>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#tags>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#tags #add-tag-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.template-dialog{max-width:720px;width:720px}md-dialog.template-dialog md-dialog-content{display:block;position:relative}md-dialog.template-dialog md-toolbar .title{font-size:17px}md-dialog.template-dialog md-input-container textarea{min-height:150px}md-dialog.template-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.template-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.template-dialog .date-container{padding:16px 0 24px 0}md-dialog.template-dialog .error-list{font-size:13px}md-dialog.template-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.template-dialog .error-list .error .message{font-weight:500}md-dialog.template-dialog .error-list .error .md-button{margin:0}md-dialog.template-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.template-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#templates{position:relative}#templates>.header{height:76px;min-height:76px;max-height:76px}#templates>.header .logo .logo-icon{margin:0 16px 0 0}#templates>.header .logo .logo-text{font-size:24px}#templates>.header md-icon{color:#fff}#templates>.header .search-input-wrapper{position:relative}#templates>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#templates>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#templates>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#templates>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#templates>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#templates>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#templates>.header.selected-bar .close-button-wrapper{width:244px}#templates>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#templates>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#templates>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#templates #add-template-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trigger-dialog{max-width:720px;width:720px}md-dialog.trigger-dialog md-dialog-content{display:block;position:relative}md-dialog.trigger-dialog md-toolbar .title{font-size:17px}md-dialog.trigger-dialog md-input-container textarea{min-height:150px}md-dialog.trigger-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.trigger-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trigger-dialog .date-container{padding:16px 0 24px 0}md-dialog.trigger-dialog .error-list{font-size:13px}md-dialog.trigger-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trigger-dialog .error-list .error .message{font-weight:500}md-dialog.trigger-dialog .error-list .error .md-button{margin:0}md-dialog.trigger-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trigger-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.action-dialog{max-width:720px;width:720px}md-dialog.action-dialog md-dialog-content{display:block;position:relative}md-dialog.action-dialog md-toolbar .title{font-size:17px}md-dialog.action-dialog md-input-container textarea{min-height:150px}md-dialog.action-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.action-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.action-dialog .date-container{padding:16px 0 24px 0}md-dialog.action-dialog .error-list{font-size:13px}md-dialog.action-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.action-dialog .error-list .error .message{font-weight:500}md-dialog.action-dialog .error-list .error .md-button{margin:0}md-dialog.action-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.action-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.allCondition-dialog{max-width:720px;width:720px}md-dialog.allCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.allCondition-dialog md-toolbar .title{font-size:17px}md-dialog.allCondition-dialog md-input-container textarea{min-height:150px}md-dialog.allCondition-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.allCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.allCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.allCondition-dialog .error-list{font-size:13px}md-dialog.allCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.allCondition-dialog .error-list .error .message{font-weight:500}md-dialog.allCondition-dialog .error-list .error .md-button{margin:0}md-dialog.allCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.allCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.anyCondition-dialog{max-width:720px;width:720px}md-dialog.anyCondition-dialog md-dialog-content{display:block;position:relative}md-dialog.anyCondition-dialog md-toolbar .title{font-size:17px}md-dialog.anyCondition-dialog md-input-container textarea{min-height:150px}md-dialog.anyCondition-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.anyCondition-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.anyCondition-dialog .date-container{padding:16px 0 24px 0}md-dialog.anyCondition-dialog .error-list{font-size:13px}md-dialog.anyCondition-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.anyCondition-dialog .error-list .error .message{font-weight:500}md-dialog.anyCondition-dialog .error-list .error .md-button{margin:0}md-dialog.anyCondition-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.anyCondition-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trigger .header{height:120px;min-height:120px;max-height:120px}#tools-trigger .header .goto-triggers-button{margin-right:16px}#tools-trigger .header .trigger-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trigger .header .trigger-image img{height:100%;width:auto;max-width:none}#tools-trigger .header .subtitle{margin:6px 0 0 0}#tools-trigger .trigger-detail-form-container{padding:24px;margin-bottom:24px}#tools-trigger .trigger-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#tools-trigger .trigger-detail-form-container .handle{cursor:move}#tools-trigger .trigger-detail-form-container md-input-container md-switch{margin:0!important}#tools-trigger .trigger-detail-form-container #trigger-image-uploader{position:relative}#tools-trigger .trigger-detail-form-container #trigger-image-uploader.dropping .drop-text{display:flex}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .upload-button{margin-bottom:16px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trigger .trigger-detail-form-container #trigger-image-uploader .trigger-image .media{max-height:100%}#triggers{position:relative}#triggers>.header{height:76px;min-height:76px;max-height:76px}#triggers>.header .logo .logo-icon{margin:0 16px 0 0}#triggers>.header .logo .logo-text{font-size:24px}#triggers>.header md-icon{color:#fff}#triggers>.header .search-input-wrapper{position:relative}#triggers>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#triggers>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#triggers>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#triggers>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#triggers>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#triggers>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#triggers>.header.selected-bar .close-button-wrapper{width:244px}#triggers>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#triggers>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#triggers>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#triggers #add-trigger-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.trunk-dialog{max-width:720px;width:720px}md-dialog.trunk-dialog md-dialog-content{display:block;position:relative}md-dialog.trunk-dialog md-toolbar .title{font-size:17px}md-dialog.trunk-dialog md-input-container textarea{min-height:150px}md-dialog.trunk-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.trunk-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.trunk-dialog .date-container{padding:16px 0 24px 0}md-dialog.trunk-dialog .error-list{font-size:13px}md-dialog.trunk-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.trunk-dialog .error-list .error .message{font-weight:500}md-dialog.trunk-dialog .error-list .error .md-button{margin:0}md-dialog.trunk-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.trunk-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#tools-trunk .header{height:120px;min-height:120px;max-height:120px}#tools-trunk .header .goto-trunks-button{margin-right:16px}#tools-trunk .header .trunk-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#tools-trunk .header .trunk-image img{height:100%;width:auto;max-width:none}#tools-trunk .header .subtitle{margin:6px 0 0 0}#tools-trunk .trunk-detail-form-container{padding:24px;margin-bottom:24px}#tools-trunk .trunk-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#tools-trunk .trunk-detail-form-container .handle{cursor:move}#tools-trunk .trunk-detail-form-container md-input-container md-switch{margin:0!important}#tools-trunk .trunk-detail-form-container #trunk-image-uploader{position:relative}#tools-trunk .trunk-detail-form-container #trunk-image-uploader.dropping .drop-text{display:flex}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .upload-button{margin-bottom:16px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#tools-trunk .trunk-detail-form-container #trunk-image-uploader .trunk-image .media{max-height:100%}#trunks{position:relative}#trunks>.header{height:76px;min-height:76px;max-height:76px}#trunks>.header .logo .logo-icon{margin:0 16px 0 0}#trunks>.header .logo .logo-text{font-size:24px}#trunks>.header md-icon{color:#fff}#trunks>.header .search-input-wrapper{position:relative}#trunks>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#trunks>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#trunks>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#trunks>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#trunks>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#trunks>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#trunks>.header.selected-bar .close-button-wrapper{width:244px}#trunks>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#trunks>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#trunks>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#trunks #add-trunk-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.variable-dialog{max-width:720px;width:720px}md-dialog.variable-dialog md-dialog-content{display:block;position:relative}md-dialog.variable-dialog md-toolbar .title{font-size:17px}md-dialog.variable-dialog md-input-container textarea{min-height:150px}md-dialog.variable-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.variable-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.variable-dialog .date-container{padding:16px 0 24px 0}md-dialog.variable-dialog .error-list{font-size:13px}md-dialog.variable-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.variable-dialog .error-list .error .message{font-weight:500}md-dialog.variable-dialog .error-list .error .md-button{margin:0}md-dialog.variable-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.variable-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#variables{position:relative}#variables>.header{height:76px;min-height:76px;max-height:76px}#variables>.header .logo .logo-icon{margin:0 16px 0 0}#variables>.header .logo .logo-text{font-size:24px}#variables>.header md-icon{color:#fff}#variables>.header .search-input-wrapper{position:relative}#variables>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#variables>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#variables>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#variables>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#variables>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#variables>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#variables>.header.selected-bar .close-button-wrapper{width:244px}#variables>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#variables>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#variables>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#variables #add-variable-button{position:fixed;bottom:8px;right:8px;padding:0}#chanSpies{position:relative}#chanSpies>.header{height:76px;min-height:76px;max-height:76px}#chanSpies>.header .logo .logo-icon{margin:0 16px 0 0}#chanSpies>.header .logo .logo-text{font-size:24px}#chanSpies>.header md-icon{color:#fff}#chanSpies>.header .search-input-wrapper{position:relative}#chanSpies>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#chanSpies>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#chanSpies>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#chanSpies>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#chanSpies>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#chanSpies>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#chanSpies>.header.selected-bar .close-button-wrapper{width:244px}#chanSpies>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#chanSpies>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#chanSpies>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#chanSpies #add-chanSpy-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.chanSpy-dialog{max-width:720px;width:720px}md-dialog.chanSpy-dialog md-dialog-content{display:block;position:relative}md-dialog.chanSpy-dialog md-toolbar .title{font-size:17px}md-dialog.chanSpy-dialog md-input-container textarea{min-height:150px}md-dialog.chanSpy-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.chanSpy-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.chanSpy-dialog .date-container{padding:16px 0 24px 0}md-dialog.chanSpy-dialog .error-list{font-size:13px}md-dialog.chanSpy-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.chanSpy-dialog .error-list .error .message{font-weight:500}md-dialog.chanSpy-dialog .error-list .error .md-button{margin:0}md-dialog.chanSpy-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.chanSpy-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-chanSpy .header{height:120px;min-height:120px;max-height:120px}#voice-chanSpy .header .goto-chanSpies-button{margin-right:16px}#voice-chanSpy .header .chanSpy-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-chanSpy .header .chanSpy-image img{height:100%;width:auto;max-width:none}#voice-chanSpy .header .subtitle{margin:6px 0 0 0}#voice-chanSpy .chanSpy-detail-form-container{padding:24px;margin-bottom:24px}#voice-chanSpy .chanSpy-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#voice-chanSpy .chanSpy-detail-form-container .handle{cursor:move}#voice-chanSpy .chanSpy-detail-form-container md-input-container md-switch{margin:0!important}#voice-chanSpy .chanSpy-detail-form-container #chanSpy-image-uploader{position:relative}#voice-chanSpy .chanSpy-detail-form-container #chanSpy-image-uploader.dropping .drop-text{display:flex}#voice-chanSpy .chanSpy-detail-form-container #chanSpy-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-chanSpy .chanSpy-detail-form-container #chanSpy-image-uploader .upload-button{margin-bottom:16px}#voice-chanSpy .chanSpy-detail-form-container #chanSpy-image-uploader .chanSpy-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-chanSpy .chanSpy-detail-form-container #chanSpy-image-uploader .chanSpy-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-chanSpy .chanSpy-detail-form-container #chanSpy-image-uploader .chanSpy-image .media{max-height:100%}#contexts{position:relative}#contexts>.header{height:76px;min-height:76px;max-height:76px}#contexts>.header .logo .logo-icon{margin:0 16px 0 0}#contexts>.header .logo .logo-text{font-size:24px}#contexts>.header md-icon{color:#fff}#contexts>.header .search-input-wrapper{position:relative}#contexts>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#contexts>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#contexts>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#contexts>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#contexts>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#contexts>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#contexts>.header.selected-bar .close-button-wrapper{width:244px}#contexts>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#contexts>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#contexts>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#contexts #add-context-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.context-dialog{max-width:720px;width:720px}md-dialog.context-dialog md-dialog-content{display:block;position:relative}md-dialog.context-dialog md-toolbar .title{font-size:17px}md-dialog.context-dialog md-input-container textarea{min-height:150px}md-dialog.context-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.context-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.context-dialog .date-container{padding:16px 0 24px 0}md-dialog.context-dialog .error-list{font-size:13px}md-dialog.context-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.context-dialog .error-list .error .message{font-weight:500}md-dialog.context-dialog .error-list .error .md-button{margin:0}md-dialog.context-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.context-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.inboundroute-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.inboundroute-dialog{max-width:720px;width:720px}md-dialog.inboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.inboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.inboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.inboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.inboundroute-dialog .error-list{font-size:13px}md-dialog.inboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.inboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.inboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.inboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.inboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-inboundroute .header{height:120px;min-height:120px;max-height:120px}#voice-inboundroute .header .goto-inboundroutes-button{margin-right:16px}#voice-inboundroute .header .inboundroute-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-inboundroute .header .inboundroute-image img{height:100%;width:auto;max-width:none}#voice-inboundroute .header .subtitle{margin:6px 0 0 0}#voice-inboundroute .inboundroute-detail-form-container{padding:24px;margin-bottom:24px}#voice-inboundroute .inboundroute-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#voice-inboundroute .inboundroute-detail-form-container .handle{cursor:move}#voice-inboundroute .inboundroute-detail-form-container md-input-container md-switch{margin:0!important}#voice-inboundroute .inboundroute-detail-form-container #inboundroute-image-uploader{position:relative}#voice-inboundroute .inboundroute-detail-form-container #inboundroute-image-uploader.dropping .drop-text{display:flex}#voice-inboundroute .inboundroute-detail-form-container #inboundroute-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-inboundroute .inboundroute-detail-form-container #inboundroute-image-uploader .upload-button{margin-bottom:16px}#voice-inboundroute .inboundroute-detail-form-container #inboundroute-image-uploader .inboundroute-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-inboundroute .inboundroute-detail-form-container #inboundroute-image-uploader .inboundroute-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-inboundroute .inboundroute-detail-form-container #inboundroute-image-uploader .inboundroute-image .media{max-height:100%}#inboundroutes{position:relative}#inboundroutes>.header{height:76px;min-height:76px;max-height:76px}#inboundroutes>.header .logo .logo-icon{margin:0 16px 0 0}#inboundroutes>.header .logo .logo-text{font-size:24px}#inboundroutes>.header md-icon{color:#fff}#inboundroutes>.header .search-input-wrapper{position:relative}#inboundroutes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#inboundroutes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#inboundroutes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#inboundroutes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#inboundroutes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#inboundroutes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#inboundroutes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#inboundroutes>.header.selected-bar .close-button-wrapper{width:244px}#inboundroutes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#inboundroutes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#inboundroutes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#inboundroutes #add-inboundroute-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.internalroute-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.internalroute-dialog{max-width:720px;width:720px}md-dialog.internalroute-dialog md-dialog-content{display:block;position:relative}md-dialog.internalroute-dialog md-toolbar .title{font-size:17px}md-dialog.internalroute-dialog md-input-container textarea{min-height:150px}md-dialog.internalroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.internalroute-dialog .error-list{font-size:13px}md-dialog.internalroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.internalroute-dialog .error-list .error .message{font-weight:500}md-dialog.internalroute-dialog .error-list .error .md-button{margin:0}md-dialog.internalroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.internalroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-internalroute .header{height:120px;min-height:120px;max-height:120px}#voice-internalroute .header .goto-internalroutes-button{margin-right:16px}#voice-internalroute .header .internalroute-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-internalroute .header .internalroute-image img{height:100%;width:auto;max-width:none}#voice-internalroute .header .subtitle{margin:6px 0 0 0}#voice-internalroute .internalroute-detail-form-container{padding:24px;margin-bottom:24px}#voice-internalroute .internalroute-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#voice-internalroute .internalroute-detail-form-container .handle{cursor:move}#voice-internalroute .internalroute-detail-form-container md-input-container md-switch{margin:0!important}#voice-internalroute .internalroute-detail-form-container #internalroute-image-uploader{position:relative}#voice-internalroute .internalroute-detail-form-container #internalroute-image-uploader.dropping .drop-text{display:flex}#voice-internalroute .internalroute-detail-form-container #internalroute-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-internalroute .internalroute-detail-form-container #internalroute-image-uploader .upload-button{margin-bottom:16px}#voice-internalroute .internalroute-detail-form-container #internalroute-image-uploader .internalroute-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-internalroute .internalroute-detail-form-container #internalroute-image-uploader .internalroute-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-internalroute .internalroute-detail-form-container #internalroute-image-uploader .internalroute-image .media{max-height:100%}#internalroutes{position:relative}#internalroutes>.header{height:76px;min-height:76px;max-height:76px}#internalroutes>.header .logo .logo-icon{margin:0 16px 0 0}#internalroutes>.header .logo .logo-text{font-size:24px}#internalroutes>.header md-icon{color:#fff}#internalroutes>.header .search-input-wrapper{position:relative}#internalroutes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#internalroutes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#internalroutes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#internalroutes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#internalroutes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#internalroutes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#internalroutes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#internalroutes>.header.selected-bar .close-button-wrapper{width:244px}#internalroutes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#internalroutes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#internalroutes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#internalroutes #add-internalroute-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.musiconhold-dialog{max-width:720px;width:720px}md-dialog.musiconhold-dialog md-dialog-content{display:block;position:relative}md-dialog.musiconhold-dialog md-toolbar .title{font-size:17px}md-dialog.musiconhold-dialog md-input-container textarea{min-height:150px}md-dialog.musiconhold-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.musiconhold-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.musiconhold-dialog .date-container{padding:16px 0 24px 0}md-dialog.musiconhold-dialog .error-list{font-size:13px}md-dialog.musiconhold-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.musiconhold-dialog .error-list .error .message{font-weight:500}md-dialog.musiconhold-dialog .error-list .error .md-button{margin:0}md-dialog.musiconhold-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.musiconhold-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.mohSound-dialog{max-width:720px;width:720px}md-dialog.mohSound-dialog md-dialog-content{display:block;position:relative}md-dialog.mohSound-dialog md-toolbar .title{font-size:17px}md-dialog.mohSound-dialog md-input-container textarea{min-height:150px}md-dialog.mohSound-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.mohSound-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.mohSound-dialog .date-container{padding:16px 0 24px 0}md-dialog.mohSound-dialog .error-list{font-size:13px}md-dialog.mohSound-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.mohSound-dialog .error-list .error .message{font-weight:500}md-dialog.mohSound-dialog .error-list .error .md-button{margin:0}md-dialog.mohSound-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.mohSound-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-musiconhold .header{height:120px;min-height:120px;max-height:120px}#voice-musiconhold .header .goto-musiconholds-button{margin-right:16px}#voice-musiconhold .header .musiconhold-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-musiconhold .header .musiconhold-image img{height:100%;width:auto;max-width:none}#voice-musiconhold .header .subtitle{margin:6px 0 0 0}#voice-musiconhold .musiconhold-detail-form-container{padding:24px;margin-bottom:24px}#voice-musiconhold .musiconhold-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#voice-musiconhold .musiconhold-detail-form-container .handle{cursor:move}#voice-musiconhold .musiconhold-detail-form-container md-input-container md-switch{margin:0!important}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader{position:relative}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader.dropping .drop-text{display:flex}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .upload-button{margin-bottom:16px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-musiconhold .musiconhold-detail-form-container #musiconhold-image-uploader .musiconhold-image .media{max-height:100%}#musiconholds{position:relative}#musiconholds>.header{height:76px;min-height:76px;max-height:76px}#musiconholds>.header .logo .logo-icon{margin:0 16px 0 0}#musiconholds>.header .logo .logo-text{font-size:24px}#musiconholds>.header md-icon{color:#fff}#musiconholds>.header .search-input-wrapper{position:relative}#musiconholds>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#musiconholds>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#musiconholds>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#musiconholds>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#musiconholds>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#musiconholds>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#musiconholds>.header.selected-bar .close-button-wrapper{width:244px}#musiconholds>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#musiconholds>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#musiconholds>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#musiconholds #add-musiconhold-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.outboundroute-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}md-dialog.outboundroute-dialog{max-width:720px;width:720px}md-dialog.outboundroute-dialog md-dialog-content{display:block;position:relative}md-dialog.outboundroute-dialog md-toolbar .title{font-size:17px}md-dialog.outboundroute-dialog md-input-container textarea{min-height:150px}md-dialog.outboundroute-dialog .date-container{padding:16px 0 24px 0}md-dialog.outboundroute-dialog .error-list{font-size:13px}md-dialog.outboundroute-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.outboundroute-dialog .error-list .error .message{font-weight:500}md-dialog.outboundroute-dialog .error-list .error .md-button{margin:0}md-dialog.outboundroute-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.outboundroute-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-outboundroute .header{height:120px;min-height:120px;max-height:120px}#voice-outboundroute .header .goto-outboundroutes-button{margin-right:16px}#voice-outboundroute .header .outboundroute-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-outboundroute .header .outboundroute-image img{height:100%;width:auto;max-width:none}#voice-outboundroute .header .subtitle{margin:6px 0 0 0}#voice-outboundroute .outboundroute-detail-form-container{padding:24px;margin-bottom:24px}#voice-outboundroute .outboundroute-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#voice-outboundroute .outboundroute-detail-form-container .handle{cursor:move}#voice-outboundroute .outboundroute-detail-form-container md-input-container md-switch{margin:0!important}#voice-outboundroute .outboundroute-detail-form-container #outboundroute-image-uploader{position:relative}#voice-outboundroute .outboundroute-detail-form-container #outboundroute-image-uploader.dropping .drop-text{display:flex}#voice-outboundroute .outboundroute-detail-form-container #outboundroute-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-outboundroute .outboundroute-detail-form-container #outboundroute-image-uploader .upload-button{margin-bottom:16px}#voice-outboundroute .outboundroute-detail-form-container #outboundroute-image-uploader .outboundroute-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-outboundroute .outboundroute-detail-form-container #outboundroute-image-uploader .outboundroute-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-outboundroute .outboundroute-detail-form-container #outboundroute-image-uploader .outboundroute-image .media{max-height:100%}#outboundroutes{position:relative}#outboundroutes>.header{height:76px;min-height:76px;max-height:76px}#outboundroutes>.header .logo .logo-icon{margin:0 16px 0 0}#outboundroutes>.header .logo .logo-text{font-size:24px}#outboundroutes>.header md-icon{color:#fff}#outboundroutes>.header .search-input-wrapper{position:relative}#outboundroutes>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#outboundroutes>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#outboundroutes>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#outboundroutes>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#outboundroutes>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#outboundroutes>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#outboundroutes>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#outboundroutes>.header.selected-bar .close-button-wrapper{width:244px}#outboundroutes>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#outboundroutes>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#outboundroutes>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#outboundroutes #add-outboundroute-button{position:fixed;bottom:8px;right:8px;padding:0}#realtime>.content .blink{animation:blinker 2s linear infinite}#realtime>.content .avatar-wrapper{position:relative}#realtime>.content .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .search-input-wrapper{position:relative;margin-left:20px}#realtime>.content .search-input-wrapper label{padding:6px;cursor:pointer}#realtime>.content .search-input-wrapper md-input-container{padding-top:20px}#realtime>.content .main .labels{padding:8px 16px}#realtime>.content .main .labels .label{margin:0 0 2px 4px;padding:2px 5px;font-size:11px;white-space:nowrap;border-radius:2px}#realtime>.content .main .status{position:absolute;bottom:-3px;right:5px}#realtime>.content .main .avatar-wrapper{position:relative}#realtime>.content .main .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}@keyframes blinker{50%{opacity:0}}md-dialog.voicemail-dialog{max-width:720px;width:720px}md-dialog.voicemail-dialog md-dialog-content{display:block;position:relative}md-dialog.voicemail-dialog md-toolbar .title{font-size:17px}md-dialog.voicemail-dialog md-input-container textarea{min-height:150px}md-dialog.voicemail-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.voicemail-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voicemail-dialog .date-container{padding:16px 0 24px 0}md-dialog.voicemail-dialog .error-list{font-size:13px}md-dialog.voicemail-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voicemail-dialog .error-list .error .message{font-weight:500}md-dialog.voicemail-dialog .error-list .error .md-button{margin:0}md-dialog.voicemail-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voicemail-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voicemail .header{height:120px;min-height:120px;max-height:120px}#voice-voicemail .header .goto-voicemails-button{margin-right:16px}#voice-voicemail .header .voicemail-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voicemail .header .voicemail-image img{height:100%;width:auto;max-width:none}#voice-voicemail .header .subtitle{margin:6px 0 0 0}#voice-voicemail .voicemail-detail-form-container{padding:24px;margin-bottom:24px}#voice-voicemail .voicemail-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#voice-voicemail .voicemail-detail-form-container .handle{cursor:move}#voice-voicemail .voicemail-detail-form-container md-input-container md-switch{margin:0!important}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader{position:relative}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader.dropping .drop-text{display:flex}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .upload-button{margin-bottom:16px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voicemail .voicemail-detail-form-container #voicemail-image-uploader .voicemail-image .media{max-height:100%}#voicemails{position:relative}#voicemails>.header{height:76px;min-height:76px;max-height:76px}#voicemails>.header .logo .logo-icon{margin:0 16px 0 0}#voicemails>.header .logo .logo-text{font-size:24px}#voicemails>.header md-icon{color:#fff}#voicemails>.header .search-input-wrapper{position:relative}#voicemails>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voicemails>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voicemails>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voicemails>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voicemails>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voicemails>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voicemails>.header.selected-bar .close-button-wrapper{width:244px}#voicemails>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voicemails>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voicemails>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voicemails #add-voicemail-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceQueue-dialog{max-width:720px;width:720px}md-dialog.voiceQueue-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceQueue-dialog md-toolbar .title{font-size:17px}md-dialog.voiceQueue-dialog md-input-container textarea{min-height:150px}md-dialog.voiceQueue-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.voiceQueue-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceQueue-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceQueue-dialog .error-list{font-size:13px}md-dialog.voiceQueue-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceQueue-dialog .error-list .error .message{font-weight:500}md-dialog.voiceQueue-dialog .error-list .error .md-button{margin:0}md-dialog.voiceQueue-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceQueue-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voice-voiceQueue .header{height:120px;min-height:120px;max-height:120px}#voice-voiceQueue .header .goto-voiceQueues-button{margin-right:16px}#voice-voiceQueue .header .voiceQueue-image{overflow:hidden;width:56px;height:56px;margin-right:16px;border:3px solid rgba(0,0,0,.12)}#voice-voiceQueue .header .voiceQueue-image img{height:100%;width:auto;max-width:none}#voice-voiceQueue .header .subtitle{margin:6px 0 0 0}#voice-voiceQueue .voiceQueue-detail-form-container{padding:24px;margin-bottom:24px}#voice-voiceQueue .voiceQueue-detail-form-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}#voice-voiceQueue .voiceQueue-detail-form-container .handle{cursor:move}#voice-voiceQueue .voiceQueue-detail-form-container md-input-container md-switch{margin:0!important}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader{position:relative}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader.dropping .drop-text{display:flex}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .drop-text{display:none;position:absolute;top:0;right:0;bottom:0;left:0;padding:16px;text-align:center;border:2px dashed rgba(0,0,0,.12);background:#fff;font-size:20px;z-index:100}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .upload-button{margin-bottom:16px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image{position:relative;width:200px;height:200px;border:1px solid rgba(0,0,0,.12);margin:8px}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image.uploading .overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.87)}#voice-voiceQueue .voiceQueue-detail-form-container #voiceQueue-image-uploader .voiceQueue-image .media{max-height:100%}#voiceQueues{position:relative}#voiceQueues>.header{height:76px;min-height:76px;max-height:76px}#voiceQueues>.header .logo .logo-icon{margin:0 16px 0 0}#voiceQueues>.header .logo .logo-text{font-size:24px}#voiceQueues>.header md-icon{color:#fff}#voiceQueues>.header .search-input-wrapper{position:relative}#voiceQueues>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceQueues>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceQueues>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceQueues>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceQueues>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceQueues>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceQueues>.header.selected-bar .close-button-wrapper{width:244px}#voiceQueues>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceQueues>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceQueues>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceQueues #add-voiceQueue-button{position:fixed;bottom:8px;right:8px;padding:0}md-dialog.voiceRecording-dialog{max-width:720px;width:720px}md-dialog.voiceRecording-dialog md-dialog-content{display:block;position:relative}md-dialog.voiceRecording-dialog md-toolbar .title{font-size:17px}md-dialog.voiceRecording-dialog md-input-container textarea{min-height:150px}md-dialog.voiceRecording-dialog md-input-container .hint{font-size:12px;line-height:20px;transition:all .3s cubic-bezier(.55,0,.55,.2);color:grey}md-dialog.voiceRecording-dialog md-input-container md-input-container md-switch{margin:0!important}md-dialog.voiceRecording-dialog .date-container{padding:16px 0 24px 0}md-dialog.voiceRecording-dialog .error-list{font-size:13px}md-dialog.voiceRecording-dialog .error-list .error{background-color:rgba(244,67,54,.08);border:1px solid rgba(244,67,54,.12);padding-left:16px;margin-top:8px;border-radius:2px}md-dialog.voiceRecording-dialog .error-list .error .message{font-weight:500}md-dialog.voiceRecording-dialog .error-list .error .md-button{margin:0}md-dialog.voiceRecording-dialog .error-list .error:last-child{margin-bottom:30px}md-dialog.voiceRecording-dialog md-dialog-actions{position:relative;overflow-y:hidden;overflow-x:auto;justify-content:space-between;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.12)}@media screen and (max-width:1280px){md-dialog.task-dialog{width:80%}}@media screen and (max-width:960px){md-dialog.task-dialog{width:90%}}#voiceRecordings{position:relative}#voiceRecordings>.header{height:76px;min-height:76px;max-height:76px}#voiceRecordings>.header .logo .logo-icon{margin:0 16px 0 0}#voiceRecordings>.header .logo .logo-text{font-size:24px}#voiceRecordings>.header md-icon{color:#fff}#voiceRecordings>.header .search-input-wrapper{position:relative}#voiceRecordings>.header .search-input-wrapper label{padding-right:4px;cursor:pointer}#voiceRecordings>.header .search-input-wrapper label md-icon{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container .md-errors-spacer{display:none}#voiceRecordings>.header .search-input-wrapper md-input-container input{border-bottom:1px solid rgba(255,255,255,.8);color:rgba(255,255,255,.8);width:240px}#voiceRecordings>.header .search-input-wrapper md-input-container input::placeholder{color:rgba(255,255,255,.8)}#voiceRecordings>.header .search-input-wrapper md-input-container input:focus{border-bottom:1px solid #fff;color:#fff}#voiceRecordings>.header.selected-bar{position:absolute;top:0;left:0;right:0;z-index:999;background-image:none;opacity:1!important}#voiceRecordings>.header.selected-bar .close-button-wrapper{width:244px}#voiceRecordings>.content{position:absolute;top:76px;bottom:0;right:0;left:0}#voiceRecordings>.content .main{padding:16px 90px 0 4px;position:absolute;top:0;left:24px;right:0;bottom:0}#voiceRecordings>.content .main .no-results{box-shadow:0 1px 1px 0 rgba(0,0,0,.14)}#voiceRecordings #add-voiceRecording-button{position:fixed;bottom:8px;right:8px;padding:0}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #layout-vertical-navigation-fullwidth-toolbar-2 #vertical-navigation .navigation-header .logo-text{display:none}}#vertical-navigation{width:240px;min-width:240px;max-width:240px;overflow-x:hidden;transition:all .3s cubic-bezier(.55,0,.55,.2),width .1s linear,min-width .1s linear,max-width .1s linear;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}#vertical-navigation .navigation-header{height:64px;min-height:64px;background-color:rgba(255,255,255,.05);padding:0 16px 0 24px}#vertical-navigation .navigation-header .logo .logo-image{display:block;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;font-size:16px;font-weight:500;color:#fff;border-radius:2px}#vertical-navigation .navigation-header .logo .logo-text{color:#fff;margin-left:16px;font-size:16px}#vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s;transform:rotate(0);margin:0;padding:8px;width:34px!important;height:34px!important;cursor:pointer}#vertical-navigation:not(._md-locked-open){box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}@media only screen and (min-width:960px){.ms-navigation-folded #content-container{margin-left:64px}.ms-navigation-folded #vertical-navigation{position:absolute}.ms-navigation-folded #vertical-navigation .navigation-header .fold-toggle{transform:rotate(180deg);opacity:0}.ms-navigation-folded.ms-navigation-folded-open #vertical-navigation .navigation-header .fold-toggle{transition:transform .3s ease-in-out .1s,opacity .3s ease-in-out .2s;opacity:1}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation{position:absolute;width:64px;min-width:64px;max-width:64px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header{padding:0 16px}.ms-navigation-folded:not(.ms-navigation-folded-open) #vertical-navigation .navigation-header .logo-text{display:none}}#quick-panel{width:330px;min-width:330px;max-width:330px;z-index:99}#quick-panel md-content{height:100%}#quick-panel md-content md-tabs{height:100%}#quick-panel md-content md-tabs md-tabs-wrapper{background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.06)}#quick-panel md-content md-tabs md-tabs-wrapper .md-tab{max-width:none!important}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content{height:100%;overflow:hidden}#quick-panel md-content md-tabs md-tabs-content-wrapper md-tab-content>div{overflow:hidden;height:100%}@media screen and (max-width:600px){#quick-panel{width:80%;min-width:80%;max-width:80%}}#quick-panel .activity-tab .friends .friend{position:relative}#quick-panel .activity-tab .friends .friend .status{position:absolute;top:8px;left:44px;width:18px;height:18px;z-index:10;border-radius:50%;border:3px solid #fff}#quick-panel .activity-tab .friends .friend .status.online{background-color:#00c853}#quick-panel .activity-tab .friends .friend .status.offline{background-color:#d50000}#quick-panel .activity-tab .friends .friend .status.away{background-color:#ff6d00}#quick-panel .activity-tab .friends .friend .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .activity-tab .servers .server .status{margin:24px 20px 28px 8px}#quick-panel .activity-tab .servers .server .status.normal{color:#00c853}#quick-panel .activity-tab .servers .server .status.warn{color:#d50000}#quick-panel .activity-tab .servers .server .status.error{color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.normal .md-bar{background-color:#00c853}#quick-panel .activity-tab .stat md-progress-linear.normal .md-container{background-color:rgba(0,200,83,.3)}#quick-panel .activity-tab .stat md-progress-linear.warn .md-bar{background-color:#ff6d00}#quick-panel .activity-tab .stat md-progress-linear.warn .md-container{background-color:rgba(255,109,0,.3)}#quick-panel .activity-tab .stat md-progress-linear.alert .md-bar{background-color:#d50000}#quick-panel .activity-tab .stat md-progress-linear.alert .md-container{background-color:rgba(213,0,0,.3)}#quick-panel .chat-tab .chat,#quick-panel .chat-tab .main{position:absolute;width:100%;top:0;bottom:0}#quick-panel .chat-tab .main .contact{position:relative}#quick-panel .chat-tab .main .contact .status{position:absolute;top:8px;left:44px;width:18px;height:18px;border:3px solid #fff;border-radius:50%;z-index:10}#quick-panel .chat-tab .main .contact .status.online{background-color:#00c853}#quick-panel .chat-tab .main .contact .status.offline{background-color:#d50000}#quick-panel .chat-tab .main .contact .status.away{background-color:#ff6d00}#quick-panel .chat-tab .main .contact .unread-message-count{position:absolute;left:16px;bottom:16px;width:18px;height:18px;z-index:10;border-radius:50%;text-align:center;line-height:18px;font-size:11px}#quick-panel .chat-tab .main .recent .contact .status{top:18px}#quick-panel .chat-tab .chat{max-height:100%;overflow:hidden}#quick-panel .chat-tab .chat .message-row .bubble{position:relative;padding:8px;background-color:#eceff1;border:1px solid #dcdfe1}#quick-panel .chat-tab .chat .message-row .bubble:after,#quick-panel .chat-tab .chat .message-row .bubble:before{content:' ';position:absolute;width:0;height:0}#quick-panel .chat-tab .chat .message-row .bubble:after{left:-7px;right:auto;top:0;bottom:auto;border:11px solid;border-color:#eceff1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble:before{left:-9px;right:auto;top:-1px;bottom:auto;border:8px solid;border-color:#dcdfe1 transparent transparent transparent}#quick-panel .chat-tab .chat .message-row .bubble .time{font-size:11px;margin-top:8px}#quick-panel .chat-tab .chat .message-row.contact .avatar{margin:0 16px 0 0}#quick-panel .chat-tab .chat .message-row.user{align-items:flex-end}#quick-panel .chat-tab .chat .message-row.user .avatar{order:2;margin:0 0 0 16px}#quick-panel .chat-tab .chat .message-row.user .bubble{background-color:#e8f5e9;border:1px solid #dfebe0;order:1}#quick-panel .chat-tab .chat .message-row.user .bubble:after{right:-7px;left:auto;top:auto;bottom:0;border-color:transparent transparent #e8f5e9 transparent}#quick-panel .chat-tab .chat .message-row.user .bubble:before{right:-9px;left:auto;top:auto;bottom:-1px;border-color:transparent transparent #dfebe0 transparent}#quick-panel .chat-tab .chat .reply{border-top:1px solid rgba(0,0,0,.12)}#quick-panel .chat-tab .chat .reply textarea{margin:8px;resize:none;height:80px;padding:8px 16px 8px 8px}#layout-content-with-toolbar #toolbar{padding:0 0 0 16px}#layout-content-with-toolbar #toolbar .logo{margin-right:16px}#layout-content-with-toolbar #toolbar .logo .logo-image{display:block;background:#039be5;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;color:#fff;font-size:16px;font-weight:500;border-radius:2px}#layout-content-with-toolbar #toolbar .logo .logo-text{color:rgba(0,0,0,.87);margin-left:16px;font-size:16px}#layout-horizontal-navigation #toolbar-navigation-container{z-index:55}#layout-horizontal-navigation #toolbar-navigation-container #toolbar{height:64px;min-height:64px;max-height:64px;box-shadow:none}#layout-horizontal-navigation #toolbar-navigation-container #toolbar .top-row .navigation-toggle{height:64px;border-right:1px solid rgba(0,0,0,.12)}#layout-horizontal-navigation #toolbar-navigation-container #toolbar .top-row .navigation-toggle .md-button{margin:0;width:64px;height:64px}#layout-horizontal-navigation #toolbar-navigation-container #toolbar .top-row .logo{margin:0 16px}#layout-horizontal-navigation #toolbar-navigation-container #toolbar .top-row .logo .logo-image{display:block;background:#039be5;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;color:#fff;font-size:16px;font-weight:500;border-radius:2px}#layout-horizontal-navigation #toolbar-navigation-container #toolbar .top-row .logo .logo-text{color:rgba(0,0,0,.87);margin-left:16px;font-size:16px}@media only screen and (max-width:960px){#layout-horizontal-navigation #toolbar-navigation-container{height:64px;min-height:64px;max-height:64px}#layout-horizontal-navigation #toolbar-navigation-container #toolbar{padding:0}}#layout-vertical-navigation-fullwidth-toolbar-2 #toolbar .logo{width:240px;padding:0 16px}#layout-vertical-navigation-fullwidth-toolbar-2 #toolbar .logo .logo-image{display:block;background:#039be5;width:32px;min-width:32px;height:32px;line-height:32px;text-align:center;color:#fff;font-size:16px;font-weight:500;border-radius:2px}#layout-vertical-navigation-fullwidth-toolbar-2 #toolbar .logo .logo-text{color:rgba(0,0,0,.87);margin-left:16px;font-size:16px}#layout-vertical-navigation-fullwidth-toolbar-2 #toolbar .navigation-fold-toggle{width:64px;min-width:64px;height:64px;margin:0;border-right:1px solid rgba(0,0,0,.12);border-radius:0}#layout-vertical-navigation-fullwidth-toolbar-2 #toolbar .navigation-fold-toggle md-icon{transition:transform .3s ease-in-out .1s;transform:rotate(0)}@media only screen and (min-width:960px){.ms-navigation-folded #layout-vertical-navigation-fullwidth-toolbar-2 #toolbar .navigation-fold-toggle md-icon{transform:rotate(180deg)}}@media only screen and (max-width:960px){#layout-vertical-navigation-fullwidth-toolbar-2 #toolbar .logo{width:auto}}#toolbar{height:64px;min-height:64px;max-height:64px;z-index:55!important}#toolbar .blink{animation:blinker 2s linear infinite}#toolbar #navigation-toggle{width:64px;min-width:64px;height:64px;margin:0;border-right:1px solid rgba(0,0,0,.12);border-radius:0}#toolbar #user-menu{height:64px;padding:0}#toolbar #user-menu md-menu-item .md-button{font-size:15px}#toolbar #user-menu md-menu-item .md-button md-icon{margin:auto 16px auto 0}#toolbar #user-menu .user-button{margin:0;padding:0 16px;height:64px;text-transform:none}#toolbar #user-menu .user-button .avatar-wrapper{position:relative}#toolbar #user-menu .user-button .avatar-wrapper .status{position:absolute;bottom:-3px;right:5px}#toolbar #user-menu .user-button .username{margin:0 12px 0 8px}#toolbar #language-menu{height:64px}#toolbar #language-menu .language-button{min-width:64px;height:64px;margin:0;padding:0 16px;border-radius:0}#toolbar #language-menu .language-button .iso{text-transform:uppercase}#toolbar #language-menu .language-button .flag{margin-right:8px}#toolbar #quick-panel-toggle{width:64px;height:64px;margin:0;border-radius:0}#toolbar .toolbar-separator{height:64px;width:1px;background:rgba(0,0,0,.12)}#language-menu-content md-menu-item .flag{margin-right:16px}#language-message{min-height:88px;max-width:600px}#language-message .md-toast-content{height:90px}@media screen and (max-width:600px){#toolbar #user-menu .user-button{min-width:64px;padding:0 2px 0 10px}}.geEditor{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt;overflow:hidden;height:100%}.geMenubarContainer .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel{cursor:pointer!important}.geContentEditable div,.geContentEditable table,.geContentEditable table td{border:1px dashed #d3d3d3}.geBackgroundPage{-webkit-box-shadow:0 0 3px 0 #d9d9d9;-moz-box-shadow:0 0 3px 0 #d9d9d9;box-shadow:0 0 3px 0 #d9d9d9}.geMenubarContainer a,.geSidebarContainer a,.geToolbar a{color:#000!important;text-decoration:none}.geDiagramContainer,.geFooterContainer,.geHsplit,.geMenubarContainer,.geOutlineContainer,.geSidebarContainer,.geToolbarContainer,.geVsplit{overflow:hidden;position:absolute;cursor:default}.geDiagramContainer,.geOutlineContainer{background-color:#fff;outline:0}.geMenubar,.geToolbar{white-space:nowrap;display:block;width:100%}.geMenubarContainer .geItem,.geSidebar,.geSidebar .geItem,.geSidebarContainer .geTitle,.geToolbar .geButton,.geToolbar .geLabel,.mxPopupMenuItem{-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;-ms-transition:all .1s ease-in-out;transition:all .1s ease-in-out}.geHint{background-color:#fff;border:1px solid gray;padding:4px 16px 4px 16px;border-radius:3px;-webkit-box-shadow:1px 1px 2px 0 #ddd;-moz-box-shadow:1px 1px 2px 0 #ddd;box-shadow:1px 1px 2px 0 #ddd;opacity:.8}.geStatusAlert{white-space:nowrap;margin-top:-5px;font-size:12px;padding:4px 6px 4px 6px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442!important;border-radius:3px}.geStatusAlert:hover{background-color:#f1d8d8;border-color:#d6b2b8}.geStatusMessage{white-space:nowrap;margin-top:-5px;padding:4px 6px 4px 6px;font-size:12px;background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);background-repeat:repeat-x;border:1px solid #b2dba1;border-radius:3px;color:#3c763d!important}.geStatusMessage:hover{background:#c8e5bc;border-color:#b2dba1}.geAlert{position:absolute;white-space:nowrap;padding:14px;background-color:#f2dede;border:1px solid #ebccd1;color:#a94442;border-radius:3px;-webkit-box-shadow:2px 2px 3px 0 #ddd;-moz-box-shadow:2px 2px 3px 0 #ddd;box-shadow:2px 2px 3px 0 #ddd}.geBtn{background-color:#f5f5f5;border-radius:2px;border:1px solid #d8d8d8;color:#333;cursor:default;font-size:11px;font-weight:700;height:29px;line-height:27px;margin:0 0 0 8px;min-width:72px;outline:0;padding:0 8px;cursor:pointer}.geBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid #c6c6c6;background-color:#f8f8f8;background-image:linear-gradient(#f8f8f8 0,#f1f1f1 100%);color:#111}.geBtn:disabled{opacity:.5}.geBtnUp{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECAGZmZtXV1f///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJERjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJFMDg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkREODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRFODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjwiQBhGYglCKhXFLBQA7);background-position:center center;background-repeat:no-repeat}.geBtnUp:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geBtnDown{background-image:url(data:image/gif;base64,R0lGODlhCgAGAJECANXV1WZmZv///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0QzM3ODJEQjg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0QzM3ODJEQzg4NUQxMUU0OTFEQ0E2MzRGQzcwNUY3NCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDMzc4MkQ5ODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjRDMzc4MkRBODg1RDExRTQ5MURDQTYzNEZDNzA1Rjc0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAgAsAAAAAAoABgAAAg6UjxLLewEiCAnOZBzeBQA7);background-position:center center;background-repeat:no-repeat}.geBtnDown:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%)}.geColorBtn{background-color:#f5f5f5;background-image:linear-gradient(#f5f5f5 0,#e1e1e1 100%);border-radius:4px;border:1px solid rgba(0,0,0,.5);color:#333;cursor:default;margin:0;outline:0;padding:0;cursor:pointer}.geColorBtn:hover{-webkit-box-shadow:0 1px 1px rgba(0,0,0,.1);-moz-box-shadow:0 1px 1px rgba(0,0,0,.1);box-shadow:0 1px 1px rgba(0,0,0,.1);border:1px solid rgba(0,0,0,.7)}.geColorBtn:active{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.geColorBtn:disabled{opacity:.5}.gePrimaryBtn{background-color:#4d90fe;background-image:linear-gradient(#4d90fe 0,#4787ed 100%);border:1px solid #3079ed;color:#fff}.gePrimaryBtn:hover{background-color:#357ae8;background-image:linear-gradient(#4d90fe 0,#357ae8 100%);border:1px solid #2f5bb7;color:#fff}.gePrimaryBtn:disabled{opacity:.5}.geAlertLink{color:#843534;font-weight:700;text-decoration:none}.geMenubarContainer{background-color:#fff}.geMenubar{padding:0 2px 0 2px;vertical-align:middle}.geMenubarContainer .geItem,.geToolbar .geItem{padding:6px 8px 6px 8px;cursor:default}.geMenubarContainer .geItem:hover,.geToolbarContainer .geItem:hover{background:#eee}.mxDisabled:hover{background:inherit!important}.geMenubar a.geStatus{color:#b3b3b3;padding-left:6px;display:inline-block;cursor:default!important}.geMenubar a.geStatus:hover{background:0 0}.geMenubarMenu{border:1px solid #d5d5d5!important}.geToolbarContainer{background:#f5f5f5;border-bottom:1px solid #e0e0e0}.geSidebarContainer .geToolbarContainer{background:0 0;border-bottom:none}.geSidebarContainer button{text-overflow:ellipsis;overflow:hidden}.geToolbar{padding:1px 0 0 6px;border-top:1px solid #e0e0e0;-webkit-box-shadow:inset 0 1px 0 0 #fff;-moz-box-shadow:inset 0 1px 0 0 #fff;box-shadow:inset 0 1px 0 0 #fff}.geToolbarContainer .geSeparator{float:left;width:1px;height:34px;background:#e5e5e5;margin-left:6px;margin-right:6px;margin-top:-2px}.geToolbarContainer .geButton{float:left;width:20px;height:20px;padding:0 2px 4px 2px;margin:2px;border:1px solid transparent;cursor:pointer;opacity:.6}.geToolbarContainer .geButton:hover{border:1px solid gray;border-radius:2px;opacity:1;filter:none!important}.geToolbarContainer .geButton:active{border:1px solid #000}div.mxWindow .geButton{margin:-1px 2px 2px 2px;padding:1px 2px 2px 1px}.geToolbarContainer .geLabel{float:left;margin:2px;cursor:pointer;padding:3px 5px 3px 5px;border:1px solid transparent;opacity:.6}.geToolbarContainer .geLabel:hover{border:1px solid gray;border-radius:2px;opacity:.9}.geToolbarContainer .geLabel:active{border:1px solid #000;opacity:1;filter:none!important}.geToolbarContainer .mxDisabled:hover{border:1px solid transparent!important;opacity:.2!important}.geToolbarMenu{border:3px solid #e0e0e0!important;-webkit-box-shadow:none!important;-moz-box-shadow:none!important;box-shadow:none!important;filter:none!important}.geDiagramBackdrop{background-color:#ebebeb;border-style:solid;border-color:#e5e5e5;border-width:1px 0 0 1px}.geSidebarContainer{background:#fff;overflow:hidden;position:absolute;border-top:1px solid #e5e5e5;overflow:auto}.geSidebar{background:#f5f5f5;border-bottom:1px solid #e5e5e5;padding:5px;padding-bottom:12px;overflow:hidden}.geSidebarContainer .geTitle{display:block;font-size:9pt;border-bottom:1px solid #e5e5e5;font-weight:400;padding:6px 0 6px 14px;margin:0;cursor:default;background:#eee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4em}.geSidebarContainer .geTitle:hover{background:#e5e5e5}.geTitle img{opacity:.5}.geTitle img:hover{opacity:1}.geSidebar .geItem{display:inline-block;background-repeat:no-repeat;background-position:50% 50%;border:1px solid transparent;border-radius:2px;cursor:move}.geSidebar .geItem:hover{border:1px solid gray!important}.geItem{vertical-align:top;display:inline-block}.geSidebarTooltip{position:absolute;background:#fff;overflow:hidden;border:1px solid gray;border-radius:8px;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5}.geFooterContainer{background:#e5e5e5;border-top:1px solid silver}.geFooterContainer a{font-size:14px;color:#235695;font-weight:700;text-decoration:none}.geFooterContainer table{border-collapse:collapse;margin:0 auto}.geFooterContainer td{border-left:1px solid silver;border-right:1px solid silver}.geFooterContainer td:hover{background-color:#b3b3b3}.geFooterContainer a{display:block;box-sizing:border-box;width:100%;height:100%;padding:11px 42px 11px 42px;white-space:nowrap}.geHsplit{cursor:col-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAHBAMAAADdS/HjAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAHUlEQVQImWMQEGAQFWUQFmYQF2cQEmIQE2MQEQEACy4BF67hpEwAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geVsplit{font-size:1pt;cursor:row-resize;background-color:#e5e5e5;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAEBAMAAACw6DhOAAAAGFBMVEUzMzP///9tbW1QUFCKiopBQUF8fHxfX1/IXlmXAAAAFElEQVQImWNgNVdzYBAUFBRggLMAEzYBy29kEPgAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center center}.geHsplit:hover,.geVsplit:hover{background-color:#d5d5d5}.geDialog{position:absolute;background:#fff;overflow:hidden;padding:30px;border:1px solid #acacac;-webkit-box-shadow:0 0 2px 2px #d5d5d5;-moz-box-shadow:0 0 2px 2px #d5d5d5;box-shadow:0 0 2px 2px #d5d5d5;z-index:2}.geDialogClose{position:absolute;width:9px;height:9px;opacity:.5;cursor:pointer}.geDialogClose:hover{opacity:1}.geDialogTitle{box-sizing:border-box;white-space:nowrap;background:#e5e5e5;border-bottom:1px solid silver;font-size:15px;font-weight:700;text-align:center;color:#235695}.geDialogFooter{background:#f5f5f5;white-space:nowrap;text-align:right;box-sizing:border-box;border-top:1px solid #e5e5e5;color:#a9a9a9}.geSprite{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAk/CAYAAACauMYVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAAWn0lEQVR4Ae2dW4gdxdbHO0aJYjzxTtR4EhSDSNB84kPEQOL9CB/Ex4igg8iAGCSgiIIQH1SOqJAnn4N4wBdvYBRBcYTIp0+OF0SDYoJRgyAmeA1e5lv/PrM6q6urqqu7a2/3ZP4NPVVdtda/Vv2qZ9Nrd++9i2IE2xJoHn/88XOq/ccff5RtepxSuv7HqxPE0GkNtC+lVH/YjiTSKoi+EaqA9T9OG3OW4xNdu3btHPZY9DGbRqRtYhiozaYhunfvXu95aoVCNjqzhqh2uGWbkLVPFrWRWgFfvSFqnW3dOtt2W7c2Zd2evI3OhAbr34g0wb/VZOGIjuRVagG+nrYuKQ1IgARIgARIgARIgARIoEbAm93BwmYb1mP58uXFoUOHgn6wTUok8K4Ddgj+9NNPxamnnhpNhpNENdL169eXVQj32jB93VUAEaJNxKORBtmEmGIAoNCBfGXS9C1TiLRF6huobNOp24g3b97cQBIU8HX4RJVp2+oH2dgI7aAp56m1Z50ESIAESIAESIAESIAESGCREtBMJXX6SclZqpjaUVRJ5CuPEabI623ii3rvXN/SVeFsgioO4SwRquDElNU7E3ZB+kTX9g5QH036kAAJkAAJkAAJkAAJkMDEEqiupBFh36vpsVxF1yJVnqkRjyVCDaoWaWqE6qzlWCKuRaojp0Y8lgg1qFqkqRGqs5ZjibgWqY6cGvFYItSgWJIACZAACZAACZAACZDAJBHwXknbAENX1bGr6IZoSMQO5KvbQUZyi9M36OC2xvRVMRWDnbb6jmT6FFW8+UoyzcdSlUbCVMVZkgAJkAAJkAAJkAAJTCqB1Pypc/yu8Jo1a6KfhE0eAMI7duyYS/04aJIwBCGsUeL507bPmbYKQwCCFsUgYQjaJ2MHC7uCvim1RVxLzSHY5YPUq1atKvbt21fTQBC9sxN8ltcnCNHGKCnR2g8HP/TQQ+U5/Mgjj1RajUjxiXc4hTYrCJtff/213K19pW4bUfdF7Aree++9tf+0p556qtRrRKribsSuoNr1KhEx9pAzonUjDtmynQRIgARIgARIgARIgASOGQLlNbrN6Hy3LNtm6/ovwC+qtVNom66v3/p7Ux4YuLsrZLNst686tiO5grZPHdCmbzCgzdp4I1VHX6kDou/AgQOFFW7Y25HU0ZauA/ps0mb9O0eq4uvWrWv9OrgaE3XsUmaJNDZgdPp29JiI2xcVdY1Tj72iOLE1SpRJJ7pvRBXRPpwuaLOnjfb5Ste/tPE1Rk9sR9n68/XUgcNDEiABEiABEiABEjgmCTTunMkl4Z65ublVbbM97rjj3v3999+3+uyqLFo7Ifjqq6+ulq1YsqQxJr6huXj77beLe+65Z5/6uGVDFAZysVtcdNFFXlGJrpDfPSp13nrrLczouauvvnpj2TD/x3vNjz5flOooUy8uvPDCDV9//fX/yb3ADc8///we7UMZFEXnn3/+WbzwwgvF559/XiBCbCeccEJx/fXXF4899tiyxx9/fNXpp5++VO4K19bAO/3SW/4goquuuqp4+OGHi08//bQ8vuyyy4rbb7+9ePTRR4svvvjioAyy9a+//jqiPt5y6dKl+z777DNZr6Pb+++/P3fHHXfMSd/cGWecMXf55Zcjc3lfBDZ4RdxGnyjkZ2Zm5q655ppSGOIiOuP66nGUKYx++eWX4pVXXilXfGpqqnjppZcKuZNbyDjrzzvvvJk33njjORXTMioqrIoPPvigPDdxmm3cuLG49tpri5tvvrm47bbbVkj/pp9//vlfL7744nYVRBldKBgsW7asEIbFWWedVZx00kkFBvrtt9/QVZ520r/ihx9+gOjOslH+REWx+hC0G04zWcjimWee2X/OOefsWrFiRfHtt98esjZeUTji39H3D4B29EvfPnkP5eErr7zS6pV1r+h7771XfPXVV0HRjz76qCFkGxqvGHIyPycru9Ia+eoS6az8l9UWyGfHNhIgARIgARIgARIgARLoQKBxfer6fvLJJ899/PHHZb506aWXvnvxxRdvdW3c48aV9O7du/eIUZUW3nXXXStvvPHGZbhUf/rpp1dK/z4VQUp5ySWXHJAHhuMJ75133rlKcqfVJ5988mpJJFYfPnx42ZNPPlk88cQTuPu4DG3og83999+/WjKTKgAdrJFHfffdd8Xs7OxWcd4sD//Ofvnll4UIlzvqDz74YCGPkIvJ7Nbvv/++TCpULFgijZTO1TK1nVI/hJTR3edTyNXnn3/+nIjDvrY1mGqvJAm7pP6iHjvlYee4dhgUffPNN9dLzrQG1sjyZJu56aabZlCZ31ZrxS2DoiI0Jcab4IDMT7bNr7/++gwqSMxuuOGGt1D3bY2F8hnNt22S/Goq0l91BSOtLI5W3paId0mEu+abuk8fGR1OeIlOme4Spip4dChPLRjpdddd1ztF7MLUE5O/aSSioek3/p89MZU2YO5uDVFZnAPyb/kf19B3LIL7pf2Ar49tJEACJEACJEACJEAC/Qh4c1O5sfWhXHz9MyK5Rx51/N9Qf+OqD4abNm36hxQrQk5XXHHFvyQz/PDss8++1GfjFf3xxx+RHm595513tp944ollBq3Octfs3YMHD+6US87/iPAeEd6ofVp6Rec7D956662N+6FHjhz5Hxl055lnnrlUbnduEFR75F5qTTgmWj5d/OyzzxYbNtSCXSaDrsSTx7fccstSYd+46o6KIuKVK1cWuIPeZWsVhZjcyC6++eYbPExcyLQLyZ6jYySJ4pamvFlQ3vPDImKXvCAo3CnlQSaCtzgQKcrQ1kkU2TQ+y3vKKafkiRR5KkSBAnxjWzDSBx54YEpuYJfLftpppxUXXHBBsWbNmkLOzZhe2ecVlYh2Crf9El352iBPG+BxhlIY4ueee24lLJxXvPbaaw9UDVLxrr68f7Lz7rvvxim0Wd548Z6k8q9a6sg7GKdKBaL/Lhvkj1dUOyXQ2fvuu08PG6Xc4C5PM7Hr+ZvkDUk2kAAJkAAJkAAJkAAJkAAJLFYC3vdQXBiS+jRvj4mR3AFO8nf1quPt27d3+qho5RirINpQxK6fN410jTZv3lxOH19Rlm3rEiUGbY1UMucySjzNnW3rGmVrpPqh4G3btnUK0nuehVZ58HnZKTQakwAJkAAJkAAJkAAJkAAJZCBQu+YPXeu3jTOWXKBXpGOJzMXTK1JXZCyR94p0LJG5OHpF6oqMJfJekY4lMhcHj0mABEiABEiABEiABEhgnkDXe1Ktd876kKVomJr9ZmFYYcF6f7uwHUaFswmqOISzRKiCE1NWGV/f9090JsdwFph99bOfp1ZQX/6yna8qqCvdVvKlr40Q+0mABEiABEiABEiABBY8gSqP8s2kLbcK5U4juZL2BTi4rTH9timHRrQoBk3fCtnBBomGZjVI1EZn69EPBsMwNMVQlPAZSaQQDm6xaGJ9I4m0lWksouAU2UECJEACJEACJEACJEACJEACWQnITzuVP5mLDEX3Qff4VCRUWnHYtM4GRvpZaDXGJ7j1B391IHusdt5SPwzs7ZRGDKaitgzZF4gm2Gk65JeuGsKmu55F4wemUjb50a+oWeM9lKi1dAKP/Fhawyz0vkDDkA0kQAIkQAIkQAIkQAIkQAILnkAtkUBe1GdGY0kiapG6UaZGPv5IUyNzZzT+SN0IUiMff6SpkbkzGn+kbgSpkY8lUjc4HpMACZAACZAACZAACZAACaQQaOSmqdf5Vty95h/vQ63u6DYyrYdmlSXS6enpOew6WBZRFdOSokoiXxl8Tjp0uqQMPZKFakRqT3p77qVEqDYjiVTFWZIACZAACZAACZAACZDARBKQa/0P5XeLD0lwbT8Z9E/Ywd6dSONKWn5XV38qO/yLyP9VQQa+Yt6+ptsQrfX2PFjkoo08SjHKyk7JzwtfrceeEovkaY5/2nhKnFb7vNAu+3ZfH9qCkaJTfjB9lxSHZcdT2ftl3yc7tk2YCSq+rXX15eTeKQIzUk75BHxtraI+p7a2hqgszgFx+lMd5Ri/Nr1fSvzrJm0NppJFb5Sp7pGFwI+aHZFfud4KJeFrBfEb8mCMH6FGENxIgARIgARIgARIgARIYHERQNJabnL17E+K1KCltPexWkwXWjc+WWw/XTw4foiBN/YswlYwqzCmqoKp025kfKmOMTuKxuj061s4TPvNj14kQAIkQAIkQAIkQAIkQAIBAqEsL9RuZRZOIsFI7bodra9ahdumRbFjx47qXSCta99R63qtegup3vzfI5w+vva2t4uiCwVnGxXqbYK+ILK0eacfmrY74t8WtRsIj0mABEiABEiABEiABEiABBYBAffWMb6lGd/dnTx1+63Xrpi+eWDLJGE4QBi7dcax+63Y+rXarcJWSOvuF4C7InZ2bl95rEJa4ru4vYZOozuLaMLb9l3cqu1+t3ctN0WEaqjl8uXLi0OHDtXstI8lCZAACZAACZAACZAACZAACTQIuFkfjhtGnoZg1uHLVNS/7Y6ZN49SwW3btpU3CiGCHcfYtF8HaS11yjaLW7t2bTVttEM0FUU5IBzcSKwojHw2NtoGUxXEdF0xOO7du3eJtbFiwbovClfcZ2MFGwu1bt26st8ytQ7arna2L1rXSFRAjXWRdPranlyqcKjstPp2VD29VFiFtF2Prc+g+tiFG6vfJfzZ2dklOAsk6i5utCUBEiABEiABEiABEiCBySGgl+DuNX9bhI2MTx0gpHW3nNws2kaqCVqndEf5WSG33mbT+H4pK+AmuuhDFm1tkuptUUCkzaaRR2l27Ca7GpG2q522t5YaiQqogy4S+rWtU6nCobLT6tuRQ/9R2t5b2A5i62MXbqy+jaatziy6jRD7SYAESIAESIAESOBYJtA9ffHQsDkAUsxoHmX9raNt13opNp9gJIvCOZToarKhAySXbZFaoUGX51bI1ilqaeSpk2kejlZlkTMtX6Xsi0Xolcgya6tXL336emgHaHMO9Zev/FYoR6ShwdhOAiRAAiRAAiRAAscYgZFk0dmupO2FXTZRe+WYbTWtaLZIbXQUtTTy1KvsxK5eHmlRySnK1c+2LJXQSJiOJDetIrWvh9U8elYq0Zznac9Y6EYCJEACJEACJEACC43AIsqid+/eXT41m+2qEYIQU+HBa0/BwQgLMiTDHgSynjZ4UdA924uDvmxp2WOSNRdm0TUcPCABEiABEiABEiCBTgQmK4vWa1m9Uhx870UF9VpWr211gE6s1BjOKqhtg0qNcpCI68woXSL9jnVxsq44F6ffYvi8Jo8lItIdEWc5hSAIMRVGOeScHMldcwTIjQRIgARIgARIgAQWAYHJyqJd4DaLru6duEZdj/VytKtf1N6KZovUjkhRSyNPnUzzcLQqi5wpPxdtTwbWSYAESIAESIAESOBYJTCSLLr6vGlXajYXhS+yaG0bdHkOIU3JVbBrcDX7mMigSGujmAOKGhiZqsHzNLa6vcceIsrV74096DgSpiPJoqtI7UvYkNMJTHgvOnhmsIMESIAESIAESIAESIAESCBEoPYW0tCsRDOc0GBsJwESIAESIAESIAESIAESIAESmFQCyAiHfGYyOC8Ij0RchbOLW2FXfLKy6FikwQWJdVjBLGeDCmYRQ+TugsRmwz4SIAESIAESIAESIAESIAESGD2B7GmPhnxsCE9WFj0yttkXa/IFlSVLEiABEiABEiABEiABEiABEuhEIHu6g9FVFGXWu5LZha2g1m3Ek5NFa3S2tJF2WnU1tmKoDxYc+epniVCnz5IESIAESIAESIAESIAESIAEJoMAUh2boA1OfVxBFbfCtYQ3hQNEQnb6Eebat4vFHEJCvvaRRFp9v5RvRF/byy+/7GsuQu1eY1+ju1h2kXz2bCMBEiABEiABEiABEiABEiCBBUYglh12zvgwdyuo+ahl0lnUCqqQK9xJ1CfoE66JxpzUOVZqxDXRmAP6YoOqIOw6iYaErWAvUVfYFUR/7y2GorcoHUmABEiABEiABEiABEiABEjg7yNg70IOvgNpxZA/2d0n3ppGpiZhNvOriaYKhBZAhWuiPuPUgVQQGq33omEcu8+MPivoCyzaZhfMt0BRZ3aSAAmQAAmQAAmQAAmQAAmQwGQTQKI2klQHwiMRV+Hs4iqoA1gstYQXBl1WVXNS9dPjLho121ikNcPUA52yCqf6Be1U0DIMGqd0ZIssZTDakAAJkAAJkAAJkAAJkAAJkEArgexpD0ZU0awpEMSseJZETUVDwr2zaJsx6yC2DQN22lQETqhjH4xARbMJ2uiyRKiMskaooixJgARIgARIgARIgARIgARIYDIIILvTtMeXS7U+fexOA4L6xDFyUew4HpRGIjJ3IBzb9pF8u5hv0GibjcgahtqtTbAOdtPT0zUEOB7EFKNBAJHpPlgwOAV2kAAJkAAJkAAJkAAJkAAJkMDfQmBQMuaLGIKaS/n6O7epIByzCFtBjaZVGE6xPZQutgprBL6yV6Q+IbfNCg+KMCSMAdy+QcfZBQdFQ2cSIAESIAESIAESIAESIAESyEIAqU5bulN7Tjo2qgrpt2Jt2bKlNO/1bDRutELQl+xqGunenK0Fp1NzS5+gOiYJq7GWfSL9e5hqxFoqGj1mSQIkQAIkQAIkQAIkQAIkQAILmIBmdFmmoGLImwYLWrHBgq7YEMEqNx0iAjzevD9npI01cMUbBkMarPgQHa+vins72UgCJEACJEACJEACJEACJEACIyWgGcnQLLAKcnEJji+LrgDnqGRfJA1q4Qlr5CxJgARIgARIgARIgARIgARIIIlA9rTHCmZJzV3BwaI+wb6i48uiEaHuSSsbM/IhiNkn97nCyY5thla4zZb9JEACJEACJEACJEACJEACJLBACNhUBxkfjgeF7gpqGtlHOCnh9T5YHZlCkmjEv+qyA9e++LuycCrWwenyHlbfe66fIXetQu2uXfDYXaw+ixQUZwcJkAAJkAAJkAAJkAAJkAAJTA4B5KZ9o6nSSCtgBbtme9BpiFpBHaircE3UJ9hHuBKNCapwrLSzqUThEBO2TjFx9NVE0eAT7iLoFXWFuwrCP7j5Ig4as4MESIAESIAESIAESIAESIAEFhYBe2dy8F1JK4Zcyu6p4rU0MjUha8sCK9FUwdAi2oEqURinClsB3yDVvWh0wjh27xl9bYK+Qao2u2CpC1Q5s0ICJEACJEACJEACJEACJEACC4OApj5ZolWx1CwwOqgVGyxoxbQeHT3SWSW8GpXmnnoc8a11qV+tUaODmNZrBkMOVBDiXaNtHdeKtxp3NVDxrn60JwESIAESIAESIAESIAESIIHhBDQjyZZHWcEsolYQ8x0s6goOEQ1m0V1FW7NoCGIbPH2IuAiyiLrC2URdYRxzIwESIAESIAESIAESIAESIIFjgIBNzpBD4bjPtKqnjyGgTxcjz8SO477CZTCh7C7UHptB0heBpQjbLDpJ1DrEImz0gd309HRtYXA8iClGgQCmqvtgwUbobCABEiABEiABEiABEiABEiCBiSCQkuV1ChSCmlN1cgwZqyD6swhbQR10kLBP0BWGTWhX20bpEx4UqY5ghbMIusIYQNuylNkFs0RFERIgARIgARIgARIgARIgARLIRgBpT5/Up3pO2kaiQvqtWFu2bCm7e92Uxc1XCCJ9tIOgrimle8PWtasdxwTVUIUViy3VplHGhFUwJdLRM3VD1+m57TwmgTCB/wdigVA7yGo0NAAAAABJRU5ErkJggg==) no-repeat top left;width:21px;height:21px}.geSprite-actualsize{background-position:0 0}.geSprite-bold{background-position:0 -46px}.geSprite-bottom{background-position:0 -92px}.geSprite-center{background-position:0 -138px}.geSprite-delete{background-position:0 -184px}.geSprite-fillcolor{background-position:0 -230px}.geSprite-fit{background-position:0 -276px}.geSprite-fontcolor{background-position:0 -322px}.geSprite-gradientcolor{background-position:0 -368px}.geSprite-image{background-position:0 -414px}.geSprite-italic{background-position:0 -460px}.geSprite-left{background-position:0 -506px}.geSprite-middle{background-position:0 -552px}.geSprite-print{background-position:0 -598px}.geSprite-redo{background-position:0 -644px}.geSprite-right{background-position:0 -690px}.geSprite-shadow{background-position:0 -736px}.geSprite-strokecolor{background-position:0 -782px}.geSprite-top{background-position:0 -828px}.geSprite-underline{background-position:0 -874px}.geSprite-undo{background-position:0 -920px}.geSprite-zoomin{background-position:0 -966px}.geSprite-zoomout{background-position:0 -1012px}.geSprite-helbow{background-position:0 -1058px}.geSprite-velbow{background-position:0 -1104px}.geSprite-straight{background-position:0 -1150px}.geSprite-entity{background-position:0 -1196px}.geSprite-segment{background-position:0 -1242px}.geSprite-orthogonal{background-position:0 -1288px}.geSprite-noarrow{background-position:0 -1334px}.geSprite-endclassic{background-position:0 -1380px}.geSprite-endopen{background-position:0 -1426px}.geSprite-endblock{background-position:0 -1472px}.geSprite-endoval{background-position:0 -1518px}.geSprite-enddiamond{background-position:0 -1564px}.geSprite-endthindiamond{background-position:0 -1610px}.geSprite-endclassictrans{background-position:0 -1656px}.geSprite-endblocktrans{background-position:0 -1702px}.geSprite-endovaltrans{background-position:0 -1748px}.geSprite-enddiamondtrans{background-position:0 -1794px}.geSprite-endthindiamondtrans{background-position:0 -1840px}.geSprite-startclassic{background-position:0 -1886px}.geSprite-startopen{background-position:0 -1932px}.geSprite-startblock{background-position:0 -1978px}.geSprite-startoval{background-position:0 -2024px}.geSprite-startdiamond{background-position:0 -2070px}.geSprite-startthindiamond{background-position:0 -2116px}.geSprite-startclassictrans{background-position:0 -2162px}.geSprite-startblocktrans{background-position:0 -2208px}.geSprite-startovaltrans{background-position:0 -2254px}.geSprite-startdiamondtrans{background-position:0 -2300px}.geSprite-startthindiamondtrans{background-position:0 -2346px}.geSprite-copy{background-position:0 -410px}.geSprite-cut{background-position:0 -320px}.geSprite-paste{background-position:0 -367px}.geSprite-duplicate{background-position:0 -736px}.geSprite-save{background-position:0 -782px}.geSprite-publish{background-position:0 -92px}.geBaseButton{padding:10px;border-radius:6px;border:1px solid silver;cursor:pointer;background-color:#ececec;background-image:linear-gradient(#ececec 0,#fcfcfc 100%)}.geBaseButton:hover{background:#ececec}.geBigButton{color:#fff;border:none;padding:10px;font-size:14pt;white-space:nowrap;border-radius:6px;text-shadow:#295989 0 1px 0;background-color:#428bca;background-image:linear-gradient(#4687ce 0,#3068a2 100%);-webkit-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;-moz-box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0;box-shadow:rgba(255,255,255,.0980392) 0 1px 0 0 inset,rgba(0,0,0,.2) 0 1px 1px 0}.geBigButton:hover{background-color:#2d6ca2;background-image:linear-gradient(#5a94d3 0,#3673b5 100%)}.geBigButton:active{background-color:#3673b5;background-image:none}@media print{div.geNoPrint{display:none!important}}html div.mxRubberband{border-color:#00d;background:#9cf}td.mxPopupMenuIcon div{width:16px;height:16px}html div.mxPopupMenu{-webkit-box-shadow:2px 2px 3px #d5d5d5;-moz-box-shadow:2px 2px 3px #d5d5d5;box-shadow:2px 2px 3px #d5d5d5;background:#fff;position:absolute;border:3px solid #e7e7e7;padding:3px}html table.mxPopupMenu{border-collapse:collapse;margin:0}html td.mxPopupMenuItem{padding:7px 30px 7px 30px;font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;font-size:10pt}html td.mxPopupMenuIcon{background-color:#fff;padding:0}td.mxPopupMenuIcon .geIcon{padding:2px;padding-bottom:4px;margin:2px;border:1px solid transparent;opacity:.5}td.mxPopupMenuIcon .geIcon:hover{border:1px solid gray;border-radius:2px;opacity:1}html tr.mxPopupMenuItemHover{background-color:#eee;color:#000}table.mxPopupMenu hr{color:#ccc;background-color:#ccc;border:none;height:1px}table.mxPopupMenu tr{font-size:4pt}html td.mxWindowTitle{font-family:Helvetica Neue,Helvetica,Arial Unicode MS,Arial;text-align:left;font-size:12px;color:#707070;padding:4px}div.mxTooltip{-webkit-box-shadow:3px 3px 12px silver;-moz-box-shadow:3px 3px 12px silver;box-shadow:3px 3px 12px silver;background:#ffc;border-style:solid;border-width:1px;border-color:#000;font-family:Arial;font-size:8pt;position:absolute;cursor:default;padding:4px;color:#000}body{font-family:Arial Unicode MS,Arial,Helvetica;font-size:10pt}
\ No newline at end of file
diff --git a/public/styles/throbber.gif b/public/styles/throbber.gif
new file mode 100644 (file)
index 0000000..1b5b2fd
Binary files /dev/null and b/public/styles/throbber.gif differ
diff --git a/public/styles/vendor.bef8c8e4.css b/public/styles/vendor.bef8c8e4.css
new file mode 100644 (file)
index 0000000..42ce5b8
--- /dev/null
@@ -0,0 +1,10 @@
+table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable tfoot th,table.dataTable thead th{font-weight:700}table.dataTable thead td,table.dataTable thead th{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead td:active,table.dataTable thead th:active{outline:0}table.dataTable tfoot td,table.dataTable tfoot th{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_desc_disabled{cursor:pointer}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_desc_disabled{background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url(../images/sort_both.png)}table.dataTable thead .sorting_asc{background-image:url(../images/sort_asc.png)}table.dataTable thead .sorting_desc{background-image:url(../images/sort_desc.png)}table.dataTable thead .sorting_asc_disabled{background-image:url(../images/sort_asc_disabled.png)}table.dataTable thead .sorting_desc_disabled{background-image:url(../images/sort_desc_disabled.png)}table.dataTable tbody tr{background-color:#fff}table.dataTable tbody tr.selected{background-color:#b0bed9}table.dataTable tbody td,table.dataTable tbody th{padding:8px 10px}table.dataTable.display tbody td,table.dataTable.display tbody th,table.dataTable.row-border tbody td,table.dataTable.row-border tbody th{border-top:1px solid #ddd}table.dataTable.display tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.row-border tbody tr:first-child th{border-top:none}table.dataTable.cell-border tbody td,table.dataTable.cell-border tbody th{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr td:first-child,table.dataTable.cell-border tbody tr th:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child td,table.dataTable.cell-border tbody tr:first-child th{border-top:none}table.dataTable.display tbody tr.odd,table.dataTable.stripe tbody tr.odd{background-color:#f9f9f9}table.dataTable.display tbody tr.odd.selected,table.dataTable.stripe tbody tr.odd.selected{background-color:#acbad4}table.dataTable.display tbody tr:hover,table.dataTable.hover tbody tr:hover{background-color:#f6f6f6}table.dataTable.display tbody tr:hover.selected,table.dataTable.hover tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3,table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3,table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:#f5f5f5}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap td,table.dataTable.nowrap th{white-space:nowrap}table.dataTable.compact thead td,table.dataTable.compact thead th{padding:4px 17px 4px 4px}table.dataTable.compact tfoot td,table.dataTable.compact tfoot th{padding:4px}table.dataTable.compact tbody td,table.dataTable.compact tbody th{padding:4px}table.dataTable td.dt-left,table.dataTable th.dt-left{text-align:left}table.dataTable td.dataTables_empty,table.dataTable td.dt-center,table.dataTable th.dt-center{text-align:center}table.dataTable td.dt-right,table.dataTable th.dt-right{text-align:right}table.dataTable td.dt-justify,table.dataTable th.dt-justify{text-align:justify}table.dataTable td.dt-nowrap,table.dataTable th.dt-nowrap{white-space:nowrap}table.dataTable tfoot td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable thead th.dt-head-left{text-align:left}table.dataTable tfoot td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable thead th.dt-head-center{text-align:center}table.dataTable tfoot td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable thead th.dt-head-right{text-align:right}table.dataTable tfoot td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable thead th.dt-head-justify{text-align:justify}table.dataTable tfoot td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable thead th.dt-head-nowrap{white-space:nowrap}table.dataTable tbody td.dt-body-left,table.dataTable tbody th.dt-body-left{text-align:left}table.dataTable tbody td.dt-body-center,table.dataTable tbody th.dt-body-center{text-align:center}table.dataTable tbody td.dt-body-right,table.dataTable tbody th.dt-body-right{text-align:right}table.dataTable tbody td.dt-body-justify,table.dataTable tbody th.dt-body-justify{text-align:justify}table.dataTable tbody td.dt-body-nowrap,table.dataTable tbody th.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:.5em 1em;margin-left:2px;text-align:center;text-decoration:none!important;cursor:pointer;color:#333!important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333!important;border:1px solid #979797;background-color:#fff;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#dcdcdc));background:-webkit-linear-gradient(top,#fff 0,#dcdcdc 100%);background:-moz-linear-gradient(top,#fff 0,#dcdcdc 100%);background:-ms-linear-gradient(top,#fff 0,#dcdcdc 100%);background:-o-linear-gradient(top,#fff 0,#dcdcdc 100%);background:linear-gradient(to bottom,#fff 0,#dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover{cursor:default;color:#666!important;border:1px solid transparent;background:0 0;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:#fff!important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#585858),color-stop(100%,#111));background:-webkit-linear-gradient(top,#585858 0,#111 100%);background:-moz-linear-gradient(top,#585858 0,#111 100%);background:-ms-linear-gradient(top,#585858 0,#111 100%);background:-o-linear-gradient(top,#585858 0,#111 100%);background:linear-gradient(to bottom,#585858 0,#111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:0;background-color:#2b2b2b;background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#2b2b2b),color-stop(100%,#0c0c0c));background:-webkit-linear-gradient(top,#2b2b2b 0,#0c0c0c 100%);background:-moz-linear-gradient(top,#2b2b2b 0,#0c0c0c 100%);background:-ms-linear-gradient(top,#2b2b2b 0,#0c0c0c 100%);background:-o-linear-gradient(top,#2b2b2b 0,#0c0c0c 100%);background:linear-gradient(to bottom,#2b2b2b 0,#0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:#fff;background:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,0)),color-stop(25%,rgba(255,255,255,.9)),color-stop(75%,rgba(255,255,255,.9)),color-stop(100%,rgba(255,255,255,0)));background:-webkit-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:-o-linear-gradient(left,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%);background:linear-gradient(to right,rgba(255,255,255,0) 0,rgba(255,255,255,.9) 25%,rgba(255,255,255,.9) 75%,rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_paginate,.dataTables_wrapper .dataTables_processing{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th{vertical-align:middle}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing{height:0;overflow:hidden;margin:0!important;padding:0!important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollBody>table,.dataTables_wrapper.no-footer div.dataTables_scrollHead>table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width:767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:.5em}}@media screen and (max-width:640px){.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_length{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:.5em}}.nvd3 .nv-axis{pointer-events:none;opacity:1}.nvd3 .nv-axis path{fill:none;stroke:#000;stroke-opacity:.75;shape-rendering:crispEdges}.nvd3 .nv-axis path.domain{stroke-opacity:.75}.nvd3 .nv-axis.nv-x path.domain{stroke-opacity:0}.nvd3 .nv-axis line{fill:none;stroke:#e5e5e5;shape-rendering:crispEdges}.nvd3 .nv-axis .zero line,.nvd3 .nv-axis line.zero{stroke-opacity:.75}.nvd3 .nv-axis .nv-axisMaxMin text{font-weight:700}.nvd3 .x .nv-axis .nv-axisMaxMin text,.nvd3 .x2 .nv-axis .nv-axisMaxMin text,.nvd3 .x3 .nv-axis .nv-axisMaxMin text{text-anchor:middle}.nvd3 .nv-axis.nv-disabled{opacity:0}.nvd3 .nv-bars rect{fill-opacity:.75;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-bars rect.hover{fill-opacity:1}.nvd3 .nv-bars .hover rect{fill:#add8e6}.nvd3 .nv-bars text{fill:transparent}.nvd3 .nv-bars .hover text{fill:rgba(0,0,0,1)}.nvd3 .nv-discretebar .nv-groups rect,.nvd3 .nv-multibar .nv-groups rect,.nvd3 .nv-multibarHorizontal .nv-groups rect{stroke-opacity:0;transition:fill-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear}.nvd3 .nv-candlestickBar .nv-ticks rect:hover,.nvd3 .nv-discretebar .nv-groups rect:hover,.nvd3 .nv-multibar .nv-groups rect:hover,.nvd3 .nv-multibarHorizontal .nv-groups rect:hover{fill-opacity:1}.nvd3 .nv-discretebar .nv-groups text,.nvd3 .nv-multibarHorizontal .nv-groups text{font-weight:700;fill:rgba(0,0,0,1);stroke:transparent}.nvd3 .nv-boxplot circle{fill-opacity:.5}.nvd3 .nv-boxplot circle:hover{fill-opacity:1}.nvd3 .nv-boxplot rect:hover{fill-opacity:1}.nvd3 line.nv-boxplot-median{stroke:#000}.nv-boxplot-tick:hover{stroke-width:2.5px}.nvd3.nv-bullet{font:10px sans-serif}.nvd3.nv-bullet .nv-measure{fill-opacity:.8}.nvd3.nv-bullet .nv-measure:hover{fill-opacity:1}.nvd3.nv-bullet .nv-marker{stroke:#000;stroke-width:2px}.nvd3.nv-bullet .nv-markerTriangle{stroke:#000;fill:#fff;stroke-width:1.5px}.nvd3.nv-bullet .nv-tick line{stroke:#666;stroke-width:.5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:700}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5!important;stroke-opacity:.5!important}.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3 .nv-groups .nv-point.hover,.nvd3.nv-scatter .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95!important;stroke-opacity:.95!important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-ms-user-select:none;-moz-user-select:none;user-select:none;display:block;width:100%;height:100%}.nvtooltip.with-3d-shadow,.with-3d-shadow .nvtooltip{-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nvd3 text{font:normal 12px Arial}.nvd3 .title{font:bold 14px Arial}.nvd3 .nv-background{fill:#fff;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:700}.nv-brush .extent{fill-opacity:.125;shape-rendering:crispEdges}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .nv-series{cursor:pointer}.nvd3 .nv-legend .nv-disabled circle{fill-opacity:0}.nvd3 .nv-brush .extent{fill-opacity:0!important}.nvd3 .nv-brushBackground rect{stroke:#000;stroke-width:.4;fill:#fff;fill-opacity:.7}.nvd3.nv-ohlcBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.positive{stroke:#2ca02c}.nvd3.nv-ohlcBar .nv-ticks .nv-tick.negative{stroke:#d62728}.nvd3 .background path{fill:none;stroke:#eee;stroke-opacity:.4;shape-rendering:crispEdges}.nvd3 .foreground path{fill:none;stroke-opacity:.7}.nvd3 .nv-parallelCoordinates-brush .extent{fill:#fff;fill-opacity:.6;stroke:gray;shape-rendering:crispEdges}.nvd3 .nv-parallelCoordinates .hover{fill-opacity:1;stroke-width:3px}.nvd3 .missingValuesline line{fill:none;stroke:#000;stroke-width:1;stroke-opacity:1;stroke-dasharray:5,5}.nvd3.nv-pie path{stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-width 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-pie .nv-pie-title{font-size:24px;fill:rgba(19,196,249,.59)}.nvd3.nv-pie .nv-slice text{stroke:#000;stroke-width:0}.nvd3.nv-pie path{stroke:#fff;stroke-width:1px;stroke-opacity:1}.nvd3.nv-pie .hover path{fill-opacity:.7}.nvd3.nv-pie .nv-label{pointer-events:none}.nvd3.nv-pie .nv-label rect{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-groups .nv-point.hover{stroke-width:20px;stroke-opacity:.5}.nvd3 .nv-scatter .nv-point.hover{fill-opacity:1}.nv-noninteractive{pointer-events:none}.nv-distx,.nv-disty{pointer-events:none}.nvd3.nv-sparkline path{fill:none}.nvd3.nv-sparklineplus g.nv-hoverValue{pointer-events:none}.nvd3.nv-sparklineplus .nv-hoverValue line{stroke:#333;stroke-width:1.5px}.nvd3.nv-sparklineplus,.nvd3.nv-sparklineplus g{pointer-events:all}.nvd3 .nv-hoverArea{fill-opacity:0;stroke-opacity:0}.nvd3.nv-sparklineplus .nv-xValue,.nvd3.nv-sparklineplus .nv-yValue{stroke-width:0;font-size:.9em;font-weight:400}.nvd3.nv-sparklineplus .nv-yValue{stroke:#f66}.nvd3.nv-sparklineplus .nv-maxValue{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-sparklineplus .nv-minValue{stroke:#d62728;fill:#d62728}.nvd3.nv-sparklineplus .nv-currentValue{font-weight:700;font-size:1.1em}.nvd3.nv-stackedarea path.nv-area{fill-opacity:.7;stroke-opacity:0;transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-moz-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear;-webkit-transition:fill-opacity 250ms linear,stroke-opacity 250ms linear}.nvd3.nv-stackedarea path.nv-area.hover{fill-opacity:.9}.nvd3.nv-stackedarea .nv-groups .nv-point{stroke-opacity:0;fill-opacity:0}.nvtooltip{position:absolute;background-color:rgba(255,255,255,1);color:rgba(0,0,0,1);padding:1px;border:1px solid rgba(0,0,0,.2);z-index:10000;display:block;font-family:Arial;font-size:13px;text-align:left;pointer-events:none;white-space:nowrap;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.nvtooltip{background:rgba(255,255,255,.8);border:1px solid rgba(0,0,0,.5);border-radius:4px}.nvtooltip.with-transitions,.with-transitions .nvtooltip{transition:opacity 50ms linear;-moz-transition:opacity 50ms linear;-webkit-transition:opacity 50ms linear;transition-delay:.2s;-moz-transition-delay:.2s;-webkit-transition-delay:.2s}.nvtooltip.x-nvtooltip,.nvtooltip.y-nvtooltip{padding:8px}.nvtooltip h3{margin:0;padding:4px 14px;line-height:18px;font-weight:400;background-color:rgba(247,247,247,.75);color:rgba(0,0,0,1);text-align:center;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.nvtooltip p{margin:0;padding:5px 14px;text-align:center}.nvtooltip span{display:inline-block;margin:2px 0}.nvtooltip table{margin:6px;border-spacing:0}.nvtooltip table td{padding:2px 9px 2px 0;vertical-align:middle}.nvtooltip table td.key{font-weight:400}.nvtooltip table td.value{text-align:right;font-weight:700}.nvtooltip table tr.highlight td{padding:1px 9px 1px 0;border-bottom-style:solid;border-bottom-width:1px;border-top-style:solid;border-top-width:1px}.nvtooltip table td.legend-color-guide div{width:8px;height:8px;vertical-align:middle}.nvtooltip table td.legend-color-guide div{width:12px;height:12px;border:1px solid #999}.nvtooltip .footer{padding:3px;text-align:center}.nvtooltip-pending-removal{pointer-events:none;display:none}.nvd3 .nv-interactiveGuideLine{pointer-events:none}.nvd3 line.nv-guideline{stroke:#ccc}/*!
+ * FullCalendar v2.3.1 Stylesheet
+ * Docs & License: http://fullcalendar.io/
+ * (c) 2015 Adam Shaw
+ */.fc{direction:ltr;text-align:left}.fc-rtl{text-align:right}body .fc{font-size:1em}.fc-unthemed .fc-divider,.fc-unthemed .fc-popover,.fc-unthemed .fc-row,.fc-unthemed tbody,.fc-unthemed td,.fc-unthemed th,.fc-unthemed thead{border-color:#ddd}.fc-unthemed .fc-popover{background-color:#fff}.fc-unthemed .fc-divider,.fc-unthemed .fc-popover .fc-header{background:#eee}.fc-unthemed .fc-popover .fc-header .fc-close{color:#666}.fc-unthemed .fc-today{background:#fcf8e3}.fc-highlight{background:#bce8f1;opacity:.3}.fc-bgevent{background:#8fdf82;opacity:.3}.fc-nonbusiness{background:#d7d7d7}.fc-icon{display:inline-block;width:1em;height:1em;line-height:1em;font-size:1em;text-align:center;overflow:hidden;font-family:"Courier New",Courier,monospace}.fc-icon:after{position:relative;margin:0 -1em}.fc-icon-left-single-arrow:after{content:"\02039";font-weight:700;font-size:200%;top:-7%;left:3%}.fc-icon-right-single-arrow:after{content:"\0203A";font-weight:700;font-size:200%;top:-7%;left:-3%}.fc-icon-left-double-arrow:after{content:"\000AB";font-size:160%;top:-7%}.fc-icon-right-double-arrow:after{content:"\000BB";font-size:160%;top:-7%}.fc-icon-left-triangle:after{content:"\25C4";font-size:125%;top:3%;left:-2%}.fc-icon-right-triangle:after{content:"\25BA";font-size:125%;top:3%;left:2%}.fc-icon-down-triangle:after{content:"\25BC";font-size:125%;top:2%}.fc-icon-x:after{content:"\000D7";font-size:200%;top:6%}.fc button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;height:2.1em;padding:0 .6em;font-size:1em;white-space:nowrap;cursor:pointer}.fc button::-moz-focus-inner{margin:0;padding:0}.fc-state-default{border:1px solid}.fc-state-default.fc-corner-left{border-top-left-radius:4px;border-bottom-left-radius:4px}.fc-state-default.fc-corner-right{border-top-right-radius:4px;border-bottom-right-radius:4px}.fc button .fc-icon{position:relative;top:-.05em;margin:0 .2em;vertical-align:middle}.fc-state-default{background-color:#f5f5f5;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,.1) rgba(0,0,0,.1) rgba(0,0,0,.25);color:#333;text-shadow:0 1px 1px rgba(255,255,255,.75);box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.fc-state-active,.fc-state-disabled,.fc-state-down,.fc-state-hover{color:#333;background-color:#e6e6e6}.fc-state-hover{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.fc-state-active,.fc-state-down{background-color:#ccc;background-image:none;box-shadow:inset 0 2px 4px rgba(0,0,0,.15),0 1px 2px rgba(0,0,0,.05)}.fc-state-disabled{cursor:default;background-image:none;opacity:.65;box-shadow:none}.fc-button-group{display:inline-block}.fc .fc-button-group>*{float:left;margin:0 0 0 -1px}.fc .fc-button-group>:first-child{margin-left:0}.fc-popover{position:absolute;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc-popover .fc-header{padding:2px 4px}.fc-popover .fc-header .fc-title{margin:0 2px}.fc-popover .fc-header .fc-close{cursor:pointer}.fc-ltr .fc-popover .fc-header .fc-title,.fc-rtl .fc-popover .fc-header .fc-close{float:left}.fc-ltr .fc-popover .fc-header .fc-close,.fc-rtl .fc-popover .fc-header .fc-title{float:right}.fc-unthemed .fc-popover{border-width:1px;border-style:solid}.fc-unthemed .fc-popover .fc-header .fc-close{font-size:.9em;margin-top:2px}.fc-popover>.ui-widget-header+.ui-widget-content{border-top:0}.fc-divider{border-style:solid;border-width:1px}hr.fc-divider{height:0;margin:0;padding:0 0 2px;border-width:1px 0}.fc-clear{clear:both}.fc-bg,.fc-bgevent-skeleton,.fc-helper-skeleton,.fc-highlight-skeleton{position:absolute;top:0;left:0;right:0}.fc-bg{bottom:0}.fc-bg table{height:100%}.fc table{width:100%;table-layout:fixed;border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{border-style:solid;border-width:1px;padding:0;vertical-align:top}.fc td.fc-today{border-style:double}.fc .fc-row{border-style:solid;border-width:0}.fc-row table{border-left:0 hidden transparent;border-right:0 hidden transparent;border-bottom:0 hidden transparent}.fc-row:first-child table{border-top:0 hidden transparent}.fc-row{position:relative}.fc-row .fc-bg{z-index:1}.fc-row .fc-bgevent-skeleton,.fc-row .fc-highlight-skeleton{bottom:0}.fc-row .fc-bgevent-skeleton table,.fc-row .fc-highlight-skeleton table{height:100%}.fc-row .fc-bgevent-skeleton td,.fc-row .fc-highlight-skeleton td{border-color:transparent}.fc-row .fc-bgevent-skeleton{z-index:2}.fc-row .fc-highlight-skeleton{z-index:3}.fc-row .fc-content-skeleton{position:relative;z-index:4;padding-bottom:2px}.fc-row .fc-helper-skeleton{z-index:5}.fc-row .fc-content-skeleton td,.fc-row .fc-helper-skeleton td{background:0 0;border-color:transparent;border-bottom:0}.fc-row .fc-content-skeleton tbody td,.fc-row .fc-helper-skeleton tbody td{border-top:0}.fc-scroller{overflow-y:scroll;overflow-x:hidden}.fc-scroller>*{position:relative;width:100%;overflow:hidden}.fc-event{position:relative;display:block;font-size:.85em;line-height:1.3;border-radius:3px;border:1px solid #3a87ad;background-color:#3a87ad;font-weight:400}.fc-event,.fc-event:hover,.ui-widget .fc-event{color:#fff;text-decoration:none}.fc-event.fc-draggable,.fc-event[href]{cursor:pointer}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-event .fc-bg{z-index:1;background:#fff;opacity:.25}.fc-event .fc-content{position:relative;z-index:2}.fc-event .fc-resizer{position:absolute;z-index:3}.fc-ltr .fc-h-event.fc-not-start,.fc-rtl .fc-h-event.fc-not-end{margin-left:0;border-left-width:0;padding-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-ltr .fc-h-event.fc-not-end,.fc-rtl .fc-h-event.fc-not-start{margin-right:0;border-right-width:0;padding-right:1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-h-event .fc-resizer{top:-1px;bottom:-1px;left:-1px;right:-1px;width:5px}.fc-ltr .fc-h-event .fc-start-resizer,.fc-ltr .fc-h-event .fc-start-resizer:after,.fc-ltr .fc-h-event .fc-start-resizer:before,.fc-rtl .fc-h-event .fc-end-resizer,.fc-rtl .fc-h-event .fc-end-resizer:after,.fc-rtl .fc-h-event .fc-end-resizer:before{right:auto;cursor:w-resize}.fc-ltr .fc-h-event .fc-end-resizer,.fc-ltr .fc-h-event .fc-end-resizer:after,.fc-ltr .fc-h-event .fc-end-resizer:before,.fc-rtl .fc-h-event .fc-start-resizer,.fc-rtl .fc-h-event .fc-start-resizer:after,.fc-rtl .fc-h-event .fc-start-resizer:before{left:auto;cursor:e-resize}.fc-day-grid-event{margin:1px 2px 0;padding:0 1px}.fc-day-grid-event .fc-content{white-space:nowrap;overflow:hidden}.fc-day-grid-event .fc-time{font-weight:700}.fc-day-grid-event .fc-resizer{left:-3px;right:-3px;width:7px}a.fc-more{margin:1px 3px;font-size:.85em;cursor:pointer;text-decoration:none}a.fc-more:hover{text-decoration:underline}.fc-limited{display:none}.fc-day-grid .fc-row{z-index:1}.fc-more-popover{z-index:2;width:220px}.fc-more-popover .fc-event-container{padding:10px}.fc-toolbar{text-align:center;margin-bottom:1em}.fc-toolbar .fc-left{float:left}.fc-toolbar .fc-right{float:right}.fc-toolbar .fc-center{display:inline-block}.fc .fc-toolbar>*>*{float:left;margin-left:.75em}.fc .fc-toolbar>*>:first-child{margin-left:0}.fc-toolbar h2{margin:0}.fc-toolbar button{position:relative}.fc-toolbar .fc-state-hover,.fc-toolbar .ui-state-hover{z-index:2}.fc-toolbar .fc-state-down{z-index:3}.fc-toolbar .fc-state-active,.fc-toolbar .ui-state-active{z-index:4}.fc-toolbar button:focus{z-index:5}.fc-view-container *,.fc-view-container :after,.fc-view-container :before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fc-view,.fc-view>table{position:relative;z-index:1}.fc-basicDay-view .fc-content-skeleton,.fc-basicWeek-view .fc-content-skeleton{padding-top:1px;padding-bottom:1em}.fc-basic-view .fc-body .fc-row{min-height:4em}.fc-row.fc-rigid{overflow:hidden}.fc-row.fc-rigid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-basic-view .fc-day-number,.fc-basic-view .fc-week-number{padding:0 2px}.fc-basic-view td.fc-day-number,.fc-basic-view td.fc-week-number span{padding-top:2px;padding-bottom:2px}.fc-basic-view .fc-week-number{text-align:center}.fc-basic-view .fc-week-number span{display:inline-block;min-width:1.25em}.fc-ltr .fc-basic-view .fc-day-number{text-align:right}.fc-rtl .fc-basic-view .fc-day-number{text-align:left}.fc-day-number.fc-other-month{opacity:.3}.fc-agenda-view .fc-day-grid{position:relative;z-index:2}.fc-agenda-view .fc-day-grid .fc-row{min-height:3em}.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton{padding-top:1px;padding-bottom:1em}.fc .fc-axis{vertical-align:middle;padding:0 4px;white-space:nowrap}.fc-ltr .fc-axis{text-align:right}.fc-rtl .fc-axis{text-align:left}.ui-widget td.fc-axis{font-weight:400}.fc-time-grid,.fc-time-grid-container{position:relative;z-index:1}.fc-time-grid{min-height:100%}.fc-time-grid table{border:0 hidden transparent}.fc-time-grid>.fc-bg{z-index:1}.fc-time-grid .fc-slats,.fc-time-grid>hr{position:relative;z-index:2}.fc-time-grid .fc-bgevent-skeleton,.fc-time-grid .fc-content-skeleton{position:absolute;top:0;left:0;right:0}.fc-time-grid .fc-bgevent-skeleton{z-index:3}.fc-time-grid .fc-highlight-skeleton{z-index:4}.fc-time-grid .fc-content-skeleton{z-index:5}.fc-time-grid .fc-helper-skeleton{z-index:6}.fc-time-grid .fc-slats td{height:1.5em;border-bottom:0}.fc-time-grid .fc-slats .fc-minor td{border-top-style:dotted}.fc-time-grid .fc-slats .ui-widget-content{background:0 0}.fc-time-grid .fc-highlight-container{position:relative}.fc-time-grid .fc-highlight{position:absolute;left:0;right:0}.fc-time-grid .fc-bgevent-container,.fc-time-grid .fc-event-container{position:relative}.fc-ltr .fc-time-grid .fc-event-container{margin:0 2.5% 0 2px}.fc-rtl .fc-time-grid .fc-event-container{margin:0 2px 0 2.5%}.fc-time-grid .fc-bgevent,.fc-time-grid .fc-event{position:absolute;z-index:1}.fc-time-grid .fc-bgevent{left:0;right:0}.fc-v-event.fc-not-start{border-top-width:0;padding-top:1px;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event.fc-not-end{border-bottom-width:0;padding-bottom:1px;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-time-grid-event{overflow:hidden}.fc-time-grid-event .fc-time,.fc-time-grid-event .fc-title{padding:0 1px}.fc-time-grid-event .fc-time{font-size:.85em;white-space:nowrap}.fc-time-grid-event.fc-short .fc-content{white-space:nowrap}.fc-time-grid-event.fc-short .fc-time,.fc-time-grid-event.fc-short .fc-title{display:inline-block;vertical-align:top}.fc-time-grid-event.fc-short .fc-time span{display:none}.fc-time-grid-event.fc-short .fc-time:before{content:attr(data-start)}.fc-time-grid-event.fc-short .fc-time:after{content:"\000A0-\000A0"}.fc-time-grid-event.fc-short .fc-title{font-size:.85em;padding:0}.fc-time-grid-event .fc-resizer{left:0;right:0;bottom:0;height:8px;overflow:hidden;line-height:8px;font-size:11px;font-family:monospace;text-align:center;cursor:s-resize}.fc-time-grid-event .fc-resizer:after{content:"="}.angular-ui-tree-empty{border:1px dashed #bbb;min-height:100px;background-color:#e5e5e5;background-image:-webkit-linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%,#fff),-webkit-linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%,#fff);background-image:-moz-linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%,#fff),-moz-linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%,#fff);background-image:linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%,#fff),linear-gradient(45deg,#fff 25%,transparent 25%,transparent 75%,#fff 75%,#fff);background-size:60px 60px;background-position:0 0,30px 30px}.angular-ui-tree-nodes{position:relative;margin:0;padding:0;list-style:none}.angular-ui-tree-nodes .angular-ui-tree-nodes{padding-left:20px}.angular-ui-tree-node,.angular-ui-tree-placeholder{position:relative;margin:0;padding:0;min-height:20px;line-height:20px}.angular-ui-tree-hidden{display:none}.angular-ui-tree-placeholder{margin:5px 0;padding:0;min-height:30px}.angular-ui-tree-handle{cursor:move;text-decoration:none;font-weight:700;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;min-height:20px;line-height:20px}.angular-ui-tree-drag{position:absolute;pointer-events:none;z-index:999;opacity:.8}.hljs{display:block;overflow-x:auto;padding:.5em;background:#f0f0f0;-webkit-text-size-adjust:none}.hljs,.hljs-subst,.hljs-tag .hljs-title,.nginx .hljs-title{color:#000}.apache .hljs-cbracket,.apache .hljs-tag,.asciidoc .hljs-header,.bash .hljs-variable,.coffeescript .hljs-attribute,.django .hljs-variable,.erlang_repl .hljs-function_or_atom,.haml .hljs-symbol,.hljs-addition,.hljs-constant,.hljs-flow,.hljs-name,.hljs-parent,.hljs-pragma,.hljs-preprocessor,.hljs-rule .hljs-value,.hljs-stream,.hljs-string,.hljs-tag .hljs-value,.hljs-template_tag,.hljs-title,.markdown .hljs-header,.pf .hljs-variable,.ruby .hljs-symbol,.ruby .hljs-symbol .hljs-string,.smalltalk .hljs-class,.tex .hljs-command,.tex .hljs-special,.tp .hljs-variable{color:#800}.asciidoc .hljs-blockquote,.diff .hljs-header,.hljs-annotation,.hljs-chunk,.hljs-comment,.markdown .hljs-blockquote,.smartquote{color:#888}.asciidoc .hljs-bullet,.asciidoc .hljs-link_url,.go .hljs-constant,.hljs-change,.hljs-date,.hljs-hexcolor,.hljs-literal,.hljs-number,.hljs-regexp,.lasso .hljs-variable,.makefile .hljs-variable,.markdown .hljs-bullet,.markdown .hljs-link_url,.smalltalk .hljs-char,.smalltalk .hljs-symbol{color:#080}.apache .hljs-sqbracket,.asciidoc .hljs-attribute,.asciidoc .hljs-link_label,.clojure .hljs-attribute,.coffeescript .hljs-property,.erlang_repl .hljs-reserved,.haml .hljs-bullet,.hljs-array,.hljs-attr_selector,.hljs-decorator,.hljs-deletion,.hljs-doctype,.hljs-envvar,.hljs-filter .hljs-argument,.hljs-important,.hljs-label,.hljs-localvars,.hljs-phony,.hljs-pi,.hljs-prompt,.hljs-pseudo,.hljs-shebang,.lasso .hljs-attribute,.markdown .hljs-link_label,.nginx .hljs-built_in,.ruby .hljs-string,.tex .hljs-formula,.vhdl .hljs-attribute{color:#88f}.apache .hljs-tag,.asciidoc .hljs-strong,.bash .hljs-variable,.css .hljs-tag,.hljs-built_in,.hljs-doctag,.hljs-id,.hljs-keyword,.hljs-request,.hljs-status,.hljs-title,.hljs-type,.hljs-typename,.hljs-winutils,.markdown .hljs-strong,.pf .hljs-variable,.smalltalk .hljs-class,.tex .hljs-command,.tp .hljs-data,.tp .hljs-io{font-weight:700}.asciidoc .hljs-emphasis,.markdown .hljs-emphasis,.tp .hljs-units{font-style:italic}.nginx .hljs-built_in{font-weight:400}.coffeescript .javascript,.javascript .xml,.lasso .markup,.tex .hljs-formula,.xml .css,.xml .hljs-cdata,.xml .javascript,.xml .vbscript{opacity:.5}.moment-picker{position:relative;display:inline-block}.moment-picker .moment-picker-contents{cursor:pointer}.moment-picker .moment-picker-container{color:#404040;min-width:15em;background:#fff;padding:4px;border:1px solid #f0f3f4;border-radius:4px;position:absolute;top:100%;margin-top:4px;margin-left:-.5em;box-shadow:0 2px 4px rgba(0,0,0,.075);z-index:5}.moment-picker .moment-picker-container:after,.moment-picker .moment-picker-container:before{content:'';display:block;width:0;height:0;border:8px solid transparent;border-top:none;position:absolute;top:-9px;left:15px}.moment-picker .moment-picker-container:before{border-bottom-color:#f0f3f4;border-width:9px}.moment-picker .moment-picker-container:after{border-bottom-color:#fff;margin-top:1px;margin-left:1px}.moment-picker table{border-collapse:collapse;border-spacing:0;width:100%;table-layout:fixed}.moment-picker th{font-weight:700}.moment-picker th:first-child,.moment-picker th:last-child{width:2em}.moment-picker td,.moment-picker th{padding:0;text-align:center;min-width:2em;height:2em;text-shadow:0 1px 0 rgba(255,255,255,.9);cursor:pointer;border-radius:4px}.moment-picker td:hover,.moment-picker th:hover{background:#fafbfb;background-image:-webkit-linear-gradient(#f0f3f4,#fafbfb);background-image:-moz-linear-gradient(#f0f3f4,#fafbfb);background-image:-ms-linear-gradient(#f0f3f4,#fafbfb);background-image:-o-linear-gradient(#f0f3f4,#fafbfb);background-image:linear-gradient(#f0f3f4,#fafbfb)}.moment-picker td.selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.3);border-color:#3ca0dd;background:#45b1e8;background-image:-webkit-linear-gradient(#45b1e8,#3097de);background-image:-moz-linear-gradient(#45b1e8,#3097de);background-image:-ms-linear-gradient(#45b1e8,#3097de);background-image:-o-linear-gradient(#45b1e8,#3097de);background-image:linear-gradient(#45b1e8,#3097de)}.moment-picker td.disabled,.moment-picker td.disabled:hover,.moment-picker th.disabled,.moment-picker th.disabled:hover{color:#abbbc7;background:0 0;cursor:default}.moment-picker .year-view td{height:3.4em}.moment-picker .month-view .moment-picker-specific-views th{background:0 0;cursor:default}.moment-picker .month-view td{width:2.1428571429em}.moment-picker .day-view td,.moment-picker .hour-view td{height:2.3333333333em}.moment-picker .minute-view td{height:1.8em}.ps-container{-ms-touch-action:none;touch-action:none;overflow:hidden!important;-ms-overflow-style:none}@supports (-ms-overflow-style:none){.ps-container{overflow:auto!important}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.ps-container{overflow:auto!important}}.ps-container.ps-active-x>.ps-scrollbar-x-rail,.ps-container.ps-active-y>.ps-scrollbar-y-rail{display:block;background-color:transparent}.ps-container.ps-in-scrolling{pointer-events:none}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container>.ps-scrollbar-x-rail{display:none;position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;bottom:3px;height:8px}.ps-container>.ps-scrollbar-x-rail>.ps-scrollbar-x{position:absolute;background-color:#aaa;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;bottom:0;height:8px}.ps-container>.ps-scrollbar-y-rail{display:none;position:absolute;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;opacity:0;-webkit-transition:background-color .2s linear,opacity .2s linear;-moz-transition:background-color .2s linear,opacity .2s linear;-o-transition:background-color .2s linear,opacity .2s linear;transition:background-color .2s linear,opacity .2s linear;right:3px;width:8px}.ps-container>.ps-scrollbar-y-rail>.ps-scrollbar-y{position:absolute;background-color:#aaa;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-transition:background-color .2s linear;-moz-transition:background-color .2s linear;-o-transition:background-color .2s linear;transition:background-color .2s linear;right:0;width:8px}.ps-container:hover.ps-in-scrolling{pointer-events:none}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-x>.ps-scrollbar-x-rail>.ps-scrollbar-x{background-color:#999}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail{background-color:#eee;opacity:.9}.ps-container:hover.ps-in-scrolling.ps-y>.ps-scrollbar-y-rail>.ps-scrollbar-y{background-color:#999}.ps-container:hover>.ps-scrollbar-x-rail,.ps-container:hover>.ps-scrollbar-y-rail{opacity:.6}.ps-container:hover>.ps-scrollbar-x-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-x-rail:hover>.ps-scrollbar-x{background-color:#999}.ps-container:hover>.ps-scrollbar-y-rail:hover{background-color:#eee;opacity:.9}.ps-container:hover>.ps-scrollbar-y-rail:hover>.ps-scrollbar-y{background-color:#999}/*!
+ *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.7.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format('embedded-opentype'),url(../fonts/fontawesome-webfont.woff2?v=4.7.0) format('woff2'),url(../fonts/fontawesome-webfont.woff?v=4.7.0) format('woff'),url(../fonts/fontawesome-webfont.ttf?v=4.7.0) format('truetype'),url(../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-address-card:before,.fa-vcard:before{content:"\f2bb"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.ta-hidden-input{width:1px;height:1px;border:none;margin:0;padding:0;position:absolute;top:-10000px;left:-10000px;opacity:0;overflow:hidden}.ta-root.focussed>.ta-scroll-window.form-control{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ta-editor.ta-html,.ta-scroll-window.form-control{min-height:300px;height:auto;overflow:auto;font-family:inherit;font-size:100%}.ta-scroll-window.form-control{position:relative;padding:0}.ta-scroll-window>.ta-bind{height:auto;min-height:300px;padding:6px 12px}.ta-editor:focus{user-select:text}.ta-resizer-handle-overlay{z-index:100;position:absolute;display:none}.ta-resizer-handle-overlay>.ta-resizer-handle-info{position:absolute;bottom:16px;right:16px;border:1px solid #000;background-color:#fff;padding:0 4px;opacity:.7}.ta-resizer-handle-overlay>.ta-resizer-handle-background{position:absolute;bottom:5px;right:5px;left:5px;top:5px;border:1px solid #000;background-color:rgba(0,0,0,.2)}.ta-resizer-handle-overlay>.ta-resizer-handle-corner{width:10px;height:10px;position:absolute}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tl{top:0;left:0;border-left:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-tr{top:0;right:0;border-right:1px solid #000;border-top:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-bl{bottom:0;left:0;border-left:1px solid #000;border-bottom:1px solid #000}.ta-resizer-handle-overlay>.ta-resizer-handle-corner-br{bottom:0;right:0;border:1px solid #000;cursor:se-resize;background-color:#fff}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.bottom{margin-top:10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}md-backdrop.md-edit-dialog-backdrop{z-index:80}md-edit-dialog{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;position:fixed;z-index:81;background-color:#f9f9f9;border-radius:2px;cursor:default}md-edit-dialog>.md-content{padding:16px 24px 0}md-edit-dialog>.md-content .md-title{color:rgba(0,0,0,.87);margin-bottom:8px}md-edit-dialog>.md-content md-input-container{margin:0;font-size:13px}md-edit-dialog>.md-content md-input-container input{float:none}md-edit-dialog>.md-content md-input-container .md-errors-spacer{min-height:auto;min-width:auto;color:rgba(0,0,0,.54)}md-edit-dialog>.md-content md-input-container .md-errors-spacer .md-char-counter{padding:5px 2px 5px 0}md-edit-dialog>.md-content md-input-container [ng-message]{padding:5px 0 5px 2px}md-edit-dialog>.md-actions{margin:0 16px 8px}md-edit-dialog>.md-actions .md-button{margin:0;min-width:initial}md-edit-dialog>.md-actions .md-button+.md-button{margin-left:8px}.md-table-pagination{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;-webkit-flex-wrap:wrap-reverse;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;box-sizing:border-box;padding:0 24px;font-size:12px;color:rgba(0,0,0,.54);border-top:1px rgba(0,0,0,.12) solid}.md-table-pagination md-select{-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;min-width:64px}.md-table-pagination md-select:not([disabled]):focus .md-select-value{color:rgba(0,0,0,.54)}.md-table-pagination md-select .md-select-value{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}.md-table-pagination md-select .md-select-value span.md-select-icon{-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;margin-right:-6px!important}.md-table-pagination md-select .md-select-value span.md-select-icon:after{top:initial;-webkit-transform:scaleY(.5) scaleX(1);transform:scaleY(.5) scaleX(1)}.md-table-pagination>*{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:56px}.md-table-pagination>.buttons:not(:first-child),.md-table-pagination>.limit-select:not(:first-child){margin-left:32px}.md-table-pagination>.buttons{margin-right:-16px}.md-table-pagination>.buttons>.md-button.md-icon-button{margin:0}.md-table-pagination>.buttons>.label+.md-button.md-icon-button{margin-left:20px}md-select.md-table-select{margin:0}md-select.md-table-select>.md-select-value{padding:0;min-width:0;min-height:24px;border-bottom:0!important}md-select.md-table-select>.md-select-value>span{display:block;height:auto;-webkit-transform:none!important;transform:none!important}md-select.md-table-select>.md-select-value>span>.md-text{display:inherit;height:inherit;-webkit-transform:inherit;transform:inherit}md-select.md-table-select>.md-select-value>span.md-select-icon{display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:24px;margin:0}md-select.md-table-select>.md-select-value>span.md-select-icon:after{top:initial}.md-select-menu-container.md-pagination-select,.md-select-menu-container.md-table-select{margin-left:-2px;border-radius:2px}.md-select-menu-container.md-pagination-select md-content,.md-select-menu-container.md-pagination-select md-select-menu,.md-select-menu-container.md-table-select md-content,.md-select-menu-container.md-table-select md-select-menu{border-radius:inherit}.md-select-menu-container.md-pagination-select md-content,.md-select-menu-container.md-table-select md-content{padding:0}.md-select-menu-container.md-table-select .md-text{font-size:13px}.md-select-menu-container.md-pagination-select .md-text{font-size:12px}md-toolbar.md-table-toolbar{box-shadow:none}md-toolbar.md-table-toolbar.md-default-theme:not(.md-menu-toolbar).md-default,md-toolbar.md-table-toolbar:not(.md-menu-toolbar).md-default{background-color:#fff;color:rgba(0,0,0,.87)}md-toolbar.md-table-toolbar.md-default-theme:not(.md-menu-toolbar).md-default .md-button,md-toolbar.md-table-toolbar:not(.md-menu-toolbar).md-default .md-button{color:rgba(0,0,0,.87)}@media only screen and (max-width:959px) and (min-width:0) and (orientation:landscape){md-toolbar.md-table-toolbar .md-toolbar-tools{height:64px;max-height:initial}}md-toolbar.md-table-toolbar .md-toolbar-tools{padding:0 24px}md-toolbar.md-table-toolbar .md-toolbar-tools md-icon{color:rgba(0,0,0,.54)}md-toolbar.md-table-toolbar .md-toolbar-tools>.md-button.md-icon-button{margin:0}md-toolbar.md-table-toolbar .md-toolbar-tools>.md-button.md-icon-button:first-child{margin-left:-12px}md-toolbar.md-table-toolbar .md-toolbar-tools>.md-button.md-icon-button:last-child{margin-right:-12px}md-card>md-table-container:first-child,md-card>md-toolbar.md-table-toolbar:first-child{border-top-left-radius:2px;border-top-right-radius:2px}md-card>md-table-container:last-child,md-card>md-toolbar.md-table-toolbar:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}md-table-container{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}table.md-table{width:100%;border-spacing:0;overflow:hidden}table.md-table thead.md-head>tr.md-row{height:56px}table.md-table tbody.md-body>tr.md-row,table.md-table tfoot.md-foot>tr.md-row{height:48px}table.md-table thead.md-head+.md-table-progress md-progress-linear{top:-3px}table.md-table .md-table-progress th{padding:0}table.md-table .md-table-progress th md-progress-linear{height:0;transition:opacity 1s}table.md-table .md-table-progress th md-progress-linear.ng-hide{opacity:0}table.md-table .md-table-progress th md-progress-linear>.md-container{height:3px;top:0;transition:none}table.md-table .md-table-progress th md-progress-linear>.md-container>.md-bar{height:3px}table.md-table th.md-column{color:rgba(0,0,0,.54);font-size:12px;font-weight:700;white-space:nowrap}table.md-table th.md-column.md-sort{cursor:pointer}table.md-table th.md-column md-icon{height:16px;width:16px;font-size:16px!important;line-height:16px!important}table.md-table th.md-column md-icon.md-sort-icon{color:rgba(0,0,0,.26);opacity:0;transition:-webkit-transform .25s,opacity .25s;transition:transform .25s,opacity .25s}table.md-table th.md-column md-icon.md-sort-icon.md-asc{-webkit-transform:rotate(0);transform:rotate(0)}table.md-table th.md-column md-icon.md-sort-icon.md-desc{-webkit-transform:rotate(180deg);transform:rotate(180deg)}table.md-table th.md-column md-icon:not(:first-child){margin-left:8px}table.md-table th.md-column md-icon:not(:last-child){margin-right:8px}table.md-table th.md-column.md-active,table.md-table th.md-column.md-active md-icon{color:rgba(0,0,0,.87)}table.md-table th.md-column.md-active md-icon.md-sort-icon,table.md-table th.md-column:hover md-icon.md-sort-icon{opacity:1}table.md-table tr.md-row[data-ng-repeat].ng-leave,table.md-table tr.md-row[ng-repeat].ng-leave,table.md-table tr.md-row[ng\:repeat].ng-leave,table.md-table tr.md-row[x-ng-repeat].ng-leave{display:none}table.md-table.md-row-select tbody.md-body>tr.md-row{transition:background-color .2s}table.md-table.md-row-select tbody.md-body>tr.md-row:not([disabled]):hover{background-color:#eee!important}table.md-table.md-row-select tbody.md-body>tr.md-row.md-selected{background-color:#f5f5f5}table.md-table.md-row-select td.md-cell:first-child,table.md-table.md-row-select th.md-column:first-child{width:20px;padding:0 0 0 24px}table.md-table.md-row-select td.md-cell:nth-child(2),table.md-table.md-row-select th.md-column:nth-child(2){padding:0 24px}table.md-table.md-row-select td.md-cell:nth-child(n+3):nth-last-child(n+2),table.md-table.md-row-select th.md-column:nth-child(n+3):nth-last-child(n+2){padding:0 56px 0 0}table.md-table:not(.md-row-select) td.md-cell:first-child,table.md-table:not(.md-row-select) th.md-column:first-child{padding:0 24px}table.md-table:not(.md-row-select) td.md-cell:nth-child(n+2):nth-last-child(n+2),table.md-table:not(.md-row-select) th.md-column:nth-child(n+2):nth-last-child(n+2){padding:0 56px 0 0}table.md-table td.md-cell,table.md-table th.md-column{vertical-align:middle;text-align:left}table.md-table td.md-cell>*,table.md-table th.md-column>*{vertical-align:middle}table.md-table td.md-cell:last-child,table.md-table th.md-column:last-child{padding:0 24px 0 0}table.md-table td.md-cell.md-clickable,table.md-table th.md-column.md-clickable{cursor:pointer}table.md-table td.md-cell.md-clickable:focus,table.md-table th.md-column.md-clickable:focus{outline:0}table.md-table td.md-cell.md-numeric,table.md-table th.md-column.md-numeric{text-align:right}table.md-table td.md-cell md-checkbox,table.md-table th.md-column md-checkbox{margin:0;width:20px}table.md-table td.md-cell{color:rgba(0,0,0,.87);font-size:13px;border-top:1px rgba(0,0,0,.12) solid}table.md-table td.md-cell.md-numeric md-select{-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end}table.md-table td.md-cell.md-numeric md-select .md-select-value{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto}table.md-table td.md-cell.md-placeholder{color:rgba(0,0,0,.26)}table.md-table td.md-cell md-select>.md-select-value>span.md-select-icon{-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;color:rgba(0,0,0,.54);width:18px;text-align:right}table.md-table td.md-cell md-select>.md-select-value>span.md-select-icon:after{-webkit-transform:scaleY(.4) scaleX(.8);transform:scaleY(.4) scaleX(.8)}/*!
+ * angular-toasty
+ */@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:url(data:font/ttf;base64,AAEAAAASAQAABAAgR0RFRgUwBPIAAHGoAAAATEdQT1PO9uRJAABx9AAADQ5HU1VClCaeUgAAfwQAAACIT1MvMqCnsaYAAGkIAAAAYGNtYXDigyFaAABqUAAAAzhjdnQgJEEG5QAAcCAAAABMZnBnbWf0XKsAAG2IAAABvGdhc3AACAATAABxnAAAAAxnbHlmCBgu+gAAASwAAGImaGRteAQC+OIAAGloAAAA6GhlYWT4RqsOAABlNAAAADZoaGVhCroGfQAAaOQAAAAkaG10eIFaUZ8AAGVsAAADdmxvY2E6/CGoAABjdAAAAb5tYXhwAw4C+QAAY1QAAAAgbmFtZRBvLKkAAHBsAAABEHBvc3T/bQBkAABxfAAAACBwcmVwdKCP7AAAb0QAAADbAAUAZAAAAygFsAADAAYACQAMAA8AcbIMEBEREjmwDBCwANCwDBCwBtCwDBCwCdCwDBCwDdAAsABFWLACLxuxAhw+WbAARViwAC8bsQAQPlmyBAIAERI5sgUCABESObIHAgAREjmyCAIAERI5sQoM9LIMAgAREjmyDQIAERI5sAIQsQ4M9DAxISERIQMRAQERAQMhATUBIQMo/TwCxDb+7v66AQzkAgP+/gEC/f0FsPqkBQf9fQJ3+xECeP1eAl6IAl4AAgCg//UBewWwAAMADAAvALAARViwAi8bsQIcPlmwAEVYsAsvG7ELED5ZsgYFCitYIdgb9FmyAQYCERI5MDEBIwMzAzQ2MhYUBiImAVunDcLJN2w4OGw3AZsEFfqtLT09Wjs7AAIAiAQSAiMGAAAEAAkAGQCwAy+yAgoDERI5sAIvsAfQsAMQsAjQMDEBAyMTMwUDIxMzARUebwGMAQ4ebwGMBXj+mgHuiP6aAe4AAgB3AAAE0wWwABsAHwCPALAARViwDC8bsQwcPlmwAEVYsBAvG7EQHD5ZsABFWLACLxuxAhA+WbAARViwGi8bsRoQPlmyHQwCERI5fLAdLxiyAAMKK1gh2Bv0WbAE0LAdELAG0LAdELAL0LALL7IIAworWCHYG/RZsAsQsA7QsAsQsBLQsAgQsBTQsB0QsBbQsAAQsBjQsAgQsB7QMDEBIQMjEyM1IRMhNSETMwMhEzMDMxUjAzMVIwMjAyETIQL9/vhQj1DvAQlF/v4BHVKPUgEIUpBSzOdF4ftQkJ4BCEX++AGa/mYBmokBYosBoP5gAaD+YIv+non+ZgIjAWIAAAEAbv8wBBEGnAArAGYAsABFWLAJLxuxCRw+WbAARViwIi8bsSIQPlmyAiIJERI5sAkQsAzQsAkQsBDQsAkQshMBCitYIdgb9FmwAhCyGQEKK1gh2Bv0WbAiELAf0LAiELAm0LAiELIpAQorWCHYG/RZMDEBNCYnJiY1NDY3NTMVFhYVIzQmIyIGFRQWBBYWFRQGBxUjNSYmNTMUFjMyNgNYgZnVw7+nlai7uIZyd36FATGrUcu3lLrTuZKGg5YBd1x+M0HRoaTSFNvcF+zNjaZ7bmZ5Y3eeaqnOE7+/EefGi5Z+AAUAaf/rBYMFxQANABoAJgA0ADgAeACwAEVYsAMvG7EDHD5ZsABFWLAjLxuxIxA+WbADELAK0LAKL7IRBAorWCHYG/RZsAMQshgECitYIdgb9FmwIxCwHdCwHS+wIxCyKgQKK1gh2Bv0WbAdELIxBAorWCHYG/RZsjUjAxESObA1L7I3AyMREjmwNy8wMRM0NjMyFhUVFAYjIiY1FxQWMzI2NTU0JiIGFQE0NiAWFRUUBiAmNRcUFjMyNjU1NCYjIgYVBScBF2mng4Wlp4GCqopYSkdXVpRWAjunAQaop/78qopYSkhWV0lHWf4HaQLHaQSYg6qriEeEp6eLB05lYlVJTmZmUvzRg6moi0eDqaeLBk9lY1VKT2RjVPNCBHJCAAMAZf/sBPMFxAAeACcAMwCFALAARViwCS8bsQkcPlmwAEVYsBwvG7EcED5ZsABFWLAYLxuxGBA+WbIiHAkREjmyKgkcERI5sgMiKhESObIQKiIREjmyEQkcERI5shMcCRESObIZHAkREjmyFhEZERI5sBwQsh8BCitYIdgb9FmyIR8RERI5sAkQsjEBCitYIdgb9FkwMRM0NjcmJjU0NjMyFhUUBgcHATY1MxQHFyMnBgYjIiQFMjcBBwYVFBYDFBc3NjY1NCYjIgZldaVhQsSolsRZb2sBRESne9DeYUrHZ9X+/gHXk3r+nSGnmSJ2dkQyZExSYAGHabB1dpBHpryvhViVUk/+fYKf/6j5c0JF4ktwAakYe4J2jgPlYJBTMFc+Q1lvAAEAZwQhAP0GAAAEABAAsAMvsgIFAxESObACLzAxEwMjEzP9FYEBlQWR/pAB3wABAIX+KgKVBmsAEQAJALAOL7AELzAxEzQSEjcXBgIDBxATFhcHJicChXnwgSaSuwkBjVV1JoV57AJP4gGgAVRGenD+NP7jVf5+/uSqYHFKrgFUAAABACb+KgI3BmsAEQAJALAOL7AELzAxARQCAgcnNhITNTQCAic3FhISAjd18YQnmrsCWJ1iJ4TvdwJF3/5n/qZJcXYB8QEvINIBaQEeUHFJ/qr+ZAABABwCYQNVBbAADgAgALAARViwBC8bsQQcPlmwANAZsAAvGLAJ0BmwCS8YMDEBJTcFAzMDJRcFEwcDAycBSv7SLgEuCZkKASku/s3GfLq0fQPXWpdwAVj+o26YW/7xXgEg/udbAAABAE4AkgQ0BLYACwAaALAJL7AA0LAJELIGAQorWCHYG/RZsAPQMDEBIRUhESMRITUhETMCngGW/mq6/moBlroDDa/+NAHMrwGpAAEAHf7eATQA2wAIABcAsAkvsgQFCitYIdgb9FmwANCwAC8wMRMnNjc1MxUUBoZpXgS1Y/7eSIOLp5FlygAAAQAlAh8CDQK2AAMAEQCwAi+yAQEKK1gh2Bv0WTAxASE1IQIN/hgB6AIflwABAJD/9QF2ANEACQAbALAARViwBy8bsQcQPlmyAgUKK1gh2Bv0WTAxNzQ2MhYVFAYiJpA5cjs7cjlhMEBAMC4+PgABABL/gwMQBbAAAwATALAAL7AARViwAi8bsQIcPlkwMRcjATOxnwJgnn0GLQAAAgBz/+wECgXEAA0AGwA5ALAARViwCi8bsQocPlmwAEVYsAMvG7EDED5ZsAoQshEBCitYIdgb9FmwAxCyGAEKK1gh2Bv0WTAxARACIyICAzUQEjMyEhMnNCYjIgYHERQWMzI2NwQK3uzp4ATe7eveA7mEj46CAomLiYUDAm3+u/7EATUBM/cBQQE4/tP+xg3r19be/tjs4dTkAAEAqgAAAtkFtwAGADkAsABFWLAFLxuxBRw+WbAARViwAC8bsQAQPlmyBAAFERI5sAQvsgMBCitYIdgb9FmyAgMFERI5MDEhIxEFNSUzAtm6/osCEh0E0YmoxwAAAQBdAAAEMwXEABcATQCwAEVYsBAvG7EQHD5ZsABFWLAALxuxABA+WbIXAQorWCHYG/RZsALQsgMQFxESObAQELIJAQorWCHYG/RZsBAQsAzQshUXEBESOTAxISE1ATY2NTQmIyIGFSM0JDMyFhUUAQEhBDP8RgH4cFWKc4qZuQED2cvs/u7+egLbhQIwf59VcpKdjMn41bHX/tf+WQABAF7/7AP5BcQAJgB4ALAARViwDS8bsQ0cPlmwAEVYsBkvG7EZED5ZsgANGRESObAAL7LPAAFdsp8AAXGyLwABXbJfAAFysA0QsgYBCitYIdgb9FmwDRCwCdCwABCyJgEKK1gh2Bv0WbITJgAREjmwGRCwHNCwGRCyHwEKK1gh2Bv0WTAxATM2NjUQIyIGFSM0NjMyFhUUBgcWFhUUBCAkNTMUFjMyNjU0JicjAYaLg5b/eI+5/cPO6ntqeIP/AP5m/v+6ln6GjpyTiwMyAoZyAQCJca3l2sJfsiwmsH/E5t62c4qMg3+IAgACADUAAARQBbAACgAOAEkAsABFWLAJLxuxCRw+WbAARViwBC8bsQQQPlmyAQkEERI5sAEvsgIBCitYIdgb9FmwBtCwARCwC9CyCAYLERI5sg0JBBESOTAxATMVIxEjESE1ATMBIREHA4bKyrr9aQKMxf2BAcUWAemX/q4BUm0D8fw5AsooAAEAmv/sBC0FsAAdAGEAsABFWLABLxuxARw+WbAARViwDS8bsQ0QPlmwARCyBAEKK1gh2Bv0WbIHDQEREjmwBy+yGgEKK1gh2Bv0WbIFBxoREjmwDRCwEdCwDRCyFAEKK1gh2Bv0WbAHELAd0DAxExMhFSEDNjMyEhUUAiMiJiczFhYzMjY1NCYjIgcHzkoC6v2zLGuIx+rz2sH0Ea8RkHaBk5+EeUUxAtoC1qv+cz/++eDh/v3WvX1/sJuSsTUoAAIAhP/sBBwFsQAUACEATgCwAEVYsAAvG7EAHD5ZsABFWLANLxuxDRA+WbAAELIBAQorWCHYG/RZsgcNABESObAHL7IVAQorWCHYG/RZsA0QshwBCitYIdgb9FkwMQEVIwYEBzYzMhIVFAIjIgA1NRAAJQMiBgcVFBYzMjY1NCYDTyLY/wAUc8e+4/XO0f78AVcBU9JfoB+ieX2PkQWxnQT44YT+9NTh/vIBQf1HAZIBqQX9cHJWRLTcuJWWuQABAE0AAAQlBbAABgAyALAARViwBS8bsQUcPlmwAEVYsAEvG7EBED5ZsAUQsgMBCitYIdgb9FmyAAMFERI5MDEBASMBITUhBCX9pcICWfzsA9gFSPq4BRiYAAADAHD/7AQOBcQAFwAhACsAYQCwAEVYsBUvG7EVHD5ZsABFWLAJLxuxCRA+WbInCRUREjmwJy+yzycBXbIaAQorWCHYG/RZsgMaJxESObIPJxoREjmwCRCyHwEKK1gh2Bv0WbAVELIiAQorWCHYG/RZMDEBFAYHFhYVFAYjIiY1NDY3JiY1NDYzMhYDNCYiBhQWMzI2ASIGFRQWMjY0JgPsc2Jyhf/Q0v2BcmFw7MHA7Zeb+peTg4KU/upth4XehYoENG2qMDG8d73g4bx2vjEwqmy42Nj8oXqamPiOjwQah3RviYnejAAAAgBk//8D+AXEABcAJABYALAARViwCy8bsQscPlmwAEVYsBMvG7ETED5ZsgMTCxESObADL7IAAwsREjmwExCyFAEKK1gh2Bv0WbADELIYAQorWCHYG/RZsAsQsh8BCitYIdgb9FkwMQEGBiMiJiY1NDY2MzISERUQAAUjNTM2NiUyNjc1NCYjIgYVFBYDPjqhYH67Zm/MiNj5/rD+rSQn5fb+7l2dJJ55epSPAoBFVHzhiJLqfP69/uk2/lf+eQWcBOf6clRKtuS7mZXBAP//AIb/9QFtBEQAJgAS9gABBwAS//cDcwAQALAARViwDS8bsQ0YPlkwMf//ACn+3gFVBEQAJwAS/98DcwEGABAMAAAQALAARViwAy8bsQMYPlkwMQABAEgAwwN6BEoABgAWALAARViwBS8bsQUYPlmwAtCwAi8wMQEFFQE1ARUBCAJy/M4DMgKE/cQBe5IBesQAAAIAmAGPA9oDzwADAAcAJQCwBy+wA9CwAy+yAAEKK1gh2Bv0WbAHELIEAQorWCHYG/RZMDEBITUhESE1IQPa/L4DQvy+A0IDLqH9wKAAAAEAhgDEA9wESwAGABYAsABFWLACLxuxAhg+WbAF0LAFLzAxAQE1ARUBNQMb/WsDVvyqAooBA77+hpL+hcAAAgBL//UDdgXEABgAIQBRALAARViwEC8bsRAcPlmwAEVYsCAvG7EgED5ZshsFCitYIdgb9FmyABsQERI5sgQQABESObAQELIJAQorWCHYG/RZsBAQsAzQshUAEBESOTAxATY2Nzc2NTQmIyIGFSM2NjMyFhUUBwcGFQM0NjIWFAYiJgFlAjJNg1RuaWZ8uQLjtr3Tom1JwTdsODhsNwGad4pUh19taXdsW6LHy7GvqmxRmP7DLT09Wjs7AAACAGr+OwbWBZcANQBCAGgAsDIvsABFWLAILxuxCBA+WbAD0LIPMggREjmwDy+yBQgPERI5sAgQsjkCCitYIdgb9FmwFdCwMhCyGwIKK1gh2Bv0WbAIELAq0LAqL7IjAgorWCHYG/RZsA8QskACCitYIdgb9FkwMQEGAiMiJwYGIyImNzYSNjMyFhcDBjMyNjcSACEiBAIHBhIEMzI2NxcGBiMiJAITEhIkMzIEEgEGFjMyNjc3EyYjIgYGygzYtbs1NotKjpITD3m/aVGAUDQTk3GMBhP+uf6yyf7ItAsMkAEn0Vq1PCU+zWn6/pizDAzeAXzv+QFkrvvyDlFYPG8kAS44QHWZAfby/uioVVPozaUBA5QrP/3W5+C0AYUBmMf+iPb4/pPBLCNzJzLhAacBGwETAbfv4P5a/pCOmGZfCQH3He4AAAIAHAAABR0FsAAHAAoARgCwAEVYsAQvG7EEHD5ZsABFWLACLxuxAhA+WbAARViwBi8bsQYQPlmyCQQCERI5sAkvsgABCitYIdgb9FmyCgQCERI5MDEBIQMjATMBIwEhAwPN/Z6JxgIsqAItxf1NAe/4AXz+hAWw+lACGgKpAAMAqQAABIgFsAAOABYAHwBVALAARViwAS8bsQEcPlmwAEVYsAAvG7EAED5ZshcAARESObAXL7IPAQorWCHYG/RZsggPFxESObAAELIQAQorWCHYG/RZsAEQsh8BCitYIdgb9FkwMTMRITIWFRQGBxYWFRQGIwERITI2NRAhJSEyNjU0JiMhqQHc7e90ZHaJ/uj+xwE9hpv+4v7AASJ+l4yP/uQFsMTAZp0rIbmAxOACqf30i3oBB5p+bHhtAAABAHf/7ATYBcQAHABFALAARViwCy8bsQscPlmwAEVYsAMvG7EDED5ZsAsQsA/QsAsQshIBCitYIdgb9FmwAxCyGQEKK1gh2Bv0WbADELAc0DAxAQYEIyAAETU0EiQzMgAXIyYmIyICFRUUEjMyNjcE2Bv+4e7+/v7JkQEKr+gBGBfBGaeWuNHGsqCrHAHO5/sBcgE2jMsBNKX+/eWunP7w+43t/uiRtAACAKkAAATGBbAACwAVADkAsABFWLABLxuxARw+WbAARViwAC8bsQAQPlmwARCyDAEKK1gh2Bv0WbAAELINAQorWCHYG/RZMDEzESEyBBIXFRQCBAcDETMyEjU1NAInqQGbvgEknwGf/tnE08re9+nWBbCo/srJXc7+yqYCBRL7iwEU/1X4ARMCAAABAKkAAARGBbAACwBOALAARViwBi8bsQYcPlmwAEVYsAQvG7EEED5ZsgsEBhESObALL7IAAQorWCHYG/RZsAQQsgIBCitYIdgb9FmwBhCyCAEKK1gh2Bv0WTAxASERIRUhESEVIREhA+D9iQLd/GMDk/0tAncCof38nQWwnv4sAAEAqQAABC8FsAAJAEAAsABFWLAELxuxBBw+WbAARViwAi8bsQIQPlmyCQIEERI5sAkvsgABCitYIdgb9FmwBBCyBgEKK1gh2Bv0WTAxASERIxEhFSERIQPM/Z3AA4b9OgJjAoP9fQWwnv4OAAEAev/sBNwFxAAfAGIAsABFWLALLxuxCxw+WbAARViwAy8bsQMQPlmwCxCwD9CwCxCyEQEKK1gh2Bv0WbADELIYAQorWCHYG/RZsh4DCxESObAeL7QPHh8eAl20Px5PHgJdsh0BCitYIdgb9FkwMSUGBCMiJAInNRAAITIEFyMCISICAxUUEjMyNjcRITUhBNxK/vewsv7slwIBMwEW5AEWH8A2/t7BxwHgv2yiNf6vAhC/ammnATTLfwFJAWrp1gEh/vH+/3f1/t8wOQFHnAABAKkAAAUIBbAACwBVALAARViwBi8bsQYcPlmwAEVYsAovG7EKHD5ZsABFWLAALxuxABA+WbAARViwBC8bsQQQPlmwABCwCdCwCS+ynwkBcrIvCQFdsgIBCitYIdgb9FkwMSEjESERIxEzESERMwUIwf0iwMAC3sECof1fBbD9jgJyAAABALcAAAF3BbAAAwAdALAARViwAi8bsQIcPlmwAEVYsAAvG7EAED5ZMDEhIxEzAXfAwAWwAAABADX/7APMBbAADwAuALAARViwAC8bsQAcPlmwAEVYsAUvG7EFED5ZsAnQsAUQsgwBCitYIdgb9FkwMQEzERQGIyImNTMUFjMyNjcDC8H70dnywImCd5MBBbD7+dHs3sh9jJaHAAABAKkAAAUFBbAACwB0ALAARViwBS8bsQUcPlmwAEVYsAcvG7EHHD5ZsABFWLACLxuxAhA+WbAARViwCy8bsQsQPlmyAAIFERI5QBFKAFoAagB6AIoAmgCqALoACF2yOQABXbIGBQIREjlAEzYGRgZWBmYGdgaGBpYGpga2BgldMDEBBxEjETMRATMBASMCG7LAwAKH6P3DAmrmAqW5/hQFsP0wAtD9ffzTAAEAqQAABBwFsAAFACgAsABFWLAELxuxBBw+WbAARViwAi8bsQIQPlmyAAEKK1gh2Bv0WTAxJSEVIREzAWoCsvyNwZ2dBbAAAAEAqQAABlIFsAAOAFkAsABFWLAALxuxABw+WbAARViwAi8bsQIcPlmwAEVYsAQvG7EEED5ZsABFWLAILxuxCBA+WbAARViwDC8bsQwQPlmyAQAEERI5sgcABBESObIKAAQREjkwMQkCMxEjERMBIwETESMRAaEB3AHc+cAS/iKT/iMTwAWw+1wEpPpQAjcCZPtlBJj9n/3JBbAAAAEAqQAABQgFsAAJAEyyAQoLERI5ALAARViwBS8bsQUcPlmwAEVYsAgvG7EIHD5ZsABFWLAALxuxABA+WbAARViwAy8bsQMQPlmyAgUAERI5sgcFABESOTAxISMBESMRMwERMwUIwf0jwcEC378EYvueBbD7mQRnAAIAdv/sBQkFxAARAB8AOQCwAEVYsA0vG7ENHD5ZsABFWLAELxuxBBA+WbANELIVAQorWCHYG/RZsAQQshwBCitYIdgb9FkwMQEUAgQjIiQCJzU0EiQzMgQSFScQAiMiAgcVFBIzMhI3BQmQ/viwrP72kwKSAQusrwELkL/Qu7bRA9O5uswDAqnW/sGoqQE5zmnSAUKrqf6/1QIBAwEV/uv2a/v+4QEP/QAAAgCpAAAEwAWwAAoAEwBNsgoUFRESObAKELAM0ACwAEVYsAMvG7EDHD5ZsABFWLABLxuxARA+WbILAwEREjmwCy+yAAEKK1gh2Bv0WbADELISAQorWCHYG/RZMDEBESMRITIEFRQEIyUhMjY1NCYnIQFpwAIZ7wEP/vf3/qkBWZqkpI/+nAI6/cYFsPTJ1OWdkYmCnAMAAgBt/woFBgXEABUAIgBNsggjJBESObAIELAZ0ACwAEVYsBEvG7ERHD5ZsABFWLAILxuxCBA+WbIDCBEREjmwERCyGQEKK1gh2Bv0WbAIELIgAQorWCHYG/RZMDEBFAIHBQclBiMiJAInNTQSJDMyBBIVJxACIyICBxUUEiASNwUBhnkBBIP+zUhQrP72kwKSAQussAELkMDNvrXRA9EBdMwDAqnT/s9WzHn0EqkBOc5p0gFCq6r+wdUBAQEBF/7r9mv6/uABD/0AAAIAqAAABMkFsAAOABcAYbIFGBkREjmwBRCwFtAAsABFWLAELxuxBBw+WbAARViwAi8bsQIQPlmwAEVYsA0vG7ENED5ZshAEAhESObAQL7IAAQorWCHYG/RZsgsABBESObAEELIWAQorWCHYG/RZMDEBIREjESEyBBUUBgcBFSMBITI2NTQmJyECv/6qwQHi9gEJk4MBVs79bgEnj6mhmP7aAk39swWw4NaIyjL9lgwC6pR8h5ABAAABAFD/7ARyBcQAJgBhsgAnKBESOQCwAEVYsAYvG7EGHD5ZsABFWLAaLxuxGhA+WbAGELAL0LAGELIOAQorWCHYG/RZsiYaBhESObAmELIUAQorWCHYG/RZsBoQsB/QsBoQsiIBCitYIdgb9FkwMQEmJjU0JDMyFhYVIzQmIyIGFRQWBBYWFRQEIyIkJjUzFBYzMjY0JgJW9+EBE9yW64HBqJmOn5cBa81j/uznlv78jcHDo5iilgKJR8+YrOF0zHmEl31vWXtme6RvsdVzyH+EmXzWdQAAAQAxAAAElwWwAAcALgCwAEVYsAYvG7EGHD5ZsABFWLACLxuxAhA+WbAGELIAAQorWCHYG/RZsATQMDEBIREjESE1IQSX/iy//i0EZgUS+u4FEp4AAQCM/+wEqgWwABIAPLIFExQREjkAsABFWLAALxuxABw+WbAARViwCS8bsQkcPlmwAEVYsAUvG7EFED5Zsg4BCitYIdgb9FkwMQERBgAHByIAJxEzERQWMzI2NREEqgH+/9wz7/7kAr6uoaOtBbD8Is7++hACAQLiA+D8Jp6vrp4D2wAAAQAcAAAE/QWwAAYAOLIABwgREjkAsABFWLABLxuxARw+WbAARViwBS8bsQUcPlmwAEVYsAMvG7EDED5ZsgABAxESOTAxJQEzASMBMwKLAaDS/eSq/eXR/wSx+lAFsAAAAQA9AAAG7QWwABIAWQCwAEVYsAMvG7EDHD5ZsABFWLAILxuxCBw+WbAARViwES8bsREcPlmwAEVYsAovG7EKED5ZsABFWLAPLxuxDxA+WbIBAwoREjmyBgMKERI5sg0DChESOTAxARc3ATMBFzcTMwEjAScHASMBMwHjHCkBIKIBGSgf4sH+n6/+1BcX/smv/qDAAcvArQP4/AiwxAPk+lAEJW9v+9sFsAABADkAAATOBbAACwBrALAARViwAS8bsQEcPlmwAEVYsAovG7EKHD5ZsABFWLAELxuxBBA+WbAARViwBy8bsQcQPlmyAAEEERI5QAmGAJYApgC2AARdsgYBBBESOUAJiQaZBqkGuQYEXbIDAAYREjmyCQYAERI5MDEBATMBASMBASMBATMChAFd4v40Adfk/pr+mOMB2P4z4QOCAi79Lv0iAjj9yALeAtIAAAEADwAABLsFsAAIADEAsABFWLABLxuxARw+WbAARViwBy8bsQccPlmwAEVYsAQvG7EEED5ZsgABBBESOTAxAQEzAREjEQEzAmUBfNr+CsD+CtwC1QLb/G/94QIfA5EAAAEAVgAABHoFsAAJAEQAsABFWLAHLxuxBxw+WbAARViwAi8bsQIQPlmyAAEKK1gh2Bv0WbIEAAIREjmwBxCyBQEKK1gh2Bv0WbIJBQcREjkwMSUhFSE1ASE1IRUBOQNB+9wDHvzvA/ednZAEgp6NAAABAJL+yAILBoAABwAiALAEL7AHL7IAAQorWCHYG/RZsAQQsgMBCitYIdgb9FkwMQEjETMVIREhAgu/v/6HAXkF6Pl4mAe4AAABACj/gwM4BbAAAwATALACL7AARViwAC8bsQAcPlkwMRMzASMosAJgsAWw+dMAAQAJ/sgBgwaAAAcAJQCwAi+wAS+wAhCyBQEKK1gh2Bv0WbABELIGAQorWCHYG/RZMDETIREhNTMRIwkBev6GwcEGgPhImAaIAAABAEAC2QMUBbAABgAnsgAHCBESOQCwAEVYsAMvG7EDHD5ZsADQsgEHAxESObABL7AF0DAxAQMjATMBIwGqvqwBK38BKqsEu/4eAtf9KQABAAT/aQOYAAAAAwAbALAARViwAy8bsQMQPlmyAAEKK1gh2Bv0WTAxBSE1IQOY/GwDlJeXAAABADkE2AHaBf4AAwAjALABL7IPAQFdsADQGbAALxiwARCwAtCwAi+0DwIfAgJdMDEBIwEzAdqf/v7fBNgBJgAAAgBt/+wD6gROAB4AKAB5shcpKhESObAXELAg0ACwAEVYsBcvG7EXGD5ZsABFWLAELxuxBBA+WbAARViwAC8bsQAQPlmyAhcEERI5sgsXBBESObALL7AXELIPAQorWCHYG/RZshILFxESObAEELIfAQorWCHYG/RZsAsQsiMBCitYIdgb9FkwMSEmJwYjIiY1NCQzMzU0JiMiBhUjNDY2MzIWFxEUFxUlMjY3NSMgFRQWAygQCoGzoM0BAem0dHFjhrpzxXa71AQm/gtXnCOR/qx0IFKGtYupu1Vhc2RHUZdYu6T+DpVYEI1aSN7HV2IAAgCM/+wEIAYAAA4AGQBkshIaGxESObASELAD0ACwCC+wAEVYsAwvG7EMGD5ZsABFWLADLxuxAxA+WbAARViwBi8bsQYQPlmyBQgDERI5sgoMAxESObAMELISAQorWCHYG/RZsAMQshcBCitYIdgb9FkwMQEUAiMiJwcjETMRNiASESc0JiMiBxEWMzI2BCDkwM1wCaq5cAGK4bmSibdQVbSFlAIR+P7TkX0GAP3Di/7W/v0Fvc6q/iyqzgABAFz/7APsBE4AHQBJshAeHxESOQCwAEVYsBAvG7EQGD5ZsABFWLAILxuxCBA+WbIAAQorWCHYG/RZsAgQsAPQsBAQsBTQsBAQshcBCitYIdgb9FkwMSUyNjczDgIjIgARNTQ2NjMyFhcjJiYjIgYVFRQWAj5jlAivBXbFbt3++3TZlLbxCK8Ij2mNm5qDeFpdqGQBJwEAH572iNquaYfLwCO7ygAAAgBf/+wD8AYAAA8AGgBkshgbHBESObAYELAD0ACwBi+wAEVYsAMvG7EDGD5ZsABFWLAMLxuxDBA+WbAARViwCC8bsQgQPlmyBQMMERI5sgoDDBESObAMELITAQorWCHYG/RZsAMQshgBCitYIdgb9FkwMRM0EjMyFxEzESMnBiMiAjUXFBYzMjcRJiMiBl/sv75vuaoJb8a87bmYhrBRU6yImAIm+QEvggI0+gB0iAE0+Ae40J4B8ZnSAAACAF3/7APzBE4AFQAdAGmyCB4fERI5sAgQsBbQALAARViwCC8bsQgYPlmwAEVYsAAvG7EAED5ZshoIABESObAaL7S/Gs8aAl2yDAEKK1gh2Bv0WbAAELIQAQorWCHYG/RZshMIABESObAIELIWAQorWCHYG/RZMDEFIgA1NTQ2NjMyEhEVIRYWMzI2NxcGASIGByE1JiYCTdz+7HvdgdPq/SMEs4piiDNxiP7ZcJgSAh4IiBQBIfIiof2P/ur+/U2gxVBCWNEDyqOTDo2bAAEAPAAAAsoGFQAVAGOyDxYXERI5ALAARViwCC8bsQgePlmwAEVYsAMvG7EDGD5ZsABFWLARLxuxERg+WbAARViwAC8bsQAQPlmwAxCyAQEKK1gh2Bv0WbAIELINAQorWCHYG/RZsAEQsBPQsBTQMDEzESM1MzU0NjMyFwcmIyIGFRUzFSMR56uruqpAPwovNVpi5+cDq49vrr4RlglpYnKP/FUAAgBg/lYD8gROABkAJACDsiIlJhESObAiELAL0ACwAEVYsAMvG7EDGD5ZsABFWLAGLxuxBhg+WbAARViwCy8bsQsSPlmwAEVYsBcvG7EXED5ZsgUDFxESObIPFwsREjmwCxCyEQEKK1gh2Bv0WbIVAxcREjmwFxCyHQEKK1gh2Bv0WbADELIiAQorWCHYG/RZMDETNBIzMhc3MxEUBiMiJic3FjMyNjU1BiMiAjcUFjMyNxEmIyIGYOrBxm8JqfnSdeA7YHesh5dvwL7rupaHr1JVqoeYAib9ASuMePvg0vJkV2+TmIpdgAEy87fRnwHum9IAAAEAjAAAA98GAAARAEmyChITERI5ALAQL7AARViwAi8bsQIYPlmwAEVYsAUvG7EFED5ZsABFWLAOLxuxDhA+WbIAAgUREjmwAhCyCgEKK1gh2Bv0WTAxATYzIBMRIxEmJiMiBgcRIxEzAUV7xQFXA7kBaW9aiCa5uQO3l/59/TUCzHVwYE78/QYAAAIAjQAAAWgFxAADAAwAPrIGDQ4REjmwBhCwAdAAsABFWLACLxuxAhg+WbAARViwAC8bsQAQPlmwAhCwCtCwCi+yBgUKK1gh2Bv0WTAxISMRMwM0NjIWFAYiJgFVubnIN2w4OGw3BDoBHy0+Plo8PAAC/7/+SwFZBcQADAAWAEmyEBcYERI5sBAQsADQALAARViwDC8bsQwYPlmwAEVYsAMvG7EDEj5ZsggBCitYIdgb9FmwDBCwFdCwFS+yEAUKK1gh2Bv0WTAxAREQISInNRYzMjY1EQM0NjMyFhQGIiYBS/7lPTQgND5BEzc1Njg4bDYEOvtJ/sgSlAhDUwS7AR8sPz5aPDwAAAEAjQAABAwGAAAMAHUAsABFWLAELxuxBB4+WbAARViwCC8bsQgYPlmwAEVYsAIvG7ECED5ZsABFWLALLxuxCxA+WbIACAIREjlAFToASgBaAGoAegCKAJoAqgC6AMoACl2yBggCERI5QBU2BkYGVgZmBnYGhgaWBqYGtgbGBgpdMDEBBxEjETMRNwEzAQEjAbp0ubljAVHh/lsB1tkB9Xn+hAYA/F93AWT+PP2KAAEAnAAAAVUGAAADAB0AsABFWLACLxuxAh4+WbAARViwAC8bsQAQPlkwMSEjETMBVbm5BgAAAAEAiwAABngETgAdAHeyBB4fERI5ALAARViwAy8bsQMYPlmwAEVYsAgvG7EIGD5ZsABFWLAALxuxABg+WbAARViwCy8bsQsQPlmwAEVYsBQvG7EUED5ZsABFWLAbLxuxGxA+WbIBCAsREjmyBQgLERI5sAgQshABCitYIdgb9FmwGNAwMQEXNjMyFzY2MyATESMRNCYjIgYHESMRNCMiBxEjEQE6BXfK41I2rXYBZAa5an1niAu657ZDuQQ6eIyuTmD+h/0rAsp0c3to/TICxeyb/OoEOgABAIwAAAPfBE4AEQBTsgsSExESOQCwAEVYsAMvG7EDGD5ZsABFWLAALxuxABg+WbAARViwBi8bsQYQPlmwAEVYsA8vG7EPED5ZsgEDBhESObADELILAQorWCHYG/RZMDEBFzYzIBMRIxEmJiMiBgcRIxEBOwZ8yAFXA7kBaW9aiCa5BDqInP59/TUCzHVwYE78/QQ6AAACAFv/7AQ0BE4ADwAbAEOyDBwdERI5sAwQsBPQALAARViwBC8bsQQYPlmwAEVYsAwvG7EMED5ZshMBCitYIdgb9FmwBBCyGQEKK1gh2Bv0WTAxEzQ2NjMyABUVFAYGIyIANRcUFjMyNjU0JiMiBlt934/dARF54ZLc/u+6p4yNpqmMiagCJ5/+iv7O/g2e+4wBMvwJtNrdx7Ld2gACAIz+YAQeBE4ADwAaAG6yExscERI5sBMQsAzQALAARViwDC8bsQwYPlmwAEVYsAkvG7EJGD5ZsABFWLAGLxuxBhI+WbAARViwAy8bsQMQPlmyBQwDERI5sgoMAxESObAMELITAQorWCHYG/RZsAMQshgBCitYIdgb9FkwMQEUAiMiJxEjETMXNjMyEhEnNCYjIgcRFjMyNgQe4sHFcbmpCXHJw+O5nIioVFOrhZ0CEff+0n399wXaeIz+2v76BLfUlf37lNMAAAIAX/5gA+8ETgAPABoAa7IYGxwREjmwGBCwA9AAsABFWLADLxuxAxg+WbAARViwBi8bsQYYPlmwAEVYsAgvG7EIEj5ZsABFWLAMLxuxDBA+WbIFAwwREjmyCgMMERI5shMBCitYIdgb9FmwAxCyGAEKK1gh2Bv0WTAxEzQSMzIXNzMRIxEGIyICNRcUFjMyNxEmIyIGX+rFwG8IqrlwusTpuZ2FpVdYooaeAib/ASmBbfomAgR4ATH8CLrUkgISj9UAAQCMAAAClwROAA0ARrIEDg8REjkAsABFWLALLxuxCxg+WbAARViwCC8bsQgYPlmwAEVYsAUvG7EFED5ZsAsQsgIBCitYIdgb9FmyCQsFERI5MDEBJiMiBxEjETMXNjMyFwKXKjG2Qbm0A1unNhwDlAeb/QAEOn2RDgABAF//7AO7BE4AJgBhsgknKBESOQCwAEVYsAkvG7EJGD5ZsABFWLAcLxuxHBA+WbIDHAkREjmwCRCwDdCwCRCyEAEKK1gh2Bv0WbADELIVAQorWCHYG/RZsBwQsCHQsBwQsiQBCitYIdgb9FkwMQE0JiQmJjU0NjMyFhUjNCYjIgYVFBYEFhYVFAYjIiYmNTMWFjMyNgMCcf7npU/hr7jluoFiZXJqARWsU+i5gshxuQWLcml/AR9LUzxUdFCFuL6UTG5YR0NEPlZ5V5GvXKVgXW1VAAEACf/sAlYFQAAVAF+yDhYXERI5ALAARViwAS8bsQEYPlmwAEVYsBMvG7ETGD5ZsABFWLANLxuxDRA+WbABELAA0LAAL7ABELIDAQorWCHYG/RZsA0QsggBCitYIdgb9FmwAxCwEdCwEtAwMQERMxUjERQWMzI3FQYjIiY1ESM1MxEBh8rKNkEgOElFfH7FxQVA/vqP/WFBQQyWFJaKAp+PAQYAAQCI/+wD3AQ6ABAAU7IKERIREjkAsABFWLAGLxuxBhg+WbAARViwDS8bsQ0YPlmwAEVYsAIvG7ECED5ZsABFWLAQLxuxEBA+WbIADQIREjmwAhCyCgEKK1gh2Bv0WTAxJQYjIiYnETMRFDMyNxEzESMDKGzRrbUBucjURrmwa3/JxQLA/UX2ngMT+8YAAAEAIQAAA7oEOgAGADiyAAcIERI5ALAARViwAS8bsQEYPlmwAEVYsAUvG7EFGD5ZsABFWLADLxuxAxA+WbIABQMREjkwMSUBMwEjATMB8QEMvf58jf54vfsDP/vGBDoAAAEAKwAABdMEOgAMAGCyBQ0OERI5ALAARViwAS8bsQEYPlmwAEVYsAgvG7EIGD5ZsABFWLALLxuxCxg+WbAARViwAy8bsQMQPlmwAEVYsAYvG7EGED5ZsgALAxESObIFCwMREjmyCgsDERI5MDElEzMBIwEBIwEzExMzBErQuf7Flv75/wCW/sa41fyV/wM7+8YDNPzMBDr81gMqAAEAKQAAA8oEOgALAFMAsABFWLABLxuxARg+WbAARViwCi8bsQoYPlmwAEVYsAQvG7EEED5ZsABFWLAHLxuxBxA+WbIACgQREjmyBgoEERI5sgMABhESObIJBgAREjkwMQETMwEBIwMDIwEBMwH38Nj+ngFt1vr61wFt/p7WAq8Bi/3p/d0Blf5rAiMCFwABABb+SwOwBDoADwBJsgAQERESOQCwAEVYsAEvG7EBGD5ZsABFWLAOLxuxDhg+WbAARViwBS8bsQUSPlmyAA4FERI5sgkBCitYIdgb9FmwABCwDdAwMQETMwECIycnNRcyNjc3ATMB7vzG/k1l3CNFMl5pIin+fsoBDwMr+x/+8gMNlgRMZW4ELgABAFgAAAOzBDoACQBEALAARViwBy8bsQcYPlmwAEVYsAIvG7ECED5ZsgABCitYIdgb9FmyBAACERI5sAcQsgUBCitYIdgb9FmyCQUHERI5MDElIRUhNQEhNSEVAToCefylAlX9tAM0l5eIAxmZgwAAAQBA/pICngY9ABgAMbITGRoREjkAsA0vsAAvsgcNABESObAHL7IfBwFdsgYDCitYIdgb9FmyEwYHERI5MDEBJiY1NTQjNTI1NTY2NxcGERUUBxYVFRIXAnixs9TUAq+zJtGnpwPO/pIy5bzH85Hy0LfhM3ND/ubK41la5c7+7UIAAAEAr/7yAUQFsAADABMAsAAvsABFWLACLxuxAhw+WTAxASMRMwFElZX+8ga+AAABABP+kgJyBj0AGAAxsgUZGhESOQCwCy+wGC+yEQsYERI5sBEvsh8RAV2yEgMKK1gh2Bv0WbIFEhEREjkwMRc2EzU0NyY1NRAnNxYWFxUUMxUiFRUUBgcTywe1tdEmsbIB1NS1r/tBAQrc51RS6csBGkNzMuG50u+R88q84jIAAAEAgwGSBO8DIgAXAEKyERgZERI5ALAARViwDy8bsQ8WPlmwANCwDxCwFNCwFC+yAwEKK1gh2Bv0WbAPELIIAQorWCHYG/RZsAMQsAvQMDEBFAYjIi4CIyIGFQc0NjMyFhYXFzI2NQTvu4lIgKlKKk5UobiLTIywQB1MXwMJntk1lCRrXgKgzkChCgJ0XwACAIv+mAFmBE0AAwAMADKyBg0OERI5sAYQsADQALACL7AARViwCy8bsQsYPlmyBgUKK1gh2Bv0WbIBAgYREjkwMRMzEyMTFAYiJjQ2MhaqqA3CyTdsODhsNwKs++wFTC0+Plo8PAABAGn/CwP5BSYAIQBSsgAiIxESOQCwAEVYsBQvG7EUGD5ZsABFWLAKLxuxChA+WbAH0LIAAQorWCHYG/RZsAoQsAPQsBQQsBHQsBQQsBjQsBQQshsBCitYIdgb9FkwMSUyNjczBgYHFSM1JgI1NTQSNzUzFRYWFyMmJiMiBhUVFBYCSmSUCK8GxpC5s8jKsbmWwAavCI9pjZubg3lZfska6eoiARzcI9QBHSHi3xfUlmmHy8Aju8oAAQBbAAAEaAXEACEAfLIcIiMREjkAsABFWLAULxuxFBw+WbAARViwBS8bsQUQPlmyHxQFERI5sB8vsl8fAXKyjx8BcbK/HwFdsgABCitYIdgb9FmwBRCyAwEKK1gh2Bv0WbAH0LAI0LAAELAN0LAfELAP0LAUELAY0LAUELIbAQorWCHYG/RZMDEBFxQHIQchNTM2Njc1JyM1MwM0NjMyFhUjNCYjIgYVEyEVAcEIPgLdAfv4TSgyAgiloAn1yL7ev39vaYIJAT8CbtyaW52dCYNgCN2dAQTH7tSxa3yaff78nQAAAgBp/+UFWwTxABsAKgA/sgIrLBESObACELAn0ACwAEVYsAIvG7ECED5ZsBDQsBAvsAIQsh8BCitYIdgb9FmwEBCyJwEKK1gh2Bv0WTAxJQYjIicHJzcmNTQ3JzcXNjMyFzcXBxYVFAcXBwEUFhYyNjY1NCYmIyIGBgRPn9HPn4aCi2hwk4KTnsPEn5WEl25mj4T8YHPE4sRxccVwccRzcISCiIeNnMrOo5eIlnh5mImao8vEn5CIAnt71Hp703t603l41AAAAQAfAAAErQWwABYAawCwAEVYsBYvG7EWHD5ZsABFWLABLxuxARw+WbAARViwDC8bsQwQPlmyDxMDK7IADBYREjm0DxMfEwJdsBMQsAPQsBMQshICCitYIdgb9FmwBtCwDxCwB9CwDxCyDgIKK1gh2Bv0WbAK0DAxAQEzASEVIRUhFSERIxEhNSE1ITUhATMCZgFs2/5eATj+gAGA/oDB/oYBev6GATn+XtwDDgKi/TB9pXz+vgFCfKV9AtAAAAIAk/7yAU0FsAADAAcAGACwAC+wAEVYsAYvG7EGHD5ZsgUBAyswMRMRMxERIxEzk7q6uv7yAxf86QPIAvYAAgBa/hEEeQXEADQARACAsiNFRhESObAjELA10ACwCC+wAEVYsCMvG7EjHD5ZshYIIxESObAWELI/AQorWCHYG/RZsgIWPxESObAIELAO0LAIELIRAQorWCHYG/RZsjAjCBESObAwELI3AQorWCHYG/RZsh03MBESObAjELAn0LAjELIqAQorWCHYG/RZMDEBFAcWFhUUBCMiJicmNTcUFjMyNjU0JicuAjU0NyYmNTQkMzIEFSM0JiMiBhUUFhYEHgIlJicGBhUUFhYEFzY2NTQmBHm6RUj+/ORwyUaLurSciKaO0bbAXbZCRwEL3ugBBLmoi46hOIcBH6lxOv3hWktQSzaFARwsTlSLAa+9VTGIZKjHODlxzQKCl3VgWWk+MG+bb7pYMYhkpsjizX2bc2JFUEFQSGGBqxgbE2VFRlBCUhEUZUVYbQAAAgBmBPAC7wXFAAgAEQAdALAHL7ICBQorWCHYG/RZsAvQsAcQsBDQsBAvMDETNDYyFhQGIiYlNDYyFhQGIiZmN2w4OGw3Aa43bDg4bDcFWy09PVo8PCstPj5aPDwAAAMAW//rBeYFxAAbACoAOQCVsic6OxESObAnELAD0LAnELA20ACwAEVYsC4vG7EuHD5ZsABFWLA2LxuxNhA+WbIDNi4REjmwAy+0DwMfAwJdsgouNhESObAKL7QAChAKAl2yDgoDERI5shECCitYIdgb9FmwAxCyGAIKK1gh2Bv0WbIbAwoREjmwNhCyIAQKK1gh2Bv0WbAuELInBAorWCHYG/RZMDEBFAYjIiY1NTQ2MzIWFSM0JiMiBhUVFBYzMjY1JRQSBCAkEjU0AiQjIgQCBzQSJCAEEhUUAgQjIiQCBF+tnp29v5ugrJJfW15sbF5cXf0BoAETAUABEqCe/u2hoP7sn3O7AUsBgAFKu7T+tcbF/rW2AlWZodO2brDTpJVjVYp7cXiKVGWErP7bpqYBJayqASKnpf7cqsoBWsfH/qbKxf6o0c8BWAAAAgCTArMDDwXEABsAJQBssg4mJxESObAOELAd0ACwAEVYsBUvG7EVHD5ZsgQmFRESObAEL7AA0LICBBUREjmyCwQVERI5sAsvsBUQsg4DCitYIdgb9FmyEQsVERI5sAQQshwDCitYIdgb9FmwCxCyIAQKK1gh2Bv0WTAxASYnBiMiJjU0NjMzNTQjIgYVJzQ2MzIWFREUFyUyNjc1IwYGFRQCagwGTIB3gqesbHxFT6GsiYWaGv6kK1gccFNZAsEiJlZ8Z294NIc2Mwxngo+G/sRhUXsoG44BPzNe//8AZgCXA2QDswAmAJr6/gAHAJoBRP/+AAEAfwF3A74DIAAFABoAsAQvsAHQsAEvsAQQsgIBCitYIdgb9FkwMQEjESE1IQO+uv17Az8BdwEIoQAEAFr/6wXlBcQADgAeADQAPQCpsjY+PxESObA2ELAL0LA2ELAT0LA2ELAj0ACwAEVYsAMvG7EDHD5ZsABFWLALLxuxCxA+WbITBAorWCHYG/RZsAMQshsECitYIdgb9FmyIAsDERI5sCAvsiIDCxESObAiL7QAIhAiAl2yNSAiERI5sDUvsr81AV20ADUQNQJdsh8CCitYIdgb9FmyKB81ERI5sCAQsC/QsC8vsCIQsj0CCitYIdgb9FkwMRM0EiQgBBIVFAIEIyIkAjcUEgQzMiQSNTQCJCMiBAIFESMRITIWFRQHFhcVFBcVIyY0JyYnJzM2NjU0JiMjWrsBSwGAAUq7tP61xsX+tbZzoAEToKEBFJ2d/uyhoP7snwHAjQEUmamAegERkQ4DEHOwnEhYTmSKAtnKAVrHx/6mysX+qNHPAVjHrP7bpqkBIqyrASGnpf7c9f6uA1GDfXtBMpo9ViYQJLkRYASAAkI2ST0AAAEAeAUhA0IFsAADABEAsAEvsgIDCitYIdgb9FkwMQEhNSEDQv02AsoFIY8AAgCCA8ACfAXEAAsAFgAvALAARViwAy8bsQMcPlmwDNCwDC+yCQIKK1gh2Bv0WbADELISAgorWCHYG/RZMDETNDYzMhYVFAYjIiYXMjY1NCYjIgYUFoKVamiTk2hplv82Sko2N0tLBMBonJtpapaWFkc5OktPbEoAAgBhAAAD9QTzAAsADwBGALAJL7AARViwDS8bsQ0QPlmwCRCwANCwCRCyBgEKK1gh2Bv0WbAD0LANELIOAQorWCHYG/RZsgUOBhESObQLBRsFAl0wMQEhFSERIxEhNSERMwEhNSECiQFs/pSn/n8BgacBQfy9A0MDVpf+YgGelwGd+w2YAAABAEICmwKrBbsAFgBUsggXGBESOQCwAEVYsA4vG7EOHD5ZsABFWLAALxuxABQ+WbIWAgorWCHYG/RZsALQsgMOFhESObAOELIIAgorWCHYG/RZsA4QsAvQshQWDhESOTAxASE1ATY1NCYjIgYVIzQ2IBYVFA8CIQKr/akBLG1APEtHnacBCJprVLABjwKbbAEaZkUxPUw5cpR/bmhrT5EAAQA+Ao8CmgW6ACYAibIgJygREjkAsABFWLAOLxuxDhw+WbAARViwGS8bsRkUPlmyABkOERI5sAAvtm8AfwCPAANdsj8AAXG2DwAfAC8AA12yXwABcrAOELIHAgorWCHYG/RZsgoOGRESObAAELImBAorWCHYG/RZshQmABESObIdGQ4REjmwGRCyIAIKK1gh2Bv0WTAxATMyNjU0JiMiBhUjNDYzMhYVFAYHFhUUBiMiJjUzFBYzMjY1NCcjAQlUSkg/RjlLnaN8iZxGQpWqiISmnk9DRkmcWARlPTAtOjMpYnt5aDdbGSmPan1+ay08PDNxAgAAAQB7BNgCHAX+AAMAIwCwAi+yDwIBXbAA0LAAL7QPAB8AAl2wAhCwA9AZsAMvGDAxATMBIwE84P70lQX+/toAAAEAmv5gA+4EOgASAFCyDRMUERI5ALAARViwAC8bsQAYPlmwAEVYsAcvG7EHGD5ZsABFWLAQLxuxEBI+WbAARViwDS8bsQ0QPlmyBAEKK1gh2Bv0WbILBw0REjkwMQERFhYzMjcRMxEjJwYjIicRIxEBUwFndMc+uqcJXaqTUbkEOv2Ho5yYAyD7xnOHSf4rBdoAAQBDAAADQAWwAAoAK7ICCwwREjkAsABFWLAILxuxCBw+WbAARViwAC8bsQAQPlmyAQAIERI5MDEhESMiJDU0JDMhEQKGVOb+9wEK5gENAgj+1tX/+lAAAAEAkwJrAXkDSQAJABayAwoLERI5ALACL7EICitY2BvcWTAxEzQ2MhYVFAYiJpM5cjs7cjkC2TBAQDAvPz8AAQB0/k0BqgAAAA4AQbIFDxAREjkAsABFWLAALxuxABA+WbAARViwBi8bsQYSPlm0EwYjBgJdsgEGABESObEHCitY2BvcWbABELAN0DAxIQcWFRQGIycyNjU0Jic3AR0MmaCPB09XQGIgNBuSYXFrNC8sKgmGAAEAegKiAe8FtwAGAECyAQcIERI5ALAARViwBS8bsQUcPlmwAEVYsAAvG7EAFD5ZsgQABRESObAEL7IDAgorWCHYG/RZsgIDBRESOTAxASMRBzUlMwHvndgBYxICogJZOYB1AAACAHoCsgMnBcQADAAaAECyAxscERI5sAMQsBDQALAARViwAy8bsQMcPlmyChsDERI5sAovshADCitYIdgb9FmwAxCyFwMKK1gh2Bv0WTAxEzQ2MzIWFRUUBiAmNRcUFjMyNjU1NCYjIgYHeryam7y7/sy+o2FUU19hU1FgAgRjnsPBpkqfwsKlBmRyc2VOY3JuYQD//wBmAJgDeAO1ACYAmw0AAAcAmwFqAAD//wBVAAAFkQWtACcAov/bApgAJwCcARgACAEHAKUC1gAAABAAsABFWLAFLxuxBRw+WTAx//8AUAAABckFrQAnAJwA7AAIACcAov/WApgBBwCjAx4AAAAQALAARViwCS8bsQkcPlkwMf//AG8AAAXtBbsAJwCcAZcACAAnAKUDMgAAAQcApAAxApsAEACwAEVYsCEvG7EhHD5ZMDEAAgBE/n8DeARNABgAIgBXsgkjJBESObAJELAc0ACwEC+wAEVYsCEvG7EhGD5ZsgAQIRESObIDEAAREjmwEBCyCQEKK1gh2Bv0WbAQELAM0LIVABAREjmwIRCyGwUKK1gh2Bv0WTAxAQ4DBwcUFjMyNjUzBgYjIiY1NDc3NjUTFAYiJjU0NjIWAkwBKWC4CwJ0bWR9uQLht8TWoG1CwTdsODhsNwKoan92wWMlbXNxW6HMybOtr3FOkgE9LT4+LSw8PAAC//IAAAdXBbAADwASAHcAsABFWLAGLxuxBhw+WbAARViwAC8bsQAQPlmwAEVYsAQvG7EEED5ZshEGABESObARL7ICAQorWCHYG/RZsAYQsggBCitYIdgb9FmyCwAGERI5sAsvsgwBCitYIdgb9FmwABCyDgEKK1gh2Bv0WbISBgAREjkwMSEhAyEDIwEhFSETIRUhEyEBIQMHV/yND/3MzeIDcAO3/U0UAk79uBYCwfqvAcgfAWH+nwWwmP4pl/3tAXgC3QABAFkAzgPdBGMACwA4ALADL7IJDAMREjmwCS+yCgkDERI5sgQDCRESObIBCgQREjmwAxCwBdCyBwQKERI5sAkQsAvQMDETAQE3AQEXAQEHAQFZAUr+uHcBSQFJd/64AUp3/rX+tQFJAVABT3v+sQFPe/6x/rB7AVH+rwAAAwB2/6MFHQXsABcAIAApAGayBCorERI5sAQQsB3QsAQQsCbQALAARViwEC8bsRAcPlmwAEVYsAQvG7EEED5ZshoQBBESObIjEAQREjmwIxCwG9CwEBCyHQEKK1gh2Bv0WbAaELAk0LAEELImAQorWCHYG/RZMDEBFAIEIyInByM3JhE1NBIkMzIXNzMHFhMFFBcBJiMiAgcFNCcBFjMyEjcFCZD++LCrg2GOkL6SAQus1pRnjZ+JAvwsYgI0Zqa20QMDFTj921t5uswDAqnW/sGoUpvnwAFoU9IBQqt9pf+7/tpj9I0DiG/+6/YNtoP8j0ABD/0AAgCmAAAEXQWwAA0AFgBXsgkXGBESObAJELAQ0ACwAEVYsAAvG7EAHD5ZsABFWLALLxuxCxA+WbIBAAsREjmwAS+yEAALERI5sBAvsgkBCitYIdgb9FmwARCyDgEKK1gh2Bv0WTAxAREhMhYWFRQEIyERIxETESEyNjU0JicBYAEXk9x3/vjj/u66ugEVjqCgiAWw/ttpwn7C5/7HBbD+Q/3el3h7lwEAAQCL/+wEagYSACoAabIhKywREjkAsABFWLAFLxuxBR4+WbAARViwEy8bsRMQPlmwAEVYsAAvG7EAED5ZsgoTBRESObIOBRMREjmwExCyGgEKK1gh2Bv0WbIgEwUREjmyIwUTERI5sAUQsigBCitYIdgb9FkwMSEjETQ2MzIWFRQGFRQeAhUUBiMiJic3FhYzMjY1NC4CNTQ2NTQmIyIRAUS5z7q0xYBLvFbLtlG1JisxhzVrcUq9V4toWNoEV9Drs599y0UzX5CITJ+yLBybICxeUjRgk4pRWc9UXmv+2wADAE7/7AZ8BE4AKgA1AD0AxrICPj8REjmwAhCwLtCwAhCwOdAAsABFWLAXLxuxFxg+WbAARViwHS8bsR0YPlmwAEVYsAAvG7EAED5ZsABFWLAFLxuxBRA+WbICHQAREjmyDAUXERI5sAwvtL8MzwwCXbAXELIQAQorWCHYG/RZshMMFxESObIaHQAREjmyOh0AERI5sDovtL86zzoCXbIhAQorWCHYG/RZsAAQsiUBCitYIdgb9FmyKB0AERI5sCvQsAwQsi8BCitYIdgb9FmwEBCwNtAwMQUgJwYGIyImNTQ2MzM1NCYjIgYVJzQ2MzIWFzY2MzISFRUhFhYzMjc3FwYlMjY3NSMGBhUUFgEiBgchNTQmBO7++4hB4o2nvOPd325oaYy48rtzsDI/rmnS6P0oB66VlHkvQJ78CUieMuR1jGoDUHOVEQIahhS0Vl6tl52uVWt7blETj7VTU09X/v/pc7C/TB+IeZZKNu0CblNNXQM0q4sfhJMAAAIAfv/sBC0GLAAdACsAVLIHLC0REjmwBxCwKNAAsABFWLAZLxuxGR4+WbAARViwBy8bsQcQPlmyDxkHERI5sA8vshEZBxESObIiAQorWCHYG/RZsAcQsigBCitYIdgb9FkwMQESERUUBgYjIiYmNTQ2NjMyFyYnByc3Jic3Fhc3FwMnJiYjIgYVFBYzMjY1AzT5ddiGh9x5cM+Bo3kwjdpJwIS3Oe+vvUloAiGLXJGip4B9mQUV/vj+Z12e/ZCB4IaT6YJyw42UY4NbMZ82i4Fk/PM4PUm/p4zE4rgAAAMARwCsBC0EugADAA0AFwBOsgcYGRESObAHELAA0LAHELAR0ACwAi+yAQEKK1gh2Bv0WbACELEMCitY2BvcWbEGCitY2BvcWbABELEQCitY2BvcWbEWCitY2BvcWTAxASE1IQE0NjIWFRQGIiYRNDYyFhUUBiImBC38GgPm/aA5cjs7cjk5cjs7cjkCWLgBOjBAQDAvPj78/jBAQDAuPz8AAAMAW/96BDQEuAAVAB0AJgBjsgQnKBESObAEELAb0LAEELAj0ACwAEVYsAQvG7EEGD5ZsABFWLAPLxuxDxA+WbIjAQorWCHYG/RZsiEjBBESObAhELAY0LAEELIbAQorWCHYG/RZshkbDxESObAZELAg0DAxEzQ2NjMyFzczBxYRFAYGIyInByM3JhMUFwEmIyIGBTQnARYzMjY1W3vhj25eSXxmw3zgkGhWSnxkzblhAVc+SIqoAmZX/qw3QounAief/YsqlM2a/sCe/okjlcuVATfCbwK2INq1tm/9UBnbuQACAJX+YAQnBgAADwAaAGSyGBscERI5sBgQsAzQALAIL7AARViwDC8bsQwYPlmwAEVYsAYvG7EGEj5ZsABFWLADLxuxAxA+WbIFDAMREjmyCgwDERI5sAwQshMBCitYIdgb9FmwAxCyGAEKK1gh2Bv0WTAxARQCIyInESMRMxE2MzISESc0JiMiBxEWMzI2BCfiwcVxublxwsPjuZyIqFRTq4WdAhH3/tJ9/fcHoP3KhP7a/voEt9SV/fuU0wAAAQCbAAABVQQ6AAMAHQCwAEVYsAIvG7ECGD5ZsABFWLAALxuxABA+WTAxISMRMwFVuroEOgAAAgBo/+sHCQXEABcAIwCRsgEkJRESObABELAa0ACwAEVYsAwvG7EMHD5ZsABFWLAOLxuxDhw+WbAARViwAC8bsQAQPlmwAEVYsAMvG7EDED5ZsA4QshABCitYIdgb9FmyEwAOERI5sBMvshQBCitYIdgb9FmwABCyFgEKK1gh2Bv0WbADELIYAQorWCHYG/RZsAwQsh0BCitYIdgb9FkwMSEhBiMiJgInETQSNjMyFyEVIREhFSERIQUyNxEmIyIGBxEUFgcJ/LCycqL+jAGL/qJ8qgNG/S0Cd/2JAt37jHFmbWytwgLDFZYBD6sBNawBEZcUnv4snf38Gw4Ejg/lz/7H0+sAAAMAYf/sBwAETgAgACwANACWsgY1NhESObAGELAm0LAGELAw0ACwAEVYsAQvG7EEGD5ZsABFWLAKLxuxChg+WbAARViwFy8bsRcQPlmwAEVYsB0vG7EdED5ZsgcKFxESObIxChcREjmwMS+yDgEKK1gh2Bv0WbAXELISAQorWCHYG/RZshQKFxESObIaChcREjmwJNCwBBCyKgEKK1gh2Bv0WbAt0DAxEzQ2NjMyFhc2NjMyFhUVIRYWMzI3FwYjIiYnBgYjIgA1FxQWMzI2NTQmIyIGJSIGByE1NCZheduOick9QcRwz+r9Mgekhrx4Son1h80/PseG3P74uaCLiaChioeiBC1jlhYCDokCJ6D+iXVkZnP+63SqxWx+hHBkY3EBMP4Jt9jXzrbZ1tajihp9lgAAAQCpBOQDBgYAAAgANACwBC+wB9CwBy+0DwcfBwJdsgUEBxESORmwBS8YsAHQGbABLxiwBBCwAtCyAwQHERI5MDEBFSMnByM1EzMDBpmWlZn2cATuCqqqDAEQAAACAHkEtAInBlAACQAUACqyAxUWERI5sAMQsA3QALADL7AH0LAHL7I/BwFdsAMQsA3QsAcQsBLQMDEBFAYjIiY0NjIWBRQWMzI2NCYjIgYCJ3xbXHt7uHv+tUMxMERDMTJCBYBXdXasenpWL0RCYkVGAAABAHsE2QM+BegAFwA+ALADL7AI0LAIL7QPCB8IAl2wAxCwC9CwCy+wCBCyDwMKK1gh2Bv0WbADELIUAworWCHYG/RZsA8QsBfQMDEBFAYjIi4CIyIGFSc0NjMyHgIzMjY1Az57XCk8YSscKTp8eV0jOGAzHys5BdxshhQ+DT8xB2uMFDoSRC3//wCiAosEjQMiAEYAn9kATM1AAP//AJACiwXJAyIARgCfhABmZkAAAAEAYAQxAXgGEwAIACGyCAkKERI5ALAARViwAC8bsQAePlmyBQkAERI5sAUvMDEBFwYHFSM1NDYBDmpdA7hhBhNIf5OIdGbIAAEAMAQWAUcGAAAIACGyCAkKERI5ALAARViwBC8bsQQePlmyAAkEERI5sAAvMDETJzY3NTMVBgaZaV0DtwFhBBZIgpCQgmTHAAEAJP7lATsAtQAIAB6yCAkKERI5ALAJL7IEBQorWCHYG/RZsADQsAAvMDETJzY3NTMVFAaNaVsDuWP+5Ul/knZkZcr//wBoBDECuwYTACYAkwgAAAcAkwFDAAD//wA8BBYChgYAACYAlAwAAAcAlAE/AAAAAgAk/tMCZAD2AAgAEQAwsgoSExESObAKELAF0ACwEi+yBAUKK1gh2Bv0WbAA0LAAL7AJ0LAJL7AEELAN0DAxEyc2NzUzFRQGFyc2NzUzFRQGjWlbA7lj3WlbA7ph/tNIiZm5pGzTQEiJmbmka9EAAAEAigIXAiIDywANABayCg4PERI5ALADL7EKCitY2BvcWTAxEzQ2MzIWFRUUBiMiJjWKb1xbcm5eXW8DBFdwbV0lV25vWAABAGwAmQIgA7UABgAQALAFL7ICBwUREjmwAi8wMQEBIwE1ATMBHgECjf7ZASeNAib+cwGEEwGFAAEAWQCYAg4DtQAGABAAsAAvsgMHABESObADLzAxEwEVASMBAecBJ/7ZjgEC/v4Dtf57E/57AY4BjwABADsAbgNqBSIAAwAJALAAL7ACLzAxNycBF6NoAsdobkIEckIA//8ANgKQArsFpQMHAKUAAAKQABMAsABFWLAJLxuxCRw+WbAN0DAxAAABAF//7AQcBcQAIwCHshUkJRESOQCwAEVYsBYvG7EWHD5ZsABFWLAJLxuxCRA+WbIjCRYREjmwIy+yAAIKK1gh2Bv0WbAJELIEAQorWCHYG/RZsAAQsAzQsCMQsA/QsCMQsB/QsB8vtg8fHx8vHwNdsiACCitYIdgb9FmwENCwHxCwE9CwFhCyGwEKK1gh2Bv0WTAxASEWFjMyNxcGIyIAAyM1MzUjNTMSADMyFwcmIyIGByEVIRUhA1H+gAS0pXRmFHh4+P7jBrKysrIKAR3zaocUbW6ksQYBf/6AAYACHcPSIqAeASUBDHyJfQEGAR8foiPLvH2JAAEAqAKLA+sDIgADABsAsABFWLACLxuxAhY+WbIBAQorWCHYG/RZMDEBITUhA+v8vQNDAouXAAIAHwAAA80GFQAVABkAg7IIGhsREjmwCBCwF9AAsABFWLAILxuxCB4+WbAARViwAy8bsQMYPlmwAEVYsBEvG7ERGD5ZsABFWLAYLxuxGBg+WbAARViwAC8bsQAQPlmwAEVYsBYvG7EWED5ZsAMQsgEBCitYIdgb9FmwCBCyDQEKK1gh2Bv0WbABELAT0LAU0DAxMxEjNTM1NDYzMhcHJiMiBhUVMxUjESEjETPKq6vPvXCrH31xd2nd3QJJuroDq49ctco9nDJra16P/FUEOgABADwAAAPpBhUAFgBcALAARViwEi8bsRIePlmwAEVYsAYvG7EGGD5ZsABFWLAJLxuxCRA+WbAARViwFi8bsRYQPlmwEhCyAgEKK1gh2Bv0WbAGELIHAQorWCHYG/RZsAvQsAYQsA7QMDEBJiMiFRUzFSMRIxEjNTM1NjYzMgURIwMwfEzI5+e5q6sBwLFlASu5BWMU0muP/FUDq492rbg9+igAAAEAegAAAe8DFQAGADUAsABFWLAFLxuxBRY+WbAARViwAS8bsQEQPlmyBAUBERI5sAQvsgMCCitYIdgb9FmwAtAwMSEjEQc1JTMB753YAWMSAlk5gHUAAQBCAAACqwMgABYAVLIIFxgREjkAsABFWLAOLxuxDhY+WbAARViwAC8bsQAQPlmyFQIKK1gh2Bv0WbAC0LIUFQ4REjmyAw4UERI5sA4QsggCCitYIdgb9FmwDhCwC9AwMSEhNQE2NTQmIyIGFSM0NiAWFRQPAiECq/2pASxtQDxLR52nAQiaa1SwAY9sARpmRTE9TDlylH9uaGtPkQABAD7/9QKaAyAAJgBxALAARViwDi8bsQ4WPlmwAEVYsBkvG7EZED5ZsgAZDhESOXywAC8YtoAAkACgAANdsA4QsgcCCitYIdgb9FmyCgAHERI5sAAQsiYCCitYIdgb9FmyFCYAERI5sBkQsiACCitYIdgb9FmyHSYgERI5MDEBMzI2NTQmIyIGFSM0NjMyFhUUBgcWFRQGIyImNTMUFjMyNjU0JyMBCVRKSD9GOUudo3yJnEZClaqIhKaeT0NGSZxYAcs9MC06Mylie3loN1sZKY9qfX5rLTw8M3ECAAACADYAAAK7AxUACgAOAEkAsABFWLAJLxuxCRY+WbAARViwBC8bsQQQPlmyAQkEERI5sAEvsgICCitYIdgb9FmwBtCwARCwC9CyCAsGERI5sg0JBBESOTAxATMVIxUjNSEnATMBMxEHAlBra53+iQYBeaH+hN8RASuCqalmAgb+FgEhHP//ACUCHwINArYCBgARAAAAAgAlAAAE5AWwAA8AHQBmALAARViwBS8bsQUcPlmwAEVYsAAvG7EAED5ZsgQABRESObAEL7LPBAFdsi8EAV2ynwQBcbIBAQorWCHYG/RZsBHQsAAQshIBCitYIdgb9FmwBRCyGwEKK1gh2Bv0WbAEELAc0DAxMxEjNTMRITIEEhcVFAIEBxMhETMyEjc1NAInIxEhx6KiAZu+ASSfAZ/+2cRH/ubJ3vcB6dbgARoCmpcCf6j+ysldzv7KpgICmv4DARL5XfgBEwL+HwD//wAcAAAFHQc0AiYAJQAAAQcARAEwATYAFACwAEVYsAQvG7EEHD5ZsQwI9DAx//8AHAAABR0HNAImACUAAAEHAHUBvwE2ABQAsABFWLAFLxuxBRw+WbENCPQwMf//ABwAAAUdBzYCJgAlAAABBwCOAMkBNgAUALAARViwBC8bsQQcPlmxDwb0MDH//wAcAAAFHQciAiYAJQAAAQcAkADFAToAFACwAEVYsAUvG7EFHD5ZsQ4E9DAx//8AHAAABR0G+wImACUAAAEHAGoA+QE2ABcAsABFWLAELxuxBBw+WbERBPSwG9AwMQD//wAcAAAFHQeRAiYAJQAAAQcAjwFQAUEAFwCwAEVYsAQvG7EEHD5ZsQ4G9LAY0DAxAP//AHf+RATYBcQCJgAnAAAABwB5AdL/9///AKkAAARGB0ACJgApAAABBwBEAPsBQgAUALAARViwBi8bsQYcPlmxDQj0MDH//wCpAAAERgdAAiYAKQAAAQcAdQGKAUIAFACwAEVYsAYvG7EGHD5ZsQ4I9DAx//8AqQAABEYHQgImACkAAAEHAI4AlAFCABQAsABFWLAGLxuxBhw+WbEQBvQwMf//AKkAAARGBwcCJgApAAABBwBqAMQBQgAXALAARViwBi8bsQYcPlmxEgT0sBvQMDEA////4AAAAYEHQAImAC0AAAEHAET/pwFCABQAsABFWLACLxuxAhw+WbEFCPQwMf//ALAAAAJRB0ACJgAtAAABBwB1ADUBQgAUALAARViwAy8bsQMcPlmxBgj0MDH////pAAACRgdCAiYALQAAAQcAjv9AAUIAFACwAEVYsAIvG7ECHD5ZsQgG9DAx////1gAAAl8HBwImAC0AAAEHAGr/cAFCABcAsABFWLACLxuxAhw+WbEKBPSwFNAwMQD//wCpAAAFCAciAiYAMgAAAQcAkAD7AToAFACwAEVYsAYvG7EGHD5ZsQ0E9DAx//8Adv/sBQkHNgImADMAAAEHAEQBUgE4ABQAsABFWLANLxuxDRw+WbEhCPQwMf//AHb/7AUJBzYCJgAzAAABBwB1AeEBOAAUALAARViwDS8bsQ0cPlmxIgj0MDH//wB2/+wFCQc4AiYAMwAAAQcAjgDrATgAFACwAEVYsA0vG7ENHD5ZsSIG9DAx//8Adv/sBQkHJAImADMAAAEHAJAA5wE8ABQAsABFWLANLxuxDRw+WbEjBPQwMf//AHb/7AUJBv0CJgAzAAABBwBqARsBOAAXALAARViwDS8bsQ0cPlmxJwT0sDDQMDEA//8AjP/sBKoHNAImADkAAAEHAEQBKwE2ABQAsABFWLAKLxuxChw+WbEUCPQwMf//AIz/7ASqBzQCJgA5AAABBwB1AboBNgAUALAARViwEi8bsRIcPlmxFQj0MDH//wCM/+wEqgc2AiYAOQAAAQcAjgDEATYAFACwAEVYsAovG7EKHD5ZsRcG9DAx//8AjP/sBKoG+wImADkAAAEHAGoA9AE2ABcAsABFWLAKLxuxChw+WbEZBPSwI9AwMQD//wAPAAAEuwc0AiYAPQAAAQcAdQGIATYAFACwAEVYsAEvG7EBHD5ZsQsI9DAx//8Abf/sA+oF/gImAEUAAAEHAEQA1QAAABQAsABFWLAXLxuxFxg+WbEqCfQwMf//AG3/7APqBf4CJgBFAAABBwB1AWQAAAAUALAARViwFy8bsRcYPlmxKwn0MDH//wBt/+wD6gYAAiYARQAAAQYAjm4AABQAsABFWLAXLxuxFxg+WbErAfQwMf//AG3/7APqBewCJgBFAAABBgCQagQAFACwAEVYsBcvG7EXGD5ZsSwB9DAx//8Abf/sA+oFxQImAEUAAAEHAGoAngAAABcAsABFWLAXLxuxFxg+WbEwAfSwOdAwMQD//wBt/+wD6gZbAiYARQAAAQcAjwD1AAsAFwCwAEVYsBcvG7EXGD5ZsSwE9LA20DAxAP//AFz+RAPsBE4CJgBHAAAABwB5AT//9///AF3/7APzBf4CJgBJAAABBwBEAMUAAAAUALAARViwCC8bsQgYPlmxHwn0MDH//wBd/+wD8wX+AiYASQAAAQcAdQFUAAAAFACwAEVYsAgvG7EIGD5ZsSAJ9DAx//8AXf/sA/MGAAImAEkAAAEGAI5eAAAUALAARViwCC8bsQgYPlmxIAH0MDH//wBd/+wD8wXFAiYASQAAAQcAagCOAAAAFwCwAEVYsAgvG7EIGD5ZsSUB9LAu0DAxAP///8YAAAFnBf0CJgCLAAABBgBEjf8AFACwAEVYsAIvG7ECGD5ZsQUJ9DAx//8AlgAAAjcF/QImAIsAAAEGAHUb/wAUALAARViwAy8bsQMYPlmxBgn0MDH////PAAACLAX/AiYAiwAAAQcAjv8m//8AFACwAEVYsAIvG7ECGD5ZsQgB9DAx////vAAAAkUFxAImAIsAAAEHAGr/Vv//ABcAsABFWLACLxuxAhg+WbELAfSwFNAwMQD//wCMAAAD3wXsAiYAUgAAAQYAkGEEABQAsABFWLADLxuxAxg+WbEVAfQwMf//AFv/7AQ0Bf4CJgBTAAABBwBEAM8AAAAUALAARViwBC8bsQQYPlmxHQn0MDH//wBb/+wENAX+AiYAUwAAAQcAdQFeAAAAFACwAEVYsAQvG7EEGD5ZsR4J9DAx//8AW//sBDQGAAImAFMAAAEGAI5oAAAUALAARViwBC8bsQQYPlmxHgH0MDH//wBb/+wENAXsAiYAUwAAAQYAkGQEABQAsABFWLAELxuxBBg+WbEfAfQwMf//AFv/7AQ0BcUCJgBTAAABBwBqAJgAAAAXALAARViwBC8bsQQYPlmxIwH0sCzQMDEA//8AiP/sA9wF/gImAFkAAAEHAEQAxwAAABQAsABFWLAHLxuxBxg+WbESCfQwMf//AIj/7APcBf4CJgBZAAABBwB1AVYAAAAUALAARViwDS8bsQ0YPlmxEwn0MDH//wCI/+wD3AYAAiYAWQAAAQYAjmAAABQAsABFWLAHLxuxBxg+WbEVAfQwMf//AIj/7APcBcUCJgBZAAABBwBqAJAAAAAXALAARViwBy8bsQcYPlmxGAH0sCHQMDEA//8AFv5LA7AF/gImAF0AAAEHAHUBGwAAABQAsABFWLABLxuxARg+WbESCfQwMf//ABb+SwOwBcUCJgBdAAABBgBqVQAAFwCwAEVYsA8vG7EPGD5ZsRcB9LAg0DAxAAAAAAEAAADeAI8AFgBUAAUAAQAAAAAADgAAAgACFAAGAAEAAABhAGEAYQBhAGEAkwC4ATgBqgI6As0C5AMOAzgDawOQA68DxQPmA/0ESgR4BMcFPAV/Bd8GPgZrBt8HRgdbB3AHjwe2B9UIMwjWCRUJdAnICg0KTQqDCusLLQtIC3sL0Av0DEIMfgzTDR4Ngw3fDkoOdA62DuYPOw+QD8AP+BAcEDMQWBB/EJoQuhEyEZAR4xJBEqgS+hN0E7kT8RQ9FJQUrxUaFWUVsxYXFngWtRcfF3EXuBfoGDYYfRjCGPoZOxlSGZIZ2RoMGmga2hs9G5wbuxxgHI8dNR2jHa8dzB6EHpoe1h8ZH2kf5CAEIE0geSCYINMhBSFPIVshdSGPIakiCiJtIqsjJiN6I+okqCUXJWgl2SY4JlMm1idwJ54n1ygbKCUoLyhTKHcomSilKLEo6SkMKSgpRSlYKWwp6CoDKmsqvSroKzcrpivoK+gr8CxWLG0shCybLLIsyyzkLPAtBy0eLTUtTi1lLXwtky2sLcMt2i3xLgguHy44Lk8uZi59LpYurS7ELtsu8S8HLyAvOS9FL1wvcy+JL6IvuC/OL+Uv/jAUMCswQjBYMG4whzCeMLUwyzDkMPsxEwAAAAEAAAACAAAwG1GuXw889QAbCAAAAAAAxPARLgAAAADQ206a+hv91QkwCHMAAAAJAAIAAAAAAAADjABkAAAAAAAAAAAB+wAAAfsAAAIPAKACjwCIBO0AdwR+AG4F3ABpBPkAZQFlAGcCvACFAsgAJgNyABwEiQBOAZIAHQI1ACUCGwCQA0wAEgR+AHMEfgCqBH4AXQR+AF4EfgA1BH4AmgR+AIQEfgBNBH4AcAR+AGQB8ACGAbEAKQQRAEgEZACYBC4AhgPHAEsHLwBqBTgAHAT7AKkFNQB3BT8AqQSMAKkEbACpBXMAegW0AKkCLQC3BGoANQUEAKkETgCpBvwAqQW0AKkFgAB2BQwAqQWAAG0E7QCoBL8AUATGADEFMACMBRcAHAcZAD0FBAA5BM4ADwTKAFYCHwCSA0gAKAIfAAkDWABAA5wABAJ5ADkEWgBtBH0AjAQwAFwEgwBfBD0AXQLHADwEfQBgBGgAjAHxAI0B6f+/BA4AjQHxAJwHAwCLBGoAjASQAFsEfQCMBIwAXwK1AIwEIABfAp0ACQRpAIgD4AAhBgMAKwP3ACkDyQAWA/cAWAK1AEAB8wCvArUAEwVxAIMB8wCLBGAAaQSmAFsFtABpBNgAHwHrAJME6ABaA1gAZgZJAFsDkwCTA8EAZgRuAH8GSgBaA6oAeAL9AIIERgBhAu8AQgLvAD4CggB7BIgAmgPpAEMCFgCTAfsAdALvAHoDowB6A8AAZgXcAFUGNQBQBjkAbwPJAEQHev/yBEQAWQWAAHYEugCmBMIAiwbBAE4EsAB+BJEARwSIAFsEnACVAfoAmwehAGgHRABhA8QAqQKtAHkDxgB7BUAAogY/AJABmQBgAZkAMAGXACQC1ABoAtsAPALBACQCsgCKAmYAbAJmAFkDowA7Au8ANgR+AF8EkgCoBG4AHwSLADwC7wB6Au8AQgLvAD4C7wA2AfsAAAI1ACUFXQAlBTgAHAU4ABwFOAAcBTgAHAU4ABwFOAAcBTUAdwSMAKkEjACpBIwAqQSMAKkCLf/gAi0AsAIt/+kCLf/WBbQAqQWAAHYFgAB2BYAAdgWAAHYFgAB2BTAAjAUwAIwFMACMBTAAjATOAA8EWgBtBFoAbQRaAG0EWgBtBFoAbQRaAG0EMABcBD0AXQQ9AF0EPQBdBD0AXQH6/8YB+gCWAfr/zwH6/7wEagCMBJAAWwSQAFsEkABbBJAAWwSQAFsEaQCIBGkAiARpAIgEaQCIA8kAFgAWAAAAAQAAB2z+DAAACUn6G/5KCTAAAQAAAAAAAAAAAAAAAAAAAN0AAwSFAZAABQAABZoFMwAAAR8FmgUzAAAD0QBmAgAAAAIAAAAAAAAAAADgAAr/UAAhfwAAACEAAAAAR09PRwBAAAD//QYA/gAAZgeaAgAgAAGfAAAAAAQ6BbAAIAAgAAIAAAABAAAA4AkJBAAAAgICAwYFBwYCAwMEBQICAgQFBQUFBQUFBQUFAgIFBQUECAYGBgYFBQYGAgUGBQgGBgYGBgUFBgYIBgUFAgQCBAQDBQUFBQUDBQUCAgUCCAUFBQUDBQMFBAcEBAQDAgMGAgUFBgUCBgQHBAQFBwQDBQMDAwUEAgIDBAQHBwcECAUGBQUIBQUFBQIJCAQDBAYHAgICAwMDAwMDBAMFBQUFAwMDAwICBgYGBgYGBgYFBQUFAgICAgYGBgYGBgYGBgYFBQUFBQUFBQUFBQUCAgICBQUFBQUFBQUFBQQEAAAAAwAAAAMAAAAcAAMAAQAAABwAAwAKAAABYAAEAUQAAAA2ACAABAAWAAAADQB+AKAArACtAL8AxgDPAOYA7wD/ATEBUwLGAtoC3CAUIBogHiAiIDogRCB0IKwiEv//AAAAAAANACAAoAChAK0ArgDAAMcA0ADnAPABMQFSAsYC2gLcIBMgGCAcICIgOSBEIHQgrCIS//8AAf/2/+QABv/C//r/wQAA/+gAAP/iAAD/Wv86/cj9tf204H7ge+B64HfgYeBY4Cnf8t6NAAEAAAAAAAAAAAAAAAAAAAAoAAAAMgAAAFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqQCqAKsArACtAK4AgQCoALgAuQC6ALsAvAC9AIIAgwC+AL8AwADBAMIAhACFAMMAxADFAMYAxwDIAIYAhwDSANMA1ADVANYA1wCIAIkA2ADZANoA2wDcAIoA3QAMAAAAAAHYAAAAAAAAACYAAAAAAAAAAAAAAAEAAAANAAAADQAAAAMAAAAgAAAAfgAAAAQAAACgAAAAoAAAAKYAAAChAAAArAAAAGMAAACtAAAArQAAAKcAAACuAAAAvwAAAG8AAADAAAAAxQAAAKkAAADGAAAAxgAAAIEAAADHAAAAzwAAAK8AAADQAAAA0AAAAKgAAADRAAAA1gAAALgAAADXAAAA2AAAAIIAAADZAAAA3QAAAL4AAADeAAAA3wAAAIQAAADgAAAA5QAAAMMAAADmAAAA5gAAAIYAAADnAAAA7wAAAMkAAADwAAAA8AAAAIcAAADxAAAA9gAAANIAAAD3AAAA+AAAAIgAAAD5AAAA/QAAANgAAAD+AAAA/gAAAIoAAAD/AAAA/wAAAN0AAAExAAABMQAAAIsAAAFSAAABUwAAAIwAAALGAAACxgAAAI4AAALaAAAC2gAAAI8AAALcAAAC3AAAAJAAACATAAAgFAAAAJEAACAYAAAgGgAAAJMAACAcAAAgHgAAAJYAACAiAAAgIgAAAJkAACA5AAAgOgAAAJoAACBEAAAgRAAAAJwAACB0AAAgdAAAAJ0AACCsAAAgrAAAAJ4AACISAAAiEgAAAJ+wACxLsAlQWLEBAY5ZuAH/hbCEHbEJA19eLbABLCAgRWlEsAFgLbACLLABKiEtsAMsIEawAyVGUlgjWSCKIIpJZIogRiBoYWSwBCVGIGhhZFJYI2WKWS8gsABTWGkgsABUWCGwQFkbaSCwAFRYIbBAZVlZOi2wBCwgRrAEJUZSWCOKWSBGIGphZLAEJUYgamFkUlgjilkv/S2wBSxLILADJlBYUViwgEQbsEBEWRshISBFsMBQWLDARBshWVktsAYsICBFaUSwAWAgIEV9aRhEsAFgLbAHLLAGKi2wCCxLILADJlNYsEAbsABZioogsAMmU1gjIbCAioobiiNZILADJlNYIyGwwIqKG4ojWSCwAyZTWCMhuAEAioobiiNZILADJlNYIyG4AUCKihuKI1kgsAMmU1iwAyVFuAGAUFgjIbgBgCMhG7ADJUUjISMhWRshWUQtsAksS1NYRUQbISFZLbAKLLAkRS2wCyywJUUtsAwssScBiCCKU1i5QAAEAGO4CACIVFi5ACQD6HBZG7AjU1iwIIi4EABUWLkAJAPocFlZWS2wDSywQIi4IABaWLElAEQbuQAlA+hEWS2wDCuwACsAsgEOAisBsg8BAisBtw86MCUbEAAIKwC3AUg7LiEUAAgrtwJYSDgoFAAIK7cDUkM0JRYACCu3BF5NPCsZAAgrtwU2LCIZDwAIK7cGcV1GMhsACCu3B5F3XDojAAgrtwh+Z1A5GgAIK7cJVEU2JhcACCu3CnZgSzYdAAgrtwuDZE46IwAIK7cM2bKKYzwACCu3DRQRDQkGAAgrtw48MiccEQAIKwCyEAoHK7AAIEV9aRhEsjASAXOysBQBc7JQFAF0soAUAXSycBQBdbIPHAFzsm8cAXUAACoAnQCAAIoAeADUAGQATgBaAIcAYABWADQCPAC8AMQAAAAU/mAAFAKbACADIQALBDoAFASNABAFsAAUBhgAFQGmABEGwAAOAAAAAAAAAAcAWgADAAEECQABAAwAAAADAAEECQACAA4ADAADAAEECQADAAwAAAADAAEECQAEAAwAAAADAAEECQAFACwAGgADAAEECQAGABwARgADAAEECQAOAFQAYgBSAG8AYgBvAHQAbwBSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAAyAC4AMAAwADEAMQAwADEAOwAgADIAMAAxADQAUgBvAGIAbwB0AG8ALQBSAGUAZwB1AGwAYQByAGgAdAB0AHAAOgAvAC8AdwB3AHcALgBhAHAAYQBjAGgAZQAuAG8AcgBnAC8AbABpAGMAZQBuAHMAZQBzAC8ATABJAEMARQBOAFMARQAtADIALgAwAAMAAAAAAAD/agBkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQACAAgAAv//AA8AAQAAAAwAAAAAAAAAAgAKACUAPgABAEUAXgABAHkAeQADAIEAgQABAIMAgwABAIYAhgABAIkAiQABAIsAjQABAKAAoQACAKgA3QABAAEAAAAKAFQAdAAEREZMVAAaY3lybAAmZ3JlawAybGF0bgA+AAQAAAAA//8AAQAAAAQAAAAA//8AAQABAAQAAAAA//8AAQACAAQAAAAA//8AAQADAARrZXJuABprZXJuABprZXJuABprZXJuABoAAAABAAAAAQAEAAIAAAAEAA4CDgOSBFIAAQCCAAQAAAA8AYgBiAD+AY4BnAG0AaoBBAEKARABtAEWASABQgFUAboBZgH0AWwB9AH0AfQB9AF6AfoB+gGIAYgBiAGIAbQBjgGOAY4BjgGOAY4BnAGqAaoBqgGqAbQBtAG0AbQBtAG6AfQB9AH0AfQB9AH0AfQB9AH0AfQB+gH6AAEAPAAGAAsAEwAlACcAKAApACoALwAwADMANAA4ADoAOwA9AD4ASQBKAEwAUQBSAFMAVgBaAF0AkwCUAJYAlwCoAKkAqgCrAKwArQCuAK8AsACxALIAswC5ALoAuwC8AL0AwgDKAMsAzADNANIA0wDUANUA1gDXANwA3QABABP/IAABAFb/5gABAFv/wQABAFv/pAACAFgADgCB/58ACAAE/9gAVv+1AFv/xwBt/rgAfP8oAIH/TQCG/44Aif+hAAQADQAUAEEAEQBW/+IAYQATAAQADQAPAEEADABW/+sAYQAOAAEAW//lAAMADQAUAEEAEgBhABMAAwBKAA8AWAAyAFsAEQABAFsACwADACP/wwBY/+8AW//fAAMADf/mAEH/9ABh/+8AAgBK/+4AW//qAAEAgf/fAA4ACv/iAA0AFAAO/88AQQASAEr/6gBW/9gAWP/qAGEAEwBt/64AfP/NAIH/oACG/8EAif/AAJn/0wABAJT/sAABAEoADQABABgABAAAAAcAKgAwAEIA/AESASQBPgABAAcABAAMACoANQA2AD8ASgABADj/2AAEADoAFAA7ABIAPQAWAMIAFgAuABD/FgAS/xYAJf9WAC7++AA4ABQARf/eAEf/6wBI/+sASf/rAEv/6wBT/+sAVf/rAFn/6gBa/+gAXf/oAI3/6wCV/xYAmP8WAKn/VgCq/1YAq/9WAKz/VgCt/1YArv9WAMP/3gDE/94Axf/eAMb/3gDH/94AyP/eAMn/6wDK/+sAy//rAMz/6wDN/+sA0//rANT/6wDV/+sA1v/rANf/6wDY/+oA2f/qANr/6gDb/+oA3P/oAN3/6AAFADj/1QA6/+QAO//sAD3/3QDC/90ABAA4/7AAOv/tAD3/0ADC/9AABgAu/+4AOf/uAL7/7gC//+4AwP/uAMH/7gARAAYAEAALABAAR//oAEj/6ABJ/+gAS//oAFX/6ACN/+gAkwAQAJQAEACWABAAlwAQAMn/6ADK/+gAy//oAMz/6ADN/+gAAQAUAAQAAAAFACIAUABqAHwAlgABAAUATwBYAFsAXwCUAAsAR//sAEj/7ABJ/+wAS//sAFX/7ACN/+wAyf/sAMr/7ADL/+wAzP/sAM3/7AAGAFP/7ADT/+wA1P/sANX/7ADW/+wA1//sAAQAEP+EABL/hACV/4QAmP+EAAYALv/sADn/7AC+/+wAv//sAMD/7ADB/+wACgBMACAATwAgAFAAIABT/4AAV/+QANP/gADU/4AA1f+AANb/gADX/4AAAgVQAAQAAAXGBwgAHAAYAAD/zv/1/+//iP/0/7v/f//1AAz/qf+iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5QAAAAD/6P/JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4wAAAAAAAP/kABIAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5QAAAAD/6v/V/+v/6v+a/+kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5gAAAAAAAP/tAAAAFP/vAAAAAAAAAAAAAAAAAAD/7QAAAAAAAAAAAAAAAAAAAAD/uP/kAAAAAP+dAA8AEP+h/8QAEAAQ/7EAAP8mAAD/nf+z/xj/k//w/4//jP8QAAD/2P/hAAAAAP/lAAAAAP/pAAAAAAAAAAAAAAAAAAD/5gAA/8D/6QAAAAAAAAAAAAD/e/+//8r+sAAA/3H+7f/UAAD/Uf8RABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAP/zAAAAAAAAAAAAAAAA/3b/4f68/+b/8wAAAAAAAAAA//UAAP84AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9f/zAAAAAP/SAAAAAP/kAAAAAAAA/7UAAP8fAAD/1AAA/9sAAAAA/9IAAAAAAAD/4f/nAAAAAP/rAAAAAP/rAAAADgAAAAAAAAAAAAD/5gAA/9IAAAAAAAAAAAAAAAD/7P/j/6AAAP+/ABEAEf/Z/+IAEgAS/6IADf8tAAD/v//p/8z/2P/w/7f/xv+gAAAAAAAAAAAAAP/hAAAADv/tAAAAAAAA/9UAAP+FAAD/4QAA/8QAAAAA/98AAAAAAAD/5f/mAAAAAP/rAAAAAP/tAAAAAAAAAA0AAAAAAAD/6wAAAAAAAAAAAAAAAAAAAAD/8QAAAAD/vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9QAAAAD/4wAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAP/xAAAAAAAAAAAAAAAAAAD/8wAAAAD/8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAAAAD/eAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAP/rAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//xAAAAAAAAAAAAAAAAAAAAAP+VAAD/8wAAAAAAAAAA//EAAAAAAAAAEgAAAAAAEP/sAAAAAAAAAAAAAAAAAAAAAP+FAAD/7QAAAAAAAAAA/9gAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/lf/DAAAAAAAAAAAAAAAA/4gAAAAAAAD/xQAAAAD/7AAA/87/sAAAAAAAAAAAAAD/VgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAEwAGAAYAAAALAAsAAQAQABAAAgASABIAAwAlACkABAAsADQACQA4AD4AEgBFAEcAGQBJAEkAHABMAEwAHQBRAFQAHgBWAFYAIgBaAFoAIwBcAF4AJACKAIoAJwCTAJgAKACoAM0ALgDSANcAVADcAN0AWgACADUABgAGABoACwALABoAEAAQABsAEgASABsAJgAmAAEAJwAnAAQAKAAoAAMAKQApAAUALAAtAAIALgAuAAoALwAvAAcAMAAwAAgAMQAyAAIAMwAzAAMANAA0AAkAOAA4AAYAOQA5AAoAOgA6AAsAOwA7AA4APAA8AAwAPQA9AA0APgA+AA8ARQBFABAARgBGABIARwBHABEASQBJABMATABMABQAUQBSABQAUwBTABUAVABUABIAVgBWABcAWgBaABYAXABcABgAXQBdABYAXgBeABkAigCKABIAkwCUABoAlQCVABsAlgCXABoAmACYABsAqACoAAMArwCvAAQAsACzAAUAtAC4AAIAuQC9AAMAvgDBAAoAwgDCAA0AwwDIABAAyQDJABEAygDNABMA0gDSABQA0wDXABUA3ADdABYAAgA0AAYABgAEAAsACwAEABAAEAAOABEAEQASABIAEgAOACUAJQAMACcAJwACACsAKwACAC4ALgAXADMAMwACADUANQACADcANwAUADgAOAAHADkAOQADADoAOgAKADsAOwAGADwAPAANAD0APQALAD4APgAPAEUARQAVAEcASQAQAEsASwAQAFEAUgATAFMAUwAFAFQAVAATAFUAVQAQAFcAVwAWAFkAWQAIAFoAWgABAFwAXAARAF0AXQABAF4AXgAJAIMAgwACAIwAjAACAI0AjQAQAJEAkgASAJMAlAAEAJUAlQAOAJYAlwAEAJgAmAAOAKcApwASAKkArgAMAK8ArwACALkAvQACAL4AwQADAMIAwgALAMMAyAAVAMkAzQAQANIA0gATANMA1wAFANgA2wAIANwA3QABAAAAAQAAAAoALABIAAFsYXRuAAgACgABVFVSIAASAAD//wABAAAAAP//AAEAAQACbGlnYQAObGlnYQAWAAAAAgAAAAEAAAABAAEAAgAGACAABAAAAAEACAABACwAAQAIAAEABACgAAIATQAEAAAAAQAIAAEAEgABAAgAAQAEAKEAAgBQAAEAAQBK) format('truetype')}#toasty .toast.toasty-theme-default{font-family:Tahoma,Geneva,sans-serif!important;font-size:12px;border-radius:0}#toasty .toast.toasty-theme-default .close-button:after{content:'x';color:#fff;font-size:17px;font-weight:100}#toasty .toast.toasty-theme-default .toast-text{color:#fff}#toasty .toast.toasty-theme-default .toast-text .toast-title{font-size:13px}#toasty .toast.toasty-theme-default .toast-text a,#toasty .toast.toasty-theme-default .toast-text label{color:#fff}#toasty .toast.toasty-theme-default .toast-text a:hover,#toasty .toast.toasty-theme-default .toast-text label:hover{color:#f2f2f2}#toasty .toast.toasty-theme-default.toasty-type-default{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEEzQTA1RTUzMjJBMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEEzQTA1RTYzMjJBMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0QTNBMDVFMzMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0QTNBMDVFNDMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pr4ktvwAAADlSURBVHja7NrRDYIwEIDh1jAAozhKN/BWcgJ0A0dgBEbRCbCNkphaTAsPXpv/kkugELgv5eCh2HmeTQtxMI0EEG3RxQPW2mXT+Tz57JXUevd59XkLO1+9HQY+8x1DOKQ0h2TdCYhTjFjSxXWnekQqaAnJafa+AkjP6xcIECBAgAABAgQIECBAgAABAgQIECC7Y2oB8vB5qR0SEJKakW7Dxc7mtejyj8dpXL13Yn0knLy2LiFapiZnoWfUjtgDEW3NsgUiGru+FCJaX18lELWIEohqRC7kWMOXMa7b8ncQECA/4ynAAPBVcVo7OMcUAAAAAElFTkSuQmCC)!important;background-color:#efefef}#toasty .toast.toasty-theme-default.toasty-type-default .close-button:after{color:#000!important}#toasty .toast.toasty-theme-default.toasty-type-default .toast-text{color:#4b4b4b}#toasty .toast.toasty-theme-default.toasty-type-default .toast-text a,#toasty .toast.toasty-theme-default.toasty-type-default .toast-text label{color:#4b4b4b}#toasty .toast.toasty-theme-default.toasty-type-default .toast-text a:hover,#toasty .toast.toasty-theme-default.toasty-type-default .toast-text label:hover{color:#585858}#toasty .toast.toasty-theme-default.toasty-type-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEEzQTA1RTkzMjJBMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEEzQTA1RUEzMjJBMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0QTNBMDVFNzMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0QTNBMDVFODMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCIVOQAAALtSURBVHja3Jq9axRBGMZnj+ViAhbaaISLR1AUBBNjEq7zD7gUiqIIgraKVf4Ay9gljYVFiliJEklyJE26dJsPYy5pE/AQtNNC8SMXHJ/BN7C3O/exe+/c7twLP5jmZp7ndnZ25n3HkVKKboiM6JJwmfrpA6fACCiAIXAB5H1/1l/wEeyDMvDANvgGfrYrwGlzavWDcfAQ3IrZxwJ4BTbAl9hKlJEY5MADsCv5Ypf6zMXRFPUHLigCT5oLj8ZwTRk5C57LzoUaq5/byFWwLDsfS+Ayl5EC87sQNTZJQ0OdzVYttYS+oWU1yVDL9D1auiN/EM+BmRSYEKRhhjRFMpIFT0ExRR/vImnKRvkgqh+9Az0p24n8AbfBSitPZAA8YzJRBT+IKkN/PaRtoJkRB9ygbQdHzILTxCxTn+Ok0WlkRO2dJhmnwhE9iSq1uWKStGqNOOR2mHHAM7TijFCbK4ZJq6N72U+A1+Am44C/wHdqnwS9jH0vgvvgd9CIWqM/WXTYUuebHPgcnFqjlp0YM6Q59I4UDAymDkuPiQ0D/Rd0R90hQ0ZeUvsK47Ie0uw3Mmjo8WcNJjoGdVMrb2Agp06bK/I6I66wL9yuy2tlAtsJ2+JIZ6RioZGKzsiBhUYOdEbKFhop64x4FhrxdEa2VAbVIhOSNIeMfAUli4yUSHPIiDrYz1lkZI40h4xI2uTtWGBih7TKel92VZ+YNjCXud+9aRGopbiaQdfILceWewJcpPYlxqPBWvDPqZegUwLmRToTdHfAcqO9lj9W6fGlaTmWpGm12abRH4fghdCkJhOMFdJ0qD34tFBWeAuuJWziA7grYpYVBP3wifhfn0gqtknDfuOJ11rpTZW/SglUq0qcpbdjVGFyqoMmpkwUQ/3l6QmwbtDAOo3hmqyzBy8M7DEa2GvnwkC7VzhUvngMPBLxk9+LtAHcFJTHjZV3YrrmdHyp5rqovVRzXtReqqmI2ks170VKLtWkMh1kdfwTYADvtL/RevtcWAAAAABJRU5ErkJggg==)!important;background-color:#3ebfa8}#toasty .toast.toasty-theme-default.toasty-type-wait{background-image:url(data:image/gif;base64,R0lGODlhIAAgAPcAAAAAACZOTh5eXiJSViZUVCRUViZUVlp+gCJWVjxmaC5cXGKEhlyAgE50dM7Y2MzY2GCEhDRgYjhiZDhkZDhkZkJsbFZ8fDpmZjxmZkZucEhwckpwckpyckpydExydEx0dFB2eFp+flJ4elZ6elZ6fKq8vFh+fmCAgmKGhsbS0maGiJywsGSEhrTExJiurn6amrLCwhhMTCJUVq7AwCJUVBxUVCRSVCJSVCRSViRSUiJSUmyKjChWVj5oajJeYE50djZiYjpkZkRsblh8fkhwcFJ4eFR4elh8fChYWCpUVCpYWCpYWixaWixaXC5aXIagoDRgYCRUVD5oaEBqakRubkBqbEJqbE52diZWVjBcXjZgYihWWDJgYCZWWCRaWi5cXjBeXlB2dlp8fjJeXiRWVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEFAGUAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAIAAgAAAI/gDLCBxIsEyUAgUG0KCBsACBghAjliEwwEbDiw1xFNAhMWIBjRgbZkGCseNAHg15SGCCMcKBAwkw0uiIgGEBHkYOgCBwscLLCiEfQuRhswCSEC8jNCQAImlIHDMLhvR54AdPoy8PoHwqNaQSpAeUFgDy8sdFAhF6GEg4kADIs0LKIqQ6pefLHgVqChxgNAvGJVl9FGjgtACTpi8/NBRoUYNOClsLZDhgQkGBCBs6YCkgwUTWDiQRGsSa1UIPkkgmhL6YICtMjFcJVAD7MkTMkAh7vBRhGXdDJD0sZOXgu4CBDBlWY+SLUUJTscWL47jhW7nvCUJ6XADiQ8HaAdSD/q6NbmABivPoDyREcBGJhAwWLFjHyAO9fQgfES7pccX1ASDRETBBBhw0IIIFDBDHnmT+HWBBb7jxdFWEBbRWVg8KTBjUCymEUFwZOPAwhQQ8TOiDBcmd9YMDLJ5gUUll+IaFCC/FpEAFUxjgQwssOsDCi4uVocOCdlHGEmEHCBYBDD3u8CINZAwUkg9Z3bbBSxIg5MMMPaoQZFsNzfiSB1fF9RpCCpTA4hMEREVQUVSZsERDuh0AVEMKrODCEgTkEJFbBdQ5wUUTvKQBbAQQgEVHNGgUQQIaUnlAAyHR4KdJZQxAJJ4vgXARQ5i+iZsECUBYQJShQnQVDgMMgMOCA5gGBAAh+QQBBQBcACwAAAAAIAAgAIcAAAAmTk4eXl4iUlYmVFQkVFYmVFZafoAiVlY6ZmYsWlpmhohKcHKetLQyYGCesrI2YmI4YmQ4ZGQ4ZGZAampQdnhCbGxEbG5Ebm5GbnBIcHBIcHJOdHZWenpSeHhQdnZWfHxSeHpUeHpUenpWenxYfHxYenxYfH5Yfn5afn6csrKYrq4YTEwiVFYiVFQcVFQiUlQkUlaMpKYkUlIiUlKKoqSGoKKEnqB6lph4lJZqiowoVlY+aGguXFxMcnQ0YGJAamxOdnYoWFgqVFQqWFgqWFouXF4wXF4wXl4yXmBKcnRKcnIkVFQ8Zmg+aGpCamw8ZmYmVlYuWlw0YGAoVlhMdHQwXFwmVlhOdHQkWlosWlwkVlYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gC5CBxIkAuTAgUGuHCBsACBghAjciEwYEbDiw1jFKAhMWIBjRgbGhGCsePAHQ13RFCA8ceBAwkwuuiIgGGBHSIOVCBw0cJLCyEfQtxhs4AQFC8hNCRQ4eWPkDFmFgzp8wAHnkZfHkAJdWpIIkgPOEAI4SWHiwQcUDCQcCABkGgvmEVYlULPl3ZrChxg9AhGBVqRFODgFKGCpi+rNBRokYHOBFwLYDhwokcBBwx8RCkQ4YRWHyQRGsyqtQMFkkIkhL7IQ+uBJhixErAQ9iUKHiEbtj4QwnLuhkJ4gPj8u4CBDBhWY+SLMULTp8Wjx4DxW/lvCBQSRPhxRMHmAdSD+7KNTsC11hAJEVwUEiEDiA7WMUYxb/sjwiIUPphXGh07hswVjJBBAepJRh8IvuVGwHi/8dSEVhzw0ANWuRmwwAo+UFhSDDtQEMEOFCIBQgbKzdZAAw+cFZJAv0XhwUu49WDBWj3IcGIDHqzIBQ0F3nVACSwRJlYBR9RwYwkNubDFQCE5oFVMBTh2QAQI9WDDjSJgVRCFLr6UIUJyHYCbYTecqAMBUhFUVFUnsITQbkA1pAAOORBBwAwRvVUABS9JcJEELzEQGwEERNGRCxpBkICGTloVkgt4msTFAD021MNLFVzEkKRq5hZBAgkWsCSnEGEVwwADxFCgpAEBACH5BAEFAGQALAAAAAAgACAAhwAAACZOTh5eXiJSViZUVCRUViZUVlp+gCJWVj5oaCxaWmCCgl6Agk50dtji4jRgYqq8vDhiZDhkZDpmZjxmZjxmaERublZ6fD5maEpyckx0dE50dFJ4eFh+flR6elh8fFp+flZ6elh8fm6OjrTExmyMjq6+wHSSkp6ytBhMTCJUViJUVBxUVCRSVCJSVCRSViRSUiJSUiJQUmqKjISenmSGhihWWEBqbDBeXlB2djZiYjhkZkZucFZ8fEpydFJ4eoCcnIigoipUVGKEhCpYWk52djRgYHiUlCRUVIykpEZubpywsD5oakJsbEhwcExydEBqakJqbERsbkpwciZWVi5cXChYWDJgYFB2eFR4eipYWCZWWChWViRaWmaGhi5cXjJeYDBcXiRWVkhwcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+AMkIHEiQDJICBQasWIGwAIGCECOSITCgRcOLDV8UiCExYgGNGBviIIKx40AbDW1EUIDxwYEDEzCu6IiAYQEbHg5wIHCxycsbIR9CtGHzZoeXDxoSyIE05IuZBUP6PNCA582XB1A6jRqSyNEDSQvoeNngIoEHTAwkHEgApFkLZBFOBdpwKpMCNQUOuIkDowKsfRs0LaCA6UsNDQVazKBzgtYCcDtUKfAggwYqBSJ8PaCBJEKDV7FeYELShgTPFxNgPUABo1UCTTYf6JAgZEPVBzxMtp0ywQWsGXgXMMDDwmOMezFG4ABWuPOPLngf562DyYQID3AowDwgelC1zgn8rMbqISGCi0Qi8PhwYTpGKuNfdviIkAgTw1h1PNdxw4LlHB7wgBdCcI13wW68WZVgARVg1UACVSgYVAYzUCDhRWS8YMMNEdigIA4f8KAVASRGMMKJCVxYgEC8UcHcASnyQAMQNhAxxIkj3HChQDGch9FUHShAAAQOOFCWAjee2IRVK4gxUEhXYBUTASgUOQRCCiyA45KfEaSgi4fxREASRZ5gFREMnFgWVAQVdYN8LDl0RJFBKOhVewTAEFFbBTDxkgQXeVHkEha5RkVHK2j0wAQSclCkCYU2tIKeJpExgI+pFUlCpAxV2mZQNYyQQKROegqRVS9094KPlQYEACH5BAEFAF0ALAAAAAAgACAAhwAAACZOTh5eXiJSViZUVCRUViZUVlp+gCJWVjxmaCxaWl6Agk50dqi8vDRgYo6mpjhiZDhkZDhkZkJsbFZ6ejpkZjpmZjxmZkZubkhwcEpwckpyckpydExydEx0dE50dFB2eFh+flJ4eFR4eFJ4elh8fFp+flR4elR6elh8foqipBhMTCJUViJUVBxUVCJSVCRSVoagoiRSUiJSUnyYmnyYmHCOjm6MjmqKjChWVkBqajJeYGiIilB2djZiYkRsblZ6fEZucEhwclJ2eChYWCpUVGKEhCpYWCpYWk52djRgYCRUVDZiZD5oaEJqbERubkBqbD5oaiZWVi5cXChWWDJgYCZWWCRaWi5cXjBcXjBeXlZ8fCRWVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+ALsIHEiwy5ICBQa0aIGwAIGCECN2ITBARsOLDWEUmCExYgGNGBtiIYKx48AcDXNAUIDRwYEDCTC26IiAYYEcJw6AIHBxwssJIR9CzGGzAJEQLx00JAAiaUgYMwuG9HmAAU+jLw+gfCo15BGkB5QW8PGSwUUCDnQYSDiQAMizP8oipKqj58u6NQUOMJoFo4KsOwowcFpAQdOXHhoKtKhBp4StBTAcCDGlgAMNHKQUgAD2AAeSCA1izUpBB0kiEUBfTJAVJsarBCZ0nhwzJMImL0lUtt2QSBMgWTfwLmAgCAbVGPdihNBU7PDhMF7wRs7bh44EEBxkUaB5gPSga5/2E2idlURCBBeJQMhQggJ1jFLIvwzxESESHT3I+3g+VgeGDB2AgEIQBaAXmXxA7MYfbzyxVlYTU1zFm2z78dYFDDnoAEEOEu5QQhDU7ZAVBBIq1gVvUojwUgIENIEDDzkQQUJWEZRYgEAzGGjXZAoQEEMDDQB1xGEwXdUCFwOFJOKKDtEApAgIEUFkBSa21VCKL3VwlQ1ALnCVlC/9UEBUBBVFVQgsIWQEkDdImMMGGkhBgAwRuVWADi9FcNEJQNJgGwFSdNSCRg6weBEGQKoQUgt0mtTFADo2BAGQD1zEkKNlBjXCARBchCSmEF0FwwADwGCgowEBACH5BAEFAGYALAAAAAAgACAAhwAAACZOTh5eXiJSViZUVCRUViZUVlp+gCJWVj5oaC5cXF6AgFyAgFB2duTq6tjg4jZiYjhiZDpiZDhkZDhkZjpkZjpmZjxmZjxmaERublh8fj5maHiWluLo6EpwckpydNri4kxydEx0dE50dE50dk52dlJ4elp+flR6elZ6elZ6fFh+flZ8fHSSknqWmHKQkMjU1IykpIiiotbe4JqwsBhMTCJUViJUVBxUVCRSVCJSVCRSVoCanLDAwiRSUiJSUsbS0myKjChWWEJqbDRgYFB2eEZucEpyclR4emiIiGSGhmKEhihYWCpUVCpYWCpYWixYWixaWi5aXDRgYiRUVEBqakJsbEhwcD5oakBqbERsbkhwciZWVjBcXiZWWChWViRaWi5cXjBeXjJeYCRWVjJgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+AM0IHEjQDJUCBQbcuIGwAIGCECOaITAgR8OLDXcU+CExYgGNGBt2YYKx40AhDYVEiIKRyIEDFjDe6IiAYQEhKA4UIXDRysshIR9CFGLz5omXEBoSaPBySsgdMwuG9HmgAc+bLw+gfCo1pJOjB4gghPCywUUCRKoYSDiQAMizGV6SQEgVaMMhL6sUqClwwM0uGJ9kFVNgRFOEUZi+FNFQoEUPOilsLRBXg4ICRDx84FIggoasH0giNIg1a4oqJIVMEH0xQdYDFzBeJTAE7MsTCUI2dH3AxGXdKROoAA28gAEjGSZj9IsxQpGwxaN/1AFcOXAIVSxEINIlCucB1IP+ro1O4HVWEwkRXGQSwQiLFNYxcjF/+yPCJ1UUZ00aHcKQDB6E0AAKRuyFUFzmqfCbdMDxhEFWDSSgAAEEWKTbEBrwp5sZOwhRRQRCXFWACDPQsCBCLr0UgYiNmQGcE0A44IALBEBQRANCMGFCVhOwWIBAP6h3VgwygpCbEhxwMEEBTjz30gVX3UDGQCE1IKMDL/C0QJJ2MaFfBS221RAUMMjYw1UoJOlBSoplUEBUBNlEgAwyPiBBQyEkiYKIQnzgARcE+BCRWwTwIGMQIlqRJAM+OsRFRzfsQMACLbBYQZJK+HiDoCaZMQACPnaRZBIiMtRpnEFZYYQYIk55KkQKV+0wwAA7CNlpQAAh+QQBBQBcACwAAAAAIAAgAIcAAAAmTk4eXl4iUlYmVFQkVFYmVFZafoAiVlY8ZmgsWlxegIJOdHS0xMSyxMQ2YmI4YmQ4ZGQ6ZGZCbGxWenw6ZmY8ZmZEbm5Gbm5GbnBIcHBIcHJKcHJKcnJKcnRMcnRMdHRQdnZafn5QdnhSeHpYfn5UeHpUenpWenquwMCsvr6qvLyetLScsrIYTEwiVFaMpKYiVFQcVFQiUlQkUlZ+mpokUlIiUlJykJJwjpAoVlhAamoyXmBoiIpOdnY4ZGZEbG5YfH5khoZWfHwoWFgqVFQqWFgqWFosWlpggoJOdHY0YGA0YGIkVFQ+aGpCamw+aGhAamwmVlYuXFwyYGAmVlgoVlYkWlouXF4wXl4kVlYwXF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gC5CBxIkEuTAgUGxIiBsACBghAjciEwwEbDiw1pFLghMWIBjRgbYiGCseNAHQ11QFCAccmBAwkwxuiIgGEBHSYOjCBwccLLCSEfQtRh86aIlw8aEgjxkklIGjMLhvR5IATPmy8PoHwqNaSRoweWIHzwMsRFAkt2GEg4kADIsxde+kBIdUfPl3ZrChxwMwvGI1l5FGDQFKECpi9BNBRocYNOCVsLxC0xpcASDh6kFIBQIqsHkggNYs1KYQdJHRFAX0yQFSbGqwQmgH0pImZIhE5ekqh8O6UTClk79C5gIMOFyBj5YoQwIuzw5x9n9Ebe+8GOBBCWZFGgeYD0oGuf+BNonZVEQgQXiUDIMIQCdYxSyNP+iPDIDsRZkz63fkHDhxAnZFAAepLJRwFv0PXGE2tlOTEFbLdNUIJ+t3FBgw47QKDDVQVMsEINLF3EQ1YQcLgYF70Z0UIDDQhRwBQTqEUECVlFYGIBAt1AoFI4sJhCUoQdIJgRzb2UwFUxaDFQSBiw2MACPHHwEgQIEYGfBCe21dARLLAIw1VxuYaQDohdUEBUBBWVA4sqiIXbTxfp0AEHUhBgQ0RuFdADiwdwGMFLGtxGgBQdxUDDUkmYOOIBDIQUw50mcTEAAjcqUNZFDEWa5m0QJBAiQkpqCtFVNAwwAA0ERhoQACH5BAEFAGkALAAAAAAgACAAhwAAACZOTh5eXiJSViZUVCRUViZUVlp+gCJWVj5oaC5cXGiIiGCCgk50du7y8tzk5GSEhjZiYjhkZIKenuzw8DpkZjpmZjxmZjxmaEZucFh8ft7m5kpyckxydEx0dE50dFB2eFp+flJ4elR4elR6elZ6elZ6fFh+flh8fH6amoSennyamsDMzhhMTCJUVp6ystri4iJUVBxUVCRSVCJSVCRSVoiioiRSUiJSUqS4uHSSlIagoMDMzGqKiihWWEJqbDJeYGqIilB2djhiZDhkZkpwcEpydFJ4eChYWCpUVCpYWCpYWixaWixaXC5aXDJgYDRgYDRgYkhwcCRUVHqWlnSSkkBqakJsbEpwckhwcj5oakBqbERsbkRubiZWVjBcXiZWWChWViRaWi5cXjJcXDBeXjJeXiRWVjBcXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+ANMIHEgwzZQCBQbEiIGwAIGCECOmITBgRsOLDWsUwCExYgGNGBt+QYKx40AfDX1IYIIRyoEDFjDG6IiAYQEfIw6AIHDxyssfIR9C9GHzZoiXERoSAPEySsgaMwuG9HmgAc+bLw+gfCo1pJKjB54gjPCywUUCT6wYSDiQAMizXMoipAq04Y+XVgrUFDjg5heMS7ICKdCgKUImTF96aCjQIgedFbYWyHBAg4ICTzh08FJAgoasHUgiNIg1awkrJFWKvpgg64ELGK8S+AH2ZYgEIRu2PiDicu6UCUxk5fC7gIEMGSRj7ItRAlMoxaN/pPFb+e8IVixIgPKFCecB1GP+G1By9TcB11lFJESAkMAMID1ybHjwt7gX9LY/Ooywg4WD//9BIF0EP2SgGQgkZKCXQy8ACOADxElXHE9UAMiCCkUQoGF5F/2gQVK/pVGDAjYsQIZFCEmQAgNKYAREVhJwOFoaDtWYkg4TTGCWAj+ohYQIMMooEA7snaVBjikMVtgBgymR2GtXxXDGQCFVkOMEHPD02AESIITEkxUwRlB5PuA4QQ8oxnUAbgj5kBgXBURFUFEmIOlbAbtdcZEPHHDgBQE3RORWASLkKEV5ErwUYWxedBSDRj90wOGLVYUUQ6AmpTEAAjIq8BIIFzGU6Zy5SWDBnQVMOSpEV9UwwAAFNRSZaUAAIfkEAQUAXQAsAAAAACAAIACHAAAAJk5OHl5eIlJWJlRUJFRWJlRWWn6AIlZWPGZoLlpcZoaITnR0vszMvMzMNGBiOGJkOGRkOGRmQmxsVnx8OmZmPGZmRm5wSHBySnBySnJySnJ0THJ0THR0UHZ4WH5+Unh4Unh6VHh6VHp6Vnp6Vnp8WHx+Wn5+sMLCsMDCrsDAmrCwGExMIlRWhqCgIlRUHFRUJFJUIlJUJFJWJFJSIlJSgJqccpCQbo6OboyMKFZWQGpqMl5gUHZ2NmJiOmRmRGxuWHx8SHBwKFhYKlRUKlhYKlhaLFpaLFpcTnR2MmBgNGBgJFRUPmhqQGpsRG5uPmhoQGhqQmpqQmpsJlZWMFxeKFZYJlZYJFpaLlxcMF5eJFZWLlxeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP4AuwgcSLALkwIFBrx4gbAAgYIQI3YhMCBGw4sNZxSoITFiAY0YG1YZgrHjQB0NdUA4gvHBgQMJML7oiIBhAR0iDnggcHHCywkhH0LUYbPAkA8vHzQk4CFpyBkzC4b0eaAHT6MvD6B8KjVkEaQHlBbw8bLHRQIPdhhIOJAAyLNAXiZBSHVHz5d2awocYLQKRiNZeRRg4LTAkaYvOzQUaBGDTglbC1w48MHvgwwbqBSAAPbABpIIDWLNSmEHySERQF9MkBUmxqsEJnSmHDMkwiYvQ/i13XBIEwpZNfAuYODCBdUY+WKE0FTs8OEzZPBGztvHjgQQHlQ5onmA9NcEdPZc5U2gddYQCRFcrPLBBQoUCp5TMf/yw0eEPHCsaMCf/4jnY+1wAQYceDDCBQWoV4AN/fWngl0ADsfTAv2tkIMU49kmmw/DdTHDETd8oEAMV/FAwXEY8ZAVBBmG1oVDLVIBwksxVTGBWkOEkFUELQpUg4J3UcYSYQcIVgRiMF31whYDhaQijQhl8BIECA2BZAWLETSejC9xcFVcrlWJGBAFREVQUVR9YERDuB0AVEoaZEAFATRE5FYBO7wUwUURvISBbQRQ0dELGj2QQIZPMhDSC3Wa1MUAQDakwEseXMSQo2faBkEC8TXEJKYQXTXDAAPMoKCjAQEAIfkEAQUAaQAsAAAAACAAIACHAAAAJk5OHl5eIlJWJlRUJFRWJlRWWn6AIlZWPGZoLlpcZoiIYoKETnR2+Pr61NzcZIaGjqao9vj4NGBi8PT08PLyOGJkOGRkOmRmRG5uWHx+OmZmPGZm5urq4ujoSnBySnJ0THJ0THR0TnR0Unh4Wn5+VHh6Vnx8WH5+WHx8hqCglqysdpSUjKamztjYvsrMjKSkgpycGExMIlRWsMDAIlRUHFRUJFJUIlJUJFJWdJKShJ6gJFJSIlJShKCgcI6OKlRUQmpsMl5gUHZ2NmJiSHBwSnJyUnh6VHp6KlhYLFhaLFpaLFpcMmBgNGBgJFRURm5uPmhqRGxuRm5wPmhoQGpqQmxsUHZ4Vnp8JlZWMFxeKFhYKlhaKFZWJFpaLlxcMlxeMF5eQGpsJFZWKFZYJlZYLlxeKFRWKlZYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP4A0wgcSDDNkwIFBtSogbAAgYIQI6YhMOBGw4sNcxToITFiAY0YG2pJgrHjwC0Ns1hYgnHCgQMJMNboiIBhgSwmDpAgcFHKyyAhH0LcYrPAlhIvJzQkMCRpyBwzC4b0eaABT6MvD2QJ+VFqyCRIDygtQORlg4sEJkQxkHAgAZBoM5hFSBVowyAvoxSoKXBAAQVWrxZQklVIgQZOCyxp+lJEQ4E3CNBw8EBHkqtyNWgpMOEDiK0WNGQFQRKhwb8OUjvoAEMIgS0XSl9MkBUmxqsEVlBQ7YBCDK4Io7w0sRl4gRtgVHhQ/cIiVwNTMqDk6vdilx8uHDAwzv0jjqAEXP53JxIlgYUJWpZsHfA9pIGt3AnUzmoiIYKlSz4sUKFCNtcs871UwkcIaaEBCxEkmCAU4wWRwQchDIHEFHshBIGCCu5gQXfxFUCCgiycsCF3QWhAhHFp5ABWEUo4hJAQGkwxXUNCZGWBYI+lgRCON5HwUkxaBFGFAUnk9NIFPArUw30YUaUBS4gdYFgSPv54VQ1jDBRSjT8i9MFLIybB2AEY5OhWSlWGgFmXCG3BWAYFREVQUXgdoEGLwb0kxUVZgPBBFgTwENFbBQh3wAUXXfDSB1wRkEVHNWg0QQI4cnmWTIKalMYATF6kwEtDXMSQpnNyZUECClyUJakQXZXDAAcD5MCkpgEBACH5BAEFAGIALAAAAAAgACAAhwAAACZOTh5eXiJSViZUVCRUViZUVlp+gCJWVjpmZixaWlyAglyAgEpycsjU1DJgYMbU1DZiYjZiZDhiZDhkZDpkZkBqbFJ4ekRsbkRubkZucEZwcEhwcEpwclB2dlh8flB2eFh8fFh+flJ4eFp+fqi6ul6AgsLQ0JCoqMLO0HCOkJywsLrKyrjGxmKEhHSQkhhMTCJUViJUVBxUVCJSVCRSVqy+vnyYmCRSUiJSUihUVj5oajBaXE50dDRgYkJqbFR4eihYWCpUVCpYWCpYWixYWmyMjDJeYExydEpydCRUVDxmaEBqakJsbDxmZj5oaE50dkx0dCZWVi5cXDRgYChWWDBcXiZWWCRaWixaXFR6ei5cXjBcXDBeXiRWVihWVi5aXFZ8fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+AMUIHEhQjJICBQbIkIGwAIGCECOKITAAR8OLDWsUyCExYgGNGBtaCYKx40CSCKVMUIDRx4EDCTDK6IiAYQEpQA6AIHARw0sLIR9CDGKzQBARLyM0JODhpY+QNWYWDOnzgAeeRl8ekBLy49SQQ5AeeIAwwksPFwk82GEg4UACINNWhYKwKtCGP17uKFBT4IACCjAQwApY65ECPZwiVND0ZZSGAnEQQOHAhosqWDMc+DClwIMGSLhO+KAVCcoCBgE7WO2AxQsrBIJQON1widYDSzBiJXDjBGsHJ4wQxrjj5YXOXRvyUNGC9YrkBQxoyED74t+lOkyUcAAEuvePNIL+EpgyvGuEHQkm+LCigOuA8CENcPVO4LbWCwkRXJTdQMSH6hhJYd9LInyE0BAWeLDAggtK8F0EFmQAmgdaaMAXQhswyOAHVnxHXwFLMOiBBVa0Bd0PHyiVnBg1SGHBbIQd8YEG1T2g1QTloSZGclJc8FJuU1hggQFB+PgSBeUJlIN+GFX1AUuJjVXAECBotQRWMngxUEg2vhRTAQ28NAFCQTQGE2QEEdbjS0hgVVVuZDaGQQFSEVSUBS892VBxB8zZkBQNNCAFAThEBFcBfFJwEQUvNdAVAVJ0JINGESQwXJc9hCRDoSaJMQCTF01x1kUMdWpnVxMkgBxCWpoKEVYJNQwwQA1MdhoQACH5BAEFAFcALAAAAAAgACAAhwAAACZOTh5eXiJSViZUVCRUViZUVlp+gCJWVjpmZixaWlyAgEpwcpiurjJgYJSsrDZiYjhiZDhkZDpkZkBqbFB2dkRsbkRubkZubkZucEhwcE50dlJ4eFB2eE52dlJ4elR4elR6elZ6elZ6fFZ8fFh8fFh8flh+flp+fo6mqIykphhMTCJUViJUVBxUVCJSVCRSViRSUiJSUoSeoIKcnniUlnCQkChWVj5oaC5cXEx0dDRgYkJsbGKEhihYWCpUVCpYWCpYWi5cXjBeXjJeYEpydEpyciRUVEJqbDxmaD5oakBqajxmZiZWVixaXDRgYChWWE50dDBcXkxydCRaWiRWViZWWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+AK8IHEjwypECBQa0aIGwAIGCECNeITAgRsOLDWEUkCExYgGNGBsK8YGx48AbDW9EUIBxx4EDCTC26IiAYYEbIA5wIHDRwksKIR9CvGGzgI8TLyE0JFDh5Y6QMGYWDOnzQAWeRl8eQAl1akggSA84QAjhZYWLBBwoMZBwIAGQaKtuQFgVaEMeL5UUqClwQAEgSdg2VKB1SIENThEqaPpSR0OBMQjYaDCjgg+sFw6YyFHAAQMdTQpEMKFVB0mEBv82WN0gxQKWPiScvohD64EkGLEW6PGAdYMHJHRjrH3gA+eQSxWgUMG6hvCLBjJcmI3R71IDOmg0wIC8O0YYL5D+G1DwPCQEJQki7BiiIPSA8EEFeydgW+uHhAgu+oiQgYQI6iE1Ud9LJ3yEUBBKMKaVUt4VAAEFF3xWQQgZ7IVQZvWNcFyD8xWQhFYV4JBDeRfxYAKDyF0Bww0URHCDbkOQkAGADmgVQXkCddcEBy/hUEAOFFBggA8faCXBcwLJkB9GVZXAEmJi/cXjS0lg1UIVA4VU40sxFcDASxEg5IOCXRZQkG47NoZVVT6KyZgFBUhFUFEUvGQCSwgRB2dKRTDQBAExRPRWAUq8JMFFErzEAHIENNFRCxpBkIBwW84lU6AmXTHAkhflYNZFDGU6J3IRJLBhAViKChFWMAwwAAwES2YaEAAh+QQBBQBnACwAAAAAIAAgAIcAAAAmTk4eXl4iUlYmVFQkVFYmVFZafoAiVlY8ZmguXFxcgIBMcnTS3NzQ2to2YmI4YmQ4ZGQ6ZGZCbGxWeno6ZmY8ZmZEbm5Gbm5GbnBIcHBKcHJKcnJMcnJKcnRQdnZafn5QdnhSeHhSeHpoiopYfHxUenpYfH5Yfn5oiIqGnqBmiIi+zMyourrO2NiKoqKsvr4YTEwiVFYiVFQcVFQkUlQiUlQkUlYkUlIiUlLK1taOpqaywsLM2NgqVFRAamoyXmBihIZOdnY4YmJEbG5WfHxWenwqWFhggoIsWlosWlwuWlxOdHRMdHQyYGA0YGA0YGI2YGAkVFQ+aGhCamxAamw+aGpOdHYmVlYwXF4oWFgqWFooVlYkWlouXF5mhoZihIQwXl5YenwkVlYoVlgmVlgwXFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gDPCBxI8IyUAgUGzJiBsACBghAjniEwoEbDiw1vFMghMWIBjRgbZjmCseNALQ2PIJGA8cmBAwkwzuiIgCEBBSwa8CBwccLLCSEfQtTCEGEWFw0alGhI4MNLKCFvzCwYUkVSGDwLaHl5AEvIj1RDRkHaQATCBy8/XCTg5IeBhAMJgLxY40XSFgh9HvjR8yXfmgIHFMACJCtCCA6SMigg5CnCJE5fNmko0GIIEgumeEW4o4EODGw3MPAK4QRXBiQRGtRKojWJIBdIZlmRxTDCBFxhYsxKQMMK1yRWAP1aYMrLEQqIIyRw5EIQ1xRsXzSQ4QLKr4KnJ1hAIoLy7x9t/nxlDr7Agx8JIDzJksTrAPFB334nkJvriIQILh6BkKEEhevEYVHfSyB8hNAWP0TG1QPgnXeBBgx8YEIGBeRXwAUDFpFcecTxhFtaUyggHUYTnMAgcWfcgMUPEHBhGBAlZAAgQkBwBcGIAgUowksxKTCBW0eMwFUE0gmUg4V9HVBCEgUw8RIQBRwRAlcJZDXDGAOFVCOPCG3wEgQIHaEgS6oRZBgWOx7AQFYY6oaQFpFdUMBUBBVVgF4nMImQcQcMhxAWHGyABQE4RCRXAT+85F1DEbykwXhYdDSDRg9UedGWQoQ0Q6EmnTEAkg0pkNZFDHVa51cQJLAhQliaClFWCTcMMMANFnYaEAAh+QQBBQBeACwAAAAAIAAgAIcAAAAmTk4eXl4iUlYmVFQkVFYmVFZafoAiVlY8ZmguXFxsioxKcnSkuLigtrY2YmI4YmQ4ZGQ6ZGZCamxSeHo6ZmY8ZmZEbm5GbnBIcHBIcHJKcHJKcnJQdnZYfHxQdnhWenpYfn5SeHhWenxWfHxYfH5afn6gtLSetLSesrKUqqwYTEwiVFYiVFQcVFQiUlQkUlYkUlIiUlKKpKSIoqKEnqBwjpBujI4oVlg+aGoyXmBOdHY4ZGZCbGxUeHpGbm4qVFQsWlosWlwuWlxMdHRMcnQyYGA0YGA0YGIkVFQ+aGhAampEbG5AamwmVlYwXl4oWFhOdnYqWFpOdHQmVlgoVlYkWlouXF4yXl4kVlZUenoqWFgwXF4wXFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gC9CBxI0EuSAgUGtGiBsACBghAjeiEwIEbDiw1hFJAhMWIBjRgbPoGCseNAHA1xdHiA8ciBAwkwtuiIgGGBICoazMDY4+WEkA8h4rB580SDBhsaEujwEklIGDMLYiSw4CiNlC8PoHwqNSQXB0cxIHzwssNFAkZyGEg4kABIjDeO1iBQoOeBnw0nvMxRoKbAAQVwPMGoA2yDnzuaIgzC9CWRhgItajjwQcJWAjYaoEiAdgMDJwUghMjKgCRCg4GzHgCRg2QQHwroXkygOuZZhAQmjM4awnbIAjleUlDw+yKOHCNIFy9gAMOFrSEBY4Tw4cCR5dg/vigOffmDHAkg+Bx5EgT0gO1A12InoDorhYQILkKBgMEDiO4hnbR/GeIjQik5NJYVS9g9MMEFGRDRgRZixVfABfuNQFx2y9FFW1k5xIadbgT+5gUMOCwBAQ6yFaCDBxjgp0NWEJQImRfFOUHBSzEpMMESBkAx40sRuFiAQDI4eJFdHgRRQGIH6FCAFNXRKFsLWQwU0oo0IrTBSxAgBIWAErzYVkMyOiYbhDCl1NgFBURFEFF6HRCCkQgFd0APxjGwgRMExBCRW8DxeFEEL2XwGwFOdNSCRg9wdhGVO4TUgp4meTGAkA0pUNZFDEW65m8QJDAhQlFqCpFsMAwwAAwORhoQACH5BAEFAGkALAAAAAAgACAAhwAAACZOTh5eXiJSViZUVCRUViZUVlp+gCJWVjxmaC5cXGCCglx+gE50dN7m5tzk5DhiZDpkZkJsbFZ6fDxmZkhwcHKSkt7k5EpyckpydExydEx0dFJ4eFh+flR4elZ8fFp+flZ6elh8fFh8fnCQkIagoG6OkLLCwoykprrIyqS4uBhMTCJUViJUVBxUVCRSVCJSVCRSVoykpLTExKi6uiRSUiJSUmiKiipUVD5oajRgYFB2djhkZDpmZkRublh6fEpwclJ4elR6emSGhipYWGKEhCpYWixYWixaWixaXC5aXDBaXE52dk50djZiYkhwciRUVDZiZDhkZj5oaERsbkBqakZubkBqbEJqbEZucFB2eCZWVjBcXihYWDRgYiZWWChWViRaWi5cXjJeXjBeXjJeYCRWVihWWDJgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+ANMIHEgwDZQCBQa0aIGwAIGCECOmITDgRcOLDWMUsCExYgGNGBG+qDCGwMWOA7s03JKDC0YRDhyQMNmwRUcEDAsQuWFhCE2HKGKW+InwIcQuOXWSsGAhQcMXKWJOCBnDZkGMBHYwLUJzScwHR0J+vBryyFILERAyiDnjIgEdOQwkHEgApFsOTBcQIBDUwdCGEg4cyFEAp8ABBbq4vKjgLAQCJ6QiRLJD8IENDQVaxHCAQ4QtRT1YIKGDwAQVNIwUgNDBcgYimQ92sXxgQg7YRiSoLvqCQALaTt0WldDacofgYnMI9qBA7MUuOSZYxuC8gIEsPlSKRYwRAocDOqr+i/8Iw7l28U5yJICggwsS0APKhyQgVzwB2pY9JERwkQiECh9McJ5YW+AnWAcfIWREDpXR5sR4TlThQwUa7CBEFoUh5IOBEzQ3XnUm/SbYDjkoQFRIxD3oXBoxbFEFBGD8NMYHWQxYgA6WPRaSQM5t8d0BTikgQRUGEOGBZRGcKJAN/GEU2AEdIFFAA4KVodOPQNLUghkDhVSGZcFxdgAECBHR4AFpIVTQTz4KpgFNGwLZUBcN+lCAVQQl9WQHuxWg3AESXLQFBhhsQUANEdXlp2BpIsSDYBWIRcAWHbWgkRMJEPXlAQ2E1AKiKKUxQJOMjXgRQ6HmKRYECXiIEJcNqUJEUwwDDBBDk6EGBAAh+QQBBQBZACwAAAAAIAAgAIcAAAAmTk4eXl4iUlYmVFQkVFYmVFZafoAiVlY8ZmgsWlpegIJMcnSuwMA0YGCsvr44YmQ4ZGQ4ZGZCbGxUeno6ZmY8ZmZGbnBIcHBIcHJKcHJKcnJKcnRQdnZYfn5QdnhSeHhSeHpWfHxafn5UeHpYfHxYfH6UqqqQqKgYTEwiVFYiVFQcVFQkUlQiUlQkUlaMpqYkUlIiUlKGoKCCnp5ykJBsjI5sjIwoVlg+aGouXFxOdHY2YmI6ZGZEbm5WenxWenoqVFQqWFowXF5OdHQwXl4yXmBMdHQyYGAkVFQ+aGhEbG5AampAamxCamwmVlYsWlw0YGIoWFhOdnYqWFgmVlgoVlYkWlokVlYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gCzCBxIMEuSAgUGrFiBsACBghAjZiEwoEXDiw1fFJAhMWIBjRgb5tBB4GLHgTga4oCgAKOGBg0WYFzREQHDAjgoHPhQEiGBGjBthHwIEcdNnB4OHODRsMUJmAxCvqBZMOQEpR16KoD5oKXUqiGFJD3gAGEHmCh6OnSQw0DCgQRAXiTgQ+kOh0AbCG149UCOAjYFDsA5BKMCpQeKEIABFaGCDoiPNBRoMcNOCSkRXjjgQUeBDDRmCCkAYewBBqMRGsSJ+ICIHKNxREjt0GGC1gkw9iQwwTTn3CER5lBKwXNwlTlEII563MCFC5lDDsYI4QPZ49gzujgeHTuPHAkg9DgYouBJwu1D3WYn0BoxhYQILgqBcEGEiO4hn7RX6uEjQiE5QNYaU9nxwMQFGDDQAQUXAKbZfiIYlx12Jd2G1UhqBdcbgcFl8QIOTECAg1pFiAAdRg4gBkGGqmVx3BMgKJWbDhMwYYAQOikVAYsCyRAfRn150NIOShlRgBDWydjTClgMFJIRiAGngVIQ/CfgARVMRpBaT+TIQE91HQAcTgL6UABVBB0VpFcFDHfABBfhsIEGTxAQQ0RxtanjRREohUFwBDzR0Qoa8ZBAhlAecNdMd56UxQA/XqQDVhcx5GiawUGQgIQFNHkpRD29MMAAL/zoaEAAIfkEAQUAaQAsAAAAACAAIACHAAAAJk5OHl5eIlJWJlRUJFRWJlRWWn6AIlZWPmZmLFpcaIqKYoSETnR26O7uytbWZIaGNmJiOGJkOGRkOGRmQmxsVnp8OmZmPGZmfpqa5OrqSHBw3ubmSnBySnJyTHJ0THR0TnR0Unh4WH5+VHh6WHx8Wn5+VHp6Vnp6WHx+fJqagJycfJiawMzOlqysjqamnLKyGExMIlRWIlRUHFRUJFJUIlJUsMDAJFJWJFJSIlJSgpyessLCfJiYaoqKKFZWPmhqMl5gUHZ2OmRmRG5uVnx8SnBwUnh6KFZYKFhYKlRUKlhYKlhaLFpaTnZ2NGBgNGBiJFRUbIyMPGZoRGxuQGpqRm5wSHByQGhqQGpsPmhoQmpsUHZ4JlZWMFxeMmBgepaWJlZYJFpaLlxcMF5eLlpcWHp8JFZWKFRWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP4A0wgcSDBNlAIFBsyYgbAAgYIQI6YhMKBGw4sNcRTQITFiAY0YERKIwITAxY4DfzT8IUEBxikZMnTAOKMjAoYFfpA4IMKkSAsxSYR8CPEHzgJIRhw4EOGilJhAQuKoWTBkhaUNfC6JmQHJRZ84qoZcovTAE4RVYvrwWaBGiRUqBwwkAPIrEawIgWYQivDHCwcOdhC4KXAAUi8YmSw9EITAAqgIE7QA7ICHT4EWO/CkoBLh3RGIpzCA4NUHB8o3ziI0iHTxAQtAkiCdIFskAQI9KGsAw9ahyApll46YElJkBsAPZhZviASIhcUelueE4WLMcsMYJYgwK13kchw2lv577V4gApALEp54UdAlYfihBsgTcL1Y6AAEF5NI2FDCwvjlXdAn3EcIMQGEEPQ11V0EVRCxwQdCnGBFAfgVcBd9FlhHnnQmTbFYA0B40ZtVIyhYXBo4/FCFBD+wFUQJVvyHUBCLSTBiAQIBuN0BxHlRQRUGJLHTUhOMKJAOFV501QEjuNTAUkEUsMSOB2Dg0wxnDBQSjUtdgJBmB0iAUBIIdtlQQWx1seMHPl1IHEJIlElEAVQRdNSSIzDREBBLVXDRDx500AUBOUREVwF8HjDBRRMstUFxBHTR0QwaRXBBb1w2ENIMhaKUxn0hKbCUEBcx5KmdxUlwgUsNZXkqRAlgDTAADhV6GhAAIfkEAQUAYAAsAAAAACAAIACHAAAAJk5OHl5eIlJWJlRUJFRWJlRWWn6AIlZWPGZmLFpaZIaGTnR2uMjINGBitMbGOGJkOGRkOGRmQmxsVnx8OmZmRm5wSHBySnBySnJySnJ0THJ0THR0TnR0UHZ4Wn5+Unh4Unh6VHh6VHp6Vnp6Vnp8WHx+WH5+ssLCora2mrCwkKioGExMIlRWjqamIlRUHFRUJFJUIlJUJFJWJFJSIlJSgJycepaYdJKSbIqMKFZWQGpqMFxeaoqKaIiKUHZ2NmJiOmRmRGxuWHx8SHBwZoaIKFhYKlRUKlhYKlhaTnZ2Ml5gMmBgNGBgJFRUOGJiPmhqQGpsRG5uPmhoQGhqQmpsPGZoJlZWLlxcKFZYMF5eJlZYJFpaLFpcLlxeJFZWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP4AwQgcSBCMkwIFBrx4gbAAgYIQI4IhMCBGw4sNZxSoITFiAY0YG/IwgrHjQB0NdUBQgNHBgQMJML7oiIBhAR0iDnggcHHCywkhH0LUYbOAkQ8vHTQk4CFpyBkzC4b0eYABT6MvD6C8yHOG1JBIkB5QWgDISwYXY2TogXLAQAIguQo5i5DqjoYGcDRokKNATYEDjPLAqCDrkgIMnBKAoGJvgxVXBVq8oFPC1gIWDpgY7ACDhisEPqBw7GIwQoNYs1LYQdJIBJIYizh+sADjVQITxL78MCVkQx97U+y46tsoFApZMxS/aeMGS9+BMUJoSrY4AeIYZ8goDnt52R0JIPs44KHgSsLtQQ14d5i1fYiECC4agWCBAoXuvq+0z/rhI8IkO/ywHxDrAbGDBRds4MEIFviFUGb7UYDFet7xZEVWDEDBA3ZTmUBgcWDMoMMOEOhA3BIUWIBfAUtkBQGHBQhU3BUgvNQbDxPsYIARIWQVAYcC1RAfRlSZwFJiBxyGRFMvJXDVC18MFFKLTSKEwUsQIGQEkwdU0FBBxNH40gZXzXVAb1oyKUQBURFUVJHPFQDFTxfpkAEGoNEQEVwF7PBSBBdF8NIFvhFwRUcvaOSAkxdRiZZMepoExgBDXoTFSx5cxJCkbvoGQQITNhQlpxBdNcMAA8wwpKQBAQAh+QQBBQBtACwAAAAAIAAgAIcAAAAmTk4eXl4iUlYmVFQkVFYmVFZafoAiVlY8ZmgsWlxcfn5OdHb09vaesrQ2YmKIoqLw8vI4ZGTs8PA6ZGZEbG5Weno6ZmY8ZmZKcHJKcnRMcnRMdHTY4OBOdHS8yspQdnhYfn5SeHhSeHpYfHxafn5UeHpUenpYfH5sjIysvr6KoqTK1tZ6lpaitraEnqDW3t6GoKCSqKgYTEwiVFYiVFQcVFQkUlQiUlQkUlYkUlIiUlJmiIh4lpZykpJghIRsioooVlZAamoyXmBQdnY4YmQ4ZGZGbnBWenxKcnJOcnJegIJmhogoWFgqVFQqWFgqWFosWFosWlpOdnY0YGA0YGIkVFQ+aGpEbm5CamxIcHA+aGhAaGhAamxCbGxqioxIcHImVlYuXFwoVlgyYGAmVlgkWlouXF4wXl5WfHwyXl4kVlYwXF4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gDbCBxIsI2VAgUG1KiBsACBghAjtiEw4EbDiw1zFNghMWIBjRgbnmmCsePAIA2DSFCAkcqBAwkw1uiIgGGBICYOgCBwscLLLCEfQgxis0CTEC8fNCQA4mWVkDlmFgzp8wADnkZfHkB5kWeOqSGfID1ABeGDlwy6XjERJuFAAiC7Vk1boKqQhgYOQIBgoUBNgQOMosEIReuQAgycOhziYy+EFA0FWsygkwLXAkcOhBBTgEoGDWEIHHnhOAVLhAazarUghGQTCSQxgnAc42pXhASyjH0ZImZIhCL2tniA9bfRK0i0ajBewMCPJbFDBsYooWlZ5jwJaMeYA4fx6MYJ/vBY0QLIAg9cniT0HtQAc9wRGsifD+PGAAQXXx8hYQF8yCjzBTjBDSBBIQQRWiX13g08yOCACh+w0IELBOCHWYIvIcHZew5tV4BFuBWQgFYMXCFGcb/pppRxbeQQhBASBFHcECQc4d8QWkmAImptGBeGCC/FJEYWQhjQxAg57ijQDhb2xBtLiR1w2BNNBYlVDWsMFBKOQSJE2QESINRElQdQEBlBxf340gZYVeWbUVVWUIBUBBWVBW9QNHTFS3KmpEEGoekQEVwFCPFSmA1J8FIGvxEQRkc1aPRAAihySddFNQhqUhv3haTASyBgWsCmdf4mQQKnIZQlqRBhlcMABwPkYOGmAQEAIfkEAQUAXQAsAAAAACAAIACHAAAAJk5OHl5eIlJWJlRUJFRWJlRWWn6AIlZWPGZoLFpaXH5+TnR0wtDQNGBiwM7OOGJkOGRkOGRmQmxsVnp8OmZmPGZmRG5uRm5wSHBwSHBySnBySnJySnJ0THJ0THR0UHZ4WH5+Unh6WHx8Wn5+Vnp6WHx+vMzMrsDArL6+ora2mK6uGExMIlRWIlRUHFRUIlJUJFJWjqamJFJSIlJShKCggpyeeJSWcpCQZoaIKFZWQGpqMF5eUHR2NmJiOmRmRGxuVnx8Unh4VHh6KFhYKlRUKlhYKlhaTnR2MmBgNGBgJFRUPmhoRGxsQmpsQGpsPmhqUHZ2JlZWLlxcKFZYMl5gTnZ2JlZYJFpaLFpcLlxeMFxeJFZWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP4AuwgcSLDLkgIFBrhwgbAAgYIQI3YhMGBGw4sNYxSgITFiAY0YG/IggrHjQB0NdUBQgNHBgQMJMLroiIBhAR1DDoAgcHHCywkhH0LUYbMAkRAvHTQkACJpyBgzC4b0eaAHT6MvD6B8KjWkEaQHlBbw8bLHRQIOdhhIOJAAyLMXXiJBSHVHz5d2awocYJQHRgVZ/TJwWkBB05cfGgq0qEGnhK0F4oaYUsDBhg5SCkAAe6ADSYQGsWalsIMkkQifLybIChPjVQITOB8IETMkQiYvRVC23ZAIEwpZOfAuYADDhdQY+WKE0FTs8OExYPBGbpsABRw5FvRoAoEIRelB1/Q+J/CggfnzKRIiuEgEAoYRFKhjNHK+/omPCI/siML6gI/nBVBwgw0yrKACCjUQsF5k/R1AwW4AEiAhT68VsFpZTExxFW+x/cdbFzHosAMEOmzIwwgYUJdEVhBsqFgXvEkhwksxTTGBWkTM+FIELhYgEA0L3jUbS4MdkEQBRhwG01UucDFQSCvSiNAGL0GAEBFKVvBiWw3J+JIHV8XV2pWHXVBAVAQVRVUILN3200U6cLCBFATMEJFbBeyw40URvJRBdVJ05IJGDiTgYpQMhOSCnSZ1MUCQDU3xEggXMdRomrZBkACEBTh5KURXxTDAADEs2GhAADs=)!important;background-color:#255556}#toasty .toast.toasty-theme-default.toasty-type-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkQyQUI3Q0EzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkQyQUI3Q0IzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0QTNBMDVFQjMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0QTNBMDVFQzMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po9jTrYAAAKTSURBVHja7Jq/SyNBFMfNuSYB0cbCUzmtTvwbbPwb7KPV/Rmnu5tYWR1XX6WFpYL2giBW/igUFCxEuMJeZMXg3Bt4kcmwiftm3kuG5R58mc0G3ptPZnfmzZtUlFIjZbBKWUC+CPqOQA3QLSjDtoH3+U2PiIBqoE2Vb5v4PWtMCYh6HwgTph4yiO5coopZwgnDCVElQJgw1ZBAIgcIEyYKBSRVfpaGAJIoHkuGCZIqXkuHAdIEvTODvKPfgYG0QG9Kxt7QvziIDvKqZO2VCuMCkRE7dQPawZZiGQWGOjtRIf6AZkCT2KZEH1nR2YwCQX2crkDfcpLJY4fHLPEFifBXbDs854c9fG45TBRt7EfkAqJzoNjjhT0CVXL87nn4jHvlZv2y2Nhz5jnH98L0Owo68fQb52XNvql4P3sArVi+F0HXTOlMvR9IjWEkOvYM+mH5XwU9MfmPzZ2mPexcEB3btkB+Mqc1Mfa7C6QhsELvg8aMGL8FYuh+d1VRNgRqG1OgSbyugeYFYmzY5aAFgSAa4iteVw0oTluwQR6FQKrGiEwIxHi0K41roB3mIC+gM9Bf0AxoGTTOHGMdtMtVQBiWfRQuJNcRaeu5jnCv7GbCd++YeDqv7NwwB6DvoGlsDyQgimS/PjA6p1qyfC555loJNfvl2I+c5vxydbzv8ng670fs+hV1h3gJmrX8zOF96g7x03oXtRhH2W+/4Myi349xbLeJo5sVLdoNoopyAfqFbRBVlFLVtcwCQlsIoo3+B1b7bQnVflvqfzU+DBivwx6uE6umJ0RTBXSGmHqMRDBniJ3cLHWACOpU18ylUgJEkOfspfrnQ5GdZtfOLnSQESzM6eLZHaYcd/h5TCJeaf6v9U+AAQAvyHBRYhRQ4wAAAABJRU5ErkJggg==)!important;background-color:#f1432a}#toasty .toast.toasty-theme-default.toasty-type-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkQyQUI3Q0UzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkQyQUI3Q0YzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRDJBQjdDQzMyMkIxMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRDJBQjdDRDMyMkIxMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvQVuMwAAAORSURBVHja7JpNaBNBFMebNsZacih+FFFsrB4qVIw9lByEWNtCC/VSRS14UjSx1V4UvbUKFaFUD178OniPB28KgsYeFBVqRFDQgx9paE1bNVKKta3N+h94hTWZ3ezOTiYh9MEPwmZ39v2TmTdv3oxL07SyUjDXipBsW0NsA37gAx7gpe9nwQKIg7fgM5gjCi6EOboZNIEDoFPneC5jwh6A++Al+AYWVQtxg3pwBPSBaoc/6Di4Q6I+gL8qhGwBx0EvqJHc1afADXAXJGw9yYTYoBVEtfxblN5l2Tc7InrApKbO2LtCMoV4wGUwr6m3OTAAVjsV4iIRS1rhLA36nQo5Rb9KoW0WnDTz1SxqtYB7YF2RTN4/wSEQtRO1asGIVnw2Qr5l+VzO0VYBjoFgEaZUQZqEXVYmxAbwGGxU5Nw8eEqT6y7KGswsCdrAe7Ou5QaDirvLVYqO5fR5ysIzl8hXw6i1FUwrFDEK6jJ86AAzOZ6LA5+REPardCsU8QO0cwZuBfhq4flu8jlrsLO1RJfCgcsSw0ec6+doLZPLusjnrDHiBSlF/8YbgzDqB78stpEin7O6VpMiEWwwt3BEsMH7zGZbAV7X8ivoTmype9Ngdr4A9thsr275g16IT4GQGLjGuc4EnBZor54nxKMgVzoLZjjr/kGwSaDNKp4Qr6CDabCU4x5WVLgOXnC+uwKaBd/t5QkRsRQ4Q10jZnLfKBjmXN8PjvJyJ9umixpDAhNaT0bojHHuY+G0kROlaiRk2EO88Gsnx1oEfRzndoPXGfeGDULtsIRQfpEn5ISNBtj6/aDBWqaRcihmD/VphI52i8mhlTTF8YSYAEETMUxEg0GXei5pcg3whIikKOOg2UBMZR67lGmKUgUiAg2OgX0W608dVEiQYRHyWWoaH7cgZj34KDFn+y+N5y2svgs2nDBIBpfXGLckijBdWMlY6hqNGdalFiQKybnUZewESQcvmQB7de1Vgy8SRSTJx5yVRjcpTjt4GetmvaBTcn2M+XSeNzeVTIHOrGTaSiXTtUVUMj0Mnohs9IQkxn2nReyQ0/2RfofjpSi2Fcpok2WgQNsL0jZ69IQlZax2qi3hfOwhMtoURbMRepdl30S2p2t129MbJEemaVoSR8CYqgMDO+i0Q1iwAqK3CXCbDgy8K8QRjlUkIuDwCMcrEqP8CIdRjakSbLd4qOYT+AN+rxxzKkUh/wQYAIxbfwhIUivlAAAAAElFTkSuQmCC)!important;background-color:#06bc5a}#toasty .toast.toasty-theme-default.toasty-type-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkQyQUI3RDIzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkQyQUI3RDMzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRDJBQjdEMDMyMkIxMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRDJBQjdEMTMyMkIxMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhxHKhwAAAN7SURBVHja7JrfS1RBFMf37q7mj6SySMWMMqnQLEsKMg2yH4SC2g+wrKcIg7SX3ouiP6BfEFRPEdRLFFlBIEVQvfcgFrJBLxFBEWG9mHb7Hjgrl+vMzr13Zuyu+IUP7M7Pc+7MnJm5u47ruom5oGRijmjOOJK22PYScBrs5u8vwA3ww0ZnjqU1sgg8Ba2+9NegE4znw9QqBg8FTpDawF0uE3tHBkFLjvz9XCbWU2sZT5/1inIfeHS+xXVELoK6AOXquGwsp9ZGcDhgJExz2U1xc6QEXADLQ9ShsudMbQGmHDkE9kSoR3tMd1wcoSd7CpRFqLsYnA05ktYcOQGac+T/ZmTawm381/BL0ecR2CDI+wyug4/8fQ04A6oFZUfAAZCJbAk5osFVMOmK1SMo3yMpS21c07FFx4m94LvEsFcgLahDaS8ldb6AnVHtibpGaGGfBOWS/PuyqQyeSPIqNYJGZEeO8ClWJnIwJdkIq3LU6+a2Z8WRGtAHSnOUWQcKBOkphSOl3HbNbDjSpzjdkupBoSCd0tYq6rZwH1aj1jaQcdWaAJWC+hWcp1KG+7Ky2OlpHgW1AcrStFohuTkWBKhfy30V2phaHWCAI08QrfK1T58bg27UoB+0m3akhsNtQQjH23xPlCJWU8gT9WDQhZ8M+HT2KcKtSKt97ac4LYw6ue+kCUfqeUqFVa3vrpHmy1dYDXA413KEptIxsDmCAQ2+TTElCQAqUd8HlRcwRVhrA+NudFV72irXaOcX2xIp/JbxsC7UOOZnFzyN7EqNdkrZlrKwr0xpGuwCvZr3nQ7PvtOo2RbZcg88A1NBL1YV4HnIcDkbescv+L4GGRGHb2smnHgDPnk2yFbN9prYttszRkWwcBr4kqOry6DK0y59vmmgXbKtTnVDdAx1NgKKBQ9pAefp6ooqam0Hxw1MqTvgjyB9ivN01e+/SngdoVf9l/iMo6u05HDpGHqzmLW12O+Iw9fMdkPRpVdy1U0ZCOlZtbPNjnexl4BR16xu8ZrI9rGU00xqlG2f3ke6wGMLcf8teM9PjQ6MWy30QaMylJ2vzZY2sB2MTZHtQ9k1UpTIXxV5F/tYHjsy5nXkARjOQyeG2fZpR35yWDyfsPAbuAWNs629bPuM02+a7w+F/DMAnYL/xsT4JJ966WeKCWZSdYzPO83/O2jeEUv6J8AAuUNANq3q2uMAAAAASUVORK5CYII=)!important;background-color:#f97a1f}#toasty .toast.toasty-theme-material{font-family:Roboto,sans-serif!important;font-size:12px;background-color:#323232}#toasty .toast.toasty-theme-material .close-button:after{content:'x';color:#fff;font-size:17px;font-weight:100}#toasty .toast.toasty-theme-material .toast-text{color:#fff}#toasty .toast.toasty-theme-material .toast-text .toast-title{text-transform:uppercase;font-size:13px}#toasty .toast.toasty-theme-material .toast-text a,#toasty .toast.toasty-theme-material .toast-text label{color:#fff}#toasty .toast.toasty-theme-material .toast-text a:hover,#toasty .toast.toasty-theme-material .toast-text label:hover{color:#f2f2f2}#toasty .toast.toasty-theme-material.toasty-type-default{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjdGQ0YwNTUzMjJFMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjdGQ0YwNTYzMjJFMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpGN0ZDRjA1MzMyMkUxMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGN0ZDRjA1NDMyMkUxMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvdUzSUAAADVSURBVHja7NixDcIwFIThGFGDoCYzQM100FAyCEzAGHQMQA0iDGDOElWUYKfiPeW3dE2K6L7YjqOEGGPleUwq5wOAVUCtnJRGiX9O8+1SdxUNHZt4pVyVpbGH/VS2yi03A0eD5dNYKIeSGXgpM6NLPi2neQ5g/WAIvEYBAAAAAAAAAAAAAAAAAAAAAABGB2i8Ay7tC57+zD2UtXL3NgNv5axs2uXTmA682V7Zed3E5soPAZgsXwowW74EYLp8DmC+/C+Ai/J9ADfl+05iPuYAjAnwEWAAlI5MOXu7aeEAAAAASUVORK5CYII=)!important}#toasty .toast.toasty-theme-material.toasty-type-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTY3QkFBRDYzMjMwMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QTY3QkFBRDczMjMwMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBNjdCQUFENDMyMzAxMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBNjdCQUFENTMyMzAxMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pqvvb2MAAAJWSURBVHja7JlBSwJBFMfXKA+FJ70EQlCReM46hnSOQAhKugYdsr5BRPQNsgIhb4YFncRzRMeyD2BUEAhe8iR1sND+Q28hlnV31pndnSUf/JmL7Px/82adN29DvV5PC3KMaAGPIYDfMSr6gNm7V30hFqBlaB6ag+LQBP3sA2pAT9AjdAM9QN3npWmh+UMiLzHMM5M5aJMMOwkGdAGdAKLhKQCMxzAcQltQWDCJHegcOgDIu+sAMJ/FcAzFJG9nZn4PEGVXAGB8DEMe2nb5vSywbQmQb2kAMD+O4Qpa8ejPpQqtA+JTGIBW/hpa9fgfsgKtAeJL9BzI+2BeoznzQhnA6m9gKGv+RhZZuHQMAPNRDHUo6jNAC0oAouV0Cx0Jmg8ZNGhEyQt/BuiEfRE8pIymRep2dtjNmJ3Y/TKwI+GElRlh8mSfAaw+g3oboLZxMwN67TSFLHTtMrAowbxu+K9EI07ebLdQWuHyP80DkFIYIMUDkFAYIMFzI5uUNJnsl9jUm1kGIgpnIPIvuhJthf22eQCaCgM0eQDqCgPUeQBqCgPUeABuFQa45QG4p8JJtWiQN2sAqvZKCgKUjJWo1TlwSpcIVaJDnviulHTzKSoEUOzXP7U6iffpQu33faBFXjRHANQFyCmw+rl+HQnbWoj6MQUfzResekK8xdyu9tvm8zoqNLcmBEC9SdZSr3pons2VteuLcpfT1CXOeLSd2BwZns60aVvFLlT7wOH4QkMTJKEzSYddh56VdGp+oAwYshHMj3wGCD2TwfvMquqdeAgwBHAQPwIMAIRS2XfVn5FFAAAAAElFTkSuQmCC)!important}#toasty .toast.toasty-theme-material.toasty-type-wait{background-image:url(data:image/gif;base64,R0lGODlhJgAmAIQAADQyNDxerDRGZDxuzDRShDxy5DxmxDROfDQ+TDx67DRKdDQ2RDxirDRKbDxy3DRWjDx25DxqxDQ2PDRGbDxu1DRSjDROhDQ+VDx69DxitDx27DxqzDIyMgAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJBwAcACwAAAAAJgAmAAAF/iAnjqQIXESwFZpWbIx1AWVtkxKxaVjfJ77ehiC5GTkAiyPIbGIKBNqRhIhgeE5sD8vbXKaiSSHIvZKdhcZUoXX62k3NwTgpb81wnv5+VdcQY0BuZoSDGBBfJABWhYaOPhtFIwSPlU4VIxIUlpw+BQsiFp2jGA9IG6SdFCeCjVmDcHcolrGcDwF8r6RcGZupuYYUY7DEb8ZMLYR2cb+1v8w9w82VL8+cFLjHzM66PRmibs7L2ncVF9zWbzOowNrobqsc4M/oFiKa6YOfIwfk3OJB7I0AYCBfkw1SRgB6VKtWgUQlBIwrFkfDBCNsUsFRMEWMtQIXwSAomMoLmIEWIVggO7OlgIWEJ+9Z2GFIw4YKoGLaOGEhw4oWL75dyHkkBAAh+QQJBwBEACwAAAAAJgAmAIY0MjScQjwsYrxkOjRcWpw8bsw0RmTMRkREXqx8VoRcSmy0Rjx8Ojw0UoQ8ZsQ8cuRMNjR0OjQ0TnzUSkQ0PkycUmw8Xqy0Tlw8euxsWow0SnTETlQ8MjQ0YrRsOjQ8ctw0SmxMXqS8RjyEPjxEVpQ8asQ8duR0PkSsUmTMTkw0NjykQjxkWpQ8btQ0RmyEVnxcTnS0RkR8Pjw0UoxUNjR0Ojw0ToTcSkQ0PlSkUmw8YrS8Tlw8evR0Wow0YrxsPkRMXqw8asw8duzMTlQyMjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBEgoOEggAQDAEiBxMTByIrMhAAhZWWhBwyIjecnZ6cIgwcl6REAAwHn6qfBzKUpYQQC6u0nyIQsIIDqasTOzsiGym0EwOwHhOeEzkJIR0dAtECzyEJFcmeEaQD2DcoLNLh4tIdLDmexpUQvCgh4+/vIec3E7iEALMp4PD84wSpIl4JknFjB4J+CMVZuHBDxiAOBy5AS0gxWgcUB0YRYbBjYsWKHXaMMLXA3ceTIWJwgPDipEsBCWj8sPDypIUfCmq6VEBC50kSNH1WtOBRaEIhQnggXcr0AVKnUKMKcdp0alMeWLNq3cq1a1KuD4J0HUu2LNYWHbR+NcuWqw8bjVjXtp0bdwYFuWbxthWCA4DYsnqVcg3cghLcrHITexWMOC4PG4JUtKBLmccDFYMkMJ4bmCvkQQB80O3MVQBmQjhMsA2MNylfSy5ccyYrxAUpDaQBq/1MysWDylsf2M5FwQHtsgJw5AJtw6nurA9snF4+SIWNIGtlIxYwYzr1QgBw2BAQ5DfSaDNweL8UCAAh+QQJBwBGACwAAAAAJgAmAIY0MjScQjwsYrxUWpRkOjS8Rjw8bsw0RmSkQjxEXqzUSkQ8ZsR8VoTMRjw8cuQ0TnxMNjSMSmR8Ojw8XqxsWoyMVnQ0Pky8TlQ8euw0XrR0OjQ0SnSkUmw0UoyUUnQ8MjRkWpQ8ctw0Smw8asTMTlQ8duQ0UoSEPjx0WozETlQ0YrQ0NjxcWpxsOjTERjw8btQ0Rmy0RjxMWpzcSkSEVnzMRkQ0ToRUNjSMTmR8Pjw8YrRsWpSMVnw0PlS8Tlw8evR0Ojy0TlyUVnQ8asw8duw0YrwyMjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBGgoOEggAQEgEFNQoKDQUIORAAhZWWhB85BTOcnZ6cBRIfl6RGABINn6qfDTmUpYQQMau0nwUQsIIENbW9nQoEsC0KvsWcGqQExMbGwZUQvMzGCriEALPSzAWjgzm+KUEcHuMcHEEXy7Qngx+pnykeFAkqAvX29xkJIB4pqgrcEjzVoJHgnsGDBhPQIOFp3TVONVDQQ0iRYgYK0Vx8gMDJg46KIAVkQKhCCKcbASmEXFkRhIITAVCwnImQAoIINHMajDBAp08BMkbqFCpyJhEiP44eTaq0qdOnTh00/eHgh9WrWLMizcq1a9IhXsOKDfsiA9etY9NaRariAVa0h1rVhu3QA67ctWqJ9AAANi/eu0Mo2Xjb1W7cq2iRdhC04sXdx1RXDHJr2DBitTasFYGcdKwAyYR6lOD8N6uDHpYOWL68WisMUhtai4VLZAMsGFVJW3XwOpeFzWOR2hWAOhdjGyEqe3VgA7TxQSs6CJj9Q0AH588LrehhQ8ACqVRfCLDRA/ulQAAh+QQJBwBBACwAAAAAJgAmAIY0MjScQjwsYrxkOjRUXqS8Rjw8bsw0RmTUSkS0RjxEXqx8VoQ8cuQ0TnxMNjQ8ZsR8OjzMRjw0PkyUVnRsWpQ8euw8Xqx0OjQ0SnS0SlQ0UozMTkw8MjRkWpS8Tlw8ctw0SmzcSkQ8duQ0UoQ8asSEPjykUmy0TlQ0NjykQjw0YrRsOjRcWpzERjw8btQ0RmzUSkxMXqSEVoQ0ToRUNjR8PjzMRkQ0PlScUmx0Wow8evQ8YrR0OjzMTlQ8duw8asy0TlwyMjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBBgoOEggAOEAEFNggIEQUpNQ4AhZWWhBw1BSGcnZ6cBRAcl6RBABARn6qfETWUpYQOCau0nwUOsIIDNrW9nQgDsCsIvsWcF6QDxMbGwZUOvMzGCLiEALPSzAWjgzXZ2SWDHKnfzAjcEOXgptjqxi0cDu7ZNOm0GyY4EwsLFBQdHfzxm4DDxIZlqkqk8ARERgcFAiJKnEiRogIWMoB4SrDJRAcVFUOKDKmig4kQLTIQGMmy5UQWGSC6nMlSgQ8fFW7qwHmzp8+bDHwEDfqzqA8dDHQoXcq0qdOnS49G/QG1qtWqLlQwlXq161YdKhoo5bqz6VGpZM0+1XAjrde3eWNvAKBq1S1cHT8ozfh61+5YHRoEoXBx9y4DFIPEuk3LlWxjpjOsPbjq16oAxIQkJC1slcENSy8qV7Xr4wUpDKLf+sAA68BmzkoZmM4lYfJfuAI+5zI044NXqQxmYN49CMWMH47NuhBO/BKAGzME/CDK4IeAGXJzBQIAIfkECQcALwAsAAAAACYAJgCFNDI0nEI8PF6sZDo0NEZkPG7MxEY8NE58PHLk1EZETDY0fDo8ND5MPGbEPHrstEY8dDo0NEp0zEY8NFKM1E5MPDI0NEpsPHLcNFKEPHbk3EpEhD48PGrEzEpMNDY8pEI8PGK0bDo0NEZsPG7UNE6E1EpEVDY0fD48ND5UPHr0vEY8dDo8zEZEPHbsPGrMMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv7Al3BIFAIUi4CKVUpIVJ+TAlCsWomVk0rD7Xq5qkXlSn4BFpKv+is5UctExWNN/6oUcOGAVe93SwNwIQl+hVwQZAOEhoaBVQp8jIYJeEQAc5KMKmNDJ5mZG0MVaZ+MCZwLpaBmmKqGBhUKrpkmqbOMGx+3jA9bu4USpL99CSUlw34tKcvLDs0pLcrR09TV1tIpGczbytve3+DeLS7h5eblIwLc5+zfyiAk4N3Q9PPt2xMo9vf80CgA5JbtMzcwnAsq8cLNK1iv3AQhHkb0YwgOgYchB/qdW0jCUoON7s4dLMIAgcZzCFBYITCQokB5IshEcFnOXouOZQiYPMkMQTHMPAw+8nShMo8REhewvRS3DAGJN0aHeJgQsOYIEhejWgGAggQIFwiiIXABD0XWMkEAACH5BAkHAEAALAAAAAAmACYAhjQyNJxCPDxerGQ6NMRGPGRyzDxuzDRGZMxeZEx25JRmlDxy5NxKRDROfEw2NHw6PKxmhDx67DQ+TDxmxNRGRLRGPHQ6NHRuvDRKdNxaVKRmjDRSjDwyNMxGPDxy3DRKbJxmlDx25ORSRDRShIQ+PER67DxqxDQ2PKRCPDxitGw6NGxyxDxu1DRGbNReXFR23JRqnNxORDROhFQ2NHw+PLxidDx69DQ+VNRKRLxGPHQ6PHxutORaTMxGRDx27DxqzDIyMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+gECCg4SCAA4PATk9OBQdOSg0DgCFlZaEHDQ5DJydnpw5DxyXpEAADx2fqp8dNJSlhA4Vq7SfOQ6wggM9tb2dOAOwKhS+xZwWpAPExsbBlQ68zMYUuIQAs54i0rU5o4M02du02gwkgxyp4swU3g/q2+bX79IEHA7z2zPu+MwkKPzMKmwCWKxDOoK9KMQQwbChNoYMIEp8SDFixYkKeIjQyJAjx40OQ4oMqVGDhx0IeKhcybKly5csM+wo8cNGiRUgXMDcudMFhAslbLAQYKNo0RcXYECokSEDT5UZXNSAAGLHi6BGU8gwasMHV5slXrwosGLFhQtlC4hNUALr16KJG254fUuXrtu6RW8AqIm3r1+jPyhtNTr3r2G4gk6wOFz48IITgxp07dv4sI0R1iZYLlqZbuBCEhZs/rvghqUDnQt7rdy5awtSGFqP9tEA1gHRo7n6eJ1LgubcNn5IyDUIQAMPqwnrJrxAxivig05s4Ktc948NkKFbAnBDRoofPsL7+JEi7nNSgQAAIfkECQcAQwAsAAAAACYAJgCGNDI0nEI8PF6sxEY8ZDo0bHLEPG7MNEZkzF5cVHbcnGKEPHLk3EpENE58TDY0TGa8fDo8THbktGJ8PHrsND5MPGbE1EZE3FpUtEY8dDo0NEp0rGaENFKMPDI0zEY8jGqkPHLcNEpspGKEPHbk5FJENFKEhD48RHrsPGrE5FpMNDY8pEI8PGK0bDo0dG68PG7UNEZs1F5cZHLM3E5ENE6EVDY0VGq8fD48vGJ0PHr0ND5U1EpE3F5UvEY8dDo8zEZEpGaMPHbsPGrMMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/6AQ4KDhIIADhABPT87Fh49KzcOAIWVloQdNz0MnJ2enD0QHZekQwAQHp+qnx43lKWEDhirtJ89DrCCBD+1vZ07BLAtFr7FnBmkBMTGxsGVDrzMxha4hACzniTStT2jgzfZ27TaDCaDHanizBbeEOrb5tfv0gMdDvPbNe74zCYr/MwwbAJYzEM6gr0szCDBsKE2hgwgSnxIMWLFiQhSkNDIkCPHjQ5Digyp8YKCFChTqlzJsqVLEQ9iuJxJ06UNAQUu1NxJ0wULGjlkxNjIs2gKHgVycKAQZEKEDUZ5SkiQI4cOAEKqBt2gMypLCUmrCqEEVGuQBB8keE2B4wNVrY9KBal4AVfriQIfNuCIcUGnTh4xcEj44OJE3aoLVAxqkCPI4aoTHJ+IMPnEiSCGH2stYa2C5s+OP4t9NYjCAtGoH4/QYelAaM2OX4sOAoOUBtmpNU/QAOvA6dyaR9TORcEz8LpCWOcy1ABEbLNwXwdZQIP0crklskavG0QIB8XXLQHQQYOFkCDou7PgcDVXIAAh+QQJBwBIACwAAAAAJgAmAIY0MjScQjw8YrTERjxkOjRkWoQ0RmQ8ctzEWmScWmw0TnzcSkRkVoRcctS0YnxMNjR8OjxkcsQ8euw8asTcWlScZpQ8Tnx8brQ0PkzURkS0Rjx0OjQ0SnQ8duzUXlw0Uow8btSsZoQ8MjTMRjw0Smw8duTMXmQ0UoTkUkSEPjxsbsREeuw8bsykZoyEaqw0NjykQjw8ZsRsOjQ0Rmw8cuTEXmykWmw0ToTcTkS8YnRUNjR8Pjw8evQ8aszkWkycapQ8UoQ0PlTUSkS8Rjx0OjzMRkRscsSEbqwyMjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBIgoOEggAPEAFDRUIZI0MwOw8AhZWWhCI7QwucnZ6cQxAil6RIABAjn6qfIzuUpYQPGqu0n0MPsIIERbW9nUIEsDIZvsWcG6QExMbGwZUPvMzGGbiEALOeKNK1Q6ODO9nbtNoLKYMiqeLMGd4Q6tvm1+/SAyIP89s67vjMKTD8zDRsAlhsRDqCvTLgQMGwoTaGCyBKfEgxYsWJFHyg0MiQI8eNDkOKDKnRBwIfKFOqXMmypUsTCVzKnCnTBoOMNHPSLGAhh86fLU0AwRABqNGUKoIA6FHhKNAWICjdkODAac4cKz4IenFgRYiNVltiPfBikIIOEn7gdAk2Z4sVlDxuWIvBg4eRGi3b0vRgpG6PV4Mw0Kgr4YgJpx5cwOVBI4glAx3qdlihooUHmWAphFCxmEeHGaQ4RK7LQ8KKBhcqhMiRo0aOED+ONOgsWQEsA4NJl94tQbdv0jRI5EKCga7n45JJ9/7dA8NwQzcO/PY92jONG4CfI3lxowd16j0+lNVeCUCQGwJ6dFjfoYeAD0pzBQIAIfkECQcAFwAsAAAAACYAJgCENDI0nEI8xEY8ZDo01EY8fDo8tEI8TDY0dDo03EpEzEY81EpEhD48vEY8PDI0pEI8bDo01EZEfD48tEY8VDY0dDo8zEZEMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfDgJY6kCBxF0FgLYTWPdABlbZOO1CR87/ONguNGvAAKip/yp5DQiqTDZEn9NQ5Q0cBS7fYWAygk4i3zEMQB2WwO1w5ctpmAJQGmcnZjOJLk8wwjDkl/bAR8BYWARniKZgIOB455FImTbAwPl2wGO5tlCoSfXQSjZgumXqKOpWWeqUsKmoWtPLVUBpawSgWSu0oUAK9ltz6txQkKQ7p/yEsFIoNztnKHIwi/PIEjwr8KTyMHzpMEFDYD40ul6wm3BGg3EMTE0EXol+9ZFwcGjgrm+i44KJBOnZCAOJC4M5asF0IbACgwMCDgmIJcFPgUCQEAIfkECQcAVQAsAAAAACYAJgCGNDI0nIY8nEI8lGo81LJEXFY0ZDo07MZExEY81G5MREI0zHZE7IZM/NJM1F5MTDY09LJMfG48/MZMzKpEXFI0PDo0tGJEdDo01EZE5GZMtEY89M5E7HZM9KZM5G5MPDI0lH483L5EdGY85FpM/L5MjHY8fDo87H5MZF409MpMzEY8VE409JJMhHY8/M5M3EpEvEI89K5M7G5MrIJE5GJMNDY0nIo8pEI83LpEZFo0bDo07MpMTEY07IpM/NZMVDY0/LpMhHI8/MpM3K5ERD40dDo81EpE5GpM9M5M7HpM9KpMPDY0lII85MJE5F5M/MJMfD487IJMzEZEvEY87HJMMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/6AVYKDhIIAD1ACU1IvCQkLM0ErNYWVloQfUDAvnJ0jnyNUMQQtFZenVQAmKp2tL6CgUS5NJZSohA8arq6woDISPgQrt4IGjLutvaBHwCkitzrIu8qgHC4+DRGnBkbSvNSfLD7Yz5UPx96e4J8k4ykUhQC66cnrI0njPjimgyb03/aA5GMy6AOCf/Xs9cDmI4UCQVAQJlxH49q4AKnmSXxl7xOEcQ2a1HiwUV1HFg1A5vBXkmNHDvl8BBDQ0qU9GinHTZhSc4RNcELyHWDVsqNPJ0/yNcDQ0+iIdvm6FXUKdRzRqaB+sgPpgyfWjkHHHaD5dZ2TnD4msCzp1ENMG4cky4JjEDMHgINylXUAeWBJlbUSnSa9KOgD041GYWLbwKMf2457CQ8CsAnxugwW9xV6cPgf5HEb4FWKhhDcKyops526UBqWSxpJG5S4ZaCzN3AxfGzQRuxHZWnglOgTTazKBxO2J36iAeEACL/FMa1CBivKEBBEol/68MMEDBVMQVkYQOEBsUAAIfkECQcAUAAsAAAAACYAJgCGNDI0nIY8nEI81LJEXFY0lH48ZDo07MZEzIZExEY8REI03J5E3GZM/NJM5FpMTDY0/LZMfG48XFI0/MZM5HpMPDo0dDo01EZE9JpMtEY89M5E7IZMPDI0tJpE3L5EdGY8/L5M7IJMfDo89KpM9JJMZF409MpMzEY8VE405GZM5GJMjHY87HpM3EpE9KJMvEI8NDY0nIo8pEI83LpEZFo0lII8bDo07MpMTEY0zKpE/NZM5F5MVDY0/LpMhHY8/M5MRD40dDo81EpE9J5M9M5M7I5MPDY0vKJE5MJE/MJMfD489JZMzEZE5GpM7H5MvEY8MjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/6AUIKDhIIAD0oCT0wtOwwIHT4oMIWVloQcSi8tnJ07Dg4hPw0DKxWXqFAAIiedro2gDk4NOjoHPpSphA8Zr6+xoCS1tQMouoIGjL6un8AgOrQ6Jh+6Nsu+zbEsw7UNEagGQte/wKA93NDUlQ/K453loEXo0hKFAL3urvAOKtHcM6cGichHDh6EeTpqDOKQgCCzfcL80TKhQJASh/r2bUMYQBU+jC328fM3rAESGA9AvhOZpBu0bjQGqgwp8iBHATNp7huBUEeOJzlFOhjS80CrmUIx0IrG9EJQkUt66hCHVKSwnkdVCo06jxbQqvuIIjyAEyw8nghzyNRas2eMlItmy03oSQNAQ7bw+nU9YATKWowiN87rCIWDU5BQ0dHSgEMg3nI2X9YibGgT4LwkawEs9OAwQYjzNNSrZM3hvmfcvKGyYLpciJdLV+gy4PkavJbDNHw7xsOybWAYXM4YfaywiNoZQYWIpqFA3+KYWPmKtaFBgxkFgEC/xIGHiBcnnKpgsWBBDQLPUwUCACH5BAkHAFIALAAAAAAmACYAhjQyNJyGPJxCPNSyRFxWNOzGRJR+PGQ6NOyGTMRGPPSyTERCNPzSTMyqRORaTEw2NPzGTHxuPORmTFxSNNRGRDw6NNy+RHQ6NPTCTPSeTLRGPPTOROx6TPSqTDwyNLSaRHRmPPSWTNxORHw6PNy6RGReNPTKTMxGPPy2TFRONPzOTIx2POxuTNxKROS+RPy+TPSmTLxCPDQ2NJyKPKRCPNS2RGRaNOzKTJSCPGw6NOSOTPS2TExGNPzWTOReTFQ2NPzKTIR2PNRKREQ+NHQ6PPSiTPTOTOx+TPSuTDw2NMSiRPSaTHw+PMxGROxyTOTCRPzCTLxGPDIyMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+gFKCg4SCAA9MAlFNLTpPNR9BKTKFlZaEHkwxLZycIg4ZPaIMAysVl6hSACMnna6fEiqiswVBlKmEDxquvJ8ORbPBAym4ggeMvLwODhzBwSYguDnJyb4+sqPZDBGoB0LUycsOKM7BDNGVD8jgruJL5c8ThQC77K/iCAzwsySngyP2wi1zkm0fjkEeEgRUtizWvlEmFghispChAx8QzMELoKpexRa+lkEpWI6BCxkPPrYTR26fPlE2AKrkJM4BklkvSwYQMJOmOBgle+Ts0SBKzxY1Qz2k1apnUpLwGFA4WvOds5w5vzl1tzRY05lVu44yunWZ0q4FeJZ1AFRsA5mVYMV1ENtjRsq1KIbuswFAYdxlLR8yKJBECtyP4jCK5SjFw1SV4hwKnayv8gYe//6y0FuOsaFNiJc1W+qicK7HC8WFuBpsg7xK0yrK5TyK26ULspdlpIxzBa4DqMEtY7Fvg21cP0ALdxACqygSr4s1HhF85cjWBkxLR8gqHIJRJg0M2X7Jw48RMU5MZfHChRIcE26lCgQAIfkECQcAOQAsAAAAACYAJgCFNDI0nIY8nEI8XFY01LJEZDo0jHY87MZEREI0xEY8TDY03L5EXFI0/NJMPDo0fG48dDo01EZEtJpEtEY89M5EPDI0dGY87MJEfDo8ZF403LpElH489MpMVE40zEY85L5E3EpEzKpEvEI8NDY0nIo8pEI8ZFo01LZEbDo07MpMTEY0VDY0/NZMRD40hHY8dDo81EpExKJE9M5MPDY0fD48lII8zEZE5MJEvEY8MjIyAAAAAAAAAAAAAAAAAAAAAAAABv7AnHBIFAIUNAHOBkpdThJXZ1SsWokVmgjE7TZYYFaDYHBczzkAxtNtg77h8MVFRRMVE7cbHg8TOnZCBUx6bRR9fRwWdiiFenyIYA0PZwUwjm6HkXENi1UKhJhem4kMRQB5ooZ9X5BgGmZDGKp7pIg1QxUJtKtivpFfHAhCNLxtroiQAWmpxiCarL9hDR8jCs5d0K22LCaz2M/c02ABAuDhrnyQDSE459DiYAds4PDxDRHvtuphl/Xxfehhs4eMlbt/AOWZQ5gwxLeBCcGQuMYQoAkAuyBGA3bBzENj9riREFIhnzNtnHy1oqBC1sCCkZYNAbAFJMAPM4ooMEkrpE00MBRMVWnEiwK/ZJSuQCi6jpUBOwV4OvIJh0JSOytqToXjSoPQQDkqYJDaq8+BDTnBYlmjBx61DS3UXqmwAoMID/koUPgQowaDtGiCAAAh+QQJBwBTACwAAAAAJgAmAIY0MjScijycQjzUtkRcVjSUfjz0zkRkOjTERjzsilTswkTUVkREQjTMqkTURkRMNjTkZkz82mx8bjxcUjTsxkQ8OjT8zmR0OjT0olzUUkS0RjzcvkTsglQ8MjR0Zjz81kzsmlT8ymR8Ojzssly0mkRkXjSchjz80kzMRjz0umTkYkxUTjTcSkTkckyMdjz0ykz0qlzcTkS8QjzkvkQ0NjSkQjzcukRkWjSUgjz0zkxsOjTsklTkWkRMRjTUskTUSkRUNjT83myEdjzsykxEPjT81mx0Ojz0plzshlQ8NjT0nlx8PjzEokTMRkT0vmTkdkzcUkS8RjzkwkQyMjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBTgoOEggAPSwJRGSM5UgMkQis0hZWWhB1LMiycLEdBH6GhJz4uFZeoUwAiKJ2cKhGgorMKQpSphA8arp0gQUEns8I+K7iCB028nSG/osHCHy8euDrKnbDN0MInEqgHP9acHL+y2rMn05UPyeEsSuTm0C8ThQC77Swp8M+jH/yiNk4NEoGPRYwT8OJBwzGoA4KCPCyQexbs37loDAQtKchCBbly8f6ZUHUPX4uP5ipum0HjAUcW4xKqtAjtBkGOSD7STBnKhICXCVBq4/fvRIMoL98lVAiNQiuOSmIFieCv6s5tDpJKBTnUmShwULcyNfe0YNSlY50h5bhDaFpRpBR+cgw68a2oBjcL5kT7NoBLjjGz2f1wA8DDgi2kUt0WUsGpvO08or06K4CgDlnxRazbdaaBHgM5IhScduQgAJvw6ftFWdiMJIUeZA6Hga/XWQboVarWLjBjaNxQXYgs1aJxF7gOzObFjOttA92MAUnN66zVqgB1G5vSQcTyjrHMGSgAezsmVq5gcD0xowAR85c6ABEhAwGUFB8MzGCCY8KtVIEAACH5BAkHAFYALAAAAAAmACYAhjQyNJyKPJxCPNS2RJR+PFxWNPTORGQ6NMxGPOyKVOzCRERCNMRmTPzabMReRPTOZMyqREw2NOyGVHxuPFxSNNxORPzCZORmTDw6NHQ6NOSmXORyTLRGPNy+RPzWTNxKRDwyNHRmPNRGROzKTPzWbHw6PPSqXLSaRJyGPGReNPzSTOySVFRONORaRPzSZIx2PPzKZORuTOx2TLxCPOS+RDQ2NKRCPNy6RJSCPGRaNPTOTGw6NMxGROyOVOzGRExGNPzebNSyRFQ2NIR2PNxSRPzGZORqTEQ+NHQ6POyuXOR2TPzWVDw2NNRKRPTKTHw+PPSuXMSiROReRPzSbLxGPOTCRDIyMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+gFaCg4SCABFPAg4aDzoKAydDLDWFlZaEIE8zHx8SJEANSx6jHipBLxiXqlYAJQicnQ1As6S1HgpDlKuEERywHzGys0C2tkEsu4IHPL8VFsO0xbVOIbs7v5wS0NHSpCoTqgdN2BVF28TdtSrVlRHM2DJL5+m2ThSFAL7YHybn6PSkbqQaVGLfhwou/BVTkQ7HIBCv9hmBJo8bQIZOFgjKUMFgD3//FkpDwYqKQX4g1Y1iKE0FjRoRTn54pjAdw5ukchQ0WEFFypbdVKAQcLKFsHkqAUIwaVAKyJAASfmIuO/C04ulspYScXLiOXlRpY0z6LVm2FpUsVkFUrEiVK24QT0w3ef059lRPogabOF2m82kHiDs3Ffh06yjb6MGiHnSnNm7OQBsMmii7zCgLRWkGoxthd2zAQSB4Crx88rTLBka+DHoyUnLFqOSHCTZIBRQbC+fpcGkUATSv2Q8tsVylIF7la6Rg4H0IrhLGfYlsEwcbqkXuw4AP8gcGkADz3cJmcwpmHdv6G8gT2YFBOePuosZINCbPSZXnHpUJE6DwBH7lwAgRAk2MJCECx4YQEMUOFCgyyqBAAAh+QQJBwBaACwAAAAAJgAmAIY0MjScijycQjzUtkRcVjT0zkSsakRkOjT0tlzESjzUnlRMRjTswkTkVkTMqkRMNjT82mz8wmTkfkx8OjxEPjR8bjz80mTURkT0olzswmQ8OjTcvkT81kyUfjw8MjS0Rjx0Zjx0OjTsjlTsykzkXkR8QjzcTkT0rly0mkRkXjT80kz0umTMRjxUTjTUskT8ymTshlSMdjzcSkTkvkSchjy8Qjz0nlw0NjTcukRkWjT0zkysdkxsOjT0tmTsxkTkWkTUplxUNjT83mz8xmTsglR8PjxEQjSEdjz81mzUSkT0plz0ymT81lSUgjw8NjR0OjzsklT0ykzkYkyERjz0slzEokTMRkRcUjTkwkS8RjwyMjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBagoOEggAPJQYKGRY6DAMoRy03hZWWhB5FWRIRQp5CTByiHCouMRqXqVoAEywNJxCfnqO0HAxHlKqEDx8yJJ2ynqG1oy4tuoIHVjINwMFCxLVRILo8MjImVJ+xnrHRtSoVqQdJ1yLPst/g1JUPy8xI6J/q0leFAL3XSt3y9LU4qAZNuCbjBxJu/cCpazLIQwKC5z4xQedvlAoOUYwIKkJQhjN50L5dJEZjVT5fCEHSGjmSmIoZNx50JAIynbqLOEflGEjQRs150VqCoyGgI4Kfs1ZWdJCl4xCkISvS8sGi40Sk/nKyvNAxHih5E6USK3etgQWoYmtVJXg22NWrvlEt0rvYlOALWXCDpR3loyjBo1hFKhXlgOc1n+hS7hUVQCZBmoH35gBQgyAJuHltKgzKAJVhGU9/Lg4gyAPXa1AiyyXFmnWBBYM4Xrv8LO/ekoMoE9wnjKLYGU4KPThNwmvCoLQK2Kt0gGBqlRXDpQpxzQRg33KFqoih6wDXH6Gf+SsgDtmDyiTuil/NGsdyZKuKsPihTW+0Ah2Cw8dUJAER9UlZNEMHFOx3CQBBlLADEEOEUsAMVTRxRS6qBAIAIfkECQcAMgAsAAAAACYAJgCFNDI0nIY81LJEZF407MZEVEo0tJ5EhHY8RD40/NJM3L5EdGo8zKpE9M5EdGY8XFY0xKJEPDo0rJJEbF489MpMlH48TEY07MJEPDY03LpE7MpEXFI0vJ5ETEI05L5ENDY0nIo81LZEZF48VE40jHY8REI0/NZMfG48zK5E9M5MZFo0xKZEtJpEbGI8lII87MpMvKJE5MJEMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv5AmXBIFAI6JwkqRmlcQqzD6FOsWokfx6ph6nYTXlNCQIpczzJAKwQOu92XAxVNRLDe4TZeMKILRxl4gngUDnQbBF56eYt4CSdnBTGDlI6GVQiBlV+bJhQbRQB3nWJuYI0mGWZDA22oipykLkMAKG+LuJyvpRQlQhOksJSLAUKjgqivp6YeHwgasK7Cy8EmKi3Vw7ddAS6lwbmmeQwc2d/BBAJ529TSnQkZydqDenqa1buUtubZCeX92QgEMKdsEANs/KqBQMAFXzYVMv6dmxaLVIILZhzkcyRuEAgj6ja5m7jsVAMLQybIk0eqGC0D4Eh5wFAkU0JhXRqAqoJo4km0jV8gXVHRINw6XecSkDjkoWJHQQ2E0ikBAVlSWBl2+kmzoOnIVw0q0NxKBMMJAQ1xivFQAQHZKwAKkDCQoWiCBh4guNgwB00QACH5BAkHAFEALAAAAAAmACYAhjQyNCSOVLSaRCxeRKTKZHySVOS+RCxKPNTSbGxiPCSmXPTSTCxCPIRyPCSeXLy2XExKNCSCVOzKTES2ZCxqROzabNSyRDQ6NCSWXFy6ZCxWPCSuZIx6POTSZHRqPDw+NPTKTNy6RDw2NCSSVCxmRMzSbOzGRCSqZPzSTIx2PCSiXFxSNDxqRPzebNy2RIzCZCxaRPTORDQ2NLyiRCxiRLTObHyaVOTCRCxSPNTWbHRmPCSmZCxGPIR2PCyaXLy6ZFRONEy2ZPTabNS2RDw6NCyWXGy+ZCxWRDSyZJR+POTWbHxuPEQ+NCSSXPzWTDxuTPTOTDIyMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+gFGCg4SCMkA9AkMmUDEmQwIpQDKFlZaERCkWKE6dnp8oQxwfl6VRMg03n52cq54mHJSmhBAWrre3FkCzggkmuMCrIDqzHjGswa6trEulCcfBy8koxJUQv8nZnyC7hDK20Z7SwUMihCmt4+PKwRyDRKqr6sj0uJwmTII92trrTkmnwPGzByyECCDLOM3zt9CJQicrOAycBiyJAIf80okj6HCGi4kgPRnAVq9kRlcxHoLaiJHlwBYwY8qcSbOmTZgdburcSbPDA55Adz4oELRozQIshBjl6WSmEBY8Xixd+uIAgCI5azadKrNDEUo0JlTgunPBBAqCLjjIMNbmVre0MN+2WJBBxYVBNE4EySpTbtEOQTaQIAQgwAYkNWL6jcvYZg0kG5rIGsRAxQkFGRCQRZBBwQYVPCzhOLHBc4YaSnc2FVKj84bSGkrB8Fz6sBECJYSkhqm7BAEjSE6QvkxjlgYVr4cLP4FkQpAgE4IvJ/1aBQxeURgYHr6BtILLwj1TF75hRGjsp2g4qP26vfvu1UkAQO+NAgbxyWlfLk+BAX1LABxAQgQjfPcZBhFQcMBkpQQCACH5BAkHAE8ALAAAAAAmACYAhjQyNCSOVLSaRCxeRNSyRGymXMzKZCxKPGxiPCSmXOzKTOzabCxCPIRyPCSCVExKNEy2ZJTGZOS+RCSeXDyyZPzSTDQ6NCxmRGy+ZCxWPCSuZPTSTPzWTIx6PLzObCSWXNy6RHRqPPTKTDw+NDw2NCSSVNy2RCSqZPTabIx2PCyCVFxSNKzObOzGRCxqRITCZCxaRPTORDQ2NLyiRCxiRNS2RGyqXCxSPHRmPCSmZCxGPIR2PFRONFS6ZJzKZOTCRCSiXDw6NCxWRCyuZPzebJR+PMTSbHxuPEQ+NCSSXPTebCyGVCxqTIzGZPTOTDIyMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+gE+Cg4SCMjw7AjUtTjEtNQIpPDKFlZaEQSkEFRydnp8VNR0jl6VPMg0/n52cq54tHZSmhA8Erre3BDyzgggtuMCrIjizITGswa6trEelCMfBy8kVxJUPv8nZnyK7hDK20Z7SwTUkhCmt4+PKwR2DQaqr6sj0uJwtSII72trrHEWnwPGzBwwECR7LOM3zt5CDQg4rOgycBqyIAIf80okj6HCGiYkgPUnAVq9kRlcxHoLaiJHlQBREYsqcSbPmTA43aXIwIBNnTps6gcbEaaCA0J5Hk8a0ocKDz581n9qUGtODAxoaPCgFSrWmhyEudJzQEAHm1rMcmmg4cQBACQ3KGiA45Xq2KoSxHyhdWAsXgo8FdWku8HGXrwtDE/iOjdvEyAKzUDksMNLk7uKxQCwMwrpY8VgKPTC8aBIhQpMXGHpQUAy3tYYLhAAE4OtaQ4K1Y090zg137O3bJ0rIGsQASG++t1snp127dgIdlm4Ad+46ue7rtqtnKAXDN3K4y5lnB297wKwbxpurH+8aCAxeTxjMTk4/e/i1t0tAh3+KRuL1yrUGxAXD8RcfDSWcsNyCcJXgAgMGWgLAARc4UEICCibwgQMutMVLIAAh+QQJBwBOACwAAAAAJgAmAIY0MjQkjlS0mkQsXkScxmTkvkRsvmQsSjwkplxsYjzU1mwsQjxMqlyEcjxMSjQkmlwkglTsykz00kzUskS8zmw8smQ0OjQsZkQsVjwkrmSMejzs2mwkllx0ajw8PjT0ykzcukQ8NjQkklSsymzsxkSMwmQkqmRUumSMdjxcUjQkolz80kzctkTM0mwsakQsWkT0zkQ0NjS8okQsYkScymTkwkR0vmQsUjwkpmR0Zjzc1mwsRjxMrmSEdjxUTjQknlwkhlTUtkTE0mw8OjQsVkQsrmSUfjz83mx8bjxEPjQkklz81kwsakz0zkwyMjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBOgoOEgjE+PQJBJE0wJEECKD4xhZWWhEMoEytLnZ6fK0EaHpelTjENNZ+dnKueJBqUpoQOE663txM+s4IJJLjAqx85sx0wrMGuraxIpQnHwcvJK8SVDr/J2Z8fu4QxttGe0sFBIYQorePjysEag0Oqq+rI9LicJEmCPdra60tGp8DxswcMRAgfyzjN87dwicIlKTQMnAbMiACH/NKJI+hQBouJID0VwFavZEZXMB6C2oiR5UAdR2LKnEmzps2bOhgouMmzp82cIorYaOGzqM0WNhA8gJDBRAahBBRsMGpzQwsCNiogyJAByAyuYLcWqXDCRgkCIyhQaCGErdoRtARK2DjBoMjWrVwRuNjhFG/eDHcBCw6MNzDYwxkOABARFrHjx5AHc6B0oenhwn8Fazas+bALQz8yP/br9zLirSoWDPrqtLHo06MPXyAEIIBr2KUzl94qQtagBSpau86d2zTgHZZumCAOW7doBBhKvejbuTppxwhmzMKgonnkzCqi81pgmzlmzBlEIOdlaEbo6pFVXPDNXtCCGYwtW0/vQnV9SwDscAEEItyFgAhAuHAAfZcEAgAh+QQJBwA8ACwAAAAAJgAmAIU0MjQkhlQsXkS0mkQsSjzcukRsYjwknlzsykwsQjyEcjxMSjT00kwkklQkglQkqmQ0OjQsZkTUskQsVjyMejzkwkR0ajwkplz0ykw8PjQkmlw8NjSMdjxcUjT80kwkllwsakTctkQsWkT0zkQ0NjQkjlQsYkS8okQsUjzkvkR0ZjwkolwsRjyEdjxUTjQkklwkrmQ8OjTUtkQsVkSUfjzsxkR8bjwkpmREPjT81kwsakz0zkwyMjIAAAAAAAAAAAAG/kCecEgUklytgay2G9VkA46LVKxaiTGOxJPrer8eGSVzLfNIisq3y117axSqmbiQuO93iWsuNNTwgGsYKnMWI2yBbm1sNmUGh4GLiR6EVQt/iZlfGHtEJHaRXpKBMhtEHG2jo4qBFEMxamuqiLR4XDU4Qi2amqs5NGegvLaABRsui1yzvss5yjkdFMOTgDQDzryposTOJyHT4F4pmLXl2W4jz2Db2OzDDzDxF/H08/Ty9zD29vj7MCvw7vHTR7BePn4D630omK9hw4QP42lwYBDfQYYVL9ILYMKhRYjzBoa8CIJFwIIQPapESQBAAxgnERoc2e/jPQ1UIsDEuLKneUEQRg449EcUJc94KxIM6Qgvpc+K9kwQAVDiJEN/Gj02kDMkwQqLR7FCRcrCCoqUNCM+nFBGxAOxAo0S3CdgzoSvcZ8iZcsnQQmeNLHOa1CWjxETQp02XAECgOEiCUx8CDyzAQilj62QYBEhQIMLby80CACCANcyQQAAIfkECQcAVAAsAAAAACYAJgCGNDI0JIZUtJpELF5EXKZM1LJEJJ5cLEo8bGI87MZERKJUHJJULEI8nLpMhHI87NJMJKpkTEo0NJpUhLJMJJpczL5MJIJU5L5EPJ5MJJJUNDo0LGZELFY89MpMjHo8bKpM3LpEJKZcdGo8PD40rL5M/NJMJJZUPDY03LZE5M5MVKZMjHY8XFI0jLJMzMZMLGpELFpEtL5MNDY0JI5UvKJELGJEZKpM1LZEJKJcLFI8dGY87MpMTKJUHJZULEY8hHY89NJMJK5kVE40zMJM5MJEPJ5UJJJcPDo0LFZE9M5MlH48dK5MJKZkfG48RD40/NZMJJZcjLZMLGpMtMJMMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/6AVIKDhIIyQj8CNwlJSQk3AitCMoWVloRHKwUlT52enyU3HiOXpVQyDkSfnZyrngkelKaEEQWut7cFQrOCCAm4wKsdOrMiSazBrq2sTaUIx8HLySXElRG/ydmfHbuEMrbRntLBNyeEK63j48rBHoNHqqvqyPS4nAlOgj/a2utPSqfA8bMHDMQJIcs4zfO38InCJyw83CqRwkWMBi2WfLBhQ4UKjh+WtGgQw0UKILeUCHD4BMiUCSokmOixYAFNmjVz6rwpQcWEGCgd0kDxJAYBEzZr3ryZtGmPp0lx3iQA9EIFBUx1alW6VatUpQqGYOC69OnSqDa/MoWqEwOEIM9w44aAOzeu3SB178q1OxfH27l59wKmyxcv4cN4TehdzLix3h4W3hYObLiyYcqE6waogfguZsaD9b7wIdkyaMegDwBY4Dkz4sGh68oO0oPSBgilUesWLUiDgSB/9x6O7bowDgaDOOfevZhyDUKrS88Obfkz4NqFGOD4XLi56RA+LOUIXtm6ab4cSsHgPrv15RDPTXHAUd4x5hAweFFhwFq668B1LRCeflQAUEMPnelVVw8vyEJgby+wNtxhDCL3YCUA+LCBBT2EcF0AG6jGSyAAIfkECQcAUgAsAAAAACYAJgCGNDI0JIZUlKJELF5EXKZM1LJEJJ5cLEo8bGI8zMZMTJpMHJJU7MZELJpULEI8hHI8lLZMTEo0JJpUhLJMRJ5M9NJMJIJUJKpkJJJUNDo0LGZEbKpMLFY8jHo8tJpE5MJEJKZcdGo83MpM9M5MPD40tMJMJJZUPDY03LpE9MpMjHY8pLpMXFI0/NJMLGpEdK5MLFpENDY0JI5UlKZMLGJEZKpM1LZEJKJcLFI8dGY81MpMHJZU7MpMNJpULEY8hHY8nLpMVE40JJpcjLZMJK5kJJJcPDo0bK5MLFZElH48vKJEJKZkfG485M5MRD40JJZc/NZMLGpMMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/6AUoKDhIIxQT8eNgwjIww2HipBMYWVloRGKgUtUJ2eny02HSSXpVIxDx+fnZyrngwdlKaEEQWut7cFQbOCCAy4wKspObMhI6zBrq2sTKUIx8HLyS3ElRG/ydmfKbuEMbbRntLBNieEKq3jLU06JStAEENAKyU6TeOfHYNGqqs6EAR6mFhAsKDBHT0IQEiwjBMDJ4J+fBIxocfBBTsI7si4EaPHHQ0miPiU5BS4JhsGfrzokeXHGk06oTgRhBOQBhpXctTZUSdBExA4sehQYUPOnTtXtuyItGONCkk8vDhKFWPGnFWTcqyhREBPn0y1fmx6VICCglcNqkW7dm3aHeMUTCC1upHjXKs832q8QKSvXyIg/gb+K5jwYMJEbvANfLhv48GNASOGDNgEYseFJxu+TGSHBb6ZL0eWrNlvABqYS0dmnPkxERc+QJOezbn25AMAFmz2S5l1asqSA++gpOGCbNvIObsQlMEAkcW/o7MGzjuxg0GojyfnHFkDodzagY8OzXh4IQc3qKtOPdmHJRzQq9OWPxsECA6lYBzeH50+YxqzcHDDbqIhtsMAvEjhwAIXjKYeaQsckKAgANAw4IPs7eCCLBMaosEOx4mn4XUdVgKADxpYsINi9u0QgAYHcFhKIAAh+QQJBwBbACwAAAAAJgAmAIY0MjQkhlS0mkQsXkRchkQknlysvkxsYjzkwkQsSjw8ikwcklR8cjz0ykwslkw8nlQsQjxMSjQkmlRcgkRcpkwkqmTExkyMdjwkglTcykwkklSEskw0OjTMrkQsZkQ0nlQsVjz00kwkplx0ajx8ejw8PjRsrkzUykzsykwkllTMtkQ8NjS8wkw0mlSEcjwsmlREnlRcUjTMxkyUfjwsakQsWkT80kw0NjQkjlQsYkQkoly0wkx0ZjzsxkQsUjw8jkwcllT0zkwsllQsRjxUTjQkmlxkqkwkrmSMejzkzkwkklyMskw8OjTUskQsVkQkpmR8bjxEPjR0rkzszkwkllzUtkSEdjxEolTMykwsakz81kwyMjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBbgoOEgjdEVgJVPUFBPVUCF0Q3hZWWhEwXTTZanZ6fNlVIJZelWzcuCJ+dnKuePUiUpoQRTa63t01Es4IHPbhJJycyJ0mtqw08syNBrFpTBlIwKUALC9VAKTBSBkmgUKUHzVo2LBTU1tjX6elAFDutNsqVEb9aLFfr19Xs/ED81h7s6NRgF6EbtqYYWfevn76G+/RR8FZlBaELNmS0YOjQn8d+1RzI0IJkEBMEFl6oi7jyozps/1Kw6BFFkJUMDhi25Njwpb59QE7MONUhH0BrP9klBQix2gMVK4gsAckz4kN/DxluIMJAZVWfX322BEJiAtKdWI865OmPgAKI8WF1ihWr70dOpUjz6t3LN++/nnJ7zh0stkKFI4gTi0h8ZDHjxogdK4Y8WUdkypMzP8bMWLKIFIc3S+Y8uvNmxEAwaD59eXLpy44D5DgSWvNr1o5f0xhS+3Zryr4fi0gAYMHpxchtZ859GQglD4Z/s54+nYYgDgVorwYOOXly0zogDJpdWzp104xzECpe4fZ30qIbOy8EwXLr0sFJD7Hko338+Mx1BkIpNfSG3mueNaaeKSDoUF5wrwExAC9bQLCAfwfCd8QCCVAoCAA5WJYfZUDQIIuHhngAhH8BOlaieChWAkACHmAAhAjIARGAB8TxEggAIfkECQcAHQAsAAAAACYAJgCENDI0JIJULFI8JJpcLGJEJKZcLEI8JI5ULFpELGpEJK5kJJZcNDo0LFY8JKJcJKpkLEo8JJJULG5MNDY0JIZUJJ5cLGZEJKZkLEY8LF5ELGpMLFZEJJJcMjIyAAAAAAAABf5gJ46kCGBWEDlX4SyBhQFlbZOMxT288ii+3y+SYNyOnQmhAmw6nz6HZYIsGSK+rDCr/TUjmKqo4dhqz9ygr7CpIi5ps6LQpHu3j8yxAW9651CBfg8NNgYOQH+AT3R1QI1NDmEkEwdcP5CAmZmOQBFUIxaCo5CNmUIJIwxMQpidj6OwWQ5GHRaKTqVQprJPqQAcaq5+uYy7agsTGHeBvMXFnHQQoomL1q+9xk0JAT1/m8a6vVsUC9jZnLHWA4jfza+8znUFPcfX58eQXuL2z+oKiPCliyZLVwEsuK7J++dkQABi9wTRSQerEQUCabQtdDRxl4Rl6GJtFAQBAJaKz3NGavRE5VZCdXYWUUzVYVVBa/HwOapgYATGlwxvNrFAAoClfDiFFvtkpUxEnZ0mTiohANxTlQUK3UDwgCJWmQSqkMlCkeMTB1qrGDh6s6MxMGJGKKkA1JiDBDTiUrIQwa3BAQl66rUxYRqFvl0PUkhQUkwIACH5BAkHAE0ALAAAAAAmACYAhjQyNCR6VBySVCxaRCyCvDRerCxGPCSKhDxy3CSiXCxiRDQ6NCSGVDxqzDR+3DRGZCSaXCxufCSSXDRmtCxqRDQ6TByObDRShCyGnCSqZDx67DROZBySZDR+1Dx27DQ2NCSCVByWVDxerDRCXCSKlDx25CSmXCxmXDQ6RByOVDxuzDx+5DRKdDxmvCxuTDQ+TCSOfDRWhBySXCxeRDSCxCxKPCSOhDxy5CxmRDQ+NDR+5DRGbCSWXCxqTByOdDRSjCyGpCSuZDx69DROfDSCzDQ2PCSCbDxivCSmZByOZDxu1DxmxDQ+VDIyMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+gE2Cg4SCACMxEUZJMkgJPCA4Bh+FlZaERTFKQDICAiECGRlBoxkSFAuXqk1FFzcOPp4hoCGjQbe4CTiUq4RMDUIdnaCenqKkyLYCBr2COyXBn9K0Aia3ttekJgO9LB5COknS45/Wt9bmyQqqO99CB9SytOm49aQZ3JVM0EIEw5/xQtDDZc5WAmaEAAATIiRWwGICCQYZeC0EL0EXGPaTNU1eNXv10F2jMKjIDY0HOtIiFnGiy3P1RiVI1SQjQx0dOa6kaI8eSYUaCRQDOFQaPXMicYmyyIThNxI5V8pKxxMmqRo2GVqgxnVa1ZcxKRTQKKSTzrMfkx51OSrFQiH+DlQS3QlSor0MIU4K8RC3qF9PVK2GJOgu2MpZUufVtSuRXzRiZ+kKXqsUgcYOUYvOGshTpIm3cVkepvaVZ4ixN1OQgwwRKdjBuBgMcdpQNESALXsKduniRWGoXQN+rWuiBoAJQePdnirRtesgFpvMZtgX8SyVw0GSZKVEYyy/rJ8nlRgCYRMWezcexr74dZDthpBrfSjZPUwT0QlV0Cs0OHPdR9VgyQh6OXQbMc4RNwM70OiQwnW2UeQcDr2M0B1m07BEGUH59FIBcv5ENh5MIQjYjCEsKEGABezZFUIAAJxYCABDTECCav+ZE4IL5sk4YwUbnBCAaibglwIONVwDpEogACH5BAkHAEgALAAAAAAmACYAhjQyNCxyjBySVCxaRDR2rDRapCxGPCSCVDxy3CSiXCSKhCxiRDQ6NDR+1DxmvCSaXDRGZCyGnCSSXDQ6TDRShCSKfCSqZCxqRDx67BySZCyGrDxivDx27CSKlDxu1DROfDQ2NByWVDxerDRCXCSGZDx25CSmXCSOhDQ6RDR+5DxqzDRKdCyKnDQ+TDRWjCxuTDSCvBySXCxeRDRerCxKPCSGVDxy5CSKjCxmRDQ+NDR+3DxmxDRGbCyGpCSWXDRSjCSOfCSuZCxqTDx69CyGtDQ2PCSmZDQ+VDIyMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+gEiCg4SCACMuGwQVMUYJPgc4BiCFlZaERS4eQxgdAiECFhZBoxYSFwyXqkhFFDZDsDefn6NBtrcJOJSrhEcqsBxDGgLExKKkyLUCBryCPCWwsDoxn6AhJra12aQmA7wrweFDsqDE17bY2LWlC6o8wdFD0+bW2Lf3t6LelUfQ8UM9qhU7h8/eOhPMCAH4NQQerAzmZhFMhy9fiF2CKPyD1cBaRAH28I2iSOrCoCKvNg6zVo5gEHsh8wVJkAqJxo1DKkRkGfMezHsmF+IckqHcQJA+K+azcPEIsH8pjoaodyskyZAWaNzc2EDizp5KkwW5MOMfPCLFBH6i+POlW3T+QWow3Ih2qleXYeHaCpHSYbBhadNa1UsYncN4HDpQ80g1bEyD/ujebfy4YD4EQ1cGnlrZss+5/9BWswsKbFXLIcpGg8ehbuC1p9/GtlXjw9N4XXc2VgrWxIsWh6NFZWzOdG9bNADsMPvw6KyfPdteRGIbZwXisD0rNclq0+0hnj6W1jsYboiESFY0/NeV9O68t14odLAxBUSP2WVDDzKdEIqU8YTHmGkVIWTJCABKs1N2V/kkgzuRNXRDS/kRlg4OvIzgnYIDwtdNM0hMsAEsKYD3EVt6nQeiISvMpQA9poXwAkYrsrLCDhykIEt+2MiIXo0KTbBCAQHUEIoJIdQHcAENNF4SCAAh+QQJBwBIACwAAAAAJgAmAIY0MjQkglQcklQsWkQ0drw0WqQsRjw8ctwkjnwkolwsYkQ0ftQ0OjQ8Zrw0RmQkipQkmlw8euw0Okwcjlwkklw0UoQshqwkqmQsakQ8Yrw8duw8euQ8btQ0Tnwshpw0gsw0NjQckmQ8Xqw0Qlw8duQkiowkplw0OkQ8asw0SnQ0PkwcjnQ0Vow0grwsbkwsipQkhlQcllQsXkQ0XqwsSjw8cuQkjoQsZkQ0ftw0PjQ8ZsQ0Rmw8evQkllw0UowsgrwkrmQsakw8fuQ0NjwkpmQ0PlQkjnQsipwyMjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/oBIgoOEggAjLBkHCytECT0BNwYghZWWhEMsHDycEUYCFxdAohcUGAyXqUhDFTWcrz8CMaJAtbYJN5SqhEUonBqvPAgCoKSjx0ACBruCOyTBrzjEs7W01aMmA7spwN083R/ExUAm5MikCqk7wNCvD9PWtvKjF9qVRc/tryvT5eW2/2hdMLGMEABf3/TxmBBDlrV/86rF0CWogsKE0mQJKGdN1D+OozAMGuLqIo8FDR0CjGhLVAJUSCya5PEjRkqItT6akyfyIDR2wSxMA2UOpzyQMQAU+XVRg4WUMYzmZBmKhsyZ7xpGnQdRpy0MM0yyK5Fy41SWXYFMQDiTn1aj+mmvjYpR0hvQVyWGxt25MufdduzcypKKszCQfG2nbT2LVt6BmZz4aYTLcqoJtibJyqJW2WutGGFfsQOGY584s0Ur74TRgenFd5ul8p3tQsVffbBVHt19lAYAHZBjifM3m/JEJK1F6xNuM15nWy4EDdlkcsFpr55txSiIJEVCfRqkvVXNWOQgAA1M4lgxnjHc44ROlAwGVPLixv5oWBpRt11ukMRFZI8lzigUi02yEWfCDbuMQB00GXHGWE4DqiJBaNBINhBf/8SgHzPSpfAgJwc695kLFIFoSAoYasAPLf7E4AJ3KhYCgAQpFKADAROYkEAME2BAQ4qXBAIAIfkECQcAMwAsAAAAACYAJgCFNDI0JIJULFpENFqkLEY8JJJcLGJENDo0PGa8PHLcJKJcNEZkNDpMPHrsNFKELGpEPG7UJKpkPGK8PHbsNE58NDY0PF6sNEJcJJpcNDpEPGrMPHbkJKZcNEp0ND5MNFaMLG5MJIZULF5ENF6sLEo8JJZcLGZEND40PGbEPHLkNEZsPHr0NFKMLGpMPG7cJK5kNDY8JKZkND5UMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv7AmXBIFAIuH0lisoopSgEToVKsWomwD2TF7UYiL3Ck8DhczzOYI9Vtr8CvuFxhoqKJMg2X2WVOvmGBcAUEd0IqG26KcHBxYhwCdx1+K5SUTXAcL5qOYQZnKnyKbo1ypmERkVUyiaN7XmJynIwchUQAepWubY2cp44ldkIOu6Jdmr2BmrMPQzBsu4uyv3JgCmYzxNGKMYGmnL5xzbhuxqOx4b7LL8Eyr9u6sXHhvxEk2vC8mafg1Q8j0fiI+uNt3rROL0LkyueF2i9fJaBZesftkcGL38zBI+jw26YwrRhyAfQRI70ICUR26ebxoayFIuXxe4gBYB+KAvewjKDOI5+nEBQowmPZ8dcDDxq37bzYTxYJACgY+iFZyuQLDFSC3txKqmDTU83SuFAZQ0wyjwpszeigaxuTqvR8hTWCwO1KZTPlBCuSIWU+oi0/1rJyAZpSQSVNRRABKuQukj2XmbhzYWw0wAU3qbqTwabGP4D2sSNhaAiADpbNAeak4IGw0kIqdEBhjCBJDGVgXwHAoMOAES5SRFCAIcQDEq+vBAEAIfkECQcARwAsAAAAACYAJgCGNDI0LHKkLFpEJJJcNFqkLHKsLEY8JKJcLGa8JIJULGJENDo0JKpkPGrMJJZ0PHLcNEZkJIKUNDpMPHrsNFKEPF6sJKJ0PGa8LGpELHqkJJpcPHbsNE58JIqMNDY0JJJsLGK8NEJcJKZcLG6sNDpEJK5kPG7cJJp8PHbkNEp0ND5MNFaMLG5MLHakLF5EJJZcNF6sLEo8LGq0JIZULGZEND40JKpsPG7UJJKEPHLkNEZsJIKcPHr0NFKMPGK8JKZsPGbELGpMLH6cJI6ENDY8JKZkND5UMjIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/6AR4KDhIIAISs+Dxs8Ix8vCTQGHoWVloREKzc8nJ0gIwwlJQwDGAuXqEdEFDmdrjwIIDijoiUHNJSphEYNnIydvyAgAbShoQMGuoI6KK/OwiBFtbS2AropjNk82sHCOAzG1AwuqDq/zsCwwhGh08YM1pVGzei+nsIjoqEi07bJhAB6bavnCpqMIu1q8Rv1IpcgCgTP3RNmgdZCfaMwDCLSiqCzWMIc9CuxMNSBU0cgenwGbQhJURenaQz4SiI6aCA6JFT4kkFDI/ZWDgQJIgLPmPpiqBRaEBq7nRgXYoDh8ZdEnC3Cvdw6aoZApp2ItqgFddqLjtyCumKEMwC4reIL+cm1ybTtyLsM6IHl1FYrTLglHuydOIwaUoVf92KlNnKhBqrpBqodiHNHzLjTZnCYjO5cZWOHX2JQQXclTnZ3ucYAAGTwBqI62+2bJkIDpc2RJ3cT5rLsVo2qTAzG6aCd3H4H/h1JIVkozoplF9IAiGClZ2EIpEU161AQCcF1hRGLTlI5oRAdq4JEPVshuUvMnPO2+FfE9FQhhHuE9oMxzPe6kAACZ9vE4pY4JbwQgzKDAJDCJjfJ4s4BGHTH4BEOIiDRBp+AA84LGJh3IUASpEAACCbkMIIDGiSAQQwWWhIIACH5BAkHAEcALAAAAAAmACYAhjQyNCSCVCxaRCSSXDRapDxy3CxGPCxqpCx2pCSiXCxiRDxmxDQ6NCSGjDRGZCSShDx67DxmvCSqZDQ6TDRShDxerCxupCxqRCR+dDx27CxmtCSClCSibDxu1CSOjDROfDQ2NCSaXCxivDx25DRCXCSmXDQ6RCSKjDRKdCSafDQ+TDRWjCxuTCxqtCSGVCxeRCSWXDRerDxy5CxKPCx6pCxmRDxqzDQ+NCSGlDRGbDx69CSuZDRSjDxivCxqTCR+fCxmvCx+nDxu3DQ2PCSmZCSedDQ+VDIyMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+gEeCg4SCACQrPQUZOhoHGAE1BiCFlZaEQysdOpydIp80EhIDFwyXp0dDFDKdrY2fIqE7Owk1lKiERjacjJ29sJ8NEjvDAwa4gjkjrszAIhpFs8MlArgojNg62b/OG0TSxC+nOb3Mvq/ORcPExNWVRsvmvJ7OIhvr7AnHhAC72vKt6j3DJw3GLUEUAJajVy8FMVHSLgwawgogMyACN8yaVWJWAlNHElpsJhBBx44bJUjs52qhOYEDN3LcYdDIvJH/MApMAG6dhBkicQaEmWIdSmIXYljstRCmiAcQN3Z04U9oJ531TkiVGaLitpstnQo7irKES6FYu8lEKSqeVU7JYmfK3FHgLcN6wuaerPrWqdats0IoPffvJtO0wB6UleniA1icTmHM5chCxdmRTjkMMzprBoAFVrEh/qQBIkGDRxwTfnwXGAKCKCWmEmIXpsbN0vQNQlEYssCik2vwizCynMDS7E6iJmSiLs4MGTnvKDHDEomKmOupkylB3CVlvl1LODldOCoStC1qX+sOlwkRrLWlbcCO5j5kRwCg2PQS1mtiCVxwEH6GoABENtrA4o0EIZRC4CUATIACAUAIIYMGFkBywQwDXhIIACH5BAkHAEsALAAAAAAmACYAhjQyNCSGVCxaRDRapCSSXCxivCxGPCSiXCxiRDxy3DQ6NCxmnCSShDxqzCxidDRGZCSqZCx2pDRShCxqRDx67DQ6TDxivCSibCxurCSafDxerCSaXDx27CxmrDROfCSGlDQ2NCxeRCxilCSWXDRCXCSmXCxiVDx25DQ6RCSWfDxu3DRKdDRWjCxuTDQ+TDxmvCxqtCSOXDRerCxmvCxKPCxmRDxy5DQ+NDxu1CxmdDRGbCSuZCx+nDRSjCxqTDx69CSidCSedCxmtCSOhDQ2PCxeTCSWZCSmZCSWhDQ+VDxmxDIyMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+gEuCg4SCACQsFgkcP0IdIg5FBiCFlZaERCw4P5ydBZ8FMB8xEwqXp0tEEjadrY2gnxhBBzWUqIRJDZyMnbywsCk7BAa3gjonrsm/oEIZOwcCtyuM1D/VvsufMBc7EAinOrzJvT8z2Z8R3RDRlUnI47ue558MO8/EhAC61vCt87EQuo2wJUhCP3Hy/jEICGHCICKs+iUz9y9CwGemlhiUqOzfpwPddjjU5wrhOI+fhjAcmCQeR34U//FgCIHGxpf+UHa4KFKGRF4IUX6iGWAfzk4x/124OCLiNZetGAkt4MxeCZM4pxqh+e4op6nBQibwmtCjs4AljHqdeuDiBp+r5PhB5Tf1yMUAHuaOEyd0gb1uE1xg5Sj0w5GQNAAoIcsh6bkPKynljTsXm8e29hymUkEWJQaGB/AtWSH3Jcohf2vke8GR778FdiEMLIRibNZ/qHeUEE2IRMSfjmFhUBcCXNd+8zq09XaLBGeJ84KVYHcLRQG91oIXMLJjBO9bAFZsOvlrQYYDPggWGxR+BkIOvz4QaJFxvSUAFVYMKKDChhAhIuSAAA3qXRIIADs=)!important}#toasty .toast.toasty-theme-material.toasty-type-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QTY3QkFBREEzMjMwMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REZBRTRCMkMzMjMxMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpBNjdCQUFEODMyMzAxMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBNjdCQUFEOTMyMzAxMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pu2cWHAAAADmSURBVHja7JlNCsIwEEYTcWsXrvUGBbvqFep59Bz2Il7AXsGd4A103UV7gHQwXQkRGqFJ6PvgC5QUOq+TX0YbY1TKWqnEBQAASwdY/+zNy720F/FRvJk5tl58E5/V8/5yvaSdy2he7qR9iLeBf3IrPgjEe+oQqiMIXo0x1D5zoIpoqFc+AFlEABnLKABB9oH/pL+eDRkAAAAAAAAAAAAWdBYyZAAA7gPcBwBgHyADACQM0EUUZ+cD0EQE0PgAnJQtLoRWO8YyEcBWRArxVdlyz9zqx28XrurM57xCpR4AAAAIqkGAAQAoXCj9X4moZwAAAABJRU5ErkJggg==)!important}#toasty .toast.toasty-theme-material.toasty-type-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RjdGQ0YwNTEzMjJFMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RjdGQ0YwNTIzMjJFMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRDJBQjdENDMyMkIxMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpGN0ZDRjA1MDMyMkUxMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp4tcFEAAAEgSURBVHja7NjPCcIwFAZwK9LexAE8dBS9WQURPLiBNwfwZLuBUyhebHEBXUVwCi/1C7yClCZN2sQUzIOPGsH4I38eopfnea9L1e91rBzIgRzIdA3aTjC+bVQ/4iNr5MwGr+XF6goxzBU5IQfbW8YwKbKgcYxMbIEKzPzrvQR52ADxMLGNLVPCaLllNZgMiWQxJleoEcYUqDHGBKgVRniG0IFDPPbIDt30LTFXQAe4MYa7QoS5I1v2JRj7v8CItmyFhPSaXdlMgNKG4YKwRUeatKiIUEFpJbVihIcaqLgClRYoemY6MbW3TIAaEmamEyN17TmopwmMdB+qQI1MYJQaYwVKO0a5U5dQCY3t/sgnxNQEhpXn/mxwIAf6N9BHgAEA0JpdHXf3fp4AAAAASUVORK5CYII=)!important}#toasty .toast.toasty-theme-material.toasty-type-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6REZBRTRCMkYzMjMxMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6REZBRTRCMzAzMjMxMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpERkFFNEIyRDMyMzExMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpERkFFNEIyRTMyMzExMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po80HzoAAAIcSURBVHja7Fm7agJBFHWX2NhY2doFDAwBIa3kA5La9H7AdtrZWohNPmP62KQLtgEhBCKks7WysRHc3IEr8bGPOztzZ3dhDxzUndGZs2d29p7VC8OwVmZ4lYBKQN4CpEhqfcLXeWyPl2+j4W8YT04dOMP378A9xyA+o4AA2EEGXINwCWgBxyefx3isNAImwObJ5yYeK4WALnAQcXyAbYUW4AFfY37XxzavyAL6wF5Cew/7FFJAAzgl9Jti38IJGALbhH5t7FsoAWpSI43+I6JYZwJ0lwV1uTkRkPXCTLvgHRRzUqgT8Gmwvy+BD1DQHfJywPTmFHfTc+CAFKo8+LVQ42yAt+DC1rUDaQWad0Fq4efAASlUifyFNX+SgFMkDaSywj24sHLlwCxl8ibhh9kBKVRMfCMWdlQHjngGF+Z8AqSo49LpMAlY4VLacy2hgDj5rNCOn3QHpGjhttnUyAa6DihscVvd2HZgojF5E2jFT5oDUnSxZPBrbnDAEmNpLkAKtRQ+bBRemlgAH0FEaLqE+jlMnlzlJjsgharbf2yFjwxYA+/AhV1WB4YGk6fWQkbxM94BKdp49hsGArJso5fYoQtrXQesPj3getoR7YAUPdx5TB5C2XLg+F21Iy3SBZjHRC5Exk+fISZyITJ+njtgLyZy4Sp++poxMW9cxc9/B2gxsQg4i58+Y0zkwln8rP5mrQRUAioB+eJPgAEAEga0oSjgsNgAAAAASUVORK5CYII=)!important}#toasty .toast.toasty-theme-bootstrap{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif!important;font-size:12px;border-radius:4px;border:1px solid transparent}#toasty .toast.toasty-theme-bootstrap .close-button:after{content:'x';color:#fff;font-size:17px;font-weight:100}#toasty .toast.toasty-theme-bootstrap .toast-text{color:#fff}#toasty .toast.toasty-theme-bootstrap .toast-text .toast-title{font-size:13px}#toasty .toast.toasty-theme-bootstrap .toast-text a,#toasty .toast.toasty-theme-bootstrap .toast-text label{color:#fff}#toasty .toast.toasty-theme-bootstrap .toast-text a:hover,#toasty .toast.toasty-theme-bootstrap .toast-text label:hover{color:#f2f2f2}#toasty .toast.toasty-theme-bootstrap.toasty-type-default{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEEzQTA1RTUzMjJBMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEEzQTA1RTYzMjJBMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0QTNBMDVFMzMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0QTNBMDVFNDMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pr4ktvwAAADlSURBVHja7NrRDYIwEIDh1jAAozhKN/BWcgJ0A0dgBEbRCbCNkphaTAsPXpv/kkugELgv5eCh2HmeTQtxMI0EEG3RxQPW2mXT+Tz57JXUevd59XkLO1+9HQY+8x1DOKQ0h2TdCYhTjFjSxXWnekQqaAnJafa+AkjP6xcIECBAgAABAgQIECBAgAABAgQIECC7Y2oB8vB5qR0SEJKakW7Dxc7mtejyj8dpXL13Yn0knLy2LiFapiZnoWfUjtgDEW3NsgUiGru+FCJaX18lELWIEohqRC7kWMOXMa7b8ncQECA/4ynAAPBVcVo7OMcUAAAAAElFTkSuQmCC)!important;background-color:#fff}#toasty .toast.toasty-theme-bootstrap.toasty-type-default .close-button:after{color:#000!important}#toasty .toast.toasty-theme-bootstrap.toasty-type-default .toast-text{color:#4b4b4b}#toasty .toast.toasty-theme-bootstrap.toasty-type-default .toast-text a,#toasty .toast.toasty-theme-bootstrap.toasty-type-default .toast-text label{color:#4b4b4b}#toasty .toast.toasty-theme-bootstrap.toasty-type-default .toast-text a:hover,#toasty .toast.toasty-theme-bootstrap.toasty-type-default .toast-text label:hover{color:#585858}#toasty .toast.toasty-theme-bootstrap.toasty-type-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NEEzQTA1RTkzMjJBMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NEEzQTA1RUEzMjJBMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0QTNBMDVFNzMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0QTNBMDVFODMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCIVOQAAALtSURBVHja3Jq9axRBGMZnj+ViAhbaaISLR1AUBBNjEq7zD7gUiqIIgraKVf4Ay9gljYVFiliJEklyJE26dJsPYy5pE/AQtNNC8SMXHJ/BN7C3O/exe+/c7twLP5jmZp7ndnZ25n3HkVKKboiM6JJwmfrpA6fACCiAIXAB5H1/1l/wEeyDMvDANvgGfrYrwGlzavWDcfAQ3IrZxwJ4BTbAl9hKlJEY5MADsCv5Ypf6zMXRFPUHLigCT5oLj8ZwTRk5C57LzoUaq5/byFWwLDsfS+Ayl5EC87sQNTZJQ0OdzVYttYS+oWU1yVDL9D1auiN/EM+BmRSYEKRhhjRFMpIFT0ExRR/vImnKRvkgqh+9Az0p24n8AbfBSitPZAA8YzJRBT+IKkN/PaRtoJkRB9ygbQdHzILTxCxTn+Ok0WlkRO2dJhmnwhE9iSq1uWKStGqNOOR2mHHAM7TijFCbK4ZJq6N72U+A1+Am44C/wHdqnwS9jH0vgvvgd9CIWqM/WXTYUuebHPgcnFqjlp0YM6Q59I4UDAymDkuPiQ0D/Rd0R90hQ0ZeUvsK47Ie0uw3Mmjo8WcNJjoGdVMrb2Agp06bK/I6I66wL9yuy2tlAtsJ2+JIZ6RioZGKzsiBhUYOdEbKFhop64x4FhrxdEa2VAbVIhOSNIeMfAUli4yUSHPIiDrYz1lkZI40h4xI2uTtWGBih7TKel92VZ+YNjCXud+9aRGopbiaQdfILceWewJcpPYlxqPBWvDPqZegUwLmRToTdHfAcqO9lj9W6fGlaTmWpGm12abRH4fghdCkJhOMFdJ0qD34tFBWeAuuJWziA7grYpYVBP3wifhfn0gqtknDfuOJ11rpTZW/SglUq0qcpbdjVGFyqoMmpkwUQ/3l6QmwbtDAOo3hmqyzBy8M7DEa2GvnwkC7VzhUvngMPBLxk9+LtAHcFJTHjZV3YrrmdHyp5rqovVRzXtReqqmI2ks170VKLtWkMh1kdfwTYADvtL/RevtcWAAAAABJRU5ErkJggg==)!important;background-color:#5bc0de;border-color:#46b8da}#toasty .toast.toasty-theme-bootstrap.toasty-type-wait{background-image:url(data:image/gif;base64,R0lGODlhIAAgAPcAAAAAADhwqCp+vi5yuDR4sjR2sDJ+sjp0sDZ4sjJ4tjR4tFyQwDB0sHKexnyozkKAuGaaxnCgzHyq0Hyo0H6q0ISs0E6KvjB4tjB2tIau0oau1Iaw0oaw1Iiw0jB4tIiw1Iqy1DJ2tjJ2tDJ2sjJ2sFaOwIqy1oyy1DJ0tjJ0sJK01FiOvlqOvlaQwpK21FiQwliQxFqQwFqQwlqSwpK21pS21pS42Ja62pi62Ji62pi82pq82G6gyqTC3nKgyHakzqTE3nimzqbC3Hqmzq7K4nqozoKs0pC01JC21p6+2q7I4LDK4LLM4jJ4uGKWxnqo0EKCvGyeyoKs0FCMwFSOwliOwJy82nSizKrG4I601py+3LLM5LbQ5sDW6DB8ujJ4tDB2uDB2tjp8uLzS5sLW6DJ2ukCAuD6Auj5+vkqGvEqIvqDA3EyIvk6IvlSMwFKOwlaOws7e7mSayLrQ5Mrc6tLg7rjQ5jB4uNzo8qbE3jR4tkKCulSKvDh8tkiGvD5+uE6IvFSOwJy82DR6tjZ4tDZ6tDZ6tjh6tMze7OLs9F6UxGKYyDp8tlKKvGKYxjx8tqzI4Nrm8ujw9oCq0FCKvj5+tubu9u70+F6Uwj6AuFqSxF6SwnKiykqGvkSCuMja6tjk8Pb4/GycyGiayGaayGKWwlySxEiEunCeyG6eyMja7F6UxkSEvEqGul6WxmCUxEKCuMTY6mqcyGqcxk6IumCWxmSWxFSMvlKMvlCKwNTi7k6KvGSYxDp+uESCujJ6tjR8tjR6tDh8uDx+uDh6tjZ+tgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEFAMYAIf8LTkVUU0NBUEUyLjADAQAAACwAAAAAIAAgAAAI/gCNCRxIsFiTBAgTJixGsKHDgcASYFBIMcGFBF4ePjRgsWICBYpkiKEYQONABQpn2ACR0E2XLkgoXmhi8tdFhCJ6bNliASGPlycSikAYotBDBTcTTtrpAGGGl1cQEqBxok+CEDQJDgiRwFCahJR2YlEgYs1LGQlGnIgTh0bCkgMRKtAA5AfKETq3yBhh5+UDET7YxmmaEOJFC0ASb2D05crODw9echmxQDAOlAmzJlTgIDEQG3s87SRS4qWVVrHYKjlU0VgZhQpkedbShgYRCgquZHlBhO2YBwlEFCilKAGYAwcViiixJnEOBVaFdoijysIIPi7i4Im0R6EwNSMT/nxJowNIFI8KeMWo0AWPe/eyFP7QoSOLg1El0pTwmPDIe/d0VIWQBwmAQN+BOuTwB38+uaeLFYoQkFAIBCrCwQ0I6hAefwhUMAsCQylEIU4EPOAGBEGcx+BHSTBRgw98FDDCUCEklVAfuLyix4p7SOLjj3RUIAJXm6URxQcmmDDFiqf86CQdItzUxyJGJGmlIwwqgAoLPtCwRB0+5qHQFFYmOcEMfqjhkQg7hJLICjOK8EgV4RVzQS9JGuHEX3tMIIEmFA0igiWhhHJJAwwoBIYAxiDkRxqY9fKDBBJEwYopU+hBhRwv2CJJoaGoQIJCAnkxUUKGREBpEH8sEkEEqA/IIasYgIAC6hKEJODBL3EpRAqlErCiBw+v9tGCrGwkUAkZoGKCEEEcIdQCsD2J8WoUIkAhqysIESJEKHOghEZDTXDlBKUzIMTKq7UkMMgisp6RUAmFhKDAQ/UOskpxCE3xagv9yrrkhGCY1ISNCWjyqpoJnCHrKrCZJFAAEiVkyqtmJNQCDFDomsC4Eg90EBjuQsFKRSTzGrJDByB0QQgw14gQoyYFBAAh+QQBBQDIACwAAAAAIAAgAIcAAAA4cKgqfr4ucrgyfrI0drIyeLY6dLA2eLI0eLRaksQydK42drB2pMyCrtJAgrponMp4ps6IrtKErNBOisCMstQweLYyeLKGrtIweLQydrYydrQwdrQydrIydrBWkMAydLYydLCOstJYkMCOtNaQtthYkMKSttZakMBYksSWuthaksKYutiYvNqavNqcvtxqnMagwNpwnshwoMqqxNxwoMxyoMhyosxyos50osx0pMyAqs6qyOCAqtKsxt6CrNC2zuSCrNKIsNSOtNSWuNamxN6qxt6wyuC60OSKsNSKstQ2erZkmMh0pM5Ihrx6ps6GsNRQjMAwfLoyeLQwdrgwdrZWkMKStthsnMiiwt5uoMqAqtCsyOCmxOCwzOK40OYyeLi80uQ6fLgydro8frhAgLg+frpAgLo+fr5Khr7E2OhMiL5Oir5UjsBWjsDE2OrG2OrG2urI2uponMhunMjU4vBunsi0zOIweLh+qs56qNDA1OjS4O7c5vJ8qNDC1ujg6vQ0eLZEgrpYjLxYjr6gwNw4erZMhrxSjsA2frZCgLg2erRclMRomsg+frY6fLRmmshkmsg4fLY6fLaGrtRSirxSjMCuyuLS4u7o7vZQirxcksR+qtBCgLa80ubM3uzg6vLu9PhcksJwnsZilsRglMBeksDe6PK+1Ob4+vz8/P5GhLxglMJIhLpCgrpelMRkmMZilsZIhrpmmMZMhrpCgrhmmsbM3OxOiLxomsZUjL5Qir5SjL4yerY0fLY2eLRGgrpMiLxUjMBCgrxglsY0erZEgrg0erQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gCRCRxIMBEYAwgTJkxEsKHDgb4McFBI0YAFA1IePiRgsaKBBJtGGKIYQOPABApNkICScNeXLxUoWgBjstdFhBde8OCxBiGMl0ISbkCoYdHDBDcTPtkZAeGPlzMQJqggZIkBDTQJDtBgYImThGx2ZklwwcXLEQY6SIgTJybCkgOl9nhxw2oHnTw+dPDy8sEFGWzjNFAI8eKaF4gdjJyx04Gil5cuoHjD9gTFrAkTRED8goQrQTuLtHmpQhYqtkUWVUQ2RmGCWZxVHKrQ5UmCGUncFGELpIyBDQVYoTBA5cBBhRvatEB8JYFVoRPi7FnToVIFOHUwPVDoVQzCKU6u/ryY49EAqRE7kNRZv76RwhklSkBpAKuNkzblEVZgv/6PhJEGZGCAA/EVWAIJZORnABbrfaICCgUkpIGACvRAgoEleJcfAjvkgsBQCk2IEHCKWBJLDuQpmAALXAwhQyUIdEBUUgktwcYmKOUnCCA88niKGltswFVCgaTRSA8OOECBgq2c0mOPamxw0xKv+JHklYzkl4AMI9BRgQ+f8JiFQhRcmaQOHwjyVUUXqBBKH4PIeMEjHwCYiAViJKnHK349gEMTJiD3SAGnhBJKJjLImBAVAiCDkBNO5CjGDE00AYkgVqyRwBGpqFEKIIaGIoKiCAkkxUQ1QlBpDWQwAgEErYKkoooqtODCR6g+qJZBL3EpREylTQgSCCSvLhHGrERc4IgnoYpS6kAcIdQGsEuK8SoTU9gwKyALGLBIDKEAgRIaDYHBFSOVBmqAIK8q4G0os5aSUBtLaJDAQ4tosIQC7iK0xqtRIOTDrDRcICEVJoFBowFWvLomKduSeq9JyAQgUUINQ2CGVGHIgcUFApJL8UAHUdHVA8Mgt0EVBvA6skMHIGSBBjRrcFOjJgUEACH5BAEFAMAALAAAAAAgACAAhwAAADhwqCp+vi5yuDR4sjZ2sjJ+sjp0sDZ4sjJ4tjR4tFiQwjJ0sDR2sm6cxnqmzkCAumSayG6eynqo0HymzHyozoCq0k6KvoSs0DB4tjB2tISu0oau0oaw1Iiw0jB4tFSOwIiw1Iqu0DJ2tjB2tjJ2tDJ2sjJ2sJK01DJ0tlSOwlaOvlaOwliOwFiQwJK21pK42JS42JS62pa62qDA3GiaxmycxmycyGyeyHSkzGyeyqLC3KLC3qTC3HimzqrG3nim0HqmzH6ozoKs0I601pC21p6+2qbE3K7K4n6qzqrG4LDM4n6q0q7K4LLM4jZ6tmaYxmyezHqozkaEvHKizHyo0E6KwIqy1Jy82mqaxnSkzqbC3KbE3r7U5rbO5LzU6DB8ujJ4tDB2uDJ4uDh8uDJ2ujx+uD5+uD6AuECAuD5+vkqGvL7U6EyIvEqGvlKMwMLW6EqIvkyIvlKOwszc7KjE4GKYyGicyrbO4rjQ5src7NTi7mqcynSizNjm8DB4uLrQ5pq82trm8DZ4tG6eyEaCulaMvDh6tkaGvFSMvjZ+tjp8uEyGvObu9jZ6tD5+tjp6tGCUwoqw0jh8tjp8tlCKvFCIulCMwDp8tNjk8ODq8uju9lqSwnCgzHakzEB+tvT4+liQxMTY6tbk8PD0+kyGuGKWxF6UxF6SwFqQwmCWxl6SwkiEvFqSxEKCuEKAuFCKvkyGumKYxkiEukKCukCCumSYxjJ6tjR8tjR6tkaEumCUxFKMvkSEvDR6tDR4tgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+AIEJHEhQ0ZgECBMmVESwocOBuBJoUEgxQYYEYB4+NGCxIkJOIMhQDKBxoAKFLEJYSAhryZINFDOMKXnrIsISM3jwiIOwhsshCUsgHOHooQKbCT3pzIGwgksJCAl42PAkwYiZBAeMSPBkSsI2OrEoKBHDJYgEJjCwYRMiIcmBCHM9kCHhJIEYOkEQUOISQokba9lQUQjx4hoZiCeIvKFTSBqXdUq0+LKWCEWsCRVQQSyjAwRXOmmAcFlklpe1NKpSBFZGYQlTnIms4UAjxxMcGxLtWIskTYISBFYtSEDiwEHXIGAgvqJAdcIkbPK0MVHJAxs6eiAo7CoSoa4rMiL+eEwQacUDJ3TSp4eiUEcIlZ1UvWH1ZjxCDurTA8JwCOGHBFW8J2AIHZhhXwI1pCfKCwucNNR/C/jQwYAhdDceARTUMIhQCo3wH0IKpHHBKRLIcmACCsTAhSQOVFIAhyMgldATbTR4oCt+5KhjFxWUsJVCU9jhwwQTyHFgITom2UUJNj3BiRZERjnceArcsIINHvQgSo5YKBRHlERKAAItiHhUwguN7GGIUCVAEhJCimSwCJE5cAJBGBDoEIUKrlFCQCaNNKKJAyYoRIIAwCDUyxQOknFHFFGoQosKcSjwAyldoCJIoI2IwABhwIAx0Yx2QHrHIq1EEIErpIACSimsbdDB6REIJPDBLXAllEsrkEqgnaoRPOGFqyiU8IgXnHKCEEEcIWQFpFG4kQAZqtoRBiGuCvIpAUY0gsRJajQ0xlYLQHpWArSoGgpXm7iKSkJvPDGCAg85MkIuKvCJUByqXoLQEa72wKFVYpQ0howJqKCqVwns4qofhYJYkkABSJSQwhEYiKIXcNhQwn/hTjzQQSQkkAsEtLhWQsm4iuzQAQhlMMLMMSKEaEkBAQAh+QQBBQDRACwAAAAAIAAgAIcAAAA4cKgqfr4ucrg0eLI0drIyfrI6dLA2eLIyeLY0eLRckMAydK40drByosyAqsxCgrhomsZ0pMyAqtKAqtCCrNBOir6ErNAweLYwdrSErtKGrNCGrtCGsNSIsNIweLSKstQydrYwdrYydrQydrIydrBUjMCKstaMstQydLYydLAwdLBUjsKMtNaOstJWjr6QttZYjsBWkMKWuthYkMBYkMJakL5akMBaksSYutiYutqavNpunsiavNycvNqiwNxyoMpwosymxN54ps6oxOB6qNCoxuB+qNCqxt5+qs6CrNKQtNSSttagwNqkwtqyzOKwzOJ+qtC0zuQ0fLZkmsh+qtJIhLxomsh4pMyArNJSjL5SjsKOtNRuoMqgvtpwoMx6qM6uyuKOtNaUuNigwNyiwt62zuK2zuQwfLoyeLQwdrg6fLa40OQ2frYyeLgydrrC2Oo4fLg6frg8frg+frhAfrg+gLhAgLg+gLpAgLo+fr5MiL5QisBOiL6gwN5QjMBSjMDE2OjO3u5unMhmmshqnMpwoMp2pM4weLjA1ujO3uzQ4O7S4O7e6PKsyOA0eLZEhLxUirxUjsA2erZIhr5UjL48fLY4erQ4erZglsbg6vTY5PDs8vjq8Pbu9PhclMS80ujM3OzS4u7o8Pb4+vxcksRcksJ2pMxsnspqmsRIhrxonMhGgrhmmMRimMhilsJeksJunspkmMhelMRqmsZGhLxglsRKhrrM3uxEgrhEgLZKhrxklsRCgLrI2OhMhrpMhrxOiLpOiLxQir5snMZEgrpCgrpQjL5Sir4yera80uY2eLRkmMY0erY0erQ2erS80uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gCjCRxIsI2bBAgTJmxDsKHDgVMSZFBIMQGGBGgePjRgsSJCGSziUAygcaAChSw0FElowYiRCRQxuCmZ7CLCETB69NiFkJnLIwlHIAzh7KECmwkd6OyCcIjLKwgVVJgwKUGImQQHhEgwCVJCYDrHKBghxiWLBAQonDmjISHJgQgfSWhR6CQBMTq1ECjj0s6ICGvPBFEI8SKlFogPrUkQQeeQOi7LjHghZa0HilgTPuqCuIWSPBB06tDiEgSrMGt3VKUY7Y3CEbM6d7AyQUeQSREmaPGxlgidBCMILIiRQMSBg6+HnUCsQcHqhEXOPNlFQtiFM3Dg5FEYB5JIhJA0/rTI5DEBrEpYHGVfTz4hlQkThhT6ZKGWhfIIK6zP/uQIJoQfJCABfATCJwd+CTCTHSgoxHDSUAGy4EAVBU7wXXkEYMHLJUIpFEKAUdFhAQ6rfIJgAgrA8AMHtARDQIchIJXQJJSY8AiCECyio46CnDHECFspBAkOQTjgACUIsiLIjjueMYJNk8jQhZFUnlWeAhG8EMEFPyij4wwKUUKlkYTw0YtXFY3ARSOCRCLUCGuYsFgCbWAQh5GosDBHAnNQQYUFJHQIJwGCNNLIJqmQoJAIAkQDHpoJxJGJnzXwYAYMlwgxChsLiGJoIxsompBAaEw04yd+urJGKKSQ8soor5xw8sstgXz6AwIJfJAMXCj5SQUeBHjSqi5PxOrCCJY88SkNCBHEEUJ7+GpFAre0ygkDPMTKSAko5tAIEifp0ZAbW7Hg530J8NCqLyQso0msCySkxSQhKPCQMyE0w8cfCTHRqhNC/RBrEx1apUZJbsiYgBmtPoCQKdoWbG9J0QQgUUJntBovik8oE8EIAYpL8UAHiZDAGhHQQkBQI5i868gOHYAQBiOkEEKMCDVaUkAAIfkEAQUAywAsAAAAACAAIACHAAAAOHCoKn6+LnK4Mn6yNHa0Mni2OnSwNHi0XJLCMnSuNHayNHaweKbOQIC4apzIgqrOeqbOhK7UTIi+hK7Shq7SMni0MniyirLUMHi0Uoy+Mna2MHa2Mna0MHa0MnayMHawjrTUMnS2MnSwMHSwVI7AkLTWVo7AWI6+VpDCkLbYWJDAkrbWWpC+WpDAWpDCXJDAWJLCkrjYWpLClLjWmrzanLzYbJzInLzacqLMoL7aoMDcoMDeosDadqTMqMbgdqTOdqbOfqjMqsbgfqjOfqjQgKjMfKrQrMjgfqrQgKrQrMjisMrgiLDUjLLSmLrYpMLcqsbesszisMriirDStM7kirDUjLTWNnq2ZJjGQoK8apzKgqzSUIq+hrDUMHi2UozAMHa4lLjYbqDKdKLMosDcfKjQmLrapMLets7kuNDmNHy2MHi4utLmMni4Nnq4Mna6MHy6OHy4PH64Pn64PoC4Pn6+SIa8vtLmTIa8Uoq+xtrqUIrAUIzAqMTepsTgZJjIyNrsZJrIytzsaJzKgqzQcqLK1uTwcKDMdKTOxtjq0ODu2OTwNHi2QoK6Toi+OHq2RoS8Nn62PH62Soa85Oz0Nni0Ony2OHi0YJbGZpjGaprGaJrIOnq2Onq0PHy2XpTEYJTCToi84Or06O728Pb6XJLEbJ7KRIK6YpjGaJrGZJbEYpTCwNTmzNzs8PT4+Pr8xNjoSIS67PL2/v7+SIS8bp7KZpjEZJTC/Pz+SoS4TIa6zt7sYpbGaJjESoS6Soa6TIa4QoC0aprEQIC6Uoq8vtTmToq+Mnq2NHq0RoK6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP4AlwkcSFCSGwMIEyaURLChw4FrDHhQSNHAFwNxHj4kYLEiwhJgsFAMoHEgAoVgjgBJmIcHjwgUv7ApiewiQgtNZMi4gzCVywYJLSDckOwhApsJT+l8gJCMyywIERCJIHLDTIIDNhjAoiXhHZ1XsFio4BKMgQIRliwpkpDkQISNxkgAdLJAThldCtRwSceCJrVLmCaEeDGShMNjIBnIojOHA5dnCmgATIHi1YQIOB2W0ICOA50murikoOyHWjEiKS6Do9DCjM1KIkVQsQVBlghdxKjdQQfhghUlDHA4cJDiBC6HjyBIjbBAgyU/7iwQpWRKGzUOFL7RwtzREQmmPP4aeKHBEJo26NFnUpipQYMcgFJMcDShkXgDSdKjHxJBzk0DY7gnoHuX3LcYelVUUMJJQ2VgABinADFgA/7dh4APoWAilEIbOBgVHZSkkEUMBhqAAAY4FKLJLgt00GBFWNzRhX33ORDIjTfuMYUPFmilkBYpbCFkJAaisgeOOE5hgU1YgCGIkFDysWFFCGiigSZK1JDGjSwoFAmUQmYyQRY+MNgaBofsUYxQFlyigWIGSPKFHEICAsYcBSQACy09fDDlJQvsccghi/jiYkIcCLAMQsQ4kpAss9BCyyKbSOGEJWWMIoULgwx6CAQfKCRQHBMl9AkjkpayiyKllMLKKLaVVKLLL8Z4ioMlBmSAzFsJFYCHpLngsgAprQqDRKxUWDDHEJ6egBBBHCH0hKS0gJpHq5Uo8ECsroSKAA2HQHGSHQ2xoZUUkvZpwA2ttvKBJYzE2kJCXWCxAQIPJbMBJH5EsQBCIbSqg1A4xGrDlBuEURIbX1hwqAFMtCoEQglw+zC+JS0TgEQJSdEqCgkhkYYmFjhIbsYDsSGcAZCsokoBFHFgwK4oO3QAQl8UIMIGG9ikaEkBAQAh+QQBBQDFACwAAAAAIAAgAIcAAAA4cKgqfr4ucrgyfrI0drIyeLY6dLA0eLI0eLRilMAydK5woMx6psxAgrpomsZ0osp+qMx8qM58qtB+qNB+qtCGrtBOir4weLYwdrSIrtIweLSIsNSKsNIwdrYydrQydrIwdrJUjsCKstaMstQydLYydLAwdLCUuNhYjr5YjsBYkMJakMJaksRcksJcksReksJclMSWuNiWutiYutiYutqYvNqavNhwoMqiwtykwt52pMykxN52pM6mxN52ps6qxuCCrNCGrtKOtNaWuNacvtqkwtyqxt6sxuCsyOCCrNKuyOCErtKuyuCwyuCwzOSyzOS4zuI0fLZkmMh8ps5EhLxuoMxyos5+qM6ArNJQir4wfLoyeLQydrZWjsKMtNacvNqgwN6oxuCUuNaevtq+1OgwdriQtti+1OY4fLbA1Og2frY+frYyeLgydro4fLg6fLg8frg+frhAgLhAgLo+fr5IhrxMiLxOiLxKiL5SjL6evtxMiL5OisBOiL7A1uhSjMDE2OjO3u680uRkmsjI2urQ4OxmmsgweLi2zuR6qNB0pM7c6PJ4ps54ptA0eLZIhLpSirxWjsA2erZGhLw6fLZKhrw2eLQ6erSevNg8fLY6fLTg6vJelsbY5vDo8Pbk7PTw9PpilsRglsRglMJ6ps5yosxIhLzQ4O72+Pzy9vpuoMpqnMpomshMhLhEgrpCgLZqmsZkmMRglsZklsRunsponMhMhrpilsZUjsJmmMQyerY0erZKhLpEhLpEgrhonMp0pMw0erRKhrpGhLoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gCLCRxIcE0bAwgTJlxDsKHDgVIMZFBI0QAGA1sePiRgsSJCERcmUQygcWAChRd+MEiYx4aNHhQxtCm562JCJSNGUELowqWpil2EPUxgM2GrnIcQ4nCJC2GCRjtEdplJcEAXA5McJLSTk8mjD0pcXjCQYAcPHo0SkhyY0NaEWY/I4hxx4QMKl3E+iDrLo5VCiBerTBjM6o2BUTlXsXF55oMWvhQoUk2YYMrgCVfkzMnJ4YLLCq/2nB0ikmIxNwo/eLmsqMoODocSzOpxYcjZGnEQFlChx4CHAwcp5lE0uMej0glN8Qhjp8AdCUCgPJGjMGuahA56TFjh0YAKLTj2/kAZP/6FwhYMGLDqlMuOAztxu5ciP15Hj+sGNhg4lL5/evzdjTJeEkHocRJCXejXByH+/dedUwzAcAkXFCVIWRx2ABKDCA8mpMEMEshyRwEfIFhUQpNUwUeHBszxx4svlgEEDgZcpZADuUxBCCFVdPhKGTDCCERHWPUxy45I9vFgArLoIYoEMjTxIgkKVYHkji/YQQoEB6YmhCBlRFLiB5Vogd8aGKSx4ywXwGGAC6GkUgQIJSJUCQJqCCJIIbrUiZAHAhSDkANaIWQHKKmkUsgDSGgwSRGeLJFCIHoKggUIfxWzxUQJVWJIop+4gsYnn5DiCSOM9GJHIpXKcEl+pLuwlVABUSSqigIFcEIqLD6gagEXmvhQKYcGEMQRQigkmkoEIFhCKiMLPIBqIJgmMIQgZJxUR0NtXJVEoplgGgupg4BwCSqoppBQSB4k8JAwXaSRgw4FINQBqTeUSAOqMvjpgRkltYHBB34CQWoDCLEwrZ/ullRMABIllASp6iLkgxOyfKDftg4PdJAHBqQhii5d/mlArB07dABCA5fgsk2BlhQQACH5BAEFANQALAAAAAAgACAAhwAAADhwqCp+vi5yuDR4sjR2sjJ+sjp0sDJ4tjR4tGCUwDB0sHakzIKs0D6AumqcxnikzIau0k6KvIKu0pC01oSs0DJ4tDB2tDB4tFaOvjJ2tjB2tjJ2tDJ2sjB2sjJ0tjJ0sFqQwpC22FqSxJK21F6SwJi41lyUxF6Uwpi62pi82py+3GqcyJ6+2G6eyqDA2nCeyG6gzKDA3HCgyqDC3nCgzKLC3nKgynSizKTE3nSkzHimzqbE3nqmyqjE3nqmznymzn6o0KjG3nyq0KjG4KrG4ICs0qrI4LDK4oyw0pC21pa42Ji62J6+3LjQ5LTM4oiy1LjQ5jR8tmKWxnSkzkSEvGicynimzIaw1FCKvliQwFqSwlySxJK21myeyp6+2m6gynKizrLM4oqw1Ja62LbQ5oqy1LzS5jB4tjB2uDZ+tjB4uD5+tjJ4uMba6jJ2ujB8ujZ6uDp8uDx+uD5+uD6AuD5+vkaEvEiEvEqIvEyIvEqGvlKMwEqIvlSMwEyIvlSOwlSOwFiQxFiQwmaayMja6miayNTi8HikzsLW6NTi7tbi7jZ4skaEuk6KvlaOwDZ6tkqGulCMvjp8tkJ+tlaMvoiw1ODq9DZ6tJa41jh6tjx8tDh8tjx+tmCWxGKYyIaw0mSYxmKYxubu9F6UxNzo8u70+GKUwk6IvrzS6NDg7tjk8Ory+Ojw9vT4+vz8/mqcykiEusDW6GKWxGaYxl6Uxvj6/GycyGCUxGCWxmSWxGKWwmSWwkKCuGSYxECAusrc6lCIvGaYxFiOwFCKvFSKvHqkzL7S5jJ6tjZ4tEiEuDh6tESEukKCukKAuDR6tECCumSayDR6tjR4tgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+AKkJHEhQTRsECBMmVEOwocOBUhBcUEgRARoEcB4+NGCxIsIsf+JQDKBxYAKFf2rASohHhIgYFNGsKYnsYsIdEyZUQTjCpYuKGjA9TGAz4aecUxCycEkKYQIcNURqmElwgAYEkBwkrJJzSAILP1z+QZBgxooVOhKSHGiUyghpZHFO6GPBjMs5FlCcXRFKIcSLVagIJiTyRE5DbFxCsZBl7w6KVBMmICWYipc5bHIa0eNyR68UZ7FAqkjtjUILfCrXaObCyJQEJ2rksXRWxByEBADxQbDhwEGKeCrHkCZSoYsVKqoQiMSAxhEiWhPGcVAcwa8YVAB5RPBIwq0UR8L+hw+hEJAVK58EZbnT7A7c7QzEh29yo7gFBFPO6z/PaTtCUuHlEAQfJyGkAQYI7FHLfudV51ECLoSACVAIJiRHFY4MkoV/CTWgxA6zRELAfQgcSJEFmwCxBCMcOhDFizDa8NNVCRHwwBOuvPIKBBz2AuOPNnSEABsvtKLjkV+QWFECUxDjCQQiEPEiFgpBcKSOiyTBCwwFntaAG04Ec58FkziiCUJqoHGHLa+M0kIxC2jRiilMdKDQJAQ44YYbiZzCgUIbCEANQrMIA8J9jZRiiimJ+MJDBcmkoIoQGaSypxvG2JmQQHBMlNAkwCx6SSROXHJJCaocckgsjSBxaRetJ2GADFuSPbEoKwoQsIqplMigagNkvnCpHwgRxBFCFCxqSg8c4GHqISDQouoxdiYwhhspnGRHQ2tc5cOiJiyAAC2mPtEBJIWomkFCeiSgQQIPYaKBJl+8QABCEZhqwn1dqEqCkhqkUdIaaFjwJ0I8mMojAlqoesbBZJUkUAASJZTwJesiJEMRnliA4LYSD7QGbwjI4UkoXSK0AQKzhuzQAQihwcEHGmhgk6AlBQQAIfkEAQUAzgAsAAAAACAAIACHAAAAOHCoKn6+LnK4NHiyNHayMn6yOnSwMni2NHi0XpLAMHSwbp7IdqLKeqjQQIK6ZJrIbp7KeKbQfKjOgqzQToq+hK7UMHi4Mna0hq7SiLDSMni0MHi0iLDUirLUMna2MHa2MHa0MnayMHayMnawWJDAkLTWMnS2MnSwWpLCkrbUXJLCkrbWXJLElLbWlLjWlLjYlLramrrWmrzaaJrEnLzYaJzInLzaaJzKnL7capzIoMDcapzKbJzIbJ7KcqLMoMLeosDcdKLKosLcdKLMosLepMLcsMrggKrOgqzSjLLUkLbYmrrarsrgsMzigKrSgKzQsMrisszissriNnq2ZJjIbJ7MeKbORIS8cKDMfqjOVIy+VpDCWpLElrraaJrIrsjgjrTUmLzarsrivtTouNDkwtboMHy6MHi2Mna6MHa4Nn62Mni4Ony4On64PH64Pn64QIC4Pn66PoC6Pn6+TIi8SIa+Vo6+zNzsSoi+TorATIi+TIrAUIzAUozAVo7AVI7CWJLEVo7Cts7kcKLMuNDmyNrs0ODs2ObwtM7kvNLm1OLw3uryeKTMqMbgdqTMNHq0eKLKRoS6Uoy+XJDAOHq2SIa8PHy2Nnq4Toq8Nni0mLrYOny0OHy2Ony25u72YJbEUoq6PH62QH62YpbCYJTCXpTCdKTO4uz07PL49Pj6cKDKbqDKxNjo0ODu4Or08Pb6ZprISIS6QoK6aJrGRoS8Soa8YpjGYJbGXJTGXJTESoa4YpbEXpTEToa6QoC4ZJbCYpTCXpTGZJjEYJTERIK6Mnq2NHy2NHq2cqLKRoK4RoS4eqTMNHi2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP4AnQkcSHANGwQIEyZcQ7Chw4HHEIRQSBHBBQRnHj40YLEiwgp5qFAMoHFgAoV5bEBIWKtDBx4UL1woaexiwh8OHGBByMWljYofID1MYDNhr5wtEMZymQJhgiw+RH6YSXDABwRU5CTEkvPUSSIu8yDA0CNGjCwJSQ5MmMsKF6c4HdjBYMFlGwQrzMbApRDixQdWAgsTySVnlTcuk2CoA8Psj5gCEyLrEtgKBDdwcjqw5PLHLBNmn5yk6CwNxQqVcTywISHXZB52KJj18MapnwoIQBw4SLEWj8A4sFK0EWNJMQKWfswoAqR2wqwiEcLBYaWPRwS3bSwpwp3724RcIP5AwMVFD5Y5WJBdR/CjO3cvEaJvQCBMvH3xndYjSME9x5UKoyHwAQcI2JHLfeJhoh8BNpSgCVAEJtQGFnpwgZt+CEzgwSOgyEIABggNSBEGnDDzwoPrweHEiitGkYMOAiqUAA1HpKKKKkLo90AULLKYQ0cIvHEDKjcWOQOIHiUASgUrEOHBDismoVADRd54iAakMBCgQhOQ4YQv82FQSR2VILTGBZLAogojMoSywB2ofPKCCAp1QoAUZJBRSClIIgSCAM4gxAswBYAoySKffKIIKTsgQQALhgSxRSJ5ktEAnQkJdMZECV3SSqKI7CIFIoisYAgeeEgiiSOVKnESB6TGrJVQAk0kiooCBLhC6igzoIrEBm/MUKkfCBHEEUJKJPpJJBhYQioeJPCCahl0JpABGSycREdDF1w1RKIuLIDAMKQegQEVZqC6RUJ1JPBBAg9B8kElM9RAAEIUkKoCiGGgqkSfU5UkEwZ97kBqAzxN2ye8JTkTgEQJBUHqugjNYASfBG7b8EAXgYBAJaaAsmVuCMS6sUMHIIQGBid8MBVCgJYUEAAh+QQBBQDFACwAAAAAIAAgAIcAAAA4cKgqfr4ucrg0eLI0drIyfrI6dLA6erIyeLY0eLRcksIwdLA0drByoMiAqtJAgLpkmshyosyErNCArNBQir6IsNIyeLQydrIweLSIsNSIstSKsNIydrowdrYydrQwdrQwdrIydrBUjsKKstSMstQydLaMtNaOtNRYkMKUuNZYkMRakMBYksRaksJcksCUuNiWuNaWuNiWutqYuNaYutiYvNqavNpmmsaavNxsnMacvNhsnsqmxOBunspuoMpwoMpwoMx0osh6ps6oxN58qM6oxuB8qNCqxt5+qM60zOKIrtKQtNSevtqsyOC2zuQ0fLZelsZyospGhLyErtRSjL5WkMKOtNZqnMhqnsqcvNp4psx6qM6qxuCQtNagwNquyuC60uYweLYydraSttjC2OoyeLgwfLowdrg6fLg8frhAgLg+gLo+fr5KhrxOiLxKiL5UjL6iwt5MiL5QjMBOiL5SjMBSjsBUjsDE2OrQ4O5kmMZimMhqnMqwyuJkmMiwzOJ6psx4ps4weLjA1OjO3uzS4O7e6PI0eLZyoMpGgrhSirxWjsI2erZIhrw2frZ0oMg4erQ4erY8frY6erY6fLbk7PRclMSErtJSirpimMZAfrbY5vDs8vhglsZelMK+1ObI2urY5PDo8Pbk7vba5vL0+Pz4+vxeksJ4pMzA1Obc6PJ0osr2+vxmmshsnshGhLpIhLhglMJelMZIhLpglMRMhrpCgrpilsJilsRmmMS80uTW4u4yerY2eLRGgrqGrtJEgrg0erZEhLo0erQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gCLCRxI8JGZBAgTJnxEsKHDgVASgFBIMYGYBGcePjRgsSJCOI4aUQygcaAChVMiREk45cGDCBTFmCnZ62JCHhIkQEBox+WeimOIPVRgM2GKnCkQanJpBaECHq5EjplJcMCYBMLUJLyVkweiBD9cOkpwAceJEzwSkhyIENGKCHQSZsk55cIRl2kSpDh74pJCiBchRBjcQuSInJfUuBxywQ1fHxSpKhwxWGUaNTkltHzAY42Gs0NEUizWgSKcynwg8JGwApGVCFOKnKWSN4GCCnUSeDhwkOIt1IhEJ4xwYsMtAo58kMlhQ2tCNZ/WYLiQQA2fCHM8JqjgZg+JHODB/o9QqOTUKUuEdmypslN7Ah7hwXvBIvrChUPm85uH5V4v+BkS1HESQmNkcAEHvJii3ylr9KfAHngIl1CBZDHQwCJC0LDLF9T1twUwQCwACwEdUqgQBggIgQIB/alhxIsv9gADDglclZACOCBBSiedSNAfBD3ACCMMHVVXQyk8JqlChxUpsMAbCwBBxQ0vHqGQBEnyGMoEsugwIEVDPGGELR1K4oZoj4gxxSidcBLDIgzEwckhTGCgUCQKdPHEE4B8wqRuAhSD0Ce4FECdIoUccsgTstxQBAElEHJDFU7s+YQDLCYk0BkTJUQJKIoaEgsSeujBAiFllKGIInJYasFJpRn0wtaNRCi6ygIEhFLqJjKkylgaMFhaAUIEcYSQBYoewgoGsJSaBwa1pOqHnQpQ8MQVJ7XRkBlXNaEoEwwkkEupRGDQSBipVpHQmR4o8BAxY0iiggyZJlFqCdRZkKoFTHqARklmXMTkDaU6gFAcqYLBpLslFROARAlpUaq6CMnQxAIXZJCAtg0PdJAHCUiywCdfIgSyrB07dABCYnxgwss2BVpSQAAh+QQBBQDMACwAAAAAIAAgAIcAAAA4cKgqfr4ucrg0eLI0drIyfrI6dLA2eLIyeLY0eLReksIwdLA0drB4ps5EgrhsnsiErtR+qtCIsNJSir4weLYwdrSGrtCMstQweLQydrYwdrYydrQydrIwdrIydrBYkMIydLYydLCOtNaQttZckMCStNRcksSSuNheksCUttRclMSYutiYutqavNqcvNpynsaewNx0osygwNygwN6iwNx2osqoxN50pMx0pM54psysxt6ErtKsyOKwyuCIsNSSttaWuNikwtyoxuC60OS2zuKKstK60uY0fLZkmMZ6ps5IhrxqnMqAqtJYkMBakMJcksKUttZunspyos6iwtyyzOKWutimwt640Oa40OSKstS+1OaMstIwfLoyeLQwdrgyeLjI2uwydro8frhAgLhCgLg+gLpAgLpCgro+fr5QirxKiL5OiL5Oir5Qir5OisBSjsJQisBYkMRYksSkxN5UjsJomshwoMrK3OxqnMhonMpyoszW5PAweLh8qNCwyuKCrNLG2OrQ4O7c6PKErNI0eLZGgrhSjMBakMA6fLZKhrw6fLg2erbk7PRakL44erLG2uo4erTI2upglsZmmshonMg+frY8fLhSjL5kmMhAfrbU4u5glMSCrNCCqtDU4vDW4u5elMTq8PZunsh0oMZyoMhGgrpimMZomsZglsRglMLA1ujQ4Ozg7PTw9vpGhLxklsRIhLjg6vLu9PjC1uj4+vxwnshynshkmMRKhLrs8vj+/v5elMZmmMRQiLpEgrrO3uxWjsAyerY2frY2eLREhLw8fLZEhLo0erQ0erY4erY4fLYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gCZCRxIcBiYBAgTJhxGsKHDgUgSWFBIMUGFBF0ePjRgsSLCJa8YUQygcaAChcVWzEmIxoGDSRQrgCkpjGImJkzMIIzjEiZFDcgenqRYBycchCdcHk2gIEkSkRpmEhyAMNGToWdwUiqUQI/LVwk4JIkQIUlCkgMRKgi0awcxhDeZoOGQw+WiBMHIRgChEOLFJLsCSyKT4A1OOYlc5kiwRC8TilITIigSeFcrNWNwMinm0g6ZJmRliKTITIzCDyoqu+p1gkmdQnAmvcJBVsLdBATYrEmw4cBBhQxI1QosqsDQhJMiACrT4YEdDChQjFE4ZgGZDhw6OBK1iwUHj22W/qSKEL38UoQ+XLkaRISFjRK2jlesVD76D0qjM3Dgo76/q1mGeJRQHdGNIMUax2mg3wWCzOKfK4QJyNQkh4ymkIJhdVCALzCoUMQL30mYgAxNQACCKQSEqMFFCnHwSCkYICDiGDTUWGMMI5ilgUIEwHLFII00IoWIZMRgo40jdJTAGFFsEuSTJEioAAiKgACBBCjU6IBCdzwZJC2dLGCHfAnJ0MMMuXhR1RqjDVOBKa00IogJajCAiSB8YBBiVQTU0EMPQ5SwJ28CMIPQApwU8N0DYfDBxx8LsOAAAT8cYQUFdPzZgxQE9MVMFxMllAgWjuIRixBhhAHCEaw+8IsLrJoCclIGwqSVkAI1OPoJIgWskqomJLBqgxeJYKBpGwgRxBFCPDjKRykcmJLqFh2EwuoNHTClRA8/nJRGQ2Ds2IKjGGTLSapCcMBIFaxSgFAhSzCigQIPIaMBIyQAUQBCSqQ6wXc8sArIhV+UBMZFewaR6pAJHMLqEHvSWxIzAUiUkMJhuIsQCSw8kUAGCXw78UAHbZCAMk8sQKbJtY7s0AEIVcCBBjSzWGhJAQEAIfkEAQUAxgAsAAAAACAAIACHAAAAOHCoKn6+LnK4Mn6yNHayMni2OnSwNniyMnq2XJDAMHSwNHawcqDIfKrQQIC6ZprGdKLMfqrQfqjOhq7QToi8MHi2MHa0hrDShrDUiLDSMHi0Vo6+iLDUirLUMHa2Mna0MnayMHayMnawirLWjLLUMnS2MnSwkLTWVpDAkLbWWJDAkrbWWJDCWpC+WpDAWpDCWJLElLbWWpLClLjWlLjYmLrYmLramLzamrzaaprGoL7abJ7Kbp7Gbp7Ibp7KcJ7GcKDKosLefKjOpMTepsTcsMrifKjQgqzQhq7SjLLWnLzaoMDcqsbgsszkgqzShKzQsMzits7kjrLSkLTUNnq2YJbGcKDMQoK8ZJrIdqTOgKzShK7UTIrAMHy6Mni0WI7AMna2bJ7IeqjQqsbenL7csMrgwNbovNLkNn62MHa4wtboMni4Mna6Ony4PHy4PH64Pn64QIC4PoC6SIa8Pn6+nsDcwNToTIi+UIzAVI7CUozAzt7sZJjGZJjIaJrIttDmytrqzt7uuNDmMHi4eKbQ1uTw3OjyNHi0cqDKRIK6UIi6WI6+OHy2RoS8TorAPn62OHy4Soa8NHi2Nni0Onq0yNzs4uz0zNzsOny22uby6PD2YpbEYpjGYpjI5u727vT4WpLEgKrQToq8XpLCXJLCXJLAdKTOyNrq2ubw9vj8bJzIRoK4ZpjEXJLEapzIToi6SIS6XpTERIK4XpTGXJTEQoK6QIK6ZJbEeqbOVo7AdqTMUIy+UIq+Toq+Uoq8NHy2NHq0NHq2RoS6QoK4OHq2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP4AjQkcSDANGwMIEyZMQ7Chw4HADFxQSNGABQNeHj4kYLEiQkdYqlAMoHEgIoVYYuhJiOXKlVAULbApmeBiQitZssxBiMclTIphgj1EZDNhnpx5ELZw+QghIiuyRIaZSXBAGANuVnxBGCenJ4SdXGIxAMKKAwdWEpIciLDKGVVFKCHEmQULCB4u3RjIc9bByoQQL3JSRXgNJANdcurJ5JKHATp9+1CkmpCSGcKqNFVwk7OuSytxxpzlIZKisTYKR1DBvAlXiyx5JuUJpejHWS16DSDCQ8fAhwMHFS4AAorwpQInFYZyMOZBCEUQuJAgkRshnFJxQIAI4eKSKhogPP52cSTLwfTzSRM22bTJkBQZDRT4SO6xz/npT6yU3gCCD/v/7CniUUJ7TJfBK70lFAZ/SATyCYCbyDFgW67wQp+CG5AVAgOLAIGCETaEN6EBPxzxRwqKFCBiGEUhBEIlPWCAwIhw4GCjjTd0kNZVCSHCyQ6GHHKIYxPGccONN3bQkQFvoICJkFCWMGIKkqQAwRhK2BiBQjxAKSQaE5DSylYVBUFEDnSQ2QgdpaVhgSKaHBLIFIuE8IslgmggIkKNIJIDEUQIscKevglgDEIKkMJAeIqcIYggTSigQgSIPOGEChWUASgROhAqkBcTJdSIEY+uwQoTZ5zBgROsKqJIDaybTnDSBgmw1eMSj2KyQgGDpAqJB6wm8oUbGGyKB0IEcYSQKI8K0gMIjZ4BSAgwsCpECAZUoQURT0xiQB0NsXFVDY9SgC0pqS4BQhVNsDoKQpOw+QEiDwUTRhUllFAAQrukSgFCErAqgUIfqFESGxftqUKqOiCUh7V70luSMQFIlBALqVaQkAcsrGBAhuBOPNBBHxjQyAozkJlQybWK7NABCFkAggk022RoSQEBACH5BAEFANEALAAAAAAgACAAhwAAADhwqCp+vi5yuDJ+sjR2tDJ4tjp0sDZ4sjJ6tlqSwjh6sjB0sDR2sHimzIKs0kKAuGicynqmzIKu0k6IvISs0ISu0jB4tjB2tIqw0jB4tFSOwDB2tjJ2tDJ2sjB2sjJ2sIqy1Iyw0jJ0tjJ0sIyy0oyy1Iy01o601FiOvI601liOwJC01FiQwJC22FiQwpK21lqQwFqQwpi62pq82py+3GqcxqLA3G6cxm6eynCeyHKgynCizKjG4HKiynKizHSkzH6q0KrG4IKs0KrI4KzG3rjQ5Iau0oqw1Ja62Jq61qjE3K7K4rjQ5oiw0jZ6tmSYxnSkzkKCvH6qzk6KwDB8ujJ4tFSOwjJ2tlaOwpK42GqcyKTC3G6eyICq0qzI3pi82qTC3rDM4rrQ5jJ4uDB2uDp8uMTY6jJ2ujx+uD5+uECAuD6AukCAuj5+vkiGvEqGvEyGvEqIvlSMwEyIvlKOwqjE3sba6miayMzc7LbO5NTi8DB4uHakznyo0HimzsDW6NLi7trm8H6o0ODq9MTY6DR4tESCuk6IvlaOvliOvqLC3Dh6tkaEvFKMwD5+tjx8uDR4tjR6tjZ4tDZ6tDh6tFyUxGaayGSYyDh8tjp8tlKMvuLs9O70+FySxICq0FySwlqSxHqmzmycxm6exmCWxmSayGCUwF6SwrzS5s7e7sLW6N7o8tzo8uzy+Oju9vT4/Pz8/kiEuvb6/GSWxGKUwESAuESEvF6UxmKYxk6IutLg7kKCuM7e7GCUxGaYxuTs9Hyoztrm8lCIulaOwE6KvlCKvDR8tjh8uEaCuFSMvjR6tEKCumCWxESEukSCuDZ+tgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+AKMJHEgQGhkDCBMmhEawocOBxwxgUEjRwAUDVR4+JGARYYcOCm9JeUIxgMaBhhJ22JEnlRWEbCJEuELxApmTCS4iZAAsVixUCN/IpEkRC6WHhnR6/OJzCcIrMukgNGRJAUksNwkOwGKA0YqXBmr57DTJgCWZUgx0UBAliqWEJgcifDKm042yIDj51GHlkkxkBqi0jVJHIcSLvjopTqWmgxKfRhjJxGSg0eBSFLMmnFREcadAFIb5nGVLpqU0PNpGIEkxGhqFHkp4JnTqDiw7BeRcaYOnbQ4zU+G8McDhwEHYOF4pFtSgEsiEL6L8aAyhVJAJD4AnTNOisQEPKVr+dWLxnOKbQwr6TFi/nopCLoQIqWLCQoeiLSkrIizFfr0oS6xp0MEd8RVICCuH6JcQFesFAcVwCWEhYBCrsGIgIWsoOJUCFLCmkIQIedCALjiIIAQM5Sm4BRBQbHCIIc9hoZRHC+BQAQIaGmCGCzzyqIIXb3GVkCG+0KDKHntskaMaKvTYoxcd6RjCGUhW6UQBGm4giyNQ/GABjzkotEWVSOohgQJQqFiDFm+A9cQbrEFzATOB7HFGBhR4YAwgdzyQIiOGaFFDDTRskCIHAkSDkAKgNADSIU3ccQcXK4TggyFB9BACBUkMWsMvWCYkUBUTJcSIEJKmkswMTTSxQQ+vRBDBCzMnePoHSRokIFdCBSQh6RmJFCBGq49YEGuYZjzgKRwIEcQRQn5IeocNHUDaBBMevBArDVg+8UMNQURigBsNkcEVCpJWAJICrc7QwRNhxEoBQpE08gQHhjxECRZPHJFBqD+0+glCosTqgEIclHESGReVF0KrvyCEyLbl5XtSNAFIlJAJrc6LkAUmbGCABuNeTNBBHHSVxQtgJZSyriY7dABCFxQwws06JXpSQAAh+QQBBQDIACwAAAAAIAAgAIcAAAA4cKgqfr4ucrg0eLI0drQyfrI6dLA2eLIyeLYyerZakMAwdLA0drBwnsh+qtBAgrpmmsZ6qNCGsNSGrtKIsNRQir4weLYwdrSIrtAweLSKsNKIrtIydrYwdrYydrQydrIwdrIydrBWjr6OtNYydLYydLBWjsCSttZYjr5YjsBWkMJYkMBYkMJYkMRYksSSuNiUuNiUutqWuNagwN5snsxunshuoMqiwtyiwt6kwtyqxuB+qM5+qs6uyuKwzOKMstaQttacvtqiwNqmxN60zOK60ua0zuS+1OYyeLhimMh4ps6ErNBEhLxomshSjMCMstRUjsKcvNpunsqmxNx8qNCOstSevtqoxOCwzOS80ua2zuS+1OgwfLoyeLQwdrg4fLgydro+frhAgLhCgLg+gLrA1ug+fr5KhrxMhrxKhr6evtxKiL5MiL5OisBUjsDK3OxSjsJkmshqnsqCrNCErtLM3OxsnsrS4u4weLh6ps660OZ8ps56qM54ptB2pMzY5vDG2urW5PDa5vB0osxyosymwtzm7vY0eLREgrpWjLyWuNg4erZIhrxUjMA8frjK3Oo2eLQ2erZelMKKsNRkmsY4erRSir46fLY6erQ+fLZaksR0pM5cksJeksA+frbg6vLs8vj0+PrC1ujU5PDc6PLu9PjG2OpmmshsnMRGhLxqnMhGgrpilsRelMRglMBeksJqmsZomsZglsZGhLpMhrpCgrpCgrjU4u5UjL5QjMB2ps5kmMRSjL5OiLpCgrw2frY6fLjc5vA0erY0fLY0erRqnMpsnMYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gCRCRxIEFiSBAgTJgRGsKHDgcQSYFBIMcGFBF0ePjRgEeGHDwqbQJBEMYDGgYgSfnAQaIsXhGXkyFlB8UKSkwouImRQSpSoTggbyYxSsUOxh4h0eiTiEwfCJzLZJFyxYliCDjcJDuiQgNGJhK98HoqUYJNMCAhX1KhBE6HJgQgRHTkkhECCBj1F2fCiRCaYBGzW1nCjEOLFSYcSb/n0YYbPIoxkKklgS/ALilkTIiCS+BCcNL58mkok08WjOWuVkKSILIxCEBk6D/I0KpSOAmyijFGy1snfBIgaNUng4cDB16lAJcZDgBHIhE/WivkAYRMnCRJ+I3zEYnqCDyNw/h2C8pyiqkQrbmBfr0bhFUCAAu3YYCOFk5QVEW5aj71Qi9UafGAGfATCl0h+CbWB3RKuDJdQBwHyYYQgBQIiBoJxnYAGfgpB6FEDtcTCAREkYJhQBDfMYoEtHHaglEeZxPKAXRgGU8GNN04gQQtXKYTIJIsEYocdEZgoxgQ44ihBRwlgMgESQ0ZZh4lPqGKBKzc8cKMTCjkR5ZA+/DFCKwg6IQMQtCQERhO/AXMBBHDYoQUFtYBggRFcPFBeAmAgAoQMMsDwxJ4eCIAMQiosAAJIZGTBBRdrnDDBDYhIQEMdaJAAqAyt7ClQFxMlxAgOjx7BCgo//HAJDTnkQAYEpxNsSkhKGigAV0JeoPCoFiMQsEOqmjzQ6ipdSbApGggRxBFCSzzKhSwfkJEqFgSc0GoMdiEyhQxLIHRGQ0lwRcmjeibQQqoofICIEK0ii1ATknSAyEPFdCAJHUzQeEOqeiD0R6t/dPjFSUlcVN4EqfKCUBvXljfvScgEIFFCCP+QRkIPTPBEAhok8C3EAx3kAZ9vfEXRyLaC7NABCF1QQAcw62ToSQEBACH5BAEFAM8ALAAAAAAgACAAhwAAADhwqCp+vi5yuDR4sjR2sjJ+sjp0sDJ4tjR4tFyQwDJ0rnKizICqzkCAumSayHakzICq0oCq0ICs0E6Kvoas0DB4tjB2tIaw1Iiw0jB4tIqw1DJ2tjB2tjJ2tDJ2sjB2slSMwIqy1Iqy1oyy1DJ0tjJ0sDB0sFaOvoyy1oy01o6y1FaOwpi82liOwFaQwlqQwlqSwpq83GiaxJ6+2mqcxqLA2mqcyGqcymyeyGyeym6eym6gynCgyHCgynCizKjE3HKiynqmzn6qzqjE3qjG4KrG4ISszoau0pi62Jq82qDA3KLC3LLM4rLK4rTM4oSs0ISu0jR8tmaYxnSizH6q0kSEvHSkzoKs0lCKwISu1FSOwlaOwJC01mqaxqDA2micyK7K4KDA3qLC3rLM5LTO5LbO5DB8ujJ4tDB2uLrQ5Dp8tjZ+tjx+tj5+tjJ4uDJ2ujh8uDp8uDx+uD5+uD6AuECAuD5+vsLY6kqGvEqIvlCMwEyIvlKMwMTY6M7e7mSYyGiayGicynSkzMDU6Mzc7NDg7n6q0DB4uHakztLi7qzI4N7o8sDW6JS42DR4tkaCuFSMvFSOwDZ6tkiEvFSMvjx8tk6IvDh6tJy+3Dh6tsze7JK01Dp6tt7q8uzy+F6UxGKYyGiYxtjk8Orw9u70+FqSxL7U6Mzc6tbk8Obu9vj6/FySwl6SwHqmzHikzGqaxGaWwmCUwl6SwkqGukaGvGCWxmSYxEKCukiGvGCWxEKCuMja6kyGumSYxmaYxFCKvk6KvNTi7kiEtkSCuFCMvlKKvjJ6trrS5jZ4skSCujh8tkSEujR6tjR6tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+AJ8JHEiQzRsECBMmZEOwocOBUhBcUEgRgQUEZx4+NGARoQcPCQn0qLGGYgCNAxMk9JCjUROVCGStWvWEooU3KI9dRPgh1adPMBBWmNmkIgdnDxPs9GjjJw0EHoDMXJGwz55mCDjgJDiAA4I1IRK2+ukp2YdCM2sgzPLgQZ+EJwciTBCGURKVJnx+qrGg1ExICHK1faBHIcSLrBgpbuLGA6efYYbN/ETAwWAWFLcmTGZDMSM/eXr9VBVrJq81g009qvgMjsIPFTwrUoBM1ZJkJJqIMtXWVpy5VnAh6HDg4OsZoxQXIoAJJFQPFNrOQeDghQ4GDH4nXMOiDUgPkQr+McpQEaEVB3twYF9fS6ESQ4YIMclQA8UUmOVfrMeOY8skhBp4oAZ8BBryh3DlIZQHdjzEgCBCHAT4yhN/FGgIHQki9EgWueCXUIQeEdDLDFAssUGGCdlygykUOIAfB0t5hMkUQhCA4hoR5KjjFZh5lVACrHRxCh54+ILiHDomeUVHCMgRhRlERikBihRYQYEpYCSS4wMKPRAlkUQE4QIoCT6gAgZWJDQJLv8hwIYFDhBZRgO0fHAJGWYI4RxCcSSAgQoqjJDFnsMJ8AxCXLhQAEgOGGGGGS2EMMENCVzRggR5/AkoKIQKdMZE22Xy6CLEkFBEERS0IIMMdjgQAaCoKuywmgbHyPUjCY+WYQwBY5zahhCrTvFVIrC2hwBBHCFExaNmTOGBA6eKQcAWq6qgUgJgqMAAQnc09IZXSDyqJwIsnCqCB5M4smoeCbHJQQIPOcPBJBI0YCMCN5wKAUIMrOqDQhykgdIbF+0Zwam6IKTHqinsCS9KzwQgUUJYnMouQkJEsAcCGiDQLcQDHdQBAnHsERZFI9cKskMHIGSBBxzEvJOhKAUEACH5BAEFANIALAAAAAAgACAAhwAAADhwqCp+vi5yuDJ+sjR2sjJ4tjp0sDR4sjJ6tmCUwjJ0rjR2sHimzkCAumqcyoKs0nqmzoau0k6KvoSu1Iyy0jB4tjJ4sjB4tDJ2tjJ2tDB2tDJ2sjB2sjJ2sFSMvpC21jJ0tjJ0sFiQwJC22FiQwpK42FqQwFqQwlySwJS21lySwlySxF6Swl6Uwpq82py82G6eyJy82p6+2m6eyqDA3nCgyqLA3HCgzHKiyqjG3nSiynSizHakzHamzoCqzqrE3ICq0KrG3oKszqzG3oKs0KzI4KzI4q7I4Iiuzoyy1pi62KTC3qjG4LTM5LDK4Iiw0rjO4oqw0pC01DZ6tmaYxnim0ESEvISu0nyozoau1FKMvoqy1DB8ujJ4tDB2uDB2tlSOwFaQwpa62Gyeym6gyqTC3H6q0K7K4oaw1Ji62qjE3rbO5LjQ5LjQ5jJ4uDh8uDJ2urrQ5j6AuECAuD5+vkqIvLrS5r7S5kyIvlCMwMba6k6IvlSOwlKMwGicysja7Mrc7Nbk8DB4uHyo0MTY6tDg7t7o8n6q0q7I4jR4tEKCulKKvFaOvjh6tkiGvDZ+tj5+uEyGvDR4tjZ4tOTs9Dx8tjh6tMbY6Dh8tjp8tmCWxpS42GSayKLC3mSYyNLg7tbi7mKWxGCWxFCKvFCKul6UxHyq0ESCuOju9nqozkSEukaCuMTY6M7e7N7q8vD2+kqIvmSWxGiayGSWwl6UxkiEuOjw9vT2+v7+/kyGukqEuvz+/kaEvEqGumKYxmKWxmSYxGaYxGiYxEKAuPb4/ECCumqcyH6ozsDU5liOvlCKvjR8tjR6tDZ6tGaaxkaGvDR6tgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+AKUJHEgQ0hsDCBMmhESwocOBzAxsUEjRgAUDXR4+JGCxooECMapoohhA40BFCTUck2MkYQtYsJ5UfGMywUWEHAxVqjQC4RCYRFJqQNjsoaKbCDXA2PnCwAUzMKUgRPBEhyOENAkOyGDA0ZaEKXYKosQBE8wqBjwAyZVLJsKSAxFS0SFIBcoCrnYOW5AKJisOSdjmAqEQ4kUUghILseSlwk4dtmBW8jBMcBQECrMmpCQjsSA8u3TtfCULZjJGuNiCukpRWhyFHH54DnSCzaEXl6AgkSWI7S1UCL1cWWTgy4GDCjUIM5S4UAHWBjRwuJGrmDINc/x0evCAikJNYSz+XXDKaI8gCR4R7FAwYRP391cUjgEEqM2MIsI+iELp0Yue99x1ood3BmCggRP0JQjIHsR5hNAj3P0hRoMIZWAgD2jsoSAgcziI0CQT9EKgQhYmVYAuVQTxAnoeIsRCJyXk4QB/BmSAVHCOyNIDjR7B0cCPQJKhR40KUVGCEmzccccvLVoC5JNkdGQAHGegoeSVWXgI4iJ2lPAJDj9uotAmVyp5gw0frODgJhScQSEVixAIiQUOuHGHEVn4woEkTRzRw1AJUaEIIhRQAMEEFH0hgDQIfdBIAQjR4ckRR4CwRRZVKEIDCQ30EkShFKAAKEICdTFRQo6MQSkTqEhQQw2sE5Bgggl0zGEFqLOghEECcSXkhQSUHkGKBi+8agkPs4oypQ2gxmcAQRwhZEOwomjgwKtqaODHrFoMpcgnFERpQB0NvcFVEJT2MF4Yr0qgARVKzPpIQotMkoEiDzWTARUNRMDfLK/mgBAZs4pb4RcmvXHRqIS86sKDs6ahEL4mSROARAk1XMO8CPEQAaIYjFsxQQd9YQAVevhRkcm8juzQAQhZoEEGNN+0qEkBAQAh+QQBBQDIACwAAAAAIAAgAIcAAAA4cKgqfr4ucrg0eLI0drAyfrI6dLA2eLIyeLY0eLRelMIydK5yoMp8ps4+gLpkmshyosp+qMx8qMx8qtB+qM5+qtCCqtBOiL6GrtIweLYwdrSIrtAweLRSjMCIstSKstQydrYydrQydrIwdrIydrCKstaMstQydLYydLBYjr6UuNhakL5YksRaksJaksRcksBcksKWuNiYutiYvNqcvNpomsakwtxqnMpsnMhunspuoMxwoMp2pMykwt52pM6kxN54pMymxN54ps6oxuCqxt6AqtCEqs6QttagvtqoxN6syOCArNCErtKuyuCuyuKwzOKwzOSyzOI2erZkmMhwoMx6qNBEhLx0osxQir5WjsCOtNZWkMJYkMKavNxmmsiQttiiwt6oxOCyzOS0zOK+1OgwfLoyeLQwdrgwdra+0ubA1ugyeLiUuNY4fLgydro8frg+frg+gLg+fr5GhrxKhrxKhr5SjL6+1OZMiL5MisDA1OZSjsLE2OhQisBUjsLO3u5onMq60ubI2urQ4O640OR0pMwweLjc6PJ4ptA0eLZCgLhQiLpWjL5YkMA4erZIhLo2frY6fLhIhrxOisCQtNaevto2eLQ4erQ8frbM3Oo6fLacvtzg6vLO3uw8fLZglsTW5PDo8Pbs8vhilsJclMRilMJOir5yosxEgrpIgrjG2Or2+Pz0+PpglsZelMRGhLpIhLxmlsJklsJKhLhimMZelMZkmMRglMRAgLhUjMBimMhSirxmmMQyerY0fLY0erREgrhCgro4fLY0erZEhLpAgLpAgroAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gCRCRxIMBKbBAgTJoxEsKHDgb8SbFBIMYGGBGYePjRgsWICBTluSaIYQONABQlF2CAjJCEMUaKKUNTAxqSviwhHDEKESAtCCTBbIhQhIkEIYA8V4Bw6g+eKBCKSwMyAkECRG26M1iQ4IESCRx4SsuBJ6NKIPTBvJShxgxUrmQhLDkSowAcgJCgL7ETUi0EnmKlGHHHL6oRCiBe7AFosBM4ZDjxvqIKJaIQswlJQJtya8JKMxYAK1aHFMxQpmIIYjXKr6VFFZG8UjpAAuo8KJ6FkIMhAhJQnt51SJRT2IAGaAwcVipA1aHEZAphSjrDEapQKEXD8uIIAIWtCSR7g/hQVwasMoAseFTRYYKcU9/dXFCJZswbKjAq37oDS7DHLe+6u6KEIQh0ksAR9CK5RRi4eJXTFex48MCBCIRTYABFlJLgGHA0mlMcV/CVU4VAFQEKKAyug1yFCXNjyxyQP8BfCUgid8QgoEYRYkRtV9NjjDl9QYpRCCmiRwRNjjPHKipLs4KOPX3SUgCRDEJHklT10qEgei9DBRyk49NiCQqBcmWQNOdzRRYMvUPDDIglN8cAUCEWiwQNRjCFEEJCMUEcYQKBC0RQK/EABBVbUQREaAiCDkAe6EIDQA14AAQQIWfxABTE4fIDFFVYcSgEXRSUkkBkTJfQIEpZysogRrTTQkMcHJpggxwOoiAoBSh34MpdCTFjqQxYKrBBrJjrUuuQUOIgaXwIEcYQQDpYCsYAID8QKhgiU1GpBUYqAQkGUCczREBteWWFpA0V5EOu3U2RQKywJGaNICAo8BEwIU2DRg2a1xKoDQl/USi6FaJjEBo0J9BCrCwjR4S2RJgkUgEQJ/RDrJAnpYEgeCRRobsUDHYRGAlNgkEVFJ/tKskMHIKRBCDTPiFCjJgUEACH5BAEFAM0ALAAAAAAgACAAhwAAADhwqCp+vi5yuDR4sjR2sjJ+sjp0sDZ4sjJ4tjR4tGCUwjh6sjJ0rjR2sHikyoKs0ECAumicynymzIiw1E6KvoKu0pC22ISs0DB4tjB2tIiw0jB4tDJ2tjJ2tDJ2sjB2slSOwDJ0tjJ0sFiOvliQwpK01FqQwFiSwpS42FqSwlySwlySxF6Swl6Uwpq62F6UxJq82py82mycxpy+2m6eypy+3J6+2nCeyKDA3G6gyqLA3G6gzHCgynCgzHCizKLC3HKiyqTA2nKiznSiynSkzKTC3KTC3qbC3oCozKbE4KjG4IKq0KrG3oCs0qrG4KrI4KzI4LbO5Iqy1JK21pi62KC+2rTM4rjO5DR8tmiaxnSkzkiEvHqmzoiy1FCKvoSu0laOwFqOvpa62myeyp6+3HyozoCs0LDK4JC01JS21rbQ5o601jB8ujJ4tDB2uDB2tjZ+tpK42LjQ5jJ4uDx8uDJ2urzS6Dx+uD5+uECAuD5+uj6Auj5+vkyIvsba6lCMwFaQwlSOwlKMwFKOwGiayMja6tTi8DB4uHqozn6q0sbY6NTi7tjk8Him0K7I4DR4tnikzHakzEaCuFCKvFaOvjZ6tkqGvFKMvjp8tjx+tuDq9Dh6tDh6tjh8tjx8tmCWxoqw1GaayGSayLDK4uTs9F6UxmKUwnimztzm8O70+Ozy+PL2+sDW6M7e7ubu9vz8/mqcykaEvEiEuEiGvGKWxGKWwvj6/EqGukqIvmKYxmSWwk6IukyGvESCuGaYxE6IvEKCus7e7FSKvGaYxurw9kaEukSCujJ6tjZ4tESEvDR6tjR6tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj+AJsJHEgwDp0ECBMmjEOwocOBWRJoUEgxQYYEbR4+NGCxYgIFWmplohhA40AFCT0Qe7Qj4YlNm4xQzEDHJLKLCD20OnQoBMIJMFvm9JCgA7OHCnDmTMEzTQIPL2BCQEjASI5ORWsSHNAhgaUKCUnwNGTpAxaYtRJ8sKJKFZKEJQcihETjzxSUBXYeqjWiEUxfHpK0VUVBIcSLYf4ovqHJDQaeNybBPPRh1+AoKBNqTaiAiuI/pIzh4ulqAcwrlEq1XcSpYjM7Cj9E+nyHRBNXVBBAALLgT9tGvp46mPErwZsDBxV6qNVKsRQCrRNqeKHq1bAGYoSsgnXLmMJMgOr+EPVAScofMx4V4DhlIhWs9++JKJwyZ86TFF1qfXGRuaKHHfC9V4oMIyXAQQJH1KfgHGvo4VFCXbzHChq/EJBQBwfWkIMUC86Bx4MIIUDFAwwQpRCGOREwywKRsIEeiAgNgkIFsuDRXwdKJcRJCzX055ElEgQpJCh+FKWQAiFAoAQUULAAYyZCRglKRwlkUkQOTGYZBIiQcBGBLBWUAEqQgijEQpZMpqDFFyU8WMIWPESQkCV7WIJQHBnksQQUORBhzAdcxGBDDRRZooAPW2wxxCUUvSFAMwh9MYiFCeSRgg02gFFBD6AsI4oTNQSDaKIhmIiQQG1MNCcFmI4RQResF1xwiRMWWIAHHmQkugUMKHGAjFwKmYGpDb0oMEWsmcRSqwpeiaJrMKcOxBFChQy7ggd5xDqFB37U6ghRkKiwxZQJ9NEQHV0VgWkNRFUQKyoeWKJIrbIkFAEkHSjwEDMdWNJDD5nBEGshCOlSqy4nvmESHTkm4EOsbSYgi7dHmiRQABIl9EOs9SIUiw6MHmiuxQMd9IZXfoDVaAK/kuzQAQhl0MHMOCL0qEkBAQAh+QQBBQDMACwAAAAAIAAgAIcAAAA4cKgqfr4ucrgyfrI0drIyeLY6dLA0eLI0eLReksA4erIydLA0drBunsp2pMx8psxAgLpkmshwoMp6qM56qNB+qM6ErtJQirwweLgydrSGrtKIsNQyeLQweLSKsNQydrYwdrYwdrQydrIwdrJYkMCOtNQydLaQtNRYksSSuNhcksKUuNZcksSUuNiUutqWuNaavNpqmsacvNhonMqcvNpqnMievthqnMpsnMhsnsqevtqevtyewNygwNx0osqgwt6iwt50pM6kwt6uyuKAqs6ErtSMstSOtNaautiqxuCwyuKCrNKwzOKyzOKMsta+1OiOstI2erZkmMhsnsx4pMxEhLxwoMx+qs5OisAwfLoweLYydrowdrhWkMJaksSWuthonMh0pMyqxN6YutquyuC60ubA1Og6fLY2frYyeLg4fLg8fLg6frg8frg+frhAfrg+fr5Ihr5MiL7M3OxOiL5Oir5MisBUjMBUjsBSjsJYkMJakMK40ObI2urQ4O54ps5yoszY5vC0zuR+qtB4ptA0eLZGgrhYjrxaksKoxN44erZGhrxQisBKhr5uoMo0erY2eLSYutjc6PI4eLQ4fLY4erTm7vaoxuBglsRSirzU4u7k7vbq8PZilsJQir5clMRelMJglMD0+PpKiLzA1ujS4O7e6vLw9vrG2upyosp2ospGhLpKhrxIhLhomshmmshGhLxIhrpOiLpCgrpmmMZkmMZglsZclMZilMJCgrhilsRimMZelMZAgrpglMTk7PRSjMDe6PJGgrpWjL5UjL5IhrxSjL5EgroyerY0fLY0erQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI/gCZCRxIMI0aAwgTJkxDsKHDgcoMiFBI0UAGA1oePiRgsaKBBLUyoaEYQOPABAk12MJUI2EJQYJ2UMyQwWSyiwg1mKFDBw/CKjBnpNRgAMSyhwlw5jTB84gBDSxgFkFYwEeMRUVrEhwAwoCUOQmJ8SyVQIMTmJkMMJhx6ZKPhCUHIpQCBsoGlAx20snE4A9MWhogtL20QSHEi3mgKI6BpkMRnjEOwaTDwNNgJSgTak2Y4IhiKEpYueLpZwVMIrMmtT2DlSIzLgpHPPg8qNgQPyakWOCh4ExbU7SeFpDhyUCIAwcVaghlRjGRAq1zwrh0ShMDRDc4jUJlRSGaLGiI/naYtQQKII8JcogysWmUe/cTFF5o0iSIiQeZMKzIXFHDjvfuncIYQh0YwAN9CDZBBBweJfSAe52M4Ql/IHhggA0xEJFgE2w0iFAkKPywAFEKVZhTAYes8MMHVXiYUCNeZGGFGxRaSBElK+SAgItSSODjj7jIUZRCCQRDQQ9BBLGHi2v86CQuHRmwxgRkJGllfA0aEssbVmThxS0+6qHQF1YmiUQtdfjkkR5U0PBGQlK4IQVCaWTwBhBBkOEAKyOwosILNFAkhSE0UEEFDrFQFIIAzCCUxScFIPTGEy+8QMgcOrQgxS0VhEFLoYZm4RozWkwE5wWVIgGHEBxwIEsFo7C60YYEhlKRgiEGeJCMXAo9UKkLpBhgRKtoSACrF171UmsECBHEEUJTVPpCCQa80SoTGjgC6xUkekFFC7jG0VAGXU1QqQ1EzdGqEB8JAWt3CLkBCQgJPLQMCFLgkENmLbQqAUKgwApKiVo9RBNFOLSaB0JWbEukSQIFIFFCOrSKTEIS0CCkheJCPNBFIXglhyMVhbyrxw4dgBC5ILSME6MmBQQAIfkEAQUAywAsAAAAACAAIACHAAAAOHCoKn6+LnK4Mn6yNHayMni2OnSwOHiyNHi0YJTCMHSwNHiyNnawNHawdKLKgKrSQoK6ZprGeKLKgqzQiLDSUIzAMHi2MHa0MHi0irDSMna2MHa2Mna0MnayMHayMnawirLWjLLWMnS2MnSwWJDAjLTWkLTUWJDClLbWWpDCXJDAWJLEWpLEXJLAXJLCXpTClrjWlrjYlrrYlrramLrYmLramLzamrrYcJ7ImrramrzYmrzamrzcnLzaosLecKLMeqbOpsTgfKbOqMTefKjQqMbggKrQrMjghq7SiLDUkrbWlLjYnL7apMLcts7ksMziuNDkhrDShrDUOHq2ZJjGcqLMRoa8aJzIdqTMhK7SVI7AMHy6Mni0MHa4VpDCkLbWcqDKsMrikLbYoMDcsszivtTovtTmMni4krbYwtjqOny4Mna6On64PH64Pn64QoC4RIC4QoK4Pn66PoC6QIC6Pn6+Soi+osLcUIq+TorAVo7CxNjq0ODuZJrIbp7IbJ7KbqDMeqTMcKDMdqTOMHi4utDkeKbOzt7s1OLuvNLk3ujyNHi2RoK4UozAOHy2Soi8VI7CNn62TIi+2OTw4OryNnq2OHq03OjyOny2PHy2YJbGZJjIUoy+YpjI7PL4XpTGXpTEdKLMSIa81uTwSIS6ytzq6PD24uz09vr8+Pr8bp7KSoa6aprGapzITIi8YpbEYJbETIa6ZprIRIK4Toi+UIq8YpjGQoK8ZpjEyNrqVoy8aJrIVIy+Mnq2NHy2NHq2Vo6+RoS6RoK6Soa8RIK6NHq0Nnq0RoS8RIS8Nni0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACP4AlwkcSFASGgMIEyaURLChw4G/DGBQSNHABQNcHj4kYLGigQRVQlGhGEDjwAQJO2z6ISNhsD59eFC8gMakr4sIO5RRo8YRwgcwZ6REuMHYwwQ4c1bgmcRAhxMwgyAs4EPGyA01CQ7YYIDKpIS9eEZJ0AEJzFAGPMRYtMhHwpIDETJK8wQCSg9QeCrwoAtmhA6C2C6ioBDixS1PEjNx02UIzxRxYPLxoEDwD5QJsyZMUCHxkx+NSvE04wImEVmJ2BoaSXEZG4UFwnhG0qmJGSWWgtRYYYitqQhOC0iAZYDDgYMKO7yAkphIgUsKMZxYRCkPiV04MH06VUzhmklrOv4Y6CLLyJMsHhO0cqGhz6f373MohGDEiI8KVl68UoG5Ygcd8L1HSQqsZWCADfUlaIQQb3iU0APvoeIELP1tYKAETAihoBFuOIgQAxrkgIB4ClmYUwGNqLCKFqJ4OBURZ+wwwS4NLCDeBkklREUJvPTnUSOqBBlkKpRo0AFXm1lACA099ICCi6ykIqSQlHSAExWAjNHklq64GEEeWdSgSCVBQqHQF1s2WQEsd1jgoB5+bNJhBx1o8sIaCElygRs39AAGILR4IEwIJlRBkSXAbOLHosApxIEAyyA0SS2YuaGFCSYcMsosKFjSAhCb0OHJon7c0doyXEyUkCVFYKrEG6+BQADBFUBYYcUaa4BCaiQIZeBLXAoBgakIoxhQhKyPgGLrFgZYwgKpcyBEEEcIbYKpCcy6IWsQHVxhKxYkWuDHF4wYYEdDaHAFCKZViHeHrIAYwEggtjZqQBsGbJDAQ8ZsYMksEmCGgqybIISCrU8mtIEXJqGRowGzyOqTAbh8q9C+Ji0TgEQJRQyBvaB4gowBBp6b8UAHcdDsFcVSpPKvJzt0AEIXbGAzjghBalJAADs=)!important;background-color:#337ab7;border-color:#2e6da4}#toasty .toast.toasty-theme-bootstrap.toasty-type-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkQyQUI3Q0EzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkQyQUI3Q0IzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0QTNBMDVFQjMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0QTNBMDVFQzMyMkExMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Po9jTrYAAAKTSURBVHja7Jq/SyNBFMfNuSYB0cbCUzmtTvwbbPwb7KPV/Rmnu5tYWR1XX6WFpYL2giBW/igUFCxEuMJeZMXg3Bt4kcmwiftm3kuG5R58mc0G3ptPZnfmzZtUlFIjZbBKWUC+CPqOQA3QLSjDtoH3+U2PiIBqoE2Vb5v4PWtMCYh6HwgTph4yiO5coopZwgnDCVElQJgw1ZBAIgcIEyYKBSRVfpaGAJIoHkuGCZIqXkuHAdIEvTODvKPfgYG0QG9Kxt7QvziIDvKqZO2VCuMCkRE7dQPawZZiGQWGOjtRIf6AZkCT2KZEH1nR2YwCQX2crkDfcpLJY4fHLPEFifBXbDs854c9fG45TBRt7EfkAqJzoNjjhT0CVXL87nn4jHvlZv2y2Nhz5jnH98L0Owo68fQb52XNvql4P3sArVi+F0HXTOlMvR9IjWEkOvYM+mH5XwU9MfmPzZ2mPexcEB3btkB+Mqc1Mfa7C6QhsELvg8aMGL8FYuh+d1VRNgRqG1OgSbyugeYFYmzY5aAFgSAa4iteVw0oTluwQR6FQKrGiEwIxHi0K41roB3mIC+gM9Bf0AxoGTTOHGMdtMtVQBiWfRQuJNcRaeu5jnCv7GbCd++YeDqv7NwwB6DvoGlsDyQgimS/PjA6p1qyfC555loJNfvl2I+c5vxydbzv8ng670fs+hV1h3gJmrX8zOF96g7x03oXtRhH2W+/4Myi349xbLeJo5sVLdoNoopyAfqFbRBVlFLVtcwCQlsIoo3+B1b7bQnVflvqfzU+DBivwx6uE6umJ0RTBXSGmHqMRDBniJ3cLHWACOpU18ylUgJEkOfspfrnQ5GdZtfOLnSQESzM6eLZHaYcd/h5TCJeaf6v9U+AAQAvyHBRYhRQ4wAAAABJRU5ErkJggg==)!important;background-color:#d9534f;border-color:#d43f3a}#toasty .toast.toasty-theme-bootstrap.toasty-type-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkQyQUI3Q0UzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkQyQUI3Q0YzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRDJBQjdDQzMyMkIxMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRDJBQjdDRDMyMkIxMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvQVuMwAAAORSURBVHja7JpNaBNBFMebNsZacih+FFFsrB4qVIw9lByEWNtCC/VSRS14UjSx1V4UvbUKFaFUD178OniPB28KgsYeFBVqRFDQgx9paE1bNVKKta3N+h94hTWZ3ezOTiYh9MEPwmZ39v2TmTdv3oxL07SyUjDXipBsW0NsA37gAx7gpe9nwQKIg7fgM5gjCi6EOboZNIEDoFPneC5jwh6A++Al+AYWVQtxg3pwBPSBaoc/6Di4Q6I+gL8qhGwBx0EvqJHc1afADXAXJGw9yYTYoBVEtfxblN5l2Tc7InrApKbO2LtCMoV4wGUwr6m3OTAAVjsV4iIRS1rhLA36nQo5Rb9KoW0WnDTz1SxqtYB7YF2RTN4/wSEQtRO1asGIVnw2Qr5l+VzO0VYBjoFgEaZUQZqEXVYmxAbwGGxU5Nw8eEqT6y7KGswsCdrAe7Ou5QaDirvLVYqO5fR5ysIzl8hXw6i1FUwrFDEK6jJ86AAzOZ6LA5+REPardCsU8QO0cwZuBfhq4flu8jlrsLO1RJfCgcsSw0ec6+doLZPLusjnrDHiBSlF/8YbgzDqB78stpEin7O6VpMiEWwwt3BEsMH7zGZbAV7X8ivoTmype9Ngdr4A9thsr275g16IT4GQGLjGuc4EnBZor54nxKMgVzoLZjjr/kGwSaDNKp4Qr6CDabCU4x5WVLgOXnC+uwKaBd/t5QkRsRQ4Q10jZnLfKBjmXN8PjvJyJ9umixpDAhNaT0bojHHuY+G0kROlaiRk2EO88Gsnx1oEfRzndoPXGfeGDULtsIRQfpEn5ISNBtj6/aDBWqaRcihmD/VphI52i8mhlTTF8YSYAEETMUxEg0GXei5pcg3whIikKOOg2UBMZR67lGmKUgUiAg2OgX0W608dVEiQYRHyWWoaH7cgZj34KDFn+y+N5y2svgs2nDBIBpfXGLckijBdWMlY6hqNGdalFiQKybnUZewESQcvmQB7de1Vgy8SRSTJx5yVRjcpTjt4GetmvaBTcn2M+XSeNzeVTIHOrGTaSiXTtUVUMj0Mnohs9IQkxn2nReyQ0/2RfofjpSi2Fcpok2WgQNsL0jZ69IQlZax2qi3hfOwhMtoURbMRepdl30S2p2t129MbJEemaVoSR8CYqgMDO+i0Q1iwAqK3CXCbDgy8K8QRjlUkIuDwCMcrEqP8CIdRjakSbLd4qOYT+AN+rxxzKkUh/wQYAIxbfwhIUivlAAAAAElFTkSuQmCC)!important;background-color:#5cb85c;border-color:#4cae4c}#toasty .toast.toasty-theme-bootstrap.toasty-type-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NTc3MiwgMjAxNC8wMS8xMy0xOTo0NDowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MkQyQUI3RDIzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MkQyQUI3RDMzMjJCMTFFNUI4QjZEQkFEN0Q5RUExNzAiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyRDJBQjdEMDMyMkIxMUU1QjhCNkRCQUQ3RDlFQTE3MCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyRDJBQjdEMTMyMkIxMUU1QjhCNkRCQUQ3RDlFQTE3MCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhxHKhwAAAN7SURBVHja7JrfS1RBFMf37q7mj6SySMWMMqnQLEsKMg2yH4SC2g+wrKcIg7SX3ouiP6BfEFRPEdRLFFlBIEVQvfcgFrJBLxFBEWG9mHb7Hjgrl+vMzr13Zuyu+IUP7M7Pc+7MnJm5u47ruom5oGRijmjOOJK22PYScBrs5u8vwA3ww0ZnjqU1sgg8Ba2+9NegE4znw9QqBg8FTpDawF0uE3tHBkFLjvz9XCbWU2sZT5/1inIfeHS+xXVELoK6AOXquGwsp9ZGcDhgJExz2U1xc6QEXADLQ9ShsudMbQGmHDkE9kSoR3tMd1wcoSd7CpRFqLsYnA05ktYcOQGac+T/ZmTawm381/BL0ecR2CDI+wyug4/8fQ04A6oFZUfAAZCJbAk5osFVMOmK1SMo3yMpS21c07FFx4m94LvEsFcgLahDaS8ldb6AnVHtibpGaGGfBOWS/PuyqQyeSPIqNYJGZEeO8ClWJnIwJdkIq3LU6+a2Z8WRGtAHSnOUWQcKBOkphSOl3HbNbDjSpzjdkupBoSCd0tYq6rZwH1aj1jaQcdWaAJWC+hWcp1KG+7Ky2OlpHgW1AcrStFohuTkWBKhfy30V2phaHWCAI08QrfK1T58bg27UoB+0m3akhsNtQQjH23xPlCJWU8gT9WDQhZ8M+HT2KcKtSKt97ac4LYw6ue+kCUfqeUqFVa3vrpHmy1dYDXA413KEptIxsDmCAQ2+TTElCQAqUd8HlRcwRVhrA+NudFV72irXaOcX2xIp/JbxsC7UOOZnFzyN7EqNdkrZlrKwr0xpGuwCvZr3nQ7PvtOo2RbZcg88A1NBL1YV4HnIcDkbescv+L4GGRGHb2smnHgDPnk2yFbN9prYttszRkWwcBr4kqOry6DK0y59vmmgXbKtTnVDdAx1NgKKBQ9pAefp6ooqam0Hxw1MqTvgjyB9ivN01e+/SngdoVf9l/iMo6u05HDpGHqzmLW12O+Iw9fMdkPRpVdy1U0ZCOlZtbPNjnexl4BR16xu8ZrI9rGU00xqlG2f3ke6wGMLcf8teM9PjQ6MWy30QaMylJ2vzZY2sB2MTZHtQ9k1UpTIXxV5F/tYHjsy5nXkARjOQyeG2fZpR35yWDyfsPAbuAWNs629bPuM02+a7w+F/DMAnYL/xsT4JJ966WeKCWZSdYzPO83/O2jeEUv6J8AAuUNANq3q2uMAAAAASUVORK5CYII=)!important;background-color:#f0ad4e;border-color:#eea236}@-webkit-keyframes toasty-shake{0%{-webkit-transform:translate(2px,1px) rotate(0);transform:translate(2px,1px) rotate(0)}10%{-webkit-transform:translate(-1px,-2px) rotate(-1deg);transform:translate(-1px,-2px) rotate(-1deg)}20%{-webkit-transform:translate(-3px,0) rotate(1deg);transform:translate(-3px,0) rotate(1deg)}30%{-webkit-transform:translate(0,2px) rotate(0);transform:translate(0,2px) rotate(0)}40%{-webkit-transform:translate(1px,-1px) rotate(1deg);transform:translate(1px,-1px) rotate(1deg)}50%{-webkit-transform:translate(-1px,2px) rotate(-1deg);transform:translate(-1px,2px) rotate(-1deg)}60%{-webkit-transform:translate(-3px,1px) rotate(0);transform:translate(-3px,1px) rotate(0)}70%{-webkit-transform:translate(2px,1px) rotate(-1deg);transform:translate(2px,1px) rotate(-1deg)}80%{-webkit-transform:translate(-1px,-1px) rotate(1deg);transform:translate(-1px,-1px) rotate(1deg)}90%{-webkit-transform:translate(2px,2px) rotate(0);transform:translate(2px,2px) rotate(0)}100%{-webkit-transform:translate(1px,-2px) rotate(-1deg);transform:translate(1px,-2px) rotate(-1deg)}}@keyframes toasty-shake{0%{-webkit-transform:translate(2px,1px) rotate(0);transform:translate(2px,1px) rotate(0)}10%{-webkit-transform:translate(-1px,-2px) rotate(-1deg);transform:translate(-1px,-2px) rotate(-1deg)}20%{-webkit-transform:translate(-3px,0) rotate(1deg);transform:translate(-3px,0) rotate(1deg)}30%{-webkit-transform:translate(0,2px) rotate(0);transform:translate(0,2px) rotate(0)}40%{-webkit-transform:translate(1px,-1px) rotate(1deg);transform:translate(1px,-1px) rotate(1deg)}50%{-webkit-transform:translate(-1px,2px) rotate(-1deg);transform:translate(-1px,2px) rotate(-1deg)}60%{-webkit-transform:translate(-3px,1px) rotate(0);transform:translate(-3px,1px) rotate(0)}70%{-webkit-transform:translate(2px,1px) rotate(-1deg);transform:translate(2px,1px) rotate(-1deg)}80%{-webkit-transform:translate(-1px,-1px) rotate(1deg);transform:translate(-1px,-1px) rotate(1deg)}90%{-webkit-transform:translate(2px,2px) rotate(0);transform:translate(2px,2px) rotate(0)}100%{-webkit-transform:translate(1px,-2px) rotate(-1deg);transform:translate(1px,-2px) rotate(-1deg)}}#toasty{position:fixed;z-index:999999}#toasty .close-button:focus{outline:0}#toasty.toasty-position-top-left{top:12px;left:12px}#toasty.toasty-position-top-right{top:12px;right:12px}#toasty.toasty-position-bottom-right{bottom:12px;right:12px}#toasty.toasty-position-bottom-left{bottom:12px;left:12px}#toasty.toasty-position-top-center{top:12px;left:50%;-webkit-transform:translate(-50%,0);transform:translate(-50%,0)}#toasty.toasty-position-bottom-center{bottom:12px;left:50%;-webkit-transform:translate(-50%,0);transform:translate(-50%,0)}#toasty .toast{cursor:pointer;margin:0 0 6px;padding:0;width:285px;height:65px;display:table;background-size:24px 24px;background-position:15px center;background-repeat:no-repeat;box-shadow:0 0 5px 0 rgba(0,0,0,.25);opacity:.9;position:relative}#toasty .toast.toasty-shake{-webkit-animation-name:toasty-shake;animation-name:toasty-shake;-webkit-animation-duration:.5s;animation-duration:.5s;-webkit-transform-origin:50% 50%;transform-origin:50% 50%;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-timing-function:linear;animation-timing-function:linear}#toasty .toast.toasty-shake:hover{-webkit-animation-play-state:paused;animation-play-state:paused}#toasty .toast .close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;position:absolute;right:10px;top:3px;opacity:.5}#toasty .toast .close-button:focus,#toasty .toast .close-button:hover{text-decoration:none;cursor:pointer;opacity:1}#toasty .toast .toast-text{padding:5px 20px 5px 60px;display:table-cell;vertical-align:middle}#toasty .toast .toast-text .toast-title{font-weight:700}#toasty .toast .toast-text a:hover,#toasty .toast .toast-text label:hover{text-decoration:none}[md-color-picker] .md-color-picker-input-container,md-color-picker .md-color-picker-input-container{position:relative}[md-color-picker] .md-color-picker-input-container .md-color-picker-preview,md-color-picker .md-color-picker-input-container .md-color-picker-preview{content:'';width:24px;height:24px;border:2px solid #fff;border-radius:50%;box-shadow:0 3px 1px -2px rgba(0,0,0,.14),0 2px 2px 0 rgba(0,0,0,.098),0 1px 5px 0 rgba(0,0,0,.084);position:relative;top:22px;overflow:hidden;background-color:#fff;background-image:-webkit-linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0,#ddd),-webkit-linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0,#ddd);background-image:linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0,#ddd),linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0,#ddd);background-size:8px 8px;background-position:0 0,4px 4px}[md-color-picker] .md-color-picker-input-container .md-color-picker-preview .md-color-picker-result,md-color-picker .md-color-picker-input-container .md-color-picker-preview .md-color-picker-result{width:100%;height:100%}[md-color-picker] .md-color-picker-input-container .md-color-picker-clear,md-color-picker .md-color-picker-input-container .md-color-picker-clear{position:absolute;bottom:42px;right:-16px;color:rgba(0,0,0,.26)}.md-color-picker-container{padding:8px;background:#fff;outline:0;height:397px;width:347px;opacity:1;overflow:hidden;z-index:1000}.md-color-picker-container .md-color-picker-arrow{border:0 solid transparent;border-right-width:30px;border-bottom-width:0;position:absolute;left:0;top:0;-webkit-transition:border-bottom-width cubic-bezier(.25,.8,.25,1) .25s,top cubic-bezier(.25,.8,.25,1) .25s;transition:border-bottom-width cubic-bezier(.25,.8,.25,1) .25s,top cubic-bezier(.25,.8,.25,1) .25s}.md-color-picker-container .md-color-picker-preview{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;font-weight:700;font-size:18px;color:#fff;margin:-8px -8px 0;position:relative}.md-color-picker-container .md-color-picker-preview .md-color-picker-result{position:absolute;height:100%;opacity:1;background:red}.md-color-picker-container .md-color-picker-preview .md-color-picker-result>input{position:relative;top:-15px;opacity:0}.md-color-picker-container .md-color-picker-preview .md-color-picker-result>div{position:relative;width:100%}.md-color-picker-container .md-color-picker-preview .md-color-picker-result>div>input{border-width:0;background:0 0;text-align:center;position:absolute;top:-15px;bottom:0;left:0;right:0;color:#eee;outline:0;opacity:0}.md-color-picker-container .md-color-picker-preview .md-color-picker-result>div>input.switch{-webkit-transition:top cubic-bezier(.25,.8,.25,1) .25s,.25s opacity ease-out;transition:top cubic-bezier(.25,.8,.25,1) .25s,.25s opacity ease-out;top:0;opacity:1}.md-color-picker-container .md-color-picker-preview .md-color-picker-tabs .md-tab,.md-color-picker-container .md-color-picker-preview .md-color-picker-tabs md-pagination-wrapper,.md-color-picker-container .md-color-picker-preview .md-color-picker-tabs md-tabs-canvas,.md-color-picker-container .md-color-picker-preview .md-color-picker-tabs md-tabs-wrapper{max-height:28px;height:28px}.md-color-picker-container .md-color-picker-preview .md-color-picker-tabs md-ink-bar{background:hsla(0,0%,100%,.5)}.md-color-picker-container .md-color-picker-preview .md-color-picker-tabs .md-tab{padding-top:2px;background:hsla(0,0%,100%,.25);color:#eee;max-width:none!important}.md-color-picker-container .md-color-picker-preview .md-color-picker-tabs .md-tab.md-active{background:0 0}.md-color-picker-container .md-color-picker-preview.dark,.md-color-picker-container .md-color-picker-preview.dark .md-color-picker-preview-input{color:#333}.md-color-picker-container .md-color-picker-preview.dark .md-tab{background:rgba(0,0,0,.25);color:#333}.md-color-picker-container .md-color-picker-preview.dark .md-tab.md-active{background:0 0}.md-color-picker-container .md-color-picker-preview.dark md-ink-bar{background:rgba(0,0,0,.5)}.md-color-picker-container .md-color-picker-tabs{margin:0 -8px}.md-color-picker-container .md-color-picker-tabs md-tabs[md-align-tabs=bottom]{padding-bottom:0}.md-color-picker-container .md-color-picker-tabs .md-tab,.md-color-picker-container .md-color-picker-tabs md-pagination-wrapper,.md-color-picker-container .md-color-picker-tabs md-tabs-canvas,.md-color-picker-container .md-color-picker-tabs md-tabs-wrapper{max-height:36px;height:36px}.md-color-picker-container .md-color-picker-tabs .md-tab{padding:7px 24px;background:0 0}.md-color-picker-container .md-color-picker-tabs .md-tab:last-of-type{margin-right:-2px}.md-color-picker-container .md-color-picker-tabs md-tabs:not(.md-no-tab-content):not(.md-dynamic-height){min-height:298px}.md-color-picker-container .md-color-picker-tabs md-tabs:not(.md-no-tab-content):not(.md-dynamic-height) md-tabs-content-wrapper{height:255px;margin-bottom:8px}.md-color-picker-container .md-color-picker-tabs md-tabs:not(.md-no-tab-content):not(.md-dynamic-height) md-tabs-content-wrapper md-tab-content{height:255px;padding:0 8px}.md-color-picker-container .md-color-picker-tabs md-tabs:not(.md-no-tab-content):not(.md-dynamic-height) md-tabs-content-wrapper md-tab-content [md-tabs-template]{height:100%}.md-color-picker-container .md-color-picker-tabs.md-color-picker-colors{margin:8px -8px -8px}.md-color-picker-container .md-color-picker-tabs.md-color-picker-colors md-ink-bar{top:auto}.md-color-picker-container .md-color-picker-tabs.md-color-picker-colors .md-tab{background:rgba(0,0,0,.075)}.md-color-picker-container .md-color-picker-tabs.md-color-picker-colors .md-tab.md-active{background:#fff}.md-color-picker-container .md-color-picker-colors{overflow:hidden;margin-top:8px}.md-color-picker-container .md-color-picker-colors .md-color-picker-marker{position:absolute;border:2px solid #fff;box-shadow:0 0 2px 0 rgba(0,0,0,.5)}.md-color-picker-container .md-color-picker-colors [md-color-picker-spectrum]{position:relative;cursor:crosshair;overflow:hidden;height:255px;width:255px}.md-color-picker-container .md-color-picker-colors [md-color-picker-spectrum] .md-color-picker-marker{width:11px;height:11px;border-radius:50%;box-shadow:0 0 2px 0 rgba(0,0,0,.5),inset 0 0 2px 0 rgba(0,0,0,.5);top:-5px;left:calc(100% - 5px)}.md-color-picker-container .md-color-picker-colors [md-color-picker-alpha],.md-color-picker-container .md-color-picker-colors [md-color-picker-hue]{position:relative;cursor:crosshair;overflow:hidden;width:30px}.md-color-picker-container .md-color-picker-colors [md-color-picker-alpha].md-color-picker-wide,.md-color-picker-container .md-color-picker-colors [md-color-picker-hue].md-color-picker-wide{width:67px}.md-color-picker-container .md-color-picker-colors [md-color-picker-alpha] .md-color-picker-marker,.md-color-picker-container .md-color-picker-colors [md-color-picker-hue] .md-color-picker-marker{height:5px;width:100%;border-left:0;border-right:0;top:-2px;left:0}.md-color-picker-container .md-color-picker-sliders md-slider.red-slider .md-track-fill{background:#d01515}.md-color-picker-container .md-color-picker-sliders md-slider.red-slider .md-thumb:after{background-color:#d01515;border-color:#d01515}.md-color-picker-container .md-color-picker-sliders md-slider.green-slider .md-track-fill{background:#19d015}.md-color-picker-container .md-color-picker-sliders md-slider.green-slider .md-thumb:after{background-color:#19d015;border-color:#19d015}.md-color-picker-container .md-color-picker-sliders md-slider.blue-slider .md-track-fill{background:#1560d0}.md-color-picker-container .md-color-picker-sliders md-slider.blue-slider .md-thumb:after{background-color:#1560d0;border-color:#1560d0}.md-color-picker-container .md-color-picker-material-palette .md-color-picker-material-title{font-size:22px;line-height:75px;padding:0 15px;color:rgba(0,0,0,.85);text-transform:capitalize}.md-color-picker-container .md-color-picker-material-palette .md-color-picker-material-title.dark{color:hsla(0,0%,100%,.85)}.md-color-picker-container .md-color-picker-material-palette .md-color-picker-material-title:not(:first-child){margin-top:16px}.md-color-picker-container .md-color-picker-material-palette .md-color-picker-with-label{font-size:12px;line-height:33px;padding:0 5px;color:rgba(0,0,0,.7)}.md-color-picker-container .md-color-picker-material-palette .md-color-picker-with-label.dark{color:hsla(0,0%,100%,.7)}.md-color-picker-container .md-color-picker-material-palette .md-color-picker-material-colors{position:absolute;-webkit-transition:left cubic-bezier(.25,.8,.25,1) .25s,right cubic-bezier(.25,.8,.25,1) .25s,top cubic-bezier(.25,.8,.25,1) .25s,bottom cubic-bezier(.25,.8,.25,1) .25s;transition:left cubic-bezier(.25,.8,.25,1) .25s,right cubic-bezier(.25,.8,.25,1) .25s,top cubic-bezier(.25,.8,.25,1) .25s,bottom cubic-bezier(.25,.8,.25,1) .25s}.md-color-picker-container .md-color-picker-history>div>div{height:20px;margin:4px;background-color:#fff;background-image:-webkit-linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0,#ddd),-webkit-linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0,#ddd);background-image:linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0,#ddd),linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0,#ddd);background-size:8px 8px;background-position:0 0,4px 4px}.md-color-picker-container .md-color-picker-history>div>div>div{width:100%;height:100%}.md-color-picker-container .md-color-picker-history button{margin-top:auto;margin-left:auto}.md-color-picker-checkered-bg{background-color:#fff;background-image:-webkit-linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0,#ddd),-webkit-linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0,#ddd);background-image:linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0,#ddd),linear-gradient(45deg,#ddd 25%,transparent 0,transparent 75%,#ddd 0,#ddd);background-size:8px 8px;background-position:0 0,4px 4px}.mdp-animate-next,.mdp-animate-next-remove{opacity:0;-webkit-transform:translate3d(50%,0,1px);transform:translate3d(50%,0,1px)}.mdp-animate-next-remove{-webkit-transition:all .5s cubic-bezier(.35,0,.25,1);transition:all .5s cubic-bezier(.35,0,.25,1)}.mdp-animate-next-remove-active{opacity:1;-webkit-transform:translateZ(1px);transform:translateZ(1px)}.mdp-animate-prev,.mdp-animate-prev-remove{opacity:0;-webkit-transform:translate3d(-50%,0,1px);transform:translate3d(-50%,0,1px)}.mdp-animate-prev-remove{-webkit-transition:all .3s cubic-bezier(.35,0,.25,1);transition:all .3s cubic-bezier(.35,0,.25,1)}.mdp-animate-prev-remove-active{opacity:1;-webkit-transform:translateZ(1px);transform:translateZ(1px)}@-webkit-keyframes a{0%{opacity:0;-webkit-transform:scale(.95);transform:scale(.95)}70%{opacity:1;-webkit-transform:scale(1.05);transform:scale(1.05)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes a{0%{opacity:0;-webkit-transform:scale(.95);transform:scale(.95)}70%{opacity:1;-webkit-transform:scale(1.05);transform:scale(1.05)}to{-webkit-transform:scale(1);transform:scale(1)}}.mdp-animation-zoom.ng-enter{-webkit-transition:all .3s cubic-bezier(.35,0,.25,1);transition:all .3s cubic-bezier(.35,0,.25,1);-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-name:a;animation-name:a}.mdp-datepicker{max-height:initial;min-width:234px}.mdp-datepicker *{outline:0}.mdp-datepicker .md-actions{width:100%;padding:0 5px}.mdp-calendar-week-days{font-size:.75rem;opacity:.6}.mdp-calendar-week-days>*{width:32px;height:32px;line-height:32px;margin:0 5px;padding:0;min-width:0;min-height:0;box-shadow:none!important;background-color:transparent}.mdp-calendar-days{font-size:1rem;max-width:100%}.mdp-calendar-days .md-button,.mdp-calendar-days .mdp-day-placeholder{width:32px;height:32px;margin:0 5px}.mdp-calendar-days .md-button{cursor:pointer;border-radius:50%;font-size:12px;width:32px;height:32px;line-height:32px;padding:0;min-width:0;min-height:0;box-shadow:none!important;background-color:transparent}.mdp-calendar-days .md-button[disabled]:not(.md-accent){background-color:transparent!important}.mdp-calendar-monthyear{font-size:.8125rem;font-weight:700;line-height:32px;min-height:32px}.mdp-datepicker-date,.mdp-datepicker-day,.mdp-datepicker-dow,.mdp-datepicker-month{font-size:1.8rem;opacity:.6}.mdp-datepicker-date:not(.active),.mdp-datepicker-day:not(.active),.mdp-datepicker-dow:not(.active),.mdp-datepicker-month:not(.active){cursor:pointer}.mdp-datepicker-date.active,.mdp-datepicker-date:hover,.mdp-datepicker-day.active,.mdp-datepicker-day:hover,.mdp-datepicker-dow.active,.mdp-datepicker-dow:hover,.mdp-datepicker-month.active,.mdp-datepicker-month:hover{opacity:1}.mdp-datepicker-year{font-size:.9rem;opacity:.6;padding:0;margin:0}.mdp-datepicker-year:not(.active){cursor:pointer}.mdp-datepicker-year.active,.mdp-datepicker-year:hover{opacity:1}.mdp-datepicker-select-year{height:232px}.mdp-datepicker-select-year .repeated-year{text-align:center}.mdp-datepicker-select-year .repeated-year .md-button{width:100%;margin:0;border-radius:0;padding:0;font-size:1rem;line-height:42px}.mdp-datepicker-select-year .repeated-year .md-button.current{font-size:1.8rem;line-height:42px}.mdp-datepicker-select-year .md-virtual-repeat-container,.mdp-datepicker-select-year .md-virtual-repeat-offsetter,.mdp-datepicker-select-year .md-virtual-repeat-scroller{height:100%;width:100%}mdp-date-picker>md-input-container.md-has-icon{padding-left:40px}mdp-date-picker .md-button.md-icon-button{margin:18px 0 0}.mdp-datepicker:not(.portrait) .mdp-datepicker-select-year{width:309px}.mdp-datepicker:not(.portrait) .mdp-calendar{margin-right:5px;width:294px;margin-left:10px}.mdp-datepicker:not(.portrait) .mdp-datepicker-date-wrapper{width:150px}.mdp-datepicker:not(.portrait) .mdp-datepicker-dow{width:100%;display:block}.mdp-datepicker:not(.portrait) .mdp-calendar-days>*,.mdp-datepicker:not(.portrait) .mdp-calendar-week-days>*{width:42px}.mdp-datepicker .mdp-datepicker-date-wrapper{padding:16px 35px 16px 16px}.mdp-datepicker md-dialog-content{overflow:hidden;padding:0}.mdp-datepicker md-dialog-content .mdp-calendar{width:294px;overflow-x:hidden}.mdp-datepicker.portrait{max-width:234px}.mdp-datepicker.portrait .mdp-calendar{text-align:center;width:100%}.mdp-datepicker.portrait .mdp-datepicker-select-year{height:252px}.mdp-datepicker.portrait md-dialog-content>*{width:100%}.mdp-datepicker.portrait .md-actions,.mdp-datepicker.portrait .mdp-calendar-days,.mdp-datepicker.portrait .mdp-calendar-week-days{padding:0 5px}.mdp-datepicker.portrait .md-actions{margin-top:20px}.mdp-datepicker.portrait .mdp-calendar-days>*,.mdp-datepicker.portrait .mdp-calendar-week-days>*{width:32px}mdp-calendar{display:block}.mdp-calendar-week-days{width:100%}.mdp-calendar-days .md-button,.mdp-calendar-days .mdp-day-placeholder,.mdp-calendar-week-days>*{margin:0}.mdp-clock{width:200px;height:200px;border-radius:50%;cursor:pointer;padding:24px;background:#ededed}.mdp-clock .md-button{box-shadow:none!important;background-color:transparent;display:block;position:absolute;min-height:32px;width:32px;height:32px;font-size:12px;line-height:32px;margin:0;padding:0;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.mdp-clock .mdp-clock-container{width:100%;height:100%;position:relative;display:block}.mdp-clock .mdp-pointer{width:1px;height:50%;margin:0 auto;-webkit-transform-origin:top center;transform-origin:top center;z-index:0;pointer-events:none}.mdp-clock .mdp-clock-center,.mdp-clock .mdp-pointer{min-height:0;position:absolute;left:0;right:0;bottom:0}.mdp-clock .mdp-clock-center{height:6px;width:6px;top:0;margin:auto;border-radius:50%}.mdp-clock .md-button.mdp-clock-selected{position:absolute;border-radius:50%;width:8px;height:8px;bottom:-8px;left:0;min-width:0;min-height:0;pointer-events:none}.mdp-timepicker .mdp-clock-switch-container{padding:20px;width:309px}.mdp-timepicker .mdp-timepicker-time{padding:15px}.mdp-timepicker .mdp-timepicker-selected-time{font-size:3rem}.mdp-timepicker:not(.portrait) .mdp-timepicker-time{width:138px}.mdp-timepicker.portrait .mdp-timepicker-selected-time{font-size:4rem;margin-right:1.5rem}mdp-time-picker md-input-container.md-has-icon{padding-left:40px}mdp-time-picker .md-button.md-icon-button{margin:18px 0 0}.mdp-timepicker-selected-ampm>span,.mdp-timepicker-selected-time>span{outline:0;opacity:.6}.mdp-timepicker-selected-ampm>span:not(.active),.mdp-timepicker-selected-time>span:not(.active){cursor:pointer}.mdp-timepicker-selected-ampm>span.active,.mdp-timepicker-selected-time>span.active{opacity:1}.mdp-clock-deg0{top:0;left:50%}.mdp-clock-deg30{top:6.69872981%;left:75%}.mdp-clock-deg60{top:25%;left:93.30127019%}.mdp-clock-deg90{top:50%;left:100%}.mdp-clock-deg120{top:75%;left:93.30127019%}.mdp-clock-deg150{top:93.30127019%;left:75%}.mdp-clock-deg180{top:100%;left:50%}.mdp-clock-deg210{top:93.30127019%;left:25%}.mdp-clock-deg240{top:75%;left:6.69872981%}.mdp-clock-deg270{top:50%;left:0}.mdp-clock-deg300{top:25%;left:6.69872981%}.mdp-clock-deg330{top:6.69872981%;left:25%}.mdp-clock-deg360{top:0;left:50%}.jstree-children,.jstree-container-ul,.jstree-node{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:#000;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:active,.jstree-anchor:hover,.jstree-anchor:link,.jstree-anchor:visited{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-anchor>.jstree-themeicon-hidden,.jstree-no-icons .jstree-themeicon{display:none}.jstree-hidden,.jstree-node.jstree-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.jstree-contextmenu .jstree-anchor{-webkit-user-select:none;-webkit-touch-callout:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none}.vakata-context li>a{display:block;padding:0 2em 0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;text-shadow:1px 1px 0 #fff;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;text-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-copy,#jstree-dnd .jstree-icon{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px 0 2px}.jstree-default .jstree-icon,.jstree-default .jstree-node{background-repeat:no-repeat;background-color:transparent}.jstree-default .jstree-anchor,.jstree-default .jstree-animated,.jstree-default .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default .jstree-hovered{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-default .jstree-context{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-default .jstree-clicked{background:#beebff;border-radius:2px;box-shadow:inset 0 0 1px #999}.jstree-default .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default .jstree-disabled{background:0 0;color:#666}.jstree-default .jstree-disabled.jstree-hovered{background:0 0;box-shadow:none}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default .jstree-search{font-style:italic;color:#8b0000;font-weight:700}.jstree-default .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;box-shadow:none}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#e7f4f9}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#e7f4f9}.jstree-default>.jstree-striped{min-width:100%;display:inline-block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat}.jstree-default>.jstree-wholerow-ul .jstree-clicked,.jstree-default>.jstree-wholerow-ul .jstree-hovered{background:0 0;box-shadow:none;border-radius:0}.jstree-default .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-default .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default .jstree-wholerow-clicked{background:#beebff;background:-webkit-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:linear-gradient(to bottom,#beebff 0,#a8e4ff 100%)}.jstree-default .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-default .jstree-anchor{line-height:24px;height:24px}.jstree-default .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-default .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default.jstree-rtl .jstree-node{margin-right:24px}.jstree-default .jstree-wholerow{height:24px}.jstree-default .jstree-icon,.jstree-default .jstree-node{background-image:url(32px.png)}.jstree-default .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-default .jstree-last{background:0 0}.jstree-default .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default .jstree-themeicon{background-position:-260px -4px}.jstree-default>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default>.jstree-no-dots .jstree-node{background:0 0}.jstree-default>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default .jstree-disabled{background:0 0}.jstree-default .jstree-disabled.jstree-hovered{background:0 0}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-checkbox{background-position:-164px -4px}.jstree-default .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default .jstree-checked>.jstree-checkbox,.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox{background-position:-228px -4px}.jstree-default .jstree-checked>.jstree-checkbox:hover,.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default>.jstree-striped{background-size:auto 48px}.jstree-default.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default.jstree-rtl .jstree-last{background:0 0}.jstree-default.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default.jstree-rtl>.jstree-no-dots .jstree-node{background:0 0}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default .jstree-file{background:url(32px.png) -100px -68px no-repeat}.jstree-default .jstree-folder{background:url(32px.png) -260px -4px no-repeat}.jstree-default>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default{line-height:24px;padding:0 4px}#jstree-dnd.jstree-default .jstree-er,#jstree-dnd.jstree-default .jstree-ok{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default i{background:0 0;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-default .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-default .jstree-er{background-position:-36px -68px}.jstree-default .jstree-ellipsis{overflow:hidden}.jstree-default .jstree-ellipsis .jstree-anchor{width:calc(100% - 29px);text-overflow:ellipsis;overflow:hidden}.jstree-default .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default.jstree-rtl .jstree-last{background:0 0}.jstree-default-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-default-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-default-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-default-small .jstree-wholerow{height:18px}.jstree-default-small .jstree-icon,.jstree-default-small .jstree-node{background-image:url(32px.png)}.jstree-default-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-small .jstree-last{background:0 0}.jstree-default-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-small>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default-small>.jstree-no-dots .jstree-node{background:0 0}.jstree-default-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-small .jstree-disabled{background:0 0}.jstree-default-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-small .jstree-checked>.jstree-checkbox,.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-small .jstree-checked>.jstree-checkbox:hover,.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-small .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-small>.jstree-striped{background-size:auto 36px}.jstree-default-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-node{background:0 0}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-small .jstree-file{background:url(32px.png) -103px -71px no-repeat}.jstree-default-small .jstree-folder{background:url(32px.png) -263px -7px no-repeat}.jstree-default-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-default-small .jstree-er,#jstree-dnd.jstree-default-small .jstree-ok{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-small i{background:0 0;width:18px;height:18px;line-height:18px}#jstree-dnd.jstree-default-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-default-small .jstree-er{background-position:-39px -71px}.jstree-default-small .jstree-ellipsis{overflow:hidden}.jstree-default-small .jstree-ellipsis .jstree-anchor{width:calc(100% - 23px);text-overflow:ellipsis;overflow:hidden}.jstree-default-small .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-default-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-default-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-default-large .jstree-wholerow{height:32px}.jstree-default-large .jstree-icon,.jstree-default-large .jstree-node{background-image:url(32px.png)}.jstree-default-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-default-large .jstree-last{background:0 0}.jstree-default-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-large .jstree-themeicon{background-position:-256px 0}.jstree-default-large>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default-large>.jstree-no-dots .jstree-node{background:0 0}.jstree-default-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-large .jstree-disabled{background:0 0}.jstree-default-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-large .jstree-checkbox{background-position:-160px 0}.jstree-default-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-large .jstree-checked>.jstree-checkbox,.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox{background-position:-224px 0}.jstree-default-large .jstree-checked>.jstree-checkbox:hover,.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-large .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'jstree-grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-large>.jstree-striped{background-size:auto 64px}.jstree-default-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-large.jstree-rtl .jstree-last{background:0 0}.jstree-default-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl,.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-node{background:0 0}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-large .jstree-file{background:url(32px.png) -96px -64px no-repeat}.jstree-default-large .jstree-folder{background:url(32px.png) -256px 0 no-repeat}.jstree-default-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-default-large .jstree-er,#jstree-dnd.jstree-default-large .jstree-ok{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-large i{background:0 0;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-default-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-default-large .jstree-er{background-position:-32px -64px}.jstree-default-large .jstree-ellipsis{overflow:hidden}.jstree-default-large .jstree-ellipsis .jstree-anchor{width:calc(100% - 37px);text-overflow:ellipsis;overflow:hidden}.jstree-default-large .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(40px.png);background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(40px.png);background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}}@media (max-width:768px){.jstree-default-responsive .jstree-icon{background-image:url(40px.png)}.jstree-default-responsive .jstree-leaf>.jstree-ocl,.jstree-default-responsive .jstree-node{background:0 0}.jstree-default-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-default-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px;background:0 0}.jstree-default-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-ocl,.jstree-default-responsive .jstree-themeicon{background-size:120px 240px}.jstree-default-responsive .jstree-leaf>.jstree-ocl,.jstree-default-responsive.jstree-rtl .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-default-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px!important}.jstree-default-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0!important}.jstree-default-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-responsive .jstree-checked>.jstree-checkbox,.jstree-default-responsive .jstree-checked>.jstree-checkbox:hover,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-responsive .jstree-anchor{font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}.jstree-default-responsive>.jstree-striped{background:0 0}.jstree-default-responsive .jstree-wholerow{border-top:1px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(64,64,64,.2);background:#ebebeb;height:40px}.jstree-default-responsive .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default-responsive .jstree-wholerow-clicked{background:#beebff}.jstree-default-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #666}.jstree-default-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #666;border-top:0}.jstree-default-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-node>.jstree-ocl,.jstree-default-responsive .jstree-themeicon{background-image:url(40px.png);background-size:120px 240px}.jstree-default-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-responsive .jstree-last{background:0 0}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-responsive .jstree-file{background:url(40px.png) 0 -160px no-repeat;background-size:120px 240px}.jstree-default-responsive .jstree-folder{background:url(40px.png) -40px -40px no-repeat;background-size:120px 240px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}}.gridster{position:relative;margin:auto;height:0}.gridster>ul{margin:0;list-style:none;padding:0}.gridster-item{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;list-style:none;z-index:2;position:absolute;display:none}.gridster-loaded{-webkit-transition:height .3s;-moz-transition:height .3s;-o-transition:height .3s;transition:height .3s}.gridster-loaded .gridster-item{display:block;position:absolute;-webkit-transition:opacity .3s,left .3s,top .3s,width .3s,height .3s;-moz-transition:opacity .3s,left .3s,top .3s,width .3s,height .3s;-o-transition:opacity .3s,left .3s,top .3s,width .3s,height .3s;transition:opacity .3s,left .3s,top .3s,width .3s,height .3s;-webkit-transition-delay:50ms;-moz-transition-delay:50ms;-o-transition-delay:50ms;transition-delay:50ms}.gridster-loaded .gridster-preview-holder{display:none;z-index:1;position:absolute;background-color:#ddd;border-color:#fff;opacity:.2}.gridster-loaded .gridster-item.gridster-item-moving,.gridster-loaded .gridster-preview-holder{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.gridster-mobile{height:auto!important}.gridster-mobile .gridster-item{height:auto;position:static;float:none}.gridster-item.ng-leave.ng-leave-active{opacity:0}.gridster-item.ng-enter{opacity:1}.gridster-item-moving{z-index:3}.gridster-item-resizable-handler{position:absolute;font-size:1px;display:block;z-index:5}.handle-se{cursor:se-resize;width:0;height:0;right:1px;bottom:1px;border-style:solid;border-width:0 0 12px 12px;border-color:transparent}.handle-ne{cursor:ne-resize;width:12px;height:12px;right:1px;top:1px}.handle-nw{cursor:nw-resize;width:12px;height:12px;left:1px;top:1px}.handle-sw{cursor:sw-resize;width:12px;height:12px;left:1px;bottom:1px}.handle-e{cursor:e-resize;width:12px;bottom:0;right:1px;top:0}.handle-s{cursor:s-resize;height:12px;right:0;bottom:1px;left:0}.handle-n{cursor:n-resize;height:12px;right:0;top:1px;left:0}.handle-w{cursor:w-resize;width:12px;left:1px;top:0;bottom:0}.gridster .gridster-item:hover .gridster-box{border:1.5px solid #b3b2b3}.gridster .gridster-item:hover .handle-se{border-color:transparent transparent #ccc}.widget-clock .digital{text-align:center}.widget-clock .time{font-family:Syncopate,sans-serif;font-size:2.5em;margin:0}.widget-clock .square{position:relative;width:100%;height:0;padding-bottom:100%}.widget-clock svg{position:absolute;width:100%;height:100%;left:0}.widget-clock .clock-face{stroke:#333;fill:#fff}.widget-clock .minor{stroke:#999;stroke-width:.5}.widget-clock .major{stroke:#333;stroke-width:1}.widget-clock .hour{stroke:#333}.widget-clock .minute{stroke:#666}.widget-clock .second{stroke:#1076ed}.widget-clock .second-counterweight{stroke:#1076ed;stroke-width:3}.widget-clock.dark .clock-face{fill:#111}.widget-clock.dark .hour{stroke:#666}.widget-clock.dark .minute{stroke:#999}.mw-form-builder{background-color:#e4e5e6}.mw-form-builder .mw-title-page{background-color:#fff;padding:10px;border:1px solid #d6d6d6;margin-bottom:7px;position:relative}.mw-form-builder .mw-add-new-page-button{opacity:.8}.mw-form-builder .mw-add-new-page-button:hover{opacity:1;background-color:#fff}.mw-form-builder .mw-form-page-builder{background-color:#fff;border:1px solid #d6d6d6;margin-bottom:7px;position:relative}.mw-form-builder .mw-form-page-builder.page-folded .mw-page-tab-actions button.unfold-button{display:inline-block!important}.mw-form-builder .mw-form-page-builder.page-folded .mw-form-question-builder .mw-preview .question-answers,.mw-form-builder .mw-form-page-builder.page-folded .mw-page-tab-actions button.fold-button{display:none}.mw-form-builder .mw-form-page-builder .mw-page-tab-container{position:relative}.mw-form-builder .mw-form-page-builder .mw-page-tab-container .mw-form-page-tab{background-color:#eee;display:inline-block;height:20px}.mw-form-builder .mw-form-page-builder .mw-page-tab-container .mw-form-page-tab .mw-page-tab-text{color:#4d4d4d;font:400 11px arial,sans-serif;padding:0 4px;position:relative;top:3px;vertical-align:top}.mw-form-builder .mw-form-page-builder .mw-page-tab-container .mw-form-page-tab .mw-page-tab-checkbox{color:#4d4d4d;font:400 11px arial,sans-serif}.mw-form-builder .mw-form-page-builder .mw-page-tab-container .mw-form-page-tab .mw-page-tab-checkbox-text{padding:0 2px;position:relative;top:-3px}.mw-form-builder .mw-form-page-builder .mw-page-tab-container .mw-page-tab-triangle{border-right:20px solid transparent;border-top:20px solid #eee;display:inline-block;height:0;position:absolute;width:0}.mw-form-builder .mw-form-page-builder .mw-page-tab-container .mw-page-tab-actions{position:absolute;right:0;top:0;padding:4px}.mw-form-builder .mw-form-page-builder .mw-page-tab-container .mw-page-tab-actions button{border:none;opacity:.6;outline:0}.mw-form-builder .mw-form-page-builder .mw-page-bottom-tab-container:hover,.mw-form-builder .mw-form-page-builder .mw-page-tab-container .mw-page-tab-actions button:hover{opacity:1}.mw-form-builder .mw-form-page-builder .mw-page-tab-container .mw-page-tab-actions button.remove-button{margin-left:6px}.mw-form-builder .mw-form-page-builder .mw-page-tab-container .mw-page-tab-actions button.unfold-button{display:none}.mw-form-builder .mw-form-page-builder .mw-page-bottom-tab-container{position:absolute;right:-3px;bottom:-1px;opacity:1}.mw-form-builder .mw-form-page-builder .mw-page-bottom-tab-container .mw-form-page-bottom-tab{background-color:#e4e5e6;display:inline-block;height:35px}.mw-form-builder .mw-form-page-builder .mw-page-bottom-tab-container .mw-form-page-bottom-tab .page-flow-select{color:#4d4d4d;font:400 12px arial,sans-serif;padding:4px}.mw-form-builder .mw-form-page-builder .mw-page-bottom-tab-container .mw-form-page-bottom-tab .page-flow-select label{margin-right:4px}.mw-form-builder .mw-form-page-builder .mw-page-bottom-tab-container .mw-form-page-bottom-tab .page-flow-select select{background-color:#f5f5f5;padding:2px;height:25px}.mw-form-builder .mw-form-page-builder .mw-page-bottom-tab-container .mw-page-bottom-tab-triangle{border-left:35px solid transparent;border-bottom:35px solid #e4e5e6;display:inline-block;height:0;width:0}.mw-form-builder .mw-form-page-builder .mw-page-bottom-tab-container .mw-page-bottom-tab-actions{background-color:#e4e5e6;padding:4px}.mw-form-builder .mw-form-page-builder .mw-page-bottom-tab-container .mw-page-bottom-tab-actions button{height:25px;width:25px;padding:1px;line-height:25px;font-size:22px;background-color:#fff;border:none;opacity:.8;outline:0;margin-left:5px}.mw-form-builder .mw-form-page-builder .mw-page-bottom-tab-container .mw-page-bottom-tab-actions button:hover{opacity:1}.mw-form-builder .mw-form-page-builder .form-page-builder-body{padding:10px}.mw-form-builder .mw-form-page-builder .add-element.btn-group .dropdown-menu button{width:100%;border:none;background:0 0;line-height:28px}.mw-form-builder .mw-form-page-builder .add-element.btn-group .dropdown-menu button:hover{background:#ccc}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder-wrapper{outline:0}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder{outline:0;margin-bottom:10px;z-index:0;zoom:1;position:relative}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder.active{box-shadow:1px 0 10px 1px rgba(0,0,0,.3);z-index:1;background-color:#fbfbfb;cursor:default}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder.active:hover{background-color:#fbfbfb;cursor:default}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder:hover{background-color:#f8f8f8;cursor:move}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder:hover .mw-page-element-actions-tab button.edit-button{opacity:.6}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder:hover .mw-page-element-actions-tab button.edit-button:hover{opacity:1}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder .mw-page-element-actions-tab{position:absolute;right:0;top:0;padding:8px}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder .mw-page-element-actions-tab button{border:none;opacity:.6;outline:0}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder .mw-page-element-actions-tab button:hover{opacity:1}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder .mw-page-element-actions-tab button.remove-button{margin-left:6px}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder .mw-page-element-actions-tab button.edit-button{opacity:0}.mw-form-builder .mw-form-page-builder .beingDragged{margin-bottom:.5em!important;border:2px dotted #ccc!important;background:#f8f8f8!important}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-text{font-weight:700}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-type select{margin-right:8px}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list{outline:0}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .draggable-list-item,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-division-builder .mw-question-division-list-item,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .mw-grid-item,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-priority-list-builder .mw-question-priority-list-item,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .mw-question-offered-answer{margin-top:3px}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-division-builder .add-new-item-widget,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .add-new-item-widget,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-priority-list-builder .add-new-item-widget,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .add-new-answer-widget{margin-top:0;outline:0}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .draggable-list-item .drag-handle,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-division-builder .mw-question-division-list-item .drag-handle,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .mw-grid-item .drag-handle,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-priority-list-builder .mw-question-priority-list-item .drag-handle,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .mw-question-offered-answer .drag-handle{margin-right:6px;color:grey;cursor:move;display:inline-block;width:15px;height:25px;padding:0 4px;opacity:.5}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .draggable-list-item .drag-handle:hover,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-division-builder .mw-question-division-list-item .drag-handle:hover,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .mw-grid-item .drag-handle:hover,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-priority-list-builder .mw-question-priority-list-item .drag-handle:hover,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .mw-question-offered-answer .drag-handle:hover{opacity:1}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .draggable-list-item .remove-item-button,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-division-builder .mw-question-division-list-item .remove-item-button,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .mw-grid-item .remove-item-button,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-priority-list-builder .mw-question-priority-list-item .remove-item-button,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .mw-question-offered-answer .remove-item-button{display:inline-block;border-radius:100%;border:none;opacity:.5;outline:0}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .draggable-list-item .remove-item-button:hover,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-division-builder .mw-question-division-list-item .remove-item-button:hover,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .mw-grid-item .remove-item-button:hover,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-priority-list-builder .mw-question-priority-list-item .remove-item-button:hover,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .mw-question-offered-answer .remove-item-button:hover{opacity:1}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .mw-question-offered-answer .option-type-indicator{display:inline-block;margin-right:5px}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .mw-question-offered-answer .offered-answer-value{display:inline-block;width:300px}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .add-new-answer-widget .drag-handle{cursor:auto;opacity:.5}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .add-new-answer-widget .option-type-indicator{opacity:.5}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .add-new-answer-widget input{cursor:pointer;opacity:.5}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .add-new-answer-widget .add-custom-answer{opacity:1!important}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .add-new-answer-widget .add-custom-answer button{background:0 0!important;border:none;padding:0!important;font:inherit;outline:0;color:#00f;cursor:pointer}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .custom-answer label{display:inline-block;margin:0;width:40px;font-weight:400}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .question-offered-answer-list-builder .custom-answer input{width:256px!important}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .mw-grid-col-list,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .mw-grid-row-list{outline:0}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .mw-grid-separator{border:1px solid #e5e5e5;margin-bottom:10px}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .mw-grid-item .mw-item-label-value{display:inline-block;width:400px}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .add-new-item-widget label{opacity:.5}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .add-new-item-widget .drag-handle{cursor:auto;opacity:.5;display:inline-block}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-division-builder .add-new-item-widget input,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .add-new-item-widget input,.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-priority-list-builder .add-new-item-widget input{width:400px;cursor:pointer;opacity:.5;display:inline-block}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-grid-builder .add-new-item-widget .option-type-indicator{opacity:.5}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-priority-list-builder .question-priority-list{outline:0}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-priority-list-builder .mw-question-priority-list-item input{display:inline-block;width:400px}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-division-builder .question-division-list{outline:0}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-division-builder .mw-question-division-list-item input{display:inline-block;width:400px}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-preview .mw-priority-list table{width:100%;min-height:100px!important;vertical-align:top}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-preview .mw-priority-list table td{height:100%;width:50%;border:1px solid #ccc;border-radius:7px;padding:7px;vertical-align:top}.mw-data-table tbody tr,.mw-data-table td,.mw-data-table th{height:48px;position:relative}.mw-form-builder .mw-form-page-builder .mw-range input{display:inline-block;width:auto}.mw-form-builder .mw-confirmation-page{margin-top:25px}.mw-form-builder .ng-invalid.ng-dirty,.mw-form-builder .ng-invalid.strict-validation,.mw-form-builder .ng-submitted .ng-invalid,.mw-form-builder .ng-submitted .ng-invalid.ui-select-bootstrap button,.mw-form-builder .strict-validation .ng-invalid.ui-select-bootstrap>button{border-color:red;outline-color:red}.mw-form-builder .page-element-list{min-height:35px}.mw-form-builder .page-element-list .empty-page-element-list-label{position:absolute}.mw-form-builder .mw-form-image-builder .image-edition{margin-top:18px}.mw-form-builder .mw-form-image-builder .image-edition .image-align-control{text-align:center;margin:15px}.mw-form-builder .mw-form-image-builder .image-edition .image-align-control button.selected{background-color:#ddd}.mw-form-builder .align-left{text-align:left}.mw-form-builder .align-center{text-align:center}.mw-form-builder .align-right{text-align:right}.mw-form-builder .no-drag{cursor:default}.mw-data-table{position:relative;border:1px solid rgba(0,0,0,.12);border-collapse:collapse;white-space:nowrap;background-color:#fff}.mw-data-table.mw-no-border{border:none}.mw-data-table.mw-no-border tbody tr:first-of-type td,.mw-data-table.mw-no-border thead td,.mw-data-table.mw-no-border thead th{border-top:none!important}.mw-data-table.mw-no-border tbody tr:last-of-type td{border-bottom:none!important}.mw-data-table thead{padding-bottom:3px}.mw-data-table tbody tr{transition-property:background-color}.mw-data-table tbody tr.is-selected{background-color:#e0e0e0}.mw-data-table tbody tr:hover{background-color:#eee}.mw-data-table td,.mw-data-table th{padding:0 18px 12px;text-align:right}.mw-data-table td:first-of-type,.mw-data-table th:first-of-type{padding-left:24px}.mw-data-table td:last-of-type,.mw-data-table th:last-of-type{padding-right:24px}.mw-data-table td{vertical-align:middle;border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12);padding-top:12px;box-sizing:border-box}.mw-data-table th{vertical-align:bottom;text-overflow:ellipsis;font-size:12px;color:rgba(0,0,0,.54);padding-bottom:8px;box-sizing:border-box}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder{padding:20px 10px}.mw-form-builder .mw-form-page-builder .mw-form-page-element-builder.inactive{padding:10px 7px}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-text{margin-bottom:10px}.mw-form-builder .mw-form-page-builder .mw-form-question-builder-wrapper .mw-question-other-answer md-input-container{margin:0}.mw-form-builder .mw-form-page-builder .mw-question-division-builder{margin-top:15px}.mw-form-builder .mw-form-page-builder .mw-division-list md-input-container{margin:0}.mw-form-builder .mw-title-page{padding-top:20px}.mw-form-builder md-input-container{margin:7px 0}.mw-form-builder .mw-question-other-answer md-input-container{margin:0 5px}.mw-form-viewer{background-color:#fff;padding:15px}.mw-form-viewer .mw-form-page{margin:15px 0}.mw-form-viewer .mw-form-page .mw-page-title{margin-top:30px;margin-bottom:25px}.mw-form-viewer .mw-form-page .mw-page-element{margin-bottom:30px}.mw-form-viewer .mw-form-page .mw-page-element .mw-question-text{margin-bottom:7px;font-weight:700}.mw-form-viewer .mw-form-page .mw-priority-list .beingDragged{height:24px;margin-bottom:.5em!important;border:2px dotted #ccc!important;background:0 0!important}.mw-form-viewer .mw-form-page .mw-priority-list .mw-item{cursor:pointer}.mw-form-viewer .mw-form-page .mw-priority-list .mw-item:hover{font-weight:700}.mw-form-viewer .mw-form-page .mw-priority-list table{width:100%;min-height:100px!important;vertical-align:top}.mw-form-viewer .mw-form-page .mw-priority-list table td{height:100%;width:50%;border:1px solid #ccc;border-radius:7px;padding:7px;vertical-align:top}.mw-form-viewer .mw-form-page .align-left{text-align:left}.mw-form-viewer .mw-form-page .align-center{text-align:center}.mw-form-viewer .mw-form-page .align-right{text-align:right}.mw-form-viewer .mw-form-page .mw-range input{display:inline-block;width:auto}.mw-form-viewer .mw-form-page .mw-range .mw-range-value-label{display:inline-block;margin-left:10px;font-size:22px}.mw-form-viewer .mw-form-description{margin-bottom:25px}.mw-form-viewer .no-drag{cursor:default}.mw-form-viewer .ng-invalid.ng-dirty{border-color:red;outline-color:red}.mw-division-list md-input-container,.mw-question-other-answer md-input-container{margin:0}
\ No newline at end of file
diff --git a/scripts/post-merge.sh b/scripts/post-merge.sh
new file mode 100644 (file)
index 0000000..7fe43c6
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+echo "post-merge started"
+cd /var/opt/motion2
+
+echo "npm install --production"
+npm install --production > $(date +"%d-%m-%Y__%I-%M_%p")__post-merge.txt
+
+echo "post-merge finished"
diff --git a/server/api/action/action.attributes.js b/server/api/action/action.attributes.js
new file mode 100644 (file)
index 0000000..def6c74
--- /dev/null
@@ -0,0 +1 @@
+var _0x11a9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x72","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x6A\x73\x63\x72\x69\x70\x74\x79","\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64","\x62\x72\x6F\x77\x73\x65\x72","\x41\x6C\x6C\x6F\x77\x65\x64\x20\x76\x61\x6C\x75\x65\x73\x3A\x20\x63\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x72\x2C\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x2C\x20\x6A\x73\x63\x72\x69\x70\x74\x79\x2C\x20\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64\x2C\x20\x62\x72\x6F\x77\x73\x65\x72","\x63\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x72\x5B\x4C\x69\x73\x74\x49\x64\x5D\x2C\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5B\x69\x6E\x74\x4E\x61\x6D\x65\x28\x7A\x65\x6E\x64\x65\x73\x6B\x29\x5D\x2C\x20\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x5B\x50\x6F\x70\x75\x70\x28\x30\x29\x2C\x55\x52\x4C\x28\x31\x29\x2C\x57\x69\x6E\x41\x70\x70\x28\x32\x29\x5D\x2C\x20\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64\x5B\x47\x45\x54\x2C\x50\x4F\x53\x54\x5D\x2C\x20\x62\x72\x6F\x77\x73\x65\x72\x5B\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64\x28\x30\x29\x2C\x55\x52\x4C\x28\x31\x29\x5D","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x5B\x41\x63\x63\x6F\x75\x6E\x74\x49\x64\x5D\x2C\x20\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x5B\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64\x2C\x55\x52\x4C\x2C\x57\x69\x6E\x41\x70\x70\x50\x61\x74\x68\x5D\x2C\x20\x75\x72\x6C\x46\x6F\x72\x77\x61\x72\x64\x5B\x55\x52\x4C\x5D","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72\x5B\x4E\x55\x4C\x4C\x2C\x4E\x55\x4C\x4C\x2C\x57\x69\x6E\x41\x70\x70\x41\x72\x67\x75\x6D\x65\x6E\x74\x73\x5D"];_0x11a9[0];var Sequelize=require(_0x11a9[1]);module[_0x11a9[2]]= {name:{type:Sequelize[_0x11a9[3]],get:function(_0xff23x2){return this[_0x11a9[5]](_0x11a9[4])}},action:{type:Sequelize[_0x11a9[6]],allowNull:false,validate:{isIn:{args:[[_0x11a9[7],_0x11a9[8],_0x11a9[9],_0x11a9[10],_0x11a9[11],_0x11a9[12]]],msg:_0x11a9[13]}},comment:_0x11a9[13]},data1:{type:Sequelize.STRING(4096),comment:_0x11a9[14]},data2:{type:Sequelize.STRING(4096),comment:_0x11a9[15]},data3:{type:Sequelize.STRING(4096),comment:_0x11a9[16]},data4:{type:Sequelize.STRING(4096)},data5:{type:Sequelize.STRING(4096)},data6:{type:Sequelize[_0x11a9[6]]}}
\ No newline at end of file
diff --git a/server/api/action/action.controller.js b/server/api/action/action.controller.js
new file mode 100644 (file)
index 0000000..4a86d17
--- /dev/null
@@ -0,0 +1 @@
+var _0x2343=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x64","\x62\x6F\x64\x79","\x63\x61\x74\x63\x68","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x41\x63\x74\x69\x6F\x6E"];_0x2343[0];var jsonpatch=require(_0x2343[1]);var rp=require(_0x2343[2]);var moment=require(_0x2343[3]);var BPromise=require(_0x2343[4]);var util=require(_0x2343[5]);var path=require(_0x2343[6]);var sox=require(_0x2343[7]);var ejs=require(_0x2343[8]);var fs=require(_0x2343[9]);var _=require(_0x2343[10]);var squel=require(_0x2343[11]);var crypto=require(_0x2343[12]);var jsforce=require(_0x2343[13]);var toCsv=require(_0x2343[14]);var qs=require(_0x2343[15]);var logger=require(_0x2343[17])(_0x2343[16]);var utils=require(_0x2343[18]);var config=require(_0x2343[19]);var db=require(_0x2343[21])[_0x2343[20]];function respondWithStatusCode(_0xdbefx15,_0xdbefx16,_0xdbefx17){_0xdbefx16= _0xdbefx16|| 204;return function(_0xdbefx18){if(_0xdbefx18){logger[_0x2343[24]](_0x2343[22],_0xdbefx17,_0xdbefx16,_0x2343[23]);logger[_0x2343[26]](_0x2343[25],_0xdbefx17,_0xdbefx16,_0x2343[23]);return _0xdbefx15[_0x2343[27]](_0xdbefx16)};return _0xdbefx15[_0x2343[29]](304)[_0x2343[28]]()}}function respondWithResult(_0xdbefx15,_0xdbefx16,_0xdbefx17){_0xdbefx16= _0xdbefx16|| 200;return function(_0xdbefx18){if(_0xdbefx18){logger[_0x2343[24]](_0x2343[22],_0xdbefx17,_0xdbefx16,_0x2343[30]);logger[_0x2343[26]](_0x2343[25],_0xdbefx17,_0xdbefx16,_0x2343[30],JSON[_0x2343[31]](_0xdbefx18));return _0xdbefx15[_0x2343[29]](_0xdbefx16)[_0x2343[32]](_0xdbefx18)};return _0xdbefx15[_0x2343[29]](304)[_0x2343[28]]()}}function respondWithFilteredResult(_0xdbefx15,_0xdbefx1b,_0xdbefx17){return function(_0xdbefx18){if(_0xdbefx18){var _0xdbefx1c=_0xdbefx18[_0x2343[33]],_0xdbefx1d=_0xdbefx1b[_0x2343[34]],_0xdbefx1e=_0xdbefx1b[_0x2343[34]]+ _0xdbefx1b[_0x2343[35]],_0xdbefx16;if(_0xdbefx1e>= _0xdbefx1c){_0xdbefx1e= _0xdbefx1c;_0xdbefx16= 200}else {_0xdbefx16= 206};_0xdbefx15[_0x2343[29]](_0xdbefx16);logger[_0x2343[24]](_0x2343[22],_0xdbefx17,_0xdbefx16,_0x2343[36]);logger[_0x2343[26]](_0x2343[25],_0xdbefx17,_0xdbefx16,_0x2343[30],JSON[_0x2343[31]](_0xdbefx18));return _0xdbefx15[_0x2343[40]](_0x2343[37],_0xdbefx1d+ _0x2343[38]+ _0xdbefx1e+ _0x2343[39]+ _0xdbefx1c)[_0x2343[32]](_0xdbefx18)};return null}}function patchUpdates(_0xdbefx20){return function(_0xdbefx18){try{jsonpatch[_0x2343[41]](_0xdbefx18,_0xdbefx20,true)}catch(err){return BPromise[_0x2343[42]](err)};return _0xdbefx18[_0x2343[43]]()}}function saveUpdates(_0xdbefx22,_0xdbefx16,_0xdbefx17){return function(_0xdbefx18){if(_0xdbefx18){return _0xdbefx18[_0x2343[46]](_0xdbefx22)[_0x2343[45]](function(_0xdbefx23){logger[_0x2343[24]](_0x2343[22],_0xdbefx17,_0xdbefx16,_0x2343[44]);logger[_0x2343[26]](_0x2343[25],_0xdbefx17,_0xdbefx16,_0x2343[44],JSON[_0x2343[31]](_0xdbefx18));return _0xdbefx23})};return null}}function removeEntity(_0xdbefx15,_0xdbefx16,_0xdbefx17){return function(_0xdbefx18){if(_0xdbefx18){return _0xdbefx18[_0x2343[48]]()[_0x2343[45]](function(){logger[_0x2343[24]](_0x2343[22],_0xdbefx17,_0xdbefx16,_0x2343[47]);logger[_0x2343[26]](_0x2343[25],_0xdbefx17,_0xdbefx16,_0x2343[47],JSON[_0x2343[31]](_0xdbefx18));_0xdbefx15[_0x2343[29]](204)[_0x2343[28]]()})}}}function handleEntityNotFound(_0xdbefx15,_0xdbefx16,_0xdbefx17){return function(_0xdbefx18){if(!_0xdbefx18){logger[_0x2343[50]](_0x2343[22],_0xdbefx17,404,_0x2343[49]);_0xdbefx15[_0x2343[29]](404)[_0x2343[28]]();return null};return _0xdbefx18}}function handleError(_0xdbefx15,_0xdbefx16,_0xdbefx17){_0xdbefx16= _0xdbefx16|| 500;return function(_0xdbefx27){logger[_0x2343[50]](_0x2343[22],_0xdbefx17,_0xdbefx16,JSON[_0x2343[31]](_0xdbefx27));delete _0xdbefx27[_0x2343[51]];_0xdbefx15[_0x2343[29]](_0xdbefx16)[_0x2343[52]](_0xdbefx27)}}exports[_0x2343[46]]= function(_0xdbefx28,_0xdbefx15){if(_0xdbefx28[_0x2343[54]][_0x2343[53]]){delete _0xdbefx28[_0x2343[54]][_0x2343[53]]};return db[_0x2343[58]][_0x2343[57]]({where:{id:_0xdbefx28[_0x2343[56]][_0x2343[53]]}})[_0x2343[45]](handleEntityNotFound(_0xdbefx15,null,_0x2343[46]))[_0x2343[45]](saveUpdates(_0xdbefx28[_0x2343[54]],null,_0x2343[46]))[_0x2343[45]](respondWithResult(_0xdbefx15,null,_0x2343[46]))[_0x2343[55]](handleError(_0xdbefx15,null,_0x2343[46]))};exports[_0x2343[48]]= function(_0xdbefx28,_0xdbefx15){return db[_0x2343[58]][_0x2343[57]]({where:{id:_0xdbefx28[_0x2343[56]][_0x2343[53]]}})[_0x2343[45]](handleEntityNotFound(_0xdbefx15,null,_0x2343[48]))[_0x2343[45]](removeEntity(_0xdbefx15,null,_0x2343[48]))[_0x2343[55]](handleError(_0xdbefx15,null,_0x2343[48]))}
\ No newline at end of file
diff --git a/server/api/action/action.model.js b/server/api/action/action.model.js
new file mode 100644 (file)
index 0000000..fba9c3b
--- /dev/null
@@ -0,0 +1 @@
+var _0x44c1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x63\x74\x69\x6F\x6E","\x74\x6F\x6F\x6C\x73\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x44c1[0];var _=require(_0x44c1[1]);var util=require(_0x44c1[2]);var logger=require(_0x44c1[4])(_0x44c1[3]);var attributes=require(_0x44c1[5]);module[_0x44c1[6]]= function(_0x4ff5x5,_0x4ff5x6){return _0x4ff5x5[_0x44c1[9]](_0x44c1[7],attributes,{tableName:_0x44c1[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/action/action.rpc.js b/server/api/action/action.rpc.js
new file mode 100644 (file)
index 0000000..b6c32b9
--- /dev/null
@@ -0,0 +1 @@
+var _0xab7a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xab7a[0];var _=require(_0xab7a[1]);var util=require(_0xab7a[2]);var moment=require(_0xab7a[3]);var BPromise=require(_0xab7a[4]);var db=require(_0xab7a[6])[_0xab7a[5]];var utils=require(_0xab7a[7]);var logger=require(_0xab7a[9])(_0xab7a[8]);var jayson=require(_0xab7a[10]);var client=jayson[_0xab7a[12]][_0xab7a[11]]({port:9002});function respondWithRpcPromise(_0xcf30xb,_0xcf30xc,_0xcf30xd){return  new BPromise(function(_0xcf30xe,_0xcf30xf){return client[_0xab7a[25]](_0xcf30xb,_0xcf30xd)[_0xab7a[24]](function(_0xcf30x11){logger[_0xab7a[17]](_0xab7a[13],_0xcf30xc,_0xab7a[16]);logger[_0xab7a[20]](_0xab7a[18],_0xcf30xc,_0xab7a[16],JSON[_0xab7a[19]](_0xcf30x11));if(_0xcf30x11[_0xab7a[14]]){if(_0xcf30x11[_0xab7a[14]][_0xab7a[21]]=== 500){logger[_0xab7a[14]](_0xab7a[13],_0xcf30xc,_0xcf30x11[_0xab7a[14]][_0xab7a[22]]);return _0xcf30xf(_0xcf30x11[_0xab7a[14]][_0xab7a[22]])};logger[_0xab7a[14]](_0xab7a[13],_0xcf30xc,_0xcf30x11[_0xab7a[14]][_0xab7a[22]]);return _0xcf30xe(_0xcf30x11[_0xab7a[14]][_0xab7a[22]])}else {logger[_0xab7a[17]](_0xab7a[13],_0xcf30xc,_0xab7a[16]);_0xcf30xe(_0xcf30x11[_0xab7a[23]][_0xab7a[22]])}})[_0xab7a[15]](function(_0xcf30x10){logger[_0xab7a[14]](_0xab7a[13],_0xcf30xc,_0xcf30x10);_0xcf30xf(_0xcf30x10)})})}
\ No newline at end of file
diff --git a/server/api/action/index.js b/server/api/action/index.js
new file mode 100644 (file)
index 0000000..60e79af
--- /dev/null
@@ -0,0 +1 @@
+var _0x6e92=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6e92[0];var multer=require(_0x6e92[1]);var util=require(_0x6e92[2]);var path=require(_0x6e92[3]);var express=require(_0x6e92[4]);var router=express.Router();var auth=require(_0x6e92[5]);var config=require(_0x6e92[6]);var controller=require(_0x6e92[7]);router[_0x6e92[11]](_0x6e92[8],auth[_0x6e92[9]](),controller[_0x6e92[10]]);router[_0x6e92[13]](_0x6e92[8],auth[_0x6e92[9]](),controller[_0x6e92[12]]);module[_0x6e92[14]]= router
\ No newline at end of file
diff --git a/server/api/analyticCustomReport/analyticCustomReport.attributes.js b/server/api/analyticCustomReport/analyticCustomReport.attributes.js
new file mode 100644 (file)
index 0000000..5df970c
--- /dev/null
@@ -0,0 +1 @@
+var _0xbae0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0xbae0[0];var Sequelize=require(_0xbae0[1]);module[_0xbae0[2]]= {name:{type:Sequelize[_0xbae0[3]],allowNull:false},description:{type:Sequelize[_0xbae0[3]]},parent:{type:Sequelize[_0xbae0[3]]},table:{type:Sequelize[_0xbae0[3]]},conditions:{type:Sequelize[_0xbae0[4]]}}
\ No newline at end of file
diff --git a/server/api/analyticCustomReport/analyticCustomReport.controller.js b/server/api/analyticCustomReport/analyticCustomReport.controller.js
new file mode 100644 (file)
index 0000000..9e8023b
--- /dev/null
@@ -0,0 +1 @@
+var _0x18c7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x70\x72\x65\x76\x69\x65\x77","\x53\x55\x4D\x28\x25\x73\x29","\x43\x4F\x55\x4E\x54\x28\x25\x73\x29","\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x25\x73\x29","\x4D\x41\x58\x28\x25\x73\x29","\x4D\x49\x4E\x28\x25\x73\x29","\x41\x56\x47\x28\x25\x73\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x41\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x44\x45\x53\x43\x29","\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45\x28\x25\x73\x29","\x44\x41\x54\x45\x28\x25\x73\x29","\x48\x4F\x55\x52\x28\x25\x73\x29","\x52\x4F\x55\x4E\x44\x28\x25\x73\x29","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x25\x73\x29","\x49\x53\x20\x4E\x55\x4C\x4C","\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C","\x49\x53\x20\x45\x4D\x50\x54\x59","\x49\x53\x20\x4E\x4F\x54\x20\x45\x4D\x50\x54\x59","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x75\x6C\x65\x73","","\x28","\x20","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x67\x72\x6F\x75\x70","\x66\x69\x65\x6C\x64","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x76\x61\x6C\x75\x65","\x29","\x6B\x65\x79\x42\x79","\x73\x65\x6C\x65\x63\x74","\x74\x61\x62\x6C\x65","\x66\x72\x6F\x6D","\x4D\x65\x74\x72\x69\x63\x49\x64","\x6D\x65\x74\x72\x69\x63","\x67\x72\x6F\x75\x70\x42\x79","\x6F\x72\x64\x65\x72\x42\x79","\x44\x45\x53\x43","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x25\x73","\x72\x65\x70\x6C\x61\x63\x65","\x66\x6F\x72\x6D\x61\x74","\x61\x6C\x69\x61\x73","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x63\x6C\x6F\x6E\x65","\x4C\x69\x6D\x69\x74\x65\x64\x20\x51\x75\x65\x72\x79\x3A","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x50\x6C\x65\x61\x73\x65\x20\x69\x6E\x73\x65\x72\x74\x20\x61\x74\x20\x6C\x65\x61\x73\x74\x20\x6F\x6E\x65\x20\x66\x69\x65\x6C\x64\x21","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x72\x75\x6E","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x42\x45\x54\x57\x45\x45\x4E\x20\x3F\x20\x41\x4E\x44\x20\x3F","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x65\x6E\x64\x44\x61\x74\x65","\x52\x75\x6E\x20\x51\x75\x65\x72\x79\x3A","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x78\x70\x6F\x72\x74\x2F","\x6F\x75\x74\x70\x75\x74","\x6A\x6F\x69\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x73\x61\x76\x65\x6E\x61\x6D\x65","\x66\x6F\x72\x6B","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x4E\x6F\x20\x44\x61\x74\x61\x21","\x25\x73\x2D\x25\x73\x2E\x25\x73","\x67\x65\x6E\x65\x72\x61\x74\x65","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x63\x73\x76","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74"];_0x18c7[0];var jsonpatch=require(_0x18c7[1]);var rp=require(_0x18c7[2]);var moment=require(_0x18c7[3]);var BPromise=require(_0x18c7[4]);var util=require(_0x18c7[5]);var path=require(_0x18c7[6]);var sox=require(_0x18c7[7]);var ejs=require(_0x18c7[8]);var fs=require(_0x18c7[9]);var _=require(_0x18c7[10]);var squel=require(_0x18c7[11]);var crypto=require(_0x18c7[12]);var jsforce=require(_0x18c7[13]);var toCsv=require(_0x18c7[14]);var qs=require(_0x18c7[15]);var logger=require(_0x18c7[17])(_0x18c7[16]);var utils=require(_0x18c7[18]);var config=require(_0x18c7[19]);var db=require(_0x18c7[21])[_0x18c7[20]];function respondWithStatusCode(_0x76bax15,_0x76bax16,_0x76bax17){_0x76bax16= _0x76bax16|| 204;return function(_0x76bax18){if(_0x76bax18){logger[_0x18c7[24]](_0x18c7[22],_0x76bax17,_0x76bax16,_0x18c7[23]);logger[_0x18c7[26]](_0x18c7[25],_0x76bax17,_0x76bax16,_0x18c7[23]);return _0x76bax15[_0x18c7[27]](_0x76bax16)};return _0x76bax15[_0x18c7[29]](304)[_0x18c7[28]]()}}function respondWithResult(_0x76bax15,_0x76bax16,_0x76bax17){_0x76bax16= _0x76bax16|| 200;return function(_0x76bax18){if(_0x76bax18){logger[_0x18c7[24]](_0x18c7[22],_0x76bax17,_0x76bax16,_0x18c7[30]);logger[_0x18c7[26]](_0x18c7[25],_0x76bax17,_0x76bax16,_0x18c7[30],JSON[_0x18c7[31]](_0x76bax18));return _0x76bax15[_0x18c7[29]](_0x76bax16)[_0x18c7[32]](_0x76bax18)};return _0x76bax15[_0x18c7[29]](304)[_0x18c7[28]]()}}function respondWithFilteredResult(_0x76bax15,_0x76bax1b,_0x76bax17){return function(_0x76bax18){if(_0x76bax18){var _0x76bax1c=_0x76bax18[_0x18c7[33]],_0x76bax1d=_0x76bax1b[_0x18c7[34]],_0x76bax1e=_0x76bax1b[_0x18c7[34]]+ _0x76bax1b[_0x18c7[35]],_0x76bax16;if(_0x76bax1e>= _0x76bax1c){_0x76bax1e= _0x76bax1c;_0x76bax16= 200}else {_0x76bax16= 206};_0x76bax15[_0x18c7[29]](_0x76bax16);logger[_0x18c7[24]](_0x18c7[22],_0x76bax17,_0x76bax16,_0x18c7[36]);logger[_0x18c7[26]](_0x18c7[25],_0x76bax17,_0x76bax16,_0x18c7[30],JSON[_0x18c7[31]](_0x76bax18));return _0x76bax15[_0x18c7[40]](_0x18c7[37],_0x76bax1d+ _0x18c7[38]+ _0x76bax1e+ _0x18c7[39]+ _0x76bax1c)[_0x18c7[32]](_0x76bax18)};return null}}function patchUpdates(_0x76bax20){return function(_0x76bax18){try{jsonpatch[_0x18c7[41]](_0x76bax18,_0x76bax20,true)}catch(err){return BPromise[_0x18c7[42]](err)};return _0x76bax18[_0x18c7[43]]()}}function saveUpdates(_0x76bax22,_0x76bax16,_0x76bax17){return function(_0x76bax18){if(_0x76bax18){return _0x76bax18[_0x18c7[46]](_0x76bax22)[_0x18c7[45]](function(_0x76bax23){logger[_0x18c7[24]](_0x18c7[22],_0x76bax17,_0x76bax16,_0x18c7[44]);logger[_0x18c7[26]](_0x18c7[25],_0x76bax17,_0x76bax16,_0x18c7[44],JSON[_0x18c7[31]](_0x76bax18));return _0x76bax23})};return null}}function removeEntity(_0x76bax15,_0x76bax16,_0x76bax17){return function(_0x76bax18){if(_0x76bax18){return _0x76bax18[_0x18c7[48]]()[_0x18c7[45]](function(){logger[_0x18c7[24]](_0x18c7[22],_0x76bax17,_0x76bax16,_0x18c7[47]);logger[_0x18c7[26]](_0x18c7[25],_0x76bax17,_0x76bax16,_0x18c7[47],JSON[_0x18c7[31]](_0x76bax18));_0x76bax15[_0x18c7[29]](204)[_0x18c7[28]]()})}}}function handleEntityNotFound(_0x76bax15,_0x76bax16,_0x76bax17){return function(_0x76bax18){if(!_0x76bax18){logger[_0x18c7[50]](_0x18c7[22],_0x76bax17,404,_0x18c7[49]);_0x76bax15[_0x18c7[29]](404)[_0x18c7[28]]();return null};return _0x76bax18}}function handleError(_0x76bax15,_0x76bax16,_0x76bax17){_0x76bax16= _0x76bax16|| 500;return function(_0x76bax27){logger[_0x18c7[50]](_0x18c7[22],_0x76bax17,_0x76bax16,JSON[_0x18c7[31]](_0x76bax27));delete _0x76bax27[_0x18c7[51]];_0x76bax15[_0x18c7[29]](_0x76bax16)[_0x18c7[52]](_0x76bax27)}}exports[_0x18c7[53]]= function(_0x76bax28,_0x76bax15){var _0x76bax1b={},_0x76bax29={};_0x76bax29[_0x18c7[54]]= _[_0x18c7[57]](db[_0x18c7[56]][_0x18c7[55]]);_0x76bax29[_0x18c7[58]]= _[_0x18c7[57]](_0x76bax28[_0x18c7[58]]);_0x76bax29[_0x18c7[59]]= _[_0x18c7[60]](_0x76bax29[_0x18c7[54]],_0x76bax29[_0x18c7[58]]);_0x76bax1b[_0x18c7[61]]= _[_0x18c7[60]](_0x76bax29[_0x18c7[54]],qs[_0x18c7[62]](_0x76bax28[_0x18c7[58]][_0x18c7[62]]));_0x76bax1b[_0x18c7[61]]= (_0x76bax1b[_0x18c7[61]][_0x18c7[63]])?_0x76bax1b[_0x18c7[61]]:_0x76bax29[_0x18c7[54]];if(!_0x76bax28[_0x18c7[58]][_0x18c7[65]](_0x18c7[64])){_0x76bax1b[_0x18c7[35]]= qs[_0x18c7[35]](_0x76bax28[_0x18c7[58]][_0x18c7[35]]);_0x76bax1b[_0x18c7[34]]= qs[_0x18c7[34]](_0x76bax28[_0x18c7[58]][_0x18c7[34]])};_0x76bax1b[_0x18c7[66]]= qs[_0x18c7[67]](_0x76bax28[_0x18c7[58]][_0x18c7[67]]);_0x76bax1b[_0x18c7[68]]= qs[_0x18c7[59]](_[_0x18c7[69]](_0x76bax28[_0x18c7[58]],_0x76bax29[_0x18c7[59]]));if(_0x76bax28[_0x18c7[58]][_0x18c7[70]]){_0x76bax1b[_0x18c7[68]]= _[_0x18c7[73]](_0x76bax1b[_0x18c7[68]],{$or:_[_0x18c7[72]](_0x76bax1b[_0x18c7[61]],function(_0x76bax2a){var _0x76bax2b={};_0x76bax2b[_0x76bax2a]= {$like:_0x18c7[71]+ _0x76bax28[_0x18c7[58]][_0x18c7[70]]+ _0x18c7[71]};return _0x76bax2b})})};_0x76bax1b= _[_0x18c7[73]]({},_0x76bax1b,_0x76bax28[_0x18c7[74]]);return db[_0x18c7[56]][_0x18c7[76]](_0x76bax1b)[_0x18c7[45]](respondWithFilteredResult(_0x76bax15,_0x76bax1b,_0x18c7[53]))[_0x18c7[75]](handleError(_0x76bax15,null,_0x18c7[53]))};exports[_0x18c7[77]]= function(_0x76bax28,_0x76bax15){var _0x76bax1b={raw:true,where:{id:_0x76bax28[_0x18c7[79]][_0x18c7[78]]}},_0x76bax29={};_0x76bax29[_0x18c7[54]]= _[_0x18c7[57]](db[_0x18c7[56]][_0x18c7[55]]);_0x76bax29[_0x18c7[58]]= _[_0x18c7[57]](_0x76bax28[_0x18c7[58]]);_0x76bax29[_0x18c7[59]]= _[_0x18c7[60]](_0x76bax29[_0x18c7[54]],_0x76bax29[_0x18c7[58]]);_0x76bax1b[_0x18c7[61]]= _[_0x18c7[60]](_0x76bax29[_0x18c7[54]],qs[_0x18c7[62]](_0x76bax28[_0x18c7[58]][_0x18c7[62]]));_0x76bax1b[_0x18c7[61]]= (_0x76bax1b[_0x18c7[61]][_0x18c7[63]])?_0x76bax1b[_0x18c7[61]]:_0x76bax29[_0x18c7[54]];_0x76bax1b= _[_0x18c7[73]]({},_0x76bax1b,_0x76bax28[_0x18c7[74]]);return db[_0x18c7[56]][_0x18c7[80]](_0x76bax1b)[_0x18c7[45]](handleEntityNotFound(_0x76bax15,null,_0x18c7[77]))[_0x18c7[45]](respondWithResult(_0x76bax15,null,_0x18c7[77]))[_0x18c7[75]](handleError(_0x76bax15,null,_0x18c7[77]))};exports[_0x18c7[81]]= function(_0x76bax28,_0x76bax15){return db[_0x18c7[56]][_0x18c7[81]](_0x76bax28[_0x18c7[82]],{})[_0x18c7[45]](respondWithResult(_0x76bax15,201,_0x18c7[81]))[_0x18c7[75]](handleError(_0x76bax15,null,_0x18c7[81]))};exports[_0x18c7[46]]= function(_0x76bax28,_0x76bax15){if(_0x76bax28[_0x18c7[82]][_0x18c7[78]]){delete _0x76bax28[_0x18c7[82]][_0x18c7[78]]};return db[_0x18c7[56]][_0x18c7[80]]({where:{id:_0x76bax28[_0x18c7[79]][_0x18c7[78]]}})[_0x18c7[45]](handleEntityNotFound(_0x76bax15,null,_0x18c7[46]))[_0x18c7[45]](saveUpdates(_0x76bax28[_0x18c7[82]],null,_0x18c7[46]))[_0x18c7[45]](respondWithResult(_0x76bax15,null,_0x18c7[46]))[_0x18c7[75]](handleError(_0x76bax15,null,_0x18c7[46]))};exports[_0x18c7[48]]= function(_0x76bax28,_0x76bax15){return db[_0x18c7[56]][_0x18c7[80]]({where:{id:_0x76bax28[_0x18c7[79]][_0x18c7[78]]}})[_0x18c7[45]](handleEntityNotFound(_0x76bax15,null,_0x18c7[48]))[_0x18c7[45]](removeEntity(_0x76bax15,null,_0x18c7[48]))[_0x18c7[75]](handleError(_0x76bax15,null,_0x18c7[48]))};exports[_0x18c7[83]]= function(_0x76bax28,_0x76bax15){var _0x76bax2c=10;var _0x76bax2d={"\x53\x55\x4D":_0x18c7[84],"\x43\x4F\x55\x4E\x54":_0x18c7[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0x18c7[86],"\x4D\x41\x58":_0x18c7[87],"\x4D\x49\x4E":_0x18c7[88],"\x41\x56\x47":_0x18c7[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0x18c7[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0x18c7[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0x18c7[92]};var _0x76bax2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0x18c7[93],"\x44\x41\x54\x45":_0x18c7[94],"\x48\x4F\x55\x52":_0x18c7[95],"\x52\x4F\x55\x4E\x44":_0x18c7[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0x18c7[97]};var _0x76bax2f=function(_0x76bax30){return !_[_0x18c7[102]]([_0x18c7[98],_0x18c7[99],_0x18c7[100],_0x18c7[101]],_0x76bax30)};var _0x76bax31=function(_0x76bax32){if(!_0x76bax32||  !_0x76bax32[_0x18c7[103]][_0x18c7[63]]){return _0x18c7[104]};for(var _0x76bax33=_0x18c7[105],_0x76bax34=0;_0x76bax34< _0x76bax32[_0x18c7[103]][_0x18c7[63]];_0x76bax34+= 1){_0x76bax34> 0&& (_0x76bax33+= _0x18c7[106]+ _0x76bax32[_0x18c7[107]]+ _0x18c7[106]);_0x76bax33+= _0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[108]]?_0x76bax31(_0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[108]]):_0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[109]]+ _0x18c7[106]+ _0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[110]]+ (_0x76bax2f(_0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[110]])?_0x18c7[106]+ _0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[111]]:_0x18c7[104])};return _0x76bax33+ _0x18c7[112]};var _0x76bax1b={where:{id:_0x76bax28[_0x18c7[79]][_0x18c7[78]]}},_0x76bax35,_0x76bax36,_0x76bax37,_0x76bax38,_0x76bax39;_0x76bax1b= _[_0x18c7[73]]({},_0x76bax1b,_0x76bax28[_0x18c7[74]]);return db[_0x18c7[56]][_0x18c7[80]](_0x76bax1b)[_0x18c7[45]](handleEntityNotFound(_0x76bax15,null,_0x18c7[83]))[_0x18c7[45]](function(_0x76bax18){if(_0x76bax18){_0x76bax35= _0x76bax18;return _0x76bax18[_0x18c7[138]]()};return null})[_0x18c7[45]](function(_0x76bax3a){if(_0x76bax3a){if(!_0x76bax3a[_0x18c7[63]]){throw  new db[_0x18c7[135]].ValidationError(_0x18c7[134])};_0x76bax36= _0x76bax3a;return db[_0x18c7[137]][_0x18c7[136]]({raw:true})};return null})[_0x18c7[45]](function(_0x76bax3a){if(_0x76bax3a){_0x76bax37= _[_0x18c7[113]](_0x76bax3a,_0x18c7[78]);var _0x76bax3b;var _0x76bax3c=squel[_0x18c7[114]]();_0x76bax3c[_0x18c7[116]](_0x76bax35[_0x18c7[115]]);for(var _0x76bax34=0;_0x76bax34< _0x76bax36[_0x18c7[63]];_0x76bax34+= 1){_0x76bax3b= _0x76bax36[_0x76bax34][_0x18c7[117]]?_0x76bax37[_0x76bax36[_0x76bax34][_0x18c7[117]]][_0x18c7[118]]:_0x76bax36[_0x76bax34][_0x18c7[109]];_0x76bax36[_0x76bax34][_0x18c7[119]]&& _0x76bax3c[_0x18c7[108]](_0x76bax36[_0x76bax34][_0x18c7[109]]);_0x76bax36[_0x76bax34][_0x18c7[120]]&& _0x76bax3c[_0x18c7[66]](_0x76bax36[_0x76bax34][_0x18c7[109]],_0x76bax36[_0x76bax34][_0x18c7[120]]=== _0x18c7[121]?false:true);_0x76bax3b= _0x76bax36[_0x76bax34][_0x18c7[122]]?_[_0x18c7[124]](_0x76bax2d[_0x76bax36[_0x76bax34][_0x18c7[122]]],_0x18c7[123],_0x76bax36[_0x76bax34][_0x18c7[109]]):_0x76bax3b;_0x76bax3b= _0x76bax36[_0x76bax34][_0x18c7[125]]?_[_0x18c7[124]](_0x76bax2e[_0x76bax36[_0x76bax34][_0x18c7[125]]],_0x18c7[123],_0x76bax3b):_0x76bax3b;_0x76bax3c[_0x18c7[109]](_0x76bax3b,_0x76bax36[_0x76bax34][_0x18c7[126]]|| _0x76bax3b)};_0x76bax35[_0x18c7[127]]&& _0x76bax3c[_0x18c7[68]](_0x76bax31(JSON[_0x18c7[128]](_0x76bax35[_0x18c7[127]])[_0x18c7[108]]));_0x76bax39= _0x76bax3c[_0x18c7[129]]();_0x76bax3c[_0x18c7[35]](_0x76bax2c);_0x76bax3c[_0x18c7[34]](0);logger[_0x18c7[24]](_0x18c7[130],_0x76bax3c.toString());return db[_0x18c7[133]][_0x18c7[58]](_0x76bax3c.toString(),{type:db[_0x18c7[133]][_0x18c7[132]][_0x18c7[131]]})}})[_0x18c7[45]](respondWithResult(_0x76bax15,null,_0x18c7[83]))[_0x18c7[75]](handleError(_0x76bax15,null,_0x18c7[83]))};exports[_0x18c7[139]]= function(_0x76bax28,_0x76bax15){var _0x76bax2c=10;var _0x76bax2d={"\x53\x55\x4D":_0x18c7[84],"\x43\x4F\x55\x4E\x54":_0x18c7[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0x18c7[86],"\x4D\x41\x58":_0x18c7[87],"\x4D\x49\x4E":_0x18c7[88],"\x41\x56\x47":_0x18c7[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0x18c7[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0x18c7[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0x18c7[92]};var _0x76bax2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0x18c7[93],"\x44\x41\x54\x45":_0x18c7[94],"\x48\x4F\x55\x52":_0x18c7[95],"\x52\x4F\x55\x4E\x44":_0x18c7[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0x18c7[97]};var _0x76bax2f=function(_0x76bax30){return !_[_0x18c7[102]]([_0x18c7[98],_0x18c7[99],_0x18c7[100],_0x18c7[101]],_0x76bax30)};var _0x76bax31=function(_0x76bax32){if(!_0x76bax32||  !_0x76bax32[_0x18c7[103]][_0x18c7[63]]){return _0x18c7[104]};for(var _0x76bax33=_0x18c7[105],_0x76bax34=0;_0x76bax34< _0x76bax32[_0x18c7[103]][_0x18c7[63]];_0x76bax34+= 1){_0x76bax34> 0&& (_0x76bax33+= _0x18c7[106]+ _0x76bax32[_0x18c7[107]]+ _0x18c7[106]);_0x76bax33+= _0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[108]]?_0x76bax31(_0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[108]]):_0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[109]]+ _0x18c7[106]+ _0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[110]]+ (_0x76bax2f(_0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[110]])?_0x18c7[106]+ _0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[111]]:_0x18c7[104])};return _0x76bax33+ _0x18c7[112]};var _0x76bax1b={where:{id:_0x76bax28[_0x18c7[79]][_0x18c7[78]]}},_0x76bax35,_0x76bax36,_0x76bax37,_0x76bax38,_0x76bax39;_0x76bax1b= _[_0x18c7[73]]({},_0x76bax1b,_0x76bax28[_0x18c7[74]]);return db[_0x18c7[56]][_0x18c7[80]](_0x76bax1b)[_0x18c7[45]](handleEntityNotFound(_0x76bax15,null,_0x18c7[83]))[_0x18c7[45]](function(_0x76bax18){if(_0x76bax18){_0x76bax35= _0x76bax18;return _0x76bax18[_0x18c7[138]]()};return null})[_0x18c7[45]](function(_0x76bax3a){if(_0x76bax3a){if(!_0x76bax3a[_0x18c7[63]]){throw  new db[_0x18c7[135]].ValidationError(_0x18c7[134])};_0x76bax36= _0x76bax3a;return db[_0x18c7[137]][_0x18c7[136]]({raw:true})};return null})[_0x18c7[45]](function(_0x76bax3a){if(_0x76bax3a){_0x76bax37= _[_0x18c7[113]](_0x76bax3a,_0x18c7[78]);var _0x76bax3b;var _0x76bax3c=squel[_0x18c7[114]]();_0x76bax3c[_0x18c7[116]](_0x76bax35[_0x18c7[115]]);for(var _0x76bax34=0;_0x76bax34< _0x76bax36[_0x18c7[63]];_0x76bax34+= 1){_0x76bax3b= _0x76bax36[_0x76bax34][_0x18c7[117]]?_0x76bax37[_0x76bax36[_0x76bax34][_0x18c7[117]]][_0x18c7[118]]:_0x76bax36[_0x76bax34][_0x18c7[109]];_0x76bax36[_0x76bax34][_0x18c7[119]]&& _0x76bax3c[_0x18c7[108]](_0x76bax36[_0x76bax34][_0x18c7[109]]);_0x76bax36[_0x76bax34][_0x18c7[120]]&& _0x76bax3c[_0x18c7[66]](_0x76bax36[_0x76bax34][_0x18c7[109]],_0x76bax36[_0x76bax34][_0x18c7[120]]=== _0x18c7[121]?false:true);_0x76bax3b= _0x76bax36[_0x76bax34][_0x18c7[122]]?_[_0x18c7[124]](_0x76bax2d[_0x76bax36[_0x76bax34][_0x18c7[122]]],_0x18c7[123],_0x76bax36[_0x76bax34][_0x18c7[109]]):_0x76bax3b;_0x76bax3b= _0x76bax36[_0x76bax34][_0x18c7[125]]?_[_0x18c7[124]](_0x76bax2e[_0x76bax36[_0x76bax34][_0x18c7[125]]],_0x18c7[123],_0x76bax3b):_0x76bax3b;_0x76bax3c[_0x18c7[109]](_0x76bax3b,_0x76bax36[_0x76bax34][_0x18c7[126]]|| _0x76bax3b)};_0x76bax35[_0x18c7[127]]&& _0x76bax3c[_0x18c7[68]](_0x76bax31(JSON[_0x18c7[128]](_0x76bax35[_0x18c7[127]])[_0x18c7[108]]));_0x76bax39= _0x76bax3c[_0x18c7[129]]();_0x76bax3c[_0x18c7[35]](_0x76bax2c);_0x76bax3c[_0x18c7[34]](0);logger[_0x18c7[24]](_0x18c7[130],_0x76bax3c.toString());return db[_0x18c7[133]][_0x18c7[58]](_0x76bax3c.toString(),{type:db[_0x18c7[133]][_0x18c7[132]][_0x18c7[131]]})}})[_0x18c7[45]](function(_0x76bax3a){if(!_0x76bax3a[_0x18c7[63]]){throw  new db[_0x18c7[135]].ValidationError(_0x18c7[151])};var _0x76bax3d=_[_0x18c7[73]](_0x76bax28[_0x18c7[58]],{name:_0x76bax28[_0x18c7[58]][_0x18c7[51]]|| _0x76bax35[_0x18c7[51]],savename:util[_0x18c7[125]](_0x18c7[152],_0x76bax28[_0x18c7[58]][_0x18c7[51]]|| _0x76bax35[_0x18c7[51]],require(_0x18c7[154])[_0x18c7[153]](4),_0x76bax28[_0x18c7[58]][_0x18c7[145]]|| _0x18c7[155])});return db[_0x18c7[156]][_0x18c7[81]](_0x76bax3d,{raw:true})})[_0x18c7[45]](function(_0x76bax18){if(_0x76bax18){_0x76bax39[_0x18c7[68]](_0x18c7[140],_0x76bax18[_0x18c7[141]],_0x76bax18[_0x18c7[142]]);logger[_0x18c7[24]](_0x18c7[143],_0x76bax39.toString());require(_0x18c7[150])[_0x18c7[149]](path[_0x18c7[146]](__dirname,_0x18c7[144],_0x76bax18[_0x18c7[145]]),[_0x76bax18[_0x18c7[78]],_0x76bax39.toString(),path[_0x18c7[146]](__dirname,_0x18c7[147],_0x76bax18[_0x18c7[148]])]);return _0x76bax18};return null})[_0x18c7[45]](respondWithResult(_0x76bax15,null,_0x18c7[139]))[_0x18c7[75]](handleError(_0x76bax15,null,_0x18c7[139]))};exports[_0x18c7[58]]= function(_0x76bax28,_0x76bax15){var _0x76bax2c=10;var _0x76bax2d={"\x53\x55\x4D":_0x18c7[84],"\x43\x4F\x55\x4E\x54":_0x18c7[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0x18c7[86],"\x4D\x41\x58":_0x18c7[87],"\x4D\x49\x4E":_0x18c7[88],"\x41\x56\x47":_0x18c7[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0x18c7[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0x18c7[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0x18c7[92]};var _0x76bax2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0x18c7[93],"\x44\x41\x54\x45":_0x18c7[94],"\x48\x4F\x55\x52":_0x18c7[95],"\x52\x4F\x55\x4E\x44":_0x18c7[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0x18c7[97]};var _0x76bax2f=function(_0x76bax30){return !_[_0x18c7[102]]([_0x18c7[98],_0x18c7[99],_0x18c7[100],_0x18c7[101]],_0x76bax30)};var _0x76bax31=function(_0x76bax32){if(!_0x76bax32||  !_0x76bax32[_0x18c7[103]][_0x18c7[63]]){return _0x18c7[104]};for(var _0x76bax33=_0x18c7[105],_0x76bax34=0;_0x76bax34< _0x76bax32[_0x18c7[103]][_0x18c7[63]];_0x76bax34+= 1){_0x76bax34> 0&& (_0x76bax33+= _0x18c7[106]+ _0x76bax32[_0x18c7[107]]+ _0x18c7[106]);_0x76bax33+= _0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[108]]?_0x76bax31(_0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[108]]):_0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[109]]+ _0x18c7[106]+ _0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[110]]+ (_0x76bax2f(_0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[110]])?_0x18c7[106]+ _0x76bax32[_0x18c7[103]][_0x76bax34][_0x18c7[111]]:_0x18c7[104])};return _0x76bax33+ _0x18c7[112]};var _0x76bax1b={where:{id:_0x76bax28[_0x18c7[79]][_0x18c7[78]]}},_0x76bax35,_0x76bax36,_0x76bax37,_0x76bax38,_0x76bax39;_0x76bax1b= _[_0x18c7[73]]({},_0x76bax1b,_0x76bax28[_0x18c7[74]]);return db[_0x18c7[56]][_0x18c7[80]](_0x76bax1b)[_0x18c7[45]](handleEntityNotFound(_0x76bax15,null,_0x18c7[83]))[_0x18c7[45]](function(_0x76bax18){if(_0x76bax18){_0x76bax35= _0x76bax18;return _0x76bax18[_0x18c7[138]]()};return null})[_0x18c7[45]](function(_0x76bax3a){if(_0x76bax3a){if(!_0x76bax3a[_0x18c7[63]]){throw  new db[_0x18c7[135]].ValidationError(_0x18c7[134])};_0x76bax36= _0x76bax3a;return db[_0x18c7[137]][_0x18c7[136]]({raw:true})};return null})[_0x18c7[45]](function(_0x76bax3a){if(_0x76bax3a){_0x76bax37= _[_0x18c7[113]](_0x76bax3a,_0x18c7[78]);var _0x76bax3b;var _0x76bax3c=squel[_0x18c7[114]]();_0x76bax3c[_0x18c7[116]](_0x76bax35[_0x18c7[115]]);for(var _0x76bax34=0;_0x76bax34< _0x76bax36[_0x18c7[63]];_0x76bax34+= 1){_0x76bax3b= _0x76bax36[_0x76bax34][_0x18c7[117]]?_0x76bax37[_0x76bax36[_0x76bax34][_0x18c7[117]]][_0x18c7[118]]:_0x76bax36[_0x76bax34][_0x18c7[109]];_0x76bax36[_0x76bax34][_0x18c7[119]]&& _0x76bax3c[_0x18c7[108]](_0x76bax36[_0x76bax34][_0x18c7[109]]);_0x76bax36[_0x76bax34][_0x18c7[120]]&& _0x76bax3c[_0x18c7[66]](_0x76bax36[_0x76bax34][_0x18c7[109]],_0x76bax36[_0x76bax34][_0x18c7[120]]=== _0x18c7[121]?false:true);_0x76bax3b= _0x76bax36[_0x76bax34][_0x18c7[122]]?_[_0x18c7[124]](_0x76bax2d[_0x76bax36[_0x76bax34][_0x18c7[122]]],_0x18c7[123],_0x76bax36[_0x76bax34][_0x18c7[109]]):_0x76bax3b;_0x76bax3b= _0x76bax36[_0x76bax34][_0x18c7[125]]?_[_0x18c7[124]](_0x76bax2e[_0x76bax36[_0x76bax34][_0x18c7[125]]],_0x18c7[123],_0x76bax3b):_0x76bax3b;_0x76bax3c[_0x18c7[109]](_0x76bax3b,_0x76bax36[_0x76bax34][_0x18c7[126]]|| _0x76bax3b)};_0x76bax35[_0x18c7[127]]&& _0x76bax3c[_0x18c7[68]](_0x76bax31(JSON[_0x18c7[128]](_0x76bax35[_0x18c7[127]])[_0x18c7[108]]));_0x76bax39= _0x76bax3c[_0x18c7[129]]();_0x76bax3c[_0x18c7[35]](_0x76bax2c);_0x76bax3c[_0x18c7[34]](0);logger[_0x18c7[24]](_0x18c7[130],_0x76bax3c.toString());return db[_0x18c7[133]][_0x18c7[58]](_0x76bax3c.toString(),{type:db[_0x18c7[133]][_0x18c7[132]][_0x18c7[131]]})}})[_0x18c7[45]](function(){return {sql:_0x76bax39.toString()}})[_0x18c7[45]](respondWithResult(_0x76bax15,null,_0x18c7[58]))[_0x18c7[75]](handleError(_0x76bax15,null,_0x18c7[58]))}
\ No newline at end of file
diff --git a/server/api/analyticCustomReport/analyticCustomReport.model.js b/server/api/analyticCustomReport/analyticCustomReport.model.js
new file mode 100644 (file)
index 0000000..ba26155
--- /dev/null
@@ -0,0 +1 @@
+var _0xb049=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xb049[0];var _=require(_0xb049[1]);var util=require(_0xb049[2]);var logger=require(_0xb049[4])(_0xb049[3]);var attributes=require(_0xb049[5]);module[_0xb049[6]]= function(_0x4ff2x5,_0x4ff2x6){return _0x4ff2x5[_0xb049[9]](_0xb049[7],attributes,{tableName:_0xb049[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/analyticCustomReport/analyticCustomReport.rpc.js b/server/api/analyticCustomReport/analyticCustomReport.rpc.js
new file mode 100644 (file)
index 0000000..02eaeef
--- /dev/null
@@ -0,0 +1 @@
+var _0x904f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x904f[0];var _=require(_0x904f[1]);var util=require(_0x904f[2]);var moment=require(_0x904f[3]);var BPromise=require(_0x904f[4]);var db=require(_0x904f[6])[_0x904f[5]];var utils=require(_0x904f[7]);var logger=require(_0x904f[9])(_0x904f[8]);var jayson=require(_0x904f[10]);var client=jayson[_0x904f[12]][_0x904f[11]]({port:9002});function respondWithRpcPromise(_0xaccfxb,_0xaccfxc,_0xaccfxd){return  new BPromise(function(_0xaccfxe,_0xaccfxf){return client[_0x904f[25]](_0xaccfxb,_0xaccfxd)[_0x904f[24]](function(_0xaccfx11){logger[_0x904f[17]](_0x904f[13],_0xaccfxc,_0x904f[16]);logger[_0x904f[20]](_0x904f[18],_0xaccfxc,_0x904f[16],JSON[_0x904f[19]](_0xaccfx11));if(_0xaccfx11[_0x904f[14]]){if(_0xaccfx11[_0x904f[14]][_0x904f[21]]=== 500){logger[_0x904f[14]](_0x904f[13],_0xaccfxc,_0xaccfx11[_0x904f[14]][_0x904f[22]]);return _0xaccfxf(_0xaccfx11[_0x904f[14]][_0x904f[22]])};logger[_0x904f[14]](_0x904f[13],_0xaccfxc,_0xaccfx11[_0x904f[14]][_0x904f[22]]);return _0xaccfxe(_0xaccfx11[_0x904f[14]][_0x904f[22]])}else {logger[_0x904f[17]](_0x904f[13],_0xaccfxc,_0x904f[16]);_0xaccfxe(_0xaccfx11[_0x904f[23]][_0x904f[22]])}})[_0x904f[15]](function(_0xaccfx10){logger[_0x904f[14]](_0x904f[13],_0xaccfxc,_0xaccfx10);_0xaccfxf(_0xaccfx10)})})}
\ No newline at end of file
diff --git a/server/api/analyticCustomReport/index.js b/server/api/analyticCustomReport/index.js
new file mode 100644 (file)
index 0000000..ae7b31d
--- /dev/null
@@ -0,0 +1 @@
+var _0x80dd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x70\x72\x65\x76\x69\x65\x77","\x70\x72\x65\x76\x69\x65\x77","\x2F\x3A\x69\x64\x2F\x72\x75\x6E","\x72\x75\x6E","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x72\x79","\x71\x75\x65\x72\x79","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x80dd[0];var multer=require(_0x80dd[1]);var util=require(_0x80dd[2]);var path=require(_0x80dd[3]);var express=require(_0x80dd[4]);var router=express.Router();var auth=require(_0x80dd[5]);var config=require(_0x80dd[6]);var controller=require(_0x80dd[7]);router[_0x80dd[11]](_0x80dd[8],auth[_0x80dd[9]](),controller[_0x80dd[10]]);router[_0x80dd[11]](_0x80dd[12],auth[_0x80dd[9]](),controller[_0x80dd[13]]);router[_0x80dd[11]](_0x80dd[14],auth[_0x80dd[9]](),controller[_0x80dd[15]]);router[_0x80dd[11]](_0x80dd[16],auth[_0x80dd[9]](),controller[_0x80dd[17]]);router[_0x80dd[11]](_0x80dd[18],auth[_0x80dd[9]](),controller[_0x80dd[19]]);router[_0x80dd[21]](_0x80dd[8],auth[_0x80dd[9]](),controller[_0x80dd[20]]);router[_0x80dd[23]](_0x80dd[12],auth[_0x80dd[9]](),controller[_0x80dd[22]]);router[_0x80dd[25]](_0x80dd[12],auth[_0x80dd[9]](),controller[_0x80dd[24]]);module[_0x80dd[26]]= router
\ No newline at end of file
diff --git a/server/api/analyticDefaultReport/analyticDefaultReport.attributes.js b/server/api/analyticDefaultReport/analyticDefaultReport.attributes.js
new file mode 100644 (file)
index 0000000..5f0f788
--- /dev/null
@@ -0,0 +1 @@
+var _0xe55e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0xe55e[0];var Sequelize=require(_0xe55e[1]);module[_0xe55e[2]]= {name:{type:Sequelize[_0xe55e[3]],allowNull:false},description:{type:Sequelize[_0xe55e[3]]},parent:{type:Sequelize[_0xe55e[3]]},table:{type:Sequelize[_0xe55e[3]]},conditions:{type:Sequelize[_0xe55e[4]]}}
\ No newline at end of file
diff --git a/server/api/analyticDefaultReport/analyticDefaultReport.controller.js b/server/api/analyticDefaultReport/analyticDefaultReport.controller.js
new file mode 100644 (file)
index 0000000..cb021fa
--- /dev/null
@@ -0,0 +1 @@
+var _0xe881=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x70\x72\x65\x76\x69\x65\x77","\x53\x55\x4D\x28\x25\x73\x29","\x43\x4F\x55\x4E\x54\x28\x25\x73\x29","\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x25\x73\x29","\x4D\x41\x58\x28\x25\x73\x29","\x4D\x49\x4E\x28\x25\x73\x29","\x41\x56\x47\x28\x25\x73\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x41\x53\x43\x29","\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x28\x25\x73\x20\x4F\x52\x44\x45\x52\x20\x42\x59\x20\x25\x73\x20\x44\x45\x53\x43\x29","\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45\x28\x25\x73\x29","\x44\x41\x54\x45\x28\x25\x73\x29","\x48\x4F\x55\x52\x28\x25\x73\x29","\x52\x4F\x55\x4E\x44\x28\x25\x73\x29","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x25\x73\x29","\x49\x53\x20\x4E\x55\x4C\x4C","\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C","\x49\x53\x20\x45\x4D\x50\x54\x59","\x49\x53\x20\x4E\x4F\x54\x20\x45\x4D\x50\x54\x59","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x75\x6C\x65\x73","","\x28","\x20","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x67\x72\x6F\x75\x70","\x66\x69\x65\x6C\x64","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x76\x61\x6C\x75\x65","\x29","\x6B\x65\x79\x42\x79","\x73\x65\x6C\x65\x63\x74","\x74\x61\x62\x6C\x65","\x66\x72\x6F\x6D","\x4D\x65\x74\x72\x69\x63\x49\x64","\x6D\x65\x74\x72\x69\x63","\x67\x72\x6F\x75\x70\x42\x79","\x6F\x72\x64\x65\x72\x42\x79","\x44\x45\x53\x43","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x25\x73","\x72\x65\x70\x6C\x61\x63\x65","\x66\x6F\x72\x6D\x61\x74","\x61\x6C\x69\x61\x73","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x70\x61\x72\x73\x65","\x63\x6C\x6F\x6E\x65","\x4C\x69\x6D\x69\x74\x65\x64\x20\x51\x75\x65\x72\x79\x3A","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x50\x6C\x65\x61\x73\x65\x20\x69\x6E\x73\x65\x72\x74\x20\x61\x74\x20\x6C\x65\x61\x73\x74\x20\x6F\x6E\x65\x20\x66\x69\x65\x6C\x64\x21","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x72\x75\x6E","\x63\x72\x65\x61\x74\x65\x64\x41\x74\x20\x42\x45\x54\x57\x45\x45\x4E\x20\x3F\x20\x41\x4E\x44\x20\x3F","\x73\x74\x61\x72\x74\x44\x61\x74\x65","\x65\x6E\x64\x44\x61\x74\x65","\x52\x75\x6E\x20\x51\x75\x65\x72\x79\x3A","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x78\x70\x6F\x72\x74\x2F","\x6F\x75\x74\x70\x75\x74","\x6A\x6F\x69\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x73\x61\x76\x65\x6E\x61\x6D\x65","\x66\x6F\x72\x6B","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x4E\x6F\x20\x44\x61\x74\x61\x21","\x25\x73\x2D\x25\x73\x2E\x25\x73","\x67\x65\x6E\x65\x72\x61\x74\x65","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x63\x73\x76","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74"];_0xe881[0];var jsonpatch=require(_0xe881[1]);var rp=require(_0xe881[2]);var moment=require(_0xe881[3]);var BPromise=require(_0xe881[4]);var util=require(_0xe881[5]);var path=require(_0xe881[6]);var sox=require(_0xe881[7]);var ejs=require(_0xe881[8]);var fs=require(_0xe881[9]);var _=require(_0xe881[10]);var squel=require(_0xe881[11]);var crypto=require(_0xe881[12]);var jsforce=require(_0xe881[13]);var toCsv=require(_0xe881[14]);var qs=require(_0xe881[15]);var logger=require(_0xe881[17])(_0xe881[16]);var utils=require(_0xe881[18]);var config=require(_0xe881[19]);var db=require(_0xe881[21])[_0xe881[20]];function respondWithStatusCode(_0xc7cfx15,_0xc7cfx16,_0xc7cfx17){_0xc7cfx16= _0xc7cfx16|| 204;return function(_0xc7cfx18){if(_0xc7cfx18){logger[_0xe881[24]](_0xe881[22],_0xc7cfx17,_0xc7cfx16,_0xe881[23]);logger[_0xe881[26]](_0xe881[25],_0xc7cfx17,_0xc7cfx16,_0xe881[23]);return _0xc7cfx15[_0xe881[27]](_0xc7cfx16)};return _0xc7cfx15[_0xe881[29]](304)[_0xe881[28]]()}}function respondWithResult(_0xc7cfx15,_0xc7cfx16,_0xc7cfx17){_0xc7cfx16= _0xc7cfx16|| 200;return function(_0xc7cfx18){if(_0xc7cfx18){logger[_0xe881[24]](_0xe881[22],_0xc7cfx17,_0xc7cfx16,_0xe881[30]);logger[_0xe881[26]](_0xe881[25],_0xc7cfx17,_0xc7cfx16,_0xe881[30],JSON[_0xe881[31]](_0xc7cfx18));return _0xc7cfx15[_0xe881[29]](_0xc7cfx16)[_0xe881[32]](_0xc7cfx18)};return _0xc7cfx15[_0xe881[29]](304)[_0xe881[28]]()}}function respondWithFilteredResult(_0xc7cfx15,_0xc7cfx1b,_0xc7cfx17){return function(_0xc7cfx18){if(_0xc7cfx18){var _0xc7cfx1c=_0xc7cfx18[_0xe881[33]],_0xc7cfx1d=_0xc7cfx1b[_0xe881[34]],_0xc7cfx1e=_0xc7cfx1b[_0xe881[34]]+ _0xc7cfx1b[_0xe881[35]],_0xc7cfx16;if(_0xc7cfx1e>= _0xc7cfx1c){_0xc7cfx1e= _0xc7cfx1c;_0xc7cfx16= 200}else {_0xc7cfx16= 206};_0xc7cfx15[_0xe881[29]](_0xc7cfx16);logger[_0xe881[24]](_0xe881[22],_0xc7cfx17,_0xc7cfx16,_0xe881[36]);logger[_0xe881[26]](_0xe881[25],_0xc7cfx17,_0xc7cfx16,_0xe881[30],JSON[_0xe881[31]](_0xc7cfx18));return _0xc7cfx15[_0xe881[40]](_0xe881[37],_0xc7cfx1d+ _0xe881[38]+ _0xc7cfx1e+ _0xe881[39]+ _0xc7cfx1c)[_0xe881[32]](_0xc7cfx18)};return null}}function patchUpdates(_0xc7cfx20){return function(_0xc7cfx18){try{jsonpatch[_0xe881[41]](_0xc7cfx18,_0xc7cfx20,true)}catch(err){return BPromise[_0xe881[42]](err)};return _0xc7cfx18[_0xe881[43]]()}}function saveUpdates(_0xc7cfx22,_0xc7cfx16,_0xc7cfx17){return function(_0xc7cfx18){if(_0xc7cfx18){return _0xc7cfx18[_0xe881[46]](_0xc7cfx22)[_0xe881[45]](function(_0xc7cfx23){logger[_0xe881[24]](_0xe881[22],_0xc7cfx17,_0xc7cfx16,_0xe881[44]);logger[_0xe881[26]](_0xe881[25],_0xc7cfx17,_0xc7cfx16,_0xe881[44],JSON[_0xe881[31]](_0xc7cfx18));return _0xc7cfx23})};return null}}function removeEntity(_0xc7cfx15,_0xc7cfx16,_0xc7cfx17){return function(_0xc7cfx18){if(_0xc7cfx18){return _0xc7cfx18[_0xe881[48]]()[_0xe881[45]](function(){logger[_0xe881[24]](_0xe881[22],_0xc7cfx17,_0xc7cfx16,_0xe881[47]);logger[_0xe881[26]](_0xe881[25],_0xc7cfx17,_0xc7cfx16,_0xe881[47],JSON[_0xe881[31]](_0xc7cfx18));_0xc7cfx15[_0xe881[29]](204)[_0xe881[28]]()})}}}function handleEntityNotFound(_0xc7cfx15,_0xc7cfx16,_0xc7cfx17){return function(_0xc7cfx18){if(!_0xc7cfx18){logger[_0xe881[50]](_0xe881[22],_0xc7cfx17,404,_0xe881[49]);_0xc7cfx15[_0xe881[29]](404)[_0xe881[28]]();return null};return _0xc7cfx18}}function handleError(_0xc7cfx15,_0xc7cfx16,_0xc7cfx17){_0xc7cfx16= _0xc7cfx16|| 500;return function(_0xc7cfx27){logger[_0xe881[50]](_0xe881[22],_0xc7cfx17,_0xc7cfx16,JSON[_0xe881[31]](_0xc7cfx27));delete _0xc7cfx27[_0xe881[51]];_0xc7cfx15[_0xe881[29]](_0xc7cfx16)[_0xe881[52]](_0xc7cfx27)}}exports[_0xe881[53]]= function(_0xc7cfx28,_0xc7cfx15){var _0xc7cfx1b={},_0xc7cfx29={};_0xc7cfx29[_0xe881[54]]= _[_0xe881[57]](db[_0xe881[56]][_0xe881[55]]);_0xc7cfx29[_0xe881[58]]= _[_0xe881[57]](_0xc7cfx28[_0xe881[58]]);_0xc7cfx29[_0xe881[59]]= _[_0xe881[60]](_0xc7cfx29[_0xe881[54]],_0xc7cfx29[_0xe881[58]]);_0xc7cfx1b[_0xe881[61]]= _[_0xe881[60]](_0xc7cfx29[_0xe881[54]],qs[_0xe881[62]](_0xc7cfx28[_0xe881[58]][_0xe881[62]]));_0xc7cfx1b[_0xe881[61]]= (_0xc7cfx1b[_0xe881[61]][_0xe881[63]])?_0xc7cfx1b[_0xe881[61]]:_0xc7cfx29[_0xe881[54]];if(!_0xc7cfx28[_0xe881[58]][_0xe881[65]](_0xe881[64])){_0xc7cfx1b[_0xe881[35]]= qs[_0xe881[35]](_0xc7cfx28[_0xe881[58]][_0xe881[35]]);_0xc7cfx1b[_0xe881[34]]= qs[_0xe881[34]](_0xc7cfx28[_0xe881[58]][_0xe881[34]])};_0xc7cfx1b[_0xe881[66]]= qs[_0xe881[67]](_0xc7cfx28[_0xe881[58]][_0xe881[67]]);_0xc7cfx1b[_0xe881[68]]= qs[_0xe881[59]](_[_0xe881[69]](_0xc7cfx28[_0xe881[58]],_0xc7cfx29[_0xe881[59]]));if(_0xc7cfx28[_0xe881[58]][_0xe881[70]]){_0xc7cfx1b[_0xe881[68]]= _[_0xe881[73]](_0xc7cfx1b[_0xe881[68]],{$or:_[_0xe881[72]](_0xc7cfx1b[_0xe881[61]],function(_0xc7cfx2a){var _0xc7cfx2b={};_0xc7cfx2b[_0xc7cfx2a]= {$like:_0xe881[71]+ _0xc7cfx28[_0xe881[58]][_0xe881[70]]+ _0xe881[71]};return _0xc7cfx2b})})};_0xc7cfx1b= _[_0xe881[73]]({},_0xc7cfx1b,_0xc7cfx28[_0xe881[74]]);return db[_0xe881[56]][_0xe881[76]](_0xc7cfx1b)[_0xe881[45]](respondWithFilteredResult(_0xc7cfx15,_0xc7cfx1b,_0xe881[53]))[_0xe881[75]](handleError(_0xc7cfx15,null,_0xe881[53]))};exports[_0xe881[77]]= function(_0xc7cfx28,_0xc7cfx15){var _0xc7cfx1b={raw:true,where:{id:_0xc7cfx28[_0xe881[79]][_0xe881[78]]}},_0xc7cfx29={};_0xc7cfx29[_0xe881[54]]= _[_0xe881[57]](db[_0xe881[56]][_0xe881[55]]);_0xc7cfx29[_0xe881[58]]= _[_0xe881[57]](_0xc7cfx28[_0xe881[58]]);_0xc7cfx29[_0xe881[59]]= _[_0xe881[60]](_0xc7cfx29[_0xe881[54]],_0xc7cfx29[_0xe881[58]]);_0xc7cfx1b[_0xe881[61]]= _[_0xe881[60]](_0xc7cfx29[_0xe881[54]],qs[_0xe881[62]](_0xc7cfx28[_0xe881[58]][_0xe881[62]]));_0xc7cfx1b[_0xe881[61]]= (_0xc7cfx1b[_0xe881[61]][_0xe881[63]])?_0xc7cfx1b[_0xe881[61]]:_0xc7cfx29[_0xe881[54]];_0xc7cfx1b= _[_0xe881[73]]({},_0xc7cfx1b,_0xc7cfx28[_0xe881[74]]);return db[_0xe881[56]][_0xe881[80]](_0xc7cfx1b)[_0xe881[45]](handleEntityNotFound(_0xc7cfx15,null,_0xe881[77]))[_0xe881[45]](respondWithResult(_0xc7cfx15,null,_0xe881[77]))[_0xe881[75]](handleError(_0xc7cfx15,null,_0xe881[77]))};exports[_0xe881[81]]= function(_0xc7cfx28,_0xc7cfx15){return db[_0xe881[56]][_0xe881[81]](_0xc7cfx28[_0xe881[82]],{})[_0xe881[45]](respondWithResult(_0xc7cfx15,201,_0xe881[81]))[_0xe881[75]](handleError(_0xc7cfx15,null,_0xe881[81]))};exports[_0xe881[46]]= function(_0xc7cfx28,_0xc7cfx15){if(_0xc7cfx28[_0xe881[82]][_0xe881[78]]){delete _0xc7cfx28[_0xe881[82]][_0xe881[78]]};return db[_0xe881[56]][_0xe881[80]]({where:{id:_0xc7cfx28[_0xe881[79]][_0xe881[78]]}})[_0xe881[45]](handleEntityNotFound(_0xc7cfx15,null,_0xe881[46]))[_0xe881[45]](saveUpdates(_0xc7cfx28[_0xe881[82]],null,_0xe881[46]))[_0xe881[45]](respondWithResult(_0xc7cfx15,null,_0xe881[46]))[_0xe881[75]](handleError(_0xc7cfx15,null,_0xe881[46]))};exports[_0xe881[48]]= function(_0xc7cfx28,_0xc7cfx15){return db[_0xe881[56]][_0xe881[80]]({where:{id:_0xc7cfx28[_0xe881[79]][_0xe881[78]]}})[_0xe881[45]](handleEntityNotFound(_0xc7cfx15,null,_0xe881[48]))[_0xe881[45]](removeEntity(_0xc7cfx15,null,_0xe881[48]))[_0xe881[75]](handleError(_0xc7cfx15,null,_0xe881[48]))};exports[_0xe881[83]]= function(_0xc7cfx28,_0xc7cfx15){var _0xc7cfx2c=10;var _0xc7cfx2d={"\x53\x55\x4D":_0xe881[84],"\x43\x4F\x55\x4E\x54":_0xe881[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0xe881[86],"\x4D\x41\x58":_0xe881[87],"\x4D\x49\x4E":_0xe881[88],"\x41\x56\x47":_0xe881[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0xe881[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0xe881[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0xe881[92]};var _0xc7cfx2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0xe881[93],"\x44\x41\x54\x45":_0xe881[94],"\x48\x4F\x55\x52":_0xe881[95],"\x52\x4F\x55\x4E\x44":_0xe881[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0xe881[97]};var _0xc7cfx2f=function(_0xc7cfx30){return !_[_0xe881[102]]([_0xe881[98],_0xe881[99],_0xe881[100],_0xe881[101]],_0xc7cfx30)};var _0xc7cfx31=function(_0xc7cfx32){if(!_0xc7cfx32||  !_0xc7cfx32[_0xe881[103]][_0xe881[63]]){return _0xe881[104]};for(var _0xc7cfx33=_0xe881[105],_0xc7cfx34=0;_0xc7cfx34< _0xc7cfx32[_0xe881[103]][_0xe881[63]];_0xc7cfx34+= 1){_0xc7cfx34> 0&& (_0xc7cfx33+= _0xe881[106]+ _0xc7cfx32[_0xe881[107]]+ _0xe881[106]);_0xc7cfx33+= _0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[108]]?_0xc7cfx31(_0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[108]]):_0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[109]]+ _0xe881[106]+ _0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[110]]+ (_0xc7cfx2f(_0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[110]])?_0xe881[106]+ _0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[111]]:_0xe881[104])};return _0xc7cfx33+ _0xe881[112]};var _0xc7cfx1b={where:{id:_0xc7cfx28[_0xe881[79]][_0xe881[78]]}},_0xc7cfx35,_0xc7cfx36,_0xc7cfx37,_0xc7cfx38,_0xc7cfx39;_0xc7cfx1b= _[_0xe881[73]]({},_0xc7cfx1b,_0xc7cfx28[_0xe881[74]]);return db[_0xe881[56]][_0xe881[80]](_0xc7cfx1b)[_0xe881[45]](handleEntityNotFound(_0xc7cfx15,null,_0xe881[83]))[_0xe881[45]](function(_0xc7cfx18){if(_0xc7cfx18){_0xc7cfx35= _0xc7cfx18;return _0xc7cfx18[_0xe881[138]]()};return null})[_0xe881[45]](function(_0xc7cfx3a){if(_0xc7cfx3a){if(!_0xc7cfx3a[_0xe881[63]]){throw  new db[_0xe881[135]].ValidationError(_0xe881[134])};_0xc7cfx36= _0xc7cfx3a;return db[_0xe881[137]][_0xe881[136]]({raw:true})};return null})[_0xe881[45]](function(_0xc7cfx3a){if(_0xc7cfx3a){_0xc7cfx37= _[_0xe881[113]](_0xc7cfx3a,_0xe881[78]);var _0xc7cfx3b;var _0xc7cfx3c=squel[_0xe881[114]]();_0xc7cfx3c[_0xe881[116]](_0xc7cfx35[_0xe881[115]]);for(var _0xc7cfx34=0;_0xc7cfx34< _0xc7cfx36[_0xe881[63]];_0xc7cfx34+= 1){_0xc7cfx3b= _0xc7cfx36[_0xc7cfx34][_0xe881[117]]?_0xc7cfx37[_0xc7cfx36[_0xc7cfx34][_0xe881[117]]][_0xe881[118]]:_0xc7cfx36[_0xc7cfx34][_0xe881[109]];_0xc7cfx36[_0xc7cfx34][_0xe881[119]]&& _0xc7cfx3c[_0xe881[108]](_0xc7cfx36[_0xc7cfx34][_0xe881[109]]);_0xc7cfx36[_0xc7cfx34][_0xe881[120]]&& _0xc7cfx3c[_0xe881[66]](_0xc7cfx36[_0xc7cfx34][_0xe881[109]],_0xc7cfx36[_0xc7cfx34][_0xe881[120]]=== _0xe881[121]?false:true);_0xc7cfx3b= _0xc7cfx36[_0xc7cfx34][_0xe881[122]]?_[_0xe881[124]](_0xc7cfx2d[_0xc7cfx36[_0xc7cfx34][_0xe881[122]]],_0xe881[123],_0xc7cfx36[_0xc7cfx34][_0xe881[109]]):_0xc7cfx3b;_0xc7cfx3b= _0xc7cfx36[_0xc7cfx34][_0xe881[125]]?_[_0xe881[124]](_0xc7cfx2e[_0xc7cfx36[_0xc7cfx34][_0xe881[125]]],_0xe881[123],_0xc7cfx3b):_0xc7cfx3b;_0xc7cfx3c[_0xe881[109]](_0xc7cfx3b,_0xc7cfx36[_0xc7cfx34][_0xe881[126]]|| _0xc7cfx3b)};_0xc7cfx35[_0xe881[127]]&& _0xc7cfx3c[_0xe881[68]](_0xc7cfx31(JSON[_0xe881[128]](_0xc7cfx35[_0xe881[127]])[_0xe881[108]]));_0xc7cfx39= _0xc7cfx3c[_0xe881[129]]();_0xc7cfx3c[_0xe881[35]](_0xc7cfx2c);_0xc7cfx3c[_0xe881[34]](0);logger[_0xe881[24]](_0xe881[130],_0xc7cfx3c.toString());return db[_0xe881[133]][_0xe881[58]](_0xc7cfx3c.toString(),{type:db[_0xe881[133]][_0xe881[132]][_0xe881[131]]})}})[_0xe881[45]](respondWithResult(_0xc7cfx15,null,_0xe881[83]))[_0xe881[75]](handleError(_0xc7cfx15,null,_0xe881[83]))};exports[_0xe881[139]]= function(_0xc7cfx28,_0xc7cfx15){var _0xc7cfx2c=10;var _0xc7cfx2d={"\x53\x55\x4D":_0xe881[84],"\x43\x4F\x55\x4E\x54":_0xe881[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0xe881[86],"\x4D\x41\x58":_0xe881[87],"\x4D\x49\x4E":_0xe881[88],"\x41\x56\x47":_0xe881[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0xe881[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0xe881[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0xe881[92]};var _0xc7cfx2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0xe881[93],"\x44\x41\x54\x45":_0xe881[94],"\x48\x4F\x55\x52":_0xe881[95],"\x52\x4F\x55\x4E\x44":_0xe881[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0xe881[97]};var _0xc7cfx2f=function(_0xc7cfx30){return !_[_0xe881[102]]([_0xe881[98],_0xe881[99],_0xe881[100],_0xe881[101]],_0xc7cfx30)};var _0xc7cfx31=function(_0xc7cfx32){if(!_0xc7cfx32||  !_0xc7cfx32[_0xe881[103]][_0xe881[63]]){return _0xe881[104]};for(var _0xc7cfx33=_0xe881[105],_0xc7cfx34=0;_0xc7cfx34< _0xc7cfx32[_0xe881[103]][_0xe881[63]];_0xc7cfx34+= 1){_0xc7cfx34> 0&& (_0xc7cfx33+= _0xe881[106]+ _0xc7cfx32[_0xe881[107]]+ _0xe881[106]);_0xc7cfx33+= _0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[108]]?_0xc7cfx31(_0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[108]]):_0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[109]]+ _0xe881[106]+ _0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[110]]+ (_0xc7cfx2f(_0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[110]])?_0xe881[106]+ _0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[111]]:_0xe881[104])};return _0xc7cfx33+ _0xe881[112]};var _0xc7cfx1b={where:{id:_0xc7cfx28[_0xe881[79]][_0xe881[78]]}},_0xc7cfx35,_0xc7cfx36,_0xc7cfx37,_0xc7cfx38,_0xc7cfx39;_0xc7cfx1b= _[_0xe881[73]]({},_0xc7cfx1b,_0xc7cfx28[_0xe881[74]]);return db[_0xe881[56]][_0xe881[80]](_0xc7cfx1b)[_0xe881[45]](handleEntityNotFound(_0xc7cfx15,null,_0xe881[83]))[_0xe881[45]](function(_0xc7cfx18){if(_0xc7cfx18){_0xc7cfx35= _0xc7cfx18;return _0xc7cfx18[_0xe881[138]]()};return null})[_0xe881[45]](function(_0xc7cfx3a){if(_0xc7cfx3a){if(!_0xc7cfx3a[_0xe881[63]]){throw  new db[_0xe881[135]].ValidationError(_0xe881[134])};_0xc7cfx36= _0xc7cfx3a;return db[_0xe881[137]][_0xe881[136]]({raw:true})};return null})[_0xe881[45]](function(_0xc7cfx3a){if(_0xc7cfx3a){_0xc7cfx37= _[_0xe881[113]](_0xc7cfx3a,_0xe881[78]);var _0xc7cfx3b;var _0xc7cfx3c=squel[_0xe881[114]]();_0xc7cfx3c[_0xe881[116]](_0xc7cfx35[_0xe881[115]]);for(var _0xc7cfx34=0;_0xc7cfx34< _0xc7cfx36[_0xe881[63]];_0xc7cfx34+= 1){_0xc7cfx3b= _0xc7cfx36[_0xc7cfx34][_0xe881[117]]?_0xc7cfx37[_0xc7cfx36[_0xc7cfx34][_0xe881[117]]][_0xe881[118]]:_0xc7cfx36[_0xc7cfx34][_0xe881[109]];_0xc7cfx36[_0xc7cfx34][_0xe881[119]]&& _0xc7cfx3c[_0xe881[108]](_0xc7cfx36[_0xc7cfx34][_0xe881[109]]);_0xc7cfx36[_0xc7cfx34][_0xe881[120]]&& _0xc7cfx3c[_0xe881[66]](_0xc7cfx36[_0xc7cfx34][_0xe881[109]],_0xc7cfx36[_0xc7cfx34][_0xe881[120]]=== _0xe881[121]?false:true);_0xc7cfx3b= _0xc7cfx36[_0xc7cfx34][_0xe881[122]]?_[_0xe881[124]](_0xc7cfx2d[_0xc7cfx36[_0xc7cfx34][_0xe881[122]]],_0xe881[123],_0xc7cfx36[_0xc7cfx34][_0xe881[109]]):_0xc7cfx3b;_0xc7cfx3b= _0xc7cfx36[_0xc7cfx34][_0xe881[125]]?_[_0xe881[124]](_0xc7cfx2e[_0xc7cfx36[_0xc7cfx34][_0xe881[125]]],_0xe881[123],_0xc7cfx3b):_0xc7cfx3b;_0xc7cfx3c[_0xe881[109]](_0xc7cfx3b,_0xc7cfx36[_0xc7cfx34][_0xe881[126]]|| _0xc7cfx3b)};_0xc7cfx35[_0xe881[127]]&& _0xc7cfx3c[_0xe881[68]](_0xc7cfx31(JSON[_0xe881[128]](_0xc7cfx35[_0xe881[127]])[_0xe881[108]]));_0xc7cfx39= _0xc7cfx3c[_0xe881[129]]();_0xc7cfx3c[_0xe881[35]](_0xc7cfx2c);_0xc7cfx3c[_0xe881[34]](0);logger[_0xe881[24]](_0xe881[130],_0xc7cfx3c.toString());return db[_0xe881[133]][_0xe881[58]](_0xc7cfx3c.toString(),{type:db[_0xe881[133]][_0xe881[132]][_0xe881[131]]})}})[_0xe881[45]](function(_0xc7cfx3a){if(!_0xc7cfx3a[_0xe881[63]]){throw  new db[_0xe881[135]].ValidationError(_0xe881[151])};var _0xc7cfx3d=_[_0xe881[73]](_0xc7cfx28[_0xe881[58]],{name:_0xc7cfx28[_0xe881[58]][_0xe881[51]]|| _0xc7cfx35[_0xe881[51]],savename:util[_0xe881[125]](_0xe881[152],_0xc7cfx28[_0xe881[58]][_0xe881[51]]|| _0xc7cfx35[_0xe881[51]],require(_0xe881[154])[_0xe881[153]](4),_0xc7cfx28[_0xe881[58]][_0xe881[145]]|| _0xe881[155])});return db[_0xe881[156]][_0xe881[81]](_0xc7cfx3d,{raw:true})})[_0xe881[45]](function(_0xc7cfx18){if(_0xc7cfx18){_0xc7cfx39[_0xe881[68]](_0xe881[140],_0xc7cfx18[_0xe881[141]],_0xc7cfx18[_0xe881[142]]);logger[_0xe881[24]](_0xe881[143],_0xc7cfx39.toString());require(_0xe881[150])[_0xe881[149]](path[_0xe881[146]](__dirname,_0xe881[144],_0xc7cfx18[_0xe881[145]]),[_0xc7cfx18[_0xe881[78]],_0xc7cfx39.toString(),path[_0xe881[146]](__dirname,_0xe881[147],_0xc7cfx18[_0xe881[148]])]);return _0xc7cfx18};return null})[_0xe881[45]](respondWithResult(_0xc7cfx15,null,_0xe881[139]))[_0xe881[75]](handleError(_0xc7cfx15,null,_0xe881[139]))};exports[_0xe881[58]]= function(_0xc7cfx28,_0xc7cfx15){var _0xc7cfx2c=10;var _0xc7cfx2d={"\x53\x55\x4D":_0xe881[84],"\x43\x4F\x55\x4E\x54":_0xe881[85],"\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54":_0xe881[86],"\x4D\x41\x58":_0xe881[87],"\x4D\x49\x4E":_0xe881[88],"\x41\x56\x47":_0xe881[89],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54":_0xe881[90],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x41\x53\x43":_0xe881[91],"\x47\x52\x4F\x55\x50\x5F\x43\x4F\x4E\x43\x41\x54\x20\x44\x45\x53\x43":_0xe881[92]};var _0xc7cfx2e={"\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45":_0xe881[93],"\x44\x41\x54\x45":_0xe881[94],"\x48\x4F\x55\x52":_0xe881[95],"\x52\x4F\x55\x4E\x44":_0xe881[96],"\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50":_0xe881[97]};var _0xc7cfx2f=function(_0xc7cfx30){return !_[_0xe881[102]]([_0xe881[98],_0xe881[99],_0xe881[100],_0xe881[101]],_0xc7cfx30)};var _0xc7cfx31=function(_0xc7cfx32){if(!_0xc7cfx32||  !_0xc7cfx32[_0xe881[103]][_0xe881[63]]){return _0xe881[104]};for(var _0xc7cfx33=_0xe881[105],_0xc7cfx34=0;_0xc7cfx34< _0xc7cfx32[_0xe881[103]][_0xe881[63]];_0xc7cfx34+= 1){_0xc7cfx34> 0&& (_0xc7cfx33+= _0xe881[106]+ _0xc7cfx32[_0xe881[107]]+ _0xe881[106]);_0xc7cfx33+= _0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[108]]?_0xc7cfx31(_0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[108]]):_0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[109]]+ _0xe881[106]+ _0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[110]]+ (_0xc7cfx2f(_0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[110]])?_0xe881[106]+ _0xc7cfx32[_0xe881[103]][_0xc7cfx34][_0xe881[111]]:_0xe881[104])};return _0xc7cfx33+ _0xe881[112]};var _0xc7cfx1b={where:{id:_0xc7cfx28[_0xe881[79]][_0xe881[78]]}},_0xc7cfx35,_0xc7cfx36,_0xc7cfx37,_0xc7cfx38,_0xc7cfx39;_0xc7cfx1b= _[_0xe881[73]]({},_0xc7cfx1b,_0xc7cfx28[_0xe881[74]]);return db[_0xe881[56]][_0xe881[80]](_0xc7cfx1b)[_0xe881[45]](handleEntityNotFound(_0xc7cfx15,null,_0xe881[83]))[_0xe881[45]](function(_0xc7cfx18){if(_0xc7cfx18){_0xc7cfx35= _0xc7cfx18;return _0xc7cfx18[_0xe881[138]]()};return null})[_0xe881[45]](function(_0xc7cfx3a){if(_0xc7cfx3a){if(!_0xc7cfx3a[_0xe881[63]]){throw  new db[_0xe881[135]].ValidationError(_0xe881[134])};_0xc7cfx36= _0xc7cfx3a;return db[_0xe881[137]][_0xe881[136]]({raw:true})};return null})[_0xe881[45]](function(_0xc7cfx3a){if(_0xc7cfx3a){_0xc7cfx37= _[_0xe881[113]](_0xc7cfx3a,_0xe881[78]);var _0xc7cfx3b;var _0xc7cfx3c=squel[_0xe881[114]]();_0xc7cfx3c[_0xe881[116]](_0xc7cfx35[_0xe881[115]]);for(var _0xc7cfx34=0;_0xc7cfx34< _0xc7cfx36[_0xe881[63]];_0xc7cfx34+= 1){_0xc7cfx3b= _0xc7cfx36[_0xc7cfx34][_0xe881[117]]?_0xc7cfx37[_0xc7cfx36[_0xc7cfx34][_0xe881[117]]][_0xe881[118]]:_0xc7cfx36[_0xc7cfx34][_0xe881[109]];_0xc7cfx36[_0xc7cfx34][_0xe881[119]]&& _0xc7cfx3c[_0xe881[108]](_0xc7cfx36[_0xc7cfx34][_0xe881[109]]);_0xc7cfx36[_0xc7cfx34][_0xe881[120]]&& _0xc7cfx3c[_0xe881[66]](_0xc7cfx36[_0xc7cfx34][_0xe881[109]],_0xc7cfx36[_0xc7cfx34][_0xe881[120]]=== _0xe881[121]?false:true);_0xc7cfx3b= _0xc7cfx36[_0xc7cfx34][_0xe881[122]]?_[_0xe881[124]](_0xc7cfx2d[_0xc7cfx36[_0xc7cfx34][_0xe881[122]]],_0xe881[123],_0xc7cfx36[_0xc7cfx34][_0xe881[109]]):_0xc7cfx3b;_0xc7cfx3b= _0xc7cfx36[_0xc7cfx34][_0xe881[125]]?_[_0xe881[124]](_0xc7cfx2e[_0xc7cfx36[_0xc7cfx34][_0xe881[125]]],_0xe881[123],_0xc7cfx3b):_0xc7cfx3b;_0xc7cfx3c[_0xe881[109]](_0xc7cfx3b,_0xc7cfx36[_0xc7cfx34][_0xe881[126]]|| _0xc7cfx3b)};_0xc7cfx35[_0xe881[127]]&& _0xc7cfx3c[_0xe881[68]](_0xc7cfx31(JSON[_0xe881[128]](_0xc7cfx35[_0xe881[127]])[_0xe881[108]]));_0xc7cfx39= _0xc7cfx3c[_0xe881[129]]();_0xc7cfx3c[_0xe881[35]](_0xc7cfx2c);_0xc7cfx3c[_0xe881[34]](0);logger[_0xe881[24]](_0xe881[130],_0xc7cfx3c.toString());return db[_0xe881[133]][_0xe881[58]](_0xc7cfx3c.toString(),{type:db[_0xe881[133]][_0xe881[132]][_0xe881[131]]})}})[_0xe881[45]](function(){return {sql:_0xc7cfx39.toString()}})[_0xe881[45]](respondWithResult(_0xc7cfx15,null,_0xe881[58]))[_0xe881[75]](handleError(_0xc7cfx15,null,_0xe881[58]))}
\ No newline at end of file
diff --git a/server/api/analyticDefaultReport/analyticDefaultReport.model.js b/server/api/analyticDefaultReport/analyticDefaultReport.model.js
new file mode 100644 (file)
index 0000000..ac7fe54
--- /dev/null
@@ -0,0 +1 @@
+var _0xa73d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xa73d[0];var _=require(_0xa73d[1]);var util=require(_0xa73d[2]);var logger=require(_0xa73d[4])(_0xa73d[3]);var attributes=require(_0xa73d[5]);module[_0xa73d[6]]= function(_0x835bx5,_0x835bx6){return _0x835bx5[_0xa73d[9]](_0xa73d[7],attributes,{tableName:_0xa73d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/analyticDefaultReport/analyticDefaultReport.rpc.js b/server/api/analyticDefaultReport/analyticDefaultReport.rpc.js
new file mode 100644 (file)
index 0000000..37086a7
--- /dev/null
@@ -0,0 +1 @@
+var _0xb4e2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb4e2[0];var _=require(_0xb4e2[1]);var util=require(_0xb4e2[2]);var moment=require(_0xb4e2[3]);var BPromise=require(_0xb4e2[4]);var db=require(_0xb4e2[6])[_0xb4e2[5]];var utils=require(_0xb4e2[7]);var logger=require(_0xb4e2[9])(_0xb4e2[8]);var jayson=require(_0xb4e2[10]);var client=jayson[_0xb4e2[12]][_0xb4e2[11]]({port:9002});function respondWithRpcPromise(_0xfae2xb,_0xfae2xc,_0xfae2xd){return  new BPromise(function(_0xfae2xe,_0xfae2xf){return client[_0xb4e2[25]](_0xfae2xb,_0xfae2xd)[_0xb4e2[24]](function(_0xfae2x11){logger[_0xb4e2[17]](_0xb4e2[13],_0xfae2xc,_0xb4e2[16]);logger[_0xb4e2[20]](_0xb4e2[18],_0xfae2xc,_0xb4e2[16],JSON[_0xb4e2[19]](_0xfae2x11));if(_0xfae2x11[_0xb4e2[14]]){if(_0xfae2x11[_0xb4e2[14]][_0xb4e2[21]]=== 500){logger[_0xb4e2[14]](_0xb4e2[13],_0xfae2xc,_0xfae2x11[_0xb4e2[14]][_0xb4e2[22]]);return _0xfae2xf(_0xfae2x11[_0xb4e2[14]][_0xb4e2[22]])};logger[_0xb4e2[14]](_0xb4e2[13],_0xfae2xc,_0xfae2x11[_0xb4e2[14]][_0xb4e2[22]]);return _0xfae2xe(_0xfae2x11[_0xb4e2[14]][_0xb4e2[22]])}else {logger[_0xb4e2[17]](_0xb4e2[13],_0xfae2xc,_0xb4e2[16]);_0xfae2xe(_0xfae2x11[_0xb4e2[23]][_0xb4e2[22]])}})[_0xb4e2[15]](function(_0xfae2x10){logger[_0xb4e2[14]](_0xb4e2[13],_0xfae2xc,_0xfae2x10);_0xfae2xf(_0xfae2x10)})})}
\ No newline at end of file
diff --git a/server/api/analyticDefaultReport/index.js b/server/api/analyticDefaultReport/index.js
new file mode 100644 (file)
index 0000000..1a29670
--- /dev/null
@@ -0,0 +1 @@
+var _0x7d07=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x70\x72\x65\x76\x69\x65\x77","\x70\x72\x65\x76\x69\x65\x77","\x2F\x3A\x69\x64\x2F\x72\x75\x6E","\x72\x75\x6E","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x72\x79","\x71\x75\x65\x72\x79","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7d07[0];var multer=require(_0x7d07[1]);var util=require(_0x7d07[2]);var path=require(_0x7d07[3]);var express=require(_0x7d07[4]);var router=express.Router();var auth=require(_0x7d07[5]);var config=require(_0x7d07[6]);var controller=require(_0x7d07[7]);router[_0x7d07[11]](_0x7d07[8],auth[_0x7d07[9]](),controller[_0x7d07[10]]);router[_0x7d07[11]](_0x7d07[12],auth[_0x7d07[9]](),controller[_0x7d07[13]]);router[_0x7d07[11]](_0x7d07[14],auth[_0x7d07[9]](),controller[_0x7d07[15]]);router[_0x7d07[11]](_0x7d07[16],auth[_0x7d07[9]](),controller[_0x7d07[17]]);router[_0x7d07[11]](_0x7d07[18],auth[_0x7d07[9]](),controller[_0x7d07[19]]);router[_0x7d07[21]](_0x7d07[8],auth[_0x7d07[9]](),controller[_0x7d07[20]]);router[_0x7d07[23]](_0x7d07[12],auth[_0x7d07[9]](),controller[_0x7d07[22]]);router[_0x7d07[25]](_0x7d07[12],auth[_0x7d07[9]](),controller[_0x7d07[24]]);module[_0x7d07[26]]= router
\ No newline at end of file
diff --git a/server/api/analyticExtractedReport/analyticExtractedReport.attributes.js b/server/api/analyticExtractedReport/analyticExtractedReport.attributes.js
new file mode 100644 (file)
index 0000000..5d1d3be
--- /dev/null
@@ -0,0 +1 @@
+var _0x3350=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x63\x73\x76","\x70\x64\x66","\x78\x6C\x73","\x44\x41\x54\x45","\x4C\x6F\x61\x64\x69\x6E\x67","\x6D\x61\x6E\x75\x61\x6C","\x73\x63\x68\x65\x64\x75\x6C\x65\x64"];_0x3350[0];var Sequelize=require(_0x3350[1]);var moment=require(_0x3350[2]);module[_0x3350[3]]= {name:{type:Sequelize[_0x3350[4]],allowNull:false},output:{type:Sequelize.ENUM(_0x3350[5],_0x3350[6],_0x3350[7]),allowNull:false,defaultValue:_0x3350[5]},savename:{type:Sequelize[_0x3350[4]],allowNull:false},startDate:{type:Sequelize[_0x3350[8]]},endDate:{type:Sequelize[_0x3350[8]]},status:{type:Sequelize[_0x3350[4]],defaultValue:_0x3350[9]},type:{type:Sequelize.ENUM(_0x3350[10],_0x3350[11]),allowNull:false,defaultValue:_0x3350[10]}}
\ No newline at end of file
diff --git a/server/api/analyticExtractedReport/analyticExtractedReport.controller.js b/server/api/analyticExtractedReport/analyticExtractedReport.controller.js
new file mode 100644 (file)
index 0000000..fb47c82
--- /dev/null
@@ -0,0 +1 @@
+var _0xa911=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x44\x6F\x77\x6E\x6C\x6F\x61\x64\x20\x45\x78\x74\x72\x61\x63\x74\x65\x64\x20\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x44\x6F\x77\x6E\x6C\x6F\x61\x64\x20\x45\x78\x74\x72\x61\x63\x74\x65\x64\x20\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x73\x61\x76\x65\x6E\x61\x6D\x65","\x6A\x6F\x69\x6E","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x52\x65\x70\x6F\x72\x74\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x69\x73\x74\x73","\x25\x73\x2E\x25\x73","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x6F\x75\x74\x70\x75\x74","\x66\x6F\x72\x6D\x61\x74"];_0xa911[0];var jsonpatch=require(_0xa911[1]);var rp=require(_0xa911[2]);var moment=require(_0xa911[3]);var BPromise=require(_0xa911[4]);var util=require(_0xa911[5]);var path=require(_0xa911[6]);var sox=require(_0xa911[7]);var ejs=require(_0xa911[8]);var fs=require(_0xa911[9]);var _=require(_0xa911[10]);var squel=require(_0xa911[11]);var crypto=require(_0xa911[12]);var jsforce=require(_0xa911[13]);var toCsv=require(_0xa911[14]);var qs=require(_0xa911[15]);var logger=require(_0xa911[17])(_0xa911[16]);var utils=require(_0xa911[18]);var config=require(_0xa911[19]);var db=require(_0xa911[21])[_0xa911[20]];function respondWithStatusCode(_0xcafex15,_0xcafex16,_0xcafex17){_0xcafex16= _0xcafex16|| 204;return function(_0xcafex18){if(_0xcafex18){logger[_0xa911[24]](_0xa911[22],_0xcafex17,_0xcafex16,_0xa911[23]);logger[_0xa911[26]](_0xa911[25],_0xcafex17,_0xcafex16,_0xa911[23]);return _0xcafex15[_0xa911[27]](_0xcafex16)};return _0xcafex15[_0xa911[29]](304)[_0xa911[28]]()}}function respondWithResult(_0xcafex15,_0xcafex16,_0xcafex17){_0xcafex16= _0xcafex16|| 200;return function(_0xcafex18){if(_0xcafex18){logger[_0xa911[24]](_0xa911[22],_0xcafex17,_0xcafex16,_0xa911[30]);logger[_0xa911[26]](_0xa911[25],_0xcafex17,_0xcafex16,_0xa911[30],JSON[_0xa911[31]](_0xcafex18));return _0xcafex15[_0xa911[29]](_0xcafex16)[_0xa911[32]](_0xcafex18)};return _0xcafex15[_0xa911[29]](304)[_0xa911[28]]()}}function respondWithFilteredResult(_0xcafex15,_0xcafex1b,_0xcafex17){return function(_0xcafex18){if(_0xcafex18){var _0xcafex1c=_0xcafex18[_0xa911[33]],_0xcafex1d=_0xcafex1b[_0xa911[34]],_0xcafex1e=_0xcafex1b[_0xa911[34]]+ _0xcafex1b[_0xa911[35]],_0xcafex16;if(_0xcafex1e>= _0xcafex1c){_0xcafex1e= _0xcafex1c;_0xcafex16= 200}else {_0xcafex16= 206};_0xcafex15[_0xa911[29]](_0xcafex16);logger[_0xa911[24]](_0xa911[22],_0xcafex17,_0xcafex16,_0xa911[36]);logger[_0xa911[26]](_0xa911[25],_0xcafex17,_0xcafex16,_0xa911[30],JSON[_0xa911[31]](_0xcafex18));return _0xcafex15[_0xa911[40]](_0xa911[37],_0xcafex1d+ _0xa911[38]+ _0xcafex1e+ _0xa911[39]+ _0xcafex1c)[_0xa911[32]](_0xcafex18)};return null}}function patchUpdates(_0xcafex20){return function(_0xcafex18){try{jsonpatch[_0xa911[41]](_0xcafex18,_0xcafex20,true)}catch(err){return BPromise[_0xa911[42]](err)};return _0xcafex18[_0xa911[43]]()}}function saveUpdates(_0xcafex22,_0xcafex16,_0xcafex17){return function(_0xcafex18){if(_0xcafex18){return _0xcafex18[_0xa911[46]](_0xcafex22)[_0xa911[45]](function(_0xcafex23){logger[_0xa911[24]](_0xa911[22],_0xcafex17,_0xcafex16,_0xa911[44]);logger[_0xa911[26]](_0xa911[25],_0xcafex17,_0xcafex16,_0xa911[44],JSON[_0xa911[31]](_0xcafex18));return _0xcafex23})};return null}}function removeEntity(_0xcafex15,_0xcafex16,_0xcafex17){return function(_0xcafex18){if(_0xcafex18){return _0xcafex18[_0xa911[48]]()[_0xa911[45]](function(){logger[_0xa911[24]](_0xa911[22],_0xcafex17,_0xcafex16,_0xa911[47]);logger[_0xa911[26]](_0xa911[25],_0xcafex17,_0xcafex16,_0xa911[47],JSON[_0xa911[31]](_0xcafex18));_0xcafex15[_0xa911[29]](204)[_0xa911[28]]()})}}}function handleEntityNotFound(_0xcafex15,_0xcafex16,_0xcafex17){return function(_0xcafex18){if(!_0xcafex18){logger[_0xa911[50]](_0xa911[22],_0xcafex17,404,_0xa911[49]);_0xcafex15[_0xa911[29]](404)[_0xa911[28]]();return null};return _0xcafex18}}function handleError(_0xcafex15,_0xcafex16,_0xcafex17){_0xcafex16= _0xcafex16|| 500;return function(_0xcafex27){logger[_0xa911[50]](_0xa911[22],_0xcafex17,_0xcafex16,JSON[_0xa911[31]](_0xcafex27));delete _0xcafex27[_0xa911[51]];_0xcafex15[_0xa911[29]](_0xcafex16)[_0xa911[52]](_0xcafex27)}}exports[_0xa911[53]]= function(_0xcafex28,_0xcafex15){var _0xcafex1b={},_0xcafex29={};_0xcafex29[_0xa911[54]]= _[_0xa911[57]](db[_0xa911[56]][_0xa911[55]]);_0xcafex29[_0xa911[58]]= _[_0xa911[57]](_0xcafex28[_0xa911[58]]);_0xcafex29[_0xa911[59]]= _[_0xa911[60]](_0xcafex29[_0xa911[54]],_0xcafex29[_0xa911[58]]);_0xcafex1b[_0xa911[61]]= _[_0xa911[60]](_0xcafex29[_0xa911[54]],qs[_0xa911[62]](_0xcafex28[_0xa911[58]][_0xa911[62]]));_0xcafex1b[_0xa911[61]]= (_0xcafex1b[_0xa911[61]][_0xa911[63]])?_0xcafex1b[_0xa911[61]]:_0xcafex29[_0xa911[54]];if(!_0xcafex28[_0xa911[58]][_0xa911[65]](_0xa911[64])){_0xcafex1b[_0xa911[35]]= qs[_0xa911[35]](_0xcafex28[_0xa911[58]][_0xa911[35]]);_0xcafex1b[_0xa911[34]]= qs[_0xa911[34]](_0xcafex28[_0xa911[58]][_0xa911[34]])};_0xcafex1b[_0xa911[66]]= qs[_0xa911[67]](_0xcafex28[_0xa911[58]][_0xa911[67]]);_0xcafex1b[_0xa911[68]]= qs[_0xa911[59]](_[_0xa911[69]](_0xcafex28[_0xa911[58]],_0xcafex29[_0xa911[59]]));if(_0xcafex28[_0xa911[58]][_0xa911[70]]){_0xcafex1b[_0xa911[68]]= _[_0xa911[73]](_0xcafex1b[_0xa911[68]],{$or:_[_0xa911[72]](_0xcafex1b[_0xa911[61]],function(_0xcafex2a){var _0xcafex2b={};_0xcafex2b[_0xcafex2a]= {$like:_0xa911[71]+ _0xcafex28[_0xa911[58]][_0xa911[70]]+ _0xa911[71]};return _0xcafex2b})})};_0xcafex1b= _[_0xa911[73]]({},_0xcafex1b,_0xcafex28[_0xa911[74]]);return db[_0xa911[56]][_0xa911[76]](_0xcafex1b)[_0xa911[45]](respondWithFilteredResult(_0xcafex15,_0xcafex1b,_0xa911[53]))[_0xa911[75]](handleError(_0xcafex15,null,_0xa911[53]))};exports[_0xa911[77]]= function(_0xcafex28,_0xcafex15){var _0xcafex1b={raw:true,where:{id:_0xcafex28[_0xa911[79]][_0xa911[78]]}},_0xcafex29={};_0xcafex29[_0xa911[54]]= _[_0xa911[57]](db[_0xa911[56]][_0xa911[55]]);_0xcafex29[_0xa911[58]]= _[_0xa911[57]](_0xcafex28[_0xa911[58]]);_0xcafex29[_0xa911[59]]= _[_0xa911[60]](_0xcafex29[_0xa911[54]],_0xcafex29[_0xa911[58]]);_0xcafex1b[_0xa911[61]]= _[_0xa911[60]](_0xcafex29[_0xa911[54]],qs[_0xa911[62]](_0xcafex28[_0xa911[58]][_0xa911[62]]));_0xcafex1b[_0xa911[61]]= (_0xcafex1b[_0xa911[61]][_0xa911[63]])?_0xcafex1b[_0xa911[61]]:_0xcafex29[_0xa911[54]];_0xcafex1b= _[_0xa911[73]]({},_0xcafex1b,_0xcafex28[_0xa911[74]]);return db[_0xa911[56]][_0xa911[80]](_0xcafex1b)[_0xa911[45]](handleEntityNotFound(_0xcafex15,null,_0xa911[77]))[_0xa911[45]](respondWithResult(_0xcafex15,null,_0xa911[77]))[_0xa911[75]](handleError(_0xcafex15,null,_0xa911[77]))};exports[_0xa911[81]]= function(_0xcafex28,_0xcafex15){return db[_0xa911[56]][_0xa911[81]](_0xcafex28[_0xa911[82]],{})[_0xa911[45]](respondWithResult(_0xcafex15,201,_0xa911[81]))[_0xa911[75]](handleError(_0xcafex15,null,_0xa911[81]))};exports[_0xa911[46]]= function(_0xcafex28,_0xcafex15){if(_0xcafex28[_0xa911[82]][_0xa911[78]]){delete _0xcafex28[_0xa911[82]][_0xa911[78]]};return db[_0xa911[56]][_0xa911[80]]({where:{id:_0xcafex28[_0xa911[79]][_0xa911[78]]}})[_0xa911[45]](handleEntityNotFound(_0xcafex15,null,_0xa911[46]))[_0xa911[45]](saveUpdates(_0xcafex28[_0xa911[82]],null,_0xa911[46]))[_0xa911[45]](respondWithResult(_0xcafex15,null,_0xa911[46]))[_0xa911[75]](handleError(_0xcafex15,null,_0xa911[46]))};exports[_0xa911[48]]= function(_0xcafex28,_0xcafex15){return db[_0xa911[56]][_0xa911[80]]({where:{id:_0xcafex28[_0xa911[79]][_0xa911[78]]}})[_0xa911[45]](handleEntityNotFound(_0xcafex15,null,_0xa911[48]))[_0xa911[45]](removeEntity(_0xcafex15,null,_0xa911[48]))[_0xa911[75]](handleError(_0xcafex15,null,_0xa911[48]))};exports[_0xa911[83]]= function(_0xcafex28,_0xcafex15,_0xcafex2c){return db[_0xa911[56]][_0xa911[80]]({where:{id:_0xcafex28[_0xa911[79]][_0xa911[78]]},attributes:[_0xa911[51],_0xa911[88],_0xa911[96]],raw:true})[_0xa911[45]](handleEntityNotFound(_0xcafex15,null,_0xa911[83]))[_0xa911[45]](function(_0xcafex18){if(_0xcafex18){logger[_0xa911[24]](_0xa911[84],_0xa911[83],_0xa911[30]);logger[_0xa911[26]](_0xa911[85],_0xa911[83],_0xa911[30],JSON[_0xa911[31]](_0xcafex18));if(!fs[_0xa911[90]](path[_0xa911[89]](config[_0xa911[86]],_0xa911[87],_0xcafex18[_0xa911[88]]))){throw  new db[_0xa911[92]].ValidationError(_0xa911[91])};if(_0xcafex28[_0xa911[58]][_0xa911[93]]){return _0xcafex15[_0xa911[27]](200)};return _0xcafex15[_0xa911[83]](path[_0xa911[89]](config[_0xa911[86]],_0xa911[87],_0xcafex18[_0xa911[88]]),util[_0xa911[97]](_0xa911[94],_0xcafex18[_0xa911[51]],_0xcafex18[_0xa911[96]][_0xa911[95]]()))}})[_0xa911[75]](handleError(_0xcafex15,null,_0xa911[83]))}
\ No newline at end of file
diff --git a/server/api/analyticExtractedReport/analyticExtractedReport.model.js b/server/api/analyticExtractedReport/analyticExtractedReport.model.js
new file mode 100644 (file)
index 0000000..55ec2db
--- /dev/null
@@ -0,0 +1 @@
+var _0x4636=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x4636[0];var _=require(_0x4636[1]);var util=require(_0x4636[2]);var logger=require(_0x4636[4])(_0x4636[3]);var attributes=require(_0x4636[5]);module[_0x4636[6]]= function(_0x8158x5,_0x8158x6){return _0x8158x5[_0x4636[9]](_0x4636[7],attributes,{tableName:_0x4636[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/analyticExtractedReport/analyticExtractedReport.rpc.js b/server/api/analyticExtractedReport/analyticExtractedReport.rpc.js
new file mode 100644 (file)
index 0000000..9cb85c9
--- /dev/null
@@ -0,0 +1 @@
+var _0xbe06=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xbe06[0];var _=require(_0xbe06[1]);var util=require(_0xbe06[2]);var moment=require(_0xbe06[3]);var BPromise=require(_0xbe06[4]);var db=require(_0xbe06[6])[_0xbe06[5]];var utils=require(_0xbe06[7]);var logger=require(_0xbe06[9])(_0xbe06[8]);var jayson=require(_0xbe06[10]);var client=jayson[_0xbe06[12]][_0xbe06[11]]({port:9002});function respondWithRpcPromise(_0x8706xb,_0x8706xc,_0x8706xd){return  new BPromise(function(_0x8706xe,_0x8706xf){return client[_0xbe06[25]](_0x8706xb,_0x8706xd)[_0xbe06[24]](function(_0x8706x11){logger[_0xbe06[17]](_0xbe06[13],_0x8706xc,_0xbe06[16]);logger[_0xbe06[20]](_0xbe06[18],_0x8706xc,_0xbe06[16],JSON[_0xbe06[19]](_0x8706x11));if(_0x8706x11[_0xbe06[14]]){if(_0x8706x11[_0xbe06[14]][_0xbe06[21]]=== 500){logger[_0xbe06[14]](_0xbe06[13],_0x8706xc,_0x8706x11[_0xbe06[14]][_0xbe06[22]]);return _0x8706xf(_0x8706x11[_0xbe06[14]][_0xbe06[22]])};logger[_0xbe06[14]](_0xbe06[13],_0x8706xc,_0x8706x11[_0xbe06[14]][_0xbe06[22]]);return _0x8706xe(_0x8706x11[_0xbe06[14]][_0xbe06[22]])}else {logger[_0xbe06[17]](_0xbe06[13],_0x8706xc,_0xbe06[16]);_0x8706xe(_0x8706x11[_0xbe06[23]][_0xbe06[22]])}})[_0xbe06[15]](function(_0x8706x10){logger[_0xbe06[14]](_0xbe06[13],_0x8706xc,_0x8706x10);_0x8706xf(_0x8706x10)})})}
\ No newline at end of file
diff --git a/server/api/analyticExtractedReport/index.js b/server/api/analyticExtractedReport/index.js
new file mode 100644 (file)
index 0000000..c5dae3d
--- /dev/null
@@ -0,0 +1 @@
+var _0xc5d9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc5d9[0];var multer=require(_0xc5d9[1]);var util=require(_0xc5d9[2]);var path=require(_0xc5d9[3]);var express=require(_0xc5d9[4]);var router=express.Router();var auth=require(_0xc5d9[5]);var config=require(_0xc5d9[6]);var controller=require(_0xc5d9[7]);router[_0xc5d9[11]](_0xc5d9[8],auth[_0xc5d9[9]](),controller[_0xc5d9[10]]);router[_0xc5d9[11]](_0xc5d9[12],auth[_0xc5d9[9]](),controller[_0xc5d9[13]]);router[_0xc5d9[11]](_0xc5d9[14],controller[_0xc5d9[15]]);router[_0xc5d9[17]](_0xc5d9[8],auth[_0xc5d9[9]](),controller[_0xc5d9[16]]);router[_0xc5d9[19]](_0xc5d9[12],auth[_0xc5d9[9]](),controller[_0xc5d9[18]]);router[_0xc5d9[21]](_0xc5d9[12],auth[_0xc5d9[9]](),controller[_0xc5d9[20]]);module[_0xc5d9[22]]= router
\ No newline at end of file
diff --git a/server/api/analyticFieldReport/analyticFieldReport.attributes.js b/server/api/analyticFieldReport/analyticFieldReport.attributes.js
new file mode 100644 (file)
index 0000000..79385dc
--- /dev/null
@@ -0,0 +1 @@
+var _0x6d3b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x6d3b[0];var Sequelize=require(_0x6d3b[1]);module[_0x6d3b[2]]= {field:{type:Sequelize[_0x6d3b[3]],allowNull:false},alias:{type:Sequelize[_0x6d3b[3]]},function:{type:Sequelize[_0x6d3b[3]]},format:{type:Sequelize[_0x6d3b[3]]},groupBy:{type:Sequelize[_0x6d3b[4]],defaultValue:false},orderBy:{type:Sequelize[_0x6d3b[3]]},custom:{type:Sequelize[_0x6d3b[4]],defaultValue:false}}
\ No newline at end of file
diff --git a/server/api/analyticFieldReport/analyticFieldReport.controller.js b/server/api/analyticFieldReport/analyticFieldReport.controller.js
new file mode 100644 (file)
index 0000000..47bb1a1
--- /dev/null
@@ -0,0 +1 @@
+var _0x67d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x61\x64\x64\x46\x69\x65\x6C\x64\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x49\x64","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6E\x64\x4F\x6E\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74"];_0x67d0[0];var jsonpatch=require(_0x67d0[1]);var rp=require(_0x67d0[2]);var moment=require(_0x67d0[3]);var BPromise=require(_0x67d0[4]);var util=require(_0x67d0[5]);var path=require(_0x67d0[6]);var sox=require(_0x67d0[7]);var ejs=require(_0x67d0[8]);var fs=require(_0x67d0[9]);var _=require(_0x67d0[10]);var squel=require(_0x67d0[11]);var crypto=require(_0x67d0[12]);var jsforce=require(_0x67d0[13]);var toCsv=require(_0x67d0[14]);var qs=require(_0x67d0[15]);var logger=require(_0x67d0[17])(_0x67d0[16]);var utils=require(_0x67d0[18]);var config=require(_0x67d0[19]);var db=require(_0x67d0[21])[_0x67d0[20]];function respondWithStatusCode(_0xca99x15,_0xca99x16,_0xca99x17){_0xca99x16= _0xca99x16|| 204;return function(_0xca99x18){if(_0xca99x18){logger[_0x67d0[24]](_0x67d0[22],_0xca99x17,_0xca99x16,_0x67d0[23]);logger[_0x67d0[26]](_0x67d0[25],_0xca99x17,_0xca99x16,_0x67d0[23]);return _0xca99x15[_0x67d0[27]](_0xca99x16)};return _0xca99x15[_0x67d0[29]](304)[_0x67d0[28]]()}}function respondWithResult(_0xca99x15,_0xca99x16,_0xca99x17){_0xca99x16= _0xca99x16|| 200;return function(_0xca99x18){if(_0xca99x18){logger[_0x67d0[24]](_0x67d0[22],_0xca99x17,_0xca99x16,_0x67d0[30]);logger[_0x67d0[26]](_0x67d0[25],_0xca99x17,_0xca99x16,_0x67d0[30],JSON[_0x67d0[31]](_0xca99x18));return _0xca99x15[_0x67d0[29]](_0xca99x16)[_0x67d0[32]](_0xca99x18)};return _0xca99x15[_0x67d0[29]](304)[_0x67d0[28]]()}}function respondWithFilteredResult(_0xca99x15,_0xca99x1b,_0xca99x17){return function(_0xca99x18){if(_0xca99x18){var _0xca99x1c=_0xca99x18[_0x67d0[33]],_0xca99x1d=_0xca99x1b[_0x67d0[34]],_0xca99x1e=_0xca99x1b[_0x67d0[34]]+ _0xca99x1b[_0x67d0[35]],_0xca99x16;if(_0xca99x1e>= _0xca99x1c){_0xca99x1e= _0xca99x1c;_0xca99x16= 200}else {_0xca99x16= 206};_0xca99x15[_0x67d0[29]](_0xca99x16);logger[_0x67d0[24]](_0x67d0[22],_0xca99x17,_0xca99x16,_0x67d0[36]);logger[_0x67d0[26]](_0x67d0[25],_0xca99x17,_0xca99x16,_0x67d0[30],JSON[_0x67d0[31]](_0xca99x18));return _0xca99x15[_0x67d0[40]](_0x67d0[37],_0xca99x1d+ _0x67d0[38]+ _0xca99x1e+ _0x67d0[39]+ _0xca99x1c)[_0x67d0[32]](_0xca99x18)};return null}}function patchUpdates(_0xca99x20){return function(_0xca99x18){try{jsonpatch[_0x67d0[41]](_0xca99x18,_0xca99x20,true)}catch(err){return BPromise[_0x67d0[42]](err)};return _0xca99x18[_0x67d0[43]]()}}function saveUpdates(_0xca99x22,_0xca99x16,_0xca99x17){return function(_0xca99x18){if(_0xca99x18){return _0xca99x18[_0x67d0[46]](_0xca99x22)[_0x67d0[45]](function(_0xca99x23){logger[_0x67d0[24]](_0x67d0[22],_0xca99x17,_0xca99x16,_0x67d0[44]);logger[_0x67d0[26]](_0x67d0[25],_0xca99x17,_0xca99x16,_0x67d0[44],JSON[_0x67d0[31]](_0xca99x18));return _0xca99x23})};return null}}function removeEntity(_0xca99x15,_0xca99x16,_0xca99x17){return function(_0xca99x18){if(_0xca99x18){return _0xca99x18[_0x67d0[48]]()[_0x67d0[45]](function(){logger[_0x67d0[24]](_0x67d0[22],_0xca99x17,_0xca99x16,_0x67d0[47]);logger[_0x67d0[26]](_0x67d0[25],_0xca99x17,_0xca99x16,_0x67d0[47],JSON[_0x67d0[31]](_0xca99x18));_0xca99x15[_0x67d0[29]](204)[_0x67d0[28]]()})}}}function handleEntityNotFound(_0xca99x15,_0xca99x16,_0xca99x17){return function(_0xca99x18){if(!_0xca99x18){logger[_0x67d0[50]](_0x67d0[22],_0xca99x17,404,_0x67d0[49]);_0xca99x15[_0x67d0[29]](404)[_0x67d0[28]]();return null};return _0xca99x18}}function handleError(_0xca99x15,_0xca99x16,_0xca99x17){_0xca99x16= _0xca99x16|| 500;return function(_0xca99x27){logger[_0x67d0[50]](_0x67d0[22],_0xca99x17,_0xca99x16,JSON[_0x67d0[31]](_0xca99x27));delete _0xca99x27[_0x67d0[51]];_0xca99x15[_0x67d0[29]](_0xca99x16)[_0x67d0[52]](_0xca99x27)}}exports[_0x67d0[53]]= function(_0xca99x28,_0xca99x15){var _0xca99x1b={},_0xca99x29={};_0xca99x29[_0x67d0[54]]= _[_0x67d0[57]](db[_0x67d0[56]][_0x67d0[55]]);_0xca99x29[_0x67d0[58]]= _[_0x67d0[57]](_0xca99x28[_0x67d0[58]]);_0xca99x29[_0x67d0[59]]= _[_0x67d0[60]](_0xca99x29[_0x67d0[54]],_0xca99x29[_0x67d0[58]]);_0xca99x1b[_0x67d0[61]]= _[_0x67d0[60]](_0xca99x29[_0x67d0[54]],qs[_0x67d0[62]](_0xca99x28[_0x67d0[58]][_0x67d0[62]]));_0xca99x1b[_0x67d0[61]]= (_0xca99x1b[_0x67d0[61]][_0x67d0[63]])?_0xca99x1b[_0x67d0[61]]:_0xca99x29[_0x67d0[54]];if(!_0xca99x28[_0x67d0[58]][_0x67d0[65]](_0x67d0[64])){_0xca99x1b[_0x67d0[35]]= qs[_0x67d0[35]](_0xca99x28[_0x67d0[58]][_0x67d0[35]]);_0xca99x1b[_0x67d0[34]]= qs[_0x67d0[34]](_0xca99x28[_0x67d0[58]][_0x67d0[34]])};_0xca99x1b[_0x67d0[66]]= qs[_0x67d0[67]](_0xca99x28[_0x67d0[58]][_0x67d0[67]]);_0xca99x1b[_0x67d0[68]]= qs[_0x67d0[59]](_[_0x67d0[69]](_0xca99x28[_0x67d0[58]],_0xca99x29[_0x67d0[59]]));if(_0xca99x28[_0x67d0[58]][_0x67d0[70]]){_0xca99x1b[_0x67d0[68]]= _[_0x67d0[73]](_0xca99x1b[_0x67d0[68]],{$or:_[_0x67d0[72]](_0xca99x1b[_0x67d0[61]],function(_0xca99x2a){var _0xca99x2b={};_0xca99x2b[_0xca99x2a]= {$like:_0x67d0[71]+ _0xca99x28[_0x67d0[58]][_0x67d0[70]]+ _0x67d0[71]};return _0xca99x2b})})};_0xca99x1b= _[_0x67d0[73]]({},_0xca99x1b,_0xca99x28[_0x67d0[74]]);return db[_0x67d0[56]][_0x67d0[76]](_0xca99x1b)[_0x67d0[45]](respondWithFilteredResult(_0xca99x15,_0xca99x1b,_0x67d0[53]))[_0x67d0[75]](handleError(_0xca99x15,null,_0x67d0[53]))};exports[_0x67d0[77]]= function(_0xca99x28,_0xca99x15){var _0xca99x1b={raw:false,where:{id:_0xca99x28[_0x67d0[79]][_0x67d0[78]]}},_0xca99x29={};_0xca99x29[_0x67d0[54]]= _[_0x67d0[57]](db[_0x67d0[56]][_0x67d0[55]]);_0xca99x29[_0x67d0[58]]= _[_0x67d0[57]](_0xca99x28[_0x67d0[58]]);_0xca99x29[_0x67d0[59]]= _[_0x67d0[60]](_0xca99x29[_0x67d0[54]],_0xca99x29[_0x67d0[58]]);_0xca99x1b[_0x67d0[61]]= _[_0x67d0[60]](_0xca99x29[_0x67d0[54]],qs[_0x67d0[62]](_0xca99x28[_0x67d0[58]][_0x67d0[62]]));_0xca99x1b[_0x67d0[61]]= (_0xca99x1b[_0x67d0[61]][_0x67d0[63]])?_0xca99x1b[_0x67d0[61]]:_0xca99x29[_0x67d0[54]];_0xca99x1b= _[_0x67d0[73]]({},_0xca99x1b,_0xca99x28[_0x67d0[74]]);return db[_0x67d0[56]][_0x67d0[80]](_0xca99x1b)[_0x67d0[45]](handleEntityNotFound(_0xca99x15,null,_0x67d0[77]))[_0x67d0[45]](respondWithResult(_0xca99x15,null,_0x67d0[77]))[_0x67d0[75]](handleError(_0xca99x15,null,_0x67d0[77]))};exports[_0x67d0[81]]= function(_0xca99x28,_0xca99x15){return db[_0x67d0[56]][_0x67d0[81]](_0xca99x28[_0x67d0[82]],{})[_0x67d0[45]](respondWithResult(_0xca99x15,201,_0x67d0[81]))[_0x67d0[75]](handleError(_0xca99x15,null,_0x67d0[81]))};exports[_0x67d0[83]]= function(_0xca99x28,_0xca99x15){return db[_0x67d0[56]][_0x67d0[83]](_0xca99x28[_0x67d0[82]],{raw:false,individualHooks:true})[_0x67d0[45]](respondWithResult(_0xca99x15,201,_0x67d0[83]))[_0x67d0[75]](handleError(_0xca99x15,null,_0x67d0[83]))};exports[_0x67d0[46]]= function(_0xca99x28,_0xca99x15){if(_0xca99x28[_0x67d0[82]][_0x67d0[78]]){delete _0xca99x28[_0x67d0[82]][_0x67d0[78]]};return db[_0x67d0[56]][_0x67d0[80]]({where:{id:_0xca99x28[_0x67d0[79]][_0x67d0[78]]}})[_0x67d0[45]](handleEntityNotFound(_0xca99x15,null,_0x67d0[46]))[_0x67d0[45]](saveUpdates(_0xca99x28[_0x67d0[82]],null,_0x67d0[46]))[_0x67d0[45]](respondWithResult(_0xca99x15,null,_0x67d0[46]))[_0x67d0[75]](handleError(_0xca99x15,null,_0x67d0[46]))};exports[_0x67d0[48]]= function(_0xca99x28,_0xca99x15){return db[_0x67d0[56]][_0x67d0[80]]({where:{id:_0xca99x28[_0x67d0[79]][_0x67d0[78]]}})[_0x67d0[45]](handleEntityNotFound(_0xca99x15,null,_0x67d0[48]))[_0x67d0[45]](removeEntity(_0xca99x15,null,_0x67d0[48]))[_0x67d0[75]](handleError(_0xca99x15,null,_0x67d0[48]))};exports[_0x67d0[84]]= function(_0xca99x28,_0xca99x15){return db[_0x67d0[56]][_0x67d0[48]]({where:{id:_0xca99x28[_0x67d0[58]][_0x67d0[85]]|| []},raw:false,individualHooks:true})[_0x67d0[45]](respondWithResult(_0xca99x15,204,_0x67d0[84]))[_0x67d0[75]](handleError(_0xca99x15,null,_0x67d0[84]))};exports[_0x67d0[86]]= function(_0xca99x28,_0xca99x15,_0xca99x2c){return db[_0x67d0[92]][_0x67d0[91]]({where:{id:_0xca99x28[_0x67d0[79]][_0x67d0[78]]}})[_0x67d0[45]](handleEntityNotFound(_0xca99x15,null,_0x67d0[86]))[_0x67d0[45]](function(_0xca99x18){if(_0xca99x18){return db[_0x67d0[90]][_0x67d0[89]](function(_0xca99x2d){return db[_0x67d0[56]][_0x67d0[48]]({where:{CustomReportId:_0xca99x28[_0x67d0[79]][_0x67d0[78]]},transaction:_0xca99x2d})[_0x67d0[45]](function(_0xca99x2e){var _0xca99x2f=_[_0x67d0[72]](_0xca99x28[_0x67d0[82]],function(_0xca99x30){delete _0xca99x30[_0x67d0[78]];_0xca99x30[_0x67d0[88]]= _0xca99x28[_0x67d0[79]][_0x67d0[78]];return _0xca99x30});return db[_0x67d0[56]][_0x67d0[83]](_0xca99x2f,{transaction:_0xca99x2d})})})[_0x67d0[45]](function(){return db[_0x67d0[56]][_0x67d0[87]]({where:{CustomReportId:_0xca99x28[_0x67d0[79]][_0x67d0[78]]}})})}})[_0x67d0[45]](respondWithResult(_0xca99x15,null,_0x67d0[86]))[_0x67d0[75]](handleError(_0xca99x15,null,_0x67d0[86]))}
\ No newline at end of file
diff --git a/server/api/analyticFieldReport/analyticFieldReport.model.js b/server/api/analyticFieldReport/analyticFieldReport.model.js
new file mode 100644 (file)
index 0000000..639d65f
--- /dev/null
@@ -0,0 +1 @@
+var _0x78fd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x72\x65\x70\x6F\x72\x74\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x78fd[0];var _=require(_0x78fd[1]);var util=require(_0x78fd[2]);var logger=require(_0x78fd[4])(_0x78fd[3]);var attributes=require(_0x78fd[5]);module[_0x78fd[6]]= function(_0x1f5ex5,_0x1f5ex6){return _0x1f5ex5[_0x78fd[9]](_0x78fd[7],attributes,{tableName:_0x78fd[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/analyticFieldReport/analyticFieldReport.rpc.js b/server/api/analyticFieldReport/analyticFieldReport.rpc.js
new file mode 100644 (file)
index 0000000..feafae1
--- /dev/null
@@ -0,0 +1 @@
+var _0xb207=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb207[0];var _=require(_0xb207[1]);var util=require(_0xb207[2]);var moment=require(_0xb207[3]);var BPromise=require(_0xb207[4]);var db=require(_0xb207[6])[_0xb207[5]];var utils=require(_0xb207[7]);var logger=require(_0xb207[9])(_0xb207[8]);var jayson=require(_0xb207[10]);var client=jayson[_0xb207[12]][_0xb207[11]]({port:9002});function respondWithRpcPromise(_0xe8bdxb,_0xe8bdxc,_0xe8bdxd){return  new BPromise(function(_0xe8bdxe,_0xe8bdxf){return client[_0xb207[25]](_0xe8bdxb,_0xe8bdxd)[_0xb207[24]](function(_0xe8bdx11){logger[_0xb207[17]](_0xb207[13],_0xe8bdxc,_0xb207[16]);logger[_0xb207[20]](_0xb207[18],_0xe8bdxc,_0xb207[16],JSON[_0xb207[19]](_0xe8bdx11));if(_0xe8bdx11[_0xb207[14]]){if(_0xe8bdx11[_0xb207[14]][_0xb207[21]]=== 500){logger[_0xb207[14]](_0xb207[13],_0xe8bdxc,_0xe8bdx11[_0xb207[14]][_0xb207[22]]);return _0xe8bdxf(_0xe8bdx11[_0xb207[14]][_0xb207[22]])};logger[_0xb207[14]](_0xb207[13],_0xe8bdxc,_0xe8bdx11[_0xb207[14]][_0xb207[22]]);return _0xe8bdxe(_0xe8bdx11[_0xb207[14]][_0xb207[22]])}else {logger[_0xb207[17]](_0xb207[13],_0xe8bdxc,_0xb207[16]);_0xe8bdxe(_0xe8bdx11[_0xb207[23]][_0xb207[22]])}})[_0xb207[15]](function(_0xe8bdx10){logger[_0xb207[14]](_0xb207[13],_0xe8bdxc,_0xe8bdx10);_0xe8bdxf(_0xe8bdx10)})})}
\ No newline at end of file
diff --git a/server/api/analyticFieldReport/index.js b/server/api/analyticFieldReport/index.js
new file mode 100644 (file)
index 0000000..b52e373
--- /dev/null
@@ -0,0 +1 @@
+var _0x8ef6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x2F\x3A\x69\x64\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x61\x64\x64\x46\x69\x65\x6C\x64\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x64\x65\x73\x74\x72\x6F\x79\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x8ef6[0];var multer=require(_0x8ef6[1]);var util=require(_0x8ef6[2]);var path=require(_0x8ef6[3]);var express=require(_0x8ef6[4]);var router=express.Router();var auth=require(_0x8ef6[5]);var config=require(_0x8ef6[6]);var controller=require(_0x8ef6[7]);router[_0x8ef6[11]](_0x8ef6[8],auth[_0x8ef6[9]](),controller[_0x8ef6[10]]);router[_0x8ef6[11]](_0x8ef6[12],auth[_0x8ef6[9]](),controller[_0x8ef6[13]]);router[_0x8ef6[15]](_0x8ef6[8],auth[_0x8ef6[9]](),controller[_0x8ef6[14]]);router[_0x8ef6[15]](_0x8ef6[16],auth[_0x8ef6[9]](),controller[_0x8ef6[17]]);router[_0x8ef6[15]](_0x8ef6[18],auth[_0x8ef6[9]](),controller[_0x8ef6[19]]);router[_0x8ef6[21]](_0x8ef6[12],auth[_0x8ef6[9]](),controller[_0x8ef6[20]]);router[_0x8ef6[24]](_0x8ef6[22],auth[_0x8ef6[9]](),controller[_0x8ef6[23]]);router[_0x8ef6[24]](_0x8ef6[12],auth[_0x8ef6[9]](),controller[_0x8ef6[25]]);module[_0x8ef6[26]]= router
\ No newline at end of file
diff --git a/server/api/analyticMetric/analyticMetric.attributes.js b/server/api/analyticMetric/analyticMetric.attributes.js
new file mode 100644 (file)
index 0000000..a8192a3
--- /dev/null
@@ -0,0 +1 @@
+var _0xfc62=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x54\x45\x58\x54"];_0xfc62[0];var Sequelize=require(_0xfc62[1]);module[_0xfc62[2]]= {name:{type:Sequelize[_0xfc62[3]],allowNull:false,unique:_0xfc62[4]},table:{type:Sequelize[_0xfc62[3]]},metric:{type:Sequelize[_0xfc62[5]]},description:{type:Sequelize[_0xfc62[3]]}}
\ No newline at end of file
diff --git a/server/api/analyticMetric/analyticMetric.controller.js b/server/api/analyticMetric/analyticMetric.controller.js
new file mode 100644 (file)
index 0000000..8b0f066
--- /dev/null
@@ -0,0 +1 @@
+var _0xeea5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xeea5[0];var jsonpatch=require(_0xeea5[1]);var rp=require(_0xeea5[2]);var moment=require(_0xeea5[3]);var BPromise=require(_0xeea5[4]);var util=require(_0xeea5[5]);var path=require(_0xeea5[6]);var sox=require(_0xeea5[7]);var ejs=require(_0xeea5[8]);var fs=require(_0xeea5[9]);var _=require(_0xeea5[10]);var squel=require(_0xeea5[11]);var crypto=require(_0xeea5[12]);var jsforce=require(_0xeea5[13]);var toCsv=require(_0xeea5[14]);var qs=require(_0xeea5[15]);var logger=require(_0xeea5[17])(_0xeea5[16]);var utils=require(_0xeea5[18]);var config=require(_0xeea5[19]);var db=require(_0xeea5[21])[_0xeea5[20]];function respondWithStatusCode(_0xed17x15,_0xed17x16,_0xed17x17){_0xed17x16= _0xed17x16|| 204;return function(_0xed17x18){if(_0xed17x18){logger[_0xeea5[24]](_0xeea5[22],_0xed17x17,_0xed17x16,_0xeea5[23]);logger[_0xeea5[26]](_0xeea5[25],_0xed17x17,_0xed17x16,_0xeea5[23]);return _0xed17x15[_0xeea5[27]](_0xed17x16)};return _0xed17x15[_0xeea5[29]](304)[_0xeea5[28]]()}}function respondWithResult(_0xed17x15,_0xed17x16,_0xed17x17){_0xed17x16= _0xed17x16|| 200;return function(_0xed17x18){if(_0xed17x18){logger[_0xeea5[24]](_0xeea5[22],_0xed17x17,_0xed17x16,_0xeea5[30]);logger[_0xeea5[26]](_0xeea5[25],_0xed17x17,_0xed17x16,_0xeea5[30],JSON[_0xeea5[31]](_0xed17x18));return _0xed17x15[_0xeea5[29]](_0xed17x16)[_0xeea5[32]](_0xed17x18)};return _0xed17x15[_0xeea5[29]](304)[_0xeea5[28]]()}}function respondWithFilteredResult(_0xed17x15,_0xed17x1b,_0xed17x17){return function(_0xed17x18){if(_0xed17x18){var _0xed17x1c=_0xed17x18[_0xeea5[33]],_0xed17x1d=_0xed17x1b[_0xeea5[34]],_0xed17x1e=_0xed17x1b[_0xeea5[34]]+ _0xed17x1b[_0xeea5[35]],_0xed17x16;if(_0xed17x1e>= _0xed17x1c){_0xed17x1e= _0xed17x1c;_0xed17x16= 200}else {_0xed17x16= 206};_0xed17x15[_0xeea5[29]](_0xed17x16);logger[_0xeea5[24]](_0xeea5[22],_0xed17x17,_0xed17x16,_0xeea5[36]);logger[_0xeea5[26]](_0xeea5[25],_0xed17x17,_0xed17x16,_0xeea5[30],JSON[_0xeea5[31]](_0xed17x18));return _0xed17x15[_0xeea5[40]](_0xeea5[37],_0xed17x1d+ _0xeea5[38]+ _0xed17x1e+ _0xeea5[39]+ _0xed17x1c)[_0xeea5[32]](_0xed17x18)};return null}}function patchUpdates(_0xed17x20){return function(_0xed17x18){try{jsonpatch[_0xeea5[41]](_0xed17x18,_0xed17x20,true)}catch(err){return BPromise[_0xeea5[42]](err)};return _0xed17x18[_0xeea5[43]]()}}function saveUpdates(_0xed17x22,_0xed17x16,_0xed17x17){return function(_0xed17x18){if(_0xed17x18){return _0xed17x18[_0xeea5[46]](_0xed17x22)[_0xeea5[45]](function(_0xed17x23){logger[_0xeea5[24]](_0xeea5[22],_0xed17x17,_0xed17x16,_0xeea5[44]);logger[_0xeea5[26]](_0xeea5[25],_0xed17x17,_0xed17x16,_0xeea5[44],JSON[_0xeea5[31]](_0xed17x18));return _0xed17x23})};return null}}function removeEntity(_0xed17x15,_0xed17x16,_0xed17x17){return function(_0xed17x18){if(_0xed17x18){return _0xed17x18[_0xeea5[48]]()[_0xeea5[45]](function(){logger[_0xeea5[24]](_0xeea5[22],_0xed17x17,_0xed17x16,_0xeea5[47]);logger[_0xeea5[26]](_0xeea5[25],_0xed17x17,_0xed17x16,_0xeea5[47],JSON[_0xeea5[31]](_0xed17x18));_0xed17x15[_0xeea5[29]](204)[_0xeea5[28]]()})}}}function handleEntityNotFound(_0xed17x15,_0xed17x16,_0xed17x17){return function(_0xed17x18){if(!_0xed17x18){logger[_0xeea5[50]](_0xeea5[22],_0xed17x17,404,_0xeea5[49]);_0xed17x15[_0xeea5[29]](404)[_0xeea5[28]]();return null};return _0xed17x18}}function handleError(_0xed17x15,_0xed17x16,_0xed17x17){_0xed17x16= _0xed17x16|| 500;return function(_0xed17x27){logger[_0xeea5[50]](_0xeea5[22],_0xed17x17,_0xed17x16,JSON[_0xeea5[31]](_0xed17x27));delete _0xed17x27[_0xeea5[51]];_0xed17x15[_0xeea5[29]](_0xed17x16)[_0xeea5[52]](_0xed17x27)}}exports[_0xeea5[53]]= function(_0xed17x28,_0xed17x15){var _0xed17x1b={},_0xed17x29={};_0xed17x29[_0xeea5[54]]= _[_0xeea5[57]](db[_0xeea5[56]][_0xeea5[55]]);_0xed17x29[_0xeea5[58]]= _[_0xeea5[57]](_0xed17x28[_0xeea5[58]]);_0xed17x29[_0xeea5[59]]= _[_0xeea5[60]](_0xed17x29[_0xeea5[54]],_0xed17x29[_0xeea5[58]]);_0xed17x1b[_0xeea5[61]]= _[_0xeea5[60]](_0xed17x29[_0xeea5[54]],qs[_0xeea5[62]](_0xed17x28[_0xeea5[58]][_0xeea5[62]]));_0xed17x1b[_0xeea5[61]]= (_0xed17x1b[_0xeea5[61]][_0xeea5[63]])?_0xed17x1b[_0xeea5[61]]:_0xed17x29[_0xeea5[54]];if(!_0xed17x28[_0xeea5[58]][_0xeea5[65]](_0xeea5[64])){_0xed17x1b[_0xeea5[35]]= qs[_0xeea5[35]](_0xed17x28[_0xeea5[58]][_0xeea5[35]]);_0xed17x1b[_0xeea5[34]]= qs[_0xeea5[34]](_0xed17x28[_0xeea5[58]][_0xeea5[34]])};_0xed17x1b[_0xeea5[66]]= qs[_0xeea5[67]](_0xed17x28[_0xeea5[58]][_0xeea5[67]]);_0xed17x1b[_0xeea5[68]]= qs[_0xeea5[59]](_[_0xeea5[69]](_0xed17x28[_0xeea5[58]],_0xed17x29[_0xeea5[59]]));if(_0xed17x28[_0xeea5[58]][_0xeea5[70]]){_0xed17x1b[_0xeea5[68]]= _[_0xeea5[73]](_0xed17x1b[_0xeea5[68]],{$or:_[_0xeea5[72]](_0xed17x1b[_0xeea5[61]],function(_0xed17x2a){var _0xed17x2b={};_0xed17x2b[_0xed17x2a]= {$like:_0xeea5[71]+ _0xed17x28[_0xeea5[58]][_0xeea5[70]]+ _0xeea5[71]};return _0xed17x2b})})};_0xed17x1b= _[_0xeea5[73]]({},_0xed17x1b,_0xed17x28[_0xeea5[74]]);return db[_0xeea5[56]][_0xeea5[76]](_0xed17x1b)[_0xeea5[45]](respondWithFilteredResult(_0xed17x15,_0xed17x1b,_0xeea5[53]))[_0xeea5[75]](handleError(_0xed17x15,null,_0xeea5[53]))};exports[_0xeea5[77]]= function(_0xed17x28,_0xed17x15){var _0xed17x1b={raw:true,where:{id:_0xed17x28[_0xeea5[79]][_0xeea5[78]]}},_0xed17x29={};_0xed17x29[_0xeea5[54]]= _[_0xeea5[57]](db[_0xeea5[56]][_0xeea5[55]]);_0xed17x29[_0xeea5[58]]= _[_0xeea5[57]](_0xed17x28[_0xeea5[58]]);_0xed17x29[_0xeea5[59]]= _[_0xeea5[60]](_0xed17x29[_0xeea5[54]],_0xed17x29[_0xeea5[58]]);_0xed17x1b[_0xeea5[61]]= _[_0xeea5[60]](_0xed17x29[_0xeea5[54]],qs[_0xeea5[62]](_0xed17x28[_0xeea5[58]][_0xeea5[62]]));_0xed17x1b[_0xeea5[61]]= (_0xed17x1b[_0xeea5[61]][_0xeea5[63]])?_0xed17x1b[_0xeea5[61]]:_0xed17x29[_0xeea5[54]];_0xed17x1b= _[_0xeea5[73]]({},_0xed17x1b,_0xed17x28[_0xeea5[74]]);return db[_0xeea5[56]][_0xeea5[80]](_0xed17x1b)[_0xeea5[45]](handleEntityNotFound(_0xed17x15,null,_0xeea5[77]))[_0xeea5[45]](respondWithResult(_0xed17x15,null,_0xeea5[77]))[_0xeea5[75]](handleError(_0xed17x15,null,_0xeea5[77]))};exports[_0xeea5[81]]= function(_0xed17x28,_0xed17x15){return db[_0xeea5[56]][_0xeea5[81]](_0xed17x28[_0xeea5[82]],{})[_0xeea5[45]](respondWithResult(_0xed17x15,201,_0xeea5[81]))[_0xeea5[75]](handleError(_0xed17x15,null,_0xeea5[81]))};exports[_0xeea5[46]]= function(_0xed17x28,_0xed17x15){if(_0xed17x28[_0xeea5[82]][_0xeea5[78]]){delete _0xed17x28[_0xeea5[82]][_0xeea5[78]]};return db[_0xeea5[56]][_0xeea5[80]]({where:{id:_0xed17x28[_0xeea5[79]][_0xeea5[78]]}})[_0xeea5[45]](handleEntityNotFound(_0xed17x15,null,_0xeea5[46]))[_0xeea5[45]](saveUpdates(_0xed17x28[_0xeea5[82]],null,_0xeea5[46]))[_0xeea5[45]](respondWithResult(_0xed17x15,null,_0xeea5[46]))[_0xeea5[75]](handleError(_0xed17x15,null,_0xeea5[46]))};exports[_0xeea5[48]]= function(_0xed17x28,_0xed17x15){return db[_0xeea5[56]][_0xeea5[80]]({where:{id:_0xed17x28[_0xeea5[79]][_0xeea5[78]]}})[_0xeea5[45]](handleEntityNotFound(_0xed17x15,null,_0xeea5[48]))[_0xeea5[45]](removeEntity(_0xed17x15,null,_0xeea5[48]))[_0xeea5[75]](handleError(_0xed17x15,null,_0xeea5[48]))}
\ No newline at end of file
diff --git a/server/api/analyticMetric/analyticMetric.model.js b/server/api/analyticMetric/analyticMetric.model.js
new file mode 100644 (file)
index 0000000..55ca147
--- /dev/null
@@ -0,0 +1 @@
+var _0x775b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x6D\x65\x74\x72\x69\x63\x73","\x64\x65\x66\x69\x6E\x65"];_0x775b[0];var _=require(_0x775b[1]);var util=require(_0x775b[2]);var logger=require(_0x775b[4])(_0x775b[3]);var attributes=require(_0x775b[5]);module[_0x775b[6]]= function(_0x3eaex5,_0x3eaex6){return _0x3eaex5[_0x775b[9]](_0x775b[7],attributes,{tableName:_0x775b[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/analyticMetric/analyticMetric.rpc.js b/server/api/analyticMetric/analyticMetric.rpc.js
new file mode 100644 (file)
index 0000000..ea1de29
--- /dev/null
@@ -0,0 +1 @@
+var _0x2d66=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x2d66[0];var _=require(_0x2d66[1]);var util=require(_0x2d66[2]);var moment=require(_0x2d66[3]);var BPromise=require(_0x2d66[4]);var db=require(_0x2d66[6])[_0x2d66[5]];var utils=require(_0x2d66[7]);var logger=require(_0x2d66[9])(_0x2d66[8]);var jayson=require(_0x2d66[10]);var client=jayson[_0x2d66[12]][_0x2d66[11]]({port:9002});function respondWithRpcPromise(_0x3c8exb,_0x3c8exc,_0x3c8exd){return  new BPromise(function(_0x3c8exe,_0x3c8exf){return client[_0x2d66[25]](_0x3c8exb,_0x3c8exd)[_0x2d66[24]](function(_0x3c8ex11){logger[_0x2d66[17]](_0x2d66[13],_0x3c8exc,_0x2d66[16]);logger[_0x2d66[20]](_0x2d66[18],_0x3c8exc,_0x2d66[16],JSON[_0x2d66[19]](_0x3c8ex11));if(_0x3c8ex11[_0x2d66[14]]){if(_0x3c8ex11[_0x2d66[14]][_0x2d66[21]]=== 500){logger[_0x2d66[14]](_0x2d66[13],_0x3c8exc,_0x3c8ex11[_0x2d66[14]][_0x2d66[22]]);return _0x3c8exf(_0x3c8ex11[_0x2d66[14]][_0x2d66[22]])};logger[_0x2d66[14]](_0x2d66[13],_0x3c8exc,_0x3c8ex11[_0x2d66[14]][_0x2d66[22]]);return _0x3c8exe(_0x3c8ex11[_0x2d66[14]][_0x2d66[22]])}else {logger[_0x2d66[17]](_0x2d66[13],_0x3c8exc,_0x2d66[16]);_0x3c8exe(_0x3c8ex11[_0x2d66[23]][_0x2d66[22]])}})[_0x2d66[15]](function(_0x3c8ex10){logger[_0x2d66[14]](_0x2d66[13],_0x3c8exc,_0x3c8ex10);_0x3c8exf(_0x3c8ex10)})})}
\ No newline at end of file
diff --git a/server/api/analyticMetric/index.js b/server/api/analyticMetric/index.js
new file mode 100644 (file)
index 0000000..c9c7632
--- /dev/null
@@ -0,0 +1 @@
+var _0xfc3d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfc3d[0];var multer=require(_0xfc3d[1]);var util=require(_0xfc3d[2]);var path=require(_0xfc3d[3]);var express=require(_0xfc3d[4]);var router=express.Router();var auth=require(_0xfc3d[5]);var config=require(_0xfc3d[6]);var controller=require(_0xfc3d[7]);router[_0xfc3d[11]](_0xfc3d[8],auth[_0xfc3d[9]](),controller[_0xfc3d[10]]);router[_0xfc3d[11]](_0xfc3d[12],auth[_0xfc3d[9]](),controller[_0xfc3d[13]]);router[_0xfc3d[15]](_0xfc3d[8],auth[_0xfc3d[9]](),controller[_0xfc3d[14]]);router[_0xfc3d[17]](_0xfc3d[12],auth[_0xfc3d[9]](),controller[_0xfc3d[16]]);router[_0xfc3d[19]](_0xfc3d[12],auth[_0xfc3d[9]](),controller[_0xfc3d[18]]);module[_0xfc3d[20]]= router
\ No newline at end of file
diff --git a/server/api/analyticTreeReport/analyticTreeReport.attributes.js b/server/api/analyticTreeReport/analyticTreeReport.attributes.js
new file mode 100644 (file)
index 0000000..0eafeff
--- /dev/null
@@ -0,0 +1 @@
+var _0xe48b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x54\x45\x58\x54"];_0xe48b[0];var Sequelize=require(_0xe48b[1]);module[_0xe48b[2]]= {tree:{type:Sequelize[_0xe48b[3]],allowNull:false}}
\ No newline at end of file
diff --git a/server/api/analyticTreeReport/analyticTreeReport.controller.js b/server/api/analyticTreeReport/analyticTreeReport.controller.js
new file mode 100644 (file)
index 0000000..b896a3a
--- /dev/null
@@ -0,0 +1 @@
+var _0x4e7a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x4e7a[0];var jsonpatch=require(_0x4e7a[1]);var rp=require(_0x4e7a[2]);var moment=require(_0x4e7a[3]);var BPromise=require(_0x4e7a[4]);var util=require(_0x4e7a[5]);var path=require(_0x4e7a[6]);var sox=require(_0x4e7a[7]);var ejs=require(_0x4e7a[8]);var fs=require(_0x4e7a[9]);var _=require(_0x4e7a[10]);var squel=require(_0x4e7a[11]);var crypto=require(_0x4e7a[12]);var jsforce=require(_0x4e7a[13]);var toCsv=require(_0x4e7a[14]);var qs=require(_0x4e7a[15]);var logger=require(_0x4e7a[17])(_0x4e7a[16]);var utils=require(_0x4e7a[18]);var config=require(_0x4e7a[19]);var db=require(_0x4e7a[21])[_0x4e7a[20]];function respondWithStatusCode(_0x9042x15,_0x9042x16,_0x9042x17){_0x9042x16= _0x9042x16|| 204;return function(_0x9042x18){if(_0x9042x18){logger[_0x4e7a[24]](_0x4e7a[22],_0x9042x17,_0x9042x16,_0x4e7a[23]);logger[_0x4e7a[26]](_0x4e7a[25],_0x9042x17,_0x9042x16,_0x4e7a[23]);return _0x9042x15[_0x4e7a[27]](_0x9042x16)};return _0x9042x15[_0x4e7a[29]](304)[_0x4e7a[28]]()}}function respondWithResult(_0x9042x15,_0x9042x16,_0x9042x17){_0x9042x16= _0x9042x16|| 200;return function(_0x9042x18){if(_0x9042x18){logger[_0x4e7a[24]](_0x4e7a[22],_0x9042x17,_0x9042x16,_0x4e7a[30]);logger[_0x4e7a[26]](_0x4e7a[25],_0x9042x17,_0x9042x16,_0x4e7a[30],JSON[_0x4e7a[31]](_0x9042x18));return _0x9042x15[_0x4e7a[29]](_0x9042x16)[_0x4e7a[32]](_0x9042x18)};return _0x9042x15[_0x4e7a[29]](304)[_0x4e7a[28]]()}}function respondWithFilteredResult(_0x9042x15,_0x9042x1b,_0x9042x17){return function(_0x9042x18){if(_0x9042x18){var _0x9042x1c=_0x9042x18[_0x4e7a[33]],_0x9042x1d=_0x9042x1b[_0x4e7a[34]],_0x9042x1e=_0x9042x1b[_0x4e7a[34]]+ _0x9042x1b[_0x4e7a[35]],_0x9042x16;if(_0x9042x1e>= _0x9042x1c){_0x9042x1e= _0x9042x1c;_0x9042x16= 200}else {_0x9042x16= 206};_0x9042x15[_0x4e7a[29]](_0x9042x16);logger[_0x4e7a[24]](_0x4e7a[22],_0x9042x17,_0x9042x16,_0x4e7a[36]);logger[_0x4e7a[26]](_0x4e7a[25],_0x9042x17,_0x9042x16,_0x4e7a[30],JSON[_0x4e7a[31]](_0x9042x18));return _0x9042x15[_0x4e7a[40]](_0x4e7a[37],_0x9042x1d+ _0x4e7a[38]+ _0x9042x1e+ _0x4e7a[39]+ _0x9042x1c)[_0x4e7a[32]](_0x9042x18)};return null}}function patchUpdates(_0x9042x20){return function(_0x9042x18){try{jsonpatch[_0x4e7a[41]](_0x9042x18,_0x9042x20,true)}catch(err){return BPromise[_0x4e7a[42]](err)};return _0x9042x18[_0x4e7a[43]]()}}function saveUpdates(_0x9042x22,_0x9042x16,_0x9042x17){return function(_0x9042x18){if(_0x9042x18){return _0x9042x18[_0x4e7a[46]](_0x9042x22)[_0x4e7a[45]](function(_0x9042x23){logger[_0x4e7a[24]](_0x4e7a[22],_0x9042x17,_0x9042x16,_0x4e7a[44]);logger[_0x4e7a[26]](_0x4e7a[25],_0x9042x17,_0x9042x16,_0x4e7a[44],JSON[_0x4e7a[31]](_0x9042x18));return _0x9042x23})};return null}}function removeEntity(_0x9042x15,_0x9042x16,_0x9042x17){return function(_0x9042x18){if(_0x9042x18){return _0x9042x18[_0x4e7a[48]]()[_0x4e7a[45]](function(){logger[_0x4e7a[24]](_0x4e7a[22],_0x9042x17,_0x9042x16,_0x4e7a[47]);logger[_0x4e7a[26]](_0x4e7a[25],_0x9042x17,_0x9042x16,_0x4e7a[47],JSON[_0x4e7a[31]](_0x9042x18));_0x9042x15[_0x4e7a[29]](204)[_0x4e7a[28]]()})}}}function handleEntityNotFound(_0x9042x15,_0x9042x16,_0x9042x17){return function(_0x9042x18){if(!_0x9042x18){logger[_0x4e7a[50]](_0x4e7a[22],_0x9042x17,404,_0x4e7a[49]);_0x9042x15[_0x4e7a[29]](404)[_0x4e7a[28]]();return null};return _0x9042x18}}function handleError(_0x9042x15,_0x9042x16,_0x9042x17){_0x9042x16= _0x9042x16|| 500;return function(_0x9042x27){logger[_0x4e7a[50]](_0x4e7a[22],_0x9042x17,_0x9042x16,JSON[_0x4e7a[31]](_0x9042x27));delete _0x9042x27[_0x4e7a[51]];_0x9042x15[_0x4e7a[29]](_0x9042x16)[_0x4e7a[52]](_0x9042x27)}}exports[_0x4e7a[53]]= function(_0x9042x28,_0x9042x15){var _0x9042x1b={},_0x9042x29={};_0x9042x29[_0x4e7a[54]]= _[_0x4e7a[57]](db[_0x4e7a[56]][_0x4e7a[55]]);_0x9042x29[_0x4e7a[58]]= _[_0x4e7a[57]](_0x9042x28[_0x4e7a[58]]);_0x9042x29[_0x4e7a[59]]= _[_0x4e7a[60]](_0x9042x29[_0x4e7a[54]],_0x9042x29[_0x4e7a[58]]);_0x9042x1b[_0x4e7a[61]]= _[_0x4e7a[60]](_0x9042x29[_0x4e7a[54]],qs[_0x4e7a[62]](_0x9042x28[_0x4e7a[58]][_0x4e7a[62]]));_0x9042x1b[_0x4e7a[61]]= (_0x9042x1b[_0x4e7a[61]][_0x4e7a[63]])?_0x9042x1b[_0x4e7a[61]]:_0x9042x29[_0x4e7a[54]];if(!_0x9042x28[_0x4e7a[58]][_0x4e7a[65]](_0x4e7a[64])){_0x9042x1b[_0x4e7a[35]]= qs[_0x4e7a[35]](_0x9042x28[_0x4e7a[58]][_0x4e7a[35]]);_0x9042x1b[_0x4e7a[34]]= qs[_0x4e7a[34]](_0x9042x28[_0x4e7a[58]][_0x4e7a[34]])};_0x9042x1b[_0x4e7a[66]]= qs[_0x4e7a[67]](_0x9042x28[_0x4e7a[58]][_0x4e7a[67]]);_0x9042x1b[_0x4e7a[68]]= qs[_0x4e7a[59]](_[_0x4e7a[69]](_0x9042x28[_0x4e7a[58]],_0x9042x29[_0x4e7a[59]]));if(_0x9042x28[_0x4e7a[58]][_0x4e7a[70]]){_0x9042x1b[_0x4e7a[68]]= _[_0x4e7a[73]](_0x9042x1b[_0x4e7a[68]],{$or:_[_0x4e7a[72]](_0x9042x1b[_0x4e7a[61]],function(_0x9042x2a){var _0x9042x2b={};_0x9042x2b[_0x9042x2a]= {$like:_0x4e7a[71]+ _0x9042x28[_0x4e7a[58]][_0x4e7a[70]]+ _0x4e7a[71]};return _0x9042x2b})})};_0x9042x1b= _[_0x4e7a[73]]({},_0x9042x1b,_0x9042x28[_0x4e7a[74]]);return db[_0x4e7a[56]][_0x4e7a[76]](_0x9042x1b)[_0x4e7a[45]](respondWithFilteredResult(_0x9042x15,_0x9042x1b,_0x4e7a[53]))[_0x4e7a[75]](handleError(_0x9042x15,null,_0x4e7a[53]))};exports[_0x4e7a[77]]= function(_0x9042x28,_0x9042x15){var _0x9042x1b={raw:true,where:{id:_0x9042x28[_0x4e7a[79]][_0x4e7a[78]]}},_0x9042x29={};_0x9042x29[_0x4e7a[54]]= _[_0x4e7a[57]](db[_0x4e7a[56]][_0x4e7a[55]]);_0x9042x29[_0x4e7a[58]]= _[_0x4e7a[57]](_0x9042x28[_0x4e7a[58]]);_0x9042x29[_0x4e7a[59]]= _[_0x4e7a[60]](_0x9042x29[_0x4e7a[54]],_0x9042x29[_0x4e7a[58]]);_0x9042x1b[_0x4e7a[61]]= _[_0x4e7a[60]](_0x9042x29[_0x4e7a[54]],qs[_0x4e7a[62]](_0x9042x28[_0x4e7a[58]][_0x4e7a[62]]));_0x9042x1b[_0x4e7a[61]]= (_0x9042x1b[_0x4e7a[61]][_0x4e7a[63]])?_0x9042x1b[_0x4e7a[61]]:_0x9042x29[_0x4e7a[54]];_0x9042x1b= _[_0x4e7a[73]]({},_0x9042x1b,_0x9042x28[_0x4e7a[74]]);return db[_0x4e7a[56]][_0x4e7a[80]](_0x9042x1b)[_0x4e7a[45]](handleEntityNotFound(_0x9042x15,null,_0x4e7a[77]))[_0x4e7a[45]](respondWithResult(_0x9042x15,null,_0x4e7a[77]))[_0x4e7a[75]](handleError(_0x9042x15,null,_0x4e7a[77]))};exports[_0x4e7a[81]]= function(_0x9042x28,_0x9042x15){return db[_0x4e7a[56]][_0x4e7a[81]](_0x9042x28[_0x4e7a[82]],{})[_0x4e7a[45]](respondWithResult(_0x9042x15,201,_0x4e7a[81]))[_0x4e7a[75]](handleError(_0x9042x15,null,_0x4e7a[81]))};exports[_0x4e7a[46]]= function(_0x9042x28,_0x9042x15){if(_0x9042x28[_0x4e7a[82]][_0x4e7a[78]]){delete _0x9042x28[_0x4e7a[82]][_0x4e7a[78]]};return db[_0x4e7a[56]][_0x4e7a[80]]({where:{id:_0x9042x28[_0x4e7a[79]][_0x4e7a[78]]}})[_0x4e7a[45]](handleEntityNotFound(_0x9042x15,null,_0x4e7a[46]))[_0x4e7a[45]](saveUpdates(_0x9042x28[_0x4e7a[82]],null,_0x4e7a[46]))[_0x4e7a[45]](respondWithResult(_0x9042x15,null,_0x4e7a[46]))[_0x4e7a[75]](handleError(_0x9042x15,null,_0x4e7a[46]))};exports[_0x4e7a[48]]= function(_0x9042x28,_0x9042x15){return db[_0x4e7a[56]][_0x4e7a[80]]({where:{id:_0x9042x28[_0x4e7a[79]][_0x4e7a[78]]}})[_0x4e7a[45]](handleEntityNotFound(_0x9042x15,null,_0x4e7a[48]))[_0x4e7a[45]](removeEntity(_0x9042x15,null,_0x4e7a[48]))[_0x4e7a[75]](handleError(_0x9042x15,null,_0x4e7a[48]))}
\ No newline at end of file
diff --git a/server/api/analyticTreeReport/analyticTreeReport.model.js b/server/api/analyticTreeReport/analyticTreeReport.model.js
new file mode 100644 (file)
index 0000000..ca081cb
--- /dev/null
@@ -0,0 +1 @@
+var _0x3050=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x5F\x72\x65\x70\x6F\x72\x74\x5F\x74\x72\x65\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x3050[0];var _=require(_0x3050[1]);var util=require(_0x3050[2]);var logger=require(_0x3050[4])(_0x3050[3]);var attributes=require(_0x3050[5]);module[_0x3050[6]]= function(_0x1621x5,_0x1621x6){return _0x1621x5[_0x3050[9]](_0x3050[7],attributes,{tableName:_0x3050[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/analyticTreeReport/analyticTreeReport.rpc.js b/server/api/analyticTreeReport/analyticTreeReport.rpc.js
new file mode 100644 (file)
index 0000000..aed0b89
--- /dev/null
@@ -0,0 +1 @@
+var _0xdeac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xdeac[0];var _=require(_0xdeac[1]);var util=require(_0xdeac[2]);var moment=require(_0xdeac[3]);var BPromise=require(_0xdeac[4]);var db=require(_0xdeac[6])[_0xdeac[5]];var utils=require(_0xdeac[7]);var logger=require(_0xdeac[9])(_0xdeac[8]);var jayson=require(_0xdeac[10]);var client=jayson[_0xdeac[12]][_0xdeac[11]]({port:9002});function respondWithRpcPromise(_0x6268xb,_0x6268xc,_0x6268xd){return  new BPromise(function(_0x6268xe,_0x6268xf){return client[_0xdeac[25]](_0x6268xb,_0x6268xd)[_0xdeac[24]](function(_0x6268x11){logger[_0xdeac[17]](_0xdeac[13],_0x6268xc,_0xdeac[16]);logger[_0xdeac[20]](_0xdeac[18],_0x6268xc,_0xdeac[16],JSON[_0xdeac[19]](_0x6268x11));if(_0x6268x11[_0xdeac[14]]){if(_0x6268x11[_0xdeac[14]][_0xdeac[21]]=== 500){logger[_0xdeac[14]](_0xdeac[13],_0x6268xc,_0x6268x11[_0xdeac[14]][_0xdeac[22]]);return _0x6268xf(_0x6268x11[_0xdeac[14]][_0xdeac[22]])};logger[_0xdeac[14]](_0xdeac[13],_0x6268xc,_0x6268x11[_0xdeac[14]][_0xdeac[22]]);return _0x6268xe(_0x6268x11[_0xdeac[14]][_0xdeac[22]])}else {logger[_0xdeac[17]](_0xdeac[13],_0x6268xc,_0xdeac[16]);_0x6268xe(_0x6268x11[_0xdeac[23]][_0xdeac[22]])}})[_0xdeac[15]](function(_0x6268x10){logger[_0xdeac[14]](_0xdeac[13],_0x6268xc,_0x6268x10);_0x6268xf(_0x6268x10)})})}
\ No newline at end of file
diff --git a/server/api/analyticTreeReport/index.js b/server/api/analyticTreeReport/index.js
new file mode 100644 (file)
index 0000000..23f47d9
--- /dev/null
@@ -0,0 +1 @@
+var _0x36e6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x36e6[0];var multer=require(_0x36e6[1]);var util=require(_0x36e6[2]);var path=require(_0x36e6[3]);var express=require(_0x36e6[4]);var router=express.Router();var auth=require(_0x36e6[5]);var config=require(_0x36e6[6]);var controller=require(_0x36e6[7]);router[_0x36e6[11]](_0x36e6[8],auth[_0x36e6[9]](),controller[_0x36e6[10]]);router[_0x36e6[11]](_0x36e6[12],auth[_0x36e6[9]](),controller[_0x36e6[13]]);router[_0x36e6[15]](_0x36e6[8],auth[_0x36e6[9]](),controller[_0x36e6[14]]);router[_0x36e6[17]](_0x36e6[12],auth[_0x36e6[9]](),controller[_0x36e6[16]]);router[_0x36e6[19]](_0x36e6[12],auth[_0x36e6[9]](),controller[_0x36e6[18]]);module[_0x36e6[20]]= router
\ No newline at end of file
diff --git a/server/api/authGoogle/authGoogle.controller.js b/server/api/authGoogle/authGoogle.controller.js
new file mode 100644 (file)
index 0000000..74e3bbe
--- /dev/null
@@ -0,0 +1 @@
+var _0x8436=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x67\x6F\x6F\x67\x6C\x65\x2D\x6F\x61\x75\x74\x68\x32\x30","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x6C\x6F\x67\x69\x6E","\x67\x6F\x6F\x67\x6C\x65","\x2F\x6C\x6F\x67\x69\x6E","\x70\x72\x6F\x66\x69\x6C\x65","\x65\x6D\x61\x69\x6C","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x6C\x69\x65\x6E\x74\x49\x44","\x69\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x73\x65\x63\x72\x65\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x52\x4C","","\x63\x61\x74\x63\x68","\x55\x73\x65\x72\x20\x65\x6D\x61\x69\x6C\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x21","\x74\x68\x65\x6E","\x65\x6D\x61\x69\x6C\x73","\x76\x61\x6C\x75\x65","\x6D\x61\x70","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64","\x55\x73\x65\x72","\x75\x73\x65"];_0x8436[0];var _=require(_0x8436[1]);var passport=require(_0x8436[2]);var GoogleStrategy=require(_0x8436[4])[_0x8436[3]];var db=require(_0x8436[6])[_0x8436[5]];var config=require(_0x8436[7]);var signToken=require(_0x8436[9])[_0x8436[8]];exports[_0x8436[10]]= passport[_0x8436[15]](_0x8436[11],{failureRedirect:_0x8436[12],scope:[_0x8436[13],_0x8436[14]],session:false});exports[_0x8436[16]]= passport[_0x8436[15]](_0x8436[11],{failureRedirect:_0x8436[12],session:false});passport[_0x8436[34]]( new GoogleStrategy({clientID:config[_0x8436[11]]?config[_0x8436[11]][_0x8436[17]]:_0x8436[18],clientSecret:config[_0x8436[11]]?config[_0x8436[11]][_0x8436[19]]:_0x8436[20],callbackURL:config[_0x8436[11]]?config[_0x8436[11]][_0x8436[21]]:_0x8436[22]},function(_0xd5a9x7,_0xd5a9x8,_0xd5a9x9,_0xd5a9xa){db[_0x8436[33]][_0x8436[32]]({where:{email:_[_0x8436[28]](_0xd5a9x9[_0x8436[26]],_0x8436[27]),role:{$or:[_0x8436[29],_0x8436[30],_0x8436[31]]}}})[_0x8436[25]](function(_0xd5a9xc){if(_0xd5a9xc){return _0xd5a9xa(null,_0xd5a9xc)};_0xd5a9xa(_0x8436[24])})[_0x8436[23]](function(_0xd5a9xb){_0xd5a9xa(_0xd5a9xb)})}))
\ No newline at end of file
diff --git a/server/api/authGoogle/index.js b/server/api/authGoogle/index.js
new file mode 100644 (file)
index 0000000..618c3fd
--- /dev/null
@@ -0,0 +1 @@
+var _0xaac6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x70\x61\x73\x73\x70\x6F\x72\x74","\x2E\x2F\x61\x75\x74\x68\x47\x6F\x6F\x67\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2F","\x6C\x6F\x67\x69\x6E","\x67\x65\x74","\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x65\x78\x70\x6F\x72\x74\x73"];_0xaac6[0];var express=require(_0xaac6[1]);var passport=require(_0xaac6[2]);var router=express.Router();var controller=require(_0xaac6[3]);var setTokenCookie=require(_0xaac6[5])[_0xaac6[4]];router[_0xaac6[8]](_0xaac6[6],controller[_0xaac6[7]]);router[_0xaac6[8]](_0xaac6[9],controller[_0xaac6[10]],setTokenCookie);module[_0xaac6[11]]= router
\ No newline at end of file
diff --git a/server/api/authLocal/authLocal.controller.js b/server/api/authLocal/authLocal.controller.js
new file mode 100644 (file)
index 0000000..1b3a91f
--- /dev/null
@@ -0,0 +1 @@
+var _0xf532=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x70\x61\x73\x73\x70\x6F\x72\x74","\x53\x74\x72\x61\x74\x65\x67\x79","\x70\x61\x73\x73\x70\x6F\x72\x74\x2D\x6C\x6F\x63\x61\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x63\x61\x74\x63\x68","\x61\x67\x65\x6E\x74\x73","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x6C\x6F\x67\x69\x6E\x20\x68\x61\x73\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64","\x74\x68\x65\x6E","\x67\x65\x74\x4C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x75\x74\x69\x6C","\x69\x64","\x63\x6F\x75\x6E\x74","\x55\x73\x65\x72","\x54\x68\x69\x73\x20\x70\x61\x73\x73\x77\x6F\x72\x64\x20\x69\x73\x20\x6E\x6F\x74\x20\x63\x6F\x72\x72\x65\x63\x74\x2E","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x54\x68\x69\x73\x20\x6E\x61\x6D\x65\x20\x69\x73\x20\x6E\x6F\x74\x20\x72\x65\x67\x69\x73\x74\x65\x72\x65\x64\x2E","\x74\x72\x69\x6D","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x66\x69\x6E\x64","\x6C\x6F\x67\x69\x6E","\x6C\x6F\x63\x61\x6C","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x53\x6F\x6D\x65\x74\x68\x69\x6E\x67\x20\x77\x65\x6E\x74\x20\x77\x72\x6F\x6E\x67\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x75\x73\x65"];_0xf532[0];var util=require(_0xf532[1]);var passport=require(_0xf532[2]);var LocalStrategy=require(_0xf532[4])[_0xf532[3]];var BPromise=require(_0xf532[5]);var db=require(_0xf532[7])[_0xf532[6]];var signToken=require(_0xf532[9])[_0xf532[8]];var getLicense=function(_0x3d44x8){return  new BPromise(function(_0x3d44x9,_0x3d44xa){var _0x3d44xb=0;_0x3d44x8[_0xf532[10]]!== _0xf532[11]&& _0x3d44x9(_0x3d44x8);return db[_0xf532[20]][_0xf532[19]]({where:{role:_0xf532[11],online:true,id:{$ne:_0x3d44x8[_0xf532[18]]}}})[_0xf532[15]](function(_0x3d44xe){_0x3d44xb= _0x3d44xe;return require(_0xf532[17])[_0xf532[16]]()})[_0xf532[15]](function(_0x3d44xd){if(_0x3d44xd&& _0x3d44xd[_0xf532[13]]&& _0x3d44xb>= _0x3d44xd[_0xf532[13]]){return _0x3d44xa({message:_0xf532[14]})};return _0x3d44x9(_0x3d44x8)})[_0xf532[12]](function(_0x3d44xc){return _0x3d44xa(_0x3d44xc)})})};function localAuthenticate(_0x3d44x10,_0x3d44x11,_0x3d44x12,_0x3d44x13){var _0x3d44x14;_0x3d44x10[_0xf532[28]]({where:{name:_0x3d44x11[_0xf532[25]]()[_0xf532[24]](),role:{$or:[_0xf532[26],_0xf532[27],_0xf532[11]]}}})[_0xf532[15]](function(_0x3d44x8){if(!_0x3d44x8){return _0x3d44x13(null,false,{message:_0xf532[23]})};return getLicense(_0x3d44x8)})[_0xf532[15]](function(_0x3d44x8){_0x3d44x8[_0xf532[22]](_0x3d44x12,function(_0x3d44x15,_0x3d44x16){if(_0x3d44x15){return _0x3d44x13(_0x3d44x15)};if(!_0x3d44x16){return _0x3d44x13(null,false,{message:_0xf532[21]})}else {return _0x3d44x13(null,_0x3d44x8)}})})[_0xf532[12]](function(_0x3d44xc){_0x3d44x13(_0x3d44xc)})}exports[_0xf532[29]]= function(_0x3d44x17,_0x3d44x18,_0x3d44x19){passport[_0xf532[22]](_0xf532[30],function(_0x3d44xc,_0x3d44x8,_0x3d44x1a){var _0x3d44x1b=_0x3d44xc|| _0x3d44x1a;if(_0x3d44x1b){return _0x3d44x18[_0xf532[32]](401)[_0xf532[31]](_0x3d44x1b)};if(!_0x3d44x8){return _0x3d44x18[_0xf532[32]](404)[_0xf532[31]]({message:_0xf532[33]})};var _0x3d44x1c=signToken(_0x3d44x8[_0xf532[18]],_0x3d44x8[_0xf532[10]]);_0x3d44x18[_0xf532[31]]({id:_0x3d44x8[_0xf532[18]],token:_0x3d44x1c})})(_0x3d44x17,_0x3d44x18,_0x3d44x19)};passport[_0xf532[36]]( new LocalStrategy({usernameField:_0xf532[34],passwordField:_0xf532[35]},function(_0x3d44x11,_0x3d44x12,_0x3d44x13){return localAuthenticate(db.User,_0x3d44x11,_0x3d44x12,_0x3d44x13)}))
\ No newline at end of file
diff --git a/server/api/authLocal/index.js b/server/api/authLocal/index.js
new file mode 100644 (file)
index 0000000..65a9972
--- /dev/null
@@ -0,0 +1 @@
+var _0x119c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x61\x75\x74\x68\x4C\x6F\x63\x61\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x6C\x6F\x67\x69\x6E","\x70\x6F\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x119c[0];var express=require(_0x119c[1]);var router=express.Router();var controller=require(_0x119c[2]);router[_0x119c[5]](_0x119c[3],controller[_0x119c[4]]);module[_0x119c[6]]= router
\ No newline at end of file
diff --git a/server/api/automation/automation.attributes.js b/server/api/automation/automation.attributes.js
new file mode 100644 (file)
index 0000000..e2c5949
--- /dev/null
@@ -0,0 +1 @@
+var _0xbb37=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52"];_0xbb37[0];var Sequelize=require(_0xbb37[1]);module[_0xbb37[2]]= {name:{type:Sequelize[_0xbb37[3]],allowNull:false},channel:{type:Sequelize[_0xbb37[3]]},description:{type:Sequelize[_0xbb37[3]]},status:{type:Sequelize[_0xbb37[4]],defaultValue:false},timeout:{type:Sequelize[_0xbb37[5]],defaultValue:10}}
\ No newline at end of file
diff --git a/server/api/automation/automation.controller.js b/server/api/automation/automation.controller.js
new file mode 100644 (file)
index 0000000..9873fe8
--- /dev/null
@@ -0,0 +1 @@
+var _0xd3e9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x69\x64\x73","\x6F\x6D\x69\x74","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x67\x65\x74\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x73","\x41\x63\x74\x69\x6F\x6E","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73"];_0xd3e9[0];var jsonpatch=require(_0xd3e9[1]);var rp=require(_0xd3e9[2]);var moment=require(_0xd3e9[3]);var BPromise=require(_0xd3e9[4]);var util=require(_0xd3e9[5]);var path=require(_0xd3e9[6]);var sox=require(_0xd3e9[7]);var ejs=require(_0xd3e9[8]);var fs=require(_0xd3e9[9]);var _=require(_0xd3e9[10]);var squel=require(_0xd3e9[11]);var crypto=require(_0xd3e9[12]);var jsforce=require(_0xd3e9[13]);var toCsv=require(_0xd3e9[14]);var qs=require(_0xd3e9[15]);var logger=require(_0xd3e9[17])(_0xd3e9[16]);var utils=require(_0xd3e9[18]);var config=require(_0xd3e9[19]);var db=require(_0xd3e9[21])[_0xd3e9[20]];function respondWithStatusCode(_0x3189x15,_0x3189x16,_0x3189x17){_0x3189x16= _0x3189x16|| 204;return function(_0x3189x18){if(_0x3189x18){logger[_0xd3e9[24]](_0xd3e9[22],_0x3189x17,_0x3189x16,_0xd3e9[23]);logger[_0xd3e9[26]](_0xd3e9[25],_0x3189x17,_0x3189x16,_0xd3e9[23]);return _0x3189x15[_0xd3e9[27]](_0x3189x16)};return _0x3189x15[_0xd3e9[29]](304)[_0xd3e9[28]]()}}function respondWithResult(_0x3189x15,_0x3189x16,_0x3189x17){_0x3189x16= _0x3189x16|| 200;return function(_0x3189x18){if(_0x3189x18){logger[_0xd3e9[24]](_0xd3e9[22],_0x3189x17,_0x3189x16,_0xd3e9[30]);logger[_0xd3e9[26]](_0xd3e9[25],_0x3189x17,_0x3189x16,_0xd3e9[30],JSON[_0xd3e9[31]](_0x3189x18));return _0x3189x15[_0xd3e9[29]](_0x3189x16)[_0xd3e9[32]](_0x3189x18)};return _0x3189x15[_0xd3e9[29]](304)[_0xd3e9[28]]()}}function respondWithFilteredResult(_0x3189x15,_0x3189x1b,_0x3189x17){return function(_0x3189x18){if(_0x3189x18){var _0x3189x1c=_0x3189x18[_0xd3e9[33]],_0x3189x1d=_0x3189x1b[_0xd3e9[34]],_0x3189x1e=_0x3189x1b[_0xd3e9[34]]+ _0x3189x1b[_0xd3e9[35]],_0x3189x16;if(_0x3189x1e>= _0x3189x1c){_0x3189x1e= _0x3189x1c;_0x3189x16= 200}else {_0x3189x16= 206};_0x3189x15[_0xd3e9[29]](_0x3189x16);logger[_0xd3e9[24]](_0xd3e9[22],_0x3189x17,_0x3189x16,_0xd3e9[36]);logger[_0xd3e9[26]](_0xd3e9[25],_0x3189x17,_0x3189x16,_0xd3e9[30],JSON[_0xd3e9[31]](_0x3189x18));return _0x3189x15[_0xd3e9[40]](_0xd3e9[37],_0x3189x1d+ _0xd3e9[38]+ _0x3189x1e+ _0xd3e9[39]+ _0x3189x1c)[_0xd3e9[32]](_0x3189x18)};return null}}function patchUpdates(_0x3189x20){return function(_0x3189x18){try{jsonpatch[_0xd3e9[41]](_0x3189x18,_0x3189x20,true)}catch(err){return BPromise[_0xd3e9[42]](err)};return _0x3189x18[_0xd3e9[43]]()}}function saveUpdates(_0x3189x22,_0x3189x16,_0x3189x17){return function(_0x3189x18){if(_0x3189x18){return _0x3189x18[_0xd3e9[46]](_0x3189x22)[_0xd3e9[45]](function(_0x3189x23){logger[_0xd3e9[24]](_0xd3e9[22],_0x3189x17,_0x3189x16,_0xd3e9[44]);logger[_0xd3e9[26]](_0xd3e9[25],_0x3189x17,_0x3189x16,_0xd3e9[44],JSON[_0xd3e9[31]](_0x3189x18));return _0x3189x23})};return null}}function removeEntity(_0x3189x15,_0x3189x16,_0x3189x17){return function(_0x3189x18){if(_0x3189x18){return _0x3189x18[_0xd3e9[48]]()[_0xd3e9[45]](function(){logger[_0xd3e9[24]](_0xd3e9[22],_0x3189x17,_0x3189x16,_0xd3e9[47]);logger[_0xd3e9[26]](_0xd3e9[25],_0x3189x17,_0x3189x16,_0xd3e9[47],JSON[_0xd3e9[31]](_0x3189x18));_0x3189x15[_0xd3e9[29]](204)[_0xd3e9[28]]()})}}}function handleEntityNotFound(_0x3189x15,_0x3189x16,_0x3189x17){return function(_0x3189x18){if(!_0x3189x18){logger[_0xd3e9[50]](_0xd3e9[22],_0x3189x17,404,_0xd3e9[49]);_0x3189x15[_0xd3e9[29]](404)[_0xd3e9[28]]();return null};return _0x3189x18}}function handleError(_0x3189x15,_0x3189x16,_0x3189x17){_0x3189x16= _0x3189x16|| 500;return function(_0x3189x27){logger[_0xd3e9[50]](_0xd3e9[22],_0x3189x17,_0x3189x16,JSON[_0xd3e9[31]](_0x3189x27));delete _0x3189x27[_0xd3e9[51]];_0x3189x15[_0xd3e9[29]](_0x3189x16)[_0xd3e9[52]](_0x3189x27)}}exports[_0xd3e9[53]]= function(_0x3189x28,_0x3189x15){var _0x3189x1b={},_0x3189x29={};_0x3189x29[_0xd3e9[54]]= _[_0xd3e9[57]](db[_0xd3e9[56]][_0xd3e9[55]]);_0x3189x29[_0xd3e9[58]]= _[_0xd3e9[57]](_0x3189x28[_0xd3e9[58]]);_0x3189x29[_0xd3e9[59]]= _[_0xd3e9[60]](_0x3189x29[_0xd3e9[54]],_0x3189x29[_0xd3e9[58]]);_0x3189x1b[_0xd3e9[61]]= _[_0xd3e9[60]](_0x3189x29[_0xd3e9[54]],qs[_0xd3e9[62]](_0x3189x28[_0xd3e9[58]][_0xd3e9[62]]));_0x3189x1b[_0xd3e9[61]]= (_0x3189x1b[_0xd3e9[61]][_0xd3e9[63]])?_0x3189x1b[_0xd3e9[61]]:_0x3189x29[_0xd3e9[54]];if(!_0x3189x28[_0xd3e9[58]][_0xd3e9[65]](_0xd3e9[64])){_0x3189x1b[_0xd3e9[35]]= qs[_0xd3e9[35]](_0x3189x28[_0xd3e9[58]][_0xd3e9[35]]);_0x3189x1b[_0xd3e9[34]]= qs[_0xd3e9[34]](_0x3189x28[_0xd3e9[58]][_0xd3e9[34]])};_0x3189x1b[_0xd3e9[66]]= qs[_0xd3e9[67]](_0x3189x28[_0xd3e9[58]][_0xd3e9[67]]);_0x3189x1b[_0xd3e9[68]]= qs[_0xd3e9[59]](_[_0xd3e9[69]](_0x3189x28[_0xd3e9[58]],_0x3189x29[_0xd3e9[59]]));if(_0x3189x28[_0xd3e9[58]][_0xd3e9[70]]){_0x3189x1b[_0xd3e9[68]]= _[_0xd3e9[73]](_0x3189x1b[_0xd3e9[68]],{$or:_[_0xd3e9[72]](_0x3189x1b[_0xd3e9[61]],function(_0x3189x2a){var _0x3189x2b={};_0x3189x2b[_0x3189x2a]= {$like:_0xd3e9[71]+ _0x3189x28[_0xd3e9[58]][_0xd3e9[70]]+ _0xd3e9[71]};return _0x3189x2b})})};_0x3189x1b= _[_0xd3e9[73]]({},_0x3189x1b,_0x3189x28[_0xd3e9[74]]);return db[_0xd3e9[56]][_0xd3e9[76]](_0x3189x1b)[_0xd3e9[45]](respondWithFilteredResult(_0x3189x15,_0x3189x1b,_0xd3e9[53]))[_0xd3e9[75]](handleError(_0x3189x15,null,_0xd3e9[53]))};exports[_0xd3e9[77]]= function(_0x3189x28,_0x3189x15){var _0x3189x1b={raw:false,where:{id:_0x3189x28[_0xd3e9[79]][_0xd3e9[78]]}},_0x3189x29={};_0x3189x29[_0xd3e9[54]]= _[_0xd3e9[57]](db[_0xd3e9[56]][_0xd3e9[55]]);_0x3189x29[_0xd3e9[58]]= _[_0xd3e9[57]](_0x3189x28[_0xd3e9[58]]);_0x3189x29[_0xd3e9[59]]= _[_0xd3e9[60]](_0x3189x29[_0xd3e9[54]],_0x3189x29[_0xd3e9[58]]);_0x3189x1b[_0xd3e9[61]]= _[_0xd3e9[60]](_0x3189x29[_0xd3e9[54]],qs[_0xd3e9[62]](_0x3189x28[_0xd3e9[58]][_0xd3e9[62]]));_0x3189x1b[_0xd3e9[61]]= (_0x3189x1b[_0xd3e9[61]][_0xd3e9[63]])?_0x3189x1b[_0xd3e9[61]]:_0x3189x29[_0xd3e9[54]];_0x3189x1b= _[_0xd3e9[73]]({},_0x3189x1b,_0x3189x28[_0xd3e9[74]]);return db[_0xd3e9[56]][_0xd3e9[80]](_0x3189x1b)[_0xd3e9[45]](handleEntityNotFound(_0x3189x15,null,_0xd3e9[77]))[_0xd3e9[45]](respondWithResult(_0x3189x15,null,_0xd3e9[77]))[_0xd3e9[75]](handleError(_0x3189x15,null,_0xd3e9[77]))};exports[_0xd3e9[81]]= function(_0x3189x28,_0x3189x15){return db[_0xd3e9[56]][_0xd3e9[81]](_0x3189x28[_0xd3e9[82]],{})[_0xd3e9[45]](respondWithResult(_0x3189x15,201,_0xd3e9[81]))[_0xd3e9[75]](handleError(_0x3189x15,null,_0xd3e9[81]))};exports[_0xd3e9[46]]= function(_0x3189x28,_0x3189x15){if(_0x3189x28[_0xd3e9[82]][_0xd3e9[78]]){delete _0x3189x28[_0xd3e9[82]][_0xd3e9[78]]};return db[_0xd3e9[56]][_0xd3e9[80]]({where:{id:_0x3189x28[_0xd3e9[79]][_0xd3e9[78]]}})[_0xd3e9[45]](handleEntityNotFound(_0x3189x15,null,_0xd3e9[46]))[_0xd3e9[45]](saveUpdates(_0x3189x28[_0xd3e9[82]],null,_0xd3e9[46]))[_0xd3e9[45]](respondWithResult(_0x3189x15,null,_0xd3e9[46]))[_0xd3e9[75]](handleError(_0x3189x15,null,_0xd3e9[46]))};exports[_0xd3e9[48]]= function(_0x3189x28,_0x3189x15){return db[_0xd3e9[56]][_0xd3e9[80]]({where:{id:_0x3189x28[_0xd3e9[79]][_0xd3e9[78]]}})[_0xd3e9[45]](handleEntityNotFound(_0x3189x15,null,_0xd3e9[48]))[_0xd3e9[45]](removeEntity(_0x3189x15,null,_0xd3e9[48]))[_0xd3e9[75]](handleError(_0x3189x15,null,_0xd3e9[48]))};exports[_0xd3e9[83]]= function(_0x3189x28,_0x3189x15,_0x3189x2c){return db[_0xd3e9[86]][_0xd3e9[80]]({where:{id:_0x3189x28[_0xd3e9[79]][_0xd3e9[78]]}})[_0xd3e9[45]](handleEntityNotFound(_0x3189x15,null,_0xd3e9[83]))[_0xd3e9[45]](function(_0x3189x18){if(_0x3189x18){return _0x3189x18[_0xd3e9[83]](_0x3189x28[_0xd3e9[82]][_0xd3e9[84]],_[_0xd3e9[85]](_0x3189x28[_0xd3e9[82]],[_0xd3e9[84],_0xd3e9[78]])|| {})};return null})[_0xd3e9[45]](respondWithResult(_0x3189x15,null,_0xd3e9[83]))[_0xd3e9[75]](handleError(_0x3189x15,null,_0xd3e9[83]))};exports[_0xd3e9[87]]= function(_0x3189x28,_0x3189x18,_0x3189x2c){var _0x3189x1b={};var _0x3189x29={};var _0x3189x2d;var _0x3189x1c;return db[_0xd3e9[56]][_0xd3e9[88]]({where:{id:_0x3189x28[_0xd3e9[79]][_0xd3e9[78]]}})[_0xd3e9[45]](handleEntityNotFound(_0x3189x18,null,_0xd3e9[87]))[_0xd3e9[45]](function(_0x3189x18){if(_0x3189x18){_0x3189x2d= _0x3189x18;_0x3189x29[_0xd3e9[54]]= _[_0xd3e9[57]](db[_0xd3e9[86]][_0xd3e9[55]]);_0x3189x29[_0xd3e9[58]]= _[_0xd3e9[57]](_0x3189x28[_0xd3e9[58]]);_0x3189x29[_0xd3e9[59]]= _[_0xd3e9[60]](_0x3189x29[_0xd3e9[54]],_0x3189x29[_0xd3e9[58]]);_0x3189x1b[_0xd3e9[61]]= _[_0xd3e9[60]](_0x3189x29[_0xd3e9[54]],qs[_0xd3e9[62]](_0x3189x28[_0xd3e9[58]][_0xd3e9[62]]));_0x3189x1b[_0xd3e9[61]]= (_0x3189x1b[_0xd3e9[61]][_0xd3e9[63]])?_0x3189x1b[_0xd3e9[61]]:_0x3189x29[_0xd3e9[54]];_0x3189x1b[_0xd3e9[66]]= qs[_0xd3e9[67]](_0x3189x28[_0xd3e9[58]][_0xd3e9[67]]);_0x3189x1b[_0xd3e9[68]]= qs[_0xd3e9[59]](_[_0xd3e9[69]](_0x3189x28[_0xd3e9[58]],_0x3189x29[_0xd3e9[59]]));if(_0x3189x28[_0xd3e9[58]][_0xd3e9[70]]){_0x3189x1b[_0xd3e9[68]]= _[_0xd3e9[73]](_0x3189x1b[_0xd3e9[68]],{$or:_[_0xd3e9[72]](_0x3189x1b[_0xd3e9[61]],function(_0x3189x2a){var _0x3189x2b={};_0x3189x2b[_0x3189x2a]= {$like:_0xd3e9[71]+ _0x3189x28[_0xd3e9[58]][_0xd3e9[70]]+ _0xd3e9[71]};return _0x3189x2b})})};_0x3189x1b= _[_0xd3e9[73]]({},_0x3189x1b,_0x3189x28[_0xd3e9[74]]);return _0x3189x2d[_0xd3e9[87]](_0x3189x1b)}})[_0xd3e9[45]](function(_0x3189x2f){if(_0x3189x2f){_0x3189x1c= _0x3189x2f[_0xd3e9[63]];if(!_0x3189x28[_0xd3e9[58]][_0xd3e9[65]](_0xd3e9[64])){_0x3189x1b[_0xd3e9[35]]= qs[_0xd3e9[35]](_0x3189x28[_0xd3e9[58]][_0xd3e9[35]]);_0x3189x1b[_0xd3e9[34]]= qs[_0xd3e9[34]](_0x3189x28[_0xd3e9[58]][_0xd3e9[34]])};return _0x3189x2d[_0xd3e9[87]](_0x3189x1b)}})[_0xd3e9[45]](function(_0x3189x2e){return _0x3189x2e?{count:_0x3189x1c,rows:_0x3189x2e}:null})[_0xd3e9[45]](respondWithResult(_0x3189x18,null,_0xd3e9[87]))[_0xd3e9[75]](handleError(_0x3189x18,null,_0xd3e9[87]))};exports[_0xd3e9[89]]= function(_0x3189x28,_0x3189x15,_0x3189x2c){return db[_0xd3e9[90]][_0xd3e9[80]]({where:{id:_0x3189x28[_0xd3e9[79]][_0xd3e9[78]]}})[_0xd3e9[45]](handleEntityNotFound(_0x3189x15,null,_0xd3e9[89]))[_0xd3e9[45]](function(_0x3189x18){if(_0x3189x18){return _0x3189x18[_0xd3e9[89]](_0x3189x28[_0xd3e9[82]][_0xd3e9[84]],_[_0xd3e9[85]](_0x3189x28[_0xd3e9[82]],[_0xd3e9[84],_0xd3e9[78]])|| {})};return null})[_0xd3e9[45]](respondWithResult(_0x3189x15,null,_0xd3e9[89]))[_0xd3e9[75]](handleError(_0x3189x15,null,_0xd3e9[89]))};exports[_0xd3e9[91]]= function(_0x3189x28,_0x3189x18,_0x3189x2c){var _0x3189x1b={};var _0x3189x29={};var _0x3189x2d;var _0x3189x1c;return db[_0xd3e9[56]][_0xd3e9[88]]({where:{id:_0x3189x28[_0xd3e9[79]][_0xd3e9[78]]}})[_0xd3e9[45]](handleEntityNotFound(_0x3189x18,null,_0xd3e9[91]))[_0xd3e9[45]](function(_0x3189x18){if(_0x3189x18){_0x3189x2d= _0x3189x18;_0x3189x29[_0xd3e9[54]]= _[_0xd3e9[57]](db[_0xd3e9[90]][_0xd3e9[55]]);_0x3189x29[_0xd3e9[58]]= _[_0xd3e9[57]](_0x3189x28[_0xd3e9[58]]);_0x3189x29[_0xd3e9[59]]= _[_0xd3e9[60]](_0x3189x29[_0xd3e9[54]],_0x3189x29[_0xd3e9[58]]);_0x3189x1b[_0xd3e9[61]]= _[_0xd3e9[60]](_0x3189x29[_0xd3e9[54]],qs[_0xd3e9[62]](_0x3189x28[_0xd3e9[58]][_0xd3e9[62]]));_0x3189x1b[_0xd3e9[61]]= (_0x3189x1b[_0xd3e9[61]][_0xd3e9[63]])?_0x3189x1b[_0xd3e9[61]]:_0x3189x29[_0xd3e9[54]];_0x3189x1b[_0xd3e9[66]]= qs[_0xd3e9[67]](_0x3189x28[_0xd3e9[58]][_0xd3e9[67]]);_0x3189x1b[_0xd3e9[68]]= qs[_0xd3e9[59]](_[_0xd3e9[69]](_0x3189x28[_0xd3e9[58]],_0x3189x29[_0xd3e9[59]]));if(_0x3189x28[_0xd3e9[58]][_0xd3e9[70]]){_0x3189x1b[_0xd3e9[68]]= _[_0xd3e9[73]](_0x3189x1b[_0xd3e9[68]],{$or:_[_0xd3e9[72]](_0x3189x1b[_0xd3e9[61]],function(_0x3189x2a){var _0x3189x2b={};_0x3189x2b[_0x3189x2a]= {$like:_0xd3e9[71]+ _0x3189x28[_0xd3e9[58]][_0xd3e9[70]]+ _0xd3e9[71]};return _0x3189x2b})})};_0x3189x1b= _[_0xd3e9[73]]({},_0x3189x1b,_0x3189x28[_0xd3e9[74]]);return _0x3189x2d[_0xd3e9[91]](_0x3189x1b)}})[_0xd3e9[45]](function(_0x3189x2f){if(_0x3189x2f){_0x3189x1c= _0x3189x2f[_0xd3e9[63]];if(!_0x3189x28[_0xd3e9[58]][_0xd3e9[65]](_0xd3e9[64])){_0x3189x1b[_0xd3e9[35]]= qs[_0xd3e9[35]](_0x3189x28[_0xd3e9[58]][_0xd3e9[35]]);_0x3189x1b[_0xd3e9[34]]= qs[_0xd3e9[34]](_0x3189x28[_0xd3e9[58]][_0xd3e9[34]])};return _0x3189x2d[_0xd3e9[91]](_0x3189x1b)}})[_0xd3e9[45]](function(_0x3189x2e){return _0x3189x2e?{count:_0x3189x1c,rows:_0x3189x2e}:null})[_0xd3e9[45]](respondWithResult(_0x3189x18,null,_0xd3e9[91]))[_0xd3e9[75]](handleError(_0x3189x18,null,_0xd3e9[91]))}
\ No newline at end of file
diff --git a/server/api/automation/automation.model.js b/server/api/automation/automation.model.js
new file mode 100644 (file)
index 0000000..ee46a49
--- /dev/null
@@ -0,0 +1 @@
+var _0xcb64=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x74\x6F\x6F\x6C\x73\x5F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xcb64[0];var _=require(_0xcb64[1]);var util=require(_0xcb64[2]);var logger=require(_0xcb64[4])(_0xcb64[3]);var attributes=require(_0xcb64[5]);module[_0xcb64[6]]= function(_0xec6fx5,_0xec6fx6){return _0xec6fx5[_0xcb64[9]](_0xcb64[7],attributes,{tableName:_0xcb64[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/automation/automation.rpc.js b/server/api/automation/automation.rpc.js
new file mode 100644 (file)
index 0000000..b9905f0
--- /dev/null
@@ -0,0 +1 @@
+var _0x89bf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x89bf[0];var _=require(_0x89bf[1]);var util=require(_0x89bf[2]);var moment=require(_0x89bf[3]);var BPromise=require(_0x89bf[4]);var db=require(_0x89bf[6])[_0x89bf[5]];var utils=require(_0x89bf[7]);var logger=require(_0x89bf[9])(_0x89bf[8]);var jayson=require(_0x89bf[10]);var client=jayson[_0x89bf[12]][_0x89bf[11]]({port:9002});function respondWithRpcPromise(_0x3019xb,_0x3019xc,_0x3019xd){return  new BPromise(function(_0x3019xe,_0x3019xf){return client[_0x89bf[25]](_0x3019xb,_0x3019xd)[_0x89bf[24]](function(_0x3019x11){logger[_0x89bf[17]](_0x89bf[13],_0x3019xc,_0x89bf[16]);logger[_0x89bf[20]](_0x89bf[18],_0x3019xc,_0x89bf[16],JSON[_0x89bf[19]](_0x3019x11));if(_0x3019x11[_0x89bf[14]]){if(_0x3019x11[_0x89bf[14]][_0x89bf[21]]=== 500){logger[_0x89bf[14]](_0x89bf[13],_0x3019xc,_0x3019x11[_0x89bf[14]][_0x89bf[22]]);return _0x3019xf(_0x3019x11[_0x89bf[14]][_0x89bf[22]])};logger[_0x89bf[14]](_0x89bf[13],_0x3019xc,_0x3019x11[_0x89bf[14]][_0x89bf[22]]);return _0x3019xe(_0x3019x11[_0x89bf[14]][_0x89bf[22]])}else {logger[_0x89bf[17]](_0x89bf[13],_0x3019xc,_0x89bf[16]);_0x3019xe(_0x3019x11[_0x89bf[23]][_0x89bf[22]])}})[_0x89bf[15]](function(_0x3019x10){logger[_0x89bf[14]](_0x89bf[13],_0x3019xc,_0x3019x10);_0x3019xf(_0x3019x10)})})}
\ No newline at end of file
diff --git a/server/api/automation/index.js b/server/api/automation/index.js
new file mode 100644 (file)
index 0000000..4af122b
--- /dev/null
@@ -0,0 +1 @@
+var _0x9841=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9841[0];var multer=require(_0x9841[1]);var util=require(_0x9841[2]);var path=require(_0x9841[3]);var express=require(_0x9841[4]);var router=express.Router();var auth=require(_0x9841[5]);var config=require(_0x9841[6]);var controller=require(_0x9841[7]);router[_0x9841[11]](_0x9841[8],auth[_0x9841[9]](),controller[_0x9841[10]]);router[_0x9841[11]](_0x9841[12],auth[_0x9841[9]](),controller[_0x9841[13]]);router[_0x9841[11]](_0x9841[14],auth[_0x9841[9]](),controller[_0x9841[15]]);router[_0x9841[11]](_0x9841[16],auth[_0x9841[9]](),controller[_0x9841[17]]);router[_0x9841[19]](_0x9841[8],auth[_0x9841[9]](),controller[_0x9841[18]]);router[_0x9841[19]](_0x9841[14],auth[_0x9841[9]](),controller[_0x9841[20]]);router[_0x9841[19]](_0x9841[16],auth[_0x9841[9]](),controller[_0x9841[21]]);router[_0x9841[23]](_0x9841[12],auth[_0x9841[9]](),controller[_0x9841[22]]);router[_0x9841[25]](_0x9841[12],auth[_0x9841[9]](),controller[_0x9841[24]]);module[_0x9841[26]]= router
\ No newline at end of file
diff --git a/server/api/campaign/campaign.attributes.js b/server/api/campaign/campaign.attributes.js
new file mode 100644 (file)
index 0000000..0e10722
--- /dev/null
@@ -0,0 +1 @@
+var _0x4f6d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x69\x76\x72","\x42\x4F\x4F\x4C\x45\x41\x4E","\x41\x63\x74\x69\x76\x65\x2F\x44\x69\x73\x61\x63\x74\x69\x76\x65\x20\x43\x61\x6D\x70\x61\x69\x67\x6E","\x55\x4E\x53\x49\x47\x4E\x45\x44","\x4D\x61\x78\x20\x32\x30\x30\x20\x63\x61\x6C\x6C\x73\x2E","\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x20\x54\x69\x6D\x65\x6F\x75\x74\x20\x53\x65\x63\x6F\x6E\x64\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x23\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x42\x75\x73\x79\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x42\x75\x73\x79\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x4E\x6F\x41\x6E\x73\x77\x65\x72\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x4E\x6F\x41\x6E\x73\x77\x65\x72\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x47\x6C\x6F\x62\x61\x6C\x20\x4D\x61\x78\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x30\x37\x3A\x30\x30\x2D\x32\x32\x3A\x30\x30\x2C\x2A\x2C\x2A\x2C\x2A"];_0x4f6d[0];var Sequelize=require(_0x4f6d[1]);module[_0x4f6d[2]]= {name:{type:Sequelize[_0x4f6d[3]],unique:_0x4f6d[4],allowNull:false,validate:{is:/[A-Za-z0-9._\\+*!-]+/,notEmpty:true}},type:{type:Sequelize.ENUM(_0x4f6d[5]),allowNull:false,defaultValue:_0x4f6d[5]},description:{type:Sequelize[_0x4f6d[3]]},active:{type:Sequelize[_0x4f6d[6]],defaultValue:0,comment:_0x4f6d[7]},limitCalls:{type:Sequelize.INTEGER(4)[_0x4f6d[8]],defaultValue:30,validate:{min:1,max:200},comment:_0x4f6d[9]},dialOriginateCallerIdName:{type:Sequelize[_0x4f6d[3]]},dialOriginateCallerIdNumber:{type:Sequelize[_0x4f6d[3]]},dialOriginateTimeout:{type:Sequelize.INTEGER(3)[_0x4f6d[8]],defaultValue:30,validate:{min:1,max:999},comment:_0x4f6d[10]},dialCongestionMaxRetry:{type:Sequelize.INTEGER(3)[_0x4f6d[8]],defaultValue:3,validate:{min:1,max:999},comment:_0x4f6d[11]},dialCongestionRetryFrequency:{type:Sequelize.INTEGER(5)[_0x4f6d[8]],validate:{min:1,max:99999},defaultValue:150,comment:_0x4f6d[12]},dialBusyMaxRetry:{type:Sequelize.INTEGER(3)[_0x4f6d[8]],defaultValue:3,validate:{min:1,max:999},comment:_0x4f6d[13]},dialBusyRetryFrequency:{type:Sequelize.INTEGER(5)[_0x4f6d[8]],validate:{min:1,max:99999},defaultValue:150,comment:_0x4f6d[14]},dialNoAnswerMaxRetry:{type:Sequelize.INTEGER(3)[_0x4f6d[8]],defaultValue:3,comment:_0x4f6d[15]},dialNoAnswerRetryFrequency:{type:Sequelize.INTEGER(5)[_0x4f6d[8]],validate:{min:1,max:99999},defaultValue:150,comment:_0x4f6d[16]},dialGlobalMaxRetry:{type:Sequelize.INTEGER(3)[_0x4f6d[8]],validate:{min:1,max:999},defaultValue:4,comment:_0x4f6d[17]},dialTimezone:{type:Sequelize[_0x4f6d[3]],defaultValue:null},dialGlobalInterval:{type:Sequelize[_0x4f6d[3]],defaultValue:_0x4f6d[18]}}
\ No newline at end of file
diff --git a/server/api/campaign/campaign.controller.js b/server/api/campaign/campaign.controller.js
new file mode 100644 (file)
index 0000000..1718dc9
--- /dev/null
@@ -0,0 +1 @@
+var _0xce6b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x61\x6D\x70\x61\x69\x67\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x61\x6D\x70\x61\x69\x67\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x67\x65\x74\x4C\x69\x73\x74\x73","\x43\x6D\x4C\x69\x73\x74","\x61\x64\x64\x4C\x69\x73\x74\x73","\x67\x65\x74","\x70\x68\x6F\x6E\x65","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x4E\x4F\x54\x20\x45\x58\x49\x53\x54\x53\x20\x28\x3F\x29","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73\x2E\x69\x64\x20\x3D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x2E\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64\x20\x3D\x20\x3F","\x4C\x69\x73\x74\x49\x64\x20\x3D\x20\x3F\x20","\x43\x6D\x4C\x69\x73\x74\x49\x64","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x66\x72\x6F\x6D","\x4E\x55\x4C\x4C","\x66\x69\x65\x6C\x64","\x73\x65\x6C\x65\x63\x74","\x70\x68\x6F\x6E\x65\x20\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C","\x4C\x69\x73\x74\x49\x64\x20\x3D\x20\x3F","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x4E\x4F\x57\x28\x29","\x66\x72\x6F\x6D\x51\x75\x65\x72\x79","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72","\x69\x6E\x74\x6F","\x69\x6E\x73\x65\x72\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x70\x75\x73\x68","\x61\x6C\x6C","\x73\x70\x72\x65\x61\x64","\x69\x64\x73","\x6F\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x73","\x67\x65\x74\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x72\x65\x6D\x6F\x76\x65\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73"];_0xce6b[0];var jsonpatch=require(_0xce6b[1]);var rp=require(_0xce6b[2]);var moment=require(_0xce6b[3]);var BPromise=require(_0xce6b[4]);var util=require(_0xce6b[5]);var path=require(_0xce6b[6]);var sox=require(_0xce6b[7]);var ejs=require(_0xce6b[8]);var fs=require(_0xce6b[9]);var _=require(_0xce6b[10]);var squel=require(_0xce6b[11]);var crypto=require(_0xce6b[12]);var jsforce=require(_0xce6b[13]);var toCsv=require(_0xce6b[14]);var qs=require(_0xce6b[15]);var logger=require(_0xce6b[17])(_0xce6b[16]);var utils=require(_0xce6b[18]);var config=require(_0xce6b[19]);var db=require(_0xce6b[21])[_0xce6b[20]];function respondWithStatusCode(_0xca45x15,_0xca45x16,_0xca45x17){_0xca45x16= _0xca45x16|| 204;return function(_0xca45x18){if(_0xca45x18){logger[_0xce6b[24]](_0xce6b[22],_0xca45x17,_0xca45x16,_0xce6b[23]);logger[_0xce6b[26]](_0xce6b[25],_0xca45x17,_0xca45x16,_0xce6b[23]);return _0xca45x15[_0xce6b[27]](_0xca45x16)};return _0xca45x15[_0xce6b[29]](304)[_0xce6b[28]]()}}function respondWithResult(_0xca45x15,_0xca45x16,_0xca45x17){_0xca45x16= _0xca45x16|| 200;return function(_0xca45x18){if(_0xca45x18){logger[_0xce6b[24]](_0xce6b[22],_0xca45x17,_0xca45x16,_0xce6b[30]);logger[_0xce6b[26]](_0xce6b[25],_0xca45x17,_0xca45x16,_0xce6b[30],JSON[_0xce6b[31]](_0xca45x18));return _0xca45x15[_0xce6b[29]](_0xca45x16)[_0xce6b[32]](_0xca45x18)};return _0xca45x15[_0xce6b[29]](304)[_0xce6b[28]]()}}function respondWithFilteredResult(_0xca45x15,_0xca45x1b,_0xca45x17){return function(_0xca45x18){if(_0xca45x18){var _0xca45x1c=_0xca45x18[_0xce6b[33]],_0xca45x1d=_0xca45x1b[_0xce6b[34]],_0xca45x1e=_0xca45x1b[_0xce6b[34]]+ _0xca45x1b[_0xce6b[35]],_0xca45x16;if(_0xca45x1e>= _0xca45x1c){_0xca45x1e= _0xca45x1c;_0xca45x16= 200}else {_0xca45x16= 206};_0xca45x15[_0xce6b[29]](_0xca45x16);logger[_0xce6b[24]](_0xce6b[22],_0xca45x17,_0xca45x16,_0xce6b[36]);logger[_0xce6b[26]](_0xce6b[25],_0xca45x17,_0xca45x16,_0xce6b[30],JSON[_0xce6b[31]](_0xca45x18));return _0xca45x15[_0xce6b[40]](_0xce6b[37],_0xca45x1d+ _0xce6b[38]+ _0xca45x1e+ _0xce6b[39]+ _0xca45x1c)[_0xce6b[32]](_0xca45x18)};return null}}function patchUpdates(_0xca45x20){return function(_0xca45x18){try{jsonpatch[_0xce6b[41]](_0xca45x18,_0xca45x20,true)}catch(err){return BPromise[_0xce6b[42]](err)};return _0xca45x18[_0xce6b[43]]()}}function saveUpdates(_0xca45x22,_0xca45x16,_0xca45x17){return function(_0xca45x18){if(_0xca45x18){return _0xca45x18[_0xce6b[46]](_0xca45x22)[_0xce6b[45]](function(_0xca45x23){logger[_0xce6b[24]](_0xce6b[22],_0xca45x17,_0xca45x16,_0xce6b[44]);logger[_0xce6b[26]](_0xce6b[25],_0xca45x17,_0xca45x16,_0xce6b[44],JSON[_0xce6b[31]](_0xca45x18));return _0xca45x23})};return null}}function removeEntity(_0xca45x15,_0xca45x16,_0xca45x17){return function(_0xca45x18){if(_0xca45x18){return _0xca45x18[_0xce6b[48]]()[_0xce6b[45]](function(){logger[_0xce6b[24]](_0xce6b[22],_0xca45x17,_0xca45x16,_0xce6b[47]);logger[_0xce6b[26]](_0xce6b[25],_0xca45x17,_0xca45x16,_0xce6b[47],JSON[_0xce6b[31]](_0xca45x18));_0xca45x15[_0xce6b[29]](204)[_0xce6b[28]]()})}}}function handleEntityNotFound(_0xca45x15,_0xca45x16,_0xca45x17){return function(_0xca45x18){if(!_0xca45x18){logger[_0xce6b[50]](_0xce6b[22],_0xca45x17,404,_0xce6b[49]);_0xca45x15[_0xce6b[29]](404)[_0xce6b[28]]();return null};return _0xca45x18}}function handleError(_0xca45x15,_0xca45x16,_0xca45x17){_0xca45x16= _0xca45x16|| 500;return function(_0xca45x27){logger[_0xce6b[50]](_0xce6b[22],_0xca45x17,_0xca45x16,JSON[_0xce6b[31]](_0xca45x27));delete _0xca45x27[_0xce6b[51]];_0xca45x15[_0xce6b[29]](_0xca45x16)[_0xce6b[52]](_0xca45x27)}}exports[_0xce6b[53]]= function(_0xca45x28,_0xca45x15){var _0xca45x1b={},_0xca45x29={};_0xca45x29[_0xce6b[54]]= _[_0xce6b[57]](db[_0xce6b[56]][_0xce6b[55]]);_0xca45x29[_0xce6b[58]]= _[_0xce6b[57]](_0xca45x28[_0xce6b[58]]);_0xca45x29[_0xce6b[59]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],_0xca45x29[_0xce6b[58]]);_0xca45x1b[_0xce6b[61]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],qs[_0xce6b[62]](_0xca45x28[_0xce6b[58]][_0xce6b[62]]));_0xca45x1b[_0xce6b[61]]= (_0xca45x1b[_0xce6b[61]][_0xce6b[63]])?_0xca45x1b[_0xce6b[61]]:_0xca45x29[_0xce6b[54]];if(!_0xca45x28[_0xce6b[58]][_0xce6b[65]](_0xce6b[64])){_0xca45x1b[_0xce6b[35]]= qs[_0xce6b[35]](_0xca45x28[_0xce6b[58]][_0xce6b[35]]);_0xca45x1b[_0xce6b[34]]= qs[_0xce6b[34]](_0xca45x28[_0xce6b[58]][_0xce6b[34]])};_0xca45x1b[_0xce6b[66]]= qs[_0xce6b[67]](_0xca45x28[_0xce6b[58]][_0xce6b[67]]);_0xca45x1b[_0xce6b[68]]= qs[_0xce6b[59]](_[_0xce6b[69]](_0xca45x28[_0xce6b[58]],_0xca45x29[_0xce6b[59]]));if(_0xca45x28[_0xce6b[58]][_0xce6b[70]]){_0xca45x1b[_0xce6b[68]]= _[_0xce6b[73]](_0xca45x1b[_0xce6b[68]],{$or:_[_0xce6b[72]](_0xca45x1b[_0xce6b[61]],function(_0xca45x2a){var _0xca45x2b={};_0xca45x2b[_0xca45x2a]= {$like:_0xce6b[71]+ _0xca45x28[_0xce6b[58]][_0xce6b[70]]+ _0xce6b[71]};return _0xca45x2b})})};_0xca45x1b= _[_0xce6b[73]]({},_0xca45x1b,_0xca45x28[_0xce6b[74]]);return db[_0xce6b[56]][_0xce6b[76]](_0xca45x1b)[_0xce6b[45]](respondWithFilteredResult(_0xca45x15,_0xca45x1b,_0xce6b[53]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[53]))};exports[_0xce6b[77]]= function(_0xca45x28,_0xca45x15){var _0xca45x1b={raw:false,where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}},_0xca45x29={};_0xca45x29[_0xce6b[54]]= _[_0xce6b[57]](db[_0xce6b[56]][_0xce6b[55]]);_0xca45x29[_0xce6b[58]]= _[_0xce6b[57]](_0xca45x28[_0xce6b[58]]);_0xca45x29[_0xce6b[59]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],_0xca45x29[_0xce6b[58]]);_0xca45x1b[_0xce6b[61]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],qs[_0xce6b[62]](_0xca45x28[_0xce6b[58]][_0xce6b[62]]));_0xca45x1b[_0xce6b[61]]= (_0xca45x1b[_0xce6b[61]][_0xce6b[63]])?_0xca45x1b[_0xce6b[61]]:_0xca45x29[_0xce6b[54]];_0xca45x1b= _[_0xce6b[73]]({},_0xca45x1b,_0xca45x28[_0xce6b[74]]);return db[_0xce6b[56]][_0xce6b[80]](_0xca45x1b)[_0xce6b[45]](handleEntityNotFound(_0xca45x15,null,_0xce6b[77]))[_0xce6b[45]](respondWithResult(_0xca45x15,null,_0xce6b[77]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[77]))};exports[_0xce6b[81]]= function(_0xca45x28,_0xca45x15){return db[_0xce6b[56]][_0xce6b[81]](_0xca45x28[_0xce6b[82]],{})[_0xce6b[45]](respondWithResult(_0xca45x15,201,_0xce6b[81]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[81]))};exports[_0xce6b[46]]= function(_0xca45x28,_0xca45x15){if(_0xca45x28[_0xce6b[82]][_0xce6b[78]]){delete _0xca45x28[_0xce6b[82]][_0xce6b[78]]};return db[_0xce6b[56]][_0xce6b[80]]({where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](handleEntityNotFound(_0xca45x15,null,_0xce6b[46]))[_0xce6b[45]](saveUpdates(_0xca45x28[_0xce6b[82]],null,_0xce6b[46]))[_0xce6b[45]](respondWithResult(_0xca45x15,null,_0xce6b[46]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[46]))};exports[_0xce6b[48]]= function(_0xca45x28,_0xca45x15){return db[_0xce6b[56]][_0xce6b[80]]({where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](handleEntityNotFound(_0xca45x15,null,_0xce6b[48]))[_0xce6b[45]](removeEntity(_0xca45x15,null,_0xce6b[48]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[48]))};exports[_0xce6b[83]]= function(_0xca45x28,_0xca45x15,_0xca45x2c){var _0xca45x1b={raw:true,where:{}},_0xca45x29={};return db[_0xce6b[56]][_0xce6b[86]]({where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](handleEntityNotFound(_0xca45x15,null,_0xce6b[83]))[_0xce6b[45]](function(_0xca45x18){if(_0xca45x18){_0xca45x29[_0xce6b[54]]= _[_0xce6b[57]](db[_0xce6b[84]][_0xce6b[55]]);_0xca45x29[_0xce6b[58]]= _[_0xce6b[57]](_0xca45x28[_0xce6b[58]]);_0xca45x29[_0xce6b[59]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],_0xca45x29[_0xce6b[58]]);_0xca45x1b[_0xce6b[61]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],qs[_0xce6b[62]](_0xca45x28[_0xce6b[58]][_0xce6b[62]]));_0xca45x1b[_0xce6b[61]]= (_0xca45x1b[_0xce6b[61]][_0xce6b[63]])?_0xca45x1b[_0xce6b[61]]:_0xca45x29[_0xce6b[54]];if(!_0xca45x28[_0xce6b[58]][_0xce6b[65]](_0xce6b[64])){_0xca45x1b[_0xce6b[35]]= qs[_0xce6b[35]](_0xca45x28[_0xce6b[58]][_0xce6b[35]]);_0xca45x1b[_0xce6b[34]]= qs[_0xce6b[34]](_0xca45x28[_0xce6b[58]][_0xce6b[34]])};_0xca45x1b[_0xce6b[66]]= qs[_0xce6b[67]](_0xca45x28[_0xce6b[58]][_0xce6b[67]]);_0xca45x1b[_0xce6b[68]]= qs[_0xce6b[59]](_[_0xce6b[69]](_0xca45x28[_0xce6b[58]],_0xca45x29[_0xce6b[59]]));_0xca45x1b[_0xce6b[68]][_0xce6b[85]]= _0xca45x18[_0xce6b[78]];if(_0xca45x28[_0xce6b[58]][_0xce6b[70]]){_0xca45x1b[_0xce6b[68]]= _[_0xce6b[73]](_0xca45x1b[_0xce6b[68]],{$or:_[_0xce6b[72]](_0xca45x1b[_0xce6b[61]],function(_0xca45x2a){var _0xca45x2b={};_0xca45x2b[_0xca45x2a]= {$like:_0xce6b[71]+ _0xca45x28[_0xce6b[58]][_0xce6b[70]]+ _0xce6b[71]};return _0xca45x2b})})};_0xca45x1b= _[_0xce6b[73]]({},_0xca45x1b,_0xca45x28[_0xce6b[74]]);return db[_0xce6b[84]][_0xce6b[76]](_0xca45x1b)}})[_0xce6b[45]](respondWithFilteredResult(_0xca45x15,_0xca45x1b,_0xce6b[83]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[83]))};exports[_0xce6b[87]]= function(_0xca45x28,_0xca45x15,_0xca45x2c){var _0xca45x1b={raw:true,where:{}},_0xca45x29={};return db[_0xce6b[56]][_0xce6b[86]]({where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](handleEntityNotFound(_0xca45x15,null,_0xce6b[87]))[_0xce6b[45]](function(_0xca45x18){if(_0xca45x18){_0xca45x29[_0xce6b[54]]= _[_0xce6b[57]](db[_0xce6b[88]][_0xce6b[55]]);_0xca45x29[_0xce6b[58]]= _[_0xce6b[57]](_0xca45x28[_0xce6b[58]]);_0xca45x29[_0xce6b[59]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],_0xca45x29[_0xce6b[58]]);_0xca45x1b[_0xce6b[61]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],qs[_0xce6b[62]](_0xca45x28[_0xce6b[58]][_0xce6b[62]]));_0xca45x1b[_0xce6b[61]]= (_0xca45x1b[_0xce6b[61]][_0xce6b[63]])?_0xca45x1b[_0xce6b[61]]:_0xca45x29[_0xce6b[54]];if(!_0xca45x28[_0xce6b[58]][_0xce6b[65]](_0xce6b[64])){_0xca45x1b[_0xce6b[35]]= qs[_0xce6b[35]](_0xca45x28[_0xce6b[58]][_0xce6b[35]]);_0xca45x1b[_0xce6b[34]]= qs[_0xce6b[34]](_0xca45x28[_0xce6b[58]][_0xce6b[34]])};_0xca45x1b[_0xce6b[66]]= qs[_0xce6b[67]](_0xca45x28[_0xce6b[58]][_0xce6b[67]]);_0xca45x1b[_0xce6b[68]]= qs[_0xce6b[59]](_[_0xce6b[69]](_0xca45x28[_0xce6b[58]],_0xca45x29[_0xce6b[59]]));_0xca45x1b[_0xce6b[68]][_0xce6b[85]]= _0xca45x18[_0xce6b[78]];if(_0xca45x28[_0xce6b[58]][_0xce6b[70]]){_0xca45x1b[_0xce6b[68]]= _[_0xce6b[73]](_0xca45x1b[_0xce6b[68]],{$or:_[_0xce6b[72]](_0xca45x1b[_0xce6b[61]],function(_0xca45x2a){var _0xca45x2b={};_0xca45x2b[_0xca45x2a]= {$like:_0xce6b[71]+ _0xca45x28[_0xce6b[58]][_0xce6b[70]]+ _0xce6b[71]};return _0xca45x2b})})};_0xca45x1b= _[_0xce6b[73]]({},_0xca45x1b,_0xca45x28[_0xce6b[74]]);return db[_0xce6b[88]][_0xce6b[76]](_0xca45x1b)}})[_0xce6b[45]](respondWithFilteredResult(_0xca45x15,_0xca45x1b,_0xce6b[87]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[87]))};exports[_0xce6b[89]]= function(_0xca45x28,_0xca45x15,_0xca45x2c){var _0xca45x1b={raw:true,where:{}},_0xca45x29={};return db[_0xce6b[56]][_0xce6b[86]]({where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](handleEntityNotFound(_0xca45x15,null,_0xce6b[89]))[_0xce6b[45]](function(_0xca45x18){if(_0xca45x18){_0xca45x29[_0xce6b[54]]= _[_0xce6b[57]](db[_0xce6b[90]][_0xce6b[55]]);_0xca45x29[_0xce6b[58]]= _[_0xce6b[57]](_0xca45x28[_0xce6b[58]]);_0xca45x29[_0xce6b[59]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],_0xca45x29[_0xce6b[58]]);_0xca45x1b[_0xce6b[61]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],qs[_0xce6b[62]](_0xca45x28[_0xce6b[58]][_0xce6b[62]]));_0xca45x1b[_0xce6b[61]]= (_0xca45x1b[_0xce6b[61]][_0xce6b[63]])?_0xca45x1b[_0xce6b[61]]:_0xca45x29[_0xce6b[54]];if(!_0xca45x28[_0xce6b[58]][_0xce6b[65]](_0xce6b[64])){_0xca45x1b[_0xce6b[35]]= qs[_0xce6b[35]](_0xca45x28[_0xce6b[58]][_0xce6b[35]]);_0xca45x1b[_0xce6b[34]]= qs[_0xce6b[34]](_0xca45x28[_0xce6b[58]][_0xce6b[34]])};_0xca45x1b[_0xce6b[66]]= qs[_0xce6b[67]](_0xca45x28[_0xce6b[58]][_0xce6b[67]]);_0xca45x1b[_0xce6b[68]]= qs[_0xce6b[59]](_[_0xce6b[69]](_0xca45x28[_0xce6b[58]],_0xca45x29[_0xce6b[59]]));_0xca45x1b[_0xce6b[68]][_0xce6b[85]]= _0xca45x18[_0xce6b[78]];if(_0xca45x28[_0xce6b[58]][_0xce6b[70]]){_0xca45x1b[_0xce6b[68]]= _[_0xce6b[73]](_0xca45x1b[_0xce6b[68]],{$or:_[_0xce6b[72]](_0xca45x1b[_0xce6b[61]],function(_0xca45x2a){var _0xca45x2b={};_0xca45x2b[_0xca45x2a]= {$like:_0xce6b[71]+ _0xca45x28[_0xce6b[58]][_0xce6b[70]]+ _0xce6b[71]};return _0xca45x2b})})};_0xca45x1b= _[_0xce6b[73]]({},_0xca45x1b,_0xca45x28[_0xce6b[74]]);return db[_0xce6b[90]][_0xce6b[76]](_0xca45x1b)}})[_0xce6b[45]](respondWithFilteredResult(_0xca45x15,_0xca45x1b,_0xce6b[89]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[89]))};exports[_0xce6b[91]]= function(_0xca45x28,_0xca45x15,_0xca45x2c){var _0xca45x1b={raw:true,where:{}},_0xca45x29={};return db[_0xce6b[56]][_0xce6b[86]]({where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](handleEntityNotFound(_0xca45x15,null,_0xce6b[91]))[_0xce6b[45]](function(_0xca45x18){if(_0xca45x18){_0xca45x29[_0xce6b[54]]= _[_0xce6b[57]](db[_0xce6b[92]][_0xce6b[55]]);_0xca45x29[_0xce6b[58]]= _[_0xce6b[57]](_0xca45x28[_0xce6b[58]]);_0xca45x29[_0xce6b[59]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],_0xca45x29[_0xce6b[58]]);_0xca45x1b[_0xce6b[61]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],qs[_0xce6b[62]](_0xca45x28[_0xce6b[58]][_0xce6b[62]]));_0xca45x1b[_0xce6b[61]]= (_0xca45x1b[_0xce6b[61]][_0xce6b[63]])?_0xca45x1b[_0xce6b[61]]:_0xca45x29[_0xce6b[54]];if(!_0xca45x28[_0xce6b[58]][_0xce6b[65]](_0xce6b[64])){_0xca45x1b[_0xce6b[35]]= qs[_0xce6b[35]](_0xca45x28[_0xce6b[58]][_0xce6b[35]]);_0xca45x1b[_0xce6b[34]]= qs[_0xce6b[34]](_0xca45x28[_0xce6b[58]][_0xce6b[34]])};_0xca45x1b[_0xce6b[66]]= qs[_0xce6b[67]](_0xca45x28[_0xce6b[58]][_0xce6b[67]]);_0xca45x1b[_0xce6b[68]]= qs[_0xce6b[59]](_[_0xce6b[69]](_0xca45x28[_0xce6b[58]],_0xca45x29[_0xce6b[59]]));_0xca45x1b[_0xce6b[68]][_0xce6b[85]]= _0xca45x18[_0xce6b[78]];if(_0xca45x28[_0xce6b[58]][_0xce6b[70]]){_0xca45x1b[_0xce6b[68]]= _[_0xce6b[73]](_0xca45x1b[_0xce6b[68]],{$or:_[_0xce6b[72]](_0xca45x1b[_0xce6b[61]],function(_0xca45x2a){var _0xca45x2b={};_0xca45x2b[_0xca45x2a]= {$like:_0xce6b[71]+ _0xca45x28[_0xce6b[58]][_0xce6b[70]]+ _0xce6b[71]};return _0xca45x2b})})};_0xca45x1b= _[_0xce6b[73]]({},_0xca45x1b,_0xca45x28[_0xce6b[74]]);return db[_0xce6b[92]][_0xce6b[76]](_0xca45x1b)}})[_0xce6b[45]](respondWithFilteredResult(_0xca45x15,_0xca45x1b,_0xce6b[91]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[91]))};exports[_0xce6b[93]]= function(_0xca45x28,_0xca45x18,_0xca45x2c){var _0xca45x1b={};var _0xca45x29={};var _0xca45x2d;var _0xca45x1c;return db[_0xce6b[56]][_0xce6b[86]]({where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](handleEntityNotFound(_0xca45x18,null,_0xce6b[93]))[_0xce6b[45]](function(_0xca45x18){if(_0xca45x18){_0xca45x2d= _0xca45x18;_0xca45x29[_0xce6b[54]]= _[_0xce6b[57]](db[_0xce6b[94]][_0xce6b[55]]);_0xca45x29[_0xce6b[58]]= _[_0xce6b[57]](_0xca45x28[_0xce6b[58]]);_0xca45x29[_0xce6b[59]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],_0xca45x29[_0xce6b[58]]);_0xca45x1b[_0xce6b[61]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],qs[_0xce6b[62]](_0xca45x28[_0xce6b[58]][_0xce6b[62]]));_0xca45x1b[_0xce6b[61]]= (_0xca45x1b[_0xce6b[61]][_0xce6b[63]])?_0xca45x1b[_0xce6b[61]]:_0xca45x29[_0xce6b[54]];_0xca45x1b[_0xce6b[66]]= qs[_0xce6b[67]](_0xca45x28[_0xce6b[58]][_0xce6b[67]]);_0xca45x1b[_0xce6b[68]]= qs[_0xce6b[59]](_[_0xce6b[69]](_0xca45x28[_0xce6b[58]],_0xca45x29[_0xce6b[59]]));if(_0xca45x28[_0xce6b[58]][_0xce6b[70]]){_0xca45x1b[_0xce6b[68]]= _[_0xce6b[73]](_0xca45x1b[_0xce6b[68]],{$or:_[_0xce6b[72]](_0xca45x1b[_0xce6b[61]],function(_0xca45x2a){var _0xca45x2b={};_0xca45x2b[_0xca45x2a]= {$like:_0xce6b[71]+ _0xca45x28[_0xce6b[58]][_0xce6b[70]]+ _0xce6b[71]};return _0xca45x2b})})};_0xca45x1b= _[_0xce6b[73]]({},_0xca45x1b,_0xca45x28[_0xce6b[74]]);return _0xca45x2d[_0xce6b[93]](_0xca45x1b)}})[_0xce6b[45]](function(_0xca45x2f){if(_0xca45x2f){_0xca45x1c= _0xca45x2f[_0xce6b[63]];if(!_0xca45x28[_0xce6b[58]][_0xce6b[65]](_0xce6b[64])){_0xca45x1b[_0xce6b[35]]= qs[_0xce6b[35]](_0xca45x28[_0xce6b[58]][_0xce6b[35]]);_0xca45x1b[_0xce6b[34]]= qs[_0xce6b[34]](_0xca45x28[_0xce6b[58]][_0xce6b[34]])};return _0xca45x2d[_0xce6b[93]](_0xca45x1b)}})[_0xce6b[45]](function(_0xca45x2e){return _0xca45x2e?{count:_0xca45x1c,rows:_0xca45x2e}:null})[_0xce6b[45]](respondWithResult(_0xca45x18,null,_0xce6b[93]))[_0xce6b[75]](handleError(_0xca45x18,null,_0xce6b[93]))};exports[_0xce6b[95]]= function(_0xca45x28,_0xca45x15,_0xca45x2c){var _0xca45x30;return db[_0xce6b[56]][_0xce6b[80]]({where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](handleEntityNotFound(_0xca45x15,null,_0xce6b[95]))[_0xce6b[45]](function(_0xca45x18){if(_0xca45x18){return _0xca45x18[_0xce6b[95]](_0xca45x28[_0xce6b[82]][_0xce6b[125]],_[_0xce6b[126]](_0xca45x28[_0xce6b[82]],[_0xce6b[125],_0xce6b[78]])|| {})};return null})[_0xce6b[124]](function(_0xca45x31){_0xca45x30= _0xca45x31|| [];var _0xca45x32=[];if(_0xca45x31){for(var _0xca45x33=0;_0xca45x33< _0xca45x31[_0xce6b[63]];_0xca45x33++){var _0xca45x34=_0xca45x31[_0xca45x33][_0xce6b[96]]({plain:true});var _0xca45x35=squel[_0xce6b[120]]()[_0xce6b[119]](_0xce6b[118])[_0xce6b[117]]([_0xce6b[97],_0xce6b[98],_0xce6b[99],_0xce6b[100],_0xce6b[85],_0xce6b[101],_0xce6b[102]],squel[_0xce6b[112]]()[_0xce6b[111]](_0xce6b[97],_0xce6b[97])[_0xce6b[111]](_0xce6b[116],_0xce6b[98])[_0xce6b[111]](_0xce6b[78],_0xce6b[99])[_0xce6b[111]](_0xca45x34[_0xce6b[107]].toString(),_0xce6b[100])[_0xce6b[111]](_0xca45x28[_0xce6b[79]][_0xce6b[78]].toString(),_0xce6b[85])[_0xce6b[111]](_0xce6b[116],_0xce6b[101])[_0xce6b[111]](_0xce6b[116],_0xce6b[102])[_0xce6b[109]](_0xce6b[115])[_0xce6b[68]](_0xce6b[114],_0xca45x34[_0xce6b[107]].toString())[_0xce6b[68]](_0xce6b[113])[_0xce6b[68]](_0xce6b[103],squel[_0xce6b[112]]()[_0xce6b[111]](_0xce6b[110])[_0xce6b[109]](_0xce6b[108])[_0xce6b[68]](_0xce6b[106],_0xca45x34[_0xce6b[107]].toString())[_0xce6b[68]](_0xce6b[105],_0xca45x28[_0xce6b[79]][_0xce6b[78]].toString())[_0xce6b[68]](_0xce6b[104]))).toString();_0xca45x32[_0xce6b[122]](db[_0xce6b[121]][_0xce6b[58]](_0xca45x35))};return BPromise[_0xce6b[123]](_0xca45x32)}})[_0xce6b[45]](function(){return _0xca45x30})[_0xce6b[45]](respondWithResult(_0xca45x15,null,_0xce6b[95]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[95]))};exports[_0xce6b[127]]= function(_0xca45x28,_0xca45x15,_0xca45x2c){var _0xca45x2f;return db[_0xce6b[56]][_0xce6b[80]]({where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](handleEntityNotFound(_0xca45x15,null,_0xce6b[127]))[_0xce6b[45]](function(_0xca45x18){if(_0xca45x18){return _0xca45x18[_0xce6b[127]](_0xca45x28[_0xce6b[58]][_0xce6b[125]])}})[_0xce6b[45]](function(_0xca45x31){if(_0xca45x31){_0xca45x2f= _0xca45x31;return db[_0xce6b[84]][_0xce6b[48]]({where:{ListId:_0xca45x28[_0xce6b[58]][_0xce6b[125]],CampaignId:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](function(){return _0xca45x2f})}})[_0xce6b[45]](respondWithStatusCode(_0xca45x15,null,_0xce6b[127]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[127]))};exports[_0xce6b[128]]= function(_0xca45x28,_0xca45x18,_0xca45x2c){var _0xca45x1b={};var _0xca45x29={};var _0xca45x2d;var _0xca45x1c;return db[_0xce6b[56]][_0xce6b[86]]({where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](handleEntityNotFound(_0xca45x18,null,_0xce6b[128]))[_0xce6b[45]](function(_0xca45x18){if(_0xca45x18){_0xca45x2d= _0xca45x18;_0xca45x29[_0xce6b[54]]= _[_0xce6b[57]](db[_0xce6b[94]][_0xce6b[55]]);_0xca45x29[_0xce6b[58]]= _[_0xce6b[57]](_0xca45x28[_0xce6b[58]]);_0xca45x29[_0xce6b[59]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],_0xca45x29[_0xce6b[58]]);_0xca45x1b[_0xce6b[61]]= _[_0xce6b[60]](_0xca45x29[_0xce6b[54]],qs[_0xce6b[62]](_0xca45x28[_0xce6b[58]][_0xce6b[62]]));_0xca45x1b[_0xce6b[61]]= (_0xca45x1b[_0xce6b[61]][_0xce6b[63]])?_0xca45x1b[_0xce6b[61]]:_0xca45x29[_0xce6b[54]];_0xca45x1b[_0xce6b[66]]= qs[_0xce6b[67]](_0xca45x28[_0xce6b[58]][_0xce6b[67]]);_0xca45x1b[_0xce6b[68]]= qs[_0xce6b[59]](_[_0xce6b[69]](_0xca45x28[_0xce6b[58]],_0xca45x29[_0xce6b[59]]));if(_0xca45x28[_0xce6b[58]][_0xce6b[70]]){_0xca45x1b[_0xce6b[68]]= _[_0xce6b[73]](_0xca45x1b[_0xce6b[68]],{$or:_[_0xce6b[72]](_0xca45x1b[_0xce6b[61]],function(_0xca45x2a){var _0xca45x2b={};_0xca45x2b[_0xca45x2a]= {$like:_0xce6b[71]+ _0xca45x28[_0xce6b[58]][_0xce6b[70]]+ _0xce6b[71]};return _0xca45x2b})})};_0xca45x1b= _[_0xce6b[73]]({},_0xca45x1b,_0xca45x28[_0xce6b[74]]);return _0xca45x2d[_0xce6b[128]](_0xca45x1b)}})[_0xce6b[45]](function(_0xca45x2f){if(_0xca45x2f){_0xca45x1c= _0xca45x2f[_0xce6b[63]];if(!_0xca45x28[_0xce6b[58]][_0xce6b[65]](_0xce6b[64])){_0xca45x1b[_0xce6b[35]]= qs[_0xce6b[35]](_0xca45x28[_0xce6b[58]][_0xce6b[35]]);_0xca45x1b[_0xce6b[34]]= qs[_0xce6b[34]](_0xca45x28[_0xce6b[58]][_0xce6b[34]])};return _0xca45x2d[_0xce6b[128]](_0xca45x1b)}})[_0xce6b[45]](function(_0xca45x2e){return _0xca45x2e?{count:_0xca45x1c,rows:_0xca45x2e}:null})[_0xce6b[45]](respondWithResult(_0xca45x18,null,_0xce6b[128]))[_0xce6b[75]](handleError(_0xca45x18,null,_0xce6b[128]))};exports[_0xce6b[129]]= function(_0xca45x28,_0xca45x15,_0xca45x2c){var _0xca45x30;return db[_0xce6b[56]][_0xce6b[80]]({where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](handleEntityNotFound(_0xca45x15,null,_0xce6b[129]))[_0xce6b[45]](function(_0xca45x18){if(_0xca45x18){return _0xca45x18[_0xce6b[129]](_0xca45x28[_0xce6b[82]][_0xce6b[125]],_[_0xce6b[126]](_0xca45x28[_0xce6b[82]],[_0xce6b[125],_0xce6b[78]])|| {})};return null})[_0xce6b[124]](function(_0xca45x31){_0xca45x30= _0xca45x31|| [];var _0xca45x32=[];if(_0xca45x31){for(var _0xca45x33=0;_0xca45x33< _0xca45x31[_0xce6b[63]];_0xca45x33++){var _0xca45x34=_0xca45x31[_0xca45x33][_0xce6b[96]]({plain:true});var _0xca45x35=squel[_0xce6b[120]]()[_0xce6b[119]](_0xce6b[130])[_0xce6b[117]]([_0xce6b[97],_0xce6b[99],_0xce6b[100],_0xce6b[85],_0xce6b[101],_0xce6b[102]],squel[_0xce6b[112]]()[_0xce6b[111]](_0xce6b[97])[_0xce6b[111]](_0xce6b[78])[_0xce6b[111]](_0xca45x34[_0xce6b[107]].toString())[_0xce6b[111]](_0xca45x28[_0xce6b[79]][_0xce6b[78]])[_0xce6b[111]](_0xce6b[116],_0xce6b[101])[_0xce6b[111]](_0xce6b[116],_0xce6b[102])[_0xce6b[109]](_0xce6b[115])[_0xce6b[68]](_0xce6b[114],_0xca45x34[_0xce6b[107]].toString())[_0xce6b[68]](_0xce6b[113])).toString();_0xca45x32[_0xce6b[122]](db[_0xce6b[121]][_0xce6b[58]](_0xca45x35))};return BPromise[_0xce6b[123]](_0xca45x32)}})[_0xce6b[45]](function(){return _0xca45x30})[_0xce6b[45]](respondWithResult(_0xca45x15,null,_0xce6b[129]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[129]))};exports[_0xce6b[131]]= function(_0xca45x28,_0xca45x15,_0xca45x2c){var _0xca45x2f;return db[_0xce6b[56]][_0xce6b[80]]({where:{id:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](handleEntityNotFound(_0xca45x15,null,_0xce6b[131]))[_0xce6b[45]](function(_0xca45x18){if(_0xca45x18){return _0xca45x18[_0xce6b[131]](_0xca45x28[_0xce6b[58]][_0xce6b[125]])}})[_0xce6b[45]](function(_0xca45x31){if(_0xca45x31){_0xca45x2f= _0xca45x31;return db[_0xce6b[92]][_0xce6b[48]]({where:{ListId:_0xca45x28[_0xce6b[58]][_0xce6b[125]],CampaignId:_0xca45x28[_0xce6b[79]][_0xce6b[78]]}})[_0xce6b[45]](function(){return _0xca45x2f})}})[_0xce6b[45]](respondWithStatusCode(_0xca45x15,null,_0xce6b[131]))[_0xce6b[75]](handleError(_0xca45x15,null,_0xce6b[131]))}
\ No newline at end of file
diff --git a/server/api/campaign/campaign.model.js b/server/api/campaign/campaign.model.js
new file mode 100644 (file)
index 0000000..3d837bd
--- /dev/null
@@ -0,0 +1 @@
+var _0x8223=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x8223[0];var _=require(_0x8223[1]);var util=require(_0x8223[2]);var logger=require(_0x8223[4])(_0x8223[3]);var attributes=require(_0x8223[5]);module[_0x8223[6]]= function(_0xd9aex5,_0xd9aex6){return _0xd9aex5[_0x8223[9]](_0x8223[7],attributes,{tableName:_0x8223[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/campaign/campaign.rpc.js b/server/api/campaign/campaign.rpc.js
new file mode 100644 (file)
index 0000000..9deade6
--- /dev/null
@@ -0,0 +1 @@
+var _0xdaed=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x61\x6D\x70\x61\x69\x67\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x61\x6D\x70\x61\x69\x67\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x61\x6D\x70\x61\x69\x67\x6E"];_0xdaed[0];var _=require(_0xdaed[1]);var util=require(_0xdaed[2]);var moment=require(_0xdaed[3]);var BPromise=require(_0xdaed[4]);var db=require(_0xdaed[6])[_0xdaed[5]];var utils=require(_0xdaed[7]);var logger=require(_0xdaed[9])(_0xdaed[8]);var jayson=require(_0xdaed[10]);var client=jayson[_0xdaed[12]][_0xdaed[11]]({port:9002});function respondWithRpcPromise(_0x60fbxb,_0x60fbxc,_0x60fbxd){return  new BPromise(function(_0x60fbxe,_0x60fbxf){return client[_0xdaed[25]](_0x60fbxb,_0x60fbxd)[_0xdaed[24]](function(_0x60fbx11){logger[_0xdaed[17]](_0xdaed[13],_0x60fbxc,_0xdaed[16]);logger[_0xdaed[20]](_0xdaed[18],_0x60fbxc,_0xdaed[16],JSON[_0xdaed[19]](_0x60fbx11));if(_0x60fbx11[_0xdaed[14]]){if(_0x60fbx11[_0xdaed[14]][_0xdaed[21]]=== 500){logger[_0xdaed[14]](_0xdaed[13],_0x60fbxc,_0x60fbx11[_0xdaed[14]][_0xdaed[22]]);return _0x60fbxf(_0x60fbx11[_0xdaed[14]][_0xdaed[22]])};logger[_0xdaed[14]](_0xdaed[13],_0x60fbxc,_0x60fbx11[_0xdaed[14]][_0xdaed[22]]);return _0x60fbxe(_0x60fbx11[_0xdaed[14]][_0xdaed[22]])}else {logger[_0xdaed[17]](_0xdaed[13],_0x60fbxc,_0xdaed[16]);_0x60fbxe(_0x60fbx11[_0xdaed[23]][_0xdaed[22]])}})[_0xdaed[15]](function(_0x60fbx10){logger[_0xdaed[14]](_0xdaed[13],_0x60fbxc,_0x60fbx10);_0x60fbxf(_0x60fbx10)})})}exports[_0xdaed[26]]= function(_0x60fbxd){var _0x60fbx12=this;return  new Promise(function(_0x60fbxe,_0x60fbxf){return db[_0xdaed[37]][_0xdaed[36]]({raw:_0x60fbxd[_0xdaed[27]]?(_0x60fbxd[_0xdaed[27]][_0xdaed[28]]=== undefined)?true:false:true,where:_0x60fbxd[_0xdaed[27]]?_0x60fbxd[_0xdaed[27]][_0xdaed[29]]|| null:null,attributes:_0x60fbxd[_0xdaed[27]]?_0x60fbxd[_0xdaed[27]][_0xdaed[30]]|| null:null,limit:_0x60fbxd[_0xdaed[27]]?_0x60fbxd[_0xdaed[27]][_0xdaed[31]]|| null:null,include:_0x60fbxd[_0xdaed[27]]?(_0x60fbxd[_0xdaed[27]][_0xdaed[32]]?_[_0xdaed[35]](_0x60fbxd[_0xdaed[27]][_0xdaed[32]],function(_0x60fbx13){return {model:db[_0x60fbx13[_0xdaed[33]]],as:_0x60fbx13[_0xdaed[34]],attributes:_0x60fbx13[_0xdaed[30]],include:_0x60fbx13[_0xdaed[32]]?_[_0xdaed[35]](_0x60fbx13[_0xdaed[32]],function(_0x60fbx14){return {model:db[_0x60fbx14[_0xdaed[33]]],as:_0x60fbx14[_0xdaed[34]],attributes:_0x60fbx14[_0xdaed[30]],include:_0x60fbx14[_0xdaed[32]]?_[_0xdaed[35]](_0x60fbx14[_0xdaed[32]],function(_0x60fbx15){return {model:db[_0x60fbx15[_0xdaed[33]]],as:_0x60fbx15[_0xdaed[34]],attributes:_0x60fbx15[_0xdaed[30]]}}):[]}}):[]}}):[]):[]})[_0xdaed[24]](function(_0x60fbx11){logger[_0xdaed[17]](_0xdaed[26],_0x60fbxd);logger[_0xdaed[20]](_0xdaed[26],_0x60fbxd,JSON[_0xdaed[19]](_0x60fbx11));_0x60fbxe(_0x60fbx11)})[_0xdaed[15]](function(_0x60fbx10){logger[_0xdaed[14]](_0xdaed[26],_0x60fbx10[_0xdaed[22]],_0x60fbxd);_0x60fbxf(_0x60fbx12[_0xdaed[14]](500,_0x60fbx10[_0xdaed[22]]))})})}
\ No newline at end of file
diff --git a/server/api/campaign/index.js b/server/api/campaign/index.js
new file mode 100644 (file)
index 0000000..33edb90
--- /dev/null
@@ -0,0 +1 @@
+var _0xad04=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x69\x65\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x2F\x3A\x69\x64\x2F\x6C\x69\x73\x74\x73","\x67\x65\x74\x4C\x69\x73\x74\x73","\x2F\x3A\x69\x64\x2F\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74\x73","\x67\x65\x74\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x73","\x72\x65\x6D\x6F\x76\x65\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xad04[0];var multer=require(_0xad04[1]);var util=require(_0xad04[2]);var path=require(_0xad04[3]);var express=require(_0xad04[4]);var router=express.Router();var auth=require(_0xad04[5]);var config=require(_0xad04[6]);var controller=require(_0xad04[7]);router[_0xad04[11]](_0xad04[8],auth[_0xad04[9]](),controller[_0xad04[10]]);router[_0xad04[11]](_0xad04[12],auth[_0xad04[9]](),controller[_0xad04[13]]);router[_0xad04[11]](_0xad04[14],auth[_0xad04[9]](),controller[_0xad04[15]]);router[_0xad04[11]](_0xad04[16],auth[_0xad04[9]](),controller[_0xad04[17]]);router[_0xad04[11]](_0xad04[18],auth[_0xad04[9]](),controller[_0xad04[19]]);router[_0xad04[11]](_0xad04[20],auth[_0xad04[9]](),controller[_0xad04[21]]);router[_0xad04[11]](_0xad04[22],auth[_0xad04[9]](),controller[_0xad04[23]]);router[_0xad04[11]](_0xad04[24],auth[_0xad04[9]](),controller[_0xad04[25]]);router[_0xad04[27]](_0xad04[8],auth[_0xad04[9]](),controller[_0xad04[26]]);router[_0xad04[27]](_0xad04[22],auth[_0xad04[9]](),controller[_0xad04[28]]);router[_0xad04[27]](_0xad04[24],auth[_0xad04[9]](),controller[_0xad04[29]]);router[_0xad04[31]](_0xad04[12],auth[_0xad04[9]](),controller[_0xad04[30]]);router[_0xad04[33]](_0xad04[12],auth[_0xad04[9]](),controller[_0xad04[32]]);router[_0xad04[33]](_0xad04[22],auth[_0xad04[9]](),controller[_0xad04[34]]);router[_0xad04[33]](_0xad04[24],auth[_0xad04[9]](),controller[_0xad04[35]]);module[_0xad04[36]]= router
\ No newline at end of file
diff --git a/server/api/cannedAnswer/cannedAnswer.attributes.js b/server/api/cannedAnswer/cannedAnswer.attributes.js
new file mode 100644 (file)
index 0000000..143df6e
--- /dev/null
@@ -0,0 +1 @@
+var _0x35fe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0x35fe[0];var Sequelize=require(_0x35fe[1]);module[_0x35fe[2]]= {key:{type:Sequelize[_0x35fe[3]],allowNull:false},value:{type:Sequelize[_0x35fe[4]],allowNull:false},description:{type:Sequelize[_0x35fe[3]]}}
\ No newline at end of file
diff --git a/server/api/cannedAnswer/cannedAnswer.controller.js b/server/api/cannedAnswer/cannedAnswer.controller.js
new file mode 100644 (file)
index 0000000..74426bb
--- /dev/null
@@ -0,0 +1 @@
+var _0xca23=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xca23[0];var jsonpatch=require(_0xca23[1]);var rp=require(_0xca23[2]);var moment=require(_0xca23[3]);var BPromise=require(_0xca23[4]);var util=require(_0xca23[5]);var path=require(_0xca23[6]);var sox=require(_0xca23[7]);var ejs=require(_0xca23[8]);var fs=require(_0xca23[9]);var _=require(_0xca23[10]);var squel=require(_0xca23[11]);var crypto=require(_0xca23[12]);var jsforce=require(_0xca23[13]);var toCsv=require(_0xca23[14]);var qs=require(_0xca23[15]);var logger=require(_0xca23[17])(_0xca23[16]);var utils=require(_0xca23[18]);var config=require(_0xca23[19]);var db=require(_0xca23[21])[_0xca23[20]];function respondWithStatusCode(_0x208dx15,_0x208dx16,_0x208dx17){_0x208dx16= _0x208dx16|| 204;return function(_0x208dx18){if(_0x208dx18){logger[_0xca23[24]](_0xca23[22],_0x208dx17,_0x208dx16,_0xca23[23]);logger[_0xca23[26]](_0xca23[25],_0x208dx17,_0x208dx16,_0xca23[23]);return _0x208dx15[_0xca23[27]](_0x208dx16)};return _0x208dx15[_0xca23[29]](304)[_0xca23[28]]()}}function respondWithResult(_0x208dx15,_0x208dx16,_0x208dx17){_0x208dx16= _0x208dx16|| 200;return function(_0x208dx18){if(_0x208dx18){logger[_0xca23[24]](_0xca23[22],_0x208dx17,_0x208dx16,_0xca23[30]);logger[_0xca23[26]](_0xca23[25],_0x208dx17,_0x208dx16,_0xca23[30],JSON[_0xca23[31]](_0x208dx18));return _0x208dx15[_0xca23[29]](_0x208dx16)[_0xca23[32]](_0x208dx18)};return _0x208dx15[_0xca23[29]](304)[_0xca23[28]]()}}function respondWithFilteredResult(_0x208dx15,_0x208dx1b,_0x208dx17){return function(_0x208dx18){if(_0x208dx18){var _0x208dx1c=_0x208dx18[_0xca23[33]],_0x208dx1d=_0x208dx1b[_0xca23[34]],_0x208dx1e=_0x208dx1b[_0xca23[34]]+ _0x208dx1b[_0xca23[35]],_0x208dx16;if(_0x208dx1e>= _0x208dx1c){_0x208dx1e= _0x208dx1c;_0x208dx16= 200}else {_0x208dx16= 206};_0x208dx15[_0xca23[29]](_0x208dx16);logger[_0xca23[24]](_0xca23[22],_0x208dx17,_0x208dx16,_0xca23[36]);logger[_0xca23[26]](_0xca23[25],_0x208dx17,_0x208dx16,_0xca23[30],JSON[_0xca23[31]](_0x208dx18));return _0x208dx15[_0xca23[40]](_0xca23[37],_0x208dx1d+ _0xca23[38]+ _0x208dx1e+ _0xca23[39]+ _0x208dx1c)[_0xca23[32]](_0x208dx18)};return null}}function patchUpdates(_0x208dx20){return function(_0x208dx18){try{jsonpatch[_0xca23[41]](_0x208dx18,_0x208dx20,true)}catch(err){return BPromise[_0xca23[42]](err)};return _0x208dx18[_0xca23[43]]()}}function saveUpdates(_0x208dx22,_0x208dx16,_0x208dx17){return function(_0x208dx18){if(_0x208dx18){return _0x208dx18[_0xca23[46]](_0x208dx22)[_0xca23[45]](function(_0x208dx23){logger[_0xca23[24]](_0xca23[22],_0x208dx17,_0x208dx16,_0xca23[44]);logger[_0xca23[26]](_0xca23[25],_0x208dx17,_0x208dx16,_0xca23[44],JSON[_0xca23[31]](_0x208dx18));return _0x208dx23})};return null}}function removeEntity(_0x208dx15,_0x208dx16,_0x208dx17){return function(_0x208dx18){if(_0x208dx18){return _0x208dx18[_0xca23[48]]()[_0xca23[45]](function(){logger[_0xca23[24]](_0xca23[22],_0x208dx17,_0x208dx16,_0xca23[47]);logger[_0xca23[26]](_0xca23[25],_0x208dx17,_0x208dx16,_0xca23[47],JSON[_0xca23[31]](_0x208dx18));_0x208dx15[_0xca23[29]](204)[_0xca23[28]]()})}}}function handleEntityNotFound(_0x208dx15,_0x208dx16,_0x208dx17){return function(_0x208dx18){if(!_0x208dx18){logger[_0xca23[50]](_0xca23[22],_0x208dx17,404,_0xca23[49]);_0x208dx15[_0xca23[29]](404)[_0xca23[28]]();return null};return _0x208dx18}}function handleError(_0x208dx15,_0x208dx16,_0x208dx17){_0x208dx16= _0x208dx16|| 500;return function(_0x208dx27){logger[_0xca23[50]](_0xca23[22],_0x208dx17,_0x208dx16,JSON[_0xca23[31]](_0x208dx27));delete _0x208dx27[_0xca23[51]];_0x208dx15[_0xca23[29]](_0x208dx16)[_0xca23[52]](_0x208dx27)}}exports[_0xca23[53]]= function(_0x208dx28,_0x208dx15){var _0x208dx1b={},_0x208dx29={};_0x208dx29[_0xca23[54]]= _[_0xca23[57]](db[_0xca23[56]][_0xca23[55]]);_0x208dx29[_0xca23[58]]= _[_0xca23[57]](_0x208dx28[_0xca23[58]]);_0x208dx29[_0xca23[59]]= _[_0xca23[60]](_0x208dx29[_0xca23[54]],_0x208dx29[_0xca23[58]]);_0x208dx1b[_0xca23[61]]= _[_0xca23[60]](_0x208dx29[_0xca23[54]],qs[_0xca23[62]](_0x208dx28[_0xca23[58]][_0xca23[62]]));_0x208dx1b[_0xca23[61]]= (_0x208dx1b[_0xca23[61]][_0xca23[63]])?_0x208dx1b[_0xca23[61]]:_0x208dx29[_0xca23[54]];if(!_0x208dx28[_0xca23[58]][_0xca23[65]](_0xca23[64])){_0x208dx1b[_0xca23[35]]= qs[_0xca23[35]](_0x208dx28[_0xca23[58]][_0xca23[35]]);_0x208dx1b[_0xca23[34]]= qs[_0xca23[34]](_0x208dx28[_0xca23[58]][_0xca23[34]])};_0x208dx1b[_0xca23[66]]= qs[_0xca23[67]](_0x208dx28[_0xca23[58]][_0xca23[67]]);_0x208dx1b[_0xca23[68]]= qs[_0xca23[59]](_[_0xca23[69]](_0x208dx28[_0xca23[58]],_0x208dx29[_0xca23[59]]));if(_0x208dx28[_0xca23[58]][_0xca23[70]]){_0x208dx1b[_0xca23[68]]= _[_0xca23[73]](_0x208dx1b[_0xca23[68]],{$or:_[_0xca23[72]](_0x208dx1b[_0xca23[61]],function(_0x208dx2a){var _0x208dx2b={};_0x208dx2b[_0x208dx2a]= {$like:_0xca23[71]+ _0x208dx28[_0xca23[58]][_0xca23[70]]+ _0xca23[71]};return _0x208dx2b})})};_0x208dx1b= _[_0xca23[73]]({},_0x208dx1b,_0x208dx28[_0xca23[74]]);return db[_0xca23[56]][_0xca23[76]](_0x208dx1b)[_0xca23[45]](respondWithFilteredResult(_0x208dx15,_0x208dx1b,_0xca23[53]))[_0xca23[75]](handleError(_0x208dx15,null,_0xca23[53]))};exports[_0xca23[77]]= function(_0x208dx28,_0x208dx15){var _0x208dx1b={raw:true,where:{id:_0x208dx28[_0xca23[79]][_0xca23[78]]}},_0x208dx29={};_0x208dx29[_0xca23[54]]= _[_0xca23[57]](db[_0xca23[56]][_0xca23[55]]);_0x208dx29[_0xca23[58]]= _[_0xca23[57]](_0x208dx28[_0xca23[58]]);_0x208dx29[_0xca23[59]]= _[_0xca23[60]](_0x208dx29[_0xca23[54]],_0x208dx29[_0xca23[58]]);_0x208dx1b[_0xca23[61]]= _[_0xca23[60]](_0x208dx29[_0xca23[54]],qs[_0xca23[62]](_0x208dx28[_0xca23[58]][_0xca23[62]]));_0x208dx1b[_0xca23[61]]= (_0x208dx1b[_0xca23[61]][_0xca23[63]])?_0x208dx1b[_0xca23[61]]:_0x208dx29[_0xca23[54]];_0x208dx1b= _[_0xca23[73]]({},_0x208dx1b,_0x208dx28[_0xca23[74]]);return db[_0xca23[56]][_0xca23[80]](_0x208dx1b)[_0xca23[45]](handleEntityNotFound(_0x208dx15,null,_0xca23[77]))[_0xca23[45]](respondWithResult(_0x208dx15,null,_0xca23[77]))[_0xca23[75]](handleError(_0x208dx15,null,_0xca23[77]))};exports[_0xca23[81]]= function(_0x208dx28,_0x208dx15){return db[_0xca23[56]][_0xca23[81]](_0x208dx28[_0xca23[82]],{})[_0xca23[45]](respondWithResult(_0x208dx15,201,_0xca23[81]))[_0xca23[75]](handleError(_0x208dx15,null,_0xca23[81]))};exports[_0xca23[46]]= function(_0x208dx28,_0x208dx15){if(_0x208dx28[_0xca23[82]][_0xca23[78]]){delete _0x208dx28[_0xca23[82]][_0xca23[78]]};return db[_0xca23[56]][_0xca23[80]]({where:{id:_0x208dx28[_0xca23[79]][_0xca23[78]]}})[_0xca23[45]](handleEntityNotFound(_0x208dx15,null,_0xca23[46]))[_0xca23[45]](saveUpdates(_0x208dx28[_0xca23[82]],null,_0xca23[46]))[_0xca23[45]](respondWithResult(_0x208dx15,null,_0xca23[46]))[_0xca23[75]](handleError(_0x208dx15,null,_0xca23[46]))};exports[_0xca23[48]]= function(_0x208dx28,_0x208dx15){return db[_0xca23[56]][_0xca23[80]]({where:{id:_0x208dx28[_0xca23[79]][_0xca23[78]]}})[_0xca23[45]](handleEntityNotFound(_0x208dx15,null,_0xca23[48]))[_0xca23[45]](removeEntity(_0x208dx15,null,_0xca23[48]))[_0xca23[75]](handleError(_0x208dx15,null,_0xca23[48]))}
\ No newline at end of file
diff --git a/server/api/cannedAnswer/cannedAnswer.model.js b/server/api/cannedAnswer/cannedAnswer.model.js
new file mode 100644 (file)
index 0000000..4f2086b
--- /dev/null
@@ -0,0 +1 @@
+var _0xdefa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x74\x6F\x6F\x6C\x73\x5F\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];_0xdefa[0];var _=require(_0xdefa[1]);var util=require(_0xdefa[2]);var logger=require(_0xdefa[4])(_0xdefa[3]);var attributes=require(_0xdefa[5]);module[_0xdefa[6]]= function(_0x1702x5,_0x1702x6){return _0x1702x5[_0xdefa[9]](_0xdefa[7],attributes,{tableName:_0xdefa[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/cannedAnswer/cannedAnswer.rpc.js b/server/api/cannedAnswer/cannedAnswer.rpc.js
new file mode 100644 (file)
index 0000000..eb598a6
--- /dev/null
@@ -0,0 +1 @@
+var _0xba2a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xba2a[0];var _=require(_0xba2a[1]);var util=require(_0xba2a[2]);var moment=require(_0xba2a[3]);var BPromise=require(_0xba2a[4]);var db=require(_0xba2a[6])[_0xba2a[5]];var utils=require(_0xba2a[7]);var logger=require(_0xba2a[9])(_0xba2a[8]);var jayson=require(_0xba2a[10]);var client=jayson[_0xba2a[12]][_0xba2a[11]]({port:9002});function respondWithRpcPromise(_0x61a3xb,_0x61a3xc,_0x61a3xd){return  new BPromise(function(_0x61a3xe,_0x61a3xf){return client[_0xba2a[25]](_0x61a3xb,_0x61a3xd)[_0xba2a[24]](function(_0x61a3x11){logger[_0xba2a[17]](_0xba2a[13],_0x61a3xc,_0xba2a[16]);logger[_0xba2a[20]](_0xba2a[18],_0x61a3xc,_0xba2a[16],JSON[_0xba2a[19]](_0x61a3x11));if(_0x61a3x11[_0xba2a[14]]){if(_0x61a3x11[_0xba2a[14]][_0xba2a[21]]=== 500){logger[_0xba2a[14]](_0xba2a[13],_0x61a3xc,_0x61a3x11[_0xba2a[14]][_0xba2a[22]]);return _0x61a3xf(_0x61a3x11[_0xba2a[14]][_0xba2a[22]])};logger[_0xba2a[14]](_0xba2a[13],_0x61a3xc,_0x61a3x11[_0xba2a[14]][_0xba2a[22]]);return _0x61a3xe(_0x61a3x11[_0xba2a[14]][_0xba2a[22]])}else {logger[_0xba2a[17]](_0xba2a[13],_0x61a3xc,_0xba2a[16]);_0x61a3xe(_0x61a3x11[_0xba2a[23]][_0xba2a[22]])}})[_0xba2a[15]](function(_0x61a3x10){logger[_0xba2a[14]](_0xba2a[13],_0x61a3xc,_0x61a3x10);_0x61a3xf(_0x61a3x10)})})}
\ No newline at end of file
diff --git a/server/api/cannedAnswer/index.js b/server/api/cannedAnswer/index.js
new file mode 100644 (file)
index 0000000..52daa06
--- /dev/null
@@ -0,0 +1 @@
+var _0xeaf5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xeaf5[0];var multer=require(_0xeaf5[1]);var util=require(_0xeaf5[2]);var path=require(_0xeaf5[3]);var express=require(_0xeaf5[4]);var router=express.Router();var auth=require(_0xeaf5[5]);var config=require(_0xeaf5[6]);var controller=require(_0xeaf5[7]);router[_0xeaf5[11]](_0xeaf5[8],auth[_0xeaf5[9]](),controller[_0xeaf5[10]]);router[_0xeaf5[11]](_0xeaf5[12],auth[_0xeaf5[9]](),controller[_0xeaf5[13]]);router[_0xeaf5[15]](_0xeaf5[8],auth[_0xeaf5[9]](),controller[_0xeaf5[14]]);router[_0xeaf5[17]](_0xeaf5[12],auth[_0xeaf5[9]](),controller[_0xeaf5[16]]);router[_0xeaf5[19]](_0xeaf5[12],auth[_0xeaf5[9]](),controller[_0xeaf5[18]]);module[_0xeaf5[20]]= router
\ No newline at end of file
diff --git a/server/api/cdr/cdr.attributes.js b/server/api/cdr/cdr.attributes.js
new file mode 100644 (file)
index 0000000..bbebe3e
--- /dev/null
@@ -0,0 +1 @@
+var _0xbad0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x44\x41\x54\x45","\x31\x39\x37\x30\x2D\x30\x31\x2D\x30\x31\x20\x30\x30\x3A\x30\x30\x3A\x30\x31","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52"];_0xbad0[0];var Sequelize=require(_0xbad0[1]);module[_0xbad0[2]]= {calldate:{type:Sequelize[_0xbad0[3]],allowNull:false,defaultValue:_0xbad0[4]},clid:{type:Sequelize[_0xbad0[5]]},src:{type:Sequelize[_0xbad0[5]]},dst:{type:Sequelize[_0xbad0[5]]},dcontext:{type:Sequelize[_0xbad0[5]]},channel:{type:Sequelize[_0xbad0[5]]},dstchannel:{type:Sequelize[_0xbad0[5]]},lastapp:{type:Sequelize[_0xbad0[5]]},lastdata:{type:Sequelize[_0xbad0[5]]},duration:{type:Sequelize[_0xbad0[6]],allowNull:false,defaultValue:0},billsec:{type:Sequelize[_0xbad0[6]],allowNull:false,defaultValue:0},disposition:{type:Sequelize[_0xbad0[5]]},amaflags:{type:Sequelize[_0xbad0[6]],allowNull:false,defaultValue:0},accountcode:{type:Sequelize[_0xbad0[5]]},userfield:{type:Sequelize[_0xbad0[5]]},uniqueid:{type:Sequelize[_0xbad0[5]]},linkedid:{type:Sequelize[_0xbad0[5]]},sequence:{type:Sequelize[_0xbad0[5]]},peeraccount:{type:Sequelize[_0xbad0[5]]},type:{type:Sequelize[_0xbad0[5]]},tag:{type:Sequelize[_0xbad0[5]]}}
\ No newline at end of file
diff --git a/server/api/cdr/cdr.controller.js b/server/api/cdr/cdr.controller.js
new file mode 100644 (file)
index 0000000..6b797d5
--- /dev/null
@@ -0,0 +1 @@
+var _0xe6c8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x64\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x64\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x64\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xe6c8[0];var jsonpatch=require(_0xe6c8[1]);var rp=require(_0xe6c8[2]);var moment=require(_0xe6c8[3]);var BPromise=require(_0xe6c8[4]);var util=require(_0xe6c8[5]);var path=require(_0xe6c8[6]);var sox=require(_0xe6c8[7]);var ejs=require(_0xe6c8[8]);var fs=require(_0xe6c8[9]);var _=require(_0xe6c8[10]);var squel=require(_0xe6c8[11]);var crypto=require(_0xe6c8[12]);var jsforce=require(_0xe6c8[13]);var toCsv=require(_0xe6c8[14]);var qs=require(_0xe6c8[15]);var logger=require(_0xe6c8[17])(_0xe6c8[16]);var utils=require(_0xe6c8[18]);var config=require(_0xe6c8[19]);var db=require(_0xe6c8[21])[_0xe6c8[20]];function respondWithStatusCode(_0x6b76x15,_0x6b76x16,_0x6b76x17){_0x6b76x16= _0x6b76x16|| 204;return function(_0x6b76x18){if(_0x6b76x18){logger[_0xe6c8[24]](_0xe6c8[22],_0x6b76x17,_0x6b76x16,_0xe6c8[23]);logger[_0xe6c8[26]](_0xe6c8[25],_0x6b76x17,_0x6b76x16,_0xe6c8[23]);return _0x6b76x15[_0xe6c8[27]](_0x6b76x16)};return _0x6b76x15[_0xe6c8[29]](304)[_0xe6c8[28]]()}}function respondWithResult(_0x6b76x15,_0x6b76x16,_0x6b76x17){_0x6b76x16= _0x6b76x16|| 200;return function(_0x6b76x18){if(_0x6b76x18){logger[_0xe6c8[24]](_0xe6c8[22],_0x6b76x17,_0x6b76x16,_0xe6c8[30]);logger[_0xe6c8[26]](_0xe6c8[25],_0x6b76x17,_0x6b76x16,_0xe6c8[30],JSON[_0xe6c8[31]](_0x6b76x18));return _0x6b76x15[_0xe6c8[29]](_0x6b76x16)[_0xe6c8[32]](_0x6b76x18)};return _0x6b76x15[_0xe6c8[29]](304)[_0xe6c8[28]]()}}function respondWithFilteredResult(_0x6b76x15,_0x6b76x1b,_0x6b76x17){return function(_0x6b76x18){if(_0x6b76x18){var _0x6b76x1c=_0x6b76x18[_0xe6c8[33]],_0x6b76x1d=_0x6b76x1b[_0xe6c8[34]],_0x6b76x1e=_0x6b76x1b[_0xe6c8[34]]+ _0x6b76x1b[_0xe6c8[35]],_0x6b76x16;if(_0x6b76x1e>= _0x6b76x1c){_0x6b76x1e= _0x6b76x1c;_0x6b76x16= 200}else {_0x6b76x16= 206};_0x6b76x15[_0xe6c8[29]](_0x6b76x16);logger[_0xe6c8[24]](_0xe6c8[22],_0x6b76x17,_0x6b76x16,_0xe6c8[36]);logger[_0xe6c8[26]](_0xe6c8[25],_0x6b76x17,_0x6b76x16,_0xe6c8[30],JSON[_0xe6c8[31]](_0x6b76x18));return _0x6b76x15[_0xe6c8[40]](_0xe6c8[37],_0x6b76x1d+ _0xe6c8[38]+ _0x6b76x1e+ _0xe6c8[39]+ _0x6b76x1c)[_0xe6c8[32]](_0x6b76x18)};return null}}function patchUpdates(_0x6b76x20){return function(_0x6b76x18){try{jsonpatch[_0xe6c8[41]](_0x6b76x18,_0x6b76x20,true)}catch(err){return BPromise[_0xe6c8[42]](err)};return _0x6b76x18[_0xe6c8[43]]()}}function saveUpdates(_0x6b76x22,_0x6b76x16,_0x6b76x17){return function(_0x6b76x18){if(_0x6b76x18){return _0x6b76x18[_0xe6c8[46]](_0x6b76x22)[_0xe6c8[45]](function(_0x6b76x23){logger[_0xe6c8[24]](_0xe6c8[22],_0x6b76x17,_0x6b76x16,_0xe6c8[44]);logger[_0xe6c8[26]](_0xe6c8[25],_0x6b76x17,_0x6b76x16,_0xe6c8[44],JSON[_0xe6c8[31]](_0x6b76x18));return _0x6b76x23})};return null}}function removeEntity(_0x6b76x15,_0x6b76x16,_0x6b76x17){return function(_0x6b76x18){if(_0x6b76x18){return _0x6b76x18[_0xe6c8[48]]()[_0xe6c8[45]](function(){logger[_0xe6c8[24]](_0xe6c8[22],_0x6b76x17,_0x6b76x16,_0xe6c8[47]);logger[_0xe6c8[26]](_0xe6c8[25],_0x6b76x17,_0x6b76x16,_0xe6c8[47],JSON[_0xe6c8[31]](_0x6b76x18));_0x6b76x15[_0xe6c8[29]](204)[_0xe6c8[28]]()})}}}function handleEntityNotFound(_0x6b76x15,_0x6b76x16,_0x6b76x17){return function(_0x6b76x18){if(!_0x6b76x18){logger[_0xe6c8[50]](_0xe6c8[22],_0x6b76x17,404,_0xe6c8[49]);_0x6b76x15[_0xe6c8[29]](404)[_0xe6c8[28]]();return null};return _0x6b76x18}}function handleError(_0x6b76x15,_0x6b76x16,_0x6b76x17){_0x6b76x16= _0x6b76x16|| 500;return function(_0x6b76x27){logger[_0xe6c8[50]](_0xe6c8[22],_0x6b76x17,_0x6b76x16,JSON[_0xe6c8[31]](_0x6b76x27));delete _0x6b76x27[_0xe6c8[51]];_0x6b76x15[_0xe6c8[29]](_0x6b76x16)[_0xe6c8[52]](_0x6b76x27)}}exports[_0xe6c8[53]]= function(_0x6b76x28,_0x6b76x15){var _0x6b76x1b={},_0x6b76x29={};_0x6b76x29[_0xe6c8[54]]= _[_0xe6c8[57]](db[_0xe6c8[56]][_0xe6c8[55]]);_0x6b76x29[_0xe6c8[58]]= _[_0xe6c8[57]](_0x6b76x28[_0xe6c8[58]]);_0x6b76x29[_0xe6c8[59]]= _[_0xe6c8[60]](_0x6b76x29[_0xe6c8[54]],_0x6b76x29[_0xe6c8[58]]);_0x6b76x1b[_0xe6c8[61]]= _[_0xe6c8[60]](_0x6b76x29[_0xe6c8[54]],qs[_0xe6c8[62]](_0x6b76x28[_0xe6c8[58]][_0xe6c8[62]]));_0x6b76x1b[_0xe6c8[61]]= (_0x6b76x1b[_0xe6c8[61]][_0xe6c8[63]])?_0x6b76x1b[_0xe6c8[61]]:_0x6b76x29[_0xe6c8[54]];if(!_0x6b76x28[_0xe6c8[58]][_0xe6c8[65]](_0xe6c8[64])){_0x6b76x1b[_0xe6c8[35]]= qs[_0xe6c8[35]](_0x6b76x28[_0xe6c8[58]][_0xe6c8[35]]);_0x6b76x1b[_0xe6c8[34]]= qs[_0xe6c8[34]](_0x6b76x28[_0xe6c8[58]][_0xe6c8[34]])};_0x6b76x1b[_0xe6c8[66]]= qs[_0xe6c8[67]](_0x6b76x28[_0xe6c8[58]][_0xe6c8[67]]);_0x6b76x1b[_0xe6c8[68]]= qs[_0xe6c8[59]](_[_0xe6c8[69]](_0x6b76x28[_0xe6c8[58]],_0x6b76x29[_0xe6c8[59]]));if(_0x6b76x28[_0xe6c8[58]][_0xe6c8[70]]){_0x6b76x1b[_0xe6c8[68]]= _[_0xe6c8[73]](_0x6b76x1b[_0xe6c8[68]],{$or:_[_0xe6c8[72]](_0x6b76x1b[_0xe6c8[61]],function(_0x6b76x2a){var _0x6b76x2b={};_0x6b76x2b[_0x6b76x2a]= {$like:_0xe6c8[71]+ _0x6b76x28[_0xe6c8[58]][_0xe6c8[70]]+ _0xe6c8[71]};return _0x6b76x2b})})};_0x6b76x1b= _[_0xe6c8[73]]({},_0x6b76x1b,_0x6b76x28[_0xe6c8[74]]);return db[_0xe6c8[56]][_0xe6c8[76]](_0x6b76x1b)[_0xe6c8[45]](respondWithFilteredResult(_0x6b76x15,_0x6b76x1b,_0xe6c8[53]))[_0xe6c8[75]](handleError(_0x6b76x15,null,_0xe6c8[53]))};exports[_0xe6c8[77]]= function(_0x6b76x28,_0x6b76x15){var _0x6b76x1b={raw:true,where:{id:_0x6b76x28[_0xe6c8[79]][_0xe6c8[78]]}},_0x6b76x29={};_0x6b76x29[_0xe6c8[54]]= _[_0xe6c8[57]](db[_0xe6c8[56]][_0xe6c8[55]]);_0x6b76x29[_0xe6c8[58]]= _[_0xe6c8[57]](_0x6b76x28[_0xe6c8[58]]);_0x6b76x29[_0xe6c8[59]]= _[_0xe6c8[60]](_0x6b76x29[_0xe6c8[54]],_0x6b76x29[_0xe6c8[58]]);_0x6b76x1b[_0xe6c8[61]]= _[_0xe6c8[60]](_0x6b76x29[_0xe6c8[54]],qs[_0xe6c8[62]](_0x6b76x28[_0xe6c8[58]][_0xe6c8[62]]));_0x6b76x1b[_0xe6c8[61]]= (_0x6b76x1b[_0xe6c8[61]][_0xe6c8[63]])?_0x6b76x1b[_0xe6c8[61]]:_0x6b76x29[_0xe6c8[54]];_0x6b76x1b= _[_0xe6c8[73]]({},_0x6b76x1b,_0x6b76x28[_0xe6c8[74]]);return db[_0xe6c8[56]][_0xe6c8[80]](_0x6b76x1b)[_0xe6c8[45]](handleEntityNotFound(_0x6b76x15,null,_0xe6c8[77]))[_0xe6c8[45]](respondWithResult(_0x6b76x15,null,_0xe6c8[77]))[_0xe6c8[75]](handleError(_0x6b76x15,null,_0xe6c8[77]))};exports[_0xe6c8[81]]= function(_0x6b76x28,_0x6b76x15){return db[_0xe6c8[56]][_0xe6c8[81]](_0x6b76x28[_0xe6c8[82]],{})[_0xe6c8[45]](respondWithResult(_0x6b76x15,201,_0xe6c8[81]))[_0xe6c8[75]](handleError(_0x6b76x15,null,_0xe6c8[81]))};exports[_0xe6c8[46]]= function(_0x6b76x28,_0x6b76x15){if(_0x6b76x28[_0xe6c8[82]][_0xe6c8[78]]){delete _0x6b76x28[_0xe6c8[82]][_0xe6c8[78]]};return db[_0xe6c8[56]][_0xe6c8[80]]({where:{id:_0x6b76x28[_0xe6c8[79]][_0xe6c8[78]]}})[_0xe6c8[45]](handleEntityNotFound(_0x6b76x15,null,_0xe6c8[46]))[_0xe6c8[45]](saveUpdates(_0x6b76x28[_0xe6c8[82]],null,_0xe6c8[46]))[_0xe6c8[45]](respondWithResult(_0x6b76x15,null,_0xe6c8[46]))[_0xe6c8[75]](handleError(_0x6b76x15,null,_0xe6c8[46]))};exports[_0xe6c8[48]]= function(_0x6b76x28,_0x6b76x15){return db[_0xe6c8[56]][_0xe6c8[80]]({where:{id:_0x6b76x28[_0xe6c8[79]][_0xe6c8[78]]}})[_0xe6c8[45]](handleEntityNotFound(_0x6b76x15,null,_0xe6c8[48]))[_0xe6c8[45]](removeEntity(_0x6b76x15,null,_0xe6c8[48]))[_0xe6c8[75]](handleError(_0x6b76x15,null,_0xe6c8[48]))}
\ No newline at end of file
diff --git a/server/api/cdr/cdr.model.js b/server/api/cdr/cdr.model.js
new file mode 100644 (file)
index 0000000..c1ab0bb
--- /dev/null
@@ -0,0 +1 @@
+var _0x9cce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x64\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x64\x72","\x63\x64\x72","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x63\x61\x6C\x6C\x64\x61\x74\x65","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x64\x73\x74","\x73\x72\x63","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];_0x9cce[0];var _=require(_0x9cce[1]);var util=require(_0x9cce[2]);var logger=require(_0x9cce[4])(_0x9cce[3]);var attributes=require(_0x9cce[5]);module[_0x9cce[6]]= function(_0x1d59x5,_0x1d59x6){return _0x1d59x5[_0x9cce[15]](_0x9cce[7],attributes,{tableName:_0x9cce[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0x9cce[9],"\x66\x69\x65\x6C\x64\x73":[_0x9cce[9]]},{"\x6E\x61\x6D\x65":_0x9cce[10],"\x66\x69\x65\x6C\x64\x73":[_0x9cce[10]]},{"\x6E\x61\x6D\x65":_0x9cce[11],"\x66\x69\x65\x6C\x64\x73":[_0x9cce[11]]},{"\x6E\x61\x6D\x65":_0x9cce[12],"\x66\x69\x65\x6C\x64\x73":[_0x9cce[12]]},{"\x6E\x61\x6D\x65":_0x9cce[13],"\x66\x69\x65\x6C\x64\x73":[_0x9cce[13]]},{"\x6E\x61\x6D\x65":_0x9cce[14],"\x66\x69\x65\x6C\x64\x73":[_0x9cce[14]]}],timestamps:false})}
\ No newline at end of file
diff --git a/server/api/cdr/cdr.rpc.js b/server/api/cdr/cdr.rpc.js
new file mode 100644 (file)
index 0000000..1bdbaae
--- /dev/null
@@ -0,0 +1 @@
+var _0x22c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x64\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x64\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x22c3[0];var _=require(_0x22c3[1]);var util=require(_0x22c3[2]);var moment=require(_0x22c3[3]);var BPromise=require(_0x22c3[4]);var db=require(_0x22c3[6])[_0x22c3[5]];var utils=require(_0x22c3[7]);var logger=require(_0x22c3[9])(_0x22c3[8]);var jayson=require(_0x22c3[10]);var client=jayson[_0x22c3[12]][_0x22c3[11]]({port:9002});function respondWithRpcPromise(_0x5549xb,_0x5549xc,_0x5549xd){return  new BPromise(function(_0x5549xe,_0x5549xf){return client[_0x22c3[25]](_0x5549xb,_0x5549xd)[_0x22c3[24]](function(_0x5549x11){logger[_0x22c3[17]](_0x22c3[13],_0x5549xc,_0x22c3[16]);logger[_0x22c3[20]](_0x22c3[18],_0x5549xc,_0x22c3[16],JSON[_0x22c3[19]](_0x5549x11));if(_0x5549x11[_0x22c3[14]]){if(_0x5549x11[_0x22c3[14]][_0x22c3[21]]=== 500){logger[_0x22c3[14]](_0x22c3[13],_0x5549xc,_0x5549x11[_0x22c3[14]][_0x22c3[22]]);return _0x5549xf(_0x5549x11[_0x22c3[14]][_0x22c3[22]])};logger[_0x22c3[14]](_0x22c3[13],_0x5549xc,_0x5549x11[_0x22c3[14]][_0x22c3[22]]);return _0x5549xe(_0x5549x11[_0x22c3[14]][_0x22c3[22]])}else {logger[_0x22c3[17]](_0x22c3[13],_0x5549xc,_0x22c3[16]);_0x5549xe(_0x5549x11[_0x22c3[23]][_0x22c3[22]])}})[_0x22c3[15]](function(_0x5549x10){logger[_0x22c3[14]](_0x22c3[13],_0x5549xc,_0x5549x10);_0x5549xf(_0x5549x10)})})}
\ No newline at end of file
diff --git a/server/api/cdr/index.js b/server/api/cdr/index.js
new file mode 100644 (file)
index 0000000..fe3020b
--- /dev/null
@@ -0,0 +1 @@
+var _0x75da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x64\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x75da[0];var multer=require(_0x75da[1]);var util=require(_0x75da[2]);var path=require(_0x75da[3]);var express=require(_0x75da[4]);var router=express.Router();var auth=require(_0x75da[5]);var config=require(_0x75da[6]);var controller=require(_0x75da[7]);router[_0x75da[11]](_0x75da[8],auth[_0x75da[9]](),controller[_0x75da[10]]);router[_0x75da[11]](_0x75da[12],auth[_0x75da[9]](),controller[_0x75da[13]]);router[_0x75da[15]](_0x75da[8],auth[_0x75da[9]](),controller[_0x75da[14]]);router[_0x75da[17]](_0x75da[12],auth[_0x75da[9]](),controller[_0x75da[16]]);router[_0x75da[19]](_0x75da[12],auth[_0x75da[9]](),controller[_0x75da[18]]);module[_0x75da[20]]= router
\ No newline at end of file
diff --git a/server/api/chatApplication/chatApplication.attributes.js b/server/api/chatApplication/chatApplication.attributes.js
new file mode 100644 (file)
index 0000000..d967ac4
--- /dev/null
@@ -0,0 +1 @@
+var _0x1413=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x6E\x64\x53\x6D\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0x1413[0];var Sequelize=require(_0x1413[1]);module[_0x1413[2]]= {app:{type:Sequelize.ENUM(_0x1413[3],_0x1413[4],_0x1413[5],_0x1413[6]),allowNull:false},priority:{type:Sequelize[_0x1413[7]],allowNull:false},timeout:{type:Sequelize[_0x1413[7]],allowNull:false,validate:{min:1}},interval:{type:Sequelize[_0x1413[8]]},data1:{type:Sequelize[_0x1413[8]]},data2:{type:Sequelize[_0x1413[8]]},data3:{type:Sequelize[_0x1413[8]]},data4:{type:Sequelize[_0x1413[8]]},data5:{type:Sequelize[_0x1413[8]]},data6:{type:Sequelize[_0x1413[8]]},data7:{type:Sequelize[_0x1413[9]]},data8:{type:Sequelize[_0x1413[7]]},data9:{type:Sequelize[_0x1413[7]]},data10:{type:Sequelize[_0x1413[7]]}}
\ No newline at end of file
diff --git a/server/api/chatApplication/chatApplication.controller.js b/server/api/chatApplication/chatApplication.controller.js
new file mode 100644 (file)
index 0000000..49448b3
--- /dev/null
@@ -0,0 +1 @@
+var _0xc594=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xc594[0];var jsonpatch=require(_0xc594[1]);var rp=require(_0xc594[2]);var moment=require(_0xc594[3]);var BPromise=require(_0xc594[4]);var util=require(_0xc594[5]);var path=require(_0xc594[6]);var sox=require(_0xc594[7]);var ejs=require(_0xc594[8]);var fs=require(_0xc594[9]);var _=require(_0xc594[10]);var squel=require(_0xc594[11]);var crypto=require(_0xc594[12]);var jsforce=require(_0xc594[13]);var toCsv=require(_0xc594[14]);var qs=require(_0xc594[15]);var logger=require(_0xc594[17])(_0xc594[16]);var utils=require(_0xc594[18]);var config=require(_0xc594[19]);var db=require(_0xc594[21])[_0xc594[20]];function respondWithStatusCode(_0xb73ex15,_0xb73ex16,_0xb73ex17){_0xb73ex16= _0xb73ex16|| 204;return function(_0xb73ex18){if(_0xb73ex18){logger[_0xc594[24]](_0xc594[22],_0xb73ex17,_0xb73ex16,_0xc594[23]);logger[_0xc594[26]](_0xc594[25],_0xb73ex17,_0xb73ex16,_0xc594[23]);return _0xb73ex15[_0xc594[27]](_0xb73ex16)};return _0xb73ex15[_0xc594[29]](304)[_0xc594[28]]()}}function respondWithResult(_0xb73ex15,_0xb73ex16,_0xb73ex17){_0xb73ex16= _0xb73ex16|| 200;return function(_0xb73ex18){if(_0xb73ex18){logger[_0xc594[24]](_0xc594[22],_0xb73ex17,_0xb73ex16,_0xc594[30]);logger[_0xc594[26]](_0xc594[25],_0xb73ex17,_0xb73ex16,_0xc594[30],JSON[_0xc594[31]](_0xb73ex18));return _0xb73ex15[_0xc594[29]](_0xb73ex16)[_0xc594[32]](_0xb73ex18)};return _0xb73ex15[_0xc594[29]](304)[_0xc594[28]]()}}function respondWithFilteredResult(_0xb73ex15,_0xb73ex1b,_0xb73ex17){return function(_0xb73ex18){if(_0xb73ex18){var _0xb73ex1c=_0xb73ex18[_0xc594[33]],_0xb73ex1d=_0xb73ex1b[_0xc594[34]],_0xb73ex1e=_0xb73ex1b[_0xc594[34]]+ _0xb73ex1b[_0xc594[35]],_0xb73ex16;if(_0xb73ex1e>= _0xb73ex1c){_0xb73ex1e= _0xb73ex1c;_0xb73ex16= 200}else {_0xb73ex16= 206};_0xb73ex15[_0xc594[29]](_0xb73ex16);logger[_0xc594[24]](_0xc594[22],_0xb73ex17,_0xb73ex16,_0xc594[36]);logger[_0xc594[26]](_0xc594[25],_0xb73ex17,_0xb73ex16,_0xc594[30],JSON[_0xc594[31]](_0xb73ex18));return _0xb73ex15[_0xc594[40]](_0xc594[37],_0xb73ex1d+ _0xc594[38]+ _0xb73ex1e+ _0xc594[39]+ _0xb73ex1c)[_0xc594[32]](_0xb73ex18)};return null}}function patchUpdates(_0xb73ex20){return function(_0xb73ex18){try{jsonpatch[_0xc594[41]](_0xb73ex18,_0xb73ex20,true)}catch(err){return BPromise[_0xc594[42]](err)};return _0xb73ex18[_0xc594[43]]()}}function saveUpdates(_0xb73ex22,_0xb73ex16,_0xb73ex17){return function(_0xb73ex18){if(_0xb73ex18){return _0xb73ex18[_0xc594[46]](_0xb73ex22)[_0xc594[45]](function(_0xb73ex23){logger[_0xc594[24]](_0xc594[22],_0xb73ex17,_0xb73ex16,_0xc594[44]);logger[_0xc594[26]](_0xc594[25],_0xb73ex17,_0xb73ex16,_0xc594[44],JSON[_0xc594[31]](_0xb73ex18));return _0xb73ex23})};return null}}function removeEntity(_0xb73ex15,_0xb73ex16,_0xb73ex17){return function(_0xb73ex18){if(_0xb73ex18){return _0xb73ex18[_0xc594[48]]()[_0xc594[45]](function(){logger[_0xc594[24]](_0xc594[22],_0xb73ex17,_0xb73ex16,_0xc594[47]);logger[_0xc594[26]](_0xc594[25],_0xb73ex17,_0xb73ex16,_0xc594[47],JSON[_0xc594[31]](_0xb73ex18));_0xb73ex15[_0xc594[29]](204)[_0xc594[28]]()})}}}function handleEntityNotFound(_0xb73ex15,_0xb73ex16,_0xb73ex17){return function(_0xb73ex18){if(!_0xb73ex18){logger[_0xc594[50]](_0xc594[22],_0xb73ex17,404,_0xc594[49]);_0xb73ex15[_0xc594[29]](404)[_0xc594[28]]();return null};return _0xb73ex18}}function handleError(_0xb73ex15,_0xb73ex16,_0xb73ex17){_0xb73ex16= _0xb73ex16|| 500;return function(_0xb73ex27){logger[_0xc594[50]](_0xc594[22],_0xb73ex17,_0xb73ex16,JSON[_0xc594[31]](_0xb73ex27));delete _0xb73ex27[_0xc594[51]];_0xb73ex15[_0xc594[29]](_0xb73ex16)[_0xc594[52]](_0xb73ex27)}}exports[_0xc594[53]]= function(_0xb73ex28,_0xb73ex15){var _0xb73ex1b={raw:true,where:{id:_0xb73ex28[_0xc594[55]][_0xc594[54]]}},_0xb73ex29={};_0xb73ex29[_0xc594[56]]= _[_0xc594[59]](db[_0xc594[58]][_0xc594[57]]);_0xb73ex29[_0xc594[60]]= _[_0xc594[59]](_0xb73ex28[_0xc594[60]]);_0xb73ex29[_0xc594[61]]= _[_0xc594[62]](_0xb73ex29[_0xc594[56]],_0xb73ex29[_0xc594[60]]);_0xb73ex1b[_0xc594[63]]= _[_0xc594[62]](_0xb73ex29[_0xc594[56]],qs[_0xc594[64]](_0xb73ex28[_0xc594[60]][_0xc594[64]]));_0xb73ex1b[_0xc594[63]]= (_0xb73ex1b[_0xc594[63]][_0xc594[65]])?_0xb73ex1b[_0xc594[63]]:_0xb73ex29[_0xc594[56]];_0xb73ex1b= _[_0xc594[67]]({},_0xb73ex1b,_0xb73ex28[_0xc594[66]]);return db[_0xc594[58]][_0xc594[69]](_0xb73ex1b)[_0xc594[45]](handleEntityNotFound(_0xb73ex15,null,_0xc594[53]))[_0xc594[45]](respondWithResult(_0xb73ex15,null,_0xc594[53]))[_0xc594[68]](handleError(_0xb73ex15,null,_0xc594[53]))};exports[_0xc594[46]]= function(_0xb73ex28,_0xb73ex15){if(_0xb73ex28[_0xc594[70]][_0xc594[54]]){delete _0xb73ex28[_0xc594[70]][_0xc594[54]]};return db[_0xc594[58]][_0xc594[69]]({where:{id:_0xb73ex28[_0xc594[55]][_0xc594[54]]}})[_0xc594[45]](handleEntityNotFound(_0xb73ex15,null,_0xc594[46]))[_0xc594[45]](saveUpdates(_0xb73ex28[_0xc594[70]],null,_0xc594[46]))[_0xc594[45]](respondWithResult(_0xb73ex15,null,_0xc594[46]))[_0xc594[68]](handleError(_0xb73ex15,null,_0xc594[46]))};exports[_0xc594[48]]= function(_0xb73ex28,_0xb73ex15){return db[_0xc594[58]][_0xc594[69]]({where:{id:_0xb73ex28[_0xc594[55]][_0xc594[54]]}})[_0xc594[45]](handleEntityNotFound(_0xb73ex15,null,_0xc594[48]))[_0xc594[45]](removeEntity(_0xb73ex15,null,_0xc594[48]))[_0xc594[68]](handleError(_0xb73ex15,null,_0xc594[48]))}
\ No newline at end of file
diff --git a/server/api/chatApplication/chatApplication.model.js b/server/api/chatApplication/chatApplication.model.js
new file mode 100644 (file)
index 0000000..559354b
--- /dev/null
@@ -0,0 +1 @@
+var _0xc1d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x63\x68\x61\x74\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xc1d0[0];var _=require(_0xc1d0[1]);var util=require(_0xc1d0[2]);var logger=require(_0xc1d0[4])(_0xc1d0[3]);var attributes=require(_0xc1d0[5]);module[_0xc1d0[6]]= function(_0x667ax5,_0x667ax6){return _0x667ax5[_0xc1d0[9]](_0xc1d0[7],attributes,{tableName:_0xc1d0[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/chatApplication/chatApplication.rpc.js b/server/api/chatApplication/chatApplication.rpc.js
new file mode 100644 (file)
index 0000000..b5f7b48
--- /dev/null
@@ -0,0 +1 @@
+var _0x6c77=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6c77[0];var _=require(_0x6c77[1]);var util=require(_0x6c77[2]);var moment=require(_0x6c77[3]);var BPromise=require(_0x6c77[4]);var db=require(_0x6c77[6])[_0x6c77[5]];var utils=require(_0x6c77[7]);var logger=require(_0x6c77[9])(_0x6c77[8]);var jayson=require(_0x6c77[10]);var client=jayson[_0x6c77[12]][_0x6c77[11]]({port:9002});function respondWithRpcPromise(_0x4396xb,_0x4396xc,_0x4396xd){return  new BPromise(function(_0x4396xe,_0x4396xf){return client[_0x6c77[25]](_0x4396xb,_0x4396xd)[_0x6c77[24]](function(_0x4396x11){logger[_0x6c77[17]](_0x6c77[13],_0x4396xc,_0x6c77[16]);logger[_0x6c77[20]](_0x6c77[18],_0x4396xc,_0x6c77[16],JSON[_0x6c77[19]](_0x4396x11));if(_0x4396x11[_0x6c77[14]]){if(_0x4396x11[_0x6c77[14]][_0x6c77[21]]=== 500){logger[_0x6c77[14]](_0x6c77[13],_0x4396xc,_0x4396x11[_0x6c77[14]][_0x6c77[22]]);return _0x4396xf(_0x4396x11[_0x6c77[14]][_0x6c77[22]])};logger[_0x6c77[14]](_0x6c77[13],_0x4396xc,_0x4396x11[_0x6c77[14]][_0x6c77[22]]);return _0x4396xe(_0x4396x11[_0x6c77[14]][_0x6c77[22]])}else {logger[_0x6c77[17]](_0x6c77[13],_0x4396xc,_0x6c77[16]);_0x4396xe(_0x4396x11[_0x6c77[23]][_0x6c77[22]])}})[_0x6c77[15]](function(_0x4396x10){logger[_0x6c77[14]](_0x6c77[13],_0x4396xc,_0x4396x10);_0x4396xf(_0x4396x10)})})}
\ No newline at end of file
diff --git a/server/api/chatApplication/index.js b/server/api/chatApplication/index.js
new file mode 100644 (file)
index 0000000..32b32f2
--- /dev/null
@@ -0,0 +1 @@
+var _0x2ae7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2ae7[0];var multer=require(_0x2ae7[1]);var util=require(_0x2ae7[2]);var path=require(_0x2ae7[3]);var express=require(_0x2ae7[4]);var router=express.Router();var auth=require(_0x2ae7[5]);var config=require(_0x2ae7[6]);var controller=require(_0x2ae7[7]);router[_0x2ae7[11]](_0x2ae7[8],auth[_0x2ae7[9]](),controller[_0x2ae7[10]]);router[_0x2ae7[13]](_0x2ae7[8],auth[_0x2ae7[9]](),controller[_0x2ae7[12]]);router[_0x2ae7[15]](_0x2ae7[8],auth[_0x2ae7[9]](),controller[_0x2ae7[14]]);module[_0x2ae7[16]]= router
\ No newline at end of file
diff --git a/server/api/chatDisposition/chatDisposition.attributes.js b/server/api/chatDisposition/chatDisposition.attributes.js
new file mode 100644 (file)
index 0000000..e8f8aeb
--- /dev/null
@@ -0,0 +1 @@
+var _0xc35e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xc35e[0];var Sequelize=require(_0xc35e[1]);module[_0xc35e[2]]= {name:{type:Sequelize[_0xc35e[3]],allowNull:false}}
\ No newline at end of file
diff --git a/server/api/chatDisposition/chatDisposition.controller.js b/server/api/chatDisposition/chatDisposition.controller.js
new file mode 100644 (file)
index 0000000..05a4278
--- /dev/null
@@ -0,0 +1 @@
+var _0x74cc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x74cc[0];var jsonpatch=require(_0x74cc[1]);var rp=require(_0x74cc[2]);var moment=require(_0x74cc[3]);var BPromise=require(_0x74cc[4]);var util=require(_0x74cc[5]);var path=require(_0x74cc[6]);var sox=require(_0x74cc[7]);var ejs=require(_0x74cc[8]);var fs=require(_0x74cc[9]);var _=require(_0x74cc[10]);var squel=require(_0x74cc[11]);var crypto=require(_0x74cc[12]);var jsforce=require(_0x74cc[13]);var toCsv=require(_0x74cc[14]);var qs=require(_0x74cc[15]);var logger=require(_0x74cc[17])(_0x74cc[16]);var utils=require(_0x74cc[18]);var config=require(_0x74cc[19]);var db=require(_0x74cc[21])[_0x74cc[20]];function respondWithStatusCode(_0xf16ax15,_0xf16ax16,_0xf16ax17){_0xf16ax16= _0xf16ax16|| 204;return function(_0xf16ax18){if(_0xf16ax18){logger[_0x74cc[24]](_0x74cc[22],_0xf16ax17,_0xf16ax16,_0x74cc[23]);logger[_0x74cc[26]](_0x74cc[25],_0xf16ax17,_0xf16ax16,_0x74cc[23]);return _0xf16ax15[_0x74cc[27]](_0xf16ax16)};return _0xf16ax15[_0x74cc[29]](304)[_0x74cc[28]]()}}function respondWithResult(_0xf16ax15,_0xf16ax16,_0xf16ax17){_0xf16ax16= _0xf16ax16|| 200;return function(_0xf16ax18){if(_0xf16ax18){logger[_0x74cc[24]](_0x74cc[22],_0xf16ax17,_0xf16ax16,_0x74cc[30]);logger[_0x74cc[26]](_0x74cc[25],_0xf16ax17,_0xf16ax16,_0x74cc[30],JSON[_0x74cc[31]](_0xf16ax18));return _0xf16ax15[_0x74cc[29]](_0xf16ax16)[_0x74cc[32]](_0xf16ax18)};return _0xf16ax15[_0x74cc[29]](304)[_0x74cc[28]]()}}function respondWithFilteredResult(_0xf16ax15,_0xf16ax1b,_0xf16ax17){return function(_0xf16ax18){if(_0xf16ax18){var _0xf16ax1c=_0xf16ax18[_0x74cc[33]],_0xf16ax1d=_0xf16ax1b[_0x74cc[34]],_0xf16ax1e=_0xf16ax1b[_0x74cc[34]]+ _0xf16ax1b[_0x74cc[35]],_0xf16ax16;if(_0xf16ax1e>= _0xf16ax1c){_0xf16ax1e= _0xf16ax1c;_0xf16ax16= 200}else {_0xf16ax16= 206};_0xf16ax15[_0x74cc[29]](_0xf16ax16);logger[_0x74cc[24]](_0x74cc[22],_0xf16ax17,_0xf16ax16,_0x74cc[36]);logger[_0x74cc[26]](_0x74cc[25],_0xf16ax17,_0xf16ax16,_0x74cc[30],JSON[_0x74cc[31]](_0xf16ax18));return _0xf16ax15[_0x74cc[40]](_0x74cc[37],_0xf16ax1d+ _0x74cc[38]+ _0xf16ax1e+ _0x74cc[39]+ _0xf16ax1c)[_0x74cc[32]](_0xf16ax18)};return null}}function patchUpdates(_0xf16ax20){return function(_0xf16ax18){try{jsonpatch[_0x74cc[41]](_0xf16ax18,_0xf16ax20,true)}catch(err){return BPromise[_0x74cc[42]](err)};return _0xf16ax18[_0x74cc[43]]()}}function saveUpdates(_0xf16ax22,_0xf16ax16,_0xf16ax17){return function(_0xf16ax18){if(_0xf16ax18){return _0xf16ax18[_0x74cc[46]](_0xf16ax22)[_0x74cc[45]](function(_0xf16ax23){logger[_0x74cc[24]](_0x74cc[22],_0xf16ax17,_0xf16ax16,_0x74cc[44]);logger[_0x74cc[26]](_0x74cc[25],_0xf16ax17,_0xf16ax16,_0x74cc[44],JSON[_0x74cc[31]](_0xf16ax18));return _0xf16ax23})};return null}}function removeEntity(_0xf16ax15,_0xf16ax16,_0xf16ax17){return function(_0xf16ax18){if(_0xf16ax18){return _0xf16ax18[_0x74cc[48]]()[_0x74cc[45]](function(){logger[_0x74cc[24]](_0x74cc[22],_0xf16ax17,_0xf16ax16,_0x74cc[47]);logger[_0x74cc[26]](_0x74cc[25],_0xf16ax17,_0xf16ax16,_0x74cc[47],JSON[_0x74cc[31]](_0xf16ax18));_0xf16ax15[_0x74cc[29]](204)[_0x74cc[28]]()})}}}function handleEntityNotFound(_0xf16ax15,_0xf16ax16,_0xf16ax17){return function(_0xf16ax18){if(!_0xf16ax18){logger[_0x74cc[50]](_0x74cc[22],_0xf16ax17,404,_0x74cc[49]);_0xf16ax15[_0x74cc[29]](404)[_0x74cc[28]]();return null};return _0xf16ax18}}function handleError(_0xf16ax15,_0xf16ax16,_0xf16ax17){_0xf16ax16= _0xf16ax16|| 500;return function(_0xf16ax27){logger[_0x74cc[50]](_0x74cc[22],_0xf16ax17,_0xf16ax16,JSON[_0x74cc[31]](_0xf16ax27));delete _0xf16ax27[_0x74cc[51]];_0xf16ax15[_0x74cc[29]](_0xf16ax16)[_0x74cc[52]](_0xf16ax27)}}exports[_0x74cc[53]]= function(_0xf16ax28,_0xf16ax15){var _0xf16ax1b={raw:true,where:{id:_0xf16ax28[_0x74cc[55]][_0x74cc[54]]}},_0xf16ax29={};_0xf16ax29[_0x74cc[56]]= _[_0x74cc[59]](db[_0x74cc[58]][_0x74cc[57]]);_0xf16ax29[_0x74cc[60]]= _[_0x74cc[59]](_0xf16ax28[_0x74cc[60]]);_0xf16ax29[_0x74cc[61]]= _[_0x74cc[62]](_0xf16ax29[_0x74cc[56]],_0xf16ax29[_0x74cc[60]]);_0xf16ax1b[_0x74cc[63]]= _[_0x74cc[62]](_0xf16ax29[_0x74cc[56]],qs[_0x74cc[64]](_0xf16ax28[_0x74cc[60]][_0x74cc[64]]));_0xf16ax1b[_0x74cc[63]]= (_0xf16ax1b[_0x74cc[63]][_0x74cc[65]])?_0xf16ax1b[_0x74cc[63]]:_0xf16ax29[_0x74cc[56]];_0xf16ax1b= _[_0x74cc[67]]({},_0xf16ax1b,_0xf16ax28[_0x74cc[66]]);return db[_0x74cc[58]][_0x74cc[69]](_0xf16ax1b)[_0x74cc[45]](handleEntityNotFound(_0xf16ax15,null,_0x74cc[53]))[_0x74cc[45]](respondWithResult(_0xf16ax15,null,_0x74cc[53]))[_0x74cc[68]](handleError(_0xf16ax15,null,_0x74cc[53]))};exports[_0x74cc[70]]= function(_0xf16ax28,_0xf16ax15){return db[_0x74cc[58]][_0x74cc[70]](_0xf16ax28[_0x74cc[71]],{})[_0x74cc[45]](respondWithResult(_0xf16ax15,201,_0x74cc[70]))[_0x74cc[68]](handleError(_0xf16ax15,null,_0x74cc[70]))};exports[_0x74cc[46]]= function(_0xf16ax28,_0xf16ax15){if(_0xf16ax28[_0x74cc[71]][_0x74cc[54]]){delete _0xf16ax28[_0x74cc[71]][_0x74cc[54]]};return db[_0x74cc[58]][_0x74cc[69]]({where:{id:_0xf16ax28[_0x74cc[55]][_0x74cc[54]]}})[_0x74cc[45]](handleEntityNotFound(_0xf16ax15,null,_0x74cc[46]))[_0x74cc[45]](saveUpdates(_0xf16ax28[_0x74cc[71]],null,_0x74cc[46]))[_0x74cc[45]](respondWithResult(_0xf16ax15,null,_0x74cc[46]))[_0x74cc[68]](handleError(_0xf16ax15,null,_0x74cc[46]))};exports[_0x74cc[48]]= function(_0xf16ax28,_0xf16ax15){return db[_0x74cc[58]][_0x74cc[69]]({where:{id:_0xf16ax28[_0x74cc[55]][_0x74cc[54]]}})[_0x74cc[45]](handleEntityNotFound(_0xf16ax15,null,_0x74cc[48]))[_0x74cc[45]](removeEntity(_0xf16ax15,null,_0x74cc[48]))[_0x74cc[68]](handleError(_0xf16ax15,null,_0x74cc[48]))}
\ No newline at end of file
diff --git a/server/api/chatDisposition/chatDisposition.model.js b/server/api/chatDisposition/chatDisposition.model.js
new file mode 100644 (file)
index 0000000..d0020c3
--- /dev/null
@@ -0,0 +1 @@
+var _0x5e47=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x68\x61\x74\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x5e47[0];var _=require(_0x5e47[1]);var util=require(_0x5e47[2]);var logger=require(_0x5e47[4])(_0x5e47[3]);var attributes=require(_0x5e47[5]);module[_0x5e47[6]]= function(_0xda55x5,_0xda55x6){return _0xda55x5[_0x5e47[9]](_0x5e47[7],attributes,{tableName:_0x5e47[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/chatDisposition/chatDisposition.rpc.js b/server/api/chatDisposition/chatDisposition.rpc.js
new file mode 100644 (file)
index 0000000..a1a4671
--- /dev/null
@@ -0,0 +1 @@
+var _0xc410=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xc410[0];var _=require(_0xc410[1]);var util=require(_0xc410[2]);var moment=require(_0xc410[3]);var BPromise=require(_0xc410[4]);var db=require(_0xc410[6])[_0xc410[5]];var utils=require(_0xc410[7]);var logger=require(_0xc410[9])(_0xc410[8]);var jayson=require(_0xc410[10]);var client=jayson[_0xc410[12]][_0xc410[11]]({port:9002});function respondWithRpcPromise(_0xc1c7xb,_0xc1c7xc,_0xc1c7xd){return  new BPromise(function(_0xc1c7xe,_0xc1c7xf){return client[_0xc410[25]](_0xc1c7xb,_0xc1c7xd)[_0xc410[24]](function(_0xc1c7x11){logger[_0xc410[17]](_0xc410[13],_0xc1c7xc,_0xc410[16]);logger[_0xc410[20]](_0xc410[18],_0xc1c7xc,_0xc410[16],JSON[_0xc410[19]](_0xc1c7x11));if(_0xc1c7x11[_0xc410[14]]){if(_0xc1c7x11[_0xc410[14]][_0xc410[21]]=== 500){logger[_0xc410[14]](_0xc410[13],_0xc1c7xc,_0xc1c7x11[_0xc410[14]][_0xc410[22]]);return _0xc1c7xf(_0xc1c7x11[_0xc410[14]][_0xc410[22]])};logger[_0xc410[14]](_0xc410[13],_0xc1c7xc,_0xc1c7x11[_0xc410[14]][_0xc410[22]]);return _0xc1c7xe(_0xc1c7x11[_0xc410[14]][_0xc410[22]])}else {logger[_0xc410[17]](_0xc410[13],_0xc1c7xc,_0xc410[16]);_0xc1c7xe(_0xc1c7x11[_0xc410[23]][_0xc410[22]])}})[_0xc410[15]](function(_0xc1c7x10){logger[_0xc410[14]](_0xc410[13],_0xc1c7xc,_0xc1c7x10);_0xc1c7xf(_0xc1c7x10)})})}
\ No newline at end of file
diff --git a/server/api/chatDisposition/index.js b/server/api/chatDisposition/index.js
new file mode 100644 (file)
index 0000000..cdc3ff7
--- /dev/null
@@ -0,0 +1 @@
+var _0x92b3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x92b3[0];var multer=require(_0x92b3[1]);var util=require(_0x92b3[2]);var path=require(_0x92b3[3]);var express=require(_0x92b3[4]);var router=express.Router();var auth=require(_0x92b3[5]);var config=require(_0x92b3[6]);var controller=require(_0x92b3[7]);router[_0x92b3[11]](_0x92b3[8],auth[_0x92b3[9]](),controller[_0x92b3[10]]);router[_0x92b3[14]](_0x92b3[12],auth[_0x92b3[9]](),controller[_0x92b3[13]]);router[_0x92b3[16]](_0x92b3[8],auth[_0x92b3[9]](),controller[_0x92b3[15]]);router[_0x92b3[18]](_0x92b3[8],auth[_0x92b3[9]](),controller[_0x92b3[17]]);module[_0x92b3[19]]= router
\ No newline at end of file
diff --git a/server/api/chatEnquiry/chatEnquiry.attributes.js b/server/api/chatEnquiry/chatEnquiry.attributes.js
new file mode 100644 (file)
index 0000000..d40d1fa
--- /dev/null
@@ -0,0 +1 @@
+var _0x3a91=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x3a91[0];var Sequelize=require(_0x3a91[1]);module[_0x3a91[2]]= {username:{type:Sequelize[_0x3a91[3]]},email:{type:Sequelize[_0x3a91[3]],validate:{isEmail:true}},text:{type:Sequelize[_0x3a91[4]]},read:{type:Sequelize[_0x3a91[5]],defaultValue:false}}
\ No newline at end of file
diff --git a/server/api/chatEnquiry/chatEnquiry.controller.js b/server/api/chatEnquiry/chatEnquiry.controller.js
new file mode 100644 (file)
index 0000000..128ac80
--- /dev/null
@@ -0,0 +1 @@
+var _0xd0a2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xd0a2[0];var jsonpatch=require(_0xd0a2[1]);var rp=require(_0xd0a2[2]);var moment=require(_0xd0a2[3]);var BPromise=require(_0xd0a2[4]);var util=require(_0xd0a2[5]);var path=require(_0xd0a2[6]);var sox=require(_0xd0a2[7]);var ejs=require(_0xd0a2[8]);var fs=require(_0xd0a2[9]);var _=require(_0xd0a2[10]);var squel=require(_0xd0a2[11]);var crypto=require(_0xd0a2[12]);var jsforce=require(_0xd0a2[13]);var toCsv=require(_0xd0a2[14]);var qs=require(_0xd0a2[15]);var logger=require(_0xd0a2[17])(_0xd0a2[16]);var utils=require(_0xd0a2[18]);var config=require(_0xd0a2[19]);var db=require(_0xd0a2[21])[_0xd0a2[20]];function respondWithStatusCode(_0x304ax15,_0x304ax16,_0x304ax17){_0x304ax16= _0x304ax16|| 204;return function(_0x304ax18){if(_0x304ax18){logger[_0xd0a2[24]](_0xd0a2[22],_0x304ax17,_0x304ax16,_0xd0a2[23]);logger[_0xd0a2[26]](_0xd0a2[25],_0x304ax17,_0x304ax16,_0xd0a2[23]);return _0x304ax15[_0xd0a2[27]](_0x304ax16)};return _0x304ax15[_0xd0a2[29]](304)[_0xd0a2[28]]()}}function respondWithResult(_0x304ax15,_0x304ax16,_0x304ax17){_0x304ax16= _0x304ax16|| 200;return function(_0x304ax18){if(_0x304ax18){logger[_0xd0a2[24]](_0xd0a2[22],_0x304ax17,_0x304ax16,_0xd0a2[30]);logger[_0xd0a2[26]](_0xd0a2[25],_0x304ax17,_0x304ax16,_0xd0a2[30],JSON[_0xd0a2[31]](_0x304ax18));return _0x304ax15[_0xd0a2[29]](_0x304ax16)[_0xd0a2[32]](_0x304ax18)};return _0x304ax15[_0xd0a2[29]](304)[_0xd0a2[28]]()}}function respondWithFilteredResult(_0x304ax15,_0x304ax1b,_0x304ax17){return function(_0x304ax18){if(_0x304ax18){var _0x304ax1c=_0x304ax18[_0xd0a2[33]],_0x304ax1d=_0x304ax1b[_0xd0a2[34]],_0x304ax1e=_0x304ax1b[_0xd0a2[34]]+ _0x304ax1b[_0xd0a2[35]],_0x304ax16;if(_0x304ax1e>= _0x304ax1c){_0x304ax1e= _0x304ax1c;_0x304ax16= 200}else {_0x304ax16= 206};_0x304ax15[_0xd0a2[29]](_0x304ax16);logger[_0xd0a2[24]](_0xd0a2[22],_0x304ax17,_0x304ax16,_0xd0a2[36]);logger[_0xd0a2[26]](_0xd0a2[25],_0x304ax17,_0x304ax16,_0xd0a2[30],JSON[_0xd0a2[31]](_0x304ax18));return _0x304ax15[_0xd0a2[40]](_0xd0a2[37],_0x304ax1d+ _0xd0a2[38]+ _0x304ax1e+ _0xd0a2[39]+ _0x304ax1c)[_0xd0a2[32]](_0x304ax18)};return null}}function patchUpdates(_0x304ax20){return function(_0x304ax18){try{jsonpatch[_0xd0a2[41]](_0x304ax18,_0x304ax20,true)}catch(err){return BPromise[_0xd0a2[42]](err)};return _0x304ax18[_0xd0a2[43]]()}}function saveUpdates(_0x304ax22,_0x304ax16,_0x304ax17){return function(_0x304ax18){if(_0x304ax18){return _0x304ax18[_0xd0a2[46]](_0x304ax22)[_0xd0a2[45]](function(_0x304ax23){logger[_0xd0a2[24]](_0xd0a2[22],_0x304ax17,_0x304ax16,_0xd0a2[44]);logger[_0xd0a2[26]](_0xd0a2[25],_0x304ax17,_0x304ax16,_0xd0a2[44],JSON[_0xd0a2[31]](_0x304ax18));return _0x304ax23})};return null}}function removeEntity(_0x304ax15,_0x304ax16,_0x304ax17){return function(_0x304ax18){if(_0x304ax18){return _0x304ax18[_0xd0a2[48]]()[_0xd0a2[45]](function(){logger[_0xd0a2[24]](_0xd0a2[22],_0x304ax17,_0x304ax16,_0xd0a2[47]);logger[_0xd0a2[26]](_0xd0a2[25],_0x304ax17,_0x304ax16,_0xd0a2[47],JSON[_0xd0a2[31]](_0x304ax18));_0x304ax15[_0xd0a2[29]](204)[_0xd0a2[28]]()})}}}function handleEntityNotFound(_0x304ax15,_0x304ax16,_0x304ax17){return function(_0x304ax18){if(!_0x304ax18){logger[_0xd0a2[50]](_0xd0a2[22],_0x304ax17,404,_0xd0a2[49]);_0x304ax15[_0xd0a2[29]](404)[_0xd0a2[28]]();return null};return _0x304ax18}}function handleError(_0x304ax15,_0x304ax16,_0x304ax17){_0x304ax16= _0x304ax16|| 500;return function(_0x304ax27){logger[_0xd0a2[50]](_0xd0a2[22],_0x304ax17,_0x304ax16,JSON[_0xd0a2[31]](_0x304ax27));delete _0x304ax27[_0xd0a2[51]];_0x304ax15[_0xd0a2[29]](_0x304ax16)[_0xd0a2[52]](_0x304ax27)}}exports[_0xd0a2[53]]= function(_0x304ax28,_0x304ax15){var _0x304ax1b={raw:false,where:{id:_0x304ax28[_0xd0a2[55]][_0xd0a2[54]]}},_0x304ax29={};_0x304ax29[_0xd0a2[56]]= _[_0xd0a2[59]](db[_0xd0a2[58]][_0xd0a2[57]]);_0x304ax29[_0xd0a2[60]]= _[_0xd0a2[59]](_0x304ax28[_0xd0a2[60]]);_0x304ax29[_0xd0a2[61]]= _[_0xd0a2[62]](_0x304ax29[_0xd0a2[56]],_0x304ax29[_0xd0a2[60]]);_0x304ax1b[_0xd0a2[63]]= _[_0xd0a2[62]](_0x304ax29[_0xd0a2[56]],qs[_0xd0a2[64]](_0x304ax28[_0xd0a2[60]][_0xd0a2[64]]));_0x304ax1b[_0xd0a2[63]]= (_0x304ax1b[_0xd0a2[63]][_0xd0a2[65]])?_0x304ax1b[_0xd0a2[63]]:_0x304ax29[_0xd0a2[56]];_0x304ax1b= _[_0xd0a2[67]]({},_0x304ax1b,_0x304ax28[_0xd0a2[66]]);return db[_0xd0a2[58]][_0xd0a2[69]](_0x304ax1b)[_0xd0a2[45]](handleEntityNotFound(_0x304ax15,null,_0xd0a2[53]))[_0xd0a2[45]](respondWithResult(_0x304ax15,null,_0xd0a2[53]))[_0xd0a2[68]](handleError(_0x304ax15,null,_0xd0a2[53]))};exports[_0xd0a2[46]]= function(_0x304ax28,_0x304ax15){if(_0x304ax28[_0xd0a2[70]][_0xd0a2[54]]){delete _0x304ax28[_0xd0a2[70]][_0xd0a2[54]]};return db[_0xd0a2[58]][_0xd0a2[69]]({where:{id:_0x304ax28[_0xd0a2[55]][_0xd0a2[54]]}})[_0xd0a2[45]](handleEntityNotFound(_0x304ax15,null,_0xd0a2[46]))[_0xd0a2[45]](saveUpdates(_0x304ax28[_0xd0a2[70]],null,_0xd0a2[46]))[_0xd0a2[45]](respondWithResult(_0x304ax15,null,_0xd0a2[46]))[_0xd0a2[68]](handleError(_0x304ax15,null,_0xd0a2[46]))};exports[_0xd0a2[48]]= function(_0x304ax28,_0x304ax15){return db[_0xd0a2[58]][_0xd0a2[69]]({where:{id:_0x304ax28[_0xd0a2[55]][_0xd0a2[54]]}})[_0xd0a2[45]](handleEntityNotFound(_0x304ax15,null,_0xd0a2[48]))[_0xd0a2[45]](removeEntity(_0x304ax15,null,_0xd0a2[48]))[_0xd0a2[68]](handleError(_0x304ax15,null,_0xd0a2[48]))}
\ No newline at end of file
diff --git a/server/api/chatEnquiry/chatEnquiry.model.js b/server/api/chatEnquiry/chatEnquiry.model.js
new file mode 100644 (file)
index 0000000..b3eefff
--- /dev/null
@@ -0,0 +1 @@
+var _0x9a09=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x63\x68\x61\x74\x5F\x65\x6E\x71\x75\x69\x72\x69\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x9a09[0];var _=require(_0x9a09[1]);var util=require(_0x9a09[2]);var logger=require(_0x9a09[4])(_0x9a09[3]);var attributes=require(_0x9a09[5]);module[_0x9a09[6]]= function(_0x49ecx5,_0x49ecx6){return _0x49ecx5[_0x9a09[9]](_0x9a09[7],attributes,{tableName:_0x9a09[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/chatEnquiry/chatEnquiry.rpc.js b/server/api/chatEnquiry/chatEnquiry.rpc.js
new file mode 100644 (file)
index 0000000..e04323c
--- /dev/null
@@ -0,0 +1 @@
+var _0x9992=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x9992[0];var _=require(_0x9992[1]);var util=require(_0x9992[2]);var moment=require(_0x9992[3]);var BPromise=require(_0x9992[4]);var db=require(_0x9992[6])[_0x9992[5]];var utils=require(_0x9992[7]);var logger=require(_0x9992[9])(_0x9992[8]);var jayson=require(_0x9992[10]);var client=jayson[_0x9992[12]][_0x9992[11]]({port:9002});function respondWithRpcPromise(_0xf55dxb,_0xf55dxc,_0xf55dxd){return  new BPromise(function(_0xf55dxe,_0xf55dxf){return client[_0x9992[25]](_0xf55dxb,_0xf55dxd)[_0x9992[24]](function(_0xf55dx11){logger[_0x9992[17]](_0x9992[13],_0xf55dxc,_0x9992[16]);logger[_0x9992[20]](_0x9992[18],_0xf55dxc,_0x9992[16],JSON[_0x9992[19]](_0xf55dx11));if(_0xf55dx11[_0x9992[14]]){if(_0xf55dx11[_0x9992[14]][_0x9992[21]]=== 500){logger[_0x9992[14]](_0x9992[13],_0xf55dxc,_0xf55dx11[_0x9992[14]][_0x9992[22]]);return _0xf55dxf(_0xf55dx11[_0x9992[14]][_0x9992[22]])};logger[_0x9992[14]](_0x9992[13],_0xf55dxc,_0xf55dx11[_0x9992[14]][_0x9992[22]]);return _0xf55dxe(_0xf55dx11[_0x9992[14]][_0x9992[22]])}else {logger[_0x9992[17]](_0x9992[13],_0xf55dxc,_0x9992[16]);_0xf55dxe(_0xf55dx11[_0x9992[23]][_0x9992[22]])}})[_0x9992[15]](function(_0xf55dx10){logger[_0x9992[14]](_0x9992[13],_0xf55dxc,_0xf55dx10);_0xf55dxf(_0xf55dx10)})})}
\ No newline at end of file
diff --git a/server/api/chatEnquiry/index.js b/server/api/chatEnquiry/index.js
new file mode 100644 (file)
index 0000000..e2a8ec8
--- /dev/null
@@ -0,0 +1 @@
+var _0x1507=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1507[0];var multer=require(_0x1507[1]);var util=require(_0x1507[2]);var path=require(_0x1507[3]);var express=require(_0x1507[4]);var router=express.Router();var auth=require(_0x1507[5]);var config=require(_0x1507[6]);var controller=require(_0x1507[7]);router[_0x1507[11]](_0x1507[8],auth[_0x1507[9]](),controller[_0x1507[10]]);router[_0x1507[13]](_0x1507[8],auth[_0x1507[9]](),controller[_0x1507[12]]);router[_0x1507[15]](_0x1507[8],auth[_0x1507[9]](),controller[_0x1507[14]]);module[_0x1507[16]]= router
\ No newline at end of file
diff --git a/server/api/chatInteraction/chatInteraction.attributes.js b/server/api/chatInteraction/chatInteraction.attributes.js
new file mode 100644 (file)
index 0000000..92a938b
--- /dev/null
@@ -0,0 +1 @@
+var _0xa9e1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x67\x72\x6F\x75\x70","\x53\x54\x52\x49\x4E\x47","\x74\x6F\x6B\x65\x6E","\x4E\x45\x57","\x4F\x50\x45\x4E","\x43\x4C\x4F\x53\x45\x44","\x41\x42\x41\x4E\x44\x4F\x4E","\x55\x4E\x4D\x41\x4E\x41\x47\x45\x44","\x67\x6F\x6F\x64","\x62\x61\x64","\x54\x45\x58\x54","\x61\x67\x65\x6E\x74","\x72\x65\x71\x75\x65\x73\x74\x65\x72","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0xa9e1[0];var Sequelize=require(_0xa9e1[1]);module[_0xa9e1[2]]= {type:{type:Sequelize.ENUM(_0xa9e1[3],_0xa9e1[4],_0xa9e1[5]),allowNull:false},token:{type:Sequelize[_0xa9e1[6]],unique:_0xa9e1[7]},status:{type:Sequelize.ENUM(_0xa9e1[8],_0xa9e1[9],_0xa9e1[10],_0xa9e1[11],_0xa9e1[12]),defaultValue:_0xa9e1[8]},rating:{type:Sequelize.ENUM(_0xa9e1[13],_0xa9e1[14])},ratingMessage:{type:Sequelize[_0xa9e1[15]]},completeReason:{type:Sequelize.ENUM(_0xa9e1[16],_0xa9e1[17])},ChatVisitorId:{type:Sequelize[_0xa9e1[18]],unique:_0xa9e1[7]},waiting:{type:Sequelize[_0xa9e1[19]],defaultValue:false},tags:{type:Sequelize[_0xa9e1[15]],get:function(){var _0xb7b9x2;if(this[_0xa9e1[21]](_0xa9e1[20])){_0xb7b9x2= this[_0xa9e1[21]](_0xa9e1[20])[_0xa9e1[23]](_0xa9e1[22]);_0xb7b9x2[_0xa9e1[24]]()}else {_0xb7b9x2= []};return _0xb7b9x2},set:function(_0xb7b9x3){this[_0xa9e1[27]](_0xa9e1[20],_0xb7b9x3&& _0xb7b9x3[_0xa9e1[25]]?_0xb7b9x3[_0xa9e1[26]](_0xa9e1[22])+ _0xa9e1[22]:null)}},disposition:{type:Sequelize[_0xa9e1[6]]},openReason:{type:Sequelize[_0xa9e1[6]]},contact:{type:Sequelize[_0xa9e1[6]]},website:{type:Sequelize[_0xa9e1[6]]}}
\ No newline at end of file
diff --git a/server/api/chatInteraction/chatInteraction.controller.js b/server/api/chatInteraction/chatInteraction.controller.js
new file mode 100644 (file)
index 0000000..b99bced
--- /dev/null
@@ -0,0 +1 @@
+var _0xdecd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0xdecd[0];var jsonpatch=require(_0xdecd[1]);var rp=require(_0xdecd[2]);var moment=require(_0xdecd[3]);var BPromise=require(_0xdecd[4]);var util=require(_0xdecd[5]);var path=require(_0xdecd[6]);var sox=require(_0xdecd[7]);var ejs=require(_0xdecd[8]);var fs=require(_0xdecd[9]);var _=require(_0xdecd[10]);var squel=require(_0xdecd[11]);var crypto=require(_0xdecd[12]);var jsforce=require(_0xdecd[13]);var toCsv=require(_0xdecd[14]);var qs=require(_0xdecd[15]);var logger=require(_0xdecd[17])(_0xdecd[16]);var utils=require(_0xdecd[18]);var config=require(_0xdecd[19]);var db=require(_0xdecd[21])[_0xdecd[20]];function respondWithStatusCode(_0xb9b4x15,_0xb9b4x16,_0xb9b4x17){_0xb9b4x16= _0xb9b4x16|| 204;return function(_0xb9b4x18){if(_0xb9b4x18){logger[_0xdecd[24]](_0xdecd[22],_0xb9b4x17,_0xb9b4x16,_0xdecd[23]);logger[_0xdecd[26]](_0xdecd[25],_0xb9b4x17,_0xb9b4x16,_0xdecd[23]);return _0xb9b4x15[_0xdecd[27]](_0xb9b4x16)};return _0xb9b4x15[_0xdecd[29]](304)[_0xdecd[28]]()}}function respondWithResult(_0xb9b4x15,_0xb9b4x16,_0xb9b4x17){_0xb9b4x16= _0xb9b4x16|| 200;return function(_0xb9b4x18){if(_0xb9b4x18){logger[_0xdecd[24]](_0xdecd[22],_0xb9b4x17,_0xb9b4x16,_0xdecd[30]);logger[_0xdecd[26]](_0xdecd[25],_0xb9b4x17,_0xb9b4x16,_0xdecd[30],JSON[_0xdecd[31]](_0xb9b4x18));return _0xb9b4x15[_0xdecd[29]](_0xb9b4x16)[_0xdecd[32]](_0xb9b4x18)};return _0xb9b4x15[_0xdecd[29]](304)[_0xdecd[28]]()}}function respondWithFilteredResult(_0xb9b4x15,_0xb9b4x1b,_0xb9b4x17){return function(_0xb9b4x18){if(_0xb9b4x18){var _0xb9b4x1c=_0xb9b4x18[_0xdecd[33]],_0xb9b4x1d=_0xb9b4x1b[_0xdecd[34]],_0xb9b4x1e=_0xb9b4x1b[_0xdecd[34]]+ _0xb9b4x1b[_0xdecd[35]],_0xb9b4x16;if(_0xb9b4x1e>= _0xb9b4x1c){_0xb9b4x1e= _0xb9b4x1c;_0xb9b4x16= 200}else {_0xb9b4x16= 206};_0xb9b4x15[_0xdecd[29]](_0xb9b4x16);logger[_0xdecd[24]](_0xdecd[22],_0xb9b4x17,_0xb9b4x16,_0xdecd[36]);logger[_0xdecd[26]](_0xdecd[25],_0xb9b4x17,_0xb9b4x16,_0xdecd[30],JSON[_0xdecd[31]](_0xb9b4x18));return _0xb9b4x15[_0xdecd[40]](_0xdecd[37],_0xb9b4x1d+ _0xdecd[38]+ _0xb9b4x1e+ _0xdecd[39]+ _0xb9b4x1c)[_0xdecd[32]](_0xb9b4x18)};return null}}function patchUpdates(_0xb9b4x20){return function(_0xb9b4x18){try{jsonpatch[_0xdecd[41]](_0xb9b4x18,_0xb9b4x20,true)}catch(err){return BPromise[_0xdecd[42]](err)};return _0xb9b4x18[_0xdecd[43]]()}}function saveUpdates(_0xb9b4x22,_0xb9b4x16,_0xb9b4x17){return function(_0xb9b4x18){if(_0xb9b4x18){return _0xb9b4x18[_0xdecd[46]](_0xb9b4x22)[_0xdecd[45]](function(_0xb9b4x23){logger[_0xdecd[24]](_0xdecd[22],_0xb9b4x17,_0xb9b4x16,_0xdecd[44]);logger[_0xdecd[26]](_0xdecd[25],_0xb9b4x17,_0xb9b4x16,_0xdecd[44],JSON[_0xdecd[31]](_0xb9b4x18));return _0xb9b4x23})};return null}}function removeEntity(_0xb9b4x15,_0xb9b4x16,_0xb9b4x17){return function(_0xb9b4x18){if(_0xb9b4x18){return _0xb9b4x18[_0xdecd[48]]()[_0xdecd[45]](function(){logger[_0xdecd[24]](_0xdecd[22],_0xb9b4x17,_0xb9b4x16,_0xdecd[47]);logger[_0xdecd[26]](_0xdecd[25],_0xb9b4x17,_0xb9b4x16,_0xdecd[47],JSON[_0xdecd[31]](_0xb9b4x18));_0xb9b4x15[_0xdecd[29]](204)[_0xdecd[28]]()})}}}function handleEntityNotFound(_0xb9b4x15,_0xb9b4x16,_0xb9b4x17){return function(_0xb9b4x18){if(!_0xb9b4x18){logger[_0xdecd[50]](_0xdecd[22],_0xb9b4x17,404,_0xdecd[49]);_0xb9b4x15[_0xdecd[29]](404)[_0xdecd[28]]();return null};return _0xb9b4x18}}function handleError(_0xb9b4x15,_0xb9b4x16,_0xb9b4x17){_0xb9b4x16= _0xb9b4x16|| 500;return function(_0xb9b4x27){logger[_0xdecd[50]](_0xdecd[22],_0xb9b4x17,_0xb9b4x16,JSON[_0xdecd[31]](_0xb9b4x27));delete _0xb9b4x27[_0xdecd[51]];_0xb9b4x15[_0xdecd[29]](_0xb9b4x16)[_0xdecd[52]](_0xb9b4x27)}}exports[_0xdecd[53]]= function(_0xb9b4x28,_0xb9b4x15){var _0xb9b4x1b={},_0xb9b4x29={};_0xb9b4x29[_0xdecd[54]]= _[_0xdecd[57]](db[_0xdecd[56]][_0xdecd[55]]);_0xb9b4x29[_0xdecd[58]]= _[_0xdecd[57]](_0xb9b4x28[_0xdecd[58]]);_0xb9b4x29[_0xdecd[59]]= _[_0xdecd[60]](_0xb9b4x29[_0xdecd[54]],_0xb9b4x29[_0xdecd[58]]);_0xb9b4x1b[_0xdecd[61]]= _[_0xdecd[60]](_0xb9b4x29[_0xdecd[54]],qs[_0xdecd[62]](_0xb9b4x28[_0xdecd[58]][_0xdecd[62]]));_0xb9b4x1b[_0xdecd[61]]= (_0xb9b4x1b[_0xdecd[61]][_0xdecd[63]])?_0xb9b4x1b[_0xdecd[61]]:_0xb9b4x29[_0xdecd[54]];if(!_0xb9b4x28[_0xdecd[58]][_0xdecd[65]](_0xdecd[64])){_0xb9b4x1b[_0xdecd[35]]= qs[_0xdecd[35]](_0xb9b4x28[_0xdecd[58]][_0xdecd[35]]);_0xb9b4x1b[_0xdecd[34]]= qs[_0xdecd[34]](_0xb9b4x28[_0xdecd[58]][_0xdecd[34]])};_0xb9b4x1b[_0xdecd[66]]= qs[_0xdecd[67]](_0xb9b4x28[_0xdecd[58]][_0xdecd[67]]);_0xb9b4x1b[_0xdecd[68]]= qs[_0xdecd[59]](_[_0xdecd[69]](_0xb9b4x28[_0xdecd[58]],_0xb9b4x29[_0xdecd[59]]));if(_0xb9b4x28[_0xdecd[58]][_0xdecd[70]]){_0xb9b4x1b[_0xdecd[68]]= _[_0xdecd[73]](_0xb9b4x1b[_0xdecd[68]],{$or:_[_0xdecd[72]](_0xb9b4x1b[_0xdecd[61]],function(_0xb9b4x2a){var _0xb9b4x2b={};_0xb9b4x2b[_0xb9b4x2a]= {$like:_0xdecd[71]+ _0xb9b4x28[_0xdecd[58]][_0xdecd[70]]+ _0xdecd[71]};return _0xb9b4x2b})})};_0xb9b4x1b= _[_0xdecd[73]]({},_0xb9b4x1b,_0xb9b4x28[_0xdecd[74]]);return db[_0xdecd[56]][_0xdecd[76]](_0xb9b4x1b)[_0xdecd[45]](respondWithFilteredResult(_0xb9b4x15,_0xb9b4x1b,_0xdecd[53]))[_0xdecd[75]](handleError(_0xb9b4x15,null,_0xdecd[53]))};exports[_0xdecd[77]]= function(_0xb9b4x28,_0xb9b4x15){var _0xb9b4x1b={raw:false,where:{id:_0xb9b4x28[_0xdecd[79]][_0xdecd[78]]}},_0xb9b4x29={};_0xb9b4x29[_0xdecd[54]]= _[_0xdecd[57]](db[_0xdecd[56]][_0xdecd[55]]);_0xb9b4x29[_0xdecd[58]]= _[_0xdecd[57]](_0xb9b4x28[_0xdecd[58]]);_0xb9b4x29[_0xdecd[59]]= _[_0xdecd[60]](_0xb9b4x29[_0xdecd[54]],_0xb9b4x29[_0xdecd[58]]);_0xb9b4x1b[_0xdecd[61]]= _[_0xdecd[60]](_0xb9b4x29[_0xdecd[54]],qs[_0xdecd[62]](_0xb9b4x28[_0xdecd[58]][_0xdecd[62]]));_0xb9b4x1b[_0xdecd[61]]= (_0xb9b4x1b[_0xdecd[61]][_0xdecd[63]])?_0xb9b4x1b[_0xdecd[61]]:_0xb9b4x29[_0xdecd[54]];_0xb9b4x1b= _[_0xdecd[73]]({},_0xb9b4x1b,_0xb9b4x28[_0xdecd[74]]);return db[_0xdecd[56]][_0xdecd[80]](_0xb9b4x1b)[_0xdecd[45]](handleEntityNotFound(_0xb9b4x15,null,_0xdecd[77]))[_0xdecd[45]](respondWithResult(_0xb9b4x15,null,_0xdecd[77]))[_0xdecd[75]](handleError(_0xb9b4x15,null,_0xdecd[77]))};exports[_0xdecd[81]]= function(_0xb9b4x28,_0xb9b4x15){return db[_0xdecd[56]][_0xdecd[81]](_0xb9b4x28[_0xdecd[82]],{})[_0xdecd[45]](respondWithResult(_0xb9b4x15,201,_0xdecd[81]))[_0xdecd[75]](handleError(_0xb9b4x15,null,_0xdecd[81]))};exports[_0xdecd[46]]= function(_0xb9b4x28,_0xb9b4x15){if(_0xb9b4x28[_0xdecd[82]][_0xdecd[78]]){delete _0xb9b4x28[_0xdecd[82]][_0xdecd[78]]};return db[_0xdecd[56]][_0xdecd[80]]({where:{id:_0xb9b4x28[_0xdecd[79]][_0xdecd[78]]}})[_0xdecd[45]](handleEntityNotFound(_0xb9b4x15,null,_0xdecd[46]))[_0xdecd[45]](saveUpdates(_0xb9b4x28[_0xdecd[82]],null,_0xdecd[46]))[_0xdecd[45]](respondWithResult(_0xb9b4x15,null,_0xdecd[46]))[_0xdecd[75]](handleError(_0xb9b4x15,null,_0xdecd[46]))};exports[_0xdecd[48]]= function(_0xb9b4x28,_0xb9b4x15){return db[_0xdecd[56]][_0xdecd[80]]({where:{id:_0xb9b4x28[_0xdecd[79]][_0xdecd[78]]}})[_0xdecd[45]](handleEntityNotFound(_0xb9b4x15,null,_0xdecd[48]))[_0xdecd[45]](removeEntity(_0xb9b4x15,null,_0xdecd[48]))[_0xdecd[75]](handleError(_0xb9b4x15,null,_0xdecd[48]))};exports[_0xdecd[83]]= function(_0xb9b4x28,_0xb9b4x15){return db[_0xdecd[56]][_0xdecd[83]]()[_0xdecd[45]](respondWithResult(_0xb9b4x15,null,_0xdecd[83]))[_0xdecd[75]](handleError(_0xb9b4x15,null,_0xdecd[83]))};exports[_0xdecd[84]]= function(_0xb9b4x28,_0xb9b4x15,_0xb9b4x2c){return db[_0xdecd[87]][_0xdecd[80]]({where:{id:_0xb9b4x28[_0xdecd[79]][_0xdecd[78]]}})[_0xdecd[45]](handleEntityNotFound(_0xb9b4x15,null,_0xdecd[84]))[_0xdecd[45]](function(_0xb9b4x18){if(_0xb9b4x18){return _0xb9b4x18[_0xdecd[84]](_0xb9b4x28[_0xdecd[82]][_0xdecd[85]],_[_0xdecd[86]](_0xb9b4x28[_0xdecd[82]],[_0xdecd[85],_0xdecd[78]])|| {})};return null})[_0xdecd[45]](respondWithResult(_0xb9b4x15,null,_0xdecd[84]))[_0xdecd[75]](handleError(_0xb9b4x15,null,_0xdecd[84]))};exports[_0xdecd[88]]= function(_0xb9b4x28,_0xb9b4x18,_0xb9b4x2c){var _0xb9b4x1b={};var _0xb9b4x29={};var _0xb9b4x2d;var _0xb9b4x1c;return db[_0xdecd[56]][_0xdecd[89]]({where:{id:_0xb9b4x28[_0xdecd[79]][_0xdecd[78]]}})[_0xdecd[45]](handleEntityNotFound(_0xb9b4x18,null,_0xdecd[88]))[_0xdecd[45]](function(_0xb9b4x18){if(_0xb9b4x18){_0xb9b4x2d= _0xb9b4x18;_0xb9b4x29[_0xdecd[54]]= _[_0xdecd[57]](db[_0xdecd[87]][_0xdecd[55]]);_0xb9b4x29[_0xdecd[58]]= _[_0xdecd[57]](_0xb9b4x28[_0xdecd[58]]);_0xb9b4x29[_0xdecd[59]]= _[_0xdecd[60]](_0xb9b4x29[_0xdecd[54]],_0xb9b4x29[_0xdecd[58]]);_0xb9b4x1b[_0xdecd[61]]= _[_0xdecd[60]](_0xb9b4x29[_0xdecd[54]],qs[_0xdecd[62]](_0xb9b4x28[_0xdecd[58]][_0xdecd[62]]));_0xb9b4x1b[_0xdecd[61]]= (_0xb9b4x1b[_0xdecd[61]][_0xdecd[63]])?_0xb9b4x1b[_0xdecd[61]]:_0xb9b4x29[_0xdecd[54]];_0xb9b4x1b[_0xdecd[66]]= qs[_0xdecd[67]](_0xb9b4x28[_0xdecd[58]][_0xdecd[67]]);_0xb9b4x1b[_0xdecd[68]]= qs[_0xdecd[59]](_[_0xdecd[69]](_0xb9b4x28[_0xdecd[58]],_0xb9b4x29[_0xdecd[59]]));if(_0xb9b4x28[_0xdecd[58]][_0xdecd[70]]){_0xb9b4x1b[_0xdecd[68]]= _[_0xdecd[73]](_0xb9b4x1b[_0xdecd[68]],{$or:_[_0xdecd[72]](_0xb9b4x1b[_0xdecd[61]],function(_0xb9b4x2a){var _0xb9b4x2b={};_0xb9b4x2b[_0xb9b4x2a]= {$like:_0xdecd[71]+ _0xb9b4x28[_0xdecd[58]][_0xdecd[70]]+ _0xdecd[71]};return _0xb9b4x2b})})};_0xb9b4x1b= _[_0xdecd[73]]({},_0xb9b4x1b,_0xb9b4x28[_0xdecd[74]]);return _0xb9b4x2d[_0xdecd[88]](_0xb9b4x1b)}})[_0xdecd[45]](function(_0xb9b4x2f){if(_0xb9b4x2f){_0xb9b4x1c= _0xb9b4x2f[_0xdecd[63]];if(!_0xb9b4x28[_0xdecd[58]][_0xdecd[65]](_0xdecd[64])){_0xb9b4x1b[_0xdecd[35]]= qs[_0xdecd[35]](_0xb9b4x28[_0xdecd[58]][_0xdecd[35]]);_0xb9b4x1b[_0xdecd[34]]= qs[_0xdecd[34]](_0xb9b4x28[_0xdecd[58]][_0xdecd[34]])};return _0xb9b4x2d[_0xdecd[88]](_0xb9b4x1b)}})[_0xdecd[45]](function(_0xb9b4x2e){return _0xb9b4x2e?{count:_0xb9b4x1c,rows:_0xb9b4x2e}:null})[_0xdecd[45]](respondWithResult(_0xb9b4x18,null,_0xdecd[88]))[_0xdecd[75]](handleError(_0xb9b4x18,null,_0xdecd[88]))}
\ No newline at end of file
diff --git a/server/api/chatInteraction/chatInteraction.model.js b/server/api/chatInteraction/chatInteraction.model.js
new file mode 100644 (file)
index 0000000..73e36a7
--- /dev/null
@@ -0,0 +1 @@
+var _0x94b7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x94b7[0];var _=require(_0x94b7[1]);var util=require(_0x94b7[2]);var logger=require(_0x94b7[4])(_0x94b7[3]);var attributes=require(_0x94b7[5]);module[_0x94b7[6]]= function(_0x640fx5,_0x640fx6){return _0x640fx5[_0x94b7[9]](_0x94b7[7],attributes,{tableName:_0x94b7[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/chatInteraction/chatInteraction.rpc.js b/server/api/chatInteraction/chatInteraction.rpc.js
new file mode 100644 (file)
index 0000000..1934e5d
--- /dev/null
@@ -0,0 +1 @@
+var _0x6961=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6961[0];var _=require(_0x6961[1]);var util=require(_0x6961[2]);var moment=require(_0x6961[3]);var BPromise=require(_0x6961[4]);var db=require(_0x6961[6])[_0x6961[5]];var utils=require(_0x6961[7]);var logger=require(_0x6961[9])(_0x6961[8]);var jayson=require(_0x6961[10]);var client=jayson[_0x6961[12]][_0x6961[11]]({port:9002});function respondWithRpcPromise(_0xe829xb,_0xe829xc,_0xe829xd){return  new BPromise(function(_0xe829xe,_0xe829xf){return client[_0x6961[25]](_0xe829xb,_0xe829xd)[_0x6961[24]](function(_0xe829x11){logger[_0x6961[17]](_0x6961[13],_0xe829xc,_0x6961[16]);logger[_0x6961[20]](_0x6961[18],_0xe829xc,_0x6961[16],JSON[_0x6961[19]](_0xe829x11));if(_0xe829x11[_0x6961[14]]){if(_0xe829x11[_0x6961[14]][_0x6961[21]]=== 500){logger[_0x6961[14]](_0x6961[13],_0xe829xc,_0xe829x11[_0x6961[14]][_0x6961[22]]);return _0xe829xf(_0xe829x11[_0x6961[14]][_0x6961[22]])};logger[_0x6961[14]](_0x6961[13],_0xe829xc,_0xe829x11[_0x6961[14]][_0x6961[22]]);return _0xe829xe(_0xe829x11[_0x6961[14]][_0x6961[22]])}else {logger[_0x6961[17]](_0x6961[13],_0xe829xc,_0x6961[16]);_0xe829xe(_0xe829x11[_0x6961[23]][_0x6961[22]])}})[_0x6961[15]](function(_0xe829x10){logger[_0x6961[14]](_0x6961[13],_0xe829xc,_0xe829x10);_0xe829xf(_0xe829x10)})})}
\ No newline at end of file
diff --git a/server/api/chatInteraction/index.js b/server/api/chatInteraction/index.js
new file mode 100644 (file)
index 0000000..f9dbeaf
--- /dev/null
@@ -0,0 +1 @@
+var _0x254d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x254d[0];var multer=require(_0x254d[1]);var util=require(_0x254d[2]);var path=require(_0x254d[3]);var express=require(_0x254d[4]);var router=express.Router();var auth=require(_0x254d[5]);var config=require(_0x254d[6]);var controller=require(_0x254d[7]);router[_0x254d[11]](_0x254d[8],auth[_0x254d[9]](),controller[_0x254d[10]]);router[_0x254d[11]](_0x254d[12],auth[_0x254d[9]](),controller[_0x254d[13]]);router[_0x254d[11]](_0x254d[14],auth[_0x254d[9]](),controller[_0x254d[15]]);router[_0x254d[11]](_0x254d[16],auth[_0x254d[9]](),controller[_0x254d[17]]);router[_0x254d[19]](_0x254d[8],auth[_0x254d[9]](),controller[_0x254d[18]]);router[_0x254d[19]](_0x254d[16],auth[_0x254d[9]](),controller[_0x254d[20]]);router[_0x254d[22]](_0x254d[14],auth[_0x254d[9]](),controller[_0x254d[21]]);router[_0x254d[24]](_0x254d[14],auth[_0x254d[9]](),controller[_0x254d[23]]);module[_0x254d[25]]= router
\ No newline at end of file
diff --git a/server/api/chatMessage/chatMessage.attributes.js b/server/api/chatMessage/chatMessage.attributes.js
new file mode 100644 (file)
index 0000000..9168f9a
--- /dev/null
@@ -0,0 +1 @@
+var _0x4002=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x42\x4C\x4F\x42","\x62\x6F\x64\x79","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x65\x78\x74\x65\x72\x6E\x61\x6C","\x67\x72\x6F\x75\x70"];_0x4002[0];var Sequelize=require(_0x4002[1]);module[_0x4002[2]]= {body:{type:Sequelize[_0x4002[3]],allowNull:false,validate:{notNull:true,notEmpty:true},get:function(){return this[_0x4002[5]](_0x4002[4]).toString()}},type:{type:Sequelize.ENUM(_0x4002[6],_0x4002[7],_0x4002[8])}}
\ No newline at end of file
diff --git a/server/api/chatMessage/chatMessage.controller.js b/server/api/chatMessage/chatMessage.controller.js
new file mode 100644 (file)
index 0000000..48e3db8
--- /dev/null
@@ -0,0 +1 @@
+var _0xad5d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xad5d[0];var jsonpatch=require(_0xad5d[1]);var rp=require(_0xad5d[2]);var moment=require(_0xad5d[3]);var BPromise=require(_0xad5d[4]);var util=require(_0xad5d[5]);var path=require(_0xad5d[6]);var sox=require(_0xad5d[7]);var ejs=require(_0xad5d[8]);var fs=require(_0xad5d[9]);var _=require(_0xad5d[10]);var squel=require(_0xad5d[11]);var crypto=require(_0xad5d[12]);var jsforce=require(_0xad5d[13]);var toCsv=require(_0xad5d[14]);var qs=require(_0xad5d[15]);var logger=require(_0xad5d[17])(_0xad5d[16]);var utils=require(_0xad5d[18]);var config=require(_0xad5d[19]);var db=require(_0xad5d[21])[_0xad5d[20]];function respondWithStatusCode(_0xa6cfx15,_0xa6cfx16,_0xa6cfx17){_0xa6cfx16= _0xa6cfx16|| 204;return function(_0xa6cfx18){if(_0xa6cfx18){logger[_0xad5d[24]](_0xad5d[22],_0xa6cfx17,_0xa6cfx16,_0xad5d[23]);logger[_0xad5d[26]](_0xad5d[25],_0xa6cfx17,_0xa6cfx16,_0xad5d[23]);return _0xa6cfx15[_0xad5d[27]](_0xa6cfx16)};return _0xa6cfx15[_0xad5d[29]](304)[_0xad5d[28]]()}}function respondWithResult(_0xa6cfx15,_0xa6cfx16,_0xa6cfx17){_0xa6cfx16= _0xa6cfx16|| 200;return function(_0xa6cfx18){if(_0xa6cfx18){logger[_0xad5d[24]](_0xad5d[22],_0xa6cfx17,_0xa6cfx16,_0xad5d[30]);logger[_0xad5d[26]](_0xad5d[25],_0xa6cfx17,_0xa6cfx16,_0xad5d[30],JSON[_0xad5d[31]](_0xa6cfx18));return _0xa6cfx15[_0xad5d[29]](_0xa6cfx16)[_0xad5d[32]](_0xa6cfx18)};return _0xa6cfx15[_0xad5d[29]](304)[_0xad5d[28]]()}}function respondWithFilteredResult(_0xa6cfx15,_0xa6cfx1b,_0xa6cfx17){return function(_0xa6cfx18){if(_0xa6cfx18){var _0xa6cfx1c=_0xa6cfx18[_0xad5d[33]],_0xa6cfx1d=_0xa6cfx1b[_0xad5d[34]],_0xa6cfx1e=_0xa6cfx1b[_0xad5d[34]]+ _0xa6cfx1b[_0xad5d[35]],_0xa6cfx16;if(_0xa6cfx1e>= _0xa6cfx1c){_0xa6cfx1e= _0xa6cfx1c;_0xa6cfx16= 200}else {_0xa6cfx16= 206};_0xa6cfx15[_0xad5d[29]](_0xa6cfx16);logger[_0xad5d[24]](_0xad5d[22],_0xa6cfx17,_0xa6cfx16,_0xad5d[36]);logger[_0xad5d[26]](_0xad5d[25],_0xa6cfx17,_0xa6cfx16,_0xad5d[30],JSON[_0xad5d[31]](_0xa6cfx18));return _0xa6cfx15[_0xad5d[40]](_0xad5d[37],_0xa6cfx1d+ _0xad5d[38]+ _0xa6cfx1e+ _0xad5d[39]+ _0xa6cfx1c)[_0xad5d[32]](_0xa6cfx18)};return null}}function patchUpdates(_0xa6cfx20){return function(_0xa6cfx18){try{jsonpatch[_0xad5d[41]](_0xa6cfx18,_0xa6cfx20,true)}catch(err){return BPromise[_0xad5d[42]](err)};return _0xa6cfx18[_0xad5d[43]]()}}function saveUpdates(_0xa6cfx22,_0xa6cfx16,_0xa6cfx17){return function(_0xa6cfx18){if(_0xa6cfx18){return _0xa6cfx18[_0xad5d[46]](_0xa6cfx22)[_0xad5d[45]](function(_0xa6cfx23){logger[_0xad5d[24]](_0xad5d[22],_0xa6cfx17,_0xa6cfx16,_0xad5d[44]);logger[_0xad5d[26]](_0xad5d[25],_0xa6cfx17,_0xa6cfx16,_0xad5d[44],JSON[_0xad5d[31]](_0xa6cfx18));return _0xa6cfx23})};return null}}function removeEntity(_0xa6cfx15,_0xa6cfx16,_0xa6cfx17){return function(_0xa6cfx18){if(_0xa6cfx18){return _0xa6cfx18[_0xad5d[48]]()[_0xad5d[45]](function(){logger[_0xad5d[24]](_0xad5d[22],_0xa6cfx17,_0xa6cfx16,_0xad5d[47]);logger[_0xad5d[26]](_0xad5d[25],_0xa6cfx17,_0xa6cfx16,_0xad5d[47],JSON[_0xad5d[31]](_0xa6cfx18));_0xa6cfx15[_0xad5d[29]](204)[_0xad5d[28]]()})}}}function handleEntityNotFound(_0xa6cfx15,_0xa6cfx16,_0xa6cfx17){return function(_0xa6cfx18){if(!_0xa6cfx18){logger[_0xad5d[50]](_0xad5d[22],_0xa6cfx17,404,_0xad5d[49]);_0xa6cfx15[_0xad5d[29]](404)[_0xad5d[28]]();return null};return _0xa6cfx18}}function handleError(_0xa6cfx15,_0xa6cfx16,_0xa6cfx17){_0xa6cfx16= _0xa6cfx16|| 500;return function(_0xa6cfx27){logger[_0xad5d[50]](_0xad5d[22],_0xa6cfx17,_0xa6cfx16,JSON[_0xad5d[31]](_0xa6cfx27));delete _0xa6cfx27[_0xad5d[51]];_0xa6cfx15[_0xad5d[29]](_0xa6cfx16)[_0xad5d[52]](_0xa6cfx27)}}exports[_0xad5d[53]]= function(_0xa6cfx28,_0xa6cfx15){var _0xa6cfx1b={},_0xa6cfx29={};_0xa6cfx29[_0xad5d[54]]= _[_0xad5d[57]](db[_0xad5d[56]][_0xad5d[55]]);_0xa6cfx29[_0xad5d[58]]= _[_0xad5d[57]](_0xa6cfx28[_0xad5d[58]]);_0xa6cfx29[_0xad5d[59]]= _[_0xad5d[60]](_0xa6cfx29[_0xad5d[54]],_0xa6cfx29[_0xad5d[58]]);_0xa6cfx1b[_0xad5d[61]]= _[_0xad5d[60]](_0xa6cfx29[_0xad5d[54]],qs[_0xad5d[62]](_0xa6cfx28[_0xad5d[58]][_0xad5d[62]]));_0xa6cfx1b[_0xad5d[61]]= (_0xa6cfx1b[_0xad5d[61]][_0xad5d[63]])?_0xa6cfx1b[_0xad5d[61]]:_0xa6cfx29[_0xad5d[54]];if(!_0xa6cfx28[_0xad5d[58]][_0xad5d[65]](_0xad5d[64])){_0xa6cfx1b[_0xad5d[35]]= qs[_0xad5d[35]](_0xa6cfx28[_0xad5d[58]][_0xad5d[35]]);_0xa6cfx1b[_0xad5d[34]]= qs[_0xad5d[34]](_0xa6cfx28[_0xad5d[58]][_0xad5d[34]])};_0xa6cfx1b[_0xad5d[66]]= qs[_0xad5d[67]](_0xa6cfx28[_0xad5d[58]][_0xad5d[67]]);_0xa6cfx1b[_0xad5d[68]]= qs[_0xad5d[59]](_[_0xad5d[69]](_0xa6cfx28[_0xad5d[58]],_0xa6cfx29[_0xad5d[59]]));if(_0xa6cfx28[_0xad5d[58]][_0xad5d[70]]){_0xa6cfx1b[_0xad5d[68]]= _[_0xad5d[73]](_0xa6cfx1b[_0xad5d[68]],{$or:_[_0xad5d[72]](_0xa6cfx1b[_0xad5d[61]],function(_0xa6cfx2a){var _0xa6cfx2b={};_0xa6cfx2b[_0xa6cfx2a]= {$like:_0xad5d[71]+ _0xa6cfx28[_0xad5d[58]][_0xad5d[70]]+ _0xad5d[71]};return _0xa6cfx2b})})};_0xa6cfx1b= _[_0xad5d[73]]({},_0xa6cfx1b,_0xa6cfx28[_0xad5d[74]]);return db[_0xad5d[56]][_0xad5d[76]](_0xa6cfx1b)[_0xad5d[45]](respondWithFilteredResult(_0xa6cfx15,_0xa6cfx1b,_0xad5d[53]))[_0xad5d[75]](handleError(_0xa6cfx15,null,_0xad5d[53]))};exports[_0xad5d[77]]= function(_0xa6cfx28,_0xa6cfx15){var _0xa6cfx1b={raw:true,where:{id:_0xa6cfx28[_0xad5d[79]][_0xad5d[78]]}},_0xa6cfx29={};_0xa6cfx29[_0xad5d[54]]= _[_0xad5d[57]](db[_0xad5d[56]][_0xad5d[55]]);_0xa6cfx29[_0xad5d[58]]= _[_0xad5d[57]](_0xa6cfx28[_0xad5d[58]]);_0xa6cfx29[_0xad5d[59]]= _[_0xad5d[60]](_0xa6cfx29[_0xad5d[54]],_0xa6cfx29[_0xad5d[58]]);_0xa6cfx1b[_0xad5d[61]]= _[_0xad5d[60]](_0xa6cfx29[_0xad5d[54]],qs[_0xad5d[62]](_0xa6cfx28[_0xad5d[58]][_0xad5d[62]]));_0xa6cfx1b[_0xad5d[61]]= (_0xa6cfx1b[_0xad5d[61]][_0xad5d[63]])?_0xa6cfx1b[_0xad5d[61]]:_0xa6cfx29[_0xad5d[54]];_0xa6cfx1b= _[_0xad5d[73]]({},_0xa6cfx1b,_0xa6cfx28[_0xad5d[74]]);return db[_0xad5d[56]][_0xad5d[80]](_0xa6cfx1b)[_0xad5d[45]](handleEntityNotFound(_0xa6cfx15,null,_0xad5d[77]))[_0xad5d[45]](respondWithResult(_0xa6cfx15,null,_0xad5d[77]))[_0xad5d[75]](handleError(_0xa6cfx15,null,_0xad5d[77]))};exports[_0xad5d[81]]= function(_0xa6cfx28,_0xa6cfx15){return db[_0xad5d[56]][_0xad5d[81]](_0xa6cfx28[_0xad5d[82]],{})[_0xad5d[45]](respondWithResult(_0xa6cfx15,201,_0xad5d[81]))[_0xad5d[75]](handleError(_0xa6cfx15,null,_0xad5d[81]))};exports[_0xad5d[46]]= function(_0xa6cfx28,_0xa6cfx15){if(_0xa6cfx28[_0xad5d[82]][_0xad5d[78]]){delete _0xa6cfx28[_0xad5d[82]][_0xad5d[78]]};return db[_0xad5d[56]][_0xad5d[80]]({where:{id:_0xa6cfx28[_0xad5d[79]][_0xad5d[78]]}})[_0xad5d[45]](handleEntityNotFound(_0xa6cfx15,null,_0xad5d[46]))[_0xad5d[45]](saveUpdates(_0xa6cfx28[_0xad5d[82]],null,_0xad5d[46]))[_0xad5d[45]](respondWithResult(_0xa6cfx15,null,_0xad5d[46]))[_0xad5d[75]](handleError(_0xa6cfx15,null,_0xad5d[46]))};exports[_0xad5d[48]]= function(_0xa6cfx28,_0xa6cfx15){return db[_0xad5d[56]][_0xad5d[80]]({where:{id:_0xa6cfx28[_0xad5d[79]][_0xad5d[78]]}})[_0xad5d[45]](handleEntityNotFound(_0xa6cfx15,null,_0xad5d[48]))[_0xad5d[45]](removeEntity(_0xa6cfx15,null,_0xad5d[48]))[_0xad5d[75]](handleError(_0xa6cfx15,null,_0xad5d[48]))};exports[_0xad5d[83]]= function(_0xa6cfx28,_0xa6cfx15){return db[_0xad5d[56]][_0xad5d[83]]()[_0xad5d[45]](respondWithResult(_0xa6cfx15,null,_0xad5d[83]))[_0xad5d[75]](handleError(_0xa6cfx15,null,_0xad5d[83]))}
\ No newline at end of file
diff --git a/server/api/chatMessage/chatMessage.model.js b/server/api/chatMessage/chatMessage.model.js
new file mode 100644 (file)
index 0000000..ef12f70
--- /dev/null
@@ -0,0 +1 @@
+var _0x5943=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x63\x68\x61\x74\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x5943[0];var _=require(_0x5943[1]);var util=require(_0x5943[2]);var logger=require(_0x5943[4])(_0x5943[3]);var attributes=require(_0x5943[5]);module[_0x5943[6]]= function(_0x3d90x5,_0x3d90x6){return _0x3d90x5[_0x5943[9]](_0x5943[7],attributes,{tableName:_0x5943[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/chatMessage/chatMessage.rpc.js b/server/api/chatMessage/chatMessage.rpc.js
new file mode 100644 (file)
index 0000000..be44602
--- /dev/null
@@ -0,0 +1 @@
+var _0xaeee=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xaeee[0];var _=require(_0xaeee[1]);var util=require(_0xaeee[2]);var moment=require(_0xaeee[3]);var BPromise=require(_0xaeee[4]);var db=require(_0xaeee[6])[_0xaeee[5]];var utils=require(_0xaeee[7]);var logger=require(_0xaeee[9])(_0xaeee[8]);var jayson=require(_0xaeee[10]);var client=jayson[_0xaeee[12]][_0xaeee[11]]({port:9002});function respondWithRpcPromise(_0x5a4bxb,_0x5a4bxc,_0x5a4bxd){return  new BPromise(function(_0x5a4bxe,_0x5a4bxf){return client[_0xaeee[25]](_0x5a4bxb,_0x5a4bxd)[_0xaeee[24]](function(_0x5a4bx11){logger[_0xaeee[17]](_0xaeee[13],_0x5a4bxc,_0xaeee[16]);logger[_0xaeee[20]](_0xaeee[18],_0x5a4bxc,_0xaeee[16],JSON[_0xaeee[19]](_0x5a4bx11));if(_0x5a4bx11[_0xaeee[14]]){if(_0x5a4bx11[_0xaeee[14]][_0xaeee[21]]=== 500){logger[_0xaeee[14]](_0xaeee[13],_0x5a4bxc,_0x5a4bx11[_0xaeee[14]][_0xaeee[22]]);return _0x5a4bxf(_0x5a4bx11[_0xaeee[14]][_0xaeee[22]])};logger[_0xaeee[14]](_0xaeee[13],_0x5a4bxc,_0x5a4bx11[_0xaeee[14]][_0xaeee[22]]);return _0x5a4bxe(_0x5a4bx11[_0xaeee[14]][_0xaeee[22]])}else {logger[_0xaeee[17]](_0xaeee[13],_0x5a4bxc,_0xaeee[16]);_0x5a4bxe(_0x5a4bx11[_0xaeee[23]][_0xaeee[22]])}})[_0xaeee[15]](function(_0x5a4bx10){logger[_0xaeee[14]](_0xaeee[13],_0x5a4bxc,_0x5a4bx10);_0x5a4bxf(_0x5a4bx10)})})}
\ No newline at end of file
diff --git a/server/api/chatMessage/index.js b/server/api/chatMessage/index.js
new file mode 100644 (file)
index 0000000..d0ddfed
--- /dev/null
@@ -0,0 +1 @@
+var _0x4d53=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4d53[0];var multer=require(_0x4d53[1]);var util=require(_0x4d53[2]);var path=require(_0x4d53[3]);var express=require(_0x4d53[4]);var router=express.Router();var auth=require(_0x4d53[5]);var config=require(_0x4d53[6]);var controller=require(_0x4d53[7]);router[_0x4d53[11]](_0x4d53[8],auth[_0x4d53[9]](),controller[_0x4d53[10]]);router[_0x4d53[11]](_0x4d53[12],auth[_0x4d53[9]](),controller[_0x4d53[13]]);router[_0x4d53[11]](_0x4d53[14],auth[_0x4d53[9]](),controller[_0x4d53[15]]);router[_0x4d53[17]](_0x4d53[8],auth[_0x4d53[9]](),controller[_0x4d53[16]]);router[_0x4d53[19]](_0x4d53[14],auth[_0x4d53[9]](),controller[_0x4d53[18]]);router[_0x4d53[21]](_0x4d53[14],auth[_0x4d53[9]](),controller[_0x4d53[20]]);module[_0x4d53[22]]= router
\ No newline at end of file
diff --git a/server/api/chatProactiveAction/chatProactiveAction.attributes.js b/server/api/chatProactiveAction/chatProactiveAction.attributes.js
new file mode 100644 (file)
index 0000000..bdaf16b
--- /dev/null
@@ -0,0 +1 @@
+var _0xb3c5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6D\x6F\x75\x73\x65\x4F\x76\x65\x72","\x74\x69\x6D\x65\x6F\x75\x74","\x49\x4E\x54\x45\x47\x45\x52"];_0xb3c5[0];var Sequelize=require(_0xb3c5[1]);module[_0xb3c5[2]]= {name:{type:Sequelize[_0xb3c5[3]],allowNull:false},type:{type:Sequelize.ENUM(_0xb3c5[4],_0xb3c5[5]),defaultValue:_0xb3c5[4]},selector:{type:Sequelize[_0xb3c5[3]]},timeout:{type:Sequelize[_0xb3c5[6]]}}
\ No newline at end of file
diff --git a/server/api/chatProactiveAction/chatProactiveAction.controller.js b/server/api/chatProactiveAction/chatProactiveAction.controller.js
new file mode 100644 (file)
index 0000000..eebe3da
--- /dev/null
@@ -0,0 +1 @@
+var _0x3bfc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x3bfc[0];var jsonpatch=require(_0x3bfc[1]);var rp=require(_0x3bfc[2]);var moment=require(_0x3bfc[3]);var BPromise=require(_0x3bfc[4]);var util=require(_0x3bfc[5]);var path=require(_0x3bfc[6]);var sox=require(_0x3bfc[7]);var ejs=require(_0x3bfc[8]);var fs=require(_0x3bfc[9]);var _=require(_0x3bfc[10]);var squel=require(_0x3bfc[11]);var crypto=require(_0x3bfc[12]);var jsforce=require(_0x3bfc[13]);var toCsv=require(_0x3bfc[14]);var qs=require(_0x3bfc[15]);var logger=require(_0x3bfc[17])(_0x3bfc[16]);var utils=require(_0x3bfc[18]);var config=require(_0x3bfc[19]);var db=require(_0x3bfc[21])[_0x3bfc[20]];function respondWithStatusCode(_0x2be1x15,_0x2be1x16,_0x2be1x17){_0x2be1x16= _0x2be1x16|| 204;return function(_0x2be1x18){if(_0x2be1x18){logger[_0x3bfc[24]](_0x3bfc[22],_0x2be1x17,_0x2be1x16,_0x3bfc[23]);logger[_0x3bfc[26]](_0x3bfc[25],_0x2be1x17,_0x2be1x16,_0x3bfc[23]);return _0x2be1x15[_0x3bfc[27]](_0x2be1x16)};return _0x2be1x15[_0x3bfc[29]](304)[_0x3bfc[28]]()}}function respondWithResult(_0x2be1x15,_0x2be1x16,_0x2be1x17){_0x2be1x16= _0x2be1x16|| 200;return function(_0x2be1x18){if(_0x2be1x18){logger[_0x3bfc[24]](_0x3bfc[22],_0x2be1x17,_0x2be1x16,_0x3bfc[30]);logger[_0x3bfc[26]](_0x3bfc[25],_0x2be1x17,_0x2be1x16,_0x3bfc[30],JSON[_0x3bfc[31]](_0x2be1x18));return _0x2be1x15[_0x3bfc[29]](_0x2be1x16)[_0x3bfc[32]](_0x2be1x18)};return _0x2be1x15[_0x3bfc[29]](304)[_0x3bfc[28]]()}}function respondWithFilteredResult(_0x2be1x15,_0x2be1x1b,_0x2be1x17){return function(_0x2be1x18){if(_0x2be1x18){var _0x2be1x1c=_0x2be1x18[_0x3bfc[33]],_0x2be1x1d=_0x2be1x1b[_0x3bfc[34]],_0x2be1x1e=_0x2be1x1b[_0x3bfc[34]]+ _0x2be1x1b[_0x3bfc[35]],_0x2be1x16;if(_0x2be1x1e>= _0x2be1x1c){_0x2be1x1e= _0x2be1x1c;_0x2be1x16= 200}else {_0x2be1x16= 206};_0x2be1x15[_0x3bfc[29]](_0x2be1x16);logger[_0x3bfc[24]](_0x3bfc[22],_0x2be1x17,_0x2be1x16,_0x3bfc[36]);logger[_0x3bfc[26]](_0x3bfc[25],_0x2be1x17,_0x2be1x16,_0x3bfc[30],JSON[_0x3bfc[31]](_0x2be1x18));return _0x2be1x15[_0x3bfc[40]](_0x3bfc[37],_0x2be1x1d+ _0x3bfc[38]+ _0x2be1x1e+ _0x3bfc[39]+ _0x2be1x1c)[_0x3bfc[32]](_0x2be1x18)};return null}}function patchUpdates(_0x2be1x20){return function(_0x2be1x18){try{jsonpatch[_0x3bfc[41]](_0x2be1x18,_0x2be1x20,true)}catch(err){return BPromise[_0x3bfc[42]](err)};return _0x2be1x18[_0x3bfc[43]]()}}function saveUpdates(_0x2be1x22,_0x2be1x16,_0x2be1x17){return function(_0x2be1x18){if(_0x2be1x18){return _0x2be1x18[_0x3bfc[46]](_0x2be1x22)[_0x3bfc[45]](function(_0x2be1x23){logger[_0x3bfc[24]](_0x3bfc[22],_0x2be1x17,_0x2be1x16,_0x3bfc[44]);logger[_0x3bfc[26]](_0x3bfc[25],_0x2be1x17,_0x2be1x16,_0x3bfc[44],JSON[_0x3bfc[31]](_0x2be1x18));return _0x2be1x23})};return null}}function removeEntity(_0x2be1x15,_0x2be1x16,_0x2be1x17){return function(_0x2be1x18){if(_0x2be1x18){return _0x2be1x18[_0x3bfc[48]]()[_0x3bfc[45]](function(){logger[_0x3bfc[24]](_0x3bfc[22],_0x2be1x17,_0x2be1x16,_0x3bfc[47]);logger[_0x3bfc[26]](_0x3bfc[25],_0x2be1x17,_0x2be1x16,_0x3bfc[47],JSON[_0x3bfc[31]](_0x2be1x18));_0x2be1x15[_0x3bfc[29]](204)[_0x3bfc[28]]()})}}}function handleEntityNotFound(_0x2be1x15,_0x2be1x16,_0x2be1x17){return function(_0x2be1x18){if(!_0x2be1x18){logger[_0x3bfc[50]](_0x3bfc[22],_0x2be1x17,404,_0x3bfc[49]);_0x2be1x15[_0x3bfc[29]](404)[_0x3bfc[28]]();return null};return _0x2be1x18}}function handleError(_0x2be1x15,_0x2be1x16,_0x2be1x17){_0x2be1x16= _0x2be1x16|| 500;return function(_0x2be1x27){logger[_0x3bfc[50]](_0x3bfc[22],_0x2be1x17,_0x2be1x16,JSON[_0x3bfc[31]](_0x2be1x27));delete _0x2be1x27[_0x3bfc[51]];_0x2be1x15[_0x3bfc[29]](_0x2be1x16)[_0x3bfc[52]](_0x2be1x27)}}exports[_0x3bfc[53]]= function(_0x2be1x28,_0x2be1x15){var _0x2be1x1b={raw:true,where:{id:_0x2be1x28[_0x3bfc[55]][_0x3bfc[54]]}},_0x2be1x29={};_0x2be1x29[_0x3bfc[56]]= _[_0x3bfc[59]](db[_0x3bfc[58]][_0x3bfc[57]]);_0x2be1x29[_0x3bfc[60]]= _[_0x3bfc[59]](_0x2be1x28[_0x3bfc[60]]);_0x2be1x29[_0x3bfc[61]]= _[_0x3bfc[62]](_0x2be1x29[_0x3bfc[56]],_0x2be1x29[_0x3bfc[60]]);_0x2be1x1b[_0x3bfc[63]]= _[_0x3bfc[62]](_0x2be1x29[_0x3bfc[56]],qs[_0x3bfc[64]](_0x2be1x28[_0x3bfc[60]][_0x3bfc[64]]));_0x2be1x1b[_0x3bfc[63]]= (_0x2be1x1b[_0x3bfc[63]][_0x3bfc[65]])?_0x2be1x1b[_0x3bfc[63]]:_0x2be1x29[_0x3bfc[56]];_0x2be1x1b= _[_0x3bfc[67]]({},_0x2be1x1b,_0x2be1x28[_0x3bfc[66]]);return db[_0x3bfc[58]][_0x3bfc[69]](_0x2be1x1b)[_0x3bfc[45]](handleEntityNotFound(_0x2be1x15,null,_0x3bfc[53]))[_0x3bfc[45]](respondWithResult(_0x2be1x15,null,_0x3bfc[53]))[_0x3bfc[68]](handleError(_0x2be1x15,null,_0x3bfc[53]))};exports[_0x3bfc[46]]= function(_0x2be1x28,_0x2be1x15){if(_0x2be1x28[_0x3bfc[70]][_0x3bfc[54]]){delete _0x2be1x28[_0x3bfc[70]][_0x3bfc[54]]};return db[_0x3bfc[58]][_0x3bfc[69]]({where:{id:_0x2be1x28[_0x3bfc[55]][_0x3bfc[54]]}})[_0x3bfc[45]](handleEntityNotFound(_0x2be1x15,null,_0x3bfc[46]))[_0x3bfc[45]](saveUpdates(_0x2be1x28[_0x3bfc[70]],null,_0x3bfc[46]))[_0x3bfc[45]](respondWithResult(_0x2be1x15,null,_0x3bfc[46]))[_0x3bfc[68]](handleError(_0x2be1x15,null,_0x3bfc[46]))};exports[_0x3bfc[48]]= function(_0x2be1x28,_0x2be1x15){return db[_0x3bfc[58]][_0x3bfc[69]]({where:{id:_0x2be1x28[_0x3bfc[55]][_0x3bfc[54]]}})[_0x3bfc[45]](handleEntityNotFound(_0x2be1x15,null,_0x3bfc[48]))[_0x3bfc[45]](removeEntity(_0x2be1x15,null,_0x3bfc[48]))[_0x3bfc[68]](handleError(_0x2be1x15,null,_0x3bfc[48]))}
\ No newline at end of file
diff --git a/server/api/chatProactiveAction/chatProactiveAction.model.js b/server/api/chatProactiveAction/chatProactiveAction.model.js
new file mode 100644 (file)
index 0000000..1e70f1c
--- /dev/null
@@ -0,0 +1 @@
+var _0x4b72=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x63\x68\x61\x74\x5F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x4b72[0];var _=require(_0x4b72[1]);var util=require(_0x4b72[2]);var logger=require(_0x4b72[4])(_0x4b72[3]);var attributes=require(_0x4b72[5]);module[_0x4b72[6]]= function(_0x41e3x5,_0x41e3x6){return _0x41e3x5[_0x4b72[9]](_0x4b72[7],attributes,{tableName:_0x4b72[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/chatProactiveAction/chatProactiveAction.rpc.js b/server/api/chatProactiveAction/chatProactiveAction.rpc.js
new file mode 100644 (file)
index 0000000..5f56266
--- /dev/null
@@ -0,0 +1 @@
+var _0x4a42=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x4a42[0];var _=require(_0x4a42[1]);var util=require(_0x4a42[2]);var moment=require(_0x4a42[3]);var BPromise=require(_0x4a42[4]);var db=require(_0x4a42[6])[_0x4a42[5]];var utils=require(_0x4a42[7]);var logger=require(_0x4a42[9])(_0x4a42[8]);var jayson=require(_0x4a42[10]);var client=jayson[_0x4a42[12]][_0x4a42[11]]({port:9002});function respondWithRpcPromise(_0x340axb,_0x340axc,_0x340axd){return  new BPromise(function(_0x340axe,_0x340axf){return client[_0x4a42[25]](_0x340axb,_0x340axd)[_0x4a42[24]](function(_0x340ax11){logger[_0x4a42[17]](_0x4a42[13],_0x340axc,_0x4a42[16]);logger[_0x4a42[20]](_0x4a42[18],_0x340axc,_0x4a42[16],JSON[_0x4a42[19]](_0x340ax11));if(_0x340ax11[_0x4a42[14]]){if(_0x340ax11[_0x4a42[14]][_0x4a42[21]]=== 500){logger[_0x4a42[14]](_0x4a42[13],_0x340axc,_0x340ax11[_0x4a42[14]][_0x4a42[22]]);return _0x340axf(_0x340ax11[_0x4a42[14]][_0x4a42[22]])};logger[_0x4a42[14]](_0x4a42[13],_0x340axc,_0x340ax11[_0x4a42[14]][_0x4a42[22]]);return _0x340axe(_0x340ax11[_0x4a42[14]][_0x4a42[22]])}else {logger[_0x4a42[17]](_0x4a42[13],_0x340axc,_0x4a42[16]);_0x340axe(_0x340ax11[_0x4a42[23]][_0x4a42[22]])}})[_0x4a42[15]](function(_0x340ax10){logger[_0x4a42[14]](_0x4a42[13],_0x340axc,_0x340ax10);_0x340axf(_0x340ax10)})})}
\ No newline at end of file
diff --git a/server/api/chatProactiveAction/index.js b/server/api/chatProactiveAction/index.js
new file mode 100644 (file)
index 0000000..c09b1f1
--- /dev/null
@@ -0,0 +1 @@
+var _0xadd8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xadd8[0];var multer=require(_0xadd8[1]);var util=require(_0xadd8[2]);var path=require(_0xadd8[3]);var express=require(_0xadd8[4]);var router=express.Router();var auth=require(_0xadd8[5]);var config=require(_0xadd8[6]);var controller=require(_0xadd8[7]);router[_0xadd8[11]](_0xadd8[8],auth[_0xadd8[9]](),controller[_0xadd8[10]]);router[_0xadd8[13]](_0xadd8[8],auth[_0xadd8[9]](),controller[_0xadd8[12]]);router[_0xadd8[15]](_0xadd8[8],auth[_0xadd8[9]](),controller[_0xadd8[14]]);module[_0xadd8[16]]= router
\ No newline at end of file
diff --git a/server/api/chatQueue/chatQueue.attributes.js b/server/api/chatQueue/chatQueue.attributes.js
new file mode 100644 (file)
index 0000000..91fb870
--- /dev/null
@@ -0,0 +1 @@
+var _0x403d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0x403d[0];var Sequelize=require(_0x403d[1]);module[_0x403d[2]]= {name:{type:Sequelize[_0x403d[3]],unique:_0x403d[4],allowNull:false,validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0x403d[3]]},timeout:{type:Sequelize[_0x403d[5]],validate:{min:1}},strategy:{type:Sequelize.ENUM(_0x403d[6],_0x403d[7],_0x403d[8])},lastAgent:{type:Sequelize[_0x403d[5]],defaultValue:0}}
\ No newline at end of file
diff --git a/server/api/chatQueue/chatQueue.controller.js b/server/api/chatQueue/chatQueue.controller.js
new file mode 100644 (file)
index 0000000..66868e3
--- /dev/null
@@ -0,0 +1 @@
+var _0xd7e0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0xd7e0[0];var jsonpatch=require(_0xd7e0[1]);var rp=require(_0xd7e0[2]);var moment=require(_0xd7e0[3]);var BPromise=require(_0xd7e0[4]);var util=require(_0xd7e0[5]);var path=require(_0xd7e0[6]);var sox=require(_0xd7e0[7]);var ejs=require(_0xd7e0[8]);var fs=require(_0xd7e0[9]);var _=require(_0xd7e0[10]);var squel=require(_0xd7e0[11]);var crypto=require(_0xd7e0[12]);var jsforce=require(_0xd7e0[13]);var toCsv=require(_0xd7e0[14]);var qs=require(_0xd7e0[15]);var logger=require(_0xd7e0[17])(_0xd7e0[16]);var utils=require(_0xd7e0[18]);var config=require(_0xd7e0[19]);var db=require(_0xd7e0[21])[_0xd7e0[20]];function respondWithStatusCode(_0x252bx15,_0x252bx16,_0x252bx17){_0x252bx16= _0x252bx16|| 204;return function(_0x252bx18){if(_0x252bx18){logger[_0xd7e0[24]](_0xd7e0[22],_0x252bx17,_0x252bx16,_0xd7e0[23]);logger[_0xd7e0[26]](_0xd7e0[25],_0x252bx17,_0x252bx16,_0xd7e0[23]);return _0x252bx15[_0xd7e0[27]](_0x252bx16)};return _0x252bx15[_0xd7e0[29]](304)[_0xd7e0[28]]()}}function respondWithResult(_0x252bx15,_0x252bx16,_0x252bx17){_0x252bx16= _0x252bx16|| 200;return function(_0x252bx18){if(_0x252bx18){logger[_0xd7e0[24]](_0xd7e0[22],_0x252bx17,_0x252bx16,_0xd7e0[30]);logger[_0xd7e0[26]](_0xd7e0[25],_0x252bx17,_0x252bx16,_0xd7e0[30],JSON[_0xd7e0[31]](_0x252bx18));return _0x252bx15[_0xd7e0[29]](_0x252bx16)[_0xd7e0[32]](_0x252bx18)};return _0x252bx15[_0xd7e0[29]](304)[_0xd7e0[28]]()}}function respondWithFilteredResult(_0x252bx15,_0x252bx1b,_0x252bx17){return function(_0x252bx18){if(_0x252bx18){var _0x252bx1c=_0x252bx18[_0xd7e0[33]],_0x252bx1d=_0x252bx1b[_0xd7e0[34]],_0x252bx1e=_0x252bx1b[_0xd7e0[34]]+ _0x252bx1b[_0xd7e0[35]],_0x252bx16;if(_0x252bx1e>= _0x252bx1c){_0x252bx1e= _0x252bx1c;_0x252bx16= 200}else {_0x252bx16= 206};_0x252bx15[_0xd7e0[29]](_0x252bx16);logger[_0xd7e0[24]](_0xd7e0[22],_0x252bx17,_0x252bx16,_0xd7e0[36]);logger[_0xd7e0[26]](_0xd7e0[25],_0x252bx17,_0x252bx16,_0xd7e0[30],JSON[_0xd7e0[31]](_0x252bx18));return _0x252bx15[_0xd7e0[40]](_0xd7e0[37],_0x252bx1d+ _0xd7e0[38]+ _0x252bx1e+ _0xd7e0[39]+ _0x252bx1c)[_0xd7e0[32]](_0x252bx18)};return null}}function patchUpdates(_0x252bx20){return function(_0x252bx18){try{jsonpatch[_0xd7e0[41]](_0x252bx18,_0x252bx20,true)}catch(err){return BPromise[_0xd7e0[42]](err)};return _0x252bx18[_0xd7e0[43]]()}}function saveUpdates(_0x252bx22,_0x252bx16,_0x252bx17){return function(_0x252bx18){if(_0x252bx18){return _0x252bx18[_0xd7e0[46]](_0x252bx22)[_0xd7e0[45]](function(_0x252bx23){logger[_0xd7e0[24]](_0xd7e0[22],_0x252bx17,_0x252bx16,_0xd7e0[44]);logger[_0xd7e0[26]](_0xd7e0[25],_0x252bx17,_0x252bx16,_0xd7e0[44],JSON[_0xd7e0[31]](_0x252bx18));return _0x252bx23})};return null}}function removeEntity(_0x252bx15,_0x252bx16,_0x252bx17){return function(_0x252bx18){if(_0x252bx18){return _0x252bx18[_0xd7e0[48]]()[_0xd7e0[45]](function(){logger[_0xd7e0[24]](_0xd7e0[22],_0x252bx17,_0x252bx16,_0xd7e0[47]);logger[_0xd7e0[26]](_0xd7e0[25],_0x252bx17,_0x252bx16,_0xd7e0[47],JSON[_0xd7e0[31]](_0x252bx18));_0x252bx15[_0xd7e0[29]](204)[_0xd7e0[28]]()})}}}function handleEntityNotFound(_0x252bx15,_0x252bx16,_0x252bx17){return function(_0x252bx18){if(!_0x252bx18){logger[_0xd7e0[50]](_0xd7e0[22],_0x252bx17,404,_0xd7e0[49]);_0x252bx15[_0xd7e0[29]](404)[_0xd7e0[28]]();return null};return _0x252bx18}}function handleError(_0x252bx15,_0x252bx16,_0x252bx17){_0x252bx16= _0x252bx16|| 500;return function(_0x252bx27){logger[_0xd7e0[50]](_0xd7e0[22],_0x252bx17,_0x252bx16,JSON[_0xd7e0[31]](_0x252bx27));delete _0x252bx27[_0xd7e0[51]];_0x252bx15[_0xd7e0[29]](_0x252bx16)[_0xd7e0[52]](_0x252bx27)}}exports[_0xd7e0[53]]= function(_0x252bx28,_0x252bx15){var _0x252bx1b={},_0x252bx29={};_0x252bx29[_0xd7e0[54]]= _[_0xd7e0[57]](db[_0xd7e0[56]][_0xd7e0[55]]);_0x252bx29[_0xd7e0[58]]= _[_0xd7e0[57]](_0x252bx28[_0xd7e0[58]]);_0x252bx29[_0xd7e0[59]]= _[_0xd7e0[60]](_0x252bx29[_0xd7e0[54]],_0x252bx29[_0xd7e0[58]]);_0x252bx1b[_0xd7e0[61]]= _[_0xd7e0[60]](_0x252bx29[_0xd7e0[54]],qs[_0xd7e0[62]](_0x252bx28[_0xd7e0[58]][_0xd7e0[62]]));_0x252bx1b[_0xd7e0[61]]= (_0x252bx1b[_0xd7e0[61]][_0xd7e0[63]])?_0x252bx1b[_0xd7e0[61]]:_0x252bx29[_0xd7e0[54]];if(!_0x252bx28[_0xd7e0[58]][_0xd7e0[65]](_0xd7e0[64])){_0x252bx1b[_0xd7e0[35]]= qs[_0xd7e0[35]](_0x252bx28[_0xd7e0[58]][_0xd7e0[35]]);_0x252bx1b[_0xd7e0[34]]= qs[_0xd7e0[34]](_0x252bx28[_0xd7e0[58]][_0xd7e0[34]])};_0x252bx1b[_0xd7e0[66]]= qs[_0xd7e0[67]](_0x252bx28[_0xd7e0[58]][_0xd7e0[67]]);_0x252bx1b[_0xd7e0[68]]= qs[_0xd7e0[59]](_[_0xd7e0[69]](_0x252bx28[_0xd7e0[58]],_0x252bx29[_0xd7e0[59]]));if(_0x252bx28[_0xd7e0[58]][_0xd7e0[70]]){_0x252bx1b[_0xd7e0[68]]= _[_0xd7e0[73]](_0x252bx1b[_0xd7e0[68]],{$or:_[_0xd7e0[72]](_0x252bx1b[_0xd7e0[61]],function(_0x252bx2a){var _0x252bx2b={};_0x252bx2b[_0x252bx2a]= {$like:_0xd7e0[71]+ _0x252bx28[_0xd7e0[58]][_0xd7e0[70]]+ _0xd7e0[71]};return _0x252bx2b})})};_0x252bx1b= _[_0xd7e0[73]]({},_0x252bx1b,_0x252bx28[_0xd7e0[74]]);return db[_0xd7e0[56]][_0xd7e0[76]](_0x252bx1b)[_0xd7e0[45]](respondWithFilteredResult(_0x252bx15,_0x252bx1b,_0xd7e0[53]))[_0xd7e0[75]](handleError(_0x252bx15,null,_0xd7e0[53]))};exports[_0xd7e0[77]]= function(_0x252bx28,_0x252bx15){var _0x252bx1b={raw:true,where:{id:_0x252bx28[_0xd7e0[79]][_0xd7e0[78]]}},_0x252bx29={};_0x252bx29[_0xd7e0[54]]= _[_0xd7e0[57]](db[_0xd7e0[56]][_0xd7e0[55]]);_0x252bx29[_0xd7e0[58]]= _[_0xd7e0[57]](_0x252bx28[_0xd7e0[58]]);_0x252bx29[_0xd7e0[59]]= _[_0xd7e0[60]](_0x252bx29[_0xd7e0[54]],_0x252bx29[_0xd7e0[58]]);_0x252bx1b[_0xd7e0[61]]= _[_0xd7e0[60]](_0x252bx29[_0xd7e0[54]],qs[_0xd7e0[62]](_0x252bx28[_0xd7e0[58]][_0xd7e0[62]]));_0x252bx1b[_0xd7e0[61]]= (_0x252bx1b[_0xd7e0[61]][_0xd7e0[63]])?_0x252bx1b[_0xd7e0[61]]:_0x252bx29[_0xd7e0[54]];_0x252bx1b= _[_0xd7e0[73]]({},_0x252bx1b,_0x252bx28[_0xd7e0[74]]);return db[_0xd7e0[56]][_0xd7e0[80]](_0x252bx1b)[_0xd7e0[45]](handleEntityNotFound(_0x252bx15,null,_0xd7e0[77]))[_0xd7e0[45]](respondWithResult(_0x252bx15,null,_0xd7e0[77]))[_0xd7e0[75]](handleError(_0x252bx15,null,_0xd7e0[77]))};exports[_0xd7e0[81]]= function(_0x252bx28,_0x252bx15){return db[_0xd7e0[56]][_0xd7e0[81]](_0x252bx28[_0xd7e0[82]],{})[_0xd7e0[45]](respondWithResult(_0x252bx15,201,_0xd7e0[81]))[_0xd7e0[75]](handleError(_0x252bx15,null,_0xd7e0[81]))};exports[_0xd7e0[46]]= function(_0x252bx28,_0x252bx15){if(_0x252bx28[_0xd7e0[82]][_0xd7e0[78]]){delete _0x252bx28[_0xd7e0[82]][_0xd7e0[78]]};return db[_0xd7e0[56]][_0xd7e0[80]]({where:{id:_0x252bx28[_0xd7e0[79]][_0xd7e0[78]]}})[_0xd7e0[45]](handleEntityNotFound(_0x252bx15,null,_0xd7e0[46]))[_0xd7e0[45]](saveUpdates(_0x252bx28[_0xd7e0[82]],null,_0xd7e0[46]))[_0xd7e0[45]](respondWithResult(_0x252bx15,null,_0xd7e0[46]))[_0xd7e0[75]](handleError(_0x252bx15,null,_0xd7e0[46]))};exports[_0xd7e0[48]]= function(_0x252bx28,_0x252bx15){return db[_0xd7e0[56]][_0xd7e0[80]]({where:{id:_0x252bx28[_0xd7e0[79]][_0xd7e0[78]]}})[_0xd7e0[45]](handleEntityNotFound(_0x252bx15,null,_0xd7e0[48]))[_0xd7e0[45]](removeEntity(_0x252bx15,null,_0xd7e0[48]))[_0xd7e0[75]](handleError(_0x252bx15,null,_0xd7e0[48]))};exports[_0xd7e0[83]]= function(_0x252bx28,_0x252bx18,_0x252bx2c){var _0x252bx1b={};var _0x252bx29={};var _0x252bx2d;var _0x252bx1c;return db[_0xd7e0[56]][_0xd7e0[85]]({where:{id:_0x252bx28[_0xd7e0[79]][_0xd7e0[78]]}})[_0xd7e0[45]](handleEntityNotFound(_0x252bx18,null,_0xd7e0[83]))[_0xd7e0[45]](function(_0x252bx18){if(_0x252bx18){_0x252bx2d= _0x252bx18;_0x252bx29[_0xd7e0[54]]= _[_0xd7e0[57]](db[_0xd7e0[84]][_0xd7e0[55]]);_0x252bx29[_0xd7e0[58]]= _[_0xd7e0[57]](_0x252bx28[_0xd7e0[58]]);_0x252bx29[_0xd7e0[59]]= _[_0xd7e0[60]](_0x252bx29[_0xd7e0[54]],_0x252bx29[_0xd7e0[58]]);_0x252bx1b[_0xd7e0[61]]= _[_0xd7e0[60]](_0x252bx29[_0xd7e0[54]],qs[_0xd7e0[62]](_0x252bx28[_0xd7e0[58]][_0xd7e0[62]]));_0x252bx1b[_0xd7e0[61]]= (_0x252bx1b[_0xd7e0[61]][_0xd7e0[63]])?_0x252bx1b[_0xd7e0[61]]:_0x252bx29[_0xd7e0[54]];_0x252bx1b[_0xd7e0[66]]= qs[_0xd7e0[67]](_0x252bx28[_0xd7e0[58]][_0xd7e0[67]]);_0x252bx1b[_0xd7e0[68]]= qs[_0xd7e0[59]](_[_0xd7e0[69]](_0x252bx28[_0xd7e0[58]],_0x252bx29[_0xd7e0[59]]));if(_0x252bx28[_0xd7e0[58]][_0xd7e0[70]]){_0x252bx1b[_0xd7e0[68]]= _[_0xd7e0[73]](_0x252bx1b[_0xd7e0[68]],{$or:_[_0xd7e0[72]](_0x252bx1b[_0xd7e0[61]],function(_0x252bx2a){var _0x252bx2b={};_0x252bx2b[_0x252bx2a]= {$like:_0xd7e0[71]+ _0x252bx28[_0xd7e0[58]][_0xd7e0[70]]+ _0xd7e0[71]};return _0x252bx2b})})};_0x252bx1b= _[_0xd7e0[73]]({},_0x252bx1b,_0x252bx28[_0xd7e0[74]]);return _0x252bx2d[_0xd7e0[83]](_0x252bx1b)}})[_0xd7e0[45]](function(_0x252bx2f){if(_0x252bx2f){_0x252bx1c= _0x252bx2f[_0xd7e0[63]];if(!_0x252bx28[_0xd7e0[58]][_0xd7e0[65]](_0xd7e0[64])){_0x252bx1b[_0xd7e0[35]]= qs[_0xd7e0[35]](_0x252bx28[_0xd7e0[58]][_0xd7e0[35]]);_0x252bx1b[_0xd7e0[34]]= qs[_0xd7e0[34]](_0x252bx28[_0xd7e0[58]][_0xd7e0[34]])};return _0x252bx2d[_0xd7e0[83]](_0x252bx1b)}})[_0xd7e0[45]](function(_0x252bx2e){return _0x252bx2e?{count:_0x252bx1c,rows:_0x252bx2e}:null})[_0xd7e0[45]](respondWithResult(_0x252bx18,null,_0xd7e0[83]))[_0xd7e0[75]](handleError(_0x252bx18,null,_0xd7e0[83]))};exports[_0xd7e0[86]]= function(_0x252bx28,_0x252bx15,_0x252bx2c){var _0x252bx30=[];var _0x252bx31;return db[_0xd7e0[84]][_0xd7e0[93]]({where:{id:_0x252bx28[_0xd7e0[82]][_0xd7e0[87]]},attributes:[_0xd7e0[78]],include:[{model:db[_0xd7e0[92]],as:_0xd7e0[90],attributes:[_0xd7e0[78]],raw:true}]})[_0xd7e0[45]](function(_0x252bx34){if(_0x252bx34){for(var _0x252bx35=0;_0x252bx35< _0x252bx34[_0xd7e0[63]];_0x252bx35+= 1){for(var _0x252bx36=0;_0x252bx36< _0x252bx34[_0x252bx35][_0xd7e0[90]][_0xd7e0[63]];_0x252bx36+= 1){_0x252bx30= _[_0xd7e0[91]](_0x252bx30,[_0x252bx34[_0x252bx35][_0xd7e0[90]][_0x252bx36][_0xd7e0[78]]])}};return _0x252bx30}})[_0xd7e0[45]](function(_0x252bx33){if(_0x252bx33){return db[_0xd7e0[56]][_0xd7e0[80]]({where:{id:_0x252bx28[_0xd7e0[79]][_0xd7e0[78]]}})}})[_0xd7e0[45]](function(_0x252bx32){if(_0x252bx32){_0x252bx31= _0x252bx32;return _0x252bx31[_0xd7e0[89]](_0x252bx30,{penalty:_0x252bx28[_0xd7e0[82]][_0xd7e0[88]]})}})[_0xd7e0[45]](function(_0x252bx18){if(_0x252bx18){return _0x252bx31[_0xd7e0[86]](_0x252bx28[_0xd7e0[82]][_0xd7e0[87]])}})[_0xd7e0[45]](handleEntityNotFound(_0x252bx15,null,_0xd7e0[86]))[_0xd7e0[45]](respondWithStatusCode(_0x252bx15,null,_0xd7e0[86]))[_0xd7e0[75]](handleError(_0x252bx15,null,_0xd7e0[86]))};exports[_0xd7e0[94]]= function(_0x252bx28,_0x252bx15,_0x252bx2c){var _0x252bx30=[];var _0x252bx31;return db[_0xd7e0[84]][_0xd7e0[93]]({where:{id:_0x252bx28[_0xd7e0[58]][_0xd7e0[87]]},attributes:[_0xd7e0[78]],include:[{model:db[_0xd7e0[92]],as:_0xd7e0[90],attributes:[_0xd7e0[78]],raw:true}]})[_0xd7e0[45]](function(_0x252bx34){if(_0x252bx34){for(var _0x252bx35=0;_0x252bx35< _0x252bx34[_0xd7e0[63]];_0x252bx35+= 1){for(var _0x252bx36=0;_0x252bx36< _0x252bx34[_0x252bx35][_0xd7e0[90]][_0xd7e0[63]];_0x252bx36+= 1){_0x252bx30= _[_0xd7e0[91]](_0x252bx30,[_0x252bx34[_0x252bx35][_0xd7e0[90]][_0x252bx36][_0xd7e0[78]]])}};return _0x252bx30}})[_0xd7e0[45]](function(_0x252bx33){if(_0x252bx33){return db[_0xd7e0[56]][_0xd7e0[80]]({where:{id:_0x252bx28[_0xd7e0[79]][_0xd7e0[78]]}})}})[_0xd7e0[45]](function(_0x252bx32){if(_0x252bx32){_0x252bx31= _0x252bx32;return _0x252bx31[_0xd7e0[95]](_0x252bx30)}})[_0xd7e0[45]](function(_0x252bx18){if(_0x252bx31){return _0x252bx31[_0xd7e0[94]](_0x252bx28[_0xd7e0[58]][_0xd7e0[87]])}})[_0xd7e0[45]](handleEntityNotFound(_0x252bx15,null,_0xd7e0[94]))[_0xd7e0[45]](respondWithStatusCode(_0x252bx15,null,_0xd7e0[94]))[_0xd7e0[75]](handleError(_0x252bx15,null,_0xd7e0[94]))};exports[_0xd7e0[89]]= function(_0x252bx28,_0x252bx15,_0x252bx2c){return db[_0xd7e0[56]][_0xd7e0[80]]({where:{id:_0x252bx28[_0xd7e0[79]][_0xd7e0[78]]}})[_0xd7e0[45]](handleEntityNotFound(_0x252bx15,null,_0xd7e0[89]))[_0xd7e0[45]](function(_0x252bx18){if(_0x252bx18){return _0x252bx18[_0xd7e0[89]](_0x252bx28[_0xd7e0[82]][_0xd7e0[87]],_[_0xd7e0[96]](_0x252bx28[_0xd7e0[82]],[_0xd7e0[87],_0xd7e0[78]])|| {})};return null})[_0xd7e0[45]](respondWithResult(_0x252bx15,null,_0xd7e0[89]))[_0xd7e0[75]](handleError(_0x252bx15,null,_0xd7e0[89]))};exports[_0xd7e0[95]]= function(_0x252bx28,_0x252bx15,_0x252bx2c){var _0x252bx2f;return db[_0xd7e0[56]][_0xd7e0[80]]({where:{id:_0x252bx28[_0xd7e0[79]][_0xd7e0[78]]}})[_0xd7e0[45]](handleEntityNotFound(_0x252bx15,null,_0xd7e0[95]))[_0xd7e0[45]](function(_0x252bx18){if(_0x252bx18){return _0x252bx18[_0xd7e0[95]](_0x252bx28[_0xd7e0[58]][_0xd7e0[87]])}})[_0xd7e0[45]](respondWithStatusCode(_0x252bx15,null,_0xd7e0[95]))[_0xd7e0[75]](handleError(_0x252bx15,null,_0xd7e0[95]))};exports[_0xd7e0[97]]= function(_0x252bx28,_0x252bx18,_0x252bx2c){var _0x252bx1b={};var _0x252bx29={};var _0x252bx2d;var _0x252bx1c;return db[_0xd7e0[56]][_0xd7e0[85]]({where:{id:_0x252bx28[_0xd7e0[79]][_0xd7e0[78]]}})[_0xd7e0[45]](handleEntityNotFound(_0x252bx18,null,_0xd7e0[97]))[_0xd7e0[45]](function(_0x252bx18){if(_0x252bx18){_0x252bx2d= _0x252bx18;_0x252bx29[_0xd7e0[54]]= _[_0xd7e0[57]](db[_0xd7e0[92]][_0xd7e0[55]]);_0x252bx29[_0xd7e0[58]]= _[_0xd7e0[57]](_0x252bx28[_0xd7e0[58]]);_0x252bx29[_0xd7e0[59]]= _[_0xd7e0[60]](_0x252bx29[_0xd7e0[54]],_0x252bx29[_0xd7e0[58]]);_0x252bx1b[_0xd7e0[61]]= _[_0xd7e0[60]](_0x252bx29[_0xd7e0[54]],qs[_0xd7e0[62]](_0x252bx28[_0xd7e0[58]][_0xd7e0[62]]));_0x252bx1b[_0xd7e0[61]]= (_0x252bx1b[_0xd7e0[61]][_0xd7e0[63]])?_0x252bx1b[_0xd7e0[61]]:_0x252bx29[_0xd7e0[54]];_0x252bx1b[_0xd7e0[66]]= qs[_0xd7e0[67]](_0x252bx28[_0xd7e0[58]][_0xd7e0[67]]);_0x252bx1b[_0xd7e0[68]]= qs[_0xd7e0[59]](_[_0xd7e0[69]](_0x252bx28[_0xd7e0[58]],_0x252bx29[_0xd7e0[59]]));if(_0x252bx28[_0xd7e0[58]][_0xd7e0[70]]){_0x252bx1b[_0xd7e0[68]]= _[_0xd7e0[73]](_0x252bx1b[_0xd7e0[68]],{$or:_[_0xd7e0[72]](_0x252bx1b[_0xd7e0[61]],function(_0x252bx2a){var _0x252bx2b={};_0x252bx2b[_0x252bx2a]= {$like:_0xd7e0[71]+ _0x252bx28[_0xd7e0[58]][_0xd7e0[70]]+ _0xd7e0[71]};return _0x252bx2b})})};_0x252bx1b= _[_0xd7e0[73]]({},_0x252bx1b,_0x252bx28[_0xd7e0[74]]);return _0x252bx2d[_0xd7e0[97]](_0x252bx1b)}})[_0xd7e0[45]](function(_0x252bx2f){if(_0x252bx2f){_0x252bx1c= _0x252bx2f[_0xd7e0[63]];if(!_0x252bx28[_0xd7e0[58]][_0xd7e0[65]](_0xd7e0[64])){_0x252bx1b[_0xd7e0[35]]= qs[_0xd7e0[35]](_0x252bx28[_0xd7e0[58]][_0xd7e0[35]]);_0x252bx1b[_0xd7e0[34]]= qs[_0xd7e0[34]](_0x252bx28[_0xd7e0[58]][_0xd7e0[34]])};return _0x252bx2d[_0xd7e0[97]](_0x252bx1b)}})[_0xd7e0[45]](function(_0x252bx2e){return _0x252bx2e?{count:_0x252bx1c,rows:_0x252bx2e}:null})[_0xd7e0[45]](respondWithResult(_0x252bx18,null,_0xd7e0[97]))[_0xd7e0[75]](handleError(_0x252bx18,null,_0xd7e0[97]))}
\ No newline at end of file
diff --git a/server/api/chatQueue/chatQueue.model.js b/server/api/chatQueue/chatQueue.model.js
new file mode 100644 (file)
index 0000000..c6b6d6a
--- /dev/null
@@ -0,0 +1 @@
+var _0xe4a3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xe4a3[0];var _=require(_0xe4a3[1]);var util=require(_0xe4a3[2]);var logger=require(_0xe4a3[4])(_0xe4a3[3]);var attributes=require(_0xe4a3[5]);module[_0xe4a3[6]]= function(_0xb2bdx5,_0xb2bdx6){return _0xb2bdx5[_0xe4a3[9]](_0xe4a3[7],attributes,{tableName:_0xe4a3[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/chatQueue/chatQueue.rpc.js b/server/api/chatQueue/chatQueue.rpc.js
new file mode 100644 (file)
index 0000000..df0fda6
--- /dev/null
@@ -0,0 +1 @@
+var _0x6ac5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6ac5[0];var _=require(_0x6ac5[1]);var util=require(_0x6ac5[2]);var moment=require(_0x6ac5[3]);var BPromise=require(_0x6ac5[4]);var db=require(_0x6ac5[6])[_0x6ac5[5]];var utils=require(_0x6ac5[7]);var logger=require(_0x6ac5[9])(_0x6ac5[8]);var jayson=require(_0x6ac5[10]);var client=jayson[_0x6ac5[12]][_0x6ac5[11]]({port:9002});function respondWithRpcPromise(_0xda6axb,_0xda6axc,_0xda6axd){return  new BPromise(function(_0xda6axe,_0xda6axf){return client[_0x6ac5[25]](_0xda6axb,_0xda6axd)[_0x6ac5[24]](function(_0xda6ax11){logger[_0x6ac5[17]](_0x6ac5[13],_0xda6axc,_0x6ac5[16]);logger[_0x6ac5[20]](_0x6ac5[18],_0xda6axc,_0x6ac5[16],JSON[_0x6ac5[19]](_0xda6ax11));if(_0xda6ax11[_0x6ac5[14]]){if(_0xda6ax11[_0x6ac5[14]][_0x6ac5[21]]=== 500){logger[_0x6ac5[14]](_0x6ac5[13],_0xda6axc,_0xda6ax11[_0x6ac5[14]][_0x6ac5[22]]);return _0xda6axf(_0xda6ax11[_0x6ac5[14]][_0x6ac5[22]])};logger[_0x6ac5[14]](_0x6ac5[13],_0xda6axc,_0xda6ax11[_0x6ac5[14]][_0x6ac5[22]]);return _0xda6axe(_0xda6ax11[_0x6ac5[14]][_0x6ac5[22]])}else {logger[_0x6ac5[17]](_0x6ac5[13],_0xda6axc,_0x6ac5[16]);_0xda6axe(_0xda6ax11[_0x6ac5[23]][_0x6ac5[22]])}})[_0x6ac5[15]](function(_0xda6ax10){logger[_0x6ac5[14]](_0x6ac5[13],_0xda6axc,_0xda6ax10);_0xda6axf(_0xda6ax10)})})}
\ No newline at end of file
diff --git a/server/api/chatQueue/index.js b/server/api/chatQueue/index.js
new file mode 100644 (file)
index 0000000..0de26b2
--- /dev/null
@@ -0,0 +1 @@
+var _0xa292=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xa292[0];var multer=require(_0xa292[1]);var util=require(_0xa292[2]);var path=require(_0xa292[3]);var express=require(_0xa292[4]);var router=express.Router();var auth=require(_0xa292[5]);var config=require(_0xa292[6]);var controller=require(_0xa292[7]);router[_0xa292[11]](_0xa292[8],auth[_0xa292[9]](),controller[_0xa292[10]]);router[_0xa292[11]](_0xa292[12],auth[_0xa292[9]](),controller[_0xa292[13]]);router[_0xa292[11]](_0xa292[14],auth[_0xa292[9]](),controller[_0xa292[15]]);router[_0xa292[11]](_0xa292[16],auth[_0xa292[9]](),controller[_0xa292[17]]);router[_0xa292[19]](_0xa292[8],auth[_0xa292[9]](),controller[_0xa292[18]]);router[_0xa292[19]](_0xa292[14],auth[_0xa292[9]](),controller[_0xa292[20]]);router[_0xa292[19]](_0xa292[16],auth[_0xa292[9]](),controller[_0xa292[21]]);router[_0xa292[23]](_0xa292[12],auth[_0xa292[9]](),controller[_0xa292[22]]);router[_0xa292[25]](_0xa292[12],auth[_0xa292[9]](),controller[_0xa292[24]]);router[_0xa292[25]](_0xa292[14],auth[_0xa292[9]](),controller[_0xa292[26]]);router[_0xa292[25]](_0xa292[16],auth[_0xa292[9]](),controller[_0xa292[27]]);module[_0xa292[28]]= router
\ No newline at end of file
diff --git a/server/api/chatReport/chatReport.attributes.js b/server/api/chatReport/chatReport.attributes.js
new file mode 100644 (file)
index 0000000..456d09a
--- /dev/null
@@ -0,0 +1 @@
+var _0xd465=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0xd465[0];var moment=require(_0xd465[1]);var Sequelize=require(_0xd465[2]);module[_0xd465[3]]= {uniqueid:{type:Sequelize[_0xd465[4]]},timeslot:{type:Sequelize[_0xd465[4]]},websitename:{type:Sequelize[_0xd465[4]]},websiteaddress:{type:Sequelize[_0xd465[4]]},websiteid:{type:Sequelize[_0xd465[5]]},application:{type:Sequelize[_0xd465[4]]},memberid:{type:Sequelize[_0xd465[5]]},membername:{type:Sequelize[_0xd465[4]]},visitorid:{type:Sequelize[_0xd465[4]]},visitorname:{type:Sequelize[_0xd465[4]]},visitoremail:{type:Sequelize[_0xd465[4]],validate:{isEmail:true}},queue:{type:Sequelize[_0xd465[5]]},queuename:{type:Sequelize[_0xd465[4]]},roomid:{type:Sequelize[_0xd465[5]]},reason:{type:Sequelize[_0xd465[4]],defaultValue:_0xd465[6]},connectid:{type:Sequelize[_0xd465[4]],unique:_0xd465[7],set:function(_0x6487x3){this[_0xd465[8]](_0xd465[7],_0x6487x3);this[_0xd465[8]](_0xd465[9],_0xd465[10]);this[_0xd465[8]](_0xd465[11],moment()[_0xd465[13]](_0xd465[12]))}},calledAt:{type:Sequelize[_0xd465[14]]},rejectedAt:{type:Sequelize[_0xd465[14]],set:function(_0x6487x4){this[_0xd465[8]](_0xd465[15],_0x6487x4);this[_0xd465[8]](_0xd465[9],_0xd465[16])}},connectedAt:{type:Sequelize[_0xd465[14]]}}
\ No newline at end of file
diff --git a/server/api/chatReport/chatReport.controller.js b/server/api/chatReport/chatReport.controller.js
new file mode 100644 (file)
index 0000000..5f30bd2
--- /dev/null
@@ -0,0 +1 @@
+var _0x48d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x48d2[0];var jsonpatch=require(_0x48d2[1]);var rp=require(_0x48d2[2]);var moment=require(_0x48d2[3]);var BPromise=require(_0x48d2[4]);var util=require(_0x48d2[5]);var path=require(_0x48d2[6]);var sox=require(_0x48d2[7]);var ejs=require(_0x48d2[8]);var fs=require(_0x48d2[9]);var _=require(_0x48d2[10]);var squel=require(_0x48d2[11]);var crypto=require(_0x48d2[12]);var jsforce=require(_0x48d2[13]);var toCsv=require(_0x48d2[14]);var qs=require(_0x48d2[15]);var logger=require(_0x48d2[17])(_0x48d2[16]);var utils=require(_0x48d2[18]);var config=require(_0x48d2[19]);var db=require(_0x48d2[21])[_0x48d2[20]];function respondWithStatusCode(_0x487cx15,_0x487cx16,_0x487cx17){_0x487cx16= _0x487cx16|| 204;return function(_0x487cx18){if(_0x487cx18){logger[_0x48d2[24]](_0x48d2[22],_0x487cx17,_0x487cx16,_0x48d2[23]);logger[_0x48d2[26]](_0x48d2[25],_0x487cx17,_0x487cx16,_0x48d2[23]);return _0x487cx15[_0x48d2[27]](_0x487cx16)};return _0x487cx15[_0x48d2[29]](304)[_0x48d2[28]]()}}function respondWithResult(_0x487cx15,_0x487cx16,_0x487cx17){_0x487cx16= _0x487cx16|| 200;return function(_0x487cx18){if(_0x487cx18){logger[_0x48d2[24]](_0x48d2[22],_0x487cx17,_0x487cx16,_0x48d2[30]);logger[_0x48d2[26]](_0x48d2[25],_0x487cx17,_0x487cx16,_0x48d2[30],JSON[_0x48d2[31]](_0x487cx18));return _0x487cx15[_0x48d2[29]](_0x487cx16)[_0x48d2[32]](_0x487cx18)};return _0x487cx15[_0x48d2[29]](304)[_0x48d2[28]]()}}function respondWithFilteredResult(_0x487cx15,_0x487cx1b,_0x487cx17){return function(_0x487cx18){if(_0x487cx18){var _0x487cx1c=_0x487cx18[_0x48d2[33]],_0x487cx1d=_0x487cx1b[_0x48d2[34]],_0x487cx1e=_0x487cx1b[_0x48d2[34]]+ _0x487cx1b[_0x48d2[35]],_0x487cx16;if(_0x487cx1e>= _0x487cx1c){_0x487cx1e= _0x487cx1c;_0x487cx16= 200}else {_0x487cx16= 206};_0x487cx15[_0x48d2[29]](_0x487cx16);logger[_0x48d2[24]](_0x48d2[22],_0x487cx17,_0x487cx16,_0x48d2[36]);logger[_0x48d2[26]](_0x48d2[25],_0x487cx17,_0x487cx16,_0x48d2[30],JSON[_0x48d2[31]](_0x487cx18));return _0x487cx15[_0x48d2[40]](_0x48d2[37],_0x487cx1d+ _0x48d2[38]+ _0x487cx1e+ _0x48d2[39]+ _0x487cx1c)[_0x48d2[32]](_0x487cx18)};return null}}function patchUpdates(_0x487cx20){return function(_0x487cx18){try{jsonpatch[_0x48d2[41]](_0x487cx18,_0x487cx20,true)}catch(err){return BPromise[_0x48d2[42]](err)};return _0x487cx18[_0x48d2[43]]()}}function saveUpdates(_0x487cx22,_0x487cx16,_0x487cx17){return function(_0x487cx18){if(_0x487cx18){return _0x487cx18[_0x48d2[46]](_0x487cx22)[_0x48d2[45]](function(_0x487cx23){logger[_0x48d2[24]](_0x48d2[22],_0x487cx17,_0x487cx16,_0x48d2[44]);logger[_0x48d2[26]](_0x48d2[25],_0x487cx17,_0x487cx16,_0x48d2[44],JSON[_0x48d2[31]](_0x487cx18));return _0x487cx23})};return null}}function removeEntity(_0x487cx15,_0x487cx16,_0x487cx17){return function(_0x487cx18){if(_0x487cx18){return _0x487cx18[_0x48d2[48]]()[_0x48d2[45]](function(){logger[_0x48d2[24]](_0x48d2[22],_0x487cx17,_0x487cx16,_0x48d2[47]);logger[_0x48d2[26]](_0x48d2[25],_0x487cx17,_0x487cx16,_0x48d2[47],JSON[_0x48d2[31]](_0x487cx18));_0x487cx15[_0x48d2[29]](204)[_0x48d2[28]]()})}}}function handleEntityNotFound(_0x487cx15,_0x487cx16,_0x487cx17){return function(_0x487cx18){if(!_0x487cx18){logger[_0x48d2[50]](_0x48d2[22],_0x487cx17,404,_0x48d2[49]);_0x487cx15[_0x48d2[29]](404)[_0x48d2[28]]();return null};return _0x487cx18}}function handleError(_0x487cx15,_0x487cx16,_0x487cx17){_0x487cx16= _0x487cx16|| 500;return function(_0x487cx27){logger[_0x48d2[50]](_0x48d2[22],_0x487cx17,_0x487cx16,JSON[_0x48d2[31]](_0x487cx27));delete _0x487cx27[_0x48d2[51]];_0x487cx15[_0x48d2[29]](_0x487cx16)[_0x48d2[52]](_0x487cx27)}}exports[_0x48d2[53]]= function(_0x487cx28,_0x487cx15){var _0x487cx1b={},_0x487cx29={};_0x487cx29[_0x48d2[54]]= _[_0x48d2[57]](db[_0x48d2[56]][_0x48d2[55]]);_0x487cx29[_0x48d2[58]]= _[_0x48d2[57]](_0x487cx28[_0x48d2[58]]);_0x487cx29[_0x48d2[59]]= _[_0x48d2[60]](_0x487cx29[_0x48d2[54]],_0x487cx29[_0x48d2[58]]);_0x487cx1b[_0x48d2[61]]= _[_0x48d2[60]](_0x487cx29[_0x48d2[54]],qs[_0x48d2[62]](_0x487cx28[_0x48d2[58]][_0x48d2[62]]));_0x487cx1b[_0x48d2[61]]= (_0x487cx1b[_0x48d2[61]][_0x48d2[63]])?_0x487cx1b[_0x48d2[61]]:_0x487cx29[_0x48d2[54]];if(!_0x487cx28[_0x48d2[58]][_0x48d2[65]](_0x48d2[64])){_0x487cx1b[_0x48d2[35]]= qs[_0x48d2[35]](_0x487cx28[_0x48d2[58]][_0x48d2[35]]);_0x487cx1b[_0x48d2[34]]= qs[_0x48d2[34]](_0x487cx28[_0x48d2[58]][_0x48d2[34]])};_0x487cx1b[_0x48d2[66]]= qs[_0x48d2[67]](_0x487cx28[_0x48d2[58]][_0x48d2[67]]);_0x487cx1b[_0x48d2[68]]= qs[_0x48d2[59]](_[_0x48d2[69]](_0x487cx28[_0x48d2[58]],_0x487cx29[_0x48d2[59]]));if(_0x487cx28[_0x48d2[58]][_0x48d2[70]]){_0x487cx1b[_0x48d2[68]]= _[_0x48d2[73]](_0x487cx1b[_0x48d2[68]],{$or:_[_0x48d2[72]](_0x487cx1b[_0x48d2[61]],function(_0x487cx2a){var _0x487cx2b={};_0x487cx2b[_0x487cx2a]= {$like:_0x48d2[71]+ _0x487cx28[_0x48d2[58]][_0x48d2[70]]+ _0x48d2[71]};return _0x487cx2b})})};_0x487cx1b= _[_0x48d2[73]]({},_0x487cx1b,_0x487cx28[_0x48d2[74]]);return db[_0x48d2[56]][_0x48d2[76]](_0x487cx1b)[_0x48d2[45]](respondWithFilteredResult(_0x487cx15,_0x487cx1b,_0x48d2[53]))[_0x48d2[75]](handleError(_0x487cx15,null,_0x48d2[53]))};exports[_0x48d2[77]]= function(_0x487cx28,_0x487cx15){var _0x487cx1b={raw:true,where:{id:_0x487cx28[_0x48d2[79]][_0x48d2[78]]}},_0x487cx29={};_0x487cx29[_0x48d2[54]]= _[_0x48d2[57]](db[_0x48d2[56]][_0x48d2[55]]);_0x487cx29[_0x48d2[58]]= _[_0x48d2[57]](_0x487cx28[_0x48d2[58]]);_0x487cx29[_0x48d2[59]]= _[_0x48d2[60]](_0x487cx29[_0x48d2[54]],_0x487cx29[_0x48d2[58]]);_0x487cx1b[_0x48d2[61]]= _[_0x48d2[60]](_0x487cx29[_0x48d2[54]],qs[_0x48d2[62]](_0x487cx28[_0x48d2[58]][_0x48d2[62]]));_0x487cx1b[_0x48d2[61]]= (_0x487cx1b[_0x48d2[61]][_0x48d2[63]])?_0x487cx1b[_0x48d2[61]]:_0x487cx29[_0x48d2[54]];_0x487cx1b= _[_0x48d2[73]]({},_0x487cx1b,_0x487cx28[_0x48d2[74]]);return db[_0x48d2[56]][_0x48d2[80]](_0x487cx1b)[_0x48d2[45]](handleEntityNotFound(_0x487cx15,null,_0x48d2[77]))[_0x48d2[45]](respondWithResult(_0x487cx15,null,_0x48d2[77]))[_0x48d2[75]](handleError(_0x487cx15,null,_0x48d2[77]))};exports[_0x48d2[81]]= function(_0x487cx28,_0x487cx15){return db[_0x48d2[56]][_0x48d2[81]](_0x487cx28[_0x48d2[82]],{})[_0x48d2[45]](respondWithResult(_0x487cx15,201,_0x48d2[81]))[_0x48d2[75]](handleError(_0x487cx15,null,_0x48d2[81]))};exports[_0x48d2[46]]= function(_0x487cx28,_0x487cx15){if(_0x487cx28[_0x48d2[82]][_0x48d2[78]]){delete _0x487cx28[_0x48d2[82]][_0x48d2[78]]};return db[_0x48d2[56]][_0x48d2[80]]({where:{id:_0x487cx28[_0x48d2[79]][_0x48d2[78]]}})[_0x48d2[45]](handleEntityNotFound(_0x487cx15,null,_0x48d2[46]))[_0x48d2[45]](saveUpdates(_0x487cx28[_0x48d2[82]],null,_0x48d2[46]))[_0x48d2[45]](respondWithResult(_0x487cx15,null,_0x48d2[46]))[_0x48d2[75]](handleError(_0x487cx15,null,_0x48d2[46]))};exports[_0x48d2[48]]= function(_0x487cx28,_0x487cx15){return db[_0x48d2[56]][_0x48d2[80]]({where:{id:_0x487cx28[_0x48d2[79]][_0x48d2[78]]}})[_0x48d2[45]](handleEntityNotFound(_0x487cx15,null,_0x48d2[48]))[_0x48d2[45]](removeEntity(_0x487cx15,null,_0x48d2[48]))[_0x48d2[75]](handleError(_0x487cx15,null,_0x48d2[48]))}
\ No newline at end of file
diff --git a/server/api/chatReport/chatReport.model.js b/server/api/chatReport/chatReport.model.js
new file mode 100644 (file)
index 0000000..705bac7
--- /dev/null
@@ -0,0 +1 @@
+var _0x94f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74","\x64\x65\x66\x69\x6E\x65"];_0x94f9[0];var _=require(_0x94f9[1]);var util=require(_0x94f9[2]);var logger=require(_0x94f9[4])(_0x94f9[3]);var attributes=require(_0x94f9[5]);module[_0x94f9[6]]= function(_0x7e7bx5,_0x7e7bx6){return _0x7e7bx5[_0x94f9[9]](_0x94f9[7],attributes,{tableName:_0x94f9[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/chatReport/chatReport.rpc.js b/server/api/chatReport/chatReport.rpc.js
new file mode 100644 (file)
index 0000000..1c46a19
--- /dev/null
@@ -0,0 +1 @@
+var _0x3000=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x3000[0];var _=require(_0x3000[1]);var util=require(_0x3000[2]);var moment=require(_0x3000[3]);var BPromise=require(_0x3000[4]);var db=require(_0x3000[6])[_0x3000[5]];var utils=require(_0x3000[7]);var logger=require(_0x3000[9])(_0x3000[8]);var jayson=require(_0x3000[10]);var client=jayson[_0x3000[12]][_0x3000[11]]({port:9002});function respondWithRpcPromise(_0x902exb,_0x902exc,_0x902exd){return  new BPromise(function(_0x902exe,_0x902exf){return client[_0x3000[25]](_0x902exb,_0x902exd)[_0x3000[24]](function(_0x902ex11){logger[_0x3000[17]](_0x3000[13],_0x902exc,_0x3000[16]);logger[_0x3000[20]](_0x3000[18],_0x902exc,_0x3000[16],JSON[_0x3000[19]](_0x902ex11));if(_0x902ex11[_0x3000[14]]){if(_0x902ex11[_0x3000[14]][_0x3000[21]]=== 500){logger[_0x3000[14]](_0x3000[13],_0x902exc,_0x902ex11[_0x3000[14]][_0x3000[22]]);return _0x902exf(_0x902ex11[_0x3000[14]][_0x3000[22]])};logger[_0x3000[14]](_0x3000[13],_0x902exc,_0x902ex11[_0x3000[14]][_0x3000[22]]);return _0x902exe(_0x902ex11[_0x3000[14]][_0x3000[22]])}else {logger[_0x3000[17]](_0x3000[13],_0x902exc,_0x3000[16]);_0x902exe(_0x902ex11[_0x3000[23]][_0x3000[22]])}})[_0x3000[15]](function(_0x902ex10){logger[_0x3000[14]](_0x3000[13],_0x902exc,_0x902ex10);_0x902exf(_0x902ex10)})})}
\ No newline at end of file
diff --git a/server/api/chatReport/index.js b/server/api/chatReport/index.js
new file mode 100644 (file)
index 0000000..fea148c
--- /dev/null
@@ -0,0 +1 @@
+var _0x2e8a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2e8a[0];var multer=require(_0x2e8a[1]);var util=require(_0x2e8a[2]);var path=require(_0x2e8a[3]);var express=require(_0x2e8a[4]);var router=express.Router();var auth=require(_0x2e8a[5]);var config=require(_0x2e8a[6]);var controller=require(_0x2e8a[7]);router[_0x2e8a[11]](_0x2e8a[8],auth[_0x2e8a[9]](),controller[_0x2e8a[10]]);router[_0x2e8a[11]](_0x2e8a[12],auth[_0x2e8a[9]](),controller[_0x2e8a[13]]);router[_0x2e8a[15]](_0x2e8a[8],auth[_0x2e8a[9]](),controller[_0x2e8a[14]]);router[_0x2e8a[17]](_0x2e8a[12],auth[_0x2e8a[9]](),controller[_0x2e8a[16]]);router[_0x2e8a[19]](_0x2e8a[12],auth[_0x2e8a[9]](),controller[_0x2e8a[18]]);module[_0x2e8a[20]]= router
\ No newline at end of file
diff --git a/server/api/chatSessionReport/chatSessionReport.attributes.js b/server/api/chatSessionReport/chatSessionReport.attributes.js
new file mode 100644 (file)
index 0000000..72f6823
--- /dev/null
@@ -0,0 +1 @@
+var _0x7f87=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74","\x72\x65\x71\x75\x65\x73\x74\x65\x72"];_0x7f87[0];var Sequelize=require(_0x7f87[1]);module[_0x7f87[2]]= {uniqueid:{type:Sequelize[_0x7f87[3]]},websitename:{type:Sequelize[_0x7f87[3]]},websiteaddress:{type:Sequelize[_0x7f87[3]]},websiteid:{type:Sequelize[_0x7f87[4]]},application:{type:Sequelize[_0x7f87[3]]},visitorid:{type:Sequelize[_0x7f87[3]]},visitorname:{type:Sequelize[_0x7f87[3]]},visitoremail:{type:Sequelize[_0x7f87[3]],validate:{isEmail:true}},memberid:{type:Sequelize[_0x7f87[3]]},membername:{type:Sequelize[_0x7f87[3]]},queue:{type:Sequelize[_0x7f87[4]]},queuename:{type:Sequelize[_0x7f87[3]]},roomid:{type:Sequelize[_0x7f87[4]]},fidelity:{type:Sequelize[_0x7f87[4]],defaultValue:0},joinAt:{type:Sequelize[_0x7f87[5]]},leaveAt:{type:Sequelize[_0x7f87[5]]},completeAt:{type:Sequelize[_0x7f87[5]]},complete:{type:Sequelize[_0x7f87[6]],defaultValue:0},completeReason:{type:Sequelize.ENUM(_0x7f87[7],_0x7f87[8])},abandon:{type:Sequelize[_0x7f87[6]],defaultValue:0},timeout:{type:Sequelize[_0x7f87[6]],defaultValue:0},timeslot:{type:Sequelize[_0x7f87[4]]}}
\ No newline at end of file
diff --git a/server/api/chatSessionReport/chatSessionReport.controller.js b/server/api/chatSessionReport/chatSessionReport.controller.js
new file mode 100644 (file)
index 0000000..ad859e7
--- /dev/null
@@ -0,0 +1 @@
+var _0x8959=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x8959[0];var jsonpatch=require(_0x8959[1]);var rp=require(_0x8959[2]);var moment=require(_0x8959[3]);var BPromise=require(_0x8959[4]);var util=require(_0x8959[5]);var path=require(_0x8959[6]);var sox=require(_0x8959[7]);var ejs=require(_0x8959[8]);var fs=require(_0x8959[9]);var _=require(_0x8959[10]);var squel=require(_0x8959[11]);var crypto=require(_0x8959[12]);var jsforce=require(_0x8959[13]);var toCsv=require(_0x8959[14]);var qs=require(_0x8959[15]);var logger=require(_0x8959[17])(_0x8959[16]);var utils=require(_0x8959[18]);var config=require(_0x8959[19]);var db=require(_0x8959[21])[_0x8959[20]];function respondWithStatusCode(_0x9992x15,_0x9992x16,_0x9992x17){_0x9992x16= _0x9992x16|| 204;return function(_0x9992x18){if(_0x9992x18){logger[_0x8959[24]](_0x8959[22],_0x9992x17,_0x9992x16,_0x8959[23]);logger[_0x8959[26]](_0x8959[25],_0x9992x17,_0x9992x16,_0x8959[23]);return _0x9992x15[_0x8959[27]](_0x9992x16)};return _0x9992x15[_0x8959[29]](304)[_0x8959[28]]()}}function respondWithResult(_0x9992x15,_0x9992x16,_0x9992x17){_0x9992x16= _0x9992x16|| 200;return function(_0x9992x18){if(_0x9992x18){logger[_0x8959[24]](_0x8959[22],_0x9992x17,_0x9992x16,_0x8959[30]);logger[_0x8959[26]](_0x8959[25],_0x9992x17,_0x9992x16,_0x8959[30],JSON[_0x8959[31]](_0x9992x18));return _0x9992x15[_0x8959[29]](_0x9992x16)[_0x8959[32]](_0x9992x18)};return _0x9992x15[_0x8959[29]](304)[_0x8959[28]]()}}function respondWithFilteredResult(_0x9992x15,_0x9992x1b,_0x9992x17){return function(_0x9992x18){if(_0x9992x18){var _0x9992x1c=_0x9992x18[_0x8959[33]],_0x9992x1d=_0x9992x1b[_0x8959[34]],_0x9992x1e=_0x9992x1b[_0x8959[34]]+ _0x9992x1b[_0x8959[35]],_0x9992x16;if(_0x9992x1e>= _0x9992x1c){_0x9992x1e= _0x9992x1c;_0x9992x16= 200}else {_0x9992x16= 206};_0x9992x15[_0x8959[29]](_0x9992x16);logger[_0x8959[24]](_0x8959[22],_0x9992x17,_0x9992x16,_0x8959[36]);logger[_0x8959[26]](_0x8959[25],_0x9992x17,_0x9992x16,_0x8959[30],JSON[_0x8959[31]](_0x9992x18));return _0x9992x15[_0x8959[40]](_0x8959[37],_0x9992x1d+ _0x8959[38]+ _0x9992x1e+ _0x8959[39]+ _0x9992x1c)[_0x8959[32]](_0x9992x18)};return null}}function patchUpdates(_0x9992x20){return function(_0x9992x18){try{jsonpatch[_0x8959[41]](_0x9992x18,_0x9992x20,true)}catch(err){return BPromise[_0x8959[42]](err)};return _0x9992x18[_0x8959[43]]()}}function saveUpdates(_0x9992x22,_0x9992x16,_0x9992x17){return function(_0x9992x18){if(_0x9992x18){return _0x9992x18[_0x8959[46]](_0x9992x22)[_0x8959[45]](function(_0x9992x23){logger[_0x8959[24]](_0x8959[22],_0x9992x17,_0x9992x16,_0x8959[44]);logger[_0x8959[26]](_0x8959[25],_0x9992x17,_0x9992x16,_0x8959[44],JSON[_0x8959[31]](_0x9992x18));return _0x9992x23})};return null}}function removeEntity(_0x9992x15,_0x9992x16,_0x9992x17){return function(_0x9992x18){if(_0x9992x18){return _0x9992x18[_0x8959[48]]()[_0x8959[45]](function(){logger[_0x8959[24]](_0x8959[22],_0x9992x17,_0x9992x16,_0x8959[47]);logger[_0x8959[26]](_0x8959[25],_0x9992x17,_0x9992x16,_0x8959[47],JSON[_0x8959[31]](_0x9992x18));_0x9992x15[_0x8959[29]](204)[_0x8959[28]]()})}}}function handleEntityNotFound(_0x9992x15,_0x9992x16,_0x9992x17){return function(_0x9992x18){if(!_0x9992x18){logger[_0x8959[50]](_0x8959[22],_0x9992x17,404,_0x8959[49]);_0x9992x15[_0x8959[29]](404)[_0x8959[28]]();return null};return _0x9992x18}}function handleError(_0x9992x15,_0x9992x16,_0x9992x17){_0x9992x16= _0x9992x16|| 500;return function(_0x9992x27){logger[_0x8959[50]](_0x8959[22],_0x9992x17,_0x9992x16,JSON[_0x8959[31]](_0x9992x27));delete _0x9992x27[_0x8959[51]];_0x9992x15[_0x8959[29]](_0x9992x16)[_0x8959[52]](_0x9992x27)}}exports[_0x8959[53]]= function(_0x9992x28,_0x9992x15){var _0x9992x1b={},_0x9992x29={};_0x9992x29[_0x8959[54]]= _[_0x8959[57]](db[_0x8959[56]][_0x8959[55]]);_0x9992x29[_0x8959[58]]= _[_0x8959[57]](_0x9992x28[_0x8959[58]]);_0x9992x29[_0x8959[59]]= _[_0x8959[60]](_0x9992x29[_0x8959[54]],_0x9992x29[_0x8959[58]]);_0x9992x1b[_0x8959[61]]= _[_0x8959[60]](_0x9992x29[_0x8959[54]],qs[_0x8959[62]](_0x9992x28[_0x8959[58]][_0x8959[62]]));_0x9992x1b[_0x8959[61]]= (_0x9992x1b[_0x8959[61]][_0x8959[63]])?_0x9992x1b[_0x8959[61]]:_0x9992x29[_0x8959[54]];if(!_0x9992x28[_0x8959[58]][_0x8959[65]](_0x8959[64])){_0x9992x1b[_0x8959[35]]= qs[_0x8959[35]](_0x9992x28[_0x8959[58]][_0x8959[35]]);_0x9992x1b[_0x8959[34]]= qs[_0x8959[34]](_0x9992x28[_0x8959[58]][_0x8959[34]])};_0x9992x1b[_0x8959[66]]= qs[_0x8959[67]](_0x9992x28[_0x8959[58]][_0x8959[67]]);_0x9992x1b[_0x8959[68]]= qs[_0x8959[59]](_[_0x8959[69]](_0x9992x28[_0x8959[58]],_0x9992x29[_0x8959[59]]));if(_0x9992x28[_0x8959[58]][_0x8959[70]]){_0x9992x1b[_0x8959[68]]= _[_0x8959[73]](_0x9992x1b[_0x8959[68]],{$or:_[_0x8959[72]](_0x9992x1b[_0x8959[61]],function(_0x9992x2a){var _0x9992x2b={};_0x9992x2b[_0x9992x2a]= {$like:_0x8959[71]+ _0x9992x28[_0x8959[58]][_0x8959[70]]+ _0x8959[71]};return _0x9992x2b})})};_0x9992x1b= _[_0x8959[73]]({},_0x9992x1b,_0x9992x28[_0x8959[74]]);return db[_0x8959[56]][_0x8959[76]](_0x9992x1b)[_0x8959[45]](respondWithFilteredResult(_0x9992x15,_0x9992x1b,_0x8959[53]))[_0x8959[75]](handleError(_0x9992x15,null,_0x8959[53]))};exports[_0x8959[77]]= function(_0x9992x28,_0x9992x15){var _0x9992x1b={raw:false,where:{id:_0x9992x28[_0x8959[79]][_0x8959[78]]}},_0x9992x29={};_0x9992x29[_0x8959[54]]= _[_0x8959[57]](db[_0x8959[56]][_0x8959[55]]);_0x9992x29[_0x8959[58]]= _[_0x8959[57]](_0x9992x28[_0x8959[58]]);_0x9992x29[_0x8959[59]]= _[_0x8959[60]](_0x9992x29[_0x8959[54]],_0x9992x29[_0x8959[58]]);_0x9992x1b[_0x8959[61]]= _[_0x8959[60]](_0x9992x29[_0x8959[54]],qs[_0x8959[62]](_0x9992x28[_0x8959[58]][_0x8959[62]]));_0x9992x1b[_0x8959[61]]= (_0x9992x1b[_0x8959[61]][_0x8959[63]])?_0x9992x1b[_0x8959[61]]:_0x9992x29[_0x8959[54]];_0x9992x1b= _[_0x8959[73]]({},_0x9992x1b,_0x9992x28[_0x8959[74]]);return db[_0x8959[56]][_0x8959[80]](_0x9992x1b)[_0x8959[45]](handleEntityNotFound(_0x9992x15,null,_0x8959[77]))[_0x8959[45]](respondWithResult(_0x9992x15,null,_0x8959[77]))[_0x8959[75]](handleError(_0x9992x15,null,_0x8959[77]))};exports[_0x8959[81]]= function(_0x9992x28,_0x9992x15){return db[_0x8959[56]][_0x8959[81]](_0x9992x28[_0x8959[82]],{})[_0x8959[45]](respondWithResult(_0x9992x15,201,_0x8959[81]))[_0x8959[75]](handleError(_0x9992x15,null,_0x8959[81]))};exports[_0x8959[46]]= function(_0x9992x28,_0x9992x15){if(_0x9992x28[_0x8959[82]][_0x8959[78]]){delete _0x9992x28[_0x8959[82]][_0x8959[78]]};return db[_0x8959[56]][_0x8959[80]]({where:{id:_0x9992x28[_0x8959[79]][_0x8959[78]]}})[_0x8959[45]](handleEntityNotFound(_0x9992x15,null,_0x8959[46]))[_0x8959[45]](saveUpdates(_0x9992x28[_0x8959[82]],null,_0x8959[46]))[_0x8959[45]](respondWithResult(_0x9992x15,null,_0x8959[46]))[_0x8959[75]](handleError(_0x9992x15,null,_0x8959[46]))};exports[_0x8959[48]]= function(_0x9992x28,_0x9992x15){return db[_0x8959[56]][_0x8959[80]]({where:{id:_0x9992x28[_0x8959[79]][_0x8959[78]]}})[_0x8959[45]](handleEntityNotFound(_0x9992x15,null,_0x8959[48]))[_0x8959[45]](removeEntity(_0x9992x15,null,_0x8959[48]))[_0x8959[75]](handleError(_0x9992x15,null,_0x8959[48]))};exports[_0x8959[83]]= function(_0x9992x28,_0x9992x15){return db[_0x8959[56]][_0x8959[83]]()[_0x8959[45]](respondWithResult(_0x9992x15,null,_0x8959[83]))[_0x8959[75]](handleError(_0x9992x15,null,_0x8959[83]))}
\ No newline at end of file
diff --git a/server/api/chatSessionReport/chatSessionReport.model.js b/server/api/chatSessionReport/chatSessionReport.model.js
new file mode 100644 (file)
index 0000000..43f6438
--- /dev/null
@@ -0,0 +1 @@
+var _0xf719=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x68\x61\x74\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0xf719[0];var _=require(_0xf719[1]);var util=require(_0xf719[2]);var logger=require(_0xf719[4])(_0xf719[3]);var attributes=require(_0xf719[5]);module[_0xf719[6]]= function(_0x66ecx5,_0x66ecx6){return _0x66ecx5[_0xf719[9]](_0xf719[7],attributes,{tableName:_0xf719[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/chatSessionReport/chatSessionReport.rpc.js b/server/api/chatSessionReport/chatSessionReport.rpc.js
new file mode 100644 (file)
index 0000000..254dd25
--- /dev/null
@@ -0,0 +1 @@
+var _0xcb40=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xcb40[0];var _=require(_0xcb40[1]);var util=require(_0xcb40[2]);var moment=require(_0xcb40[3]);var BPromise=require(_0xcb40[4]);var db=require(_0xcb40[6])[_0xcb40[5]];var utils=require(_0xcb40[7]);var logger=require(_0xcb40[9])(_0xcb40[8]);var jayson=require(_0xcb40[10]);var client=jayson[_0xcb40[12]][_0xcb40[11]]({port:9002});function respondWithRpcPromise(_0xb0b5xb,_0xb0b5xc,_0xb0b5xd){return  new BPromise(function(_0xb0b5xe,_0xb0b5xf){return client[_0xcb40[25]](_0xb0b5xb,_0xb0b5xd)[_0xcb40[24]](function(_0xb0b5x11){logger[_0xcb40[17]](_0xcb40[13],_0xb0b5xc,_0xcb40[16]);logger[_0xcb40[20]](_0xcb40[18],_0xb0b5xc,_0xcb40[16],JSON[_0xcb40[19]](_0xb0b5x11));if(_0xb0b5x11[_0xcb40[14]]){if(_0xb0b5x11[_0xcb40[14]][_0xcb40[21]]=== 500){logger[_0xcb40[14]](_0xcb40[13],_0xb0b5xc,_0xb0b5x11[_0xcb40[14]][_0xcb40[22]]);return _0xb0b5xf(_0xb0b5x11[_0xcb40[14]][_0xcb40[22]])};logger[_0xcb40[14]](_0xcb40[13],_0xb0b5xc,_0xb0b5x11[_0xcb40[14]][_0xcb40[22]]);return _0xb0b5xe(_0xb0b5x11[_0xcb40[14]][_0xcb40[22]])}else {logger[_0xcb40[17]](_0xcb40[13],_0xb0b5xc,_0xcb40[16]);_0xb0b5xe(_0xb0b5x11[_0xcb40[23]][_0xcb40[22]])}})[_0xcb40[15]](function(_0xb0b5x10){logger[_0xcb40[14]](_0xcb40[13],_0xb0b5xc,_0xb0b5x10);_0xb0b5xf(_0xb0b5x10)})})}
\ No newline at end of file
diff --git a/server/api/chatSessionReport/index.js b/server/api/chatSessionReport/index.js
new file mode 100644 (file)
index 0000000..91a4f60
--- /dev/null
@@ -0,0 +1 @@
+var _0xe9ed=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe9ed[0];var multer=require(_0xe9ed[1]);var util=require(_0xe9ed[2]);var path=require(_0xe9ed[3]);var express=require(_0xe9ed[4]);var router=express.Router();var auth=require(_0xe9ed[5]);var config=require(_0xe9ed[6]);var controller=require(_0xe9ed[7]);router[_0xe9ed[11]](_0xe9ed[8],auth[_0xe9ed[9]](),controller[_0xe9ed[10]]);router[_0xe9ed[11]](_0xe9ed[12],auth[_0xe9ed[9]](),controller[_0xe9ed[13]]);router[_0xe9ed[11]](_0xe9ed[14],auth[_0xe9ed[9]](),controller[_0xe9ed[15]]);router[_0xe9ed[17]](_0xe9ed[8],auth[_0xe9ed[9]](),controller[_0xe9ed[16]]);router[_0xe9ed[19]](_0xe9ed[14],auth[_0xe9ed[9]](),controller[_0xe9ed[18]]);router[_0xe9ed[21]](_0xe9ed[14],auth[_0xe9ed[9]](),controller[_0xe9ed[20]]);module[_0xe9ed[22]]= router
\ No newline at end of file
diff --git a/server/api/chatVisitor/chatVisitor.attributes.js b/server/api/chatVisitor/chatVisitor.attributes.js
new file mode 100644 (file)
index 0000000..d2ed31d
--- /dev/null
@@ -0,0 +1 @@
+var _0x351b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x77\x65\x62\x63\x68\x61\x74","\x65\x6E\x71\x75\x69\x72\x79","\x70\x65\x6E\x64\x69\x6E\x67","\x61\x63\x63\x65\x70\x74\x65\x64","\x75\x6E\x73\x65\x72\x76\x65\x64","\x73\x65\x72\x76\x65\x64","\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74","\x61\x62\x61\x6E\x64\x6F\x6E"];_0x351b[0];var Sequelize=require(_0x351b[1]);module[_0x351b[2]]= {fullname:{type:Sequelize[_0x351b[3]]},email:{type:Sequelize[_0x351b[3]],validate:{isEmail:true}},remote_address:{type:Sequelize[_0x351b[3]]},user_agent:{type:Sequelize[_0x351b[3]]},visitor_language:{type:Sequelize[_0x351b[3]]},referer:{type:Sequelize[_0x351b[3]]},browser:{type:Sequelize[_0x351b[3]]},engine:{type:Sequelize[_0x351b[3]]},os:{type:Sequelize[_0x351b[3]]},device:{type:Sequelize[_0x351b[3]]},country:{type:Sequelize[_0x351b[3]]},region:{type:Sequelize[_0x351b[3]]},city:{type:Sequelize[_0x351b[3]]},latitude:{type:Sequelize[_0x351b[3]]},longitude:{type:Sequelize[_0x351b[3]]},origin:{type:Sequelize.ENUM(_0x351b[4],_0x351b[5])},status:{type:Sequelize.ENUM(_0x351b[6],_0x351b[7],_0x351b[8],_0x351b[9],_0x351b[10],_0x351b[11]),defaultValue:_0x351b[6]},data1:{type:Sequelize[_0x351b[3]]},data2:{type:Sequelize[_0x351b[3]]},data3:{type:Sequelize[_0x351b[3]]},offlineData1:{type:Sequelize[_0x351b[3]]},offlineData2:{type:Sequelize[_0x351b[3]]},offlineData3:{type:Sequelize[_0x351b[3]]},labelData1:{type:Sequelize[_0x351b[3]]},labelData2:{type:Sequelize[_0x351b[3]]},labelData3:{type:Sequelize[_0x351b[3]]},labelOfflineData1:{type:Sequelize[_0x351b[3]]},labelOfflineData2:{type:Sequelize[_0x351b[3]]},labelOfflineData3:{type:Sequelize[_0x351b[3]]}}
\ No newline at end of file
diff --git a/server/api/chatVisitor/chatVisitor.controller.js b/server/api/chatVisitor/chatVisitor.controller.js
new file mode 100644 (file)
index 0000000..7df06b5
--- /dev/null
@@ -0,0 +1 @@
+var _0xb269=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xb269[0];var jsonpatch=require(_0xb269[1]);var rp=require(_0xb269[2]);var moment=require(_0xb269[3]);var BPromise=require(_0xb269[4]);var util=require(_0xb269[5]);var path=require(_0xb269[6]);var sox=require(_0xb269[7]);var ejs=require(_0xb269[8]);var fs=require(_0xb269[9]);var _=require(_0xb269[10]);var squel=require(_0xb269[11]);var crypto=require(_0xb269[12]);var jsforce=require(_0xb269[13]);var toCsv=require(_0xb269[14]);var qs=require(_0xb269[15]);var logger=require(_0xb269[17])(_0xb269[16]);var utils=require(_0xb269[18]);var config=require(_0xb269[19]);var db=require(_0xb269[21])[_0xb269[20]];function respondWithStatusCode(_0xc3f5x15,_0xc3f5x16,_0xc3f5x17){_0xc3f5x16= _0xc3f5x16|| 204;return function(_0xc3f5x18){if(_0xc3f5x18){logger[_0xb269[24]](_0xb269[22],_0xc3f5x17,_0xc3f5x16,_0xb269[23]);logger[_0xb269[26]](_0xb269[25],_0xc3f5x17,_0xc3f5x16,_0xb269[23]);return _0xc3f5x15[_0xb269[27]](_0xc3f5x16)};return _0xc3f5x15[_0xb269[29]](304)[_0xb269[28]]()}}function respondWithResult(_0xc3f5x15,_0xc3f5x16,_0xc3f5x17){_0xc3f5x16= _0xc3f5x16|| 200;return function(_0xc3f5x18){if(_0xc3f5x18){logger[_0xb269[24]](_0xb269[22],_0xc3f5x17,_0xc3f5x16,_0xb269[30]);logger[_0xb269[26]](_0xb269[25],_0xc3f5x17,_0xc3f5x16,_0xb269[30],JSON[_0xb269[31]](_0xc3f5x18));return _0xc3f5x15[_0xb269[29]](_0xc3f5x16)[_0xb269[32]](_0xc3f5x18)};return _0xc3f5x15[_0xb269[29]](304)[_0xb269[28]]()}}function respondWithFilteredResult(_0xc3f5x15,_0xc3f5x1b,_0xc3f5x17){return function(_0xc3f5x18){if(_0xc3f5x18){var _0xc3f5x1c=_0xc3f5x18[_0xb269[33]],_0xc3f5x1d=_0xc3f5x1b[_0xb269[34]],_0xc3f5x1e=_0xc3f5x1b[_0xb269[34]]+ _0xc3f5x1b[_0xb269[35]],_0xc3f5x16;if(_0xc3f5x1e>= _0xc3f5x1c){_0xc3f5x1e= _0xc3f5x1c;_0xc3f5x16= 200}else {_0xc3f5x16= 206};_0xc3f5x15[_0xb269[29]](_0xc3f5x16);logger[_0xb269[24]](_0xb269[22],_0xc3f5x17,_0xc3f5x16,_0xb269[36]);logger[_0xb269[26]](_0xb269[25],_0xc3f5x17,_0xc3f5x16,_0xb269[30],JSON[_0xb269[31]](_0xc3f5x18));return _0xc3f5x15[_0xb269[40]](_0xb269[37],_0xc3f5x1d+ _0xb269[38]+ _0xc3f5x1e+ _0xb269[39]+ _0xc3f5x1c)[_0xb269[32]](_0xc3f5x18)};return null}}function patchUpdates(_0xc3f5x20){return function(_0xc3f5x18){try{jsonpatch[_0xb269[41]](_0xc3f5x18,_0xc3f5x20,true)}catch(err){return BPromise[_0xb269[42]](err)};return _0xc3f5x18[_0xb269[43]]()}}function saveUpdates(_0xc3f5x22,_0xc3f5x16,_0xc3f5x17){return function(_0xc3f5x18){if(_0xc3f5x18){return _0xc3f5x18[_0xb269[46]](_0xc3f5x22)[_0xb269[45]](function(_0xc3f5x23){logger[_0xb269[24]](_0xb269[22],_0xc3f5x17,_0xc3f5x16,_0xb269[44]);logger[_0xb269[26]](_0xb269[25],_0xc3f5x17,_0xc3f5x16,_0xb269[44],JSON[_0xb269[31]](_0xc3f5x18));return _0xc3f5x23})};return null}}function removeEntity(_0xc3f5x15,_0xc3f5x16,_0xc3f5x17){return function(_0xc3f5x18){if(_0xc3f5x18){return _0xc3f5x18[_0xb269[48]]()[_0xb269[45]](function(){logger[_0xb269[24]](_0xb269[22],_0xc3f5x17,_0xc3f5x16,_0xb269[47]);logger[_0xb269[26]](_0xb269[25],_0xc3f5x17,_0xc3f5x16,_0xb269[47],JSON[_0xb269[31]](_0xc3f5x18));_0xc3f5x15[_0xb269[29]](204)[_0xb269[28]]()})}}}function handleEntityNotFound(_0xc3f5x15,_0xc3f5x16,_0xc3f5x17){return function(_0xc3f5x18){if(!_0xc3f5x18){logger[_0xb269[50]](_0xb269[22],_0xc3f5x17,404,_0xb269[49]);_0xc3f5x15[_0xb269[29]](404)[_0xb269[28]]();return null};return _0xc3f5x18}}function handleError(_0xc3f5x15,_0xc3f5x16,_0xc3f5x17){_0xc3f5x16= _0xc3f5x16|| 500;return function(_0xc3f5x27){logger[_0xb269[50]](_0xb269[22],_0xc3f5x17,_0xc3f5x16,JSON[_0xb269[31]](_0xc3f5x27));delete _0xc3f5x27[_0xb269[51]];_0xc3f5x15[_0xb269[29]](_0xc3f5x16)[_0xb269[52]](_0xc3f5x27)}}exports[_0xb269[53]]= function(_0xc3f5x28,_0xc3f5x15){var _0xc3f5x1b={raw:true,where:{id:_0xc3f5x28[_0xb269[55]][_0xb269[54]]}},_0xc3f5x29={};_0xc3f5x29[_0xb269[56]]= _[_0xb269[59]](db[_0xb269[58]][_0xb269[57]]);_0xc3f5x29[_0xb269[60]]= _[_0xb269[59]](_0xc3f5x28[_0xb269[60]]);_0xc3f5x29[_0xb269[61]]= _[_0xb269[62]](_0xc3f5x29[_0xb269[56]],_0xc3f5x29[_0xb269[60]]);_0xc3f5x1b[_0xb269[63]]= _[_0xb269[62]](_0xc3f5x29[_0xb269[56]],qs[_0xb269[64]](_0xc3f5x28[_0xb269[60]][_0xb269[64]]));_0xc3f5x1b[_0xb269[63]]= (_0xc3f5x1b[_0xb269[63]][_0xb269[65]])?_0xc3f5x1b[_0xb269[63]]:_0xc3f5x29[_0xb269[56]];_0xc3f5x1b= _[_0xb269[67]]({},_0xc3f5x1b,_0xc3f5x28[_0xb269[66]]);return db[_0xb269[58]][_0xb269[69]](_0xc3f5x1b)[_0xb269[45]](handleEntityNotFound(_0xc3f5x15,null,_0xb269[53]))[_0xb269[45]](respondWithResult(_0xc3f5x15,null,_0xb269[53]))[_0xb269[68]](handleError(_0xc3f5x15,null,_0xb269[53]))};exports[_0xb269[46]]= function(_0xc3f5x28,_0xc3f5x15){if(_0xc3f5x28[_0xb269[70]][_0xb269[54]]){delete _0xc3f5x28[_0xb269[70]][_0xb269[54]]};return db[_0xb269[58]][_0xb269[69]]({where:{id:_0xc3f5x28[_0xb269[55]][_0xb269[54]]}})[_0xb269[45]](handleEntityNotFound(_0xc3f5x15,null,_0xb269[46]))[_0xb269[45]](saveUpdates(_0xc3f5x28[_0xb269[70]],null,_0xb269[46]))[_0xb269[45]](respondWithResult(_0xc3f5x15,null,_0xb269[46]))[_0xb269[68]](handleError(_0xc3f5x15,null,_0xb269[46]))};exports[_0xb269[48]]= function(_0xc3f5x28,_0xc3f5x15){return db[_0xb269[58]][_0xb269[69]]({where:{id:_0xc3f5x28[_0xb269[55]][_0xb269[54]]}})[_0xb269[45]](handleEntityNotFound(_0xc3f5x15,null,_0xb269[48]))[_0xb269[45]](removeEntity(_0xc3f5x15,null,_0xb269[48]))[_0xb269[68]](handleError(_0xc3f5x15,null,_0xb269[48]))}
\ No newline at end of file
diff --git a/server/api/chatVisitor/chatVisitor.model.js b/server/api/chatVisitor/chatVisitor.model.js
new file mode 100644 (file)
index 0000000..8912ea5
--- /dev/null
@@ -0,0 +1 @@
+var _0xb016=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x63\x68\x61\x74\x5F\x76\x69\x73\x69\x74\x6F\x72\x73","\x64\x65\x66\x69\x6E\x65"];_0xb016[0];var _=require(_0xb016[1]);var util=require(_0xb016[2]);var logger=require(_0xb016[4])(_0xb016[3]);var attributes=require(_0xb016[5]);module[_0xb016[6]]= function(_0x86b6x5,_0x86b6x6){return _0x86b6x5[_0xb016[9]](_0xb016[7],attributes,{tableName:_0xb016[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/chatVisitor/chatVisitor.rpc.js b/server/api/chatVisitor/chatVisitor.rpc.js
new file mode 100644 (file)
index 0000000..dfc5094
--- /dev/null
@@ -0,0 +1 @@
+var _0x1603=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1603[0];var _=require(_0x1603[1]);var util=require(_0x1603[2]);var moment=require(_0x1603[3]);var BPromise=require(_0x1603[4]);var db=require(_0x1603[6])[_0x1603[5]];var utils=require(_0x1603[7]);var logger=require(_0x1603[9])(_0x1603[8]);var jayson=require(_0x1603[10]);var client=jayson[_0x1603[12]][_0x1603[11]]({port:9002});function respondWithRpcPromise(_0x9223xb,_0x9223xc,_0x9223xd){return  new BPromise(function(_0x9223xe,_0x9223xf){return client[_0x1603[25]](_0x9223xb,_0x9223xd)[_0x1603[24]](function(_0x9223x11){logger[_0x1603[17]](_0x1603[13],_0x9223xc,_0x1603[16]);logger[_0x1603[20]](_0x1603[18],_0x9223xc,_0x1603[16],JSON[_0x1603[19]](_0x9223x11));if(_0x9223x11[_0x1603[14]]){if(_0x9223x11[_0x1603[14]][_0x1603[21]]=== 500){logger[_0x1603[14]](_0x1603[13],_0x9223xc,_0x9223x11[_0x1603[14]][_0x1603[22]]);return _0x9223xf(_0x9223x11[_0x1603[14]][_0x1603[22]])};logger[_0x1603[14]](_0x1603[13],_0x9223xc,_0x9223x11[_0x1603[14]][_0x1603[22]]);return _0x9223xe(_0x9223x11[_0x1603[14]][_0x1603[22]])}else {logger[_0x1603[17]](_0x1603[13],_0x9223xc,_0x1603[16]);_0x9223xe(_0x9223x11[_0x1603[23]][_0x1603[22]])}})[_0x1603[15]](function(_0x9223x10){logger[_0x1603[14]](_0x1603[13],_0x9223xc,_0x9223x10);_0x9223xf(_0x9223x10)})})}
\ No newline at end of file
diff --git a/server/api/chatVisitor/index.js b/server/api/chatVisitor/index.js
new file mode 100644 (file)
index 0000000..694cc3d
--- /dev/null
@@ -0,0 +1 @@
+var _0x831c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x831c[0];var multer=require(_0x831c[1]);var util=require(_0x831c[2]);var path=require(_0x831c[3]);var express=require(_0x831c[4]);var router=express.Router();var auth=require(_0x831c[5]);var config=require(_0x831c[6]);var controller=require(_0x831c[7]);router[_0x831c[11]](_0x831c[8],auth[_0x831c[9]](),controller[_0x831c[10]]);router[_0x831c[13]](_0x831c[8],auth[_0x831c[9]](),controller[_0x831c[12]]);router[_0x831c[15]](_0x831c[8],auth[_0x831c[9]](),controller[_0x831c[14]]);module[_0x831c[16]]= router
\ No newline at end of file
diff --git a/server/api/chatWebsite/chatWebsite.attributes.js b/server/api/chatWebsite/chatWebsite.attributes.js
new file mode 100644 (file)
index 0000000..39cdfa4
--- /dev/null
@@ -0,0 +1 @@
+var _0x1d90=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x61\x64\x64\x72\x65\x73\x73","\x23\x30\x30\x30\x30\x38\x30","\x42\x4F\x4F\x4C\x45\x41\x4E","\x72\x6F\x75\x6E\x64\x65\x64","\x73\x71\x75\x61\x72\x65\x64","\x57\x65\x20\x61\x72\x65\x20\x68\x65\x72\x65\x21","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x51\x75\x65\x73\x74\x69\x6F\x6E\x73\x3F\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x6E\x73\x65\x72\x74\x20\x79\x6F\x75\x72\x20\x6E\x61\x6D\x65\x20\x61\x6E\x64\x20\x65\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73\x20\x74\x6F\x20\x73\x74\x61\x72\x74\x20\x61\x20\x6C\x69\x76\x65\x2D\x63\x68\x61\x74\x20\x77\x69\x74\x68\x20\x6F\x75\x72\x20\x73\x75\x70\x70\x6F\x72\x74\x20\x74\x65\x61\x6D\x2E","\x59\x6F\x75\x72\x20\x6E\x61\x6D\x65","\x59\x6F\x75\x72\x20\x65\x2D\x6D\x61\x69\x6C\x20\x61\x64\x64\x72\x65\x73\x73","\x43\x68\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x20\x75\x73","\x3C\x73\x74\x72\x6F\x6E\x67\x3E\x57\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x6F\x6E\x6C\x69\x6E\x65\x2E\x3C\x2F\x73\x74\x72\x6F\x6E\x67\x3E\x3C\x62\x72\x20\x2F\x3E\x49\x74\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x6D\x65\x61\x6E\x20\x77\x65\x27\x72\x65\x20\x6E\x6F\x74\x20\x74\x68\x65\x72\x65\x20\x74\x6F\x20\x68\x65\x6C\x70\x20\x2D\x20\x6C\x65\x61\x76\x65\x20\x79\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x20\x62\x65\x6C\x6F\x77\x20\x61\x6E\x64\x20\x77\x65\x27\x6C\x6C\x20\x62\x65\x20\x69\x6E\x20\x74\x6F\x75\x63\x68\x20\x61\x73\x20\x73\x6F\x6F\x6E\x20\x61\x73\x20\x70\x6F\x73\x73\x69\x62\x6C\x65\x2E","\x59\x6F\x75\x72\x20\x6D\x65\x73\x73\x61\x67\x65\x2E\x2E\x2E","\x4C\x65\x61\x76\x65\x20\x6D\x65\x73\x73\x61\x67\x65","\x57\x6F\x75\x6C\x64\x20\x79\x6F\x75\x20\x6C\x69\x6B\x65\x20\x72\x61\x74\x65\x20\x74\x68\x69\x73\x20\x63\x68\x61\x74\x3F","\x53\x65\x6E\x64","\x53\x6B\x69\x70","\x49\x4E\x54\x45\x47\x45\x52","\x49\x6E\x20\x74\x68\x69\x73\x20\x6D\x6F\x6D\x65\x6E\x74\x20\x61\x6C\x6C\x20\x61\x67\x65\x6E\x74\x73\x20\x61\x72\x65\x20\x62\x75\x73\x79\x2E\x20\x54\x72\x79\x20\x61\x67\x61\x69\x6E\x21","\x4E\x61\x6D\x65","\x45\x6D\x61\x69\x6C\x20\x41\x64\x64\x72\x65\x73\x73","\x4D\x65\x73\x73\x61\x67\x65","\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x78\x43\x41\x4C\x4C\x59","\x47\x45\x54","\x50\x4F\x53\x54","\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x1d90[0];var Sequelize=require(_0x1d90[1]);module[_0x1d90[2]]= {name:{type:Sequelize[_0x1d90[3]],allowNull:false},address:{type:Sequelize[_0x1d90[3]],allowNull:false,unique:_0x1d90[4]},description:{type:Sequelize[_0x1d90[3]]},color:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[5]},color_focus:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[5]},color_button:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[5]},remote:{type:Sequelize[_0x1d90[3]]},animation:{type:Sequelize[_0x1d90[6]],defaultValue:true},header_shape:{type:Sequelize.ENUM(_0x1d90[7],_0x1d90[8]),defaultValue:_0x1d90[7]},header_online:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[9]},online_message:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[10]},username_placeholder:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[11]},email_placeholder:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[12]},start_chat_button:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[13]},header_offline:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[14]},offline_message:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[15]},enquiry_message_placeholder:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[16]},enquiry_button:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[17]},download_transcript:{type:Sequelize[_0x1d90[6]],defaultValue:true},enquiry_forwarding:{type:Sequelize[_0x1d90[6]],defaultValue:false},enquiry_forwarding_address:{type:Sequelize[_0x1d90[3]]},enquiry_enable:{type:Sequelize[_0x1d90[6]],defaultValue:true},rating_enable:{type:Sequelize[_0x1d90[6]],defaultValue:true},rating_message:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[18]},rating_send:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[19]},rating_skip:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[20]},show_service_name:{type:Sequelize[_0x1d90[6]],defaultValue:false},service_name:{type:Sequelize[_0x1d90[3]]},fidelity:{type:Sequelize[_0x1d90[6]],defaultValue:false},timeout:{type:Sequelize[_0x1d90[21]],defaultValue:0},agents_busy:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[22]},name_title:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[23]},email_title:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[24]},message_title:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[25]},logo:{type:Sequelize[_0x1d90[3]]},defaultLogo:{type:Sequelize[_0x1d90[6]],defaultValue:true},whiteLabel:{type:Sequelize[_0x1d90[3]],defaultValue:_0x1d90[26]},defaultWhiteLabel:{type:Sequelize[_0x1d90[6]],defaultValue:true},acceptUrl:{type:Sequelize[_0x1d90[3]]},rejectUrl:{type:Sequelize[_0x1d90[3]]},closeUrl:{type:Sequelize[_0x1d90[3]]},closeMethod:{type:Sequelize.ENUM(_0x1d90[27],_0x1d90[28])},acceptMethod:{type:Sequelize.ENUM(_0x1d90[27],_0x1d90[28])},rejectMethod:{type:Sequelize.ENUM(_0x1d90[27],_0x1d90[28])},actions:{type:Sequelize[_0x1d90[3]],get:function(){return this[_0x1d90[30]](_0x1d90[29])?JSON[_0x1d90[31]](this[_0x1d90[30]](_0x1d90[29])):[]},set:function(_0x9347x2){return this[_0x1d90[33]](_0x1d90[29],JSON[_0x1d90[32]](_0x9347x2))}}}
\ No newline at end of file
diff --git a/server/api/chatWebsite/chatWebsite.controller.js b/server/api/chatWebsite/chatWebsite.controller.js
new file mode 100644 (file)
index 0000000..bc83736
--- /dev/null
@@ -0,0 +1 @@
+var _0xe6c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x49\x64","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x67\x65\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x61\x64\x64\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x73","\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x67\x65\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64"];_0xe6c6[0];var jsonpatch=require(_0xe6c6[1]);var rp=require(_0xe6c6[2]);var moment=require(_0xe6c6[3]);var BPromise=require(_0xe6c6[4]);var util=require(_0xe6c6[5]);var path=require(_0xe6c6[6]);var sox=require(_0xe6c6[7]);var ejs=require(_0xe6c6[8]);var fs=require(_0xe6c6[9]);var _=require(_0xe6c6[10]);var squel=require(_0xe6c6[11]);var crypto=require(_0xe6c6[12]);var jsforce=require(_0xe6c6[13]);var toCsv=require(_0xe6c6[14]);var qs=require(_0xe6c6[15]);var logger=require(_0xe6c6[17])(_0xe6c6[16]);var utils=require(_0xe6c6[18]);var config=require(_0xe6c6[19]);var db=require(_0xe6c6[21])[_0xe6c6[20]];function respondWithStatusCode(_0x9a51x15,_0x9a51x16,_0x9a51x17){_0x9a51x16= _0x9a51x16|| 204;return function(_0x9a51x18){if(_0x9a51x18){logger[_0xe6c6[24]](_0xe6c6[22],_0x9a51x17,_0x9a51x16,_0xe6c6[23]);logger[_0xe6c6[26]](_0xe6c6[25],_0x9a51x17,_0x9a51x16,_0xe6c6[23]);return _0x9a51x15[_0xe6c6[27]](_0x9a51x16)};return _0x9a51x15[_0xe6c6[29]](304)[_0xe6c6[28]]()}}function respondWithResult(_0x9a51x15,_0x9a51x16,_0x9a51x17){_0x9a51x16= _0x9a51x16|| 200;return function(_0x9a51x18){if(_0x9a51x18){logger[_0xe6c6[24]](_0xe6c6[22],_0x9a51x17,_0x9a51x16,_0xe6c6[30]);logger[_0xe6c6[26]](_0xe6c6[25],_0x9a51x17,_0x9a51x16,_0xe6c6[30],JSON[_0xe6c6[31]](_0x9a51x18));return _0x9a51x15[_0xe6c6[29]](_0x9a51x16)[_0xe6c6[32]](_0x9a51x18)};return _0x9a51x15[_0xe6c6[29]](304)[_0xe6c6[28]]()}}function respondWithFilteredResult(_0x9a51x15,_0x9a51x1b,_0x9a51x17){return function(_0x9a51x18){if(_0x9a51x18){var _0x9a51x1c=_0x9a51x18[_0xe6c6[33]],_0x9a51x1d=_0x9a51x1b[_0xe6c6[34]],_0x9a51x1e=_0x9a51x1b[_0xe6c6[34]]+ _0x9a51x1b[_0xe6c6[35]],_0x9a51x16;if(_0x9a51x1e>= _0x9a51x1c){_0x9a51x1e= _0x9a51x1c;_0x9a51x16= 200}else {_0x9a51x16= 206};_0x9a51x15[_0xe6c6[29]](_0x9a51x16);logger[_0xe6c6[24]](_0xe6c6[22],_0x9a51x17,_0x9a51x16,_0xe6c6[36]);logger[_0xe6c6[26]](_0xe6c6[25],_0x9a51x17,_0x9a51x16,_0xe6c6[30],JSON[_0xe6c6[31]](_0x9a51x18));return _0x9a51x15[_0xe6c6[40]](_0xe6c6[37],_0x9a51x1d+ _0xe6c6[38]+ _0x9a51x1e+ _0xe6c6[39]+ _0x9a51x1c)[_0xe6c6[32]](_0x9a51x18)};return null}}function patchUpdates(_0x9a51x20){return function(_0x9a51x18){try{jsonpatch[_0xe6c6[41]](_0x9a51x18,_0x9a51x20,true)}catch(err){return BPromise[_0xe6c6[42]](err)};return _0x9a51x18[_0xe6c6[43]]()}}function saveUpdates(_0x9a51x22,_0x9a51x16,_0x9a51x17){return function(_0x9a51x18){if(_0x9a51x18){return _0x9a51x18[_0xe6c6[46]](_0x9a51x22)[_0xe6c6[45]](function(_0x9a51x23){logger[_0xe6c6[24]](_0xe6c6[22],_0x9a51x17,_0x9a51x16,_0xe6c6[44]);logger[_0xe6c6[26]](_0xe6c6[25],_0x9a51x17,_0x9a51x16,_0xe6c6[44],JSON[_0xe6c6[31]](_0x9a51x18));return _0x9a51x23})};return null}}function removeEntity(_0x9a51x15,_0x9a51x16,_0x9a51x17){return function(_0x9a51x18){if(_0x9a51x18){return _0x9a51x18[_0xe6c6[48]]()[_0xe6c6[45]](function(){logger[_0xe6c6[24]](_0xe6c6[22],_0x9a51x17,_0x9a51x16,_0xe6c6[47]);logger[_0xe6c6[26]](_0xe6c6[25],_0x9a51x17,_0x9a51x16,_0xe6c6[47],JSON[_0xe6c6[31]](_0x9a51x18));_0x9a51x15[_0xe6c6[29]](204)[_0xe6c6[28]]()})}}}function handleEntityNotFound(_0x9a51x15,_0x9a51x16,_0x9a51x17){return function(_0x9a51x18){if(!_0x9a51x18){logger[_0xe6c6[50]](_0xe6c6[22],_0x9a51x17,404,_0xe6c6[49]);_0x9a51x15[_0xe6c6[29]](404)[_0xe6c6[28]]();return null};return _0x9a51x18}}function handleError(_0x9a51x15,_0x9a51x16,_0x9a51x17){_0x9a51x16= _0x9a51x16|| 500;return function(_0x9a51x27){logger[_0xe6c6[50]](_0xe6c6[22],_0x9a51x17,_0x9a51x16,JSON[_0xe6c6[31]](_0x9a51x27));delete _0x9a51x27[_0xe6c6[51]];_0x9a51x15[_0xe6c6[29]](_0x9a51x16)[_0xe6c6[52]](_0x9a51x27)}}exports[_0xe6c6[53]]= function(_0x9a51x28,_0x9a51x15){var _0x9a51x1b={},_0x9a51x29={};_0x9a51x29[_0xe6c6[54]]= _[_0xe6c6[57]](db[_0xe6c6[56]][_0xe6c6[55]]);_0x9a51x29[_0xe6c6[58]]= _[_0xe6c6[57]](_0x9a51x28[_0xe6c6[58]]);_0x9a51x29[_0xe6c6[59]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],_0x9a51x29[_0xe6c6[58]]);_0x9a51x1b[_0xe6c6[61]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],qs[_0xe6c6[62]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[62]]));_0x9a51x1b[_0xe6c6[61]]= (_0x9a51x1b[_0xe6c6[61]][_0xe6c6[63]])?_0x9a51x1b[_0xe6c6[61]]:_0x9a51x29[_0xe6c6[54]];if(!_0x9a51x28[_0xe6c6[58]][_0xe6c6[65]](_0xe6c6[64])){_0x9a51x1b[_0xe6c6[35]]= qs[_0xe6c6[35]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[35]]);_0x9a51x1b[_0xe6c6[34]]= qs[_0xe6c6[34]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[34]])};_0x9a51x1b[_0xe6c6[66]]= qs[_0xe6c6[67]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[67]]);_0x9a51x1b[_0xe6c6[68]]= qs[_0xe6c6[59]](_[_0xe6c6[69]](_0x9a51x28[_0xe6c6[58]],_0x9a51x29[_0xe6c6[59]]));if(_0x9a51x28[_0xe6c6[58]][_0xe6c6[70]]){_0x9a51x1b[_0xe6c6[68]]= _[_0xe6c6[73]](_0x9a51x1b[_0xe6c6[68]],{$or:_[_0xe6c6[72]](_0x9a51x1b[_0xe6c6[61]],function(_0x9a51x2a){var _0x9a51x2b={};_0x9a51x2b[_0x9a51x2a]= {$like:_0xe6c6[71]+ _0x9a51x28[_0xe6c6[58]][_0xe6c6[70]]+ _0xe6c6[71]};return _0x9a51x2b})})};_0x9a51x1b= _[_0xe6c6[73]]({},_0x9a51x1b,_0x9a51x28[_0xe6c6[74]]);return db[_0xe6c6[56]][_0xe6c6[76]](_0x9a51x1b)[_0xe6c6[45]](respondWithFilteredResult(_0x9a51x15,_0x9a51x1b,_0xe6c6[53]))[_0xe6c6[75]](handleError(_0x9a51x15,null,_0xe6c6[53]))};exports[_0xe6c6[77]]= function(_0x9a51x28,_0x9a51x15){var _0x9a51x1b={raw:false,where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}},_0x9a51x29={};_0x9a51x29[_0xe6c6[54]]= _[_0xe6c6[57]](db[_0xe6c6[56]][_0xe6c6[55]]);_0x9a51x29[_0xe6c6[58]]= _[_0xe6c6[57]](_0x9a51x28[_0xe6c6[58]]);_0x9a51x29[_0xe6c6[59]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],_0x9a51x29[_0xe6c6[58]]);_0x9a51x1b[_0xe6c6[61]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],qs[_0xe6c6[62]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[62]]));_0x9a51x1b[_0xe6c6[61]]= (_0x9a51x1b[_0xe6c6[61]][_0xe6c6[63]])?_0x9a51x1b[_0xe6c6[61]]:_0x9a51x29[_0xe6c6[54]];_0x9a51x1b= _[_0xe6c6[73]]({},_0x9a51x1b,_0x9a51x28[_0xe6c6[74]]);return db[_0xe6c6[56]][_0xe6c6[80]](_0x9a51x1b)[_0xe6c6[45]](handleEntityNotFound(_0x9a51x15,null,_0xe6c6[77]))[_0xe6c6[45]](respondWithResult(_0x9a51x15,null,_0xe6c6[77]))[_0xe6c6[75]](handleError(_0x9a51x15,null,_0xe6c6[77]))};exports[_0xe6c6[81]]= function(_0x9a51x28,_0x9a51x15){return db[_0xe6c6[56]][_0xe6c6[81]](_0x9a51x28[_0xe6c6[82]],{})[_0xe6c6[45]](respondWithResult(_0x9a51x15,201,_0xe6c6[81]))[_0xe6c6[75]](handleError(_0x9a51x15,null,_0xe6c6[81]))};exports[_0xe6c6[46]]= function(_0x9a51x28,_0x9a51x15){if(_0x9a51x28[_0xe6c6[82]][_0xe6c6[78]]){delete _0x9a51x28[_0xe6c6[82]][_0xe6c6[78]]};return db[_0xe6c6[56]][_0xe6c6[80]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x15,null,_0xe6c6[46]))[_0xe6c6[45]](saveUpdates(_0x9a51x28[_0xe6c6[82]],null,_0xe6c6[46]))[_0xe6c6[45]](respondWithResult(_0x9a51x15,null,_0xe6c6[46]))[_0xe6c6[75]](handleError(_0x9a51x15,null,_0xe6c6[46]))};exports[_0xe6c6[48]]= function(_0x9a51x28,_0x9a51x15){return db[_0xe6c6[56]][_0xe6c6[80]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x15,null,_0xe6c6[48]))[_0xe6c6[45]](removeEntity(_0x9a51x15,null,_0xe6c6[48]))[_0xe6c6[75]](handleError(_0x9a51x15,null,_0xe6c6[48]))};exports[_0xe6c6[83]]= function(_0x9a51x28,_0x9a51x15,_0x9a51x2c){return db[_0xe6c6[86]][_0xe6c6[80]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x15,null,_0xe6c6[83]))[_0xe6c6[45]](function(_0x9a51x18){if(_0x9a51x18){return _0x9a51x18[_0xe6c6[83]](_0x9a51x28[_0xe6c6[82]][_0xe6c6[84]],_[_0xe6c6[85]](_0x9a51x28[_0xe6c6[82]],[_0xe6c6[84],_0xe6c6[78]])|| {})};return null})[_0xe6c6[45]](respondWithResult(_0x9a51x15,null,_0xe6c6[83]))[_0xe6c6[75]](handleError(_0x9a51x15,null,_0xe6c6[83]))};exports[_0xe6c6[87]]= function(_0x9a51x28,_0x9a51x18,_0x9a51x2c){var _0x9a51x1b={};var _0x9a51x29={};var _0x9a51x2d;var _0x9a51x1c;return db[_0xe6c6[56]][_0xe6c6[88]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x18,null,_0xe6c6[87]))[_0xe6c6[45]](function(_0x9a51x18){if(_0x9a51x18){_0x9a51x2d= _0x9a51x18;_0x9a51x29[_0xe6c6[54]]= _[_0xe6c6[57]](db[_0xe6c6[86]][_0xe6c6[55]]);_0x9a51x29[_0xe6c6[58]]= _[_0xe6c6[57]](_0x9a51x28[_0xe6c6[58]]);_0x9a51x29[_0xe6c6[59]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],_0x9a51x29[_0xe6c6[58]]);_0x9a51x1b[_0xe6c6[61]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],qs[_0xe6c6[62]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[62]]));_0x9a51x1b[_0xe6c6[61]]= (_0x9a51x1b[_0xe6c6[61]][_0xe6c6[63]])?_0x9a51x1b[_0xe6c6[61]]:_0x9a51x29[_0xe6c6[54]];_0x9a51x1b[_0xe6c6[66]]= qs[_0xe6c6[67]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[67]]);_0x9a51x1b[_0xe6c6[68]]= qs[_0xe6c6[59]](_[_0xe6c6[69]](_0x9a51x28[_0xe6c6[58]],_0x9a51x29[_0xe6c6[59]]));if(_0x9a51x28[_0xe6c6[58]][_0xe6c6[70]]){_0x9a51x1b[_0xe6c6[68]]= _[_0xe6c6[73]](_0x9a51x1b[_0xe6c6[68]],{$or:_[_0xe6c6[72]](_0x9a51x1b[_0xe6c6[61]],function(_0x9a51x2a){var _0x9a51x2b={};_0x9a51x2b[_0x9a51x2a]= {$like:_0xe6c6[71]+ _0x9a51x28[_0xe6c6[58]][_0xe6c6[70]]+ _0xe6c6[71]};return _0x9a51x2b})})};_0x9a51x1b= _[_0xe6c6[73]]({},_0x9a51x1b,_0x9a51x28[_0xe6c6[74]]);return _0x9a51x2d[_0xe6c6[87]](_0x9a51x1b)}})[_0xe6c6[45]](function(_0x9a51x2f){if(_0x9a51x2f){_0x9a51x1c= _0x9a51x2f[_0xe6c6[63]];if(!_0x9a51x28[_0xe6c6[58]][_0xe6c6[65]](_0xe6c6[64])){_0x9a51x1b[_0xe6c6[35]]= qs[_0xe6c6[35]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[35]]);_0x9a51x1b[_0xe6c6[34]]= qs[_0xe6c6[34]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[34]])};return _0x9a51x2d[_0xe6c6[87]](_0x9a51x1b)}})[_0xe6c6[45]](function(_0x9a51x2e){return _0x9a51x2e?{count:_0x9a51x1c,rows:_0x9a51x2e}:null})[_0xe6c6[45]](respondWithResult(_0x9a51x18,null,_0xe6c6[87]))[_0xe6c6[75]](handleError(_0x9a51x18,null,_0xe6c6[87]))};exports[_0xe6c6[89]]= function(_0x9a51x28,_0x9a51x15,_0x9a51x2c){return db[_0xe6c6[90]][_0xe6c6[80]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x15,null,_0xe6c6[89]))[_0xe6c6[45]](function(_0x9a51x18){if(_0x9a51x18){return _0x9a51x18[_0xe6c6[89]](_0x9a51x28[_0xe6c6[82]][_0xe6c6[84]],_[_0xe6c6[85]](_0x9a51x28[_0xe6c6[82]],[_0xe6c6[84],_0xe6c6[78]])|| {})};return null})[_0xe6c6[45]](respondWithResult(_0x9a51x15,null,_0xe6c6[89]))[_0xe6c6[75]](handleError(_0x9a51x15,null,_0xe6c6[89]))};exports[_0xe6c6[91]]= function(_0x9a51x28,_0x9a51x18,_0x9a51x2c){var _0x9a51x1b={};var _0x9a51x29={};var _0x9a51x2d;var _0x9a51x1c;return db[_0xe6c6[56]][_0xe6c6[88]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x18,null,_0xe6c6[91]))[_0xe6c6[45]](function(_0x9a51x18){if(_0x9a51x18){_0x9a51x2d= _0x9a51x18;_0x9a51x29[_0xe6c6[54]]= _[_0xe6c6[57]](db[_0xe6c6[92]][_0xe6c6[55]]);_0x9a51x29[_0xe6c6[58]]= _[_0xe6c6[57]](_0x9a51x28[_0xe6c6[58]]);_0x9a51x29[_0xe6c6[59]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],_0x9a51x29[_0xe6c6[58]]);_0x9a51x1b[_0xe6c6[61]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],qs[_0xe6c6[62]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[62]]));_0x9a51x1b[_0xe6c6[61]]= (_0x9a51x1b[_0xe6c6[61]][_0xe6c6[63]])?_0x9a51x1b[_0xe6c6[61]]:_0x9a51x29[_0xe6c6[54]];_0x9a51x1b[_0xe6c6[66]]= qs[_0xe6c6[67]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[67]]);_0x9a51x1b[_0xe6c6[68]]= qs[_0xe6c6[59]](_[_0xe6c6[69]](_0x9a51x28[_0xe6c6[58]],_0x9a51x29[_0xe6c6[59]]));if(_0x9a51x28[_0xe6c6[58]][_0xe6c6[70]]){_0x9a51x1b[_0xe6c6[68]]= _[_0xe6c6[73]](_0x9a51x1b[_0xe6c6[68]],{$or:_[_0xe6c6[72]](_0x9a51x1b[_0xe6c6[61]],function(_0x9a51x2a){var _0x9a51x2b={};_0x9a51x2b[_0x9a51x2a]= {$like:_0xe6c6[71]+ _0x9a51x28[_0xe6c6[58]][_0xe6c6[70]]+ _0xe6c6[71]};return _0x9a51x2b})})};_0x9a51x1b= _[_0xe6c6[73]]({},_0x9a51x1b,_0x9a51x28[_0xe6c6[74]]);return _0x9a51x2d[_0xe6c6[91]](_0x9a51x1b)}})[_0xe6c6[45]](function(_0x9a51x2f){if(_0x9a51x2f){_0x9a51x1c= _0x9a51x2f[_0xe6c6[63]];if(!_0x9a51x28[_0xe6c6[58]][_0xe6c6[65]](_0xe6c6[64])){_0x9a51x1b[_0xe6c6[35]]= qs[_0xe6c6[35]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[35]]);_0x9a51x1b[_0xe6c6[34]]= qs[_0xe6c6[34]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[34]])};return _0x9a51x2d[_0xe6c6[91]](_0x9a51x1b)}})[_0xe6c6[45]](function(_0x9a51x2e){return _0x9a51x2e?{count:_0x9a51x1c,rows:_0x9a51x2e}:null})[_0xe6c6[45]](respondWithResult(_0x9a51x18,null,_0xe6c6[91]))[_0xe6c6[75]](handleError(_0x9a51x18,null,_0xe6c6[91]))};exports[_0xe6c6[93]]= function(_0x9a51x28,_0x9a51x15,_0x9a51x2c){if(_0x9a51x28[_0xe6c6[82]][_0xe6c6[78]]){delete _0x9a51x28[_0xe6c6[82]][_0xe6c6[78]]};return db[_0xe6c6[56]][_0xe6c6[80]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x15,null,_0xe6c6[93]))[_0xe6c6[45]](function(_0x9a51x18){if(_0x9a51x18){_0x9a51x28[_0xe6c6[82]][_0xe6c6[94]]= _0x9a51x18[_0xe6c6[78]];return db[_0xe6c6[95]][_0xe6c6[81]](_0x9a51x28[_0xe6c6[82]])}})[_0xe6c6[45]](respondWithResult(_0x9a51x15,null,_0xe6c6[93]))[_0xe6c6[75]](handleError(_0x9a51x15,null,_0xe6c6[93]))};exports[_0xe6c6[96]]= function(_0x9a51x28,_0x9a51x15,_0x9a51x2c){return db[_0xe6c6[97]][_0xe6c6[80]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x15,null,_0xe6c6[96]))[_0xe6c6[45]](function(_0x9a51x18){if(_0x9a51x18){return _0x9a51x18[_0xe6c6[96]](_0x9a51x28[_0xe6c6[82]][_0xe6c6[84]],_[_0xe6c6[85]](_0x9a51x28[_0xe6c6[82]],[_0xe6c6[84],_0xe6c6[78]])|| {})};return null})[_0xe6c6[45]](respondWithResult(_0x9a51x15,null,_0xe6c6[96]))[_0xe6c6[75]](handleError(_0x9a51x15,null,_0xe6c6[96]))};exports[_0xe6c6[98]]= function(_0x9a51x28,_0x9a51x18,_0x9a51x2c){var _0x9a51x1b={};var _0x9a51x29={};var _0x9a51x2d;var _0x9a51x1c;return db[_0xe6c6[56]][_0xe6c6[88]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x18,null,_0xe6c6[98]))[_0xe6c6[45]](function(_0x9a51x18){if(_0x9a51x18){_0x9a51x2d= _0x9a51x18;_0x9a51x29[_0xe6c6[54]]= _[_0xe6c6[57]](db[_0xe6c6[95]][_0xe6c6[55]]);_0x9a51x29[_0xe6c6[58]]= _[_0xe6c6[57]](_0x9a51x28[_0xe6c6[58]]);_0x9a51x29[_0xe6c6[59]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],_0x9a51x29[_0xe6c6[58]]);_0x9a51x1b[_0xe6c6[61]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],qs[_0xe6c6[62]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[62]]));_0x9a51x1b[_0xe6c6[61]]= (_0x9a51x1b[_0xe6c6[61]][_0xe6c6[63]])?_0x9a51x1b[_0xe6c6[61]]:_0x9a51x29[_0xe6c6[54]];_0x9a51x1b[_0xe6c6[66]]= qs[_0xe6c6[67]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[67]]);_0x9a51x1b[_0xe6c6[68]]= qs[_0xe6c6[59]](_[_0xe6c6[69]](_0x9a51x28[_0xe6c6[58]],_0x9a51x29[_0xe6c6[59]]));if(_0x9a51x28[_0xe6c6[58]][_0xe6c6[70]]){_0x9a51x1b[_0xe6c6[68]]= _[_0xe6c6[73]](_0x9a51x1b[_0xe6c6[68]],{$or:_[_0xe6c6[72]](_0x9a51x1b[_0xe6c6[61]],function(_0x9a51x2a){var _0x9a51x2b={};_0x9a51x2b[_0x9a51x2a]= {$like:_0xe6c6[71]+ _0x9a51x28[_0xe6c6[58]][_0xe6c6[70]]+ _0xe6c6[71]};return _0x9a51x2b})})};_0x9a51x1b= _[_0xe6c6[73]]({},_0x9a51x1b,_0x9a51x28[_0xe6c6[74]]);return _0x9a51x2d[_0xe6c6[98]](_0x9a51x1b)}})[_0xe6c6[45]](function(_0x9a51x2f){if(_0x9a51x2f){_0x9a51x1c= _0x9a51x2f[_0xe6c6[63]];if(!_0x9a51x28[_0xe6c6[58]][_0xe6c6[65]](_0xe6c6[64])){_0x9a51x1b[_0xe6c6[35]]= qs[_0xe6c6[35]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[35]]);_0x9a51x1b[_0xe6c6[34]]= qs[_0xe6c6[34]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[34]])};return _0x9a51x2d[_0xe6c6[98]](_0x9a51x1b)}})[_0xe6c6[45]](function(_0x9a51x2e){return _0x9a51x2e?{count:_0x9a51x1c,rows:_0x9a51x2e}:null})[_0xe6c6[45]](respondWithResult(_0x9a51x18,null,_0xe6c6[98]))[_0xe6c6[75]](handleError(_0x9a51x18,null,_0xe6c6[98]))};exports[_0xe6c6[99]]= function(_0x9a51x28,_0x9a51x15,_0x9a51x2c){return db[_0xe6c6[100]][_0xe6c6[80]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x15,null,_0xe6c6[99]))[_0xe6c6[45]](function(_0x9a51x18){if(_0x9a51x18){return _0x9a51x18[_0xe6c6[99]](_0x9a51x28[_0xe6c6[82]][_0xe6c6[84]],_[_0xe6c6[85]](_0x9a51x28[_0xe6c6[82]],[_0xe6c6[84],_0xe6c6[78]])|| {})};return null})[_0xe6c6[45]](respondWithResult(_0x9a51x15,null,_0xe6c6[99]))[_0xe6c6[75]](handleError(_0x9a51x15,null,_0xe6c6[99]))};exports[_0xe6c6[101]]= function(_0x9a51x28,_0x9a51x18,_0x9a51x2c){var _0x9a51x1b={};var _0x9a51x29={};var _0x9a51x2d;var _0x9a51x1c;return db[_0xe6c6[56]][_0xe6c6[88]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x18,null,_0xe6c6[101]))[_0xe6c6[45]](function(_0x9a51x18){if(_0x9a51x18){_0x9a51x2d= _0x9a51x18;_0x9a51x29[_0xe6c6[54]]= _[_0xe6c6[57]](db[_0xe6c6[102]][_0xe6c6[55]]);_0x9a51x29[_0xe6c6[58]]= _[_0xe6c6[57]](_0x9a51x28[_0xe6c6[58]]);_0x9a51x29[_0xe6c6[59]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],_0x9a51x29[_0xe6c6[58]]);_0x9a51x1b[_0xe6c6[61]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],qs[_0xe6c6[62]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[62]]));_0x9a51x1b[_0xe6c6[61]]= (_0x9a51x1b[_0xe6c6[61]][_0xe6c6[63]])?_0x9a51x1b[_0xe6c6[61]]:_0x9a51x29[_0xe6c6[54]];_0x9a51x1b[_0xe6c6[66]]= qs[_0xe6c6[67]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[67]]);_0x9a51x1b[_0xe6c6[68]]= qs[_0xe6c6[59]](_[_0xe6c6[69]](_0x9a51x28[_0xe6c6[58]],_0x9a51x29[_0xe6c6[59]]));if(_0x9a51x28[_0xe6c6[58]][_0xe6c6[70]]){_0x9a51x1b[_0xe6c6[68]]= _[_0xe6c6[73]](_0x9a51x1b[_0xe6c6[68]],{$or:_[_0xe6c6[72]](_0x9a51x1b[_0xe6c6[61]],function(_0x9a51x2a){var _0x9a51x2b={};_0x9a51x2b[_0x9a51x2a]= {$like:_0xe6c6[71]+ _0x9a51x28[_0xe6c6[58]][_0xe6c6[70]]+ _0xe6c6[71]};return _0x9a51x2b})})};_0x9a51x1b= _[_0xe6c6[73]]({},_0x9a51x1b,_0x9a51x28[_0xe6c6[74]]);return _0x9a51x2d[_0xe6c6[101]](_0x9a51x1b)}})[_0xe6c6[45]](function(_0x9a51x2f){if(_0x9a51x2f){_0x9a51x1c= _0x9a51x2f[_0xe6c6[63]];if(!_0x9a51x28[_0xe6c6[58]][_0xe6c6[65]](_0xe6c6[64])){_0x9a51x1b[_0xe6c6[35]]= qs[_0xe6c6[35]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[35]]);_0x9a51x1b[_0xe6c6[34]]= qs[_0xe6c6[34]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[34]])};return _0x9a51x2d[_0xe6c6[101]](_0x9a51x1b)}})[_0xe6c6[45]](function(_0x9a51x2e){return _0x9a51x2e?{count:_0x9a51x1c,rows:_0x9a51x2e}:null})[_0xe6c6[45]](respondWithResult(_0x9a51x18,null,_0xe6c6[101]))[_0xe6c6[75]](handleError(_0x9a51x18,null,_0xe6c6[101]))};exports[_0xe6c6[103]]= function(_0x9a51x28,_0x9a51x15,_0x9a51x2c){return db[_0xe6c6[104]][_0xe6c6[80]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x15,null,_0xe6c6[103]))[_0xe6c6[45]](function(_0x9a51x18){if(_0x9a51x18){return _0x9a51x18[_0xe6c6[103]](_0x9a51x28[_0xe6c6[82]][_0xe6c6[84]],_[_0xe6c6[85]](_0x9a51x28[_0xe6c6[82]],[_0xe6c6[84],_0xe6c6[78]])|| {})};return null})[_0xe6c6[45]](respondWithResult(_0x9a51x15,null,_0xe6c6[103]))[_0xe6c6[75]](handleError(_0x9a51x15,null,_0xe6c6[103]))};exports[_0xe6c6[105]]= function(_0x9a51x28,_0x9a51x18,_0x9a51x2c){var _0x9a51x1b={};var _0x9a51x29={};var _0x9a51x2d;var _0x9a51x1c;return db[_0xe6c6[56]][_0xe6c6[88]]({where:{id:_0x9a51x28[_0xe6c6[79]][_0xe6c6[78]]}})[_0xe6c6[45]](handleEntityNotFound(_0x9a51x18,null,_0xe6c6[105]))[_0xe6c6[45]](function(_0x9a51x18){if(_0x9a51x18){_0x9a51x2d= _0x9a51x18;_0x9a51x29[_0xe6c6[54]]= _[_0xe6c6[57]](db[_0xe6c6[106]][_0xe6c6[55]]);_0x9a51x29[_0xe6c6[58]]= _[_0xe6c6[57]](_0x9a51x28[_0xe6c6[58]]);_0x9a51x29[_0xe6c6[59]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],_0x9a51x29[_0xe6c6[58]]);_0x9a51x1b[_0xe6c6[61]]= _[_0xe6c6[60]](_0x9a51x29[_0xe6c6[54]],qs[_0xe6c6[62]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[62]]));_0x9a51x1b[_0xe6c6[61]]= (_0x9a51x1b[_0xe6c6[61]][_0xe6c6[63]])?_0x9a51x1b[_0xe6c6[61]]:_0x9a51x29[_0xe6c6[54]];_0x9a51x1b[_0xe6c6[66]]= qs[_0xe6c6[67]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[67]]);_0x9a51x1b[_0xe6c6[68]]= qs[_0xe6c6[59]](_[_0xe6c6[69]](_0x9a51x28[_0xe6c6[58]],_0x9a51x29[_0xe6c6[59]]));if(_0x9a51x28[_0xe6c6[58]][_0xe6c6[70]]){_0x9a51x1b[_0xe6c6[68]]= _[_0xe6c6[73]](_0x9a51x1b[_0xe6c6[68]],{$or:_[_0xe6c6[72]](_0x9a51x1b[_0xe6c6[61]],function(_0x9a51x2a){var _0x9a51x2b={};_0x9a51x2b[_0x9a51x2a]= {$like:_0xe6c6[71]+ _0x9a51x28[_0xe6c6[58]][_0xe6c6[70]]+ _0xe6c6[71]};return _0x9a51x2b})})};_0x9a51x1b= _[_0xe6c6[73]]({},_0x9a51x1b,_0x9a51x28[_0xe6c6[74]]);return _0x9a51x2d[_0xe6c6[105]](_0x9a51x1b)}})[_0xe6c6[45]](function(_0x9a51x2f){if(_0x9a51x2f){_0x9a51x1c= _0x9a51x2f[_0xe6c6[63]];if(!_0x9a51x28[_0xe6c6[58]][_0xe6c6[65]](_0xe6c6[64])){_0x9a51x1b[_0xe6c6[35]]= qs[_0xe6c6[35]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[35]]);_0x9a51x1b[_0xe6c6[34]]= qs[_0xe6c6[34]](_0x9a51x28[_0xe6c6[58]][_0xe6c6[34]])};return _0x9a51x2d[_0xe6c6[105]](_0x9a51x1b)}})[_0xe6c6[45]](function(_0x9a51x2e){return _0x9a51x2e?{count:_0x9a51x1c,rows:_0x9a51x2e}:null})[_0xe6c6[45]](respondWithResult(_0x9a51x18,null,_0xe6c6[105]))[_0xe6c6[75]](handleError(_0x9a51x18,null,_0xe6c6[105]))}
\ No newline at end of file
diff --git a/server/api/chatWebsite/chatWebsite.model.js b/server/api/chatWebsite/chatWebsite.model.js
new file mode 100644 (file)
index 0000000..ac13dec
--- /dev/null
@@ -0,0 +1 @@
+var _0x2058=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x2058[0];var _=require(_0x2058[1]);var util=require(_0x2058[2]);var logger=require(_0x2058[4])(_0x2058[3]);var attributes=require(_0x2058[5]);module[_0x2058[6]]= function(_0x6decx5,_0x6decx6){return _0x6decx5[_0x2058[9]](_0x2058[7],attributes,{tableName:_0x2058[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/chatWebsite/chatWebsite.rpc.js b/server/api/chatWebsite/chatWebsite.rpc.js
new file mode 100644 (file)
index 0000000..42ea2a6
--- /dev/null
@@ -0,0 +1 @@
+var _0x7cb1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x7cb1[0];var _=require(_0x7cb1[1]);var util=require(_0x7cb1[2]);var moment=require(_0x7cb1[3]);var BPromise=require(_0x7cb1[4]);var db=require(_0x7cb1[6])[_0x7cb1[5]];var utils=require(_0x7cb1[7]);var logger=require(_0x7cb1[9])(_0x7cb1[8]);var jayson=require(_0x7cb1[10]);var client=jayson[_0x7cb1[12]][_0x7cb1[11]]({port:9002});function respondWithRpcPromise(_0x2849xb,_0x2849xc,_0x2849xd){return  new BPromise(function(_0x2849xe,_0x2849xf){return client[_0x7cb1[25]](_0x2849xb,_0x2849xd)[_0x7cb1[24]](function(_0x2849x11){logger[_0x7cb1[17]](_0x7cb1[13],_0x2849xc,_0x7cb1[16]);logger[_0x7cb1[20]](_0x7cb1[18],_0x2849xc,_0x7cb1[16],JSON[_0x7cb1[19]](_0x2849x11));if(_0x2849x11[_0x7cb1[14]]){if(_0x2849x11[_0x7cb1[14]][_0x7cb1[21]]=== 500){logger[_0x7cb1[14]](_0x7cb1[13],_0x2849xc,_0x2849x11[_0x7cb1[14]][_0x7cb1[22]]);return _0x2849xf(_0x2849x11[_0x7cb1[14]][_0x7cb1[22]])};logger[_0x7cb1[14]](_0x7cb1[13],_0x2849xc,_0x2849x11[_0x7cb1[14]][_0x7cb1[22]]);return _0x2849xe(_0x2849x11[_0x7cb1[14]][_0x7cb1[22]])}else {logger[_0x7cb1[17]](_0x7cb1[13],_0x2849xc,_0x7cb1[16]);_0x2849xe(_0x2849x11[_0x7cb1[23]][_0x7cb1[22]])}})[_0x7cb1[15]](function(_0x2849x10){logger[_0x7cb1[14]](_0x7cb1[13],_0x2849xc,_0x2849x10);_0x2849xf(_0x2849x10)})})}
\ No newline at end of file
diff --git a/server/api/chatWebsite/index.js b/server/api/chatWebsite/index.js
new file mode 100644 (file)
index 0000000..724a941
--- /dev/null
@@ -0,0 +1 @@
+var _0xbb64=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x61\x64\x64\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xbb64[0];var multer=require(_0xbb64[1]);var util=require(_0xbb64[2]);var path=require(_0xbb64[3]);var express=require(_0xbb64[4]);var router=express.Router();var auth=require(_0xbb64[5]);var config=require(_0xbb64[6]);var controller=require(_0xbb64[7]);router[_0xbb64[11]](_0xbb64[8],auth[_0xbb64[9]](),controller[_0xbb64[10]]);router[_0xbb64[11]](_0xbb64[12],auth[_0xbb64[9]](),controller[_0xbb64[13]]);router[_0xbb64[11]](_0xbb64[14],auth[_0xbb64[9]](),controller[_0xbb64[15]]);router[_0xbb64[11]](_0xbb64[16],auth[_0xbb64[9]](),controller[_0xbb64[17]]);router[_0xbb64[11]](_0xbb64[18],auth[_0xbb64[9]](),controller[_0xbb64[19]]);router[_0xbb64[11]](_0xbb64[20],auth[_0xbb64[9]](),controller[_0xbb64[21]]);router[_0xbb64[11]](_0xbb64[22],auth[_0xbb64[9]](),controller[_0xbb64[23]]);router[_0xbb64[25]](_0xbb64[8],auth[_0xbb64[9]](),controller[_0xbb64[24]]);router[_0xbb64[25]](_0xbb64[14],auth[_0xbb64[9]](),controller[_0xbb64[26]]);router[_0xbb64[25]](_0xbb64[16],auth[_0xbb64[9]](),controller[_0xbb64[27]]);router[_0xbb64[25]](_0xbb64[18],auth[_0xbb64[9]](),controller[_0xbb64[28]]);router[_0xbb64[25]](_0xbb64[18],auth[_0xbb64[9]](),controller[_0xbb64[29]]);router[_0xbb64[25]](_0xbb64[20],auth[_0xbb64[9]](),controller[_0xbb64[30]]);router[_0xbb64[25]](_0xbb64[22],auth[_0xbb64[9]](),controller[_0xbb64[31]]);router[_0xbb64[33]](_0xbb64[12],auth[_0xbb64[9]](),controller[_0xbb64[32]]);router[_0xbb64[35]](_0xbb64[12],auth[_0xbb64[9]](),controller[_0xbb64[34]]);module[_0xbb64[36]]= router
\ No newline at end of file
diff --git a/server/api/chatWebsiteField/chatWebsiteField.attributes.js b/server/api/chatWebsiteField/chatWebsiteField.attributes.js
new file mode 100644 (file)
index 0000000..dd54bb5
--- /dev/null
@@ -0,0 +1 @@
+var _0x6c42=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x2C","\x73\x70\x6C\x69\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x6c42[0];var Sequelize=require(_0x6c42[1]);module[_0x6c42[2]]= {component:{type:Sequelize[_0x6c42[3]]},description:{type:Sequelize[_0x6c42[3]]},index:{type:Sequelize[_0x6c42[4]]},label:{type:Sequelize[_0x6c42[3]]},options:{type:Sequelize[_0x6c42[3]],get:function(){return this[_0x6c42[8]](_0x6c42[7])[_0x6c42[6]](_0x6c42[5])},set:function(_0x82cdx2){this[_0x6c42[10]](_0x6c42[7],_0x82cdx2[_0x6c42[9]](_0x6c42[5]))}},placeholder:{type:Sequelize[_0x6c42[3]]},required:{type:Sequelize[_0x6c42[11]]},validation:{type:Sequelize[_0x6c42[3]]},editable:{type:Sequelize[_0x6c42[11]],defaultValue:true}}
\ No newline at end of file
diff --git a/server/api/chatWebsiteField/chatWebsiteField.controller.js b/server/api/chatWebsiteField/chatWebsiteField.controller.js
new file mode 100644 (file)
index 0000000..9fa801b
--- /dev/null
@@ -0,0 +1 @@
+var _0xfbc1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xfbc1[0];var jsonpatch=require(_0xfbc1[1]);var rp=require(_0xfbc1[2]);var moment=require(_0xfbc1[3]);var BPromise=require(_0xfbc1[4]);var util=require(_0xfbc1[5]);var path=require(_0xfbc1[6]);var sox=require(_0xfbc1[7]);var ejs=require(_0xfbc1[8]);var fs=require(_0xfbc1[9]);var _=require(_0xfbc1[10]);var squel=require(_0xfbc1[11]);var crypto=require(_0xfbc1[12]);var jsforce=require(_0xfbc1[13]);var toCsv=require(_0xfbc1[14]);var qs=require(_0xfbc1[15]);var logger=require(_0xfbc1[17])(_0xfbc1[16]);var utils=require(_0xfbc1[18]);var config=require(_0xfbc1[19]);var db=require(_0xfbc1[21])[_0xfbc1[20]];function respondWithStatusCode(_0xade0x15,_0xade0x16,_0xade0x17){_0xade0x16= _0xade0x16|| 204;return function(_0xade0x18){if(_0xade0x18){logger[_0xfbc1[24]](_0xfbc1[22],_0xade0x17,_0xade0x16,_0xfbc1[23]);logger[_0xfbc1[26]](_0xfbc1[25],_0xade0x17,_0xade0x16,_0xfbc1[23]);return _0xade0x15[_0xfbc1[27]](_0xade0x16)};return _0xade0x15[_0xfbc1[29]](304)[_0xfbc1[28]]()}}function respondWithResult(_0xade0x15,_0xade0x16,_0xade0x17){_0xade0x16= _0xade0x16|| 200;return function(_0xade0x18){if(_0xade0x18){logger[_0xfbc1[24]](_0xfbc1[22],_0xade0x17,_0xade0x16,_0xfbc1[30]);logger[_0xfbc1[26]](_0xfbc1[25],_0xade0x17,_0xade0x16,_0xfbc1[30],JSON[_0xfbc1[31]](_0xade0x18));return _0xade0x15[_0xfbc1[29]](_0xade0x16)[_0xfbc1[32]](_0xade0x18)};return _0xade0x15[_0xfbc1[29]](304)[_0xfbc1[28]]()}}function respondWithFilteredResult(_0xade0x15,_0xade0x1b,_0xade0x17){return function(_0xade0x18){if(_0xade0x18){var _0xade0x1c=_0xade0x18[_0xfbc1[33]],_0xade0x1d=_0xade0x1b[_0xfbc1[34]],_0xade0x1e=_0xade0x1b[_0xfbc1[34]]+ _0xade0x1b[_0xfbc1[35]],_0xade0x16;if(_0xade0x1e>= _0xade0x1c){_0xade0x1e= _0xade0x1c;_0xade0x16= 200}else {_0xade0x16= 206};_0xade0x15[_0xfbc1[29]](_0xade0x16);logger[_0xfbc1[24]](_0xfbc1[22],_0xade0x17,_0xade0x16,_0xfbc1[36]);logger[_0xfbc1[26]](_0xfbc1[25],_0xade0x17,_0xade0x16,_0xfbc1[30],JSON[_0xfbc1[31]](_0xade0x18));return _0xade0x15[_0xfbc1[40]](_0xfbc1[37],_0xade0x1d+ _0xfbc1[38]+ _0xade0x1e+ _0xfbc1[39]+ _0xade0x1c)[_0xfbc1[32]](_0xade0x18)};return null}}function patchUpdates(_0xade0x20){return function(_0xade0x18){try{jsonpatch[_0xfbc1[41]](_0xade0x18,_0xade0x20,true)}catch(err){return BPromise[_0xfbc1[42]](err)};return _0xade0x18[_0xfbc1[43]]()}}function saveUpdates(_0xade0x22,_0xade0x16,_0xade0x17){return function(_0xade0x18){if(_0xade0x18){return _0xade0x18[_0xfbc1[46]](_0xade0x22)[_0xfbc1[45]](function(_0xade0x23){logger[_0xfbc1[24]](_0xfbc1[22],_0xade0x17,_0xade0x16,_0xfbc1[44]);logger[_0xfbc1[26]](_0xfbc1[25],_0xade0x17,_0xade0x16,_0xfbc1[44],JSON[_0xfbc1[31]](_0xade0x18));return _0xade0x23})};return null}}function removeEntity(_0xade0x15,_0xade0x16,_0xade0x17){return function(_0xade0x18){if(_0xade0x18){return _0xade0x18[_0xfbc1[48]]()[_0xfbc1[45]](function(){logger[_0xfbc1[24]](_0xfbc1[22],_0xade0x17,_0xade0x16,_0xfbc1[47]);logger[_0xfbc1[26]](_0xfbc1[25],_0xade0x17,_0xade0x16,_0xfbc1[47],JSON[_0xfbc1[31]](_0xade0x18));_0xade0x15[_0xfbc1[29]](204)[_0xfbc1[28]]()})}}}function handleEntityNotFound(_0xade0x15,_0xade0x16,_0xade0x17){return function(_0xade0x18){if(!_0xade0x18){logger[_0xfbc1[50]](_0xfbc1[22],_0xade0x17,404,_0xfbc1[49]);_0xade0x15[_0xfbc1[29]](404)[_0xfbc1[28]]();return null};return _0xade0x18}}function handleError(_0xade0x15,_0xade0x16,_0xade0x17){_0xade0x16= _0xade0x16|| 500;return function(_0xade0x27){logger[_0xfbc1[50]](_0xfbc1[22],_0xade0x17,_0xade0x16,JSON[_0xfbc1[31]](_0xade0x27));delete _0xade0x27[_0xfbc1[51]];_0xade0x15[_0xfbc1[29]](_0xade0x16)[_0xfbc1[52]](_0xade0x27)}}exports[_0xfbc1[53]]= function(_0xade0x28,_0xade0x15){var _0xade0x1b={raw:false,where:{id:_0xade0x28[_0xfbc1[55]][_0xfbc1[54]]}},_0xade0x29={};_0xade0x29[_0xfbc1[56]]= _[_0xfbc1[59]](db[_0xfbc1[58]][_0xfbc1[57]]);_0xade0x29[_0xfbc1[60]]= _[_0xfbc1[59]](_0xade0x28[_0xfbc1[60]]);_0xade0x29[_0xfbc1[61]]= _[_0xfbc1[62]](_0xade0x29[_0xfbc1[56]],_0xade0x29[_0xfbc1[60]]);_0xade0x1b[_0xfbc1[63]]= _[_0xfbc1[62]](_0xade0x29[_0xfbc1[56]],qs[_0xfbc1[64]](_0xade0x28[_0xfbc1[60]][_0xfbc1[64]]));_0xade0x1b[_0xfbc1[63]]= (_0xade0x1b[_0xfbc1[63]][_0xfbc1[65]])?_0xade0x1b[_0xfbc1[63]]:_0xade0x29[_0xfbc1[56]];_0xade0x1b= _[_0xfbc1[67]]({},_0xade0x1b,_0xade0x28[_0xfbc1[66]]);return db[_0xfbc1[58]][_0xfbc1[69]](_0xade0x1b)[_0xfbc1[45]](handleEntityNotFound(_0xade0x15,null,_0xfbc1[53]))[_0xfbc1[45]](respondWithResult(_0xade0x15,null,_0xfbc1[53]))[_0xfbc1[68]](handleError(_0xade0x15,null,_0xfbc1[53]))};exports[_0xfbc1[46]]= function(_0xade0x28,_0xade0x15){if(_0xade0x28[_0xfbc1[70]][_0xfbc1[54]]){delete _0xade0x28[_0xfbc1[70]][_0xfbc1[54]]};return db[_0xfbc1[58]][_0xfbc1[69]]({where:{id:_0xade0x28[_0xfbc1[55]][_0xfbc1[54]]}})[_0xfbc1[45]](handleEntityNotFound(_0xade0x15,null,_0xfbc1[46]))[_0xfbc1[45]](saveUpdates(_0xade0x28[_0xfbc1[70]],null,_0xfbc1[46]))[_0xfbc1[45]](respondWithResult(_0xade0x15,null,_0xfbc1[46]))[_0xfbc1[68]](handleError(_0xade0x15,null,_0xfbc1[46]))};exports[_0xfbc1[48]]= function(_0xade0x28,_0xade0x15){return db[_0xfbc1[58]][_0xfbc1[69]]({where:{id:_0xade0x28[_0xfbc1[55]][_0xfbc1[54]]}})[_0xfbc1[45]](handleEntityNotFound(_0xade0x15,null,_0xfbc1[48]))[_0xfbc1[45]](removeEntity(_0xade0x15,null,_0xfbc1[48]))[_0xfbc1[68]](handleError(_0xade0x15,null,_0xfbc1[48]))}
\ No newline at end of file
diff --git a/server/api/chatWebsiteField/chatWebsiteField.model.js b/server/api/chatWebsiteField/chatWebsiteField.model.js
new file mode 100644 (file)
index 0000000..d3f8920
--- /dev/null
@@ -0,0 +1 @@
+var _0x688d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x63\x68\x61\x74\x5F\x77\x65\x62\x73\x69\x74\x65\x73\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x688d[0];var _=require(_0x688d[1]);var util=require(_0x688d[2]);var logger=require(_0x688d[4])(_0x688d[3]);var attributes=require(_0x688d[5]);module[_0x688d[6]]= function(_0x8219x5,_0x8219x6){return _0x8219x5[_0x688d[9]](_0x688d[7],attributes,{tableName:_0x688d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/chatWebsiteField/chatWebsiteField.rpc.js b/server/api/chatWebsiteField/chatWebsiteField.rpc.js
new file mode 100644 (file)
index 0000000..547287f
--- /dev/null
@@ -0,0 +1 @@
+var _0x61fe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x61fe[0];var _=require(_0x61fe[1]);var util=require(_0x61fe[2]);var moment=require(_0x61fe[3]);var BPromise=require(_0x61fe[4]);var db=require(_0x61fe[6])[_0x61fe[5]];var utils=require(_0x61fe[7]);var logger=require(_0x61fe[9])(_0x61fe[8]);var jayson=require(_0x61fe[10]);var client=jayson[_0x61fe[12]][_0x61fe[11]]({port:9002});function respondWithRpcPromise(_0x7e3bxb,_0x7e3bxc,_0x7e3bxd){return  new BPromise(function(_0x7e3bxe,_0x7e3bxf){return client[_0x61fe[25]](_0x7e3bxb,_0x7e3bxd)[_0x61fe[24]](function(_0x7e3bx11){logger[_0x61fe[17]](_0x61fe[13],_0x7e3bxc,_0x61fe[16]);logger[_0x61fe[20]](_0x61fe[18],_0x7e3bxc,_0x61fe[16],JSON[_0x61fe[19]](_0x7e3bx11));if(_0x7e3bx11[_0x61fe[14]]){if(_0x7e3bx11[_0x61fe[14]][_0x61fe[21]]=== 500){logger[_0x61fe[14]](_0x61fe[13],_0x7e3bxc,_0x7e3bx11[_0x61fe[14]][_0x61fe[22]]);return _0x7e3bxf(_0x7e3bx11[_0x61fe[14]][_0x61fe[22]])};logger[_0x61fe[14]](_0x61fe[13],_0x7e3bxc,_0x7e3bx11[_0x61fe[14]][_0x61fe[22]]);return _0x7e3bxe(_0x7e3bx11[_0x61fe[14]][_0x61fe[22]])}else {logger[_0x61fe[17]](_0x61fe[13],_0x7e3bxc,_0x61fe[16]);_0x7e3bxe(_0x7e3bx11[_0x61fe[23]][_0x61fe[22]])}})[_0x61fe[15]](function(_0x7e3bx10){logger[_0x61fe[14]](_0x61fe[13],_0x7e3bxc,_0x7e3bx10);_0x7e3bxf(_0x7e3bx10)})})}
\ No newline at end of file
diff --git a/server/api/chatWebsiteField/index.js b/server/api/chatWebsiteField/index.js
new file mode 100644 (file)
index 0000000..db3249d
--- /dev/null
@@ -0,0 +1 @@
+var _0x291e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x291e[0];var multer=require(_0x291e[1]);var util=require(_0x291e[2]);var path=require(_0x291e[3]);var express=require(_0x291e[4]);var router=express.Router();var auth=require(_0x291e[5]);var config=require(_0x291e[6]);var controller=require(_0x291e[7]);router[_0x291e[11]](_0x291e[8],auth[_0x291e[9]](),controller[_0x291e[10]]);router[_0x291e[13]](_0x291e[8],auth[_0x291e[9]](),controller[_0x291e[12]]);router[_0x291e[15]](_0x291e[8],auth[_0x291e[9]](),controller[_0x291e[14]]);module[_0x291e[16]]= router
\ No newline at end of file
diff --git a/server/api/cmCompany/cmCompany.attributes.js b/server/api/cmCompany/cmCompany.attributes.js
new file mode 100644 (file)
index 0000000..dd4453d
--- /dev/null
@@ -0,0 +1 @@
+var _0x416c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0x416c[0];var Sequelize=require(_0x416c[1]);module[_0x416c[2]]= {name:{type:Sequelize[_0x416c[3]],unique:_0x416c[4],allowNull:false,validate:{notEmpty:true}},vat:{type:Sequelize[_0x416c[3]]},companyId:{type:Sequelize[_0x416c[3]]},website:{type:Sequelize[_0x416c[3]]},phone:{type:Sequelize[_0x416c[3]]},fax:{type:Sequelize[_0x416c[3]]},type:{type:Sequelize[_0x416c[3]]},street:{type:Sequelize[_0x416c[3]]},postalCode:{type:Sequelize[_0x416c[3]]},city:{type:Sequelize[_0x416c[3]]},country:{type:Sequelize[_0x416c[3]]},email:{type:Sequelize[_0x416c[3]],validate:{isEmail:true}},emailDomain:{type:Sequelize[_0x416c[3]]},sStreet:{type:Sequelize[_0x416c[3]]},sPostalCode:{type:Sequelize[_0x416c[3]]},sCity:{type:Sequelize[_0x416c[3]]},sCountry:{type:Sequelize[_0x416c[3]]},description:{type:Sequelize[_0x416c[3]]}}
\ No newline at end of file
diff --git a/server/api/cmCompany/cmCompany.controller.js b/server/api/cmCompany/cmCompany.controller.js
new file mode 100644 (file)
index 0000000..966f949
--- /dev/null
@@ -0,0 +1 @@
+var _0xb68b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x69\x64\x73","\x6F\x6D\x69\x74","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0xb68b[0];var jsonpatch=require(_0xb68b[1]);var rp=require(_0xb68b[2]);var moment=require(_0xb68b[3]);var BPromise=require(_0xb68b[4]);var util=require(_0xb68b[5]);var path=require(_0xb68b[6]);var sox=require(_0xb68b[7]);var ejs=require(_0xb68b[8]);var fs=require(_0xb68b[9]);var _=require(_0xb68b[10]);var squel=require(_0xb68b[11]);var crypto=require(_0xb68b[12]);var jsforce=require(_0xb68b[13]);var toCsv=require(_0xb68b[14]);var qs=require(_0xb68b[15]);var logger=require(_0xb68b[17])(_0xb68b[16]);var utils=require(_0xb68b[18]);var config=require(_0xb68b[19]);var db=require(_0xb68b[21])[_0xb68b[20]];function respondWithStatusCode(_0xd681x15,_0xd681x16,_0xd681x17){_0xd681x16= _0xd681x16|| 204;return function(_0xd681x18){if(_0xd681x18){logger[_0xb68b[24]](_0xb68b[22],_0xd681x17,_0xd681x16,_0xb68b[23]);logger[_0xb68b[26]](_0xb68b[25],_0xd681x17,_0xd681x16,_0xb68b[23]);return _0xd681x15[_0xb68b[27]](_0xd681x16)};return _0xd681x15[_0xb68b[29]](304)[_0xb68b[28]]()}}function respondWithResult(_0xd681x15,_0xd681x16,_0xd681x17){_0xd681x16= _0xd681x16|| 200;return function(_0xd681x18){if(_0xd681x18){logger[_0xb68b[24]](_0xb68b[22],_0xd681x17,_0xd681x16,_0xb68b[30]);logger[_0xb68b[26]](_0xb68b[25],_0xd681x17,_0xd681x16,_0xb68b[30],JSON[_0xb68b[31]](_0xd681x18));return _0xd681x15[_0xb68b[29]](_0xd681x16)[_0xb68b[32]](_0xd681x18)};return _0xd681x15[_0xb68b[29]](304)[_0xb68b[28]]()}}function respondWithFilteredResult(_0xd681x15,_0xd681x1b,_0xd681x17){return function(_0xd681x18){if(_0xd681x18){var _0xd681x1c=_0xd681x18[_0xb68b[33]],_0xd681x1d=_0xd681x1b[_0xb68b[34]],_0xd681x1e=_0xd681x1b[_0xb68b[34]]+ _0xd681x1b[_0xb68b[35]],_0xd681x16;if(_0xd681x1e>= _0xd681x1c){_0xd681x1e= _0xd681x1c;_0xd681x16= 200}else {_0xd681x16= 206};_0xd681x15[_0xb68b[29]](_0xd681x16);logger[_0xb68b[24]](_0xb68b[22],_0xd681x17,_0xd681x16,_0xb68b[36]);logger[_0xb68b[26]](_0xb68b[25],_0xd681x17,_0xd681x16,_0xb68b[30],JSON[_0xb68b[31]](_0xd681x18));return _0xd681x15[_0xb68b[40]](_0xb68b[37],_0xd681x1d+ _0xb68b[38]+ _0xd681x1e+ _0xb68b[39]+ _0xd681x1c)[_0xb68b[32]](_0xd681x18)};return null}}function patchUpdates(_0xd681x20){return function(_0xd681x18){try{jsonpatch[_0xb68b[41]](_0xd681x18,_0xd681x20,true)}catch(err){return BPromise[_0xb68b[42]](err)};return _0xd681x18[_0xb68b[43]]()}}function saveUpdates(_0xd681x22,_0xd681x16,_0xd681x17){return function(_0xd681x18){if(_0xd681x18){return _0xd681x18[_0xb68b[46]](_0xd681x22)[_0xb68b[45]](function(_0xd681x23){logger[_0xb68b[24]](_0xb68b[22],_0xd681x17,_0xd681x16,_0xb68b[44]);logger[_0xb68b[26]](_0xb68b[25],_0xd681x17,_0xd681x16,_0xb68b[44],JSON[_0xb68b[31]](_0xd681x18));return _0xd681x23})};return null}}function removeEntity(_0xd681x15,_0xd681x16,_0xd681x17){return function(_0xd681x18){if(_0xd681x18){return _0xd681x18[_0xb68b[48]]()[_0xb68b[45]](function(){logger[_0xb68b[24]](_0xb68b[22],_0xd681x17,_0xd681x16,_0xb68b[47]);logger[_0xb68b[26]](_0xb68b[25],_0xd681x17,_0xd681x16,_0xb68b[47],JSON[_0xb68b[31]](_0xd681x18));_0xd681x15[_0xb68b[29]](204)[_0xb68b[28]]()})}}}function handleEntityNotFound(_0xd681x15,_0xd681x16,_0xd681x17){return function(_0xd681x18){if(!_0xd681x18){logger[_0xb68b[50]](_0xb68b[22],_0xd681x17,404,_0xb68b[49]);_0xd681x15[_0xb68b[29]](404)[_0xb68b[28]]();return null};return _0xd681x18}}function handleError(_0xd681x15,_0xd681x16,_0xd681x17){_0xd681x16= _0xd681x16|| 500;return function(_0xd681x27){logger[_0xb68b[50]](_0xb68b[22],_0xd681x17,_0xd681x16,JSON[_0xb68b[31]](_0xd681x27));delete _0xd681x27[_0xb68b[51]];_0xd681x15[_0xb68b[29]](_0xd681x16)[_0xb68b[52]](_0xd681x27)}}exports[_0xb68b[53]]= function(_0xd681x28,_0xd681x15){var _0xd681x1b={},_0xd681x29={};_0xd681x29[_0xb68b[54]]= _[_0xb68b[57]](db[_0xb68b[56]][_0xb68b[55]]);_0xd681x29[_0xb68b[58]]= _[_0xb68b[57]](_0xd681x28[_0xb68b[58]]);_0xd681x29[_0xb68b[59]]= _[_0xb68b[60]](_0xd681x29[_0xb68b[54]],_0xd681x29[_0xb68b[58]]);_0xd681x1b[_0xb68b[61]]= _[_0xb68b[60]](_0xd681x29[_0xb68b[54]],qs[_0xb68b[62]](_0xd681x28[_0xb68b[58]][_0xb68b[62]]));_0xd681x1b[_0xb68b[61]]= (_0xd681x1b[_0xb68b[61]][_0xb68b[63]])?_0xd681x1b[_0xb68b[61]]:_0xd681x29[_0xb68b[54]];if(!_0xd681x28[_0xb68b[58]][_0xb68b[65]](_0xb68b[64])){_0xd681x1b[_0xb68b[35]]= qs[_0xb68b[35]](_0xd681x28[_0xb68b[58]][_0xb68b[35]]);_0xd681x1b[_0xb68b[34]]= qs[_0xb68b[34]](_0xd681x28[_0xb68b[58]][_0xb68b[34]])};_0xd681x1b[_0xb68b[66]]= qs[_0xb68b[67]](_0xd681x28[_0xb68b[58]][_0xb68b[67]]);_0xd681x1b[_0xb68b[68]]= qs[_0xb68b[59]](_[_0xb68b[69]](_0xd681x28[_0xb68b[58]],_0xd681x29[_0xb68b[59]]));if(_0xd681x28[_0xb68b[58]][_0xb68b[70]]){_0xd681x1b[_0xb68b[68]]= _[_0xb68b[73]](_0xd681x1b[_0xb68b[68]],{$or:_[_0xb68b[72]](_0xd681x1b[_0xb68b[61]],function(_0xd681x2a){var _0xd681x2b={};_0xd681x2b[_0xd681x2a]= {$like:_0xb68b[71]+ _0xd681x28[_0xb68b[58]][_0xb68b[70]]+ _0xb68b[71]};return _0xd681x2b})})};_0xd681x1b= _[_0xb68b[73]]({},_0xd681x1b,_0xd681x28[_0xb68b[74]]);return db[_0xb68b[56]][_0xb68b[76]](_0xd681x1b)[_0xb68b[45]](respondWithFilteredResult(_0xd681x15,_0xd681x1b,_0xb68b[53]))[_0xb68b[75]](handleError(_0xd681x15,null,_0xb68b[53]))};exports[_0xb68b[77]]= function(_0xd681x28,_0xd681x15){var _0xd681x1b={raw:false,where:{id:_0xd681x28[_0xb68b[79]][_0xb68b[78]]}},_0xd681x29={};_0xd681x29[_0xb68b[54]]= _[_0xb68b[57]](db[_0xb68b[56]][_0xb68b[55]]);_0xd681x29[_0xb68b[58]]= _[_0xb68b[57]](_0xd681x28[_0xb68b[58]]);_0xd681x29[_0xb68b[59]]= _[_0xb68b[60]](_0xd681x29[_0xb68b[54]],_0xd681x29[_0xb68b[58]]);_0xd681x1b[_0xb68b[61]]= _[_0xb68b[60]](_0xd681x29[_0xb68b[54]],qs[_0xb68b[62]](_0xd681x28[_0xb68b[58]][_0xb68b[62]]));_0xd681x1b[_0xb68b[61]]= (_0xd681x1b[_0xb68b[61]][_0xb68b[63]])?_0xd681x1b[_0xb68b[61]]:_0xd681x29[_0xb68b[54]];_0xd681x1b= _[_0xb68b[73]]({},_0xd681x1b,_0xd681x28[_0xb68b[74]]);return db[_0xb68b[56]][_0xb68b[80]](_0xd681x1b)[_0xb68b[45]](handleEntityNotFound(_0xd681x15,null,_0xb68b[77]))[_0xb68b[45]](respondWithResult(_0xd681x15,null,_0xb68b[77]))[_0xb68b[75]](handleError(_0xd681x15,null,_0xb68b[77]))};exports[_0xb68b[81]]= function(_0xd681x28,_0xd681x15){return db[_0xb68b[56]][_0xb68b[81]](_0xd681x28[_0xb68b[82]],{})[_0xb68b[45]](respondWithResult(_0xd681x15,201,_0xb68b[81]))[_0xb68b[75]](handleError(_0xd681x15,null,_0xb68b[81]))};exports[_0xb68b[46]]= function(_0xd681x28,_0xd681x15){if(_0xd681x28[_0xb68b[82]][_0xb68b[78]]){delete _0xd681x28[_0xb68b[82]][_0xb68b[78]]};return db[_0xb68b[56]][_0xb68b[80]]({where:{id:_0xd681x28[_0xb68b[79]][_0xb68b[78]]}})[_0xb68b[45]](handleEntityNotFound(_0xd681x15,null,_0xb68b[46]))[_0xb68b[45]](saveUpdates(_0xd681x28[_0xb68b[82]],null,_0xb68b[46]))[_0xb68b[45]](respondWithResult(_0xd681x15,null,_0xb68b[46]))[_0xb68b[75]](handleError(_0xd681x15,null,_0xb68b[46]))};exports[_0xb68b[48]]= function(_0xd681x28,_0xd681x15){return db[_0xb68b[56]][_0xb68b[80]]({where:{id:_0xd681x28[_0xb68b[79]][_0xb68b[78]]}})[_0xb68b[45]](handleEntityNotFound(_0xd681x15,null,_0xb68b[48]))[_0xb68b[45]](removeEntity(_0xd681x15,null,_0xb68b[48]))[_0xb68b[75]](handleError(_0xd681x15,null,_0xb68b[48]))};exports[_0xb68b[83]]= function(_0xd681x28,_0xd681x15,_0xd681x2c){return db[_0xb68b[86]][_0xb68b[80]]({where:{id:_0xd681x28[_0xb68b[79]][_0xb68b[78]]}})[_0xb68b[45]](handleEntityNotFound(_0xd681x15,null,_0xb68b[83]))[_0xb68b[45]](function(_0xd681x18){if(_0xd681x18){return _0xd681x18[_0xb68b[83]](_0xd681x28[_0xb68b[82]][_0xb68b[84]],_[_0xb68b[85]](_0xd681x28[_0xb68b[82]],[_0xb68b[84],_0xb68b[78]])|| {})};return null})[_0xb68b[45]](respondWithResult(_0xd681x15,null,_0xb68b[83]))[_0xb68b[75]](handleError(_0xd681x15,null,_0xb68b[83]))};exports[_0xb68b[87]]= function(_0xd681x28,_0xd681x18,_0xd681x2c){var _0xd681x1b={};var _0xd681x29={};var _0xd681x2d;var _0xd681x1c;return db[_0xb68b[56]][_0xb68b[88]]({where:{id:_0xd681x28[_0xb68b[79]][_0xb68b[78]]}})[_0xb68b[45]](handleEntityNotFound(_0xd681x18,null,_0xb68b[87]))[_0xb68b[45]](function(_0xd681x18){if(_0xd681x18){_0xd681x2d= _0xd681x18;_0xd681x29[_0xb68b[54]]= _[_0xb68b[57]](db[_0xb68b[86]][_0xb68b[55]]);_0xd681x29[_0xb68b[58]]= _[_0xb68b[57]](_0xd681x28[_0xb68b[58]]);_0xd681x29[_0xb68b[59]]= _[_0xb68b[60]](_0xd681x29[_0xb68b[54]],_0xd681x29[_0xb68b[58]]);_0xd681x1b[_0xb68b[61]]= _[_0xb68b[60]](_0xd681x29[_0xb68b[54]],qs[_0xb68b[62]](_0xd681x28[_0xb68b[58]][_0xb68b[62]]));_0xd681x1b[_0xb68b[61]]= (_0xd681x1b[_0xb68b[61]][_0xb68b[63]])?_0xd681x1b[_0xb68b[61]]:_0xd681x29[_0xb68b[54]];_0xd681x1b[_0xb68b[66]]= qs[_0xb68b[67]](_0xd681x28[_0xb68b[58]][_0xb68b[67]]);_0xd681x1b[_0xb68b[68]]= qs[_0xb68b[59]](_[_0xb68b[69]](_0xd681x28[_0xb68b[58]],_0xd681x29[_0xb68b[59]]));if(_0xd681x28[_0xb68b[58]][_0xb68b[70]]){_0xd681x1b[_0xb68b[68]]= _[_0xb68b[73]](_0xd681x1b[_0xb68b[68]],{$or:_[_0xb68b[72]](_0xd681x1b[_0xb68b[61]],function(_0xd681x2a){var _0xd681x2b={};_0xd681x2b[_0xd681x2a]= {$like:_0xb68b[71]+ _0xd681x28[_0xb68b[58]][_0xb68b[70]]+ _0xb68b[71]};return _0xd681x2b})})};_0xd681x1b= _[_0xb68b[73]]({},_0xd681x1b,_0xd681x28[_0xb68b[74]]);return _0xd681x2d[_0xb68b[87]](_0xd681x1b)}})[_0xb68b[45]](function(_0xd681x2f){if(_0xd681x2f){_0xd681x1c= _0xd681x2f[_0xb68b[63]];if(!_0xd681x28[_0xb68b[58]][_0xb68b[65]](_0xb68b[64])){_0xd681x1b[_0xb68b[35]]= qs[_0xb68b[35]](_0xd681x28[_0xb68b[58]][_0xb68b[35]]);_0xd681x1b[_0xb68b[34]]= qs[_0xb68b[34]](_0xd681x28[_0xb68b[58]][_0xb68b[34]])};return _0xd681x2d[_0xb68b[87]](_0xd681x1b)}})[_0xb68b[45]](function(_0xd681x2e){return _0xd681x2e?{count:_0xd681x1c,rows:_0xd681x2e}:null})[_0xb68b[45]](respondWithResult(_0xd681x18,null,_0xb68b[87]))[_0xb68b[75]](handleError(_0xd681x18,null,_0xb68b[87]))}
\ No newline at end of file
diff --git a/server/api/cmCompany/cmCompany.model.js b/server/api/cmCompany/cmCompany.model.js
new file mode 100644 (file)
index 0000000..e694a51
--- /dev/null
@@ -0,0 +1 @@
+var _0x8508=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x63\x6D\x5F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x8508[0];var _=require(_0x8508[1]);var util=require(_0x8508[2]);var logger=require(_0x8508[4])(_0x8508[3]);var attributes=require(_0x8508[5]);module[_0x8508[6]]= function(_0x8c83x5,_0x8c83x6){return _0x8c83x5[_0x8508[9]](_0x8508[7],attributes,{tableName:_0x8508[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/cmCompany/cmCompany.rpc.js b/server/api/cmCompany/cmCompany.rpc.js
new file mode 100644 (file)
index 0000000..5b6194e
--- /dev/null
@@ -0,0 +1 @@
+var _0xa6aa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xa6aa[0];var _=require(_0xa6aa[1]);var util=require(_0xa6aa[2]);var moment=require(_0xa6aa[3]);var BPromise=require(_0xa6aa[4]);var db=require(_0xa6aa[6])[_0xa6aa[5]];var utils=require(_0xa6aa[7]);var logger=require(_0xa6aa[9])(_0xa6aa[8]);var jayson=require(_0xa6aa[10]);var client=jayson[_0xa6aa[12]][_0xa6aa[11]]({port:9002});function respondWithRpcPromise(_0x237axb,_0x237axc,_0x237axd){return  new BPromise(function(_0x237axe,_0x237axf){return client[_0xa6aa[25]](_0x237axb,_0x237axd)[_0xa6aa[24]](function(_0x237ax11){logger[_0xa6aa[17]](_0xa6aa[13],_0x237axc,_0xa6aa[16]);logger[_0xa6aa[20]](_0xa6aa[18],_0x237axc,_0xa6aa[16],JSON[_0xa6aa[19]](_0x237ax11));if(_0x237ax11[_0xa6aa[14]]){if(_0x237ax11[_0xa6aa[14]][_0xa6aa[21]]=== 500){logger[_0xa6aa[14]](_0xa6aa[13],_0x237axc,_0x237ax11[_0xa6aa[14]][_0xa6aa[22]]);return _0x237axf(_0x237ax11[_0xa6aa[14]][_0xa6aa[22]])};logger[_0xa6aa[14]](_0xa6aa[13],_0x237axc,_0x237ax11[_0xa6aa[14]][_0xa6aa[22]]);return _0x237axe(_0x237ax11[_0xa6aa[14]][_0xa6aa[22]])}else {logger[_0xa6aa[17]](_0xa6aa[13],_0x237axc,_0xa6aa[16]);_0x237axe(_0x237ax11[_0xa6aa[23]][_0xa6aa[22]])}})[_0xa6aa[15]](function(_0x237ax10){logger[_0xa6aa[14]](_0xa6aa[13],_0x237axc,_0x237ax10);_0x237axf(_0x237ax10)})})}
\ No newline at end of file
diff --git a/server/api/cmCompany/index.js b/server/api/cmCompany/index.js
new file mode 100644 (file)
index 0000000..a0d7c3d
--- /dev/null
@@ -0,0 +1 @@
+var _0xe2de=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe2de[0];var multer=require(_0xe2de[1]);var util=require(_0xe2de[2]);var path=require(_0xe2de[3]);var express=require(_0xe2de[4]);var router=express.Router();var auth=require(_0xe2de[5]);var config=require(_0xe2de[6]);var controller=require(_0xe2de[7]);router[_0xe2de[11]](_0xe2de[8],auth[_0xe2de[9]](),controller[_0xe2de[10]]);router[_0xe2de[11]](_0xe2de[12],auth[_0xe2de[9]](),controller[_0xe2de[13]]);router[_0xe2de[11]](_0xe2de[14],auth[_0xe2de[9]](),controller[_0xe2de[15]]);router[_0xe2de[17]](_0xe2de[8],auth[_0xe2de[9]](),controller[_0xe2de[16]]);router[_0xe2de[17]](_0xe2de[14],auth[_0xe2de[9]](),controller[_0xe2de[18]]);router[_0xe2de[20]](_0xe2de[12],auth[_0xe2de[9]](),controller[_0xe2de[19]]);router[_0xe2de[22]](_0xe2de[12],auth[_0xe2de[9]](),controller[_0xe2de[21]]);module[_0xe2de[23]]= router
\ No newline at end of file
diff --git a/server/api/cmContact/cmContact.attributes.js b/server/api/cmContact/cmContact.attributes.js
new file mode 100644 (file)
index 0000000..91d7fe1
--- /dev/null
@@ -0,0 +1 @@
+var _0x7cc6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x74\x61\x67\x73","\x3B","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x70\x6C\x69\x74","\x65\x6E\x64\x73\x57\x69\x74\x68","\x70\x6F\x70"];_0x7cc6[0];var _=require(_0x7cc6[1]);var Sequelize=require(_0x7cc6[2]);module[_0x7cc6[3]]= {firstName:{type:Sequelize[_0x7cc6[4]],allowNull:false},lastName:{type:Sequelize[_0x7cc6[4]]},tags:{type:Sequelize[_0x7cc6[4]],set:function(_0x8e18x3){this[_0x7cc6[8]](_0x7cc6[5],_0x8e18x3?_0x8e18x3[_0x7cc6[7]](_0x7cc6[6])+ _0x7cc6[6]:null)},get:function(){var _0x8e18x4=this[_0x7cc6[9]](_0x7cc6[5])?this[_0x7cc6[9]](_0x7cc6[5])[_0x7cc6[10]](_0x7cc6[6]):[];if(_[_0x7cc6[11]](this[_0x7cc6[9]](_0x7cc6[5]),_0x7cc6[6])){_0x8e18x4[_0x7cc6[12]]()};return _0x8e18x4}},street:{type:Sequelize[_0x7cc6[4]]},postalCode:{type:Sequelize[_0x7cc6[4]]},city:{type:Sequelize[_0x7cc6[4]]},country:{type:Sequelize[_0x7cc6[4]]},dateOfBirth:{type:Sequelize[_0x7cc6[4]]},description:{type:Sequelize[_0x7cc6[4]]},phone:{type:Sequelize[_0x7cc6[4]],allowNull:false},mobile:{type:Sequelize[_0x7cc6[4]]},fax:{type:Sequelize[_0x7cc6[4]]},email:{type:Sequelize[_0x7cc6[4]],validate:{isEmail:true}},url:{type:Sequelize[_0x7cc6[4]]}}
\ No newline at end of file
diff --git a/server/api/cmContact/cmContact.controller.js b/server/api/cmContact/cmContact.controller.js
new file mode 100644 (file)
index 0000000..6c1867d
--- /dev/null
@@ -0,0 +1 @@
+var _0x8ab6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x63\x61\x74\x63\x68","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x64\x65\x73\x63\x72\x69\x62\x65","\x63\x72\x65\x61\x74\x65","\x74\x61\x67\x73","\x62\x6F\x64\x79","\x69\x73\x41\x72\x72\x61\x79","\x6B\x65\x79\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x64\x75\x70\x6C\x69\x63\x61\x74\x65\x73","\x6C\x65\x6E\x67\x74\x68","\x70\x75\x73\x68","\x24\x6F\x72","\x77\x68\x65\x72\x65","\x4C\x69\x73\x74\x49\x64","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x65\x61\x63\x68","\x69\x6E\x64\x65\x78","\x4C\x69\x73\x74","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x70\x69\x63\x6B","\x64\x61\x74\x61\x56\x61\x6C\x75\x65\x73","\x63\x66\x5F\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x72\x6F\x77\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x6D\x6F\x64\x65\x6C","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x66\x69\x6C\x74\x65\x72","\x25","\x3B\x25","\x43\x6F\x6D\x70\x61\x6E\x79\x49\x64","\x75\x6E\x69\x6F\x6E","\x69\x6E\x63\x6C\x75\x64\x65","\x43\x6D\x4C\x69\x73\x74","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x6F\x70\x74\x69\x6F\x6E\x73","\x6F\x6D\x69\x74","\x73\x68\x6F\x77","\x63\x66\x5F\x25\x64","\x67\x65\x74","\x24\x61\x6E\x64","\x70\x68\x6F\x6E\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x69\x73\x45\x6D\x70\x74\x79","\x69\x64\x20\x3D\x20\x3F","\x73\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x74\x61\x62\x6C\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x67\x65\x74\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74"];_0x8ab6[0];var jsonpatch=require(_0x8ab6[1]);var rp=require(_0x8ab6[2]);var moment=require(_0x8ab6[3]);var BPromise=require(_0x8ab6[4]);var util=require(_0x8ab6[5]);var path=require(_0x8ab6[6]);var sox=require(_0x8ab6[7]);var ejs=require(_0x8ab6[8]);var fs=require(_0x8ab6[9]);var _=require(_0x8ab6[10]);var squel=require(_0x8ab6[11]);var crypto=require(_0x8ab6[12]);var jsforce=require(_0x8ab6[13]);var toCsv=require(_0x8ab6[14]);var qs=require(_0x8ab6[15]);var logger=require(_0x8ab6[17])(_0x8ab6[16]);var utils=require(_0x8ab6[18]);var config=require(_0x8ab6[19]);var db=require(_0x8ab6[21])[_0x8ab6[20]];function respondWithStatusCode(_0x4019x15,_0x4019x16,_0x4019x17){_0x4019x16= _0x4019x16|| 204;return function(_0x4019x18){if(_0x4019x18){logger[_0x8ab6[24]](_0x8ab6[22],_0x4019x17,_0x4019x16,_0x8ab6[23]);logger[_0x8ab6[26]](_0x8ab6[25],_0x4019x17,_0x4019x16,_0x8ab6[23]);return _0x4019x15[_0x8ab6[27]](_0x4019x16)};return _0x4019x15[_0x8ab6[29]](304)[_0x8ab6[28]]()}}function respondWithResult(_0x4019x15,_0x4019x16,_0x4019x17){_0x4019x16= _0x4019x16|| 200;return function(_0x4019x18){if(_0x4019x18){logger[_0x8ab6[24]](_0x8ab6[22],_0x4019x17,_0x4019x16,_0x8ab6[30]);logger[_0x8ab6[26]](_0x8ab6[25],_0x4019x17,_0x4019x16,_0x8ab6[30],JSON[_0x8ab6[31]](_0x4019x18));return _0x4019x15[_0x8ab6[29]](_0x4019x16)[_0x8ab6[32]](_0x4019x18)};return _0x4019x15[_0x8ab6[29]](304)[_0x8ab6[28]]()}}function respondWithFilteredResult(_0x4019x15,_0x4019x1b,_0x4019x17){return function(_0x4019x18){if(_0x4019x18){var _0x4019x1c=_0x4019x18[_0x8ab6[33]],_0x4019x1d=_0x4019x1b[_0x8ab6[34]],_0x4019x1e=_0x4019x1b[_0x8ab6[34]]+ _0x4019x1b[_0x8ab6[35]],_0x4019x16;if(_0x4019x1e>= _0x4019x1c){_0x4019x1e= _0x4019x1c;_0x4019x16= 200}else {_0x4019x16= 206};_0x4019x15[_0x8ab6[29]](_0x4019x16);logger[_0x8ab6[24]](_0x8ab6[22],_0x4019x17,_0x4019x16,_0x8ab6[36]);logger[_0x8ab6[26]](_0x8ab6[25],_0x4019x17,_0x4019x16,_0x8ab6[30],JSON[_0x8ab6[31]](_0x4019x18));return _0x4019x15[_0x8ab6[40]](_0x8ab6[37],_0x4019x1d+ _0x8ab6[38]+ _0x4019x1e+ _0x8ab6[39]+ _0x4019x1c)[_0x8ab6[32]](_0x4019x18)};return null}}function patchUpdates(_0x4019x20){return function(_0x4019x18){try{jsonpatch[_0x8ab6[41]](_0x4019x18,_0x4019x20,true)}catch(err){return BPromise[_0x8ab6[42]](err)};return _0x4019x18[_0x8ab6[43]]()}}function saveUpdates(_0x4019x22,_0x4019x16,_0x4019x17){return function(_0x4019x18){if(_0x4019x18){return _0x4019x18[_0x8ab6[46]](_0x4019x22)[_0x8ab6[45]](function(_0x4019x23){logger[_0x8ab6[24]](_0x8ab6[22],_0x4019x17,_0x4019x16,_0x8ab6[44]);logger[_0x8ab6[26]](_0x8ab6[25],_0x4019x17,_0x4019x16,_0x8ab6[44],JSON[_0x8ab6[31]](_0x4019x18));return _0x4019x23})};return null}}function removeEntity(_0x4019x15,_0x4019x16,_0x4019x17){return function(_0x4019x18){if(_0x4019x18){return _0x4019x18[_0x8ab6[48]]()[_0x8ab6[45]](function(){logger[_0x8ab6[24]](_0x8ab6[22],_0x4019x17,_0x4019x16,_0x8ab6[47]);logger[_0x8ab6[26]](_0x8ab6[25],_0x4019x17,_0x4019x16,_0x8ab6[47],JSON[_0x8ab6[31]](_0x4019x18));_0x4019x15[_0x8ab6[29]](204)[_0x8ab6[28]]()})}}}function handleEntityNotFound(_0x4019x15,_0x4019x16,_0x4019x17){return function(_0x4019x18){if(!_0x4019x18){logger[_0x8ab6[50]](_0x8ab6[22],_0x4019x17,404,_0x8ab6[49]);_0x4019x15[_0x8ab6[29]](404)[_0x8ab6[28]]();return null};return _0x4019x18}}function handleError(_0x4019x15,_0x4019x16,_0x4019x17){_0x4019x16= _0x4019x16|| 500;return function(_0x4019x27){logger[_0x8ab6[50]](_0x8ab6[22],_0x4019x17,_0x4019x16,JSON[_0x8ab6[31]](_0x4019x27));delete _0x4019x27[_0x8ab6[51]];_0x4019x15[_0x8ab6[29]](_0x4019x16)[_0x8ab6[52]](_0x4019x27)}}exports[_0x8ab6[48]]= function(_0x4019x28,_0x4019x15){return db[_0x8ab6[57]][_0x8ab6[56]]({where:{id:_0x4019x28[_0x8ab6[55]][_0x8ab6[54]]}})[_0x8ab6[45]](handleEntityNotFound(_0x4019x15,null,_0x8ab6[48]))[_0x8ab6[45]](removeEntity(_0x4019x15,null,_0x8ab6[48]))[_0x8ab6[53]](handleError(_0x4019x15,null,_0x8ab6[48]))};exports[_0x8ab6[58]]= function(_0x4019x28,_0x4019x15){return db[_0x8ab6[57]][_0x8ab6[58]]()[_0x8ab6[45]](respondWithResult(_0x4019x15,null,_0x8ab6[58]))[_0x8ab6[53]](handleError(_0x4019x15,null,_0x8ab6[58]))};exports[_0x8ab6[59]]= function(_0x4019x28,_0x4019x15){return db[_0x8ab6[57]][_0x8ab6[58]]()[_0x8ab6[45]](function(_0x4019x29){if(_0x4019x28[_0x8ab6[61]][_0x8ab6[60]]&& _[_0x8ab6[62]](_0x4019x28[_0x8ab6[61]][_0x8ab6[60]])){_0x4019x28[_0x8ab6[61]][_0x8ab6[60]]= JSON[_0x8ab6[31]](_0x4019x28[_0x8ab6[61]][_0x8ab6[60]])};return db[_0x8ab6[57]][_0x8ab6[59]](_0x4019x28[_0x8ab6[61]],{fields:_[_0x8ab6[63]](_0x4019x29),raw:true})})[_0x8ab6[45]](respondWithResult(_0x4019x15,201,_0x8ab6[59]))[_0x8ab6[53]](handleError(_0x4019x15,null,_0x8ab6[59]))};exports[_0x8ab6[64]]= function(_0x4019x28,_0x4019x15){var _0x4019x2a=[];var _0x4019x2b=0;var _0x4019x2c=0;var _0x4019x2d=0;return db[_0x8ab6[57]][_0x8ab6[58]]()[_0x8ab6[45]](function(_0x4019x29){return BPromise[_0x8ab6[73]](_0x4019x28[_0x8ab6[61]],function(_0x4019x2f){var _0x4019x1b={where:{$or:[]},defaults:_0x4019x2f,fields:_[_0x8ab6[63]](_0x4019x29),raw:true};if(_0x4019x2f[_0x8ab6[65]]){for(var _0x4019x30=0;_0x4019x30< _0x4019x2f[_0x8ab6[65]][_0x8ab6[66]];_0x4019x30++){var _0x4019x31={};_0x4019x31[_0x4019x2f[_0x8ab6[65]][_0x4019x30]]= _0x4019x2f[_0x4019x2f[_0x8ab6[65]][_0x4019x30]];_0x4019x1b[_0x8ab6[69]][_0x8ab6[68]][_0x8ab6[67]](_0x4019x31)};_0x4019x1b[_0x8ab6[69]][_0x8ab6[70]]= _0x4019x2f[_0x8ab6[70]]};return db[_0x8ab6[57]][_0x8ab6[72]](_0x4019x1b)[_0x8ab6[71]](function(_0x4019x32,_0x4019x33){if(_0x4019x33){_0x4019x2b++}else {_0x4019x2d++}})[_0x8ab6[53]](function(_0x4019x27){console[_0x8ab6[50]](_0x4019x27);_0x4019x2c++})})})[_0x8ab6[45]](function(_0x4019x2e){if(_0x4019x2e){return {success:_0x4019x2b,failure:_0x4019x2c,duplicates:_0x4019x2d}}})[_0x8ab6[45]](respondWithResult(_0x4019x15,201,_0x8ab6[64]))[_0x8ab6[53]](handleError(_0x4019x15,null,_0x8ab6[64]))};exports[_0x8ab6[74]]= function(_0x4019x28,_0x4019x15,_0x4019x34){var _0x4019x35={count:0,rows:[]};var _0x4019x1b={};var _0x4019x36={};return db[_0x8ab6[57]][_0x8ab6[58]]()[_0x8ab6[45]](function(_0x4019x29){_0x4019x36[_0x8ab6[86]]= _[_0x8ab6[63]](_0x4019x29);_0x4019x36[_0x8ab6[87]]= _[_0x8ab6[63]](_0x4019x28[_0x8ab6[87]]);_0x4019x36[_0x8ab6[88]]= _[_0x8ab6[89]](_0x4019x36[_0x8ab6[86]],_0x4019x36[_0x8ab6[87]]);_0x4019x1b[_0x8ab6[90]]= _[_0x8ab6[89]](_0x4019x36[_0x8ab6[86]],qs[_0x8ab6[91]](_0x4019x28[_0x8ab6[87]][_0x8ab6[91]]));_0x4019x1b[_0x8ab6[90]]= (_0x4019x1b[_0x8ab6[90]][_0x8ab6[66]])?_0x4019x1b[_0x8ab6[90]]:_0x4019x36[_0x8ab6[86]];_0x4019x1b[_0x8ab6[35]]= qs[_0x8ab6[35]](_0x4019x28[_0x8ab6[87]][_0x8ab6[35]]);_0x4019x1b[_0x8ab6[34]]= qs[_0x8ab6[34]](_0x4019x28[_0x8ab6[87]][_0x8ab6[34]]);_0x4019x1b[_0x8ab6[92]]= qs[_0x8ab6[93]](_0x4019x28[_0x8ab6[87]][_0x8ab6[93]]);_0x4019x1b[_0x8ab6[69]]= qs[_0x8ab6[88]](_[_0x8ab6[78]](_0x4019x28[_0x8ab6[87]],_0x4019x36[_0x8ab6[88]]));if(_0x4019x28[_0x8ab6[87]][_0x8ab6[94]]){_0x4019x1b[_0x8ab6[69]]= _[_0x8ab6[83]](_0x4019x1b[_0x8ab6[69]],{$or:_[_0x8ab6[82]](_0x4019x1b[_0x8ab6[90]],function(_0x4019x3b){var _0x4019x3c={};_0x4019x3c[_0x4019x3b]= {$like:_0x8ab6[95]+ _0x4019x28[_0x8ab6[87]][_0x8ab6[94]]+ _0x8ab6[95]};return _0x4019x3c})})};if(_0x4019x28[_0x8ab6[87]][_0x8ab6[60]]){_0x4019x1b[_0x8ab6[69]][_0x8ab6[60]]= {$or:_[_0x8ab6[82]](_0x4019x1b[_0x8ab6[69]][_0x8ab6[60]],function(_0x4019x3b){return {$like:_0x8ab6[95]+ _0x4019x3b+ _0x8ab6[96]}})}};_0x4019x1b[_0x8ab6[90]]= _[_0x8ab6[98]](_0x4019x1b[_0x8ab6[90]],[_0x8ab6[70],_0x8ab6[97]]);_0x4019x1b[_0x8ab6[99]]= [{model:db[_0x8ab6[100]],as:_0x8ab6[75],attributes:[_0x8ab6[54]],include:[{model:db[_0x8ab6[101]],as:_0x8ab6[76],attributes:[_0x8ab6[54]]}]}];_0x4019x1b= _[_0x8ab6[83]]({},_0x4019x1b,_0x4019x28[_0x8ab6[102]]);return db[_0x8ab6[57]][_0x8ab6[33]](_[_0x8ab6[103]](_0x4019x1b,[_0x8ab6[99],_0x8ab6[90]]))})[_0x8ab6[45]](function(_0x4019x1c){_0x4019x35[_0x8ab6[33]]= _0x4019x1c;return db[_0x8ab6[57]][_0x8ab6[85]](_0x4019x1b)})[_0x8ab6[45]](function(_0x4019x2e){for(var _0x4019x37=0;_0x4019x37< _0x4019x2e[_0x8ab6[66]];_0x4019x37++){if(_0x4019x2e[_0x4019x37][_0x8ab6[75]]){if(_0x4019x2e[_0x4019x37][_0x8ab6[75]][_0x8ab6[76]][_0x8ab6[66]]){var _0x4019x38=_[_0x8ab6[78]](_0x4019x2e[_0x4019x37],_[_0x8ab6[63]](db[_0x8ab6[57]][_0x8ab6[77]]));var _0x4019x39=_[_0x8ab6[78]](_0x4019x2e[_0x4019x37][_0x8ab6[79]],_[_0x8ab6[82]](_0x4019x2e[_0x4019x37][_0x8ab6[75]].CustomFields,function(_0x4019x3a){return util[_0x8ab6[81]](_0x8ab6[80],_0x4019x3a[_0x8ab6[54]])}));_0x4019x35[_0x8ab6[84]][_0x8ab6[67]](_[_0x8ab6[83]](_0x4019x38,_0x4019x39))}else {_0x4019x35[_0x8ab6[84]][_0x8ab6[67]](_0x4019x2e[_0x4019x37])}}else {_0x4019x35[_0x8ab6[84]][_0x8ab6[67]](_[_0x8ab6[78]](_0x4019x2e[_0x4019x37],_[_0x8ab6[63]](db[_0x8ab6[57]][_0x8ab6[77]])))}};return _0x4019x35})[_0x8ab6[45]](respondWithFilteredResult(_0x4019x15,_0x4019x1b,_0x8ab6[74]))[_0x8ab6[53]](handleError(_0x4019x15,null,_0x8ab6[74]))};exports[_0x8ab6[104]]= function(_0x4019x28,_0x4019x15,_0x4019x34){var _0x4019x3d;return db[_0x8ab6[57]][_0x8ab6[58]]()[_0x8ab6[45]](function(_0x4019x29){return db[_0x8ab6[57]][_0x8ab6[56]]({where:{id:_0x4019x28[_0x8ab6[55]][_0x8ab6[54]]},attributes:_[_0x8ab6[63]](_0x4019x29)})})[_0x8ab6[45]](function(_0x4019x18){_0x4019x3d= _0x4019x18[_0x8ab6[106]]({plain:true});var _0x4019x3f={where:{$and:[{ListId:{$ne:null}}]}};if(_0x4019x18&& _0x4019x18[_0x8ab6[70]]){if(_0x4019x18[_0x8ab6[70]]){_0x4019x3f[_0x8ab6[69]][_0x8ab6[107]][_0x8ab6[67]]({ListId:{$ne:_0x4019x18[_0x8ab6[70]]}})}};return db[_0x8ab6[101]][_0x8ab6[85]](_0x4019x3f)})[_0x8ab6[45]](function(_0x4019x3e){return _[_0x8ab6[103]](_0x4019x3d,_[_0x8ab6[82]](_0x4019x3e,function(_0x4019x3a){return util[_0x8ab6[81]](_0x8ab6[105],_0x4019x3a[_0x8ab6[54]])}))})[_0x8ab6[45]](handleEntityNotFound(_0x4019x15,null,_0x8ab6[104]))[_0x8ab6[45]](respondWithResult(_0x4019x15,null,_0x8ab6[104]))[_0x8ab6[53]](handleError(_0x4019x15,null,_0x8ab6[104]))};exports[_0x8ab6[46]]= function(_0x4019x28,_0x4019x15){var _0x4019x3d;if(_0x4019x28[_0x8ab6[61]][_0x8ab6[54]]){delete _0x4019x28[_0x8ab6[61]][_0x8ab6[54]]};return db[_0x8ab6[57]][_0x8ab6[56]]({where:{id:_0x4019x28[_0x8ab6[55]][_0x8ab6[54]]}})[_0x8ab6[45]](handleEntityNotFound(_0x4019x15,null,_0x8ab6[46]))[_0x8ab6[45]](saveUpdates(_0x4019x28[_0x8ab6[61]],null,_0x8ab6[46]))[_0x8ab6[45]](function(_0x4019x18){_0x4019x3d= _0x4019x18;var _0x4019x3f={where:{$and:[{ListId:{$ne:null}}]}};if(_0x4019x18&& _0x4019x18[_0x8ab6[70]]){if(_0x4019x18[_0x8ab6[70]]){_0x4019x3f[_0x8ab6[69]][_0x8ab6[107]][_0x8ab6[67]]({ListId:{$ne:_0x4019x18[_0x8ab6[70]]}})}};return db[_0x8ab6[101]][_0x8ab6[85]](_0x4019x3f)})[_0x8ab6[45]](function(_0x4019x3e){if(_0x4019x3e){return _[_0x8ab6[103]](_0x4019x28[_0x8ab6[61]],_[_0x8ab6[82]](_0x4019x3e,function(_0x4019x3a){return util[_0x8ab6[81]](_0x8ab6[105],_0x4019x3a[_0x8ab6[54]])}),_[_0x8ab6[63]](db[_0x8ab6[57]][_0x8ab6[77]]))}})[_0x8ab6[45]](function(_0x4019x39){if(_0x4019x39&&  !_[_0x8ab6[110]](_0x4019x39)){return db[_0x8ab6[115]][_0x8ab6[87]](squel[_0x8ab6[46]]()[_0x8ab6[114]](_0x8ab6[113])[_0x8ab6[112]](_0x4019x39)[_0x8ab6[69]](_0x8ab6[111],_0x4019x28[_0x8ab6[55]][_0x8ab6[54]]).toString())}})[_0x8ab6[45]](function(){if(_0x4019x28[_0x8ab6[61]][_0x8ab6[108]]&& _0x4019x3d){return db[_0x8ab6[109]][_0x8ab6[46]]({phone:_0x4019x28[_0x8ab6[61]][_0x8ab6[108]]},{where:{ContactId:_0x4019x3d[_0x8ab6[54]]}})}})[_0x8ab6[45]](function(){return _0x4019x3d})[_0x8ab6[45]](respondWithResult(_0x4019x15,null,_0x8ab6[46]))[_0x8ab6[53]](handleError(_0x4019x15,null,_0x8ab6[46]))};exports[_0x8ab6[116]]= function(_0x4019x28,_0x4019x15,_0x4019x34){var _0x4019x1b={raw:true,where:{}},_0x4019x36={};return db[_0x8ab6[57]][_0x8ab6[121]]({where:{id:_0x4019x28[_0x8ab6[55]][_0x8ab6[54]]}})[_0x8ab6[45]](handleEntityNotFound(_0x4019x15,null,_0x8ab6[116]))[_0x8ab6[45]](function(_0x4019x18){if(_0x4019x18){_0x4019x36[_0x8ab6[86]]= _[_0x8ab6[63]](db[_0x8ab6[109]][_0x8ab6[77]]);_0x4019x36[_0x8ab6[87]]= _[_0x8ab6[63]](_0x4019x28[_0x8ab6[87]]);_0x4019x36[_0x8ab6[88]]= _[_0x8ab6[89]](_0x4019x36[_0x8ab6[86]],_0x4019x36[_0x8ab6[87]]);_0x4019x1b[_0x8ab6[90]]= _[_0x8ab6[89]](_0x4019x36[_0x8ab6[86]],qs[_0x8ab6[91]](_0x4019x28[_0x8ab6[87]][_0x8ab6[91]]));_0x4019x1b[_0x8ab6[90]]= (_0x4019x1b[_0x8ab6[90]][_0x8ab6[66]])?_0x4019x1b[_0x8ab6[90]]:_0x4019x36[_0x8ab6[86]];if(!_0x4019x28[_0x8ab6[87]][_0x8ab6[118]](_0x8ab6[117])){_0x4019x1b[_0x8ab6[35]]= qs[_0x8ab6[35]](_0x4019x28[_0x8ab6[87]][_0x8ab6[35]]);_0x4019x1b[_0x8ab6[34]]= qs[_0x8ab6[34]](_0x4019x28[_0x8ab6[87]][_0x8ab6[34]])};_0x4019x1b[_0x8ab6[92]]= qs[_0x8ab6[93]](_0x4019x28[_0x8ab6[87]][_0x8ab6[93]]);_0x4019x1b[_0x8ab6[69]]= qs[_0x8ab6[88]](_[_0x8ab6[78]](_0x4019x28[_0x8ab6[87]],_0x4019x36[_0x8ab6[88]]));_0x4019x1b[_0x8ab6[69]][_0x8ab6[119]]= _0x4019x18[_0x8ab6[54]];if(_0x4019x28[_0x8ab6[87]][_0x8ab6[94]]){_0x4019x1b[_0x8ab6[69]]= _[_0x8ab6[83]](_0x4019x1b[_0x8ab6[69]],{$or:_[_0x8ab6[82]](_0x4019x1b[_0x8ab6[90]],function(_0x4019x3b){var _0x4019x3c={};_0x4019x3c[_0x4019x3b]= {$like:_0x8ab6[95]+ _0x4019x28[_0x8ab6[87]][_0x8ab6[94]]+ _0x8ab6[95]};return _0x4019x3c})})};_0x4019x1b= _[_0x8ab6[83]]({},_0x4019x1b,_0x4019x28[_0x8ab6[102]]);return db[_0x8ab6[109]][_0x8ab6[120]](_0x4019x1b)}})[_0x8ab6[45]](respondWithFilteredResult(_0x4019x15,_0x4019x1b,_0x8ab6[116]))[_0x8ab6[53]](handleError(_0x4019x15,null,_0x8ab6[116]))};exports[_0x8ab6[122]]= function(_0x4019x28,_0x4019x15,_0x4019x34){var _0x4019x1b={raw:true,where:{}},_0x4019x36={};return db[_0x8ab6[57]][_0x8ab6[121]]({where:{id:_0x4019x28[_0x8ab6[55]][_0x8ab6[54]]}})[_0x8ab6[45]](handleEntityNotFound(_0x4019x15,null,_0x8ab6[122]))[_0x8ab6[45]](function(_0x4019x18){if(_0x4019x18){_0x4019x36[_0x8ab6[86]]= _[_0x8ab6[63]](db[_0x8ab6[123]][_0x8ab6[77]]);_0x4019x36[_0x8ab6[87]]= _[_0x8ab6[63]](_0x4019x28[_0x8ab6[87]]);_0x4019x36[_0x8ab6[88]]= _[_0x8ab6[89]](_0x4019x36[_0x8ab6[86]],_0x4019x36[_0x8ab6[87]]);_0x4019x1b[_0x8ab6[90]]= _[_0x8ab6[89]](_0x4019x36[_0x8ab6[86]],qs[_0x8ab6[91]](_0x4019x28[_0x8ab6[87]][_0x8ab6[91]]));_0x4019x1b[_0x8ab6[90]]= (_0x4019x1b[_0x8ab6[90]][_0x8ab6[66]])?_0x4019x1b[_0x8ab6[90]]:_0x4019x36[_0x8ab6[86]];if(!_0x4019x28[_0x8ab6[87]][_0x8ab6[118]](_0x8ab6[117])){_0x4019x1b[_0x8ab6[35]]= qs[_0x8ab6[35]](_0x4019x28[_0x8ab6[87]][_0x8ab6[35]]);_0x4019x1b[_0x8ab6[34]]= qs[_0x8ab6[34]](_0x4019x28[_0x8ab6[87]][_0x8ab6[34]])};_0x4019x1b[_0x8ab6[92]]= qs[_0x8ab6[93]](_0x4019x28[_0x8ab6[87]][_0x8ab6[93]]);_0x4019x1b[_0x8ab6[69]]= qs[_0x8ab6[88]](_[_0x8ab6[78]](_0x4019x28[_0x8ab6[87]],_0x4019x36[_0x8ab6[88]]));_0x4019x1b[_0x8ab6[69]][_0x8ab6[119]]= _0x4019x18[_0x8ab6[54]];if(_0x4019x28[_0x8ab6[87]][_0x8ab6[94]]){_0x4019x1b[_0x8ab6[69]]= _[_0x8ab6[83]](_0x4019x1b[_0x8ab6[69]],{$or:_[_0x8ab6[82]](_0x4019x1b[_0x8ab6[90]],function(_0x4019x3b){var _0x4019x3c={};_0x4019x3c[_0x4019x3b]= {$like:_0x8ab6[95]+ _0x4019x28[_0x8ab6[87]][_0x8ab6[94]]+ _0x8ab6[95]};return _0x4019x3c})})};_0x4019x1b= _[_0x8ab6[83]]({},_0x4019x1b,_0x4019x28[_0x8ab6[102]]);return db[_0x8ab6[123]][_0x8ab6[120]](_0x4019x1b)}})[_0x8ab6[45]](respondWithFilteredResult(_0x4019x15,_0x4019x1b,_0x8ab6[122]))[_0x8ab6[53]](handleError(_0x4019x15,null,_0x8ab6[122]))};exports[_0x8ab6[124]]= function(_0x4019x28,_0x4019x15,_0x4019x34){var _0x4019x1b={raw:true,where:{}},_0x4019x36={};return db[_0x8ab6[57]][_0x8ab6[121]]({where:{id:_0x4019x28[_0x8ab6[55]][_0x8ab6[54]]}})[_0x8ab6[45]](handleEntityNotFound(_0x4019x15,null,_0x8ab6[124]))[_0x8ab6[45]](function(_0x4019x18){if(_0x4019x18){_0x4019x36[_0x8ab6[86]]= _[_0x8ab6[63]](db[_0x8ab6[125]][_0x8ab6[77]]);_0x4019x36[_0x8ab6[87]]= _[_0x8ab6[63]](_0x4019x28[_0x8ab6[87]]);_0x4019x36[_0x8ab6[88]]= _[_0x8ab6[89]](_0x4019x36[_0x8ab6[86]],_0x4019x36[_0x8ab6[87]]);_0x4019x1b[_0x8ab6[90]]= _[_0x8ab6[89]](_0x4019x36[_0x8ab6[86]],qs[_0x8ab6[91]](_0x4019x28[_0x8ab6[87]][_0x8ab6[91]]));_0x4019x1b[_0x8ab6[90]]= (_0x4019x1b[_0x8ab6[90]][_0x8ab6[66]])?_0x4019x1b[_0x8ab6[90]]:_0x4019x36[_0x8ab6[86]];if(!_0x4019x28[_0x8ab6[87]][_0x8ab6[118]](_0x8ab6[117])){_0x4019x1b[_0x8ab6[35]]= qs[_0x8ab6[35]](_0x4019x28[_0x8ab6[87]][_0x8ab6[35]]);_0x4019x1b[_0x8ab6[34]]= qs[_0x8ab6[34]](_0x4019x28[_0x8ab6[87]][_0x8ab6[34]])};_0x4019x1b[_0x8ab6[92]]= qs[_0x8ab6[93]](_0x4019x28[_0x8ab6[87]][_0x8ab6[93]]);_0x4019x1b[_0x8ab6[69]]= qs[_0x8ab6[88]](_[_0x8ab6[78]](_0x4019x28[_0x8ab6[87]],_0x4019x36[_0x8ab6[88]]));_0x4019x1b[_0x8ab6[69]][_0x8ab6[119]]= _0x4019x18[_0x8ab6[54]];if(_0x4019x28[_0x8ab6[87]][_0x8ab6[94]]){_0x4019x1b[_0x8ab6[69]]= _[_0x8ab6[83]](_0x4019x1b[_0x8ab6[69]],{$or:_[_0x8ab6[82]](_0x4019x1b[_0x8ab6[90]],function(_0x4019x3b){var _0x4019x3c={};_0x4019x3c[_0x4019x3b]= {$like:_0x8ab6[95]+ _0x4019x28[_0x8ab6[87]][_0x8ab6[94]]+ _0x8ab6[95]};return _0x4019x3c})})};_0x4019x1b= _[_0x8ab6[83]]({},_0x4019x1b,_0x4019x28[_0x8ab6[102]]);return db[_0x8ab6[125]][_0x8ab6[120]](_0x4019x1b)}})[_0x8ab6[45]](respondWithFilteredResult(_0x4019x15,_0x4019x1b,_0x8ab6[124]))[_0x8ab6[53]](handleError(_0x4019x15,null,_0x8ab6[124]))};exports[_0x8ab6[126]]= function(_0x4019x28,_0x4019x15,_0x4019x34){var _0x4019x1b={raw:true,where:{}},_0x4019x36={};return db[_0x8ab6[57]][_0x8ab6[121]]({where:{id:_0x4019x28[_0x8ab6[55]][_0x8ab6[54]]}})[_0x8ab6[45]](handleEntityNotFound(_0x4019x15,null,_0x8ab6[126]))[_0x8ab6[45]](function(_0x4019x18){if(_0x4019x18){_0x4019x36[_0x8ab6[86]]= _[_0x8ab6[63]](db[_0x8ab6[127]][_0x8ab6[77]]);_0x4019x36[_0x8ab6[87]]= _[_0x8ab6[63]](_0x4019x28[_0x8ab6[87]]);_0x4019x36[_0x8ab6[88]]= _[_0x8ab6[89]](_0x4019x36[_0x8ab6[86]],_0x4019x36[_0x8ab6[87]]);_0x4019x1b[_0x8ab6[90]]= _[_0x8ab6[89]](_0x4019x36[_0x8ab6[86]],qs[_0x8ab6[91]](_0x4019x28[_0x8ab6[87]][_0x8ab6[91]]));_0x4019x1b[_0x8ab6[90]]= (_0x4019x1b[_0x8ab6[90]][_0x8ab6[66]])?_0x4019x1b[_0x8ab6[90]]:_0x4019x36[_0x8ab6[86]];if(!_0x4019x28[_0x8ab6[87]][_0x8ab6[118]](_0x8ab6[117])){_0x4019x1b[_0x8ab6[35]]= qs[_0x8ab6[35]](_0x4019x28[_0x8ab6[87]][_0x8ab6[35]]);_0x4019x1b[_0x8ab6[34]]= qs[_0x8ab6[34]](_0x4019x28[_0x8ab6[87]][_0x8ab6[34]])};_0x4019x1b[_0x8ab6[92]]= qs[_0x8ab6[93]](_0x4019x28[_0x8ab6[87]][_0x8ab6[93]]);_0x4019x1b[_0x8ab6[69]]= qs[_0x8ab6[88]](_[_0x8ab6[78]](_0x4019x28[_0x8ab6[87]],_0x4019x36[_0x8ab6[88]]));_0x4019x1b[_0x8ab6[69]][_0x8ab6[119]]= _0x4019x18[_0x8ab6[54]];if(_0x4019x28[_0x8ab6[87]][_0x8ab6[94]]){_0x4019x1b[_0x8ab6[69]]= _[_0x8ab6[83]](_0x4019x1b[_0x8ab6[69]],{$or:_[_0x8ab6[82]](_0x4019x1b[_0x8ab6[90]],function(_0x4019x3b){var _0x4019x3c={};_0x4019x3c[_0x4019x3b]= {$like:_0x8ab6[95]+ _0x4019x28[_0x8ab6[87]][_0x8ab6[94]]+ _0x8ab6[95]};return _0x4019x3c})})};_0x4019x1b= _[_0x8ab6[83]]({},_0x4019x1b,_0x4019x28[_0x8ab6[102]]);return db[_0x8ab6[127]][_0x8ab6[120]](_0x4019x1b)}})[_0x8ab6[45]](respondWithFilteredResult(_0x4019x15,_0x4019x1b,_0x8ab6[126]))[_0x8ab6[53]](handleError(_0x4019x15,null,_0x8ab6[126]))}
\ No newline at end of file
diff --git a/server/api/cmContact/cmContact.model.js b/server/api/cmContact/cmContact.model.js
new file mode 100644 (file)
index 0000000..87fee15
--- /dev/null
@@ -0,0 +1 @@
+var _0x7016=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x6D\x6F\x64\x65\x6C\x73","\x67\x65\x74","\x4C\x69\x73\x74\x49\x64","\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x61\x66\x74\x65\x72\x43\x72\x65\x61\x74\x65","\x6D\x65\x73\x73\x61\x67\x65","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x70\x68\x6F\x6E\x65","\x69\x64","\x63\x72\x65\x61\x74\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x43\x6D\x4C\x69\x73\x74","\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74","\x4E\x4F\x57","\x66\x6E","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x55\x6E\x69\x71\x75\x65\x69\x64","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x4C\x69\x73\x74\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x4C\x69\x73\x74\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x64\x65\x66\x69\x6E\x65"];_0x7016[0];var _=require(_0x7016[1]);var util=require(_0x7016[2]);var logger=require(_0x7016[4])(_0x7016[3]);var attributes=require(_0x7016[5]);module[_0x7016[6]]= function(_0x134cx5,_0x134cx6){return _0x134cx5[_0x7016[36]](_0x7016[7],attributes,{tableName:_0x7016[8],paranoid:false,indexes:[],timestamps:true,hooks:{afterCreate:function(_0x134cx7,_0x134cx8,_0x134cx9){var _0x134cxa=_0x134cx5[_0x7016[9]];var _0x134cxb=_0x134cx7[_0x7016[10]]({plain:true});if(_0x134cxb[_0x7016[11]]){_0x134cxa[_0x7016[34]][_0x7016[25]]({where:{type:_0x7016[33]},attributes:[_0x7016[20]],include:[{model:_0x134cxa[_0x7016[23]],as:_0x7016[32],where:{id:_0x134cxb[_0x7016[11]]}}]})[_0x7016[17]](function(_0x134cxd){if(_0x134cxd){var _0x134cxe=[];for(var _0x134cxf=0,_0x134cx10;_0x134cxf< _0x134cxd[_0x7016[18]];_0x134cxf++){_0x134cx10= _0x134cxd[_0x134cxf][_0x7016[10]]({plain:true});_0x134cxa[_0x7016[31]][_0x7016[21]]({phone:_0x134cxb[_0x7016[19]],ContactId:_0x134cxb[_0x7016[20]],ListId:_0x134cxb[_0x7016[11]],scheduledat:_0x134cxb[_0x7016[27]]?_0x134cxb[_0x7016[27]]:_0x134cx5[_0x7016[29]](_0x7016[28]),callback:_0x134cxb[_0x7016[30]]?true:false,callbackuniqueid:_0x134cxb[_0x7016[30]]?_0x134cxb[_0x7016[30]]:undefined,callbackat:_0x134cxb[_0x7016[30]]?_0x134cx5[_0x7016[29]](_0x7016[28]):undefined,VoiceQueueId:_0x134cx10[_0x7016[20]]})[_0x7016[16]](function(_0x134cxc){logger[_0x7016[15]](_0x7016[12],_0x7016[13],_0x134cxc[_0x7016[14]])})}}})[_0x7016[17]](function(){return _0x134cxa[_0x7016[34]][_0x7016[25]]({where:{type:_0x7016[33]},attributes:[_0x7016[20]],include:[{model:_0x134cxa[_0x7016[23]],as:_0x7016[24],where:{id:_0x134cxb[_0x7016[11]]}}]})[_0x7016[17]](function(_0x134cxd){if(_0x134cxd){var _0x134cxe=[];for(var _0x134cxf=0,_0x134cx10;_0x134cxf< _0x134cxd[_0x7016[18]];_0x134cxf++){_0x134cx10= _0x134cxd[_0x134cxf][_0x7016[10]]({plain:true});_0x134cxa[_0x7016[22]][_0x7016[21]]({phone:_0x134cxb[_0x7016[19]],ContactId:_0x134cxb[_0x7016[20]],ListId:_0x134cxb[_0x7016[11]],VoiceQueueId:_0x134cx10[_0x7016[20]]})[_0x7016[16]](function(_0x134cxc){logger[_0x7016[15]](_0x7016[12],_0x7016[13],_0x134cxc[_0x7016[14]])})}}})})[_0x7016[17]](function(){return _0x134cxa[_0x7016[26]][_0x7016[25]]({attributes:[_0x7016[20]],include:[{model:_0x134cxa[_0x7016[23]],as:_0x7016[32],where:{id:_0x134cxb[_0x7016[11]]}}]})[_0x7016[17]](function(_0x134cxd){if(_0x134cxd){var _0x134cxe=[];for(var _0x134cxf=0,_0x134cx10;_0x134cxf< _0x134cxd[_0x7016[18]];_0x134cxf++){_0x134cx10= _0x134cxd[_0x134cxf][_0x7016[10]]({plain:true});_0x134cxa[_0x7016[31]][_0x7016[21]]({phone:_0x134cxb[_0x7016[19]],ContactId:_0x134cxb[_0x7016[20]],ListId:_0x134cxb[_0x7016[11]],scheduledat:_0x134cxb[_0x7016[27]]?_0x134cxb[_0x7016[27]]:_0x134cx5[_0x7016[29]](_0x7016[28]),callback:_0x134cxb[_0x7016[30]]?true:false,callbackuniqueid:_0x134cxb[_0x7016[30]]?_0x134cxb[_0x7016[30]]:undefined,callbackat:_0x134cxb[_0x7016[30]]?_0x134cx5[_0x7016[29]](_0x7016[28]):undefined,CampaignId:_0x134cx10[_0x7016[20]]})[_0x7016[16]](function(_0x134cxc){logger[_0x7016[15]](_0x7016[12],_0x7016[13],_0x134cxc[_0x7016[14]])})}}})})[_0x7016[17]](function(){return _0x134cxa[_0x7016[26]][_0x7016[25]]({attributes:[_0x7016[20]],include:[{model:_0x134cxa[_0x7016[23]],as:_0x7016[24],where:{id:_0x134cxb[_0x7016[11]]}}]})[_0x7016[17]](function(_0x134cxd){if(_0x134cxd){var _0x134cxe=[];for(var _0x134cxf=0,_0x134cx10;_0x134cxf< _0x134cxd[_0x7016[18]];_0x134cxf++){_0x134cx10= _0x134cxd[_0x134cxf][_0x7016[10]]({plain:true});_0x134cxa[_0x7016[22]][_0x7016[21]]({phone:_0x134cxb[_0x7016[19]],ContactId:_0x134cxb[_0x7016[20]],ListId:_0x134cxb[_0x7016[11]],CampaignId:_0x134cx10[_0x7016[20]]})[_0x7016[16]](function(_0x134cxc){logger[_0x7016[15]](_0x7016[12],_0x7016[13],_0x134cxc[_0x7016[14]])})}}})})[_0x7016[17]](function(){_0x134cx9()})[_0x7016[16]](function(_0x134cxc){logger[_0x7016[15]](_0x7016[12],_0x7016[13],_0x134cxc[_0x7016[14]]);_0x134cx9(_0x134cxc)})}else {_0x134cx9( new Error(_0x7016[35]))}}}})}
\ No newline at end of file
diff --git a/server/api/cmContact/cmContact.rpc.js b/server/api/cmContact/cmContact.rpc.js
new file mode 100644 (file)
index 0000000..c58c53a
--- /dev/null
@@ -0,0 +1 @@
+var _0xc473=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x72\x65\x61\x74\x65\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65"];_0xc473[0];var _=require(_0xc473[1]);var util=require(_0xc473[2]);var moment=require(_0xc473[3]);var BPromise=require(_0xc473[4]);var db=require(_0xc473[6])[_0xc473[5]];var utils=require(_0xc473[7]);var logger=require(_0xc473[9])(_0xc473[8]);var jayson=require(_0xc473[10]);var client=jayson[_0xc473[12]][_0xc473[11]]({port:9002});function respondWithRpcPromise(_0xd09cxb,_0xd09cxc,_0xd09cxd){return  new BPromise(function(_0xd09cxe,_0xd09cxf){return client[_0xc473[25]](_0xd09cxb,_0xd09cxd)[_0xc473[24]](function(_0xd09cx11){logger[_0xc473[17]](_0xc473[13],_0xd09cxc,_0xc473[16]);logger[_0xc473[20]](_0xc473[18],_0xd09cxc,_0xc473[16],JSON[_0xc473[19]](_0xd09cx11));if(_0xd09cx11[_0xc473[14]]){if(_0xd09cx11[_0xc473[14]][_0xc473[21]]=== 500){logger[_0xc473[14]](_0xc473[13],_0xd09cxc,_0xd09cx11[_0xc473[14]][_0xc473[22]]);return _0xd09cxf(_0xd09cx11[_0xc473[14]][_0xc473[22]])};logger[_0xc473[14]](_0xc473[13],_0xd09cxc,_0xd09cx11[_0xc473[14]][_0xc473[22]]);return _0xd09cxe(_0xd09cx11[_0xc473[14]][_0xc473[22]])}else {logger[_0xc473[17]](_0xc473[13],_0xd09cxc,_0xc473[16]);_0xd09cxe(_0xd09cx11[_0xc473[23]][_0xc473[22]])}})[_0xc473[15]](function(_0xd09cx10){logger[_0xc473[14]](_0xc473[13],_0xd09cxc,_0xd09cx10);_0xd09cxf(_0xd09cx10)})})}exports[_0xc473[26]]= function(_0xd09cxd){var _0xd09cx12=this;return  new Promise(function(_0xd09cxe,_0xd09cxf){return db[_0xc473[36]][_0xc473[35]]({raw:_0xd09cxd[_0xc473[27]]?(_0xd09cxd[_0xc473[27]][_0xc473[28]]=== undefined)?true:false:true,where:_0xd09cxd[_0xc473[27]]?_0xd09cxd[_0xc473[27]][_0xc473[29]]|| null:null,attributes:_0xd09cxd[_0xc473[27]]?_0xd09cxd[_0xc473[27]][_0xc473[30]]|| null:null,include:_0xd09cxd[_0xc473[27]]?(_0xd09cxd[_0xc473[27]][_0xc473[31]]?_[_0xc473[34]](_0xd09cxd[_0xc473[27]][_0xc473[31]],function(_0xd09cx13){return {model:db[_0xd09cx13[_0xc473[32]]],as:_0xd09cx13[_0xc473[33]],attributes:_0xd09cx13[_0xc473[30]],include:_0xd09cx13[_0xc473[31]]?_[_0xc473[34]](_0xd09cx13[_0xc473[31]],function(_0xd09cx14){return {model:db[_0xd09cx14[_0xc473[32]]],as:_0xd09cx14[_0xc473[33]],attributes:_0xd09cx14[_0xc473[30]],include:_0xd09cx14[_0xc473[31]]?_[_0xc473[34]](_0xd09cx14[_0xc473[31]],function(_0xd09cx15){return {model:db[_0xd09cx15[_0xc473[32]]],as:_0xd09cx15[_0xc473[33]],attributes:_0xd09cx15[_0xc473[30]]}}):[]}}):[]}}):[]):[]})[_0xc473[24]](function(_0xd09cx11){logger[_0xc473[17]](_0xc473[26],_0xd09cxd);logger[_0xc473[20]](_0xc473[26],_0xd09cxd,JSON[_0xc473[19]](_0xd09cx11));_0xd09cxe(_0xd09cx11)})[_0xc473[15]](function(_0xd09cx10){logger[_0xc473[14]](_0xc473[26],_0xd09cx10[_0xc473[22]],_0xd09cxd);_0xd09cxf(_0xd09cx12[_0xc473[14]](500,_0xd09cx10[_0xc473[22]]))})})};exports[_0xc473[37]]= function(_0xd09cxd){var _0xd09cx12=this;return  new Promise(function(_0xd09cxe,_0xd09cxf){return db[_0xc473[36]][_0xc473[39]](_0xd09cxd[_0xc473[38]],{raw:_0xd09cxd[_0xc473[27]]?(_0xd09cxd[_0xc473[27]][_0xc473[28]]=== undefined)?true:false:true})[_0xc473[24]](function(_0xd09cx11){logger[_0xc473[17]](_0xc473[37],_0xd09cxd);logger[_0xc473[20]](_0xc473[37],_0xd09cxd,JSON[_0xc473[19]](_0xd09cx11));_0xd09cxe(_0xd09cx11)})[_0xc473[15]](function(_0xd09cx10){logger[_0xc473[14]](_0xc473[37],_0xd09cx10[_0xc473[22]],_0xd09cxd);_0xd09cxf(_0xd09cx12[_0xc473[14]](500,_0xd09cx10[_0xc473[22]]))})})}
\ No newline at end of file
diff --git a/server/api/cmContact/index.js b/server/api/cmContact/index.js
new file mode 100644 (file)
index 0000000..2983bc8
--- /dev/null
@@ -0,0 +1 @@
+var _0xb4a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x64\x65\x73\x63\x72\x69\x62\x65","\x67\x65\x74","\x2F","\x69\x6E\x64\x65\x78","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x69\x65\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x2F\x3A\x69\x64\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x67\x65\x74\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xb4a1[0];var multer=require(_0xb4a1[1]);var util=require(_0xb4a1[2]);var path=require(_0xb4a1[3]);var express=require(_0xb4a1[4]);var router=express.Router();var auth=require(_0xb4a1[5]);var config=require(_0xb4a1[6]);var controller=require(_0xb4a1[7]);router[_0xb4a1[11]](_0xb4a1[8],auth[_0xb4a1[9]](),controller[_0xb4a1[10]]);router[_0xb4a1[11]](_0xb4a1[12],auth[_0xb4a1[9]](),controller[_0xb4a1[13]]);router[_0xb4a1[11]](_0xb4a1[14],auth[_0xb4a1[9]](),controller[_0xb4a1[15]]);router[_0xb4a1[11]](_0xb4a1[16],auth[_0xb4a1[9]](),controller[_0xb4a1[17]]);router[_0xb4a1[11]](_0xb4a1[18],auth[_0xb4a1[9]](),controller[_0xb4a1[19]]);router[_0xb4a1[11]](_0xb4a1[20],auth[_0xb4a1[9]](),controller[_0xb4a1[21]]);router[_0xb4a1[11]](_0xb4a1[22],auth[_0xb4a1[9]](),controller[_0xb4a1[23]]);router[_0xb4a1[25]](_0xb4a1[12],auth[_0xb4a1[9]](),controller[_0xb4a1[24]]);router[_0xb4a1[25]](_0xb4a1[26],auth[_0xb4a1[9]](),controller[_0xb4a1[27]]);router[_0xb4a1[29]](_0xb4a1[14],auth[_0xb4a1[9]](),controller[_0xb4a1[28]]);router[_0xb4a1[31]](_0xb4a1[14],auth[_0xb4a1[9]](),controller[_0xb4a1[30]]);module[_0xb4a1[32]]= router
\ No newline at end of file
diff --git a/server/api/cmCustomField/cmCustomField.attributes.js b/server/api/cmCustomField/cmCustomField.attributes.js
new file mode 100644 (file)
index 0000000..ac186f0
--- /dev/null
@@ -0,0 +1 @@
+var _0xbf86=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x61\x6C\x69\x61\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x74\x79\x70\x65","\x73\x65\x6C\x65\x63\x74","\x76\x61\x6C\x75\x65\x73","\x70\x61\x72\x73\x65","\x76\x61\x6C\x75\x65","\x6D\x61\x70","\x69\x73\x41\x72\x72\x61\x79","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xbf86[0];var Sequelize=require(_0xbf86[1]);var _=require(_0xbf86[2]);module[_0xbf86[3]]= {name:{type:Sequelize[_0xbf86[4]],get:function(_0x6a17x3){return this[_0xbf86[6]](_0xbf86[5])}},alias:{type:Sequelize[_0xbf86[7]],allowNull:false,set:function(_0x6a17x3){this[_0xbf86[9]](_0xbf86[5],_0x6a17x3?_0x6a17x3:this[_0xbf86[6]](_0xbf86[8]))}},type:{type:Sequelize[_0xbf86[7]],allowNull:false},values:{type:Sequelize[_0xbf86[7]],get:function(){if(this[_0xbf86[6]](_0xbf86[10])=== _0xbf86[11]){return _[_0xbf86[15]](JSON[_0xbf86[13]](this[_0xbf86[6]](_0xbf86[12])),_0xbf86[14])}else {return this[_0xbf86[6]](_0xbf86[12])}},set:function(_0x6a17x3){if(Array[_0xbf86[16]](_0x6a17x3)){this[_0xbf86[9]](_0xbf86[12],JSON[_0xbf86[17]](_[_0xbf86[15]](_0x6a17x3,function(_0x6a17x4){return {value:_0x6a17x4}})))}else {this[_0xbf86[9]](_0xbf86[12],_0x6a17x3)}}},required:{type:Sequelize[_0xbf86[18]],defaultValue:false}}
\ No newline at end of file
diff --git a/server/api/cmCustomField/cmCustomField.controller.js b/server/api/cmCustomField/cmCustomField.controller.js
new file mode 100644 (file)
index 0000000..12259f9
--- /dev/null
@@ -0,0 +1 @@
+var _0xfb42=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x53\x54\x52\x49\x4E\x47","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x74\x79\x70\x65","\x74\x65\x78\x74","\x49\x4E\x54\x45\x47\x45\x52","\x6E\x75\x6D\x62\x65\x72","\x42\x4F\x4F\x4C\x45\x41\x4E","\x73\x77\x69\x74\x63\x68","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x63\x66\x5F\x25\x64","\x66\x6F\x72\x6D\x61\x74","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E"];_0xfb42[0];var jsonpatch=require(_0xfb42[1]);var rp=require(_0xfb42[2]);var moment=require(_0xfb42[3]);var BPromise=require(_0xfb42[4]);var util=require(_0xfb42[5]);var path=require(_0xfb42[6]);var sox=require(_0xfb42[7]);var ejs=require(_0xfb42[8]);var fs=require(_0xfb42[9]);var _=require(_0xfb42[10]);var squel=require(_0xfb42[11]);var crypto=require(_0xfb42[12]);var jsforce=require(_0xfb42[13]);var toCsv=require(_0xfb42[14]);var qs=require(_0xfb42[15]);var logger=require(_0xfb42[17])(_0xfb42[16]);var utils=require(_0xfb42[18]);var config=require(_0xfb42[19]);var db=require(_0xfb42[21])[_0xfb42[20]];function respondWithStatusCode(_0x596cx15,_0x596cx16,_0x596cx17){_0x596cx16= _0x596cx16|| 204;return function(_0x596cx18){if(_0x596cx18){logger[_0xfb42[24]](_0xfb42[22],_0x596cx17,_0x596cx16,_0xfb42[23]);logger[_0xfb42[26]](_0xfb42[25],_0x596cx17,_0x596cx16,_0xfb42[23]);return _0x596cx15[_0xfb42[27]](_0x596cx16)};return _0x596cx15[_0xfb42[29]](304)[_0xfb42[28]]()}}function respondWithResult(_0x596cx15,_0x596cx16,_0x596cx17){_0x596cx16= _0x596cx16|| 200;return function(_0x596cx18){if(_0x596cx18){logger[_0xfb42[24]](_0xfb42[22],_0x596cx17,_0x596cx16,_0xfb42[30]);logger[_0xfb42[26]](_0xfb42[25],_0x596cx17,_0x596cx16,_0xfb42[30],JSON[_0xfb42[31]](_0x596cx18));return _0x596cx15[_0xfb42[29]](_0x596cx16)[_0xfb42[32]](_0x596cx18)};return _0x596cx15[_0xfb42[29]](304)[_0xfb42[28]]()}}function respondWithFilteredResult(_0x596cx15,_0x596cx1b,_0x596cx17){return function(_0x596cx18){if(_0x596cx18){var _0x596cx1c=_0x596cx18[_0xfb42[33]],_0x596cx1d=_0x596cx1b[_0xfb42[34]],_0x596cx1e=_0x596cx1b[_0xfb42[34]]+ _0x596cx1b[_0xfb42[35]],_0x596cx16;if(_0x596cx1e>= _0x596cx1c){_0x596cx1e= _0x596cx1c;_0x596cx16= 200}else {_0x596cx16= 206};_0x596cx15[_0xfb42[29]](_0x596cx16);logger[_0xfb42[24]](_0xfb42[22],_0x596cx17,_0x596cx16,_0xfb42[36]);logger[_0xfb42[26]](_0xfb42[25],_0x596cx17,_0x596cx16,_0xfb42[30],JSON[_0xfb42[31]](_0x596cx18));return _0x596cx15[_0xfb42[40]](_0xfb42[37],_0x596cx1d+ _0xfb42[38]+ _0x596cx1e+ _0xfb42[39]+ _0x596cx1c)[_0xfb42[32]](_0x596cx18)};return null}}function patchUpdates(_0x596cx20){return function(_0x596cx18){try{jsonpatch[_0xfb42[41]](_0x596cx18,_0x596cx20,true)}catch(err){return BPromise[_0xfb42[42]](err)};return _0x596cx18[_0xfb42[43]]()}}function saveUpdates(_0x596cx22,_0x596cx16,_0x596cx17){return function(_0x596cx18){if(_0x596cx18){return _0x596cx18[_0xfb42[46]](_0x596cx22)[_0xfb42[45]](function(_0x596cx23){logger[_0xfb42[24]](_0xfb42[22],_0x596cx17,_0x596cx16,_0xfb42[44]);logger[_0xfb42[26]](_0xfb42[25],_0x596cx17,_0x596cx16,_0xfb42[44],JSON[_0xfb42[31]](_0x596cx18));return _0x596cx23})};return null}}function removeEntity(_0x596cx15,_0x596cx16,_0x596cx17){return function(_0x596cx18){if(_0x596cx18){return _0x596cx18[_0xfb42[48]]()[_0xfb42[45]](function(){logger[_0xfb42[24]](_0xfb42[22],_0x596cx17,_0x596cx16,_0xfb42[47]);logger[_0xfb42[26]](_0xfb42[25],_0x596cx17,_0x596cx16,_0xfb42[47],JSON[_0xfb42[31]](_0x596cx18));_0x596cx15[_0xfb42[29]](204)[_0xfb42[28]]()})}}}function handleEntityNotFound(_0x596cx15,_0x596cx16,_0x596cx17){return function(_0x596cx18){if(!_0x596cx18){logger[_0xfb42[50]](_0xfb42[22],_0x596cx17,404,_0xfb42[49]);_0x596cx15[_0xfb42[29]](404)[_0xfb42[28]]();return null};return _0x596cx18}}function handleError(_0x596cx15,_0x596cx16,_0x596cx17){_0x596cx16= _0x596cx16|| 500;return function(_0x596cx27){logger[_0xfb42[50]](_0xfb42[22],_0x596cx17,_0x596cx16,JSON[_0xfb42[31]](_0x596cx27));delete _0x596cx27[_0xfb42[51]];_0x596cx15[_0xfb42[29]](_0x596cx16)[_0xfb42[52]](_0x596cx27)}}exports[_0xfb42[53]]= function(_0x596cx28,_0x596cx15){var _0x596cx1b={},_0x596cx29={};_0x596cx29[_0xfb42[54]]= _[_0xfb42[57]](db[_0xfb42[56]][_0xfb42[55]]);_0x596cx29[_0xfb42[58]]= _[_0xfb42[57]](_0x596cx28[_0xfb42[58]]);_0x596cx29[_0xfb42[59]]= _[_0xfb42[60]](_0x596cx29[_0xfb42[54]],_0x596cx29[_0xfb42[58]]);_0x596cx1b[_0xfb42[61]]= _[_0xfb42[60]](_0x596cx29[_0xfb42[54]],qs[_0xfb42[62]](_0x596cx28[_0xfb42[58]][_0xfb42[62]]));_0x596cx1b[_0xfb42[61]]= (_0x596cx1b[_0xfb42[61]][_0xfb42[63]])?_0x596cx1b[_0xfb42[61]]:_0x596cx29[_0xfb42[54]];if(!_0x596cx28[_0xfb42[58]][_0xfb42[65]](_0xfb42[64])){_0x596cx1b[_0xfb42[35]]= qs[_0xfb42[35]](_0x596cx28[_0xfb42[58]][_0xfb42[35]]);_0x596cx1b[_0xfb42[34]]= qs[_0xfb42[34]](_0x596cx28[_0xfb42[58]][_0xfb42[34]])};_0x596cx1b[_0xfb42[66]]= qs[_0xfb42[67]](_0x596cx28[_0xfb42[58]][_0xfb42[67]]);_0x596cx1b[_0xfb42[68]]= qs[_0xfb42[59]](_[_0xfb42[69]](_0x596cx28[_0xfb42[58]],_0x596cx29[_0xfb42[59]]));if(_0x596cx28[_0xfb42[58]][_0xfb42[70]]){_0x596cx1b[_0xfb42[68]]= _[_0xfb42[73]](_0x596cx1b[_0xfb42[68]],{$or:_[_0xfb42[72]](_0x596cx1b[_0xfb42[61]],function(_0x596cx2a){var _0x596cx2b={};_0x596cx2b[_0x596cx2a]= {$like:_0xfb42[71]+ _0x596cx28[_0xfb42[58]][_0xfb42[70]]+ _0xfb42[71]};return _0x596cx2b})})};_0x596cx1b= _[_0xfb42[73]]({},_0x596cx1b,_0x596cx28[_0xfb42[74]]);return db[_0xfb42[56]][_0xfb42[76]](_0x596cx1b)[_0xfb42[45]](respondWithFilteredResult(_0x596cx15,_0x596cx1b,_0xfb42[53]))[_0xfb42[75]](handleError(_0x596cx15,null,_0xfb42[53]))};exports[_0xfb42[77]]= function(_0x596cx28,_0x596cx15){var _0x596cx1b={raw:true,where:{id:_0x596cx28[_0xfb42[79]][_0xfb42[78]]}},_0x596cx29={};_0x596cx29[_0xfb42[54]]= _[_0xfb42[57]](db[_0xfb42[56]][_0xfb42[55]]);_0x596cx29[_0xfb42[58]]= _[_0xfb42[57]](_0x596cx28[_0xfb42[58]]);_0x596cx29[_0xfb42[59]]= _[_0xfb42[60]](_0x596cx29[_0xfb42[54]],_0x596cx29[_0xfb42[58]]);_0x596cx1b[_0xfb42[61]]= _[_0xfb42[60]](_0x596cx29[_0xfb42[54]],qs[_0xfb42[62]](_0x596cx28[_0xfb42[58]][_0xfb42[62]]));_0x596cx1b[_0xfb42[61]]= (_0x596cx1b[_0xfb42[61]][_0xfb42[63]])?_0x596cx1b[_0xfb42[61]]:_0x596cx29[_0xfb42[54]];_0x596cx1b= _[_0xfb42[73]]({},_0x596cx1b,_0x596cx28[_0xfb42[74]]);return db[_0xfb42[56]][_0xfb42[80]](_0x596cx1b)[_0xfb42[45]](handleEntityNotFound(_0x596cx15,null,_0xfb42[77]))[_0xfb42[45]](respondWithResult(_0x596cx15,null,_0xfb42[77]))[_0xfb42[75]](handleError(_0x596cx15,null,_0xfb42[77]))};exports[_0xfb42[46]]= function(_0x596cx28,_0x596cx15){if(_0x596cx28[_0xfb42[81]][_0xfb42[78]]){delete _0x596cx28[_0xfb42[81]][_0xfb42[78]]};return db[_0xfb42[56]][_0xfb42[80]]({where:{id:_0x596cx28[_0xfb42[79]][_0xfb42[78]]}})[_0xfb42[45]](handleEntityNotFound(_0x596cx15,null,_0xfb42[46]))[_0xfb42[45]](saveUpdates(_0x596cx28[_0xfb42[81]],null,_0xfb42[46]))[_0xfb42[45]](respondWithResult(_0x596cx15,null,_0xfb42[46]))[_0xfb42[75]](handleError(_0x596cx15,null,_0xfb42[46]))};exports[_0xfb42[48]]= function(_0x596cx28,_0x596cx15){return db[_0xfb42[56]][_0xfb42[80]]({where:{id:_0x596cx28[_0xfb42[79]][_0xfb42[78]]}})[_0xfb42[45]](handleEntityNotFound(_0x596cx15,null,_0xfb42[48]))[_0xfb42[45]](removeEntity(_0x596cx15,null,_0xfb42[48]))[_0xfb42[75]](handleError(_0x596cx15,null,_0xfb42[48]))};exports[_0xfb42[82]]= function(_0x596cx28,_0x596cx15){var _0x596cx2c;return db[_0xfb42[96]][_0xfb42[97]](function(_0x596cx2d){return db[_0xfb42[56]][_0xfb42[82]](_0x596cx28[_0xfb42[81]],{transaction:_0x596cx2d})[_0xfb42[45]](function(_0x596cx18){_0x596cx2c= _0x596cx18;var _0x596cx2e={type:db[_0xfb42[84]][_0xfb42[83]],transaction:_0x596cx2d};switch(_0x596cx28[_0xfb42[81]][_0xfb42[85]]){case _0xfb42[86]:_0x596cx2e[_0xfb42[85]]= db[_0xfb42[84]][_0xfb42[83]];break;case _0xfb42[88]:_0x596cx2e[_0xfb42[85]]= db[_0xfb42[84]][_0xfb42[87]];break;case _0xfb42[90]:_0x596cx2e[_0xfb42[85]]= db[_0xfb42[84]][_0xfb42[89]];break;default:};return db[_0xfb42[96]][_0xfb42[95]][_0xfb42[94]](_0xfb42[91],util[_0xfb42[93]](_0xfb42[92],_0x596cx2c[_0xfb42[78]]),_0x596cx2e)})[_0xfb42[45]](function(){return _0x596cx2c})})[_0xfb42[45]](respondWithResult(_0x596cx15,201,_0xfb42[82]))[_0xfb42[75]](handleError(_0x596cx15,null,_0xfb42[82]))}
\ No newline at end of file
diff --git a/server/api/cmCustomField/cmCustomField.model.js b/server/api/cmCustomField/cmCustomField.model.js
new file mode 100644 (file)
index 0000000..5d3ef6f
--- /dev/null
@@ -0,0 +1 @@
+var _0xb1b9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x63\x6D\x5F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0xb1b9[0];var _=require(_0xb1b9[1]);var util=require(_0xb1b9[2]);var logger=require(_0xb1b9[4])(_0xb1b9[3]);var attributes=require(_0xb1b9[5]);module[_0xb1b9[6]]= function(_0xc4a6x5,_0xc4a6x6){return _0xc4a6x5[_0xb1b9[9]](_0xb1b9[7],attributes,{tableName:_0xb1b9[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/cmCustomField/cmCustomField.rpc.js b/server/api/cmCustomField/cmCustomField.rpc.js
new file mode 100644 (file)
index 0000000..3322af7
--- /dev/null
@@ -0,0 +1 @@
+var _0xb478=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb478[0];var _=require(_0xb478[1]);var util=require(_0xb478[2]);var moment=require(_0xb478[3]);var BPromise=require(_0xb478[4]);var db=require(_0xb478[6])[_0xb478[5]];var utils=require(_0xb478[7]);var logger=require(_0xb478[9])(_0xb478[8]);var jayson=require(_0xb478[10]);var client=jayson[_0xb478[12]][_0xb478[11]]({port:9002});function respondWithRpcPromise(_0xcab9xb,_0xcab9xc,_0xcab9xd){return  new BPromise(function(_0xcab9xe,_0xcab9xf){return client[_0xb478[25]](_0xcab9xb,_0xcab9xd)[_0xb478[24]](function(_0xcab9x11){logger[_0xb478[17]](_0xb478[13],_0xcab9xc,_0xb478[16]);logger[_0xb478[20]](_0xb478[18],_0xcab9xc,_0xb478[16],JSON[_0xb478[19]](_0xcab9x11));if(_0xcab9x11[_0xb478[14]]){if(_0xcab9x11[_0xb478[14]][_0xb478[21]]=== 500){logger[_0xb478[14]](_0xb478[13],_0xcab9xc,_0xcab9x11[_0xb478[14]][_0xb478[22]]);return _0xcab9xf(_0xcab9x11[_0xb478[14]][_0xb478[22]])};logger[_0xb478[14]](_0xb478[13],_0xcab9xc,_0xcab9x11[_0xb478[14]][_0xb478[22]]);return _0xcab9xe(_0xcab9x11[_0xb478[14]][_0xb478[22]])}else {logger[_0xb478[17]](_0xb478[13],_0xcab9xc,_0xb478[16]);_0xcab9xe(_0xcab9x11[_0xb478[23]][_0xb478[22]])}})[_0xb478[15]](function(_0xcab9x10){logger[_0xb478[14]](_0xb478[13],_0xcab9xc,_0xcab9x10);_0xcab9xf(_0xcab9x10)})})}
\ No newline at end of file
diff --git a/server/api/cmCustomField/index.js b/server/api/cmCustomField/index.js
new file mode 100644 (file)
index 0000000..2deb556
--- /dev/null
@@ -0,0 +1 @@
+var _0xf4a0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf4a0[0];var multer=require(_0xf4a0[1]);var util=require(_0xf4a0[2]);var path=require(_0xf4a0[3]);var express=require(_0xf4a0[4]);var router=express.Router();var auth=require(_0xf4a0[5]);var config=require(_0xf4a0[6]);var controller=require(_0xf4a0[7]);router[_0xf4a0[11]](_0xf4a0[8],auth[_0xf4a0[9]](),controller[_0xf4a0[10]]);router[_0xf4a0[11]](_0xf4a0[12],auth[_0xf4a0[9]](),controller[_0xf4a0[13]]);router[_0xf4a0[15]](_0xf4a0[8],auth[_0xf4a0[9]](),controller[_0xf4a0[14]]);router[_0xf4a0[17]](_0xf4a0[12],auth[_0xf4a0[9]](),controller[_0xf4a0[16]]);router[_0xf4a0[19]](_0xf4a0[12],auth[_0xf4a0[9]](),controller[_0xf4a0[18]]);module[_0xf4a0[20]]= router
\ No newline at end of file
diff --git a/server/api/cmHopper/cmHopper.attributes.js b/server/api/cmHopper/cmHopper.attributes.js
new file mode 100644 (file)
index 0000000..909d0f6
--- /dev/null
@@ -0,0 +1 @@
+var _0x9f98=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x49\x4E\x54\x45\x47\x45\x52","\x63\x6F\x6E\x74\x61\x63\x74\x4C\x69\x73\x74\x51\x75\x65\x75\x65"];_0x9f98[0];var moment=require(_0x9f98[1]);var Sequelize=require(_0x9f98[2]);module[_0x9f98[3]]= {phone:{type:Sequelize[_0x9f98[4]],allowNull:false},active:{type:Sequelize[_0x9f98[5]],defaultValue:false},scheduledat:{type:Sequelize[_0x9f98[6]],defaultValue:moment()[_0x9f98[8]](_0x9f98[7])},countbusyretry:{type:Sequelize[_0x9f98[9]],defaultValue:0},countcongestionretry:{type:Sequelize[_0x9f98[9]],defaultValue:0},countnoanswerretry:{type:Sequelize[_0x9f98[9]],defaultValue:0},callback:{type:Sequelize[_0x9f98[5]],defaultValue:false},callbackuniqueid:{type:Sequelize[_0x9f98[4]],defaultValue:null},callbackat:{type:Sequelize[_0x9f98[6]]},ContactId:{type:Sequelize[_0x9f98[9]],unique:_0x9f98[10]},ListId:{type:Sequelize[_0x9f98[9]],unique:_0x9f98[10]},UserId:{type:Sequelize[_0x9f98[9]]},VoiceQueueId:{type:Sequelize[_0x9f98[9]],unique:_0x9f98[10]},CampaignId:{type:Sequelize[_0x9f98[9]]}}
\ No newline at end of file
diff --git a/server/api/cmHopper/cmHopper.controller.js b/server/api/cmHopper/cmHopper.controller.js
new file mode 100644 (file)
index 0000000..8aa7ea1
--- /dev/null
@@ -0,0 +1 @@
+var _0x48b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x48\x6F\x70\x70\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x6C\x65\x74\x65\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x71\x75\x65\x75\x65","\x69\x76\x72","\x43\x6F\x6D\x70\x61\x69\x67\x6E\x49\x64","\x4C\x69\x73\x74\x49\x64","\x75\x73\x65\x72","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x67\x65\x74\x44\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74\x73","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74\x20\x44\x45\x53\x43","\x6E\x6F\x77","\x69\x6E\x63\x6C\x75\x64\x65","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x66\x69\x72\x73\x74\x6E\x61\x6D\x65","\x6C\x61\x73\x74\x4E\x61\x6D\x65","\x70\x68\x6F\x6E\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x6C\x6F\x63\x6B","\x55\x50\x44\x41\x54\x45","\x4C\x4F\x43\x4B","\x70\x75\x73\x68","\x61\x6C\x6C","\x66\x69\x6E\x64\x41\x6C\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x70\x72\x65\x76\x69\x65\x77","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x63\x61\x6C\x6C\x44\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74"];_0x48b8[0];var jsonpatch=require(_0x48b8[1]);var rp=require(_0x48b8[2]);var moment=require(_0x48b8[3]);var BPromise=require(_0x48b8[4]);var util=require(_0x48b8[5]);var path=require(_0x48b8[6]);var sox=require(_0x48b8[7]);var ejs=require(_0x48b8[8]);var fs=require(_0x48b8[9]);var _=require(_0x48b8[10]);var squel=require(_0x48b8[11]);var crypto=require(_0x48b8[12]);var jsforce=require(_0x48b8[13]);var toCsv=require(_0x48b8[14]);var qs=require(_0x48b8[15]);var logger=require(_0x48b8[17])(_0x48b8[16]);var utils=require(_0x48b8[18]);var config=require(_0x48b8[19]);var db=require(_0x48b8[21])[_0x48b8[20]];function respondWithStatusCode(_0xf4aax15,_0xf4aax16,_0xf4aax17){_0xf4aax16= _0xf4aax16|| 204;return function(_0xf4aax18){if(_0xf4aax18){logger[_0x48b8[24]](_0x48b8[22],_0xf4aax17,_0xf4aax16,_0x48b8[23]);logger[_0x48b8[26]](_0x48b8[25],_0xf4aax17,_0xf4aax16,_0x48b8[23]);return _0xf4aax15[_0x48b8[27]](_0xf4aax16)};return _0xf4aax15[_0x48b8[29]](304)[_0x48b8[28]]()}}function respondWithResult(_0xf4aax15,_0xf4aax16,_0xf4aax17){_0xf4aax16= _0xf4aax16|| 200;return function(_0xf4aax18){if(_0xf4aax18){logger[_0x48b8[24]](_0x48b8[22],_0xf4aax17,_0xf4aax16,_0x48b8[30]);logger[_0x48b8[26]](_0x48b8[25],_0xf4aax17,_0xf4aax16,_0x48b8[30],JSON[_0x48b8[31]](_0xf4aax18));return _0xf4aax15[_0x48b8[29]](_0xf4aax16)[_0x48b8[32]](_0xf4aax18)};return _0xf4aax15[_0x48b8[29]](304)[_0x48b8[28]]()}}function respondWithFilteredResult(_0xf4aax15,_0xf4aax1b,_0xf4aax17){return function(_0xf4aax18){if(_0xf4aax18){var _0xf4aax1c=_0xf4aax18[_0x48b8[33]],_0xf4aax1d=_0xf4aax1b[_0x48b8[34]],_0xf4aax1e=_0xf4aax1b[_0x48b8[34]]+ _0xf4aax1b[_0x48b8[35]],_0xf4aax16;if(_0xf4aax1e>= _0xf4aax1c){_0xf4aax1e= _0xf4aax1c;_0xf4aax16= 200}else {_0xf4aax16= 206};_0xf4aax15[_0x48b8[29]](_0xf4aax16);logger[_0x48b8[24]](_0x48b8[22],_0xf4aax17,_0xf4aax16,_0x48b8[36]);logger[_0x48b8[26]](_0x48b8[25],_0xf4aax17,_0xf4aax16,_0x48b8[30],JSON[_0x48b8[31]](_0xf4aax18));return _0xf4aax15[_0x48b8[40]](_0x48b8[37],_0xf4aax1d+ _0x48b8[38]+ _0xf4aax1e+ _0x48b8[39]+ _0xf4aax1c)[_0x48b8[32]](_0xf4aax18)};return null}}function patchUpdates(_0xf4aax20){return function(_0xf4aax18){try{jsonpatch[_0x48b8[41]](_0xf4aax18,_0xf4aax20,true)}catch(err){return BPromise[_0x48b8[42]](err)};return _0xf4aax18[_0x48b8[43]]()}}function saveUpdates(_0xf4aax22,_0xf4aax16,_0xf4aax17){return function(_0xf4aax18){if(_0xf4aax18){return _0xf4aax18[_0x48b8[46]](_0xf4aax22)[_0x48b8[45]](function(_0xf4aax23){logger[_0x48b8[24]](_0x48b8[22],_0xf4aax17,_0xf4aax16,_0x48b8[44]);logger[_0x48b8[26]](_0x48b8[25],_0xf4aax17,_0xf4aax16,_0x48b8[44],JSON[_0x48b8[31]](_0xf4aax18));return _0xf4aax23})};return null}}function removeEntity(_0xf4aax15,_0xf4aax16,_0xf4aax17){return function(_0xf4aax18){if(_0xf4aax18){return _0xf4aax18[_0x48b8[48]]()[_0x48b8[45]](function(){logger[_0x48b8[24]](_0x48b8[22],_0xf4aax17,_0xf4aax16,_0x48b8[47]);logger[_0x48b8[26]](_0x48b8[25],_0xf4aax17,_0xf4aax16,_0x48b8[47],JSON[_0x48b8[31]](_0xf4aax18));_0xf4aax15[_0x48b8[29]](204)[_0x48b8[28]]()})}}}function handleEntityNotFound(_0xf4aax15,_0xf4aax16,_0xf4aax17){return function(_0xf4aax18){if(!_0xf4aax18){logger[_0x48b8[50]](_0x48b8[22],_0xf4aax17,404,_0x48b8[49]);_0xf4aax15[_0x48b8[29]](404)[_0x48b8[28]]();return null};return _0xf4aax18}}function handleError(_0xf4aax15,_0xf4aax16,_0xf4aax17){_0xf4aax16= _0xf4aax16|| 500;return function(_0xf4aax27){logger[_0x48b8[50]](_0x48b8[22],_0xf4aax17,_0xf4aax16,JSON[_0x48b8[31]](_0xf4aax27));delete _0xf4aax27[_0x48b8[51]];_0xf4aax15[_0x48b8[29]](_0xf4aax16)[_0x48b8[52]](_0xf4aax27)}}exports[_0x48b8[53]]= function(_0xf4aax28,_0xf4aax15){var _0xf4aax1b={},_0xf4aax29={};_0xf4aax29[_0x48b8[54]]= _[_0x48b8[57]](db[_0x48b8[56]][_0x48b8[55]]);_0xf4aax29[_0x48b8[58]]= _[_0x48b8[57]](_0xf4aax28[_0x48b8[58]]);_0xf4aax29[_0x48b8[59]]= _[_0x48b8[60]](_0xf4aax29[_0x48b8[54]],_0xf4aax29[_0x48b8[58]]);_0xf4aax1b[_0x48b8[61]]= _[_0x48b8[60]](_0xf4aax29[_0x48b8[54]],qs[_0x48b8[62]](_0xf4aax28[_0x48b8[58]][_0x48b8[62]]));_0xf4aax1b[_0x48b8[61]]= (_0xf4aax1b[_0x48b8[61]][_0x48b8[63]])?_0xf4aax1b[_0x48b8[61]]:_0xf4aax29[_0x48b8[54]];if(!_0xf4aax28[_0x48b8[58]][_0x48b8[65]](_0x48b8[64])){_0xf4aax1b[_0x48b8[35]]= qs[_0x48b8[35]](_0xf4aax28[_0x48b8[58]][_0x48b8[35]]);_0xf4aax1b[_0x48b8[34]]= qs[_0x48b8[34]](_0xf4aax28[_0x48b8[58]][_0x48b8[34]])};_0xf4aax1b[_0x48b8[66]]= qs[_0x48b8[67]](_0xf4aax28[_0x48b8[58]][_0x48b8[67]]);_0xf4aax1b[_0x48b8[68]]= qs[_0x48b8[59]](_[_0x48b8[69]](_0xf4aax28[_0x48b8[58]],_0xf4aax29[_0x48b8[59]]));if(_0xf4aax28[_0x48b8[58]][_0x48b8[70]]){_0xf4aax1b[_0x48b8[68]]= _[_0x48b8[73]](_0xf4aax1b[_0x48b8[68]],{$or:_[_0x48b8[72]](_0xf4aax1b[_0x48b8[61]],function(_0xf4aax2a){var _0xf4aax2b={};_0xf4aax2b[_0xf4aax2a]= {$like:_0x48b8[71]+ _0xf4aax28[_0x48b8[58]][_0x48b8[70]]+ _0x48b8[71]};return _0xf4aax2b})})};_0xf4aax1b= _[_0x48b8[73]]({},_0xf4aax1b,_0xf4aax28[_0x48b8[74]]);return db[_0x48b8[56]][_0x48b8[76]](_0xf4aax1b)[_0x48b8[45]](respondWithFilteredResult(_0xf4aax15,_0xf4aax1b,_0x48b8[53]))[_0x48b8[75]](handleError(_0xf4aax15,null,_0x48b8[53]))};exports[_0x48b8[77]]= function(_0xf4aax28,_0xf4aax15){var _0xf4aax1b={raw:true,where:{id:_0xf4aax28[_0x48b8[79]][_0x48b8[78]]}},_0xf4aax29={};_0xf4aax29[_0x48b8[54]]= _[_0x48b8[57]](db[_0x48b8[56]][_0x48b8[55]]);_0xf4aax29[_0x48b8[58]]= _[_0x48b8[57]](_0xf4aax28[_0x48b8[58]]);_0xf4aax29[_0x48b8[59]]= _[_0x48b8[60]](_0xf4aax29[_0x48b8[54]],_0xf4aax29[_0x48b8[58]]);_0xf4aax1b[_0x48b8[61]]= _[_0x48b8[60]](_0xf4aax29[_0x48b8[54]],qs[_0x48b8[62]](_0xf4aax28[_0x48b8[58]][_0x48b8[62]]));_0xf4aax1b[_0x48b8[61]]= (_0xf4aax1b[_0x48b8[61]][_0x48b8[63]])?_0xf4aax1b[_0x48b8[61]]:_0xf4aax29[_0x48b8[54]];_0xf4aax1b= _[_0x48b8[73]]({},_0xf4aax1b,_0xf4aax28[_0x48b8[74]]);return db[_0x48b8[56]][_0x48b8[80]](_0xf4aax1b)[_0x48b8[45]](handleEntityNotFound(_0xf4aax15,null,_0x48b8[77]))[_0x48b8[45]](respondWithResult(_0xf4aax15,null,_0x48b8[77]))[_0x48b8[75]](handleError(_0xf4aax15,null,_0x48b8[77]))};exports[_0x48b8[81]]= function(_0xf4aax28,_0xf4aax15){return db[_0x48b8[56]][_0x48b8[81]](_0xf4aax28[_0x48b8[82]],{})[_0x48b8[45]](respondWithResult(_0xf4aax15,201,_0x48b8[81]))[_0x48b8[75]](handleError(_0xf4aax15,null,_0x48b8[81]))};exports[_0x48b8[46]]= function(_0xf4aax28,_0xf4aax15){if(_0xf4aax28[_0x48b8[82]][_0x48b8[78]]){delete _0xf4aax28[_0x48b8[82]][_0x48b8[78]]};return db[_0x48b8[56]][_0x48b8[80]]({where:{id:_0xf4aax28[_0x48b8[79]][_0x48b8[78]]}})[_0x48b8[45]](handleEntityNotFound(_0xf4aax15,null,_0x48b8[46]))[_0x48b8[45]](saveUpdates(_0xf4aax28[_0x48b8[82]],null,_0x48b8[46]))[_0x48b8[45]](respondWithResult(_0xf4aax15,null,_0x48b8[46]))[_0x48b8[75]](handleError(_0xf4aax15,null,_0x48b8[46]))};exports[_0x48b8[83]]= function(_0xf4aax28,_0xf4aax15){return db[_0x48b8[56]][_0x48b8[83]]()[_0x48b8[45]](respondWithResult(_0xf4aax15,null,_0x48b8[83]))[_0x48b8[75]](handleError(_0xf4aax15,null,_0x48b8[83]))};exports[_0x48b8[48]]= function(_0xf4aax28,_0xf4aax15){var _0xf4aax2c;return db[_0x48b8[56]][_0x48b8[80]]({where:{id:_0xf4aax28[_0x48b8[79]][_0x48b8[78]]}})[_0x48b8[45]](handleEntityNotFound(_0xf4aax15,null,_0x48b8[48]))[_0x48b8[45]](function(_0xf4aax18){if(_0xf4aax18){return _0xf4aax18[_0x48b8[48]]()[_0x48b8[45]](function(_0xf4aax18){logger[_0x48b8[24]](_0x48b8[22],_0x48b8[48],204,_0x48b8[47]);logger[_0x48b8[26]](_0x48b8[25],_0x48b8[48],204,_0x48b8[47],JSON[_0x48b8[31]](_0xf4aax18));return _0xf4aax18})}})[_0x48b8[45]](function(_0xf4aax18){_0xf4aax2c= _0xf4aax18;if(_0xf4aax18){if(_0xf4aax18[_0x48b8[85]]|| _0xf4aax18[_0x48b8[94]]){return db[_0xf4aax18[_0x48b8[85]]?_0x48b8[95]:_0x48b8[96]][_0x48b8[80]]({where:{id:_0xf4aax18[_0x48b8[85]]?_0xf4aax18[_0x48b8[85]]:_0xf4aax18[_0x48b8[94]]},attributes:[_0x48b8[78],_0x48b8[51]],raw:true})}}})[_0x48b8[45]](function(_0xf4aax18){if(_0xf4aax18){return db[_0x48b8[93]][_0x48b8[81]]({state:18,statedesc:_0x48b8[84],campaign:_0xf4aax18[_0x48b8[51]],campaigntype:_0xf4aax2c[_0x48b8[85]]?_0x48b8[86]:_0x48b8[87],CampaignId:_0xf4aax2c[_0x48b8[88]]|| null,VoiceQueueId:_0xf4aax2c[_0x48b8[85]]|| null,ListId:_0xf4aax2c[_0x48b8[89]]|| null,membername:_0xf4aax28[_0x48b8[90]][_0x48b8[51]],UserId:_0xf4aax28[_0x48b8[90]][_0x48b8[78]],deleted:true,deletedat:moment()[_0x48b8[92]](_0x48b8[91])})}})[_0x48b8[45]](function(){return _0xf4aax15[_0x48b8[29]](204)[_0x48b8[28]]()})[_0x48b8[75]](handleError(_0xf4aax15,null,_0x48b8[48]))};exports[_0x48b8[97]]= function(_0xf4aax28,_0xf4aax15,_0xf4aax2d){var _0xf4aax2e={count:0,rows:[]};var _0xf4aax1b={};var _0xf4aax29={};_0xf4aax29[_0x48b8[54]]= _[_0x48b8[57]](db[_0x48b8[56]][_0x48b8[55]]);_0xf4aax29[_0x48b8[58]]= _[_0x48b8[57]](_0xf4aax28[_0x48b8[58]]);_0xf4aax29[_0x48b8[59]]= _[_0x48b8[60]](_0xf4aax29[_0x48b8[54]],_0xf4aax29[_0x48b8[58]]);_0xf4aax1b[_0x48b8[61]]= [_0x48b8[78]];_0xf4aax1b[_0x48b8[35]]= qs[_0x48b8[35]](_0xf4aax28[_0x48b8[58]][_0x48b8[35]]);_0xf4aax1b[_0x48b8[34]]= qs[_0x48b8[34]](_0xf4aax28[_0x48b8[58]][_0x48b8[34]]);_0xf4aax1b[_0x48b8[66]]= _0x48b8[98];_0xf4aax1b[_0x48b8[68]]= {active:false,scheduledAt:{$lte:Date[_0x48b8[99]]()}};_0xf4aax1b[_0x48b8[100]]= [{model:db[_0x48b8[101]],as:_0x48b8[102],attributes:[_0x48b8[78],_0x48b8[103],_0x48b8[104],_0x48b8[105]]}];return _0xf4aax28[_0x48b8[90]][_0x48b8[116]]({where:{type:_0x48b8[114],dialMethod:_0x48b8[115]},attributes:[_0x48b8[78]],raw:true})[_0x48b8[45]](function(_0xf4aax2f){_0xf4aax1b[_0x48b8[68]][_0x48b8[85]]= {$in:_[_0x48b8[72]](_0xf4aax2f,_0x48b8[78])};return db[_0x48b8[113]][_0x48b8[106]](function(_0xf4aax30){_0xf4aax1b[_0x48b8[106]]= _0xf4aax30;_0xf4aax1b[_0x48b8[107]]= _0xf4aax30[_0x48b8[109]][_0x48b8[108]];return db[_0x48b8[56]][_0x48b8[112]](_0xf4aax1b)[_0x48b8[45]](function(_0xf4aax31){var _0xf4aax32=[];var _0xf4aax33={active:true};for(var _0xf4aax34=0;_0xf4aax34< _0xf4aax31[_0x48b8[63]];_0xf4aax34+= 1){_0xf4aax32[_0x48b8[110]](_0xf4aax31[_0xf4aax34][_0x48b8[46]](_0xf4aax33,{transaction:_0xf4aax30}))};return BPromise[_0x48b8[111]](_0xf4aax32)})[_0x48b8[45]](function(_0xf4aax31){return {rows:_0xf4aax31|| [],count:_0xf4aax31?_0xf4aax31[_0x48b8[63]]:0}})})})[_0x48b8[45]](respondWithResult(_0xf4aax15,null,_0x48b8[97]))[_0x48b8[75]](handleError(_0xf4aax15,null,_0x48b8[97]))};exports[_0x48b8[117]]= function(_0xf4aax28,_0xf4aax15,_0xf4aax2d){return db[_0x48b8[56]][_0x48b8[80]]({raw:true,where:{id:_0xf4aax28[_0x48b8[79]][_0x48b8[78]]}})[_0x48b8[45]](handleEntityNotFound(_0xf4aax15,null,_0x48b8[117]))[_0x48b8[45]](respondWithResult(_0xf4aax15,null,_0x48b8[117]))[_0x48b8[75]](handleError(_0xf4aax15,null,_0x48b8[117]))}
\ No newline at end of file
diff --git a/server/api/cmHopper/cmHopper.model.js b/server/api/cmHopper/cmHopper.model.js
new file mode 100644 (file)
index 0000000..f0bbf14
--- /dev/null
@@ -0,0 +1 @@
+var _0xccce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x64\x65\x66\x69\x6E\x65"];_0xccce[0];var _=require(_0xccce[1]);var util=require(_0xccce[2]);var logger=require(_0xccce[4])(_0xccce[3]);var attributes=require(_0xccce[5]);module[_0xccce[6]]= function(_0xc082x5,_0xc082x6){return _0xc082x5[_0xccce[10]](_0xccce[7],attributes,{tableName:_0xccce[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0xccce[9],"\x66\x69\x65\x6C\x64\x73":[_0xccce[9]]}],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/cmHopper/cmHopper.rpc.js b/server/api/cmHopper/cmHopper.rpc.js
new file mode 100644 (file)
index 0000000..319a5b0
--- /dev/null
@@ -0,0 +1 @@
+var _0x8654=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x53\x68\x6F\x77\x43\x6D\x48\x6F\x70\x70\x65\x72","\x66\x69\x6E\x64","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x55\x70\x64\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72","\x75\x70\x64\x61\x74\x65","\x44\x65\x73\x74\x72\x6F\x79\x43\x6D\x48\x6F\x70\x70\x65\x72","\x64\x65\x73\x74\x72\x6F\x79","\x47\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x70\x75\x73\x68","\x61\x6C\x6C","\x6F\x72\x64\x65\x72","\x55\x50\x44\x41\x54\x45","\x4C\x4F\x43\x4B","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x6B\x65\x79\x73","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x4D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x43\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64","\x43\x4F\x55\x4E\x54","\x49\x46","\x60\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74\x60\x20\x3E\x3D\x20","\x22\x25\x73\x22","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x20\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6C\x69\x74\x65\x72\x61\x6C","\x66\x6E","\x63\x6F\x6E\x74\x61\x63\x74\x73\x52\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x64"];_0x8654[0];var _=require(_0x8654[1]);var util=require(_0x8654[2]);var moment=require(_0x8654[3]);var BPromise=require(_0x8654[4]);var db=require(_0x8654[6])[_0x8654[5]];var utils=require(_0x8654[7]);var logger=require(_0x8654[9])(_0x8654[8]);var jayson=require(_0x8654[10]);var client=jayson[_0x8654[12]][_0x8654[11]]({port:9002});function respondWithRpcPromise(_0xa4f3xb,_0xa4f3xc,_0xa4f3xd){return  new BPromise(function(_0xa4f3xe,_0xa4f3xf){return client[_0x8654[25]](_0xa4f3xb,_0xa4f3xd)[_0x8654[24]](function(_0xa4f3x11){logger[_0x8654[17]](_0x8654[13],_0xa4f3xc,_0x8654[16]);logger[_0x8654[20]](_0x8654[18],_0xa4f3xc,_0x8654[16],JSON[_0x8654[19]](_0xa4f3x11));if(_0xa4f3x11[_0x8654[14]]){if(_0xa4f3x11[_0x8654[14]][_0x8654[21]]=== 500){logger[_0x8654[14]](_0x8654[13],_0xa4f3xc,_0xa4f3x11[_0x8654[14]][_0x8654[22]]);return _0xa4f3xf(_0xa4f3x11[_0x8654[14]][_0x8654[22]])};logger[_0x8654[14]](_0x8654[13],_0xa4f3xc,_0xa4f3x11[_0x8654[14]][_0x8654[22]]);return _0xa4f3xe(_0xa4f3x11[_0x8654[14]][_0x8654[22]])}else {logger[_0x8654[17]](_0x8654[13],_0xa4f3xc,_0x8654[16]);_0xa4f3xe(_0xa4f3x11[_0x8654[23]][_0x8654[22]])}})[_0x8654[15]](function(_0xa4f3x10){logger[_0x8654[14]](_0x8654[13],_0xa4f3xc,_0xa4f3x10);_0xa4f3xf(_0xa4f3x10)})})}exports[_0x8654[26]]= function(_0xa4f3xd){var _0xa4f3x12=this;return  new Promise(function(_0xa4f3xe,_0xa4f3xf){return db[_0x8654[37]][_0x8654[36]]({raw:_0xa4f3xd[_0x8654[27]]?(_0xa4f3xd[_0x8654[27]][_0x8654[28]]=== undefined)?true:false:true,where:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[29]]|| null:null,attributes:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[30]]|| null:null,limit:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[31]]|| null:null,include:_0xa4f3xd[_0x8654[27]]?(_0xa4f3xd[_0x8654[27]][_0x8654[32]]?_[_0x8654[35]](_0xa4f3xd[_0x8654[27]][_0x8654[32]],function(_0xa4f3x13){return {model:db[_0xa4f3x13[_0x8654[33]]],as:_0xa4f3x13[_0x8654[34]],attributes:_0xa4f3x13[_0x8654[30]],include:_0xa4f3x13[_0x8654[32]]?_[_0x8654[35]](_0xa4f3x13[_0x8654[32]],function(_0xa4f3x14){return {model:db[_0xa4f3x14[_0x8654[33]]],as:_0xa4f3x14[_0x8654[34]],attributes:_0xa4f3x14[_0x8654[30]],include:_0xa4f3x14[_0x8654[32]]?_[_0x8654[35]](_0xa4f3x14[_0x8654[32]],function(_0xa4f3x15){return {model:db[_0xa4f3x15[_0x8654[33]]],as:_0xa4f3x15[_0x8654[34]],attributes:_0xa4f3x15[_0x8654[30]]}}):[]}}):[]}}):[]):[]})[_0x8654[24]](function(_0xa4f3x11){logger[_0x8654[17]](_0x8654[26],_0xa4f3xd);logger[_0x8654[20]](_0x8654[26],_0xa4f3xd,JSON[_0x8654[19]](_0xa4f3x11));_0xa4f3xe(_0xa4f3x11)})[_0x8654[15]](function(_0xa4f3x10){logger[_0x8654[14]](_0x8654[26],_0xa4f3x10[_0x8654[22]],_0xa4f3xd);_0xa4f3xf(_0xa4f3x12[_0x8654[14]](500,_0xa4f3x10[_0x8654[22]]))})})};exports[_0x8654[38]]= function(_0xa4f3xd){var _0xa4f3x12=this;return  new Promise(function(_0xa4f3xe,_0xa4f3xf){return db[_0x8654[37]][_0x8654[39]]({raw:_0xa4f3xd[_0x8654[27]]?(_0xa4f3xd[_0x8654[27]][_0x8654[28]]=== undefined)?true:false:true,where:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[29]]|| null:null,attributes:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[30]]|| null:null,include:_0xa4f3xd[_0x8654[27]]?(_0xa4f3xd[_0x8654[27]][_0x8654[32]]?_[_0x8654[35]](_0xa4f3xd[_0x8654[27]][_0x8654[32]],function(_0xa4f3x13){return {model:db[_0xa4f3x13[_0x8654[33]]],as:_0xa4f3x13[_0x8654[34]],attributes:_0xa4f3x13[_0x8654[30]],include:_0xa4f3x13[_0x8654[32]]?_[_0x8654[35]](_0xa4f3x13[_0x8654[32]],function(_0xa4f3x14){return {model:db[_0xa4f3x14[_0x8654[33]]],as:_0xa4f3x14[_0x8654[34]],attributes:_0xa4f3x14[_0x8654[30]],include:_0xa4f3x14[_0x8654[32]]?_[_0x8654[35]](_0xa4f3x14[_0x8654[32]],function(_0xa4f3x15){return {model:db[_0xa4f3x15[_0x8654[33]]],as:_0xa4f3x15[_0x8654[34]],attributes:_0xa4f3x15[_0x8654[30]]}}):[]}}):[]}}):[]):[]})[_0x8654[24]](function(_0xa4f3x11){logger[_0x8654[17]](_0x8654[38],_0xa4f3xd);logger[_0x8654[20]](_0x8654[38],_0xa4f3xd,JSON[_0x8654[19]](_0xa4f3x11));_0xa4f3xe(_0xa4f3x11)})[_0x8654[15]](function(_0xa4f3x10){logger[_0x8654[14]](_0x8654[38],_0xa4f3x10[_0x8654[22]],_0xa4f3xd);_0xa4f3xf(_0xa4f3x12[_0x8654[14]](500,_0xa4f3x10[_0x8654[22]]))})})};exports[_0x8654[40]]= function(_0xa4f3xd){var _0xa4f3x12=this;return  new Promise(function(_0xa4f3xe,_0xa4f3xf){return db[_0x8654[37]][_0x8654[42]](_0xa4f3xd[_0x8654[41]],{raw:_0xa4f3xd[_0x8654[27]]?(_0xa4f3xd[_0x8654[27]][_0x8654[28]]=== undefined)?true:false:true})[_0x8654[24]](function(_0xa4f3x11){logger[_0x8654[17]](_0x8654[40],_0xa4f3xd);logger[_0x8654[20]](_0x8654[40],_0xa4f3xd,JSON[_0x8654[19]](_0xa4f3x11));_0xa4f3xe(_0xa4f3x11)})[_0x8654[15]](function(_0xa4f3x10){logger[_0x8654[14]](_0x8654[40],_0xa4f3x10[_0x8654[22]],_0xa4f3xd);_0xa4f3xf(_0xa4f3x12[_0x8654[14]](500,_0xa4f3x10[_0x8654[22]]))})})};exports[_0x8654[43]]= function(_0xa4f3xd){var _0xa4f3x12=this;return  new Promise(function(_0xa4f3xe,_0xa4f3xf){return db[_0x8654[37]][_0x8654[44]](_0xa4f3xd[_0x8654[41]],{raw:_0xa4f3xd[_0x8654[27]]?(_0xa4f3xd[_0x8654[27]][_0x8654[28]]=== undefined)?true:false:true,individualHooks:true,where:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[29]]|| null:null,attributes:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[30]]|| null:null,limit:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[31]]|| null:null})[_0x8654[24]](function(_0xa4f3x11){logger[_0x8654[17]](_0x8654[43],_0xa4f3xd);logger[_0x8654[20]](_0x8654[43],_0xa4f3xd,JSON[_0x8654[19]](_0xa4f3x11));_0xa4f3xe(_0xa4f3x11)})[_0x8654[15]](function(_0xa4f3x10){logger[_0x8654[14]](_0x8654[43],_0xa4f3x10[_0x8654[22]],_0xa4f3xd);_0xa4f3xf(_0xa4f3x12[_0x8654[14]](500,_0xa4f3x10[_0x8654[22]]))})})};exports[_0x8654[45]]= function(_0xa4f3xd){var _0xa4f3x12=this;return  new Promise(function(_0xa4f3xe,_0xa4f3xf){return db[_0x8654[37]][_0x8654[46]]({where:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[29]]|| null:null})[_0x8654[24]](function(_0xa4f3x11){logger[_0x8654[17]](_0x8654[45],_0xa4f3xd);logger[_0x8654[20]](_0x8654[45],_0xa4f3xd,JSON[_0x8654[19]](_0xa4f3x11));_0xa4f3xe(_0xa4f3x11)})[_0x8654[15]](function(_0xa4f3x10){logger[_0x8654[14]](_0x8654[45],_0xa4f3x10[_0x8654[22]],_0xa4f3xd);_0xa4f3xf(_0xa4f3x12[_0x8654[14]](500,_0xa4f3x10[_0x8654[22]]))})})};exports[_0x8654[47]]= function(_0xa4f3xd){var _0xa4f3x12=this;return  new Promise(function(_0xa4f3xe,_0xa4f3xf){return db[_0x8654[54]][_0x8654[59]]()[_0x8654[24]](function(_0xa4f3x16){return db[_0x8654[58]][_0x8654[57]](function(_0xa4f3x17){return db[_0x8654[37]][_0x8654[36]]({where:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[29]]|| null:null,attributes:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[30]]|| null:null,limit:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[31]]|| null:null,order:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[51]]|| null:null,transaction:_0xa4f3x17,lock:_0xa4f3x17[_0x8654[53]][_0x8654[52]],include:[{model:db[_0x8654[54]],as:_0x8654[55],attributes:_[_0x8654[56]](_0xa4f3x16)}]})[_0x8654[24]](function(_0xa4f3x11){var _0xa4f3x18=[];for(var _0xa4f3x13=0;_0xa4f3x13< _0xa4f3x11[_0x8654[48]];_0xa4f3x13+= 1){_0xa4f3x18[_0x8654[49]](_0xa4f3x11[_0xa4f3x13][_0x8654[44]](_0xa4f3xd[_0x8654[41]],{transaction:_0xa4f3x17}))};return BPromise[_0x8654[50]](_0xa4f3x18)})})[_0x8654[24]](function(_0xa4f3x11){logger[_0x8654[17]](_0x8654[47],_0xa4f3xd);logger[_0x8654[20]](_0x8654[47],_0xa4f3xd,JSON[_0x8654[19]](_0xa4f3x11));_0xa4f3xe(_0xa4f3x11)})[_0x8654[15]](function(_0xa4f3x10){logger[_0x8654[14]](_0x8654[47],_0xa4f3x10[_0x8654[22]],_0xa4f3xd);_0xa4f3xf(_0xa4f3x12[_0x8654[14]](500,_0xa4f3x10[_0x8654[22]]))})})})};exports[_0x8654[60]]= function(_0xa4f3xd){var _0xa4f3x12=this;return  new Promise(function(_0xa4f3xe,_0xa4f3xf){return db[_0x8654[58]][_0x8654[57]](function(_0xa4f3x17){return db[_0x8654[61]][_0x8654[42]](_0xa4f3xd[_0x8654[41]],{raw:_0xa4f3xd[_0x8654[27]]?(_0xa4f3xd[_0x8654[27]][_0x8654[28]]=== undefined)?true:false:true,transaction:_0xa4f3x17})[_0x8654[24]](function(){return db[_0x8654[37]][_0x8654[46]]({where:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[29]]|| null:null,transaction:_0xa4f3x17})})})[_0x8654[24]](function(_0xa4f3x11){logger[_0x8654[17]](_0x8654[60],_0xa4f3xd);logger[_0x8654[20]](_0x8654[60],_0xa4f3xd,JSON[_0x8654[19]](_0xa4f3x11));_0xa4f3xe(_0xa4f3x11)})[_0x8654[15]](function(_0xa4f3x10){logger[_0x8654[14]](_0x8654[60],_0xa4f3x10[_0x8654[22]],_0xa4f3xd);_0xa4f3xf(_0xa4f3x12[_0x8654[14]](500,_0xa4f3x10[_0x8654[22]]))})})};exports[_0x8654[62]]= function(_0xa4f3xd){var _0xa4f3x12=this;return  new Promise(function(_0xa4f3xe,_0xa4f3xf){return db[_0x8654[37]][_0x8654[36]]({raw:_0xa4f3xd[_0x8654[27]]?(_0xa4f3xd[_0x8654[27]][_0x8654[28]]=== undefined)?true:false:true,where:_0xa4f3xd[_0x8654[27]]?_0xa4f3xd[_0x8654[27]][_0x8654[29]]|| null:null,attributes:[[db[_0x8654[58]][_0x8654[71]](_0x8654[63],db[_0x8654[58]][_0x8654[71]](_0x8654[64],db[_0x8654[58]][_0x8654[70]](_0x8654[65]+ util[_0x8654[68]](_0x8654[66],moment()[_0x8654[68]](_0x8654[67]))+ _0x8654[69]))),_0x8654[72]]]})[_0x8654[24]](function(_0xa4f3x11){logger[_0x8654[17]](_0x8654[62],_0xa4f3xd);logger[_0x8654[20]](_0x8654[62],_0xa4f3xd,JSON[_0x8654[19]](_0xa4f3x11));_0xa4f3xe(_0xa4f3x11)})[_0x8654[15]](function(_0xa4f3x10){logger[_0x8654[14]](_0x8654[62],_0xa4f3x10[_0x8654[22]],_0xa4f3xd);_0xa4f3xf(_0xa4f3x12[_0x8654[14]](500,_0xa4f3x10[_0x8654[22]]))})})}
\ No newline at end of file
diff --git a/server/api/cmHopper/index.js b/server/api/cmHopper/index.js
new file mode 100644 (file)
index 0000000..6c78988
--- /dev/null
@@ -0,0 +1 @@
+var _0x210e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x70\x72\x65\x76\x69\x65\x77","\x67\x65\x74\x44\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74\x73","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x70\x72\x65\x76\x69\x65\x77\x2F\x3A\x69\x64","\x63\x61\x6C\x6C\x44\x69\x61\x6C\x65\x72\x43\x6F\x6E\x74\x61\x63\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x210e[0];var multer=require(_0x210e[1]);var util=require(_0x210e[2]);var path=require(_0x210e[3]);var express=require(_0x210e[4]);var router=express.Router();var auth=require(_0x210e[5]);var config=require(_0x210e[6]);var controller=require(_0x210e[7]);router[_0x210e[11]](_0x210e[8],auth[_0x210e[9]](),controller[_0x210e[10]]);router[_0x210e[11]](_0x210e[12],auth[_0x210e[9]](),controller[_0x210e[13]]);router[_0x210e[11]](_0x210e[14],auth[_0x210e[9]](),controller[_0x210e[15]]);router[_0x210e[11]](_0x210e[16],auth[_0x210e[9]](),controller[_0x210e[17]]);router[_0x210e[11]](_0x210e[18],auth[_0x210e[9]](),controller[_0x210e[19]]);router[_0x210e[21]](_0x210e[8],auth[_0x210e[9]](),controller[_0x210e[20]]);router[_0x210e[23]](_0x210e[16],auth[_0x210e[9]](),controller[_0x210e[22]]);router[_0x210e[25]](_0x210e[16],auth[_0x210e[9]](),controller[_0x210e[24]]);module[_0x210e[26]]= router
\ No newline at end of file
diff --git a/server/api/cmHopperBlack/cmHopperBlack.attributes.js b/server/api/cmHopperBlack/cmHopperBlack.attributes.js
new file mode 100644 (file)
index 0000000..9f5865d
--- /dev/null
@@ -0,0 +1 @@
+var _0xa775=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x6F\x6E\x74\x61\x63\x74\x4C\x69\x73\x74\x51\x75\x65\x75\x65"];_0xa775[0];var moment=require(_0xa775[1]);var Sequelize=require(_0xa775[2]);module[_0xa775[3]]= {phone:{type:Sequelize[_0xa775[4]],allowNull:false},ContactId:{type:Sequelize[_0xa775[5]],unique:_0xa775[6]},ListId:{type:Sequelize[_0xa775[5]],unique:_0xa775[6]},VoiceQueueId:{type:Sequelize[_0xa775[5]],unique:_0xa775[6]}}
\ No newline at end of file
diff --git a/server/api/cmHopperBlack/cmHopperBlack.controller.js b/server/api/cmHopperBlack/cmHopperBlack.controller.js
new file mode 100644 (file)
index 0000000..c54cf3c
--- /dev/null
@@ -0,0 +1 @@
+var _0xa02b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xa02b[0];var jsonpatch=require(_0xa02b[1]);var rp=require(_0xa02b[2]);var moment=require(_0xa02b[3]);var BPromise=require(_0xa02b[4]);var util=require(_0xa02b[5]);var path=require(_0xa02b[6]);var sox=require(_0xa02b[7]);var ejs=require(_0xa02b[8]);var fs=require(_0xa02b[9]);var _=require(_0xa02b[10]);var squel=require(_0xa02b[11]);var crypto=require(_0xa02b[12]);var jsforce=require(_0xa02b[13]);var toCsv=require(_0xa02b[14]);var qs=require(_0xa02b[15]);var logger=require(_0xa02b[17])(_0xa02b[16]);var utils=require(_0xa02b[18]);var config=require(_0xa02b[19]);var db=require(_0xa02b[21])[_0xa02b[20]];function respondWithStatusCode(_0x7ed1x15,_0x7ed1x16,_0x7ed1x17){_0x7ed1x16= _0x7ed1x16|| 204;return function(_0x7ed1x18){if(_0x7ed1x18){logger[_0xa02b[24]](_0xa02b[22],_0x7ed1x17,_0x7ed1x16,_0xa02b[23]);logger[_0xa02b[26]](_0xa02b[25],_0x7ed1x17,_0x7ed1x16,_0xa02b[23]);return _0x7ed1x15[_0xa02b[27]](_0x7ed1x16)};return _0x7ed1x15[_0xa02b[29]](304)[_0xa02b[28]]()}}function respondWithResult(_0x7ed1x15,_0x7ed1x16,_0x7ed1x17){_0x7ed1x16= _0x7ed1x16|| 200;return function(_0x7ed1x18){if(_0x7ed1x18){logger[_0xa02b[24]](_0xa02b[22],_0x7ed1x17,_0x7ed1x16,_0xa02b[30]);logger[_0xa02b[26]](_0xa02b[25],_0x7ed1x17,_0x7ed1x16,_0xa02b[30],JSON[_0xa02b[31]](_0x7ed1x18));return _0x7ed1x15[_0xa02b[29]](_0x7ed1x16)[_0xa02b[32]](_0x7ed1x18)};return _0x7ed1x15[_0xa02b[29]](304)[_0xa02b[28]]()}}function respondWithFilteredResult(_0x7ed1x15,_0x7ed1x1b,_0x7ed1x17){return function(_0x7ed1x18){if(_0x7ed1x18){var _0x7ed1x1c=_0x7ed1x18[_0xa02b[33]],_0x7ed1x1d=_0x7ed1x1b[_0xa02b[34]],_0x7ed1x1e=_0x7ed1x1b[_0xa02b[34]]+ _0x7ed1x1b[_0xa02b[35]],_0x7ed1x16;if(_0x7ed1x1e>= _0x7ed1x1c){_0x7ed1x1e= _0x7ed1x1c;_0x7ed1x16= 200}else {_0x7ed1x16= 206};_0x7ed1x15[_0xa02b[29]](_0x7ed1x16);logger[_0xa02b[24]](_0xa02b[22],_0x7ed1x17,_0x7ed1x16,_0xa02b[36]);logger[_0xa02b[26]](_0xa02b[25],_0x7ed1x17,_0x7ed1x16,_0xa02b[30],JSON[_0xa02b[31]](_0x7ed1x18));return _0x7ed1x15[_0xa02b[40]](_0xa02b[37],_0x7ed1x1d+ _0xa02b[38]+ _0x7ed1x1e+ _0xa02b[39]+ _0x7ed1x1c)[_0xa02b[32]](_0x7ed1x18)};return null}}function patchUpdates(_0x7ed1x20){return function(_0x7ed1x18){try{jsonpatch[_0xa02b[41]](_0x7ed1x18,_0x7ed1x20,true)}catch(err){return BPromise[_0xa02b[42]](err)};return _0x7ed1x18[_0xa02b[43]]()}}function saveUpdates(_0x7ed1x22,_0x7ed1x16,_0x7ed1x17){return function(_0x7ed1x18){if(_0x7ed1x18){return _0x7ed1x18[_0xa02b[46]](_0x7ed1x22)[_0xa02b[45]](function(_0x7ed1x23){logger[_0xa02b[24]](_0xa02b[22],_0x7ed1x17,_0x7ed1x16,_0xa02b[44]);logger[_0xa02b[26]](_0xa02b[25],_0x7ed1x17,_0x7ed1x16,_0xa02b[44],JSON[_0xa02b[31]](_0x7ed1x18));return _0x7ed1x23})};return null}}function removeEntity(_0x7ed1x15,_0x7ed1x16,_0x7ed1x17){return function(_0x7ed1x18){if(_0x7ed1x18){return _0x7ed1x18[_0xa02b[48]]()[_0xa02b[45]](function(){logger[_0xa02b[24]](_0xa02b[22],_0x7ed1x17,_0x7ed1x16,_0xa02b[47]);logger[_0xa02b[26]](_0xa02b[25],_0x7ed1x17,_0x7ed1x16,_0xa02b[47],JSON[_0xa02b[31]](_0x7ed1x18));_0x7ed1x15[_0xa02b[29]](204)[_0xa02b[28]]()})}}}function handleEntityNotFound(_0x7ed1x15,_0x7ed1x16,_0x7ed1x17){return function(_0x7ed1x18){if(!_0x7ed1x18){logger[_0xa02b[50]](_0xa02b[22],_0x7ed1x17,404,_0xa02b[49]);_0x7ed1x15[_0xa02b[29]](404)[_0xa02b[28]]();return null};return _0x7ed1x18}}function handleError(_0x7ed1x15,_0x7ed1x16,_0x7ed1x17){_0x7ed1x16= _0x7ed1x16|| 500;return function(_0x7ed1x27){logger[_0xa02b[50]](_0xa02b[22],_0x7ed1x17,_0x7ed1x16,JSON[_0xa02b[31]](_0x7ed1x27));delete _0x7ed1x27[_0xa02b[51]];_0x7ed1x15[_0xa02b[29]](_0x7ed1x16)[_0xa02b[52]](_0x7ed1x27)}}exports[_0xa02b[53]]= function(_0x7ed1x28,_0x7ed1x15){var _0x7ed1x1b={},_0x7ed1x29={};_0x7ed1x29[_0xa02b[54]]= _[_0xa02b[57]](db[_0xa02b[56]][_0xa02b[55]]);_0x7ed1x29[_0xa02b[58]]= _[_0xa02b[57]](_0x7ed1x28[_0xa02b[58]]);_0x7ed1x29[_0xa02b[59]]= _[_0xa02b[60]](_0x7ed1x29[_0xa02b[54]],_0x7ed1x29[_0xa02b[58]]);_0x7ed1x1b[_0xa02b[61]]= _[_0xa02b[60]](_0x7ed1x29[_0xa02b[54]],qs[_0xa02b[62]](_0x7ed1x28[_0xa02b[58]][_0xa02b[62]]));_0x7ed1x1b[_0xa02b[61]]= (_0x7ed1x1b[_0xa02b[61]][_0xa02b[63]])?_0x7ed1x1b[_0xa02b[61]]:_0x7ed1x29[_0xa02b[54]];if(!_0x7ed1x28[_0xa02b[58]][_0xa02b[65]](_0xa02b[64])){_0x7ed1x1b[_0xa02b[35]]= qs[_0xa02b[35]](_0x7ed1x28[_0xa02b[58]][_0xa02b[35]]);_0x7ed1x1b[_0xa02b[34]]= qs[_0xa02b[34]](_0x7ed1x28[_0xa02b[58]][_0xa02b[34]])};_0x7ed1x1b[_0xa02b[66]]= qs[_0xa02b[67]](_0x7ed1x28[_0xa02b[58]][_0xa02b[67]]);_0x7ed1x1b[_0xa02b[68]]= qs[_0xa02b[59]](_[_0xa02b[69]](_0x7ed1x28[_0xa02b[58]],_0x7ed1x29[_0xa02b[59]]));if(_0x7ed1x28[_0xa02b[58]][_0xa02b[70]]){_0x7ed1x1b[_0xa02b[68]]= _[_0xa02b[73]](_0x7ed1x1b[_0xa02b[68]],{$or:_[_0xa02b[72]](_0x7ed1x1b[_0xa02b[61]],function(_0x7ed1x2a){var _0x7ed1x2b={};_0x7ed1x2b[_0x7ed1x2a]= {$like:_0xa02b[71]+ _0x7ed1x28[_0xa02b[58]][_0xa02b[70]]+ _0xa02b[71]};return _0x7ed1x2b})})};_0x7ed1x1b= _[_0xa02b[73]]({},_0x7ed1x1b,_0x7ed1x28[_0xa02b[74]]);return db[_0xa02b[56]][_0xa02b[76]](_0x7ed1x1b)[_0xa02b[45]](respondWithFilteredResult(_0x7ed1x15,_0x7ed1x1b,_0xa02b[53]))[_0xa02b[75]](handleError(_0x7ed1x15,null,_0xa02b[53]))};exports[_0xa02b[77]]= function(_0x7ed1x28,_0x7ed1x15){var _0x7ed1x1b={raw:true,where:{id:_0x7ed1x28[_0xa02b[79]][_0xa02b[78]]}},_0x7ed1x29={};_0x7ed1x29[_0xa02b[54]]= _[_0xa02b[57]](db[_0xa02b[56]][_0xa02b[55]]);_0x7ed1x29[_0xa02b[58]]= _[_0xa02b[57]](_0x7ed1x28[_0xa02b[58]]);_0x7ed1x29[_0xa02b[59]]= _[_0xa02b[60]](_0x7ed1x29[_0xa02b[54]],_0x7ed1x29[_0xa02b[58]]);_0x7ed1x1b[_0xa02b[61]]= _[_0xa02b[60]](_0x7ed1x29[_0xa02b[54]],qs[_0xa02b[62]](_0x7ed1x28[_0xa02b[58]][_0xa02b[62]]));_0x7ed1x1b[_0xa02b[61]]= (_0x7ed1x1b[_0xa02b[61]][_0xa02b[63]])?_0x7ed1x1b[_0xa02b[61]]:_0x7ed1x29[_0xa02b[54]];_0x7ed1x1b= _[_0xa02b[73]]({},_0x7ed1x1b,_0x7ed1x28[_0xa02b[74]]);return db[_0xa02b[56]][_0xa02b[80]](_0x7ed1x1b)[_0xa02b[45]](handleEntityNotFound(_0x7ed1x15,null,_0xa02b[77]))[_0xa02b[45]](respondWithResult(_0x7ed1x15,null,_0xa02b[77]))[_0xa02b[75]](handleError(_0x7ed1x15,null,_0xa02b[77]))};exports[_0xa02b[46]]= function(_0x7ed1x28,_0x7ed1x15){if(_0x7ed1x28[_0xa02b[81]][_0xa02b[78]]){delete _0x7ed1x28[_0xa02b[81]][_0xa02b[78]]};return db[_0xa02b[56]][_0xa02b[80]]({where:{id:_0x7ed1x28[_0xa02b[79]][_0xa02b[78]]}})[_0xa02b[45]](handleEntityNotFound(_0x7ed1x15,null,_0xa02b[46]))[_0xa02b[45]](saveUpdates(_0x7ed1x28[_0xa02b[81]],null,_0xa02b[46]))[_0xa02b[45]](respondWithResult(_0x7ed1x15,null,_0xa02b[46]))[_0xa02b[75]](handleError(_0x7ed1x15,null,_0xa02b[46]))};exports[_0xa02b[48]]= function(_0x7ed1x28,_0x7ed1x15){return db[_0xa02b[56]][_0xa02b[80]]({where:{id:_0x7ed1x28[_0xa02b[79]][_0xa02b[78]]}})[_0xa02b[45]](handleEntityNotFound(_0x7ed1x15,null,_0xa02b[48]))[_0xa02b[45]](removeEntity(_0x7ed1x15,null,_0xa02b[48]))[_0xa02b[75]](handleError(_0x7ed1x15,null,_0xa02b[48]))};exports[_0xa02b[82]]= function(_0x7ed1x28,_0x7ed1x15){return db[_0xa02b[56]][_0xa02b[82]]()[_0xa02b[45]](respondWithResult(_0x7ed1x15,null,_0xa02b[82]))[_0xa02b[75]](handleError(_0x7ed1x15,null,_0xa02b[82]))}
\ No newline at end of file
diff --git a/server/api/cmHopperBlack/cmHopperBlack.model.js b/server/api/cmHopperBlack/cmHopperBlack.model.js
new file mode 100644 (file)
index 0000000..af074ee
--- /dev/null
@@ -0,0 +1 @@
+var _0xe485=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x64\x65\x66\x69\x6E\x65"];_0xe485[0];var _=require(_0xe485[1]);var util=require(_0xe485[2]);var logger=require(_0xe485[4])(_0xe485[3]);var attributes=require(_0xe485[5]);module[_0xe485[6]]= function(_0xed55x5,_0xed55x6){return _0xed55x5[_0xe485[9]](_0xe485[7],attributes,{tableName:_0xe485[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/cmHopperBlack/cmHopperBlack.rpc.js b/server/api/cmHopperBlack/cmHopperBlack.rpc.js
new file mode 100644 (file)
index 0000000..adffa91
--- /dev/null
@@ -0,0 +1 @@
+var _0x3758=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x55\x70\x64\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x62\x6F\x64\x79","\x75\x70\x64\x61\x74\x65","\x44\x65\x73\x74\x72\x6F\x79\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x64\x65\x73\x74\x72\x6F\x79"];_0x3758[0];var _=require(_0x3758[1]);var util=require(_0x3758[2]);var moment=require(_0x3758[3]);var BPromise=require(_0x3758[4]);var db=require(_0x3758[6])[_0x3758[5]];var utils=require(_0x3758[7]);var logger=require(_0x3758[9])(_0x3758[8]);var jayson=require(_0x3758[10]);var client=jayson[_0x3758[12]][_0x3758[11]]({port:9002});function respondWithRpcPromise(_0xf51exb,_0xf51exc,_0xf51exd){return  new BPromise(function(_0xf51exe,_0xf51exf){return client[_0x3758[25]](_0xf51exb,_0xf51exd)[_0x3758[24]](function(_0xf51ex11){logger[_0x3758[17]](_0x3758[13],_0xf51exc,_0x3758[16]);logger[_0x3758[20]](_0x3758[18],_0xf51exc,_0x3758[16],JSON[_0x3758[19]](_0xf51ex11));if(_0xf51ex11[_0x3758[14]]){if(_0xf51ex11[_0x3758[14]][_0x3758[21]]=== 500){logger[_0x3758[14]](_0x3758[13],_0xf51exc,_0xf51ex11[_0x3758[14]][_0x3758[22]]);return _0xf51exf(_0xf51ex11[_0x3758[14]][_0x3758[22]])};logger[_0x3758[14]](_0x3758[13],_0xf51exc,_0xf51ex11[_0x3758[14]][_0x3758[22]]);return _0xf51exe(_0xf51ex11[_0x3758[14]][_0x3758[22]])}else {logger[_0x3758[17]](_0x3758[13],_0xf51exc,_0x3758[16]);_0xf51exe(_0xf51ex11[_0x3758[23]][_0x3758[22]])}})[_0x3758[15]](function(_0xf51ex10){logger[_0x3758[14]](_0x3758[13],_0xf51exc,_0xf51ex10);_0xf51exf(_0xf51ex10)})})}exports[_0x3758[26]]= function(_0xf51exd){var _0xf51ex12=this;return  new Promise(function(_0xf51exe,_0xf51exf){return db[_0x3758[37]][_0x3758[36]]({raw:_0xf51exd[_0x3758[27]]?(_0xf51exd[_0x3758[27]][_0x3758[28]]=== undefined)?true:false:true,where:_0xf51exd[_0x3758[27]]?_0xf51exd[_0x3758[27]][_0x3758[29]]|| null:null,attributes:_0xf51exd[_0x3758[27]]?_0xf51exd[_0x3758[27]][_0x3758[30]]|| null:null,limit:_0xf51exd[_0x3758[27]]?_0xf51exd[_0x3758[27]][_0x3758[31]]|| null:null,include:_0xf51exd[_0x3758[27]]?(_0xf51exd[_0x3758[27]][_0x3758[32]]?_[_0x3758[35]](_0xf51exd[_0x3758[27]][_0x3758[32]],function(_0xf51ex13){return {model:db[_0xf51ex13[_0x3758[33]]],as:_0xf51ex13[_0x3758[34]],attributes:_0xf51ex13[_0x3758[30]],include:_0xf51ex13[_0x3758[32]]?_[_0x3758[35]](_0xf51ex13[_0x3758[32]],function(_0xf51ex14){return {model:db[_0xf51ex14[_0x3758[33]]],as:_0xf51ex14[_0x3758[34]],attributes:_0xf51ex14[_0x3758[30]],include:_0xf51ex14[_0x3758[32]]?_[_0x3758[35]](_0xf51ex14[_0x3758[32]],function(_0xf51ex15){return {model:db[_0xf51ex15[_0x3758[33]]],as:_0xf51ex15[_0x3758[34]],attributes:_0xf51ex15[_0x3758[30]]}}):[]}}):[]}}):[]):[]})[_0x3758[24]](function(_0xf51ex11){logger[_0x3758[17]](_0x3758[26],_0xf51exd);logger[_0x3758[20]](_0x3758[26],_0xf51exd,JSON[_0x3758[19]](_0xf51ex11));_0xf51exe(_0xf51ex11)})[_0x3758[15]](function(_0xf51ex10){logger[_0x3758[14]](_0x3758[26],_0xf51ex10[_0x3758[22]],_0xf51exd);_0xf51exf(_0xf51ex12[_0x3758[14]](500,_0xf51ex10[_0x3758[22]]))})})};exports[_0x3758[38]]= function(_0xf51exd){var _0xf51ex12=this;return  new Promise(function(_0xf51exe,_0xf51exf){return db[_0x3758[37]][_0x3758[40]](_0xf51exd[_0x3758[39]],{raw:_0xf51exd[_0x3758[27]]?(_0xf51exd[_0x3758[27]][_0x3758[28]]=== undefined)?true:false:true,individualHooks:true,where:_0xf51exd[_0x3758[27]]?_0xf51exd[_0x3758[27]][_0x3758[29]]|| null:null,attributes:_0xf51exd[_0x3758[27]]?_0xf51exd[_0x3758[27]][_0x3758[30]]|| null:null,limit:_0xf51exd[_0x3758[27]]?_0xf51exd[_0x3758[27]][_0x3758[31]]|| null:null})[_0x3758[24]](function(_0xf51ex11){logger[_0x3758[17]](_0x3758[38],_0xf51exd);logger[_0x3758[20]](_0x3758[38],_0xf51exd,JSON[_0x3758[19]](_0xf51ex11));_0xf51exe(_0xf51ex11)})[_0x3758[15]](function(_0xf51ex10){logger[_0x3758[14]](_0x3758[38],_0xf51ex10[_0x3758[22]],_0xf51exd);_0xf51exf(_0xf51ex12[_0x3758[14]](500,_0xf51ex10[_0x3758[22]]))})})};exports[_0x3758[41]]= function(_0xf51exd){var _0xf51ex12=this;return  new Promise(function(_0xf51exe,_0xf51exf){return db[_0x3758[37]][_0x3758[42]]({where:_0xf51exd[_0x3758[27]]?_0xf51exd[_0x3758[27]][_0x3758[29]]|| null:null})[_0x3758[24]](function(_0xf51ex11){logger[_0x3758[17]](_0x3758[41],_0xf51exd);logger[_0x3758[20]](_0x3758[41],_0xf51exd,JSON[_0x3758[19]](_0xf51ex11));_0xf51exe(_0xf51ex11)})[_0x3758[15]](function(_0xf51ex10){logger[_0x3758[14]](_0x3758[41],_0xf51ex10[_0x3758[22]],_0xf51exd);_0xf51exf(_0xf51ex12[_0x3758[14]](500,_0xf51ex10[_0x3758[22]]))})})}
\ No newline at end of file
diff --git a/server/api/cmHopperBlack/index.js b/server/api/cmHopperBlack/index.js
new file mode 100644 (file)
index 0000000..b9a1a20
--- /dev/null
@@ -0,0 +1 @@
+var _0x109e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x109e[0];var multer=require(_0x109e[1]);var util=require(_0x109e[2]);var path=require(_0x109e[3]);var express=require(_0x109e[4]);var router=express.Router();var auth=require(_0x109e[5]);var config=require(_0x109e[6]);var controller=require(_0x109e[7]);router[_0x109e[11]](_0x109e[8],auth[_0x109e[9]](),controller[_0x109e[10]]);router[_0x109e[11]](_0x109e[12],auth[_0x109e[9]](),controller[_0x109e[13]]);router[_0x109e[11]](_0x109e[14],auth[_0x109e[9]](),controller[_0x109e[15]]);router[_0x109e[17]](_0x109e[14],auth[_0x109e[9]](),controller[_0x109e[16]]);router[_0x109e[19]](_0x109e[14],auth[_0x109e[9]](),controller[_0x109e[18]]);module[_0x109e[20]]= router
\ No newline at end of file
diff --git a/server/api/cmHopperFinal/cmHopperFinal.attributes.js b/server/api/cmHopperFinal/cmHopperFinal.attributes.js
new file mode 100644 (file)
index 0000000..b71c825
--- /dev/null
@@ -0,0 +1 @@
+var _0x6512=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x65\x6E\x64\x74\x69\x6D\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x66\x6F\x6C\x6C\x6F\x77\x75\x70\x74\x69\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x61\x74","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x6512[0];var Sequelize=require(_0x6512[1]);var moment=require(_0x6512[2]);module[_0x6512[3]]= {state:{type:Sequelize.INTEGER(2)},statedesc:{type:Sequelize[_0x6512[4]]},scheduledat:{type:Sequelize[_0x6512[5]]},countbusyretry:{type:Sequelize[_0x6512[6]],defaultValue:0},countcongestionretry:{type:Sequelize[_0x6512[6]],defaultValue:0},countnoanswerretry:{type:Sequelize[_0x6512[6]],defaultValue:0},countglobal:{type:Sequelize[_0x6512[6]],defaultValue:0},uniqueid:{type:Sequelize[_0x6512[4]]},calleridnum:{type:Sequelize[_0x6512[4]]},calleridname:{type:Sequelize[_0x6512[4]]},starttime:{type:Sequelize[_0x6512[5]]},responsetime:{type:Sequelize[_0x6512[5]]},answertime:{type:Sequelize[_0x6512[5]]},droptime:{type:Sequelize[_0x6512[5]]},endtime:{type:Sequelize[_0x6512[5]]},ringtime:{type:Sequelize[_0x6512[6]],defaultValue:0},holdtime:{type:Sequelize[_0x6512[6]],defaultValue:0},talktime:{type:Sequelize[_0x6512[6]],defaultValue:0},followuptime:{type:Sequelize[_0x6512[6]],defaultValue:0},dropreason:{type:Sequelize[_0x6512[4]]},campaign:{type:Sequelize[_0x6512[4]]},campaigntype:{type:Sequelize[_0x6512[4]]},membername:{type:Sequelize[_0x6512[4]]},reason:{type:Sequelize[_0x6512[4]]},disposition:{type:Sequelize[_0x6512[4]]},dispositionat:{type:Sequelize[_0x6512[5]],set:function(_0x7faax3){var _0x7faax4=this[_0x6512[8]](_0x6512[7]);if(_0x7faax4&& _0x7faax3){this[_0x6512[12]](_0x6512[9],moment(_0x7faax3)[_0x6512[11]](moment(_0x7faax4),_0x6512[10]))};return this[_0x6512[12]](_0x6512[13],_0x7faax3)}},amd:{type:Sequelize[_0x6512[14]],defaultValue:false},fax:{type:Sequelize[_0x6512[14]],defaultValue:false},blacklist:{type:Sequelize[_0x6512[14]],defaultValue:false},rescheduled:{type:Sequelize[_0x6512[14]],defaultValue:false},rescheduledat:{type:Sequelize[_0x6512[5]]},callback:{type:Sequelize[_0x6512[14]],defaultValue:false},callbackuniqueid:{type:Sequelize[_0x6512[4]],defaultValue:null},callbackat:{type:Sequelize[_0x6512[5]]},deleted:{type:Sequelize[_0x6512[4]],defaultValue:null},deletedat:{type:Sequelize[_0x6512[5]]}}
\ No newline at end of file
diff --git a/server/api/cmHopperFinal/cmHopperFinal.controller.js b/server/api/cmHopperFinal/cmHopperFinal.controller.js
new file mode 100644 (file)
index 0000000..c5192de
--- /dev/null
@@ -0,0 +1 @@
+var _0x20eb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x64\x65\x73\x63\x72\x69\x62\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x62\x6F\x64\x79"];_0x20eb[0];var jsonpatch=require(_0x20eb[1]);var rp=require(_0x20eb[2]);var moment=require(_0x20eb[3]);var BPromise=require(_0x20eb[4]);var util=require(_0x20eb[5]);var path=require(_0x20eb[6]);var sox=require(_0x20eb[7]);var ejs=require(_0x20eb[8]);var fs=require(_0x20eb[9]);var _=require(_0x20eb[10]);var squel=require(_0x20eb[11]);var crypto=require(_0x20eb[12]);var jsforce=require(_0x20eb[13]);var toCsv=require(_0x20eb[14]);var qs=require(_0x20eb[15]);var logger=require(_0x20eb[17])(_0x20eb[16]);var utils=require(_0x20eb[18]);var config=require(_0x20eb[19]);var db=require(_0x20eb[21])[_0x20eb[20]];function respondWithStatusCode(_0x4981x15,_0x4981x16,_0x4981x17){_0x4981x16= _0x4981x16|| 204;return function(_0x4981x18){if(_0x4981x18){logger[_0x20eb[24]](_0x20eb[22],_0x4981x17,_0x4981x16,_0x20eb[23]);logger[_0x20eb[26]](_0x20eb[25],_0x4981x17,_0x4981x16,_0x20eb[23]);return _0x4981x15[_0x20eb[27]](_0x4981x16)};return _0x4981x15[_0x20eb[29]](304)[_0x20eb[28]]()}}function respondWithResult(_0x4981x15,_0x4981x16,_0x4981x17){_0x4981x16= _0x4981x16|| 200;return function(_0x4981x18){if(_0x4981x18){logger[_0x20eb[24]](_0x20eb[22],_0x4981x17,_0x4981x16,_0x20eb[30]);logger[_0x20eb[26]](_0x20eb[25],_0x4981x17,_0x4981x16,_0x20eb[30],JSON[_0x20eb[31]](_0x4981x18));return _0x4981x15[_0x20eb[29]](_0x4981x16)[_0x20eb[32]](_0x4981x18)};return _0x4981x15[_0x20eb[29]](304)[_0x20eb[28]]()}}function respondWithFilteredResult(_0x4981x15,_0x4981x1b,_0x4981x17){return function(_0x4981x18){if(_0x4981x18){var _0x4981x1c=_0x4981x18[_0x20eb[33]],_0x4981x1d=_0x4981x1b[_0x20eb[34]],_0x4981x1e=_0x4981x1b[_0x20eb[34]]+ _0x4981x1b[_0x20eb[35]],_0x4981x16;if(_0x4981x1e>= _0x4981x1c){_0x4981x1e= _0x4981x1c;_0x4981x16= 200}else {_0x4981x16= 206};_0x4981x15[_0x20eb[29]](_0x4981x16);logger[_0x20eb[24]](_0x20eb[22],_0x4981x17,_0x4981x16,_0x20eb[36]);logger[_0x20eb[26]](_0x20eb[25],_0x4981x17,_0x4981x16,_0x20eb[30],JSON[_0x20eb[31]](_0x4981x18));return _0x4981x15[_0x20eb[40]](_0x20eb[37],_0x4981x1d+ _0x20eb[38]+ _0x4981x1e+ _0x20eb[39]+ _0x4981x1c)[_0x20eb[32]](_0x4981x18)};return null}}function patchUpdates(_0x4981x20){return function(_0x4981x18){try{jsonpatch[_0x20eb[41]](_0x4981x18,_0x4981x20,true)}catch(err){return BPromise[_0x20eb[42]](err)};return _0x4981x18[_0x20eb[43]]()}}function saveUpdates(_0x4981x22,_0x4981x16,_0x4981x17){return function(_0x4981x18){if(_0x4981x18){return _0x4981x18[_0x20eb[46]](_0x4981x22)[_0x20eb[45]](function(_0x4981x23){logger[_0x20eb[24]](_0x20eb[22],_0x4981x17,_0x4981x16,_0x20eb[44]);logger[_0x20eb[26]](_0x20eb[25],_0x4981x17,_0x4981x16,_0x20eb[44],JSON[_0x20eb[31]](_0x4981x18));return _0x4981x23})};return null}}function removeEntity(_0x4981x15,_0x4981x16,_0x4981x17){return function(_0x4981x18){if(_0x4981x18){return _0x4981x18[_0x20eb[48]]()[_0x20eb[45]](function(){logger[_0x20eb[24]](_0x20eb[22],_0x4981x17,_0x4981x16,_0x20eb[47]);logger[_0x20eb[26]](_0x20eb[25],_0x4981x17,_0x4981x16,_0x20eb[47],JSON[_0x20eb[31]](_0x4981x18));_0x4981x15[_0x20eb[29]](204)[_0x20eb[28]]()})}}}function handleEntityNotFound(_0x4981x15,_0x4981x16,_0x4981x17){return function(_0x4981x18){if(!_0x4981x18){logger[_0x20eb[50]](_0x20eb[22],_0x4981x17,404,_0x20eb[49]);_0x4981x15[_0x20eb[29]](404)[_0x20eb[28]]();return null};return _0x4981x18}}function handleError(_0x4981x15,_0x4981x16,_0x4981x17){_0x4981x16= _0x4981x16|| 500;return function(_0x4981x27){logger[_0x20eb[50]](_0x20eb[22],_0x4981x17,_0x4981x16,JSON[_0x20eb[31]](_0x4981x27));delete _0x4981x27[_0x20eb[51]];_0x4981x15[_0x20eb[29]](_0x4981x16)[_0x20eb[52]](_0x4981x27)}}exports[_0x20eb[53]]= function(_0x4981x28,_0x4981x15){var _0x4981x1b={},_0x4981x29={};_0x4981x29[_0x20eb[54]]= _[_0x20eb[57]](db[_0x20eb[56]][_0x20eb[55]]);_0x4981x29[_0x20eb[58]]= _[_0x20eb[57]](_0x4981x28[_0x20eb[58]]);_0x4981x29[_0x20eb[59]]= _[_0x20eb[60]](_0x4981x29[_0x20eb[54]],_0x4981x29[_0x20eb[58]]);_0x4981x1b[_0x20eb[61]]= _[_0x20eb[60]](_0x4981x29[_0x20eb[54]],qs[_0x20eb[62]](_0x4981x28[_0x20eb[58]][_0x20eb[62]]));_0x4981x1b[_0x20eb[61]]= (_0x4981x1b[_0x20eb[61]][_0x20eb[63]])?_0x4981x1b[_0x20eb[61]]:_0x4981x29[_0x20eb[54]];if(!_0x4981x28[_0x20eb[58]][_0x20eb[65]](_0x20eb[64])){_0x4981x1b[_0x20eb[35]]= qs[_0x20eb[35]](_0x4981x28[_0x20eb[58]][_0x20eb[35]]);_0x4981x1b[_0x20eb[34]]= qs[_0x20eb[34]](_0x4981x28[_0x20eb[58]][_0x20eb[34]])};_0x4981x1b[_0x20eb[66]]= qs[_0x20eb[67]](_0x4981x28[_0x20eb[58]][_0x20eb[67]]);_0x4981x1b[_0x20eb[68]]= qs[_0x20eb[59]](_[_0x20eb[69]](_0x4981x28[_0x20eb[58]],_0x4981x29[_0x20eb[59]]));if(_0x4981x28[_0x20eb[58]][_0x20eb[70]]){_0x4981x1b[_0x20eb[68]]= _[_0x20eb[73]](_0x4981x1b[_0x20eb[68]],{$or:_[_0x20eb[72]](_0x4981x1b[_0x20eb[61]],function(_0x4981x2a){var _0x4981x2b={};_0x4981x2b[_0x4981x2a]= {$like:_0x20eb[71]+ _0x4981x28[_0x20eb[58]][_0x20eb[70]]+ _0x20eb[71]};return _0x4981x2b})})};_0x4981x1b= _[_0x20eb[73]]({},_0x4981x1b,_0x4981x28[_0x20eb[74]]);return db[_0x20eb[56]][_0x20eb[76]](_0x4981x1b)[_0x20eb[45]](respondWithFilteredResult(_0x4981x15,_0x4981x1b,_0x20eb[53]))[_0x20eb[75]](handleError(_0x4981x15,null,_0x20eb[53]))};exports[_0x20eb[77]]= function(_0x4981x28,_0x4981x15){var _0x4981x1b={raw:true,where:{id:_0x4981x28[_0x20eb[79]][_0x20eb[78]]}},_0x4981x29={};_0x4981x29[_0x20eb[54]]= _[_0x20eb[57]](db[_0x20eb[56]][_0x20eb[55]]);_0x4981x29[_0x20eb[58]]= _[_0x20eb[57]](_0x4981x28[_0x20eb[58]]);_0x4981x29[_0x20eb[59]]= _[_0x20eb[60]](_0x4981x29[_0x20eb[54]],_0x4981x29[_0x20eb[58]]);_0x4981x1b[_0x20eb[61]]= _[_0x20eb[60]](_0x4981x29[_0x20eb[54]],qs[_0x20eb[62]](_0x4981x28[_0x20eb[58]][_0x20eb[62]]));_0x4981x1b[_0x20eb[61]]= (_0x4981x1b[_0x20eb[61]][_0x20eb[63]])?_0x4981x1b[_0x20eb[61]]:_0x4981x29[_0x20eb[54]];_0x4981x1b= _[_0x20eb[73]]({},_0x4981x1b,_0x4981x28[_0x20eb[74]]);return db[_0x20eb[56]][_0x20eb[80]](_0x4981x1b)[_0x20eb[45]](handleEntityNotFound(_0x4981x15,null,_0x20eb[77]))[_0x20eb[45]](respondWithResult(_0x4981x15,null,_0x20eb[77]))[_0x20eb[75]](handleError(_0x4981x15,null,_0x20eb[77]))};exports[_0x20eb[81]]= function(_0x4981x28,_0x4981x15){return db[_0x20eb[56]][_0x20eb[81]]()[_0x20eb[45]](respondWithResult(_0x4981x15,null,_0x20eb[81]))[_0x20eb[75]](handleError(_0x4981x15,null,_0x20eb[81]))};exports[_0x20eb[46]]= function(_0x4981x28,_0x4981x15){if(_0x4981x28[_0x20eb[83]][_0x20eb[82]]){delete _0x4981x28[_0x20eb[83]][_0x20eb[82]]};return db[_0x20eb[56]][_0x20eb[80]]({where:{uniqueid:_0x4981x28[_0x20eb[79]][_0x20eb[78]]}})[_0x20eb[45]](handleEntityNotFound(_0x4981x15,null,_0x20eb[46]))[_0x20eb[45]](saveUpdates(_0x4981x28[_0x20eb[83]],null,_0x20eb[46]))[_0x20eb[45]](respondWithResult(_0x4981x15,null,_0x20eb[46]))[_0x20eb[75]](handleError(_0x4981x15,null,_0x20eb[46]))}
\ No newline at end of file
diff --git a/server/api/cmHopperFinal/cmHopperFinal.model.js b/server/api/cmHopperFinal/cmHopperFinal.model.js
new file mode 100644 (file)
index 0000000..6e8ebbe
--- /dev/null
@@ -0,0 +1 @@
+var _0x7536=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x64\x65\x66\x69\x6E\x65"];_0x7536[0];var _=require(_0x7536[1]);var util=require(_0x7536[2]);var logger=require(_0x7536[4])(_0x7536[3]);var attributes=require(_0x7536[5]);module[_0x7536[6]]= function(_0xc29cx5,_0xc29cx6){return _0xc29cx5[_0x7536[9]](_0x7536[7],attributes,{tableName:_0x7536[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/cmHopperFinal/cmHopperFinal.rpc.js b/server/api/cmHopperFinal/cmHopperFinal.rpc.js
new file mode 100644 (file)
index 0000000..6649b3b
--- /dev/null
@@ -0,0 +1 @@
+var _0x153d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C"];_0x153d[0];var _=require(_0x153d[1]);var util=require(_0x153d[2]);var moment=require(_0x153d[3]);var BPromise=require(_0x153d[4]);var db=require(_0x153d[6])[_0x153d[5]];var utils=require(_0x153d[7]);var logger=require(_0x153d[9])(_0x153d[8]);var jayson=require(_0x153d[10]);var client=jayson[_0x153d[12]][_0x153d[11]]({port:9002});function respondWithRpcPromise(_0x5427xb,_0x5427xc,_0x5427xd){return  new BPromise(function(_0x5427xe,_0x5427xf){return client[_0x153d[25]](_0x5427xb,_0x5427xd)[_0x153d[24]](function(_0x5427x11){logger[_0x153d[17]](_0x153d[13],_0x5427xc,_0x153d[16]);logger[_0x153d[20]](_0x153d[18],_0x5427xc,_0x153d[16],JSON[_0x153d[19]](_0x5427x11));if(_0x5427x11[_0x153d[14]]){if(_0x5427x11[_0x153d[14]][_0x153d[21]]=== 500){logger[_0x153d[14]](_0x153d[13],_0x5427xc,_0x5427x11[_0x153d[14]][_0x153d[22]]);return _0x5427xf(_0x5427x11[_0x153d[14]][_0x153d[22]])};logger[_0x153d[14]](_0x153d[13],_0x5427xc,_0x5427x11[_0x153d[14]][_0x153d[22]]);return _0x5427xe(_0x5427x11[_0x153d[14]][_0x153d[22]])}else {logger[_0x153d[17]](_0x153d[13],_0x5427xc,_0x153d[16]);_0x5427xe(_0x5427x11[_0x153d[23]][_0x153d[22]])}})[_0x153d[15]](function(_0x5427x10){logger[_0x153d[14]](_0x153d[13],_0x5427xc,_0x5427x10);_0x5427xf(_0x5427x10)})})}exports[_0x153d[26]]= function(_0x5427xd){var _0x5427x12=this;return  new Promise(function(_0x5427xe,_0x5427xf){return db[_0x153d[31]][_0x153d[30]](_0x5427xd[_0x153d[27]],{raw:_0x5427xd[_0x153d[28]]?(_0x5427xd[_0x153d[28]][_0x153d[29]]=== undefined)?true:false:true})[_0x153d[24]](function(_0x5427x11){logger[_0x153d[17]](_0x153d[26],_0x5427xd);logger[_0x153d[20]](_0x153d[26],_0x5427xd,JSON[_0x153d[19]](_0x5427x11));_0x5427xe(_0x5427x11)})[_0x153d[15]](function(_0x5427x10){logger[_0x153d[14]](_0x153d[26],_0x5427x10[_0x153d[22]],_0x5427xd);_0x5427xf(_0x5427x12[_0x153d[14]](500,_0x5427x10[_0x153d[22]]))})})}
\ No newline at end of file
diff --git a/server/api/cmHopperFinal/index.js b/server/api/cmHopperFinal/index.js
new file mode 100644 (file)
index 0000000..b62e3fc
--- /dev/null
@@ -0,0 +1 @@
+var _0xe8e1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xe8e1[0];var multer=require(_0xe8e1[1]);var util=require(_0xe8e1[2]);var path=require(_0xe8e1[3]);var express=require(_0xe8e1[4]);var router=express.Router();var auth=require(_0xe8e1[5]);var config=require(_0xe8e1[6]);var controller=require(_0xe8e1[7]);router[_0xe8e1[11]](_0xe8e1[8],auth[_0xe8e1[9]](),controller[_0xe8e1[10]]);router[_0xe8e1[11]](_0xe8e1[12],auth[_0xe8e1[9]](),controller[_0xe8e1[13]]);router[_0xe8e1[11]](_0xe8e1[14],auth[_0xe8e1[9]](),controller[_0xe8e1[15]]);router[_0xe8e1[17]](_0xe8e1[14],auth[_0xe8e1[9]](),controller[_0xe8e1[16]]);module[_0xe8e1[18]]= router
\ No newline at end of file
diff --git a/server/api/cmHopperHistory/cmHopperHistory.attributes.js b/server/api/cmHopperHistory/cmHopperHistory.attributes.js
new file mode 100644 (file)
index 0000000..f085d18
--- /dev/null
@@ -0,0 +1 @@
+var _0xfcf9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xfcf9[0];var Sequelize=require(_0xfcf9[1]);module[_0xfcf9[2]]= {state:{type:Sequelize.INTEGER(2)},statedesc:{type:Sequelize[_0xfcf9[3]]},scheduledat:{type:Sequelize[_0xfcf9[4]]},countbusyretry:{type:Sequelize[_0xfcf9[5]],defaultValue:0},countcongestionretry:{type:Sequelize[_0xfcf9[5]],defaultValue:0},countnoanswerretry:{type:Sequelize[_0xfcf9[5]],defaultValue:0},countglobal:{type:Sequelize[_0xfcf9[5]],defaultValue:0},uniqueid:{type:Sequelize[_0xfcf9[3]]},calleridnum:{type:Sequelize[_0xfcf9[3]]},calleridname:{type:Sequelize[_0xfcf9[3]]},starttime:{type:Sequelize[_0xfcf9[4]]},responsetime:{type:Sequelize[_0xfcf9[4]]},answertime:{type:Sequelize[_0xfcf9[4]]},droptime:{type:Sequelize[_0xfcf9[4]]},endtime:{type:Sequelize[_0xfcf9[4]]},ringtime:{type:Sequelize[_0xfcf9[5]],defaultValue:0},holdtime:{type:Sequelize[_0xfcf9[5]],defaultValue:0},talktime:{type:Sequelize[_0xfcf9[5]],defaultValue:0},followuptime:{type:Sequelize[_0xfcf9[5]],defaultValue:0},dropreason:{type:Sequelize[_0xfcf9[3]]},campaign:{type:Sequelize[_0xfcf9[3]]},campaigntype:{type:Sequelize[_0xfcf9[3]]},membername:{type:Sequelize[_0xfcf9[3]]},reason:{type:Sequelize[_0xfcf9[3]]},amd:{type:Sequelize[_0xfcf9[6]],defaultValue:false},fax:{type:Sequelize[_0xfcf9[6]],defaultValue:false},callback:{type:Sequelize[_0xfcf9[6]],defaultValue:false},callbackuniqueid:{type:Sequelize[_0xfcf9[3]],defaultValue:null},callbackat:{type:Sequelize[_0xfcf9[4]]}}
\ No newline at end of file
diff --git a/server/api/cmHopperHistory/cmHopperHistory.controller.js b/server/api/cmHopperHistory/cmHopperHistory.controller.js
new file mode 100644 (file)
index 0000000..466c631
--- /dev/null
@@ -0,0 +1 @@
+var _0x322c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x64\x65\x73\x63\x72\x69\x62\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x62\x6F\x64\x79"];_0x322c[0];var jsonpatch=require(_0x322c[1]);var rp=require(_0x322c[2]);var moment=require(_0x322c[3]);var BPromise=require(_0x322c[4]);var util=require(_0x322c[5]);var path=require(_0x322c[6]);var sox=require(_0x322c[7]);var ejs=require(_0x322c[8]);var fs=require(_0x322c[9]);var _=require(_0x322c[10]);var squel=require(_0x322c[11]);var crypto=require(_0x322c[12]);var jsforce=require(_0x322c[13]);var toCsv=require(_0x322c[14]);var qs=require(_0x322c[15]);var logger=require(_0x322c[17])(_0x322c[16]);var utils=require(_0x322c[18]);var config=require(_0x322c[19]);var db=require(_0x322c[21])[_0x322c[20]];function respondWithStatusCode(_0xa792x15,_0xa792x16,_0xa792x17){_0xa792x16= _0xa792x16|| 204;return function(_0xa792x18){if(_0xa792x18){logger[_0x322c[24]](_0x322c[22],_0xa792x17,_0xa792x16,_0x322c[23]);logger[_0x322c[26]](_0x322c[25],_0xa792x17,_0xa792x16,_0x322c[23]);return _0xa792x15[_0x322c[27]](_0xa792x16)};return _0xa792x15[_0x322c[29]](304)[_0x322c[28]]()}}function respondWithResult(_0xa792x15,_0xa792x16,_0xa792x17){_0xa792x16= _0xa792x16|| 200;return function(_0xa792x18){if(_0xa792x18){logger[_0x322c[24]](_0x322c[22],_0xa792x17,_0xa792x16,_0x322c[30]);logger[_0x322c[26]](_0x322c[25],_0xa792x17,_0xa792x16,_0x322c[30],JSON[_0x322c[31]](_0xa792x18));return _0xa792x15[_0x322c[29]](_0xa792x16)[_0x322c[32]](_0xa792x18)};return _0xa792x15[_0x322c[29]](304)[_0x322c[28]]()}}function respondWithFilteredResult(_0xa792x15,_0xa792x1b,_0xa792x17){return function(_0xa792x18){if(_0xa792x18){var _0xa792x1c=_0xa792x18[_0x322c[33]],_0xa792x1d=_0xa792x1b[_0x322c[34]],_0xa792x1e=_0xa792x1b[_0x322c[34]]+ _0xa792x1b[_0x322c[35]],_0xa792x16;if(_0xa792x1e>= _0xa792x1c){_0xa792x1e= _0xa792x1c;_0xa792x16= 200}else {_0xa792x16= 206};_0xa792x15[_0x322c[29]](_0xa792x16);logger[_0x322c[24]](_0x322c[22],_0xa792x17,_0xa792x16,_0x322c[36]);logger[_0x322c[26]](_0x322c[25],_0xa792x17,_0xa792x16,_0x322c[30],JSON[_0x322c[31]](_0xa792x18));return _0xa792x15[_0x322c[40]](_0x322c[37],_0xa792x1d+ _0x322c[38]+ _0xa792x1e+ _0x322c[39]+ _0xa792x1c)[_0x322c[32]](_0xa792x18)};return null}}function patchUpdates(_0xa792x20){return function(_0xa792x18){try{jsonpatch[_0x322c[41]](_0xa792x18,_0xa792x20,true)}catch(err){return BPromise[_0x322c[42]](err)};return _0xa792x18[_0x322c[43]]()}}function saveUpdates(_0xa792x22,_0xa792x16,_0xa792x17){return function(_0xa792x18){if(_0xa792x18){return _0xa792x18[_0x322c[46]](_0xa792x22)[_0x322c[45]](function(_0xa792x23){logger[_0x322c[24]](_0x322c[22],_0xa792x17,_0xa792x16,_0x322c[44]);logger[_0x322c[26]](_0x322c[25],_0xa792x17,_0xa792x16,_0x322c[44],JSON[_0x322c[31]](_0xa792x18));return _0xa792x23})};return null}}function removeEntity(_0xa792x15,_0xa792x16,_0xa792x17){return function(_0xa792x18){if(_0xa792x18){return _0xa792x18[_0x322c[48]]()[_0x322c[45]](function(){logger[_0x322c[24]](_0x322c[22],_0xa792x17,_0xa792x16,_0x322c[47]);logger[_0x322c[26]](_0x322c[25],_0xa792x17,_0xa792x16,_0x322c[47],JSON[_0x322c[31]](_0xa792x18));_0xa792x15[_0x322c[29]](204)[_0x322c[28]]()})}}}function handleEntityNotFound(_0xa792x15,_0xa792x16,_0xa792x17){return function(_0xa792x18){if(!_0xa792x18){logger[_0x322c[50]](_0x322c[22],_0xa792x17,404,_0x322c[49]);_0xa792x15[_0x322c[29]](404)[_0x322c[28]]();return null};return _0xa792x18}}function handleError(_0xa792x15,_0xa792x16,_0xa792x17){_0xa792x16= _0xa792x16|| 500;return function(_0xa792x27){logger[_0x322c[50]](_0x322c[22],_0xa792x17,_0xa792x16,JSON[_0x322c[31]](_0xa792x27));delete _0xa792x27[_0x322c[51]];_0xa792x15[_0x322c[29]](_0xa792x16)[_0x322c[52]](_0xa792x27)}}exports[_0x322c[53]]= function(_0xa792x28,_0xa792x15){var _0xa792x1b={},_0xa792x29={};_0xa792x29[_0x322c[54]]= _[_0x322c[57]](db[_0x322c[56]][_0x322c[55]]);_0xa792x29[_0x322c[58]]= _[_0x322c[57]](_0xa792x28[_0x322c[58]]);_0xa792x29[_0x322c[59]]= _[_0x322c[60]](_0xa792x29[_0x322c[54]],_0xa792x29[_0x322c[58]]);_0xa792x1b[_0x322c[61]]= _[_0x322c[60]](_0xa792x29[_0x322c[54]],qs[_0x322c[62]](_0xa792x28[_0x322c[58]][_0x322c[62]]));_0xa792x1b[_0x322c[61]]= (_0xa792x1b[_0x322c[61]][_0x322c[63]])?_0xa792x1b[_0x322c[61]]:_0xa792x29[_0x322c[54]];if(!_0xa792x28[_0x322c[58]][_0x322c[65]](_0x322c[64])){_0xa792x1b[_0x322c[35]]= qs[_0x322c[35]](_0xa792x28[_0x322c[58]][_0x322c[35]]);_0xa792x1b[_0x322c[34]]= qs[_0x322c[34]](_0xa792x28[_0x322c[58]][_0x322c[34]])};_0xa792x1b[_0x322c[66]]= qs[_0x322c[67]](_0xa792x28[_0x322c[58]][_0x322c[67]]);_0xa792x1b[_0x322c[68]]= qs[_0x322c[59]](_[_0x322c[69]](_0xa792x28[_0x322c[58]],_0xa792x29[_0x322c[59]]));if(_0xa792x28[_0x322c[58]][_0x322c[70]]){_0xa792x1b[_0x322c[68]]= _[_0x322c[73]](_0xa792x1b[_0x322c[68]],{$or:_[_0x322c[72]](_0xa792x1b[_0x322c[61]],function(_0xa792x2a){var _0xa792x2b={};_0xa792x2b[_0xa792x2a]= {$like:_0x322c[71]+ _0xa792x28[_0x322c[58]][_0x322c[70]]+ _0x322c[71]};return _0xa792x2b})})};_0xa792x1b= _[_0x322c[73]]({},_0xa792x1b,_0xa792x28[_0x322c[74]]);return db[_0x322c[56]][_0x322c[76]](_0xa792x1b)[_0x322c[45]](respondWithFilteredResult(_0xa792x15,_0xa792x1b,_0x322c[53]))[_0x322c[75]](handleError(_0xa792x15,null,_0x322c[53]))};exports[_0x322c[77]]= function(_0xa792x28,_0xa792x15){var _0xa792x1b={raw:true,where:{id:_0xa792x28[_0x322c[79]][_0x322c[78]]}},_0xa792x29={};_0xa792x29[_0x322c[54]]= _[_0x322c[57]](db[_0x322c[56]][_0x322c[55]]);_0xa792x29[_0x322c[58]]= _[_0x322c[57]](_0xa792x28[_0x322c[58]]);_0xa792x29[_0x322c[59]]= _[_0x322c[60]](_0xa792x29[_0x322c[54]],_0xa792x29[_0x322c[58]]);_0xa792x1b[_0x322c[61]]= _[_0x322c[60]](_0xa792x29[_0x322c[54]],qs[_0x322c[62]](_0xa792x28[_0x322c[58]][_0x322c[62]]));_0xa792x1b[_0x322c[61]]= (_0xa792x1b[_0x322c[61]][_0x322c[63]])?_0xa792x1b[_0x322c[61]]:_0xa792x29[_0x322c[54]];_0xa792x1b= _[_0x322c[73]]({},_0xa792x1b,_0xa792x28[_0x322c[74]]);return db[_0x322c[56]][_0x322c[80]](_0xa792x1b)[_0x322c[45]](handleEntityNotFound(_0xa792x15,null,_0x322c[77]))[_0x322c[45]](respondWithResult(_0xa792x15,null,_0x322c[77]))[_0x322c[75]](handleError(_0xa792x15,null,_0x322c[77]))};exports[_0x322c[81]]= function(_0xa792x28,_0xa792x15){return db[_0x322c[56]][_0x322c[81]]()[_0x322c[45]](respondWithResult(_0xa792x15,null,_0x322c[81]))[_0x322c[75]](handleError(_0xa792x15,null,_0x322c[81]))};exports[_0x322c[46]]= function(_0xa792x28,_0xa792x15){if(_0xa792x28[_0x322c[83]][_0x322c[82]]){delete _0xa792x28[_0x322c[83]][_0x322c[82]]};return db[_0x322c[56]][_0x322c[80]]({where:{uniqueid:_0xa792x28[_0x322c[79]][_0x322c[78]]}})[_0x322c[45]](handleEntityNotFound(_0xa792x15,null,_0x322c[46]))[_0x322c[45]](saveUpdates(_0xa792x28[_0x322c[83]],null,_0x322c[46]))[_0x322c[45]](respondWithResult(_0xa792x15,null,_0x322c[46]))[_0x322c[75]](handleError(_0xa792x15,null,_0x322c[46]))}
\ No newline at end of file
diff --git a/server/api/cmHopperHistory/cmHopperHistory.model.js b/server/api/cmHopperHistory/cmHopperHistory.model.js
new file mode 100644 (file)
index 0000000..277cda7
--- /dev/null
@@ -0,0 +1 @@
+var _0x6f82=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x65\x6E\x64\x74\x69\x6D\x65","\x64\x65\x66\x69\x6E\x65"];_0x6f82[0];var _=require(_0x6f82[1]);var util=require(_0x6f82[2]);var logger=require(_0x6f82[4])(_0x6f82[3]);var attributes=require(_0x6f82[5]);module[_0x6f82[6]]= function(_0x27fbx5,_0x27fbx6){return _0x27fbx5[_0x6f82[10]](_0x6f82[7],attributes,{tableName:_0x6f82[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0x6f82[9],"\x66\x69\x65\x6C\x64\x73":[_0x6f82[9]]}],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/cmHopperHistory/cmHopperHistory.rpc.js b/server/api/cmHopperHistory/cmHopperHistory.rpc.js
new file mode 100644 (file)
index 0000000..ba00ed3
--- /dev/null
@@ -0,0 +1 @@
+var _0x2b9e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x41\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x77\x68\x65\x72\x65","\x43\x4F\x55\x4E\x54","\x69\x64","\x63\x6F\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x6E","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73","\x49\x46","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x34\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6C\x69\x74\x65\x72\x61\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x6E\x73\x77\x65\x72\x65\x64\x43\x61\x6C\x6C\x73","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x30\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x54\x69\x6D\x65\x6F\x75\x74","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x31\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x41\x56\x47","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x34\x2C\x20\x60\x68\x6F\x6C\x64\x74\x69\x6D\x65\x60\x2C\x20\x6E\x75\x6C\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x48\x6F\x6C\x64\x74\x69\x6D\x65","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x34\x2C\x20\x60\x74\x61\x6C\x6B\x74\x69\x6D\x65\x60\x2C\x20\x6E\x75\x6C\x6C","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x54\x61\x6C\x6B\x74\x69\x6D\x65","\x66\x69\x6E\x64\x41\x6C\x6C","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x6E\x61\x6D\x65","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x30\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x53\x75\x63\x68\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x33\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x35\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x75\x73\x79\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x38\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x30\x20\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x54\x69\x6D\x65\x6F\x75\x74","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x31\x20\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x32\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x55\x6E\x6B\x6E\x6F\x77\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x33\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x34\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x46\x61\x69\x6C\x75\x72\x65\x43\x61\x6C\x6C\x73\x44\x61\x79","\x60\x73\x74\x61\x74\x65\x60\x20\x3D\x20\x31\x36\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x41\x67\x69\x43\x61\x6C\x6C\x73\x44\x61\x79","\x47\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x69\x76\x72\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x44\x61\x79\x73","\x69\x76\x72\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79"];_0x2b9e[0];var _=require(_0x2b9e[1]);var util=require(_0x2b9e[2]);var moment=require(_0x2b9e[3]);var BPromise=require(_0x2b9e[4]);var db=require(_0x2b9e[6])[_0x2b9e[5]];var utils=require(_0x2b9e[7]);var logger=require(_0x2b9e[9])(_0x2b9e[8]);var jayson=require(_0x2b9e[10]);var client=jayson[_0x2b9e[12]][_0x2b9e[11]]({port:9002});function respondWithRpcPromise(_0x4098xb,_0x4098xc,_0x4098xd){return  new BPromise(function(_0x4098xe,_0x4098xf){return client[_0x2b9e[25]](_0x4098xb,_0x4098xd)[_0x2b9e[24]](function(_0x4098x11){logger[_0x2b9e[17]](_0x2b9e[13],_0x4098xc,_0x2b9e[16]);logger[_0x2b9e[20]](_0x2b9e[18],_0x4098xc,_0x2b9e[16],JSON[_0x2b9e[19]](_0x4098x11));if(_0x4098x11[_0x2b9e[14]]){if(_0x4098x11[_0x2b9e[14]][_0x2b9e[21]]=== 500){logger[_0x2b9e[14]](_0x2b9e[13],_0x4098xc,_0x4098x11[_0x2b9e[14]][_0x2b9e[22]]);return _0x4098xf(_0x4098x11[_0x2b9e[14]][_0x2b9e[22]])};logger[_0x2b9e[14]](_0x2b9e[13],_0x4098xc,_0x4098x11[_0x2b9e[14]][_0x2b9e[22]]);return _0x4098xe(_0x4098x11[_0x2b9e[14]][_0x2b9e[22]])}else {logger[_0x2b9e[17]](_0x2b9e[13],_0x4098xc,_0x2b9e[16]);_0x4098xe(_0x4098x11[_0x2b9e[23]][_0x2b9e[22]])}})[_0x2b9e[15]](function(_0x4098x10){logger[_0x2b9e[14]](_0x2b9e[13],_0x4098xc,_0x4098x10);_0x4098xf(_0x4098x10)})})}exports[_0x2b9e[26]]= function(_0x4098xd){var _0x4098x12=this;return  new Promise(function(_0x4098xe,_0x4098xf){return db[_0x2b9e[31]][_0x2b9e[30]](_0x4098xd[_0x2b9e[27]],{raw:_0x4098xd[_0x2b9e[28]]?(_0x4098xd[_0x2b9e[28]][_0x2b9e[29]]=== undefined)?true:false:true})[_0x2b9e[24]](function(_0x4098x11){logger[_0x2b9e[17]](_0x2b9e[26],_0x4098xd);logger[_0x2b9e[20]](_0x2b9e[26],_0x4098xd,JSON[_0x2b9e[19]](_0x4098x11));_0x4098xe(_0x4098x11)})[_0x2b9e[15]](function(_0x4098x10){logger[_0x2b9e[14]](_0x2b9e[26],_0x4098x10[_0x2b9e[22]],_0x4098xd);_0x4098xf(_0x4098x12[_0x2b9e[14]](500,_0x4098x10[_0x2b9e[22]]))})})};exports[_0x2b9e[32]]= function(_0x4098xd){var _0x4098x12=this;return  new Promise(function(_0x4098xe,_0x4098xf){return db[_0x2b9e[31]][_0x2b9e[53]]({raw:_0x4098xd[_0x2b9e[28]]?(_0x4098xd[_0x2b9e[28]][_0x2b9e[29]]=== undefined)?true:false:true,where:_0x4098xd[_0x2b9e[28]]?_0x4098xd[_0x2b9e[28]][_0x2b9e[33]]|| null:null,attributes:[[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[36]](_0x2b9e[35])),_0x2b9e[39]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[41]))),_0x2b9e[43]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[44]))),_0x2b9e[45]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[46]))),_0x2b9e[47]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[48],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[49]))),_0x2b9e[50]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[48],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[51]))),_0x2b9e[52]]]})[_0x2b9e[24]](function(_0x4098x11){logger[_0x2b9e[17]](_0x2b9e[32],_0x4098xd);logger[_0x2b9e[20]](_0x2b9e[32],_0x4098xd,JSON[_0x2b9e[19]](_0x4098x11));_0x4098xe(_0x4098x11)})[_0x2b9e[15]](function(_0x4098x10){logger[_0x2b9e[14]](_0x2b9e[32],_0x4098x10[_0x2b9e[22]],_0x4098xd);_0x4098xf(_0x4098x12[_0x2b9e[14]](500,_0x4098x10[_0x2b9e[22]]))})})};exports[_0x2b9e[54]]= function(_0x4098xd){var _0x4098x12=this;return  new Promise(function(_0x4098xe,_0x4098xf){return db[_0x2b9e[31]][_0x2b9e[53]]({raw:_0x4098xd[_0x2b9e[28]]?(_0x4098xd[_0x2b9e[28]][_0x2b9e[29]]=== undefined)?true:false:true,where:_0x4098xd[_0x2b9e[28]]?_0x4098xd[_0x2b9e[28]][_0x2b9e[33]]|| null:null,attributes:[[_0x2b9e[55],_0x2b9e[56]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[57]))),_0x2b9e[58]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[59]))),_0x2b9e[60]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[41]))),_0x2b9e[61]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[62]))),_0x2b9e[63]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[64]))),_0x2b9e[65]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[66]))),_0x2b9e[67]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[68]))),_0x2b9e[69]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[70]))),_0x2b9e[71]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[72]))),_0x2b9e[73]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[74]))),_0x2b9e[75]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[76]))),_0x2b9e[77]]],group:[_0x2b9e[55]]})[_0x2b9e[24]](function(_0x4098x11){logger[_0x2b9e[17]](_0x2b9e[54],_0x4098xd);logger[_0x2b9e[20]](_0x2b9e[54],_0x4098xd,JSON[_0x2b9e[19]](_0x4098x11));_0x4098xe(_0x4098x11)})[_0x2b9e[15]](function(_0x4098x10){logger[_0x2b9e[14]](_0x2b9e[54],_0x4098x10[_0x2b9e[22]],_0x4098xd);_0x4098xf(_0x4098x12[_0x2b9e[14]](500,_0x4098x10[_0x2b9e[22]]))})})};exports[_0x2b9e[78]]= function(_0x4098xd){var _0x4098x12=this;return  new Promise(function(_0x4098xe,_0x4098xf){return db[_0x2b9e[31]][_0x2b9e[53]]({raw:_0x4098xd[_0x2b9e[28]]?(_0x4098xd[_0x2b9e[28]][_0x2b9e[29]]=== undefined)?true:false:true,where:_0x4098xd[_0x2b9e[28]]?_0x4098xd[_0x2b9e[28]][_0x2b9e[33]]|| null:null,attributes:[[_0x2b9e[55],_0x2b9e[56]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[36]](_0x2b9e[35])),_0x2b9e[79]],[db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[34],db[_0x2b9e[37]][_0x2b9e[38]](_0x2b9e[40],db[_0x2b9e[37]][_0x2b9e[42]](_0x2b9e[41]))),_0x2b9e[80]]],group:[_0x2b9e[55]]})[_0x2b9e[24]](function(_0x4098x11){logger[_0x2b9e[17]](_0x2b9e[78],_0x4098xd);logger[_0x2b9e[20]](_0x2b9e[78],_0x4098xd,JSON[_0x2b9e[19]](_0x4098x11));_0x4098xe(_0x4098x11)})[_0x2b9e[15]](function(_0x4098x10){logger[_0x2b9e[14]](_0x2b9e[78],_0x4098x10[_0x2b9e[22]],_0x4098xd);_0x4098xf(_0x4098x12[_0x2b9e[14]](500,_0x4098x10[_0x2b9e[22]]))})})}
\ No newline at end of file
diff --git a/server/api/cmHopperHistory/index.js b/server/api/cmHopperHistory/index.js
new file mode 100644 (file)
index 0000000..5813e88
--- /dev/null
@@ -0,0 +1 @@
+var _0x7861=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x7861[0];var multer=require(_0x7861[1]);var util=require(_0x7861[2]);var path=require(_0x7861[3]);var express=require(_0x7861[4]);var router=express.Router();var auth=require(_0x7861[5]);var config=require(_0x7861[6]);var controller=require(_0x7861[7]);router[_0x7861[11]](_0x7861[8],auth[_0x7861[9]](),controller[_0x7861[10]]);router[_0x7861[11]](_0x7861[12],auth[_0x7861[9]](),controller[_0x7861[13]]);router[_0x7861[11]](_0x7861[14],auth[_0x7861[9]](),controller[_0x7861[15]]);router[_0x7861[17]](_0x7861[14],auth[_0x7861[9]](),controller[_0x7861[16]]);module[_0x7861[18]]= router
\ No newline at end of file
diff --git a/server/api/cmList/cmList.attributes.js b/server/api/cmList/cmList.attributes.js
new file mode 100644 (file)
index 0000000..ce7c958
--- /dev/null
@@ -0,0 +1 @@
+var _0xa254=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0xa254[0];var Sequelize=require(_0xa254[1]);module[_0xa254[2]]= {name:{type:Sequelize[_0xa254[3]],unique:_0xa254[4],allowNull:false,validate:{notEmpty:true}},description:{type:Sequelize[_0xa254[3]]}}
\ No newline at end of file
diff --git a/server/api/cmList/cmList.controller.js b/server/api/cmList/cmList.controller.js
new file mode 100644 (file)
index 0000000..1e974f1
--- /dev/null
@@ -0,0 +1 @@
+var _0x3324=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6D\x4C\x69\x73\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x4C\x69\x73\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x43\x6D\x4C\x69\x73\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4C\x69\x73\x74\x49\x64","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x69\x64\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x66\x5F\x25\x64","\x66\x6F\x72\x6D\x61\x74","\x63\x6F\x6E\x63\x61\x74","\x72\x61\x77","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73\x43\x73\x76","\x6E\x6F\x77","\x2F\x74\x6D\x70\x2F\x6C\x69\x73\x74\x5F\x25\x64\x5F\x25\x73\x2E\x63\x73\x76","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x3B\x20\x66\x69\x6C\x65\x6E\x61\x6D\x65\x3D","\x6C\x69\x73\x74\x5F\x25\x64\x5F\x25\x73\x2E\x63\x73\x76","\x73\x65\x74\x48\x65\x61\x64\x65\x72","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65","\x74\x65\x78\x74\x2F\x63\x73\x76","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x61\x64\x64\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x53\x54\x52\x49\x4E\x47","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x74\x79\x70\x65","\x74\x65\x78\x74","\x49\x4E\x54\x45\x47\x45\x52","\x6E\x75\x6D\x62\x65\x72","\x42\x4F\x4F\x4C\x45\x41\x4E","\x73\x77\x69\x74\x63\x68","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x63\x66\x5F\x25\x73","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x61\x64\x64\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x55\x73\x65\x72"];_0x3324[0];var jsonpatch=require(_0x3324[1]);var rp=require(_0x3324[2]);var moment=require(_0x3324[3]);var BPromise=require(_0x3324[4]);var util=require(_0x3324[5]);var path=require(_0x3324[6]);var sox=require(_0x3324[7]);var ejs=require(_0x3324[8]);var fs=require(_0x3324[9]);var _=require(_0x3324[10]);var squel=require(_0x3324[11]);var crypto=require(_0x3324[12]);var jsforce=require(_0x3324[13]);var toCsv=require(_0x3324[14]);var qs=require(_0x3324[15]);var logger=require(_0x3324[17])(_0x3324[16]);var utils=require(_0x3324[18]);var config=require(_0x3324[19]);var db=require(_0x3324[21])[_0x3324[20]];function respondWithStatusCode(_0xaafcx15,_0xaafcx16,_0xaafcx17){_0xaafcx16= _0xaafcx16|| 204;return function(_0xaafcx18){if(_0xaafcx18){logger[_0x3324[24]](_0x3324[22],_0xaafcx17,_0xaafcx16,_0x3324[23]);logger[_0x3324[26]](_0x3324[25],_0xaafcx17,_0xaafcx16,_0x3324[23]);return _0xaafcx15[_0x3324[27]](_0xaafcx16)};return _0xaafcx15[_0x3324[29]](304)[_0x3324[28]]()}}function respondWithResult(_0xaafcx15,_0xaafcx16,_0xaafcx17){_0xaafcx16= _0xaafcx16|| 200;return function(_0xaafcx18){if(_0xaafcx18){logger[_0x3324[24]](_0x3324[22],_0xaafcx17,_0xaafcx16,_0x3324[30]);logger[_0x3324[26]](_0x3324[25],_0xaafcx17,_0xaafcx16,_0x3324[30],JSON[_0x3324[31]](_0xaafcx18));return _0xaafcx15[_0x3324[29]](_0xaafcx16)[_0x3324[32]](_0xaafcx18)};return _0xaafcx15[_0x3324[29]](304)[_0x3324[28]]()}}function respondWithFilteredResult(_0xaafcx15,_0xaafcx1b,_0xaafcx17){return function(_0xaafcx18){if(_0xaafcx18){var _0xaafcx1c=_0xaafcx18[_0x3324[33]],_0xaafcx1d=_0xaafcx1b[_0x3324[34]],_0xaafcx1e=_0xaafcx1b[_0x3324[34]]+ _0xaafcx1b[_0x3324[35]],_0xaafcx16;if(_0xaafcx1e>= _0xaafcx1c){_0xaafcx1e= _0xaafcx1c;_0xaafcx16= 200}else {_0xaafcx16= 206};_0xaafcx15[_0x3324[29]](_0xaafcx16);logger[_0x3324[24]](_0x3324[22],_0xaafcx17,_0xaafcx16,_0x3324[36]);logger[_0x3324[26]](_0x3324[25],_0xaafcx17,_0xaafcx16,_0x3324[30],JSON[_0x3324[31]](_0xaafcx18));return _0xaafcx15[_0x3324[40]](_0x3324[37],_0xaafcx1d+ _0x3324[38]+ _0xaafcx1e+ _0x3324[39]+ _0xaafcx1c)[_0x3324[32]](_0xaafcx18)};return null}}function patchUpdates(_0xaafcx20){return function(_0xaafcx18){try{jsonpatch[_0x3324[41]](_0xaafcx18,_0xaafcx20,true)}catch(err){return BPromise[_0x3324[42]](err)};return _0xaafcx18[_0x3324[43]]()}}function saveUpdates(_0xaafcx22,_0xaafcx16,_0xaafcx17){return function(_0xaafcx18){if(_0xaafcx18){return _0xaafcx18[_0x3324[46]](_0xaafcx22)[_0x3324[45]](function(_0xaafcx23){logger[_0x3324[24]](_0x3324[22],_0xaafcx17,_0xaafcx16,_0x3324[44]);logger[_0x3324[26]](_0x3324[25],_0xaafcx17,_0xaafcx16,_0x3324[44],JSON[_0x3324[31]](_0xaafcx18));return _0xaafcx23})};return null}}function removeEntity(_0xaafcx15,_0xaafcx16,_0xaafcx17){return function(_0xaafcx18){if(_0xaafcx18){return _0xaafcx18[_0x3324[48]]()[_0x3324[45]](function(){logger[_0x3324[24]](_0x3324[22],_0xaafcx17,_0xaafcx16,_0x3324[47]);logger[_0x3324[26]](_0x3324[25],_0xaafcx17,_0xaafcx16,_0x3324[47],JSON[_0x3324[31]](_0xaafcx18));_0xaafcx15[_0x3324[29]](204)[_0x3324[28]]()})}}}function handleEntityNotFound(_0xaafcx15,_0xaafcx16,_0xaafcx17){return function(_0xaafcx18){if(!_0xaafcx18){logger[_0x3324[50]](_0x3324[22],_0xaafcx17,404,_0x3324[49]);_0xaafcx15[_0x3324[29]](404)[_0x3324[28]]();return null};return _0xaafcx18}}function handleError(_0xaafcx15,_0xaafcx16,_0xaafcx17){_0xaafcx16= _0xaafcx16|| 500;return function(_0xaafcx27){logger[_0x3324[50]](_0x3324[22],_0xaafcx17,_0xaafcx16,JSON[_0x3324[31]](_0xaafcx27));delete _0xaafcx27[_0x3324[51]];_0xaafcx15[_0x3324[29]](_0xaafcx16)[_0x3324[52]](_0xaafcx27)}}exports[_0x3324[53]]= function(_0xaafcx28,_0xaafcx15){var _0xaafcx1b={},_0xaafcx29={};_0xaafcx29[_0x3324[54]]= _[_0x3324[57]](db[_0x3324[56]][_0x3324[55]]);_0xaafcx29[_0x3324[58]]= _[_0x3324[57]](_0xaafcx28[_0x3324[58]]);_0xaafcx29[_0x3324[59]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],_0xaafcx29[_0x3324[58]]);_0xaafcx1b[_0x3324[61]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],qs[_0x3324[62]](_0xaafcx28[_0x3324[58]][_0x3324[62]]));_0xaafcx1b[_0x3324[61]]= (_0xaafcx1b[_0x3324[61]][_0x3324[63]])?_0xaafcx1b[_0x3324[61]]:_0xaafcx29[_0x3324[54]];if(!_0xaafcx28[_0x3324[58]][_0x3324[65]](_0x3324[64])){_0xaafcx1b[_0x3324[35]]= qs[_0x3324[35]](_0xaafcx28[_0x3324[58]][_0x3324[35]]);_0xaafcx1b[_0x3324[34]]= qs[_0x3324[34]](_0xaafcx28[_0x3324[58]][_0x3324[34]])};_0xaafcx1b[_0x3324[66]]= qs[_0x3324[67]](_0xaafcx28[_0x3324[58]][_0x3324[67]]);_0xaafcx1b[_0x3324[68]]= qs[_0x3324[59]](_[_0x3324[69]](_0xaafcx28[_0x3324[58]],_0xaafcx29[_0x3324[59]]));if(_0xaafcx28[_0x3324[58]][_0x3324[70]]){_0xaafcx1b[_0x3324[68]]= _[_0x3324[73]](_0xaafcx1b[_0x3324[68]],{$or:_[_0x3324[72]](_0xaafcx1b[_0x3324[61]],function(_0xaafcx2a){var _0xaafcx2b={};_0xaafcx2b[_0xaafcx2a]= {$like:_0x3324[71]+ _0xaafcx28[_0x3324[58]][_0x3324[70]]+ _0x3324[71]};return _0xaafcx2b})})};_0xaafcx1b= _[_0x3324[73]]({},_0xaafcx1b,_0xaafcx28[_0x3324[74]]);return db[_0x3324[56]][_0x3324[76]](_0xaafcx1b)[_0x3324[45]](respondWithFilteredResult(_0xaafcx15,_0xaafcx1b,_0x3324[53]))[_0x3324[75]](handleError(_0xaafcx15,null,_0x3324[53]))};exports[_0x3324[77]]= function(_0xaafcx28,_0xaafcx15){var _0xaafcx1b={raw:false,where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]}},_0xaafcx29={};_0xaafcx29[_0x3324[54]]= _[_0x3324[57]](db[_0x3324[56]][_0x3324[55]]);_0xaafcx29[_0x3324[58]]= _[_0x3324[57]](_0xaafcx28[_0x3324[58]]);_0xaafcx29[_0x3324[59]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],_0xaafcx29[_0x3324[58]]);_0xaafcx1b[_0x3324[61]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],qs[_0x3324[62]](_0xaafcx28[_0x3324[58]][_0x3324[62]]));_0xaafcx1b[_0x3324[61]]= (_0xaafcx1b[_0x3324[61]][_0x3324[63]])?_0xaafcx1b[_0x3324[61]]:_0xaafcx29[_0x3324[54]];_0xaafcx1b= _[_0x3324[73]]({},_0xaafcx1b,_0xaafcx28[_0x3324[74]]);return db[_0x3324[56]][_0x3324[80]](_0xaafcx1b)[_0x3324[45]](handleEntityNotFound(_0xaafcx15,null,_0x3324[77]))[_0x3324[45]](respondWithResult(_0xaafcx15,null,_0x3324[77]))[_0x3324[75]](handleError(_0xaafcx15,null,_0x3324[77]))};exports[_0x3324[81]]= function(_0xaafcx28,_0xaafcx15){return db[_0x3324[56]][_0x3324[81]](_0xaafcx28[_0x3324[82]],{})[_0x3324[45]](respondWithResult(_0xaafcx15,201,_0x3324[81]))[_0x3324[75]](handleError(_0xaafcx15,null,_0x3324[81]))};exports[_0x3324[46]]= function(_0xaafcx28,_0xaafcx15){if(_0xaafcx28[_0x3324[82]][_0x3324[78]]){delete _0xaafcx28[_0x3324[82]][_0x3324[78]]};return db[_0x3324[56]][_0x3324[80]]({where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]}})[_0x3324[45]](handleEntityNotFound(_0xaafcx15,null,_0x3324[46]))[_0x3324[45]](saveUpdates(_0xaafcx28[_0x3324[82]],null,_0x3324[46]))[_0x3324[45]](respondWithResult(_0xaafcx15,null,_0x3324[46]))[_0x3324[75]](handleError(_0xaafcx15,null,_0x3324[46]))};exports[_0x3324[48]]= function(_0xaafcx28,_0xaafcx15){return db[_0x3324[56]][_0x3324[80]]({where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]}})[_0x3324[45]](handleEntityNotFound(_0xaafcx15,null,_0x3324[48]))[_0x3324[45]](removeEntity(_0xaafcx15,null,_0x3324[48]))[_0x3324[75]](handleError(_0xaafcx15,null,_0x3324[48]))};exports[_0x3324[83]]= function(_0xaafcx28,_0xaafcx15,_0xaafcx2c){if(_0xaafcx28[_0x3324[82]][_0x3324[78]]){delete _0xaafcx28[_0x3324[82]][_0x3324[78]]};return db[_0x3324[56]][_0x3324[80]]({where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]}})[_0x3324[45]](handleEntityNotFound(_0xaafcx15,null,_0x3324[83]))[_0x3324[45]](function(_0xaafcx18){if(_0xaafcx18){_0xaafcx28[_0x3324[82]][_0x3324[84]]= _0xaafcx18[_0x3324[78]];return db[_0x3324[85]][_0x3324[81]](_0xaafcx28[_0x3324[82]])}})[_0x3324[45]](respondWithResult(_0xaafcx15,null,_0x3324[83]))[_0x3324[75]](handleError(_0xaafcx15,null,_0x3324[83]))};exports[_0x3324[86]]= function(_0xaafcx28,_0xaafcx18,_0xaafcx2c){var _0xaafcx1b={};var _0xaafcx29={};var _0xaafcx2d;var _0xaafcx1c;return db[_0x3324[56]][_0x3324[87]]({where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]}})[_0x3324[45]](handleEntityNotFound(_0xaafcx18,null,_0x3324[86]))[_0x3324[45]](function(_0xaafcx18){if(_0xaafcx18){_0xaafcx2d= _0xaafcx18;_0xaafcx29[_0x3324[54]]= _[_0x3324[57]](db[_0x3324[85]][_0x3324[55]]);_0xaafcx29[_0x3324[58]]= _[_0x3324[57]](_0xaafcx28[_0x3324[58]]);_0xaafcx29[_0x3324[59]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],_0xaafcx29[_0x3324[58]]);_0xaafcx1b[_0x3324[61]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],qs[_0x3324[62]](_0xaafcx28[_0x3324[58]][_0x3324[62]]));_0xaafcx1b[_0x3324[61]]= (_0xaafcx1b[_0x3324[61]][_0x3324[63]])?_0xaafcx1b[_0x3324[61]]:_0xaafcx29[_0x3324[54]];_0xaafcx1b[_0x3324[66]]= qs[_0x3324[67]](_0xaafcx28[_0x3324[58]][_0x3324[67]]);_0xaafcx1b[_0x3324[68]]= qs[_0x3324[59]](_[_0x3324[69]](_0xaafcx28[_0x3324[58]],_0xaafcx29[_0x3324[59]]));if(_0xaafcx28[_0x3324[58]][_0x3324[70]]){_0xaafcx1b[_0x3324[68]]= _[_0x3324[73]](_0xaafcx1b[_0x3324[68]],{$or:_[_0x3324[72]](_0xaafcx1b[_0x3324[61]],function(_0xaafcx2a){var _0xaafcx2b={};_0xaafcx2b[_0xaafcx2a]= {$like:_0x3324[71]+ _0xaafcx28[_0x3324[58]][_0x3324[70]]+ _0x3324[71]};return _0xaafcx2b})})};_0xaafcx1b= _[_0x3324[73]]({},_0xaafcx1b,_0xaafcx28[_0x3324[74]]);return _0xaafcx2d[_0x3324[86]](_0xaafcx1b)}})[_0x3324[45]](function(_0xaafcx2f){if(_0xaafcx2f){_0xaafcx1c= _0xaafcx2f[_0x3324[63]];if(!_0xaafcx28[_0x3324[58]][_0x3324[65]](_0x3324[64])){_0xaafcx1b[_0x3324[35]]= qs[_0x3324[35]](_0xaafcx28[_0x3324[58]][_0x3324[35]]);_0xaafcx1b[_0x3324[34]]= qs[_0x3324[34]](_0xaafcx28[_0x3324[58]][_0x3324[34]])};return _0xaafcx2d[_0x3324[86]](_0xaafcx1b)}})[_0x3324[45]](function(_0xaafcx2e){return _0xaafcx2e?{count:_0xaafcx1c,rows:_0xaafcx2e}:null})[_0x3324[45]](respondWithResult(_0xaafcx18,null,_0x3324[86]))[_0x3324[75]](handleError(_0xaafcx18,null,_0x3324[86]))};exports[_0x3324[88]]= function(_0xaafcx28,_0xaafcx15,_0xaafcx2c){return db[_0x3324[56]][_0x3324[80]]({where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]}})[_0x3324[45]](handleEntityNotFound(_0xaafcx15,null,_0x3324[88]))[_0x3324[45]](function(_0xaafcx18){if(_0xaafcx18){return _0xaafcx18[_0x3324[88]](_0xaafcx28[_0x3324[82]][_0x3324[89]],_[_0x3324[90]](_0xaafcx28[_0x3324[82]],[_0x3324[89],_0x3324[78]])|| {})};return null})[_0x3324[45]](respondWithResult(_0xaafcx15,null,_0x3324[88]))[_0x3324[75]](handleError(_0xaafcx15,null,_0x3324[88]))};exports[_0x3324[91]]= function(_0xaafcx28,_0xaafcx15,_0xaafcx2c){var _0xaafcx30;return db[_0x3324[56]][_0x3324[80]]({where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]},include:[{model:db[_0x3324[97]],as:_0x3324[98]}]})[_0x3324[45]](handleEntityNotFound(_0xaafcx15,null,_0x3324[91]))[_0x3324[45]](function(_0xaafcx18){if(_0xaafcx18){_0xaafcx30= _0xaafcx18;return db[_0x3324[96]][_0x3324[55]]}})[_0x3324[45]](function(_0xaafcx18){if(_0xaafcx18){var _0xaafcx1b={};var _0xaafcx29={};_0xaafcx29[_0x3324[54]]= _[_0x3324[94]](_[_0x3324[57]](_0xaafcx18),_[_0x3324[72]](_0xaafcx30.CustomFields,function(_0xaafcx31){return util[_0x3324[93]](_0x3324[92],_0xaafcx31[_0x3324[78]])}));_0xaafcx29[_0x3324[58]]= _[_0x3324[57]](_0xaafcx28[_0x3324[58]]);_0xaafcx29[_0x3324[59]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],_0xaafcx29[_0x3324[58]]);_0xaafcx1b[_0x3324[61]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],qs[_0x3324[62]](_0xaafcx28[_0x3324[58]][_0x3324[62]]));_0xaafcx1b[_0x3324[61]]= (_0xaafcx1b[_0x3324[61]][_0x3324[63]])?_0xaafcx1b[_0x3324[61]]:_0xaafcx29[_0x3324[54]];_0xaafcx1b[_0x3324[35]]= qs[_0x3324[35]](_0xaafcx28[_0x3324[58]][_0x3324[35]]);_0xaafcx1b[_0x3324[34]]= qs[_0x3324[34]](_0xaafcx28[_0x3324[58]][_0x3324[34]]);_0xaafcx1b[_0x3324[66]]= qs[_0x3324[67]](_0xaafcx28[_0x3324[58]][_0x3324[67]]);_0xaafcx1b[_0x3324[68]]= qs[_0x3324[59]](_[_0x3324[69]](_0xaafcx28[_0x3324[58]],_0xaafcx29[_0x3324[59]]));_0xaafcx1b[_0x3324[95]]= true;if(_0xaafcx28[_0x3324[58]][_0x3324[70]]){_0xaafcx1b[_0x3324[68]]= _[_0x3324[73]](_0xaafcx1b[_0x3324[68]],{$or:_[_0x3324[72]](_0xaafcx1b[_0x3324[61]],function(_0xaafcx2a){var _0xaafcx2b={};_0xaafcx2b[_0xaafcx2a]= {$like:_0x3324[71]+ _0xaafcx28[_0x3324[58]][_0x3324[70]]+ _0x3324[71]};return _0xaafcx2b})})};_0xaafcx1b= _[_0x3324[73]]({},_0xaafcx1b,_0xaafcx28[_0x3324[74]]);return _0xaafcx30[_0x3324[91]](_0xaafcx1b)}})[_0x3324[45]](respondWithResult(_0xaafcx15,null,_0x3324[91]))[_0x3324[75]](handleError(_0xaafcx15,null,_0x3324[91]))};exports[_0x3324[99]]= function(_0xaafcx28,_0xaafcx15,_0xaafcx2c){var _0xaafcx30;return db[_0x3324[56]][_0x3324[80]]({where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]},include:[{model:db[_0x3324[97]],as:_0x3324[98]}]})[_0x3324[45]](handleEntityNotFound(_0xaafcx15,null,_0x3324[99]))[_0x3324[45]](function(_0xaafcx18){if(_0xaafcx18){_0xaafcx30= _0xaafcx18;return db[_0x3324[96]][_0x3324[55]]}})[_0x3324[45]](function(_0xaafcx18){if(_0xaafcx18){var _0xaafcx1b={};var _0xaafcx29={};_0xaafcx29[_0x3324[54]]= _[_0x3324[94]](_[_0x3324[57]](_0xaafcx18),_[_0x3324[72]](_0xaafcx30.CustomFields,function(_0xaafcx31){return util[_0x3324[93]](_0x3324[92],_0xaafcx31[_0x3324[78]])}));_0xaafcx29[_0x3324[58]]= _[_0x3324[57]](_0xaafcx28[_0x3324[58]]);_0xaafcx29[_0x3324[59]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],_0xaafcx29[_0x3324[58]]);_0xaafcx1b[_0x3324[61]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],qs[_0x3324[62]](_0xaafcx28[_0x3324[58]][_0x3324[62]]));_0xaafcx1b[_0x3324[61]]= (_0xaafcx1b[_0x3324[61]][_0x3324[63]])?_0xaafcx1b[_0x3324[61]]:_0xaafcx29[_0x3324[54]];_0xaafcx1b[_0x3324[35]]= qs[_0x3324[35]](_0xaafcx28[_0x3324[58]][_0x3324[35]]);_0xaafcx1b[_0x3324[34]]= qs[_0x3324[34]](_0xaafcx28[_0x3324[58]][_0x3324[34]]);_0xaafcx1b[_0x3324[66]]= qs[_0x3324[67]](_0xaafcx28[_0x3324[58]][_0x3324[67]]);_0xaafcx1b[_0x3324[68]]= qs[_0x3324[59]](_[_0x3324[69]](_0xaafcx28[_0x3324[58]],_0xaafcx29[_0x3324[59]]));_0xaafcx1b[_0x3324[95]]= true;if(_0xaafcx28[_0x3324[58]][_0x3324[70]]){_0xaafcx1b[_0x3324[68]]= _[_0x3324[73]](_0xaafcx1b[_0x3324[68]],{$or:_[_0x3324[72]](_0xaafcx1b[_0x3324[61]],function(_0xaafcx2a){var _0xaafcx2b={};_0xaafcx2b[_0xaafcx2a]= {$like:_0x3324[71]+ _0xaafcx28[_0x3324[58]][_0x3324[70]]+ _0x3324[71]};return _0xaafcx2b})})};_0xaafcx1b= _[_0x3324[73]]({},_0xaafcx1b,_0xaafcx28[_0x3324[74]]);return _0xaafcx30[_0x3324[91]](_0xaafcx1b)}})[_0x3324[45]](function(_0xaafcx32){if(_0xaafcx32){var _0xaafcx33=toCsv(_0xaafcx32);var _0xaafcx34=Date[_0x3324[100]]();fs[_0x3324[102]](util[_0x3324[93]](_0x3324[101],_0xaafcx30[_0x3324[78]],_0xaafcx34),_0xaafcx33);_0xaafcx15[_0x3324[106]](_0x3324[103],_0x3324[104]+ util[_0x3324[93]](_0x3324[105],_0xaafcx30[_0x3324[78]],_0xaafcx34));_0xaafcx15[_0x3324[106]](_0x3324[107],_0x3324[108]);_0xaafcx15[_0x3324[109]](util[_0x3324[93]](_0x3324[101],_0xaafcx30[_0x3324[78]],_0xaafcx34))}})[_0x3324[75]](handleError(_0xaafcx15,null,_0x3324[99]))};exports[_0x3324[110]]= function(_0xaafcx28,_0xaafcx15,_0xaafcx2c){var _0xaafcx35;delete _0xaafcx28[_0x3324[82]][_0x3324[78]];return db[_0x3324[56]][_0x3324[87]]({where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]}})[_0x3324[45]](handleEntityNotFound(_0xaafcx15,null,_0x3324[110]))[_0x3324[45]](function(_0xaafcx30){if(_0xaafcx30){return db[_0x3324[123]][_0x3324[125]](function(_0xaafcx36){return db[_0x3324[97]][_0x3324[81]](_0xaafcx28[_0x3324[82]],{transaction:_0xaafcx36})[_0x3324[45]](function(_0xaafcx38){_0xaafcx35= _0xaafcx38;return _0xaafcx30[_0x3324[124]](_0xaafcx38,{transaction:_0xaafcx36})})[_0x3324[45]](function(){var _0xaafcx37={type:db[_0x3324[112]][_0x3324[111]],transaction:_0xaafcx36};switch(_0xaafcx28[_0x3324[82]][_0x3324[113]]){case _0x3324[114]:_0xaafcx37[_0x3324[113]]= db[_0x3324[112]][_0x3324[111]];break;case _0x3324[116]:_0xaafcx37[_0x3324[113]]= db[_0x3324[112]][_0x3324[115]];break;case _0x3324[118]:_0xaafcx37[_0x3324[113]]= db[_0x3324[112]][_0x3324[117]];break;default:};return db[_0x3324[123]][_0x3324[122]][_0x3324[121]](_0x3324[119],util[_0x3324[93]](_0x3324[120],_0xaafcx35[_0x3324[78]]),_0xaafcx37)})[_0x3324[45]](function(){return _0xaafcx35})})}})[_0x3324[45]](respondWithResult(_0xaafcx15,null,_0x3324[110]))[_0x3324[75]](handleError(_0xaafcx15,null,_0x3324[110]))};exports[_0x3324[126]]= function(_0xaafcx28,_0xaafcx18,_0xaafcx2c){var _0xaafcx1b={};var _0xaafcx29={};var _0xaafcx2d;var _0xaafcx1c;return db[_0x3324[56]][_0x3324[87]]({where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]}})[_0x3324[45]](handleEntityNotFound(_0xaafcx18,null,_0x3324[126]))[_0x3324[45]](function(_0xaafcx18){if(_0xaafcx18){_0xaafcx2d= _0xaafcx18;_0xaafcx29[_0x3324[54]]= _[_0x3324[57]](db[_0x3324[97]][_0x3324[55]]);_0xaafcx29[_0x3324[58]]= _[_0x3324[57]](_0xaafcx28[_0x3324[58]]);_0xaafcx29[_0x3324[59]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],_0xaafcx29[_0x3324[58]]);_0xaafcx1b[_0x3324[61]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],qs[_0x3324[62]](_0xaafcx28[_0x3324[58]][_0x3324[62]]));_0xaafcx1b[_0x3324[61]]= (_0xaafcx1b[_0x3324[61]][_0x3324[63]])?_0xaafcx1b[_0x3324[61]]:_0xaafcx29[_0x3324[54]];_0xaafcx1b[_0x3324[66]]= qs[_0x3324[67]](_0xaafcx28[_0x3324[58]][_0x3324[67]]);_0xaafcx1b[_0x3324[68]]= qs[_0x3324[59]](_[_0x3324[69]](_0xaafcx28[_0x3324[58]],_0xaafcx29[_0x3324[59]]));_0xaafcx1b[_0x3324[68]]= _[_0x3324[73]](_0xaafcx1b[_0x3324[68]],{$or:[{ListId:_0xaafcx18[_0x3324[78]]},{ListId:null}]});if(_0xaafcx28[_0x3324[58]][_0x3324[70]]){_0xaafcx1b[_0x3324[68]]= _[_0x3324[73]](_0xaafcx1b[_0x3324[68]],{$or:_[_0x3324[72]](_0xaafcx1b[_0x3324[61]],function(_0xaafcx2a){var _0xaafcx2b={};_0xaafcx2b[_0xaafcx2a]= {$like:_0x3324[71]+ _0xaafcx28[_0x3324[58]][_0x3324[70]]+ _0x3324[71]};return _0xaafcx2b})})};_0xaafcx1b= _[_0x3324[73]]({},_0xaafcx1b,_0xaafcx28[_0x3324[74]]);return db[_0x3324[97]][_0x3324[76]](_0xaafcx1b)}})[_0x3324[45]](respondWithResult(_0xaafcx18,null,_0x3324[126]))[_0x3324[75]](handleError(_0xaafcx18,null,_0x3324[126]))};exports[_0x3324[127]]= function(_0xaafcx28,_0xaafcx15,_0xaafcx2c){return db[_0x3324[56]][_0x3324[80]]({where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]}})[_0x3324[45]](handleEntityNotFound(_0xaafcx15,null,_0x3324[127]))[_0x3324[45]](function(_0xaafcx18){if(_0xaafcx18){return _0xaafcx18[_0x3324[127]](_0xaafcx28[_0x3324[82]][_0x3324[89]],_[_0x3324[90]](_0xaafcx28[_0x3324[82]],[_0x3324[89],_0x3324[78]])|| {})};return null})[_0x3324[45]](respondWithResult(_0xaafcx15,null,_0x3324[127]))[_0x3324[75]](handleError(_0xaafcx15,null,_0x3324[127]))};exports[_0x3324[128]]= function(_0xaafcx28,_0xaafcx15,_0xaafcx2c){var _0xaafcx2f;return db[_0x3324[56]][_0x3324[80]]({where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]}})[_0x3324[45]](handleEntityNotFound(_0xaafcx15,null,_0x3324[128]))[_0x3324[45]](function(_0xaafcx18){if(_0xaafcx18){return _0xaafcx18[_0x3324[128]](_0xaafcx28[_0x3324[58]][_0x3324[89]])}})[_0x3324[45]](respondWithStatusCode(_0xaafcx15,null,_0x3324[128]))[_0x3324[75]](handleError(_0xaafcx15,null,_0x3324[128]))};exports[_0x3324[129]]= function(_0xaafcx28,_0xaafcx18,_0xaafcx2c){var _0xaafcx1b={};var _0xaafcx29={};var _0xaafcx2d;var _0xaafcx1c;return db[_0x3324[56]][_0x3324[87]]({where:{id:_0xaafcx28[_0x3324[79]][_0x3324[78]]}})[_0x3324[45]](handleEntityNotFound(_0xaafcx18,null,_0x3324[129]))[_0x3324[45]](function(_0xaafcx18){if(_0xaafcx18){_0xaafcx2d= _0xaafcx18;_0xaafcx29[_0x3324[54]]= _[_0x3324[57]](db[_0x3324[130]][_0x3324[55]]);_0xaafcx29[_0x3324[58]]= _[_0x3324[57]](_0xaafcx28[_0x3324[58]]);_0xaafcx29[_0x3324[59]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],_0xaafcx29[_0x3324[58]]);_0xaafcx1b[_0x3324[61]]= _[_0x3324[60]](_0xaafcx29[_0x3324[54]],qs[_0x3324[62]](_0xaafcx28[_0x3324[58]][_0x3324[62]]));_0xaafcx1b[_0x3324[61]]= (_0xaafcx1b[_0x3324[61]][_0x3324[63]])?_0xaafcx1b[_0x3324[61]]:_0xaafcx29[_0x3324[54]];_0xaafcx1b[_0x3324[66]]= qs[_0x3324[67]](_0xaafcx28[_0x3324[58]][_0x3324[67]]);_0xaafcx1b[_0x3324[68]]= qs[_0x3324[59]](_[_0x3324[69]](_0xaafcx28[_0x3324[58]],_0xaafcx29[_0x3324[59]]));if(_0xaafcx28[_0x3324[58]][_0x3324[70]]){_0xaafcx1b[_0x3324[68]]= _[_0x3324[73]](_0xaafcx1b[_0x3324[68]],{$or:_[_0x3324[72]](_0xaafcx1b[_0x3324[61]],function(_0xaafcx2a){var _0xaafcx2b={};_0xaafcx2b[_0xaafcx2a]= {$like:_0x3324[71]+ _0xaafcx28[_0x3324[58]][_0x3324[70]]+ _0x3324[71]};return _0xaafcx2b})})};_0xaafcx1b= _[_0x3324[73]]({},_0xaafcx1b,_0xaafcx28[_0x3324[74]]);return _0xaafcx2d[_0x3324[129]](_0xaafcx1b)}})[_0x3324[45]](function(_0xaafcx2f){if(_0xaafcx2f){_0xaafcx1c= _0xaafcx2f[_0x3324[63]];if(!_0xaafcx28[_0x3324[58]][_0x3324[65]](_0x3324[64])){_0xaafcx1b[_0x3324[35]]= qs[_0x3324[35]](_0xaafcx28[_0x3324[58]][_0x3324[35]]);_0xaafcx1b[_0x3324[34]]= qs[_0x3324[34]](_0xaafcx28[_0x3324[58]][_0x3324[34]])};return _0xaafcx2d[_0x3324[129]](_0xaafcx1b)}})[_0x3324[45]](function(_0xaafcx2e){return _0xaafcx2e?{count:_0xaafcx1c,rows:_0xaafcx2e}:null})[_0x3324[45]](respondWithResult(_0xaafcx18,null,_0x3324[129]))[_0x3324[75]](handleError(_0xaafcx18,null,_0x3324[129]))}
\ No newline at end of file
diff --git a/server/api/cmList/cmList.model.js b/server/api/cmList/cmList.model.js
new file mode 100644 (file)
index 0000000..bcde791
--- /dev/null
@@ -0,0 +1 @@
+var _0xc284=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6D\x4C\x69\x73\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6D\x4C\x69\x73\x74","\x63\x6D\x5F\x6C\x69\x73\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xc284[0];var _=require(_0xc284[1]);var util=require(_0xc284[2]);var logger=require(_0xc284[4])(_0xc284[3]);var attributes=require(_0xc284[5]);module[_0xc284[6]]= function(_0x625cx5,_0x625cx6){return _0x625cx5[_0xc284[9]](_0xc284[7],attributes,{tableName:_0xc284[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/cmList/cmList.rpc.js b/server/api/cmList/cmList.rpc.js
new file mode 100644 (file)
index 0000000..43d1a12
--- /dev/null
@@ -0,0 +1 @@
+var _0xe264=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6D\x4C\x69\x73\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6D\x4C\x69\x73\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xe264[0];var _=require(_0xe264[1]);var util=require(_0xe264[2]);var moment=require(_0xe264[3]);var BPromise=require(_0xe264[4]);var db=require(_0xe264[6])[_0xe264[5]];var utils=require(_0xe264[7]);var logger=require(_0xe264[9])(_0xe264[8]);var jayson=require(_0xe264[10]);var client=jayson[_0xe264[12]][_0xe264[11]]({port:9002});function respondWithRpcPromise(_0x7234xb,_0x7234xc,_0x7234xd){return  new BPromise(function(_0x7234xe,_0x7234xf){return client[_0xe264[25]](_0x7234xb,_0x7234xd)[_0xe264[24]](function(_0x7234x11){logger[_0xe264[17]](_0xe264[13],_0x7234xc,_0xe264[16]);logger[_0xe264[20]](_0xe264[18],_0x7234xc,_0xe264[16],JSON[_0xe264[19]](_0x7234x11));if(_0x7234x11[_0xe264[14]]){if(_0x7234x11[_0xe264[14]][_0xe264[21]]=== 500){logger[_0xe264[14]](_0xe264[13],_0x7234xc,_0x7234x11[_0xe264[14]][_0xe264[22]]);return _0x7234xf(_0x7234x11[_0xe264[14]][_0xe264[22]])};logger[_0xe264[14]](_0xe264[13],_0x7234xc,_0x7234x11[_0xe264[14]][_0xe264[22]]);return _0x7234xe(_0x7234x11[_0xe264[14]][_0xe264[22]])}else {logger[_0xe264[17]](_0xe264[13],_0x7234xc,_0xe264[16]);_0x7234xe(_0x7234x11[_0xe264[23]][_0xe264[22]])}})[_0xe264[15]](function(_0x7234x10){logger[_0xe264[14]](_0xe264[13],_0x7234xc,_0x7234x10);_0x7234xf(_0x7234x10)})})}
\ No newline at end of file
diff --git a/server/api/cmList/index.js b/server/api/cmList/index.js
new file mode 100644 (file)
index 0000000..c76fb17
--- /dev/null
@@ -0,0 +1 @@
+var _0xb2e1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6D\x4C\x69\x73\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73\x2F\x63\x73\x76","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73\x43\x73\x76","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x61\x64\x64\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xb2e1[0];var multer=require(_0xb2e1[1]);var util=require(_0xb2e1[2]);var path=require(_0xb2e1[3]);var express=require(_0xb2e1[4]);var router=express.Router();var auth=require(_0xb2e1[5]);var config=require(_0xb2e1[6]);var controller=require(_0xb2e1[7]);router[_0xb2e1[11]](_0xb2e1[8],auth[_0xb2e1[9]](),controller[_0xb2e1[10]]);router[_0xb2e1[11]](_0xb2e1[12],auth[_0xb2e1[9]](),controller[_0xb2e1[13]]);router[_0xb2e1[11]](_0xb2e1[14],auth[_0xb2e1[9]](),controller[_0xb2e1[15]]);router[_0xb2e1[11]](_0xb2e1[16],auth[_0xb2e1[9]](),controller[_0xb2e1[17]]);router[_0xb2e1[11]](_0xb2e1[18],controller[_0xb2e1[19]]);router[_0xb2e1[11]](_0xb2e1[20],auth[_0xb2e1[9]](),controller[_0xb2e1[21]]);router[_0xb2e1[11]](_0xb2e1[22],auth[_0xb2e1[9]](),controller[_0xb2e1[23]]);router[_0xb2e1[25]](_0xb2e1[8],auth[_0xb2e1[9]](),controller[_0xb2e1[24]]);router[_0xb2e1[25]](_0xb2e1[14],auth[_0xb2e1[9]](),controller[_0xb2e1[26]]);router[_0xb2e1[25]](_0xb2e1[16],auth[_0xb2e1[9]](),controller[_0xb2e1[27]]);router[_0xb2e1[25]](_0xb2e1[20],auth[_0xb2e1[9]](),controller[_0xb2e1[28]]);router[_0xb2e1[25]](_0xb2e1[22],auth[_0xb2e1[9]](),controller[_0xb2e1[29]]);router[_0xb2e1[31]](_0xb2e1[12],auth[_0xb2e1[9]](),controller[_0xb2e1[30]]);router[_0xb2e1[33]](_0xb2e1[12],auth[_0xb2e1[9]](),controller[_0xb2e1[32]]);router[_0xb2e1[33]](_0xb2e1[22],auth[_0xb2e1[9]](),controller[_0xb2e1[34]]);module[_0xb2e1[35]]= router
\ No newline at end of file
diff --git a/server/api/condition/condition.attributes.js b/server/api/condition/condition.attributes.js
new file mode 100644 (file)
index 0000000..6fdea1f
--- /dev/null
@@ -0,0 +1 @@
+var _0x4911=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x66\x69\x65\x6C\x64","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47"];_0x4911[0];var Sequelize=require(_0x4911[1]);module[_0x4911[2]]= {name:{type:Sequelize[_0x4911[3]],get:function(_0xeb75x2){return this[_0x4911[5]](_0x4911[4])}},field:{type:Sequelize[_0x4911[6]],allowNull:false},operator:{type:Sequelize[_0x4911[6]],allowNull:false},value:{type:Sequelize[_0x4911[6]],allowNull:false}}
\ No newline at end of file
diff --git a/server/api/condition/condition.controller.js b/server/api/condition/condition.controller.js
new file mode 100644 (file)
index 0000000..ce9278a
--- /dev/null
@@ -0,0 +1 @@
+var _0xbd8e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x64","\x62\x6F\x64\x79","\x63\x61\x74\x63\x68","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E"];_0xbd8e[0];var jsonpatch=require(_0xbd8e[1]);var rp=require(_0xbd8e[2]);var moment=require(_0xbd8e[3]);var BPromise=require(_0xbd8e[4]);var util=require(_0xbd8e[5]);var path=require(_0xbd8e[6]);var sox=require(_0xbd8e[7]);var ejs=require(_0xbd8e[8]);var fs=require(_0xbd8e[9]);var _=require(_0xbd8e[10]);var squel=require(_0xbd8e[11]);var crypto=require(_0xbd8e[12]);var jsforce=require(_0xbd8e[13]);var toCsv=require(_0xbd8e[14]);var qs=require(_0xbd8e[15]);var logger=require(_0xbd8e[17])(_0xbd8e[16]);var utils=require(_0xbd8e[18]);var config=require(_0xbd8e[19]);var db=require(_0xbd8e[21])[_0xbd8e[20]];function respondWithStatusCode(_0x622dx15,_0x622dx16,_0x622dx17){_0x622dx16= _0x622dx16|| 204;return function(_0x622dx18){if(_0x622dx18){logger[_0xbd8e[24]](_0xbd8e[22],_0x622dx17,_0x622dx16,_0xbd8e[23]);logger[_0xbd8e[26]](_0xbd8e[25],_0x622dx17,_0x622dx16,_0xbd8e[23]);return _0x622dx15[_0xbd8e[27]](_0x622dx16)};return _0x622dx15[_0xbd8e[29]](304)[_0xbd8e[28]]()}}function respondWithResult(_0x622dx15,_0x622dx16,_0x622dx17){_0x622dx16= _0x622dx16|| 200;return function(_0x622dx18){if(_0x622dx18){logger[_0xbd8e[24]](_0xbd8e[22],_0x622dx17,_0x622dx16,_0xbd8e[30]);logger[_0xbd8e[26]](_0xbd8e[25],_0x622dx17,_0x622dx16,_0xbd8e[30],JSON[_0xbd8e[31]](_0x622dx18));return _0x622dx15[_0xbd8e[29]](_0x622dx16)[_0xbd8e[32]](_0x622dx18)};return _0x622dx15[_0xbd8e[29]](304)[_0xbd8e[28]]()}}function respondWithFilteredResult(_0x622dx15,_0x622dx1b,_0x622dx17){return function(_0x622dx18){if(_0x622dx18){var _0x622dx1c=_0x622dx18[_0xbd8e[33]],_0x622dx1d=_0x622dx1b[_0xbd8e[34]],_0x622dx1e=_0x622dx1b[_0xbd8e[34]]+ _0x622dx1b[_0xbd8e[35]],_0x622dx16;if(_0x622dx1e>= _0x622dx1c){_0x622dx1e= _0x622dx1c;_0x622dx16= 200}else {_0x622dx16= 206};_0x622dx15[_0xbd8e[29]](_0x622dx16);logger[_0xbd8e[24]](_0xbd8e[22],_0x622dx17,_0x622dx16,_0xbd8e[36]);logger[_0xbd8e[26]](_0xbd8e[25],_0x622dx17,_0x622dx16,_0xbd8e[30],JSON[_0xbd8e[31]](_0x622dx18));return _0x622dx15[_0xbd8e[40]](_0xbd8e[37],_0x622dx1d+ _0xbd8e[38]+ _0x622dx1e+ _0xbd8e[39]+ _0x622dx1c)[_0xbd8e[32]](_0x622dx18)};return null}}function patchUpdates(_0x622dx20){return function(_0x622dx18){try{jsonpatch[_0xbd8e[41]](_0x622dx18,_0x622dx20,true)}catch(err){return BPromise[_0xbd8e[42]](err)};return _0x622dx18[_0xbd8e[43]]()}}function saveUpdates(_0x622dx22,_0x622dx16,_0x622dx17){return function(_0x622dx18){if(_0x622dx18){return _0x622dx18[_0xbd8e[46]](_0x622dx22)[_0xbd8e[45]](function(_0x622dx23){logger[_0xbd8e[24]](_0xbd8e[22],_0x622dx17,_0x622dx16,_0xbd8e[44]);logger[_0xbd8e[26]](_0xbd8e[25],_0x622dx17,_0x622dx16,_0xbd8e[44],JSON[_0xbd8e[31]](_0x622dx18));return _0x622dx23})};return null}}function removeEntity(_0x622dx15,_0x622dx16,_0x622dx17){return function(_0x622dx18){if(_0x622dx18){return _0x622dx18[_0xbd8e[48]]()[_0xbd8e[45]](function(){logger[_0xbd8e[24]](_0xbd8e[22],_0x622dx17,_0x622dx16,_0xbd8e[47]);logger[_0xbd8e[26]](_0xbd8e[25],_0x622dx17,_0x622dx16,_0xbd8e[47],JSON[_0xbd8e[31]](_0x622dx18));_0x622dx15[_0xbd8e[29]](204)[_0xbd8e[28]]()})}}}function handleEntityNotFound(_0x622dx15,_0x622dx16,_0x622dx17){return function(_0x622dx18){if(!_0x622dx18){logger[_0xbd8e[50]](_0xbd8e[22],_0x622dx17,404,_0xbd8e[49]);_0x622dx15[_0xbd8e[29]](404)[_0xbd8e[28]]();return null};return _0x622dx18}}function handleError(_0x622dx15,_0x622dx16,_0x622dx17){_0x622dx16= _0x622dx16|| 500;return function(_0x622dx27){logger[_0xbd8e[50]](_0xbd8e[22],_0x622dx17,_0x622dx16,JSON[_0xbd8e[31]](_0x622dx27));delete _0x622dx27[_0xbd8e[51]];_0x622dx15[_0xbd8e[29]](_0x622dx16)[_0xbd8e[52]](_0x622dx27)}}exports[_0xbd8e[46]]= function(_0x622dx28,_0x622dx15){if(_0x622dx28[_0xbd8e[54]][_0xbd8e[53]]){delete _0x622dx28[_0xbd8e[54]][_0xbd8e[53]]};return db[_0xbd8e[58]][_0xbd8e[57]]({where:{id:_0x622dx28[_0xbd8e[56]][_0xbd8e[53]]}})[_0xbd8e[45]](handleEntityNotFound(_0x622dx15,null,_0xbd8e[46]))[_0xbd8e[45]](saveUpdates(_0x622dx28[_0xbd8e[54]],null,_0xbd8e[46]))[_0xbd8e[45]](respondWithResult(_0x622dx15,null,_0xbd8e[46]))[_0xbd8e[55]](handleError(_0x622dx15,null,_0xbd8e[46]))};exports[_0xbd8e[48]]= function(_0x622dx28,_0x622dx15){return db[_0xbd8e[58]][_0xbd8e[57]]({where:{id:_0x622dx28[_0xbd8e[56]][_0xbd8e[53]]}})[_0xbd8e[45]](handleEntityNotFound(_0x622dx15,null,_0xbd8e[48]))[_0xbd8e[45]](removeEntity(_0x622dx15,null,_0xbd8e[48]))[_0xbd8e[55]](handleError(_0x622dx15,null,_0xbd8e[48]))}
\ No newline at end of file
diff --git a/server/api/condition/condition.model.js b/server/api/condition/condition.model.js
new file mode 100644 (file)
index 0000000..e1bf149
--- /dev/null
@@ -0,0 +1 @@
+var _0xa018=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x74\x6F\x6F\x6C\x73\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xa018[0];var _=require(_0xa018[1]);var util=require(_0xa018[2]);var logger=require(_0xa018[4])(_0xa018[3]);var attributes=require(_0xa018[5]);module[_0xa018[6]]= function(_0x5858x5,_0x5858x6){return _0x5858x5[_0xa018[9]](_0xa018[7],attributes,{tableName:_0xa018[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/condition/condition.rpc.js b/server/api/condition/condition.rpc.js
new file mode 100644 (file)
index 0000000..cc1ab0d
--- /dev/null
@@ -0,0 +1 @@
+var _0x69d4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x69d4[0];var _=require(_0x69d4[1]);var util=require(_0x69d4[2]);var moment=require(_0x69d4[3]);var BPromise=require(_0x69d4[4]);var db=require(_0x69d4[6])[_0x69d4[5]];var utils=require(_0x69d4[7]);var logger=require(_0x69d4[9])(_0x69d4[8]);var jayson=require(_0x69d4[10]);var client=jayson[_0x69d4[12]][_0x69d4[11]]({port:9002});function respondWithRpcPromise(_0x5c9axb,_0x5c9axc,_0x5c9axd){return  new BPromise(function(_0x5c9axe,_0x5c9axf){return client[_0x69d4[25]](_0x5c9axb,_0x5c9axd)[_0x69d4[24]](function(_0x5c9ax11){logger[_0x69d4[17]](_0x69d4[13],_0x5c9axc,_0x69d4[16]);logger[_0x69d4[20]](_0x69d4[18],_0x5c9axc,_0x69d4[16],JSON[_0x69d4[19]](_0x5c9ax11));if(_0x5c9ax11[_0x69d4[14]]){if(_0x5c9ax11[_0x69d4[14]][_0x69d4[21]]=== 500){logger[_0x69d4[14]](_0x69d4[13],_0x5c9axc,_0x5c9ax11[_0x69d4[14]][_0x69d4[22]]);return _0x5c9axf(_0x5c9ax11[_0x69d4[14]][_0x69d4[22]])};logger[_0x69d4[14]](_0x69d4[13],_0x5c9axc,_0x5c9ax11[_0x69d4[14]][_0x69d4[22]]);return _0x5c9axe(_0x5c9ax11[_0x69d4[14]][_0x69d4[22]])}else {logger[_0x69d4[17]](_0x69d4[13],_0x5c9axc,_0x69d4[16]);_0x5c9axe(_0x5c9ax11[_0x69d4[23]][_0x69d4[22]])}})[_0x69d4[15]](function(_0x5c9ax10){logger[_0x69d4[14]](_0x69d4[13],_0x5c9axc,_0x5c9ax10);_0x5c9axf(_0x5c9ax10)})})}
\ No newline at end of file
diff --git a/server/api/condition/index.js b/server/api/condition/index.js
new file mode 100644 (file)
index 0000000..b440ccc
--- /dev/null
@@ -0,0 +1 @@
+var _0xd2ca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd2ca[0];var multer=require(_0xd2ca[1]);var util=require(_0xd2ca[2]);var path=require(_0xd2ca[3]);var express=require(_0xd2ca[4]);var router=express.Router();var auth=require(_0xd2ca[5]);var config=require(_0xd2ca[6]);var controller=require(_0xd2ca[7]);router[_0xd2ca[11]](_0xd2ca[8],auth[_0xd2ca[9]](),controller[_0xd2ca[10]]);router[_0xd2ca[13]](_0xd2ca[8],auth[_0xd2ca[9]](),controller[_0xd2ca[12]]);module[_0xd2ca[14]]= router
\ No newline at end of file
diff --git a/server/api/dashboard/dashboard.attributes.js b/server/api/dashboard/dashboard.attributes.js
new file mode 100644 (file)
index 0000000..5cb0a06
--- /dev/null
@@ -0,0 +1 @@
+var _0xf752=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52"];_0xf752[0];var Sequelize=require(_0xf752[1]);module[_0xf752[2]]= {name:{type:Sequelize[_0xf752[3]],allowNull:false,unique:_0xf752[4]},description:{type:Sequelize[_0xf752[3]]},interval:{type:Sequelize[_0xf752[5]],defaultValue:5,allowNull:false,validate:{min:5}}}
\ No newline at end of file
diff --git a/server/api/dashboard/dashboard.controller.js b/server/api/dashboard/dashboard.controller.js
new file mode 100644 (file)
index 0000000..4afcdea
--- /dev/null
@@ -0,0 +1 @@
+var _0x4aa8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x72\x75\x6E","\x70\x69\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73\x2F\x72\x75\x6E","\x6A\x6F\x69\x6E","\x66\x6F\x72\x6B","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x61\x64\x64\x49\x74\x65\x6D","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x64","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x67\x65\x74\x49\x74\x65\x6D\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x4aa8[0];var jsonpatch=require(_0x4aa8[1]);var rp=require(_0x4aa8[2]);var moment=require(_0x4aa8[3]);var BPromise=require(_0x4aa8[4]);var util=require(_0x4aa8[5]);var path=require(_0x4aa8[6]);var sox=require(_0x4aa8[7]);var ejs=require(_0x4aa8[8]);var fs=require(_0x4aa8[9]);var _=require(_0x4aa8[10]);var squel=require(_0x4aa8[11]);var crypto=require(_0x4aa8[12]);var jsforce=require(_0x4aa8[13]);var toCsv=require(_0x4aa8[14]);var qs=require(_0x4aa8[15]);var logger=require(_0x4aa8[17])(_0x4aa8[16]);var utils=require(_0x4aa8[18]);var config=require(_0x4aa8[19]);var db=require(_0x4aa8[21])[_0x4aa8[20]];function respondWithStatusCode(_0x6d19x15,_0x6d19x16,_0x6d19x17){_0x6d19x16= _0x6d19x16|| 204;return function(_0x6d19x18){if(_0x6d19x18){logger[_0x4aa8[24]](_0x4aa8[22],_0x6d19x17,_0x6d19x16,_0x4aa8[23]);logger[_0x4aa8[26]](_0x4aa8[25],_0x6d19x17,_0x6d19x16,_0x4aa8[23]);return _0x6d19x15[_0x4aa8[27]](_0x6d19x16)};return _0x6d19x15[_0x4aa8[29]](304)[_0x4aa8[28]]()}}function respondWithResult(_0x6d19x15,_0x6d19x16,_0x6d19x17){_0x6d19x16= _0x6d19x16|| 200;return function(_0x6d19x18){if(_0x6d19x18){logger[_0x4aa8[24]](_0x4aa8[22],_0x6d19x17,_0x6d19x16,_0x4aa8[30]);logger[_0x4aa8[26]](_0x4aa8[25],_0x6d19x17,_0x6d19x16,_0x4aa8[30],JSON[_0x4aa8[31]](_0x6d19x18));return _0x6d19x15[_0x4aa8[29]](_0x6d19x16)[_0x4aa8[32]](_0x6d19x18)};return _0x6d19x15[_0x4aa8[29]](304)[_0x4aa8[28]]()}}function respondWithFilteredResult(_0x6d19x15,_0x6d19x1b,_0x6d19x17){return function(_0x6d19x18){if(_0x6d19x18){var _0x6d19x1c=_0x6d19x18[_0x4aa8[33]],_0x6d19x1d=_0x6d19x1b[_0x4aa8[34]],_0x6d19x1e=_0x6d19x1b[_0x4aa8[34]]+ _0x6d19x1b[_0x4aa8[35]],_0x6d19x16;if(_0x6d19x1e>= _0x6d19x1c){_0x6d19x1e= _0x6d19x1c;_0x6d19x16= 200}else {_0x6d19x16= 206};_0x6d19x15[_0x4aa8[29]](_0x6d19x16);logger[_0x4aa8[24]](_0x4aa8[22],_0x6d19x17,_0x6d19x16,_0x4aa8[36]);logger[_0x4aa8[26]](_0x4aa8[25],_0x6d19x17,_0x6d19x16,_0x4aa8[30],JSON[_0x4aa8[31]](_0x6d19x18));return _0x6d19x15[_0x4aa8[40]](_0x4aa8[37],_0x6d19x1d+ _0x4aa8[38]+ _0x6d19x1e+ _0x4aa8[39]+ _0x6d19x1c)[_0x4aa8[32]](_0x6d19x18)};return null}}function patchUpdates(_0x6d19x20){return function(_0x6d19x18){try{jsonpatch[_0x4aa8[41]](_0x6d19x18,_0x6d19x20,true)}catch(err){return BPromise[_0x4aa8[42]](err)};return _0x6d19x18[_0x4aa8[43]]()}}function saveUpdates(_0x6d19x22,_0x6d19x16,_0x6d19x17){return function(_0x6d19x18){if(_0x6d19x18){return _0x6d19x18[_0x4aa8[46]](_0x6d19x22)[_0x4aa8[45]](function(_0x6d19x23){logger[_0x4aa8[24]](_0x4aa8[22],_0x6d19x17,_0x6d19x16,_0x4aa8[44]);logger[_0x4aa8[26]](_0x4aa8[25],_0x6d19x17,_0x6d19x16,_0x4aa8[44],JSON[_0x4aa8[31]](_0x6d19x18));return _0x6d19x23})};return null}}function removeEntity(_0x6d19x15,_0x6d19x16,_0x6d19x17){return function(_0x6d19x18){if(_0x6d19x18){return _0x6d19x18[_0x4aa8[48]]()[_0x4aa8[45]](function(){logger[_0x4aa8[24]](_0x4aa8[22],_0x6d19x17,_0x6d19x16,_0x4aa8[47]);logger[_0x4aa8[26]](_0x4aa8[25],_0x6d19x17,_0x6d19x16,_0x4aa8[47],JSON[_0x4aa8[31]](_0x6d19x18));_0x6d19x15[_0x4aa8[29]](204)[_0x4aa8[28]]()})}}}function handleEntityNotFound(_0x6d19x15,_0x6d19x16,_0x6d19x17){return function(_0x6d19x18){if(!_0x6d19x18){logger[_0x4aa8[50]](_0x4aa8[22],_0x6d19x17,404,_0x4aa8[49]);_0x6d19x15[_0x4aa8[29]](404)[_0x4aa8[28]]();return null};return _0x6d19x18}}function handleError(_0x6d19x15,_0x6d19x16,_0x6d19x17){_0x6d19x16= _0x6d19x16|| 500;return function(_0x6d19x27){logger[_0x4aa8[50]](_0x4aa8[22],_0x6d19x17,_0x6d19x16,JSON[_0x4aa8[31]](_0x6d19x27));delete _0x6d19x27[_0x4aa8[51]];_0x6d19x15[_0x4aa8[29]](_0x6d19x16)[_0x4aa8[52]](_0x6d19x27)}}exports[_0x4aa8[53]]= function(_0x6d19x28,_0x6d19x15){var _0x6d19x1b={},_0x6d19x29={};_0x6d19x29[_0x4aa8[54]]= _[_0x4aa8[57]](db[_0x4aa8[56]][_0x4aa8[55]]);_0x6d19x29[_0x4aa8[58]]= _[_0x4aa8[57]](_0x6d19x28[_0x4aa8[58]]);_0x6d19x29[_0x4aa8[59]]= _[_0x4aa8[60]](_0x6d19x29[_0x4aa8[54]],_0x6d19x29[_0x4aa8[58]]);_0x6d19x1b[_0x4aa8[61]]= _[_0x4aa8[60]](_0x6d19x29[_0x4aa8[54]],qs[_0x4aa8[62]](_0x6d19x28[_0x4aa8[58]][_0x4aa8[62]]));_0x6d19x1b[_0x4aa8[61]]= (_0x6d19x1b[_0x4aa8[61]][_0x4aa8[63]])?_0x6d19x1b[_0x4aa8[61]]:_0x6d19x29[_0x4aa8[54]];if(!_0x6d19x28[_0x4aa8[58]][_0x4aa8[65]](_0x4aa8[64])){_0x6d19x1b[_0x4aa8[35]]= qs[_0x4aa8[35]](_0x6d19x28[_0x4aa8[58]][_0x4aa8[35]]);_0x6d19x1b[_0x4aa8[34]]= qs[_0x4aa8[34]](_0x6d19x28[_0x4aa8[58]][_0x4aa8[34]])};_0x6d19x1b[_0x4aa8[66]]= qs[_0x4aa8[67]](_0x6d19x28[_0x4aa8[58]][_0x4aa8[67]]);_0x6d19x1b[_0x4aa8[68]]= qs[_0x4aa8[59]](_[_0x4aa8[69]](_0x6d19x28[_0x4aa8[58]],_0x6d19x29[_0x4aa8[59]]));if(_0x6d19x28[_0x4aa8[58]][_0x4aa8[70]]){_0x6d19x1b[_0x4aa8[68]]= _[_0x4aa8[73]](_0x6d19x1b[_0x4aa8[68]],{$or:_[_0x4aa8[72]](_0x6d19x1b[_0x4aa8[61]],function(_0x6d19x2a){var _0x6d19x2b={};_0x6d19x2b[_0x6d19x2a]= {$like:_0x4aa8[71]+ _0x6d19x28[_0x4aa8[58]][_0x4aa8[70]]+ _0x4aa8[71]};return _0x6d19x2b})})};_0x6d19x1b= _[_0x4aa8[73]]({},_0x6d19x1b,_0x6d19x28[_0x4aa8[74]]);return db[_0x4aa8[56]][_0x4aa8[76]](_0x6d19x1b)[_0x4aa8[45]](respondWithFilteredResult(_0x6d19x15,_0x6d19x1b,_0x4aa8[53]))[_0x4aa8[75]](handleError(_0x6d19x15,null,_0x4aa8[53]))};exports[_0x4aa8[77]]= function(_0x6d19x28,_0x6d19x15){var _0x6d19x1b={raw:false,where:{id:_0x6d19x28[_0x4aa8[79]][_0x4aa8[78]]}},_0x6d19x29={};_0x6d19x29[_0x4aa8[54]]= _[_0x4aa8[57]](db[_0x4aa8[56]][_0x4aa8[55]]);_0x6d19x29[_0x4aa8[58]]= _[_0x4aa8[57]](_0x6d19x28[_0x4aa8[58]]);_0x6d19x29[_0x4aa8[59]]= _[_0x4aa8[60]](_0x6d19x29[_0x4aa8[54]],_0x6d19x29[_0x4aa8[58]]);_0x6d19x1b[_0x4aa8[61]]= _[_0x4aa8[60]](_0x6d19x29[_0x4aa8[54]],qs[_0x4aa8[62]](_0x6d19x28[_0x4aa8[58]][_0x4aa8[62]]));_0x6d19x1b[_0x4aa8[61]]= (_0x6d19x1b[_0x4aa8[61]][_0x4aa8[63]])?_0x6d19x1b[_0x4aa8[61]]:_0x6d19x29[_0x4aa8[54]];_0x6d19x1b= _[_0x4aa8[73]]({},_0x6d19x1b,_0x6d19x28[_0x4aa8[74]]);return db[_0x4aa8[56]][_0x4aa8[80]](_0x6d19x1b)[_0x4aa8[45]](handleEntityNotFound(_0x6d19x15,null,_0x4aa8[77]))[_0x4aa8[45]](respondWithResult(_0x6d19x15,null,_0x4aa8[77]))[_0x4aa8[75]](handleError(_0x6d19x15,null,_0x4aa8[77]))};exports[_0x4aa8[81]]= function(_0x6d19x28,_0x6d19x15){return db[_0x4aa8[56]][_0x4aa8[81]](_0x6d19x28[_0x4aa8[82]],{})[_0x4aa8[45]](respondWithResult(_0x6d19x15,201,_0x4aa8[81]))[_0x4aa8[75]](handleError(_0x6d19x15,null,_0x4aa8[81]))};exports[_0x4aa8[46]]= function(_0x6d19x28,_0x6d19x15){if(_0x6d19x28[_0x4aa8[82]][_0x4aa8[78]]){delete _0x6d19x28[_0x4aa8[82]][_0x4aa8[78]]};return db[_0x4aa8[56]][_0x4aa8[80]]({where:{id:_0x6d19x28[_0x4aa8[79]][_0x4aa8[78]]}})[_0x4aa8[45]](handleEntityNotFound(_0x6d19x15,null,_0x4aa8[46]))[_0x4aa8[45]](saveUpdates(_0x6d19x28[_0x4aa8[82]],null,_0x4aa8[46]))[_0x4aa8[45]](respondWithResult(_0x6d19x15,null,_0x4aa8[46]))[_0x4aa8[75]](handleError(_0x6d19x15,null,_0x4aa8[46]))};exports[_0x4aa8[48]]= function(_0x6d19x28,_0x6d19x15){return db[_0x4aa8[56]][_0x4aa8[80]]({where:{id:_0x6d19x28[_0x4aa8[79]][_0x4aa8[78]]}})[_0x4aa8[45]](handleEntityNotFound(_0x6d19x15,null,_0x4aa8[48]))[_0x4aa8[45]](removeEntity(_0x6d19x15,null,_0x4aa8[48]))[_0x4aa8[75]](handleError(_0x6d19x15,null,_0x4aa8[48]))};exports[_0x4aa8[83]]= function(_0x6d19x28,_0x6d19x15,_0x6d19x2c){var _0x6d19x2d;return db[_0x4aa8[56]][_0x4aa8[80]]({where:{id:_0x6d19x28[_0x4aa8[79]][_0x4aa8[78]]},attributes:[_0x4aa8[78]]})[_0x4aa8[45]](handleEntityNotFound(_0x6d19x15,null,_0x4aa8[83]))[_0x4aa8[45]](function(_0x6d19x18){if(_0x6d19x18){require(_0x4aa8[88])[_0x4aa8[87]](path[_0x4aa8[86]](__dirname,_0x4aa8[85]),[_0x6d19x18[_0x4aa8[78]]])}})[_0x4aa8[45]](function(_0x6d19x18){if(_0x6d19x18){return {pid:_0x6d19x18[_0x4aa8[84]]}}})[_0x4aa8[45]](respondWithResult(_0x6d19x15,null,_0x4aa8[83]))[_0x4aa8[75]](handleError(_0x6d19x15,null,_0x4aa8[83]))};exports[_0x4aa8[89]]= function(_0x6d19x28,_0x6d19x15,_0x6d19x2c){if(_0x6d19x28[_0x4aa8[82]][_0x4aa8[78]]){delete _0x6d19x28[_0x4aa8[82]][_0x4aa8[78]]};return db[_0x4aa8[56]][_0x4aa8[80]]({where:{id:_0x6d19x28[_0x4aa8[79]][_0x4aa8[78]]}})[_0x4aa8[45]](handleEntityNotFound(_0x6d19x15,null,_0x4aa8[89]))[_0x4aa8[45]](function(_0x6d19x18){if(_0x6d19x18){_0x6d19x28[_0x4aa8[82]][_0x4aa8[90]]= _0x6d19x18[_0x4aa8[78]];return db[_0x4aa8[91]][_0x4aa8[81]](_0x6d19x28[_0x4aa8[82]])}})[_0x4aa8[45]](respondWithResult(_0x6d19x15,null,_0x4aa8[89]))[_0x4aa8[75]](handleError(_0x6d19x15,null,_0x4aa8[89]))};exports[_0x4aa8[92]]= function(_0x6d19x28,_0x6d19x18,_0x6d19x2c){var _0x6d19x1b={};var _0x6d19x29={};var _0x6d19x2e;var _0x6d19x1c;return db[_0x4aa8[56]][_0x4aa8[93]]({where:{id:_0x6d19x28[_0x4aa8[79]][_0x4aa8[78]]}})[_0x4aa8[45]](handleEntityNotFound(_0x6d19x18,null,_0x4aa8[92]))[_0x4aa8[45]](function(_0x6d19x18){if(_0x6d19x18){_0x6d19x2e= _0x6d19x18;_0x6d19x29[_0x4aa8[54]]= _[_0x4aa8[57]](db[_0x4aa8[91]][_0x4aa8[55]]);_0x6d19x29[_0x4aa8[58]]= _[_0x4aa8[57]](_0x6d19x28[_0x4aa8[58]]);_0x6d19x29[_0x4aa8[59]]= _[_0x4aa8[60]](_0x6d19x29[_0x4aa8[54]],_0x6d19x29[_0x4aa8[58]]);_0x6d19x1b[_0x4aa8[61]]= _[_0x4aa8[60]](_0x6d19x29[_0x4aa8[54]],qs[_0x4aa8[62]](_0x6d19x28[_0x4aa8[58]][_0x4aa8[62]]));_0x6d19x1b[_0x4aa8[61]]= (_0x6d19x1b[_0x4aa8[61]][_0x4aa8[63]])?_0x6d19x1b[_0x4aa8[61]]:_0x6d19x29[_0x4aa8[54]];_0x6d19x1b[_0x4aa8[66]]= qs[_0x4aa8[67]](_0x6d19x28[_0x4aa8[58]][_0x4aa8[67]]);_0x6d19x1b[_0x4aa8[68]]= qs[_0x4aa8[59]](_[_0x4aa8[69]](_0x6d19x28[_0x4aa8[58]],_0x6d19x29[_0x4aa8[59]]));if(_0x6d19x28[_0x4aa8[58]][_0x4aa8[70]]){_0x6d19x1b[_0x4aa8[68]]= _[_0x4aa8[73]](_0x6d19x1b[_0x4aa8[68]],{$or:_[_0x4aa8[72]](_0x6d19x1b[_0x4aa8[61]],function(_0x6d19x2a){var _0x6d19x2b={};_0x6d19x2b[_0x6d19x2a]= {$like:_0x4aa8[71]+ _0x6d19x28[_0x4aa8[58]][_0x4aa8[70]]+ _0x4aa8[71]};return _0x6d19x2b})})};_0x6d19x1b= _[_0x4aa8[73]]({},_0x6d19x1b,_0x6d19x28[_0x4aa8[74]]);return _0x6d19x2e[_0x4aa8[92]](_0x6d19x1b)}})[_0x4aa8[45]](function(_0x6d19x30){if(_0x6d19x30){_0x6d19x1c= _0x6d19x30[_0x4aa8[63]];if(!_0x6d19x28[_0x4aa8[58]][_0x4aa8[65]](_0x4aa8[64])){_0x6d19x1b[_0x4aa8[35]]= qs[_0x4aa8[35]](_0x6d19x28[_0x4aa8[58]][_0x4aa8[35]]);_0x6d19x1b[_0x4aa8[34]]= qs[_0x4aa8[34]](_0x6d19x28[_0x4aa8[58]][_0x4aa8[34]])};return _0x6d19x2e[_0x4aa8[92]](_0x6d19x1b)}})[_0x4aa8[45]](function(_0x6d19x2f){return _0x6d19x2f?{count:_0x6d19x1c,rows:_0x6d19x2f}:null})[_0x4aa8[45]](respondWithResult(_0x6d19x18,null,_0x4aa8[92]))[_0x4aa8[75]](handleError(_0x6d19x18,null,_0x4aa8[92]))}
\ No newline at end of file
diff --git a/server/api/dashboard/dashboard.model.js b/server/api/dashboard/dashboard.model.js
new file mode 100644 (file)
index 0000000..a40c7f4
--- /dev/null
@@ -0,0 +1 @@
+var _0xbe8b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0xbe8b[0];var _=require(_0xbe8b[1]);var util=require(_0xbe8b[2]);var logger=require(_0xbe8b[4])(_0xbe8b[3]);var attributes=require(_0xbe8b[5]);module[_0xbe8b[6]]= function(_0x2873x5,_0x2873x6){return _0x2873x5[_0xbe8b[9]](_0xbe8b[7],attributes,{tableName:_0xbe8b[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/dashboard/dashboard.rpc.js b/server/api/dashboard/dashboard.rpc.js
new file mode 100644 (file)
index 0000000..e80a1ab
--- /dev/null
@@ -0,0 +1 @@
+var _0x46a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x46a1[0];var _=require(_0x46a1[1]);var util=require(_0x46a1[2]);var moment=require(_0x46a1[3]);var BPromise=require(_0x46a1[4]);var db=require(_0x46a1[6])[_0x46a1[5]];var utils=require(_0x46a1[7]);var logger=require(_0x46a1[9])(_0x46a1[8]);var jayson=require(_0x46a1[10]);var client=jayson[_0x46a1[12]][_0x46a1[11]]({port:9002});function respondWithRpcPromise(_0xe32exb,_0xe32exc,_0xe32exd){return  new BPromise(function(_0xe32exe,_0xe32exf){return client[_0x46a1[25]](_0xe32exb,_0xe32exd)[_0x46a1[24]](function(_0xe32ex11){logger[_0x46a1[17]](_0x46a1[13],_0xe32exc,_0x46a1[16]);logger[_0x46a1[20]](_0x46a1[18],_0xe32exc,_0x46a1[16],JSON[_0x46a1[19]](_0xe32ex11));if(_0xe32ex11[_0x46a1[14]]){if(_0xe32ex11[_0x46a1[14]][_0x46a1[21]]=== 500){logger[_0x46a1[14]](_0x46a1[13],_0xe32exc,_0xe32ex11[_0x46a1[14]][_0x46a1[22]]);return _0xe32exf(_0xe32ex11[_0x46a1[14]][_0x46a1[22]])};logger[_0x46a1[14]](_0x46a1[13],_0xe32exc,_0xe32ex11[_0x46a1[14]][_0x46a1[22]]);return _0xe32exe(_0xe32ex11[_0x46a1[14]][_0x46a1[22]])}else {logger[_0x46a1[17]](_0x46a1[13],_0xe32exc,_0x46a1[16]);_0xe32exe(_0xe32ex11[_0x46a1[23]][_0x46a1[22]])}})[_0x46a1[15]](function(_0xe32ex10){logger[_0x46a1[14]](_0x46a1[13],_0xe32exc,_0xe32ex10);_0xe32exf(_0xe32ex10)})})}
\ No newline at end of file
diff --git a/server/api/dashboard/index.js b/server/api/dashboard/index.js
new file mode 100644 (file)
index 0000000..76c04a8
--- /dev/null
@@ -0,0 +1 @@
+var _0xf5d6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x72\x75\x6E","\x72\x75\x6E","\x2F\x3A\x69\x64\x2F\x69\x74\x65\x6D\x73","\x67\x65\x74\x49\x74\x65\x6D\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x74\x65\x6D","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf5d6[0];var multer=require(_0xf5d6[1]);var util=require(_0xf5d6[2]);var path=require(_0xf5d6[3]);var express=require(_0xf5d6[4]);var router=express.Router();var auth=require(_0xf5d6[5]);var config=require(_0xf5d6[6]);var controller=require(_0xf5d6[7]);router[_0xf5d6[11]](_0xf5d6[8],auth[_0xf5d6[9]](),controller[_0xf5d6[10]]);router[_0xf5d6[11]](_0xf5d6[12],auth[_0xf5d6[9]](),controller[_0xf5d6[13]]);router[_0xf5d6[11]](_0xf5d6[14],auth[_0xf5d6[9]](),controller[_0xf5d6[15]]);router[_0xf5d6[11]](_0xf5d6[16],auth[_0xf5d6[9]](),controller[_0xf5d6[17]]);router[_0xf5d6[19]](_0xf5d6[8],auth[_0xf5d6[9]](),controller[_0xf5d6[18]]);router[_0xf5d6[19]](_0xf5d6[16],auth[_0xf5d6[9]](),controller[_0xf5d6[20]]);router[_0xf5d6[22]](_0xf5d6[12],auth[_0xf5d6[9]](),controller[_0xf5d6[21]]);router[_0xf5d6[24]](_0xf5d6[12],auth[_0xf5d6[9]](),controller[_0xf5d6[23]]);module[_0xf5d6[25]]= router
\ No newline at end of file
diff --git a/server/api/dashboardItem/dashboardItem.attributes.js b/server/api/dashboardItem/dashboardItem.attributes.js
new file mode 100644 (file)
index 0000000..22c93fd
--- /dev/null
@@ -0,0 +1 @@
+var _0x6897=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x73\x71\x75\x65\x6C","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x63\x6F\x75\x6E\x74\x65\x72","\x74\x61\x62\x6C\x65","\x69\x66\x72\x61\x6D\x65","\x63\x6C\x6F\x63\x6B","\x49\x4E\x54\x45\x47\x45\x52","\x54\x45\x58\x54","\x42\x4C\x4F\x42","\x64\x61\x74\x61","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x71\x75\x65\x72\x79","\x73\x65\x6C\x65\x63\x74","\x66\x69\x65\x6C\x64\x73","\x69\x73\x41\x72\x72\x61\x79","\x6C\x65\x6E\x67\x74\x68","\x66\x69\x65\x6C\x64","\x66\x72\x6F\x6D","\x77\x68\x65\x72\x65","\x67\x72\x6F\x75\x70","\x6F\x72\x64\x65\x72","\x6C\x69\x6D\x69\x74"];_0x6897[0];var Sequelize=require(_0x6897[1]);var squel=require(_0x6897[2]);var _=require(_0x6897[3]);module[_0x6897[4]]= {type:{type:Sequelize.ENUM(_0x6897[5],_0x6897[6],_0x6897[7],_0x6897[8]),allowNull:false,defaultValue:_0x6897[8]},sizeX:{type:Sequelize[_0x6897[9]],allowNull:false,defaultValue:1},sizeY:{type:Sequelize[_0x6897[9]],allowNull:false,defaultValue:1},row:{type:Sequelize[_0x6897[9]]},col:{type:Sequelize[_0x6897[9]]},query:{type:Sequelize[_0x6897[10]]},data:{type:Sequelize[_0x6897[11]],get:function(){if(this[_0x6897[13]](_0x6897[12])){return JSON[_0x6897[14]](this[_0x6897[13]](_0x6897[12]))}},set:function(_0xe378x4){if(_0xe378x4){var _0xe378x5=JSON[_0x6897[15]](_0xe378x4);this[_0x6897[16]](_0x6897[12],_0xe378x5);if(_0xe378x4[_0x6897[17]]){var _0xe378x6=squel[_0x6897[18]]();if(_0xe378x4[_0x6897[17]][_0x6897[19]]){if(_[_0x6897[20]](_0xe378x4[_0x6897[17]][_0x6897[19]])){for(var _0xe378x7=0;_0xe378x7< _0xe378x4[_0x6897[17]][_0x6897[19]][_0x6897[21]];_0xe378x7++){_0xe378x6[_0x6897[22]](_0xe378x4[_0x6897[17]][_0x6897[19]][_0xe378x7])}}else {_0xe378x6[_0x6897[22]](_0xe378x4[_0x6897[17]][_0x6897[19]])}};if(_0xe378x4[_0x6897[17]][_0x6897[23]]){_0xe378x6[_0x6897[23]](_0xe378x4[_0x6897[17]][_0x6897[23]])};if(_0xe378x4[_0x6897[17]][_0x6897[24]]){_0xe378x6[_0x6897[24]](_0xe378x4[_0x6897[17]][_0x6897[24]])};if(_0xe378x4[_0x6897[17]][_0x6897[25]]){_0xe378x6[_0x6897[25]](_0xe378x4[_0x6897[17]][_0x6897[25]])};if(_0xe378x4[_0x6897[17]][_0x6897[26]]){_0xe378x6[_0x6897[26]](_0xe378x4[_0x6897[17]][_0x6897[26]])};if(_0xe378x4[_0x6897[17]][_0x6897[27]]){_0xe378x6[_0x6897[27]](_0xe378x4[_0x6897[17]][_0x6897[27]])};this[_0x6897[16]](_0x6897[17],_0xe378x6.toString())}}}}}
\ No newline at end of file
diff --git a/server/api/dashboardItem/dashboardItem.controller.js b/server/api/dashboardItem/dashboardItem.controller.js
new file mode 100644 (file)
index 0000000..23e1a6c
--- /dev/null
@@ -0,0 +1 @@
+var _0xc504=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x64\x62\x48","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0xc504[0];var jsonpatch=require(_0xc504[1]);var rp=require(_0xc504[2]);var moment=require(_0xc504[3]);var BPromise=require(_0xc504[4]);var util=require(_0xc504[5]);var path=require(_0xc504[6]);var sox=require(_0xc504[7]);var ejs=require(_0xc504[8]);var fs=require(_0xc504[9]);var _=require(_0xc504[10]);var squel=require(_0xc504[11]);var crypto=require(_0xc504[12]);var jsforce=require(_0xc504[13]);var toCsv=require(_0xc504[14]);var qs=require(_0xc504[15]);var logger=require(_0xc504[17])(_0xc504[16]);var utils=require(_0xc504[18]);var config=require(_0xc504[19]);var db=require(_0xc504[21])[_0xc504[20]];var dbH=require(_0xc504[21])[_0xc504[22]];function respondWithStatusCode(_0x91a4x16,_0x91a4x17,_0x91a4x18){_0x91a4x17= _0x91a4x17|| 204;return function(_0x91a4x19){if(_0x91a4x19){logger[_0xc504[25]](_0xc504[23],_0x91a4x18,_0x91a4x17,_0xc504[24]);logger[_0xc504[27]](_0xc504[26],_0x91a4x18,_0x91a4x17,_0xc504[24]);return _0x91a4x16[_0xc504[28]](_0x91a4x17)};return _0x91a4x16[_0xc504[30]](304)[_0xc504[29]]()}}function respondWithResult(_0x91a4x16,_0x91a4x17,_0x91a4x18){_0x91a4x17= _0x91a4x17|| 200;return function(_0x91a4x19){if(_0x91a4x19){logger[_0xc504[25]](_0xc504[23],_0x91a4x18,_0x91a4x17,_0xc504[31]);logger[_0xc504[27]](_0xc504[26],_0x91a4x18,_0x91a4x17,_0xc504[31],JSON[_0xc504[32]](_0x91a4x19));return _0x91a4x16[_0xc504[30]](_0x91a4x17)[_0xc504[33]](_0x91a4x19)};return _0x91a4x16[_0xc504[30]](304)[_0xc504[29]]()}}function respondWithFilteredResult(_0x91a4x16,_0x91a4x1c,_0x91a4x18){return function(_0x91a4x19){if(_0x91a4x19){var _0x91a4x1d=_0x91a4x19[_0xc504[34]],_0x91a4x1e=_0x91a4x1c[_0xc504[35]],_0x91a4x1f=_0x91a4x1c[_0xc504[35]]+ _0x91a4x1c[_0xc504[36]],_0x91a4x17;if(_0x91a4x1f>= _0x91a4x1d){_0x91a4x1f= _0x91a4x1d;_0x91a4x17= 200}else {_0x91a4x17= 206};_0x91a4x16[_0xc504[30]](_0x91a4x17);logger[_0xc504[25]](_0xc504[23],_0x91a4x18,_0x91a4x17,_0xc504[37]);logger[_0xc504[27]](_0xc504[26],_0x91a4x18,_0x91a4x17,_0xc504[31],JSON[_0xc504[32]](_0x91a4x19));return _0x91a4x16[_0xc504[41]](_0xc504[38],_0x91a4x1e+ _0xc504[39]+ _0x91a4x1f+ _0xc504[40]+ _0x91a4x1d)[_0xc504[33]](_0x91a4x19)};return null}}function patchUpdates(_0x91a4x21){return function(_0x91a4x19){try{jsonpatch[_0xc504[42]](_0x91a4x19,_0x91a4x21,true)}catch(err){return BPromise[_0xc504[43]](err)};return _0x91a4x19[_0xc504[44]]()}}function saveUpdates(_0x91a4x23,_0x91a4x17,_0x91a4x18){return function(_0x91a4x19){if(_0x91a4x19){return _0x91a4x19[_0xc504[47]](_0x91a4x23)[_0xc504[46]](function(_0x91a4x24){logger[_0xc504[25]](_0xc504[23],_0x91a4x18,_0x91a4x17,_0xc504[45]);logger[_0xc504[27]](_0xc504[26],_0x91a4x18,_0x91a4x17,_0xc504[45],JSON[_0xc504[32]](_0x91a4x19));return _0x91a4x24})};return null}}function removeEntity(_0x91a4x16,_0x91a4x17,_0x91a4x18){return function(_0x91a4x19){if(_0x91a4x19){return _0x91a4x19[_0xc504[49]]()[_0xc504[46]](function(){logger[_0xc504[25]](_0xc504[23],_0x91a4x18,_0x91a4x17,_0xc504[48]);logger[_0xc504[27]](_0xc504[26],_0x91a4x18,_0x91a4x17,_0xc504[48],JSON[_0xc504[32]](_0x91a4x19));_0x91a4x16[_0xc504[30]](204)[_0xc504[29]]()})}}}function handleEntityNotFound(_0x91a4x16,_0x91a4x17,_0x91a4x18){return function(_0x91a4x19){if(!_0x91a4x19){logger[_0xc504[51]](_0xc504[23],_0x91a4x18,404,_0xc504[50]);_0x91a4x16[_0xc504[30]](404)[_0xc504[29]]();return null};return _0x91a4x19}}function handleError(_0x91a4x16,_0x91a4x17,_0x91a4x18){_0x91a4x17= _0x91a4x17|| 500;return function(_0x91a4x28){logger[_0xc504[51]](_0xc504[23],_0x91a4x18,_0x91a4x17,JSON[_0xc504[32]](_0x91a4x28));delete _0x91a4x28[_0xc504[52]];_0x91a4x16[_0xc504[30]](_0x91a4x17)[_0xc504[53]](_0x91a4x28)}}exports[_0xc504[54]]= function(_0x91a4x29,_0x91a4x16){var _0x91a4x1c={raw:false,where:{id:_0x91a4x29[_0xc504[56]][_0xc504[55]]}},_0x91a4x2a={};_0x91a4x2a[_0xc504[57]]= _[_0xc504[60]](db[_0xc504[59]][_0xc504[58]]);_0x91a4x2a[_0xc504[61]]= _[_0xc504[60]](_0x91a4x29[_0xc504[61]]);_0x91a4x2a[_0xc504[62]]= _[_0xc504[63]](_0x91a4x2a[_0xc504[57]],_0x91a4x2a[_0xc504[61]]);_0x91a4x1c[_0xc504[64]]= _[_0xc504[63]](_0x91a4x2a[_0xc504[57]],qs[_0xc504[65]](_0x91a4x29[_0xc504[61]][_0xc504[65]]));_0x91a4x1c[_0xc504[64]]= (_0x91a4x1c[_0xc504[64]][_0xc504[66]])?_0x91a4x1c[_0xc504[64]]:_0x91a4x2a[_0xc504[57]];_0x91a4x1c= _[_0xc504[68]]({},_0x91a4x1c,_0x91a4x29[_0xc504[67]]);return db[_0xc504[59]][_0xc504[70]](_0x91a4x1c)[_0xc504[46]](handleEntityNotFound(_0x91a4x16,null,_0xc504[54]))[_0xc504[46]](respondWithResult(_0x91a4x16,null,_0xc504[54]))[_0xc504[69]](handleError(_0x91a4x16,null,_0xc504[54]))};exports[_0xc504[47]]= function(_0x91a4x29,_0x91a4x16){if(_0x91a4x29[_0xc504[71]][_0xc504[55]]){delete _0x91a4x29[_0xc504[71]][_0xc504[55]]};return db[_0xc504[59]][_0xc504[70]]({where:{id:_0x91a4x29[_0xc504[56]][_0xc504[55]]}})[_0xc504[46]](handleEntityNotFound(_0x91a4x16,null,_0xc504[47]))[_0xc504[46]](saveUpdates(_0x91a4x29[_0xc504[71]],null,_0xc504[47]))[_0xc504[46]](respondWithResult(_0x91a4x16,null,_0xc504[47]))[_0xc504[69]](handleError(_0x91a4x16,null,_0xc504[47]))};exports[_0xc504[49]]= function(_0x91a4x29,_0x91a4x16){return db[_0xc504[59]][_0xc504[70]]({where:{id:_0x91a4x29[_0xc504[56]][_0xc504[55]]}})[_0xc504[46]](handleEntityNotFound(_0x91a4x16,null,_0xc504[49]))[_0xc504[46]](removeEntity(_0x91a4x16,null,_0xc504[49]))[_0xc504[69]](handleError(_0x91a4x16,null,_0xc504[49]))}
\ No newline at end of file
diff --git a/server/api/dashboardItem/dashboardItem.model.js b/server/api/dashboardItem/dashboardItem.model.js
new file mode 100644 (file)
index 0000000..a777a46
--- /dev/null
@@ -0,0 +1 @@
+var _0xa45c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x5F\x69\x74\x65\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0xa45c[0];var _=require(_0xa45c[1]);var util=require(_0xa45c[2]);var logger=require(_0xa45c[4])(_0xa45c[3]);var attributes=require(_0xa45c[5]);module[_0xa45c[6]]= function(_0x1cdcx5,_0x1cdcx6){return _0x1cdcx5[_0xa45c[9]](_0xa45c[7],attributes,{tableName:_0xa45c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/dashboardItem/dashboardItem.rpc.js b/server/api/dashboardItem/dashboardItem.rpc.js
new file mode 100644 (file)
index 0000000..2be0aa8
--- /dev/null
@@ -0,0 +1 @@
+var _0xd0db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd0db[0];var _=require(_0xd0db[1]);var util=require(_0xd0db[2]);var moment=require(_0xd0db[3]);var BPromise=require(_0xd0db[4]);var db=require(_0xd0db[6])[_0xd0db[5]];var utils=require(_0xd0db[7]);var logger=require(_0xd0db[9])(_0xd0db[8]);var jayson=require(_0xd0db[10]);var client=jayson[_0xd0db[12]][_0xd0db[11]]({port:9002});function respondWithRpcPromise(_0xf8f7xb,_0xf8f7xc,_0xf8f7xd){return  new BPromise(function(_0xf8f7xe,_0xf8f7xf){return client[_0xd0db[25]](_0xf8f7xb,_0xf8f7xd)[_0xd0db[24]](function(_0xf8f7x11){logger[_0xd0db[17]](_0xd0db[13],_0xf8f7xc,_0xd0db[16]);logger[_0xd0db[20]](_0xd0db[18],_0xf8f7xc,_0xd0db[16],JSON[_0xd0db[19]](_0xf8f7x11));if(_0xf8f7x11[_0xd0db[14]]){if(_0xf8f7x11[_0xd0db[14]][_0xd0db[21]]=== 500){logger[_0xd0db[14]](_0xd0db[13],_0xf8f7xc,_0xf8f7x11[_0xd0db[14]][_0xd0db[22]]);return _0xf8f7xf(_0xf8f7x11[_0xd0db[14]][_0xd0db[22]])};logger[_0xd0db[14]](_0xd0db[13],_0xf8f7xc,_0xf8f7x11[_0xd0db[14]][_0xd0db[22]]);return _0xf8f7xe(_0xf8f7x11[_0xd0db[14]][_0xd0db[22]])}else {logger[_0xd0db[17]](_0xd0db[13],_0xf8f7xc,_0xd0db[16]);_0xf8f7xe(_0xf8f7x11[_0xd0db[23]][_0xd0db[22]])}})[_0xd0db[15]](function(_0xf8f7x10){logger[_0xd0db[14]](_0xd0db[13],_0xf8f7xc,_0xf8f7x10);_0xf8f7xf(_0xf8f7x10)})})}
\ No newline at end of file
diff --git a/server/api/dashboardItem/index.js b/server/api/dashboardItem/index.js
new file mode 100644 (file)
index 0000000..8936e1b
--- /dev/null
@@ -0,0 +1 @@
+var _0x40f1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x40f1[0];var multer=require(_0x40f1[1]);var util=require(_0x40f1[2]);var path=require(_0x40f1[3]);var express=require(_0x40f1[4]);var router=express.Router();var auth=require(_0x40f1[5]);var config=require(_0x40f1[6]);var controller=require(_0x40f1[7]);router[_0x40f1[11]](_0x40f1[8],auth[_0x40f1[9]](),controller[_0x40f1[10]]);router[_0x40f1[13]](_0x40f1[8],auth[_0x40f1[9]](),controller[_0x40f1[12]]);router[_0x40f1[15]](_0x40f1[8],auth[_0x40f1[9]](),controller[_0x40f1[14]]);module[_0x40f1[16]]= router
\ No newline at end of file
diff --git a/server/api/faxAccount/faxAccount.attributes.js b/server/api/faxAccount/faxAccount.attributes.js
new file mode 100644 (file)
index 0000000..1f2dc51
--- /dev/null
@@ -0,0 +1 @@
+var _0x7a12=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x79\x65\x73","\x6E\x6F","\x78\x43\x41\x4C\x4C\x59\x20\x4D\x6F\x74\x69\x6F\x6E\x20\x46\x61\x78","\x6C\x6F\x63\x61\x6C\x73\x74\x61\x74\x69\x6F\x6E\x69\x64","\x32\x34\x30\x30","\x34\x38\x30\x30","\x37\x32\x30\x30","\x39\x36\x30\x30","\x31\x32\x30\x30\x30","\x31\x34\x34\x30\x30","\x76\x31\x37\x2C\x76\x32\x37\x2C\x76\x32\x39","\x49\x4E\x54\x45\x47\x45\x52","\x53\x49\x50","\x49\x41\x58","\x44\x41\x44\x48\x49","\x4B\x48\x4F\x4D\x50","\x42\x4F\x4F\x4C\x45\x41\x4E","\x47\x45\x54","\x50\x4F\x53\x54","\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x7a12[0];var Sequelize=require(_0x7a12[1]);module[_0x7a12[2]]= {name:{type:Sequelize[_0x7a12[3]],allowNull:false,validate:{notEmpty:true}},description:{type:Sequelize[_0x7a12[3]]},ecm:{type:Sequelize.ENUM(_0x7a12[4],_0x7a12[5]),defaultValue:_0x7a12[4]},headerinfo:{type:Sequelize[_0x7a12[3]],defaultValue:_0x7a12[6]},localstationid:{type:Sequelize[_0x7a12[3]],unique:_0x7a12[7]},minrate:{type:Sequelize.ENUM(_0x7a12[8],_0x7a12[9],_0x7a12[10],_0x7a12[11],_0x7a12[12],_0x7a12[13]),defaultValue:_0x7a12[9]},maxrate:{type:Sequelize.ENUM(_0x7a12[8],_0x7a12[9],_0x7a12[10],_0x7a12[11],_0x7a12[12],_0x7a12[13]),defaultValue:_0x7a12[13]},modem:{type:Sequelize[_0x7a12[3]],defaultValue:_0x7a12[14]},gateway:{type:Sequelize[_0x7a12[3]],defaultValue:_0x7a12[5],validate:{is:/^(?:yes|no|[0-9]+)$/}},faxdetect:{type:Sequelize[_0x7a12[3]],defaultValue:_0x7a12[5],validate:{is:/^(?:yes|no|t38|cng|[0-9]+)$/}},t38timeout:{type:Sequelize[_0x7a12[15]],defaultValue:5000,validate:{min:1000}},tech:{type:Sequelize.ENUM(_0x7a12[16],_0x7a12[17],_0x7a12[18],_0x7a12[19]),defaultValue:_0x7a12[16]},fidelity:{type:Sequelize[_0x7a12[20]],defaultValue:false},timeout:{type:Sequelize[_0x7a12[15]],defaultValue:0},acceptUrl:{type:Sequelize[_0x7a12[3]]},rejectUrl:{type:Sequelize[_0x7a12[3]]},acceptMethod:{type:Sequelize.ENUM(_0x7a12[21],_0x7a12[22])},rejectMethod:{type:Sequelize.ENUM(_0x7a12[21],_0x7a12[22])},actions:{type:Sequelize[_0x7a12[3]],get:function(){return this[_0x7a12[24]](_0x7a12[23])?JSON[_0x7a12[25]](this[_0x7a12[24]](_0x7a12[23])):[]},set:function(_0xf65ex2){return this[_0x7a12[27]](_0x7a12[23],JSON[_0x7a12[26]](_0xf65ex2))}},closeUrl:{type:Sequelize[_0x7a12[3]]},closeMethod:{type:Sequelize.ENUM(_0x7a12[21],_0x7a12[22])}}
\ No newline at end of file
diff --git a/server/api/faxAccount/faxAccount.controller.js b/server/api/faxAccount/faxAccount.controller.js
new file mode 100644 (file)
index 0000000..f041da2
--- /dev/null
@@ -0,0 +1 @@
+var _0x41ee=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73"];_0x41ee[0];var jsonpatch=require(_0x41ee[1]);var rp=require(_0x41ee[2]);var moment=require(_0x41ee[3]);var BPromise=require(_0x41ee[4]);var util=require(_0x41ee[5]);var path=require(_0x41ee[6]);var sox=require(_0x41ee[7]);var ejs=require(_0x41ee[8]);var fs=require(_0x41ee[9]);var _=require(_0x41ee[10]);var squel=require(_0x41ee[11]);var crypto=require(_0x41ee[12]);var jsforce=require(_0x41ee[13]);var toCsv=require(_0x41ee[14]);var qs=require(_0x41ee[15]);var logger=require(_0x41ee[17])(_0x41ee[16]);var utils=require(_0x41ee[18]);var config=require(_0x41ee[19]);var db=require(_0x41ee[21])[_0x41ee[20]];function respondWithStatusCode(_0x7d77x15,_0x7d77x16,_0x7d77x17){_0x7d77x16= _0x7d77x16|| 204;return function(_0x7d77x18){if(_0x7d77x18){logger[_0x41ee[24]](_0x41ee[22],_0x7d77x17,_0x7d77x16,_0x41ee[23]);logger[_0x41ee[26]](_0x41ee[25],_0x7d77x17,_0x7d77x16,_0x41ee[23]);return _0x7d77x15[_0x41ee[27]](_0x7d77x16)};return _0x7d77x15[_0x41ee[29]](304)[_0x41ee[28]]()}}function respondWithResult(_0x7d77x15,_0x7d77x16,_0x7d77x17){_0x7d77x16= _0x7d77x16|| 200;return function(_0x7d77x18){if(_0x7d77x18){logger[_0x41ee[24]](_0x41ee[22],_0x7d77x17,_0x7d77x16,_0x41ee[30]);logger[_0x41ee[26]](_0x41ee[25],_0x7d77x17,_0x7d77x16,_0x41ee[30],JSON[_0x41ee[31]](_0x7d77x18));return _0x7d77x15[_0x41ee[29]](_0x7d77x16)[_0x41ee[32]](_0x7d77x18)};return _0x7d77x15[_0x41ee[29]](304)[_0x41ee[28]]()}}function respondWithFilteredResult(_0x7d77x15,_0x7d77x1b,_0x7d77x17){return function(_0x7d77x18){if(_0x7d77x18){var _0x7d77x1c=_0x7d77x18[_0x41ee[33]],_0x7d77x1d=_0x7d77x1b[_0x41ee[34]],_0x7d77x1e=_0x7d77x1b[_0x41ee[34]]+ _0x7d77x1b[_0x41ee[35]],_0x7d77x16;if(_0x7d77x1e>= _0x7d77x1c){_0x7d77x1e= _0x7d77x1c;_0x7d77x16= 200}else {_0x7d77x16= 206};_0x7d77x15[_0x41ee[29]](_0x7d77x16);logger[_0x41ee[24]](_0x41ee[22],_0x7d77x17,_0x7d77x16,_0x41ee[36]);logger[_0x41ee[26]](_0x41ee[25],_0x7d77x17,_0x7d77x16,_0x41ee[30],JSON[_0x41ee[31]](_0x7d77x18));return _0x7d77x15[_0x41ee[40]](_0x41ee[37],_0x7d77x1d+ _0x41ee[38]+ _0x7d77x1e+ _0x41ee[39]+ _0x7d77x1c)[_0x41ee[32]](_0x7d77x18)};return null}}function patchUpdates(_0x7d77x20){return function(_0x7d77x18){try{jsonpatch[_0x41ee[41]](_0x7d77x18,_0x7d77x20,true)}catch(err){return BPromise[_0x41ee[42]](err)};return _0x7d77x18[_0x41ee[43]]()}}function saveUpdates(_0x7d77x22,_0x7d77x16,_0x7d77x17){return function(_0x7d77x18){if(_0x7d77x18){return _0x7d77x18[_0x41ee[46]](_0x7d77x22)[_0x41ee[45]](function(_0x7d77x23){logger[_0x41ee[24]](_0x41ee[22],_0x7d77x17,_0x7d77x16,_0x41ee[44]);logger[_0x41ee[26]](_0x41ee[25],_0x7d77x17,_0x7d77x16,_0x41ee[44],JSON[_0x41ee[31]](_0x7d77x18));return _0x7d77x23})};return null}}function removeEntity(_0x7d77x15,_0x7d77x16,_0x7d77x17){return function(_0x7d77x18){if(_0x7d77x18){return _0x7d77x18[_0x41ee[48]]()[_0x41ee[45]](function(){logger[_0x41ee[24]](_0x41ee[22],_0x7d77x17,_0x7d77x16,_0x41ee[47]);logger[_0x41ee[26]](_0x41ee[25],_0x7d77x17,_0x7d77x16,_0x41ee[47],JSON[_0x41ee[31]](_0x7d77x18));_0x7d77x15[_0x41ee[29]](204)[_0x41ee[28]]()})}}}function handleEntityNotFound(_0x7d77x15,_0x7d77x16,_0x7d77x17){return function(_0x7d77x18){if(!_0x7d77x18){logger[_0x41ee[50]](_0x41ee[22],_0x7d77x17,404,_0x41ee[49]);_0x7d77x15[_0x41ee[29]](404)[_0x41ee[28]]();return null};return _0x7d77x18}}function handleError(_0x7d77x15,_0x7d77x16,_0x7d77x17){_0x7d77x16= _0x7d77x16|| 500;return function(_0x7d77x27){logger[_0x41ee[50]](_0x41ee[22],_0x7d77x17,_0x7d77x16,JSON[_0x41ee[31]](_0x7d77x27));delete _0x7d77x27[_0x41ee[51]];_0x7d77x15[_0x41ee[29]](_0x7d77x16)[_0x41ee[52]](_0x7d77x27)}}exports[_0x41ee[53]]= function(_0x7d77x28,_0x7d77x15){var _0x7d77x1b={},_0x7d77x29={};_0x7d77x29[_0x41ee[54]]= _[_0x41ee[57]](db[_0x41ee[56]][_0x41ee[55]]);_0x7d77x29[_0x41ee[58]]= _[_0x41ee[57]](_0x7d77x28[_0x41ee[58]]);_0x7d77x29[_0x41ee[59]]= _[_0x41ee[60]](_0x7d77x29[_0x41ee[54]],_0x7d77x29[_0x41ee[58]]);_0x7d77x1b[_0x41ee[61]]= _[_0x41ee[60]](_0x7d77x29[_0x41ee[54]],qs[_0x41ee[62]](_0x7d77x28[_0x41ee[58]][_0x41ee[62]]));_0x7d77x1b[_0x41ee[61]]= (_0x7d77x1b[_0x41ee[61]][_0x41ee[63]])?_0x7d77x1b[_0x41ee[61]]:_0x7d77x29[_0x41ee[54]];if(!_0x7d77x28[_0x41ee[58]][_0x41ee[65]](_0x41ee[64])){_0x7d77x1b[_0x41ee[35]]= qs[_0x41ee[35]](_0x7d77x28[_0x41ee[58]][_0x41ee[35]]);_0x7d77x1b[_0x41ee[34]]= qs[_0x41ee[34]](_0x7d77x28[_0x41ee[58]][_0x41ee[34]])};_0x7d77x1b[_0x41ee[66]]= qs[_0x41ee[67]](_0x7d77x28[_0x41ee[58]][_0x41ee[67]]);_0x7d77x1b[_0x41ee[68]]= qs[_0x41ee[59]](_[_0x41ee[69]](_0x7d77x28[_0x41ee[58]],_0x7d77x29[_0x41ee[59]]));if(_0x7d77x28[_0x41ee[58]][_0x41ee[70]]){_0x7d77x1b[_0x41ee[68]]= _[_0x41ee[73]](_0x7d77x1b[_0x41ee[68]],{$or:_[_0x41ee[72]](_0x7d77x1b[_0x41ee[61]],function(_0x7d77x2a){var _0x7d77x2b={};_0x7d77x2b[_0x7d77x2a]= {$like:_0x41ee[71]+ _0x7d77x28[_0x41ee[58]][_0x41ee[70]]+ _0x41ee[71]};return _0x7d77x2b})})};_0x7d77x1b= _[_0x41ee[73]]({},_0x7d77x1b,_0x7d77x28[_0x41ee[74]]);return db[_0x41ee[56]][_0x41ee[76]](_0x7d77x1b)[_0x41ee[45]](respondWithFilteredResult(_0x7d77x15,_0x7d77x1b,_0x41ee[53]))[_0x41ee[75]](handleError(_0x7d77x15,null,_0x41ee[53]))};exports[_0x41ee[77]]= function(_0x7d77x28,_0x7d77x15){var _0x7d77x1b={raw:false,where:{id:_0x7d77x28[_0x41ee[79]][_0x41ee[78]]}},_0x7d77x29={};_0x7d77x29[_0x41ee[54]]= _[_0x41ee[57]](db[_0x41ee[56]][_0x41ee[55]]);_0x7d77x29[_0x41ee[58]]= _[_0x41ee[57]](_0x7d77x28[_0x41ee[58]]);_0x7d77x29[_0x41ee[59]]= _[_0x41ee[60]](_0x7d77x29[_0x41ee[54]],_0x7d77x29[_0x41ee[58]]);_0x7d77x1b[_0x41ee[61]]= _[_0x41ee[60]](_0x7d77x29[_0x41ee[54]],qs[_0x41ee[62]](_0x7d77x28[_0x41ee[58]][_0x41ee[62]]));_0x7d77x1b[_0x41ee[61]]= (_0x7d77x1b[_0x41ee[61]][_0x41ee[63]])?_0x7d77x1b[_0x41ee[61]]:_0x7d77x29[_0x41ee[54]];_0x7d77x1b= _[_0x41ee[73]]({},_0x7d77x1b,_0x7d77x28[_0x41ee[74]]);return db[_0x41ee[56]][_0x41ee[80]](_0x7d77x1b)[_0x41ee[45]](handleEntityNotFound(_0x7d77x15,null,_0x41ee[77]))[_0x41ee[45]](respondWithResult(_0x7d77x15,null,_0x41ee[77]))[_0x41ee[75]](handleError(_0x7d77x15,null,_0x41ee[77]))};exports[_0x41ee[81]]= function(_0x7d77x28,_0x7d77x15){return db[_0x41ee[56]][_0x41ee[81]](_0x7d77x28[_0x41ee[82]],{})[_0x41ee[45]](respondWithResult(_0x7d77x15,201,_0x41ee[81]))[_0x41ee[75]](handleError(_0x7d77x15,null,_0x41ee[81]))};exports[_0x41ee[46]]= function(_0x7d77x28,_0x7d77x15){if(_0x7d77x28[_0x41ee[82]][_0x41ee[78]]){delete _0x7d77x28[_0x41ee[82]][_0x41ee[78]]};return db[_0x41ee[56]][_0x41ee[80]]({where:{id:_0x7d77x28[_0x41ee[79]][_0x41ee[78]]}})[_0x41ee[45]](handleEntityNotFound(_0x7d77x15,null,_0x41ee[46]))[_0x41ee[45]](saveUpdates(_0x7d77x28[_0x41ee[82]],null,_0x41ee[46]))[_0x41ee[45]](respondWithResult(_0x7d77x15,null,_0x41ee[46]))[_0x41ee[75]](handleError(_0x7d77x15,null,_0x41ee[46]))};exports[_0x41ee[48]]= function(_0x7d77x28,_0x7d77x15){return db[_0x41ee[56]][_0x41ee[80]]({where:{id:_0x7d77x28[_0x41ee[79]][_0x41ee[78]]}})[_0x41ee[45]](handleEntityNotFound(_0x7d77x15,null,_0x41ee[48]))[_0x41ee[45]](removeEntity(_0x7d77x15,null,_0x41ee[48]))[_0x41ee[75]](handleError(_0x7d77x15,null,_0x41ee[48]))};exports[_0x41ee[83]]= function(_0x7d77x28,_0x7d77x15,_0x7d77x2c){return db[_0x41ee[86]][_0x41ee[80]]({where:{id:_0x7d77x28[_0x41ee[79]][_0x41ee[78]]}})[_0x41ee[45]](handleEntityNotFound(_0x7d77x15,null,_0x41ee[83]))[_0x41ee[45]](function(_0x7d77x18){if(_0x7d77x18){return _0x7d77x18[_0x41ee[83]](_0x7d77x28[_0x41ee[82]][_0x41ee[84]],_[_0x41ee[85]](_0x7d77x28[_0x41ee[82]],[_0x41ee[84],_0x41ee[78]])|| {})};return null})[_0x41ee[45]](respondWithResult(_0x7d77x15,null,_0x41ee[83]))[_0x41ee[75]](handleError(_0x7d77x15,null,_0x41ee[83]))};exports[_0x41ee[87]]= function(_0x7d77x28,_0x7d77x18,_0x7d77x2c){var _0x7d77x1b={};var _0x7d77x29={};var _0x7d77x2d;var _0x7d77x1c;return db[_0x41ee[56]][_0x41ee[88]]({where:{id:_0x7d77x28[_0x41ee[79]][_0x41ee[78]]}})[_0x41ee[45]](handleEntityNotFound(_0x7d77x18,null,_0x41ee[87]))[_0x41ee[45]](function(_0x7d77x18){if(_0x7d77x18){_0x7d77x2d= _0x7d77x18;_0x7d77x29[_0x41ee[54]]= _[_0x41ee[57]](db[_0x41ee[86]][_0x41ee[55]]);_0x7d77x29[_0x41ee[58]]= _[_0x41ee[57]](_0x7d77x28[_0x41ee[58]]);_0x7d77x29[_0x41ee[59]]= _[_0x41ee[60]](_0x7d77x29[_0x41ee[54]],_0x7d77x29[_0x41ee[58]]);_0x7d77x1b[_0x41ee[61]]= _[_0x41ee[60]](_0x7d77x29[_0x41ee[54]],qs[_0x41ee[62]](_0x7d77x28[_0x41ee[58]][_0x41ee[62]]));_0x7d77x1b[_0x41ee[61]]= (_0x7d77x1b[_0x41ee[61]][_0x41ee[63]])?_0x7d77x1b[_0x41ee[61]]:_0x7d77x29[_0x41ee[54]];_0x7d77x1b[_0x41ee[66]]= qs[_0x41ee[67]](_0x7d77x28[_0x41ee[58]][_0x41ee[67]]);_0x7d77x1b[_0x41ee[68]]= qs[_0x41ee[59]](_[_0x41ee[69]](_0x7d77x28[_0x41ee[58]],_0x7d77x29[_0x41ee[59]]));if(_0x7d77x28[_0x41ee[58]][_0x41ee[70]]){_0x7d77x1b[_0x41ee[68]]= _[_0x41ee[73]](_0x7d77x1b[_0x41ee[68]],{$or:_[_0x41ee[72]](_0x7d77x1b[_0x41ee[61]],function(_0x7d77x2a){var _0x7d77x2b={};_0x7d77x2b[_0x7d77x2a]= {$like:_0x41ee[71]+ _0x7d77x28[_0x41ee[58]][_0x41ee[70]]+ _0x41ee[71]};return _0x7d77x2b})})};_0x7d77x1b= _[_0x41ee[73]]({},_0x7d77x1b,_0x7d77x28[_0x41ee[74]]);return _0x7d77x2d[_0x41ee[87]](_0x7d77x1b)}})[_0x41ee[45]](function(_0x7d77x2f){if(_0x7d77x2f){_0x7d77x1c= _0x7d77x2f[_0x41ee[63]];if(!_0x7d77x28[_0x41ee[58]][_0x41ee[65]](_0x41ee[64])){_0x7d77x1b[_0x41ee[35]]= qs[_0x41ee[35]](_0x7d77x28[_0x41ee[58]][_0x41ee[35]]);_0x7d77x1b[_0x41ee[34]]= qs[_0x41ee[34]](_0x7d77x28[_0x41ee[58]][_0x41ee[34]])};return _0x7d77x2d[_0x41ee[87]](_0x7d77x1b)}})[_0x41ee[45]](function(_0x7d77x2e){return _0x7d77x2e?{count:_0x7d77x1c,rows:_0x7d77x2e}:null})[_0x41ee[45]](respondWithResult(_0x7d77x18,null,_0x41ee[87]))[_0x41ee[75]](handleError(_0x7d77x18,null,_0x41ee[87]))};exports[_0x41ee[89]]= function(_0x7d77x28,_0x7d77x15,_0x7d77x2c){return db[_0x41ee[90]][_0x41ee[80]]({where:{id:_0x7d77x28[_0x41ee[79]][_0x41ee[78]]}})[_0x41ee[45]](handleEntityNotFound(_0x7d77x15,null,_0x41ee[89]))[_0x41ee[45]](function(_0x7d77x18){if(_0x7d77x18){return _0x7d77x18[_0x41ee[89]](_0x7d77x28[_0x41ee[82]][_0x41ee[84]],_[_0x41ee[85]](_0x7d77x28[_0x41ee[82]],[_0x41ee[84],_0x41ee[78]])|| {})};return null})[_0x41ee[45]](respondWithResult(_0x7d77x15,null,_0x41ee[89]))[_0x41ee[75]](handleError(_0x7d77x15,null,_0x41ee[89]))};exports[_0x41ee[91]]= function(_0x7d77x28,_0x7d77x18,_0x7d77x2c){var _0x7d77x1b={};var _0x7d77x29={};var _0x7d77x2d;var _0x7d77x1c;return db[_0x41ee[56]][_0x41ee[88]]({where:{id:_0x7d77x28[_0x41ee[79]][_0x41ee[78]]}})[_0x41ee[45]](handleEntityNotFound(_0x7d77x18,null,_0x41ee[91]))[_0x41ee[45]](function(_0x7d77x18){if(_0x7d77x18){_0x7d77x2d= _0x7d77x18;_0x7d77x29[_0x41ee[54]]= _[_0x41ee[57]](db[_0x41ee[92]][_0x41ee[55]]);_0x7d77x29[_0x41ee[58]]= _[_0x41ee[57]](_0x7d77x28[_0x41ee[58]]);_0x7d77x29[_0x41ee[59]]= _[_0x41ee[60]](_0x7d77x29[_0x41ee[54]],_0x7d77x29[_0x41ee[58]]);_0x7d77x1b[_0x41ee[61]]= _[_0x41ee[60]](_0x7d77x29[_0x41ee[54]],qs[_0x41ee[62]](_0x7d77x28[_0x41ee[58]][_0x41ee[62]]));_0x7d77x1b[_0x41ee[61]]= (_0x7d77x1b[_0x41ee[61]][_0x41ee[63]])?_0x7d77x1b[_0x41ee[61]]:_0x7d77x29[_0x41ee[54]];_0x7d77x1b[_0x41ee[66]]= qs[_0x41ee[67]](_0x7d77x28[_0x41ee[58]][_0x41ee[67]]);_0x7d77x1b[_0x41ee[68]]= qs[_0x41ee[59]](_[_0x41ee[69]](_0x7d77x28[_0x41ee[58]],_0x7d77x29[_0x41ee[59]]));if(_0x7d77x28[_0x41ee[58]][_0x41ee[70]]){_0x7d77x1b[_0x41ee[68]]= _[_0x41ee[73]](_0x7d77x1b[_0x41ee[68]],{$or:_[_0x41ee[72]](_0x7d77x1b[_0x41ee[61]],function(_0x7d77x2a){var _0x7d77x2b={};_0x7d77x2b[_0x7d77x2a]= {$like:_0x41ee[71]+ _0x7d77x28[_0x41ee[58]][_0x41ee[70]]+ _0x41ee[71]};return _0x7d77x2b})})};_0x7d77x1b= _[_0x41ee[73]]({},_0x7d77x1b,_0x7d77x28[_0x41ee[74]]);return _0x7d77x2d[_0x41ee[91]](_0x7d77x1b)}})[_0x41ee[45]](function(_0x7d77x2f){if(_0x7d77x2f){_0x7d77x1c= _0x7d77x2f[_0x41ee[63]];if(!_0x7d77x28[_0x41ee[58]][_0x41ee[65]](_0x41ee[64])){_0x7d77x1b[_0x41ee[35]]= qs[_0x41ee[35]](_0x7d77x28[_0x41ee[58]][_0x41ee[35]]);_0x7d77x1b[_0x41ee[34]]= qs[_0x41ee[34]](_0x7d77x28[_0x41ee[58]][_0x41ee[34]])};return _0x7d77x2d[_0x41ee[91]](_0x7d77x1b)}})[_0x41ee[45]](function(_0x7d77x2e){return _0x7d77x2e?{count:_0x7d77x1c,rows:_0x7d77x2e}:null})[_0x41ee[45]](respondWithResult(_0x7d77x18,null,_0x41ee[91]))[_0x41ee[75]](handleError(_0x7d77x18,null,_0x41ee[91]))};exports[_0x41ee[93]]= function(_0x7d77x28,_0x7d77x15,_0x7d77x2c){if(_0x7d77x28[_0x41ee[82]][_0x41ee[78]]){delete _0x7d77x28[_0x41ee[82]][_0x41ee[78]]};return db[_0x41ee[56]][_0x41ee[80]]({where:{id:_0x7d77x28[_0x41ee[79]][_0x41ee[78]]}})[_0x41ee[45]](handleEntityNotFound(_0x7d77x15,null,_0x41ee[93]))[_0x41ee[45]](function(_0x7d77x18){if(_0x7d77x18){_0x7d77x28[_0x41ee[82]][_0x41ee[94]]= _0x7d77x18[_0x41ee[78]];return db[_0x41ee[95]][_0x41ee[81]](_0x7d77x28[_0x41ee[82]])}})[_0x41ee[45]](respondWithResult(_0x7d77x15,null,_0x41ee[93]))[_0x41ee[75]](handleError(_0x7d77x15,null,_0x41ee[93]))};exports[_0x41ee[96]]= function(_0x7d77x28,_0x7d77x15,_0x7d77x2c){return db[_0x41ee[97]][_0x41ee[80]]({where:{id:_0x7d77x28[_0x41ee[79]][_0x41ee[78]]}})[_0x41ee[45]](handleEntityNotFound(_0x7d77x15,null,_0x41ee[96]))[_0x41ee[45]](function(_0x7d77x18){if(_0x7d77x18){return _0x7d77x18[_0x41ee[96]](_0x7d77x28[_0x41ee[82]][_0x41ee[84]],_[_0x41ee[85]](_0x7d77x28[_0x41ee[82]],[_0x41ee[84],_0x41ee[78]])|| {})};return null})[_0x41ee[45]](respondWithResult(_0x7d77x15,null,_0x41ee[96]))[_0x41ee[75]](handleError(_0x7d77x15,null,_0x41ee[96]))};exports[_0x41ee[98]]= function(_0x7d77x28,_0x7d77x18,_0x7d77x2c){var _0x7d77x1b={};var _0x7d77x29={};var _0x7d77x2d;var _0x7d77x1c;return db[_0x41ee[56]][_0x41ee[88]]({where:{id:_0x7d77x28[_0x41ee[79]][_0x41ee[78]]}})[_0x41ee[45]](handleEntityNotFound(_0x7d77x18,null,_0x41ee[98]))[_0x41ee[45]](function(_0x7d77x18){if(_0x7d77x18){_0x7d77x2d= _0x7d77x18;_0x7d77x29[_0x41ee[54]]= _[_0x41ee[57]](db[_0x41ee[95]][_0x41ee[55]]);_0x7d77x29[_0x41ee[58]]= _[_0x41ee[57]](_0x7d77x28[_0x41ee[58]]);_0x7d77x29[_0x41ee[59]]= _[_0x41ee[60]](_0x7d77x29[_0x41ee[54]],_0x7d77x29[_0x41ee[58]]);_0x7d77x1b[_0x41ee[61]]= _[_0x41ee[60]](_0x7d77x29[_0x41ee[54]],qs[_0x41ee[62]](_0x7d77x28[_0x41ee[58]][_0x41ee[62]]));_0x7d77x1b[_0x41ee[61]]= (_0x7d77x1b[_0x41ee[61]][_0x41ee[63]])?_0x7d77x1b[_0x41ee[61]]:_0x7d77x29[_0x41ee[54]];_0x7d77x1b[_0x41ee[66]]= qs[_0x41ee[67]](_0x7d77x28[_0x41ee[58]][_0x41ee[67]]);_0x7d77x1b[_0x41ee[68]]= qs[_0x41ee[59]](_[_0x41ee[69]](_0x7d77x28[_0x41ee[58]],_0x7d77x29[_0x41ee[59]]));if(_0x7d77x28[_0x41ee[58]][_0x41ee[70]]){_0x7d77x1b[_0x41ee[68]]= _[_0x41ee[73]](_0x7d77x1b[_0x41ee[68]],{$or:_[_0x41ee[72]](_0x7d77x1b[_0x41ee[61]],function(_0x7d77x2a){var _0x7d77x2b={};_0x7d77x2b[_0x7d77x2a]= {$like:_0x41ee[71]+ _0x7d77x28[_0x41ee[58]][_0x41ee[70]]+ _0x41ee[71]};return _0x7d77x2b})})};_0x7d77x1b= _[_0x41ee[73]]({},_0x7d77x1b,_0x7d77x28[_0x41ee[74]]);return _0x7d77x2d[_0x41ee[98]](_0x7d77x1b)}})[_0x41ee[45]](function(_0x7d77x2f){if(_0x7d77x2f){_0x7d77x1c= _0x7d77x2f[_0x41ee[63]];if(!_0x7d77x28[_0x41ee[58]][_0x41ee[65]](_0x41ee[64])){_0x7d77x1b[_0x41ee[35]]= qs[_0x41ee[35]](_0x7d77x28[_0x41ee[58]][_0x41ee[35]]);_0x7d77x1b[_0x41ee[34]]= qs[_0x41ee[34]](_0x7d77x28[_0x41ee[58]][_0x41ee[34]])};return _0x7d77x2d[_0x41ee[98]](_0x7d77x1b)}})[_0x41ee[45]](function(_0x7d77x2e){return _0x7d77x2e?{count:_0x7d77x1c,rows:_0x7d77x2e}:null})[_0x41ee[45]](respondWithResult(_0x7d77x18,null,_0x41ee[98]))[_0x41ee[75]](handleError(_0x7d77x18,null,_0x41ee[98]))}
\ No newline at end of file
diff --git a/server/api/faxAccount/faxAccount.model.js b/server/api/faxAccount/faxAccount.model.js
new file mode 100644 (file)
index 0000000..ea6962a
--- /dev/null
@@ -0,0 +1 @@
+var _0x6503=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x66\x61\x78\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x6503[0];var _=require(_0x6503[1]);var util=require(_0x6503[2]);var logger=require(_0x6503[4])(_0x6503[3]);var attributes=require(_0x6503[5]);module[_0x6503[6]]= function(_0xcd19x5,_0xcd19x6){return _0xcd19x5[_0x6503[9]](_0x6503[7],attributes,{tableName:_0x6503[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/faxAccount/faxAccount.rpc.js b/server/api/faxAccount/faxAccount.rpc.js
new file mode 100644 (file)
index 0000000..fbdf332
--- /dev/null
@@ -0,0 +1 @@
+var _0xa719=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xa719[0];var _=require(_0xa719[1]);var util=require(_0xa719[2]);var moment=require(_0xa719[3]);var BPromise=require(_0xa719[4]);var db=require(_0xa719[6])[_0xa719[5]];var utils=require(_0xa719[7]);var logger=require(_0xa719[9])(_0xa719[8]);var jayson=require(_0xa719[10]);var client=jayson[_0xa719[12]][_0xa719[11]]({port:9002});function respondWithRpcPromise(_0x3773xb,_0x3773xc,_0x3773xd){return  new BPromise(function(_0x3773xe,_0x3773xf){return client[_0xa719[25]](_0x3773xb,_0x3773xd)[_0xa719[24]](function(_0x3773x11){logger[_0xa719[17]](_0xa719[13],_0x3773xc,_0xa719[16]);logger[_0xa719[20]](_0xa719[18],_0x3773xc,_0xa719[16],JSON[_0xa719[19]](_0x3773x11));if(_0x3773x11[_0xa719[14]]){if(_0x3773x11[_0xa719[14]][_0xa719[21]]=== 500){logger[_0xa719[14]](_0xa719[13],_0x3773xc,_0x3773x11[_0xa719[14]][_0xa719[22]]);return _0x3773xf(_0x3773x11[_0xa719[14]][_0xa719[22]])};logger[_0xa719[14]](_0xa719[13],_0x3773xc,_0x3773x11[_0xa719[14]][_0xa719[22]]);return _0x3773xe(_0x3773x11[_0xa719[14]][_0xa719[22]])}else {logger[_0xa719[17]](_0xa719[13],_0x3773xc,_0xa719[16]);_0x3773xe(_0x3773x11[_0xa719[23]][_0xa719[22]])}})[_0xa719[15]](function(_0x3773x10){logger[_0xa719[14]](_0xa719[13],_0x3773xc,_0x3773x10);_0x3773xf(_0x3773x10)})})}
\ No newline at end of file
diff --git a/server/api/faxAccount/index.js b/server/api/faxAccount/index.js
new file mode 100644 (file)
index 0000000..37ba1a5
--- /dev/null
@@ -0,0 +1 @@
+var _0xd891=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd891[0];var multer=require(_0xd891[1]);var util=require(_0xd891[2]);var path=require(_0xd891[3]);var express=require(_0xd891[4]);var router=express.Router();var auth=require(_0xd891[5]);var config=require(_0xd891[6]);var controller=require(_0xd891[7]);router[_0xd891[11]](_0xd891[8],auth[_0xd891[9]](),controller[_0xd891[10]]);router[_0xd891[11]](_0xd891[12],auth[_0xd891[9]](),controller[_0xd891[13]]);router[_0xd891[11]](_0xd891[14],auth[_0xd891[9]](),controller[_0xd891[15]]);router[_0xd891[11]](_0xd891[16],auth[_0xd891[9]](),controller[_0xd891[17]]);router[_0xd891[11]](_0xd891[18],auth[_0xd891[9]](),controller[_0xd891[19]]);router[_0xd891[21]](_0xd891[8],auth[_0xd891[9]](),controller[_0xd891[20]]);router[_0xd891[21]](_0xd891[14],auth[_0xd891[9]](),controller[_0xd891[22]]);router[_0xd891[21]](_0xd891[16],auth[_0xd891[9]](),controller[_0xd891[23]]);router[_0xd891[21]](_0xd891[18],auth[_0xd891[9]](),controller[_0xd891[24]]);router[_0xd891[21]](_0xd891[18],auth[_0xd891[9]](),controller[_0xd891[25]]);router[_0xd891[27]](_0xd891[12],auth[_0xd891[9]](),controller[_0xd891[26]]);router[_0xd891[29]](_0xd891[12],auth[_0xd891[9]](),controller[_0xd891[28]]);module[_0xd891[30]]= router
\ No newline at end of file
diff --git a/server/api/faxApplication/faxApplication.attributes.js b/server/api/faxApplication/faxApplication.attributes.js
new file mode 100644 (file)
index 0000000..9e551e8
--- /dev/null
@@ -0,0 +1 @@
+var _0xd22f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x6E\x64\x53\x6D\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0xd22f[0];var Sequelize=require(_0xd22f[1]);module[_0xd22f[2]]= {app:{type:Sequelize.ENUM(_0xd22f[3],_0xd22f[4],_0xd22f[5],_0xd22f[6]),allowNull:false},priority:{type:Sequelize[_0xd22f[7]]},timeout:{type:Sequelize[_0xd22f[7]],validate:{min:1}},interval:{type:Sequelize[_0xd22f[8]]},data1:{type:Sequelize[_0xd22f[8]]},data2:{type:Sequelize[_0xd22f[8]]},data3:{type:Sequelize[_0xd22f[8]]},data4:{type:Sequelize[_0xd22f[8]]},data5:{type:Sequelize[_0xd22f[8]]},data6:{type:Sequelize[_0xd22f[8]]},data7:{type:Sequelize[_0xd22f[9]]},data8:{type:Sequelize[_0xd22f[7]]},data9:{type:Sequelize[_0xd22f[7]]},data10:{type:Sequelize[_0xd22f[7]]}}
\ No newline at end of file
diff --git a/server/api/faxApplication/faxApplication.controller.js b/server/api/faxApplication/faxApplication.controller.js
new file mode 100644 (file)
index 0000000..6d6d9b9
--- /dev/null
@@ -0,0 +1 @@
+var _0x6da5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x6da5[0];var jsonpatch=require(_0x6da5[1]);var rp=require(_0x6da5[2]);var moment=require(_0x6da5[3]);var BPromise=require(_0x6da5[4]);var util=require(_0x6da5[5]);var path=require(_0x6da5[6]);var sox=require(_0x6da5[7]);var ejs=require(_0x6da5[8]);var fs=require(_0x6da5[9]);var _=require(_0x6da5[10]);var squel=require(_0x6da5[11]);var crypto=require(_0x6da5[12]);var jsforce=require(_0x6da5[13]);var toCsv=require(_0x6da5[14]);var qs=require(_0x6da5[15]);var logger=require(_0x6da5[17])(_0x6da5[16]);var utils=require(_0x6da5[18]);var config=require(_0x6da5[19]);var db=require(_0x6da5[21])[_0x6da5[20]];function respondWithStatusCode(_0x15cax15,_0x15cax16,_0x15cax17){_0x15cax16= _0x15cax16|| 204;return function(_0x15cax18){if(_0x15cax18){logger[_0x6da5[24]](_0x6da5[22],_0x15cax17,_0x15cax16,_0x6da5[23]);logger[_0x6da5[26]](_0x6da5[25],_0x15cax17,_0x15cax16,_0x6da5[23]);return _0x15cax15[_0x6da5[27]](_0x15cax16)};return _0x15cax15[_0x6da5[29]](304)[_0x6da5[28]]()}}function respondWithResult(_0x15cax15,_0x15cax16,_0x15cax17){_0x15cax16= _0x15cax16|| 200;return function(_0x15cax18){if(_0x15cax18){logger[_0x6da5[24]](_0x6da5[22],_0x15cax17,_0x15cax16,_0x6da5[30]);logger[_0x6da5[26]](_0x6da5[25],_0x15cax17,_0x15cax16,_0x6da5[30],JSON[_0x6da5[31]](_0x15cax18));return _0x15cax15[_0x6da5[29]](_0x15cax16)[_0x6da5[32]](_0x15cax18)};return _0x15cax15[_0x6da5[29]](304)[_0x6da5[28]]()}}function respondWithFilteredResult(_0x15cax15,_0x15cax1b,_0x15cax17){return function(_0x15cax18){if(_0x15cax18){var _0x15cax1c=_0x15cax18[_0x6da5[33]],_0x15cax1d=_0x15cax1b[_0x6da5[34]],_0x15cax1e=_0x15cax1b[_0x6da5[34]]+ _0x15cax1b[_0x6da5[35]],_0x15cax16;if(_0x15cax1e>= _0x15cax1c){_0x15cax1e= _0x15cax1c;_0x15cax16= 200}else {_0x15cax16= 206};_0x15cax15[_0x6da5[29]](_0x15cax16);logger[_0x6da5[24]](_0x6da5[22],_0x15cax17,_0x15cax16,_0x6da5[36]);logger[_0x6da5[26]](_0x6da5[25],_0x15cax17,_0x15cax16,_0x6da5[30],JSON[_0x6da5[31]](_0x15cax18));return _0x15cax15[_0x6da5[40]](_0x6da5[37],_0x15cax1d+ _0x6da5[38]+ _0x15cax1e+ _0x6da5[39]+ _0x15cax1c)[_0x6da5[32]](_0x15cax18)};return null}}function patchUpdates(_0x15cax20){return function(_0x15cax18){try{jsonpatch[_0x6da5[41]](_0x15cax18,_0x15cax20,true)}catch(err){return BPromise[_0x6da5[42]](err)};return _0x15cax18[_0x6da5[43]]()}}function saveUpdates(_0x15cax22,_0x15cax16,_0x15cax17){return function(_0x15cax18){if(_0x15cax18){return _0x15cax18[_0x6da5[46]](_0x15cax22)[_0x6da5[45]](function(_0x15cax23){logger[_0x6da5[24]](_0x6da5[22],_0x15cax17,_0x15cax16,_0x6da5[44]);logger[_0x6da5[26]](_0x6da5[25],_0x15cax17,_0x15cax16,_0x6da5[44],JSON[_0x6da5[31]](_0x15cax18));return _0x15cax23})};return null}}function removeEntity(_0x15cax15,_0x15cax16,_0x15cax17){return function(_0x15cax18){if(_0x15cax18){return _0x15cax18[_0x6da5[48]]()[_0x6da5[45]](function(){logger[_0x6da5[24]](_0x6da5[22],_0x15cax17,_0x15cax16,_0x6da5[47]);logger[_0x6da5[26]](_0x6da5[25],_0x15cax17,_0x15cax16,_0x6da5[47],JSON[_0x6da5[31]](_0x15cax18));_0x15cax15[_0x6da5[29]](204)[_0x6da5[28]]()})}}}function handleEntityNotFound(_0x15cax15,_0x15cax16,_0x15cax17){return function(_0x15cax18){if(!_0x15cax18){logger[_0x6da5[50]](_0x6da5[22],_0x15cax17,404,_0x6da5[49]);_0x15cax15[_0x6da5[29]](404)[_0x6da5[28]]();return null};return _0x15cax18}}function handleError(_0x15cax15,_0x15cax16,_0x15cax17){_0x15cax16= _0x15cax16|| 500;return function(_0x15cax27){logger[_0x6da5[50]](_0x6da5[22],_0x15cax17,_0x15cax16,JSON[_0x6da5[31]](_0x15cax27));delete _0x15cax27[_0x6da5[51]];_0x15cax15[_0x6da5[29]](_0x15cax16)[_0x6da5[52]](_0x15cax27)}}exports[_0x6da5[53]]= function(_0x15cax28,_0x15cax15){var _0x15cax1b={raw:true,where:{id:_0x15cax28[_0x6da5[55]][_0x6da5[54]]}},_0x15cax29={};_0x15cax29[_0x6da5[56]]= _[_0x6da5[59]](db[_0x6da5[58]][_0x6da5[57]]);_0x15cax29[_0x6da5[60]]= _[_0x6da5[59]](_0x15cax28[_0x6da5[60]]);_0x15cax29[_0x6da5[61]]= _[_0x6da5[62]](_0x15cax29[_0x6da5[56]],_0x15cax29[_0x6da5[60]]);_0x15cax1b[_0x6da5[63]]= _[_0x6da5[62]](_0x15cax29[_0x6da5[56]],qs[_0x6da5[64]](_0x15cax28[_0x6da5[60]][_0x6da5[64]]));_0x15cax1b[_0x6da5[63]]= (_0x15cax1b[_0x6da5[63]][_0x6da5[65]])?_0x15cax1b[_0x6da5[63]]:_0x15cax29[_0x6da5[56]];_0x15cax1b= _[_0x6da5[67]]({},_0x15cax1b,_0x15cax28[_0x6da5[66]]);return db[_0x6da5[58]][_0x6da5[69]](_0x15cax1b)[_0x6da5[45]](handleEntityNotFound(_0x15cax15,null,_0x6da5[53]))[_0x6da5[45]](respondWithResult(_0x15cax15,null,_0x6da5[53]))[_0x6da5[68]](handleError(_0x15cax15,null,_0x6da5[53]))};exports[_0x6da5[46]]= function(_0x15cax28,_0x15cax15){if(_0x15cax28[_0x6da5[70]][_0x6da5[54]]){delete _0x15cax28[_0x6da5[70]][_0x6da5[54]]};return db[_0x6da5[58]][_0x6da5[69]]({where:{id:_0x15cax28[_0x6da5[55]][_0x6da5[54]]}})[_0x6da5[45]](handleEntityNotFound(_0x15cax15,null,_0x6da5[46]))[_0x6da5[45]](saveUpdates(_0x15cax28[_0x6da5[70]],null,_0x6da5[46]))[_0x6da5[45]](respondWithResult(_0x15cax15,null,_0x6da5[46]))[_0x6da5[68]](handleError(_0x15cax15,null,_0x6da5[46]))};exports[_0x6da5[48]]= function(_0x15cax28,_0x15cax15){return db[_0x6da5[58]][_0x6da5[69]]({where:{id:_0x15cax28[_0x6da5[55]][_0x6da5[54]]}})[_0x6da5[45]](handleEntityNotFound(_0x15cax15,null,_0x6da5[48]))[_0x6da5[45]](removeEntity(_0x15cax15,null,_0x6da5[48]))[_0x6da5[68]](handleError(_0x15cax15,null,_0x6da5[48]))}
\ No newline at end of file
diff --git a/server/api/faxApplication/faxApplication.model.js b/server/api/faxApplication/faxApplication.model.js
new file mode 100644 (file)
index 0000000..c828615
--- /dev/null
@@ -0,0 +1 @@
+var _0xe1e0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x66\x61\x78\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xe1e0[0];var _=require(_0xe1e0[1]);var util=require(_0xe1e0[2]);var logger=require(_0xe1e0[4])(_0xe1e0[3]);var attributes=require(_0xe1e0[5]);module[_0xe1e0[6]]= function(_0xf30dx5,_0xf30dx6){return _0xf30dx5[_0xe1e0[9]](_0xe1e0[7],attributes,{tableName:_0xe1e0[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/faxApplication/faxApplication.rpc.js b/server/api/faxApplication/faxApplication.rpc.js
new file mode 100644 (file)
index 0000000..dc512c2
--- /dev/null
@@ -0,0 +1 @@
+var _0xa99f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xa99f[0];var _=require(_0xa99f[1]);var util=require(_0xa99f[2]);var moment=require(_0xa99f[3]);var BPromise=require(_0xa99f[4]);var db=require(_0xa99f[6])[_0xa99f[5]];var utils=require(_0xa99f[7]);var logger=require(_0xa99f[9])(_0xa99f[8]);var jayson=require(_0xa99f[10]);var client=jayson[_0xa99f[12]][_0xa99f[11]]({port:9002});function respondWithRpcPromise(_0x82d2xb,_0x82d2xc,_0x82d2xd){return  new BPromise(function(_0x82d2xe,_0x82d2xf){return client[_0xa99f[25]](_0x82d2xb,_0x82d2xd)[_0xa99f[24]](function(_0x82d2x11){logger[_0xa99f[17]](_0xa99f[13],_0x82d2xc,_0xa99f[16]);logger[_0xa99f[20]](_0xa99f[18],_0x82d2xc,_0xa99f[16],JSON[_0xa99f[19]](_0x82d2x11));if(_0x82d2x11[_0xa99f[14]]){if(_0x82d2x11[_0xa99f[14]][_0xa99f[21]]=== 500){logger[_0xa99f[14]](_0xa99f[13],_0x82d2xc,_0x82d2x11[_0xa99f[14]][_0xa99f[22]]);return _0x82d2xf(_0x82d2x11[_0xa99f[14]][_0xa99f[22]])};logger[_0xa99f[14]](_0xa99f[13],_0x82d2xc,_0x82d2x11[_0xa99f[14]][_0xa99f[22]]);return _0x82d2xe(_0x82d2x11[_0xa99f[14]][_0xa99f[22]])}else {logger[_0xa99f[17]](_0xa99f[13],_0x82d2xc,_0xa99f[16]);_0x82d2xe(_0x82d2x11[_0xa99f[23]][_0xa99f[22]])}})[_0xa99f[15]](function(_0x82d2x10){logger[_0xa99f[14]](_0xa99f[13],_0x82d2xc,_0x82d2x10);_0x82d2xf(_0x82d2x10)})})}
\ No newline at end of file
diff --git a/server/api/faxApplication/index.js b/server/api/faxApplication/index.js
new file mode 100644 (file)
index 0000000..b149696
--- /dev/null
@@ -0,0 +1 @@
+var _0x87d7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x87d7[0];var multer=require(_0x87d7[1]);var util=require(_0x87d7[2]);var path=require(_0x87d7[3]);var express=require(_0x87d7[4]);var router=express.Router();var auth=require(_0x87d7[5]);var config=require(_0x87d7[6]);var controller=require(_0x87d7[7]);router[_0x87d7[11]](_0x87d7[8],auth[_0x87d7[9]](),controller[_0x87d7[10]]);router[_0x87d7[13]](_0x87d7[8],auth[_0x87d7[9]](),controller[_0x87d7[12]]);router[_0x87d7[15]](_0x87d7[8],auth[_0x87d7[9]](),controller[_0x87d7[14]]);module[_0x87d7[16]]= router
\ No newline at end of file
diff --git a/server/api/faxAttachment/faxAttachment.attributes.js b/server/api/faxAttachment/faxAttachment.attributes.js
new file mode 100644 (file)
index 0000000..007b5e5
--- /dev/null
@@ -0,0 +1 @@
+var _0x87a3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x87a3[0];var Sequelize=require(_0x87a3[1]);module[_0x87a3[2]]= {path:{type:Sequelize[_0x87a3[3]],allowNull:false},name:{type:Sequelize[_0x87a3[3]],allowNull:false},basename:{type:Sequelize[_0x87a3[3]]},type:{type:Sequelize[_0x87a3[3]]}}
\ No newline at end of file
diff --git a/server/api/faxAttachment/faxAttachment.controller.js b/server/api/faxAttachment/faxAttachment.controller.js
new file mode 100644 (file)
index 0000000..94df3a2
--- /dev/null
@@ -0,0 +1 @@
+var _0x2ca6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x2ca6[0];var jsonpatch=require(_0x2ca6[1]);var rp=require(_0x2ca6[2]);var moment=require(_0x2ca6[3]);var BPromise=require(_0x2ca6[4]);var util=require(_0x2ca6[5]);var path=require(_0x2ca6[6]);var sox=require(_0x2ca6[7]);var ejs=require(_0x2ca6[8]);var fs=require(_0x2ca6[9]);var _=require(_0x2ca6[10]);var squel=require(_0x2ca6[11]);var crypto=require(_0x2ca6[12]);var jsforce=require(_0x2ca6[13]);var toCsv=require(_0x2ca6[14]);var qs=require(_0x2ca6[15]);var logger=require(_0x2ca6[17])(_0x2ca6[16]);var utils=require(_0x2ca6[18]);var config=require(_0x2ca6[19]);var db=require(_0x2ca6[21])[_0x2ca6[20]];function respondWithStatusCode(_0xba32x15,_0xba32x16,_0xba32x17){_0xba32x16= _0xba32x16|| 204;return function(_0xba32x18){if(_0xba32x18){logger[_0x2ca6[24]](_0x2ca6[22],_0xba32x17,_0xba32x16,_0x2ca6[23]);logger[_0x2ca6[26]](_0x2ca6[25],_0xba32x17,_0xba32x16,_0x2ca6[23]);return _0xba32x15[_0x2ca6[27]](_0xba32x16)};return _0xba32x15[_0x2ca6[29]](304)[_0x2ca6[28]]()}}function respondWithResult(_0xba32x15,_0xba32x16,_0xba32x17){_0xba32x16= _0xba32x16|| 200;return function(_0xba32x18){if(_0xba32x18){logger[_0x2ca6[24]](_0x2ca6[22],_0xba32x17,_0xba32x16,_0x2ca6[30]);logger[_0x2ca6[26]](_0x2ca6[25],_0xba32x17,_0xba32x16,_0x2ca6[30],JSON[_0x2ca6[31]](_0xba32x18));return _0xba32x15[_0x2ca6[29]](_0xba32x16)[_0x2ca6[32]](_0xba32x18)};return _0xba32x15[_0x2ca6[29]](304)[_0x2ca6[28]]()}}function respondWithFilteredResult(_0xba32x15,_0xba32x1b,_0xba32x17){return function(_0xba32x18){if(_0xba32x18){var _0xba32x1c=_0xba32x18[_0x2ca6[33]],_0xba32x1d=_0xba32x1b[_0x2ca6[34]],_0xba32x1e=_0xba32x1b[_0x2ca6[34]]+ _0xba32x1b[_0x2ca6[35]],_0xba32x16;if(_0xba32x1e>= _0xba32x1c){_0xba32x1e= _0xba32x1c;_0xba32x16= 200}else {_0xba32x16= 206};_0xba32x15[_0x2ca6[29]](_0xba32x16);logger[_0x2ca6[24]](_0x2ca6[22],_0xba32x17,_0xba32x16,_0x2ca6[36]);logger[_0x2ca6[26]](_0x2ca6[25],_0xba32x17,_0xba32x16,_0x2ca6[30],JSON[_0x2ca6[31]](_0xba32x18));return _0xba32x15[_0x2ca6[40]](_0x2ca6[37],_0xba32x1d+ _0x2ca6[38]+ _0xba32x1e+ _0x2ca6[39]+ _0xba32x1c)[_0x2ca6[32]](_0xba32x18)};return null}}function patchUpdates(_0xba32x20){return function(_0xba32x18){try{jsonpatch[_0x2ca6[41]](_0xba32x18,_0xba32x20,true)}catch(err){return BPromise[_0x2ca6[42]](err)};return _0xba32x18[_0x2ca6[43]]()}}function saveUpdates(_0xba32x22,_0xba32x16,_0xba32x17){return function(_0xba32x18){if(_0xba32x18){return _0xba32x18[_0x2ca6[46]](_0xba32x22)[_0x2ca6[45]](function(_0xba32x23){logger[_0x2ca6[24]](_0x2ca6[22],_0xba32x17,_0xba32x16,_0x2ca6[44]);logger[_0x2ca6[26]](_0x2ca6[25],_0xba32x17,_0xba32x16,_0x2ca6[44],JSON[_0x2ca6[31]](_0xba32x18));return _0xba32x23})};return null}}function removeEntity(_0xba32x15,_0xba32x16,_0xba32x17){return function(_0xba32x18){if(_0xba32x18){return _0xba32x18[_0x2ca6[48]]()[_0x2ca6[45]](function(){logger[_0x2ca6[24]](_0x2ca6[22],_0xba32x17,_0xba32x16,_0x2ca6[47]);logger[_0x2ca6[26]](_0x2ca6[25],_0xba32x17,_0xba32x16,_0x2ca6[47],JSON[_0x2ca6[31]](_0xba32x18));_0xba32x15[_0x2ca6[29]](204)[_0x2ca6[28]]()})}}}function handleEntityNotFound(_0xba32x15,_0xba32x16,_0xba32x17){return function(_0xba32x18){if(!_0xba32x18){logger[_0x2ca6[50]](_0x2ca6[22],_0xba32x17,404,_0x2ca6[49]);_0xba32x15[_0x2ca6[29]](404)[_0x2ca6[28]]();return null};return _0xba32x18}}function handleError(_0xba32x15,_0xba32x16,_0xba32x17){_0xba32x16= _0xba32x16|| 500;return function(_0xba32x27){logger[_0x2ca6[50]](_0x2ca6[22],_0xba32x17,_0xba32x16,JSON[_0x2ca6[31]](_0xba32x27));delete _0xba32x27[_0x2ca6[51]];_0xba32x15[_0x2ca6[29]](_0xba32x16)[_0x2ca6[52]](_0xba32x27)}}exports[_0x2ca6[53]]= function(_0xba32x28,_0xba32x15){var _0xba32x1b={},_0xba32x29={};_0xba32x29[_0x2ca6[54]]= _[_0x2ca6[57]](db[_0x2ca6[56]][_0x2ca6[55]]);_0xba32x29[_0x2ca6[58]]= _[_0x2ca6[57]](_0xba32x28[_0x2ca6[58]]);_0xba32x29[_0x2ca6[59]]= _[_0x2ca6[60]](_0xba32x29[_0x2ca6[54]],_0xba32x29[_0x2ca6[58]]);_0xba32x1b[_0x2ca6[61]]= _[_0x2ca6[60]](_0xba32x29[_0x2ca6[54]],qs[_0x2ca6[62]](_0xba32x28[_0x2ca6[58]][_0x2ca6[62]]));_0xba32x1b[_0x2ca6[61]]= (_0xba32x1b[_0x2ca6[61]][_0x2ca6[63]])?_0xba32x1b[_0x2ca6[61]]:_0xba32x29[_0x2ca6[54]];if(!_0xba32x28[_0x2ca6[58]][_0x2ca6[65]](_0x2ca6[64])){_0xba32x1b[_0x2ca6[35]]= qs[_0x2ca6[35]](_0xba32x28[_0x2ca6[58]][_0x2ca6[35]]);_0xba32x1b[_0x2ca6[34]]= qs[_0x2ca6[34]](_0xba32x28[_0x2ca6[58]][_0x2ca6[34]])};_0xba32x1b[_0x2ca6[66]]= qs[_0x2ca6[67]](_0xba32x28[_0x2ca6[58]][_0x2ca6[67]]);_0xba32x1b[_0x2ca6[68]]= qs[_0x2ca6[59]](_[_0x2ca6[69]](_0xba32x28[_0x2ca6[58]],_0xba32x29[_0x2ca6[59]]));if(_0xba32x28[_0x2ca6[58]][_0x2ca6[70]]){_0xba32x1b[_0x2ca6[68]]= _[_0x2ca6[73]](_0xba32x1b[_0x2ca6[68]],{$or:_[_0x2ca6[72]](_0xba32x1b[_0x2ca6[61]],function(_0xba32x2a){var _0xba32x2b={};_0xba32x2b[_0xba32x2a]= {$like:_0x2ca6[71]+ _0xba32x28[_0x2ca6[58]][_0x2ca6[70]]+ _0x2ca6[71]};return _0xba32x2b})})};_0xba32x1b= _[_0x2ca6[73]]({},_0xba32x1b,_0xba32x28[_0x2ca6[74]]);return db[_0x2ca6[56]][_0x2ca6[76]](_0xba32x1b)[_0x2ca6[45]](respondWithFilteredResult(_0xba32x15,_0xba32x1b,_0x2ca6[53]))[_0x2ca6[75]](handleError(_0xba32x15,null,_0x2ca6[53]))};exports[_0x2ca6[77]]= function(_0xba32x28,_0xba32x15){var _0xba32x1b={raw:true,where:{id:_0xba32x28[_0x2ca6[79]][_0x2ca6[78]]}},_0xba32x29={};_0xba32x29[_0x2ca6[54]]= _[_0x2ca6[57]](db[_0x2ca6[56]][_0x2ca6[55]]);_0xba32x29[_0x2ca6[58]]= _[_0x2ca6[57]](_0xba32x28[_0x2ca6[58]]);_0xba32x29[_0x2ca6[59]]= _[_0x2ca6[60]](_0xba32x29[_0x2ca6[54]],_0xba32x29[_0x2ca6[58]]);_0xba32x1b[_0x2ca6[61]]= _[_0x2ca6[60]](_0xba32x29[_0x2ca6[54]],qs[_0x2ca6[62]](_0xba32x28[_0x2ca6[58]][_0x2ca6[62]]));_0xba32x1b[_0x2ca6[61]]= (_0xba32x1b[_0x2ca6[61]][_0x2ca6[63]])?_0xba32x1b[_0x2ca6[61]]:_0xba32x29[_0x2ca6[54]];_0xba32x1b= _[_0x2ca6[73]]({},_0xba32x1b,_0xba32x28[_0x2ca6[74]]);return db[_0x2ca6[56]][_0x2ca6[80]](_0xba32x1b)[_0x2ca6[45]](handleEntityNotFound(_0xba32x15,null,_0x2ca6[77]))[_0x2ca6[45]](respondWithResult(_0xba32x15,null,_0x2ca6[77]))[_0x2ca6[75]](handleError(_0xba32x15,null,_0x2ca6[77]))};exports[_0x2ca6[81]]= function(_0xba32x28,_0xba32x15){return db[_0x2ca6[56]][_0x2ca6[81]](_0xba32x28[_0x2ca6[82]],{})[_0x2ca6[45]](respondWithResult(_0xba32x15,201,_0x2ca6[81]))[_0x2ca6[75]](handleError(_0xba32x15,null,_0x2ca6[81]))};exports[_0x2ca6[46]]= function(_0xba32x28,_0xba32x15){if(_0xba32x28[_0x2ca6[82]][_0x2ca6[78]]){delete _0xba32x28[_0x2ca6[82]][_0x2ca6[78]]};return db[_0x2ca6[56]][_0x2ca6[80]]({where:{id:_0xba32x28[_0x2ca6[79]][_0x2ca6[78]]}})[_0x2ca6[45]](handleEntityNotFound(_0xba32x15,null,_0x2ca6[46]))[_0x2ca6[45]](saveUpdates(_0xba32x28[_0x2ca6[82]],null,_0x2ca6[46]))[_0x2ca6[45]](respondWithResult(_0xba32x15,null,_0x2ca6[46]))[_0x2ca6[75]](handleError(_0xba32x15,null,_0x2ca6[46]))};exports[_0x2ca6[48]]= function(_0xba32x28,_0xba32x15){return db[_0x2ca6[56]][_0x2ca6[80]]({where:{id:_0xba32x28[_0x2ca6[79]][_0x2ca6[78]]}})[_0x2ca6[45]](handleEntityNotFound(_0xba32x15,null,_0x2ca6[48]))[_0x2ca6[45]](removeEntity(_0xba32x15,null,_0x2ca6[48]))[_0x2ca6[75]](handleError(_0xba32x15,null,_0x2ca6[48]))}
\ No newline at end of file
diff --git a/server/api/faxAttachment/faxAttachment.model.js b/server/api/faxAttachment/faxAttachment.model.js
new file mode 100644 (file)
index 0000000..9deb2e2
--- /dev/null
@@ -0,0 +1 @@
+var _0x2ab3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x66\x61\x78\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x2ab3[0];var _=require(_0x2ab3[1]);var util=require(_0x2ab3[2]);var logger=require(_0x2ab3[4])(_0x2ab3[3]);var attributes=require(_0x2ab3[5]);module[_0x2ab3[6]]= function(_0x216bx5,_0x216bx6){return _0x216bx5[_0x2ab3[9]](_0x2ab3[7],attributes,{tableName:_0x2ab3[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/faxAttachment/faxAttachment.rpc.js b/server/api/faxAttachment/faxAttachment.rpc.js
new file mode 100644 (file)
index 0000000..7e2c71b
--- /dev/null
@@ -0,0 +1 @@
+var _0xcdd2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xcdd2[0];var _=require(_0xcdd2[1]);var util=require(_0xcdd2[2]);var moment=require(_0xcdd2[3]);var BPromise=require(_0xcdd2[4]);var db=require(_0xcdd2[6])[_0xcdd2[5]];var utils=require(_0xcdd2[7]);var logger=require(_0xcdd2[9])(_0xcdd2[8]);var jayson=require(_0xcdd2[10]);var client=jayson[_0xcdd2[12]][_0xcdd2[11]]({port:9002});function respondWithRpcPromise(_0x2804xb,_0x2804xc,_0x2804xd){return  new BPromise(function(_0x2804xe,_0x2804xf){return client[_0xcdd2[25]](_0x2804xb,_0x2804xd)[_0xcdd2[24]](function(_0x2804x11){logger[_0xcdd2[17]](_0xcdd2[13],_0x2804xc,_0xcdd2[16]);logger[_0xcdd2[20]](_0xcdd2[18],_0x2804xc,_0xcdd2[16],JSON[_0xcdd2[19]](_0x2804x11));if(_0x2804x11[_0xcdd2[14]]){if(_0x2804x11[_0xcdd2[14]][_0xcdd2[21]]=== 500){logger[_0xcdd2[14]](_0xcdd2[13],_0x2804xc,_0x2804x11[_0xcdd2[14]][_0xcdd2[22]]);return _0x2804xf(_0x2804x11[_0xcdd2[14]][_0xcdd2[22]])};logger[_0xcdd2[14]](_0xcdd2[13],_0x2804xc,_0x2804x11[_0xcdd2[14]][_0xcdd2[22]]);return _0x2804xe(_0x2804x11[_0xcdd2[14]][_0xcdd2[22]])}else {logger[_0xcdd2[17]](_0xcdd2[13],_0x2804xc,_0xcdd2[16]);_0x2804xe(_0x2804x11[_0xcdd2[23]][_0xcdd2[22]])}})[_0xcdd2[15]](function(_0x2804x10){logger[_0xcdd2[14]](_0xcdd2[13],_0x2804xc,_0x2804x10);_0x2804xf(_0x2804x10)})})}
\ No newline at end of file
diff --git a/server/api/faxAttachment/index.js b/server/api/faxAttachment/index.js
new file mode 100644 (file)
index 0000000..4f178af
--- /dev/null
@@ -0,0 +1 @@
+var _0x6e60=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6e60[0];var multer=require(_0x6e60[1]);var util=require(_0x6e60[2]);var path=require(_0x6e60[3]);var express=require(_0x6e60[4]);var router=express.Router();var auth=require(_0x6e60[5]);var config=require(_0x6e60[6]);var controller=require(_0x6e60[7]);router[_0x6e60[11]](_0x6e60[8],auth[_0x6e60[9]](),controller[_0x6e60[10]]);router[_0x6e60[11]](_0x6e60[12],auth[_0x6e60[9]](),controller[_0x6e60[13]]);router[_0x6e60[15]](_0x6e60[8],auth[_0x6e60[9]](),controller[_0x6e60[14]]);router[_0x6e60[17]](_0x6e60[12],auth[_0x6e60[9]](),controller[_0x6e60[16]]);router[_0x6e60[19]](_0x6e60[12],auth[_0x6e60[9]](),controller[_0x6e60[18]]);module[_0x6e60[20]]= router
\ No newline at end of file
diff --git a/server/api/faxDisposition/faxDisposition.attributes.js b/server/api/faxDisposition/faxDisposition.attributes.js
new file mode 100644 (file)
index 0000000..1798614
--- /dev/null
@@ -0,0 +1 @@
+var _0xa17f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xa17f[0];var Sequelize=require(_0xa17f[1]);module[_0xa17f[2]]= {name:{type:Sequelize[_0xa17f[3]],allowNull:false}}
\ No newline at end of file
diff --git a/server/api/faxDisposition/faxDisposition.controller.js b/server/api/faxDisposition/faxDisposition.controller.js
new file mode 100644 (file)
index 0000000..628fdc1
--- /dev/null
@@ -0,0 +1 @@
+var _0xe547=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xe547[0];var jsonpatch=require(_0xe547[1]);var rp=require(_0xe547[2]);var moment=require(_0xe547[3]);var BPromise=require(_0xe547[4]);var util=require(_0xe547[5]);var path=require(_0xe547[6]);var sox=require(_0xe547[7]);var ejs=require(_0xe547[8]);var fs=require(_0xe547[9]);var _=require(_0xe547[10]);var squel=require(_0xe547[11]);var crypto=require(_0xe547[12]);var jsforce=require(_0xe547[13]);var toCsv=require(_0xe547[14]);var qs=require(_0xe547[15]);var logger=require(_0xe547[17])(_0xe547[16]);var utils=require(_0xe547[18]);var config=require(_0xe547[19]);var db=require(_0xe547[21])[_0xe547[20]];function respondWithStatusCode(_0x1a88x15,_0x1a88x16,_0x1a88x17){_0x1a88x16= _0x1a88x16|| 204;return function(_0x1a88x18){if(_0x1a88x18){logger[_0xe547[24]](_0xe547[22],_0x1a88x17,_0x1a88x16,_0xe547[23]);logger[_0xe547[26]](_0xe547[25],_0x1a88x17,_0x1a88x16,_0xe547[23]);return _0x1a88x15[_0xe547[27]](_0x1a88x16)};return _0x1a88x15[_0xe547[29]](304)[_0xe547[28]]()}}function respondWithResult(_0x1a88x15,_0x1a88x16,_0x1a88x17){_0x1a88x16= _0x1a88x16|| 200;return function(_0x1a88x18){if(_0x1a88x18){logger[_0xe547[24]](_0xe547[22],_0x1a88x17,_0x1a88x16,_0xe547[30]);logger[_0xe547[26]](_0xe547[25],_0x1a88x17,_0x1a88x16,_0xe547[30],JSON[_0xe547[31]](_0x1a88x18));return _0x1a88x15[_0xe547[29]](_0x1a88x16)[_0xe547[32]](_0x1a88x18)};return _0x1a88x15[_0xe547[29]](304)[_0xe547[28]]()}}function respondWithFilteredResult(_0x1a88x15,_0x1a88x1b,_0x1a88x17){return function(_0x1a88x18){if(_0x1a88x18){var _0x1a88x1c=_0x1a88x18[_0xe547[33]],_0x1a88x1d=_0x1a88x1b[_0xe547[34]],_0x1a88x1e=_0x1a88x1b[_0xe547[34]]+ _0x1a88x1b[_0xe547[35]],_0x1a88x16;if(_0x1a88x1e>= _0x1a88x1c){_0x1a88x1e= _0x1a88x1c;_0x1a88x16= 200}else {_0x1a88x16= 206};_0x1a88x15[_0xe547[29]](_0x1a88x16);logger[_0xe547[24]](_0xe547[22],_0x1a88x17,_0x1a88x16,_0xe547[36]);logger[_0xe547[26]](_0xe547[25],_0x1a88x17,_0x1a88x16,_0xe547[30],JSON[_0xe547[31]](_0x1a88x18));return _0x1a88x15[_0xe547[40]](_0xe547[37],_0x1a88x1d+ _0xe547[38]+ _0x1a88x1e+ _0xe547[39]+ _0x1a88x1c)[_0xe547[32]](_0x1a88x18)};return null}}function patchUpdates(_0x1a88x20){return function(_0x1a88x18){try{jsonpatch[_0xe547[41]](_0x1a88x18,_0x1a88x20,true)}catch(err){return BPromise[_0xe547[42]](err)};return _0x1a88x18[_0xe547[43]]()}}function saveUpdates(_0x1a88x22,_0x1a88x16,_0x1a88x17){return function(_0x1a88x18){if(_0x1a88x18){return _0x1a88x18[_0xe547[46]](_0x1a88x22)[_0xe547[45]](function(_0x1a88x23){logger[_0xe547[24]](_0xe547[22],_0x1a88x17,_0x1a88x16,_0xe547[44]);logger[_0xe547[26]](_0xe547[25],_0x1a88x17,_0x1a88x16,_0xe547[44],JSON[_0xe547[31]](_0x1a88x18));return _0x1a88x23})};return null}}function removeEntity(_0x1a88x15,_0x1a88x16,_0x1a88x17){return function(_0x1a88x18){if(_0x1a88x18){return _0x1a88x18[_0xe547[48]]()[_0xe547[45]](function(){logger[_0xe547[24]](_0xe547[22],_0x1a88x17,_0x1a88x16,_0xe547[47]);logger[_0xe547[26]](_0xe547[25],_0x1a88x17,_0x1a88x16,_0xe547[47],JSON[_0xe547[31]](_0x1a88x18));_0x1a88x15[_0xe547[29]](204)[_0xe547[28]]()})}}}function handleEntityNotFound(_0x1a88x15,_0x1a88x16,_0x1a88x17){return function(_0x1a88x18){if(!_0x1a88x18){logger[_0xe547[50]](_0xe547[22],_0x1a88x17,404,_0xe547[49]);_0x1a88x15[_0xe547[29]](404)[_0xe547[28]]();return null};return _0x1a88x18}}function handleError(_0x1a88x15,_0x1a88x16,_0x1a88x17){_0x1a88x16= _0x1a88x16|| 500;return function(_0x1a88x27){logger[_0xe547[50]](_0xe547[22],_0x1a88x17,_0x1a88x16,JSON[_0xe547[31]](_0x1a88x27));delete _0x1a88x27[_0xe547[51]];_0x1a88x15[_0xe547[29]](_0x1a88x16)[_0xe547[52]](_0x1a88x27)}}exports[_0xe547[53]]= function(_0x1a88x28,_0x1a88x15){var _0x1a88x1b={raw:true,where:{id:_0x1a88x28[_0xe547[55]][_0xe547[54]]}},_0x1a88x29={};_0x1a88x29[_0xe547[56]]= _[_0xe547[59]](db[_0xe547[58]][_0xe547[57]]);_0x1a88x29[_0xe547[60]]= _[_0xe547[59]](_0x1a88x28[_0xe547[60]]);_0x1a88x29[_0xe547[61]]= _[_0xe547[62]](_0x1a88x29[_0xe547[56]],_0x1a88x29[_0xe547[60]]);_0x1a88x1b[_0xe547[63]]= _[_0xe547[62]](_0x1a88x29[_0xe547[56]],qs[_0xe547[64]](_0x1a88x28[_0xe547[60]][_0xe547[64]]));_0x1a88x1b[_0xe547[63]]= (_0x1a88x1b[_0xe547[63]][_0xe547[65]])?_0x1a88x1b[_0xe547[63]]:_0x1a88x29[_0xe547[56]];_0x1a88x1b= _[_0xe547[67]]({},_0x1a88x1b,_0x1a88x28[_0xe547[66]]);return db[_0xe547[58]][_0xe547[69]](_0x1a88x1b)[_0xe547[45]](handleEntityNotFound(_0x1a88x15,null,_0xe547[53]))[_0xe547[45]](respondWithResult(_0x1a88x15,null,_0xe547[53]))[_0xe547[68]](handleError(_0x1a88x15,null,_0xe547[53]))};exports[_0xe547[70]]= function(_0x1a88x28,_0x1a88x15){return db[_0xe547[58]][_0xe547[70]](_0x1a88x28[_0xe547[71]],{})[_0xe547[45]](respondWithResult(_0x1a88x15,201,_0xe547[70]))[_0xe547[68]](handleError(_0x1a88x15,null,_0xe547[70]))};exports[_0xe547[46]]= function(_0x1a88x28,_0x1a88x15){if(_0x1a88x28[_0xe547[71]][_0xe547[54]]){delete _0x1a88x28[_0xe547[71]][_0xe547[54]]};return db[_0xe547[58]][_0xe547[69]]({where:{id:_0x1a88x28[_0xe547[55]][_0xe547[54]]}})[_0xe547[45]](handleEntityNotFound(_0x1a88x15,null,_0xe547[46]))[_0xe547[45]](saveUpdates(_0x1a88x28[_0xe547[71]],null,_0xe547[46]))[_0xe547[45]](respondWithResult(_0x1a88x15,null,_0xe547[46]))[_0xe547[68]](handleError(_0x1a88x15,null,_0xe547[46]))};exports[_0xe547[48]]= function(_0x1a88x28,_0x1a88x15){return db[_0xe547[58]][_0xe547[69]]({where:{id:_0x1a88x28[_0xe547[55]][_0xe547[54]]}})[_0xe547[45]](handleEntityNotFound(_0x1a88x15,null,_0xe547[48]))[_0xe547[45]](removeEntity(_0x1a88x15,null,_0xe547[48]))[_0xe547[68]](handleError(_0x1a88x15,null,_0xe547[48]))}
\ No newline at end of file
diff --git a/server/api/faxDisposition/faxDisposition.model.js b/server/api/faxDisposition/faxDisposition.model.js
new file mode 100644 (file)
index 0000000..b95a563
--- /dev/null
@@ -0,0 +1 @@
+var _0xd46a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x66\x61\x78\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xd46a[0];var _=require(_0xd46a[1]);var util=require(_0xd46a[2]);var logger=require(_0xd46a[4])(_0xd46a[3]);var attributes=require(_0xd46a[5]);module[_0xd46a[6]]= function(_0xd88ax5,_0xd88ax6){return _0xd88ax5[_0xd46a[9]](_0xd46a[7],attributes,{tableName:_0xd46a[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/faxDisposition/faxDisposition.rpc.js b/server/api/faxDisposition/faxDisposition.rpc.js
new file mode 100644 (file)
index 0000000..f0079ea
--- /dev/null
@@ -0,0 +1 @@
+var _0x1d26=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1d26[0];var _=require(_0x1d26[1]);var util=require(_0x1d26[2]);var moment=require(_0x1d26[3]);var BPromise=require(_0x1d26[4]);var db=require(_0x1d26[6])[_0x1d26[5]];var utils=require(_0x1d26[7]);var logger=require(_0x1d26[9])(_0x1d26[8]);var jayson=require(_0x1d26[10]);var client=jayson[_0x1d26[12]][_0x1d26[11]]({port:9002});function respondWithRpcPromise(_0x5ec2xb,_0x5ec2xc,_0x5ec2xd){return  new BPromise(function(_0x5ec2xe,_0x5ec2xf){return client[_0x1d26[25]](_0x5ec2xb,_0x5ec2xd)[_0x1d26[24]](function(_0x5ec2x11){logger[_0x1d26[17]](_0x1d26[13],_0x5ec2xc,_0x1d26[16]);logger[_0x1d26[20]](_0x1d26[18],_0x5ec2xc,_0x1d26[16],JSON[_0x1d26[19]](_0x5ec2x11));if(_0x5ec2x11[_0x1d26[14]]){if(_0x5ec2x11[_0x1d26[14]][_0x1d26[21]]=== 500){logger[_0x1d26[14]](_0x1d26[13],_0x5ec2xc,_0x5ec2x11[_0x1d26[14]][_0x1d26[22]]);return _0x5ec2xf(_0x5ec2x11[_0x1d26[14]][_0x1d26[22]])};logger[_0x1d26[14]](_0x1d26[13],_0x5ec2xc,_0x5ec2x11[_0x1d26[14]][_0x1d26[22]]);return _0x5ec2xe(_0x5ec2x11[_0x1d26[14]][_0x1d26[22]])}else {logger[_0x1d26[17]](_0x1d26[13],_0x5ec2xc,_0x1d26[16]);_0x5ec2xe(_0x5ec2x11[_0x1d26[23]][_0x1d26[22]])}})[_0x1d26[15]](function(_0x5ec2x10){logger[_0x1d26[14]](_0x1d26[13],_0x5ec2xc,_0x5ec2x10);_0x5ec2xf(_0x5ec2x10)})})}
\ No newline at end of file
diff --git a/server/api/faxDisposition/index.js b/server/api/faxDisposition/index.js
new file mode 100644 (file)
index 0000000..11d613d
--- /dev/null
@@ -0,0 +1 @@
+var _0xa64f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa64f[0];var multer=require(_0xa64f[1]);var util=require(_0xa64f[2]);var path=require(_0xa64f[3]);var express=require(_0xa64f[4]);var router=express.Router();var auth=require(_0xa64f[5]);var config=require(_0xa64f[6]);var controller=require(_0xa64f[7]);router[_0xa64f[11]](_0xa64f[8],auth[_0xa64f[9]](),controller[_0xa64f[10]]);router[_0xa64f[14]](_0xa64f[12],auth[_0xa64f[9]](),controller[_0xa64f[13]]);router[_0xa64f[16]](_0xa64f[8],auth[_0xa64f[9]](),controller[_0xa64f[15]]);router[_0xa64f[18]](_0xa64f[8],auth[_0xa64f[9]](),controller[_0xa64f[17]]);module[_0xa64f[19]]= router
\ No newline at end of file
diff --git a/server/api/faxInteraction/faxInteraction.attributes.js b/server/api/faxInteraction/faxInteraction.attributes.js
new file mode 100644 (file)
index 0000000..c25da2e
--- /dev/null
@@ -0,0 +1 @@
+var _0xeaf6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x43\x4C\x4F\x53\x45\x44","\x73\x74\x61\x74\x75\x73","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x72\x72\x69\x76\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6C\x6F\x73\x65\x64\x41\x74","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x44\x41\x54\x45","\x54\x45\x58\x54","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xeaf6[0];var Sequelize=require(_0xeaf6[1]);var moment=require(_0xeaf6[2]);module[_0xeaf6[3]]= {contact:{type:Sequelize[_0xeaf6[4]]},account:{type:Sequelize[_0xeaf6[4]]},faxIn:{type:Sequelize[_0xeaf6[5]],defaultValue:0},faxOut:{type:Sequelize[_0xeaf6[5]],defaultValue:0},status:{type:Sequelize.ENUM(_0xeaf6[6],_0xeaf6[7],_0xeaf6[8],_0xeaf6[9]),defaultValue:_0xeaf6[6],set:function(_0x2c1cx3){this[_0xeaf6[11]](_0xeaf6[10],_0x2c1cx3);switch(_0x2c1cx3){case _0xeaf6[6]:this[_0xeaf6[11]](_0xeaf6[12],moment()[_0xeaf6[14]](_0xeaf6[13]));break;case _0xeaf6[9]:this[_0xeaf6[11]](_0xeaf6[15],moment()[_0xeaf6[14]](_0xeaf6[13]));break;default:}}},lastEvent:{type:Sequelize.ENUM(_0xeaf6[16],_0xeaf6[17],_0xeaf6[18],_0xeaf6[19],_0xeaf6[20])},lastEventAt:{type:Sequelize[_0xeaf6[21]]},tags:{type:Sequelize[_0xeaf6[22]],get:function(){var _0x2c1cx4;if(this[_0xeaf6[24]](_0xeaf6[23])){_0x2c1cx4= this[_0xeaf6[24]](_0xeaf6[23])[_0xeaf6[26]](_0xeaf6[25]);_0x2c1cx4[_0xeaf6[27]]()}else {_0x2c1cx4= []};return _0x2c1cx4},set:function(_0x2c1cx5){this[_0xeaf6[11]](_0xeaf6[23],_0x2c1cx5&& _0x2c1cx5[_0xeaf6[28]]?_0x2c1cx5[_0xeaf6[29]](_0xeaf6[25])+ _0xeaf6[25]:null)}},waiting:{type:Sequelize[_0xeaf6[30]],defaultValue:false},disposition:{type:Sequelize[_0xeaf6[4]]},openReason:{type:Sequelize[_0xeaf6[4]]},arrivedAt:{type:Sequelize[_0xeaf6[21]]},closedAt:{type:Sequelize[_0xeaf6[21]]}}
\ No newline at end of file
diff --git a/server/api/faxInteraction/faxInteraction.controller.js b/server/api/faxInteraction/faxInteraction.controller.js
new file mode 100644 (file)
index 0000000..4e4ed48
--- /dev/null
@@ -0,0 +1 @@
+var _0x9e77=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x9e77[0];var jsonpatch=require(_0x9e77[1]);var rp=require(_0x9e77[2]);var moment=require(_0x9e77[3]);var BPromise=require(_0x9e77[4]);var util=require(_0x9e77[5]);var path=require(_0x9e77[6]);var sox=require(_0x9e77[7]);var ejs=require(_0x9e77[8]);var fs=require(_0x9e77[9]);var _=require(_0x9e77[10]);var squel=require(_0x9e77[11]);var crypto=require(_0x9e77[12]);var jsforce=require(_0x9e77[13]);var toCsv=require(_0x9e77[14]);var qs=require(_0x9e77[15]);var logger=require(_0x9e77[17])(_0x9e77[16]);var utils=require(_0x9e77[18]);var config=require(_0x9e77[19]);var db=require(_0x9e77[21])[_0x9e77[20]];function respondWithStatusCode(_0x28e4x15,_0x28e4x16,_0x28e4x17){_0x28e4x16= _0x28e4x16|| 204;return function(_0x28e4x18){if(_0x28e4x18){logger[_0x9e77[24]](_0x9e77[22],_0x28e4x17,_0x28e4x16,_0x9e77[23]);logger[_0x9e77[26]](_0x9e77[25],_0x28e4x17,_0x28e4x16,_0x9e77[23]);return _0x28e4x15[_0x9e77[27]](_0x28e4x16)};return _0x28e4x15[_0x9e77[29]](304)[_0x9e77[28]]()}}function respondWithResult(_0x28e4x15,_0x28e4x16,_0x28e4x17){_0x28e4x16= _0x28e4x16|| 200;return function(_0x28e4x18){if(_0x28e4x18){logger[_0x9e77[24]](_0x9e77[22],_0x28e4x17,_0x28e4x16,_0x9e77[30]);logger[_0x9e77[26]](_0x9e77[25],_0x28e4x17,_0x28e4x16,_0x9e77[30],JSON[_0x9e77[31]](_0x28e4x18));return _0x28e4x15[_0x9e77[29]](_0x28e4x16)[_0x9e77[32]](_0x28e4x18)};return _0x28e4x15[_0x9e77[29]](304)[_0x9e77[28]]()}}function respondWithFilteredResult(_0x28e4x15,_0x28e4x1b,_0x28e4x17){return function(_0x28e4x18){if(_0x28e4x18){var _0x28e4x1c=_0x28e4x18[_0x9e77[33]],_0x28e4x1d=_0x28e4x1b[_0x9e77[34]],_0x28e4x1e=_0x28e4x1b[_0x9e77[34]]+ _0x28e4x1b[_0x9e77[35]],_0x28e4x16;if(_0x28e4x1e>= _0x28e4x1c){_0x28e4x1e= _0x28e4x1c;_0x28e4x16= 200}else {_0x28e4x16= 206};_0x28e4x15[_0x9e77[29]](_0x28e4x16);logger[_0x9e77[24]](_0x9e77[22],_0x28e4x17,_0x28e4x16,_0x9e77[36]);logger[_0x9e77[26]](_0x9e77[25],_0x28e4x17,_0x28e4x16,_0x9e77[30],JSON[_0x9e77[31]](_0x28e4x18));return _0x28e4x15[_0x9e77[40]](_0x9e77[37],_0x28e4x1d+ _0x9e77[38]+ _0x28e4x1e+ _0x9e77[39]+ _0x28e4x1c)[_0x9e77[32]](_0x28e4x18)};return null}}function patchUpdates(_0x28e4x20){return function(_0x28e4x18){try{jsonpatch[_0x9e77[41]](_0x28e4x18,_0x28e4x20,true)}catch(err){return BPromise[_0x9e77[42]](err)};return _0x28e4x18[_0x9e77[43]]()}}function saveUpdates(_0x28e4x22,_0x28e4x16,_0x28e4x17){return function(_0x28e4x18){if(_0x28e4x18){return _0x28e4x18[_0x9e77[46]](_0x28e4x22)[_0x9e77[45]](function(_0x28e4x23){logger[_0x9e77[24]](_0x9e77[22],_0x28e4x17,_0x28e4x16,_0x9e77[44]);logger[_0x9e77[26]](_0x9e77[25],_0x28e4x17,_0x28e4x16,_0x9e77[44],JSON[_0x9e77[31]](_0x28e4x18));return _0x28e4x23})};return null}}function removeEntity(_0x28e4x15,_0x28e4x16,_0x28e4x17){return function(_0x28e4x18){if(_0x28e4x18){return _0x28e4x18[_0x9e77[48]]()[_0x9e77[45]](function(){logger[_0x9e77[24]](_0x9e77[22],_0x28e4x17,_0x28e4x16,_0x9e77[47]);logger[_0x9e77[26]](_0x9e77[25],_0x28e4x17,_0x28e4x16,_0x9e77[47],JSON[_0x9e77[31]](_0x28e4x18));_0x28e4x15[_0x9e77[29]](204)[_0x9e77[28]]()})}}}function handleEntityNotFound(_0x28e4x15,_0x28e4x16,_0x28e4x17){return function(_0x28e4x18){if(!_0x28e4x18){logger[_0x9e77[50]](_0x9e77[22],_0x28e4x17,404,_0x9e77[49]);_0x28e4x15[_0x9e77[29]](404)[_0x9e77[28]]();return null};return _0x28e4x18}}function handleError(_0x28e4x15,_0x28e4x16,_0x28e4x17){_0x28e4x16= _0x28e4x16|| 500;return function(_0x28e4x27){logger[_0x9e77[50]](_0x9e77[22],_0x28e4x17,_0x28e4x16,JSON[_0x9e77[31]](_0x28e4x27));delete _0x28e4x27[_0x9e77[51]];_0x28e4x15[_0x9e77[29]](_0x28e4x16)[_0x9e77[52]](_0x28e4x27)}}exports[_0x9e77[53]]= function(_0x28e4x28,_0x28e4x15){var _0x28e4x1b={},_0x28e4x29={};_0x28e4x29[_0x9e77[54]]= _[_0x9e77[57]](db[_0x9e77[56]][_0x9e77[55]]);_0x28e4x29[_0x9e77[58]]= _[_0x9e77[57]](_0x28e4x28[_0x9e77[58]]);_0x28e4x29[_0x9e77[59]]= _[_0x9e77[60]](_0x28e4x29[_0x9e77[54]],_0x28e4x29[_0x9e77[58]]);_0x28e4x1b[_0x9e77[61]]= _[_0x9e77[60]](_0x28e4x29[_0x9e77[54]],qs[_0x9e77[62]](_0x28e4x28[_0x9e77[58]][_0x9e77[62]]));_0x28e4x1b[_0x9e77[61]]= (_0x28e4x1b[_0x9e77[61]][_0x9e77[63]])?_0x28e4x1b[_0x9e77[61]]:_0x28e4x29[_0x9e77[54]];if(!_0x28e4x28[_0x9e77[58]][_0x9e77[65]](_0x9e77[64])){_0x28e4x1b[_0x9e77[35]]= qs[_0x9e77[35]](_0x28e4x28[_0x9e77[58]][_0x9e77[35]]);_0x28e4x1b[_0x9e77[34]]= qs[_0x9e77[34]](_0x28e4x28[_0x9e77[58]][_0x9e77[34]])};_0x28e4x1b[_0x9e77[66]]= qs[_0x9e77[67]](_0x28e4x28[_0x9e77[58]][_0x9e77[67]]);_0x28e4x1b[_0x9e77[68]]= qs[_0x9e77[59]](_[_0x9e77[69]](_0x28e4x28[_0x9e77[58]],_0x28e4x29[_0x9e77[59]]));if(_0x28e4x28[_0x9e77[58]][_0x9e77[70]]){_0x28e4x1b[_0x9e77[68]]= _[_0x9e77[73]](_0x28e4x1b[_0x9e77[68]],{$or:_[_0x9e77[72]](_0x28e4x1b[_0x9e77[61]],function(_0x28e4x2a){var _0x28e4x2b={};_0x28e4x2b[_0x28e4x2a]= {$like:_0x9e77[71]+ _0x28e4x28[_0x9e77[58]][_0x9e77[70]]+ _0x9e77[71]};return _0x28e4x2b})})};_0x28e4x1b= _[_0x9e77[73]]({},_0x28e4x1b,_0x28e4x28[_0x9e77[74]]);return db[_0x9e77[56]][_0x9e77[76]](_0x28e4x1b)[_0x9e77[45]](respondWithFilteredResult(_0x28e4x15,_0x28e4x1b,_0x9e77[53]))[_0x9e77[75]](handleError(_0x28e4x15,null,_0x9e77[53]))};exports[_0x9e77[77]]= function(_0x28e4x28,_0x28e4x15){var _0x28e4x1b={raw:false,where:{id:_0x28e4x28[_0x9e77[79]][_0x9e77[78]]}},_0x28e4x29={};_0x28e4x29[_0x9e77[54]]= _[_0x9e77[57]](db[_0x9e77[56]][_0x9e77[55]]);_0x28e4x29[_0x9e77[58]]= _[_0x9e77[57]](_0x28e4x28[_0x9e77[58]]);_0x28e4x29[_0x9e77[59]]= _[_0x9e77[60]](_0x28e4x29[_0x9e77[54]],_0x28e4x29[_0x9e77[58]]);_0x28e4x1b[_0x9e77[61]]= _[_0x9e77[60]](_0x28e4x29[_0x9e77[54]],qs[_0x9e77[62]](_0x28e4x28[_0x9e77[58]][_0x9e77[62]]));_0x28e4x1b[_0x9e77[61]]= (_0x28e4x1b[_0x9e77[61]][_0x9e77[63]])?_0x28e4x1b[_0x9e77[61]]:_0x28e4x29[_0x9e77[54]];_0x28e4x1b= _[_0x9e77[73]]({},_0x28e4x1b,_0x28e4x28[_0x9e77[74]]);return db[_0x9e77[56]][_0x9e77[80]](_0x28e4x1b)[_0x9e77[45]](handleEntityNotFound(_0x28e4x15,null,_0x9e77[77]))[_0x9e77[45]](respondWithResult(_0x28e4x15,null,_0x9e77[77]))[_0x9e77[75]](handleError(_0x28e4x15,null,_0x9e77[77]))};exports[_0x9e77[81]]= function(_0x28e4x28,_0x28e4x15){return db[_0x9e77[56]][_0x9e77[81]](_0x28e4x28[_0x9e77[82]],{})[_0x9e77[45]](respondWithResult(_0x28e4x15,201,_0x9e77[81]))[_0x9e77[75]](handleError(_0x28e4x15,null,_0x9e77[81]))};exports[_0x9e77[46]]= function(_0x28e4x28,_0x28e4x15){if(_0x28e4x28[_0x9e77[82]][_0x9e77[78]]){delete _0x28e4x28[_0x9e77[82]][_0x9e77[78]]};return db[_0x9e77[56]][_0x9e77[80]]({where:{id:_0x28e4x28[_0x9e77[79]][_0x9e77[78]]}})[_0x9e77[45]](handleEntityNotFound(_0x28e4x15,null,_0x9e77[46]))[_0x9e77[45]](saveUpdates(_0x28e4x28[_0x9e77[82]],null,_0x9e77[46]))[_0x9e77[45]](respondWithResult(_0x28e4x15,null,_0x9e77[46]))[_0x9e77[75]](handleError(_0x28e4x15,null,_0x9e77[46]))};exports[_0x9e77[48]]= function(_0x28e4x28,_0x28e4x15){return db[_0x9e77[56]][_0x9e77[80]]({where:{id:_0x28e4x28[_0x9e77[79]][_0x9e77[78]]}})[_0x9e77[45]](handleEntityNotFound(_0x28e4x15,null,_0x9e77[48]))[_0x9e77[45]](removeEntity(_0x28e4x15,null,_0x9e77[48]))[_0x9e77[75]](handleError(_0x28e4x15,null,_0x9e77[48]))};exports[_0x9e77[83]]= function(_0x28e4x28,_0x28e4x15){return db[_0x9e77[56]][_0x9e77[83]]()[_0x9e77[45]](respondWithResult(_0x28e4x15,null,_0x9e77[83]))[_0x9e77[75]](handleError(_0x28e4x15,null,_0x9e77[83]))};exports[_0x9e77[84]]= function(_0x28e4x28,_0x28e4x15,_0x28e4x2c){return db[_0x9e77[87]][_0x9e77[80]]({where:{id:_0x28e4x28[_0x9e77[79]][_0x9e77[78]]}})[_0x9e77[45]](handleEntityNotFound(_0x28e4x15,null,_0x9e77[84]))[_0x9e77[45]](function(_0x28e4x18){if(_0x28e4x18){return _0x28e4x18[_0x9e77[84]](_0x28e4x28[_0x9e77[82]][_0x9e77[85]],_[_0x9e77[86]](_0x28e4x28[_0x9e77[82]],[_0x9e77[85],_0x9e77[78]])|| {})};return null})[_0x9e77[45]](respondWithResult(_0x28e4x15,null,_0x9e77[84]))[_0x9e77[75]](handleError(_0x28e4x15,null,_0x9e77[84]))};exports[_0x9e77[88]]= function(_0x28e4x28,_0x28e4x18,_0x28e4x2c){var _0x28e4x1b={};var _0x28e4x29={};var _0x28e4x2d;var _0x28e4x1c;return db[_0x9e77[56]][_0x9e77[89]]({where:{id:_0x28e4x28[_0x9e77[79]][_0x9e77[78]]}})[_0x9e77[45]](handleEntityNotFound(_0x28e4x18,null,_0x9e77[88]))[_0x9e77[45]](function(_0x28e4x18){if(_0x28e4x18){_0x28e4x2d= _0x28e4x18;_0x28e4x29[_0x9e77[54]]= _[_0x9e77[57]](db[_0x9e77[87]][_0x9e77[55]]);_0x28e4x29[_0x9e77[58]]= _[_0x9e77[57]](_0x28e4x28[_0x9e77[58]]);_0x28e4x29[_0x9e77[59]]= _[_0x9e77[60]](_0x28e4x29[_0x9e77[54]],_0x28e4x29[_0x9e77[58]]);_0x28e4x1b[_0x9e77[61]]= _[_0x9e77[60]](_0x28e4x29[_0x9e77[54]],qs[_0x9e77[62]](_0x28e4x28[_0x9e77[58]][_0x9e77[62]]));_0x28e4x1b[_0x9e77[61]]= (_0x28e4x1b[_0x9e77[61]][_0x9e77[63]])?_0x28e4x1b[_0x9e77[61]]:_0x28e4x29[_0x9e77[54]];_0x28e4x1b[_0x9e77[66]]= qs[_0x9e77[67]](_0x28e4x28[_0x9e77[58]][_0x9e77[67]]);_0x28e4x1b[_0x9e77[68]]= qs[_0x9e77[59]](_[_0x9e77[69]](_0x28e4x28[_0x9e77[58]],_0x28e4x29[_0x9e77[59]]));if(_0x28e4x28[_0x9e77[58]][_0x9e77[70]]){_0x28e4x1b[_0x9e77[68]]= _[_0x9e77[73]](_0x28e4x1b[_0x9e77[68]],{$or:_[_0x9e77[72]](_0x28e4x1b[_0x9e77[61]],function(_0x28e4x2a){var _0x28e4x2b={};_0x28e4x2b[_0x28e4x2a]= {$like:_0x9e77[71]+ _0x28e4x28[_0x9e77[58]][_0x9e77[70]]+ _0x9e77[71]};return _0x28e4x2b})})};_0x28e4x1b= _[_0x9e77[73]]({},_0x28e4x1b,_0x28e4x28[_0x9e77[74]]);return _0x28e4x2d[_0x9e77[88]](_0x28e4x1b)}})[_0x9e77[45]](function(_0x28e4x2f){if(_0x28e4x2f){_0x28e4x1c= _0x28e4x2f[_0x9e77[63]];if(!_0x28e4x28[_0x9e77[58]][_0x9e77[65]](_0x9e77[64])){_0x28e4x1b[_0x9e77[35]]= qs[_0x9e77[35]](_0x28e4x28[_0x9e77[58]][_0x9e77[35]]);_0x28e4x1b[_0x9e77[34]]= qs[_0x9e77[34]](_0x28e4x28[_0x9e77[58]][_0x9e77[34]])};return _0x28e4x2d[_0x9e77[88]](_0x28e4x1b)}})[_0x9e77[45]](function(_0x28e4x2e){return _0x28e4x2e?{count:_0x28e4x1c,rows:_0x28e4x2e}:null})[_0x9e77[45]](respondWithResult(_0x28e4x18,null,_0x9e77[88]))[_0x9e77[75]](handleError(_0x28e4x18,null,_0x9e77[88]))}
\ No newline at end of file
diff --git a/server/api/faxInteraction/faxInteraction.model.js b/server/api/faxInteraction/faxInteraction.model.js
new file mode 100644 (file)
index 0000000..c514a53
--- /dev/null
@@ -0,0 +1 @@
+var _0x8383=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x8383[0];var _=require(_0x8383[1]);var util=require(_0x8383[2]);var logger=require(_0x8383[4])(_0x8383[3]);var attributes=require(_0x8383[5]);module[_0x8383[6]]= function(_0xb76ex5,_0xb76ex6){return _0xb76ex5[_0x8383[9]](_0x8383[7],attributes,{tableName:_0x8383[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/faxInteraction/faxInteraction.rpc.js b/server/api/faxInteraction/faxInteraction.rpc.js
new file mode 100644 (file)
index 0000000..4063391
--- /dev/null
@@ -0,0 +1 @@
+var _0x8c09=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x8c09[0];var _=require(_0x8c09[1]);var util=require(_0x8c09[2]);var moment=require(_0x8c09[3]);var BPromise=require(_0x8c09[4]);var db=require(_0x8c09[6])[_0x8c09[5]];var utils=require(_0x8c09[7]);var logger=require(_0x8c09[9])(_0x8c09[8]);var jayson=require(_0x8c09[10]);var client=jayson[_0x8c09[12]][_0x8c09[11]]({port:9002});function respondWithRpcPromise(_0xc131xb,_0xc131xc,_0xc131xd){return  new BPromise(function(_0xc131xe,_0xc131xf){return client[_0x8c09[25]](_0xc131xb,_0xc131xd)[_0x8c09[24]](function(_0xc131x11){logger[_0x8c09[17]](_0x8c09[13],_0xc131xc,_0x8c09[16]);logger[_0x8c09[20]](_0x8c09[18],_0xc131xc,_0x8c09[16],JSON[_0x8c09[19]](_0xc131x11));if(_0xc131x11[_0x8c09[14]]){if(_0xc131x11[_0x8c09[14]][_0x8c09[21]]=== 500){logger[_0x8c09[14]](_0x8c09[13],_0xc131xc,_0xc131x11[_0x8c09[14]][_0x8c09[22]]);return _0xc131xf(_0xc131x11[_0x8c09[14]][_0x8c09[22]])};logger[_0x8c09[14]](_0x8c09[13],_0xc131xc,_0xc131x11[_0x8c09[14]][_0x8c09[22]]);return _0xc131xe(_0xc131x11[_0x8c09[14]][_0x8c09[22]])}else {logger[_0x8c09[17]](_0x8c09[13],_0xc131xc,_0x8c09[16]);_0xc131xe(_0xc131x11[_0x8c09[23]][_0x8c09[22]])}})[_0x8c09[15]](function(_0xc131x10){logger[_0x8c09[14]](_0x8c09[13],_0xc131xc,_0xc131x10);_0xc131xf(_0xc131x10)})})}
\ No newline at end of file
diff --git a/server/api/faxInteraction/index.js b/server/api/faxInteraction/index.js
new file mode 100644 (file)
index 0000000..57cd58e
--- /dev/null
@@ -0,0 +1 @@
+var _0x1907=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1907[0];var multer=require(_0x1907[1]);var util=require(_0x1907[2]);var path=require(_0x1907[3]);var express=require(_0x1907[4]);var router=express.Router();var auth=require(_0x1907[5]);var config=require(_0x1907[6]);var controller=require(_0x1907[7]);router[_0x1907[11]](_0x1907[8],auth[_0x1907[9]](),controller[_0x1907[10]]);router[_0x1907[11]](_0x1907[12],auth[_0x1907[9]](),controller[_0x1907[13]]);router[_0x1907[11]](_0x1907[14],auth[_0x1907[9]](),controller[_0x1907[15]]);router[_0x1907[11]](_0x1907[16],auth[_0x1907[9]](),controller[_0x1907[17]]);router[_0x1907[19]](_0x1907[8],auth[_0x1907[9]](),controller[_0x1907[18]]);router[_0x1907[19]](_0x1907[16],auth[_0x1907[9]](),controller[_0x1907[20]]);router[_0x1907[22]](_0x1907[14],auth[_0x1907[9]](),controller[_0x1907[21]]);router[_0x1907[24]](_0x1907[14],auth[_0x1907[9]](),controller[_0x1907[23]]);module[_0x1907[25]]= router
\ No newline at end of file
diff --git a/server/api/faxMessage/faxMessage.attributes.js b/server/api/faxMessage/faxMessage.attributes.js
new file mode 100644 (file)
index 0000000..98eea50
--- /dev/null
@@ -0,0 +1 @@
+var _0x66e0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4C\x4F\x42","\x74\x65\x78\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x66e0[0];var Sequelize=require(_0x66e0[1]);var _=require(_0x66e0[2]);module[_0x66e0[3]]= {from:{type:Sequelize[_0x66e0[4]],allowNull:false},to:{type:Sequelize[_0x66e0[4]],allowNull:false},status:{type:Sequelize.ENUM(_0x66e0[5],_0x66e0[6],_0x66e0[7],_0x66e0[8],_0x66e0[9]),defaultValue:_0x66e0[6]},channel:{type:Sequelize[_0x66e0[4]]},channelstate:{type:Sequelize[_0x66e0[10]]},channelstatedesc:{type:Sequelize[_0x66e0[4]]},calleridnum:{type:Sequelize[_0x66e0[4]]},calleridname:{type:Sequelize[_0x66e0[4]]},connectedlinenum:{type:Sequelize[_0x66e0[4]]},connectedlinename:{type:Sequelize[_0x66e0[4]]},accountcode:{type:Sequelize[_0x66e0[4]]},context:{type:Sequelize[_0x66e0[4]]},exten:{type:Sequelize[_0x66e0[4]]},priority:{type:Sequelize[_0x66e0[10]]},uniqueid:{type:Sequelize[_0x66e0[4]]},linkedid:{type:Sequelize[_0x66e0[4]]},localstationid:{type:Sequelize[_0x66e0[4]]},remotestationid:{type:Sequelize[_0x66e0[4]]},pagestransferred:{type:Sequelize[_0x66e0[10]],defaultValue:0},resolution:{type:Sequelize[_0x66e0[4]]},transferrate:{type:Sequelize[_0x66e0[4]]},filename:{type:Sequelize[_0x66e0[4]]},lastStatus:{type:Sequelize[_0x66e0[4]]},error:{type:Sequelize[_0x66e0[4]]},text:{type:Sequelize[_0x66e0[11]],get:function(){if(this[_0x66e0[13]](_0x66e0[12])){return _.toString(this[_0x66e0[13]](_0x66e0[12]))}}},retry:{type:Sequelize[_0x66e0[10]],defaultValue:0}}
\ No newline at end of file
diff --git a/server/api/faxMessage/faxMessage.controller.js b/server/api/faxMessage/faxMessage.controller.js
new file mode 100644 (file)
index 0000000..330c06f
--- /dev/null
@@ -0,0 +1 @@
+var _0x9862=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x9862[0];var jsonpatch=require(_0x9862[1]);var rp=require(_0x9862[2]);var moment=require(_0x9862[3]);var BPromise=require(_0x9862[4]);var util=require(_0x9862[5]);var path=require(_0x9862[6]);var sox=require(_0x9862[7]);var ejs=require(_0x9862[8]);var fs=require(_0x9862[9]);var _=require(_0x9862[10]);var squel=require(_0x9862[11]);var crypto=require(_0x9862[12]);var jsforce=require(_0x9862[13]);var toCsv=require(_0x9862[14]);var qs=require(_0x9862[15]);var logger=require(_0x9862[17])(_0x9862[16]);var utils=require(_0x9862[18]);var config=require(_0x9862[19]);var db=require(_0x9862[21])[_0x9862[20]];function respondWithStatusCode(_0x6735x15,_0x6735x16,_0x6735x17){_0x6735x16= _0x6735x16|| 204;return function(_0x6735x18){if(_0x6735x18){logger[_0x9862[24]](_0x9862[22],_0x6735x17,_0x6735x16,_0x9862[23]);logger[_0x9862[26]](_0x9862[25],_0x6735x17,_0x6735x16,_0x9862[23]);return _0x6735x15[_0x9862[27]](_0x6735x16)};return _0x6735x15[_0x9862[29]](304)[_0x9862[28]]()}}function respondWithResult(_0x6735x15,_0x6735x16,_0x6735x17){_0x6735x16= _0x6735x16|| 200;return function(_0x6735x18){if(_0x6735x18){logger[_0x9862[24]](_0x9862[22],_0x6735x17,_0x6735x16,_0x9862[30]);logger[_0x9862[26]](_0x9862[25],_0x6735x17,_0x6735x16,_0x9862[30],JSON[_0x9862[31]](_0x6735x18));return _0x6735x15[_0x9862[29]](_0x6735x16)[_0x9862[32]](_0x6735x18)};return _0x6735x15[_0x9862[29]](304)[_0x9862[28]]()}}function respondWithFilteredResult(_0x6735x15,_0x6735x1b,_0x6735x17){return function(_0x6735x18){if(_0x6735x18){var _0x6735x1c=_0x6735x18[_0x9862[33]],_0x6735x1d=_0x6735x1b[_0x9862[34]],_0x6735x1e=_0x6735x1b[_0x9862[34]]+ _0x6735x1b[_0x9862[35]],_0x6735x16;if(_0x6735x1e>= _0x6735x1c){_0x6735x1e= _0x6735x1c;_0x6735x16= 200}else {_0x6735x16= 206};_0x6735x15[_0x9862[29]](_0x6735x16);logger[_0x9862[24]](_0x9862[22],_0x6735x17,_0x6735x16,_0x9862[36]);logger[_0x9862[26]](_0x9862[25],_0x6735x17,_0x6735x16,_0x9862[30],JSON[_0x9862[31]](_0x6735x18));return _0x6735x15[_0x9862[40]](_0x9862[37],_0x6735x1d+ _0x9862[38]+ _0x6735x1e+ _0x9862[39]+ _0x6735x1c)[_0x9862[32]](_0x6735x18)};return null}}function patchUpdates(_0x6735x20){return function(_0x6735x18){try{jsonpatch[_0x9862[41]](_0x6735x18,_0x6735x20,true)}catch(err){return BPromise[_0x9862[42]](err)};return _0x6735x18[_0x9862[43]]()}}function saveUpdates(_0x6735x22,_0x6735x16,_0x6735x17){return function(_0x6735x18){if(_0x6735x18){return _0x6735x18[_0x9862[46]](_0x6735x22)[_0x9862[45]](function(_0x6735x23){logger[_0x9862[24]](_0x9862[22],_0x6735x17,_0x6735x16,_0x9862[44]);logger[_0x9862[26]](_0x9862[25],_0x6735x17,_0x6735x16,_0x9862[44],JSON[_0x9862[31]](_0x6735x18));return _0x6735x23})};return null}}function removeEntity(_0x6735x15,_0x6735x16,_0x6735x17){return function(_0x6735x18){if(_0x6735x18){return _0x6735x18[_0x9862[48]]()[_0x9862[45]](function(){logger[_0x9862[24]](_0x9862[22],_0x6735x17,_0x6735x16,_0x9862[47]);logger[_0x9862[26]](_0x9862[25],_0x6735x17,_0x6735x16,_0x9862[47],JSON[_0x9862[31]](_0x6735x18));_0x6735x15[_0x9862[29]](204)[_0x9862[28]]()})}}}function handleEntityNotFound(_0x6735x15,_0x6735x16,_0x6735x17){return function(_0x6735x18){if(!_0x6735x18){logger[_0x9862[50]](_0x9862[22],_0x6735x17,404,_0x9862[49]);_0x6735x15[_0x9862[29]](404)[_0x9862[28]]();return null};return _0x6735x18}}function handleError(_0x6735x15,_0x6735x16,_0x6735x17){_0x6735x16= _0x6735x16|| 500;return function(_0x6735x27){logger[_0x9862[50]](_0x9862[22],_0x6735x17,_0x6735x16,JSON[_0x9862[31]](_0x6735x27));delete _0x6735x27[_0x9862[51]];_0x6735x15[_0x9862[29]](_0x6735x16)[_0x9862[52]](_0x6735x27)}}exports[_0x9862[53]]= function(_0x6735x28,_0x6735x15){var _0x6735x1b={},_0x6735x29={};_0x6735x29[_0x9862[54]]= _[_0x9862[57]](db[_0x9862[56]][_0x9862[55]]);_0x6735x29[_0x9862[58]]= _[_0x9862[57]](_0x6735x28[_0x9862[58]]);_0x6735x29[_0x9862[59]]= _[_0x9862[60]](_0x6735x29[_0x9862[54]],_0x6735x29[_0x9862[58]]);_0x6735x1b[_0x9862[61]]= _[_0x9862[60]](_0x6735x29[_0x9862[54]],qs[_0x9862[62]](_0x6735x28[_0x9862[58]][_0x9862[62]]));_0x6735x1b[_0x9862[61]]= (_0x6735x1b[_0x9862[61]][_0x9862[63]])?_0x6735x1b[_0x9862[61]]:_0x6735x29[_0x9862[54]];if(!_0x6735x28[_0x9862[58]][_0x9862[65]](_0x9862[64])){_0x6735x1b[_0x9862[35]]= qs[_0x9862[35]](_0x6735x28[_0x9862[58]][_0x9862[35]]);_0x6735x1b[_0x9862[34]]= qs[_0x9862[34]](_0x6735x28[_0x9862[58]][_0x9862[34]])};_0x6735x1b[_0x9862[66]]= qs[_0x9862[67]](_0x6735x28[_0x9862[58]][_0x9862[67]]);_0x6735x1b[_0x9862[68]]= qs[_0x9862[59]](_[_0x9862[69]](_0x6735x28[_0x9862[58]],_0x6735x29[_0x9862[59]]));if(_0x6735x28[_0x9862[58]][_0x9862[70]]){_0x6735x1b[_0x9862[68]]= _[_0x9862[73]](_0x6735x1b[_0x9862[68]],{$or:_[_0x9862[72]](_0x6735x1b[_0x9862[61]],function(_0x6735x2a){var _0x6735x2b={};_0x6735x2b[_0x6735x2a]= {$like:_0x9862[71]+ _0x6735x28[_0x9862[58]][_0x9862[70]]+ _0x9862[71]};return _0x6735x2b})})};_0x6735x1b= _[_0x9862[73]]({},_0x6735x1b,_0x6735x28[_0x9862[74]]);return db[_0x9862[56]][_0x9862[76]](_0x6735x1b)[_0x9862[45]](respondWithFilteredResult(_0x6735x15,_0x6735x1b,_0x9862[53]))[_0x9862[75]](handleError(_0x6735x15,null,_0x9862[53]))};exports[_0x9862[77]]= function(_0x6735x28,_0x6735x15){var _0x6735x1b={raw:true,where:{id:_0x6735x28[_0x9862[79]][_0x9862[78]]}},_0x6735x29={};_0x6735x29[_0x9862[54]]= _[_0x9862[57]](db[_0x9862[56]][_0x9862[55]]);_0x6735x29[_0x9862[58]]= _[_0x9862[57]](_0x6735x28[_0x9862[58]]);_0x6735x29[_0x9862[59]]= _[_0x9862[60]](_0x6735x29[_0x9862[54]],_0x6735x29[_0x9862[58]]);_0x6735x1b[_0x9862[61]]= _[_0x9862[60]](_0x6735x29[_0x9862[54]],qs[_0x9862[62]](_0x6735x28[_0x9862[58]][_0x9862[62]]));_0x6735x1b[_0x9862[61]]= (_0x6735x1b[_0x9862[61]][_0x9862[63]])?_0x6735x1b[_0x9862[61]]:_0x6735x29[_0x9862[54]];_0x6735x1b= _[_0x9862[73]]({},_0x6735x1b,_0x6735x28[_0x9862[74]]);return db[_0x9862[56]][_0x9862[80]](_0x6735x1b)[_0x9862[45]](handleEntityNotFound(_0x6735x15,null,_0x9862[77]))[_0x9862[45]](respondWithResult(_0x6735x15,null,_0x9862[77]))[_0x9862[75]](handleError(_0x6735x15,null,_0x9862[77]))};exports[_0x9862[81]]= function(_0x6735x28,_0x6735x15){return db[_0x9862[56]][_0x9862[81]](_0x6735x28[_0x9862[82]],{})[_0x9862[45]](respondWithResult(_0x6735x15,201,_0x9862[81]))[_0x9862[75]](handleError(_0x6735x15,null,_0x9862[81]))};exports[_0x9862[46]]= function(_0x6735x28,_0x6735x15){if(_0x6735x28[_0x9862[82]][_0x9862[78]]){delete _0x6735x28[_0x9862[82]][_0x9862[78]]};return db[_0x9862[56]][_0x9862[80]]({where:{id:_0x6735x28[_0x9862[79]][_0x9862[78]]}})[_0x9862[45]](handleEntityNotFound(_0x6735x15,null,_0x9862[46]))[_0x9862[45]](saveUpdates(_0x6735x28[_0x9862[82]],null,_0x9862[46]))[_0x9862[45]](respondWithResult(_0x6735x15,null,_0x9862[46]))[_0x9862[75]](handleError(_0x6735x15,null,_0x9862[46]))};exports[_0x9862[48]]= function(_0x6735x28,_0x6735x15){return db[_0x9862[56]][_0x9862[80]]({where:{id:_0x6735x28[_0x9862[79]][_0x9862[78]]}})[_0x9862[45]](handleEntityNotFound(_0x6735x15,null,_0x9862[48]))[_0x9862[45]](removeEntity(_0x6735x15,null,_0x9862[48]))[_0x9862[75]](handleError(_0x6735x15,null,_0x9862[48]))};exports[_0x9862[83]]= function(_0x6735x28,_0x6735x15){return db[_0x9862[56]][_0x9862[83]]()[_0x9862[45]](respondWithResult(_0x6735x15,null,_0x9862[83]))[_0x9862[75]](handleError(_0x6735x15,null,_0x9862[83]))}
\ No newline at end of file
diff --git a/server/api/faxMessage/faxMessage.model.js b/server/api/faxMessage/faxMessage.model.js
new file mode 100644 (file)
index 0000000..e20e93f
--- /dev/null
@@ -0,0 +1 @@
+var _0xa429=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x66\x61\x78\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xa429[0];var _=require(_0xa429[1]);var util=require(_0xa429[2]);var logger=require(_0xa429[4])(_0xa429[3]);var attributes=require(_0xa429[5]);module[_0xa429[6]]= function(_0xcf69x5,_0xcf69x6){return _0xcf69x5[_0xa429[9]](_0xa429[7],attributes,{tableName:_0xa429[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/faxMessage/faxMessage.rpc.js b/server/api/faxMessage/faxMessage.rpc.js
new file mode 100644 (file)
index 0000000..aa97cd9
--- /dev/null
@@ -0,0 +1 @@
+var _0xf520=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xf520[0];var _=require(_0xf520[1]);var util=require(_0xf520[2]);var moment=require(_0xf520[3]);var BPromise=require(_0xf520[4]);var db=require(_0xf520[6])[_0xf520[5]];var utils=require(_0xf520[7]);var logger=require(_0xf520[9])(_0xf520[8]);var jayson=require(_0xf520[10]);var client=jayson[_0xf520[12]][_0xf520[11]]({port:9002});function respondWithRpcPromise(_0x99b8xb,_0x99b8xc,_0x99b8xd){return  new BPromise(function(_0x99b8xe,_0x99b8xf){return client[_0xf520[25]](_0x99b8xb,_0x99b8xd)[_0xf520[24]](function(_0x99b8x11){logger[_0xf520[17]](_0xf520[13],_0x99b8xc,_0xf520[16]);logger[_0xf520[20]](_0xf520[18],_0x99b8xc,_0xf520[16],JSON[_0xf520[19]](_0x99b8x11));if(_0x99b8x11[_0xf520[14]]){if(_0x99b8x11[_0xf520[14]][_0xf520[21]]=== 500){logger[_0xf520[14]](_0xf520[13],_0x99b8xc,_0x99b8x11[_0xf520[14]][_0xf520[22]]);return _0x99b8xf(_0x99b8x11[_0xf520[14]][_0xf520[22]])};logger[_0xf520[14]](_0xf520[13],_0x99b8xc,_0x99b8x11[_0xf520[14]][_0xf520[22]]);return _0x99b8xe(_0x99b8x11[_0xf520[14]][_0xf520[22]])}else {logger[_0xf520[17]](_0xf520[13],_0x99b8xc,_0xf520[16]);_0x99b8xe(_0x99b8x11[_0xf520[23]][_0xf520[22]])}})[_0xf520[15]](function(_0x99b8x10){logger[_0xf520[14]](_0xf520[13],_0x99b8xc,_0x99b8x10);_0x99b8xf(_0x99b8x10)})})}
\ No newline at end of file
diff --git a/server/api/faxMessage/index.js b/server/api/faxMessage/index.js
new file mode 100644 (file)
index 0000000..b7b575d
--- /dev/null
@@ -0,0 +1 @@
+var _0xde7f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xde7f[0];var multer=require(_0xde7f[1]);var util=require(_0xde7f[2]);var path=require(_0xde7f[3]);var express=require(_0xde7f[4]);var router=express.Router();var auth=require(_0xde7f[5]);var config=require(_0xde7f[6]);var controller=require(_0xde7f[7]);router[_0xde7f[11]](_0xde7f[8],auth[_0xde7f[9]](),controller[_0xde7f[10]]);router[_0xde7f[11]](_0xde7f[12],auth[_0xde7f[9]](),controller[_0xde7f[13]]);router[_0xde7f[11]](_0xde7f[14],auth[_0xde7f[9]](),controller[_0xde7f[15]]);router[_0xde7f[17]](_0xde7f[8],auth[_0xde7f[9]](),controller[_0xde7f[16]]);router[_0xde7f[19]](_0xde7f[14],auth[_0xde7f[9]](),controller[_0xde7f[18]]);router[_0xde7f[21]](_0xde7f[14],auth[_0xde7f[9]](),controller[_0xde7f[20]]);module[_0xde7f[22]]= router
\ No newline at end of file
diff --git a/server/api/faxQueue/faxQueue.attributes.js b/server/api/faxQueue/faxQueue.attributes.js
new file mode 100644 (file)
index 0000000..f91a93a
--- /dev/null
@@ -0,0 +1 @@
+var _0xa893=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0xa893[0];var Sequelize=require(_0xa893[1]);module[_0xa893[2]]= {name:{type:Sequelize[_0xa893[3]],unique:_0xa893[4],allowNull:false,validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0xa893[3]]},timeout:{type:Sequelize[_0xa893[5]],allowNull:false,validate:{min:1}},strategy:{type:Sequelize.ENUM(_0xa893[6],_0xa893[7],_0xa893[8]),allowNull:false},lastAgent:{type:Sequelize[_0xa893[5]],defaultValue:0}}
\ No newline at end of file
diff --git a/server/api/faxQueue/faxQueue.controller.js b/server/api/faxQueue/faxQueue.controller.js
new file mode 100644 (file)
index 0000000..e084a12
--- /dev/null
@@ -0,0 +1 @@
+var _0x70b2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0x70b2[0];var jsonpatch=require(_0x70b2[1]);var rp=require(_0x70b2[2]);var moment=require(_0x70b2[3]);var BPromise=require(_0x70b2[4]);var util=require(_0x70b2[5]);var path=require(_0x70b2[6]);var sox=require(_0x70b2[7]);var ejs=require(_0x70b2[8]);var fs=require(_0x70b2[9]);var _=require(_0x70b2[10]);var squel=require(_0x70b2[11]);var crypto=require(_0x70b2[12]);var jsforce=require(_0x70b2[13]);var toCsv=require(_0x70b2[14]);var qs=require(_0x70b2[15]);var logger=require(_0x70b2[17])(_0x70b2[16]);var utils=require(_0x70b2[18]);var config=require(_0x70b2[19]);var db=require(_0x70b2[21])[_0x70b2[20]];function respondWithStatusCode(_0x4a28x15,_0x4a28x16,_0x4a28x17){_0x4a28x16= _0x4a28x16|| 204;return function(_0x4a28x18){if(_0x4a28x18){logger[_0x70b2[24]](_0x70b2[22],_0x4a28x17,_0x4a28x16,_0x70b2[23]);logger[_0x70b2[26]](_0x70b2[25],_0x4a28x17,_0x4a28x16,_0x70b2[23]);return _0x4a28x15[_0x70b2[27]](_0x4a28x16)};return _0x4a28x15[_0x70b2[29]](304)[_0x70b2[28]]()}}function respondWithResult(_0x4a28x15,_0x4a28x16,_0x4a28x17){_0x4a28x16= _0x4a28x16|| 200;return function(_0x4a28x18){if(_0x4a28x18){logger[_0x70b2[24]](_0x70b2[22],_0x4a28x17,_0x4a28x16,_0x70b2[30]);logger[_0x70b2[26]](_0x70b2[25],_0x4a28x17,_0x4a28x16,_0x70b2[30],JSON[_0x70b2[31]](_0x4a28x18));return _0x4a28x15[_0x70b2[29]](_0x4a28x16)[_0x70b2[32]](_0x4a28x18)};return _0x4a28x15[_0x70b2[29]](304)[_0x70b2[28]]()}}function respondWithFilteredResult(_0x4a28x15,_0x4a28x1b,_0x4a28x17){return function(_0x4a28x18){if(_0x4a28x18){var _0x4a28x1c=_0x4a28x18[_0x70b2[33]],_0x4a28x1d=_0x4a28x1b[_0x70b2[34]],_0x4a28x1e=_0x4a28x1b[_0x70b2[34]]+ _0x4a28x1b[_0x70b2[35]],_0x4a28x16;if(_0x4a28x1e>= _0x4a28x1c){_0x4a28x1e= _0x4a28x1c;_0x4a28x16= 200}else {_0x4a28x16= 206};_0x4a28x15[_0x70b2[29]](_0x4a28x16);logger[_0x70b2[24]](_0x70b2[22],_0x4a28x17,_0x4a28x16,_0x70b2[36]);logger[_0x70b2[26]](_0x70b2[25],_0x4a28x17,_0x4a28x16,_0x70b2[30],JSON[_0x70b2[31]](_0x4a28x18));return _0x4a28x15[_0x70b2[40]](_0x70b2[37],_0x4a28x1d+ _0x70b2[38]+ _0x4a28x1e+ _0x70b2[39]+ _0x4a28x1c)[_0x70b2[32]](_0x4a28x18)};return null}}function patchUpdates(_0x4a28x20){return function(_0x4a28x18){try{jsonpatch[_0x70b2[41]](_0x4a28x18,_0x4a28x20,true)}catch(err){return BPromise[_0x70b2[42]](err)};return _0x4a28x18[_0x70b2[43]]()}}function saveUpdates(_0x4a28x22,_0x4a28x16,_0x4a28x17){return function(_0x4a28x18){if(_0x4a28x18){return _0x4a28x18[_0x70b2[46]](_0x4a28x22)[_0x70b2[45]](function(_0x4a28x23){logger[_0x70b2[24]](_0x70b2[22],_0x4a28x17,_0x4a28x16,_0x70b2[44]);logger[_0x70b2[26]](_0x70b2[25],_0x4a28x17,_0x4a28x16,_0x70b2[44],JSON[_0x70b2[31]](_0x4a28x18));return _0x4a28x23})};return null}}function removeEntity(_0x4a28x15,_0x4a28x16,_0x4a28x17){return function(_0x4a28x18){if(_0x4a28x18){return _0x4a28x18[_0x70b2[48]]()[_0x70b2[45]](function(){logger[_0x70b2[24]](_0x70b2[22],_0x4a28x17,_0x4a28x16,_0x70b2[47]);logger[_0x70b2[26]](_0x70b2[25],_0x4a28x17,_0x4a28x16,_0x70b2[47],JSON[_0x70b2[31]](_0x4a28x18));_0x4a28x15[_0x70b2[29]](204)[_0x70b2[28]]()})}}}function handleEntityNotFound(_0x4a28x15,_0x4a28x16,_0x4a28x17){return function(_0x4a28x18){if(!_0x4a28x18){logger[_0x70b2[50]](_0x70b2[22],_0x4a28x17,404,_0x70b2[49]);_0x4a28x15[_0x70b2[29]](404)[_0x70b2[28]]();return null};return _0x4a28x18}}function handleError(_0x4a28x15,_0x4a28x16,_0x4a28x17){_0x4a28x16= _0x4a28x16|| 500;return function(_0x4a28x27){logger[_0x70b2[50]](_0x70b2[22],_0x4a28x17,_0x4a28x16,JSON[_0x70b2[31]](_0x4a28x27));delete _0x4a28x27[_0x70b2[51]];_0x4a28x15[_0x70b2[29]](_0x4a28x16)[_0x70b2[52]](_0x4a28x27)}}exports[_0x70b2[53]]= function(_0x4a28x28,_0x4a28x15){var _0x4a28x1b={},_0x4a28x29={};_0x4a28x29[_0x70b2[54]]= _[_0x70b2[57]](db[_0x70b2[56]][_0x70b2[55]]);_0x4a28x29[_0x70b2[58]]= _[_0x70b2[57]](_0x4a28x28[_0x70b2[58]]);_0x4a28x29[_0x70b2[59]]= _[_0x70b2[60]](_0x4a28x29[_0x70b2[54]],_0x4a28x29[_0x70b2[58]]);_0x4a28x1b[_0x70b2[61]]= _[_0x70b2[60]](_0x4a28x29[_0x70b2[54]],qs[_0x70b2[62]](_0x4a28x28[_0x70b2[58]][_0x70b2[62]]));_0x4a28x1b[_0x70b2[61]]= (_0x4a28x1b[_0x70b2[61]][_0x70b2[63]])?_0x4a28x1b[_0x70b2[61]]:_0x4a28x29[_0x70b2[54]];if(!_0x4a28x28[_0x70b2[58]][_0x70b2[65]](_0x70b2[64])){_0x4a28x1b[_0x70b2[35]]= qs[_0x70b2[35]](_0x4a28x28[_0x70b2[58]][_0x70b2[35]]);_0x4a28x1b[_0x70b2[34]]= qs[_0x70b2[34]](_0x4a28x28[_0x70b2[58]][_0x70b2[34]])};_0x4a28x1b[_0x70b2[66]]= qs[_0x70b2[67]](_0x4a28x28[_0x70b2[58]][_0x70b2[67]]);_0x4a28x1b[_0x70b2[68]]= qs[_0x70b2[59]](_[_0x70b2[69]](_0x4a28x28[_0x70b2[58]],_0x4a28x29[_0x70b2[59]]));if(_0x4a28x28[_0x70b2[58]][_0x70b2[70]]){_0x4a28x1b[_0x70b2[68]]= _[_0x70b2[73]](_0x4a28x1b[_0x70b2[68]],{$or:_[_0x70b2[72]](_0x4a28x1b[_0x70b2[61]],function(_0x4a28x2a){var _0x4a28x2b={};_0x4a28x2b[_0x4a28x2a]= {$like:_0x70b2[71]+ _0x4a28x28[_0x70b2[58]][_0x70b2[70]]+ _0x70b2[71]};return _0x4a28x2b})})};_0x4a28x1b= _[_0x70b2[73]]({},_0x4a28x1b,_0x4a28x28[_0x70b2[74]]);return db[_0x70b2[56]][_0x70b2[76]](_0x4a28x1b)[_0x70b2[45]](respondWithFilteredResult(_0x4a28x15,_0x4a28x1b,_0x70b2[53]))[_0x70b2[75]](handleError(_0x4a28x15,null,_0x70b2[53]))};exports[_0x70b2[77]]= function(_0x4a28x28,_0x4a28x15){var _0x4a28x1b={raw:true,where:{id:_0x4a28x28[_0x70b2[79]][_0x70b2[78]]}},_0x4a28x29={};_0x4a28x29[_0x70b2[54]]= _[_0x70b2[57]](db[_0x70b2[56]][_0x70b2[55]]);_0x4a28x29[_0x70b2[58]]= _[_0x70b2[57]](_0x4a28x28[_0x70b2[58]]);_0x4a28x29[_0x70b2[59]]= _[_0x70b2[60]](_0x4a28x29[_0x70b2[54]],_0x4a28x29[_0x70b2[58]]);_0x4a28x1b[_0x70b2[61]]= _[_0x70b2[60]](_0x4a28x29[_0x70b2[54]],qs[_0x70b2[62]](_0x4a28x28[_0x70b2[58]][_0x70b2[62]]));_0x4a28x1b[_0x70b2[61]]= (_0x4a28x1b[_0x70b2[61]][_0x70b2[63]])?_0x4a28x1b[_0x70b2[61]]:_0x4a28x29[_0x70b2[54]];_0x4a28x1b= _[_0x70b2[73]]({},_0x4a28x1b,_0x4a28x28[_0x70b2[74]]);return db[_0x70b2[56]][_0x70b2[80]](_0x4a28x1b)[_0x70b2[45]](handleEntityNotFound(_0x4a28x15,null,_0x70b2[77]))[_0x70b2[45]](respondWithResult(_0x4a28x15,null,_0x70b2[77]))[_0x70b2[75]](handleError(_0x4a28x15,null,_0x70b2[77]))};exports[_0x70b2[81]]= function(_0x4a28x28,_0x4a28x15){return db[_0x70b2[56]][_0x70b2[81]](_0x4a28x28[_0x70b2[82]],{})[_0x70b2[45]](respondWithResult(_0x4a28x15,201,_0x70b2[81]))[_0x70b2[75]](handleError(_0x4a28x15,null,_0x70b2[81]))};exports[_0x70b2[46]]= function(_0x4a28x28,_0x4a28x15){if(_0x4a28x28[_0x70b2[82]][_0x70b2[78]]){delete _0x4a28x28[_0x70b2[82]][_0x70b2[78]]};return db[_0x70b2[56]][_0x70b2[80]]({where:{id:_0x4a28x28[_0x70b2[79]][_0x70b2[78]]}})[_0x70b2[45]](handleEntityNotFound(_0x4a28x15,null,_0x70b2[46]))[_0x70b2[45]](saveUpdates(_0x4a28x28[_0x70b2[82]],null,_0x70b2[46]))[_0x70b2[45]](respondWithResult(_0x4a28x15,null,_0x70b2[46]))[_0x70b2[75]](handleError(_0x4a28x15,null,_0x70b2[46]))};exports[_0x70b2[48]]= function(_0x4a28x28,_0x4a28x15){return db[_0x70b2[56]][_0x70b2[80]]({where:{id:_0x4a28x28[_0x70b2[79]][_0x70b2[78]]}})[_0x70b2[45]](handleEntityNotFound(_0x4a28x15,null,_0x70b2[48]))[_0x70b2[45]](removeEntity(_0x4a28x15,null,_0x70b2[48]))[_0x70b2[75]](handleError(_0x4a28x15,null,_0x70b2[48]))};exports[_0x70b2[83]]= function(_0x4a28x28,_0x4a28x18,_0x4a28x2c){var _0x4a28x1b={};var _0x4a28x29={};var _0x4a28x2d;var _0x4a28x1c;return db[_0x70b2[56]][_0x70b2[85]]({where:{id:_0x4a28x28[_0x70b2[79]][_0x70b2[78]]}})[_0x70b2[45]](handleEntityNotFound(_0x4a28x18,null,_0x70b2[83]))[_0x70b2[45]](function(_0x4a28x18){if(_0x4a28x18){_0x4a28x2d= _0x4a28x18;_0x4a28x29[_0x70b2[54]]= _[_0x70b2[57]](db[_0x70b2[84]][_0x70b2[55]]);_0x4a28x29[_0x70b2[58]]= _[_0x70b2[57]](_0x4a28x28[_0x70b2[58]]);_0x4a28x29[_0x70b2[59]]= _[_0x70b2[60]](_0x4a28x29[_0x70b2[54]],_0x4a28x29[_0x70b2[58]]);_0x4a28x1b[_0x70b2[61]]= _[_0x70b2[60]](_0x4a28x29[_0x70b2[54]],qs[_0x70b2[62]](_0x4a28x28[_0x70b2[58]][_0x70b2[62]]));_0x4a28x1b[_0x70b2[61]]= (_0x4a28x1b[_0x70b2[61]][_0x70b2[63]])?_0x4a28x1b[_0x70b2[61]]:_0x4a28x29[_0x70b2[54]];_0x4a28x1b[_0x70b2[66]]= qs[_0x70b2[67]](_0x4a28x28[_0x70b2[58]][_0x70b2[67]]);_0x4a28x1b[_0x70b2[68]]= qs[_0x70b2[59]](_[_0x70b2[69]](_0x4a28x28[_0x70b2[58]],_0x4a28x29[_0x70b2[59]]));if(_0x4a28x28[_0x70b2[58]][_0x70b2[70]]){_0x4a28x1b[_0x70b2[68]]= _[_0x70b2[73]](_0x4a28x1b[_0x70b2[68]],{$or:_[_0x70b2[72]](_0x4a28x1b[_0x70b2[61]],function(_0x4a28x2a){var _0x4a28x2b={};_0x4a28x2b[_0x4a28x2a]= {$like:_0x70b2[71]+ _0x4a28x28[_0x70b2[58]][_0x70b2[70]]+ _0x70b2[71]};return _0x4a28x2b})})};_0x4a28x1b= _[_0x70b2[73]]({},_0x4a28x1b,_0x4a28x28[_0x70b2[74]]);return _0x4a28x2d[_0x70b2[83]](_0x4a28x1b)}})[_0x70b2[45]](function(_0x4a28x2f){if(_0x4a28x2f){_0x4a28x1c= _0x4a28x2f[_0x70b2[63]];if(!_0x4a28x28[_0x70b2[58]][_0x70b2[65]](_0x70b2[64])){_0x4a28x1b[_0x70b2[35]]= qs[_0x70b2[35]](_0x4a28x28[_0x70b2[58]][_0x70b2[35]]);_0x4a28x1b[_0x70b2[34]]= qs[_0x70b2[34]](_0x4a28x28[_0x70b2[58]][_0x70b2[34]])};return _0x4a28x2d[_0x70b2[83]](_0x4a28x1b)}})[_0x70b2[45]](function(_0x4a28x2e){return _0x4a28x2e?{count:_0x4a28x1c,rows:_0x4a28x2e}:null})[_0x70b2[45]](respondWithResult(_0x4a28x18,null,_0x70b2[83]))[_0x70b2[75]](handleError(_0x4a28x18,null,_0x70b2[83]))};exports[_0x70b2[86]]= function(_0x4a28x28,_0x4a28x15,_0x4a28x2c){var _0x4a28x30=[];var _0x4a28x31;return db[_0x70b2[84]][_0x70b2[93]]({where:{id:_0x4a28x28[_0x70b2[82]][_0x70b2[87]]},attributes:[_0x70b2[78]],include:[{model:db[_0x70b2[92]],as:_0x70b2[90],attributes:[_0x70b2[78]],raw:true}]})[_0x70b2[45]](function(_0x4a28x34){if(_0x4a28x34){for(var _0x4a28x35=0;_0x4a28x35< _0x4a28x34[_0x70b2[63]];_0x4a28x35+= 1){for(var _0x4a28x36=0;_0x4a28x36< _0x4a28x34[_0x4a28x35][_0x70b2[90]][_0x70b2[63]];_0x4a28x36+= 1){_0x4a28x30= _[_0x70b2[91]](_0x4a28x30,[_0x4a28x34[_0x4a28x35][_0x70b2[90]][_0x4a28x36][_0x70b2[78]]])}};return _0x4a28x30}})[_0x70b2[45]](function(_0x4a28x33){if(_0x4a28x33){return db[_0x70b2[56]][_0x70b2[80]]({where:{id:_0x4a28x28[_0x70b2[79]][_0x70b2[78]]}})}})[_0x70b2[45]](function(_0x4a28x32){if(_0x4a28x32){_0x4a28x31= _0x4a28x32;return _0x4a28x31[_0x70b2[89]](_0x4a28x30,{penalty:_0x4a28x28[_0x70b2[82]][_0x70b2[88]]})}})[_0x70b2[45]](function(_0x4a28x18){if(_0x4a28x18){return _0x4a28x31[_0x70b2[86]](_0x4a28x28[_0x70b2[82]][_0x70b2[87]])}})[_0x70b2[45]](handleEntityNotFound(_0x4a28x15,null,_0x70b2[86]))[_0x70b2[45]](respondWithStatusCode(_0x4a28x15,null,_0x70b2[86]))[_0x70b2[75]](handleError(_0x4a28x15,null,_0x70b2[86]))};exports[_0x70b2[94]]= function(_0x4a28x28,_0x4a28x15,_0x4a28x2c){var _0x4a28x30=[];var _0x4a28x31;return db[_0x70b2[84]][_0x70b2[93]]({where:{id:_0x4a28x28[_0x70b2[58]][_0x70b2[87]]},attributes:[_0x70b2[78]],include:[{model:db[_0x70b2[92]],as:_0x70b2[90],attributes:[_0x70b2[78]],raw:true}]})[_0x70b2[45]](function(_0x4a28x34){if(_0x4a28x34){for(var _0x4a28x35=0;_0x4a28x35< _0x4a28x34[_0x70b2[63]];_0x4a28x35+= 1){for(var _0x4a28x36=0;_0x4a28x36< _0x4a28x34[_0x4a28x35][_0x70b2[90]][_0x70b2[63]];_0x4a28x36+= 1){_0x4a28x30= _[_0x70b2[91]](_0x4a28x30,[_0x4a28x34[_0x4a28x35][_0x70b2[90]][_0x4a28x36][_0x70b2[78]]])}};return _0x4a28x30}})[_0x70b2[45]](function(_0x4a28x33){if(_0x4a28x33){return db[_0x70b2[56]][_0x70b2[80]]({where:{id:_0x4a28x28[_0x70b2[79]][_0x70b2[78]]}})}})[_0x70b2[45]](function(_0x4a28x32){if(_0x4a28x32){_0x4a28x31= _0x4a28x32;return _0x4a28x31[_0x70b2[95]](_0x4a28x30)}})[_0x70b2[45]](function(_0x4a28x18){if(_0x4a28x31){return _0x4a28x31[_0x70b2[94]](_0x4a28x28[_0x70b2[58]][_0x70b2[87]])}})[_0x70b2[45]](handleEntityNotFound(_0x4a28x15,null,_0x70b2[94]))[_0x70b2[45]](respondWithStatusCode(_0x4a28x15,null,_0x70b2[94]))[_0x70b2[75]](handleError(_0x4a28x15,null,_0x70b2[94]))};exports[_0x70b2[89]]= function(_0x4a28x28,_0x4a28x15,_0x4a28x2c){return db[_0x70b2[56]][_0x70b2[80]]({where:{id:_0x4a28x28[_0x70b2[79]][_0x70b2[78]]}})[_0x70b2[45]](handleEntityNotFound(_0x4a28x15,null,_0x70b2[89]))[_0x70b2[45]](function(_0x4a28x18){if(_0x4a28x18){return _0x4a28x18[_0x70b2[89]](_0x4a28x28[_0x70b2[82]][_0x70b2[87]],_[_0x70b2[96]](_0x4a28x28[_0x70b2[82]],[_0x70b2[87],_0x70b2[78]])|| {})};return null})[_0x70b2[45]](respondWithResult(_0x4a28x15,null,_0x70b2[89]))[_0x70b2[75]](handleError(_0x4a28x15,null,_0x70b2[89]))};exports[_0x70b2[95]]= function(_0x4a28x28,_0x4a28x15,_0x4a28x2c){var _0x4a28x2f;return db[_0x70b2[56]][_0x70b2[80]]({where:{id:_0x4a28x28[_0x70b2[79]][_0x70b2[78]]}})[_0x70b2[45]](handleEntityNotFound(_0x4a28x15,null,_0x70b2[95]))[_0x70b2[45]](function(_0x4a28x18){if(_0x4a28x18){return _0x4a28x18[_0x70b2[95]](_0x4a28x28[_0x70b2[58]][_0x70b2[87]])}})[_0x70b2[45]](respondWithStatusCode(_0x4a28x15,null,_0x70b2[95]))[_0x70b2[75]](handleError(_0x4a28x15,null,_0x70b2[95]))};exports[_0x70b2[97]]= function(_0x4a28x28,_0x4a28x18,_0x4a28x2c){var _0x4a28x1b={};var _0x4a28x29={};var _0x4a28x2d;var _0x4a28x1c;return db[_0x70b2[56]][_0x70b2[85]]({where:{id:_0x4a28x28[_0x70b2[79]][_0x70b2[78]]}})[_0x70b2[45]](handleEntityNotFound(_0x4a28x18,null,_0x70b2[97]))[_0x70b2[45]](function(_0x4a28x18){if(_0x4a28x18){_0x4a28x2d= _0x4a28x18;_0x4a28x29[_0x70b2[54]]= _[_0x70b2[57]](db[_0x70b2[92]][_0x70b2[55]]);_0x4a28x29[_0x70b2[58]]= _[_0x70b2[57]](_0x4a28x28[_0x70b2[58]]);_0x4a28x29[_0x70b2[59]]= _[_0x70b2[60]](_0x4a28x29[_0x70b2[54]],_0x4a28x29[_0x70b2[58]]);_0x4a28x1b[_0x70b2[61]]= _[_0x70b2[60]](_0x4a28x29[_0x70b2[54]],qs[_0x70b2[62]](_0x4a28x28[_0x70b2[58]][_0x70b2[62]]));_0x4a28x1b[_0x70b2[61]]= (_0x4a28x1b[_0x70b2[61]][_0x70b2[63]])?_0x4a28x1b[_0x70b2[61]]:_0x4a28x29[_0x70b2[54]];_0x4a28x1b[_0x70b2[66]]= qs[_0x70b2[67]](_0x4a28x28[_0x70b2[58]][_0x70b2[67]]);_0x4a28x1b[_0x70b2[68]]= qs[_0x70b2[59]](_[_0x70b2[69]](_0x4a28x28[_0x70b2[58]],_0x4a28x29[_0x70b2[59]]));if(_0x4a28x28[_0x70b2[58]][_0x70b2[70]]){_0x4a28x1b[_0x70b2[68]]= _[_0x70b2[73]](_0x4a28x1b[_0x70b2[68]],{$or:_[_0x70b2[72]](_0x4a28x1b[_0x70b2[61]],function(_0x4a28x2a){var _0x4a28x2b={};_0x4a28x2b[_0x4a28x2a]= {$like:_0x70b2[71]+ _0x4a28x28[_0x70b2[58]][_0x70b2[70]]+ _0x70b2[71]};return _0x4a28x2b})})};_0x4a28x1b= _[_0x70b2[73]]({},_0x4a28x1b,_0x4a28x28[_0x70b2[74]]);return _0x4a28x2d[_0x70b2[97]](_0x4a28x1b)}})[_0x70b2[45]](function(_0x4a28x2f){if(_0x4a28x2f){_0x4a28x1c= _0x4a28x2f[_0x70b2[63]];if(!_0x4a28x28[_0x70b2[58]][_0x70b2[65]](_0x70b2[64])){_0x4a28x1b[_0x70b2[35]]= qs[_0x70b2[35]](_0x4a28x28[_0x70b2[58]][_0x70b2[35]]);_0x4a28x1b[_0x70b2[34]]= qs[_0x70b2[34]](_0x4a28x28[_0x70b2[58]][_0x70b2[34]])};return _0x4a28x2d[_0x70b2[97]](_0x4a28x1b)}})[_0x70b2[45]](function(_0x4a28x2e){return _0x4a28x2e?{count:_0x4a28x1c,rows:_0x4a28x2e}:null})[_0x70b2[45]](respondWithResult(_0x4a28x18,null,_0x70b2[97]))[_0x70b2[75]](handleError(_0x4a28x18,null,_0x70b2[97]))}
\ No newline at end of file
diff --git a/server/api/faxQueue/faxQueue.model.js b/server/api/faxQueue/faxQueue.model.js
new file mode 100644 (file)
index 0000000..63007a2
--- /dev/null
@@ -0,0 +1 @@
+var _0x8183=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x51\x75\x65\x75\x65","\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x8183[0];var _=require(_0x8183[1]);var util=require(_0x8183[2]);var logger=require(_0x8183[4])(_0x8183[3]);var attributes=require(_0x8183[5]);module[_0x8183[6]]= function(_0x939ax5,_0x939ax6){return _0x939ax5[_0x8183[9]](_0x8183[7],attributes,{tableName:_0x8183[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/faxQueue/faxQueue.rpc.js b/server/api/faxQueue/faxQueue.rpc.js
new file mode 100644 (file)
index 0000000..2aac86d
--- /dev/null
@@ -0,0 +1 @@
+var _0xca24=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xca24[0];var _=require(_0xca24[1]);var util=require(_0xca24[2]);var moment=require(_0xca24[3]);var BPromise=require(_0xca24[4]);var db=require(_0xca24[6])[_0xca24[5]];var utils=require(_0xca24[7]);var logger=require(_0xca24[9])(_0xca24[8]);var jayson=require(_0xca24[10]);var client=jayson[_0xca24[12]][_0xca24[11]]({port:9002});function respondWithRpcPromise(_0x833fxb,_0x833fxc,_0x833fxd){return  new BPromise(function(_0x833fxe,_0x833fxf){return client[_0xca24[25]](_0x833fxb,_0x833fxd)[_0xca24[24]](function(_0x833fx11){logger[_0xca24[17]](_0xca24[13],_0x833fxc,_0xca24[16]);logger[_0xca24[20]](_0xca24[18],_0x833fxc,_0xca24[16],JSON[_0xca24[19]](_0x833fx11));if(_0x833fx11[_0xca24[14]]){if(_0x833fx11[_0xca24[14]][_0xca24[21]]=== 500){logger[_0xca24[14]](_0xca24[13],_0x833fxc,_0x833fx11[_0xca24[14]][_0xca24[22]]);return _0x833fxf(_0x833fx11[_0xca24[14]][_0xca24[22]])};logger[_0xca24[14]](_0xca24[13],_0x833fxc,_0x833fx11[_0xca24[14]][_0xca24[22]]);return _0x833fxe(_0x833fx11[_0xca24[14]][_0xca24[22]])}else {logger[_0xca24[17]](_0xca24[13],_0x833fxc,_0xca24[16]);_0x833fxe(_0x833fx11[_0xca24[23]][_0xca24[22]])}})[_0xca24[15]](function(_0x833fx10){logger[_0xca24[14]](_0xca24[13],_0x833fxc,_0x833fx10);_0x833fxf(_0x833fx10)})})}
\ No newline at end of file
diff --git a/server/api/faxQueue/index.js b/server/api/faxQueue/index.js
new file mode 100644 (file)
index 0000000..d4e361e
--- /dev/null
@@ -0,0 +1 @@
+var _0x55c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x55c6[0];var multer=require(_0x55c6[1]);var util=require(_0x55c6[2]);var path=require(_0x55c6[3]);var express=require(_0x55c6[4]);var router=express.Router();var auth=require(_0x55c6[5]);var config=require(_0x55c6[6]);var controller=require(_0x55c6[7]);router[_0x55c6[11]](_0x55c6[8],auth[_0x55c6[9]](),controller[_0x55c6[10]]);router[_0x55c6[11]](_0x55c6[12],auth[_0x55c6[9]](),controller[_0x55c6[13]]);router[_0x55c6[11]](_0x55c6[14],auth[_0x55c6[9]](),controller[_0x55c6[15]]);router[_0x55c6[11]](_0x55c6[16],auth[_0x55c6[9]](),controller[_0x55c6[17]]);router[_0x55c6[19]](_0x55c6[8],auth[_0x55c6[9]](),controller[_0x55c6[18]]);router[_0x55c6[19]](_0x55c6[14],auth[_0x55c6[9]](),controller[_0x55c6[20]]);router[_0x55c6[19]](_0x55c6[16],auth[_0x55c6[9]](),controller[_0x55c6[21]]);router[_0x55c6[23]](_0x55c6[12],auth[_0x55c6[9]](),controller[_0x55c6[22]]);router[_0x55c6[25]](_0x55c6[12],auth[_0x55c6[9]](),controller[_0x55c6[24]]);router[_0x55c6[25]](_0x55c6[14],auth[_0x55c6[9]](),controller[_0x55c6[26]]);router[_0x55c6[25]](_0x55c6[16],auth[_0x55c6[9]](),controller[_0x55c6[27]]);module[_0x55c6[28]]= router
\ No newline at end of file
diff --git a/server/api/faxReport/faxReport.attributes.js b/server/api/faxReport/faxReport.attributes.js
new file mode 100644 (file)
index 0000000..924ba39
--- /dev/null
@@ -0,0 +1 @@
+var _0x5983=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0x5983[0];var moment=require(_0x5983[1]);var Sequelize=require(_0x5983[2]);module[_0x5983[3]]= {uniqueid:{type:Sequelize[_0x5983[4]]},timeslot:{type:Sequelize[_0x5983[5]]},accountid:{type:Sequelize[_0x5983[4]]},accountname:{type:Sequelize[_0x5983[4]]},accountphone:{type:Sequelize[_0x5983[4]]},application:{type:Sequelize[_0x5983[4]]},memberid:{type:Sequelize[_0x5983[5]]},membername:{type:Sequelize[_0x5983[4]]},queue:{type:Sequelize[_0x5983[5]]},queuename:{type:Sequelize[_0x5983[4]]},roomid:{type:Sequelize[_0x5983[5]]},messageid:{type:Sequelize[_0x5983[5]]},reason:{type:Sequelize[_0x5983[4]],defaultValue:_0x5983[6]},connectid:{type:Sequelize[_0x5983[4]],unique:_0x5983[7],set:function(_0x38d9x3){this[_0x5983[8]](_0x5983[7],_0x38d9x3);this[_0x5983[8]](_0x5983[9],_0x5983[10]);this[_0x5983[8]](_0x5983[11],moment()[_0x5983[13]](_0x5983[12]))}},calledAt:{type:Sequelize[_0x5983[14]]},rejectedAt:{type:Sequelize[_0x5983[14]],set:function(_0x38d9x4){this[_0x5983[8]](_0x5983[15],_0x38d9x4);this[_0x5983[8]](_0x5983[9],_0x5983[16])}},connectedAt:{type:Sequelize[_0x5983[14]]},from:{type:Sequelize[_0x5983[4]]}}
\ No newline at end of file
diff --git a/server/api/faxReport/faxReport.controller.js b/server/api/faxReport/faxReport.controller.js
new file mode 100644 (file)
index 0000000..fce200a
--- /dev/null
@@ -0,0 +1 @@
+var _0x5884=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x5884[0];var jsonpatch=require(_0x5884[1]);var rp=require(_0x5884[2]);var moment=require(_0x5884[3]);var BPromise=require(_0x5884[4]);var util=require(_0x5884[5]);var path=require(_0x5884[6]);var sox=require(_0x5884[7]);var ejs=require(_0x5884[8]);var fs=require(_0x5884[9]);var _=require(_0x5884[10]);var squel=require(_0x5884[11]);var crypto=require(_0x5884[12]);var jsforce=require(_0x5884[13]);var toCsv=require(_0x5884[14]);var qs=require(_0x5884[15]);var logger=require(_0x5884[17])(_0x5884[16]);var utils=require(_0x5884[18]);var config=require(_0x5884[19]);var db=require(_0x5884[21])[_0x5884[20]];function respondWithStatusCode(_0x5e1ex15,_0x5e1ex16,_0x5e1ex17){_0x5e1ex16= _0x5e1ex16|| 204;return function(_0x5e1ex18){if(_0x5e1ex18){logger[_0x5884[24]](_0x5884[22],_0x5e1ex17,_0x5e1ex16,_0x5884[23]);logger[_0x5884[26]](_0x5884[25],_0x5e1ex17,_0x5e1ex16,_0x5884[23]);return _0x5e1ex15[_0x5884[27]](_0x5e1ex16)};return _0x5e1ex15[_0x5884[29]](304)[_0x5884[28]]()}}function respondWithResult(_0x5e1ex15,_0x5e1ex16,_0x5e1ex17){_0x5e1ex16= _0x5e1ex16|| 200;return function(_0x5e1ex18){if(_0x5e1ex18){logger[_0x5884[24]](_0x5884[22],_0x5e1ex17,_0x5e1ex16,_0x5884[30]);logger[_0x5884[26]](_0x5884[25],_0x5e1ex17,_0x5e1ex16,_0x5884[30],JSON[_0x5884[31]](_0x5e1ex18));return _0x5e1ex15[_0x5884[29]](_0x5e1ex16)[_0x5884[32]](_0x5e1ex18)};return _0x5e1ex15[_0x5884[29]](304)[_0x5884[28]]()}}function respondWithFilteredResult(_0x5e1ex15,_0x5e1ex1b,_0x5e1ex17){return function(_0x5e1ex18){if(_0x5e1ex18){var _0x5e1ex1c=_0x5e1ex18[_0x5884[33]],_0x5e1ex1d=_0x5e1ex1b[_0x5884[34]],_0x5e1ex1e=_0x5e1ex1b[_0x5884[34]]+ _0x5e1ex1b[_0x5884[35]],_0x5e1ex16;if(_0x5e1ex1e>= _0x5e1ex1c){_0x5e1ex1e= _0x5e1ex1c;_0x5e1ex16= 200}else {_0x5e1ex16= 206};_0x5e1ex15[_0x5884[29]](_0x5e1ex16);logger[_0x5884[24]](_0x5884[22],_0x5e1ex17,_0x5e1ex16,_0x5884[36]);logger[_0x5884[26]](_0x5884[25],_0x5e1ex17,_0x5e1ex16,_0x5884[30],JSON[_0x5884[31]](_0x5e1ex18));return _0x5e1ex15[_0x5884[40]](_0x5884[37],_0x5e1ex1d+ _0x5884[38]+ _0x5e1ex1e+ _0x5884[39]+ _0x5e1ex1c)[_0x5884[32]](_0x5e1ex18)};return null}}function patchUpdates(_0x5e1ex20){return function(_0x5e1ex18){try{jsonpatch[_0x5884[41]](_0x5e1ex18,_0x5e1ex20,true)}catch(err){return BPromise[_0x5884[42]](err)};return _0x5e1ex18[_0x5884[43]]()}}function saveUpdates(_0x5e1ex22,_0x5e1ex16,_0x5e1ex17){return function(_0x5e1ex18){if(_0x5e1ex18){return _0x5e1ex18[_0x5884[46]](_0x5e1ex22)[_0x5884[45]](function(_0x5e1ex23){logger[_0x5884[24]](_0x5884[22],_0x5e1ex17,_0x5e1ex16,_0x5884[44]);logger[_0x5884[26]](_0x5884[25],_0x5e1ex17,_0x5e1ex16,_0x5884[44],JSON[_0x5884[31]](_0x5e1ex18));return _0x5e1ex23})};return null}}function removeEntity(_0x5e1ex15,_0x5e1ex16,_0x5e1ex17){return function(_0x5e1ex18){if(_0x5e1ex18){return _0x5e1ex18[_0x5884[48]]()[_0x5884[45]](function(){logger[_0x5884[24]](_0x5884[22],_0x5e1ex17,_0x5e1ex16,_0x5884[47]);logger[_0x5884[26]](_0x5884[25],_0x5e1ex17,_0x5e1ex16,_0x5884[47],JSON[_0x5884[31]](_0x5e1ex18));_0x5e1ex15[_0x5884[29]](204)[_0x5884[28]]()})}}}function handleEntityNotFound(_0x5e1ex15,_0x5e1ex16,_0x5e1ex17){return function(_0x5e1ex18){if(!_0x5e1ex18){logger[_0x5884[50]](_0x5884[22],_0x5e1ex17,404,_0x5884[49]);_0x5e1ex15[_0x5884[29]](404)[_0x5884[28]]();return null};return _0x5e1ex18}}function handleError(_0x5e1ex15,_0x5e1ex16,_0x5e1ex17){_0x5e1ex16= _0x5e1ex16|| 500;return function(_0x5e1ex27){logger[_0x5884[50]](_0x5884[22],_0x5e1ex17,_0x5e1ex16,JSON[_0x5884[31]](_0x5e1ex27));delete _0x5e1ex27[_0x5884[51]];_0x5e1ex15[_0x5884[29]](_0x5e1ex16)[_0x5884[52]](_0x5e1ex27)}}exports[_0x5884[53]]= function(_0x5e1ex28,_0x5e1ex15){var _0x5e1ex1b={},_0x5e1ex29={};_0x5e1ex29[_0x5884[54]]= _[_0x5884[57]](db[_0x5884[56]][_0x5884[55]]);_0x5e1ex29[_0x5884[58]]= _[_0x5884[57]](_0x5e1ex28[_0x5884[58]]);_0x5e1ex29[_0x5884[59]]= _[_0x5884[60]](_0x5e1ex29[_0x5884[54]],_0x5e1ex29[_0x5884[58]]);_0x5e1ex1b[_0x5884[61]]= _[_0x5884[60]](_0x5e1ex29[_0x5884[54]],qs[_0x5884[62]](_0x5e1ex28[_0x5884[58]][_0x5884[62]]));_0x5e1ex1b[_0x5884[61]]= (_0x5e1ex1b[_0x5884[61]][_0x5884[63]])?_0x5e1ex1b[_0x5884[61]]:_0x5e1ex29[_0x5884[54]];if(!_0x5e1ex28[_0x5884[58]][_0x5884[65]](_0x5884[64])){_0x5e1ex1b[_0x5884[35]]= qs[_0x5884[35]](_0x5e1ex28[_0x5884[58]][_0x5884[35]]);_0x5e1ex1b[_0x5884[34]]= qs[_0x5884[34]](_0x5e1ex28[_0x5884[58]][_0x5884[34]])};_0x5e1ex1b[_0x5884[66]]= qs[_0x5884[67]](_0x5e1ex28[_0x5884[58]][_0x5884[67]]);_0x5e1ex1b[_0x5884[68]]= qs[_0x5884[59]](_[_0x5884[69]](_0x5e1ex28[_0x5884[58]],_0x5e1ex29[_0x5884[59]]));if(_0x5e1ex28[_0x5884[58]][_0x5884[70]]){_0x5e1ex1b[_0x5884[68]]= _[_0x5884[73]](_0x5e1ex1b[_0x5884[68]],{$or:_[_0x5884[72]](_0x5e1ex1b[_0x5884[61]],function(_0x5e1ex2a){var _0x5e1ex2b={};_0x5e1ex2b[_0x5e1ex2a]= {$like:_0x5884[71]+ _0x5e1ex28[_0x5884[58]][_0x5884[70]]+ _0x5884[71]};return _0x5e1ex2b})})};_0x5e1ex1b= _[_0x5884[73]]({},_0x5e1ex1b,_0x5e1ex28[_0x5884[74]]);return db[_0x5884[56]][_0x5884[76]](_0x5e1ex1b)[_0x5884[45]](respondWithFilteredResult(_0x5e1ex15,_0x5e1ex1b,_0x5884[53]))[_0x5884[75]](handleError(_0x5e1ex15,null,_0x5884[53]))};exports[_0x5884[77]]= function(_0x5e1ex28,_0x5e1ex15){var _0x5e1ex1b={raw:true,where:{id:_0x5e1ex28[_0x5884[79]][_0x5884[78]]}},_0x5e1ex29={};_0x5e1ex29[_0x5884[54]]= _[_0x5884[57]](db[_0x5884[56]][_0x5884[55]]);_0x5e1ex29[_0x5884[58]]= _[_0x5884[57]](_0x5e1ex28[_0x5884[58]]);_0x5e1ex29[_0x5884[59]]= _[_0x5884[60]](_0x5e1ex29[_0x5884[54]],_0x5e1ex29[_0x5884[58]]);_0x5e1ex1b[_0x5884[61]]= _[_0x5884[60]](_0x5e1ex29[_0x5884[54]],qs[_0x5884[62]](_0x5e1ex28[_0x5884[58]][_0x5884[62]]));_0x5e1ex1b[_0x5884[61]]= (_0x5e1ex1b[_0x5884[61]][_0x5884[63]])?_0x5e1ex1b[_0x5884[61]]:_0x5e1ex29[_0x5884[54]];_0x5e1ex1b= _[_0x5884[73]]({},_0x5e1ex1b,_0x5e1ex28[_0x5884[74]]);return db[_0x5884[56]][_0x5884[80]](_0x5e1ex1b)[_0x5884[45]](handleEntityNotFound(_0x5e1ex15,null,_0x5884[77]))[_0x5884[45]](respondWithResult(_0x5e1ex15,null,_0x5884[77]))[_0x5884[75]](handleError(_0x5e1ex15,null,_0x5884[77]))};exports[_0x5884[81]]= function(_0x5e1ex28,_0x5e1ex15){return db[_0x5884[56]][_0x5884[81]](_0x5e1ex28[_0x5884[82]],{})[_0x5884[45]](respondWithResult(_0x5e1ex15,201,_0x5884[81]))[_0x5884[75]](handleError(_0x5e1ex15,null,_0x5884[81]))};exports[_0x5884[46]]= function(_0x5e1ex28,_0x5e1ex15){if(_0x5e1ex28[_0x5884[82]][_0x5884[78]]){delete _0x5e1ex28[_0x5884[82]][_0x5884[78]]};return db[_0x5884[56]][_0x5884[80]]({where:{id:_0x5e1ex28[_0x5884[79]][_0x5884[78]]}})[_0x5884[45]](handleEntityNotFound(_0x5e1ex15,null,_0x5884[46]))[_0x5884[45]](saveUpdates(_0x5e1ex28[_0x5884[82]],null,_0x5884[46]))[_0x5884[45]](respondWithResult(_0x5e1ex15,null,_0x5884[46]))[_0x5884[75]](handleError(_0x5e1ex15,null,_0x5884[46]))};exports[_0x5884[48]]= function(_0x5e1ex28,_0x5e1ex15){return db[_0x5884[56]][_0x5884[80]]({where:{id:_0x5e1ex28[_0x5884[79]][_0x5884[78]]}})[_0x5884[45]](handleEntityNotFound(_0x5e1ex15,null,_0x5884[48]))[_0x5884[45]](removeEntity(_0x5e1ex15,null,_0x5884[48]))[_0x5884[75]](handleError(_0x5e1ex15,null,_0x5884[48]))}
\ No newline at end of file
diff --git a/server/api/faxReport/faxReport.model.js b/server/api/faxReport/faxReport.model.js
new file mode 100644 (file)
index 0000000..3c6c939
--- /dev/null
@@ -0,0 +1 @@
+var _0xf3ad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x66\x61\x78","\x64\x65\x66\x69\x6E\x65"];_0xf3ad[0];var _=require(_0xf3ad[1]);var util=require(_0xf3ad[2]);var logger=require(_0xf3ad[4])(_0xf3ad[3]);var attributes=require(_0xf3ad[5]);module[_0xf3ad[6]]= function(_0xbf90x5,_0xbf90x6){return _0xbf90x5[_0xf3ad[9]](_0xf3ad[7],attributes,{tableName:_0xf3ad[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/faxReport/faxReport.rpc.js b/server/api/faxReport/faxReport.rpc.js
new file mode 100644 (file)
index 0000000..56e6aea
--- /dev/null
@@ -0,0 +1 @@
+var _0x95a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x95a1[0];var _=require(_0x95a1[1]);var util=require(_0x95a1[2]);var moment=require(_0x95a1[3]);var BPromise=require(_0x95a1[4]);var db=require(_0x95a1[6])[_0x95a1[5]];var utils=require(_0x95a1[7]);var logger=require(_0x95a1[9])(_0x95a1[8]);var jayson=require(_0x95a1[10]);var client=jayson[_0x95a1[12]][_0x95a1[11]]({port:9002});function respondWithRpcPromise(_0x3dbdxb,_0x3dbdxc,_0x3dbdxd){return  new BPromise(function(_0x3dbdxe,_0x3dbdxf){return client[_0x95a1[25]](_0x3dbdxb,_0x3dbdxd)[_0x95a1[24]](function(_0x3dbdx11){logger[_0x95a1[17]](_0x95a1[13],_0x3dbdxc,_0x95a1[16]);logger[_0x95a1[20]](_0x95a1[18],_0x3dbdxc,_0x95a1[16],JSON[_0x95a1[19]](_0x3dbdx11));if(_0x3dbdx11[_0x95a1[14]]){if(_0x3dbdx11[_0x95a1[14]][_0x95a1[21]]=== 500){logger[_0x95a1[14]](_0x95a1[13],_0x3dbdxc,_0x3dbdx11[_0x95a1[14]][_0x95a1[22]]);return _0x3dbdxf(_0x3dbdx11[_0x95a1[14]][_0x95a1[22]])};logger[_0x95a1[14]](_0x95a1[13],_0x3dbdxc,_0x3dbdx11[_0x95a1[14]][_0x95a1[22]]);return _0x3dbdxe(_0x3dbdx11[_0x95a1[14]][_0x95a1[22]])}else {logger[_0x95a1[17]](_0x95a1[13],_0x3dbdxc,_0x95a1[16]);_0x3dbdxe(_0x3dbdx11[_0x95a1[23]][_0x95a1[22]])}})[_0x95a1[15]](function(_0x3dbdx10){logger[_0x95a1[14]](_0x95a1[13],_0x3dbdxc,_0x3dbdx10);_0x3dbdxf(_0x3dbdx10)})})}
\ No newline at end of file
diff --git a/server/api/faxReport/index.js b/server/api/faxReport/index.js
new file mode 100644 (file)
index 0000000..68ea0d7
--- /dev/null
@@ -0,0 +1 @@
+var _0xb19f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xb19f[0];var multer=require(_0xb19f[1]);var util=require(_0xb19f[2]);var path=require(_0xb19f[3]);var express=require(_0xb19f[4]);var router=express.Router();var auth=require(_0xb19f[5]);var config=require(_0xb19f[6]);var controller=require(_0xb19f[7]);router[_0xb19f[11]](_0xb19f[8],auth[_0xb19f[9]](),controller[_0xb19f[10]]);router[_0xb19f[11]](_0xb19f[12],auth[_0xb19f[9]](),controller[_0xb19f[13]]);router[_0xb19f[15]](_0xb19f[8],auth[_0xb19f[9]](),controller[_0xb19f[14]]);router[_0xb19f[17]](_0xb19f[12],auth[_0xb19f[9]](),controller[_0xb19f[16]]);router[_0xb19f[19]](_0xb19f[12],auth[_0xb19f[9]](),controller[_0xb19f[18]]);module[_0xb19f[20]]= router
\ No newline at end of file
diff --git a/server/api/faxSessionReport/faxSessionReport.attributes.js b/server/api/faxSessionReport/faxSessionReport.attributes.js
new file mode 100644 (file)
index 0000000..f746cd4
--- /dev/null
@@ -0,0 +1 @@
+var _0x101e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74"];_0x101e[0];var Sequelize=require(_0x101e[1]);module[_0x101e[2]]= {uniqueid:{type:Sequelize[_0x101e[3]]},accountid:{type:Sequelize[_0x101e[3]]},accountname:{type:Sequelize[_0x101e[3]]},accountphone:{type:Sequelize[_0x101e[3]]},application:{type:Sequelize[_0x101e[3]]},memberid:{type:Sequelize[_0x101e[3]]},membername:{type:Sequelize[_0x101e[3]]},queue:{type:Sequelize[_0x101e[4]]},queuename:{type:Sequelize[_0x101e[3]]},roomid:{type:Sequelize[_0x101e[4]]},fidelity:{type:Sequelize[_0x101e[4]],defaultValue:0},joinAt:{type:Sequelize[_0x101e[5]]},leaveAt:{type:Sequelize[_0x101e[5]]},completeAt:{type:Sequelize[_0x101e[5]]},complete:{type:Sequelize[_0x101e[6]],defaulValue:false},completeReason:{type:Sequelize.ENUM(_0x101e[7])},timeout:{type:Sequelize[_0x101e[6]],defaultValue:false},timeslot:{type:Sequelize[_0x101e[4]]}}
\ No newline at end of file
diff --git a/server/api/faxSessionReport/faxSessionReport.controller.js b/server/api/faxSessionReport/faxSessionReport.controller.js
new file mode 100644 (file)
index 0000000..8524d0c
--- /dev/null
@@ -0,0 +1 @@
+var _0x7829=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x7829[0];var jsonpatch=require(_0x7829[1]);var rp=require(_0x7829[2]);var moment=require(_0x7829[3]);var BPromise=require(_0x7829[4]);var util=require(_0x7829[5]);var path=require(_0x7829[6]);var sox=require(_0x7829[7]);var ejs=require(_0x7829[8]);var fs=require(_0x7829[9]);var _=require(_0x7829[10]);var squel=require(_0x7829[11]);var crypto=require(_0x7829[12]);var jsforce=require(_0x7829[13]);var toCsv=require(_0x7829[14]);var qs=require(_0x7829[15]);var logger=require(_0x7829[17])(_0x7829[16]);var utils=require(_0x7829[18]);var config=require(_0x7829[19]);var db=require(_0x7829[21])[_0x7829[20]];function respondWithStatusCode(_0xab42x15,_0xab42x16,_0xab42x17){_0xab42x16= _0xab42x16|| 204;return function(_0xab42x18){if(_0xab42x18){logger[_0x7829[24]](_0x7829[22],_0xab42x17,_0xab42x16,_0x7829[23]);logger[_0x7829[26]](_0x7829[25],_0xab42x17,_0xab42x16,_0x7829[23]);return _0xab42x15[_0x7829[27]](_0xab42x16)};return _0xab42x15[_0x7829[29]](304)[_0x7829[28]]()}}function respondWithResult(_0xab42x15,_0xab42x16,_0xab42x17){_0xab42x16= _0xab42x16|| 200;return function(_0xab42x18){if(_0xab42x18){logger[_0x7829[24]](_0x7829[22],_0xab42x17,_0xab42x16,_0x7829[30]);logger[_0x7829[26]](_0x7829[25],_0xab42x17,_0xab42x16,_0x7829[30],JSON[_0x7829[31]](_0xab42x18));return _0xab42x15[_0x7829[29]](_0xab42x16)[_0x7829[32]](_0xab42x18)};return _0xab42x15[_0x7829[29]](304)[_0x7829[28]]()}}function respondWithFilteredResult(_0xab42x15,_0xab42x1b,_0xab42x17){return function(_0xab42x18){if(_0xab42x18){var _0xab42x1c=_0xab42x18[_0x7829[33]],_0xab42x1d=_0xab42x1b[_0x7829[34]],_0xab42x1e=_0xab42x1b[_0x7829[34]]+ _0xab42x1b[_0x7829[35]],_0xab42x16;if(_0xab42x1e>= _0xab42x1c){_0xab42x1e= _0xab42x1c;_0xab42x16= 200}else {_0xab42x16= 206};_0xab42x15[_0x7829[29]](_0xab42x16);logger[_0x7829[24]](_0x7829[22],_0xab42x17,_0xab42x16,_0x7829[36]);logger[_0x7829[26]](_0x7829[25],_0xab42x17,_0xab42x16,_0x7829[30],JSON[_0x7829[31]](_0xab42x18));return _0xab42x15[_0x7829[40]](_0x7829[37],_0xab42x1d+ _0x7829[38]+ _0xab42x1e+ _0x7829[39]+ _0xab42x1c)[_0x7829[32]](_0xab42x18)};return null}}function patchUpdates(_0xab42x20){return function(_0xab42x18){try{jsonpatch[_0x7829[41]](_0xab42x18,_0xab42x20,true)}catch(err){return BPromise[_0x7829[42]](err)};return _0xab42x18[_0x7829[43]]()}}function saveUpdates(_0xab42x22,_0xab42x16,_0xab42x17){return function(_0xab42x18){if(_0xab42x18){return _0xab42x18[_0x7829[46]](_0xab42x22)[_0x7829[45]](function(_0xab42x23){logger[_0x7829[24]](_0x7829[22],_0xab42x17,_0xab42x16,_0x7829[44]);logger[_0x7829[26]](_0x7829[25],_0xab42x17,_0xab42x16,_0x7829[44],JSON[_0x7829[31]](_0xab42x18));return _0xab42x23})};return null}}function removeEntity(_0xab42x15,_0xab42x16,_0xab42x17){return function(_0xab42x18){if(_0xab42x18){return _0xab42x18[_0x7829[48]]()[_0x7829[45]](function(){logger[_0x7829[24]](_0x7829[22],_0xab42x17,_0xab42x16,_0x7829[47]);logger[_0x7829[26]](_0x7829[25],_0xab42x17,_0xab42x16,_0x7829[47],JSON[_0x7829[31]](_0xab42x18));_0xab42x15[_0x7829[29]](204)[_0x7829[28]]()})}}}function handleEntityNotFound(_0xab42x15,_0xab42x16,_0xab42x17){return function(_0xab42x18){if(!_0xab42x18){logger[_0x7829[50]](_0x7829[22],_0xab42x17,404,_0x7829[49]);_0xab42x15[_0x7829[29]](404)[_0x7829[28]]();return null};return _0xab42x18}}function handleError(_0xab42x15,_0xab42x16,_0xab42x17){_0xab42x16= _0xab42x16|| 500;return function(_0xab42x27){logger[_0x7829[50]](_0x7829[22],_0xab42x17,_0xab42x16,JSON[_0x7829[31]](_0xab42x27));delete _0xab42x27[_0x7829[51]];_0xab42x15[_0x7829[29]](_0xab42x16)[_0x7829[52]](_0xab42x27)}}exports[_0x7829[53]]= function(_0xab42x28,_0xab42x15){var _0xab42x1b={},_0xab42x29={};_0xab42x29[_0x7829[54]]= _[_0x7829[57]](db[_0x7829[56]][_0x7829[55]]);_0xab42x29[_0x7829[58]]= _[_0x7829[57]](_0xab42x28[_0x7829[58]]);_0xab42x29[_0x7829[59]]= _[_0x7829[60]](_0xab42x29[_0x7829[54]],_0xab42x29[_0x7829[58]]);_0xab42x1b[_0x7829[61]]= _[_0x7829[60]](_0xab42x29[_0x7829[54]],qs[_0x7829[62]](_0xab42x28[_0x7829[58]][_0x7829[62]]));_0xab42x1b[_0x7829[61]]= (_0xab42x1b[_0x7829[61]][_0x7829[63]])?_0xab42x1b[_0x7829[61]]:_0xab42x29[_0x7829[54]];if(!_0xab42x28[_0x7829[58]][_0x7829[65]](_0x7829[64])){_0xab42x1b[_0x7829[35]]= qs[_0x7829[35]](_0xab42x28[_0x7829[58]][_0x7829[35]]);_0xab42x1b[_0x7829[34]]= qs[_0x7829[34]](_0xab42x28[_0x7829[58]][_0x7829[34]])};_0xab42x1b[_0x7829[66]]= qs[_0x7829[67]](_0xab42x28[_0x7829[58]][_0x7829[67]]);_0xab42x1b[_0x7829[68]]= qs[_0x7829[59]](_[_0x7829[69]](_0xab42x28[_0x7829[58]],_0xab42x29[_0x7829[59]]));if(_0xab42x28[_0x7829[58]][_0x7829[70]]){_0xab42x1b[_0x7829[68]]= _[_0x7829[73]](_0xab42x1b[_0x7829[68]],{$or:_[_0x7829[72]](_0xab42x1b[_0x7829[61]],function(_0xab42x2a){var _0xab42x2b={};_0xab42x2b[_0xab42x2a]= {$like:_0x7829[71]+ _0xab42x28[_0x7829[58]][_0x7829[70]]+ _0x7829[71]};return _0xab42x2b})})};_0xab42x1b= _[_0x7829[73]]({},_0xab42x1b,_0xab42x28[_0x7829[74]]);return db[_0x7829[56]][_0x7829[76]](_0xab42x1b)[_0x7829[45]](respondWithFilteredResult(_0xab42x15,_0xab42x1b,_0x7829[53]))[_0x7829[75]](handleError(_0xab42x15,null,_0x7829[53]))};exports[_0x7829[77]]= function(_0xab42x28,_0xab42x15){var _0xab42x1b={raw:false,where:{id:_0xab42x28[_0x7829[79]][_0x7829[78]]}},_0xab42x29={};_0xab42x29[_0x7829[54]]= _[_0x7829[57]](db[_0x7829[56]][_0x7829[55]]);_0xab42x29[_0x7829[58]]= _[_0x7829[57]](_0xab42x28[_0x7829[58]]);_0xab42x29[_0x7829[59]]= _[_0x7829[60]](_0xab42x29[_0x7829[54]],_0xab42x29[_0x7829[58]]);_0xab42x1b[_0x7829[61]]= _[_0x7829[60]](_0xab42x29[_0x7829[54]],qs[_0x7829[62]](_0xab42x28[_0x7829[58]][_0x7829[62]]));_0xab42x1b[_0x7829[61]]= (_0xab42x1b[_0x7829[61]][_0x7829[63]])?_0xab42x1b[_0x7829[61]]:_0xab42x29[_0x7829[54]];_0xab42x1b= _[_0x7829[73]]({},_0xab42x1b,_0xab42x28[_0x7829[74]]);return db[_0x7829[56]][_0x7829[80]](_0xab42x1b)[_0x7829[45]](handleEntityNotFound(_0xab42x15,null,_0x7829[77]))[_0x7829[45]](respondWithResult(_0xab42x15,null,_0x7829[77]))[_0x7829[75]](handleError(_0xab42x15,null,_0x7829[77]))};exports[_0x7829[81]]= function(_0xab42x28,_0xab42x15){return db[_0x7829[56]][_0x7829[81]](_0xab42x28[_0x7829[82]],{})[_0x7829[45]](respondWithResult(_0xab42x15,201,_0x7829[81]))[_0x7829[75]](handleError(_0xab42x15,null,_0x7829[81]))};exports[_0x7829[46]]= function(_0xab42x28,_0xab42x15){if(_0xab42x28[_0x7829[82]][_0x7829[78]]){delete _0xab42x28[_0x7829[82]][_0x7829[78]]};return db[_0x7829[56]][_0x7829[80]]({where:{id:_0xab42x28[_0x7829[79]][_0x7829[78]]}})[_0x7829[45]](handleEntityNotFound(_0xab42x15,null,_0x7829[46]))[_0x7829[45]](saveUpdates(_0xab42x28[_0x7829[82]],null,_0x7829[46]))[_0x7829[45]](respondWithResult(_0xab42x15,null,_0x7829[46]))[_0x7829[75]](handleError(_0xab42x15,null,_0x7829[46]))};exports[_0x7829[48]]= function(_0xab42x28,_0xab42x15){return db[_0x7829[56]][_0x7829[80]]({where:{id:_0xab42x28[_0x7829[79]][_0x7829[78]]}})[_0x7829[45]](handleEntityNotFound(_0xab42x15,null,_0x7829[48]))[_0x7829[45]](removeEntity(_0xab42x15,null,_0x7829[48]))[_0x7829[75]](handleError(_0xab42x15,null,_0x7829[48]))};exports[_0x7829[83]]= function(_0xab42x28,_0xab42x15){return db[_0x7829[56]][_0x7829[83]]()[_0x7829[45]](respondWithResult(_0xab42x15,null,_0x7829[83]))[_0x7829[75]](handleError(_0xab42x15,null,_0x7829[83]))}
\ No newline at end of file
diff --git a/server/api/faxSessionReport/faxSessionReport.model.js b/server/api/faxSessionReport/faxSessionReport.model.js
new file mode 100644 (file)
index 0000000..4fcf468
--- /dev/null
@@ -0,0 +1 @@
+var _0x8075=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x66\x61\x78\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0x8075[0];var _=require(_0x8075[1]);var util=require(_0x8075[2]);var logger=require(_0x8075[4])(_0x8075[3]);var attributes=require(_0x8075[5]);module[_0x8075[6]]= function(_0x2d11x5,_0x2d11x6){return _0x2d11x5[_0x8075[9]](_0x8075[7],attributes,{tableName:_0x8075[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/faxSessionReport/faxSessionReport.rpc.js b/server/api/faxSessionReport/faxSessionReport.rpc.js
new file mode 100644 (file)
index 0000000..ae4cbb7
--- /dev/null
@@ -0,0 +1 @@
+var _0xf2da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xf2da[0];var _=require(_0xf2da[1]);var util=require(_0xf2da[2]);var moment=require(_0xf2da[3]);var BPromise=require(_0xf2da[4]);var db=require(_0xf2da[6])[_0xf2da[5]];var utils=require(_0xf2da[7]);var logger=require(_0xf2da[9])(_0xf2da[8]);var jayson=require(_0xf2da[10]);var client=jayson[_0xf2da[12]][_0xf2da[11]]({port:9002});function respondWithRpcPromise(_0x79b1xb,_0x79b1xc,_0x79b1xd){return  new BPromise(function(_0x79b1xe,_0x79b1xf){return client[_0xf2da[25]](_0x79b1xb,_0x79b1xd)[_0xf2da[24]](function(_0x79b1x11){logger[_0xf2da[17]](_0xf2da[13],_0x79b1xc,_0xf2da[16]);logger[_0xf2da[20]](_0xf2da[18],_0x79b1xc,_0xf2da[16],JSON[_0xf2da[19]](_0x79b1x11));if(_0x79b1x11[_0xf2da[14]]){if(_0x79b1x11[_0xf2da[14]][_0xf2da[21]]=== 500){logger[_0xf2da[14]](_0xf2da[13],_0x79b1xc,_0x79b1x11[_0xf2da[14]][_0xf2da[22]]);return _0x79b1xf(_0x79b1x11[_0xf2da[14]][_0xf2da[22]])};logger[_0xf2da[14]](_0xf2da[13],_0x79b1xc,_0x79b1x11[_0xf2da[14]][_0xf2da[22]]);return _0x79b1xe(_0x79b1x11[_0xf2da[14]][_0xf2da[22]])}else {logger[_0xf2da[17]](_0xf2da[13],_0x79b1xc,_0xf2da[16]);_0x79b1xe(_0x79b1x11[_0xf2da[23]][_0xf2da[22]])}})[_0xf2da[15]](function(_0x79b1x10){logger[_0xf2da[14]](_0xf2da[13],_0x79b1xc,_0x79b1x10);_0x79b1xf(_0x79b1x10)})})}
\ No newline at end of file
diff --git a/server/api/faxSessionReport/index.js b/server/api/faxSessionReport/index.js
new file mode 100644 (file)
index 0000000..ed6ff80
--- /dev/null
@@ -0,0 +1 @@
+var _0xeccc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xeccc[0];var multer=require(_0xeccc[1]);var util=require(_0xeccc[2]);var path=require(_0xeccc[3]);var express=require(_0xeccc[4]);var router=express.Router();var auth=require(_0xeccc[5]);var config=require(_0xeccc[6]);var controller=require(_0xeccc[7]);router[_0xeccc[11]](_0xeccc[8],auth[_0xeccc[9]](),controller[_0xeccc[10]]);router[_0xeccc[11]](_0xeccc[12],auth[_0xeccc[9]](),controller[_0xeccc[13]]);router[_0xeccc[11]](_0xeccc[14],auth[_0xeccc[9]](),controller[_0xeccc[15]]);router[_0xeccc[17]](_0xeccc[8],auth[_0xeccc[9]](),controller[_0xeccc[16]]);router[_0xeccc[19]](_0xeccc[14],auth[_0xeccc[9]](),controller[_0xeccc[18]]);router[_0xeccc[21]](_0xeccc[14],auth[_0xeccc[9]](),controller[_0xeccc[20]]);module[_0xeccc[22]]= router
\ No newline at end of file
diff --git a/server/api/intFreshdeskAccount/index.js b/server/api/intFreshdeskAccount/index.js
new file mode 100644 (file)
index 0000000..dabfcbf
--- /dev/null
@@ -0,0 +1 @@
+var _0x7b01=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7b01[0];var multer=require(_0x7b01[1]);var util=require(_0x7b01[2]);var path=require(_0x7b01[3]);var express=require(_0x7b01[4]);var router=express.Router();var auth=require(_0x7b01[5]);var config=require(_0x7b01[6]);var controller=require(_0x7b01[7]);router[_0x7b01[11]](_0x7b01[8],auth[_0x7b01[9]](),controller[_0x7b01[10]]);router[_0x7b01[11]](_0x7b01[12],auth[_0x7b01[9]](),controller[_0x7b01[13]]);router[_0x7b01[11]](_0x7b01[14],auth[_0x7b01[9]](),controller[_0x7b01[15]]);router[_0x7b01[11]](_0x7b01[16],auth[_0x7b01[9]](),controller[_0x7b01[17]]);router[_0x7b01[19]](_0x7b01[8],auth[_0x7b01[9]](),controller[_0x7b01[18]]);router[_0x7b01[19]](_0x7b01[14],auth[_0x7b01[9]](),controller[_0x7b01[20]]);router[_0x7b01[22]](_0x7b01[12],auth[_0x7b01[9]](),controller[_0x7b01[21]]);router[_0x7b01[24]](_0x7b01[12],auth[_0x7b01[9]](),controller[_0x7b01[23]]);module[_0x7b01[25]]= router
\ No newline at end of file
diff --git a/server/api/intFreshdeskAccount/intFreshdeskAccount.attributes.js b/server/api/intFreshdeskAccount/intFreshdeskAccount.attributes.js
new file mode 100644 (file)
index 0000000..a08e50f
--- /dev/null
@@ -0,0 +1 @@
+var _0x32c0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69"];_0x32c0[0];var Sequelize=require(_0x32c0[1]);module[_0x32c0[2]]= {name:{type:Sequelize[_0x32c0[3]]},description:{type:Sequelize[_0x32c0[3]]},username:{type:Sequelize[_0x32c0[3]],unique:_0x32c0[4]},apiKey:{type:Sequelize[_0x32c0[3]]},remoteUri:{type:Sequelize[_0x32c0[3]],unique:_0x32c0[5]},serverUrl:{type:Sequelize[_0x32c0[3]]}}
\ No newline at end of file
diff --git a/server/api/intFreshdeskAccount/intFreshdeskAccount.controller.js b/server/api/intFreshdeskAccount/intFreshdeskAccount.controller.js
new file mode 100644 (file)
index 0000000..5b38917
--- /dev/null
@@ -0,0 +1 @@
+var _0x4064=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x79\x70\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x72\x65\x71\x75\x65\x73\x74\x65\x72","\x73\x75\x62\x6A\x65\x63\x74","\x61\x67\x65\x6E\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x67\x72\x6F\x75\x70","\x73\x6F\x75\x72\x63\x65","\x74\x69\x63\x6B\x65\x74\x5F\x74\x79\x70\x65","\x63\x6F\x6D\x70\x61\x6E\x79","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x6C\x61\x62\x65\x6C","\x64\x65\x66\x61\x75\x6C\x74","\x63\x68\x6F\x69\x63\x65\x73","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","\x47\x45\x54","\x25\x73\x25\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x70\x69\x2F\x76\x32\x2F\x74\x69\x63\x6B\x65\x74\x5F\x66\x69\x65\x6C\x64\x73","\x66\x6F\x72\x6D\x61\x74","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x25\x73\x3A\x58","\x61\x70\x69\x4B\x65\x79"];_0x4064[0];var jsonpatch=require(_0x4064[1]);var rp=require(_0x4064[2]);var moment=require(_0x4064[3]);var BPromise=require(_0x4064[4]);var util=require(_0x4064[5]);var path=require(_0x4064[6]);var sox=require(_0x4064[7]);var ejs=require(_0x4064[8]);var fs=require(_0x4064[9]);var _=require(_0x4064[10]);var squel=require(_0x4064[11]);var crypto=require(_0x4064[12]);var jsforce=require(_0x4064[13]);var toCsv=require(_0x4064[14]);var qs=require(_0x4064[15]);var logger=require(_0x4064[17])(_0x4064[16]);var utils=require(_0x4064[18]);var config=require(_0x4064[19]);var db=require(_0x4064[21])[_0x4064[20]];var integrations=require(_0x4064[22]);var jayson=require(_0x4064[23]);var client=jayson[_0x4064[25]][_0x4064[24]]({port:9002});function respondWithRpcPromise(_0x5e03x18,_0x5e03x19,_0x5e03x1a){return  new BPromise(function(_0x5e03x1b,_0x5e03x1c){return client[_0x4064[38]](_0x5e03x18,_0x5e03x1a)[_0x4064[37]](function(_0x5e03x1e){logger[_0x4064[30]](_0x4064[26],_0x5e03x19,_0x4064[29]);logger[_0x4064[33]](_0x4064[31],_0x5e03x19,_0x4064[29],JSON[_0x4064[32]](_0x5e03x1e));if(_0x5e03x1e[_0x4064[27]]){if(_0x5e03x1e[_0x4064[27]][_0x4064[34]]=== 500){logger[_0x4064[27]](_0x4064[26],_0x5e03x19,_0x5e03x1e[_0x4064[27]][_0x4064[35]]);return _0x5e03x1c(_0x5e03x1e[_0x4064[27]][_0x4064[35]])};logger[_0x4064[27]](_0x4064[26],_0x5e03x19,_0x5e03x1e[_0x4064[27]][_0x4064[35]]);return _0x5e03x1b(_0x5e03x1e[_0x4064[27]][_0x4064[35]])}else {logger[_0x4064[30]](_0x4064[26],_0x5e03x19,_0x4064[29]);_0x5e03x1b(_0x5e03x1e[_0x4064[36]][_0x4064[35]])}})[_0x4064[28]](function(_0x5e03x1d){logger[_0x4064[27]](_0x4064[26],_0x5e03x19,_0x5e03x1d);_0x5e03x1c(_0x5e03x1d)})})}function respondWithStatusCode(_0x5e03x1e,_0x5e03x20,_0x5e03x19){_0x5e03x20= _0x5e03x20|| 204;return function(_0x5e03x21){if(_0x5e03x21){logger[_0x4064[30]](_0x4064[31],_0x5e03x19,_0x5e03x20,_0x4064[39]);logger[_0x4064[33]](_0x4064[40],_0x5e03x19,_0x5e03x20,_0x4064[39]);return _0x5e03x1e[_0x4064[41]](_0x5e03x20)};return _0x5e03x1e[_0x4064[43]](304)[_0x4064[42]]()}}function respondWithResult(_0x5e03x1e,_0x5e03x20,_0x5e03x19){_0x5e03x20= _0x5e03x20|| 200;return function(_0x5e03x21){if(_0x5e03x21){logger[_0x4064[30]](_0x4064[31],_0x5e03x19,_0x5e03x20,_0x4064[44]);logger[_0x4064[33]](_0x4064[40],_0x5e03x19,_0x5e03x20,_0x4064[44],JSON[_0x4064[32]](_0x5e03x21));return _0x5e03x1e[_0x4064[43]](_0x5e03x20)[_0x4064[45]](_0x5e03x21)};return _0x5e03x1e[_0x4064[43]](304)[_0x4064[42]]()}}function respondWithFilteredResult(_0x5e03x1e,_0x5e03x24,_0x5e03x19){return function(_0x5e03x21){if(_0x5e03x21){var _0x5e03x25=_0x5e03x21[_0x4064[46]],_0x5e03x26=_0x5e03x24[_0x4064[47]],_0x5e03x27=_0x5e03x24[_0x4064[47]]+ _0x5e03x24[_0x4064[48]],_0x5e03x20;if(_0x5e03x27>= _0x5e03x25){_0x5e03x27= _0x5e03x25;_0x5e03x20= 200}else {_0x5e03x20= 206};_0x5e03x1e[_0x4064[43]](_0x5e03x20);logger[_0x4064[30]](_0x4064[31],_0x5e03x19,_0x5e03x20,_0x4064[49]);logger[_0x4064[33]](_0x4064[40],_0x5e03x19,_0x5e03x20,_0x4064[44],JSON[_0x4064[32]](_0x5e03x21));return _0x5e03x1e[_0x4064[53]](_0x4064[50],_0x5e03x26+ _0x4064[51]+ _0x5e03x27+ _0x4064[52]+ _0x5e03x25)[_0x4064[45]](_0x5e03x21)};return null}}function patchUpdates(_0x5e03x29){return function(_0x5e03x21){try{jsonpatch[_0x4064[54]](_0x5e03x21,_0x5e03x29,true)}catch(err){return BPromise[_0x4064[55]](err)};return _0x5e03x21[_0x4064[56]]()}}function saveUpdates(_0x5e03x2b,_0x5e03x20,_0x5e03x19){return function(_0x5e03x21){if(_0x5e03x21){return _0x5e03x21[_0x4064[58]](_0x5e03x2b)[_0x4064[37]](function(_0x5e03x2c){logger[_0x4064[30]](_0x4064[31],_0x5e03x19,_0x5e03x20,_0x4064[57]);logger[_0x4064[33]](_0x4064[40],_0x5e03x19,_0x5e03x20,_0x4064[57],JSON[_0x4064[32]](_0x5e03x21));return _0x5e03x2c})};return null}}function removeEntity(_0x5e03x1e,_0x5e03x20,_0x5e03x19){return function(_0x5e03x21){if(_0x5e03x21){return _0x5e03x21[_0x4064[60]]()[_0x4064[37]](function(){logger[_0x4064[30]](_0x4064[31],_0x5e03x19,_0x5e03x20,_0x4064[59]);logger[_0x4064[33]](_0x4064[40],_0x5e03x19,_0x5e03x20,_0x4064[59],JSON[_0x4064[32]](_0x5e03x21));_0x5e03x1e[_0x4064[43]](204)[_0x4064[42]]()})}}}function handleEntityNotFound(_0x5e03x1e,_0x5e03x20,_0x5e03x19){return function(_0x5e03x21){if(!_0x5e03x21){logger[_0x4064[27]](_0x4064[31],_0x5e03x19,404,_0x4064[61]);_0x5e03x1e[_0x4064[43]](404)[_0x4064[42]]();return null};return _0x5e03x21}}function handleError(_0x5e03x1e,_0x5e03x20,_0x5e03x19){_0x5e03x20= _0x5e03x20|| 500;return function(_0x5e03x1d){logger[_0x4064[27]](_0x4064[31],_0x5e03x19,_0x5e03x20,JSON[_0x4064[32]](_0x5e03x1d));delete _0x5e03x1d[_0x4064[62]];_0x5e03x1e[_0x4064[43]](_0x5e03x20)[_0x4064[63]](_0x5e03x1d)}}exports[_0x4064[64]]= function(_0x5e03x1a,_0x5e03x1e){var _0x5e03x24={},_0x5e03x30={};_0x5e03x30[_0x4064[65]]= _[_0x4064[68]](db[_0x4064[67]][_0x4064[66]]);_0x5e03x30[_0x4064[69]]= _[_0x4064[68]](_0x5e03x1a[_0x4064[69]]);_0x5e03x30[_0x4064[70]]= _[_0x4064[71]](_0x5e03x30[_0x4064[65]],_0x5e03x30[_0x4064[69]]);_0x5e03x24[_0x4064[72]]= _[_0x4064[71]](_0x5e03x30[_0x4064[65]],qs[_0x4064[73]](_0x5e03x1a[_0x4064[69]][_0x4064[73]]));_0x5e03x24[_0x4064[72]]= (_0x5e03x24[_0x4064[72]][_0x4064[74]])?_0x5e03x24[_0x4064[72]]:_0x5e03x30[_0x4064[65]];if(!_0x5e03x1a[_0x4064[69]][_0x4064[76]](_0x4064[75])){_0x5e03x24[_0x4064[48]]= qs[_0x4064[48]](_0x5e03x1a[_0x4064[69]][_0x4064[48]]);_0x5e03x24[_0x4064[47]]= qs[_0x4064[47]](_0x5e03x1a[_0x4064[69]][_0x4064[47]])};_0x5e03x24[_0x4064[77]]= qs[_0x4064[78]](_0x5e03x1a[_0x4064[69]][_0x4064[78]]);_0x5e03x24[_0x4064[79]]= qs[_0x4064[70]](_[_0x4064[80]](_0x5e03x1a[_0x4064[69]],_0x5e03x30[_0x4064[70]]));if(_0x5e03x1a[_0x4064[69]][_0x4064[81]]){_0x5e03x24[_0x4064[79]]= _[_0x4064[84]](_0x5e03x24[_0x4064[79]],{$or:_[_0x4064[83]](_0x5e03x24[_0x4064[72]],function(_0x5e03x31){var _0x5e03x32={};_0x5e03x32[_0x5e03x31]= {$like:_0x4064[82]+ _0x5e03x1a[_0x4064[69]][_0x4064[81]]+ _0x4064[82]};return _0x5e03x32})})};_0x5e03x24= _[_0x4064[84]]({},_0x5e03x24,_0x5e03x1a[_0x4064[85]]);return db[_0x4064[67]][_0x4064[86]](_0x5e03x24)[_0x4064[37]](respondWithFilteredResult(_0x5e03x1e,_0x5e03x24,_0x4064[64]))[_0x4064[28]](handleError(_0x5e03x1e,null,_0x4064[64]))};exports[_0x4064[87]]= function(_0x5e03x1a,_0x5e03x1e){var _0x5e03x24={raw:false,where:{id:_0x5e03x1a[_0x4064[89]][_0x4064[88]]}},_0x5e03x30={};_0x5e03x30[_0x4064[65]]= _[_0x4064[68]](db[_0x4064[67]][_0x4064[66]]);_0x5e03x30[_0x4064[69]]= _[_0x4064[68]](_0x5e03x1a[_0x4064[69]]);_0x5e03x30[_0x4064[70]]= _[_0x4064[71]](_0x5e03x30[_0x4064[65]],_0x5e03x30[_0x4064[69]]);_0x5e03x24[_0x4064[72]]= _[_0x4064[71]](_0x5e03x30[_0x4064[65]],qs[_0x4064[73]](_0x5e03x1a[_0x4064[69]][_0x4064[73]]));_0x5e03x24[_0x4064[72]]= (_0x5e03x24[_0x4064[72]][_0x4064[74]])?_0x5e03x24[_0x4064[72]]:_0x5e03x30[_0x4064[65]];_0x5e03x24= _[_0x4064[84]]({},_0x5e03x24,_0x5e03x1a[_0x4064[85]]);return db[_0x4064[67]][_0x4064[90]](_0x5e03x24)[_0x4064[37]](handleEntityNotFound(_0x5e03x1e,null,_0x4064[87]))[_0x4064[37]](respondWithResult(_0x5e03x1e,null,_0x4064[87]))[_0x4064[28]](handleError(_0x5e03x1e,null,_0x4064[87]))};exports[_0x4064[91]]= function(_0x5e03x1a,_0x5e03x1e){return db[_0x4064[67]][_0x4064[91]](_0x5e03x1a[_0x4064[92]],{})[_0x4064[37]](respondWithResult(_0x5e03x1e,201,_0x4064[91]))[_0x4064[28]](handleError(_0x5e03x1e,null,_0x4064[91]))};exports[_0x4064[58]]= function(_0x5e03x1a,_0x5e03x1e){if(_0x5e03x1a[_0x4064[92]][_0x4064[88]]){delete _0x5e03x1a[_0x4064[92]][_0x4064[88]]};return db[_0x4064[67]][_0x4064[90]]({where:{id:_0x5e03x1a[_0x4064[89]][_0x4064[88]]}})[_0x4064[37]](handleEntityNotFound(_0x5e03x1e,null,_0x4064[58]))[_0x4064[37]](saveUpdates(_0x5e03x1a[_0x4064[92]],null,_0x4064[58]))[_0x4064[37]](respondWithResult(_0x5e03x1e,null,_0x4064[58]))[_0x4064[28]](handleError(_0x5e03x1e,null,_0x4064[58]))};exports[_0x4064[60]]= function(_0x5e03x1a,_0x5e03x1e){return db[_0x4064[67]][_0x4064[90]]({where:{id:_0x5e03x1a[_0x4064[89]][_0x4064[88]]}})[_0x4064[37]](handleEntityNotFound(_0x5e03x1e,null,_0x4064[60]))[_0x4064[37]](removeEntity(_0x5e03x1e,null,_0x4064[60]))[_0x4064[28]](handleError(_0x5e03x1e,null,_0x4064[60]))};exports[_0x4064[93]]= function(_0x5e03x1a,_0x5e03x21,_0x5e03x33){var _0x5e03x24={};var _0x5e03x30={};var _0x5e03x34;var _0x5e03x25;return db[_0x4064[67]][_0x4064[95]]({where:{id:_0x5e03x1a[_0x4064[89]][_0x4064[88]]}})[_0x4064[37]](handleEntityNotFound(_0x5e03x21,null,_0x4064[93]))[_0x4064[37]](function(_0x5e03x21){if(_0x5e03x21){_0x5e03x34= _0x5e03x21;_0x5e03x30[_0x4064[65]]= _[_0x4064[68]](db[_0x4064[94]][_0x4064[66]]);_0x5e03x30[_0x4064[69]]= _[_0x4064[68]](_0x5e03x1a[_0x4064[69]]);_0x5e03x30[_0x4064[70]]= _[_0x4064[71]](_0x5e03x30[_0x4064[65]],_0x5e03x30[_0x4064[69]]);_0x5e03x24[_0x4064[72]]= _[_0x4064[71]](_0x5e03x30[_0x4064[65]],qs[_0x4064[73]](_0x5e03x1a[_0x4064[69]][_0x4064[73]]));_0x5e03x24[_0x4064[72]]= (_0x5e03x24[_0x4064[72]][_0x4064[74]])?_0x5e03x24[_0x4064[72]]:_0x5e03x30[_0x4064[65]];_0x5e03x24[_0x4064[77]]= qs[_0x4064[78]](_0x5e03x1a[_0x4064[69]][_0x4064[78]]);_0x5e03x24[_0x4064[79]]= qs[_0x4064[70]](_[_0x4064[80]](_0x5e03x1a[_0x4064[69]],_0x5e03x30[_0x4064[70]]));if(_0x5e03x1a[_0x4064[69]][_0x4064[81]]){_0x5e03x24[_0x4064[79]]= _[_0x4064[84]](_0x5e03x24[_0x4064[79]],{$or:_[_0x4064[83]](_0x5e03x24[_0x4064[72]],function(_0x5e03x31){var _0x5e03x32={};_0x5e03x32[_0x5e03x31]= {$like:_0x4064[82]+ _0x5e03x1a[_0x4064[69]][_0x4064[81]]+ _0x4064[82]};return _0x5e03x32})})};_0x5e03x24= _[_0x4064[84]]({},_0x5e03x24,_0x5e03x1a[_0x4064[85]]);return _0x5e03x34[_0x4064[93]](_0x5e03x24)}})[_0x4064[37]](function(_0x5e03x36){if(_0x5e03x36){_0x5e03x25= _0x5e03x36[_0x4064[74]];if(!_0x5e03x1a[_0x4064[69]][_0x4064[76]](_0x4064[75])){_0x5e03x24[_0x4064[48]]= qs[_0x4064[48]](_0x5e03x1a[_0x4064[69]][_0x4064[48]]);_0x5e03x24[_0x4064[47]]= qs[_0x4064[47]](_0x5e03x1a[_0x4064[69]][_0x4064[47]])};return _0x5e03x34[_0x4064[93]](_0x5e03x24)}})[_0x4064[37]](function(_0x5e03x35){return _0x5e03x35?{count:_0x5e03x25,rows:_0x5e03x35}:null})[_0x4064[37]](respondWithResult(_0x5e03x21,null,_0x4064[93]))[_0x4064[28]](handleError(_0x5e03x21,null,_0x4064[93]))};exports[_0x4064[96]]= function(_0x5e03x1a,_0x5e03x1e,_0x5e03x33){if(_0x5e03x1a[_0x4064[92]][_0x4064[88]]){delete _0x5e03x1a[_0x4064[92]][_0x4064[88]]};return db[_0x4064[67]][_0x4064[95]]({where:{id:_0x5e03x1a[_0x4064[89]][_0x4064[88]]}})[_0x4064[37]](handleEntityNotFound(_0x5e03x1e,null,_0x4064[96]))[_0x4064[37]](function(_0x5e03x21){if(_0x5e03x21){_0x5e03x1a[_0x4064[92]][_0x4064[97]]= _0x5e03x21[_0x4064[88]];_0x5e03x1a[_0x4064[92]][_0x4064[98]]= integrations[_0x4064[101]](_0x5e03x1a[_0x4064[92]][_0x4064[99]],_0x5e03x1a[_0x4064[92]][_0x4064[100]]);_0x5e03x1a[_0x4064[92]][_0x4064[102]]= integrations[_0x4064[103]](_0x5e03x1a[_0x4064[92]][_0x4064[99]],_0x5e03x1a[_0x4064[92]][_0x4064[100]]);return db[_0x4064[94]][_0x4064[91]](_0x5e03x1a[_0x4064[92]],{include:[{model:db[_0x4064[104]],as:_0x4064[98]},{model:db[_0x4064[104]],as:_0x4064[102]}]})};return null})[_0x4064[37]](respondWithResult(_0x5e03x1e,null,_0x4064[96]))[_0x4064[28]](handleError(_0x5e03x1e,null,_0x4064[96]))};exports[_0x4064[105]]= function(_0x5e03x1a,_0x5e03x1e,_0x5e03x33){return db[_0x4064[67]][_0x4064[95]]({where:{id:_0x5e03x1a[_0x4064[89]][_0x4064[88]]},attributes:[_0x4064[88],_0x4064[123],_0x4064[129]]})[_0x4064[37]](handleEntityNotFound(_0x5e03x1e,null,_0x4064[105]))[_0x4064[37]](function(_0x5e03x21){if(_0x5e03x21){return rp({method:_0x4064[121],uri:util[_0x4064[125]](_0x4064[122],_0x5e03x21[_0x4064[123]],_0x4064[124]),headers:{Authorization:util[_0x4064[125]](_0x4064[126], new Buffer(util[_0x4064[125]](_0x4064[128],_0x5e03x21[_0x4064[129]])).toString(_0x4064[127]))},json:true})}})[_0x4064[37]](function(_0x5e03x36){if(_0x5e03x36){var _0x5e03x37=[_0x4064[106],_0x4064[107],_0x4064[108],_0x4064[109],_0x4064[43],_0x4064[110],_0x4064[111],_0x4064[112],_0x4064[113],_0x4064[111],_0x4064[114]];_[_0x4064[116]](_0x5e03x36,function(_0x5e03x38){return _0x5e03x37[_0x4064[115]](_0x5e03x38[_0x4064[62]])});return {count:_0x5e03x36[_0x4064[74]],rows:_[_0x4064[83]](_0x5e03x36,function(_0x5e03x21){return {id:_0x5e03x21[_0x4064[62]],name:_0x5e03x21[_0x4064[117]],custom:!_0x5e03x21[_0x4064[118]],options:_0x5e03x21[_0x4064[119]]?_[_0x4064[83]](_0x5e03x21[_0x4064[119]],function(_0x5e03x39){return {name:_[_0x4064[120]](_0x5e03x39),value:_0x5e03x39}}):[]}})}}})[_0x4064[37]](respondWithResult(_0x5e03x1e,null,_0x4064[105]))[_0x4064[28]](handleError(_0x5e03x1e,null,_0x4064[105]))}
\ No newline at end of file
diff --git a/server/api/intFreshdeskAccount/intFreshdeskAccount.model.js b/server/api/intFreshdeskAccount/intFreshdeskAccount.model.js
new file mode 100644 (file)
index 0000000..589c8de
--- /dev/null
@@ -0,0 +1 @@
+var _0xe1dd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x69\x6E\x74\x5F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xe1dd[0];var _=require(_0xe1dd[1]);var util=require(_0xe1dd[2]);var logger=require(_0xe1dd[4])(_0xe1dd[3]);var attributes=require(_0xe1dd[5]);var integrations=require(_0xe1dd[6]);module[_0xe1dd[7]]= function(_0x23eex6,_0x23eex7){return _0x23eex6[_0xe1dd[10]](_0xe1dd[8],attributes,{tableName:_0xe1dd[9],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/intFreshdeskAccount/intFreshdeskAccount.rpc.js b/server/api/intFreshdeskAccount/intFreshdeskAccount.rpc.js
new file mode 100644 (file)
index 0000000..d1f8760
--- /dev/null
@@ -0,0 +1 @@
+var _0x4b2d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x68\x6F\x77\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64"];_0x4b2d[0];var _=require(_0x4b2d[1]);var util=require(_0x4b2d[2]);var moment=require(_0x4b2d[3]);var BPromise=require(_0x4b2d[4]);var db=require(_0x4b2d[6])[_0x4b2d[5]];var utils=require(_0x4b2d[7]);var logger=require(_0x4b2d[9])(_0x4b2d[8]);var jayson=require(_0x4b2d[10]);var client=jayson[_0x4b2d[12]][_0x4b2d[11]]({port:9002});function respondWithRpcPromise(_0x9abexb,_0x9abexc,_0x9abexd){return  new BPromise(function(_0x9abexe,_0x9abexf){return client[_0x4b2d[25]](_0x9abexb,_0x9abexd)[_0x4b2d[24]](function(_0x9abex11){logger[_0x4b2d[17]](_0x4b2d[13],_0x9abexc,_0x4b2d[16]);logger[_0x4b2d[20]](_0x4b2d[18],_0x9abexc,_0x4b2d[16],JSON[_0x4b2d[19]](_0x9abex11));if(_0x9abex11[_0x4b2d[14]]){if(_0x9abex11[_0x4b2d[14]][_0x4b2d[21]]=== 500){logger[_0x4b2d[14]](_0x4b2d[13],_0x9abexc,_0x9abex11[_0x4b2d[14]][_0x4b2d[22]]);return _0x9abexf(_0x9abex11[_0x4b2d[14]][_0x4b2d[22]])};logger[_0x4b2d[14]](_0x4b2d[13],_0x9abexc,_0x9abex11[_0x4b2d[14]][_0x4b2d[22]]);return _0x9abexe(_0x9abex11[_0x4b2d[14]][_0x4b2d[22]])}else {logger[_0x4b2d[17]](_0x4b2d[13],_0x9abexc,_0x4b2d[16]);_0x9abexe(_0x9abex11[_0x4b2d[23]][_0x4b2d[22]])}})[_0x4b2d[15]](function(_0x9abex10){logger[_0x4b2d[14]](_0x4b2d[13],_0x9abexc,_0x9abex10);_0x9abexf(_0x9abex10)})})}exports[_0x4b2d[26]]= function(_0x9abexd){var _0x9abex12=this;return  new Promise(function(_0x9abexe,_0x9abexf){return db[_0x4b2d[37]][_0x4b2d[36]]({raw:_0x9abexd[_0x4b2d[27]]?(_0x9abexd[_0x4b2d[27]][_0x4b2d[28]]=== undefined)?true:false:true,where:_0x9abexd[_0x4b2d[27]]?_0x9abexd[_0x4b2d[27]][_0x4b2d[29]]|| null:null,attributes:_0x9abexd[_0x4b2d[27]]?_0x9abexd[_0x4b2d[27]][_0x4b2d[30]]|| null:null,limit:_0x9abexd[_0x4b2d[27]]?_0x9abexd[_0x4b2d[27]][_0x4b2d[31]]|| null:null,include:_0x9abexd[_0x4b2d[27]]?(_0x9abexd[_0x4b2d[27]][_0x4b2d[32]]?_[_0x4b2d[35]](_0x9abexd[_0x4b2d[27]][_0x4b2d[32]],function(_0x9abex13){return {model:db[_0x9abex13[_0x4b2d[33]]],as:_0x9abex13[_0x4b2d[34]],attributes:_0x9abex13[_0x4b2d[30]],include:_0x9abex13[_0x4b2d[32]]?_[_0x4b2d[35]](_0x9abex13[_0x4b2d[32]],function(_0x9abex14){return {model:db[_0x9abex14[_0x4b2d[33]]],as:_0x9abex14[_0x4b2d[34]],attributes:_0x9abex14[_0x4b2d[30]],include:_0x9abex14[_0x4b2d[32]]?_[_0x4b2d[35]](_0x9abex14[_0x4b2d[32]],function(_0x9abex15){return {model:db[_0x9abex15[_0x4b2d[33]]],as:_0x9abex15[_0x4b2d[34]],attributes:_0x9abex15[_0x4b2d[30]]}}):[]}}):[]}}):[]):[]})[_0x4b2d[24]](function(_0x9abex11){logger[_0x4b2d[17]](_0x4b2d[26],_0x9abexd);logger[_0x4b2d[20]](_0x4b2d[26],_0x9abexd,JSON[_0x4b2d[19]](_0x9abex11));_0x9abexe(_0x9abex11)})[_0x4b2d[15]](function(_0x9abex10){logger[_0x4b2d[14]](_0x4b2d[26],_0x9abex10[_0x4b2d[22]],_0x9abexd);_0x9abexf(_0x9abex12[_0x4b2d[14]](500,_0x9abex10[_0x4b2d[22]]))})})};exports[_0x4b2d[38]]= function(_0x9abexd){var _0x9abex12=this;return  new Promise(function(_0x9abexe,_0x9abexf){return db[_0x4b2d[37]][_0x4b2d[39]]({raw:_0x9abexd[_0x4b2d[27]]?(_0x9abexd[_0x4b2d[27]][_0x4b2d[28]]=== undefined)?true:false:true,where:_0x9abexd[_0x4b2d[27]]?_0x9abexd[_0x4b2d[27]][_0x4b2d[29]]|| null:null,attributes:_0x9abexd[_0x4b2d[27]]?_0x9abexd[_0x4b2d[27]][_0x4b2d[30]]|| null:null,include:_0x9abexd[_0x4b2d[27]]?(_0x9abexd[_0x4b2d[27]][_0x4b2d[32]]?_[_0x4b2d[35]](_0x9abexd[_0x4b2d[27]][_0x4b2d[32]],function(_0x9abex13){return {model:db[_0x9abex13[_0x4b2d[33]]],as:_0x9abex13[_0x4b2d[34]],attributes:_0x9abex13[_0x4b2d[30]],include:_0x9abex13[_0x4b2d[32]]?_[_0x4b2d[35]](_0x9abex13[_0x4b2d[32]],function(_0x9abex14){return {model:db[_0x9abex14[_0x4b2d[33]]],as:_0x9abex14[_0x4b2d[34]],attributes:_0x9abex14[_0x4b2d[30]],include:_0x9abex14[_0x4b2d[32]]?_[_0x4b2d[35]](_0x9abex14[_0x4b2d[32]],function(_0x9abex15){return {model:db[_0x9abex15[_0x4b2d[33]]],as:_0x9abex15[_0x4b2d[34]],attributes:_0x9abex15[_0x4b2d[30]]}}):[]}}):[]}}):[]):[]})[_0x4b2d[24]](function(_0x9abex11){logger[_0x4b2d[17]](_0x4b2d[38],_0x9abexd);logger[_0x4b2d[20]](_0x4b2d[38],_0x9abexd,JSON[_0x4b2d[19]](_0x9abex11));_0x9abexe(_0x9abex11)})[_0x4b2d[15]](function(_0x9abex10){logger[_0x4b2d[14]](_0x4b2d[38],_0x9abex10[_0x4b2d[22]],_0x9abexd);_0x9abexf(_0x9abex12[_0x4b2d[14]](500,_0x9abex10[_0x4b2d[22]]))})})}
\ No newline at end of file
diff --git a/server/api/intFreshdeskConfiguration/index.js b/server/api/intFreshdeskConfiguration/index.js
new file mode 100644 (file)
index 0000000..7d79789
--- /dev/null
@@ -0,0 +1 @@
+var _0x3f37=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x74\x61\x67\x73","\x67\x65\x74\x54\x61\x67\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x73\x65\x74\x54\x61\x67\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3f37[0];var multer=require(_0x3f37[1]);var util=require(_0x3f37[2]);var path=require(_0x3f37[3]);var express=require(_0x3f37[4]);var router=express.Router();var auth=require(_0x3f37[5]);var config=require(_0x3f37[6]);var controller=require(_0x3f37[7]);router[_0x3f37[11]](_0x3f37[8],auth[_0x3f37[9]](),controller[_0x3f37[10]]);router[_0x3f37[11]](_0x3f37[12],auth[_0x3f37[9]](),controller[_0x3f37[13]]);router[_0x3f37[11]](_0x3f37[14],auth[_0x3f37[9]](),controller[_0x3f37[15]]);router[_0x3f37[11]](_0x3f37[16],auth[_0x3f37[9]](),controller[_0x3f37[17]]);router[_0x3f37[11]](_0x3f37[18],auth[_0x3f37[9]](),controller[_0x3f37[19]]);router[_0x3f37[11]](_0x3f37[20],auth[_0x3f37[9]](),controller[_0x3f37[21]]);router[_0x3f37[23]](_0x3f37[8],auth[_0x3f37[9]](),controller[_0x3f37[22]]);router[_0x3f37[23]](_0x3f37[20],auth[_0x3f37[9]](),controller[_0x3f37[24]]);router[_0x3f37[26]](_0x3f37[12],auth[_0x3f37[9]](),controller[_0x3f37[25]]);router[_0x3f37[28]](_0x3f37[12],auth[_0x3f37[9]](),controller[_0x3f37[27]]);module[_0x3f37[29]]= router
\ No newline at end of file
diff --git a/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.attributes.js b/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.attributes.js
new file mode 100644 (file)
index 0000000..5e19ee1
--- /dev/null
@@ -0,0 +1 @@
+var _0x62cb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x62cb[0];var Sequelize=require(_0x62cb[1]);module[_0x62cb[2]]= {name:{type:Sequelize[_0x62cb[3]]},description:{type:Sequelize[_0x62cb[3]]}}
\ No newline at end of file
diff --git a/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.controller.js b/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.controller.js
new file mode 100644 (file)
index 0000000..2781c83
--- /dev/null
@@ -0,0 +1 @@
+var _0x7934=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x54\x61\x67\x73","\x54\x61\x67","\x73\x65\x74\x54\x61\x67\x73","\x69\x64\x73"];_0x7934[0];var jsonpatch=require(_0x7934[1]);var rp=require(_0x7934[2]);var moment=require(_0x7934[3]);var BPromise=require(_0x7934[4]);var util=require(_0x7934[5]);var path=require(_0x7934[6]);var sox=require(_0x7934[7]);var ejs=require(_0x7934[8]);var fs=require(_0x7934[9]);var _=require(_0x7934[10]);var squel=require(_0x7934[11]);var crypto=require(_0x7934[12]);var jsforce=require(_0x7934[13]);var toCsv=require(_0x7934[14]);var qs=require(_0x7934[15]);var logger=require(_0x7934[17])(_0x7934[16]);var utils=require(_0x7934[18]);var config=require(_0x7934[19]);var db=require(_0x7934[21])[_0x7934[20]];var jayson=require(_0x7934[22]);var client=jayson[_0x7934[24]][_0x7934[23]]({port:9002});function respondWithRpcPromise(_0x900cx17,_0x900cx18,_0x900cx19){return  new BPromise(function(_0x900cx1a,_0x900cx1b){return client[_0x7934[37]](_0x900cx17,_0x900cx19)[_0x7934[36]](function(_0x900cx1d){logger[_0x7934[29]](_0x7934[25],_0x900cx18,_0x7934[28]);logger[_0x7934[32]](_0x7934[30],_0x900cx18,_0x7934[28],JSON[_0x7934[31]](_0x900cx1d));if(_0x900cx1d[_0x7934[26]]){if(_0x900cx1d[_0x7934[26]][_0x7934[33]]=== 500){logger[_0x7934[26]](_0x7934[25],_0x900cx18,_0x900cx1d[_0x7934[26]][_0x7934[34]]);return _0x900cx1b(_0x900cx1d[_0x7934[26]][_0x7934[34]])};logger[_0x7934[26]](_0x7934[25],_0x900cx18,_0x900cx1d[_0x7934[26]][_0x7934[34]]);return _0x900cx1a(_0x900cx1d[_0x7934[26]][_0x7934[34]])}else {logger[_0x7934[29]](_0x7934[25],_0x900cx18,_0x7934[28]);_0x900cx1a(_0x900cx1d[_0x7934[35]][_0x7934[34]])}})[_0x7934[27]](function(_0x900cx1c){logger[_0x7934[26]](_0x7934[25],_0x900cx18,_0x900cx1c);_0x900cx1b(_0x900cx1c)})})}function respondWithStatusCode(_0x900cx1d,_0x900cx1f,_0x900cx18){_0x900cx1f= _0x900cx1f|| 204;return function(_0x900cx20){if(_0x900cx20){logger[_0x7934[29]](_0x7934[30],_0x900cx18,_0x900cx1f,_0x7934[38]);logger[_0x7934[32]](_0x7934[39],_0x900cx18,_0x900cx1f,_0x7934[38]);return _0x900cx1d[_0x7934[40]](_0x900cx1f)};return _0x900cx1d[_0x7934[42]](304)[_0x7934[41]]()}}function respondWithResult(_0x900cx1d,_0x900cx1f,_0x900cx18){_0x900cx1f= _0x900cx1f|| 200;return function(_0x900cx20){if(_0x900cx20){logger[_0x7934[29]](_0x7934[30],_0x900cx18,_0x900cx1f,_0x7934[43]);logger[_0x7934[32]](_0x7934[39],_0x900cx18,_0x900cx1f,_0x7934[43],JSON[_0x7934[31]](_0x900cx20));return _0x900cx1d[_0x7934[42]](_0x900cx1f)[_0x7934[44]](_0x900cx20)};return _0x900cx1d[_0x7934[42]](304)[_0x7934[41]]()}}function respondWithFilteredResult(_0x900cx1d,_0x900cx23,_0x900cx18){return function(_0x900cx20){if(_0x900cx20){var _0x900cx24=_0x900cx20[_0x7934[45]],_0x900cx25=_0x900cx23[_0x7934[46]],_0x900cx26=_0x900cx23[_0x7934[46]]+ _0x900cx23[_0x7934[47]],_0x900cx1f;if(_0x900cx26>= _0x900cx24){_0x900cx26= _0x900cx24;_0x900cx1f= 200}else {_0x900cx1f= 206};_0x900cx1d[_0x7934[42]](_0x900cx1f);logger[_0x7934[29]](_0x7934[30],_0x900cx18,_0x900cx1f,_0x7934[48]);logger[_0x7934[32]](_0x7934[39],_0x900cx18,_0x900cx1f,_0x7934[43],JSON[_0x7934[31]](_0x900cx20));return _0x900cx1d[_0x7934[52]](_0x7934[49],_0x900cx25+ _0x7934[50]+ _0x900cx26+ _0x7934[51]+ _0x900cx24)[_0x7934[44]](_0x900cx20)};return null}}function patchUpdates(_0x900cx28){return function(_0x900cx20){try{jsonpatch[_0x7934[53]](_0x900cx20,_0x900cx28,true)}catch(err){return BPromise[_0x7934[54]](err)};return _0x900cx20[_0x7934[55]]()}}function saveUpdates(_0x900cx2a,_0x900cx1f,_0x900cx18){return function(_0x900cx20){if(_0x900cx20){return _0x900cx20[_0x7934[57]](_0x900cx2a)[_0x7934[36]](function(_0x900cx2b){logger[_0x7934[29]](_0x7934[30],_0x900cx18,_0x900cx1f,_0x7934[56]);logger[_0x7934[32]](_0x7934[39],_0x900cx18,_0x900cx1f,_0x7934[56],JSON[_0x7934[31]](_0x900cx20));return _0x900cx2b})};return null}}function removeEntity(_0x900cx1d,_0x900cx1f,_0x900cx18){return function(_0x900cx20){if(_0x900cx20){return _0x900cx20[_0x7934[59]]()[_0x7934[36]](function(){logger[_0x7934[29]](_0x7934[30],_0x900cx18,_0x900cx1f,_0x7934[58]);logger[_0x7934[32]](_0x7934[39],_0x900cx18,_0x900cx1f,_0x7934[58],JSON[_0x7934[31]](_0x900cx20));_0x900cx1d[_0x7934[42]](204)[_0x7934[41]]()})}}}function handleEntityNotFound(_0x900cx1d,_0x900cx1f,_0x900cx18){return function(_0x900cx20){if(!_0x900cx20){logger[_0x7934[26]](_0x7934[30],_0x900cx18,404,_0x7934[60]);_0x900cx1d[_0x7934[42]](404)[_0x7934[41]]();return null};return _0x900cx20}}function handleError(_0x900cx1d,_0x900cx1f,_0x900cx18){_0x900cx1f= _0x900cx1f|| 500;return function(_0x900cx1c){logger[_0x7934[26]](_0x7934[30],_0x900cx18,_0x900cx1f,JSON[_0x7934[31]](_0x900cx1c));delete _0x900cx1c[_0x7934[61]];_0x900cx1d[_0x7934[42]](_0x900cx1f)[_0x7934[62]](_0x900cx1c)}}exports[_0x7934[63]]= function(_0x900cx19,_0x900cx1d){var _0x900cx23={},_0x900cx2f={};_0x900cx2f[_0x7934[64]]= _[_0x7934[67]](db[_0x7934[66]][_0x7934[65]]);_0x900cx2f[_0x7934[68]]= _[_0x7934[67]](_0x900cx19[_0x7934[68]]);_0x900cx2f[_0x7934[69]]= _[_0x7934[70]](_0x900cx2f[_0x7934[64]],_0x900cx2f[_0x7934[68]]);_0x900cx23[_0x7934[71]]= _[_0x7934[70]](_0x900cx2f[_0x7934[64]],qs[_0x7934[72]](_0x900cx19[_0x7934[68]][_0x7934[72]]));_0x900cx23[_0x7934[71]]= (_0x900cx23[_0x7934[71]][_0x7934[73]])?_0x900cx23[_0x7934[71]]:_0x900cx2f[_0x7934[64]];if(!_0x900cx19[_0x7934[68]][_0x7934[75]](_0x7934[74])){_0x900cx23[_0x7934[47]]= qs[_0x7934[47]](_0x900cx19[_0x7934[68]][_0x7934[47]]);_0x900cx23[_0x7934[46]]= qs[_0x7934[46]](_0x900cx19[_0x7934[68]][_0x7934[46]])};_0x900cx23[_0x7934[76]]= qs[_0x7934[77]](_0x900cx19[_0x7934[68]][_0x7934[77]]);_0x900cx23[_0x7934[78]]= qs[_0x7934[69]](_[_0x7934[79]](_0x900cx19[_0x7934[68]],_0x900cx2f[_0x7934[69]]));if(_0x900cx19[_0x7934[68]][_0x7934[80]]){_0x900cx23[_0x7934[78]]= _[_0x7934[83]](_0x900cx23[_0x7934[78]],{$or:_[_0x7934[82]](_0x900cx23[_0x7934[71]],function(_0x900cx30){var _0x900cx31={};_0x900cx31[_0x900cx30]= {$like:_0x7934[81]+ _0x900cx19[_0x7934[68]][_0x7934[80]]+ _0x7934[81]};return _0x900cx31})})};_0x900cx23= _[_0x7934[83]]({},_0x900cx23,_0x900cx19[_0x7934[84]]);return db[_0x7934[66]][_0x7934[85]](_0x900cx23)[_0x7934[36]](respondWithFilteredResult(_0x900cx1d,_0x900cx23,_0x7934[63]))[_0x7934[27]](handleError(_0x900cx1d,null,_0x7934[63]))};exports[_0x7934[86]]= function(_0x900cx19,_0x900cx1d){var _0x900cx23={raw:false,where:{id:_0x900cx19[_0x7934[88]][_0x7934[87]]}},_0x900cx2f={};_0x900cx2f[_0x7934[64]]= _[_0x7934[67]](db[_0x7934[66]][_0x7934[65]]);_0x900cx2f[_0x7934[68]]= _[_0x7934[67]](_0x900cx19[_0x7934[68]]);_0x900cx2f[_0x7934[69]]= _[_0x7934[70]](_0x900cx2f[_0x7934[64]],_0x900cx2f[_0x7934[68]]);_0x900cx23[_0x7934[71]]= _[_0x7934[70]](_0x900cx2f[_0x7934[64]],qs[_0x7934[72]](_0x900cx19[_0x7934[68]][_0x7934[72]]));_0x900cx23[_0x7934[71]]= (_0x900cx23[_0x7934[71]][_0x7934[73]])?_0x900cx23[_0x7934[71]]:_0x900cx2f[_0x7934[64]];_0x900cx23= _[_0x7934[83]]({},_0x900cx23,_0x900cx19[_0x7934[84]]);return db[_0x7934[66]][_0x7934[89]](_0x900cx23)[_0x7934[36]](handleEntityNotFound(_0x900cx1d,null,_0x7934[86]))[_0x7934[36]](respondWithResult(_0x900cx1d,null,_0x7934[86]))[_0x7934[27]](handleError(_0x900cx1d,null,_0x7934[86]))};exports[_0x7934[90]]= function(_0x900cx19,_0x900cx1d){return db[_0x7934[66]][_0x7934[90]](_0x900cx19[_0x7934[91]],{})[_0x7934[36]](respondWithResult(_0x900cx1d,201,_0x7934[90]))[_0x7934[27]](handleError(_0x900cx1d,null,_0x7934[90]))};exports[_0x7934[57]]= function(_0x900cx19,_0x900cx1d){if(_0x900cx19[_0x7934[91]][_0x7934[87]]){delete _0x900cx19[_0x7934[91]][_0x7934[87]]};return db[_0x7934[66]][_0x7934[89]]({where:{id:_0x900cx19[_0x7934[88]][_0x7934[87]]}})[_0x7934[36]](handleEntityNotFound(_0x900cx1d,null,_0x7934[57]))[_0x7934[36]](saveUpdates(_0x900cx19[_0x7934[91]],null,_0x7934[57]))[_0x7934[36]](respondWithResult(_0x900cx1d,null,_0x7934[57]))[_0x7934[27]](handleError(_0x900cx1d,null,_0x7934[57]))};exports[_0x7934[59]]= function(_0x900cx19,_0x900cx1d){return db[_0x7934[66]][_0x7934[89]]({where:{id:_0x900cx19[_0x7934[88]][_0x7934[87]]}})[_0x7934[36]](handleEntityNotFound(_0x900cx1d,null,_0x7934[59]))[_0x7934[36]](removeEntity(_0x900cx1d,null,_0x7934[59]))[_0x7934[27]](handleError(_0x900cx1d,null,_0x7934[59]))};exports[_0x7934[92]]= function(_0x900cx19,_0x900cx20,_0x900cx32){var _0x900cx23={};var _0x900cx2f={};var _0x900cx33;var _0x900cx24;return db[_0x7934[66]][_0x7934[94]]({where:{id:_0x900cx19[_0x7934[88]][_0x7934[87]]}})[_0x7934[36]](handleEntityNotFound(_0x900cx20,null,_0x7934[92]))[_0x7934[36]](function(_0x900cx20){if(_0x900cx20){_0x900cx33= _0x900cx20;_0x900cx2f[_0x7934[64]]= _[_0x7934[67]](db[_0x7934[93]][_0x7934[65]]);_0x900cx2f[_0x7934[68]]= _[_0x7934[67]](_0x900cx19[_0x7934[68]]);_0x900cx2f[_0x7934[69]]= _[_0x7934[70]](_0x900cx2f[_0x7934[64]],_0x900cx2f[_0x7934[68]]);_0x900cx23[_0x7934[71]]= _[_0x7934[70]](_0x900cx2f[_0x7934[64]],qs[_0x7934[72]](_0x900cx19[_0x7934[68]][_0x7934[72]]));_0x900cx23[_0x7934[71]]= (_0x900cx23[_0x7934[71]][_0x7934[73]])?_0x900cx23[_0x7934[71]]:_0x900cx2f[_0x7934[64]];_0x900cx23[_0x7934[76]]= qs[_0x7934[77]](_0x900cx19[_0x7934[68]][_0x7934[77]]);_0x900cx23[_0x7934[78]]= qs[_0x7934[69]](_[_0x7934[79]](_0x900cx19[_0x7934[68]],_0x900cx2f[_0x7934[69]]));if(_0x900cx19[_0x7934[68]][_0x7934[80]]){_0x900cx23[_0x7934[78]]= _[_0x7934[83]](_0x900cx23[_0x7934[78]],{$or:_[_0x7934[82]](_0x900cx23[_0x7934[71]],function(_0x900cx30){var _0x900cx31={};_0x900cx31[_0x900cx30]= {$like:_0x7934[81]+ _0x900cx19[_0x7934[68]][_0x7934[80]]+ _0x7934[81]};return _0x900cx31})})};_0x900cx23= _[_0x7934[83]]({},_0x900cx23,_0x900cx19[_0x7934[84]]);return _0x900cx33[_0x7934[92]](_0x900cx23)}})[_0x7934[36]](function(_0x900cx35){if(_0x900cx35){_0x900cx24= _0x900cx35[_0x7934[73]];if(!_0x900cx19[_0x7934[68]][_0x7934[75]](_0x7934[74])){_0x900cx23[_0x7934[47]]= qs[_0x7934[47]](_0x900cx19[_0x7934[68]][_0x7934[47]]);_0x900cx23[_0x7934[46]]= qs[_0x7934[46]](_0x900cx19[_0x7934[68]][_0x7934[46]])};return _0x900cx33[_0x7934[92]](_0x900cx23)}})[_0x7934[36]](function(_0x900cx34){return _0x900cx34?{count:_0x900cx24,rows:_0x900cx34}:null})[_0x7934[36]](respondWithResult(_0x900cx20,null,_0x7934[92]))[_0x7934[27]](handleError(_0x900cx20,null,_0x7934[92]))};exports[_0x7934[95]]= function(_0x900cx19,_0x900cx20,_0x900cx32){var _0x900cx23={};var _0x900cx2f={};var _0x900cx33;var _0x900cx24;return db[_0x7934[66]][_0x7934[94]]({where:{id:_0x900cx19[_0x7934[88]][_0x7934[87]]}})[_0x7934[36]](handleEntityNotFound(_0x900cx20,null,_0x7934[95]))[_0x7934[36]](function(_0x900cx20){if(_0x900cx20){_0x900cx33= _0x900cx20;_0x900cx2f[_0x7934[64]]= _[_0x7934[67]](db[_0x7934[93]][_0x7934[65]]);_0x900cx2f[_0x7934[68]]= _[_0x7934[67]](_0x900cx19[_0x7934[68]]);_0x900cx2f[_0x7934[69]]= _[_0x7934[70]](_0x900cx2f[_0x7934[64]],_0x900cx2f[_0x7934[68]]);_0x900cx23[_0x7934[71]]= _[_0x7934[70]](_0x900cx2f[_0x7934[64]],qs[_0x7934[72]](_0x900cx19[_0x7934[68]][_0x7934[72]]));_0x900cx23[_0x7934[71]]= (_0x900cx23[_0x7934[71]][_0x7934[73]])?_0x900cx23[_0x7934[71]]:_0x900cx2f[_0x7934[64]];_0x900cx23[_0x7934[76]]= qs[_0x7934[77]](_0x900cx19[_0x7934[68]][_0x7934[77]]);_0x900cx23[_0x7934[78]]= qs[_0x7934[69]](_[_0x7934[79]](_0x900cx19[_0x7934[68]],_0x900cx2f[_0x7934[69]]));if(_0x900cx19[_0x7934[68]][_0x7934[80]]){_0x900cx23[_0x7934[78]]= _[_0x7934[83]](_0x900cx23[_0x7934[78]],{$or:_[_0x7934[82]](_0x900cx23[_0x7934[71]],function(_0x900cx30){var _0x900cx31={};_0x900cx31[_0x900cx30]= {$like:_0x7934[81]+ _0x900cx19[_0x7934[68]][_0x7934[80]]+ _0x7934[81]};return _0x900cx31})})};_0x900cx23= _[_0x7934[83]]({},_0x900cx23,_0x900cx19[_0x7934[84]]);return _0x900cx33[_0x7934[95]](_0x900cx23)}})[_0x7934[36]](function(_0x900cx35){if(_0x900cx35){_0x900cx24= _0x900cx35[_0x7934[73]];if(!_0x900cx19[_0x7934[68]][_0x7934[75]](_0x7934[74])){_0x900cx23[_0x7934[47]]= qs[_0x7934[47]](_0x900cx19[_0x7934[68]][_0x7934[47]]);_0x900cx23[_0x7934[46]]= qs[_0x7934[46]](_0x900cx19[_0x7934[68]][_0x7934[46]])};return _0x900cx33[_0x7934[95]](_0x900cx23)}})[_0x7934[36]](function(_0x900cx34){return _0x900cx34?{count:_0x900cx24,rows:_0x900cx34}:null})[_0x7934[36]](respondWithResult(_0x900cx20,null,_0x7934[95]))[_0x7934[27]](handleError(_0x900cx20,null,_0x7934[95]))};exports[_0x7934[96]]= function(_0x900cx19,_0x900cx20,_0x900cx32){var _0x900cx23={};var _0x900cx2f={};var _0x900cx33;var _0x900cx24;return db[_0x7934[66]][_0x7934[94]]({where:{id:_0x900cx19[_0x7934[88]][_0x7934[87]]}})[_0x7934[36]](handleEntityNotFound(_0x900cx20,null,_0x7934[96]))[_0x7934[36]](function(_0x900cx20){if(_0x900cx20){_0x900cx33= _0x900cx20;_0x900cx2f[_0x7934[64]]= _[_0x7934[67]](db[_0x7934[93]][_0x7934[65]]);_0x900cx2f[_0x7934[68]]= _[_0x7934[67]](_0x900cx19[_0x7934[68]]);_0x900cx2f[_0x7934[69]]= _[_0x7934[70]](_0x900cx2f[_0x7934[64]],_0x900cx2f[_0x7934[68]]);_0x900cx23[_0x7934[71]]= _[_0x7934[70]](_0x900cx2f[_0x7934[64]],qs[_0x7934[72]](_0x900cx19[_0x7934[68]][_0x7934[72]]));_0x900cx23[_0x7934[71]]= (_0x900cx23[_0x7934[71]][_0x7934[73]])?_0x900cx23[_0x7934[71]]:_0x900cx2f[_0x7934[64]];_0x900cx23[_0x7934[76]]= qs[_0x7934[77]](_0x900cx19[_0x7934[68]][_0x7934[77]]);_0x900cx23[_0x7934[78]]= qs[_0x7934[69]](_[_0x7934[79]](_0x900cx19[_0x7934[68]],_0x900cx2f[_0x7934[69]]));if(_0x900cx19[_0x7934[68]][_0x7934[80]]){_0x900cx23[_0x7934[78]]= _[_0x7934[83]](_0x900cx23[_0x7934[78]],{$or:_[_0x7934[82]](_0x900cx23[_0x7934[71]],function(_0x900cx30){var _0x900cx31={};_0x900cx31[_0x900cx30]= {$like:_0x7934[81]+ _0x900cx19[_0x7934[68]][_0x7934[80]]+ _0x7934[81]};return _0x900cx31})})};_0x900cx23= _[_0x7934[83]]({},_0x900cx23,_0x900cx19[_0x7934[84]]);return _0x900cx33[_0x7934[96]](_0x900cx23)}})[_0x7934[36]](function(_0x900cx35){if(_0x900cx35){_0x900cx24= _0x900cx35[_0x7934[73]];if(!_0x900cx19[_0x7934[68]][_0x7934[75]](_0x7934[74])){_0x900cx23[_0x7934[47]]= qs[_0x7934[47]](_0x900cx19[_0x7934[68]][_0x7934[47]]);_0x900cx23[_0x7934[46]]= qs[_0x7934[46]](_0x900cx19[_0x7934[68]][_0x7934[46]])};return _0x900cx33[_0x7934[96]](_0x900cx23)}})[_0x7934[36]](function(_0x900cx34){return _0x900cx34?{count:_0x900cx24,rows:_0x900cx34}:null})[_0x7934[36]](respondWithResult(_0x900cx20,null,_0x7934[96]))[_0x7934[27]](handleError(_0x900cx20,null,_0x7934[96]))};exports[_0x7934[97]]= function(_0x900cx19,_0x900cx20,_0x900cx32){var _0x900cx23={};var _0x900cx2f={};var _0x900cx33;var _0x900cx24;return db[_0x7934[66]][_0x7934[94]]({where:{id:_0x900cx19[_0x7934[88]][_0x7934[87]]}})[_0x7934[36]](handleEntityNotFound(_0x900cx20,null,_0x7934[97]))[_0x7934[36]](function(_0x900cx20){if(_0x900cx20){_0x900cx33= _0x900cx20;_0x900cx2f[_0x7934[64]]= _[_0x7934[67]](db[_0x7934[98]][_0x7934[65]]);_0x900cx2f[_0x7934[68]]= _[_0x7934[67]](_0x900cx19[_0x7934[68]]);_0x900cx2f[_0x7934[69]]= _[_0x7934[70]](_0x900cx2f[_0x7934[64]],_0x900cx2f[_0x7934[68]]);_0x900cx23[_0x7934[71]]= _[_0x7934[70]](_0x900cx2f[_0x7934[64]],qs[_0x7934[72]](_0x900cx19[_0x7934[68]][_0x7934[72]]));_0x900cx23[_0x7934[71]]= (_0x900cx23[_0x7934[71]][_0x7934[73]])?_0x900cx23[_0x7934[71]]:_0x900cx2f[_0x7934[64]];_0x900cx23[_0x7934[76]]= qs[_0x7934[77]](_0x900cx19[_0x7934[68]][_0x7934[77]]);_0x900cx23[_0x7934[78]]= qs[_0x7934[69]](_[_0x7934[79]](_0x900cx19[_0x7934[68]],_0x900cx2f[_0x7934[69]]));if(_0x900cx19[_0x7934[68]][_0x7934[80]]){_0x900cx23[_0x7934[78]]= _[_0x7934[83]](_0x900cx23[_0x7934[78]],{$or:_[_0x7934[82]](_0x900cx23[_0x7934[71]],function(_0x900cx30){var _0x900cx31={};_0x900cx31[_0x900cx30]= {$like:_0x7934[81]+ _0x900cx19[_0x7934[68]][_0x7934[80]]+ _0x7934[81]};return _0x900cx31})})};_0x900cx23= _[_0x7934[83]]({},_0x900cx23,_0x900cx19[_0x7934[84]]);return _0x900cx33[_0x7934[97]](_0x900cx23)}})[_0x7934[36]](function(_0x900cx35){if(_0x900cx35){_0x900cx24= _0x900cx35[_0x7934[73]];if(!_0x900cx19[_0x7934[68]][_0x7934[75]](_0x7934[74])){_0x900cx23[_0x7934[47]]= qs[_0x7934[47]](_0x900cx19[_0x7934[68]][_0x7934[47]]);_0x900cx23[_0x7934[46]]= qs[_0x7934[46]](_0x900cx19[_0x7934[68]][_0x7934[46]])};return _0x900cx33[_0x7934[97]](_0x900cx23)}})[_0x7934[36]](function(_0x900cx34){return _0x900cx34?{count:_0x900cx24,rows:_0x900cx34}:null})[_0x7934[36]](respondWithResult(_0x900cx20,null,_0x7934[97]))[_0x7934[27]](handleError(_0x900cx20,null,_0x7934[97]))};exports[_0x7934[99]]= function(_0x900cx19,_0x900cx1d,_0x900cx32){if(_0x900cx19[_0x7934[91]][_0x7934[87]]){delete _0x900cx19[_0x7934[91]][_0x7934[87]]};return db[_0x7934[66]][_0x7934[94]]({where:{id:_0x900cx19[_0x7934[88]][_0x7934[87]]}})[_0x7934[36]](handleEntityNotFound(_0x900cx1d,null,_0x7934[99]))[_0x7934[36]](function(_0x900cx20){if(_0x900cx20){return _0x900cx20[_0x7934[99]](_0x900cx19[_0x7934[91]][_0x7934[100]])};return null})[_0x7934[36]](respondWithResult(_0x900cx1d,null,_0x7934[99]))[_0x7934[27]](handleError(_0x900cx1d,null,_0x7934[99]))}
\ No newline at end of file
diff --git a/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.model.js b/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.model.js
new file mode 100644 (file)
index 0000000..59cf6e7
--- /dev/null
@@ -0,0 +1 @@
+var _0x4459=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x5F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x4459[0];var _=require(_0x4459[1]);var util=require(_0x4459[2]);var logger=require(_0x4459[4])(_0x4459[3]);var attributes=require(_0x4459[5]);module[_0x4459[6]]= function(_0x79edx5,_0x79edx6){return _0x79edx5[_0x4459[9]](_0x4459[7],attributes,{tableName:_0x4459[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.rpc.js b/server/api/intFreshdeskConfiguration/intFreshdeskConfiguration.rpc.js
new file mode 100644 (file)
index 0000000..e261e18
--- /dev/null
@@ -0,0 +1 @@
+var _0xfd9e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xfd9e[0];var _=require(_0xfd9e[1]);var util=require(_0xfd9e[2]);var moment=require(_0xfd9e[3]);var BPromise=require(_0xfd9e[4]);var db=require(_0xfd9e[6])[_0xfd9e[5]];var utils=require(_0xfd9e[7]);var logger=require(_0xfd9e[9])(_0xfd9e[8]);var jayson=require(_0xfd9e[10]);var client=jayson[_0xfd9e[12]][_0xfd9e[11]]({port:9002});function respondWithRpcPromise(_0xc1d5xb,_0xc1d5xc,_0xc1d5xd){return  new BPromise(function(_0xc1d5xe,_0xc1d5xf){return client[_0xfd9e[25]](_0xc1d5xb,_0xc1d5xd)[_0xfd9e[24]](function(_0xc1d5x11){logger[_0xfd9e[17]](_0xfd9e[13],_0xc1d5xc,_0xfd9e[16]);logger[_0xfd9e[20]](_0xfd9e[18],_0xc1d5xc,_0xfd9e[16],JSON[_0xfd9e[19]](_0xc1d5x11));if(_0xc1d5x11[_0xfd9e[14]]){if(_0xc1d5x11[_0xfd9e[14]][_0xfd9e[21]]=== 500){logger[_0xfd9e[14]](_0xfd9e[13],_0xc1d5xc,_0xc1d5x11[_0xfd9e[14]][_0xfd9e[22]]);return _0xc1d5xf(_0xc1d5x11[_0xfd9e[14]][_0xfd9e[22]])};logger[_0xfd9e[14]](_0xfd9e[13],_0xc1d5xc,_0xc1d5x11[_0xfd9e[14]][_0xfd9e[22]]);return _0xc1d5xe(_0xc1d5x11[_0xfd9e[14]][_0xfd9e[22]])}else {logger[_0xfd9e[17]](_0xfd9e[13],_0xc1d5xc,_0xfd9e[16]);_0xc1d5xe(_0xc1d5x11[_0xfd9e[23]][_0xfd9e[22]])}})[_0xfd9e[15]](function(_0xc1d5x10){logger[_0xfd9e[14]](_0xfd9e[13],_0xc1d5xc,_0xc1d5x10);_0xc1d5xf(_0xc1d5x10)})})}
\ No newline at end of file
diff --git a/server/api/intFreshdeskField/index.js b/server/api/intFreshdeskField/index.js
new file mode 100644 (file)
index 0000000..167cf72
--- /dev/null
@@ -0,0 +1 @@
+var _0x8e4a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8e4a[0];var multer=require(_0x8e4a[1]);var util=require(_0x8e4a[2]);var path=require(_0x8e4a[3]);var express=require(_0x8e4a[4]);var router=express.Router();var auth=require(_0x8e4a[5]);var config=require(_0x8e4a[6]);var controller=require(_0x8e4a[7]);router[_0x8e4a[11]](_0x8e4a[8],auth[_0x8e4a[9]](),controller[_0x8e4a[10]]);router[_0x8e4a[11]](_0x8e4a[12],auth[_0x8e4a[9]](),controller[_0x8e4a[13]]);router[_0x8e4a[15]](_0x8e4a[8],auth[_0x8e4a[9]](),controller[_0x8e4a[14]]);router[_0x8e4a[17]](_0x8e4a[12],auth[_0x8e4a[9]](),controller[_0x8e4a[16]]);router[_0x8e4a[19]](_0x8e4a[12],auth[_0x8e4a[9]](),controller[_0x8e4a[18]]);module[_0x8e4a[20]]= router
\ No newline at end of file
diff --git a/server/api/intFreshdeskField/intFreshdeskField.attributes.js b/server/api/intFreshdeskField/intFreshdeskField.attributes.js
new file mode 100644 (file)
index 0000000..b2b965d
--- /dev/null
@@ -0,0 +1 @@
+var _0xceb3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xceb3[0];var Sequelize=require(_0xceb3[1]);module[_0xceb3[2]]= {type:{type:Sequelize.ENUM(_0xceb3[3],_0xceb3[4],_0xceb3[5],_0xceb3[6]),defaultValue:_0xceb3[3]},content:{type:Sequelize[_0xceb3[7]]},key:{type:Sequelize[_0xceb3[7]]},keyType:{type:Sequelize.ENUM(_0xceb3[3],_0xceb3[4],_0xceb3[5])},keyContent:{type:Sequelize[_0xceb3[7]]},idField:{type:Sequelize[_0xceb3[7]]},nameField:{type:Sequelize[_0xceb3[7]]},customField:{type:Sequelize[_0xceb3[8]],defaultValue:true},variableName:{type:Sequelize[_0xceb3[7]]}}
\ No newline at end of file
diff --git a/server/api/intFreshdeskField/intFreshdeskField.controller.js b/server/api/intFreshdeskField/intFreshdeskField.controller.js
new file mode 100644 (file)
index 0000000..c0b7f0c
--- /dev/null
@@ -0,0 +1 @@
+var _0xde14=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xde14[0];var jsonpatch=require(_0xde14[1]);var rp=require(_0xde14[2]);var moment=require(_0xde14[3]);var BPromise=require(_0xde14[4]);var util=require(_0xde14[5]);var path=require(_0xde14[6]);var sox=require(_0xde14[7]);var ejs=require(_0xde14[8]);var fs=require(_0xde14[9]);var _=require(_0xde14[10]);var squel=require(_0xde14[11]);var crypto=require(_0xde14[12]);var jsforce=require(_0xde14[13]);var toCsv=require(_0xde14[14]);var qs=require(_0xde14[15]);var logger=require(_0xde14[17])(_0xde14[16]);var utils=require(_0xde14[18]);var config=require(_0xde14[19]);var db=require(_0xde14[21])[_0xde14[20]];function respondWithStatusCode(_0xbb88x15,_0xbb88x16,_0xbb88x17){_0xbb88x16= _0xbb88x16|| 204;return function(_0xbb88x18){if(_0xbb88x18){logger[_0xde14[24]](_0xde14[22],_0xbb88x17,_0xbb88x16,_0xde14[23]);logger[_0xde14[26]](_0xde14[25],_0xbb88x17,_0xbb88x16,_0xde14[23]);return _0xbb88x15[_0xde14[27]](_0xbb88x16)};return _0xbb88x15[_0xde14[29]](304)[_0xde14[28]]()}}function respondWithResult(_0xbb88x15,_0xbb88x16,_0xbb88x17){_0xbb88x16= _0xbb88x16|| 200;return function(_0xbb88x18){if(_0xbb88x18){logger[_0xde14[24]](_0xde14[22],_0xbb88x17,_0xbb88x16,_0xde14[30]);logger[_0xde14[26]](_0xde14[25],_0xbb88x17,_0xbb88x16,_0xde14[30],JSON[_0xde14[31]](_0xbb88x18));return _0xbb88x15[_0xde14[29]](_0xbb88x16)[_0xde14[32]](_0xbb88x18)};return _0xbb88x15[_0xde14[29]](304)[_0xde14[28]]()}}function respondWithFilteredResult(_0xbb88x15,_0xbb88x1b,_0xbb88x17){return function(_0xbb88x18){if(_0xbb88x18){var _0xbb88x1c=_0xbb88x18[_0xde14[33]],_0xbb88x1d=_0xbb88x1b[_0xde14[34]],_0xbb88x1e=_0xbb88x1b[_0xde14[34]]+ _0xbb88x1b[_0xde14[35]],_0xbb88x16;if(_0xbb88x1e>= _0xbb88x1c){_0xbb88x1e= _0xbb88x1c;_0xbb88x16= 200}else {_0xbb88x16= 206};_0xbb88x15[_0xde14[29]](_0xbb88x16);logger[_0xde14[24]](_0xde14[22],_0xbb88x17,_0xbb88x16,_0xde14[36]);logger[_0xde14[26]](_0xde14[25],_0xbb88x17,_0xbb88x16,_0xde14[30],JSON[_0xde14[31]](_0xbb88x18));return _0xbb88x15[_0xde14[40]](_0xde14[37],_0xbb88x1d+ _0xde14[38]+ _0xbb88x1e+ _0xde14[39]+ _0xbb88x1c)[_0xde14[32]](_0xbb88x18)};return null}}function patchUpdates(_0xbb88x20){return function(_0xbb88x18){try{jsonpatch[_0xde14[41]](_0xbb88x18,_0xbb88x20,true)}catch(err){return BPromise[_0xde14[42]](err)};return _0xbb88x18[_0xde14[43]]()}}function saveUpdates(_0xbb88x22,_0xbb88x16,_0xbb88x17){return function(_0xbb88x18){if(_0xbb88x18){return _0xbb88x18[_0xde14[46]](_0xbb88x22)[_0xde14[45]](function(_0xbb88x23){logger[_0xde14[24]](_0xde14[22],_0xbb88x17,_0xbb88x16,_0xde14[44]);logger[_0xde14[26]](_0xde14[25],_0xbb88x17,_0xbb88x16,_0xde14[44],JSON[_0xde14[31]](_0xbb88x18));return _0xbb88x23})};return null}}function removeEntity(_0xbb88x15,_0xbb88x16,_0xbb88x17){return function(_0xbb88x18){if(_0xbb88x18){return _0xbb88x18[_0xde14[48]]()[_0xde14[45]](function(){logger[_0xde14[24]](_0xde14[22],_0xbb88x17,_0xbb88x16,_0xde14[47]);logger[_0xde14[26]](_0xde14[25],_0xbb88x17,_0xbb88x16,_0xde14[47],JSON[_0xde14[31]](_0xbb88x18));_0xbb88x15[_0xde14[29]](204)[_0xde14[28]]()})}}}function handleEntityNotFound(_0xbb88x15,_0xbb88x16,_0xbb88x17){return function(_0xbb88x18){if(!_0xbb88x18){logger[_0xde14[50]](_0xde14[22],_0xbb88x17,404,_0xde14[49]);_0xbb88x15[_0xde14[29]](404)[_0xde14[28]]();return null};return _0xbb88x18}}function handleError(_0xbb88x15,_0xbb88x16,_0xbb88x17){_0xbb88x16= _0xbb88x16|| 500;return function(_0xbb88x27){logger[_0xde14[50]](_0xde14[22],_0xbb88x17,_0xbb88x16,JSON[_0xde14[31]](_0xbb88x27));delete _0xbb88x27[_0xde14[51]];_0xbb88x15[_0xde14[29]](_0xbb88x16)[_0xde14[52]](_0xbb88x27)}}exports[_0xde14[53]]= function(_0xbb88x28,_0xbb88x15){var _0xbb88x1b={},_0xbb88x29={};_0xbb88x29[_0xde14[54]]= _[_0xde14[57]](db[_0xde14[56]][_0xde14[55]]);_0xbb88x29[_0xde14[58]]= _[_0xde14[57]](_0xbb88x28[_0xde14[58]]);_0xbb88x29[_0xde14[59]]= _[_0xde14[60]](_0xbb88x29[_0xde14[54]],_0xbb88x29[_0xde14[58]]);_0xbb88x1b[_0xde14[61]]= _[_0xde14[60]](_0xbb88x29[_0xde14[54]],qs[_0xde14[62]](_0xbb88x28[_0xde14[58]][_0xde14[62]]));_0xbb88x1b[_0xde14[61]]= (_0xbb88x1b[_0xde14[61]][_0xde14[63]])?_0xbb88x1b[_0xde14[61]]:_0xbb88x29[_0xde14[54]];if(!_0xbb88x28[_0xde14[58]][_0xde14[65]](_0xde14[64])){_0xbb88x1b[_0xde14[35]]= qs[_0xde14[35]](_0xbb88x28[_0xde14[58]][_0xde14[35]]);_0xbb88x1b[_0xde14[34]]= qs[_0xde14[34]](_0xbb88x28[_0xde14[58]][_0xde14[34]])};_0xbb88x1b[_0xde14[66]]= qs[_0xde14[67]](_0xbb88x28[_0xde14[58]][_0xde14[67]]);_0xbb88x1b[_0xde14[68]]= qs[_0xde14[59]](_[_0xde14[69]](_0xbb88x28[_0xde14[58]],_0xbb88x29[_0xde14[59]]));if(_0xbb88x28[_0xde14[58]][_0xde14[70]]){_0xbb88x1b[_0xde14[68]]= _[_0xde14[73]](_0xbb88x1b[_0xde14[68]],{$or:_[_0xde14[72]](_0xbb88x1b[_0xde14[61]],function(_0xbb88x2a){var _0xbb88x2b={};_0xbb88x2b[_0xbb88x2a]= {$like:_0xde14[71]+ _0xbb88x28[_0xde14[58]][_0xde14[70]]+ _0xde14[71]};return _0xbb88x2b})})};_0xbb88x1b= _[_0xde14[73]]({},_0xbb88x1b,_0xbb88x28[_0xde14[74]]);return db[_0xde14[56]][_0xde14[76]](_0xbb88x1b)[_0xde14[45]](respondWithFilteredResult(_0xbb88x15,_0xbb88x1b,_0xde14[53]))[_0xde14[75]](handleError(_0xbb88x15,null,_0xde14[53]))};exports[_0xde14[77]]= function(_0xbb88x28,_0xbb88x15){var _0xbb88x1b={raw:true,where:{id:_0xbb88x28[_0xde14[79]][_0xde14[78]]}},_0xbb88x29={};_0xbb88x29[_0xde14[54]]= _[_0xde14[57]](db[_0xde14[56]][_0xde14[55]]);_0xbb88x29[_0xde14[58]]= _[_0xde14[57]](_0xbb88x28[_0xde14[58]]);_0xbb88x29[_0xde14[59]]= _[_0xde14[60]](_0xbb88x29[_0xde14[54]],_0xbb88x29[_0xde14[58]]);_0xbb88x1b[_0xde14[61]]= _[_0xde14[60]](_0xbb88x29[_0xde14[54]],qs[_0xde14[62]](_0xbb88x28[_0xde14[58]][_0xde14[62]]));_0xbb88x1b[_0xde14[61]]= (_0xbb88x1b[_0xde14[61]][_0xde14[63]])?_0xbb88x1b[_0xde14[61]]:_0xbb88x29[_0xde14[54]];_0xbb88x1b= _[_0xde14[73]]({},_0xbb88x1b,_0xbb88x28[_0xde14[74]]);return db[_0xde14[56]][_0xde14[80]](_0xbb88x1b)[_0xde14[45]](handleEntityNotFound(_0xbb88x15,null,_0xde14[77]))[_0xde14[45]](respondWithResult(_0xbb88x15,null,_0xde14[77]))[_0xde14[75]](handleError(_0xbb88x15,null,_0xde14[77]))};exports[_0xde14[81]]= function(_0xbb88x28,_0xbb88x15){return db[_0xde14[56]][_0xde14[81]](_0xbb88x28[_0xde14[82]],{})[_0xde14[45]](respondWithResult(_0xbb88x15,201,_0xde14[81]))[_0xde14[75]](handleError(_0xbb88x15,null,_0xde14[81]))};exports[_0xde14[46]]= function(_0xbb88x28,_0xbb88x15){if(_0xbb88x28[_0xde14[82]][_0xde14[78]]){delete _0xbb88x28[_0xde14[82]][_0xde14[78]]};return db[_0xde14[56]][_0xde14[80]]({where:{id:_0xbb88x28[_0xde14[79]][_0xde14[78]]}})[_0xde14[45]](handleEntityNotFound(_0xbb88x15,null,_0xde14[46]))[_0xde14[45]](saveUpdates(_0xbb88x28[_0xde14[82]],null,_0xde14[46]))[_0xde14[45]](respondWithResult(_0xbb88x15,null,_0xde14[46]))[_0xde14[75]](handleError(_0xbb88x15,null,_0xde14[46]))};exports[_0xde14[48]]= function(_0xbb88x28,_0xbb88x15){return db[_0xde14[56]][_0xde14[80]]({where:{id:_0xbb88x28[_0xde14[79]][_0xde14[78]]}})[_0xde14[45]](handleEntityNotFound(_0xbb88x15,null,_0xde14[48]))[_0xde14[45]](removeEntity(_0xbb88x15,null,_0xde14[48]))[_0xde14[75]](handleError(_0xbb88x15,null,_0xde14[48]))}
\ No newline at end of file
diff --git a/server/api/intFreshdeskField/intFreshdeskField.model.js b/server/api/intFreshdeskField/intFreshdeskField.model.js
new file mode 100644 (file)
index 0000000..5aba973
--- /dev/null
@@ -0,0 +1 @@
+var _0x9102=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x69\x6E\x74\x5F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x9102[0];var _=require(_0x9102[1]);var util=require(_0x9102[2]);var logger=require(_0x9102[4])(_0x9102[3]);var attributes=require(_0x9102[5]);module[_0x9102[6]]= function(_0x2e2ex5,_0x2e2ex6){return _0x2e2ex5[_0x9102[9]](_0x9102[7],attributes,{tableName:_0x9102[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/intFreshdeskField/intFreshdeskField.rpc.js b/server/api/intFreshdeskField/intFreshdeskField.rpc.js
new file mode 100644 (file)
index 0000000..dbb3770
--- /dev/null
@@ -0,0 +1 @@
+var _0x10eb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x10eb[0];var _=require(_0x10eb[1]);var util=require(_0x10eb[2]);var moment=require(_0x10eb[3]);var BPromise=require(_0x10eb[4]);var db=require(_0x10eb[6])[_0x10eb[5]];var utils=require(_0x10eb[7]);var logger=require(_0x10eb[9])(_0x10eb[8]);var jayson=require(_0x10eb[10]);var client=jayson[_0x10eb[12]][_0x10eb[11]]({port:9002});function respondWithRpcPromise(_0x8aa9xb,_0x8aa9xc,_0x8aa9xd){return  new BPromise(function(_0x8aa9xe,_0x8aa9xf){return client[_0x10eb[25]](_0x8aa9xb,_0x8aa9xd)[_0x10eb[24]](function(_0x8aa9x11){logger[_0x10eb[17]](_0x10eb[13],_0x8aa9xc,_0x10eb[16]);logger[_0x10eb[20]](_0x10eb[18],_0x8aa9xc,_0x10eb[16],JSON[_0x10eb[19]](_0x8aa9x11));if(_0x8aa9x11[_0x10eb[14]]){if(_0x8aa9x11[_0x10eb[14]][_0x10eb[21]]=== 500){logger[_0x10eb[14]](_0x10eb[13],_0x8aa9xc,_0x8aa9x11[_0x10eb[14]][_0x10eb[22]]);return _0x8aa9xf(_0x8aa9x11[_0x10eb[14]][_0x10eb[22]])};logger[_0x10eb[14]](_0x10eb[13],_0x8aa9xc,_0x8aa9x11[_0x10eb[14]][_0x10eb[22]]);return _0x8aa9xe(_0x8aa9x11[_0x10eb[14]][_0x10eb[22]])}else {logger[_0x10eb[17]](_0x10eb[13],_0x8aa9xc,_0x10eb[16]);_0x8aa9xe(_0x8aa9x11[_0x10eb[23]][_0x10eb[22]])}})[_0x10eb[15]](function(_0x8aa9x10){logger[_0x10eb[14]](_0x10eb[13],_0x8aa9xc,_0x8aa9x10);_0x8aa9xf(_0x8aa9x10)})})}
\ No newline at end of file
diff --git a/server/api/intSalesforceAccount/index.js b/server/api/intSalesforceAccount/index.js
new file mode 100644 (file)
index 0000000..a0df728
--- /dev/null
@@ -0,0 +1 @@
+var _0x1587=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x1587[0];var multer=require(_0x1587[1]);var util=require(_0x1587[2]);var path=require(_0x1587[3]);var express=require(_0x1587[4]);var router=express.Router();var auth=require(_0x1587[5]);var config=require(_0x1587[6]);var controller=require(_0x1587[7]);router[_0x1587[11]](_0x1587[8],auth[_0x1587[9]](),controller[_0x1587[10]]);router[_0x1587[11]](_0x1587[12],auth[_0x1587[9]](),controller[_0x1587[13]]);router[_0x1587[11]](_0x1587[14],auth[_0x1587[9]](),controller[_0x1587[15]]);router[_0x1587[11]](_0x1587[16],auth[_0x1587[9]](),controller[_0x1587[17]]);router[_0x1587[19]](_0x1587[8],auth[_0x1587[9]](),controller[_0x1587[18]]);router[_0x1587[19]](_0x1587[14],auth[_0x1587[9]](),controller[_0x1587[20]]);router[_0x1587[22]](_0x1587[12],auth[_0x1587[9]](),controller[_0x1587[21]]);router[_0x1587[24]](_0x1587[12],auth[_0x1587[9]](),controller[_0x1587[23]]);module[_0x1587[25]]= router
\ No newline at end of file
diff --git a/server/api/intSalesforceAccount/intSalesforceAccount.attributes.js b/server/api/intSalesforceAccount/intSalesforceAccount.attributes.js
new file mode 100644 (file)
index 0000000..92969f4
--- /dev/null
@@ -0,0 +1 @@
+var _0xe8c5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65"];_0xe8c5[0];var Sequelize=require(_0xe8c5[1]);module[_0xe8c5[2]]= {name:{type:Sequelize[_0xe8c5[3]]},description:{type:Sequelize[_0xe8c5[3]]},username:{type:Sequelize[_0xe8c5[3]],unique:_0xe8c5[4]},remoteUri:{type:Sequelize[_0xe8c5[3]]},password:{type:Sequelize[_0xe8c5[3]]},clientId:{type:Sequelize[_0xe8c5[3]]},clientSecret:{type:Sequelize[_0xe8c5[3]]},securityToken:{type:Sequelize[_0xe8c5[3]]},serverUrl:{type:Sequelize[_0xe8c5[3]]}}
\ No newline at end of file
diff --git a/server/api/intSalesforceAccount/intSalesforceAccount.controller.js b/server/api/intSalesforceAccount/intSalesforceAccount.controller.js
new file mode 100644 (file)
index 0000000..4ed0183
--- /dev/null
@@ -0,0 +1 @@
+var _0xe9b1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x79\x70\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x43\x61\x6C\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x43\x61\x6C\x6C\x44\x75\x72\x61\x74\x69\x6F\x6E\x49\x6E\x53\x65\x63\x6F\x6E\x64\x73","\x43\x61\x6C\x6C\x4F\x62\x6A\x65\x63\x74","\x43\x61\x6C\x6C\x54\x79\x70\x65","\x49\x73\x41\x72\x63\x68\x69\x76\x65\x64","\x50\x72\x69\x6F\x72\x69\x74\x79","\x53\x74\x61\x74\x75\x73","\x54\x79\x70\x65","\x63\x75\x73\x74\x6F\x6D","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x6C\x61\x62\x65\x6C","\x70\x69\x63\x6B\x6C\x69\x73\x74\x56\x61\x6C\x75\x65\x73","\x76\x61\x6C\x75\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x54\x61\x73\x6B","\x73\x6F\x62\x6A\x65\x63\x74","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x63\x6C\x69\x65\x6E\x74\x49\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x73\x65\x63\x75\x72\x69\x74\x79\x54\x6F\x6B\x65\x6E","\x63\x6F\x6E\x63\x61\x74","\x70\x61\x73\x73\x77\x6F\x72\x64","\x6C\x6F\x67\x69\x6E"];_0xe9b1[0];var jsonpatch=require(_0xe9b1[1]);var rp=require(_0xe9b1[2]);var moment=require(_0xe9b1[3]);var BPromise=require(_0xe9b1[4]);var util=require(_0xe9b1[5]);var path=require(_0xe9b1[6]);var sox=require(_0xe9b1[7]);var ejs=require(_0xe9b1[8]);var fs=require(_0xe9b1[9]);var _=require(_0xe9b1[10]);var squel=require(_0xe9b1[11]);var crypto=require(_0xe9b1[12]);var jsforce=require(_0xe9b1[13]);var toCsv=require(_0xe9b1[14]);var qs=require(_0xe9b1[15]);var logger=require(_0xe9b1[17])(_0xe9b1[16]);var utils=require(_0xe9b1[18]);var config=require(_0xe9b1[19]);var db=require(_0xe9b1[21])[_0xe9b1[20]];var integrations=require(_0xe9b1[22]);var jayson=require(_0xe9b1[23]);var client=jayson[_0xe9b1[25]][_0xe9b1[24]]({port:9002});function respondWithRpcPromise(_0x80e2x18,_0x80e2x19,_0x80e2x1a){return  new BPromise(function(_0x80e2x1b,_0x80e2x1c){return client[_0xe9b1[38]](_0x80e2x18,_0x80e2x1a)[_0xe9b1[37]](function(_0x80e2x1e){logger[_0xe9b1[30]](_0xe9b1[26],_0x80e2x19,_0xe9b1[29]);logger[_0xe9b1[33]](_0xe9b1[31],_0x80e2x19,_0xe9b1[29],JSON[_0xe9b1[32]](_0x80e2x1e));if(_0x80e2x1e[_0xe9b1[27]]){if(_0x80e2x1e[_0xe9b1[27]][_0xe9b1[34]]=== 500){logger[_0xe9b1[27]](_0xe9b1[26],_0x80e2x19,_0x80e2x1e[_0xe9b1[27]][_0xe9b1[35]]);return _0x80e2x1c(_0x80e2x1e[_0xe9b1[27]][_0xe9b1[35]])};logger[_0xe9b1[27]](_0xe9b1[26],_0x80e2x19,_0x80e2x1e[_0xe9b1[27]][_0xe9b1[35]]);return _0x80e2x1b(_0x80e2x1e[_0xe9b1[27]][_0xe9b1[35]])}else {logger[_0xe9b1[30]](_0xe9b1[26],_0x80e2x19,_0xe9b1[29]);_0x80e2x1b(_0x80e2x1e[_0xe9b1[36]][_0xe9b1[35]])}})[_0xe9b1[28]](function(_0x80e2x1d){logger[_0xe9b1[27]](_0xe9b1[26],_0x80e2x19,_0x80e2x1d);_0x80e2x1c(_0x80e2x1d)})})}function respondWithStatusCode(_0x80e2x1e,_0x80e2x20,_0x80e2x19){_0x80e2x20= _0x80e2x20|| 204;return function(_0x80e2x21){if(_0x80e2x21){logger[_0xe9b1[30]](_0xe9b1[31],_0x80e2x19,_0x80e2x20,_0xe9b1[39]);logger[_0xe9b1[33]](_0xe9b1[40],_0x80e2x19,_0x80e2x20,_0xe9b1[39]);return _0x80e2x1e[_0xe9b1[41]](_0x80e2x20)};return _0x80e2x1e[_0xe9b1[43]](304)[_0xe9b1[42]]()}}function respondWithResult(_0x80e2x1e,_0x80e2x20,_0x80e2x19){_0x80e2x20= _0x80e2x20|| 200;return function(_0x80e2x21){if(_0x80e2x21){logger[_0xe9b1[30]](_0xe9b1[31],_0x80e2x19,_0x80e2x20,_0xe9b1[44]);logger[_0xe9b1[33]](_0xe9b1[40],_0x80e2x19,_0x80e2x20,_0xe9b1[44],JSON[_0xe9b1[32]](_0x80e2x21));return _0x80e2x1e[_0xe9b1[43]](_0x80e2x20)[_0xe9b1[45]](_0x80e2x21)};return _0x80e2x1e[_0xe9b1[43]](304)[_0xe9b1[42]]()}}function respondWithFilteredResult(_0x80e2x1e,_0x80e2x24,_0x80e2x19){return function(_0x80e2x21){if(_0x80e2x21){var _0x80e2x25=_0x80e2x21[_0xe9b1[46]],_0x80e2x26=_0x80e2x24[_0xe9b1[47]],_0x80e2x27=_0x80e2x24[_0xe9b1[47]]+ _0x80e2x24[_0xe9b1[48]],_0x80e2x20;if(_0x80e2x27>= _0x80e2x25){_0x80e2x27= _0x80e2x25;_0x80e2x20= 200}else {_0x80e2x20= 206};_0x80e2x1e[_0xe9b1[43]](_0x80e2x20);logger[_0xe9b1[30]](_0xe9b1[31],_0x80e2x19,_0x80e2x20,_0xe9b1[49]);logger[_0xe9b1[33]](_0xe9b1[40],_0x80e2x19,_0x80e2x20,_0xe9b1[44],JSON[_0xe9b1[32]](_0x80e2x21));return _0x80e2x1e[_0xe9b1[53]](_0xe9b1[50],_0x80e2x26+ _0xe9b1[51]+ _0x80e2x27+ _0xe9b1[52]+ _0x80e2x25)[_0xe9b1[45]](_0x80e2x21)};return null}}function patchUpdates(_0x80e2x29){return function(_0x80e2x21){try{jsonpatch[_0xe9b1[54]](_0x80e2x21,_0x80e2x29,true)}catch(err){return BPromise[_0xe9b1[55]](err)};return _0x80e2x21[_0xe9b1[56]]()}}function saveUpdates(_0x80e2x2b,_0x80e2x20,_0x80e2x19){return function(_0x80e2x21){if(_0x80e2x21){return _0x80e2x21[_0xe9b1[58]](_0x80e2x2b)[_0xe9b1[37]](function(_0x80e2x2c){logger[_0xe9b1[30]](_0xe9b1[31],_0x80e2x19,_0x80e2x20,_0xe9b1[57]);logger[_0xe9b1[33]](_0xe9b1[40],_0x80e2x19,_0x80e2x20,_0xe9b1[57],JSON[_0xe9b1[32]](_0x80e2x21));return _0x80e2x2c})};return null}}function removeEntity(_0x80e2x1e,_0x80e2x20,_0x80e2x19){return function(_0x80e2x21){if(_0x80e2x21){return _0x80e2x21[_0xe9b1[60]]()[_0xe9b1[37]](function(){logger[_0xe9b1[30]](_0xe9b1[31],_0x80e2x19,_0x80e2x20,_0xe9b1[59]);logger[_0xe9b1[33]](_0xe9b1[40],_0x80e2x19,_0x80e2x20,_0xe9b1[59],JSON[_0xe9b1[32]](_0x80e2x21));_0x80e2x1e[_0xe9b1[43]](204)[_0xe9b1[42]]()})}}}function handleEntityNotFound(_0x80e2x1e,_0x80e2x20,_0x80e2x19){return function(_0x80e2x21){if(!_0x80e2x21){logger[_0xe9b1[27]](_0xe9b1[31],_0x80e2x19,404,_0xe9b1[61]);_0x80e2x1e[_0xe9b1[43]](404)[_0xe9b1[42]]();return null};return _0x80e2x21}}function handleError(_0x80e2x1e,_0x80e2x20,_0x80e2x19){_0x80e2x20= _0x80e2x20|| 500;return function(_0x80e2x1d){logger[_0xe9b1[27]](_0xe9b1[31],_0x80e2x19,_0x80e2x20,JSON[_0xe9b1[32]](_0x80e2x1d));delete _0x80e2x1d[_0xe9b1[62]];_0x80e2x1e[_0xe9b1[43]](_0x80e2x20)[_0xe9b1[63]](_0x80e2x1d)}}exports[_0xe9b1[64]]= function(_0x80e2x1a,_0x80e2x1e){var _0x80e2x24={},_0x80e2x30={};_0x80e2x30[_0xe9b1[65]]= _[_0xe9b1[68]](db[_0xe9b1[67]][_0xe9b1[66]]);_0x80e2x30[_0xe9b1[69]]= _[_0xe9b1[68]](_0x80e2x1a[_0xe9b1[69]]);_0x80e2x30[_0xe9b1[70]]= _[_0xe9b1[71]](_0x80e2x30[_0xe9b1[65]],_0x80e2x30[_0xe9b1[69]]);_0x80e2x24[_0xe9b1[72]]= _[_0xe9b1[71]](_0x80e2x30[_0xe9b1[65]],qs[_0xe9b1[73]](_0x80e2x1a[_0xe9b1[69]][_0xe9b1[73]]));_0x80e2x24[_0xe9b1[72]]= (_0x80e2x24[_0xe9b1[72]][_0xe9b1[74]])?_0x80e2x24[_0xe9b1[72]]:_0x80e2x30[_0xe9b1[65]];if(!_0x80e2x1a[_0xe9b1[69]][_0xe9b1[76]](_0xe9b1[75])){_0x80e2x24[_0xe9b1[48]]= qs[_0xe9b1[48]](_0x80e2x1a[_0xe9b1[69]][_0xe9b1[48]]);_0x80e2x24[_0xe9b1[47]]= qs[_0xe9b1[47]](_0x80e2x1a[_0xe9b1[69]][_0xe9b1[47]])};_0x80e2x24[_0xe9b1[77]]= qs[_0xe9b1[78]](_0x80e2x1a[_0xe9b1[69]][_0xe9b1[78]]);_0x80e2x24[_0xe9b1[79]]= qs[_0xe9b1[70]](_[_0xe9b1[80]](_0x80e2x1a[_0xe9b1[69]],_0x80e2x30[_0xe9b1[70]]));if(_0x80e2x1a[_0xe9b1[69]][_0xe9b1[81]]){_0x80e2x24[_0xe9b1[79]]= _[_0xe9b1[84]](_0x80e2x24[_0xe9b1[79]],{$or:_[_0xe9b1[83]](_0x80e2x24[_0xe9b1[72]],function(_0x80e2x31){var _0x80e2x32={};_0x80e2x32[_0x80e2x31]= {$like:_0xe9b1[82]+ _0x80e2x1a[_0xe9b1[69]][_0xe9b1[81]]+ _0xe9b1[82]};return _0x80e2x32})})};_0x80e2x24= _[_0xe9b1[84]]({},_0x80e2x24,_0x80e2x1a[_0xe9b1[85]]);return db[_0xe9b1[67]][_0xe9b1[86]](_0x80e2x24)[_0xe9b1[37]](respondWithFilteredResult(_0x80e2x1e,_0x80e2x24,_0xe9b1[64]))[_0xe9b1[28]](handleError(_0x80e2x1e,null,_0xe9b1[64]))};exports[_0xe9b1[87]]= function(_0x80e2x1a,_0x80e2x1e){var _0x80e2x24={raw:false,where:{id:_0x80e2x1a[_0xe9b1[89]][_0xe9b1[88]]}},_0x80e2x30={};_0x80e2x30[_0xe9b1[65]]= _[_0xe9b1[68]](db[_0xe9b1[67]][_0xe9b1[66]]);_0x80e2x30[_0xe9b1[69]]= _[_0xe9b1[68]](_0x80e2x1a[_0xe9b1[69]]);_0x80e2x30[_0xe9b1[70]]= _[_0xe9b1[71]](_0x80e2x30[_0xe9b1[65]],_0x80e2x30[_0xe9b1[69]]);_0x80e2x24[_0xe9b1[72]]= _[_0xe9b1[71]](_0x80e2x30[_0xe9b1[65]],qs[_0xe9b1[73]](_0x80e2x1a[_0xe9b1[69]][_0xe9b1[73]]));_0x80e2x24[_0xe9b1[72]]= (_0x80e2x24[_0xe9b1[72]][_0xe9b1[74]])?_0x80e2x24[_0xe9b1[72]]:_0x80e2x30[_0xe9b1[65]];_0x80e2x24= _[_0xe9b1[84]]({},_0x80e2x24,_0x80e2x1a[_0xe9b1[85]]);return db[_0xe9b1[67]][_0xe9b1[90]](_0x80e2x24)[_0xe9b1[37]](handleEntityNotFound(_0x80e2x1e,null,_0xe9b1[87]))[_0xe9b1[37]](respondWithResult(_0x80e2x1e,null,_0xe9b1[87]))[_0xe9b1[28]](handleError(_0x80e2x1e,null,_0xe9b1[87]))};exports[_0xe9b1[91]]= function(_0x80e2x1a,_0x80e2x1e){return db[_0xe9b1[67]][_0xe9b1[91]](_0x80e2x1a[_0xe9b1[92]],{})[_0xe9b1[37]](respondWithResult(_0x80e2x1e,201,_0xe9b1[91]))[_0xe9b1[28]](handleError(_0x80e2x1e,null,_0xe9b1[91]))};exports[_0xe9b1[58]]= function(_0x80e2x1a,_0x80e2x1e){if(_0x80e2x1a[_0xe9b1[92]][_0xe9b1[88]]){delete _0x80e2x1a[_0xe9b1[92]][_0xe9b1[88]]};return db[_0xe9b1[67]][_0xe9b1[90]]({where:{id:_0x80e2x1a[_0xe9b1[89]][_0xe9b1[88]]}})[_0xe9b1[37]](handleEntityNotFound(_0x80e2x1e,null,_0xe9b1[58]))[_0xe9b1[37]](saveUpdates(_0x80e2x1a[_0xe9b1[92]],null,_0xe9b1[58]))[_0xe9b1[37]](respondWithResult(_0x80e2x1e,null,_0xe9b1[58]))[_0xe9b1[28]](handleError(_0x80e2x1e,null,_0xe9b1[58]))};exports[_0xe9b1[60]]= function(_0x80e2x1a,_0x80e2x1e){return db[_0xe9b1[67]][_0xe9b1[90]]({where:{id:_0x80e2x1a[_0xe9b1[89]][_0xe9b1[88]]}})[_0xe9b1[37]](handleEntityNotFound(_0x80e2x1e,null,_0xe9b1[60]))[_0xe9b1[37]](removeEntity(_0x80e2x1e,null,_0xe9b1[60]))[_0xe9b1[28]](handleError(_0x80e2x1e,null,_0xe9b1[60]))};exports[_0xe9b1[93]]= function(_0x80e2x1a,_0x80e2x21,_0x80e2x33){var _0x80e2x24={};var _0x80e2x30={};var _0x80e2x34;var _0x80e2x25;return db[_0xe9b1[67]][_0xe9b1[95]]({where:{id:_0x80e2x1a[_0xe9b1[89]][_0xe9b1[88]]}})[_0xe9b1[37]](handleEntityNotFound(_0x80e2x21,null,_0xe9b1[93]))[_0xe9b1[37]](function(_0x80e2x21){if(_0x80e2x21){_0x80e2x34= _0x80e2x21;_0x80e2x30[_0xe9b1[65]]= _[_0xe9b1[68]](db[_0xe9b1[94]][_0xe9b1[66]]);_0x80e2x30[_0xe9b1[69]]= _[_0xe9b1[68]](_0x80e2x1a[_0xe9b1[69]]);_0x80e2x30[_0xe9b1[70]]= _[_0xe9b1[71]](_0x80e2x30[_0xe9b1[65]],_0x80e2x30[_0xe9b1[69]]);_0x80e2x24[_0xe9b1[72]]= _[_0xe9b1[71]](_0x80e2x30[_0xe9b1[65]],qs[_0xe9b1[73]](_0x80e2x1a[_0xe9b1[69]][_0xe9b1[73]]));_0x80e2x24[_0xe9b1[72]]= (_0x80e2x24[_0xe9b1[72]][_0xe9b1[74]])?_0x80e2x24[_0xe9b1[72]]:_0x80e2x30[_0xe9b1[65]];_0x80e2x24[_0xe9b1[77]]= qs[_0xe9b1[78]](_0x80e2x1a[_0xe9b1[69]][_0xe9b1[78]]);_0x80e2x24[_0xe9b1[79]]= qs[_0xe9b1[70]](_[_0xe9b1[80]](_0x80e2x1a[_0xe9b1[69]],_0x80e2x30[_0xe9b1[70]]));if(_0x80e2x1a[_0xe9b1[69]][_0xe9b1[81]]){_0x80e2x24[_0xe9b1[79]]= _[_0xe9b1[84]](_0x80e2x24[_0xe9b1[79]],{$or:_[_0xe9b1[83]](_0x80e2x24[_0xe9b1[72]],function(_0x80e2x31){var _0x80e2x32={};_0x80e2x32[_0x80e2x31]= {$like:_0xe9b1[82]+ _0x80e2x1a[_0xe9b1[69]][_0xe9b1[81]]+ _0xe9b1[82]};return _0x80e2x32})})};_0x80e2x24= _[_0xe9b1[84]]({},_0x80e2x24,_0x80e2x1a[_0xe9b1[85]]);return _0x80e2x34[_0xe9b1[93]](_0x80e2x24)}})[_0xe9b1[37]](function(_0x80e2x36){if(_0x80e2x36){_0x80e2x25= _0x80e2x36[_0xe9b1[74]];if(!_0x80e2x1a[_0xe9b1[69]][_0xe9b1[76]](_0xe9b1[75])){_0x80e2x24[_0xe9b1[48]]= qs[_0xe9b1[48]](_0x80e2x1a[_0xe9b1[69]][_0xe9b1[48]]);_0x80e2x24[_0xe9b1[47]]= qs[_0xe9b1[47]](_0x80e2x1a[_0xe9b1[69]][_0xe9b1[47]])};return _0x80e2x34[_0xe9b1[93]](_0x80e2x24)}})[_0xe9b1[37]](function(_0x80e2x35){return _0x80e2x35?{count:_0x80e2x25,rows:_0x80e2x35}:null})[_0xe9b1[37]](respondWithResult(_0x80e2x21,null,_0xe9b1[93]))[_0xe9b1[28]](handleError(_0x80e2x21,null,_0xe9b1[93]))};exports[_0xe9b1[96]]= function(_0x80e2x1a,_0x80e2x1e,_0x80e2x33){if(_0x80e2x1a[_0xe9b1[92]][_0xe9b1[88]]){delete _0x80e2x1a[_0xe9b1[92]][_0xe9b1[88]]};return db[_0xe9b1[67]][_0xe9b1[95]]({where:{id:_0x80e2x1a[_0xe9b1[89]][_0xe9b1[88]]}})[_0xe9b1[37]](handleEntityNotFound(_0x80e2x1e,null,_0xe9b1[96]))[_0xe9b1[37]](function(_0x80e2x21){if(_0x80e2x21){_0x80e2x1a[_0xe9b1[92]][_0xe9b1[97]]= _0x80e2x21[_0xe9b1[88]];_0x80e2x1a[_0xe9b1[92]][_0xe9b1[98]]= integrations[_0xe9b1[101]](_0x80e2x1a[_0xe9b1[92]][_0xe9b1[99]],_0x80e2x1a[_0xe9b1[92]][_0xe9b1[100]]);_0x80e2x1a[_0xe9b1[92]][_0xe9b1[102]]= integrations[_0xe9b1[103]](_0x80e2x1a[_0xe9b1[92]][_0xe9b1[99]],_0x80e2x1a[_0xe9b1[92]][_0xe9b1[100]]);return db[_0xe9b1[94]][_0xe9b1[91]](_0x80e2x1a[_0xe9b1[92]],{include:[{model:db[_0xe9b1[104]],as:_0xe9b1[98]},{model:db[_0xe9b1[104]],as:_0xe9b1[102]}]})};return null})[_0xe9b1[37]](respondWithResult(_0x80e2x1e,null,_0xe9b1[96]))[_0xe9b1[28]](handleError(_0x80e2x1e,null,_0xe9b1[96]))};exports[_0xe9b1[105]]= function(_0x80e2x1a,_0x80e2x1e,_0x80e2x33){var _0x80e2x37;return db[_0xe9b1[67]][_0xe9b1[95]]({where:{id:_0x80e2x1a[_0xe9b1[89]][_0xe9b1[88]]},attributes:[_0xe9b1[88],_0xe9b1[123],_0xe9b1[124],_0xe9b1[125],_0xe9b1[126],_0xe9b1[129],_0xe9b1[127]]})[_0xe9b1[37]](handleEntityNotFound(_0x80e2x1e,null,_0xe9b1[105]))[_0xe9b1[37]](function(_0x80e2x21){if(_0x80e2x21){_0x80e2x37=  new jsforce.Connection({oauth2:{loginUrl:_0x80e2x21[_0xe9b1[123]],clientId:_0x80e2x21[_0xe9b1[124]],clientSecret:_0x80e2x21[_0xe9b1[125]]}});return _0x80e2x37[_0xe9b1[130]](_0x80e2x21[_0xe9b1[126]],_0x80e2x21[_0xe9b1[129]][_0xe9b1[128]](_0x80e2x21[_0xe9b1[127]]))}})[_0xe9b1[37]](function(_0x80e2x21){if(_0x80e2x21){return _0x80e2x37[_0xe9b1[122]](_0xe9b1[121])[_0xe9b1[120]]()}})[_0xe9b1[37]](function(_0x80e2x21){var _0x80e2x38=[_0xe9b1[106],_0xe9b1[107],_0xe9b1[108],_0xe9b1[109],_0xe9b1[110],_0xe9b1[111],_0xe9b1[112],_0xe9b1[113]];if(_0x80e2x21){_[_0xe9b1[116]](_0x80e2x21[_0xe9b1[73]],function(_0x80e2x39){return (_0x80e2x39[_0xe9b1[114]]=== false&&  !_0x80e2x38[_0xe9b1[115]](_0x80e2x39[_0xe9b1[62]]))});return {count:_0x80e2x21[_0xe9b1[73]][_0xe9b1[74]],rows:_[_0xe9b1[83]](_0x80e2x21[_0xe9b1[73]],function(_0x80e2x39){return {id:_0x80e2x39[_0xe9b1[62]],name:_0x80e2x39[_0xe9b1[117]],custom:_0x80e2x39[_0xe9b1[114]],options:_0x80e2x39[_0xe9b1[118]]?_[_0xe9b1[83]](_0x80e2x39[_0xe9b1[118]],function(_0x80e2x31){return {name:_0x80e2x31[_0xe9b1[117]],value:_0x80e2x31[_0xe9b1[119]]}}):[]}})}}})[_0xe9b1[37]](respondWithResult(_0x80e2x1e,null,_0xe9b1[105]))[_0xe9b1[28]](handleError(_0x80e2x1e,null,_0xe9b1[105]))}
\ No newline at end of file
diff --git a/server/api/intSalesforceAccount/intSalesforceAccount.model.js b/server/api/intSalesforceAccount/intSalesforceAccount.model.js
new file mode 100644 (file)
index 0000000..640e860
--- /dev/null
@@ -0,0 +1 @@
+var _0x3426=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x69\x6E\x74\x5F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x3426[0];var _=require(_0x3426[1]);var util=require(_0x3426[2]);var logger=require(_0x3426[4])(_0x3426[3]);var attributes=require(_0x3426[5]);var integrations=require(_0x3426[6]);module[_0x3426[7]]= function(_0xf7adx6,_0xf7adx7){return _0xf7adx6[_0x3426[10]](_0x3426[8],attributes,{tableName:_0x3426[9],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/intSalesforceAccount/intSalesforceAccount.rpc.js b/server/api/intSalesforceAccount/intSalesforceAccount.rpc.js
new file mode 100644 (file)
index 0000000..057e355
--- /dev/null
@@ -0,0 +1 @@
+var _0x6709=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x53\x68\x6F\x77\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64"];_0x6709[0];var _=require(_0x6709[1]);var util=require(_0x6709[2]);var moment=require(_0x6709[3]);var BPromise=require(_0x6709[4]);var db=require(_0x6709[6])[_0x6709[5]];var utils=require(_0x6709[7]);var logger=require(_0x6709[9])(_0x6709[8]);var jayson=require(_0x6709[10]);var client=jayson[_0x6709[12]][_0x6709[11]]({port:9002});function respondWithRpcPromise(_0x4fb2xb,_0x4fb2xc,_0x4fb2xd){return  new BPromise(function(_0x4fb2xe,_0x4fb2xf){return client[_0x6709[25]](_0x4fb2xb,_0x4fb2xd)[_0x6709[24]](function(_0x4fb2x11){logger[_0x6709[17]](_0x6709[13],_0x4fb2xc,_0x6709[16]);logger[_0x6709[20]](_0x6709[18],_0x4fb2xc,_0x6709[16],JSON[_0x6709[19]](_0x4fb2x11));if(_0x4fb2x11[_0x6709[14]]){if(_0x4fb2x11[_0x6709[14]][_0x6709[21]]=== 500){logger[_0x6709[14]](_0x6709[13],_0x4fb2xc,_0x4fb2x11[_0x6709[14]][_0x6709[22]]);return _0x4fb2xf(_0x4fb2x11[_0x6709[14]][_0x6709[22]])};logger[_0x6709[14]](_0x6709[13],_0x4fb2xc,_0x4fb2x11[_0x6709[14]][_0x6709[22]]);return _0x4fb2xe(_0x4fb2x11[_0x6709[14]][_0x6709[22]])}else {logger[_0x6709[17]](_0x6709[13],_0x4fb2xc,_0x6709[16]);_0x4fb2xe(_0x4fb2x11[_0x6709[23]][_0x6709[22]])}})[_0x6709[15]](function(_0x4fb2x10){logger[_0x6709[14]](_0x6709[13],_0x4fb2xc,_0x4fb2x10);_0x4fb2xf(_0x4fb2x10)})})}exports[_0x6709[26]]= function(_0x4fb2xd){var _0x4fb2x12=this;return  new Promise(function(_0x4fb2xe,_0x4fb2xf){return db[_0x6709[37]][_0x6709[36]]({raw:_0x4fb2xd[_0x6709[27]]?(_0x4fb2xd[_0x6709[27]][_0x6709[28]]=== undefined)?true:false:true,where:_0x4fb2xd[_0x6709[27]]?_0x4fb2xd[_0x6709[27]][_0x6709[29]]|| null:null,attributes:_0x4fb2xd[_0x6709[27]]?_0x4fb2xd[_0x6709[27]][_0x6709[30]]|| null:null,limit:_0x4fb2xd[_0x6709[27]]?_0x4fb2xd[_0x6709[27]][_0x6709[31]]|| null:null,include:_0x4fb2xd[_0x6709[27]]?(_0x4fb2xd[_0x6709[27]][_0x6709[32]]?_[_0x6709[35]](_0x4fb2xd[_0x6709[27]][_0x6709[32]],function(_0x4fb2x13){return {model:db[_0x4fb2x13[_0x6709[33]]],as:_0x4fb2x13[_0x6709[34]],attributes:_0x4fb2x13[_0x6709[30]],include:_0x4fb2x13[_0x6709[32]]?_[_0x6709[35]](_0x4fb2x13[_0x6709[32]],function(_0x4fb2x14){return {model:db[_0x4fb2x14[_0x6709[33]]],as:_0x4fb2x14[_0x6709[34]],attributes:_0x4fb2x14[_0x6709[30]],include:_0x4fb2x14[_0x6709[32]]?_[_0x6709[35]](_0x4fb2x14[_0x6709[32]],function(_0x4fb2x15){return {model:db[_0x4fb2x15[_0x6709[33]]],as:_0x4fb2x15[_0x6709[34]],attributes:_0x4fb2x15[_0x6709[30]]}}):[]}}):[]}}):[]):[]})[_0x6709[24]](function(_0x4fb2x11){logger[_0x6709[17]](_0x6709[26],_0x4fb2xd);logger[_0x6709[20]](_0x6709[26],_0x4fb2xd,JSON[_0x6709[19]](_0x4fb2x11));_0x4fb2xe(_0x4fb2x11)})[_0x6709[15]](function(_0x4fb2x10){logger[_0x6709[14]](_0x6709[26],_0x4fb2x10[_0x6709[22]],_0x4fb2xd);_0x4fb2xf(_0x4fb2x12[_0x6709[14]](500,_0x4fb2x10[_0x6709[22]]))})})};exports[_0x6709[38]]= function(_0x4fb2xd){var _0x4fb2x12=this;return  new Promise(function(_0x4fb2xe,_0x4fb2xf){return db[_0x6709[37]][_0x6709[39]]({raw:_0x4fb2xd[_0x6709[27]]?(_0x4fb2xd[_0x6709[27]][_0x6709[28]]=== undefined)?true:false:true,where:_0x4fb2xd[_0x6709[27]]?_0x4fb2xd[_0x6709[27]][_0x6709[29]]|| null:null,attributes:_0x4fb2xd[_0x6709[27]]?_0x4fb2xd[_0x6709[27]][_0x6709[30]]|| null:null,include:_0x4fb2xd[_0x6709[27]]?(_0x4fb2xd[_0x6709[27]][_0x6709[32]]?_[_0x6709[35]](_0x4fb2xd[_0x6709[27]][_0x6709[32]],function(_0x4fb2x13){return {model:db[_0x4fb2x13[_0x6709[33]]],as:_0x4fb2x13[_0x6709[34]],attributes:_0x4fb2x13[_0x6709[30]],include:_0x4fb2x13[_0x6709[32]]?_[_0x6709[35]](_0x4fb2x13[_0x6709[32]],function(_0x4fb2x14){return {model:db[_0x4fb2x14[_0x6709[33]]],as:_0x4fb2x14[_0x6709[34]],attributes:_0x4fb2x14[_0x6709[30]],include:_0x4fb2x14[_0x6709[32]]?_[_0x6709[35]](_0x4fb2x14[_0x6709[32]],function(_0x4fb2x15){return {model:db[_0x4fb2x15[_0x6709[33]]],as:_0x4fb2x15[_0x6709[34]],attributes:_0x4fb2x15[_0x6709[30]]}}):[]}}):[]}}):[]):[]})[_0x6709[24]](function(_0x4fb2x11){logger[_0x6709[17]](_0x6709[38],_0x4fb2xd);logger[_0x6709[20]](_0x6709[38],_0x4fb2xd,JSON[_0x6709[19]](_0x4fb2x11));_0x4fb2xe(_0x4fb2x11)})[_0x6709[15]](function(_0x4fb2x10){logger[_0x6709[14]](_0x6709[38],_0x4fb2x10[_0x6709[22]],_0x4fb2xd);_0x4fb2xf(_0x4fb2x12[_0x6709[14]](500,_0x4fb2x10[_0x6709[22]]))})})}
\ No newline at end of file
diff --git a/server/api/intSalesforceConfiguration/index.js b/server/api/intSalesforceConfiguration/index.js
new file mode 100644 (file)
index 0000000..349c802
--- /dev/null
@@ -0,0 +1 @@
+var _0x9b6b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9b6b[0];var multer=require(_0x9b6b[1]);var util=require(_0x9b6b[2]);var path=require(_0x9b6b[3]);var express=require(_0x9b6b[4]);var router=express.Router();var auth=require(_0x9b6b[5]);var config=require(_0x9b6b[6]);var controller=require(_0x9b6b[7]);router[_0x9b6b[11]](_0x9b6b[8],auth[_0x9b6b[9]](),controller[_0x9b6b[10]]);router[_0x9b6b[11]](_0x9b6b[12],auth[_0x9b6b[9]](),controller[_0x9b6b[13]]);router[_0x9b6b[11]](_0x9b6b[14],auth[_0x9b6b[9]](),controller[_0x9b6b[15]]);router[_0x9b6b[11]](_0x9b6b[16],auth[_0x9b6b[9]](),controller[_0x9b6b[17]]);router[_0x9b6b[11]](_0x9b6b[18],auth[_0x9b6b[9]](),controller[_0x9b6b[19]]);router[_0x9b6b[21]](_0x9b6b[8],auth[_0x9b6b[9]](),controller[_0x9b6b[20]]);router[_0x9b6b[23]](_0x9b6b[12],auth[_0x9b6b[9]](),controller[_0x9b6b[22]]);router[_0x9b6b[25]](_0x9b6b[12],auth[_0x9b6b[9]](),controller[_0x9b6b[24]]);module[_0x9b6b[26]]= router
\ No newline at end of file
diff --git a/server/api/intSalesforceConfiguration/intSalesforceConfiguration.attributes.js b/server/api/intSalesforceConfiguration/intSalesforceConfiguration.attributes.js
new file mode 100644 (file)
index 0000000..027de7c
--- /dev/null
@@ -0,0 +1 @@
+var _0xe84d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xe84d[0];var Sequelize=require(_0xe84d[1]);module[_0xe84d[2]]= {name:{type:Sequelize[_0xe84d[3]]},description:{type:Sequelize[_0xe84d[3]]}}
\ No newline at end of file
diff --git a/server/api/intSalesforceConfiguration/intSalesforceConfiguration.controller.js b/server/api/intSalesforceConfiguration/intSalesforceConfiguration.controller.js
new file mode 100644 (file)
index 0000000..cd9d918
--- /dev/null
@@ -0,0 +1 @@
+var _0x567d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73"];_0x567d[0];var jsonpatch=require(_0x567d[1]);var rp=require(_0x567d[2]);var moment=require(_0x567d[3]);var BPromise=require(_0x567d[4]);var util=require(_0x567d[5]);var path=require(_0x567d[6]);var sox=require(_0x567d[7]);var ejs=require(_0x567d[8]);var fs=require(_0x567d[9]);var _=require(_0x567d[10]);var squel=require(_0x567d[11]);var crypto=require(_0x567d[12]);var jsforce=require(_0x567d[13]);var toCsv=require(_0x567d[14]);var qs=require(_0x567d[15]);var logger=require(_0x567d[17])(_0x567d[16]);var utils=require(_0x567d[18]);var config=require(_0x567d[19]);var db=require(_0x567d[21])[_0x567d[20]];var jayson=require(_0x567d[22]);var client=jayson[_0x567d[24]][_0x567d[23]]({port:9002});function respondWithRpcPromise(_0x7f1cx17,_0x7f1cx18,_0x7f1cx19){return  new BPromise(function(_0x7f1cx1a,_0x7f1cx1b){return client[_0x567d[37]](_0x7f1cx17,_0x7f1cx19)[_0x567d[36]](function(_0x7f1cx1d){logger[_0x567d[29]](_0x567d[25],_0x7f1cx18,_0x567d[28]);logger[_0x567d[32]](_0x567d[30],_0x7f1cx18,_0x567d[28],JSON[_0x567d[31]](_0x7f1cx1d));if(_0x7f1cx1d[_0x567d[26]]){if(_0x7f1cx1d[_0x567d[26]][_0x567d[33]]=== 500){logger[_0x567d[26]](_0x567d[25],_0x7f1cx18,_0x7f1cx1d[_0x567d[26]][_0x567d[34]]);return _0x7f1cx1b(_0x7f1cx1d[_0x567d[26]][_0x567d[34]])};logger[_0x567d[26]](_0x567d[25],_0x7f1cx18,_0x7f1cx1d[_0x567d[26]][_0x567d[34]]);return _0x7f1cx1a(_0x7f1cx1d[_0x567d[26]][_0x567d[34]])}else {logger[_0x567d[29]](_0x567d[25],_0x7f1cx18,_0x567d[28]);_0x7f1cx1a(_0x7f1cx1d[_0x567d[35]][_0x567d[34]])}})[_0x567d[27]](function(_0x7f1cx1c){logger[_0x567d[26]](_0x567d[25],_0x7f1cx18,_0x7f1cx1c);_0x7f1cx1b(_0x7f1cx1c)})})}function respondWithStatusCode(_0x7f1cx1d,_0x7f1cx1f,_0x7f1cx18){_0x7f1cx1f= _0x7f1cx1f|| 204;return function(_0x7f1cx20){if(_0x7f1cx20){logger[_0x567d[29]](_0x567d[30],_0x7f1cx18,_0x7f1cx1f,_0x567d[38]);logger[_0x567d[32]](_0x567d[39],_0x7f1cx18,_0x7f1cx1f,_0x567d[38]);return _0x7f1cx1d[_0x567d[40]](_0x7f1cx1f)};return _0x7f1cx1d[_0x567d[42]](304)[_0x567d[41]]()}}function respondWithResult(_0x7f1cx1d,_0x7f1cx1f,_0x7f1cx18){_0x7f1cx1f= _0x7f1cx1f|| 200;return function(_0x7f1cx20){if(_0x7f1cx20){logger[_0x567d[29]](_0x567d[30],_0x7f1cx18,_0x7f1cx1f,_0x567d[43]);logger[_0x567d[32]](_0x567d[39],_0x7f1cx18,_0x7f1cx1f,_0x567d[43],JSON[_0x567d[31]](_0x7f1cx20));return _0x7f1cx1d[_0x567d[42]](_0x7f1cx1f)[_0x567d[44]](_0x7f1cx20)};return _0x7f1cx1d[_0x567d[42]](304)[_0x567d[41]]()}}function respondWithFilteredResult(_0x7f1cx1d,_0x7f1cx23,_0x7f1cx18){return function(_0x7f1cx20){if(_0x7f1cx20){var _0x7f1cx24=_0x7f1cx20[_0x567d[45]],_0x7f1cx25=_0x7f1cx23[_0x567d[46]],_0x7f1cx26=_0x7f1cx23[_0x567d[46]]+ _0x7f1cx23[_0x567d[47]],_0x7f1cx1f;if(_0x7f1cx26>= _0x7f1cx24){_0x7f1cx26= _0x7f1cx24;_0x7f1cx1f= 200}else {_0x7f1cx1f= 206};_0x7f1cx1d[_0x567d[42]](_0x7f1cx1f);logger[_0x567d[29]](_0x567d[30],_0x7f1cx18,_0x7f1cx1f,_0x567d[48]);logger[_0x567d[32]](_0x567d[39],_0x7f1cx18,_0x7f1cx1f,_0x567d[43],JSON[_0x567d[31]](_0x7f1cx20));return _0x7f1cx1d[_0x567d[52]](_0x567d[49],_0x7f1cx25+ _0x567d[50]+ _0x7f1cx26+ _0x567d[51]+ _0x7f1cx24)[_0x567d[44]](_0x7f1cx20)};return null}}function patchUpdates(_0x7f1cx28){return function(_0x7f1cx20){try{jsonpatch[_0x567d[53]](_0x7f1cx20,_0x7f1cx28,true)}catch(err){return BPromise[_0x567d[54]](err)};return _0x7f1cx20[_0x567d[55]]()}}function saveUpdates(_0x7f1cx2a,_0x7f1cx1f,_0x7f1cx18){return function(_0x7f1cx20){if(_0x7f1cx20){return _0x7f1cx20[_0x567d[57]](_0x7f1cx2a)[_0x567d[36]](function(_0x7f1cx2b){logger[_0x567d[29]](_0x567d[30],_0x7f1cx18,_0x7f1cx1f,_0x567d[56]);logger[_0x567d[32]](_0x567d[39],_0x7f1cx18,_0x7f1cx1f,_0x567d[56],JSON[_0x567d[31]](_0x7f1cx20));return _0x7f1cx2b})};return null}}function removeEntity(_0x7f1cx1d,_0x7f1cx1f,_0x7f1cx18){return function(_0x7f1cx20){if(_0x7f1cx20){return _0x7f1cx20[_0x567d[59]]()[_0x567d[36]](function(){logger[_0x567d[29]](_0x567d[30],_0x7f1cx18,_0x7f1cx1f,_0x567d[58]);logger[_0x567d[32]](_0x567d[39],_0x7f1cx18,_0x7f1cx1f,_0x567d[58],JSON[_0x567d[31]](_0x7f1cx20));_0x7f1cx1d[_0x567d[42]](204)[_0x567d[41]]()})}}}function handleEntityNotFound(_0x7f1cx1d,_0x7f1cx1f,_0x7f1cx18){return function(_0x7f1cx20){if(!_0x7f1cx20){logger[_0x567d[26]](_0x567d[30],_0x7f1cx18,404,_0x567d[60]);_0x7f1cx1d[_0x567d[42]](404)[_0x567d[41]]();return null};return _0x7f1cx20}}function handleError(_0x7f1cx1d,_0x7f1cx1f,_0x7f1cx18){_0x7f1cx1f= _0x7f1cx1f|| 500;return function(_0x7f1cx1c){logger[_0x567d[26]](_0x567d[30],_0x7f1cx18,_0x7f1cx1f,JSON[_0x567d[31]](_0x7f1cx1c));delete _0x7f1cx1c[_0x567d[61]];_0x7f1cx1d[_0x567d[42]](_0x7f1cx1f)[_0x567d[62]](_0x7f1cx1c)}}exports[_0x567d[63]]= function(_0x7f1cx19,_0x7f1cx1d){var _0x7f1cx23={},_0x7f1cx2f={};_0x7f1cx2f[_0x567d[64]]= _[_0x567d[67]](db[_0x567d[66]][_0x567d[65]]);_0x7f1cx2f[_0x567d[68]]= _[_0x567d[67]](_0x7f1cx19[_0x567d[68]]);_0x7f1cx2f[_0x567d[69]]= _[_0x567d[70]](_0x7f1cx2f[_0x567d[64]],_0x7f1cx2f[_0x567d[68]]);_0x7f1cx23[_0x567d[71]]= _[_0x567d[70]](_0x7f1cx2f[_0x567d[64]],qs[_0x567d[72]](_0x7f1cx19[_0x567d[68]][_0x567d[72]]));_0x7f1cx23[_0x567d[71]]= (_0x7f1cx23[_0x567d[71]][_0x567d[73]])?_0x7f1cx23[_0x567d[71]]:_0x7f1cx2f[_0x567d[64]];if(!_0x7f1cx19[_0x567d[68]][_0x567d[75]](_0x567d[74])){_0x7f1cx23[_0x567d[47]]= qs[_0x567d[47]](_0x7f1cx19[_0x567d[68]][_0x567d[47]]);_0x7f1cx23[_0x567d[46]]= qs[_0x567d[46]](_0x7f1cx19[_0x567d[68]][_0x567d[46]])};_0x7f1cx23[_0x567d[76]]= qs[_0x567d[77]](_0x7f1cx19[_0x567d[68]][_0x567d[77]]);_0x7f1cx23[_0x567d[78]]= qs[_0x567d[69]](_[_0x567d[79]](_0x7f1cx19[_0x567d[68]],_0x7f1cx2f[_0x567d[69]]));if(_0x7f1cx19[_0x567d[68]][_0x567d[80]]){_0x7f1cx23[_0x567d[78]]= _[_0x567d[83]](_0x7f1cx23[_0x567d[78]],{$or:_[_0x567d[82]](_0x7f1cx23[_0x567d[71]],function(_0x7f1cx30){var _0x7f1cx31={};_0x7f1cx31[_0x7f1cx30]= {$like:_0x567d[81]+ _0x7f1cx19[_0x567d[68]][_0x567d[80]]+ _0x567d[81]};return _0x7f1cx31})})};_0x7f1cx23= _[_0x567d[83]]({},_0x7f1cx23,_0x7f1cx19[_0x567d[84]]);return db[_0x567d[66]][_0x567d[85]](_0x7f1cx23)[_0x567d[36]](respondWithFilteredResult(_0x7f1cx1d,_0x7f1cx23,_0x567d[63]))[_0x567d[27]](handleError(_0x7f1cx1d,null,_0x567d[63]))};exports[_0x567d[86]]= function(_0x7f1cx19,_0x7f1cx1d){var _0x7f1cx23={raw:false,where:{id:_0x7f1cx19[_0x567d[88]][_0x567d[87]]}},_0x7f1cx2f={};_0x7f1cx2f[_0x567d[64]]= _[_0x567d[67]](db[_0x567d[66]][_0x567d[65]]);_0x7f1cx2f[_0x567d[68]]= _[_0x567d[67]](_0x7f1cx19[_0x567d[68]]);_0x7f1cx2f[_0x567d[69]]= _[_0x567d[70]](_0x7f1cx2f[_0x567d[64]],_0x7f1cx2f[_0x567d[68]]);_0x7f1cx23[_0x567d[71]]= _[_0x567d[70]](_0x7f1cx2f[_0x567d[64]],qs[_0x567d[72]](_0x7f1cx19[_0x567d[68]][_0x567d[72]]));_0x7f1cx23[_0x567d[71]]= (_0x7f1cx23[_0x567d[71]][_0x567d[73]])?_0x7f1cx23[_0x567d[71]]:_0x7f1cx2f[_0x567d[64]];_0x7f1cx23= _[_0x567d[83]]({},_0x7f1cx23,_0x7f1cx19[_0x567d[84]]);return db[_0x567d[66]][_0x567d[89]](_0x7f1cx23)[_0x567d[36]](handleEntityNotFound(_0x7f1cx1d,null,_0x567d[86]))[_0x567d[36]](respondWithResult(_0x7f1cx1d,null,_0x567d[86]))[_0x567d[27]](handleError(_0x7f1cx1d,null,_0x567d[86]))};exports[_0x567d[90]]= function(_0x7f1cx19,_0x7f1cx1d){return db[_0x567d[66]][_0x567d[90]](_0x7f1cx19[_0x567d[91]],{})[_0x567d[36]](respondWithResult(_0x7f1cx1d,201,_0x567d[90]))[_0x567d[27]](handleError(_0x7f1cx1d,null,_0x567d[90]))};exports[_0x567d[57]]= function(_0x7f1cx19,_0x7f1cx1d){if(_0x7f1cx19[_0x567d[91]][_0x567d[87]]){delete _0x7f1cx19[_0x567d[91]][_0x567d[87]]};return db[_0x567d[66]][_0x567d[89]]({where:{id:_0x7f1cx19[_0x567d[88]][_0x567d[87]]}})[_0x567d[36]](handleEntityNotFound(_0x7f1cx1d,null,_0x567d[57]))[_0x567d[36]](saveUpdates(_0x7f1cx19[_0x567d[91]],null,_0x567d[57]))[_0x567d[36]](respondWithResult(_0x7f1cx1d,null,_0x567d[57]))[_0x567d[27]](handleError(_0x7f1cx1d,null,_0x567d[57]))};exports[_0x567d[59]]= function(_0x7f1cx19,_0x7f1cx1d){return db[_0x567d[66]][_0x567d[89]]({where:{id:_0x7f1cx19[_0x567d[88]][_0x567d[87]]}})[_0x567d[36]](handleEntityNotFound(_0x7f1cx1d,null,_0x567d[59]))[_0x567d[36]](removeEntity(_0x7f1cx1d,null,_0x567d[59]))[_0x567d[27]](handleError(_0x7f1cx1d,null,_0x567d[59]))};exports[_0x567d[92]]= function(_0x7f1cx19,_0x7f1cx20,_0x7f1cx32){var _0x7f1cx23={};var _0x7f1cx2f={};var _0x7f1cx33;var _0x7f1cx24;return db[_0x567d[66]][_0x567d[94]]({where:{id:_0x7f1cx19[_0x567d[88]][_0x567d[87]]}})[_0x567d[36]](handleEntityNotFound(_0x7f1cx20,null,_0x567d[92]))[_0x567d[36]](function(_0x7f1cx20){if(_0x7f1cx20){_0x7f1cx33= _0x7f1cx20;_0x7f1cx2f[_0x567d[64]]= _[_0x567d[67]](db[_0x567d[93]][_0x567d[65]]);_0x7f1cx2f[_0x567d[68]]= _[_0x567d[67]](_0x7f1cx19[_0x567d[68]]);_0x7f1cx2f[_0x567d[69]]= _[_0x567d[70]](_0x7f1cx2f[_0x567d[64]],_0x7f1cx2f[_0x567d[68]]);_0x7f1cx23[_0x567d[71]]= _[_0x567d[70]](_0x7f1cx2f[_0x567d[64]],qs[_0x567d[72]](_0x7f1cx19[_0x567d[68]][_0x567d[72]]));_0x7f1cx23[_0x567d[71]]= (_0x7f1cx23[_0x567d[71]][_0x567d[73]])?_0x7f1cx23[_0x567d[71]]:_0x7f1cx2f[_0x567d[64]];_0x7f1cx23[_0x567d[76]]= qs[_0x567d[77]](_0x7f1cx19[_0x567d[68]][_0x567d[77]]);_0x7f1cx23[_0x567d[78]]= qs[_0x567d[69]](_[_0x567d[79]](_0x7f1cx19[_0x567d[68]],_0x7f1cx2f[_0x567d[69]]));if(_0x7f1cx19[_0x567d[68]][_0x567d[80]]){_0x7f1cx23[_0x567d[78]]= _[_0x567d[83]](_0x7f1cx23[_0x567d[78]],{$or:_[_0x567d[82]](_0x7f1cx23[_0x567d[71]],function(_0x7f1cx30){var _0x7f1cx31={};_0x7f1cx31[_0x7f1cx30]= {$like:_0x567d[81]+ _0x7f1cx19[_0x567d[68]][_0x567d[80]]+ _0x567d[81]};return _0x7f1cx31})})};_0x7f1cx23= _[_0x567d[83]]({},_0x7f1cx23,_0x7f1cx19[_0x567d[84]]);return _0x7f1cx33[_0x567d[92]](_0x7f1cx23)}})[_0x567d[36]](function(_0x7f1cx35){if(_0x7f1cx35){_0x7f1cx24= _0x7f1cx35[_0x567d[73]];if(!_0x7f1cx19[_0x567d[68]][_0x567d[75]](_0x567d[74])){_0x7f1cx23[_0x567d[47]]= qs[_0x567d[47]](_0x7f1cx19[_0x567d[68]][_0x567d[47]]);_0x7f1cx23[_0x567d[46]]= qs[_0x567d[46]](_0x7f1cx19[_0x567d[68]][_0x567d[46]])};return _0x7f1cx33[_0x567d[92]](_0x7f1cx23)}})[_0x567d[36]](function(_0x7f1cx34){return _0x7f1cx34?{count:_0x7f1cx24,rows:_0x7f1cx34}:null})[_0x567d[36]](respondWithResult(_0x7f1cx20,null,_0x567d[92]))[_0x567d[27]](handleError(_0x7f1cx20,null,_0x567d[92]))};exports[_0x567d[95]]= function(_0x7f1cx19,_0x7f1cx20,_0x7f1cx32){var _0x7f1cx23={};var _0x7f1cx2f={};var _0x7f1cx33;var _0x7f1cx24;return db[_0x567d[66]][_0x567d[94]]({where:{id:_0x7f1cx19[_0x567d[88]][_0x567d[87]]}})[_0x567d[36]](handleEntityNotFound(_0x7f1cx20,null,_0x567d[95]))[_0x567d[36]](function(_0x7f1cx20){if(_0x7f1cx20){_0x7f1cx33= _0x7f1cx20;_0x7f1cx2f[_0x567d[64]]= _[_0x567d[67]](db[_0x567d[93]][_0x567d[65]]);_0x7f1cx2f[_0x567d[68]]= _[_0x567d[67]](_0x7f1cx19[_0x567d[68]]);_0x7f1cx2f[_0x567d[69]]= _[_0x567d[70]](_0x7f1cx2f[_0x567d[64]],_0x7f1cx2f[_0x567d[68]]);_0x7f1cx23[_0x567d[71]]= _[_0x567d[70]](_0x7f1cx2f[_0x567d[64]],qs[_0x567d[72]](_0x7f1cx19[_0x567d[68]][_0x567d[72]]));_0x7f1cx23[_0x567d[71]]= (_0x7f1cx23[_0x567d[71]][_0x567d[73]])?_0x7f1cx23[_0x567d[71]]:_0x7f1cx2f[_0x567d[64]];_0x7f1cx23[_0x567d[76]]= qs[_0x567d[77]](_0x7f1cx19[_0x567d[68]][_0x567d[77]]);_0x7f1cx23[_0x567d[78]]= qs[_0x567d[69]](_[_0x567d[79]](_0x7f1cx19[_0x567d[68]],_0x7f1cx2f[_0x567d[69]]));if(_0x7f1cx19[_0x567d[68]][_0x567d[80]]){_0x7f1cx23[_0x567d[78]]= _[_0x567d[83]](_0x7f1cx23[_0x567d[78]],{$or:_[_0x567d[82]](_0x7f1cx23[_0x567d[71]],function(_0x7f1cx30){var _0x7f1cx31={};_0x7f1cx31[_0x7f1cx30]= {$like:_0x567d[81]+ _0x7f1cx19[_0x567d[68]][_0x567d[80]]+ _0x567d[81]};return _0x7f1cx31})})};_0x7f1cx23= _[_0x567d[83]]({},_0x7f1cx23,_0x7f1cx19[_0x567d[84]]);return _0x7f1cx33[_0x567d[95]](_0x7f1cx23)}})[_0x567d[36]](function(_0x7f1cx35){if(_0x7f1cx35){_0x7f1cx24= _0x7f1cx35[_0x567d[73]];if(!_0x7f1cx19[_0x567d[68]][_0x567d[75]](_0x567d[74])){_0x7f1cx23[_0x567d[47]]= qs[_0x567d[47]](_0x7f1cx19[_0x567d[68]][_0x567d[47]]);_0x7f1cx23[_0x567d[46]]= qs[_0x567d[46]](_0x7f1cx19[_0x567d[68]][_0x567d[46]])};return _0x7f1cx33[_0x567d[95]](_0x7f1cx23)}})[_0x567d[36]](function(_0x7f1cx34){return _0x7f1cx34?{count:_0x7f1cx24,rows:_0x7f1cx34}:null})[_0x567d[36]](respondWithResult(_0x7f1cx20,null,_0x567d[95]))[_0x567d[27]](handleError(_0x7f1cx20,null,_0x567d[95]))};exports[_0x567d[96]]= function(_0x7f1cx19,_0x7f1cx20,_0x7f1cx32){var _0x7f1cx23={};var _0x7f1cx2f={};var _0x7f1cx33;var _0x7f1cx24;return db[_0x567d[66]][_0x567d[94]]({where:{id:_0x7f1cx19[_0x567d[88]][_0x567d[87]]}})[_0x567d[36]](handleEntityNotFound(_0x7f1cx20,null,_0x567d[96]))[_0x567d[36]](function(_0x7f1cx20){if(_0x7f1cx20){_0x7f1cx33= _0x7f1cx20;_0x7f1cx2f[_0x567d[64]]= _[_0x567d[67]](db[_0x567d[93]][_0x567d[65]]);_0x7f1cx2f[_0x567d[68]]= _[_0x567d[67]](_0x7f1cx19[_0x567d[68]]);_0x7f1cx2f[_0x567d[69]]= _[_0x567d[70]](_0x7f1cx2f[_0x567d[64]],_0x7f1cx2f[_0x567d[68]]);_0x7f1cx23[_0x567d[71]]= _[_0x567d[70]](_0x7f1cx2f[_0x567d[64]],qs[_0x567d[72]](_0x7f1cx19[_0x567d[68]][_0x567d[72]]));_0x7f1cx23[_0x567d[71]]= (_0x7f1cx23[_0x567d[71]][_0x567d[73]])?_0x7f1cx23[_0x567d[71]]:_0x7f1cx2f[_0x567d[64]];_0x7f1cx23[_0x567d[76]]= qs[_0x567d[77]](_0x7f1cx19[_0x567d[68]][_0x567d[77]]);_0x7f1cx23[_0x567d[78]]= qs[_0x567d[69]](_[_0x567d[79]](_0x7f1cx19[_0x567d[68]],_0x7f1cx2f[_0x567d[69]]));if(_0x7f1cx19[_0x567d[68]][_0x567d[80]]){_0x7f1cx23[_0x567d[78]]= _[_0x567d[83]](_0x7f1cx23[_0x567d[78]],{$or:_[_0x567d[82]](_0x7f1cx23[_0x567d[71]],function(_0x7f1cx30){var _0x7f1cx31={};_0x7f1cx31[_0x7f1cx30]= {$like:_0x567d[81]+ _0x7f1cx19[_0x567d[68]][_0x567d[80]]+ _0x567d[81]};return _0x7f1cx31})})};_0x7f1cx23= _[_0x567d[83]]({},_0x7f1cx23,_0x7f1cx19[_0x567d[84]]);return _0x7f1cx33[_0x567d[96]](_0x7f1cx23)}})[_0x567d[36]](function(_0x7f1cx35){if(_0x7f1cx35){_0x7f1cx24= _0x7f1cx35[_0x567d[73]];if(!_0x7f1cx19[_0x567d[68]][_0x567d[75]](_0x567d[74])){_0x7f1cx23[_0x567d[47]]= qs[_0x567d[47]](_0x7f1cx19[_0x567d[68]][_0x567d[47]]);_0x7f1cx23[_0x567d[46]]= qs[_0x567d[46]](_0x7f1cx19[_0x567d[68]][_0x567d[46]])};return _0x7f1cx33[_0x567d[96]](_0x7f1cx23)}})[_0x567d[36]](function(_0x7f1cx34){return _0x7f1cx34?{count:_0x7f1cx24,rows:_0x7f1cx34}:null})[_0x567d[36]](respondWithResult(_0x7f1cx20,null,_0x567d[96]))[_0x567d[27]](handleError(_0x7f1cx20,null,_0x567d[96]))}
\ No newline at end of file
diff --git a/server/api/intSalesforceConfiguration/intSalesforceConfiguration.model.js b/server/api/intSalesforceConfiguration/intSalesforceConfiguration.model.js
new file mode 100644 (file)
index 0000000..cbc6a66
--- /dev/null
@@ -0,0 +1 @@
+var _0x745c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x5F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x745c[0];var _=require(_0x745c[1]);var util=require(_0x745c[2]);var logger=require(_0x745c[4])(_0x745c[3]);var attributes=require(_0x745c[5]);module[_0x745c[6]]= function(_0x39e3x5,_0x39e3x6){return _0x39e3x5[_0x745c[9]](_0x745c[7],attributes,{tableName:_0x745c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/intSalesforceConfiguration/intSalesforceConfiguration.rpc.js b/server/api/intSalesforceConfiguration/intSalesforceConfiguration.rpc.js
new file mode 100644 (file)
index 0000000..78cfe0b
--- /dev/null
@@ -0,0 +1 @@
+var _0xfd27=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xfd27[0];var _=require(_0xfd27[1]);var util=require(_0xfd27[2]);var moment=require(_0xfd27[3]);var BPromise=require(_0xfd27[4]);var db=require(_0xfd27[6])[_0xfd27[5]];var utils=require(_0xfd27[7]);var logger=require(_0xfd27[9])(_0xfd27[8]);var jayson=require(_0xfd27[10]);var client=jayson[_0xfd27[12]][_0xfd27[11]]({port:9002});function respondWithRpcPromise(_0x7cbbxb,_0x7cbbxc,_0x7cbbxd){return  new BPromise(function(_0x7cbbxe,_0x7cbbxf){return client[_0xfd27[25]](_0x7cbbxb,_0x7cbbxd)[_0xfd27[24]](function(_0x7cbbx11){logger[_0xfd27[17]](_0xfd27[13],_0x7cbbxc,_0xfd27[16]);logger[_0xfd27[20]](_0xfd27[18],_0x7cbbxc,_0xfd27[16],JSON[_0xfd27[19]](_0x7cbbx11));if(_0x7cbbx11[_0xfd27[14]]){if(_0x7cbbx11[_0xfd27[14]][_0xfd27[21]]=== 500){logger[_0xfd27[14]](_0xfd27[13],_0x7cbbxc,_0x7cbbx11[_0xfd27[14]][_0xfd27[22]]);return _0x7cbbxf(_0x7cbbx11[_0xfd27[14]][_0xfd27[22]])};logger[_0xfd27[14]](_0xfd27[13],_0x7cbbxc,_0x7cbbx11[_0xfd27[14]][_0xfd27[22]]);return _0x7cbbxe(_0x7cbbx11[_0xfd27[14]][_0xfd27[22]])}else {logger[_0xfd27[17]](_0xfd27[13],_0x7cbbxc,_0xfd27[16]);_0x7cbbxe(_0x7cbbx11[_0xfd27[23]][_0xfd27[22]])}})[_0xfd27[15]](function(_0x7cbbx10){logger[_0xfd27[14]](_0xfd27[13],_0x7cbbxc,_0x7cbbx10);_0x7cbbxf(_0x7cbbx10)})})}
\ No newline at end of file
diff --git a/server/api/intSalesforceField/index.js b/server/api/intSalesforceField/index.js
new file mode 100644 (file)
index 0000000..c789a7d
--- /dev/null
@@ -0,0 +1 @@
+var _0xf890=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf890[0];var multer=require(_0xf890[1]);var util=require(_0xf890[2]);var path=require(_0xf890[3]);var express=require(_0xf890[4]);var router=express.Router();var auth=require(_0xf890[5]);var config=require(_0xf890[6]);var controller=require(_0xf890[7]);router[_0xf890[11]](_0xf890[8],auth[_0xf890[9]](),controller[_0xf890[10]]);router[_0xf890[11]](_0xf890[12],auth[_0xf890[9]](),controller[_0xf890[13]]);router[_0xf890[15]](_0xf890[8],auth[_0xf890[9]](),controller[_0xf890[14]]);router[_0xf890[17]](_0xf890[12],auth[_0xf890[9]](),controller[_0xf890[16]]);router[_0xf890[19]](_0xf890[12],auth[_0xf890[9]](),controller[_0xf890[18]]);module[_0xf890[20]]= router
\ No newline at end of file
diff --git a/server/api/intSalesforceField/intSalesforceField.attributes.js b/server/api/intSalesforceField/intSalesforceField.attributes.js
new file mode 100644 (file)
index 0000000..37f4946
--- /dev/null
@@ -0,0 +1 @@
+var _0xad81=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47"];_0xad81[0];var Sequelize=require(_0xad81[1]);module[_0xad81[2]]= {type:{type:Sequelize.ENUM(_0xad81[3],_0xad81[4],_0xad81[5],_0xad81[6]),defaultValue:_0xad81[3]},content:{type:Sequelize[_0xad81[7]]},key:{type:Sequelize[_0xad81[7]]},keyType:{type:Sequelize.ENUM(_0xad81[3],_0xad81[4],_0xad81[5])},keyContent:{type:Sequelize[_0xad81[7]]},idField:{type:Sequelize[_0xad81[7]]},variableName:{type:Sequelize[_0xad81[7]]}}
\ No newline at end of file
diff --git a/server/api/intSalesforceField/intSalesforceField.controller.js b/server/api/intSalesforceField/intSalesforceField.controller.js
new file mode 100644 (file)
index 0000000..7591d25
--- /dev/null
@@ -0,0 +1 @@
+var _0xf9c9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xf9c9[0];var jsonpatch=require(_0xf9c9[1]);var rp=require(_0xf9c9[2]);var moment=require(_0xf9c9[3]);var BPromise=require(_0xf9c9[4]);var util=require(_0xf9c9[5]);var path=require(_0xf9c9[6]);var sox=require(_0xf9c9[7]);var ejs=require(_0xf9c9[8]);var fs=require(_0xf9c9[9]);var _=require(_0xf9c9[10]);var squel=require(_0xf9c9[11]);var crypto=require(_0xf9c9[12]);var jsforce=require(_0xf9c9[13]);var toCsv=require(_0xf9c9[14]);var qs=require(_0xf9c9[15]);var logger=require(_0xf9c9[17])(_0xf9c9[16]);var utils=require(_0xf9c9[18]);var config=require(_0xf9c9[19]);var db=require(_0xf9c9[21])[_0xf9c9[20]];function respondWithStatusCode(_0xa0d9x15,_0xa0d9x16,_0xa0d9x17){_0xa0d9x16= _0xa0d9x16|| 204;return function(_0xa0d9x18){if(_0xa0d9x18){logger[_0xf9c9[24]](_0xf9c9[22],_0xa0d9x17,_0xa0d9x16,_0xf9c9[23]);logger[_0xf9c9[26]](_0xf9c9[25],_0xa0d9x17,_0xa0d9x16,_0xf9c9[23]);return _0xa0d9x15[_0xf9c9[27]](_0xa0d9x16)};return _0xa0d9x15[_0xf9c9[29]](304)[_0xf9c9[28]]()}}function respondWithResult(_0xa0d9x15,_0xa0d9x16,_0xa0d9x17){_0xa0d9x16= _0xa0d9x16|| 200;return function(_0xa0d9x18){if(_0xa0d9x18){logger[_0xf9c9[24]](_0xf9c9[22],_0xa0d9x17,_0xa0d9x16,_0xf9c9[30]);logger[_0xf9c9[26]](_0xf9c9[25],_0xa0d9x17,_0xa0d9x16,_0xf9c9[30],JSON[_0xf9c9[31]](_0xa0d9x18));return _0xa0d9x15[_0xf9c9[29]](_0xa0d9x16)[_0xf9c9[32]](_0xa0d9x18)};return _0xa0d9x15[_0xf9c9[29]](304)[_0xf9c9[28]]()}}function respondWithFilteredResult(_0xa0d9x15,_0xa0d9x1b,_0xa0d9x17){return function(_0xa0d9x18){if(_0xa0d9x18){var _0xa0d9x1c=_0xa0d9x18[_0xf9c9[33]],_0xa0d9x1d=_0xa0d9x1b[_0xf9c9[34]],_0xa0d9x1e=_0xa0d9x1b[_0xf9c9[34]]+ _0xa0d9x1b[_0xf9c9[35]],_0xa0d9x16;if(_0xa0d9x1e>= _0xa0d9x1c){_0xa0d9x1e= _0xa0d9x1c;_0xa0d9x16= 200}else {_0xa0d9x16= 206};_0xa0d9x15[_0xf9c9[29]](_0xa0d9x16);logger[_0xf9c9[24]](_0xf9c9[22],_0xa0d9x17,_0xa0d9x16,_0xf9c9[36]);logger[_0xf9c9[26]](_0xf9c9[25],_0xa0d9x17,_0xa0d9x16,_0xf9c9[30],JSON[_0xf9c9[31]](_0xa0d9x18));return _0xa0d9x15[_0xf9c9[40]](_0xf9c9[37],_0xa0d9x1d+ _0xf9c9[38]+ _0xa0d9x1e+ _0xf9c9[39]+ _0xa0d9x1c)[_0xf9c9[32]](_0xa0d9x18)};return null}}function patchUpdates(_0xa0d9x20){return function(_0xa0d9x18){try{jsonpatch[_0xf9c9[41]](_0xa0d9x18,_0xa0d9x20,true)}catch(err){return BPromise[_0xf9c9[42]](err)};return _0xa0d9x18[_0xf9c9[43]]()}}function saveUpdates(_0xa0d9x22,_0xa0d9x16,_0xa0d9x17){return function(_0xa0d9x18){if(_0xa0d9x18){return _0xa0d9x18[_0xf9c9[46]](_0xa0d9x22)[_0xf9c9[45]](function(_0xa0d9x23){logger[_0xf9c9[24]](_0xf9c9[22],_0xa0d9x17,_0xa0d9x16,_0xf9c9[44]);logger[_0xf9c9[26]](_0xf9c9[25],_0xa0d9x17,_0xa0d9x16,_0xf9c9[44],JSON[_0xf9c9[31]](_0xa0d9x18));return _0xa0d9x23})};return null}}function removeEntity(_0xa0d9x15,_0xa0d9x16,_0xa0d9x17){return function(_0xa0d9x18){if(_0xa0d9x18){return _0xa0d9x18[_0xf9c9[48]]()[_0xf9c9[45]](function(){logger[_0xf9c9[24]](_0xf9c9[22],_0xa0d9x17,_0xa0d9x16,_0xf9c9[47]);logger[_0xf9c9[26]](_0xf9c9[25],_0xa0d9x17,_0xa0d9x16,_0xf9c9[47],JSON[_0xf9c9[31]](_0xa0d9x18));_0xa0d9x15[_0xf9c9[29]](204)[_0xf9c9[28]]()})}}}function handleEntityNotFound(_0xa0d9x15,_0xa0d9x16,_0xa0d9x17){return function(_0xa0d9x18){if(!_0xa0d9x18){logger[_0xf9c9[50]](_0xf9c9[22],_0xa0d9x17,404,_0xf9c9[49]);_0xa0d9x15[_0xf9c9[29]](404)[_0xf9c9[28]]();return null};return _0xa0d9x18}}function handleError(_0xa0d9x15,_0xa0d9x16,_0xa0d9x17){_0xa0d9x16= _0xa0d9x16|| 500;return function(_0xa0d9x27){logger[_0xf9c9[50]](_0xf9c9[22],_0xa0d9x17,_0xa0d9x16,JSON[_0xf9c9[31]](_0xa0d9x27));delete _0xa0d9x27[_0xf9c9[51]];_0xa0d9x15[_0xf9c9[29]](_0xa0d9x16)[_0xf9c9[52]](_0xa0d9x27)}}exports[_0xf9c9[53]]= function(_0xa0d9x28,_0xa0d9x15){var _0xa0d9x1b={},_0xa0d9x29={};_0xa0d9x29[_0xf9c9[54]]= _[_0xf9c9[57]](db[_0xf9c9[56]][_0xf9c9[55]]);_0xa0d9x29[_0xf9c9[58]]= _[_0xf9c9[57]](_0xa0d9x28[_0xf9c9[58]]);_0xa0d9x29[_0xf9c9[59]]= _[_0xf9c9[60]](_0xa0d9x29[_0xf9c9[54]],_0xa0d9x29[_0xf9c9[58]]);_0xa0d9x1b[_0xf9c9[61]]= _[_0xf9c9[60]](_0xa0d9x29[_0xf9c9[54]],qs[_0xf9c9[62]](_0xa0d9x28[_0xf9c9[58]][_0xf9c9[62]]));_0xa0d9x1b[_0xf9c9[61]]= (_0xa0d9x1b[_0xf9c9[61]][_0xf9c9[63]])?_0xa0d9x1b[_0xf9c9[61]]:_0xa0d9x29[_0xf9c9[54]];if(!_0xa0d9x28[_0xf9c9[58]][_0xf9c9[65]](_0xf9c9[64])){_0xa0d9x1b[_0xf9c9[35]]= qs[_0xf9c9[35]](_0xa0d9x28[_0xf9c9[58]][_0xf9c9[35]]);_0xa0d9x1b[_0xf9c9[34]]= qs[_0xf9c9[34]](_0xa0d9x28[_0xf9c9[58]][_0xf9c9[34]])};_0xa0d9x1b[_0xf9c9[66]]= qs[_0xf9c9[67]](_0xa0d9x28[_0xf9c9[58]][_0xf9c9[67]]);_0xa0d9x1b[_0xf9c9[68]]= qs[_0xf9c9[59]](_[_0xf9c9[69]](_0xa0d9x28[_0xf9c9[58]],_0xa0d9x29[_0xf9c9[59]]));if(_0xa0d9x28[_0xf9c9[58]][_0xf9c9[70]]){_0xa0d9x1b[_0xf9c9[68]]= _[_0xf9c9[73]](_0xa0d9x1b[_0xf9c9[68]],{$or:_[_0xf9c9[72]](_0xa0d9x1b[_0xf9c9[61]],function(_0xa0d9x2a){var _0xa0d9x2b={};_0xa0d9x2b[_0xa0d9x2a]= {$like:_0xf9c9[71]+ _0xa0d9x28[_0xf9c9[58]][_0xf9c9[70]]+ _0xf9c9[71]};return _0xa0d9x2b})})};_0xa0d9x1b= _[_0xf9c9[73]]({},_0xa0d9x1b,_0xa0d9x28[_0xf9c9[74]]);return db[_0xf9c9[56]][_0xf9c9[76]](_0xa0d9x1b)[_0xf9c9[45]](respondWithFilteredResult(_0xa0d9x15,_0xa0d9x1b,_0xf9c9[53]))[_0xf9c9[75]](handleError(_0xa0d9x15,null,_0xf9c9[53]))};exports[_0xf9c9[77]]= function(_0xa0d9x28,_0xa0d9x15){var _0xa0d9x1b={raw:true,where:{id:_0xa0d9x28[_0xf9c9[79]][_0xf9c9[78]]}},_0xa0d9x29={};_0xa0d9x29[_0xf9c9[54]]= _[_0xf9c9[57]](db[_0xf9c9[56]][_0xf9c9[55]]);_0xa0d9x29[_0xf9c9[58]]= _[_0xf9c9[57]](_0xa0d9x28[_0xf9c9[58]]);_0xa0d9x29[_0xf9c9[59]]= _[_0xf9c9[60]](_0xa0d9x29[_0xf9c9[54]],_0xa0d9x29[_0xf9c9[58]]);_0xa0d9x1b[_0xf9c9[61]]= _[_0xf9c9[60]](_0xa0d9x29[_0xf9c9[54]],qs[_0xf9c9[62]](_0xa0d9x28[_0xf9c9[58]][_0xf9c9[62]]));_0xa0d9x1b[_0xf9c9[61]]= (_0xa0d9x1b[_0xf9c9[61]][_0xf9c9[63]])?_0xa0d9x1b[_0xf9c9[61]]:_0xa0d9x29[_0xf9c9[54]];_0xa0d9x1b= _[_0xf9c9[73]]({},_0xa0d9x1b,_0xa0d9x28[_0xf9c9[74]]);return db[_0xf9c9[56]][_0xf9c9[80]](_0xa0d9x1b)[_0xf9c9[45]](handleEntityNotFound(_0xa0d9x15,null,_0xf9c9[77]))[_0xf9c9[45]](respondWithResult(_0xa0d9x15,null,_0xf9c9[77]))[_0xf9c9[75]](handleError(_0xa0d9x15,null,_0xf9c9[77]))};exports[_0xf9c9[81]]= function(_0xa0d9x28,_0xa0d9x15){return db[_0xf9c9[56]][_0xf9c9[81]](_0xa0d9x28[_0xf9c9[82]],{})[_0xf9c9[45]](respondWithResult(_0xa0d9x15,201,_0xf9c9[81]))[_0xf9c9[75]](handleError(_0xa0d9x15,null,_0xf9c9[81]))};exports[_0xf9c9[46]]= function(_0xa0d9x28,_0xa0d9x15){if(_0xa0d9x28[_0xf9c9[82]][_0xf9c9[78]]){delete _0xa0d9x28[_0xf9c9[82]][_0xf9c9[78]]};return db[_0xf9c9[56]][_0xf9c9[80]]({where:{id:_0xa0d9x28[_0xf9c9[79]][_0xf9c9[78]]}})[_0xf9c9[45]](handleEntityNotFound(_0xa0d9x15,null,_0xf9c9[46]))[_0xf9c9[45]](saveUpdates(_0xa0d9x28[_0xf9c9[82]],null,_0xf9c9[46]))[_0xf9c9[45]](respondWithResult(_0xa0d9x15,null,_0xf9c9[46]))[_0xf9c9[75]](handleError(_0xa0d9x15,null,_0xf9c9[46]))};exports[_0xf9c9[48]]= function(_0xa0d9x28,_0xa0d9x15){return db[_0xf9c9[56]][_0xf9c9[80]]({where:{id:_0xa0d9x28[_0xf9c9[79]][_0xf9c9[78]]}})[_0xf9c9[45]](handleEntityNotFound(_0xa0d9x15,null,_0xf9c9[48]))[_0xf9c9[45]](removeEntity(_0xa0d9x15,null,_0xf9c9[48]))[_0xf9c9[75]](handleError(_0xa0d9x15,null,_0xf9c9[48]))}
\ No newline at end of file
diff --git a/server/api/intSalesforceField/intSalesforceField.model.js b/server/api/intSalesforceField/intSalesforceField.model.js
new file mode 100644 (file)
index 0000000..5322968
--- /dev/null
@@ -0,0 +1 @@
+var _0x9a11=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x69\x6E\x74\x5F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x9a11[0];var _=require(_0x9a11[1]);var util=require(_0x9a11[2]);var logger=require(_0x9a11[4])(_0x9a11[3]);var attributes=require(_0x9a11[5]);module[_0x9a11[6]]= function(_0x62e7x5,_0x62e7x6){return _0x62e7x5[_0x9a11[9]](_0x9a11[7],attributes,{tableName:_0x9a11[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/intSalesforceField/intSalesforceField.rpc.js b/server/api/intSalesforceField/intSalesforceField.rpc.js
new file mode 100644 (file)
index 0000000..81c8248
--- /dev/null
@@ -0,0 +1 @@
+var _0x6c39=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6c39[0];var _=require(_0x6c39[1]);var util=require(_0x6c39[2]);var moment=require(_0x6c39[3]);var BPromise=require(_0x6c39[4]);var db=require(_0x6c39[6])[_0x6c39[5]];var utils=require(_0x6c39[7]);var logger=require(_0x6c39[9])(_0x6c39[8]);var jayson=require(_0x6c39[10]);var client=jayson[_0x6c39[12]][_0x6c39[11]]({port:9002});function respondWithRpcPromise(_0xe6ebxb,_0xe6ebxc,_0xe6ebxd){return  new BPromise(function(_0xe6ebxe,_0xe6ebxf){return client[_0x6c39[25]](_0xe6ebxb,_0xe6ebxd)[_0x6c39[24]](function(_0xe6ebx11){logger[_0x6c39[17]](_0x6c39[13],_0xe6ebxc,_0x6c39[16]);logger[_0x6c39[20]](_0x6c39[18],_0xe6ebxc,_0x6c39[16],JSON[_0x6c39[19]](_0xe6ebx11));if(_0xe6ebx11[_0x6c39[14]]){if(_0xe6ebx11[_0x6c39[14]][_0x6c39[21]]=== 500){logger[_0x6c39[14]](_0x6c39[13],_0xe6ebxc,_0xe6ebx11[_0x6c39[14]][_0x6c39[22]]);return _0xe6ebxf(_0xe6ebx11[_0x6c39[14]][_0x6c39[22]])};logger[_0x6c39[14]](_0x6c39[13],_0xe6ebxc,_0xe6ebx11[_0x6c39[14]][_0x6c39[22]]);return _0xe6ebxe(_0xe6ebx11[_0x6c39[14]][_0x6c39[22]])}else {logger[_0x6c39[17]](_0x6c39[13],_0xe6ebxc,_0x6c39[16]);_0xe6ebxe(_0xe6ebx11[_0x6c39[23]][_0x6c39[22]])}})[_0x6c39[15]](function(_0xe6ebx10){logger[_0x6c39[14]](_0x6c39[13],_0xe6ebxc,_0xe6ebx10);_0xe6ebxf(_0xe6ebx10)})})}
\ No newline at end of file
diff --git a/server/api/intSugarcrmAccount/index.js b/server/api/intSugarcrmAccount/index.js
new file mode 100644 (file)
index 0000000..636b3c6
--- /dev/null
@@ -0,0 +1 @@
+var _0x167a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x167a[0];var multer=require(_0x167a[1]);var util=require(_0x167a[2]);var path=require(_0x167a[3]);var express=require(_0x167a[4]);var router=express.Router();var auth=require(_0x167a[5]);var config=require(_0x167a[6]);var controller=require(_0x167a[7]);router[_0x167a[11]](_0x167a[8],auth[_0x167a[9]](),controller[_0x167a[10]]);router[_0x167a[11]](_0x167a[12],auth[_0x167a[9]](),controller[_0x167a[13]]);router[_0x167a[11]](_0x167a[14],auth[_0x167a[9]](),controller[_0x167a[15]]);router[_0x167a[11]](_0x167a[16],auth[_0x167a[9]](),controller[_0x167a[17]]);router[_0x167a[19]](_0x167a[8],auth[_0x167a[9]](),controller[_0x167a[18]]);router[_0x167a[19]](_0x167a[14],auth[_0x167a[9]](),controller[_0x167a[20]]);router[_0x167a[22]](_0x167a[12],auth[_0x167a[9]](),controller[_0x167a[21]]);router[_0x167a[24]](_0x167a[12],auth[_0x167a[9]](),controller[_0x167a[23]]);module[_0x167a[25]]= router
\ No newline at end of file
diff --git a/server/api/intSugarcrmAccount/intSugarcrmAccount.attributes.js b/server/api/intSugarcrmAccount/intSugarcrmAccount.attributes.js
new file mode 100644 (file)
index 0000000..0b07f6d
--- /dev/null
@@ -0,0 +1 @@
+var _0x6a48=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69"];_0x6a48[0];var Sequelize=require(_0x6a48[1]);module[_0x6a48[2]]= {name:{type:Sequelize[_0x6a48[3]]},description:{type:Sequelize[_0x6a48[3]]},username:{type:Sequelize[_0x6a48[3]],unique:_0x6a48[4]},password:{type:Sequelize[_0x6a48[3]]},remoteUri:{type:Sequelize[_0x6a48[3]],unique:_0x6a48[5]},serverUrl:{type:Sequelize[_0x6a48[3]]}}
\ No newline at end of file
diff --git a/server/api/intSugarcrmAccount/intSugarcrmAccount.controller.js b/server/api/intSugarcrmAccount/intSugarcrmAccount.controller.js
new file mode 100644 (file)
index 0000000..d5687bb
--- /dev/null
@@ -0,0 +1 @@
+var _0x427b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x79\x70\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x6D\x6F\x64\x75\x6C\x65\x5F\x66\x69\x65\x6C\x64\x73","\x76\x61\x6C\x75\x65\x73","\x6C\x61\x62\x65\x6C","\x5F\x63","\x65\x6E\x64\x73\x57\x69\x74\x68","\x76\x61\x6C\x75\x65","\x50\x4F\x53\x54","\x25\x73\x25\x73","\x2F\x73\x65\x72\x76\x69\x63\x65\x2F\x76\x34\x5F\x31\x2F\x72\x65\x73\x74\x2E\x70\x68\x70","\x66\x6F\x72\x6D\x61\x74","\x67\x65\x74\x5F\x6D\x6F\x64\x75\x6C\x65\x5F\x66\x69\x65\x6C\x64\x73","\x4A\x53\x4F\x4E","\x43\x61\x6C\x6C\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x6C\x6F\x67\x69\x6E","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x50\x4C\x41\x49\x4E","\x78\x43\x41\x4C\x4C\x59\x20\x4D\x6F\x74\x69\x6F\x6E\x20\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E"];_0x427b[0];var jsonpatch=require(_0x427b[1]);var rp=require(_0x427b[2]);var moment=require(_0x427b[3]);var BPromise=require(_0x427b[4]);var util=require(_0x427b[5]);var path=require(_0x427b[6]);var sox=require(_0x427b[7]);var ejs=require(_0x427b[8]);var fs=require(_0x427b[9]);var _=require(_0x427b[10]);var squel=require(_0x427b[11]);var crypto=require(_0x427b[12]);var jsforce=require(_0x427b[13]);var toCsv=require(_0x427b[14]);var qs=require(_0x427b[15]);var logger=require(_0x427b[17])(_0x427b[16]);var utils=require(_0x427b[18]);var config=require(_0x427b[19]);var db=require(_0x427b[21])[_0x427b[20]];var integrations=require(_0x427b[22]);var jayson=require(_0x427b[23]);var client=jayson[_0x427b[25]][_0x427b[24]]({port:9002});function respondWithRpcPromise(_0x7bdax18,_0x7bdax19,_0x7bdax1a){return  new BPromise(function(_0x7bdax1b,_0x7bdax1c){return client[_0x427b[38]](_0x7bdax18,_0x7bdax1a)[_0x427b[37]](function(_0x7bdax1e){logger[_0x427b[30]](_0x427b[26],_0x7bdax19,_0x427b[29]);logger[_0x427b[33]](_0x427b[31],_0x7bdax19,_0x427b[29],JSON[_0x427b[32]](_0x7bdax1e));if(_0x7bdax1e[_0x427b[27]]){if(_0x7bdax1e[_0x427b[27]][_0x427b[34]]=== 500){logger[_0x427b[27]](_0x427b[26],_0x7bdax19,_0x7bdax1e[_0x427b[27]][_0x427b[35]]);return _0x7bdax1c(_0x7bdax1e[_0x427b[27]][_0x427b[35]])};logger[_0x427b[27]](_0x427b[26],_0x7bdax19,_0x7bdax1e[_0x427b[27]][_0x427b[35]]);return _0x7bdax1b(_0x7bdax1e[_0x427b[27]][_0x427b[35]])}else {logger[_0x427b[30]](_0x427b[26],_0x7bdax19,_0x427b[29]);_0x7bdax1b(_0x7bdax1e[_0x427b[36]][_0x427b[35]])}})[_0x427b[28]](function(_0x7bdax1d){logger[_0x427b[27]](_0x427b[26],_0x7bdax19,_0x7bdax1d);_0x7bdax1c(_0x7bdax1d)})})}function respondWithStatusCode(_0x7bdax1e,_0x7bdax20,_0x7bdax19){_0x7bdax20= _0x7bdax20|| 204;return function(_0x7bdax21){if(_0x7bdax21){logger[_0x427b[30]](_0x427b[31],_0x7bdax19,_0x7bdax20,_0x427b[39]);logger[_0x427b[33]](_0x427b[40],_0x7bdax19,_0x7bdax20,_0x427b[39]);return _0x7bdax1e[_0x427b[41]](_0x7bdax20)};return _0x7bdax1e[_0x427b[43]](304)[_0x427b[42]]()}}function respondWithResult(_0x7bdax1e,_0x7bdax20,_0x7bdax19){_0x7bdax20= _0x7bdax20|| 200;return function(_0x7bdax21){if(_0x7bdax21){logger[_0x427b[30]](_0x427b[31],_0x7bdax19,_0x7bdax20,_0x427b[44]);logger[_0x427b[33]](_0x427b[40],_0x7bdax19,_0x7bdax20,_0x427b[44],JSON[_0x427b[32]](_0x7bdax21));return _0x7bdax1e[_0x427b[43]](_0x7bdax20)[_0x427b[45]](_0x7bdax21)};return _0x7bdax1e[_0x427b[43]](304)[_0x427b[42]]()}}function respondWithFilteredResult(_0x7bdax1e,_0x7bdax24,_0x7bdax19){return function(_0x7bdax21){if(_0x7bdax21){var _0x7bdax25=_0x7bdax21[_0x427b[46]],_0x7bdax26=_0x7bdax24[_0x427b[47]],_0x7bdax27=_0x7bdax24[_0x427b[47]]+ _0x7bdax24[_0x427b[48]],_0x7bdax20;if(_0x7bdax27>= _0x7bdax25){_0x7bdax27= _0x7bdax25;_0x7bdax20= 200}else {_0x7bdax20= 206};_0x7bdax1e[_0x427b[43]](_0x7bdax20);logger[_0x427b[30]](_0x427b[31],_0x7bdax19,_0x7bdax20,_0x427b[49]);logger[_0x427b[33]](_0x427b[40],_0x7bdax19,_0x7bdax20,_0x427b[44],JSON[_0x427b[32]](_0x7bdax21));return _0x7bdax1e[_0x427b[53]](_0x427b[50],_0x7bdax26+ _0x427b[51]+ _0x7bdax27+ _0x427b[52]+ _0x7bdax25)[_0x427b[45]](_0x7bdax21)};return null}}function patchUpdates(_0x7bdax29){return function(_0x7bdax21){try{jsonpatch[_0x427b[54]](_0x7bdax21,_0x7bdax29,true)}catch(err){return BPromise[_0x427b[55]](err)};return _0x7bdax21[_0x427b[56]]()}}function saveUpdates(_0x7bdax2b,_0x7bdax20,_0x7bdax19){return function(_0x7bdax21){if(_0x7bdax21){return _0x7bdax21[_0x427b[58]](_0x7bdax2b)[_0x427b[37]](function(_0x7bdax2c){logger[_0x427b[30]](_0x427b[31],_0x7bdax19,_0x7bdax20,_0x427b[57]);logger[_0x427b[33]](_0x427b[40],_0x7bdax19,_0x7bdax20,_0x427b[57],JSON[_0x427b[32]](_0x7bdax21));return _0x7bdax2c})};return null}}function removeEntity(_0x7bdax1e,_0x7bdax20,_0x7bdax19){return function(_0x7bdax21){if(_0x7bdax21){return _0x7bdax21[_0x427b[60]]()[_0x427b[37]](function(){logger[_0x427b[30]](_0x427b[31],_0x7bdax19,_0x7bdax20,_0x427b[59]);logger[_0x427b[33]](_0x427b[40],_0x7bdax19,_0x7bdax20,_0x427b[59],JSON[_0x427b[32]](_0x7bdax21));_0x7bdax1e[_0x427b[43]](204)[_0x427b[42]]()})}}}function handleEntityNotFound(_0x7bdax1e,_0x7bdax20,_0x7bdax19){return function(_0x7bdax21){if(!_0x7bdax21){logger[_0x427b[27]](_0x427b[31],_0x7bdax19,404,_0x427b[61]);_0x7bdax1e[_0x427b[43]](404)[_0x427b[42]]();return null};return _0x7bdax21}}function handleError(_0x7bdax1e,_0x7bdax20,_0x7bdax19){_0x7bdax20= _0x7bdax20|| 500;return function(_0x7bdax1d){logger[_0x427b[27]](_0x427b[31],_0x7bdax19,_0x7bdax20,JSON[_0x427b[32]](_0x7bdax1d));delete _0x7bdax1d[_0x427b[62]];_0x7bdax1e[_0x427b[43]](_0x7bdax20)[_0x427b[63]](_0x7bdax1d)}}exports[_0x427b[64]]= function(_0x7bdax1a,_0x7bdax1e){var _0x7bdax24={},_0x7bdax30={};_0x7bdax30[_0x427b[65]]= _[_0x427b[68]](db[_0x427b[67]][_0x427b[66]]);_0x7bdax30[_0x427b[69]]= _[_0x427b[68]](_0x7bdax1a[_0x427b[69]]);_0x7bdax30[_0x427b[70]]= _[_0x427b[71]](_0x7bdax30[_0x427b[65]],_0x7bdax30[_0x427b[69]]);_0x7bdax24[_0x427b[72]]= _[_0x427b[71]](_0x7bdax30[_0x427b[65]],qs[_0x427b[73]](_0x7bdax1a[_0x427b[69]][_0x427b[73]]));_0x7bdax24[_0x427b[72]]= (_0x7bdax24[_0x427b[72]][_0x427b[74]])?_0x7bdax24[_0x427b[72]]:_0x7bdax30[_0x427b[65]];if(!_0x7bdax1a[_0x427b[69]][_0x427b[76]](_0x427b[75])){_0x7bdax24[_0x427b[48]]= qs[_0x427b[48]](_0x7bdax1a[_0x427b[69]][_0x427b[48]]);_0x7bdax24[_0x427b[47]]= qs[_0x427b[47]](_0x7bdax1a[_0x427b[69]][_0x427b[47]])};_0x7bdax24[_0x427b[77]]= qs[_0x427b[78]](_0x7bdax1a[_0x427b[69]][_0x427b[78]]);_0x7bdax24[_0x427b[79]]= qs[_0x427b[70]](_[_0x427b[80]](_0x7bdax1a[_0x427b[69]],_0x7bdax30[_0x427b[70]]));if(_0x7bdax1a[_0x427b[69]][_0x427b[81]]){_0x7bdax24[_0x427b[79]]= _[_0x427b[84]](_0x7bdax24[_0x427b[79]],{$or:_[_0x427b[83]](_0x7bdax24[_0x427b[72]],function(_0x7bdax31){var _0x7bdax32={};_0x7bdax32[_0x7bdax31]= {$like:_0x427b[82]+ _0x7bdax1a[_0x427b[69]][_0x427b[81]]+ _0x427b[82]};return _0x7bdax32})})};_0x7bdax24= _[_0x427b[84]]({},_0x7bdax24,_0x7bdax1a[_0x427b[85]]);return db[_0x427b[67]][_0x427b[86]](_0x7bdax24)[_0x427b[37]](respondWithFilteredResult(_0x7bdax1e,_0x7bdax24,_0x427b[64]))[_0x427b[28]](handleError(_0x7bdax1e,null,_0x427b[64]))};exports[_0x427b[87]]= function(_0x7bdax1a,_0x7bdax1e){var _0x7bdax24={raw:false,where:{id:_0x7bdax1a[_0x427b[89]][_0x427b[88]]}},_0x7bdax30={};_0x7bdax30[_0x427b[65]]= _[_0x427b[68]](db[_0x427b[67]][_0x427b[66]]);_0x7bdax30[_0x427b[69]]= _[_0x427b[68]](_0x7bdax1a[_0x427b[69]]);_0x7bdax30[_0x427b[70]]= _[_0x427b[71]](_0x7bdax30[_0x427b[65]],_0x7bdax30[_0x427b[69]]);_0x7bdax24[_0x427b[72]]= _[_0x427b[71]](_0x7bdax30[_0x427b[65]],qs[_0x427b[73]](_0x7bdax1a[_0x427b[69]][_0x427b[73]]));_0x7bdax24[_0x427b[72]]= (_0x7bdax24[_0x427b[72]][_0x427b[74]])?_0x7bdax24[_0x427b[72]]:_0x7bdax30[_0x427b[65]];_0x7bdax24= _[_0x427b[84]]({},_0x7bdax24,_0x7bdax1a[_0x427b[85]]);return db[_0x427b[67]][_0x427b[90]](_0x7bdax24)[_0x427b[37]](handleEntityNotFound(_0x7bdax1e,null,_0x427b[87]))[_0x427b[37]](respondWithResult(_0x7bdax1e,null,_0x427b[87]))[_0x427b[28]](handleError(_0x7bdax1e,null,_0x427b[87]))};exports[_0x427b[91]]= function(_0x7bdax1a,_0x7bdax1e){return db[_0x427b[67]][_0x427b[91]](_0x7bdax1a[_0x427b[92]],{})[_0x427b[37]](respondWithResult(_0x7bdax1e,201,_0x427b[91]))[_0x427b[28]](handleError(_0x7bdax1e,null,_0x427b[91]))};exports[_0x427b[58]]= function(_0x7bdax1a,_0x7bdax1e){if(_0x7bdax1a[_0x427b[92]][_0x427b[88]]){delete _0x7bdax1a[_0x427b[92]][_0x427b[88]]};return db[_0x427b[67]][_0x427b[90]]({where:{id:_0x7bdax1a[_0x427b[89]][_0x427b[88]]}})[_0x427b[37]](handleEntityNotFound(_0x7bdax1e,null,_0x427b[58]))[_0x427b[37]](saveUpdates(_0x7bdax1a[_0x427b[92]],null,_0x427b[58]))[_0x427b[37]](respondWithResult(_0x7bdax1e,null,_0x427b[58]))[_0x427b[28]](handleError(_0x7bdax1e,null,_0x427b[58]))};exports[_0x427b[60]]= function(_0x7bdax1a,_0x7bdax1e){return db[_0x427b[67]][_0x427b[90]]({where:{id:_0x7bdax1a[_0x427b[89]][_0x427b[88]]}})[_0x427b[37]](handleEntityNotFound(_0x7bdax1e,null,_0x427b[60]))[_0x427b[37]](removeEntity(_0x7bdax1e,null,_0x427b[60]))[_0x427b[28]](handleError(_0x7bdax1e,null,_0x427b[60]))};exports[_0x427b[93]]= function(_0x7bdax1a,_0x7bdax21,_0x7bdax33){var _0x7bdax24={};var _0x7bdax30={};var _0x7bdax34;var _0x7bdax25;return db[_0x427b[67]][_0x427b[95]]({where:{id:_0x7bdax1a[_0x427b[89]][_0x427b[88]]}})[_0x427b[37]](handleEntityNotFound(_0x7bdax21,null,_0x427b[93]))[_0x427b[37]](function(_0x7bdax21){if(_0x7bdax21){_0x7bdax34= _0x7bdax21;_0x7bdax30[_0x427b[65]]= _[_0x427b[68]](db[_0x427b[94]][_0x427b[66]]);_0x7bdax30[_0x427b[69]]= _[_0x427b[68]](_0x7bdax1a[_0x427b[69]]);_0x7bdax30[_0x427b[70]]= _[_0x427b[71]](_0x7bdax30[_0x427b[65]],_0x7bdax30[_0x427b[69]]);_0x7bdax24[_0x427b[72]]= _[_0x427b[71]](_0x7bdax30[_0x427b[65]],qs[_0x427b[73]](_0x7bdax1a[_0x427b[69]][_0x427b[73]]));_0x7bdax24[_0x427b[72]]= (_0x7bdax24[_0x427b[72]][_0x427b[74]])?_0x7bdax24[_0x427b[72]]:_0x7bdax30[_0x427b[65]];_0x7bdax24[_0x427b[77]]= qs[_0x427b[78]](_0x7bdax1a[_0x427b[69]][_0x427b[78]]);_0x7bdax24[_0x427b[79]]= qs[_0x427b[70]](_[_0x427b[80]](_0x7bdax1a[_0x427b[69]],_0x7bdax30[_0x427b[70]]));if(_0x7bdax1a[_0x427b[69]][_0x427b[81]]){_0x7bdax24[_0x427b[79]]= _[_0x427b[84]](_0x7bdax24[_0x427b[79]],{$or:_[_0x427b[83]](_0x7bdax24[_0x427b[72]],function(_0x7bdax31){var _0x7bdax32={};_0x7bdax32[_0x7bdax31]= {$like:_0x427b[82]+ _0x7bdax1a[_0x427b[69]][_0x427b[81]]+ _0x427b[82]};return _0x7bdax32})})};_0x7bdax24= _[_0x427b[84]]({},_0x7bdax24,_0x7bdax1a[_0x427b[85]]);return _0x7bdax34[_0x427b[93]](_0x7bdax24)}})[_0x427b[37]](function(_0x7bdax36){if(_0x7bdax36){_0x7bdax25= _0x7bdax36[_0x427b[74]];if(!_0x7bdax1a[_0x427b[69]][_0x427b[76]](_0x427b[75])){_0x7bdax24[_0x427b[48]]= qs[_0x427b[48]](_0x7bdax1a[_0x427b[69]][_0x427b[48]]);_0x7bdax24[_0x427b[47]]= qs[_0x427b[47]](_0x7bdax1a[_0x427b[69]][_0x427b[47]])};return _0x7bdax34[_0x427b[93]](_0x7bdax24)}})[_0x427b[37]](function(_0x7bdax35){return _0x7bdax35?{count:_0x7bdax25,rows:_0x7bdax35}:null})[_0x427b[37]](respondWithResult(_0x7bdax21,null,_0x427b[93]))[_0x427b[28]](handleError(_0x7bdax21,null,_0x427b[93]))};exports[_0x427b[96]]= function(_0x7bdax1a,_0x7bdax1e,_0x7bdax33){if(_0x7bdax1a[_0x427b[92]][_0x427b[88]]){delete _0x7bdax1a[_0x427b[92]][_0x427b[88]]};return db[_0x427b[67]][_0x427b[95]]({where:{id:_0x7bdax1a[_0x427b[89]][_0x427b[88]]}})[_0x427b[37]](handleEntityNotFound(_0x7bdax1e,null,_0x427b[96]))[_0x427b[37]](function(_0x7bdax21){if(_0x7bdax21){_0x7bdax1a[_0x427b[92]][_0x427b[97]]= _0x7bdax21[_0x427b[88]];_0x7bdax1a[_0x427b[92]][_0x427b[98]]= integrations[_0x427b[101]](_0x7bdax1a[_0x427b[92]][_0x427b[99]],_0x7bdax1a[_0x427b[92]][_0x427b[100]]);_0x7bdax1a[_0x427b[92]][_0x427b[102]]= integrations[_0x427b[103]](_0x7bdax1a[_0x427b[92]][_0x427b[99]],_0x7bdax1a[_0x427b[92]][_0x427b[100]]);return db[_0x427b[94]][_0x427b[91]](_0x7bdax1a[_0x427b[92]],{include:[{model:db[_0x427b[104]],as:_0x427b[98]},{model:db[_0x427b[104]],as:_0x427b[102]}]})};return null})[_0x427b[37]](respondWithResult(_0x7bdax1e,null,_0x427b[96]))[_0x427b[28]](handleError(_0x7bdax1e,null,_0x427b[96]))};exports[_0x427b[105]]= function(_0x7bdax1a,_0x7bdax1e,_0x7bdax33){var _0x7bdax37;return db[_0x427b[67]][_0x427b[95]]({where:{id:_0x7bdax1a[_0x427b[89]][_0x427b[88]]},attributes:[_0x427b[88],_0x427b[121],_0x427b[122],_0x427b[119]]})[_0x427b[37]](handleEntityNotFound(_0x7bdax1e,null,_0x427b[105]))[_0x427b[37]](function(_0x7bdax21){if(_0x7bdax21){_0x7bdax37= _0x7bdax21[_0x427b[119]];return rp({method:_0x427b[112],uri:util[_0x427b[115]](_0x427b[113],_0x7bdax37,_0x427b[114]),json:true,form:{method:_0x427b[120],input_type:_0x427b[117],response_type:_0x427b[117],rest_data:JSON[_0x427b[32]]({user_auth:{user_name:_0x7bdax21[_0x427b[121]],password:_0x7bdax21[_0x427b[122]],encryption:_0x427b[123]},application:_0x427b[124]})}})}})[_0x427b[37]](function(_0x7bdax21){if(_0x7bdax21){return rp({method:_0x427b[112],uri:util[_0x427b[115]](_0x427b[113],_0x7bdax37,_0x427b[114]),json:true,form:{method:_0x427b[116],input_type:_0x427b[117],response_type:_0x427b[117],rest_data:JSON[_0x427b[32]]({session:_0x7bdax21[_0x427b[88]],module_name:_0x427b[118]})}})}})[_0x427b[37]](function(_0x7bdax21){if(_0x7bdax21){var _0x7bdax38=_[_0x427b[107]](_0x7bdax21[_0x427b[106]]);return {count:_0x7bdax38[_0x427b[74]],rows:_[_0x427b[83]](_0x7bdax38,function(_0x7bdax39){return {id:_0x7bdax39[_0x427b[62]],name:_0x7bdax39[_0x427b[108]],custom:_[_0x427b[110]](_0x7bdax39[_0x427b[62]],_0x427b[109])?true:false,options:_0x7bdax39[_0x427b[85]]?_[_0x427b[83]](_[_0x427b[107]](_0x7bdax39[_0x427b[85]]),function(_0x7bdax39){return {name:_0x7bdax39[_0x427b[111]],value:_0x7bdax39[_0x427b[62]]}}):[]}})}}})[_0x427b[37]](respondWithResult(_0x7bdax1e,null,_0x427b[105]))[_0x427b[28]](handleError(_0x7bdax1e,null,_0x427b[105]))}
\ No newline at end of file
diff --git a/server/api/intSugarcrmAccount/intSugarcrmAccount.model.js b/server/api/intSugarcrmAccount/intSugarcrmAccount.model.js
new file mode 100644 (file)
index 0000000..37e9c32
--- /dev/null
@@ -0,0 +1 @@
+var _0x36f6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x69\x6E\x74\x5F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x36f6[0];var _=require(_0x36f6[1]);var util=require(_0x36f6[2]);var logger=require(_0x36f6[4])(_0x36f6[3]);var attributes=require(_0x36f6[5]);var integrations=require(_0x36f6[6]);module[_0x36f6[7]]= function(_0x293cx6,_0x293cx7){return _0x293cx6[_0x36f6[10]](_0x36f6[8],attributes,{tableName:_0x36f6[9],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/intSugarcrmAccount/intSugarcrmAccount.rpc.js b/server/api/intSugarcrmAccount/intSugarcrmAccount.rpc.js
new file mode 100644 (file)
index 0000000..62e70c2
--- /dev/null
@@ -0,0 +1 @@
+var _0x764c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x53\x68\x6F\x77\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64"];_0x764c[0];var _=require(_0x764c[1]);var util=require(_0x764c[2]);var moment=require(_0x764c[3]);var BPromise=require(_0x764c[4]);var db=require(_0x764c[6])[_0x764c[5]];var utils=require(_0x764c[7]);var logger=require(_0x764c[9])(_0x764c[8]);var jayson=require(_0x764c[10]);var client=jayson[_0x764c[12]][_0x764c[11]]({port:9002});function respondWithRpcPromise(_0xc3cfxb,_0xc3cfxc,_0xc3cfxd){return  new BPromise(function(_0xc3cfxe,_0xc3cfxf){return client[_0x764c[25]](_0xc3cfxb,_0xc3cfxd)[_0x764c[24]](function(_0xc3cfx11){logger[_0x764c[17]](_0x764c[13],_0xc3cfxc,_0x764c[16]);logger[_0x764c[20]](_0x764c[18],_0xc3cfxc,_0x764c[16],JSON[_0x764c[19]](_0xc3cfx11));if(_0xc3cfx11[_0x764c[14]]){if(_0xc3cfx11[_0x764c[14]][_0x764c[21]]=== 500){logger[_0x764c[14]](_0x764c[13],_0xc3cfxc,_0xc3cfx11[_0x764c[14]][_0x764c[22]]);return _0xc3cfxf(_0xc3cfx11[_0x764c[14]][_0x764c[22]])};logger[_0x764c[14]](_0x764c[13],_0xc3cfxc,_0xc3cfx11[_0x764c[14]][_0x764c[22]]);return _0xc3cfxe(_0xc3cfx11[_0x764c[14]][_0x764c[22]])}else {logger[_0x764c[17]](_0x764c[13],_0xc3cfxc,_0x764c[16]);_0xc3cfxe(_0xc3cfx11[_0x764c[23]][_0x764c[22]])}})[_0x764c[15]](function(_0xc3cfx10){logger[_0x764c[14]](_0x764c[13],_0xc3cfxc,_0xc3cfx10);_0xc3cfxf(_0xc3cfx10)})})}exports[_0x764c[26]]= function(_0xc3cfxd){var _0xc3cfx12=this;return  new Promise(function(_0xc3cfxe,_0xc3cfxf){return db[_0x764c[37]][_0x764c[36]]({raw:_0xc3cfxd[_0x764c[27]]?(_0xc3cfxd[_0x764c[27]][_0x764c[28]]=== undefined)?true:false:true,where:_0xc3cfxd[_0x764c[27]]?_0xc3cfxd[_0x764c[27]][_0x764c[29]]|| null:null,attributes:_0xc3cfxd[_0x764c[27]]?_0xc3cfxd[_0x764c[27]][_0x764c[30]]|| null:null,limit:_0xc3cfxd[_0x764c[27]]?_0xc3cfxd[_0x764c[27]][_0x764c[31]]|| null:null,include:_0xc3cfxd[_0x764c[27]]?(_0xc3cfxd[_0x764c[27]][_0x764c[32]]?_[_0x764c[35]](_0xc3cfxd[_0x764c[27]][_0x764c[32]],function(_0xc3cfx13){return {model:db[_0xc3cfx13[_0x764c[33]]],as:_0xc3cfx13[_0x764c[34]],attributes:_0xc3cfx13[_0x764c[30]],include:_0xc3cfx13[_0x764c[32]]?_[_0x764c[35]](_0xc3cfx13[_0x764c[32]],function(_0xc3cfx14){return {model:db[_0xc3cfx14[_0x764c[33]]],as:_0xc3cfx14[_0x764c[34]],attributes:_0xc3cfx14[_0x764c[30]],include:_0xc3cfx14[_0x764c[32]]?_[_0x764c[35]](_0xc3cfx14[_0x764c[32]],function(_0xc3cfx15){return {model:db[_0xc3cfx15[_0x764c[33]]],as:_0xc3cfx15[_0x764c[34]],attributes:_0xc3cfx15[_0x764c[30]]}}):[]}}):[]}}):[]):[]})[_0x764c[24]](function(_0xc3cfx11){logger[_0x764c[17]](_0x764c[26],_0xc3cfxd);logger[_0x764c[20]](_0x764c[26],_0xc3cfxd,JSON[_0x764c[19]](_0xc3cfx11));_0xc3cfxe(_0xc3cfx11)})[_0x764c[15]](function(_0xc3cfx10){logger[_0x764c[14]](_0x764c[26],_0xc3cfx10[_0x764c[22]],_0xc3cfxd);_0xc3cfxf(_0xc3cfx12[_0x764c[14]](500,_0xc3cfx10[_0x764c[22]]))})})};exports[_0x764c[38]]= function(_0xc3cfxd){var _0xc3cfx12=this;return  new Promise(function(_0xc3cfxe,_0xc3cfxf){return db[_0x764c[37]][_0x764c[39]]({raw:_0xc3cfxd[_0x764c[27]]?(_0xc3cfxd[_0x764c[27]][_0x764c[28]]=== undefined)?true:false:true,where:_0xc3cfxd[_0x764c[27]]?_0xc3cfxd[_0x764c[27]][_0x764c[29]]|| null:null,attributes:_0xc3cfxd[_0x764c[27]]?_0xc3cfxd[_0x764c[27]][_0x764c[30]]|| null:null,include:_0xc3cfxd[_0x764c[27]]?(_0xc3cfxd[_0x764c[27]][_0x764c[32]]?_[_0x764c[35]](_0xc3cfxd[_0x764c[27]][_0x764c[32]],function(_0xc3cfx13){return {model:db[_0xc3cfx13[_0x764c[33]]],as:_0xc3cfx13[_0x764c[34]],attributes:_0xc3cfx13[_0x764c[30]],include:_0xc3cfx13[_0x764c[32]]?_[_0x764c[35]](_0xc3cfx13[_0x764c[32]],function(_0xc3cfx14){return {model:db[_0xc3cfx14[_0x764c[33]]],as:_0xc3cfx14[_0x764c[34]],attributes:_0xc3cfx14[_0x764c[30]],include:_0xc3cfx14[_0x764c[32]]?_[_0x764c[35]](_0xc3cfx14[_0x764c[32]],function(_0xc3cfx15){return {model:db[_0xc3cfx15[_0x764c[33]]],as:_0xc3cfx15[_0x764c[34]],attributes:_0xc3cfx15[_0x764c[30]]}}):[]}}):[]}}):[]):[]})[_0x764c[24]](function(_0xc3cfx11){logger[_0x764c[17]](_0x764c[38],_0xc3cfxd);logger[_0x764c[20]](_0x764c[38],_0xc3cfxd,JSON[_0x764c[19]](_0xc3cfx11));_0xc3cfxe(_0xc3cfx11)})[_0x764c[15]](function(_0xc3cfx10){logger[_0x764c[14]](_0x764c[38],_0xc3cfx10[_0x764c[22]],_0xc3cfxd);_0xc3cfxf(_0xc3cfx12[_0x764c[14]](500,_0xc3cfx10[_0x764c[22]]))})})}
\ No newline at end of file
diff --git a/server/api/intSugarcrmConfiguration/index.js b/server/api/intSugarcrmConfiguration/index.js
new file mode 100644 (file)
index 0000000..9676a57
--- /dev/null
@@ -0,0 +1 @@
+var _0xc4ba=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc4ba[0];var multer=require(_0xc4ba[1]);var util=require(_0xc4ba[2]);var path=require(_0xc4ba[3]);var express=require(_0xc4ba[4]);var router=express.Router();var auth=require(_0xc4ba[5]);var config=require(_0xc4ba[6]);var controller=require(_0xc4ba[7]);router[_0xc4ba[11]](_0xc4ba[8],auth[_0xc4ba[9]](),controller[_0xc4ba[10]]);router[_0xc4ba[11]](_0xc4ba[12],auth[_0xc4ba[9]](),controller[_0xc4ba[13]]);router[_0xc4ba[11]](_0xc4ba[14],auth[_0xc4ba[9]](),controller[_0xc4ba[15]]);router[_0xc4ba[11]](_0xc4ba[16],auth[_0xc4ba[9]](),controller[_0xc4ba[17]]);router[_0xc4ba[11]](_0xc4ba[18],auth[_0xc4ba[9]](),controller[_0xc4ba[19]]);router[_0xc4ba[21]](_0xc4ba[8],auth[_0xc4ba[9]](),controller[_0xc4ba[20]]);router[_0xc4ba[23]](_0xc4ba[12],auth[_0xc4ba[9]](),controller[_0xc4ba[22]]);router[_0xc4ba[25]](_0xc4ba[12],auth[_0xc4ba[9]](),controller[_0xc4ba[24]]);module[_0xc4ba[26]]= router
\ No newline at end of file
diff --git a/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.attributes.js b/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.attributes.js
new file mode 100644 (file)
index 0000000..c6cee7f
--- /dev/null
@@ -0,0 +1 @@
+var _0x8661=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x8661[0];var Sequelize=require(_0x8661[1]);module[_0x8661[2]]= {name:{type:Sequelize[_0x8661[3]]},description:{type:Sequelize[_0x8661[3]]}}
\ No newline at end of file
diff --git a/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.controller.js b/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.controller.js
new file mode 100644 (file)
index 0000000..7db5b53
--- /dev/null
@@ -0,0 +1 @@
+var _0x1d96=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73"];_0x1d96[0];var jsonpatch=require(_0x1d96[1]);var rp=require(_0x1d96[2]);var moment=require(_0x1d96[3]);var BPromise=require(_0x1d96[4]);var util=require(_0x1d96[5]);var path=require(_0x1d96[6]);var sox=require(_0x1d96[7]);var ejs=require(_0x1d96[8]);var fs=require(_0x1d96[9]);var _=require(_0x1d96[10]);var squel=require(_0x1d96[11]);var crypto=require(_0x1d96[12]);var jsforce=require(_0x1d96[13]);var toCsv=require(_0x1d96[14]);var qs=require(_0x1d96[15]);var logger=require(_0x1d96[17])(_0x1d96[16]);var utils=require(_0x1d96[18]);var config=require(_0x1d96[19]);var db=require(_0x1d96[21])[_0x1d96[20]];var jayson=require(_0x1d96[22]);var client=jayson[_0x1d96[24]][_0x1d96[23]]({port:9002});function respondWithRpcPromise(_0x9c20x17,_0x9c20x18,_0x9c20x19){return  new BPromise(function(_0x9c20x1a,_0x9c20x1b){return client[_0x1d96[37]](_0x9c20x17,_0x9c20x19)[_0x1d96[36]](function(_0x9c20x1d){logger[_0x1d96[29]](_0x1d96[25],_0x9c20x18,_0x1d96[28]);logger[_0x1d96[32]](_0x1d96[30],_0x9c20x18,_0x1d96[28],JSON[_0x1d96[31]](_0x9c20x1d));if(_0x9c20x1d[_0x1d96[26]]){if(_0x9c20x1d[_0x1d96[26]][_0x1d96[33]]=== 500){logger[_0x1d96[26]](_0x1d96[25],_0x9c20x18,_0x9c20x1d[_0x1d96[26]][_0x1d96[34]]);return _0x9c20x1b(_0x9c20x1d[_0x1d96[26]][_0x1d96[34]])};logger[_0x1d96[26]](_0x1d96[25],_0x9c20x18,_0x9c20x1d[_0x1d96[26]][_0x1d96[34]]);return _0x9c20x1a(_0x9c20x1d[_0x1d96[26]][_0x1d96[34]])}else {logger[_0x1d96[29]](_0x1d96[25],_0x9c20x18,_0x1d96[28]);_0x9c20x1a(_0x9c20x1d[_0x1d96[35]][_0x1d96[34]])}})[_0x1d96[27]](function(_0x9c20x1c){logger[_0x1d96[26]](_0x1d96[25],_0x9c20x18,_0x9c20x1c);_0x9c20x1b(_0x9c20x1c)})})}function respondWithStatusCode(_0x9c20x1d,_0x9c20x1f,_0x9c20x18){_0x9c20x1f= _0x9c20x1f|| 204;return function(_0x9c20x20){if(_0x9c20x20){logger[_0x1d96[29]](_0x1d96[30],_0x9c20x18,_0x9c20x1f,_0x1d96[38]);logger[_0x1d96[32]](_0x1d96[39],_0x9c20x18,_0x9c20x1f,_0x1d96[38]);return _0x9c20x1d[_0x1d96[40]](_0x9c20x1f)};return _0x9c20x1d[_0x1d96[42]](304)[_0x1d96[41]]()}}function respondWithResult(_0x9c20x1d,_0x9c20x1f,_0x9c20x18){_0x9c20x1f= _0x9c20x1f|| 200;return function(_0x9c20x20){if(_0x9c20x20){logger[_0x1d96[29]](_0x1d96[30],_0x9c20x18,_0x9c20x1f,_0x1d96[43]);logger[_0x1d96[32]](_0x1d96[39],_0x9c20x18,_0x9c20x1f,_0x1d96[43],JSON[_0x1d96[31]](_0x9c20x20));return _0x9c20x1d[_0x1d96[42]](_0x9c20x1f)[_0x1d96[44]](_0x9c20x20)};return _0x9c20x1d[_0x1d96[42]](304)[_0x1d96[41]]()}}function respondWithFilteredResult(_0x9c20x1d,_0x9c20x23,_0x9c20x18){return function(_0x9c20x20){if(_0x9c20x20){var _0x9c20x24=_0x9c20x20[_0x1d96[45]],_0x9c20x25=_0x9c20x23[_0x1d96[46]],_0x9c20x26=_0x9c20x23[_0x1d96[46]]+ _0x9c20x23[_0x1d96[47]],_0x9c20x1f;if(_0x9c20x26>= _0x9c20x24){_0x9c20x26= _0x9c20x24;_0x9c20x1f= 200}else {_0x9c20x1f= 206};_0x9c20x1d[_0x1d96[42]](_0x9c20x1f);logger[_0x1d96[29]](_0x1d96[30],_0x9c20x18,_0x9c20x1f,_0x1d96[48]);logger[_0x1d96[32]](_0x1d96[39],_0x9c20x18,_0x9c20x1f,_0x1d96[43],JSON[_0x1d96[31]](_0x9c20x20));return _0x9c20x1d[_0x1d96[52]](_0x1d96[49],_0x9c20x25+ _0x1d96[50]+ _0x9c20x26+ _0x1d96[51]+ _0x9c20x24)[_0x1d96[44]](_0x9c20x20)};return null}}function patchUpdates(_0x9c20x28){return function(_0x9c20x20){try{jsonpatch[_0x1d96[53]](_0x9c20x20,_0x9c20x28,true)}catch(err){return BPromise[_0x1d96[54]](err)};return _0x9c20x20[_0x1d96[55]]()}}function saveUpdates(_0x9c20x2a,_0x9c20x1f,_0x9c20x18){return function(_0x9c20x20){if(_0x9c20x20){return _0x9c20x20[_0x1d96[57]](_0x9c20x2a)[_0x1d96[36]](function(_0x9c20x2b){logger[_0x1d96[29]](_0x1d96[30],_0x9c20x18,_0x9c20x1f,_0x1d96[56]);logger[_0x1d96[32]](_0x1d96[39],_0x9c20x18,_0x9c20x1f,_0x1d96[56],JSON[_0x1d96[31]](_0x9c20x20));return _0x9c20x2b})};return null}}function removeEntity(_0x9c20x1d,_0x9c20x1f,_0x9c20x18){return function(_0x9c20x20){if(_0x9c20x20){return _0x9c20x20[_0x1d96[59]]()[_0x1d96[36]](function(){logger[_0x1d96[29]](_0x1d96[30],_0x9c20x18,_0x9c20x1f,_0x1d96[58]);logger[_0x1d96[32]](_0x1d96[39],_0x9c20x18,_0x9c20x1f,_0x1d96[58],JSON[_0x1d96[31]](_0x9c20x20));_0x9c20x1d[_0x1d96[42]](204)[_0x1d96[41]]()})}}}function handleEntityNotFound(_0x9c20x1d,_0x9c20x1f,_0x9c20x18){return function(_0x9c20x20){if(!_0x9c20x20){logger[_0x1d96[26]](_0x1d96[30],_0x9c20x18,404,_0x1d96[60]);_0x9c20x1d[_0x1d96[42]](404)[_0x1d96[41]]();return null};return _0x9c20x20}}function handleError(_0x9c20x1d,_0x9c20x1f,_0x9c20x18){_0x9c20x1f= _0x9c20x1f|| 500;return function(_0x9c20x1c){logger[_0x1d96[26]](_0x1d96[30],_0x9c20x18,_0x9c20x1f,JSON[_0x1d96[31]](_0x9c20x1c));delete _0x9c20x1c[_0x1d96[61]];_0x9c20x1d[_0x1d96[42]](_0x9c20x1f)[_0x1d96[62]](_0x9c20x1c)}}exports[_0x1d96[63]]= function(_0x9c20x19,_0x9c20x1d){var _0x9c20x23={},_0x9c20x2f={};_0x9c20x2f[_0x1d96[64]]= _[_0x1d96[67]](db[_0x1d96[66]][_0x1d96[65]]);_0x9c20x2f[_0x1d96[68]]= _[_0x1d96[67]](_0x9c20x19[_0x1d96[68]]);_0x9c20x2f[_0x1d96[69]]= _[_0x1d96[70]](_0x9c20x2f[_0x1d96[64]],_0x9c20x2f[_0x1d96[68]]);_0x9c20x23[_0x1d96[71]]= _[_0x1d96[70]](_0x9c20x2f[_0x1d96[64]],qs[_0x1d96[72]](_0x9c20x19[_0x1d96[68]][_0x1d96[72]]));_0x9c20x23[_0x1d96[71]]= (_0x9c20x23[_0x1d96[71]][_0x1d96[73]])?_0x9c20x23[_0x1d96[71]]:_0x9c20x2f[_0x1d96[64]];if(!_0x9c20x19[_0x1d96[68]][_0x1d96[75]](_0x1d96[74])){_0x9c20x23[_0x1d96[47]]= qs[_0x1d96[47]](_0x9c20x19[_0x1d96[68]][_0x1d96[47]]);_0x9c20x23[_0x1d96[46]]= qs[_0x1d96[46]](_0x9c20x19[_0x1d96[68]][_0x1d96[46]])};_0x9c20x23[_0x1d96[76]]= qs[_0x1d96[77]](_0x9c20x19[_0x1d96[68]][_0x1d96[77]]);_0x9c20x23[_0x1d96[78]]= qs[_0x1d96[69]](_[_0x1d96[79]](_0x9c20x19[_0x1d96[68]],_0x9c20x2f[_0x1d96[69]]));if(_0x9c20x19[_0x1d96[68]][_0x1d96[80]]){_0x9c20x23[_0x1d96[78]]= _[_0x1d96[83]](_0x9c20x23[_0x1d96[78]],{$or:_[_0x1d96[82]](_0x9c20x23[_0x1d96[71]],function(_0x9c20x30){var _0x9c20x31={};_0x9c20x31[_0x9c20x30]= {$like:_0x1d96[81]+ _0x9c20x19[_0x1d96[68]][_0x1d96[80]]+ _0x1d96[81]};return _0x9c20x31})})};_0x9c20x23= _[_0x1d96[83]]({},_0x9c20x23,_0x9c20x19[_0x1d96[84]]);return db[_0x1d96[66]][_0x1d96[85]](_0x9c20x23)[_0x1d96[36]](respondWithFilteredResult(_0x9c20x1d,_0x9c20x23,_0x1d96[63]))[_0x1d96[27]](handleError(_0x9c20x1d,null,_0x1d96[63]))};exports[_0x1d96[86]]= function(_0x9c20x19,_0x9c20x1d){var _0x9c20x23={raw:false,where:{id:_0x9c20x19[_0x1d96[88]][_0x1d96[87]]}},_0x9c20x2f={};_0x9c20x2f[_0x1d96[64]]= _[_0x1d96[67]](db[_0x1d96[66]][_0x1d96[65]]);_0x9c20x2f[_0x1d96[68]]= _[_0x1d96[67]](_0x9c20x19[_0x1d96[68]]);_0x9c20x2f[_0x1d96[69]]= _[_0x1d96[70]](_0x9c20x2f[_0x1d96[64]],_0x9c20x2f[_0x1d96[68]]);_0x9c20x23[_0x1d96[71]]= _[_0x1d96[70]](_0x9c20x2f[_0x1d96[64]],qs[_0x1d96[72]](_0x9c20x19[_0x1d96[68]][_0x1d96[72]]));_0x9c20x23[_0x1d96[71]]= (_0x9c20x23[_0x1d96[71]][_0x1d96[73]])?_0x9c20x23[_0x1d96[71]]:_0x9c20x2f[_0x1d96[64]];_0x9c20x23= _[_0x1d96[83]]({},_0x9c20x23,_0x9c20x19[_0x1d96[84]]);return db[_0x1d96[66]][_0x1d96[89]](_0x9c20x23)[_0x1d96[36]](handleEntityNotFound(_0x9c20x1d,null,_0x1d96[86]))[_0x1d96[36]](respondWithResult(_0x9c20x1d,null,_0x1d96[86]))[_0x1d96[27]](handleError(_0x9c20x1d,null,_0x1d96[86]))};exports[_0x1d96[90]]= function(_0x9c20x19,_0x9c20x1d){return db[_0x1d96[66]][_0x1d96[90]](_0x9c20x19[_0x1d96[91]],{})[_0x1d96[36]](respondWithResult(_0x9c20x1d,201,_0x1d96[90]))[_0x1d96[27]](handleError(_0x9c20x1d,null,_0x1d96[90]))};exports[_0x1d96[57]]= function(_0x9c20x19,_0x9c20x1d){if(_0x9c20x19[_0x1d96[91]][_0x1d96[87]]){delete _0x9c20x19[_0x1d96[91]][_0x1d96[87]]};return db[_0x1d96[66]][_0x1d96[89]]({where:{id:_0x9c20x19[_0x1d96[88]][_0x1d96[87]]}})[_0x1d96[36]](handleEntityNotFound(_0x9c20x1d,null,_0x1d96[57]))[_0x1d96[36]](saveUpdates(_0x9c20x19[_0x1d96[91]],null,_0x1d96[57]))[_0x1d96[36]](respondWithResult(_0x9c20x1d,null,_0x1d96[57]))[_0x1d96[27]](handleError(_0x9c20x1d,null,_0x1d96[57]))};exports[_0x1d96[59]]= function(_0x9c20x19,_0x9c20x1d){return db[_0x1d96[66]][_0x1d96[89]]({where:{id:_0x9c20x19[_0x1d96[88]][_0x1d96[87]]}})[_0x1d96[36]](handleEntityNotFound(_0x9c20x1d,null,_0x1d96[59]))[_0x1d96[36]](removeEntity(_0x9c20x1d,null,_0x1d96[59]))[_0x1d96[27]](handleError(_0x9c20x1d,null,_0x1d96[59]))};exports[_0x1d96[92]]= function(_0x9c20x19,_0x9c20x20,_0x9c20x32){var _0x9c20x23={};var _0x9c20x2f={};var _0x9c20x33;var _0x9c20x24;return db[_0x1d96[66]][_0x1d96[94]]({where:{id:_0x9c20x19[_0x1d96[88]][_0x1d96[87]]}})[_0x1d96[36]](handleEntityNotFound(_0x9c20x20,null,_0x1d96[92]))[_0x1d96[36]](function(_0x9c20x20){if(_0x9c20x20){_0x9c20x33= _0x9c20x20;_0x9c20x2f[_0x1d96[64]]= _[_0x1d96[67]](db[_0x1d96[93]][_0x1d96[65]]);_0x9c20x2f[_0x1d96[68]]= _[_0x1d96[67]](_0x9c20x19[_0x1d96[68]]);_0x9c20x2f[_0x1d96[69]]= _[_0x1d96[70]](_0x9c20x2f[_0x1d96[64]],_0x9c20x2f[_0x1d96[68]]);_0x9c20x23[_0x1d96[71]]= _[_0x1d96[70]](_0x9c20x2f[_0x1d96[64]],qs[_0x1d96[72]](_0x9c20x19[_0x1d96[68]][_0x1d96[72]]));_0x9c20x23[_0x1d96[71]]= (_0x9c20x23[_0x1d96[71]][_0x1d96[73]])?_0x9c20x23[_0x1d96[71]]:_0x9c20x2f[_0x1d96[64]];_0x9c20x23[_0x1d96[76]]= qs[_0x1d96[77]](_0x9c20x19[_0x1d96[68]][_0x1d96[77]]);_0x9c20x23[_0x1d96[78]]= qs[_0x1d96[69]](_[_0x1d96[79]](_0x9c20x19[_0x1d96[68]],_0x9c20x2f[_0x1d96[69]]));if(_0x9c20x19[_0x1d96[68]][_0x1d96[80]]){_0x9c20x23[_0x1d96[78]]= _[_0x1d96[83]](_0x9c20x23[_0x1d96[78]],{$or:_[_0x1d96[82]](_0x9c20x23[_0x1d96[71]],function(_0x9c20x30){var _0x9c20x31={};_0x9c20x31[_0x9c20x30]= {$like:_0x1d96[81]+ _0x9c20x19[_0x1d96[68]][_0x1d96[80]]+ _0x1d96[81]};return _0x9c20x31})})};_0x9c20x23= _[_0x1d96[83]]({},_0x9c20x23,_0x9c20x19[_0x1d96[84]]);return _0x9c20x33[_0x1d96[92]](_0x9c20x23)}})[_0x1d96[36]](function(_0x9c20x35){if(_0x9c20x35){_0x9c20x24= _0x9c20x35[_0x1d96[73]];if(!_0x9c20x19[_0x1d96[68]][_0x1d96[75]](_0x1d96[74])){_0x9c20x23[_0x1d96[47]]= qs[_0x1d96[47]](_0x9c20x19[_0x1d96[68]][_0x1d96[47]]);_0x9c20x23[_0x1d96[46]]= qs[_0x1d96[46]](_0x9c20x19[_0x1d96[68]][_0x1d96[46]])};return _0x9c20x33[_0x1d96[92]](_0x9c20x23)}})[_0x1d96[36]](function(_0x9c20x34){return _0x9c20x34?{count:_0x9c20x24,rows:_0x9c20x34}:null})[_0x1d96[36]](respondWithResult(_0x9c20x20,null,_0x1d96[92]))[_0x1d96[27]](handleError(_0x9c20x20,null,_0x1d96[92]))};exports[_0x1d96[95]]= function(_0x9c20x19,_0x9c20x20,_0x9c20x32){var _0x9c20x23={};var _0x9c20x2f={};var _0x9c20x33;var _0x9c20x24;return db[_0x1d96[66]][_0x1d96[94]]({where:{id:_0x9c20x19[_0x1d96[88]][_0x1d96[87]]}})[_0x1d96[36]](handleEntityNotFound(_0x9c20x20,null,_0x1d96[95]))[_0x1d96[36]](function(_0x9c20x20){if(_0x9c20x20){_0x9c20x33= _0x9c20x20;_0x9c20x2f[_0x1d96[64]]= _[_0x1d96[67]](db[_0x1d96[93]][_0x1d96[65]]);_0x9c20x2f[_0x1d96[68]]= _[_0x1d96[67]](_0x9c20x19[_0x1d96[68]]);_0x9c20x2f[_0x1d96[69]]= _[_0x1d96[70]](_0x9c20x2f[_0x1d96[64]],_0x9c20x2f[_0x1d96[68]]);_0x9c20x23[_0x1d96[71]]= _[_0x1d96[70]](_0x9c20x2f[_0x1d96[64]],qs[_0x1d96[72]](_0x9c20x19[_0x1d96[68]][_0x1d96[72]]));_0x9c20x23[_0x1d96[71]]= (_0x9c20x23[_0x1d96[71]][_0x1d96[73]])?_0x9c20x23[_0x1d96[71]]:_0x9c20x2f[_0x1d96[64]];_0x9c20x23[_0x1d96[76]]= qs[_0x1d96[77]](_0x9c20x19[_0x1d96[68]][_0x1d96[77]]);_0x9c20x23[_0x1d96[78]]= qs[_0x1d96[69]](_[_0x1d96[79]](_0x9c20x19[_0x1d96[68]],_0x9c20x2f[_0x1d96[69]]));if(_0x9c20x19[_0x1d96[68]][_0x1d96[80]]){_0x9c20x23[_0x1d96[78]]= _[_0x1d96[83]](_0x9c20x23[_0x1d96[78]],{$or:_[_0x1d96[82]](_0x9c20x23[_0x1d96[71]],function(_0x9c20x30){var _0x9c20x31={};_0x9c20x31[_0x9c20x30]= {$like:_0x1d96[81]+ _0x9c20x19[_0x1d96[68]][_0x1d96[80]]+ _0x1d96[81]};return _0x9c20x31})})};_0x9c20x23= _[_0x1d96[83]]({},_0x9c20x23,_0x9c20x19[_0x1d96[84]]);return _0x9c20x33[_0x1d96[95]](_0x9c20x23)}})[_0x1d96[36]](function(_0x9c20x35){if(_0x9c20x35){_0x9c20x24= _0x9c20x35[_0x1d96[73]];if(!_0x9c20x19[_0x1d96[68]][_0x1d96[75]](_0x1d96[74])){_0x9c20x23[_0x1d96[47]]= qs[_0x1d96[47]](_0x9c20x19[_0x1d96[68]][_0x1d96[47]]);_0x9c20x23[_0x1d96[46]]= qs[_0x1d96[46]](_0x9c20x19[_0x1d96[68]][_0x1d96[46]])};return _0x9c20x33[_0x1d96[95]](_0x9c20x23)}})[_0x1d96[36]](function(_0x9c20x34){return _0x9c20x34?{count:_0x9c20x24,rows:_0x9c20x34}:null})[_0x1d96[36]](respondWithResult(_0x9c20x20,null,_0x1d96[95]))[_0x1d96[27]](handleError(_0x9c20x20,null,_0x1d96[95]))};exports[_0x1d96[96]]= function(_0x9c20x19,_0x9c20x20,_0x9c20x32){var _0x9c20x23={};var _0x9c20x2f={};var _0x9c20x33;var _0x9c20x24;return db[_0x1d96[66]][_0x1d96[94]]({where:{id:_0x9c20x19[_0x1d96[88]][_0x1d96[87]]}})[_0x1d96[36]](handleEntityNotFound(_0x9c20x20,null,_0x1d96[96]))[_0x1d96[36]](function(_0x9c20x20){if(_0x9c20x20){_0x9c20x33= _0x9c20x20;_0x9c20x2f[_0x1d96[64]]= _[_0x1d96[67]](db[_0x1d96[93]][_0x1d96[65]]);_0x9c20x2f[_0x1d96[68]]= _[_0x1d96[67]](_0x9c20x19[_0x1d96[68]]);_0x9c20x2f[_0x1d96[69]]= _[_0x1d96[70]](_0x9c20x2f[_0x1d96[64]],_0x9c20x2f[_0x1d96[68]]);_0x9c20x23[_0x1d96[71]]= _[_0x1d96[70]](_0x9c20x2f[_0x1d96[64]],qs[_0x1d96[72]](_0x9c20x19[_0x1d96[68]][_0x1d96[72]]));_0x9c20x23[_0x1d96[71]]= (_0x9c20x23[_0x1d96[71]][_0x1d96[73]])?_0x9c20x23[_0x1d96[71]]:_0x9c20x2f[_0x1d96[64]];_0x9c20x23[_0x1d96[76]]= qs[_0x1d96[77]](_0x9c20x19[_0x1d96[68]][_0x1d96[77]]);_0x9c20x23[_0x1d96[78]]= qs[_0x1d96[69]](_[_0x1d96[79]](_0x9c20x19[_0x1d96[68]],_0x9c20x2f[_0x1d96[69]]));if(_0x9c20x19[_0x1d96[68]][_0x1d96[80]]){_0x9c20x23[_0x1d96[78]]= _[_0x1d96[83]](_0x9c20x23[_0x1d96[78]],{$or:_[_0x1d96[82]](_0x9c20x23[_0x1d96[71]],function(_0x9c20x30){var _0x9c20x31={};_0x9c20x31[_0x9c20x30]= {$like:_0x1d96[81]+ _0x9c20x19[_0x1d96[68]][_0x1d96[80]]+ _0x1d96[81]};return _0x9c20x31})})};_0x9c20x23= _[_0x1d96[83]]({},_0x9c20x23,_0x9c20x19[_0x1d96[84]]);return _0x9c20x33[_0x1d96[96]](_0x9c20x23)}})[_0x1d96[36]](function(_0x9c20x35){if(_0x9c20x35){_0x9c20x24= _0x9c20x35[_0x1d96[73]];if(!_0x9c20x19[_0x1d96[68]][_0x1d96[75]](_0x1d96[74])){_0x9c20x23[_0x1d96[47]]= qs[_0x1d96[47]](_0x9c20x19[_0x1d96[68]][_0x1d96[47]]);_0x9c20x23[_0x1d96[46]]= qs[_0x1d96[46]](_0x9c20x19[_0x1d96[68]][_0x1d96[46]])};return _0x9c20x33[_0x1d96[96]](_0x9c20x23)}})[_0x1d96[36]](function(_0x9c20x34){return _0x9c20x34?{count:_0x9c20x24,rows:_0x9c20x34}:null})[_0x1d96[36]](respondWithResult(_0x9c20x20,null,_0x1d96[96]))[_0x1d96[27]](handleError(_0x9c20x20,null,_0x1d96[96]))}
\ No newline at end of file
diff --git a/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.model.js b/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.model.js
new file mode 100644 (file)
index 0000000..0c708c9
--- /dev/null
@@ -0,0 +1 @@
+var _0x6310=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x5F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x6310[0];var _=require(_0x6310[1]);var util=require(_0x6310[2]);var logger=require(_0x6310[4])(_0x6310[3]);var attributes=require(_0x6310[5]);module[_0x6310[6]]= function(_0x42b3x5,_0x42b3x6){return _0x42b3x5[_0x6310[9]](_0x6310[7],attributes,{tableName:_0x6310[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.rpc.js b/server/api/intSugarcrmConfiguration/intSugarcrmConfiguration.rpc.js
new file mode 100644 (file)
index 0000000..a063377
--- /dev/null
@@ -0,0 +1 @@
+var _0x6623=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6623[0];var _=require(_0x6623[1]);var util=require(_0x6623[2]);var moment=require(_0x6623[3]);var BPromise=require(_0x6623[4]);var db=require(_0x6623[6])[_0x6623[5]];var utils=require(_0x6623[7]);var logger=require(_0x6623[9])(_0x6623[8]);var jayson=require(_0x6623[10]);var client=jayson[_0x6623[12]][_0x6623[11]]({port:9002});function respondWithRpcPromise(_0x1718xb,_0x1718xc,_0x1718xd){return  new BPromise(function(_0x1718xe,_0x1718xf){return client[_0x6623[25]](_0x1718xb,_0x1718xd)[_0x6623[24]](function(_0x1718x11){logger[_0x6623[17]](_0x6623[13],_0x1718xc,_0x6623[16]);logger[_0x6623[20]](_0x6623[18],_0x1718xc,_0x6623[16],JSON[_0x6623[19]](_0x1718x11));if(_0x1718x11[_0x6623[14]]){if(_0x1718x11[_0x6623[14]][_0x6623[21]]=== 500){logger[_0x6623[14]](_0x6623[13],_0x1718xc,_0x1718x11[_0x6623[14]][_0x6623[22]]);return _0x1718xf(_0x1718x11[_0x6623[14]][_0x6623[22]])};logger[_0x6623[14]](_0x6623[13],_0x1718xc,_0x1718x11[_0x6623[14]][_0x6623[22]]);return _0x1718xe(_0x1718x11[_0x6623[14]][_0x6623[22]])}else {logger[_0x6623[17]](_0x6623[13],_0x1718xc,_0x6623[16]);_0x1718xe(_0x1718x11[_0x6623[23]][_0x6623[22]])}})[_0x6623[15]](function(_0x1718x10){logger[_0x6623[14]](_0x6623[13],_0x1718xc,_0x1718x10);_0x1718xf(_0x1718x10)})})}
\ No newline at end of file
diff --git a/server/api/intSugarcrmField/index.js b/server/api/intSugarcrmField/index.js
new file mode 100644 (file)
index 0000000..e6182ce
--- /dev/null
@@ -0,0 +1 @@
+var _0xfa51=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfa51[0];var multer=require(_0xfa51[1]);var util=require(_0xfa51[2]);var path=require(_0xfa51[3]);var express=require(_0xfa51[4]);var router=express.Router();var auth=require(_0xfa51[5]);var config=require(_0xfa51[6]);var controller=require(_0xfa51[7]);router[_0xfa51[11]](_0xfa51[8],auth[_0xfa51[9]](),controller[_0xfa51[10]]);router[_0xfa51[11]](_0xfa51[12],auth[_0xfa51[9]](),controller[_0xfa51[13]]);router[_0xfa51[15]](_0xfa51[8],auth[_0xfa51[9]](),controller[_0xfa51[14]]);router[_0xfa51[17]](_0xfa51[12],auth[_0xfa51[9]](),controller[_0xfa51[16]]);router[_0xfa51[19]](_0xfa51[12],auth[_0xfa51[9]](),controller[_0xfa51[18]]);module[_0xfa51[20]]= router
\ No newline at end of file
diff --git a/server/api/intSugarcrmField/intSugarcrmField.attributes.js b/server/api/intSugarcrmField/intSugarcrmField.attributes.js
new file mode 100644 (file)
index 0000000..6f34754
--- /dev/null
@@ -0,0 +1 @@
+var _0x3bdd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x3bdd[0];var Sequelize=require(_0x3bdd[1]);module[_0x3bdd[2]]= {type:{type:Sequelize.ENUM(_0x3bdd[3],_0x3bdd[4],_0x3bdd[5],_0x3bdd[6]),defaultValue:_0x3bdd[3]},content:{type:Sequelize[_0x3bdd[7]]},key:{type:Sequelize[_0x3bdd[7]]},keyType:{type:Sequelize.ENUM(_0x3bdd[3],_0x3bdd[4],_0x3bdd[5])},keyContent:{type:Sequelize[_0x3bdd[7]]},idField:{type:Sequelize[_0x3bdd[7]]},nameField:{type:Sequelize[_0x3bdd[7]]},customField:{type:Sequelize[_0x3bdd[8]],defaultValue:true},variableName:{type:Sequelize[_0x3bdd[7]]}}
\ No newline at end of file
diff --git a/server/api/intSugarcrmField/intSugarcrmField.controller.js b/server/api/intSugarcrmField/intSugarcrmField.controller.js
new file mode 100644 (file)
index 0000000..bb0060f
--- /dev/null
@@ -0,0 +1 @@
+var _0x286b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x286b[0];var jsonpatch=require(_0x286b[1]);var rp=require(_0x286b[2]);var moment=require(_0x286b[3]);var BPromise=require(_0x286b[4]);var util=require(_0x286b[5]);var path=require(_0x286b[6]);var sox=require(_0x286b[7]);var ejs=require(_0x286b[8]);var fs=require(_0x286b[9]);var _=require(_0x286b[10]);var squel=require(_0x286b[11]);var crypto=require(_0x286b[12]);var jsforce=require(_0x286b[13]);var toCsv=require(_0x286b[14]);var qs=require(_0x286b[15]);var logger=require(_0x286b[17])(_0x286b[16]);var utils=require(_0x286b[18]);var config=require(_0x286b[19]);var db=require(_0x286b[21])[_0x286b[20]];function respondWithStatusCode(_0x97b5x15,_0x97b5x16,_0x97b5x17){_0x97b5x16= _0x97b5x16|| 204;return function(_0x97b5x18){if(_0x97b5x18){logger[_0x286b[24]](_0x286b[22],_0x97b5x17,_0x97b5x16,_0x286b[23]);logger[_0x286b[26]](_0x286b[25],_0x97b5x17,_0x97b5x16,_0x286b[23]);return _0x97b5x15[_0x286b[27]](_0x97b5x16)};return _0x97b5x15[_0x286b[29]](304)[_0x286b[28]]()}}function respondWithResult(_0x97b5x15,_0x97b5x16,_0x97b5x17){_0x97b5x16= _0x97b5x16|| 200;return function(_0x97b5x18){if(_0x97b5x18){logger[_0x286b[24]](_0x286b[22],_0x97b5x17,_0x97b5x16,_0x286b[30]);logger[_0x286b[26]](_0x286b[25],_0x97b5x17,_0x97b5x16,_0x286b[30],JSON[_0x286b[31]](_0x97b5x18));return _0x97b5x15[_0x286b[29]](_0x97b5x16)[_0x286b[32]](_0x97b5x18)};return _0x97b5x15[_0x286b[29]](304)[_0x286b[28]]()}}function respondWithFilteredResult(_0x97b5x15,_0x97b5x1b,_0x97b5x17){return function(_0x97b5x18){if(_0x97b5x18){var _0x97b5x1c=_0x97b5x18[_0x286b[33]],_0x97b5x1d=_0x97b5x1b[_0x286b[34]],_0x97b5x1e=_0x97b5x1b[_0x286b[34]]+ _0x97b5x1b[_0x286b[35]],_0x97b5x16;if(_0x97b5x1e>= _0x97b5x1c){_0x97b5x1e= _0x97b5x1c;_0x97b5x16= 200}else {_0x97b5x16= 206};_0x97b5x15[_0x286b[29]](_0x97b5x16);logger[_0x286b[24]](_0x286b[22],_0x97b5x17,_0x97b5x16,_0x286b[36]);logger[_0x286b[26]](_0x286b[25],_0x97b5x17,_0x97b5x16,_0x286b[30],JSON[_0x286b[31]](_0x97b5x18));return _0x97b5x15[_0x286b[40]](_0x286b[37],_0x97b5x1d+ _0x286b[38]+ _0x97b5x1e+ _0x286b[39]+ _0x97b5x1c)[_0x286b[32]](_0x97b5x18)};return null}}function patchUpdates(_0x97b5x20){return function(_0x97b5x18){try{jsonpatch[_0x286b[41]](_0x97b5x18,_0x97b5x20,true)}catch(err){return BPromise[_0x286b[42]](err)};return _0x97b5x18[_0x286b[43]]()}}function saveUpdates(_0x97b5x22,_0x97b5x16,_0x97b5x17){return function(_0x97b5x18){if(_0x97b5x18){return _0x97b5x18[_0x286b[46]](_0x97b5x22)[_0x286b[45]](function(_0x97b5x23){logger[_0x286b[24]](_0x286b[22],_0x97b5x17,_0x97b5x16,_0x286b[44]);logger[_0x286b[26]](_0x286b[25],_0x97b5x17,_0x97b5x16,_0x286b[44],JSON[_0x286b[31]](_0x97b5x18));return _0x97b5x23})};return null}}function removeEntity(_0x97b5x15,_0x97b5x16,_0x97b5x17){return function(_0x97b5x18){if(_0x97b5x18){return _0x97b5x18[_0x286b[48]]()[_0x286b[45]](function(){logger[_0x286b[24]](_0x286b[22],_0x97b5x17,_0x97b5x16,_0x286b[47]);logger[_0x286b[26]](_0x286b[25],_0x97b5x17,_0x97b5x16,_0x286b[47],JSON[_0x286b[31]](_0x97b5x18));_0x97b5x15[_0x286b[29]](204)[_0x286b[28]]()})}}}function handleEntityNotFound(_0x97b5x15,_0x97b5x16,_0x97b5x17){return function(_0x97b5x18){if(!_0x97b5x18){logger[_0x286b[50]](_0x286b[22],_0x97b5x17,404,_0x286b[49]);_0x97b5x15[_0x286b[29]](404)[_0x286b[28]]();return null};return _0x97b5x18}}function handleError(_0x97b5x15,_0x97b5x16,_0x97b5x17){_0x97b5x16= _0x97b5x16|| 500;return function(_0x97b5x27){logger[_0x286b[50]](_0x286b[22],_0x97b5x17,_0x97b5x16,JSON[_0x286b[31]](_0x97b5x27));delete _0x97b5x27[_0x286b[51]];_0x97b5x15[_0x286b[29]](_0x97b5x16)[_0x286b[52]](_0x97b5x27)}}exports[_0x286b[53]]= function(_0x97b5x28,_0x97b5x15){var _0x97b5x1b={},_0x97b5x29={};_0x97b5x29[_0x286b[54]]= _[_0x286b[57]](db[_0x286b[56]][_0x286b[55]]);_0x97b5x29[_0x286b[58]]= _[_0x286b[57]](_0x97b5x28[_0x286b[58]]);_0x97b5x29[_0x286b[59]]= _[_0x286b[60]](_0x97b5x29[_0x286b[54]],_0x97b5x29[_0x286b[58]]);_0x97b5x1b[_0x286b[61]]= _[_0x286b[60]](_0x97b5x29[_0x286b[54]],qs[_0x286b[62]](_0x97b5x28[_0x286b[58]][_0x286b[62]]));_0x97b5x1b[_0x286b[61]]= (_0x97b5x1b[_0x286b[61]][_0x286b[63]])?_0x97b5x1b[_0x286b[61]]:_0x97b5x29[_0x286b[54]];if(!_0x97b5x28[_0x286b[58]][_0x286b[65]](_0x286b[64])){_0x97b5x1b[_0x286b[35]]= qs[_0x286b[35]](_0x97b5x28[_0x286b[58]][_0x286b[35]]);_0x97b5x1b[_0x286b[34]]= qs[_0x286b[34]](_0x97b5x28[_0x286b[58]][_0x286b[34]])};_0x97b5x1b[_0x286b[66]]= qs[_0x286b[67]](_0x97b5x28[_0x286b[58]][_0x286b[67]]);_0x97b5x1b[_0x286b[68]]= qs[_0x286b[59]](_[_0x286b[69]](_0x97b5x28[_0x286b[58]],_0x97b5x29[_0x286b[59]]));if(_0x97b5x28[_0x286b[58]][_0x286b[70]]){_0x97b5x1b[_0x286b[68]]= _[_0x286b[73]](_0x97b5x1b[_0x286b[68]],{$or:_[_0x286b[72]](_0x97b5x1b[_0x286b[61]],function(_0x97b5x2a){var _0x97b5x2b={};_0x97b5x2b[_0x97b5x2a]= {$like:_0x286b[71]+ _0x97b5x28[_0x286b[58]][_0x286b[70]]+ _0x286b[71]};return _0x97b5x2b})})};_0x97b5x1b= _[_0x286b[73]]({},_0x97b5x1b,_0x97b5x28[_0x286b[74]]);return db[_0x286b[56]][_0x286b[76]](_0x97b5x1b)[_0x286b[45]](respondWithFilteredResult(_0x97b5x15,_0x97b5x1b,_0x286b[53]))[_0x286b[75]](handleError(_0x97b5x15,null,_0x286b[53]))};exports[_0x286b[77]]= function(_0x97b5x28,_0x97b5x15){var _0x97b5x1b={raw:true,where:{id:_0x97b5x28[_0x286b[79]][_0x286b[78]]}},_0x97b5x29={};_0x97b5x29[_0x286b[54]]= _[_0x286b[57]](db[_0x286b[56]][_0x286b[55]]);_0x97b5x29[_0x286b[58]]= _[_0x286b[57]](_0x97b5x28[_0x286b[58]]);_0x97b5x29[_0x286b[59]]= _[_0x286b[60]](_0x97b5x29[_0x286b[54]],_0x97b5x29[_0x286b[58]]);_0x97b5x1b[_0x286b[61]]= _[_0x286b[60]](_0x97b5x29[_0x286b[54]],qs[_0x286b[62]](_0x97b5x28[_0x286b[58]][_0x286b[62]]));_0x97b5x1b[_0x286b[61]]= (_0x97b5x1b[_0x286b[61]][_0x286b[63]])?_0x97b5x1b[_0x286b[61]]:_0x97b5x29[_0x286b[54]];_0x97b5x1b= _[_0x286b[73]]({},_0x97b5x1b,_0x97b5x28[_0x286b[74]]);return db[_0x286b[56]][_0x286b[80]](_0x97b5x1b)[_0x286b[45]](handleEntityNotFound(_0x97b5x15,null,_0x286b[77]))[_0x286b[45]](respondWithResult(_0x97b5x15,null,_0x286b[77]))[_0x286b[75]](handleError(_0x97b5x15,null,_0x286b[77]))};exports[_0x286b[81]]= function(_0x97b5x28,_0x97b5x15){return db[_0x286b[56]][_0x286b[81]](_0x97b5x28[_0x286b[82]],{})[_0x286b[45]](respondWithResult(_0x97b5x15,201,_0x286b[81]))[_0x286b[75]](handleError(_0x97b5x15,null,_0x286b[81]))};exports[_0x286b[46]]= function(_0x97b5x28,_0x97b5x15){if(_0x97b5x28[_0x286b[82]][_0x286b[78]]){delete _0x97b5x28[_0x286b[82]][_0x286b[78]]};return db[_0x286b[56]][_0x286b[80]]({where:{id:_0x97b5x28[_0x286b[79]][_0x286b[78]]}})[_0x286b[45]](handleEntityNotFound(_0x97b5x15,null,_0x286b[46]))[_0x286b[45]](saveUpdates(_0x97b5x28[_0x286b[82]],null,_0x286b[46]))[_0x286b[45]](respondWithResult(_0x97b5x15,null,_0x286b[46]))[_0x286b[75]](handleError(_0x97b5x15,null,_0x286b[46]))};exports[_0x286b[48]]= function(_0x97b5x28,_0x97b5x15){return db[_0x286b[56]][_0x286b[80]]({where:{id:_0x97b5x28[_0x286b[79]][_0x286b[78]]}})[_0x286b[45]](handleEntityNotFound(_0x97b5x15,null,_0x286b[48]))[_0x286b[45]](removeEntity(_0x97b5x15,null,_0x286b[48]))[_0x286b[75]](handleError(_0x97b5x15,null,_0x286b[48]))}
\ No newline at end of file
diff --git a/server/api/intSugarcrmField/intSugarcrmField.model.js b/server/api/intSugarcrmField/intSugarcrmField.model.js
new file mode 100644 (file)
index 0000000..d6a2888
--- /dev/null
@@ -0,0 +1 @@
+var _0xc424=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x69\x6E\x74\x5F\x73\x75\x67\x61\x72\x63\x72\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0xc424[0];var _=require(_0xc424[1]);var util=require(_0xc424[2]);var logger=require(_0xc424[4])(_0xc424[3]);var attributes=require(_0xc424[5]);module[_0xc424[6]]= function(_0xe88bx5,_0xe88bx6){return _0xe88bx5[_0xc424[9]](_0xc424[7],attributes,{tableName:_0xc424[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/intSugarcrmField/intSugarcrmField.rpc.js b/server/api/intSugarcrmField/intSugarcrmField.rpc.js
new file mode 100644 (file)
index 0000000..097d530
--- /dev/null
@@ -0,0 +1 @@
+var _0xebe8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xebe8[0];var _=require(_0xebe8[1]);var util=require(_0xebe8[2]);var moment=require(_0xebe8[3]);var BPromise=require(_0xebe8[4]);var db=require(_0xebe8[6])[_0xebe8[5]];var utils=require(_0xebe8[7]);var logger=require(_0xebe8[9])(_0xebe8[8]);var jayson=require(_0xebe8[10]);var client=jayson[_0xebe8[12]][_0xebe8[11]]({port:9002});function respondWithRpcPromise(_0x3312xb,_0x3312xc,_0x3312xd){return  new BPromise(function(_0x3312xe,_0x3312xf){return client[_0xebe8[25]](_0x3312xb,_0x3312xd)[_0xebe8[24]](function(_0x3312x11){logger[_0xebe8[17]](_0xebe8[13],_0x3312xc,_0xebe8[16]);logger[_0xebe8[20]](_0xebe8[18],_0x3312xc,_0xebe8[16],JSON[_0xebe8[19]](_0x3312x11));if(_0x3312x11[_0xebe8[14]]){if(_0x3312x11[_0xebe8[14]][_0xebe8[21]]=== 500){logger[_0xebe8[14]](_0xebe8[13],_0x3312xc,_0x3312x11[_0xebe8[14]][_0xebe8[22]]);return _0x3312xf(_0x3312x11[_0xebe8[14]][_0xebe8[22]])};logger[_0xebe8[14]](_0xebe8[13],_0x3312xc,_0x3312x11[_0xebe8[14]][_0xebe8[22]]);return _0x3312xe(_0x3312x11[_0xebe8[14]][_0xebe8[22]])}else {logger[_0xebe8[17]](_0xebe8[13],_0x3312xc,_0xebe8[16]);_0x3312xe(_0x3312x11[_0xebe8[23]][_0xebe8[22]])}})[_0xebe8[15]](function(_0x3312x10){logger[_0xebe8[14]](_0xebe8[13],_0x3312xc,_0x3312x10);_0x3312xf(_0x3312x10)})})}
\ No newline at end of file
diff --git a/server/api/intZendeskAccount/index.js b/server/api/intZendeskAccount/index.js
new file mode 100644 (file)
index 0000000..97ba27e
--- /dev/null
@@ -0,0 +1 @@
+var _0x4cfb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4cfb[0];var multer=require(_0x4cfb[1]);var util=require(_0x4cfb[2]);var path=require(_0x4cfb[3]);var express=require(_0x4cfb[4]);var router=express.Router();var auth=require(_0x4cfb[5]);var config=require(_0x4cfb[6]);var controller=require(_0x4cfb[7]);router[_0x4cfb[11]](_0x4cfb[8],auth[_0x4cfb[9]](),controller[_0x4cfb[10]]);router[_0x4cfb[11]](_0x4cfb[12],auth[_0x4cfb[9]](),controller[_0x4cfb[13]]);router[_0x4cfb[11]](_0x4cfb[14],auth[_0x4cfb[9]](),controller[_0x4cfb[15]]);router[_0x4cfb[11]](_0x4cfb[16],auth[_0x4cfb[9]](),controller[_0x4cfb[17]]);router[_0x4cfb[19]](_0x4cfb[8],auth[_0x4cfb[9]](),controller[_0x4cfb[18]]);router[_0x4cfb[19]](_0x4cfb[14],auth[_0x4cfb[9]](),controller[_0x4cfb[20]]);router[_0x4cfb[22]](_0x4cfb[12],auth[_0x4cfb[9]](),controller[_0x4cfb[21]]);router[_0x4cfb[24]](_0x4cfb[12],auth[_0x4cfb[9]](),controller[_0x4cfb[23]]);module[_0x4cfb[25]]= router
\ No newline at end of file
diff --git a/server/api/intZendeskAccount/intZendeskAccount.attributes.js b/server/api/intZendeskAccount/intZendeskAccount.attributes.js
new file mode 100644 (file)
index 0000000..73279df
--- /dev/null
@@ -0,0 +1 @@
+var _0x555e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E"];_0x555e[0];var Sequelize=require(_0x555e[1]);module[_0x555e[2]]= {name:{type:Sequelize[_0x555e[3]]},description:{type:Sequelize[_0x555e[3]]},username:{type:Sequelize[_0x555e[3]],unique:_0x555e[4]},password:{type:Sequelize[_0x555e[3]]},token:{type:Sequelize[_0x555e[3]]},remoteUri:{type:Sequelize[_0x555e[3]],unique:_0x555e[5]},authType:{type:Sequelize.ENUM(_0x555e[6],_0x555e[7]),defaultValue:_0x555e[6]},serverUrl:{type:Sequelize[_0x555e[3]]}}
\ No newline at end of file
diff --git a/server/api/intZendeskAccount/intZendeskAccount.controller.js b/server/api/intZendeskAccount/intZendeskAccount.controller.js
new file mode 100644 (file)
index 0000000..4c55304
--- /dev/null
@@ -0,0 +1 @@
+var _0xc870=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x79\x70\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x73\x75\x62\x6A\x65\x63\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x67\x72\x6F\x75\x70","\x61\x73\x73\x69\x67\x6E\x65\x65","\x74\x69\x63\x6B\x65\x74\x5F\x66\x69\x65\x6C\x64\x73","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x74\x69\x74\x6C\x65","\x73\x79\x73\x74\x65\x6D\x5F\x66\x69\x65\x6C\x64\x5F\x6F\x70\x74\x69\x6F\x6E\x73","\x47\x45\x54","\x25\x73\x25\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x66\x6F\x72\x6D\x61\x74","\x68\x65\x61\x64\x65\x72\x73","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x25\x73\x3A\x25\x73","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x25\x73\x2F\x74\x6F\x6B\x65\x6E\x3A\x25\x73","\x74\x6F\x6B\x65\x6E","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x69\x6F\x6E\x20\x74\x79\x70\x65","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x61\x75\x74\x68\x54\x79\x70\x65"];_0xc870[0];var jsonpatch=require(_0xc870[1]);var rp=require(_0xc870[2]);var moment=require(_0xc870[3]);var BPromise=require(_0xc870[4]);var util=require(_0xc870[5]);var path=require(_0xc870[6]);var sox=require(_0xc870[7]);var ejs=require(_0xc870[8]);var fs=require(_0xc870[9]);var _=require(_0xc870[10]);var squel=require(_0xc870[11]);var crypto=require(_0xc870[12]);var jsforce=require(_0xc870[13]);var toCsv=require(_0xc870[14]);var qs=require(_0xc870[15]);var logger=require(_0xc870[17])(_0xc870[16]);var utils=require(_0xc870[18]);var config=require(_0xc870[19]);var db=require(_0xc870[21])[_0xc870[20]];var integrations=require(_0xc870[22]);var jayson=require(_0xc870[23]);var client=jayson[_0xc870[25]][_0xc870[24]]({port:9002});function respondWithRpcPromise(_0x5f07x18,_0x5f07x19,_0x5f07x1a){return  new BPromise(function(_0x5f07x1b,_0x5f07x1c){return client[_0xc870[38]](_0x5f07x18,_0x5f07x1a)[_0xc870[37]](function(_0x5f07x1e){logger[_0xc870[30]](_0xc870[26],_0x5f07x19,_0xc870[29]);logger[_0xc870[33]](_0xc870[31],_0x5f07x19,_0xc870[29],JSON[_0xc870[32]](_0x5f07x1e));if(_0x5f07x1e[_0xc870[27]]){if(_0x5f07x1e[_0xc870[27]][_0xc870[34]]=== 500){logger[_0xc870[27]](_0xc870[26],_0x5f07x19,_0x5f07x1e[_0xc870[27]][_0xc870[35]]);return _0x5f07x1c(_0x5f07x1e[_0xc870[27]][_0xc870[35]])};logger[_0xc870[27]](_0xc870[26],_0x5f07x19,_0x5f07x1e[_0xc870[27]][_0xc870[35]]);return _0x5f07x1b(_0x5f07x1e[_0xc870[27]][_0xc870[35]])}else {logger[_0xc870[30]](_0xc870[26],_0x5f07x19,_0xc870[29]);_0x5f07x1b(_0x5f07x1e[_0xc870[36]][_0xc870[35]])}})[_0xc870[28]](function(_0x5f07x1d){logger[_0xc870[27]](_0xc870[26],_0x5f07x19,_0x5f07x1d);_0x5f07x1c(_0x5f07x1d)})})}function respondWithStatusCode(_0x5f07x1e,_0x5f07x20,_0x5f07x19){_0x5f07x20= _0x5f07x20|| 204;return function(_0x5f07x21){if(_0x5f07x21){logger[_0xc870[30]](_0xc870[31],_0x5f07x19,_0x5f07x20,_0xc870[39]);logger[_0xc870[33]](_0xc870[40],_0x5f07x19,_0x5f07x20,_0xc870[39]);return _0x5f07x1e[_0xc870[41]](_0x5f07x20)};return _0x5f07x1e[_0xc870[43]](304)[_0xc870[42]]()}}function respondWithResult(_0x5f07x1e,_0x5f07x20,_0x5f07x19){_0x5f07x20= _0x5f07x20|| 200;return function(_0x5f07x21){if(_0x5f07x21){logger[_0xc870[30]](_0xc870[31],_0x5f07x19,_0x5f07x20,_0xc870[44]);logger[_0xc870[33]](_0xc870[40],_0x5f07x19,_0x5f07x20,_0xc870[44],JSON[_0xc870[32]](_0x5f07x21));return _0x5f07x1e[_0xc870[43]](_0x5f07x20)[_0xc870[45]](_0x5f07x21)};return _0x5f07x1e[_0xc870[43]](304)[_0xc870[42]]()}}function respondWithFilteredResult(_0x5f07x1e,_0x5f07x24,_0x5f07x19){return function(_0x5f07x21){if(_0x5f07x21){var _0x5f07x25=_0x5f07x21[_0xc870[46]],_0x5f07x26=_0x5f07x24[_0xc870[47]],_0x5f07x27=_0x5f07x24[_0xc870[47]]+ _0x5f07x24[_0xc870[48]],_0x5f07x20;if(_0x5f07x27>= _0x5f07x25){_0x5f07x27= _0x5f07x25;_0x5f07x20= 200}else {_0x5f07x20= 206};_0x5f07x1e[_0xc870[43]](_0x5f07x20);logger[_0xc870[30]](_0xc870[31],_0x5f07x19,_0x5f07x20,_0xc870[49]);logger[_0xc870[33]](_0xc870[40],_0x5f07x19,_0x5f07x20,_0xc870[44],JSON[_0xc870[32]](_0x5f07x21));return _0x5f07x1e[_0xc870[53]](_0xc870[50],_0x5f07x26+ _0xc870[51]+ _0x5f07x27+ _0xc870[52]+ _0x5f07x25)[_0xc870[45]](_0x5f07x21)};return null}}function patchUpdates(_0x5f07x29){return function(_0x5f07x21){try{jsonpatch[_0xc870[54]](_0x5f07x21,_0x5f07x29,true)}catch(err){return BPromise[_0xc870[55]](err)};return _0x5f07x21[_0xc870[56]]()}}function saveUpdates(_0x5f07x2b,_0x5f07x20,_0x5f07x19){return function(_0x5f07x21){if(_0x5f07x21){return _0x5f07x21[_0xc870[58]](_0x5f07x2b)[_0xc870[37]](function(_0x5f07x2c){logger[_0xc870[30]](_0xc870[31],_0x5f07x19,_0x5f07x20,_0xc870[57]);logger[_0xc870[33]](_0xc870[40],_0x5f07x19,_0x5f07x20,_0xc870[57],JSON[_0xc870[32]](_0x5f07x21));return _0x5f07x2c})};return null}}function removeEntity(_0x5f07x1e,_0x5f07x20,_0x5f07x19){return function(_0x5f07x21){if(_0x5f07x21){return _0x5f07x21[_0xc870[60]]()[_0xc870[37]](function(){logger[_0xc870[30]](_0xc870[31],_0x5f07x19,_0x5f07x20,_0xc870[59]);logger[_0xc870[33]](_0xc870[40],_0x5f07x19,_0x5f07x20,_0xc870[59],JSON[_0xc870[32]](_0x5f07x21));_0x5f07x1e[_0xc870[43]](204)[_0xc870[42]]()})}}}function handleEntityNotFound(_0x5f07x1e,_0x5f07x20,_0x5f07x19){return function(_0x5f07x21){if(!_0x5f07x21){logger[_0xc870[27]](_0xc870[31],_0x5f07x19,404,_0xc870[61]);_0x5f07x1e[_0xc870[43]](404)[_0xc870[42]]();return null};return _0x5f07x21}}function handleError(_0x5f07x1e,_0x5f07x20,_0x5f07x19){_0x5f07x20= _0x5f07x20|| 500;return function(_0x5f07x1d){logger[_0xc870[27]](_0xc870[31],_0x5f07x19,_0x5f07x20,JSON[_0xc870[32]](_0x5f07x1d));delete _0x5f07x1d[_0xc870[62]];_0x5f07x1e[_0xc870[43]](_0x5f07x20)[_0xc870[63]](_0x5f07x1d)}}exports[_0xc870[64]]= function(_0x5f07x1a,_0x5f07x1e){var _0x5f07x24={},_0x5f07x30={};_0x5f07x30[_0xc870[65]]= _[_0xc870[68]](db[_0xc870[67]][_0xc870[66]]);_0x5f07x30[_0xc870[69]]= _[_0xc870[68]](_0x5f07x1a[_0xc870[69]]);_0x5f07x30[_0xc870[70]]= _[_0xc870[71]](_0x5f07x30[_0xc870[65]],_0x5f07x30[_0xc870[69]]);_0x5f07x24[_0xc870[72]]= _[_0xc870[71]](_0x5f07x30[_0xc870[65]],qs[_0xc870[73]](_0x5f07x1a[_0xc870[69]][_0xc870[73]]));_0x5f07x24[_0xc870[72]]= (_0x5f07x24[_0xc870[72]][_0xc870[74]])?_0x5f07x24[_0xc870[72]]:_0x5f07x30[_0xc870[65]];if(!_0x5f07x1a[_0xc870[69]][_0xc870[76]](_0xc870[75])){_0x5f07x24[_0xc870[48]]= qs[_0xc870[48]](_0x5f07x1a[_0xc870[69]][_0xc870[48]]);_0x5f07x24[_0xc870[47]]= qs[_0xc870[47]](_0x5f07x1a[_0xc870[69]][_0xc870[47]])};_0x5f07x24[_0xc870[77]]= qs[_0xc870[78]](_0x5f07x1a[_0xc870[69]][_0xc870[78]]);_0x5f07x24[_0xc870[79]]= qs[_0xc870[70]](_[_0xc870[80]](_0x5f07x1a[_0xc870[69]],_0x5f07x30[_0xc870[70]]));if(_0x5f07x1a[_0xc870[69]][_0xc870[81]]){_0x5f07x24[_0xc870[79]]= _[_0xc870[84]](_0x5f07x24[_0xc870[79]],{$or:_[_0xc870[83]](_0x5f07x24[_0xc870[72]],function(_0x5f07x31){var _0x5f07x32={};_0x5f07x32[_0x5f07x31]= {$like:_0xc870[82]+ _0x5f07x1a[_0xc870[69]][_0xc870[81]]+ _0xc870[82]};return _0x5f07x32})})};_0x5f07x24= _[_0xc870[84]]({},_0x5f07x24,_0x5f07x1a[_0xc870[85]]);return db[_0xc870[67]][_0xc870[86]](_0x5f07x24)[_0xc870[37]](respondWithFilteredResult(_0x5f07x1e,_0x5f07x24,_0xc870[64]))[_0xc870[28]](handleError(_0x5f07x1e,null,_0xc870[64]))};exports[_0xc870[87]]= function(_0x5f07x1a,_0x5f07x1e){var _0x5f07x24={raw:false,where:{id:_0x5f07x1a[_0xc870[89]][_0xc870[88]]}},_0x5f07x30={};_0x5f07x30[_0xc870[65]]= _[_0xc870[68]](db[_0xc870[67]][_0xc870[66]]);_0x5f07x30[_0xc870[69]]= _[_0xc870[68]](_0x5f07x1a[_0xc870[69]]);_0x5f07x30[_0xc870[70]]= _[_0xc870[71]](_0x5f07x30[_0xc870[65]],_0x5f07x30[_0xc870[69]]);_0x5f07x24[_0xc870[72]]= _[_0xc870[71]](_0x5f07x30[_0xc870[65]],qs[_0xc870[73]](_0x5f07x1a[_0xc870[69]][_0xc870[73]]));_0x5f07x24[_0xc870[72]]= (_0x5f07x24[_0xc870[72]][_0xc870[74]])?_0x5f07x24[_0xc870[72]]:_0x5f07x30[_0xc870[65]];_0x5f07x24= _[_0xc870[84]]({},_0x5f07x24,_0x5f07x1a[_0xc870[85]]);return db[_0xc870[67]][_0xc870[90]](_0x5f07x24)[_0xc870[37]](handleEntityNotFound(_0x5f07x1e,null,_0xc870[87]))[_0xc870[37]](respondWithResult(_0x5f07x1e,null,_0xc870[87]))[_0xc870[28]](handleError(_0x5f07x1e,null,_0xc870[87]))};exports[_0xc870[91]]= function(_0x5f07x1a,_0x5f07x1e){return db[_0xc870[67]][_0xc870[91]](_0x5f07x1a[_0xc870[92]],{})[_0xc870[37]](respondWithResult(_0x5f07x1e,201,_0xc870[91]))[_0xc870[28]](handleError(_0x5f07x1e,null,_0xc870[91]))};exports[_0xc870[58]]= function(_0x5f07x1a,_0x5f07x1e){if(_0x5f07x1a[_0xc870[92]][_0xc870[88]]){delete _0x5f07x1a[_0xc870[92]][_0xc870[88]]};return db[_0xc870[67]][_0xc870[90]]({where:{id:_0x5f07x1a[_0xc870[89]][_0xc870[88]]}})[_0xc870[37]](handleEntityNotFound(_0x5f07x1e,null,_0xc870[58]))[_0xc870[37]](saveUpdates(_0x5f07x1a[_0xc870[92]],null,_0xc870[58]))[_0xc870[37]](respondWithResult(_0x5f07x1e,null,_0xc870[58]))[_0xc870[28]](handleError(_0x5f07x1e,null,_0xc870[58]))};exports[_0xc870[60]]= function(_0x5f07x1a,_0x5f07x1e){return db[_0xc870[67]][_0xc870[90]]({where:{id:_0x5f07x1a[_0xc870[89]][_0xc870[88]]}})[_0xc870[37]](handleEntityNotFound(_0x5f07x1e,null,_0xc870[60]))[_0xc870[37]](removeEntity(_0x5f07x1e,null,_0xc870[60]))[_0xc870[28]](handleError(_0x5f07x1e,null,_0xc870[60]))};exports[_0xc870[93]]= function(_0x5f07x1a,_0x5f07x21,_0x5f07x33){var _0x5f07x24={};var _0x5f07x30={};var _0x5f07x34;var _0x5f07x25;return db[_0xc870[67]][_0xc870[95]]({where:{id:_0x5f07x1a[_0xc870[89]][_0xc870[88]]}})[_0xc870[37]](handleEntityNotFound(_0x5f07x21,null,_0xc870[93]))[_0xc870[37]](function(_0x5f07x21){if(_0x5f07x21){_0x5f07x34= _0x5f07x21;_0x5f07x30[_0xc870[65]]= _[_0xc870[68]](db[_0xc870[94]][_0xc870[66]]);_0x5f07x30[_0xc870[69]]= _[_0xc870[68]](_0x5f07x1a[_0xc870[69]]);_0x5f07x30[_0xc870[70]]= _[_0xc870[71]](_0x5f07x30[_0xc870[65]],_0x5f07x30[_0xc870[69]]);_0x5f07x24[_0xc870[72]]= _[_0xc870[71]](_0x5f07x30[_0xc870[65]],qs[_0xc870[73]](_0x5f07x1a[_0xc870[69]][_0xc870[73]]));_0x5f07x24[_0xc870[72]]= (_0x5f07x24[_0xc870[72]][_0xc870[74]])?_0x5f07x24[_0xc870[72]]:_0x5f07x30[_0xc870[65]];_0x5f07x24[_0xc870[77]]= qs[_0xc870[78]](_0x5f07x1a[_0xc870[69]][_0xc870[78]]);_0x5f07x24[_0xc870[79]]= qs[_0xc870[70]](_[_0xc870[80]](_0x5f07x1a[_0xc870[69]],_0x5f07x30[_0xc870[70]]));if(_0x5f07x1a[_0xc870[69]][_0xc870[81]]){_0x5f07x24[_0xc870[79]]= _[_0xc870[84]](_0x5f07x24[_0xc870[79]],{$or:_[_0xc870[83]](_0x5f07x24[_0xc870[72]],function(_0x5f07x31){var _0x5f07x32={};_0x5f07x32[_0x5f07x31]= {$like:_0xc870[82]+ _0x5f07x1a[_0xc870[69]][_0xc870[81]]+ _0xc870[82]};return _0x5f07x32})})};_0x5f07x24= _[_0xc870[84]]({},_0x5f07x24,_0x5f07x1a[_0xc870[85]]);return _0x5f07x34[_0xc870[93]](_0x5f07x24)}})[_0xc870[37]](function(_0x5f07x36){if(_0x5f07x36){_0x5f07x25= _0x5f07x36[_0xc870[74]];if(!_0x5f07x1a[_0xc870[69]][_0xc870[76]](_0xc870[75])){_0x5f07x24[_0xc870[48]]= qs[_0xc870[48]](_0x5f07x1a[_0xc870[69]][_0xc870[48]]);_0x5f07x24[_0xc870[47]]= qs[_0xc870[47]](_0x5f07x1a[_0xc870[69]][_0xc870[47]])};return _0x5f07x34[_0xc870[93]](_0x5f07x24)}})[_0xc870[37]](function(_0x5f07x35){return _0x5f07x35?{count:_0x5f07x25,rows:_0x5f07x35}:null})[_0xc870[37]](respondWithResult(_0x5f07x21,null,_0xc870[93]))[_0xc870[28]](handleError(_0x5f07x21,null,_0xc870[93]))};exports[_0xc870[96]]= function(_0x5f07x1a,_0x5f07x1e,_0x5f07x33){if(_0x5f07x1a[_0xc870[92]][_0xc870[88]]){delete _0x5f07x1a[_0xc870[92]][_0xc870[88]]};return db[_0xc870[67]][_0xc870[95]]({where:{id:_0x5f07x1a[_0xc870[89]][_0xc870[88]]}})[_0xc870[37]](handleEntityNotFound(_0x5f07x1e,null,_0xc870[96]))[_0xc870[37]](function(_0x5f07x21){if(_0x5f07x21){_0x5f07x1a[_0xc870[92]][_0xc870[97]]= _0x5f07x21[_0xc870[88]];_0x5f07x1a[_0xc870[92]][_0xc870[98]]= integrations[_0xc870[101]](_0x5f07x1a[_0xc870[92]][_0xc870[99]],_0x5f07x1a[_0xc870[92]][_0xc870[100]]);_0x5f07x1a[_0xc870[92]][_0xc870[102]]= integrations[_0xc870[103]](_0x5f07x1a[_0xc870[92]][_0xc870[99]],_0x5f07x1a[_0xc870[92]][_0xc870[100]]);return db[_0xc870[94]][_0xc870[91]](_0x5f07x1a[_0xc870[92]],{include:[{model:db[_0xc870[104]],as:_0xc870[98]},{model:db[_0xc870[104]],as:_0xc870[102]}]})};return null})[_0xc870[37]](respondWithResult(_0x5f07x1e,null,_0xc870[96]))[_0xc870[28]](handleError(_0x5f07x1e,null,_0xc870[96]))};exports[_0xc870[105]]= function(_0x5f07x1a,_0x5f07x1e,_0x5f07x33){return db[_0xc870[67]][_0xc870[95]]({where:{id:_0x5f07x1a[_0xc870[89]][_0xc870[88]]},attributes:[_0xc870[88],_0xc870[124],_0xc870[125],_0xc870[127],_0xc870[130],_0xc870[118]]})[_0xc870[37]](handleEntityNotFound(_0x5f07x1e,null,_0xc870[105]))[_0xc870[37]](function(_0x5f07x21){if(_0x5f07x21){var _0x5f07x24={method:_0xc870[116],uri:util[_0xc870[119]](_0xc870[117],_0x5f07x21[_0xc870[118]],_0xc870[110]),json:true};switch(_0x5f07x21[_0xc870[130]]){case _0xc870[125]:_0x5f07x24[_0xc870[120]]= {Authorization:util[_0xc870[119]](_0xc870[121], new Buffer(util[_0xc870[119]](_0xc870[123],_0x5f07x21[_0xc870[124]],_0x5f07x21[_0xc870[125]])).toString(_0xc870[122]))};break;case _0xc870[127]:_0x5f07x24[_0xc870[120]]= {Authorization:util[_0xc870[119]](_0xc870[121], new Buffer(util[_0xc870[119]](_0xc870[126],_0x5f07x21[_0xc870[124]],_0x5f07x21[_0xc870[127]])).toString(_0xc870[122]))};break;default:throw  new db[_0xc870[129]].ValidationError(_0xc870[128])};return rp(_0x5f07x24)}})[_0xc870[37]](function(_0x5f07x36){if(_0x5f07x36){var _0x5f07x37=[_0xc870[106],_0xc870[107],_0xc870[108],_0xc870[109]];_[_0xc870[112]](_0x5f07x36[_0xc870[110]],function(_0x5f07x38){return _0x5f07x37[_0xc870[111]](_0x5f07x38[_0xc870[100]])});return {count:_0x5f07x36[_0xc870[110]][_0xc870[74]],rows:_[_0xc870[83]](_0x5f07x36[_0xc870[110]],function(_0x5f07x21){return {id:_0x5f07x21[_0xc870[88]],name:_0x5f07x21[_0xc870[113]]> 7?_0x5f07x21[_0xc870[114]]:_0x5f07x21[_0xc870[100]],custom:_0x5f07x21[_0xc870[113]]> 7?true:false,options:_0x5f07x21[_0xc870[115]]?_0x5f07x21[_0xc870[115]]:[]}})}}})[_0xc870[37]](respondWithResult(_0x5f07x1e,null,_0xc870[105]))[_0xc870[28]](handleError(_0x5f07x1e,null,_0xc870[105]))}
\ No newline at end of file
diff --git a/server/api/intZendeskAccount/intZendeskAccount.model.js b/server/api/intZendeskAccount/intZendeskAccount.model.js
new file mode 100644 (file)
index 0000000..42900bf
--- /dev/null
@@ -0,0 +1 @@
+var _0xce6b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x69\x6E\x74\x5F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xce6b[0];var _=require(_0xce6b[1]);var util=require(_0xce6b[2]);var logger=require(_0xce6b[4])(_0xce6b[3]);var attributes=require(_0xce6b[5]);var integrations=require(_0xce6b[6]);module[_0xce6b[7]]= function(_0x2f49x6,_0x2f49x7){return _0x2f49x6[_0xce6b[10]](_0xce6b[8],attributes,{tableName:_0xce6b[9],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/intZendeskAccount/intZendeskAccount.rpc.js b/server/api/intZendeskAccount/intZendeskAccount.rpc.js
new file mode 100644 (file)
index 0000000..4c69bd2
--- /dev/null
@@ -0,0 +1 @@
+var _0x4d73=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x53\x68\x6F\x77\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64"];_0x4d73[0];var _=require(_0x4d73[1]);var util=require(_0x4d73[2]);var moment=require(_0x4d73[3]);var BPromise=require(_0x4d73[4]);var db=require(_0x4d73[6])[_0x4d73[5]];var utils=require(_0x4d73[7]);var logger=require(_0x4d73[9])(_0x4d73[8]);var jayson=require(_0x4d73[10]);var client=jayson[_0x4d73[12]][_0x4d73[11]]({port:9002});function respondWithRpcPromise(_0x1f2exb,_0x1f2exc,_0x1f2exd){return  new BPromise(function(_0x1f2exe,_0x1f2exf){return client[_0x4d73[25]](_0x1f2exb,_0x1f2exd)[_0x4d73[24]](function(_0x1f2ex11){logger[_0x4d73[17]](_0x4d73[13],_0x1f2exc,_0x4d73[16]);logger[_0x4d73[20]](_0x4d73[18],_0x1f2exc,_0x4d73[16],JSON[_0x4d73[19]](_0x1f2ex11));if(_0x1f2ex11[_0x4d73[14]]){if(_0x1f2ex11[_0x4d73[14]][_0x4d73[21]]=== 500){logger[_0x4d73[14]](_0x4d73[13],_0x1f2exc,_0x1f2ex11[_0x4d73[14]][_0x4d73[22]]);return _0x1f2exf(_0x1f2ex11[_0x4d73[14]][_0x4d73[22]])};logger[_0x4d73[14]](_0x4d73[13],_0x1f2exc,_0x1f2ex11[_0x4d73[14]][_0x4d73[22]]);return _0x1f2exe(_0x1f2ex11[_0x4d73[14]][_0x4d73[22]])}else {logger[_0x4d73[17]](_0x4d73[13],_0x1f2exc,_0x4d73[16]);_0x1f2exe(_0x1f2ex11[_0x4d73[23]][_0x4d73[22]])}})[_0x4d73[15]](function(_0x1f2ex10){logger[_0x4d73[14]](_0x4d73[13],_0x1f2exc,_0x1f2ex10);_0x1f2exf(_0x1f2ex10)})})}exports[_0x4d73[26]]= function(_0x1f2exd){var _0x1f2ex12=this;return  new Promise(function(_0x1f2exe,_0x1f2exf){return db[_0x4d73[37]][_0x4d73[36]]({raw:_0x1f2exd[_0x4d73[27]]?(_0x1f2exd[_0x4d73[27]][_0x4d73[28]]=== undefined)?true:false:true,where:_0x1f2exd[_0x4d73[27]]?_0x1f2exd[_0x4d73[27]][_0x4d73[29]]|| null:null,attributes:_0x1f2exd[_0x4d73[27]]?_0x1f2exd[_0x4d73[27]][_0x4d73[30]]|| null:null,limit:_0x1f2exd[_0x4d73[27]]?_0x1f2exd[_0x4d73[27]][_0x4d73[31]]|| null:null,include:_0x1f2exd[_0x4d73[27]]?(_0x1f2exd[_0x4d73[27]][_0x4d73[32]]?_[_0x4d73[35]](_0x1f2exd[_0x4d73[27]][_0x4d73[32]],function(_0x1f2ex13){return {model:db[_0x1f2ex13[_0x4d73[33]]],as:_0x1f2ex13[_0x4d73[34]],attributes:_0x1f2ex13[_0x4d73[30]],include:_0x1f2ex13[_0x4d73[32]]?_[_0x4d73[35]](_0x1f2ex13[_0x4d73[32]],function(_0x1f2ex14){return {model:db[_0x1f2ex14[_0x4d73[33]]],as:_0x1f2ex14[_0x4d73[34]],attributes:_0x1f2ex14[_0x4d73[30]],include:_0x1f2ex14[_0x4d73[32]]?_[_0x4d73[35]](_0x1f2ex14[_0x4d73[32]],function(_0x1f2ex15){return {model:db[_0x1f2ex15[_0x4d73[33]]],as:_0x1f2ex15[_0x4d73[34]],attributes:_0x1f2ex15[_0x4d73[30]]}}):[]}}):[]}}):[]):[]})[_0x4d73[24]](function(_0x1f2ex11){logger[_0x4d73[17]](_0x4d73[26],_0x1f2exd);logger[_0x4d73[20]](_0x4d73[26],_0x1f2exd,JSON[_0x4d73[19]](_0x1f2ex11));_0x1f2exe(_0x1f2ex11)})[_0x4d73[15]](function(_0x1f2ex10){logger[_0x4d73[14]](_0x4d73[26],_0x1f2ex10[_0x4d73[22]],_0x1f2exd);_0x1f2exf(_0x1f2ex12[_0x4d73[14]](500,_0x1f2ex10[_0x4d73[22]]))})})};exports[_0x4d73[38]]= function(_0x1f2exd){var _0x1f2ex12=this;return  new Promise(function(_0x1f2exe,_0x1f2exf){return db[_0x4d73[37]][_0x4d73[39]]({raw:_0x1f2exd[_0x4d73[27]]?(_0x1f2exd[_0x4d73[27]][_0x4d73[28]]=== undefined)?true:false:true,where:_0x1f2exd[_0x4d73[27]]?_0x1f2exd[_0x4d73[27]][_0x4d73[29]]|| null:null,attributes:_0x1f2exd[_0x4d73[27]]?_0x1f2exd[_0x4d73[27]][_0x4d73[30]]|| null:null,include:_0x1f2exd[_0x4d73[27]]?(_0x1f2exd[_0x4d73[27]][_0x4d73[32]]?_[_0x4d73[35]](_0x1f2exd[_0x4d73[27]][_0x4d73[32]],function(_0x1f2ex13){return {model:db[_0x1f2ex13[_0x4d73[33]]],as:_0x1f2ex13[_0x4d73[34]],attributes:_0x1f2ex13[_0x4d73[30]],include:_0x1f2ex13[_0x4d73[32]]?_[_0x4d73[35]](_0x1f2ex13[_0x4d73[32]],function(_0x1f2ex14){return {model:db[_0x1f2ex14[_0x4d73[33]]],as:_0x1f2ex14[_0x4d73[34]],attributes:_0x1f2ex14[_0x4d73[30]],include:_0x1f2ex14[_0x4d73[32]]?_[_0x4d73[35]](_0x1f2ex14[_0x4d73[32]],function(_0x1f2ex15){return {model:db[_0x1f2ex15[_0x4d73[33]]],as:_0x1f2ex15[_0x4d73[34]],attributes:_0x1f2ex15[_0x4d73[30]]}}):[]}}):[]}}):[]):[]})[_0x4d73[24]](function(_0x1f2ex11){logger[_0x4d73[17]](_0x4d73[38],_0x1f2exd);logger[_0x4d73[20]](_0x4d73[38],_0x1f2exd,JSON[_0x4d73[19]](_0x1f2ex11));_0x1f2exe(_0x1f2ex11)})[_0x4d73[15]](function(_0x1f2ex10){logger[_0x4d73[14]](_0x4d73[38],_0x1f2ex10[_0x4d73[22]],_0x1f2exd);_0x1f2exf(_0x1f2ex12[_0x4d73[14]](500,_0x1f2ex10[_0x4d73[22]]))})})}
\ No newline at end of file
diff --git a/server/api/intZendeskConfiguration/index.js b/server/api/intZendeskConfiguration/index.js
new file mode 100644 (file)
index 0000000..d3bb06a
--- /dev/null
@@ -0,0 +1 @@
+var _0xb1e9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x66\x69\x65\x6C\x64\x73","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x74\x61\x67\x73","\x67\x65\x74\x54\x61\x67\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x73\x65\x74\x54\x61\x67\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xb1e9[0];var multer=require(_0xb1e9[1]);var util=require(_0xb1e9[2]);var path=require(_0xb1e9[3]);var express=require(_0xb1e9[4]);var router=express.Router();var auth=require(_0xb1e9[5]);var config=require(_0xb1e9[6]);var controller=require(_0xb1e9[7]);router[_0xb1e9[11]](_0xb1e9[8],auth[_0xb1e9[9]](),controller[_0xb1e9[10]]);router[_0xb1e9[11]](_0xb1e9[12],auth[_0xb1e9[9]](),controller[_0xb1e9[13]]);router[_0xb1e9[11]](_0xb1e9[14],auth[_0xb1e9[9]](),controller[_0xb1e9[15]]);router[_0xb1e9[11]](_0xb1e9[16],auth[_0xb1e9[9]](),controller[_0xb1e9[17]]);router[_0xb1e9[11]](_0xb1e9[18],auth[_0xb1e9[9]](),controller[_0xb1e9[19]]);router[_0xb1e9[11]](_0xb1e9[20],auth[_0xb1e9[9]](),controller[_0xb1e9[21]]);router[_0xb1e9[23]](_0xb1e9[8],auth[_0xb1e9[9]](),controller[_0xb1e9[22]]);router[_0xb1e9[23]](_0xb1e9[20],auth[_0xb1e9[9]](),controller[_0xb1e9[24]]);router[_0xb1e9[26]](_0xb1e9[12],auth[_0xb1e9[9]](),controller[_0xb1e9[25]]);router[_0xb1e9[28]](_0xb1e9[12],auth[_0xb1e9[9]](),controller[_0xb1e9[27]]);module[_0xb1e9[29]]= router
\ No newline at end of file
diff --git a/server/api/intZendeskConfiguration/intZendeskConfiguration.attributes.js b/server/api/intZendeskConfiguration/intZendeskConfiguration.attributes.js
new file mode 100644 (file)
index 0000000..df2514c
--- /dev/null
@@ -0,0 +1 @@
+var _0xa366=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xa366[0];var Sequelize=require(_0xa366[1]);module[_0xa366[2]]= {name:{type:Sequelize[_0xa366[3]]},description:{type:Sequelize[_0xa366[3]]}}
\ No newline at end of file
diff --git a/server/api/intZendeskConfiguration/intZendeskConfiguration.controller.js b/server/api/intZendeskConfiguration/intZendeskConfiguration.controller.js
new file mode 100644 (file)
index 0000000..18262f2
--- /dev/null
@@ -0,0 +1 @@
+var _0xac38=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x46\x69\x65\x6C\x64\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x67\x65\x74\x54\x61\x67\x73","\x54\x61\x67","\x73\x65\x74\x54\x61\x67\x73","\x69\x64\x73"];_0xac38[0];var jsonpatch=require(_0xac38[1]);var rp=require(_0xac38[2]);var moment=require(_0xac38[3]);var BPromise=require(_0xac38[4]);var util=require(_0xac38[5]);var path=require(_0xac38[6]);var sox=require(_0xac38[7]);var ejs=require(_0xac38[8]);var fs=require(_0xac38[9]);var _=require(_0xac38[10]);var squel=require(_0xac38[11]);var crypto=require(_0xac38[12]);var jsforce=require(_0xac38[13]);var toCsv=require(_0xac38[14]);var qs=require(_0xac38[15]);var logger=require(_0xac38[17])(_0xac38[16]);var utils=require(_0xac38[18]);var config=require(_0xac38[19]);var db=require(_0xac38[21])[_0xac38[20]];var jayson=require(_0xac38[22]);var client=jayson[_0xac38[24]][_0xac38[23]]({port:9002});function respondWithRpcPromise(_0x4b3dx17,_0x4b3dx18,_0x4b3dx19){return  new BPromise(function(_0x4b3dx1a,_0x4b3dx1b){return client[_0xac38[37]](_0x4b3dx17,_0x4b3dx19)[_0xac38[36]](function(_0x4b3dx1d){logger[_0xac38[29]](_0xac38[25],_0x4b3dx18,_0xac38[28]);logger[_0xac38[32]](_0xac38[30],_0x4b3dx18,_0xac38[28],JSON[_0xac38[31]](_0x4b3dx1d));if(_0x4b3dx1d[_0xac38[26]]){if(_0x4b3dx1d[_0xac38[26]][_0xac38[33]]=== 500){logger[_0xac38[26]](_0xac38[25],_0x4b3dx18,_0x4b3dx1d[_0xac38[26]][_0xac38[34]]);return _0x4b3dx1b(_0x4b3dx1d[_0xac38[26]][_0xac38[34]])};logger[_0xac38[26]](_0xac38[25],_0x4b3dx18,_0x4b3dx1d[_0xac38[26]][_0xac38[34]]);return _0x4b3dx1a(_0x4b3dx1d[_0xac38[26]][_0xac38[34]])}else {logger[_0xac38[29]](_0xac38[25],_0x4b3dx18,_0xac38[28]);_0x4b3dx1a(_0x4b3dx1d[_0xac38[35]][_0xac38[34]])}})[_0xac38[27]](function(_0x4b3dx1c){logger[_0xac38[26]](_0xac38[25],_0x4b3dx18,_0x4b3dx1c);_0x4b3dx1b(_0x4b3dx1c)})})}function respondWithStatusCode(_0x4b3dx1d,_0x4b3dx1f,_0x4b3dx18){_0x4b3dx1f= _0x4b3dx1f|| 204;return function(_0x4b3dx20){if(_0x4b3dx20){logger[_0xac38[29]](_0xac38[30],_0x4b3dx18,_0x4b3dx1f,_0xac38[38]);logger[_0xac38[32]](_0xac38[39],_0x4b3dx18,_0x4b3dx1f,_0xac38[38]);return _0x4b3dx1d[_0xac38[40]](_0x4b3dx1f)};return _0x4b3dx1d[_0xac38[42]](304)[_0xac38[41]]()}}function respondWithResult(_0x4b3dx1d,_0x4b3dx1f,_0x4b3dx18){_0x4b3dx1f= _0x4b3dx1f|| 200;return function(_0x4b3dx20){if(_0x4b3dx20){logger[_0xac38[29]](_0xac38[30],_0x4b3dx18,_0x4b3dx1f,_0xac38[43]);logger[_0xac38[32]](_0xac38[39],_0x4b3dx18,_0x4b3dx1f,_0xac38[43],JSON[_0xac38[31]](_0x4b3dx20));return _0x4b3dx1d[_0xac38[42]](_0x4b3dx1f)[_0xac38[44]](_0x4b3dx20)};return _0x4b3dx1d[_0xac38[42]](304)[_0xac38[41]]()}}function respondWithFilteredResult(_0x4b3dx1d,_0x4b3dx23,_0x4b3dx18){return function(_0x4b3dx20){if(_0x4b3dx20){var _0x4b3dx24=_0x4b3dx20[_0xac38[45]],_0x4b3dx25=_0x4b3dx23[_0xac38[46]],_0x4b3dx26=_0x4b3dx23[_0xac38[46]]+ _0x4b3dx23[_0xac38[47]],_0x4b3dx1f;if(_0x4b3dx26>= _0x4b3dx24){_0x4b3dx26= _0x4b3dx24;_0x4b3dx1f= 200}else {_0x4b3dx1f= 206};_0x4b3dx1d[_0xac38[42]](_0x4b3dx1f);logger[_0xac38[29]](_0xac38[30],_0x4b3dx18,_0x4b3dx1f,_0xac38[48]);logger[_0xac38[32]](_0xac38[39],_0x4b3dx18,_0x4b3dx1f,_0xac38[43],JSON[_0xac38[31]](_0x4b3dx20));return _0x4b3dx1d[_0xac38[52]](_0xac38[49],_0x4b3dx25+ _0xac38[50]+ _0x4b3dx26+ _0xac38[51]+ _0x4b3dx24)[_0xac38[44]](_0x4b3dx20)};return null}}function patchUpdates(_0x4b3dx28){return function(_0x4b3dx20){try{jsonpatch[_0xac38[53]](_0x4b3dx20,_0x4b3dx28,true)}catch(err){return BPromise[_0xac38[54]](err)};return _0x4b3dx20[_0xac38[55]]()}}function saveUpdates(_0x4b3dx2a,_0x4b3dx1f,_0x4b3dx18){return function(_0x4b3dx20){if(_0x4b3dx20){return _0x4b3dx20[_0xac38[57]](_0x4b3dx2a)[_0xac38[36]](function(_0x4b3dx2b){logger[_0xac38[29]](_0xac38[30],_0x4b3dx18,_0x4b3dx1f,_0xac38[56]);logger[_0xac38[32]](_0xac38[39],_0x4b3dx18,_0x4b3dx1f,_0xac38[56],JSON[_0xac38[31]](_0x4b3dx20));return _0x4b3dx2b})};return null}}function removeEntity(_0x4b3dx1d,_0x4b3dx1f,_0x4b3dx18){return function(_0x4b3dx20){if(_0x4b3dx20){return _0x4b3dx20[_0xac38[59]]()[_0xac38[36]](function(){logger[_0xac38[29]](_0xac38[30],_0x4b3dx18,_0x4b3dx1f,_0xac38[58]);logger[_0xac38[32]](_0xac38[39],_0x4b3dx18,_0x4b3dx1f,_0xac38[58],JSON[_0xac38[31]](_0x4b3dx20));_0x4b3dx1d[_0xac38[42]](204)[_0xac38[41]]()})}}}function handleEntityNotFound(_0x4b3dx1d,_0x4b3dx1f,_0x4b3dx18){return function(_0x4b3dx20){if(!_0x4b3dx20){logger[_0xac38[26]](_0xac38[30],_0x4b3dx18,404,_0xac38[60]);_0x4b3dx1d[_0xac38[42]](404)[_0xac38[41]]();return null};return _0x4b3dx20}}function handleError(_0x4b3dx1d,_0x4b3dx1f,_0x4b3dx18){_0x4b3dx1f= _0x4b3dx1f|| 500;return function(_0x4b3dx1c){logger[_0xac38[26]](_0xac38[30],_0x4b3dx18,_0x4b3dx1f,JSON[_0xac38[31]](_0x4b3dx1c));delete _0x4b3dx1c[_0xac38[61]];_0x4b3dx1d[_0xac38[42]](_0x4b3dx1f)[_0xac38[62]](_0x4b3dx1c)}}exports[_0xac38[63]]= function(_0x4b3dx19,_0x4b3dx1d){var _0x4b3dx23={},_0x4b3dx2f={};_0x4b3dx2f[_0xac38[64]]= _[_0xac38[67]](db[_0xac38[66]][_0xac38[65]]);_0x4b3dx2f[_0xac38[68]]= _[_0xac38[67]](_0x4b3dx19[_0xac38[68]]);_0x4b3dx2f[_0xac38[69]]= _[_0xac38[70]](_0x4b3dx2f[_0xac38[64]],_0x4b3dx2f[_0xac38[68]]);_0x4b3dx23[_0xac38[71]]= _[_0xac38[70]](_0x4b3dx2f[_0xac38[64]],qs[_0xac38[72]](_0x4b3dx19[_0xac38[68]][_0xac38[72]]));_0x4b3dx23[_0xac38[71]]= (_0x4b3dx23[_0xac38[71]][_0xac38[73]])?_0x4b3dx23[_0xac38[71]]:_0x4b3dx2f[_0xac38[64]];if(!_0x4b3dx19[_0xac38[68]][_0xac38[75]](_0xac38[74])){_0x4b3dx23[_0xac38[47]]= qs[_0xac38[47]](_0x4b3dx19[_0xac38[68]][_0xac38[47]]);_0x4b3dx23[_0xac38[46]]= qs[_0xac38[46]](_0x4b3dx19[_0xac38[68]][_0xac38[46]])};_0x4b3dx23[_0xac38[76]]= qs[_0xac38[77]](_0x4b3dx19[_0xac38[68]][_0xac38[77]]);_0x4b3dx23[_0xac38[78]]= qs[_0xac38[69]](_[_0xac38[79]](_0x4b3dx19[_0xac38[68]],_0x4b3dx2f[_0xac38[69]]));if(_0x4b3dx19[_0xac38[68]][_0xac38[80]]){_0x4b3dx23[_0xac38[78]]= _[_0xac38[83]](_0x4b3dx23[_0xac38[78]],{$or:_[_0xac38[82]](_0x4b3dx23[_0xac38[71]],function(_0x4b3dx30){var _0x4b3dx31={};_0x4b3dx31[_0x4b3dx30]= {$like:_0xac38[81]+ _0x4b3dx19[_0xac38[68]][_0xac38[80]]+ _0xac38[81]};return _0x4b3dx31})})};_0x4b3dx23= _[_0xac38[83]]({},_0x4b3dx23,_0x4b3dx19[_0xac38[84]]);return db[_0xac38[66]][_0xac38[85]](_0x4b3dx23)[_0xac38[36]](respondWithFilteredResult(_0x4b3dx1d,_0x4b3dx23,_0xac38[63]))[_0xac38[27]](handleError(_0x4b3dx1d,null,_0xac38[63]))};exports[_0xac38[86]]= function(_0x4b3dx19,_0x4b3dx1d){var _0x4b3dx23={raw:false,where:{id:_0x4b3dx19[_0xac38[88]][_0xac38[87]]}},_0x4b3dx2f={};_0x4b3dx2f[_0xac38[64]]= _[_0xac38[67]](db[_0xac38[66]][_0xac38[65]]);_0x4b3dx2f[_0xac38[68]]= _[_0xac38[67]](_0x4b3dx19[_0xac38[68]]);_0x4b3dx2f[_0xac38[69]]= _[_0xac38[70]](_0x4b3dx2f[_0xac38[64]],_0x4b3dx2f[_0xac38[68]]);_0x4b3dx23[_0xac38[71]]= _[_0xac38[70]](_0x4b3dx2f[_0xac38[64]],qs[_0xac38[72]](_0x4b3dx19[_0xac38[68]][_0xac38[72]]));_0x4b3dx23[_0xac38[71]]= (_0x4b3dx23[_0xac38[71]][_0xac38[73]])?_0x4b3dx23[_0xac38[71]]:_0x4b3dx2f[_0xac38[64]];_0x4b3dx23= _[_0xac38[83]]({},_0x4b3dx23,_0x4b3dx19[_0xac38[84]]);return db[_0xac38[66]][_0xac38[89]](_0x4b3dx23)[_0xac38[36]](handleEntityNotFound(_0x4b3dx1d,null,_0xac38[86]))[_0xac38[36]](respondWithResult(_0x4b3dx1d,null,_0xac38[86]))[_0xac38[27]](handleError(_0x4b3dx1d,null,_0xac38[86]))};exports[_0xac38[90]]= function(_0x4b3dx19,_0x4b3dx1d){return db[_0xac38[66]][_0xac38[90]](_0x4b3dx19[_0xac38[91]],{})[_0xac38[36]](respondWithResult(_0x4b3dx1d,201,_0xac38[90]))[_0xac38[27]](handleError(_0x4b3dx1d,null,_0xac38[90]))};exports[_0xac38[57]]= function(_0x4b3dx19,_0x4b3dx1d){if(_0x4b3dx19[_0xac38[91]][_0xac38[87]]){delete _0x4b3dx19[_0xac38[91]][_0xac38[87]]};return db[_0xac38[66]][_0xac38[89]]({where:{id:_0x4b3dx19[_0xac38[88]][_0xac38[87]]}})[_0xac38[36]](handleEntityNotFound(_0x4b3dx1d,null,_0xac38[57]))[_0xac38[36]](saveUpdates(_0x4b3dx19[_0xac38[91]],null,_0xac38[57]))[_0xac38[36]](respondWithResult(_0x4b3dx1d,null,_0xac38[57]))[_0xac38[27]](handleError(_0x4b3dx1d,null,_0xac38[57]))};exports[_0xac38[59]]= function(_0x4b3dx19,_0x4b3dx1d){return db[_0xac38[66]][_0xac38[89]]({where:{id:_0x4b3dx19[_0xac38[88]][_0xac38[87]]}})[_0xac38[36]](handleEntityNotFound(_0x4b3dx1d,null,_0xac38[59]))[_0xac38[36]](removeEntity(_0x4b3dx1d,null,_0xac38[59]))[_0xac38[27]](handleError(_0x4b3dx1d,null,_0xac38[59]))};exports[_0xac38[92]]= function(_0x4b3dx19,_0x4b3dx20,_0x4b3dx32){var _0x4b3dx23={};var _0x4b3dx2f={};var _0x4b3dx33;var _0x4b3dx24;return db[_0xac38[66]][_0xac38[94]]({where:{id:_0x4b3dx19[_0xac38[88]][_0xac38[87]]}})[_0xac38[36]](handleEntityNotFound(_0x4b3dx20,null,_0xac38[92]))[_0xac38[36]](function(_0x4b3dx20){if(_0x4b3dx20){_0x4b3dx33= _0x4b3dx20;_0x4b3dx2f[_0xac38[64]]= _[_0xac38[67]](db[_0xac38[93]][_0xac38[65]]);_0x4b3dx2f[_0xac38[68]]= _[_0xac38[67]](_0x4b3dx19[_0xac38[68]]);_0x4b3dx2f[_0xac38[69]]= _[_0xac38[70]](_0x4b3dx2f[_0xac38[64]],_0x4b3dx2f[_0xac38[68]]);_0x4b3dx23[_0xac38[71]]= _[_0xac38[70]](_0x4b3dx2f[_0xac38[64]],qs[_0xac38[72]](_0x4b3dx19[_0xac38[68]][_0xac38[72]]));_0x4b3dx23[_0xac38[71]]= (_0x4b3dx23[_0xac38[71]][_0xac38[73]])?_0x4b3dx23[_0xac38[71]]:_0x4b3dx2f[_0xac38[64]];_0x4b3dx23[_0xac38[76]]= qs[_0xac38[77]](_0x4b3dx19[_0xac38[68]][_0xac38[77]]);_0x4b3dx23[_0xac38[78]]= qs[_0xac38[69]](_[_0xac38[79]](_0x4b3dx19[_0xac38[68]],_0x4b3dx2f[_0xac38[69]]));if(_0x4b3dx19[_0xac38[68]][_0xac38[80]]){_0x4b3dx23[_0xac38[78]]= _[_0xac38[83]](_0x4b3dx23[_0xac38[78]],{$or:_[_0xac38[82]](_0x4b3dx23[_0xac38[71]],function(_0x4b3dx30){var _0x4b3dx31={};_0x4b3dx31[_0x4b3dx30]= {$like:_0xac38[81]+ _0x4b3dx19[_0xac38[68]][_0xac38[80]]+ _0xac38[81]};return _0x4b3dx31})})};_0x4b3dx23= _[_0xac38[83]]({},_0x4b3dx23,_0x4b3dx19[_0xac38[84]]);return _0x4b3dx33[_0xac38[92]](_0x4b3dx23)}})[_0xac38[36]](function(_0x4b3dx35){if(_0x4b3dx35){_0x4b3dx24= _0x4b3dx35[_0xac38[73]];if(!_0x4b3dx19[_0xac38[68]][_0xac38[75]](_0xac38[74])){_0x4b3dx23[_0xac38[47]]= qs[_0xac38[47]](_0x4b3dx19[_0xac38[68]][_0xac38[47]]);_0x4b3dx23[_0xac38[46]]= qs[_0xac38[46]](_0x4b3dx19[_0xac38[68]][_0xac38[46]])};return _0x4b3dx33[_0xac38[92]](_0x4b3dx23)}})[_0xac38[36]](function(_0x4b3dx34){return _0x4b3dx34?{count:_0x4b3dx24,rows:_0x4b3dx34}:null})[_0xac38[36]](respondWithResult(_0x4b3dx20,null,_0xac38[92]))[_0xac38[27]](handleError(_0x4b3dx20,null,_0xac38[92]))};exports[_0xac38[95]]= function(_0x4b3dx19,_0x4b3dx20,_0x4b3dx32){var _0x4b3dx23={};var _0x4b3dx2f={};var _0x4b3dx33;var _0x4b3dx24;return db[_0xac38[66]][_0xac38[94]]({where:{id:_0x4b3dx19[_0xac38[88]][_0xac38[87]]}})[_0xac38[36]](handleEntityNotFound(_0x4b3dx20,null,_0xac38[95]))[_0xac38[36]](function(_0x4b3dx20){if(_0x4b3dx20){_0x4b3dx33= _0x4b3dx20;_0x4b3dx2f[_0xac38[64]]= _[_0xac38[67]](db[_0xac38[93]][_0xac38[65]]);_0x4b3dx2f[_0xac38[68]]= _[_0xac38[67]](_0x4b3dx19[_0xac38[68]]);_0x4b3dx2f[_0xac38[69]]= _[_0xac38[70]](_0x4b3dx2f[_0xac38[64]],_0x4b3dx2f[_0xac38[68]]);_0x4b3dx23[_0xac38[71]]= _[_0xac38[70]](_0x4b3dx2f[_0xac38[64]],qs[_0xac38[72]](_0x4b3dx19[_0xac38[68]][_0xac38[72]]));_0x4b3dx23[_0xac38[71]]= (_0x4b3dx23[_0xac38[71]][_0xac38[73]])?_0x4b3dx23[_0xac38[71]]:_0x4b3dx2f[_0xac38[64]];_0x4b3dx23[_0xac38[76]]= qs[_0xac38[77]](_0x4b3dx19[_0xac38[68]][_0xac38[77]]);_0x4b3dx23[_0xac38[78]]= qs[_0xac38[69]](_[_0xac38[79]](_0x4b3dx19[_0xac38[68]],_0x4b3dx2f[_0xac38[69]]));if(_0x4b3dx19[_0xac38[68]][_0xac38[80]]){_0x4b3dx23[_0xac38[78]]= _[_0xac38[83]](_0x4b3dx23[_0xac38[78]],{$or:_[_0xac38[82]](_0x4b3dx23[_0xac38[71]],function(_0x4b3dx30){var _0x4b3dx31={};_0x4b3dx31[_0x4b3dx30]= {$like:_0xac38[81]+ _0x4b3dx19[_0xac38[68]][_0xac38[80]]+ _0xac38[81]};return _0x4b3dx31})})};_0x4b3dx23= _[_0xac38[83]]({},_0x4b3dx23,_0x4b3dx19[_0xac38[84]]);return _0x4b3dx33[_0xac38[95]](_0x4b3dx23)}})[_0xac38[36]](function(_0x4b3dx35){if(_0x4b3dx35){_0x4b3dx24= _0x4b3dx35[_0xac38[73]];if(!_0x4b3dx19[_0xac38[68]][_0xac38[75]](_0xac38[74])){_0x4b3dx23[_0xac38[47]]= qs[_0xac38[47]](_0x4b3dx19[_0xac38[68]][_0xac38[47]]);_0x4b3dx23[_0xac38[46]]= qs[_0xac38[46]](_0x4b3dx19[_0xac38[68]][_0xac38[46]])};return _0x4b3dx33[_0xac38[95]](_0x4b3dx23)}})[_0xac38[36]](function(_0x4b3dx34){return _0x4b3dx34?{count:_0x4b3dx24,rows:_0x4b3dx34}:null})[_0xac38[36]](respondWithResult(_0x4b3dx20,null,_0xac38[95]))[_0xac38[27]](handleError(_0x4b3dx20,null,_0xac38[95]))};exports[_0xac38[96]]= function(_0x4b3dx19,_0x4b3dx20,_0x4b3dx32){var _0x4b3dx23={};var _0x4b3dx2f={};var _0x4b3dx33;var _0x4b3dx24;return db[_0xac38[66]][_0xac38[94]]({where:{id:_0x4b3dx19[_0xac38[88]][_0xac38[87]]}})[_0xac38[36]](handleEntityNotFound(_0x4b3dx20,null,_0xac38[96]))[_0xac38[36]](function(_0x4b3dx20){if(_0x4b3dx20){_0x4b3dx33= _0x4b3dx20;_0x4b3dx2f[_0xac38[64]]= _[_0xac38[67]](db[_0xac38[93]][_0xac38[65]]);_0x4b3dx2f[_0xac38[68]]= _[_0xac38[67]](_0x4b3dx19[_0xac38[68]]);_0x4b3dx2f[_0xac38[69]]= _[_0xac38[70]](_0x4b3dx2f[_0xac38[64]],_0x4b3dx2f[_0xac38[68]]);_0x4b3dx23[_0xac38[71]]= _[_0xac38[70]](_0x4b3dx2f[_0xac38[64]],qs[_0xac38[72]](_0x4b3dx19[_0xac38[68]][_0xac38[72]]));_0x4b3dx23[_0xac38[71]]= (_0x4b3dx23[_0xac38[71]][_0xac38[73]])?_0x4b3dx23[_0xac38[71]]:_0x4b3dx2f[_0xac38[64]];_0x4b3dx23[_0xac38[76]]= qs[_0xac38[77]](_0x4b3dx19[_0xac38[68]][_0xac38[77]]);_0x4b3dx23[_0xac38[78]]= qs[_0xac38[69]](_[_0xac38[79]](_0x4b3dx19[_0xac38[68]],_0x4b3dx2f[_0xac38[69]]));if(_0x4b3dx19[_0xac38[68]][_0xac38[80]]){_0x4b3dx23[_0xac38[78]]= _[_0xac38[83]](_0x4b3dx23[_0xac38[78]],{$or:_[_0xac38[82]](_0x4b3dx23[_0xac38[71]],function(_0x4b3dx30){var _0x4b3dx31={};_0x4b3dx31[_0x4b3dx30]= {$like:_0xac38[81]+ _0x4b3dx19[_0xac38[68]][_0xac38[80]]+ _0xac38[81]};return _0x4b3dx31})})};_0x4b3dx23= _[_0xac38[83]]({},_0x4b3dx23,_0x4b3dx19[_0xac38[84]]);return _0x4b3dx33[_0xac38[96]](_0x4b3dx23)}})[_0xac38[36]](function(_0x4b3dx35){if(_0x4b3dx35){_0x4b3dx24= _0x4b3dx35[_0xac38[73]];if(!_0x4b3dx19[_0xac38[68]][_0xac38[75]](_0xac38[74])){_0x4b3dx23[_0xac38[47]]= qs[_0xac38[47]](_0x4b3dx19[_0xac38[68]][_0xac38[47]]);_0x4b3dx23[_0xac38[46]]= qs[_0xac38[46]](_0x4b3dx19[_0xac38[68]][_0xac38[46]])};return _0x4b3dx33[_0xac38[96]](_0x4b3dx23)}})[_0xac38[36]](function(_0x4b3dx34){return _0x4b3dx34?{count:_0x4b3dx24,rows:_0x4b3dx34}:null})[_0xac38[36]](respondWithResult(_0x4b3dx20,null,_0xac38[96]))[_0xac38[27]](handleError(_0x4b3dx20,null,_0xac38[96]))};exports[_0xac38[97]]= function(_0x4b3dx19,_0x4b3dx20,_0x4b3dx32){var _0x4b3dx23={};var _0x4b3dx2f={};var _0x4b3dx33;var _0x4b3dx24;return db[_0xac38[66]][_0xac38[94]]({where:{id:_0x4b3dx19[_0xac38[88]][_0xac38[87]]}})[_0xac38[36]](handleEntityNotFound(_0x4b3dx20,null,_0xac38[97]))[_0xac38[36]](function(_0x4b3dx20){if(_0x4b3dx20){_0x4b3dx33= _0x4b3dx20;_0x4b3dx2f[_0xac38[64]]= _[_0xac38[67]](db[_0xac38[98]][_0xac38[65]]);_0x4b3dx2f[_0xac38[68]]= _[_0xac38[67]](_0x4b3dx19[_0xac38[68]]);_0x4b3dx2f[_0xac38[69]]= _[_0xac38[70]](_0x4b3dx2f[_0xac38[64]],_0x4b3dx2f[_0xac38[68]]);_0x4b3dx23[_0xac38[71]]= _[_0xac38[70]](_0x4b3dx2f[_0xac38[64]],qs[_0xac38[72]](_0x4b3dx19[_0xac38[68]][_0xac38[72]]));_0x4b3dx23[_0xac38[71]]= (_0x4b3dx23[_0xac38[71]][_0xac38[73]])?_0x4b3dx23[_0xac38[71]]:_0x4b3dx2f[_0xac38[64]];_0x4b3dx23[_0xac38[76]]= qs[_0xac38[77]](_0x4b3dx19[_0xac38[68]][_0xac38[77]]);_0x4b3dx23[_0xac38[78]]= qs[_0xac38[69]](_[_0xac38[79]](_0x4b3dx19[_0xac38[68]],_0x4b3dx2f[_0xac38[69]]));if(_0x4b3dx19[_0xac38[68]][_0xac38[80]]){_0x4b3dx23[_0xac38[78]]= _[_0xac38[83]](_0x4b3dx23[_0xac38[78]],{$or:_[_0xac38[82]](_0x4b3dx23[_0xac38[71]],function(_0x4b3dx30){var _0x4b3dx31={};_0x4b3dx31[_0x4b3dx30]= {$like:_0xac38[81]+ _0x4b3dx19[_0xac38[68]][_0xac38[80]]+ _0xac38[81]};return _0x4b3dx31})})};_0x4b3dx23= _[_0xac38[83]]({},_0x4b3dx23,_0x4b3dx19[_0xac38[84]]);return _0x4b3dx33[_0xac38[97]](_0x4b3dx23)}})[_0xac38[36]](function(_0x4b3dx35){if(_0x4b3dx35){_0x4b3dx24= _0x4b3dx35[_0xac38[73]];if(!_0x4b3dx19[_0xac38[68]][_0xac38[75]](_0xac38[74])){_0x4b3dx23[_0xac38[47]]= qs[_0xac38[47]](_0x4b3dx19[_0xac38[68]][_0xac38[47]]);_0x4b3dx23[_0xac38[46]]= qs[_0xac38[46]](_0x4b3dx19[_0xac38[68]][_0xac38[46]])};return _0x4b3dx33[_0xac38[97]](_0x4b3dx23)}})[_0xac38[36]](function(_0x4b3dx34){return _0x4b3dx34?{count:_0x4b3dx24,rows:_0x4b3dx34}:null})[_0xac38[36]](respondWithResult(_0x4b3dx20,null,_0xac38[97]))[_0xac38[27]](handleError(_0x4b3dx20,null,_0xac38[97]))};exports[_0xac38[99]]= function(_0x4b3dx19,_0x4b3dx1d,_0x4b3dx32){if(_0x4b3dx19[_0xac38[91]][_0xac38[87]]){delete _0x4b3dx19[_0xac38[91]][_0xac38[87]]};return db[_0xac38[66]][_0xac38[94]]({where:{id:_0x4b3dx19[_0xac38[88]][_0xac38[87]]}})[_0xac38[36]](handleEntityNotFound(_0x4b3dx1d,null,_0xac38[99]))[_0xac38[36]](function(_0x4b3dx20){if(_0x4b3dx20){return _0x4b3dx20[_0xac38[99]](_0x4b3dx19[_0xac38[91]][_0xac38[100]])};return null})[_0xac38[36]](respondWithResult(_0x4b3dx1d,null,_0xac38[99]))[_0xac38[27]](handleError(_0x4b3dx1d,null,_0xac38[99]))}
\ No newline at end of file
diff --git a/server/api/intZendeskConfiguration/intZendeskConfiguration.model.js b/server/api/intZendeskConfiguration/intZendeskConfiguration.model.js
new file mode 100644 (file)
index 0000000..51fa969
--- /dev/null
@@ -0,0 +1 @@
+var _0xef14=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x5F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xef14[0];var _=require(_0xef14[1]);var util=require(_0xef14[2]);var logger=require(_0xef14[4])(_0xef14[3]);var attributes=require(_0xef14[5]);module[_0xef14[6]]= function(_0x3d50x5,_0x3d50x6){return _0x3d50x5[_0xef14[9]](_0xef14[7],attributes,{tableName:_0xef14[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/intZendeskConfiguration/intZendeskConfiguration.rpc.js b/server/api/intZendeskConfiguration/intZendeskConfiguration.rpc.js
new file mode 100644 (file)
index 0000000..bf96104
--- /dev/null
@@ -0,0 +1 @@
+var _0x505f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x505f[0];var _=require(_0x505f[1]);var util=require(_0x505f[2]);var moment=require(_0x505f[3]);var BPromise=require(_0x505f[4]);var db=require(_0x505f[6])[_0x505f[5]];var utils=require(_0x505f[7]);var logger=require(_0x505f[9])(_0x505f[8]);var jayson=require(_0x505f[10]);var client=jayson[_0x505f[12]][_0x505f[11]]({port:9002});function respondWithRpcPromise(_0x2311xb,_0x2311xc,_0x2311xd){return  new BPromise(function(_0x2311xe,_0x2311xf){return client[_0x505f[25]](_0x2311xb,_0x2311xd)[_0x505f[24]](function(_0x2311x11){logger[_0x505f[17]](_0x505f[13],_0x2311xc,_0x505f[16]);logger[_0x505f[20]](_0x505f[18],_0x2311xc,_0x505f[16],JSON[_0x505f[19]](_0x2311x11));if(_0x2311x11[_0x505f[14]]){if(_0x2311x11[_0x505f[14]][_0x505f[21]]=== 500){logger[_0x505f[14]](_0x505f[13],_0x2311xc,_0x2311x11[_0x505f[14]][_0x505f[22]]);return _0x2311xf(_0x2311x11[_0x505f[14]][_0x505f[22]])};logger[_0x505f[14]](_0x505f[13],_0x2311xc,_0x2311x11[_0x505f[14]][_0x505f[22]]);return _0x2311xe(_0x2311x11[_0x505f[14]][_0x505f[22]])}else {logger[_0x505f[17]](_0x505f[13],_0x2311xc,_0x505f[16]);_0x2311xe(_0x2311x11[_0x505f[23]][_0x505f[22]])}})[_0x505f[15]](function(_0x2311x10){logger[_0x505f[14]](_0x505f[13],_0x2311xc,_0x2311x10);_0x2311xf(_0x2311x10)})})}
\ No newline at end of file
diff --git a/server/api/intZendeskField/index.js b/server/api/intZendeskField/index.js
new file mode 100644 (file)
index 0000000..79743b6
--- /dev/null
@@ -0,0 +1 @@
+var _0xf6ea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf6ea[0];var multer=require(_0xf6ea[1]);var util=require(_0xf6ea[2]);var path=require(_0xf6ea[3]);var express=require(_0xf6ea[4]);var router=express.Router();var auth=require(_0xf6ea[5]);var config=require(_0xf6ea[6]);var controller=require(_0xf6ea[7]);router[_0xf6ea[11]](_0xf6ea[8],auth[_0xf6ea[9]](),controller[_0xf6ea[10]]);router[_0xf6ea[11]](_0xf6ea[12],auth[_0xf6ea[9]](),controller[_0xf6ea[13]]);router[_0xf6ea[15]](_0xf6ea[8],auth[_0xf6ea[9]](),controller[_0xf6ea[14]]);router[_0xf6ea[17]](_0xf6ea[12],auth[_0xf6ea[9]](),controller[_0xf6ea[16]]);router[_0xf6ea[19]](_0xf6ea[12],auth[_0xf6ea[9]](),controller[_0xf6ea[18]]);module[_0xf6ea[20]]= router
\ No newline at end of file
diff --git a/server/api/intZendeskField/intZendeskField.attributes.js b/server/api/intZendeskField/intZendeskField.attributes.js
new file mode 100644 (file)
index 0000000..dacbf85
--- /dev/null
@@ -0,0 +1 @@
+var _0x2191=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x73\x74\x72\x69\x6E\x67","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x2191[0];var Sequelize=require(_0x2191[1]);module[_0x2191[2]]= {type:{type:Sequelize.ENUM(_0x2191[3],_0x2191[4],_0x2191[5],_0x2191[6]),defaultValue:_0x2191[3]},content:{type:Sequelize[_0x2191[7]]},key:{type:Sequelize[_0x2191[7]]},keyType:{type:Sequelize.ENUM(_0x2191[3],_0x2191[4],_0x2191[5])},keyContent:{type:Sequelize[_0x2191[7]]},idField:{type:Sequelize[_0x2191[7]]},nameField:{type:Sequelize[_0x2191[7]]},customField:{type:Sequelize[_0x2191[8]],defaultValue:true},variableName:{type:Sequelize[_0x2191[7]]}}
\ No newline at end of file
diff --git a/server/api/intZendeskField/intZendeskField.controller.js b/server/api/intZendeskField/intZendeskField.controller.js
new file mode 100644 (file)
index 0000000..c028866
--- /dev/null
@@ -0,0 +1 @@
+var _0xb299=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xb299[0];var jsonpatch=require(_0xb299[1]);var rp=require(_0xb299[2]);var moment=require(_0xb299[3]);var BPromise=require(_0xb299[4]);var util=require(_0xb299[5]);var path=require(_0xb299[6]);var sox=require(_0xb299[7]);var ejs=require(_0xb299[8]);var fs=require(_0xb299[9]);var _=require(_0xb299[10]);var squel=require(_0xb299[11]);var crypto=require(_0xb299[12]);var jsforce=require(_0xb299[13]);var toCsv=require(_0xb299[14]);var qs=require(_0xb299[15]);var logger=require(_0xb299[17])(_0xb299[16]);var utils=require(_0xb299[18]);var config=require(_0xb299[19]);var db=require(_0xb299[21])[_0xb299[20]];function respondWithStatusCode(_0xf0f0x15,_0xf0f0x16,_0xf0f0x17){_0xf0f0x16= _0xf0f0x16|| 204;return function(_0xf0f0x18){if(_0xf0f0x18){logger[_0xb299[24]](_0xb299[22],_0xf0f0x17,_0xf0f0x16,_0xb299[23]);logger[_0xb299[26]](_0xb299[25],_0xf0f0x17,_0xf0f0x16,_0xb299[23]);return _0xf0f0x15[_0xb299[27]](_0xf0f0x16)};return _0xf0f0x15[_0xb299[29]](304)[_0xb299[28]]()}}function respondWithResult(_0xf0f0x15,_0xf0f0x16,_0xf0f0x17){_0xf0f0x16= _0xf0f0x16|| 200;return function(_0xf0f0x18){if(_0xf0f0x18){logger[_0xb299[24]](_0xb299[22],_0xf0f0x17,_0xf0f0x16,_0xb299[30]);logger[_0xb299[26]](_0xb299[25],_0xf0f0x17,_0xf0f0x16,_0xb299[30],JSON[_0xb299[31]](_0xf0f0x18));return _0xf0f0x15[_0xb299[29]](_0xf0f0x16)[_0xb299[32]](_0xf0f0x18)};return _0xf0f0x15[_0xb299[29]](304)[_0xb299[28]]()}}function respondWithFilteredResult(_0xf0f0x15,_0xf0f0x1b,_0xf0f0x17){return function(_0xf0f0x18){if(_0xf0f0x18){var _0xf0f0x1c=_0xf0f0x18[_0xb299[33]],_0xf0f0x1d=_0xf0f0x1b[_0xb299[34]],_0xf0f0x1e=_0xf0f0x1b[_0xb299[34]]+ _0xf0f0x1b[_0xb299[35]],_0xf0f0x16;if(_0xf0f0x1e>= _0xf0f0x1c){_0xf0f0x1e= _0xf0f0x1c;_0xf0f0x16= 200}else {_0xf0f0x16= 206};_0xf0f0x15[_0xb299[29]](_0xf0f0x16);logger[_0xb299[24]](_0xb299[22],_0xf0f0x17,_0xf0f0x16,_0xb299[36]);logger[_0xb299[26]](_0xb299[25],_0xf0f0x17,_0xf0f0x16,_0xb299[30],JSON[_0xb299[31]](_0xf0f0x18));return _0xf0f0x15[_0xb299[40]](_0xb299[37],_0xf0f0x1d+ _0xb299[38]+ _0xf0f0x1e+ _0xb299[39]+ _0xf0f0x1c)[_0xb299[32]](_0xf0f0x18)};return null}}function patchUpdates(_0xf0f0x20){return function(_0xf0f0x18){try{jsonpatch[_0xb299[41]](_0xf0f0x18,_0xf0f0x20,true)}catch(err){return BPromise[_0xb299[42]](err)};return _0xf0f0x18[_0xb299[43]]()}}function saveUpdates(_0xf0f0x22,_0xf0f0x16,_0xf0f0x17){return function(_0xf0f0x18){if(_0xf0f0x18){return _0xf0f0x18[_0xb299[46]](_0xf0f0x22)[_0xb299[45]](function(_0xf0f0x23){logger[_0xb299[24]](_0xb299[22],_0xf0f0x17,_0xf0f0x16,_0xb299[44]);logger[_0xb299[26]](_0xb299[25],_0xf0f0x17,_0xf0f0x16,_0xb299[44],JSON[_0xb299[31]](_0xf0f0x18));return _0xf0f0x23})};return null}}function removeEntity(_0xf0f0x15,_0xf0f0x16,_0xf0f0x17){return function(_0xf0f0x18){if(_0xf0f0x18){return _0xf0f0x18[_0xb299[48]]()[_0xb299[45]](function(){logger[_0xb299[24]](_0xb299[22],_0xf0f0x17,_0xf0f0x16,_0xb299[47]);logger[_0xb299[26]](_0xb299[25],_0xf0f0x17,_0xf0f0x16,_0xb299[47],JSON[_0xb299[31]](_0xf0f0x18));_0xf0f0x15[_0xb299[29]](204)[_0xb299[28]]()})}}}function handleEntityNotFound(_0xf0f0x15,_0xf0f0x16,_0xf0f0x17){return function(_0xf0f0x18){if(!_0xf0f0x18){logger[_0xb299[50]](_0xb299[22],_0xf0f0x17,404,_0xb299[49]);_0xf0f0x15[_0xb299[29]](404)[_0xb299[28]]();return null};return _0xf0f0x18}}function handleError(_0xf0f0x15,_0xf0f0x16,_0xf0f0x17){_0xf0f0x16= _0xf0f0x16|| 500;return function(_0xf0f0x27){logger[_0xb299[50]](_0xb299[22],_0xf0f0x17,_0xf0f0x16,JSON[_0xb299[31]](_0xf0f0x27));delete _0xf0f0x27[_0xb299[51]];_0xf0f0x15[_0xb299[29]](_0xf0f0x16)[_0xb299[52]](_0xf0f0x27)}}exports[_0xb299[53]]= function(_0xf0f0x28,_0xf0f0x15){var _0xf0f0x1b={},_0xf0f0x29={};_0xf0f0x29[_0xb299[54]]= _[_0xb299[57]](db[_0xb299[56]][_0xb299[55]]);_0xf0f0x29[_0xb299[58]]= _[_0xb299[57]](_0xf0f0x28[_0xb299[58]]);_0xf0f0x29[_0xb299[59]]= _[_0xb299[60]](_0xf0f0x29[_0xb299[54]],_0xf0f0x29[_0xb299[58]]);_0xf0f0x1b[_0xb299[61]]= _[_0xb299[60]](_0xf0f0x29[_0xb299[54]],qs[_0xb299[62]](_0xf0f0x28[_0xb299[58]][_0xb299[62]]));_0xf0f0x1b[_0xb299[61]]= (_0xf0f0x1b[_0xb299[61]][_0xb299[63]])?_0xf0f0x1b[_0xb299[61]]:_0xf0f0x29[_0xb299[54]];if(!_0xf0f0x28[_0xb299[58]][_0xb299[65]](_0xb299[64])){_0xf0f0x1b[_0xb299[35]]= qs[_0xb299[35]](_0xf0f0x28[_0xb299[58]][_0xb299[35]]);_0xf0f0x1b[_0xb299[34]]= qs[_0xb299[34]](_0xf0f0x28[_0xb299[58]][_0xb299[34]])};_0xf0f0x1b[_0xb299[66]]= qs[_0xb299[67]](_0xf0f0x28[_0xb299[58]][_0xb299[67]]);_0xf0f0x1b[_0xb299[68]]= qs[_0xb299[59]](_[_0xb299[69]](_0xf0f0x28[_0xb299[58]],_0xf0f0x29[_0xb299[59]]));if(_0xf0f0x28[_0xb299[58]][_0xb299[70]]){_0xf0f0x1b[_0xb299[68]]= _[_0xb299[73]](_0xf0f0x1b[_0xb299[68]],{$or:_[_0xb299[72]](_0xf0f0x1b[_0xb299[61]],function(_0xf0f0x2a){var _0xf0f0x2b={};_0xf0f0x2b[_0xf0f0x2a]= {$like:_0xb299[71]+ _0xf0f0x28[_0xb299[58]][_0xb299[70]]+ _0xb299[71]};return _0xf0f0x2b})})};_0xf0f0x1b= _[_0xb299[73]]({},_0xf0f0x1b,_0xf0f0x28[_0xb299[74]]);return db[_0xb299[56]][_0xb299[76]](_0xf0f0x1b)[_0xb299[45]](respondWithFilteredResult(_0xf0f0x15,_0xf0f0x1b,_0xb299[53]))[_0xb299[75]](handleError(_0xf0f0x15,null,_0xb299[53]))};exports[_0xb299[77]]= function(_0xf0f0x28,_0xf0f0x15){var _0xf0f0x1b={raw:true,where:{id:_0xf0f0x28[_0xb299[79]][_0xb299[78]]}},_0xf0f0x29={};_0xf0f0x29[_0xb299[54]]= _[_0xb299[57]](db[_0xb299[56]][_0xb299[55]]);_0xf0f0x29[_0xb299[58]]= _[_0xb299[57]](_0xf0f0x28[_0xb299[58]]);_0xf0f0x29[_0xb299[59]]= _[_0xb299[60]](_0xf0f0x29[_0xb299[54]],_0xf0f0x29[_0xb299[58]]);_0xf0f0x1b[_0xb299[61]]= _[_0xb299[60]](_0xf0f0x29[_0xb299[54]],qs[_0xb299[62]](_0xf0f0x28[_0xb299[58]][_0xb299[62]]));_0xf0f0x1b[_0xb299[61]]= (_0xf0f0x1b[_0xb299[61]][_0xb299[63]])?_0xf0f0x1b[_0xb299[61]]:_0xf0f0x29[_0xb299[54]];_0xf0f0x1b= _[_0xb299[73]]({},_0xf0f0x1b,_0xf0f0x28[_0xb299[74]]);return db[_0xb299[56]][_0xb299[80]](_0xf0f0x1b)[_0xb299[45]](handleEntityNotFound(_0xf0f0x15,null,_0xb299[77]))[_0xb299[45]](respondWithResult(_0xf0f0x15,null,_0xb299[77]))[_0xb299[75]](handleError(_0xf0f0x15,null,_0xb299[77]))};exports[_0xb299[81]]= function(_0xf0f0x28,_0xf0f0x15){return db[_0xb299[56]][_0xb299[81]](_0xf0f0x28[_0xb299[82]],{})[_0xb299[45]](respondWithResult(_0xf0f0x15,201,_0xb299[81]))[_0xb299[75]](handleError(_0xf0f0x15,null,_0xb299[81]))};exports[_0xb299[46]]= function(_0xf0f0x28,_0xf0f0x15){if(_0xf0f0x28[_0xb299[82]][_0xb299[78]]){delete _0xf0f0x28[_0xb299[82]][_0xb299[78]]};return db[_0xb299[56]][_0xb299[80]]({where:{id:_0xf0f0x28[_0xb299[79]][_0xb299[78]]}})[_0xb299[45]](handleEntityNotFound(_0xf0f0x15,null,_0xb299[46]))[_0xb299[45]](saveUpdates(_0xf0f0x28[_0xb299[82]],null,_0xb299[46]))[_0xb299[45]](respondWithResult(_0xf0f0x15,null,_0xb299[46]))[_0xb299[75]](handleError(_0xf0f0x15,null,_0xb299[46]))};exports[_0xb299[48]]= function(_0xf0f0x28,_0xf0f0x15){return db[_0xb299[56]][_0xb299[80]]({where:{id:_0xf0f0x28[_0xb299[79]][_0xb299[78]]}})[_0xb299[45]](handleEntityNotFound(_0xf0f0x15,null,_0xb299[48]))[_0xb299[45]](removeEntity(_0xf0f0x15,null,_0xb299[48]))[_0xb299[75]](handleError(_0xf0f0x15,null,_0xb299[48]))}
\ No newline at end of file
diff --git a/server/api/intZendeskField/intZendeskField.model.js b/server/api/intZendeskField/intZendeskField.model.js
new file mode 100644 (file)
index 0000000..66db791
--- /dev/null
@@ -0,0 +1 @@
+var _0xd2b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x69\x6E\x74\x5F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x66\x69\x65\x6C\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0xd2b8[0];var _=require(_0xd2b8[1]);var util=require(_0xd2b8[2]);var logger=require(_0xd2b8[4])(_0xd2b8[3]);var attributes=require(_0xd2b8[5]);module[_0xd2b8[6]]= function(_0x306bx5,_0x306bx6){return _0x306bx5[_0xd2b8[9]](_0xd2b8[7],attributes,{tableName:_0xd2b8[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/intZendeskField/intZendeskField.rpc.js b/server/api/intZendeskField/intZendeskField.rpc.js
new file mode 100644 (file)
index 0000000..2ff5007
--- /dev/null
@@ -0,0 +1 @@
+var _0x6699=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6699[0];var _=require(_0x6699[1]);var util=require(_0x6699[2]);var moment=require(_0x6699[3]);var BPromise=require(_0x6699[4]);var db=require(_0x6699[6])[_0x6699[5]];var utils=require(_0x6699[7]);var logger=require(_0x6699[9])(_0x6699[8]);var jayson=require(_0x6699[10]);var client=jayson[_0x6699[12]][_0x6699[11]]({port:9002});function respondWithRpcPromise(_0x1d82xb,_0x1d82xc,_0x1d82xd){return  new BPromise(function(_0x1d82xe,_0x1d82xf){return client[_0x6699[25]](_0x1d82xb,_0x1d82xd)[_0x6699[24]](function(_0x1d82x11){logger[_0x6699[17]](_0x6699[13],_0x1d82xc,_0x6699[16]);logger[_0x6699[20]](_0x6699[18],_0x1d82xc,_0x6699[16],JSON[_0x6699[19]](_0x1d82x11));if(_0x1d82x11[_0x6699[14]]){if(_0x1d82x11[_0x6699[14]][_0x6699[21]]=== 500){logger[_0x6699[14]](_0x6699[13],_0x1d82xc,_0x1d82x11[_0x6699[14]][_0x6699[22]]);return _0x1d82xf(_0x1d82x11[_0x6699[14]][_0x6699[22]])};logger[_0x6699[14]](_0x6699[13],_0x1d82xc,_0x1d82x11[_0x6699[14]][_0x6699[22]]);return _0x1d82xe(_0x1d82x11[_0x6699[14]][_0x6699[22]])}else {logger[_0x6699[17]](_0x6699[13],_0x1d82xc,_0x6699[16]);_0x1d82xe(_0x1d82x11[_0x6699[23]][_0x6699[22]])}})[_0x6699[15]](function(_0x1d82x10){logger[_0x6699[14]](_0x6699[13],_0x1d82xc,_0x1d82x10);_0x1d82xf(_0x1d82x10)})})}
\ No newline at end of file
diff --git a/server/api/integration/index.js b/server/api/integration/index.js
new file mode 100644 (file)
index 0000000..4e018e0
--- /dev/null
@@ -0,0 +1 @@
+var _0x207c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x207c[0];var multer=require(_0x207c[1]);var util=require(_0x207c[2]);var path=require(_0x207c[3]);var express=require(_0x207c[4]);var router=express.Router();var auth=require(_0x207c[5]);var config=require(_0x207c[6]);module[_0x207c[7]]= router
\ No newline at end of file
diff --git a/server/api/integration/integration.attributes.js b/server/api/integration/integration.attributes.js
new file mode 100644 (file)
index 0000000..ba8a208
--- /dev/null
@@ -0,0 +1 @@
+var _0x87a5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x6E\x69\x71\x75\x65\x5F\x6E\x61\x6D\x65\x5F\x61\x6E\x64\x5F\x76\x65\x72\x73\x69\x6F\x6E","\x61\x70\x70\x2E\x6A\x73","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x73\x74\x61\x74\x65","\x23"];_0x87a5[0];var Sequelize=require(_0x87a5[1]);module[_0x87a5[2]]= {name:{type:Sequelize[_0x87a5[3]],allowNull:false,unique:_0x87a5[4]},version:{type:Sequelize[_0x87a5[3]],allowNull:false,unique:_0x87a5[4]},main:{type:Sequelize[_0x87a5[3]],defaultValue:_0x87a5[5]},filename:{type:Sequelize[_0x87a5[3]]},path:{type:Sequelize[_0x87a5[3]]},type:{type:Sequelize[_0x87a5[3]]},size:{type:Sequelize[_0x87a5[6]]},active:{type:Sequelize[_0x87a5[7]],defaultValue:false},author:{type:Sequelize[_0x87a5[3]]},logo:{type:Sequelize[_0x87a5[3]]},state:{type:Sequelize[_0x87a5[3]],unique:_0x87a5[8]},description:{type:Sequelize[_0x87a5[3]]},title:{type:Sequelize[_0x87a5[3]]},remoteUri:{type:Sequelize[_0x87a5[3]]},link:{type:Sequelize[_0x87a5[3]],defaultValue:_0x87a5[9]}}
\ No newline at end of file
diff --git a/server/api/integration/integration.controller.js b/server/api/integration/integration.controller.js
new file mode 100644 (file)
index 0000000..1e6ffed
--- /dev/null
@@ -0,0 +1 @@
+var _0x6bd0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x6bd0[0];var jsonpatch=require(_0x6bd0[1]);var rp=require(_0x6bd0[2]);var moment=require(_0x6bd0[3]);var BPromise=require(_0x6bd0[4]);var util=require(_0x6bd0[5]);var path=require(_0x6bd0[6]);var sox=require(_0x6bd0[7]);var ejs=require(_0x6bd0[8]);var fs=require(_0x6bd0[9]);var _=require(_0x6bd0[10]);var squel=require(_0x6bd0[11]);var crypto=require(_0x6bd0[12]);var jsforce=require(_0x6bd0[13]);var toCsv=require(_0x6bd0[14]);var qs=require(_0x6bd0[15]);var logger=require(_0x6bd0[17])(_0x6bd0[16]);var utils=require(_0x6bd0[18]);var config=require(_0x6bd0[19]);var db=require(_0x6bd0[21])[_0x6bd0[20]];function respondWithStatusCode(_0xf174x15,_0xf174x16,_0xf174x17){_0xf174x16= _0xf174x16|| 204;return function(_0xf174x18){if(_0xf174x18){logger[_0x6bd0[24]](_0x6bd0[22],_0xf174x17,_0xf174x16,_0x6bd0[23]);logger[_0x6bd0[26]](_0x6bd0[25],_0xf174x17,_0xf174x16,_0x6bd0[23]);return _0xf174x15[_0x6bd0[27]](_0xf174x16)};return _0xf174x15[_0x6bd0[29]](304)[_0x6bd0[28]]()}}function respondWithResult(_0xf174x15,_0xf174x16,_0xf174x17){_0xf174x16= _0xf174x16|| 200;return function(_0xf174x18){if(_0xf174x18){logger[_0x6bd0[24]](_0x6bd0[22],_0xf174x17,_0xf174x16,_0x6bd0[30]);logger[_0x6bd0[26]](_0x6bd0[25],_0xf174x17,_0xf174x16,_0x6bd0[30],JSON[_0x6bd0[31]](_0xf174x18));return _0xf174x15[_0x6bd0[29]](_0xf174x16)[_0x6bd0[32]](_0xf174x18)};return _0xf174x15[_0x6bd0[29]](304)[_0x6bd0[28]]()}}function respondWithFilteredResult(_0xf174x15,_0xf174x1b,_0xf174x17){return function(_0xf174x18){if(_0xf174x18){var _0xf174x1c=_0xf174x18[_0x6bd0[33]],_0xf174x1d=_0xf174x1b[_0x6bd0[34]],_0xf174x1e=_0xf174x1b[_0x6bd0[34]]+ _0xf174x1b[_0x6bd0[35]],_0xf174x16;if(_0xf174x1e>= _0xf174x1c){_0xf174x1e= _0xf174x1c;_0xf174x16= 200}else {_0xf174x16= 206};_0xf174x15[_0x6bd0[29]](_0xf174x16);logger[_0x6bd0[24]](_0x6bd0[22],_0xf174x17,_0xf174x16,_0x6bd0[36]);logger[_0x6bd0[26]](_0x6bd0[25],_0xf174x17,_0xf174x16,_0x6bd0[30],JSON[_0x6bd0[31]](_0xf174x18));return _0xf174x15[_0x6bd0[40]](_0x6bd0[37],_0xf174x1d+ _0x6bd0[38]+ _0xf174x1e+ _0x6bd0[39]+ _0xf174x1c)[_0x6bd0[32]](_0xf174x18)};return null}}function patchUpdates(_0xf174x20){return function(_0xf174x18){try{jsonpatch[_0x6bd0[41]](_0xf174x18,_0xf174x20,true)}catch(err){return BPromise[_0x6bd0[42]](err)};return _0xf174x18[_0x6bd0[43]]()}}function saveUpdates(_0xf174x22,_0xf174x16,_0xf174x17){return function(_0xf174x18){if(_0xf174x18){return _0xf174x18[_0x6bd0[46]](_0xf174x22)[_0x6bd0[45]](function(_0xf174x23){logger[_0x6bd0[24]](_0x6bd0[22],_0xf174x17,_0xf174x16,_0x6bd0[44]);logger[_0x6bd0[26]](_0x6bd0[25],_0xf174x17,_0xf174x16,_0x6bd0[44],JSON[_0x6bd0[31]](_0xf174x18));return _0xf174x23})};return null}}function removeEntity(_0xf174x15,_0xf174x16,_0xf174x17){return function(_0xf174x18){if(_0xf174x18){return _0xf174x18[_0x6bd0[48]]()[_0x6bd0[45]](function(){logger[_0x6bd0[24]](_0x6bd0[22],_0xf174x17,_0xf174x16,_0x6bd0[47]);logger[_0x6bd0[26]](_0x6bd0[25],_0xf174x17,_0xf174x16,_0x6bd0[47],JSON[_0x6bd0[31]](_0xf174x18));_0xf174x15[_0x6bd0[29]](204)[_0x6bd0[28]]()})}}}function handleEntityNotFound(_0xf174x15,_0xf174x16,_0xf174x17){return function(_0xf174x18){if(!_0xf174x18){logger[_0x6bd0[50]](_0x6bd0[22],_0xf174x17,404,_0x6bd0[49]);_0xf174x15[_0x6bd0[29]](404)[_0x6bd0[28]]();return null};return _0xf174x18}}function handleError(_0xf174x15,_0xf174x16,_0xf174x17){_0xf174x16= _0xf174x16|| 500;return function(_0xf174x27){logger[_0x6bd0[50]](_0x6bd0[22],_0xf174x17,_0xf174x16,JSON[_0x6bd0[31]](_0xf174x27));delete _0xf174x27[_0x6bd0[51]];_0xf174x15[_0x6bd0[29]](_0xf174x16)[_0x6bd0[52]](_0xf174x27)}}exports[_0x6bd0[53]]= function(_0xf174x28,_0xf174x15){var _0xf174x1b={},_0xf174x29={};_0xf174x29[_0x6bd0[54]]= _[_0x6bd0[57]](db[_0x6bd0[56]][_0x6bd0[55]]);_0xf174x29[_0x6bd0[58]]= _[_0x6bd0[57]](_0xf174x28[_0x6bd0[58]]);_0xf174x29[_0x6bd0[59]]= _[_0x6bd0[60]](_0xf174x29[_0x6bd0[54]],_0xf174x29[_0x6bd0[58]]);_0xf174x1b[_0x6bd0[61]]= _[_0x6bd0[60]](_0xf174x29[_0x6bd0[54]],qs[_0x6bd0[62]](_0xf174x28[_0x6bd0[58]][_0x6bd0[62]]));_0xf174x1b[_0x6bd0[61]]= (_0xf174x1b[_0x6bd0[61]][_0x6bd0[63]])?_0xf174x1b[_0x6bd0[61]]:_0xf174x29[_0x6bd0[54]];if(!_0xf174x28[_0x6bd0[58]][_0x6bd0[65]](_0x6bd0[64])){_0xf174x1b[_0x6bd0[35]]= qs[_0x6bd0[35]](_0xf174x28[_0x6bd0[58]][_0x6bd0[35]]);_0xf174x1b[_0x6bd0[34]]= qs[_0x6bd0[34]](_0xf174x28[_0x6bd0[58]][_0x6bd0[34]])};_0xf174x1b[_0x6bd0[66]]= qs[_0x6bd0[67]](_0xf174x28[_0x6bd0[58]][_0x6bd0[67]]);_0xf174x1b[_0x6bd0[68]]= qs[_0x6bd0[59]](_[_0x6bd0[69]](_0xf174x28[_0x6bd0[58]],_0xf174x29[_0x6bd0[59]]));if(_0xf174x28[_0x6bd0[58]][_0x6bd0[70]]){_0xf174x1b[_0x6bd0[68]]= _[_0x6bd0[73]](_0xf174x1b[_0x6bd0[68]],{$or:_[_0x6bd0[72]](_0xf174x1b[_0x6bd0[61]],function(_0xf174x2a){var _0xf174x2b={};_0xf174x2b[_0xf174x2a]= {$like:_0x6bd0[71]+ _0xf174x28[_0x6bd0[58]][_0x6bd0[70]]+ _0x6bd0[71]};return _0xf174x2b})})};_0xf174x1b= _[_0x6bd0[73]]({},_0xf174x1b,_0xf174x28[_0x6bd0[74]]);return db[_0x6bd0[56]][_0x6bd0[76]](_0xf174x1b)[_0x6bd0[45]](respondWithFilteredResult(_0xf174x15,_0xf174x1b,_0x6bd0[53]))[_0x6bd0[75]](handleError(_0xf174x15,null,_0x6bd0[53]))};exports[_0x6bd0[77]]= function(_0xf174x28,_0xf174x15){var _0xf174x1b={raw:false,where:{id:_0xf174x28[_0x6bd0[79]][_0x6bd0[78]]}},_0xf174x29={};_0xf174x29[_0x6bd0[54]]= _[_0x6bd0[57]](db[_0x6bd0[56]][_0x6bd0[55]]);_0xf174x29[_0x6bd0[58]]= _[_0x6bd0[57]](_0xf174x28[_0x6bd0[58]]);_0xf174x29[_0x6bd0[59]]= _[_0x6bd0[60]](_0xf174x29[_0x6bd0[54]],_0xf174x29[_0x6bd0[58]]);_0xf174x1b[_0x6bd0[61]]= _[_0x6bd0[60]](_0xf174x29[_0x6bd0[54]],qs[_0x6bd0[62]](_0xf174x28[_0x6bd0[58]][_0x6bd0[62]]));_0xf174x1b[_0x6bd0[61]]= (_0xf174x1b[_0x6bd0[61]][_0x6bd0[63]])?_0xf174x1b[_0x6bd0[61]]:_0xf174x29[_0x6bd0[54]];_0xf174x1b= _[_0x6bd0[73]]({},_0xf174x1b,_0xf174x28[_0x6bd0[74]]);return db[_0x6bd0[56]][_0x6bd0[80]](_0xf174x1b)[_0x6bd0[45]](handleEntityNotFound(_0xf174x15,null,_0x6bd0[77]))[_0x6bd0[45]](respondWithResult(_0xf174x15,null,_0x6bd0[77]))[_0x6bd0[75]](handleError(_0xf174x15,null,_0x6bd0[77]))};exports[_0x6bd0[81]]= function(_0xf174x28,_0xf174x15){return db[_0x6bd0[56]][_0x6bd0[81]](_0xf174x28[_0x6bd0[82]],{})[_0x6bd0[45]](respondWithResult(_0xf174x15,201,_0x6bd0[81]))[_0x6bd0[75]](handleError(_0xf174x15,null,_0x6bd0[81]))};exports[_0x6bd0[46]]= function(_0xf174x28,_0xf174x15){if(_0xf174x28[_0x6bd0[82]][_0x6bd0[78]]){delete _0xf174x28[_0x6bd0[82]][_0x6bd0[78]]};return db[_0x6bd0[56]][_0x6bd0[80]]({where:{id:_0xf174x28[_0x6bd0[79]][_0x6bd0[78]]}})[_0x6bd0[45]](handleEntityNotFound(_0xf174x15,null,_0x6bd0[46]))[_0x6bd0[45]](saveUpdates(_0xf174x28[_0x6bd0[82]],null,_0x6bd0[46]))[_0x6bd0[45]](respondWithResult(_0xf174x15,null,_0x6bd0[46]))[_0x6bd0[75]](handleError(_0xf174x15,null,_0x6bd0[46]))};exports[_0x6bd0[48]]= function(_0xf174x28,_0xf174x15){return db[_0x6bd0[56]][_0x6bd0[80]]({where:{id:_0xf174x28[_0x6bd0[79]][_0x6bd0[78]]}})[_0x6bd0[45]](handleEntityNotFound(_0xf174x15,null,_0x6bd0[48]))[_0x6bd0[45]](removeEntity(_0xf174x15,null,_0x6bd0[48]))[_0x6bd0[75]](handleError(_0xf174x15,null,_0x6bd0[48]))}
\ No newline at end of file
diff --git a/server/api/integration/integration.model.js b/server/api/integration/integration.model.js
new file mode 100644 (file)
index 0000000..b82a91d
--- /dev/null
@@ -0,0 +1 @@
+var _0x7b6c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x7b6c[0];var _=require(_0x7b6c[1]);var util=require(_0x7b6c[2]);var logger=require(_0x7b6c[4])(_0x7b6c[3]);var attributes=require(_0x7b6c[5]);module[_0x7b6c[6]]= function(_0xf2d5x5,_0xf2d5x6){return _0xf2d5x5[_0x7b6c[9]](_0x7b6c[7],attributes,{tableName:_0x7b6c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/integration/integration.rpc.js b/server/api/integration/integration.rpc.js
new file mode 100644 (file)
index 0000000..380d4be
--- /dev/null
@@ -0,0 +1 @@
+var _0x5a40=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x5a40[0];var _=require(_0x5a40[1]);var util=require(_0x5a40[2]);var moment=require(_0x5a40[3]);var BPromise=require(_0x5a40[4]);var db=require(_0x5a40[6])[_0x5a40[5]];var utils=require(_0x5a40[7]);var logger=require(_0x5a40[9])(_0x5a40[8]);var jayson=require(_0x5a40[10]);var client=jayson[_0x5a40[12]][_0x5a40[11]]({port:9002});function respondWithRpcPromise(_0xd540xb,_0xd540xc,_0xd540xd){return  new BPromise(function(_0xd540xe,_0xd540xf){return client[_0x5a40[25]](_0xd540xb,_0xd540xd)[_0x5a40[24]](function(_0xd540x11){logger[_0x5a40[17]](_0x5a40[13],_0xd540xc,_0x5a40[16]);logger[_0x5a40[20]](_0x5a40[18],_0xd540xc,_0x5a40[16],JSON[_0x5a40[19]](_0xd540x11));if(_0xd540x11[_0x5a40[14]]){if(_0xd540x11[_0x5a40[14]][_0x5a40[21]]=== 500){logger[_0x5a40[14]](_0x5a40[13],_0xd540xc,_0xd540x11[_0x5a40[14]][_0x5a40[22]]);return _0xd540xf(_0xd540x11[_0x5a40[14]][_0x5a40[22]])};logger[_0x5a40[14]](_0x5a40[13],_0xd540xc,_0xd540x11[_0x5a40[14]][_0x5a40[22]]);return _0xd540xe(_0xd540x11[_0x5a40[14]][_0x5a40[22]])}else {logger[_0x5a40[17]](_0x5a40[13],_0xd540xc,_0x5a40[16]);_0xd540xe(_0xd540x11[_0x5a40[23]][_0x5a40[22]])}})[_0x5a40[15]](function(_0xd540x10){logger[_0x5a40[14]](_0x5a40[13],_0xd540xc,_0xd540x10);_0xd540xf(_0xd540x10)})})}
\ No newline at end of file
diff --git a/server/api/integrationReport/index.js b/server/api/integrationReport/index.js
new file mode 100644 (file)
index 0000000..e2e5a19
--- /dev/null
@@ -0,0 +1 @@
+var _0x5fe2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5fe2[0];var multer=require(_0x5fe2[1]);var util=require(_0x5fe2[2]);var path=require(_0x5fe2[3]);var express=require(_0x5fe2[4]);var router=express.Router();var auth=require(_0x5fe2[5]);var config=require(_0x5fe2[6]);var controller=require(_0x5fe2[7]);router[_0x5fe2[11]](_0x5fe2[8],auth[_0x5fe2[9]](),controller[_0x5fe2[10]]);router[_0x5fe2[11]](_0x5fe2[12],auth[_0x5fe2[9]](),controller[_0x5fe2[13]]);router[_0x5fe2[11]](_0x5fe2[14],auth[_0x5fe2[9]](),controller[_0x5fe2[15]]);router[_0x5fe2[17]](_0x5fe2[8],auth[_0x5fe2[9]](),controller[_0x5fe2[16]]);router[_0x5fe2[19]](_0x5fe2[14],auth[_0x5fe2[9]](),controller[_0x5fe2[18]]);router[_0x5fe2[21]](_0x5fe2[14],auth[_0x5fe2[9]](),controller[_0x5fe2[20]]);module[_0x5fe2[22]]= router
\ No newline at end of file
diff --git a/server/api/integrationReport/integrationReport.attributes.js b/server/api/integrationReport/integrationReport.attributes.js
new file mode 100644 (file)
index 0000000..00f61c2
--- /dev/null
@@ -0,0 +1 @@
+var _0x5b94=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x53\x45\x4E\x54","\x53\x45\x4E\x44\x49\x4E\x47","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44"];_0x5b94[0];var Sequelize=require(_0x5b94[1]);module[_0x5b94[2]]= {integration:{type:Sequelize[_0x5b94[3]]},eventChannel:{type:Sequelize[_0x5b94[3]]},exitStatus:{type:Sequelize[_0x5b94[3]]},ticketId:{type:Sequelize[_0x5b94[3]]},integrationId:{type:Sequelize[_0x5b94[4]]},contacts:{type:Sequelize[_0x5b94[3]]},uniqueid:{type:Sequelize[_0x5b94[3]]},calleridnum:{type:Sequelize[_0x5b94[3]]},calleridname:{type:Sequelize[_0x5b94[3]]},queue:{type:Sequelize[_0x5b94[3]]},interface:{type:Sequelize[_0x5b94[3]]},membername:{type:Sequelize[_0x5b94[3]]},agentcalledAt:{type:Sequelize[_0x5b94[5]]},agentconnectAt:{type:Sequelize[_0x5b94[5]]},holdtime:{type:Sequelize[_0x5b94[4]]},agentcomplete:{type:Sequelize[_0x5b94[6]],defaultValue:false},agentcompleteAt:{type:Sequelize[_0x5b94[5]]},talktime:{type:Sequelize[_0x5b94[4]]},agentacw:{type:Sequelize[_0x5b94[6]],defaultValue:false},acwtime:{type:Sequelize[_0x5b94[4]]},reason:{type:Sequelize[_0x5b94[3]]},agentringnoanswer:{type:Sequelize[_0x5b94[6]],defaultValue:false},agentringnoanswerAt:{type:Sequelize[_0x5b94[5]]},agentdump:{type:Sequelize[_0x5b94[6]],defaultValue:false},agentdumpAt:{type:Sequelize[_0x5b94[5]]},lastevent:{type:Sequelize[_0x5b94[3]]},channel:{type:Sequelize[_0x5b94[3]]},channelstate:{type:Sequelize[_0x5b94[4]]},channelstatedesc:{type:Sequelize[_0x5b94[3]]},connectedlinenum:{type:Sequelize[_0x5b94[3]]},connectedlinename:{type:Sequelize[_0x5b94[3]]},language:{type:Sequelize[_0x5b94[3]]},accountcode:{type:Sequelize[_0x5b94[3]]},context:{type:Sequelize[_0x5b94[3]]},exten:{type:Sequelize[_0x5b94[3]]},priority:{type:Sequelize[_0x5b94[3]]},destchannel:{type:Sequelize[_0x5b94[3]]},destchannelstate:{type:Sequelize[_0x5b94[4]]},destchannelstatedesc:{type:Sequelize[_0x5b94[3]]},destcalleridnum:{type:Sequelize[_0x5b94[3]]},destcalleridname:{type:Sequelize[_0x5b94[3]]},destconnectedlinenum:{type:Sequelize[_0x5b94[3]]},destconnectedlinename:{type:Sequelize[_0x5b94[3]]},destlanguage:{type:Sequelize[_0x5b94[3]]},destaccountcode:{type:Sequelize[_0x5b94[3]]},destcontext:{type:Sequelize[_0x5b94[3]]},destexten:{type:Sequelize[_0x5b94[3]]},destpriority:{type:Sequelize[_0x5b94[3]]},destuniqueid:{type:Sequelize[_0x5b94[3]]},messageId:{type:Sequelize[_0x5b94[3]]},inReplyTo:{type:Sequelize[_0x5b94[3]]},subject:{type:Sequelize[_0x5b94[3]]},from:{type:Sequelize[_0x5b94[3]]},to:{type:Sequelize[_0x5b94[3]]},cc:{type:Sequelize[_0x5b94[3]]},attachment:{type:Sequelize[_0x5b94[7]]},html:{type:Sequelize[_0x5b94[7]]},text:{type:Sequelize[_0x5b94[7]]},status:{type:Sequelize.ENUM(_0x5b94[8],_0x5b94[9],_0x5b94[10],_0x5b94[11])},url:{type:Sequelize[_0x5b94[3]]},app:{type:Sequelize[_0x5b94[3]]},appdata:{type:Sequelize[_0x5b94[3]]},projectId:{type:Sequelize[_0x5b94[4]]}}
\ No newline at end of file
diff --git a/server/api/integrationReport/integrationReport.controller.js b/server/api/integrationReport/integrationReport.controller.js
new file mode 100644 (file)
index 0000000..c47197c
--- /dev/null
@@ -0,0 +1 @@
+var _0x3b13=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x3b13[0];var jsonpatch=require(_0x3b13[1]);var rp=require(_0x3b13[2]);var moment=require(_0x3b13[3]);var BPromise=require(_0x3b13[4]);var util=require(_0x3b13[5]);var path=require(_0x3b13[6]);var sox=require(_0x3b13[7]);var ejs=require(_0x3b13[8]);var fs=require(_0x3b13[9]);var _=require(_0x3b13[10]);var squel=require(_0x3b13[11]);var crypto=require(_0x3b13[12]);var jsforce=require(_0x3b13[13]);var toCsv=require(_0x3b13[14]);var qs=require(_0x3b13[15]);var logger=require(_0x3b13[17])(_0x3b13[16]);var utils=require(_0x3b13[18]);var config=require(_0x3b13[19]);var db=require(_0x3b13[21])[_0x3b13[20]];function respondWithStatusCode(_0xdbbbx15,_0xdbbbx16,_0xdbbbx17){_0xdbbbx16= _0xdbbbx16|| 204;return function(_0xdbbbx18){if(_0xdbbbx18){logger[_0x3b13[24]](_0x3b13[22],_0xdbbbx17,_0xdbbbx16,_0x3b13[23]);logger[_0x3b13[26]](_0x3b13[25],_0xdbbbx17,_0xdbbbx16,_0x3b13[23]);return _0xdbbbx15[_0x3b13[27]](_0xdbbbx16)};return _0xdbbbx15[_0x3b13[29]](304)[_0x3b13[28]]()}}function respondWithResult(_0xdbbbx15,_0xdbbbx16,_0xdbbbx17){_0xdbbbx16= _0xdbbbx16|| 200;return function(_0xdbbbx18){if(_0xdbbbx18){logger[_0x3b13[24]](_0x3b13[22],_0xdbbbx17,_0xdbbbx16,_0x3b13[30]);logger[_0x3b13[26]](_0x3b13[25],_0xdbbbx17,_0xdbbbx16,_0x3b13[30],JSON[_0x3b13[31]](_0xdbbbx18));return _0xdbbbx15[_0x3b13[29]](_0xdbbbx16)[_0x3b13[32]](_0xdbbbx18)};return _0xdbbbx15[_0x3b13[29]](304)[_0x3b13[28]]()}}function respondWithFilteredResult(_0xdbbbx15,_0xdbbbx1b,_0xdbbbx17){return function(_0xdbbbx18){if(_0xdbbbx18){var _0xdbbbx1c=_0xdbbbx18[_0x3b13[33]],_0xdbbbx1d=_0xdbbbx1b[_0x3b13[34]],_0xdbbbx1e=_0xdbbbx1b[_0x3b13[34]]+ _0xdbbbx1b[_0x3b13[35]],_0xdbbbx16;if(_0xdbbbx1e>= _0xdbbbx1c){_0xdbbbx1e= _0xdbbbx1c;_0xdbbbx16= 200}else {_0xdbbbx16= 206};_0xdbbbx15[_0x3b13[29]](_0xdbbbx16);logger[_0x3b13[24]](_0x3b13[22],_0xdbbbx17,_0xdbbbx16,_0x3b13[36]);logger[_0x3b13[26]](_0x3b13[25],_0xdbbbx17,_0xdbbbx16,_0x3b13[30],JSON[_0x3b13[31]](_0xdbbbx18));return _0xdbbbx15[_0x3b13[40]](_0x3b13[37],_0xdbbbx1d+ _0x3b13[38]+ _0xdbbbx1e+ _0x3b13[39]+ _0xdbbbx1c)[_0x3b13[32]](_0xdbbbx18)};return null}}function patchUpdates(_0xdbbbx20){return function(_0xdbbbx18){try{jsonpatch[_0x3b13[41]](_0xdbbbx18,_0xdbbbx20,true)}catch(err){return BPromise[_0x3b13[42]](err)};return _0xdbbbx18[_0x3b13[43]]()}}function saveUpdates(_0xdbbbx22,_0xdbbbx16,_0xdbbbx17){return function(_0xdbbbx18){if(_0xdbbbx18){return _0xdbbbx18[_0x3b13[46]](_0xdbbbx22)[_0x3b13[45]](function(_0xdbbbx23){logger[_0x3b13[24]](_0x3b13[22],_0xdbbbx17,_0xdbbbx16,_0x3b13[44]);logger[_0x3b13[26]](_0x3b13[25],_0xdbbbx17,_0xdbbbx16,_0x3b13[44],JSON[_0x3b13[31]](_0xdbbbx18));return _0xdbbbx23})};return null}}function removeEntity(_0xdbbbx15,_0xdbbbx16,_0xdbbbx17){return function(_0xdbbbx18){if(_0xdbbbx18){return _0xdbbbx18[_0x3b13[48]]()[_0x3b13[45]](function(){logger[_0x3b13[24]](_0x3b13[22],_0xdbbbx17,_0xdbbbx16,_0x3b13[47]);logger[_0x3b13[26]](_0x3b13[25],_0xdbbbx17,_0xdbbbx16,_0x3b13[47],JSON[_0x3b13[31]](_0xdbbbx18));_0xdbbbx15[_0x3b13[29]](204)[_0x3b13[28]]()})}}}function handleEntityNotFound(_0xdbbbx15,_0xdbbbx16,_0xdbbbx17){return function(_0xdbbbx18){if(!_0xdbbbx18){logger[_0x3b13[50]](_0x3b13[22],_0xdbbbx17,404,_0x3b13[49]);_0xdbbbx15[_0x3b13[29]](404)[_0x3b13[28]]();return null};return _0xdbbbx18}}function handleError(_0xdbbbx15,_0xdbbbx16,_0xdbbbx17){_0xdbbbx16= _0xdbbbx16|| 500;return function(_0xdbbbx27){logger[_0x3b13[50]](_0x3b13[22],_0xdbbbx17,_0xdbbbx16,JSON[_0x3b13[31]](_0xdbbbx27));delete _0xdbbbx27[_0x3b13[51]];_0xdbbbx15[_0x3b13[29]](_0xdbbbx16)[_0x3b13[52]](_0xdbbbx27)}}exports[_0x3b13[53]]= function(_0xdbbbx28,_0xdbbbx15){var _0xdbbbx1b={},_0xdbbbx29={};_0xdbbbx29[_0x3b13[54]]= _[_0x3b13[57]](db[_0x3b13[56]][_0x3b13[55]]);_0xdbbbx29[_0x3b13[58]]= _[_0x3b13[57]](_0xdbbbx28[_0x3b13[58]]);_0xdbbbx29[_0x3b13[59]]= _[_0x3b13[60]](_0xdbbbx29[_0x3b13[54]],_0xdbbbx29[_0x3b13[58]]);_0xdbbbx1b[_0x3b13[61]]= _[_0x3b13[60]](_0xdbbbx29[_0x3b13[54]],qs[_0x3b13[62]](_0xdbbbx28[_0x3b13[58]][_0x3b13[62]]));_0xdbbbx1b[_0x3b13[61]]= (_0xdbbbx1b[_0x3b13[61]][_0x3b13[63]])?_0xdbbbx1b[_0x3b13[61]]:_0xdbbbx29[_0x3b13[54]];if(!_0xdbbbx28[_0x3b13[58]][_0x3b13[65]](_0x3b13[64])){_0xdbbbx1b[_0x3b13[35]]= qs[_0x3b13[35]](_0xdbbbx28[_0x3b13[58]][_0x3b13[35]]);_0xdbbbx1b[_0x3b13[34]]= qs[_0x3b13[34]](_0xdbbbx28[_0x3b13[58]][_0x3b13[34]])};_0xdbbbx1b[_0x3b13[66]]= qs[_0x3b13[67]](_0xdbbbx28[_0x3b13[58]][_0x3b13[67]]);_0xdbbbx1b[_0x3b13[68]]= qs[_0x3b13[59]](_[_0x3b13[69]](_0xdbbbx28[_0x3b13[58]],_0xdbbbx29[_0x3b13[59]]));if(_0xdbbbx28[_0x3b13[58]][_0x3b13[70]]){_0xdbbbx1b[_0x3b13[68]]= _[_0x3b13[73]](_0xdbbbx1b[_0x3b13[68]],{$or:_[_0x3b13[72]](_0xdbbbx1b[_0x3b13[61]],function(_0xdbbbx2a){var _0xdbbbx2b={};_0xdbbbx2b[_0xdbbbx2a]= {$like:_0x3b13[71]+ _0xdbbbx28[_0x3b13[58]][_0x3b13[70]]+ _0x3b13[71]};return _0xdbbbx2b})})};_0xdbbbx1b= _[_0x3b13[73]]({},_0xdbbbx1b,_0xdbbbx28[_0x3b13[74]]);return db[_0x3b13[56]][_0x3b13[76]](_0xdbbbx1b)[_0x3b13[45]](respondWithFilteredResult(_0xdbbbx15,_0xdbbbx1b,_0x3b13[53]))[_0x3b13[75]](handleError(_0xdbbbx15,null,_0x3b13[53]))};exports[_0x3b13[77]]= function(_0xdbbbx28,_0xdbbbx15){var _0xdbbbx1b={raw:false,where:{id:_0xdbbbx28[_0x3b13[79]][_0x3b13[78]]}},_0xdbbbx29={};_0xdbbbx29[_0x3b13[54]]= _[_0x3b13[57]](db[_0x3b13[56]][_0x3b13[55]]);_0xdbbbx29[_0x3b13[58]]= _[_0x3b13[57]](_0xdbbbx28[_0x3b13[58]]);_0xdbbbx29[_0x3b13[59]]= _[_0x3b13[60]](_0xdbbbx29[_0x3b13[54]],_0xdbbbx29[_0x3b13[58]]);_0xdbbbx1b[_0x3b13[61]]= _[_0x3b13[60]](_0xdbbbx29[_0x3b13[54]],qs[_0x3b13[62]](_0xdbbbx28[_0x3b13[58]][_0x3b13[62]]));_0xdbbbx1b[_0x3b13[61]]= (_0xdbbbx1b[_0x3b13[61]][_0x3b13[63]])?_0xdbbbx1b[_0x3b13[61]]:_0xdbbbx29[_0x3b13[54]];_0xdbbbx1b= _[_0x3b13[73]]({},_0xdbbbx1b,_0xdbbbx28[_0x3b13[74]]);return db[_0x3b13[56]][_0x3b13[80]](_0xdbbbx1b)[_0x3b13[45]](handleEntityNotFound(_0xdbbbx15,null,_0x3b13[77]))[_0x3b13[45]](respondWithResult(_0xdbbbx15,null,_0x3b13[77]))[_0x3b13[75]](handleError(_0xdbbbx15,null,_0x3b13[77]))};exports[_0x3b13[81]]= function(_0xdbbbx28,_0xdbbbx15){return db[_0x3b13[56]][_0x3b13[81]](_0xdbbbx28[_0x3b13[82]],{})[_0x3b13[45]](respondWithResult(_0xdbbbx15,201,_0x3b13[81]))[_0x3b13[75]](handleError(_0xdbbbx15,null,_0x3b13[81]))};exports[_0x3b13[46]]= function(_0xdbbbx28,_0xdbbbx15){if(_0xdbbbx28[_0x3b13[82]][_0x3b13[78]]){delete _0xdbbbx28[_0x3b13[82]][_0x3b13[78]]};return db[_0x3b13[56]][_0x3b13[80]]({where:{id:_0xdbbbx28[_0x3b13[79]][_0x3b13[78]]}})[_0x3b13[45]](handleEntityNotFound(_0xdbbbx15,null,_0x3b13[46]))[_0x3b13[45]](saveUpdates(_0xdbbbx28[_0x3b13[82]],null,_0x3b13[46]))[_0x3b13[45]](respondWithResult(_0xdbbbx15,null,_0x3b13[46]))[_0x3b13[75]](handleError(_0xdbbbx15,null,_0x3b13[46]))};exports[_0x3b13[48]]= function(_0xdbbbx28,_0xdbbbx15){return db[_0x3b13[56]][_0x3b13[80]]({where:{id:_0xdbbbx28[_0x3b13[79]][_0x3b13[78]]}})[_0x3b13[45]](handleEntityNotFound(_0xdbbbx15,null,_0x3b13[48]))[_0x3b13[45]](removeEntity(_0xdbbbx15,null,_0x3b13[48]))[_0x3b13[75]](handleError(_0xdbbbx15,null,_0x3b13[48]))};exports[_0x3b13[83]]= function(_0xdbbbx28,_0xdbbbx15){return db[_0x3b13[56]][_0x3b13[83]]()[_0x3b13[45]](respondWithResult(_0xdbbbx15,null,_0x3b13[83]))[_0x3b13[75]](handleError(_0xdbbbx15,null,_0x3b13[83]))}
\ No newline at end of file
diff --git a/server/api/integrationReport/integrationReport.model.js b/server/api/integrationReport/integrationReport.model.js
new file mode 100644 (file)
index 0000000..636e4cb
--- /dev/null
@@ -0,0 +1 @@
+var _0x7ae6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0x7ae6[0];var _=require(_0x7ae6[1]);var util=require(_0x7ae6[2]);var logger=require(_0x7ae6[4])(_0x7ae6[3]);var attributes=require(_0x7ae6[5]);module[_0x7ae6[6]]= function(_0xeb91x5,_0xeb91x6){return _0xeb91x5[_0x7ae6[9]](_0x7ae6[7],attributes,{tableName:_0x7ae6[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/integrationReport/integrationReport.rpc.js b/server/api/integrationReport/integrationReport.rpc.js
new file mode 100644 (file)
index 0000000..2f6e9f7
--- /dev/null
@@ -0,0 +1 @@
+var _0x124d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x124d[0];var _=require(_0x124d[1]);var util=require(_0x124d[2]);var moment=require(_0x124d[3]);var BPromise=require(_0x124d[4]);var db=require(_0x124d[6])[_0x124d[5]];var utils=require(_0x124d[7]);var logger=require(_0x124d[9])(_0x124d[8]);var jayson=require(_0x124d[10]);var client=jayson[_0x124d[12]][_0x124d[11]]({port:9002});function respondWithRpcPromise(_0x234axb,_0x234axc,_0x234axd){return  new BPromise(function(_0x234axe,_0x234axf){return client[_0x124d[25]](_0x234axb,_0x234axd)[_0x124d[24]](function(_0x234ax11){logger[_0x124d[17]](_0x124d[13],_0x234axc,_0x124d[16]);logger[_0x124d[20]](_0x124d[18],_0x234axc,_0x124d[16],JSON[_0x124d[19]](_0x234ax11));if(_0x234ax11[_0x124d[14]]){if(_0x234ax11[_0x124d[14]][_0x124d[21]]=== 500){logger[_0x124d[14]](_0x124d[13],_0x234axc,_0x234ax11[_0x124d[14]][_0x124d[22]]);return _0x234axf(_0x234ax11[_0x124d[14]][_0x124d[22]])};logger[_0x124d[14]](_0x124d[13],_0x234axc,_0x234ax11[_0x124d[14]][_0x124d[22]]);return _0x234axe(_0x234ax11[_0x124d[14]][_0x124d[22]])}else {logger[_0x124d[17]](_0x124d[13],_0x234axc,_0x124d[16]);_0x234axe(_0x234ax11[_0x124d[23]][_0x124d[22]])}})[_0x124d[15]](function(_0x234ax10){logger[_0x124d[14]](_0x124d[13],_0x234axc,_0x234ax10);_0x234axf(_0x234ax10)})})}
\ No newline at end of file
diff --git a/server/api/interval/index.js b/server/api/interval/index.js
new file mode 100644 (file)
index 0000000..fca90e5
--- /dev/null
@@ -0,0 +1 @@
+var _0xdd57=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x5F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x76\x61\x6C","\x2F\x3A\x69\x64\x2F\x73\x75\x62\x5F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xdd57[0];var multer=require(_0xdd57[1]);var util=require(_0xdd57[2]);var path=require(_0xdd57[3]);var express=require(_0xdd57[4]);var router=express.Router();var auth=require(_0xdd57[5]);var config=require(_0xdd57[6]);var controller=require(_0xdd57[7]);router[_0xdd57[11]](_0xdd57[8],auth[_0xdd57[9]](),controller[_0xdd57[10]]);router[_0xdd57[11]](_0xdd57[12],auth[_0xdd57[9]](),controller[_0xdd57[13]]);router[_0xdd57[11]](_0xdd57[14],auth[_0xdd57[9]](),controller[_0xdd57[15]]);router[_0xdd57[17]](_0xdd57[8],auth[_0xdd57[9]](),controller[_0xdd57[16]]);router[_0xdd57[17]](_0xdd57[14],auth[_0xdd57[9]](),controller[_0xdd57[18]]);router[_0xdd57[17]](_0xdd57[19],auth[_0xdd57[9]](),controller[_0xdd57[20]]);router[_0xdd57[22]](_0xdd57[12],auth[_0xdd57[9]](),controller[_0xdd57[21]]);router[_0xdd57[24]](_0xdd57[12],auth[_0xdd57[9]](),controller[_0xdd57[23]]);module[_0xdd57[25]]= router
\ No newline at end of file
diff --git a/server/api/interval/interval.attributes.js b/server/api/interval/interval.attributes.js
new file mode 100644 (file)
index 0000000..f7a61ab
--- /dev/null
@@ -0,0 +1 @@
+var _0xc358=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xc358[0];var Sequelize=require(_0xc358[1]);module[_0xc358[2]]= {name:{type:Sequelize[_0xc358[3]]},description:{type:Sequelize[_0xc358[3]]},interval:{type:Sequelize[_0xc358[3]],allowNull:true}}
\ No newline at end of file
diff --git a/server/api/interval/interval.controller.js b/server/api/interval/interval.controller.js
new file mode 100644 (file)
index 0000000..62e7a7c
--- /dev/null
@@ -0,0 +1 @@
+var _0x6199=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x2F\x72\x65\x77\x72\x69\x74\x65","\x49\x6E\x74\x65\x72\x76\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x72\x76\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0x6199[0];var jsonpatch=require(_0x6199[1]);var rp=require(_0x6199[2]);var moment=require(_0x6199[3]);var BPromise=require(_0x6199[4]);var util=require(_0x6199[5]);var path=require(_0x6199[6]);var sox=require(_0x6199[7]);var ejs=require(_0x6199[8]);var fs=require(_0x6199[9]);var _=require(_0x6199[10]);var squel=require(_0x6199[11]);var crypto=require(_0x6199[12]);var jsforce=require(_0x6199[13]);var toCsv=require(_0x6199[14]);var qs=require(_0x6199[15]);var logger=require(_0x6199[17])(_0x6199[16]);var utils=require(_0x6199[18]);var config=require(_0x6199[19]);var db=require(_0x6199[21])[_0x6199[20]];var extensions=require(_0x6199[22]);function respondWithStatusCode(_0xff8dx16,_0xff8dx17,_0xff8dx18){_0xff8dx17= _0xff8dx17|| 204;return function(_0xff8dx19){if(_0xff8dx19){logger[_0x6199[25]](_0x6199[23],_0xff8dx18,_0xff8dx17,_0x6199[24]);logger[_0x6199[27]](_0x6199[26],_0xff8dx18,_0xff8dx17,_0x6199[24]);return _0xff8dx16[_0x6199[28]](_0xff8dx17)};return _0xff8dx16[_0x6199[30]](304)[_0x6199[29]]()}}function respondWithResult(_0xff8dx16,_0xff8dx17,_0xff8dx18){_0xff8dx17= _0xff8dx17|| 200;return function(_0xff8dx19){if(_0xff8dx19){logger[_0x6199[25]](_0x6199[23],_0xff8dx18,_0xff8dx17,_0x6199[31]);logger[_0x6199[27]](_0x6199[26],_0xff8dx18,_0xff8dx17,_0x6199[31],JSON[_0x6199[32]](_0xff8dx19));return _0xff8dx16[_0x6199[30]](_0xff8dx17)[_0x6199[33]](_0xff8dx19)};return _0xff8dx16[_0x6199[30]](304)[_0x6199[29]]()}}function respondWithFilteredResult(_0xff8dx16,_0xff8dx1c,_0xff8dx18){return function(_0xff8dx19){if(_0xff8dx19){var _0xff8dx1d=_0xff8dx19[_0x6199[34]],_0xff8dx1e=_0xff8dx1c[_0x6199[35]],_0xff8dx1f=_0xff8dx1c[_0x6199[35]]+ _0xff8dx1c[_0x6199[36]],_0xff8dx17;if(_0xff8dx1f>= _0xff8dx1d){_0xff8dx1f= _0xff8dx1d;_0xff8dx17= 200}else {_0xff8dx17= 206};_0xff8dx16[_0x6199[30]](_0xff8dx17);logger[_0x6199[25]](_0x6199[23],_0xff8dx18,_0xff8dx17,_0x6199[37]);logger[_0x6199[27]](_0x6199[26],_0xff8dx18,_0xff8dx17,_0x6199[31],JSON[_0x6199[32]](_0xff8dx19));return _0xff8dx16[_0x6199[41]](_0x6199[38],_0xff8dx1e+ _0x6199[39]+ _0xff8dx1f+ _0x6199[40]+ _0xff8dx1d)[_0x6199[33]](_0xff8dx19)};return null}}function patchUpdates(_0xff8dx21){return function(_0xff8dx19){try{jsonpatch[_0x6199[42]](_0xff8dx19,_0xff8dx21,true)}catch(err){return BPromise[_0x6199[43]](err)};return _0xff8dx19[_0x6199[44]]()}}function saveUpdates(_0xff8dx23,_0xff8dx17,_0xff8dx18){return function(_0xff8dx19){if(_0xff8dx19){return _0xff8dx19[_0x6199[47]](_0xff8dx23)[_0x6199[46]](function(_0xff8dx24){logger[_0x6199[25]](_0x6199[23],_0xff8dx18,_0xff8dx17,_0x6199[45]);logger[_0x6199[27]](_0x6199[26],_0xff8dx18,_0xff8dx17,_0x6199[45],JSON[_0x6199[32]](_0xff8dx19));return _0xff8dx24})};return null}}function removeEntity(_0xff8dx16,_0xff8dx17,_0xff8dx18){return function(_0xff8dx19){if(_0xff8dx19){return _0xff8dx19[_0x6199[49]]()[_0x6199[46]](function(){logger[_0x6199[25]](_0x6199[23],_0xff8dx18,_0xff8dx17,_0x6199[48]);logger[_0x6199[27]](_0x6199[26],_0xff8dx18,_0xff8dx17,_0x6199[48],JSON[_0x6199[32]](_0xff8dx19));_0xff8dx16[_0x6199[30]](204)[_0x6199[29]]()})}}}function handleEntityNotFound(_0xff8dx16,_0xff8dx17,_0xff8dx18){return function(_0xff8dx19){if(!_0xff8dx19){logger[_0x6199[51]](_0x6199[23],_0xff8dx18,404,_0x6199[50]);_0xff8dx16[_0x6199[30]](404)[_0x6199[29]]();return null};return _0xff8dx19}}function handleError(_0xff8dx16,_0xff8dx17,_0xff8dx18){_0xff8dx17= _0xff8dx17|| 500;return function(_0xff8dx28){logger[_0x6199[51]](_0x6199[23],_0xff8dx18,_0xff8dx17,JSON[_0x6199[32]](_0xff8dx28));delete _0xff8dx28[_0x6199[52]];_0xff8dx16[_0x6199[30]](_0xff8dx17)[_0x6199[53]](_0xff8dx28)}}exports[_0x6199[54]]= function(_0xff8dx29,_0xff8dx16){var _0xff8dx1c={},_0xff8dx2a={};_0xff8dx2a[_0x6199[55]]= _[_0x6199[58]](db[_0x6199[57]][_0x6199[56]]);_0xff8dx2a[_0x6199[59]]= _[_0x6199[58]](_0xff8dx29[_0x6199[59]]);_0xff8dx2a[_0x6199[60]]= _[_0x6199[61]](_0xff8dx2a[_0x6199[55]],_0xff8dx2a[_0x6199[59]]);_0xff8dx1c[_0x6199[62]]= _[_0x6199[61]](_0xff8dx2a[_0x6199[55]],qs[_0x6199[63]](_0xff8dx29[_0x6199[59]][_0x6199[63]]));_0xff8dx1c[_0x6199[62]]= (_0xff8dx1c[_0x6199[62]][_0x6199[64]])?_0xff8dx1c[_0x6199[62]]:_0xff8dx2a[_0x6199[55]];if(!_0xff8dx29[_0x6199[59]][_0x6199[66]](_0x6199[65])){_0xff8dx1c[_0x6199[36]]= qs[_0x6199[36]](_0xff8dx29[_0x6199[59]][_0x6199[36]]);_0xff8dx1c[_0x6199[35]]= qs[_0x6199[35]](_0xff8dx29[_0x6199[59]][_0x6199[35]])};_0xff8dx1c[_0x6199[67]]= qs[_0x6199[68]](_0xff8dx29[_0x6199[59]][_0x6199[68]]);_0xff8dx1c[_0x6199[69]]= qs[_0x6199[60]](_[_0x6199[70]](_0xff8dx29[_0x6199[59]],_0xff8dx2a[_0x6199[60]]));if(_0xff8dx29[_0x6199[59]][_0x6199[71]]){_0xff8dx1c[_0x6199[69]]= _[_0x6199[74]](_0xff8dx1c[_0x6199[69]],{$or:_[_0x6199[73]](_0xff8dx1c[_0x6199[62]],function(_0xff8dx2b){var _0xff8dx2c={};_0xff8dx2c[_0xff8dx2b]= {$like:_0x6199[72]+ _0xff8dx29[_0x6199[59]][_0x6199[71]]+ _0x6199[72]};return _0xff8dx2c})})};_0xff8dx1c= _[_0x6199[74]]({},_0xff8dx1c,_0xff8dx29[_0x6199[75]]);return db[_0x6199[57]][_0x6199[77]](_0xff8dx1c)[_0x6199[46]](respondWithFilteredResult(_0xff8dx16,_0xff8dx1c,_0x6199[54]))[_0x6199[76]](handleError(_0xff8dx16,null,_0x6199[54]))};exports[_0x6199[78]]= function(_0xff8dx29,_0xff8dx16){var _0xff8dx1c={raw:true,where:{id:_0xff8dx29[_0x6199[80]][_0x6199[79]]}},_0xff8dx2a={};_0xff8dx2a[_0x6199[55]]= _[_0x6199[58]](db[_0x6199[57]][_0x6199[56]]);_0xff8dx2a[_0x6199[59]]= _[_0x6199[58]](_0xff8dx29[_0x6199[59]]);_0xff8dx2a[_0x6199[60]]= _[_0x6199[61]](_0xff8dx2a[_0x6199[55]],_0xff8dx2a[_0x6199[59]]);_0xff8dx1c[_0x6199[62]]= _[_0x6199[61]](_0xff8dx2a[_0x6199[55]],qs[_0x6199[63]](_0xff8dx29[_0x6199[59]][_0x6199[63]]));_0xff8dx1c[_0x6199[62]]= (_0xff8dx1c[_0x6199[62]][_0x6199[64]])?_0xff8dx1c[_0x6199[62]]:_0xff8dx2a[_0x6199[55]];_0xff8dx1c= _[_0x6199[74]]({},_0xff8dx1c,_0xff8dx29[_0x6199[75]]);return db[_0x6199[57]][_0x6199[81]](_0xff8dx1c)[_0x6199[46]](handleEntityNotFound(_0xff8dx16,null,_0x6199[78]))[_0x6199[46]](respondWithResult(_0xff8dx16,null,_0x6199[78]))[_0x6199[76]](handleError(_0xff8dx16,null,_0x6199[78]))};exports[_0x6199[82]]= function(_0xff8dx29,_0xff8dx16){return db[_0x6199[57]][_0x6199[82]](_0xff8dx29[_0x6199[83]],{})[_0x6199[46]](respondWithResult(_0xff8dx16,201,_0x6199[82]))[_0x6199[76]](handleError(_0xff8dx16,null,_0x6199[82]))};exports[_0x6199[47]]= function(_0xff8dx29,_0xff8dx16){if(_0xff8dx29[_0x6199[83]][_0x6199[79]]){delete _0xff8dx29[_0x6199[83]][_0x6199[79]]};return db[_0x6199[57]][_0x6199[81]]({where:{id:_0xff8dx29[_0x6199[80]][_0x6199[79]]}})[_0x6199[46]](handleEntityNotFound(_0xff8dx16,null,_0x6199[47]))[_0x6199[46]](saveUpdates(_0xff8dx29[_0x6199[83]],null,_0x6199[47]))[_0x6199[46]](respondWithResult(_0xff8dx16,null,_0x6199[47]))[_0x6199[76]](handleError(_0xff8dx16,null,_0x6199[47]))};exports[_0x6199[49]]= function(_0xff8dx29,_0xff8dx16){return db[_0x6199[57]][_0x6199[81]]({where:{id:_0xff8dx29[_0x6199[80]][_0x6199[79]]}})[_0x6199[46]](handleEntityNotFound(_0xff8dx16,null,_0x6199[49]))[_0x6199[46]](removeEntity(_0xff8dx16,null,_0x6199[49]))[_0x6199[76]](handleError(_0xff8dx16,null,_0x6199[49]))};exports[_0x6199[84]]= function(_0xff8dx29,_0xff8dx16,_0xff8dx2d){if(_0xff8dx29[_0x6199[83]][_0x6199[79]]){delete _0xff8dx29[_0x6199[83]][_0x6199[79]]};return db[_0x6199[57]][_0x6199[81]]({where:{id:_0xff8dx29[_0x6199[80]][_0x6199[79]]}})[_0x6199[46]](handleEntityNotFound(_0xff8dx16,null,_0x6199[84]))[_0x6199[46]](function(_0xff8dx19){if(_0xff8dx19){_0xff8dx29[_0x6199[83]][_0x6199[85]]= _0xff8dx19[_0x6199[79]];return db[_0x6199[57]][_0x6199[82]](_0xff8dx29[_0x6199[83]])}})[_0x6199[46]](respondWithResult(_0xff8dx16,null,_0x6199[84]))[_0x6199[76]](handleError(_0xff8dx16,null,_0x6199[84]))};exports[_0x6199[86]]= function(_0xff8dx29,_0xff8dx19,_0xff8dx2d){var _0xff8dx1c={};var _0xff8dx2a={};var _0xff8dx2e;var _0xff8dx1d;return db[_0x6199[57]][_0x6199[87]]({where:{id:_0xff8dx29[_0x6199[80]][_0x6199[79]]}})[_0x6199[46]](handleEntityNotFound(_0xff8dx19,null,_0x6199[86]))[_0x6199[46]](function(_0xff8dx19){if(_0xff8dx19){_0xff8dx2e= _0xff8dx19;_0xff8dx2a[_0x6199[55]]= _[_0x6199[58]](db[_0x6199[57]][_0x6199[56]]);_0xff8dx2a[_0x6199[59]]= _[_0x6199[58]](_0xff8dx29[_0x6199[59]]);_0xff8dx2a[_0x6199[60]]= _[_0x6199[61]](_0xff8dx2a[_0x6199[55]],_0xff8dx2a[_0x6199[59]]);_0xff8dx1c[_0x6199[62]]= _[_0x6199[61]](_0xff8dx2a[_0x6199[55]],qs[_0x6199[63]](_0xff8dx29[_0x6199[59]][_0x6199[63]]));_0xff8dx1c[_0x6199[62]]= (_0xff8dx1c[_0x6199[62]][_0x6199[64]])?_0xff8dx1c[_0x6199[62]]:_0xff8dx2a[_0x6199[55]];_0xff8dx1c[_0x6199[67]]= qs[_0x6199[68]](_0xff8dx29[_0x6199[59]][_0x6199[68]]);_0xff8dx1c[_0x6199[69]]= qs[_0x6199[60]](_[_0x6199[70]](_0xff8dx29[_0x6199[59]],_0xff8dx2a[_0x6199[60]]));if(_0xff8dx29[_0x6199[59]][_0x6199[71]]){_0xff8dx1c[_0x6199[69]]= _[_0x6199[74]](_0xff8dx1c[_0x6199[69]],{$or:_[_0x6199[73]](_0xff8dx1c[_0x6199[62]],function(_0xff8dx2b){var _0xff8dx2c={};_0xff8dx2c[_0xff8dx2b]= {$like:_0x6199[72]+ _0xff8dx29[_0x6199[59]][_0x6199[71]]+ _0x6199[72]};return _0xff8dx2c})})};_0xff8dx1c= _[_0x6199[74]]({},_0xff8dx1c,_0xff8dx29[_0x6199[75]]);return _0xff8dx2e[_0x6199[86]](_0xff8dx1c)}})[_0x6199[46]](function(_0xff8dx30){if(_0xff8dx30){_0xff8dx1d= _0xff8dx30[_0x6199[64]];if(!_0xff8dx29[_0x6199[59]][_0x6199[66]](_0x6199[65])){_0xff8dx1c[_0x6199[36]]= qs[_0x6199[36]](_0xff8dx29[_0x6199[59]][_0x6199[36]]);_0xff8dx1c[_0x6199[35]]= qs[_0x6199[35]](_0xff8dx29[_0x6199[59]][_0x6199[35]])};return _0xff8dx2e[_0x6199[86]](_0xff8dx1c)}})[_0x6199[46]](function(_0xff8dx2f){return _0xff8dx2f?{count:_0xff8dx1d,rows:_0xff8dx2f}:null})[_0x6199[46]](respondWithResult(_0xff8dx19,null,_0x6199[86]))[_0x6199[76]](handleError(_0xff8dx19,null,_0x6199[86]))};exports[_0x6199[88]]= function(_0xff8dx29,_0xff8dx16,_0xff8dx2d){return db[_0x6199[57]][_0x6199[87]]({where:{id:_0xff8dx29[_0x6199[80]][_0x6199[79]]}})[_0x6199[46]](handleEntityNotFound(_0xff8dx16,null,_0x6199[88]))[_0x6199[46]](function(_0xff8dx19){if(_0xff8dx19){return db[_0x6199[92]][_0x6199[91]](function(_0xff8dx31){return db[_0x6199[57]][_0x6199[49]]({where:{IntervalId:_0xff8dx29[_0x6199[80]][_0x6199[79]]},transaction:_0xff8dx31})[_0x6199[46]](function(_0xff8dx32){var _0xff8dx33=_[_0x6199[73]](_0xff8dx29[_0x6199[83]],function(_0xff8dx34){delete _0xff8dx34[_0x6199[79]];_0xff8dx34[_0x6199[85]]= _0xff8dx29[_0x6199[80]][_0x6199[79]];return _0xff8dx34});return db[_0x6199[57]][_0x6199[90]](_0xff8dx33,{transaction:_0xff8dx31})})})[_0x6199[46]](function(){return db[_0x6199[57]][_0x6199[89]]({where:{IntervalId:_0xff8dx29[_0x6199[80]][_0x6199[79]]}})})}})[_0x6199[46]](respondWithResult(_0xff8dx16,null,_0x6199[88]))[_0x6199[76]](handleError(_0xff8dx16,null,_0x6199[88]))}
\ No newline at end of file
diff --git a/server/api/interval/interval.model.js b/server/api/interval/interval.model.js
new file mode 100644 (file)
index 0000000..f38ae2f
--- /dev/null
@@ -0,0 +1 @@
+var _0xcf1f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x2F\x72\x65\x77\x72\x69\x74\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x74\x6F\x6F\x6C\x73\x5F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x72\x65\x77\x72\x69\x74\x65","\x64\x65\x66\x69\x6E\x65"];_0xcf1f[0];var _=require(_0xcf1f[1]);var util=require(_0xcf1f[2]);var logger=require(_0xcf1f[4])(_0xcf1f[3]);var attributes=require(_0xcf1f[5]);var extensions=require(_0xcf1f[6]);module[_0xcf1f[7]]= function(_0xeef0x6,_0xeef0x7){return _0xeef0x6[_0xcf1f[11]](_0xcf1f[8],attributes,{tableName:_0xcf1f[9],paranoid:false,indexes:[],timestamps:true,hooks:{afterCreate:function(_0xeef0x8,_0xeef0x9){extensions[_0xcf1f[10]](_0xeef0x6,_0xeef0x8)},afterBulkCreate:function(_0xeef0xa,_0xeef0x9,_0xeef0xb){_0xeef0xb();extensions[_0xcf1f[10]](_0xeef0x6,_0xeef0xa[0])},afterUpdate:function(_0xeef0x8,_0xeef0x9){extensions[_0xcf1f[10]](_0xeef0x6,_0xeef0x8)},afterDestroy:function(_0xeef0x8,_0xeef0x9){extensions[_0xcf1f[10]](_0xeef0x6,_0xeef0x8)}}})}
\ No newline at end of file
diff --git a/server/api/interval/interval.rpc.js b/server/api/interval/interval.rpc.js
new file mode 100644 (file)
index 0000000..2fca3a5
--- /dev/null
@@ -0,0 +1 @@
+var _0xfc7a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x49\x6E\x74\x65\x72\x76\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x49\x6E\x74\x65\x72\x76\x61\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x49\x6E\x74\x65\x72\x76\x61\x6C","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x49\x6E\x74\x65\x72\x76\x61\x6C"];_0xfc7a[0];var _=require(_0xfc7a[1]);var util=require(_0xfc7a[2]);var moment=require(_0xfc7a[3]);var BPromise=require(_0xfc7a[4]);var db=require(_0xfc7a[6])[_0xfc7a[5]];var utils=require(_0xfc7a[7]);var logger=require(_0xfc7a[9])(_0xfc7a[8]);var jayson=require(_0xfc7a[10]);var client=jayson[_0xfc7a[12]][_0xfc7a[11]]({port:9002});function respondWithRpcPromise(_0x47f6xb,_0x47f6xc,_0x47f6xd){return  new BPromise(function(_0x47f6xe,_0x47f6xf){return client[_0xfc7a[25]](_0x47f6xb,_0x47f6xd)[_0xfc7a[24]](function(_0x47f6x11){logger[_0xfc7a[17]](_0xfc7a[13],_0x47f6xc,_0xfc7a[16]);logger[_0xfc7a[20]](_0xfc7a[18],_0x47f6xc,_0xfc7a[16],JSON[_0xfc7a[19]](_0x47f6x11));if(_0x47f6x11[_0xfc7a[14]]){if(_0x47f6x11[_0xfc7a[14]][_0xfc7a[21]]=== 500){logger[_0xfc7a[14]](_0xfc7a[13],_0x47f6xc,_0x47f6x11[_0xfc7a[14]][_0xfc7a[22]]);return _0x47f6xf(_0x47f6x11[_0xfc7a[14]][_0xfc7a[22]])};logger[_0xfc7a[14]](_0xfc7a[13],_0x47f6xc,_0x47f6x11[_0xfc7a[14]][_0xfc7a[22]]);return _0x47f6xe(_0x47f6x11[_0xfc7a[14]][_0xfc7a[22]])}else {logger[_0xfc7a[17]](_0xfc7a[13],_0x47f6xc,_0xfc7a[16]);_0x47f6xe(_0x47f6x11[_0xfc7a[23]][_0xfc7a[22]])}})[_0xfc7a[15]](function(_0x47f6x10){logger[_0xfc7a[14]](_0xfc7a[13],_0x47f6xc,_0x47f6x10);_0x47f6xf(_0x47f6x10)})})}exports[_0xfc7a[26]]= function(_0x47f6xd){var _0x47f6x12=this;return  new Promise(function(_0x47f6xe,_0x47f6xf){return db[_0xfc7a[36]][_0xfc7a[35]]({raw:_0x47f6xd[_0xfc7a[27]]?(_0x47f6xd[_0xfc7a[27]][_0xfc7a[28]]=== undefined)?true:false:true,where:_0x47f6xd[_0xfc7a[27]]?_0x47f6xd[_0xfc7a[27]][_0xfc7a[29]]|| null:null,attributes:_0x47f6xd[_0xfc7a[27]]?_0x47f6xd[_0xfc7a[27]][_0xfc7a[30]]|| null:null,include:_0x47f6xd[_0xfc7a[27]]?(_0x47f6xd[_0xfc7a[27]][_0xfc7a[31]]?_[_0xfc7a[34]](_0x47f6xd[_0xfc7a[27]][_0xfc7a[31]],function(_0x47f6x13){return {model:db[_0x47f6x13[_0xfc7a[32]]],as:_0x47f6x13[_0xfc7a[33]],attributes:_0x47f6x13[_0xfc7a[30]],include:_0x47f6x13[_0xfc7a[31]]?_[_0xfc7a[34]](_0x47f6x13[_0xfc7a[31]],function(_0x47f6x14){return {model:db[_0x47f6x14[_0xfc7a[32]]],as:_0x47f6x14[_0xfc7a[33]],attributes:_0x47f6x14[_0xfc7a[30]],include:_0x47f6x14[_0xfc7a[31]]?_[_0xfc7a[34]](_0x47f6x14[_0xfc7a[31]],function(_0x47f6x15){return {model:db[_0x47f6x15[_0xfc7a[32]]],as:_0x47f6x15[_0xfc7a[33]],attributes:_0x47f6x15[_0xfc7a[30]]}}):[]}}):[]}}):[]):[]})[_0xfc7a[24]](function(_0x47f6x11){logger[_0xfc7a[17]](_0xfc7a[26],_0x47f6xd);logger[_0xfc7a[20]](_0xfc7a[26],_0x47f6xd,JSON[_0xfc7a[19]](_0x47f6x11));_0x47f6xe(_0x47f6x11)})[_0xfc7a[15]](function(_0x47f6x10){logger[_0xfc7a[14]](_0xfc7a[26],_0x47f6x10[_0xfc7a[22]],_0x47f6xd);_0x47f6xf(_0x47f6x12[_0xfc7a[14]](500,_0x47f6x10[_0xfc7a[22]]))})})}
\ No newline at end of file
diff --git a/server/api/jira/index.js b/server/api/jira/index.js
new file mode 100644 (file)
index 0000000..3c18a50
--- /dev/null
@@ -0,0 +1 @@
+var _0xd883=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x6A\x69\x72\x61\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x65\x6E\x64","\x70\x6F\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xd883[0];var express=require(_0xd883[1]);var router=express.Router();var auth=require(_0xd883[2]);var controller=require(_0xd883[3]);router[_0xd883[7]](_0xd883[4],auth[_0xd883[5]](),controller[_0xd883[6]]);module[_0xd883[8]]= router
\ No newline at end of file
diff --git a/server/api/jira/jira.controller.js b/server/api/jira/jira.controller.js
new file mode 100644 (file)
index 0000000..e277161
--- /dev/null
@@ -0,0 +1 @@
+var _0x266c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x68\x74\x74\x70\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x73\x75\x70\x70\x6F\x72\x74","\x33\x65\x41\x6D\x57\x70\x42\x56\x50\x30","\x73\x65\x6E\x64","\x78\x2D\x66\x6F\x72\x77\x61\x72\x64\x65\x64\x2D\x66\x6F\x72","\x68\x65\x61\x64\x65\x72\x73","\x72\x65\x6D\x6F\x74\x65\x41\x64\x64\x72\x65\x73\x73","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x73\x6F\x63\x6B\x65\x74","\x6B\x65\x79","\x62\x6F\x64\x79","\x4D\x4F\x54\x47\x55\x49","\x73\x75\x6D\x6D\x61\x72\x79","\x52\x65\x70\x6F\x72\x74","\x20\x66\x72\x6F\x6D\x20","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x73\x73\x75\x65\x74\x79\x70\x65","\x42\x75\x67","\x70\x72\x6F\x6A\x65\x63\x74","\x66\x69\x65\x6C\x64\x73","\x63\x75\x73\x74\x6F\x6D\x66\x69\x65\x6C\x64\x5F\x31\x30\x31\x30\x32","\x74\x72\x61\x63\x6B\x2E\x78\x63\x61\x6C\x6C\x79\x6D\x6F\x74\x69\x6F\x6E\x2E\x63\x6F\x6D","\x2F\x72\x65\x73\x74\x2F\x61\x70\x69\x2F\x32\x2F\x69\x73\x73\x75\x65","\x50\x4F\x53\x54","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x42\x61\x73\x69\x63\x20","\x62\x61\x73\x65\x36\x34","\x3A","\x75\x74\x66\x38","\x73\x65\x74\x45\x6E\x63\x6F\x64\x69\x6E\x67","","\x64\x61\x74\x61","\x6F\x6E","\x65\x6E\x64","\x70\x61\x72\x73\x65","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73\x43\x6F\x64\x65","\x73\x74\x61\x74\x75\x73","\x72\x65\x71\x75\x65\x73\x74","\x65\x72\x72\x6F\x72","\x77\x72\x69\x74\x65"];_0x266c[0];var BPromise=require(_0x266c[1]);var https=require(_0x266c[2]);var logger=require(_0x266c[4])(_0x266c[3]);var USERNAME=_0x266c[5];var PASSWORD=_0x266c[6];exports[_0x266c[7]]= function(_0xbd88x6,_0xbd88x7){var _0xbd88x8=_0xbd88x6[_0x266c[9]][_0x266c[8]]|| _0xbd88x6[_0x266c[11]][_0x266c[10]]|| _0xbd88x6[_0x266c[12]][_0x266c[10]]|| _0xbd88x6[_0x266c[11]][_0x266c[12]][_0x266c[10]];var _0xbd88x9={fields:{project:{key:_0xbd88x6[_0x266c[14]][_0x266c[13]]|| _0x266c[15]},summary:(_0xbd88x6[_0x266c[14]][_0x266c[16]]|| _0x266c[17])+ _0x266c[18]+ _0xbd88x8,description:_0xbd88x6[_0x266c[14]][_0x266c[19]]|| JSON[_0x266c[20]](_0xbd88x6[_0x266c[14]]),issuetype:{name:_0xbd88x6[_0x266c[14]][_0x266c[21]]|| _0x266c[22]}}};_0xbd88x9[_0x266c[24]][_0x266c[23]][_0x266c[13]]=== _0x266c[15]&& (_0xbd88x9[_0x266c[24]][_0x266c[25]]= _0xbd88x8);var _0xbd88xa={host:_0x266c[26],port:443,path:_0x266c[27],method:_0x266c[28],headers:{"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x266c[29],"\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E":_0x266c[30]+  new Buffer(USERNAME+ _0x266c[32]+ PASSWORD).toString(_0x266c[31])}};var _0xbd88xb=JSON[_0x266c[20]](_0xbd88x9);var _0xbd88xc=https[_0x266c[43]](_0xbd88xa,function(_0xbd88xd){_0xbd88xd[_0x266c[34]](_0x266c[33]);var _0xbd88xe=_0x266c[35];_0xbd88xd[_0x266c[37]](_0x266c[36],function(_0xbd88xf){_0xbd88xe+= _0xbd88xf});_0xbd88xd[_0x266c[37]](_0x266c[38],function(){return _0xbd88x7[_0x266c[42]](_0xbd88xd[_0x266c[41]])[_0x266c[40]](JSON[_0x266c[39]](_0xbd88xe))})});_0xbd88xc[_0x266c[37]](_0x266c[44],function(_0xbd88x10){return _0xbd88x7[_0x266c[42]](500)[_0x266c[40]](_0xbd88x10)});_0xbd88xc[_0x266c[45]](_0xbd88xb);_0xbd88xc[_0x266c[38]]()}
\ No newline at end of file
diff --git a/server/api/jscriptyAnswerReport/index.js b/server/api/jscriptyAnswerReport/index.js
new file mode 100644 (file)
index 0000000..2f7c0e0
--- /dev/null
@@ -0,0 +1 @@
+var _0x265c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x41\x6E\x73\x77\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x265c[0];var multer=require(_0x265c[1]);var util=require(_0x265c[2]);var path=require(_0x265c[3]);var express=require(_0x265c[4]);var router=express.Router();var auth=require(_0x265c[5]);var config=require(_0x265c[6]);var controller=require(_0x265c[7]);router[_0x265c[11]](_0x265c[8],auth[_0x265c[9]](),controller[_0x265c[10]]);router[_0x265c[11]](_0x265c[12],auth[_0x265c[9]](),controller[_0x265c[13]]);router[_0x265c[15]](_0x265c[8],auth[_0x265c[9]](),controller[_0x265c[14]]);router[_0x265c[17]](_0x265c[12],auth[_0x265c[9]](),controller[_0x265c[16]]);router[_0x265c[19]](_0x265c[12],auth[_0x265c[9]](),controller[_0x265c[18]]);module[_0x265c[20]]= router
\ No newline at end of file
diff --git a/server/api/jscriptyAnswerReport/jscriptyAnswerReport.attributes.js b/server/api/jscriptyAnswerReport/jscriptyAnswerReport.attributes.js
new file mode 100644 (file)
index 0000000..211715d
--- /dev/null
@@ -0,0 +1 @@
+var _0xbb51=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xbb51[0];var Sequelize=require(_0xbb51[1]);module[_0xbb51[2]]= {question:{type:Sequelize[_0xbb51[3]]},answer:{type:Sequelize[_0xbb51[3]]},membername:{type:Sequelize[_0xbb51[3]]},projectname:{type:Sequelize[_0xbb51[3]]},queue:{type:Sequelize[_0xbb51[3]]},uniqueid:{type:Sequelize[_0xbb51[3]]},calleridname:{type:Sequelize[_0xbb51[3]]},calleridnum:{type:Sequelize[_0xbb51[3]]}}
\ No newline at end of file
diff --git a/server/api/jscriptyAnswerReport/jscriptyAnswerReport.controller.js b/server/api/jscriptyAnswerReport/jscriptyAnswerReport.controller.js
new file mode 100644 (file)
index 0000000..4bfd4ab
--- /dev/null
@@ -0,0 +1 @@
+var _0x58d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4A\x73\x63\x72\x69\x70\x74\x79\x41\x6E\x73\x77\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x41\x6E\x73\x77\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x41\x6E\x73\x77\x65\x72\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x58d2[0];var jsonpatch=require(_0x58d2[1]);var rp=require(_0x58d2[2]);var moment=require(_0x58d2[3]);var BPromise=require(_0x58d2[4]);var util=require(_0x58d2[5]);var path=require(_0x58d2[6]);var sox=require(_0x58d2[7]);var ejs=require(_0x58d2[8]);var fs=require(_0x58d2[9]);var _=require(_0x58d2[10]);var squel=require(_0x58d2[11]);var crypto=require(_0x58d2[12]);var jsforce=require(_0x58d2[13]);var toCsv=require(_0x58d2[14]);var qs=require(_0x58d2[15]);var logger=require(_0x58d2[17])(_0x58d2[16]);var utils=require(_0x58d2[18]);var config=require(_0x58d2[19]);var db=require(_0x58d2[21])[_0x58d2[20]];function respondWithStatusCode(_0xb8b6x15,_0xb8b6x16,_0xb8b6x17){_0xb8b6x16= _0xb8b6x16|| 204;return function(_0xb8b6x18){if(_0xb8b6x18){logger[_0x58d2[24]](_0x58d2[22],_0xb8b6x17,_0xb8b6x16,_0x58d2[23]);logger[_0x58d2[26]](_0x58d2[25],_0xb8b6x17,_0xb8b6x16,_0x58d2[23]);return _0xb8b6x15[_0x58d2[27]](_0xb8b6x16)};return _0xb8b6x15[_0x58d2[29]](304)[_0x58d2[28]]()}}function respondWithResult(_0xb8b6x15,_0xb8b6x16,_0xb8b6x17){_0xb8b6x16= _0xb8b6x16|| 200;return function(_0xb8b6x18){if(_0xb8b6x18){logger[_0x58d2[24]](_0x58d2[22],_0xb8b6x17,_0xb8b6x16,_0x58d2[30]);logger[_0x58d2[26]](_0x58d2[25],_0xb8b6x17,_0xb8b6x16,_0x58d2[30],JSON[_0x58d2[31]](_0xb8b6x18));return _0xb8b6x15[_0x58d2[29]](_0xb8b6x16)[_0x58d2[32]](_0xb8b6x18)};return _0xb8b6x15[_0x58d2[29]](304)[_0x58d2[28]]()}}function respondWithFilteredResult(_0xb8b6x15,_0xb8b6x1b,_0xb8b6x17){return function(_0xb8b6x18){if(_0xb8b6x18){var _0xb8b6x1c=_0xb8b6x18[_0x58d2[33]],_0xb8b6x1d=_0xb8b6x1b[_0x58d2[34]],_0xb8b6x1e=_0xb8b6x1b[_0x58d2[34]]+ _0xb8b6x1b[_0x58d2[35]],_0xb8b6x16;if(_0xb8b6x1e>= _0xb8b6x1c){_0xb8b6x1e= _0xb8b6x1c;_0xb8b6x16= 200}else {_0xb8b6x16= 206};_0xb8b6x15[_0x58d2[29]](_0xb8b6x16);logger[_0x58d2[24]](_0x58d2[22],_0xb8b6x17,_0xb8b6x16,_0x58d2[36]);logger[_0x58d2[26]](_0x58d2[25],_0xb8b6x17,_0xb8b6x16,_0x58d2[30],JSON[_0x58d2[31]](_0xb8b6x18));return _0xb8b6x15[_0x58d2[40]](_0x58d2[37],_0xb8b6x1d+ _0x58d2[38]+ _0xb8b6x1e+ _0x58d2[39]+ _0xb8b6x1c)[_0x58d2[32]](_0xb8b6x18)};return null}}function patchUpdates(_0xb8b6x20){return function(_0xb8b6x18){try{jsonpatch[_0x58d2[41]](_0xb8b6x18,_0xb8b6x20,true)}catch(err){return BPromise[_0x58d2[42]](err)};return _0xb8b6x18[_0x58d2[43]]()}}function saveUpdates(_0xb8b6x22,_0xb8b6x16,_0xb8b6x17){return function(_0xb8b6x18){if(_0xb8b6x18){return _0xb8b6x18[_0x58d2[46]](_0xb8b6x22)[_0x58d2[45]](function(_0xb8b6x23){logger[_0x58d2[24]](_0x58d2[22],_0xb8b6x17,_0xb8b6x16,_0x58d2[44]);logger[_0x58d2[26]](_0x58d2[25],_0xb8b6x17,_0xb8b6x16,_0x58d2[44],JSON[_0x58d2[31]](_0xb8b6x18));return _0xb8b6x23})};return null}}function removeEntity(_0xb8b6x15,_0xb8b6x16,_0xb8b6x17){return function(_0xb8b6x18){if(_0xb8b6x18){return _0xb8b6x18[_0x58d2[48]]()[_0x58d2[45]](function(){logger[_0x58d2[24]](_0x58d2[22],_0xb8b6x17,_0xb8b6x16,_0x58d2[47]);logger[_0x58d2[26]](_0x58d2[25],_0xb8b6x17,_0xb8b6x16,_0x58d2[47],JSON[_0x58d2[31]](_0xb8b6x18));_0xb8b6x15[_0x58d2[29]](204)[_0x58d2[28]]()})}}}function handleEntityNotFound(_0xb8b6x15,_0xb8b6x16,_0xb8b6x17){return function(_0xb8b6x18){if(!_0xb8b6x18){logger[_0x58d2[50]](_0x58d2[22],_0xb8b6x17,404,_0x58d2[49]);_0xb8b6x15[_0x58d2[29]](404)[_0x58d2[28]]();return null};return _0xb8b6x18}}function handleError(_0xb8b6x15,_0xb8b6x16,_0xb8b6x17){_0xb8b6x16= _0xb8b6x16|| 500;return function(_0xb8b6x27){logger[_0x58d2[50]](_0x58d2[22],_0xb8b6x17,_0xb8b6x16,JSON[_0x58d2[31]](_0xb8b6x27));delete _0xb8b6x27[_0x58d2[51]];_0xb8b6x15[_0x58d2[29]](_0xb8b6x16)[_0x58d2[52]](_0xb8b6x27)}}exports[_0x58d2[53]]= function(_0xb8b6x28,_0xb8b6x15){var _0xb8b6x1b={},_0xb8b6x29={};_0xb8b6x29[_0x58d2[54]]= _[_0x58d2[57]](db[_0x58d2[56]][_0x58d2[55]]);_0xb8b6x29[_0x58d2[58]]= _[_0x58d2[57]](_0xb8b6x28[_0x58d2[58]]);_0xb8b6x29[_0x58d2[59]]= _[_0x58d2[60]](_0xb8b6x29[_0x58d2[54]],_0xb8b6x29[_0x58d2[58]]);_0xb8b6x1b[_0x58d2[61]]= _[_0x58d2[60]](_0xb8b6x29[_0x58d2[54]],qs[_0x58d2[62]](_0xb8b6x28[_0x58d2[58]][_0x58d2[62]]));_0xb8b6x1b[_0x58d2[61]]= (_0xb8b6x1b[_0x58d2[61]][_0x58d2[63]])?_0xb8b6x1b[_0x58d2[61]]:_0xb8b6x29[_0x58d2[54]];if(!_0xb8b6x28[_0x58d2[58]][_0x58d2[65]](_0x58d2[64])){_0xb8b6x1b[_0x58d2[35]]= qs[_0x58d2[35]](_0xb8b6x28[_0x58d2[58]][_0x58d2[35]]);_0xb8b6x1b[_0x58d2[34]]= qs[_0x58d2[34]](_0xb8b6x28[_0x58d2[58]][_0x58d2[34]])};_0xb8b6x1b[_0x58d2[66]]= qs[_0x58d2[67]](_0xb8b6x28[_0x58d2[58]][_0x58d2[67]]);_0xb8b6x1b[_0x58d2[68]]= qs[_0x58d2[59]](_[_0x58d2[69]](_0xb8b6x28[_0x58d2[58]],_0xb8b6x29[_0x58d2[59]]));if(_0xb8b6x28[_0x58d2[58]][_0x58d2[70]]){_0xb8b6x1b[_0x58d2[68]]= _[_0x58d2[73]](_0xb8b6x1b[_0x58d2[68]],{$or:_[_0x58d2[72]](_0xb8b6x1b[_0x58d2[61]],function(_0xb8b6x2a){var _0xb8b6x2b={};_0xb8b6x2b[_0xb8b6x2a]= {$like:_0x58d2[71]+ _0xb8b6x28[_0x58d2[58]][_0x58d2[70]]+ _0x58d2[71]};return _0xb8b6x2b})})};_0xb8b6x1b= _[_0x58d2[73]]({},_0xb8b6x1b,_0xb8b6x28[_0x58d2[74]]);return db[_0x58d2[56]][_0x58d2[76]](_0xb8b6x1b)[_0x58d2[45]](respondWithFilteredResult(_0xb8b6x15,_0xb8b6x1b,_0x58d2[53]))[_0x58d2[75]](handleError(_0xb8b6x15,null,_0x58d2[53]))};exports[_0x58d2[77]]= function(_0xb8b6x28,_0xb8b6x15){var _0xb8b6x1b={raw:true,where:{id:_0xb8b6x28[_0x58d2[79]][_0x58d2[78]]}},_0xb8b6x29={};_0xb8b6x29[_0x58d2[54]]= _[_0x58d2[57]](db[_0x58d2[56]][_0x58d2[55]]);_0xb8b6x29[_0x58d2[58]]= _[_0x58d2[57]](_0xb8b6x28[_0x58d2[58]]);_0xb8b6x29[_0x58d2[59]]= _[_0x58d2[60]](_0xb8b6x29[_0x58d2[54]],_0xb8b6x29[_0x58d2[58]]);_0xb8b6x1b[_0x58d2[61]]= _[_0x58d2[60]](_0xb8b6x29[_0x58d2[54]],qs[_0x58d2[62]](_0xb8b6x28[_0x58d2[58]][_0x58d2[62]]));_0xb8b6x1b[_0x58d2[61]]= (_0xb8b6x1b[_0x58d2[61]][_0x58d2[63]])?_0xb8b6x1b[_0x58d2[61]]:_0xb8b6x29[_0x58d2[54]];_0xb8b6x1b= _[_0x58d2[73]]({},_0xb8b6x1b,_0xb8b6x28[_0x58d2[74]]);return db[_0x58d2[56]][_0x58d2[80]](_0xb8b6x1b)[_0x58d2[45]](handleEntityNotFound(_0xb8b6x15,null,_0x58d2[77]))[_0x58d2[45]](respondWithResult(_0xb8b6x15,null,_0x58d2[77]))[_0x58d2[75]](handleError(_0xb8b6x15,null,_0x58d2[77]))};exports[_0x58d2[81]]= function(_0xb8b6x28,_0xb8b6x15){return db[_0x58d2[56]][_0x58d2[81]](_0xb8b6x28[_0x58d2[82]],{})[_0x58d2[45]](respondWithResult(_0xb8b6x15,201,_0x58d2[81]))[_0x58d2[75]](handleError(_0xb8b6x15,null,_0x58d2[81]))};exports[_0x58d2[46]]= function(_0xb8b6x28,_0xb8b6x15){if(_0xb8b6x28[_0x58d2[82]][_0x58d2[78]]){delete _0xb8b6x28[_0x58d2[82]][_0x58d2[78]]};return db[_0x58d2[56]][_0x58d2[80]]({where:{id:_0xb8b6x28[_0x58d2[79]][_0x58d2[78]]}})[_0x58d2[45]](handleEntityNotFound(_0xb8b6x15,null,_0x58d2[46]))[_0x58d2[45]](saveUpdates(_0xb8b6x28[_0x58d2[82]],null,_0x58d2[46]))[_0x58d2[45]](respondWithResult(_0xb8b6x15,null,_0x58d2[46]))[_0x58d2[75]](handleError(_0xb8b6x15,null,_0x58d2[46]))};exports[_0x58d2[48]]= function(_0xb8b6x28,_0xb8b6x15){return db[_0x58d2[56]][_0x58d2[80]]({where:{id:_0xb8b6x28[_0x58d2[79]][_0x58d2[78]]}})[_0x58d2[45]](handleEntityNotFound(_0xb8b6x15,null,_0x58d2[48]))[_0x58d2[45]](removeEntity(_0xb8b6x15,null,_0x58d2[48]))[_0x58d2[75]](handleError(_0xb8b6x15,null,_0x58d2[48]))}
\ No newline at end of file
diff --git a/server/api/jscriptyAnswerReport/jscriptyAnswerReport.model.js b/server/api/jscriptyAnswerReport/jscriptyAnswerReport.model.js
new file mode 100644 (file)
index 0000000..a4fb713
--- /dev/null
@@ -0,0 +1 @@
+var _0xc29e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x41\x6E\x73\x77\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x41\x6E\x73\x77\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x61\x6E\x73\x77\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];_0xc29e[0];var _=require(_0xc29e[1]);var util=require(_0xc29e[2]);var logger=require(_0xc29e[4])(_0xc29e[3]);var attributes=require(_0xc29e[5]);module[_0xc29e[6]]= function(_0x2787x5,_0x2787x6){return _0x2787x5[_0xc29e[9]](_0xc29e[7],attributes,{tableName:_0xc29e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/jscriptyAnswerReport/jscriptyAnswerReport.rpc.js b/server/api/jscriptyAnswerReport/jscriptyAnswerReport.rpc.js
new file mode 100644 (file)
index 0000000..fd905df
--- /dev/null
@@ -0,0 +1 @@
+var _0x3d95=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x41\x6E\x73\x77\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x41\x6E\x73\x77\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x3d95[0];var _=require(_0x3d95[1]);var util=require(_0x3d95[2]);var moment=require(_0x3d95[3]);var BPromise=require(_0x3d95[4]);var db=require(_0x3d95[6])[_0x3d95[5]];var utils=require(_0x3d95[7]);var logger=require(_0x3d95[9])(_0x3d95[8]);var jayson=require(_0x3d95[10]);var client=jayson[_0x3d95[12]][_0x3d95[11]]({port:9002});function respondWithRpcPromise(_0x246bxb,_0x246bxc,_0x246bxd){return  new BPromise(function(_0x246bxe,_0x246bxf){return client[_0x3d95[25]](_0x246bxb,_0x246bxd)[_0x3d95[24]](function(_0x246bx11){logger[_0x3d95[17]](_0x3d95[13],_0x246bxc,_0x3d95[16]);logger[_0x3d95[20]](_0x3d95[18],_0x246bxc,_0x3d95[16],JSON[_0x3d95[19]](_0x246bx11));if(_0x246bx11[_0x3d95[14]]){if(_0x246bx11[_0x3d95[14]][_0x3d95[21]]=== 500){logger[_0x3d95[14]](_0x3d95[13],_0x246bxc,_0x246bx11[_0x3d95[14]][_0x3d95[22]]);return _0x246bxf(_0x246bx11[_0x3d95[14]][_0x3d95[22]])};logger[_0x3d95[14]](_0x3d95[13],_0x246bxc,_0x246bx11[_0x3d95[14]][_0x3d95[22]]);return _0x246bxe(_0x246bx11[_0x3d95[14]][_0x3d95[22]])}else {logger[_0x3d95[17]](_0x3d95[13],_0x246bxc,_0x3d95[16]);_0x246bxe(_0x246bx11[_0x3d95[23]][_0x3d95[22]])}})[_0x3d95[15]](function(_0x246bx10){logger[_0x3d95[14]](_0x3d95[13],_0x246bxc,_0x246bx10);_0x246bxf(_0x246bx10)})})}
\ No newline at end of file
diff --git a/server/api/jscriptyProject/index.js b/server/api/jscriptyProject/index.js
new file mode 100644 (file)
index 0000000..3c4dd2b
--- /dev/null
@@ -0,0 +1 @@
+var _0xdc7b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xdc7b[0];var multer=require(_0xdc7b[1]);var util=require(_0xdc7b[2]);var path=require(_0xdc7b[3]);var express=require(_0xdc7b[4]);var router=express.Router();var auth=require(_0xdc7b[5]);var config=require(_0xdc7b[6]);var controller=require(_0xdc7b[7]);router[_0xdc7b[11]](_0xdc7b[8],auth[_0xdc7b[9]](),controller[_0xdc7b[10]]);router[_0xdc7b[11]](_0xdc7b[12],auth[_0xdc7b[9]](),controller[_0xdc7b[13]]);router[_0xdc7b[15]](_0xdc7b[8],auth[_0xdc7b[9]](),controller[_0xdc7b[14]]);router[_0xdc7b[17]](_0xdc7b[12],auth[_0xdc7b[9]](),controller[_0xdc7b[16]]);router[_0xdc7b[19]](_0xdc7b[12],auth[_0xdc7b[9]](),controller[_0xdc7b[18]]);module[_0xdc7b[20]]= router
\ No newline at end of file
diff --git a/server/api/jscriptyProject/jscriptyProject.attributes.js b/server/api/jscriptyProject/jscriptyProject.attributes.js
new file mode 100644 (file)
index 0000000..c4bbb34
--- /dev/null
@@ -0,0 +1 @@
+var _0xe037=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x6C\x6F\x6E\x67","\x69\x73\x4F\x62\x6A\x65\x63\x74\x4C\x69\x6B\x65","\x66\x6F\x72\x6D\x44\x61\x74\x61","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x69\x73\x53\x74\x72\x69\x6E\x67","\x7B\x22\x6E\x61\x6D\x65\x22\x3A\x22\x25\x73\x22\x2C\x22\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x22\x3A\x22\x25\x73\x22\x2C\x22\x70\x61\x67\x65\x73\x22\x3A\x5B\x5D\x7D","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x66\x6F\x72\x6D\x61\x74"];_0xe037[0];var Sequelize=require(_0xe037[1]);var _=require(_0xe037[2]);var util=require(_0xe037[3]);module[_0xe037[4]]= {name:{type:Sequelize[_0xe037[5]],unique:_0xe037[6]},description:{type:Sequelize[_0xe037[5]]},formData:{type:Sequelize.TEXT(_0xe037[7]),set:function(_0xf3cdx4){if(_[_0xe037[8]](_0xf3cdx4)){this[_0xe037[11]](_0xe037[9],JSON[_0xe037[10]](_0xf3cdx4))}else {if(_[_0xe037[12]](_0xf3cdx4)){this[_0xe037[11]](_0xe037[9],_0xf3cdx4)}else {this[_0xe037[11]](_0xe037[9],util[_0xe037[17]](_0xe037[13],this[_0xe037[14]](_0xe037[6])|| _0xe037[15],this[_0xe037[14]](_0xe037[16])|| _0xe037[15]))}}}}}
\ No newline at end of file
diff --git a/server/api/jscriptyProject/jscriptyProject.controller.js b/server/api/jscriptyProject/jscriptyProject.controller.js
new file mode 100644 (file)
index 0000000..ce4493b
--- /dev/null
@@ -0,0 +1 @@
+var _0x5564=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x5564[0];var jsonpatch=require(_0x5564[1]);var rp=require(_0x5564[2]);var moment=require(_0x5564[3]);var BPromise=require(_0x5564[4]);var util=require(_0x5564[5]);var path=require(_0x5564[6]);var sox=require(_0x5564[7]);var ejs=require(_0x5564[8]);var fs=require(_0x5564[9]);var _=require(_0x5564[10]);var squel=require(_0x5564[11]);var crypto=require(_0x5564[12]);var jsforce=require(_0x5564[13]);var toCsv=require(_0x5564[14]);var qs=require(_0x5564[15]);var logger=require(_0x5564[17])(_0x5564[16]);var utils=require(_0x5564[18]);var config=require(_0x5564[19]);var db=require(_0x5564[21])[_0x5564[20]];function respondWithStatusCode(_0xb4ebx15,_0xb4ebx16,_0xb4ebx17){_0xb4ebx16= _0xb4ebx16|| 204;return function(_0xb4ebx18){if(_0xb4ebx18){logger[_0x5564[24]](_0x5564[22],_0xb4ebx17,_0xb4ebx16,_0x5564[23]);logger[_0x5564[26]](_0x5564[25],_0xb4ebx17,_0xb4ebx16,_0x5564[23]);return _0xb4ebx15[_0x5564[27]](_0xb4ebx16)};return _0xb4ebx15[_0x5564[29]](304)[_0x5564[28]]()}}function respondWithResult(_0xb4ebx15,_0xb4ebx16,_0xb4ebx17){_0xb4ebx16= _0xb4ebx16|| 200;return function(_0xb4ebx18){if(_0xb4ebx18){logger[_0x5564[24]](_0x5564[22],_0xb4ebx17,_0xb4ebx16,_0x5564[30]);logger[_0x5564[26]](_0x5564[25],_0xb4ebx17,_0xb4ebx16,_0x5564[30],JSON[_0x5564[31]](_0xb4ebx18));return _0xb4ebx15[_0x5564[29]](_0xb4ebx16)[_0x5564[32]](_0xb4ebx18)};return _0xb4ebx15[_0x5564[29]](304)[_0x5564[28]]()}}function respondWithFilteredResult(_0xb4ebx15,_0xb4ebx1b,_0xb4ebx17){return function(_0xb4ebx18){if(_0xb4ebx18){var _0xb4ebx1c=_0xb4ebx18[_0x5564[33]],_0xb4ebx1d=_0xb4ebx1b[_0x5564[34]],_0xb4ebx1e=_0xb4ebx1b[_0x5564[34]]+ _0xb4ebx1b[_0x5564[35]],_0xb4ebx16;if(_0xb4ebx1e>= _0xb4ebx1c){_0xb4ebx1e= _0xb4ebx1c;_0xb4ebx16= 200}else {_0xb4ebx16= 206};_0xb4ebx15[_0x5564[29]](_0xb4ebx16);logger[_0x5564[24]](_0x5564[22],_0xb4ebx17,_0xb4ebx16,_0x5564[36]);logger[_0x5564[26]](_0x5564[25],_0xb4ebx17,_0xb4ebx16,_0x5564[30],JSON[_0x5564[31]](_0xb4ebx18));return _0xb4ebx15[_0x5564[40]](_0x5564[37],_0xb4ebx1d+ _0x5564[38]+ _0xb4ebx1e+ _0x5564[39]+ _0xb4ebx1c)[_0x5564[32]](_0xb4ebx18)};return null}}function patchUpdates(_0xb4ebx20){return function(_0xb4ebx18){try{jsonpatch[_0x5564[41]](_0xb4ebx18,_0xb4ebx20,true)}catch(err){return BPromise[_0x5564[42]](err)};return _0xb4ebx18[_0x5564[43]]()}}function saveUpdates(_0xb4ebx22,_0xb4ebx16,_0xb4ebx17){return function(_0xb4ebx18){if(_0xb4ebx18){return _0xb4ebx18[_0x5564[46]](_0xb4ebx22)[_0x5564[45]](function(_0xb4ebx23){logger[_0x5564[24]](_0x5564[22],_0xb4ebx17,_0xb4ebx16,_0x5564[44]);logger[_0x5564[26]](_0x5564[25],_0xb4ebx17,_0xb4ebx16,_0x5564[44],JSON[_0x5564[31]](_0xb4ebx18));return _0xb4ebx23})};return null}}function removeEntity(_0xb4ebx15,_0xb4ebx16,_0xb4ebx17){return function(_0xb4ebx18){if(_0xb4ebx18){return _0xb4ebx18[_0x5564[48]]()[_0x5564[45]](function(){logger[_0x5564[24]](_0x5564[22],_0xb4ebx17,_0xb4ebx16,_0x5564[47]);logger[_0x5564[26]](_0x5564[25],_0xb4ebx17,_0xb4ebx16,_0x5564[47],JSON[_0x5564[31]](_0xb4ebx18));_0xb4ebx15[_0x5564[29]](204)[_0x5564[28]]()})}}}function handleEntityNotFound(_0xb4ebx15,_0xb4ebx16,_0xb4ebx17){return function(_0xb4ebx18){if(!_0xb4ebx18){logger[_0x5564[50]](_0x5564[22],_0xb4ebx17,404,_0x5564[49]);_0xb4ebx15[_0x5564[29]](404)[_0x5564[28]]();return null};return _0xb4ebx18}}function handleError(_0xb4ebx15,_0xb4ebx16,_0xb4ebx17){_0xb4ebx16= _0xb4ebx16|| 500;return function(_0xb4ebx27){logger[_0x5564[50]](_0x5564[22],_0xb4ebx17,_0xb4ebx16,JSON[_0x5564[31]](_0xb4ebx27));delete _0xb4ebx27[_0x5564[51]];_0xb4ebx15[_0x5564[29]](_0xb4ebx16)[_0x5564[52]](_0xb4ebx27)}}exports[_0x5564[53]]= function(_0xb4ebx28,_0xb4ebx15){var _0xb4ebx1b={},_0xb4ebx29={};_0xb4ebx29[_0x5564[54]]= _[_0x5564[57]](db[_0x5564[56]][_0x5564[55]]);_0xb4ebx29[_0x5564[58]]= _[_0x5564[57]](_0xb4ebx28[_0x5564[58]]);_0xb4ebx29[_0x5564[59]]= _[_0x5564[60]](_0xb4ebx29[_0x5564[54]],_0xb4ebx29[_0x5564[58]]);_0xb4ebx1b[_0x5564[61]]= _[_0x5564[60]](_0xb4ebx29[_0x5564[54]],qs[_0x5564[62]](_0xb4ebx28[_0x5564[58]][_0x5564[62]]));_0xb4ebx1b[_0x5564[61]]= (_0xb4ebx1b[_0x5564[61]][_0x5564[63]])?_0xb4ebx1b[_0x5564[61]]:_0xb4ebx29[_0x5564[54]];if(!_0xb4ebx28[_0x5564[58]][_0x5564[65]](_0x5564[64])){_0xb4ebx1b[_0x5564[35]]= qs[_0x5564[35]](_0xb4ebx28[_0x5564[58]][_0x5564[35]]);_0xb4ebx1b[_0x5564[34]]= qs[_0x5564[34]](_0xb4ebx28[_0x5564[58]][_0x5564[34]])};_0xb4ebx1b[_0x5564[66]]= qs[_0x5564[67]](_0xb4ebx28[_0x5564[58]][_0x5564[67]]);_0xb4ebx1b[_0x5564[68]]= qs[_0x5564[59]](_[_0x5564[69]](_0xb4ebx28[_0x5564[58]],_0xb4ebx29[_0x5564[59]]));if(_0xb4ebx28[_0x5564[58]][_0x5564[70]]){_0xb4ebx1b[_0x5564[68]]= _[_0x5564[73]](_0xb4ebx1b[_0x5564[68]],{$or:_[_0x5564[72]](_0xb4ebx1b[_0x5564[61]],function(_0xb4ebx2a){var _0xb4ebx2b={};_0xb4ebx2b[_0xb4ebx2a]= {$like:_0x5564[71]+ _0xb4ebx28[_0x5564[58]][_0x5564[70]]+ _0x5564[71]};return _0xb4ebx2b})})};_0xb4ebx1b= _[_0x5564[73]]({},_0xb4ebx1b,_0xb4ebx28[_0x5564[74]]);return db[_0x5564[56]][_0x5564[76]](_0xb4ebx1b)[_0x5564[45]](respondWithFilteredResult(_0xb4ebx15,_0xb4ebx1b,_0x5564[53]))[_0x5564[75]](handleError(_0xb4ebx15,null,_0x5564[53]))};exports[_0x5564[77]]= function(_0xb4ebx28,_0xb4ebx15){var _0xb4ebx1b={raw:true,where:{id:_0xb4ebx28[_0x5564[79]][_0x5564[78]]}},_0xb4ebx29={};_0xb4ebx29[_0x5564[54]]= _[_0x5564[57]](db[_0x5564[56]][_0x5564[55]]);_0xb4ebx29[_0x5564[58]]= _[_0x5564[57]](_0xb4ebx28[_0x5564[58]]);_0xb4ebx29[_0x5564[59]]= _[_0x5564[60]](_0xb4ebx29[_0x5564[54]],_0xb4ebx29[_0x5564[58]]);_0xb4ebx1b[_0x5564[61]]= _[_0x5564[60]](_0xb4ebx29[_0x5564[54]],qs[_0x5564[62]](_0xb4ebx28[_0x5564[58]][_0x5564[62]]));_0xb4ebx1b[_0x5564[61]]= (_0xb4ebx1b[_0x5564[61]][_0x5564[63]])?_0xb4ebx1b[_0x5564[61]]:_0xb4ebx29[_0x5564[54]];_0xb4ebx1b= _[_0x5564[73]]({},_0xb4ebx1b,_0xb4ebx28[_0x5564[74]]);return db[_0x5564[56]][_0x5564[80]](_0xb4ebx1b)[_0x5564[45]](handleEntityNotFound(_0xb4ebx15,null,_0x5564[77]))[_0x5564[45]](respondWithResult(_0xb4ebx15,null,_0x5564[77]))[_0x5564[75]](handleError(_0xb4ebx15,null,_0x5564[77]))};exports[_0x5564[81]]= function(_0xb4ebx28,_0xb4ebx15){return db[_0x5564[56]][_0x5564[81]](_0xb4ebx28[_0x5564[82]],{})[_0x5564[45]](respondWithResult(_0xb4ebx15,201,_0x5564[81]))[_0x5564[75]](handleError(_0xb4ebx15,null,_0x5564[81]))};exports[_0x5564[46]]= function(_0xb4ebx28,_0xb4ebx15){if(_0xb4ebx28[_0x5564[82]][_0x5564[78]]){delete _0xb4ebx28[_0x5564[82]][_0x5564[78]]};return db[_0x5564[56]][_0x5564[80]]({where:{id:_0xb4ebx28[_0x5564[79]][_0x5564[78]]}})[_0x5564[45]](handleEntityNotFound(_0xb4ebx15,null,_0x5564[46]))[_0x5564[45]](saveUpdates(_0xb4ebx28[_0x5564[82]],null,_0x5564[46]))[_0x5564[45]](respondWithResult(_0xb4ebx15,null,_0x5564[46]))[_0x5564[75]](handleError(_0xb4ebx15,null,_0x5564[46]))};exports[_0x5564[48]]= function(_0xb4ebx28,_0xb4ebx15){return db[_0x5564[56]][_0x5564[80]]({where:{id:_0xb4ebx28[_0x5564[79]][_0x5564[78]]}})[_0x5564[45]](handleEntityNotFound(_0xb4ebx15,null,_0x5564[48]))[_0x5564[45]](removeEntity(_0xb4ebx15,null,_0x5564[48]))[_0x5564[75]](handleError(_0xb4ebx15,null,_0x5564[48]))}
\ No newline at end of file
diff --git a/server/api/jscriptyProject/jscriptyProject.model.js b/server/api/jscriptyProject/jscriptyProject.model.js
new file mode 100644 (file)
index 0000000..d1ac5b7
--- /dev/null
@@ -0,0 +1 @@
+var _0x140b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x140b[0];var _=require(_0x140b[1]);var util=require(_0x140b[2]);var logger=require(_0x140b[4])(_0x140b[3]);var attributes=require(_0x140b[5]);module[_0x140b[6]]= function(_0xce24x5,_0xce24x6){return _0xce24x5[_0x140b[9]](_0x140b[7],attributes,{tableName:_0x140b[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/jscriptyProject/jscriptyProject.rpc.js b/server/api/jscriptyProject/jscriptyProject.rpc.js
new file mode 100644 (file)
index 0000000..4c2fb43
--- /dev/null
@@ -0,0 +1 @@
+var _0x1f95=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1f95[0];var _=require(_0x1f95[1]);var util=require(_0x1f95[2]);var moment=require(_0x1f95[3]);var BPromise=require(_0x1f95[4]);var db=require(_0x1f95[6])[_0x1f95[5]];var utils=require(_0x1f95[7]);var logger=require(_0x1f95[9])(_0x1f95[8]);var jayson=require(_0x1f95[10]);var client=jayson[_0x1f95[12]][_0x1f95[11]]({port:9002});function respondWithRpcPromise(_0x7a6bxb,_0x7a6bxc,_0x7a6bxd){return  new BPromise(function(_0x7a6bxe,_0x7a6bxf){return client[_0x1f95[25]](_0x7a6bxb,_0x7a6bxd)[_0x1f95[24]](function(_0x7a6bx11){logger[_0x1f95[17]](_0x1f95[13],_0x7a6bxc,_0x1f95[16]);logger[_0x1f95[20]](_0x1f95[18],_0x7a6bxc,_0x1f95[16],JSON[_0x1f95[19]](_0x7a6bx11));if(_0x7a6bx11[_0x1f95[14]]){if(_0x7a6bx11[_0x1f95[14]][_0x1f95[21]]=== 500){logger[_0x1f95[14]](_0x1f95[13],_0x7a6bxc,_0x7a6bx11[_0x1f95[14]][_0x1f95[22]]);return _0x7a6bxf(_0x7a6bx11[_0x1f95[14]][_0x1f95[22]])};logger[_0x1f95[14]](_0x1f95[13],_0x7a6bxc,_0x7a6bx11[_0x1f95[14]][_0x1f95[22]]);return _0x7a6bxe(_0x7a6bx11[_0x1f95[14]][_0x1f95[22]])}else {logger[_0x1f95[17]](_0x1f95[13],_0x7a6bxc,_0x1f95[16]);_0x7a6bxe(_0x7a6bx11[_0x1f95[23]][_0x1f95[22]])}})[_0x1f95[15]](function(_0x7a6bx10){logger[_0x1f95[14]](_0x1f95[13],_0x7a6bxc,_0x7a6bx10);_0x7a6bxf(_0x7a6bx10)})})}
\ No newline at end of file
diff --git a/server/api/jscriptyQuestionReport/index.js b/server/api/jscriptyQuestionReport/index.js
new file mode 100644 (file)
index 0000000..54def71
--- /dev/null
@@ -0,0 +1 @@
+var _0x7cb1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7cb1[0];var multer=require(_0x7cb1[1]);var util=require(_0x7cb1[2]);var path=require(_0x7cb1[3]);var express=require(_0x7cb1[4]);var router=express.Router();var auth=require(_0x7cb1[5]);var config=require(_0x7cb1[6]);var controller=require(_0x7cb1[7]);router[_0x7cb1[11]](_0x7cb1[8],auth[_0x7cb1[9]](),controller[_0x7cb1[10]]);router[_0x7cb1[11]](_0x7cb1[12],auth[_0x7cb1[9]](),controller[_0x7cb1[13]]);router[_0x7cb1[15]](_0x7cb1[8],auth[_0x7cb1[9]](),controller[_0x7cb1[14]]);router[_0x7cb1[17]](_0x7cb1[12],auth[_0x7cb1[9]](),controller[_0x7cb1[16]]);router[_0x7cb1[19]](_0x7cb1[12],auth[_0x7cb1[9]](),controller[_0x7cb1[18]]);module[_0x7cb1[20]]= router
\ No newline at end of file
diff --git a/server/api/jscriptyQuestionReport/jscriptyQuestionReport.attributes.js b/server/api/jscriptyQuestionReport/jscriptyQuestionReport.attributes.js
new file mode 100644 (file)
index 0000000..cae8171
--- /dev/null
@@ -0,0 +1 @@
+var _0xa628=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xa628[0];var Sequelize=require(_0xa628[1]);module[_0xa628[2]]= {question:{type:Sequelize[_0xa628[3]]},answer:{type:Sequelize[_0xa628[3]]},membername:{type:Sequelize[_0xa628[3]]},projectname:{type:Sequelize[_0xa628[3]]},queue:{type:Sequelize[_0xa628[3]]},uniqueid:{type:Sequelize[_0xa628[3]]},calleridname:{type:Sequelize[_0xa628[3]]},calleridnum:{type:Sequelize[_0xa628[3]]}}
\ No newline at end of file
diff --git a/server/api/jscriptyQuestionReport/jscriptyQuestionReport.controller.js b/server/api/jscriptyQuestionReport/jscriptyQuestionReport.controller.js
new file mode 100644 (file)
index 0000000..3955e94
--- /dev/null
@@ -0,0 +1 @@
+var _0x494f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x494f[0];var jsonpatch=require(_0x494f[1]);var rp=require(_0x494f[2]);var moment=require(_0x494f[3]);var BPromise=require(_0x494f[4]);var util=require(_0x494f[5]);var path=require(_0x494f[6]);var sox=require(_0x494f[7]);var ejs=require(_0x494f[8]);var fs=require(_0x494f[9]);var _=require(_0x494f[10]);var squel=require(_0x494f[11]);var crypto=require(_0x494f[12]);var jsforce=require(_0x494f[13]);var toCsv=require(_0x494f[14]);var qs=require(_0x494f[15]);var logger=require(_0x494f[17])(_0x494f[16]);var utils=require(_0x494f[18]);var config=require(_0x494f[19]);var db=require(_0x494f[21])[_0x494f[20]];function respondWithStatusCode(_0x66c7x15,_0x66c7x16,_0x66c7x17){_0x66c7x16= _0x66c7x16|| 204;return function(_0x66c7x18){if(_0x66c7x18){logger[_0x494f[24]](_0x494f[22],_0x66c7x17,_0x66c7x16,_0x494f[23]);logger[_0x494f[26]](_0x494f[25],_0x66c7x17,_0x66c7x16,_0x494f[23]);return _0x66c7x15[_0x494f[27]](_0x66c7x16)};return _0x66c7x15[_0x494f[29]](304)[_0x494f[28]]()}}function respondWithResult(_0x66c7x15,_0x66c7x16,_0x66c7x17){_0x66c7x16= _0x66c7x16|| 200;return function(_0x66c7x18){if(_0x66c7x18){logger[_0x494f[24]](_0x494f[22],_0x66c7x17,_0x66c7x16,_0x494f[30]);logger[_0x494f[26]](_0x494f[25],_0x66c7x17,_0x66c7x16,_0x494f[30],JSON[_0x494f[31]](_0x66c7x18));return _0x66c7x15[_0x494f[29]](_0x66c7x16)[_0x494f[32]](_0x66c7x18)};return _0x66c7x15[_0x494f[29]](304)[_0x494f[28]]()}}function respondWithFilteredResult(_0x66c7x15,_0x66c7x1b,_0x66c7x17){return function(_0x66c7x18){if(_0x66c7x18){var _0x66c7x1c=_0x66c7x18[_0x494f[33]],_0x66c7x1d=_0x66c7x1b[_0x494f[34]],_0x66c7x1e=_0x66c7x1b[_0x494f[34]]+ _0x66c7x1b[_0x494f[35]],_0x66c7x16;if(_0x66c7x1e>= _0x66c7x1c){_0x66c7x1e= _0x66c7x1c;_0x66c7x16= 200}else {_0x66c7x16= 206};_0x66c7x15[_0x494f[29]](_0x66c7x16);logger[_0x494f[24]](_0x494f[22],_0x66c7x17,_0x66c7x16,_0x494f[36]);logger[_0x494f[26]](_0x494f[25],_0x66c7x17,_0x66c7x16,_0x494f[30],JSON[_0x494f[31]](_0x66c7x18));return _0x66c7x15[_0x494f[40]](_0x494f[37],_0x66c7x1d+ _0x494f[38]+ _0x66c7x1e+ _0x494f[39]+ _0x66c7x1c)[_0x494f[32]](_0x66c7x18)};return null}}function patchUpdates(_0x66c7x20){return function(_0x66c7x18){try{jsonpatch[_0x494f[41]](_0x66c7x18,_0x66c7x20,true)}catch(err){return BPromise[_0x494f[42]](err)};return _0x66c7x18[_0x494f[43]]()}}function saveUpdates(_0x66c7x22,_0x66c7x16,_0x66c7x17){return function(_0x66c7x18){if(_0x66c7x18){return _0x66c7x18[_0x494f[46]](_0x66c7x22)[_0x494f[45]](function(_0x66c7x23){logger[_0x494f[24]](_0x494f[22],_0x66c7x17,_0x66c7x16,_0x494f[44]);logger[_0x494f[26]](_0x494f[25],_0x66c7x17,_0x66c7x16,_0x494f[44],JSON[_0x494f[31]](_0x66c7x18));return _0x66c7x23})};return null}}function removeEntity(_0x66c7x15,_0x66c7x16,_0x66c7x17){return function(_0x66c7x18){if(_0x66c7x18){return _0x66c7x18[_0x494f[48]]()[_0x494f[45]](function(){logger[_0x494f[24]](_0x494f[22],_0x66c7x17,_0x66c7x16,_0x494f[47]);logger[_0x494f[26]](_0x494f[25],_0x66c7x17,_0x66c7x16,_0x494f[47],JSON[_0x494f[31]](_0x66c7x18));_0x66c7x15[_0x494f[29]](204)[_0x494f[28]]()})}}}function handleEntityNotFound(_0x66c7x15,_0x66c7x16,_0x66c7x17){return function(_0x66c7x18){if(!_0x66c7x18){logger[_0x494f[50]](_0x494f[22],_0x66c7x17,404,_0x494f[49]);_0x66c7x15[_0x494f[29]](404)[_0x494f[28]]();return null};return _0x66c7x18}}function handleError(_0x66c7x15,_0x66c7x16,_0x66c7x17){_0x66c7x16= _0x66c7x16|| 500;return function(_0x66c7x27){logger[_0x494f[50]](_0x494f[22],_0x66c7x17,_0x66c7x16,JSON[_0x494f[31]](_0x66c7x27));delete _0x66c7x27[_0x494f[51]];_0x66c7x15[_0x494f[29]](_0x66c7x16)[_0x494f[52]](_0x66c7x27)}}exports[_0x494f[53]]= function(_0x66c7x28,_0x66c7x15){var _0x66c7x1b={},_0x66c7x29={};_0x66c7x29[_0x494f[54]]= _[_0x494f[57]](db[_0x494f[56]][_0x494f[55]]);_0x66c7x29[_0x494f[58]]= _[_0x494f[57]](_0x66c7x28[_0x494f[58]]);_0x66c7x29[_0x494f[59]]= _[_0x494f[60]](_0x66c7x29[_0x494f[54]],_0x66c7x29[_0x494f[58]]);_0x66c7x1b[_0x494f[61]]= _[_0x494f[60]](_0x66c7x29[_0x494f[54]],qs[_0x494f[62]](_0x66c7x28[_0x494f[58]][_0x494f[62]]));_0x66c7x1b[_0x494f[61]]= (_0x66c7x1b[_0x494f[61]][_0x494f[63]])?_0x66c7x1b[_0x494f[61]]:_0x66c7x29[_0x494f[54]];if(!_0x66c7x28[_0x494f[58]][_0x494f[65]](_0x494f[64])){_0x66c7x1b[_0x494f[35]]= qs[_0x494f[35]](_0x66c7x28[_0x494f[58]][_0x494f[35]]);_0x66c7x1b[_0x494f[34]]= qs[_0x494f[34]](_0x66c7x28[_0x494f[58]][_0x494f[34]])};_0x66c7x1b[_0x494f[66]]= qs[_0x494f[67]](_0x66c7x28[_0x494f[58]][_0x494f[67]]);_0x66c7x1b[_0x494f[68]]= qs[_0x494f[59]](_[_0x494f[69]](_0x66c7x28[_0x494f[58]],_0x66c7x29[_0x494f[59]]));if(_0x66c7x28[_0x494f[58]][_0x494f[70]]){_0x66c7x1b[_0x494f[68]]= _[_0x494f[73]](_0x66c7x1b[_0x494f[68]],{$or:_[_0x494f[72]](_0x66c7x1b[_0x494f[61]],function(_0x66c7x2a){var _0x66c7x2b={};_0x66c7x2b[_0x66c7x2a]= {$like:_0x494f[71]+ _0x66c7x28[_0x494f[58]][_0x494f[70]]+ _0x494f[71]};return _0x66c7x2b})})};_0x66c7x1b= _[_0x494f[73]]({},_0x66c7x1b,_0x66c7x28[_0x494f[74]]);return db[_0x494f[56]][_0x494f[76]](_0x66c7x1b)[_0x494f[45]](respondWithFilteredResult(_0x66c7x15,_0x66c7x1b,_0x494f[53]))[_0x494f[75]](handleError(_0x66c7x15,null,_0x494f[53]))};exports[_0x494f[77]]= function(_0x66c7x28,_0x66c7x15){var _0x66c7x1b={raw:true,where:{id:_0x66c7x28[_0x494f[79]][_0x494f[78]]}},_0x66c7x29={};_0x66c7x29[_0x494f[54]]= _[_0x494f[57]](db[_0x494f[56]][_0x494f[55]]);_0x66c7x29[_0x494f[58]]= _[_0x494f[57]](_0x66c7x28[_0x494f[58]]);_0x66c7x29[_0x494f[59]]= _[_0x494f[60]](_0x66c7x29[_0x494f[54]],_0x66c7x29[_0x494f[58]]);_0x66c7x1b[_0x494f[61]]= _[_0x494f[60]](_0x66c7x29[_0x494f[54]],qs[_0x494f[62]](_0x66c7x28[_0x494f[58]][_0x494f[62]]));_0x66c7x1b[_0x494f[61]]= (_0x66c7x1b[_0x494f[61]][_0x494f[63]])?_0x66c7x1b[_0x494f[61]]:_0x66c7x29[_0x494f[54]];_0x66c7x1b= _[_0x494f[73]]({},_0x66c7x1b,_0x66c7x28[_0x494f[74]]);return db[_0x494f[56]][_0x494f[80]](_0x66c7x1b)[_0x494f[45]](handleEntityNotFound(_0x66c7x15,null,_0x494f[77]))[_0x494f[45]](respondWithResult(_0x66c7x15,null,_0x494f[77]))[_0x494f[75]](handleError(_0x66c7x15,null,_0x494f[77]))};exports[_0x494f[81]]= function(_0x66c7x28,_0x66c7x15){return db[_0x494f[56]][_0x494f[81]](_0x66c7x28[_0x494f[82]],{})[_0x494f[45]](respondWithResult(_0x66c7x15,201,_0x494f[81]))[_0x494f[75]](handleError(_0x66c7x15,null,_0x494f[81]))};exports[_0x494f[46]]= function(_0x66c7x28,_0x66c7x15){if(_0x66c7x28[_0x494f[82]][_0x494f[78]]){delete _0x66c7x28[_0x494f[82]][_0x494f[78]]};return db[_0x494f[56]][_0x494f[80]]({where:{id:_0x66c7x28[_0x494f[79]][_0x494f[78]]}})[_0x494f[45]](handleEntityNotFound(_0x66c7x15,null,_0x494f[46]))[_0x494f[45]](saveUpdates(_0x66c7x28[_0x494f[82]],null,_0x494f[46]))[_0x494f[45]](respondWithResult(_0x66c7x15,null,_0x494f[46]))[_0x494f[75]](handleError(_0x66c7x15,null,_0x494f[46]))};exports[_0x494f[48]]= function(_0x66c7x28,_0x66c7x15){return db[_0x494f[56]][_0x494f[80]]({where:{id:_0x66c7x28[_0x494f[79]][_0x494f[78]]}})[_0x494f[45]](handleEntityNotFound(_0x66c7x15,null,_0x494f[48]))[_0x494f[45]](removeEntity(_0x66c7x15,null,_0x494f[48]))[_0x494f[75]](handleError(_0x66c7x15,null,_0x494f[48]))}
\ No newline at end of file
diff --git a/server/api/jscriptyQuestionReport/jscriptyQuestionReport.model.js b/server/api/jscriptyQuestionReport/jscriptyQuestionReport.model.js
new file mode 100644 (file)
index 0000000..09f7f63
--- /dev/null
@@ -0,0 +1 @@
+var _0x9ba9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x9ba9[0];var _=require(_0x9ba9[1]);var util=require(_0x9ba9[2]);var logger=require(_0x9ba9[4])(_0x9ba9[3]);var attributes=require(_0x9ba9[5]);module[_0x9ba9[6]]= function(_0x8976x5,_0x8976x6){return _0x8976x5[_0x9ba9[9]](_0x9ba9[7],attributes,{tableName:_0x9ba9[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/jscriptyQuestionReport/jscriptyQuestionReport.rpc.js b/server/api/jscriptyQuestionReport/jscriptyQuestionReport.rpc.js
new file mode 100644 (file)
index 0000000..df24493
--- /dev/null
@@ -0,0 +1 @@
+var _0xd946=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd946[0];var _=require(_0xd946[1]);var util=require(_0xd946[2]);var moment=require(_0xd946[3]);var BPromise=require(_0xd946[4]);var db=require(_0xd946[6])[_0xd946[5]];var utils=require(_0xd946[7]);var logger=require(_0xd946[9])(_0xd946[8]);var jayson=require(_0xd946[10]);var client=jayson[_0xd946[12]][_0xd946[11]]({port:9002});function respondWithRpcPromise(_0x7ee2xb,_0x7ee2xc,_0x7ee2xd){return  new BPromise(function(_0x7ee2xe,_0x7ee2xf){return client[_0xd946[25]](_0x7ee2xb,_0x7ee2xd)[_0xd946[24]](function(_0x7ee2x11){logger[_0xd946[17]](_0xd946[13],_0x7ee2xc,_0xd946[16]);logger[_0xd946[20]](_0xd946[18],_0x7ee2xc,_0xd946[16],JSON[_0xd946[19]](_0x7ee2x11));if(_0x7ee2x11[_0xd946[14]]){if(_0x7ee2x11[_0xd946[14]][_0xd946[21]]=== 500){logger[_0xd946[14]](_0xd946[13],_0x7ee2xc,_0x7ee2x11[_0xd946[14]][_0xd946[22]]);return _0x7ee2xf(_0x7ee2x11[_0xd946[14]][_0xd946[22]])};logger[_0xd946[14]](_0xd946[13],_0x7ee2xc,_0x7ee2x11[_0xd946[14]][_0xd946[22]]);return _0x7ee2xe(_0x7ee2x11[_0xd946[14]][_0xd946[22]])}else {logger[_0xd946[17]](_0xd946[13],_0x7ee2xc,_0xd946[16]);_0x7ee2xe(_0x7ee2x11[_0xd946[23]][_0xd946[22]])}})[_0xd946[15]](function(_0x7ee2x10){logger[_0xd946[14]](_0xd946[13],_0x7ee2xc,_0x7ee2x10);_0x7ee2xf(_0x7ee2x10)})})}
\ No newline at end of file
diff --git a/server/api/jscriptySessionReport/index.js b/server/api/jscriptySessionReport/index.js
new file mode 100644 (file)
index 0000000..09d70bb
--- /dev/null
@@ -0,0 +1 @@
+var _0x9e76=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9e76[0];var multer=require(_0x9e76[1]);var util=require(_0x9e76[2]);var path=require(_0x9e76[3]);var express=require(_0x9e76[4]);var router=express.Router();var auth=require(_0x9e76[5]);var config=require(_0x9e76[6]);var controller=require(_0x9e76[7]);router[_0x9e76[11]](_0x9e76[8],auth[_0x9e76[9]](),controller[_0x9e76[10]]);router[_0x9e76[11]](_0x9e76[12],auth[_0x9e76[9]](),controller[_0x9e76[13]]);router[_0x9e76[15]](_0x9e76[8],auth[_0x9e76[9]](),controller[_0x9e76[14]]);router[_0x9e76[17]](_0x9e76[12],auth[_0x9e76[9]](),controller[_0x9e76[16]]);router[_0x9e76[19]](_0x9e76[12],auth[_0x9e76[9]](),controller[_0x9e76[18]]);module[_0x9e76[20]]= router
\ No newline at end of file
diff --git a/server/api/jscriptySessionReport/jscriptySessionReport.attributes.js b/server/api/jscriptySessionReport/jscriptySessionReport.attributes.js
new file mode 100644 (file)
index 0000000..7356aea
--- /dev/null
@@ -0,0 +1 @@
+var _0x4843=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x44\x41\x54\x45","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x53\x54\x52\x49\x4E\x47"];_0x4843[0];var moment=require(_0x4843[1]);var Sequelize=require(_0x4843[2]);module[_0x4843[3]]= {starttime:{type:Sequelize[_0x4843[4]],set:function(_0x6f44x3){this[_0x4843[6]](_0x4843[5],_0x6f44x3);this[_0x4843[6]](_0x4843[7],moment()[_0x4843[9]](_0x4843[8]))}},endtime:{type:Sequelize[_0x4843[4]]},membername:{type:Sequelize[_0x4843[10]]},projectname:{type:Sequelize[_0x4843[10]]},queue:{type:Sequelize[_0x4843[10]]},uniqueid:{type:Sequelize[_0x4843[10]]},calleridname:{type:Sequelize[_0x4843[10]]},calleridnum:{type:Sequelize[_0x4843[10]]}}
\ No newline at end of file
diff --git a/server/api/jscriptySessionReport/jscriptySessionReport.controller.js b/server/api/jscriptySessionReport/jscriptySessionReport.controller.js
new file mode 100644 (file)
index 0000000..ff3f170
--- /dev/null
@@ -0,0 +1 @@
+var _0x9aca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x9aca[0];var jsonpatch=require(_0x9aca[1]);var rp=require(_0x9aca[2]);var moment=require(_0x9aca[3]);var BPromise=require(_0x9aca[4]);var util=require(_0x9aca[5]);var path=require(_0x9aca[6]);var sox=require(_0x9aca[7]);var ejs=require(_0x9aca[8]);var fs=require(_0x9aca[9]);var _=require(_0x9aca[10]);var squel=require(_0x9aca[11]);var crypto=require(_0x9aca[12]);var jsforce=require(_0x9aca[13]);var toCsv=require(_0x9aca[14]);var qs=require(_0x9aca[15]);var logger=require(_0x9aca[17])(_0x9aca[16]);var utils=require(_0x9aca[18]);var config=require(_0x9aca[19]);var db=require(_0x9aca[21])[_0x9aca[20]];function respondWithStatusCode(_0x278bx15,_0x278bx16,_0x278bx17){_0x278bx16= _0x278bx16|| 204;return function(_0x278bx18){if(_0x278bx18){logger[_0x9aca[24]](_0x9aca[22],_0x278bx17,_0x278bx16,_0x9aca[23]);logger[_0x9aca[26]](_0x9aca[25],_0x278bx17,_0x278bx16,_0x9aca[23]);return _0x278bx15[_0x9aca[27]](_0x278bx16)};return _0x278bx15[_0x9aca[29]](304)[_0x9aca[28]]()}}function respondWithResult(_0x278bx15,_0x278bx16,_0x278bx17){_0x278bx16= _0x278bx16|| 200;return function(_0x278bx18){if(_0x278bx18){logger[_0x9aca[24]](_0x9aca[22],_0x278bx17,_0x278bx16,_0x9aca[30]);logger[_0x9aca[26]](_0x9aca[25],_0x278bx17,_0x278bx16,_0x9aca[30],JSON[_0x9aca[31]](_0x278bx18));return _0x278bx15[_0x9aca[29]](_0x278bx16)[_0x9aca[32]](_0x278bx18)};return _0x278bx15[_0x9aca[29]](304)[_0x9aca[28]]()}}function respondWithFilteredResult(_0x278bx15,_0x278bx1b,_0x278bx17){return function(_0x278bx18){if(_0x278bx18){var _0x278bx1c=_0x278bx18[_0x9aca[33]],_0x278bx1d=_0x278bx1b[_0x9aca[34]],_0x278bx1e=_0x278bx1b[_0x9aca[34]]+ _0x278bx1b[_0x9aca[35]],_0x278bx16;if(_0x278bx1e>= _0x278bx1c){_0x278bx1e= _0x278bx1c;_0x278bx16= 200}else {_0x278bx16= 206};_0x278bx15[_0x9aca[29]](_0x278bx16);logger[_0x9aca[24]](_0x9aca[22],_0x278bx17,_0x278bx16,_0x9aca[36]);logger[_0x9aca[26]](_0x9aca[25],_0x278bx17,_0x278bx16,_0x9aca[30],JSON[_0x9aca[31]](_0x278bx18));return _0x278bx15[_0x9aca[40]](_0x9aca[37],_0x278bx1d+ _0x9aca[38]+ _0x278bx1e+ _0x9aca[39]+ _0x278bx1c)[_0x9aca[32]](_0x278bx18)};return null}}function patchUpdates(_0x278bx20){return function(_0x278bx18){try{jsonpatch[_0x9aca[41]](_0x278bx18,_0x278bx20,true)}catch(err){return BPromise[_0x9aca[42]](err)};return _0x278bx18[_0x9aca[43]]()}}function saveUpdates(_0x278bx22,_0x278bx16,_0x278bx17){return function(_0x278bx18){if(_0x278bx18){return _0x278bx18[_0x9aca[46]](_0x278bx22)[_0x9aca[45]](function(_0x278bx23){logger[_0x9aca[24]](_0x9aca[22],_0x278bx17,_0x278bx16,_0x9aca[44]);logger[_0x9aca[26]](_0x9aca[25],_0x278bx17,_0x278bx16,_0x9aca[44],JSON[_0x9aca[31]](_0x278bx18));return _0x278bx23})};return null}}function removeEntity(_0x278bx15,_0x278bx16,_0x278bx17){return function(_0x278bx18){if(_0x278bx18){return _0x278bx18[_0x9aca[48]]()[_0x9aca[45]](function(){logger[_0x9aca[24]](_0x9aca[22],_0x278bx17,_0x278bx16,_0x9aca[47]);logger[_0x9aca[26]](_0x9aca[25],_0x278bx17,_0x278bx16,_0x9aca[47],JSON[_0x9aca[31]](_0x278bx18));_0x278bx15[_0x9aca[29]](204)[_0x9aca[28]]()})}}}function handleEntityNotFound(_0x278bx15,_0x278bx16,_0x278bx17){return function(_0x278bx18){if(!_0x278bx18){logger[_0x9aca[50]](_0x9aca[22],_0x278bx17,404,_0x9aca[49]);_0x278bx15[_0x9aca[29]](404)[_0x9aca[28]]();return null};return _0x278bx18}}function handleError(_0x278bx15,_0x278bx16,_0x278bx17){_0x278bx16= _0x278bx16|| 500;return function(_0x278bx27){logger[_0x9aca[50]](_0x9aca[22],_0x278bx17,_0x278bx16,JSON[_0x9aca[31]](_0x278bx27));delete _0x278bx27[_0x9aca[51]];_0x278bx15[_0x9aca[29]](_0x278bx16)[_0x9aca[52]](_0x278bx27)}}exports[_0x9aca[53]]= function(_0x278bx28,_0x278bx15){var _0x278bx1b={},_0x278bx29={};_0x278bx29[_0x9aca[54]]= _[_0x9aca[57]](db[_0x9aca[56]][_0x9aca[55]]);_0x278bx29[_0x9aca[58]]= _[_0x9aca[57]](_0x278bx28[_0x9aca[58]]);_0x278bx29[_0x9aca[59]]= _[_0x9aca[60]](_0x278bx29[_0x9aca[54]],_0x278bx29[_0x9aca[58]]);_0x278bx1b[_0x9aca[61]]= _[_0x9aca[60]](_0x278bx29[_0x9aca[54]],qs[_0x9aca[62]](_0x278bx28[_0x9aca[58]][_0x9aca[62]]));_0x278bx1b[_0x9aca[61]]= (_0x278bx1b[_0x9aca[61]][_0x9aca[63]])?_0x278bx1b[_0x9aca[61]]:_0x278bx29[_0x9aca[54]];if(!_0x278bx28[_0x9aca[58]][_0x9aca[65]](_0x9aca[64])){_0x278bx1b[_0x9aca[35]]= qs[_0x9aca[35]](_0x278bx28[_0x9aca[58]][_0x9aca[35]]);_0x278bx1b[_0x9aca[34]]= qs[_0x9aca[34]](_0x278bx28[_0x9aca[58]][_0x9aca[34]])};_0x278bx1b[_0x9aca[66]]= qs[_0x9aca[67]](_0x278bx28[_0x9aca[58]][_0x9aca[67]]);_0x278bx1b[_0x9aca[68]]= qs[_0x9aca[59]](_[_0x9aca[69]](_0x278bx28[_0x9aca[58]],_0x278bx29[_0x9aca[59]]));if(_0x278bx28[_0x9aca[58]][_0x9aca[70]]){_0x278bx1b[_0x9aca[68]]= _[_0x9aca[73]](_0x278bx1b[_0x9aca[68]],{$or:_[_0x9aca[72]](_0x278bx1b[_0x9aca[61]],function(_0x278bx2a){var _0x278bx2b={};_0x278bx2b[_0x278bx2a]= {$like:_0x9aca[71]+ _0x278bx28[_0x9aca[58]][_0x9aca[70]]+ _0x9aca[71]};return _0x278bx2b})})};_0x278bx1b= _[_0x9aca[73]]({},_0x278bx1b,_0x278bx28[_0x9aca[74]]);return db[_0x9aca[56]][_0x9aca[76]](_0x278bx1b)[_0x9aca[45]](respondWithFilteredResult(_0x278bx15,_0x278bx1b,_0x9aca[53]))[_0x9aca[75]](handleError(_0x278bx15,null,_0x9aca[53]))};exports[_0x9aca[77]]= function(_0x278bx28,_0x278bx15){var _0x278bx1b={raw:true,where:{id:_0x278bx28[_0x9aca[79]][_0x9aca[78]]}},_0x278bx29={};_0x278bx29[_0x9aca[54]]= _[_0x9aca[57]](db[_0x9aca[56]][_0x9aca[55]]);_0x278bx29[_0x9aca[58]]= _[_0x9aca[57]](_0x278bx28[_0x9aca[58]]);_0x278bx29[_0x9aca[59]]= _[_0x9aca[60]](_0x278bx29[_0x9aca[54]],_0x278bx29[_0x9aca[58]]);_0x278bx1b[_0x9aca[61]]= _[_0x9aca[60]](_0x278bx29[_0x9aca[54]],qs[_0x9aca[62]](_0x278bx28[_0x9aca[58]][_0x9aca[62]]));_0x278bx1b[_0x9aca[61]]= (_0x278bx1b[_0x9aca[61]][_0x9aca[63]])?_0x278bx1b[_0x9aca[61]]:_0x278bx29[_0x9aca[54]];_0x278bx1b= _[_0x9aca[73]]({},_0x278bx1b,_0x278bx28[_0x9aca[74]]);return db[_0x9aca[56]][_0x9aca[80]](_0x278bx1b)[_0x9aca[45]](handleEntityNotFound(_0x278bx15,null,_0x9aca[77]))[_0x9aca[45]](respondWithResult(_0x278bx15,null,_0x9aca[77]))[_0x9aca[75]](handleError(_0x278bx15,null,_0x9aca[77]))};exports[_0x9aca[81]]= function(_0x278bx28,_0x278bx15){return db[_0x9aca[56]][_0x9aca[81]](_0x278bx28[_0x9aca[82]],{})[_0x9aca[45]](respondWithResult(_0x278bx15,201,_0x9aca[81]))[_0x9aca[75]](handleError(_0x278bx15,null,_0x9aca[81]))};exports[_0x9aca[46]]= function(_0x278bx28,_0x278bx15){if(_0x278bx28[_0x9aca[82]][_0x9aca[78]]){delete _0x278bx28[_0x9aca[82]][_0x9aca[78]]};return db[_0x9aca[56]][_0x9aca[80]]({where:{id:_0x278bx28[_0x9aca[79]][_0x9aca[78]]}})[_0x9aca[45]](handleEntityNotFound(_0x278bx15,null,_0x9aca[46]))[_0x9aca[45]](saveUpdates(_0x278bx28[_0x9aca[82]],null,_0x9aca[46]))[_0x9aca[45]](respondWithResult(_0x278bx15,null,_0x9aca[46]))[_0x9aca[75]](handleError(_0x278bx15,null,_0x9aca[46]))};exports[_0x9aca[48]]= function(_0x278bx28,_0x278bx15){return db[_0x9aca[56]][_0x9aca[80]]({where:{id:_0x278bx28[_0x9aca[79]][_0x9aca[78]]}})[_0x9aca[45]](handleEntityNotFound(_0x278bx15,null,_0x9aca[48]))[_0x9aca[45]](removeEntity(_0x278bx15,null,_0x9aca[48]))[_0x9aca[75]](handleError(_0x278bx15,null,_0x9aca[48]))}
\ No newline at end of file
diff --git a/server/api/jscriptySessionReport/jscriptySessionReport.model.js b/server/api/jscriptySessionReport/jscriptySessionReport.model.js
new file mode 100644 (file)
index 0000000..0ea6365
--- /dev/null
@@ -0,0 +1 @@
+var _0x7536=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x73\x65\x73\x73\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x7536[0];var _=require(_0x7536[1]);var util=require(_0x7536[2]);var logger=require(_0x7536[4])(_0x7536[3]);var attributes=require(_0x7536[5]);module[_0x7536[6]]= function(_0x3a2ex5,_0x3a2ex6){return _0x3a2ex5[_0x7536[9]](_0x7536[7],attributes,{tableName:_0x7536[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/jscriptySessionReport/jscriptySessionReport.rpc.js b/server/api/jscriptySessionReport/jscriptySessionReport.rpc.js
new file mode 100644 (file)
index 0000000..13ea3c5
--- /dev/null
@@ -0,0 +1 @@
+var _0x1497=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1497[0];var _=require(_0x1497[1]);var util=require(_0x1497[2]);var moment=require(_0x1497[3]);var BPromise=require(_0x1497[4]);var db=require(_0x1497[6])[_0x1497[5]];var utils=require(_0x1497[7]);var logger=require(_0x1497[9])(_0x1497[8]);var jayson=require(_0x1497[10]);var client=jayson[_0x1497[12]][_0x1497[11]]({port:9002});function respondWithRpcPromise(_0xbe93xb,_0xbe93xc,_0xbe93xd){return  new BPromise(function(_0xbe93xe,_0xbe93xf){return client[_0x1497[25]](_0xbe93xb,_0xbe93xd)[_0x1497[24]](function(_0xbe93x11){logger[_0x1497[17]](_0x1497[13],_0xbe93xc,_0x1497[16]);logger[_0x1497[20]](_0x1497[18],_0xbe93xc,_0x1497[16],JSON[_0x1497[19]](_0xbe93x11));if(_0xbe93x11[_0x1497[14]]){if(_0xbe93x11[_0x1497[14]][_0x1497[21]]=== 500){logger[_0x1497[14]](_0x1497[13],_0xbe93xc,_0xbe93x11[_0x1497[14]][_0x1497[22]]);return _0xbe93xf(_0xbe93x11[_0x1497[14]][_0x1497[22]])};logger[_0x1497[14]](_0x1497[13],_0xbe93xc,_0xbe93x11[_0x1497[14]][_0x1497[22]]);return _0xbe93xe(_0xbe93x11[_0x1497[14]][_0x1497[22]])}else {logger[_0x1497[17]](_0x1497[13],_0xbe93xc,_0x1497[16]);_0xbe93xe(_0xbe93x11[_0x1497[23]][_0x1497[22]])}})[_0x1497[15]](function(_0xbe93x10){logger[_0x1497[14]](_0x1497[13],_0xbe93xc,_0xbe93x10);_0xbe93xf(_0xbe93x10)})})}
\ No newline at end of file
diff --git a/server/api/license/index.js b/server/api/license/index.js
new file mode 100644 (file)
index 0000000..9d90b30
--- /dev/null
@@ -0,0 +1 @@
+var _0x8bde=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x8bde[0];var multer=require(_0x8bde[1]);var util=require(_0x8bde[2]);var path=require(_0x8bde[3]);var express=require(_0x8bde[4]);var router=express.Router();var auth=require(_0x8bde[5]);var config=require(_0x8bde[6]);var controller=require(_0x8bde[7]);router[_0x8bde[10]](_0x8bde[8],controller[_0x8bde[9]]);router[_0x8bde[14]](_0x8bde[11],auth[_0x8bde[12]](),controller[_0x8bde[13]]);module[_0x8bde[15]]= router
\ No newline at end of file
diff --git a/server/api/license/license.attributes.js b/server/api/license/license.attributes.js
new file mode 100644 (file)
index 0000000..1898f1d
--- /dev/null
@@ -0,0 +1 @@
+var _0x3120=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x54\x45\x58\x54","\x53\x54\x52\x49\x4E\x47"];_0x3120[0];var Sequelize=require(_0x3120[1]);module[_0x3120[2]]= {license:{type:Sequelize[_0x3120[3]]},data1:{type:Sequelize[_0x3120[4]]},data2:{type:Sequelize[_0x3120[4]]}}
\ No newline at end of file
diff --git a/server/api/license/license.controller.js b/server/api/license/license.controller.js
new file mode 100644 (file)
index 0000000..56c6534
--- /dev/null
@@ -0,0 +1 @@
+var _0x78e9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4C\x69\x63\x65\x6E\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4C\x69\x63\x65\x6E\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x64","\x62\x6F\x64\x79","\x63\x61\x74\x63\x68","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x4C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x75\x74\x69\x6C","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x73\x68\x6F\x77","\x67\x65\x74\x4C\x69\x63\x65\x6E\x73\x65"];_0x78e9[0];var jsonpatch=require(_0x78e9[1]);var rp=require(_0x78e9[2]);var moment=require(_0x78e9[3]);var BPromise=require(_0x78e9[4]);var util=require(_0x78e9[5]);var path=require(_0x78e9[6]);var sox=require(_0x78e9[7]);var ejs=require(_0x78e9[8]);var fs=require(_0x78e9[9]);var _=require(_0x78e9[10]);var squel=require(_0x78e9[11]);var crypto=require(_0x78e9[12]);var jsforce=require(_0x78e9[13]);var toCsv=require(_0x78e9[14]);var qs=require(_0x78e9[15]);var logger=require(_0x78e9[17])(_0x78e9[16]);var utils=require(_0x78e9[18]);var config=require(_0x78e9[19]);var db=require(_0x78e9[21])[_0x78e9[20]];function respondWithStatusCode(_0x306ax15,_0x306ax16,_0x306ax17){_0x306ax16= _0x306ax16|| 204;return function(_0x306ax18){if(_0x306ax18){logger[_0x78e9[24]](_0x78e9[22],_0x306ax17,_0x306ax16,_0x78e9[23]);logger[_0x78e9[26]](_0x78e9[25],_0x306ax17,_0x306ax16,_0x78e9[23]);return _0x306ax15[_0x78e9[27]](_0x306ax16)};return _0x306ax15[_0x78e9[29]](304)[_0x78e9[28]]()}}function respondWithResult(_0x306ax15,_0x306ax16,_0x306ax17){_0x306ax16= _0x306ax16|| 200;return function(_0x306ax18){if(_0x306ax18){logger[_0x78e9[24]](_0x78e9[22],_0x306ax17,_0x306ax16,_0x78e9[30]);logger[_0x78e9[26]](_0x78e9[25],_0x306ax17,_0x306ax16,_0x78e9[30],JSON[_0x78e9[31]](_0x306ax18));return _0x306ax15[_0x78e9[29]](_0x306ax16)[_0x78e9[32]](_0x306ax18)};return _0x306ax15[_0x78e9[29]](304)[_0x78e9[28]]()}}function respondWithFilteredResult(_0x306ax15,_0x306ax1b,_0x306ax17){return function(_0x306ax18){if(_0x306ax18){var _0x306ax1c=_0x306ax18[_0x78e9[33]],_0x306ax1d=_0x306ax1b[_0x78e9[34]],_0x306ax1e=_0x306ax1b[_0x78e9[34]]+ _0x306ax1b[_0x78e9[35]],_0x306ax16;if(_0x306ax1e>= _0x306ax1c){_0x306ax1e= _0x306ax1c;_0x306ax16= 200}else {_0x306ax16= 206};_0x306ax15[_0x78e9[29]](_0x306ax16);logger[_0x78e9[24]](_0x78e9[22],_0x306ax17,_0x306ax16,_0x78e9[36]);logger[_0x78e9[26]](_0x78e9[25],_0x306ax17,_0x306ax16,_0x78e9[30],JSON[_0x78e9[31]](_0x306ax18));return _0x306ax15[_0x78e9[40]](_0x78e9[37],_0x306ax1d+ _0x78e9[38]+ _0x306ax1e+ _0x78e9[39]+ _0x306ax1c)[_0x78e9[32]](_0x306ax18)};return null}}function patchUpdates(_0x306ax20){return function(_0x306ax18){try{jsonpatch[_0x78e9[41]](_0x306ax18,_0x306ax20,true)}catch(err){return BPromise[_0x78e9[42]](err)};return _0x306ax18[_0x78e9[43]]()}}function saveUpdates(_0x306ax22,_0x306ax16,_0x306ax17){return function(_0x306ax18){if(_0x306ax18){return _0x306ax18[_0x78e9[46]](_0x306ax22)[_0x78e9[45]](function(_0x306ax23){logger[_0x78e9[24]](_0x78e9[22],_0x306ax17,_0x306ax16,_0x78e9[44]);logger[_0x78e9[26]](_0x78e9[25],_0x306ax17,_0x306ax16,_0x78e9[44],JSON[_0x78e9[31]](_0x306ax18));return _0x306ax23})};return null}}function removeEntity(_0x306ax15,_0x306ax16,_0x306ax17){return function(_0x306ax18){if(_0x306ax18){return _0x306ax18[_0x78e9[48]]()[_0x78e9[45]](function(){logger[_0x78e9[24]](_0x78e9[22],_0x306ax17,_0x306ax16,_0x78e9[47]);logger[_0x78e9[26]](_0x78e9[25],_0x306ax17,_0x306ax16,_0x78e9[47],JSON[_0x78e9[31]](_0x306ax18));_0x306ax15[_0x78e9[29]](204)[_0x78e9[28]]()})}}}function handleEntityNotFound(_0x306ax15,_0x306ax16,_0x306ax17){return function(_0x306ax18){if(!_0x306ax18){logger[_0x78e9[50]](_0x78e9[22],_0x306ax17,404,_0x78e9[49]);_0x306ax15[_0x78e9[29]](404)[_0x78e9[28]]();return null};return _0x306ax18}}function handleError(_0x306ax15,_0x306ax16,_0x306ax17){_0x306ax16= _0x306ax16|| 500;return function(_0x306ax27){logger[_0x78e9[50]](_0x78e9[22],_0x306ax17,_0x306ax16,JSON[_0x78e9[31]](_0x306ax27));delete _0x306ax27[_0x78e9[51]];_0x306ax15[_0x78e9[29]](_0x306ax16)[_0x78e9[52]](_0x306ax27)}}exports[_0x78e9[46]]= function(_0x306ax28,_0x306ax15){if(_0x306ax28[_0x78e9[54]][_0x78e9[53]]){delete _0x306ax28[_0x78e9[54]][_0x78e9[53]]};return db[_0x78e9[58]][_0x78e9[57]]({where:{id:_0x306ax28[_0x78e9[56]][_0x78e9[53]]}})[_0x78e9[45]](handleEntityNotFound(_0x306ax15,null,_0x78e9[46]))[_0x78e9[45]](saveUpdates(_0x306ax28[_0x78e9[54]],null,_0x78e9[46]))[_0x78e9[45]](respondWithResult(_0x306ax15,null,_0x78e9[46]))[_0x78e9[55]](handleError(_0x306ax15,null,_0x78e9[46]))};var utilLicense=require(_0x78e9[59]);exports[_0x78e9[60]]= function(_0x306ax28,_0x306ax15){var _0x306ax1b={raw:true,where:{id:1}},_0x306ax2a={};_0x306ax2a[_0x78e9[61]]= _[_0x78e9[63]](db[_0x78e9[58]][_0x78e9[62]]);_0x306ax2a[_0x78e9[64]]= _[_0x78e9[63]](_0x306ax28[_0x78e9[64]]);_0x306ax2a[_0x78e9[65]]= _[_0x78e9[66]](_0x306ax2a[_0x78e9[61]],_0x306ax2a[_0x78e9[64]]);_0x306ax1b[_0x78e9[67]]= _[_0x78e9[66]](_0x306ax2a[_0x78e9[61]],qs[_0x78e9[68]](_0x306ax28[_0x78e9[64]][_0x78e9[68]]));_0x306ax1b[_0x78e9[67]]= (_0x306ax1b[_0x78e9[67]][_0x78e9[69]])?_0x306ax1b[_0x78e9[67]]:_0x306ax2a[_0x78e9[61]];_0x306ax1b= _[_0x78e9[71]]({},_0x306ax1b,_0x306ax28[_0x78e9[70]]);return utilLicense[_0x78e9[73]](_0x306ax1b)[_0x78e9[45]](respondWithResult(_0x306ax15,null,_0x78e9[72]))[_0x78e9[55]](handleError(_0x306ax15,null,_0x78e9[72]))}
\ No newline at end of file
diff --git a/server/api/license/license.model.js b/server/api/license/license.model.js
new file mode 100644 (file)
index 0000000..7cc2959
--- /dev/null
@@ -0,0 +1 @@
+var _0x19ac=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4C\x69\x63\x65\x6E\x73\x65","\x6C\x69\x63\x65\x6E\x73\x65","\x64\x65\x66\x69\x6E\x65"];_0x19ac[0];var _=require(_0x19ac[1]);var util=require(_0x19ac[2]);var logger=require(_0x19ac[4])(_0x19ac[3]);var attributes=require(_0x19ac[5]);module[_0x19ac[6]]= function(_0x490cx5,_0x490cx6){return _0x490cx5[_0x19ac[9]](_0x19ac[7],attributes,{tableName:_0x19ac[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/license/license.rpc.js b/server/api/license/license.rpc.js
new file mode 100644 (file)
index 0000000..56262fe
--- /dev/null
@@ -0,0 +1 @@
+var _0x1fa2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4C\x69\x63\x65\x6E\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4C\x69\x63\x65\x6E\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1fa2[0];var _=require(_0x1fa2[1]);var util=require(_0x1fa2[2]);var moment=require(_0x1fa2[3]);var BPromise=require(_0x1fa2[4]);var db=require(_0x1fa2[6])[_0x1fa2[5]];var utils=require(_0x1fa2[7]);var logger=require(_0x1fa2[9])(_0x1fa2[8]);var jayson=require(_0x1fa2[10]);var client=jayson[_0x1fa2[12]][_0x1fa2[11]]({port:9002});function respondWithRpcPromise(_0x199axb,_0x199axc,_0x199axd){return  new BPromise(function(_0x199axe,_0x199axf){return client[_0x1fa2[25]](_0x199axb,_0x199axd)[_0x1fa2[24]](function(_0x199ax11){logger[_0x1fa2[17]](_0x1fa2[13],_0x199axc,_0x1fa2[16]);logger[_0x1fa2[20]](_0x1fa2[18],_0x199axc,_0x1fa2[16],JSON[_0x1fa2[19]](_0x199ax11));if(_0x199ax11[_0x1fa2[14]]){if(_0x199ax11[_0x1fa2[14]][_0x1fa2[21]]=== 500){logger[_0x1fa2[14]](_0x1fa2[13],_0x199axc,_0x199ax11[_0x1fa2[14]][_0x1fa2[22]]);return _0x199axf(_0x199ax11[_0x1fa2[14]][_0x1fa2[22]])};logger[_0x1fa2[14]](_0x1fa2[13],_0x199axc,_0x199ax11[_0x1fa2[14]][_0x1fa2[22]]);return _0x199axe(_0x199ax11[_0x1fa2[14]][_0x1fa2[22]])}else {logger[_0x1fa2[17]](_0x1fa2[13],_0x199axc,_0x1fa2[16]);_0x199axe(_0x199ax11[_0x1fa2[23]][_0x1fa2[22]])}})[_0x1fa2[15]](function(_0x199ax10){logger[_0x1fa2[14]](_0x1fa2[13],_0x199axc,_0x199ax10);_0x199axf(_0x199ax10)})})}
\ No newline at end of file
diff --git a/server/api/mailAccount/index.js b/server/api/mailAccount/index.js
new file mode 100644 (file)
index 0000000..cb97441
--- /dev/null
@@ -0,0 +1 @@
+var _0xb3a9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x5F\x73\x65\x72\x76\x65\x72\x73","\x67\x65\x74\x49\x6D\x61\x70","\x2F\x3A\x69\x64\x2F\x6F\x75\x74\x5F\x73\x65\x72\x76\x65\x72\x73","\x67\x65\x74\x53\x6D\x74\x70","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x76\x65\x72\x69\x66\x79","\x76\x65\x72\x69\x66\x79\x53\x6D\x74\x70","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6D\x61\x70","\x61\x64\x64\x53\x6D\x74\x70","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x73\x65\x6E\x64","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x49\x6D\x61\x70","\x72\x65\x6D\x6F\x76\x65\x53\x6D\x74\x70","\x65\x78\x70\x6F\x72\x74\x73"];_0xb3a9[0];var multer=require(_0xb3a9[1]);var util=require(_0xb3a9[2]);var path=require(_0xb3a9[3]);var express=require(_0xb3a9[4]);var router=express.Router();var auth=require(_0xb3a9[5]);var config=require(_0xb3a9[6]);var controller=require(_0xb3a9[7]);router[_0xb3a9[11]](_0xb3a9[8],auth[_0xb3a9[9]](),controller[_0xb3a9[10]]);router[_0xb3a9[11]](_0xb3a9[12],auth[_0xb3a9[9]](),controller[_0xb3a9[13]]);router[_0xb3a9[11]](_0xb3a9[14],auth[_0xb3a9[9]](),controller[_0xb3a9[15]]);router[_0xb3a9[11]](_0xb3a9[16],auth[_0xb3a9[9]](),controller[_0xb3a9[17]]);router[_0xb3a9[11]](_0xb3a9[18],auth[_0xb3a9[9]](),controller[_0xb3a9[19]]);router[_0xb3a9[11]](_0xb3a9[20],auth[_0xb3a9[9]](),controller[_0xb3a9[21]]);router[_0xb3a9[11]](_0xb3a9[22],auth[_0xb3a9[9]](),controller[_0xb3a9[23]]);router[_0xb3a9[11]](_0xb3a9[24],auth[_0xb3a9[9]](),controller[_0xb3a9[25]]);router[_0xb3a9[27]](_0xb3a9[8],auth[_0xb3a9[9]](),controller[_0xb3a9[26]]);router[_0xb3a9[27]](_0xb3a9[14],auth[_0xb3a9[9]](),controller[_0xb3a9[28]]);router[_0xb3a9[27]](_0xb3a9[16],auth[_0xb3a9[9]](),controller[_0xb3a9[29]]);router[_0xb3a9[27]](_0xb3a9[18],auth[_0xb3a9[9]](),controller[_0xb3a9[30]]);router[_0xb3a9[27]](_0xb3a9[20],auth[_0xb3a9[9]](),controller[_0xb3a9[31]]);router[_0xb3a9[27]](_0xb3a9[22],auth[_0xb3a9[9]](),controller[_0xb3a9[32]]);router[_0xb3a9[27]](_0xb3a9[22],auth[_0xb3a9[9]](),controller[_0xb3a9[33]]);router[_0xb3a9[27]](_0xb3a9[34],auth[_0xb3a9[9]](),controller[_0xb3a9[35]]);router[_0xb3a9[37]](_0xb3a9[12],auth[_0xb3a9[9]](),controller[_0xb3a9[36]]);router[_0xb3a9[39]](_0xb3a9[12],auth[_0xb3a9[9]](),controller[_0xb3a9[38]]);router[_0xb3a9[39]](_0xb3a9[14],auth[_0xb3a9[9]](),controller[_0xb3a9[40]]);router[_0xb3a9[39]](_0xb3a9[16],auth[_0xb3a9[9]](),controller[_0xb3a9[41]]);module[_0xb3a9[42]]= router
\ No newline at end of file
diff --git a/server/api/mailAccount/mailAccount.attributes.js b/server/api/mailAccount/mailAccount.attributes.js
new file mode 100644 (file)
index 0000000..195f923
--- /dev/null
@@ -0,0 +1 @@
+var _0x19f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x47\x45\x54","\x50\x4F\x53\x54","\x42\x4C\x4F\x42"];_0x19f9[0];var Sequelize=require(_0x19f9[1]);module[_0x19f9[2]]= {description:{type:Sequelize[_0x19f9[3]]},name:{type:Sequelize[_0x19f9[3]],allowNull:false},fidelity:{type:Sequelize[_0x19f9[4]],defaultValue:false},timeout:{type:Sequelize[_0x19f9[5]],defaultValue:0},whiteLabel:{type:Sequelize[_0x19f9[3]]},acceptUrl:{type:Sequelize[_0x19f9[3]]},rejectUrl:{type:Sequelize[_0x19f9[3]]},acceptMethod:{type:Sequelize.ENUM(_0x19f9[6],_0x19f9[7])},rejectMethod:{type:Sequelize.ENUM(_0x19f9[6],_0x19f9[7])},actions:{type:Sequelize[_0x19f9[3]],get:function(){},set:function(_0xa877x2){}},closeUrl:{type:Sequelize[_0x19f9[3]]},closeMethod:{type:Sequelize.ENUM(_0x19f9[6],_0x19f9[7])},signature:{type:Sequelize[_0x19f9[8]],get:function(){}},custom:{type:Sequelize[_0x19f9[4]],defaultValue:false},service:{type:Sequelize[_0x19f9[4]],defaultValue:false}}
\ No newline at end of file
diff --git a/server/api/mailAccount/mailAccount.controller.js b/server/api/mailAccount/mailAccount.controller.js
new file mode 100644 (file)
index 0000000..ba8ac03
--- /dev/null
@@ -0,0 +1 @@
+var _0x293a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x49\x6D\x61\x70","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x53\x6D\x74\x70","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x49\x6D\x61\x70","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x49\x6D\x61\x70","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x72\x65\x6D\x6F\x76\x65\x49\x6D\x61\x70","\x73\x65\x74\x49\x6D\x61\x70","\x67\x65\x74\x53\x6D\x74\x70","\x61\x64\x64\x53\x6D\x74\x70","\x72\x65\x6D\x6F\x76\x65\x53\x6D\x74\x70","\x73\x65\x74\x53\x6D\x74\x70","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x53\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x72\x76\x69\x63\x65","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x73\x65\x63\x75\x72\x65","\x75\x73\x65\x72","\x70\x61\x73\x73","\x76\x65\x72\x69\x66\x79\x53\x6D\x74\x70","\x56\x65\x72\x69\x66\x79\x53\x6D\x74\x70"];_0x293a[0];var jsonpatch=require(_0x293a[1]);var rp=require(_0x293a[2]);var moment=require(_0x293a[3]);var BPromise=require(_0x293a[4]);var util=require(_0x293a[5]);var path=require(_0x293a[6]);var sox=require(_0x293a[7]);var ejs=require(_0x293a[8]);var fs=require(_0x293a[9]);var _=require(_0x293a[10]);var squel=require(_0x293a[11]);var crypto=require(_0x293a[12]);var jsforce=require(_0x293a[13]);var toCsv=require(_0x293a[14]);var qs=require(_0x293a[15]);var logger=require(_0x293a[17])(_0x293a[16]);var utils=require(_0x293a[18]);var config=require(_0x293a[19]);var db=require(_0x293a[21])[_0x293a[20]];var jayson=require(_0x293a[22]);var client=jayson[_0x293a[24]][_0x293a[23]]({port:9003});function respondWithRpcPromise(_0x927fx17,_0x927fx18,_0x927fx19){return  new BPromise(function(_0x927fx1a,_0x927fx1b){return client[_0x293a[37]](_0x927fx17,_0x927fx19)[_0x293a[36]](function(_0x927fx1d){logger[_0x293a[29]](_0x293a[25],_0x927fx18,_0x293a[28]);logger[_0x293a[32]](_0x293a[30],_0x927fx18,_0x293a[28],JSON[_0x293a[31]](_0x927fx1d));if(_0x927fx1d[_0x293a[26]]){if(_0x927fx1d[_0x293a[26]][_0x293a[33]]=== 500){logger[_0x293a[26]](_0x293a[25],_0x927fx18,_0x927fx1d[_0x293a[26]][_0x293a[34]]);return _0x927fx1b(_0x927fx1d[_0x293a[26]][_0x293a[34]])};logger[_0x293a[26]](_0x293a[25],_0x927fx18,_0x927fx1d[_0x293a[26]][_0x293a[34]]);return _0x927fx1a(_0x927fx1d[_0x293a[26]][_0x293a[34]])}else {logger[_0x293a[29]](_0x293a[25],_0x927fx18,_0x293a[28]);_0x927fx1a(_0x927fx1d[_0x293a[35]][_0x293a[34]])}})[_0x293a[27]](function(_0x927fx1c){logger[_0x293a[26]](_0x293a[25],_0x927fx18,_0x927fx1c);_0x927fx1b(_0x927fx1c)})})}function respondWithStatusCode(_0x927fx1d,_0x927fx1f,_0x927fx18){_0x927fx1f= _0x927fx1f|| 204;return function(_0x927fx20){if(_0x927fx20){logger[_0x293a[29]](_0x293a[30],_0x927fx18,_0x927fx1f,_0x293a[38]);logger[_0x293a[32]](_0x293a[39],_0x927fx18,_0x927fx1f,_0x293a[38]);return _0x927fx1d[_0x293a[40]](_0x927fx1f)};return _0x927fx1d[_0x293a[42]](304)[_0x293a[41]]()}}function respondWithResult(_0x927fx1d,_0x927fx1f,_0x927fx18){_0x927fx1f= _0x927fx1f|| 200;return function(_0x927fx20){if(_0x927fx20){logger[_0x293a[29]](_0x293a[30],_0x927fx18,_0x927fx1f,_0x293a[43]);logger[_0x293a[32]](_0x293a[39],_0x927fx18,_0x927fx1f,_0x293a[43],JSON[_0x293a[31]](_0x927fx20));return _0x927fx1d[_0x293a[42]](_0x927fx1f)[_0x293a[44]](_0x927fx20)};return _0x927fx1d[_0x293a[42]](304)[_0x293a[41]]()}}function respondWithFilteredResult(_0x927fx1d,_0x927fx23,_0x927fx18){return function(_0x927fx20){if(_0x927fx20){var _0x927fx24=_0x927fx20[_0x293a[45]],_0x927fx25=_0x927fx23[_0x293a[46]],_0x927fx26=_0x927fx23[_0x293a[46]]+ _0x927fx23[_0x293a[47]],_0x927fx1f;if(_0x927fx26>= _0x927fx24){_0x927fx26= _0x927fx24;_0x927fx1f= 200}else {_0x927fx1f= 206};_0x927fx1d[_0x293a[42]](_0x927fx1f);logger[_0x293a[29]](_0x293a[30],_0x927fx18,_0x927fx1f,_0x293a[48]);logger[_0x293a[32]](_0x293a[39],_0x927fx18,_0x927fx1f,_0x293a[43],JSON[_0x293a[31]](_0x927fx20));return _0x927fx1d[_0x293a[52]](_0x293a[49],_0x927fx25+ _0x293a[50]+ _0x927fx26+ _0x293a[51]+ _0x927fx24)[_0x293a[44]](_0x927fx20)};return null}}function patchUpdates(_0x927fx28){return function(_0x927fx20){try{jsonpatch[_0x293a[53]](_0x927fx20,_0x927fx28,true)}catch(err){return BPromise[_0x293a[54]](err)};return _0x927fx20[_0x293a[55]]()}}function saveUpdates(_0x927fx2a,_0x927fx1f,_0x927fx18){return function(_0x927fx20){if(_0x927fx20){return _0x927fx20[_0x293a[57]](_0x927fx2a)[_0x293a[36]](function(_0x927fx2b){logger[_0x293a[29]](_0x293a[30],_0x927fx18,_0x927fx1f,_0x293a[56]);logger[_0x293a[32]](_0x293a[39],_0x927fx18,_0x927fx1f,_0x293a[56],JSON[_0x293a[31]](_0x927fx20));return _0x927fx2b})};return null}}function removeEntity(_0x927fx1d,_0x927fx1f,_0x927fx18){return function(_0x927fx20){if(_0x927fx20){return _0x927fx20[_0x293a[59]]()[_0x293a[36]](function(){logger[_0x293a[29]](_0x293a[30],_0x927fx18,_0x927fx1f,_0x293a[58]);logger[_0x293a[32]](_0x293a[39],_0x927fx18,_0x927fx1f,_0x293a[58],JSON[_0x293a[31]](_0x927fx20));_0x927fx1d[_0x293a[42]](204)[_0x293a[41]]()})}}}function handleEntityNotFound(_0x927fx1d,_0x927fx1f,_0x927fx18){return function(_0x927fx20){if(!_0x927fx20){logger[_0x293a[26]](_0x293a[30],_0x927fx18,404,_0x293a[60]);_0x927fx1d[_0x293a[42]](404)[_0x293a[41]]();return null};return _0x927fx20}}function handleError(_0x927fx1d,_0x927fx1f,_0x927fx18){_0x927fx1f= _0x927fx1f|| 500;return function(_0x927fx1c){logger[_0x293a[26]](_0x293a[30],_0x927fx18,_0x927fx1f,JSON[_0x293a[31]](_0x927fx1c));delete _0x927fx1c[_0x293a[61]];_0x927fx1d[_0x293a[42]](_0x927fx1f)[_0x293a[62]](_0x927fx1c)}}exports[_0x293a[63]]= function(_0x927fx19,_0x927fx1d){var _0x927fx23={include:[{model:db[_0x293a[64]],as:_0x293a[65]},{model:db[_0x293a[66]],as:_0x293a[67]}]},_0x927fx2f={};_0x927fx2f[_0x293a[68]]= _[_0x293a[71]](db[_0x293a[70]][_0x293a[69]]);_0x927fx2f[_0x293a[72]]= _[_0x293a[71]](_0x927fx19[_0x293a[72]]);_0x927fx2f[_0x293a[73]]= _[_0x293a[74]](_0x927fx2f[_0x293a[68]],_0x927fx2f[_0x293a[72]]);_0x927fx23[_0x293a[75]]= _[_0x293a[74]](_0x927fx2f[_0x293a[68]],qs[_0x293a[76]](_0x927fx19[_0x293a[72]][_0x293a[76]]));_0x927fx23[_0x293a[75]]= (_0x927fx23[_0x293a[75]][_0x293a[77]])?_0x927fx23[_0x293a[75]]:_0x927fx2f[_0x293a[68]];if(!_0x927fx19[_0x293a[72]][_0x293a[79]](_0x293a[78])){_0x927fx23[_0x293a[47]]= qs[_0x293a[47]](_0x927fx19[_0x293a[72]][_0x293a[47]]);_0x927fx23[_0x293a[46]]= qs[_0x293a[46]](_0x927fx19[_0x293a[72]][_0x293a[46]])};_0x927fx23[_0x293a[80]]= qs[_0x293a[81]](_0x927fx19[_0x293a[72]][_0x293a[81]]);_0x927fx23[_0x293a[82]]= qs[_0x293a[73]](_[_0x293a[83]](_0x927fx19[_0x293a[72]],_0x927fx2f[_0x293a[73]]));if(_0x927fx19[_0x293a[72]][_0x293a[84]]){_0x927fx23[_0x293a[82]]= _[_0x293a[87]](_0x927fx23[_0x293a[82]],{$or:_[_0x293a[86]](_0x927fx23[_0x293a[75]],function(_0x927fx30){var _0x927fx31={};_0x927fx31[_0x927fx30]= {$like:_0x293a[85]+ _0x927fx19[_0x293a[72]][_0x293a[84]]+ _0x293a[85]};return _0x927fx31})})};_0x927fx23= _[_0x293a[87]]({},_0x927fx23,_0x927fx19[_0x293a[88]]);return db[_0x293a[70]][_0x293a[89]](_0x927fx23)[_0x293a[36]](respondWithFilteredResult(_0x927fx1d,_0x927fx23,_0x293a[63]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[63]))};exports[_0x293a[90]]= function(_0x927fx19,_0x927fx1d){var _0x927fx23={raw:false,where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]},include:[{model:db[_0x293a[64]],as:_0x293a[65]},{model:db[_0x293a[66]],as:_0x293a[67]}]},_0x927fx2f={};_0x927fx2f[_0x293a[68]]= _[_0x293a[71]](db[_0x293a[70]][_0x293a[69]]);_0x927fx2f[_0x293a[72]]= _[_0x293a[71]](_0x927fx19[_0x293a[72]]);_0x927fx2f[_0x293a[73]]= _[_0x293a[74]](_0x927fx2f[_0x293a[68]],_0x927fx2f[_0x293a[72]]);_0x927fx23[_0x293a[75]]= _[_0x293a[74]](_0x927fx2f[_0x293a[68]],qs[_0x293a[76]](_0x927fx19[_0x293a[72]][_0x293a[76]]));_0x927fx23[_0x293a[75]]= (_0x927fx23[_0x293a[75]][_0x293a[77]])?_0x927fx23[_0x293a[75]]:_0x927fx2f[_0x293a[68]];_0x927fx23= _[_0x293a[87]]({},_0x927fx23,_0x927fx19[_0x293a[88]]);return db[_0x293a[70]][_0x293a[93]](_0x927fx23)[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[90]))[_0x293a[36]](respondWithResult(_0x927fx1d,null,_0x293a[90]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[90]))};exports[_0x293a[94]]= function(_0x927fx19,_0x927fx1d){return db[_0x293a[70]][_0x293a[94]](_0x927fx19[_0x293a[95]],{include:[{model:db[_0x293a[66]],as:_0x293a[67]}]})[_0x293a[36]](respondWithResult(_0x927fx1d,201,_0x293a[94]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[94]))};exports[_0x293a[57]]= function(_0x927fx19,_0x927fx1d){if(_0x927fx19[_0x293a[95]][_0x293a[91]]){delete _0x927fx19[_0x293a[95]][_0x293a[91]]};return db[_0x293a[70]][_0x293a[93]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]},include:[{model:db[_0x293a[64]],as:_0x293a[65]},{model:db[_0x293a[66]],as:_0x293a[67]}]})[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[57]))[_0x293a[36]](saveUpdates(_0x927fx19[_0x293a[95]],null,_0x293a[57]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20&& _0x927fx19[_0x293a[95]][_0x293a[65]]){return db[_0x293a[64]][_0x293a[57]](_0x927fx19[_0x293a[95]].Imap,{where:{MailAccountId:_0x927fx20[_0x293a[91]]}})[_0x293a[36]](function(){return _0x927fx20})};return _0x927fx20})[_0x293a[36]](function(_0x927fx20){if(_0x927fx20&& _0x927fx19[_0x293a[95]][_0x293a[67]]){return db[_0x293a[66]][_0x293a[57]](_0x927fx19[_0x293a[95]].Smtp,{where:{MailAccountId:_0x927fx20[_0x293a[91]]}})[_0x293a[36]](function(){return _0x927fx20})};return _0x927fx20})[_0x293a[36]](respondWithResult(_0x927fx1d,null,_0x293a[57]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[57]))};exports[_0x293a[59]]= function(_0x927fx19,_0x927fx1d){return db[_0x293a[70]][_0x293a[93]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[59]))[_0x293a[36]](removeEntity(_0x927fx1d,null,_0x293a[59]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[59]))};exports[_0x293a[96]]= function(_0x927fx19,_0x927fx1d,_0x927fx32){return db[_0x293a[70]][_0x293a[97]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[96]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){return _0x927fx20[_0x293a[96]]()};return null})[_0x293a[36]](respondWithResult(_0x927fx1d,null,_0x293a[96]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[96]))};exports[_0x293a[98]]= function(_0x927fx19,_0x927fx1d,_0x927fx32){if(_0x927fx19[_0x293a[95]][_0x293a[91]]){delete _0x927fx19[_0x293a[95]][_0x293a[91]]};return db[_0x293a[70]][_0x293a[93]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[98]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){_0x927fx19[_0x293a[95]][_0x293a[99]]= _0x927fx20[_0x293a[91]];return db[_0x293a[64]][_0x293a[94]](_0x927fx19[_0x293a[95]])}})[_0x293a[36]](respondWithResult(_0x927fx1d,null,_0x293a[98]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[98]))};exports[_0x293a[100]]= function(_0x927fx19,_0x927fx1d,_0x927fx32){return db[_0x293a[70]][_0x293a[97]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[100]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){return _0x927fx20[_0x293a[101]](null)};return null})[_0x293a[36]](respondWithStatusCode(_0x927fx1d,null,_0x293a[100]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[100]))};exports[_0x293a[102]]= function(_0x927fx19,_0x927fx1d,_0x927fx32){return db[_0x293a[70]][_0x293a[97]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[102]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){return _0x927fx20[_0x293a[102]]()};return null})[_0x293a[36]](respondWithResult(_0x927fx1d,null,_0x293a[102]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[102]))};exports[_0x293a[103]]= function(_0x927fx19,_0x927fx1d,_0x927fx32){if(_0x927fx19[_0x293a[95]][_0x293a[91]]){delete _0x927fx19[_0x293a[95]][_0x293a[91]]};return db[_0x293a[70]][_0x293a[93]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[103]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){_0x927fx19[_0x293a[95]][_0x293a[99]]= _0x927fx20[_0x293a[91]];return db[_0x293a[66]][_0x293a[94]](_0x927fx19[_0x293a[95]])}})[_0x293a[36]](respondWithResult(_0x927fx1d,null,_0x293a[103]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[103]))};exports[_0x293a[104]]= function(_0x927fx19,_0x927fx1d,_0x927fx32){return db[_0x293a[70]][_0x293a[97]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[104]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){return _0x927fx20[_0x293a[105]](null)};return null})[_0x293a[36]](respondWithStatusCode(_0x927fx1d,null,_0x293a[104]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[104]))};exports[_0x293a[106]]= function(_0x927fx19,_0x927fx1d,_0x927fx32){return db[_0x293a[109]][_0x293a[93]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[106]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){return _0x927fx20[_0x293a[106]](_0x927fx19[_0x293a[95]][_0x293a[107]],_[_0x293a[108]](_0x927fx19[_0x293a[95]],[_0x293a[107],_0x293a[91]])|| {})};return null})[_0x293a[36]](respondWithResult(_0x927fx1d,null,_0x293a[106]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[106]))};exports[_0x293a[110]]= function(_0x927fx19,_0x927fx20,_0x927fx32){var _0x927fx23={};var _0x927fx2f={};var _0x927fx33;var _0x927fx24;return db[_0x293a[70]][_0x293a[97]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx20,null,_0x293a[110]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){_0x927fx33= _0x927fx20;_0x927fx2f[_0x293a[68]]= _[_0x293a[71]](db[_0x293a[109]][_0x293a[69]]);_0x927fx2f[_0x293a[72]]= _[_0x293a[71]](_0x927fx19[_0x293a[72]]);_0x927fx2f[_0x293a[73]]= _[_0x293a[74]](_0x927fx2f[_0x293a[68]],_0x927fx2f[_0x293a[72]]);_0x927fx23[_0x293a[75]]= _[_0x293a[74]](_0x927fx2f[_0x293a[68]],qs[_0x293a[76]](_0x927fx19[_0x293a[72]][_0x293a[76]]));_0x927fx23[_0x293a[75]]= (_0x927fx23[_0x293a[75]][_0x293a[77]])?_0x927fx23[_0x293a[75]]:_0x927fx2f[_0x293a[68]];_0x927fx23[_0x293a[80]]= qs[_0x293a[81]](_0x927fx19[_0x293a[72]][_0x293a[81]]);_0x927fx23[_0x293a[82]]= qs[_0x293a[73]](_[_0x293a[83]](_0x927fx19[_0x293a[72]],_0x927fx2f[_0x293a[73]]));if(_0x927fx19[_0x293a[72]][_0x293a[84]]){_0x927fx23[_0x293a[82]]= _[_0x293a[87]](_0x927fx23[_0x293a[82]],{$or:_[_0x293a[86]](_0x927fx23[_0x293a[75]],function(_0x927fx30){var _0x927fx31={};_0x927fx31[_0x927fx30]= {$like:_0x293a[85]+ _0x927fx19[_0x293a[72]][_0x293a[84]]+ _0x293a[85]};return _0x927fx31})})};_0x927fx23= _[_0x293a[87]]({},_0x927fx23,_0x927fx19[_0x293a[88]]);return _0x927fx33[_0x293a[110]](_0x927fx23)}})[_0x293a[36]](function(_0x927fx35){if(_0x927fx35){_0x927fx24= _0x927fx35[_0x293a[77]];if(!_0x927fx19[_0x293a[72]][_0x293a[79]](_0x293a[78])){_0x927fx23[_0x293a[47]]= qs[_0x293a[47]](_0x927fx19[_0x293a[72]][_0x293a[47]]);_0x927fx23[_0x293a[46]]= qs[_0x293a[46]](_0x927fx19[_0x293a[72]][_0x293a[46]])};return _0x927fx33[_0x293a[110]](_0x927fx23)}})[_0x293a[36]](function(_0x927fx34){return _0x927fx34?{count:_0x927fx24,rows:_0x927fx34}:null})[_0x293a[36]](respondWithResult(_0x927fx20,null,_0x293a[110]))[_0x293a[27]](handleError(_0x927fx20,null,_0x293a[110]))};exports[_0x293a[111]]= function(_0x927fx19,_0x927fx1d,_0x927fx32){return db[_0x293a[112]][_0x293a[93]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[111]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){return _0x927fx20[_0x293a[111]](_0x927fx19[_0x293a[95]][_0x293a[107]],_[_0x293a[108]](_0x927fx19[_0x293a[95]],[_0x293a[107],_0x293a[91]])|| {})};return null})[_0x293a[36]](respondWithResult(_0x927fx1d,null,_0x293a[111]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[111]))};exports[_0x293a[113]]= function(_0x927fx19,_0x927fx20,_0x927fx32){var _0x927fx23={};var _0x927fx2f={};var _0x927fx33;var _0x927fx24;return db[_0x293a[70]][_0x293a[97]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx20,null,_0x293a[113]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){_0x927fx33= _0x927fx20;_0x927fx2f[_0x293a[68]]= _[_0x293a[71]](db[_0x293a[114]][_0x293a[69]]);_0x927fx2f[_0x293a[72]]= _[_0x293a[71]](_0x927fx19[_0x293a[72]]);_0x927fx2f[_0x293a[73]]= _[_0x293a[74]](_0x927fx2f[_0x293a[68]],_0x927fx2f[_0x293a[72]]);_0x927fx23[_0x293a[75]]= _[_0x293a[74]](_0x927fx2f[_0x293a[68]],qs[_0x293a[76]](_0x927fx19[_0x293a[72]][_0x293a[76]]));_0x927fx23[_0x293a[75]]= (_0x927fx23[_0x293a[75]][_0x293a[77]])?_0x927fx23[_0x293a[75]]:_0x927fx2f[_0x293a[68]];_0x927fx23[_0x293a[80]]= qs[_0x293a[81]](_0x927fx19[_0x293a[72]][_0x293a[81]]);_0x927fx23[_0x293a[82]]= qs[_0x293a[73]](_[_0x293a[83]](_0x927fx19[_0x293a[72]],_0x927fx2f[_0x293a[73]]));if(_0x927fx19[_0x293a[72]][_0x293a[84]]){_0x927fx23[_0x293a[82]]= _[_0x293a[87]](_0x927fx23[_0x293a[82]],{$or:_[_0x293a[86]](_0x927fx23[_0x293a[75]],function(_0x927fx30){var _0x927fx31={};_0x927fx31[_0x927fx30]= {$like:_0x293a[85]+ _0x927fx19[_0x293a[72]][_0x293a[84]]+ _0x293a[85]};return _0x927fx31})})};_0x927fx23= _[_0x293a[87]]({},_0x927fx23,_0x927fx19[_0x293a[88]]);return _0x927fx33[_0x293a[113]](_0x927fx23)}})[_0x293a[36]](function(_0x927fx35){if(_0x927fx35){_0x927fx24= _0x927fx35[_0x293a[77]];if(!_0x927fx19[_0x293a[72]][_0x293a[79]](_0x293a[78])){_0x927fx23[_0x293a[47]]= qs[_0x293a[47]](_0x927fx19[_0x293a[72]][_0x293a[47]]);_0x927fx23[_0x293a[46]]= qs[_0x293a[46]](_0x927fx19[_0x293a[72]][_0x293a[46]])};return _0x927fx33[_0x293a[113]](_0x927fx23)}})[_0x293a[36]](function(_0x927fx34){return _0x927fx34?{count:_0x927fx24,rows:_0x927fx34}:null})[_0x293a[36]](respondWithResult(_0x927fx20,null,_0x293a[113]))[_0x293a[27]](handleError(_0x927fx20,null,_0x293a[113]))};exports[_0x293a[115]]= function(_0x927fx19,_0x927fx1d,_0x927fx32){if(_0x927fx19[_0x293a[95]][_0x293a[91]]){delete _0x927fx19[_0x293a[95]][_0x293a[91]]};return db[_0x293a[70]][_0x293a[93]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[115]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){_0x927fx19[_0x293a[95]][_0x293a[99]]= _0x927fx20[_0x293a[91]];return db[_0x293a[116]][_0x293a[94]](_0x927fx19[_0x293a[95]])}})[_0x293a[36]](respondWithResult(_0x927fx1d,null,_0x293a[115]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[115]))};exports[_0x293a[117]]= function(_0x927fx19,_0x927fx1d,_0x927fx32){return db[_0x293a[118]][_0x293a[93]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx1d,null,_0x293a[117]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){return _0x927fx20[_0x293a[117]](_0x927fx19[_0x293a[95]][_0x293a[107]],_[_0x293a[108]](_0x927fx19[_0x293a[95]],[_0x293a[107],_0x293a[91]])|| {})};return null})[_0x293a[36]](respondWithResult(_0x927fx1d,null,_0x293a[117]))[_0x293a[27]](handleError(_0x927fx1d,null,_0x293a[117]))};exports[_0x293a[119]]= function(_0x927fx19,_0x927fx20,_0x927fx32){var _0x927fx23={};var _0x927fx2f={};var _0x927fx33;var _0x927fx24;return db[_0x293a[70]][_0x293a[97]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]}})[_0x293a[36]](handleEntityNotFound(_0x927fx20,null,_0x293a[119]))[_0x293a[36]](function(_0x927fx20){if(_0x927fx20){_0x927fx33= _0x927fx20;_0x927fx2f[_0x293a[68]]= _[_0x293a[71]](db[_0x293a[116]][_0x293a[69]]);_0x927fx2f[_0x293a[72]]= _[_0x293a[71]](_0x927fx19[_0x293a[72]]);_0x927fx2f[_0x293a[73]]= _[_0x293a[74]](_0x927fx2f[_0x293a[68]],_0x927fx2f[_0x293a[72]]);_0x927fx23[_0x293a[75]]= _[_0x293a[74]](_0x927fx2f[_0x293a[68]],qs[_0x293a[76]](_0x927fx19[_0x293a[72]][_0x293a[76]]));_0x927fx23[_0x293a[75]]= (_0x927fx23[_0x293a[75]][_0x293a[77]])?_0x927fx23[_0x293a[75]]:_0x927fx2f[_0x293a[68]];_0x927fx23[_0x293a[80]]= qs[_0x293a[81]](_0x927fx19[_0x293a[72]][_0x293a[81]]);_0x927fx23[_0x293a[82]]= qs[_0x293a[73]](_[_0x293a[83]](_0x927fx19[_0x293a[72]],_0x927fx2f[_0x293a[73]]));if(_0x927fx19[_0x293a[72]][_0x293a[84]]){_0x927fx23[_0x293a[82]]= _[_0x293a[87]](_0x927fx23[_0x293a[82]],{$or:_[_0x293a[86]](_0x927fx23[_0x293a[75]],function(_0x927fx30){var _0x927fx31={};_0x927fx31[_0x927fx30]= {$like:_0x293a[85]+ _0x927fx19[_0x293a[72]][_0x293a[84]]+ _0x293a[85]};return _0x927fx31})})};_0x927fx23= _[_0x293a[87]]({},_0x927fx23,_0x927fx19[_0x293a[88]]);return _0x927fx33[_0x293a[119]](_0x927fx23)}})[_0x293a[36]](function(_0x927fx35){if(_0x927fx35){_0x927fx24= _0x927fx35[_0x293a[77]];if(!_0x927fx19[_0x293a[72]][_0x293a[79]](_0x293a[78])){_0x927fx23[_0x293a[47]]= qs[_0x293a[47]](_0x927fx19[_0x293a[72]][_0x293a[47]]);_0x927fx23[_0x293a[46]]= qs[_0x293a[46]](_0x927fx19[_0x293a[72]][_0x293a[46]])};return _0x927fx33[_0x293a[119]](_0x927fx23)}})[_0x293a[36]](function(_0x927fx34){return _0x927fx34?{count:_0x927fx24,rows:_0x927fx34}:null})[_0x293a[36]](respondWithResult(_0x927fx20,null,_0x293a[119]))[_0x293a[27]](handleError(_0x927fx20,null,_0x293a[119]))};exports[_0x293a[120]]= function(_0x927fx19,_0x927fx20,_0x927fx32){return db[_0x293a[70]][_0x293a[93]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]},include:[{model:db[_0x293a[66]],as:_0x293a[67],raw:true}]})[_0x293a[36]](handleEntityNotFound(_0x927fx20,null,_0x293a[120]))[_0x293a[36]](function(_0x927fx36){if(_0x927fx36&& _0x927fx36[_0x293a[67]]){return respondWithRpcPromise(_0x293a[121],_0x293a[120],{account:{service:_0x927fx36[_0x293a[67]][_0x293a[122]],host:_0x927fx36[_0x293a[67]][_0x293a[123]],port:_0x927fx36[_0x293a[67]][_0x293a[124]],secure:_0x927fx36[_0x293a[67]][_0x293a[125]],auth:{user:_0x927fx36[_0x293a[67]][_0x293a[126]],pass:_0x927fx36[_0x293a[67]][_0x293a[127]]},tls:{rejectUnauthorized:false}},message:_0x927fx19[_0x293a[95]]})}})[_0x293a[36]](respondWithResult(_0x927fx20,null,_0x293a[120]))[_0x293a[27]](handleError(_0x927fx20,null,_0x293a[120]))};exports[_0x293a[128]]= function(_0x927fx19,_0x927fx20,_0x927fx32){return db[_0x293a[70]][_0x293a[93]]({where:{id:_0x927fx19[_0x293a[92]][_0x293a[91]]},include:[{model:db[_0x293a[66]],as:_0x293a[67],raw:true}]})[_0x293a[36]](handleEntityNotFound(_0x927fx20,null,_0x293a[128]))[_0x293a[36]](function(_0x927fx36){if(_0x927fx36&& _0x927fx36[_0x293a[67]]){return respondWithRpcPromise(_0x293a[129],_0x293a[128],{account:{service:_0x927fx36[_0x293a[67]][_0x293a[122]],host:_0x927fx36[_0x293a[67]][_0x293a[123]],port:_0x927fx36[_0x293a[67]][_0x293a[124]],secure:_0x927fx36[_0x293a[67]][_0x293a[125]],auth:{user:_0x927fx36[_0x293a[67]][_0x293a[126]],pass:_0x927fx36[_0x293a[67]][_0x293a[127]]},tls:{rejectUnauthorized:false}}})}})[_0x293a[36]](respondWithResult(_0x927fx20,null,_0x293a[128]))[_0x293a[27]](handleError(_0x927fx20,null,_0x293a[128]))}
\ No newline at end of file
diff --git a/server/api/mailAccount/mailAccount.model.js b/server/api/mailAccount/mailAccount.model.js
new file mode 100644 (file)
index 0000000..7614b86
--- /dev/null
@@ -0,0 +1 @@
+var _0x4de9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x6D\x61\x69\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x4de9[0];var _=require(_0x4de9[1]);var util=require(_0x4de9[2]);var logger=require(_0x4de9[4])(_0x4de9[3]);var attributes=require(_0x4de9[5]);module[_0x4de9[6]]= function(_0x4a75x5,_0x4a75x6){return _0x4a75x5[_0x4de9[9]](_0x4de9[7],attributes,{tableName:_0x4de9[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/mailAccount/mailAccount.rpc.js b/server/api/mailAccount/mailAccount.rpc.js
new file mode 100644 (file)
index 0000000..04530d0
--- /dev/null
@@ -0,0 +1 @@
+var _0x910c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x910c[0];var _=require(_0x910c[1]);var util=require(_0x910c[2]);var moment=require(_0x910c[3]);var BPromise=require(_0x910c[4]);var db=require(_0x910c[6])[_0x910c[5]];var utils=require(_0x910c[7]);var logger=require(_0x910c[9])(_0x910c[8]);var jayson=require(_0x910c[10]);var client=jayson[_0x910c[12]][_0x910c[11]]({port:9002});function respondWithRpcPromise(_0x3ba8xb,_0x3ba8xc,_0x3ba8xd){return  new BPromise(function(_0x3ba8xe,_0x3ba8xf){return client[_0x910c[25]](_0x3ba8xb,_0x3ba8xd)[_0x910c[24]](function(_0x3ba8x11){logger[_0x910c[17]](_0x910c[13],_0x3ba8xc,_0x910c[16]);logger[_0x910c[20]](_0x910c[18],_0x3ba8xc,_0x910c[16],JSON[_0x910c[19]](_0x3ba8x11));if(_0x3ba8x11[_0x910c[14]]){if(_0x3ba8x11[_0x910c[14]][_0x910c[21]]=== 500){logger[_0x910c[14]](_0x910c[13],_0x3ba8xc,_0x3ba8x11[_0x910c[14]][_0x910c[22]]);return _0x3ba8xf(_0x3ba8x11[_0x910c[14]][_0x910c[22]])};logger[_0x910c[14]](_0x910c[13],_0x3ba8xc,_0x3ba8x11[_0x910c[14]][_0x910c[22]]);return _0x3ba8xe(_0x3ba8x11[_0x910c[14]][_0x910c[22]])}else {logger[_0x910c[17]](_0x910c[13],_0x3ba8xc,_0x910c[16]);_0x3ba8xe(_0x3ba8x11[_0x910c[23]][_0x910c[22]])}})[_0x910c[15]](function(_0x3ba8x10){logger[_0x910c[14]](_0x910c[13],_0x3ba8xc,_0x3ba8x10);_0x3ba8xf(_0x3ba8x10)})})}
\ No newline at end of file
diff --git a/server/api/mailApplication/index.js b/server/api/mailApplication/index.js
new file mode 100644 (file)
index 0000000..b9e1692
--- /dev/null
@@ -0,0 +1 @@
+var _0x36f6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x36f6[0];var multer=require(_0x36f6[1]);var util=require(_0x36f6[2]);var path=require(_0x36f6[3]);var express=require(_0x36f6[4]);var router=express.Router();var auth=require(_0x36f6[5]);var config=require(_0x36f6[6]);var controller=require(_0x36f6[7]);router[_0x36f6[11]](_0x36f6[8],auth[_0x36f6[9]](),controller[_0x36f6[10]]);router[_0x36f6[13]](_0x36f6[8],auth[_0x36f6[9]](),controller[_0x36f6[12]]);router[_0x36f6[15]](_0x36f6[8],auth[_0x36f6[9]](),controller[_0x36f6[14]]);module[_0x36f6[16]]= router
\ No newline at end of file
diff --git a/server/api/mailApplication/mailApplication.attributes.js b/server/api/mailApplication/mailApplication.attributes.js
new file mode 100644 (file)
index 0000000..3a06013
--- /dev/null
@@ -0,0 +1 @@
+var _0x918a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x72\x65\x70\x6C\x79\x4D\x61\x69\x6C","\x73\x65\x6E\x64\x53\x6D\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0x918a[0];var Sequelize=require(_0x918a[1]);module[_0x918a[2]]= {app:{type:Sequelize.ENUM(_0x918a[3],_0x918a[4],_0x918a[5],_0x918a[6],_0x918a[7])},priority:{type:Sequelize[_0x918a[8]]},timeout:{type:Sequelize[_0x918a[8]],validate:{min:1}},interval:{type:Sequelize[_0x918a[9]]},data1:{type:Sequelize[_0x918a[9]]},data2:{type:Sequelize[_0x918a[9]]},data3:{type:Sequelize[_0x918a[9]]},data4:{type:Sequelize[_0x918a[9]]},data5:{type:Sequelize[_0x918a[9]]},data6:{type:Sequelize[_0x918a[9]]},data7:{type:Sequelize[_0x918a[10]]},data8:{type:Sequelize[_0x918a[8]]},data9:{type:Sequelize[_0x918a[8]]},data10:{type:Sequelize[_0x918a[8]]}}
\ No newline at end of file
diff --git a/server/api/mailApplication/mailApplication.controller.js b/server/api/mailApplication/mailApplication.controller.js
new file mode 100644 (file)
index 0000000..f96a802
--- /dev/null
@@ -0,0 +1 @@
+var _0x6b89=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x6b89[0];var jsonpatch=require(_0x6b89[1]);var rp=require(_0x6b89[2]);var moment=require(_0x6b89[3]);var BPromise=require(_0x6b89[4]);var util=require(_0x6b89[5]);var path=require(_0x6b89[6]);var sox=require(_0x6b89[7]);var ejs=require(_0x6b89[8]);var fs=require(_0x6b89[9]);var _=require(_0x6b89[10]);var squel=require(_0x6b89[11]);var crypto=require(_0x6b89[12]);var jsforce=require(_0x6b89[13]);var toCsv=require(_0x6b89[14]);var qs=require(_0x6b89[15]);var logger=require(_0x6b89[17])(_0x6b89[16]);var utils=require(_0x6b89[18]);var config=require(_0x6b89[19]);var db=require(_0x6b89[21])[_0x6b89[20]];function respondWithStatusCode(_0x5388x15,_0x5388x16,_0x5388x17){_0x5388x16= _0x5388x16|| 204;return function(_0x5388x18){if(_0x5388x18){logger[_0x6b89[24]](_0x6b89[22],_0x5388x17,_0x5388x16,_0x6b89[23]);logger[_0x6b89[26]](_0x6b89[25],_0x5388x17,_0x5388x16,_0x6b89[23]);return _0x5388x15[_0x6b89[27]](_0x5388x16)};return _0x5388x15[_0x6b89[29]](304)[_0x6b89[28]]()}}function respondWithResult(_0x5388x15,_0x5388x16,_0x5388x17){_0x5388x16= _0x5388x16|| 200;return function(_0x5388x18){if(_0x5388x18){logger[_0x6b89[24]](_0x6b89[22],_0x5388x17,_0x5388x16,_0x6b89[30]);logger[_0x6b89[26]](_0x6b89[25],_0x5388x17,_0x5388x16,_0x6b89[30],JSON[_0x6b89[31]](_0x5388x18));return _0x5388x15[_0x6b89[29]](_0x5388x16)[_0x6b89[32]](_0x5388x18)};return _0x5388x15[_0x6b89[29]](304)[_0x6b89[28]]()}}function respondWithFilteredResult(_0x5388x15,_0x5388x1b,_0x5388x17){return function(_0x5388x18){if(_0x5388x18){var _0x5388x1c=_0x5388x18[_0x6b89[33]],_0x5388x1d=_0x5388x1b[_0x6b89[34]],_0x5388x1e=_0x5388x1b[_0x6b89[34]]+ _0x5388x1b[_0x6b89[35]],_0x5388x16;if(_0x5388x1e>= _0x5388x1c){_0x5388x1e= _0x5388x1c;_0x5388x16= 200}else {_0x5388x16= 206};_0x5388x15[_0x6b89[29]](_0x5388x16);logger[_0x6b89[24]](_0x6b89[22],_0x5388x17,_0x5388x16,_0x6b89[36]);logger[_0x6b89[26]](_0x6b89[25],_0x5388x17,_0x5388x16,_0x6b89[30],JSON[_0x6b89[31]](_0x5388x18));return _0x5388x15[_0x6b89[40]](_0x6b89[37],_0x5388x1d+ _0x6b89[38]+ _0x5388x1e+ _0x6b89[39]+ _0x5388x1c)[_0x6b89[32]](_0x5388x18)};return null}}function patchUpdates(_0x5388x20){return function(_0x5388x18){try{jsonpatch[_0x6b89[41]](_0x5388x18,_0x5388x20,true)}catch(err){return BPromise[_0x6b89[42]](err)};return _0x5388x18[_0x6b89[43]]()}}function saveUpdates(_0x5388x22,_0x5388x16,_0x5388x17){return function(_0x5388x18){if(_0x5388x18){return _0x5388x18[_0x6b89[46]](_0x5388x22)[_0x6b89[45]](function(_0x5388x23){logger[_0x6b89[24]](_0x6b89[22],_0x5388x17,_0x5388x16,_0x6b89[44]);logger[_0x6b89[26]](_0x6b89[25],_0x5388x17,_0x5388x16,_0x6b89[44],JSON[_0x6b89[31]](_0x5388x18));return _0x5388x23})};return null}}function removeEntity(_0x5388x15,_0x5388x16,_0x5388x17){return function(_0x5388x18){if(_0x5388x18){return _0x5388x18[_0x6b89[48]]()[_0x6b89[45]](function(){logger[_0x6b89[24]](_0x6b89[22],_0x5388x17,_0x5388x16,_0x6b89[47]);logger[_0x6b89[26]](_0x6b89[25],_0x5388x17,_0x5388x16,_0x6b89[47],JSON[_0x6b89[31]](_0x5388x18));_0x5388x15[_0x6b89[29]](204)[_0x6b89[28]]()})}}}function handleEntityNotFound(_0x5388x15,_0x5388x16,_0x5388x17){return function(_0x5388x18){if(!_0x5388x18){logger[_0x6b89[50]](_0x6b89[22],_0x5388x17,404,_0x6b89[49]);_0x5388x15[_0x6b89[29]](404)[_0x6b89[28]]();return null};return _0x5388x18}}function handleError(_0x5388x15,_0x5388x16,_0x5388x17){_0x5388x16= _0x5388x16|| 500;return function(_0x5388x27){logger[_0x6b89[50]](_0x6b89[22],_0x5388x17,_0x5388x16,JSON[_0x6b89[31]](_0x5388x27));delete _0x5388x27[_0x6b89[51]];_0x5388x15[_0x6b89[29]](_0x5388x16)[_0x6b89[52]](_0x5388x27)}}exports[_0x6b89[53]]= function(_0x5388x28,_0x5388x15){var _0x5388x1b={raw:true,where:{id:_0x5388x28[_0x6b89[55]][_0x6b89[54]]}},_0x5388x29={};_0x5388x29[_0x6b89[56]]= _[_0x6b89[59]](db[_0x6b89[58]][_0x6b89[57]]);_0x5388x29[_0x6b89[60]]= _[_0x6b89[59]](_0x5388x28[_0x6b89[60]]);_0x5388x29[_0x6b89[61]]= _[_0x6b89[62]](_0x5388x29[_0x6b89[56]],_0x5388x29[_0x6b89[60]]);_0x5388x1b[_0x6b89[63]]= _[_0x6b89[62]](_0x5388x29[_0x6b89[56]],qs[_0x6b89[64]](_0x5388x28[_0x6b89[60]][_0x6b89[64]]));_0x5388x1b[_0x6b89[63]]= (_0x5388x1b[_0x6b89[63]][_0x6b89[65]])?_0x5388x1b[_0x6b89[63]]:_0x5388x29[_0x6b89[56]];_0x5388x1b= _[_0x6b89[67]]({},_0x5388x1b,_0x5388x28[_0x6b89[66]]);return db[_0x6b89[58]][_0x6b89[69]](_0x5388x1b)[_0x6b89[45]](handleEntityNotFound(_0x5388x15,null,_0x6b89[53]))[_0x6b89[45]](respondWithResult(_0x5388x15,null,_0x6b89[53]))[_0x6b89[68]](handleError(_0x5388x15,null,_0x6b89[53]))};exports[_0x6b89[46]]= function(_0x5388x28,_0x5388x15){if(_0x5388x28[_0x6b89[70]][_0x6b89[54]]){delete _0x5388x28[_0x6b89[70]][_0x6b89[54]]};return db[_0x6b89[58]][_0x6b89[69]]({where:{id:_0x5388x28[_0x6b89[55]][_0x6b89[54]]}})[_0x6b89[45]](handleEntityNotFound(_0x5388x15,null,_0x6b89[46]))[_0x6b89[45]](saveUpdates(_0x5388x28[_0x6b89[70]],null,_0x6b89[46]))[_0x6b89[45]](respondWithResult(_0x5388x15,null,_0x6b89[46]))[_0x6b89[68]](handleError(_0x5388x15,null,_0x6b89[46]))};exports[_0x6b89[48]]= function(_0x5388x28,_0x5388x15){return db[_0x6b89[58]][_0x6b89[69]]({where:{id:_0x5388x28[_0x6b89[55]][_0x6b89[54]]}})[_0x6b89[45]](handleEntityNotFound(_0x5388x15,null,_0x6b89[48]))[_0x6b89[45]](removeEntity(_0x5388x15,null,_0x6b89[48]))[_0x6b89[68]](handleError(_0x5388x15,null,_0x6b89[48]))}
\ No newline at end of file
diff --git a/server/api/mailApplication/mailApplication.model.js b/server/api/mailApplication/mailApplication.model.js
new file mode 100644 (file)
index 0000000..811065e
--- /dev/null
@@ -0,0 +1 @@
+var _0xd4c3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6D\x61\x69\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xd4c3[0];var _=require(_0xd4c3[1]);var util=require(_0xd4c3[2]);var logger=require(_0xd4c3[4])(_0xd4c3[3]);var attributes=require(_0xd4c3[5]);module[_0xd4c3[6]]= function(_0x64d4x5,_0x64d4x6){return _0x64d4x5[_0xd4c3[9]](_0xd4c3[7],attributes,{tableName:_0xd4c3[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/mailApplication/mailApplication.rpc.js b/server/api/mailApplication/mailApplication.rpc.js
new file mode 100644 (file)
index 0000000..9b7d59d
--- /dev/null
@@ -0,0 +1 @@
+var _0x3b4e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x55\x70\x64\x61\x74\x65\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E"];_0x3b4e[0];var _=require(_0x3b4e[1]);var util=require(_0x3b4e[2]);var moment=require(_0x3b4e[3]);var BPromise=require(_0x3b4e[4]);var db=require(_0x3b4e[6])[_0x3b4e[5]];var utils=require(_0x3b4e[7]);var logger=require(_0x3b4e[9])(_0x3b4e[8]);var jayson=require(_0x3b4e[10]);var client=jayson[_0x3b4e[12]][_0x3b4e[11]]({port:9002});function respondWithRpcPromise(_0x6748xb,_0x6748xc,_0x6748xd){return  new BPromise(function(_0x6748xe,_0x6748xf){return client[_0x3b4e[25]](_0x6748xb,_0x6748xd)[_0x3b4e[24]](function(_0x6748x11){logger[_0x3b4e[17]](_0x3b4e[13],_0x6748xc,_0x3b4e[16]);logger[_0x3b4e[20]](_0x3b4e[18],_0x6748xc,_0x3b4e[16],JSON[_0x3b4e[19]](_0x6748x11));if(_0x6748x11[_0x3b4e[14]]){if(_0x6748x11[_0x3b4e[14]][_0x3b4e[21]]=== 500){logger[_0x3b4e[14]](_0x3b4e[13],_0x6748xc,_0x6748x11[_0x3b4e[14]][_0x3b4e[22]]);return _0x6748xf(_0x6748x11[_0x3b4e[14]][_0x3b4e[22]])};logger[_0x3b4e[14]](_0x3b4e[13],_0x6748xc,_0x6748x11[_0x3b4e[14]][_0x3b4e[22]]);return _0x6748xe(_0x6748x11[_0x3b4e[14]][_0x3b4e[22]])}else {logger[_0x3b4e[17]](_0x3b4e[13],_0x6748xc,_0x3b4e[16]);_0x6748xe(_0x6748x11[_0x3b4e[23]][_0x3b4e[22]])}})[_0x3b4e[15]](function(_0x6748x10){logger[_0x3b4e[14]](_0x3b4e[13],_0x6748xc,_0x6748x10);_0x6748xf(_0x6748x10)})})}exports[_0x3b4e[26]]= function(_0x6748xd){var _0x6748x12=this;return  new Promise(function(_0x6748xe,_0x6748xf){return db[_0x3b4e[34]][_0x3b4e[33]](_0x6748xd[_0x3b4e[27]],{raw:_0x6748xd[_0x3b4e[28]]?(_0x6748xd[_0x3b4e[28]][_0x3b4e[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x6748xd[_0x3b4e[28]]?_0x6748xd[_0x3b4e[28]][_0x3b4e[30]]|| null:null,attributes:_0x6748xd[_0x3b4e[28]]?_0x6748xd[_0x3b4e[28]][_0x3b4e[31]]|| null:null,limit:_0x6748xd[_0x3b4e[28]]?_0x6748xd[_0x3b4e[28]][_0x3b4e[32]]|| null:null})[_0x3b4e[24]](function(_0x6748x11){logger[_0x3b4e[17]](_0x3b4e[26],_0x6748xd);logger[_0x3b4e[20]](_0x3b4e[26],_0x6748xd,JSON[_0x3b4e[19]](_0x6748x11));_0x6748xe(_0x6748x11)})[_0x3b4e[15]](function(_0x6748x10){logger[_0x3b4e[14]](_0x3b4e[26],_0x6748x10[_0x3b4e[22]],_0x6748xd);_0x6748xf(_0x6748x12[_0x3b4e[14]](500,_0x6748x10[_0x3b4e[22]]))})})}
\ No newline at end of file
diff --git a/server/api/mailAttachment/index.js b/server/api/mailAttachment/index.js
new file mode 100644 (file)
index 0000000..37ece99
--- /dev/null
@@ -0,0 +1 @@
+var _0x7c6c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7c6c[0];var multer=require(_0x7c6c[1]);var util=require(_0x7c6c[2]);var path=require(_0x7c6c[3]);var express=require(_0x7c6c[4]);var router=express.Router();var auth=require(_0x7c6c[5]);var config=require(_0x7c6c[6]);var controller=require(_0x7c6c[7]);router[_0x7c6c[11]](_0x7c6c[8],auth[_0x7c6c[9]](),controller[_0x7c6c[10]]);router[_0x7c6c[11]](_0x7c6c[12],auth[_0x7c6c[9]](),controller[_0x7c6c[13]]);router[_0x7c6c[15]](_0x7c6c[8],auth[_0x7c6c[9]](),controller[_0x7c6c[14]]);router[_0x7c6c[17]](_0x7c6c[12],auth[_0x7c6c[9]](),controller[_0x7c6c[16]]);router[_0x7c6c[19]](_0x7c6c[12],auth[_0x7c6c[9]](),controller[_0x7c6c[18]]);module[_0x7c6c[20]]= router
\ No newline at end of file
diff --git a/server/api/mailAttachment/mailAttachment.attributes.js b/server/api/mailAttachment/mailAttachment.attributes.js
new file mode 100644 (file)
index 0000000..53271c4
--- /dev/null
@@ -0,0 +1 @@
+var _0xfaf0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52"];_0xfaf0[0];var Sequelize=require(_0xfaf0[1]);module[_0xfaf0[2]]= {domain:{type:Sequelize[_0xfaf0[3]]},size:{type:Sequelize[_0xfaf0[4]]},path:{type:Sequelize[_0xfaf0[3]]},name:{type:Sequelize[_0xfaf0[3]]},basename:{type:Sequelize[_0xfaf0[3]]},type:{type:Sequelize[_0xfaf0[3]]}}
\ No newline at end of file
diff --git a/server/api/mailAttachment/mailAttachment.controller.js b/server/api/mailAttachment/mailAttachment.controller.js
new file mode 100644 (file)
index 0000000..e58d05b
--- /dev/null
@@ -0,0 +1 @@
+var _0x5cfa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x5cfa[0];var jsonpatch=require(_0x5cfa[1]);var rp=require(_0x5cfa[2]);var moment=require(_0x5cfa[3]);var BPromise=require(_0x5cfa[4]);var util=require(_0x5cfa[5]);var path=require(_0x5cfa[6]);var sox=require(_0x5cfa[7]);var ejs=require(_0x5cfa[8]);var fs=require(_0x5cfa[9]);var _=require(_0x5cfa[10]);var squel=require(_0x5cfa[11]);var crypto=require(_0x5cfa[12]);var jsforce=require(_0x5cfa[13]);var toCsv=require(_0x5cfa[14]);var qs=require(_0x5cfa[15]);var logger=require(_0x5cfa[17])(_0x5cfa[16]);var utils=require(_0x5cfa[18]);var config=require(_0x5cfa[19]);var db=require(_0x5cfa[21])[_0x5cfa[20]];function respondWithStatusCode(_0x27a3x15,_0x27a3x16,_0x27a3x17){_0x27a3x16= _0x27a3x16|| 204;return function(_0x27a3x18){if(_0x27a3x18){logger[_0x5cfa[24]](_0x5cfa[22],_0x27a3x17,_0x27a3x16,_0x5cfa[23]);logger[_0x5cfa[26]](_0x5cfa[25],_0x27a3x17,_0x27a3x16,_0x5cfa[23]);return _0x27a3x15[_0x5cfa[27]](_0x27a3x16)};return _0x27a3x15[_0x5cfa[29]](304)[_0x5cfa[28]]()}}function respondWithResult(_0x27a3x15,_0x27a3x16,_0x27a3x17){_0x27a3x16= _0x27a3x16|| 200;return function(_0x27a3x18){if(_0x27a3x18){logger[_0x5cfa[24]](_0x5cfa[22],_0x27a3x17,_0x27a3x16,_0x5cfa[30]);logger[_0x5cfa[26]](_0x5cfa[25],_0x27a3x17,_0x27a3x16,_0x5cfa[30],JSON[_0x5cfa[31]](_0x27a3x18));return _0x27a3x15[_0x5cfa[29]](_0x27a3x16)[_0x5cfa[32]](_0x27a3x18)};return _0x27a3x15[_0x5cfa[29]](304)[_0x5cfa[28]]()}}function respondWithFilteredResult(_0x27a3x15,_0x27a3x1b,_0x27a3x17){return function(_0x27a3x18){if(_0x27a3x18){var _0x27a3x1c=_0x27a3x18[_0x5cfa[33]],_0x27a3x1d=_0x27a3x1b[_0x5cfa[34]],_0x27a3x1e=_0x27a3x1b[_0x5cfa[34]]+ _0x27a3x1b[_0x5cfa[35]],_0x27a3x16;if(_0x27a3x1e>= _0x27a3x1c){_0x27a3x1e= _0x27a3x1c;_0x27a3x16= 200}else {_0x27a3x16= 206};_0x27a3x15[_0x5cfa[29]](_0x27a3x16);logger[_0x5cfa[24]](_0x5cfa[22],_0x27a3x17,_0x27a3x16,_0x5cfa[36]);logger[_0x5cfa[26]](_0x5cfa[25],_0x27a3x17,_0x27a3x16,_0x5cfa[30],JSON[_0x5cfa[31]](_0x27a3x18));return _0x27a3x15[_0x5cfa[40]](_0x5cfa[37],_0x27a3x1d+ _0x5cfa[38]+ _0x27a3x1e+ _0x5cfa[39]+ _0x27a3x1c)[_0x5cfa[32]](_0x27a3x18)};return null}}function patchUpdates(_0x27a3x20){return function(_0x27a3x18){try{jsonpatch[_0x5cfa[41]](_0x27a3x18,_0x27a3x20,true)}catch(err){return BPromise[_0x5cfa[42]](err)};return _0x27a3x18[_0x5cfa[43]]()}}function saveUpdates(_0x27a3x22,_0x27a3x16,_0x27a3x17){return function(_0x27a3x18){if(_0x27a3x18){return _0x27a3x18[_0x5cfa[46]](_0x27a3x22)[_0x5cfa[45]](function(_0x27a3x23){logger[_0x5cfa[24]](_0x5cfa[22],_0x27a3x17,_0x27a3x16,_0x5cfa[44]);logger[_0x5cfa[26]](_0x5cfa[25],_0x27a3x17,_0x27a3x16,_0x5cfa[44],JSON[_0x5cfa[31]](_0x27a3x18));return _0x27a3x23})};return null}}function removeEntity(_0x27a3x15,_0x27a3x16,_0x27a3x17){return function(_0x27a3x18){if(_0x27a3x18){return _0x27a3x18[_0x5cfa[48]]()[_0x5cfa[45]](function(){logger[_0x5cfa[24]](_0x5cfa[22],_0x27a3x17,_0x27a3x16,_0x5cfa[47]);logger[_0x5cfa[26]](_0x5cfa[25],_0x27a3x17,_0x27a3x16,_0x5cfa[47],JSON[_0x5cfa[31]](_0x27a3x18));_0x27a3x15[_0x5cfa[29]](204)[_0x5cfa[28]]()})}}}function handleEntityNotFound(_0x27a3x15,_0x27a3x16,_0x27a3x17){return function(_0x27a3x18){if(!_0x27a3x18){logger[_0x5cfa[50]](_0x5cfa[22],_0x27a3x17,404,_0x5cfa[49]);_0x27a3x15[_0x5cfa[29]](404)[_0x5cfa[28]]();return null};return _0x27a3x18}}function handleError(_0x27a3x15,_0x27a3x16,_0x27a3x17){_0x27a3x16= _0x27a3x16|| 500;return function(_0x27a3x27){logger[_0x5cfa[50]](_0x5cfa[22],_0x27a3x17,_0x27a3x16,JSON[_0x5cfa[31]](_0x27a3x27));delete _0x27a3x27[_0x5cfa[51]];_0x27a3x15[_0x5cfa[29]](_0x27a3x16)[_0x5cfa[52]](_0x27a3x27)}}exports[_0x5cfa[53]]= function(_0x27a3x28,_0x27a3x15){var _0x27a3x1b={},_0x27a3x29={};_0x27a3x29[_0x5cfa[54]]= _[_0x5cfa[57]](db[_0x5cfa[56]][_0x5cfa[55]]);_0x27a3x29[_0x5cfa[58]]= _[_0x5cfa[57]](_0x27a3x28[_0x5cfa[58]]);_0x27a3x29[_0x5cfa[59]]= _[_0x5cfa[60]](_0x27a3x29[_0x5cfa[54]],_0x27a3x29[_0x5cfa[58]]);_0x27a3x1b[_0x5cfa[61]]= _[_0x5cfa[60]](_0x27a3x29[_0x5cfa[54]],qs[_0x5cfa[62]](_0x27a3x28[_0x5cfa[58]][_0x5cfa[62]]));_0x27a3x1b[_0x5cfa[61]]= (_0x27a3x1b[_0x5cfa[61]][_0x5cfa[63]])?_0x27a3x1b[_0x5cfa[61]]:_0x27a3x29[_0x5cfa[54]];if(!_0x27a3x28[_0x5cfa[58]][_0x5cfa[65]](_0x5cfa[64])){_0x27a3x1b[_0x5cfa[35]]= qs[_0x5cfa[35]](_0x27a3x28[_0x5cfa[58]][_0x5cfa[35]]);_0x27a3x1b[_0x5cfa[34]]= qs[_0x5cfa[34]](_0x27a3x28[_0x5cfa[58]][_0x5cfa[34]])};_0x27a3x1b[_0x5cfa[66]]= qs[_0x5cfa[67]](_0x27a3x28[_0x5cfa[58]][_0x5cfa[67]]);_0x27a3x1b[_0x5cfa[68]]= qs[_0x5cfa[59]](_[_0x5cfa[69]](_0x27a3x28[_0x5cfa[58]],_0x27a3x29[_0x5cfa[59]]));if(_0x27a3x28[_0x5cfa[58]][_0x5cfa[70]]){_0x27a3x1b[_0x5cfa[68]]= _[_0x5cfa[73]](_0x27a3x1b[_0x5cfa[68]],{$or:_[_0x5cfa[72]](_0x27a3x1b[_0x5cfa[61]],function(_0x27a3x2a){var _0x27a3x2b={};_0x27a3x2b[_0x27a3x2a]= {$like:_0x5cfa[71]+ _0x27a3x28[_0x5cfa[58]][_0x5cfa[70]]+ _0x5cfa[71]};return _0x27a3x2b})})};_0x27a3x1b= _[_0x5cfa[73]]({},_0x27a3x1b,_0x27a3x28[_0x5cfa[74]]);return db[_0x5cfa[56]][_0x5cfa[76]](_0x27a3x1b)[_0x5cfa[45]](respondWithFilteredResult(_0x27a3x15,_0x27a3x1b,_0x5cfa[53]))[_0x5cfa[75]](handleError(_0x27a3x15,null,_0x5cfa[53]))};exports[_0x5cfa[77]]= function(_0x27a3x28,_0x27a3x15){var _0x27a3x1b={raw:true,where:{id:_0x27a3x28[_0x5cfa[79]][_0x5cfa[78]]}},_0x27a3x29={};_0x27a3x29[_0x5cfa[54]]= _[_0x5cfa[57]](db[_0x5cfa[56]][_0x5cfa[55]]);_0x27a3x29[_0x5cfa[58]]= _[_0x5cfa[57]](_0x27a3x28[_0x5cfa[58]]);_0x27a3x29[_0x5cfa[59]]= _[_0x5cfa[60]](_0x27a3x29[_0x5cfa[54]],_0x27a3x29[_0x5cfa[58]]);_0x27a3x1b[_0x5cfa[61]]= _[_0x5cfa[60]](_0x27a3x29[_0x5cfa[54]],qs[_0x5cfa[62]](_0x27a3x28[_0x5cfa[58]][_0x5cfa[62]]));_0x27a3x1b[_0x5cfa[61]]= (_0x27a3x1b[_0x5cfa[61]][_0x5cfa[63]])?_0x27a3x1b[_0x5cfa[61]]:_0x27a3x29[_0x5cfa[54]];_0x27a3x1b= _[_0x5cfa[73]]({},_0x27a3x1b,_0x27a3x28[_0x5cfa[74]]);return db[_0x5cfa[56]][_0x5cfa[80]](_0x27a3x1b)[_0x5cfa[45]](handleEntityNotFound(_0x27a3x15,null,_0x5cfa[77]))[_0x5cfa[45]](respondWithResult(_0x27a3x15,null,_0x5cfa[77]))[_0x5cfa[75]](handleError(_0x27a3x15,null,_0x5cfa[77]))};exports[_0x5cfa[81]]= function(_0x27a3x28,_0x27a3x15){return db[_0x5cfa[56]][_0x5cfa[81]](_0x27a3x28[_0x5cfa[82]],{})[_0x5cfa[45]](respondWithResult(_0x27a3x15,201,_0x5cfa[81]))[_0x5cfa[75]](handleError(_0x27a3x15,null,_0x5cfa[81]))};exports[_0x5cfa[46]]= function(_0x27a3x28,_0x27a3x15){if(_0x27a3x28[_0x5cfa[82]][_0x5cfa[78]]){delete _0x27a3x28[_0x5cfa[82]][_0x5cfa[78]]};return db[_0x5cfa[56]][_0x5cfa[80]]({where:{id:_0x27a3x28[_0x5cfa[79]][_0x5cfa[78]]}})[_0x5cfa[45]](handleEntityNotFound(_0x27a3x15,null,_0x5cfa[46]))[_0x5cfa[45]](saveUpdates(_0x27a3x28[_0x5cfa[82]],null,_0x5cfa[46]))[_0x5cfa[45]](respondWithResult(_0x27a3x15,null,_0x5cfa[46]))[_0x5cfa[75]](handleError(_0x27a3x15,null,_0x5cfa[46]))};exports[_0x5cfa[48]]= function(_0x27a3x28,_0x27a3x15){return db[_0x5cfa[56]][_0x5cfa[80]]({where:{id:_0x27a3x28[_0x5cfa[79]][_0x5cfa[78]]}})[_0x5cfa[45]](handleEntityNotFound(_0x27a3x15,null,_0x5cfa[48]))[_0x5cfa[45]](removeEntity(_0x27a3x15,null,_0x5cfa[48]))[_0x5cfa[75]](handleError(_0x27a3x15,null,_0x5cfa[48]))}
\ No newline at end of file
diff --git a/server/api/mailAttachment/mailAttachment.model.js b/server/api/mailAttachment/mailAttachment.model.js
new file mode 100644 (file)
index 0000000..8fd697c
--- /dev/null
@@ -0,0 +1 @@
+var _0xb608=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x6D\x61\x69\x6C\x5F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0xb608[0];var _=require(_0xb608[1]);var util=require(_0xb608[2]);var logger=require(_0xb608[4])(_0xb608[3]);var attributes=require(_0xb608[5]);module[_0xb608[6]]= function(_0xc035x5,_0xc035x6){return _0xc035x5[_0xb608[9]](_0xb608[7],attributes,{tableName:_0xb608[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/mailAttachment/mailAttachment.rpc.js b/server/api/mailAttachment/mailAttachment.rpc.js
new file mode 100644 (file)
index 0000000..eb9ada3
--- /dev/null
@@ -0,0 +1 @@
+var _0xc1d3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xc1d3[0];var _=require(_0xc1d3[1]);var util=require(_0xc1d3[2]);var moment=require(_0xc1d3[3]);var BPromise=require(_0xc1d3[4]);var db=require(_0xc1d3[6])[_0xc1d3[5]];var utils=require(_0xc1d3[7]);var logger=require(_0xc1d3[9])(_0xc1d3[8]);var jayson=require(_0xc1d3[10]);var client=jayson[_0xc1d3[12]][_0xc1d3[11]]({port:9002});function respondWithRpcPromise(_0x32f6xb,_0x32f6xc,_0x32f6xd){return  new BPromise(function(_0x32f6xe,_0x32f6xf){return client[_0xc1d3[25]](_0x32f6xb,_0x32f6xd)[_0xc1d3[24]](function(_0x32f6x11){logger[_0xc1d3[17]](_0xc1d3[13],_0x32f6xc,_0xc1d3[16]);logger[_0xc1d3[20]](_0xc1d3[18],_0x32f6xc,_0xc1d3[16],JSON[_0xc1d3[19]](_0x32f6x11));if(_0x32f6x11[_0xc1d3[14]]){if(_0x32f6x11[_0xc1d3[14]][_0xc1d3[21]]=== 500){logger[_0xc1d3[14]](_0xc1d3[13],_0x32f6xc,_0x32f6x11[_0xc1d3[14]][_0xc1d3[22]]);return _0x32f6xf(_0x32f6x11[_0xc1d3[14]][_0xc1d3[22]])};logger[_0xc1d3[14]](_0xc1d3[13],_0x32f6xc,_0x32f6x11[_0xc1d3[14]][_0xc1d3[22]]);return _0x32f6xe(_0x32f6x11[_0xc1d3[14]][_0xc1d3[22]])}else {logger[_0xc1d3[17]](_0xc1d3[13],_0x32f6xc,_0xc1d3[16]);_0x32f6xe(_0x32f6x11[_0xc1d3[23]][_0xc1d3[22]])}})[_0xc1d3[15]](function(_0x32f6x10){logger[_0xc1d3[14]](_0xc1d3[13],_0x32f6xc,_0x32f6x10);_0x32f6xf(_0x32f6x10)})})}
\ No newline at end of file
diff --git a/server/api/mailDisposition/index.js b/server/api/mailDisposition/index.js
new file mode 100644 (file)
index 0000000..389c439
--- /dev/null
@@ -0,0 +1 @@
+var _0xf04f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf04f[0];var multer=require(_0xf04f[1]);var util=require(_0xf04f[2]);var path=require(_0xf04f[3]);var express=require(_0xf04f[4]);var router=express.Router();var auth=require(_0xf04f[5]);var config=require(_0xf04f[6]);var controller=require(_0xf04f[7]);router[_0xf04f[11]](_0xf04f[8],auth[_0xf04f[9]](),controller[_0xf04f[10]]);router[_0xf04f[14]](_0xf04f[12],auth[_0xf04f[9]](),controller[_0xf04f[13]]);router[_0xf04f[16]](_0xf04f[8],auth[_0xf04f[9]](),controller[_0xf04f[15]]);router[_0xf04f[18]](_0xf04f[8],auth[_0xf04f[9]](),controller[_0xf04f[17]]);module[_0xf04f[19]]= router
\ No newline at end of file
diff --git a/server/api/mailDisposition/mailDisposition.attributes.js b/server/api/mailDisposition/mailDisposition.attributes.js
new file mode 100644 (file)
index 0000000..6766cb5
--- /dev/null
@@ -0,0 +1 @@
+var _0xa016=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xa016[0];var Sequelize=require(_0xa016[1]);module[_0xa016[2]]= {name:{type:Sequelize[_0xa016[3]]}}
\ No newline at end of file
diff --git a/server/api/mailDisposition/mailDisposition.controller.js b/server/api/mailDisposition/mailDisposition.controller.js
new file mode 100644 (file)
index 0000000..4120d77
--- /dev/null
@@ -0,0 +1 @@
+var _0xd688=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xd688[0];var jsonpatch=require(_0xd688[1]);var rp=require(_0xd688[2]);var moment=require(_0xd688[3]);var BPromise=require(_0xd688[4]);var util=require(_0xd688[5]);var path=require(_0xd688[6]);var sox=require(_0xd688[7]);var ejs=require(_0xd688[8]);var fs=require(_0xd688[9]);var _=require(_0xd688[10]);var squel=require(_0xd688[11]);var crypto=require(_0xd688[12]);var jsforce=require(_0xd688[13]);var toCsv=require(_0xd688[14]);var qs=require(_0xd688[15]);var logger=require(_0xd688[17])(_0xd688[16]);var utils=require(_0xd688[18]);var config=require(_0xd688[19]);var db=require(_0xd688[21])[_0xd688[20]];function respondWithStatusCode(_0x3763x15,_0x3763x16,_0x3763x17){_0x3763x16= _0x3763x16|| 204;return function(_0x3763x18){if(_0x3763x18){logger[_0xd688[24]](_0xd688[22],_0x3763x17,_0x3763x16,_0xd688[23]);logger[_0xd688[26]](_0xd688[25],_0x3763x17,_0x3763x16,_0xd688[23]);return _0x3763x15[_0xd688[27]](_0x3763x16)};return _0x3763x15[_0xd688[29]](304)[_0xd688[28]]()}}function respondWithResult(_0x3763x15,_0x3763x16,_0x3763x17){_0x3763x16= _0x3763x16|| 200;return function(_0x3763x18){if(_0x3763x18){logger[_0xd688[24]](_0xd688[22],_0x3763x17,_0x3763x16,_0xd688[30]);logger[_0xd688[26]](_0xd688[25],_0x3763x17,_0x3763x16,_0xd688[30],JSON[_0xd688[31]](_0x3763x18));return _0x3763x15[_0xd688[29]](_0x3763x16)[_0xd688[32]](_0x3763x18)};return _0x3763x15[_0xd688[29]](304)[_0xd688[28]]()}}function respondWithFilteredResult(_0x3763x15,_0x3763x1b,_0x3763x17){return function(_0x3763x18){if(_0x3763x18){var _0x3763x1c=_0x3763x18[_0xd688[33]],_0x3763x1d=_0x3763x1b[_0xd688[34]],_0x3763x1e=_0x3763x1b[_0xd688[34]]+ _0x3763x1b[_0xd688[35]],_0x3763x16;if(_0x3763x1e>= _0x3763x1c){_0x3763x1e= _0x3763x1c;_0x3763x16= 200}else {_0x3763x16= 206};_0x3763x15[_0xd688[29]](_0x3763x16);logger[_0xd688[24]](_0xd688[22],_0x3763x17,_0x3763x16,_0xd688[36]);logger[_0xd688[26]](_0xd688[25],_0x3763x17,_0x3763x16,_0xd688[30],JSON[_0xd688[31]](_0x3763x18));return _0x3763x15[_0xd688[40]](_0xd688[37],_0x3763x1d+ _0xd688[38]+ _0x3763x1e+ _0xd688[39]+ _0x3763x1c)[_0xd688[32]](_0x3763x18)};return null}}function patchUpdates(_0x3763x20){return function(_0x3763x18){try{jsonpatch[_0xd688[41]](_0x3763x18,_0x3763x20,true)}catch(err){return BPromise[_0xd688[42]](err)};return _0x3763x18[_0xd688[43]]()}}function saveUpdates(_0x3763x22,_0x3763x16,_0x3763x17){return function(_0x3763x18){if(_0x3763x18){return _0x3763x18[_0xd688[46]](_0x3763x22)[_0xd688[45]](function(_0x3763x23){logger[_0xd688[24]](_0xd688[22],_0x3763x17,_0x3763x16,_0xd688[44]);logger[_0xd688[26]](_0xd688[25],_0x3763x17,_0x3763x16,_0xd688[44],JSON[_0xd688[31]](_0x3763x18));return _0x3763x23})};return null}}function removeEntity(_0x3763x15,_0x3763x16,_0x3763x17){return function(_0x3763x18){if(_0x3763x18){return _0x3763x18[_0xd688[48]]()[_0xd688[45]](function(){logger[_0xd688[24]](_0xd688[22],_0x3763x17,_0x3763x16,_0xd688[47]);logger[_0xd688[26]](_0xd688[25],_0x3763x17,_0x3763x16,_0xd688[47],JSON[_0xd688[31]](_0x3763x18));_0x3763x15[_0xd688[29]](204)[_0xd688[28]]()})}}}function handleEntityNotFound(_0x3763x15,_0x3763x16,_0x3763x17){return function(_0x3763x18){if(!_0x3763x18){logger[_0xd688[50]](_0xd688[22],_0x3763x17,404,_0xd688[49]);_0x3763x15[_0xd688[29]](404)[_0xd688[28]]();return null};return _0x3763x18}}function handleError(_0x3763x15,_0x3763x16,_0x3763x17){_0x3763x16= _0x3763x16|| 500;return function(_0x3763x27){logger[_0xd688[50]](_0xd688[22],_0x3763x17,_0x3763x16,JSON[_0xd688[31]](_0x3763x27));delete _0x3763x27[_0xd688[51]];_0x3763x15[_0xd688[29]](_0x3763x16)[_0xd688[52]](_0x3763x27)}}exports[_0xd688[53]]= function(_0x3763x28,_0x3763x15){var _0x3763x1b={raw:true,where:{id:_0x3763x28[_0xd688[55]][_0xd688[54]]}},_0x3763x29={};_0x3763x29[_0xd688[56]]= _[_0xd688[59]](db[_0xd688[58]][_0xd688[57]]);_0x3763x29[_0xd688[60]]= _[_0xd688[59]](_0x3763x28[_0xd688[60]]);_0x3763x29[_0xd688[61]]= _[_0xd688[62]](_0x3763x29[_0xd688[56]],_0x3763x29[_0xd688[60]]);_0x3763x1b[_0xd688[63]]= _[_0xd688[62]](_0x3763x29[_0xd688[56]],qs[_0xd688[64]](_0x3763x28[_0xd688[60]][_0xd688[64]]));_0x3763x1b[_0xd688[63]]= (_0x3763x1b[_0xd688[63]][_0xd688[65]])?_0x3763x1b[_0xd688[63]]:_0x3763x29[_0xd688[56]];_0x3763x1b= _[_0xd688[67]]({},_0x3763x1b,_0x3763x28[_0xd688[66]]);return db[_0xd688[58]][_0xd688[69]](_0x3763x1b)[_0xd688[45]](handleEntityNotFound(_0x3763x15,null,_0xd688[53]))[_0xd688[45]](respondWithResult(_0x3763x15,null,_0xd688[53]))[_0xd688[68]](handleError(_0x3763x15,null,_0xd688[53]))};exports[_0xd688[70]]= function(_0x3763x28,_0x3763x15){return db[_0xd688[58]][_0xd688[70]](_0x3763x28[_0xd688[71]],{})[_0xd688[45]](respondWithResult(_0x3763x15,201,_0xd688[70]))[_0xd688[68]](handleError(_0x3763x15,null,_0xd688[70]))};exports[_0xd688[46]]= function(_0x3763x28,_0x3763x15){if(_0x3763x28[_0xd688[71]][_0xd688[54]]){delete _0x3763x28[_0xd688[71]][_0xd688[54]]};return db[_0xd688[58]][_0xd688[69]]({where:{id:_0x3763x28[_0xd688[55]][_0xd688[54]]}})[_0xd688[45]](handleEntityNotFound(_0x3763x15,null,_0xd688[46]))[_0xd688[45]](saveUpdates(_0x3763x28[_0xd688[71]],null,_0xd688[46]))[_0xd688[45]](respondWithResult(_0x3763x15,null,_0xd688[46]))[_0xd688[68]](handleError(_0x3763x15,null,_0xd688[46]))};exports[_0xd688[48]]= function(_0x3763x28,_0x3763x15){return db[_0xd688[58]][_0xd688[69]]({where:{id:_0x3763x28[_0xd688[55]][_0xd688[54]]}})[_0xd688[45]](handleEntityNotFound(_0x3763x15,null,_0xd688[48]))[_0xd688[45]](removeEntity(_0x3763x15,null,_0xd688[48]))[_0xd688[68]](handleError(_0x3763x15,null,_0xd688[48]))}
\ No newline at end of file
diff --git a/server/api/mailDisposition/mailDisposition.model.js b/server/api/mailDisposition/mailDisposition.model.js
new file mode 100644 (file)
index 0000000..2fbe8f0
--- /dev/null
@@ -0,0 +1 @@
+var _0x565f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6D\x61\x69\x6C\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x565f[0];var _=require(_0x565f[1]);var util=require(_0x565f[2]);var logger=require(_0x565f[4])(_0x565f[3]);var attributes=require(_0x565f[5]);module[_0x565f[6]]= function(_0xb70fx5,_0xb70fx6){return _0xb70fx5[_0x565f[9]](_0x565f[7],attributes,{tableName:_0x565f[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/mailDisposition/mailDisposition.rpc.js b/server/api/mailDisposition/mailDisposition.rpc.js
new file mode 100644 (file)
index 0000000..9794c2c
--- /dev/null
@@ -0,0 +1 @@
+var _0x5227=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x55\x70\x64\x61\x74\x65\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E"];_0x5227[0];var _=require(_0x5227[1]);var util=require(_0x5227[2]);var moment=require(_0x5227[3]);var BPromise=require(_0x5227[4]);var db=require(_0x5227[6])[_0x5227[5]];var utils=require(_0x5227[7]);var logger=require(_0x5227[9])(_0x5227[8]);var jayson=require(_0x5227[10]);var client=jayson[_0x5227[12]][_0x5227[11]]({port:9002});function respondWithRpcPromise(_0xcc4bxb,_0xcc4bxc,_0xcc4bxd){return  new BPromise(function(_0xcc4bxe,_0xcc4bxf){return client[_0x5227[25]](_0xcc4bxb,_0xcc4bxd)[_0x5227[24]](function(_0xcc4bx11){logger[_0x5227[17]](_0x5227[13],_0xcc4bxc,_0x5227[16]);logger[_0x5227[20]](_0x5227[18],_0xcc4bxc,_0x5227[16],JSON[_0x5227[19]](_0xcc4bx11));if(_0xcc4bx11[_0x5227[14]]){if(_0xcc4bx11[_0x5227[14]][_0x5227[21]]=== 500){logger[_0x5227[14]](_0x5227[13],_0xcc4bxc,_0xcc4bx11[_0x5227[14]][_0x5227[22]]);return _0xcc4bxf(_0xcc4bx11[_0x5227[14]][_0x5227[22]])};logger[_0x5227[14]](_0x5227[13],_0xcc4bxc,_0xcc4bx11[_0x5227[14]][_0x5227[22]]);return _0xcc4bxe(_0xcc4bx11[_0x5227[14]][_0x5227[22]])}else {logger[_0x5227[17]](_0x5227[13],_0xcc4bxc,_0x5227[16]);_0xcc4bxe(_0xcc4bx11[_0x5227[23]][_0x5227[22]])}})[_0x5227[15]](function(_0xcc4bx10){logger[_0x5227[14]](_0x5227[13],_0xcc4bxc,_0xcc4bx10);_0xcc4bxf(_0xcc4bx10)})})}exports[_0x5227[26]]= function(_0xcc4bxd){var _0xcc4bx12=this;return  new Promise(function(_0xcc4bxe,_0xcc4bxf){return db[_0x5227[34]][_0x5227[33]](_0xcc4bxd[_0x5227[27]],{raw:_0xcc4bxd[_0x5227[28]]?(_0xcc4bxd[_0x5227[28]][_0x5227[29]]=== undefined)?true:false:true,individualHooks:true,where:_0xcc4bxd[_0x5227[28]]?_0xcc4bxd[_0x5227[28]][_0x5227[30]]|| null:null,attributes:_0xcc4bxd[_0x5227[28]]?_0xcc4bxd[_0x5227[28]][_0x5227[31]]|| null:null,limit:_0xcc4bxd[_0x5227[28]]?_0xcc4bxd[_0x5227[28]][_0x5227[32]]|| null:null})[_0x5227[24]](function(_0xcc4bx11){logger[_0x5227[17]](_0x5227[26],_0xcc4bxd);logger[_0x5227[20]](_0x5227[26],_0xcc4bxd,JSON[_0x5227[19]](_0xcc4bx11));_0xcc4bxe(_0xcc4bx11)})[_0x5227[15]](function(_0xcc4bx10){logger[_0x5227[14]](_0x5227[26],_0xcc4bx10[_0x5227[22]],_0xcc4bxd);_0xcc4bxf(_0xcc4bx12[_0x5227[14]](500,_0xcc4bx10[_0x5227[22]]))})})}
\ No newline at end of file
diff --git a/server/api/mailInteraction/index.js b/server/api/mailInteraction/index.js
new file mode 100644 (file)
index 0000000..d89d1bf
--- /dev/null
@@ -0,0 +1 @@
+var _0x934c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x934c[0];var multer=require(_0x934c[1]);var util=require(_0x934c[2]);var path=require(_0x934c[3]);var express=require(_0x934c[4]);var router=express.Router();var auth=require(_0x934c[5]);var config=require(_0x934c[6]);var controller=require(_0x934c[7]);router[_0x934c[11]](_0x934c[8],auth[_0x934c[9]](),controller[_0x934c[10]]);router[_0x934c[11]](_0x934c[12],auth[_0x934c[9]](),controller[_0x934c[13]]);router[_0x934c[11]](_0x934c[14],auth[_0x934c[9]](),controller[_0x934c[15]]);router[_0x934c[11]](_0x934c[16],auth[_0x934c[9]](),controller[_0x934c[17]]);router[_0x934c[19]](_0x934c[8],auth[_0x934c[9]](),controller[_0x934c[18]]);router[_0x934c[19]](_0x934c[16],auth[_0x934c[9]](),controller[_0x934c[20]]);router[_0x934c[22]](_0x934c[14],auth[_0x934c[9]](),controller[_0x934c[21]]);router[_0x934c[24]](_0x934c[14],auth[_0x934c[9]](),controller[_0x934c[23]]);module[_0x934c[25]]= router
\ No newline at end of file
diff --git a/server/api/mailInteraction/mailInteraction.attributes.js b/server/api/mailInteraction/mailInteraction.attributes.js
new file mode 100644 (file)
index 0000000..0801613
--- /dev/null
@@ -0,0 +1 @@
+var _0xaa27=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x43\x4C\x4F\x53\x45\x44","\x73\x74\x61\x74\x75\x73","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x72\x72\x69\x76\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6C\x6F\x73\x65\x64\x41\x74","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x44\x41\x54\x45","\x54\x45\x58\x54","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E"];_0xaa27[0];var Sequelize=require(_0xaa27[1]);var moment=require(_0xaa27[2]);module[_0xaa27[3]]= {subject:{type:Sequelize[_0xaa27[4]]},from:{type:Sequelize[_0xaa27[4]]},account:{type:Sequelize[_0xaa27[4]]},attachment:{type:Sequelize[_0xaa27[5]],defaultValue:false},mailIn:{type:Sequelize[_0xaa27[6]],defaultValue:0},mailOut:{type:Sequelize[_0xaa27[6]],defaultValue:0},status:{type:Sequelize.ENUM(_0xaa27[7],_0xaa27[8],_0xaa27[9],_0xaa27[10]),defaultValue:_0xaa27[7],set:function(_0x6910x3){this[_0xaa27[12]](_0xaa27[11],_0x6910x3);switch(_0x6910x3){case _0xaa27[7]:this[_0xaa27[12]](_0xaa27[13],moment()[_0xaa27[15]](_0xaa27[14]));break;case _0xaa27[10]:this[_0xaa27[12]](_0xaa27[16],moment()[_0xaa27[15]](_0xaa27[14]));break;default:}}},lastEvent:{type:Sequelize.ENUM(_0xaa27[17],_0xaa27[18],_0xaa27[19],_0xaa27[20],_0xaa27[21])},lastEventAt:{type:Sequelize[_0xaa27[22]]},deleted:{type:Sequelize[_0xaa27[5]],defaultValue:false},waiting:{type:Sequelize[_0xaa27[5]],defaultValue:false},tags:{type:Sequelize[_0xaa27[23]],get:function(){var _0x6910x4;if(this[_0xaa27[25]](_0xaa27[24])){_0x6910x4= this[_0xaa27[25]](_0xaa27[24])[_0xaa27[27]](_0xaa27[26]);_0x6910x4[_0xaa27[28]]()}else {_0x6910x4= []};return _0x6910x4},set:function(_0x6910x5){this[_0xaa27[12]](_0xaa27[24],_0x6910x5&& _0x6910x5[_0xaa27[29]]?_0x6910x5[_0xaa27[30]](_0xaa27[26])+ _0xaa27[26]:null)}},disposition:{type:Sequelize[_0xaa27[4]]},openReason:{type:Sequelize[_0xaa27[4]]},ParentId:{type:Sequelize[_0xaa27[6]]},arrivedAt:{type:Sequelize[_0xaa27[22]]},closedAt:{type:Sequelize[_0xaa27[22]]}}
\ No newline at end of file
diff --git a/server/api/mailInteraction/mailInteraction.controller.js b/server/api/mailInteraction/mailInteraction.controller.js
new file mode 100644 (file)
index 0000000..da5b6b6
--- /dev/null
@@ -0,0 +1 @@
+var _0x40cc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x40cc[0];var jsonpatch=require(_0x40cc[1]);var rp=require(_0x40cc[2]);var moment=require(_0x40cc[3]);var BPromise=require(_0x40cc[4]);var util=require(_0x40cc[5]);var path=require(_0x40cc[6]);var sox=require(_0x40cc[7]);var ejs=require(_0x40cc[8]);var fs=require(_0x40cc[9]);var _=require(_0x40cc[10]);var squel=require(_0x40cc[11]);var crypto=require(_0x40cc[12]);var jsforce=require(_0x40cc[13]);var toCsv=require(_0x40cc[14]);var qs=require(_0x40cc[15]);var logger=require(_0x40cc[17])(_0x40cc[16]);var utils=require(_0x40cc[18]);var config=require(_0x40cc[19]);var db=require(_0x40cc[21])[_0x40cc[20]];function respondWithStatusCode(_0xc712x15,_0xc712x16,_0xc712x17){_0xc712x16= _0xc712x16|| 204;return function(_0xc712x18){if(_0xc712x18){logger[_0x40cc[24]](_0x40cc[22],_0xc712x17,_0xc712x16,_0x40cc[23]);logger[_0x40cc[26]](_0x40cc[25],_0xc712x17,_0xc712x16,_0x40cc[23]);return _0xc712x15[_0x40cc[27]](_0xc712x16)};return _0xc712x15[_0x40cc[29]](304)[_0x40cc[28]]()}}function respondWithResult(_0xc712x15,_0xc712x16,_0xc712x17){_0xc712x16= _0xc712x16|| 200;return function(_0xc712x18){if(_0xc712x18){logger[_0x40cc[24]](_0x40cc[22],_0xc712x17,_0xc712x16,_0x40cc[30]);logger[_0x40cc[26]](_0x40cc[25],_0xc712x17,_0xc712x16,_0x40cc[30],JSON[_0x40cc[31]](_0xc712x18));return _0xc712x15[_0x40cc[29]](_0xc712x16)[_0x40cc[32]](_0xc712x18)};return _0xc712x15[_0x40cc[29]](304)[_0x40cc[28]]()}}function respondWithFilteredResult(_0xc712x15,_0xc712x1b,_0xc712x17){return function(_0xc712x18){if(_0xc712x18){var _0xc712x1c=_0xc712x18[_0x40cc[33]],_0xc712x1d=_0xc712x1b[_0x40cc[34]],_0xc712x1e=_0xc712x1b[_0x40cc[34]]+ _0xc712x1b[_0x40cc[35]],_0xc712x16;if(_0xc712x1e>= _0xc712x1c){_0xc712x1e= _0xc712x1c;_0xc712x16= 200}else {_0xc712x16= 206};_0xc712x15[_0x40cc[29]](_0xc712x16);logger[_0x40cc[24]](_0x40cc[22],_0xc712x17,_0xc712x16,_0x40cc[36]);logger[_0x40cc[26]](_0x40cc[25],_0xc712x17,_0xc712x16,_0x40cc[30],JSON[_0x40cc[31]](_0xc712x18));return _0xc712x15[_0x40cc[40]](_0x40cc[37],_0xc712x1d+ _0x40cc[38]+ _0xc712x1e+ _0x40cc[39]+ _0xc712x1c)[_0x40cc[32]](_0xc712x18)};return null}}function patchUpdates(_0xc712x20){return function(_0xc712x18){try{jsonpatch[_0x40cc[41]](_0xc712x18,_0xc712x20,true)}catch(err){return BPromise[_0x40cc[42]](err)};return _0xc712x18[_0x40cc[43]]()}}function saveUpdates(_0xc712x22,_0xc712x16,_0xc712x17){return function(_0xc712x18){if(_0xc712x18){return _0xc712x18[_0x40cc[46]](_0xc712x22)[_0x40cc[45]](function(_0xc712x23){logger[_0x40cc[24]](_0x40cc[22],_0xc712x17,_0xc712x16,_0x40cc[44]);logger[_0x40cc[26]](_0x40cc[25],_0xc712x17,_0xc712x16,_0x40cc[44],JSON[_0x40cc[31]](_0xc712x18));return _0xc712x23})};return null}}function removeEntity(_0xc712x15,_0xc712x16,_0xc712x17){return function(_0xc712x18){if(_0xc712x18){return _0xc712x18[_0x40cc[48]]()[_0x40cc[45]](function(){logger[_0x40cc[24]](_0x40cc[22],_0xc712x17,_0xc712x16,_0x40cc[47]);logger[_0x40cc[26]](_0x40cc[25],_0xc712x17,_0xc712x16,_0x40cc[47],JSON[_0x40cc[31]](_0xc712x18));_0xc712x15[_0x40cc[29]](204)[_0x40cc[28]]()})}}}function handleEntityNotFound(_0xc712x15,_0xc712x16,_0xc712x17){return function(_0xc712x18){if(!_0xc712x18){logger[_0x40cc[50]](_0x40cc[22],_0xc712x17,404,_0x40cc[49]);_0xc712x15[_0x40cc[29]](404)[_0x40cc[28]]();return null};return _0xc712x18}}function handleError(_0xc712x15,_0xc712x16,_0xc712x17){_0xc712x16= _0xc712x16|| 500;return function(_0xc712x27){logger[_0x40cc[50]](_0x40cc[22],_0xc712x17,_0xc712x16,JSON[_0x40cc[31]](_0xc712x27));delete _0xc712x27[_0x40cc[51]];_0xc712x15[_0x40cc[29]](_0xc712x16)[_0x40cc[52]](_0xc712x27)}}exports[_0x40cc[53]]= function(_0xc712x28,_0xc712x15){var _0xc712x1b={},_0xc712x29={};_0xc712x29[_0x40cc[54]]= _[_0x40cc[57]](db[_0x40cc[56]][_0x40cc[55]]);_0xc712x29[_0x40cc[58]]= _[_0x40cc[57]](_0xc712x28[_0x40cc[58]]);_0xc712x29[_0x40cc[59]]= _[_0x40cc[60]](_0xc712x29[_0x40cc[54]],_0xc712x29[_0x40cc[58]]);_0xc712x1b[_0x40cc[61]]= _[_0x40cc[60]](_0xc712x29[_0x40cc[54]],qs[_0x40cc[62]](_0xc712x28[_0x40cc[58]][_0x40cc[62]]));_0xc712x1b[_0x40cc[61]]= (_0xc712x1b[_0x40cc[61]][_0x40cc[63]])?_0xc712x1b[_0x40cc[61]]:_0xc712x29[_0x40cc[54]];if(!_0xc712x28[_0x40cc[58]][_0x40cc[65]](_0x40cc[64])){_0xc712x1b[_0x40cc[35]]= qs[_0x40cc[35]](_0xc712x28[_0x40cc[58]][_0x40cc[35]]);_0xc712x1b[_0x40cc[34]]= qs[_0x40cc[34]](_0xc712x28[_0x40cc[58]][_0x40cc[34]])};_0xc712x1b[_0x40cc[66]]= qs[_0x40cc[67]](_0xc712x28[_0x40cc[58]][_0x40cc[67]]);_0xc712x1b[_0x40cc[68]]= qs[_0x40cc[59]](_[_0x40cc[69]](_0xc712x28[_0x40cc[58]],_0xc712x29[_0x40cc[59]]));if(_0xc712x28[_0x40cc[58]][_0x40cc[70]]){_0xc712x1b[_0x40cc[68]]= _[_0x40cc[73]](_0xc712x1b[_0x40cc[68]],{$or:_[_0x40cc[72]](_0xc712x1b[_0x40cc[61]],function(_0xc712x2a){var _0xc712x2b={};_0xc712x2b[_0xc712x2a]= {$like:_0x40cc[71]+ _0xc712x28[_0x40cc[58]][_0x40cc[70]]+ _0x40cc[71]};return _0xc712x2b})})};_0xc712x1b= _[_0x40cc[73]]({},_0xc712x1b,_0xc712x28[_0x40cc[74]]);return db[_0x40cc[56]][_0x40cc[76]](_0xc712x1b)[_0x40cc[45]](respondWithFilteredResult(_0xc712x15,_0xc712x1b,_0x40cc[53]))[_0x40cc[75]](handleError(_0xc712x15,null,_0x40cc[53]))};exports[_0x40cc[77]]= function(_0xc712x28,_0xc712x15){var _0xc712x1b={raw:false,where:{id:_0xc712x28[_0x40cc[79]][_0x40cc[78]]}},_0xc712x29={};_0xc712x29[_0x40cc[54]]= _[_0x40cc[57]](db[_0x40cc[56]][_0x40cc[55]]);_0xc712x29[_0x40cc[58]]= _[_0x40cc[57]](_0xc712x28[_0x40cc[58]]);_0xc712x29[_0x40cc[59]]= _[_0x40cc[60]](_0xc712x29[_0x40cc[54]],_0xc712x29[_0x40cc[58]]);_0xc712x1b[_0x40cc[61]]= _[_0x40cc[60]](_0xc712x29[_0x40cc[54]],qs[_0x40cc[62]](_0xc712x28[_0x40cc[58]][_0x40cc[62]]));_0xc712x1b[_0x40cc[61]]= (_0xc712x1b[_0x40cc[61]][_0x40cc[63]])?_0xc712x1b[_0x40cc[61]]:_0xc712x29[_0x40cc[54]];_0xc712x1b= _[_0x40cc[73]]({},_0xc712x1b,_0xc712x28[_0x40cc[74]]);return db[_0x40cc[56]][_0x40cc[80]](_0xc712x1b)[_0x40cc[45]](handleEntityNotFound(_0xc712x15,null,_0x40cc[77]))[_0x40cc[45]](respondWithResult(_0xc712x15,null,_0x40cc[77]))[_0x40cc[75]](handleError(_0xc712x15,null,_0x40cc[77]))};exports[_0x40cc[81]]= function(_0xc712x28,_0xc712x15){return db[_0x40cc[56]][_0x40cc[81]](_0xc712x28[_0x40cc[82]],{})[_0x40cc[45]](respondWithResult(_0xc712x15,201,_0x40cc[81]))[_0x40cc[75]](handleError(_0xc712x15,null,_0x40cc[81]))};exports[_0x40cc[46]]= function(_0xc712x28,_0xc712x15){if(_0xc712x28[_0x40cc[82]][_0x40cc[78]]){delete _0xc712x28[_0x40cc[82]][_0x40cc[78]]};return db[_0x40cc[56]][_0x40cc[80]]({where:{id:_0xc712x28[_0x40cc[79]][_0x40cc[78]]}})[_0x40cc[45]](handleEntityNotFound(_0xc712x15,null,_0x40cc[46]))[_0x40cc[45]](saveUpdates(_0xc712x28[_0x40cc[82]],null,_0x40cc[46]))[_0x40cc[45]](respondWithResult(_0xc712x15,null,_0x40cc[46]))[_0x40cc[75]](handleError(_0xc712x15,null,_0x40cc[46]))};exports[_0x40cc[48]]= function(_0xc712x28,_0xc712x15){return db[_0x40cc[56]][_0x40cc[80]]({where:{id:_0xc712x28[_0x40cc[79]][_0x40cc[78]]}})[_0x40cc[45]](handleEntityNotFound(_0xc712x15,null,_0x40cc[48]))[_0x40cc[45]](removeEntity(_0xc712x15,null,_0x40cc[48]))[_0x40cc[75]](handleError(_0xc712x15,null,_0x40cc[48]))};exports[_0x40cc[83]]= function(_0xc712x28,_0xc712x15){return db[_0x40cc[56]][_0x40cc[83]]()[_0x40cc[45]](respondWithResult(_0xc712x15,null,_0x40cc[83]))[_0x40cc[75]](handleError(_0xc712x15,null,_0x40cc[83]))};exports[_0x40cc[84]]= function(_0xc712x28,_0xc712x15,_0xc712x2c){return db[_0x40cc[87]][_0x40cc[80]]({where:{id:_0xc712x28[_0x40cc[79]][_0x40cc[78]]}})[_0x40cc[45]](handleEntityNotFound(_0xc712x15,null,_0x40cc[84]))[_0x40cc[45]](function(_0xc712x18){if(_0xc712x18){return _0xc712x18[_0x40cc[84]](_0xc712x28[_0x40cc[82]][_0x40cc[85]],_[_0x40cc[86]](_0xc712x28[_0x40cc[82]],[_0x40cc[85],_0x40cc[78]])|| {})};return null})[_0x40cc[45]](respondWithResult(_0xc712x15,null,_0x40cc[84]))[_0x40cc[75]](handleError(_0xc712x15,null,_0x40cc[84]))};exports[_0x40cc[88]]= function(_0xc712x28,_0xc712x18,_0xc712x2c){var _0xc712x1b={};var _0xc712x29={};var _0xc712x2d;var _0xc712x1c;return db[_0x40cc[56]][_0x40cc[89]]({where:{id:_0xc712x28[_0x40cc[79]][_0x40cc[78]]}})[_0x40cc[45]](handleEntityNotFound(_0xc712x18,null,_0x40cc[88]))[_0x40cc[45]](function(_0xc712x18){if(_0xc712x18){_0xc712x2d= _0xc712x18;_0xc712x29[_0x40cc[54]]= _[_0x40cc[57]](db[_0x40cc[87]][_0x40cc[55]]);_0xc712x29[_0x40cc[58]]= _[_0x40cc[57]](_0xc712x28[_0x40cc[58]]);_0xc712x29[_0x40cc[59]]= _[_0x40cc[60]](_0xc712x29[_0x40cc[54]],_0xc712x29[_0x40cc[58]]);_0xc712x1b[_0x40cc[61]]= _[_0x40cc[60]](_0xc712x29[_0x40cc[54]],qs[_0x40cc[62]](_0xc712x28[_0x40cc[58]][_0x40cc[62]]));_0xc712x1b[_0x40cc[61]]= (_0xc712x1b[_0x40cc[61]][_0x40cc[63]])?_0xc712x1b[_0x40cc[61]]:_0xc712x29[_0x40cc[54]];_0xc712x1b[_0x40cc[66]]= qs[_0x40cc[67]](_0xc712x28[_0x40cc[58]][_0x40cc[67]]);_0xc712x1b[_0x40cc[68]]= qs[_0x40cc[59]](_[_0x40cc[69]](_0xc712x28[_0x40cc[58]],_0xc712x29[_0x40cc[59]]));if(_0xc712x28[_0x40cc[58]][_0x40cc[70]]){_0xc712x1b[_0x40cc[68]]= _[_0x40cc[73]](_0xc712x1b[_0x40cc[68]],{$or:_[_0x40cc[72]](_0xc712x1b[_0x40cc[61]],function(_0xc712x2a){var _0xc712x2b={};_0xc712x2b[_0xc712x2a]= {$like:_0x40cc[71]+ _0xc712x28[_0x40cc[58]][_0x40cc[70]]+ _0x40cc[71]};return _0xc712x2b})})};_0xc712x1b= _[_0x40cc[73]]({},_0xc712x1b,_0xc712x28[_0x40cc[74]]);return _0xc712x2d[_0x40cc[88]](_0xc712x1b)}})[_0x40cc[45]](function(_0xc712x2f){if(_0xc712x2f){_0xc712x1c= _0xc712x2f[_0x40cc[63]];if(!_0xc712x28[_0x40cc[58]][_0x40cc[65]](_0x40cc[64])){_0xc712x1b[_0x40cc[35]]= qs[_0x40cc[35]](_0xc712x28[_0x40cc[58]][_0x40cc[35]]);_0xc712x1b[_0x40cc[34]]= qs[_0x40cc[34]](_0xc712x28[_0x40cc[58]][_0x40cc[34]])};return _0xc712x2d[_0x40cc[88]](_0xc712x1b)}})[_0x40cc[45]](function(_0xc712x2e){return _0xc712x2e?{count:_0xc712x1c,rows:_0xc712x2e}:null})[_0x40cc[45]](respondWithResult(_0xc712x18,null,_0x40cc[88]))[_0x40cc[75]](handleError(_0xc712x18,null,_0x40cc[88]))}
\ No newline at end of file
diff --git a/server/api/mailInteraction/mailInteraction.model.js b/server/api/mailInteraction/mailInteraction.model.js
new file mode 100644 (file)
index 0000000..3296117
--- /dev/null
@@ -0,0 +1 @@
+var _0x8c08=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x8c08[0];var _=require(_0x8c08[1]);var util=require(_0x8c08[2]);var logger=require(_0x8c08[4])(_0x8c08[3]);var attributes=require(_0x8c08[5]);module[_0x8c08[6]]= function(_0xd9c0x5,_0xd9c0x6){return _0xd9c0x5[_0x8c08[9]](_0x8c08[7],attributes,{tableName:_0x8c08[8],paranoid:true,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/mailInteraction/mailInteraction.rpc.js b/server/api/mailInteraction/mailInteraction.rpc.js
new file mode 100644 (file)
index 0000000..6956e81
--- /dev/null
@@ -0,0 +1 @@
+var _0xbdbb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xbdbb[0];var _=require(_0xbdbb[1]);var util=require(_0xbdbb[2]);var moment=require(_0xbdbb[3]);var BPromise=require(_0xbdbb[4]);var db=require(_0xbdbb[6])[_0xbdbb[5]];var utils=require(_0xbdbb[7]);var logger=require(_0xbdbb[9])(_0xbdbb[8]);var jayson=require(_0xbdbb[10]);var client=jayson[_0xbdbb[12]][_0xbdbb[11]]({port:9002});function respondWithRpcPromise(_0x1d94xb,_0x1d94xc,_0x1d94xd){return  new BPromise(function(_0x1d94xe,_0x1d94xf){return client[_0xbdbb[25]](_0x1d94xb,_0x1d94xd)[_0xbdbb[24]](function(_0x1d94x11){logger[_0xbdbb[17]](_0xbdbb[13],_0x1d94xc,_0xbdbb[16]);logger[_0xbdbb[20]](_0xbdbb[18],_0x1d94xc,_0xbdbb[16],JSON[_0xbdbb[19]](_0x1d94x11));if(_0x1d94x11[_0xbdbb[14]]){if(_0x1d94x11[_0xbdbb[14]][_0xbdbb[21]]=== 500){logger[_0xbdbb[14]](_0xbdbb[13],_0x1d94xc,_0x1d94x11[_0xbdbb[14]][_0xbdbb[22]]);return _0x1d94xf(_0x1d94x11[_0xbdbb[14]][_0xbdbb[22]])};logger[_0xbdbb[14]](_0xbdbb[13],_0x1d94xc,_0x1d94x11[_0xbdbb[14]][_0xbdbb[22]]);return _0x1d94xe(_0x1d94x11[_0xbdbb[14]][_0xbdbb[22]])}else {logger[_0xbdbb[17]](_0xbdbb[13],_0x1d94xc,_0xbdbb[16]);_0x1d94xe(_0x1d94x11[_0xbdbb[23]][_0xbdbb[22]])}})[_0xbdbb[15]](function(_0x1d94x10){logger[_0xbdbb[14]](_0xbdbb[13],_0x1d94xc,_0x1d94x10);_0x1d94xf(_0x1d94x10)})})}
\ No newline at end of file
diff --git a/server/api/mailMessage/index.js b/server/api/mailMessage/index.js
new file mode 100644 (file)
index 0000000..c157d36
--- /dev/null
@@ -0,0 +1 @@
+var _0x588d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x588d[0];var multer=require(_0x588d[1]);var util=require(_0x588d[2]);var path=require(_0x588d[3]);var express=require(_0x588d[4]);var router=express.Router();var auth=require(_0x588d[5]);var config=require(_0x588d[6]);var controller=require(_0x588d[7]);router[_0x588d[11]](_0x588d[8],auth[_0x588d[9]](),controller[_0x588d[10]]);router[_0x588d[11]](_0x588d[12],auth[_0x588d[9]](),controller[_0x588d[13]]);router[_0x588d[11]](_0x588d[14],auth[_0x588d[9]](),controller[_0x588d[15]]);router[_0x588d[17]](_0x588d[8],auth[_0x588d[9]](),controller[_0x588d[16]]);router[_0x588d[19]](_0x588d[14],auth[_0x588d[9]](),controller[_0x588d[18]]);router[_0x588d[21]](_0x588d[14],auth[_0x588d[9]](),controller[_0x588d[20]]);module[_0x588d[22]]= router
\ No newline at end of file
diff --git a/server/api/mailMessage/mailMessage.attributes.js b/server/api/mailMessage/mailMessage.attributes.js
new file mode 100644 (file)
index 0000000..38e3886
--- /dev/null
@@ -0,0 +1 @@
+var _0xaa34=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54","\x74\x6F","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x63\x63","\x62\x63\x63","\x49\x4E\x54\x45\x47\x45\x52","\x6C\x6F\x6E\x67","\x74\x65\x78\x74","\x68\x74\x6D\x6C","\x42\x4F\x4F\x4C\x45\x41\x4E","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45"];_0xaa34[0];var Sequelize=require(_0xaa34[1]);var _=require(_0xaa34[2]);module[_0xaa34[3]]= {messageId:{type:Sequelize[_0xaa34[4]]},inReplyTo:{type:Sequelize[_0xaa34[4]]},subject:{type:Sequelize[_0xaa34[4]]},from:{type:Sequelize[_0xaa34[4]]},to:{type:Sequelize[_0xaa34[5]],get:function(){return this[_0xaa34[7]](_0xaa34[6])?this[_0xaa34[7]](_0xaa34[6])[_0xaa34[9]](_0xaa34[8]):[]},set:function(_0x5fc2x3){this[_0xaa34[11]](_0xaa34[6],_0x5fc2x3[_0xaa34[10]](_0xaa34[8]))}},cc:{type:Sequelize[_0xaa34[5]],get:function(){return this[_0xaa34[7]](_0xaa34[12])?this[_0xaa34[7]](_0xaa34[12])[_0xaa34[9]](_0xaa34[8]):[]},set:function(_0x5fc2x3){this[_0xaa34[11]](_0xaa34[12],_0x5fc2x3[_0xaa34[10]](_0xaa34[8]))}},bcc:{type:Sequelize[_0xaa34[5]],get:function(){return this[_0xaa34[7]](_0xaa34[13])?this[_0xaa34[7]](_0xaa34[13])[_0xaa34[9]](_0xaa34[8]):[]},set:function(_0x5fc2x3){this[_0xaa34[11]](_0xaa34[13],_0x5fc2x3[_0xaa34[10]](_0xaa34[8]))}},fromId:{type:Sequelize[_0xaa34[14]]},attachment:{type:Sequelize[_0xaa34[5]]},text:{type:Sequelize.BLOB(_0xaa34[15]),get:function(){if(this[_0xaa34[7]](_0xaa34[16])){return _.toString(this[_0xaa34[7]](_0xaa34[16]))}}},html:{type:Sequelize.BLOB(_0xaa34[15]),get:function(){if(this[_0xaa34[7]](_0xaa34[17])){if(this[_0xaa34[7]](_0xaa34[17])){return _.toString(this[_0xaa34[7]](_0xaa34[17]))}}}},reason:{type:Sequelize[_0xaa34[5]]},auto:{type:Sequelize[_0xaa34[18]],defaultValue:false},status:{type:Sequelize.ENUM(_0xaa34[19],_0xaa34[20],_0xaa34[21],_0xaa34[22],_0xaa34[23]),defaultValue:_0xaa34[19]},retry:{type:Sequelize[_0xaa34[14]],defaultValue:0},voiceSource:{type:Sequelize[_0xaa34[4]]},userName:{type:Sequelize[_0xaa34[4]]},userFullname:{type:Sequelize[_0xaa34[4]]},accountId:{type:Sequelize[_0xaa34[14]]},accountName:{type:Sequelize[_0xaa34[4]]}}
\ No newline at end of file
diff --git a/server/api/mailMessage/mailMessage.controller.js b/server/api/mailMessage/mailMessage.controller.js
new file mode 100644 (file)
index 0000000..0da8de4
--- /dev/null
@@ -0,0 +1 @@
+var _0xac56=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xac56[0];var jsonpatch=require(_0xac56[1]);var rp=require(_0xac56[2]);var moment=require(_0xac56[3]);var BPromise=require(_0xac56[4]);var util=require(_0xac56[5]);var path=require(_0xac56[6]);var sox=require(_0xac56[7]);var ejs=require(_0xac56[8]);var fs=require(_0xac56[9]);var _=require(_0xac56[10]);var squel=require(_0xac56[11]);var crypto=require(_0xac56[12]);var jsforce=require(_0xac56[13]);var toCsv=require(_0xac56[14]);var qs=require(_0xac56[15]);var logger=require(_0xac56[17])(_0xac56[16]);var utils=require(_0xac56[18]);var config=require(_0xac56[19]);var db=require(_0xac56[21])[_0xac56[20]];function respondWithStatusCode(_0xc5ddx15,_0xc5ddx16,_0xc5ddx17){_0xc5ddx16= _0xc5ddx16|| 204;return function(_0xc5ddx18){if(_0xc5ddx18){logger[_0xac56[24]](_0xac56[22],_0xc5ddx17,_0xc5ddx16,_0xac56[23]);logger[_0xac56[26]](_0xac56[25],_0xc5ddx17,_0xc5ddx16,_0xac56[23]);return _0xc5ddx15[_0xac56[27]](_0xc5ddx16)};return _0xc5ddx15[_0xac56[29]](304)[_0xac56[28]]()}}function respondWithResult(_0xc5ddx15,_0xc5ddx16,_0xc5ddx17){_0xc5ddx16= _0xc5ddx16|| 200;return function(_0xc5ddx18){if(_0xc5ddx18){logger[_0xac56[24]](_0xac56[22],_0xc5ddx17,_0xc5ddx16,_0xac56[30]);logger[_0xac56[26]](_0xac56[25],_0xc5ddx17,_0xc5ddx16,_0xac56[30],JSON[_0xac56[31]](_0xc5ddx18));return _0xc5ddx15[_0xac56[29]](_0xc5ddx16)[_0xac56[32]](_0xc5ddx18)};return _0xc5ddx15[_0xac56[29]](304)[_0xac56[28]]()}}function respondWithFilteredResult(_0xc5ddx15,_0xc5ddx1b,_0xc5ddx17){return function(_0xc5ddx18){if(_0xc5ddx18){var _0xc5ddx1c=_0xc5ddx18[_0xac56[33]],_0xc5ddx1d=_0xc5ddx1b[_0xac56[34]],_0xc5ddx1e=_0xc5ddx1b[_0xac56[34]]+ _0xc5ddx1b[_0xac56[35]],_0xc5ddx16;if(_0xc5ddx1e>= _0xc5ddx1c){_0xc5ddx1e= _0xc5ddx1c;_0xc5ddx16= 200}else {_0xc5ddx16= 206};_0xc5ddx15[_0xac56[29]](_0xc5ddx16);logger[_0xac56[24]](_0xac56[22],_0xc5ddx17,_0xc5ddx16,_0xac56[36]);logger[_0xac56[26]](_0xac56[25],_0xc5ddx17,_0xc5ddx16,_0xac56[30],JSON[_0xac56[31]](_0xc5ddx18));return _0xc5ddx15[_0xac56[40]](_0xac56[37],_0xc5ddx1d+ _0xac56[38]+ _0xc5ddx1e+ _0xac56[39]+ _0xc5ddx1c)[_0xac56[32]](_0xc5ddx18)};return null}}function patchUpdates(_0xc5ddx20){return function(_0xc5ddx18){try{jsonpatch[_0xac56[41]](_0xc5ddx18,_0xc5ddx20,true)}catch(err){return BPromise[_0xac56[42]](err)};return _0xc5ddx18[_0xac56[43]]()}}function saveUpdates(_0xc5ddx22,_0xc5ddx16,_0xc5ddx17){return function(_0xc5ddx18){if(_0xc5ddx18){return _0xc5ddx18[_0xac56[46]](_0xc5ddx22)[_0xac56[45]](function(_0xc5ddx23){logger[_0xac56[24]](_0xac56[22],_0xc5ddx17,_0xc5ddx16,_0xac56[44]);logger[_0xac56[26]](_0xac56[25],_0xc5ddx17,_0xc5ddx16,_0xac56[44],JSON[_0xac56[31]](_0xc5ddx18));return _0xc5ddx23})};return null}}function removeEntity(_0xc5ddx15,_0xc5ddx16,_0xc5ddx17){return function(_0xc5ddx18){if(_0xc5ddx18){return _0xc5ddx18[_0xac56[48]]()[_0xac56[45]](function(){logger[_0xac56[24]](_0xac56[22],_0xc5ddx17,_0xc5ddx16,_0xac56[47]);logger[_0xac56[26]](_0xac56[25],_0xc5ddx17,_0xc5ddx16,_0xac56[47],JSON[_0xac56[31]](_0xc5ddx18));_0xc5ddx15[_0xac56[29]](204)[_0xac56[28]]()})}}}function handleEntityNotFound(_0xc5ddx15,_0xc5ddx16,_0xc5ddx17){return function(_0xc5ddx18){if(!_0xc5ddx18){logger[_0xac56[50]](_0xac56[22],_0xc5ddx17,404,_0xac56[49]);_0xc5ddx15[_0xac56[29]](404)[_0xac56[28]]();return null};return _0xc5ddx18}}function handleError(_0xc5ddx15,_0xc5ddx16,_0xc5ddx17){_0xc5ddx16= _0xc5ddx16|| 500;return function(_0xc5ddx27){logger[_0xac56[50]](_0xac56[22],_0xc5ddx17,_0xc5ddx16,JSON[_0xac56[31]](_0xc5ddx27));delete _0xc5ddx27[_0xac56[51]];_0xc5ddx15[_0xac56[29]](_0xc5ddx16)[_0xac56[52]](_0xc5ddx27)}}exports[_0xac56[53]]= function(_0xc5ddx28,_0xc5ddx15){var _0xc5ddx1b={raw:true},_0xc5ddx29={};_0xc5ddx29[_0xac56[54]]= _[_0xac56[57]](db[_0xac56[56]][_0xac56[55]]);_0xc5ddx29[_0xac56[58]]= _[_0xac56[57]](_0xc5ddx28[_0xac56[58]]);_0xc5ddx29[_0xac56[59]]= _[_0xac56[60]](_0xc5ddx29[_0xac56[54]],_0xc5ddx29[_0xac56[58]]);_0xc5ddx1b[_0xac56[61]]= _[_0xac56[60]](_0xc5ddx29[_0xac56[54]],qs[_0xac56[62]](_0xc5ddx28[_0xac56[58]][_0xac56[62]]));_0xc5ddx1b[_0xac56[61]]= (_0xc5ddx1b[_0xac56[61]][_0xac56[63]])?_0xc5ddx1b[_0xac56[61]]:_0xc5ddx29[_0xac56[54]];if(!_0xc5ddx28[_0xac56[58]][_0xac56[65]](_0xac56[64])){_0xc5ddx1b[_0xac56[35]]= qs[_0xac56[35]](_0xc5ddx28[_0xac56[58]][_0xac56[35]]);_0xc5ddx1b[_0xac56[34]]= qs[_0xac56[34]](_0xc5ddx28[_0xac56[58]][_0xac56[34]])};_0xc5ddx1b[_0xac56[66]]= qs[_0xac56[67]](_0xc5ddx28[_0xac56[58]][_0xac56[67]]);_0xc5ddx1b[_0xac56[68]]= qs[_0xac56[59]](_[_0xac56[69]](_0xc5ddx28[_0xac56[58]],_0xc5ddx29[_0xac56[59]]));if(_0xc5ddx28[_0xac56[58]][_0xac56[70]]){_0xc5ddx1b[_0xac56[68]]= _[_0xac56[73]](_0xc5ddx1b[_0xac56[68]],{$or:_[_0xac56[72]](_0xc5ddx1b[_0xac56[61]],function(_0xc5ddx2a){var _0xc5ddx2b={};_0xc5ddx2b[_0xc5ddx2a]= {$like:_0xac56[71]+ _0xc5ddx28[_0xac56[58]][_0xac56[70]]+ _0xac56[71]};return _0xc5ddx2b})})};_0xc5ddx1b= _[_0xac56[73]]({},_0xc5ddx1b,_0xc5ddx28[_0xac56[74]]);return db[_0xac56[56]][_0xac56[76]](_0xc5ddx1b)[_0xac56[45]](respondWithFilteredResult(_0xc5ddx15,_0xc5ddx1b,_0xac56[53]))[_0xac56[75]](handleError(_0xc5ddx15,null,_0xac56[53]))};exports[_0xac56[77]]= function(_0xc5ddx28,_0xc5ddx15){var _0xc5ddx1b={raw:true,where:{id:_0xc5ddx28[_0xac56[79]][_0xac56[78]]}},_0xc5ddx29={};_0xc5ddx29[_0xac56[54]]= _[_0xac56[57]](db[_0xac56[56]][_0xac56[55]]);_0xc5ddx29[_0xac56[58]]= _[_0xac56[57]](_0xc5ddx28[_0xac56[58]]);_0xc5ddx29[_0xac56[59]]= _[_0xac56[60]](_0xc5ddx29[_0xac56[54]],_0xc5ddx29[_0xac56[58]]);_0xc5ddx1b[_0xac56[61]]= _[_0xac56[60]](_0xc5ddx29[_0xac56[54]],qs[_0xac56[62]](_0xc5ddx28[_0xac56[58]][_0xac56[62]]));_0xc5ddx1b[_0xac56[61]]= (_0xc5ddx1b[_0xac56[61]][_0xac56[63]])?_0xc5ddx1b[_0xac56[61]]:_0xc5ddx29[_0xac56[54]];_0xc5ddx1b= _[_0xac56[73]]({},_0xc5ddx1b,_0xc5ddx28[_0xac56[74]]);return db[_0xac56[56]][_0xac56[80]](_0xc5ddx1b)[_0xac56[45]](handleEntityNotFound(_0xc5ddx15,null,_0xac56[77]))[_0xac56[45]](respondWithResult(_0xc5ddx15,null,_0xac56[77]))[_0xac56[75]](handleError(_0xc5ddx15,null,_0xac56[77]))};exports[_0xac56[81]]= function(_0xc5ddx28,_0xc5ddx15){return db[_0xac56[56]][_0xac56[81]](_0xc5ddx28[_0xac56[82]],{})[_0xac56[45]](respondWithResult(_0xc5ddx15,201,_0xac56[81]))[_0xac56[75]](handleError(_0xc5ddx15,null,_0xac56[81]))};exports[_0xac56[46]]= function(_0xc5ddx28,_0xc5ddx15){if(_0xc5ddx28[_0xac56[82]][_0xac56[78]]){delete _0xc5ddx28[_0xac56[82]][_0xac56[78]]};return db[_0xac56[56]][_0xac56[80]]({where:{id:_0xc5ddx28[_0xac56[79]][_0xac56[78]]}})[_0xac56[45]](handleEntityNotFound(_0xc5ddx15,null,_0xac56[46]))[_0xac56[45]](saveUpdates(_0xc5ddx28[_0xac56[82]],null,_0xac56[46]))[_0xac56[45]](respondWithResult(_0xc5ddx15,null,_0xac56[46]))[_0xac56[75]](handleError(_0xc5ddx15,null,_0xac56[46]))};exports[_0xac56[48]]= function(_0xc5ddx28,_0xc5ddx15){return db[_0xac56[56]][_0xac56[80]]({where:{id:_0xc5ddx28[_0xac56[79]][_0xac56[78]]}})[_0xac56[45]](handleEntityNotFound(_0xc5ddx15,null,_0xac56[48]))[_0xac56[45]](removeEntity(_0xc5ddx15,null,_0xac56[48]))[_0xac56[75]](handleError(_0xc5ddx15,null,_0xac56[48]))};exports[_0xac56[83]]= function(_0xc5ddx28,_0xc5ddx15){return db[_0xac56[56]][_0xac56[83]]()[_0xac56[45]](respondWithResult(_0xc5ddx15,null,_0xac56[83]))[_0xac56[75]](handleError(_0xc5ddx15,null,_0xac56[83]))}
\ No newline at end of file
diff --git a/server/api/mailMessage/mailMessage.model.js b/server/api/mailMessage/mailMessage.model.js
new file mode 100644 (file)
index 0000000..3f327ab
--- /dev/null
@@ -0,0 +1 @@
+var _0xb443=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xb443[0];var _=require(_0xb443[1]);var util=require(_0xb443[2]);var logger=require(_0xb443[4])(_0xb443[3]);var attributes=require(_0xb443[5]);module[_0xb443[6]]= function(_0xca0dx5,_0xca0dx6){return _0xca0dx5[_0xb443[9]](_0xb443[7],attributes,{tableName:_0xb443[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/mailMessage/mailMessage.rpc.js b/server/api/mailMessage/mailMessage.rpc.js
new file mode 100644 (file)
index 0000000..b0d2254
--- /dev/null
@@ -0,0 +1 @@
+var _0x2025=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x2025[0];var _=require(_0x2025[1]);var util=require(_0x2025[2]);var moment=require(_0x2025[3]);var BPromise=require(_0x2025[4]);var db=require(_0x2025[6])[_0x2025[5]];var utils=require(_0x2025[7]);var logger=require(_0x2025[9])(_0x2025[8]);var jayson=require(_0x2025[10]);var client=jayson[_0x2025[12]][_0x2025[11]]({port:9002});function respondWithRpcPromise(_0x73acxb,_0x73acxc,_0x73acxd){return  new BPromise(function(_0x73acxe,_0x73acxf){return client[_0x2025[25]](_0x73acxb,_0x73acxd)[_0x2025[24]](function(_0x73acx11){logger[_0x2025[17]](_0x2025[13],_0x73acxc,_0x2025[16]);logger[_0x2025[20]](_0x2025[18],_0x73acxc,_0x2025[16],JSON[_0x2025[19]](_0x73acx11));if(_0x73acx11[_0x2025[14]]){if(_0x73acx11[_0x2025[14]][_0x2025[21]]=== 500){logger[_0x2025[14]](_0x2025[13],_0x73acxc,_0x73acx11[_0x2025[14]][_0x2025[22]]);return _0x73acxf(_0x73acx11[_0x2025[14]][_0x2025[22]])};logger[_0x2025[14]](_0x2025[13],_0x73acxc,_0x73acx11[_0x2025[14]][_0x2025[22]]);return _0x73acxe(_0x73acx11[_0x2025[14]][_0x2025[22]])}else {logger[_0x2025[17]](_0x2025[13],_0x73acxc,_0x2025[16]);_0x73acxe(_0x73acx11[_0x2025[23]][_0x2025[22]])}})[_0x2025[15]](function(_0x73acx10){logger[_0x2025[14]](_0x2025[13],_0x73acxc,_0x73acx10);_0x73acxf(_0x73acx10)})})}
\ No newline at end of file
diff --git a/server/api/mailQueue/index.js b/server/api/mailQueue/index.js
new file mode 100644 (file)
index 0000000..0b6af97
--- /dev/null
@@ -0,0 +1 @@
+var _0xe3b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xe3b8[0];var multer=require(_0xe3b8[1]);var util=require(_0xe3b8[2]);var path=require(_0xe3b8[3]);var express=require(_0xe3b8[4]);var router=express.Router();var auth=require(_0xe3b8[5]);var config=require(_0xe3b8[6]);var controller=require(_0xe3b8[7]);router[_0xe3b8[11]](_0xe3b8[8],auth[_0xe3b8[9]](),controller[_0xe3b8[10]]);router[_0xe3b8[11]](_0xe3b8[12],auth[_0xe3b8[9]](),controller[_0xe3b8[13]]);router[_0xe3b8[11]](_0xe3b8[14],auth[_0xe3b8[9]](),controller[_0xe3b8[15]]);router[_0xe3b8[11]](_0xe3b8[16],auth[_0xe3b8[9]](),controller[_0xe3b8[17]]);router[_0xe3b8[19]](_0xe3b8[8],auth[_0xe3b8[9]](),controller[_0xe3b8[18]]);router[_0xe3b8[19]](_0xe3b8[14],auth[_0xe3b8[9]](),controller[_0xe3b8[20]]);router[_0xe3b8[19]](_0xe3b8[16],auth[_0xe3b8[9]](),controller[_0xe3b8[21]]);router[_0xe3b8[23]](_0xe3b8[12],auth[_0xe3b8[9]](),controller[_0xe3b8[22]]);router[_0xe3b8[25]](_0xe3b8[12],auth[_0xe3b8[9]](),controller[_0xe3b8[24]]);router[_0xe3b8[25]](_0xe3b8[14],auth[_0xe3b8[9]](),controller[_0xe3b8[26]]);router[_0xe3b8[25]](_0xe3b8[16],auth[_0xe3b8[9]](),controller[_0xe3b8[27]]);module[_0xe3b8[28]]= router
\ No newline at end of file
diff --git a/server/api/mailQueue/mailQueue.attributes.js b/server/api/mailQueue/mailQueue.attributes.js
new file mode 100644 (file)
index 0000000..33bfd90
--- /dev/null
@@ -0,0 +1 @@
+var _0x790a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0x790a[0];var Sequelize=require(_0x790a[1]);module[_0x790a[2]]= {name:{type:Sequelize[_0x790a[3]],unique:_0x790a[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0x790a[3]]},timeout:{type:Sequelize[_0x790a[5]],validate:{min:1}},strategy:{type:Sequelize.ENUM(_0x790a[6],_0x790a[7],_0x790a[8])},lastAgent:{type:Sequelize[_0x790a[5]],defaultValue:0}}
\ No newline at end of file
diff --git a/server/api/mailQueue/mailQueue.controller.js b/server/api/mailQueue/mailQueue.controller.js
new file mode 100644 (file)
index 0000000..40d8c5d
--- /dev/null
@@ -0,0 +1 @@
+var _0x8955=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0x8955[0];var jsonpatch=require(_0x8955[1]);var rp=require(_0x8955[2]);var moment=require(_0x8955[3]);var BPromise=require(_0x8955[4]);var util=require(_0x8955[5]);var path=require(_0x8955[6]);var sox=require(_0x8955[7]);var ejs=require(_0x8955[8]);var fs=require(_0x8955[9]);var _=require(_0x8955[10]);var squel=require(_0x8955[11]);var crypto=require(_0x8955[12]);var jsforce=require(_0x8955[13]);var toCsv=require(_0x8955[14]);var qs=require(_0x8955[15]);var logger=require(_0x8955[17])(_0x8955[16]);var utils=require(_0x8955[18]);var config=require(_0x8955[19]);var db=require(_0x8955[21])[_0x8955[20]];function respondWithStatusCode(_0xe6cfx15,_0xe6cfx16,_0xe6cfx17){_0xe6cfx16= _0xe6cfx16|| 204;return function(_0xe6cfx18){if(_0xe6cfx18){logger[_0x8955[24]](_0x8955[22],_0xe6cfx17,_0xe6cfx16,_0x8955[23]);logger[_0x8955[26]](_0x8955[25],_0xe6cfx17,_0xe6cfx16,_0x8955[23]);return _0xe6cfx15[_0x8955[27]](_0xe6cfx16)};return _0xe6cfx15[_0x8955[29]](304)[_0x8955[28]]()}}function respondWithResult(_0xe6cfx15,_0xe6cfx16,_0xe6cfx17){_0xe6cfx16= _0xe6cfx16|| 200;return function(_0xe6cfx18){if(_0xe6cfx18){logger[_0x8955[24]](_0x8955[22],_0xe6cfx17,_0xe6cfx16,_0x8955[30]);logger[_0x8955[26]](_0x8955[25],_0xe6cfx17,_0xe6cfx16,_0x8955[30],JSON[_0x8955[31]](_0xe6cfx18));return _0xe6cfx15[_0x8955[29]](_0xe6cfx16)[_0x8955[32]](_0xe6cfx18)};return _0xe6cfx15[_0x8955[29]](304)[_0x8955[28]]()}}function respondWithFilteredResult(_0xe6cfx15,_0xe6cfx1b,_0xe6cfx17){return function(_0xe6cfx18){if(_0xe6cfx18){var _0xe6cfx1c=_0xe6cfx18[_0x8955[33]],_0xe6cfx1d=_0xe6cfx1b[_0x8955[34]],_0xe6cfx1e=_0xe6cfx1b[_0x8955[34]]+ _0xe6cfx1b[_0x8955[35]],_0xe6cfx16;if(_0xe6cfx1e>= _0xe6cfx1c){_0xe6cfx1e= _0xe6cfx1c;_0xe6cfx16= 200}else {_0xe6cfx16= 206};_0xe6cfx15[_0x8955[29]](_0xe6cfx16);logger[_0x8955[24]](_0x8955[22],_0xe6cfx17,_0xe6cfx16,_0x8955[36]);logger[_0x8955[26]](_0x8955[25],_0xe6cfx17,_0xe6cfx16,_0x8955[30],JSON[_0x8955[31]](_0xe6cfx18));return _0xe6cfx15[_0x8955[40]](_0x8955[37],_0xe6cfx1d+ _0x8955[38]+ _0xe6cfx1e+ _0x8955[39]+ _0xe6cfx1c)[_0x8955[32]](_0xe6cfx18)};return null}}function patchUpdates(_0xe6cfx20){return function(_0xe6cfx18){try{jsonpatch[_0x8955[41]](_0xe6cfx18,_0xe6cfx20,true)}catch(err){return BPromise[_0x8955[42]](err)};return _0xe6cfx18[_0x8955[43]]()}}function saveUpdates(_0xe6cfx22,_0xe6cfx16,_0xe6cfx17){return function(_0xe6cfx18){if(_0xe6cfx18){return _0xe6cfx18[_0x8955[46]](_0xe6cfx22)[_0x8955[45]](function(_0xe6cfx23){logger[_0x8955[24]](_0x8955[22],_0xe6cfx17,_0xe6cfx16,_0x8955[44]);logger[_0x8955[26]](_0x8955[25],_0xe6cfx17,_0xe6cfx16,_0x8955[44],JSON[_0x8955[31]](_0xe6cfx18));return _0xe6cfx23})};return null}}function removeEntity(_0xe6cfx15,_0xe6cfx16,_0xe6cfx17){return function(_0xe6cfx18){if(_0xe6cfx18){return _0xe6cfx18[_0x8955[48]]()[_0x8955[45]](function(){logger[_0x8955[24]](_0x8955[22],_0xe6cfx17,_0xe6cfx16,_0x8955[47]);logger[_0x8955[26]](_0x8955[25],_0xe6cfx17,_0xe6cfx16,_0x8955[47],JSON[_0x8955[31]](_0xe6cfx18));_0xe6cfx15[_0x8955[29]](204)[_0x8955[28]]()})}}}function handleEntityNotFound(_0xe6cfx15,_0xe6cfx16,_0xe6cfx17){return function(_0xe6cfx18){if(!_0xe6cfx18){logger[_0x8955[50]](_0x8955[22],_0xe6cfx17,404,_0x8955[49]);_0xe6cfx15[_0x8955[29]](404)[_0x8955[28]]();return null};return _0xe6cfx18}}function handleError(_0xe6cfx15,_0xe6cfx16,_0xe6cfx17){_0xe6cfx16= _0xe6cfx16|| 500;return function(_0xe6cfx27){logger[_0x8955[50]](_0x8955[22],_0xe6cfx17,_0xe6cfx16,JSON[_0x8955[31]](_0xe6cfx27));delete _0xe6cfx27[_0x8955[51]];_0xe6cfx15[_0x8955[29]](_0xe6cfx16)[_0x8955[52]](_0xe6cfx27)}}exports[_0x8955[53]]= function(_0xe6cfx28,_0xe6cfx15){var _0xe6cfx1b={},_0xe6cfx29={};_0xe6cfx29[_0x8955[54]]= _[_0x8955[57]](db[_0x8955[56]][_0x8955[55]]);_0xe6cfx29[_0x8955[58]]= _[_0x8955[57]](_0xe6cfx28[_0x8955[58]]);_0xe6cfx29[_0x8955[59]]= _[_0x8955[60]](_0xe6cfx29[_0x8955[54]],_0xe6cfx29[_0x8955[58]]);_0xe6cfx1b[_0x8955[61]]= _[_0x8955[60]](_0xe6cfx29[_0x8955[54]],qs[_0x8955[62]](_0xe6cfx28[_0x8955[58]][_0x8955[62]]));_0xe6cfx1b[_0x8955[61]]= (_0xe6cfx1b[_0x8955[61]][_0x8955[63]])?_0xe6cfx1b[_0x8955[61]]:_0xe6cfx29[_0x8955[54]];if(!_0xe6cfx28[_0x8955[58]][_0x8955[65]](_0x8955[64])){_0xe6cfx1b[_0x8955[35]]= qs[_0x8955[35]](_0xe6cfx28[_0x8955[58]][_0x8955[35]]);_0xe6cfx1b[_0x8955[34]]= qs[_0x8955[34]](_0xe6cfx28[_0x8955[58]][_0x8955[34]])};_0xe6cfx1b[_0x8955[66]]= qs[_0x8955[67]](_0xe6cfx28[_0x8955[58]][_0x8955[67]]);_0xe6cfx1b[_0x8955[68]]= qs[_0x8955[59]](_[_0x8955[69]](_0xe6cfx28[_0x8955[58]],_0xe6cfx29[_0x8955[59]]));if(_0xe6cfx28[_0x8955[58]][_0x8955[70]]){_0xe6cfx1b[_0x8955[68]]= _[_0x8955[73]](_0xe6cfx1b[_0x8955[68]],{$or:_[_0x8955[72]](_0xe6cfx1b[_0x8955[61]],function(_0xe6cfx2a){var _0xe6cfx2b={};_0xe6cfx2b[_0xe6cfx2a]= {$like:_0x8955[71]+ _0xe6cfx28[_0x8955[58]][_0x8955[70]]+ _0x8955[71]};return _0xe6cfx2b})})};_0xe6cfx1b= _[_0x8955[73]]({},_0xe6cfx1b,_0xe6cfx28[_0x8955[74]]);return db[_0x8955[56]][_0x8955[76]](_0xe6cfx1b)[_0x8955[45]](respondWithFilteredResult(_0xe6cfx15,_0xe6cfx1b,_0x8955[53]))[_0x8955[75]](handleError(_0xe6cfx15,null,_0x8955[53]))};exports[_0x8955[77]]= function(_0xe6cfx28,_0xe6cfx15){var _0xe6cfx1b={raw:true,where:{id:_0xe6cfx28[_0x8955[79]][_0x8955[78]]}},_0xe6cfx29={};_0xe6cfx29[_0x8955[54]]= _[_0x8955[57]](db[_0x8955[56]][_0x8955[55]]);_0xe6cfx29[_0x8955[58]]= _[_0x8955[57]](_0xe6cfx28[_0x8955[58]]);_0xe6cfx29[_0x8955[59]]= _[_0x8955[60]](_0xe6cfx29[_0x8955[54]],_0xe6cfx29[_0x8955[58]]);_0xe6cfx1b[_0x8955[61]]= _[_0x8955[60]](_0xe6cfx29[_0x8955[54]],qs[_0x8955[62]](_0xe6cfx28[_0x8955[58]][_0x8955[62]]));_0xe6cfx1b[_0x8955[61]]= (_0xe6cfx1b[_0x8955[61]][_0x8955[63]])?_0xe6cfx1b[_0x8955[61]]:_0xe6cfx29[_0x8955[54]];_0xe6cfx1b= _[_0x8955[73]]({},_0xe6cfx1b,_0xe6cfx28[_0x8955[74]]);return db[_0x8955[56]][_0x8955[80]](_0xe6cfx1b)[_0x8955[45]](handleEntityNotFound(_0xe6cfx15,null,_0x8955[77]))[_0x8955[45]](respondWithResult(_0xe6cfx15,null,_0x8955[77]))[_0x8955[75]](handleError(_0xe6cfx15,null,_0x8955[77]))};exports[_0x8955[81]]= function(_0xe6cfx28,_0xe6cfx15){return db[_0x8955[56]][_0x8955[81]](_0xe6cfx28[_0x8955[82]],{})[_0x8955[45]](respondWithResult(_0xe6cfx15,201,_0x8955[81]))[_0x8955[75]](handleError(_0xe6cfx15,null,_0x8955[81]))};exports[_0x8955[46]]= function(_0xe6cfx28,_0xe6cfx15){if(_0xe6cfx28[_0x8955[82]][_0x8955[78]]){delete _0xe6cfx28[_0x8955[82]][_0x8955[78]]};return db[_0x8955[56]][_0x8955[80]]({where:{id:_0xe6cfx28[_0x8955[79]][_0x8955[78]]}})[_0x8955[45]](handleEntityNotFound(_0xe6cfx15,null,_0x8955[46]))[_0x8955[45]](saveUpdates(_0xe6cfx28[_0x8955[82]],null,_0x8955[46]))[_0x8955[45]](respondWithResult(_0xe6cfx15,null,_0x8955[46]))[_0x8955[75]](handleError(_0xe6cfx15,null,_0x8955[46]))};exports[_0x8955[48]]= function(_0xe6cfx28,_0xe6cfx15){return db[_0x8955[56]][_0x8955[80]]({where:{id:_0xe6cfx28[_0x8955[79]][_0x8955[78]]}})[_0x8955[45]](handleEntityNotFound(_0xe6cfx15,null,_0x8955[48]))[_0x8955[45]](removeEntity(_0xe6cfx15,null,_0x8955[48]))[_0x8955[75]](handleError(_0xe6cfx15,null,_0x8955[48]))};exports[_0x8955[83]]= function(_0xe6cfx28,_0xe6cfx18,_0xe6cfx2c){var _0xe6cfx1b={};var _0xe6cfx29={};var _0xe6cfx2d;var _0xe6cfx1c;return db[_0x8955[56]][_0x8955[85]]({where:{id:_0xe6cfx28[_0x8955[79]][_0x8955[78]]}})[_0x8955[45]](handleEntityNotFound(_0xe6cfx18,null,_0x8955[83]))[_0x8955[45]](function(_0xe6cfx18){if(_0xe6cfx18){_0xe6cfx2d= _0xe6cfx18;_0xe6cfx29[_0x8955[54]]= _[_0x8955[57]](db[_0x8955[84]][_0x8955[55]]);_0xe6cfx29[_0x8955[58]]= _[_0x8955[57]](_0xe6cfx28[_0x8955[58]]);_0xe6cfx29[_0x8955[59]]= _[_0x8955[60]](_0xe6cfx29[_0x8955[54]],_0xe6cfx29[_0x8955[58]]);_0xe6cfx1b[_0x8955[61]]= _[_0x8955[60]](_0xe6cfx29[_0x8955[54]],qs[_0x8955[62]](_0xe6cfx28[_0x8955[58]][_0x8955[62]]));_0xe6cfx1b[_0x8955[61]]= (_0xe6cfx1b[_0x8955[61]][_0x8955[63]])?_0xe6cfx1b[_0x8955[61]]:_0xe6cfx29[_0x8955[54]];_0xe6cfx1b[_0x8955[66]]= qs[_0x8955[67]](_0xe6cfx28[_0x8955[58]][_0x8955[67]]);_0xe6cfx1b[_0x8955[68]]= qs[_0x8955[59]](_[_0x8955[69]](_0xe6cfx28[_0x8955[58]],_0xe6cfx29[_0x8955[59]]));if(_0xe6cfx28[_0x8955[58]][_0x8955[70]]){_0xe6cfx1b[_0x8955[68]]= _[_0x8955[73]](_0xe6cfx1b[_0x8955[68]],{$or:_[_0x8955[72]](_0xe6cfx1b[_0x8955[61]],function(_0xe6cfx2a){var _0xe6cfx2b={};_0xe6cfx2b[_0xe6cfx2a]= {$like:_0x8955[71]+ _0xe6cfx28[_0x8955[58]][_0x8955[70]]+ _0x8955[71]};return _0xe6cfx2b})})};_0xe6cfx1b= _[_0x8955[73]]({},_0xe6cfx1b,_0xe6cfx28[_0x8955[74]]);return _0xe6cfx2d[_0x8955[83]](_0xe6cfx1b)}})[_0x8955[45]](function(_0xe6cfx2f){if(_0xe6cfx2f){_0xe6cfx1c= _0xe6cfx2f[_0x8955[63]];if(!_0xe6cfx28[_0x8955[58]][_0x8955[65]](_0x8955[64])){_0xe6cfx1b[_0x8955[35]]= qs[_0x8955[35]](_0xe6cfx28[_0x8955[58]][_0x8955[35]]);_0xe6cfx1b[_0x8955[34]]= qs[_0x8955[34]](_0xe6cfx28[_0x8955[58]][_0x8955[34]])};return _0xe6cfx2d[_0x8955[83]](_0xe6cfx1b)}})[_0x8955[45]](function(_0xe6cfx2e){return _0xe6cfx2e?{count:_0xe6cfx1c,rows:_0xe6cfx2e}:null})[_0x8955[45]](respondWithResult(_0xe6cfx18,null,_0x8955[83]))[_0x8955[75]](handleError(_0xe6cfx18,null,_0x8955[83]))};exports[_0x8955[86]]= function(_0xe6cfx28,_0xe6cfx15,_0xe6cfx2c){var _0xe6cfx30=[];var _0xe6cfx31;return db[_0x8955[84]][_0x8955[93]]({where:{id:_0xe6cfx28[_0x8955[82]][_0x8955[87]]},attributes:[_0x8955[78]],include:[{model:db[_0x8955[92]],as:_0x8955[90],attributes:[_0x8955[78]],raw:true}]})[_0x8955[45]](function(_0xe6cfx34){if(_0xe6cfx34){for(var _0xe6cfx35=0;_0xe6cfx35< _0xe6cfx34[_0x8955[63]];_0xe6cfx35+= 1){for(var _0xe6cfx36=0;_0xe6cfx36< _0xe6cfx34[_0xe6cfx35][_0x8955[90]][_0x8955[63]];_0xe6cfx36+= 1){_0xe6cfx30= _[_0x8955[91]](_0xe6cfx30,[_0xe6cfx34[_0xe6cfx35][_0x8955[90]][_0xe6cfx36][_0x8955[78]]])}};return _0xe6cfx30}})[_0x8955[45]](function(_0xe6cfx33){if(_0xe6cfx33){return db[_0x8955[56]][_0x8955[80]]({where:{id:_0xe6cfx28[_0x8955[79]][_0x8955[78]]}})}})[_0x8955[45]](function(_0xe6cfx32){if(_0xe6cfx32){_0xe6cfx31= _0xe6cfx32;return _0xe6cfx31[_0x8955[89]](_0xe6cfx30,{penalty:_0xe6cfx28[_0x8955[82]][_0x8955[88]]})}})[_0x8955[45]](function(_0xe6cfx18){if(_0xe6cfx18){return _0xe6cfx31[_0x8955[86]](_0xe6cfx28[_0x8955[82]][_0x8955[87]])}})[_0x8955[45]](handleEntityNotFound(_0xe6cfx15,null,_0x8955[86]))[_0x8955[45]](respondWithStatusCode(_0xe6cfx15,null,_0x8955[86]))[_0x8955[75]](handleError(_0xe6cfx15,null,_0x8955[86]))};exports[_0x8955[94]]= function(_0xe6cfx28,_0xe6cfx15,_0xe6cfx2c){var _0xe6cfx30=[];var _0xe6cfx31;return db[_0x8955[84]][_0x8955[93]]({where:{id:_0xe6cfx28[_0x8955[58]][_0x8955[87]]},attributes:[_0x8955[78]],include:[{model:db[_0x8955[92]],as:_0x8955[90],attributes:[_0x8955[78]],raw:true}]})[_0x8955[45]](function(_0xe6cfx34){if(_0xe6cfx34){for(var _0xe6cfx35=0;_0xe6cfx35< _0xe6cfx34[_0x8955[63]];_0xe6cfx35+= 1){for(var _0xe6cfx36=0;_0xe6cfx36< _0xe6cfx34[_0xe6cfx35][_0x8955[90]][_0x8955[63]];_0xe6cfx36+= 1){_0xe6cfx30= _[_0x8955[91]](_0xe6cfx30,[_0xe6cfx34[_0xe6cfx35][_0x8955[90]][_0xe6cfx36][_0x8955[78]]])}};return _0xe6cfx30}})[_0x8955[45]](function(_0xe6cfx33){if(_0xe6cfx33){return db[_0x8955[56]][_0x8955[80]]({where:{id:_0xe6cfx28[_0x8955[79]][_0x8955[78]]}})}})[_0x8955[45]](function(_0xe6cfx32){if(_0xe6cfx32){_0xe6cfx31= _0xe6cfx32;return _0xe6cfx31[_0x8955[95]](_0xe6cfx30)}})[_0x8955[45]](function(_0xe6cfx18){if(_0xe6cfx31){return _0xe6cfx31[_0x8955[94]](_0xe6cfx28[_0x8955[58]][_0x8955[87]])}})[_0x8955[45]](handleEntityNotFound(_0xe6cfx15,null,_0x8955[94]))[_0x8955[45]](respondWithStatusCode(_0xe6cfx15,null,_0x8955[94]))[_0x8955[75]](handleError(_0xe6cfx15,null,_0x8955[94]))};exports[_0x8955[89]]= function(_0xe6cfx28,_0xe6cfx15,_0xe6cfx2c){return db[_0x8955[56]][_0x8955[80]]({where:{id:_0xe6cfx28[_0x8955[79]][_0x8955[78]]}})[_0x8955[45]](handleEntityNotFound(_0xe6cfx15,null,_0x8955[89]))[_0x8955[45]](function(_0xe6cfx18){if(_0xe6cfx18){return _0xe6cfx18[_0x8955[89]](_0xe6cfx28[_0x8955[82]][_0x8955[87]],_[_0x8955[96]](_0xe6cfx28[_0x8955[82]],[_0x8955[87],_0x8955[78]])|| {})};return null})[_0x8955[45]](respondWithResult(_0xe6cfx15,null,_0x8955[89]))[_0x8955[75]](handleError(_0xe6cfx15,null,_0x8955[89]))};exports[_0x8955[95]]= function(_0xe6cfx28,_0xe6cfx15,_0xe6cfx2c){var _0xe6cfx2f;return db[_0x8955[56]][_0x8955[80]]({where:{id:_0xe6cfx28[_0x8955[79]][_0x8955[78]]}})[_0x8955[45]](handleEntityNotFound(_0xe6cfx15,null,_0x8955[95]))[_0x8955[45]](function(_0xe6cfx18){if(_0xe6cfx18){return _0xe6cfx18[_0x8955[95]](_0xe6cfx28[_0x8955[58]][_0x8955[87]])}})[_0x8955[45]](respondWithStatusCode(_0xe6cfx15,null,_0x8955[95]))[_0x8955[75]](handleError(_0xe6cfx15,null,_0x8955[95]))};exports[_0x8955[97]]= function(_0xe6cfx28,_0xe6cfx18,_0xe6cfx2c){var _0xe6cfx1b={};var _0xe6cfx29={};var _0xe6cfx2d;var _0xe6cfx1c;return db[_0x8955[56]][_0x8955[85]]({where:{id:_0xe6cfx28[_0x8955[79]][_0x8955[78]]}})[_0x8955[45]](handleEntityNotFound(_0xe6cfx18,null,_0x8955[97]))[_0x8955[45]](function(_0xe6cfx18){if(_0xe6cfx18){_0xe6cfx2d= _0xe6cfx18;_0xe6cfx29[_0x8955[54]]= _[_0x8955[57]](db[_0x8955[92]][_0x8955[55]]);_0xe6cfx29[_0x8955[58]]= _[_0x8955[57]](_0xe6cfx28[_0x8955[58]]);_0xe6cfx29[_0x8955[59]]= _[_0x8955[60]](_0xe6cfx29[_0x8955[54]],_0xe6cfx29[_0x8955[58]]);_0xe6cfx1b[_0x8955[61]]= _[_0x8955[60]](_0xe6cfx29[_0x8955[54]],qs[_0x8955[62]](_0xe6cfx28[_0x8955[58]][_0x8955[62]]));_0xe6cfx1b[_0x8955[61]]= (_0xe6cfx1b[_0x8955[61]][_0x8955[63]])?_0xe6cfx1b[_0x8955[61]]:_0xe6cfx29[_0x8955[54]];_0xe6cfx1b[_0x8955[66]]= qs[_0x8955[67]](_0xe6cfx28[_0x8955[58]][_0x8955[67]]);_0xe6cfx1b[_0x8955[68]]= qs[_0x8955[59]](_[_0x8955[69]](_0xe6cfx28[_0x8955[58]],_0xe6cfx29[_0x8955[59]]));if(_0xe6cfx28[_0x8955[58]][_0x8955[70]]){_0xe6cfx1b[_0x8955[68]]= _[_0x8955[73]](_0xe6cfx1b[_0x8955[68]],{$or:_[_0x8955[72]](_0xe6cfx1b[_0x8955[61]],function(_0xe6cfx2a){var _0xe6cfx2b={};_0xe6cfx2b[_0xe6cfx2a]= {$like:_0x8955[71]+ _0xe6cfx28[_0x8955[58]][_0x8955[70]]+ _0x8955[71]};return _0xe6cfx2b})})};_0xe6cfx1b= _[_0x8955[73]]({},_0xe6cfx1b,_0xe6cfx28[_0x8955[74]]);return _0xe6cfx2d[_0x8955[97]](_0xe6cfx1b)}})[_0x8955[45]](function(_0xe6cfx2f){if(_0xe6cfx2f){_0xe6cfx1c= _0xe6cfx2f[_0x8955[63]];if(!_0xe6cfx28[_0x8955[58]][_0x8955[65]](_0x8955[64])){_0xe6cfx1b[_0x8955[35]]= qs[_0x8955[35]](_0xe6cfx28[_0x8955[58]][_0x8955[35]]);_0xe6cfx1b[_0x8955[34]]= qs[_0x8955[34]](_0xe6cfx28[_0x8955[58]][_0x8955[34]])};return _0xe6cfx2d[_0x8955[97]](_0xe6cfx1b)}})[_0x8955[45]](function(_0xe6cfx2e){return _0xe6cfx2e?{count:_0xe6cfx1c,rows:_0xe6cfx2e}:null})[_0x8955[45]](respondWithResult(_0xe6cfx18,null,_0x8955[97]))[_0x8955[75]](handleError(_0xe6cfx18,null,_0x8955[97]))}
\ No newline at end of file
diff --git a/server/api/mailQueue/mailQueue.model.js b/server/api/mailQueue/mailQueue.model.js
new file mode 100644 (file)
index 0000000..4b04573
--- /dev/null
@@ -0,0 +1 @@
+var _0xf64c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xf64c[0];var _=require(_0xf64c[1]);var util=require(_0xf64c[2]);var logger=require(_0xf64c[4])(_0xf64c[3]);var attributes=require(_0xf64c[5]);module[_0xf64c[6]]= function(_0x857fx5,_0x857fx6){return _0x857fx5[_0xf64c[9]](_0xf64c[7],attributes,{tableName:_0xf64c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/mailQueue/mailQueue.rpc.js b/server/api/mailQueue/mailQueue.rpc.js
new file mode 100644 (file)
index 0000000..61f7c60
--- /dev/null
@@ -0,0 +1 @@
+var _0x375f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x375f[0];var _=require(_0x375f[1]);var util=require(_0x375f[2]);var moment=require(_0x375f[3]);var BPromise=require(_0x375f[4]);var db=require(_0x375f[6])[_0x375f[5]];var utils=require(_0x375f[7]);var logger=require(_0x375f[9])(_0x375f[8]);var jayson=require(_0x375f[10]);var client=jayson[_0x375f[12]][_0x375f[11]]({port:9002});function respondWithRpcPromise(_0xc857xb,_0xc857xc,_0xc857xd){return  new BPromise(function(_0xc857xe,_0xc857xf){return client[_0x375f[25]](_0xc857xb,_0xc857xd)[_0x375f[24]](function(_0xc857x11){logger[_0x375f[17]](_0x375f[13],_0xc857xc,_0x375f[16]);logger[_0x375f[20]](_0x375f[18],_0xc857xc,_0x375f[16],JSON[_0x375f[19]](_0xc857x11));if(_0xc857x11[_0x375f[14]]){if(_0xc857x11[_0x375f[14]][_0x375f[21]]=== 500){logger[_0x375f[14]](_0x375f[13],_0xc857xc,_0xc857x11[_0x375f[14]][_0x375f[22]]);return _0xc857xf(_0xc857x11[_0x375f[14]][_0x375f[22]])};logger[_0x375f[14]](_0x375f[13],_0xc857xc,_0xc857x11[_0x375f[14]][_0x375f[22]]);return _0xc857xe(_0xc857x11[_0x375f[14]][_0x375f[22]])}else {logger[_0x375f[17]](_0x375f[13],_0xc857xc,_0x375f[16]);_0xc857xe(_0xc857x11[_0x375f[23]][_0x375f[22]])}})[_0x375f[15]](function(_0xc857x10){logger[_0x375f[14]](_0x375f[13],_0xc857xc,_0xc857x10);_0xc857xf(_0xc857x10)})})}
\ No newline at end of file
diff --git a/server/api/mailReport/index.js b/server/api/mailReport/index.js
new file mode 100644 (file)
index 0000000..c645845
--- /dev/null
@@ -0,0 +1 @@
+var _0x549c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x549c[0];var multer=require(_0x549c[1]);var util=require(_0x549c[2]);var path=require(_0x549c[3]);var express=require(_0x549c[4]);var router=express.Router();var auth=require(_0x549c[5]);var config=require(_0x549c[6]);var controller=require(_0x549c[7]);router[_0x549c[11]](_0x549c[8],auth[_0x549c[9]](),controller[_0x549c[10]]);router[_0x549c[11]](_0x549c[12],auth[_0x549c[9]](),controller[_0x549c[13]]);router[_0x549c[15]](_0x549c[8],auth[_0x549c[9]](),controller[_0x549c[14]]);router[_0x549c[17]](_0x549c[12],auth[_0x549c[9]](),controller[_0x549c[16]]);router[_0x549c[19]](_0x549c[12],auth[_0x549c[9]](),controller[_0x549c[18]]);module[_0x549c[20]]= router
\ No newline at end of file
diff --git a/server/api/mailReport/mailReport.attributes.js b/server/api/mailReport/mailReport.attributes.js
new file mode 100644 (file)
index 0000000..3043c22
--- /dev/null
@@ -0,0 +1 @@
+var _0x6fbf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0x6fbf[0];var Sequelize=require(_0x6fbf[1]);var moment=require(_0x6fbf[2]);module[_0x6fbf[3]]= {sourceid:{type:Sequelize[_0x6fbf[4]]},uniqueid:{type:Sequelize[_0x6fbf[5]]},timeslot:{type:Sequelize[_0x6fbf[4]]},subject:{type:Sequelize[_0x6fbf[5]]},accountid:{type:Sequelize[_0x6fbf[5]]},accountname:{type:Sequelize[_0x6fbf[5]]},accountaddress:{type:Sequelize[_0x6fbf[5]]},application:{type:Sequelize[_0x6fbf[5]]},memberid:{type:Sequelize[_0x6fbf[4]]},membername:{type:Sequelize[_0x6fbf[5]]},queue:{type:Sequelize[_0x6fbf[4]]},queuename:{type:Sequelize[_0x6fbf[5]]},roomid:{type:Sequelize[_0x6fbf[4]]},messageid:{type:Sequelize[_0x6fbf[4]]},reason:{type:Sequelize[_0x6fbf[5]],defaultValue:_0x6fbf[6]},connectid:{type:Sequelize[_0x6fbf[5]],unique:_0x6fbf[7],set:function(_0x201cx3){this[_0x6fbf[8]](_0x6fbf[7],_0x201cx3);this[_0x6fbf[8]](_0x6fbf[9],_0x6fbf[10]);this[_0x6fbf[8]](_0x6fbf[11],moment()[_0x6fbf[13]](_0x6fbf[12]))}},calledAt:{type:Sequelize[_0x6fbf[14]]},rejectedAt:{type:Sequelize[_0x6fbf[14]],set:function(_0x201cx4){this[_0x6fbf[8]](_0x6fbf[15],_0x201cx4);this[_0x6fbf[8]](_0x6fbf[9],_0x6fbf[16])}},connectedAt:{type:Sequelize[_0x6fbf[14]]},from:{type:Sequelize[_0x6fbf[5]]}}
\ No newline at end of file
diff --git a/server/api/mailReport/mailReport.controller.js b/server/api/mailReport/mailReport.controller.js
new file mode 100644 (file)
index 0000000..dadd884
--- /dev/null
@@ -0,0 +1 @@
+var _0xc0cf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xc0cf[0];var jsonpatch=require(_0xc0cf[1]);var rp=require(_0xc0cf[2]);var moment=require(_0xc0cf[3]);var BPromise=require(_0xc0cf[4]);var util=require(_0xc0cf[5]);var path=require(_0xc0cf[6]);var sox=require(_0xc0cf[7]);var ejs=require(_0xc0cf[8]);var fs=require(_0xc0cf[9]);var _=require(_0xc0cf[10]);var squel=require(_0xc0cf[11]);var crypto=require(_0xc0cf[12]);var jsforce=require(_0xc0cf[13]);var toCsv=require(_0xc0cf[14]);var qs=require(_0xc0cf[15]);var logger=require(_0xc0cf[17])(_0xc0cf[16]);var utils=require(_0xc0cf[18]);var config=require(_0xc0cf[19]);var db=require(_0xc0cf[21])[_0xc0cf[20]];function respondWithStatusCode(_0x844ax15,_0x844ax16,_0x844ax17){_0x844ax16= _0x844ax16|| 204;return function(_0x844ax18){if(_0x844ax18){logger[_0xc0cf[24]](_0xc0cf[22],_0x844ax17,_0x844ax16,_0xc0cf[23]);logger[_0xc0cf[26]](_0xc0cf[25],_0x844ax17,_0x844ax16,_0xc0cf[23]);return _0x844ax15[_0xc0cf[27]](_0x844ax16)};return _0x844ax15[_0xc0cf[29]](304)[_0xc0cf[28]]()}}function respondWithResult(_0x844ax15,_0x844ax16,_0x844ax17){_0x844ax16= _0x844ax16|| 200;return function(_0x844ax18){if(_0x844ax18){logger[_0xc0cf[24]](_0xc0cf[22],_0x844ax17,_0x844ax16,_0xc0cf[30]);logger[_0xc0cf[26]](_0xc0cf[25],_0x844ax17,_0x844ax16,_0xc0cf[30],JSON[_0xc0cf[31]](_0x844ax18));return _0x844ax15[_0xc0cf[29]](_0x844ax16)[_0xc0cf[32]](_0x844ax18)};return _0x844ax15[_0xc0cf[29]](304)[_0xc0cf[28]]()}}function respondWithFilteredResult(_0x844ax15,_0x844ax1b,_0x844ax17){return function(_0x844ax18){if(_0x844ax18){var _0x844ax1c=_0x844ax18[_0xc0cf[33]],_0x844ax1d=_0x844ax1b[_0xc0cf[34]],_0x844ax1e=_0x844ax1b[_0xc0cf[34]]+ _0x844ax1b[_0xc0cf[35]],_0x844ax16;if(_0x844ax1e>= _0x844ax1c){_0x844ax1e= _0x844ax1c;_0x844ax16= 200}else {_0x844ax16= 206};_0x844ax15[_0xc0cf[29]](_0x844ax16);logger[_0xc0cf[24]](_0xc0cf[22],_0x844ax17,_0x844ax16,_0xc0cf[36]);logger[_0xc0cf[26]](_0xc0cf[25],_0x844ax17,_0x844ax16,_0xc0cf[30],JSON[_0xc0cf[31]](_0x844ax18));return _0x844ax15[_0xc0cf[40]](_0xc0cf[37],_0x844ax1d+ _0xc0cf[38]+ _0x844ax1e+ _0xc0cf[39]+ _0x844ax1c)[_0xc0cf[32]](_0x844ax18)};return null}}function patchUpdates(_0x844ax20){return function(_0x844ax18){try{jsonpatch[_0xc0cf[41]](_0x844ax18,_0x844ax20,true)}catch(err){return BPromise[_0xc0cf[42]](err)};return _0x844ax18[_0xc0cf[43]]()}}function saveUpdates(_0x844ax22,_0x844ax16,_0x844ax17){return function(_0x844ax18){if(_0x844ax18){return _0x844ax18[_0xc0cf[46]](_0x844ax22)[_0xc0cf[45]](function(_0x844ax23){logger[_0xc0cf[24]](_0xc0cf[22],_0x844ax17,_0x844ax16,_0xc0cf[44]);logger[_0xc0cf[26]](_0xc0cf[25],_0x844ax17,_0x844ax16,_0xc0cf[44],JSON[_0xc0cf[31]](_0x844ax18));return _0x844ax23})};return null}}function removeEntity(_0x844ax15,_0x844ax16,_0x844ax17){return function(_0x844ax18){if(_0x844ax18){return _0x844ax18[_0xc0cf[48]]()[_0xc0cf[45]](function(){logger[_0xc0cf[24]](_0xc0cf[22],_0x844ax17,_0x844ax16,_0xc0cf[47]);logger[_0xc0cf[26]](_0xc0cf[25],_0x844ax17,_0x844ax16,_0xc0cf[47],JSON[_0xc0cf[31]](_0x844ax18));_0x844ax15[_0xc0cf[29]](204)[_0xc0cf[28]]()})}}}function handleEntityNotFound(_0x844ax15,_0x844ax16,_0x844ax17){return function(_0x844ax18){if(!_0x844ax18){logger[_0xc0cf[50]](_0xc0cf[22],_0x844ax17,404,_0xc0cf[49]);_0x844ax15[_0xc0cf[29]](404)[_0xc0cf[28]]();return null};return _0x844ax18}}function handleError(_0x844ax15,_0x844ax16,_0x844ax17){_0x844ax16= _0x844ax16|| 500;return function(_0x844ax27){logger[_0xc0cf[50]](_0xc0cf[22],_0x844ax17,_0x844ax16,JSON[_0xc0cf[31]](_0x844ax27));delete _0x844ax27[_0xc0cf[51]];_0x844ax15[_0xc0cf[29]](_0x844ax16)[_0xc0cf[52]](_0x844ax27)}}exports[_0xc0cf[53]]= function(_0x844ax28,_0x844ax15){var _0x844ax1b={},_0x844ax29={};_0x844ax29[_0xc0cf[54]]= _[_0xc0cf[57]](db[_0xc0cf[56]][_0xc0cf[55]]);_0x844ax29[_0xc0cf[58]]= _[_0xc0cf[57]](_0x844ax28[_0xc0cf[58]]);_0x844ax29[_0xc0cf[59]]= _[_0xc0cf[60]](_0x844ax29[_0xc0cf[54]],_0x844ax29[_0xc0cf[58]]);_0x844ax1b[_0xc0cf[61]]= _[_0xc0cf[60]](_0x844ax29[_0xc0cf[54]],qs[_0xc0cf[62]](_0x844ax28[_0xc0cf[58]][_0xc0cf[62]]));_0x844ax1b[_0xc0cf[61]]= (_0x844ax1b[_0xc0cf[61]][_0xc0cf[63]])?_0x844ax1b[_0xc0cf[61]]:_0x844ax29[_0xc0cf[54]];if(!_0x844ax28[_0xc0cf[58]][_0xc0cf[65]](_0xc0cf[64])){_0x844ax1b[_0xc0cf[35]]= qs[_0xc0cf[35]](_0x844ax28[_0xc0cf[58]][_0xc0cf[35]]);_0x844ax1b[_0xc0cf[34]]= qs[_0xc0cf[34]](_0x844ax28[_0xc0cf[58]][_0xc0cf[34]])};_0x844ax1b[_0xc0cf[66]]= qs[_0xc0cf[67]](_0x844ax28[_0xc0cf[58]][_0xc0cf[67]]);_0x844ax1b[_0xc0cf[68]]= qs[_0xc0cf[59]](_[_0xc0cf[69]](_0x844ax28[_0xc0cf[58]],_0x844ax29[_0xc0cf[59]]));if(_0x844ax28[_0xc0cf[58]][_0xc0cf[70]]){_0x844ax1b[_0xc0cf[68]]= _[_0xc0cf[73]](_0x844ax1b[_0xc0cf[68]],{$or:_[_0xc0cf[72]](_0x844ax1b[_0xc0cf[61]],function(_0x844ax2a){var _0x844ax2b={};_0x844ax2b[_0x844ax2a]= {$like:_0xc0cf[71]+ _0x844ax28[_0xc0cf[58]][_0xc0cf[70]]+ _0xc0cf[71]};return _0x844ax2b})})};_0x844ax1b= _[_0xc0cf[73]]({},_0x844ax1b,_0x844ax28[_0xc0cf[74]]);return db[_0xc0cf[56]][_0xc0cf[76]](_0x844ax1b)[_0xc0cf[45]](respondWithFilteredResult(_0x844ax15,_0x844ax1b,_0xc0cf[53]))[_0xc0cf[75]](handleError(_0x844ax15,null,_0xc0cf[53]))};exports[_0xc0cf[77]]= function(_0x844ax28,_0x844ax15){var _0x844ax1b={raw:true,where:{id:_0x844ax28[_0xc0cf[79]][_0xc0cf[78]]}},_0x844ax29={};_0x844ax29[_0xc0cf[54]]= _[_0xc0cf[57]](db[_0xc0cf[56]][_0xc0cf[55]]);_0x844ax29[_0xc0cf[58]]= _[_0xc0cf[57]](_0x844ax28[_0xc0cf[58]]);_0x844ax29[_0xc0cf[59]]= _[_0xc0cf[60]](_0x844ax29[_0xc0cf[54]],_0x844ax29[_0xc0cf[58]]);_0x844ax1b[_0xc0cf[61]]= _[_0xc0cf[60]](_0x844ax29[_0xc0cf[54]],qs[_0xc0cf[62]](_0x844ax28[_0xc0cf[58]][_0xc0cf[62]]));_0x844ax1b[_0xc0cf[61]]= (_0x844ax1b[_0xc0cf[61]][_0xc0cf[63]])?_0x844ax1b[_0xc0cf[61]]:_0x844ax29[_0xc0cf[54]];_0x844ax1b= _[_0xc0cf[73]]({},_0x844ax1b,_0x844ax28[_0xc0cf[74]]);return db[_0xc0cf[56]][_0xc0cf[80]](_0x844ax1b)[_0xc0cf[45]](handleEntityNotFound(_0x844ax15,null,_0xc0cf[77]))[_0xc0cf[45]](respondWithResult(_0x844ax15,null,_0xc0cf[77]))[_0xc0cf[75]](handleError(_0x844ax15,null,_0xc0cf[77]))};exports[_0xc0cf[81]]= function(_0x844ax28,_0x844ax15){return db[_0xc0cf[56]][_0xc0cf[81]](_0x844ax28[_0xc0cf[82]],{})[_0xc0cf[45]](respondWithResult(_0x844ax15,201,_0xc0cf[81]))[_0xc0cf[75]](handleError(_0x844ax15,null,_0xc0cf[81]))};exports[_0xc0cf[46]]= function(_0x844ax28,_0x844ax15){if(_0x844ax28[_0xc0cf[82]][_0xc0cf[78]]){delete _0x844ax28[_0xc0cf[82]][_0xc0cf[78]]};return db[_0xc0cf[56]][_0xc0cf[80]]({where:{id:_0x844ax28[_0xc0cf[79]][_0xc0cf[78]]}})[_0xc0cf[45]](handleEntityNotFound(_0x844ax15,null,_0xc0cf[46]))[_0xc0cf[45]](saveUpdates(_0x844ax28[_0xc0cf[82]],null,_0xc0cf[46]))[_0xc0cf[45]](respondWithResult(_0x844ax15,null,_0xc0cf[46]))[_0xc0cf[75]](handleError(_0x844ax15,null,_0xc0cf[46]))};exports[_0xc0cf[48]]= function(_0x844ax28,_0x844ax15){return db[_0xc0cf[56]][_0xc0cf[80]]({where:{id:_0x844ax28[_0xc0cf[79]][_0xc0cf[78]]}})[_0xc0cf[45]](handleEntityNotFound(_0x844ax15,null,_0xc0cf[48]))[_0xc0cf[45]](removeEntity(_0x844ax15,null,_0xc0cf[48]))[_0xc0cf[75]](handleError(_0x844ax15,null,_0xc0cf[48]))}
\ No newline at end of file
diff --git a/server/api/mailReport/mailReport.model.js b/server/api/mailReport/mailReport.model.js
new file mode 100644 (file)
index 0000000..29b37c3
--- /dev/null
@@ -0,0 +1 @@
+var _0x4a20=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C","\x64\x65\x66\x69\x6E\x65"];_0x4a20[0];var _=require(_0x4a20[1]);var util=require(_0x4a20[2]);var logger=require(_0x4a20[4])(_0x4a20[3]);var attributes=require(_0x4a20[5]);module[_0x4a20[6]]= function(_0x4d90x5,_0x4d90x6){return _0x4d90x5[_0x4a20[9]](_0x4a20[7],attributes,{tableName:_0x4a20[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/mailReport/mailReport.rpc.js b/server/api/mailReport/mailReport.rpc.js
new file mode 100644 (file)
index 0000000..fbcbd26
--- /dev/null
@@ -0,0 +1 @@
+var _0x7bb0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x7bb0[0];var _=require(_0x7bb0[1]);var util=require(_0x7bb0[2]);var moment=require(_0x7bb0[3]);var BPromise=require(_0x7bb0[4]);var db=require(_0x7bb0[6])[_0x7bb0[5]];var utils=require(_0x7bb0[7]);var logger=require(_0x7bb0[9])(_0x7bb0[8]);var jayson=require(_0x7bb0[10]);var client=jayson[_0x7bb0[12]][_0x7bb0[11]]({port:9002});function respondWithRpcPromise(_0xc145xb,_0xc145xc,_0xc145xd){return  new BPromise(function(_0xc145xe,_0xc145xf){return client[_0x7bb0[25]](_0xc145xb,_0xc145xd)[_0x7bb0[24]](function(_0xc145x11){logger[_0x7bb0[17]](_0x7bb0[13],_0xc145xc,_0x7bb0[16]);logger[_0x7bb0[20]](_0x7bb0[18],_0xc145xc,_0x7bb0[16],JSON[_0x7bb0[19]](_0xc145x11));if(_0xc145x11[_0x7bb0[14]]){if(_0xc145x11[_0x7bb0[14]][_0x7bb0[21]]=== 500){logger[_0x7bb0[14]](_0x7bb0[13],_0xc145xc,_0xc145x11[_0x7bb0[14]][_0x7bb0[22]]);return _0xc145xf(_0xc145x11[_0x7bb0[14]][_0x7bb0[22]])};logger[_0x7bb0[14]](_0x7bb0[13],_0xc145xc,_0xc145x11[_0x7bb0[14]][_0x7bb0[22]]);return _0xc145xe(_0xc145x11[_0x7bb0[14]][_0x7bb0[22]])}else {logger[_0x7bb0[17]](_0x7bb0[13],_0xc145xc,_0x7bb0[16]);_0xc145xe(_0xc145x11[_0x7bb0[23]][_0x7bb0[22]])}})[_0x7bb0[15]](function(_0xc145x10){logger[_0x7bb0[14]](_0x7bb0[13],_0xc145xc,_0xc145x10);_0xc145xf(_0xc145x10)})})}
\ No newline at end of file
diff --git a/server/api/mailServerIn/index.js b/server/api/mailServerIn/index.js
new file mode 100644 (file)
index 0000000..82014f4
--- /dev/null
@@ -0,0 +1 @@
+var _0xcf69=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xcf69[0];var multer=require(_0xcf69[1]);var util=require(_0xcf69[2]);var path=require(_0xcf69[3]);var express=require(_0xcf69[4]);var router=express.Router();var auth=require(_0xcf69[5]);var config=require(_0xcf69[6]);module[_0xcf69[7]]= router
\ No newline at end of file
diff --git a/server/api/mailServerIn/mailServerIn.attributes.js b/server/api/mailServerIn/mailServerIn.attributes.js
new file mode 100644 (file)
index 0000000..67c9754
--- /dev/null
@@ -0,0 +1 @@
+var _0xd6a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x55\x4E\x53\x45\x45\x4E","\x49\x4D\x41\x50","\x50\x4F\x50\x33","\x43\x4F\x4E\x4E\x45\x43\x54\x49\x4E\x47","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x45\x52\x52\x4F\x52","\x55\x4E\x4B\x4E\x4F\x57\x4E","\x63\x6F\x6E\x6E\x54\x69\x6D\x65\x6F\x75\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x75\x74\x68\x54\x69\x6D\x65\x6F\x75\x74"];_0xd6a1[0];var Sequelize=require(_0xd6a1[1]);module[_0xd6a1[2]]= {description:{type:Sequelize[_0xd6a1[3]]},host:{type:Sequelize[_0xd6a1[3]]},username:{type:Sequelize[_0xd6a1[3]],unique:_0xd6a1[4]},password:{type:Sequelize[_0xd6a1[3]]},port:{type:Sequelize[_0xd6a1[5]]},mailbox:{type:Sequelize[_0xd6a1[3]]},ssl:{type:Sequelize[_0xd6a1[6]],defaultValue:false},delete:{type:Sequelize[_0xd6a1[6]],defaultValue:false},filter:{type:Sequelize.ENUM(_0xd6a1[7]),defaultValue:_0xd6a1[7]},protocol:{type:Sequelize.ENUM(_0xd6a1[8],_0xd6a1[9]),defaultValue:_0xd6a1[8]},state:{type:Sequelize.ENUM(_0xd6a1[10],_0xd6a1[11],_0xd6a1[12],_0xd6a1[13],_0xd6a1[14]),defaultValue:_0xd6a1[14]},source:{type:Sequelize[_0xd6a1[3]]},connTimeout:{type:Sequelize[_0xd6a1[5]],defaultValue:10000,get:function(){return this[_0xd6a1[16]](_0xd6a1[15])?this[_0xd6a1[16]](_0xd6a1[15])/ 1000:null},set:function(_0xf7b3x2){this[_0xd6a1[17]](_0xd6a1[15],_0xf7b3x2* 1000)}},authTimeout:{type:Sequelize[_0xd6a1[5]],defaultValue:5000,get:function(){return this[_0xd6a1[16]](_0xd6a1[18])?this[_0xd6a1[16]](_0xd6a1[18])/ 1000:null},set:function(_0xf7b3x2){this[_0xd6a1[17]](_0xd6a1[18],_0xf7b3x2* 1000)}},keepalive:{type:Sequelize[_0xd6a1[6]],defaultValue:true}}
\ No newline at end of file
diff --git a/server/api/mailServerIn/mailServerIn.model.js b/server/api/mailServerIn/mailServerIn.model.js
new file mode 100644 (file)
index 0000000..63a0b67
--- /dev/null
@@ -0,0 +1 @@
+var _0x6005=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x73\x5F\x69\x6E","\x64\x65\x66\x69\x6E\x65"];_0x6005[0];var _=require(_0x6005[1]);var util=require(_0x6005[2]);var logger=require(_0x6005[4])(_0x6005[3]);var attributes=require(_0x6005[5]);module[_0x6005[6]]= function(_0x6a8dx5,_0x6a8dx6){return _0x6a8dx5[_0x6005[9]](_0x6005[7],attributes,{tableName:_0x6005[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/mailServerIn/mailServerIn.rpc.js b/server/api/mailServerIn/mailServerIn.rpc.js
new file mode 100644 (file)
index 0000000..a8008c6
--- /dev/null
@@ -0,0 +1 @@
+var _0xcb10=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xcb10[0];var _=require(_0xcb10[1]);var util=require(_0xcb10[2]);var moment=require(_0xcb10[3]);var BPromise=require(_0xcb10[4]);var db=require(_0xcb10[6])[_0xcb10[5]];var utils=require(_0xcb10[7]);var logger=require(_0xcb10[9])(_0xcb10[8]);var jayson=require(_0xcb10[10]);var client=jayson[_0xcb10[12]][_0xcb10[11]]({port:9002});function respondWithRpcPromise(_0x4c7dxb,_0x4c7dxc,_0x4c7dxd){return  new BPromise(function(_0x4c7dxe,_0x4c7dxf){return client[_0xcb10[25]](_0x4c7dxb,_0x4c7dxd)[_0xcb10[24]](function(_0x4c7dx11){logger[_0xcb10[17]](_0xcb10[13],_0x4c7dxc,_0xcb10[16]);logger[_0xcb10[20]](_0xcb10[18],_0x4c7dxc,_0xcb10[16],JSON[_0xcb10[19]](_0x4c7dx11));if(_0x4c7dx11[_0xcb10[14]]){if(_0x4c7dx11[_0xcb10[14]][_0xcb10[21]]=== 500){logger[_0xcb10[14]](_0xcb10[13],_0x4c7dxc,_0x4c7dx11[_0xcb10[14]][_0xcb10[22]]);return _0x4c7dxf(_0x4c7dx11[_0xcb10[14]][_0xcb10[22]])};logger[_0xcb10[14]](_0xcb10[13],_0x4c7dxc,_0x4c7dx11[_0xcb10[14]][_0xcb10[22]]);return _0x4c7dxe(_0x4c7dx11[_0xcb10[14]][_0xcb10[22]])}else {logger[_0xcb10[17]](_0xcb10[13],_0x4c7dxc,_0xcb10[16]);_0x4c7dxe(_0x4c7dx11[_0xcb10[23]][_0xcb10[22]])}})[_0xcb10[15]](function(_0x4c7dx10){logger[_0xcb10[14]](_0xcb10[13],_0x4c7dxc,_0x4c7dx10);_0x4c7dxf(_0x4c7dx10)})})}
\ No newline at end of file
diff --git a/server/api/mailServerOut/index.js b/server/api/mailServerOut/index.js
new file mode 100644 (file)
index 0000000..9a8558d
--- /dev/null
@@ -0,0 +1 @@
+var _0xd5bc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xd5bc[0];var multer=require(_0xd5bc[1]);var util=require(_0xd5bc[2]);var path=require(_0xd5bc[3]);var express=require(_0xd5bc[4]);var router=express.Router();var auth=require(_0xd5bc[5]);var config=require(_0xd5bc[6]);var controller=require(_0xd5bc[7]);router[_0xd5bc[11]](_0xd5bc[8],auth[_0xd5bc[9]](),controller[_0xd5bc[10]]);router[_0xd5bc[11]](_0xd5bc[12],auth[_0xd5bc[9]](),controller[_0xd5bc[13]]);router[_0xd5bc[15]](_0xd5bc[8],auth[_0xd5bc[9]](),controller[_0xd5bc[14]]);router[_0xd5bc[17]](_0xd5bc[12],auth[_0xd5bc[9]](),controller[_0xd5bc[16]]);router[_0xd5bc[19]](_0xd5bc[12],auth[_0xd5bc[9]](),controller[_0xd5bc[18]]);module[_0xd5bc[20]]= router
\ No newline at end of file
diff --git a/server/api/mailServerOut/mailServerOut.attributes.js b/server/api/mailServerOut/mailServerOut.attributes.js
new file mode 100644 (file)
index 0000000..acdc5db
--- /dev/null
@@ -0,0 +1 @@
+var _0x9d43=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x9d43[0];var Sequelize=require(_0x9d43[1]);module[_0x9d43[2]]= {description:{type:Sequelize[_0x9d43[3]]},service:{type:Sequelize[_0x9d43[3]]},host:{type:Sequelize[_0x9d43[3]]},user:{type:Sequelize[_0x9d43[3]]},pass:{type:Sequelize[_0x9d43[3]]},port:{type:Sequelize[_0x9d43[4]]},secure:{type:Sequelize[_0x9d43[5]],defaultValue:false},state:{type:Sequelize[_0x9d43[3]]}}
\ No newline at end of file
diff --git a/server/api/mailServerOut/mailServerOut.controller.js b/server/api/mailServerOut/mailServerOut.controller.js
new file mode 100644 (file)
index 0000000..cbdb93b
--- /dev/null
@@ -0,0 +1 @@
+var _0xb29b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xb29b[0];var jsonpatch=require(_0xb29b[1]);var rp=require(_0xb29b[2]);var moment=require(_0xb29b[3]);var BPromise=require(_0xb29b[4]);var util=require(_0xb29b[5]);var path=require(_0xb29b[6]);var sox=require(_0xb29b[7]);var ejs=require(_0xb29b[8]);var fs=require(_0xb29b[9]);var _=require(_0xb29b[10]);var squel=require(_0xb29b[11]);var crypto=require(_0xb29b[12]);var jsforce=require(_0xb29b[13]);var toCsv=require(_0xb29b[14]);var qs=require(_0xb29b[15]);var logger=require(_0xb29b[17])(_0xb29b[16]);var utils=require(_0xb29b[18]);var config=require(_0xb29b[19]);var db=require(_0xb29b[21])[_0xb29b[20]];function respondWithStatusCode(_0x5e79x15,_0x5e79x16,_0x5e79x17){_0x5e79x16= _0x5e79x16|| 204;return function(_0x5e79x18){if(_0x5e79x18){logger[_0xb29b[24]](_0xb29b[22],_0x5e79x17,_0x5e79x16,_0xb29b[23]);logger[_0xb29b[26]](_0xb29b[25],_0x5e79x17,_0x5e79x16,_0xb29b[23]);return _0x5e79x15[_0xb29b[27]](_0x5e79x16)};return _0x5e79x15[_0xb29b[29]](304)[_0xb29b[28]]()}}function respondWithResult(_0x5e79x15,_0x5e79x16,_0x5e79x17){_0x5e79x16= _0x5e79x16|| 200;return function(_0x5e79x18){if(_0x5e79x18){logger[_0xb29b[24]](_0xb29b[22],_0x5e79x17,_0x5e79x16,_0xb29b[30]);logger[_0xb29b[26]](_0xb29b[25],_0x5e79x17,_0x5e79x16,_0xb29b[30],JSON[_0xb29b[31]](_0x5e79x18));return _0x5e79x15[_0xb29b[29]](_0x5e79x16)[_0xb29b[32]](_0x5e79x18)};return _0x5e79x15[_0xb29b[29]](304)[_0xb29b[28]]()}}function respondWithFilteredResult(_0x5e79x15,_0x5e79x1b,_0x5e79x17){return function(_0x5e79x18){if(_0x5e79x18){var _0x5e79x1c=_0x5e79x18[_0xb29b[33]],_0x5e79x1d=_0x5e79x1b[_0xb29b[34]],_0x5e79x1e=_0x5e79x1b[_0xb29b[34]]+ _0x5e79x1b[_0xb29b[35]],_0x5e79x16;if(_0x5e79x1e>= _0x5e79x1c){_0x5e79x1e= _0x5e79x1c;_0x5e79x16= 200}else {_0x5e79x16= 206};_0x5e79x15[_0xb29b[29]](_0x5e79x16);logger[_0xb29b[24]](_0xb29b[22],_0x5e79x17,_0x5e79x16,_0xb29b[36]);logger[_0xb29b[26]](_0xb29b[25],_0x5e79x17,_0x5e79x16,_0xb29b[30],JSON[_0xb29b[31]](_0x5e79x18));return _0x5e79x15[_0xb29b[40]](_0xb29b[37],_0x5e79x1d+ _0xb29b[38]+ _0x5e79x1e+ _0xb29b[39]+ _0x5e79x1c)[_0xb29b[32]](_0x5e79x18)};return null}}function patchUpdates(_0x5e79x20){return function(_0x5e79x18){try{jsonpatch[_0xb29b[41]](_0x5e79x18,_0x5e79x20,true)}catch(err){return BPromise[_0xb29b[42]](err)};return _0x5e79x18[_0xb29b[43]]()}}function saveUpdates(_0x5e79x22,_0x5e79x16,_0x5e79x17){return function(_0x5e79x18){if(_0x5e79x18){return _0x5e79x18[_0xb29b[46]](_0x5e79x22)[_0xb29b[45]](function(_0x5e79x23){logger[_0xb29b[24]](_0xb29b[22],_0x5e79x17,_0x5e79x16,_0xb29b[44]);logger[_0xb29b[26]](_0xb29b[25],_0x5e79x17,_0x5e79x16,_0xb29b[44],JSON[_0xb29b[31]](_0x5e79x18));return _0x5e79x23})};return null}}function removeEntity(_0x5e79x15,_0x5e79x16,_0x5e79x17){return function(_0x5e79x18){if(_0x5e79x18){return _0x5e79x18[_0xb29b[48]]()[_0xb29b[45]](function(){logger[_0xb29b[24]](_0xb29b[22],_0x5e79x17,_0x5e79x16,_0xb29b[47]);logger[_0xb29b[26]](_0xb29b[25],_0x5e79x17,_0x5e79x16,_0xb29b[47],JSON[_0xb29b[31]](_0x5e79x18));_0x5e79x15[_0xb29b[29]](204)[_0xb29b[28]]()})}}}function handleEntityNotFound(_0x5e79x15,_0x5e79x16,_0x5e79x17){return function(_0x5e79x18){if(!_0x5e79x18){logger[_0xb29b[50]](_0xb29b[22],_0x5e79x17,404,_0xb29b[49]);_0x5e79x15[_0xb29b[29]](404)[_0xb29b[28]]();return null};return _0x5e79x18}}function handleError(_0x5e79x15,_0x5e79x16,_0x5e79x17){_0x5e79x16= _0x5e79x16|| 500;return function(_0x5e79x27){logger[_0xb29b[50]](_0xb29b[22],_0x5e79x17,_0x5e79x16,JSON[_0xb29b[31]](_0x5e79x27));delete _0x5e79x27[_0xb29b[51]];_0x5e79x15[_0xb29b[29]](_0x5e79x16)[_0xb29b[52]](_0x5e79x27)}}exports[_0xb29b[53]]= function(_0x5e79x28,_0x5e79x15){var _0x5e79x1b={},_0x5e79x29={};_0x5e79x29[_0xb29b[54]]= _[_0xb29b[57]](db[_0xb29b[56]][_0xb29b[55]]);_0x5e79x29[_0xb29b[58]]= _[_0xb29b[57]](_0x5e79x28[_0xb29b[58]]);_0x5e79x29[_0xb29b[59]]= _[_0xb29b[60]](_0x5e79x29[_0xb29b[54]],_0x5e79x29[_0xb29b[58]]);_0x5e79x1b[_0xb29b[61]]= _[_0xb29b[60]](_0x5e79x29[_0xb29b[54]],qs[_0xb29b[62]](_0x5e79x28[_0xb29b[58]][_0xb29b[62]]));_0x5e79x1b[_0xb29b[61]]= (_0x5e79x1b[_0xb29b[61]][_0xb29b[63]])?_0x5e79x1b[_0xb29b[61]]:_0x5e79x29[_0xb29b[54]];if(!_0x5e79x28[_0xb29b[58]][_0xb29b[65]](_0xb29b[64])){_0x5e79x1b[_0xb29b[35]]= qs[_0xb29b[35]](_0x5e79x28[_0xb29b[58]][_0xb29b[35]]);_0x5e79x1b[_0xb29b[34]]= qs[_0xb29b[34]](_0x5e79x28[_0xb29b[58]][_0xb29b[34]])};_0x5e79x1b[_0xb29b[66]]= qs[_0xb29b[67]](_0x5e79x28[_0xb29b[58]][_0xb29b[67]]);_0x5e79x1b[_0xb29b[68]]= qs[_0xb29b[59]](_[_0xb29b[69]](_0x5e79x28[_0xb29b[58]],_0x5e79x29[_0xb29b[59]]));if(_0x5e79x28[_0xb29b[58]][_0xb29b[70]]){_0x5e79x1b[_0xb29b[68]]= _[_0xb29b[73]](_0x5e79x1b[_0xb29b[68]],{$or:_[_0xb29b[72]](_0x5e79x1b[_0xb29b[61]],function(_0x5e79x2a){var _0x5e79x2b={};_0x5e79x2b[_0x5e79x2a]= {$like:_0xb29b[71]+ _0x5e79x28[_0xb29b[58]][_0xb29b[70]]+ _0xb29b[71]};return _0x5e79x2b})})};_0x5e79x1b= _[_0xb29b[73]]({},_0x5e79x1b,_0x5e79x28[_0xb29b[74]]);return db[_0xb29b[56]][_0xb29b[76]](_0x5e79x1b)[_0xb29b[45]](respondWithFilteredResult(_0x5e79x15,_0x5e79x1b,_0xb29b[53]))[_0xb29b[75]](handleError(_0x5e79x15,null,_0xb29b[53]))};exports[_0xb29b[77]]= function(_0x5e79x28,_0x5e79x15){var _0x5e79x1b={raw:true,where:{id:_0x5e79x28[_0xb29b[79]][_0xb29b[78]]}},_0x5e79x29={};_0x5e79x29[_0xb29b[54]]= _[_0xb29b[57]](db[_0xb29b[56]][_0xb29b[55]]);_0x5e79x29[_0xb29b[58]]= _[_0xb29b[57]](_0x5e79x28[_0xb29b[58]]);_0x5e79x29[_0xb29b[59]]= _[_0xb29b[60]](_0x5e79x29[_0xb29b[54]],_0x5e79x29[_0xb29b[58]]);_0x5e79x1b[_0xb29b[61]]= _[_0xb29b[60]](_0x5e79x29[_0xb29b[54]],qs[_0xb29b[62]](_0x5e79x28[_0xb29b[58]][_0xb29b[62]]));_0x5e79x1b[_0xb29b[61]]= (_0x5e79x1b[_0xb29b[61]][_0xb29b[63]])?_0x5e79x1b[_0xb29b[61]]:_0x5e79x29[_0xb29b[54]];_0x5e79x1b= _[_0xb29b[73]]({},_0x5e79x1b,_0x5e79x28[_0xb29b[74]]);return db[_0xb29b[56]][_0xb29b[80]](_0x5e79x1b)[_0xb29b[45]](handleEntityNotFound(_0x5e79x15,null,_0xb29b[77]))[_0xb29b[45]](respondWithResult(_0x5e79x15,null,_0xb29b[77]))[_0xb29b[75]](handleError(_0x5e79x15,null,_0xb29b[77]))};exports[_0xb29b[81]]= function(_0x5e79x28,_0x5e79x15){return db[_0xb29b[56]][_0xb29b[81]](_0x5e79x28[_0xb29b[82]],{})[_0xb29b[45]](respondWithResult(_0x5e79x15,201,_0xb29b[81]))[_0xb29b[75]](handleError(_0x5e79x15,null,_0xb29b[81]))};exports[_0xb29b[46]]= function(_0x5e79x28,_0x5e79x15){if(_0x5e79x28[_0xb29b[82]][_0xb29b[78]]){delete _0x5e79x28[_0xb29b[82]][_0xb29b[78]]};return db[_0xb29b[56]][_0xb29b[80]]({where:{id:_0x5e79x28[_0xb29b[79]][_0xb29b[78]]}})[_0xb29b[45]](handleEntityNotFound(_0x5e79x15,null,_0xb29b[46]))[_0xb29b[45]](saveUpdates(_0x5e79x28[_0xb29b[82]],null,_0xb29b[46]))[_0xb29b[45]](respondWithResult(_0x5e79x15,null,_0xb29b[46]))[_0xb29b[75]](handleError(_0x5e79x15,null,_0xb29b[46]))};exports[_0xb29b[48]]= function(_0x5e79x28,_0x5e79x15){return db[_0xb29b[56]][_0xb29b[80]]({where:{id:_0x5e79x28[_0xb29b[79]][_0xb29b[78]]}})[_0xb29b[45]](handleEntityNotFound(_0x5e79x15,null,_0xb29b[48]))[_0xb29b[45]](removeEntity(_0x5e79x15,null,_0xb29b[48]))[_0xb29b[75]](handleError(_0x5e79x15,null,_0xb29b[48]))}
\ No newline at end of file
diff --git a/server/api/mailServerOut/mailServerOut.model.js b/server/api/mailServerOut/mailServerOut.model.js
new file mode 100644 (file)
index 0000000..86edba9
--- /dev/null
@@ -0,0 +1 @@
+var _0x6771=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x6D\x61\x69\x6C\x5F\x73\x65\x72\x76\x65\x72\x73\x5F\x6F\x75\x74","\x64\x65\x66\x69\x6E\x65"];_0x6771[0];var _=require(_0x6771[1]);var util=require(_0x6771[2]);var logger=require(_0x6771[4])(_0x6771[3]);var attributes=require(_0x6771[5]);module[_0x6771[6]]= function(_0x9a58x5,_0x9a58x6){return _0x9a58x5[_0x6771[9]](_0x6771[7],attributes,{tableName:_0x6771[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/mailServerOut/mailServerOut.rpc.js b/server/api/mailServerOut/mailServerOut.rpc.js
new file mode 100644 (file)
index 0000000..843cffc
--- /dev/null
@@ -0,0 +1 @@
+var _0x6ebf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6ebf[0];var _=require(_0x6ebf[1]);var util=require(_0x6ebf[2]);var moment=require(_0x6ebf[3]);var BPromise=require(_0x6ebf[4]);var db=require(_0x6ebf[6])[_0x6ebf[5]];var utils=require(_0x6ebf[7]);var logger=require(_0x6ebf[9])(_0x6ebf[8]);var jayson=require(_0x6ebf[10]);var client=jayson[_0x6ebf[12]][_0x6ebf[11]]({port:9002});function respondWithRpcPromise(_0x832exb,_0x832exc,_0x832exd){return  new BPromise(function(_0x832exe,_0x832exf){return client[_0x6ebf[25]](_0x832exb,_0x832exd)[_0x6ebf[24]](function(_0x832ex11){logger[_0x6ebf[17]](_0x6ebf[13],_0x832exc,_0x6ebf[16]);logger[_0x6ebf[20]](_0x6ebf[18],_0x832exc,_0x6ebf[16],JSON[_0x6ebf[19]](_0x832ex11));if(_0x832ex11[_0x6ebf[14]]){if(_0x832ex11[_0x6ebf[14]][_0x6ebf[21]]=== 500){logger[_0x6ebf[14]](_0x6ebf[13],_0x832exc,_0x832ex11[_0x6ebf[14]][_0x6ebf[22]]);return _0x832exf(_0x832ex11[_0x6ebf[14]][_0x6ebf[22]])};logger[_0x6ebf[14]](_0x6ebf[13],_0x832exc,_0x832ex11[_0x6ebf[14]][_0x6ebf[22]]);return _0x832exe(_0x832ex11[_0x6ebf[14]][_0x6ebf[22]])}else {logger[_0x6ebf[17]](_0x6ebf[13],_0x832exc,_0x6ebf[16]);_0x832exe(_0x832ex11[_0x6ebf[23]][_0x6ebf[22]])}})[_0x6ebf[15]](function(_0x832ex10){logger[_0x6ebf[14]](_0x6ebf[13],_0x832exc,_0x832ex10);_0x832exf(_0x832ex10)})})}
\ No newline at end of file
diff --git a/server/api/mailSessionReport/index.js b/server/api/mailSessionReport/index.js
new file mode 100644 (file)
index 0000000..048e8f0
--- /dev/null
@@ -0,0 +1 @@
+var _0x2d77=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2d77[0];var multer=require(_0x2d77[1]);var util=require(_0x2d77[2]);var path=require(_0x2d77[3]);var express=require(_0x2d77[4]);var router=express.Router();var auth=require(_0x2d77[5]);var config=require(_0x2d77[6]);var controller=require(_0x2d77[7]);router[_0x2d77[11]](_0x2d77[8],auth[_0x2d77[9]](),controller[_0x2d77[10]]);router[_0x2d77[11]](_0x2d77[12],auth[_0x2d77[9]](),controller[_0x2d77[13]]);router[_0x2d77[11]](_0x2d77[14],auth[_0x2d77[9]](),controller[_0x2d77[15]]);router[_0x2d77[17]](_0x2d77[8],auth[_0x2d77[9]](),controller[_0x2d77[16]]);router[_0x2d77[19]](_0x2d77[14],auth[_0x2d77[9]](),controller[_0x2d77[18]]);router[_0x2d77[21]](_0x2d77[14],auth[_0x2d77[9]](),controller[_0x2d77[20]]);module[_0x2d77[22]]= router
\ No newline at end of file
diff --git a/server/api/mailSessionReport/mailSessionReport.attributes.js b/server/api/mailSessionReport/mailSessionReport.attributes.js
new file mode 100644 (file)
index 0000000..5e140f8
--- /dev/null
@@ -0,0 +1 @@
+var _0xf9f4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74"];_0xf9f4[0];var Sequelize=require(_0xf9f4[1]);module[_0xf9f4[2]]= {uniqueid:{type:Sequelize[_0xf9f4[3]]},subject:{type:Sequelize[_0xf9f4[3]]},accountid:{type:Sequelize[_0xf9f4[3]]},accountname:{type:Sequelize[_0xf9f4[3]]},accountaddress:{type:Sequelize[_0xf9f4[3]]},application:{type:Sequelize[_0xf9f4[3]]},memberid:{type:Sequelize[_0xf9f4[3]]},membername:{type:Sequelize[_0xf9f4[3]]},queue:{type:Sequelize[_0xf9f4[4]]},queuename:{type:Sequelize[_0xf9f4[3]]},roomid:{type:Sequelize[_0xf9f4[4]]},fidelity:{type:Sequelize[_0xf9f4[4]],defaultValue:0},joinAt:{type:Sequelize[_0xf9f4[5]]},leaveAt:{type:Sequelize[_0xf9f4[5]]},completeAt:{type:Sequelize[_0xf9f4[5]]},complete:{type:Sequelize[_0xf9f4[6]],defaulValue:false},completeReason:{type:Sequelize.ENUM(_0xf9f4[7])},timeout:{type:Sequelize[_0xf9f4[6]],defaultValue:false},timeslot:{type:Sequelize[_0xf9f4[4]]}}
\ No newline at end of file
diff --git a/server/api/mailSessionReport/mailSessionReport.controller.js b/server/api/mailSessionReport/mailSessionReport.controller.js
new file mode 100644 (file)
index 0000000..4d023d1
--- /dev/null
@@ -0,0 +1 @@
+var _0xeacb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xeacb[0];var jsonpatch=require(_0xeacb[1]);var rp=require(_0xeacb[2]);var moment=require(_0xeacb[3]);var BPromise=require(_0xeacb[4]);var util=require(_0xeacb[5]);var path=require(_0xeacb[6]);var sox=require(_0xeacb[7]);var ejs=require(_0xeacb[8]);var fs=require(_0xeacb[9]);var _=require(_0xeacb[10]);var squel=require(_0xeacb[11]);var crypto=require(_0xeacb[12]);var jsforce=require(_0xeacb[13]);var toCsv=require(_0xeacb[14]);var qs=require(_0xeacb[15]);var logger=require(_0xeacb[17])(_0xeacb[16]);var utils=require(_0xeacb[18]);var config=require(_0xeacb[19]);var db=require(_0xeacb[21])[_0xeacb[20]];function respondWithStatusCode(_0x2ce6x15,_0x2ce6x16,_0x2ce6x17){_0x2ce6x16= _0x2ce6x16|| 204;return function(_0x2ce6x18){if(_0x2ce6x18){logger[_0xeacb[24]](_0xeacb[22],_0x2ce6x17,_0x2ce6x16,_0xeacb[23]);logger[_0xeacb[26]](_0xeacb[25],_0x2ce6x17,_0x2ce6x16,_0xeacb[23]);return _0x2ce6x15[_0xeacb[27]](_0x2ce6x16)};return _0x2ce6x15[_0xeacb[29]](304)[_0xeacb[28]]()}}function respondWithResult(_0x2ce6x15,_0x2ce6x16,_0x2ce6x17){_0x2ce6x16= _0x2ce6x16|| 200;return function(_0x2ce6x18){if(_0x2ce6x18){logger[_0xeacb[24]](_0xeacb[22],_0x2ce6x17,_0x2ce6x16,_0xeacb[30]);logger[_0xeacb[26]](_0xeacb[25],_0x2ce6x17,_0x2ce6x16,_0xeacb[30],JSON[_0xeacb[31]](_0x2ce6x18));return _0x2ce6x15[_0xeacb[29]](_0x2ce6x16)[_0xeacb[32]](_0x2ce6x18)};return _0x2ce6x15[_0xeacb[29]](304)[_0xeacb[28]]()}}function respondWithFilteredResult(_0x2ce6x15,_0x2ce6x1b,_0x2ce6x17){return function(_0x2ce6x18){if(_0x2ce6x18){var _0x2ce6x1c=_0x2ce6x18[_0xeacb[33]],_0x2ce6x1d=_0x2ce6x1b[_0xeacb[34]],_0x2ce6x1e=_0x2ce6x1b[_0xeacb[34]]+ _0x2ce6x1b[_0xeacb[35]],_0x2ce6x16;if(_0x2ce6x1e>= _0x2ce6x1c){_0x2ce6x1e= _0x2ce6x1c;_0x2ce6x16= 200}else {_0x2ce6x16= 206};_0x2ce6x15[_0xeacb[29]](_0x2ce6x16);logger[_0xeacb[24]](_0xeacb[22],_0x2ce6x17,_0x2ce6x16,_0xeacb[36]);logger[_0xeacb[26]](_0xeacb[25],_0x2ce6x17,_0x2ce6x16,_0xeacb[30],JSON[_0xeacb[31]](_0x2ce6x18));return _0x2ce6x15[_0xeacb[40]](_0xeacb[37],_0x2ce6x1d+ _0xeacb[38]+ _0x2ce6x1e+ _0xeacb[39]+ _0x2ce6x1c)[_0xeacb[32]](_0x2ce6x18)};return null}}function patchUpdates(_0x2ce6x20){return function(_0x2ce6x18){try{jsonpatch[_0xeacb[41]](_0x2ce6x18,_0x2ce6x20,true)}catch(err){return BPromise[_0xeacb[42]](err)};return _0x2ce6x18[_0xeacb[43]]()}}function saveUpdates(_0x2ce6x22,_0x2ce6x16,_0x2ce6x17){return function(_0x2ce6x18){if(_0x2ce6x18){return _0x2ce6x18[_0xeacb[46]](_0x2ce6x22)[_0xeacb[45]](function(_0x2ce6x23){logger[_0xeacb[24]](_0xeacb[22],_0x2ce6x17,_0x2ce6x16,_0xeacb[44]);logger[_0xeacb[26]](_0xeacb[25],_0x2ce6x17,_0x2ce6x16,_0xeacb[44],JSON[_0xeacb[31]](_0x2ce6x18));return _0x2ce6x23})};return null}}function removeEntity(_0x2ce6x15,_0x2ce6x16,_0x2ce6x17){return function(_0x2ce6x18){if(_0x2ce6x18){return _0x2ce6x18[_0xeacb[48]]()[_0xeacb[45]](function(){logger[_0xeacb[24]](_0xeacb[22],_0x2ce6x17,_0x2ce6x16,_0xeacb[47]);logger[_0xeacb[26]](_0xeacb[25],_0x2ce6x17,_0x2ce6x16,_0xeacb[47],JSON[_0xeacb[31]](_0x2ce6x18));_0x2ce6x15[_0xeacb[29]](204)[_0xeacb[28]]()})}}}function handleEntityNotFound(_0x2ce6x15,_0x2ce6x16,_0x2ce6x17){return function(_0x2ce6x18){if(!_0x2ce6x18){logger[_0xeacb[50]](_0xeacb[22],_0x2ce6x17,404,_0xeacb[49]);_0x2ce6x15[_0xeacb[29]](404)[_0xeacb[28]]();return null};return _0x2ce6x18}}function handleError(_0x2ce6x15,_0x2ce6x16,_0x2ce6x17){_0x2ce6x16= _0x2ce6x16|| 500;return function(_0x2ce6x27){logger[_0xeacb[50]](_0xeacb[22],_0x2ce6x17,_0x2ce6x16,JSON[_0xeacb[31]](_0x2ce6x27));delete _0x2ce6x27[_0xeacb[51]];_0x2ce6x15[_0xeacb[29]](_0x2ce6x16)[_0xeacb[52]](_0x2ce6x27)}}exports[_0xeacb[53]]= function(_0x2ce6x28,_0x2ce6x15){var _0x2ce6x1b={},_0x2ce6x29={};_0x2ce6x29[_0xeacb[54]]= _[_0xeacb[57]](db[_0xeacb[56]][_0xeacb[55]]);_0x2ce6x29[_0xeacb[58]]= _[_0xeacb[57]](_0x2ce6x28[_0xeacb[58]]);_0x2ce6x29[_0xeacb[59]]= _[_0xeacb[60]](_0x2ce6x29[_0xeacb[54]],_0x2ce6x29[_0xeacb[58]]);_0x2ce6x1b[_0xeacb[61]]= _[_0xeacb[60]](_0x2ce6x29[_0xeacb[54]],qs[_0xeacb[62]](_0x2ce6x28[_0xeacb[58]][_0xeacb[62]]));_0x2ce6x1b[_0xeacb[61]]= (_0x2ce6x1b[_0xeacb[61]][_0xeacb[63]])?_0x2ce6x1b[_0xeacb[61]]:_0x2ce6x29[_0xeacb[54]];if(!_0x2ce6x28[_0xeacb[58]][_0xeacb[65]](_0xeacb[64])){_0x2ce6x1b[_0xeacb[35]]= qs[_0xeacb[35]](_0x2ce6x28[_0xeacb[58]][_0xeacb[35]]);_0x2ce6x1b[_0xeacb[34]]= qs[_0xeacb[34]](_0x2ce6x28[_0xeacb[58]][_0xeacb[34]])};_0x2ce6x1b[_0xeacb[66]]= qs[_0xeacb[67]](_0x2ce6x28[_0xeacb[58]][_0xeacb[67]]);_0x2ce6x1b[_0xeacb[68]]= qs[_0xeacb[59]](_[_0xeacb[69]](_0x2ce6x28[_0xeacb[58]],_0x2ce6x29[_0xeacb[59]]));if(_0x2ce6x28[_0xeacb[58]][_0xeacb[70]]){_0x2ce6x1b[_0xeacb[68]]= _[_0xeacb[73]](_0x2ce6x1b[_0xeacb[68]],{$or:_[_0xeacb[72]](_0x2ce6x1b[_0xeacb[61]],function(_0x2ce6x2a){var _0x2ce6x2b={};_0x2ce6x2b[_0x2ce6x2a]= {$like:_0xeacb[71]+ _0x2ce6x28[_0xeacb[58]][_0xeacb[70]]+ _0xeacb[71]};return _0x2ce6x2b})})};_0x2ce6x1b= _[_0xeacb[73]]({},_0x2ce6x1b,_0x2ce6x28[_0xeacb[74]]);return db[_0xeacb[56]][_0xeacb[76]](_0x2ce6x1b)[_0xeacb[45]](respondWithFilteredResult(_0x2ce6x15,_0x2ce6x1b,_0xeacb[53]))[_0xeacb[75]](handleError(_0x2ce6x15,null,_0xeacb[53]))};exports[_0xeacb[77]]= function(_0x2ce6x28,_0x2ce6x15){var _0x2ce6x1b={raw:false,where:{id:_0x2ce6x28[_0xeacb[79]][_0xeacb[78]]}},_0x2ce6x29={};_0x2ce6x29[_0xeacb[54]]= _[_0xeacb[57]](db[_0xeacb[56]][_0xeacb[55]]);_0x2ce6x29[_0xeacb[58]]= _[_0xeacb[57]](_0x2ce6x28[_0xeacb[58]]);_0x2ce6x29[_0xeacb[59]]= _[_0xeacb[60]](_0x2ce6x29[_0xeacb[54]],_0x2ce6x29[_0xeacb[58]]);_0x2ce6x1b[_0xeacb[61]]= _[_0xeacb[60]](_0x2ce6x29[_0xeacb[54]],qs[_0xeacb[62]](_0x2ce6x28[_0xeacb[58]][_0xeacb[62]]));_0x2ce6x1b[_0xeacb[61]]= (_0x2ce6x1b[_0xeacb[61]][_0xeacb[63]])?_0x2ce6x1b[_0xeacb[61]]:_0x2ce6x29[_0xeacb[54]];_0x2ce6x1b= _[_0xeacb[73]]({},_0x2ce6x1b,_0x2ce6x28[_0xeacb[74]]);return db[_0xeacb[56]][_0xeacb[80]](_0x2ce6x1b)[_0xeacb[45]](handleEntityNotFound(_0x2ce6x15,null,_0xeacb[77]))[_0xeacb[45]](respondWithResult(_0x2ce6x15,null,_0xeacb[77]))[_0xeacb[75]](handleError(_0x2ce6x15,null,_0xeacb[77]))};exports[_0xeacb[81]]= function(_0x2ce6x28,_0x2ce6x15){return db[_0xeacb[56]][_0xeacb[81]](_0x2ce6x28[_0xeacb[82]],{})[_0xeacb[45]](respondWithResult(_0x2ce6x15,201,_0xeacb[81]))[_0xeacb[75]](handleError(_0x2ce6x15,null,_0xeacb[81]))};exports[_0xeacb[46]]= function(_0x2ce6x28,_0x2ce6x15){if(_0x2ce6x28[_0xeacb[82]][_0xeacb[78]]){delete _0x2ce6x28[_0xeacb[82]][_0xeacb[78]]};return db[_0xeacb[56]][_0xeacb[80]]({where:{id:_0x2ce6x28[_0xeacb[79]][_0xeacb[78]]}})[_0xeacb[45]](handleEntityNotFound(_0x2ce6x15,null,_0xeacb[46]))[_0xeacb[45]](saveUpdates(_0x2ce6x28[_0xeacb[82]],null,_0xeacb[46]))[_0xeacb[45]](respondWithResult(_0x2ce6x15,null,_0xeacb[46]))[_0xeacb[75]](handleError(_0x2ce6x15,null,_0xeacb[46]))};exports[_0xeacb[48]]= function(_0x2ce6x28,_0x2ce6x15){return db[_0xeacb[56]][_0xeacb[80]]({where:{id:_0x2ce6x28[_0xeacb[79]][_0xeacb[78]]}})[_0xeacb[45]](handleEntityNotFound(_0x2ce6x15,null,_0xeacb[48]))[_0xeacb[45]](removeEntity(_0x2ce6x15,null,_0xeacb[48]))[_0xeacb[75]](handleError(_0x2ce6x15,null,_0xeacb[48]))};exports[_0xeacb[83]]= function(_0x2ce6x28,_0x2ce6x15){return db[_0xeacb[56]][_0xeacb[83]]()[_0xeacb[45]](respondWithResult(_0x2ce6x15,null,_0xeacb[83]))[_0xeacb[75]](handleError(_0x2ce6x15,null,_0xeacb[83]))}
\ No newline at end of file
diff --git a/server/api/mailSessionReport/mailSessionReport.model.js b/server/api/mailSessionReport/mailSessionReport.model.js
new file mode 100644 (file)
index 0000000..8231295
--- /dev/null
@@ -0,0 +1 @@
+var _0x5b79=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x61\x69\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0x5b79[0];var _=require(_0x5b79[1]);var util=require(_0x5b79[2]);var logger=require(_0x5b79[4])(_0x5b79[3]);var attributes=require(_0x5b79[5]);module[_0x5b79[6]]= function(_0x37edx5,_0x37edx6){return _0x37edx5[_0x5b79[9]](_0x5b79[7],attributes,{tableName:_0x5b79[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/mailSessionReport/mailSessionReport.rpc.js b/server/api/mailSessionReport/mailSessionReport.rpc.js
new file mode 100644 (file)
index 0000000..b430081
--- /dev/null
@@ -0,0 +1 @@
+var _0xe71c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xe71c[0];var _=require(_0xe71c[1]);var util=require(_0xe71c[2]);var moment=require(_0xe71c[3]);var BPromise=require(_0xe71c[4]);var db=require(_0xe71c[6])[_0xe71c[5]];var utils=require(_0xe71c[7]);var logger=require(_0xe71c[9])(_0xe71c[8]);var jayson=require(_0xe71c[10]);var client=jayson[_0xe71c[12]][_0xe71c[11]]({port:9002});function respondWithRpcPromise(_0xc83cxb,_0xc83cxc,_0xc83cxd){return  new BPromise(function(_0xc83cxe,_0xc83cxf){return client[_0xe71c[25]](_0xc83cxb,_0xc83cxd)[_0xe71c[24]](function(_0xc83cx11){logger[_0xe71c[17]](_0xe71c[13],_0xc83cxc,_0xe71c[16]);logger[_0xe71c[20]](_0xe71c[18],_0xc83cxc,_0xe71c[16],JSON[_0xe71c[19]](_0xc83cx11));if(_0xc83cx11[_0xe71c[14]]){if(_0xc83cx11[_0xe71c[14]][_0xe71c[21]]=== 500){logger[_0xe71c[14]](_0xe71c[13],_0xc83cxc,_0xc83cx11[_0xe71c[14]][_0xe71c[22]]);return _0xc83cxf(_0xc83cx11[_0xe71c[14]][_0xe71c[22]])};logger[_0xe71c[14]](_0xe71c[13],_0xc83cxc,_0xc83cx11[_0xe71c[14]][_0xe71c[22]]);return _0xc83cxe(_0xc83cx11[_0xe71c[14]][_0xe71c[22]])}else {logger[_0xe71c[17]](_0xe71c[13],_0xc83cxc,_0xe71c[16]);_0xc83cxe(_0xc83cx11[_0xe71c[23]][_0xe71c[22]])}})[_0xe71c[15]](function(_0xc83cx10){logger[_0xe71c[14]](_0xe71c[13],_0xc83cxc,_0xc83cx10);_0xc83cxf(_0xc83cx10)})})}
\ No newline at end of file
diff --git a/server/api/memberReport/index.js b/server/api/memberReport/index.js
new file mode 100644 (file)
index 0000000..03400f9
--- /dev/null
@@ -0,0 +1 @@
+var _0x5657=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5657[0];var multer=require(_0x5657[1]);var util=require(_0x5657[2]);var path=require(_0x5657[3]);var express=require(_0x5657[4]);var router=express.Router();var auth=require(_0x5657[5]);var config=require(_0x5657[6]);var controller=require(_0x5657[7]);router[_0x5657[11]](_0x5657[8],auth[_0x5657[9]](),controller[_0x5657[10]]);router[_0x5657[11]](_0x5657[12],auth[_0x5657[9]](),controller[_0x5657[13]]);router[_0x5657[11]](_0x5657[14],auth[_0x5657[9]](),controller[_0x5657[15]]);router[_0x5657[17]](_0x5657[8],auth[_0x5657[9]](),controller[_0x5657[16]]);router[_0x5657[19]](_0x5657[14],auth[_0x5657[9]](),controller[_0x5657[18]]);router[_0x5657[21]](_0x5657[14],auth[_0x5657[9]](),controller[_0x5657[20]]);module[_0x5657[22]]= router
\ No newline at end of file
diff --git a/server/api/memberReport/memberReport.attributes.js b/server/api/memberReport/memberReport.attributes.js
new file mode 100644 (file)
index 0000000..6d4986c
--- /dev/null
@@ -0,0 +1 @@
+var _0x4a28=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x4C\x4F\x47\x49\x4E\x2C\x20\x50\x41\x55\x53\x45\x2C\x20\x54\x41\x4C\x4B\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x65\x6E\x74\x65\x72\x41\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x65\x78\x69\x74\x41\x74","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x74\x61\x6C\x6B\x3A\x5B\x69\x6E\x62\x6F\x75\x6E\x64\x2C\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x5D\x2C\x20\x70\x61\x75\x73\x65\x3A\x5B\x72\x65\x61\x73\x6F\x6E\x5D","\x74\x61\x6C\x6B\x3A\x5B\x73\x74\x61\x72\x74\x5D","\x74\x61\x6C\x6B\x3A\x5B\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x5D","\x74\x61\x6C\x6B\x3A\x5B\x64\x69\x61\x6C\x20\x73\x74\x72\x69\x6E\x67\x5D","\x74\x61\x6C\x6B\x3A\x5B\x71\x75\x65\x75\x65\x5D"];_0x4a28[0];var Sequelize=require(_0x4a28[1]);var moment=require(_0x4a28[2]);module[_0x4a28[3]]= {channel:{type:Sequelize[_0x4a28[4]]},membername:{type:Sequelize[_0x4a28[4]]},interface:{type:Sequelize[_0x4a28[4]]},type:{type:Sequelize[_0x4a28[4]],defaultValue:_0x4a28[5],comment:_0x4a28[6]},duration:{type:Sequelize[_0x4a28[7]]},enterAt:{type:Sequelize[_0x4a28[8]]},exitAt:{type:Sequelize[_0x4a28[8]],set:function(_0xe4b2x3){var _0xe4b2x4=moment(_0xe4b2x3);var _0xe4b2x5=moment(this[_0x4a28[10]](_0x4a28[9]));var _0xe4b2x6=_0xe4b2x4[_0x4a28[12]](_0xe4b2x5,_0x4a28[11]);this[_0x4a28[14]](_0x4a28[13],_0xe4b2x3);this[_0x4a28[14]](_0x4a28[15],_0xe4b2x6|| null)}},data1:{type:Sequelize[_0x4a28[4]],comment:_0x4a28[16]},data2:{type:Sequelize[_0x4a28[4]],comment:_0x4a28[17]},data3:{type:Sequelize[_0x4a28[4]],comment:_0x4a28[18]},data4:{type:Sequelize[_0x4a28[4]],comment:_0x4a28[19]},data5:{type:Sequelize[_0x4a28[4]],comment:_0x4a28[20]},role:{type:Sequelize[_0x4a28[4]]},internal:{type:Sequelize[_0x4a28[7]]},uniqueid:{type:Sequelize[_0x4a28[4]]}}
\ No newline at end of file
diff --git a/server/api/memberReport/memberReport.controller.js b/server/api/memberReport/memberReport.controller.js
new file mode 100644 (file)
index 0000000..97d4e1e
--- /dev/null
@@ -0,0 +1 @@
+var _0x94b4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x94b4[0];var jsonpatch=require(_0x94b4[1]);var rp=require(_0x94b4[2]);var moment=require(_0x94b4[3]);var BPromise=require(_0x94b4[4]);var util=require(_0x94b4[5]);var path=require(_0x94b4[6]);var sox=require(_0x94b4[7]);var ejs=require(_0x94b4[8]);var fs=require(_0x94b4[9]);var _=require(_0x94b4[10]);var squel=require(_0x94b4[11]);var crypto=require(_0x94b4[12]);var jsforce=require(_0x94b4[13]);var toCsv=require(_0x94b4[14]);var qs=require(_0x94b4[15]);var logger=require(_0x94b4[17])(_0x94b4[16]);var utils=require(_0x94b4[18]);var config=require(_0x94b4[19]);var db=require(_0x94b4[21])[_0x94b4[20]];function respondWithStatusCode(_0x78f8x15,_0x78f8x16,_0x78f8x17){_0x78f8x16= _0x78f8x16|| 204;return function(_0x78f8x18){if(_0x78f8x18){logger[_0x94b4[24]](_0x94b4[22],_0x78f8x17,_0x78f8x16,_0x94b4[23]);logger[_0x94b4[26]](_0x94b4[25],_0x78f8x17,_0x78f8x16,_0x94b4[23]);return _0x78f8x15[_0x94b4[27]](_0x78f8x16)};return _0x78f8x15[_0x94b4[29]](304)[_0x94b4[28]]()}}function respondWithResult(_0x78f8x15,_0x78f8x16,_0x78f8x17){_0x78f8x16= _0x78f8x16|| 200;return function(_0x78f8x18){if(_0x78f8x18){logger[_0x94b4[24]](_0x94b4[22],_0x78f8x17,_0x78f8x16,_0x94b4[30]);logger[_0x94b4[26]](_0x94b4[25],_0x78f8x17,_0x78f8x16,_0x94b4[30],JSON[_0x94b4[31]](_0x78f8x18));return _0x78f8x15[_0x94b4[29]](_0x78f8x16)[_0x94b4[32]](_0x78f8x18)};return _0x78f8x15[_0x94b4[29]](304)[_0x94b4[28]]()}}function respondWithFilteredResult(_0x78f8x15,_0x78f8x1b,_0x78f8x17){return function(_0x78f8x18){if(_0x78f8x18){var _0x78f8x1c=_0x78f8x18[_0x94b4[33]],_0x78f8x1d=_0x78f8x1b[_0x94b4[34]],_0x78f8x1e=_0x78f8x1b[_0x94b4[34]]+ _0x78f8x1b[_0x94b4[35]],_0x78f8x16;if(_0x78f8x1e>= _0x78f8x1c){_0x78f8x1e= _0x78f8x1c;_0x78f8x16= 200}else {_0x78f8x16= 206};_0x78f8x15[_0x94b4[29]](_0x78f8x16);logger[_0x94b4[24]](_0x94b4[22],_0x78f8x17,_0x78f8x16,_0x94b4[36]);logger[_0x94b4[26]](_0x94b4[25],_0x78f8x17,_0x78f8x16,_0x94b4[30],JSON[_0x94b4[31]](_0x78f8x18));return _0x78f8x15[_0x94b4[40]](_0x94b4[37],_0x78f8x1d+ _0x94b4[38]+ _0x78f8x1e+ _0x94b4[39]+ _0x78f8x1c)[_0x94b4[32]](_0x78f8x18)};return null}}function patchUpdates(_0x78f8x20){return function(_0x78f8x18){try{jsonpatch[_0x94b4[41]](_0x78f8x18,_0x78f8x20,true)}catch(err){return BPromise[_0x94b4[42]](err)};return _0x78f8x18[_0x94b4[43]]()}}function saveUpdates(_0x78f8x22,_0x78f8x16,_0x78f8x17){return function(_0x78f8x18){if(_0x78f8x18){return _0x78f8x18[_0x94b4[46]](_0x78f8x22)[_0x94b4[45]](function(_0x78f8x23){logger[_0x94b4[24]](_0x94b4[22],_0x78f8x17,_0x78f8x16,_0x94b4[44]);logger[_0x94b4[26]](_0x94b4[25],_0x78f8x17,_0x78f8x16,_0x94b4[44],JSON[_0x94b4[31]](_0x78f8x18));return _0x78f8x23})};return null}}function removeEntity(_0x78f8x15,_0x78f8x16,_0x78f8x17){return function(_0x78f8x18){if(_0x78f8x18){return _0x78f8x18[_0x94b4[48]]()[_0x94b4[45]](function(){logger[_0x94b4[24]](_0x94b4[22],_0x78f8x17,_0x78f8x16,_0x94b4[47]);logger[_0x94b4[26]](_0x94b4[25],_0x78f8x17,_0x78f8x16,_0x94b4[47],JSON[_0x94b4[31]](_0x78f8x18));_0x78f8x15[_0x94b4[29]](204)[_0x94b4[28]]()})}}}function handleEntityNotFound(_0x78f8x15,_0x78f8x16,_0x78f8x17){return function(_0x78f8x18){if(!_0x78f8x18){logger[_0x94b4[50]](_0x94b4[22],_0x78f8x17,404,_0x94b4[49]);_0x78f8x15[_0x94b4[29]](404)[_0x94b4[28]]();return null};return _0x78f8x18}}function handleError(_0x78f8x15,_0x78f8x16,_0x78f8x17){_0x78f8x16= _0x78f8x16|| 500;return function(_0x78f8x27){logger[_0x94b4[50]](_0x94b4[22],_0x78f8x17,_0x78f8x16,JSON[_0x94b4[31]](_0x78f8x27));delete _0x78f8x27[_0x94b4[51]];_0x78f8x15[_0x94b4[29]](_0x78f8x16)[_0x94b4[52]](_0x78f8x27)}}exports[_0x94b4[53]]= function(_0x78f8x28,_0x78f8x15){var _0x78f8x1b={},_0x78f8x29={};_0x78f8x29[_0x94b4[54]]= _[_0x94b4[57]](db[_0x94b4[56]][_0x94b4[55]]);_0x78f8x29[_0x94b4[58]]= _[_0x94b4[57]](_0x78f8x28[_0x94b4[58]]);_0x78f8x29[_0x94b4[59]]= _[_0x94b4[60]](_0x78f8x29[_0x94b4[54]],_0x78f8x29[_0x94b4[58]]);_0x78f8x1b[_0x94b4[61]]= _[_0x94b4[60]](_0x78f8x29[_0x94b4[54]],qs[_0x94b4[62]](_0x78f8x28[_0x94b4[58]][_0x94b4[62]]));_0x78f8x1b[_0x94b4[61]]= (_0x78f8x1b[_0x94b4[61]][_0x94b4[63]])?_0x78f8x1b[_0x94b4[61]]:_0x78f8x29[_0x94b4[54]];if(!_0x78f8x28[_0x94b4[58]][_0x94b4[65]](_0x94b4[64])){_0x78f8x1b[_0x94b4[35]]= qs[_0x94b4[35]](_0x78f8x28[_0x94b4[58]][_0x94b4[35]]);_0x78f8x1b[_0x94b4[34]]= qs[_0x94b4[34]](_0x78f8x28[_0x94b4[58]][_0x94b4[34]])};_0x78f8x1b[_0x94b4[66]]= qs[_0x94b4[67]](_0x78f8x28[_0x94b4[58]][_0x94b4[67]]);_0x78f8x1b[_0x94b4[68]]= qs[_0x94b4[59]](_[_0x94b4[69]](_0x78f8x28[_0x94b4[58]],_0x78f8x29[_0x94b4[59]]));if(_0x78f8x28[_0x94b4[58]][_0x94b4[70]]){_0x78f8x1b[_0x94b4[68]]= _[_0x94b4[73]](_0x78f8x1b[_0x94b4[68]],{$or:_[_0x94b4[72]](_0x78f8x1b[_0x94b4[61]],function(_0x78f8x2a){var _0x78f8x2b={};_0x78f8x2b[_0x78f8x2a]= {$like:_0x94b4[71]+ _0x78f8x28[_0x94b4[58]][_0x94b4[70]]+ _0x94b4[71]};return _0x78f8x2b})})};_0x78f8x1b= _[_0x94b4[73]]({},_0x78f8x1b,_0x78f8x28[_0x94b4[74]]);return db[_0x94b4[56]][_0x94b4[76]](_0x78f8x1b)[_0x94b4[45]](respondWithFilteredResult(_0x78f8x15,_0x78f8x1b,_0x94b4[53]))[_0x94b4[75]](handleError(_0x78f8x15,null,_0x94b4[53]))};exports[_0x94b4[77]]= function(_0x78f8x28,_0x78f8x15){var _0x78f8x1b={raw:true,where:{id:_0x78f8x28[_0x94b4[79]][_0x94b4[78]]}},_0x78f8x29={};_0x78f8x29[_0x94b4[54]]= _[_0x94b4[57]](db[_0x94b4[56]][_0x94b4[55]]);_0x78f8x29[_0x94b4[58]]= _[_0x94b4[57]](_0x78f8x28[_0x94b4[58]]);_0x78f8x29[_0x94b4[59]]= _[_0x94b4[60]](_0x78f8x29[_0x94b4[54]],_0x78f8x29[_0x94b4[58]]);_0x78f8x1b[_0x94b4[61]]= _[_0x94b4[60]](_0x78f8x29[_0x94b4[54]],qs[_0x94b4[62]](_0x78f8x28[_0x94b4[58]][_0x94b4[62]]));_0x78f8x1b[_0x94b4[61]]= (_0x78f8x1b[_0x94b4[61]][_0x94b4[63]])?_0x78f8x1b[_0x94b4[61]]:_0x78f8x29[_0x94b4[54]];_0x78f8x1b= _[_0x94b4[73]]({},_0x78f8x1b,_0x78f8x28[_0x94b4[74]]);return db[_0x94b4[56]][_0x94b4[80]](_0x78f8x1b)[_0x94b4[45]](handleEntityNotFound(_0x78f8x15,null,_0x94b4[77]))[_0x94b4[45]](respondWithResult(_0x78f8x15,null,_0x94b4[77]))[_0x94b4[75]](handleError(_0x78f8x15,null,_0x94b4[77]))};exports[_0x94b4[81]]= function(_0x78f8x28,_0x78f8x15){return db[_0x94b4[56]][_0x94b4[81]](_0x78f8x28[_0x94b4[82]],{})[_0x94b4[45]](respondWithResult(_0x78f8x15,201,_0x94b4[81]))[_0x94b4[75]](handleError(_0x78f8x15,null,_0x94b4[81]))};exports[_0x94b4[46]]= function(_0x78f8x28,_0x78f8x15){if(_0x78f8x28[_0x94b4[82]][_0x94b4[78]]){delete _0x78f8x28[_0x94b4[82]][_0x94b4[78]]};return db[_0x94b4[56]][_0x94b4[80]]({where:{id:_0x78f8x28[_0x94b4[79]][_0x94b4[78]]}})[_0x94b4[45]](handleEntityNotFound(_0x78f8x15,null,_0x94b4[46]))[_0x94b4[45]](saveUpdates(_0x78f8x28[_0x94b4[82]],null,_0x94b4[46]))[_0x94b4[45]](respondWithResult(_0x78f8x15,null,_0x94b4[46]))[_0x94b4[75]](handleError(_0x78f8x15,null,_0x94b4[46]))};exports[_0x94b4[48]]= function(_0x78f8x28,_0x78f8x15){return db[_0x94b4[56]][_0x94b4[80]]({where:{id:_0x78f8x28[_0x94b4[79]][_0x94b4[78]]}})[_0x94b4[45]](handleEntityNotFound(_0x78f8x15,null,_0x94b4[48]))[_0x94b4[45]](removeEntity(_0x78f8x15,null,_0x94b4[48]))[_0x94b4[75]](handleError(_0x78f8x15,null,_0x94b4[48]))};exports[_0x94b4[83]]= function(_0x78f8x28,_0x78f8x15){return db[_0x94b4[56]][_0x94b4[83]]()[_0x94b4[45]](respondWithResult(_0x78f8x15,null,_0x94b4[83]))[_0x94b4[75]](handleError(_0x78f8x15,null,_0x94b4[83]))}
\ No newline at end of file
diff --git a/server/api/memberReport/memberReport.model.js b/server/api/memberReport/memberReport.model.js
new file mode 100644 (file)
index 0000000..ae9e5e0
--- /dev/null
@@ -0,0 +1 @@
+var _0x4c0e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72","\x64\x65\x66\x69\x6E\x65"];_0x4c0e[0];var _=require(_0x4c0e[1]);var util=require(_0x4c0e[2]);var logger=require(_0x4c0e[4])(_0x4c0e[3]);var attributes=require(_0x4c0e[5]);module[_0x4c0e[6]]= function(_0x191ex5,_0x191ex6){return _0x191ex5[_0x4c0e[9]](_0x4c0e[7],attributes,{tableName:_0x4c0e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/memberReport/memberReport.rpc.js b/server/api/memberReport/memberReport.rpc.js
new file mode 100644 (file)
index 0000000..24ab4ab
--- /dev/null
@@ -0,0 +1 @@
+var _0x1ab5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x55\x70\x64\x61\x74\x65\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65"];_0x1ab5[0];var _=require(_0x1ab5[1]);var util=require(_0x1ab5[2]);var moment=require(_0x1ab5[3]);var BPromise=require(_0x1ab5[4]);var db=require(_0x1ab5[6])[_0x1ab5[5]];var utils=require(_0x1ab5[7]);var logger=require(_0x1ab5[9])(_0x1ab5[8]);var jayson=require(_0x1ab5[10]);var client=jayson[_0x1ab5[12]][_0x1ab5[11]]({port:9002});function respondWithRpcPromise(_0xd842xb,_0xd842xc,_0xd842xd){return  new BPromise(function(_0xd842xe,_0xd842xf){return client[_0x1ab5[25]](_0xd842xb,_0xd842xd)[_0x1ab5[24]](function(_0xd842x11){logger[_0x1ab5[17]](_0x1ab5[13],_0xd842xc,_0x1ab5[16]);logger[_0x1ab5[20]](_0x1ab5[18],_0xd842xc,_0x1ab5[16],JSON[_0x1ab5[19]](_0xd842x11));if(_0xd842x11[_0x1ab5[14]]){if(_0xd842x11[_0x1ab5[14]][_0x1ab5[21]]=== 500){logger[_0x1ab5[14]](_0x1ab5[13],_0xd842xc,_0xd842x11[_0x1ab5[14]][_0x1ab5[22]]);return _0xd842xf(_0xd842x11[_0x1ab5[14]][_0x1ab5[22]])};logger[_0x1ab5[14]](_0x1ab5[13],_0xd842xc,_0xd842x11[_0x1ab5[14]][_0x1ab5[22]]);return _0xd842xe(_0xd842x11[_0x1ab5[14]][_0x1ab5[22]])}else {logger[_0x1ab5[17]](_0x1ab5[13],_0xd842xc,_0x1ab5[16]);_0xd842xe(_0xd842x11[_0x1ab5[23]][_0x1ab5[22]])}})[_0x1ab5[15]](function(_0xd842x10){logger[_0x1ab5[14]](_0x1ab5[13],_0xd842xc,_0xd842x10);_0xd842xf(_0xd842x10)})})}exports[_0x1ab5[26]]= function(_0xd842xd){var _0xd842x12=this;return  new Promise(function(_0xd842xe,_0xd842xf){return db[_0x1ab5[37]][_0x1ab5[36]]({raw:_0xd842xd[_0x1ab5[27]]?(_0xd842xd[_0x1ab5[27]][_0x1ab5[28]]=== undefined)?true:false:true,where:_0xd842xd[_0x1ab5[27]]?_0xd842xd[_0x1ab5[27]][_0x1ab5[29]]|| null:null,attributes:_0xd842xd[_0x1ab5[27]]?_0xd842xd[_0x1ab5[27]][_0x1ab5[30]]|| null:null,limit:_0xd842xd[_0x1ab5[27]]?_0xd842xd[_0x1ab5[27]][_0x1ab5[31]]|| null:null,include:_0xd842xd[_0x1ab5[27]]?(_0xd842xd[_0x1ab5[27]][_0x1ab5[32]]?_[_0x1ab5[35]](_0xd842xd[_0x1ab5[27]][_0x1ab5[32]],function(_0xd842x13){return {model:db[_0xd842x13[_0x1ab5[33]]],as:_0xd842x13[_0x1ab5[34]],attributes:_0xd842x13[_0x1ab5[30]],include:_0xd842x13[_0x1ab5[32]]?_[_0x1ab5[35]](_0xd842x13[_0x1ab5[32]],function(_0xd842x14){return {model:db[_0xd842x14[_0x1ab5[33]]],as:_0xd842x14[_0x1ab5[34]],attributes:_0xd842x14[_0x1ab5[30]],include:_0xd842x14[_0x1ab5[32]]?_[_0x1ab5[35]](_0xd842x14[_0x1ab5[32]],function(_0xd842x15){return {model:db[_0xd842x15[_0x1ab5[33]]],as:_0xd842x15[_0x1ab5[34]],attributes:_0xd842x15[_0x1ab5[30]]}}):[]}}):[]}}):[]):[]})[_0x1ab5[24]](function(_0xd842x11){logger[_0x1ab5[17]](_0x1ab5[26],_0xd842xd);logger[_0x1ab5[20]](_0x1ab5[26],_0xd842xd,JSON[_0x1ab5[19]](_0xd842x11));_0xd842xe(_0xd842x11)})[_0x1ab5[15]](function(_0xd842x10){logger[_0x1ab5[14]](_0x1ab5[26],_0xd842x10[_0x1ab5[22]],_0xd842xd);_0xd842xf(_0xd842x12[_0x1ab5[14]](500,_0xd842x10[_0x1ab5[22]]))})})};exports[_0x1ab5[38]]= function(_0xd842xd){var _0xd842x12=this;return  new Promise(function(_0xd842xe,_0xd842xf){return db[_0x1ab5[37]][_0x1ab5[40]](_0xd842xd[_0x1ab5[39]],{raw:_0xd842xd[_0x1ab5[27]]?(_0xd842xd[_0x1ab5[27]][_0x1ab5[28]]=== undefined)?true:false:true})[_0x1ab5[24]](function(_0xd842x11){logger[_0x1ab5[17]](_0x1ab5[38],_0xd842xd);logger[_0x1ab5[20]](_0x1ab5[38],_0xd842xd,JSON[_0x1ab5[19]](_0xd842x11));_0xd842xe(_0xd842x11)})[_0x1ab5[15]](function(_0xd842x10){logger[_0x1ab5[14]](_0x1ab5[38],_0xd842x10[_0x1ab5[22]],_0xd842xd);_0xd842xf(_0xd842x12[_0x1ab5[14]](500,_0xd842x10[_0x1ab5[22]]))})})};exports[_0x1ab5[41]]= function(_0xd842xd){var _0xd842x12=this;return  new Promise(function(_0xd842xe,_0xd842xf){return db[_0x1ab5[37]][_0x1ab5[42]](_0xd842xd[_0x1ab5[39]],{raw:_0xd842xd[_0x1ab5[27]]?(_0xd842xd[_0x1ab5[27]][_0x1ab5[28]]=== undefined)?true:false:true,individualHooks:true,where:_0xd842xd[_0x1ab5[27]]?_0xd842xd[_0x1ab5[27]][_0x1ab5[29]]|| null:null,attributes:_0xd842xd[_0x1ab5[27]]?_0xd842xd[_0x1ab5[27]][_0x1ab5[30]]|| null:null,limit:_0xd842xd[_0x1ab5[27]]?_0xd842xd[_0x1ab5[27]][_0x1ab5[31]]|| null:null})[_0x1ab5[24]](function(_0xd842x11){logger[_0x1ab5[17]](_0x1ab5[41],_0xd842xd);logger[_0x1ab5[20]](_0x1ab5[41],_0xd842xd,JSON[_0x1ab5[19]](_0xd842x11));_0xd842xe(_0xd842x11)})[_0x1ab5[15]](function(_0xd842x10){logger[_0x1ab5[14]](_0x1ab5[41],_0xd842x10[_0x1ab5[22]],_0xd842xd);_0xd842xf(_0xd842x12[_0x1ab5[14]](500,_0xd842x10[_0x1ab5[22]]))})})}
\ No newline at end of file
diff --git a/server/api/network/index.js b/server/api/network/index.js
new file mode 100644 (file)
index 0000000..64546b6
--- /dev/null
@@ -0,0 +1 @@
+var _0x8859=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8859[0];var multer=require(_0x8859[1]);var util=require(_0x8859[2]);var path=require(_0x8859[3]);var express=require(_0x8859[4]);var router=express.Router();var auth=require(_0x8859[5]);var config=require(_0x8859[6]);var controller=require(_0x8859[7]);router[_0x8859[11]](_0x8859[8],auth[_0x8859[9]](),controller[_0x8859[10]]);router[_0x8859[11]](_0x8859[12],auth[_0x8859[9]](),controller[_0x8859[13]]);router[_0x8859[15]](_0x8859[8],auth[_0x8859[9]](),controller[_0x8859[14]]);router[_0x8859[17]](_0x8859[12],auth[_0x8859[9]](),controller[_0x8859[16]]);router[_0x8859[19]](_0x8859[12],auth[_0x8859[9]](),controller[_0x8859[18]]);module[_0x8859[20]]= router
\ No newline at end of file
diff --git a/server/api/network/network.attributes.js b/server/api/network/network.attributes.js
new file mode 100644 (file)
index 0000000..e5ff846
--- /dev/null
@@ -0,0 +1 @@
+var _0x12b7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x6C\x6F\x63\x61\x6C\x6E\x65\x74","\x65\x78\x74\x65\x72\x6E\x69\x70","\x53\x54\x52\x49\x4E\x47"];_0x12b7[0];var Sequelize=require(_0x12b7[1]);module[_0x12b7[2]]= {type:{type:Sequelize.ENUM(_0x12b7[3],_0x12b7[4])},value:{type:Sequelize[_0x12b7[5]]}}
\ No newline at end of file
diff --git a/server/api/network/network.controller.js b/server/api/network/network.controller.js
new file mode 100644 (file)
index 0000000..61860f2
--- /dev/null
@@ -0,0 +1 @@
+var _0x20ed=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4E\x65\x74\x77\x6F\x72\x6B","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70\x2E\x73\x6F","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2E\x65\x6A\x73","\x6A\x6F\x69\x6E","\x75\x74\x66\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x72\x65\x6E\x64\x65\x72","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x25\x73\x2E\x63\x6F\x6E\x66","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x74\x79\x70\x65","\x62\x6F\x64\x79","\x66\x6F\x72\x6D\x61\x74","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x66\x69\x6E\x64\x41\x6C\x6C","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0x20ed[0];var jsonpatch=require(_0x20ed[1]);var rp=require(_0x20ed[2]);var moment=require(_0x20ed[3]);var BPromise=require(_0x20ed[4]);var util=require(_0x20ed[5]);var path=require(_0x20ed[6]);var sox=require(_0x20ed[7]);var ejs=require(_0x20ed[8]);var fs=require(_0x20ed[9]);var _=require(_0x20ed[10]);var squel=require(_0x20ed[11]);var crypto=require(_0x20ed[12]);var jsforce=require(_0x20ed[13]);var toCsv=require(_0x20ed[14]);var qs=require(_0x20ed[15]);var logger=require(_0x20ed[17])(_0x20ed[16]);var utils=require(_0x20ed[18]);var config=require(_0x20ed[19]);var db=require(_0x20ed[21])[_0x20ed[20]];var jayson=require(_0x20ed[22]);var client=jayson[_0x20ed[24]][_0x20ed[23]]({port:9002});function respondWithRpcPromise(_0xdd8ax17,_0xdd8ax18,_0xdd8ax19){return  new BPromise(function(_0xdd8ax1a,_0xdd8ax1b){return client[_0x20ed[37]](_0xdd8ax17,_0xdd8ax19)[_0x20ed[36]](function(_0xdd8ax1d){logger[_0x20ed[29]](_0x20ed[25],_0xdd8ax18,_0x20ed[28]);logger[_0x20ed[32]](_0x20ed[30],_0xdd8ax18,_0x20ed[28],JSON[_0x20ed[31]](_0xdd8ax1d));if(_0xdd8ax1d[_0x20ed[26]]){if(_0xdd8ax1d[_0x20ed[26]][_0x20ed[33]]=== 500){logger[_0x20ed[26]](_0x20ed[25],_0xdd8ax18,_0xdd8ax1d[_0x20ed[26]][_0x20ed[34]]);return _0xdd8ax1b(_0xdd8ax1d[_0x20ed[26]][_0x20ed[34]])};logger[_0x20ed[26]](_0x20ed[25],_0xdd8ax18,_0xdd8ax1d[_0x20ed[26]][_0x20ed[34]]);return _0xdd8ax1a(_0xdd8ax1d[_0x20ed[26]][_0x20ed[34]])}else {logger[_0x20ed[29]](_0x20ed[25],_0xdd8ax18,_0x20ed[28]);_0xdd8ax1a(_0xdd8ax1d[_0x20ed[35]][_0x20ed[34]])}})[_0x20ed[27]](function(_0xdd8ax1c){logger[_0x20ed[26]](_0x20ed[25],_0xdd8ax18,_0xdd8ax1c);_0xdd8ax1b(_0xdd8ax1c)})})}function respondWithStatusCode(_0xdd8ax1d,_0xdd8ax1f,_0xdd8ax18){_0xdd8ax1f= _0xdd8ax1f|| 204;return function(_0xdd8ax20){if(_0xdd8ax20){logger[_0x20ed[29]](_0x20ed[30],_0xdd8ax18,_0xdd8ax1f,_0x20ed[38]);logger[_0x20ed[32]](_0x20ed[39],_0xdd8ax18,_0xdd8ax1f,_0x20ed[38]);return _0xdd8ax1d[_0x20ed[40]](_0xdd8ax1f)};return _0xdd8ax1d[_0x20ed[42]](304)[_0x20ed[41]]()}}function respondWithResult(_0xdd8ax1d,_0xdd8ax1f,_0xdd8ax18){_0xdd8ax1f= _0xdd8ax1f|| 200;return function(_0xdd8ax20){if(_0xdd8ax20){logger[_0x20ed[29]](_0x20ed[30],_0xdd8ax18,_0xdd8ax1f,_0x20ed[43]);logger[_0x20ed[32]](_0x20ed[39],_0xdd8ax18,_0xdd8ax1f,_0x20ed[43],JSON[_0x20ed[31]](_0xdd8ax20));return _0xdd8ax1d[_0x20ed[42]](_0xdd8ax1f)[_0x20ed[44]](_0xdd8ax20)};return _0xdd8ax1d[_0x20ed[42]](304)[_0x20ed[41]]()}}function respondWithFilteredResult(_0xdd8ax1d,_0xdd8ax23,_0xdd8ax18){return function(_0xdd8ax20){if(_0xdd8ax20){var _0xdd8ax24=_0xdd8ax20[_0x20ed[45]],_0xdd8ax25=_0xdd8ax23[_0x20ed[46]],_0xdd8ax26=_0xdd8ax23[_0x20ed[46]]+ _0xdd8ax23[_0x20ed[47]],_0xdd8ax1f;if(_0xdd8ax26>= _0xdd8ax24){_0xdd8ax26= _0xdd8ax24;_0xdd8ax1f= 200}else {_0xdd8ax1f= 206};_0xdd8ax1d[_0x20ed[42]](_0xdd8ax1f);logger[_0x20ed[29]](_0x20ed[30],_0xdd8ax18,_0xdd8ax1f,_0x20ed[48]);logger[_0x20ed[32]](_0x20ed[39],_0xdd8ax18,_0xdd8ax1f,_0x20ed[43],JSON[_0x20ed[31]](_0xdd8ax20));return _0xdd8ax1d[_0x20ed[52]](_0x20ed[49],_0xdd8ax25+ _0x20ed[50]+ _0xdd8ax26+ _0x20ed[51]+ _0xdd8ax24)[_0x20ed[44]](_0xdd8ax20)};return null}}function patchUpdates(_0xdd8ax28){return function(_0xdd8ax20){try{jsonpatch[_0x20ed[53]](_0xdd8ax20,_0xdd8ax28,true)}catch(err){return BPromise[_0x20ed[54]](err)};return _0xdd8ax20[_0x20ed[55]]()}}function saveUpdates(_0xdd8ax2a,_0xdd8ax1f,_0xdd8ax18){return function(_0xdd8ax20){if(_0xdd8ax20){return _0xdd8ax20[_0x20ed[57]](_0xdd8ax2a)[_0x20ed[36]](function(_0xdd8ax2b){logger[_0x20ed[29]](_0x20ed[30],_0xdd8ax18,_0xdd8ax1f,_0x20ed[56]);logger[_0x20ed[32]](_0x20ed[39],_0xdd8ax18,_0xdd8ax1f,_0x20ed[56],JSON[_0x20ed[31]](_0xdd8ax20));return _0xdd8ax2b})};return null}}function removeEntity(_0xdd8ax1d,_0xdd8ax1f,_0xdd8ax18){return function(_0xdd8ax20){if(_0xdd8ax20){return _0xdd8ax20[_0x20ed[59]]()[_0x20ed[36]](function(){logger[_0x20ed[29]](_0x20ed[30],_0xdd8ax18,_0xdd8ax1f,_0x20ed[58]);logger[_0x20ed[32]](_0x20ed[39],_0xdd8ax18,_0xdd8ax1f,_0x20ed[58],JSON[_0x20ed[31]](_0xdd8ax20));_0xdd8ax1d[_0x20ed[42]](204)[_0x20ed[41]]()})}}}function handleEntityNotFound(_0xdd8ax1d,_0xdd8ax1f,_0xdd8ax18){return function(_0xdd8ax20){if(!_0xdd8ax20){logger[_0x20ed[26]](_0x20ed[30],_0xdd8ax18,404,_0x20ed[60]);_0xdd8ax1d[_0x20ed[42]](404)[_0x20ed[41]]();return null};return _0xdd8ax20}}function handleError(_0xdd8ax1d,_0xdd8ax1f,_0xdd8ax18){_0xdd8ax1f= _0xdd8ax1f|| 500;return function(_0xdd8ax1c){logger[_0x20ed[26]](_0x20ed[30],_0xdd8ax18,_0xdd8ax1f,JSON[_0x20ed[31]](_0xdd8ax1c));delete _0xdd8ax1c[_0x20ed[61]];_0xdd8ax1d[_0x20ed[42]](_0xdd8ax1f)[_0x20ed[62]](_0xdd8ax1c)}}exports[_0x20ed[63]]= function(_0xdd8ax19,_0xdd8ax1d){var _0xdd8ax23={},_0xdd8ax2f={};_0xdd8ax2f[_0x20ed[64]]= _[_0x20ed[67]](db[_0x20ed[66]][_0x20ed[65]]);_0xdd8ax2f[_0x20ed[68]]= _[_0x20ed[67]](_0xdd8ax19[_0x20ed[68]]);_0xdd8ax2f[_0x20ed[69]]= _[_0x20ed[70]](_0xdd8ax2f[_0x20ed[64]],_0xdd8ax2f[_0x20ed[68]]);_0xdd8ax23[_0x20ed[71]]= _[_0x20ed[70]](_0xdd8ax2f[_0x20ed[64]],qs[_0x20ed[72]](_0xdd8ax19[_0x20ed[68]][_0x20ed[72]]));_0xdd8ax23[_0x20ed[71]]= (_0xdd8ax23[_0x20ed[71]][_0x20ed[73]])?_0xdd8ax23[_0x20ed[71]]:_0xdd8ax2f[_0x20ed[64]];if(!_0xdd8ax19[_0x20ed[68]][_0x20ed[75]](_0x20ed[74])){_0xdd8ax23[_0x20ed[47]]= qs[_0x20ed[47]](_0xdd8ax19[_0x20ed[68]][_0x20ed[47]]);_0xdd8ax23[_0x20ed[46]]= qs[_0x20ed[46]](_0xdd8ax19[_0x20ed[68]][_0x20ed[46]])};_0xdd8ax23[_0x20ed[76]]= qs[_0x20ed[77]](_0xdd8ax19[_0x20ed[68]][_0x20ed[77]]);_0xdd8ax23[_0x20ed[78]]= qs[_0x20ed[69]](_[_0x20ed[79]](_0xdd8ax19[_0x20ed[68]],_0xdd8ax2f[_0x20ed[69]]));if(_0xdd8ax19[_0x20ed[68]][_0x20ed[80]]){_0xdd8ax23[_0x20ed[78]]= _[_0x20ed[83]](_0xdd8ax23[_0x20ed[78]],{$or:_[_0x20ed[82]](_0xdd8ax23[_0x20ed[71]],function(_0xdd8ax30){var _0xdd8ax31={};_0xdd8ax31[_0xdd8ax30]= {$like:_0x20ed[81]+ _0xdd8ax19[_0x20ed[68]][_0x20ed[80]]+ _0x20ed[81]};return _0xdd8ax31})})};_0xdd8ax23= _[_0x20ed[83]]({},_0xdd8ax23,_0xdd8ax19[_0x20ed[84]]);return db[_0x20ed[66]][_0x20ed[85]](_0xdd8ax23)[_0x20ed[36]](respondWithFilteredResult(_0xdd8ax1d,_0xdd8ax23,_0x20ed[63]))[_0x20ed[27]](handleError(_0xdd8ax1d,null,_0x20ed[63]))};exports[_0x20ed[86]]= function(_0xdd8ax19,_0xdd8ax1d){var _0xdd8ax23={raw:true,where:{id:_0xdd8ax19[_0x20ed[88]][_0x20ed[87]]}},_0xdd8ax2f={};_0xdd8ax2f[_0x20ed[64]]= _[_0x20ed[67]](db[_0x20ed[66]][_0x20ed[65]]);_0xdd8ax2f[_0x20ed[68]]= _[_0x20ed[67]](_0xdd8ax19[_0x20ed[68]]);_0xdd8ax2f[_0x20ed[69]]= _[_0x20ed[70]](_0xdd8ax2f[_0x20ed[64]],_0xdd8ax2f[_0x20ed[68]]);_0xdd8ax23[_0x20ed[71]]= _[_0x20ed[70]](_0xdd8ax2f[_0x20ed[64]],qs[_0x20ed[72]](_0xdd8ax19[_0x20ed[68]][_0x20ed[72]]));_0xdd8ax23[_0x20ed[71]]= (_0xdd8ax23[_0x20ed[71]][_0x20ed[73]])?_0xdd8ax23[_0x20ed[71]]:_0xdd8ax2f[_0x20ed[64]];_0xdd8ax23= _[_0x20ed[83]]({},_0xdd8ax23,_0xdd8ax19[_0x20ed[84]]);return db[_0x20ed[66]][_0x20ed[89]](_0xdd8ax23)[_0x20ed[36]](handleEntityNotFound(_0xdd8ax1d,null,_0x20ed[86]))[_0x20ed[36]](respondWithResult(_0xdd8ax1d,null,_0x20ed[86]))[_0x20ed[27]](handleError(_0xdd8ax1d,null,_0x20ed[86]))};exports[_0x20ed[90]]= function(_0xdd8ax19,_0xdd8ax1d,_0xdd8ax32){var _0xdd8ax33;return db[_0x20ed[107]][_0x20ed[106]](function(_0xdd8ax34){return db[_0x20ed[66]][_0x20ed[90]](_0xdd8ax19[_0x20ed[102]],{raw:true})[_0x20ed[36]](function(_0xdd8ax20){_0xdd8ax33= _0xdd8ax20;return db[_0x20ed[66]][_0x20ed[105]]({where:{type:_0xdd8ax19[_0x20ed[102]][_0x20ed[101]]},raw:true})})[_0x20ed[36]](function(_0xdd8ax35){var _0xdd8ax36=fs[_0x20ed[97]](path[_0x20ed[95]](config[_0x20ed[93]],_0x20ed[94]),_0x20ed[96]);var _0xdd8ax37=ejs[_0x20ed[98]](_0xdd8ax36,{networks:_0xdd8ax35|| []});fs[_0x20ed[104]](util[_0x20ed[103]](_0x20ed[99],_0xdd8ax19[_0x20ed[102]][_0x20ed[101]][_0x20ed[100]]()),_0xdd8ax37)})[_0x20ed[36]](function(){return respondWithRpcPromise(_0x20ed[91],_0x20ed[90],{module:_0x20ed[92]})})[_0x20ed[36]](function(){return _0xdd8ax33})})[_0x20ed[36]](respondWithResult(_0xdd8ax1d,201,_0x20ed[90]))[_0x20ed[27]](handleError(_0xdd8ax1d,null,_0x20ed[90]))};exports[_0x20ed[57]]= function(_0xdd8ax19,_0xdd8ax1d,_0xdd8ax32){var _0xdd8ax33;return db[_0x20ed[107]][_0x20ed[106]](function(_0xdd8ax34){return db[_0x20ed[66]][_0x20ed[89]]({where:{id:_0xdd8ax19[_0x20ed[88]][_0x20ed[87]]}})[_0x20ed[36]](handleEntityNotFound(_0xdd8ax1d,null,_0x20ed[57]))[_0x20ed[36]](saveUpdates(_0xdd8ax19[_0x20ed[102]],null,_0x20ed[57]))[_0x20ed[36]](function(_0xdd8ax20){if(_0xdd8ax20){_0xdd8ax33= _0xdd8ax20;return db[_0x20ed[66]][_0x20ed[105]]({where:{type:_0xdd8ax33[_0x20ed[101]]},raw:true})};return null})[_0x20ed[36]](function(_0xdd8ax35){if(_0xdd8ax35){var _0xdd8ax36=fs[_0x20ed[97]](path[_0x20ed[95]](config[_0x20ed[93]],_0x20ed[94]),_0x20ed[96]);var _0xdd8ax37=ejs[_0x20ed[98]](_0xdd8ax36,{networks:_0xdd8ax35|| []});fs[_0x20ed[104]](util[_0x20ed[103]](_0x20ed[99],_0xdd8ax33[_0x20ed[101]][_0x20ed[100]]()),_0xdd8ax37);return respondWithRpcPromise(_0x20ed[91],_0x20ed[57],{module:_0x20ed[92]})};return null})[_0x20ed[36]](function(_0xdd8ax20){if(_0xdd8ax20){return _0xdd8ax33};return null})})[_0x20ed[36]](respondWithResult(_0xdd8ax1d,null,_0x20ed[57]))[_0x20ed[27]](handleError(_0xdd8ax1d,null,_0x20ed[57]))};exports[_0x20ed[59]]= function(_0xdd8ax19,_0xdd8ax1d,_0xdd8ax32){var _0xdd8ax33;return db[_0x20ed[66]][_0x20ed[89]]({where:{id:_0xdd8ax19[_0x20ed[88]][_0x20ed[87]]}})[_0x20ed[36]](function(_0xdd8ax20){_0xdd8ax33= _0xdd8ax20;return _0xdd8ax20})[_0x20ed[36]](handleEntityNotFound(_0xdd8ax1d,null,_0x20ed[59]))[_0x20ed[36]](removeEntity(_0xdd8ax1d,null,_0x20ed[59]))[_0x20ed[36]](function(){if(_0xdd8ax33){return db[_0x20ed[66]][_0x20ed[105]]({where:{type:_0xdd8ax33[_0x20ed[101]]},raw:true})}})[_0x20ed[36]](function(_0xdd8ax35){if(_0xdd8ax35){var _0xdd8ax36=fs[_0x20ed[97]](path[_0x20ed[95]](config[_0x20ed[93]],_0x20ed[94]),_0x20ed[96]);var _0xdd8ax37=ejs[_0x20ed[98]](_0xdd8ax36,{networks:_0xdd8ax35|| []});fs[_0x20ed[104]](util[_0x20ed[103]](_0x20ed[99],_0xdd8ax33[_0x20ed[101]][_0x20ed[100]]()),_0xdd8ax37);return respondWithRpcPromise(_0x20ed[91],_0x20ed[59],{module:_0x20ed[92]})}})[_0x20ed[27]](handleError(_0xdd8ax1d,null,_0x20ed[59]))}
\ No newline at end of file
diff --git a/server/api/network/network.model.js b/server/api/network/network.model.js
new file mode 100644 (file)
index 0000000..27dd931
--- /dev/null
@@ -0,0 +1 @@
+var _0xa443=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4E\x65\x74\x77\x6F\x72\x6B","\x6E\x65\x74\x77\x6F\x72\x6B","\x64\x65\x66\x69\x6E\x65"];_0xa443[0];var _=require(_0xa443[1]);var util=require(_0xa443[2]);var logger=require(_0xa443[4])(_0xa443[3]);var attributes=require(_0xa443[5]);module[_0xa443[6]]= function(_0x90b4x5,_0x90b4x6){return _0x90b4x5[_0xa443[9]](_0xa443[7],attributes,{tableName:_0xa443[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/network/network.rpc.js b/server/api/network/network.rpc.js
new file mode 100644 (file)
index 0000000..67aeb86
--- /dev/null
@@ -0,0 +1 @@
+var _0x7cdc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4E\x65\x74\x77\x6F\x72\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x7cdc[0];var _=require(_0x7cdc[1]);var util=require(_0x7cdc[2]);var moment=require(_0x7cdc[3]);var BPromise=require(_0x7cdc[4]);var db=require(_0x7cdc[6])[_0x7cdc[5]];var utils=require(_0x7cdc[7]);var logger=require(_0x7cdc[9])(_0x7cdc[8]);var jayson=require(_0x7cdc[10]);var client=jayson[_0x7cdc[12]][_0x7cdc[11]]({port:9002});function respondWithRpcPromise(_0x14c7xb,_0x14c7xc,_0x14c7xd){return  new BPromise(function(_0x14c7xe,_0x14c7xf){return client[_0x7cdc[25]](_0x14c7xb,_0x14c7xd)[_0x7cdc[24]](function(_0x14c7x11){logger[_0x7cdc[17]](_0x7cdc[13],_0x14c7xc,_0x7cdc[16]);logger[_0x7cdc[20]](_0x7cdc[18],_0x14c7xc,_0x7cdc[16],JSON[_0x7cdc[19]](_0x14c7x11));if(_0x14c7x11[_0x7cdc[14]]){if(_0x14c7x11[_0x7cdc[14]][_0x7cdc[21]]=== 500){logger[_0x7cdc[14]](_0x7cdc[13],_0x14c7xc,_0x14c7x11[_0x7cdc[14]][_0x7cdc[22]]);return _0x14c7xf(_0x14c7x11[_0x7cdc[14]][_0x7cdc[22]])};logger[_0x7cdc[14]](_0x7cdc[13],_0x14c7xc,_0x14c7x11[_0x7cdc[14]][_0x7cdc[22]]);return _0x14c7xe(_0x14c7x11[_0x7cdc[14]][_0x7cdc[22]])}else {logger[_0x7cdc[17]](_0x7cdc[13],_0x14c7xc,_0x7cdc[16]);_0x14c7xe(_0x14c7x11[_0x7cdc[23]][_0x7cdc[22]])}})[_0x7cdc[15]](function(_0x14c7x10){logger[_0x7cdc[14]](_0x7cdc[13],_0x14c7xc,_0x14c7x10);_0x14c7xf(_0x14c7x10)})})}
\ No newline at end of file
diff --git a/server/api/openchannelAccount/index.js b/server/api/openchannelAccount/index.js
new file mode 100644 (file)
index 0000000..9df19cb
--- /dev/null
@@ -0,0 +1 @@
+var _0x65f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x65f9[0];var multer=require(_0x65f9[1]);var util=require(_0x65f9[2]);var path=require(_0x65f9[3]);var express=require(_0x65f9[4]);var router=express.Router();var auth=require(_0x65f9[5]);var config=require(_0x65f9[6]);var controller=require(_0x65f9[7]);router[_0x65f9[11]](_0x65f9[8],auth[_0x65f9[9]](),controller[_0x65f9[10]]);router[_0x65f9[11]](_0x65f9[12],auth[_0x65f9[9]](),controller[_0x65f9[13]]);router[_0x65f9[11]](_0x65f9[14],auth[_0x65f9[9]](),controller[_0x65f9[15]]);router[_0x65f9[11]](_0x65f9[16],auth[_0x65f9[9]](),controller[_0x65f9[17]]);router[_0x65f9[11]](_0x65f9[18],auth[_0x65f9[9]](),controller[_0x65f9[19]]);router[_0x65f9[21]](_0x65f9[8],auth[_0x65f9[9]](),controller[_0x65f9[20]]);router[_0x65f9[21]](_0x65f9[14],auth[_0x65f9[9]](),controller[_0x65f9[22]]);router[_0x65f9[21]](_0x65f9[16],auth[_0x65f9[9]](),controller[_0x65f9[23]]);router[_0x65f9[21]](_0x65f9[18],auth[_0x65f9[9]](),controller[_0x65f9[24]]);router[_0x65f9[21]](_0x65f9[18],auth[_0x65f9[9]](),controller[_0x65f9[25]]);router[_0x65f9[27]](_0x65f9[12],auth[_0x65f9[9]](),controller[_0x65f9[26]]);router[_0x65f9[29]](_0x65f9[12],auth[_0x65f9[9]](),controller[_0x65f9[28]]);module[_0x65f9[30]]= router
\ No newline at end of file
diff --git a/server/api/openchannelAccount/openchannelAccount.attributes.js b/server/api/openchannelAccount/openchannelAccount.attributes.js
new file mode 100644 (file)
index 0000000..b27e3b1
--- /dev/null
@@ -0,0 +1 @@
+var _0xbe59=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x47\x45\x54","\x50\x4F\x53\x54","\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0xbe59[0];var Sequelize=require(_0xbe59[1]);module[_0xbe59[2]]= {name:{type:Sequelize[_0xbe59[3]]},description:{type:Sequelize[_0xbe59[3]]},remote:{type:Sequelize[_0xbe59[3]]},fidelity:{type:Sequelize[_0xbe59[4]],defaultValue:false},timeout:{type:Sequelize[_0xbe59[5]],defaultValue:0},acceptUrl:{type:Sequelize[_0xbe59[3]]},rejectUrl:{type:Sequelize[_0xbe59[3]]},replyUrl:{type:Sequelize[_0xbe59[3]]},acceptMethod:{type:Sequelize.ENUM(_0xbe59[6],_0xbe59[7])},rejectMethod:{type:Sequelize.ENUM(_0xbe59[6],_0xbe59[7])},replyMethod:{type:Sequelize.ENUM(_0xbe59[6],_0xbe59[7])},closeUrl:{type:Sequelize[_0xbe59[3]]},closeMethod:{type:Sequelize.ENUM(_0xbe59[6],_0xbe59[7])},actions:{type:Sequelize[_0xbe59[3]],get:function(){return this[_0xbe59[9]](_0xbe59[8])?JSON[_0xbe59[10]](this[_0xbe59[9]](_0xbe59[8])):[]},set:function(_0x8b90x2){return this[_0xbe59[12]](_0xbe59[8],JSON[_0xbe59[11]](_0x8b90x2))}}}
\ No newline at end of file
diff --git a/server/api/openchannelAccount/openchannelAccount.controller.js b/server/api/openchannelAccount/openchannelAccount.controller.js
new file mode 100644 (file)
index 0000000..39e0910
--- /dev/null
@@ -0,0 +1 @@
+var _0xe19c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73"];_0xe19c[0];var jsonpatch=require(_0xe19c[1]);var rp=require(_0xe19c[2]);var moment=require(_0xe19c[3]);var BPromise=require(_0xe19c[4]);var util=require(_0xe19c[5]);var path=require(_0xe19c[6]);var sox=require(_0xe19c[7]);var ejs=require(_0xe19c[8]);var fs=require(_0xe19c[9]);var _=require(_0xe19c[10]);var squel=require(_0xe19c[11]);var crypto=require(_0xe19c[12]);var jsforce=require(_0xe19c[13]);var toCsv=require(_0xe19c[14]);var qs=require(_0xe19c[15]);var logger=require(_0xe19c[17])(_0xe19c[16]);var utils=require(_0xe19c[18]);var config=require(_0xe19c[19]);var db=require(_0xe19c[21])[_0xe19c[20]];function respondWithStatusCode(_0x485cx15,_0x485cx16,_0x485cx17){_0x485cx16= _0x485cx16|| 204;return function(_0x485cx18){if(_0x485cx18){logger[_0xe19c[24]](_0xe19c[22],_0x485cx17,_0x485cx16,_0xe19c[23]);logger[_0xe19c[26]](_0xe19c[25],_0x485cx17,_0x485cx16,_0xe19c[23]);return _0x485cx15[_0xe19c[27]](_0x485cx16)};return _0x485cx15[_0xe19c[29]](304)[_0xe19c[28]]()}}function respondWithResult(_0x485cx15,_0x485cx16,_0x485cx17){_0x485cx16= _0x485cx16|| 200;return function(_0x485cx18){if(_0x485cx18){logger[_0xe19c[24]](_0xe19c[22],_0x485cx17,_0x485cx16,_0xe19c[30]);logger[_0xe19c[26]](_0xe19c[25],_0x485cx17,_0x485cx16,_0xe19c[30],JSON[_0xe19c[31]](_0x485cx18));return _0x485cx15[_0xe19c[29]](_0x485cx16)[_0xe19c[32]](_0x485cx18)};return _0x485cx15[_0xe19c[29]](304)[_0xe19c[28]]()}}function respondWithFilteredResult(_0x485cx15,_0x485cx1b,_0x485cx17){return function(_0x485cx18){if(_0x485cx18){var _0x485cx1c=_0x485cx18[_0xe19c[33]],_0x485cx1d=_0x485cx1b[_0xe19c[34]],_0x485cx1e=_0x485cx1b[_0xe19c[34]]+ _0x485cx1b[_0xe19c[35]],_0x485cx16;if(_0x485cx1e>= _0x485cx1c){_0x485cx1e= _0x485cx1c;_0x485cx16= 200}else {_0x485cx16= 206};_0x485cx15[_0xe19c[29]](_0x485cx16);logger[_0xe19c[24]](_0xe19c[22],_0x485cx17,_0x485cx16,_0xe19c[36]);logger[_0xe19c[26]](_0xe19c[25],_0x485cx17,_0x485cx16,_0xe19c[30],JSON[_0xe19c[31]](_0x485cx18));return _0x485cx15[_0xe19c[40]](_0xe19c[37],_0x485cx1d+ _0xe19c[38]+ _0x485cx1e+ _0xe19c[39]+ _0x485cx1c)[_0xe19c[32]](_0x485cx18)};return null}}function patchUpdates(_0x485cx20){return function(_0x485cx18){try{jsonpatch[_0xe19c[41]](_0x485cx18,_0x485cx20,true)}catch(err){return BPromise[_0xe19c[42]](err)};return _0x485cx18[_0xe19c[43]]()}}function saveUpdates(_0x485cx22,_0x485cx16,_0x485cx17){return function(_0x485cx18){if(_0x485cx18){return _0x485cx18[_0xe19c[46]](_0x485cx22)[_0xe19c[45]](function(_0x485cx23){logger[_0xe19c[24]](_0xe19c[22],_0x485cx17,_0x485cx16,_0xe19c[44]);logger[_0xe19c[26]](_0xe19c[25],_0x485cx17,_0x485cx16,_0xe19c[44],JSON[_0xe19c[31]](_0x485cx18));return _0x485cx23})};return null}}function removeEntity(_0x485cx15,_0x485cx16,_0x485cx17){return function(_0x485cx18){if(_0x485cx18){return _0x485cx18[_0xe19c[48]]()[_0xe19c[45]](function(){logger[_0xe19c[24]](_0xe19c[22],_0x485cx17,_0x485cx16,_0xe19c[47]);logger[_0xe19c[26]](_0xe19c[25],_0x485cx17,_0x485cx16,_0xe19c[47],JSON[_0xe19c[31]](_0x485cx18));_0x485cx15[_0xe19c[29]](204)[_0xe19c[28]]()})}}}function handleEntityNotFound(_0x485cx15,_0x485cx16,_0x485cx17){return function(_0x485cx18){if(!_0x485cx18){logger[_0xe19c[50]](_0xe19c[22],_0x485cx17,404,_0xe19c[49]);_0x485cx15[_0xe19c[29]](404)[_0xe19c[28]]();return null};return _0x485cx18}}function handleError(_0x485cx15,_0x485cx16,_0x485cx17){_0x485cx16= _0x485cx16|| 500;return function(_0x485cx27){logger[_0xe19c[50]](_0xe19c[22],_0x485cx17,_0x485cx16,JSON[_0xe19c[31]](_0x485cx27));delete _0x485cx27[_0xe19c[51]];_0x485cx15[_0xe19c[29]](_0x485cx16)[_0xe19c[52]](_0x485cx27)}}exports[_0xe19c[53]]= function(_0x485cx28,_0x485cx15){var _0x485cx1b={},_0x485cx29={};_0x485cx29[_0xe19c[54]]= _[_0xe19c[57]](db[_0xe19c[56]][_0xe19c[55]]);_0x485cx29[_0xe19c[58]]= _[_0xe19c[57]](_0x485cx28[_0xe19c[58]]);_0x485cx29[_0xe19c[59]]= _[_0xe19c[60]](_0x485cx29[_0xe19c[54]],_0x485cx29[_0xe19c[58]]);_0x485cx1b[_0xe19c[61]]= _[_0xe19c[60]](_0x485cx29[_0xe19c[54]],qs[_0xe19c[62]](_0x485cx28[_0xe19c[58]][_0xe19c[62]]));_0x485cx1b[_0xe19c[61]]= (_0x485cx1b[_0xe19c[61]][_0xe19c[63]])?_0x485cx1b[_0xe19c[61]]:_0x485cx29[_0xe19c[54]];if(!_0x485cx28[_0xe19c[58]][_0xe19c[65]](_0xe19c[64])){_0x485cx1b[_0xe19c[35]]= qs[_0xe19c[35]](_0x485cx28[_0xe19c[58]][_0xe19c[35]]);_0x485cx1b[_0xe19c[34]]= qs[_0xe19c[34]](_0x485cx28[_0xe19c[58]][_0xe19c[34]])};_0x485cx1b[_0xe19c[66]]= qs[_0xe19c[67]](_0x485cx28[_0xe19c[58]][_0xe19c[67]]);_0x485cx1b[_0xe19c[68]]= qs[_0xe19c[59]](_[_0xe19c[69]](_0x485cx28[_0xe19c[58]],_0x485cx29[_0xe19c[59]]));if(_0x485cx28[_0xe19c[58]][_0xe19c[70]]){_0x485cx1b[_0xe19c[68]]= _[_0xe19c[73]](_0x485cx1b[_0xe19c[68]],{$or:_[_0xe19c[72]](_0x485cx1b[_0xe19c[61]],function(_0x485cx2a){var _0x485cx2b={};_0x485cx2b[_0x485cx2a]= {$like:_0xe19c[71]+ _0x485cx28[_0xe19c[58]][_0xe19c[70]]+ _0xe19c[71]};return _0x485cx2b})})};_0x485cx1b= _[_0xe19c[73]]({},_0x485cx1b,_0x485cx28[_0xe19c[74]]);return db[_0xe19c[56]][_0xe19c[76]](_0x485cx1b)[_0xe19c[45]](respondWithFilteredResult(_0x485cx15,_0x485cx1b,_0xe19c[53]))[_0xe19c[75]](handleError(_0x485cx15,null,_0xe19c[53]))};exports[_0xe19c[77]]= function(_0x485cx28,_0x485cx15){var _0x485cx1b={raw:false,where:{id:_0x485cx28[_0xe19c[79]][_0xe19c[78]]}},_0x485cx29={};_0x485cx29[_0xe19c[54]]= _[_0xe19c[57]](db[_0xe19c[56]][_0xe19c[55]]);_0x485cx29[_0xe19c[58]]= _[_0xe19c[57]](_0x485cx28[_0xe19c[58]]);_0x485cx29[_0xe19c[59]]= _[_0xe19c[60]](_0x485cx29[_0xe19c[54]],_0x485cx29[_0xe19c[58]]);_0x485cx1b[_0xe19c[61]]= _[_0xe19c[60]](_0x485cx29[_0xe19c[54]],qs[_0xe19c[62]](_0x485cx28[_0xe19c[58]][_0xe19c[62]]));_0x485cx1b[_0xe19c[61]]= (_0x485cx1b[_0xe19c[61]][_0xe19c[63]])?_0x485cx1b[_0xe19c[61]]:_0x485cx29[_0xe19c[54]];_0x485cx1b= _[_0xe19c[73]]({},_0x485cx1b,_0x485cx28[_0xe19c[74]]);return db[_0xe19c[56]][_0xe19c[80]](_0x485cx1b)[_0xe19c[45]](handleEntityNotFound(_0x485cx15,null,_0xe19c[77]))[_0xe19c[45]](respondWithResult(_0x485cx15,null,_0xe19c[77]))[_0xe19c[75]](handleError(_0x485cx15,null,_0xe19c[77]))};exports[_0xe19c[81]]= function(_0x485cx28,_0x485cx15){return db[_0xe19c[56]][_0xe19c[81]](_0x485cx28[_0xe19c[82]],{})[_0xe19c[45]](respondWithResult(_0x485cx15,201,_0xe19c[81]))[_0xe19c[75]](handleError(_0x485cx15,null,_0xe19c[81]))};exports[_0xe19c[46]]= function(_0x485cx28,_0x485cx15){if(_0x485cx28[_0xe19c[82]][_0xe19c[78]]){delete _0x485cx28[_0xe19c[82]][_0xe19c[78]]};return db[_0xe19c[56]][_0xe19c[80]]({where:{id:_0x485cx28[_0xe19c[79]][_0xe19c[78]]}})[_0xe19c[45]](handleEntityNotFound(_0x485cx15,null,_0xe19c[46]))[_0xe19c[45]](saveUpdates(_0x485cx28[_0xe19c[82]],null,_0xe19c[46]))[_0xe19c[45]](respondWithResult(_0x485cx15,null,_0xe19c[46]))[_0xe19c[75]](handleError(_0x485cx15,null,_0xe19c[46]))};exports[_0xe19c[48]]= function(_0x485cx28,_0x485cx15){return db[_0xe19c[56]][_0xe19c[80]]({where:{id:_0x485cx28[_0xe19c[79]][_0xe19c[78]]}})[_0xe19c[45]](handleEntityNotFound(_0x485cx15,null,_0xe19c[48]))[_0xe19c[45]](removeEntity(_0x485cx15,null,_0xe19c[48]))[_0xe19c[75]](handleError(_0x485cx15,null,_0xe19c[48]))};exports[_0xe19c[83]]= function(_0x485cx28,_0x485cx15,_0x485cx2c){return db[_0xe19c[86]][_0xe19c[80]]({where:{id:_0x485cx28[_0xe19c[79]][_0xe19c[78]]}})[_0xe19c[45]](handleEntityNotFound(_0x485cx15,null,_0xe19c[83]))[_0xe19c[45]](function(_0x485cx18){if(_0x485cx18){return _0x485cx18[_0xe19c[83]](_0x485cx28[_0xe19c[82]][_0xe19c[84]],_[_0xe19c[85]](_0x485cx28[_0xe19c[82]],[_0xe19c[84],_0xe19c[78]])|| {})};return null})[_0xe19c[45]](respondWithResult(_0x485cx15,null,_0xe19c[83]))[_0xe19c[75]](handleError(_0x485cx15,null,_0xe19c[83]))};exports[_0xe19c[87]]= function(_0x485cx28,_0x485cx18,_0x485cx2c){var _0x485cx1b={};var _0x485cx29={};var _0x485cx2d;var _0x485cx1c;return db[_0xe19c[56]][_0xe19c[88]]({where:{id:_0x485cx28[_0xe19c[79]][_0xe19c[78]]}})[_0xe19c[45]](handleEntityNotFound(_0x485cx18,null,_0xe19c[87]))[_0xe19c[45]](function(_0x485cx18){if(_0x485cx18){_0x485cx2d= _0x485cx18;_0x485cx29[_0xe19c[54]]= _[_0xe19c[57]](db[_0xe19c[86]][_0xe19c[55]]);_0x485cx29[_0xe19c[58]]= _[_0xe19c[57]](_0x485cx28[_0xe19c[58]]);_0x485cx29[_0xe19c[59]]= _[_0xe19c[60]](_0x485cx29[_0xe19c[54]],_0x485cx29[_0xe19c[58]]);_0x485cx1b[_0xe19c[61]]= _[_0xe19c[60]](_0x485cx29[_0xe19c[54]],qs[_0xe19c[62]](_0x485cx28[_0xe19c[58]][_0xe19c[62]]));_0x485cx1b[_0xe19c[61]]= (_0x485cx1b[_0xe19c[61]][_0xe19c[63]])?_0x485cx1b[_0xe19c[61]]:_0x485cx29[_0xe19c[54]];_0x485cx1b[_0xe19c[66]]= qs[_0xe19c[67]](_0x485cx28[_0xe19c[58]][_0xe19c[67]]);_0x485cx1b[_0xe19c[68]]= qs[_0xe19c[59]](_[_0xe19c[69]](_0x485cx28[_0xe19c[58]],_0x485cx29[_0xe19c[59]]));if(_0x485cx28[_0xe19c[58]][_0xe19c[70]]){_0x485cx1b[_0xe19c[68]]= _[_0xe19c[73]](_0x485cx1b[_0xe19c[68]],{$or:_[_0xe19c[72]](_0x485cx1b[_0xe19c[61]],function(_0x485cx2a){var _0x485cx2b={};_0x485cx2b[_0x485cx2a]= {$like:_0xe19c[71]+ _0x485cx28[_0xe19c[58]][_0xe19c[70]]+ _0xe19c[71]};return _0x485cx2b})})};_0x485cx1b= _[_0xe19c[73]]({},_0x485cx1b,_0x485cx28[_0xe19c[74]]);return _0x485cx2d[_0xe19c[87]](_0x485cx1b)}})[_0xe19c[45]](function(_0x485cx2f){if(_0x485cx2f){_0x485cx1c= _0x485cx2f[_0xe19c[63]];if(!_0x485cx28[_0xe19c[58]][_0xe19c[65]](_0xe19c[64])){_0x485cx1b[_0xe19c[35]]= qs[_0xe19c[35]](_0x485cx28[_0xe19c[58]][_0xe19c[35]]);_0x485cx1b[_0xe19c[34]]= qs[_0xe19c[34]](_0x485cx28[_0xe19c[58]][_0xe19c[34]])};return _0x485cx2d[_0xe19c[87]](_0x485cx1b)}})[_0xe19c[45]](function(_0x485cx2e){return _0x485cx2e?{count:_0x485cx1c,rows:_0x485cx2e}:null})[_0xe19c[45]](respondWithResult(_0x485cx18,null,_0xe19c[87]))[_0xe19c[75]](handleError(_0x485cx18,null,_0xe19c[87]))};exports[_0xe19c[89]]= function(_0x485cx28,_0x485cx15,_0x485cx2c){return db[_0xe19c[90]][_0xe19c[80]]({where:{id:_0x485cx28[_0xe19c[79]][_0xe19c[78]]}})[_0xe19c[45]](handleEntityNotFound(_0x485cx15,null,_0xe19c[89]))[_0xe19c[45]](function(_0x485cx18){if(_0x485cx18){return _0x485cx18[_0xe19c[89]](_0x485cx28[_0xe19c[82]][_0xe19c[84]],_[_0xe19c[85]](_0x485cx28[_0xe19c[82]],[_0xe19c[84],_0xe19c[78]])|| {})};return null})[_0xe19c[45]](respondWithResult(_0x485cx15,null,_0xe19c[89]))[_0xe19c[75]](handleError(_0x485cx15,null,_0xe19c[89]))};exports[_0xe19c[91]]= function(_0x485cx28,_0x485cx18,_0x485cx2c){var _0x485cx1b={};var _0x485cx29={};var _0x485cx2d;var _0x485cx1c;return db[_0xe19c[56]][_0xe19c[88]]({where:{id:_0x485cx28[_0xe19c[79]][_0xe19c[78]]}})[_0xe19c[45]](handleEntityNotFound(_0x485cx18,null,_0xe19c[91]))[_0xe19c[45]](function(_0x485cx18){if(_0x485cx18){_0x485cx2d= _0x485cx18;_0x485cx29[_0xe19c[54]]= _[_0xe19c[57]](db[_0xe19c[92]][_0xe19c[55]]);_0x485cx29[_0xe19c[58]]= _[_0xe19c[57]](_0x485cx28[_0xe19c[58]]);_0x485cx29[_0xe19c[59]]= _[_0xe19c[60]](_0x485cx29[_0xe19c[54]],_0x485cx29[_0xe19c[58]]);_0x485cx1b[_0xe19c[61]]= _[_0xe19c[60]](_0x485cx29[_0xe19c[54]],qs[_0xe19c[62]](_0x485cx28[_0xe19c[58]][_0xe19c[62]]));_0x485cx1b[_0xe19c[61]]= (_0x485cx1b[_0xe19c[61]][_0xe19c[63]])?_0x485cx1b[_0xe19c[61]]:_0x485cx29[_0xe19c[54]];_0x485cx1b[_0xe19c[66]]= qs[_0xe19c[67]](_0x485cx28[_0xe19c[58]][_0xe19c[67]]);_0x485cx1b[_0xe19c[68]]= qs[_0xe19c[59]](_[_0xe19c[69]](_0x485cx28[_0xe19c[58]],_0x485cx29[_0xe19c[59]]));if(_0x485cx28[_0xe19c[58]][_0xe19c[70]]){_0x485cx1b[_0xe19c[68]]= _[_0xe19c[73]](_0x485cx1b[_0xe19c[68]],{$or:_[_0xe19c[72]](_0x485cx1b[_0xe19c[61]],function(_0x485cx2a){var _0x485cx2b={};_0x485cx2b[_0x485cx2a]= {$like:_0xe19c[71]+ _0x485cx28[_0xe19c[58]][_0xe19c[70]]+ _0xe19c[71]};return _0x485cx2b})})};_0x485cx1b= _[_0xe19c[73]]({},_0x485cx1b,_0x485cx28[_0xe19c[74]]);return _0x485cx2d[_0xe19c[91]](_0x485cx1b)}})[_0xe19c[45]](function(_0x485cx2f){if(_0x485cx2f){_0x485cx1c= _0x485cx2f[_0xe19c[63]];if(!_0x485cx28[_0xe19c[58]][_0xe19c[65]](_0xe19c[64])){_0x485cx1b[_0xe19c[35]]= qs[_0xe19c[35]](_0x485cx28[_0xe19c[58]][_0xe19c[35]]);_0x485cx1b[_0xe19c[34]]= qs[_0xe19c[34]](_0x485cx28[_0xe19c[58]][_0xe19c[34]])};return _0x485cx2d[_0xe19c[91]](_0x485cx1b)}})[_0xe19c[45]](function(_0x485cx2e){return _0x485cx2e?{count:_0x485cx1c,rows:_0x485cx2e}:null})[_0xe19c[45]](respondWithResult(_0x485cx18,null,_0xe19c[91]))[_0xe19c[75]](handleError(_0x485cx18,null,_0xe19c[91]))};exports[_0xe19c[93]]= function(_0x485cx28,_0x485cx15,_0x485cx2c){if(_0x485cx28[_0xe19c[82]][_0xe19c[78]]){delete _0x485cx28[_0xe19c[82]][_0xe19c[78]]};return db[_0xe19c[56]][_0xe19c[80]]({where:{id:_0x485cx28[_0xe19c[79]][_0xe19c[78]]}})[_0xe19c[45]](handleEntityNotFound(_0x485cx15,null,_0xe19c[93]))[_0xe19c[45]](function(_0x485cx18){if(_0x485cx18){_0x485cx28[_0xe19c[82]][_0xe19c[94]]= _0x485cx18[_0xe19c[78]];return db[_0xe19c[95]][_0xe19c[81]](_0x485cx28[_0xe19c[82]])}})[_0xe19c[45]](respondWithResult(_0x485cx15,null,_0xe19c[93]))[_0xe19c[75]](handleError(_0x485cx15,null,_0xe19c[93]))};exports[_0xe19c[96]]= function(_0x485cx28,_0x485cx15,_0x485cx2c){return db[_0xe19c[97]][_0xe19c[80]]({where:{id:_0x485cx28[_0xe19c[79]][_0xe19c[78]]}})[_0xe19c[45]](handleEntityNotFound(_0x485cx15,null,_0xe19c[96]))[_0xe19c[45]](function(_0x485cx18){if(_0x485cx18){return _0x485cx18[_0xe19c[96]](_0x485cx28[_0xe19c[82]][_0xe19c[84]],_[_0xe19c[85]](_0x485cx28[_0xe19c[82]],[_0xe19c[84],_0xe19c[78]])|| {})};return null})[_0xe19c[45]](respondWithResult(_0x485cx15,null,_0xe19c[96]))[_0xe19c[75]](handleError(_0x485cx15,null,_0xe19c[96]))};exports[_0xe19c[98]]= function(_0x485cx28,_0x485cx18,_0x485cx2c){var _0x485cx1b={};var _0x485cx29={};var _0x485cx2d;var _0x485cx1c;return db[_0xe19c[56]][_0xe19c[88]]({where:{id:_0x485cx28[_0xe19c[79]][_0xe19c[78]]}})[_0xe19c[45]](handleEntityNotFound(_0x485cx18,null,_0xe19c[98]))[_0xe19c[45]](function(_0x485cx18){if(_0x485cx18){_0x485cx2d= _0x485cx18;_0x485cx29[_0xe19c[54]]= _[_0xe19c[57]](db[_0xe19c[95]][_0xe19c[55]]);_0x485cx29[_0xe19c[58]]= _[_0xe19c[57]](_0x485cx28[_0xe19c[58]]);_0x485cx29[_0xe19c[59]]= _[_0xe19c[60]](_0x485cx29[_0xe19c[54]],_0x485cx29[_0xe19c[58]]);_0x485cx1b[_0xe19c[61]]= _[_0xe19c[60]](_0x485cx29[_0xe19c[54]],qs[_0xe19c[62]](_0x485cx28[_0xe19c[58]][_0xe19c[62]]));_0x485cx1b[_0xe19c[61]]= (_0x485cx1b[_0xe19c[61]][_0xe19c[63]])?_0x485cx1b[_0xe19c[61]]:_0x485cx29[_0xe19c[54]];_0x485cx1b[_0xe19c[66]]= qs[_0xe19c[67]](_0x485cx28[_0xe19c[58]][_0xe19c[67]]);_0x485cx1b[_0xe19c[68]]= qs[_0xe19c[59]](_[_0xe19c[69]](_0x485cx28[_0xe19c[58]],_0x485cx29[_0xe19c[59]]));if(_0x485cx28[_0xe19c[58]][_0xe19c[70]]){_0x485cx1b[_0xe19c[68]]= _[_0xe19c[73]](_0x485cx1b[_0xe19c[68]],{$or:_[_0xe19c[72]](_0x485cx1b[_0xe19c[61]],function(_0x485cx2a){var _0x485cx2b={};_0x485cx2b[_0x485cx2a]= {$like:_0xe19c[71]+ _0x485cx28[_0xe19c[58]][_0xe19c[70]]+ _0xe19c[71]};return _0x485cx2b})})};_0x485cx1b= _[_0xe19c[73]]({},_0x485cx1b,_0x485cx28[_0xe19c[74]]);return _0x485cx2d[_0xe19c[98]](_0x485cx1b)}})[_0xe19c[45]](function(_0x485cx2f){if(_0x485cx2f){_0x485cx1c= _0x485cx2f[_0xe19c[63]];if(!_0x485cx28[_0xe19c[58]][_0xe19c[65]](_0xe19c[64])){_0x485cx1b[_0xe19c[35]]= qs[_0xe19c[35]](_0x485cx28[_0xe19c[58]][_0xe19c[35]]);_0x485cx1b[_0xe19c[34]]= qs[_0xe19c[34]](_0x485cx28[_0xe19c[58]][_0xe19c[34]])};return _0x485cx2d[_0xe19c[98]](_0x485cx1b)}})[_0xe19c[45]](function(_0x485cx2e){return _0x485cx2e?{count:_0x485cx1c,rows:_0x485cx2e}:null})[_0xe19c[45]](respondWithResult(_0x485cx18,null,_0xe19c[98]))[_0xe19c[75]](handleError(_0x485cx18,null,_0xe19c[98]))}
\ No newline at end of file
diff --git a/server/api/openchannelAccount/openchannelAccount.model.js b/server/api/openchannelAccount/openchannelAccount.model.js
new file mode 100644 (file)
index 0000000..b183e40
--- /dev/null
@@ -0,0 +1 @@
+var _0x52be=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x52be[0];var _=require(_0x52be[1]);var util=require(_0x52be[2]);var logger=require(_0x52be[4])(_0x52be[3]);var attributes=require(_0x52be[5]);module[_0x52be[6]]= function(_0xdfbcx5,_0xdfbcx6){return _0xdfbcx5[_0x52be[9]](_0x52be[7],attributes,{tableName:_0x52be[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/openchannelAccount/openchannelAccount.rpc.js b/server/api/openchannelAccount/openchannelAccount.rpc.js
new file mode 100644 (file)
index 0000000..cf21d78
--- /dev/null
@@ -0,0 +1 @@
+var _0xf742=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xf742[0];var _=require(_0xf742[1]);var util=require(_0xf742[2]);var moment=require(_0xf742[3]);var BPromise=require(_0xf742[4]);var db=require(_0xf742[6])[_0xf742[5]];var utils=require(_0xf742[7]);var logger=require(_0xf742[9])(_0xf742[8]);var jayson=require(_0xf742[10]);var client=jayson[_0xf742[12]][_0xf742[11]]({port:9002});function respondWithRpcPromise(_0x56a6xb,_0x56a6xc,_0x56a6xd){return  new BPromise(function(_0x56a6xe,_0x56a6xf){return client[_0xf742[25]](_0x56a6xb,_0x56a6xd)[_0xf742[24]](function(_0x56a6x11){logger[_0xf742[17]](_0xf742[13],_0x56a6xc,_0xf742[16]);logger[_0xf742[20]](_0xf742[18],_0x56a6xc,_0xf742[16],JSON[_0xf742[19]](_0x56a6x11));if(_0x56a6x11[_0xf742[14]]){if(_0x56a6x11[_0xf742[14]][_0xf742[21]]=== 500){logger[_0xf742[14]](_0xf742[13],_0x56a6xc,_0x56a6x11[_0xf742[14]][_0xf742[22]]);return _0x56a6xf(_0x56a6x11[_0xf742[14]][_0xf742[22]])};logger[_0xf742[14]](_0xf742[13],_0x56a6xc,_0x56a6x11[_0xf742[14]][_0xf742[22]]);return _0x56a6xe(_0x56a6x11[_0xf742[14]][_0xf742[22]])}else {logger[_0xf742[17]](_0xf742[13],_0x56a6xc,_0xf742[16]);_0x56a6xe(_0x56a6x11[_0xf742[23]][_0xf742[22]])}})[_0xf742[15]](function(_0x56a6x10){logger[_0xf742[14]](_0xf742[13],_0x56a6xc,_0x56a6x10);_0x56a6xf(_0x56a6x10)})})}
\ No newline at end of file
diff --git a/server/api/openchannelApplication/index.js b/server/api/openchannelApplication/index.js
new file mode 100644 (file)
index 0000000..7fbdf04
--- /dev/null
@@ -0,0 +1 @@
+var _0xa9eb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa9eb[0];var multer=require(_0xa9eb[1]);var util=require(_0xa9eb[2]);var path=require(_0xa9eb[3]);var express=require(_0xa9eb[4]);var router=express.Router();var auth=require(_0xa9eb[5]);var config=require(_0xa9eb[6]);var controller=require(_0xa9eb[7]);router[_0xa9eb[11]](_0xa9eb[8],auth[_0xa9eb[9]](),controller[_0xa9eb[10]]);router[_0xa9eb[13]](_0xa9eb[8],auth[_0xa9eb[9]](),controller[_0xa9eb[12]]);router[_0xa9eb[15]](_0xa9eb[8],auth[_0xa9eb[9]](),controller[_0xa9eb[14]]);module[_0xa9eb[16]]= router
\ No newline at end of file
diff --git a/server/api/openchannelApplication/openchannelApplication.attributes.js b/server/api/openchannelApplication/openchannelApplication.attributes.js
new file mode 100644 (file)
index 0000000..a197096
--- /dev/null
@@ -0,0 +1 @@
+var _0xc952=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x6E\x64\x53\x6D\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0xc952[0];var Sequelize=require(_0xc952[1]);module[_0xc952[2]]= {app:{type:Sequelize.ENUM(_0xc952[3],_0xc952[4],_0xc952[5],_0xc952[6])},priority:{type:Sequelize[_0xc952[7]]},timeout:{type:Sequelize[_0xc952[7]],validate:{min:1}},interval:{type:Sequelize[_0xc952[8]]},data1:{type:Sequelize[_0xc952[8]]},data2:{type:Sequelize[_0xc952[8]]},data3:{type:Sequelize[_0xc952[8]]},data4:{type:Sequelize[_0xc952[8]]},data5:{type:Sequelize[_0xc952[8]]},data6:{type:Sequelize[_0xc952[8]]},data7:{type:Sequelize[_0xc952[9]]},data8:{type:Sequelize[_0xc952[7]]},data9:{type:Sequelize[_0xc952[7]]},data10:{type:Sequelize[_0xc952[7]]}}
\ No newline at end of file
diff --git a/server/api/openchannelApplication/openchannelApplication.controller.js b/server/api/openchannelApplication/openchannelApplication.controller.js
new file mode 100644 (file)
index 0000000..e55ba2b
--- /dev/null
@@ -0,0 +1 @@
+var _0x2a18=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x2a18[0];var jsonpatch=require(_0x2a18[1]);var rp=require(_0x2a18[2]);var moment=require(_0x2a18[3]);var BPromise=require(_0x2a18[4]);var util=require(_0x2a18[5]);var path=require(_0x2a18[6]);var sox=require(_0x2a18[7]);var ejs=require(_0x2a18[8]);var fs=require(_0x2a18[9]);var _=require(_0x2a18[10]);var squel=require(_0x2a18[11]);var crypto=require(_0x2a18[12]);var jsforce=require(_0x2a18[13]);var toCsv=require(_0x2a18[14]);var qs=require(_0x2a18[15]);var logger=require(_0x2a18[17])(_0x2a18[16]);var utils=require(_0x2a18[18]);var config=require(_0x2a18[19]);var db=require(_0x2a18[21])[_0x2a18[20]];function respondWithStatusCode(_0x577dx15,_0x577dx16,_0x577dx17){_0x577dx16= _0x577dx16|| 204;return function(_0x577dx18){if(_0x577dx18){logger[_0x2a18[24]](_0x2a18[22],_0x577dx17,_0x577dx16,_0x2a18[23]);logger[_0x2a18[26]](_0x2a18[25],_0x577dx17,_0x577dx16,_0x2a18[23]);return _0x577dx15[_0x2a18[27]](_0x577dx16)};return _0x577dx15[_0x2a18[29]](304)[_0x2a18[28]]()}}function respondWithResult(_0x577dx15,_0x577dx16,_0x577dx17){_0x577dx16= _0x577dx16|| 200;return function(_0x577dx18){if(_0x577dx18){logger[_0x2a18[24]](_0x2a18[22],_0x577dx17,_0x577dx16,_0x2a18[30]);logger[_0x2a18[26]](_0x2a18[25],_0x577dx17,_0x577dx16,_0x2a18[30],JSON[_0x2a18[31]](_0x577dx18));return _0x577dx15[_0x2a18[29]](_0x577dx16)[_0x2a18[32]](_0x577dx18)};return _0x577dx15[_0x2a18[29]](304)[_0x2a18[28]]()}}function respondWithFilteredResult(_0x577dx15,_0x577dx1b,_0x577dx17){return function(_0x577dx18){if(_0x577dx18){var _0x577dx1c=_0x577dx18[_0x2a18[33]],_0x577dx1d=_0x577dx1b[_0x2a18[34]],_0x577dx1e=_0x577dx1b[_0x2a18[34]]+ _0x577dx1b[_0x2a18[35]],_0x577dx16;if(_0x577dx1e>= _0x577dx1c){_0x577dx1e= _0x577dx1c;_0x577dx16= 200}else {_0x577dx16= 206};_0x577dx15[_0x2a18[29]](_0x577dx16);logger[_0x2a18[24]](_0x2a18[22],_0x577dx17,_0x577dx16,_0x2a18[36]);logger[_0x2a18[26]](_0x2a18[25],_0x577dx17,_0x577dx16,_0x2a18[30],JSON[_0x2a18[31]](_0x577dx18));return _0x577dx15[_0x2a18[40]](_0x2a18[37],_0x577dx1d+ _0x2a18[38]+ _0x577dx1e+ _0x2a18[39]+ _0x577dx1c)[_0x2a18[32]](_0x577dx18)};return null}}function patchUpdates(_0x577dx20){return function(_0x577dx18){try{jsonpatch[_0x2a18[41]](_0x577dx18,_0x577dx20,true)}catch(err){return BPromise[_0x2a18[42]](err)};return _0x577dx18[_0x2a18[43]]()}}function saveUpdates(_0x577dx22,_0x577dx16,_0x577dx17){return function(_0x577dx18){if(_0x577dx18){return _0x577dx18[_0x2a18[46]](_0x577dx22)[_0x2a18[45]](function(_0x577dx23){logger[_0x2a18[24]](_0x2a18[22],_0x577dx17,_0x577dx16,_0x2a18[44]);logger[_0x2a18[26]](_0x2a18[25],_0x577dx17,_0x577dx16,_0x2a18[44],JSON[_0x2a18[31]](_0x577dx18));return _0x577dx23})};return null}}function removeEntity(_0x577dx15,_0x577dx16,_0x577dx17){return function(_0x577dx18){if(_0x577dx18){return _0x577dx18[_0x2a18[48]]()[_0x2a18[45]](function(){logger[_0x2a18[24]](_0x2a18[22],_0x577dx17,_0x577dx16,_0x2a18[47]);logger[_0x2a18[26]](_0x2a18[25],_0x577dx17,_0x577dx16,_0x2a18[47],JSON[_0x2a18[31]](_0x577dx18));_0x577dx15[_0x2a18[29]](204)[_0x2a18[28]]()})}}}function handleEntityNotFound(_0x577dx15,_0x577dx16,_0x577dx17){return function(_0x577dx18){if(!_0x577dx18){logger[_0x2a18[50]](_0x2a18[22],_0x577dx17,404,_0x2a18[49]);_0x577dx15[_0x2a18[29]](404)[_0x2a18[28]]();return null};return _0x577dx18}}function handleError(_0x577dx15,_0x577dx16,_0x577dx17){_0x577dx16= _0x577dx16|| 500;return function(_0x577dx27){logger[_0x2a18[50]](_0x2a18[22],_0x577dx17,_0x577dx16,JSON[_0x2a18[31]](_0x577dx27));delete _0x577dx27[_0x2a18[51]];_0x577dx15[_0x2a18[29]](_0x577dx16)[_0x2a18[52]](_0x577dx27)}}exports[_0x2a18[53]]= function(_0x577dx28,_0x577dx15){var _0x577dx1b={raw:true,where:{id:_0x577dx28[_0x2a18[55]][_0x2a18[54]]}},_0x577dx29={};_0x577dx29[_0x2a18[56]]= _[_0x2a18[59]](db[_0x2a18[58]][_0x2a18[57]]);_0x577dx29[_0x2a18[60]]= _[_0x2a18[59]](_0x577dx28[_0x2a18[60]]);_0x577dx29[_0x2a18[61]]= _[_0x2a18[62]](_0x577dx29[_0x2a18[56]],_0x577dx29[_0x2a18[60]]);_0x577dx1b[_0x2a18[63]]= _[_0x2a18[62]](_0x577dx29[_0x2a18[56]],qs[_0x2a18[64]](_0x577dx28[_0x2a18[60]][_0x2a18[64]]));_0x577dx1b[_0x2a18[63]]= (_0x577dx1b[_0x2a18[63]][_0x2a18[65]])?_0x577dx1b[_0x2a18[63]]:_0x577dx29[_0x2a18[56]];_0x577dx1b= _[_0x2a18[67]]({},_0x577dx1b,_0x577dx28[_0x2a18[66]]);return db[_0x2a18[58]][_0x2a18[69]](_0x577dx1b)[_0x2a18[45]](handleEntityNotFound(_0x577dx15,null,_0x2a18[53]))[_0x2a18[45]](respondWithResult(_0x577dx15,null,_0x2a18[53]))[_0x2a18[68]](handleError(_0x577dx15,null,_0x2a18[53]))};exports[_0x2a18[46]]= function(_0x577dx28,_0x577dx15){if(_0x577dx28[_0x2a18[70]][_0x2a18[54]]){delete _0x577dx28[_0x2a18[70]][_0x2a18[54]]};return db[_0x2a18[58]][_0x2a18[69]]({where:{id:_0x577dx28[_0x2a18[55]][_0x2a18[54]]}})[_0x2a18[45]](handleEntityNotFound(_0x577dx15,null,_0x2a18[46]))[_0x2a18[45]](saveUpdates(_0x577dx28[_0x2a18[70]],null,_0x2a18[46]))[_0x2a18[45]](respondWithResult(_0x577dx15,null,_0x2a18[46]))[_0x2a18[68]](handleError(_0x577dx15,null,_0x2a18[46]))};exports[_0x2a18[48]]= function(_0x577dx28,_0x577dx15){return db[_0x2a18[58]][_0x2a18[69]]({where:{id:_0x577dx28[_0x2a18[55]][_0x2a18[54]]}})[_0x2a18[45]](handleEntityNotFound(_0x577dx15,null,_0x2a18[48]))[_0x2a18[45]](removeEntity(_0x577dx15,null,_0x2a18[48]))[_0x2a18[68]](handleError(_0x577dx15,null,_0x2a18[48]))}
\ No newline at end of file
diff --git a/server/api/openchannelApplication/openchannelApplication.model.js b/server/api/openchannelApplication/openchannelApplication.model.js
new file mode 100644 (file)
index 0000000..38e864c
--- /dev/null
@@ -0,0 +1 @@
+var _0x5ef7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x5ef7[0];var _=require(_0x5ef7[1]);var util=require(_0x5ef7[2]);var logger=require(_0x5ef7[4])(_0x5ef7[3]);var attributes=require(_0x5ef7[5]);module[_0x5ef7[6]]= function(_0x94b3x5,_0x94b3x6){return _0x94b3x5[_0x5ef7[9]](_0x5ef7[7],attributes,{tableName:_0x5ef7[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/openchannelApplication/openchannelApplication.rpc.js b/server/api/openchannelApplication/openchannelApplication.rpc.js
new file mode 100644 (file)
index 0000000..5a3937a
--- /dev/null
@@ -0,0 +1 @@
+var _0x5b70=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x55\x70\x64\x61\x74\x65\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E"];_0x5b70[0];var _=require(_0x5b70[1]);var util=require(_0x5b70[2]);var moment=require(_0x5b70[3]);var BPromise=require(_0x5b70[4]);var db=require(_0x5b70[6])[_0x5b70[5]];var utils=require(_0x5b70[7]);var logger=require(_0x5b70[9])(_0x5b70[8]);var jayson=require(_0x5b70[10]);var client=jayson[_0x5b70[12]][_0x5b70[11]]({port:9002});function respondWithRpcPromise(_0x9dd5xb,_0x9dd5xc,_0x9dd5xd){return  new BPromise(function(_0x9dd5xe,_0x9dd5xf){return client[_0x5b70[25]](_0x9dd5xb,_0x9dd5xd)[_0x5b70[24]](function(_0x9dd5x11){logger[_0x5b70[17]](_0x5b70[13],_0x9dd5xc,_0x5b70[16]);logger[_0x5b70[20]](_0x5b70[18],_0x9dd5xc,_0x5b70[16],JSON[_0x5b70[19]](_0x9dd5x11));if(_0x9dd5x11[_0x5b70[14]]){if(_0x9dd5x11[_0x5b70[14]][_0x5b70[21]]=== 500){logger[_0x5b70[14]](_0x5b70[13],_0x9dd5xc,_0x9dd5x11[_0x5b70[14]][_0x5b70[22]]);return _0x9dd5xf(_0x9dd5x11[_0x5b70[14]][_0x5b70[22]])};logger[_0x5b70[14]](_0x5b70[13],_0x9dd5xc,_0x9dd5x11[_0x5b70[14]][_0x5b70[22]]);return _0x9dd5xe(_0x9dd5x11[_0x5b70[14]][_0x5b70[22]])}else {logger[_0x5b70[17]](_0x5b70[13],_0x9dd5xc,_0x5b70[16]);_0x9dd5xe(_0x9dd5x11[_0x5b70[23]][_0x5b70[22]])}})[_0x5b70[15]](function(_0x9dd5x10){logger[_0x5b70[14]](_0x5b70[13],_0x9dd5xc,_0x9dd5x10);_0x9dd5xf(_0x9dd5x10)})})}exports[_0x5b70[26]]= function(_0x9dd5xd){var _0x9dd5x12=this;return  new Promise(function(_0x9dd5xe,_0x9dd5xf){return db[_0x5b70[34]][_0x5b70[33]](_0x9dd5xd[_0x5b70[27]],{raw:_0x9dd5xd[_0x5b70[28]]?(_0x9dd5xd[_0x5b70[28]][_0x5b70[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x9dd5xd[_0x5b70[28]]?_0x9dd5xd[_0x5b70[28]][_0x5b70[30]]|| null:null,attributes:_0x9dd5xd[_0x5b70[28]]?_0x9dd5xd[_0x5b70[28]][_0x5b70[31]]|| null:null,limit:_0x9dd5xd[_0x5b70[28]]?_0x9dd5xd[_0x5b70[28]][_0x5b70[32]]|| null:null})[_0x5b70[24]](function(_0x9dd5x11){logger[_0x5b70[17]](_0x5b70[26],_0x9dd5xd);logger[_0x5b70[20]](_0x5b70[26],_0x9dd5xd,JSON[_0x5b70[19]](_0x9dd5x11));_0x9dd5xe(_0x9dd5x11)})[_0x5b70[15]](function(_0x9dd5x10){logger[_0x5b70[14]](_0x5b70[26],_0x9dd5x10[_0x5b70[22]],_0x9dd5xd);_0x9dd5xf(_0x9dd5x12[_0x5b70[14]](500,_0x9dd5x10[_0x5b70[22]]))})})}
\ No newline at end of file
diff --git a/server/api/openchannelDisposition/index.js b/server/api/openchannelDisposition/index.js
new file mode 100644 (file)
index 0000000..595d13d
--- /dev/null
@@ -0,0 +1 @@
+var _0x7fcb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7fcb[0];var multer=require(_0x7fcb[1]);var util=require(_0x7fcb[2]);var path=require(_0x7fcb[3]);var express=require(_0x7fcb[4]);var router=express.Router();var auth=require(_0x7fcb[5]);var config=require(_0x7fcb[6]);var controller=require(_0x7fcb[7]);router[_0x7fcb[11]](_0x7fcb[8],auth[_0x7fcb[9]](),controller[_0x7fcb[10]]);router[_0x7fcb[14]](_0x7fcb[12],auth[_0x7fcb[9]](),controller[_0x7fcb[13]]);router[_0x7fcb[16]](_0x7fcb[8],auth[_0x7fcb[9]](),controller[_0x7fcb[15]]);router[_0x7fcb[18]](_0x7fcb[8],auth[_0x7fcb[9]](),controller[_0x7fcb[17]]);module[_0x7fcb[19]]= router
\ No newline at end of file
diff --git a/server/api/openchannelDisposition/openchannelDisposition.attributes.js b/server/api/openchannelDisposition/openchannelDisposition.attributes.js
new file mode 100644 (file)
index 0000000..3ccb961
--- /dev/null
@@ -0,0 +1 @@
+var _0x51d9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x51d9[0];var Sequelize=require(_0x51d9[1]);module[_0x51d9[2]]= {name:{type:Sequelize[_0x51d9[3]]}}
\ No newline at end of file
diff --git a/server/api/openchannelDisposition/openchannelDisposition.controller.js b/server/api/openchannelDisposition/openchannelDisposition.controller.js
new file mode 100644 (file)
index 0000000..ed213ce
--- /dev/null
@@ -0,0 +1 @@
+var _0x26c0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x26c0[0];var jsonpatch=require(_0x26c0[1]);var rp=require(_0x26c0[2]);var moment=require(_0x26c0[3]);var BPromise=require(_0x26c0[4]);var util=require(_0x26c0[5]);var path=require(_0x26c0[6]);var sox=require(_0x26c0[7]);var ejs=require(_0x26c0[8]);var fs=require(_0x26c0[9]);var _=require(_0x26c0[10]);var squel=require(_0x26c0[11]);var crypto=require(_0x26c0[12]);var jsforce=require(_0x26c0[13]);var toCsv=require(_0x26c0[14]);var qs=require(_0x26c0[15]);var logger=require(_0x26c0[17])(_0x26c0[16]);var utils=require(_0x26c0[18]);var config=require(_0x26c0[19]);var db=require(_0x26c0[21])[_0x26c0[20]];function respondWithStatusCode(_0xc53ex15,_0xc53ex16,_0xc53ex17){_0xc53ex16= _0xc53ex16|| 204;return function(_0xc53ex18){if(_0xc53ex18){logger[_0x26c0[24]](_0x26c0[22],_0xc53ex17,_0xc53ex16,_0x26c0[23]);logger[_0x26c0[26]](_0x26c0[25],_0xc53ex17,_0xc53ex16,_0x26c0[23]);return _0xc53ex15[_0x26c0[27]](_0xc53ex16)};return _0xc53ex15[_0x26c0[29]](304)[_0x26c0[28]]()}}function respondWithResult(_0xc53ex15,_0xc53ex16,_0xc53ex17){_0xc53ex16= _0xc53ex16|| 200;return function(_0xc53ex18){if(_0xc53ex18){logger[_0x26c0[24]](_0x26c0[22],_0xc53ex17,_0xc53ex16,_0x26c0[30]);logger[_0x26c0[26]](_0x26c0[25],_0xc53ex17,_0xc53ex16,_0x26c0[30],JSON[_0x26c0[31]](_0xc53ex18));return _0xc53ex15[_0x26c0[29]](_0xc53ex16)[_0x26c0[32]](_0xc53ex18)};return _0xc53ex15[_0x26c0[29]](304)[_0x26c0[28]]()}}function respondWithFilteredResult(_0xc53ex15,_0xc53ex1b,_0xc53ex17){return function(_0xc53ex18){if(_0xc53ex18){var _0xc53ex1c=_0xc53ex18[_0x26c0[33]],_0xc53ex1d=_0xc53ex1b[_0x26c0[34]],_0xc53ex1e=_0xc53ex1b[_0x26c0[34]]+ _0xc53ex1b[_0x26c0[35]],_0xc53ex16;if(_0xc53ex1e>= _0xc53ex1c){_0xc53ex1e= _0xc53ex1c;_0xc53ex16= 200}else {_0xc53ex16= 206};_0xc53ex15[_0x26c0[29]](_0xc53ex16);logger[_0x26c0[24]](_0x26c0[22],_0xc53ex17,_0xc53ex16,_0x26c0[36]);logger[_0x26c0[26]](_0x26c0[25],_0xc53ex17,_0xc53ex16,_0x26c0[30],JSON[_0x26c0[31]](_0xc53ex18));return _0xc53ex15[_0x26c0[40]](_0x26c0[37],_0xc53ex1d+ _0x26c0[38]+ _0xc53ex1e+ _0x26c0[39]+ _0xc53ex1c)[_0x26c0[32]](_0xc53ex18)};return null}}function patchUpdates(_0xc53ex20){return function(_0xc53ex18){try{jsonpatch[_0x26c0[41]](_0xc53ex18,_0xc53ex20,true)}catch(err){return BPromise[_0x26c0[42]](err)};return _0xc53ex18[_0x26c0[43]]()}}function saveUpdates(_0xc53ex22,_0xc53ex16,_0xc53ex17){return function(_0xc53ex18){if(_0xc53ex18){return _0xc53ex18[_0x26c0[46]](_0xc53ex22)[_0x26c0[45]](function(_0xc53ex23){logger[_0x26c0[24]](_0x26c0[22],_0xc53ex17,_0xc53ex16,_0x26c0[44]);logger[_0x26c0[26]](_0x26c0[25],_0xc53ex17,_0xc53ex16,_0x26c0[44],JSON[_0x26c0[31]](_0xc53ex18));return _0xc53ex23})};return null}}function removeEntity(_0xc53ex15,_0xc53ex16,_0xc53ex17){return function(_0xc53ex18){if(_0xc53ex18){return _0xc53ex18[_0x26c0[48]]()[_0x26c0[45]](function(){logger[_0x26c0[24]](_0x26c0[22],_0xc53ex17,_0xc53ex16,_0x26c0[47]);logger[_0x26c0[26]](_0x26c0[25],_0xc53ex17,_0xc53ex16,_0x26c0[47],JSON[_0x26c0[31]](_0xc53ex18));_0xc53ex15[_0x26c0[29]](204)[_0x26c0[28]]()})}}}function handleEntityNotFound(_0xc53ex15,_0xc53ex16,_0xc53ex17){return function(_0xc53ex18){if(!_0xc53ex18){logger[_0x26c0[50]](_0x26c0[22],_0xc53ex17,404,_0x26c0[49]);_0xc53ex15[_0x26c0[29]](404)[_0x26c0[28]]();return null};return _0xc53ex18}}function handleError(_0xc53ex15,_0xc53ex16,_0xc53ex17){_0xc53ex16= _0xc53ex16|| 500;return function(_0xc53ex27){logger[_0x26c0[50]](_0x26c0[22],_0xc53ex17,_0xc53ex16,JSON[_0x26c0[31]](_0xc53ex27));delete _0xc53ex27[_0x26c0[51]];_0xc53ex15[_0x26c0[29]](_0xc53ex16)[_0x26c0[52]](_0xc53ex27)}}exports[_0x26c0[53]]= function(_0xc53ex28,_0xc53ex15){var _0xc53ex1b={raw:true,where:{id:_0xc53ex28[_0x26c0[55]][_0x26c0[54]]}},_0xc53ex29={};_0xc53ex29[_0x26c0[56]]= _[_0x26c0[59]](db[_0x26c0[58]][_0x26c0[57]]);_0xc53ex29[_0x26c0[60]]= _[_0x26c0[59]](_0xc53ex28[_0x26c0[60]]);_0xc53ex29[_0x26c0[61]]= _[_0x26c0[62]](_0xc53ex29[_0x26c0[56]],_0xc53ex29[_0x26c0[60]]);_0xc53ex1b[_0x26c0[63]]= _[_0x26c0[62]](_0xc53ex29[_0x26c0[56]],qs[_0x26c0[64]](_0xc53ex28[_0x26c0[60]][_0x26c0[64]]));_0xc53ex1b[_0x26c0[63]]= (_0xc53ex1b[_0x26c0[63]][_0x26c0[65]])?_0xc53ex1b[_0x26c0[63]]:_0xc53ex29[_0x26c0[56]];_0xc53ex1b= _[_0x26c0[67]]({},_0xc53ex1b,_0xc53ex28[_0x26c0[66]]);return db[_0x26c0[58]][_0x26c0[69]](_0xc53ex1b)[_0x26c0[45]](handleEntityNotFound(_0xc53ex15,null,_0x26c0[53]))[_0x26c0[45]](respondWithResult(_0xc53ex15,null,_0x26c0[53]))[_0x26c0[68]](handleError(_0xc53ex15,null,_0x26c0[53]))};exports[_0x26c0[70]]= function(_0xc53ex28,_0xc53ex15){return db[_0x26c0[58]][_0x26c0[70]](_0xc53ex28[_0x26c0[71]],{})[_0x26c0[45]](respondWithResult(_0xc53ex15,201,_0x26c0[70]))[_0x26c0[68]](handleError(_0xc53ex15,null,_0x26c0[70]))};exports[_0x26c0[46]]= function(_0xc53ex28,_0xc53ex15){if(_0xc53ex28[_0x26c0[71]][_0x26c0[54]]){delete _0xc53ex28[_0x26c0[71]][_0x26c0[54]]};return db[_0x26c0[58]][_0x26c0[69]]({where:{id:_0xc53ex28[_0x26c0[55]][_0x26c0[54]]}})[_0x26c0[45]](handleEntityNotFound(_0xc53ex15,null,_0x26c0[46]))[_0x26c0[45]](saveUpdates(_0xc53ex28[_0x26c0[71]],null,_0x26c0[46]))[_0x26c0[45]](respondWithResult(_0xc53ex15,null,_0x26c0[46]))[_0x26c0[68]](handleError(_0xc53ex15,null,_0x26c0[46]))};exports[_0x26c0[48]]= function(_0xc53ex28,_0xc53ex15){return db[_0x26c0[58]][_0x26c0[69]]({where:{id:_0xc53ex28[_0x26c0[55]][_0x26c0[54]]}})[_0x26c0[45]](handleEntityNotFound(_0xc53ex15,null,_0x26c0[48]))[_0x26c0[45]](removeEntity(_0xc53ex15,null,_0x26c0[48]))[_0x26c0[68]](handleError(_0xc53ex15,null,_0x26c0[48]))}
\ No newline at end of file
diff --git a/server/api/openchannelDisposition/openchannelDisposition.model.js b/server/api/openchannelDisposition/openchannelDisposition.model.js
new file mode 100644 (file)
index 0000000..6b8c1ed
--- /dev/null
@@ -0,0 +1 @@
+var _0xe2f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xe2f9[0];var _=require(_0xe2f9[1]);var util=require(_0xe2f9[2]);var logger=require(_0xe2f9[4])(_0xe2f9[3]);var attributes=require(_0xe2f9[5]);module[_0xe2f9[6]]= function(_0x32e3x5,_0x32e3x6){return _0x32e3x5[_0xe2f9[9]](_0xe2f9[7],attributes,{tableName:_0xe2f9[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/openchannelDisposition/openchannelDisposition.rpc.js b/server/api/openchannelDisposition/openchannelDisposition.rpc.js
new file mode 100644 (file)
index 0000000..15b7c47
--- /dev/null
@@ -0,0 +1 @@
+var _0xe902=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x55\x70\x64\x61\x74\x65\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E"];_0xe902[0];var _=require(_0xe902[1]);var util=require(_0xe902[2]);var moment=require(_0xe902[3]);var BPromise=require(_0xe902[4]);var db=require(_0xe902[6])[_0xe902[5]];var utils=require(_0xe902[7]);var logger=require(_0xe902[9])(_0xe902[8]);var jayson=require(_0xe902[10]);var client=jayson[_0xe902[12]][_0xe902[11]]({port:9002});function respondWithRpcPromise(_0xc336xb,_0xc336xc,_0xc336xd){return  new BPromise(function(_0xc336xe,_0xc336xf){return client[_0xe902[25]](_0xc336xb,_0xc336xd)[_0xe902[24]](function(_0xc336x11){logger[_0xe902[17]](_0xe902[13],_0xc336xc,_0xe902[16]);logger[_0xe902[20]](_0xe902[18],_0xc336xc,_0xe902[16],JSON[_0xe902[19]](_0xc336x11));if(_0xc336x11[_0xe902[14]]){if(_0xc336x11[_0xe902[14]][_0xe902[21]]=== 500){logger[_0xe902[14]](_0xe902[13],_0xc336xc,_0xc336x11[_0xe902[14]][_0xe902[22]]);return _0xc336xf(_0xc336x11[_0xe902[14]][_0xe902[22]])};logger[_0xe902[14]](_0xe902[13],_0xc336xc,_0xc336x11[_0xe902[14]][_0xe902[22]]);return _0xc336xe(_0xc336x11[_0xe902[14]][_0xe902[22]])}else {logger[_0xe902[17]](_0xe902[13],_0xc336xc,_0xe902[16]);_0xc336xe(_0xc336x11[_0xe902[23]][_0xe902[22]])}})[_0xe902[15]](function(_0xc336x10){logger[_0xe902[14]](_0xe902[13],_0xc336xc,_0xc336x10);_0xc336xf(_0xc336x10)})})}exports[_0xe902[26]]= function(_0xc336xd){var _0xc336x12=this;return  new Promise(function(_0xc336xe,_0xc336xf){return db[_0xe902[34]][_0xe902[33]](_0xc336xd[_0xe902[27]],{raw:_0xc336xd[_0xe902[28]]?(_0xc336xd[_0xe902[28]][_0xe902[29]]=== undefined)?true:false:true,individualHooks:true,where:_0xc336xd[_0xe902[28]]?_0xc336xd[_0xe902[28]][_0xe902[30]]|| null:null,attributes:_0xc336xd[_0xe902[28]]?_0xc336xd[_0xe902[28]][_0xe902[31]]|| null:null,limit:_0xc336xd[_0xe902[28]]?_0xc336xd[_0xe902[28]][_0xe902[32]]|| null:null})[_0xe902[24]](function(_0xc336x11){logger[_0xe902[17]](_0xe902[26],_0xc336xd);logger[_0xe902[20]](_0xe902[26],_0xc336xd,JSON[_0xe902[19]](_0xc336x11));_0xc336xe(_0xc336x11)})[_0xe902[15]](function(_0xc336x10){logger[_0xe902[14]](_0xe902[26],_0xc336x10[_0xe902[22]],_0xc336xd);_0xc336xf(_0xc336x12[_0xe902[14]](500,_0xc336x10[_0xe902[22]]))})})}
\ No newline at end of file
diff --git a/server/api/openchannelInteraction/index.js b/server/api/openchannelInteraction/index.js
new file mode 100644 (file)
index 0000000..ff1699a
--- /dev/null
@@ -0,0 +1 @@
+var _0xddfb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xddfb[0];var multer=require(_0xddfb[1]);var util=require(_0xddfb[2]);var path=require(_0xddfb[3]);var express=require(_0xddfb[4]);var router=express.Router();var auth=require(_0xddfb[5]);var config=require(_0xddfb[6]);var controller=require(_0xddfb[7]);router[_0xddfb[11]](_0xddfb[8],auth[_0xddfb[9]](),controller[_0xddfb[10]]);router[_0xddfb[11]](_0xddfb[12],auth[_0xddfb[9]](),controller[_0xddfb[13]]);router[_0xddfb[11]](_0xddfb[14],auth[_0xddfb[9]](),controller[_0xddfb[15]]);router[_0xddfb[11]](_0xddfb[16],auth[_0xddfb[9]](),controller[_0xddfb[17]]);router[_0xddfb[19]](_0xddfb[8],auth[_0xddfb[9]](),controller[_0xddfb[18]]);router[_0xddfb[19]](_0xddfb[16],auth[_0xddfb[9]](),controller[_0xddfb[20]]);router[_0xddfb[22]](_0xddfb[14],auth[_0xddfb[9]](),controller[_0xddfb[21]]);router[_0xddfb[24]](_0xddfb[14],auth[_0xddfb[9]](),controller[_0xddfb[23]]);module[_0xddfb[25]]= router
\ No newline at end of file
diff --git a/server/api/openchannelInteraction/openchannelInteraction.attributes.js b/server/api/openchannelInteraction/openchannelInteraction.attributes.js
new file mode 100644 (file)
index 0000000..be05538
--- /dev/null
@@ -0,0 +1 @@
+var _0x43aa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x43\x4C\x4F\x53\x45\x44","\x73\x74\x61\x74\x75\x73","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x72\x72\x69\x76\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6C\x6F\x73\x65\x64\x41\x74","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x44\x41\x54\x45","\x54\x45\x58\x54","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x43aa[0];var Sequelize=require(_0x43aa[1]);var moment=require(_0x43aa[2]);module[_0x43aa[3]]= {contact:{type:Sequelize[_0x43aa[4]]},openchannelIn:{type:Sequelize[_0x43aa[5]],defaultValue:0},openchannelOut:{type:Sequelize[_0x43aa[5]],defaultValue:0},status:{type:Sequelize.ENUM(_0x43aa[6],_0x43aa[7],_0x43aa[8],_0x43aa[9]),defaultValue:_0x43aa[6],set:function(_0x51b2x3){this[_0x43aa[11]](_0x43aa[10],_0x51b2x3);switch(_0x51b2x3){case _0x43aa[6]:this[_0x43aa[11]](_0x43aa[12],moment()[_0x43aa[14]](_0x43aa[13]));break;case _0x43aa[9]:this[_0x43aa[11]](_0x43aa[15],moment()[_0x43aa[14]](_0x43aa[13]));break;default:}}},lastEvent:{type:Sequelize.ENUM(_0x43aa[16],_0x43aa[17],_0x43aa[18],_0x43aa[19],_0x43aa[20])},lastEventAt:{type:Sequelize[_0x43aa[21]]},tags:{type:Sequelize[_0x43aa[22]],get:function(){var _0x51b2x4;if(this[_0x43aa[24]](_0x43aa[23])){_0x51b2x4= this[_0x43aa[24]](_0x43aa[23])[_0x43aa[26]](_0x43aa[25]);_0x51b2x4[_0x43aa[27]]()}else {_0x51b2x4= []};return _0x51b2x4},set:function(_0x51b2x5){this[_0x43aa[11]](_0x43aa[23],_0x51b2x5&& _0x51b2x5[_0x43aa[28]]?_0x51b2x5[_0x43aa[29]](_0x43aa[25])+ _0x43aa[25]:null)}},disposition:{type:Sequelize[_0x43aa[4]]},ParentId:{type:Sequelize[_0x43aa[5]]},waiting:{type:Sequelize[_0x43aa[30]],defaultValue:false},openReason:{type:Sequelize[_0x43aa[4]]},arrivedAt:{type:Sequelize[_0x43aa[21]]},closedAt:{type:Sequelize[_0x43aa[21]]}}
\ No newline at end of file
diff --git a/server/api/openchannelInteraction/openchannelInteraction.controller.js b/server/api/openchannelInteraction/openchannelInteraction.controller.js
new file mode 100644 (file)
index 0000000..154d0a4
--- /dev/null
@@ -0,0 +1 @@
+var _0x631a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x631a[0];var jsonpatch=require(_0x631a[1]);var rp=require(_0x631a[2]);var moment=require(_0x631a[3]);var BPromise=require(_0x631a[4]);var util=require(_0x631a[5]);var path=require(_0x631a[6]);var sox=require(_0x631a[7]);var ejs=require(_0x631a[8]);var fs=require(_0x631a[9]);var _=require(_0x631a[10]);var squel=require(_0x631a[11]);var crypto=require(_0x631a[12]);var jsforce=require(_0x631a[13]);var toCsv=require(_0x631a[14]);var qs=require(_0x631a[15]);var logger=require(_0x631a[17])(_0x631a[16]);var utils=require(_0x631a[18]);var config=require(_0x631a[19]);var db=require(_0x631a[21])[_0x631a[20]];function respondWithStatusCode(_0x7ef0x15,_0x7ef0x16,_0x7ef0x17){_0x7ef0x16= _0x7ef0x16|| 204;return function(_0x7ef0x18){if(_0x7ef0x18){logger[_0x631a[24]](_0x631a[22],_0x7ef0x17,_0x7ef0x16,_0x631a[23]);logger[_0x631a[26]](_0x631a[25],_0x7ef0x17,_0x7ef0x16,_0x631a[23]);return _0x7ef0x15[_0x631a[27]](_0x7ef0x16)};return _0x7ef0x15[_0x631a[29]](304)[_0x631a[28]]()}}function respondWithResult(_0x7ef0x15,_0x7ef0x16,_0x7ef0x17){_0x7ef0x16= _0x7ef0x16|| 200;return function(_0x7ef0x18){if(_0x7ef0x18){logger[_0x631a[24]](_0x631a[22],_0x7ef0x17,_0x7ef0x16,_0x631a[30]);logger[_0x631a[26]](_0x631a[25],_0x7ef0x17,_0x7ef0x16,_0x631a[30],JSON[_0x631a[31]](_0x7ef0x18));return _0x7ef0x15[_0x631a[29]](_0x7ef0x16)[_0x631a[32]](_0x7ef0x18)};return _0x7ef0x15[_0x631a[29]](304)[_0x631a[28]]()}}function respondWithFilteredResult(_0x7ef0x15,_0x7ef0x1b,_0x7ef0x17){return function(_0x7ef0x18){if(_0x7ef0x18){var _0x7ef0x1c=_0x7ef0x18[_0x631a[33]],_0x7ef0x1d=_0x7ef0x1b[_0x631a[34]],_0x7ef0x1e=_0x7ef0x1b[_0x631a[34]]+ _0x7ef0x1b[_0x631a[35]],_0x7ef0x16;if(_0x7ef0x1e>= _0x7ef0x1c){_0x7ef0x1e= _0x7ef0x1c;_0x7ef0x16= 200}else {_0x7ef0x16= 206};_0x7ef0x15[_0x631a[29]](_0x7ef0x16);logger[_0x631a[24]](_0x631a[22],_0x7ef0x17,_0x7ef0x16,_0x631a[36]);logger[_0x631a[26]](_0x631a[25],_0x7ef0x17,_0x7ef0x16,_0x631a[30],JSON[_0x631a[31]](_0x7ef0x18));return _0x7ef0x15[_0x631a[40]](_0x631a[37],_0x7ef0x1d+ _0x631a[38]+ _0x7ef0x1e+ _0x631a[39]+ _0x7ef0x1c)[_0x631a[32]](_0x7ef0x18)};return null}}function patchUpdates(_0x7ef0x20){return function(_0x7ef0x18){try{jsonpatch[_0x631a[41]](_0x7ef0x18,_0x7ef0x20,true)}catch(err){return BPromise[_0x631a[42]](err)};return _0x7ef0x18[_0x631a[43]]()}}function saveUpdates(_0x7ef0x22,_0x7ef0x16,_0x7ef0x17){return function(_0x7ef0x18){if(_0x7ef0x18){return _0x7ef0x18[_0x631a[46]](_0x7ef0x22)[_0x631a[45]](function(_0x7ef0x23){logger[_0x631a[24]](_0x631a[22],_0x7ef0x17,_0x7ef0x16,_0x631a[44]);logger[_0x631a[26]](_0x631a[25],_0x7ef0x17,_0x7ef0x16,_0x631a[44],JSON[_0x631a[31]](_0x7ef0x18));return _0x7ef0x23})};return null}}function removeEntity(_0x7ef0x15,_0x7ef0x16,_0x7ef0x17){return function(_0x7ef0x18){if(_0x7ef0x18){return _0x7ef0x18[_0x631a[48]]()[_0x631a[45]](function(){logger[_0x631a[24]](_0x631a[22],_0x7ef0x17,_0x7ef0x16,_0x631a[47]);logger[_0x631a[26]](_0x631a[25],_0x7ef0x17,_0x7ef0x16,_0x631a[47],JSON[_0x631a[31]](_0x7ef0x18));_0x7ef0x15[_0x631a[29]](204)[_0x631a[28]]()})}}}function handleEntityNotFound(_0x7ef0x15,_0x7ef0x16,_0x7ef0x17){return function(_0x7ef0x18){if(!_0x7ef0x18){logger[_0x631a[50]](_0x631a[22],_0x7ef0x17,404,_0x631a[49]);_0x7ef0x15[_0x631a[29]](404)[_0x631a[28]]();return null};return _0x7ef0x18}}function handleError(_0x7ef0x15,_0x7ef0x16,_0x7ef0x17){_0x7ef0x16= _0x7ef0x16|| 500;return function(_0x7ef0x27){logger[_0x631a[50]](_0x631a[22],_0x7ef0x17,_0x7ef0x16,JSON[_0x631a[31]](_0x7ef0x27));delete _0x7ef0x27[_0x631a[51]];_0x7ef0x15[_0x631a[29]](_0x7ef0x16)[_0x631a[52]](_0x7ef0x27)}}exports[_0x631a[53]]= function(_0x7ef0x28,_0x7ef0x15){var _0x7ef0x1b={},_0x7ef0x29={};_0x7ef0x29[_0x631a[54]]= _[_0x631a[57]](db[_0x631a[56]][_0x631a[55]]);_0x7ef0x29[_0x631a[58]]= _[_0x631a[57]](_0x7ef0x28[_0x631a[58]]);_0x7ef0x29[_0x631a[59]]= _[_0x631a[60]](_0x7ef0x29[_0x631a[54]],_0x7ef0x29[_0x631a[58]]);_0x7ef0x1b[_0x631a[61]]= _[_0x631a[60]](_0x7ef0x29[_0x631a[54]],qs[_0x631a[62]](_0x7ef0x28[_0x631a[58]][_0x631a[62]]));_0x7ef0x1b[_0x631a[61]]= (_0x7ef0x1b[_0x631a[61]][_0x631a[63]])?_0x7ef0x1b[_0x631a[61]]:_0x7ef0x29[_0x631a[54]];if(!_0x7ef0x28[_0x631a[58]][_0x631a[65]](_0x631a[64])){_0x7ef0x1b[_0x631a[35]]= qs[_0x631a[35]](_0x7ef0x28[_0x631a[58]][_0x631a[35]]);_0x7ef0x1b[_0x631a[34]]= qs[_0x631a[34]](_0x7ef0x28[_0x631a[58]][_0x631a[34]])};_0x7ef0x1b[_0x631a[66]]= qs[_0x631a[67]](_0x7ef0x28[_0x631a[58]][_0x631a[67]]);_0x7ef0x1b[_0x631a[68]]= qs[_0x631a[59]](_[_0x631a[69]](_0x7ef0x28[_0x631a[58]],_0x7ef0x29[_0x631a[59]]));if(_0x7ef0x28[_0x631a[58]][_0x631a[70]]){_0x7ef0x1b[_0x631a[68]]= _[_0x631a[73]](_0x7ef0x1b[_0x631a[68]],{$or:_[_0x631a[72]](_0x7ef0x1b[_0x631a[61]],function(_0x7ef0x2a){var _0x7ef0x2b={};_0x7ef0x2b[_0x7ef0x2a]= {$like:_0x631a[71]+ _0x7ef0x28[_0x631a[58]][_0x631a[70]]+ _0x631a[71]};return _0x7ef0x2b})})};_0x7ef0x1b= _[_0x631a[73]]({},_0x7ef0x1b,_0x7ef0x28[_0x631a[74]]);return db[_0x631a[56]][_0x631a[76]](_0x7ef0x1b)[_0x631a[45]](respondWithFilteredResult(_0x7ef0x15,_0x7ef0x1b,_0x631a[53]))[_0x631a[75]](handleError(_0x7ef0x15,null,_0x631a[53]))};exports[_0x631a[77]]= function(_0x7ef0x28,_0x7ef0x15){var _0x7ef0x1b={raw:false,where:{id:_0x7ef0x28[_0x631a[79]][_0x631a[78]]}},_0x7ef0x29={};_0x7ef0x29[_0x631a[54]]= _[_0x631a[57]](db[_0x631a[56]][_0x631a[55]]);_0x7ef0x29[_0x631a[58]]= _[_0x631a[57]](_0x7ef0x28[_0x631a[58]]);_0x7ef0x29[_0x631a[59]]= _[_0x631a[60]](_0x7ef0x29[_0x631a[54]],_0x7ef0x29[_0x631a[58]]);_0x7ef0x1b[_0x631a[61]]= _[_0x631a[60]](_0x7ef0x29[_0x631a[54]],qs[_0x631a[62]](_0x7ef0x28[_0x631a[58]][_0x631a[62]]));_0x7ef0x1b[_0x631a[61]]= (_0x7ef0x1b[_0x631a[61]][_0x631a[63]])?_0x7ef0x1b[_0x631a[61]]:_0x7ef0x29[_0x631a[54]];_0x7ef0x1b= _[_0x631a[73]]({},_0x7ef0x1b,_0x7ef0x28[_0x631a[74]]);return db[_0x631a[56]][_0x631a[80]](_0x7ef0x1b)[_0x631a[45]](handleEntityNotFound(_0x7ef0x15,null,_0x631a[77]))[_0x631a[45]](respondWithResult(_0x7ef0x15,null,_0x631a[77]))[_0x631a[75]](handleError(_0x7ef0x15,null,_0x631a[77]))};exports[_0x631a[81]]= function(_0x7ef0x28,_0x7ef0x15){return db[_0x631a[56]][_0x631a[81]](_0x7ef0x28[_0x631a[82]],{})[_0x631a[45]](respondWithResult(_0x7ef0x15,201,_0x631a[81]))[_0x631a[75]](handleError(_0x7ef0x15,null,_0x631a[81]))};exports[_0x631a[46]]= function(_0x7ef0x28,_0x7ef0x15){if(_0x7ef0x28[_0x631a[82]][_0x631a[78]]){delete _0x7ef0x28[_0x631a[82]][_0x631a[78]]};return db[_0x631a[56]][_0x631a[80]]({where:{id:_0x7ef0x28[_0x631a[79]][_0x631a[78]]}})[_0x631a[45]](handleEntityNotFound(_0x7ef0x15,null,_0x631a[46]))[_0x631a[45]](saveUpdates(_0x7ef0x28[_0x631a[82]],null,_0x631a[46]))[_0x631a[45]](respondWithResult(_0x7ef0x15,null,_0x631a[46]))[_0x631a[75]](handleError(_0x7ef0x15,null,_0x631a[46]))};exports[_0x631a[48]]= function(_0x7ef0x28,_0x7ef0x15){return db[_0x631a[56]][_0x631a[80]]({where:{id:_0x7ef0x28[_0x631a[79]][_0x631a[78]]}})[_0x631a[45]](handleEntityNotFound(_0x7ef0x15,null,_0x631a[48]))[_0x631a[45]](removeEntity(_0x7ef0x15,null,_0x631a[48]))[_0x631a[75]](handleError(_0x7ef0x15,null,_0x631a[48]))};exports[_0x631a[83]]= function(_0x7ef0x28,_0x7ef0x15){return db[_0x631a[56]][_0x631a[83]]()[_0x631a[45]](respondWithResult(_0x7ef0x15,null,_0x631a[83]))[_0x631a[75]](handleError(_0x7ef0x15,null,_0x631a[83]))};exports[_0x631a[84]]= function(_0x7ef0x28,_0x7ef0x15,_0x7ef0x2c){return db[_0x631a[87]][_0x631a[80]]({where:{id:_0x7ef0x28[_0x631a[79]][_0x631a[78]]}})[_0x631a[45]](handleEntityNotFound(_0x7ef0x15,null,_0x631a[84]))[_0x631a[45]](function(_0x7ef0x18){if(_0x7ef0x18){return _0x7ef0x18[_0x631a[84]](_0x7ef0x28[_0x631a[82]][_0x631a[85]],_[_0x631a[86]](_0x7ef0x28[_0x631a[82]],[_0x631a[85],_0x631a[78]])|| {})};return null})[_0x631a[45]](respondWithResult(_0x7ef0x15,null,_0x631a[84]))[_0x631a[75]](handleError(_0x7ef0x15,null,_0x631a[84]))};exports[_0x631a[88]]= function(_0x7ef0x28,_0x7ef0x18,_0x7ef0x2c){var _0x7ef0x1b={};var _0x7ef0x29={};var _0x7ef0x2d;var _0x7ef0x1c;return db[_0x631a[56]][_0x631a[89]]({where:{id:_0x7ef0x28[_0x631a[79]][_0x631a[78]]}})[_0x631a[45]](handleEntityNotFound(_0x7ef0x18,null,_0x631a[88]))[_0x631a[45]](function(_0x7ef0x18){if(_0x7ef0x18){_0x7ef0x2d= _0x7ef0x18;_0x7ef0x29[_0x631a[54]]= _[_0x631a[57]](db[_0x631a[87]][_0x631a[55]]);_0x7ef0x29[_0x631a[58]]= _[_0x631a[57]](_0x7ef0x28[_0x631a[58]]);_0x7ef0x29[_0x631a[59]]= _[_0x631a[60]](_0x7ef0x29[_0x631a[54]],_0x7ef0x29[_0x631a[58]]);_0x7ef0x1b[_0x631a[61]]= _[_0x631a[60]](_0x7ef0x29[_0x631a[54]],qs[_0x631a[62]](_0x7ef0x28[_0x631a[58]][_0x631a[62]]));_0x7ef0x1b[_0x631a[61]]= (_0x7ef0x1b[_0x631a[61]][_0x631a[63]])?_0x7ef0x1b[_0x631a[61]]:_0x7ef0x29[_0x631a[54]];_0x7ef0x1b[_0x631a[66]]= qs[_0x631a[67]](_0x7ef0x28[_0x631a[58]][_0x631a[67]]);_0x7ef0x1b[_0x631a[68]]= qs[_0x631a[59]](_[_0x631a[69]](_0x7ef0x28[_0x631a[58]],_0x7ef0x29[_0x631a[59]]));if(_0x7ef0x28[_0x631a[58]][_0x631a[70]]){_0x7ef0x1b[_0x631a[68]]= _[_0x631a[73]](_0x7ef0x1b[_0x631a[68]],{$or:_[_0x631a[72]](_0x7ef0x1b[_0x631a[61]],function(_0x7ef0x2a){var _0x7ef0x2b={};_0x7ef0x2b[_0x7ef0x2a]= {$like:_0x631a[71]+ _0x7ef0x28[_0x631a[58]][_0x631a[70]]+ _0x631a[71]};return _0x7ef0x2b})})};_0x7ef0x1b= _[_0x631a[73]]({},_0x7ef0x1b,_0x7ef0x28[_0x631a[74]]);return _0x7ef0x2d[_0x631a[88]](_0x7ef0x1b)}})[_0x631a[45]](function(_0x7ef0x2f){if(_0x7ef0x2f){_0x7ef0x1c= _0x7ef0x2f[_0x631a[63]];if(!_0x7ef0x28[_0x631a[58]][_0x631a[65]](_0x631a[64])){_0x7ef0x1b[_0x631a[35]]= qs[_0x631a[35]](_0x7ef0x28[_0x631a[58]][_0x631a[35]]);_0x7ef0x1b[_0x631a[34]]= qs[_0x631a[34]](_0x7ef0x28[_0x631a[58]][_0x631a[34]])};return _0x7ef0x2d[_0x631a[88]](_0x7ef0x1b)}})[_0x631a[45]](function(_0x7ef0x2e){return _0x7ef0x2e?{count:_0x7ef0x1c,rows:_0x7ef0x2e}:null})[_0x631a[45]](respondWithResult(_0x7ef0x18,null,_0x631a[88]))[_0x631a[75]](handleError(_0x7ef0x18,null,_0x631a[88]))}
\ No newline at end of file
diff --git a/server/api/openchannelInteraction/openchannelInteraction.model.js b/server/api/openchannelInteraction/openchannelInteraction.model.js
new file mode 100644 (file)
index 0000000..d85a014
--- /dev/null
@@ -0,0 +1 @@
+var _0x2cb5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x2cb5[0];var _=require(_0x2cb5[1]);var util=require(_0x2cb5[2]);var logger=require(_0x2cb5[4])(_0x2cb5[3]);var attributes=require(_0x2cb5[5]);module[_0x2cb5[6]]= function(_0xfa93x5,_0xfa93x6){return _0xfa93x5[_0x2cb5[9]](_0x2cb5[7],attributes,{tableName:_0x2cb5[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/openchannelInteraction/openchannelInteraction.rpc.js b/server/api/openchannelInteraction/openchannelInteraction.rpc.js
new file mode 100644 (file)
index 0000000..8c2363b
--- /dev/null
@@ -0,0 +1 @@
+var _0xfc27=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xfc27[0];var _=require(_0xfc27[1]);var util=require(_0xfc27[2]);var moment=require(_0xfc27[3]);var BPromise=require(_0xfc27[4]);var db=require(_0xfc27[6])[_0xfc27[5]];var utils=require(_0xfc27[7]);var logger=require(_0xfc27[9])(_0xfc27[8]);var jayson=require(_0xfc27[10]);var client=jayson[_0xfc27[12]][_0xfc27[11]]({port:9002});function respondWithRpcPromise(_0xbf93xb,_0xbf93xc,_0xbf93xd){return  new BPromise(function(_0xbf93xe,_0xbf93xf){return client[_0xfc27[25]](_0xbf93xb,_0xbf93xd)[_0xfc27[24]](function(_0xbf93x11){logger[_0xfc27[17]](_0xfc27[13],_0xbf93xc,_0xfc27[16]);logger[_0xfc27[20]](_0xfc27[18],_0xbf93xc,_0xfc27[16],JSON[_0xfc27[19]](_0xbf93x11));if(_0xbf93x11[_0xfc27[14]]){if(_0xbf93x11[_0xfc27[14]][_0xfc27[21]]=== 500){logger[_0xfc27[14]](_0xfc27[13],_0xbf93xc,_0xbf93x11[_0xfc27[14]][_0xfc27[22]]);return _0xbf93xf(_0xbf93x11[_0xfc27[14]][_0xfc27[22]])};logger[_0xfc27[14]](_0xfc27[13],_0xbf93xc,_0xbf93x11[_0xfc27[14]][_0xfc27[22]]);return _0xbf93xe(_0xbf93x11[_0xfc27[14]][_0xfc27[22]])}else {logger[_0xfc27[17]](_0xfc27[13],_0xbf93xc,_0xfc27[16]);_0xbf93xe(_0xbf93x11[_0xfc27[23]][_0xfc27[22]])}})[_0xfc27[15]](function(_0xbf93x10){logger[_0xfc27[14]](_0xfc27[13],_0xbf93xc,_0xbf93x10);_0xbf93xf(_0xbf93x10)})})}
\ No newline at end of file
diff --git a/server/api/openchannelMessage/index.js b/server/api/openchannelMessage/index.js
new file mode 100644 (file)
index 0000000..02822a8
--- /dev/null
@@ -0,0 +1 @@
+var _0xc50c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc50c[0];var multer=require(_0xc50c[1]);var util=require(_0xc50c[2]);var path=require(_0xc50c[3]);var express=require(_0xc50c[4]);var router=express.Router();var auth=require(_0xc50c[5]);var config=require(_0xc50c[6]);var controller=require(_0xc50c[7]);router[_0xc50c[11]](_0xc50c[8],auth[_0xc50c[9]](),controller[_0xc50c[10]]);router[_0xc50c[11]](_0xc50c[12],auth[_0xc50c[9]](),controller[_0xc50c[13]]);router[_0xc50c[11]](_0xc50c[14],auth[_0xc50c[9]](),controller[_0xc50c[15]]);router[_0xc50c[17]](_0xc50c[8],auth[_0xc50c[9]](),controller[_0xc50c[16]]);router[_0xc50c[19]](_0xc50c[14],auth[_0xc50c[9]](),controller[_0xc50c[18]]);router[_0xc50c[21]](_0xc50c[14],auth[_0xc50c[9]](),controller[_0xc50c[20]]);module[_0xc50c[22]]= router
\ No newline at end of file
diff --git a/server/api/openchannelMessage/openchannelMessage.attributes.js b/server/api/openchannelMessage/openchannelMessage.attributes.js
new file mode 100644 (file)
index 0000000..8748d16
--- /dev/null
@@ -0,0 +1 @@
+var _0x729b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42","\x62\x6F\x64\x79","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x45\x4E\x44\x49\x4E\x47","\x54\x45\x58\x54"];_0x729b[0];var Sequelize=require(_0x729b[1]);var _=require(_0x729b[2]);module[_0x729b[3]]= {from:{type:Sequelize[_0x729b[4]]},to:{type:Sequelize[_0x729b[4]]},body:{type:Sequelize[_0x729b[5]],get:function(){return this[_0x729b[7]](_0x729b[6]).toString()}},status:{type:Sequelize[_0x729b[4]],defaultValue:_0x729b[8]},res_data:{type:Sequelize[_0x729b[9]]},name:{type:Sequelize[_0x729b[4]]},phone:{type:Sequelize[_0x729b[4]]},email:{type:Sequelize[_0x729b[4]],validate:{isEmail:true}}}
\ No newline at end of file
diff --git a/server/api/openchannelMessage/openchannelMessage.controller.js b/server/api/openchannelMessage/openchannelMessage.controller.js
new file mode 100644 (file)
index 0000000..8991b88
--- /dev/null
@@ -0,0 +1 @@
+var _0xdb02=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xdb02[0];var jsonpatch=require(_0xdb02[1]);var rp=require(_0xdb02[2]);var moment=require(_0xdb02[3]);var BPromise=require(_0xdb02[4]);var util=require(_0xdb02[5]);var path=require(_0xdb02[6]);var sox=require(_0xdb02[7]);var ejs=require(_0xdb02[8]);var fs=require(_0xdb02[9]);var _=require(_0xdb02[10]);var squel=require(_0xdb02[11]);var crypto=require(_0xdb02[12]);var jsforce=require(_0xdb02[13]);var toCsv=require(_0xdb02[14]);var qs=require(_0xdb02[15]);var logger=require(_0xdb02[17])(_0xdb02[16]);var utils=require(_0xdb02[18]);var config=require(_0xdb02[19]);var db=require(_0xdb02[21])[_0xdb02[20]];function respondWithStatusCode(_0xcafex15,_0xcafex16,_0xcafex17){_0xcafex16= _0xcafex16|| 204;return function(_0xcafex18){if(_0xcafex18){logger[_0xdb02[24]](_0xdb02[22],_0xcafex17,_0xcafex16,_0xdb02[23]);logger[_0xdb02[26]](_0xdb02[25],_0xcafex17,_0xcafex16,_0xdb02[23]);return _0xcafex15[_0xdb02[27]](_0xcafex16)};return _0xcafex15[_0xdb02[29]](304)[_0xdb02[28]]()}}function respondWithResult(_0xcafex15,_0xcafex16,_0xcafex17){_0xcafex16= _0xcafex16|| 200;return function(_0xcafex18){if(_0xcafex18){logger[_0xdb02[24]](_0xdb02[22],_0xcafex17,_0xcafex16,_0xdb02[30]);logger[_0xdb02[26]](_0xdb02[25],_0xcafex17,_0xcafex16,_0xdb02[30],JSON[_0xdb02[31]](_0xcafex18));return _0xcafex15[_0xdb02[29]](_0xcafex16)[_0xdb02[32]](_0xcafex18)};return _0xcafex15[_0xdb02[29]](304)[_0xdb02[28]]()}}function respondWithFilteredResult(_0xcafex15,_0xcafex1b,_0xcafex17){return function(_0xcafex18){if(_0xcafex18){var _0xcafex1c=_0xcafex18[_0xdb02[33]],_0xcafex1d=_0xcafex1b[_0xdb02[34]],_0xcafex1e=_0xcafex1b[_0xdb02[34]]+ _0xcafex1b[_0xdb02[35]],_0xcafex16;if(_0xcafex1e>= _0xcafex1c){_0xcafex1e= _0xcafex1c;_0xcafex16= 200}else {_0xcafex16= 206};_0xcafex15[_0xdb02[29]](_0xcafex16);logger[_0xdb02[24]](_0xdb02[22],_0xcafex17,_0xcafex16,_0xdb02[36]);logger[_0xdb02[26]](_0xdb02[25],_0xcafex17,_0xcafex16,_0xdb02[30],JSON[_0xdb02[31]](_0xcafex18));return _0xcafex15[_0xdb02[40]](_0xdb02[37],_0xcafex1d+ _0xdb02[38]+ _0xcafex1e+ _0xdb02[39]+ _0xcafex1c)[_0xdb02[32]](_0xcafex18)};return null}}function patchUpdates(_0xcafex20){return function(_0xcafex18){try{jsonpatch[_0xdb02[41]](_0xcafex18,_0xcafex20,true)}catch(err){return BPromise[_0xdb02[42]](err)};return _0xcafex18[_0xdb02[43]]()}}function saveUpdates(_0xcafex22,_0xcafex16,_0xcafex17){return function(_0xcafex18){if(_0xcafex18){return _0xcafex18[_0xdb02[46]](_0xcafex22)[_0xdb02[45]](function(_0xcafex23){logger[_0xdb02[24]](_0xdb02[22],_0xcafex17,_0xcafex16,_0xdb02[44]);logger[_0xdb02[26]](_0xdb02[25],_0xcafex17,_0xcafex16,_0xdb02[44],JSON[_0xdb02[31]](_0xcafex18));return _0xcafex23})};return null}}function removeEntity(_0xcafex15,_0xcafex16,_0xcafex17){return function(_0xcafex18){if(_0xcafex18){return _0xcafex18[_0xdb02[48]]()[_0xdb02[45]](function(){logger[_0xdb02[24]](_0xdb02[22],_0xcafex17,_0xcafex16,_0xdb02[47]);logger[_0xdb02[26]](_0xdb02[25],_0xcafex17,_0xcafex16,_0xdb02[47],JSON[_0xdb02[31]](_0xcafex18));_0xcafex15[_0xdb02[29]](204)[_0xdb02[28]]()})}}}function handleEntityNotFound(_0xcafex15,_0xcafex16,_0xcafex17){return function(_0xcafex18){if(!_0xcafex18){logger[_0xdb02[50]](_0xdb02[22],_0xcafex17,404,_0xdb02[49]);_0xcafex15[_0xdb02[29]](404)[_0xdb02[28]]();return null};return _0xcafex18}}function handleError(_0xcafex15,_0xcafex16,_0xcafex17){_0xcafex16= _0xcafex16|| 500;return function(_0xcafex27){logger[_0xdb02[50]](_0xdb02[22],_0xcafex17,_0xcafex16,JSON[_0xdb02[31]](_0xcafex27));delete _0xcafex27[_0xdb02[51]];_0xcafex15[_0xdb02[29]](_0xcafex16)[_0xdb02[52]](_0xcafex27)}}exports[_0xdb02[53]]= function(_0xcafex28,_0xcafex15){var _0xcafex1b={},_0xcafex29={};_0xcafex29[_0xdb02[54]]= _[_0xdb02[57]](db[_0xdb02[56]][_0xdb02[55]]);_0xcafex29[_0xdb02[58]]= _[_0xdb02[57]](_0xcafex28[_0xdb02[58]]);_0xcafex29[_0xdb02[59]]= _[_0xdb02[60]](_0xcafex29[_0xdb02[54]],_0xcafex29[_0xdb02[58]]);_0xcafex1b[_0xdb02[61]]= _[_0xdb02[60]](_0xcafex29[_0xdb02[54]],qs[_0xdb02[62]](_0xcafex28[_0xdb02[58]][_0xdb02[62]]));_0xcafex1b[_0xdb02[61]]= (_0xcafex1b[_0xdb02[61]][_0xdb02[63]])?_0xcafex1b[_0xdb02[61]]:_0xcafex29[_0xdb02[54]];if(!_0xcafex28[_0xdb02[58]][_0xdb02[65]](_0xdb02[64])){_0xcafex1b[_0xdb02[35]]= qs[_0xdb02[35]](_0xcafex28[_0xdb02[58]][_0xdb02[35]]);_0xcafex1b[_0xdb02[34]]= qs[_0xdb02[34]](_0xcafex28[_0xdb02[58]][_0xdb02[34]])};_0xcafex1b[_0xdb02[66]]= qs[_0xdb02[67]](_0xcafex28[_0xdb02[58]][_0xdb02[67]]);_0xcafex1b[_0xdb02[68]]= qs[_0xdb02[59]](_[_0xdb02[69]](_0xcafex28[_0xdb02[58]],_0xcafex29[_0xdb02[59]]));if(_0xcafex28[_0xdb02[58]][_0xdb02[70]]){_0xcafex1b[_0xdb02[68]]= _[_0xdb02[73]](_0xcafex1b[_0xdb02[68]],{$or:_[_0xdb02[72]](_0xcafex1b[_0xdb02[61]],function(_0xcafex2a){var _0xcafex2b={};_0xcafex2b[_0xcafex2a]= {$like:_0xdb02[71]+ _0xcafex28[_0xdb02[58]][_0xdb02[70]]+ _0xdb02[71]};return _0xcafex2b})})};_0xcafex1b= _[_0xdb02[73]]({},_0xcafex1b,_0xcafex28[_0xdb02[74]]);return db[_0xdb02[56]][_0xdb02[76]](_0xcafex1b)[_0xdb02[45]](respondWithFilteredResult(_0xcafex15,_0xcafex1b,_0xdb02[53]))[_0xdb02[75]](handleError(_0xcafex15,null,_0xdb02[53]))};exports[_0xdb02[77]]= function(_0xcafex28,_0xcafex15){var _0xcafex1b={raw:true,where:{id:_0xcafex28[_0xdb02[79]][_0xdb02[78]]}},_0xcafex29={};_0xcafex29[_0xdb02[54]]= _[_0xdb02[57]](db[_0xdb02[56]][_0xdb02[55]]);_0xcafex29[_0xdb02[58]]= _[_0xdb02[57]](_0xcafex28[_0xdb02[58]]);_0xcafex29[_0xdb02[59]]= _[_0xdb02[60]](_0xcafex29[_0xdb02[54]],_0xcafex29[_0xdb02[58]]);_0xcafex1b[_0xdb02[61]]= _[_0xdb02[60]](_0xcafex29[_0xdb02[54]],qs[_0xdb02[62]](_0xcafex28[_0xdb02[58]][_0xdb02[62]]));_0xcafex1b[_0xdb02[61]]= (_0xcafex1b[_0xdb02[61]][_0xdb02[63]])?_0xcafex1b[_0xdb02[61]]:_0xcafex29[_0xdb02[54]];_0xcafex1b= _[_0xdb02[73]]({},_0xcafex1b,_0xcafex28[_0xdb02[74]]);return db[_0xdb02[56]][_0xdb02[80]](_0xcafex1b)[_0xdb02[45]](handleEntityNotFound(_0xcafex15,null,_0xdb02[77]))[_0xdb02[45]](respondWithResult(_0xcafex15,null,_0xdb02[77]))[_0xdb02[75]](handleError(_0xcafex15,null,_0xdb02[77]))};exports[_0xdb02[81]]= function(_0xcafex28,_0xcafex15){return db[_0xdb02[56]][_0xdb02[81]](_0xcafex28[_0xdb02[82]],{})[_0xdb02[45]](respondWithResult(_0xcafex15,201,_0xdb02[81]))[_0xdb02[75]](handleError(_0xcafex15,null,_0xdb02[81]))};exports[_0xdb02[46]]= function(_0xcafex28,_0xcafex15){if(_0xcafex28[_0xdb02[82]][_0xdb02[78]]){delete _0xcafex28[_0xdb02[82]][_0xdb02[78]]};return db[_0xdb02[56]][_0xdb02[80]]({where:{id:_0xcafex28[_0xdb02[79]][_0xdb02[78]]}})[_0xdb02[45]](handleEntityNotFound(_0xcafex15,null,_0xdb02[46]))[_0xdb02[45]](saveUpdates(_0xcafex28[_0xdb02[82]],null,_0xdb02[46]))[_0xdb02[45]](respondWithResult(_0xcafex15,null,_0xdb02[46]))[_0xdb02[75]](handleError(_0xcafex15,null,_0xdb02[46]))};exports[_0xdb02[48]]= function(_0xcafex28,_0xcafex15){return db[_0xdb02[56]][_0xdb02[80]]({where:{id:_0xcafex28[_0xdb02[79]][_0xdb02[78]]}})[_0xdb02[45]](handleEntityNotFound(_0xcafex15,null,_0xdb02[48]))[_0xdb02[45]](removeEntity(_0xcafex15,null,_0xdb02[48]))[_0xdb02[75]](handleError(_0xcafex15,null,_0xdb02[48]))};exports[_0xdb02[83]]= function(_0xcafex28,_0xcafex15){return db[_0xdb02[56]][_0xdb02[83]]()[_0xdb02[45]](respondWithResult(_0xcafex15,null,_0xdb02[83]))[_0xdb02[75]](handleError(_0xcafex15,null,_0xdb02[83]))}
\ No newline at end of file
diff --git a/server/api/openchannelMessage/openchannelMessage.model.js b/server/api/openchannelMessage/openchannelMessage.model.js
new file mode 100644 (file)
index 0000000..4d89a0b
--- /dev/null
@@ -0,0 +1 @@
+var _0xb4b0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xb4b0[0];var _=require(_0xb4b0[1]);var util=require(_0xb4b0[2]);var logger=require(_0xb4b0[4])(_0xb4b0[3]);var attributes=require(_0xb4b0[5]);module[_0xb4b0[6]]= function(_0x7a66x5,_0x7a66x6){return _0x7a66x5[_0xb4b0[9]](_0xb4b0[7],attributes,{tableName:_0xb4b0[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/openchannelMessage/openchannelMessage.rpc.js b/server/api/openchannelMessage/openchannelMessage.rpc.js
new file mode 100644 (file)
index 0000000..191810f
--- /dev/null
@@ -0,0 +1 @@
+var _0xcf48=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xcf48[0];var _=require(_0xcf48[1]);var util=require(_0xcf48[2]);var moment=require(_0xcf48[3]);var BPromise=require(_0xcf48[4]);var db=require(_0xcf48[6])[_0xcf48[5]];var utils=require(_0xcf48[7]);var logger=require(_0xcf48[9])(_0xcf48[8]);var jayson=require(_0xcf48[10]);var client=jayson[_0xcf48[12]][_0xcf48[11]]({port:9002});function respondWithRpcPromise(_0x9d13xb,_0x9d13xc,_0x9d13xd){return  new BPromise(function(_0x9d13xe,_0x9d13xf){return client[_0xcf48[25]](_0x9d13xb,_0x9d13xd)[_0xcf48[24]](function(_0x9d13x11){logger[_0xcf48[17]](_0xcf48[13],_0x9d13xc,_0xcf48[16]);logger[_0xcf48[20]](_0xcf48[18],_0x9d13xc,_0xcf48[16],JSON[_0xcf48[19]](_0x9d13x11));if(_0x9d13x11[_0xcf48[14]]){if(_0x9d13x11[_0xcf48[14]][_0xcf48[21]]=== 500){logger[_0xcf48[14]](_0xcf48[13],_0x9d13xc,_0x9d13x11[_0xcf48[14]][_0xcf48[22]]);return _0x9d13xf(_0x9d13x11[_0xcf48[14]][_0xcf48[22]])};logger[_0xcf48[14]](_0xcf48[13],_0x9d13xc,_0x9d13x11[_0xcf48[14]][_0xcf48[22]]);return _0x9d13xe(_0x9d13x11[_0xcf48[14]][_0xcf48[22]])}else {logger[_0xcf48[17]](_0xcf48[13],_0x9d13xc,_0xcf48[16]);_0x9d13xe(_0x9d13x11[_0xcf48[23]][_0xcf48[22]])}})[_0xcf48[15]](function(_0x9d13x10){logger[_0xcf48[14]](_0xcf48[13],_0x9d13xc,_0x9d13x10);_0x9d13xf(_0x9d13x10)})})}
\ No newline at end of file
diff --git a/server/api/openchannelQueue/index.js b/server/api/openchannelQueue/index.js
new file mode 100644 (file)
index 0000000..00ca434
--- /dev/null
@@ -0,0 +1 @@
+var _0x7a93=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x7a93[0];var multer=require(_0x7a93[1]);var util=require(_0x7a93[2]);var path=require(_0x7a93[3]);var express=require(_0x7a93[4]);var router=express.Router();var auth=require(_0x7a93[5]);var config=require(_0x7a93[6]);var controller=require(_0x7a93[7]);router[_0x7a93[11]](_0x7a93[8],auth[_0x7a93[9]](),controller[_0x7a93[10]]);router[_0x7a93[11]](_0x7a93[12],auth[_0x7a93[9]](),controller[_0x7a93[13]]);router[_0x7a93[11]](_0x7a93[14],auth[_0x7a93[9]](),controller[_0x7a93[15]]);router[_0x7a93[11]](_0x7a93[16],auth[_0x7a93[9]](),controller[_0x7a93[17]]);router[_0x7a93[19]](_0x7a93[8],auth[_0x7a93[9]](),controller[_0x7a93[18]]);router[_0x7a93[19]](_0x7a93[14],auth[_0x7a93[9]](),controller[_0x7a93[20]]);router[_0x7a93[19]](_0x7a93[16],auth[_0x7a93[9]](),controller[_0x7a93[21]]);router[_0x7a93[23]](_0x7a93[12],auth[_0x7a93[9]](),controller[_0x7a93[22]]);router[_0x7a93[25]](_0x7a93[12],auth[_0x7a93[9]](),controller[_0x7a93[24]]);router[_0x7a93[25]](_0x7a93[14],auth[_0x7a93[9]](),controller[_0x7a93[26]]);router[_0x7a93[25]](_0x7a93[16],auth[_0x7a93[9]](),controller[_0x7a93[27]]);module[_0x7a93[28]]= router
\ No newline at end of file
diff --git a/server/api/openchannelQueue/openchannelQueue.attributes.js b/server/api/openchannelQueue/openchannelQueue.attributes.js
new file mode 100644 (file)
index 0000000..8b9b1d5
--- /dev/null
@@ -0,0 +1 @@
+var _0x2579=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0x2579[0];var Sequelize=require(_0x2579[1]);module[_0x2579[2]]= {name:{type:Sequelize[_0x2579[3]],unique:_0x2579[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0x2579[3]]},timeout:{type:Sequelize[_0x2579[5]],validate:{min:1}},strategy:{type:Sequelize.ENUM(_0x2579[6],_0x2579[7],_0x2579[8])},lastAgent:{type:Sequelize[_0x2579[5]],defaultValue:0}}
\ No newline at end of file
diff --git a/server/api/openchannelQueue/openchannelQueue.controller.js b/server/api/openchannelQueue/openchannelQueue.controller.js
new file mode 100644 (file)
index 0000000..534814b
--- /dev/null
@@ -0,0 +1 @@
+var _0xf44b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0xf44b[0];var jsonpatch=require(_0xf44b[1]);var rp=require(_0xf44b[2]);var moment=require(_0xf44b[3]);var BPromise=require(_0xf44b[4]);var util=require(_0xf44b[5]);var path=require(_0xf44b[6]);var sox=require(_0xf44b[7]);var ejs=require(_0xf44b[8]);var fs=require(_0xf44b[9]);var _=require(_0xf44b[10]);var squel=require(_0xf44b[11]);var crypto=require(_0xf44b[12]);var jsforce=require(_0xf44b[13]);var toCsv=require(_0xf44b[14]);var qs=require(_0xf44b[15]);var logger=require(_0xf44b[17])(_0xf44b[16]);var utils=require(_0xf44b[18]);var config=require(_0xf44b[19]);var db=require(_0xf44b[21])[_0xf44b[20]];function respondWithStatusCode(_0x9352x15,_0x9352x16,_0x9352x17){_0x9352x16= _0x9352x16|| 204;return function(_0x9352x18){if(_0x9352x18){logger[_0xf44b[24]](_0xf44b[22],_0x9352x17,_0x9352x16,_0xf44b[23]);logger[_0xf44b[26]](_0xf44b[25],_0x9352x17,_0x9352x16,_0xf44b[23]);return _0x9352x15[_0xf44b[27]](_0x9352x16)};return _0x9352x15[_0xf44b[29]](304)[_0xf44b[28]]()}}function respondWithResult(_0x9352x15,_0x9352x16,_0x9352x17){_0x9352x16= _0x9352x16|| 200;return function(_0x9352x18){if(_0x9352x18){logger[_0xf44b[24]](_0xf44b[22],_0x9352x17,_0x9352x16,_0xf44b[30]);logger[_0xf44b[26]](_0xf44b[25],_0x9352x17,_0x9352x16,_0xf44b[30],JSON[_0xf44b[31]](_0x9352x18));return _0x9352x15[_0xf44b[29]](_0x9352x16)[_0xf44b[32]](_0x9352x18)};return _0x9352x15[_0xf44b[29]](304)[_0xf44b[28]]()}}function respondWithFilteredResult(_0x9352x15,_0x9352x1b,_0x9352x17){return function(_0x9352x18){if(_0x9352x18){var _0x9352x1c=_0x9352x18[_0xf44b[33]],_0x9352x1d=_0x9352x1b[_0xf44b[34]],_0x9352x1e=_0x9352x1b[_0xf44b[34]]+ _0x9352x1b[_0xf44b[35]],_0x9352x16;if(_0x9352x1e>= _0x9352x1c){_0x9352x1e= _0x9352x1c;_0x9352x16= 200}else {_0x9352x16= 206};_0x9352x15[_0xf44b[29]](_0x9352x16);logger[_0xf44b[24]](_0xf44b[22],_0x9352x17,_0x9352x16,_0xf44b[36]);logger[_0xf44b[26]](_0xf44b[25],_0x9352x17,_0x9352x16,_0xf44b[30],JSON[_0xf44b[31]](_0x9352x18));return _0x9352x15[_0xf44b[40]](_0xf44b[37],_0x9352x1d+ _0xf44b[38]+ _0x9352x1e+ _0xf44b[39]+ _0x9352x1c)[_0xf44b[32]](_0x9352x18)};return null}}function patchUpdates(_0x9352x20){return function(_0x9352x18){try{jsonpatch[_0xf44b[41]](_0x9352x18,_0x9352x20,true)}catch(err){return BPromise[_0xf44b[42]](err)};return _0x9352x18[_0xf44b[43]]()}}function saveUpdates(_0x9352x22,_0x9352x16,_0x9352x17){return function(_0x9352x18){if(_0x9352x18){return _0x9352x18[_0xf44b[46]](_0x9352x22)[_0xf44b[45]](function(_0x9352x23){logger[_0xf44b[24]](_0xf44b[22],_0x9352x17,_0x9352x16,_0xf44b[44]);logger[_0xf44b[26]](_0xf44b[25],_0x9352x17,_0x9352x16,_0xf44b[44],JSON[_0xf44b[31]](_0x9352x18));return _0x9352x23})};return null}}function removeEntity(_0x9352x15,_0x9352x16,_0x9352x17){return function(_0x9352x18){if(_0x9352x18){return _0x9352x18[_0xf44b[48]]()[_0xf44b[45]](function(){logger[_0xf44b[24]](_0xf44b[22],_0x9352x17,_0x9352x16,_0xf44b[47]);logger[_0xf44b[26]](_0xf44b[25],_0x9352x17,_0x9352x16,_0xf44b[47],JSON[_0xf44b[31]](_0x9352x18));_0x9352x15[_0xf44b[29]](204)[_0xf44b[28]]()})}}}function handleEntityNotFound(_0x9352x15,_0x9352x16,_0x9352x17){return function(_0x9352x18){if(!_0x9352x18){logger[_0xf44b[50]](_0xf44b[22],_0x9352x17,404,_0xf44b[49]);_0x9352x15[_0xf44b[29]](404)[_0xf44b[28]]();return null};return _0x9352x18}}function handleError(_0x9352x15,_0x9352x16,_0x9352x17){_0x9352x16= _0x9352x16|| 500;return function(_0x9352x27){logger[_0xf44b[50]](_0xf44b[22],_0x9352x17,_0x9352x16,JSON[_0xf44b[31]](_0x9352x27));delete _0x9352x27[_0xf44b[51]];_0x9352x15[_0xf44b[29]](_0x9352x16)[_0xf44b[52]](_0x9352x27)}}exports[_0xf44b[53]]= function(_0x9352x28,_0x9352x15){var _0x9352x1b={},_0x9352x29={};_0x9352x29[_0xf44b[54]]= _[_0xf44b[57]](db[_0xf44b[56]][_0xf44b[55]]);_0x9352x29[_0xf44b[58]]= _[_0xf44b[57]](_0x9352x28[_0xf44b[58]]);_0x9352x29[_0xf44b[59]]= _[_0xf44b[60]](_0x9352x29[_0xf44b[54]],_0x9352x29[_0xf44b[58]]);_0x9352x1b[_0xf44b[61]]= _[_0xf44b[60]](_0x9352x29[_0xf44b[54]],qs[_0xf44b[62]](_0x9352x28[_0xf44b[58]][_0xf44b[62]]));_0x9352x1b[_0xf44b[61]]= (_0x9352x1b[_0xf44b[61]][_0xf44b[63]])?_0x9352x1b[_0xf44b[61]]:_0x9352x29[_0xf44b[54]];if(!_0x9352x28[_0xf44b[58]][_0xf44b[65]](_0xf44b[64])){_0x9352x1b[_0xf44b[35]]= qs[_0xf44b[35]](_0x9352x28[_0xf44b[58]][_0xf44b[35]]);_0x9352x1b[_0xf44b[34]]= qs[_0xf44b[34]](_0x9352x28[_0xf44b[58]][_0xf44b[34]])};_0x9352x1b[_0xf44b[66]]= qs[_0xf44b[67]](_0x9352x28[_0xf44b[58]][_0xf44b[67]]);_0x9352x1b[_0xf44b[68]]= qs[_0xf44b[59]](_[_0xf44b[69]](_0x9352x28[_0xf44b[58]],_0x9352x29[_0xf44b[59]]));if(_0x9352x28[_0xf44b[58]][_0xf44b[70]]){_0x9352x1b[_0xf44b[68]]= _[_0xf44b[73]](_0x9352x1b[_0xf44b[68]],{$or:_[_0xf44b[72]](_0x9352x1b[_0xf44b[61]],function(_0x9352x2a){var _0x9352x2b={};_0x9352x2b[_0x9352x2a]= {$like:_0xf44b[71]+ _0x9352x28[_0xf44b[58]][_0xf44b[70]]+ _0xf44b[71]};return _0x9352x2b})})};_0x9352x1b= _[_0xf44b[73]]({},_0x9352x1b,_0x9352x28[_0xf44b[74]]);return db[_0xf44b[56]][_0xf44b[76]](_0x9352x1b)[_0xf44b[45]](respondWithFilteredResult(_0x9352x15,_0x9352x1b,_0xf44b[53]))[_0xf44b[75]](handleError(_0x9352x15,null,_0xf44b[53]))};exports[_0xf44b[77]]= function(_0x9352x28,_0x9352x15){var _0x9352x1b={raw:true,where:{id:_0x9352x28[_0xf44b[79]][_0xf44b[78]]}},_0x9352x29={};_0x9352x29[_0xf44b[54]]= _[_0xf44b[57]](db[_0xf44b[56]][_0xf44b[55]]);_0x9352x29[_0xf44b[58]]= _[_0xf44b[57]](_0x9352x28[_0xf44b[58]]);_0x9352x29[_0xf44b[59]]= _[_0xf44b[60]](_0x9352x29[_0xf44b[54]],_0x9352x29[_0xf44b[58]]);_0x9352x1b[_0xf44b[61]]= _[_0xf44b[60]](_0x9352x29[_0xf44b[54]],qs[_0xf44b[62]](_0x9352x28[_0xf44b[58]][_0xf44b[62]]));_0x9352x1b[_0xf44b[61]]= (_0x9352x1b[_0xf44b[61]][_0xf44b[63]])?_0x9352x1b[_0xf44b[61]]:_0x9352x29[_0xf44b[54]];_0x9352x1b= _[_0xf44b[73]]({},_0x9352x1b,_0x9352x28[_0xf44b[74]]);return db[_0xf44b[56]][_0xf44b[80]](_0x9352x1b)[_0xf44b[45]](handleEntityNotFound(_0x9352x15,null,_0xf44b[77]))[_0xf44b[45]](respondWithResult(_0x9352x15,null,_0xf44b[77]))[_0xf44b[75]](handleError(_0x9352x15,null,_0xf44b[77]))};exports[_0xf44b[81]]= function(_0x9352x28,_0x9352x15){return db[_0xf44b[56]][_0xf44b[81]](_0x9352x28[_0xf44b[82]],{})[_0xf44b[45]](respondWithResult(_0x9352x15,201,_0xf44b[81]))[_0xf44b[75]](handleError(_0x9352x15,null,_0xf44b[81]))};exports[_0xf44b[46]]= function(_0x9352x28,_0x9352x15){if(_0x9352x28[_0xf44b[82]][_0xf44b[78]]){delete _0x9352x28[_0xf44b[82]][_0xf44b[78]]};return db[_0xf44b[56]][_0xf44b[80]]({where:{id:_0x9352x28[_0xf44b[79]][_0xf44b[78]]}})[_0xf44b[45]](handleEntityNotFound(_0x9352x15,null,_0xf44b[46]))[_0xf44b[45]](saveUpdates(_0x9352x28[_0xf44b[82]],null,_0xf44b[46]))[_0xf44b[45]](respondWithResult(_0x9352x15,null,_0xf44b[46]))[_0xf44b[75]](handleError(_0x9352x15,null,_0xf44b[46]))};exports[_0xf44b[48]]= function(_0x9352x28,_0x9352x15){return db[_0xf44b[56]][_0xf44b[80]]({where:{id:_0x9352x28[_0xf44b[79]][_0xf44b[78]]}})[_0xf44b[45]](handleEntityNotFound(_0x9352x15,null,_0xf44b[48]))[_0xf44b[45]](removeEntity(_0x9352x15,null,_0xf44b[48]))[_0xf44b[75]](handleError(_0x9352x15,null,_0xf44b[48]))};exports[_0xf44b[83]]= function(_0x9352x28,_0x9352x18,_0x9352x2c){var _0x9352x1b={};var _0x9352x29={};var _0x9352x2d;var _0x9352x1c;return db[_0xf44b[56]][_0xf44b[85]]({where:{id:_0x9352x28[_0xf44b[79]][_0xf44b[78]]}})[_0xf44b[45]](handleEntityNotFound(_0x9352x18,null,_0xf44b[83]))[_0xf44b[45]](function(_0x9352x18){if(_0x9352x18){_0x9352x2d= _0x9352x18;_0x9352x29[_0xf44b[54]]= _[_0xf44b[57]](db[_0xf44b[84]][_0xf44b[55]]);_0x9352x29[_0xf44b[58]]= _[_0xf44b[57]](_0x9352x28[_0xf44b[58]]);_0x9352x29[_0xf44b[59]]= _[_0xf44b[60]](_0x9352x29[_0xf44b[54]],_0x9352x29[_0xf44b[58]]);_0x9352x1b[_0xf44b[61]]= _[_0xf44b[60]](_0x9352x29[_0xf44b[54]],qs[_0xf44b[62]](_0x9352x28[_0xf44b[58]][_0xf44b[62]]));_0x9352x1b[_0xf44b[61]]= (_0x9352x1b[_0xf44b[61]][_0xf44b[63]])?_0x9352x1b[_0xf44b[61]]:_0x9352x29[_0xf44b[54]];_0x9352x1b[_0xf44b[66]]= qs[_0xf44b[67]](_0x9352x28[_0xf44b[58]][_0xf44b[67]]);_0x9352x1b[_0xf44b[68]]= qs[_0xf44b[59]](_[_0xf44b[69]](_0x9352x28[_0xf44b[58]],_0x9352x29[_0xf44b[59]]));if(_0x9352x28[_0xf44b[58]][_0xf44b[70]]){_0x9352x1b[_0xf44b[68]]= _[_0xf44b[73]](_0x9352x1b[_0xf44b[68]],{$or:_[_0xf44b[72]](_0x9352x1b[_0xf44b[61]],function(_0x9352x2a){var _0x9352x2b={};_0x9352x2b[_0x9352x2a]= {$like:_0xf44b[71]+ _0x9352x28[_0xf44b[58]][_0xf44b[70]]+ _0xf44b[71]};return _0x9352x2b})})};_0x9352x1b= _[_0xf44b[73]]({},_0x9352x1b,_0x9352x28[_0xf44b[74]]);return _0x9352x2d[_0xf44b[83]](_0x9352x1b)}})[_0xf44b[45]](function(_0x9352x2f){if(_0x9352x2f){_0x9352x1c= _0x9352x2f[_0xf44b[63]];if(!_0x9352x28[_0xf44b[58]][_0xf44b[65]](_0xf44b[64])){_0x9352x1b[_0xf44b[35]]= qs[_0xf44b[35]](_0x9352x28[_0xf44b[58]][_0xf44b[35]]);_0x9352x1b[_0xf44b[34]]= qs[_0xf44b[34]](_0x9352x28[_0xf44b[58]][_0xf44b[34]])};return _0x9352x2d[_0xf44b[83]](_0x9352x1b)}})[_0xf44b[45]](function(_0x9352x2e){return _0x9352x2e?{count:_0x9352x1c,rows:_0x9352x2e}:null})[_0xf44b[45]](respondWithResult(_0x9352x18,null,_0xf44b[83]))[_0xf44b[75]](handleError(_0x9352x18,null,_0xf44b[83]))};exports[_0xf44b[86]]= function(_0x9352x28,_0x9352x15,_0x9352x2c){var _0x9352x30=[];var _0x9352x31;return db[_0xf44b[84]][_0xf44b[93]]({where:{id:_0x9352x28[_0xf44b[82]][_0xf44b[87]]},attributes:[_0xf44b[78]],include:[{model:db[_0xf44b[92]],as:_0xf44b[90],attributes:[_0xf44b[78]],raw:true}]})[_0xf44b[45]](function(_0x9352x34){if(_0x9352x34){for(var _0x9352x35=0;_0x9352x35< _0x9352x34[_0xf44b[63]];_0x9352x35+= 1){for(var _0x9352x36=0;_0x9352x36< _0x9352x34[_0x9352x35][_0xf44b[90]][_0xf44b[63]];_0x9352x36+= 1){_0x9352x30= _[_0xf44b[91]](_0x9352x30,[_0x9352x34[_0x9352x35][_0xf44b[90]][_0x9352x36][_0xf44b[78]]])}};return _0x9352x30}})[_0xf44b[45]](function(_0x9352x33){if(_0x9352x33){return db[_0xf44b[56]][_0xf44b[80]]({where:{id:_0x9352x28[_0xf44b[79]][_0xf44b[78]]}})}})[_0xf44b[45]](function(_0x9352x32){if(_0x9352x32){_0x9352x31= _0x9352x32;return _0x9352x31[_0xf44b[89]](_0x9352x30,{penalty:_0x9352x28[_0xf44b[82]][_0xf44b[88]]})}})[_0xf44b[45]](function(_0x9352x18){if(_0x9352x18){return _0x9352x31[_0xf44b[86]](_0x9352x28[_0xf44b[82]][_0xf44b[87]])}})[_0xf44b[45]](handleEntityNotFound(_0x9352x15,null,_0xf44b[86]))[_0xf44b[45]](respondWithStatusCode(_0x9352x15,null,_0xf44b[86]))[_0xf44b[75]](handleError(_0x9352x15,null,_0xf44b[86]))};exports[_0xf44b[94]]= function(_0x9352x28,_0x9352x15,_0x9352x2c){var _0x9352x30=[];var _0x9352x31;return db[_0xf44b[84]][_0xf44b[93]]({where:{id:_0x9352x28[_0xf44b[58]][_0xf44b[87]]},attributes:[_0xf44b[78]],include:[{model:db[_0xf44b[92]],as:_0xf44b[90],attributes:[_0xf44b[78]],raw:true}]})[_0xf44b[45]](function(_0x9352x34){if(_0x9352x34){for(var _0x9352x35=0;_0x9352x35< _0x9352x34[_0xf44b[63]];_0x9352x35+= 1){for(var _0x9352x36=0;_0x9352x36< _0x9352x34[_0x9352x35][_0xf44b[90]][_0xf44b[63]];_0x9352x36+= 1){_0x9352x30= _[_0xf44b[91]](_0x9352x30,[_0x9352x34[_0x9352x35][_0xf44b[90]][_0x9352x36][_0xf44b[78]]])}};return _0x9352x30}})[_0xf44b[45]](function(_0x9352x33){if(_0x9352x33){return db[_0xf44b[56]][_0xf44b[80]]({where:{id:_0x9352x28[_0xf44b[79]][_0xf44b[78]]}})}})[_0xf44b[45]](function(_0x9352x32){if(_0x9352x32){_0x9352x31= _0x9352x32;return _0x9352x31[_0xf44b[95]](_0x9352x30)}})[_0xf44b[45]](function(_0x9352x18){if(_0x9352x31){return _0x9352x31[_0xf44b[94]](_0x9352x28[_0xf44b[58]][_0xf44b[87]])}})[_0xf44b[45]](handleEntityNotFound(_0x9352x15,null,_0xf44b[94]))[_0xf44b[45]](respondWithStatusCode(_0x9352x15,null,_0xf44b[94]))[_0xf44b[75]](handleError(_0x9352x15,null,_0xf44b[94]))};exports[_0xf44b[89]]= function(_0x9352x28,_0x9352x15,_0x9352x2c){return db[_0xf44b[56]][_0xf44b[80]]({where:{id:_0x9352x28[_0xf44b[79]][_0xf44b[78]]}})[_0xf44b[45]](handleEntityNotFound(_0x9352x15,null,_0xf44b[89]))[_0xf44b[45]](function(_0x9352x18){if(_0x9352x18){return _0x9352x18[_0xf44b[89]](_0x9352x28[_0xf44b[82]][_0xf44b[87]],_[_0xf44b[96]](_0x9352x28[_0xf44b[82]],[_0xf44b[87],_0xf44b[78]])|| {})};return null})[_0xf44b[45]](respondWithResult(_0x9352x15,null,_0xf44b[89]))[_0xf44b[75]](handleError(_0x9352x15,null,_0xf44b[89]))};exports[_0xf44b[95]]= function(_0x9352x28,_0x9352x15,_0x9352x2c){var _0x9352x2f;return db[_0xf44b[56]][_0xf44b[80]]({where:{id:_0x9352x28[_0xf44b[79]][_0xf44b[78]]}})[_0xf44b[45]](handleEntityNotFound(_0x9352x15,null,_0xf44b[95]))[_0xf44b[45]](function(_0x9352x18){if(_0x9352x18){return _0x9352x18[_0xf44b[95]](_0x9352x28[_0xf44b[58]][_0xf44b[87]])}})[_0xf44b[45]](respondWithStatusCode(_0x9352x15,null,_0xf44b[95]))[_0xf44b[75]](handleError(_0x9352x15,null,_0xf44b[95]))};exports[_0xf44b[97]]= function(_0x9352x28,_0x9352x18,_0x9352x2c){var _0x9352x1b={};var _0x9352x29={};var _0x9352x2d;var _0x9352x1c;return db[_0xf44b[56]][_0xf44b[85]]({where:{id:_0x9352x28[_0xf44b[79]][_0xf44b[78]]}})[_0xf44b[45]](handleEntityNotFound(_0x9352x18,null,_0xf44b[97]))[_0xf44b[45]](function(_0x9352x18){if(_0x9352x18){_0x9352x2d= _0x9352x18;_0x9352x29[_0xf44b[54]]= _[_0xf44b[57]](db[_0xf44b[92]][_0xf44b[55]]);_0x9352x29[_0xf44b[58]]= _[_0xf44b[57]](_0x9352x28[_0xf44b[58]]);_0x9352x29[_0xf44b[59]]= _[_0xf44b[60]](_0x9352x29[_0xf44b[54]],_0x9352x29[_0xf44b[58]]);_0x9352x1b[_0xf44b[61]]= _[_0xf44b[60]](_0x9352x29[_0xf44b[54]],qs[_0xf44b[62]](_0x9352x28[_0xf44b[58]][_0xf44b[62]]));_0x9352x1b[_0xf44b[61]]= (_0x9352x1b[_0xf44b[61]][_0xf44b[63]])?_0x9352x1b[_0xf44b[61]]:_0x9352x29[_0xf44b[54]];_0x9352x1b[_0xf44b[66]]= qs[_0xf44b[67]](_0x9352x28[_0xf44b[58]][_0xf44b[67]]);_0x9352x1b[_0xf44b[68]]= qs[_0xf44b[59]](_[_0xf44b[69]](_0x9352x28[_0xf44b[58]],_0x9352x29[_0xf44b[59]]));if(_0x9352x28[_0xf44b[58]][_0xf44b[70]]){_0x9352x1b[_0xf44b[68]]= _[_0xf44b[73]](_0x9352x1b[_0xf44b[68]],{$or:_[_0xf44b[72]](_0x9352x1b[_0xf44b[61]],function(_0x9352x2a){var _0x9352x2b={};_0x9352x2b[_0x9352x2a]= {$like:_0xf44b[71]+ _0x9352x28[_0xf44b[58]][_0xf44b[70]]+ _0xf44b[71]};return _0x9352x2b})})};_0x9352x1b= _[_0xf44b[73]]({},_0x9352x1b,_0x9352x28[_0xf44b[74]]);return _0x9352x2d[_0xf44b[97]](_0x9352x1b)}})[_0xf44b[45]](function(_0x9352x2f){if(_0x9352x2f){_0x9352x1c= _0x9352x2f[_0xf44b[63]];if(!_0x9352x28[_0xf44b[58]][_0xf44b[65]](_0xf44b[64])){_0x9352x1b[_0xf44b[35]]= qs[_0xf44b[35]](_0x9352x28[_0xf44b[58]][_0xf44b[35]]);_0x9352x1b[_0xf44b[34]]= qs[_0xf44b[34]](_0x9352x28[_0xf44b[58]][_0xf44b[34]])};return _0x9352x2d[_0xf44b[97]](_0x9352x1b)}})[_0xf44b[45]](function(_0x9352x2e){return _0x9352x2e?{count:_0x9352x1c,rows:_0x9352x2e}:null})[_0xf44b[45]](respondWithResult(_0x9352x18,null,_0xf44b[97]))[_0xf44b[75]](handleError(_0x9352x18,null,_0xf44b[97]))}
\ No newline at end of file
diff --git a/server/api/openchannelQueue/openchannelQueue.model.js b/server/api/openchannelQueue/openchannelQueue.model.js
new file mode 100644 (file)
index 0000000..7b47fbc
--- /dev/null
@@ -0,0 +1 @@
+var _0xfc91=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xfc91[0];var _=require(_0xfc91[1]);var util=require(_0xfc91[2]);var logger=require(_0xfc91[4])(_0xfc91[3]);var attributes=require(_0xfc91[5]);module[_0xfc91[6]]= function(_0xd1a1x5,_0xd1a1x6){return _0xd1a1x5[_0xfc91[9]](_0xfc91[7],attributes,{tableName:_0xfc91[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/openchannelQueue/openchannelQueue.rpc.js b/server/api/openchannelQueue/openchannelQueue.rpc.js
new file mode 100644 (file)
index 0000000..2b9a79a
--- /dev/null
@@ -0,0 +1 @@
+var _0x1c98=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x1c98[0];var _=require(_0x1c98[1]);var util=require(_0x1c98[2]);var moment=require(_0x1c98[3]);var BPromise=require(_0x1c98[4]);var db=require(_0x1c98[6])[_0x1c98[5]];var utils=require(_0x1c98[7]);var logger=require(_0x1c98[9])(_0x1c98[8]);var jayson=require(_0x1c98[10]);var client=jayson[_0x1c98[12]][_0x1c98[11]]({port:9002});function respondWithRpcPromise(_0xb03bxb,_0xb03bxc,_0xb03bxd){return  new BPromise(function(_0xb03bxe,_0xb03bxf){return client[_0x1c98[25]](_0xb03bxb,_0xb03bxd)[_0x1c98[24]](function(_0xb03bx11){logger[_0x1c98[17]](_0x1c98[13],_0xb03bxc,_0x1c98[16]);logger[_0x1c98[20]](_0x1c98[18],_0xb03bxc,_0x1c98[16],JSON[_0x1c98[19]](_0xb03bx11));if(_0xb03bx11[_0x1c98[14]]){if(_0xb03bx11[_0x1c98[14]][_0x1c98[21]]=== 500){logger[_0x1c98[14]](_0x1c98[13],_0xb03bxc,_0xb03bx11[_0x1c98[14]][_0x1c98[22]]);return _0xb03bxf(_0xb03bx11[_0x1c98[14]][_0x1c98[22]])};logger[_0x1c98[14]](_0x1c98[13],_0xb03bxc,_0xb03bx11[_0x1c98[14]][_0x1c98[22]]);return _0xb03bxe(_0xb03bx11[_0x1c98[14]][_0x1c98[22]])}else {logger[_0x1c98[17]](_0x1c98[13],_0xb03bxc,_0x1c98[16]);_0xb03bxe(_0xb03bx11[_0x1c98[23]][_0x1c98[22]])}})[_0x1c98[15]](function(_0xb03bx10){logger[_0x1c98[14]](_0x1c98[13],_0xb03bxc,_0xb03bx10);_0xb03bxf(_0xb03bx10)})})}
\ No newline at end of file
diff --git a/server/api/openchannelReport/index.js b/server/api/openchannelReport/index.js
new file mode 100644 (file)
index 0000000..21c4727
--- /dev/null
@@ -0,0 +1 @@
+var _0x7698=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7698[0];var multer=require(_0x7698[1]);var util=require(_0x7698[2]);var path=require(_0x7698[3]);var express=require(_0x7698[4]);var router=express.Router();var auth=require(_0x7698[5]);var config=require(_0x7698[6]);var controller=require(_0x7698[7]);router[_0x7698[11]](_0x7698[8],auth[_0x7698[9]](),controller[_0x7698[10]]);router[_0x7698[11]](_0x7698[12],auth[_0x7698[9]](),controller[_0x7698[13]]);router[_0x7698[15]](_0x7698[8],auth[_0x7698[9]](),controller[_0x7698[14]]);router[_0x7698[17]](_0x7698[12],auth[_0x7698[9]](),controller[_0x7698[16]]);router[_0x7698[19]](_0x7698[12],auth[_0x7698[9]](),controller[_0x7698[18]]);module[_0x7698[20]]= router
\ No newline at end of file
diff --git a/server/api/openchannelReport/openchannelReport.attributes.js b/server/api/openchannelReport/openchannelReport.attributes.js
new file mode 100644 (file)
index 0000000..ca7a536
--- /dev/null
@@ -0,0 +1 @@
+var _0xbd3d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0xbd3d[0];var moment=require(_0xbd3d[1]);var Sequelize=require(_0xbd3d[2]);module[_0xbd3d[3]]= {uniqueid:{type:Sequelize[_0xbd3d[4]]},timeslot:{type:Sequelize[_0xbd3d[4]]},from:{type:Sequelize[_0xbd3d[4]]},accountid:{type:Sequelize[_0xbd3d[4]]},accountname:{type:Sequelize[_0xbd3d[4]]},application:{type:Sequelize[_0xbd3d[4]]},memberid:{type:Sequelize[_0xbd3d[4]]},membername:{type:Sequelize[_0xbd3d[4]]},queue:{type:Sequelize[_0xbd3d[4]]},queuename:{type:Sequelize[_0xbd3d[4]]},roomid:{type:Sequelize[_0xbd3d[5]]},messageid:{type:Sequelize[_0xbd3d[5]]},reason:{type:Sequelize[_0xbd3d[4]],defaultValue:_0xbd3d[6]},connectid:{type:Sequelize[_0xbd3d[4]],unique:_0xbd3d[7],set:function(_0xa453x3){this[_0xbd3d[8]](_0xbd3d[7],_0xa453x3);this[_0xbd3d[8]](_0xbd3d[9],_0xbd3d[10]);this[_0xbd3d[8]](_0xbd3d[11],moment()[_0xbd3d[13]](_0xbd3d[12]))}},calledAt:{type:Sequelize[_0xbd3d[14]]},rejectedAt:{type:Sequelize[_0xbd3d[14]],set:function(_0xa453x4){this[_0xbd3d[8]](_0xbd3d[15],_0xa453x4);this[_0xbd3d[8]](_0xbd3d[9],_0xbd3d[16])}},connectedAt:{type:Sequelize[_0xbd3d[14]]}}
\ No newline at end of file
diff --git a/server/api/openchannelReport/openchannelReport.controller.js b/server/api/openchannelReport/openchannelReport.controller.js
new file mode 100644 (file)
index 0000000..1ec8c28
--- /dev/null
@@ -0,0 +1 @@
+var _0x68c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x68c6[0];var jsonpatch=require(_0x68c6[1]);var rp=require(_0x68c6[2]);var moment=require(_0x68c6[3]);var BPromise=require(_0x68c6[4]);var util=require(_0x68c6[5]);var path=require(_0x68c6[6]);var sox=require(_0x68c6[7]);var ejs=require(_0x68c6[8]);var fs=require(_0x68c6[9]);var _=require(_0x68c6[10]);var squel=require(_0x68c6[11]);var crypto=require(_0x68c6[12]);var jsforce=require(_0x68c6[13]);var toCsv=require(_0x68c6[14]);var qs=require(_0x68c6[15]);var logger=require(_0x68c6[17])(_0x68c6[16]);var utils=require(_0x68c6[18]);var config=require(_0x68c6[19]);var db=require(_0x68c6[21])[_0x68c6[20]];function respondWithStatusCode(_0x74e5x15,_0x74e5x16,_0x74e5x17){_0x74e5x16= _0x74e5x16|| 204;return function(_0x74e5x18){if(_0x74e5x18){logger[_0x68c6[24]](_0x68c6[22],_0x74e5x17,_0x74e5x16,_0x68c6[23]);logger[_0x68c6[26]](_0x68c6[25],_0x74e5x17,_0x74e5x16,_0x68c6[23]);return _0x74e5x15[_0x68c6[27]](_0x74e5x16)};return _0x74e5x15[_0x68c6[29]](304)[_0x68c6[28]]()}}function respondWithResult(_0x74e5x15,_0x74e5x16,_0x74e5x17){_0x74e5x16= _0x74e5x16|| 200;return function(_0x74e5x18){if(_0x74e5x18){logger[_0x68c6[24]](_0x68c6[22],_0x74e5x17,_0x74e5x16,_0x68c6[30]);logger[_0x68c6[26]](_0x68c6[25],_0x74e5x17,_0x74e5x16,_0x68c6[30],JSON[_0x68c6[31]](_0x74e5x18));return _0x74e5x15[_0x68c6[29]](_0x74e5x16)[_0x68c6[32]](_0x74e5x18)};return _0x74e5x15[_0x68c6[29]](304)[_0x68c6[28]]()}}function respondWithFilteredResult(_0x74e5x15,_0x74e5x1b,_0x74e5x17){return function(_0x74e5x18){if(_0x74e5x18){var _0x74e5x1c=_0x74e5x18[_0x68c6[33]],_0x74e5x1d=_0x74e5x1b[_0x68c6[34]],_0x74e5x1e=_0x74e5x1b[_0x68c6[34]]+ _0x74e5x1b[_0x68c6[35]],_0x74e5x16;if(_0x74e5x1e>= _0x74e5x1c){_0x74e5x1e= _0x74e5x1c;_0x74e5x16= 200}else {_0x74e5x16= 206};_0x74e5x15[_0x68c6[29]](_0x74e5x16);logger[_0x68c6[24]](_0x68c6[22],_0x74e5x17,_0x74e5x16,_0x68c6[36]);logger[_0x68c6[26]](_0x68c6[25],_0x74e5x17,_0x74e5x16,_0x68c6[30],JSON[_0x68c6[31]](_0x74e5x18));return _0x74e5x15[_0x68c6[40]](_0x68c6[37],_0x74e5x1d+ _0x68c6[38]+ _0x74e5x1e+ _0x68c6[39]+ _0x74e5x1c)[_0x68c6[32]](_0x74e5x18)};return null}}function patchUpdates(_0x74e5x20){return function(_0x74e5x18){try{jsonpatch[_0x68c6[41]](_0x74e5x18,_0x74e5x20,true)}catch(err){return BPromise[_0x68c6[42]](err)};return _0x74e5x18[_0x68c6[43]]()}}function saveUpdates(_0x74e5x22,_0x74e5x16,_0x74e5x17){return function(_0x74e5x18){if(_0x74e5x18){return _0x74e5x18[_0x68c6[46]](_0x74e5x22)[_0x68c6[45]](function(_0x74e5x23){logger[_0x68c6[24]](_0x68c6[22],_0x74e5x17,_0x74e5x16,_0x68c6[44]);logger[_0x68c6[26]](_0x68c6[25],_0x74e5x17,_0x74e5x16,_0x68c6[44],JSON[_0x68c6[31]](_0x74e5x18));return _0x74e5x23})};return null}}function removeEntity(_0x74e5x15,_0x74e5x16,_0x74e5x17){return function(_0x74e5x18){if(_0x74e5x18){return _0x74e5x18[_0x68c6[48]]()[_0x68c6[45]](function(){logger[_0x68c6[24]](_0x68c6[22],_0x74e5x17,_0x74e5x16,_0x68c6[47]);logger[_0x68c6[26]](_0x68c6[25],_0x74e5x17,_0x74e5x16,_0x68c6[47],JSON[_0x68c6[31]](_0x74e5x18));_0x74e5x15[_0x68c6[29]](204)[_0x68c6[28]]()})}}}function handleEntityNotFound(_0x74e5x15,_0x74e5x16,_0x74e5x17){return function(_0x74e5x18){if(!_0x74e5x18){logger[_0x68c6[50]](_0x68c6[22],_0x74e5x17,404,_0x68c6[49]);_0x74e5x15[_0x68c6[29]](404)[_0x68c6[28]]();return null};return _0x74e5x18}}function handleError(_0x74e5x15,_0x74e5x16,_0x74e5x17){_0x74e5x16= _0x74e5x16|| 500;return function(_0x74e5x27){logger[_0x68c6[50]](_0x68c6[22],_0x74e5x17,_0x74e5x16,JSON[_0x68c6[31]](_0x74e5x27));delete _0x74e5x27[_0x68c6[51]];_0x74e5x15[_0x68c6[29]](_0x74e5x16)[_0x68c6[52]](_0x74e5x27)}}exports[_0x68c6[53]]= function(_0x74e5x28,_0x74e5x15){var _0x74e5x1b={},_0x74e5x29={};_0x74e5x29[_0x68c6[54]]= _[_0x68c6[57]](db[_0x68c6[56]][_0x68c6[55]]);_0x74e5x29[_0x68c6[58]]= _[_0x68c6[57]](_0x74e5x28[_0x68c6[58]]);_0x74e5x29[_0x68c6[59]]= _[_0x68c6[60]](_0x74e5x29[_0x68c6[54]],_0x74e5x29[_0x68c6[58]]);_0x74e5x1b[_0x68c6[61]]= _[_0x68c6[60]](_0x74e5x29[_0x68c6[54]],qs[_0x68c6[62]](_0x74e5x28[_0x68c6[58]][_0x68c6[62]]));_0x74e5x1b[_0x68c6[61]]= (_0x74e5x1b[_0x68c6[61]][_0x68c6[63]])?_0x74e5x1b[_0x68c6[61]]:_0x74e5x29[_0x68c6[54]];if(!_0x74e5x28[_0x68c6[58]][_0x68c6[65]](_0x68c6[64])){_0x74e5x1b[_0x68c6[35]]= qs[_0x68c6[35]](_0x74e5x28[_0x68c6[58]][_0x68c6[35]]);_0x74e5x1b[_0x68c6[34]]= qs[_0x68c6[34]](_0x74e5x28[_0x68c6[58]][_0x68c6[34]])};_0x74e5x1b[_0x68c6[66]]= qs[_0x68c6[67]](_0x74e5x28[_0x68c6[58]][_0x68c6[67]]);_0x74e5x1b[_0x68c6[68]]= qs[_0x68c6[59]](_[_0x68c6[69]](_0x74e5x28[_0x68c6[58]],_0x74e5x29[_0x68c6[59]]));if(_0x74e5x28[_0x68c6[58]][_0x68c6[70]]){_0x74e5x1b[_0x68c6[68]]= _[_0x68c6[73]](_0x74e5x1b[_0x68c6[68]],{$or:_[_0x68c6[72]](_0x74e5x1b[_0x68c6[61]],function(_0x74e5x2a){var _0x74e5x2b={};_0x74e5x2b[_0x74e5x2a]= {$like:_0x68c6[71]+ _0x74e5x28[_0x68c6[58]][_0x68c6[70]]+ _0x68c6[71]};return _0x74e5x2b})})};_0x74e5x1b= _[_0x68c6[73]]({},_0x74e5x1b,_0x74e5x28[_0x68c6[74]]);return db[_0x68c6[56]][_0x68c6[76]](_0x74e5x1b)[_0x68c6[45]](respondWithFilteredResult(_0x74e5x15,_0x74e5x1b,_0x68c6[53]))[_0x68c6[75]](handleError(_0x74e5x15,null,_0x68c6[53]))};exports[_0x68c6[77]]= function(_0x74e5x28,_0x74e5x15){var _0x74e5x1b={raw:true,where:{id:_0x74e5x28[_0x68c6[79]][_0x68c6[78]]}},_0x74e5x29={};_0x74e5x29[_0x68c6[54]]= _[_0x68c6[57]](db[_0x68c6[56]][_0x68c6[55]]);_0x74e5x29[_0x68c6[58]]= _[_0x68c6[57]](_0x74e5x28[_0x68c6[58]]);_0x74e5x29[_0x68c6[59]]= _[_0x68c6[60]](_0x74e5x29[_0x68c6[54]],_0x74e5x29[_0x68c6[58]]);_0x74e5x1b[_0x68c6[61]]= _[_0x68c6[60]](_0x74e5x29[_0x68c6[54]],qs[_0x68c6[62]](_0x74e5x28[_0x68c6[58]][_0x68c6[62]]));_0x74e5x1b[_0x68c6[61]]= (_0x74e5x1b[_0x68c6[61]][_0x68c6[63]])?_0x74e5x1b[_0x68c6[61]]:_0x74e5x29[_0x68c6[54]];_0x74e5x1b= _[_0x68c6[73]]({},_0x74e5x1b,_0x74e5x28[_0x68c6[74]]);return db[_0x68c6[56]][_0x68c6[80]](_0x74e5x1b)[_0x68c6[45]](handleEntityNotFound(_0x74e5x15,null,_0x68c6[77]))[_0x68c6[45]](respondWithResult(_0x74e5x15,null,_0x68c6[77]))[_0x68c6[75]](handleError(_0x74e5x15,null,_0x68c6[77]))};exports[_0x68c6[81]]= function(_0x74e5x28,_0x74e5x15){return db[_0x68c6[56]][_0x68c6[81]](_0x74e5x28[_0x68c6[82]],{})[_0x68c6[45]](respondWithResult(_0x74e5x15,201,_0x68c6[81]))[_0x68c6[75]](handleError(_0x74e5x15,null,_0x68c6[81]))};exports[_0x68c6[46]]= function(_0x74e5x28,_0x74e5x15){if(_0x74e5x28[_0x68c6[82]][_0x68c6[78]]){delete _0x74e5x28[_0x68c6[82]][_0x68c6[78]]};return db[_0x68c6[56]][_0x68c6[80]]({where:{id:_0x74e5x28[_0x68c6[79]][_0x68c6[78]]}})[_0x68c6[45]](handleEntityNotFound(_0x74e5x15,null,_0x68c6[46]))[_0x68c6[45]](saveUpdates(_0x74e5x28[_0x68c6[82]],null,_0x68c6[46]))[_0x68c6[45]](respondWithResult(_0x74e5x15,null,_0x68c6[46]))[_0x68c6[75]](handleError(_0x74e5x15,null,_0x68c6[46]))};exports[_0x68c6[48]]= function(_0x74e5x28,_0x74e5x15){return db[_0x68c6[56]][_0x68c6[80]]({where:{id:_0x74e5x28[_0x68c6[79]][_0x68c6[78]]}})[_0x68c6[45]](handleEntityNotFound(_0x74e5x15,null,_0x68c6[48]))[_0x68c6[45]](removeEntity(_0x74e5x15,null,_0x68c6[48]))[_0x68c6[75]](handleError(_0x74e5x15,null,_0x68c6[48]))}
\ No newline at end of file
diff --git a/server/api/openchannelReport/openchannelReport.model.js b/server/api/openchannelReport/openchannelReport.model.js
new file mode 100644 (file)
index 0000000..038a334
--- /dev/null
@@ -0,0 +1 @@
+var _0xa0d8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x64\x65\x66\x69\x6E\x65"];_0xa0d8[0];var _=require(_0xa0d8[1]);var util=require(_0xa0d8[2]);var logger=require(_0xa0d8[4])(_0xa0d8[3]);var attributes=require(_0xa0d8[5]);module[_0xa0d8[6]]= function(_0x39b4x5,_0x39b4x6){return _0x39b4x5[_0xa0d8[9]](_0xa0d8[7],attributes,{tableName:_0xa0d8[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/openchannelReport/openchannelReport.rpc.js b/server/api/openchannelReport/openchannelReport.rpc.js
new file mode 100644 (file)
index 0000000..ac41ea8
--- /dev/null
@@ -0,0 +1 @@
+var _0xfe3f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xfe3f[0];var _=require(_0xfe3f[1]);var util=require(_0xfe3f[2]);var moment=require(_0xfe3f[3]);var BPromise=require(_0xfe3f[4]);var db=require(_0xfe3f[6])[_0xfe3f[5]];var utils=require(_0xfe3f[7]);var logger=require(_0xfe3f[9])(_0xfe3f[8]);var jayson=require(_0xfe3f[10]);var client=jayson[_0xfe3f[12]][_0xfe3f[11]]({port:9002});function respondWithRpcPromise(_0x396bxb,_0x396bxc,_0x396bxd){return  new BPromise(function(_0x396bxe,_0x396bxf){return client[_0xfe3f[25]](_0x396bxb,_0x396bxd)[_0xfe3f[24]](function(_0x396bx11){logger[_0xfe3f[17]](_0xfe3f[13],_0x396bxc,_0xfe3f[16]);logger[_0xfe3f[20]](_0xfe3f[18],_0x396bxc,_0xfe3f[16],JSON[_0xfe3f[19]](_0x396bx11));if(_0x396bx11[_0xfe3f[14]]){if(_0x396bx11[_0xfe3f[14]][_0xfe3f[21]]=== 500){logger[_0xfe3f[14]](_0xfe3f[13],_0x396bxc,_0x396bx11[_0xfe3f[14]][_0xfe3f[22]]);return _0x396bxf(_0x396bx11[_0xfe3f[14]][_0xfe3f[22]])};logger[_0xfe3f[14]](_0xfe3f[13],_0x396bxc,_0x396bx11[_0xfe3f[14]][_0xfe3f[22]]);return _0x396bxe(_0x396bx11[_0xfe3f[14]][_0xfe3f[22]])}else {logger[_0xfe3f[17]](_0xfe3f[13],_0x396bxc,_0xfe3f[16]);_0x396bxe(_0x396bx11[_0xfe3f[23]][_0xfe3f[22]])}})[_0xfe3f[15]](function(_0x396bx10){logger[_0xfe3f[14]](_0xfe3f[13],_0x396bxc,_0x396bx10);_0x396bxf(_0x396bx10)})})}
\ No newline at end of file
diff --git a/server/api/openchannelSessionReport/index.js b/server/api/openchannelSessionReport/index.js
new file mode 100644 (file)
index 0000000..2301f35
--- /dev/null
@@ -0,0 +1 @@
+var _0x59c9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x59c9[0];var multer=require(_0x59c9[1]);var util=require(_0x59c9[2]);var path=require(_0x59c9[3]);var express=require(_0x59c9[4]);var router=express.Router();var auth=require(_0x59c9[5]);var config=require(_0x59c9[6]);var controller=require(_0x59c9[7]);router[_0x59c9[11]](_0x59c9[8],auth[_0x59c9[9]](),controller[_0x59c9[10]]);router[_0x59c9[11]](_0x59c9[12],auth[_0x59c9[9]](),controller[_0x59c9[13]]);router[_0x59c9[11]](_0x59c9[14],auth[_0x59c9[9]](),controller[_0x59c9[15]]);router[_0x59c9[17]](_0x59c9[8],auth[_0x59c9[9]](),controller[_0x59c9[16]]);router[_0x59c9[19]](_0x59c9[14],auth[_0x59c9[9]](),controller[_0x59c9[18]]);router[_0x59c9[21]](_0x59c9[14],auth[_0x59c9[9]](),controller[_0x59c9[20]]);module[_0x59c9[22]]= router
\ No newline at end of file
diff --git a/server/api/openchannelSessionReport/openchannelSessionReport.attributes.js b/server/api/openchannelSessionReport/openchannelSessionReport.attributes.js
new file mode 100644 (file)
index 0000000..76cabd9
--- /dev/null
@@ -0,0 +1 @@
+var _0x5288=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74"];_0x5288[0];var Sequelize=require(_0x5288[1]);module[_0x5288[2]]= {uniqueid:{type:Sequelize[_0x5288[3]]},accountid:{type:Sequelize[_0x5288[3]]},accountname:{type:Sequelize[_0x5288[3]]},application:{type:Sequelize[_0x5288[3]]},memberid:{type:Sequelize[_0x5288[3]]},membername:{type:Sequelize[_0x5288[3]]},queue:{type:Sequelize[_0x5288[4]]},queuename:{type:Sequelize[_0x5288[3]]},roomid:{type:Sequelize[_0x5288[4]]},fidelity:{type:Sequelize[_0x5288[4]],defaultValue:0},joinAt:{type:Sequelize[_0x5288[5]]},leaveAt:{type:Sequelize[_0x5288[5]]},completeAt:{type:Sequelize[_0x5288[5]]},complete:{type:Sequelize[_0x5288[6]],defaulValue:false},completeReason:{type:Sequelize.ENUM(_0x5288[7])},timeout:{type:Sequelize[_0x5288[6]],defaultValue:false},timeslot:{type:Sequelize[_0x5288[4]]}}
\ No newline at end of file
diff --git a/server/api/openchannelSessionReport/openchannelSessionReport.controller.js b/server/api/openchannelSessionReport/openchannelSessionReport.controller.js
new file mode 100644 (file)
index 0000000..206187a
--- /dev/null
@@ -0,0 +1 @@
+var _0xc8b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xc8b8[0];var jsonpatch=require(_0xc8b8[1]);var rp=require(_0xc8b8[2]);var moment=require(_0xc8b8[3]);var BPromise=require(_0xc8b8[4]);var util=require(_0xc8b8[5]);var path=require(_0xc8b8[6]);var sox=require(_0xc8b8[7]);var ejs=require(_0xc8b8[8]);var fs=require(_0xc8b8[9]);var _=require(_0xc8b8[10]);var squel=require(_0xc8b8[11]);var crypto=require(_0xc8b8[12]);var jsforce=require(_0xc8b8[13]);var toCsv=require(_0xc8b8[14]);var qs=require(_0xc8b8[15]);var logger=require(_0xc8b8[17])(_0xc8b8[16]);var utils=require(_0xc8b8[18]);var config=require(_0xc8b8[19]);var db=require(_0xc8b8[21])[_0xc8b8[20]];function respondWithStatusCode(_0x3b64x15,_0x3b64x16,_0x3b64x17){_0x3b64x16= _0x3b64x16|| 204;return function(_0x3b64x18){if(_0x3b64x18){logger[_0xc8b8[24]](_0xc8b8[22],_0x3b64x17,_0x3b64x16,_0xc8b8[23]);logger[_0xc8b8[26]](_0xc8b8[25],_0x3b64x17,_0x3b64x16,_0xc8b8[23]);return _0x3b64x15[_0xc8b8[27]](_0x3b64x16)};return _0x3b64x15[_0xc8b8[29]](304)[_0xc8b8[28]]()}}function respondWithResult(_0x3b64x15,_0x3b64x16,_0x3b64x17){_0x3b64x16= _0x3b64x16|| 200;return function(_0x3b64x18){if(_0x3b64x18){logger[_0xc8b8[24]](_0xc8b8[22],_0x3b64x17,_0x3b64x16,_0xc8b8[30]);logger[_0xc8b8[26]](_0xc8b8[25],_0x3b64x17,_0x3b64x16,_0xc8b8[30],JSON[_0xc8b8[31]](_0x3b64x18));return _0x3b64x15[_0xc8b8[29]](_0x3b64x16)[_0xc8b8[32]](_0x3b64x18)};return _0x3b64x15[_0xc8b8[29]](304)[_0xc8b8[28]]()}}function respondWithFilteredResult(_0x3b64x15,_0x3b64x1b,_0x3b64x17){return function(_0x3b64x18){if(_0x3b64x18){var _0x3b64x1c=_0x3b64x18[_0xc8b8[33]],_0x3b64x1d=_0x3b64x1b[_0xc8b8[34]],_0x3b64x1e=_0x3b64x1b[_0xc8b8[34]]+ _0x3b64x1b[_0xc8b8[35]],_0x3b64x16;if(_0x3b64x1e>= _0x3b64x1c){_0x3b64x1e= _0x3b64x1c;_0x3b64x16= 200}else {_0x3b64x16= 206};_0x3b64x15[_0xc8b8[29]](_0x3b64x16);logger[_0xc8b8[24]](_0xc8b8[22],_0x3b64x17,_0x3b64x16,_0xc8b8[36]);logger[_0xc8b8[26]](_0xc8b8[25],_0x3b64x17,_0x3b64x16,_0xc8b8[30],JSON[_0xc8b8[31]](_0x3b64x18));return _0x3b64x15[_0xc8b8[40]](_0xc8b8[37],_0x3b64x1d+ _0xc8b8[38]+ _0x3b64x1e+ _0xc8b8[39]+ _0x3b64x1c)[_0xc8b8[32]](_0x3b64x18)};return null}}function patchUpdates(_0x3b64x20){return function(_0x3b64x18){try{jsonpatch[_0xc8b8[41]](_0x3b64x18,_0x3b64x20,true)}catch(err){return BPromise[_0xc8b8[42]](err)};return _0x3b64x18[_0xc8b8[43]]()}}function saveUpdates(_0x3b64x22,_0x3b64x16,_0x3b64x17){return function(_0x3b64x18){if(_0x3b64x18){return _0x3b64x18[_0xc8b8[46]](_0x3b64x22)[_0xc8b8[45]](function(_0x3b64x23){logger[_0xc8b8[24]](_0xc8b8[22],_0x3b64x17,_0x3b64x16,_0xc8b8[44]);logger[_0xc8b8[26]](_0xc8b8[25],_0x3b64x17,_0x3b64x16,_0xc8b8[44],JSON[_0xc8b8[31]](_0x3b64x18));return _0x3b64x23})};return null}}function removeEntity(_0x3b64x15,_0x3b64x16,_0x3b64x17){return function(_0x3b64x18){if(_0x3b64x18){return _0x3b64x18[_0xc8b8[48]]()[_0xc8b8[45]](function(){logger[_0xc8b8[24]](_0xc8b8[22],_0x3b64x17,_0x3b64x16,_0xc8b8[47]);logger[_0xc8b8[26]](_0xc8b8[25],_0x3b64x17,_0x3b64x16,_0xc8b8[47],JSON[_0xc8b8[31]](_0x3b64x18));_0x3b64x15[_0xc8b8[29]](204)[_0xc8b8[28]]()})}}}function handleEntityNotFound(_0x3b64x15,_0x3b64x16,_0x3b64x17){return function(_0x3b64x18){if(!_0x3b64x18){logger[_0xc8b8[50]](_0xc8b8[22],_0x3b64x17,404,_0xc8b8[49]);_0x3b64x15[_0xc8b8[29]](404)[_0xc8b8[28]]();return null};return _0x3b64x18}}function handleError(_0x3b64x15,_0x3b64x16,_0x3b64x17){_0x3b64x16= _0x3b64x16|| 500;return function(_0x3b64x27){logger[_0xc8b8[50]](_0xc8b8[22],_0x3b64x17,_0x3b64x16,JSON[_0xc8b8[31]](_0x3b64x27));delete _0x3b64x27[_0xc8b8[51]];_0x3b64x15[_0xc8b8[29]](_0x3b64x16)[_0xc8b8[52]](_0x3b64x27)}}exports[_0xc8b8[53]]= function(_0x3b64x28,_0x3b64x15){var _0x3b64x1b={},_0x3b64x29={};_0x3b64x29[_0xc8b8[54]]= _[_0xc8b8[57]](db[_0xc8b8[56]][_0xc8b8[55]]);_0x3b64x29[_0xc8b8[58]]= _[_0xc8b8[57]](_0x3b64x28[_0xc8b8[58]]);_0x3b64x29[_0xc8b8[59]]= _[_0xc8b8[60]](_0x3b64x29[_0xc8b8[54]],_0x3b64x29[_0xc8b8[58]]);_0x3b64x1b[_0xc8b8[61]]= _[_0xc8b8[60]](_0x3b64x29[_0xc8b8[54]],qs[_0xc8b8[62]](_0x3b64x28[_0xc8b8[58]][_0xc8b8[62]]));_0x3b64x1b[_0xc8b8[61]]= (_0x3b64x1b[_0xc8b8[61]][_0xc8b8[63]])?_0x3b64x1b[_0xc8b8[61]]:_0x3b64x29[_0xc8b8[54]];if(!_0x3b64x28[_0xc8b8[58]][_0xc8b8[65]](_0xc8b8[64])){_0x3b64x1b[_0xc8b8[35]]= qs[_0xc8b8[35]](_0x3b64x28[_0xc8b8[58]][_0xc8b8[35]]);_0x3b64x1b[_0xc8b8[34]]= qs[_0xc8b8[34]](_0x3b64x28[_0xc8b8[58]][_0xc8b8[34]])};_0x3b64x1b[_0xc8b8[66]]= qs[_0xc8b8[67]](_0x3b64x28[_0xc8b8[58]][_0xc8b8[67]]);_0x3b64x1b[_0xc8b8[68]]= qs[_0xc8b8[59]](_[_0xc8b8[69]](_0x3b64x28[_0xc8b8[58]],_0x3b64x29[_0xc8b8[59]]));if(_0x3b64x28[_0xc8b8[58]][_0xc8b8[70]]){_0x3b64x1b[_0xc8b8[68]]= _[_0xc8b8[73]](_0x3b64x1b[_0xc8b8[68]],{$or:_[_0xc8b8[72]](_0x3b64x1b[_0xc8b8[61]],function(_0x3b64x2a){var _0x3b64x2b={};_0x3b64x2b[_0x3b64x2a]= {$like:_0xc8b8[71]+ _0x3b64x28[_0xc8b8[58]][_0xc8b8[70]]+ _0xc8b8[71]};return _0x3b64x2b})})};_0x3b64x1b= _[_0xc8b8[73]]({},_0x3b64x1b,_0x3b64x28[_0xc8b8[74]]);return db[_0xc8b8[56]][_0xc8b8[76]](_0x3b64x1b)[_0xc8b8[45]](respondWithFilteredResult(_0x3b64x15,_0x3b64x1b,_0xc8b8[53]))[_0xc8b8[75]](handleError(_0x3b64x15,null,_0xc8b8[53]))};exports[_0xc8b8[77]]= function(_0x3b64x28,_0x3b64x15){var _0x3b64x1b={raw:false,where:{id:_0x3b64x28[_0xc8b8[79]][_0xc8b8[78]]}},_0x3b64x29={};_0x3b64x29[_0xc8b8[54]]= _[_0xc8b8[57]](db[_0xc8b8[56]][_0xc8b8[55]]);_0x3b64x29[_0xc8b8[58]]= _[_0xc8b8[57]](_0x3b64x28[_0xc8b8[58]]);_0x3b64x29[_0xc8b8[59]]= _[_0xc8b8[60]](_0x3b64x29[_0xc8b8[54]],_0x3b64x29[_0xc8b8[58]]);_0x3b64x1b[_0xc8b8[61]]= _[_0xc8b8[60]](_0x3b64x29[_0xc8b8[54]],qs[_0xc8b8[62]](_0x3b64x28[_0xc8b8[58]][_0xc8b8[62]]));_0x3b64x1b[_0xc8b8[61]]= (_0x3b64x1b[_0xc8b8[61]][_0xc8b8[63]])?_0x3b64x1b[_0xc8b8[61]]:_0x3b64x29[_0xc8b8[54]];_0x3b64x1b= _[_0xc8b8[73]]({},_0x3b64x1b,_0x3b64x28[_0xc8b8[74]]);return db[_0xc8b8[56]][_0xc8b8[80]](_0x3b64x1b)[_0xc8b8[45]](handleEntityNotFound(_0x3b64x15,null,_0xc8b8[77]))[_0xc8b8[45]](respondWithResult(_0x3b64x15,null,_0xc8b8[77]))[_0xc8b8[75]](handleError(_0x3b64x15,null,_0xc8b8[77]))};exports[_0xc8b8[81]]= function(_0x3b64x28,_0x3b64x15){return db[_0xc8b8[56]][_0xc8b8[81]](_0x3b64x28[_0xc8b8[82]],{})[_0xc8b8[45]](respondWithResult(_0x3b64x15,201,_0xc8b8[81]))[_0xc8b8[75]](handleError(_0x3b64x15,null,_0xc8b8[81]))};exports[_0xc8b8[46]]= function(_0x3b64x28,_0x3b64x15){if(_0x3b64x28[_0xc8b8[82]][_0xc8b8[78]]){delete _0x3b64x28[_0xc8b8[82]][_0xc8b8[78]]};return db[_0xc8b8[56]][_0xc8b8[80]]({where:{id:_0x3b64x28[_0xc8b8[79]][_0xc8b8[78]]}})[_0xc8b8[45]](handleEntityNotFound(_0x3b64x15,null,_0xc8b8[46]))[_0xc8b8[45]](saveUpdates(_0x3b64x28[_0xc8b8[82]],null,_0xc8b8[46]))[_0xc8b8[45]](respondWithResult(_0x3b64x15,null,_0xc8b8[46]))[_0xc8b8[75]](handleError(_0x3b64x15,null,_0xc8b8[46]))};exports[_0xc8b8[48]]= function(_0x3b64x28,_0x3b64x15){return db[_0xc8b8[56]][_0xc8b8[80]]({where:{id:_0x3b64x28[_0xc8b8[79]][_0xc8b8[78]]}})[_0xc8b8[45]](handleEntityNotFound(_0x3b64x15,null,_0xc8b8[48]))[_0xc8b8[45]](removeEntity(_0x3b64x15,null,_0xc8b8[48]))[_0xc8b8[75]](handleError(_0x3b64x15,null,_0xc8b8[48]))};exports[_0xc8b8[83]]= function(_0x3b64x28,_0x3b64x15){return db[_0xc8b8[56]][_0xc8b8[83]]()[_0xc8b8[45]](respondWithResult(_0x3b64x15,null,_0xc8b8[83]))[_0xc8b8[75]](handleError(_0x3b64x15,null,_0xc8b8[83]))}
\ No newline at end of file
diff --git a/server/api/openchannelSessionReport/openchannelSessionReport.model.js b/server/api/openchannelSessionReport/openchannelSessionReport.model.js
new file mode 100644 (file)
index 0000000..7535cf9
--- /dev/null
@@ -0,0 +1 @@
+var _0xba93=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0xba93[0];var _=require(_0xba93[1]);var util=require(_0xba93[2]);var logger=require(_0xba93[4])(_0xba93[3]);var attributes=require(_0xba93[5]);module[_0xba93[6]]= function(_0xc110x5,_0xc110x6){return _0xc110x5[_0xba93[9]](_0xba93[7],attributes,{tableName:_0xba93[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/openchannelSessionReport/openchannelSessionReport.rpc.js b/server/api/openchannelSessionReport/openchannelSessionReport.rpc.js
new file mode 100644 (file)
index 0000000..2915dc9
--- /dev/null
@@ -0,0 +1 @@
+var _0x7deb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x7deb[0];var _=require(_0x7deb[1]);var util=require(_0x7deb[2]);var moment=require(_0x7deb[3]);var BPromise=require(_0x7deb[4]);var db=require(_0x7deb[6])[_0x7deb[5]];var utils=require(_0x7deb[7]);var logger=require(_0x7deb[9])(_0x7deb[8]);var jayson=require(_0x7deb[10]);var client=jayson[_0x7deb[12]][_0x7deb[11]]({port:9002});function respondWithRpcPromise(_0x47bdxb,_0x47bdxc,_0x47bdxd){return  new BPromise(function(_0x47bdxe,_0x47bdxf){return client[_0x7deb[25]](_0x47bdxb,_0x47bdxd)[_0x7deb[24]](function(_0x47bdx11){logger[_0x7deb[17]](_0x7deb[13],_0x47bdxc,_0x7deb[16]);logger[_0x7deb[20]](_0x7deb[18],_0x47bdxc,_0x7deb[16],JSON[_0x7deb[19]](_0x47bdx11));if(_0x47bdx11[_0x7deb[14]]){if(_0x47bdx11[_0x7deb[14]][_0x7deb[21]]=== 500){logger[_0x7deb[14]](_0x7deb[13],_0x47bdxc,_0x47bdx11[_0x7deb[14]][_0x7deb[22]]);return _0x47bdxf(_0x47bdx11[_0x7deb[14]][_0x7deb[22]])};logger[_0x7deb[14]](_0x7deb[13],_0x47bdxc,_0x47bdx11[_0x7deb[14]][_0x7deb[22]]);return _0x47bdxe(_0x47bdx11[_0x7deb[14]][_0x7deb[22]])}else {logger[_0x7deb[17]](_0x7deb[13],_0x47bdxc,_0x7deb[16]);_0x47bdxe(_0x47bdx11[_0x7deb[23]][_0x7deb[22]])}})[_0x7deb[15]](function(_0x47bdx10){logger[_0x7deb[14]](_0x7deb[13],_0x47bdxc,_0x47bdx10);_0x47bdxf(_0x47bdx10)})})}
\ No newline at end of file
diff --git a/server/api/pause/index.js b/server/api/pause/index.js
new file mode 100644 (file)
index 0000000..9cc2b25
--- /dev/null
@@ -0,0 +1 @@
+var _0x60e8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x70\x61\x75\x73\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x60e8[0];var multer=require(_0x60e8[1]);var util=require(_0x60e8[2]);var path=require(_0x60e8[3]);var express=require(_0x60e8[4]);var router=express.Router();var auth=require(_0x60e8[5]);var config=require(_0x60e8[6]);var controller=require(_0x60e8[7]);router[_0x60e8[11]](_0x60e8[8],auth[_0x60e8[9]](),controller[_0x60e8[10]]);router[_0x60e8[11]](_0x60e8[12],auth[_0x60e8[9]](),controller[_0x60e8[13]]);router[_0x60e8[15]](_0x60e8[8],auth[_0x60e8[9]](),controller[_0x60e8[14]]);router[_0x60e8[17]](_0x60e8[12],auth[_0x60e8[9]](),controller[_0x60e8[16]]);router[_0x60e8[19]](_0x60e8[12],auth[_0x60e8[9]](),controller[_0x60e8[18]]);module[_0x60e8[20]]= router
\ No newline at end of file
diff --git a/server/api/pause/pause.attributes.js b/server/api/pause/pause.attributes.js
new file mode 100644 (file)
index 0000000..3f20a0b
--- /dev/null
@@ -0,0 +1 @@
+var _0xba64=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0xba64[0];var Sequelize=require(_0xba64[1]);module[_0xba64[2]]= {name:{type:Sequelize[_0xba64[3]],unique:_0xba64[4],allowNull:false},description:{type:Sequelize[_0xba64[3]]}}
\ No newline at end of file
diff --git a/server/api/pause/pause.controller.js b/server/api/pause/pause.controller.js
new file mode 100644 (file)
index 0000000..126b1c8
--- /dev/null
@@ -0,0 +1 @@
+var _0x2d92=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x50\x61\x75\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x50\x61\x75\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x50\x61\x75\x73\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x2d92[0];var jsonpatch=require(_0x2d92[1]);var rp=require(_0x2d92[2]);var moment=require(_0x2d92[3]);var BPromise=require(_0x2d92[4]);var util=require(_0x2d92[5]);var path=require(_0x2d92[6]);var sox=require(_0x2d92[7]);var ejs=require(_0x2d92[8]);var fs=require(_0x2d92[9]);var _=require(_0x2d92[10]);var squel=require(_0x2d92[11]);var crypto=require(_0x2d92[12]);var jsforce=require(_0x2d92[13]);var toCsv=require(_0x2d92[14]);var qs=require(_0x2d92[15]);var logger=require(_0x2d92[17])(_0x2d92[16]);var utils=require(_0x2d92[18]);var config=require(_0x2d92[19]);var db=require(_0x2d92[21])[_0x2d92[20]];function respondWithStatusCode(_0x1cc1x15,_0x1cc1x16,_0x1cc1x17){_0x1cc1x16= _0x1cc1x16|| 204;return function(_0x1cc1x18){if(_0x1cc1x18){logger[_0x2d92[24]](_0x2d92[22],_0x1cc1x17,_0x1cc1x16,_0x2d92[23]);logger[_0x2d92[26]](_0x2d92[25],_0x1cc1x17,_0x1cc1x16,_0x2d92[23]);return _0x1cc1x15[_0x2d92[27]](_0x1cc1x16)};return _0x1cc1x15[_0x2d92[29]](304)[_0x2d92[28]]()}}function respondWithResult(_0x1cc1x15,_0x1cc1x16,_0x1cc1x17){_0x1cc1x16= _0x1cc1x16|| 200;return function(_0x1cc1x18){if(_0x1cc1x18){logger[_0x2d92[24]](_0x2d92[22],_0x1cc1x17,_0x1cc1x16,_0x2d92[30]);logger[_0x2d92[26]](_0x2d92[25],_0x1cc1x17,_0x1cc1x16,_0x2d92[30],JSON[_0x2d92[31]](_0x1cc1x18));return _0x1cc1x15[_0x2d92[29]](_0x1cc1x16)[_0x2d92[32]](_0x1cc1x18)};return _0x1cc1x15[_0x2d92[29]](304)[_0x2d92[28]]()}}function respondWithFilteredResult(_0x1cc1x15,_0x1cc1x1b,_0x1cc1x17){return function(_0x1cc1x18){if(_0x1cc1x18){var _0x1cc1x1c=_0x1cc1x18[_0x2d92[33]],_0x1cc1x1d=_0x1cc1x1b[_0x2d92[34]],_0x1cc1x1e=_0x1cc1x1b[_0x2d92[34]]+ _0x1cc1x1b[_0x2d92[35]],_0x1cc1x16;if(_0x1cc1x1e>= _0x1cc1x1c){_0x1cc1x1e= _0x1cc1x1c;_0x1cc1x16= 200}else {_0x1cc1x16= 206};_0x1cc1x15[_0x2d92[29]](_0x1cc1x16);logger[_0x2d92[24]](_0x2d92[22],_0x1cc1x17,_0x1cc1x16,_0x2d92[36]);logger[_0x2d92[26]](_0x2d92[25],_0x1cc1x17,_0x1cc1x16,_0x2d92[30],JSON[_0x2d92[31]](_0x1cc1x18));return _0x1cc1x15[_0x2d92[40]](_0x2d92[37],_0x1cc1x1d+ _0x2d92[38]+ _0x1cc1x1e+ _0x2d92[39]+ _0x1cc1x1c)[_0x2d92[32]](_0x1cc1x18)};return null}}function patchUpdates(_0x1cc1x20){return function(_0x1cc1x18){try{jsonpatch[_0x2d92[41]](_0x1cc1x18,_0x1cc1x20,true)}catch(err){return BPromise[_0x2d92[42]](err)};return _0x1cc1x18[_0x2d92[43]]()}}function saveUpdates(_0x1cc1x22,_0x1cc1x16,_0x1cc1x17){return function(_0x1cc1x18){if(_0x1cc1x18){return _0x1cc1x18[_0x2d92[46]](_0x1cc1x22)[_0x2d92[45]](function(_0x1cc1x23){logger[_0x2d92[24]](_0x2d92[22],_0x1cc1x17,_0x1cc1x16,_0x2d92[44]);logger[_0x2d92[26]](_0x2d92[25],_0x1cc1x17,_0x1cc1x16,_0x2d92[44],JSON[_0x2d92[31]](_0x1cc1x18));return _0x1cc1x23})};return null}}function removeEntity(_0x1cc1x15,_0x1cc1x16,_0x1cc1x17){return function(_0x1cc1x18){if(_0x1cc1x18){return _0x1cc1x18[_0x2d92[48]]()[_0x2d92[45]](function(){logger[_0x2d92[24]](_0x2d92[22],_0x1cc1x17,_0x1cc1x16,_0x2d92[47]);logger[_0x2d92[26]](_0x2d92[25],_0x1cc1x17,_0x1cc1x16,_0x2d92[47],JSON[_0x2d92[31]](_0x1cc1x18));_0x1cc1x15[_0x2d92[29]](204)[_0x2d92[28]]()})}}}function handleEntityNotFound(_0x1cc1x15,_0x1cc1x16,_0x1cc1x17){return function(_0x1cc1x18){if(!_0x1cc1x18){logger[_0x2d92[50]](_0x2d92[22],_0x1cc1x17,404,_0x2d92[49]);_0x1cc1x15[_0x2d92[29]](404)[_0x2d92[28]]();return null};return _0x1cc1x18}}function handleError(_0x1cc1x15,_0x1cc1x16,_0x1cc1x17){_0x1cc1x16= _0x1cc1x16|| 500;return function(_0x1cc1x27){logger[_0x2d92[50]](_0x2d92[22],_0x1cc1x17,_0x1cc1x16,JSON[_0x2d92[31]](_0x1cc1x27));delete _0x1cc1x27[_0x2d92[51]];_0x1cc1x15[_0x2d92[29]](_0x1cc1x16)[_0x2d92[52]](_0x1cc1x27)}}exports[_0x2d92[53]]= function(_0x1cc1x28,_0x1cc1x15){var _0x1cc1x1b={},_0x1cc1x29={};_0x1cc1x29[_0x2d92[54]]= _[_0x2d92[57]](db[_0x2d92[56]][_0x2d92[55]]);_0x1cc1x29[_0x2d92[58]]= _[_0x2d92[57]](_0x1cc1x28[_0x2d92[58]]);_0x1cc1x29[_0x2d92[59]]= _[_0x2d92[60]](_0x1cc1x29[_0x2d92[54]],_0x1cc1x29[_0x2d92[58]]);_0x1cc1x1b[_0x2d92[61]]= _[_0x2d92[60]](_0x1cc1x29[_0x2d92[54]],qs[_0x2d92[62]](_0x1cc1x28[_0x2d92[58]][_0x2d92[62]]));_0x1cc1x1b[_0x2d92[61]]= (_0x1cc1x1b[_0x2d92[61]][_0x2d92[63]])?_0x1cc1x1b[_0x2d92[61]]:_0x1cc1x29[_0x2d92[54]];if(!_0x1cc1x28[_0x2d92[58]][_0x2d92[65]](_0x2d92[64])){_0x1cc1x1b[_0x2d92[35]]= qs[_0x2d92[35]](_0x1cc1x28[_0x2d92[58]][_0x2d92[35]]);_0x1cc1x1b[_0x2d92[34]]= qs[_0x2d92[34]](_0x1cc1x28[_0x2d92[58]][_0x2d92[34]])};_0x1cc1x1b[_0x2d92[66]]= qs[_0x2d92[67]](_0x1cc1x28[_0x2d92[58]][_0x2d92[67]]);_0x1cc1x1b[_0x2d92[68]]= qs[_0x2d92[59]](_[_0x2d92[69]](_0x1cc1x28[_0x2d92[58]],_0x1cc1x29[_0x2d92[59]]));if(_0x1cc1x28[_0x2d92[58]][_0x2d92[70]]){_0x1cc1x1b[_0x2d92[68]]= _[_0x2d92[73]](_0x1cc1x1b[_0x2d92[68]],{$or:_[_0x2d92[72]](_0x1cc1x1b[_0x2d92[61]],function(_0x1cc1x2a){var _0x1cc1x2b={};_0x1cc1x2b[_0x1cc1x2a]= {$like:_0x2d92[71]+ _0x1cc1x28[_0x2d92[58]][_0x2d92[70]]+ _0x2d92[71]};return _0x1cc1x2b})})};_0x1cc1x1b= _[_0x2d92[73]]({},_0x1cc1x1b,_0x1cc1x28[_0x2d92[74]]);return db[_0x2d92[56]][_0x2d92[76]](_0x1cc1x1b)[_0x2d92[45]](respondWithFilteredResult(_0x1cc1x15,_0x1cc1x1b,_0x2d92[53]))[_0x2d92[75]](handleError(_0x1cc1x15,null,_0x2d92[53]))};exports[_0x2d92[77]]= function(_0x1cc1x28,_0x1cc1x15){var _0x1cc1x1b={raw:true,where:{id:_0x1cc1x28[_0x2d92[79]][_0x2d92[78]]}},_0x1cc1x29={};_0x1cc1x29[_0x2d92[54]]= _[_0x2d92[57]](db[_0x2d92[56]][_0x2d92[55]]);_0x1cc1x29[_0x2d92[58]]= _[_0x2d92[57]](_0x1cc1x28[_0x2d92[58]]);_0x1cc1x29[_0x2d92[59]]= _[_0x2d92[60]](_0x1cc1x29[_0x2d92[54]],_0x1cc1x29[_0x2d92[58]]);_0x1cc1x1b[_0x2d92[61]]= _[_0x2d92[60]](_0x1cc1x29[_0x2d92[54]],qs[_0x2d92[62]](_0x1cc1x28[_0x2d92[58]][_0x2d92[62]]));_0x1cc1x1b[_0x2d92[61]]= (_0x1cc1x1b[_0x2d92[61]][_0x2d92[63]])?_0x1cc1x1b[_0x2d92[61]]:_0x1cc1x29[_0x2d92[54]];_0x1cc1x1b= _[_0x2d92[73]]({},_0x1cc1x1b,_0x1cc1x28[_0x2d92[74]]);return db[_0x2d92[56]][_0x2d92[80]](_0x1cc1x1b)[_0x2d92[45]](handleEntityNotFound(_0x1cc1x15,null,_0x2d92[77]))[_0x2d92[45]](respondWithResult(_0x1cc1x15,null,_0x2d92[77]))[_0x2d92[75]](handleError(_0x1cc1x15,null,_0x2d92[77]))};exports[_0x2d92[81]]= function(_0x1cc1x28,_0x1cc1x15){return db[_0x2d92[56]][_0x2d92[81]](_0x1cc1x28[_0x2d92[82]],{})[_0x2d92[45]](respondWithResult(_0x1cc1x15,201,_0x2d92[81]))[_0x2d92[75]](handleError(_0x1cc1x15,null,_0x2d92[81]))};exports[_0x2d92[46]]= function(_0x1cc1x28,_0x1cc1x15){if(_0x1cc1x28[_0x2d92[82]][_0x2d92[78]]){delete _0x1cc1x28[_0x2d92[82]][_0x2d92[78]]};return db[_0x2d92[56]][_0x2d92[80]]({where:{id:_0x1cc1x28[_0x2d92[79]][_0x2d92[78]]}})[_0x2d92[45]](handleEntityNotFound(_0x1cc1x15,null,_0x2d92[46]))[_0x2d92[45]](saveUpdates(_0x1cc1x28[_0x2d92[82]],null,_0x2d92[46]))[_0x2d92[45]](respondWithResult(_0x1cc1x15,null,_0x2d92[46]))[_0x2d92[75]](handleError(_0x1cc1x15,null,_0x2d92[46]))};exports[_0x2d92[48]]= function(_0x1cc1x28,_0x1cc1x15){return db[_0x2d92[56]][_0x2d92[80]]({where:{id:_0x1cc1x28[_0x2d92[79]][_0x2d92[78]]}})[_0x2d92[45]](handleEntityNotFound(_0x1cc1x15,null,_0x2d92[48]))[_0x2d92[45]](removeEntity(_0x1cc1x15,null,_0x2d92[48]))[_0x2d92[75]](handleError(_0x1cc1x15,null,_0x2d92[48]))}
\ No newline at end of file
diff --git a/server/api/pause/pause.model.js b/server/api/pause/pause.model.js
new file mode 100644 (file)
index 0000000..bdde373
--- /dev/null
@@ -0,0 +1 @@
+var _0xf284=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x70\x61\x75\x73\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x50\x61\x75\x73\x65","\x74\x6F\x6F\x6C\x73\x5F\x70\x61\x75\x73\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xf284[0];var _=require(_0xf284[1]);var util=require(_0xf284[2]);var logger=require(_0xf284[4])(_0xf284[3]);var attributes=require(_0xf284[5]);module[_0xf284[6]]= function(_0xe773x5,_0xe773x6){return _0xe773x5[_0xf284[9]](_0xf284[7],attributes,{tableName:_0xf284[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/pause/pause.rpc.js b/server/api/pause/pause.rpc.js
new file mode 100644 (file)
index 0000000..d3b91e7
--- /dev/null
@@ -0,0 +1 @@
+var _0xf379=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x50\x61\x75\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x50\x61\x75\x73\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xf379[0];var _=require(_0xf379[1]);var util=require(_0xf379[2]);var moment=require(_0xf379[3]);var BPromise=require(_0xf379[4]);var db=require(_0xf379[6])[_0xf379[5]];var utils=require(_0xf379[7]);var logger=require(_0xf379[9])(_0xf379[8]);var jayson=require(_0xf379[10]);var client=jayson[_0xf379[12]][_0xf379[11]]({port:9002});function respondWithRpcPromise(_0x7a6cxb,_0x7a6cxc,_0x7a6cxd){return  new BPromise(function(_0x7a6cxe,_0x7a6cxf){return client[_0xf379[25]](_0x7a6cxb,_0x7a6cxd)[_0xf379[24]](function(_0x7a6cx11){logger[_0xf379[17]](_0xf379[13],_0x7a6cxc,_0xf379[16]);logger[_0xf379[20]](_0xf379[18],_0x7a6cxc,_0xf379[16],JSON[_0xf379[19]](_0x7a6cx11));if(_0x7a6cx11[_0xf379[14]]){if(_0x7a6cx11[_0xf379[14]][_0xf379[21]]=== 500){logger[_0xf379[14]](_0xf379[13],_0x7a6cxc,_0x7a6cx11[_0xf379[14]][_0xf379[22]]);return _0x7a6cxf(_0x7a6cx11[_0xf379[14]][_0xf379[22]])};logger[_0xf379[14]](_0xf379[13],_0x7a6cxc,_0x7a6cx11[_0xf379[14]][_0xf379[22]]);return _0x7a6cxe(_0x7a6cx11[_0xf379[14]][_0xf379[22]])}else {logger[_0xf379[17]](_0xf379[13],_0x7a6cxc,_0xf379[16]);_0x7a6cxe(_0x7a6cx11[_0xf379[23]][_0xf379[22]])}})[_0xf379[15]](function(_0x7a6cx10){logger[_0xf379[14]](_0xf379[13],_0x7a6cxc,_0x7a6cx10);_0x7a6cxf(_0x7a6cx10)})})}
\ No newline at end of file
diff --git a/server/api/pm2/index.js b/server/api/pm2/index.js
new file mode 100644 (file)
index 0000000..43d35ce
--- /dev/null
@@ -0,0 +1 @@
+var _0x30e4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x70\x6D\x32\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x30e4[0];var express=require(_0x30e4[1]);var router=express.Router();var auth=require(_0x30e4[2]);var controller=require(_0x30e4[3]);router[_0x30e4[6]](_0x30e4[4],controller[_0x30e4[5]]);router[_0x30e4[6]](_0x30e4[7],controller[_0x30e4[8]]);router[_0x30e4[10]](_0x30e4[7],controller[_0x30e4[9]]);module[_0x30e4[11]]= router
\ No newline at end of file
diff --git a/server/api/pm2/pm2.controller.js b/server/api/pm2/pm2.controller.js
new file mode 100644 (file)
index 0000000..28053c9
--- /dev/null
@@ -0,0 +1 @@
+var _0x359e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x70\x6D\x32","\x70\x6D\x32","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x70\x6D\x32\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x69\x6E\x66\x6F","\x70\x6D\x32\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x6A\x73\x6F\x6E","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6C\x69\x73\x74","\x63\x61\x74\x63\x68","\x65\x78\x70\x72\x65\x73\x73","\x6D\x6F\x74\x69\x6F\x6E\x32","\x72\x65\x6A\x65\x63\x74","\x6C\x65\x6E\x67\x74\x68","\x74\x68\x65\x6E","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x64\x65\x73\x63\x72\x69\x62\x65","\x75\x70\x64\x61\x74\x65","\x62\x6F\x64\x79","\x72\x65\x73\x74\x61\x72\x74","\x73\x74\x6F\x70","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x73\x74\x61\x74\x75\x73"];_0x359e[0];var _=require(_0x359e[1]);var pm2=require(_0x359e[2]);var logger=require(_0x359e[4])(_0x359e[3]);function handleEntityNotFound(_0x9591x5,_0x9591x6,_0x9591x7){return function(_0x9591x8){if(!_0x9591x8){logger[_0x359e[7]](_0x359e[5],_0x9591x7,404,_0x359e[6]);_0x9591x5[_0x359e[9]](404)[_0x359e[8]]();return null};return _0x9591x8}}function respondWithResult(_0x9591x5,_0x9591x6,_0x9591x7){_0x9591x6= _0x9591x6|| 200;return function(_0x9591x8){if(_0x9591x8){logger[_0x359e[11]](_0x359e[5],_0x9591x7,_0x9591x6,_0x359e[10]);logger[_0x359e[14]](_0x359e[12],_0x9591x7,_0x9591x6,_0x359e[10],JSON[_0x359e[13]](_0x9591x8));return _0x9591x5[_0x359e[9]](_0x9591x6)[_0x359e[15]](_0x9591x8)};return null}}function handleError(_0x9591x5,_0x9591x6,_0x9591x7){_0x9591x6= _0x9591x6|| 500;return function(_0x9591xb){logger[_0x359e[7]](_0x359e[5],_0x9591x7,_0x9591x6,JSON[_0x359e[13]](_0x9591xb));delete _0x9591xb[_0x359e[16]];_0x9591x5[_0x359e[9]](_0x9591x6)[_0x359e[17]](_0x9591xb)}}exports[_0x359e[18]]= function(_0x9591xc,_0x9591x5){logger[_0x359e[11]](_0x359e[19]);return pm2[_0x359e[19]]()[_0x359e[25]](function(_0x9591xd){if(_0x9591xd){logger[_0x359e[11]](_0x359e[5],_0x359e[18],200,_0x359e[10]);logger[_0x359e[14]](_0x359e[12],_0x359e[18],200,_0x359e[10],JSON[_0x359e[13]](_0x9591xd));var _0x9591xe=_[_0x359e[23]](_0x9591xd,function(_0x9591xf){return _0x9591xf[_0x359e[16]]=== _0x359e[21]|| _0x9591xf[_0x359e[16]]=== _0x359e[22]});return _0x9591x5[_0x359e[9]](200)[_0x359e[15]]({rows:_0x9591xe,count:_0x9591xe[_0x359e[24]]})};return null})[_0x359e[20]](handleError(_0x9591x5,null,_0x359e[18]))};exports[_0x359e[26]]= function(_0x9591xc,_0x9591x5){return pm2[_0x359e[29]](_0x9591xc[_0x359e[28]][_0x359e[27]])[_0x359e[25]](function(_0x9591x8){if(_0x9591x8){logger[_0x359e[11]](_0x359e[5],_0x359e[26],200,_0x359e[10]);logger[_0x359e[14]](_0x359e[12],_0x359e[26],200,_0x359e[10],JSON[_0x359e[13]](_0x9591x8));return _0x9591x5[_0x359e[9]](200)[_0x359e[15]](_0x9591x8)};return null})[_0x359e[25]](handleEntityNotFound(_0x9591x5,null,_0x359e[26]))[_0x359e[20]](handleError(_0x9591x5,null,_0x359e[26]))};exports[_0x359e[30]]= function(_0x9591xc,_0x9591x5){if(_0x9591xc[_0x359e[31]][_0x359e[27]]){delete _0x9591xc[_0x359e[31]][_0x359e[27]]};var _0x9591x10={online:_0x359e[32],stopped:_0x359e[33]};logger[_0x359e[11]](JSON[_0x359e[13]](_0x9591xc[_0x359e[31]]));logger[_0x359e[11]](JSON[_0x359e[13]](_0x9591xc[_0x359e[28]]));if(_0x9591x10[_0x359e[34]](_0x9591xc[_0x359e[31]][_0x359e[9]])){return pm2[_0x9591x10[_0x9591xc[_0x359e[31]][_0x359e[9]]]](_0x9591xc[_0x359e[28]][_0x359e[27]])[_0x359e[25]](respondWithResult(_0x9591x5,200,_0x359e[30]))[_0x359e[20]](handleError(_0x9591x5,null,_0x359e[30]))}else {logger[_0x359e[7]](_0x359e[5],_0x359e[30],500,_0x359e[6]);return _0x9591x5[_0x359e[9]](500)[_0x359e[17]]({message:_0x359e[35]})}}
\ No newline at end of file
diff --git a/server/api/rpc/index.js b/server/api/rpc/index.js
new file mode 100644 (file)
index 0000000..659dcc5
--- /dev/null
@@ -0,0 +1 @@
+var _0x887d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x72\x70\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x67\x65\x74","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64\x2F\x68\x61\x6E\x67\x75\x70","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x48\x61\x6E\x67\x75\x70","\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x3A\x75\x6E\x69\x71\x75\x65\x69\x64\x2F\x72\x65\x64\x69\x72\x65\x63\x74\x2F\x3A\x65\x78\x74\x65\x6E","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x52\x65\x64\x69\x72\x65\x63\x74","\x2F\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x2F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x2F\x61\x67\x65\x6E\x74\x73","\x61\x67\x65\x6E\x74\x73","\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x2F\x74\x72\x75\x6E\x6B\x73","\x74\x72\x75\x6E\x6B\x73","\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x887d[0];var multer=require(_0x887d[1]);var util=require(_0x887d[2]);var path=require(_0x887d[3]);var express=require(_0x887d[4]);var router=express.Router();var auth=require(_0x887d[5]);var controller=require(_0x887d[6]);router[_0x887d[9]](_0x887d[7],controller[_0x887d[8]]);router[_0x887d[9]](_0x887d[10],controller[_0x887d[11]]);router[_0x887d[9]](_0x887d[12],controller[_0x887d[13]]);router[_0x887d[9]](_0x887d[14],controller[_0x887d[15]]);router[_0x887d[9]](_0x887d[16],controller[_0x887d[17]]);router[_0x887d[9]](_0x887d[18],controller[_0x887d[19]]);router[_0x887d[9]](_0x887d[20],controller[_0x887d[21]]);router[_0x887d[9]](_0x887d[22],controller[_0x887d[23]]);router[_0x887d[9]](_0x887d[24],controller[_0x887d[25]]);router[_0x887d[9]](_0x887d[26],controller[_0x887d[27]]);router[_0x887d[9]](_0x887d[28],controller[_0x887d[29]]);module[_0x887d[30]]= router
\ No newline at end of file
diff --git a/server/api/rpc/rpc.controller.js b/server/api/rpc/rpc.controller.js
new file mode 100644 (file)
index 0000000..fa95356
--- /dev/null
@@ -0,0 +1 @@
+var _0x4670=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x52\x70\x63\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x52\x70\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x52\x70\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x73\x65\x6E\x64","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x71\x75\x65\x72\x79","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C","\x70\x61\x72\x61\x6D\x73","\x6D\x65\x72\x67\x65","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x48\x61\x6E\x67\x75\x70","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x48\x61\x6E\x67\x75\x70","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x52\x65\x64\x69\x72\x65\x63\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x43\x68\x61\x6E\x6E\x65\x6C\x52\x65\x64\x69\x72\x65\x63\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x4F\x75\x74\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x61\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x72\x75\x6E\x6B\x73","\x54\x72\x75\x6E\x6B\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x43\x61\x6D\x70\x61\x69\x67\x6E\x73"];_0x4670[0];var BPromise=require(_0x4670[1]);var moment=require(_0x4670[2]);var _=require(_0x4670[3]);var db=require(_0x4670[5])[_0x4670[4]];var logger=require(_0x4670[7])(_0x4670[6]);var jayson=require(_0x4670[8]);var client=jayson[_0x4670[10]][_0x4670[9]]({port:9002});function respondWithRpcPromise(_0xaffax9,_0xaffaxa,_0xaffaxb){return  new BPromise(function(_0xaffaxc,_0xaffaxd){return client[_0x4670[23]](_0xaffax9,_0xaffaxb)[_0x4670[22]](function(_0xaffaxf){logger[_0x4670[15]](_0x4670[11],_0xaffaxa,_0x4670[14]);logger[_0x4670[18]](_0x4670[16],_0xaffaxa,_0x4670[14],JSON[_0x4670[17]](_0xaffaxf));if(_0xaffaxf[_0x4670[12]]){if(_0xaffaxf[_0x4670[12]][_0x4670[19]]=== 500){logger[_0x4670[12]](_0x4670[11],_0xaffaxa,_0xaffaxf[_0x4670[12]][_0x4670[20]]);return _0xaffaxd(_0xaffaxf[_0x4670[12]][_0x4670[20]])};logger[_0x4670[12]](_0x4670[11],_0xaffaxa,_0xaffaxf[_0x4670[12]][_0x4670[20]]);return _0xaffaxc(_0xaffaxf[_0x4670[12]][_0x4670[20]])}else {logger[_0x4670[15]](_0x4670[11],_0xaffaxa,_0x4670[14]);_0xaffaxc(_0xaffaxf[_0x4670[21]])}})[_0x4670[13]](function(_0xaffaxe){logger[_0x4670[12]](_0x4670[11],_0xaffaxa,_0xaffaxe);_0xaffaxd(_0xaffaxe)})})}function respondWithResult(_0xaffaxf,_0xaffax11,_0xaffaxa){_0xaffax11= _0xaffax11|| 200;return function(_0xaffax12){if(_0xaffax12){logger[_0x4670[15]](_0x4670[16],_0xaffaxa,_0xaffax11,_0x4670[24]);logger[_0x4670[18]](_0x4670[25],_0xaffaxa,_0xaffax11,_0x4670[24],JSON[_0x4670[17]](_0xaffax12));return _0xaffaxf[_0x4670[27]](_0xaffax11)[_0x4670[26]](_0xaffax12)};return null}}function handleError(_0xaffaxf,_0xaffax11,_0xaffaxa){_0xaffax11= _0xaffax11|| 500;return function(_0xaffaxe){logger[_0x4670[12]](_0x4670[11],_0xaffaxa,_0xaffax11,_0xaffaxe);_0xaffaxf[_0x4670[27]](_0xaffax11)[_0x4670[28]](_0xaffaxe)}}exports[_0x4670[29]]= function(_0xaffaxb,_0xaffaxf){return respondWithRpcPromise(_0x4670[30],_0x4670[30],_0xaffaxb[_0x4670[31]])[_0x4670[22]](respondWithResult(_0xaffaxf,null,_0x4670[30]))[_0x4670[13]](handleError(_0xaffaxf,null,_0x4670[30]))};exports[_0x4670[32]]= function(_0xaffaxb,_0xaffaxf){return respondWithRpcPromise(_0x4670[33],_0x4670[33],_0xaffaxb[_0x4670[31]])[_0x4670[22]](respondWithResult(_0xaffaxf,null,_0x4670[33]))[_0x4670[13]](handleError(_0xaffaxf,null,_0x4670[33]))};exports[_0x4670[34]]= function(_0xaffaxb,_0xaffaxf){return respondWithRpcPromise(_0x4670[35],_0x4670[35],_[_0x4670[37]](_0xaffaxb[_0x4670[31]],_0xaffaxb[_0x4670[36]]))[_0x4670[22]](respondWithResult(_0xaffaxf,null,_0x4670[35]))[_0x4670[13]](handleError(_0xaffaxf,null,_0x4670[35]))};exports[_0x4670[38]]= function(_0xaffaxb,_0xaffaxf){return respondWithRpcPromise(_0x4670[39],_0x4670[39],_[_0x4670[37]](_0xaffaxb[_0x4670[31]],_0xaffaxb[_0x4670[36]]))[_0x4670[22]](respondWithResult(_0xaffaxf,null,_0x4670[39]))[_0x4670[13]](handleError(_0xaffaxf,null,_0x4670[39]))};exports[_0x4670[40]]= function(_0xaffaxb,_0xaffaxf){return respondWithRpcPromise(_0x4670[41],_0x4670[41],_[_0x4670[37]](_0xaffaxb[_0x4670[31]],_0xaffaxb[_0x4670[36]]))[_0x4670[22]](respondWithResult(_0xaffaxf,null,_0x4670[41]))[_0x4670[13]](handleError(_0xaffaxf,null,_0x4670[41]))};exports[_0x4670[42]]= function(_0xaffaxb,_0xaffaxf){return respondWithRpcPromise(_0x4670[43],_0x4670[43],_0xaffaxb[_0x4670[31]])[_0x4670[22]](respondWithResult(_0xaffaxf,null,_0x4670[43]))[_0x4670[13]](handleError(_0xaffaxf,null,_0x4670[43]))};exports[_0x4670[44]]= function(_0xaffaxb,_0xaffaxf){return respondWithRpcPromise(_0x4670[45],_0x4670[45],_0xaffaxb[_0x4670[31]])[_0x4670[22]](respondWithResult(_0xaffaxf,null,_0x4670[45]))[_0x4670[13]](handleError(_0xaffaxf,null,_0x4670[45]))};exports[_0x4670[46]]= function(_0xaffaxb,_0xaffaxf){return respondWithRpcPromise(_0x4670[47],_0x4670[47],_0xaffaxb[_0x4670[31]])[_0x4670[22]](respondWithResult(_0xaffaxf,null,_0x4670[47]))[_0x4670[13]](handleError(_0xaffaxf,null,_0x4670[47]))};exports[_0x4670[48]]= function(_0xaffaxb,_0xaffaxf){return respondWithRpcPromise(_0x4670[49],_0x4670[49],_0xaffaxb[_0x4670[31]])[_0x4670[22]](respondWithResult(_0xaffaxf,null,_0x4670[49]))[_0x4670[13]](handleError(_0xaffaxf,null,_0x4670[49]))};exports[_0x4670[50]]= function(_0xaffaxb,_0xaffaxf){return respondWithRpcPromise(_0x4670[51],_0x4670[51],_0xaffaxb[_0x4670[31]])[_0x4670[22]](respondWithResult(_0xaffaxf,null,_0x4670[51]))[_0x4670[13]](handleError(_0xaffaxf,null,_0x4670[51]))};exports[_0x4670[52]]= function(_0xaffaxb,_0xaffaxf){return respondWithRpcPromise(_0x4670[53],_0x4670[53],_0xaffaxb[_0x4670[31]])[_0x4670[22]](respondWithResult(_0xaffaxf,null,_0x4670[53]))[_0x4670[13]](handleError(_0xaffaxf,null,_0x4670[53]))}
\ No newline at end of file
diff --git a/server/api/schedule/index.js b/server/api/schedule/index.js
new file mode 100644 (file)
index 0000000..db2f81f
--- /dev/null
@@ -0,0 +1 @@
+var _0x8a4c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8a4c[0];var multer=require(_0x8a4c[1]);var util=require(_0x8a4c[2]);var path=require(_0x8a4c[3]);var express=require(_0x8a4c[4]);var router=express.Router();var auth=require(_0x8a4c[5]);var config=require(_0x8a4c[6]);var controller=require(_0x8a4c[7]);router[_0x8a4c[11]](_0x8a4c[8],auth[_0x8a4c[9]](),controller[_0x8a4c[10]]);router[_0x8a4c[11]](_0x8a4c[12],auth[_0x8a4c[9]](),controller[_0x8a4c[13]]);router[_0x8a4c[15]](_0x8a4c[8],auth[_0x8a4c[9]](),controller[_0x8a4c[14]]);router[_0x8a4c[17]](_0x8a4c[12],auth[_0x8a4c[9]](),controller[_0x8a4c[16]]);router[_0x8a4c[19]](_0x8a4c[12],auth[_0x8a4c[9]](),controller[_0x8a4c[18]]);module[_0x8a4c[20]]= router
\ No newline at end of file
diff --git a/server/api/schedule/schedule.attributes.js b/server/api/schedule/schedule.attributes.js
new file mode 100644 (file)
index 0000000..5224b6c
--- /dev/null
@@ -0,0 +1 @@
+var _0x339c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52"];_0x339c[0];var Sequelize=require(_0x339c[1]);module[_0x339c[2]]= {name:{type:Sequelize[_0x339c[3]]},description:{type:Sequelize[_0x339c[3]]},type:{type:Sequelize[_0x339c[3]]},active:{type:Sequelize[_0x339c[4]],defaultValue:false},reportRange:{type:Sequelize[_0x339c[3]]},sendMail:{type:Sequelize[_0x339c[4]],defaultValue:false},email:{type:Sequelize[_0x339c[3]],validate:{isEmail:true}},validityStart:{type:Sequelize[_0x339c[5]],defaultValue:8},validityEnd:{type:Sequelize[_0x339c[5]],defaultValue:16},cronType:{type:Sequelize[_0x339c[3]]},cron:{type:Sequelize[_0x339c[3]]},reportType:{type:Sequelize[_0x339c[3]]},reportId:{type:Sequelize[_0x339c[5]]},reportOutput:{type:Sequelize[_0x339c[3]]},defaultEntry:{type:Sequelize[_0x339c[4]],defaultValue:false}}
\ No newline at end of file
diff --git a/server/api/schedule/schedule.controller.js b/server/api/schedule/schedule.controller.js
new file mode 100644 (file)
index 0000000..25cb6b2
--- /dev/null
@@ -0,0 +1 @@
+var _0x82d7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x63\x68\x65\x64\x75\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x63\x68\x65\x64\x75\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x63\x68\x65\x64\x75\x6C\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x82d7[0];var jsonpatch=require(_0x82d7[1]);var rp=require(_0x82d7[2]);var moment=require(_0x82d7[3]);var BPromise=require(_0x82d7[4]);var util=require(_0x82d7[5]);var path=require(_0x82d7[6]);var sox=require(_0x82d7[7]);var ejs=require(_0x82d7[8]);var fs=require(_0x82d7[9]);var _=require(_0x82d7[10]);var squel=require(_0x82d7[11]);var crypto=require(_0x82d7[12]);var jsforce=require(_0x82d7[13]);var toCsv=require(_0x82d7[14]);var qs=require(_0x82d7[15]);var logger=require(_0x82d7[17])(_0x82d7[16]);var utils=require(_0x82d7[18]);var config=require(_0x82d7[19]);var db=require(_0x82d7[21])[_0x82d7[20]];function respondWithStatusCode(_0x895cx15,_0x895cx16,_0x895cx17){_0x895cx16= _0x895cx16|| 204;return function(_0x895cx18){if(_0x895cx18){logger[_0x82d7[24]](_0x82d7[22],_0x895cx17,_0x895cx16,_0x82d7[23]);logger[_0x82d7[26]](_0x82d7[25],_0x895cx17,_0x895cx16,_0x82d7[23]);return _0x895cx15[_0x82d7[27]](_0x895cx16)};return _0x895cx15[_0x82d7[29]](304)[_0x82d7[28]]()}}function respondWithResult(_0x895cx15,_0x895cx16,_0x895cx17){_0x895cx16= _0x895cx16|| 200;return function(_0x895cx18){if(_0x895cx18){logger[_0x82d7[24]](_0x82d7[22],_0x895cx17,_0x895cx16,_0x82d7[30]);logger[_0x82d7[26]](_0x82d7[25],_0x895cx17,_0x895cx16,_0x82d7[30],JSON[_0x82d7[31]](_0x895cx18));return _0x895cx15[_0x82d7[29]](_0x895cx16)[_0x82d7[32]](_0x895cx18)};return _0x895cx15[_0x82d7[29]](304)[_0x82d7[28]]()}}function respondWithFilteredResult(_0x895cx15,_0x895cx1b,_0x895cx17){return function(_0x895cx18){if(_0x895cx18){var _0x895cx1c=_0x895cx18[_0x82d7[33]],_0x895cx1d=_0x895cx1b[_0x82d7[34]],_0x895cx1e=_0x895cx1b[_0x82d7[34]]+ _0x895cx1b[_0x82d7[35]],_0x895cx16;if(_0x895cx1e>= _0x895cx1c){_0x895cx1e= _0x895cx1c;_0x895cx16= 200}else {_0x895cx16= 206};_0x895cx15[_0x82d7[29]](_0x895cx16);logger[_0x82d7[24]](_0x82d7[22],_0x895cx17,_0x895cx16,_0x82d7[36]);logger[_0x82d7[26]](_0x82d7[25],_0x895cx17,_0x895cx16,_0x82d7[30],JSON[_0x82d7[31]](_0x895cx18));return _0x895cx15[_0x82d7[40]](_0x82d7[37],_0x895cx1d+ _0x82d7[38]+ _0x895cx1e+ _0x82d7[39]+ _0x895cx1c)[_0x82d7[32]](_0x895cx18)};return null}}function patchUpdates(_0x895cx20){return function(_0x895cx18){try{jsonpatch[_0x82d7[41]](_0x895cx18,_0x895cx20,true)}catch(err){return BPromise[_0x82d7[42]](err)};return _0x895cx18[_0x82d7[43]]()}}function saveUpdates(_0x895cx22,_0x895cx16,_0x895cx17){return function(_0x895cx18){if(_0x895cx18){return _0x895cx18[_0x82d7[46]](_0x895cx22)[_0x82d7[45]](function(_0x895cx23){logger[_0x82d7[24]](_0x82d7[22],_0x895cx17,_0x895cx16,_0x82d7[44]);logger[_0x82d7[26]](_0x82d7[25],_0x895cx17,_0x895cx16,_0x82d7[44],JSON[_0x82d7[31]](_0x895cx18));return _0x895cx23})};return null}}function removeEntity(_0x895cx15,_0x895cx16,_0x895cx17){return function(_0x895cx18){if(_0x895cx18){return _0x895cx18[_0x82d7[48]]()[_0x82d7[45]](function(){logger[_0x82d7[24]](_0x82d7[22],_0x895cx17,_0x895cx16,_0x82d7[47]);logger[_0x82d7[26]](_0x82d7[25],_0x895cx17,_0x895cx16,_0x82d7[47],JSON[_0x82d7[31]](_0x895cx18));_0x895cx15[_0x82d7[29]](204)[_0x82d7[28]]()})}}}function handleEntityNotFound(_0x895cx15,_0x895cx16,_0x895cx17){return function(_0x895cx18){if(!_0x895cx18){logger[_0x82d7[50]](_0x82d7[22],_0x895cx17,404,_0x82d7[49]);_0x895cx15[_0x82d7[29]](404)[_0x82d7[28]]();return null};return _0x895cx18}}function handleError(_0x895cx15,_0x895cx16,_0x895cx17){_0x895cx16= _0x895cx16|| 500;return function(_0x895cx27){logger[_0x82d7[50]](_0x82d7[22],_0x895cx17,_0x895cx16,JSON[_0x82d7[31]](_0x895cx27));delete _0x895cx27[_0x82d7[51]];_0x895cx15[_0x82d7[29]](_0x895cx16)[_0x82d7[52]](_0x895cx27)}}exports[_0x82d7[53]]= function(_0x895cx28,_0x895cx15){var _0x895cx1b={},_0x895cx29={};_0x895cx29[_0x82d7[54]]= _[_0x82d7[57]](db[_0x82d7[56]][_0x82d7[55]]);_0x895cx29[_0x82d7[58]]= _[_0x82d7[57]](_0x895cx28[_0x82d7[58]]);_0x895cx29[_0x82d7[59]]= _[_0x82d7[60]](_0x895cx29[_0x82d7[54]],_0x895cx29[_0x82d7[58]]);_0x895cx1b[_0x82d7[61]]= _[_0x82d7[60]](_0x895cx29[_0x82d7[54]],qs[_0x82d7[62]](_0x895cx28[_0x82d7[58]][_0x82d7[62]]));_0x895cx1b[_0x82d7[61]]= (_0x895cx1b[_0x82d7[61]][_0x82d7[63]])?_0x895cx1b[_0x82d7[61]]:_0x895cx29[_0x82d7[54]];if(!_0x895cx28[_0x82d7[58]][_0x82d7[65]](_0x82d7[64])){_0x895cx1b[_0x82d7[35]]= qs[_0x82d7[35]](_0x895cx28[_0x82d7[58]][_0x82d7[35]]);_0x895cx1b[_0x82d7[34]]= qs[_0x82d7[34]](_0x895cx28[_0x82d7[58]][_0x82d7[34]])};_0x895cx1b[_0x82d7[66]]= qs[_0x82d7[67]](_0x895cx28[_0x82d7[58]][_0x82d7[67]]);_0x895cx1b[_0x82d7[68]]= qs[_0x82d7[59]](_[_0x82d7[69]](_0x895cx28[_0x82d7[58]],_0x895cx29[_0x82d7[59]]));if(_0x895cx28[_0x82d7[58]][_0x82d7[70]]){_0x895cx1b[_0x82d7[68]]= _[_0x82d7[73]](_0x895cx1b[_0x82d7[68]],{$or:_[_0x82d7[72]](_0x895cx1b[_0x82d7[61]],function(_0x895cx2a){var _0x895cx2b={};_0x895cx2b[_0x895cx2a]= {$like:_0x82d7[71]+ _0x895cx28[_0x82d7[58]][_0x82d7[70]]+ _0x82d7[71]};return _0x895cx2b})})};_0x895cx1b= _[_0x82d7[73]]({},_0x895cx1b,_0x895cx28[_0x82d7[74]]);return db[_0x82d7[56]][_0x82d7[76]](_0x895cx1b)[_0x82d7[45]](respondWithFilteredResult(_0x895cx15,_0x895cx1b,_0x82d7[53]))[_0x82d7[75]](handleError(_0x895cx15,null,_0x82d7[53]))};exports[_0x82d7[77]]= function(_0x895cx28,_0x895cx15){var _0x895cx1b={raw:false,where:{id:_0x895cx28[_0x82d7[79]][_0x82d7[78]]}},_0x895cx29={};_0x895cx29[_0x82d7[54]]= _[_0x82d7[57]](db[_0x82d7[56]][_0x82d7[55]]);_0x895cx29[_0x82d7[58]]= _[_0x82d7[57]](_0x895cx28[_0x82d7[58]]);_0x895cx29[_0x82d7[59]]= _[_0x82d7[60]](_0x895cx29[_0x82d7[54]],_0x895cx29[_0x82d7[58]]);_0x895cx1b[_0x82d7[61]]= _[_0x82d7[60]](_0x895cx29[_0x82d7[54]],qs[_0x82d7[62]](_0x895cx28[_0x82d7[58]][_0x82d7[62]]));_0x895cx1b[_0x82d7[61]]= (_0x895cx1b[_0x82d7[61]][_0x82d7[63]])?_0x895cx1b[_0x82d7[61]]:_0x895cx29[_0x82d7[54]];_0x895cx1b= _[_0x82d7[73]]({},_0x895cx1b,_0x895cx28[_0x82d7[74]]);return db[_0x82d7[56]][_0x82d7[80]](_0x895cx1b)[_0x82d7[45]](handleEntityNotFound(_0x895cx15,null,_0x82d7[77]))[_0x82d7[45]](respondWithResult(_0x895cx15,null,_0x82d7[77]))[_0x82d7[75]](handleError(_0x895cx15,null,_0x82d7[77]))};exports[_0x82d7[81]]= function(_0x895cx28,_0x895cx15){return db[_0x82d7[56]][_0x82d7[81]](_0x895cx28[_0x82d7[82]],{})[_0x82d7[45]](respondWithResult(_0x895cx15,201,_0x82d7[81]))[_0x82d7[75]](handleError(_0x895cx15,null,_0x82d7[81]))};exports[_0x82d7[46]]= function(_0x895cx28,_0x895cx15){if(_0x895cx28[_0x82d7[82]][_0x82d7[78]]){delete _0x895cx28[_0x82d7[82]][_0x82d7[78]]};return db[_0x82d7[56]][_0x82d7[80]]({where:{id:_0x895cx28[_0x82d7[79]][_0x82d7[78]]}})[_0x82d7[45]](handleEntityNotFound(_0x895cx15,null,_0x82d7[46]))[_0x82d7[45]](saveUpdates(_0x895cx28[_0x82d7[82]],null,_0x82d7[46]))[_0x82d7[45]](respondWithResult(_0x895cx15,null,_0x82d7[46]))[_0x82d7[75]](handleError(_0x895cx15,null,_0x82d7[46]))};exports[_0x82d7[48]]= function(_0x895cx28,_0x895cx15){return db[_0x82d7[56]][_0x82d7[80]]({where:{id:_0x895cx28[_0x82d7[79]][_0x82d7[78]]}})[_0x82d7[45]](handleEntityNotFound(_0x895cx15,null,_0x82d7[48]))[_0x82d7[45]](removeEntity(_0x895cx15,null,_0x82d7[48]))[_0x82d7[75]](handleError(_0x895cx15,null,_0x82d7[48]))}
\ No newline at end of file
diff --git a/server/api/schedule/schedule.model.js b/server/api/schedule/schedule.model.js
new file mode 100644 (file)
index 0000000..e893b16
--- /dev/null
@@ -0,0 +1 @@
+var _0x1bd8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x63\x68\x65\x64\x75\x6C\x65","\x74\x6F\x6F\x6C\x73\x5F\x73\x63\x68\x65\x64\x75\x6C\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x1bd8[0];var _=require(_0x1bd8[1]);var util=require(_0x1bd8[2]);var logger=require(_0x1bd8[4])(_0x1bd8[3]);var attributes=require(_0x1bd8[5]);module[_0x1bd8[6]]= function(_0xb55ex5,_0xb55ex6){return _0xb55ex5[_0x1bd8[9]](_0x1bd8[7],attributes,{tableName:_0x1bd8[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/schedule/schedule.rpc.js b/server/api/schedule/schedule.rpc.js
new file mode 100644 (file)
index 0000000..c023f06
--- /dev/null
@@ -0,0 +1 @@
+var _0x4061=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x63\x68\x65\x64\x75\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x63\x68\x65\x64\x75\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x4061[0];var _=require(_0x4061[1]);var util=require(_0x4061[2]);var moment=require(_0x4061[3]);var BPromise=require(_0x4061[4]);var db=require(_0x4061[6])[_0x4061[5]];var utils=require(_0x4061[7]);var logger=require(_0x4061[9])(_0x4061[8]);var jayson=require(_0x4061[10]);var client=jayson[_0x4061[12]][_0x4061[11]]({port:9002});function respondWithRpcPromise(_0x3aa7xb,_0x3aa7xc,_0x3aa7xd){return  new BPromise(function(_0x3aa7xe,_0x3aa7xf){return client[_0x4061[25]](_0x3aa7xb,_0x3aa7xd)[_0x4061[24]](function(_0x3aa7x11){logger[_0x4061[17]](_0x4061[13],_0x3aa7xc,_0x4061[16]);logger[_0x4061[20]](_0x4061[18],_0x3aa7xc,_0x4061[16],JSON[_0x4061[19]](_0x3aa7x11));if(_0x3aa7x11[_0x4061[14]]){if(_0x3aa7x11[_0x4061[14]][_0x4061[21]]=== 500){logger[_0x4061[14]](_0x4061[13],_0x3aa7xc,_0x3aa7x11[_0x4061[14]][_0x4061[22]]);return _0x3aa7xf(_0x3aa7x11[_0x4061[14]][_0x4061[22]])};logger[_0x4061[14]](_0x4061[13],_0x3aa7xc,_0x3aa7x11[_0x4061[14]][_0x4061[22]]);return _0x3aa7xe(_0x3aa7x11[_0x4061[14]][_0x4061[22]])}else {logger[_0x4061[17]](_0x4061[13],_0x3aa7xc,_0x4061[16]);_0x3aa7xe(_0x3aa7x11[_0x4061[23]][_0x4061[22]])}})[_0x4061[15]](function(_0x3aa7x10){logger[_0x4061[14]](_0x4061[13],_0x3aa7xc,_0x3aa7x10);_0x3aa7xf(_0x3aa7x10)})})}
\ No newline at end of file
diff --git a/server/api/setting/index.js b/server/api/setting/index.js
new file mode 100644 (file)
index 0000000..a033af2
--- /dev/null
@@ -0,0 +1 @@
+var _0x180b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6C\x6F\x67\x6F","\x67\x65\x74\x4C\x6F\x67\x6F","\x2F\x3A\x69\x64\x2F\x6C\x6F\x67\x6F\x5F\x6C\x6F\x67\x69\x6E","\x67\x65\x74\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6C\x6F\x67\x6F\x73\x2F","\x6A\x6F\x69\x6E","\x25\x73\x25\x73","\x6C\x6F\x67\x6F","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x64\x69\x73\x6B\x53\x74\x6F\x72\x61\x67\x65","\x66\x69\x6C\x65","\x73\x69\x6E\x67\x6C\x65","\x61\x64\x64\x4C\x6F\x67\x6F","\x70\x6F\x73\x74","\x6C\x6F\x67\x6F\x6C\x6F\x67\x69\x6E","\x61\x64\x64\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x180b[0];var multer=require(_0x180b[1]);var util=require(_0x180b[2]);var path=require(_0x180b[3]);var express=require(_0x180b[4]);var router=express.Router();var auth=require(_0x180b[5]);var config=require(_0x180b[6]);var controller=require(_0x180b[7]);router[_0x180b[11]](_0x180b[8],auth[_0x180b[9]](),controller[_0x180b[10]]);router[_0x180b[11]](_0x180b[12],controller[_0x180b[13]]);router[_0x180b[11]](_0x180b[14],controller[_0x180b[15]]);router[_0x180b[11]](_0x180b[16],controller[_0x180b[17]]);var upload=multer({storage:multer[_0x180b[26]]({destination:function(_0x7e03xa,_0x7e03xb,_0x7e03xc){_0x7e03xc(null,path[_0x180b[20]](config[_0x180b[18]],_0x180b[19]))},filename:function(_0x7e03xa,_0x7e03xb,_0x7e03xc){_0x7e03xc(null,util[_0x180b[25]](_0x180b[21],_0x180b[22],path[_0x180b[24]](_0x7e03xb[_0x180b[23]])))}})});router[_0x180b[30]](_0x180b[14],upload[_0x180b[28]](_0x180b[27]),controller[_0x180b[29]]);var upload=multer({storage:multer[_0x180b[26]]({destination:function(_0x7e03xa,_0x7e03xb,_0x7e03xc){_0x7e03xc(null,path[_0x180b[20]](config[_0x180b[18]],_0x180b[19]))},filename:function(_0x7e03xa,_0x7e03xb,_0x7e03xc){_0x7e03xc(null,util[_0x180b[25]](_0x180b[21],_0x180b[31],path[_0x180b[24]](_0x7e03xb[_0x180b[23]])))}})});router[_0x180b[30]](_0x180b[16],upload[_0x180b[28]](_0x180b[27]),controller[_0x180b[32]]);router[_0x180b[34]](_0x180b[12],auth[_0x180b[9]](),controller[_0x180b[33]]);module[_0x180b[35]]= router
\ No newline at end of file
diff --git a/server/api/setting/setting.attributes.js b/server/api/setting/setting.attributes.js
new file mode 100644 (file)
index 0000000..f8e8a3a
--- /dev/null
@@ -0,0 +1 @@
+var _0x5c98=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x6D\x69\x6E\x5F\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6D\x69\x6E\x5F\x6D\x61\x69\x6C\x62\x6F\x78","\x53\x54\x52\x49\x4E\x47","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x32\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x5c98[0];var Sequelize=require(_0x5c98[1]);module[_0x5c98[2]]= {min_internal:{type:Sequelize.INTEGER(11),unique:_0x5c98[3],defaultValue:1000},min_mailbox:{type:Sequelize.INTEGER(11),unique:_0x5c98[4],defaultValue:1000},agi_port:{type:Sequelize.INTEGER(11),defaultValue:4573},soundPath:{type:Sequelize[_0x5c98[5]],defaultValue:_0x5c98[6]},logo:{type:Sequelize[_0x5c98[5]]},defaultLogo:{type:Sequelize[_0x5c98[7]],defaultValue:true},loginLogo:{type:Sequelize[_0x5c98[5]]},defaultLoginLogo:{type:Sequelize[_0x5c98[7]],defaultValue:true},headerWhiteLabel:{type:Sequelize[_0x5c98[5]]},defaultHeaderWhiteLabel:{type:Sequelize[_0x5c98[7]],defaultValue:true},securePassword:{type:Sequelize[_0x5c98[7]],defaultValue:true},firstSetup:{type:Sequelize[_0x5c98[7]],defaultValue:true},stunaddr:{type:Sequelize[_0x5c98[5]]}}
\ No newline at end of file
diff --git a/server/api/setting/setting.controller.js b/server/api/setting/setting.controller.js
new file mode 100644 (file)
index 0000000..76a3b23
--- /dev/null
@@ -0,0 +1 @@
+var _0xc6ab=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x65\x74\x74\x69\x6E\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x72\x74\x70\x2E\x65\x6A\x73","\x6A\x6F\x69\x6E","\x75\x74\x66\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x73\x74\x75\x6E\x61\x64\x64\x72","\x72\x65\x6E\x64\x65\x72","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x72\x74\x70\x5F\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6E\x66","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x63\x68\x61\x6E\x67\x65\x64","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70\x2E\x73\x6F","\x62\x6F\x64\x79","\x61\x64\x64\x4C\x6F\x67\x6F","\x66\x69\x6C\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x6C\x6F\x67\x6F","\x61\x76\x61\x64\x64\x4C\x6F\x67\x6F\x61\x74\x61\x72","\x61\x64\x64\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E","\x6C\x6F\x67\x69\x6E\x4C\x6F\x67\x6F","\x61\x76\x61\x64\x64\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E\x61\x74\x61\x72","\x67\x65\x74\x4C\x6F\x67\x6F","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6C\x6F\x67\x6F\x73","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x74\x6F\x4C\x6F\x77\x65\x72","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x64\x65\x66\x61\x75\x6C\x74\x5F\x6C\x6F\x67\x6F\x2E\x70\x6E\x67","\x64\x65\x66\x61\x75\x6C\x74","\x75\x70\x70\x65\x72\x46\x69\x72\x73\x74","\x4C\x6F\x67\x6F\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x65\x66\x61\x75\x6C\x74\x4C\x6F\x67\x6F","\x64\x65\x66\x61\x75\x6C\x74\x4C\x6F\x67\x69\x6E\x4C\x6F\x67\x6F","\x67\x65\x74\x4C\x6F\x67\x6F\x4C\x6F\x67\x69\x6E","\x64\x65\x66\x61\x75\x6C\x74\x5F\x6C\x6F\x67\x69\x6E\x4C\x6F\x67\x6F\x2E\x70\x6E\x67"];_0xc6ab[0];var jsonpatch=require(_0xc6ab[1]);var rp=require(_0xc6ab[2]);var moment=require(_0xc6ab[3]);var BPromise=require(_0xc6ab[4]);var util=require(_0xc6ab[5]);var path=require(_0xc6ab[6]);var sox=require(_0xc6ab[7]);var ejs=require(_0xc6ab[8]);var fs=require(_0xc6ab[9]);var _=require(_0xc6ab[10]);var squel=require(_0xc6ab[11]);var crypto=require(_0xc6ab[12]);var jsforce=require(_0xc6ab[13]);var toCsv=require(_0xc6ab[14]);var qs=require(_0xc6ab[15]);var logger=require(_0xc6ab[17])(_0xc6ab[16]);var utils=require(_0xc6ab[18]);var config=require(_0xc6ab[19]);var db=require(_0xc6ab[21])[_0xc6ab[20]];var jayson=require(_0xc6ab[22]);var client=jayson[_0xc6ab[24]][_0xc6ab[23]]({port:9002});function respondWithRpcPromise(_0x1270x17,_0x1270x18,_0x1270x19){return  new BPromise(function(_0x1270x1a,_0x1270x1b){return client[_0xc6ab[37]](_0x1270x17,_0x1270x19)[_0xc6ab[36]](function(_0x1270x1d){logger[_0xc6ab[29]](_0xc6ab[25],_0x1270x18,_0xc6ab[28]);logger[_0xc6ab[32]](_0xc6ab[30],_0x1270x18,_0xc6ab[28],JSON[_0xc6ab[31]](_0x1270x1d));if(_0x1270x1d[_0xc6ab[26]]){if(_0x1270x1d[_0xc6ab[26]][_0xc6ab[33]]=== 500){logger[_0xc6ab[26]](_0xc6ab[25],_0x1270x18,_0x1270x1d[_0xc6ab[26]][_0xc6ab[34]]);return _0x1270x1b(_0x1270x1d[_0xc6ab[26]][_0xc6ab[34]])};logger[_0xc6ab[26]](_0xc6ab[25],_0x1270x18,_0x1270x1d[_0xc6ab[26]][_0xc6ab[34]]);return _0x1270x1a(_0x1270x1d[_0xc6ab[26]][_0xc6ab[34]])}else {logger[_0xc6ab[29]](_0xc6ab[25],_0x1270x18,_0xc6ab[28]);_0x1270x1a(_0x1270x1d[_0xc6ab[35]][_0xc6ab[34]])}})[_0xc6ab[27]](function(_0x1270x1c){logger[_0xc6ab[26]](_0xc6ab[25],_0x1270x18,_0x1270x1c);_0x1270x1b(_0x1270x1c)})})}function respondWithStatusCode(_0x1270x1d,_0x1270x1f,_0x1270x18){_0x1270x1f= _0x1270x1f|| 204;return function(_0x1270x20){if(_0x1270x20){logger[_0xc6ab[29]](_0xc6ab[30],_0x1270x18,_0x1270x1f,_0xc6ab[38]);logger[_0xc6ab[32]](_0xc6ab[39],_0x1270x18,_0x1270x1f,_0xc6ab[38]);return _0x1270x1d[_0xc6ab[40]](_0x1270x1f)};return _0x1270x1d[_0xc6ab[42]](304)[_0xc6ab[41]]()}}function respondWithResult(_0x1270x1d,_0x1270x1f,_0x1270x18){_0x1270x1f= _0x1270x1f|| 200;return function(_0x1270x20){if(_0x1270x20){logger[_0xc6ab[29]](_0xc6ab[30],_0x1270x18,_0x1270x1f,_0xc6ab[43]);logger[_0xc6ab[32]](_0xc6ab[39],_0x1270x18,_0x1270x1f,_0xc6ab[43],JSON[_0xc6ab[31]](_0x1270x20));return _0x1270x1d[_0xc6ab[42]](_0x1270x1f)[_0xc6ab[44]](_0x1270x20)};return _0x1270x1d[_0xc6ab[42]](304)[_0xc6ab[41]]()}}function respondWithFilteredResult(_0x1270x1d,_0x1270x23,_0x1270x18){return function(_0x1270x20){if(_0x1270x20){var _0x1270x24=_0x1270x20[_0xc6ab[45]],_0x1270x25=_0x1270x23[_0xc6ab[46]],_0x1270x26=_0x1270x23[_0xc6ab[46]]+ _0x1270x23[_0xc6ab[47]],_0x1270x1f;if(_0x1270x26>= _0x1270x24){_0x1270x26= _0x1270x24;_0x1270x1f= 200}else {_0x1270x1f= 206};_0x1270x1d[_0xc6ab[42]](_0x1270x1f);logger[_0xc6ab[29]](_0xc6ab[30],_0x1270x18,_0x1270x1f,_0xc6ab[48]);logger[_0xc6ab[32]](_0xc6ab[39],_0x1270x18,_0x1270x1f,_0xc6ab[43],JSON[_0xc6ab[31]](_0x1270x20));return _0x1270x1d[_0xc6ab[52]](_0xc6ab[49],_0x1270x25+ _0xc6ab[50]+ _0x1270x26+ _0xc6ab[51]+ _0x1270x24)[_0xc6ab[44]](_0x1270x20)};return null}}function patchUpdates(_0x1270x28){return function(_0x1270x20){try{jsonpatch[_0xc6ab[53]](_0x1270x20,_0x1270x28,true)}catch(err){return BPromise[_0xc6ab[54]](err)};return _0x1270x20[_0xc6ab[55]]()}}function saveUpdates(_0x1270x2a,_0x1270x1f,_0x1270x18){return function(_0x1270x20){if(_0x1270x20){return _0x1270x20[_0xc6ab[57]](_0x1270x2a)[_0xc6ab[36]](function(_0x1270x2b){logger[_0xc6ab[29]](_0xc6ab[30],_0x1270x18,_0x1270x1f,_0xc6ab[56]);logger[_0xc6ab[32]](_0xc6ab[39],_0x1270x18,_0x1270x1f,_0xc6ab[56],JSON[_0xc6ab[31]](_0x1270x20));return _0x1270x2b})};return null}}function removeEntity(_0x1270x1d,_0x1270x1f,_0x1270x18){return function(_0x1270x20){if(_0x1270x20){return _0x1270x20[_0xc6ab[59]]()[_0xc6ab[36]](function(){logger[_0xc6ab[29]](_0xc6ab[30],_0x1270x18,_0x1270x1f,_0xc6ab[58]);logger[_0xc6ab[32]](_0xc6ab[39],_0x1270x18,_0x1270x1f,_0xc6ab[58],JSON[_0xc6ab[31]](_0x1270x20));_0x1270x1d[_0xc6ab[42]](204)[_0xc6ab[41]]()})}}}function handleEntityNotFound(_0x1270x1d,_0x1270x1f,_0x1270x18){return function(_0x1270x20){if(!_0x1270x20){logger[_0xc6ab[26]](_0xc6ab[30],_0x1270x18,404,_0xc6ab[60]);_0x1270x1d[_0xc6ab[42]](404)[_0xc6ab[41]]();return null};return _0x1270x20}}function handleError(_0x1270x1d,_0x1270x1f,_0x1270x18){_0x1270x1f= _0x1270x1f|| 500;return function(_0x1270x1c){logger[_0xc6ab[26]](_0xc6ab[30],_0x1270x18,_0x1270x1f,JSON[_0xc6ab[31]](_0x1270x1c));delete _0x1270x1c[_0xc6ab[61]];_0x1270x1d[_0xc6ab[42]](_0x1270x1f)[_0xc6ab[62]](_0x1270x1c)}}exports[_0xc6ab[63]]= function(_0x1270x19,_0x1270x1d){var _0x1270x23={},_0x1270x2f={};_0x1270x2f[_0xc6ab[64]]= _[_0xc6ab[67]](db[_0xc6ab[66]][_0xc6ab[65]]);_0x1270x2f[_0xc6ab[68]]= _[_0xc6ab[67]](_0x1270x19[_0xc6ab[68]]);_0x1270x2f[_0xc6ab[69]]= _[_0xc6ab[70]](_0x1270x2f[_0xc6ab[64]],_0x1270x2f[_0xc6ab[68]]);_0x1270x23[_0xc6ab[71]]= _[_0xc6ab[70]](_0x1270x2f[_0xc6ab[64]],qs[_0xc6ab[72]](_0x1270x19[_0xc6ab[68]][_0xc6ab[72]]));_0x1270x23[_0xc6ab[71]]= (_0x1270x23[_0xc6ab[71]][_0xc6ab[73]])?_0x1270x23[_0xc6ab[71]]:_0x1270x2f[_0xc6ab[64]];if(!_0x1270x19[_0xc6ab[68]][_0xc6ab[75]](_0xc6ab[74])){_0x1270x23[_0xc6ab[47]]= qs[_0xc6ab[47]](_0x1270x19[_0xc6ab[68]][_0xc6ab[47]]);_0x1270x23[_0xc6ab[46]]= qs[_0xc6ab[46]](_0x1270x19[_0xc6ab[68]][_0xc6ab[46]])};_0x1270x23[_0xc6ab[76]]= qs[_0xc6ab[77]](_0x1270x19[_0xc6ab[68]][_0xc6ab[77]]);_0x1270x23[_0xc6ab[78]]= qs[_0xc6ab[69]](_[_0xc6ab[79]](_0x1270x19[_0xc6ab[68]],_0x1270x2f[_0xc6ab[69]]));if(_0x1270x19[_0xc6ab[68]][_0xc6ab[80]]){_0x1270x23[_0xc6ab[78]]= _[_0xc6ab[83]](_0x1270x23[_0xc6ab[78]],{$or:_[_0xc6ab[82]](_0x1270x23[_0xc6ab[71]],function(_0x1270x30){var _0x1270x31={};_0x1270x31[_0x1270x30]= {$like:_0xc6ab[81]+ _0x1270x19[_0xc6ab[68]][_0xc6ab[80]]+ _0xc6ab[81]};return _0x1270x31})})};_0x1270x23= _[_0xc6ab[83]]({},_0x1270x23,_0x1270x19[_0xc6ab[84]]);return db[_0xc6ab[66]][_0xc6ab[85]](_0x1270x23)[_0xc6ab[36]](respondWithFilteredResult(_0x1270x1d,_0x1270x23,_0xc6ab[63]))[_0xc6ab[27]](handleError(_0x1270x1d,null,_0xc6ab[63]))};exports[_0xc6ab[86]]= function(_0x1270x19,_0x1270x1d){var _0x1270x23={raw:false,where:{id:_0x1270x19[_0xc6ab[88]][_0xc6ab[87]]}},_0x1270x2f={};_0x1270x2f[_0xc6ab[64]]= _[_0xc6ab[67]](db[_0xc6ab[66]][_0xc6ab[65]]);_0x1270x2f[_0xc6ab[68]]= _[_0xc6ab[67]](_0x1270x19[_0xc6ab[68]]);_0x1270x2f[_0xc6ab[69]]= _[_0xc6ab[70]](_0x1270x2f[_0xc6ab[64]],_0x1270x2f[_0xc6ab[68]]);_0x1270x23[_0xc6ab[71]]= _[_0xc6ab[70]](_0x1270x2f[_0xc6ab[64]],qs[_0xc6ab[72]](_0x1270x19[_0xc6ab[68]][_0xc6ab[72]]));_0x1270x23[_0xc6ab[71]]= (_0x1270x23[_0xc6ab[71]][_0xc6ab[73]])?_0x1270x23[_0xc6ab[71]]:_0x1270x2f[_0xc6ab[64]];_0x1270x23= _[_0xc6ab[83]]({},_0x1270x23,_0x1270x19[_0xc6ab[84]]);return db[_0xc6ab[66]][_0xc6ab[89]](_0x1270x23)[_0xc6ab[36]](handleEntityNotFound(_0x1270x1d,null,_0xc6ab[86]))[_0xc6ab[36]](respondWithResult(_0x1270x1d,null,_0xc6ab[86]))[_0xc6ab[27]](handleError(_0x1270x1d,null,_0xc6ab[86]))};exports[_0xc6ab[57]]= function(_0x1270x19,_0x1270x1d,_0x1270x32){var _0x1270x33;return db[_0xc6ab[66]][_0xc6ab[89]]({where:{id:_0x1270x19[_0xc6ab[88]][_0xc6ab[87]]}})[_0xc6ab[36]](handleEntityNotFound(_0x1270x1d,null,_0xc6ab[57]))[_0xc6ab[36]](saveUpdates(_0x1270x19[_0xc6ab[102]],null,_0xc6ab[57]))[_0xc6ab[36]](function(_0x1270x20){if(_0x1270x20){_0x1270x33= _0x1270x20;var _0x1270x34=fs[_0xc6ab[94]](path[_0xc6ab[92]](config[_0xc6ab[90]],_0xc6ab[91]),_0xc6ab[93]);var _0x1270x35=ejs[_0xc6ab[96]](_0x1270x34,{settings:_0x1270x20[_0xc6ab[95]]?[{stunaddr:_0x1270x20[_0xc6ab[95]]}]:[]});fs[_0xc6ab[98]](_0xc6ab[97],_0x1270x35);if(_0x1270x20[_0xc6ab[99]](_0xc6ab[95])){return respondWithRpcPromise(_0xc6ab[100],_0xc6ab[57],{module:_0xc6ab[101]})}}})[_0xc6ab[36]](function(){return _0x1270x33|| null})[_0xc6ab[36]](respondWithResult(_0x1270x1d,null,_0xc6ab[57]))[_0xc6ab[27]](handleError(_0x1270x1d,null,_0xc6ab[57]))};exports[_0xc6ab[103]]= function(_0x1270x19,_0x1270x1d,_0x1270x32){if(_0x1270x19[_0xc6ab[104]]&& _0x1270x19[_0xc6ab[104]][_0xc6ab[105]]){_0x1270x19[_0xc6ab[102]][_0xc6ab[106]]= _0x1270x19[_0xc6ab[104]][_0xc6ab[105]]};return db[_0xc6ab[66]][_0xc6ab[89]]({where:{id:_0x1270x19[_0xc6ab[88]][_0xc6ab[87]]}})[_0xc6ab[36]](handleEntityNotFound(_0x1270x1d,null,_0xc6ab[103]))[_0xc6ab[36]](saveUpdates(_0x1270x19[_0xc6ab[102]],null,_0xc6ab[103]))[_0xc6ab[36]](respondWithResult(_0x1270x1d,null,_0xc6ab[107]))[_0xc6ab[27]](handleError(_0x1270x1d,null,_0xc6ab[103]))};exports[_0xc6ab[108]]= function(_0x1270x19,_0x1270x1d,_0x1270x32){if(_0x1270x19[_0xc6ab[104]]&& _0x1270x19[_0xc6ab[104]][_0xc6ab[105]]){_0x1270x19[_0xc6ab[102]][_0xc6ab[109]]= _0x1270x19[_0xc6ab[104]][_0xc6ab[105]]};return db[_0xc6ab[66]][_0xc6ab[89]]({where:{id:_0x1270x19[_0xc6ab[88]][_0xc6ab[87]]}})[_0xc6ab[36]](handleEntityNotFound(_0x1270x1d,null,_0xc6ab[108]))[_0xc6ab[36]](saveUpdates(_0x1270x19[_0xc6ab[102]],null,_0xc6ab[108]))[_0xc6ab[36]](respondWithResult(_0x1270x1d,null,_0xc6ab[110]))[_0xc6ab[27]](handleError(_0x1270x1d,null,_0xc6ab[108]))};exports[_0xc6ab[111]]= function(_0x1270x19,_0x1270x1d,_0x1270x32){var _0x1270x36=_0xc6ab[112];return db[_0xc6ab[66]][_0xc6ab[89]]({where:{id:_0x1270x19[_0xc6ab[88]][_0xc6ab[87]]},attributes:[_0xc6ab[106],_0xc6ab[109],_0xc6ab[123],_0xc6ab[124]],raw:true})[_0xc6ab[36]](handleEntityNotFound(_0x1270x1d,null,_0xc6ab[111]))[_0xc6ab[36]](function(_0x1270x20){if(_0x1270x20){logger[_0xc6ab[29]](_0xc6ab[113],_0xc6ab[111],_0xc6ab[43]);logger[_0xc6ab[32]](_0xc6ab[114],_0xc6ab[111],_0xc6ab[43],JSON[_0xc6ab[31]](_0x1270x20));var _0x1270x37=(_0x1270x20[_0xc6ab[106]]&& fs[_0xc6ab[116]](path[_0xc6ab[92]](config[_0xc6ab[90]],_0x1270x36,_[_0xc6ab[115]](_0x1270x20[_0xc6ab[106]]))))?path[_0xc6ab[92]](config[_0xc6ab[90]],_0x1270x36,_[_0xc6ab[115]](_0x1270x20[_0xc6ab[106]])):path[_0xc6ab[92]](config[_0xc6ab[90]],_0x1270x36,_[_0xc6ab[115]](_0xc6ab[117]));var _0x1270x38=_0xc6ab[118]+ _[_0xc6ab[119]](_0xc6ab[106]);if(_0x1270x20[_0x1270x38]){_0x1270x37= path[_0xc6ab[92]](config[_0xc6ab[90]],_0x1270x36,_[_0xc6ab[115]](_0xc6ab[117]))};if(!fs[_0xc6ab[116]](_0x1270x37)){throw  new db[_0xc6ab[121]].ValidationError(_0xc6ab[120])};return _0x1270x1d[_0xc6ab[122]](_0x1270x37)}})[_0xc6ab[27]](handleError(_0x1270x1d,null,_0xc6ab[86]))};exports[_0xc6ab[125]]= function(_0x1270x19,_0x1270x1d,_0x1270x32){var _0x1270x36=_0xc6ab[112];return db[_0xc6ab[66]][_0xc6ab[89]]({where:{id:_0x1270x19[_0xc6ab[88]][_0xc6ab[87]]},attributes:[_0xc6ab[106],_0xc6ab[109],_0xc6ab[123],_0xc6ab[124]],raw:true})[_0xc6ab[36]](handleEntityNotFound(_0x1270x1d,null,_0xc6ab[125]))[_0xc6ab[36]](function(_0x1270x20){if(_0x1270x20){logger[_0xc6ab[29]](_0xc6ab[113],_0xc6ab[125],_0xc6ab[43]);logger[_0xc6ab[32]](_0xc6ab[114],_0xc6ab[125],_0xc6ab[43],JSON[_0xc6ab[31]](_0x1270x20));var _0x1270x37=(_0x1270x20[_0xc6ab[109]]&& fs[_0xc6ab[116]](path[_0xc6ab[92]](config[_0xc6ab[90]],_0x1270x36,_[_0xc6ab[115]](_0x1270x20[_0xc6ab[109]]))))?path[_0xc6ab[92]](config[_0xc6ab[90]],_0x1270x36,_[_0xc6ab[115]](_0x1270x20[_0xc6ab[109]])):path[_0xc6ab[92]](config[_0xc6ab[90]],_0x1270x36,_[_0xc6ab[115]](_0xc6ab[126]));var _0x1270x38=_0xc6ab[118]+ _[_0xc6ab[119]](_0xc6ab[109]);if(_0x1270x20[_0x1270x38]){_0x1270x37= path[_0xc6ab[92]](config[_0xc6ab[90]],_0x1270x36,_[_0xc6ab[115]](_0xc6ab[126]))};if(!fs[_0xc6ab[116]](_0x1270x37)){throw  new db[_0xc6ab[121]].ValidationError(_0xc6ab[120])};return _0x1270x1d[_0xc6ab[122]](_0x1270x37)}})[_0xc6ab[27]](handleError(_0x1270x1d,null,_0xc6ab[86]))}
\ No newline at end of file
diff --git a/server/api/setting/setting.model.js b/server/api/setting/setting.model.js
new file mode 100644 (file)
index 0000000..1fec989
--- /dev/null
@@ -0,0 +1 @@
+var _0x928c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x65\x74\x74\x69\x6E\x67","\x73\x65\x74\x74\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0x928c[0];var _=require(_0x928c[1]);var util=require(_0x928c[2]);var logger=require(_0x928c[4])(_0x928c[3]);var attributes=require(_0x928c[5]);module[_0x928c[6]]= function(_0xe1dex5,_0xe1dex6){return _0xe1dex5[_0x928c[9]](_0x928c[7],attributes,{tableName:_0x928c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/setting/setting.rpc.js b/server/api/setting/setting.rpc.js
new file mode 100644 (file)
index 0000000..a6d51a3
--- /dev/null
@@ -0,0 +1 @@
+var _0xe345=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x65\x74\x74\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xe345[0];var _=require(_0xe345[1]);var util=require(_0xe345[2]);var moment=require(_0xe345[3]);var BPromise=require(_0xe345[4]);var db=require(_0xe345[6])[_0xe345[5]];var utils=require(_0xe345[7]);var logger=require(_0xe345[9])(_0xe345[8]);var jayson=require(_0xe345[10]);var client=jayson[_0xe345[12]][_0xe345[11]]({port:9002});function respondWithRpcPromise(_0x67d5xb,_0x67d5xc,_0x67d5xd){return  new BPromise(function(_0x67d5xe,_0x67d5xf){return client[_0xe345[25]](_0x67d5xb,_0x67d5xd)[_0xe345[24]](function(_0x67d5x11){logger[_0xe345[17]](_0xe345[13],_0x67d5xc,_0xe345[16]);logger[_0xe345[20]](_0xe345[18],_0x67d5xc,_0xe345[16],JSON[_0xe345[19]](_0x67d5x11));if(_0x67d5x11[_0xe345[14]]){if(_0x67d5x11[_0xe345[14]][_0xe345[21]]=== 500){logger[_0xe345[14]](_0xe345[13],_0x67d5xc,_0x67d5x11[_0xe345[14]][_0xe345[22]]);return _0x67d5xf(_0x67d5x11[_0xe345[14]][_0xe345[22]])};logger[_0xe345[14]](_0xe345[13],_0x67d5xc,_0x67d5x11[_0xe345[14]][_0xe345[22]]);return _0x67d5xe(_0x67d5x11[_0xe345[14]][_0xe345[22]])}else {logger[_0xe345[17]](_0xe345[13],_0x67d5xc,_0xe345[16]);_0x67d5xe(_0x67d5x11[_0xe345[23]][_0xe345[22]])}})[_0xe345[15]](function(_0x67d5x10){logger[_0xe345[14]](_0xe345[13],_0x67d5xc,_0x67d5x10);_0x67d5xf(_0x67d5x10)})})}
\ No newline at end of file
diff --git a/server/api/smsAccount/index.js b/server/api/smsAccount/index.js
new file mode 100644 (file)
index 0000000..0773735
--- /dev/null
@@ -0,0 +1 @@
+var _0x6159=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6159[0];var multer=require(_0x6159[1]);var util=require(_0x6159[2]);var path=require(_0x6159[3]);var express=require(_0x6159[4]);var router=express.Router();var auth=require(_0x6159[5]);var config=require(_0x6159[6]);var controller=require(_0x6159[7]);router[_0x6159[11]](_0x6159[8],auth[_0x6159[9]](),controller[_0x6159[10]]);router[_0x6159[11]](_0x6159[12],auth[_0x6159[9]](),controller[_0x6159[13]]);router[_0x6159[11]](_0x6159[14],auth[_0x6159[9]](),controller[_0x6159[15]]);router[_0x6159[11]](_0x6159[16],auth[_0x6159[9]](),controller[_0x6159[17]]);router[_0x6159[11]](_0x6159[18],auth[_0x6159[9]](),controller[_0x6159[19]]);router[_0x6159[21]](_0x6159[8],auth[_0x6159[9]](),controller[_0x6159[20]]);router[_0x6159[21]](_0x6159[14],auth[_0x6159[9]](),controller[_0x6159[22]]);router[_0x6159[21]](_0x6159[16],auth[_0x6159[9]](),controller[_0x6159[23]]);router[_0x6159[21]](_0x6159[18],auth[_0x6159[9]](),controller[_0x6159[24]]);router[_0x6159[21]](_0x6159[18],auth[_0x6159[9]](),controller[_0x6159[25]]);router[_0x6159[27]](_0x6159[12],auth[_0x6159[9]](),controller[_0x6159[26]]);router[_0x6159[29]](_0x6159[12],auth[_0x6159[9]](),controller[_0x6159[28]]);module[_0x6159[30]]= router
\ No newline at end of file
diff --git a/server/api/smsAccount/smsAccount.attributes.js b/server/api/smsAccount/smsAccount.attributes.js
new file mode 100644 (file)
index 0000000..bca66cf
--- /dev/null
@@ -0,0 +1 @@
+var _0x1e34=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x74\x77\x69\x6C\x69\x6F","\x73\x6B\x65\x62\x62\x79","\x62\x61\x73\x69\x63","\x63\x6C\x61\x73\x73\x69\x63","\x63\x6C\x61\x73\x73\x69\x63\x2B","\x42\x4F\x4F\x4C\x45\x41\x4E","\x49\x4E\x54\x45\x47\x45\x52","\x70\x68\x6F\x6E\x65","\x47\x45\x54","\x50\x4F\x53\x54","\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x70\x61\x72\x73\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65"];_0x1e34[0];var Sequelize=require(_0x1e34[1]);module[_0x1e34[2]]= {name:{type:Sequelize[_0x1e34[3]]},description:{type:Sequelize[_0x1e34[3]]},type:{type:Sequelize.ENUM(_0x1e34[4],_0x1e34[5])},smstype:{type:Sequelize.ENUM(_0x1e34[6],_0x1e34[7],_0x1e34[8])},remote:{type:Sequelize[_0x1e34[3]]},fidelity:{type:Sequelize[_0x1e34[9]],defaultValue:false},timeout:{type:Sequelize[_0x1e34[10]],defaultValue:0},phone:{type:Sequelize[_0x1e34[3]],unique:_0x1e34[11],validate:{is:/^[0-9]+$/}},sid:{type:Sequelize[_0x1e34[3]]},token:{type:Sequelize[_0x1e34[3]]},username:{type:Sequelize[_0x1e34[3]]},password:{type:Sequelize[_0x1e34[3]]},acceptUrl:{type:Sequelize[_0x1e34[3]]},rejectUrl:{type:Sequelize[_0x1e34[3]]},acceptMethod:{type:Sequelize.ENUM(_0x1e34[12],_0x1e34[13])},rejectMethod:{type:Sequelize.ENUM(_0x1e34[12],_0x1e34[13])},closeUrl:{type:Sequelize[_0x1e34[3]]},closeMethod:{type:Sequelize.ENUM(_0x1e34[12],_0x1e34[13])},actions:{type:Sequelize[_0x1e34[3]],get:function(){return this[_0x1e34[15]](_0x1e34[14])?JSON[_0x1e34[16]](this[_0x1e34[15]](_0x1e34[14])):[]},set:function(_0x9fabx2){return this[_0x1e34[18]](_0x1e34[14],JSON[_0x1e34[17]](_0x9fabx2))}}}
\ No newline at end of file
diff --git a/server/api/smsAccount/smsAccount.controller.js b/server/api/smsAccount/smsAccount.controller.js
new file mode 100644 (file)
index 0000000..02474a4
--- /dev/null
@@ -0,0 +1 @@
+var _0x8ed8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x69\x64\x73","\x6F\x6D\x69\x74","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x67\x65\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x67\x65\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x64\x64\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x67\x65\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73"];_0x8ed8[0];var jsonpatch=require(_0x8ed8[1]);var rp=require(_0x8ed8[2]);var moment=require(_0x8ed8[3]);var BPromise=require(_0x8ed8[4]);var util=require(_0x8ed8[5]);var path=require(_0x8ed8[6]);var sox=require(_0x8ed8[7]);var ejs=require(_0x8ed8[8]);var fs=require(_0x8ed8[9]);var _=require(_0x8ed8[10]);var squel=require(_0x8ed8[11]);var crypto=require(_0x8ed8[12]);var jsforce=require(_0x8ed8[13]);var toCsv=require(_0x8ed8[14]);var qs=require(_0x8ed8[15]);var logger=require(_0x8ed8[17])(_0x8ed8[16]);var utils=require(_0x8ed8[18]);var config=require(_0x8ed8[19]);var db=require(_0x8ed8[21])[_0x8ed8[20]];function respondWithStatusCode(_0xc6eax15,_0xc6eax16,_0xc6eax17){_0xc6eax16= _0xc6eax16|| 204;return function(_0xc6eax18){if(_0xc6eax18){logger[_0x8ed8[24]](_0x8ed8[22],_0xc6eax17,_0xc6eax16,_0x8ed8[23]);logger[_0x8ed8[26]](_0x8ed8[25],_0xc6eax17,_0xc6eax16,_0x8ed8[23]);return _0xc6eax15[_0x8ed8[27]](_0xc6eax16)};return _0xc6eax15[_0x8ed8[29]](304)[_0x8ed8[28]]()}}function respondWithResult(_0xc6eax15,_0xc6eax16,_0xc6eax17){_0xc6eax16= _0xc6eax16|| 200;return function(_0xc6eax18){if(_0xc6eax18){logger[_0x8ed8[24]](_0x8ed8[22],_0xc6eax17,_0xc6eax16,_0x8ed8[30]);logger[_0x8ed8[26]](_0x8ed8[25],_0xc6eax17,_0xc6eax16,_0x8ed8[30],JSON[_0x8ed8[31]](_0xc6eax18));return _0xc6eax15[_0x8ed8[29]](_0xc6eax16)[_0x8ed8[32]](_0xc6eax18)};return _0xc6eax15[_0x8ed8[29]](304)[_0x8ed8[28]]()}}function respondWithFilteredResult(_0xc6eax15,_0xc6eax1b,_0xc6eax17){return function(_0xc6eax18){if(_0xc6eax18){var _0xc6eax1c=_0xc6eax18[_0x8ed8[33]],_0xc6eax1d=_0xc6eax1b[_0x8ed8[34]],_0xc6eax1e=_0xc6eax1b[_0x8ed8[34]]+ _0xc6eax1b[_0x8ed8[35]],_0xc6eax16;if(_0xc6eax1e>= _0xc6eax1c){_0xc6eax1e= _0xc6eax1c;_0xc6eax16= 200}else {_0xc6eax16= 206};_0xc6eax15[_0x8ed8[29]](_0xc6eax16);logger[_0x8ed8[24]](_0x8ed8[22],_0xc6eax17,_0xc6eax16,_0x8ed8[36]);logger[_0x8ed8[26]](_0x8ed8[25],_0xc6eax17,_0xc6eax16,_0x8ed8[30],JSON[_0x8ed8[31]](_0xc6eax18));return _0xc6eax15[_0x8ed8[40]](_0x8ed8[37],_0xc6eax1d+ _0x8ed8[38]+ _0xc6eax1e+ _0x8ed8[39]+ _0xc6eax1c)[_0x8ed8[32]](_0xc6eax18)};return null}}function patchUpdates(_0xc6eax20){return function(_0xc6eax18){try{jsonpatch[_0x8ed8[41]](_0xc6eax18,_0xc6eax20,true)}catch(err){return BPromise[_0x8ed8[42]](err)};return _0xc6eax18[_0x8ed8[43]]()}}function saveUpdates(_0xc6eax22,_0xc6eax16,_0xc6eax17){return function(_0xc6eax18){if(_0xc6eax18){return _0xc6eax18[_0x8ed8[46]](_0xc6eax22)[_0x8ed8[45]](function(_0xc6eax23){logger[_0x8ed8[24]](_0x8ed8[22],_0xc6eax17,_0xc6eax16,_0x8ed8[44]);logger[_0x8ed8[26]](_0x8ed8[25],_0xc6eax17,_0xc6eax16,_0x8ed8[44],JSON[_0x8ed8[31]](_0xc6eax18));return _0xc6eax23})};return null}}function removeEntity(_0xc6eax15,_0xc6eax16,_0xc6eax17){return function(_0xc6eax18){if(_0xc6eax18){return _0xc6eax18[_0x8ed8[48]]()[_0x8ed8[45]](function(){logger[_0x8ed8[24]](_0x8ed8[22],_0xc6eax17,_0xc6eax16,_0x8ed8[47]);logger[_0x8ed8[26]](_0x8ed8[25],_0xc6eax17,_0xc6eax16,_0x8ed8[47],JSON[_0x8ed8[31]](_0xc6eax18));_0xc6eax15[_0x8ed8[29]](204)[_0x8ed8[28]]()})}}}function handleEntityNotFound(_0xc6eax15,_0xc6eax16,_0xc6eax17){return function(_0xc6eax18){if(!_0xc6eax18){logger[_0x8ed8[50]](_0x8ed8[22],_0xc6eax17,404,_0x8ed8[49]);_0xc6eax15[_0x8ed8[29]](404)[_0x8ed8[28]]();return null};return _0xc6eax18}}function handleError(_0xc6eax15,_0xc6eax16,_0xc6eax17){_0xc6eax16= _0xc6eax16|| 500;return function(_0xc6eax27){logger[_0x8ed8[50]](_0x8ed8[22],_0xc6eax17,_0xc6eax16,JSON[_0x8ed8[31]](_0xc6eax27));delete _0xc6eax27[_0x8ed8[51]];_0xc6eax15[_0x8ed8[29]](_0xc6eax16)[_0x8ed8[52]](_0xc6eax27)}}exports[_0x8ed8[53]]= function(_0xc6eax28,_0xc6eax15){var _0xc6eax1b={},_0xc6eax29={};_0xc6eax29[_0x8ed8[54]]= _[_0x8ed8[57]](db[_0x8ed8[56]][_0x8ed8[55]]);_0xc6eax29[_0x8ed8[58]]= _[_0x8ed8[57]](_0xc6eax28[_0x8ed8[58]]);_0xc6eax29[_0x8ed8[59]]= _[_0x8ed8[60]](_0xc6eax29[_0x8ed8[54]],_0xc6eax29[_0x8ed8[58]]);_0xc6eax1b[_0x8ed8[61]]= _[_0x8ed8[60]](_0xc6eax29[_0x8ed8[54]],qs[_0x8ed8[62]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[62]]));_0xc6eax1b[_0x8ed8[61]]= (_0xc6eax1b[_0x8ed8[61]][_0x8ed8[63]])?_0xc6eax1b[_0x8ed8[61]]:_0xc6eax29[_0x8ed8[54]];if(!_0xc6eax28[_0x8ed8[58]][_0x8ed8[65]](_0x8ed8[64])){_0xc6eax1b[_0x8ed8[35]]= qs[_0x8ed8[35]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[35]]);_0xc6eax1b[_0x8ed8[34]]= qs[_0x8ed8[34]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[34]])};_0xc6eax1b[_0x8ed8[66]]= qs[_0x8ed8[67]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[67]]);_0xc6eax1b[_0x8ed8[68]]= qs[_0x8ed8[59]](_[_0x8ed8[69]](_0xc6eax28[_0x8ed8[58]],_0xc6eax29[_0x8ed8[59]]));if(_0xc6eax28[_0x8ed8[58]][_0x8ed8[70]]){_0xc6eax1b[_0x8ed8[68]]= _[_0x8ed8[73]](_0xc6eax1b[_0x8ed8[68]],{$or:_[_0x8ed8[72]](_0xc6eax1b[_0x8ed8[61]],function(_0xc6eax2a){var _0xc6eax2b={};_0xc6eax2b[_0xc6eax2a]= {$like:_0x8ed8[71]+ _0xc6eax28[_0x8ed8[58]][_0x8ed8[70]]+ _0x8ed8[71]};return _0xc6eax2b})})};_0xc6eax1b= _[_0x8ed8[73]]({},_0xc6eax1b,_0xc6eax28[_0x8ed8[74]]);return db[_0x8ed8[56]][_0x8ed8[76]](_0xc6eax1b)[_0x8ed8[45]](respondWithFilteredResult(_0xc6eax15,_0xc6eax1b,_0x8ed8[53]))[_0x8ed8[75]](handleError(_0xc6eax15,null,_0x8ed8[53]))};exports[_0x8ed8[77]]= function(_0xc6eax28,_0xc6eax15){var _0xc6eax1b={raw:false,where:{id:_0xc6eax28[_0x8ed8[79]][_0x8ed8[78]]}},_0xc6eax29={};_0xc6eax29[_0x8ed8[54]]= _[_0x8ed8[57]](db[_0x8ed8[56]][_0x8ed8[55]]);_0xc6eax29[_0x8ed8[58]]= _[_0x8ed8[57]](_0xc6eax28[_0x8ed8[58]]);_0xc6eax29[_0x8ed8[59]]= _[_0x8ed8[60]](_0xc6eax29[_0x8ed8[54]],_0xc6eax29[_0x8ed8[58]]);_0xc6eax1b[_0x8ed8[61]]= _[_0x8ed8[60]](_0xc6eax29[_0x8ed8[54]],qs[_0x8ed8[62]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[62]]));_0xc6eax1b[_0x8ed8[61]]= (_0xc6eax1b[_0x8ed8[61]][_0x8ed8[63]])?_0xc6eax1b[_0x8ed8[61]]:_0xc6eax29[_0x8ed8[54]];_0xc6eax1b= _[_0x8ed8[73]]({},_0xc6eax1b,_0xc6eax28[_0x8ed8[74]]);return db[_0x8ed8[56]][_0x8ed8[80]](_0xc6eax1b)[_0x8ed8[45]](handleEntityNotFound(_0xc6eax15,null,_0x8ed8[77]))[_0x8ed8[45]](respondWithResult(_0xc6eax15,null,_0x8ed8[77]))[_0x8ed8[75]](handleError(_0xc6eax15,null,_0x8ed8[77]))};exports[_0x8ed8[81]]= function(_0xc6eax28,_0xc6eax15){return db[_0x8ed8[56]][_0x8ed8[81]](_0xc6eax28[_0x8ed8[82]],{})[_0x8ed8[45]](respondWithResult(_0xc6eax15,201,_0x8ed8[81]))[_0x8ed8[75]](handleError(_0xc6eax15,null,_0x8ed8[81]))};exports[_0x8ed8[46]]= function(_0xc6eax28,_0xc6eax15){if(_0xc6eax28[_0x8ed8[82]][_0x8ed8[78]]){delete _0xc6eax28[_0x8ed8[82]][_0x8ed8[78]]};return db[_0x8ed8[56]][_0x8ed8[80]]({where:{id:_0xc6eax28[_0x8ed8[79]][_0x8ed8[78]]}})[_0x8ed8[45]](handleEntityNotFound(_0xc6eax15,null,_0x8ed8[46]))[_0x8ed8[45]](saveUpdates(_0xc6eax28[_0x8ed8[82]],null,_0x8ed8[46]))[_0x8ed8[45]](respondWithResult(_0xc6eax15,null,_0x8ed8[46]))[_0x8ed8[75]](handleError(_0xc6eax15,null,_0x8ed8[46]))};exports[_0x8ed8[48]]= function(_0xc6eax28,_0xc6eax15){return db[_0x8ed8[56]][_0x8ed8[80]]({where:{id:_0xc6eax28[_0x8ed8[79]][_0x8ed8[78]]}})[_0x8ed8[45]](handleEntityNotFound(_0xc6eax15,null,_0x8ed8[48]))[_0x8ed8[45]](removeEntity(_0xc6eax15,null,_0x8ed8[48]))[_0x8ed8[75]](handleError(_0xc6eax15,null,_0x8ed8[48]))};exports[_0x8ed8[83]]= function(_0xc6eax28,_0xc6eax15,_0xc6eax2c){return db[_0x8ed8[86]][_0x8ed8[80]]({where:{id:_0xc6eax28[_0x8ed8[79]][_0x8ed8[78]]}})[_0x8ed8[45]](handleEntityNotFound(_0xc6eax15,null,_0x8ed8[83]))[_0x8ed8[45]](function(_0xc6eax18){if(_0xc6eax18){return _0xc6eax18[_0x8ed8[83]](_0xc6eax28[_0x8ed8[82]][_0x8ed8[84]],_[_0x8ed8[85]](_0xc6eax28[_0x8ed8[82]],[_0x8ed8[84],_0x8ed8[78]])|| {})};return null})[_0x8ed8[45]](respondWithResult(_0xc6eax15,null,_0x8ed8[83]))[_0x8ed8[75]](handleError(_0xc6eax15,null,_0x8ed8[83]))};exports[_0x8ed8[87]]= function(_0xc6eax28,_0xc6eax18,_0xc6eax2c){var _0xc6eax1b={};var _0xc6eax29={};var _0xc6eax2d;var _0xc6eax1c;return db[_0x8ed8[56]][_0x8ed8[88]]({where:{id:_0xc6eax28[_0x8ed8[79]][_0x8ed8[78]]}})[_0x8ed8[45]](handleEntityNotFound(_0xc6eax18,null,_0x8ed8[87]))[_0x8ed8[45]](function(_0xc6eax18){if(_0xc6eax18){_0xc6eax2d= _0xc6eax18;_0xc6eax29[_0x8ed8[54]]= _[_0x8ed8[57]](db[_0x8ed8[86]][_0x8ed8[55]]);_0xc6eax29[_0x8ed8[58]]= _[_0x8ed8[57]](_0xc6eax28[_0x8ed8[58]]);_0xc6eax29[_0x8ed8[59]]= _[_0x8ed8[60]](_0xc6eax29[_0x8ed8[54]],_0xc6eax29[_0x8ed8[58]]);_0xc6eax1b[_0x8ed8[61]]= _[_0x8ed8[60]](_0xc6eax29[_0x8ed8[54]],qs[_0x8ed8[62]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[62]]));_0xc6eax1b[_0x8ed8[61]]= (_0xc6eax1b[_0x8ed8[61]][_0x8ed8[63]])?_0xc6eax1b[_0x8ed8[61]]:_0xc6eax29[_0x8ed8[54]];_0xc6eax1b[_0x8ed8[66]]= qs[_0x8ed8[67]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[67]]);_0xc6eax1b[_0x8ed8[68]]= qs[_0x8ed8[59]](_[_0x8ed8[69]](_0xc6eax28[_0x8ed8[58]],_0xc6eax29[_0x8ed8[59]]));if(_0xc6eax28[_0x8ed8[58]][_0x8ed8[70]]){_0xc6eax1b[_0x8ed8[68]]= _[_0x8ed8[73]](_0xc6eax1b[_0x8ed8[68]],{$or:_[_0x8ed8[72]](_0xc6eax1b[_0x8ed8[61]],function(_0xc6eax2a){var _0xc6eax2b={};_0xc6eax2b[_0xc6eax2a]= {$like:_0x8ed8[71]+ _0xc6eax28[_0x8ed8[58]][_0x8ed8[70]]+ _0x8ed8[71]};return _0xc6eax2b})})};_0xc6eax1b= _[_0x8ed8[73]]({},_0xc6eax1b,_0xc6eax28[_0x8ed8[74]]);return _0xc6eax2d[_0x8ed8[87]](_0xc6eax1b)}})[_0x8ed8[45]](function(_0xc6eax2f){if(_0xc6eax2f){_0xc6eax1c= _0xc6eax2f[_0x8ed8[63]];if(!_0xc6eax28[_0x8ed8[58]][_0x8ed8[65]](_0x8ed8[64])){_0xc6eax1b[_0x8ed8[35]]= qs[_0x8ed8[35]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[35]]);_0xc6eax1b[_0x8ed8[34]]= qs[_0x8ed8[34]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[34]])};return _0xc6eax2d[_0x8ed8[87]](_0xc6eax1b)}})[_0x8ed8[45]](function(_0xc6eax2e){return _0xc6eax2e?{count:_0xc6eax1c,rows:_0xc6eax2e}:null})[_0x8ed8[45]](respondWithResult(_0xc6eax18,null,_0x8ed8[87]))[_0x8ed8[75]](handleError(_0xc6eax18,null,_0x8ed8[87]))};exports[_0x8ed8[89]]= function(_0xc6eax28,_0xc6eax15,_0xc6eax2c){return db[_0x8ed8[90]][_0x8ed8[80]]({where:{id:_0xc6eax28[_0x8ed8[79]][_0x8ed8[78]]}})[_0x8ed8[45]](handleEntityNotFound(_0xc6eax15,null,_0x8ed8[89]))[_0x8ed8[45]](function(_0xc6eax18){if(_0xc6eax18){return _0xc6eax18[_0x8ed8[89]](_0xc6eax28[_0x8ed8[82]][_0x8ed8[84]],_[_0x8ed8[85]](_0xc6eax28[_0x8ed8[82]],[_0x8ed8[84],_0x8ed8[78]])|| {})};return null})[_0x8ed8[45]](respondWithResult(_0xc6eax15,null,_0x8ed8[89]))[_0x8ed8[75]](handleError(_0xc6eax15,null,_0x8ed8[89]))};exports[_0x8ed8[91]]= function(_0xc6eax28,_0xc6eax18,_0xc6eax2c){var _0xc6eax1b={};var _0xc6eax29={};var _0xc6eax2d;var _0xc6eax1c;return db[_0x8ed8[56]][_0x8ed8[88]]({where:{id:_0xc6eax28[_0x8ed8[79]][_0x8ed8[78]]}})[_0x8ed8[45]](handleEntityNotFound(_0xc6eax18,null,_0x8ed8[91]))[_0x8ed8[45]](function(_0xc6eax18){if(_0xc6eax18){_0xc6eax2d= _0xc6eax18;_0xc6eax29[_0x8ed8[54]]= _[_0x8ed8[57]](db[_0x8ed8[92]][_0x8ed8[55]]);_0xc6eax29[_0x8ed8[58]]= _[_0x8ed8[57]](_0xc6eax28[_0x8ed8[58]]);_0xc6eax29[_0x8ed8[59]]= _[_0x8ed8[60]](_0xc6eax29[_0x8ed8[54]],_0xc6eax29[_0x8ed8[58]]);_0xc6eax1b[_0x8ed8[61]]= _[_0x8ed8[60]](_0xc6eax29[_0x8ed8[54]],qs[_0x8ed8[62]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[62]]));_0xc6eax1b[_0x8ed8[61]]= (_0xc6eax1b[_0x8ed8[61]][_0x8ed8[63]])?_0xc6eax1b[_0x8ed8[61]]:_0xc6eax29[_0x8ed8[54]];_0xc6eax1b[_0x8ed8[66]]= qs[_0x8ed8[67]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[67]]);_0xc6eax1b[_0x8ed8[68]]= qs[_0x8ed8[59]](_[_0x8ed8[69]](_0xc6eax28[_0x8ed8[58]],_0xc6eax29[_0x8ed8[59]]));if(_0xc6eax28[_0x8ed8[58]][_0x8ed8[70]]){_0xc6eax1b[_0x8ed8[68]]= _[_0x8ed8[73]](_0xc6eax1b[_0x8ed8[68]],{$or:_[_0x8ed8[72]](_0xc6eax1b[_0x8ed8[61]],function(_0xc6eax2a){var _0xc6eax2b={};_0xc6eax2b[_0xc6eax2a]= {$like:_0x8ed8[71]+ _0xc6eax28[_0x8ed8[58]][_0x8ed8[70]]+ _0x8ed8[71]};return _0xc6eax2b})})};_0xc6eax1b= _[_0x8ed8[73]]({},_0xc6eax1b,_0xc6eax28[_0x8ed8[74]]);return _0xc6eax2d[_0x8ed8[91]](_0xc6eax1b)}})[_0x8ed8[45]](function(_0xc6eax2f){if(_0xc6eax2f){_0xc6eax1c= _0xc6eax2f[_0x8ed8[63]];if(!_0xc6eax28[_0x8ed8[58]][_0x8ed8[65]](_0x8ed8[64])){_0xc6eax1b[_0x8ed8[35]]= qs[_0x8ed8[35]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[35]]);_0xc6eax1b[_0x8ed8[34]]= qs[_0x8ed8[34]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[34]])};return _0xc6eax2d[_0x8ed8[91]](_0xc6eax1b)}})[_0x8ed8[45]](function(_0xc6eax2e){return _0xc6eax2e?{count:_0xc6eax1c,rows:_0xc6eax2e}:null})[_0x8ed8[45]](respondWithResult(_0xc6eax18,null,_0x8ed8[91]))[_0x8ed8[75]](handleError(_0xc6eax18,null,_0x8ed8[91]))};exports[_0x8ed8[93]]= function(_0xc6eax28,_0xc6eax15,_0xc6eax2c){if(_0xc6eax28[_0x8ed8[82]][_0x8ed8[78]]){delete _0xc6eax28[_0x8ed8[82]][_0x8ed8[78]]};return db[_0x8ed8[56]][_0x8ed8[80]]({where:{id:_0xc6eax28[_0x8ed8[79]][_0x8ed8[78]]}})[_0x8ed8[45]](handleEntityNotFound(_0xc6eax15,null,_0x8ed8[93]))[_0x8ed8[45]](function(_0xc6eax18){if(_0xc6eax18){_0xc6eax28[_0x8ed8[82]][_0x8ed8[94]]= _0xc6eax18[_0x8ed8[78]];return db[_0x8ed8[95]][_0x8ed8[81]](_0xc6eax28[_0x8ed8[82]])}})[_0x8ed8[45]](respondWithResult(_0xc6eax15,null,_0x8ed8[93]))[_0x8ed8[75]](handleError(_0xc6eax15,null,_0x8ed8[93]))};exports[_0x8ed8[96]]= function(_0xc6eax28,_0xc6eax15,_0xc6eax2c){return db[_0x8ed8[97]][_0x8ed8[80]]({where:{id:_0xc6eax28[_0x8ed8[79]][_0x8ed8[78]]}})[_0x8ed8[45]](handleEntityNotFound(_0xc6eax15,null,_0x8ed8[96]))[_0x8ed8[45]](function(_0xc6eax18){if(_0xc6eax18){return _0xc6eax18[_0x8ed8[96]](_0xc6eax28[_0x8ed8[82]][_0x8ed8[84]],_[_0x8ed8[85]](_0xc6eax28[_0x8ed8[82]],[_0x8ed8[84],_0x8ed8[78]])|| {})};return null})[_0x8ed8[45]](respondWithResult(_0xc6eax15,null,_0x8ed8[96]))[_0x8ed8[75]](handleError(_0xc6eax15,null,_0x8ed8[96]))};exports[_0x8ed8[98]]= function(_0xc6eax28,_0xc6eax18,_0xc6eax2c){var _0xc6eax1b={};var _0xc6eax29={};var _0xc6eax2d;var _0xc6eax1c;return db[_0x8ed8[56]][_0x8ed8[88]]({where:{id:_0xc6eax28[_0x8ed8[79]][_0x8ed8[78]]}})[_0x8ed8[45]](handleEntityNotFound(_0xc6eax18,null,_0x8ed8[98]))[_0x8ed8[45]](function(_0xc6eax18){if(_0xc6eax18){_0xc6eax2d= _0xc6eax18;_0xc6eax29[_0x8ed8[54]]= _[_0x8ed8[57]](db[_0x8ed8[95]][_0x8ed8[55]]);_0xc6eax29[_0x8ed8[58]]= _[_0x8ed8[57]](_0xc6eax28[_0x8ed8[58]]);_0xc6eax29[_0x8ed8[59]]= _[_0x8ed8[60]](_0xc6eax29[_0x8ed8[54]],_0xc6eax29[_0x8ed8[58]]);_0xc6eax1b[_0x8ed8[61]]= _[_0x8ed8[60]](_0xc6eax29[_0x8ed8[54]],qs[_0x8ed8[62]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[62]]));_0xc6eax1b[_0x8ed8[61]]= (_0xc6eax1b[_0x8ed8[61]][_0x8ed8[63]])?_0xc6eax1b[_0x8ed8[61]]:_0xc6eax29[_0x8ed8[54]];_0xc6eax1b[_0x8ed8[66]]= qs[_0x8ed8[67]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[67]]);_0xc6eax1b[_0x8ed8[68]]= qs[_0x8ed8[59]](_[_0x8ed8[69]](_0xc6eax28[_0x8ed8[58]],_0xc6eax29[_0x8ed8[59]]));if(_0xc6eax28[_0x8ed8[58]][_0x8ed8[70]]){_0xc6eax1b[_0x8ed8[68]]= _[_0x8ed8[73]](_0xc6eax1b[_0x8ed8[68]],{$or:_[_0x8ed8[72]](_0xc6eax1b[_0x8ed8[61]],function(_0xc6eax2a){var _0xc6eax2b={};_0xc6eax2b[_0xc6eax2a]= {$like:_0x8ed8[71]+ _0xc6eax28[_0x8ed8[58]][_0x8ed8[70]]+ _0x8ed8[71]};return _0xc6eax2b})})};_0xc6eax1b= _[_0x8ed8[73]]({},_0xc6eax1b,_0xc6eax28[_0x8ed8[74]]);return _0xc6eax2d[_0x8ed8[98]](_0xc6eax1b)}})[_0x8ed8[45]](function(_0xc6eax2f){if(_0xc6eax2f){_0xc6eax1c= _0xc6eax2f[_0x8ed8[63]];if(!_0xc6eax28[_0x8ed8[58]][_0x8ed8[65]](_0x8ed8[64])){_0xc6eax1b[_0x8ed8[35]]= qs[_0x8ed8[35]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[35]]);_0xc6eax1b[_0x8ed8[34]]= qs[_0x8ed8[34]](_0xc6eax28[_0x8ed8[58]][_0x8ed8[34]])};return _0xc6eax2d[_0x8ed8[98]](_0xc6eax1b)}})[_0x8ed8[45]](function(_0xc6eax2e){return _0xc6eax2e?{count:_0xc6eax1c,rows:_0xc6eax2e}:null})[_0x8ed8[45]](respondWithResult(_0xc6eax18,null,_0x8ed8[98]))[_0x8ed8[75]](handleError(_0xc6eax18,null,_0x8ed8[98]))}
\ No newline at end of file
diff --git a/server/api/smsAccount/smsAccount.model.js b/server/api/smsAccount/smsAccount.model.js
new file mode 100644 (file)
index 0000000..9007997
--- /dev/null
@@ -0,0 +1 @@
+var _0x60d1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74","\x73\x6D\x73\x5F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x60d1[0];var _=require(_0x60d1[1]);var util=require(_0x60d1[2]);var logger=require(_0x60d1[4])(_0x60d1[3]);var attributes=require(_0x60d1[5]);module[_0x60d1[6]]= function(_0xfdf3x5,_0xfdf3x6){return _0xfdf3x5[_0x60d1[9]](_0x60d1[7],attributes,{tableName:_0x60d1[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/smsAccount/smsAccount.rpc.js b/server/api/smsAccount/smsAccount.rpc.js
new file mode 100644 (file)
index 0000000..a405f95
--- /dev/null
@@ -0,0 +1 @@
+var _0xdf34=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xdf34[0];var _=require(_0xdf34[1]);var util=require(_0xdf34[2]);var moment=require(_0xdf34[3]);var BPromise=require(_0xdf34[4]);var db=require(_0xdf34[6])[_0xdf34[5]];var utils=require(_0xdf34[7]);var logger=require(_0xdf34[9])(_0xdf34[8]);var jayson=require(_0xdf34[10]);var client=jayson[_0xdf34[12]][_0xdf34[11]]({port:9002});function respondWithRpcPromise(_0xfbbfxb,_0xfbbfxc,_0xfbbfxd){return  new BPromise(function(_0xfbbfxe,_0xfbbfxf){return client[_0xdf34[25]](_0xfbbfxb,_0xfbbfxd)[_0xdf34[24]](function(_0xfbbfx11){logger[_0xdf34[17]](_0xdf34[13],_0xfbbfxc,_0xdf34[16]);logger[_0xdf34[20]](_0xdf34[18],_0xfbbfxc,_0xdf34[16],JSON[_0xdf34[19]](_0xfbbfx11));if(_0xfbbfx11[_0xdf34[14]]){if(_0xfbbfx11[_0xdf34[14]][_0xdf34[21]]=== 500){logger[_0xdf34[14]](_0xdf34[13],_0xfbbfxc,_0xfbbfx11[_0xdf34[14]][_0xdf34[22]]);return _0xfbbfxf(_0xfbbfx11[_0xdf34[14]][_0xdf34[22]])};logger[_0xdf34[14]](_0xdf34[13],_0xfbbfxc,_0xfbbfx11[_0xdf34[14]][_0xdf34[22]]);return _0xfbbfxe(_0xfbbfx11[_0xdf34[14]][_0xdf34[22]])}else {logger[_0xdf34[17]](_0xdf34[13],_0xfbbfxc,_0xdf34[16]);_0xfbbfxe(_0xfbbfx11[_0xdf34[23]][_0xdf34[22]])}})[_0xdf34[15]](function(_0xfbbfx10){logger[_0xdf34[14]](_0xdf34[13],_0xfbbfxc,_0xfbbfx10);_0xfbbfxf(_0xfbbfx10)})})}
\ No newline at end of file
diff --git a/server/api/smsApplication/index.js b/server/api/smsApplication/index.js
new file mode 100644 (file)
index 0000000..b24e814
--- /dev/null
@@ -0,0 +1 @@
+var _0xbad7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xbad7[0];var multer=require(_0xbad7[1]);var util=require(_0xbad7[2]);var path=require(_0xbad7[3]);var express=require(_0xbad7[4]);var router=express.Router();var auth=require(_0xbad7[5]);var config=require(_0xbad7[6]);var controller=require(_0xbad7[7]);router[_0xbad7[11]](_0xbad7[8],auth[_0xbad7[9]](),controller[_0xbad7[10]]);router[_0xbad7[13]](_0xbad7[8],auth[_0xbad7[9]](),controller[_0xbad7[12]]);router[_0xbad7[15]](_0xbad7[8],auth[_0xbad7[9]](),controller[_0xbad7[14]]);module[_0xbad7[16]]= router
\ No newline at end of file
diff --git a/server/api/smsApplication/smsApplication.attributes.js b/server/api/smsApplication/smsApplication.attributes.js
new file mode 100644 (file)
index 0000000..6d92a56
--- /dev/null
@@ -0,0 +1 @@
+var _0x26b8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47","\x42\x4C\x4F\x42"];_0x26b8[0];var Sequelize=require(_0x26b8[1]);module[_0x26b8[2]]= {app:{type:Sequelize.ENUM(_0x26b8[3],_0x26b8[4])},priority:{type:Sequelize[_0x26b8[5]]},timeout:{type:Sequelize[_0x26b8[5]],validate:{min:1}},interval:{type:Sequelize[_0x26b8[6]]},data1:{type:Sequelize[_0x26b8[6]]},data2:{type:Sequelize[_0x26b8[6]]},data3:{type:Sequelize[_0x26b8[6]]},data4:{type:Sequelize[_0x26b8[6]]},data5:{type:Sequelize[_0x26b8[6]]},data6:{type:Sequelize[_0x26b8[6]]},data7:{type:Sequelize[_0x26b8[7]]},data8:{type:Sequelize[_0x26b8[5]]},data9:{type:Sequelize[_0x26b8[5]]},data10:{type:Sequelize[_0x26b8[5]]}}
\ No newline at end of file
diff --git a/server/api/smsApplication/smsApplication.controller.js b/server/api/smsApplication/smsApplication.controller.js
new file mode 100644 (file)
index 0000000..3a6bfb1
--- /dev/null
@@ -0,0 +1 @@
+var _0x4d49=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x62\x6F\x64\x79"];_0x4d49[0];var jsonpatch=require(_0x4d49[1]);var rp=require(_0x4d49[2]);var moment=require(_0x4d49[3]);var BPromise=require(_0x4d49[4]);var util=require(_0x4d49[5]);var path=require(_0x4d49[6]);var sox=require(_0x4d49[7]);var ejs=require(_0x4d49[8]);var fs=require(_0x4d49[9]);var _=require(_0x4d49[10]);var squel=require(_0x4d49[11]);var crypto=require(_0x4d49[12]);var jsforce=require(_0x4d49[13]);var toCsv=require(_0x4d49[14]);var qs=require(_0x4d49[15]);var logger=require(_0x4d49[17])(_0x4d49[16]);var utils=require(_0x4d49[18]);var config=require(_0x4d49[19]);var db=require(_0x4d49[21])[_0x4d49[20]];function respondWithStatusCode(_0x3528x15,_0x3528x16,_0x3528x17){_0x3528x16= _0x3528x16|| 204;return function(_0x3528x18){if(_0x3528x18){logger[_0x4d49[24]](_0x4d49[22],_0x3528x17,_0x3528x16,_0x4d49[23]);logger[_0x4d49[26]](_0x4d49[25],_0x3528x17,_0x3528x16,_0x4d49[23]);return _0x3528x15[_0x4d49[27]](_0x3528x16)};return _0x3528x15[_0x4d49[29]](304)[_0x4d49[28]]()}}function respondWithResult(_0x3528x15,_0x3528x16,_0x3528x17){_0x3528x16= _0x3528x16|| 200;return function(_0x3528x18){if(_0x3528x18){logger[_0x4d49[24]](_0x4d49[22],_0x3528x17,_0x3528x16,_0x4d49[30]);logger[_0x4d49[26]](_0x4d49[25],_0x3528x17,_0x3528x16,_0x4d49[30],JSON[_0x4d49[31]](_0x3528x18));return _0x3528x15[_0x4d49[29]](_0x3528x16)[_0x4d49[32]](_0x3528x18)};return _0x3528x15[_0x4d49[29]](304)[_0x4d49[28]]()}}function respondWithFilteredResult(_0x3528x15,_0x3528x1b,_0x3528x17){return function(_0x3528x18){if(_0x3528x18){var _0x3528x1c=_0x3528x18[_0x4d49[33]],_0x3528x1d=_0x3528x1b[_0x4d49[34]],_0x3528x1e=_0x3528x1b[_0x4d49[34]]+ _0x3528x1b[_0x4d49[35]],_0x3528x16;if(_0x3528x1e>= _0x3528x1c){_0x3528x1e= _0x3528x1c;_0x3528x16= 200}else {_0x3528x16= 206};_0x3528x15[_0x4d49[29]](_0x3528x16);logger[_0x4d49[24]](_0x4d49[22],_0x3528x17,_0x3528x16,_0x4d49[36]);logger[_0x4d49[26]](_0x4d49[25],_0x3528x17,_0x3528x16,_0x4d49[30],JSON[_0x4d49[31]](_0x3528x18));return _0x3528x15[_0x4d49[40]](_0x4d49[37],_0x3528x1d+ _0x4d49[38]+ _0x3528x1e+ _0x4d49[39]+ _0x3528x1c)[_0x4d49[32]](_0x3528x18)};return null}}function patchUpdates(_0x3528x20){return function(_0x3528x18){try{jsonpatch[_0x4d49[41]](_0x3528x18,_0x3528x20,true)}catch(err){return BPromise[_0x4d49[42]](err)};return _0x3528x18[_0x4d49[43]]()}}function saveUpdates(_0x3528x22,_0x3528x16,_0x3528x17){return function(_0x3528x18){if(_0x3528x18){return _0x3528x18[_0x4d49[46]](_0x3528x22)[_0x4d49[45]](function(_0x3528x23){logger[_0x4d49[24]](_0x4d49[22],_0x3528x17,_0x3528x16,_0x4d49[44]);logger[_0x4d49[26]](_0x4d49[25],_0x3528x17,_0x3528x16,_0x4d49[44],JSON[_0x4d49[31]](_0x3528x18));return _0x3528x23})};return null}}function removeEntity(_0x3528x15,_0x3528x16,_0x3528x17){return function(_0x3528x18){if(_0x3528x18){return _0x3528x18[_0x4d49[48]]()[_0x4d49[45]](function(){logger[_0x4d49[24]](_0x4d49[22],_0x3528x17,_0x3528x16,_0x4d49[47]);logger[_0x4d49[26]](_0x4d49[25],_0x3528x17,_0x3528x16,_0x4d49[47],JSON[_0x4d49[31]](_0x3528x18));_0x3528x15[_0x4d49[29]](204)[_0x4d49[28]]()})}}}function handleEntityNotFound(_0x3528x15,_0x3528x16,_0x3528x17){return function(_0x3528x18){if(!_0x3528x18){logger[_0x4d49[50]](_0x4d49[22],_0x3528x17,404,_0x4d49[49]);_0x3528x15[_0x4d49[29]](404)[_0x4d49[28]]();return null};return _0x3528x18}}function handleError(_0x3528x15,_0x3528x16,_0x3528x17){_0x3528x16= _0x3528x16|| 500;return function(_0x3528x27){logger[_0x4d49[50]](_0x4d49[22],_0x3528x17,_0x3528x16,JSON[_0x4d49[31]](_0x3528x27));delete _0x3528x27[_0x4d49[51]];_0x3528x15[_0x4d49[29]](_0x3528x16)[_0x4d49[52]](_0x3528x27)}}exports[_0x4d49[53]]= function(_0x3528x28,_0x3528x15){var _0x3528x1b={raw:true,where:{id:_0x3528x28[_0x4d49[55]][_0x4d49[54]]}},_0x3528x29={};_0x3528x29[_0x4d49[56]]= _[_0x4d49[59]](db[_0x4d49[58]][_0x4d49[57]]);_0x3528x29[_0x4d49[60]]= _[_0x4d49[59]](_0x3528x28[_0x4d49[60]]);_0x3528x29[_0x4d49[61]]= _[_0x4d49[62]](_0x3528x29[_0x4d49[56]],_0x3528x29[_0x4d49[60]]);_0x3528x1b[_0x4d49[63]]= _[_0x4d49[62]](_0x3528x29[_0x4d49[56]],qs[_0x4d49[64]](_0x3528x28[_0x4d49[60]][_0x4d49[64]]));_0x3528x1b[_0x4d49[63]]= (_0x3528x1b[_0x4d49[63]][_0x4d49[65]])?_0x3528x1b[_0x4d49[63]]:_0x3528x29[_0x4d49[56]];_0x3528x1b= _[_0x4d49[67]]({},_0x3528x1b,_0x3528x28[_0x4d49[66]]);return db[_0x4d49[58]][_0x4d49[69]](_0x3528x1b)[_0x4d49[45]](handleEntityNotFound(_0x3528x15,null,_0x4d49[53]))[_0x4d49[45]](respondWithResult(_0x3528x15,null,_0x4d49[53]))[_0x4d49[68]](handleError(_0x3528x15,null,_0x4d49[53]))};exports[_0x4d49[46]]= function(_0x3528x28,_0x3528x15){if(_0x3528x28[_0x4d49[70]][_0x4d49[54]]){delete _0x3528x28[_0x4d49[70]][_0x4d49[54]]};return db[_0x4d49[58]][_0x4d49[69]]({where:{id:_0x3528x28[_0x4d49[55]][_0x4d49[54]]}})[_0x4d49[45]](handleEntityNotFound(_0x3528x15,null,_0x4d49[46]))[_0x4d49[45]](saveUpdates(_0x3528x28[_0x4d49[70]],null,_0x4d49[46]))[_0x4d49[45]](respondWithResult(_0x3528x15,null,_0x4d49[46]))[_0x4d49[68]](handleError(_0x3528x15,null,_0x4d49[46]))};exports[_0x4d49[48]]= function(_0x3528x28,_0x3528x15){return db[_0x4d49[58]][_0x4d49[69]]({where:{id:_0x3528x28[_0x4d49[55]][_0x4d49[54]]}})[_0x4d49[45]](handleEntityNotFound(_0x3528x15,null,_0x4d49[48]))[_0x4d49[45]](removeEntity(_0x3528x15,null,_0x4d49[48]))[_0x4d49[68]](handleError(_0x3528x15,null,_0x4d49[48]))}
\ No newline at end of file
diff --git a/server/api/smsApplication/smsApplication.model.js b/server/api/smsApplication/smsApplication.model.js
new file mode 100644 (file)
index 0000000..72c89db
--- /dev/null
@@ -0,0 +1 @@
+var _0x9967=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x73\x6D\x73\x5F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x9967[0];var _=require(_0x9967[1]);var util=require(_0x9967[2]);var logger=require(_0x9967[4])(_0x9967[3]);var attributes=require(_0x9967[5]);module[_0x9967[6]]= function(_0xcabbx5,_0xcabbx6){return _0xcabbx5[_0x9967[9]](_0x9967[7],attributes,{tableName:_0x9967[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/smsApplication/smsApplication.rpc.js b/server/api/smsApplication/smsApplication.rpc.js
new file mode 100644 (file)
index 0000000..a42a465
--- /dev/null
@@ -0,0 +1 @@
+var _0x5a0b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x5a0b[0];var _=require(_0x5a0b[1]);var util=require(_0x5a0b[2]);var moment=require(_0x5a0b[3]);var BPromise=require(_0x5a0b[4]);var db=require(_0x5a0b[6])[_0x5a0b[5]];var utils=require(_0x5a0b[7]);var logger=require(_0x5a0b[9])(_0x5a0b[8]);var jayson=require(_0x5a0b[10]);var client=jayson[_0x5a0b[12]][_0x5a0b[11]]({port:9002});function respondWithRpcPromise(_0x9351xb,_0x9351xc,_0x9351xd){return  new BPromise(function(_0x9351xe,_0x9351xf){return client[_0x5a0b[25]](_0x9351xb,_0x9351xd)[_0x5a0b[24]](function(_0x9351x11){logger[_0x5a0b[17]](_0x5a0b[13],_0x9351xc,_0x5a0b[16]);logger[_0x5a0b[20]](_0x5a0b[18],_0x9351xc,_0x5a0b[16],JSON[_0x5a0b[19]](_0x9351x11));if(_0x9351x11[_0x5a0b[14]]){if(_0x9351x11[_0x5a0b[14]][_0x5a0b[21]]=== 500){logger[_0x5a0b[14]](_0x5a0b[13],_0x9351xc,_0x9351x11[_0x5a0b[14]][_0x5a0b[22]]);return _0x9351xf(_0x9351x11[_0x5a0b[14]][_0x5a0b[22]])};logger[_0x5a0b[14]](_0x5a0b[13],_0x9351xc,_0x9351x11[_0x5a0b[14]][_0x5a0b[22]]);return _0x9351xe(_0x9351x11[_0x5a0b[14]][_0x5a0b[22]])}else {logger[_0x5a0b[17]](_0x5a0b[13],_0x9351xc,_0x5a0b[16]);_0x9351xe(_0x9351x11[_0x5a0b[23]][_0x5a0b[22]])}})[_0x5a0b[15]](function(_0x9351x10){logger[_0x5a0b[14]](_0x5a0b[13],_0x9351xc,_0x9351x10);_0x9351xf(_0x9351x10)})})}
\ No newline at end of file
diff --git a/server/api/smsDisposition/index.js b/server/api/smsDisposition/index.js
new file mode 100644 (file)
index 0000000..db8e86a
--- /dev/null
@@ -0,0 +1 @@
+var _0xb021=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F\x3A\x69\x64","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x68\x6F\x77","\x67\x65\x74","\x2F","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xb021[0];var multer=require(_0xb021[1]);var util=require(_0xb021[2]);var path=require(_0xb021[3]);var express=require(_0xb021[4]);var router=express.Router();var auth=require(_0xb021[5]);var config=require(_0xb021[6]);var controller=require(_0xb021[7]);router[_0xb021[11]](_0xb021[8],auth[_0xb021[9]](),controller[_0xb021[10]]);router[_0xb021[14]](_0xb021[12],auth[_0xb021[9]](),controller[_0xb021[13]]);router[_0xb021[16]](_0xb021[8],auth[_0xb021[9]](),controller[_0xb021[15]]);router[_0xb021[18]](_0xb021[8],auth[_0xb021[9]](),controller[_0xb021[17]]);module[_0xb021[19]]= router
\ No newline at end of file
diff --git a/server/api/smsDisposition/smsDisposition.attributes.js b/server/api/smsDisposition/smsDisposition.attributes.js
new file mode 100644 (file)
index 0000000..b8b93ba
--- /dev/null
@@ -0,0 +1 @@
+var _0xec6a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0xec6a[0];var Sequelize=require(_0xec6a[1]);module[_0xec6a[2]]= {name:{type:Sequelize[_0xec6a[3]]}}
\ No newline at end of file
diff --git a/server/api/smsDisposition/smsDisposition.controller.js b/server/api/smsDisposition/smsDisposition.controller.js
new file mode 100644 (file)
index 0000000..55a5ce5
--- /dev/null
@@ -0,0 +1 @@
+var _0x694c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6F\x70\x74\x69\x6F\x6E\x73","\x6D\x65\x72\x67\x65","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x694c[0];var jsonpatch=require(_0x694c[1]);var rp=require(_0x694c[2]);var moment=require(_0x694c[3]);var BPromise=require(_0x694c[4]);var util=require(_0x694c[5]);var path=require(_0x694c[6]);var sox=require(_0x694c[7]);var ejs=require(_0x694c[8]);var fs=require(_0x694c[9]);var _=require(_0x694c[10]);var squel=require(_0x694c[11]);var crypto=require(_0x694c[12]);var jsforce=require(_0x694c[13]);var toCsv=require(_0x694c[14]);var qs=require(_0x694c[15]);var logger=require(_0x694c[17])(_0x694c[16]);var utils=require(_0x694c[18]);var config=require(_0x694c[19]);var db=require(_0x694c[21])[_0x694c[20]];function respondWithStatusCode(_0x5c58x15,_0x5c58x16,_0x5c58x17){_0x5c58x16= _0x5c58x16|| 204;return function(_0x5c58x18){if(_0x5c58x18){logger[_0x694c[24]](_0x694c[22],_0x5c58x17,_0x5c58x16,_0x694c[23]);logger[_0x694c[26]](_0x694c[25],_0x5c58x17,_0x5c58x16,_0x694c[23]);return _0x5c58x15[_0x694c[27]](_0x5c58x16)};return _0x5c58x15[_0x694c[29]](304)[_0x694c[28]]()}}function respondWithResult(_0x5c58x15,_0x5c58x16,_0x5c58x17){_0x5c58x16= _0x5c58x16|| 200;return function(_0x5c58x18){if(_0x5c58x18){logger[_0x694c[24]](_0x694c[22],_0x5c58x17,_0x5c58x16,_0x694c[30]);logger[_0x694c[26]](_0x694c[25],_0x5c58x17,_0x5c58x16,_0x694c[30],JSON[_0x694c[31]](_0x5c58x18));return _0x5c58x15[_0x694c[29]](_0x5c58x16)[_0x694c[32]](_0x5c58x18)};return _0x5c58x15[_0x694c[29]](304)[_0x694c[28]]()}}function respondWithFilteredResult(_0x5c58x15,_0x5c58x1b,_0x5c58x17){return function(_0x5c58x18){if(_0x5c58x18){var _0x5c58x1c=_0x5c58x18[_0x694c[33]],_0x5c58x1d=_0x5c58x1b[_0x694c[34]],_0x5c58x1e=_0x5c58x1b[_0x694c[34]]+ _0x5c58x1b[_0x694c[35]],_0x5c58x16;if(_0x5c58x1e>= _0x5c58x1c){_0x5c58x1e= _0x5c58x1c;_0x5c58x16= 200}else {_0x5c58x16= 206};_0x5c58x15[_0x694c[29]](_0x5c58x16);logger[_0x694c[24]](_0x694c[22],_0x5c58x17,_0x5c58x16,_0x694c[36]);logger[_0x694c[26]](_0x694c[25],_0x5c58x17,_0x5c58x16,_0x694c[30],JSON[_0x694c[31]](_0x5c58x18));return _0x5c58x15[_0x694c[40]](_0x694c[37],_0x5c58x1d+ _0x694c[38]+ _0x5c58x1e+ _0x694c[39]+ _0x5c58x1c)[_0x694c[32]](_0x5c58x18)};return null}}function patchUpdates(_0x5c58x20){return function(_0x5c58x18){try{jsonpatch[_0x694c[41]](_0x5c58x18,_0x5c58x20,true)}catch(err){return BPromise[_0x694c[42]](err)};return _0x5c58x18[_0x694c[43]]()}}function saveUpdates(_0x5c58x22,_0x5c58x16,_0x5c58x17){return function(_0x5c58x18){if(_0x5c58x18){return _0x5c58x18[_0x694c[46]](_0x5c58x22)[_0x694c[45]](function(_0x5c58x23){logger[_0x694c[24]](_0x694c[22],_0x5c58x17,_0x5c58x16,_0x694c[44]);logger[_0x694c[26]](_0x694c[25],_0x5c58x17,_0x5c58x16,_0x694c[44],JSON[_0x694c[31]](_0x5c58x18));return _0x5c58x23})};return null}}function removeEntity(_0x5c58x15,_0x5c58x16,_0x5c58x17){return function(_0x5c58x18){if(_0x5c58x18){return _0x5c58x18[_0x694c[48]]()[_0x694c[45]](function(){logger[_0x694c[24]](_0x694c[22],_0x5c58x17,_0x5c58x16,_0x694c[47]);logger[_0x694c[26]](_0x694c[25],_0x5c58x17,_0x5c58x16,_0x694c[47],JSON[_0x694c[31]](_0x5c58x18));_0x5c58x15[_0x694c[29]](204)[_0x694c[28]]()})}}}function handleEntityNotFound(_0x5c58x15,_0x5c58x16,_0x5c58x17){return function(_0x5c58x18){if(!_0x5c58x18){logger[_0x694c[50]](_0x694c[22],_0x5c58x17,404,_0x694c[49]);_0x5c58x15[_0x694c[29]](404)[_0x694c[28]]();return null};return _0x5c58x18}}function handleError(_0x5c58x15,_0x5c58x16,_0x5c58x17){_0x5c58x16= _0x5c58x16|| 500;return function(_0x5c58x27){logger[_0x694c[50]](_0x694c[22],_0x5c58x17,_0x5c58x16,JSON[_0x694c[31]](_0x5c58x27));delete _0x5c58x27[_0x694c[51]];_0x5c58x15[_0x694c[29]](_0x5c58x16)[_0x694c[52]](_0x5c58x27)}}exports[_0x694c[53]]= function(_0x5c58x28,_0x5c58x15){var _0x5c58x1b={raw:true,where:{id:_0x5c58x28[_0x694c[55]][_0x694c[54]]}},_0x5c58x29={};_0x5c58x29[_0x694c[56]]= _[_0x694c[59]](db[_0x694c[58]][_0x694c[57]]);_0x5c58x29[_0x694c[60]]= _[_0x694c[59]](_0x5c58x28[_0x694c[60]]);_0x5c58x29[_0x694c[61]]= _[_0x694c[62]](_0x5c58x29[_0x694c[56]],_0x5c58x29[_0x694c[60]]);_0x5c58x1b[_0x694c[63]]= _[_0x694c[62]](_0x5c58x29[_0x694c[56]],qs[_0x694c[64]](_0x5c58x28[_0x694c[60]][_0x694c[64]]));_0x5c58x1b[_0x694c[63]]= (_0x5c58x1b[_0x694c[63]][_0x694c[65]])?_0x5c58x1b[_0x694c[63]]:_0x5c58x29[_0x694c[56]];_0x5c58x1b= _[_0x694c[67]]({},_0x5c58x1b,_0x5c58x28[_0x694c[66]]);return db[_0x694c[58]][_0x694c[69]](_0x5c58x1b)[_0x694c[45]](handleEntityNotFound(_0x5c58x15,null,_0x694c[53]))[_0x694c[45]](respondWithResult(_0x5c58x15,null,_0x694c[53]))[_0x694c[68]](handleError(_0x5c58x15,null,_0x694c[53]))};exports[_0x694c[70]]= function(_0x5c58x28,_0x5c58x15){return db[_0x694c[58]][_0x694c[70]](_0x5c58x28[_0x694c[71]],{})[_0x694c[45]](respondWithResult(_0x5c58x15,201,_0x694c[70]))[_0x694c[68]](handleError(_0x5c58x15,null,_0x694c[70]))};exports[_0x694c[46]]= function(_0x5c58x28,_0x5c58x15){if(_0x5c58x28[_0x694c[71]][_0x694c[54]]){delete _0x5c58x28[_0x694c[71]][_0x694c[54]]};return db[_0x694c[58]][_0x694c[69]]({where:{id:_0x5c58x28[_0x694c[55]][_0x694c[54]]}})[_0x694c[45]](handleEntityNotFound(_0x5c58x15,null,_0x694c[46]))[_0x694c[45]](saveUpdates(_0x5c58x28[_0x694c[71]],null,_0x694c[46]))[_0x694c[45]](respondWithResult(_0x5c58x15,null,_0x694c[46]))[_0x694c[68]](handleError(_0x5c58x15,null,_0x694c[46]))};exports[_0x694c[48]]= function(_0x5c58x28,_0x5c58x15){return db[_0x694c[58]][_0x694c[69]]({where:{id:_0x5c58x28[_0x694c[55]][_0x694c[54]]}})[_0x694c[45]](handleEntityNotFound(_0x5c58x15,null,_0x694c[48]))[_0x694c[45]](removeEntity(_0x5c58x15,null,_0x694c[48]))[_0x694c[68]](handleError(_0x5c58x15,null,_0x694c[48]))}
\ No newline at end of file
diff --git a/server/api/smsDisposition/smsDisposition.model.js b/server/api/smsDisposition/smsDisposition.model.js
new file mode 100644 (file)
index 0000000..8b58920
--- /dev/null
@@ -0,0 +1 @@
+var _0xde89=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x73\x6D\x73\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xde89[0];var _=require(_0xde89[1]);var util=require(_0xde89[2]);var logger=require(_0xde89[4])(_0xde89[3]);var attributes=require(_0xde89[5]);module[_0xde89[6]]= function(_0x64c8x5,_0x64c8x6){return _0x64c8x5[_0xde89[9]](_0xde89[7],attributes,{tableName:_0xde89[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/smsDisposition/smsDisposition.rpc.js b/server/api/smsDisposition/smsDisposition.rpc.js
new file mode 100644 (file)
index 0000000..a9f0cc8
--- /dev/null
@@ -0,0 +1 @@
+var _0xa452=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xa452[0];var _=require(_0xa452[1]);var util=require(_0xa452[2]);var moment=require(_0xa452[3]);var BPromise=require(_0xa452[4]);var db=require(_0xa452[6])[_0xa452[5]];var utils=require(_0xa452[7]);var logger=require(_0xa452[9])(_0xa452[8]);var jayson=require(_0xa452[10]);var client=jayson[_0xa452[12]][_0xa452[11]]({port:9002});function respondWithRpcPromise(_0x58bcxb,_0x58bcxc,_0x58bcxd){return  new BPromise(function(_0x58bcxe,_0x58bcxf){return client[_0xa452[25]](_0x58bcxb,_0x58bcxd)[_0xa452[24]](function(_0x58bcx11){logger[_0xa452[17]](_0xa452[13],_0x58bcxc,_0xa452[16]);logger[_0xa452[20]](_0xa452[18],_0x58bcxc,_0xa452[16],JSON[_0xa452[19]](_0x58bcx11));if(_0x58bcx11[_0xa452[14]]){if(_0x58bcx11[_0xa452[14]][_0xa452[21]]=== 500){logger[_0xa452[14]](_0xa452[13],_0x58bcxc,_0x58bcx11[_0xa452[14]][_0xa452[22]]);return _0x58bcxf(_0x58bcx11[_0xa452[14]][_0xa452[22]])};logger[_0xa452[14]](_0xa452[13],_0x58bcxc,_0x58bcx11[_0xa452[14]][_0xa452[22]]);return _0x58bcxe(_0x58bcx11[_0xa452[14]][_0xa452[22]])}else {logger[_0xa452[17]](_0xa452[13],_0x58bcxc,_0xa452[16]);_0x58bcxe(_0x58bcx11[_0xa452[23]][_0xa452[22]])}})[_0xa452[15]](function(_0x58bcx10){logger[_0xa452[14]](_0xa452[13],_0x58bcxc,_0x58bcx10);_0x58bcxf(_0x58bcx10)})})}
\ No newline at end of file
diff --git a/server/api/smsInteraction/index.js b/server/api/smsInteraction/index.js
new file mode 100644 (file)
index 0000000..98bd903
--- /dev/null
@@ -0,0 +1 @@
+var _0x89b0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x89b0[0];var multer=require(_0x89b0[1]);var util=require(_0x89b0[2]);var path=require(_0x89b0[3]);var express=require(_0x89b0[4]);var router=express.Router();var auth=require(_0x89b0[5]);var config=require(_0x89b0[6]);var controller=require(_0x89b0[7]);router[_0x89b0[11]](_0x89b0[8],auth[_0x89b0[9]](),controller[_0x89b0[10]]);router[_0x89b0[11]](_0x89b0[12],auth[_0x89b0[9]](),controller[_0x89b0[13]]);router[_0x89b0[11]](_0x89b0[14],auth[_0x89b0[9]](),controller[_0x89b0[15]]);router[_0x89b0[11]](_0x89b0[16],auth[_0x89b0[9]](),controller[_0x89b0[17]]);router[_0x89b0[19]](_0x89b0[8],auth[_0x89b0[9]](),controller[_0x89b0[18]]);router[_0x89b0[19]](_0x89b0[16],auth[_0x89b0[9]](),controller[_0x89b0[20]]);router[_0x89b0[22]](_0x89b0[14],auth[_0x89b0[9]](),controller[_0x89b0[21]]);router[_0x89b0[24]](_0x89b0[14],auth[_0x89b0[9]](),controller[_0x89b0[23]]);module[_0x89b0[25]]= router
\ No newline at end of file
diff --git a/server/api/smsInteraction/smsInteraction.attributes.js b/server/api/smsInteraction/smsInteraction.attributes.js
new file mode 100644 (file)
index 0000000..e053ca5
--- /dev/null
@@ -0,0 +1 @@
+var _0xb998=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x4E\x45\x57","\x4F\x50\x45\x4E","\x50\x45\x4E\x44\x49\x4E\x47","\x43\x4C\x4F\x53\x45\x44","\x73\x74\x61\x74\x75\x73","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x61\x72\x72\x69\x76\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x6C\x6F\x73\x65\x64\x41\x74","\x53\x45\x4E\x44\x49\x4E\x47","\x53\x45\x4E\x54","\x52\x45\x43\x45\x49\x56\x45\x44","\x46\x41\x49\x4C\x45\x44","\x4E\x4F\x54\x45","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x54\x45\x58\x54","\x74\x61\x67\x73","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x3B","\x73\x70\x6C\x69\x74","\x70\x6F\x70","\x6C\x65\x6E\x67\x74\x68","\x6A\x6F\x69\x6E"];_0xb998[0];var Sequelize=require(_0xb998[1]);var moment=require(_0xb998[2]);module[_0xb998[3]]= {contact:{type:Sequelize[_0xb998[4]],validate:{is:/^[\+]?[0-9]+$/}},smsIn:{type:Sequelize[_0xb998[5]],defaultValue:0},smsOut:{type:Sequelize[_0xb998[5]],defaultValue:0},status:{type:Sequelize.ENUM(_0xb998[6],_0xb998[7],_0xb998[8],_0xb998[9]),defaultValue:_0xb998[6],set:function(_0xe4e8x3){this[_0xb998[11]](_0xb998[10],_0xe4e8x3);switch(_0xe4e8x3){case _0xb998[6]:this[_0xb998[11]](_0xb998[12],moment()[_0xb998[14]](_0xb998[13]));break;case _0xb998[9]:this[_0xb998[11]](_0xb998[15],moment()[_0xb998[14]](_0xb998[13]));break;default:}}},lastEvent:{type:Sequelize.ENUM(_0xb998[16],_0xb998[17],_0xb998[18],_0xb998[19],_0xb998[20])},lastEventAt:{type:Sequelize[_0xb998[21]]},waiting:{type:Sequelize[_0xb998[22]],defaultValue:false},tags:{type:Sequelize[_0xb998[23]],get:function(){var _0xe4e8x4;if(this[_0xb998[25]](_0xb998[24])){_0xe4e8x4= this[_0xb998[25]](_0xb998[24])[_0xb998[27]](_0xb998[26]);_0xe4e8x4[_0xb998[28]]()}else {_0xe4e8x4= []};return _0xe4e8x4},set:function(_0xe4e8x5){this[_0xb998[11]](_0xb998[24],_0xe4e8x5&& _0xe4e8x5[_0xb998[29]]?_0xe4e8x5[_0xb998[30]](_0xb998[26])+ _0xb998[26]:null)}},disposition:{type:Sequelize[_0xb998[4]]},openReason:{type:Sequelize[_0xb998[4]]},arrivedAt:{type:Sequelize[_0xb998[21]]},closedAt:{type:Sequelize[_0xb998[21]]},ParentId:{type:Sequelize[_0xb998[5]]},voiceSource:{type:Sequelize[_0xb998[22]],defaultValue:false},account:{type:Sequelize[_0xb998[4]]}}
\ No newline at end of file
diff --git a/server/api/smsInteraction/smsInteraction.controller.js b/server/api/smsInteraction/smsInteraction.controller.js
new file mode 100644 (file)
index 0000000..43f4934
--- /dev/null
@@ -0,0 +1 @@
+var _0xe713=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x61\x64\x64\x4D\x65\x73\x73\x61\x67\x65","\x69\x64\x73","\x6F\x6D\x69\x74","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65"];_0xe713[0];var jsonpatch=require(_0xe713[1]);var rp=require(_0xe713[2]);var moment=require(_0xe713[3]);var BPromise=require(_0xe713[4]);var util=require(_0xe713[5]);var path=require(_0xe713[6]);var sox=require(_0xe713[7]);var ejs=require(_0xe713[8]);var fs=require(_0xe713[9]);var _=require(_0xe713[10]);var squel=require(_0xe713[11]);var crypto=require(_0xe713[12]);var jsforce=require(_0xe713[13]);var toCsv=require(_0xe713[14]);var qs=require(_0xe713[15]);var logger=require(_0xe713[17])(_0xe713[16]);var utils=require(_0xe713[18]);var config=require(_0xe713[19]);var db=require(_0xe713[21])[_0xe713[20]];function respondWithStatusCode(_0x7947x15,_0x7947x16,_0x7947x17){_0x7947x16= _0x7947x16|| 204;return function(_0x7947x18){if(_0x7947x18){logger[_0xe713[24]](_0xe713[22],_0x7947x17,_0x7947x16,_0xe713[23]);logger[_0xe713[26]](_0xe713[25],_0x7947x17,_0x7947x16,_0xe713[23]);return _0x7947x15[_0xe713[27]](_0x7947x16)};return _0x7947x15[_0xe713[29]](304)[_0xe713[28]]()}}function respondWithResult(_0x7947x15,_0x7947x16,_0x7947x17){_0x7947x16= _0x7947x16|| 200;return function(_0x7947x18){if(_0x7947x18){logger[_0xe713[24]](_0xe713[22],_0x7947x17,_0x7947x16,_0xe713[30]);logger[_0xe713[26]](_0xe713[25],_0x7947x17,_0x7947x16,_0xe713[30],JSON[_0xe713[31]](_0x7947x18));return _0x7947x15[_0xe713[29]](_0x7947x16)[_0xe713[32]](_0x7947x18)};return _0x7947x15[_0xe713[29]](304)[_0xe713[28]]()}}function respondWithFilteredResult(_0x7947x15,_0x7947x1b,_0x7947x17){return function(_0x7947x18){if(_0x7947x18){var _0x7947x1c=_0x7947x18[_0xe713[33]],_0x7947x1d=_0x7947x1b[_0xe713[34]],_0x7947x1e=_0x7947x1b[_0xe713[34]]+ _0x7947x1b[_0xe713[35]],_0x7947x16;if(_0x7947x1e>= _0x7947x1c){_0x7947x1e= _0x7947x1c;_0x7947x16= 200}else {_0x7947x16= 206};_0x7947x15[_0xe713[29]](_0x7947x16);logger[_0xe713[24]](_0xe713[22],_0x7947x17,_0x7947x16,_0xe713[36]);logger[_0xe713[26]](_0xe713[25],_0x7947x17,_0x7947x16,_0xe713[30],JSON[_0xe713[31]](_0x7947x18));return _0x7947x15[_0xe713[40]](_0xe713[37],_0x7947x1d+ _0xe713[38]+ _0x7947x1e+ _0xe713[39]+ _0x7947x1c)[_0xe713[32]](_0x7947x18)};return null}}function patchUpdates(_0x7947x20){return function(_0x7947x18){try{jsonpatch[_0xe713[41]](_0x7947x18,_0x7947x20,true)}catch(err){return BPromise[_0xe713[42]](err)};return _0x7947x18[_0xe713[43]]()}}function saveUpdates(_0x7947x22,_0x7947x16,_0x7947x17){return function(_0x7947x18){if(_0x7947x18){return _0x7947x18[_0xe713[46]](_0x7947x22)[_0xe713[45]](function(_0x7947x23){logger[_0xe713[24]](_0xe713[22],_0x7947x17,_0x7947x16,_0xe713[44]);logger[_0xe713[26]](_0xe713[25],_0x7947x17,_0x7947x16,_0xe713[44],JSON[_0xe713[31]](_0x7947x18));return _0x7947x23})};return null}}function removeEntity(_0x7947x15,_0x7947x16,_0x7947x17){return function(_0x7947x18){if(_0x7947x18){return _0x7947x18[_0xe713[48]]()[_0xe713[45]](function(){logger[_0xe713[24]](_0xe713[22],_0x7947x17,_0x7947x16,_0xe713[47]);logger[_0xe713[26]](_0xe713[25],_0x7947x17,_0x7947x16,_0xe713[47],JSON[_0xe713[31]](_0x7947x18));_0x7947x15[_0xe713[29]](204)[_0xe713[28]]()})}}}function handleEntityNotFound(_0x7947x15,_0x7947x16,_0x7947x17){return function(_0x7947x18){if(!_0x7947x18){logger[_0xe713[50]](_0xe713[22],_0x7947x17,404,_0xe713[49]);_0x7947x15[_0xe713[29]](404)[_0xe713[28]]();return null};return _0x7947x18}}function handleError(_0x7947x15,_0x7947x16,_0x7947x17){_0x7947x16= _0x7947x16|| 500;return function(_0x7947x27){logger[_0xe713[50]](_0xe713[22],_0x7947x17,_0x7947x16,JSON[_0xe713[31]](_0x7947x27));delete _0x7947x27[_0xe713[51]];_0x7947x15[_0xe713[29]](_0x7947x16)[_0xe713[52]](_0x7947x27)}}exports[_0xe713[53]]= function(_0x7947x28,_0x7947x15){var _0x7947x1b={},_0x7947x29={};_0x7947x29[_0xe713[54]]= _[_0xe713[57]](db[_0xe713[56]][_0xe713[55]]);_0x7947x29[_0xe713[58]]= _[_0xe713[57]](_0x7947x28[_0xe713[58]]);_0x7947x29[_0xe713[59]]= _[_0xe713[60]](_0x7947x29[_0xe713[54]],_0x7947x29[_0xe713[58]]);_0x7947x1b[_0xe713[61]]= _[_0xe713[60]](_0x7947x29[_0xe713[54]],qs[_0xe713[62]](_0x7947x28[_0xe713[58]][_0xe713[62]]));_0x7947x1b[_0xe713[61]]= (_0x7947x1b[_0xe713[61]][_0xe713[63]])?_0x7947x1b[_0xe713[61]]:_0x7947x29[_0xe713[54]];if(!_0x7947x28[_0xe713[58]][_0xe713[65]](_0xe713[64])){_0x7947x1b[_0xe713[35]]= qs[_0xe713[35]](_0x7947x28[_0xe713[58]][_0xe713[35]]);_0x7947x1b[_0xe713[34]]= qs[_0xe713[34]](_0x7947x28[_0xe713[58]][_0xe713[34]])};_0x7947x1b[_0xe713[66]]= qs[_0xe713[67]](_0x7947x28[_0xe713[58]][_0xe713[67]]);_0x7947x1b[_0xe713[68]]= qs[_0xe713[59]](_[_0xe713[69]](_0x7947x28[_0xe713[58]],_0x7947x29[_0xe713[59]]));if(_0x7947x28[_0xe713[58]][_0xe713[70]]){_0x7947x1b[_0xe713[68]]= _[_0xe713[73]](_0x7947x1b[_0xe713[68]],{$or:_[_0xe713[72]](_0x7947x1b[_0xe713[61]],function(_0x7947x2a){var _0x7947x2b={};_0x7947x2b[_0x7947x2a]= {$like:_0xe713[71]+ _0x7947x28[_0xe713[58]][_0xe713[70]]+ _0xe713[71]};return _0x7947x2b})})};_0x7947x1b= _[_0xe713[73]]({},_0x7947x1b,_0x7947x28[_0xe713[74]]);return db[_0xe713[56]][_0xe713[76]](_0x7947x1b)[_0xe713[45]](respondWithFilteredResult(_0x7947x15,_0x7947x1b,_0xe713[53]))[_0xe713[75]](handleError(_0x7947x15,null,_0xe713[53]))};exports[_0xe713[77]]= function(_0x7947x28,_0x7947x15){var _0x7947x1b={raw:false,where:{id:_0x7947x28[_0xe713[79]][_0xe713[78]]}},_0x7947x29={};_0x7947x29[_0xe713[54]]= _[_0xe713[57]](db[_0xe713[56]][_0xe713[55]]);_0x7947x29[_0xe713[58]]= _[_0xe713[57]](_0x7947x28[_0xe713[58]]);_0x7947x29[_0xe713[59]]= _[_0xe713[60]](_0x7947x29[_0xe713[54]],_0x7947x29[_0xe713[58]]);_0x7947x1b[_0xe713[61]]= _[_0xe713[60]](_0x7947x29[_0xe713[54]],qs[_0xe713[62]](_0x7947x28[_0xe713[58]][_0xe713[62]]));_0x7947x1b[_0xe713[61]]= (_0x7947x1b[_0xe713[61]][_0xe713[63]])?_0x7947x1b[_0xe713[61]]:_0x7947x29[_0xe713[54]];_0x7947x1b= _[_0xe713[73]]({},_0x7947x1b,_0x7947x28[_0xe713[74]]);return db[_0xe713[56]][_0xe713[80]](_0x7947x1b)[_0xe713[45]](handleEntityNotFound(_0x7947x15,null,_0xe713[77]))[_0xe713[45]](respondWithResult(_0x7947x15,null,_0xe713[77]))[_0xe713[75]](handleError(_0x7947x15,null,_0xe713[77]))};exports[_0xe713[81]]= function(_0x7947x28,_0x7947x15){return db[_0xe713[56]][_0xe713[81]](_0x7947x28[_0xe713[82]],{})[_0xe713[45]](respondWithResult(_0x7947x15,201,_0xe713[81]))[_0xe713[75]](handleError(_0x7947x15,null,_0xe713[81]))};exports[_0xe713[46]]= function(_0x7947x28,_0x7947x15){if(_0x7947x28[_0xe713[82]][_0xe713[78]]){delete _0x7947x28[_0xe713[82]][_0xe713[78]]};return db[_0xe713[56]][_0xe713[80]]({where:{id:_0x7947x28[_0xe713[79]][_0xe713[78]]}})[_0xe713[45]](handleEntityNotFound(_0x7947x15,null,_0xe713[46]))[_0xe713[45]](saveUpdates(_0x7947x28[_0xe713[82]],null,_0xe713[46]))[_0xe713[45]](respondWithResult(_0x7947x15,null,_0xe713[46]))[_0xe713[75]](handleError(_0x7947x15,null,_0xe713[46]))};exports[_0xe713[48]]= function(_0x7947x28,_0x7947x15){return db[_0xe713[56]][_0xe713[80]]({where:{id:_0x7947x28[_0xe713[79]][_0xe713[78]]}})[_0xe713[45]](handleEntityNotFound(_0x7947x15,null,_0xe713[48]))[_0xe713[45]](removeEntity(_0x7947x15,null,_0xe713[48]))[_0xe713[75]](handleError(_0x7947x15,null,_0xe713[48]))};exports[_0xe713[83]]= function(_0x7947x28,_0x7947x15){return db[_0xe713[56]][_0xe713[83]]()[_0xe713[45]](respondWithResult(_0x7947x15,null,_0xe713[83]))[_0xe713[75]](handleError(_0x7947x15,null,_0xe713[83]))};exports[_0xe713[84]]= function(_0x7947x28,_0x7947x15,_0x7947x2c){return db[_0xe713[87]][_0xe713[80]]({where:{id:_0x7947x28[_0xe713[79]][_0xe713[78]]}})[_0xe713[45]](handleEntityNotFound(_0x7947x15,null,_0xe713[84]))[_0xe713[45]](function(_0x7947x18){if(_0x7947x18){return _0x7947x18[_0xe713[84]](_0x7947x28[_0xe713[82]][_0xe713[85]],_[_0xe713[86]](_0x7947x28[_0xe713[82]],[_0xe713[85],_0xe713[78]])|| {})};return null})[_0xe713[45]](respondWithResult(_0x7947x15,null,_0xe713[84]))[_0xe713[75]](handleError(_0x7947x15,null,_0xe713[84]))};exports[_0xe713[88]]= function(_0x7947x28,_0x7947x18,_0x7947x2c){var _0x7947x1b={};var _0x7947x29={};var _0x7947x2d;var _0x7947x1c;return db[_0xe713[56]][_0xe713[89]]({where:{id:_0x7947x28[_0xe713[79]][_0xe713[78]]}})[_0xe713[45]](handleEntityNotFound(_0x7947x18,null,_0xe713[88]))[_0xe713[45]](function(_0x7947x18){if(_0x7947x18){_0x7947x2d= _0x7947x18;_0x7947x29[_0xe713[54]]= _[_0xe713[57]](db[_0xe713[87]][_0xe713[55]]);_0x7947x29[_0xe713[58]]= _[_0xe713[57]](_0x7947x28[_0xe713[58]]);_0x7947x29[_0xe713[59]]= _[_0xe713[60]](_0x7947x29[_0xe713[54]],_0x7947x29[_0xe713[58]]);_0x7947x1b[_0xe713[61]]= _[_0xe713[60]](_0x7947x29[_0xe713[54]],qs[_0xe713[62]](_0x7947x28[_0xe713[58]][_0xe713[62]]));_0x7947x1b[_0xe713[61]]= (_0x7947x1b[_0xe713[61]][_0xe713[63]])?_0x7947x1b[_0xe713[61]]:_0x7947x29[_0xe713[54]];_0x7947x1b[_0xe713[66]]= qs[_0xe713[67]](_0x7947x28[_0xe713[58]][_0xe713[67]]);_0x7947x1b[_0xe713[68]]= qs[_0xe713[59]](_[_0xe713[69]](_0x7947x28[_0xe713[58]],_0x7947x29[_0xe713[59]]));if(_0x7947x28[_0xe713[58]][_0xe713[70]]){_0x7947x1b[_0xe713[68]]= _[_0xe713[73]](_0x7947x1b[_0xe713[68]],{$or:_[_0xe713[72]](_0x7947x1b[_0xe713[61]],function(_0x7947x2a){var _0x7947x2b={};_0x7947x2b[_0x7947x2a]= {$like:_0xe713[71]+ _0x7947x28[_0xe713[58]][_0xe713[70]]+ _0xe713[71]};return _0x7947x2b})})};_0x7947x1b= _[_0xe713[73]]({},_0x7947x1b,_0x7947x28[_0xe713[74]]);return _0x7947x2d[_0xe713[88]](_0x7947x1b)}})[_0xe713[45]](function(_0x7947x2f){if(_0x7947x2f){_0x7947x1c= _0x7947x2f[_0xe713[63]];if(!_0x7947x28[_0xe713[58]][_0xe713[65]](_0xe713[64])){_0x7947x1b[_0xe713[35]]= qs[_0xe713[35]](_0x7947x28[_0xe713[58]][_0xe713[35]]);_0x7947x1b[_0xe713[34]]= qs[_0xe713[34]](_0x7947x28[_0xe713[58]][_0xe713[34]])};return _0x7947x2d[_0xe713[88]](_0x7947x1b)}})[_0xe713[45]](function(_0x7947x2e){return _0x7947x2e?{count:_0x7947x1c,rows:_0x7947x2e}:null})[_0xe713[45]](respondWithResult(_0x7947x18,null,_0xe713[88]))[_0xe713[75]](handleError(_0x7947x18,null,_0xe713[88]))}
\ No newline at end of file
diff --git a/server/api/smsInteraction/smsInteraction.model.js b/server/api/smsInteraction/smsInteraction.model.js
new file mode 100644 (file)
index 0000000..64a85df
--- /dev/null
@@ -0,0 +1 @@
+var _0x3acf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x73\x6D\x73\x5F\x72\x6F\x6F\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x3acf[0];var _=require(_0x3acf[1]);var util=require(_0x3acf[2]);var logger=require(_0x3acf[4])(_0x3acf[3]);var attributes=require(_0x3acf[5]);module[_0x3acf[6]]= function(_0x3cd3x5,_0x3cd3x6){return _0x3cd3x5[_0x3acf[9]](_0x3acf[7],attributes,{tableName:_0x3acf[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/smsInteraction/smsInteraction.rpc.js b/server/api/smsInteraction/smsInteraction.rpc.js
new file mode 100644 (file)
index 0000000..c8e911a
--- /dev/null
@@ -0,0 +1 @@
+var _0x6df2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6df2[0];var _=require(_0x6df2[1]);var util=require(_0x6df2[2]);var moment=require(_0x6df2[3]);var BPromise=require(_0x6df2[4]);var db=require(_0x6df2[6])[_0x6df2[5]];var utils=require(_0x6df2[7]);var logger=require(_0x6df2[9])(_0x6df2[8]);var jayson=require(_0x6df2[10]);var client=jayson[_0x6df2[12]][_0x6df2[11]]({port:9002});function respondWithRpcPromise(_0xb239xb,_0xb239xc,_0xb239xd){return  new BPromise(function(_0xb239xe,_0xb239xf){return client[_0x6df2[25]](_0xb239xb,_0xb239xd)[_0x6df2[24]](function(_0xb239x11){logger[_0x6df2[17]](_0x6df2[13],_0xb239xc,_0x6df2[16]);logger[_0x6df2[20]](_0x6df2[18],_0xb239xc,_0x6df2[16],JSON[_0x6df2[19]](_0xb239x11));if(_0xb239x11[_0x6df2[14]]){if(_0xb239x11[_0x6df2[14]][_0x6df2[21]]=== 500){logger[_0x6df2[14]](_0x6df2[13],_0xb239xc,_0xb239x11[_0x6df2[14]][_0x6df2[22]]);return _0xb239xf(_0xb239x11[_0x6df2[14]][_0x6df2[22]])};logger[_0x6df2[14]](_0x6df2[13],_0xb239xc,_0xb239x11[_0x6df2[14]][_0x6df2[22]]);return _0xb239xe(_0xb239x11[_0x6df2[14]][_0x6df2[22]])}else {logger[_0x6df2[17]](_0x6df2[13],_0xb239xc,_0x6df2[16]);_0xb239xe(_0xb239x11[_0x6df2[23]][_0x6df2[22]])}})[_0x6df2[15]](function(_0xb239x10){logger[_0x6df2[14]](_0x6df2[13],_0xb239xc,_0xb239x10);_0xb239xf(_0xb239x10)})})}
\ No newline at end of file
diff --git a/server/api/smsMessage/index.js b/server/api/smsMessage/index.js
new file mode 100644 (file)
index 0000000..96b66e2
--- /dev/null
@@ -0,0 +1 @@
+var _0x3f96=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3f96[0];var multer=require(_0x3f96[1]);var util=require(_0x3f96[2]);var path=require(_0x3f96[3]);var express=require(_0x3f96[4]);var router=express.Router();var auth=require(_0x3f96[5]);var config=require(_0x3f96[6]);var controller=require(_0x3f96[7]);router[_0x3f96[11]](_0x3f96[8],auth[_0x3f96[9]](),controller[_0x3f96[10]]);router[_0x3f96[11]](_0x3f96[12],auth[_0x3f96[9]](),controller[_0x3f96[13]]);router[_0x3f96[11]](_0x3f96[14],auth[_0x3f96[9]](),controller[_0x3f96[15]]);router[_0x3f96[17]](_0x3f96[8],auth[_0x3f96[9]](),controller[_0x3f96[16]]);router[_0x3f96[19]](_0x3f96[14],auth[_0x3f96[9]](),controller[_0x3f96[18]]);router[_0x3f96[21]](_0x3f96[14],auth[_0x3f96[9]](),controller[_0x3f96[20]]);module[_0x3f96[22]]= router
\ No newline at end of file
diff --git a/server/api/smsMessage/smsMessage.attributes.js b/server/api/smsMessage/smsMessage.attributes.js
new file mode 100644 (file)
index 0000000..be38693
--- /dev/null
@@ -0,0 +1 @@
+var _0xa101=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x53\x45\x4E\x44\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xa101[0];var Sequelize=require(_0xa101[1]);module[_0xa101[2]]= {from:{type:Sequelize[_0xa101[3]],allowNull:false,validate:{notEmpty:true,is:/^[\+]?[0-9]+$/}},to:{type:Sequelize[_0xa101[3]],allowNull:false,validate:{notEmpty:true,is:/^[\+]?[0-9]+$/}},body:{type:Sequelize[_0xa101[3]]},status:{type:Sequelize[_0xa101[3]],defaultValue:_0xa101[4]},errorcode:{type:Sequelize[_0xa101[3]]},skebby_message_id:{type:Sequelize[_0xa101[5]]},res_data:{type:Sequelize[_0xa101[3]]},source:{type:Sequelize[_0xa101[3]]},auto:{type:Sequelize[_0xa101[6]],defaultValue:false}}
\ No newline at end of file
diff --git a/server/api/smsMessage/smsMessage.controller.js b/server/api/smsMessage/smsMessage.controller.js
new file mode 100644 (file)
index 0000000..ef2bf63
--- /dev/null
@@ -0,0 +1 @@
+var _0x66af=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x66af[0];var jsonpatch=require(_0x66af[1]);var rp=require(_0x66af[2]);var moment=require(_0x66af[3]);var BPromise=require(_0x66af[4]);var util=require(_0x66af[5]);var path=require(_0x66af[6]);var sox=require(_0x66af[7]);var ejs=require(_0x66af[8]);var fs=require(_0x66af[9]);var _=require(_0x66af[10]);var squel=require(_0x66af[11]);var crypto=require(_0x66af[12]);var jsforce=require(_0x66af[13]);var toCsv=require(_0x66af[14]);var qs=require(_0x66af[15]);var logger=require(_0x66af[17])(_0x66af[16]);var utils=require(_0x66af[18]);var config=require(_0x66af[19]);var db=require(_0x66af[21])[_0x66af[20]];function respondWithStatusCode(_0xe4fax15,_0xe4fax16,_0xe4fax17){_0xe4fax16= _0xe4fax16|| 204;return function(_0xe4fax18){if(_0xe4fax18){logger[_0x66af[24]](_0x66af[22],_0xe4fax17,_0xe4fax16,_0x66af[23]);logger[_0x66af[26]](_0x66af[25],_0xe4fax17,_0xe4fax16,_0x66af[23]);return _0xe4fax15[_0x66af[27]](_0xe4fax16)};return _0xe4fax15[_0x66af[29]](304)[_0x66af[28]]()}}function respondWithResult(_0xe4fax15,_0xe4fax16,_0xe4fax17){_0xe4fax16= _0xe4fax16|| 200;return function(_0xe4fax18){if(_0xe4fax18){logger[_0x66af[24]](_0x66af[22],_0xe4fax17,_0xe4fax16,_0x66af[30]);logger[_0x66af[26]](_0x66af[25],_0xe4fax17,_0xe4fax16,_0x66af[30],JSON[_0x66af[31]](_0xe4fax18));return _0xe4fax15[_0x66af[29]](_0xe4fax16)[_0x66af[32]](_0xe4fax18)};return _0xe4fax15[_0x66af[29]](304)[_0x66af[28]]()}}function respondWithFilteredResult(_0xe4fax15,_0xe4fax1b,_0xe4fax17){return function(_0xe4fax18){if(_0xe4fax18){var _0xe4fax1c=_0xe4fax18[_0x66af[33]],_0xe4fax1d=_0xe4fax1b[_0x66af[34]],_0xe4fax1e=_0xe4fax1b[_0x66af[34]]+ _0xe4fax1b[_0x66af[35]],_0xe4fax16;if(_0xe4fax1e>= _0xe4fax1c){_0xe4fax1e= _0xe4fax1c;_0xe4fax16= 200}else {_0xe4fax16= 206};_0xe4fax15[_0x66af[29]](_0xe4fax16);logger[_0x66af[24]](_0x66af[22],_0xe4fax17,_0xe4fax16,_0x66af[36]);logger[_0x66af[26]](_0x66af[25],_0xe4fax17,_0xe4fax16,_0x66af[30],JSON[_0x66af[31]](_0xe4fax18));return _0xe4fax15[_0x66af[40]](_0x66af[37],_0xe4fax1d+ _0x66af[38]+ _0xe4fax1e+ _0x66af[39]+ _0xe4fax1c)[_0x66af[32]](_0xe4fax18)};return null}}function patchUpdates(_0xe4fax20){return function(_0xe4fax18){try{jsonpatch[_0x66af[41]](_0xe4fax18,_0xe4fax20,true)}catch(err){return BPromise[_0x66af[42]](err)};return _0xe4fax18[_0x66af[43]]()}}function saveUpdates(_0xe4fax22,_0xe4fax16,_0xe4fax17){return function(_0xe4fax18){if(_0xe4fax18){return _0xe4fax18[_0x66af[46]](_0xe4fax22)[_0x66af[45]](function(_0xe4fax23){logger[_0x66af[24]](_0x66af[22],_0xe4fax17,_0xe4fax16,_0x66af[44]);logger[_0x66af[26]](_0x66af[25],_0xe4fax17,_0xe4fax16,_0x66af[44],JSON[_0x66af[31]](_0xe4fax18));return _0xe4fax23})};return null}}function removeEntity(_0xe4fax15,_0xe4fax16,_0xe4fax17){return function(_0xe4fax18){if(_0xe4fax18){return _0xe4fax18[_0x66af[48]]()[_0x66af[45]](function(){logger[_0x66af[24]](_0x66af[22],_0xe4fax17,_0xe4fax16,_0x66af[47]);logger[_0x66af[26]](_0x66af[25],_0xe4fax17,_0xe4fax16,_0x66af[47],JSON[_0x66af[31]](_0xe4fax18));_0xe4fax15[_0x66af[29]](204)[_0x66af[28]]()})}}}function handleEntityNotFound(_0xe4fax15,_0xe4fax16,_0xe4fax17){return function(_0xe4fax18){if(!_0xe4fax18){logger[_0x66af[50]](_0x66af[22],_0xe4fax17,404,_0x66af[49]);_0xe4fax15[_0x66af[29]](404)[_0x66af[28]]();return null};return _0xe4fax18}}function handleError(_0xe4fax15,_0xe4fax16,_0xe4fax17){_0xe4fax16= _0xe4fax16|| 500;return function(_0xe4fax27){logger[_0x66af[50]](_0x66af[22],_0xe4fax17,_0xe4fax16,JSON[_0x66af[31]](_0xe4fax27));delete _0xe4fax27[_0x66af[51]];_0xe4fax15[_0x66af[29]](_0xe4fax16)[_0x66af[52]](_0xe4fax27)}}exports[_0x66af[53]]= function(_0xe4fax28,_0xe4fax15){var _0xe4fax1b={},_0xe4fax29={};_0xe4fax29[_0x66af[54]]= _[_0x66af[57]](db[_0x66af[56]][_0x66af[55]]);_0xe4fax29[_0x66af[58]]= _[_0x66af[57]](_0xe4fax28[_0x66af[58]]);_0xe4fax29[_0x66af[59]]= _[_0x66af[60]](_0xe4fax29[_0x66af[54]],_0xe4fax29[_0x66af[58]]);_0xe4fax1b[_0x66af[61]]= _[_0x66af[60]](_0xe4fax29[_0x66af[54]],qs[_0x66af[62]](_0xe4fax28[_0x66af[58]][_0x66af[62]]));_0xe4fax1b[_0x66af[61]]= (_0xe4fax1b[_0x66af[61]][_0x66af[63]])?_0xe4fax1b[_0x66af[61]]:_0xe4fax29[_0x66af[54]];if(!_0xe4fax28[_0x66af[58]][_0x66af[65]](_0x66af[64])){_0xe4fax1b[_0x66af[35]]= qs[_0x66af[35]](_0xe4fax28[_0x66af[58]][_0x66af[35]]);_0xe4fax1b[_0x66af[34]]= qs[_0x66af[34]](_0xe4fax28[_0x66af[58]][_0x66af[34]])};_0xe4fax1b[_0x66af[66]]= qs[_0x66af[67]](_0xe4fax28[_0x66af[58]][_0x66af[67]]);_0xe4fax1b[_0x66af[68]]= qs[_0x66af[59]](_[_0x66af[69]](_0xe4fax28[_0x66af[58]],_0xe4fax29[_0x66af[59]]));if(_0xe4fax28[_0x66af[58]][_0x66af[70]]){_0xe4fax1b[_0x66af[68]]= _[_0x66af[73]](_0xe4fax1b[_0x66af[68]],{$or:_[_0x66af[72]](_0xe4fax1b[_0x66af[61]],function(_0xe4fax2a){var _0xe4fax2b={};_0xe4fax2b[_0xe4fax2a]= {$like:_0x66af[71]+ _0xe4fax28[_0x66af[58]][_0x66af[70]]+ _0x66af[71]};return _0xe4fax2b})})};_0xe4fax1b= _[_0x66af[73]]({},_0xe4fax1b,_0xe4fax28[_0x66af[74]]);return db[_0x66af[56]][_0x66af[76]](_0xe4fax1b)[_0x66af[45]](respondWithFilteredResult(_0xe4fax15,_0xe4fax1b,_0x66af[53]))[_0x66af[75]](handleError(_0xe4fax15,null,_0x66af[53]))};exports[_0x66af[77]]= function(_0xe4fax28,_0xe4fax15){var _0xe4fax1b={raw:false,where:{id:_0xe4fax28[_0x66af[79]][_0x66af[78]]}},_0xe4fax29={};_0xe4fax29[_0x66af[54]]= _[_0x66af[57]](db[_0x66af[56]][_0x66af[55]]);_0xe4fax29[_0x66af[58]]= _[_0x66af[57]](_0xe4fax28[_0x66af[58]]);_0xe4fax29[_0x66af[59]]= _[_0x66af[60]](_0xe4fax29[_0x66af[54]],_0xe4fax29[_0x66af[58]]);_0xe4fax1b[_0x66af[61]]= _[_0x66af[60]](_0xe4fax29[_0x66af[54]],qs[_0x66af[62]](_0xe4fax28[_0x66af[58]][_0x66af[62]]));_0xe4fax1b[_0x66af[61]]= (_0xe4fax1b[_0x66af[61]][_0x66af[63]])?_0xe4fax1b[_0x66af[61]]:_0xe4fax29[_0x66af[54]];_0xe4fax1b= _[_0x66af[73]]({},_0xe4fax1b,_0xe4fax28[_0x66af[74]]);return db[_0x66af[56]][_0x66af[80]](_0xe4fax1b)[_0x66af[45]](handleEntityNotFound(_0xe4fax15,null,_0x66af[77]))[_0x66af[45]](respondWithResult(_0xe4fax15,null,_0x66af[77]))[_0x66af[75]](handleError(_0xe4fax15,null,_0x66af[77]))};exports[_0x66af[81]]= function(_0xe4fax28,_0xe4fax15){return db[_0x66af[56]][_0x66af[81]](_0xe4fax28[_0x66af[82]],{})[_0x66af[45]](respondWithResult(_0xe4fax15,201,_0x66af[81]))[_0x66af[75]](handleError(_0xe4fax15,null,_0x66af[81]))};exports[_0x66af[46]]= function(_0xe4fax28,_0xe4fax15){if(_0xe4fax28[_0x66af[82]][_0x66af[78]]){delete _0xe4fax28[_0x66af[82]][_0x66af[78]]};return db[_0x66af[56]][_0x66af[80]]({where:{id:_0xe4fax28[_0x66af[79]][_0x66af[78]]}})[_0x66af[45]](handleEntityNotFound(_0xe4fax15,null,_0x66af[46]))[_0x66af[45]](saveUpdates(_0xe4fax28[_0x66af[82]],null,_0x66af[46]))[_0x66af[45]](respondWithResult(_0xe4fax15,null,_0x66af[46]))[_0x66af[75]](handleError(_0xe4fax15,null,_0x66af[46]))};exports[_0x66af[48]]= function(_0xe4fax28,_0xe4fax15){return db[_0x66af[56]][_0x66af[80]]({where:{id:_0xe4fax28[_0x66af[79]][_0x66af[78]]}})[_0x66af[45]](handleEntityNotFound(_0xe4fax15,null,_0x66af[48]))[_0x66af[45]](removeEntity(_0xe4fax15,null,_0x66af[48]))[_0x66af[75]](handleError(_0xe4fax15,null,_0x66af[48]))};exports[_0x66af[83]]= function(_0xe4fax28,_0xe4fax15){return db[_0x66af[56]][_0x66af[83]]()[_0x66af[45]](respondWithResult(_0xe4fax15,null,_0x66af[83]))[_0x66af[75]](handleError(_0xe4fax15,null,_0x66af[83]))}
\ No newline at end of file
diff --git a/server/api/smsMessage/smsMessage.model.js b/server/api/smsMessage/smsMessage.model.js
new file mode 100644 (file)
index 0000000..2bdff9c
--- /dev/null
@@ -0,0 +1 @@
+var _0x1fbf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x73\x6D\x73\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x1fbf[0];var _=require(_0x1fbf[1]);var util=require(_0x1fbf[2]);var logger=require(_0x1fbf[4])(_0x1fbf[3]);var attributes=require(_0x1fbf[5]);module[_0x1fbf[6]]= function(_0xc3e1x5,_0xc3e1x6){return _0xc3e1x5[_0x1fbf[9]](_0x1fbf[7],attributes,{tableName:_0x1fbf[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/smsMessage/smsMessage.rpc.js b/server/api/smsMessage/smsMessage.rpc.js
new file mode 100644 (file)
index 0000000..4e445d6
--- /dev/null
@@ -0,0 +1 @@
+var _0xee75=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xee75[0];var _=require(_0xee75[1]);var util=require(_0xee75[2]);var moment=require(_0xee75[3]);var BPromise=require(_0xee75[4]);var db=require(_0xee75[6])[_0xee75[5]];var utils=require(_0xee75[7]);var logger=require(_0xee75[9])(_0xee75[8]);var jayson=require(_0xee75[10]);var client=jayson[_0xee75[12]][_0xee75[11]]({port:9002});function respondWithRpcPromise(_0xf46axb,_0xf46axc,_0xf46axd){return  new BPromise(function(_0xf46axe,_0xf46axf){return client[_0xee75[25]](_0xf46axb,_0xf46axd)[_0xee75[24]](function(_0xf46ax11){logger[_0xee75[17]](_0xee75[13],_0xf46axc,_0xee75[16]);logger[_0xee75[20]](_0xee75[18],_0xf46axc,_0xee75[16],JSON[_0xee75[19]](_0xf46ax11));if(_0xf46ax11[_0xee75[14]]){if(_0xf46ax11[_0xee75[14]][_0xee75[21]]=== 500){logger[_0xee75[14]](_0xee75[13],_0xf46axc,_0xf46ax11[_0xee75[14]][_0xee75[22]]);return _0xf46axf(_0xf46ax11[_0xee75[14]][_0xee75[22]])};logger[_0xee75[14]](_0xee75[13],_0xf46axc,_0xf46ax11[_0xee75[14]][_0xee75[22]]);return _0xf46axe(_0xf46ax11[_0xee75[14]][_0xee75[22]])}else {logger[_0xee75[17]](_0xee75[13],_0xf46axc,_0xee75[16]);_0xf46axe(_0xf46ax11[_0xee75[23]][_0xee75[22]])}})[_0xee75[15]](function(_0xf46ax10){logger[_0xee75[14]](_0xee75[13],_0xf46axc,_0xf46ax10);_0xf46axf(_0xf46ax10)})})}
\ No newline at end of file
diff --git a/server/api/smsQueue/index.js b/server/api/smsQueue/index.js
new file mode 100644 (file)
index 0000000..0cc4fda
--- /dev/null
@@ -0,0 +1 @@
+var _0x6260=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x6260[0];var multer=require(_0x6260[1]);var util=require(_0x6260[2]);var path=require(_0x6260[3]);var express=require(_0x6260[4]);var router=express.Router();var auth=require(_0x6260[5]);var config=require(_0x6260[6]);var controller=require(_0x6260[7]);router[_0x6260[11]](_0x6260[8],auth[_0x6260[9]](),controller[_0x6260[10]]);router[_0x6260[11]](_0x6260[12],auth[_0x6260[9]](),controller[_0x6260[13]]);router[_0x6260[11]](_0x6260[14],auth[_0x6260[9]](),controller[_0x6260[15]]);router[_0x6260[11]](_0x6260[16],auth[_0x6260[9]](),controller[_0x6260[17]]);router[_0x6260[19]](_0x6260[8],auth[_0x6260[9]](),controller[_0x6260[18]]);router[_0x6260[19]](_0x6260[14],auth[_0x6260[9]](),controller[_0x6260[20]]);router[_0x6260[19]](_0x6260[16],auth[_0x6260[9]](),controller[_0x6260[21]]);router[_0x6260[23]](_0x6260[12],auth[_0x6260[9]](),controller[_0x6260[22]]);router[_0x6260[25]](_0x6260[12],auth[_0x6260[9]](),controller[_0x6260[24]]);router[_0x6260[25]](_0x6260[14],auth[_0x6260[9]](),controller[_0x6260[26]]);router[_0x6260[25]](_0x6260[16],auth[_0x6260[9]](),controller[_0x6260[27]]);module[_0x6260[28]]= router
\ No newline at end of file
diff --git a/server/api/smsQueue/smsQueue.attributes.js b/server/api/smsQueue/smsQueue.attributes.js
new file mode 100644 (file)
index 0000000..7a2eff0
--- /dev/null
@@ -0,0 +1 @@
+var _0xe3f6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x62\x65\x65\x70\x61\x6C\x6C","\x72\x6F\x75\x6E\x64\x72\x6F\x62\x69\x6E"];_0xe3f6[0];var Sequelize=require(_0xe3f6[1]);module[_0xe3f6[2]]= {name:{type:Sequelize[_0xe3f6[3]],unique:_0xe3f6[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},description:{type:Sequelize[_0xe3f6[3]]},timeout:{type:Sequelize[_0xe3f6[5]],validate:{min:1}},strategy:{type:Sequelize.ENUM(_0xe3f6[6],_0xe3f6[7],_0xe3f6[8])},lastAgent:{type:Sequelize[_0xe3f6[5]],defaultValue:0}}
\ No newline at end of file
diff --git a/server/api/smsQueue/smsQueue.controller.js b/server/api/smsQueue/smsQueue.controller.js
new file mode 100644 (file)
index 0000000..b6bad81
--- /dev/null
@@ -0,0 +1 @@
+var _0x3d0b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73"];_0x3d0b[0];var jsonpatch=require(_0x3d0b[1]);var rp=require(_0x3d0b[2]);var moment=require(_0x3d0b[3]);var BPromise=require(_0x3d0b[4]);var util=require(_0x3d0b[5]);var path=require(_0x3d0b[6]);var sox=require(_0x3d0b[7]);var ejs=require(_0x3d0b[8]);var fs=require(_0x3d0b[9]);var _=require(_0x3d0b[10]);var squel=require(_0x3d0b[11]);var crypto=require(_0x3d0b[12]);var jsforce=require(_0x3d0b[13]);var toCsv=require(_0x3d0b[14]);var qs=require(_0x3d0b[15]);var logger=require(_0x3d0b[17])(_0x3d0b[16]);var utils=require(_0x3d0b[18]);var config=require(_0x3d0b[19]);var db=require(_0x3d0b[21])[_0x3d0b[20]];function respondWithStatusCode(_0x30ebx15,_0x30ebx16,_0x30ebx17){_0x30ebx16= _0x30ebx16|| 204;return function(_0x30ebx18){if(_0x30ebx18){logger[_0x3d0b[24]](_0x3d0b[22],_0x30ebx17,_0x30ebx16,_0x3d0b[23]);logger[_0x3d0b[26]](_0x3d0b[25],_0x30ebx17,_0x30ebx16,_0x3d0b[23]);return _0x30ebx15[_0x3d0b[27]](_0x30ebx16)};return _0x30ebx15[_0x3d0b[29]](304)[_0x3d0b[28]]()}}function respondWithResult(_0x30ebx15,_0x30ebx16,_0x30ebx17){_0x30ebx16= _0x30ebx16|| 200;return function(_0x30ebx18){if(_0x30ebx18){logger[_0x3d0b[24]](_0x3d0b[22],_0x30ebx17,_0x30ebx16,_0x3d0b[30]);logger[_0x3d0b[26]](_0x3d0b[25],_0x30ebx17,_0x30ebx16,_0x3d0b[30],JSON[_0x3d0b[31]](_0x30ebx18));return _0x30ebx15[_0x3d0b[29]](_0x30ebx16)[_0x3d0b[32]](_0x30ebx18)};return _0x30ebx15[_0x3d0b[29]](304)[_0x3d0b[28]]()}}function respondWithFilteredResult(_0x30ebx15,_0x30ebx1b,_0x30ebx17){return function(_0x30ebx18){if(_0x30ebx18){var _0x30ebx1c=_0x30ebx18[_0x3d0b[33]],_0x30ebx1d=_0x30ebx1b[_0x3d0b[34]],_0x30ebx1e=_0x30ebx1b[_0x3d0b[34]]+ _0x30ebx1b[_0x3d0b[35]],_0x30ebx16;if(_0x30ebx1e>= _0x30ebx1c){_0x30ebx1e= _0x30ebx1c;_0x30ebx16= 200}else {_0x30ebx16= 206};_0x30ebx15[_0x3d0b[29]](_0x30ebx16);logger[_0x3d0b[24]](_0x3d0b[22],_0x30ebx17,_0x30ebx16,_0x3d0b[36]);logger[_0x3d0b[26]](_0x3d0b[25],_0x30ebx17,_0x30ebx16,_0x3d0b[30],JSON[_0x3d0b[31]](_0x30ebx18));return _0x30ebx15[_0x3d0b[40]](_0x3d0b[37],_0x30ebx1d+ _0x3d0b[38]+ _0x30ebx1e+ _0x3d0b[39]+ _0x30ebx1c)[_0x3d0b[32]](_0x30ebx18)};return null}}function patchUpdates(_0x30ebx20){return function(_0x30ebx18){try{jsonpatch[_0x3d0b[41]](_0x30ebx18,_0x30ebx20,true)}catch(err){return BPromise[_0x3d0b[42]](err)};return _0x30ebx18[_0x3d0b[43]]()}}function saveUpdates(_0x30ebx22,_0x30ebx16,_0x30ebx17){return function(_0x30ebx18){if(_0x30ebx18){return _0x30ebx18[_0x3d0b[46]](_0x30ebx22)[_0x3d0b[45]](function(_0x30ebx23){logger[_0x3d0b[24]](_0x3d0b[22],_0x30ebx17,_0x30ebx16,_0x3d0b[44]);logger[_0x3d0b[26]](_0x3d0b[25],_0x30ebx17,_0x30ebx16,_0x3d0b[44],JSON[_0x3d0b[31]](_0x30ebx18));return _0x30ebx23})};return null}}function removeEntity(_0x30ebx15,_0x30ebx16,_0x30ebx17){return function(_0x30ebx18){if(_0x30ebx18){return _0x30ebx18[_0x3d0b[48]]()[_0x3d0b[45]](function(){logger[_0x3d0b[24]](_0x3d0b[22],_0x30ebx17,_0x30ebx16,_0x3d0b[47]);logger[_0x3d0b[26]](_0x3d0b[25],_0x30ebx17,_0x30ebx16,_0x3d0b[47],JSON[_0x3d0b[31]](_0x30ebx18));_0x30ebx15[_0x3d0b[29]](204)[_0x3d0b[28]]()})}}}function handleEntityNotFound(_0x30ebx15,_0x30ebx16,_0x30ebx17){return function(_0x30ebx18){if(!_0x30ebx18){logger[_0x3d0b[50]](_0x3d0b[22],_0x30ebx17,404,_0x3d0b[49]);_0x30ebx15[_0x3d0b[29]](404)[_0x3d0b[28]]();return null};return _0x30ebx18}}function handleError(_0x30ebx15,_0x30ebx16,_0x30ebx17){_0x30ebx16= _0x30ebx16|| 500;return function(_0x30ebx27){logger[_0x3d0b[50]](_0x3d0b[22],_0x30ebx17,_0x30ebx16,JSON[_0x3d0b[31]](_0x30ebx27));delete _0x30ebx27[_0x3d0b[51]];_0x30ebx15[_0x3d0b[29]](_0x30ebx16)[_0x3d0b[52]](_0x30ebx27)}}exports[_0x3d0b[53]]= function(_0x30ebx28,_0x30ebx15){var _0x30ebx1b={},_0x30ebx29={};_0x30ebx29[_0x3d0b[54]]= _[_0x3d0b[57]](db[_0x3d0b[56]][_0x3d0b[55]]);_0x30ebx29[_0x3d0b[58]]= _[_0x3d0b[57]](_0x30ebx28[_0x3d0b[58]]);_0x30ebx29[_0x3d0b[59]]= _[_0x3d0b[60]](_0x30ebx29[_0x3d0b[54]],_0x30ebx29[_0x3d0b[58]]);_0x30ebx1b[_0x3d0b[61]]= _[_0x3d0b[60]](_0x30ebx29[_0x3d0b[54]],qs[_0x3d0b[62]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[62]]));_0x30ebx1b[_0x3d0b[61]]= (_0x30ebx1b[_0x3d0b[61]][_0x3d0b[63]])?_0x30ebx1b[_0x3d0b[61]]:_0x30ebx29[_0x3d0b[54]];if(!_0x30ebx28[_0x3d0b[58]][_0x3d0b[65]](_0x3d0b[64])){_0x30ebx1b[_0x3d0b[35]]= qs[_0x3d0b[35]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[35]]);_0x30ebx1b[_0x3d0b[34]]= qs[_0x3d0b[34]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[34]])};_0x30ebx1b[_0x3d0b[66]]= qs[_0x3d0b[67]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[67]]);_0x30ebx1b[_0x3d0b[68]]= qs[_0x3d0b[59]](_[_0x3d0b[69]](_0x30ebx28[_0x3d0b[58]],_0x30ebx29[_0x3d0b[59]]));if(_0x30ebx28[_0x3d0b[58]][_0x3d0b[70]]){_0x30ebx1b[_0x3d0b[68]]= _[_0x3d0b[73]](_0x30ebx1b[_0x3d0b[68]],{$or:_[_0x3d0b[72]](_0x30ebx1b[_0x3d0b[61]],function(_0x30ebx2a){var _0x30ebx2b={};_0x30ebx2b[_0x30ebx2a]= {$like:_0x3d0b[71]+ _0x30ebx28[_0x3d0b[58]][_0x3d0b[70]]+ _0x3d0b[71]};return _0x30ebx2b})})};_0x30ebx1b= _[_0x3d0b[73]]({},_0x30ebx1b,_0x30ebx28[_0x3d0b[74]]);return db[_0x3d0b[56]][_0x3d0b[76]](_0x30ebx1b)[_0x3d0b[45]](respondWithFilteredResult(_0x30ebx15,_0x30ebx1b,_0x3d0b[53]))[_0x3d0b[75]](handleError(_0x30ebx15,null,_0x3d0b[53]))};exports[_0x3d0b[77]]= function(_0x30ebx28,_0x30ebx15){var _0x30ebx1b={raw:true,where:{id:_0x30ebx28[_0x3d0b[79]][_0x3d0b[78]]}},_0x30ebx29={};_0x30ebx29[_0x3d0b[54]]= _[_0x3d0b[57]](db[_0x3d0b[56]][_0x3d0b[55]]);_0x30ebx29[_0x3d0b[58]]= _[_0x3d0b[57]](_0x30ebx28[_0x3d0b[58]]);_0x30ebx29[_0x3d0b[59]]= _[_0x3d0b[60]](_0x30ebx29[_0x3d0b[54]],_0x30ebx29[_0x3d0b[58]]);_0x30ebx1b[_0x3d0b[61]]= _[_0x3d0b[60]](_0x30ebx29[_0x3d0b[54]],qs[_0x3d0b[62]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[62]]));_0x30ebx1b[_0x3d0b[61]]= (_0x30ebx1b[_0x3d0b[61]][_0x3d0b[63]])?_0x30ebx1b[_0x3d0b[61]]:_0x30ebx29[_0x3d0b[54]];_0x30ebx1b= _[_0x3d0b[73]]({},_0x30ebx1b,_0x30ebx28[_0x3d0b[74]]);return db[_0x3d0b[56]][_0x3d0b[80]](_0x30ebx1b)[_0x3d0b[45]](handleEntityNotFound(_0x30ebx15,null,_0x3d0b[77]))[_0x3d0b[45]](respondWithResult(_0x30ebx15,null,_0x3d0b[77]))[_0x3d0b[75]](handleError(_0x30ebx15,null,_0x3d0b[77]))};exports[_0x3d0b[81]]= function(_0x30ebx28,_0x30ebx15){return db[_0x3d0b[56]][_0x3d0b[81]](_0x30ebx28[_0x3d0b[82]],{})[_0x3d0b[45]](respondWithResult(_0x30ebx15,201,_0x3d0b[81]))[_0x3d0b[75]](handleError(_0x30ebx15,null,_0x3d0b[81]))};exports[_0x3d0b[46]]= function(_0x30ebx28,_0x30ebx15){if(_0x30ebx28[_0x3d0b[82]][_0x3d0b[78]]){delete _0x30ebx28[_0x3d0b[82]][_0x3d0b[78]]};return db[_0x3d0b[56]][_0x3d0b[80]]({where:{id:_0x30ebx28[_0x3d0b[79]][_0x3d0b[78]]}})[_0x3d0b[45]](handleEntityNotFound(_0x30ebx15,null,_0x3d0b[46]))[_0x3d0b[45]](saveUpdates(_0x30ebx28[_0x3d0b[82]],null,_0x3d0b[46]))[_0x3d0b[45]](respondWithResult(_0x30ebx15,null,_0x3d0b[46]))[_0x3d0b[75]](handleError(_0x30ebx15,null,_0x3d0b[46]))};exports[_0x3d0b[48]]= function(_0x30ebx28,_0x30ebx15){return db[_0x3d0b[56]][_0x3d0b[80]]({where:{id:_0x30ebx28[_0x3d0b[79]][_0x3d0b[78]]}})[_0x3d0b[45]](handleEntityNotFound(_0x30ebx15,null,_0x3d0b[48]))[_0x3d0b[45]](removeEntity(_0x30ebx15,null,_0x3d0b[48]))[_0x3d0b[75]](handleError(_0x30ebx15,null,_0x3d0b[48]))};exports[_0x3d0b[83]]= function(_0x30ebx28,_0x30ebx18,_0x30ebx2c){var _0x30ebx1b={};var _0x30ebx29={};var _0x30ebx2d;var _0x30ebx1c;return db[_0x3d0b[56]][_0x3d0b[85]]({where:{id:_0x30ebx28[_0x3d0b[79]][_0x3d0b[78]]}})[_0x3d0b[45]](handleEntityNotFound(_0x30ebx18,null,_0x3d0b[83]))[_0x3d0b[45]](function(_0x30ebx18){if(_0x30ebx18){_0x30ebx2d= _0x30ebx18;_0x30ebx29[_0x3d0b[54]]= _[_0x3d0b[57]](db[_0x3d0b[84]][_0x3d0b[55]]);_0x30ebx29[_0x3d0b[58]]= _[_0x3d0b[57]](_0x30ebx28[_0x3d0b[58]]);_0x30ebx29[_0x3d0b[59]]= _[_0x3d0b[60]](_0x30ebx29[_0x3d0b[54]],_0x30ebx29[_0x3d0b[58]]);_0x30ebx1b[_0x3d0b[61]]= _[_0x3d0b[60]](_0x30ebx29[_0x3d0b[54]],qs[_0x3d0b[62]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[62]]));_0x30ebx1b[_0x3d0b[61]]= (_0x30ebx1b[_0x3d0b[61]][_0x3d0b[63]])?_0x30ebx1b[_0x3d0b[61]]:_0x30ebx29[_0x3d0b[54]];_0x30ebx1b[_0x3d0b[66]]= qs[_0x3d0b[67]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[67]]);_0x30ebx1b[_0x3d0b[68]]= qs[_0x3d0b[59]](_[_0x3d0b[69]](_0x30ebx28[_0x3d0b[58]],_0x30ebx29[_0x3d0b[59]]));if(_0x30ebx28[_0x3d0b[58]][_0x3d0b[70]]){_0x30ebx1b[_0x3d0b[68]]= _[_0x3d0b[73]](_0x30ebx1b[_0x3d0b[68]],{$or:_[_0x3d0b[72]](_0x30ebx1b[_0x3d0b[61]],function(_0x30ebx2a){var _0x30ebx2b={};_0x30ebx2b[_0x30ebx2a]= {$like:_0x3d0b[71]+ _0x30ebx28[_0x3d0b[58]][_0x3d0b[70]]+ _0x3d0b[71]};return _0x30ebx2b})})};_0x30ebx1b= _[_0x3d0b[73]]({},_0x30ebx1b,_0x30ebx28[_0x3d0b[74]]);return _0x30ebx2d[_0x3d0b[83]](_0x30ebx1b)}})[_0x3d0b[45]](function(_0x30ebx2f){if(_0x30ebx2f){_0x30ebx1c= _0x30ebx2f[_0x3d0b[63]];if(!_0x30ebx28[_0x3d0b[58]][_0x3d0b[65]](_0x3d0b[64])){_0x30ebx1b[_0x3d0b[35]]= qs[_0x3d0b[35]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[35]]);_0x30ebx1b[_0x3d0b[34]]= qs[_0x3d0b[34]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[34]])};return _0x30ebx2d[_0x3d0b[83]](_0x30ebx1b)}})[_0x3d0b[45]](function(_0x30ebx2e){return _0x30ebx2e?{count:_0x30ebx1c,rows:_0x30ebx2e}:null})[_0x3d0b[45]](respondWithResult(_0x30ebx18,null,_0x3d0b[83]))[_0x3d0b[75]](handleError(_0x30ebx18,null,_0x3d0b[83]))};exports[_0x3d0b[86]]= function(_0x30ebx28,_0x30ebx15,_0x30ebx2c){var _0x30ebx30=[];var _0x30ebx31;return db[_0x3d0b[84]][_0x3d0b[93]]({where:{id:_0x30ebx28[_0x3d0b[82]][_0x3d0b[87]]},attributes:[_0x3d0b[78]],include:[{model:db[_0x3d0b[92]],as:_0x3d0b[90],attributes:[_0x3d0b[78]],raw:true}]})[_0x3d0b[45]](function(_0x30ebx34){if(_0x30ebx34){for(var _0x30ebx35=0;_0x30ebx35< _0x30ebx34[_0x3d0b[63]];_0x30ebx35+= 1){for(var _0x30ebx36=0;_0x30ebx36< _0x30ebx34[_0x30ebx35][_0x3d0b[90]][_0x3d0b[63]];_0x30ebx36+= 1){_0x30ebx30= _[_0x3d0b[91]](_0x30ebx30,[_0x30ebx34[_0x30ebx35][_0x3d0b[90]][_0x30ebx36][_0x3d0b[78]]])}};return _0x30ebx30}})[_0x3d0b[45]](function(_0x30ebx33){if(_0x30ebx33){return db[_0x3d0b[56]][_0x3d0b[80]]({where:{id:_0x30ebx28[_0x3d0b[79]][_0x3d0b[78]]}})}})[_0x3d0b[45]](function(_0x30ebx32){if(_0x30ebx32){_0x30ebx31= _0x30ebx32;return _0x30ebx31[_0x3d0b[89]](_0x30ebx30,{penalty:_0x30ebx28[_0x3d0b[82]][_0x3d0b[88]]})}})[_0x3d0b[45]](function(_0x30ebx18){if(_0x30ebx18){return _0x30ebx31[_0x3d0b[86]](_0x30ebx28[_0x3d0b[82]][_0x3d0b[87]])}})[_0x3d0b[45]](handleEntityNotFound(_0x30ebx15,null,_0x3d0b[86]))[_0x3d0b[45]](respondWithStatusCode(_0x30ebx15,null,_0x3d0b[86]))[_0x3d0b[75]](handleError(_0x30ebx15,null,_0x3d0b[86]))};exports[_0x3d0b[94]]= function(_0x30ebx28,_0x30ebx15,_0x30ebx2c){var _0x30ebx30=[];var _0x30ebx31;return db[_0x3d0b[84]][_0x3d0b[93]]({where:{id:_0x30ebx28[_0x3d0b[58]][_0x3d0b[87]]},attributes:[_0x3d0b[78]],include:[{model:db[_0x3d0b[92]],as:_0x3d0b[90],attributes:[_0x3d0b[78]],raw:true}]})[_0x3d0b[45]](function(_0x30ebx34){if(_0x30ebx34){for(var _0x30ebx35=0;_0x30ebx35< _0x30ebx34[_0x3d0b[63]];_0x30ebx35+= 1){for(var _0x30ebx36=0;_0x30ebx36< _0x30ebx34[_0x30ebx35][_0x3d0b[90]][_0x3d0b[63]];_0x30ebx36+= 1){_0x30ebx30= _[_0x3d0b[91]](_0x30ebx30,[_0x30ebx34[_0x30ebx35][_0x3d0b[90]][_0x30ebx36][_0x3d0b[78]]])}};return _0x30ebx30}})[_0x3d0b[45]](function(_0x30ebx33){if(_0x30ebx33){return db[_0x3d0b[56]][_0x3d0b[80]]({where:{id:_0x30ebx28[_0x3d0b[79]][_0x3d0b[78]]}})}})[_0x3d0b[45]](function(_0x30ebx32){if(_0x30ebx32){_0x30ebx31= _0x30ebx32;return _0x30ebx31[_0x3d0b[95]](_0x30ebx30)}})[_0x3d0b[45]](function(_0x30ebx18){if(_0x30ebx31){return _0x30ebx31[_0x3d0b[94]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[87]])}})[_0x3d0b[45]](handleEntityNotFound(_0x30ebx15,null,_0x3d0b[94]))[_0x3d0b[45]](respondWithStatusCode(_0x30ebx15,null,_0x3d0b[94]))[_0x3d0b[75]](handleError(_0x30ebx15,null,_0x3d0b[94]))};exports[_0x3d0b[89]]= function(_0x30ebx28,_0x30ebx15,_0x30ebx2c){return db[_0x3d0b[56]][_0x3d0b[80]]({where:{id:_0x30ebx28[_0x3d0b[79]][_0x3d0b[78]]}})[_0x3d0b[45]](handleEntityNotFound(_0x30ebx15,null,_0x3d0b[89]))[_0x3d0b[45]](function(_0x30ebx18){if(_0x30ebx18){return _0x30ebx18[_0x3d0b[89]](_0x30ebx28[_0x3d0b[82]][_0x3d0b[87]],_[_0x3d0b[96]](_0x30ebx28[_0x3d0b[82]],[_0x3d0b[87],_0x3d0b[78]])|| {})};return null})[_0x3d0b[45]](respondWithResult(_0x30ebx15,null,_0x3d0b[89]))[_0x3d0b[75]](handleError(_0x30ebx15,null,_0x3d0b[89]))};exports[_0x3d0b[95]]= function(_0x30ebx28,_0x30ebx15,_0x30ebx2c){var _0x30ebx2f;return db[_0x3d0b[56]][_0x3d0b[80]]({where:{id:_0x30ebx28[_0x3d0b[79]][_0x3d0b[78]]}})[_0x3d0b[45]](handleEntityNotFound(_0x30ebx15,null,_0x3d0b[95]))[_0x3d0b[45]](function(_0x30ebx18){if(_0x30ebx18){return _0x30ebx18[_0x3d0b[95]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[87]])}})[_0x3d0b[45]](respondWithStatusCode(_0x30ebx15,null,_0x3d0b[95]))[_0x3d0b[75]](handleError(_0x30ebx15,null,_0x3d0b[95]))};exports[_0x3d0b[97]]= function(_0x30ebx28,_0x30ebx18,_0x30ebx2c){var _0x30ebx1b={};var _0x30ebx29={};var _0x30ebx2d;var _0x30ebx1c;return db[_0x3d0b[56]][_0x3d0b[85]]({where:{id:_0x30ebx28[_0x3d0b[79]][_0x3d0b[78]]}})[_0x3d0b[45]](handleEntityNotFound(_0x30ebx18,null,_0x3d0b[97]))[_0x3d0b[45]](function(_0x30ebx18){if(_0x30ebx18){_0x30ebx2d= _0x30ebx18;_0x30ebx29[_0x3d0b[54]]= _[_0x3d0b[57]](db[_0x3d0b[92]][_0x3d0b[55]]);_0x30ebx29[_0x3d0b[58]]= _[_0x3d0b[57]](_0x30ebx28[_0x3d0b[58]]);_0x30ebx29[_0x3d0b[59]]= _[_0x3d0b[60]](_0x30ebx29[_0x3d0b[54]],_0x30ebx29[_0x3d0b[58]]);_0x30ebx1b[_0x3d0b[61]]= _[_0x3d0b[60]](_0x30ebx29[_0x3d0b[54]],qs[_0x3d0b[62]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[62]]));_0x30ebx1b[_0x3d0b[61]]= (_0x30ebx1b[_0x3d0b[61]][_0x3d0b[63]])?_0x30ebx1b[_0x3d0b[61]]:_0x30ebx29[_0x3d0b[54]];_0x30ebx1b[_0x3d0b[66]]= qs[_0x3d0b[67]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[67]]);_0x30ebx1b[_0x3d0b[68]]= qs[_0x3d0b[59]](_[_0x3d0b[69]](_0x30ebx28[_0x3d0b[58]],_0x30ebx29[_0x3d0b[59]]));if(_0x30ebx28[_0x3d0b[58]][_0x3d0b[70]]){_0x30ebx1b[_0x3d0b[68]]= _[_0x3d0b[73]](_0x30ebx1b[_0x3d0b[68]],{$or:_[_0x3d0b[72]](_0x30ebx1b[_0x3d0b[61]],function(_0x30ebx2a){var _0x30ebx2b={};_0x30ebx2b[_0x30ebx2a]= {$like:_0x3d0b[71]+ _0x30ebx28[_0x3d0b[58]][_0x3d0b[70]]+ _0x3d0b[71]};return _0x30ebx2b})})};_0x30ebx1b= _[_0x3d0b[73]]({},_0x30ebx1b,_0x30ebx28[_0x3d0b[74]]);return _0x30ebx2d[_0x3d0b[97]](_0x30ebx1b)}})[_0x3d0b[45]](function(_0x30ebx2f){if(_0x30ebx2f){_0x30ebx1c= _0x30ebx2f[_0x3d0b[63]];if(!_0x30ebx28[_0x3d0b[58]][_0x3d0b[65]](_0x3d0b[64])){_0x30ebx1b[_0x3d0b[35]]= qs[_0x3d0b[35]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[35]]);_0x30ebx1b[_0x3d0b[34]]= qs[_0x3d0b[34]](_0x30ebx28[_0x3d0b[58]][_0x3d0b[34]])};return _0x30ebx2d[_0x3d0b[97]](_0x30ebx1b)}})[_0x3d0b[45]](function(_0x30ebx2e){return _0x30ebx2e?{count:_0x30ebx1c,rows:_0x30ebx2e}:null})[_0x3d0b[45]](respondWithResult(_0x30ebx18,null,_0x3d0b[97]))[_0x3d0b[75]](handleError(_0x30ebx18,null,_0x3d0b[97]))}
\ No newline at end of file
diff --git a/server/api/smsQueue/smsQueue.model.js b/server/api/smsQueue/smsQueue.model.js
new file mode 100644 (file)
index 0000000..432e4a5
--- /dev/null
@@ -0,0 +1 @@
+var _0x9f67=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x51\x75\x65\x75\x65","\x73\x6D\x73\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x9f67[0];var _=require(_0x9f67[1]);var util=require(_0x9f67[2]);var logger=require(_0x9f67[4])(_0x9f67[3]);var attributes=require(_0x9f67[5]);module[_0x9f67[6]]= function(_0x9229x5,_0x9229x6){return _0x9229x5[_0x9f67[9]](_0x9f67[7],attributes,{tableName:_0x9f67[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/smsQueue/smsQueue.rpc.js b/server/api/smsQueue/smsQueue.rpc.js
new file mode 100644 (file)
index 0000000..64e8626
--- /dev/null
@@ -0,0 +1 @@
+var _0x6404=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6404[0];var _=require(_0x6404[1]);var util=require(_0x6404[2]);var moment=require(_0x6404[3]);var BPromise=require(_0x6404[4]);var db=require(_0x6404[6])[_0x6404[5]];var utils=require(_0x6404[7]);var logger=require(_0x6404[9])(_0x6404[8]);var jayson=require(_0x6404[10]);var client=jayson[_0x6404[12]][_0x6404[11]]({port:9002});function respondWithRpcPromise(_0x746exb,_0x746exc,_0x746exd){return  new BPromise(function(_0x746exe,_0x746exf){return client[_0x6404[25]](_0x746exb,_0x746exd)[_0x6404[24]](function(_0x746ex11){logger[_0x6404[17]](_0x6404[13],_0x746exc,_0x6404[16]);logger[_0x6404[20]](_0x6404[18],_0x746exc,_0x6404[16],JSON[_0x6404[19]](_0x746ex11));if(_0x746ex11[_0x6404[14]]){if(_0x746ex11[_0x6404[14]][_0x6404[21]]=== 500){logger[_0x6404[14]](_0x6404[13],_0x746exc,_0x746ex11[_0x6404[14]][_0x6404[22]]);return _0x746exf(_0x746ex11[_0x6404[14]][_0x6404[22]])};logger[_0x6404[14]](_0x6404[13],_0x746exc,_0x746ex11[_0x6404[14]][_0x6404[22]]);return _0x746exe(_0x746ex11[_0x6404[14]][_0x6404[22]])}else {logger[_0x6404[17]](_0x6404[13],_0x746exc,_0x6404[16]);_0x746exe(_0x746ex11[_0x6404[23]][_0x6404[22]])}})[_0x6404[15]](function(_0x746ex10){logger[_0x6404[14]](_0x6404[13],_0x746exc,_0x746ex10);_0x746exf(_0x746ex10)})})}
\ No newline at end of file
diff --git a/server/api/smsReport/index.js b/server/api/smsReport/index.js
new file mode 100644 (file)
index 0000000..0d4eabe
--- /dev/null
@@ -0,0 +1 @@
+var _0x2b33=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x2b33[0];var multer=require(_0x2b33[1]);var util=require(_0x2b33[2]);var path=require(_0x2b33[3]);var express=require(_0x2b33[4]);var router=express.Router();var auth=require(_0x2b33[5]);var config=require(_0x2b33[6]);var controller=require(_0x2b33[7]);router[_0x2b33[11]](_0x2b33[8],auth[_0x2b33[9]](),controller[_0x2b33[10]]);router[_0x2b33[11]](_0x2b33[12],auth[_0x2b33[9]](),controller[_0x2b33[13]]);router[_0x2b33[15]](_0x2b33[8],auth[_0x2b33[9]](),controller[_0x2b33[14]]);router[_0x2b33[17]](_0x2b33[12],auth[_0x2b33[9]](),controller[_0x2b33[16]]);router[_0x2b33[19]](_0x2b33[12],auth[_0x2b33[9]](),controller[_0x2b33[18]]);module[_0x2b33[20]]= router
\ No newline at end of file
diff --git a/server/api/smsReport/smsReport.attributes.js b/server/api/smsReport/smsReport.attributes.js
new file mode 100644 (file)
index 0000000..1a8074d
--- /dev/null
@@ -0,0 +1 @@
+var _0x4005=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x63\x61\x6C\x6C\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x64","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x44\x41\x54\x45","\x72\x65\x6A\x65\x63\x74\x65\x64\x41\x74","\x72\x65\x6A\x65\x63\x74\x65\x64"];_0x4005[0];var Sequelize=require(_0x4005[1]);var moment=require(_0x4005[2]);module[_0x4005[3]]= {uniqueid:{type:Sequelize[_0x4005[4]]},timeslot:{type:Sequelize[_0x4005[5]]},from:{type:Sequelize[_0x4005[4]]},accountid:{type:Sequelize[_0x4005[4]]},accountname:{type:Sequelize[_0x4005[4]]},accountnumber:{type:Sequelize[_0x4005[4]]},application:{type:Sequelize[_0x4005[4]]},memberid:{type:Sequelize[_0x4005[5]]},membername:{type:Sequelize[_0x4005[4]]},queue:{type:Sequelize[_0x4005[5]]},queuename:{type:Sequelize[_0x4005[4]]},roomid:{type:Sequelize[_0x4005[5]]},messageid:{type:Sequelize[_0x4005[5]]},reason:{type:Sequelize[_0x4005[4]],defaultValue:_0x4005[6]},connectid:{type:Sequelize[_0x4005[4]],unique:_0x4005[7],set:function(_0x1890x3){this[_0x4005[8]](_0x4005[7],_0x1890x3);this[_0x4005[8]](_0x4005[9],_0x4005[10]);this[_0x4005[8]](_0x4005[11],moment()[_0x4005[13]](_0x4005[12]))}},calledAt:{type:Sequelize[_0x4005[14]]},rejectedAt:{type:Sequelize[_0x4005[14]],set:function(_0x1890x4){this[_0x4005[8]](_0x4005[15],_0x1890x4);this[_0x4005[8]](_0x4005[9],_0x4005[16])}},connectedAt:{type:Sequelize[_0x4005[14]]}}
\ No newline at end of file
diff --git a/server/api/smsReport/smsReport.controller.js b/server/api/smsReport/smsReport.controller.js
new file mode 100644 (file)
index 0000000..44b1c13
--- /dev/null
@@ -0,0 +1 @@
+var _0x8c28=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x8c28[0];var jsonpatch=require(_0x8c28[1]);var rp=require(_0x8c28[2]);var moment=require(_0x8c28[3]);var BPromise=require(_0x8c28[4]);var util=require(_0x8c28[5]);var path=require(_0x8c28[6]);var sox=require(_0x8c28[7]);var ejs=require(_0x8c28[8]);var fs=require(_0x8c28[9]);var _=require(_0x8c28[10]);var squel=require(_0x8c28[11]);var crypto=require(_0x8c28[12]);var jsforce=require(_0x8c28[13]);var toCsv=require(_0x8c28[14]);var qs=require(_0x8c28[15]);var logger=require(_0x8c28[17])(_0x8c28[16]);var utils=require(_0x8c28[18]);var config=require(_0x8c28[19]);var db=require(_0x8c28[21])[_0x8c28[20]];function respondWithStatusCode(_0xd681x15,_0xd681x16,_0xd681x17){_0xd681x16= _0xd681x16|| 204;return function(_0xd681x18){if(_0xd681x18){logger[_0x8c28[24]](_0x8c28[22],_0xd681x17,_0xd681x16,_0x8c28[23]);logger[_0x8c28[26]](_0x8c28[25],_0xd681x17,_0xd681x16,_0x8c28[23]);return _0xd681x15[_0x8c28[27]](_0xd681x16)};return _0xd681x15[_0x8c28[29]](304)[_0x8c28[28]]()}}function respondWithResult(_0xd681x15,_0xd681x16,_0xd681x17){_0xd681x16= _0xd681x16|| 200;return function(_0xd681x18){if(_0xd681x18){logger[_0x8c28[24]](_0x8c28[22],_0xd681x17,_0xd681x16,_0x8c28[30]);logger[_0x8c28[26]](_0x8c28[25],_0xd681x17,_0xd681x16,_0x8c28[30],JSON[_0x8c28[31]](_0xd681x18));return _0xd681x15[_0x8c28[29]](_0xd681x16)[_0x8c28[32]](_0xd681x18)};return _0xd681x15[_0x8c28[29]](304)[_0x8c28[28]]()}}function respondWithFilteredResult(_0xd681x15,_0xd681x1b,_0xd681x17){return function(_0xd681x18){if(_0xd681x18){var _0xd681x1c=_0xd681x18[_0x8c28[33]],_0xd681x1d=_0xd681x1b[_0x8c28[34]],_0xd681x1e=_0xd681x1b[_0x8c28[34]]+ _0xd681x1b[_0x8c28[35]],_0xd681x16;if(_0xd681x1e>= _0xd681x1c){_0xd681x1e= _0xd681x1c;_0xd681x16= 200}else {_0xd681x16= 206};_0xd681x15[_0x8c28[29]](_0xd681x16);logger[_0x8c28[24]](_0x8c28[22],_0xd681x17,_0xd681x16,_0x8c28[36]);logger[_0x8c28[26]](_0x8c28[25],_0xd681x17,_0xd681x16,_0x8c28[30],JSON[_0x8c28[31]](_0xd681x18));return _0xd681x15[_0x8c28[40]](_0x8c28[37],_0xd681x1d+ _0x8c28[38]+ _0xd681x1e+ _0x8c28[39]+ _0xd681x1c)[_0x8c28[32]](_0xd681x18)};return null}}function patchUpdates(_0xd681x20){return function(_0xd681x18){try{jsonpatch[_0x8c28[41]](_0xd681x18,_0xd681x20,true)}catch(err){return BPromise[_0x8c28[42]](err)};return _0xd681x18[_0x8c28[43]]()}}function saveUpdates(_0xd681x22,_0xd681x16,_0xd681x17){return function(_0xd681x18){if(_0xd681x18){return _0xd681x18[_0x8c28[46]](_0xd681x22)[_0x8c28[45]](function(_0xd681x23){logger[_0x8c28[24]](_0x8c28[22],_0xd681x17,_0xd681x16,_0x8c28[44]);logger[_0x8c28[26]](_0x8c28[25],_0xd681x17,_0xd681x16,_0x8c28[44],JSON[_0x8c28[31]](_0xd681x18));return _0xd681x23})};return null}}function removeEntity(_0xd681x15,_0xd681x16,_0xd681x17){return function(_0xd681x18){if(_0xd681x18){return _0xd681x18[_0x8c28[48]]()[_0x8c28[45]](function(){logger[_0x8c28[24]](_0x8c28[22],_0xd681x17,_0xd681x16,_0x8c28[47]);logger[_0x8c28[26]](_0x8c28[25],_0xd681x17,_0xd681x16,_0x8c28[47],JSON[_0x8c28[31]](_0xd681x18));_0xd681x15[_0x8c28[29]](204)[_0x8c28[28]]()})}}}function handleEntityNotFound(_0xd681x15,_0xd681x16,_0xd681x17){return function(_0xd681x18){if(!_0xd681x18){logger[_0x8c28[50]](_0x8c28[22],_0xd681x17,404,_0x8c28[49]);_0xd681x15[_0x8c28[29]](404)[_0x8c28[28]]();return null};return _0xd681x18}}function handleError(_0xd681x15,_0xd681x16,_0xd681x17){_0xd681x16= _0xd681x16|| 500;return function(_0xd681x27){logger[_0x8c28[50]](_0x8c28[22],_0xd681x17,_0xd681x16,JSON[_0x8c28[31]](_0xd681x27));delete _0xd681x27[_0x8c28[51]];_0xd681x15[_0x8c28[29]](_0xd681x16)[_0x8c28[52]](_0xd681x27)}}exports[_0x8c28[53]]= function(_0xd681x28,_0xd681x15){var _0xd681x1b={},_0xd681x29={};_0xd681x29[_0x8c28[54]]= _[_0x8c28[57]](db[_0x8c28[56]][_0x8c28[55]]);_0xd681x29[_0x8c28[58]]= _[_0x8c28[57]](_0xd681x28[_0x8c28[58]]);_0xd681x29[_0x8c28[59]]= _[_0x8c28[60]](_0xd681x29[_0x8c28[54]],_0xd681x29[_0x8c28[58]]);_0xd681x1b[_0x8c28[61]]= _[_0x8c28[60]](_0xd681x29[_0x8c28[54]],qs[_0x8c28[62]](_0xd681x28[_0x8c28[58]][_0x8c28[62]]));_0xd681x1b[_0x8c28[61]]= (_0xd681x1b[_0x8c28[61]][_0x8c28[63]])?_0xd681x1b[_0x8c28[61]]:_0xd681x29[_0x8c28[54]];if(!_0xd681x28[_0x8c28[58]][_0x8c28[65]](_0x8c28[64])){_0xd681x1b[_0x8c28[35]]= qs[_0x8c28[35]](_0xd681x28[_0x8c28[58]][_0x8c28[35]]);_0xd681x1b[_0x8c28[34]]= qs[_0x8c28[34]](_0xd681x28[_0x8c28[58]][_0x8c28[34]])};_0xd681x1b[_0x8c28[66]]= qs[_0x8c28[67]](_0xd681x28[_0x8c28[58]][_0x8c28[67]]);_0xd681x1b[_0x8c28[68]]= qs[_0x8c28[59]](_[_0x8c28[69]](_0xd681x28[_0x8c28[58]],_0xd681x29[_0x8c28[59]]));if(_0xd681x28[_0x8c28[58]][_0x8c28[70]]){_0xd681x1b[_0x8c28[68]]= _[_0x8c28[73]](_0xd681x1b[_0x8c28[68]],{$or:_[_0x8c28[72]](_0xd681x1b[_0x8c28[61]],function(_0xd681x2a){var _0xd681x2b={};_0xd681x2b[_0xd681x2a]= {$like:_0x8c28[71]+ _0xd681x28[_0x8c28[58]][_0x8c28[70]]+ _0x8c28[71]};return _0xd681x2b})})};_0xd681x1b= _[_0x8c28[73]]({},_0xd681x1b,_0xd681x28[_0x8c28[74]]);return db[_0x8c28[56]][_0x8c28[76]](_0xd681x1b)[_0x8c28[45]](respondWithFilteredResult(_0xd681x15,_0xd681x1b,_0x8c28[53]))[_0x8c28[75]](handleError(_0xd681x15,null,_0x8c28[53]))};exports[_0x8c28[77]]= function(_0xd681x28,_0xd681x15){var _0xd681x1b={raw:true,where:{id:_0xd681x28[_0x8c28[79]][_0x8c28[78]]}},_0xd681x29={};_0xd681x29[_0x8c28[54]]= _[_0x8c28[57]](db[_0x8c28[56]][_0x8c28[55]]);_0xd681x29[_0x8c28[58]]= _[_0x8c28[57]](_0xd681x28[_0x8c28[58]]);_0xd681x29[_0x8c28[59]]= _[_0x8c28[60]](_0xd681x29[_0x8c28[54]],_0xd681x29[_0x8c28[58]]);_0xd681x1b[_0x8c28[61]]= _[_0x8c28[60]](_0xd681x29[_0x8c28[54]],qs[_0x8c28[62]](_0xd681x28[_0x8c28[58]][_0x8c28[62]]));_0xd681x1b[_0x8c28[61]]= (_0xd681x1b[_0x8c28[61]][_0x8c28[63]])?_0xd681x1b[_0x8c28[61]]:_0xd681x29[_0x8c28[54]];_0xd681x1b= _[_0x8c28[73]]({},_0xd681x1b,_0xd681x28[_0x8c28[74]]);return db[_0x8c28[56]][_0x8c28[80]](_0xd681x1b)[_0x8c28[45]](handleEntityNotFound(_0xd681x15,null,_0x8c28[77]))[_0x8c28[45]](respondWithResult(_0xd681x15,null,_0x8c28[77]))[_0x8c28[75]](handleError(_0xd681x15,null,_0x8c28[77]))};exports[_0x8c28[81]]= function(_0xd681x28,_0xd681x15){return db[_0x8c28[56]][_0x8c28[81]](_0xd681x28[_0x8c28[82]],{})[_0x8c28[45]](respondWithResult(_0xd681x15,201,_0x8c28[81]))[_0x8c28[75]](handleError(_0xd681x15,null,_0x8c28[81]))};exports[_0x8c28[46]]= function(_0xd681x28,_0xd681x15){if(_0xd681x28[_0x8c28[82]][_0x8c28[78]]){delete _0xd681x28[_0x8c28[82]][_0x8c28[78]]};return db[_0x8c28[56]][_0x8c28[80]]({where:{id:_0xd681x28[_0x8c28[79]][_0x8c28[78]]}})[_0x8c28[45]](handleEntityNotFound(_0xd681x15,null,_0x8c28[46]))[_0x8c28[45]](saveUpdates(_0xd681x28[_0x8c28[82]],null,_0x8c28[46]))[_0x8c28[45]](respondWithResult(_0xd681x15,null,_0x8c28[46]))[_0x8c28[75]](handleError(_0xd681x15,null,_0x8c28[46]))};exports[_0x8c28[48]]= function(_0xd681x28,_0xd681x15){return db[_0x8c28[56]][_0x8c28[80]]({where:{id:_0xd681x28[_0x8c28[79]][_0x8c28[78]]}})[_0x8c28[45]](handleEntityNotFound(_0xd681x15,null,_0x8c28[48]))[_0x8c28[45]](removeEntity(_0xd681x15,null,_0x8c28[48]))[_0x8c28[75]](handleError(_0xd681x15,null,_0x8c28[48]))}
\ No newline at end of file
diff --git a/server/api/smsReport/smsReport.model.js b/server/api/smsReport/smsReport.model.js
new file mode 100644 (file)
index 0000000..eff7677
--- /dev/null
@@ -0,0 +1 @@
+var _0x72d8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x73\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0x72d8[0];var _=require(_0x72d8[1]);var util=require(_0x72d8[2]);var logger=require(_0x72d8[4])(_0x72d8[3]);var attributes=require(_0x72d8[5]);module[_0x72d8[6]]= function(_0xcf89x5,_0xcf89x6){return _0xcf89x5[_0x72d8[9]](_0x72d8[7],attributes,{tableName:_0x72d8[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/smsReport/smsReport.rpc.js b/server/api/smsReport/smsReport.rpc.js
new file mode 100644 (file)
index 0000000..8a4ab06
--- /dev/null
@@ -0,0 +1 @@
+var _0xa6c0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xa6c0[0];var _=require(_0xa6c0[1]);var util=require(_0xa6c0[2]);var moment=require(_0xa6c0[3]);var BPromise=require(_0xa6c0[4]);var db=require(_0xa6c0[6])[_0xa6c0[5]];var utils=require(_0xa6c0[7]);var logger=require(_0xa6c0[9])(_0xa6c0[8]);var jayson=require(_0xa6c0[10]);var client=jayson[_0xa6c0[12]][_0xa6c0[11]]({port:9002});function respondWithRpcPromise(_0xc9c4xb,_0xc9c4xc,_0xc9c4xd){return  new BPromise(function(_0xc9c4xe,_0xc9c4xf){return client[_0xa6c0[25]](_0xc9c4xb,_0xc9c4xd)[_0xa6c0[24]](function(_0xc9c4x11){logger[_0xa6c0[17]](_0xa6c0[13],_0xc9c4xc,_0xa6c0[16]);logger[_0xa6c0[20]](_0xa6c0[18],_0xc9c4xc,_0xa6c0[16],JSON[_0xa6c0[19]](_0xc9c4x11));if(_0xc9c4x11[_0xa6c0[14]]){if(_0xc9c4x11[_0xa6c0[14]][_0xa6c0[21]]=== 500){logger[_0xa6c0[14]](_0xa6c0[13],_0xc9c4xc,_0xc9c4x11[_0xa6c0[14]][_0xa6c0[22]]);return _0xc9c4xf(_0xc9c4x11[_0xa6c0[14]][_0xa6c0[22]])};logger[_0xa6c0[14]](_0xa6c0[13],_0xc9c4xc,_0xc9c4x11[_0xa6c0[14]][_0xa6c0[22]]);return _0xc9c4xe(_0xc9c4x11[_0xa6c0[14]][_0xa6c0[22]])}else {logger[_0xa6c0[17]](_0xa6c0[13],_0xc9c4xc,_0xa6c0[16]);_0xc9c4xe(_0xc9c4x11[_0xa6c0[23]][_0xa6c0[22]])}})[_0xa6c0[15]](function(_0xc9c4x10){logger[_0xa6c0[14]](_0xa6c0[13],_0xc9c4xc,_0xc9c4x10);_0xc9c4xf(_0xc9c4x10)})})}
\ No newline at end of file
diff --git a/server/api/smsSessionReport/index.js b/server/api/smsSessionReport/index.js
new file mode 100644 (file)
index 0000000..d5ca517
--- /dev/null
@@ -0,0 +1 @@
+var _0xc7f7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xc7f7[0];var multer=require(_0xc7f7[1]);var util=require(_0xc7f7[2]);var path=require(_0xc7f7[3]);var express=require(_0xc7f7[4]);var router=express.Router();var auth=require(_0xc7f7[5]);var config=require(_0xc7f7[6]);var controller=require(_0xc7f7[7]);router[_0xc7f7[11]](_0xc7f7[8],auth[_0xc7f7[9]](),controller[_0xc7f7[10]]);router[_0xc7f7[11]](_0xc7f7[12],auth[_0xc7f7[9]](),controller[_0xc7f7[13]]);router[_0xc7f7[11]](_0xc7f7[14],auth[_0xc7f7[9]](),controller[_0xc7f7[15]]);router[_0xc7f7[17]](_0xc7f7[8],auth[_0xc7f7[9]](),controller[_0xc7f7[16]]);router[_0xc7f7[19]](_0xc7f7[14],auth[_0xc7f7[9]](),controller[_0xc7f7[18]]);router[_0xc7f7[21]](_0xc7f7[14],auth[_0xc7f7[9]](),controller[_0xc7f7[20]]);module[_0xc7f7[22]]= router
\ No newline at end of file
diff --git a/server/api/smsSessionReport/smsSessionReport.attributes.js b/server/api/smsSessionReport/smsSessionReport.attributes.js
new file mode 100644 (file)
index 0000000..be5f7ea
--- /dev/null
@@ -0,0 +1 @@
+var _0x57bf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x42\x4F\x4F\x4C\x45\x41\x4E","\x61\x67\x65\x6E\x74"];_0x57bf[0];var Sequelize=require(_0x57bf[1]);module[_0x57bf[2]]= {uniqueid:{type:Sequelize[_0x57bf[3]]},subject:{type:Sequelize[_0x57bf[3]]},accountid:{type:Sequelize[_0x57bf[3]]},accountname:{type:Sequelize[_0x57bf[3]]},accountaddress:{type:Sequelize[_0x57bf[3]]},application:{type:Sequelize[_0x57bf[3]]},memberid:{type:Sequelize[_0x57bf[3]]},membername:{type:Sequelize[_0x57bf[3]]},queue:{type:Sequelize[_0x57bf[4]]},queuename:{type:Sequelize[_0x57bf[3]]},roomid:{type:Sequelize[_0x57bf[4]]},fidelity:{type:Sequelize[_0x57bf[4]],defaultValue:0},joinAt:{type:Sequelize[_0x57bf[5]]},leaveAt:{type:Sequelize[_0x57bf[5]]},completeAt:{type:Sequelize[_0x57bf[5]]},complete:{type:Sequelize[_0x57bf[6]],defaulValue:false},completeReason:{type:Sequelize.ENUM(_0x57bf[7])},timeout:{type:Sequelize[_0x57bf[6]],defaultValue:false},timeslot:{type:Sequelize[_0x57bf[4]]}}
\ No newline at end of file
diff --git a/server/api/smsSessionReport/smsSessionReport.controller.js b/server/api/smsSessionReport/smsSessionReport.controller.js
new file mode 100644 (file)
index 0000000..f5ff588
--- /dev/null
@@ -0,0 +1 @@
+var _0x5657=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x5657[0];var jsonpatch=require(_0x5657[1]);var rp=require(_0x5657[2]);var moment=require(_0x5657[3]);var BPromise=require(_0x5657[4]);var util=require(_0x5657[5]);var path=require(_0x5657[6]);var sox=require(_0x5657[7]);var ejs=require(_0x5657[8]);var fs=require(_0x5657[9]);var _=require(_0x5657[10]);var squel=require(_0x5657[11]);var crypto=require(_0x5657[12]);var jsforce=require(_0x5657[13]);var toCsv=require(_0x5657[14]);var qs=require(_0x5657[15]);var logger=require(_0x5657[17])(_0x5657[16]);var utils=require(_0x5657[18]);var config=require(_0x5657[19]);var db=require(_0x5657[21])[_0x5657[20]];function respondWithStatusCode(_0x1c91x15,_0x1c91x16,_0x1c91x17){_0x1c91x16= _0x1c91x16|| 204;return function(_0x1c91x18){if(_0x1c91x18){logger[_0x5657[24]](_0x5657[22],_0x1c91x17,_0x1c91x16,_0x5657[23]);logger[_0x5657[26]](_0x5657[25],_0x1c91x17,_0x1c91x16,_0x5657[23]);return _0x1c91x15[_0x5657[27]](_0x1c91x16)};return _0x1c91x15[_0x5657[29]](304)[_0x5657[28]]()}}function respondWithResult(_0x1c91x15,_0x1c91x16,_0x1c91x17){_0x1c91x16= _0x1c91x16|| 200;return function(_0x1c91x18){if(_0x1c91x18){logger[_0x5657[24]](_0x5657[22],_0x1c91x17,_0x1c91x16,_0x5657[30]);logger[_0x5657[26]](_0x5657[25],_0x1c91x17,_0x1c91x16,_0x5657[30],JSON[_0x5657[31]](_0x1c91x18));return _0x1c91x15[_0x5657[29]](_0x1c91x16)[_0x5657[32]](_0x1c91x18)};return _0x1c91x15[_0x5657[29]](304)[_0x5657[28]]()}}function respondWithFilteredResult(_0x1c91x15,_0x1c91x1b,_0x1c91x17){return function(_0x1c91x18){if(_0x1c91x18){var _0x1c91x1c=_0x1c91x18[_0x5657[33]],_0x1c91x1d=_0x1c91x1b[_0x5657[34]],_0x1c91x1e=_0x1c91x1b[_0x5657[34]]+ _0x1c91x1b[_0x5657[35]],_0x1c91x16;if(_0x1c91x1e>= _0x1c91x1c){_0x1c91x1e= _0x1c91x1c;_0x1c91x16= 200}else {_0x1c91x16= 206};_0x1c91x15[_0x5657[29]](_0x1c91x16);logger[_0x5657[24]](_0x5657[22],_0x1c91x17,_0x1c91x16,_0x5657[36]);logger[_0x5657[26]](_0x5657[25],_0x1c91x17,_0x1c91x16,_0x5657[30],JSON[_0x5657[31]](_0x1c91x18));return _0x1c91x15[_0x5657[40]](_0x5657[37],_0x1c91x1d+ _0x5657[38]+ _0x1c91x1e+ _0x5657[39]+ _0x1c91x1c)[_0x5657[32]](_0x1c91x18)};return null}}function patchUpdates(_0x1c91x20){return function(_0x1c91x18){try{jsonpatch[_0x5657[41]](_0x1c91x18,_0x1c91x20,true)}catch(err){return BPromise[_0x5657[42]](err)};return _0x1c91x18[_0x5657[43]]()}}function saveUpdates(_0x1c91x22,_0x1c91x16,_0x1c91x17){return function(_0x1c91x18){if(_0x1c91x18){return _0x1c91x18[_0x5657[46]](_0x1c91x22)[_0x5657[45]](function(_0x1c91x23){logger[_0x5657[24]](_0x5657[22],_0x1c91x17,_0x1c91x16,_0x5657[44]);logger[_0x5657[26]](_0x5657[25],_0x1c91x17,_0x1c91x16,_0x5657[44],JSON[_0x5657[31]](_0x1c91x18));return _0x1c91x23})};return null}}function removeEntity(_0x1c91x15,_0x1c91x16,_0x1c91x17){return function(_0x1c91x18){if(_0x1c91x18){return _0x1c91x18[_0x5657[48]]()[_0x5657[45]](function(){logger[_0x5657[24]](_0x5657[22],_0x1c91x17,_0x1c91x16,_0x5657[47]);logger[_0x5657[26]](_0x5657[25],_0x1c91x17,_0x1c91x16,_0x5657[47],JSON[_0x5657[31]](_0x1c91x18));_0x1c91x15[_0x5657[29]](204)[_0x5657[28]]()})}}}function handleEntityNotFound(_0x1c91x15,_0x1c91x16,_0x1c91x17){return function(_0x1c91x18){if(!_0x1c91x18){logger[_0x5657[50]](_0x5657[22],_0x1c91x17,404,_0x5657[49]);_0x1c91x15[_0x5657[29]](404)[_0x5657[28]]();return null};return _0x1c91x18}}function handleError(_0x1c91x15,_0x1c91x16,_0x1c91x17){_0x1c91x16= _0x1c91x16|| 500;return function(_0x1c91x27){logger[_0x5657[50]](_0x5657[22],_0x1c91x17,_0x1c91x16,JSON[_0x5657[31]](_0x1c91x27));delete _0x1c91x27[_0x5657[51]];_0x1c91x15[_0x5657[29]](_0x1c91x16)[_0x5657[52]](_0x1c91x27)}}exports[_0x5657[53]]= function(_0x1c91x28,_0x1c91x15){var _0x1c91x1b={raw:true},_0x1c91x29={};_0x1c91x29[_0x5657[54]]= _[_0x5657[57]](db[_0x5657[56]][_0x5657[55]]);_0x1c91x29[_0x5657[58]]= _[_0x5657[57]](_0x1c91x28[_0x5657[58]]);_0x1c91x29[_0x5657[59]]= _[_0x5657[60]](_0x1c91x29[_0x5657[54]],_0x1c91x29[_0x5657[58]]);_0x1c91x1b[_0x5657[61]]= _[_0x5657[60]](_0x1c91x29[_0x5657[54]],qs[_0x5657[62]](_0x1c91x28[_0x5657[58]][_0x5657[62]]));_0x1c91x1b[_0x5657[61]]= (_0x1c91x1b[_0x5657[61]][_0x5657[63]])?_0x1c91x1b[_0x5657[61]]:_0x1c91x29[_0x5657[54]];if(!_0x1c91x28[_0x5657[58]][_0x5657[65]](_0x5657[64])){_0x1c91x1b[_0x5657[35]]= qs[_0x5657[35]](_0x1c91x28[_0x5657[58]][_0x5657[35]]);_0x1c91x1b[_0x5657[34]]= qs[_0x5657[34]](_0x1c91x28[_0x5657[58]][_0x5657[34]])};_0x1c91x1b[_0x5657[66]]= qs[_0x5657[67]](_0x1c91x28[_0x5657[58]][_0x5657[67]]);_0x1c91x1b[_0x5657[68]]= qs[_0x5657[59]](_[_0x5657[69]](_0x1c91x28[_0x5657[58]],_0x1c91x29[_0x5657[59]]));if(_0x1c91x28[_0x5657[58]][_0x5657[70]]){_0x1c91x1b[_0x5657[68]]= _[_0x5657[73]](_0x1c91x1b[_0x5657[68]],{$or:_[_0x5657[72]](_0x1c91x1b[_0x5657[61]],function(_0x1c91x2a){var _0x1c91x2b={};_0x1c91x2b[_0x1c91x2a]= {$like:_0x5657[71]+ _0x1c91x28[_0x5657[58]][_0x5657[70]]+ _0x5657[71]};return _0x1c91x2b})})};_0x1c91x1b= _[_0x5657[73]]({},_0x1c91x1b,_0x1c91x28[_0x5657[74]]);return db[_0x5657[56]][_0x5657[76]](_0x1c91x1b)[_0x5657[45]](respondWithFilteredResult(_0x1c91x15,_0x1c91x1b,_0x5657[53]))[_0x5657[75]](handleError(_0x1c91x15,null,_0x5657[53]))};exports[_0x5657[77]]= function(_0x1c91x28,_0x1c91x15){var _0x1c91x1b={raw:true,where:{id:_0x1c91x28[_0x5657[79]][_0x5657[78]]}},_0x1c91x29={};_0x1c91x29[_0x5657[54]]= _[_0x5657[57]](db[_0x5657[56]][_0x5657[55]]);_0x1c91x29[_0x5657[58]]= _[_0x5657[57]](_0x1c91x28[_0x5657[58]]);_0x1c91x29[_0x5657[59]]= _[_0x5657[60]](_0x1c91x29[_0x5657[54]],_0x1c91x29[_0x5657[58]]);_0x1c91x1b[_0x5657[61]]= _[_0x5657[60]](_0x1c91x29[_0x5657[54]],qs[_0x5657[62]](_0x1c91x28[_0x5657[58]][_0x5657[62]]));_0x1c91x1b[_0x5657[61]]= (_0x1c91x1b[_0x5657[61]][_0x5657[63]])?_0x1c91x1b[_0x5657[61]]:_0x1c91x29[_0x5657[54]];_0x1c91x1b= _[_0x5657[73]]({},_0x1c91x1b,_0x1c91x28[_0x5657[74]]);return db[_0x5657[56]][_0x5657[80]](_0x1c91x1b)[_0x5657[45]](handleEntityNotFound(_0x1c91x15,null,_0x5657[77]))[_0x5657[45]](respondWithResult(_0x1c91x15,null,_0x5657[77]))[_0x5657[75]](handleError(_0x1c91x15,null,_0x5657[77]))};exports[_0x5657[81]]= function(_0x1c91x28,_0x1c91x15){return db[_0x5657[56]][_0x5657[81]](_0x1c91x28[_0x5657[82]],{})[_0x5657[45]](respondWithResult(_0x1c91x15,201,_0x5657[81]))[_0x5657[75]](handleError(_0x1c91x15,null,_0x5657[81]))};exports[_0x5657[46]]= function(_0x1c91x28,_0x1c91x15){if(_0x1c91x28[_0x5657[82]][_0x5657[78]]){delete _0x1c91x28[_0x5657[82]][_0x5657[78]]};return db[_0x5657[56]][_0x5657[80]]({where:{id:_0x1c91x28[_0x5657[79]][_0x5657[78]]}})[_0x5657[45]](handleEntityNotFound(_0x1c91x15,null,_0x5657[46]))[_0x5657[45]](saveUpdates(_0x1c91x28[_0x5657[82]],null,_0x5657[46]))[_0x5657[45]](respondWithResult(_0x1c91x15,null,_0x5657[46]))[_0x5657[75]](handleError(_0x1c91x15,null,_0x5657[46]))};exports[_0x5657[48]]= function(_0x1c91x28,_0x1c91x15){return db[_0x5657[56]][_0x5657[80]]({where:{id:_0x1c91x28[_0x5657[79]][_0x5657[78]]}})[_0x5657[45]](handleEntityNotFound(_0x1c91x15,null,_0x5657[48]))[_0x5657[45]](removeEntity(_0x1c91x15,null,_0x5657[48]))[_0x5657[75]](handleError(_0x1c91x15,null,_0x5657[48]))};exports[_0x5657[83]]= function(_0x1c91x28,_0x1c91x15){return db[_0x5657[56]][_0x5657[83]]()[_0x5657[45]](respondWithResult(_0x1c91x15,null,_0x5657[83]))[_0x5657[75]](handleError(_0x1c91x15,null,_0x5657[83]))}
\ No newline at end of file
diff --git a/server/api/smsSessionReport/smsSessionReport.model.js b/server/api/smsSessionReport/smsSessionReport.model.js
new file mode 100644 (file)
index 0000000..4cbee26
--- /dev/null
@@ -0,0 +1 @@
+var _0xe6b7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x73\x6D\x73\x5F\x73\x65\x73\x73\x69\x6F\x6E","\x64\x65\x66\x69\x6E\x65"];_0xe6b7[0];var _=require(_0xe6b7[1]);var util=require(_0xe6b7[2]);var logger=require(_0xe6b7[4])(_0xe6b7[3]);var attributes=require(_0xe6b7[5]);module[_0xe6b7[6]]= function(_0xdc89x5,_0xdc89x6){return _0xdc89x5[_0xe6b7[9]](_0xe6b7[7],attributes,{tableName:_0xe6b7[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/smsSessionReport/smsSessionReport.rpc.js b/server/api/smsSessionReport/smsSessionReport.rpc.js
new file mode 100644 (file)
index 0000000..24c3772
--- /dev/null
@@ -0,0 +1 @@
+var _0xa249=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xa249[0];var _=require(_0xa249[1]);var util=require(_0xa249[2]);var moment=require(_0xa249[3]);var BPromise=require(_0xa249[4]);var db=require(_0xa249[6])[_0xa249[5]];var utils=require(_0xa249[7]);var logger=require(_0xa249[9])(_0xa249[8]);var jayson=require(_0xa249[10]);var client=jayson[_0xa249[12]][_0xa249[11]]({port:9002});function respondWithRpcPromise(_0xc62cxb,_0xc62cxc,_0xc62cxd){return  new BPromise(function(_0xc62cxe,_0xc62cxf){return client[_0xa249[25]](_0xc62cxb,_0xc62cxd)[_0xa249[24]](function(_0xc62cx11){logger[_0xa249[17]](_0xa249[13],_0xc62cxc,_0xa249[16]);logger[_0xa249[20]](_0xa249[18],_0xc62cxc,_0xa249[16],JSON[_0xa249[19]](_0xc62cx11));if(_0xc62cx11[_0xa249[14]]){if(_0xc62cx11[_0xa249[14]][_0xa249[21]]=== 500){logger[_0xa249[14]](_0xa249[13],_0xc62cxc,_0xc62cx11[_0xa249[14]][_0xa249[22]]);return _0xc62cxf(_0xc62cx11[_0xa249[14]][_0xa249[22]])};logger[_0xa249[14]](_0xa249[13],_0xc62cxc,_0xc62cx11[_0xa249[14]][_0xa249[22]]);return _0xc62cxe(_0xc62cx11[_0xa249[14]][_0xa249[22]])}else {logger[_0xa249[17]](_0xa249[13],_0xc62cxc,_0xa249[16]);_0xc62cxe(_0xc62cx11[_0xa249[23]][_0xa249[22]])}})[_0xa249[15]](function(_0xc62cx10){logger[_0xa249[14]](_0xa249[13],_0xc62cxc,_0xc62cx10);_0xc62cxf(_0xc62cx10)})})}
\ No newline at end of file
diff --git a/server/api/sound/index.js b/server/api/sound/index.js
new file mode 100644 (file)
index 0000000..6c8488b
--- /dev/null
@@ -0,0 +1 @@
+var _0x7526=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x6F\x75\x6E\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x6F\x72\x69\x67\x69\x6E\x61\x6C\x2F","\x6A\x6F\x69\x6E","\x25\x73\x2D\x25\x73\x25\x73","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x6E\x6F\x77","\x66\x6F\x72\x6D\x61\x74","\x64\x69\x73\x6B\x53\x74\x6F\x72\x61\x67\x65","\x66\x69\x6C\x65","\x73\x69\x6E\x67\x6C\x65","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x7526[0];var multer=require(_0x7526[1]);var util=require(_0x7526[2]);var path=require(_0x7526[3]);var express=require(_0x7526[4]);var router=express.Router();var auth=require(_0x7526[5]);var config=require(_0x7526[6]);var controller=require(_0x7526[7]);router[_0x7526[11]](_0x7526[8],auth[_0x7526[9]](),controller[_0x7526[10]]);router[_0x7526[11]](_0x7526[12],auth[_0x7526[9]](),controller[_0x7526[13]]);router[_0x7526[11]](_0x7526[14],controller[_0x7526[15]]);var upload=multer({storage:multer[_0x7526[25]]({destination:function(_0xf8fexa,_0xf8fexb,_0xf8fexc){_0xf8fexc(null,path[_0x7526[18]](config[_0x7526[16]],_0x7526[17]))},filename:function(_0xf8fexa,_0xf8fexb,_0xf8fexc){_0xf8fexc(null,util[_0x7526[24]](_0x7526[19],path[_0x7526[22]](_0xf8fexb[_0x7526[20]],path[_0x7526[21]](_0xf8fexb[_0x7526[20]])),Date[_0x7526[23]](),path[_0x7526[21]](_0xf8fexb[_0x7526[20]])))}})});router[_0x7526[29]](_0x7526[8],upload[_0x7526[27]](_0x7526[26]),controller[_0x7526[28]]);router[_0x7526[31]](_0x7526[12],auth[_0x7526[9]](),controller[_0x7526[30]]);router[_0x7526[32]](_0x7526[12],auth[_0x7526[9]](),controller[_0x7526[32]]);module[_0x7526[33]]= router
\ No newline at end of file
diff --git a/server/api/sound/sound.attributes.js b/server/api/sound/sound.attributes.js
new file mode 100644 (file)
index 0000000..6805e01
--- /dev/null
@@ -0,0 +1 @@
+var _0xd047=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","","\x46\x4C\x4F\x41\x54","\x42\x49\x47\x49\x4E\x54","\x49\x4E\x54\x45\x47\x45\x52"];_0xd047[0];var Sequelize=require(_0xd047[1]);module[_0xd047[2]]= {name:{type:Sequelize[_0xd047[3]]},save_name:{type:Sequelize[_0xd047[3]]},display_name:{type:Sequelize[_0xd047[3]],defaultValue:_0xd047[4]},description:{type:Sequelize[_0xd047[3]]},original_format:{type:Sequelize[_0xd047[3]]},original_duration:{type:Sequelize[_0xd047[5]]},original_sampleCount:{type:Sequelize[_0xd047[6]]},original_channelCount:{type:Sequelize[_0xd047[7]]},original_bitRate:{type:Sequelize[_0xd047[6]]},original_sampleRate:{type:Sequelize[_0xd047[7]]},converted_format:{type:Sequelize[_0xd047[3]]},converted_duration:{type:Sequelize[_0xd047[5]]},converted_sampleCount:{type:Sequelize[_0xd047[6]]},converted_channelCount:{type:Sequelize[_0xd047[7]]},converted_bitRate:{type:Sequelize[_0xd047[6]]},converted_sampleRate:{type:Sequelize[_0xd047[7]]}}
\ No newline at end of file
diff --git a/server/api/sound/sound.controller.js b/server/api/sound/sound.controller.js
new file mode 100644 (file)
index 0000000..85ecdfb
--- /dev/null
@@ -0,0 +1 @@
+var _0xce09=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x6F\x75\x6E\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x2E","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x66\x6F\x72\x6D\x61\x74","\x6A\x6F\x69\x6E","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x53\x6F\x75\x6E\x64\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x25\x73\x2E\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x6E\x61\x6D\x65","\x66\x69\x6C\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x77\x61\x76","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x6F\x72\x69\x67\x69\x6E\x61\x6C","\x53\x6F\x75\x6E\x64\x20\x75\x70\x6C\x6F\x61\x64\x20\x66\x69\x6C\x65\x70\x61\x74\x68\x3A\x20\x25\x73","\x53\x6F\x75\x6E\x64\x20\x75\x70\x6C\x6F\x61\x64\x20\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x3A\x20\x25\x73","\x30\x37\x37\x37","\x63\x68\x6D\x6F\x64\x53\x79\x6E\x63","\x74\x72\x61\x6E\x73\x63\x6F\x64\x65","\x6F\x6E","\x73\x72\x63","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x64\x75\x72\x61\x74\x69\x6F\x6E","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x62\x69\x74\x52\x61\x74\x65","\x62\x69\x74\x52\x61\x74\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x64\x65\x73\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x64\x75\x72\x61\x74\x69\x6F\x6E","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x73\x61\x6D\x70\x6C\x65\x43\x6F\x75\x6E\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x43\x6F\x75\x6E\x74","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x62\x69\x74\x52\x61\x74\x65","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x73\x61\x6D\x70\x6C\x65\x52\x61\x74\x65","\x63\x72\x61\x74\x65","\x73\x74\x61\x72\x74","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x6C\x65\x74\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x5F\x66\x6F\x72\x6D\x61\x74","\x75\x6E\x6C\x69\x6E\x6B\x53\x79\x6E\x63"];_0xce09[0];var jsonpatch=require(_0xce09[1]);var rp=require(_0xce09[2]);var moment=require(_0xce09[3]);var BPromise=require(_0xce09[4]);var util=require(_0xce09[5]);var path=require(_0xce09[6]);var sox=require(_0xce09[7]);var ejs=require(_0xce09[8]);var fs=require(_0xce09[9]);var _=require(_0xce09[10]);var squel=require(_0xce09[11]);var crypto=require(_0xce09[12]);var jsforce=require(_0xce09[13]);var toCsv=require(_0xce09[14]);var qs=require(_0xce09[15]);var logger=require(_0xce09[17])(_0xce09[16]);var utils=require(_0xce09[18]);var config=require(_0xce09[19]);var db=require(_0xce09[21])[_0xce09[20]];function respondWithStatusCode(_0x20c1x15,_0x20c1x16,_0x20c1x17){_0x20c1x16= _0x20c1x16|| 204;return function(_0x20c1x18){if(_0x20c1x18){logger[_0xce09[24]](_0xce09[22],_0x20c1x17,_0x20c1x16,_0xce09[23]);logger[_0xce09[26]](_0xce09[25],_0x20c1x17,_0x20c1x16,_0xce09[23]);return _0x20c1x15[_0xce09[27]](_0x20c1x16)};return _0x20c1x15[_0xce09[29]](304)[_0xce09[28]]()}}function respondWithResult(_0x20c1x15,_0x20c1x16,_0x20c1x17){_0x20c1x16= _0x20c1x16|| 200;return function(_0x20c1x18){if(_0x20c1x18){logger[_0xce09[24]](_0xce09[22],_0x20c1x17,_0x20c1x16,_0xce09[30]);logger[_0xce09[26]](_0xce09[25],_0x20c1x17,_0x20c1x16,_0xce09[30],JSON[_0xce09[31]](_0x20c1x18));return _0x20c1x15[_0xce09[29]](_0x20c1x16)[_0xce09[32]](_0x20c1x18)};return _0x20c1x15[_0xce09[29]](304)[_0xce09[28]]()}}function respondWithFilteredResult(_0x20c1x15,_0x20c1x1b,_0x20c1x17){return function(_0x20c1x18){if(_0x20c1x18){var _0x20c1x1c=_0x20c1x18[_0xce09[33]],_0x20c1x1d=_0x20c1x1b[_0xce09[34]],_0x20c1x1e=_0x20c1x1b[_0xce09[34]]+ _0x20c1x1b[_0xce09[35]],_0x20c1x16;if(_0x20c1x1e>= _0x20c1x1c){_0x20c1x1e= _0x20c1x1c;_0x20c1x16= 200}else {_0x20c1x16= 206};_0x20c1x15[_0xce09[29]](_0x20c1x16);logger[_0xce09[24]](_0xce09[22],_0x20c1x17,_0x20c1x16,_0xce09[36]);logger[_0xce09[26]](_0xce09[25],_0x20c1x17,_0x20c1x16,_0xce09[30],JSON[_0xce09[31]](_0x20c1x18));return _0x20c1x15[_0xce09[40]](_0xce09[37],_0x20c1x1d+ _0xce09[38]+ _0x20c1x1e+ _0xce09[39]+ _0x20c1x1c)[_0xce09[32]](_0x20c1x18)};return null}}function patchUpdates(_0x20c1x20){return function(_0x20c1x18){try{jsonpatch[_0xce09[41]](_0x20c1x18,_0x20c1x20,true)}catch(err){return BPromise[_0xce09[42]](err)};return _0x20c1x18[_0xce09[43]]()}}function saveUpdates(_0x20c1x22,_0x20c1x16,_0x20c1x17){return function(_0x20c1x18){if(_0x20c1x18){return _0x20c1x18[_0xce09[46]](_0x20c1x22)[_0xce09[45]](function(_0x20c1x23){logger[_0xce09[24]](_0xce09[22],_0x20c1x17,_0x20c1x16,_0xce09[44]);logger[_0xce09[26]](_0xce09[25],_0x20c1x17,_0x20c1x16,_0xce09[44],JSON[_0xce09[31]](_0x20c1x18));return _0x20c1x23})};return null}}function removeEntity(_0x20c1x15,_0x20c1x16,_0x20c1x17){return function(_0x20c1x18){if(_0x20c1x18){return _0x20c1x18[_0xce09[48]]()[_0xce09[45]](function(){logger[_0xce09[24]](_0xce09[22],_0x20c1x17,_0x20c1x16,_0xce09[47]);logger[_0xce09[26]](_0xce09[25],_0x20c1x17,_0x20c1x16,_0xce09[47],JSON[_0xce09[31]](_0x20c1x18));_0x20c1x15[_0xce09[29]](204)[_0xce09[28]]()})}}}function handleEntityNotFound(_0x20c1x15,_0x20c1x16,_0x20c1x17){return function(_0x20c1x18){if(!_0x20c1x18){logger[_0xce09[50]](_0xce09[22],_0x20c1x17,404,_0xce09[49]);_0x20c1x15[_0xce09[29]](404)[_0xce09[28]]();return null};return _0x20c1x18}}function handleError(_0x20c1x15,_0x20c1x16,_0x20c1x17){_0x20c1x16= _0x20c1x16|| 500;return function(_0x20c1x27){logger[_0xce09[50]](_0xce09[22],_0x20c1x17,_0x20c1x16,JSON[_0xce09[31]](_0x20c1x27));delete _0x20c1x27[_0xce09[51]];_0x20c1x15[_0xce09[29]](_0x20c1x16)[_0xce09[52]](_0x20c1x27)}}exports[_0xce09[53]]= function(_0x20c1x28,_0x20c1x15){var _0x20c1x1b={},_0x20c1x29={};_0x20c1x29[_0xce09[54]]= _[_0xce09[57]](db[_0xce09[56]][_0xce09[55]]);_0x20c1x29[_0xce09[58]]= _[_0xce09[57]](_0x20c1x28[_0xce09[58]]);_0x20c1x29[_0xce09[59]]= _[_0xce09[60]](_0x20c1x29[_0xce09[54]],_0x20c1x29[_0xce09[58]]);_0x20c1x1b[_0xce09[61]]= _[_0xce09[60]](_0x20c1x29[_0xce09[54]],qs[_0xce09[62]](_0x20c1x28[_0xce09[58]][_0xce09[62]]));_0x20c1x1b[_0xce09[61]]= (_0x20c1x1b[_0xce09[61]][_0xce09[63]])?_0x20c1x1b[_0xce09[61]]:_0x20c1x29[_0xce09[54]];if(!_0x20c1x28[_0xce09[58]][_0xce09[65]](_0xce09[64])){_0x20c1x1b[_0xce09[35]]= qs[_0xce09[35]](_0x20c1x28[_0xce09[58]][_0xce09[35]]);_0x20c1x1b[_0xce09[34]]= qs[_0xce09[34]](_0x20c1x28[_0xce09[58]][_0xce09[34]])};_0x20c1x1b[_0xce09[66]]= qs[_0xce09[67]](_0x20c1x28[_0xce09[58]][_0xce09[67]]);_0x20c1x1b[_0xce09[68]]= qs[_0xce09[59]](_[_0xce09[69]](_0x20c1x28[_0xce09[58]],_0x20c1x29[_0xce09[59]]));if(_0x20c1x28[_0xce09[58]][_0xce09[70]]){_0x20c1x1b[_0xce09[68]]= _[_0xce09[73]](_0x20c1x1b[_0xce09[68]],{$or:_[_0xce09[72]](_0x20c1x1b[_0xce09[61]],function(_0x20c1x2a){var _0x20c1x2b={};_0x20c1x2b[_0x20c1x2a]= {$like:_0xce09[71]+ _0x20c1x28[_0xce09[58]][_0xce09[70]]+ _0xce09[71]};return _0x20c1x2b})})};_0x20c1x1b= _[_0xce09[73]]({},_0x20c1x1b,_0x20c1x28[_0xce09[74]]);return db[_0xce09[56]][_0xce09[76]](_0x20c1x1b)[_0xce09[45]](respondWithFilteredResult(_0x20c1x15,_0x20c1x1b,_0xce09[53]))[_0xce09[75]](handleError(_0x20c1x15,null,_0xce09[53]))};exports[_0xce09[77]]= function(_0x20c1x28,_0x20c1x15){var _0x20c1x1b={raw:true,where:{id:_0x20c1x28[_0xce09[79]][_0xce09[78]]}},_0x20c1x29={};_0x20c1x29[_0xce09[54]]= _[_0xce09[57]](db[_0xce09[56]][_0xce09[55]]);_0x20c1x29[_0xce09[58]]= _[_0xce09[57]](_0x20c1x28[_0xce09[58]]);_0x20c1x29[_0xce09[59]]= _[_0xce09[60]](_0x20c1x29[_0xce09[54]],_0x20c1x29[_0xce09[58]]);_0x20c1x1b[_0xce09[61]]= _[_0xce09[60]](_0x20c1x29[_0xce09[54]],qs[_0xce09[62]](_0x20c1x28[_0xce09[58]][_0xce09[62]]));_0x20c1x1b[_0xce09[61]]= (_0x20c1x1b[_0xce09[61]][_0xce09[63]])?_0x20c1x1b[_0xce09[61]]:_0x20c1x29[_0xce09[54]];_0x20c1x1b= _[_0xce09[73]]({},_0x20c1x1b,_0x20c1x28[_0xce09[74]]);return db[_0xce09[56]][_0xce09[80]](_0x20c1x1b)[_0xce09[45]](handleEntityNotFound(_0x20c1x15,null,_0xce09[77]))[_0xce09[45]](respondWithResult(_0x20c1x15,null,_0xce09[77]))[_0xce09[75]](handleError(_0x20c1x15,null,_0xce09[77]))};exports[_0xce09[81]]= function(_0x20c1x28,_0x20c1x15,_0x20c1x2c){return db[_0xce09[56]][_0xce09[80]]({where:{id:_0x20c1x28[_0xce09[79]][_0xce09[78]]},attributes:[_0xce09[51],_0xce09[85],_0xce09[87]],raw:true})[_0xce09[45]](handleEntityNotFound(_0x20c1x15,null,_0xce09[81]))[_0xce09[45]](function(_0x20c1x18){if(_0x20c1x18){logger[_0xce09[24]](_0xce09[82],_0xce09[81],_0xce09[30]);logger[_0xce09[26]](_0xce09[22],_0xce09[81],_0xce09[30],JSON[_0xce09[31]](_0x20c1x18));if(!fs[_0xce09[89]](path[_0xce09[88]](config[_0xce09[83]],_0xce09[84],_0x20c1x18[_0xce09[85]]+ _0xce09[86]+ _0x20c1x18[_0xce09[87]]))){throw  new db[_0xce09[91]].ValidationError(_0xce09[90])};return _0x20c1x15[_0xce09[81]](path[_0xce09[88]](config[_0xce09[83]],_0xce09[84],util[_0xce09[93]](_0xce09[92],_0x20c1x18[_0xce09[85]],_0x20c1x18[_0xce09[87]])),util[_0xce09[93]](_0xce09[92],_0x20c1x18[_0xce09[51]],_0x20c1x18[_0xce09[87]]))};return null})[_0xce09[75]](handleError(_0x20c1x15,null,_0xce09[77]))};exports[_0xce09[94]]= function(_0x20c1x28,_0x20c1x15,_0x20c1x2c){var _0x20c1x2d={name:path[_0xce09[98]](_0x20c1x28[_0xce09[96]][_0xce09[95]],path[_0xce09[97]](_0x20c1x28[_0xce09[96]][_0xce09[95]])),save_name:path[_0xce09[98]](_0x20c1x28[_0xce09[96]][_0xce09[99]],path[_0xce09[97]](_0x20c1x28[_0xce09[96]][_0xce09[99]])),original_format:path[_0xce09[97]](_0x20c1x28[_0xce09[96]][_0xce09[95]])[_0xce09[100]](1),converted_format:_0xce09[101]};var _0x20c1x2e=path[_0xce09[88]](config[_0xce09[83]],_0xce09[102],_0x20c1x28[_0xce09[96]][_0xce09[99]]);var _0x20c1x2f=path[_0xce09[88]](config[_0xce09[83]],_0xce09[84],util[_0xce09[93]](_0xce09[92],path[_0xce09[98]](_0x20c1x28[_0xce09[96]][_0xce09[99]],path[_0xce09[97]](_0x20c1x28[_0xce09[96]][_0xce09[99]])),_0x20c1x2d[_0xce09[87]]));logger[_0xce09[24]](_0xce09[103],_0x20c1x2e);logger[_0xce09[24]](_0xce09[104],_0x20c1x2f);try{fs[_0xce09[106]](_0x20c1x2e,parseInt(_0xce09[105],8));var _0x20c1x30=sox[_0xce09[107]](_0x20c1x2e,_0x20c1x2f,{sampleRate:8000,format:_0xce09[101],channelCount:1,bitRate:192* 1024,compressionQuality:5});_0x20c1x30[_0xce09[108]](_0xce09[50],function(_0x20c1x27){_0x20c1x15[_0xce09[29]](500)[_0xce09[52]](_0x20c1x27)});_0x20c1x30[_0xce09[108]](_0xce09[109],function(_0x20c1x31){_0x20c1x2d[_0xce09[110]]= isNaN(_0x20c1x31[_0xce09[111]])?null:_0x20c1x31[_0xce09[111]]* 1000;_0x20c1x2d[_0xce09[112]]= isNaN(_0x20c1x31[_0xce09[113]])?null:_0x20c1x31[_0xce09[113]];_0x20c1x2d[_0xce09[114]]= isNaN(_0x20c1x31[_0xce09[115]])?null:_0x20c1x31[_0xce09[115]];_0x20c1x2d[_0xce09[116]]= isNaN(_0x20c1x31[_0xce09[117]])?null:_0x20c1x31[_0xce09[117]];_0x20c1x2d[_0xce09[118]]= isNaN(_0x20c1x31[_0xce09[119]])?null:_0x20c1x31[_0xce09[119]]});_0x20c1x30[_0xce09[108]](_0xce09[120],function(_0x20c1x31){_0x20c1x2d[_0xce09[121]]= isNaN(_0x20c1x31[_0xce09[111]])?null:_0x20c1x31[_0xce09[111]]* 1000;_0x20c1x2d[_0xce09[122]]= isNaN(_0x20c1x31[_0xce09[113]])?null:_0x20c1x31[_0xce09[113]];_0x20c1x2d[_0xce09[123]]= isNaN(_0x20c1x31[_0xce09[115]])?null:_0x20c1x31[_0xce09[115]];_0x20c1x2d[_0xce09[124]]= isNaN(_0x20c1x31[_0xce09[117]])?null:_0x20c1x31[_0xce09[117]];_0x20c1x2d[_0xce09[125]]= isNaN(_0x20c1x31[_0xce09[119]])?null:_0x20c1x31[_0xce09[119]]});_0x20c1x30[_0xce09[108]](_0xce09[28],function(){fs[_0xce09[106]](_0x20c1x2f,parseInt(_0xce09[105],8));return db[_0xce09[56]][_0xce09[94]](_0x20c1x2d)[_0xce09[45]](respondWithResult(_0x20c1x15,null,_0xce09[94]))[_0xce09[75]](handleError(_0x20c1x15,null,_0xce09[126]))});_0x20c1x30[_0xce09[127]]()}catch(err){_0x20c1x15[_0xce09[29]](500)[_0xce09[52]](err)}};exports[_0xce09[46]]= function(_0x20c1x28,_0x20c1x15,_0x20c1x2c){return db[_0xce09[56]][_0xce09[80]]({where:{id:_0x20c1x28[_0xce09[79]][_0xce09[78]]}})[_0xce09[45]](handleEntityNotFound(_0x20c1x15,null,_0xce09[46]))[_0xce09[45]](saveUpdates(_[_0xce09[69]](_0x20c1x28[_0xce09[128]],[_0xce09[51],_0xce09[129]]),null,_0xce09[46]))[_0xce09[45]](respondWithResult(_0x20c1x15,null,_0xce09[46]))[_0xce09[75]](handleError(_0x20c1x15,null,_0xce09[46]))};exports[_0xce09[130]]= function(_0x20c1x28,_0x20c1x15,_0x20c1x2c){return db[_0xce09[56]][_0xce09[80]]({where:{id:_0x20c1x28[_0xce09[79]][_0xce09[78]]}})[_0xce09[45]](function(_0x20c1x18){if(_0x20c1x18){return _0x20c1x18[_0xce09[48]]()}})[_0xce09[45]](function(_0x20c1x18){var _0x20c1x32=path[_0xce09[88]](config[_0xce09[83]],_0xce09[102],util[_0xce09[93]](_0xce09[92],_0x20c1x18[_0xce09[85]],_0x20c1x18[_0xce09[131]]));var _0x20c1x33=path[_0xce09[88]](config[_0xce09[83]],_0xce09[84],util[_0xce09[93]](_0xce09[92],_0x20c1x18[_0xce09[85]],_0x20c1x18[_0xce09[87]]));fs[_0xce09[132]](_0x20c1x32);fs[_0xce09[132]](_0x20c1x33);return _0x20c1x18})[_0xce09[45]](function(_0x20c1x18){if(_0x20c1x18){return _0x20c1x15[_0xce09[29]](204)[_0xce09[28]]()}})[_0xce09[45]](handleEntityNotFound(_0x20c1x15,null,_0xce09[130]))[_0xce09[75]](handleError(_0x20c1x15,null,_0xce09[130]))}
\ No newline at end of file
diff --git a/server/api/sound/sound.model.js b/server/api/sound/sound.model.js
new file mode 100644 (file)
index 0000000..1838382
--- /dev/null
@@ -0,0 +1 @@
+var _0x850c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x6F\x75\x6E\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x6F\x75\x6E\x64","\x74\x6F\x6F\x6C\x73\x5F\x73\x6F\x75\x6E\x64\x73","\x64\x65\x66\x69\x6E\x65"];_0x850c[0];var _=require(_0x850c[1]);var util=require(_0x850c[2]);var logger=require(_0x850c[4])(_0x850c[3]);var attributes=require(_0x850c[5]);module[_0x850c[6]]= function(_0x9fbcx5,_0x9fbcx6){return _0x9fbcx5[_0x850c[9]](_0x850c[7],attributes,{tableName:_0x850c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/sound/sound.rpc.js b/server/api/sound/sound.rpc.js
new file mode 100644 (file)
index 0000000..5d7cae9
--- /dev/null
@@ -0,0 +1 @@
+var _0x7f64=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x6F\x75\x6E\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x53\x6F\x75\x6E\x64","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x53\x6F\x75\x6E\x64"];_0x7f64[0];var _=require(_0x7f64[1]);var util=require(_0x7f64[2]);var moment=require(_0x7f64[3]);var BPromise=require(_0x7f64[4]);var db=require(_0x7f64[6])[_0x7f64[5]];var utils=require(_0x7f64[7]);var logger=require(_0x7f64[9])(_0x7f64[8]);var jayson=require(_0x7f64[10]);var client=jayson[_0x7f64[12]][_0x7f64[11]]({port:9002});function respondWithRpcPromise(_0xe661xb,_0xe661xc,_0xe661xd){return  new BPromise(function(_0xe661xe,_0xe661xf){return client[_0x7f64[25]](_0xe661xb,_0xe661xd)[_0x7f64[24]](function(_0xe661x11){logger[_0x7f64[17]](_0x7f64[13],_0xe661xc,_0x7f64[16]);logger[_0x7f64[20]](_0x7f64[18],_0xe661xc,_0x7f64[16],JSON[_0x7f64[19]](_0xe661x11));if(_0xe661x11[_0x7f64[14]]){if(_0xe661x11[_0x7f64[14]][_0x7f64[21]]=== 500){logger[_0x7f64[14]](_0x7f64[13],_0xe661xc,_0xe661x11[_0x7f64[14]][_0x7f64[22]]);return _0xe661xf(_0xe661x11[_0x7f64[14]][_0x7f64[22]])};logger[_0x7f64[14]](_0x7f64[13],_0xe661xc,_0xe661x11[_0x7f64[14]][_0x7f64[22]]);return _0xe661xe(_0xe661x11[_0x7f64[14]][_0x7f64[22]])}else {logger[_0x7f64[17]](_0x7f64[13],_0xe661xc,_0x7f64[16]);_0xe661xe(_0xe661x11[_0x7f64[23]][_0x7f64[22]])}})[_0x7f64[15]](function(_0xe661x10){logger[_0x7f64[14]](_0x7f64[13],_0xe661xc,_0xe661x10);_0xe661xf(_0xe661x10)})})}exports[_0x7f64[26]]= function(_0xe661xd){var _0xe661x12=this;return  new Promise(function(_0xe661xe,_0xe661xf){return db[_0x7f64[36]][_0x7f64[35]]({raw:_0xe661xd[_0x7f64[27]]?(_0xe661xd[_0x7f64[27]][_0x7f64[28]]=== undefined)?true:false:true,where:_0xe661xd[_0x7f64[27]]?_0xe661xd[_0x7f64[27]][_0x7f64[29]]|| null:null,attributes:_0xe661xd[_0x7f64[27]]?_0xe661xd[_0x7f64[27]][_0x7f64[30]]|| null:null,include:_0xe661xd[_0x7f64[27]]?(_0xe661xd[_0x7f64[27]][_0x7f64[31]]?_[_0x7f64[34]](_0xe661xd[_0x7f64[27]][_0x7f64[31]],function(_0xe661x13){return {model:db[_0xe661x13[_0x7f64[32]]],as:_0xe661x13[_0x7f64[33]],attributes:_0xe661x13[_0x7f64[30]],include:_0xe661x13[_0x7f64[31]]?_[_0x7f64[34]](_0xe661x13[_0x7f64[31]],function(_0xe661x14){return {model:db[_0xe661x14[_0x7f64[32]]],as:_0xe661x14[_0x7f64[33]],attributes:_0xe661x14[_0x7f64[30]],include:_0xe661x14[_0x7f64[31]]?_[_0x7f64[34]](_0xe661x14[_0x7f64[31]],function(_0xe661x15){return {model:db[_0xe661x15[_0x7f64[32]]],as:_0xe661x15[_0x7f64[33]],attributes:_0xe661x15[_0x7f64[30]]}}):[]}}):[]}}):[]):[]})[_0x7f64[24]](function(_0xe661x11){logger[_0x7f64[17]](_0x7f64[26],_0xe661xd);logger[_0x7f64[20]](_0x7f64[26],_0xe661xd,JSON[_0x7f64[19]](_0xe661x11));_0xe661xe(_0xe661x11)})[_0x7f64[15]](function(_0xe661x10){logger[_0x7f64[14]](_0x7f64[26],_0xe661x10[_0x7f64[22]],_0xe661xd);_0xe661xf(_0xe661x12[_0x7f64[14]](500,_0xe661x10[_0x7f64[22]]))})})}
\ No newline at end of file
diff --git a/server/api/squareOdbc/index.js b/server/api/squareOdbc/index.js
new file mode 100644 (file)
index 0000000..454175a
--- /dev/null
@@ -0,0 +1 @@
+var _0x167e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x74\x65\x73\x74","\x74\x65\x73\x74","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x167e[0];var multer=require(_0x167e[1]);var util=require(_0x167e[2]);var path=require(_0x167e[3]);var express=require(_0x167e[4]);var router=express.Router();var auth=require(_0x167e[5]);var config=require(_0x167e[6]);var controller=require(_0x167e[7]);router[_0x167e[11]](_0x167e[8],auth[_0x167e[9]](),controller[_0x167e[10]]);router[_0x167e[11]](_0x167e[12],auth[_0x167e[9]](),controller[_0x167e[13]]);router[_0x167e[11]](_0x167e[14],auth[_0x167e[9]](),controller[_0x167e[15]]);router[_0x167e[17]](_0x167e[8],auth[_0x167e[9]](),controller[_0x167e[16]]);router[_0x167e[19]](_0x167e[12],auth[_0x167e[9]](),controller[_0x167e[18]]);router[_0x167e[21]](_0x167e[12],auth[_0x167e[9]](),controller[_0x167e[20]]);module[_0x167e[22]]= router
\ No newline at end of file
diff --git a/server/api/squareOdbc/squareOdbc.attributes.js b/server/api/squareOdbc/squareOdbc.attributes.js
new file mode 100644 (file)
index 0000000..7071630
--- /dev/null
@@ -0,0 +1 @@
+var _0x29b9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0x29b9[0];var Sequelize=require(_0x29b9[1]);module[_0x29b9[2]]= {name:{type:Sequelize[_0x29b9[3]],unique:_0x29b9[4],allowNull:false},dsn:{type:Sequelize[_0x29b9[3]]},description:{type:Sequelize[_0x29b9[3]]}}
\ No newline at end of file
diff --git a/server/api/squareOdbc/squareOdbc.controller.js b/server/api/squareOdbc/squareOdbc.controller.js
new file mode 100644 (file)
index 0000000..f3b51dc
--- /dev/null
@@ -0,0 +1 @@
+var _0x4207=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x74\x65\x73\x74","\x6F\x64\x62\x63","\x64\x73\x6E","\x6F\x70\x65\x6E\x53\x79\x6E\x63","\x63\x6C\x6F\x73\x65\x53\x79\x6E\x63"];_0x4207[0];var jsonpatch=require(_0x4207[1]);var rp=require(_0x4207[2]);var moment=require(_0x4207[3]);var BPromise=require(_0x4207[4]);var util=require(_0x4207[5]);var path=require(_0x4207[6]);var sox=require(_0x4207[7]);var ejs=require(_0x4207[8]);var fs=require(_0x4207[9]);var _=require(_0x4207[10]);var squel=require(_0x4207[11]);var crypto=require(_0x4207[12]);var jsforce=require(_0x4207[13]);var toCsv=require(_0x4207[14]);var qs=require(_0x4207[15]);var logger=require(_0x4207[17])(_0x4207[16]);var utils=require(_0x4207[18]);var config=require(_0x4207[19]);var db=require(_0x4207[21])[_0x4207[20]];function respondWithStatusCode(_0xd7b4x15,_0xd7b4x16,_0xd7b4x17){_0xd7b4x16= _0xd7b4x16|| 204;return function(_0xd7b4x18){if(_0xd7b4x18){logger[_0x4207[24]](_0x4207[22],_0xd7b4x17,_0xd7b4x16,_0x4207[23]);logger[_0x4207[26]](_0x4207[25],_0xd7b4x17,_0xd7b4x16,_0x4207[23]);return _0xd7b4x15[_0x4207[27]](_0xd7b4x16)};return _0xd7b4x15[_0x4207[29]](304)[_0x4207[28]]()}}function respondWithResult(_0xd7b4x15,_0xd7b4x16,_0xd7b4x17){_0xd7b4x16= _0xd7b4x16|| 200;return function(_0xd7b4x18){if(_0xd7b4x18){logger[_0x4207[24]](_0x4207[22],_0xd7b4x17,_0xd7b4x16,_0x4207[30]);logger[_0x4207[26]](_0x4207[25],_0xd7b4x17,_0xd7b4x16,_0x4207[30],JSON[_0x4207[31]](_0xd7b4x18));return _0xd7b4x15[_0x4207[29]](_0xd7b4x16)[_0x4207[32]](_0xd7b4x18)};return _0xd7b4x15[_0x4207[29]](304)[_0x4207[28]]()}}function respondWithFilteredResult(_0xd7b4x15,_0xd7b4x1b,_0xd7b4x17){return function(_0xd7b4x18){if(_0xd7b4x18){var _0xd7b4x1c=_0xd7b4x18[_0x4207[33]],_0xd7b4x1d=_0xd7b4x1b[_0x4207[34]],_0xd7b4x1e=_0xd7b4x1b[_0x4207[34]]+ _0xd7b4x1b[_0x4207[35]],_0xd7b4x16;if(_0xd7b4x1e>= _0xd7b4x1c){_0xd7b4x1e= _0xd7b4x1c;_0xd7b4x16= 200}else {_0xd7b4x16= 206};_0xd7b4x15[_0x4207[29]](_0xd7b4x16);logger[_0x4207[24]](_0x4207[22],_0xd7b4x17,_0xd7b4x16,_0x4207[36]);logger[_0x4207[26]](_0x4207[25],_0xd7b4x17,_0xd7b4x16,_0x4207[30],JSON[_0x4207[31]](_0xd7b4x18));return _0xd7b4x15[_0x4207[40]](_0x4207[37],_0xd7b4x1d+ _0x4207[38]+ _0xd7b4x1e+ _0x4207[39]+ _0xd7b4x1c)[_0x4207[32]](_0xd7b4x18)};return null}}function patchUpdates(_0xd7b4x20){return function(_0xd7b4x18){try{jsonpatch[_0x4207[41]](_0xd7b4x18,_0xd7b4x20,true)}catch(err){return BPromise[_0x4207[42]](err)};return _0xd7b4x18[_0x4207[43]]()}}function saveUpdates(_0xd7b4x22,_0xd7b4x16,_0xd7b4x17){return function(_0xd7b4x18){if(_0xd7b4x18){return _0xd7b4x18[_0x4207[46]](_0xd7b4x22)[_0x4207[45]](function(_0xd7b4x23){logger[_0x4207[24]](_0x4207[22],_0xd7b4x17,_0xd7b4x16,_0x4207[44]);logger[_0x4207[26]](_0x4207[25],_0xd7b4x17,_0xd7b4x16,_0x4207[44],JSON[_0x4207[31]](_0xd7b4x18));return _0xd7b4x23})};return null}}function removeEntity(_0xd7b4x15,_0xd7b4x16,_0xd7b4x17){return function(_0xd7b4x18){if(_0xd7b4x18){return _0xd7b4x18[_0x4207[48]]()[_0x4207[45]](function(){logger[_0x4207[24]](_0x4207[22],_0xd7b4x17,_0xd7b4x16,_0x4207[47]);logger[_0x4207[26]](_0x4207[25],_0xd7b4x17,_0xd7b4x16,_0x4207[47],JSON[_0x4207[31]](_0xd7b4x18));_0xd7b4x15[_0x4207[29]](204)[_0x4207[28]]()})}}}function handleEntityNotFound(_0xd7b4x15,_0xd7b4x16,_0xd7b4x17){return function(_0xd7b4x18){if(!_0xd7b4x18){logger[_0x4207[50]](_0x4207[22],_0xd7b4x17,404,_0x4207[49]);_0xd7b4x15[_0x4207[29]](404)[_0x4207[28]]();return null};return _0xd7b4x18}}function handleError(_0xd7b4x15,_0xd7b4x16,_0xd7b4x17){_0xd7b4x16= _0xd7b4x16|| 500;return function(_0xd7b4x27){logger[_0x4207[50]](_0x4207[22],_0xd7b4x17,_0xd7b4x16,JSON[_0x4207[31]](_0xd7b4x27));delete _0xd7b4x27[_0x4207[51]];_0xd7b4x15[_0x4207[29]](_0xd7b4x16)[_0x4207[52]](_0xd7b4x27)}}exports[_0x4207[53]]= function(_0xd7b4x28,_0xd7b4x15){var _0xd7b4x1b={},_0xd7b4x29={};_0xd7b4x29[_0x4207[54]]= _[_0x4207[57]](db[_0x4207[56]][_0x4207[55]]);_0xd7b4x29[_0x4207[58]]= _[_0x4207[57]](_0xd7b4x28[_0x4207[58]]);_0xd7b4x29[_0x4207[59]]= _[_0x4207[60]](_0xd7b4x29[_0x4207[54]],_0xd7b4x29[_0x4207[58]]);_0xd7b4x1b[_0x4207[61]]= _[_0x4207[60]](_0xd7b4x29[_0x4207[54]],qs[_0x4207[62]](_0xd7b4x28[_0x4207[58]][_0x4207[62]]));_0xd7b4x1b[_0x4207[61]]= (_0xd7b4x1b[_0x4207[61]][_0x4207[63]])?_0xd7b4x1b[_0x4207[61]]:_0xd7b4x29[_0x4207[54]];if(!_0xd7b4x28[_0x4207[58]][_0x4207[65]](_0x4207[64])){_0xd7b4x1b[_0x4207[35]]= qs[_0x4207[35]](_0xd7b4x28[_0x4207[58]][_0x4207[35]]);_0xd7b4x1b[_0x4207[34]]= qs[_0x4207[34]](_0xd7b4x28[_0x4207[58]][_0x4207[34]])};_0xd7b4x1b[_0x4207[66]]= qs[_0x4207[67]](_0xd7b4x28[_0x4207[58]][_0x4207[67]]);_0xd7b4x1b[_0x4207[68]]= qs[_0x4207[59]](_[_0x4207[69]](_0xd7b4x28[_0x4207[58]],_0xd7b4x29[_0x4207[59]]));if(_0xd7b4x28[_0x4207[58]][_0x4207[70]]){_0xd7b4x1b[_0x4207[68]]= _[_0x4207[73]](_0xd7b4x1b[_0x4207[68]],{$or:_[_0x4207[72]](_0xd7b4x1b[_0x4207[61]],function(_0xd7b4x2a){var _0xd7b4x2b={};_0xd7b4x2b[_0xd7b4x2a]= {$like:_0x4207[71]+ _0xd7b4x28[_0x4207[58]][_0x4207[70]]+ _0x4207[71]};return _0xd7b4x2b})})};_0xd7b4x1b= _[_0x4207[73]]({},_0xd7b4x1b,_0xd7b4x28[_0x4207[74]]);return db[_0x4207[56]][_0x4207[76]](_0xd7b4x1b)[_0x4207[45]](respondWithFilteredResult(_0xd7b4x15,_0xd7b4x1b,_0x4207[53]))[_0x4207[75]](handleError(_0xd7b4x15,null,_0x4207[53]))};exports[_0x4207[77]]= function(_0xd7b4x28,_0xd7b4x15){var _0xd7b4x1b={raw:true,where:{id:_0xd7b4x28[_0x4207[79]][_0x4207[78]]}},_0xd7b4x29={};_0xd7b4x29[_0x4207[54]]= _[_0x4207[57]](db[_0x4207[56]][_0x4207[55]]);_0xd7b4x29[_0x4207[58]]= _[_0x4207[57]](_0xd7b4x28[_0x4207[58]]);_0xd7b4x29[_0x4207[59]]= _[_0x4207[60]](_0xd7b4x29[_0x4207[54]],_0xd7b4x29[_0x4207[58]]);_0xd7b4x1b[_0x4207[61]]= _[_0x4207[60]](_0xd7b4x29[_0x4207[54]],qs[_0x4207[62]](_0xd7b4x28[_0x4207[58]][_0x4207[62]]));_0xd7b4x1b[_0x4207[61]]= (_0xd7b4x1b[_0x4207[61]][_0x4207[63]])?_0xd7b4x1b[_0x4207[61]]:_0xd7b4x29[_0x4207[54]];_0xd7b4x1b= _[_0x4207[73]]({},_0xd7b4x1b,_0xd7b4x28[_0x4207[74]]);return db[_0x4207[56]][_0x4207[80]](_0xd7b4x1b)[_0x4207[45]](handleEntityNotFound(_0xd7b4x15,null,_0x4207[77]))[_0x4207[45]](respondWithResult(_0xd7b4x15,null,_0x4207[77]))[_0x4207[75]](handleError(_0xd7b4x15,null,_0x4207[77]))};exports[_0x4207[81]]= function(_0xd7b4x28,_0xd7b4x15){return db[_0x4207[56]][_0x4207[81]](_0xd7b4x28[_0x4207[82]],{})[_0x4207[45]](respondWithResult(_0xd7b4x15,201,_0x4207[81]))[_0x4207[75]](handleError(_0xd7b4x15,null,_0x4207[81]))};exports[_0x4207[46]]= function(_0xd7b4x28,_0xd7b4x15){if(_0xd7b4x28[_0x4207[82]][_0x4207[78]]){delete _0xd7b4x28[_0x4207[82]][_0x4207[78]]};return db[_0x4207[56]][_0x4207[80]]({where:{id:_0xd7b4x28[_0x4207[79]][_0x4207[78]]}})[_0x4207[45]](handleEntityNotFound(_0xd7b4x15,null,_0x4207[46]))[_0x4207[45]](saveUpdates(_0xd7b4x28[_0x4207[82]],null,_0x4207[46]))[_0x4207[45]](respondWithResult(_0xd7b4x15,null,_0x4207[46]))[_0x4207[75]](handleError(_0xd7b4x15,null,_0x4207[46]))};exports[_0x4207[48]]= function(_0xd7b4x28,_0xd7b4x15){return db[_0x4207[56]][_0x4207[80]]({where:{id:_0xd7b4x28[_0x4207[79]][_0x4207[78]]}})[_0x4207[45]](handleEntityNotFound(_0xd7b4x15,null,_0x4207[48]))[_0x4207[45]](removeEntity(_0xd7b4x15,null,_0x4207[48]))[_0x4207[75]](handleError(_0xd7b4x15,null,_0x4207[48]))};exports[_0x4207[83]]= function(_0xd7b4x28,_0xd7b4x15,_0xd7b4x2c){var _0xd7b4x2d;return db[_0x4207[56]][_0x4207[80]]({where:{id:_0xd7b4x28[_0x4207[79]][_0x4207[78]]},attributes:[_0x4207[78],_0x4207[85]]})[_0x4207[45]](handleEntityNotFound(_0xd7b4x15,null,_0x4207[83]))[_0x4207[45]](function(_0xd7b4x18){if(_0xd7b4x18){var db=require(_0x4207[84])();db[_0x4207[86]](_0xd7b4x18[_0x4207[85]]);db[_0x4207[87]]();return _0xd7b4x18}})[_0x4207[45]](respondWithResult(_0xd7b4x15,null,_0x4207[83]))[_0x4207[75]](handleError(_0xd7b4x15,null,_0x4207[83]))}
\ No newline at end of file
diff --git a/server/api/squareOdbc/squareOdbc.model.js b/server/api/squareOdbc/squareOdbc.model.js
new file mode 100644 (file)
index 0000000..da757c4
--- /dev/null
@@ -0,0 +1 @@
+var _0xed49=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x73\x71\x75\x61\x72\x65\x5F\x6F\x64\x62\x63","\x64\x65\x66\x69\x6E\x65"];_0xed49[0];var _=require(_0xed49[1]);var util=require(_0xed49[2]);var logger=require(_0xed49[4])(_0xed49[3]);var attributes=require(_0xed49[5]);module[_0xed49[6]]= function(_0x5171x5,_0x5171x6){return _0x5171x5[_0xed49[9]](_0xed49[7],attributes,{tableName:_0xed49[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/squareOdbc/squareOdbc.rpc.js b/server/api/squareOdbc/squareOdbc.rpc.js
new file mode 100644 (file)
index 0000000..5a928f8
--- /dev/null
@@ -0,0 +1 @@
+var _0xadda=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63"];_0xadda[0];var _=require(_0xadda[1]);var util=require(_0xadda[2]);var moment=require(_0xadda[3]);var BPromise=require(_0xadda[4]);var db=require(_0xadda[6])[_0xadda[5]];var utils=require(_0xadda[7]);var logger=require(_0xadda[9])(_0xadda[8]);var jayson=require(_0xadda[10]);var client=jayson[_0xadda[12]][_0xadda[11]]({port:9002});function respondWithRpcPromise(_0x2b19xb,_0x2b19xc,_0x2b19xd){return  new BPromise(function(_0x2b19xe,_0x2b19xf){return client[_0xadda[25]](_0x2b19xb,_0x2b19xd)[_0xadda[24]](function(_0x2b19x11){logger[_0xadda[17]](_0xadda[13],_0x2b19xc,_0xadda[16]);logger[_0xadda[20]](_0xadda[18],_0x2b19xc,_0xadda[16],JSON[_0xadda[19]](_0x2b19x11));if(_0x2b19x11[_0xadda[14]]){if(_0x2b19x11[_0xadda[14]][_0xadda[21]]=== 500){logger[_0xadda[14]](_0xadda[13],_0x2b19xc,_0x2b19x11[_0xadda[14]][_0xadda[22]]);return _0x2b19xf(_0x2b19x11[_0xadda[14]][_0xadda[22]])};logger[_0xadda[14]](_0xadda[13],_0x2b19xc,_0x2b19x11[_0xadda[14]][_0xadda[22]]);return _0x2b19xe(_0x2b19x11[_0xadda[14]][_0xadda[22]])}else {logger[_0xadda[17]](_0xadda[13],_0x2b19xc,_0xadda[16]);_0x2b19xe(_0x2b19x11[_0xadda[23]][_0xadda[22]])}})[_0xadda[15]](function(_0x2b19x10){logger[_0xadda[14]](_0xadda[13],_0x2b19xc,_0x2b19x10);_0x2b19xf(_0x2b19x10)})})}exports[_0xadda[26]]= function(_0x2b19xd){var _0x2b19x12=this;return  new Promise(function(_0x2b19xe,_0x2b19xf){return db[_0xadda[36]][_0xadda[35]]({raw:_0x2b19xd[_0xadda[27]]?(_0x2b19xd[_0xadda[27]][_0xadda[28]]=== undefined)?true:false:true,where:_0x2b19xd[_0xadda[27]]?_0x2b19xd[_0xadda[27]][_0xadda[29]]|| null:null,attributes:_0x2b19xd[_0xadda[27]]?_0x2b19xd[_0xadda[27]][_0xadda[30]]|| null:null,include:_0x2b19xd[_0xadda[27]]?(_0x2b19xd[_0xadda[27]][_0xadda[31]]?_[_0xadda[34]](_0x2b19xd[_0xadda[27]][_0xadda[31]],function(_0x2b19x13){return {model:db[_0x2b19x13[_0xadda[32]]],as:_0x2b19x13[_0xadda[33]],attributes:_0x2b19x13[_0xadda[30]],include:_0x2b19x13[_0xadda[31]]?_[_0xadda[34]](_0x2b19x13[_0xadda[31]],function(_0x2b19x14){return {model:db[_0x2b19x14[_0xadda[32]]],as:_0x2b19x14[_0xadda[33]],attributes:_0x2b19x14[_0xadda[30]],include:_0x2b19x14[_0xadda[31]]?_[_0xadda[34]](_0x2b19x14[_0xadda[31]],function(_0x2b19x15){return {model:db[_0x2b19x15[_0xadda[32]]],as:_0x2b19x15[_0xadda[33]],attributes:_0x2b19x15[_0xadda[30]]}}):[]}}):[]}}):[]):[]})[_0xadda[24]](function(_0x2b19x11){logger[_0xadda[17]](_0xadda[26],_0x2b19xd);logger[_0xadda[20]](_0xadda[26],_0x2b19xd,JSON[_0xadda[19]](_0x2b19x11));_0x2b19xe(_0x2b19x11)})[_0xadda[15]](function(_0x2b19x10){logger[_0xadda[14]](_0xadda[26],_0x2b19x10[_0xadda[22]],_0x2b19xd);_0x2b19xf(_0x2b19x12[_0xadda[14]](500,_0x2b19x10[_0xadda[22]]))})})}
\ No newline at end of file
diff --git a/server/api/squareProject/index.js b/server/api/squareProject/index.js
new file mode 100644 (file)
index 0000000..06094a7
--- /dev/null
@@ -0,0 +1 @@
+var _0x21ec=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x21ec[0];var multer=require(_0x21ec[1]);var util=require(_0x21ec[2]);var path=require(_0x21ec[3]);var express=require(_0x21ec[4]);var router=express.Router();var auth=require(_0x21ec[5]);var config=require(_0x21ec[6]);var controller=require(_0x21ec[7]);router[_0x21ec[11]](_0x21ec[8],auth[_0x21ec[9]](),controller[_0x21ec[10]]);router[_0x21ec[11]](_0x21ec[12],auth[_0x21ec[9]](),controller[_0x21ec[13]]);router[_0x21ec[15]](_0x21ec[8],auth[_0x21ec[9]](),controller[_0x21ec[14]]);router[_0x21ec[17]](_0x21ec[12],auth[_0x21ec[9]](),controller[_0x21ec[16]]);router[_0x21ec[19]](_0x21ec[12],auth[_0x21ec[9]](),controller[_0x21ec[18]]);module[_0x21ec[20]]= router
\ No newline at end of file
diff --git a/server/api/squareProject/squareProject.attributes.js b/server/api/squareProject/squareProject.attributes.js
new file mode 100644 (file)
index 0000000..6d18870
--- /dev/null
@@ -0,0 +1 @@
+var _0xc062=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x54\x45\x58\x54","\x6C\x6F\x6E\x67","\x70\x72\x65\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x75\x74\x66\x38","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E"];_0xc062[0];var Sequelize=require(_0xc062[1]);module[_0xc062[2]]= {name:{type:Sequelize[_0xc062[3]],unique:_0xc062[4],allowNull:false},description:{type:Sequelize[_0xc062[3]]},notes:{type:Sequelize[_0xc062[5]]},preproduction:{type:Sequelize.BLOB(_0xc062[6]),get:function(){if(this[_0xc062[8]](_0xc062[7])){return this[_0xc062[8]](_0xc062[7]).toString(_0xc062[9])}}},production:{type:Sequelize.BLOB(_0xc062[6]),get:function(){if(this[_0xc062[8]](_0xc062[10])){return this[_0xc062[8]](_0xc062[10]).toString(_0xc062[9])}}}}
\ No newline at end of file
diff --git a/server/api/squareProject/squareProject.controller.js b/server/api/squareProject/squareProject.controller.js
new file mode 100644 (file)
index 0000000..db7e315
--- /dev/null
@@ -0,0 +1 @@
+var _0xca85=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xca85[0];var jsonpatch=require(_0xca85[1]);var rp=require(_0xca85[2]);var moment=require(_0xca85[3]);var BPromise=require(_0xca85[4]);var util=require(_0xca85[5]);var path=require(_0xca85[6]);var sox=require(_0xca85[7]);var ejs=require(_0xca85[8]);var fs=require(_0xca85[9]);var _=require(_0xca85[10]);var squel=require(_0xca85[11]);var crypto=require(_0xca85[12]);var jsforce=require(_0xca85[13]);var toCsv=require(_0xca85[14]);var qs=require(_0xca85[15]);var logger=require(_0xca85[17])(_0xca85[16]);var utils=require(_0xca85[18]);var config=require(_0xca85[19]);var db=require(_0xca85[21])[_0xca85[20]];function respondWithStatusCode(_0x7b51x15,_0x7b51x16,_0x7b51x17){_0x7b51x16= _0x7b51x16|| 204;return function(_0x7b51x18){if(_0x7b51x18){logger[_0xca85[24]](_0xca85[22],_0x7b51x17,_0x7b51x16,_0xca85[23]);logger[_0xca85[26]](_0xca85[25],_0x7b51x17,_0x7b51x16,_0xca85[23]);return _0x7b51x15[_0xca85[27]](_0x7b51x16)};return _0x7b51x15[_0xca85[29]](304)[_0xca85[28]]()}}function respondWithResult(_0x7b51x15,_0x7b51x16,_0x7b51x17){_0x7b51x16= _0x7b51x16|| 200;return function(_0x7b51x18){if(_0x7b51x18){logger[_0xca85[24]](_0xca85[22],_0x7b51x17,_0x7b51x16,_0xca85[30]);logger[_0xca85[26]](_0xca85[25],_0x7b51x17,_0x7b51x16,_0xca85[30],JSON[_0xca85[31]](_0x7b51x18));return _0x7b51x15[_0xca85[29]](_0x7b51x16)[_0xca85[32]](_0x7b51x18)};return _0x7b51x15[_0xca85[29]](304)[_0xca85[28]]()}}function respondWithFilteredResult(_0x7b51x15,_0x7b51x1b,_0x7b51x17){return function(_0x7b51x18){if(_0x7b51x18){var _0x7b51x1c=_0x7b51x18[_0xca85[33]],_0x7b51x1d=_0x7b51x1b[_0xca85[34]],_0x7b51x1e=_0x7b51x1b[_0xca85[34]]+ _0x7b51x1b[_0xca85[35]],_0x7b51x16;if(_0x7b51x1e>= _0x7b51x1c){_0x7b51x1e= _0x7b51x1c;_0x7b51x16= 200}else {_0x7b51x16= 206};_0x7b51x15[_0xca85[29]](_0x7b51x16);logger[_0xca85[24]](_0xca85[22],_0x7b51x17,_0x7b51x16,_0xca85[36]);logger[_0xca85[26]](_0xca85[25],_0x7b51x17,_0x7b51x16,_0xca85[30],JSON[_0xca85[31]](_0x7b51x18));return _0x7b51x15[_0xca85[40]](_0xca85[37],_0x7b51x1d+ _0xca85[38]+ _0x7b51x1e+ _0xca85[39]+ _0x7b51x1c)[_0xca85[32]](_0x7b51x18)};return null}}function patchUpdates(_0x7b51x20){return function(_0x7b51x18){try{jsonpatch[_0xca85[41]](_0x7b51x18,_0x7b51x20,true)}catch(err){return BPromise[_0xca85[42]](err)};return _0x7b51x18[_0xca85[43]]()}}function saveUpdates(_0x7b51x22,_0x7b51x16,_0x7b51x17){return function(_0x7b51x18){if(_0x7b51x18){return _0x7b51x18[_0xca85[46]](_0x7b51x22)[_0xca85[45]](function(_0x7b51x23){logger[_0xca85[24]](_0xca85[22],_0x7b51x17,_0x7b51x16,_0xca85[44]);logger[_0xca85[26]](_0xca85[25],_0x7b51x17,_0x7b51x16,_0xca85[44],JSON[_0xca85[31]](_0x7b51x18));return _0x7b51x23})};return null}}function removeEntity(_0x7b51x15,_0x7b51x16,_0x7b51x17){return function(_0x7b51x18){if(_0x7b51x18){return _0x7b51x18[_0xca85[48]]()[_0xca85[45]](function(){logger[_0xca85[24]](_0xca85[22],_0x7b51x17,_0x7b51x16,_0xca85[47]);logger[_0xca85[26]](_0xca85[25],_0x7b51x17,_0x7b51x16,_0xca85[47],JSON[_0xca85[31]](_0x7b51x18));_0x7b51x15[_0xca85[29]](204)[_0xca85[28]]()})}}}function handleEntityNotFound(_0x7b51x15,_0x7b51x16,_0x7b51x17){return function(_0x7b51x18){if(!_0x7b51x18){logger[_0xca85[50]](_0xca85[22],_0x7b51x17,404,_0xca85[49]);_0x7b51x15[_0xca85[29]](404)[_0xca85[28]]();return null};return _0x7b51x18}}function handleError(_0x7b51x15,_0x7b51x16,_0x7b51x17){_0x7b51x16= _0x7b51x16|| 500;return function(_0x7b51x27){logger[_0xca85[50]](_0xca85[22],_0x7b51x17,_0x7b51x16,JSON[_0xca85[31]](_0x7b51x27));delete _0x7b51x27[_0xca85[51]];_0x7b51x15[_0xca85[29]](_0x7b51x16)[_0xca85[52]](_0x7b51x27)}}exports[_0xca85[53]]= function(_0x7b51x28,_0x7b51x15){var _0x7b51x1b={},_0x7b51x29={};_0x7b51x29[_0xca85[54]]= _[_0xca85[57]](db[_0xca85[56]][_0xca85[55]]);_0x7b51x29[_0xca85[58]]= _[_0xca85[57]](_0x7b51x28[_0xca85[58]]);_0x7b51x29[_0xca85[59]]= _[_0xca85[60]](_0x7b51x29[_0xca85[54]],_0x7b51x29[_0xca85[58]]);_0x7b51x1b[_0xca85[61]]= _[_0xca85[60]](_0x7b51x29[_0xca85[54]],qs[_0xca85[62]](_0x7b51x28[_0xca85[58]][_0xca85[62]]));_0x7b51x1b[_0xca85[61]]= (_0x7b51x1b[_0xca85[61]][_0xca85[63]])?_0x7b51x1b[_0xca85[61]]:_0x7b51x29[_0xca85[54]];if(!_0x7b51x28[_0xca85[58]][_0xca85[65]](_0xca85[64])){_0x7b51x1b[_0xca85[35]]= qs[_0xca85[35]](_0x7b51x28[_0xca85[58]][_0xca85[35]]);_0x7b51x1b[_0xca85[34]]= qs[_0xca85[34]](_0x7b51x28[_0xca85[58]][_0xca85[34]])};_0x7b51x1b[_0xca85[66]]= qs[_0xca85[67]](_0x7b51x28[_0xca85[58]][_0xca85[67]]);_0x7b51x1b[_0xca85[68]]= qs[_0xca85[59]](_[_0xca85[69]](_0x7b51x28[_0xca85[58]],_0x7b51x29[_0xca85[59]]));if(_0x7b51x28[_0xca85[58]][_0xca85[70]]){_0x7b51x1b[_0xca85[68]]= _[_0xca85[73]](_0x7b51x1b[_0xca85[68]],{$or:_[_0xca85[72]](_0x7b51x1b[_0xca85[61]],function(_0x7b51x2a){var _0x7b51x2b={};_0x7b51x2b[_0x7b51x2a]= {$like:_0xca85[71]+ _0x7b51x28[_0xca85[58]][_0xca85[70]]+ _0xca85[71]};return _0x7b51x2b})})};_0x7b51x1b= _[_0xca85[73]]({},_0x7b51x1b,_0x7b51x28[_0xca85[74]]);return db[_0xca85[56]][_0xca85[76]](_0x7b51x1b)[_0xca85[45]](respondWithFilteredResult(_0x7b51x15,_0x7b51x1b,_0xca85[53]))[_0xca85[75]](handleError(_0x7b51x15,null,_0xca85[53]))};exports[_0xca85[77]]= function(_0x7b51x28,_0x7b51x15){var _0x7b51x1b={raw:false,where:{id:_0x7b51x28[_0xca85[79]][_0xca85[78]]}},_0x7b51x29={};_0x7b51x29[_0xca85[54]]= _[_0xca85[57]](db[_0xca85[56]][_0xca85[55]]);_0x7b51x29[_0xca85[58]]= _[_0xca85[57]](_0x7b51x28[_0xca85[58]]);_0x7b51x29[_0xca85[59]]= _[_0xca85[60]](_0x7b51x29[_0xca85[54]],_0x7b51x29[_0xca85[58]]);_0x7b51x1b[_0xca85[61]]= _[_0xca85[60]](_0x7b51x29[_0xca85[54]],qs[_0xca85[62]](_0x7b51x28[_0xca85[58]][_0xca85[62]]));_0x7b51x1b[_0xca85[61]]= (_0x7b51x1b[_0xca85[61]][_0xca85[63]])?_0x7b51x1b[_0xca85[61]]:_0x7b51x29[_0xca85[54]];_0x7b51x1b= _[_0xca85[73]]({},_0x7b51x1b,_0x7b51x28[_0xca85[74]]);return db[_0xca85[56]][_0xca85[80]](_0x7b51x1b)[_0xca85[45]](handleEntityNotFound(_0x7b51x15,null,_0xca85[77]))[_0xca85[45]](respondWithResult(_0x7b51x15,null,_0xca85[77]))[_0xca85[75]](handleError(_0x7b51x15,null,_0xca85[77]))};exports[_0xca85[81]]= function(_0x7b51x28,_0x7b51x15){return db[_0xca85[56]][_0xca85[81]](_0x7b51x28[_0xca85[82]],{})[_0xca85[45]](respondWithResult(_0x7b51x15,201,_0xca85[81]))[_0xca85[75]](handleError(_0x7b51x15,null,_0xca85[81]))};exports[_0xca85[46]]= function(_0x7b51x28,_0x7b51x15){if(_0x7b51x28[_0xca85[82]][_0xca85[78]]){delete _0x7b51x28[_0xca85[82]][_0xca85[78]]};return db[_0xca85[56]][_0xca85[80]]({where:{id:_0x7b51x28[_0xca85[79]][_0xca85[78]]}})[_0xca85[45]](handleEntityNotFound(_0x7b51x15,null,_0xca85[46]))[_0xca85[45]](saveUpdates(_0x7b51x28[_0xca85[82]],null,_0xca85[46]))[_0xca85[45]](respondWithResult(_0x7b51x15,null,_0xca85[46]))[_0xca85[75]](handleError(_0x7b51x15,null,_0xca85[46]))};exports[_0xca85[48]]= function(_0x7b51x28,_0x7b51x15){return db[_0xca85[56]][_0xca85[80]]({where:{id:_0x7b51x28[_0xca85[79]][_0xca85[78]]}})[_0xca85[45]](handleEntityNotFound(_0x7b51x15,null,_0xca85[48]))[_0xca85[45]](removeEntity(_0x7b51x15,null,_0xca85[48]))[_0xca85[75]](handleError(_0x7b51x15,null,_0xca85[48]))}
\ No newline at end of file
diff --git a/server/api/squareProject/squareProject.model.js b/server/api/squareProject/squareProject.model.js
new file mode 100644 (file)
index 0000000..46ff1e4
--- /dev/null
@@ -0,0 +1 @@
+var _0x18e2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x73\x71\x75\x61\x72\x65\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x18e2[0];var _=require(_0x18e2[1]);var util=require(_0x18e2[2]);var logger=require(_0x18e2[4])(_0x18e2[3]);var attributes=require(_0x18e2[5]);module[_0x18e2[6]]= function(_0x6b2ex5,_0x6b2ex6){return _0x6b2ex5[_0x18e2[9]](_0x18e2[7],attributes,{tableName:_0x18e2[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/squareProject/squareProject.rpc.js b/server/api/squareProject/squareProject.rpc.js
new file mode 100644 (file)
index 0000000..33e6fa9
--- /dev/null
@@ -0,0 +1 @@
+var _0x8d23=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74"];_0x8d23[0];var _=require(_0x8d23[1]);var util=require(_0x8d23[2]);var moment=require(_0x8d23[3]);var BPromise=require(_0x8d23[4]);var db=require(_0x8d23[6])[_0x8d23[5]];var utils=require(_0x8d23[7]);var logger=require(_0x8d23[9])(_0x8d23[8]);var jayson=require(_0x8d23[10]);var client=jayson[_0x8d23[12]][_0x8d23[11]]({port:9002});function respondWithRpcPromise(_0x5514xb,_0x5514xc,_0x5514xd){return  new BPromise(function(_0x5514xe,_0x5514xf){return client[_0x8d23[25]](_0x5514xb,_0x5514xd)[_0x8d23[24]](function(_0x5514x11){logger[_0x8d23[17]](_0x8d23[13],_0x5514xc,_0x8d23[16]);logger[_0x8d23[20]](_0x8d23[18],_0x5514xc,_0x8d23[16],JSON[_0x8d23[19]](_0x5514x11));if(_0x5514x11[_0x8d23[14]]){if(_0x5514x11[_0x8d23[14]][_0x8d23[21]]=== 500){logger[_0x8d23[14]](_0x8d23[13],_0x5514xc,_0x5514x11[_0x8d23[14]][_0x8d23[22]]);return _0x5514xf(_0x5514x11[_0x8d23[14]][_0x8d23[22]])};logger[_0x8d23[14]](_0x8d23[13],_0x5514xc,_0x5514x11[_0x8d23[14]][_0x8d23[22]]);return _0x5514xe(_0x5514x11[_0x8d23[14]][_0x8d23[22]])}else {logger[_0x8d23[17]](_0x8d23[13],_0x5514xc,_0x8d23[16]);_0x5514xe(_0x5514x11[_0x8d23[23]][_0x8d23[22]])}})[_0x8d23[15]](function(_0x5514x10){logger[_0x8d23[14]](_0x8d23[13],_0x5514xc,_0x5514x10);_0x5514xf(_0x5514x10)})})}exports[_0x8d23[26]]= function(_0x5514xd){var _0x5514x12=this;return  new Promise(function(_0x5514xe,_0x5514xf){return db[_0x8d23[36]][_0x8d23[35]]({raw:_0x5514xd[_0x8d23[27]]?(_0x5514xd[_0x8d23[27]][_0x8d23[28]]=== undefined)?true:false:true,where:_0x5514xd[_0x8d23[27]]?_0x5514xd[_0x8d23[27]][_0x8d23[29]]|| null:null,attributes:_0x5514xd[_0x8d23[27]]?_0x5514xd[_0x8d23[27]][_0x8d23[30]]|| null:null,include:_0x5514xd[_0x8d23[27]]?(_0x5514xd[_0x8d23[27]][_0x8d23[31]]?_[_0x8d23[34]](_0x5514xd[_0x8d23[27]][_0x8d23[31]],function(_0x5514x13){return {model:db[_0x5514x13[_0x8d23[32]]],as:_0x5514x13[_0x8d23[33]],attributes:_0x5514x13[_0x8d23[30]],include:_0x5514x13[_0x8d23[31]]?_[_0x8d23[34]](_0x5514x13[_0x8d23[31]],function(_0x5514x14){return {model:db[_0x5514x14[_0x8d23[32]]],as:_0x5514x14[_0x8d23[33]],attributes:_0x5514x14[_0x8d23[30]],include:_0x5514x14[_0x8d23[31]]?_[_0x8d23[34]](_0x5514x14[_0x8d23[31]],function(_0x5514x15){return {model:db[_0x5514x15[_0x8d23[32]]],as:_0x5514x15[_0x8d23[33]],attributes:_0x5514x15[_0x8d23[30]]}}):[]}}):[]}}):[]):[]})[_0x8d23[24]](function(_0x5514x11){logger[_0x8d23[17]](_0x8d23[26],_0x5514xd);logger[_0x8d23[20]](_0x8d23[26],_0x5514xd,JSON[_0x8d23[19]](_0x5514x11));_0x5514xe(_0x5514x11)})[_0x8d23[15]](function(_0x5514x10){logger[_0x8d23[14]](_0x8d23[26],_0x5514x10[_0x8d23[22]],_0x5514xd);_0x5514xf(_0x5514x12[_0x8d23[14]](500,_0x5514x10[_0x8d23[22]]))})})}
\ No newline at end of file
diff --git a/server/api/squareRecording/index.js b/server/api/squareRecording/index.js
new file mode 100644 (file)
index 0000000..2afd91b
--- /dev/null
@@ -0,0 +1 @@
+var _0x9af7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x9af7[0];var multer=require(_0x9af7[1]);var util=require(_0x9af7[2]);var path=require(_0x9af7[3]);var express=require(_0x9af7[4]);var router=express.Router();var auth=require(_0x9af7[5]);var config=require(_0x9af7[6]);var controller=require(_0x9af7[7]);router[_0x9af7[11]](_0x9af7[8],auth[_0x9af7[9]](),controller[_0x9af7[10]]);router[_0x9af7[11]](_0x9af7[12],auth[_0x9af7[9]](),controller[_0x9af7[13]]);router[_0x9af7[11]](_0x9af7[14],controller[_0x9af7[15]]);router[_0x9af7[17]](_0x9af7[8],auth[_0x9af7[9]](),controller[_0x9af7[16]]);router[_0x9af7[19]](_0x9af7[12],auth[_0x9af7[9]](),controller[_0x9af7[18]]);router[_0x9af7[21]](_0x9af7[12],auth[_0x9af7[9]](),controller[_0x9af7[20]]);module[_0x9af7[22]]= router
\ No newline at end of file
diff --git a/server/api/squareRecording/squareRecording.attributes.js b/server/api/squareRecording/squareRecording.attributes.js
new file mode 100644 (file)
index 0000000..8e7cca8
--- /dev/null
@@ -0,0 +1 @@
+var _0x46d4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x46d4[0];var Sequelize=require(_0x46d4[1]);module[_0x46d4[2]]= {uniqueid:{type:Sequelize[_0x46d4[3]]},callerid:{type:Sequelize[_0x46d4[3]]},calleridname:{type:Sequelize[_0x46d4[3]]},context:{type:Sequelize[_0x46d4[3]]},extension:{type:Sequelize[_0x46d4[3]]},priority:{type:Sequelize[_0x46d4[3]]},accountcode:{type:Sequelize[_0x46d4[3]]},dnid:{type:Sequelize[_0x46d4[3]]},projectName:{type:Sequelize[_0x46d4[3]]},saveName:{type:Sequelize[_0x46d4[3]]},filename:{type:Sequelize[_0x46d4[3]]},savePath:{type:Sequelize[_0x46d4[3]]}}
\ No newline at end of file
diff --git a/server/api/squareRecording/squareRecording.controller.js b/server/api/squareRecording/squareRecording.controller.js
new file mode 100644 (file)
index 0000000..00402b1
--- /dev/null
@@ -0,0 +1 @@
+var _0x15fc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2E\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x61\x76\x65\x50\x61\x74\x68","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0x15fc[0];var jsonpatch=require(_0x15fc[1]);var rp=require(_0x15fc[2]);var moment=require(_0x15fc[3]);var BPromise=require(_0x15fc[4]);var util=require(_0x15fc[5]);var path=require(_0x15fc[6]);var sox=require(_0x15fc[7]);var ejs=require(_0x15fc[8]);var fs=require(_0x15fc[9]);var _=require(_0x15fc[10]);var squel=require(_0x15fc[11]);var crypto=require(_0x15fc[12]);var jsforce=require(_0x15fc[13]);var toCsv=require(_0x15fc[14]);var qs=require(_0x15fc[15]);var logger=require(_0x15fc[17])(_0x15fc[16]);var utils=require(_0x15fc[18]);var config=require(_0x15fc[19]);var db=require(_0x15fc[21])[_0x15fc[20]];function respondWithStatusCode(_0xeb91x15,_0xeb91x16,_0xeb91x17){_0xeb91x16= _0xeb91x16|| 204;return function(_0xeb91x18){if(_0xeb91x18){logger[_0x15fc[24]](_0x15fc[22],_0xeb91x17,_0xeb91x16,_0x15fc[23]);logger[_0x15fc[26]](_0x15fc[25],_0xeb91x17,_0xeb91x16,_0x15fc[23]);return _0xeb91x15[_0x15fc[27]](_0xeb91x16)};return _0xeb91x15[_0x15fc[29]](304)[_0x15fc[28]]()}}function respondWithResult(_0xeb91x15,_0xeb91x16,_0xeb91x17){_0xeb91x16= _0xeb91x16|| 200;return function(_0xeb91x18){if(_0xeb91x18){logger[_0x15fc[24]](_0x15fc[22],_0xeb91x17,_0xeb91x16,_0x15fc[30]);logger[_0x15fc[26]](_0x15fc[25],_0xeb91x17,_0xeb91x16,_0x15fc[30],JSON[_0x15fc[31]](_0xeb91x18));return _0xeb91x15[_0x15fc[29]](_0xeb91x16)[_0x15fc[32]](_0xeb91x18)};return _0xeb91x15[_0x15fc[29]](304)[_0x15fc[28]]()}}function respondWithFilteredResult(_0xeb91x15,_0xeb91x1b,_0xeb91x17){return function(_0xeb91x18){if(_0xeb91x18){var _0xeb91x1c=_0xeb91x18[_0x15fc[33]],_0xeb91x1d=_0xeb91x1b[_0x15fc[34]],_0xeb91x1e=_0xeb91x1b[_0x15fc[34]]+ _0xeb91x1b[_0x15fc[35]],_0xeb91x16;if(_0xeb91x1e>= _0xeb91x1c){_0xeb91x1e= _0xeb91x1c;_0xeb91x16= 200}else {_0xeb91x16= 206};_0xeb91x15[_0x15fc[29]](_0xeb91x16);logger[_0x15fc[24]](_0x15fc[22],_0xeb91x17,_0xeb91x16,_0x15fc[36]);logger[_0x15fc[26]](_0x15fc[25],_0xeb91x17,_0xeb91x16,_0x15fc[30],JSON[_0x15fc[31]](_0xeb91x18));return _0xeb91x15[_0x15fc[40]](_0x15fc[37],_0xeb91x1d+ _0x15fc[38]+ _0xeb91x1e+ _0x15fc[39]+ _0xeb91x1c)[_0x15fc[32]](_0xeb91x18)};return null}}function patchUpdates(_0xeb91x20){return function(_0xeb91x18){try{jsonpatch[_0x15fc[41]](_0xeb91x18,_0xeb91x20,true)}catch(err){return BPromise[_0x15fc[42]](err)};return _0xeb91x18[_0x15fc[43]]()}}function saveUpdates(_0xeb91x22,_0xeb91x16,_0xeb91x17){return function(_0xeb91x18){if(_0xeb91x18){return _0xeb91x18[_0x15fc[46]](_0xeb91x22)[_0x15fc[45]](function(_0xeb91x23){logger[_0x15fc[24]](_0x15fc[22],_0xeb91x17,_0xeb91x16,_0x15fc[44]);logger[_0x15fc[26]](_0x15fc[25],_0xeb91x17,_0xeb91x16,_0x15fc[44],JSON[_0x15fc[31]](_0xeb91x18));return _0xeb91x23})};return null}}function removeEntity(_0xeb91x15,_0xeb91x16,_0xeb91x17){return function(_0xeb91x18){if(_0xeb91x18){return _0xeb91x18[_0x15fc[48]]()[_0x15fc[45]](function(){logger[_0x15fc[24]](_0x15fc[22],_0xeb91x17,_0xeb91x16,_0x15fc[47]);logger[_0x15fc[26]](_0x15fc[25],_0xeb91x17,_0xeb91x16,_0x15fc[47],JSON[_0x15fc[31]](_0xeb91x18));_0xeb91x15[_0x15fc[29]](204)[_0x15fc[28]]()})}}}function handleEntityNotFound(_0xeb91x15,_0xeb91x16,_0xeb91x17){return function(_0xeb91x18){if(!_0xeb91x18){logger[_0x15fc[50]](_0x15fc[22],_0xeb91x17,404,_0x15fc[49]);_0xeb91x15[_0x15fc[29]](404)[_0x15fc[28]]();return null};return _0xeb91x18}}function handleError(_0xeb91x15,_0xeb91x16,_0xeb91x17){_0xeb91x16= _0xeb91x16|| 500;return function(_0xeb91x27){logger[_0x15fc[50]](_0x15fc[22],_0xeb91x17,_0xeb91x16,JSON[_0x15fc[31]](_0xeb91x27));delete _0xeb91x27[_0x15fc[51]];_0xeb91x15[_0x15fc[29]](_0xeb91x16)[_0x15fc[52]](_0xeb91x27)}}exports[_0x15fc[53]]= function(_0xeb91x28,_0xeb91x15){var _0xeb91x1b={},_0xeb91x29={};_0xeb91x29[_0x15fc[54]]= _[_0x15fc[57]](db[_0x15fc[56]][_0x15fc[55]]);_0xeb91x29[_0x15fc[58]]= _[_0x15fc[57]](_0xeb91x28[_0x15fc[58]]);_0xeb91x29[_0x15fc[59]]= _[_0x15fc[60]](_0xeb91x29[_0x15fc[54]],_0xeb91x29[_0x15fc[58]]);_0xeb91x1b[_0x15fc[61]]= _[_0x15fc[60]](_0xeb91x29[_0x15fc[54]],qs[_0x15fc[62]](_0xeb91x28[_0x15fc[58]][_0x15fc[62]]));_0xeb91x1b[_0x15fc[61]]= (_0xeb91x1b[_0x15fc[61]][_0x15fc[63]])?_0xeb91x1b[_0x15fc[61]]:_0xeb91x29[_0x15fc[54]];if(!_0xeb91x28[_0x15fc[58]][_0x15fc[65]](_0x15fc[64])){_0xeb91x1b[_0x15fc[35]]= qs[_0x15fc[35]](_0xeb91x28[_0x15fc[58]][_0x15fc[35]]);_0xeb91x1b[_0x15fc[34]]= qs[_0x15fc[34]](_0xeb91x28[_0x15fc[58]][_0x15fc[34]])};_0xeb91x1b[_0x15fc[66]]= qs[_0x15fc[67]](_0xeb91x28[_0x15fc[58]][_0x15fc[67]]);_0xeb91x1b[_0x15fc[68]]= qs[_0x15fc[59]](_[_0x15fc[69]](_0xeb91x28[_0x15fc[58]],_0xeb91x29[_0x15fc[59]]));if(_0xeb91x28[_0x15fc[58]][_0x15fc[70]]){_0xeb91x1b[_0x15fc[68]]= _[_0x15fc[73]](_0xeb91x1b[_0x15fc[68]],{$or:_[_0x15fc[72]](_0xeb91x1b[_0x15fc[61]],function(_0xeb91x2a){var _0xeb91x2b={};_0xeb91x2b[_0xeb91x2a]= {$like:_0x15fc[71]+ _0xeb91x28[_0x15fc[58]][_0x15fc[70]]+ _0x15fc[71]};return _0xeb91x2b})})};_0xeb91x1b= _[_0x15fc[73]]({},_0xeb91x1b,_0xeb91x28[_0x15fc[74]]);return db[_0x15fc[56]][_0x15fc[76]](_0xeb91x1b)[_0x15fc[45]](respondWithFilteredResult(_0xeb91x15,_0xeb91x1b,_0x15fc[53]))[_0x15fc[75]](handleError(_0xeb91x15,null,_0x15fc[53]))};exports[_0x15fc[77]]= function(_0xeb91x28,_0xeb91x15){var _0xeb91x1b={raw:true,where:{id:_0xeb91x28[_0x15fc[79]][_0x15fc[78]]}},_0xeb91x29={};_0xeb91x29[_0x15fc[54]]= _[_0x15fc[57]](db[_0x15fc[56]][_0x15fc[55]]);_0xeb91x29[_0x15fc[58]]= _[_0x15fc[57]](_0xeb91x28[_0x15fc[58]]);_0xeb91x29[_0x15fc[59]]= _[_0x15fc[60]](_0xeb91x29[_0x15fc[54]],_0xeb91x29[_0x15fc[58]]);_0xeb91x1b[_0x15fc[61]]= _[_0x15fc[60]](_0xeb91x29[_0x15fc[54]],qs[_0x15fc[62]](_0xeb91x28[_0x15fc[58]][_0x15fc[62]]));_0xeb91x1b[_0x15fc[61]]= (_0xeb91x1b[_0x15fc[61]][_0x15fc[63]])?_0xeb91x1b[_0x15fc[61]]:_0xeb91x29[_0x15fc[54]];_0xeb91x1b= _[_0x15fc[73]]({},_0xeb91x1b,_0xeb91x28[_0x15fc[74]]);return db[_0x15fc[56]][_0x15fc[80]](_0xeb91x1b)[_0x15fc[45]](handleEntityNotFound(_0xeb91x15,null,_0x15fc[77]))[_0x15fc[45]](respondWithResult(_0xeb91x15,null,_0x15fc[77]))[_0x15fc[75]](handleError(_0xeb91x15,null,_0x15fc[77]))};exports[_0x15fc[81]]= function(_0xeb91x28,_0xeb91x15){return db[_0x15fc[56]][_0x15fc[81]](_0xeb91x28[_0x15fc[82]],{})[_0x15fc[45]](respondWithResult(_0xeb91x15,201,_0x15fc[81]))[_0x15fc[75]](handleError(_0xeb91x15,null,_0x15fc[81]))};exports[_0x15fc[46]]= function(_0xeb91x28,_0xeb91x15){if(_0xeb91x28[_0x15fc[82]][_0x15fc[78]]){delete _0xeb91x28[_0x15fc[82]][_0x15fc[78]]};return db[_0x15fc[56]][_0x15fc[80]]({where:{id:_0xeb91x28[_0x15fc[79]][_0x15fc[78]]}})[_0x15fc[45]](handleEntityNotFound(_0xeb91x15,null,_0x15fc[46]))[_0x15fc[45]](saveUpdates(_0xeb91x28[_0x15fc[82]],null,_0x15fc[46]))[_0x15fc[45]](respondWithResult(_0xeb91x15,null,_0x15fc[46]))[_0x15fc[75]](handleError(_0xeb91x15,null,_0x15fc[46]))};exports[_0x15fc[48]]= function(_0xeb91x28,_0xeb91x15){return db[_0x15fc[56]][_0x15fc[80]]({where:{id:_0xeb91x28[_0x15fc[79]][_0x15fc[78]]}})[_0x15fc[45]](handleEntityNotFound(_0xeb91x15,null,_0x15fc[48]))[_0x15fc[45]](removeEntity(_0xeb91x15,null,_0x15fc[48]))[_0x15fc[75]](handleError(_0xeb91x15,null,_0x15fc[48]))};exports[_0x15fc[83]]= function(_0xeb91x28,_0xeb91x15,_0xeb91x2c){return db[_0x15fc[56]][_0x15fc[80]]({where:{id:_0xeb91x28[_0x15fc[79]][_0x15fc[78]]},attributes:[_0x15fc[78],_0x15fc[86]],raw:true})[_0x15fc[45]](handleEntityNotFound(_0xeb91x15,null,_0x15fc[83]))[_0x15fc[45]](function(_0xeb91x18){if(_0xeb91x18){logger[_0x15fc[24]](_0x15fc[85],_0x15fc[83],_0x15fc[30]);logger[_0x15fc[26]](_0x15fc[22],_0x15fc[83],_0x15fc[30],JSON[_0x15fc[31]](_0xeb91x18));if(!fs[_0x15fc[87]](_0xeb91x18[_0x15fc[86]])){throw  new db[_0x15fc[89]].ValidationError(_0x15fc[88])};return _0xeb91x15[_0x15fc[83]](_0xeb91x18[_0x15fc[86]])}})[_0x15fc[75]](handleError(_0xeb91x15,null,_0x15fc[84]))}
\ No newline at end of file
diff --git a/server/api/squareRecording/squareRecording.model.js b/server/api/squareRecording/squareRecording.model.js
new file mode 100644 (file)
index 0000000..862d5a9
--- /dev/null
@@ -0,0 +1 @@
+var _0x89f6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x73\x71\x75\x61\x72\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0x89f6[0];var _=require(_0x89f6[1]);var util=require(_0x89f6[2]);var logger=require(_0x89f6[4])(_0x89f6[3]);var attributes=require(_0x89f6[5]);module[_0x89f6[6]]= function(_0x9933x5,_0x9933x6){return _0x9933x5[_0x89f6[9]](_0x89f6[7],attributes,{tableName:_0x89f6[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/squareRecording/squareRecording.rpc.js b/server/api/squareRecording/squareRecording.rpc.js
new file mode 100644 (file)
index 0000000..9e668c3
--- /dev/null
@@ -0,0 +1 @@
+var _0xc97a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67"];_0xc97a[0];var _=require(_0xc97a[1]);var util=require(_0xc97a[2]);var moment=require(_0xc97a[3]);var BPromise=require(_0xc97a[4]);var db=require(_0xc97a[6])[_0xc97a[5]];var utils=require(_0xc97a[7]);var logger=require(_0xc97a[9])(_0xc97a[8]);var jayson=require(_0xc97a[10]);var client=jayson[_0xc97a[12]][_0xc97a[11]]({port:9002});function respondWithRpcPromise(_0x61e1xb,_0x61e1xc,_0x61e1xd){return  new BPromise(function(_0x61e1xe,_0x61e1xf){return client[_0xc97a[25]](_0x61e1xb,_0x61e1xd)[_0xc97a[24]](function(_0x61e1x11){logger[_0xc97a[17]](_0xc97a[13],_0x61e1xc,_0xc97a[16]);logger[_0xc97a[20]](_0xc97a[18],_0x61e1xc,_0xc97a[16],JSON[_0xc97a[19]](_0x61e1x11));if(_0x61e1x11[_0xc97a[14]]){if(_0x61e1x11[_0xc97a[14]][_0xc97a[21]]=== 500){logger[_0xc97a[14]](_0xc97a[13],_0x61e1xc,_0x61e1x11[_0xc97a[14]][_0xc97a[22]]);return _0x61e1xf(_0x61e1x11[_0xc97a[14]][_0xc97a[22]])};logger[_0xc97a[14]](_0xc97a[13],_0x61e1xc,_0x61e1x11[_0xc97a[14]][_0xc97a[22]]);return _0x61e1xe(_0x61e1x11[_0xc97a[14]][_0xc97a[22]])}else {logger[_0xc97a[17]](_0xc97a[13],_0x61e1xc,_0xc97a[16]);_0x61e1xe(_0x61e1x11[_0xc97a[23]][_0xc97a[22]])}})[_0xc97a[15]](function(_0x61e1x10){logger[_0xc97a[14]](_0xc97a[13],_0x61e1xc,_0x61e1x10);_0x61e1xf(_0x61e1x10)})})}exports[_0xc97a[26]]= function(_0x61e1xd){var _0x61e1x12=this;return  new Promise(function(_0x61e1xe,_0x61e1xf){return db[_0xc97a[31]][_0xc97a[30]](_0x61e1xd[_0xc97a[27]],{raw:_0x61e1xd[_0xc97a[28]]?(_0x61e1xd[_0xc97a[28]][_0xc97a[29]]=== undefined)?true:false:true})[_0xc97a[24]](function(_0x61e1x11){logger[_0xc97a[17]](_0xc97a[26],_0x61e1xd);logger[_0xc97a[20]](_0xc97a[26],_0x61e1xd,JSON[_0xc97a[19]](_0x61e1x11));_0x61e1xe(_0x61e1x11)})[_0xc97a[15]](function(_0x61e1x10){logger[_0xc97a[14]](_0xc97a[26],_0x61e1x10[_0xc97a[22]],_0x61e1xd);_0x61e1xf(_0x61e1x12[_0xc97a[14]](500,_0x61e1x10[_0xc97a[22]]))})})}
\ No newline at end of file
diff --git a/server/api/squareReport/index.js b/server/api/squareReport/index.js
new file mode 100644 (file)
index 0000000..cd4655b
--- /dev/null
@@ -0,0 +1 @@
+var _0x3843=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3843[0];var multer=require(_0x3843[1]);var util=require(_0x3843[2]);var path=require(_0x3843[3]);var express=require(_0x3843[4]);var router=express.Router();var auth=require(_0x3843[5]);var config=require(_0x3843[6]);var controller=require(_0x3843[7]);router[_0x3843[11]](_0x3843[8],auth[_0x3843[9]](),controller[_0x3843[10]]);router[_0x3843[11]](_0x3843[12],auth[_0x3843[9]](),controller[_0x3843[13]]);router[_0x3843[11]](_0x3843[14],auth[_0x3843[9]](),controller[_0x3843[15]]);router[_0x3843[17]](_0x3843[8],auth[_0x3843[9]](),controller[_0x3843[16]]);router[_0x3843[19]](_0x3843[14],auth[_0x3843[9]](),controller[_0x3843[18]]);router[_0x3843[21]](_0x3843[14],auth[_0x3843[9]](),controller[_0x3843[20]]);module[_0x3843[22]]= router
\ No newline at end of file
diff --git a/server/api/squareReport/squareReport.attributes.js b/server/api/squareReport/squareReport.attributes.js
new file mode 100644 (file)
index 0000000..b3a4cd0
--- /dev/null
@@ -0,0 +1 @@
+var _0xf2e5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45"];_0xf2e5[0];var Sequelize=require(_0xf2e5[1]);module[_0xf2e5[2]]= {network:{type:Sequelize[_0xf2e5[3]]},network_script:{type:Sequelize[_0xf2e5[3]]},request:{type:Sequelize[_0xf2e5[3]]},channel:{type:Sequelize[_0xf2e5[3]]},language:{type:Sequelize[_0xf2e5[3]]},type:{type:Sequelize[_0xf2e5[3]]},uniqueid:{type:Sequelize[_0xf2e5[3]]},version:{type:Sequelize[_0xf2e5[3]]},callerid:{type:Sequelize[_0xf2e5[3]]},calleridname:{type:Sequelize[_0xf2e5[3]]},callingpres:{type:Sequelize[_0xf2e5[3]]},callingani2:{type:Sequelize[_0xf2e5[3]]},callington:{type:Sequelize[_0xf2e5[3]]},callingtns:{type:Sequelize[_0xf2e5[3]]},dnid:{type:Sequelize[_0xf2e5[3]]},rdnis:{type:Sequelize[_0xf2e5[3]]},context:{type:Sequelize[_0xf2e5[3]]},extension:{type:Sequelize[_0xf2e5[3]]},priority:{type:Sequelize[_0xf2e5[3]]},enhanced:{type:Sequelize[_0xf2e5[3]]},accountcode:{type:Sequelize[_0xf2e5[3]]},threadid:{type:Sequelize[_0xf2e5[3]]},project_name:{type:Sequelize[_0xf2e5[3]]},joinAt:{type:Sequelize[_0xf2e5[4]]},leaveAt:{type:Sequelize[_0xf2e5[4]]}}
\ No newline at end of file
diff --git a/server/api/squareReport/squareReport.controller.js b/server/api/squareReport/squareReport.controller.js
new file mode 100644 (file)
index 0000000..4a01087
--- /dev/null
@@ -0,0 +1 @@
+var _0xd712=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xd712[0];var jsonpatch=require(_0xd712[1]);var rp=require(_0xd712[2]);var moment=require(_0xd712[3]);var BPromise=require(_0xd712[4]);var util=require(_0xd712[5]);var path=require(_0xd712[6]);var sox=require(_0xd712[7]);var ejs=require(_0xd712[8]);var fs=require(_0xd712[9]);var _=require(_0xd712[10]);var squel=require(_0xd712[11]);var crypto=require(_0xd712[12]);var jsforce=require(_0xd712[13]);var toCsv=require(_0xd712[14]);var qs=require(_0xd712[15]);var logger=require(_0xd712[17])(_0xd712[16]);var utils=require(_0xd712[18]);var config=require(_0xd712[19]);var db=require(_0xd712[21])[_0xd712[20]];function respondWithStatusCode(_0xbe1ax15,_0xbe1ax16,_0xbe1ax17){_0xbe1ax16= _0xbe1ax16|| 204;return function(_0xbe1ax18){if(_0xbe1ax18){logger[_0xd712[24]](_0xd712[22],_0xbe1ax17,_0xbe1ax16,_0xd712[23]);logger[_0xd712[26]](_0xd712[25],_0xbe1ax17,_0xbe1ax16,_0xd712[23]);return _0xbe1ax15[_0xd712[27]](_0xbe1ax16)};return _0xbe1ax15[_0xd712[29]](304)[_0xd712[28]]()}}function respondWithResult(_0xbe1ax15,_0xbe1ax16,_0xbe1ax17){_0xbe1ax16= _0xbe1ax16|| 200;return function(_0xbe1ax18){if(_0xbe1ax18){logger[_0xd712[24]](_0xd712[22],_0xbe1ax17,_0xbe1ax16,_0xd712[30]);logger[_0xd712[26]](_0xd712[25],_0xbe1ax17,_0xbe1ax16,_0xd712[30],JSON[_0xd712[31]](_0xbe1ax18));return _0xbe1ax15[_0xd712[29]](_0xbe1ax16)[_0xd712[32]](_0xbe1ax18)};return _0xbe1ax15[_0xd712[29]](304)[_0xd712[28]]()}}function respondWithFilteredResult(_0xbe1ax15,_0xbe1ax1b,_0xbe1ax17){return function(_0xbe1ax18){if(_0xbe1ax18){var _0xbe1ax1c=_0xbe1ax18[_0xd712[33]],_0xbe1ax1d=_0xbe1ax1b[_0xd712[34]],_0xbe1ax1e=_0xbe1ax1b[_0xd712[34]]+ _0xbe1ax1b[_0xd712[35]],_0xbe1ax16;if(_0xbe1ax1e>= _0xbe1ax1c){_0xbe1ax1e= _0xbe1ax1c;_0xbe1ax16= 200}else {_0xbe1ax16= 206};_0xbe1ax15[_0xd712[29]](_0xbe1ax16);logger[_0xd712[24]](_0xd712[22],_0xbe1ax17,_0xbe1ax16,_0xd712[36]);logger[_0xd712[26]](_0xd712[25],_0xbe1ax17,_0xbe1ax16,_0xd712[30],JSON[_0xd712[31]](_0xbe1ax18));return _0xbe1ax15[_0xd712[40]](_0xd712[37],_0xbe1ax1d+ _0xd712[38]+ _0xbe1ax1e+ _0xd712[39]+ _0xbe1ax1c)[_0xd712[32]](_0xbe1ax18)};return null}}function patchUpdates(_0xbe1ax20){return function(_0xbe1ax18){try{jsonpatch[_0xd712[41]](_0xbe1ax18,_0xbe1ax20,true)}catch(err){return BPromise[_0xd712[42]](err)};return _0xbe1ax18[_0xd712[43]]()}}function saveUpdates(_0xbe1ax22,_0xbe1ax16,_0xbe1ax17){return function(_0xbe1ax18){if(_0xbe1ax18){return _0xbe1ax18[_0xd712[46]](_0xbe1ax22)[_0xd712[45]](function(_0xbe1ax23){logger[_0xd712[24]](_0xd712[22],_0xbe1ax17,_0xbe1ax16,_0xd712[44]);logger[_0xd712[26]](_0xd712[25],_0xbe1ax17,_0xbe1ax16,_0xd712[44],JSON[_0xd712[31]](_0xbe1ax18));return _0xbe1ax23})};return null}}function removeEntity(_0xbe1ax15,_0xbe1ax16,_0xbe1ax17){return function(_0xbe1ax18){if(_0xbe1ax18){return _0xbe1ax18[_0xd712[48]]()[_0xd712[45]](function(){logger[_0xd712[24]](_0xd712[22],_0xbe1ax17,_0xbe1ax16,_0xd712[47]);logger[_0xd712[26]](_0xd712[25],_0xbe1ax17,_0xbe1ax16,_0xd712[47],JSON[_0xd712[31]](_0xbe1ax18));_0xbe1ax15[_0xd712[29]](204)[_0xd712[28]]()})}}}function handleEntityNotFound(_0xbe1ax15,_0xbe1ax16,_0xbe1ax17){return function(_0xbe1ax18){if(!_0xbe1ax18){logger[_0xd712[50]](_0xd712[22],_0xbe1ax17,404,_0xd712[49]);_0xbe1ax15[_0xd712[29]](404)[_0xd712[28]]();return null};return _0xbe1ax18}}function handleError(_0xbe1ax15,_0xbe1ax16,_0xbe1ax17){_0xbe1ax16= _0xbe1ax16|| 500;return function(_0xbe1ax27){logger[_0xd712[50]](_0xd712[22],_0xbe1ax17,_0xbe1ax16,JSON[_0xd712[31]](_0xbe1ax27));delete _0xbe1ax27[_0xd712[51]];_0xbe1ax15[_0xd712[29]](_0xbe1ax16)[_0xd712[52]](_0xbe1ax27)}}exports[_0xd712[53]]= function(_0xbe1ax28,_0xbe1ax15){var _0xbe1ax1b={},_0xbe1ax29={};_0xbe1ax29[_0xd712[54]]= _[_0xd712[57]](db[_0xd712[56]][_0xd712[55]]);_0xbe1ax29[_0xd712[58]]= _[_0xd712[57]](_0xbe1ax28[_0xd712[58]]);_0xbe1ax29[_0xd712[59]]= _[_0xd712[60]](_0xbe1ax29[_0xd712[54]],_0xbe1ax29[_0xd712[58]]);_0xbe1ax1b[_0xd712[61]]= _[_0xd712[60]](_0xbe1ax29[_0xd712[54]],qs[_0xd712[62]](_0xbe1ax28[_0xd712[58]][_0xd712[62]]));_0xbe1ax1b[_0xd712[61]]= (_0xbe1ax1b[_0xd712[61]][_0xd712[63]])?_0xbe1ax1b[_0xd712[61]]:_0xbe1ax29[_0xd712[54]];if(!_0xbe1ax28[_0xd712[58]][_0xd712[65]](_0xd712[64])){_0xbe1ax1b[_0xd712[35]]= qs[_0xd712[35]](_0xbe1ax28[_0xd712[58]][_0xd712[35]]);_0xbe1ax1b[_0xd712[34]]= qs[_0xd712[34]](_0xbe1ax28[_0xd712[58]][_0xd712[34]])};_0xbe1ax1b[_0xd712[66]]= qs[_0xd712[67]](_0xbe1ax28[_0xd712[58]][_0xd712[67]]);_0xbe1ax1b[_0xd712[68]]= qs[_0xd712[59]](_[_0xd712[69]](_0xbe1ax28[_0xd712[58]],_0xbe1ax29[_0xd712[59]]));if(_0xbe1ax28[_0xd712[58]][_0xd712[70]]){_0xbe1ax1b[_0xd712[68]]= _[_0xd712[73]](_0xbe1ax1b[_0xd712[68]],{$or:_[_0xd712[72]](_0xbe1ax1b[_0xd712[61]],function(_0xbe1ax2a){var _0xbe1ax2b={};_0xbe1ax2b[_0xbe1ax2a]= {$like:_0xd712[71]+ _0xbe1ax28[_0xd712[58]][_0xd712[70]]+ _0xd712[71]};return _0xbe1ax2b})})};_0xbe1ax1b= _[_0xd712[73]]({},_0xbe1ax1b,_0xbe1ax28[_0xd712[74]]);return db[_0xd712[56]][_0xd712[76]](_0xbe1ax1b)[_0xd712[45]](respondWithFilteredResult(_0xbe1ax15,_0xbe1ax1b,_0xd712[53]))[_0xd712[75]](handleError(_0xbe1ax15,null,_0xd712[53]))};exports[_0xd712[77]]= function(_0xbe1ax28,_0xbe1ax15){var _0xbe1ax1b={raw:true,where:{id:_0xbe1ax28[_0xd712[79]][_0xd712[78]]}},_0xbe1ax29={};_0xbe1ax29[_0xd712[54]]= _[_0xd712[57]](db[_0xd712[56]][_0xd712[55]]);_0xbe1ax29[_0xd712[58]]= _[_0xd712[57]](_0xbe1ax28[_0xd712[58]]);_0xbe1ax29[_0xd712[59]]= _[_0xd712[60]](_0xbe1ax29[_0xd712[54]],_0xbe1ax29[_0xd712[58]]);_0xbe1ax1b[_0xd712[61]]= _[_0xd712[60]](_0xbe1ax29[_0xd712[54]],qs[_0xd712[62]](_0xbe1ax28[_0xd712[58]][_0xd712[62]]));_0xbe1ax1b[_0xd712[61]]= (_0xbe1ax1b[_0xd712[61]][_0xd712[63]])?_0xbe1ax1b[_0xd712[61]]:_0xbe1ax29[_0xd712[54]];_0xbe1ax1b= _[_0xd712[73]]({},_0xbe1ax1b,_0xbe1ax28[_0xd712[74]]);return db[_0xd712[56]][_0xd712[80]](_0xbe1ax1b)[_0xd712[45]](handleEntityNotFound(_0xbe1ax15,null,_0xd712[77]))[_0xd712[45]](respondWithResult(_0xbe1ax15,null,_0xd712[77]))[_0xd712[75]](handleError(_0xbe1ax15,null,_0xd712[77]))};exports[_0xd712[81]]= function(_0xbe1ax28,_0xbe1ax15){return db[_0xd712[56]][_0xd712[81]](_0xbe1ax28[_0xd712[82]],{})[_0xd712[45]](respondWithResult(_0xbe1ax15,201,_0xd712[81]))[_0xd712[75]](handleError(_0xbe1ax15,null,_0xd712[81]))};exports[_0xd712[46]]= function(_0xbe1ax28,_0xbe1ax15){if(_0xbe1ax28[_0xd712[82]][_0xd712[78]]){delete _0xbe1ax28[_0xd712[82]][_0xd712[78]]};return db[_0xd712[56]][_0xd712[80]]({where:{id:_0xbe1ax28[_0xd712[79]][_0xd712[78]]}})[_0xd712[45]](handleEntityNotFound(_0xbe1ax15,null,_0xd712[46]))[_0xd712[45]](saveUpdates(_0xbe1ax28[_0xd712[82]],null,_0xd712[46]))[_0xd712[45]](respondWithResult(_0xbe1ax15,null,_0xd712[46]))[_0xd712[75]](handleError(_0xbe1ax15,null,_0xd712[46]))};exports[_0xd712[48]]= function(_0xbe1ax28,_0xbe1ax15){return db[_0xd712[56]][_0xd712[80]]({where:{id:_0xbe1ax28[_0xd712[79]][_0xd712[78]]}})[_0xd712[45]](handleEntityNotFound(_0xbe1ax15,null,_0xd712[48]))[_0xd712[45]](removeEntity(_0xbe1ax15,null,_0xd712[48]))[_0xd712[75]](handleError(_0xbe1ax15,null,_0xd712[48]))};exports[_0xd712[83]]= function(_0xbe1ax28,_0xbe1ax15){return db[_0xd712[56]][_0xd712[83]]()[_0xd712[45]](respondWithResult(_0xbe1ax15,null,_0xd712[83]))[_0xd712[75]](handleError(_0xbe1ax15,null,_0xd712[83]))}
\ No newline at end of file
diff --git a/server/api/squareReport/squareReport.model.js b/server/api/squareReport/squareReport.model.js
new file mode 100644 (file)
index 0000000..6732104
--- /dev/null
@@ -0,0 +1 @@
+var _0x44ca=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65","\x64\x65\x66\x69\x6E\x65"];_0x44ca[0];var _=require(_0x44ca[1]);var util=require(_0x44ca[2]);var logger=require(_0x44ca[4])(_0x44ca[3]);var attributes=require(_0x44ca[5]);module[_0x44ca[6]]= function(_0xaa88x5,_0xaa88x6){return _0xaa88x5[_0x44ca[9]](_0x44ca[7],attributes,{tableName:_0x44ca[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/squareReport/squareReport.rpc.js b/server/api/squareReport/squareReport.rpc.js
new file mode 100644 (file)
index 0000000..1c5b699
--- /dev/null
@@ -0,0 +1 @@
+var _0x94a8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x55\x70\x64\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65"];_0x94a8[0];var _=require(_0x94a8[1]);var util=require(_0x94a8[2]);var moment=require(_0x94a8[3]);var BPromise=require(_0x94a8[4]);var db=require(_0x94a8[6])[_0x94a8[5]];var utils=require(_0x94a8[7]);var logger=require(_0x94a8[9])(_0x94a8[8]);var jayson=require(_0x94a8[10]);var client=jayson[_0x94a8[12]][_0x94a8[11]]({port:9002});function respondWithRpcPromise(_0xc8bexb,_0xc8bexc,_0xc8bexd){return  new BPromise(function(_0xc8bexe,_0xc8bexf){return client[_0x94a8[25]](_0xc8bexb,_0xc8bexd)[_0x94a8[24]](function(_0xc8bex11){logger[_0x94a8[17]](_0x94a8[13],_0xc8bexc,_0x94a8[16]);logger[_0x94a8[20]](_0x94a8[18],_0xc8bexc,_0x94a8[16],JSON[_0x94a8[19]](_0xc8bex11));if(_0xc8bex11[_0x94a8[14]]){if(_0xc8bex11[_0x94a8[14]][_0x94a8[21]]=== 500){logger[_0x94a8[14]](_0x94a8[13],_0xc8bexc,_0xc8bex11[_0x94a8[14]][_0x94a8[22]]);return _0xc8bexf(_0xc8bex11[_0x94a8[14]][_0x94a8[22]])};logger[_0x94a8[14]](_0x94a8[13],_0xc8bexc,_0xc8bex11[_0x94a8[14]][_0x94a8[22]]);return _0xc8bexe(_0xc8bex11[_0x94a8[14]][_0x94a8[22]])}else {logger[_0x94a8[17]](_0x94a8[13],_0xc8bexc,_0x94a8[16]);_0xc8bexe(_0xc8bex11[_0x94a8[23]][_0x94a8[22]])}})[_0x94a8[15]](function(_0xc8bex10){logger[_0x94a8[14]](_0x94a8[13],_0xc8bexc,_0xc8bex10);_0xc8bexf(_0xc8bex10)})})}exports[_0x94a8[26]]= function(_0xc8bexd){var _0xc8bex12=this;return  new Promise(function(_0xc8bexe,_0xc8bexf){return db[_0x94a8[31]][_0x94a8[30]](_0xc8bexd[_0x94a8[27]],{raw:_0xc8bexd[_0x94a8[28]]?(_0xc8bexd[_0x94a8[28]][_0x94a8[29]]=== undefined)?true:false:true})[_0x94a8[24]](function(_0xc8bex11){logger[_0x94a8[17]](_0x94a8[26],_0xc8bexd);logger[_0x94a8[20]](_0x94a8[26],_0xc8bexd,JSON[_0x94a8[19]](_0xc8bex11));_0xc8bexe(_0xc8bex11)})[_0x94a8[15]](function(_0xc8bex10){logger[_0x94a8[14]](_0x94a8[26],_0xc8bex10[_0x94a8[22]],_0xc8bexd);_0xc8bexf(_0xc8bex12[_0x94a8[14]](500,_0xc8bex10[_0x94a8[22]]))})})};exports[_0x94a8[32]]= function(_0xc8bexd){var _0xc8bex12=this;return  new Promise(function(_0xc8bexe,_0xc8bexf){return db[_0x94a8[31]][_0x94a8[36]](_0xc8bexd[_0x94a8[27]],{raw:_0xc8bexd[_0x94a8[28]]?(_0xc8bexd[_0x94a8[28]][_0x94a8[29]]=== undefined)?true:false:true,individualHooks:true,where:_0xc8bexd[_0x94a8[28]]?_0xc8bexd[_0x94a8[28]][_0x94a8[33]]|| null:null,attributes:_0xc8bexd[_0x94a8[28]]?_0xc8bexd[_0x94a8[28]][_0x94a8[34]]|| null:null,limit:_0xc8bexd[_0x94a8[28]]?_0xc8bexd[_0x94a8[28]][_0x94a8[35]]|| null:null})[_0x94a8[24]](function(_0xc8bex11){logger[_0x94a8[17]](_0x94a8[32],_0xc8bexd);logger[_0x94a8[20]](_0x94a8[32],_0xc8bexd,JSON[_0x94a8[19]](_0xc8bex11));_0xc8bexe(_0xc8bex11)})[_0x94a8[15]](function(_0xc8bex10){logger[_0x94a8[14]](_0x94a8[32],_0xc8bex10[_0x94a8[22]],_0xc8bexd);_0xc8bexf(_0xc8bex12[_0x94a8[14]](500,_0xc8bex10[_0x94a8[22]]))})})}
\ No newline at end of file
diff --git a/server/api/squareReportDetail/index.js b/server/api/squareReportDetail/index.js
new file mode 100644 (file)
index 0000000..185d578
--- /dev/null
@@ -0,0 +1 @@
+var _0xcaeb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xcaeb[0];var multer=require(_0xcaeb[1]);var util=require(_0xcaeb[2]);var path=require(_0xcaeb[3]);var express=require(_0xcaeb[4]);var router=express.Router();var auth=require(_0xcaeb[5]);var config=require(_0xcaeb[6]);var controller=require(_0xcaeb[7]);router[_0xcaeb[11]](_0xcaeb[8],auth[_0xcaeb[9]](),controller[_0xcaeb[10]]);router[_0xcaeb[11]](_0xcaeb[12],auth[_0xcaeb[9]](),controller[_0xcaeb[13]]);router[_0xcaeb[11]](_0xcaeb[14],auth[_0xcaeb[9]](),controller[_0xcaeb[15]]);router[_0xcaeb[17]](_0xcaeb[8],auth[_0xcaeb[9]](),controller[_0xcaeb[16]]);router[_0xcaeb[19]](_0xcaeb[14],auth[_0xcaeb[9]](),controller[_0xcaeb[18]]);router[_0xcaeb[21]](_0xcaeb[14],auth[_0xcaeb[9]](),controller[_0xcaeb[20]]);module[_0xcaeb[22]]= router
\ No newline at end of file
diff --git a/server/api/squareReportDetail/squareReportDetail.attributes.js b/server/api/squareReportDetail/squareReportDetail.attributes.js
new file mode 100644 (file)
index 0000000..a7d4c29
--- /dev/null
@@ -0,0 +1 @@
+var _0xc471=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0xc471[0];var Sequelize=require(_0xc471[1]);module[_0xc471[2]]= {uniqueid:{type:Sequelize[_0xc471[3]]},node:{type:Sequelize[_0xc471[3]]},application:{type:Sequelize[_0xc471[3]]},data:{type:Sequelize[_0xc471[4]]},project_name:{type:Sequelize[_0xc471[3]]},callerid:{type:Sequelize[_0xc471[3]]}}
\ No newline at end of file
diff --git a/server/api/squareReportDetail/squareReportDetail.controller.js b/server/api/squareReportDetail/squareReportDetail.controller.js
new file mode 100644 (file)
index 0000000..aafe563
--- /dev/null
@@ -0,0 +1 @@
+var _0x8967=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x8967[0];var jsonpatch=require(_0x8967[1]);var rp=require(_0x8967[2]);var moment=require(_0x8967[3]);var BPromise=require(_0x8967[4]);var util=require(_0x8967[5]);var path=require(_0x8967[6]);var sox=require(_0x8967[7]);var ejs=require(_0x8967[8]);var fs=require(_0x8967[9]);var _=require(_0x8967[10]);var squel=require(_0x8967[11]);var crypto=require(_0x8967[12]);var jsforce=require(_0x8967[13]);var toCsv=require(_0x8967[14]);var qs=require(_0x8967[15]);var logger=require(_0x8967[17])(_0x8967[16]);var utils=require(_0x8967[18]);var config=require(_0x8967[19]);var db=require(_0x8967[21])[_0x8967[20]];function respondWithStatusCode(_0xd3a8x15,_0xd3a8x16,_0xd3a8x17){_0xd3a8x16= _0xd3a8x16|| 204;return function(_0xd3a8x18){if(_0xd3a8x18){logger[_0x8967[24]](_0x8967[22],_0xd3a8x17,_0xd3a8x16,_0x8967[23]);logger[_0x8967[26]](_0x8967[25],_0xd3a8x17,_0xd3a8x16,_0x8967[23]);return _0xd3a8x15[_0x8967[27]](_0xd3a8x16)};return _0xd3a8x15[_0x8967[29]](304)[_0x8967[28]]()}}function respondWithResult(_0xd3a8x15,_0xd3a8x16,_0xd3a8x17){_0xd3a8x16= _0xd3a8x16|| 200;return function(_0xd3a8x18){if(_0xd3a8x18){logger[_0x8967[24]](_0x8967[22],_0xd3a8x17,_0xd3a8x16,_0x8967[30]);logger[_0x8967[26]](_0x8967[25],_0xd3a8x17,_0xd3a8x16,_0x8967[30],JSON[_0x8967[31]](_0xd3a8x18));return _0xd3a8x15[_0x8967[29]](_0xd3a8x16)[_0x8967[32]](_0xd3a8x18)};return _0xd3a8x15[_0x8967[29]](304)[_0x8967[28]]()}}function respondWithFilteredResult(_0xd3a8x15,_0xd3a8x1b,_0xd3a8x17){return function(_0xd3a8x18){if(_0xd3a8x18){var _0xd3a8x1c=_0xd3a8x18[_0x8967[33]],_0xd3a8x1d=_0xd3a8x1b[_0x8967[34]],_0xd3a8x1e=_0xd3a8x1b[_0x8967[34]]+ _0xd3a8x1b[_0x8967[35]],_0xd3a8x16;if(_0xd3a8x1e>= _0xd3a8x1c){_0xd3a8x1e= _0xd3a8x1c;_0xd3a8x16= 200}else {_0xd3a8x16= 206};_0xd3a8x15[_0x8967[29]](_0xd3a8x16);logger[_0x8967[24]](_0x8967[22],_0xd3a8x17,_0xd3a8x16,_0x8967[36]);logger[_0x8967[26]](_0x8967[25],_0xd3a8x17,_0xd3a8x16,_0x8967[30],JSON[_0x8967[31]](_0xd3a8x18));return _0xd3a8x15[_0x8967[40]](_0x8967[37],_0xd3a8x1d+ _0x8967[38]+ _0xd3a8x1e+ _0x8967[39]+ _0xd3a8x1c)[_0x8967[32]](_0xd3a8x18)};return null}}function patchUpdates(_0xd3a8x20){return function(_0xd3a8x18){try{jsonpatch[_0x8967[41]](_0xd3a8x18,_0xd3a8x20,true)}catch(err){return BPromise[_0x8967[42]](err)};return _0xd3a8x18[_0x8967[43]]()}}function saveUpdates(_0xd3a8x22,_0xd3a8x16,_0xd3a8x17){return function(_0xd3a8x18){if(_0xd3a8x18){return _0xd3a8x18[_0x8967[46]](_0xd3a8x22)[_0x8967[45]](function(_0xd3a8x23){logger[_0x8967[24]](_0x8967[22],_0xd3a8x17,_0xd3a8x16,_0x8967[44]);logger[_0x8967[26]](_0x8967[25],_0xd3a8x17,_0xd3a8x16,_0x8967[44],JSON[_0x8967[31]](_0xd3a8x18));return _0xd3a8x23})};return null}}function removeEntity(_0xd3a8x15,_0xd3a8x16,_0xd3a8x17){return function(_0xd3a8x18){if(_0xd3a8x18){return _0xd3a8x18[_0x8967[48]]()[_0x8967[45]](function(){logger[_0x8967[24]](_0x8967[22],_0xd3a8x17,_0xd3a8x16,_0x8967[47]);logger[_0x8967[26]](_0x8967[25],_0xd3a8x17,_0xd3a8x16,_0x8967[47],JSON[_0x8967[31]](_0xd3a8x18));_0xd3a8x15[_0x8967[29]](204)[_0x8967[28]]()})}}}function handleEntityNotFound(_0xd3a8x15,_0xd3a8x16,_0xd3a8x17){return function(_0xd3a8x18){if(!_0xd3a8x18){logger[_0x8967[50]](_0x8967[22],_0xd3a8x17,404,_0x8967[49]);_0xd3a8x15[_0x8967[29]](404)[_0x8967[28]]();return null};return _0xd3a8x18}}function handleError(_0xd3a8x15,_0xd3a8x16,_0xd3a8x17){_0xd3a8x16= _0xd3a8x16|| 500;return function(_0xd3a8x27){logger[_0x8967[50]](_0x8967[22],_0xd3a8x17,_0xd3a8x16,JSON[_0x8967[31]](_0xd3a8x27));delete _0xd3a8x27[_0x8967[51]];_0xd3a8x15[_0x8967[29]](_0xd3a8x16)[_0x8967[52]](_0xd3a8x27)}}exports[_0x8967[53]]= function(_0xd3a8x28,_0xd3a8x15){var _0xd3a8x1b={},_0xd3a8x29={};_0xd3a8x29[_0x8967[54]]= _[_0x8967[57]](db[_0x8967[56]][_0x8967[55]]);_0xd3a8x29[_0x8967[58]]= _[_0x8967[57]](_0xd3a8x28[_0x8967[58]]);_0xd3a8x29[_0x8967[59]]= _[_0x8967[60]](_0xd3a8x29[_0x8967[54]],_0xd3a8x29[_0x8967[58]]);_0xd3a8x1b[_0x8967[61]]= _[_0x8967[60]](_0xd3a8x29[_0x8967[54]],qs[_0x8967[62]](_0xd3a8x28[_0x8967[58]][_0x8967[62]]));_0xd3a8x1b[_0x8967[61]]= (_0xd3a8x1b[_0x8967[61]][_0x8967[63]])?_0xd3a8x1b[_0x8967[61]]:_0xd3a8x29[_0x8967[54]];if(!_0xd3a8x28[_0x8967[58]][_0x8967[65]](_0x8967[64])){_0xd3a8x1b[_0x8967[35]]= qs[_0x8967[35]](_0xd3a8x28[_0x8967[58]][_0x8967[35]]);_0xd3a8x1b[_0x8967[34]]= qs[_0x8967[34]](_0xd3a8x28[_0x8967[58]][_0x8967[34]])};_0xd3a8x1b[_0x8967[66]]= qs[_0x8967[67]](_0xd3a8x28[_0x8967[58]][_0x8967[67]]);_0xd3a8x1b[_0x8967[68]]= qs[_0x8967[59]](_[_0x8967[69]](_0xd3a8x28[_0x8967[58]],_0xd3a8x29[_0x8967[59]]));if(_0xd3a8x28[_0x8967[58]][_0x8967[70]]){_0xd3a8x1b[_0x8967[68]]= _[_0x8967[73]](_0xd3a8x1b[_0x8967[68]],{$or:_[_0x8967[72]](_0xd3a8x1b[_0x8967[61]],function(_0xd3a8x2a){var _0xd3a8x2b={};_0xd3a8x2b[_0xd3a8x2a]= {$like:_0x8967[71]+ _0xd3a8x28[_0x8967[58]][_0x8967[70]]+ _0x8967[71]};return _0xd3a8x2b})})};_0xd3a8x1b= _[_0x8967[73]]({},_0xd3a8x1b,_0xd3a8x28[_0x8967[74]]);return db[_0x8967[56]][_0x8967[76]](_0xd3a8x1b)[_0x8967[45]](respondWithFilteredResult(_0xd3a8x15,_0xd3a8x1b,_0x8967[53]))[_0x8967[75]](handleError(_0xd3a8x15,null,_0x8967[53]))};exports[_0x8967[77]]= function(_0xd3a8x28,_0xd3a8x15){var _0xd3a8x1b={raw:true,where:{id:_0xd3a8x28[_0x8967[79]][_0x8967[78]]}},_0xd3a8x29={};_0xd3a8x29[_0x8967[54]]= _[_0x8967[57]](db[_0x8967[56]][_0x8967[55]]);_0xd3a8x29[_0x8967[58]]= _[_0x8967[57]](_0xd3a8x28[_0x8967[58]]);_0xd3a8x29[_0x8967[59]]= _[_0x8967[60]](_0xd3a8x29[_0x8967[54]],_0xd3a8x29[_0x8967[58]]);_0xd3a8x1b[_0x8967[61]]= _[_0x8967[60]](_0xd3a8x29[_0x8967[54]],qs[_0x8967[62]](_0xd3a8x28[_0x8967[58]][_0x8967[62]]));_0xd3a8x1b[_0x8967[61]]= (_0xd3a8x1b[_0x8967[61]][_0x8967[63]])?_0xd3a8x1b[_0x8967[61]]:_0xd3a8x29[_0x8967[54]];_0xd3a8x1b= _[_0x8967[73]]({},_0xd3a8x1b,_0xd3a8x28[_0x8967[74]]);return db[_0x8967[56]][_0x8967[80]](_0xd3a8x1b)[_0x8967[45]](handleEntityNotFound(_0xd3a8x15,null,_0x8967[77]))[_0x8967[45]](respondWithResult(_0xd3a8x15,null,_0x8967[77]))[_0x8967[75]](handleError(_0xd3a8x15,null,_0x8967[77]))};exports[_0x8967[81]]= function(_0xd3a8x28,_0xd3a8x15){return db[_0x8967[56]][_0x8967[81]](_0xd3a8x28[_0x8967[82]],{})[_0x8967[45]](respondWithResult(_0xd3a8x15,201,_0x8967[81]))[_0x8967[75]](handleError(_0xd3a8x15,null,_0x8967[81]))};exports[_0x8967[46]]= function(_0xd3a8x28,_0xd3a8x15){if(_0xd3a8x28[_0x8967[82]][_0x8967[78]]){delete _0xd3a8x28[_0x8967[82]][_0x8967[78]]};return db[_0x8967[56]][_0x8967[80]]({where:{id:_0xd3a8x28[_0x8967[79]][_0x8967[78]]}})[_0x8967[45]](handleEntityNotFound(_0xd3a8x15,null,_0x8967[46]))[_0x8967[45]](saveUpdates(_0xd3a8x28[_0x8967[82]],null,_0x8967[46]))[_0x8967[45]](respondWithResult(_0xd3a8x15,null,_0x8967[46]))[_0x8967[75]](handleError(_0xd3a8x15,null,_0x8967[46]))};exports[_0x8967[48]]= function(_0xd3a8x28,_0xd3a8x15){return db[_0x8967[56]][_0x8967[80]]({where:{id:_0xd3a8x28[_0x8967[79]][_0x8967[78]]}})[_0x8967[45]](handleEntityNotFound(_0xd3a8x15,null,_0x8967[48]))[_0x8967[45]](removeEntity(_0xd3a8x15,null,_0x8967[48]))[_0x8967[75]](handleError(_0xd3a8x15,null,_0x8967[48]))};exports[_0x8967[83]]= function(_0xd3a8x28,_0xd3a8x15){return db[_0x8967[56]][_0x8967[83]]()[_0x8967[45]](respondWithResult(_0xd3a8x15,null,_0x8967[83]))[_0x8967[75]](handleError(_0xd3a8x15,null,_0x8967[83]))}
\ No newline at end of file
diff --git a/server/api/squareReportDetail/squareReportDetail.model.js b/server/api/squareReportDetail/squareReportDetail.model.js
new file mode 100644 (file)
index 0000000..d94f55f
--- /dev/null
@@ -0,0 +1 @@
+var _0x1f4d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65\x5F\x64\x65\x74\x61\x69\x6C\x73","\x64\x65\x66\x69\x6E\x65"];_0x1f4d[0];var _=require(_0x1f4d[1]);var util=require(_0x1f4d[2]);var logger=require(_0x1f4d[4])(_0x1f4d[3]);var attributes=require(_0x1f4d[5]);module[_0x1f4d[6]]= function(_0xd7f5x5,_0xd7f5x6){return _0xd7f5x5[_0x1f4d[9]](_0x1f4d[7],attributes,{tableName:_0x1f4d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/squareReportDetail/squareReportDetail.rpc.js b/server/api/squareReportDetail/squareReportDetail.rpc.js
new file mode 100644 (file)
index 0000000..b2e0862
--- /dev/null
@@ -0,0 +1 @@
+var _0x6a2e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74"];_0x6a2e[0];var _=require(_0x6a2e[1]);var util=require(_0x6a2e[2]);var moment=require(_0x6a2e[3]);var BPromise=require(_0x6a2e[4]);var db=require(_0x6a2e[6])[_0x6a2e[5]];var utils=require(_0x6a2e[7]);var logger=require(_0x6a2e[9])(_0x6a2e[8]);var jayson=require(_0x6a2e[10]);var client=jayson[_0x6a2e[12]][_0x6a2e[11]]({port:9002});function respondWithRpcPromise(_0xf073xb,_0xf073xc,_0xf073xd){return  new BPromise(function(_0xf073xe,_0xf073xf){return client[_0x6a2e[25]](_0xf073xb,_0xf073xd)[_0x6a2e[24]](function(_0xf073x11){logger[_0x6a2e[17]](_0x6a2e[13],_0xf073xc,_0x6a2e[16]);logger[_0x6a2e[20]](_0x6a2e[18],_0xf073xc,_0x6a2e[16],JSON[_0x6a2e[19]](_0xf073x11));if(_0xf073x11[_0x6a2e[14]]){if(_0xf073x11[_0x6a2e[14]][_0x6a2e[21]]=== 500){logger[_0x6a2e[14]](_0x6a2e[13],_0xf073xc,_0xf073x11[_0x6a2e[14]][_0x6a2e[22]]);return _0xf073xf(_0xf073x11[_0x6a2e[14]][_0x6a2e[22]])};logger[_0x6a2e[14]](_0x6a2e[13],_0xf073xc,_0xf073x11[_0x6a2e[14]][_0x6a2e[22]]);return _0xf073xe(_0xf073x11[_0x6a2e[14]][_0x6a2e[22]])}else {logger[_0x6a2e[17]](_0x6a2e[13],_0xf073xc,_0x6a2e[16]);_0xf073xe(_0xf073x11[_0x6a2e[23]][_0x6a2e[22]])}})[_0x6a2e[15]](function(_0xf073x10){logger[_0x6a2e[14]](_0x6a2e[13],_0xf073xc,_0xf073x10);_0xf073xf(_0xf073x10)})})}exports[_0x6a2e[26]]= function(_0xf073xd){var _0xf073x12=this;return  new Promise(function(_0xf073xe,_0xf073xf){return db[_0x6a2e[31]][_0x6a2e[30]](_0xf073xd[_0x6a2e[27]],{raw:_0xf073xd[_0x6a2e[28]]?(_0xf073xd[_0x6a2e[28]][_0x6a2e[29]]=== undefined)?true:false:true})[_0x6a2e[24]](function(_0xf073x11){logger[_0x6a2e[17]](_0x6a2e[26],_0xf073xd);logger[_0x6a2e[20]](_0x6a2e[26],_0xf073xd,JSON[_0x6a2e[19]](_0xf073x11));_0xf073xe(_0xf073x11)})[_0x6a2e[15]](function(_0xf073x10){logger[_0x6a2e[14]](_0x6a2e[26],_0xf073x10[_0x6a2e[22]],_0xf073xd);_0xf073xf(_0xf073x12[_0x6a2e[14]](500,_0xf073x10[_0x6a2e[22]]))})})}
\ No newline at end of file
diff --git a/server/api/system/index.js b/server/api/system/index.js
new file mode 100644 (file)
index 0000000..7756209
--- /dev/null
@@ -0,0 +1 @@
+var _0xa5c4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x73\x79\x73\x74\x65\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xa5c4[0];var express=require(_0xa5c4[1]);var router=express.Router();var auth=require(_0xa5c4[2]);var controller=require(_0xa5c4[3]);router[_0xa5c4[6]](_0xa5c4[4],controller[_0xa5c4[5]]);module[_0xa5c4[7]]= router
\ No newline at end of file
diff --git a/server/api/system/system.controller.js b/server/api/system/system.controller.js
new file mode 100644 (file)
index 0000000..b2ccc67
--- /dev/null
@@ -0,0 +1 @@
+var _0xdbbe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x79\x73\x74\x65\x6D\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E","\x69\x6E\x64\x65\x78","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x67\x65\x74\x41\x6C\x6C\x44\x61\x74\x61"];_0xdbbe[0];var info=require(_0xdbbe[1]);exports[_0xdbbe[2]]= function(_0x46fex2,_0x46fex3){return info[_0xdbbe[7]]()[_0xdbbe[6]](function(_0x46fex5){return _0x46fex3[_0xdbbe[4]](200)[_0xdbbe[3]](_0x46fex5)})[_0xdbbe[5]](function(_0x46fex4){return _0x46fex3[_0xdbbe[4]](500)[_0xdbbe[3]](_0x46fex4)})}
\ No newline at end of file
diff --git a/server/api/tag/index.js b/server/api/tag/index.js
new file mode 100644 (file)
index 0000000..3610f09
--- /dev/null
@@ -0,0 +1 @@
+var _0x5c52=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x61\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5c52[0];var multer=require(_0x5c52[1]);var util=require(_0x5c52[2]);var path=require(_0x5c52[3]);var express=require(_0x5c52[4]);var router=express.Router();var auth=require(_0x5c52[5]);var config=require(_0x5c52[6]);var controller=require(_0x5c52[7]);router[_0x5c52[11]](_0x5c52[8],auth[_0x5c52[9]](),controller[_0x5c52[10]]);router[_0x5c52[11]](_0x5c52[12],auth[_0x5c52[9]](),controller[_0x5c52[13]]);router[_0x5c52[15]](_0x5c52[8],auth[_0x5c52[9]](),controller[_0x5c52[14]]);router[_0x5c52[17]](_0x5c52[12],auth[_0x5c52[9]](),controller[_0x5c52[16]]);router[_0x5c52[19]](_0x5c52[12],auth[_0x5c52[9]](),controller[_0x5c52[18]]);module[_0x5c52[20]]= router
\ No newline at end of file
diff --git a/server/api/tag/tag.attributes.js b/server/api/tag/tag.attributes.js
new file mode 100644 (file)
index 0000000..d53a3ab
--- /dev/null
@@ -0,0 +1 @@
+var _0x60f7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0x60f7[0];var Sequelize=require(_0x60f7[1]);module[_0x60f7[2]]= {name:{type:Sequelize[_0x60f7[3]],unique:_0x60f7[4],allowNull:false,validate:{is:/[A-Za-z0-9._\\+*!-]+/,notEmpty:true}},description:{type:Sequelize[_0x60f7[3]]}}
\ No newline at end of file
diff --git a/server/api/tag/tag.controller.js b/server/api/tag/tag.controller.js
new file mode 100644 (file)
index 0000000..423a648
--- /dev/null
@@ -0,0 +1 @@
+var _0x717d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x54\x61\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x61\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x61\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x717d[0];var jsonpatch=require(_0x717d[1]);var rp=require(_0x717d[2]);var moment=require(_0x717d[3]);var BPromise=require(_0x717d[4]);var util=require(_0x717d[5]);var path=require(_0x717d[6]);var sox=require(_0x717d[7]);var ejs=require(_0x717d[8]);var fs=require(_0x717d[9]);var _=require(_0x717d[10]);var squel=require(_0x717d[11]);var crypto=require(_0x717d[12]);var jsforce=require(_0x717d[13]);var toCsv=require(_0x717d[14]);var qs=require(_0x717d[15]);var logger=require(_0x717d[17])(_0x717d[16]);var utils=require(_0x717d[18]);var config=require(_0x717d[19]);var db=require(_0x717d[21])[_0x717d[20]];function respondWithStatusCode(_0x495cx15,_0x495cx16,_0x495cx17){_0x495cx16= _0x495cx16|| 204;return function(_0x495cx18){if(_0x495cx18){logger[_0x717d[24]](_0x717d[22],_0x495cx17,_0x495cx16,_0x717d[23]);logger[_0x717d[26]](_0x717d[25],_0x495cx17,_0x495cx16,_0x717d[23]);return _0x495cx15[_0x717d[27]](_0x495cx16)};return _0x495cx15[_0x717d[29]](304)[_0x717d[28]]()}}function respondWithResult(_0x495cx15,_0x495cx16,_0x495cx17){_0x495cx16= _0x495cx16|| 200;return function(_0x495cx18){if(_0x495cx18){logger[_0x717d[24]](_0x717d[22],_0x495cx17,_0x495cx16,_0x717d[30]);logger[_0x717d[26]](_0x717d[25],_0x495cx17,_0x495cx16,_0x717d[30],JSON[_0x717d[31]](_0x495cx18));return _0x495cx15[_0x717d[29]](_0x495cx16)[_0x717d[32]](_0x495cx18)};return _0x495cx15[_0x717d[29]](304)[_0x717d[28]]()}}function respondWithFilteredResult(_0x495cx15,_0x495cx1b,_0x495cx17){return function(_0x495cx18){if(_0x495cx18){var _0x495cx1c=_0x495cx18[_0x717d[33]],_0x495cx1d=_0x495cx1b[_0x717d[34]],_0x495cx1e=_0x495cx1b[_0x717d[34]]+ _0x495cx1b[_0x717d[35]],_0x495cx16;if(_0x495cx1e>= _0x495cx1c){_0x495cx1e= _0x495cx1c;_0x495cx16= 200}else {_0x495cx16= 206};_0x495cx15[_0x717d[29]](_0x495cx16);logger[_0x717d[24]](_0x717d[22],_0x495cx17,_0x495cx16,_0x717d[36]);logger[_0x717d[26]](_0x717d[25],_0x495cx17,_0x495cx16,_0x717d[30],JSON[_0x717d[31]](_0x495cx18));return _0x495cx15[_0x717d[40]](_0x717d[37],_0x495cx1d+ _0x717d[38]+ _0x495cx1e+ _0x717d[39]+ _0x495cx1c)[_0x717d[32]](_0x495cx18)};return null}}function patchUpdates(_0x495cx20){return function(_0x495cx18){try{jsonpatch[_0x717d[41]](_0x495cx18,_0x495cx20,true)}catch(err){return BPromise[_0x717d[42]](err)};return _0x495cx18[_0x717d[43]]()}}function saveUpdates(_0x495cx22,_0x495cx16,_0x495cx17){return function(_0x495cx18){if(_0x495cx18){return _0x495cx18[_0x717d[46]](_0x495cx22)[_0x717d[45]](function(_0x495cx23){logger[_0x717d[24]](_0x717d[22],_0x495cx17,_0x495cx16,_0x717d[44]);logger[_0x717d[26]](_0x717d[25],_0x495cx17,_0x495cx16,_0x717d[44],JSON[_0x717d[31]](_0x495cx18));return _0x495cx23})};return null}}function removeEntity(_0x495cx15,_0x495cx16,_0x495cx17){return function(_0x495cx18){if(_0x495cx18){return _0x495cx18[_0x717d[48]]()[_0x717d[45]](function(){logger[_0x717d[24]](_0x717d[22],_0x495cx17,_0x495cx16,_0x717d[47]);logger[_0x717d[26]](_0x717d[25],_0x495cx17,_0x495cx16,_0x717d[47],JSON[_0x717d[31]](_0x495cx18));_0x495cx15[_0x717d[29]](204)[_0x717d[28]]()})}}}function handleEntityNotFound(_0x495cx15,_0x495cx16,_0x495cx17){return function(_0x495cx18){if(!_0x495cx18){logger[_0x717d[50]](_0x717d[22],_0x495cx17,404,_0x717d[49]);_0x495cx15[_0x717d[29]](404)[_0x717d[28]]();return null};return _0x495cx18}}function handleError(_0x495cx15,_0x495cx16,_0x495cx17){_0x495cx16= _0x495cx16|| 500;return function(_0x495cx27){logger[_0x717d[50]](_0x717d[22],_0x495cx17,_0x495cx16,JSON[_0x717d[31]](_0x495cx27));delete _0x495cx27[_0x717d[51]];_0x495cx15[_0x717d[29]](_0x495cx16)[_0x717d[52]](_0x495cx27)}}exports[_0x717d[53]]= function(_0x495cx28,_0x495cx15){var _0x495cx1b={},_0x495cx29={};_0x495cx29[_0x717d[54]]= _[_0x717d[57]](db[_0x717d[56]][_0x717d[55]]);_0x495cx29[_0x717d[58]]= _[_0x717d[57]](_0x495cx28[_0x717d[58]]);_0x495cx29[_0x717d[59]]= _[_0x717d[60]](_0x495cx29[_0x717d[54]],_0x495cx29[_0x717d[58]]);_0x495cx1b[_0x717d[61]]= _[_0x717d[60]](_0x495cx29[_0x717d[54]],qs[_0x717d[62]](_0x495cx28[_0x717d[58]][_0x717d[62]]));_0x495cx1b[_0x717d[61]]= (_0x495cx1b[_0x717d[61]][_0x717d[63]])?_0x495cx1b[_0x717d[61]]:_0x495cx29[_0x717d[54]];if(!_0x495cx28[_0x717d[58]][_0x717d[65]](_0x717d[64])){_0x495cx1b[_0x717d[35]]= qs[_0x717d[35]](_0x495cx28[_0x717d[58]][_0x717d[35]]);_0x495cx1b[_0x717d[34]]= qs[_0x717d[34]](_0x495cx28[_0x717d[58]][_0x717d[34]])};_0x495cx1b[_0x717d[66]]= qs[_0x717d[67]](_0x495cx28[_0x717d[58]][_0x717d[67]]);_0x495cx1b[_0x717d[68]]= qs[_0x717d[59]](_[_0x717d[69]](_0x495cx28[_0x717d[58]],_0x495cx29[_0x717d[59]]));if(_0x495cx28[_0x717d[58]][_0x717d[70]]){_0x495cx1b[_0x717d[68]]= _[_0x717d[73]](_0x495cx1b[_0x717d[68]],{$or:_[_0x717d[72]](_0x495cx1b[_0x717d[61]],function(_0x495cx2a){var _0x495cx2b={};_0x495cx2b[_0x495cx2a]= {$like:_0x717d[71]+ _0x495cx28[_0x717d[58]][_0x717d[70]]+ _0x717d[71]};return _0x495cx2b})})};_0x495cx1b= _[_0x717d[73]]({},_0x495cx1b,_0x495cx28[_0x717d[74]]);return db[_0x717d[56]][_0x717d[76]](_0x495cx1b)[_0x717d[45]](respondWithFilteredResult(_0x495cx15,_0x495cx1b,_0x717d[53]))[_0x717d[75]](handleError(_0x495cx15,null,_0x717d[53]))};exports[_0x717d[77]]= function(_0x495cx28,_0x495cx15){var _0x495cx1b={raw:true,where:{id:_0x495cx28[_0x717d[79]][_0x717d[78]]}},_0x495cx29={};_0x495cx29[_0x717d[54]]= _[_0x717d[57]](db[_0x717d[56]][_0x717d[55]]);_0x495cx29[_0x717d[58]]= _[_0x717d[57]](_0x495cx28[_0x717d[58]]);_0x495cx29[_0x717d[59]]= _[_0x717d[60]](_0x495cx29[_0x717d[54]],_0x495cx29[_0x717d[58]]);_0x495cx1b[_0x717d[61]]= _[_0x717d[60]](_0x495cx29[_0x717d[54]],qs[_0x717d[62]](_0x495cx28[_0x717d[58]][_0x717d[62]]));_0x495cx1b[_0x717d[61]]= (_0x495cx1b[_0x717d[61]][_0x717d[63]])?_0x495cx1b[_0x717d[61]]:_0x495cx29[_0x717d[54]];_0x495cx1b= _[_0x717d[73]]({},_0x495cx1b,_0x495cx28[_0x717d[74]]);return db[_0x717d[56]][_0x717d[80]](_0x495cx1b)[_0x717d[45]](handleEntityNotFound(_0x495cx15,null,_0x717d[77]))[_0x717d[45]](respondWithResult(_0x495cx15,null,_0x717d[77]))[_0x717d[75]](handleError(_0x495cx15,null,_0x717d[77]))};exports[_0x717d[81]]= function(_0x495cx28,_0x495cx15){return db[_0x717d[56]][_0x717d[81]](_0x495cx28[_0x717d[82]],{})[_0x717d[45]](respondWithResult(_0x495cx15,201,_0x717d[81]))[_0x717d[75]](handleError(_0x495cx15,null,_0x717d[81]))};exports[_0x717d[46]]= function(_0x495cx28,_0x495cx15){if(_0x495cx28[_0x717d[82]][_0x717d[78]]){delete _0x495cx28[_0x717d[82]][_0x717d[78]]};return db[_0x717d[56]][_0x717d[80]]({where:{id:_0x495cx28[_0x717d[79]][_0x717d[78]]}})[_0x717d[45]](handleEntityNotFound(_0x495cx15,null,_0x717d[46]))[_0x717d[45]](saveUpdates(_0x495cx28[_0x717d[82]],null,_0x717d[46]))[_0x717d[45]](respondWithResult(_0x495cx15,null,_0x717d[46]))[_0x717d[75]](handleError(_0x495cx15,null,_0x717d[46]))};exports[_0x717d[48]]= function(_0x495cx28,_0x495cx15){return db[_0x717d[56]][_0x717d[80]]({where:{id:_0x495cx28[_0x717d[79]][_0x717d[78]]}})[_0x717d[45]](handleEntityNotFound(_0x495cx15,null,_0x717d[48]))[_0x717d[45]](removeEntity(_0x495cx15,null,_0x717d[48]))[_0x717d[75]](handleError(_0x495cx15,null,_0x717d[48]))}
\ No newline at end of file
diff --git a/server/api/tag/tag.model.js b/server/api/tag/tag.model.js
new file mode 100644 (file)
index 0000000..3aded18
--- /dev/null
@@ -0,0 +1 @@
+var _0xb92e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x61\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x61\x67","\x74\x6F\x6F\x6C\x73\x5F\x74\x61\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0xb92e[0];var _=require(_0xb92e[1]);var util=require(_0xb92e[2]);var logger=require(_0xb92e[4])(_0xb92e[3]);var attributes=require(_0xb92e[5]);module[_0xb92e[6]]= function(_0xb374x5,_0xb374x6){return _0xb374x5[_0xb92e[9]](_0xb92e[7],attributes,{tableName:_0xb92e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/tag/tag.rpc.js b/server/api/tag/tag.rpc.js
new file mode 100644 (file)
index 0000000..c7b8db2
--- /dev/null
@@ -0,0 +1 @@
+var _0x4ef1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x61\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x61\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x4ef1[0];var _=require(_0x4ef1[1]);var util=require(_0x4ef1[2]);var moment=require(_0x4ef1[3]);var BPromise=require(_0x4ef1[4]);var db=require(_0x4ef1[6])[_0x4ef1[5]];var utils=require(_0x4ef1[7]);var logger=require(_0x4ef1[9])(_0x4ef1[8]);var jayson=require(_0x4ef1[10]);var client=jayson[_0x4ef1[12]][_0x4ef1[11]]({port:9002});function respondWithRpcPromise(_0x941dxb,_0x941dxc,_0x941dxd){return  new BPromise(function(_0x941dxe,_0x941dxf){return client[_0x4ef1[25]](_0x941dxb,_0x941dxd)[_0x4ef1[24]](function(_0x941dx11){logger[_0x4ef1[17]](_0x4ef1[13],_0x941dxc,_0x4ef1[16]);logger[_0x4ef1[20]](_0x4ef1[18],_0x941dxc,_0x4ef1[16],JSON[_0x4ef1[19]](_0x941dx11));if(_0x941dx11[_0x4ef1[14]]){if(_0x941dx11[_0x4ef1[14]][_0x4ef1[21]]=== 500){logger[_0x4ef1[14]](_0x4ef1[13],_0x941dxc,_0x941dx11[_0x4ef1[14]][_0x4ef1[22]]);return _0x941dxf(_0x941dx11[_0x4ef1[14]][_0x4ef1[22]])};logger[_0x4ef1[14]](_0x4ef1[13],_0x941dxc,_0x941dx11[_0x4ef1[14]][_0x4ef1[22]]);return _0x941dxe(_0x941dx11[_0x4ef1[14]][_0x4ef1[22]])}else {logger[_0x4ef1[17]](_0x4ef1[13],_0x941dxc,_0x4ef1[16]);_0x941dxe(_0x941dx11[_0x4ef1[23]][_0x4ef1[22]])}})[_0x4ef1[15]](function(_0x941dx10){logger[_0x4ef1[14]](_0x4ef1[13],_0x941dxc,_0x941dx10);_0x941dxf(_0x941dx10)})})}
\ No newline at end of file
diff --git a/server/api/team/index.js b/server/api/team/index.js
new file mode 100644 (file)
index 0000000..df81760
--- /dev/null
@@ -0,0 +1 @@
+var _0xbbdb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x65\x61\x6D\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x75\x65\x73","\x67\x65\x74\x51\x75\x65\x75\x65\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x51\x75\x65\x75\x65\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x51\x75\x65\x75\x65\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xbbdb[0];var multer=require(_0xbbdb[1]);var util=require(_0xbbdb[2]);var path=require(_0xbbdb[3]);var express=require(_0xbbdb[4]);var router=express.Router();var auth=require(_0xbbdb[5]);var config=require(_0xbbdb[6]);var controller=require(_0xbbdb[7]);router[_0xbbdb[11]](_0xbbdb[8],auth[_0xbbdb[9]](),controller[_0xbbdb[10]]);router[_0xbbdb[11]](_0xbbdb[12],auth[_0xbbdb[9]](),controller[_0xbbdb[13]]);router[_0xbbdb[11]](_0xbbdb[14],auth[_0xbbdb[9]](),controller[_0xbbdb[15]]);router[_0xbbdb[11]](_0xbbdb[16],auth[_0xbbdb[9]](),controller[_0xbbdb[17]]);router[_0xbbdb[19]](_0xbbdb[8],auth[_0xbbdb[9]](),controller[_0xbbdb[18]]);router[_0xbbdb[19]](_0xbbdb[14],auth[_0xbbdb[9]](),controller[_0xbbdb[20]]);router[_0xbbdb[19]](_0xbbdb[16],auth[_0xbbdb[9]](),controller[_0xbbdb[21]]);router[_0xbbdb[23]](_0xbbdb[12],auth[_0xbbdb[9]](),controller[_0xbbdb[22]]);router[_0xbbdb[25]](_0xbbdb[12],auth[_0xbbdb[9]](),controller[_0xbbdb[24]]);router[_0xbbdb[25]](_0xbbdb[14],auth[_0xbbdb[9]](),controller[_0xbbdb[26]]);router[_0xbbdb[25]](_0xbbdb[16],auth[_0xbbdb[9]](),controller[_0xbbdb[27]]);module[_0xbbdb[28]]= router
\ No newline at end of file
diff --git a/server/api/team/team.attributes.js b/server/api/team/team.attributes.js
new file mode 100644 (file)
index 0000000..f871936
--- /dev/null
@@ -0,0 +1 @@
+var _0x78ad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0x78ad[0];var Sequelize=require(_0x78ad[1]);module[_0x78ad[2]]= {name:{type:Sequelize[_0x78ad[3]],allowNull:false,unique:_0x78ad[4]},description:{type:Sequelize[_0x78ad[3]]}}
\ No newline at end of file
diff --git a/server/api/team/team.controller.js b/server/api/team/team.controller.js
new file mode 100644 (file)
index 0000000..2c2dd15
--- /dev/null
@@ -0,0 +1 @@
+var _0xd66d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x54\x65\x61\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x65\x61\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x65\x61\x6D","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x51\x75\x65\x75\x65\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x69\x73\x56\x61\x6C\x69\x64\x43\x68\x61\x6E\x6E\x65\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x63\x68\x61\x6E\x6E\x65\x6C","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","\x51\x75\x65\x75\x65","\x67\x65\x74","\x51\x75\x65\x75\x65\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x61\x64\x64\x51\x75\x65\x75\x65\x73","\x69\x64\x73","\x61\x64\x64","\x72\x65\x6D\x6F\x76\x65\x51\x75\x65\x75\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x6F\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x55\x73\x65\x72"];_0xd66d[0];var jsonpatch=require(_0xd66d[1]);var rp=require(_0xd66d[2]);var moment=require(_0xd66d[3]);var BPromise=require(_0xd66d[4]);var util=require(_0xd66d[5]);var path=require(_0xd66d[6]);var sox=require(_0xd66d[7]);var ejs=require(_0xd66d[8]);var fs=require(_0xd66d[9]);var _=require(_0xd66d[10]);var squel=require(_0xd66d[11]);var crypto=require(_0xd66d[12]);var jsforce=require(_0xd66d[13]);var toCsv=require(_0xd66d[14]);var qs=require(_0xd66d[15]);var logger=require(_0xd66d[17])(_0xd66d[16]);var utils=require(_0xd66d[18]);var config=require(_0xd66d[19]);var db=require(_0xd66d[21])[_0xd66d[20]];function respondWithStatusCode(_0x461bx15,_0x461bx16,_0x461bx17){_0x461bx16= _0x461bx16|| 204;return function(_0x461bx18){if(_0x461bx18){logger[_0xd66d[24]](_0xd66d[22],_0x461bx17,_0x461bx16,_0xd66d[23]);logger[_0xd66d[26]](_0xd66d[25],_0x461bx17,_0x461bx16,_0xd66d[23]);return _0x461bx15[_0xd66d[27]](_0x461bx16)};return _0x461bx15[_0xd66d[29]](304)[_0xd66d[28]]()}}function respondWithResult(_0x461bx15,_0x461bx16,_0x461bx17){_0x461bx16= _0x461bx16|| 200;return function(_0x461bx18){if(_0x461bx18){logger[_0xd66d[24]](_0xd66d[22],_0x461bx17,_0x461bx16,_0xd66d[30]);logger[_0xd66d[26]](_0xd66d[25],_0x461bx17,_0x461bx16,_0xd66d[30],JSON[_0xd66d[31]](_0x461bx18));return _0x461bx15[_0xd66d[29]](_0x461bx16)[_0xd66d[32]](_0x461bx18)};return _0x461bx15[_0xd66d[29]](304)[_0xd66d[28]]()}}function respondWithFilteredResult(_0x461bx15,_0x461bx1b,_0x461bx17){return function(_0x461bx18){if(_0x461bx18){var _0x461bx1c=_0x461bx18[_0xd66d[33]],_0x461bx1d=_0x461bx1b[_0xd66d[34]],_0x461bx1e=_0x461bx1b[_0xd66d[34]]+ _0x461bx1b[_0xd66d[35]],_0x461bx16;if(_0x461bx1e>= _0x461bx1c){_0x461bx1e= _0x461bx1c;_0x461bx16= 200}else {_0x461bx16= 206};_0x461bx15[_0xd66d[29]](_0x461bx16);logger[_0xd66d[24]](_0xd66d[22],_0x461bx17,_0x461bx16,_0xd66d[36]);logger[_0xd66d[26]](_0xd66d[25],_0x461bx17,_0x461bx16,_0xd66d[30],JSON[_0xd66d[31]](_0x461bx18));return _0x461bx15[_0xd66d[40]](_0xd66d[37],_0x461bx1d+ _0xd66d[38]+ _0x461bx1e+ _0xd66d[39]+ _0x461bx1c)[_0xd66d[32]](_0x461bx18)};return null}}function patchUpdates(_0x461bx20){return function(_0x461bx18){try{jsonpatch[_0xd66d[41]](_0x461bx18,_0x461bx20,true)}catch(err){return BPromise[_0xd66d[42]](err)};return _0x461bx18[_0xd66d[43]]()}}function saveUpdates(_0x461bx22,_0x461bx16,_0x461bx17){return function(_0x461bx18){if(_0x461bx18){return _0x461bx18[_0xd66d[46]](_0x461bx22)[_0xd66d[45]](function(_0x461bx23){logger[_0xd66d[24]](_0xd66d[22],_0x461bx17,_0x461bx16,_0xd66d[44]);logger[_0xd66d[26]](_0xd66d[25],_0x461bx17,_0x461bx16,_0xd66d[44],JSON[_0xd66d[31]](_0x461bx18));return _0x461bx23})};return null}}function removeEntity(_0x461bx15,_0x461bx16,_0x461bx17){return function(_0x461bx18){if(_0x461bx18){return _0x461bx18[_0xd66d[48]]()[_0xd66d[45]](function(){logger[_0xd66d[24]](_0xd66d[22],_0x461bx17,_0x461bx16,_0xd66d[47]);logger[_0xd66d[26]](_0xd66d[25],_0x461bx17,_0x461bx16,_0xd66d[47],JSON[_0xd66d[31]](_0x461bx18));_0x461bx15[_0xd66d[29]](204)[_0xd66d[28]]()})}}}function handleEntityNotFound(_0x461bx15,_0x461bx16,_0x461bx17){return function(_0x461bx18){if(!_0x461bx18){logger[_0xd66d[50]](_0xd66d[22],_0x461bx17,404,_0xd66d[49]);_0x461bx15[_0xd66d[29]](404)[_0xd66d[28]]();return null};return _0x461bx18}}function handleError(_0x461bx15,_0x461bx16,_0x461bx17){_0x461bx16= _0x461bx16|| 500;return function(_0x461bx27){logger[_0xd66d[50]](_0xd66d[22],_0x461bx17,_0x461bx16,JSON[_0xd66d[31]](_0x461bx27));delete _0x461bx27[_0xd66d[51]];_0x461bx15[_0xd66d[29]](_0x461bx16)[_0xd66d[52]](_0x461bx27)}}exports[_0xd66d[53]]= function(_0x461bx28,_0x461bx15){var _0x461bx1b={},_0x461bx29={};_0x461bx29[_0xd66d[54]]= _[_0xd66d[57]](db[_0xd66d[56]][_0xd66d[55]]);_0x461bx29[_0xd66d[58]]= _[_0xd66d[57]](_0x461bx28[_0xd66d[58]]);_0x461bx29[_0xd66d[59]]= _[_0xd66d[60]](_0x461bx29[_0xd66d[54]],_0x461bx29[_0xd66d[58]]);_0x461bx1b[_0xd66d[61]]= _[_0xd66d[60]](_0x461bx29[_0xd66d[54]],qs[_0xd66d[62]](_0x461bx28[_0xd66d[58]][_0xd66d[62]]));_0x461bx1b[_0xd66d[61]]= (_0x461bx1b[_0xd66d[61]][_0xd66d[63]])?_0x461bx1b[_0xd66d[61]]:_0x461bx29[_0xd66d[54]];if(!_0x461bx28[_0xd66d[58]][_0xd66d[65]](_0xd66d[64])){_0x461bx1b[_0xd66d[35]]= qs[_0xd66d[35]](_0x461bx28[_0xd66d[58]][_0xd66d[35]]);_0x461bx1b[_0xd66d[34]]= qs[_0xd66d[34]](_0x461bx28[_0xd66d[58]][_0xd66d[34]])};_0x461bx1b[_0xd66d[66]]= qs[_0xd66d[67]](_0x461bx28[_0xd66d[58]][_0xd66d[67]]);_0x461bx1b[_0xd66d[68]]= qs[_0xd66d[59]](_[_0xd66d[69]](_0x461bx28[_0xd66d[58]],_0x461bx29[_0xd66d[59]]));if(_0x461bx28[_0xd66d[58]][_0xd66d[70]]){_0x461bx1b[_0xd66d[68]]= _[_0xd66d[73]](_0x461bx1b[_0xd66d[68]],{$or:_[_0xd66d[72]](_0x461bx1b[_0xd66d[61]],function(_0x461bx2a){var _0x461bx2b={};_0x461bx2b[_0x461bx2a]= {$like:_0xd66d[71]+ _0x461bx28[_0xd66d[58]][_0xd66d[70]]+ _0xd66d[71]};return _0x461bx2b})})};_0x461bx1b= _[_0xd66d[73]]({},_0x461bx1b,_0x461bx28[_0xd66d[74]]);return db[_0xd66d[56]][_0xd66d[76]](_0x461bx1b)[_0xd66d[45]](respondWithFilteredResult(_0x461bx15,_0x461bx1b,_0xd66d[53]))[_0xd66d[75]](handleError(_0x461bx15,null,_0xd66d[53]))};exports[_0xd66d[77]]= function(_0x461bx28,_0x461bx15){var _0x461bx1b={raw:false,where:{id:_0x461bx28[_0xd66d[79]][_0xd66d[78]]}},_0x461bx29={};_0x461bx29[_0xd66d[54]]= _[_0xd66d[57]](db[_0xd66d[56]][_0xd66d[55]]);_0x461bx29[_0xd66d[58]]= _[_0xd66d[57]](_0x461bx28[_0xd66d[58]]);_0x461bx29[_0xd66d[59]]= _[_0xd66d[60]](_0x461bx29[_0xd66d[54]],_0x461bx29[_0xd66d[58]]);_0x461bx1b[_0xd66d[61]]= _[_0xd66d[60]](_0x461bx29[_0xd66d[54]],qs[_0xd66d[62]](_0x461bx28[_0xd66d[58]][_0xd66d[62]]));_0x461bx1b[_0xd66d[61]]= (_0x461bx1b[_0xd66d[61]][_0xd66d[63]])?_0x461bx1b[_0xd66d[61]]:_0x461bx29[_0xd66d[54]];_0x461bx1b= _[_0xd66d[73]]({},_0x461bx1b,_0x461bx28[_0xd66d[74]]);return db[_0xd66d[56]][_0xd66d[80]](_0x461bx1b)[_0xd66d[45]](handleEntityNotFound(_0x461bx15,null,_0xd66d[77]))[_0xd66d[45]](respondWithResult(_0x461bx15,null,_0xd66d[77]))[_0xd66d[75]](handleError(_0x461bx15,null,_0xd66d[77]))};exports[_0xd66d[81]]= function(_0x461bx28,_0x461bx15){return db[_0xd66d[56]][_0xd66d[81]](_0x461bx28[_0xd66d[82]],{})[_0xd66d[45]](respondWithResult(_0x461bx15,201,_0xd66d[81]))[_0xd66d[75]](handleError(_0x461bx15,null,_0xd66d[81]))};exports[_0xd66d[46]]= function(_0x461bx28,_0x461bx15){if(_0x461bx28[_0xd66d[82]][_0xd66d[78]]){delete _0x461bx28[_0xd66d[82]][_0xd66d[78]]};return db[_0xd66d[56]][_0xd66d[80]]({where:{id:_0x461bx28[_0xd66d[79]][_0xd66d[78]]}})[_0xd66d[45]](handleEntityNotFound(_0x461bx15,null,_0xd66d[46]))[_0xd66d[45]](saveUpdates(_0x461bx28[_0xd66d[82]],null,_0xd66d[46]))[_0xd66d[45]](respondWithResult(_0x461bx15,null,_0xd66d[46]))[_0xd66d[75]](handleError(_0x461bx15,null,_0xd66d[46]))};exports[_0xd66d[48]]= function(_0x461bx28,_0x461bx15){return db[_0xd66d[56]][_0xd66d[80]]({where:{id:_0x461bx28[_0xd66d[79]][_0xd66d[78]]}})[_0xd66d[45]](handleEntityNotFound(_0x461bx15,null,_0xd66d[48]))[_0xd66d[45]](removeEntity(_0x461bx15,null,_0xd66d[48]))[_0xd66d[75]](handleError(_0x461bx15,null,_0xd66d[48]))};exports[_0xd66d[83]]= function(_0x461bx28,_0x461bx15,_0x461bx2c){return db[_0xd66d[56]][_0xd66d[93]]({where:{id:_0x461bx28[_0xd66d[79]][_0xd66d[78]]}})[_0xd66d[45]](handleEntityNotFound(_0x461bx15,null,_0xd66d[83]))[_0xd66d[45]](function(_0x461bx18){if(!_0x461bx28[_0xd66d[58]][_0xd66d[84]]||  !utils[_0xd66d[85]](_0x461bx28[_0xd66d[58]][_0xd66d[84]])){throw  new db[_0xd66d[87]].ValidationError(_0xd66d[86])};var _0x461bx1b={};var _0x461bx29={};_0x461bx29[_0xd66d[54]]= _[_0xd66d[57]](db[_[_0xd66d[89]](_0x461bx28[_0xd66d[58]][_0xd66d[84]][_0xd66d[88]]())+ _0xd66d[90]][_0xd66d[55]]);_0x461bx29[_0xd66d[58]]= _[_0xd66d[57]](_0x461bx28[_0xd66d[58]]);_0x461bx29[_0xd66d[59]]= _[_0xd66d[60]](_0x461bx29[_0xd66d[54]],_0x461bx29[_0xd66d[58]]);_0x461bx1b[_0xd66d[61]]= _[_0xd66d[60]](_0x461bx29[_0xd66d[54]],qs[_0xd66d[62]](_0x461bx28[_0xd66d[58]][_0xd66d[62]]));_0x461bx1b[_0xd66d[61]]= (_0x461bx1b[_0xd66d[61]][_0xd66d[63]])?_0x461bx1b[_0xd66d[61]]:_0x461bx29[_0xd66d[54]];_0x461bx1b[_0xd66d[35]]= qs[_0xd66d[35]](_0x461bx28[_0xd66d[58]][_0xd66d[35]]);_0x461bx1b[_0xd66d[34]]= qs[_0xd66d[34]](_0x461bx28[_0xd66d[58]][_0xd66d[34]]);_0x461bx1b[_0xd66d[66]]= qs[_0xd66d[67]](_0x461bx28[_0xd66d[58]][_0xd66d[67]]);_0x461bx1b[_0xd66d[68]]= qs[_0xd66d[59]](_[_0xd66d[69]](_0x461bx28[_0xd66d[58]],_0x461bx29[_0xd66d[59]]));_0x461bx1b= _[_0xd66d[73]]({},_0x461bx1b,_0x461bx28[_0xd66d[74]]);return _0x461bx18[_0xd66d[91]+ _[_0xd66d[89]](_0x461bx28[_0xd66d[58]][_0xd66d[84]][_0xd66d[88]]())+ _0xd66d[92]](_0x461bx1b)})[_0xd66d[45]](respondWithResult(_0x461bx15,null,_0xd66d[83]))[_0xd66d[75]](handleError(_0x461bx15,null,_0xd66d[83]))};exports[_0xd66d[94]]= function(_0x461bx28,_0x461bx15,_0x461bx2c){return db[_0xd66d[56]][_0xd66d[93]]({where:{id:_0x461bx28[_0xd66d[79]][_0xd66d[78]]}})[_0xd66d[45]](function(_0x461bx18){if(_0x461bx18){if(!_0x461bx28[_0xd66d[82]][_0xd66d[84]]||  !utils[_0xd66d[85]](_0x461bx28[_0xd66d[82]][_0xd66d[84]])){throw  new db[_0xd66d[87]].ValidationError(_0xd66d[86])};return _0x461bx18[_0xd66d[96]+ _[_0xd66d[89]](_0x461bx28[_0xd66d[82]][_0xd66d[84]][_0xd66d[88]]())+ _0xd66d[92]](_0x461bx28[_0xd66d[82]][_0xd66d[95]])};return null})[_0xd66d[45]](handleEntityNotFound(_0x461bx15,null,_0xd66d[94]))[_0xd66d[45]](respondWithStatusCode(_0x461bx15,null,_0xd66d[94]))[_0xd66d[75]](handleError(_0x461bx15,null,_0xd66d[94]))};exports[_0xd66d[97]]= function(_0x461bx28,_0x461bx15,_0x461bx2c){return db[_0xd66d[56]][_0xd66d[93]]({where:{id:_0x461bx28[_0xd66d[79]][_0xd66d[78]]}})[_0xd66d[45]](function(_0x461bx18){if(_0x461bx18){if(!_0x461bx28[_0xd66d[58]][_0xd66d[84]]||  !utils[_0xd66d[85]](_0x461bx28[_0xd66d[58]][_0xd66d[84]])){throw  new db[_0xd66d[87]].ValidationError(_0xd66d[86])};return _0x461bx18[_0xd66d[98]+ _[_0xd66d[89]](_0x461bx28[_0xd66d[58]][_0xd66d[84]][_0xd66d[88]]())+ _0xd66d[92]](_0x461bx28[_0xd66d[58]][_0xd66d[95]])};return null})[_0xd66d[45]](handleEntityNotFound(_0x461bx15,null,_0xd66d[97]))[_0xd66d[45]](respondWithStatusCode(_0x461bx15,null,_0xd66d[97]))[_0xd66d[75]](handleError(_0x461bx15,null,_0xd66d[97]))};exports[_0xd66d[99]]= function(_0x461bx28,_0x461bx15,_0x461bx2c){return db[_0xd66d[56]][_0xd66d[80]]({where:{id:_0x461bx28[_0xd66d[79]][_0xd66d[78]]}})[_0xd66d[45]](handleEntityNotFound(_0x461bx15,null,_0xd66d[99]))[_0xd66d[45]](function(_0x461bx18){if(_0x461bx18){return _0x461bx18[_0xd66d[99]](_0x461bx28[_0xd66d[82]][_0xd66d[95]],_[_0xd66d[100]](_0x461bx28[_0xd66d[82]],[_0xd66d[95],_0xd66d[78]])|| {})};return null})[_0xd66d[45]](respondWithResult(_0x461bx15,null,_0xd66d[99]))[_0xd66d[75]](handleError(_0x461bx15,null,_0xd66d[99]))};exports[_0xd66d[101]]= function(_0x461bx28,_0x461bx15,_0x461bx2c){var _0x461bx2d;return db[_0xd66d[56]][_0xd66d[80]]({where:{id:_0x461bx28[_0xd66d[79]][_0xd66d[78]]}})[_0xd66d[45]](handleEntityNotFound(_0x461bx15,null,_0xd66d[101]))[_0xd66d[45]](function(_0x461bx18){if(_0x461bx18){return _0x461bx18[_0xd66d[101]](_0x461bx28[_0xd66d[58]][_0xd66d[95]])}})[_0xd66d[45]](respondWithStatusCode(_0x461bx15,null,_0xd66d[101]))[_0xd66d[75]](handleError(_0x461bx15,null,_0xd66d[101]))};exports[_0xd66d[102]]= function(_0x461bx28,_0x461bx18,_0x461bx2c){var _0x461bx1b={};var _0x461bx29={};var _0x461bx2e;var _0x461bx1c;return db[_0xd66d[56]][_0xd66d[93]]({where:{id:_0x461bx28[_0xd66d[79]][_0xd66d[78]]}})[_0xd66d[45]](handleEntityNotFound(_0x461bx18,null,_0xd66d[102]))[_0xd66d[45]](function(_0x461bx18){if(_0x461bx18){_0x461bx2e= _0x461bx18;_0x461bx29[_0xd66d[54]]= _[_0xd66d[57]](db[_0xd66d[103]][_0xd66d[55]]);_0x461bx29[_0xd66d[58]]= _[_0xd66d[57]](_0x461bx28[_0xd66d[58]]);_0x461bx29[_0xd66d[59]]= _[_0xd66d[60]](_0x461bx29[_0xd66d[54]],_0x461bx29[_0xd66d[58]]);_0x461bx1b[_0xd66d[61]]= _[_0xd66d[60]](_0x461bx29[_0xd66d[54]],qs[_0xd66d[62]](_0x461bx28[_0xd66d[58]][_0xd66d[62]]));_0x461bx1b[_0xd66d[61]]= (_0x461bx1b[_0xd66d[61]][_0xd66d[63]])?_0x461bx1b[_0xd66d[61]]:_0x461bx29[_0xd66d[54]];_0x461bx1b[_0xd66d[66]]= qs[_0xd66d[67]](_0x461bx28[_0xd66d[58]][_0xd66d[67]]);_0x461bx1b[_0xd66d[68]]= qs[_0xd66d[59]](_[_0xd66d[69]](_0x461bx28[_0xd66d[58]],_0x461bx29[_0xd66d[59]]));if(_0x461bx28[_0xd66d[58]][_0xd66d[70]]){_0x461bx1b[_0xd66d[68]]= _[_0xd66d[73]](_0x461bx1b[_0xd66d[68]],{$or:_[_0xd66d[72]](_0x461bx1b[_0xd66d[61]],function(_0x461bx2a){var _0x461bx2b={};_0x461bx2b[_0x461bx2a]= {$like:_0xd66d[71]+ _0x461bx28[_0xd66d[58]][_0xd66d[70]]+ _0xd66d[71]};return _0x461bx2b})})};_0x461bx1b= _[_0xd66d[73]]({},_0x461bx1b,_0x461bx28[_0xd66d[74]]);return _0x461bx2e[_0xd66d[102]](_0x461bx1b)}})[_0xd66d[45]](function(_0x461bx2d){if(_0x461bx2d){_0x461bx1c= _0x461bx2d[_0xd66d[63]];if(!_0x461bx28[_0xd66d[58]][_0xd66d[65]](_0xd66d[64])){_0x461bx1b[_0xd66d[35]]= qs[_0xd66d[35]](_0x461bx28[_0xd66d[58]][_0xd66d[35]]);_0x461bx1b[_0xd66d[34]]= qs[_0xd66d[34]](_0x461bx28[_0xd66d[58]][_0xd66d[34]])};return _0x461bx2e[_0xd66d[102]](_0x461bx1b)}})[_0xd66d[45]](function(_0x461bx2f){return _0x461bx2f?{count:_0x461bx1c,rows:_0x461bx2f}:null})[_0xd66d[45]](respondWithResult(_0x461bx18,null,_0xd66d[102]))[_0xd66d[75]](handleError(_0x461bx18,null,_0xd66d[102]))}
\ No newline at end of file
diff --git a/server/api/team/team.model.js b/server/api/team/team.model.js
new file mode 100644 (file)
index 0000000..b4f4e1c
--- /dev/null
@@ -0,0 +1 @@
+var _0xd66e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x65\x61\x6D\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x65\x61\x6D","\x74\x65\x61\x6D\x73","\x64\x65\x66\x69\x6E\x65"];_0xd66e[0];var _=require(_0xd66e[1]);var util=require(_0xd66e[2]);var logger=require(_0xd66e[4])(_0xd66e[3]);var attributes=require(_0xd66e[5]);module[_0xd66e[6]]= function(_0xf574x5,_0xf574x6){return _0xf574x5[_0xd66e[9]](_0xd66e[7],attributes,{tableName:_0xd66e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/team/team.rpc.js b/server/api/team/team.rpc.js
new file mode 100644 (file)
index 0000000..6d8e10d
--- /dev/null
@@ -0,0 +1 @@
+var _0xcac5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x65\x61\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x65\x61\x6D\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xcac5[0];var _=require(_0xcac5[1]);var util=require(_0xcac5[2]);var moment=require(_0xcac5[3]);var BPromise=require(_0xcac5[4]);var db=require(_0xcac5[6])[_0xcac5[5]];var utils=require(_0xcac5[7]);var logger=require(_0xcac5[9])(_0xcac5[8]);var jayson=require(_0xcac5[10]);var client=jayson[_0xcac5[12]][_0xcac5[11]]({port:9002});function respondWithRpcPromise(_0x3fc5xb,_0x3fc5xc,_0x3fc5xd){return  new BPromise(function(_0x3fc5xe,_0x3fc5xf){return client[_0xcac5[25]](_0x3fc5xb,_0x3fc5xd)[_0xcac5[24]](function(_0x3fc5x11){logger[_0xcac5[17]](_0xcac5[13],_0x3fc5xc,_0xcac5[16]);logger[_0xcac5[20]](_0xcac5[18],_0x3fc5xc,_0xcac5[16],JSON[_0xcac5[19]](_0x3fc5x11));if(_0x3fc5x11[_0xcac5[14]]){if(_0x3fc5x11[_0xcac5[14]][_0xcac5[21]]=== 500){logger[_0xcac5[14]](_0xcac5[13],_0x3fc5xc,_0x3fc5x11[_0xcac5[14]][_0xcac5[22]]);return _0x3fc5xf(_0x3fc5x11[_0xcac5[14]][_0xcac5[22]])};logger[_0xcac5[14]](_0xcac5[13],_0x3fc5xc,_0x3fc5x11[_0xcac5[14]][_0xcac5[22]]);return _0x3fc5xe(_0x3fc5x11[_0xcac5[14]][_0xcac5[22]])}else {logger[_0xcac5[17]](_0xcac5[13],_0x3fc5xc,_0xcac5[16]);_0x3fc5xe(_0x3fc5x11[_0xcac5[23]][_0xcac5[22]])}})[_0xcac5[15]](function(_0x3fc5x10){logger[_0xcac5[14]](_0xcac5[13],_0x3fc5xc,_0x3fc5x10);_0x3fc5xf(_0x3fc5x10)})})}
\ No newline at end of file
diff --git a/server/api/template/index.js b/server/api/template/index.js
new file mode 100644 (file)
index 0000000..3dedc4a
--- /dev/null
@@ -0,0 +1 @@
+var _0x3aa1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3aa1[0];var multer=require(_0x3aa1[1]);var util=require(_0x3aa1[2]);var path=require(_0x3aa1[3]);var express=require(_0x3aa1[4]);var router=express.Router();var auth=require(_0x3aa1[5]);var config=require(_0x3aa1[6]);var controller=require(_0x3aa1[7]);router[_0x3aa1[11]](_0x3aa1[8],auth[_0x3aa1[9]](),controller[_0x3aa1[10]]);router[_0x3aa1[11]](_0x3aa1[12],auth[_0x3aa1[9]](),controller[_0x3aa1[13]]);router[_0x3aa1[15]](_0x3aa1[8],auth[_0x3aa1[9]](),controller[_0x3aa1[14]]);router[_0x3aa1[17]](_0x3aa1[12],auth[_0x3aa1[9]](),controller[_0x3aa1[16]]);router[_0x3aa1[19]](_0x3aa1[12],auth[_0x3aa1[9]](),controller[_0x3aa1[18]]);module[_0x3aa1[20]]= router
\ No newline at end of file
diff --git a/server/api/template/template.attributes.js b/server/api/template/template.attributes.js
new file mode 100644 (file)
index 0000000..98511c5
--- /dev/null
@@ -0,0 +1 @@
+var _0xac88=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x54\x45\x58\x54"];_0xac88[0];var Sequelize=require(_0xac88[1]);module[_0xac88[2]]= {name:{type:Sequelize[_0xac88[3]]},description:{type:Sequelize[_0xac88[3]]},subject:{type:Sequelize[_0xac88[3]]},html:{type:Sequelize[_0xac88[4]]}}
\ No newline at end of file
diff --git a/server/api/template/template.controller.js b/server/api/template/template.controller.js
new file mode 100644 (file)
index 0000000..a57dbc4
--- /dev/null
@@ -0,0 +1 @@
+var _0xdf0a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x54\x65\x6D\x70\x6C\x61\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x65\x6D\x70\x6C\x61\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xdf0a[0];var jsonpatch=require(_0xdf0a[1]);var rp=require(_0xdf0a[2]);var moment=require(_0xdf0a[3]);var BPromise=require(_0xdf0a[4]);var util=require(_0xdf0a[5]);var path=require(_0xdf0a[6]);var sox=require(_0xdf0a[7]);var ejs=require(_0xdf0a[8]);var fs=require(_0xdf0a[9]);var _=require(_0xdf0a[10]);var squel=require(_0xdf0a[11]);var crypto=require(_0xdf0a[12]);var jsforce=require(_0xdf0a[13]);var toCsv=require(_0xdf0a[14]);var qs=require(_0xdf0a[15]);var logger=require(_0xdf0a[17])(_0xdf0a[16]);var utils=require(_0xdf0a[18]);var config=require(_0xdf0a[19]);var db=require(_0xdf0a[21])[_0xdf0a[20]];function respondWithStatusCode(_0xf228x15,_0xf228x16,_0xf228x17){_0xf228x16= _0xf228x16|| 204;return function(_0xf228x18){if(_0xf228x18){logger[_0xdf0a[24]](_0xdf0a[22],_0xf228x17,_0xf228x16,_0xdf0a[23]);logger[_0xdf0a[26]](_0xdf0a[25],_0xf228x17,_0xf228x16,_0xdf0a[23]);return _0xf228x15[_0xdf0a[27]](_0xf228x16)};return _0xf228x15[_0xdf0a[29]](304)[_0xdf0a[28]]()}}function respondWithResult(_0xf228x15,_0xf228x16,_0xf228x17){_0xf228x16= _0xf228x16|| 200;return function(_0xf228x18){if(_0xf228x18){logger[_0xdf0a[24]](_0xdf0a[22],_0xf228x17,_0xf228x16,_0xdf0a[30]);logger[_0xdf0a[26]](_0xdf0a[25],_0xf228x17,_0xf228x16,_0xdf0a[30],JSON[_0xdf0a[31]](_0xf228x18));return _0xf228x15[_0xdf0a[29]](_0xf228x16)[_0xdf0a[32]](_0xf228x18)};return _0xf228x15[_0xdf0a[29]](304)[_0xdf0a[28]]()}}function respondWithFilteredResult(_0xf228x15,_0xf228x1b,_0xf228x17){return function(_0xf228x18){if(_0xf228x18){var _0xf228x1c=_0xf228x18[_0xdf0a[33]],_0xf228x1d=_0xf228x1b[_0xdf0a[34]],_0xf228x1e=_0xf228x1b[_0xdf0a[34]]+ _0xf228x1b[_0xdf0a[35]],_0xf228x16;if(_0xf228x1e>= _0xf228x1c){_0xf228x1e= _0xf228x1c;_0xf228x16= 200}else {_0xf228x16= 206};_0xf228x15[_0xdf0a[29]](_0xf228x16);logger[_0xdf0a[24]](_0xdf0a[22],_0xf228x17,_0xf228x16,_0xdf0a[36]);logger[_0xdf0a[26]](_0xdf0a[25],_0xf228x17,_0xf228x16,_0xdf0a[30],JSON[_0xdf0a[31]](_0xf228x18));return _0xf228x15[_0xdf0a[40]](_0xdf0a[37],_0xf228x1d+ _0xdf0a[38]+ _0xf228x1e+ _0xdf0a[39]+ _0xf228x1c)[_0xdf0a[32]](_0xf228x18)};return null}}function patchUpdates(_0xf228x20){return function(_0xf228x18){try{jsonpatch[_0xdf0a[41]](_0xf228x18,_0xf228x20,true)}catch(err){return BPromise[_0xdf0a[42]](err)};return _0xf228x18[_0xdf0a[43]]()}}function saveUpdates(_0xf228x22,_0xf228x16,_0xf228x17){return function(_0xf228x18){if(_0xf228x18){return _0xf228x18[_0xdf0a[46]](_0xf228x22)[_0xdf0a[45]](function(_0xf228x23){logger[_0xdf0a[24]](_0xdf0a[22],_0xf228x17,_0xf228x16,_0xdf0a[44]);logger[_0xdf0a[26]](_0xdf0a[25],_0xf228x17,_0xf228x16,_0xdf0a[44],JSON[_0xdf0a[31]](_0xf228x18));return _0xf228x23})};return null}}function removeEntity(_0xf228x15,_0xf228x16,_0xf228x17){return function(_0xf228x18){if(_0xf228x18){return _0xf228x18[_0xdf0a[48]]()[_0xdf0a[45]](function(){logger[_0xdf0a[24]](_0xdf0a[22],_0xf228x17,_0xf228x16,_0xdf0a[47]);logger[_0xdf0a[26]](_0xdf0a[25],_0xf228x17,_0xf228x16,_0xdf0a[47],JSON[_0xdf0a[31]](_0xf228x18));_0xf228x15[_0xdf0a[29]](204)[_0xdf0a[28]]()})}}}function handleEntityNotFound(_0xf228x15,_0xf228x16,_0xf228x17){return function(_0xf228x18){if(!_0xf228x18){logger[_0xdf0a[50]](_0xdf0a[22],_0xf228x17,404,_0xdf0a[49]);_0xf228x15[_0xdf0a[29]](404)[_0xdf0a[28]]();return null};return _0xf228x18}}function handleError(_0xf228x15,_0xf228x16,_0xf228x17){_0xf228x16= _0xf228x16|| 500;return function(_0xf228x27){logger[_0xdf0a[50]](_0xdf0a[22],_0xf228x17,_0xf228x16,JSON[_0xdf0a[31]](_0xf228x27));delete _0xf228x27[_0xdf0a[51]];_0xf228x15[_0xdf0a[29]](_0xf228x16)[_0xdf0a[52]](_0xf228x27)}}exports[_0xdf0a[53]]= function(_0xf228x28,_0xf228x15){var _0xf228x1b={},_0xf228x29={};_0xf228x29[_0xdf0a[54]]= _[_0xdf0a[57]](db[_0xdf0a[56]][_0xdf0a[55]]);_0xf228x29[_0xdf0a[58]]= _[_0xdf0a[57]](_0xf228x28[_0xdf0a[58]]);_0xf228x29[_0xdf0a[59]]= _[_0xdf0a[60]](_0xf228x29[_0xdf0a[54]],_0xf228x29[_0xdf0a[58]]);_0xf228x1b[_0xdf0a[61]]= _[_0xdf0a[60]](_0xf228x29[_0xdf0a[54]],qs[_0xdf0a[62]](_0xf228x28[_0xdf0a[58]][_0xdf0a[62]]));_0xf228x1b[_0xdf0a[61]]= (_0xf228x1b[_0xdf0a[61]][_0xdf0a[63]])?_0xf228x1b[_0xdf0a[61]]:_0xf228x29[_0xdf0a[54]];if(!_0xf228x28[_0xdf0a[58]][_0xdf0a[65]](_0xdf0a[64])){_0xf228x1b[_0xdf0a[35]]= qs[_0xdf0a[35]](_0xf228x28[_0xdf0a[58]][_0xdf0a[35]]);_0xf228x1b[_0xdf0a[34]]= qs[_0xdf0a[34]](_0xf228x28[_0xdf0a[58]][_0xdf0a[34]])};_0xf228x1b[_0xdf0a[66]]= qs[_0xdf0a[67]](_0xf228x28[_0xdf0a[58]][_0xdf0a[67]]);_0xf228x1b[_0xdf0a[68]]= qs[_0xdf0a[59]](_[_0xdf0a[69]](_0xf228x28[_0xdf0a[58]],_0xf228x29[_0xdf0a[59]]));if(_0xf228x28[_0xdf0a[58]][_0xdf0a[70]]){_0xf228x1b[_0xdf0a[68]]= _[_0xdf0a[73]](_0xf228x1b[_0xdf0a[68]],{$or:_[_0xdf0a[72]](_0xf228x1b[_0xdf0a[61]],function(_0xf228x2a){var _0xf228x2b={};_0xf228x2b[_0xf228x2a]= {$like:_0xdf0a[71]+ _0xf228x28[_0xdf0a[58]][_0xdf0a[70]]+ _0xdf0a[71]};return _0xf228x2b})})};_0xf228x1b= _[_0xdf0a[73]]({},_0xf228x1b,_0xf228x28[_0xdf0a[74]]);return db[_0xdf0a[56]][_0xdf0a[76]](_0xf228x1b)[_0xdf0a[45]](respondWithFilteredResult(_0xf228x15,_0xf228x1b,_0xdf0a[53]))[_0xdf0a[75]](handleError(_0xf228x15,null,_0xdf0a[53]))};exports[_0xdf0a[77]]= function(_0xf228x28,_0xf228x15){var _0xf228x1b={raw:true,where:{id:_0xf228x28[_0xdf0a[79]][_0xdf0a[78]]}},_0xf228x29={};_0xf228x29[_0xdf0a[54]]= _[_0xdf0a[57]](db[_0xdf0a[56]][_0xdf0a[55]]);_0xf228x29[_0xdf0a[58]]= _[_0xdf0a[57]](_0xf228x28[_0xdf0a[58]]);_0xf228x29[_0xdf0a[59]]= _[_0xdf0a[60]](_0xf228x29[_0xdf0a[54]],_0xf228x29[_0xdf0a[58]]);_0xf228x1b[_0xdf0a[61]]= _[_0xdf0a[60]](_0xf228x29[_0xdf0a[54]],qs[_0xdf0a[62]](_0xf228x28[_0xdf0a[58]][_0xdf0a[62]]));_0xf228x1b[_0xdf0a[61]]= (_0xf228x1b[_0xdf0a[61]][_0xdf0a[63]])?_0xf228x1b[_0xdf0a[61]]:_0xf228x29[_0xdf0a[54]];_0xf228x1b= _[_0xdf0a[73]]({},_0xf228x1b,_0xf228x28[_0xdf0a[74]]);return db[_0xdf0a[56]][_0xdf0a[80]](_0xf228x1b)[_0xdf0a[45]](handleEntityNotFound(_0xf228x15,null,_0xdf0a[77]))[_0xdf0a[45]](respondWithResult(_0xf228x15,null,_0xdf0a[77]))[_0xdf0a[75]](handleError(_0xf228x15,null,_0xdf0a[77]))};exports[_0xdf0a[81]]= function(_0xf228x28,_0xf228x15){return db[_0xdf0a[56]][_0xdf0a[81]](_0xf228x28[_0xdf0a[82]],{})[_0xdf0a[45]](respondWithResult(_0xf228x15,201,_0xdf0a[81]))[_0xdf0a[75]](handleError(_0xf228x15,null,_0xdf0a[81]))};exports[_0xdf0a[46]]= function(_0xf228x28,_0xf228x15){if(_0xf228x28[_0xdf0a[82]][_0xdf0a[78]]){delete _0xf228x28[_0xdf0a[82]][_0xdf0a[78]]};return db[_0xdf0a[56]][_0xdf0a[80]]({where:{id:_0xf228x28[_0xdf0a[79]][_0xdf0a[78]]}})[_0xdf0a[45]](handleEntityNotFound(_0xf228x15,null,_0xdf0a[46]))[_0xdf0a[45]](saveUpdates(_0xf228x28[_0xdf0a[82]],null,_0xdf0a[46]))[_0xdf0a[45]](respondWithResult(_0xf228x15,null,_0xdf0a[46]))[_0xdf0a[75]](handleError(_0xf228x15,null,_0xdf0a[46]))};exports[_0xdf0a[48]]= function(_0xf228x28,_0xf228x15){return db[_0xdf0a[56]][_0xdf0a[80]]({where:{id:_0xf228x28[_0xdf0a[79]][_0xdf0a[78]]}})[_0xdf0a[45]](handleEntityNotFound(_0xf228x15,null,_0xdf0a[48]))[_0xdf0a[45]](removeEntity(_0xf228x15,null,_0xdf0a[48]))[_0xdf0a[75]](handleError(_0xf228x15,null,_0xdf0a[48]))}
\ No newline at end of file
diff --git a/server/api/template/template.model.js b/server/api/template/template.model.js
new file mode 100644 (file)
index 0000000..1402940
--- /dev/null
@@ -0,0 +1 @@
+var _0x910f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x65\x6D\x70\x6C\x61\x74\x65","\x74\x6F\x6F\x6C\x73\x5F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x910f[0];var _=require(_0x910f[1]);var util=require(_0x910f[2]);var logger=require(_0x910f[4])(_0x910f[3]);var attributes=require(_0x910f[5]);module[_0x910f[6]]= function(_0xc40cx5,_0xc40cx6){return _0xc40cx5[_0x910f[9]](_0x910f[7],attributes,{tableName:_0x910f[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/template/template.rpc.js b/server/api/template/template.rpc.js
new file mode 100644 (file)
index 0000000..db47c69
--- /dev/null
@@ -0,0 +1 @@
+var _0xc554=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x65\x6D\x70\x6C\x61\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x65\x6D\x70\x6C\x61\x74\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x54\x65\x6D\x70\x6C\x61\x74\x65"];_0xc554[0];var _=require(_0xc554[1]);var util=require(_0xc554[2]);var moment=require(_0xc554[3]);var BPromise=require(_0xc554[4]);var db=require(_0xc554[6])[_0xc554[5]];var utils=require(_0xc554[7]);var logger=require(_0xc554[9])(_0xc554[8]);var jayson=require(_0xc554[10]);var client=jayson[_0xc554[12]][_0xc554[11]]({port:9002});function respondWithRpcPromise(_0x73caxb,_0x73caxc,_0x73caxd){return  new BPromise(function(_0x73caxe,_0x73caxf){return client[_0xc554[25]](_0x73caxb,_0x73caxd)[_0xc554[24]](function(_0x73cax11){logger[_0xc554[17]](_0xc554[13],_0x73caxc,_0xc554[16]);logger[_0xc554[20]](_0xc554[18],_0x73caxc,_0xc554[16],JSON[_0xc554[19]](_0x73cax11));if(_0x73cax11[_0xc554[14]]){if(_0x73cax11[_0xc554[14]][_0xc554[21]]=== 500){logger[_0xc554[14]](_0xc554[13],_0x73caxc,_0x73cax11[_0xc554[14]][_0xc554[22]]);return _0x73caxf(_0x73cax11[_0xc554[14]][_0xc554[22]])};logger[_0xc554[14]](_0xc554[13],_0x73caxc,_0x73cax11[_0xc554[14]][_0xc554[22]]);return _0x73caxe(_0x73cax11[_0xc554[14]][_0xc554[22]])}else {logger[_0xc554[17]](_0xc554[13],_0x73caxc,_0xc554[16]);_0x73caxe(_0x73cax11[_0xc554[23]][_0xc554[22]])}})[_0xc554[15]](function(_0x73cax10){logger[_0xc554[14]](_0xc554[13],_0x73caxc,_0x73cax10);_0x73caxf(_0x73cax10)})})}exports[_0xc554[26]]= function(_0x73caxd){var _0x73cax12=this;return  new Promise(function(_0x73caxe,_0x73caxf){return db[_0xc554[37]][_0xc554[36]]({raw:_0x73caxd[_0xc554[27]]?(_0x73caxd[_0xc554[27]][_0xc554[28]]=== undefined)?true:false:true,where:_0x73caxd[_0xc554[27]]?_0x73caxd[_0xc554[27]][_0xc554[29]]|| null:null,attributes:_0x73caxd[_0xc554[27]]?_0x73caxd[_0xc554[27]][_0xc554[30]]|| null:null,limit:_0x73caxd[_0xc554[27]]?_0x73caxd[_0xc554[27]][_0xc554[31]]|| null:null,include:_0x73caxd[_0xc554[27]]?(_0x73caxd[_0xc554[27]][_0xc554[32]]?_[_0xc554[35]](_0x73caxd[_0xc554[27]][_0xc554[32]],function(_0x73cax13){return {model:db[_0x73cax13[_0xc554[33]]],as:_0x73cax13[_0xc554[34]],attributes:_0x73cax13[_0xc554[30]],include:_0x73cax13[_0xc554[32]]?_[_0xc554[35]](_0x73cax13[_0xc554[32]],function(_0x73cax14){return {model:db[_0x73cax14[_0xc554[33]]],as:_0x73cax14[_0xc554[34]],attributes:_0x73cax14[_0xc554[30]],include:_0x73cax14[_0xc554[32]]?_[_0xc554[35]](_0x73cax14[_0xc554[32]],function(_0x73cax15){return {model:db[_0x73cax15[_0xc554[33]]],as:_0x73cax15[_0xc554[34]],attributes:_0x73cax15[_0xc554[30]]}}):[]}}):[]}}):[]):[]})[_0xc554[24]](function(_0x73cax11){logger[_0xc554[17]](_0xc554[26],_0x73caxd);logger[_0xc554[20]](_0xc554[26],_0x73caxd,JSON[_0xc554[19]](_0x73cax11));_0x73caxe(_0x73cax11)})[_0xc554[15]](function(_0x73cax10){logger[_0xc554[14]](_0xc554[26],_0x73cax10[_0xc554[22]],_0x73caxd);_0x73caxf(_0x73cax12[_0xc554[14]](500,_0x73cax10[_0xc554[22]]))})})}
\ No newline at end of file
diff --git a/server/api/trigger/index.js b/server/api/trigger/index.js
new file mode 100644 (file)
index 0000000..e9e5219
--- /dev/null
@@ -0,0 +1 @@
+var _0x8e21=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x6C\x6C\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x6E\x79\x5F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2F\x3A\x69\x64\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x61\x64\x64\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x8e21[0];var multer=require(_0x8e21[1]);var util=require(_0x8e21[2]);var path=require(_0x8e21[3]);var express=require(_0x8e21[4]);var router=express.Router();var auth=require(_0x8e21[5]);var config=require(_0x8e21[6]);var controller=require(_0x8e21[7]);router[_0x8e21[11]](_0x8e21[8],auth[_0x8e21[9]](),controller[_0x8e21[10]]);router[_0x8e21[11]](_0x8e21[12],auth[_0x8e21[9]](),controller[_0x8e21[13]]);router[_0x8e21[11]](_0x8e21[14],auth[_0x8e21[9]](),controller[_0x8e21[15]]);router[_0x8e21[11]](_0x8e21[16],auth[_0x8e21[9]](),controller[_0x8e21[17]]);router[_0x8e21[11]](_0x8e21[18],auth[_0x8e21[9]](),controller[_0x8e21[19]]);router[_0x8e21[21]](_0x8e21[8],auth[_0x8e21[9]](),controller[_0x8e21[20]]);router[_0x8e21[21]](_0x8e21[14],auth[_0x8e21[9]](),controller[_0x8e21[22]]);router[_0x8e21[21]](_0x8e21[16],auth[_0x8e21[9]](),controller[_0x8e21[23]]);router[_0x8e21[21]](_0x8e21[18],auth[_0x8e21[9]](),controller[_0x8e21[24]]);router[_0x8e21[26]](_0x8e21[12],auth[_0x8e21[9]](),controller[_0x8e21[25]]);router[_0x8e21[28]](_0x8e21[12],auth[_0x8e21[9]](),controller[_0x8e21[27]]);module[_0x8e21[29]]= router
\ No newline at end of file
diff --git a/server/api/trigger/trigger.attributes.js b/server/api/trigger/trigger.attributes.js
new file mode 100644 (file)
index 0000000..96da468
--- /dev/null
@@ -0,0 +1 @@
+var _0xeea6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xeea6[0];var Sequelize=require(_0xeea6[1]);module[_0xeea6[2]]= {name:{type:Sequelize[_0xeea6[3]]},channel:{type:Sequelize[_0xeea6[3]]},description:{type:Sequelize[_0xeea6[3]]},status:{type:Sequelize[_0xeea6[4]],defaultValue:false}}
\ No newline at end of file
diff --git a/server/api/trigger/trigger.controller.js b/server/api/trigger/trigger.controller.js
new file mode 100644 (file)
index 0000000..22b34ae
--- /dev/null
@@ -0,0 +1 @@
+var _0x484e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x54\x72\x69\x67\x67\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x72\x69\x67\x67\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x72\x69\x67\x67\x65\x72","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x61\x64\x64\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x41\x6C\x6C\x49\x64","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x61\x64\x64\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x41\x6E\x79\x49\x64","\x67\x65\x74\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x63\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x49\x64","\x41\x63\x74\x69\x6F\x6E","\x67\x65\x74\x41\x63\x74\x69\x6F\x6E\x73"];_0x484e[0];var jsonpatch=require(_0x484e[1]);var rp=require(_0x484e[2]);var moment=require(_0x484e[3]);var BPromise=require(_0x484e[4]);var util=require(_0x484e[5]);var path=require(_0x484e[6]);var sox=require(_0x484e[7]);var ejs=require(_0x484e[8]);var fs=require(_0x484e[9]);var _=require(_0x484e[10]);var squel=require(_0x484e[11]);var crypto=require(_0x484e[12]);var jsforce=require(_0x484e[13]);var toCsv=require(_0x484e[14]);var qs=require(_0x484e[15]);var logger=require(_0x484e[17])(_0x484e[16]);var utils=require(_0x484e[18]);var config=require(_0x484e[19]);var db=require(_0x484e[21])[_0x484e[20]];function respondWithStatusCode(_0xb157x15,_0xb157x16,_0xb157x17){_0xb157x16= _0xb157x16|| 204;return function(_0xb157x18){if(_0xb157x18){logger[_0x484e[24]](_0x484e[22],_0xb157x17,_0xb157x16,_0x484e[23]);logger[_0x484e[26]](_0x484e[25],_0xb157x17,_0xb157x16,_0x484e[23]);return _0xb157x15[_0x484e[27]](_0xb157x16)};return _0xb157x15[_0x484e[29]](304)[_0x484e[28]]()}}function respondWithResult(_0xb157x15,_0xb157x16,_0xb157x17){_0xb157x16= _0xb157x16|| 200;return function(_0xb157x18){if(_0xb157x18){logger[_0x484e[24]](_0x484e[22],_0xb157x17,_0xb157x16,_0x484e[30]);logger[_0x484e[26]](_0x484e[25],_0xb157x17,_0xb157x16,_0x484e[30],JSON[_0x484e[31]](_0xb157x18));return _0xb157x15[_0x484e[29]](_0xb157x16)[_0x484e[32]](_0xb157x18)};return _0xb157x15[_0x484e[29]](304)[_0x484e[28]]()}}function respondWithFilteredResult(_0xb157x15,_0xb157x1b,_0xb157x17){return function(_0xb157x18){if(_0xb157x18){var _0xb157x1c=_0xb157x18[_0x484e[33]],_0xb157x1d=_0xb157x1b[_0x484e[34]],_0xb157x1e=_0xb157x1b[_0x484e[34]]+ _0xb157x1b[_0x484e[35]],_0xb157x16;if(_0xb157x1e>= _0xb157x1c){_0xb157x1e= _0xb157x1c;_0xb157x16= 200}else {_0xb157x16= 206};_0xb157x15[_0x484e[29]](_0xb157x16);logger[_0x484e[24]](_0x484e[22],_0xb157x17,_0xb157x16,_0x484e[36]);logger[_0x484e[26]](_0x484e[25],_0xb157x17,_0xb157x16,_0x484e[30],JSON[_0x484e[31]](_0xb157x18));return _0xb157x15[_0x484e[40]](_0x484e[37],_0xb157x1d+ _0x484e[38]+ _0xb157x1e+ _0x484e[39]+ _0xb157x1c)[_0x484e[32]](_0xb157x18)};return null}}function patchUpdates(_0xb157x20){return function(_0xb157x18){try{jsonpatch[_0x484e[41]](_0xb157x18,_0xb157x20,true)}catch(err){return BPromise[_0x484e[42]](err)};return _0xb157x18[_0x484e[43]]()}}function saveUpdates(_0xb157x22,_0xb157x16,_0xb157x17){return function(_0xb157x18){if(_0xb157x18){return _0xb157x18[_0x484e[46]](_0xb157x22)[_0x484e[45]](function(_0xb157x23){logger[_0x484e[24]](_0x484e[22],_0xb157x17,_0xb157x16,_0x484e[44]);logger[_0x484e[26]](_0x484e[25],_0xb157x17,_0xb157x16,_0x484e[44],JSON[_0x484e[31]](_0xb157x18));return _0xb157x23})};return null}}function removeEntity(_0xb157x15,_0xb157x16,_0xb157x17){return function(_0xb157x18){if(_0xb157x18){return _0xb157x18[_0x484e[48]]()[_0x484e[45]](function(){logger[_0x484e[24]](_0x484e[22],_0xb157x17,_0xb157x16,_0x484e[47]);logger[_0x484e[26]](_0x484e[25],_0xb157x17,_0xb157x16,_0x484e[47],JSON[_0x484e[31]](_0xb157x18));_0xb157x15[_0x484e[29]](204)[_0x484e[28]]()})}}}function handleEntityNotFound(_0xb157x15,_0xb157x16,_0xb157x17){return function(_0xb157x18){if(!_0xb157x18){logger[_0x484e[50]](_0x484e[22],_0xb157x17,404,_0x484e[49]);_0xb157x15[_0x484e[29]](404)[_0x484e[28]]();return null};return _0xb157x18}}function handleError(_0xb157x15,_0xb157x16,_0xb157x17){_0xb157x16= _0xb157x16|| 500;return function(_0xb157x27){logger[_0x484e[50]](_0x484e[22],_0xb157x17,_0xb157x16,JSON[_0x484e[31]](_0xb157x27));delete _0xb157x27[_0x484e[51]];_0xb157x15[_0x484e[29]](_0xb157x16)[_0x484e[52]](_0xb157x27)}}exports[_0x484e[53]]= function(_0xb157x28,_0xb157x15){var _0xb157x1b={},_0xb157x29={};_0xb157x29[_0x484e[54]]= _[_0x484e[57]](db[_0x484e[56]][_0x484e[55]]);_0xb157x29[_0x484e[58]]= _[_0x484e[57]](_0xb157x28[_0x484e[58]]);_0xb157x29[_0x484e[59]]= _[_0x484e[60]](_0xb157x29[_0x484e[54]],_0xb157x29[_0x484e[58]]);_0xb157x1b[_0x484e[61]]= _[_0x484e[60]](_0xb157x29[_0x484e[54]],qs[_0x484e[62]](_0xb157x28[_0x484e[58]][_0x484e[62]]));_0xb157x1b[_0x484e[61]]= (_0xb157x1b[_0x484e[61]][_0x484e[63]])?_0xb157x1b[_0x484e[61]]:_0xb157x29[_0x484e[54]];if(!_0xb157x28[_0x484e[58]][_0x484e[65]](_0x484e[64])){_0xb157x1b[_0x484e[35]]= qs[_0x484e[35]](_0xb157x28[_0x484e[58]][_0x484e[35]]);_0xb157x1b[_0x484e[34]]= qs[_0x484e[34]](_0xb157x28[_0x484e[58]][_0x484e[34]])};_0xb157x1b[_0x484e[66]]= qs[_0x484e[67]](_0xb157x28[_0x484e[58]][_0x484e[67]]);_0xb157x1b[_0x484e[68]]= qs[_0x484e[59]](_[_0x484e[69]](_0xb157x28[_0x484e[58]],_0xb157x29[_0x484e[59]]));if(_0xb157x28[_0x484e[58]][_0x484e[70]]){_0xb157x1b[_0x484e[68]]= _[_0x484e[73]](_0xb157x1b[_0x484e[68]],{$or:_[_0x484e[72]](_0xb157x1b[_0x484e[61]],function(_0xb157x2a){var _0xb157x2b={};_0xb157x2b[_0xb157x2a]= {$like:_0x484e[71]+ _0xb157x28[_0x484e[58]][_0x484e[70]]+ _0x484e[71]};return _0xb157x2b})})};_0xb157x1b= _[_0x484e[73]]({},_0xb157x1b,_0xb157x28[_0x484e[74]]);return db[_0x484e[56]][_0x484e[76]](_0xb157x1b)[_0x484e[45]](respondWithFilteredResult(_0xb157x15,_0xb157x1b,_0x484e[53]))[_0x484e[75]](handleError(_0xb157x15,null,_0x484e[53]))};exports[_0x484e[77]]= function(_0xb157x28,_0xb157x15){var _0xb157x1b={raw:false,where:{id:_0xb157x28[_0x484e[79]][_0x484e[78]]}},_0xb157x29={};_0xb157x29[_0x484e[54]]= _[_0x484e[57]](db[_0x484e[56]][_0x484e[55]]);_0xb157x29[_0x484e[58]]= _[_0x484e[57]](_0xb157x28[_0x484e[58]]);_0xb157x29[_0x484e[59]]= _[_0x484e[60]](_0xb157x29[_0x484e[54]],_0xb157x29[_0x484e[58]]);_0xb157x1b[_0x484e[61]]= _[_0x484e[60]](_0xb157x29[_0x484e[54]],qs[_0x484e[62]](_0xb157x28[_0x484e[58]][_0x484e[62]]));_0xb157x1b[_0x484e[61]]= (_0xb157x1b[_0x484e[61]][_0x484e[63]])?_0xb157x1b[_0x484e[61]]:_0xb157x29[_0x484e[54]];_0xb157x1b= _[_0x484e[73]]({},_0xb157x1b,_0xb157x28[_0x484e[74]]);return db[_0x484e[56]][_0x484e[80]](_0xb157x1b)[_0x484e[45]](handleEntityNotFound(_0xb157x15,null,_0x484e[77]))[_0x484e[45]](respondWithResult(_0xb157x15,null,_0x484e[77]))[_0x484e[75]](handleError(_0xb157x15,null,_0x484e[77]))};exports[_0x484e[81]]= function(_0xb157x28,_0xb157x15){return db[_0x484e[56]][_0x484e[81]](_0xb157x28[_0x484e[82]],{})[_0x484e[45]](respondWithResult(_0xb157x15,201,_0x484e[81]))[_0x484e[75]](handleError(_0xb157x15,null,_0x484e[81]))};exports[_0x484e[46]]= function(_0xb157x28,_0xb157x15){if(_0xb157x28[_0x484e[82]][_0x484e[78]]){delete _0xb157x28[_0x484e[82]][_0x484e[78]]};return db[_0x484e[56]][_0x484e[80]]({where:{id:_0xb157x28[_0x484e[79]][_0x484e[78]]}})[_0x484e[45]](handleEntityNotFound(_0xb157x15,null,_0x484e[46]))[_0x484e[45]](saveUpdates(_0xb157x28[_0x484e[82]],null,_0x484e[46]))[_0x484e[45]](respondWithResult(_0xb157x15,null,_0x484e[46]))[_0x484e[75]](handleError(_0xb157x15,null,_0x484e[46]))};exports[_0x484e[48]]= function(_0xb157x28,_0xb157x15){return db[_0x484e[56]][_0x484e[80]]({where:{id:_0xb157x28[_0x484e[79]][_0x484e[78]]}})[_0x484e[45]](handleEntityNotFound(_0xb157x15,null,_0x484e[48]))[_0x484e[45]](removeEntity(_0xb157x15,null,_0x484e[48]))[_0x484e[75]](handleError(_0xb157x15,null,_0x484e[48]))};exports[_0x484e[83]]= function(_0xb157x28,_0xb157x15,_0xb157x2c){if(_0xb157x28[_0x484e[82]][_0x484e[78]]){delete _0xb157x28[_0x484e[82]][_0x484e[78]]};return db[_0x484e[56]][_0x484e[80]]({where:{id:_0xb157x28[_0x484e[79]][_0x484e[78]]}})[_0x484e[45]](handleEntityNotFound(_0xb157x15,null,_0x484e[83]))[_0x484e[45]](function(_0xb157x18){if(_0xb157x18){_0xb157x28[_0x484e[82]][_0x484e[84]]= _0xb157x18[_0x484e[78]];return db[_0x484e[85]][_0x484e[81]](_0xb157x28[_0x484e[82]])}})[_0x484e[45]](respondWithResult(_0xb157x15,null,_0x484e[83]))[_0x484e[75]](handleError(_0xb157x15,null,_0x484e[83]))};exports[_0x484e[86]]= function(_0xb157x28,_0xb157x15,_0xb157x2c){if(_0xb157x28[_0x484e[82]][_0x484e[78]]){delete _0xb157x28[_0x484e[82]][_0x484e[78]]};return db[_0x484e[56]][_0x484e[80]]({where:{id:_0xb157x28[_0x484e[79]][_0x484e[78]]}})[_0x484e[45]](handleEntityNotFound(_0xb157x15,null,_0x484e[86]))[_0x484e[45]](function(_0xb157x18){if(_0xb157x18){_0xb157x28[_0x484e[82]][_0x484e[87]]= _0xb157x18[_0x484e[78]];return db[_0x484e[85]][_0x484e[81]](_0xb157x28[_0x484e[82]])}})[_0x484e[45]](respondWithResult(_0xb157x15,null,_0x484e[86]))[_0x484e[75]](handleError(_0xb157x15,null,_0x484e[86]))};exports[_0x484e[88]]= function(_0xb157x28,_0xb157x18,_0xb157x2c){var _0xb157x1b={};var _0xb157x29={};var _0xb157x2d;var _0xb157x1c;return db[_0x484e[56]][_0x484e[89]]({where:{id:_0xb157x28[_0x484e[79]][_0x484e[78]]}})[_0x484e[45]](handleEntityNotFound(_0xb157x18,null,_0x484e[88]))[_0x484e[45]](function(_0xb157x18){if(_0xb157x18){_0xb157x2d= _0xb157x18;_0xb157x29[_0x484e[54]]= _[_0x484e[57]](db[_0x484e[85]][_0x484e[55]]);_0xb157x29[_0x484e[58]]= _[_0x484e[57]](_0xb157x28[_0x484e[58]]);_0xb157x29[_0x484e[59]]= _[_0x484e[60]](_0xb157x29[_0x484e[54]],_0xb157x29[_0x484e[58]]);_0xb157x1b[_0x484e[61]]= _[_0x484e[60]](_0xb157x29[_0x484e[54]],qs[_0x484e[62]](_0xb157x28[_0x484e[58]][_0x484e[62]]));_0xb157x1b[_0x484e[61]]= (_0xb157x1b[_0x484e[61]][_0x484e[63]])?_0xb157x1b[_0x484e[61]]:_0xb157x29[_0x484e[54]];_0xb157x1b[_0x484e[66]]= qs[_0x484e[67]](_0xb157x28[_0x484e[58]][_0x484e[67]]);_0xb157x1b[_0x484e[68]]= qs[_0x484e[59]](_[_0x484e[69]](_0xb157x28[_0x484e[58]],_0xb157x29[_0x484e[59]]));if(_0xb157x28[_0x484e[58]][_0x484e[70]]){_0xb157x1b[_0x484e[68]]= _[_0x484e[73]](_0xb157x1b[_0x484e[68]],{$or:_[_0x484e[72]](_0xb157x1b[_0x484e[61]],function(_0xb157x2a){var _0xb157x2b={};_0xb157x2b[_0xb157x2a]= {$like:_0x484e[71]+ _0xb157x28[_0x484e[58]][_0x484e[70]]+ _0x484e[71]};return _0xb157x2b})})};_0xb157x1b= _[_0x484e[73]]({},_0xb157x1b,_0xb157x28[_0x484e[74]]);return _0xb157x2d[_0x484e[88]](_0xb157x1b)}})[_0x484e[45]](function(_0xb157x2f){if(_0xb157x2f){_0xb157x1c= _0xb157x2f[_0x484e[63]];if(!_0xb157x28[_0x484e[58]][_0x484e[65]](_0x484e[64])){_0xb157x1b[_0x484e[35]]= qs[_0x484e[35]](_0xb157x28[_0x484e[58]][_0x484e[35]]);_0xb157x1b[_0x484e[34]]= qs[_0x484e[34]](_0xb157x28[_0x484e[58]][_0x484e[34]])};return _0xb157x2d[_0x484e[88]](_0xb157x1b)}})[_0x484e[45]](function(_0xb157x2e){return _0xb157x2e?{count:_0xb157x1c,rows:_0xb157x2e}:null})[_0x484e[45]](respondWithResult(_0xb157x18,null,_0x484e[88]))[_0x484e[75]](handleError(_0xb157x18,null,_0x484e[88]))};exports[_0x484e[90]]= function(_0xb157x28,_0xb157x18,_0xb157x2c){var _0xb157x1b={};var _0xb157x29={};var _0xb157x2d;var _0xb157x1c;return db[_0x484e[56]][_0x484e[89]]({where:{id:_0xb157x28[_0x484e[79]][_0x484e[78]]}})[_0x484e[45]](handleEntityNotFound(_0xb157x18,null,_0x484e[90]))[_0x484e[45]](function(_0xb157x18){if(_0xb157x18){_0xb157x2d= _0xb157x18;_0xb157x29[_0x484e[54]]= _[_0x484e[57]](db[_0x484e[85]][_0x484e[55]]);_0xb157x29[_0x484e[58]]= _[_0x484e[57]](_0xb157x28[_0x484e[58]]);_0xb157x29[_0x484e[59]]= _[_0x484e[60]](_0xb157x29[_0x484e[54]],_0xb157x29[_0x484e[58]]);_0xb157x1b[_0x484e[61]]= _[_0x484e[60]](_0xb157x29[_0x484e[54]],qs[_0x484e[62]](_0xb157x28[_0x484e[58]][_0x484e[62]]));_0xb157x1b[_0x484e[61]]= (_0xb157x1b[_0x484e[61]][_0x484e[63]])?_0xb157x1b[_0x484e[61]]:_0xb157x29[_0x484e[54]];_0xb157x1b[_0x484e[66]]= qs[_0x484e[67]](_0xb157x28[_0x484e[58]][_0x484e[67]]);_0xb157x1b[_0x484e[68]]= qs[_0x484e[59]](_[_0x484e[69]](_0xb157x28[_0x484e[58]],_0xb157x29[_0x484e[59]]));if(_0xb157x28[_0x484e[58]][_0x484e[70]]){_0xb157x1b[_0x484e[68]]= _[_0x484e[73]](_0xb157x1b[_0x484e[68]],{$or:_[_0x484e[72]](_0xb157x1b[_0x484e[61]],function(_0xb157x2a){var _0xb157x2b={};_0xb157x2b[_0xb157x2a]= {$like:_0x484e[71]+ _0xb157x28[_0x484e[58]][_0x484e[70]]+ _0x484e[71]};return _0xb157x2b})})};_0xb157x1b= _[_0x484e[73]]({},_0xb157x1b,_0xb157x28[_0x484e[74]]);return _0xb157x2d[_0x484e[90]](_0xb157x1b)}})[_0x484e[45]](function(_0xb157x2f){if(_0xb157x2f){_0xb157x1c= _0xb157x2f[_0x484e[63]];if(!_0xb157x28[_0x484e[58]][_0x484e[65]](_0x484e[64])){_0xb157x1b[_0x484e[35]]= qs[_0x484e[35]](_0xb157x28[_0x484e[58]][_0x484e[35]]);_0xb157x1b[_0x484e[34]]= qs[_0x484e[34]](_0xb157x28[_0x484e[58]][_0x484e[34]])};return _0xb157x2d[_0x484e[90]](_0xb157x1b)}})[_0x484e[45]](function(_0xb157x2e){return _0xb157x2e?{count:_0xb157x1c,rows:_0xb157x2e}:null})[_0x484e[45]](respondWithResult(_0xb157x18,null,_0x484e[90]))[_0x484e[75]](handleError(_0xb157x18,null,_0x484e[90]))};exports[_0x484e[91]]= function(_0xb157x28,_0xb157x15,_0xb157x2c){if(_0xb157x28[_0x484e[82]][_0x484e[78]]){delete _0xb157x28[_0x484e[82]][_0x484e[78]]};return db[_0x484e[56]][_0x484e[80]]({where:{id:_0xb157x28[_0x484e[79]][_0x484e[78]]}})[_0x484e[45]](handleEntityNotFound(_0xb157x15,null,_0x484e[91]))[_0x484e[45]](function(_0xb157x18){if(_0xb157x18){_0xb157x28[_0x484e[82]][_0x484e[92]]= _0xb157x18[_0x484e[78]];return db[_0x484e[93]][_0x484e[81]](_0xb157x28[_0x484e[82]])}})[_0x484e[45]](respondWithResult(_0xb157x15,null,_0x484e[91]))[_0x484e[75]](handleError(_0xb157x15,null,_0x484e[91]))};exports[_0x484e[94]]= function(_0xb157x28,_0xb157x18,_0xb157x2c){var _0xb157x1b={};var _0xb157x29={};var _0xb157x2d;var _0xb157x1c;return db[_0x484e[56]][_0x484e[89]]({where:{id:_0xb157x28[_0x484e[79]][_0x484e[78]]}})[_0x484e[45]](handleEntityNotFound(_0xb157x18,null,_0x484e[94]))[_0x484e[45]](function(_0xb157x18){if(_0xb157x18){_0xb157x2d= _0xb157x18;_0xb157x29[_0x484e[54]]= _[_0x484e[57]](db[_0x484e[93]][_0x484e[55]]);_0xb157x29[_0x484e[58]]= _[_0x484e[57]](_0xb157x28[_0x484e[58]]);_0xb157x29[_0x484e[59]]= _[_0x484e[60]](_0xb157x29[_0x484e[54]],_0xb157x29[_0x484e[58]]);_0xb157x1b[_0x484e[61]]= _[_0x484e[60]](_0xb157x29[_0x484e[54]],qs[_0x484e[62]](_0xb157x28[_0x484e[58]][_0x484e[62]]));_0xb157x1b[_0x484e[61]]= (_0xb157x1b[_0x484e[61]][_0x484e[63]])?_0xb157x1b[_0x484e[61]]:_0xb157x29[_0x484e[54]];_0xb157x1b[_0x484e[66]]= qs[_0x484e[67]](_0xb157x28[_0x484e[58]][_0x484e[67]]);_0xb157x1b[_0x484e[68]]= qs[_0x484e[59]](_[_0x484e[69]](_0xb157x28[_0x484e[58]],_0xb157x29[_0x484e[59]]));if(_0xb157x28[_0x484e[58]][_0x484e[70]]){_0xb157x1b[_0x484e[68]]= _[_0x484e[73]](_0xb157x1b[_0x484e[68]],{$or:_[_0x484e[72]](_0xb157x1b[_0x484e[61]],function(_0xb157x2a){var _0xb157x2b={};_0xb157x2b[_0xb157x2a]= {$like:_0x484e[71]+ _0xb157x28[_0x484e[58]][_0x484e[70]]+ _0x484e[71]};return _0xb157x2b})})};_0xb157x1b= _[_0x484e[73]]({},_0xb157x1b,_0xb157x28[_0x484e[74]]);return _0xb157x2d[_0x484e[94]](_0xb157x1b)}})[_0x484e[45]](function(_0xb157x2f){if(_0xb157x2f){_0xb157x1c= _0xb157x2f[_0x484e[63]];if(!_0xb157x28[_0x484e[58]][_0x484e[65]](_0x484e[64])){_0xb157x1b[_0x484e[35]]= qs[_0x484e[35]](_0xb157x28[_0x484e[58]][_0x484e[35]]);_0xb157x1b[_0x484e[34]]= qs[_0x484e[34]](_0xb157x28[_0x484e[58]][_0x484e[34]])};return _0xb157x2d[_0x484e[94]](_0xb157x1b)}})[_0x484e[45]](function(_0xb157x2e){return _0xb157x2e?{count:_0xb157x1c,rows:_0xb157x2e}:null})[_0x484e[45]](respondWithResult(_0xb157x18,null,_0x484e[94]))[_0x484e[75]](handleError(_0xb157x18,null,_0x484e[94]))}
\ No newline at end of file
diff --git a/server/api/trigger/trigger.model.js b/server/api/trigger/trigger.model.js
new file mode 100644 (file)
index 0000000..3360d54
--- /dev/null
@@ -0,0 +1 @@
+var _0x887d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x72\x69\x67\x67\x65\x72","\x74\x6F\x6F\x6C\x73\x5F\x74\x72\x69\x67\x67\x65\x72\x73","\x64\x65\x66\x69\x6E\x65"];_0x887d[0];var _=require(_0x887d[1]);var util=require(_0x887d[2]);var logger=require(_0x887d[4])(_0x887d[3]);var attributes=require(_0x887d[5]);module[_0x887d[6]]= function(_0x10d7x5,_0x10d7x6){return _0x10d7x5[_0x887d[9]](_0x887d[7],attributes,{tableName:_0x887d[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/trigger/trigger.rpc.js b/server/api/trigger/trigger.rpc.js
new file mode 100644 (file)
index 0000000..bb43cfd
--- /dev/null
@@ -0,0 +1 @@
+var _0x8c07=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x72\x69\x67\x67\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x72\x69\x67\x67\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x54\x72\x69\x67\x67\x65\x72","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x54\x72\x69\x67\x67\x65\x72","\x53\x68\x6F\x77\x54\x72\x69\x67\x67\x65\x72","\x66\x69\x6E\x64"];_0x8c07[0];var _=require(_0x8c07[1]);var util=require(_0x8c07[2]);var moment=require(_0x8c07[3]);var BPromise=require(_0x8c07[4]);var db=require(_0x8c07[6])[_0x8c07[5]];var utils=require(_0x8c07[7]);var logger=require(_0x8c07[9])(_0x8c07[8]);var jayson=require(_0x8c07[10]);var client=jayson[_0x8c07[12]][_0x8c07[11]]({port:9002});function respondWithRpcPromise(_0xa08fxb,_0xa08fxc,_0xa08fxd){return  new BPromise(function(_0xa08fxe,_0xa08fxf){return client[_0x8c07[25]](_0xa08fxb,_0xa08fxd)[_0x8c07[24]](function(_0xa08fx11){logger[_0x8c07[17]](_0x8c07[13],_0xa08fxc,_0x8c07[16]);logger[_0x8c07[20]](_0x8c07[18],_0xa08fxc,_0x8c07[16],JSON[_0x8c07[19]](_0xa08fx11));if(_0xa08fx11[_0x8c07[14]]){if(_0xa08fx11[_0x8c07[14]][_0x8c07[21]]=== 500){logger[_0x8c07[14]](_0x8c07[13],_0xa08fxc,_0xa08fx11[_0x8c07[14]][_0x8c07[22]]);return _0xa08fxf(_0xa08fx11[_0x8c07[14]][_0x8c07[22]])};logger[_0x8c07[14]](_0x8c07[13],_0xa08fxc,_0xa08fx11[_0x8c07[14]][_0x8c07[22]]);return _0xa08fxe(_0xa08fx11[_0x8c07[14]][_0x8c07[22]])}else {logger[_0x8c07[17]](_0x8c07[13],_0xa08fxc,_0x8c07[16]);_0xa08fxe(_0xa08fx11[_0x8c07[23]][_0x8c07[22]])}})[_0x8c07[15]](function(_0xa08fx10){logger[_0x8c07[14]](_0x8c07[13],_0xa08fxc,_0xa08fx10);_0xa08fxf(_0xa08fx10)})})}exports[_0x8c07[26]]= function(_0xa08fxd){var _0xa08fx12=this;return  new Promise(function(_0xa08fxe,_0xa08fxf){return db[_0x8c07[37]][_0x8c07[36]]({raw:_0xa08fxd[_0x8c07[27]]?(_0xa08fxd[_0x8c07[27]][_0x8c07[28]]=== undefined)?true:false:true,where:_0xa08fxd[_0x8c07[27]]?_0xa08fxd[_0x8c07[27]][_0x8c07[29]]|| null:null,attributes:_0xa08fxd[_0x8c07[27]]?_0xa08fxd[_0x8c07[27]][_0x8c07[30]]|| null:null,limit:_0xa08fxd[_0x8c07[27]]?_0xa08fxd[_0x8c07[27]][_0x8c07[31]]|| null:null,include:_0xa08fxd[_0x8c07[27]]?(_0xa08fxd[_0x8c07[27]][_0x8c07[32]]?_[_0x8c07[35]](_0xa08fxd[_0x8c07[27]][_0x8c07[32]],function(_0xa08fx13){return {model:db[_0xa08fx13[_0x8c07[33]]],as:_0xa08fx13[_0x8c07[34]],attributes:_0xa08fx13[_0x8c07[30]],include:_0xa08fx13[_0x8c07[32]]?_[_0x8c07[35]](_0xa08fx13[_0x8c07[32]],function(_0xa08fx14){return {model:db[_0xa08fx14[_0x8c07[33]]],as:_0xa08fx14[_0x8c07[34]],attributes:_0xa08fx14[_0x8c07[30]],include:_0xa08fx14[_0x8c07[32]]?_[_0x8c07[35]](_0xa08fx14[_0x8c07[32]],function(_0xa08fx15){return {model:db[_0xa08fx15[_0x8c07[33]]],as:_0xa08fx15[_0x8c07[34]],attributes:_0xa08fx15[_0x8c07[30]]}}):[]}}):[]}}):[]):[]})[_0x8c07[24]](function(_0xa08fx11){logger[_0x8c07[17]](_0x8c07[26],_0xa08fxd);logger[_0x8c07[20]](_0x8c07[26],_0xa08fxd,JSON[_0x8c07[19]](_0xa08fx11));_0xa08fxe(_0xa08fx11)})[_0x8c07[15]](function(_0xa08fx10){logger[_0x8c07[14]](_0x8c07[26],_0xa08fx10[_0x8c07[22]],_0xa08fxd);_0xa08fxf(_0xa08fx12[_0x8c07[14]](500,_0xa08fx10[_0x8c07[22]]))})})};exports[_0x8c07[38]]= function(_0xa08fxd){var _0xa08fx12=this;return  new Promise(function(_0xa08fxe,_0xa08fxf){return db[_0x8c07[37]][_0x8c07[39]]({raw:_0xa08fxd[_0x8c07[27]]?(_0xa08fxd[_0x8c07[27]][_0x8c07[28]]=== undefined)?true:false:true,where:_0xa08fxd[_0x8c07[27]]?_0xa08fxd[_0x8c07[27]][_0x8c07[29]]|| null:null,attributes:_0xa08fxd[_0x8c07[27]]?_0xa08fxd[_0x8c07[27]][_0x8c07[30]]|| null:null,include:_0xa08fxd[_0x8c07[27]]?(_0xa08fxd[_0x8c07[27]][_0x8c07[32]]?_[_0x8c07[35]](_0xa08fxd[_0x8c07[27]][_0x8c07[32]],function(_0xa08fx13){return {model:db[_0xa08fx13[_0x8c07[33]]],as:_0xa08fx13[_0x8c07[34]],attributes:_0xa08fx13[_0x8c07[30]],include:_0xa08fx13[_0x8c07[32]]?_[_0x8c07[35]](_0xa08fx13[_0x8c07[32]],function(_0xa08fx14){return {model:db[_0xa08fx14[_0x8c07[33]]],as:_0xa08fx14[_0x8c07[34]],attributes:_0xa08fx14[_0x8c07[30]],include:_0xa08fx14[_0x8c07[32]]?_[_0x8c07[35]](_0xa08fx14[_0x8c07[32]],function(_0xa08fx15){return {model:db[_0xa08fx15[_0x8c07[33]]],as:_0xa08fx15[_0x8c07[34]],attributes:_0xa08fx15[_0x8c07[30]]}}):[]}}):[]}}):[]):[]})[_0x8c07[24]](function(_0xa08fx11){logger[_0x8c07[17]](_0x8c07[38],_0xa08fxd);logger[_0x8c07[20]](_0x8c07[38],_0xa08fxd,JSON[_0x8c07[19]](_0xa08fx11));_0xa08fxe(_0xa08fx11)})[_0x8c07[15]](function(_0xa08fx10){logger[_0x8c07[14]](_0x8c07[38],_0xa08fx10[_0x8c07[22]],_0xa08fxd);_0xa08fxf(_0xa08fx12[_0x8c07[14]](500,_0xa08fx10[_0x8c07[22]]))})})}
\ No newline at end of file
diff --git a/server/api/trunk/index.js b/server/api/trunk/index.js
new file mode 100644 (file)
index 0000000..a0d8bc4
--- /dev/null
@@ -0,0 +1 @@
+var _0x46de=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x74\x72\x75\x6E\x6B\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x46de[0];var multer=require(_0x46de[1]);var util=require(_0x46de[2]);var path=require(_0x46de[3]);var express=require(_0x46de[4]);var router=express.Router();var auth=require(_0x46de[5]);var config=require(_0x46de[6]);var controller=require(_0x46de[7]);router[_0x46de[11]](_0x46de[8],auth[_0x46de[9]](),controller[_0x46de[10]]);router[_0x46de[11]](_0x46de[12],auth[_0x46de[9]](),controller[_0x46de[13]]);router[_0x46de[15]](_0x46de[8],auth[_0x46de[9]](),controller[_0x46de[14]]);router[_0x46de[17]](_0x46de[12],auth[_0x46de[9]](),controller[_0x46de[16]]);router[_0x46de[19]](_0x46de[12],auth[_0x46de[9]](),controller[_0x46de[18]]);module[_0x46de[20]]= router
\ No newline at end of file
diff --git a/server/api/trunk/trunk.attributes.js b/server/api/trunk/trunk.attributes.js
new file mode 100644 (file)
index 0000000..e40047b
--- /dev/null
@@ -0,0 +1 @@
+var _0xe057=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x66\x72\x69\x65\x6E\x64","\x75\x73\x65\x72","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x64\x70","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74","\x2C","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x70\x6C\x69\x74","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x75\x64\x70\x22\x2C\x20\x22\x74\x63\x70\x22\x5D","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x67\x6F\x69\x6E\x67","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x6E\x61\x74","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x22\x2C\x20\x22\x63\x6F\x6D\x65\x64\x69\x61\x22\x5D","\x65\x6E","\x61\x6C\x6C","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x61\x6C\x6C\x6F\x77","\x3B","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x61\x6C\x61\x77\x22\x2C\x20\x22\x75\x6C\x61\x77\x22\x2C\x20\x22\x67\x73\x6D\x22\x5D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x69\x6E\x73\x65\x63\x75\x72\x65","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x70\x6F\x72\x74\x22\x2C\x20\x22\x69\x6E\x76\x69\x74\x65\x22\x5D","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x6C\x77\x61\x79\x73","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x66\x69\x6E\x67\x65\x72\x70\x72\x69\x6E\x74","\x63\x65\x72\x74\x69\x66\x69\x63\x61\x74\x65","\x61\x63\x74\x69\x76\x65","\x70\x61\x73\x73\x69\x76\x65","\x61\x63\x74\x70\x61\x73\x73","\x64\x79\x6E\x61\x6D\x69\x63","\x75\x70\x64\x61\x74\x65\x2C\x6E\x6F\x6E\x61\x74","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0xe057[0];var Sequelize=require(_0xe057[1]);module[_0xe057[2]]= {name:{type:Sequelize[_0xe057[3]],allowNull:false,unique:_0xe057[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},type:{type:Sequelize.ENUM(_0xe057[5],_0xe057[6],_0xe057[7]),allowNull:false,defaultValue:_0xe057[5]},context:{type:Sequelize[_0xe057[3]],allowNull:false,defaultValue:_0xe057[8]},callingpres:{type:Sequelize.ENUM(_0xe057[9],_0xe057[10],_0xe057[11],_0xe057[12],_0xe057[13],_0xe057[14],_0xe057[15],_0xe057[16])},deny:{type:Sequelize[_0xe057[3]]},permit:{type:Sequelize[_0xe057[3]]},secret:{type:Sequelize[_0xe057[3]]},md5secret:{type:Sequelize[_0xe057[3]]},remotesecret:{type:Sequelize[_0xe057[3]]},transport:{type:Sequelize[_0xe057[3]],defaultValue:_0xe057[17],set:function(_0xcc15x2){this[_0xe057[21]](_0xe057[18],_0xcc15x2?_0xcc15x2[_0xe057[20]](_0xe057[19]):null)},get:function(){return this[_0xe057[22]](_0xe057[18])?this[_0xe057[22]](_0xe057[18])[_0xe057[23]](_0xe057[19]):null},comment:_0xe057[24]},dtmfmode:{type:Sequelize.ENUM(_0xe057[25],_0xe057[26],_0xe057[27],_0xe057[28],_0xe057[29]),defaultValue:_0xe057[25]},directmedia:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31],_0xe057[32],_0xe057[33],_0xe057[34]),defaultValue:_0xe057[31]},directrtpsetup:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31]),defaultValue:_0xe057[31]},directmediapermit:{type:Sequelize[_0xe057[3]]},directmediadeny:{type:Sequelize[_0xe057[3]]},nat:{type:Sequelize[_0xe057[3]],defaultValue:_0xe057[35],set:function(_0xcc15x2){this[_0xe057[21]](_0xe057[36],_0xcc15x2?_0xcc15x2[_0xe057[20]](_0xe057[19]):null)},get:function(){return this[_0xe057[22]](_0xe057[36])?this[_0xe057[22]](_0xe057[36])[_0xe057[23]](_0xe057[19]):null},comment:_0xe057[37]},callgroup:{type:Sequelize[_0xe057[3]]},namedcallgroup:{type:Sequelize[_0xe057[3]]},pickupgroup:{type:Sequelize[_0xe057[3]]},namedpickupgroup:{type:Sequelize[_0xe057[3]]},language:{type:Sequelize[_0xe057[3]],defaultValue:_0xe057[38]},tonezone:{type:Sequelize[_0xe057[3]],allowNull:true},disallow:{type:Sequelize[_0xe057[3]],defaultValue:_0xe057[39]},allow:{type:Sequelize[_0xe057[3]],defaultValue:_0xe057[40],set:function(_0xcc15x2){this[_0xe057[21]](_0xe057[41],_0xcc15x2?_0xcc15x2[_0xe057[20]](_0xe057[42]):null)},get:function(){return this[_0xe057[22]](_0xe057[41])?this[_0xe057[22]](_0xe057[41])[_0xe057[23]](_0xe057[42]):null},comment:_0xe057[43]},autoframing:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},insecure:{type:Sequelize[_0xe057[3]],defaultValue:_0xe057[44],set:function(_0xcc15x2){this[_0xe057[21]](_0xe057[45],_0xcc15x2?_0xcc15x2[_0xe057[20]](_0xe057[19]):null)},get:function(){return this[_0xe057[22]](_0xe057[45])?this[_0xe057[22]](_0xe057[45])[_0xe057[23]](_0xe057[19]):null},comment:_0xe057[46]},trustrpid:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31]),defaultValue:_0xe057[31]},trust_id_outbound:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31]),defaultValue:_0xe057[31]},progressinband:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31],_0xe057[47])},promiscredir:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},useclientcode:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},accountcode:{type:Sequelize.INTEGER(11)},setvar:{type:Sequelize[_0xe057[3]]},callerid:{type:Sequelize[_0xe057[3]],defaultValue:_0xe057[48]},amaflags:{type:Sequelize[_0xe057[3]]},callcounter:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31]),defaultValue:_0xe057[30]},busylevel:{type:Sequelize.INTEGER(11)},allowoverlap:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},allowsubscribe:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},allowtransfer:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},ignoresdpversion:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},subscribecontext:{type:Sequelize[_0xe057[3]]},template:{type:Sequelize[_0xe057[3]]},videosupport:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31],_0xe057[49]),defaultValue:_0xe057[31]},maxcallbitrate:{type:Sequelize.INTEGER(11)},rfc2833compensate:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},mailbox:{type:Sequelize[_0xe057[3]]},session_timers:{type:Sequelize.ENUM(_0xe057[50],_0xe057[51],_0xe057[52])},session_expires:{type:Sequelize.INTEGER(11)},session_minse:{type:Sequelize.INTEGER(11)},session_refresher:{type:Sequelize.ENUM(_0xe057[53],_0xe057[54]),defaultValue:_0xe057[54]},t38pt_usertpsource:{type:Sequelize[_0xe057[3]]},regexten:{type:Sequelize[_0xe057[3]]},fromdomain:{type:Sequelize[_0xe057[3]]},fromuser:{type:Sequelize[_0xe057[3]]},port:{type:Sequelize.INTEGER(5)},qualify:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31]),defaultValue:_0xe057[30]},keepalive:{type:Sequelize.INTEGER(11)},defaultip:{type:Sequelize[_0xe057[3]]},defaultuser:{type:Sequelize[_0xe057[3]]},rtptimeout:{type:Sequelize.INTEGER(11)},rtpholdtimeout:{type:Sequelize.INTEGER(11)},rtpkeepalive:{type:Sequelize.INTEGER(11)},sendrpid:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31]),defaultValue:_0xe057[31]},outboundproxy:{type:Sequelize[_0xe057[3]]},callbackextension:{type:Sequelize[_0xe057[3]]},timert1:{type:Sequelize.INTEGER(11)},timerb:{type:Sequelize.INTEGER(11)},qualifyfreq:{type:Sequelize.INTEGER(11)},contactpermit:{type:Sequelize[_0xe057[3]]},contactdeny:{type:Sequelize[_0xe057[3]]},contactacl:{type:Sequelize[_0xe057[3]]},unsolicited_mailbox:{type:Sequelize[_0xe057[3]]},use_q850_reason:{type:Sequelize[_0xe057[3]]},maxforwards:{type:Sequelize.INTEGER(11)},encryption:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31]),defaultValue:_0xe057[31]},avpf:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},force_avp:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},icesupport:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},dtlsenable:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},dtlsverify:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31],_0xe057[55],_0xe057[56])},dtlsrekey:{type:Sequelize.INTEGER(11)},dtlscertfile:{type:Sequelize[_0xe057[3]]},dtlsprivatekey:{type:Sequelize[_0xe057[3]]},dtlscipher:{type:Sequelize[_0xe057[3]]},dtlscafile:{type:Sequelize[_0xe057[3]]},dtlscapath:{type:Sequelize[_0xe057[3]]},dtlssetup:{type:Sequelize.ENUM(_0xe057[57],_0xe057[58],_0xe057[59]),allowNull:true},dtlsfingerprint:{type:Sequelize[_0xe057[3]]},usereqphone:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31]),defaultValue:_0xe057[31]},recordonfeature:{type:Sequelize[_0xe057[3]]},recordofffeature:{type:Sequelize[_0xe057[3]]},call_limit:{type:Sequelize.INTEGER(11),defaultValue:1000},registertrying:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},subscribemwi:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31])},vmexten:{type:Sequelize[_0xe057[3]]},mohinterpret:{type:Sequelize[_0xe057[3]]},mohsuggest:{type:Sequelize[_0xe057[3]]},parkinglot:{type:Sequelize[_0xe057[3]]},description:{type:Sequelize[_0xe057[3]]},host:{type:Sequelize[_0xe057[3]],defaultValue:_0xe057[60]},canreinvite:{type:Sequelize.ENUM(_0xe057[30],_0xe057[31],_0xe057[32],_0xe057[33],_0xe057[61]),defaultValue:_0xe057[31]},registry:{type:Sequelize[_0xe057[3]]},otherFields:{type:Sequelize[_0xe057[3]]},active:{type:Sequelize[_0xe057[62]],allowNull:false,defaultValue:true}}
\ No newline at end of file
diff --git a/server/api/trunk/trunk.controller.js b/server/api/trunk/trunk.controller.js
new file mode 100644 (file)
index 0000000..49ad6bd
--- /dev/null
@@ -0,0 +1 @@
+var _0x89e5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x54\x72\x75\x6E\x6B","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70\x2E\x73\x6F","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x74\x72\x75\x6E\x6B\x2E\x65\x6A\x73","\x6A\x6F\x69\x6E","\x75\x74\x66\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x72\x65\x67\x69\x73\x74\x72\x79\x2E\x65\x6A\x73","\x72\x65\x6E\x64\x65\x72","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x66","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x72\x65\x67\x69\x73\x74\x72\x79","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x73\x69\x70\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x72\x65\x67\x69\x73\x74\x65\x72\x73\x2E\x63\x6F\x6E\x66","\x66\x69\x6E\x64\x41\x6C\x6C","\x62\x6F\x64\x79"];_0x89e5[0];var jsonpatch=require(_0x89e5[1]);var rp=require(_0x89e5[2]);var moment=require(_0x89e5[3]);var BPromise=require(_0x89e5[4]);var util=require(_0x89e5[5]);var path=require(_0x89e5[6]);var sox=require(_0x89e5[7]);var ejs=require(_0x89e5[8]);var fs=require(_0x89e5[9]);var _=require(_0x89e5[10]);var squel=require(_0x89e5[11]);var crypto=require(_0x89e5[12]);var jsforce=require(_0x89e5[13]);var toCsv=require(_0x89e5[14]);var qs=require(_0x89e5[15]);var logger=require(_0x89e5[17])(_0x89e5[16]);var utils=require(_0x89e5[18]);var config=require(_0x89e5[19]);var db=require(_0x89e5[21])[_0x89e5[20]];var jayson=require(_0x89e5[22]);var client=jayson[_0x89e5[24]][_0x89e5[23]]({port:9002});function respondWithRpcPromise(_0xb6adx17,_0xb6adx18,_0xb6adx19){return  new BPromise(function(_0xb6adx1a,_0xb6adx1b){return client[_0x89e5[37]](_0xb6adx17,_0xb6adx19)[_0x89e5[36]](function(_0xb6adx1d){logger[_0x89e5[29]](_0x89e5[25],_0xb6adx18,_0x89e5[28]);logger[_0x89e5[32]](_0x89e5[30],_0xb6adx18,_0x89e5[28],JSON[_0x89e5[31]](_0xb6adx1d));if(_0xb6adx1d[_0x89e5[26]]){if(_0xb6adx1d[_0x89e5[26]][_0x89e5[33]]=== 500){logger[_0x89e5[26]](_0x89e5[25],_0xb6adx18,_0xb6adx1d[_0x89e5[26]][_0x89e5[34]]);return _0xb6adx1b(_0xb6adx1d[_0x89e5[26]][_0x89e5[34]])};logger[_0x89e5[26]](_0x89e5[25],_0xb6adx18,_0xb6adx1d[_0x89e5[26]][_0x89e5[34]]);return _0xb6adx1a(_0xb6adx1d[_0x89e5[26]][_0x89e5[34]])}else {logger[_0x89e5[29]](_0x89e5[25],_0xb6adx18,_0x89e5[28]);_0xb6adx1a(_0xb6adx1d[_0x89e5[35]][_0x89e5[34]])}})[_0x89e5[27]](function(_0xb6adx1c){logger[_0x89e5[26]](_0x89e5[25],_0xb6adx18,_0xb6adx1c);_0xb6adx1b(_0xb6adx1c)})})}function respondWithStatusCode(_0xb6adx1d,_0xb6adx1f,_0xb6adx18){_0xb6adx1f= _0xb6adx1f|| 204;return function(_0xb6adx20){if(_0xb6adx20){logger[_0x89e5[29]](_0x89e5[30],_0xb6adx18,_0xb6adx1f,_0x89e5[38]);logger[_0x89e5[32]](_0x89e5[39],_0xb6adx18,_0xb6adx1f,_0x89e5[38]);return _0xb6adx1d[_0x89e5[40]](_0xb6adx1f)};return _0xb6adx1d[_0x89e5[42]](304)[_0x89e5[41]]()}}function respondWithResult(_0xb6adx1d,_0xb6adx1f,_0xb6adx18){_0xb6adx1f= _0xb6adx1f|| 200;return function(_0xb6adx20){if(_0xb6adx20){logger[_0x89e5[29]](_0x89e5[30],_0xb6adx18,_0xb6adx1f,_0x89e5[43]);logger[_0x89e5[32]](_0x89e5[39],_0xb6adx18,_0xb6adx1f,_0x89e5[43],JSON[_0x89e5[31]](_0xb6adx20));return _0xb6adx1d[_0x89e5[42]](_0xb6adx1f)[_0x89e5[44]](_0xb6adx20)};return _0xb6adx1d[_0x89e5[42]](304)[_0x89e5[41]]()}}function respondWithFilteredResult(_0xb6adx1d,_0xb6adx23,_0xb6adx18){return function(_0xb6adx20){if(_0xb6adx20){var _0xb6adx24=_0xb6adx20[_0x89e5[45]],_0xb6adx25=_0xb6adx23[_0x89e5[46]],_0xb6adx26=_0xb6adx23[_0x89e5[46]]+ _0xb6adx23[_0x89e5[47]],_0xb6adx1f;if(_0xb6adx26>= _0xb6adx24){_0xb6adx26= _0xb6adx24;_0xb6adx1f= 200}else {_0xb6adx1f= 206};_0xb6adx1d[_0x89e5[42]](_0xb6adx1f);logger[_0x89e5[29]](_0x89e5[30],_0xb6adx18,_0xb6adx1f,_0x89e5[48]);logger[_0x89e5[32]](_0x89e5[39],_0xb6adx18,_0xb6adx1f,_0x89e5[43],JSON[_0x89e5[31]](_0xb6adx20));return _0xb6adx1d[_0x89e5[52]](_0x89e5[49],_0xb6adx25+ _0x89e5[50]+ _0xb6adx26+ _0x89e5[51]+ _0xb6adx24)[_0x89e5[44]](_0xb6adx20)};return null}}function patchUpdates(_0xb6adx28){return function(_0xb6adx20){try{jsonpatch[_0x89e5[53]](_0xb6adx20,_0xb6adx28,true)}catch(err){return BPromise[_0x89e5[54]](err)};return _0xb6adx20[_0x89e5[55]]()}}function saveUpdates(_0xb6adx2a,_0xb6adx1f,_0xb6adx18){return function(_0xb6adx20){if(_0xb6adx20){return _0xb6adx20[_0x89e5[57]](_0xb6adx2a)[_0x89e5[36]](function(_0xb6adx2b){logger[_0x89e5[29]](_0x89e5[30],_0xb6adx18,_0xb6adx1f,_0x89e5[56]);logger[_0x89e5[32]](_0x89e5[39],_0xb6adx18,_0xb6adx1f,_0x89e5[56],JSON[_0x89e5[31]](_0xb6adx20));return _0xb6adx2b})};return null}}function removeEntity(_0xb6adx1d,_0xb6adx1f,_0xb6adx18){return function(_0xb6adx20){if(_0xb6adx20){return _0xb6adx20[_0x89e5[59]]()[_0x89e5[36]](function(){logger[_0x89e5[29]](_0x89e5[30],_0xb6adx18,_0xb6adx1f,_0x89e5[58]);logger[_0x89e5[32]](_0x89e5[39],_0xb6adx18,_0xb6adx1f,_0x89e5[58],JSON[_0x89e5[31]](_0xb6adx20));_0xb6adx1d[_0x89e5[42]](204)[_0x89e5[41]]()})}}}function handleEntityNotFound(_0xb6adx1d,_0xb6adx1f,_0xb6adx18){return function(_0xb6adx20){if(!_0xb6adx20){logger[_0x89e5[26]](_0x89e5[30],_0xb6adx18,404,_0x89e5[60]);_0xb6adx1d[_0x89e5[42]](404)[_0x89e5[41]]();return null};return _0xb6adx20}}function handleError(_0xb6adx1d,_0xb6adx1f,_0xb6adx18){_0xb6adx1f= _0xb6adx1f|| 500;return function(_0xb6adx1c){logger[_0x89e5[26]](_0x89e5[30],_0xb6adx18,_0xb6adx1f,JSON[_0x89e5[31]](_0xb6adx1c));delete _0xb6adx1c[_0x89e5[61]];_0xb6adx1d[_0x89e5[42]](_0xb6adx1f)[_0x89e5[62]](_0xb6adx1c)}}exports[_0x89e5[63]]= function(_0xb6adx19,_0xb6adx1d){var _0xb6adx23={},_0xb6adx2f={};_0xb6adx2f[_0x89e5[64]]= _[_0x89e5[67]](db[_0x89e5[66]][_0x89e5[65]]);_0xb6adx2f[_0x89e5[68]]= _[_0x89e5[67]](_0xb6adx19[_0x89e5[68]]);_0xb6adx2f[_0x89e5[69]]= _[_0x89e5[70]](_0xb6adx2f[_0x89e5[64]],_0xb6adx2f[_0x89e5[68]]);_0xb6adx23[_0x89e5[71]]= _[_0x89e5[70]](_0xb6adx2f[_0x89e5[64]],qs[_0x89e5[72]](_0xb6adx19[_0x89e5[68]][_0x89e5[72]]));_0xb6adx23[_0x89e5[71]]= (_0xb6adx23[_0x89e5[71]][_0x89e5[73]])?_0xb6adx23[_0x89e5[71]]:_0xb6adx2f[_0x89e5[64]];if(!_0xb6adx19[_0x89e5[68]][_0x89e5[75]](_0x89e5[74])){_0xb6adx23[_0x89e5[47]]= qs[_0x89e5[47]](_0xb6adx19[_0x89e5[68]][_0x89e5[47]]);_0xb6adx23[_0x89e5[46]]= qs[_0x89e5[46]](_0xb6adx19[_0x89e5[68]][_0x89e5[46]])};_0xb6adx23[_0x89e5[76]]= qs[_0x89e5[77]](_0xb6adx19[_0x89e5[68]][_0x89e5[77]]);_0xb6adx23[_0x89e5[78]]= qs[_0x89e5[69]](_[_0x89e5[79]](_0xb6adx19[_0x89e5[68]],_0xb6adx2f[_0x89e5[69]]));if(_0xb6adx19[_0x89e5[68]][_0x89e5[80]]){_0xb6adx23[_0x89e5[78]]= _[_0x89e5[83]](_0xb6adx23[_0x89e5[78]],{$or:_[_0x89e5[82]](_0xb6adx23[_0x89e5[71]],function(_0xb6adx30){var _0xb6adx31={};_0xb6adx31[_0xb6adx30]= {$like:_0x89e5[81]+ _0xb6adx19[_0x89e5[68]][_0x89e5[80]]+ _0x89e5[81]};return _0xb6adx31})})};_0xb6adx23= _[_0x89e5[83]]({},_0xb6adx23,_0xb6adx19[_0x89e5[84]]);return db[_0x89e5[66]][_0x89e5[85]](_0xb6adx23)[_0x89e5[36]](respondWithFilteredResult(_0xb6adx1d,_0xb6adx23,_0x89e5[63]))[_0x89e5[27]](handleError(_0xb6adx1d,null,_0x89e5[63]))};exports[_0x89e5[86]]= function(_0xb6adx19,_0xb6adx1d){var _0xb6adx23={raw:false,where:{id:_0xb6adx19[_0x89e5[88]][_0x89e5[87]]}},_0xb6adx2f={};_0xb6adx2f[_0x89e5[64]]= _[_0x89e5[67]](db[_0x89e5[66]][_0x89e5[65]]);_0xb6adx2f[_0x89e5[68]]= _[_0x89e5[67]](_0xb6adx19[_0x89e5[68]]);_0xb6adx2f[_0x89e5[69]]= _[_0x89e5[70]](_0xb6adx2f[_0x89e5[64]],_0xb6adx2f[_0x89e5[68]]);_0xb6adx23[_0x89e5[71]]= _[_0x89e5[70]](_0xb6adx2f[_0x89e5[64]],qs[_0x89e5[72]](_0xb6adx19[_0x89e5[68]][_0x89e5[72]]));_0xb6adx23[_0x89e5[71]]= (_0xb6adx23[_0x89e5[71]][_0x89e5[73]])?_0xb6adx23[_0x89e5[71]]:_0xb6adx2f[_0x89e5[64]];_0xb6adx23= _[_0x89e5[83]]({},_0xb6adx23,_0xb6adx19[_0x89e5[84]]);return db[_0x89e5[66]][_0x89e5[89]](_0xb6adx23)[_0x89e5[36]](handleEntityNotFound(_0xb6adx1d,null,_0x89e5[86]))[_0x89e5[36]](respondWithResult(_0xb6adx1d,null,_0x89e5[86]))[_0x89e5[27]](handleError(_0xb6adx1d,null,_0x89e5[86]))};exports[_0x89e5[90]]= function(_0xb6adx19,_0xb6adx1d,_0xb6adx32){var _0xb6adx33;return db[_0x89e5[66]][_0x89e5[90]](_0xb6adx19[_0x89e5[105]],{raw:true})[_0x89e5[36]](function(_0xb6adx20){_0xb6adx33= _0xb6adx20;return db[_0x89e5[66]][_0x89e5[104]]({raw:true})})[_0x89e5[36]](function(_0xb6adx34){var _0xb6adx35=fs[_0x89e5[97]](path[_0x89e5[95]](config[_0x89e5[93]],_0x89e5[94]),_0x89e5[96]);var _0xb6adx36=fs[_0x89e5[97]](path[_0x89e5[95]](config[_0x89e5[93]],_0x89e5[98]),_0x89e5[96]);var _0xb6adx37=ejs[_0x89e5[99]](_0xb6adx35,{trunks:_0xb6adx34|| []});fs[_0x89e5[101]](_0x89e5[100],_0xb6adx37);if(_0xb6adx33[_0x89e5[102]]){var _0xb6adx38=ejs[_0x89e5[99]](_0xb6adx36,{trunks:_0xb6adx34|| []});fs[_0x89e5[101]](_0x89e5[103],_0xb6adx38)}})[_0x89e5[36]](function(){return respondWithRpcPromise(_0x89e5[91],_0x89e5[90],{module:_0x89e5[92]})})[_0x89e5[36]](function(){return _0xb6adx33})[_0x89e5[36]](respondWithResult(_0xb6adx1d,201,_0x89e5[90]))[_0x89e5[27]](handleError(_0xb6adx1d,null,_0x89e5[90]))};exports[_0x89e5[57]]= function(_0xb6adx19,_0xb6adx1d,_0xb6adx32){var _0xb6adx33;return db[_0x89e5[66]][_0x89e5[89]]({where:{id:_0xb6adx19[_0x89e5[88]][_0x89e5[87]]}})[_0x89e5[36]](handleEntityNotFound(_0xb6adx1d,null,_0x89e5[57]))[_0x89e5[36]](saveUpdates(_0xb6adx19[_0x89e5[105]],null,_0x89e5[57]))[_0x89e5[36]](function(_0xb6adx20){if(_0xb6adx20){_0xb6adx33= _0xb6adx20;return db[_0x89e5[66]][_0x89e5[104]]({raw:true})}})[_0x89e5[36]](function(_0xb6adx34){if(_0xb6adx34){var _0xb6adx35=fs[_0x89e5[97]](path[_0x89e5[95]](config[_0x89e5[93]],_0x89e5[94]),_0x89e5[96]);var _0xb6adx36=fs[_0x89e5[97]](path[_0x89e5[95]](config[_0x89e5[93]],_0x89e5[98]),_0x89e5[96]);var _0xb6adx37=ejs[_0x89e5[99]](_0xb6adx35,{trunks:_0xb6adx34|| []});fs[_0x89e5[101]](_0x89e5[100],_0xb6adx37);var _0xb6adx38=ejs[_0x89e5[99]](_0xb6adx36,{trunks:_0xb6adx34|| []});fs[_0x89e5[101]](_0x89e5[103],_0xb6adx38);return respondWithRpcPromise(_0x89e5[91],_0x89e5[57],{module:_0x89e5[92]})};return null})[_0x89e5[36]](function(_0xb6adx20){if(_0xb6adx20){return _0xb6adx33}})[_0x89e5[36]](respondWithResult(_0xb6adx1d,null,_0x89e5[57]))[_0x89e5[27]](handleError(_0xb6adx1d,null,_0x89e5[57]))};exports[_0x89e5[59]]= function(_0xb6adx19,_0xb6adx1d,_0xb6adx32){var _0xb6adx33;return db[_0x89e5[66]][_0x89e5[89]]({where:{id:_0xb6adx19[_0x89e5[88]][_0x89e5[87]]}})[_0x89e5[36]](handleEntityNotFound(_0xb6adx1d,null,_0x89e5[59]))[_0x89e5[36]](removeEntity(_0xb6adx1d,null,_0x89e5[59]))[_0x89e5[36]](function(){return db[_0x89e5[66]][_0x89e5[104]]({raw:true})})[_0x89e5[36]](function(_0xb6adx34){var _0xb6adx35=fs[_0x89e5[97]](path[_0x89e5[95]](config[_0x89e5[93]],_0x89e5[94]),_0x89e5[96]);var _0xb6adx36=fs[_0x89e5[97]](path[_0x89e5[95]](config[_0x89e5[93]],_0x89e5[98]),_0x89e5[96]);var _0xb6adx37=ejs[_0x89e5[99]](_0xb6adx35,{trunks:_0xb6adx34});var _0xb6adx38=ejs[_0x89e5[99]](_0xb6adx36,{trunks:_0xb6adx34});fs[_0x89e5[101]](_0x89e5[100],_0xb6adx37);fs[_0x89e5[101]](_0x89e5[103],_0xb6adx38);return respondWithRpcPromise(_0x89e5[91],_0x89e5[59],{module:_0x89e5[92]})})[_0x89e5[27]](handleError(_0xb6adx1d,null,_0x89e5[59]))}
\ No newline at end of file
diff --git a/server/api/trunk/trunk.model.js b/server/api/trunk/trunk.model.js
new file mode 100644 (file)
index 0000000..64f8b9e
--- /dev/null
@@ -0,0 +1 @@
+var _0xde92=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x72\x75\x6E\x6B\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x54\x72\x75\x6E\x6B","\x74\x6F\x6F\x6C\x73\x5F\x74\x72\x75\x6E\x6B\x73","\x64\x65\x66\x69\x6E\x65"];_0xde92[0];var _=require(_0xde92[1]);var util=require(_0xde92[2]);var logger=require(_0xde92[4])(_0xde92[3]);var attributes=require(_0xde92[5]);module[_0xde92[6]]= function(_0x9864x5,_0x9864x6){return _0x9864x5[_0xde92[9]](_0xde92[7],attributes,{tableName:_0xde92[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/trunk/trunk.rpc.js b/server/api/trunk/trunk.rpc.js
new file mode 100644 (file)
index 0000000..b4207b1
--- /dev/null
@@ -0,0 +1 @@
+var _0x64e4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x54\x72\x75\x6E\x6B\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x54\x72\x75\x6E\x6B","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x54\x72\x75\x6E\x6B","\x53\x68\x6F\x77\x54\x72\x75\x6E\x6B","\x66\x69\x6E\x64"];_0x64e4[0];var _=require(_0x64e4[1]);var util=require(_0x64e4[2]);var moment=require(_0x64e4[3]);var BPromise=require(_0x64e4[4]);var db=require(_0x64e4[6])[_0x64e4[5]];var utils=require(_0x64e4[7]);var logger=require(_0x64e4[9])(_0x64e4[8]);var jayson=require(_0x64e4[10]);var client=jayson[_0x64e4[12]][_0x64e4[11]]({port:9002});function respondWithRpcPromise(_0xf125xb,_0xf125xc,_0xf125xd){return  new BPromise(function(_0xf125xe,_0xf125xf){return client[_0x64e4[25]](_0xf125xb,_0xf125xd)[_0x64e4[24]](function(_0xf125x11){logger[_0x64e4[17]](_0x64e4[13],_0xf125xc,_0x64e4[16]);logger[_0x64e4[20]](_0x64e4[18],_0xf125xc,_0x64e4[16],JSON[_0x64e4[19]](_0xf125x11));if(_0xf125x11[_0x64e4[14]]){if(_0xf125x11[_0x64e4[14]][_0x64e4[21]]=== 500){logger[_0x64e4[14]](_0x64e4[13],_0xf125xc,_0xf125x11[_0x64e4[14]][_0x64e4[22]]);return _0xf125xf(_0xf125x11[_0x64e4[14]][_0x64e4[22]])};logger[_0x64e4[14]](_0x64e4[13],_0xf125xc,_0xf125x11[_0x64e4[14]][_0x64e4[22]]);return _0xf125xe(_0xf125x11[_0x64e4[14]][_0x64e4[22]])}else {logger[_0x64e4[17]](_0x64e4[13],_0xf125xc,_0x64e4[16]);_0xf125xe(_0xf125x11[_0x64e4[23]][_0x64e4[22]])}})[_0x64e4[15]](function(_0xf125x10){logger[_0x64e4[14]](_0x64e4[13],_0xf125xc,_0xf125x10);_0xf125xf(_0xf125x10)})})}exports[_0x64e4[26]]= function(_0xf125xd){var _0xf125x12=this;return  new Promise(function(_0xf125xe,_0xf125xf){return db[_0x64e4[37]][_0x64e4[36]]({raw:_0xf125xd[_0x64e4[27]]?(_0xf125xd[_0x64e4[27]][_0x64e4[28]]=== undefined)?true:false:true,where:_0xf125xd[_0x64e4[27]]?_0xf125xd[_0x64e4[27]][_0x64e4[29]]|| null:null,attributes:_0xf125xd[_0x64e4[27]]?_0xf125xd[_0x64e4[27]][_0x64e4[30]]|| null:null,limit:_0xf125xd[_0x64e4[27]]?_0xf125xd[_0x64e4[27]][_0x64e4[31]]|| null:null,include:_0xf125xd[_0x64e4[27]]?(_0xf125xd[_0x64e4[27]][_0x64e4[32]]?_[_0x64e4[35]](_0xf125xd[_0x64e4[27]][_0x64e4[32]],function(_0xf125x13){return {model:db[_0xf125x13[_0x64e4[33]]],as:_0xf125x13[_0x64e4[34]],attributes:_0xf125x13[_0x64e4[30]],include:_0xf125x13[_0x64e4[32]]?_[_0x64e4[35]](_0xf125x13[_0x64e4[32]],function(_0xf125x14){return {model:db[_0xf125x14[_0x64e4[33]]],as:_0xf125x14[_0x64e4[34]],attributes:_0xf125x14[_0x64e4[30]],include:_0xf125x14[_0x64e4[32]]?_[_0x64e4[35]](_0xf125x14[_0x64e4[32]],function(_0xf125x15){return {model:db[_0xf125x15[_0x64e4[33]]],as:_0xf125x15[_0x64e4[34]],attributes:_0xf125x15[_0x64e4[30]]}}):[]}}):[]}}):[]):[]})[_0x64e4[24]](function(_0xf125x11){logger[_0x64e4[17]](_0x64e4[26],_0xf125xd);logger[_0x64e4[20]](_0x64e4[26],_0xf125xd,JSON[_0x64e4[19]](_0xf125x11));_0xf125xe(_0xf125x11)})[_0x64e4[15]](function(_0xf125x10){logger[_0x64e4[14]](_0x64e4[26],_0xf125x10[_0x64e4[22]],_0xf125xd);_0xf125xf(_0xf125x12[_0x64e4[14]](500,_0xf125x10[_0x64e4[22]]))})})};exports[_0x64e4[38]]= function(_0xf125xd){var _0xf125x12=this;return  new Promise(function(_0xf125xe,_0xf125xf){return db[_0x64e4[37]][_0x64e4[39]]({raw:_0xf125xd[_0x64e4[27]]?(_0xf125xd[_0x64e4[27]][_0x64e4[28]]=== undefined)?true:false:true,where:_0xf125xd[_0x64e4[27]]?_0xf125xd[_0x64e4[27]][_0x64e4[29]]|| null:null,attributes:_0xf125xd[_0x64e4[27]]?_0xf125xd[_0x64e4[27]][_0x64e4[30]]|| null:null,include:_0xf125xd[_0x64e4[27]]?(_0xf125xd[_0x64e4[27]][_0x64e4[32]]?_[_0x64e4[35]](_0xf125xd[_0x64e4[27]][_0x64e4[32]],function(_0xf125x13){return {model:db[_0xf125x13[_0x64e4[33]]],as:_0xf125x13[_0x64e4[34]],attributes:_0xf125x13[_0x64e4[30]],include:_0xf125x13[_0x64e4[32]]?_[_0x64e4[35]](_0xf125x13[_0x64e4[32]],function(_0xf125x14){return {model:db[_0xf125x14[_0x64e4[33]]],as:_0xf125x14[_0x64e4[34]],attributes:_0xf125x14[_0x64e4[30]],include:_0xf125x14[_0x64e4[32]]?_[_0x64e4[35]](_0xf125x14[_0x64e4[32]],function(_0xf125x15){return {model:db[_0xf125x15[_0x64e4[33]]],as:_0xf125x15[_0x64e4[34]],attributes:_0xf125x15[_0x64e4[30]]}}):[]}}):[]}}):[]):[]})[_0x64e4[24]](function(_0xf125x11){logger[_0x64e4[17]](_0x64e4[38],_0xf125xd);logger[_0x64e4[20]](_0x64e4[38],_0xf125xd,JSON[_0x64e4[19]](_0xf125x11));_0xf125xe(_0xf125x11)})[_0x64e4[15]](function(_0xf125x10){logger[_0x64e4[14]](_0x64e4[38],_0xf125x10[_0x64e4[22]],_0xf125xd);_0xf125xf(_0xf125x12[_0x64e4[14]](500,_0xf125x10[_0x64e4[22]]))})})}
\ No newline at end of file
diff --git a/server/api/user/index.js b/server/api/user/index.js
new file mode 100644 (file)
index 0000000..c2ed401
--- /dev/null
@@ -0,0 +1 @@
+var _0xf3ea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x75\x73\x65\x72\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x61\x76\x61\x74\x61\x72","\x67\x65\x74\x41\x76\x61\x74\x61\x72","\x2F\x3A\x69\x64\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x75\x65\x73","\x67\x65\x74\x51\x75\x65\x75\x65\x73","\x2F\x3A\x69\x64\x2F\x71\x75\x65\x75\x65\x73\x5F\x72\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x52\x74","\x2F\x3A\x69\x64\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x67\x65\x74\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x6C\x69\x73\x74\x73","\x67\x65\x74\x4C\x69\x73\x74\x73","\x2F\x63\x72\x65\x61\x74\x65\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x72\x65\x61\x74\x65","\x61\x64\x64\x51\x75\x65\x75\x65\x73","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F","\x6A\x6F\x69\x6E","\x25\x73\x2D\x25\x73","\x6E\x6F\x77","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x64\x69\x73\x6B\x53\x74\x6F\x72\x61\x67\x65","\x66\x69\x6C\x65","\x73\x69\x6E\x67\x6C\x65","\x61\x64\x64\x41\x76\x61\x74\x61\x72","\x2F\x3A\x69\x64\x2F\x6C\x6F\x67\x69\x6E","\x6C\x6F\x67\x69\x6E","\x2F\x3A\x69\x64\x2F\x6C\x6F\x67\x6F\x75\x74","\x6C\x6F\x67\x6F\x75\x74","\x2F\x3A\x69\x64\x2F\x70\x61\x75\x73\x65","\x70\x61\x75\x73\x65","\x2F\x3A\x69\x64\x2F\x75\x6E\x70\x61\x75\x73\x65","\x75\x6E\x70\x61\x75\x73\x65","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x2F\x3A\x69\x64\x2F\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x68\x61\x6E\x67\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x2F\x64\x65\x73\x74\x72\x6F\x79\x5F\x6D\x61\x6E\x79","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x72\x65\x6D\x6F\x76\x65\x51\x75\x65\x75\x65\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xf3ea[0];var multer=require(_0xf3ea[1]);var util=require(_0xf3ea[2]);var path=require(_0xf3ea[3]);var express=require(_0xf3ea[4]);var router=express.Router();var auth=require(_0xf3ea[5]);var config=require(_0xf3ea[6]);var controller=require(_0xf3ea[7]);router[_0xf3ea[11]](_0xf3ea[8],auth[_0xf3ea[9]](),controller[_0xf3ea[10]]);router[_0xf3ea[11]](_0xf3ea[12],auth[_0xf3ea[9]](),controller[_0xf3ea[13]]);router[_0xf3ea[11]](_0xf3ea[14],auth[_0xf3ea[9]](),controller[_0xf3ea[15]]);router[_0xf3ea[11]](_0xf3ea[16],controller[_0xf3ea[17]]);router[_0xf3ea[11]](_0xf3ea[18],auth[_0xf3ea[9]](),controller[_0xf3ea[19]]);router[_0xf3ea[11]](_0xf3ea[20],auth[_0xf3ea[9]](),controller[_0xf3ea[21]]);router[_0xf3ea[11]](_0xf3ea[22],auth[_0xf3ea[9]](),controller[_0xf3ea[23]]);router[_0xf3ea[11]](_0xf3ea[24],auth[_0xf3ea[9]](),controller[_0xf3ea[25]]);router[_0xf3ea[11]](_0xf3ea[26],auth[_0xf3ea[9]](),controller[_0xf3ea[27]]);router[_0xf3ea[11]](_0xf3ea[28],auth[_0xf3ea[9]](),controller[_0xf3ea[29]]);router[_0xf3ea[32]](_0xf3ea[30],auth[_0xf3ea[9]](),controller[_0xf3ea[31]]);router[_0xf3ea[32]](_0xf3ea[18],auth[_0xf3ea[9]](),controller[_0xf3ea[33]]);router[_0xf3ea[32]](_0xf3ea[8],auth[_0xf3ea[9]](),controller[_0xf3ea[34]]);router[_0xf3ea[32]](_0xf3ea[20],auth[_0xf3ea[9]](),controller[_0xf3ea[35]]);var upload=multer({storage:multer[_0xf3ea[43]]({destination:function(_0xdbd7xa,_0xdbd7xb,_0xdbd7xc){_0xdbd7xc(null,path[_0xf3ea[38]](config[_0xf3ea[36]],_0xf3ea[37]))},filename:function(_0xdbd7xa,_0xdbd7xb,_0xdbd7xc){_0xdbd7xc(null,util[_0xf3ea[42]](_0xf3ea[39],Date[_0xf3ea[40]](),_0xdbd7xb[_0xf3ea[41]]))}})});router[_0xf3ea[32]](_0xf3ea[16],upload[_0xf3ea[45]](_0xf3ea[44]),controller[_0xf3ea[46]]);router[_0xf3ea[32]](_0xf3ea[47],controller[_0xf3ea[48]]);router[_0xf3ea[32]](_0xf3ea[49],auth[_0xf3ea[9]](),controller[_0xf3ea[50]]);router[_0xf3ea[32]](_0xf3ea[51],auth[_0xf3ea[9]](),controller[_0xf3ea[52]]);router[_0xf3ea[32]](_0xf3ea[53],auth[_0xf3ea[9]](),controller[_0xf3ea[54]]);router[_0xf3ea[56]](_0xf3ea[14],auth[_0xf3ea[9]](),controller[_0xf3ea[55]]);router[_0xf3ea[56]](_0xf3ea[57],auth[_0xf3ea[9]](),controller[_0xf3ea[58]]);router[_0xf3ea[61]](_0xf3ea[59],auth[_0xf3ea[9]](),controller[_0xf3ea[60]]);router[_0xf3ea[61]](_0xf3ea[14],auth[_0xf3ea[9]](),controller[_0xf3ea[62]]);router[_0xf3ea[61]](_0xf3ea[20],auth[_0xf3ea[9]](),controller[_0xf3ea[63]]);module[_0xf3ea[64]]= router
\ No newline at end of file
diff --git a/server/api/user/user.attributes.js b/server/api/user/user.attributes.js
new file mode 100644 (file)
index 0000000..cf8cd02
--- /dev/null
@@ -0,0 +1 @@
+var _0xbcba=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x64\x65\x66\x61\x75\x6C\x74\x75\x73\x65\x72","\x54\x68\x65\x20\x6E\x61\x6D\x65\x20\x6F\x66\x20\x74\x68\x65\x20\x75\x73\x65\x72","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x66\x6F\x72\x6D\x61\x74","\x65\x6D\x61\x69\x6C","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x61\x67\x65\x6E\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x6C\x6F\x63\x61\x6C","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x42\x4F\x4F\x4C\x45\x41\x4E","\x44\x41\x54\x45","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x49\x4E\x54\x45\x47\x45\x52","\x64\x79\x6E\x61\x6D\x69\x63","\x66\x72\x69\x65\x6E\x64","\x70\x65\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x41\x4C\x4C\x4F\x57\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x4E\x4F\x54\x5F\x53\x43\x52\x45\x45\x4E\x45\x44","\x50\x52\x4F\x48\x49\x42\x5F\x50\x41\x53\x53\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42\x5F\x46\x41\x49\x4C\x45\x44\x5F\x53\x43\x52\x45\x45\x4E","\x50\x52\x4F\x48\x49\x42","\x75\x64\x70","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74","\x2C","\x6A\x6F\x69\x6E","\x73\x70\x6C\x69\x74","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x75\x64\x70\x22\x2C\x20\x22\x74\x63\x70\x22\x5D","\x72\x66\x63\x32\x38\x33\x33","\x69\x6E\x66\x6F","\x73\x68\x6F\x72\x74\x69\x6E\x66\x6F","\x69\x6E\x62\x61\x6E\x64","\x61\x75\x74\x6F","\x79\x65\x73","\x6E\x6F","\x6E\x6F\x6E\x61\x74","\x75\x70\x64\x61\x74\x65","\x6F\x75\x74\x67\x6F\x69\x6E\x67","\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x2C\x63\x6F\x6D\x65\x64\x69\x61","\x6E\x61\x74","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x66\x6F\x72\x63\x65\x5F\x72\x70\x6F\x72\x74\x22\x2C\x20\x22\x63\x6F\x6D\x65\x64\x69\x61\x22\x5D","\x65\x6E","\x61\x6C\x6C","\x61\x6C\x61\x77\x3B\x75\x6C\x61\x77\x3B\x67\x73\x6D","\x61\x6C\x6C\x6F\x77","\x3B","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x61\x6C\x61\x77\x22\x2C\x20\x22\x75\x6C\x61\x77\x22\x2C\x20\x22\x67\x73\x6D\x22\x5D","\x70\x6F\x72\x74\x2C\x69\x6E\x76\x69\x74\x65","\x69\x6E\x73\x65\x63\x75\x72\x65","\x53\x74\x72\x69\x6E\x67\x20\x69\x73\x20\x64\x65\x70\x72\x65\x63\x61\x74\x65\x64\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x73\x65\x20\x61\x6E\x20\x41\x72\x72\x61\x79\x20\x61\x73\x20\x5B\x22\x70\x6F\x72\x74\x22\x2C\x20\x22\x69\x6E\x76\x69\x74\x65\x22\x5D","\x6E\x65\x76\x65\x72","\x22\x22\x20\x3C\x3E","\x61\x6C\x77\x61\x79\x73","\x61\x63\x63\x65\x70\x74","\x72\x65\x66\x75\x73\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x75\x61\x63","\x75\x61\x73","\x66\x69\x6E\x67\x65\x72\x70\x72\x69\x6E\x74","\x63\x65\x72\x74\x69\x66\x69\x63\x61\x74\x65","\x61\x63\x74\x69\x76\x65","\x70\x61\x73\x73\x69\x76\x65","\x61\x63\x74\x70\x61\x73\x73","\x75\x70\x64\x61\x74\x65\x2C\x6E\x6F\x6E\x61\x74","\x54\x45\x58\x54","\x70\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x73","\x6D\x61\x70"];_0xbcba[0];var Sequelize=require(_0xbcba[1]);var moment=require(_0xbcba[2]);var util=require(_0xbcba[3]);var _=require(_0xbcba[4]);module[_0xbcba[5]]= {name:{type:Sequelize[_0xbcba[6]],allowNull:false,unique:_0xbcba[7],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i},set:function(_0x9f75x5){this[_0xbcba[8]](_0xbcba[7],_0x9f75x5);this[_0xbcba[8]](_0xbcba[9],_0x9f75x5)},comment:_0xbcba[10]},fullname:{type:Sequelize[_0xbcba[6]],allowNull:false,set:function(_0x9f75x6){this[_0xbcba[8]](_0xbcba[11],_0x9f75x6);this[_0xbcba[8]](_0xbcba[12],util[_0xbcba[16]](_0xbcba[13],_0x9f75x6,this[_0xbcba[15]](_0xbcba[14])))}},email:{type:Sequelize[_0xbcba[6]],allowNull:false,unique:_0xbcba[17],validate:{isEmail:true},set:function(_0x9f75x7){if(_0x9f75x7){this[_0xbcba[8]](_0xbcba[17],_0x9f75x7[_0xbcba[18]]())}}},role:{type:Sequelize.ENUM(_0xbcba[19],_0xbcba[20],_0xbcba[21],_0xbcba[22]),allowNull:false},password:{type:Sequelize[_0xbcba[6]],allowNull:false,validate:{notEmpty:true}},provider:{type:Sequelize[_0xbcba[6]],defaultValue:_0xbcba[23]},internal:{type:Sequelize.INTEGER(11),allowNull:false,unique:_0xbcba[14],set:function(_0x9f75x8){this[_0xbcba[8]](_0xbcba[14],_0x9f75x8);this[_0xbcba[8]](_0xbcba[24],_0x9f75x8);this[_0xbcba[8]](_0xbcba[12],util[_0xbcba[16]](_0xbcba[13],this[_0xbcba[15]](_0xbcba[11]),_0x9f75x8))}},salt:{type:Sequelize[_0xbcba[6]]},phone:{type:Sequelize[_0xbcba[6]]},mobile:{type:Sequelize[_0xbcba[6]]},address:{type:Sequelize[_0xbcba[6]]},zipcode:{type:Sequelize[_0xbcba[6]]},userpic:{type:Sequelize[_0xbcba[6]]},city:{type:Sequelize[_0xbcba[6]]},country:{type:Sequelize[_0xbcba[6]]},online:{type:Sequelize[_0xbcba[25]],defaultValue:false},lastLoginAt:{type:Sequelize[_0xbcba[26]]},voicePause:{type:Sequelize[_0xbcba[25]],defaultValue:false},chatPause:{type:Sequelize[_0xbcba[25]],defaultValue:false},mailPause:{type:Sequelize[_0xbcba[25]],defaultValue:false},faxPause:{type:Sequelize[_0xbcba[25]],defaultValue:false},smsPause:{type:Sequelize[_0xbcba[25]],defaultValue:false},openchannelPause:{type:Sequelize[_0xbcba[25]],defaultValue:false},pauseType:{type:Sequelize[_0xbcba[6]],defaultValue:_0xbcba[27]},lastPauseAt:{type:Sequelize[_0xbcba[26]]},chatCapacity:{type:Sequelize[_0xbcba[28]],defaultValue:0},mailCapacity:{type:Sequelize[_0xbcba[28]],defaultValue:0},faxCapacity:{type:Sequelize[_0xbcba[28]],defaultValue:0},smsCapacity:{type:Sequelize[_0xbcba[28]],defaultValue:0},openchannelCapacity:{type:Sequelize[_0xbcba[28]],defaultValue:0},phoneBarAutoAnswer:{type:Sequelize[_0xbcba[25]],defaultValue:false},phoneBarEnableSettings:{type:Sequelize[_0xbcba[25]],defaultValue:true},phoneBarListenPort:{type:Sequelize.INTEGER(5),defaultValue:5060},phoneBarExpires:{type:Sequelize.INTEGER(5),defaultValue:120},phoneBarRemoteControl:{type:Sequelize[_0xbcba[25]],defaultValue:false},phoneBarRemoteControlPort:{type:Sequelize[_0xbcba[28]],defaultValue:9888},phoneBarEnableRecording:{type:Sequelize[_0xbcba[25]],defaultValue:false},phoneBarRingInUse:{type:Sequelize[_0xbcba[25]],defaultValue:false},chanspy:{type:Sequelize[_0xbcba[25]],defaultValue:false},description:{type:Sequelize[_0xbcba[6]],allowNull:true},host:{type:Sequelize[_0xbcba[6]],allowNull:true,defaultValue:_0xbcba[29]},ipaddr:{type:Sequelize[_0xbcba[6]],allowNull:true},port:{type:Sequelize.INTEGER(5),allowNull:true},regseconds:{type:Sequelize.INTEGER(11),allowNull:true},fullcontact:{type:Sequelize[_0xbcba[6]],allowNull:true},regserver:{type:Sequelize[_0xbcba[6]],allowNull:true},useragent:{type:Sequelize[_0xbcba[6]],allowNull:true},lastms:{type:Sequelize.INTEGER(11),allowNull:true},type:{type:Sequelize.ENUM(_0xbcba[30],_0xbcba[20],_0xbcba[31]),allowNull:true,defaultValue:_0xbcba[30]},context:{type:Sequelize[_0xbcba[6]],allowNull:true,defaultValue:_0xbcba[32]},callingpres:{type:Sequelize.ENUM(_0xbcba[33],_0xbcba[34],_0xbcba[35],_0xbcba[36],_0xbcba[37],_0xbcba[38],_0xbcba[39],_0xbcba[40]),allowNull:true},deny:{type:Sequelize[_0xbcba[6]],allowNull:true},permit:{type:Sequelize[_0xbcba[6]],allowNull:true},secret:{type:Sequelize[_0xbcba[6]],allowNull:true},md5secret:{type:Sequelize[_0xbcba[6]],allowNull:true},remotesecret:{type:Sequelize[_0xbcba[6]],allowNull:true},transport:{type:Sequelize[_0xbcba[6]],allowNull:true,defaultValue:_0xbcba[41],set:function(_0x9f75x9){this[_0xbcba[8]](_0xbcba[42],_0x9f75x9?_0x9f75x9[_0xbcba[44]](_0xbcba[43]):null)},get:function(){return this[_0xbcba[15]](_0xbcba[42])?this[_0xbcba[15]](_0xbcba[42])[_0xbcba[45]](_0xbcba[43]):null},comment:_0xbcba[46]},dtmfmode:{type:Sequelize.ENUM(_0xbcba[47],_0xbcba[48],_0xbcba[49],_0xbcba[50],_0xbcba[51]),allowNull:true,defaultValue:_0xbcba[47]},directmedia:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53],_0xbcba[54],_0xbcba[55],_0xbcba[56]),allowNull:true,defaultValue:_0xbcba[53]},directrtpsetup:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true,defaultValue:_0xbcba[53]},directmediapermit:{type:Sequelize[_0xbcba[6]],allowNull:true},directmediadeny:{type:Sequelize[_0xbcba[6]],allowNull:true},nat:{type:Sequelize[_0xbcba[6]],allowNull:true,defaultValue:_0xbcba[57],set:function(_0x9f75x9){this[_0xbcba[8]](_0xbcba[58],_0x9f75x9?_0x9f75x9[_0xbcba[44]](_0xbcba[43]):null)},get:function(){return this[_0xbcba[15]](_0xbcba[58])?this[_0xbcba[15]](_0xbcba[58])[_0xbcba[45]](_0xbcba[43]):null},comment:_0xbcba[59]},callgroup:{type:Sequelize[_0xbcba[6]]},namedcallgroup:{type:Sequelize[_0xbcba[6]]},pickupgroup:{type:Sequelize[_0xbcba[6]]},namedpickupgroup:{type:Sequelize[_0xbcba[6]]},language:{type:Sequelize[_0xbcba[6]],defaultValue:_0xbcba[60]},tonezone:{type:Sequelize[_0xbcba[6]]},disallow:{type:Sequelize[_0xbcba[6]],allowNull:false,defaultValue:_0xbcba[61]},allow:{type:Sequelize[_0xbcba[6]],allowNull:false,defaultValue:_0xbcba[62],set:function(_0x9f75x9){this[_0xbcba[8]](_0xbcba[63],_0x9f75x9?_0x9f75x9[_0xbcba[44]](_0xbcba[64]):null)},get:function(){return this[_0xbcba[15]](_0xbcba[63])?this[_0xbcba[15]](_0xbcba[63])[_0xbcba[45]](_0xbcba[64]):null},comment:_0xbcba[65]},autoframing:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},insecure:{type:Sequelize[_0xbcba[6]],allowNull:true,defaultValue:_0xbcba[66],set:function(_0x9f75x9){this[_0xbcba[8]](_0xbcba[67],_0x9f75x9?_0x9f75x9[_0xbcba[44]](_0xbcba[43]):null)},get:function(){return this[_0xbcba[15]](_0xbcba[67])?this[_0xbcba[15]](_0xbcba[67])[_0xbcba[45]](_0xbcba[43]):null},comment:_0xbcba[68]},trustrpid:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true,defaultValue:_0xbcba[53]},trust_id_outbound:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true,defaultValue:_0xbcba[53]},progressinband:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53],_0xbcba[69]),allowNull:true},promiscredir:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},useclientcode:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},accountcode:{type:Sequelize.INTEGER(11),allowNull:true},setvar:{type:Sequelize[_0xbcba[6]],allowNull:true},callerid:{type:Sequelize[_0xbcba[6]],allowNull:true,defaultValue:_0xbcba[70]},amaflags:{type:Sequelize[_0xbcba[6]],allowNull:true},callcounter:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true,defaultValue:_0xbcba[52]},busylevel:{type:Sequelize.INTEGER(11),allowNull:true},allowoverlap:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},allowsubscribe:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},allowtransfer:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},ignoresdpversion:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},subscribecontext:{type:Sequelize[_0xbcba[6]],allowNull:true},template:{type:Sequelize[_0xbcba[6]],allowNull:true},videosupport:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53],_0xbcba[71]),allowNull:true,defaultValue:_0xbcba[53]},maxcallbitrate:{type:Sequelize.INTEGER(11),allowNull:true},rfc2833compensate:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},mailbox:{type:Sequelize[_0xbcba[6]],allowNull:true},session_timers:{type:Sequelize.ENUM(_0xbcba[72],_0xbcba[73],_0xbcba[74]),allowNull:true},session_expires:{type:Sequelize.INTEGER(11),allowNull:true},session_minse:{type:Sequelize.INTEGER(11),allowNull:true},session_refresher:{type:Sequelize.ENUM(_0xbcba[75],_0xbcba[76]),allowNull:true,defaultValue:_0xbcba[76]},t38pt_usertpsource:{type:Sequelize[_0xbcba[6]],allowNull:true},regexten:{type:Sequelize[_0xbcba[6]],allowNull:true},fromdomain:{type:Sequelize[_0xbcba[6]],allowNull:true},fromuser:{type:Sequelize[_0xbcba[6]],allowNull:true},qualify:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true,defaultValue:_0xbcba[52]},keepalive:{type:Sequelize.INTEGER(11),allowNull:true},defaultip:{type:Sequelize[_0xbcba[6]],allowNull:true},defaultuser:{type:Sequelize[_0xbcba[6]],allowNull:true},rtptimeout:{type:Sequelize.INTEGER(11),allowNull:true},rtpholdtimeout:{type:Sequelize.INTEGER(11),allowNull:true},rtpkeepalive:{type:Sequelize.INTEGER(11),allowNull:true},sendrpid:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true,defaultValue:_0xbcba[53]},outboundproxy:{type:Sequelize[_0xbcba[6]],allowNull:true},callbackextension:{type:Sequelize[_0xbcba[6]],allowNull:true},timert1:{type:Sequelize.INTEGER(11),allowNull:true},timerb:{type:Sequelize.INTEGER(11),allowNull:true},qualifyfreq:{type:Sequelize.INTEGER(11),allowNull:true},contactpermit:{type:Sequelize[_0xbcba[6]],allowNull:true},contactdeny:{type:Sequelize[_0xbcba[6]],allowNull:true},contactacl:{type:Sequelize[_0xbcba[6]],allowNull:true},unsolicited_mailbox:{type:Sequelize[_0xbcba[6]],allowNull:true},use_q850_reason:{type:Sequelize[_0xbcba[6]],allowNull:true},maxforwards:{type:Sequelize.INTEGER(11),allowNull:true},encryption:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true,defaultValue:_0xbcba[53]},avpf:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},force_avp:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},icesupport:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},dtlsenable:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},dtlsverify:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53],_0xbcba[77],_0xbcba[78]),allowNull:true},dtlsrekey:{type:Sequelize.INTEGER(11),allowNull:true},dtlscertfile:{type:Sequelize[_0xbcba[6]],allowNull:true},dtlsprivatekey:{type:Sequelize[_0xbcba[6]],allowNull:true},dtlscipher:{type:Sequelize[_0xbcba[6]],allowNull:true},dtlscafile:{type:Sequelize[_0xbcba[6]],allowNull:true},dtlscapath:{type:Sequelize[_0xbcba[6]],allowNull:true},dtlssetup:{type:Sequelize.ENUM(_0xbcba[79],_0xbcba[80],_0xbcba[81]),allowNull:true},dtlsfingerprint:{type:Sequelize[_0xbcba[6]],allowNull:true},usereqphone:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true,defaultValue:_0xbcba[53]},recordonfeature:{type:Sequelize[_0xbcba[6]],allowNull:true},recordofffeature:{type:Sequelize[_0xbcba[6]],allowNull:true},call_limit:{type:Sequelize.INTEGER(11),allowNull:true,defaultValue:10},registertrying:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},subscribemwi:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53]),allowNull:true},vmexten:{type:Sequelize[_0xbcba[6]],allowNull:true},mohinterpret:{type:Sequelize[_0xbcba[6]],allowNull:true},mohsuggest:{type:Sequelize[_0xbcba[6]],allowNull:true},parkinglot:{type:Sequelize[_0xbcba[6]],allowNull:true},canreinvite:{type:Sequelize.ENUM(_0xbcba[52],_0xbcba[53],_0xbcba[54],_0xbcba[55],_0xbcba[82]),allowNull:true,defaultValue:_0xbcba[53]},loginInPause:{type:Sequelize[_0xbcba[25]],defaultValue:false},resetPasswordToken:{type:Sequelize[_0xbcba[6]]},resetPasswordExpires:{type:Sequelize[_0xbcba[26]]},showWebBar:{type:Sequelize[_0xbcba[25]],defaultValue:false},permissions:{type:Sequelize[_0xbcba[83]],set:function(_0x9f75x9){this[_0xbcba[8]](_0xbcba[84],_0x9f75x9?_0x9f75x9[_0xbcba[44]](_0xbcba[43]):[])},get:function(){return this[_0xbcba[15]](_0xbcba[84])?_[_0xbcba[85]](this[_0xbcba[15]](_0xbcba[84])[_0xbcba[45]](_0xbcba[43]),function(_0x9f75xa){return parseInt(_0x9f75xa,10)}):[]}}}
\ No newline at end of file
diff --git a/server/api/user/user.controller.js b/server/api/user/user.controller.js
new file mode 100644 (file)
index 0000000..9648992
--- /dev/null
@@ -0,0 +1 @@
+var _0xee68=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2F\x75\x73\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x55\x73\x65\x72","\x6B\x65\x79\x73","\x70\x61\x73\x73\x77\x6F\x72\x64","\x73\x61\x6C\x74","\x64\x69\x66\x66\x65\x72\x65\x6E\x63\x65\x42\x79","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73","\x61\x64\x64\x43\x6F\x6E\x74\x61\x63\x74\x73","\x6F\x6D\x69\x74","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x61\x67\x65\x6E\x74\x20\x72\x6F\x6C\x65","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x75\x73\x65\x72\x73","\x4C\x69\x63\x65\x6E\x73\x65\x20\x6C\x69\x6D\x69\x74\x20\x72\x65\x61\x63\x68\x65\x64","\x63\x6F\x75\x6E\x74\x20\x25\x73\x3A\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x67\x65\x74\x4C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x75\x74\x69\x6C","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x63\x72\x65\x61\x74\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x6D\x61\x69\x6C\x62\x6F\x78","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x6D\x61\x78","\x63\x68\x61\x6E\x67\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x6E\x65\x77\x50\x61\x73\x73\x77\x6F\x72\x64","\x49\x6E\x76\x61\x6C\x69\x64\x20\x62\x6F\x64\x79\x20\x66\x6F\x72\x6D\x61\x74","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6F\x6C\x64\x50\x61\x73\x73\x77\x6F\x72\x64","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x61\x64\x64\x51\x75\x65\x75\x65\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x76\x6F\x69\x63\x65","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x6C\x6F\x67\x69\x6E\x49\x6E\x50\x61\x75\x73\x65","\x70\x65\x6E\x61\x6C\x74\x79","\x75\x70\x73\x65\x72\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x70\x75\x73\x68","\x61\x6C\x6C","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x69\x73\x56\x61\x6C\x69\x64\x43\x68\x61\x6E\x6E\x65\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x63\x68\x61\x6E\x6E\x65\x6C","\x61\x64\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x61\x70\x69\x74\x61\x6C\x69\x7A\x65","\x51\x75\x65\x75\x65\x73","\x72\x65\x6D\x6F\x76\x65\x51\x75\x65\x75\x65\x73","\x72\x65\x6D\x6F\x76\x65","\x61\x64\x64\x41\x76\x61\x74\x61\x72","\x75\x73\x65\x72\x70\x69\x63","\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x66\x69\x6C\x65","\x61\x76\x61\x64\x64\x41\x76\x61\x74\x61\x72\x61\x74\x61\x72","\x67\x65\x74\x41\x76\x61\x74\x61\x72","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F\x6C\x6F\x67\x6F\x73\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x70\x72\x6F\x66\x69\x6C\x65\x2E\x6A\x70\x67","\x6A\x6F\x69\x6E","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x69\x6D\x61\x67\x65\x73\x2F","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x51\x75\x65\x75\x65\x73","\x51\x75\x65\x75\x65","\x67\x65\x74","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x72\x6F\x6C\x65","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x52\x74","\x67\x65\x74\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x6C\x6F\x67\x69\x6E","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x4C\x4F\x47\x49\x4E\x49\x4E\x50\x41\x55\x53\x45","\x67\x65\x74\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x4C\x4F\x47\x49\x4E","\x50\x41\x55\x53\x45","\x66\x6F\x72\x45\x61\x63\x68","\x63\x6F\x6E\x63\x61\x74","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x70\x65\x6E\x61\x6C\x74\x79","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x6C\x6F\x67\x6F\x75\x74","\x70\x61\x75\x73\x65","\x74\x79\x70\x65","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x75\x6E\x70\x61\x75\x73\x65","\x6D\x61\x6E\x75\x61\x6C","\x6D\x61\x69\x6C","\x63\x68\x61\x74","\x66\x61\x78","\x73\x6D\x73","\x25\x73\x25\x73","\x50\x61\x75\x73\x65","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x67\x65\x74\x4C\x69\x73\x74\x73","\x43\x6D\x4C\x69\x73\x74"];_0xee68[0];var jsonpatch=require(_0xee68[1]);var rp=require(_0xee68[2]);var moment=require(_0xee68[3]);var BPromise=require(_0xee68[4]);var util=require(_0xee68[5]);var path=require(_0xee68[6]);var sox=require(_0xee68[7]);var ejs=require(_0xee68[8]);var fs=require(_0xee68[9]);var _=require(_0xee68[10]);var squel=require(_0xee68[11]);var crypto=require(_0xee68[12]);var jsforce=require(_0xee68[13]);var toCsv=require(_0xee68[14]);var qs=require(_0xee68[15]);var logger=require(_0xee68[17])(_0xee68[16]);var utils=require(_0xee68[18]);var config=require(_0xee68[19]);var db=require(_0xee68[21])[_0xee68[20]];var socket=require(_0xee68[23])({host:_0xee68[22],port:6379});require(_0xee68[25])[_0xee68[24]](socket);var jayson=require(_0xee68[26]);var client=jayson[_0xee68[28]][_0xee68[27]]({port:9002});function respondWithRpcPromise(_0x1d97x18,_0x1d97x19,_0x1d97x1a){return  new BPromise(function(_0x1d97x1b,_0x1d97x1c){return client[_0xee68[41]](_0x1d97x18,_0x1d97x1a)[_0xee68[40]](function(_0x1d97x1e){logger[_0xee68[33]](_0xee68[29],_0x1d97x19,_0xee68[32]);logger[_0xee68[36]](_0xee68[34],_0x1d97x19,_0xee68[32],JSON[_0xee68[35]](_0x1d97x1e));if(_0x1d97x1e[_0xee68[30]]){if(_0x1d97x1e[_0xee68[30]][_0xee68[37]]=== 500){logger[_0xee68[30]](_0xee68[29],_0x1d97x19,_0x1d97x1e[_0xee68[30]][_0xee68[38]]);return _0x1d97x1c(_0x1d97x1e[_0xee68[30]][_0xee68[38]])};logger[_0xee68[30]](_0xee68[29],_0x1d97x19,_0x1d97x1e[_0xee68[30]][_0xee68[38]]);return _0x1d97x1b(_0x1d97x1e[_0xee68[30]][_0xee68[38]])}else {logger[_0xee68[33]](_0xee68[29],_0x1d97x19,_0xee68[32]);_0x1d97x1b(_0x1d97x1e[_0xee68[39]][_0xee68[38]])}})[_0xee68[31]](function(_0x1d97x1d){logger[_0xee68[30]](_0xee68[29],_0x1d97x19,_0x1d97x1d);_0x1d97x1c(_0x1d97x1d)})})}function respondWithStatusCode(_0x1d97x1e,_0x1d97x20,_0x1d97x19){_0x1d97x20= _0x1d97x20|| 204;return function(_0x1d97x21){if(_0x1d97x21){logger[_0xee68[33]](_0xee68[34],_0x1d97x19,_0x1d97x20,_0xee68[42]);logger[_0xee68[36]](_0xee68[43],_0x1d97x19,_0x1d97x20,_0xee68[42]);return _0x1d97x1e[_0xee68[44]](_0x1d97x20)};return _0x1d97x1e[_0xee68[46]](304)[_0xee68[45]]()}}function respondWithResult(_0x1d97x1e,_0x1d97x20,_0x1d97x19){_0x1d97x20= _0x1d97x20|| 200;return function(_0x1d97x21){if(_0x1d97x21){logger[_0xee68[33]](_0xee68[34],_0x1d97x19,_0x1d97x20,_0xee68[47]);logger[_0xee68[36]](_0xee68[43],_0x1d97x19,_0x1d97x20,_0xee68[47],JSON[_0xee68[35]](_0x1d97x21));return _0x1d97x1e[_0xee68[46]](_0x1d97x20)[_0xee68[48]](_0x1d97x21)};return _0x1d97x1e[_0xee68[46]](304)[_0xee68[45]]()}}function respondWithFilteredResult(_0x1d97x1e,_0x1d97x24,_0x1d97x19){return function(_0x1d97x21){if(_0x1d97x21){var _0x1d97x25=_0x1d97x21[_0xee68[49]],_0x1d97x26=_0x1d97x24[_0xee68[50]],_0x1d97x27=_0x1d97x24[_0xee68[50]]+ _0x1d97x24[_0xee68[51]],_0x1d97x20;if(_0x1d97x27>= _0x1d97x25){_0x1d97x27= _0x1d97x25;_0x1d97x20= 200}else {_0x1d97x20= 206};_0x1d97x1e[_0xee68[46]](_0x1d97x20);logger[_0xee68[33]](_0xee68[34],_0x1d97x19,_0x1d97x20,_0xee68[52]);logger[_0xee68[36]](_0xee68[43],_0x1d97x19,_0x1d97x20,_0xee68[47],JSON[_0xee68[35]](_0x1d97x21));return _0x1d97x1e[_0xee68[56]](_0xee68[53],_0x1d97x26+ _0xee68[54]+ _0x1d97x27+ _0xee68[55]+ _0x1d97x25)[_0xee68[48]](_0x1d97x21)};return null}}function patchUpdates(_0x1d97x29){return function(_0x1d97x21){try{jsonpatch[_0xee68[57]](_0x1d97x21,_0x1d97x29,true)}catch(err){return BPromise[_0xee68[58]](err)};return _0x1d97x21[_0xee68[59]]()}}function saveUpdates(_0x1d97x2b,_0x1d97x20,_0x1d97x19){return function(_0x1d97x21){if(_0x1d97x21){return _0x1d97x21[_0xee68[61]](_0x1d97x2b)[_0xee68[40]](function(_0x1d97x2c){logger[_0xee68[33]](_0xee68[34],_0x1d97x19,_0x1d97x20,_0xee68[60]);logger[_0xee68[36]](_0xee68[43],_0x1d97x19,_0x1d97x20,_0xee68[60],JSON[_0xee68[35]](_0x1d97x21));return _0x1d97x2c})};return null}}function removeEntity(_0x1d97x1e,_0x1d97x20,_0x1d97x19){return function(_0x1d97x21){if(_0x1d97x21){return _0x1d97x21[_0xee68[63]]()[_0xee68[40]](function(){logger[_0xee68[33]](_0xee68[34],_0x1d97x19,_0x1d97x20,_0xee68[62]);logger[_0xee68[36]](_0xee68[43],_0x1d97x19,_0x1d97x20,_0xee68[62],JSON[_0xee68[35]](_0x1d97x21));_0x1d97x1e[_0xee68[46]](204)[_0xee68[45]]()})}}}function handleEntityNotFound(_0x1d97x1e,_0x1d97x20,_0x1d97x19){return function(_0x1d97x21){if(!_0x1d97x21){logger[_0xee68[30]](_0xee68[34],_0x1d97x19,404,_0xee68[64]);_0x1d97x1e[_0xee68[46]](404)[_0xee68[45]]();return null};return _0x1d97x21}}function handleError(_0x1d97x1e,_0x1d97x20,_0x1d97x19){_0x1d97x20= _0x1d97x20|| 500;return function(_0x1d97x1d){logger[_0xee68[30]](_0xee68[34],_0x1d97x19,_0x1d97x20,JSON[_0xee68[35]](_0x1d97x1d));delete _0x1d97x1d[_0xee68[65]];_0x1d97x1e[_0xee68[46]](_0x1d97x20)[_0xee68[66]](_0x1d97x1d)}}exports[_0xee68[67]]= function(_0x1d97x1a,_0x1d97x1e){var _0x1d97x24={},_0x1d97x30={};_0x1d97x30[_0xee68[68]]= _[_0xee68[74]](_[_0xee68[71]](db[_0xee68[70]][_0xee68[69]]),[_0xee68[72],_0xee68[73]]);_0x1d97x30[_0xee68[75]]= _[_0xee68[71]](_0x1d97x1a[_0xee68[75]]);_0x1d97x30[_0xee68[76]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],_0x1d97x30[_0xee68[75]]);_0x1d97x24[_0xee68[78]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],qs[_0xee68[79]](_0x1d97x1a[_0xee68[75]][_0xee68[79]]));_0x1d97x24[_0xee68[78]]= (_0x1d97x24[_0xee68[78]][_0xee68[80]])?_0x1d97x24[_0xee68[78]]:_0x1d97x30[_0xee68[68]];if(!_0x1d97x1a[_0xee68[75]][_0xee68[82]](_0xee68[81])){_0x1d97x24[_0xee68[51]]= qs[_0xee68[51]](_0x1d97x1a[_0xee68[75]][_0xee68[51]]);_0x1d97x24[_0xee68[50]]= qs[_0xee68[50]](_0x1d97x1a[_0xee68[75]][_0xee68[50]])};_0x1d97x24[_0xee68[83]]= qs[_0xee68[84]](_0x1d97x1a[_0xee68[75]][_0xee68[84]]);_0x1d97x24[_0xee68[85]]= qs[_0xee68[76]](_[_0xee68[86]](_0x1d97x1a[_0xee68[75]],_0x1d97x30[_0xee68[76]]));if(_0x1d97x1a[_0xee68[75]][_0xee68[87]]){_0x1d97x24[_0xee68[85]]= _[_0xee68[90]](_0x1d97x24[_0xee68[85]],{$or:_[_0xee68[89]](_0x1d97x24[_0xee68[78]],function(_0x1d97x31){var _0x1d97x32={};_0x1d97x32[_0x1d97x31]= {$like:_0xee68[88]+ _0x1d97x1a[_0xee68[75]][_0xee68[87]]+ _0xee68[88]};return _0x1d97x32})})};_0x1d97x24= _[_0xee68[90]]({},_0x1d97x24,_0x1d97x1a[_0xee68[91]]);return db[_0xee68[70]][_0xee68[92]](_0x1d97x24)[_0xee68[40]](respondWithFilteredResult(_0x1d97x1e,_0x1d97x24,_0xee68[67]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[67]))};exports[_0xee68[93]]= function(_0x1d97x1a,_0x1d97x1e){var _0x1d97x24={raw:false,where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]}},_0x1d97x30={};_0x1d97x30[_0xee68[68]]= _[_0xee68[74]](_[_0xee68[71]](db[_0xee68[70]][_0xee68[69]]),[_0xee68[72],_0xee68[73]]);_0x1d97x30[_0xee68[75]]= _[_0xee68[71]](_0x1d97x1a[_0xee68[75]]);_0x1d97x30[_0xee68[76]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],_0x1d97x30[_0xee68[75]]);_0x1d97x24[_0xee68[78]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],qs[_0xee68[79]](_0x1d97x1a[_0xee68[75]][_0xee68[79]]));_0x1d97x24[_0xee68[78]]= (_0x1d97x24[_0xee68[78]][_0xee68[80]])?_0x1d97x24[_0xee68[78]]:_0x1d97x30[_0xee68[68]];_0x1d97x24= _[_0xee68[90]]({},_0x1d97x24,_0x1d97x1a[_0xee68[91]]);return db[_0xee68[70]][_0xee68[96]](_0x1d97x24)[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[93]))[_0xee68[40]](respondWithResult(_0x1d97x1e,null,_0xee68[93]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[93]))};exports[_0xee68[97]]= function(_0x1d97x1a,_0x1d97x1e){return db[_0xee68[70]][_0xee68[97]](_0x1d97x1a[_0xee68[98]],{raw:false,individualHooks:true})[_0xee68[40]](respondWithResult(_0x1d97x1e,201,_0xee68[97]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[97]))};exports[_0xee68[61]]= function(_0x1d97x1a,_0x1d97x1e){if(_0x1d97x1a[_0xee68[98]][_0xee68[94]]){delete _0x1d97x1a[_0xee68[98]][_0xee68[94]]};return db[_0xee68[70]][_0xee68[96]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]}})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[61]))[_0xee68[40]](saveUpdates(_0x1d97x1a[_0xee68[98]],null,_0xee68[61]))[_0xee68[40]](respondWithResult(_0x1d97x1e,null,_0xee68[61]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[61]))};exports[_0xee68[63]]= function(_0x1d97x1a,_0x1d97x1e){return db[_0xee68[70]][_0xee68[96]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]}})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[63]))[_0xee68[40]](removeEntity(_0x1d97x1e,null,_0xee68[63]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[63]))};exports[_0xee68[99]]= function(_0x1d97x1a,_0x1d97x1e){return db[_0xee68[70]][_0xee68[99]]()[_0xee68[40]](respondWithResult(_0x1d97x1e,null,_0xee68[99]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[99]))};exports[_0xee68[100]]= function(_0x1d97x1a,_0x1d97x1e){return db[_0xee68[70]][_0xee68[63]]({where:{id:_0x1d97x1a[_0xee68[75]][_0xee68[101]]|| []},raw:false,individualHooks:true})[_0xee68[40]](respondWithResult(_0x1d97x1e,204,_0xee68[100]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[100]))};exports[_0xee68[102]]= function(_0x1d97x1a,_0x1d97x1e,_0x1d97x33){return db[_0xee68[70]][_0xee68[96]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]}})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[102]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){return _0x1d97x21[_0xee68[102]](_0x1d97x1a[_0xee68[98]][_0xee68[101]],_[_0xee68[103]](_0x1d97x1a[_0xee68[98]],[_0xee68[101],_0xee68[94]])|| {})};return null})[_0xee68[40]](respondWithResult(_0x1d97x1e,null,_0xee68[102]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[102]))};var getLicense=function(_0x1d97x1a){return  new BPromise(function(_0x1d97x1b,_0x1d97x1c){var _0x1d97x35=0;_0x1d97x1a[_0xee68[98]][_0xee68[104]]=== _0xee68[105]&& _0x1d97x1b(_0xee68[106]);return db[_0xee68[70]][_0xee68[49]]({where:{$or:[{role:_0x1d97x1a[_0xee68[98]][_0xee68[104]]=== _0xee68[107]?_0xee68[107]:[_0xee68[115],_0xee68[116]]}]}})[_0xee68[40]](function(_0x1d97x25){_0x1d97x35= _0x1d97x25;return require(_0xee68[114])[_0xee68[113]]()})[_0xee68[40]](function(_0x1d97x36){var _0x1d97x37=_0x1d97x1a[_0xee68[98]][_0xee68[104]]=== _0xee68[107]?_0xee68[108]:_0xee68[109];if(_0x1d97x36[_0x1d97x37]&& _0x1d97x35>= _0x1d97x36[_0x1d97x37]){return _0x1d97x1c({message:_0xee68[110]})};return _0x1d97x1b(util[_0xee68[112]](_0xee68[111],_0x1d97x37,_0x1d97x35))})[_0xee68[31]](function(_0x1d97x1d){return _0x1d97x1c(_0x1d97x1d)})})};exports[_0xee68[117]]= function(_0x1d97x1a,_0x1d97x1e){return getLicense(_0x1d97x1a)[_0xee68[40]](function(_0x1d97x39){return db[_0xee68[70]][_0xee68[124]](_0xee68[118])})[_0xee68[40]](function(_0x1d97x38){_0x1d97x1a[_0xee68[98]][_0xee68[118]]= _0x1d97x1a[_0xee68[98]][_0xee68[118]]|| (_0x1d97x38?_0x1d97x38+ 1:1000);if(_0x1d97x1a[_0xee68[98]][_0xee68[119]]){_0x1d97x1a[_0xee68[98]][_0xee68[120]]= _0x1d97x1a[_0xee68[98]][_0xee68[118]];_0x1d97x1a[_0xee68[98]][_0xee68[121]]= {mailbox:_0x1d97x1a[_0xee68[98]][_0xee68[118]],password:_0x1d97x1a[_0xee68[98]][_0xee68[72]],fullname:_0x1d97x1a[_0xee68[98]][_0xee68[122]],email:_0x1d97x1a[_0xee68[98]][_0xee68[123]]}};return db[_0xee68[70]][_0xee68[117]](_0x1d97x1a[_0xee68[98]],{include:[{model:db[_0xee68[121]],as:_0xee68[121]}]})})[_0xee68[40]](respondWithResult(_0x1d97x1e,201,_0xee68[117]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[117]))};exports[_0xee68[125]]= function(_0x1d97x1a,_0x1d97x1e,_0x1d97x33){if(_0x1d97x1a[_0xee68[98]][_0xee68[94]]){delete _0x1d97x1a[_0xee68[98]][_0xee68[94]]};return db[_0xee68[70]][_0xee68[96]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]}})[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){switch(_0x1d97x1a[_0xee68[116]][_0xee68[104]]){case _0xee68[115]:;case _0xee68[116]:if(!_0x1d97x1a[_0xee68[98]][_0xee68[126]]){throw  new db[_0xee68[128]].ValidationError(_0xee68[127])};return _0x1d97x21;case _0xee68[105]:if(!_0x1d97x1a[_0xee68[98]][_0xee68[129]]||  !_0x1d97x1a[_0xee68[98]][_0xee68[126]]){throw  new db[_0xee68[128]].ValidationError(_0xee68[127])};if(!_0x1d97x21[_0xee68[130]](_0x1d97x1a[_0xee68[98]][_0xee68[129]])){_0x1d97x1e[_0xee68[44]](403);return null}else {return _0x1d97x21}}};return null})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[125]))[_0xee68[40]](saveUpdates({password:_0x1d97x1a[_0xee68[98]][_0xee68[126]]},null,_0xee68[125]))[_0xee68[40]](respondWithResult(_0x1d97x1e,null,_0xee68[125]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[125]))};exports[_0xee68[131]]= function(_0x1d97x1a,_0x1d97x1e,_0x1d97x33){var _0x1d97x3a;return db[_0xee68[70]][_0xee68[96]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]},attributes:[_0xee68[94],_0xee68[65],_0xee68[104],_0xee68[137]]})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[131]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){_0x1d97x3a= _0x1d97x21;if(!utils[_0xee68[145]](_0x1d97x1a[_0xee68[98]][_0xee68[132]])){throw  new db[_0xee68[128]].ValidationError(_0xee68[146])};return _0x1d97x21[_0xee68[147]+ _[_0xee68[149]](_0x1d97x1a[_0xee68[98]][_0xee68[132]][_0xee68[148]]())+ _0xee68[150]](_0x1d97x1a[_0xee68[98]][_0xee68[101]],{penalty:_0x1d97x1a[_0xee68[98]][_0xee68[138]]|| 0})}})[_0xee68[40]](function(){if(_0x1d97x1a[_0xee68[98]][_0xee68[132]]=== _0xee68[133]&& _0x1d97x1a[_0xee68[98]][_0xee68[134]]){return db[_0xee68[144]][_0xee68[143]]({where:{id:_0x1d97x1a[_0xee68[98]][_0xee68[101]]|| []},raw:true,attributes:[_0xee68[94],_0xee68[65]]})}})[_0xee68[40]](function(_0x1d97x3b){var _0x1d97x3c=[];if(_0x1d97x1a[_0xee68[98]][_0xee68[132]]=== _0xee68[133]&& _0x1d97x1a[_0xee68[98]][_0xee68[134]]){for(var _0x1d97x3d=0;_0x1d97x3d< _0x1d97x3b[_0xee68[80]];_0x1d97x3d+= 1){_0x1d97x3c[_0xee68[141]](db[_0xee68[140]][_0xee68[139]]({membername:_0x1d97x3a[_0xee68[65]],UserId:_0x1d97x3a[_0xee68[94]],queue_name:_0x1d97x3b[_0x1d97x3d][_0xee68[65]],VoiceQueueId:_0x1d97x3b[_0x1d97x3d][_0xee68[94]],interface:util[_0xee68[112]](_0xee68[135],_0xee68[136],_0x1d97x3a[_0xee68[65]]),paused:_0x1d97x3a[_0xee68[137]]|| false,penalty:_0x1d97x1a[_0xee68[98]][_0xee68[138]]|| 0}))};return BPromise[_0xee68[142]](_0x1d97x3c)};return _0x1d97x3a})[_0xee68[40]](respondWithStatusCode(_0x1d97x1e,null,_0xee68[131]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[131]))};exports[_0xee68[151]]= function(_0x1d97x1a,_0x1d97x1e,_0x1d97x33){var _0x1d97x3a;return db[_0xee68[70]][_0xee68[96]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]},attributes:[_0xee68[94],_0xee68[65],_0xee68[104]]})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[151]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){_0x1d97x3a= _0x1d97x21;if(!_0x1d97x1a[_0xee68[75]][_0xee68[132]]||  !utils[_0xee68[145]](_0x1d97x1a[_0xee68[75]][_0xee68[132]])){throw  new db[_0xee68[128]].ValidationError(_0xee68[146])};return _0x1d97x21[_0xee68[152]+ _[_0xee68[149]](_0x1d97x1a[_0xee68[75]][_0xee68[132]][_0xee68[148]]())+ _0xee68[150]](_0x1d97x1a[_0xee68[75]][_0xee68[101]])}})[_0xee68[40]](function(_0x1d97x3b){if(_0x1d97x1a[_0xee68[75]][_0xee68[132]]=== _0xee68[133]){return db[_0xee68[140]][_0xee68[63]]({where:{UserId:_0x1d97x1a[_0xee68[95]][_0xee68[94]],VoiceQueueId:_0x1d97x1a[_0xee68[75]][_0xee68[101]]},individualHooks:true})[_0xee68[40]](function(){return _0x1d97x3a})};return _0x1d97x3a})[_0xee68[40]](respondWithStatusCode(_0x1d97x1e,null,_0xee68[151]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[151]))};exports[_0xee68[153]]= function(_0x1d97x1a,_0x1d97x1e,_0x1d97x33){_0x1d97x1a[_0xee68[98]][_0xee68[154]]= _0x1d97x1a[_0xee68[156]][_0xee68[155]];return db[_0xee68[70]][_0xee68[96]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]}})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[153]))[_0xee68[40]](saveUpdates(_0x1d97x1a[_0xee68[98]],null,_0xee68[153]))[_0xee68[40]](respondWithResult(_0x1d97x1e,null,_0xee68[157]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[153]))};exports[_0xee68[158]]= function(_0x1d97x1a,_0x1d97x1e,_0x1d97x33){var _0x1d97x3e=path[_0xee68[161]](config[_0xee68[159]],_0xee68[160]);return db[_0xee68[70]][_0xee68[96]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]},attributes:[_0xee68[94],_0xee68[154]],raw:true})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[158]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){logger[_0xee68[33]](_0xee68[29],_0xee68[158],_0xee68[47]);logger[_0xee68[36]](_0xee68[34],_0xee68[158],_0xee68[47],JSON[_0xee68[35]](_0x1d97x21));if(!fs[_0xee68[163]](path[_0xee68[161]](config[_0xee68[159]],_0xee68[162],_0x1d97x21[_0xee68[154]]))){return _0x1d97x1e[_0xee68[164]](_0x1d97x3e)};return _0x1d97x1e[_0xee68[164]](path[_0xee68[161]](config[_0xee68[159]],_0xee68[162],_0x1d97x21[_0xee68[154]]))}})[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[93]))};exports[_0xee68[165]]= function(_0x1d97x1a,_0x1d97x21,_0x1d97x33){var _0x1d97x24={};var _0x1d97x30={};var _0x1d97x3f;var _0x1d97x25;return db[_0xee68[70]][_0xee68[167]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]}})[_0xee68[40]](handleEntityNotFound(_0x1d97x21,null,_0xee68[165]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){_0x1d97x3f= _0x1d97x21;_0x1d97x30[_0xee68[68]]= _[_0xee68[71]](db[_0xee68[166]][_0xee68[69]]);_0x1d97x30[_0xee68[75]]= _[_0xee68[71]](_0x1d97x1a[_0xee68[75]]);_0x1d97x30[_0xee68[76]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],_0x1d97x30[_0xee68[75]]);_0x1d97x24[_0xee68[78]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],qs[_0xee68[79]](_0x1d97x1a[_0xee68[75]][_0xee68[79]]));_0x1d97x24[_0xee68[78]]= (_0x1d97x24[_0xee68[78]][_0xee68[80]])?_0x1d97x24[_0xee68[78]]:_0x1d97x30[_0xee68[68]];_0x1d97x24[_0xee68[83]]= qs[_0xee68[84]](_0x1d97x1a[_0xee68[75]][_0xee68[84]]);_0x1d97x24[_0xee68[85]]= qs[_0xee68[76]](_[_0xee68[86]](_0x1d97x1a[_0xee68[75]],_0x1d97x30[_0xee68[76]]));if(_0x1d97x1a[_0xee68[75]][_0xee68[87]]){_0x1d97x24[_0xee68[85]]= _[_0xee68[90]](_0x1d97x24[_0xee68[85]],{$or:_[_0xee68[89]](_0x1d97x24[_0xee68[78]],function(_0x1d97x31){var _0x1d97x32={};_0x1d97x32[_0x1d97x31]= {$like:_0xee68[88]+ _0x1d97x1a[_0xee68[75]][_0xee68[87]]+ _0xee68[88]};return _0x1d97x32})})};_0x1d97x24= _[_0xee68[90]]({},_0x1d97x24,_0x1d97x1a[_0xee68[91]]);return _0x1d97x3f[_0xee68[165]](_0x1d97x24)}})[_0xee68[40]](function(_0x1d97x41){if(_0x1d97x41){_0x1d97x25= _0x1d97x41[_0xee68[80]];if(!_0x1d97x1a[_0xee68[75]][_0xee68[82]](_0xee68[81])){_0x1d97x24[_0xee68[51]]= qs[_0xee68[51]](_0x1d97x1a[_0xee68[75]][_0xee68[51]]);_0x1d97x24[_0xee68[50]]= qs[_0xee68[50]](_0x1d97x1a[_0xee68[75]][_0xee68[50]])};return _0x1d97x3f[_0xee68[165]](_0x1d97x24)}})[_0xee68[40]](function(_0x1d97x40){return _0x1d97x40?{count:_0x1d97x25,rows:_0x1d97x40}:null})[_0xee68[40]](respondWithResult(_0x1d97x21,null,_0xee68[165]))[_0xee68[31]](handleError(_0x1d97x21,null,_0xee68[165]))};exports[_0xee68[168]]= function(_0x1d97x1a,_0x1d97x1e,_0x1d97x33){var _0x1d97x3a;var _0x1d97x3b;var _0x1d97x24={};var _0x1d97x25;return db[_0xee68[70]][_0xee68[167]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]},attributes:[_0xee68[94],_0xee68[65],_0xee68[104]]})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[168]))[_0xee68[40]](function(_0x1d97x42){if(!utils[_0xee68[145]](_0x1d97x1a[_0xee68[75]][_0xee68[132]])){throw  new db[_0xee68[128]].ValidationError(_0xee68[146])};_0x1d97x3a= _0x1d97x42;var _0x1d97x30={};_0x1d97x30[_0xee68[68]]= _[_0xee68[71]](db[_[_0xee68[149]](_0x1d97x1a[_0xee68[75]][_0xee68[132]])+ _0xee68[169]][_0xee68[69]]);_0x1d97x30[_0xee68[75]]= _[_0xee68[71]](_0x1d97x1a[_0xee68[75]]);_0x1d97x30[_0xee68[76]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],_0x1d97x30[_0xee68[75]]);_0x1d97x24[_0xee68[78]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],qs[_0xee68[79]](_0x1d97x1a[_0xee68[75]][_0xee68[79]]));_0x1d97x24[_0xee68[78]]= (_0x1d97x24[_0xee68[78]][_0xee68[80]])?_0x1d97x24[_0xee68[78]]:_0x1d97x30[_0xee68[68]];_0x1d97x24[_0xee68[83]]= qs[_0xee68[84]](_0x1d97x1a[_0xee68[75]][_0xee68[84]]);_0x1d97x24[_0xee68[85]]= qs[_0xee68[76]](_[_0xee68[86]](_0x1d97x1a[_0xee68[75]],_0x1d97x30[_0xee68[76]]));if(_0x1d97x1a[_0xee68[75]][_0xee68[87]]){_0x1d97x24[_0xee68[85]]= _[_0xee68[90]](_0x1d97x24[_0xee68[85]],{$or:_[_0xee68[89]](_0x1d97x24[_0xee68[78]],function(_0x1d97x31){var _0x1d97x32={};_0x1d97x32[_0x1d97x31]= {$like:_0xee68[88]+ _0x1d97x1a[_0xee68[75]][_0xee68[87]]+ _0xee68[88]};return _0x1d97x32})})};_0x1d97x24= _[_0xee68[90]]({},_0x1d97x24,_0x1d97x1a[_0xee68[91]]);switch(_0x1d97x3a[_0xee68[104]]){case _0xee68[115]:return db[_[_0xee68[149]](_0x1d97x1a[_0xee68[75]][_0xee68[132]])+ _0xee68[169]][_0xee68[143]](_0x1d97x24);case _0xee68[116]:;case _0xee68[105]:return _0x1d97x3a[_0xee68[170]+ _[_0xee68[149]](_0x1d97x1a[_0xee68[75]][_0xee68[132]])+ _0xee68[150]](_0x1d97x24);default:throw  new db[_0xee68[128]].ValidationError(_0xee68[171])}})[_0xee68[40]](function(_0x1d97x41){_0x1d97x25= _0x1d97x41[_0xee68[80]];if(!_0x1d97x1a[_0xee68[75]][_0xee68[82]](_0xee68[81])){_0x1d97x24[_0xee68[51]]= qs[_0xee68[51]](_0x1d97x1a[_0xee68[75]][_0xee68[51]]);_0x1d97x24[_0xee68[50]]= qs[_0xee68[50]](_0x1d97x1a[_0xee68[75]][_0xee68[50]])};switch(_0x1d97x3a[_0xee68[104]]){case _0xee68[115]:return db[_[_0xee68[149]](_0x1d97x1a[_0xee68[75]][_0xee68[132]])+ _0xee68[169]][_0xee68[143]](_0x1d97x24);case _0xee68[116]:;case _0xee68[105]:return _0x1d97x3a[_0xee68[170]+ _[_0xee68[149]](_0x1d97x1a[_0xee68[75]][_0xee68[132]])+ _0xee68[150]](_0x1d97x24)}})[_0xee68[40]](function(_0x1d97x40){return {count:_0x1d97x25,rows:_0x1d97x40}})[_0xee68[40]](respondWithResult(_0x1d97x1e,null,_0xee68[168]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[168]))};exports[_0xee68[172]]= function(_0x1d97x1a,_0x1d97x21,_0x1d97x33){var _0x1d97x24={};var _0x1d97x30={};var _0x1d97x3f;var _0x1d97x25;return db[_0xee68[70]][_0xee68[167]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]}})[_0xee68[40]](handleEntityNotFound(_0x1d97x21,null,_0xee68[172]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){_0x1d97x3f= _0x1d97x21;_0x1d97x30[_0xee68[68]]= _[_0xee68[71]](db[_0xee68[140]][_0xee68[69]]);_0x1d97x30[_0xee68[75]]= _[_0xee68[71]](_0x1d97x1a[_0xee68[75]]);_0x1d97x30[_0xee68[76]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],_0x1d97x30[_0xee68[75]]);_0x1d97x24[_0xee68[78]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],qs[_0xee68[79]](_0x1d97x1a[_0xee68[75]][_0xee68[79]]));_0x1d97x24[_0xee68[78]]= (_0x1d97x24[_0xee68[78]][_0xee68[80]])?_0x1d97x24[_0xee68[78]]:_0x1d97x30[_0xee68[68]];_0x1d97x24[_0xee68[83]]= qs[_0xee68[84]](_0x1d97x1a[_0xee68[75]][_0xee68[84]]);_0x1d97x24[_0xee68[85]]= qs[_0xee68[76]](_[_0xee68[86]](_0x1d97x1a[_0xee68[75]],_0x1d97x30[_0xee68[76]]));if(_0x1d97x1a[_0xee68[75]][_0xee68[87]]){_0x1d97x24[_0xee68[85]]= _[_0xee68[90]](_0x1d97x24[_0xee68[85]],{$or:_[_0xee68[89]](_0x1d97x24[_0xee68[78]],function(_0x1d97x31){var _0x1d97x32={};_0x1d97x32[_0x1d97x31]= {$like:_0xee68[88]+ _0x1d97x1a[_0xee68[75]][_0xee68[87]]+ _0xee68[88]};return _0x1d97x32})})};_0x1d97x24= _[_0xee68[90]]({},_0x1d97x24,_0x1d97x1a[_0xee68[91]]);return _0x1d97x3f[_0xee68[172]](_0x1d97x24)}})[_0xee68[40]](function(_0x1d97x41){if(_0x1d97x41){_0x1d97x25= _0x1d97x41[_0xee68[80]];if(!_0x1d97x1a[_0xee68[75]][_0xee68[82]](_0xee68[81])){_0x1d97x24[_0xee68[51]]= qs[_0xee68[51]](_0x1d97x1a[_0xee68[75]][_0xee68[51]]);_0x1d97x24[_0xee68[50]]= qs[_0xee68[50]](_0x1d97x1a[_0xee68[75]][_0xee68[50]])};return _0x1d97x3f[_0xee68[172]](_0x1d97x24)}})[_0xee68[40]](function(_0x1d97x40){return _0x1d97x40?{count:_0x1d97x25,rows:_0x1d97x40}:null})[_0xee68[40]](respondWithResult(_0x1d97x21,null,_0xee68[172]))[_0xee68[31]](handleError(_0x1d97x21,null,_0xee68[172]))};exports[_0xee68[173]]= function(_0x1d97x1a,_0x1d97x21,_0x1d97x33){var _0x1d97x24={};var _0x1d97x30={};var _0x1d97x3f;var _0x1d97x25;return db[_0xee68[70]][_0xee68[167]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]}})[_0xee68[40]](handleEntityNotFound(_0x1d97x21,null,_0xee68[173]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){_0x1d97x3f= _0x1d97x21;_0x1d97x30[_0xee68[68]]= _[_0xee68[71]](db[_0xee68[174]][_0xee68[69]]);_0x1d97x30[_0xee68[75]]= _[_0xee68[71]](_0x1d97x1a[_0xee68[75]]);_0x1d97x30[_0xee68[76]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],_0x1d97x30[_0xee68[75]]);_0x1d97x24[_0xee68[78]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],qs[_0xee68[79]](_0x1d97x1a[_0xee68[75]][_0xee68[79]]));_0x1d97x24[_0xee68[78]]= (_0x1d97x24[_0xee68[78]][_0xee68[80]])?_0x1d97x24[_0xee68[78]]:_0x1d97x30[_0xee68[68]];_0x1d97x24[_0xee68[83]]= qs[_0xee68[84]](_0x1d97x1a[_0xee68[75]][_0xee68[84]]);_0x1d97x24[_0xee68[85]]= qs[_0xee68[76]](_[_0xee68[86]](_0x1d97x1a[_0xee68[75]],_0x1d97x30[_0xee68[76]]));if(_0x1d97x1a[_0xee68[75]][_0xee68[87]]){_0x1d97x24[_0xee68[85]]= _[_0xee68[90]](_0x1d97x24[_0xee68[85]],{$or:_[_0xee68[89]](_0x1d97x24[_0xee68[78]],function(_0x1d97x31){var _0x1d97x32={};_0x1d97x32[_0x1d97x31]= {$like:_0xee68[88]+ _0x1d97x1a[_0xee68[75]][_0xee68[87]]+ _0xee68[88]};return _0x1d97x32})})};_0x1d97x24= _[_0xee68[90]]({},_0x1d97x24,_0x1d97x1a[_0xee68[91]]);return _0x1d97x3f[_0xee68[173]](_0x1d97x24)}})[_0xee68[40]](function(_0x1d97x41){if(_0x1d97x41){_0x1d97x25= _0x1d97x41[_0xee68[80]];if(!_0x1d97x1a[_0xee68[75]][_0xee68[82]](_0xee68[81])){_0x1d97x24[_0xee68[51]]= qs[_0xee68[51]](_0x1d97x1a[_0xee68[75]][_0xee68[51]]);_0x1d97x24[_0xee68[50]]= qs[_0xee68[50]](_0x1d97x1a[_0xee68[75]][_0xee68[50]])};return _0x1d97x3f[_0xee68[173]](_0x1d97x24)}})[_0xee68[40]](function(_0x1d97x40){return _0x1d97x40?{count:_0x1d97x25,rows:_0x1d97x40}:null})[_0xee68[40]](respondWithResult(_0x1d97x21,null,_0xee68[173]))[_0xee68[31]](handleError(_0x1d97x21,null,_0xee68[173]))};exports[_0xee68[175]]= function(_0x1d97x1a,_0x1d97x1e,_0x1d97x33){var _0x1d97x3a;var _0x1d97x3b;return db[_0xee68[70]][_0xee68[96]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]],role:_0xee68[105]},attributes:[_0xee68[94],_0xee68[65],_0xee68[104],_0xee68[118],_0xee68[137]]})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[175]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){_0x1d97x3a= _0x1d97x21;return _0x1d97x3a[_0xee68[185]]({raw:true})}})[_0xee68[40]](function(_0x1d97x41){var _0x1d97x3c=[];if(_0x1d97x41){_0x1d97x3b= _0x1d97x41;if(_0x1d97x3b[_0xee68[80]]){for(var _0x1d97x3d=0;_0x1d97x3d< _0x1d97x3b[_0xee68[80]];_0x1d97x3d++){_0x1d97x3c[_0xee68[141]](db[_0xee68[140]][_0xee68[139]]({membername:_0x1d97x3a[_0xee68[65]],UserId:_0x1d97x3a[_0xee68[94]],queue_name:_0x1d97x3b[_0x1d97x3d][_0xee68[65]],VoiceQueueId:_0x1d97x3b[_0x1d97x3d][_0xee68[94]],interface:util[_0xee68[112]](_0xee68[135],_0xee68[136],_0x1d97x3a[_0xee68[65]]),paused:_0x1d97x3a[_0xee68[137]]|| false,penalty:_0x1d97x3b[_0x1d97x3d][_0xee68[184]]|| 0}))};return BPromise[_0xee68[142]](_0x1d97x3c)}}})[_0xee68[40]](function(){return db[_0xee68[183]][_0xee68[143]]({where:{membername:_0x1d97x3a[_0xee68[65]],interface:util[_0xee68[112]](_0xee68[135],_0xee68[136],_0x1d97x3a[_0xee68[65]]),exitAt:null}})})[_0xee68[40]](function(){var _0x1d97x43=[];var _0x1d97x44=[];var _0x1d97x45=utils[_0xee68[178]]();var _0x1d97x46={membername:_0x1d97x3a[_0xee68[65]],interface:util[_0xee68[112]](_0xee68[135],_0xee68[136],_0x1d97x3a[_0xee68[65]]),enterAt:moment()[_0xee68[112]](_0xee68[176]),role:_0x1d97x3a[_0xee68[104]],internal:_0x1d97x3a[_0xee68[118]]};_0x1d97x45[_0xee68[181]](function(_0x1d97x47){_0x1d97x43[_0xee68[141]](_[_0xee68[90]]({channel:_0x1d97x47,type:_0xee68[179]},_0x1d97x46));if(_0x1d97x3a[_0xee68[137]]){_0x1d97x44[_0xee68[141]](_[_0xee68[90]]({channel:_0x1d97x47,type:_0xee68[180],data1:_0xee68[177]},_0x1d97x46))}});return db[_0xee68[183]][_0xee68[97]](_0x1d97x43[_0xee68[182]](_0x1d97x44),{individualHooks:true})})[_0xee68[40]](function(){return _0x1d97x3a[_0xee68[61]]({online:true,lastLoginAt:moment()[_0xee68[112]](_0xee68[176]),voicePause:_0x1d97x3a[_0xee68[137]]|| false,mailPause:_0x1d97x3a[_0xee68[137]]|| false,chatPause:_0x1d97x3a[_0xee68[137]]|| false,faxPause:_0x1d97x3a[_0xee68[137]]|| false,smsPause:_0x1d97x3a[_0xee68[137]]|| false,openchannelPause:_0x1d97x3a[_0xee68[137]]|| false,pauseType:_0x1d97x3a[_0xee68[137]]?_0xee68[177]:null})})[_0xee68[40]](respondWithResult(_0x1d97x1e,null,_0xee68[175]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[175]))};exports[_0xee68[186]]= function(_0x1d97x1a,_0x1d97x1e,_0x1d97x33){var _0x1d97x3a;return db[_0xee68[70]][_0xee68[96]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]],role:_0xee68[105]},attributes:[_0xee68[94],_0xee68[65],_0xee68[104]]})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[186]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){_0x1d97x3a= _0x1d97x21;return db[_0xee68[140]][_0xee68[63]]({where:{membername:_0x1d97x3a[_0xee68[65]]},individualHooks:true})}})[_0xee68[40]](function(){return db[_0xee68[183]][_0xee68[143]]({where:{membername:_0x1d97x3a[_0xee68[65]],interface:util[_0xee68[112]](_0xee68[135],_0xee68[136],_0x1d97x3a[_0xee68[65]]),exitAt:null}})})[_0xee68[40]](function(_0x1d97x3c){var _0x1d97x48=[];_0x1d97x3c[_0xee68[181]](function(_0x1d97x49){_0x1d97x48[_0xee68[141]](_0x1d97x49[_0xee68[61]]({exitAt:moment()[_0xee68[112]](_0xee68[176])}))});return BPromise[_0xee68[142]](_0x1d97x48)})[_0xee68[40]](function(){return _0x1d97x3a[_0xee68[61]]({online:false,lastLoginAt:null,voicePause:false,mailPause:false,chatPause:false,faxPause:false,smsPause:false,openchannelPause:false})})[_0xee68[40]](respondWithResult(_0x1d97x1e,null,_0xee68[186]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[186]))};exports[_0xee68[187]]= function(_0x1d97x1a,_0x1d97x1e,_0x1d97x33){var _0x1d97x3a;return db[_0xee68[140]][_0xee68[61]]({paused:1},{where:{UserId:_0x1d97x1a[_0xee68[95]][_0xee68[94]]},individualHooks:true})[_0xee68[40]](function(){return db[_0xee68[70]][_0xee68[96]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]],role:_0xee68[105]},attributes:[_0xee68[94],_0xee68[65],_0xee68[104],_0xee68[118]]})})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[187]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){_0x1d97x3a= _0x1d97x21;return respondWithRpcPromise(_0xee68[190],_0xee68[187],{id:_0x1d97x3a[_0xee68[94]],name:_0x1d97x3a[_0xee68[65]]})}})[_0xee68[40]](function(){if(_0x1d97x3a){return db[_0xee68[183]][_0xee68[143]]({where:{membername:_0x1d97x3a[_0xee68[65]],interface:util[_0xee68[112]](_0xee68[135],_0xee68[136],_0x1d97x3a[_0xee68[65]]),type:_0xee68[180],exitAt:null}})}})[_0xee68[40]](function(_0x1d97x3c){if(_0x1d97x3c[_0xee68[80]]){return db[_0xee68[183]][_0xee68[61]]({exitAt:moment()[_0xee68[112]](_0xee68[176])},{where:{id:{$in:_[_0xee68[89]](_0x1d97x3c,_0xee68[94])}},individualHooks:true})}})[_0xee68[40]](function(){var _0x1d97x3c=[];var _0x1d97x45=utils[_0xee68[178]]();_0x1d97x45[_0xee68[181]](function(_0x1d97x47){_0x1d97x3c[_0xee68[141]]({channel:_0x1d97x47,membername:_0x1d97x3a[_0xee68[65]],interface:util[_0xee68[112]](_0xee68[135],_0xee68[136],_0x1d97x3a[_0xee68[65]]),type:_0xee68[180],enterAt:moment()[_0xee68[112]](_0xee68[176]),data1:_0x1d97x1a[_0xee68[98]][_0xee68[188]]|| _0xee68[189],role:_0x1d97x3a[_0xee68[104]],internal:_0x1d97x3a[_0xee68[118]]})});return db[_0xee68[183]][_0xee68[97]](_0x1d97x3c,{individualHooks:true})})[_0xee68[40]](function(){return _0x1d97x3a[_0xee68[61]]({voicePause:true,mailPause:true,chatPause:true,faxPause:true,smsPause:true,openchannelPause:true,pauseType:_0x1d97x1a[_0xee68[98]][_0xee68[188]]|| _0xee68[189],lastPauseAt:moment()[_0xee68[112]](_0xee68[176])})})[_0xee68[40]](respondWithResult(_0x1d97x1e,null,_0xee68[187]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[187]))};exports[_0xee68[191]]= function(_0x1d97x1a,_0x1d97x1e,_0x1d97x33){var _0x1d97x3a;return db[_0xee68[70]][_0xee68[96]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]},attributes:[_0xee68[94],_0xee68[65],_0xee68[104]]})[_0xee68[40]](handleEntityNotFound(_0x1d97x1e,null,_0xee68[191]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){_0x1d97x3a= _0x1d97x21;if(_0x1d97x1a[_0xee68[98]][_0xee68[132]]&&  !utils[_0xee68[145]](_0x1d97x1a[_0xee68[98]][_0xee68[132]])){throw  new db[_0xee68[128]].ValidationError(_0xee68[146])};switch(_0x1d97x1a[_0xee68[98]][_0xee68[132]]){case _0xee68[133]:return respondWithRpcPromise(_0xee68[190],_0xee68[191],{id:_0x1d97x3a[_0xee68[94]],name:_0x1d97x3a[_0xee68[65]]})[_0xee68[40]](function(){return db[_0xee68[140]][_0xee68[61]]({paused:0},{where:{UserId:_0x1d97x3a[_0xee68[94]]},individualHooks:true})})[_0xee68[40]](function(){return db[_0xee68[183]][_0xee68[96]]({where:{channel:_0x1d97x1a[_0xee68[98]][_0xee68[132]],membername:_0x1d97x3a[_0xee68[65]],interface:util[_0xee68[112]](_0xee68[135],_0xee68[136],_0x1d97x3a[_0xee68[65]]),type:_0xee68[180],exitAt:null}})})[_0xee68[40]](function(_0x1d97x49){if(_0x1d97x49){return _0x1d97x49[_0xee68[61]]({exitAt:moment()[_0xee68[112]](_0xee68[176]),data2:_0xee68[192]},{individualHooks:true})};return null})[_0xee68[40]](function(){return _0x1d97x3a[_0xee68[61]]({voicePause:false})});case _0xee68[193]:;case _0xee68[194]:;case _0xee68[195]:;case _0xee68[196]:;case _0xee68[199]:return db[_0xee68[183]][_0xee68[96]]({where:{channel:_0x1d97x1a[_0xee68[98]][_0xee68[132]],membername:_0x1d97x3a[_0xee68[65]],interface:util[_0xee68[112]](_0xee68[135],_0xee68[136],_0x1d97x3a[_0xee68[65]]),type:_0xee68[180],exitAt:null}})[_0xee68[40]](function(_0x1d97x49){return _0x1d97x49[_0xee68[61]]({exitAt:moment()[_0xee68[112]](_0xee68[176]),data2:_0xee68[192]},{individualHooks:true})})[_0xee68[40]](function(){var _0x1d97x4a={};_[_0xee68[56]](_0x1d97x4a,util[_0xee68[112]](_0xee68[197],_0x1d97x1a[_0xee68[98]][_0xee68[132]],_0xee68[198]),false);return _0x1d97x3a[_0xee68[61]](_0x1d97x4a)});default:return respondWithRpcPromise(_0xee68[190],_0xee68[191],{id:_0x1d97x3a[_0xee68[94]],name:_0x1d97x3a[_0xee68[65]]})[_0xee68[40]](function(){return db[_0xee68[140]][_0xee68[61]]({paused:0},{where:{UserId:_0x1d97x3a[_0xee68[94]]}})})[_0xee68[40]](function(){return db[_0xee68[183]][_0xee68[143]]({where:{membername:_0x1d97x3a[_0xee68[65]],interface:util[_0xee68[112]](_0xee68[135],_0xee68[136],_0x1d97x3a[_0xee68[65]]),type:_0xee68[180],exitAt:null}})})[_0xee68[40]](function(_0x1d97x3c){var _0x1d97x48=[];_0x1d97x3c[_0xee68[181]](function(_0x1d97x49){_0x1d97x48[_0xee68[141]](_0x1d97x49[_0xee68[61]]({exitAt:moment()[_0xee68[112]](_0xee68[176]),data2:_0xee68[192]}))});return BPromise[_0xee68[142]](_0x1d97x48)})[_0xee68[40]](function(){return _0x1d97x3a[_0xee68[61]]({voicePause:false,mailPause:false,chatPause:false,faxPause:false,smsPause:false,openchannelPause:false})})}}})[_0xee68[40]](respondWithResult(_0x1d97x1e,null,_0xee68[191]))[_0xee68[31]](handleError(_0x1d97x1e,null,_0xee68[191]))};exports[_0xee68[200]]= function(_0x1d97x1a,_0x1d97x21,_0x1d97x33){var _0x1d97x24={};var _0x1d97x30={};var _0x1d97x3f;var _0x1d97x25;return db[_0xee68[70]][_0xee68[167]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]}})[_0xee68[40]](handleEntityNotFound(_0x1d97x21,null,_0xee68[200]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){_0x1d97x3f= _0x1d97x21;_0x1d97x30[_0xee68[68]]= _[_0xee68[71]](db[_0xee68[201]][_0xee68[69]]);_0x1d97x30[_0xee68[75]]= _[_0xee68[71]](_0x1d97x1a[_0xee68[75]]);_0x1d97x30[_0xee68[76]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],_0x1d97x30[_0xee68[75]]);_0x1d97x24[_0xee68[78]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],qs[_0xee68[79]](_0x1d97x1a[_0xee68[75]][_0xee68[79]]));_0x1d97x24[_0xee68[78]]= (_0x1d97x24[_0xee68[78]][_0xee68[80]])?_0x1d97x24[_0xee68[78]]:_0x1d97x30[_0xee68[68]];_0x1d97x24[_0xee68[83]]= qs[_0xee68[84]](_0x1d97x1a[_0xee68[75]][_0xee68[84]]);_0x1d97x24[_0xee68[85]]= qs[_0xee68[76]](_[_0xee68[86]](_0x1d97x1a[_0xee68[75]],_0x1d97x30[_0xee68[76]]));if(_0x1d97x1a[_0xee68[75]][_0xee68[87]]){_0x1d97x24[_0xee68[85]]= _[_0xee68[90]](_0x1d97x24[_0xee68[85]],{$or:_[_0xee68[89]](_0x1d97x24[_0xee68[78]],function(_0x1d97x31){var _0x1d97x32={};_0x1d97x32[_0x1d97x31]= {$like:_0xee68[88]+ _0x1d97x1a[_0xee68[75]][_0xee68[87]]+ _0xee68[88]};return _0x1d97x32})})};_0x1d97x24= _[_0xee68[90]]({},_0x1d97x24,_0x1d97x1a[_0xee68[91]]);return _0x1d97x3f[_0xee68[200]](_0x1d97x24)}})[_0xee68[40]](function(_0x1d97x41){if(_0x1d97x41){_0x1d97x25= _0x1d97x41[_0xee68[80]];if(!_0x1d97x1a[_0xee68[75]][_0xee68[82]](_0xee68[81])){_0x1d97x24[_0xee68[51]]= qs[_0xee68[51]](_0x1d97x1a[_0xee68[75]][_0xee68[51]]);_0x1d97x24[_0xee68[50]]= qs[_0xee68[50]](_0x1d97x1a[_0xee68[75]][_0xee68[50]])};return _0x1d97x3f[_0xee68[200]](_0x1d97x24)}})[_0xee68[40]](function(_0x1d97x40){return _0x1d97x40?{count:_0x1d97x25,rows:_0x1d97x40}:null})[_0xee68[40]](respondWithResult(_0x1d97x21,null,_0xee68[200]))[_0xee68[31]](handleError(_0x1d97x21,null,_0xee68[200]))};exports[_0xee68[202]]= function(_0x1d97x1a,_0x1d97x21,_0x1d97x33){var _0x1d97x24={};var _0x1d97x30={};var _0x1d97x3f;var _0x1d97x25;return db[_0xee68[70]][_0xee68[167]]({where:{id:_0x1d97x1a[_0xee68[95]][_0xee68[94]]}})[_0xee68[40]](handleEntityNotFound(_0x1d97x21,null,_0xee68[202]))[_0xee68[40]](function(_0x1d97x21){if(_0x1d97x21){_0x1d97x3f= _0x1d97x21;_0x1d97x30[_0xee68[68]]= _[_0xee68[71]](db[_0xee68[203]][_0xee68[69]]);_0x1d97x30[_0xee68[75]]= _[_0xee68[71]](_0x1d97x1a[_0xee68[75]]);_0x1d97x30[_0xee68[76]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],_0x1d97x30[_0xee68[75]]);_0x1d97x24[_0xee68[78]]= _[_0xee68[77]](_0x1d97x30[_0xee68[68]],qs[_0xee68[79]](_0x1d97x1a[_0xee68[75]][_0xee68[79]]));_0x1d97x24[_0xee68[78]]= (_0x1d97x24[_0xee68[78]][_0xee68[80]])?_0x1d97x24[_0xee68[78]]:_0x1d97x30[_0xee68[68]];_0x1d97x24[_0xee68[83]]= qs[_0xee68[84]](_0x1d97x1a[_0xee68[75]][_0xee68[84]]);_0x1d97x24[_0xee68[85]]= qs[_0xee68[76]](_[_0xee68[86]](_0x1d97x1a[_0xee68[75]],_0x1d97x30[_0xee68[76]]));if(_0x1d97x1a[_0xee68[75]][_0xee68[87]]){_0x1d97x24[_0xee68[85]]= _[_0xee68[90]](_0x1d97x24[_0xee68[85]],{$or:_[_0xee68[89]](_0x1d97x24[_0xee68[78]],function(_0x1d97x31){var _0x1d97x32={};_0x1d97x32[_0x1d97x31]= {$like:_0xee68[88]+ _0x1d97x1a[_0xee68[75]][_0xee68[87]]+ _0xee68[88]};return _0x1d97x32})})};_0x1d97x24= _[_0xee68[90]]({},_0x1d97x24,_0x1d97x1a[_0xee68[91]]);return _0x1d97x3f[_0xee68[202]](_0x1d97x24)}})[_0xee68[40]](function(_0x1d97x41){if(_0x1d97x41){_0x1d97x25= _0x1d97x41[_0xee68[80]];if(!_0x1d97x1a[_0xee68[75]][_0xee68[82]](_0xee68[81])){_0x1d97x24[_0xee68[51]]= qs[_0xee68[51]](_0x1d97x1a[_0xee68[75]][_0xee68[51]]);_0x1d97x24[_0xee68[50]]= qs[_0xee68[50]](_0x1d97x1a[_0xee68[75]][_0xee68[50]])};return _0x1d97x3f[_0xee68[202]](_0x1d97x24)}})[_0xee68[40]](function(_0x1d97x40){return _0x1d97x40?{count:_0x1d97x25,rows:_0x1d97x40}:null})[_0xee68[40]](respondWithResult(_0x1d97x21,null,_0xee68[202]))[_0xee68[31]](handleError(_0x1d97x21,null,_0xee68[202]))}
\ No newline at end of file
diff --git a/server/api/user/user.events.js b/server/api/user/user.events.js
new file mode 100644 (file)
index 0000000..4d49f10
--- /dev/null
@@ -0,0 +1 @@
+var _0x8eee=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x76\x65\x6E\x74\x73","\x55\x73\x65\x72","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x73\x65\x74\x4D\x61\x78\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65","\x3A","\x69\x64","\x65\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x68\x6F\x6F\x6B","\x65\x78\x70\x6F\x72\x74\x73"];_0x8eee[0];var EventEmitter=require(_0x8eee[1]);var User=require(_0x8eee[4])[_0x8eee[3]][_0x8eee[2]];var UserEvents= new EventEmitter();UserEvents[_0x8eee[5]](0);var events={afterCreate:_0x8eee[6],afterUpdate:_0x8eee[7],afterDestroy:_0x8eee[8]};function emitEvent(event){return function(_0x822bx7,_0x822bx8,_0x822bx9){UserEvents[_0x8eee[11]](event+ _0x8eee[9]+ _0x822bx7[_0x8eee[10]],_0x822bx7);UserEvents[_0x8eee[11]](event,_0x822bx7);_0x822bx9(null)}}for(var e in events){if(events[_0x8eee[12]](e)){var event=events[e];User[_0x8eee[13]](e,emitEvent(event))}};module[_0x8eee[14]]= UserEvents
\ No newline at end of file
diff --git a/server/api/user/user.model.js b/server/api/user/user.model.js
new file mode 100644 (file)
index 0000000..46bbcfd
--- /dev/null
@@ -0,0 +1 @@
+var _0x6346=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x63\x72\x79\x70\x74\x6F","\x75\x74\x69\x6C","\x6D\x64\x35","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x75\x73\x65\x72\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x67\x6F\x6F\x67\x6C\x65","\x6C\x65\x6E\x67\x74\x68","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x73\x79\x73\x74\x65\x6D","\x69\x64","\x25\x73\x25\x73","\x70\x72\x65\x66\x69\x78","\x66\x6F\x72\x6D\x61\x74","\x72\x65\x63\x6F\x72\x64","\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D\x2E\x25\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x46\x6F\x72\x6D\x61\x74","\x6D\x65\x72\x67\x65","\x70\x75\x73\x68","\x61\x75\x74\x68","\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x43\x68\x61\x6E\x53\x70\x79","\x53\x49\x50\x2F\x25\x73\x2C\x25\x73","\x6E\x61\x6D\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x53\x74\x6F\x70\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x53\x65\x74","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x44\x69\x61\x6C","\x53\x49\x50\x2F\x25\x73\x2C\x2C\x74\x54\x78\x58","\x48\x61\x6E\x67\x75\x70","\x70\x72\x69\x6F\x72\x69\x74\x79","\x64\x65\x66\x61\x75\x6C\x74\x73","\x63\x61\x74\x63\x68","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x63\x6F\x6E\x63\x61\x74","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x65\x78\x70\x6F\x72\x74\x73","\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x75\x73\x65\x72\x73","\x75\x70\x64\x61\x74\x65\x4D\x64\x35\x50\x61\x73\x73\x77\x6F\x72\x64","\x75\x70\x64\x61\x74\x65\x50\x61\x73\x73\x77\x6F\x72\x64","\x63\x68\x61\x6E\x67\x65\x64","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x63\x68\x61\x6E\x73\x70\x79","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x63\x72\x79\x70\x74\x50\x61\x73\x73\x77\x6F\x72\x64","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x4D\x69\x73\x73\x69\x6E\x67\x20\x43\x61\x6C\x6C\x62\x61\x63\x6B","\x62\x61\x73\x65\x36\x34","\x72\x61\x6E\x64\x6F\x6D\x42\x79\x74\x65\x73","\x73\x61\x6C\x74","\x73\x68\x61\x31","\x70\x62\x6B\x64\x66\x32\x53\x79\x6E\x63","\x70\x62\x6B\x64\x66\x32","\x70\x72\x6F\x76\x69\x64\x65\x72","\x69\x6E\x64\x65\x78\x4F\x66","\x49\x6E\x76\x61\x6C\x69\x64\x20\x70\x61\x73\x73\x77\x6F\x72\x64","\x6D\x61\x6B\x65\x53\x61\x6C\x74","\x6D\x64\x35\x73\x65\x63\x72\x65\x74","\x3A\x61\x73\x74\x65\x72\x69\x73\x6B\x3A","\x64\x65\x66\x69\x6E\x65"];_0x6346[0];var BPromise=require(_0x6346[1]);var crypto=require(_0x6346[2]);var util=require(_0x6346[3]);var md5=require(_0x6346[4]);var _=require(_0x6346[5]);var attributes=require(_0x6346[6]);var authTypes=[_0x6346[7]];var validatePresenceOf=function(_0xecbdx9){return _0xecbdx9&& _0xecbdx9[_0x6346[8]]};var getChanSpyApplications=function(_0xecbdxb,_0xecbdxc,_0xecbdxd){var _0xecbdxe={context:_0x6346[9],type:_0x6346[10],isApp:false,UserId:_0xecbdxb[_0x6346[11]]};var _0xecbdxf=[];for(var _0xecbdx10=0,_0xecbdx11=1;_0xecbdx10< _0xecbdxd[_0x6346[8]];_0xecbdx10++,_0xecbdx11= 1){var _0xecbdx12={exten:util[_0x6346[14]](_0x6346[12],_0xecbdxd[_0xecbdx10][_0x6346[13]],_0xecbdxc),ChanSpyId:_0xecbdxd[_0xecbdx10][_0x6346[11]]};if(_0xecbdxd[_0xecbdx10][_0x6346[15]]){_0xecbdxf[_0x6346[20]](_[_0x6346[19]]({app:_0x6346[16],appdata:util[_0x6346[14]](_0x6346[17],_0xecbdxd[_0xecbdx10][_0x6346[18]]),priority:_0xecbdx11++},_0xecbdxe,_0xecbdx12))};if(_0xecbdxd[_0xecbdx10][_0x6346[21]]){_0xecbdxf[_0x6346[20]](_[_0x6346[19]]({app:_0x6346[22],appdata:_0xecbdxd[_0xecbdx10][_0x6346[23]],priority:_0xecbdx11++},_0xecbdxe,_0xecbdx12))};_0xecbdxf[_0x6346[20]](_[_0x6346[19]]({app:_0x6346[24],appdata:util[_0x6346[14]](_0x6346[25],_0xecbdxb[_0x6346[26]],_0xecbdxd[_0xecbdx10][_0x6346[27]]),priority:_0xecbdx11++},_0xecbdxe,_0xecbdx12));if(_0xecbdxd[_0xecbdx10][_0x6346[15]]){_0xecbdxf[_0x6346[20]](_[_0x6346[19]]({app:_0x6346[28],priority:_0xecbdx11++},_0xecbdxe,_0xecbdx12))}};return _0xecbdxf};var getUserApplications=function(_0xecbdxb,_0xecbdxc){var _0xecbdxe={context:_0x6346[9],exten:_0xecbdxc,type:_0x6346[10],isApp:false,UserId:_0xecbdxb[_0x6346[11]]};var _0xecbdxf=[{app:_0x6346[29],appdata:_0x6346[30]},{app:_0x6346[31],appdata:util[_0x6346[14]](_0x6346[32],_0xecbdxb[_0x6346[26]])},{app:_0x6346[33]}];for(var _0xecbdx10=0;_0xecbdx10< _0xecbdxf[_0x6346[8]];_0xecbdx10++){_0xecbdxf[_0xecbdx10][_0x6346[34]]= _0xecbdx10+ 1;_0xecbdxf[_0xecbdx10]= _[_0x6346[35]](_0xecbdxf[_0xecbdx10],_0xecbdxe)};return _0xecbdxf};var getChanSpyPromise=function(_0xecbdx15,_0xecbdxb){return  new BPromise(function(_0xecbdx16,_0xecbdx17){return _0xecbdx15[_0x6346[41]][_0x6346[40]]()[_0x6346[39]](function(_0xecbdx19){if(_0xecbdx19){var _0xecbdx1a=getChanSpyApplications(_0xecbdxb,_0xecbdxb[_0x6346[37]],_0xecbdx19);var _0xecbdx1b=getChanSpyApplications(_0xecbdxb,_0xecbdxb[_0x6346[26]],_0xecbdx19);return _0xecbdx16(_0xecbdx1a[_0x6346[38]](_0xecbdx1b))};return _0xecbdx16([])})[_0x6346[36]](function(_0xecbdx18){_0xecbdx17(_0xecbdx18)})})};module[_0x6346[42]]= function(_0xecbdx1c,_0xecbdx1d){var _0xecbdx15=_0xecbdx1c[_0x6346[43]];return _0xecbdx1c[_0x6346[68]](_0x6346[44],attributes,{tableName:_0x6346[45],hooks:{beforeCreate:function(_0xecbdxb,_0xecbdx1e,_0xecbdx1f){_0xecbdxb[_0x6346[46]]();_0xecbdxb[_0x6346[47]](_0xecbdx1f)},beforeUpdate:function(_0xecbdxb,_0xecbdx1e,_0xecbdx1f){if(_0xecbdxb[_0x6346[48]](_0x6346[23])){_0xecbdxb[_0x6346[46]]();return _0xecbdxb[_0x6346[47]](_0xecbdx1f)};_0xecbdx1f()},afterCreate:function(_0xecbdxb,_0xecbdx1e,_0xecbdx1f){var _0xecbdx20=getUserApplications(_0xecbdxb,_0xecbdxb[_0x6346[37]]);var _0xecbdx21=getUserApplications(_0xecbdxb,_0xecbdxb[_0x6346[26]]);return _0xecbdx15[_0x6346[50]][_0x6346[49]](_0xecbdx20[_0x6346[38]](_0xecbdx21))[_0x6346[39]](function(){if(_0xecbdxb[_0x6346[51]]){return getChanSpyPromise(_0xecbdx15,_0xecbdxb)}})[_0x6346[39]](function(_0xecbdxf){if(_0xecbdxf&& _0xecbdxf[_0x6346[8]]){return _0xecbdx15[_0x6346[50]][_0x6346[49]](_0xecbdxf)}})[_0x6346[39]](function(){_0xecbdx1f()})[_0x6346[36]](function(_0xecbdx18){_0xecbdx1f(_0xecbdx18)})},afterUpdate:function(_0xecbdxb,_0xecbdx1e,_0xecbdx1f){if(_0xecbdxb[_0x6346[48]](_0x6346[51])){return _0xecbdx15[_0x6346[50]][_0x6346[52]]({where:{UserId:_0xecbdxb[_0x6346[11]],type:_0x6346[10]}})[_0x6346[39]](function(){if(_0xecbdxb[_0x6346[51]]){return getChanSpyPromise(_0xecbdx15,_0xecbdxb)[_0x6346[39]](function(_0xecbdxf){if(_0xecbdxf&& _0xecbdxf[_0x6346[8]]){return _0xecbdx15[_0x6346[50]][_0x6346[49]](_0xecbdxf)}})}else {return _0xecbdx15[_0x6346[50]][_0x6346[52]]({where:{UserId:_0xecbdxb[_0x6346[11]],type:_0x6346[10],ChanSpyId:{$ne:null}}})}})[_0x6346[39]](function(){_0xecbdx1f()})[_0x6346[36]](function(_0xecbdx18){_0xecbdx1f(_0xecbdx18)})}else {_0xecbdx1f()}},afterDestroy:function(_0xecbdxb,_0xecbdx1e){return _0xecbdx15[_0x6346[50]][_0x6346[52]]({where:{UserId:_0xecbdxb[_0x6346[11]],type:_0x6346[10]}})}},instanceMethods:{authenticate:function(_0xecbdx22,_0xecbdx23){if(!_0xecbdx23){return this[_0x6346[23]]=== this[_0x6346[53]](_0xecbdx22)};var _0xecbdx24=this;this[_0x6346[53]](_0xecbdx22,function(_0xecbdx18,_0xecbdx25){if(_0xecbdx18){_0xecbdx23(_0xecbdx18)};if(_0xecbdx24[_0x6346[23]]=== _0xecbdx25){_0xecbdx23(null,true)}else {_0xecbdx23(null,false)}})},makeSalt:function(_0xecbdx26,_0xecbdx23){var _0xecbdx27=16;if( typeof arguments[0]=== _0x6346[54]){_0xecbdx23= arguments[0];_0xecbdx26= _0xecbdx27}else {if( typeof arguments[1]=== _0x6346[54]){_0xecbdx23= arguments[1]}else {throw  new Error(_0x6346[55])}};if(!_0xecbdx26){_0xecbdx26= _0xecbdx27};return crypto[_0x6346[57]](_0xecbdx26,function(_0xecbdx18,_0xecbdx28){if(_0xecbdx18){_0xecbdx23(_0xecbdx18)};return _0xecbdx23(null,_0xecbdx28.toString(_0x6346[56]))})},encryptPassword:function(_0xecbdx22,_0xecbdx23){if(!_0xecbdx22||  !this[_0x6346[58]]){return _0xecbdx23?_0xecbdx23(null):null};var _0xecbdx29=10000;var _0xecbdx2a=64;var _0xecbdx28= new Buffer(this[_0x6346[58]],_0x6346[56]);if(!_0xecbdx23){return crypto[_0x6346[60]](_0xecbdx22,_0xecbdx28,_0xecbdx29,_0xecbdx2a,_0x6346[59]).toString(_0x6346[56])};return crypto[_0x6346[61]](_0xecbdx22,_0xecbdx28,_0xecbdx29,_0xecbdx2a,_0x6346[59],function(_0xecbdx18,_0xecbdx2b){if(_0xecbdx18){_0xecbdx23(_0xecbdx18)};return _0xecbdx23(null,_0xecbdx2b.toString(_0x6346[56]))})},updatePassword:function(_0xecbdx1f){if(!this[_0x6346[23]]){return _0xecbdx1f(null)};if(!validatePresenceOf(this[_0x6346[23]])&& authTypes[_0x6346[63]](this[_0x6346[62]])===  -1){_0xecbdx1f( new Error(_0x6346[64]))};var _0xecbdx24=this;this[_0x6346[65]](function(_0xecbdx2c,_0xecbdx28){if(_0xecbdx2c){return _0xecbdx1f(_0xecbdx2c)};_0xecbdx24[_0x6346[58]]= _0xecbdx28;_0xecbdx24[_0x6346[53]](_0xecbdx24[_0x6346[23]],function(_0xecbdx2d,_0xecbdx2e){if(_0xecbdx2d){_0xecbdx1f(_0xecbdx2d)};_0xecbdx24[_0x6346[23]]= _0xecbdx2e;_0xecbdx1f(null)})})},updateMd5Password:function(){this[_0x6346[66]]= md5(this[_0x6346[26]]+ _0x6346[67]+ this[_0x6346[23]]);return this[_0x6346[66]]}}})}
\ No newline at end of file
diff --git a/server/api/user/user.rpc.js b/server/api/user/user.rpc.js
new file mode 100644 (file)
index 0000000..7c39236
--- /dev/null
@@ -0,0 +1 @@
+var _0xadb5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2F\x75\x73\x65\x72\x2E\x73\x6F\x63\x6B\x65\x74","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x55\x73\x65\x72","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x55\x73\x65\x72","\x53\x68\x6F\x77\x55\x73\x65\x72","\x66\x69\x6E\x64","\x50\x61\x75\x73\x65\x55\x73\x65\x72","\x74\x79\x70\x65","\x62\x6F\x64\x79","\x44\x45\x46\x41\x55\x4C\x54\x20\x50\x41\x55\x53\x45","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x75\x70\x64\x61\x74\x65","\x67\x65\x74\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x6E\x61\x6D\x65","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x50\x41\x55\x53\x45","\x72\x6F\x6C\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x6C\x65\x6E\x67\x74\x68","\x69\x64","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x55\x6E\x70\x61\x75\x73\x65\x55\x73\x65\x72","\x63\x68\x61\x6E\x6E\x65\x6C","\x69\x73\x56\x61\x6C\x69\x64\x43\x68\x61\x6E\x6E\x65\x6C","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x79\x73\x74\x65\x6D","\x76\x6F\x69\x63\x65","\x6D\x61\x69\x6C","\x63\x68\x61\x74","\x66\x61\x78","\x73\x6D\x73","\x25\x73\x25\x73","\x50\x61\x75\x73\x65","\x73\x65\x74","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x61\x6C\x6C","\x66\x69\x6E\x64\x4F\x6E\x65"];_0xadb5[0];var _=require(_0xadb5[1]);var util=require(_0xadb5[2]);var moment=require(_0xadb5[3]);var BPromise=require(_0xadb5[4]);var db=require(_0xadb5[6])[_0xadb5[5]];var utils=require(_0xadb5[7]);var logger=require(_0xadb5[9])(_0xadb5[8]);var jayson=require(_0xadb5[10]);var client=jayson[_0xadb5[12]][_0xadb5[11]]({port:9002});var socket=require(_0xadb5[14])({host:_0xadb5[13],port:6379});require(_0xadb5[16])[_0xadb5[15]](socket);function respondWithRpcPromise(_0xf965xc,_0xf965xd,_0xf965xe){return  new BPromise(function(_0xf965xf,_0xf965x10){return client[_0xadb5[29]](_0xf965xc,_0xf965xe)[_0xadb5[28]](function(_0xf965x12){logger[_0xadb5[21]](_0xadb5[17],_0xf965xd,_0xadb5[20]);logger[_0xadb5[24]](_0xadb5[22],_0xf965xd,_0xadb5[20],JSON[_0xadb5[23]](_0xf965x12));if(_0xf965x12[_0xadb5[18]]){if(_0xf965x12[_0xadb5[18]][_0xadb5[25]]=== 500){logger[_0xadb5[18]](_0xadb5[17],_0xf965xd,_0xf965x12[_0xadb5[18]][_0xadb5[26]]);return _0xf965x10(_0xf965x12[_0xadb5[18]][_0xadb5[26]])};logger[_0xadb5[18]](_0xadb5[17],_0xf965xd,_0xf965x12[_0xadb5[18]][_0xadb5[26]]);return _0xf965xf(_0xf965x12[_0xadb5[18]][_0xadb5[26]])}else {logger[_0xadb5[21]](_0xadb5[17],_0xf965xd,_0xadb5[20]);_0xf965xf(_0xf965x12[_0xadb5[27]][_0xadb5[26]])}})[_0xadb5[19]](function(_0xf965x11){logger[_0xadb5[18]](_0xadb5[17],_0xf965xd,_0xf965x11);_0xf965x10(_0xf965x11)})})}exports[_0xadb5[30]]= function(_0xf965xe){var _0xf965x13=this;return  new Promise(function(_0xf965xf,_0xf965x10){return db[_0xadb5[41]][_0xadb5[40]]({raw:_0xf965xe[_0xadb5[31]]?(_0xf965xe[_0xadb5[31]][_0xadb5[32]]=== undefined)?true:false:true,where:_0xf965xe[_0xadb5[31]]?_0xf965xe[_0xadb5[31]][_0xadb5[33]]|| null:null,attributes:_0xf965xe[_0xadb5[31]]?_0xf965xe[_0xadb5[31]][_0xadb5[34]]|| null:null,limit:_0xf965xe[_0xadb5[31]]?_0xf965xe[_0xadb5[31]][_0xadb5[35]]|| null:null,include:_0xf965xe[_0xadb5[31]]?(_0xf965xe[_0xadb5[31]][_0xadb5[36]]?_[_0xadb5[39]](_0xf965xe[_0xadb5[31]][_0xadb5[36]],function(_0xf965x14){return {model:db[_0xf965x14[_0xadb5[37]]],as:_0xf965x14[_0xadb5[38]],attributes:_0xf965x14[_0xadb5[34]],include:_0xf965x14[_0xadb5[36]]?_[_0xadb5[39]](_0xf965x14[_0xadb5[36]],function(_0xf965x15){return {model:db[_0xf965x15[_0xadb5[37]]],as:_0xf965x15[_0xadb5[38]],attributes:_0xf965x15[_0xadb5[34]],include:_0xf965x15[_0xadb5[36]]?_[_0xadb5[39]](_0xf965x15[_0xadb5[36]],function(_0xf965x16){return {model:db[_0xf965x16[_0xadb5[37]]],as:_0xf965x16[_0xadb5[38]],attributes:_0xf965x16[_0xadb5[34]]}}):[]}}):[]}}):[]):[]})[_0xadb5[28]](function(_0xf965x12){logger[_0xadb5[21]](_0xadb5[30],_0xf965xe);logger[_0xadb5[24]](_0xadb5[30],_0xf965xe,JSON[_0xadb5[23]](_0xf965x12));_0xf965xf(_0xf965x12)})[_0xadb5[19]](function(_0xf965x11){logger[_0xadb5[18]](_0xadb5[30],_0xf965x11[_0xadb5[26]],_0xf965xe);_0xf965x10(_0xf965x13[_0xadb5[18]](500,_0xf965x11[_0xadb5[26]]))})})};exports[_0xadb5[42]]= function(_0xf965xe){var _0xf965x13=this;return  new Promise(function(_0xf965xf,_0xf965x10){return db[_0xadb5[41]][_0xadb5[43]]({raw:_0xf965xe[_0xadb5[31]]?(_0xf965xe[_0xadb5[31]][_0xadb5[32]]=== undefined)?true:false:true,where:_0xf965xe[_0xadb5[31]]?_0xf965xe[_0xadb5[31]][_0xadb5[33]]|| null:null,attributes:_0xf965xe[_0xadb5[31]]?_0xf965xe[_0xadb5[31]][_0xadb5[34]]|| null:null,include:_0xf965xe[_0xadb5[31]]?(_0xf965xe[_0xadb5[31]][_0xadb5[36]]?_[_0xadb5[39]](_0xf965xe[_0xadb5[31]][_0xadb5[36]],function(_0xf965x14){return {model:db[_0xf965x14[_0xadb5[37]]],as:_0xf965x14[_0xadb5[38]],attributes:_0xf965x14[_0xadb5[34]],include:_0xf965x14[_0xadb5[36]]?_[_0xadb5[39]](_0xf965x14[_0xadb5[36]],function(_0xf965x15){return {model:db[_0xf965x15[_0xadb5[37]]],as:_0xf965x15[_0xadb5[38]],attributes:_0xf965x15[_0xadb5[34]],include:_0xf965x15[_0xadb5[36]]?_[_0xadb5[39]](_0xf965x15[_0xadb5[36]],function(_0xf965x16){return {model:db[_0xf965x16[_0xadb5[37]]],as:_0xf965x16[_0xadb5[38]],attributes:_0xf965x16[_0xadb5[34]]}}):[]}}):[]}}):[]):[]})[_0xadb5[28]](function(_0xf965x12){logger[_0xadb5[21]](_0xadb5[42],_0xf965xe);logger[_0xadb5[24]](_0xadb5[42],_0xf965xe,JSON[_0xadb5[23]](_0xf965x12));_0xf965xf(_0xf965x12)})[_0xadb5[19]](function(_0xf965x11){logger[_0xadb5[18]](_0xadb5[42],_0xf965x11[_0xadb5[26]],_0xf965xe);_0xf965x10(_0xf965x13[_0xadb5[18]](500,_0xf965x11[_0xadb5[26]]))})})};exports[_0xadb5[44]]= function(_0xf965xe){var _0xf965x13=this;return  new Promise(function(_0xf965xf,_0xf965x10){var _0xf965x17;return db[_0xadb5[41]][_0xadb5[43]]({where:_0xf965xe[_0xadb5[31]][_0xadb5[33]]|| {},attributes:[_0xadb5[63],_0xadb5[52],_0xadb5[56],_0xadb5[57]]})[_0xadb5[28]](function(_0xf965x18){if(_0xf965x18){_0xf965x17= _0xf965x18;return db[_0xadb5[64]][_0xadb5[50]]({paused:1},{where:{UserId:_0xf965x17[_0xadb5[63]]},individualHooks:true})}})[_0xadb5[28]](function(){if(_0xf965x17){return db[_0xadb5[61]][_0xadb5[40]]({where:{membername:_0xf965x17[_0xadb5[52]],interface:util[_0xadb5[49]](_0xadb5[53],_0xadb5[54],_0xf965x17[_0xadb5[52]]),type:_0xadb5[55],exitAt:null},attributes:[_0xadb5[63]]})}})[_0xadb5[28]](function(_0xf965x19){if(_0xf965x19[_0xadb5[62]]){return db[_0xadb5[61]][_0xadb5[50]]({exitAt:moment()[_0xadb5[49]](_0xadb5[48])},{where:{id:{$in:_[_0xadb5[39]](_0xf965x19,_0xadb5[63])}},individualHooks:true})}})[_0xadb5[28]](function(){var _0xf965x19=[];var _0xf965x1a=utils[_0xadb5[51]]();_0xf965x1a[_0xadb5[59]](function(_0xf965x1b){_0xf965x19[_0xadb5[58]]({channel:_0xf965x1b,membername:_0xf965x17[_0xadb5[52]],interface:util[_0xadb5[49]](_0xadb5[53],_0xadb5[54],_0xf965x17[_0xadb5[52]]),type:_0xadb5[55],enterAt:moment()[_0xadb5[49]](_0xadb5[48]),data1:_0xf965xe[_0xadb5[46]][_0xadb5[45]]|| _0xadb5[47],role:_0xf965x17[_0xadb5[56]],internal:_0xf965x17[_0xadb5[57]]})});return db[_0xadb5[61]][_0xadb5[60]](_0xf965x19,{individualHooks:true})})[_0xadb5[28]](function(){return _0xf965x17[_0xadb5[50]]({voicePause:true,mailPause:true,chatPause:true,faxPause:true,smsPause:true,openchannelPause:true,pauseType:_0xf965xe[_0xadb5[46]][_0xadb5[45]]|| _0xadb5[47],lastPauseAt:moment()[_0xadb5[49]](_0xadb5[48])})})[_0xadb5[28]](function(_0xf965x18){_0xf965xf(_0xf965x18)})[_0xadb5[19]](function(_0xf965x11){_0xf965x10(_0xf965x13[_0xadb5[18]](500,_0xf965x11[_0xadb5[26]]))})})};exports[_0xadb5[65]]= function(_0xf965xe){var _0xf965x13=this;return  new Promise(function(_0xf965xf,_0xf965x10){var _0xf965x17;return db[_0xadb5[41]][_0xadb5[80]]({where:_0xf965xe[_0xadb5[31]][_0xadb5[33]]|| {},attributes:[_0xadb5[63],_0xadb5[52]]})[_0xadb5[28]](function(_0xf965x18){if(_0xf965x18){_0xf965x17= _0xf965x18;if(_0xf965xe[_0xadb5[46]][_0xadb5[66]]&&  !utils[_0xadb5[67]](_0xf965xe[_0xadb5[46]][_0xadb5[66]])){throw  new Error(_0xadb5[68])};switch(_0xf965xe[_0xadb5[46]][_0xadb5[66]]){case _0xadb5[70]:return db[_0xadb5[64]][_0xadb5[50]]({paused:0},{where:{UserId:_0xf965x17[_0xadb5[63]]}})[_0xadb5[28]](function(){return db[_0xadb5[61]][_0xadb5[43]]({where:{channel:_0xf965xe[_0xadb5[46]][_0xadb5[66]],membername:_0xf965x17[_0xadb5[52]],interface:util[_0xadb5[49]](_0xadb5[53],_0xadb5[54],_0xf965x17[_0xadb5[52]]),type:_0xadb5[55],exitAt:null}})})[_0xadb5[28]](function(_0xf965x1c){if(_0xf965x1c){return _0xf965x1c[_0xadb5[50]]({exitAt:moment()[_0xadb5[49]](_0xadb5[48]),data2:_0xadb5[69]},{individualHooks:true})};return null})[_0xadb5[28]](function(){return _0xf965x17[_0xadb5[50]]({voicePause:false})});case _0xadb5[71]:;case _0xadb5[72]:;case _0xadb5[73]:;case _0xadb5[74]:;case _0xadb5[78]:return db[_0xadb5[61]][_0xadb5[43]]({where:{channel:_0xf965xe[_0xadb5[46]][_0xadb5[66]],membername:_0xf965x17[_0xadb5[52]],interface:util[_0xadb5[49]](_0xadb5[53],_0xadb5[54],_0xf965x17[_0xadb5[52]]),type:_0xadb5[55],exitAt:null}})[_0xadb5[28]](function(_0xf965x1c){return _0xf965x1c[_0xadb5[50]]({exitAt:moment()[_0xadb5[49]](_0xadb5[48]),data2:_0xadb5[69]},{individualHooks:true})})[_0xadb5[28]](function(){var _0xf965x1d={};_[_0xadb5[77]](_0xf965x1d,util[_0xadb5[49]](_0xadb5[75],_0xf965xe[_0xadb5[46]][_0xadb5[66]],_0xadb5[76]),false);return _0xf965x17[_0xadb5[50]](_0xf965x1d)});default:return db[_0xadb5[64]][_0xadb5[50]]({paused:0},{where:{UserId:_0xf965x17[_0xadb5[63]]}})[_0xadb5[28]](function(){return db[_0xadb5[61]][_0xadb5[40]]({where:{membername:_0xf965x17[_0xadb5[52]],interface:util[_0xadb5[49]](_0xadb5[53],_0xadb5[54],_0xf965x17[_0xadb5[52]]),type:_0xadb5[55],exitAt:null}})})[_0xadb5[28]](function(_0xf965x19){var _0xf965x1e=[];_0xf965x19[_0xadb5[59]](function(_0xf965x1c){_0xf965x1e[_0xadb5[58]](_0xf965x1c[_0xadb5[50]]({exitAt:moment()[_0xadb5[49]](_0xadb5[48]),data2:_0xadb5[69]}))});return BPromise[_0xadb5[79]](_0xf965x1e)})[_0xadb5[28]](function(){return _0xf965x17[_0xadb5[50]]({voicePause:false,mailPause:false,chatPause:false,faxPause:false,smsPause:false,openchannelPause:false})})}}})[_0xadb5[28]](function(_0xf965x18){_0xf965xf(_0xf965x18)})[_0xadb5[19]](function(_0xf965x11){_0xf965x10(_0xf965x13[_0xadb5[18]](500,_0xf965x11[_0xadb5[26]]))})})}
\ No newline at end of file
diff --git a/server/api/user/user.socket.js b/server/api/user/user.socket.js
new file mode 100644 (file)
index 0000000..9baf2d7
--- /dev/null
@@ -0,0 +1 @@
+var _0x53ea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x75\x73\x65\x72\x2E\x65\x76\x65\x6E\x74\x73","\x73\x61\x76\x65","\x72\x65\x6D\x6F\x76\x65","\x75\x70\x64\x61\x74\x65","\x65\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x75\x73\x65\x72\x3A","\x6F\x6E"];_0x53ea[0];var UserEvents=require(_0x53ea[1]);var events=[_0x53ea[2],_0x53ea[3],_0x53ea[4]];function createListener(_0xaa9dx4,_0xaa9dx5){return function(_0xaa9dx6){_0xaa9dx5[_0x53ea[5]](_0xaa9dx4,_0xaa9dx6)}}function removeListener(_0xaa9dx4,_0xaa9dx8){return function(){UserEvents[_0x53ea[6]](_0xaa9dx4,_0xaa9dx8)}}exports[_0x53ea[7]]= function(_0xaa9dx5){for(var _0xaa9dx9=0,_0xaa9dxa=events[_0x53ea[8]];_0xaa9dx9< _0xaa9dxa;_0xaa9dx9++){var _0xaa9dx4=events[_0xaa9dx9];var _0xaa9dx8=createListener(_0x53ea[9]+ _0xaa9dx4,_0xaa9dx5);UserEvents[_0x53ea[10]](_0xaa9dx4,_0xaa9dx8)}}
\ No newline at end of file
diff --git a/server/api/userChatQueue/index.js b/server/api/userChatQueue/index.js
new file mode 100644 (file)
index 0000000..92dc40f
--- /dev/null
@@ -0,0 +1 @@
+var _0x94e1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x94e1[0];var multer=require(_0x94e1[1]);var util=require(_0x94e1[2]);var path=require(_0x94e1[3]);var express=require(_0x94e1[4]);var router=express.Router();var auth=require(_0x94e1[5]);var config=require(_0x94e1[6]);module[_0x94e1[7]]= router
\ No newline at end of file
diff --git a/server/api/userChatQueue/userChatQueue.attributes.js b/server/api/userChatQueue/userChatQueue.attributes.js
new file mode 100644 (file)
index 0000000..0e78f51
--- /dev/null
@@ -0,0 +1 @@
+var _0x59ce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x59ce[0];var Sequelize=require(_0x59ce[1]);module[_0x59ce[2]]= {penalty:{type:Sequelize[_0x59ce[3]],defaultValue:0},assigned:{type:Sequelize[_0x59ce[3]],defaultValue:0},queue:{type:Sequelize[_0x59ce[4]]}}
\ No newline at end of file
diff --git a/server/api/userChatQueue/userChatQueue.model.js b/server/api/userChatQueue/userChatQueue.model.js
new file mode 100644 (file)
index 0000000..94a36ac
--- /dev/null
@@ -0,0 +1 @@
+var _0x1002=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x1002[0];var _=require(_0x1002[1]);var util=require(_0x1002[2]);var logger=require(_0x1002[4])(_0x1002[3]);var attributes=require(_0x1002[5]);module[_0x1002[6]]= function(_0x4ce5x5,_0x4ce5x6){return _0x4ce5x5[_0x1002[9]](_0x1002[7],attributes,{tableName:_0x1002[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/userChatQueue/userChatQueue.rpc.js b/server/api/userChatQueue/userChatQueue.rpc.js
new file mode 100644 (file)
index 0000000..372375e
--- /dev/null
@@ -0,0 +1 @@
+var _0xb044=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb044[0];var _=require(_0xb044[1]);var util=require(_0xb044[2]);var moment=require(_0xb044[3]);var BPromise=require(_0xb044[4]);var db=require(_0xb044[6])[_0xb044[5]];var utils=require(_0xb044[7]);var logger=require(_0xb044[9])(_0xb044[8]);var jayson=require(_0xb044[10]);var client=jayson[_0xb044[12]][_0xb044[11]]({port:9002});function respondWithRpcPromise(_0x613fxb,_0x613fxc,_0x613fxd){return  new BPromise(function(_0x613fxe,_0x613fxf){return client[_0xb044[25]](_0x613fxb,_0x613fxd)[_0xb044[24]](function(_0x613fx11){logger[_0xb044[17]](_0xb044[13],_0x613fxc,_0xb044[16]);logger[_0xb044[20]](_0xb044[18],_0x613fxc,_0xb044[16],JSON[_0xb044[19]](_0x613fx11));if(_0x613fx11[_0xb044[14]]){if(_0x613fx11[_0xb044[14]][_0xb044[21]]=== 500){logger[_0xb044[14]](_0xb044[13],_0x613fxc,_0x613fx11[_0xb044[14]][_0xb044[22]]);return _0x613fxf(_0x613fx11[_0xb044[14]][_0xb044[22]])};logger[_0xb044[14]](_0xb044[13],_0x613fxc,_0x613fx11[_0xb044[14]][_0xb044[22]]);return _0x613fxe(_0x613fx11[_0xb044[14]][_0xb044[22]])}else {logger[_0xb044[17]](_0xb044[13],_0x613fxc,_0xb044[16]);_0x613fxe(_0x613fx11[_0xb044[23]][_0xb044[22]])}})[_0xb044[15]](function(_0x613fx10){logger[_0xb044[14]](_0xb044[13],_0x613fxc,_0x613fx10);_0x613fxf(_0x613fx10)})})}
\ No newline at end of file
diff --git a/server/api/userFaxQueue/index.js b/server/api/userFaxQueue/index.js
new file mode 100644 (file)
index 0000000..d21a2ac
--- /dev/null
@@ -0,0 +1 @@
+var _0xb9db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xb9db[0];var multer=require(_0xb9db[1]);var util=require(_0xb9db[2]);var path=require(_0xb9db[3]);var express=require(_0xb9db[4]);var router=express.Router();var auth=require(_0xb9db[5]);var config=require(_0xb9db[6]);module[_0xb9db[7]]= router
\ No newline at end of file
diff --git a/server/api/userFaxQueue/userFaxQueue.attributes.js b/server/api/userFaxQueue/userFaxQueue.attributes.js
new file mode 100644 (file)
index 0000000..fc8fcd5
--- /dev/null
@@ -0,0 +1 @@
+var _0x4b38=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x4b38[0];var Sequelize=require(_0x4b38[1]);module[_0x4b38[2]]= {penalty:{type:Sequelize[_0x4b38[3]],defaultValue:0},assigned:{type:Sequelize[_0x4b38[3]],defaultValue:0},queue:{type:Sequelize[_0x4b38[4]]}}
\ No newline at end of file
diff --git a/server/api/userFaxQueue/userFaxQueue.model.js b/server/api/userFaxQueue/userFaxQueue.model.js
new file mode 100644 (file)
index 0000000..f47a0e5
--- /dev/null
@@ -0,0 +1 @@
+var _0x76a4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x76a4[0];var _=require(_0x76a4[1]);var util=require(_0x76a4[2]);var logger=require(_0x76a4[4])(_0x76a4[3]);var attributes=require(_0x76a4[5]);module[_0x76a4[6]]= function(_0xead8x5,_0xead8x6){return _0xead8x5[_0x76a4[9]](_0x76a4[7],attributes,{tableName:_0x76a4[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/userFaxQueue/userFaxQueue.rpc.js b/server/api/userFaxQueue/userFaxQueue.rpc.js
new file mode 100644 (file)
index 0000000..8c13f6e
--- /dev/null
@@ -0,0 +1 @@
+var _0x6615=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x6615[0];var _=require(_0x6615[1]);var util=require(_0x6615[2]);var moment=require(_0x6615[3]);var BPromise=require(_0x6615[4]);var db=require(_0x6615[6])[_0x6615[5]];var utils=require(_0x6615[7]);var logger=require(_0x6615[9])(_0x6615[8]);var jayson=require(_0x6615[10]);var client=jayson[_0x6615[12]][_0x6615[11]]({port:9002});function respondWithRpcPromise(_0xb7a8xb,_0xb7a8xc,_0xb7a8xd){return  new BPromise(function(_0xb7a8xe,_0xb7a8xf){return client[_0x6615[25]](_0xb7a8xb,_0xb7a8xd)[_0x6615[24]](function(_0xb7a8x11){logger[_0x6615[17]](_0x6615[13],_0xb7a8xc,_0x6615[16]);logger[_0x6615[20]](_0x6615[18],_0xb7a8xc,_0x6615[16],JSON[_0x6615[19]](_0xb7a8x11));if(_0xb7a8x11[_0x6615[14]]){if(_0xb7a8x11[_0x6615[14]][_0x6615[21]]=== 500){logger[_0x6615[14]](_0x6615[13],_0xb7a8xc,_0xb7a8x11[_0x6615[14]][_0x6615[22]]);return _0xb7a8xf(_0xb7a8x11[_0x6615[14]][_0x6615[22]])};logger[_0x6615[14]](_0x6615[13],_0xb7a8xc,_0xb7a8x11[_0x6615[14]][_0x6615[22]]);return _0xb7a8xe(_0xb7a8x11[_0x6615[14]][_0x6615[22]])}else {logger[_0x6615[17]](_0x6615[13],_0xb7a8xc,_0x6615[16]);_0xb7a8xe(_0xb7a8x11[_0x6615[23]][_0x6615[22]])}})[_0x6615[15]](function(_0xb7a8x10){logger[_0x6615[14]](_0x6615[13],_0xb7a8xc,_0xb7a8x10);_0xb7a8xf(_0xb7a8x10)})})}
\ No newline at end of file
diff --git a/server/api/userMailQueue/index.js b/server/api/userMailQueue/index.js
new file mode 100644 (file)
index 0000000..9c225d2
--- /dev/null
@@ -0,0 +1 @@
+var _0x2081=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x2081[0];var multer=require(_0x2081[1]);var util=require(_0x2081[2]);var path=require(_0x2081[3]);var express=require(_0x2081[4]);var router=express.Router();var auth=require(_0x2081[5]);var config=require(_0x2081[6]);module[_0x2081[7]]= router
\ No newline at end of file
diff --git a/server/api/userMailQueue/userMailQueue.attributes.js b/server/api/userMailQueue/userMailQueue.attributes.js
new file mode 100644 (file)
index 0000000..7ec57c1
--- /dev/null
@@ -0,0 +1 @@
+var _0x9c8e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x9c8e[0];var Sequelize=require(_0x9c8e[1]);module[_0x9c8e[2]]= {penalty:{type:Sequelize[_0x9c8e[3]],defaultValue:0},assigned:{type:Sequelize[_0x9c8e[3]],defaultValue:0},queue:{type:Sequelize[_0x9c8e[4]]}}
\ No newline at end of file
diff --git a/server/api/userMailQueue/userMailQueue.model.js b/server/api/userMailQueue/userMailQueue.model.js
new file mode 100644 (file)
index 0000000..91ab117
--- /dev/null
@@ -0,0 +1 @@
+var _0x108c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x108c[0];var _=require(_0x108c[1]);var util=require(_0x108c[2]);var logger=require(_0x108c[4])(_0x108c[3]);var attributes=require(_0x108c[5]);module[_0x108c[6]]= function(_0xa6abx5,_0xa6abx6){return _0xa6abx5[_0x108c[9]](_0x108c[7],attributes,{tableName:_0x108c[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/userMailQueue/userMailQueue.rpc.js b/server/api/userMailQueue/userMailQueue.rpc.js
new file mode 100644 (file)
index 0000000..72aea77
--- /dev/null
@@ -0,0 +1 @@
+var _0x5d7e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x5d7e[0];var _=require(_0x5d7e[1]);var util=require(_0x5d7e[2]);var moment=require(_0x5d7e[3]);var BPromise=require(_0x5d7e[4]);var db=require(_0x5d7e[6])[_0x5d7e[5]];var utils=require(_0x5d7e[7]);var logger=require(_0x5d7e[9])(_0x5d7e[8]);var jayson=require(_0x5d7e[10]);var client=jayson[_0x5d7e[12]][_0x5d7e[11]]({port:9002});function respondWithRpcPromise(_0x648fxb,_0x648fxc,_0x648fxd){return  new BPromise(function(_0x648fxe,_0x648fxf){return client[_0x5d7e[25]](_0x648fxb,_0x648fxd)[_0x5d7e[24]](function(_0x648fx11){logger[_0x5d7e[17]](_0x5d7e[13],_0x648fxc,_0x5d7e[16]);logger[_0x5d7e[20]](_0x5d7e[18],_0x648fxc,_0x5d7e[16],JSON[_0x5d7e[19]](_0x648fx11));if(_0x648fx11[_0x5d7e[14]]){if(_0x648fx11[_0x5d7e[14]][_0x5d7e[21]]=== 500){logger[_0x5d7e[14]](_0x5d7e[13],_0x648fxc,_0x648fx11[_0x5d7e[14]][_0x5d7e[22]]);return _0x648fxf(_0x648fx11[_0x5d7e[14]][_0x5d7e[22]])};logger[_0x5d7e[14]](_0x5d7e[13],_0x648fxc,_0x648fx11[_0x5d7e[14]][_0x5d7e[22]]);return _0x648fxe(_0x648fx11[_0x5d7e[14]][_0x5d7e[22]])}else {logger[_0x5d7e[17]](_0x5d7e[13],_0x648fxc,_0x5d7e[16]);_0x648fxe(_0x648fx11[_0x5d7e[23]][_0x5d7e[22]])}})[_0x5d7e[15]](function(_0x648fx10){logger[_0x5d7e[14]](_0x5d7e[13],_0x648fxc,_0x648fx10);_0x648fxf(_0x648fx10)})})}
\ No newline at end of file
diff --git a/server/api/userOpenchannelQueue/index.js b/server/api/userOpenchannelQueue/index.js
new file mode 100644 (file)
index 0000000..9baf0d5
--- /dev/null
@@ -0,0 +1 @@
+var _0xc47d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xc47d[0];var multer=require(_0xc47d[1]);var util=require(_0xc47d[2]);var path=require(_0xc47d[3]);var express=require(_0xc47d[4]);var router=express.Router();var auth=require(_0xc47d[5]);var config=require(_0xc47d[6]);module[_0xc47d[7]]= router
\ No newline at end of file
diff --git a/server/api/userOpenchannelQueue/userOpenchannelQueue.attributes.js b/server/api/userOpenchannelQueue/userOpenchannelQueue.attributes.js
new file mode 100644 (file)
index 0000000..f1defb5
--- /dev/null
@@ -0,0 +1 @@
+var _0x3309=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x3309[0];var Sequelize=require(_0x3309[1]);module[_0x3309[2]]= {penalty:{type:Sequelize[_0x3309[3]],defaultValue:0},assigned:{type:Sequelize[_0x3309[3]],defaultValue:0},queue:{type:Sequelize[_0x3309[4]]}}
\ No newline at end of file
diff --git a/server/api/userOpenchannelQueue/userOpenchannelQueue.model.js b/server/api/userOpenchannelQueue/userOpenchannelQueue.model.js
new file mode 100644 (file)
index 0000000..b97d437
--- /dev/null
@@ -0,0 +1 @@
+var _0xe993=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xe993[0];var _=require(_0xe993[1]);var util=require(_0xe993[2]);var logger=require(_0xe993[4])(_0xe993[3]);var attributes=require(_0xe993[5]);module[_0xe993[6]]= function(_0x18a2x5,_0x18a2x6){return _0x18a2x5[_0xe993[9]](_0xe993[7],attributes,{tableName:_0xe993[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/userOpenchannelQueue/userOpenchannelQueue.rpc.js b/server/api/userOpenchannelQueue/userOpenchannelQueue.rpc.js
new file mode 100644 (file)
index 0000000..da95213
--- /dev/null
@@ -0,0 +1 @@
+var _0xd8d5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd8d5[0];var _=require(_0xd8d5[1]);var util=require(_0xd8d5[2]);var moment=require(_0xd8d5[3]);var BPromise=require(_0xd8d5[4]);var db=require(_0xd8d5[6])[_0xd8d5[5]];var utils=require(_0xd8d5[7]);var logger=require(_0xd8d5[9])(_0xd8d5[8]);var jayson=require(_0xd8d5[10]);var client=jayson[_0xd8d5[12]][_0xd8d5[11]]({port:9002});function respondWithRpcPromise(_0x81d5xb,_0x81d5xc,_0x81d5xd){return  new BPromise(function(_0x81d5xe,_0x81d5xf){return client[_0xd8d5[25]](_0x81d5xb,_0x81d5xd)[_0xd8d5[24]](function(_0x81d5x11){logger[_0xd8d5[17]](_0xd8d5[13],_0x81d5xc,_0xd8d5[16]);logger[_0xd8d5[20]](_0xd8d5[18],_0x81d5xc,_0xd8d5[16],JSON[_0xd8d5[19]](_0x81d5x11));if(_0x81d5x11[_0xd8d5[14]]){if(_0x81d5x11[_0xd8d5[14]][_0xd8d5[21]]=== 500){logger[_0xd8d5[14]](_0xd8d5[13],_0x81d5xc,_0x81d5x11[_0xd8d5[14]][_0xd8d5[22]]);return _0x81d5xf(_0x81d5x11[_0xd8d5[14]][_0xd8d5[22]])};logger[_0xd8d5[14]](_0xd8d5[13],_0x81d5xc,_0x81d5x11[_0xd8d5[14]][_0xd8d5[22]]);return _0x81d5xe(_0x81d5x11[_0xd8d5[14]][_0xd8d5[22]])}else {logger[_0xd8d5[17]](_0xd8d5[13],_0x81d5xc,_0xd8d5[16]);_0x81d5xe(_0x81d5x11[_0xd8d5[23]][_0xd8d5[22]])}})[_0xd8d5[15]](function(_0x81d5x10){logger[_0xd8d5[14]](_0xd8d5[13],_0x81d5xc,_0x81d5x10);_0x81d5xf(_0x81d5x10)})})}
\ No newline at end of file
diff --git a/server/api/userSmsQueue/index.js b/server/api/userSmsQueue/index.js
new file mode 100644 (file)
index 0000000..0b67111
--- /dev/null
@@ -0,0 +1 @@
+var _0x91c2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x91c2[0];var multer=require(_0x91c2[1]);var util=require(_0x91c2[2]);var path=require(_0x91c2[3]);var express=require(_0x91c2[4]);var router=express.Router();var auth=require(_0x91c2[5]);var config=require(_0x91c2[6]);module[_0x91c2[7]]= router
\ No newline at end of file
diff --git a/server/api/userSmsQueue/userSmsQueue.attributes.js b/server/api/userSmsQueue/userSmsQueue.attributes.js
new file mode 100644 (file)
index 0000000..fc386bf
--- /dev/null
@@ -0,0 +1 @@
+var _0x1ffe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x53\x54\x52\x49\x4E\x47"];_0x1ffe[0];var Sequelize=require(_0x1ffe[1]);module[_0x1ffe[2]]= {penalty:{type:Sequelize[_0x1ffe[3]],defaultValue:0},assigned:{type:Sequelize[_0x1ffe[3]],defaultValue:0},queue:{type:Sequelize[_0x1ffe[4]]}}
\ No newline at end of file
diff --git a/server/api/userSmsQueue/userSmsQueue.model.js b/server/api/userSmsQueue/userSmsQueue.model.js
new file mode 100644 (file)
index 0000000..779b1fe
--- /dev/null
@@ -0,0 +1 @@
+var _0xe1df=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x6D\x73\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xe1df[0];var _=require(_0xe1df[1]);var util=require(_0xe1df[2]);var logger=require(_0xe1df[4])(_0xe1df[3]);var attributes=require(_0xe1df[5]);module[_0xe1df[6]]= function(_0x5b79x5,_0x5b79x6){return _0x5b79x5[_0xe1df[9]](_0xe1df[7],attributes,{tableName:_0xe1df[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/userSmsQueue/userSmsQueue.rpc.js b/server/api/userSmsQueue/userSmsQueue.rpc.js
new file mode 100644 (file)
index 0000000..26ad0b4
--- /dev/null
@@ -0,0 +1 @@
+var _0x19f7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x19f7[0];var _=require(_0x19f7[1]);var util=require(_0x19f7[2]);var moment=require(_0x19f7[3]);var BPromise=require(_0x19f7[4]);var db=require(_0x19f7[6])[_0x19f7[5]];var utils=require(_0x19f7[7]);var logger=require(_0x19f7[9])(_0x19f7[8]);var jayson=require(_0x19f7[10]);var client=jayson[_0x19f7[12]][_0x19f7[11]]({port:9002});function respondWithRpcPromise(_0x68a0xb,_0x68a0xc,_0x68a0xd){return  new BPromise(function(_0x68a0xe,_0x68a0xf){return client[_0x19f7[25]](_0x68a0xb,_0x68a0xd)[_0x19f7[24]](function(_0x68a0x11){logger[_0x19f7[17]](_0x19f7[13],_0x68a0xc,_0x19f7[16]);logger[_0x19f7[20]](_0x19f7[18],_0x68a0xc,_0x19f7[16],JSON[_0x19f7[19]](_0x68a0x11));if(_0x68a0x11[_0x19f7[14]]){if(_0x68a0x11[_0x19f7[14]][_0x19f7[21]]=== 500){logger[_0x19f7[14]](_0x19f7[13],_0x68a0xc,_0x68a0x11[_0x19f7[14]][_0x19f7[22]]);return _0x68a0xf(_0x68a0x11[_0x19f7[14]][_0x19f7[22]])};logger[_0x19f7[14]](_0x19f7[13],_0x68a0xc,_0x68a0x11[_0x19f7[14]][_0x19f7[22]]);return _0x68a0xe(_0x68a0x11[_0x19f7[14]][_0x19f7[22]])}else {logger[_0x19f7[17]](_0x19f7[13],_0x68a0xc,_0x19f7[16]);_0x68a0xe(_0x68a0x11[_0x19f7[23]][_0x19f7[22]])}})[_0x19f7[15]](function(_0x68a0x10){logger[_0x19f7[14]](_0x19f7[13],_0x68a0xc,_0x68a0x10);_0x68a0xf(_0x68a0x10)})})}
\ No newline at end of file
diff --git a/server/api/userVoiceQueue/index.js b/server/api/userVoiceQueue/index.js
new file mode 100644 (file)
index 0000000..4359b49
--- /dev/null
@@ -0,0 +1 @@
+var _0x4fed=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x4fed[0];var multer=require(_0x4fed[1]);var util=require(_0x4fed[2]);var path=require(_0x4fed[3]);var express=require(_0x4fed[4]);var router=express.Router();var auth=require(_0x4fed[5]);var config=require(_0x4fed[6]);module[_0x4fed[7]]= router
\ No newline at end of file
diff --git a/server/api/userVoiceQueue/userVoiceQueue.attributes.js b/server/api/userVoiceQueue/userVoiceQueue.attributes.js
new file mode 100644 (file)
index 0000000..c96c867
--- /dev/null
@@ -0,0 +1 @@
+var _0x8e6b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52"];_0x8e6b[0];var Sequelize=require(_0x8e6b[1]);module[_0x8e6b[2]]= {penalty:{type:Sequelize[_0x8e6b[3]],defaultValue:0}}
\ No newline at end of file
diff --git a/server/api/userVoiceQueue/userVoiceQueue.model.js b/server/api/userVoiceQueue/userVoiceQueue.model.js
new file mode 100644 (file)
index 0000000..f0ecbaf
--- /dev/null
@@ -0,0 +1 @@
+var _0x69e7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x69e7[0];var _=require(_0x69e7[1]);var util=require(_0x69e7[2]);var logger=require(_0x69e7[4])(_0x69e7[3]);var attributes=require(_0x69e7[5]);module[_0x69e7[6]]= function(_0xb5c7x5,_0xb5c7x6){return _0xb5c7x5[_0x69e7[9]](_0x69e7[7],attributes,{tableName:_0x69e7[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/userVoiceQueue/userVoiceQueue.rpc.js b/server/api/userVoiceQueue/userVoiceQueue.rpc.js
new file mode 100644 (file)
index 0000000..6ea3ca4
--- /dev/null
@@ -0,0 +1 @@
+var _0xaadf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xaadf[0];var _=require(_0xaadf[1]);var util=require(_0xaadf[2]);var moment=require(_0xaadf[3]);var BPromise=require(_0xaadf[4]);var db=require(_0xaadf[6])[_0xaadf[5]];var utils=require(_0xaadf[7]);var logger=require(_0xaadf[9])(_0xaadf[8]);var jayson=require(_0xaadf[10]);var client=jayson[_0xaadf[12]][_0xaadf[11]]({port:9002});function respondWithRpcPromise(_0x5d23xb,_0x5d23xc,_0x5d23xd){return  new BPromise(function(_0x5d23xe,_0x5d23xf){return client[_0xaadf[25]](_0x5d23xb,_0x5d23xd)[_0xaadf[24]](function(_0x5d23x11){logger[_0xaadf[17]](_0xaadf[13],_0x5d23xc,_0xaadf[16]);logger[_0xaadf[20]](_0xaadf[18],_0x5d23xc,_0xaadf[16],JSON[_0xaadf[19]](_0x5d23x11));if(_0x5d23x11[_0xaadf[14]]){if(_0x5d23x11[_0xaadf[14]][_0xaadf[21]]=== 500){logger[_0xaadf[14]](_0xaadf[13],_0x5d23xc,_0x5d23x11[_0xaadf[14]][_0xaadf[22]]);return _0x5d23xf(_0x5d23x11[_0xaadf[14]][_0xaadf[22]])};logger[_0xaadf[14]](_0xaadf[13],_0x5d23xc,_0x5d23x11[_0xaadf[14]][_0xaadf[22]]);return _0x5d23xe(_0x5d23x11[_0xaadf[14]][_0xaadf[22]])}else {logger[_0xaadf[17]](_0xaadf[13],_0x5d23xc,_0xaadf[16]);_0x5d23xe(_0x5d23x11[_0xaadf[23]][_0xaadf[22]])}})[_0xaadf[15]](function(_0x5d23x10){logger[_0xaadf[14]](_0xaadf[13],_0x5d23xc,_0x5d23x10);_0x5d23xf(_0x5d23x10)})})}
\ No newline at end of file
diff --git a/server/api/userVoiceQueueRt/index.js b/server/api/userVoiceQueueRt/index.js
new file mode 100644 (file)
index 0000000..8e4ef4a
--- /dev/null
@@ -0,0 +1 @@
+var _0x276c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x276c[0];var multer=require(_0x276c[1]);var util=require(_0x276c[2]);var path=require(_0x276c[3]);var express=require(_0x276c[4]);var router=express.Router();var auth=require(_0x276c[5]);var config=require(_0x276c[6]);module[_0x276c[7]]= router
\ No newline at end of file
diff --git a/server/api/userVoiceQueueRt/userVoiceQueueRt.attributes.js b/server/api/userVoiceQueueRt/userVoiceQueueRt.attributes.js
new file mode 100644 (file)
index 0000000..1ae3010
--- /dev/null
@@ -0,0 +1 @@
+var _0x931a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x49\x4E\x54\x45\x47\x45\x52","\x52\x65\x71\x75\x69\x72\x65\x64\x20\x62\x79\x20\x41\x73\x74\x65\x72\x69\x73\x6B","\x53\x54\x52\x49\x4E\x47","\x71\x75\x65\x75\x65\x5F\x69\x6E\x74\x65\x72\x66\x61\x63\x65"];_0x931a[0];var Sequelize=require(_0x931a[1]);module[_0x931a[2]]= {uniqueid:{type:Sequelize[_0x931a[3]],primaryKey:true,autoIncrement:true,comment:_0x931a[4]},membername:{type:Sequelize[_0x931a[5]],allowNull:false,comment:_0x931a[4]},UserId:{type:Sequelize[_0x931a[3]],allowNull:false},queue_name:{type:Sequelize[_0x931a[5]],allowNull:false,unique:_0x931a[6],comment:_0x931a[4]},VoiceQueueId:{type:Sequelize[_0x931a[3]],allowNull:false},interface:{type:Sequelize[_0x931a[5]],allowNull:false,unique:_0x931a[6],comment:_0x931a[4]},penalty:{type:Sequelize.INTEGER(11),defaultValue:0,comment:_0x931a[4]},paused:{type:Sequelize.INTEGER(11),defaultValue:0,comment:_0x931a[4]}}
\ No newline at end of file
diff --git a/server/api/userVoiceQueueRt/userVoiceQueueRt.events.js b/server/api/userVoiceQueueRt/userVoiceQueueRt.events.js
new file mode 100644 (file)
index 0000000..887889b
--- /dev/null
@@ -0,0 +1 @@
+var _0x56e0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x76\x65\x6E\x74\x73","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x73\x65\x74\x4D\x61\x78\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x73\x61\x76\x65","\x75\x70\x64\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65","\x3A","\x69\x64","\x65\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x68\x6F\x6F\x6B","\x65\x78\x70\x6F\x72\x74\x73"];_0x56e0[0];var EventEmitter=require(_0x56e0[1]);var UserVoiceQueueRt=require(_0x56e0[4])[_0x56e0[3]][_0x56e0[2]];var UserVoiceQueueRtEvents= new EventEmitter();UserVoiceQueueRtEvents[_0x56e0[5]](0);var events={afterCreate:_0x56e0[6],afterUpdate:_0x56e0[7],afterDestroy:_0x56e0[8]};function emitEvent(event){return function(_0x3539x7,_0x3539x8,_0x3539x9){UserVoiceQueueRtEvents[_0x56e0[11]](event+ _0x56e0[9]+ _0x3539x7[_0x56e0[10]],_0x3539x7);UserVoiceQueueRtEvents[_0x56e0[11]](event,_0x3539x7);_0x3539x9(null)}}for(var e in events){if(events[_0x56e0[12]](e)){var event=events[e];UserVoiceQueueRt[_0x56e0[13]](e,emitEvent(event))}};module[_0x56e0[14]]= UserVoiceQueueRtEvents
\ No newline at end of file
diff --git a/server/api/userVoiceQueueRt/userVoiceQueueRt.model.js b/server/api/userVoiceQueueRt/userVoiceQueueRt.model.js
new file mode 100644 (file)
index 0000000..253e9ee
--- /dev/null
@@ -0,0 +1 @@
+var _0x11c9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x72\x74","\x64\x65\x66\x69\x6E\x65"];_0x11c9[0];var _=require(_0x11c9[1]);var util=require(_0x11c9[2]);var logger=require(_0x11c9[4])(_0x11c9[3]);var attributes=require(_0x11c9[5]);module[_0x11c9[6]]= function(_0x385fx5,_0x385fx6){return _0x385fx5[_0x11c9[9]](_0x11c9[7],attributes,{tableName:_0x11c9[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/userVoiceQueueRt/userVoiceQueueRt.rpc.js b/server/api/userVoiceQueueRt/userVoiceQueueRt.rpc.js
new file mode 100644 (file)
index 0000000..48fd7e4
--- /dev/null
@@ -0,0 +1 @@
+var _0x2f9b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x2E\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x73\x6F\x63\x6B\x65\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x43\x4F\x55\x4E\x54","\x49\x46","\x60\x70\x61\x75\x73\x65\x64\x60\x20\x3D\x20\x31\x2C\x20\x31\x2C\x20\x6E\x75\x6C\x6C","\x6C\x69\x74\x65\x72\x61\x6C","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x6E","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65\x73","\x66\x69\x6E\x64\x41\x6C\x6C","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74"];_0x2f9b[0];var _=require(_0x2f9b[1]);var util=require(_0x2f9b[2]);var moment=require(_0x2f9b[3]);var BPromise=require(_0x2f9b[4]);var db=require(_0x2f9b[6])[_0x2f9b[5]];var utils=require(_0x2f9b[7]);var logger=require(_0x2f9b[9])(_0x2f9b[8]);var jayson=require(_0x2f9b[10]);var client=jayson[_0x2f9b[12]][_0x2f9b[11]]({port:9002});var socket=require(_0x2f9b[14])({host:_0x2f9b[13],port:6379});require(_0x2f9b[16])[_0x2f9b[15]](socket);function respondWithRpcPromise(_0x8b15xc,_0x8b15xd,_0x8b15xe){return  new BPromise(function(_0x8b15xf,_0x8b15x10){return client[_0x2f9b[29]](_0x8b15xc,_0x8b15xe)[_0x2f9b[28]](function(_0x8b15x12){logger[_0x2f9b[21]](_0x2f9b[17],_0x8b15xd,_0x2f9b[20]);logger[_0x2f9b[24]](_0x2f9b[22],_0x8b15xd,_0x2f9b[20],JSON[_0x2f9b[23]](_0x8b15x12));if(_0x8b15x12[_0x2f9b[18]]){if(_0x8b15x12[_0x2f9b[18]][_0x2f9b[25]]=== 500){logger[_0x2f9b[18]](_0x2f9b[17],_0x8b15xd,_0x8b15x12[_0x2f9b[18]][_0x2f9b[26]]);return _0x8b15x10(_0x8b15x12[_0x2f9b[18]][_0x2f9b[26]])};logger[_0x2f9b[18]](_0x2f9b[17],_0x8b15xd,_0x8b15x12[_0x2f9b[18]][_0x2f9b[26]]);return _0x8b15xf(_0x8b15x12[_0x2f9b[18]][_0x2f9b[26]])}else {logger[_0x2f9b[21]](_0x2f9b[17],_0x8b15xd,_0x2f9b[20]);_0x8b15xf(_0x8b15x12[_0x2f9b[27]][_0x2f9b[26]])}})[_0x2f9b[19]](function(_0x8b15x11){logger[_0x2f9b[18]](_0x2f9b[17],_0x8b15xd,_0x8b15x11);_0x8b15x10(_0x8b15x11)})})}exports[_0x2f9b[30]]= function(_0x8b15xe){var _0x8b15x13=this;return  new Promise(function(_0x8b15xf,_0x8b15x10){return db[_0x2f9b[42]][_0x2f9b[41]]({raw:_0x8b15xe[_0x2f9b[31]]?(_0x8b15xe[_0x2f9b[31]][_0x2f9b[32]]=== undefined)?true:false:true,where:_0x8b15xe[_0x2f9b[31]]?_0x8b15xe[_0x2f9b[31]][_0x2f9b[33]]|| null:null,attributes:[[db[_0x2f9b[38]][_0x2f9b[39]](_0x2f9b[34],db[_0x2f9b[38]][_0x2f9b[39]](_0x2f9b[35],db[_0x2f9b[38]][_0x2f9b[37]](_0x2f9b[36]))),_0x2f9b[40]]]})[_0x2f9b[28]](function(_0x8b15x12){logger[_0x2f9b[21]](_0x2f9b[30],_0x8b15xe);logger[_0x2f9b[24]](_0x2f9b[30],_0x8b15xe,JSON[_0x2f9b[23]](_0x8b15x12));_0x8b15xf(_0x8b15x12)})[_0x2f9b[19]](function(_0x8b15x11){logger[_0x2f9b[18]](_0x2f9b[30],_0x8b15x11[_0x2f9b[26]],_0x8b15xe);_0x8b15x10(_0x8b15x13[_0x2f9b[18]](500,_0x8b15x11[_0x2f9b[26]]))})})}
\ No newline at end of file
diff --git a/server/api/userVoiceQueueRt/userVoiceQueueRt.socket.js b/server/api/userVoiceQueueRt/userVoiceQueueRt.socket.js
new file mode 100644 (file)
index 0000000..235c89c
--- /dev/null
@@ -0,0 +1 @@
+var _0x5386=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x65\x76\x65\x6E\x74\x73","\x73\x61\x76\x65","\x72\x65\x6D\x6F\x76\x65","\x75\x70\x64\x61\x74\x65","\x65\x6D\x69\x74","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x65\x6E\x65\x72","\x72\x65\x67\x69\x73\x74\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x3A","\x6F\x6E"];_0x5386[0];var UserVoiceQueueRtEvents=require(_0x5386[1]);var events=[_0x5386[2],_0x5386[3],_0x5386[4]];function createListener(_0xeae3x4,_0xeae3x5){return function(_0xeae3x6){_0xeae3x5[_0x5386[5]](_0xeae3x4,_0xeae3x6)}}function removeListener(_0xeae3x4,_0xeae3x8){return function(){UserVoiceQueueRtEvents[_0x5386[6]](_0xeae3x4,_0xeae3x8)}}exports[_0x5386[7]]= function(_0xeae3x5){for(var _0xeae3x9=0,_0xeae3xa=events[_0x5386[8]];_0xeae3x9< _0xeae3xa;_0xeae3x9++){var _0xeae3x4=events[_0xeae3x9];var _0xeae3x8=createListener(_0x5386[9]+ _0xeae3x4,_0xeae3x5);UserVoiceQueueRtEvents[_0x5386[10]](_0xeae3x4,_0xeae3x8)}}
\ No newline at end of file
diff --git a/server/api/variable/index.js b/server/api/variable/index.js
new file mode 100644 (file)
index 0000000..7832a1a
--- /dev/null
@@ -0,0 +1 @@
+var _0xe2e3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe2e3[0];var multer=require(_0xe2e3[1]);var util=require(_0xe2e3[2]);var path=require(_0xe2e3[3]);var express=require(_0xe2e3[4]);var router=express.Router();var auth=require(_0xe2e3[5]);var config=require(_0xe2e3[6]);var controller=require(_0xe2e3[7]);router[_0xe2e3[11]](_0xe2e3[8],auth[_0xe2e3[9]](),controller[_0xe2e3[10]]);router[_0xe2e3[11]](_0xe2e3[12],auth[_0xe2e3[9]](),controller[_0xe2e3[13]]);router[_0xe2e3[15]](_0xe2e3[8],auth[_0xe2e3[9]](),controller[_0xe2e3[14]]);router[_0xe2e3[17]](_0xe2e3[12],auth[_0xe2e3[9]](),controller[_0xe2e3[16]]);router[_0xe2e3[19]](_0xe2e3[12],auth[_0xe2e3[9]](),controller[_0xe2e3[18]]);module[_0xe2e3[20]]= router
\ No newline at end of file
diff --git a/server/api/variable/variable.attributes.js b/server/api/variable/variable.attributes.js
new file mode 100644 (file)
index 0000000..ca23466
--- /dev/null
@@ -0,0 +1 @@
+var _0x3d34=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65"];_0x3d34[0];var Sequelize=require(_0x3d34[1]);module[_0x3d34[2]]= {name:{type:Sequelize[_0x3d34[3]],unique:_0x3d34[4],allowNull:false,validate:{notEmpty:true}},description:{type:Sequelize[_0x3d34[3]]}}
\ No newline at end of file
diff --git a/server/api/variable/variable.controller.js b/server/api/variable/variable.controller.js
new file mode 100644 (file)
index 0000000..b387030
--- /dev/null
@@ -0,0 +1 @@
+var _0xf933=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xf933[0];var jsonpatch=require(_0xf933[1]);var rp=require(_0xf933[2]);var moment=require(_0xf933[3]);var BPromise=require(_0xf933[4]);var util=require(_0xf933[5]);var path=require(_0xf933[6]);var sox=require(_0xf933[7]);var ejs=require(_0xf933[8]);var fs=require(_0xf933[9]);var _=require(_0xf933[10]);var squel=require(_0xf933[11]);var crypto=require(_0xf933[12]);var jsforce=require(_0xf933[13]);var toCsv=require(_0xf933[14]);var qs=require(_0xf933[15]);var logger=require(_0xf933[17])(_0xf933[16]);var utils=require(_0xf933[18]);var config=require(_0xf933[19]);var db=require(_0xf933[21])[_0xf933[20]];function respondWithStatusCode(_0xf229x15,_0xf229x16,_0xf229x17){_0xf229x16= _0xf229x16|| 204;return function(_0xf229x18){if(_0xf229x18){logger[_0xf933[24]](_0xf933[22],_0xf229x17,_0xf229x16,_0xf933[23]);logger[_0xf933[26]](_0xf933[25],_0xf229x17,_0xf229x16,_0xf933[23]);return _0xf229x15[_0xf933[27]](_0xf229x16)};return _0xf229x15[_0xf933[29]](304)[_0xf933[28]]()}}function respondWithResult(_0xf229x15,_0xf229x16,_0xf229x17){_0xf229x16= _0xf229x16|| 200;return function(_0xf229x18){if(_0xf229x18){logger[_0xf933[24]](_0xf933[22],_0xf229x17,_0xf229x16,_0xf933[30]);logger[_0xf933[26]](_0xf933[25],_0xf229x17,_0xf229x16,_0xf933[30],JSON[_0xf933[31]](_0xf229x18));return _0xf229x15[_0xf933[29]](_0xf229x16)[_0xf933[32]](_0xf229x18)};return _0xf229x15[_0xf933[29]](304)[_0xf933[28]]()}}function respondWithFilteredResult(_0xf229x15,_0xf229x1b,_0xf229x17){return function(_0xf229x18){if(_0xf229x18){var _0xf229x1c=_0xf229x18[_0xf933[33]],_0xf229x1d=_0xf229x1b[_0xf933[34]],_0xf229x1e=_0xf229x1b[_0xf933[34]]+ _0xf229x1b[_0xf933[35]],_0xf229x16;if(_0xf229x1e>= _0xf229x1c){_0xf229x1e= _0xf229x1c;_0xf229x16= 200}else {_0xf229x16= 206};_0xf229x15[_0xf933[29]](_0xf229x16);logger[_0xf933[24]](_0xf933[22],_0xf229x17,_0xf229x16,_0xf933[36]);logger[_0xf933[26]](_0xf933[25],_0xf229x17,_0xf229x16,_0xf933[30],JSON[_0xf933[31]](_0xf229x18));return _0xf229x15[_0xf933[40]](_0xf933[37],_0xf229x1d+ _0xf933[38]+ _0xf229x1e+ _0xf933[39]+ _0xf229x1c)[_0xf933[32]](_0xf229x18)};return null}}function patchUpdates(_0xf229x20){return function(_0xf229x18){try{jsonpatch[_0xf933[41]](_0xf229x18,_0xf229x20,true)}catch(err){return BPromise[_0xf933[42]](err)};return _0xf229x18[_0xf933[43]]()}}function saveUpdates(_0xf229x22,_0xf229x16,_0xf229x17){return function(_0xf229x18){if(_0xf229x18){return _0xf229x18[_0xf933[46]](_0xf229x22)[_0xf933[45]](function(_0xf229x23){logger[_0xf933[24]](_0xf933[22],_0xf229x17,_0xf229x16,_0xf933[44]);logger[_0xf933[26]](_0xf933[25],_0xf229x17,_0xf229x16,_0xf933[44],JSON[_0xf933[31]](_0xf229x18));return _0xf229x23})};return null}}function removeEntity(_0xf229x15,_0xf229x16,_0xf229x17){return function(_0xf229x18){if(_0xf229x18){return _0xf229x18[_0xf933[48]]()[_0xf933[45]](function(){logger[_0xf933[24]](_0xf933[22],_0xf229x17,_0xf229x16,_0xf933[47]);logger[_0xf933[26]](_0xf933[25],_0xf229x17,_0xf229x16,_0xf933[47],JSON[_0xf933[31]](_0xf229x18));_0xf229x15[_0xf933[29]](204)[_0xf933[28]]()})}}}function handleEntityNotFound(_0xf229x15,_0xf229x16,_0xf229x17){return function(_0xf229x18){if(!_0xf229x18){logger[_0xf933[50]](_0xf933[22],_0xf229x17,404,_0xf933[49]);_0xf229x15[_0xf933[29]](404)[_0xf933[28]]();return null};return _0xf229x18}}function handleError(_0xf229x15,_0xf229x16,_0xf229x17){_0xf229x16= _0xf229x16|| 500;return function(_0xf229x27){logger[_0xf933[50]](_0xf933[22],_0xf229x17,_0xf229x16,JSON[_0xf933[31]](_0xf229x27));delete _0xf229x27[_0xf933[51]];_0xf229x15[_0xf933[29]](_0xf229x16)[_0xf933[52]](_0xf229x27)}}exports[_0xf933[53]]= function(_0xf229x28,_0xf229x15){var _0xf229x1b={},_0xf229x29={};_0xf229x29[_0xf933[54]]= _[_0xf933[57]](db[_0xf933[56]][_0xf933[55]]);_0xf229x29[_0xf933[58]]= _[_0xf933[57]](_0xf229x28[_0xf933[58]]);_0xf229x29[_0xf933[59]]= _[_0xf933[60]](_0xf229x29[_0xf933[54]],_0xf229x29[_0xf933[58]]);_0xf229x1b[_0xf933[61]]= _[_0xf933[60]](_0xf229x29[_0xf933[54]],qs[_0xf933[62]](_0xf229x28[_0xf933[58]][_0xf933[62]]));_0xf229x1b[_0xf933[61]]= (_0xf229x1b[_0xf933[61]][_0xf933[63]])?_0xf229x1b[_0xf933[61]]:_0xf229x29[_0xf933[54]];if(!_0xf229x28[_0xf933[58]][_0xf933[65]](_0xf933[64])){_0xf229x1b[_0xf933[35]]= qs[_0xf933[35]](_0xf229x28[_0xf933[58]][_0xf933[35]]);_0xf229x1b[_0xf933[34]]= qs[_0xf933[34]](_0xf229x28[_0xf933[58]][_0xf933[34]])};_0xf229x1b[_0xf933[66]]= qs[_0xf933[67]](_0xf229x28[_0xf933[58]][_0xf933[67]]);_0xf229x1b[_0xf933[68]]= qs[_0xf933[59]](_[_0xf933[69]](_0xf229x28[_0xf933[58]],_0xf229x29[_0xf933[59]]));if(_0xf229x28[_0xf933[58]][_0xf933[70]]){_0xf229x1b[_0xf933[68]]= _[_0xf933[73]](_0xf229x1b[_0xf933[68]],{$or:_[_0xf933[72]](_0xf229x1b[_0xf933[61]],function(_0xf229x2a){var _0xf229x2b={};_0xf229x2b[_0xf229x2a]= {$like:_0xf933[71]+ _0xf229x28[_0xf933[58]][_0xf933[70]]+ _0xf933[71]};return _0xf229x2b})})};_0xf229x1b= _[_0xf933[73]]({},_0xf229x1b,_0xf229x28[_0xf933[74]]);return db[_0xf933[56]][_0xf933[76]](_0xf229x1b)[_0xf933[45]](respondWithFilteredResult(_0xf229x15,_0xf229x1b,_0xf933[53]))[_0xf933[75]](handleError(_0xf229x15,null,_0xf933[53]))};exports[_0xf933[77]]= function(_0xf229x28,_0xf229x15){var _0xf229x1b={raw:true,where:{id:_0xf229x28[_0xf933[79]][_0xf933[78]]}},_0xf229x29={};_0xf229x29[_0xf933[54]]= _[_0xf933[57]](db[_0xf933[56]][_0xf933[55]]);_0xf229x29[_0xf933[58]]= _[_0xf933[57]](_0xf229x28[_0xf933[58]]);_0xf229x29[_0xf933[59]]= _[_0xf933[60]](_0xf229x29[_0xf933[54]],_0xf229x29[_0xf933[58]]);_0xf229x1b[_0xf933[61]]= _[_0xf933[60]](_0xf229x29[_0xf933[54]],qs[_0xf933[62]](_0xf229x28[_0xf933[58]][_0xf933[62]]));_0xf229x1b[_0xf933[61]]= (_0xf229x1b[_0xf933[61]][_0xf933[63]])?_0xf229x1b[_0xf933[61]]:_0xf229x29[_0xf933[54]];_0xf229x1b= _[_0xf933[73]]({},_0xf229x1b,_0xf229x28[_0xf933[74]]);return db[_0xf933[56]][_0xf933[80]](_0xf229x1b)[_0xf933[45]](handleEntityNotFound(_0xf229x15,null,_0xf933[77]))[_0xf933[45]](respondWithResult(_0xf229x15,null,_0xf933[77]))[_0xf933[75]](handleError(_0xf229x15,null,_0xf933[77]))};exports[_0xf933[81]]= function(_0xf229x28,_0xf229x15){return db[_0xf933[56]][_0xf933[81]](_0xf229x28[_0xf933[82]],{})[_0xf933[45]](respondWithResult(_0xf229x15,201,_0xf933[81]))[_0xf933[75]](handleError(_0xf229x15,null,_0xf933[81]))};exports[_0xf933[46]]= function(_0xf229x28,_0xf229x15){if(_0xf229x28[_0xf933[82]][_0xf933[78]]){delete _0xf229x28[_0xf933[82]][_0xf933[78]]};return db[_0xf933[56]][_0xf933[80]]({where:{id:_0xf229x28[_0xf933[79]][_0xf933[78]]}})[_0xf933[45]](handleEntityNotFound(_0xf229x15,null,_0xf933[46]))[_0xf933[45]](saveUpdates(_0xf229x28[_0xf933[82]],null,_0xf933[46]))[_0xf933[45]](respondWithResult(_0xf229x15,null,_0xf933[46]))[_0xf933[75]](handleError(_0xf229x15,null,_0xf933[46]))};exports[_0xf933[48]]= function(_0xf229x28,_0xf229x15){return db[_0xf933[56]][_0xf933[80]]({where:{id:_0xf229x28[_0xf933[79]][_0xf933[78]]}})[_0xf933[45]](handleEntityNotFound(_0xf229x15,null,_0xf933[48]))[_0xf933[45]](removeEntity(_0xf229x15,null,_0xf933[48]))[_0xf933[75]](handleError(_0xf229x15,null,_0xf933[48]))}
\ No newline at end of file
diff --git a/server/api/variable/variable.model.js b/server/api/variable/variable.model.js
new file mode 100644 (file)
index 0000000..0027469
--- /dev/null
@@ -0,0 +1 @@
+var _0x51f3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x74\x6F\x6F\x6C\x73\x5F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0x51f3[0];var _=require(_0x51f3[1]);var util=require(_0x51f3[2]);var logger=require(_0x51f3[4])(_0x51f3[3]);var attributes=require(_0x51f3[5]);module[_0x51f3[6]]= function(_0xbaeax5,_0xbaeax6){return _0xbaeax5[_0x51f3[9]](_0x51f3[7],attributes,{tableName:_0x51f3[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/variable/variable.rpc.js b/server/api/variable/variable.rpc.js
new file mode 100644 (file)
index 0000000..fb13fee
--- /dev/null
@@ -0,0 +1 @@
+var _0xd882=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x61\x72\x69\x61\x62\x6C\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x53\x68\x6F\x77\x56\x61\x72\x69\x61\x62\x6C\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64","\x56\x61\x72\x69\x61\x62\x6C\x65"];_0xd882[0];var _=require(_0xd882[1]);var util=require(_0xd882[2]);var moment=require(_0xd882[3]);var BPromise=require(_0xd882[4]);var db=require(_0xd882[6])[_0xd882[5]];var utils=require(_0xd882[7]);var logger=require(_0xd882[9])(_0xd882[8]);var jayson=require(_0xd882[10]);var client=jayson[_0xd882[12]][_0xd882[11]]({port:9002});function respondWithRpcPromise(_0x2dd2xb,_0x2dd2xc,_0x2dd2xd){return  new BPromise(function(_0x2dd2xe,_0x2dd2xf){return client[_0xd882[25]](_0x2dd2xb,_0x2dd2xd)[_0xd882[24]](function(_0x2dd2x11){logger[_0xd882[17]](_0xd882[13],_0x2dd2xc,_0xd882[16]);logger[_0xd882[20]](_0xd882[18],_0x2dd2xc,_0xd882[16],JSON[_0xd882[19]](_0x2dd2x11));if(_0x2dd2x11[_0xd882[14]]){if(_0x2dd2x11[_0xd882[14]][_0xd882[21]]=== 500){logger[_0xd882[14]](_0xd882[13],_0x2dd2xc,_0x2dd2x11[_0xd882[14]][_0xd882[22]]);return _0x2dd2xf(_0x2dd2x11[_0xd882[14]][_0xd882[22]])};logger[_0xd882[14]](_0xd882[13],_0x2dd2xc,_0x2dd2x11[_0xd882[14]][_0xd882[22]]);return _0x2dd2xe(_0x2dd2x11[_0xd882[14]][_0xd882[22]])}else {logger[_0xd882[17]](_0xd882[13],_0x2dd2xc,_0xd882[16]);_0x2dd2xe(_0x2dd2x11[_0xd882[23]][_0xd882[22]])}})[_0xd882[15]](function(_0x2dd2x10){logger[_0xd882[14]](_0xd882[13],_0x2dd2xc,_0x2dd2x10);_0x2dd2xf(_0x2dd2x10)})})}exports[_0xd882[26]]= function(_0x2dd2xd){var _0x2dd2x12=this;return  new Promise(function(_0x2dd2xe,_0x2dd2xf){return db[_0xd882[36]][_0xd882[35]]({raw:_0x2dd2xd[_0xd882[27]]?(_0x2dd2xd[_0xd882[27]][_0xd882[28]]=== undefined)?true:false:true,where:_0x2dd2xd[_0xd882[27]]?_0x2dd2xd[_0xd882[27]][_0xd882[29]]|| null:null,attributes:_0x2dd2xd[_0xd882[27]]?_0x2dd2xd[_0xd882[27]][_0xd882[30]]|| null:null,include:_0x2dd2xd[_0xd882[27]]?(_0x2dd2xd[_0xd882[27]][_0xd882[31]]?_[_0xd882[34]](_0x2dd2xd[_0xd882[27]][_0xd882[31]],function(_0x2dd2x13){return {model:db[_0x2dd2x13[_0xd882[32]]],as:_0x2dd2x13[_0xd882[33]],attributes:_0x2dd2x13[_0xd882[30]],include:_0x2dd2x13[_0xd882[31]]?_[_0xd882[34]](_0x2dd2x13[_0xd882[31]],function(_0x2dd2x14){return {model:db[_0x2dd2x14[_0xd882[32]]],as:_0x2dd2x14[_0xd882[33]],attributes:_0x2dd2x14[_0xd882[30]],include:_0x2dd2x14[_0xd882[31]]?_[_0xd882[34]](_0x2dd2x14[_0xd882[31]],function(_0x2dd2x15){return {model:db[_0x2dd2x15[_0xd882[32]]],as:_0x2dd2x15[_0xd882[33]],attributes:_0x2dd2x15[_0xd882[30]]}}):[]}}):[]}}):[]):[]})[_0xd882[24]](function(_0x2dd2x11){logger[_0xd882[17]](_0xd882[26],_0x2dd2xd);logger[_0xd882[20]](_0xd882[26],_0x2dd2xd,JSON[_0xd882[19]](_0x2dd2x11));_0x2dd2xe(_0x2dd2x11)})[_0xd882[15]](function(_0x2dd2x10){logger[_0xd882[14]](_0xd882[26],_0x2dd2x10[_0xd882[22]],_0x2dd2xd);_0x2dd2xf(_0x2dd2x12[_0xd882[14]](500,_0x2dd2x10[_0xd882[22]]))})})}
\ No newline at end of file
diff --git a/server/api/version/index.js b/server/api/version/index.js
new file mode 100644 (file)
index 0000000..d4fec97
--- /dev/null
@@ -0,0 +1 @@
+var _0x5069=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2F\x76\x65\x72\x73\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x66\x65\x74\x63\x68","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x66\x65\x74\x63\x68","\x2F\x72\x65\x73\x65\x74","\x72\x65\x73\x65\x74","\x2F\x70\x75\x6C\x6C","\x70\x75\x6C\x6C","\x2F\x72\x65\x73\x74\x61\x72\x74","\x72\x65\x73\x74\x61\x72\x74","\x2F\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E\x73","\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x5069[0];var express=require(_0x5069[1]);var router=express.Router();var auth=require(_0x5069[2]);var controller=require(_0x5069[3]);router[_0x5069[6]](_0x5069[4],controller[_0x5069[5]]);router[_0x5069[6]](_0x5069[7],auth[_0x5069[8]](),controller[_0x5069[9]]);router[_0x5069[6]](_0x5069[10],auth[_0x5069[8]](),controller[_0x5069[11]]);router[_0x5069[6]](_0x5069[12],auth[_0x5069[8]](),controller[_0x5069[13]]);router[_0x5069[6]](_0x5069[14],auth[_0x5069[8]](),controller[_0x5069[15]]);router[_0x5069[6]](_0x5069[16],controller[_0x5069[17]]);module[_0x5069[18]]= router
\ No newline at end of file
diff --git a/server/api/version/version.controller.js b/server/api/version/version.controller.js
new file mode 100644 (file)
index 0000000..06b9c48
--- /dev/null
@@ -0,0 +1 @@
+var _0xa7a6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x6D\x7A\x75\x67","\x70\x61\x74\x68","\x76\x65\x72\x73\x69\x6F\x6E","\x70\x6B\x67\x69\x6E\x66\x6F","\x65\x78\x65\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x70\x6D\x32","\x75\x70\x64\x61\x74\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x72\x6F\x6F\x74","\x73\x69\x6D\x70\x6C\x65\x2D\x67\x69\x74","\x69\x6E\x64\x65\x78","\x65\x78\x70\x6F\x72\x74\x73","\x6C\x61\x74\x65\x73\x74","\x32\x2E\x30\x2E\x30","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x74\x61\x67\x73","\x66\x65\x74\x63\x68","\x6F\x72\x69\x67\x69\x6E","\x6D\x61\x73\x74\x65\x72","\x65\x72\x72\x6F\x72","\x67\x69\x74\x20\x66\x65\x74\x63\x68","\x69\x6E\x66\x6F","\x67\x69\x74\x20\x66\x65\x74\x63\x68\x20\x6F\x72\x69\x67\x69\x6E\x20\x6D\x61\x73\x74\x65\x72","\x72\x65\x73\x65\x74","\x2D\x2D\x68\x61\x72\x64","\x46\x45\x54\x43\x48\x5F\x48\x45\x41\x44","\x67\x69\x74\x20\x72\x65\x73\x65\x74\x20\x2D\x2D\x68\x61\x72\x64\x20\x46\x45\x54\x43\x48\x5F\x48\x45\x41\x44","\x67\x69\x74\x20\x72\x65\x73\x65\x74\x20\x2D\x2D\x68\x61\x72\x64","\x70\x75\x6C\x6C","\x6E\x70\x6D\x20\x69\x6E\x73\x74\x61\x6C\x6C\x20\x2D\x2D\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x72\x65\x73\x74\x61\x72\x74","\x63\x61\x74\x63\x68","\x70\x6D\x32\x20\x72\x65\x73\x74\x61\x72\x74\x20\x6D\x6F\x74\x69\x6F\x6E\x20\x25\x73","\x59\x6F\x75\x72\x20\x73\x79\x73\x74\x65\x6D\x20\x68\x61\x73\x20\x62\x65\x65\x6E\x20\x72\x65\x73\x74\x61\x72\x74\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6C\x6C\x79","\x74\x68\x65\x6E","\x6D\x6F\x74\x69\x6F\x6E\x32","\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x67\x65\x74\x51\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72","\x4D\x69\x67\x72\x61\x74\x69\x6F\x6E\x20\x74\x72\x69\x65\x64\x20\x74\x6F\x20\x75\x73\x65\x20\x6F\x6C\x64\x20\x73\x74\x79\x6C\x65\x20\x22\x64\x6F\x6E\x65\x22\x20\x63\x61\x6C\x6C\x62\x61\x63\x6B\x2E\x20\x50\x6C\x65\x61\x73\x65\x20\x75\x70\x67\x72\x61\x64\x65\x20\x74\x6F\x20\x22\x75\x6D\x7A\x75\x67\x22\x20\x61\x6E\x64\x20\x72\x65\x74\x75\x72\x6E\x20\x61\x20\x70\x72\x6F\x6D\x69\x73\x65\x20\x69\x6E\x73\x74\x65\x61\x64\x2E","\x73\x65\x72\x76\x65\x72","\x6A\x6F\x69\x6E","\x44\x61\x74\x61\x62\x61\x73\x65\x20\x4D\x69\x67\x72\x61\x74\x69\x6F\x6E\x20\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64\x21","\x75\x70"];_0xa7a6[0];var Umzug=require(_0xa7a6[1]);var path=require(_0xa7a6[2]);var pkginfo=require(_0xa7a6[4])(module,_0xa7a6[3]);var exec=require(_0xa7a6[6])[_0xa7a6[5]];var db=require(_0xa7a6[8])[_0xa7a6[7]];var config=require(_0xa7a6[9]);var pm2=require(_0xa7a6[10]);var logger=require(_0xa7a6[12])(_0xa7a6[11]);var git=require(_0xa7a6[14])(config[_0xa7a6[13]]);exports[_0xa7a6[15]]= function(_0x8820xa,_0x8820xb){return git[_0xa7a6[22]]()[_0xa7a6[21]](function(_0x8820xc,_0x8820xd){return _0x8820xb[_0xa7a6[20]](200)[_0xa7a6[19]]({latest:(_0x8820xc?module[_0xa7a6[16]][_0xa7a6[3]]:_0x8820xd[_0xa7a6[17]])|| _0xa7a6[18],current:module[_0xa7a6[16]][_0xa7a6[3]],phonebar:2})})};exports[_0xa7a6[22]]= function(_0x8820xa,_0x8820xb){return git[_0xa7a6[22]]([_0xa7a6[23],_0xa7a6[24]],function(_0x8820xc){if(_0x8820xc){logger[_0xa7a6[25]](_0x8820xc);return _0x8820xb[_0xa7a6[20]](500)[_0xa7a6[19]](_0x8820xc)};logger[_0xa7a6[27]](_0xa7a6[26]);return _0x8820xb[_0xa7a6[20]](200)[_0xa7a6[19]]({output:_0xa7a6[28]})})};exports[_0xa7a6[29]]= function(_0x8820xa,_0x8820xb){return git[_0xa7a6[29]]([_0xa7a6[30],_0xa7a6[31]],function(_0x8820xc){if(_0x8820xc){logger[_0xa7a6[25]](_0x8820xc);return _0x8820xb[_0xa7a6[20]](500)[_0xa7a6[19]](_0x8820xc)};logger[_0xa7a6[27]](_0xa7a6[32]);return _0x8820xb[_0xa7a6[20]](200)[_0xa7a6[19]]({output:_0xa7a6[33]})})};exports[_0xa7a6[34]]= function(_0x8820xa,_0x8820xb){exec(_0xa7a6[35],function(_0x8820xc,_0x8820xe,_0x8820xf){logger[_0xa7a6[27]](_0x8820xe);logger[_0xa7a6[27]](_0x8820xf);if(_0x8820xc){logger[_0xa7a6[25]](_0x8820xc);return _0x8820xb[_0xa7a6[20]](500)[_0xa7a6[19]](_0x8820xc)};return _0x8820xb[_0xa7a6[20]](200)[_0xa7a6[19]]({output:_0x8820xe})})};exports[_0xa7a6[36]]= function(_0x8820xa,_0x8820xb){return pm2[_0xa7a6[36]](_0xa7a6[41])[_0xa7a6[40]](function(_0x8820x10){logger[_0xa7a6[27]](_0xa7a6[38],_0x8820x10);return _0x8820xb[_0xa7a6[20]](200)[_0xa7a6[19]]({output:_0xa7a6[39]})})[_0xa7a6[37]](function(_0x8820xc){logger[_0xa7a6[25]](_0x8820xc);return _0x8820xb[_0xa7a6[20]](500)[_0xa7a6[19]](_0x8820xc)})};exports[_0xa7a6[42]]= function(_0x8820xa,_0x8820xb){var _0x8820x11= new Umzug({storage:_0xa7a6[43],storageOptions:{sequelize:db[_0xa7a6[43]],tableName:_0xa7a6[42],columnName:_0xa7a6[3]},migrations:{params:[db[_0xa7a6[43]][_0xa7a6[44]](),db[_0xa7a6[43]][_0xa7a6[45]],function(){throw  new Error(_0xa7a6[46])}],path:path[_0xa7a6[48]](config[_0xa7a6[13]],_0xa7a6[47],_0xa7a6[42]),pattern:/\.js$/}});_0x8820x11[_0xa7a6[50]]()[_0xa7a6[40]](function(){return _0x8820xb[_0xa7a6[20]](200)[_0xa7a6[19]]({output:_0xa7a6[49]})})[_0xa7a6[37]](function(_0x8820xc){return _0x8820xb[_0xa7a6[20]](500)[_0xa7a6[19]](_0x8820xc)})}
\ No newline at end of file
diff --git a/server/api/voiceAgentReport/index.js b/server/api/voiceAgentReport/index.js
new file mode 100644 (file)
index 0000000..7577d82
--- /dev/null
@@ -0,0 +1 @@
+var _0xa38b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xa38b[0];var multer=require(_0xa38b[1]);var util=require(_0xa38b[2]);var path=require(_0xa38b[3]);var express=require(_0xa38b[4]);var router=express.Router();var auth=require(_0xa38b[5]);var config=require(_0xa38b[6]);var controller=require(_0xa38b[7]);router[_0xa38b[11]](_0xa38b[8],auth[_0xa38b[9]](),controller[_0xa38b[10]]);router[_0xa38b[11]](_0xa38b[12],auth[_0xa38b[9]](),controller[_0xa38b[13]]);router[_0xa38b[11]](_0xa38b[14],auth[_0xa38b[9]](),controller[_0xa38b[15]]);router[_0xa38b[17]](_0xa38b[8],auth[_0xa38b[9]](),controller[_0xa38b[16]]);router[_0xa38b[19]](_0xa38b[14],auth[_0xa38b[9]](),controller[_0xa38b[18]]);router[_0xa38b[21]](_0xa38b[14],auth[_0xa38b[9]](),controller[_0xa38b[20]]);module[_0xa38b[22]]= router
\ No newline at end of file
diff --git a/server/api/voiceAgentReport/voiceAgentReport.attributes.js b/server/api/voiceAgentReport/voiceAgentReport.attributes.js
new file mode 100644 (file)
index 0000000..13c3448
--- /dev/null
@@ -0,0 +1 @@
+var _0x400f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x400f[0];var Sequelize=require(_0x400f[1]);module[_0x400f[2]]= {type:{type:Sequelize[_0x400f[3]]},uniqueid:{type:Sequelize[_0x400f[3]]},calleridnum:{type:Sequelize[_0x400f[3]]},calleridname:{type:Sequelize[_0x400f[3]]},queue:{type:Sequelize[_0x400f[3]]},interface:{type:Sequelize[_0x400f[3]]},membername:{type:Sequelize[_0x400f[3]]},agentcalledAt:{type:Sequelize[_0x400f[4]]},agentconnectAt:{type:Sequelize[_0x400f[4]]},agentcompleteAt:{type:Sequelize[_0x400f[4]]},agentringnoanswerAt:{type:Sequelize[_0x400f[4]]},agentdumpAt:{type:Sequelize[_0x400f[4]]},holdtime:{type:Sequelize[_0x400f[5]]},agentcomplete:{type:Sequelize[_0x400f[6]],defaultValue:false},agentringnoanswer:{type:Sequelize[_0x400f[6]],defaultValue:false},agentdump:{type:Sequelize[_0x400f[6]],defaultValue:false},talktime:{type:Sequelize[_0x400f[5]]},agentacw:{type:Sequelize[_0x400f[6]],defaultValue:false},acwtime:{type:Sequelize[_0x400f[5]]},reason:{type:Sequelize[_0x400f[3]]},lastevent:{type:Sequelize[_0x400f[3]]},channel:{type:Sequelize[_0x400f[3]]},channelstate:{type:Sequelize[_0x400f[5]]},channelstatedesc:{type:Sequelize[_0x400f[3]]},connectedlinenum:{type:Sequelize[_0x400f[3]]},connectedlinename:{type:Sequelize[_0x400f[3]]},language:{type:Sequelize[_0x400f[3]]},accountcode:{type:Sequelize[_0x400f[3]]},context:{type:Sequelize[_0x400f[3]]},exten:{type:Sequelize[_0x400f[3]]},priority:{type:Sequelize[_0x400f[3]]},destchannel:{type:Sequelize[_0x400f[3]]},destchannelstate:{type:Sequelize[_0x400f[5]]},destchannelstatedesc:{type:Sequelize[_0x400f[3]]},destcalleridnum:{type:Sequelize[_0x400f[3]]},destcalleridname:{type:Sequelize[_0x400f[3]]},destconnectedlinenum:{type:Sequelize[_0x400f[3]]},destconnectedlinename:{type:Sequelize[_0x400f[3]]},destlanguage:{type:Sequelize[_0x400f[3]]},destaccountcode:{type:Sequelize[_0x400f[3]]},destcontext:{type:Sequelize[_0x400f[3]]},destexten:{type:Sequelize[_0x400f[3]]},destpriority:{type:Sequelize[_0x400f[3]]},destuniqueid:{type:Sequelize[_0x400f[3]]},answeredelsewheredestinationuniqueid:{type:Sequelize[_0x400f[3]]},answeredelsewheremembername:{type:Sequelize[_0x400f[3]]}}
\ No newline at end of file
diff --git a/server/api/voiceAgentReport/voiceAgentReport.controller.js b/server/api/voiceAgentReport/voiceAgentReport.controller.js
new file mode 100644 (file)
index 0000000..fbff800
--- /dev/null
@@ -0,0 +1 @@
+var _0x896a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x896a[0];var jsonpatch=require(_0x896a[1]);var rp=require(_0x896a[2]);var moment=require(_0x896a[3]);var BPromise=require(_0x896a[4]);var util=require(_0x896a[5]);var path=require(_0x896a[6]);var sox=require(_0x896a[7]);var ejs=require(_0x896a[8]);var fs=require(_0x896a[9]);var _=require(_0x896a[10]);var squel=require(_0x896a[11]);var crypto=require(_0x896a[12]);var jsforce=require(_0x896a[13]);var toCsv=require(_0x896a[14]);var qs=require(_0x896a[15]);var logger=require(_0x896a[17])(_0x896a[16]);var utils=require(_0x896a[18]);var config=require(_0x896a[19]);var db=require(_0x896a[21])[_0x896a[20]];function respondWithStatusCode(_0xc522x15,_0xc522x16,_0xc522x17){_0xc522x16= _0xc522x16|| 204;return function(_0xc522x18){if(_0xc522x18){logger[_0x896a[24]](_0x896a[22],_0xc522x17,_0xc522x16,_0x896a[23]);logger[_0x896a[26]](_0x896a[25],_0xc522x17,_0xc522x16,_0x896a[23]);return _0xc522x15[_0x896a[27]](_0xc522x16)};return _0xc522x15[_0x896a[29]](304)[_0x896a[28]]()}}function respondWithResult(_0xc522x15,_0xc522x16,_0xc522x17){_0xc522x16= _0xc522x16|| 200;return function(_0xc522x18){if(_0xc522x18){logger[_0x896a[24]](_0x896a[22],_0xc522x17,_0xc522x16,_0x896a[30]);logger[_0x896a[26]](_0x896a[25],_0xc522x17,_0xc522x16,_0x896a[30],JSON[_0x896a[31]](_0xc522x18));return _0xc522x15[_0x896a[29]](_0xc522x16)[_0x896a[32]](_0xc522x18)};return _0xc522x15[_0x896a[29]](304)[_0x896a[28]]()}}function respondWithFilteredResult(_0xc522x15,_0xc522x1b,_0xc522x17){return function(_0xc522x18){if(_0xc522x18){var _0xc522x1c=_0xc522x18[_0x896a[33]],_0xc522x1d=_0xc522x1b[_0x896a[34]],_0xc522x1e=_0xc522x1b[_0x896a[34]]+ _0xc522x1b[_0x896a[35]],_0xc522x16;if(_0xc522x1e>= _0xc522x1c){_0xc522x1e= _0xc522x1c;_0xc522x16= 200}else {_0xc522x16= 206};_0xc522x15[_0x896a[29]](_0xc522x16);logger[_0x896a[24]](_0x896a[22],_0xc522x17,_0xc522x16,_0x896a[36]);logger[_0x896a[26]](_0x896a[25],_0xc522x17,_0xc522x16,_0x896a[30],JSON[_0x896a[31]](_0xc522x18));return _0xc522x15[_0x896a[40]](_0x896a[37],_0xc522x1d+ _0x896a[38]+ _0xc522x1e+ _0x896a[39]+ _0xc522x1c)[_0x896a[32]](_0xc522x18)};return null}}function patchUpdates(_0xc522x20){return function(_0xc522x18){try{jsonpatch[_0x896a[41]](_0xc522x18,_0xc522x20,true)}catch(err){return BPromise[_0x896a[42]](err)};return _0xc522x18[_0x896a[43]]()}}function saveUpdates(_0xc522x22,_0xc522x16,_0xc522x17){return function(_0xc522x18){if(_0xc522x18){return _0xc522x18[_0x896a[46]](_0xc522x22)[_0x896a[45]](function(_0xc522x23){logger[_0x896a[24]](_0x896a[22],_0xc522x17,_0xc522x16,_0x896a[44]);logger[_0x896a[26]](_0x896a[25],_0xc522x17,_0xc522x16,_0x896a[44],JSON[_0x896a[31]](_0xc522x18));return _0xc522x23})};return null}}function removeEntity(_0xc522x15,_0xc522x16,_0xc522x17){return function(_0xc522x18){if(_0xc522x18){return _0xc522x18[_0x896a[48]]()[_0x896a[45]](function(){logger[_0x896a[24]](_0x896a[22],_0xc522x17,_0xc522x16,_0x896a[47]);logger[_0x896a[26]](_0x896a[25],_0xc522x17,_0xc522x16,_0x896a[47],JSON[_0x896a[31]](_0xc522x18));_0xc522x15[_0x896a[29]](204)[_0x896a[28]]()})}}}function handleEntityNotFound(_0xc522x15,_0xc522x16,_0xc522x17){return function(_0xc522x18){if(!_0xc522x18){logger[_0x896a[50]](_0x896a[22],_0xc522x17,404,_0x896a[49]);_0xc522x15[_0x896a[29]](404)[_0x896a[28]]();return null};return _0xc522x18}}function handleError(_0xc522x15,_0xc522x16,_0xc522x17){_0xc522x16= _0xc522x16|| 500;return function(_0xc522x27){logger[_0x896a[50]](_0x896a[22],_0xc522x17,_0xc522x16,JSON[_0x896a[31]](_0xc522x27));delete _0xc522x27[_0x896a[51]];_0xc522x15[_0x896a[29]](_0xc522x16)[_0x896a[52]](_0xc522x27)}}exports[_0x896a[53]]= function(_0xc522x28,_0xc522x15){var _0xc522x1b={},_0xc522x29={};_0xc522x29[_0x896a[54]]= _[_0x896a[57]](db[_0x896a[56]][_0x896a[55]]);_0xc522x29[_0x896a[58]]= _[_0x896a[57]](_0xc522x28[_0x896a[58]]);_0xc522x29[_0x896a[59]]= _[_0x896a[60]](_0xc522x29[_0x896a[54]],_0xc522x29[_0x896a[58]]);_0xc522x1b[_0x896a[61]]= _[_0x896a[60]](_0xc522x29[_0x896a[54]],qs[_0x896a[62]](_0xc522x28[_0x896a[58]][_0x896a[62]]));_0xc522x1b[_0x896a[61]]= (_0xc522x1b[_0x896a[61]][_0x896a[63]])?_0xc522x1b[_0x896a[61]]:_0xc522x29[_0x896a[54]];if(!_0xc522x28[_0x896a[58]][_0x896a[65]](_0x896a[64])){_0xc522x1b[_0x896a[35]]= qs[_0x896a[35]](_0xc522x28[_0x896a[58]][_0x896a[35]]);_0xc522x1b[_0x896a[34]]= qs[_0x896a[34]](_0xc522x28[_0x896a[58]][_0x896a[34]])};_0xc522x1b[_0x896a[66]]= qs[_0x896a[67]](_0xc522x28[_0x896a[58]][_0x896a[67]]);_0xc522x1b[_0x896a[68]]= qs[_0x896a[59]](_[_0x896a[69]](_0xc522x28[_0x896a[58]],_0xc522x29[_0x896a[59]]));if(_0xc522x28[_0x896a[58]][_0x896a[70]]){_0xc522x1b[_0x896a[68]]= _[_0x896a[73]](_0xc522x1b[_0x896a[68]],{$or:_[_0x896a[72]](_0xc522x1b[_0x896a[61]],function(_0xc522x2a){var _0xc522x2b={};_0xc522x2b[_0xc522x2a]= {$like:_0x896a[71]+ _0xc522x28[_0x896a[58]][_0x896a[70]]+ _0x896a[71]};return _0xc522x2b})})};_0xc522x1b= _[_0x896a[73]]({},_0xc522x1b,_0xc522x28[_0x896a[74]]);return db[_0x896a[56]][_0x896a[76]](_0xc522x1b)[_0x896a[45]](respondWithFilteredResult(_0xc522x15,_0xc522x1b,_0x896a[53]))[_0x896a[75]](handleError(_0xc522x15,null,_0x896a[53]))};exports[_0x896a[77]]= function(_0xc522x28,_0xc522x15){var _0xc522x1b={raw:false,where:{id:_0xc522x28[_0x896a[79]][_0x896a[78]]}},_0xc522x29={};_0xc522x29[_0x896a[54]]= _[_0x896a[57]](db[_0x896a[56]][_0x896a[55]]);_0xc522x29[_0x896a[58]]= _[_0x896a[57]](_0xc522x28[_0x896a[58]]);_0xc522x29[_0x896a[59]]= _[_0x896a[60]](_0xc522x29[_0x896a[54]],_0xc522x29[_0x896a[58]]);_0xc522x1b[_0x896a[61]]= _[_0x896a[60]](_0xc522x29[_0x896a[54]],qs[_0x896a[62]](_0xc522x28[_0x896a[58]][_0x896a[62]]));_0xc522x1b[_0x896a[61]]= (_0xc522x1b[_0x896a[61]][_0x896a[63]])?_0xc522x1b[_0x896a[61]]:_0xc522x29[_0x896a[54]];_0xc522x1b= _[_0x896a[73]]({},_0xc522x1b,_0xc522x28[_0x896a[74]]);return db[_0x896a[56]][_0x896a[80]](_0xc522x1b)[_0x896a[45]](handleEntityNotFound(_0xc522x15,null,_0x896a[77]))[_0x896a[45]](respondWithResult(_0xc522x15,null,_0x896a[77]))[_0x896a[75]](handleError(_0xc522x15,null,_0x896a[77]))};exports[_0x896a[81]]= function(_0xc522x28,_0xc522x15){return db[_0x896a[56]][_0x896a[81]](_0xc522x28[_0x896a[82]],{})[_0x896a[45]](respondWithResult(_0xc522x15,201,_0x896a[81]))[_0x896a[75]](handleError(_0xc522x15,null,_0x896a[81]))};exports[_0x896a[46]]= function(_0xc522x28,_0xc522x15){if(_0xc522x28[_0x896a[82]][_0x896a[78]]){delete _0xc522x28[_0x896a[82]][_0x896a[78]]};return db[_0x896a[56]][_0x896a[80]]({where:{id:_0xc522x28[_0x896a[79]][_0x896a[78]]}})[_0x896a[45]](handleEntityNotFound(_0xc522x15,null,_0x896a[46]))[_0x896a[45]](saveUpdates(_0xc522x28[_0x896a[82]],null,_0x896a[46]))[_0x896a[45]](respondWithResult(_0xc522x15,null,_0x896a[46]))[_0x896a[75]](handleError(_0xc522x15,null,_0x896a[46]))};exports[_0x896a[48]]= function(_0xc522x28,_0xc522x15){return db[_0x896a[56]][_0x896a[80]]({where:{id:_0xc522x28[_0x896a[79]][_0x896a[78]]}})[_0x896a[45]](handleEntityNotFound(_0xc522x15,null,_0x896a[48]))[_0x896a[45]](removeEntity(_0xc522x15,null,_0x896a[48]))[_0x896a[75]](handleError(_0xc522x15,null,_0x896a[48]))};exports[_0x896a[83]]= function(_0xc522x28,_0xc522x15){return db[_0x896a[56]][_0x896a[83]]()[_0x896a[45]](respondWithResult(_0xc522x15,null,_0x896a[83]))[_0x896a[75]](handleError(_0xc522x15,null,_0x896a[83]))}
\ No newline at end of file
diff --git a/server/api/voiceAgentReport/voiceAgentReport.model.js b/server/api/voiceAgentReport/voiceAgentReport.model.js
new file mode 100644 (file)
index 0000000..85fc955
--- /dev/null
@@ -0,0 +1 @@
+var _0xfee5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];_0xfee5[0];var _=require(_0xfee5[1]);var util=require(_0xfee5[2]);var logger=require(_0xfee5[4])(_0xfee5[3]);var attributes=require(_0xfee5[5]);module[_0xfee5[6]]= function(_0x98e8x5,_0x98e8x6){return _0x98e8x5[_0xfee5[11]](_0xfee5[7],attributes,{tableName:_0xfee5[8],paranoid:false,indexes:[{"\x66\x69\x65\x6C\x64\x73":[_0xfee5[9],_0xfee5[10]]}],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/voiceAgentReport/voiceAgentReport.rpc.js b/server/api/voiceAgentReport/voiceAgentReport.rpc.js
new file mode 100644 (file)
index 0000000..5cfbefd
--- /dev/null
@@ -0,0 +1 @@
+var _0xd7e7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65"];_0xd7e7[0];var _=require(_0xd7e7[1]);var util=require(_0xd7e7[2]);var moment=require(_0xd7e7[3]);var BPromise=require(_0xd7e7[4]);var db=require(_0xd7e7[6])[_0xd7e7[5]];var utils=require(_0xd7e7[7]);var logger=require(_0xd7e7[9])(_0xd7e7[8]);var jayson=require(_0xd7e7[10]);var client=jayson[_0xd7e7[12]][_0xd7e7[11]]({port:9002});function respondWithRpcPromise(_0x1badxb,_0x1badxc,_0x1badxd){return  new BPromise(function(_0x1badxe,_0x1badxf){return client[_0xd7e7[25]](_0x1badxb,_0x1badxd)[_0xd7e7[24]](function(_0x1badx11){logger[_0xd7e7[17]](_0xd7e7[13],_0x1badxc,_0xd7e7[16]);logger[_0xd7e7[20]](_0xd7e7[18],_0x1badxc,_0xd7e7[16],JSON[_0xd7e7[19]](_0x1badx11));if(_0x1badx11[_0xd7e7[14]]){if(_0x1badx11[_0xd7e7[14]][_0xd7e7[21]]=== 500){logger[_0xd7e7[14]](_0xd7e7[13],_0x1badxc,_0x1badx11[_0xd7e7[14]][_0xd7e7[22]]);return _0x1badxf(_0x1badx11[_0xd7e7[14]][_0xd7e7[22]])};logger[_0xd7e7[14]](_0xd7e7[13],_0x1badxc,_0x1badx11[_0xd7e7[14]][_0xd7e7[22]]);return _0x1badxe(_0x1badx11[_0xd7e7[14]][_0xd7e7[22]])}else {logger[_0xd7e7[17]](_0xd7e7[13],_0x1badxc,_0xd7e7[16]);_0x1badxe(_0x1badx11[_0xd7e7[23]][_0xd7e7[22]])}})[_0xd7e7[15]](function(_0x1badx10){logger[_0xd7e7[14]](_0xd7e7[13],_0x1badxc,_0x1badx10);_0x1badxf(_0x1badx10)})})}exports[_0xd7e7[26]]= function(_0x1badxd){var _0x1badx12=this;return  new Promise(function(_0x1badxe,_0x1badxf){return db[_0xd7e7[31]][_0xd7e7[30]](_0x1badxd[_0xd7e7[27]],{raw:_0x1badxd[_0xd7e7[28]]?(_0x1badxd[_0xd7e7[28]][_0xd7e7[29]]=== undefined)?true:false:true})[_0xd7e7[24]](function(_0x1badx11){logger[_0xd7e7[17]](_0xd7e7[26],_0x1badxd);logger[_0xd7e7[20]](_0xd7e7[26],_0x1badxd,JSON[_0xd7e7[19]](_0x1badx11));_0x1badxe(_0x1badx11)})[_0xd7e7[15]](function(_0x1badx10){logger[_0xd7e7[14]](_0xd7e7[26],_0x1badx10[_0xd7e7[22]],_0x1badxd);_0x1badxf(_0x1badx12[_0xd7e7[14]](500,_0x1badx10[_0xd7e7[22]]))})})};exports[_0xd7e7[32]]= function(_0x1badxd){var _0x1badx12=this;return  new Promise(function(_0x1badxe,_0x1badxf){return db[_0xd7e7[31]][_0xd7e7[36]](_0x1badxd[_0xd7e7[27]],{raw:_0x1badxd[_0xd7e7[28]]?(_0x1badxd[_0xd7e7[28]][_0xd7e7[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x1badxd[_0xd7e7[28]]?_0x1badxd[_0xd7e7[28]][_0xd7e7[33]]|| null:null,attributes:_0x1badxd[_0xd7e7[28]]?_0x1badxd[_0xd7e7[28]][_0xd7e7[34]]|| null:null,limit:_0x1badxd[_0xd7e7[28]]?_0x1badxd[_0xd7e7[28]][_0xd7e7[35]]|| null:null})[_0xd7e7[24]](function(_0x1badx11){logger[_0xd7e7[17]](_0xd7e7[32],_0x1badxd);logger[_0xd7e7[20]](_0xd7e7[32],_0x1badxd,JSON[_0xd7e7[19]](_0x1badx11));_0x1badxe(_0x1badx11)})[_0xd7e7[15]](function(_0x1badx10){logger[_0xd7e7[14]](_0xd7e7[32],_0x1badx10[_0xd7e7[22]],_0x1badxd);_0x1badxf(_0x1badx12[_0xd7e7[14]](500,_0x1badx10[_0xd7e7[22]]))})})}
\ No newline at end of file
diff --git a/server/api/voiceCallReport/index.js b/server/api/voiceCallReport/index.js
new file mode 100644 (file)
index 0000000..185305a
--- /dev/null
@@ -0,0 +1 @@
+var _0x3b10=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x3b10[0];var multer=require(_0x3b10[1]);var util=require(_0x3b10[2]);var path=require(_0x3b10[3]);var express=require(_0x3b10[4]);var router=express.Router();var auth=require(_0x3b10[5]);var config=require(_0x3b10[6]);var controller=require(_0x3b10[7]);router[_0x3b10[11]](_0x3b10[8],auth[_0x3b10[9]](),controller[_0x3b10[10]]);router[_0x3b10[11]](_0x3b10[12],auth[_0x3b10[9]](),controller[_0x3b10[13]]);router[_0x3b10[11]](_0x3b10[14],auth[_0x3b10[9]](),controller[_0x3b10[15]]);router[_0x3b10[17]](_0x3b10[8],auth[_0x3b10[9]](),controller[_0x3b10[16]]);router[_0x3b10[19]](_0x3b10[14],auth[_0x3b10[9]](),controller[_0x3b10[18]]);router[_0x3b10[21]](_0x3b10[14],auth[_0x3b10[9]](),controller[_0x3b10[20]]);module[_0x3b10[22]]= router
\ No newline at end of file
diff --git a/server/api/voiceCallReport/voiceCallReport.attributes.js b/server/api/voiceCallReport/voiceCallReport.attributes.js
new file mode 100644 (file)
index 0000000..0038aa3
--- /dev/null
@@ -0,0 +1 @@
+var _0x8292=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x75\x6E\x69\x71\x75\x65\x69\x64","\x69\x6E\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x64\x69\x61\x6C\x65\x72","\x44\x41\x54\x45","\x49\x4E\x54\x45\x47\x45\x52"];_0x8292[0];var Sequelize=require(_0x8292[1]);module[_0x8292[2]]= {uniqueid:{type:Sequelize[_0x8292[3]],unique:_0x8292[4]},type:{type:Sequelize.ENUM(_0x8292[5],_0x8292[6],_0x8292[7],_0x8292[8],_0x8292[9],_0x8292[10])},tag:{type:Sequelize[_0x8292[3]]},accountcode:{type:Sequelize[_0x8292[3]]},source:{type:Sequelize[_0x8292[3]]},destination:{type:Sequelize[_0x8292[3]]},destinationcontext:{type:Sequelize[_0x8292[3]]},callerid:{type:Sequelize[_0x8292[3]]},channel:{type:Sequelize[_0x8292[3]]},destinationchannel:{type:Sequelize[_0x8292[3]]},lastapplication:{type:Sequelize[_0x8292[3]]},lastdata:{type:Sequelize[_0x8292[3]]},starttime:{type:Sequelize[_0x8292[11]]},answertime:{type:Sequelize[_0x8292[11]]},endtime:{type:Sequelize[_0x8292[11]]},duration:{type:Sequelize[_0x8292[12]]},billableseconds:{type:Sequelize[_0x8292[12]]},disposition:{type:Sequelize[_0x8292[3]]},amaflags:{type:Sequelize[_0x8292[3]]},userfield:{type:Sequelize[_0x8292[3]]},userDisposition:{type:Sequelize[_0x8292[3]]}}
\ No newline at end of file
diff --git a/server/api/voiceCallReport/voiceCallReport.controller.js b/server/api/voiceCallReport/voiceCallReport.controller.js
new file mode 100644 (file)
index 0000000..d203338
--- /dev/null
@@ -0,0 +1 @@
+var _0x2de0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x75\x6E\x69\x71\x75\x65\x69\x64"];_0x2de0[0];var jsonpatch=require(_0x2de0[1]);var rp=require(_0x2de0[2]);var moment=require(_0x2de0[3]);var BPromise=require(_0x2de0[4]);var util=require(_0x2de0[5]);var path=require(_0x2de0[6]);var sox=require(_0x2de0[7]);var ejs=require(_0x2de0[8]);var fs=require(_0x2de0[9]);var _=require(_0x2de0[10]);var squel=require(_0x2de0[11]);var crypto=require(_0x2de0[12]);var jsforce=require(_0x2de0[13]);var toCsv=require(_0x2de0[14]);var qs=require(_0x2de0[15]);var logger=require(_0x2de0[17])(_0x2de0[16]);var utils=require(_0x2de0[18]);var config=require(_0x2de0[19]);var db=require(_0x2de0[21])[_0x2de0[20]];function respondWithStatusCode(_0xc043x15,_0xc043x16,_0xc043x17){_0xc043x16= _0xc043x16|| 204;return function(_0xc043x18){if(_0xc043x18){logger[_0x2de0[24]](_0x2de0[22],_0xc043x17,_0xc043x16,_0x2de0[23]);logger[_0x2de0[26]](_0x2de0[25],_0xc043x17,_0xc043x16,_0x2de0[23]);return _0xc043x15[_0x2de0[27]](_0xc043x16)};return _0xc043x15[_0x2de0[29]](304)[_0x2de0[28]]()}}function respondWithResult(_0xc043x15,_0xc043x16,_0xc043x17){_0xc043x16= _0xc043x16|| 200;return function(_0xc043x18){if(_0xc043x18){logger[_0x2de0[24]](_0x2de0[22],_0xc043x17,_0xc043x16,_0x2de0[30]);logger[_0x2de0[26]](_0x2de0[25],_0xc043x17,_0xc043x16,_0x2de0[30],JSON[_0x2de0[31]](_0xc043x18));return _0xc043x15[_0x2de0[29]](_0xc043x16)[_0x2de0[32]](_0xc043x18)};return _0xc043x15[_0x2de0[29]](304)[_0x2de0[28]]()}}function respondWithFilteredResult(_0xc043x15,_0xc043x1b,_0xc043x17){return function(_0xc043x18){if(_0xc043x18){var _0xc043x1c=_0xc043x18[_0x2de0[33]],_0xc043x1d=_0xc043x1b[_0x2de0[34]],_0xc043x1e=_0xc043x1b[_0x2de0[34]]+ _0xc043x1b[_0x2de0[35]],_0xc043x16;if(_0xc043x1e>= _0xc043x1c){_0xc043x1e= _0xc043x1c;_0xc043x16= 200}else {_0xc043x16= 206};_0xc043x15[_0x2de0[29]](_0xc043x16);logger[_0x2de0[24]](_0x2de0[22],_0xc043x17,_0xc043x16,_0x2de0[36]);logger[_0x2de0[26]](_0x2de0[25],_0xc043x17,_0xc043x16,_0x2de0[30],JSON[_0x2de0[31]](_0xc043x18));return _0xc043x15[_0x2de0[40]](_0x2de0[37],_0xc043x1d+ _0x2de0[38]+ _0xc043x1e+ _0x2de0[39]+ _0xc043x1c)[_0x2de0[32]](_0xc043x18)};return null}}function patchUpdates(_0xc043x20){return function(_0xc043x18){try{jsonpatch[_0x2de0[41]](_0xc043x18,_0xc043x20,true)}catch(err){return BPromise[_0x2de0[42]](err)};return _0xc043x18[_0x2de0[43]]()}}function saveUpdates(_0xc043x22,_0xc043x16,_0xc043x17){return function(_0xc043x18){if(_0xc043x18){return _0xc043x18[_0x2de0[46]](_0xc043x22)[_0x2de0[45]](function(_0xc043x23){logger[_0x2de0[24]](_0x2de0[22],_0xc043x17,_0xc043x16,_0x2de0[44]);logger[_0x2de0[26]](_0x2de0[25],_0xc043x17,_0xc043x16,_0x2de0[44],JSON[_0x2de0[31]](_0xc043x18));return _0xc043x23})};return null}}function removeEntity(_0xc043x15,_0xc043x16,_0xc043x17){return function(_0xc043x18){if(_0xc043x18){return _0xc043x18[_0x2de0[48]]()[_0x2de0[45]](function(){logger[_0x2de0[24]](_0x2de0[22],_0xc043x17,_0xc043x16,_0x2de0[47]);logger[_0x2de0[26]](_0x2de0[25],_0xc043x17,_0xc043x16,_0x2de0[47],JSON[_0x2de0[31]](_0xc043x18));_0xc043x15[_0x2de0[29]](204)[_0x2de0[28]]()})}}}function handleEntityNotFound(_0xc043x15,_0xc043x16,_0xc043x17){return function(_0xc043x18){if(!_0xc043x18){logger[_0x2de0[50]](_0x2de0[22],_0xc043x17,404,_0x2de0[49]);_0xc043x15[_0x2de0[29]](404)[_0x2de0[28]]();return null};return _0xc043x18}}function handleError(_0xc043x15,_0xc043x16,_0xc043x17){_0xc043x16= _0xc043x16|| 500;return function(_0xc043x27){logger[_0x2de0[50]](_0x2de0[22],_0xc043x17,_0xc043x16,JSON[_0x2de0[31]](_0xc043x27));delete _0xc043x27[_0x2de0[51]];_0xc043x15[_0x2de0[29]](_0xc043x16)[_0x2de0[52]](_0xc043x27)}}exports[_0x2de0[53]]= function(_0xc043x28,_0xc043x15){var _0xc043x1b={},_0xc043x29={};_0xc043x29[_0x2de0[54]]= _[_0x2de0[57]](db[_0x2de0[56]][_0x2de0[55]]);_0xc043x29[_0x2de0[58]]= _[_0x2de0[57]](_0xc043x28[_0x2de0[58]]);_0xc043x29[_0x2de0[59]]= _[_0x2de0[60]](_0xc043x29[_0x2de0[54]],_0xc043x29[_0x2de0[58]]);_0xc043x1b[_0x2de0[61]]= _[_0x2de0[60]](_0xc043x29[_0x2de0[54]],qs[_0x2de0[62]](_0xc043x28[_0x2de0[58]][_0x2de0[62]]));_0xc043x1b[_0x2de0[61]]= (_0xc043x1b[_0x2de0[61]][_0x2de0[63]])?_0xc043x1b[_0x2de0[61]]:_0xc043x29[_0x2de0[54]];if(!_0xc043x28[_0x2de0[58]][_0x2de0[65]](_0x2de0[64])){_0xc043x1b[_0x2de0[35]]= qs[_0x2de0[35]](_0xc043x28[_0x2de0[58]][_0x2de0[35]]);_0xc043x1b[_0x2de0[34]]= qs[_0x2de0[34]](_0xc043x28[_0x2de0[58]][_0x2de0[34]])};_0xc043x1b[_0x2de0[66]]= qs[_0x2de0[67]](_0xc043x28[_0x2de0[58]][_0x2de0[67]]);_0xc043x1b[_0x2de0[68]]= qs[_0x2de0[59]](_[_0x2de0[69]](_0xc043x28[_0x2de0[58]],_0xc043x29[_0x2de0[59]]));if(_0xc043x28[_0x2de0[58]][_0x2de0[70]]){_0xc043x1b[_0x2de0[68]]= _[_0x2de0[73]](_0xc043x1b[_0x2de0[68]],{$or:_[_0x2de0[72]](_0xc043x1b[_0x2de0[61]],function(_0xc043x2a){var _0xc043x2b={};_0xc043x2b[_0xc043x2a]= {$like:_0x2de0[71]+ _0xc043x28[_0x2de0[58]][_0x2de0[70]]+ _0x2de0[71]};return _0xc043x2b})})};_0xc043x1b= _[_0x2de0[73]]({},_0xc043x1b,_0xc043x28[_0x2de0[74]]);return db[_0x2de0[56]][_0x2de0[76]](_0xc043x1b)[_0x2de0[45]](respondWithFilteredResult(_0xc043x15,_0xc043x1b,_0x2de0[53]))[_0x2de0[75]](handleError(_0xc043x15,null,_0x2de0[53]))};exports[_0x2de0[77]]= function(_0xc043x28,_0xc043x15){var _0xc043x1b={raw:true,where:{id:_0xc043x28[_0x2de0[79]][_0x2de0[78]]}},_0xc043x29={};_0xc043x29[_0x2de0[54]]= _[_0x2de0[57]](db[_0x2de0[56]][_0x2de0[55]]);_0xc043x29[_0x2de0[58]]= _[_0x2de0[57]](_0xc043x28[_0x2de0[58]]);_0xc043x29[_0x2de0[59]]= _[_0x2de0[60]](_0xc043x29[_0x2de0[54]],_0xc043x29[_0x2de0[58]]);_0xc043x1b[_0x2de0[61]]= _[_0x2de0[60]](_0xc043x29[_0x2de0[54]],qs[_0x2de0[62]](_0xc043x28[_0x2de0[58]][_0x2de0[62]]));_0xc043x1b[_0x2de0[61]]= (_0xc043x1b[_0x2de0[61]][_0x2de0[63]])?_0xc043x1b[_0x2de0[61]]:_0xc043x29[_0x2de0[54]];_0xc043x1b= _[_0x2de0[73]]({},_0xc043x1b,_0xc043x28[_0x2de0[74]]);return db[_0x2de0[56]][_0x2de0[80]](_0xc043x1b)[_0x2de0[45]](handleEntityNotFound(_0xc043x15,null,_0x2de0[77]))[_0x2de0[45]](respondWithResult(_0xc043x15,null,_0x2de0[77]))[_0x2de0[75]](handleError(_0xc043x15,null,_0x2de0[77]))};exports[_0x2de0[81]]= function(_0xc043x28,_0xc043x15){return db[_0x2de0[56]][_0x2de0[81]](_0xc043x28[_0x2de0[82]],{})[_0x2de0[45]](respondWithResult(_0xc043x15,201,_0x2de0[81]))[_0x2de0[75]](handleError(_0xc043x15,null,_0x2de0[81]))};exports[_0x2de0[48]]= function(_0xc043x28,_0xc043x15){return db[_0x2de0[56]][_0x2de0[80]]({where:{id:_0xc043x28[_0x2de0[79]][_0x2de0[78]]}})[_0x2de0[45]](handleEntityNotFound(_0xc043x15,null,_0x2de0[48]))[_0x2de0[45]](removeEntity(_0xc043x15,null,_0x2de0[48]))[_0x2de0[75]](handleError(_0xc043x15,null,_0x2de0[48]))};exports[_0x2de0[83]]= function(_0xc043x28,_0xc043x15){return db[_0x2de0[56]][_0x2de0[83]]()[_0x2de0[45]](respondWithResult(_0xc043x15,null,_0x2de0[83]))[_0x2de0[75]](handleError(_0xc043x15,null,_0x2de0[83]))};exports[_0x2de0[46]]= function(_0xc043x28,_0xc043x15){if(_0xc043x28[_0x2de0[82]][_0x2de0[84]]){delete _0xc043x28[_0x2de0[82]][_0x2de0[84]]};return db[_0x2de0[56]][_0x2de0[80]]({where:{uniqueid:_0xc043x28[_0x2de0[79]][_0x2de0[78]]}})[_0x2de0[45]](handleEntityNotFound(_0xc043x15,null,_0x2de0[46]))[_0x2de0[45]](saveUpdates(_0xc043x28[_0x2de0[82]],null,_0x2de0[46]))[_0x2de0[45]](respondWithResult(_0xc043x15,null,_0x2de0[46]))[_0x2de0[75]](handleError(_0xc043x15,null,_0x2de0[46]))}
\ No newline at end of file
diff --git a/server/api/voiceCallReport/voiceCallReport.model.js b/server/api/voiceCallReport/voiceCallReport.model.js
new file mode 100644 (file)
index 0000000..f0aa65a
--- /dev/null
@@ -0,0 +1 @@
+var _0x195b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C","\x64\x65\x66\x69\x6E\x65"];_0x195b[0];var _=require(_0x195b[1]);var util=require(_0x195b[2]);var logger=require(_0x195b[4])(_0x195b[3]);var attributes=require(_0x195b[5]);module[_0x195b[6]]= function(_0x5b57x5,_0x5b57x6){return _0x5b57x5[_0x195b[9]](_0x195b[7],attributes,{tableName:_0x195b[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/voiceCallReport/voiceCallReport.rpc.js b/server/api/voiceCallReport/voiceCallReport.rpc.js
new file mode 100644 (file)
index 0000000..bf16f91
--- /dev/null
@@ -0,0 +1 @@
+var _0xecb3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65"];_0xecb3[0];var _=require(_0xecb3[1]);var util=require(_0xecb3[2]);var moment=require(_0xecb3[3]);var BPromise=require(_0xecb3[4]);var db=require(_0xecb3[6])[_0xecb3[5]];var utils=require(_0xecb3[7]);var logger=require(_0xecb3[9])(_0xecb3[8]);var jayson=require(_0xecb3[10]);var client=jayson[_0xecb3[12]][_0xecb3[11]]({port:9002});function respondWithRpcPromise(_0x884fxb,_0x884fxc,_0x884fxd){return  new BPromise(function(_0x884fxe,_0x884fxf){return client[_0xecb3[25]](_0x884fxb,_0x884fxd)[_0xecb3[24]](function(_0x884fx11){logger[_0xecb3[17]](_0xecb3[13],_0x884fxc,_0xecb3[16]);logger[_0xecb3[20]](_0xecb3[18],_0x884fxc,_0xecb3[16],JSON[_0xecb3[19]](_0x884fx11));if(_0x884fx11[_0xecb3[14]]){if(_0x884fx11[_0xecb3[14]][_0xecb3[21]]=== 500){logger[_0xecb3[14]](_0xecb3[13],_0x884fxc,_0x884fx11[_0xecb3[14]][_0xecb3[22]]);return _0x884fxf(_0x884fx11[_0xecb3[14]][_0xecb3[22]])};logger[_0xecb3[14]](_0xecb3[13],_0x884fxc,_0x884fx11[_0xecb3[14]][_0xecb3[22]]);return _0x884fxe(_0x884fx11[_0xecb3[14]][_0xecb3[22]])}else {logger[_0xecb3[17]](_0xecb3[13],_0x884fxc,_0xecb3[16]);_0x884fxe(_0x884fx11[_0xecb3[23]][_0xecb3[22]])}})[_0xecb3[15]](function(_0x884fx10){logger[_0xecb3[14]](_0xecb3[13],_0x884fxc,_0x884fx10);_0x884fxf(_0x884fx10)})})}exports[_0xecb3[26]]= function(_0x884fxd){var _0x884fx12=this;return  new Promise(function(_0x884fxe,_0x884fxf){return db[_0xecb3[37]][_0xecb3[36]]({raw:_0x884fxd[_0xecb3[27]]?(_0x884fxd[_0xecb3[27]][_0xecb3[28]]=== undefined)?true:false:true,where:_0x884fxd[_0xecb3[27]]?_0x884fxd[_0xecb3[27]][_0xecb3[29]]|| null:null,attributes:_0x884fxd[_0xecb3[27]]?_0x884fxd[_0xecb3[27]][_0xecb3[30]]|| null:null,limit:_0x884fxd[_0xecb3[27]]?_0x884fxd[_0xecb3[27]][_0xecb3[31]]|| null:null,include:_0x884fxd[_0xecb3[27]]?(_0x884fxd[_0xecb3[27]][_0xecb3[32]]?_[_0xecb3[35]](_0x884fxd[_0xecb3[27]][_0xecb3[32]],function(_0x884fx13){return {model:db[_0x884fx13[_0xecb3[33]]],as:_0x884fx13[_0xecb3[34]],attributes:_0x884fx13[_0xecb3[30]],include:_0x884fx13[_0xecb3[32]]?_[_0xecb3[35]](_0x884fx13[_0xecb3[32]],function(_0x884fx14){return {model:db[_0x884fx14[_0xecb3[33]]],as:_0x884fx14[_0xecb3[34]],attributes:_0x884fx14[_0xecb3[30]],include:_0x884fx14[_0xecb3[32]]?_[_0xecb3[35]](_0x884fx14[_0xecb3[32]],function(_0x884fx15){return {model:db[_0x884fx15[_0xecb3[33]]],as:_0x884fx15[_0xecb3[34]],attributes:_0x884fx15[_0xecb3[30]]}}):[]}}):[]}}):[]):[]})[_0xecb3[24]](function(_0x884fx11){logger[_0xecb3[17]](_0xecb3[26],_0x884fxd);logger[_0xecb3[20]](_0xecb3[26],_0x884fxd,JSON[_0xecb3[19]](_0x884fx11));_0x884fxe(_0x884fx11)})[_0xecb3[15]](function(_0x884fx10){logger[_0xecb3[14]](_0xecb3[26],_0x884fx10[_0xecb3[22]],_0x884fxd);_0x884fxf(_0x884fx12[_0xecb3[14]](500,_0x884fx10[_0xecb3[22]]))})})};exports[_0xecb3[38]]= function(_0x884fxd){var _0x884fx12=this;return  new Promise(function(_0x884fxe,_0x884fxf){return db[_0xecb3[37]][_0xecb3[40]](_0x884fxd[_0xecb3[39]],{raw:_0x884fxd[_0xecb3[27]]?(_0x884fxd[_0xecb3[27]][_0xecb3[28]]=== undefined)?true:false:true})[_0xecb3[24]](function(_0x884fx11){logger[_0xecb3[17]](_0xecb3[38],_0x884fxd);logger[_0xecb3[20]](_0xecb3[38],_0x884fxd,JSON[_0xecb3[19]](_0x884fx11));_0x884fxe(_0x884fx11)})[_0xecb3[15]](function(_0x884fx10){logger[_0xecb3[14]](_0xecb3[38],_0x884fx10[_0xecb3[22]],_0x884fxd);_0x884fxf(_0x884fx12[_0xecb3[14]](500,_0x884fx10[_0xecb3[22]]))})})};exports[_0xecb3[41]]= function(_0x884fxd){var _0x884fx12=this;return  new Promise(function(_0x884fxe,_0x884fxf){return db[_0xecb3[37]][_0xecb3[42]](_0x884fxd[_0xecb3[39]],{raw:_0x884fxd[_0xecb3[27]]?(_0x884fxd[_0xecb3[27]][_0xecb3[28]]=== undefined)?true:false:true,individualHooks:true,where:_0x884fxd[_0xecb3[27]]?_0x884fxd[_0xecb3[27]][_0xecb3[29]]|| null:null,attributes:_0x884fxd[_0xecb3[27]]?_0x884fxd[_0xecb3[27]][_0xecb3[30]]|| null:null,limit:_0x884fxd[_0xecb3[27]]?_0x884fxd[_0xecb3[27]][_0xecb3[31]]|| null:null})[_0xecb3[24]](function(_0x884fx11){logger[_0xecb3[17]](_0xecb3[41],_0x884fxd);logger[_0xecb3[20]](_0xecb3[41],_0x884fxd,JSON[_0xecb3[19]](_0x884fx11));_0x884fxe(_0x884fx11)})[_0xecb3[15]](function(_0x884fx10){logger[_0xecb3[14]](_0xecb3[41],_0x884fx10[_0xecb3[22]],_0x884fxd);_0x884fxf(_0x884fx12[_0xecb3[14]](500,_0x884fx10[_0xecb3[22]]))})})}
\ No newline at end of file
diff --git a/server/api/voiceChanSpy/index.js b/server/api/voiceChanSpy/index.js
new file mode 100644 (file)
index 0000000..71bd745
--- /dev/null
@@ -0,0 +1 @@
+var _0xf517=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xf517[0];var multer=require(_0xf517[1]);var util=require(_0xf517[2]);var path=require(_0xf517[3]);var express=require(_0xf517[4]);var router=express.Router();var auth=require(_0xf517[5]);var config=require(_0xf517[6]);var controller=require(_0xf517[7]);router[_0xf517[11]](_0xf517[8],auth[_0xf517[9]](),controller[_0xf517[10]]);router[_0xf517[11]](_0xf517[12],auth[_0xf517[9]](),controller[_0xf517[13]]);router[_0xf517[15]](_0xf517[8],auth[_0xf517[9]](),controller[_0xf517[14]]);router[_0xf517[17]](_0xf517[12],auth[_0xf517[9]](),controller[_0xf517[16]]);router[_0xf517[19]](_0xf517[12],auth[_0xf517[9]](),controller[_0xf517[18]]);module[_0xf517[20]]= router
\ No newline at end of file
diff --git a/server/api/voiceChanSpy/voiceChanSpy.attributes.js b/server/api/voiceChanSpy/voiceChanSpy.attributes.js
new file mode 100644 (file)
index 0000000..627c2c4
--- /dev/null
@@ -0,0 +1 @@
+var _0x6212=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x6F\x70\x74\x69\x6F\x6E\x73","","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x70\x6C\x69\x74","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x6212[0];var Sequelize=require(_0x6212[1]);module[_0x6212[2]]= {name:{type:Sequelize[_0x6212[3]]},prefix:{type:Sequelize[_0x6212[3]],unique:_0x6212[4],allowNull:false},options:{type:Sequelize[_0x6212[3]],set:function(_0x82b8x2){this[_0x6212[8]](_0x6212[5],_0x82b8x2?_0x82b8x2[_0x6212[7]](_0x6212[6]):[])},get:function(){return this[_0x6212[9]](_0x6212[5])?this[_0x6212[9]](_0x6212[5])[_0x6212[10]](_0x6212[6]):[]}},auth:{type:Sequelize[_0x6212[11]],defaultValue:false},password:{type:Sequelize[_0x6212[3]]},record:{type:Sequelize[_0x6212[11]],defaultValue:false},recordingFormat:{type:Sequelize[_0x6212[3]]},description:{type:Sequelize[_0x6212[3]]}}
\ No newline at end of file
diff --git a/server/api/voiceChanSpy/voiceChanSpy.controller.js b/server/api/voiceChanSpy/voiceChanSpy.controller.js
new file mode 100644 (file)
index 0000000..9dfd9f8
--- /dev/null
@@ -0,0 +1 @@
+var _0xfe49=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xfe49[0];var jsonpatch=require(_0xfe49[1]);var rp=require(_0xfe49[2]);var moment=require(_0xfe49[3]);var BPromise=require(_0xfe49[4]);var util=require(_0xfe49[5]);var path=require(_0xfe49[6]);var sox=require(_0xfe49[7]);var ejs=require(_0xfe49[8]);var fs=require(_0xfe49[9]);var _=require(_0xfe49[10]);var squel=require(_0xfe49[11]);var crypto=require(_0xfe49[12]);var jsforce=require(_0xfe49[13]);var toCsv=require(_0xfe49[14]);var qs=require(_0xfe49[15]);var logger=require(_0xfe49[17])(_0xfe49[16]);var utils=require(_0xfe49[18]);var config=require(_0xfe49[19]);var db=require(_0xfe49[21])[_0xfe49[20]];function respondWithStatusCode(_0x64e6x15,_0x64e6x16,_0x64e6x17){_0x64e6x16= _0x64e6x16|| 204;return function(_0x64e6x18){if(_0x64e6x18){logger[_0xfe49[24]](_0xfe49[22],_0x64e6x17,_0x64e6x16,_0xfe49[23]);logger[_0xfe49[26]](_0xfe49[25],_0x64e6x17,_0x64e6x16,_0xfe49[23]);return _0x64e6x15[_0xfe49[27]](_0x64e6x16)};return _0x64e6x15[_0xfe49[29]](304)[_0xfe49[28]]()}}function respondWithResult(_0x64e6x15,_0x64e6x16,_0x64e6x17){_0x64e6x16= _0x64e6x16|| 200;return function(_0x64e6x18){if(_0x64e6x18){logger[_0xfe49[24]](_0xfe49[22],_0x64e6x17,_0x64e6x16,_0xfe49[30]);logger[_0xfe49[26]](_0xfe49[25],_0x64e6x17,_0x64e6x16,_0xfe49[30],JSON[_0xfe49[31]](_0x64e6x18));return _0x64e6x15[_0xfe49[29]](_0x64e6x16)[_0xfe49[32]](_0x64e6x18)};return _0x64e6x15[_0xfe49[29]](304)[_0xfe49[28]]()}}function respondWithFilteredResult(_0x64e6x15,_0x64e6x1b,_0x64e6x17){return function(_0x64e6x18){if(_0x64e6x18){var _0x64e6x1c=_0x64e6x18[_0xfe49[33]],_0x64e6x1d=_0x64e6x1b[_0xfe49[34]],_0x64e6x1e=_0x64e6x1b[_0xfe49[34]]+ _0x64e6x1b[_0xfe49[35]],_0x64e6x16;if(_0x64e6x1e>= _0x64e6x1c){_0x64e6x1e= _0x64e6x1c;_0x64e6x16= 200}else {_0x64e6x16= 206};_0x64e6x15[_0xfe49[29]](_0x64e6x16);logger[_0xfe49[24]](_0xfe49[22],_0x64e6x17,_0x64e6x16,_0xfe49[36]);logger[_0xfe49[26]](_0xfe49[25],_0x64e6x17,_0x64e6x16,_0xfe49[30],JSON[_0xfe49[31]](_0x64e6x18));return _0x64e6x15[_0xfe49[40]](_0xfe49[37],_0x64e6x1d+ _0xfe49[38]+ _0x64e6x1e+ _0xfe49[39]+ _0x64e6x1c)[_0xfe49[32]](_0x64e6x18)};return null}}function patchUpdates(_0x64e6x20){return function(_0x64e6x18){try{jsonpatch[_0xfe49[41]](_0x64e6x18,_0x64e6x20,true)}catch(err){return BPromise[_0xfe49[42]](err)};return _0x64e6x18[_0xfe49[43]]()}}function saveUpdates(_0x64e6x22,_0x64e6x16,_0x64e6x17){return function(_0x64e6x18){if(_0x64e6x18){return _0x64e6x18[_0xfe49[46]](_0x64e6x22)[_0xfe49[45]](function(_0x64e6x23){logger[_0xfe49[24]](_0xfe49[22],_0x64e6x17,_0x64e6x16,_0xfe49[44]);logger[_0xfe49[26]](_0xfe49[25],_0x64e6x17,_0x64e6x16,_0xfe49[44],JSON[_0xfe49[31]](_0x64e6x18));return _0x64e6x23})};return null}}function removeEntity(_0x64e6x15,_0x64e6x16,_0x64e6x17){return function(_0x64e6x18){if(_0x64e6x18){return _0x64e6x18[_0xfe49[48]]()[_0xfe49[45]](function(){logger[_0xfe49[24]](_0xfe49[22],_0x64e6x17,_0x64e6x16,_0xfe49[47]);logger[_0xfe49[26]](_0xfe49[25],_0x64e6x17,_0x64e6x16,_0xfe49[47],JSON[_0xfe49[31]](_0x64e6x18));_0x64e6x15[_0xfe49[29]](204)[_0xfe49[28]]()})}}}function handleEntityNotFound(_0x64e6x15,_0x64e6x16,_0x64e6x17){return function(_0x64e6x18){if(!_0x64e6x18){logger[_0xfe49[50]](_0xfe49[22],_0x64e6x17,404,_0xfe49[49]);_0x64e6x15[_0xfe49[29]](404)[_0xfe49[28]]();return null};return _0x64e6x18}}function handleError(_0x64e6x15,_0x64e6x16,_0x64e6x17){_0x64e6x16= _0x64e6x16|| 500;return function(_0x64e6x27){logger[_0xfe49[50]](_0xfe49[22],_0x64e6x17,_0x64e6x16,JSON[_0xfe49[31]](_0x64e6x27));delete _0x64e6x27[_0xfe49[51]];_0x64e6x15[_0xfe49[29]](_0x64e6x16)[_0xfe49[52]](_0x64e6x27)}}exports[_0xfe49[53]]= function(_0x64e6x28,_0x64e6x15){var _0x64e6x1b={},_0x64e6x29={};_0x64e6x29[_0xfe49[54]]= _[_0xfe49[57]](db[_0xfe49[56]][_0xfe49[55]]);_0x64e6x29[_0xfe49[58]]= _[_0xfe49[57]](_0x64e6x28[_0xfe49[58]]);_0x64e6x29[_0xfe49[59]]= _[_0xfe49[60]](_0x64e6x29[_0xfe49[54]],_0x64e6x29[_0xfe49[58]]);_0x64e6x1b[_0xfe49[61]]= _[_0xfe49[60]](_0x64e6x29[_0xfe49[54]],qs[_0xfe49[62]](_0x64e6x28[_0xfe49[58]][_0xfe49[62]]));_0x64e6x1b[_0xfe49[61]]= (_0x64e6x1b[_0xfe49[61]][_0xfe49[63]])?_0x64e6x1b[_0xfe49[61]]:_0x64e6x29[_0xfe49[54]];if(!_0x64e6x28[_0xfe49[58]][_0xfe49[65]](_0xfe49[64])){_0x64e6x1b[_0xfe49[35]]= qs[_0xfe49[35]](_0x64e6x28[_0xfe49[58]][_0xfe49[35]]);_0x64e6x1b[_0xfe49[34]]= qs[_0xfe49[34]](_0x64e6x28[_0xfe49[58]][_0xfe49[34]])};_0x64e6x1b[_0xfe49[66]]= qs[_0xfe49[67]](_0x64e6x28[_0xfe49[58]][_0xfe49[67]]);_0x64e6x1b[_0xfe49[68]]= qs[_0xfe49[59]](_[_0xfe49[69]](_0x64e6x28[_0xfe49[58]],_0x64e6x29[_0xfe49[59]]));if(_0x64e6x28[_0xfe49[58]][_0xfe49[70]]){_0x64e6x1b[_0xfe49[68]]= _[_0xfe49[73]](_0x64e6x1b[_0xfe49[68]],{$or:_[_0xfe49[72]](_0x64e6x1b[_0xfe49[61]],function(_0x64e6x2a){var _0x64e6x2b={};_0x64e6x2b[_0x64e6x2a]= {$like:_0xfe49[71]+ _0x64e6x28[_0xfe49[58]][_0xfe49[70]]+ _0xfe49[71]};return _0x64e6x2b})})};_0x64e6x1b= _[_0xfe49[73]]({},_0x64e6x1b,_0x64e6x28[_0xfe49[74]]);return db[_0xfe49[56]][_0xfe49[76]](_0x64e6x1b)[_0xfe49[45]](respondWithFilteredResult(_0x64e6x15,_0x64e6x1b,_0xfe49[53]))[_0xfe49[75]](handleError(_0x64e6x15,null,_0xfe49[53]))};exports[_0xfe49[77]]= function(_0x64e6x28,_0x64e6x15){var _0x64e6x1b={raw:false,where:{id:_0x64e6x28[_0xfe49[79]][_0xfe49[78]]}},_0x64e6x29={};_0x64e6x29[_0xfe49[54]]= _[_0xfe49[57]](db[_0xfe49[56]][_0xfe49[55]]);_0x64e6x29[_0xfe49[58]]= _[_0xfe49[57]](_0x64e6x28[_0xfe49[58]]);_0x64e6x29[_0xfe49[59]]= _[_0xfe49[60]](_0x64e6x29[_0xfe49[54]],_0x64e6x29[_0xfe49[58]]);_0x64e6x1b[_0xfe49[61]]= _[_0xfe49[60]](_0x64e6x29[_0xfe49[54]],qs[_0xfe49[62]](_0x64e6x28[_0xfe49[58]][_0xfe49[62]]));_0x64e6x1b[_0xfe49[61]]= (_0x64e6x1b[_0xfe49[61]][_0xfe49[63]])?_0x64e6x1b[_0xfe49[61]]:_0x64e6x29[_0xfe49[54]];_0x64e6x1b= _[_0xfe49[73]]({},_0x64e6x1b,_0x64e6x28[_0xfe49[74]]);return db[_0xfe49[56]][_0xfe49[80]](_0x64e6x1b)[_0xfe49[45]](handleEntityNotFound(_0x64e6x15,null,_0xfe49[77]))[_0xfe49[45]](respondWithResult(_0x64e6x15,null,_0xfe49[77]))[_0xfe49[75]](handleError(_0x64e6x15,null,_0xfe49[77]))};exports[_0xfe49[81]]= function(_0x64e6x28,_0x64e6x15){return db[_0xfe49[56]][_0xfe49[81]](_0x64e6x28[_0xfe49[82]],{})[_0xfe49[45]](respondWithResult(_0x64e6x15,201,_0xfe49[81]))[_0xfe49[75]](handleError(_0x64e6x15,null,_0xfe49[81]))};exports[_0xfe49[46]]= function(_0x64e6x28,_0x64e6x15){if(_0x64e6x28[_0xfe49[82]][_0xfe49[78]]){delete _0x64e6x28[_0xfe49[82]][_0xfe49[78]]};return db[_0xfe49[56]][_0xfe49[80]]({where:{id:_0x64e6x28[_0xfe49[79]][_0xfe49[78]]}})[_0xfe49[45]](handleEntityNotFound(_0x64e6x15,null,_0xfe49[46]))[_0xfe49[45]](saveUpdates(_0x64e6x28[_0xfe49[82]],null,_0xfe49[46]))[_0xfe49[45]](respondWithResult(_0x64e6x15,null,_0xfe49[46]))[_0xfe49[75]](handleError(_0x64e6x15,null,_0xfe49[46]))};exports[_0xfe49[48]]= function(_0x64e6x28,_0x64e6x15){return db[_0xfe49[56]][_0xfe49[80]]({where:{id:_0x64e6x28[_0xfe49[79]][_0xfe49[78]]}})[_0xfe49[45]](handleEntityNotFound(_0x64e6x15,null,_0xfe49[48]))[_0xfe49[45]](removeEntity(_0x64e6x15,null,_0xfe49[48]))[_0xfe49[75]](handleError(_0x64e6x15,null,_0xfe49[48]))}
\ No newline at end of file
diff --git a/server/api/voiceChanSpy/voiceChanSpy.model.js b/server/api/voiceChanSpy/voiceChanSpy.model.js
new file mode 100644 (file)
index 0000000..5b5da1f
--- /dev/null
@@ -0,0 +1 @@
+var _0x1ddb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x73\x79\x73\x74\x65\x6D","\x25\x73\x25\x73","\x70\x72\x65\x66\x69\x78","\x66\x6F\x72\x6D\x61\x74","\x69\x64","\x72\x65\x63\x6F\x72\x64","\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D\x2E\x25\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x46\x6F\x72\x6D\x61\x74","\x6D\x65\x72\x67\x65","\x70\x75\x73\x68","\x61\x75\x74\x68","\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x43\x68\x61\x6E\x53\x70\x79","\x53\x49\x50\x2F\x25\x73\x2C\x25\x73","\x6F\x70\x74\x69\x6F\x6E\x73","","\x6A\x6F\x69\x6E","\x53\x74\x6F\x70\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x6C\x65\x6E\x67\x74\x68","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x6E\x61\x6D\x65","\x63\x6F\x6E\x63\x61\x74","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64\x41\x6C\x6C","\x55\x73\x65\x72","\x65\x78\x70\x6F\x72\x74\x73","\x6D\x6F\x64\x65\x6C\x73","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x76\x6F\x69\x63\x65\x5F\x63\x68\x61\x6E\x73\x70\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x66\x69\x6E\x65"];_0x1ddb[0];var _=require(_0x1ddb[1]);var util=require(_0x1ddb[2]);var BPromise=require(_0x1ddb[3]);var logger=require(_0x1ddb[5])(_0x1ddb[4]);var attributes=require(_0x1ddb[6]);var getUserApplications=function(_0x8183x7,_0x8183x8,_0x8183x9){var _0x8183xa=1;var _0x8183xb=[];var _0x8183xc={context:_0x1ddb[7],type:_0x1ddb[8],isApp:false};var _0x8183xd={exten:util[_0x1ddb[11]](_0x1ddb[9],_0x8183x7[_0x1ddb[10]],_0x8183x9),ChanSpyId:_0x8183x7[_0x1ddb[12]],UserId:_0x8183x8[_0x1ddb[12]]};if(_0x8183x7[_0x1ddb[13]]){_0x8183xb[_0x1ddb[18]](_[_0x1ddb[17]]({app:_0x1ddb[14],appdata:util[_0x1ddb[11]](_0x1ddb[15],_0x8183x7[_0x1ddb[16]]),priority:_0x8183xa++},_0x8183xc,_0x8183xd))};if(_0x8183x7[_0x1ddb[19]]){_0x8183xb[_0x1ddb[18]](_[_0x1ddb[17]]({app:_0x1ddb[20],appdata:_0x8183x7[_0x1ddb[21]],priority:_0x8183xa++},_0x8183xc,_0x8183xd))};_0x8183xb[_0x1ddb[18]](_[_0x1ddb[17]]({app:_0x1ddb[22],appdata:util[_0x1ddb[11]](_0x1ddb[23],_0x8183x9,_0x8183x7[_0x1ddb[24]]?_0x8183x7[_0x1ddb[24]][_0x1ddb[26]](_0x1ddb[25]):null),priority:_0x8183xa++},_0x8183xc,_0x8183xd));if(_0x8183x7[_0x1ddb[13]]){_0x8183xb[_0x1ddb[18]](_[_0x1ddb[17]]({app:_0x1ddb[27],priority:_0x8183xa++},_0x8183xc,_0x8183xd))};return _0x8183xb};var getChanSpyApplications=function(_0x8183x7,_0x8183xf){var _0x8183xb=[];for(var _0x8183x10=0,_0x8183xa=1;_0x8183x10< _0x8183xf[_0x1ddb[28]];_0x8183x10++,_0x8183xa= 1){var _0x8183x11=getUserApplications(_0x8183x7,_0x8183xf[_0x8183x10],_0x8183xf[_0x8183x10][_0x1ddb[29]]);var _0x8183x12=getUserApplications(_0x8183x7,_0x8183xf[_0x8183x10],_0x8183xf[_0x8183x10][_0x1ddb[30]]);_0x8183xb= _0x8183xb[_0x1ddb[31]](_0x8183x11,_0x8183x12)};return _0x8183xb};var getChanSpyPromise=function(_0x8183x14,_0x8183x7){return  new BPromise(function(_0x8183x15,_0x8183x16){return _0x8183x14[_0x1ddb[36]][_0x1ddb[35]]({attributes:[_0x1ddb[12],_0x1ddb[30],_0x1ddb[29]],where:{role:_0x1ddb[34],chanspy:true},raw:true})[_0x1ddb[33]](function(_0x8183x18){if(_0x8183x18){return _0x8183x15(getChanSpyApplications(_0x8183x7,_0x8183x18))};return _0x8183x15([])})[_0x1ddb[32]](function(_0x8183x17){_0x8183x16(_0x8183x17)})})};module[_0x1ddb[37]]= function(_0x8183x19,_0x8183x1a){var _0x8183x14=_0x8183x19[_0x1ddb[38]];return _0x8183x19[_0x1ddb[44]](_0x1ddb[39],attributes,{tableName:_0x1ddb[40],paranoid:false,indexes:[],timestamps:true,hooks:{afterCreate:function(_0x8183x1b,_0x8183x1c,_0x8183x1d){return getChanSpyPromise(_0x8183x14,_0x8183x1b)[_0x1ddb[33]](function(_0x8183xb){if(_0x8183xb&& _0x8183xb[_0x1ddb[28]]){return _0x8183x14[_0x1ddb[42]][_0x1ddb[41]](_0x8183xb)}})[_0x1ddb[33]](function(){_0x8183x1d()})[_0x1ddb[32]](function(_0x8183x17){_0x8183x1d(_0x8183x17)})},afterUpdate:function(_0x8183x1b,_0x8183x1c,_0x8183x1d){return _0x8183x14[_0x1ddb[42]][_0x1ddb[43]]({where:{ChanSpyId:_0x8183x1b[_0x1ddb[12]]}})[_0x1ddb[33]](function(){return getChanSpyPromise(_0x8183x14,_0x8183x1b)})[_0x1ddb[33]](function(_0x8183xb){if(_0x8183xb&& _0x8183xb[_0x1ddb[28]]){return _0x8183x14[_0x1ddb[42]][_0x1ddb[41]](_0x8183xb)}})[_0x1ddb[33]](function(){_0x8183x1d()})[_0x1ddb[32]](function(_0x8183x17){_0x8183x1d(_0x8183x17)})},afterDestroy:function(_0x8183x1b,_0x8183x1c,_0x8183x1d){return _0x8183x14[_0x1ddb[42]][_0x1ddb[43]]({where:{ChanSpyId:_0x8183x1b[_0x1ddb[12]]}})[_0x1ddb[33]](function(){_0x8183x1d()})[_0x1ddb[32]](function(_0x8183x17){_0x8183x1d(_0x8183x17)})}}})}
\ No newline at end of file
diff --git a/server/api/voiceChanSpy/voiceChanSpy.rpc.js b/server/api/voiceChanSpy/voiceChanSpy.rpc.js
new file mode 100644 (file)
index 0000000..d41254d
--- /dev/null
@@ -0,0 +1 @@
+var _0x9a30=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x9a30[0];var _=require(_0x9a30[1]);var util=require(_0x9a30[2]);var moment=require(_0x9a30[3]);var BPromise=require(_0x9a30[4]);var db=require(_0x9a30[6])[_0x9a30[5]];var utils=require(_0x9a30[7]);var logger=require(_0x9a30[9])(_0x9a30[8]);var jayson=require(_0x9a30[10]);var client=jayson[_0x9a30[12]][_0x9a30[11]]({port:9002});function respondWithRpcPromise(_0xe3e2xb,_0xe3e2xc,_0xe3e2xd){return  new BPromise(function(_0xe3e2xe,_0xe3e2xf){return client[_0x9a30[25]](_0xe3e2xb,_0xe3e2xd)[_0x9a30[24]](function(_0xe3e2x11){logger[_0x9a30[17]](_0x9a30[13],_0xe3e2xc,_0x9a30[16]);logger[_0x9a30[20]](_0x9a30[18],_0xe3e2xc,_0x9a30[16],JSON[_0x9a30[19]](_0xe3e2x11));if(_0xe3e2x11[_0x9a30[14]]){if(_0xe3e2x11[_0x9a30[14]][_0x9a30[21]]=== 500){logger[_0x9a30[14]](_0x9a30[13],_0xe3e2xc,_0xe3e2x11[_0x9a30[14]][_0x9a30[22]]);return _0xe3e2xf(_0xe3e2x11[_0x9a30[14]][_0x9a30[22]])};logger[_0x9a30[14]](_0x9a30[13],_0xe3e2xc,_0xe3e2x11[_0x9a30[14]][_0x9a30[22]]);return _0xe3e2xe(_0xe3e2x11[_0x9a30[14]][_0x9a30[22]])}else {logger[_0x9a30[17]](_0x9a30[13],_0xe3e2xc,_0x9a30[16]);_0xe3e2xe(_0xe3e2x11[_0x9a30[23]][_0x9a30[22]])}})[_0x9a30[15]](function(_0xe3e2x10){logger[_0x9a30[14]](_0x9a30[13],_0xe3e2xc,_0xe3e2x10);_0xe3e2xf(_0xe3e2x10)})})}
\ No newline at end of file
diff --git a/server/api/voiceContext/index.js b/server/api/voiceContext/index.js
new file mode 100644 (file)
index 0000000..d3d2fad
--- /dev/null
@@ -0,0 +1 @@
+var _0x4750=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x4750[0];var multer=require(_0x4750[1]);var util=require(_0x4750[2]);var path=require(_0x4750[3]);var express=require(_0x4750[4]);var router=express.Router();var auth=require(_0x4750[5]);var config=require(_0x4750[6]);var controller=require(_0x4750[7]);router[_0x4750[11]](_0x4750[8],auth[_0x4750[9]](),controller[_0x4750[10]]);router[_0x4750[11]](_0x4750[12],auth[_0x4750[9]](),controller[_0x4750[13]]);router[_0x4750[15]](_0x4750[8],auth[_0x4750[9]](),controller[_0x4750[14]]);router[_0x4750[17]](_0x4750[12],auth[_0x4750[9]](),controller[_0x4750[16]]);router[_0x4750[19]](_0x4750[12],auth[_0x4750[9]](),controller[_0x4750[18]]);module[_0x4750[20]]= router
\ No newline at end of file
diff --git a/server/api/voiceContext/voiceContext.attributes.js b/server/api/voiceContext/voiceContext.attributes.js
new file mode 100644 (file)
index 0000000..21a0330
--- /dev/null
@@ -0,0 +1 @@
+var _0x87de=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x87de[0];var Sequelize=require(_0x87de[1]);module[_0x87de[2]]= {name:{type:Sequelize[_0x87de[3]],unique:_0x87de[4]},description:{type:Sequelize[_0x87de[3]],allowNull:true},defaultEntry:{type:Sequelize[_0x87de[5]],defaultValue:0}}
\ No newline at end of file
diff --git a/server/api/voiceContext/voiceContext.controller.js b/server/api/voiceContext/voiceContext.controller.js
new file mode 100644 (file)
index 0000000..fb436bf
--- /dev/null
@@ -0,0 +1 @@
+var _0xa8ce=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x52\x65\x6C\x6F\x61\x64","\x63\x68\x61\x6E\x5F\x73\x69\x70\x2E\x73\x6F","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73\x2F\x63\x6F\x6E\x74\x65\x78\x74\x2E\x65\x6A\x73","\x6A\x6F\x69\x6E","\x75\x74\x66\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x72\x65\x6E\x64\x65\x72","\x2F\x65\x74\x63\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x5F\x78\x63\x61\x6C\x6C\x79\x5F\x63\x6F\x6E\x74\x65\x78\x74\x73\x2E\x63\x6F\x6E\x66","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x66\x69\x6E\x64\x41\x6C\x6C","\x62\x6F\x64\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0xa8ce[0];var jsonpatch=require(_0xa8ce[1]);var rp=require(_0xa8ce[2]);var moment=require(_0xa8ce[3]);var BPromise=require(_0xa8ce[4]);var util=require(_0xa8ce[5]);var path=require(_0xa8ce[6]);var sox=require(_0xa8ce[7]);var ejs=require(_0xa8ce[8]);var fs=require(_0xa8ce[9]);var _=require(_0xa8ce[10]);var squel=require(_0xa8ce[11]);var crypto=require(_0xa8ce[12]);var jsforce=require(_0xa8ce[13]);var toCsv=require(_0xa8ce[14]);var qs=require(_0xa8ce[15]);var logger=require(_0xa8ce[17])(_0xa8ce[16]);var utils=require(_0xa8ce[18]);var config=require(_0xa8ce[19]);var db=require(_0xa8ce[21])[_0xa8ce[20]];var jayson=require(_0xa8ce[22]);var client=jayson[_0xa8ce[24]][_0xa8ce[23]]({port:9002});function respondWithRpcPromise(_0xfaabx17,_0xfaabx18,_0xfaabx19){return  new BPromise(function(_0xfaabx1a,_0xfaabx1b){return client[_0xa8ce[37]](_0xfaabx17,_0xfaabx19)[_0xa8ce[36]](function(_0xfaabx1d){logger[_0xa8ce[29]](_0xa8ce[25],_0xfaabx18,_0xa8ce[28]);logger[_0xa8ce[32]](_0xa8ce[30],_0xfaabx18,_0xa8ce[28],JSON[_0xa8ce[31]](_0xfaabx1d));if(_0xfaabx1d[_0xa8ce[26]]){if(_0xfaabx1d[_0xa8ce[26]][_0xa8ce[33]]=== 500){logger[_0xa8ce[26]](_0xa8ce[25],_0xfaabx18,_0xfaabx1d[_0xa8ce[26]][_0xa8ce[34]]);return _0xfaabx1b(_0xfaabx1d[_0xa8ce[26]][_0xa8ce[34]])};logger[_0xa8ce[26]](_0xa8ce[25],_0xfaabx18,_0xfaabx1d[_0xa8ce[26]][_0xa8ce[34]]);return _0xfaabx1a(_0xfaabx1d[_0xa8ce[26]][_0xa8ce[34]])}else {logger[_0xa8ce[29]](_0xa8ce[25],_0xfaabx18,_0xa8ce[28]);_0xfaabx1a(_0xfaabx1d[_0xa8ce[35]][_0xa8ce[34]])}})[_0xa8ce[27]](function(_0xfaabx1c){logger[_0xa8ce[26]](_0xa8ce[25],_0xfaabx18,_0xfaabx1c);_0xfaabx1b(_0xfaabx1c)})})}function respondWithStatusCode(_0xfaabx1d,_0xfaabx1f,_0xfaabx18){_0xfaabx1f= _0xfaabx1f|| 204;return function(_0xfaabx20){if(_0xfaabx20){logger[_0xa8ce[29]](_0xa8ce[30],_0xfaabx18,_0xfaabx1f,_0xa8ce[38]);logger[_0xa8ce[32]](_0xa8ce[39],_0xfaabx18,_0xfaabx1f,_0xa8ce[38]);return _0xfaabx1d[_0xa8ce[40]](_0xfaabx1f)};return _0xfaabx1d[_0xa8ce[42]](304)[_0xa8ce[41]]()}}function respondWithResult(_0xfaabx1d,_0xfaabx1f,_0xfaabx18){_0xfaabx1f= _0xfaabx1f|| 200;return function(_0xfaabx20){if(_0xfaabx20){logger[_0xa8ce[29]](_0xa8ce[30],_0xfaabx18,_0xfaabx1f,_0xa8ce[43]);logger[_0xa8ce[32]](_0xa8ce[39],_0xfaabx18,_0xfaabx1f,_0xa8ce[43],JSON[_0xa8ce[31]](_0xfaabx20));return _0xfaabx1d[_0xa8ce[42]](_0xfaabx1f)[_0xa8ce[44]](_0xfaabx20)};return _0xfaabx1d[_0xa8ce[42]](304)[_0xa8ce[41]]()}}function respondWithFilteredResult(_0xfaabx1d,_0xfaabx23,_0xfaabx18){return function(_0xfaabx20){if(_0xfaabx20){var _0xfaabx24=_0xfaabx20[_0xa8ce[45]],_0xfaabx25=_0xfaabx23[_0xa8ce[46]],_0xfaabx26=_0xfaabx23[_0xa8ce[46]]+ _0xfaabx23[_0xa8ce[47]],_0xfaabx1f;if(_0xfaabx26>= _0xfaabx24){_0xfaabx26= _0xfaabx24;_0xfaabx1f= 200}else {_0xfaabx1f= 206};_0xfaabx1d[_0xa8ce[42]](_0xfaabx1f);logger[_0xa8ce[29]](_0xa8ce[30],_0xfaabx18,_0xfaabx1f,_0xa8ce[48]);logger[_0xa8ce[32]](_0xa8ce[39],_0xfaabx18,_0xfaabx1f,_0xa8ce[43],JSON[_0xa8ce[31]](_0xfaabx20));return _0xfaabx1d[_0xa8ce[52]](_0xa8ce[49],_0xfaabx25+ _0xa8ce[50]+ _0xfaabx26+ _0xa8ce[51]+ _0xfaabx24)[_0xa8ce[44]](_0xfaabx20)};return null}}function patchUpdates(_0xfaabx28){return function(_0xfaabx20){try{jsonpatch[_0xa8ce[53]](_0xfaabx20,_0xfaabx28,true)}catch(err){return BPromise[_0xa8ce[54]](err)};return _0xfaabx20[_0xa8ce[55]]()}}function saveUpdates(_0xfaabx2a,_0xfaabx1f,_0xfaabx18){return function(_0xfaabx20){if(_0xfaabx20){return _0xfaabx20[_0xa8ce[57]](_0xfaabx2a)[_0xa8ce[36]](function(_0xfaabx2b){logger[_0xa8ce[29]](_0xa8ce[30],_0xfaabx18,_0xfaabx1f,_0xa8ce[56]);logger[_0xa8ce[32]](_0xa8ce[39],_0xfaabx18,_0xfaabx1f,_0xa8ce[56],JSON[_0xa8ce[31]](_0xfaabx20));return _0xfaabx2b})};return null}}function removeEntity(_0xfaabx1d,_0xfaabx1f,_0xfaabx18){return function(_0xfaabx20){if(_0xfaabx20){return _0xfaabx20[_0xa8ce[59]]()[_0xa8ce[36]](function(){logger[_0xa8ce[29]](_0xa8ce[30],_0xfaabx18,_0xfaabx1f,_0xa8ce[58]);logger[_0xa8ce[32]](_0xa8ce[39],_0xfaabx18,_0xfaabx1f,_0xa8ce[58],JSON[_0xa8ce[31]](_0xfaabx20));_0xfaabx1d[_0xa8ce[42]](204)[_0xa8ce[41]]()})}}}function handleEntityNotFound(_0xfaabx1d,_0xfaabx1f,_0xfaabx18){return function(_0xfaabx20){if(!_0xfaabx20){logger[_0xa8ce[26]](_0xa8ce[30],_0xfaabx18,404,_0xa8ce[60]);_0xfaabx1d[_0xa8ce[42]](404)[_0xa8ce[41]]();return null};return _0xfaabx20}}function handleError(_0xfaabx1d,_0xfaabx1f,_0xfaabx18){_0xfaabx1f= _0xfaabx1f|| 500;return function(_0xfaabx1c){logger[_0xa8ce[26]](_0xa8ce[30],_0xfaabx18,_0xfaabx1f,JSON[_0xa8ce[31]](_0xfaabx1c));delete _0xfaabx1c[_0xa8ce[61]];_0xfaabx1d[_0xa8ce[42]](_0xfaabx1f)[_0xa8ce[62]](_0xfaabx1c)}}exports[_0xa8ce[63]]= function(_0xfaabx19,_0xfaabx1d){var _0xfaabx23={},_0xfaabx2f={};_0xfaabx2f[_0xa8ce[64]]= _[_0xa8ce[67]](db[_0xa8ce[66]][_0xa8ce[65]]);_0xfaabx2f[_0xa8ce[68]]= _[_0xa8ce[67]](_0xfaabx19[_0xa8ce[68]]);_0xfaabx2f[_0xa8ce[69]]= _[_0xa8ce[70]](_0xfaabx2f[_0xa8ce[64]],_0xfaabx2f[_0xa8ce[68]]);_0xfaabx23[_0xa8ce[71]]= _[_0xa8ce[70]](_0xfaabx2f[_0xa8ce[64]],qs[_0xa8ce[72]](_0xfaabx19[_0xa8ce[68]][_0xa8ce[72]]));_0xfaabx23[_0xa8ce[71]]= (_0xfaabx23[_0xa8ce[71]][_0xa8ce[73]])?_0xfaabx23[_0xa8ce[71]]:_0xfaabx2f[_0xa8ce[64]];if(!_0xfaabx19[_0xa8ce[68]][_0xa8ce[75]](_0xa8ce[74])){_0xfaabx23[_0xa8ce[47]]= qs[_0xa8ce[47]](_0xfaabx19[_0xa8ce[68]][_0xa8ce[47]]);_0xfaabx23[_0xa8ce[46]]= qs[_0xa8ce[46]](_0xfaabx19[_0xa8ce[68]][_0xa8ce[46]])};_0xfaabx23[_0xa8ce[76]]= qs[_0xa8ce[77]](_0xfaabx19[_0xa8ce[68]][_0xa8ce[77]]);_0xfaabx23[_0xa8ce[78]]= qs[_0xa8ce[69]](_[_0xa8ce[79]](_0xfaabx19[_0xa8ce[68]],_0xfaabx2f[_0xa8ce[69]]));if(_0xfaabx19[_0xa8ce[68]][_0xa8ce[80]]){_0xfaabx23[_0xa8ce[78]]= _[_0xa8ce[83]](_0xfaabx23[_0xa8ce[78]],{$or:_[_0xa8ce[82]](_0xfaabx23[_0xa8ce[71]],function(_0xfaabx30){var _0xfaabx31={};_0xfaabx31[_0xfaabx30]= {$like:_0xa8ce[81]+ _0xfaabx19[_0xa8ce[68]][_0xa8ce[80]]+ _0xa8ce[81]};return _0xfaabx31})})};_0xfaabx23= _[_0xa8ce[83]]({},_0xfaabx23,_0xfaabx19[_0xa8ce[84]]);return db[_0xa8ce[66]][_0xa8ce[85]](_0xfaabx23)[_0xa8ce[36]](respondWithFilteredResult(_0xfaabx1d,_0xfaabx23,_0xa8ce[63]))[_0xa8ce[27]](handleError(_0xfaabx1d,null,_0xa8ce[63]))};exports[_0xa8ce[86]]= function(_0xfaabx19,_0xfaabx1d){var _0xfaabx23={raw:false,where:{id:_0xfaabx19[_0xa8ce[88]][_0xa8ce[87]]}},_0xfaabx2f={};_0xfaabx2f[_0xa8ce[64]]= _[_0xa8ce[67]](db[_0xa8ce[66]][_0xa8ce[65]]);_0xfaabx2f[_0xa8ce[68]]= _[_0xa8ce[67]](_0xfaabx19[_0xa8ce[68]]);_0xfaabx2f[_0xa8ce[69]]= _[_0xa8ce[70]](_0xfaabx2f[_0xa8ce[64]],_0xfaabx2f[_0xa8ce[68]]);_0xfaabx23[_0xa8ce[71]]= _[_0xa8ce[70]](_0xfaabx2f[_0xa8ce[64]],qs[_0xa8ce[72]](_0xfaabx19[_0xa8ce[68]][_0xa8ce[72]]));_0xfaabx23[_0xa8ce[71]]= (_0xfaabx23[_0xa8ce[71]][_0xa8ce[73]])?_0xfaabx23[_0xa8ce[71]]:_0xfaabx2f[_0xa8ce[64]];_0xfaabx23= _[_0xa8ce[83]]({},_0xfaabx23,_0xfaabx19[_0xa8ce[84]]);return db[_0xa8ce[66]][_0xa8ce[89]](_0xfaabx23)[_0xa8ce[36]](handleEntityNotFound(_0xfaabx1d,null,_0xa8ce[86]))[_0xa8ce[36]](respondWithResult(_0xfaabx1d,null,_0xa8ce[86]))[_0xa8ce[27]](handleError(_0xfaabx1d,null,_0xa8ce[86]))};exports[_0xa8ce[90]]= function(_0xfaabx19,_0xfaabx1d,_0xfaabx32){var _0xfaabx33;return db[_0xa8ce[104]][_0xa8ce[103]](function(_0xfaabx34){return db[_0xa8ce[66]][_0xa8ce[90]](_0xfaabx19[_0xa8ce[102]],{raw:true})[_0xa8ce[36]](function(_0xfaabx20){_0xfaabx33= _0xfaabx20;return db[_0xa8ce[66]][_0xa8ce[101]]({raw:true})})[_0xa8ce[36]](function(_0xfaabx35){var _0xfaabx36=fs[_0xa8ce[97]](path[_0xa8ce[95]](config[_0xa8ce[93]],_0xa8ce[94]),_0xa8ce[96]);var _0xfaabx37=ejs[_0xa8ce[98]](_0xfaabx36,{contexts:_0xfaabx35|| []});fs[_0xa8ce[100]](_0xa8ce[99],_0xfaabx37)})[_0xa8ce[36]](function(){return respondWithRpcPromise(_0xa8ce[91],_0xa8ce[90],{module:_0xa8ce[92]})})[_0xa8ce[36]](function(){return _0xfaabx33})})[_0xa8ce[36]](respondWithResult(_0xfaabx1d,201,_0xa8ce[90]))[_0xa8ce[27]](handleError(_0xfaabx1d,null,_0xa8ce[90]))};exports[_0xa8ce[57]]= function(_0xfaabx19,_0xfaabx1d,_0xfaabx32){var _0xfaabx33;return db[_0xa8ce[104]][_0xa8ce[103]](function(_0xfaabx34){return db[_0xa8ce[66]][_0xa8ce[89]]({where:{id:_0xfaabx19[_0xa8ce[88]][_0xa8ce[87]]}})[_0xa8ce[36]](handleEntityNotFound(_0xfaabx1d,null,_0xa8ce[57]))[_0xa8ce[36]](saveUpdates(_0xfaabx19[_0xa8ce[102]],null,_0xa8ce[57]))[_0xa8ce[36]](function(_0xfaabx20){if(_0xfaabx20){_0xfaabx33= _0xfaabx20;return db[_0xa8ce[66]][_0xa8ce[101]]({raw:true})};return null})[_0xa8ce[36]](function(_0xfaabx35){if(_0xfaabx35){var _0xfaabx36=fs[_0xa8ce[97]](path[_0xa8ce[95]](config[_0xa8ce[93]],_0xa8ce[94]),_0xa8ce[96]);var _0xfaabx37=ejs[_0xa8ce[98]](_0xfaabx36,{contexts:_0xfaabx35|| []});fs[_0xa8ce[100]](_0xa8ce[99],_0xfaabx37);return respondWithRpcPromise(_0xa8ce[91],_0xa8ce[57],{module:_0xa8ce[92]})};return null})[_0xa8ce[36]](function(_0xfaabx20){if(_0xfaabx20){return _0xfaabx33};return null})})[_0xa8ce[36]](respondWithResult(_0xfaabx1d,null,_0xa8ce[57]))[_0xa8ce[27]](handleError(_0xfaabx1d,null,_0xa8ce[57]))};exports[_0xa8ce[59]]= function(_0xfaabx19,_0xfaabx1d,_0xfaabx32){var _0xfaabx33;return db[_0xa8ce[66]][_0xa8ce[89]]({where:{id:_0xfaabx19[_0xa8ce[88]][_0xa8ce[87]]}})[_0xa8ce[36]](handleEntityNotFound(_0xfaabx1d,null,_0xa8ce[59]))[_0xa8ce[36]](removeEntity(_0xfaabx1d,null,_0xa8ce[59]))[_0xa8ce[36]](function(){return db[_0xa8ce[66]][_0xa8ce[101]]({raw:true})})[_0xa8ce[36]](function(_0xfaabx35){var _0xfaabx36=fs[_0xa8ce[97]](path[_0xa8ce[95]](config[_0xa8ce[93]],_0xa8ce[94]),_0xa8ce[96]);var _0xfaabx37=ejs[_0xa8ce[98]](_0xfaabx36,{contexts:_0xfaabx35});fs[_0xa8ce[100]](_0xa8ce[99],_0xfaabx37);return respondWithRpcPromise(_0xa8ce[91],_0xa8ce[59],{module:_0xa8ce[92]})})[_0xa8ce[27]](handleError(_0xfaabx1d,null,_0xa8ce[59]))}
\ No newline at end of file
diff --git a/server/api/voiceContext/voiceContext.model.js b/server/api/voiceContext/voiceContext.model.js
new file mode 100644 (file)
index 0000000..d8d0cc3
--- /dev/null
@@ -0,0 +1 @@
+var _0x6c6e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x76\x6F\x69\x63\x65\x5F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x64\x65\x66\x69\x6E\x65"];_0x6c6e[0];var _=require(_0x6c6e[1]);var util=require(_0x6c6e[2]);var logger=require(_0x6c6e[4])(_0x6c6e[3]);var attributes=require(_0x6c6e[5]);module[_0x6c6e[6]]= function(_0x9318x5,_0x9318x6){return _0x9318x5[_0x6c6e[9]](_0x6c6e[7],attributes,{tableName:_0x6c6e[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/voiceContext/voiceContext.rpc.js b/server/api/voiceContext/voiceContext.rpc.js
new file mode 100644 (file)
index 0000000..eda7b20
--- /dev/null
@@ -0,0 +1 @@
+var _0xb369=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xb369[0];var _=require(_0xb369[1]);var util=require(_0xb369[2]);var moment=require(_0xb369[3]);var BPromise=require(_0xb369[4]);var db=require(_0xb369[6])[_0xb369[5]];var utils=require(_0xb369[7]);var logger=require(_0xb369[9])(_0xb369[8]);var jayson=require(_0xb369[10]);var client=jayson[_0xb369[12]][_0xb369[11]]({port:9002});function respondWithRpcPromise(_0x1781xb,_0x1781xc,_0x1781xd){return  new BPromise(function(_0x1781xe,_0x1781xf){return client[_0xb369[25]](_0x1781xb,_0x1781xd)[_0xb369[24]](function(_0x1781x11){logger[_0xb369[17]](_0xb369[13],_0x1781xc,_0xb369[16]);logger[_0xb369[20]](_0xb369[18],_0x1781xc,_0xb369[16],JSON[_0xb369[19]](_0x1781x11));if(_0x1781x11[_0xb369[14]]){if(_0x1781x11[_0xb369[14]][_0xb369[21]]=== 500){logger[_0xb369[14]](_0xb369[13],_0x1781xc,_0x1781x11[_0xb369[14]][_0xb369[22]]);return _0x1781xf(_0x1781x11[_0xb369[14]][_0xb369[22]])};logger[_0xb369[14]](_0xb369[13],_0x1781xc,_0x1781x11[_0xb369[14]][_0xb369[22]]);return _0x1781xe(_0x1781x11[_0xb369[14]][_0xb369[22]])}else {logger[_0xb369[17]](_0xb369[13],_0x1781xc,_0xb369[16]);_0x1781xe(_0x1781x11[_0xb369[23]][_0xb369[22]])}})[_0xb369[15]](function(_0x1781x10){logger[_0xb369[14]](_0xb369[13],_0x1781xc,_0x1781x10);_0x1781xf(_0x1781x10)})})}
\ No newline at end of file
diff --git a/server/api/voiceDialReport/index.js b/server/api/voiceDialReport/index.js
new file mode 100644 (file)
index 0000000..02ca6eb
--- /dev/null
@@ -0,0 +1 @@
+var _0xacbc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xacbc[0];var multer=require(_0xacbc[1]);var util=require(_0xacbc[2]);var path=require(_0xacbc[3]);var express=require(_0xacbc[4]);var router=express.Router();var auth=require(_0xacbc[5]);var config=require(_0xacbc[6]);var controller=require(_0xacbc[7]);router[_0xacbc[11]](_0xacbc[8],auth[_0xacbc[9]](),controller[_0xacbc[10]]);router[_0xacbc[11]](_0xacbc[12],auth[_0xacbc[9]](),controller[_0xacbc[13]]);router[_0xacbc[11]](_0xacbc[14],auth[_0xacbc[9]](),controller[_0xacbc[15]]);router[_0xacbc[17]](_0xacbc[8],auth[_0xacbc[9]](),controller[_0xacbc[16]]);router[_0xacbc[19]](_0xacbc[14],auth[_0xacbc[9]](),controller[_0xacbc[18]]);router[_0xacbc[21]](_0xacbc[14],auth[_0xacbc[9]](),controller[_0xacbc[20]]);module[_0xacbc[22]]= router
\ No newline at end of file
diff --git a/server/api/voiceDialReport/voiceDialReport.attributes.js b/server/api/voiceDialReport/voiceDialReport.attributes.js
new file mode 100644 (file)
index 0000000..2357452
--- /dev/null
@@ -0,0 +1 @@
+var _0xcd69=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x63\x61\x6C\x6C\x65\x64\x2C\x63\x6F\x6E\x6E\x65\x63\x74\x2C\x63\x6F\x6D\x70\x6C\x65\x74\x65"];_0xcd69[0];var Sequelize=require(_0xcd69[1]);module[_0xcd69[2]]= {privilege:{type:Sequelize[_0xcd69[3]]},channel:{type:Sequelize[_0xcd69[3]]},channelstate:{type:Sequelize[_0xcd69[4]]},channelstatedesc:{type:Sequelize[_0xcd69[3]]},calleridnum:{type:Sequelize[_0xcd69[3]]},calleridname:{type:Sequelize[_0xcd69[3]]},connectedlinenum:{type:Sequelize[_0xcd69[3]]},connectedlinename:{type:Sequelize[_0xcd69[3]]},language:{type:Sequelize[_0xcd69[3]]},accountcode:{type:Sequelize[_0xcd69[3]]},context:{type:Sequelize[_0xcd69[3]]},exten:{type:Sequelize[_0xcd69[3]]},priority:{type:Sequelize[_0xcd69[4]]},uniqueid:{type:Sequelize[_0xcd69[3]]},linkedid:{type:Sequelize[_0xcd69[3]]},destchannel:{type:Sequelize[_0xcd69[3]]},destchannelstate:{type:Sequelize[_0xcd69[4]]},destchannelstatedesc:{type:Sequelize[_0xcd69[3]]},destcalleridnum:{type:Sequelize[_0xcd69[3]]},destcalleridname:{type:Sequelize[_0xcd69[3]]},destconnectedlinenum:{type:Sequelize[_0xcd69[3]]},destconnectedlinename:{type:Sequelize[_0xcd69[3]]},destlanguage:{type:Sequelize[_0xcd69[3]]},destaccountcode:{type:Sequelize[_0xcd69[3]]},destcontext:{type:Sequelize[_0xcd69[3]]},destexten:{type:Sequelize[_0xcd69[3]]},destpriority:{type:Sequelize[_0xcd69[4]]},destuniqueid:{type:Sequelize[_0xcd69[3]]},destlinkedid:{type:Sequelize[_0xcd69[3]]},dialstring:{type:Sequelize[_0xcd69[3]]},dialstatus:{type:Sequelize[_0xcd69[3]]},starttime:{type:Sequelize[_0xcd69[5]]},answertime:{type:Sequelize[_0xcd69[5]]},endtime:{type:Sequelize[_0xcd69[5]]},lastevent:{type:Sequelize[_0xcd69[3]],comment:_0xcd69[6]},routeId:{type:Sequelize[_0xcd69[4]]}}
\ No newline at end of file
diff --git a/server/api/voiceDialReport/voiceDialReport.controller.js b/server/api/voiceDialReport/voiceDialReport.controller.js
new file mode 100644 (file)
index 0000000..af6e6c8
--- /dev/null
@@ -0,0 +1 @@
+var _0x3cc5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x3cc5[0];var jsonpatch=require(_0x3cc5[1]);var rp=require(_0x3cc5[2]);var moment=require(_0x3cc5[3]);var BPromise=require(_0x3cc5[4]);var util=require(_0x3cc5[5]);var path=require(_0x3cc5[6]);var sox=require(_0x3cc5[7]);var ejs=require(_0x3cc5[8]);var fs=require(_0x3cc5[9]);var _=require(_0x3cc5[10]);var squel=require(_0x3cc5[11]);var crypto=require(_0x3cc5[12]);var jsforce=require(_0x3cc5[13]);var toCsv=require(_0x3cc5[14]);var qs=require(_0x3cc5[15]);var logger=require(_0x3cc5[17])(_0x3cc5[16]);var utils=require(_0x3cc5[18]);var config=require(_0x3cc5[19]);var db=require(_0x3cc5[21])[_0x3cc5[20]];function respondWithStatusCode(_0x6583x15,_0x6583x16,_0x6583x17){_0x6583x16= _0x6583x16|| 204;return function(_0x6583x18){if(_0x6583x18){logger[_0x3cc5[24]](_0x3cc5[22],_0x6583x17,_0x6583x16,_0x3cc5[23]);logger[_0x3cc5[26]](_0x3cc5[25],_0x6583x17,_0x6583x16,_0x3cc5[23]);return _0x6583x15[_0x3cc5[27]](_0x6583x16)};return _0x6583x15[_0x3cc5[29]](304)[_0x3cc5[28]]()}}function respondWithResult(_0x6583x15,_0x6583x16,_0x6583x17){_0x6583x16= _0x6583x16|| 200;return function(_0x6583x18){if(_0x6583x18){logger[_0x3cc5[24]](_0x3cc5[22],_0x6583x17,_0x6583x16,_0x3cc5[30]);logger[_0x3cc5[26]](_0x3cc5[25],_0x6583x17,_0x6583x16,_0x3cc5[30],JSON[_0x3cc5[31]](_0x6583x18));return _0x6583x15[_0x3cc5[29]](_0x6583x16)[_0x3cc5[32]](_0x6583x18)};return _0x6583x15[_0x3cc5[29]](304)[_0x3cc5[28]]()}}function respondWithFilteredResult(_0x6583x15,_0x6583x1b,_0x6583x17){return function(_0x6583x18){if(_0x6583x18){var _0x6583x1c=_0x6583x18[_0x3cc5[33]],_0x6583x1d=_0x6583x1b[_0x3cc5[34]],_0x6583x1e=_0x6583x1b[_0x3cc5[34]]+ _0x6583x1b[_0x3cc5[35]],_0x6583x16;if(_0x6583x1e>= _0x6583x1c){_0x6583x1e= _0x6583x1c;_0x6583x16= 200}else {_0x6583x16= 206};_0x6583x15[_0x3cc5[29]](_0x6583x16);logger[_0x3cc5[24]](_0x3cc5[22],_0x6583x17,_0x6583x16,_0x3cc5[36]);logger[_0x3cc5[26]](_0x3cc5[25],_0x6583x17,_0x6583x16,_0x3cc5[30],JSON[_0x3cc5[31]](_0x6583x18));return _0x6583x15[_0x3cc5[40]](_0x3cc5[37],_0x6583x1d+ _0x3cc5[38]+ _0x6583x1e+ _0x3cc5[39]+ _0x6583x1c)[_0x3cc5[32]](_0x6583x18)};return null}}function patchUpdates(_0x6583x20){return function(_0x6583x18){try{jsonpatch[_0x3cc5[41]](_0x6583x18,_0x6583x20,true)}catch(err){return BPromise[_0x3cc5[42]](err)};return _0x6583x18[_0x3cc5[43]]()}}function saveUpdates(_0x6583x22,_0x6583x16,_0x6583x17){return function(_0x6583x18){if(_0x6583x18){return _0x6583x18[_0x3cc5[46]](_0x6583x22)[_0x3cc5[45]](function(_0x6583x23){logger[_0x3cc5[24]](_0x3cc5[22],_0x6583x17,_0x6583x16,_0x3cc5[44]);logger[_0x3cc5[26]](_0x3cc5[25],_0x6583x17,_0x6583x16,_0x3cc5[44],JSON[_0x3cc5[31]](_0x6583x18));return _0x6583x23})};return null}}function removeEntity(_0x6583x15,_0x6583x16,_0x6583x17){return function(_0x6583x18){if(_0x6583x18){return _0x6583x18[_0x3cc5[48]]()[_0x3cc5[45]](function(){logger[_0x3cc5[24]](_0x3cc5[22],_0x6583x17,_0x6583x16,_0x3cc5[47]);logger[_0x3cc5[26]](_0x3cc5[25],_0x6583x17,_0x6583x16,_0x3cc5[47],JSON[_0x3cc5[31]](_0x6583x18));_0x6583x15[_0x3cc5[29]](204)[_0x3cc5[28]]()})}}}function handleEntityNotFound(_0x6583x15,_0x6583x16,_0x6583x17){return function(_0x6583x18){if(!_0x6583x18){logger[_0x3cc5[50]](_0x3cc5[22],_0x6583x17,404,_0x3cc5[49]);_0x6583x15[_0x3cc5[29]](404)[_0x3cc5[28]]();return null};return _0x6583x18}}function handleError(_0x6583x15,_0x6583x16,_0x6583x17){_0x6583x16= _0x6583x16|| 500;return function(_0x6583x27){logger[_0x3cc5[50]](_0x3cc5[22],_0x6583x17,_0x6583x16,JSON[_0x3cc5[31]](_0x6583x27));delete _0x6583x27[_0x3cc5[51]];_0x6583x15[_0x3cc5[29]](_0x6583x16)[_0x3cc5[52]](_0x6583x27)}}exports[_0x3cc5[53]]= function(_0x6583x28,_0x6583x15){var _0x6583x1b={},_0x6583x29={};_0x6583x29[_0x3cc5[54]]= _[_0x3cc5[57]](db[_0x3cc5[56]][_0x3cc5[55]]);_0x6583x29[_0x3cc5[58]]= _[_0x3cc5[57]](_0x6583x28[_0x3cc5[58]]);_0x6583x29[_0x3cc5[59]]= _[_0x3cc5[60]](_0x6583x29[_0x3cc5[54]],_0x6583x29[_0x3cc5[58]]);_0x6583x1b[_0x3cc5[61]]= _[_0x3cc5[60]](_0x6583x29[_0x3cc5[54]],qs[_0x3cc5[62]](_0x6583x28[_0x3cc5[58]][_0x3cc5[62]]));_0x6583x1b[_0x3cc5[61]]= (_0x6583x1b[_0x3cc5[61]][_0x3cc5[63]])?_0x6583x1b[_0x3cc5[61]]:_0x6583x29[_0x3cc5[54]];if(!_0x6583x28[_0x3cc5[58]][_0x3cc5[65]](_0x3cc5[64])){_0x6583x1b[_0x3cc5[35]]= qs[_0x3cc5[35]](_0x6583x28[_0x3cc5[58]][_0x3cc5[35]]);_0x6583x1b[_0x3cc5[34]]= qs[_0x3cc5[34]](_0x6583x28[_0x3cc5[58]][_0x3cc5[34]])};_0x6583x1b[_0x3cc5[66]]= qs[_0x3cc5[67]](_0x6583x28[_0x3cc5[58]][_0x3cc5[67]]);_0x6583x1b[_0x3cc5[68]]= qs[_0x3cc5[59]](_[_0x3cc5[69]](_0x6583x28[_0x3cc5[58]],_0x6583x29[_0x3cc5[59]]));if(_0x6583x28[_0x3cc5[58]][_0x3cc5[70]]){_0x6583x1b[_0x3cc5[68]]= _[_0x3cc5[73]](_0x6583x1b[_0x3cc5[68]],{$or:_[_0x3cc5[72]](_0x6583x1b[_0x3cc5[61]],function(_0x6583x2a){var _0x6583x2b={};_0x6583x2b[_0x6583x2a]= {$like:_0x3cc5[71]+ _0x6583x28[_0x3cc5[58]][_0x3cc5[70]]+ _0x3cc5[71]};return _0x6583x2b})})};_0x6583x1b= _[_0x3cc5[73]]({},_0x6583x1b,_0x6583x28[_0x3cc5[74]]);return db[_0x3cc5[56]][_0x3cc5[76]](_0x6583x1b)[_0x3cc5[45]](respondWithFilteredResult(_0x6583x15,_0x6583x1b,_0x3cc5[53]))[_0x3cc5[75]](handleError(_0x6583x15,null,_0x3cc5[53]))};exports[_0x3cc5[77]]= function(_0x6583x28,_0x6583x15){var _0x6583x1b={raw:true,where:{id:_0x6583x28[_0x3cc5[79]][_0x3cc5[78]]}},_0x6583x29={};_0x6583x29[_0x3cc5[54]]= _[_0x3cc5[57]](db[_0x3cc5[56]][_0x3cc5[55]]);_0x6583x29[_0x3cc5[58]]= _[_0x3cc5[57]](_0x6583x28[_0x3cc5[58]]);_0x6583x29[_0x3cc5[59]]= _[_0x3cc5[60]](_0x6583x29[_0x3cc5[54]],_0x6583x29[_0x3cc5[58]]);_0x6583x1b[_0x3cc5[61]]= _[_0x3cc5[60]](_0x6583x29[_0x3cc5[54]],qs[_0x3cc5[62]](_0x6583x28[_0x3cc5[58]][_0x3cc5[62]]));_0x6583x1b[_0x3cc5[61]]= (_0x6583x1b[_0x3cc5[61]][_0x3cc5[63]])?_0x6583x1b[_0x3cc5[61]]:_0x6583x29[_0x3cc5[54]];_0x6583x1b= _[_0x3cc5[73]]({},_0x6583x1b,_0x6583x28[_0x3cc5[74]]);return db[_0x3cc5[56]][_0x3cc5[80]](_0x6583x1b)[_0x3cc5[45]](handleEntityNotFound(_0x6583x15,null,_0x3cc5[77]))[_0x3cc5[45]](respondWithResult(_0x6583x15,null,_0x3cc5[77]))[_0x3cc5[75]](handleError(_0x6583x15,null,_0x3cc5[77]))};exports[_0x3cc5[81]]= function(_0x6583x28,_0x6583x15){return db[_0x3cc5[56]][_0x3cc5[81]](_0x6583x28[_0x3cc5[82]],{})[_0x3cc5[45]](respondWithResult(_0x6583x15,201,_0x3cc5[81]))[_0x3cc5[75]](handleError(_0x6583x15,null,_0x3cc5[81]))};exports[_0x3cc5[46]]= function(_0x6583x28,_0x6583x15){if(_0x6583x28[_0x3cc5[82]][_0x3cc5[78]]){delete _0x6583x28[_0x3cc5[82]][_0x3cc5[78]]};return db[_0x3cc5[56]][_0x3cc5[80]]({where:{id:_0x6583x28[_0x3cc5[79]][_0x3cc5[78]]}})[_0x3cc5[45]](handleEntityNotFound(_0x6583x15,null,_0x3cc5[46]))[_0x3cc5[45]](saveUpdates(_0x6583x28[_0x3cc5[82]],null,_0x3cc5[46]))[_0x3cc5[45]](respondWithResult(_0x6583x15,null,_0x3cc5[46]))[_0x3cc5[75]](handleError(_0x6583x15,null,_0x3cc5[46]))};exports[_0x3cc5[48]]= function(_0x6583x28,_0x6583x15){return db[_0x3cc5[56]][_0x3cc5[80]]({where:{id:_0x6583x28[_0x3cc5[79]][_0x3cc5[78]]}})[_0x3cc5[45]](handleEntityNotFound(_0x6583x15,null,_0x3cc5[48]))[_0x3cc5[45]](removeEntity(_0x6583x15,null,_0x3cc5[48]))[_0x3cc5[75]](handleError(_0x6583x15,null,_0x3cc5[48]))};exports[_0x3cc5[83]]= function(_0x6583x28,_0x6583x15){return db[_0x3cc5[56]][_0x3cc5[83]]()[_0x3cc5[45]](respondWithResult(_0x6583x15,null,_0x3cc5[83]))[_0x3cc5[75]](handleError(_0x6583x15,null,_0x3cc5[83]))}
\ No newline at end of file
diff --git a/server/api/voiceDialReport/voiceDialReport.model.js b/server/api/voiceDialReport/voiceDialReport.model.js
new file mode 100644 (file)
index 0000000..e7bfbf9
--- /dev/null
@@ -0,0 +1 @@
+var _0xb827=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x64\x69\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];_0xb827[0];var _=require(_0xb827[1]);var util=require(_0xb827[2]);var logger=require(_0xb827[4])(_0xb827[3]);var attributes=require(_0xb827[5]);module[_0xb827[6]]= function(_0xc738x5,_0xc738x6){return _0xc738x5[_0xb827[10]](_0xb827[7],attributes,{tableName:_0xb827[8],paranoid:false,indexes:[{"\x66\x69\x65\x6C\x64\x73":[_0xb827[9]]}],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/voiceDialReport/voiceDialReport.rpc.js b/server/api/voiceDialReport/voiceDialReport.rpc.js
new file mode 100644 (file)
index 0000000..3d40ee5
--- /dev/null
@@ -0,0 +1 @@
+var _0x3d7f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65"];_0x3d7f[0];var _=require(_0x3d7f[1]);var util=require(_0x3d7f[2]);var moment=require(_0x3d7f[3]);var BPromise=require(_0x3d7f[4]);var db=require(_0x3d7f[6])[_0x3d7f[5]];var utils=require(_0x3d7f[7]);var logger=require(_0x3d7f[9])(_0x3d7f[8]);var jayson=require(_0x3d7f[10]);var client=jayson[_0x3d7f[12]][_0x3d7f[11]]({port:9002});function respondWithRpcPromise(_0xe0b6xb,_0xe0b6xc,_0xe0b6xd){return  new BPromise(function(_0xe0b6xe,_0xe0b6xf){return client[_0x3d7f[25]](_0xe0b6xb,_0xe0b6xd)[_0x3d7f[24]](function(_0xe0b6x11){logger[_0x3d7f[17]](_0x3d7f[13],_0xe0b6xc,_0x3d7f[16]);logger[_0x3d7f[20]](_0x3d7f[18],_0xe0b6xc,_0x3d7f[16],JSON[_0x3d7f[19]](_0xe0b6x11));if(_0xe0b6x11[_0x3d7f[14]]){if(_0xe0b6x11[_0x3d7f[14]][_0x3d7f[21]]=== 500){logger[_0x3d7f[14]](_0x3d7f[13],_0xe0b6xc,_0xe0b6x11[_0x3d7f[14]][_0x3d7f[22]]);return _0xe0b6xf(_0xe0b6x11[_0x3d7f[14]][_0x3d7f[22]])};logger[_0x3d7f[14]](_0x3d7f[13],_0xe0b6xc,_0xe0b6x11[_0x3d7f[14]][_0x3d7f[22]]);return _0xe0b6xe(_0xe0b6x11[_0x3d7f[14]][_0x3d7f[22]])}else {logger[_0x3d7f[17]](_0x3d7f[13],_0xe0b6xc,_0x3d7f[16]);_0xe0b6xe(_0xe0b6x11[_0x3d7f[23]][_0x3d7f[22]])}})[_0x3d7f[15]](function(_0xe0b6x10){logger[_0x3d7f[14]](_0x3d7f[13],_0xe0b6xc,_0xe0b6x10);_0xe0b6xf(_0xe0b6x10)})})}exports[_0x3d7f[26]]= function(_0xe0b6xd){var _0xe0b6x12=this;return  new Promise(function(_0xe0b6xe,_0xe0b6xf){return db[_0x3d7f[31]][_0x3d7f[30]](_0xe0b6xd[_0x3d7f[27]],{raw:_0xe0b6xd[_0x3d7f[28]]?(_0xe0b6xd[_0x3d7f[28]][_0x3d7f[29]]=== undefined)?true:false:true})[_0x3d7f[24]](function(_0xe0b6x11){logger[_0x3d7f[17]](_0x3d7f[26],_0xe0b6xd);logger[_0x3d7f[20]](_0x3d7f[26],_0xe0b6xd,JSON[_0x3d7f[19]](_0xe0b6x11));_0xe0b6xe(_0xe0b6x11)})[_0x3d7f[15]](function(_0xe0b6x10){logger[_0x3d7f[14]](_0x3d7f[26],_0xe0b6x10[_0x3d7f[22]],_0xe0b6xd);_0xe0b6xf(_0xe0b6x12[_0x3d7f[14]](500,_0xe0b6x10[_0x3d7f[22]]))})})};exports[_0x3d7f[32]]= function(_0xe0b6xd){var _0xe0b6x12=this;return  new Promise(function(_0xe0b6xe,_0xe0b6xf){return db[_0x3d7f[31]][_0x3d7f[36]](_0xe0b6xd[_0x3d7f[27]],{raw:_0xe0b6xd[_0x3d7f[28]]?(_0xe0b6xd[_0x3d7f[28]][_0x3d7f[29]]=== undefined)?true:false:true,individualHooks:true,where:_0xe0b6xd[_0x3d7f[28]]?_0xe0b6xd[_0x3d7f[28]][_0x3d7f[33]]|| null:null,attributes:_0xe0b6xd[_0x3d7f[28]]?_0xe0b6xd[_0x3d7f[28]][_0x3d7f[34]]|| null:null,limit:_0xe0b6xd[_0x3d7f[28]]?_0xe0b6xd[_0x3d7f[28]][_0x3d7f[35]]|| null:null})[_0x3d7f[24]](function(_0xe0b6x11){logger[_0x3d7f[17]](_0x3d7f[32],_0xe0b6xd);logger[_0x3d7f[20]](_0x3d7f[32],_0xe0b6xd,JSON[_0x3d7f[19]](_0xe0b6x11));_0xe0b6xe(_0xe0b6x11)})[_0x3d7f[15]](function(_0xe0b6x10){logger[_0x3d7f[14]](_0x3d7f[32],_0xe0b6x10[_0x3d7f[22]],_0xe0b6xd);_0xe0b6xf(_0xe0b6x12[_0x3d7f[14]](500,_0xe0b6x10[_0x3d7f[22]]))})})}
\ No newline at end of file
diff --git a/server/api/voiceDisposition/index.js b/server/api/voiceDisposition/index.js
new file mode 100644 (file)
index 0000000..7641630
--- /dev/null
@@ -0,0 +1 @@
+var _0xfb97=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xfb97[0];var multer=require(_0xfb97[1]);var util=require(_0xfb97[2]);var path=require(_0xfb97[3]);var express=require(_0xfb97[4]);var router=express.Router();var auth=require(_0xfb97[5]);var config=require(_0xfb97[6]);var controller=require(_0xfb97[7]);router[_0xfb97[11]](_0xfb97[8],auth[_0xfb97[9]](),controller[_0xfb97[10]]);router[_0xfb97[11]](_0xfb97[12],auth[_0xfb97[9]](),controller[_0xfb97[13]]);router[_0xfb97[15]](_0xfb97[8],auth[_0xfb97[9]](),controller[_0xfb97[14]]);router[_0xfb97[17]](_0xfb97[12],auth[_0xfb97[9]](),controller[_0xfb97[16]]);router[_0xfb97[19]](_0xfb97[12],auth[_0xfb97[9]](),controller[_0xfb97[18]]);module[_0xfb97[20]]= router
\ No newline at end of file
diff --git a/server/api/voiceDisposition/voiceDisposition.attributes.js b/server/api/voiceDisposition/voiceDisposition.attributes.js
new file mode 100644 (file)
index 0000000..58ab0fb
--- /dev/null
@@ -0,0 +1 @@
+var _0x6e3c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47"];_0x6e3c[0];var Sequelize=require(_0x6e3c[1]);module[_0x6e3c[2]]= {name:{type:Sequelize[_0x6e3c[3]]}}
\ No newline at end of file
diff --git a/server/api/voiceDisposition/voiceDisposition.controller.js b/server/api/voiceDisposition/voiceDisposition.controller.js
new file mode 100644 (file)
index 0000000..fad7cb3
--- /dev/null
@@ -0,0 +1 @@
+var _0x2a50=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x2a50[0];var jsonpatch=require(_0x2a50[1]);var rp=require(_0x2a50[2]);var moment=require(_0x2a50[3]);var BPromise=require(_0x2a50[4]);var util=require(_0x2a50[5]);var path=require(_0x2a50[6]);var sox=require(_0x2a50[7]);var ejs=require(_0x2a50[8]);var fs=require(_0x2a50[9]);var _=require(_0x2a50[10]);var squel=require(_0x2a50[11]);var crypto=require(_0x2a50[12]);var jsforce=require(_0x2a50[13]);var toCsv=require(_0x2a50[14]);var qs=require(_0x2a50[15]);var logger=require(_0x2a50[17])(_0x2a50[16]);var utils=require(_0x2a50[18]);var config=require(_0x2a50[19]);var db=require(_0x2a50[21])[_0x2a50[20]];function respondWithStatusCode(_0x3a8cx15,_0x3a8cx16,_0x3a8cx17){_0x3a8cx16= _0x3a8cx16|| 204;return function(_0x3a8cx18){if(_0x3a8cx18){logger[_0x2a50[24]](_0x2a50[22],_0x3a8cx17,_0x3a8cx16,_0x2a50[23]);logger[_0x2a50[26]](_0x2a50[25],_0x3a8cx17,_0x3a8cx16,_0x2a50[23]);return _0x3a8cx15[_0x2a50[27]](_0x3a8cx16)};return _0x3a8cx15[_0x2a50[29]](304)[_0x2a50[28]]()}}function respondWithResult(_0x3a8cx15,_0x3a8cx16,_0x3a8cx17){_0x3a8cx16= _0x3a8cx16|| 200;return function(_0x3a8cx18){if(_0x3a8cx18){logger[_0x2a50[24]](_0x2a50[22],_0x3a8cx17,_0x3a8cx16,_0x2a50[30]);logger[_0x2a50[26]](_0x2a50[25],_0x3a8cx17,_0x3a8cx16,_0x2a50[30],JSON[_0x2a50[31]](_0x3a8cx18));return _0x3a8cx15[_0x2a50[29]](_0x3a8cx16)[_0x2a50[32]](_0x3a8cx18)};return _0x3a8cx15[_0x2a50[29]](304)[_0x2a50[28]]()}}function respondWithFilteredResult(_0x3a8cx15,_0x3a8cx1b,_0x3a8cx17){return function(_0x3a8cx18){if(_0x3a8cx18){var _0x3a8cx1c=_0x3a8cx18[_0x2a50[33]],_0x3a8cx1d=_0x3a8cx1b[_0x2a50[34]],_0x3a8cx1e=_0x3a8cx1b[_0x2a50[34]]+ _0x3a8cx1b[_0x2a50[35]],_0x3a8cx16;if(_0x3a8cx1e>= _0x3a8cx1c){_0x3a8cx1e= _0x3a8cx1c;_0x3a8cx16= 200}else {_0x3a8cx16= 206};_0x3a8cx15[_0x2a50[29]](_0x3a8cx16);logger[_0x2a50[24]](_0x2a50[22],_0x3a8cx17,_0x3a8cx16,_0x2a50[36]);logger[_0x2a50[26]](_0x2a50[25],_0x3a8cx17,_0x3a8cx16,_0x2a50[30],JSON[_0x2a50[31]](_0x3a8cx18));return _0x3a8cx15[_0x2a50[40]](_0x2a50[37],_0x3a8cx1d+ _0x2a50[38]+ _0x3a8cx1e+ _0x2a50[39]+ _0x3a8cx1c)[_0x2a50[32]](_0x3a8cx18)};return null}}function patchUpdates(_0x3a8cx20){return function(_0x3a8cx18){try{jsonpatch[_0x2a50[41]](_0x3a8cx18,_0x3a8cx20,true)}catch(err){return BPromise[_0x2a50[42]](err)};return _0x3a8cx18[_0x2a50[43]]()}}function saveUpdates(_0x3a8cx22,_0x3a8cx16,_0x3a8cx17){return function(_0x3a8cx18){if(_0x3a8cx18){return _0x3a8cx18[_0x2a50[46]](_0x3a8cx22)[_0x2a50[45]](function(_0x3a8cx23){logger[_0x2a50[24]](_0x2a50[22],_0x3a8cx17,_0x3a8cx16,_0x2a50[44]);logger[_0x2a50[26]](_0x2a50[25],_0x3a8cx17,_0x3a8cx16,_0x2a50[44],JSON[_0x2a50[31]](_0x3a8cx18));return _0x3a8cx23})};return null}}function removeEntity(_0x3a8cx15,_0x3a8cx16,_0x3a8cx17){return function(_0x3a8cx18){if(_0x3a8cx18){return _0x3a8cx18[_0x2a50[48]]()[_0x2a50[45]](function(){logger[_0x2a50[24]](_0x2a50[22],_0x3a8cx17,_0x3a8cx16,_0x2a50[47]);logger[_0x2a50[26]](_0x2a50[25],_0x3a8cx17,_0x3a8cx16,_0x2a50[47],JSON[_0x2a50[31]](_0x3a8cx18));_0x3a8cx15[_0x2a50[29]](204)[_0x2a50[28]]()})}}}function handleEntityNotFound(_0x3a8cx15,_0x3a8cx16,_0x3a8cx17){return function(_0x3a8cx18){if(!_0x3a8cx18){logger[_0x2a50[50]](_0x2a50[22],_0x3a8cx17,404,_0x2a50[49]);_0x3a8cx15[_0x2a50[29]](404)[_0x2a50[28]]();return null};return _0x3a8cx18}}function handleError(_0x3a8cx15,_0x3a8cx16,_0x3a8cx17){_0x3a8cx16= _0x3a8cx16|| 500;return function(_0x3a8cx27){logger[_0x2a50[50]](_0x2a50[22],_0x3a8cx17,_0x3a8cx16,JSON[_0x2a50[31]](_0x3a8cx27));delete _0x3a8cx27[_0x2a50[51]];_0x3a8cx15[_0x2a50[29]](_0x3a8cx16)[_0x2a50[52]](_0x3a8cx27)}}exports[_0x2a50[53]]= function(_0x3a8cx28,_0x3a8cx15){var _0x3a8cx1b={},_0x3a8cx29={};_0x3a8cx29[_0x2a50[54]]= _[_0x2a50[57]](db[_0x2a50[56]][_0x2a50[55]]);_0x3a8cx29[_0x2a50[58]]= _[_0x2a50[57]](_0x3a8cx28[_0x2a50[58]]);_0x3a8cx29[_0x2a50[59]]= _[_0x2a50[60]](_0x3a8cx29[_0x2a50[54]],_0x3a8cx29[_0x2a50[58]]);_0x3a8cx1b[_0x2a50[61]]= _[_0x2a50[60]](_0x3a8cx29[_0x2a50[54]],qs[_0x2a50[62]](_0x3a8cx28[_0x2a50[58]][_0x2a50[62]]));_0x3a8cx1b[_0x2a50[61]]= (_0x3a8cx1b[_0x2a50[61]][_0x2a50[63]])?_0x3a8cx1b[_0x2a50[61]]:_0x3a8cx29[_0x2a50[54]];if(!_0x3a8cx28[_0x2a50[58]][_0x2a50[65]](_0x2a50[64])){_0x3a8cx1b[_0x2a50[35]]= qs[_0x2a50[35]](_0x3a8cx28[_0x2a50[58]][_0x2a50[35]]);_0x3a8cx1b[_0x2a50[34]]= qs[_0x2a50[34]](_0x3a8cx28[_0x2a50[58]][_0x2a50[34]])};_0x3a8cx1b[_0x2a50[66]]= qs[_0x2a50[67]](_0x3a8cx28[_0x2a50[58]][_0x2a50[67]]);_0x3a8cx1b[_0x2a50[68]]= qs[_0x2a50[59]](_[_0x2a50[69]](_0x3a8cx28[_0x2a50[58]],_0x3a8cx29[_0x2a50[59]]));if(_0x3a8cx28[_0x2a50[58]][_0x2a50[70]]){_0x3a8cx1b[_0x2a50[68]]= _[_0x2a50[73]](_0x3a8cx1b[_0x2a50[68]],{$or:_[_0x2a50[72]](_0x3a8cx1b[_0x2a50[61]],function(_0x3a8cx2a){var _0x3a8cx2b={};_0x3a8cx2b[_0x3a8cx2a]= {$like:_0x2a50[71]+ _0x3a8cx28[_0x2a50[58]][_0x2a50[70]]+ _0x2a50[71]};return _0x3a8cx2b})})};_0x3a8cx1b= _[_0x2a50[73]]({},_0x3a8cx1b,_0x3a8cx28[_0x2a50[74]]);return db[_0x2a50[56]][_0x2a50[76]](_0x3a8cx1b)[_0x2a50[45]](respondWithFilteredResult(_0x3a8cx15,_0x3a8cx1b,_0x2a50[53]))[_0x2a50[75]](handleError(_0x3a8cx15,null,_0x2a50[53]))};exports[_0x2a50[77]]= function(_0x3a8cx28,_0x3a8cx15){var _0x3a8cx1b={raw:true,where:{id:_0x3a8cx28[_0x2a50[79]][_0x2a50[78]]}},_0x3a8cx29={};_0x3a8cx29[_0x2a50[54]]= _[_0x2a50[57]](db[_0x2a50[56]][_0x2a50[55]]);_0x3a8cx29[_0x2a50[58]]= _[_0x2a50[57]](_0x3a8cx28[_0x2a50[58]]);_0x3a8cx29[_0x2a50[59]]= _[_0x2a50[60]](_0x3a8cx29[_0x2a50[54]],_0x3a8cx29[_0x2a50[58]]);_0x3a8cx1b[_0x2a50[61]]= _[_0x2a50[60]](_0x3a8cx29[_0x2a50[54]],qs[_0x2a50[62]](_0x3a8cx28[_0x2a50[58]][_0x2a50[62]]));_0x3a8cx1b[_0x2a50[61]]= (_0x3a8cx1b[_0x2a50[61]][_0x2a50[63]])?_0x3a8cx1b[_0x2a50[61]]:_0x3a8cx29[_0x2a50[54]];_0x3a8cx1b= _[_0x2a50[73]]({},_0x3a8cx1b,_0x3a8cx28[_0x2a50[74]]);return db[_0x2a50[56]][_0x2a50[80]](_0x3a8cx1b)[_0x2a50[45]](handleEntityNotFound(_0x3a8cx15,null,_0x2a50[77]))[_0x2a50[45]](respondWithResult(_0x3a8cx15,null,_0x2a50[77]))[_0x2a50[75]](handleError(_0x3a8cx15,null,_0x2a50[77]))};exports[_0x2a50[81]]= function(_0x3a8cx28,_0x3a8cx15){return db[_0x2a50[56]][_0x2a50[81]](_0x3a8cx28[_0x2a50[82]],{})[_0x2a50[45]](respondWithResult(_0x3a8cx15,201,_0x2a50[81]))[_0x2a50[75]](handleError(_0x3a8cx15,null,_0x2a50[81]))};exports[_0x2a50[46]]= function(_0x3a8cx28,_0x3a8cx15){if(_0x3a8cx28[_0x2a50[82]][_0x2a50[78]]){delete _0x3a8cx28[_0x2a50[82]][_0x2a50[78]]};return db[_0x2a50[56]][_0x2a50[80]]({where:{id:_0x3a8cx28[_0x2a50[79]][_0x2a50[78]]}})[_0x2a50[45]](handleEntityNotFound(_0x3a8cx15,null,_0x2a50[46]))[_0x2a50[45]](saveUpdates(_0x3a8cx28[_0x2a50[82]],null,_0x2a50[46]))[_0x2a50[45]](respondWithResult(_0x3a8cx15,null,_0x2a50[46]))[_0x2a50[75]](handleError(_0x3a8cx15,null,_0x2a50[46]))};exports[_0x2a50[48]]= function(_0x3a8cx28,_0x3a8cx15){return db[_0x2a50[56]][_0x2a50[80]]({where:{id:_0x3a8cx28[_0x2a50[79]][_0x2a50[78]]}})[_0x2a50[45]](handleEntityNotFound(_0x3a8cx15,null,_0x2a50[48]))[_0x2a50[45]](removeEntity(_0x3a8cx15,null,_0x2a50[48]))[_0x2a50[75]](handleError(_0x3a8cx15,null,_0x2a50[48]))}
\ No newline at end of file
diff --git a/server/api/voiceDisposition/voiceDisposition.model.js b/server/api/voiceDisposition/voiceDisposition.model.js
new file mode 100644 (file)
index 0000000..8ecb485
--- /dev/null
@@ -0,0 +1 @@
+var _0x604a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x76\x6F\x69\x63\x65\x5F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0x604a[0];var _=require(_0x604a[1]);var util=require(_0x604a[2]);var logger=require(_0x604a[4])(_0x604a[3]);var attributes=require(_0x604a[5]);module[_0x604a[6]]= function(_0x8779x5,_0x8779x6){return _0x8779x5[_0x604a[9]](_0x604a[7],attributes,{tableName:_0x604a[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/voiceDisposition/voiceDisposition.rpc.js b/server/api/voiceDisposition/voiceDisposition.rpc.js
new file mode 100644 (file)
index 0000000..b9a07d0
--- /dev/null
@@ -0,0 +1 @@
+var _0x363f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x363f[0];var _=require(_0x363f[1]);var util=require(_0x363f[2]);var moment=require(_0x363f[3]);var BPromise=require(_0x363f[4]);var db=require(_0x363f[6])[_0x363f[5]];var utils=require(_0x363f[7]);var logger=require(_0x363f[9])(_0x363f[8]);var jayson=require(_0x363f[10]);var client=jayson[_0x363f[12]][_0x363f[11]]({port:9002});function respondWithRpcPromise(_0x8695xb,_0x8695xc,_0x8695xd){return  new BPromise(function(_0x8695xe,_0x8695xf){return client[_0x363f[25]](_0x8695xb,_0x8695xd)[_0x363f[24]](function(_0x8695x11){logger[_0x363f[17]](_0x363f[13],_0x8695xc,_0x363f[16]);logger[_0x363f[20]](_0x363f[18],_0x8695xc,_0x363f[16],JSON[_0x363f[19]](_0x8695x11));if(_0x8695x11[_0x363f[14]]){if(_0x8695x11[_0x363f[14]][_0x363f[21]]=== 500){logger[_0x363f[14]](_0x363f[13],_0x8695xc,_0x8695x11[_0x363f[14]][_0x363f[22]]);return _0x8695xf(_0x8695x11[_0x363f[14]][_0x363f[22]])};logger[_0x363f[14]](_0x363f[13],_0x8695xc,_0x8695x11[_0x363f[14]][_0x363f[22]]);return _0x8695xe(_0x8695x11[_0x363f[14]][_0x363f[22]])}else {logger[_0x363f[17]](_0x363f[13],_0x8695xc,_0x363f[16]);_0x8695xe(_0x8695x11[_0x363f[23]][_0x363f[22]])}})[_0x363f[15]](function(_0x8695x10){logger[_0x363f[14]](_0x363f[13],_0x8695xc,_0x8695x10);_0x8695xf(_0x8695x10)})})}
\ No newline at end of file
diff --git a/server/api/voiceExtension/index.js b/server/api/voiceExtension/index.js
new file mode 100644 (file)
index 0000000..69d52f7
--- /dev/null
@@ -0,0 +1 @@
+var _0x39db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x2F\x3A\x69\x64\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x39db[0];var multer=require(_0x39db[1]);var util=require(_0x39db[2]);var path=require(_0x39db[3]);var express=require(_0x39db[4]);var router=express.Router();var auth=require(_0x39db[5]);var config=require(_0x39db[6]);var controller=require(_0x39db[7]);router[_0x39db[11]](_0x39db[8],auth[_0x39db[9]](),controller[_0x39db[10]]);router[_0x39db[11]](_0x39db[12],auth[_0x39db[9]](),controller[_0x39db[13]]);router[_0x39db[15]](_0x39db[8],auth[_0x39db[9]](),controller[_0x39db[14]]);router[_0x39db[15]](_0x39db[16],auth[_0x39db[9]](),controller[_0x39db[17]]);router[_0x39db[19]](_0x39db[12],auth[_0x39db[9]](),controller[_0x39db[18]]);router[_0x39db[21]](_0x39db[12],auth[_0x39db[9]](),controller[_0x39db[20]]);module[_0x39db[22]]= router
\ No newline at end of file
diff --git a/server/api/voiceExtension/voiceExtension.attributes.js b/server/api/voiceExtension/voiceExtension.attributes.js
new file mode 100644 (file)
index 0000000..1487cde
--- /dev/null
@@ -0,0 +1 @@
+var _0x3b96=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x63\x6F\x6D\x70\x6F\x73\x69\x74\x65\x49\x6E\x64\x65\x78","\x31","\x2D\x2D","\x4E\x6F\x4F\x70","","\x69\x6E\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x73\x79\x73\x74\x65\x6D","\x61\x6E\x79","\x2A\x2C\x2A\x2C\x2A\x2C\x2A","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E","\x77\x61\x76"];_0x3b96[0];var Sequelize=require(_0x3b96[1]);module[_0x3b96[2]]= {context:{type:Sequelize[_0x3b96[3]],allowNull:false,unique:_0x3b96[4],validate:{notEmpty:true,is:/[A-Za-z0-9._\+*!\-\[\]]+$/i}},exten:{type:Sequelize[_0x3b96[3]],allowNull:false,unique:_0x3b96[4]},priority:{type:Sequelize[_0x3b96[3]],allowNull:false,defaultValue:_0x3b96[5],unique:_0x3b96[4]},tag:{type:Sequelize[_0x3b96[3]],allowNull:false,defaultValue:_0x3b96[6]},app:{type:Sequelize[_0x3b96[3]],allowNull:false,defaultValue:_0x3b96[7]},appdata:{type:Sequelize.STRING(4096),allowNull:true,defaultValue:_0x3b96[8]},type:{type:Sequelize.ENUM(_0x3b96[9],_0x3b96[10],_0x3b96[11],_0x3b96[12],_0x3b96[13],_0x3b96[14],_0x3b96[15]),allowNull:false},description:{type:Sequelize[_0x3b96[3]]},interval:{type:Sequelize[_0x3b96[3]],allowNull:false,defaultValue:_0x3b96[16]},IntervalId:{type:Sequelize[_0x3b96[17]]},isApp:{type:Sequelize[_0x3b96[18]],allowNull:false,defaultValue:false},appType:{type:Sequelize[_0x3b96[3]],defaultValue:null},callerID:{type:Sequelize[_0x3b96[3]],allowNull:true},record:{type:Sequelize[_0x3b96[18]],defaultValue:false},cutdigits:{type:Sequelize[_0x3b96[17]]},recordingFormat:{type:Sequelize[_0x3b96[3]],defaultValue:_0x3b96[19]},answer:{type:Sequelize[_0x3b96[18]],defaultValue:true}}
\ No newline at end of file
diff --git a/server/api/voiceExtension/voiceExtension.controller.js b/server/api/voiceExtension/voiceExtension.controller.js
new file mode 100644 (file)
index 0000000..8e81208
--- /dev/null
@@ -0,0 +1 @@
+var _0x49ee=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x74\x79\x70\x65","\x62\x6F\x64\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x65\x78\x74\x65\x6E","\x5F","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x63\x6F\x6E\x63\x61\x74","\x63\x6F\x6E\x74\x65\x78\x74","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x61\x64\x64\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x63\x61\x73\x74\x28\x70\x72\x69\x6F\x72\x69\x74\x79\x20\x61\x73\x20\x75\x6E\x73\x69\x67\x6E\x65\x64\x29","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x49\x64","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x49ee[0];var jsonpatch=require(_0x49ee[1]);var rp=require(_0x49ee[2]);var moment=require(_0x49ee[3]);var BPromise=require(_0x49ee[4]);var util=require(_0x49ee[5]);var path=require(_0x49ee[6]);var sox=require(_0x49ee[7]);var ejs=require(_0x49ee[8]);var fs=require(_0x49ee[9]);var _=require(_0x49ee[10]);var squel=require(_0x49ee[11]);var crypto=require(_0x49ee[12]);var jsforce=require(_0x49ee[13]);var toCsv=require(_0x49ee[14]);var qs=require(_0x49ee[15]);var logger=require(_0x49ee[17])(_0x49ee[16]);var utils=require(_0x49ee[18]);var config=require(_0x49ee[19]);var db=require(_0x49ee[21])[_0x49ee[20]];function respondWithStatusCode(_0xac33x15,_0xac33x16,_0xac33x17){_0xac33x16= _0xac33x16|| 204;return function(_0xac33x18){if(_0xac33x18){logger[_0x49ee[24]](_0x49ee[22],_0xac33x17,_0xac33x16,_0x49ee[23]);logger[_0x49ee[26]](_0x49ee[25],_0xac33x17,_0xac33x16,_0x49ee[23]);return _0xac33x15[_0x49ee[27]](_0xac33x16)};return _0xac33x15[_0x49ee[29]](304)[_0x49ee[28]]()}}function respondWithResult(_0xac33x15,_0xac33x16,_0xac33x17){_0xac33x16= _0xac33x16|| 200;return function(_0xac33x18){if(_0xac33x18){logger[_0x49ee[24]](_0x49ee[22],_0xac33x17,_0xac33x16,_0x49ee[30]);logger[_0x49ee[26]](_0x49ee[25],_0xac33x17,_0xac33x16,_0x49ee[30],JSON[_0x49ee[31]](_0xac33x18));return _0xac33x15[_0x49ee[29]](_0xac33x16)[_0x49ee[32]](_0xac33x18)};return _0xac33x15[_0x49ee[29]](304)[_0x49ee[28]]()}}function respondWithFilteredResult(_0xac33x15,_0xac33x1b,_0xac33x17){return function(_0xac33x18){if(_0xac33x18){var _0xac33x1c=_0xac33x18[_0x49ee[33]],_0xac33x1d=_0xac33x1b[_0x49ee[34]],_0xac33x1e=_0xac33x1b[_0x49ee[34]]+ _0xac33x1b[_0x49ee[35]],_0xac33x16;if(_0xac33x1e>= _0xac33x1c){_0xac33x1e= _0xac33x1c;_0xac33x16= 200}else {_0xac33x16= 206};_0xac33x15[_0x49ee[29]](_0xac33x16);logger[_0x49ee[24]](_0x49ee[22],_0xac33x17,_0xac33x16,_0x49ee[36]);logger[_0x49ee[26]](_0x49ee[25],_0xac33x17,_0xac33x16,_0x49ee[30],JSON[_0x49ee[31]](_0xac33x18));return _0xac33x15[_0x49ee[40]](_0x49ee[37],_0xac33x1d+ _0x49ee[38]+ _0xac33x1e+ _0x49ee[39]+ _0xac33x1c)[_0x49ee[32]](_0xac33x18)};return null}}function patchUpdates(_0xac33x20){return function(_0xac33x18){try{jsonpatch[_0x49ee[41]](_0xac33x18,_0xac33x20,true)}catch(err){return BPromise[_0x49ee[42]](err)};return _0xac33x18[_0x49ee[43]]()}}function saveUpdates(_0xac33x22,_0xac33x16,_0xac33x17){return function(_0xac33x18){if(_0xac33x18){return _0xac33x18[_0x49ee[46]](_0xac33x22)[_0x49ee[45]](function(_0xac33x23){logger[_0x49ee[24]](_0x49ee[22],_0xac33x17,_0xac33x16,_0x49ee[44]);logger[_0x49ee[26]](_0x49ee[25],_0xac33x17,_0xac33x16,_0x49ee[44],JSON[_0x49ee[31]](_0xac33x18));return _0xac33x23})};return null}}function removeEntity(_0xac33x15,_0xac33x16,_0xac33x17){return function(_0xac33x18){if(_0xac33x18){return _0xac33x18[_0x49ee[48]]()[_0x49ee[45]](function(){logger[_0x49ee[24]](_0x49ee[22],_0xac33x17,_0xac33x16,_0x49ee[47]);logger[_0x49ee[26]](_0x49ee[25],_0xac33x17,_0xac33x16,_0x49ee[47],JSON[_0x49ee[31]](_0xac33x18));_0xac33x15[_0x49ee[29]](204)[_0x49ee[28]]()})}}}function handleEntityNotFound(_0xac33x15,_0xac33x16,_0xac33x17){return function(_0xac33x18){if(!_0xac33x18){logger[_0x49ee[50]](_0x49ee[22],_0xac33x17,404,_0x49ee[49]);_0xac33x15[_0x49ee[29]](404)[_0x49ee[28]]();return null};return _0xac33x18}}function handleError(_0xac33x15,_0xac33x16,_0xac33x17){_0xac33x16= _0xac33x16|| 500;return function(_0xac33x27){logger[_0x49ee[50]](_0x49ee[22],_0xac33x17,_0xac33x16,JSON[_0x49ee[31]](_0xac33x27));delete _0xac33x27[_0x49ee[51]];_0xac33x15[_0x49ee[29]](_0xac33x16)[_0x49ee[52]](_0xac33x27)}}exports[_0x49ee[53]]= function(_0xac33x28,_0xac33x15){var _0xac33x1b={},_0xac33x29={};_0xac33x29[_0x49ee[54]]= _[_0x49ee[57]](db[_0x49ee[56]][_0x49ee[55]]);_0xac33x29[_0x49ee[58]]= _[_0x49ee[57]](_0xac33x28[_0x49ee[58]]);_0xac33x29[_0x49ee[59]]= _[_0x49ee[60]](_0xac33x29[_0x49ee[54]],_0xac33x29[_0x49ee[58]]);_0xac33x1b[_0x49ee[61]]= _[_0x49ee[60]](_0xac33x29[_0x49ee[54]],qs[_0x49ee[62]](_0xac33x28[_0x49ee[58]][_0x49ee[62]]));_0xac33x1b[_0x49ee[61]]= (_0xac33x1b[_0x49ee[61]][_0x49ee[63]])?_0xac33x1b[_0x49ee[61]]:_0xac33x29[_0x49ee[54]];if(!_0xac33x28[_0x49ee[58]][_0x49ee[65]](_0x49ee[64])){_0xac33x1b[_0x49ee[35]]= qs[_0x49ee[35]](_0xac33x28[_0x49ee[58]][_0x49ee[35]]);_0xac33x1b[_0x49ee[34]]= qs[_0x49ee[34]](_0xac33x28[_0x49ee[58]][_0x49ee[34]])};_0xac33x1b[_0x49ee[66]]= qs[_0x49ee[67]](_0xac33x28[_0x49ee[58]][_0x49ee[67]]);_0xac33x1b[_0x49ee[68]]= qs[_0x49ee[59]](_[_0x49ee[69]](_0xac33x28[_0x49ee[58]],_0xac33x29[_0x49ee[59]]));if(_0xac33x28[_0x49ee[58]][_0x49ee[70]]){_0xac33x1b[_0x49ee[68]]= _[_0x49ee[73]](_0xac33x1b[_0x49ee[68]],{$or:_[_0x49ee[72]](_0xac33x1b[_0x49ee[61]],function(_0xac33x2a){var _0xac33x2b={};_0xac33x2b[_0xac33x2a]= {$like:_0x49ee[71]+ _0xac33x28[_0x49ee[58]][_0x49ee[70]]+ _0x49ee[71]};return _0xac33x2b})})};_0xac33x1b= _[_0x49ee[73]]({},_0xac33x1b,_0xac33x28[_0x49ee[74]]);return db[_0x49ee[56]][_0x49ee[76]](_0xac33x1b)[_0x49ee[45]](respondWithFilteredResult(_0xac33x15,_0xac33x1b,_0x49ee[53]))[_0x49ee[75]](handleError(_0xac33x15,null,_0x49ee[53]))};exports[_0x49ee[77]]= function(_0xac33x28,_0xac33x15){var _0xac33x1b={raw:false,where:{id:_0xac33x28[_0x49ee[79]][_0x49ee[78]]}},_0xac33x29={};_0xac33x29[_0x49ee[54]]= _[_0x49ee[57]](db[_0x49ee[56]][_0x49ee[55]]);_0xac33x29[_0x49ee[58]]= _[_0x49ee[57]](_0xac33x28[_0x49ee[58]]);_0xac33x29[_0x49ee[59]]= _[_0x49ee[60]](_0xac33x29[_0x49ee[54]],_0xac33x29[_0x49ee[58]]);_0xac33x1b[_0x49ee[61]]= _[_0x49ee[60]](_0xac33x29[_0x49ee[54]],qs[_0x49ee[62]](_0xac33x28[_0x49ee[58]][_0x49ee[62]]));_0xac33x1b[_0x49ee[61]]= (_0xac33x1b[_0x49ee[61]][_0x49ee[63]])?_0xac33x1b[_0x49ee[61]]:_0xac33x29[_0x49ee[54]];_0xac33x1b= _[_0x49ee[73]]({},_0xac33x1b,_0xac33x28[_0x49ee[74]]);return db[_0x49ee[56]][_0x49ee[80]](_0xac33x1b)[_0x49ee[45]](handleEntityNotFound(_0xac33x15,null,_0x49ee[77]))[_0x49ee[45]](respondWithResult(_0xac33x15,null,_0x49ee[77]))[_0x49ee[75]](handleError(_0xac33x15,null,_0x49ee[77]))};exports[_0x49ee[48]]= function(_0xac33x28,_0xac33x15){return db[_0x49ee[56]][_0x49ee[80]]({where:{id:_0xac33x28[_0x49ee[79]][_0x49ee[78]]}})[_0x49ee[45]](handleEntityNotFound(_0xac33x15,null,_0x49ee[48]))[_0x49ee[45]](removeEntity(_0xac33x15,null,_0x49ee[48]))[_0x49ee[75]](handleError(_0xac33x15,null,_0x49ee[48]))};exports[_0x49ee[81]]= function(_0xac33x28,_0xac33x15){if(_0xac33x28[_0x49ee[83]][_0x49ee[82]]=== _0x49ee[84]&&  !_[_0x49ee[87]](_0xac33x28[_0x49ee[83]][_0x49ee[85]],_0x49ee[86])){_0xac33x28[_0x49ee[83]][_0x49ee[85]]= _0x49ee[86][_0x49ee[88]](_0xac33x28[_0x49ee[83]][_0x49ee[85]])};return db[_0x49ee[56]][_0x49ee[81]](_0xac33x28[_0x49ee[83]],{raw:false})[_0x49ee[45]](respondWithResult(_0xac33x15,201,_0x49ee[81]))[_0x49ee[75]](handleError(_0xac33x15,null,_0x49ee[81]))};exports[_0x49ee[46]]= function(_0xac33x28,_0xac33x15){if(_0xac33x28[_0x49ee[83]][_0x49ee[78]]){delete _0xac33x28[_0x49ee[83]][_0x49ee[78]]};return db[_0x49ee[56]][_0x49ee[80]]({where:{id:_0xac33x28[_0x49ee[79]][_0x49ee[78]]}})[_0x49ee[45]](handleEntityNotFound(_0xac33x15,null,_0x49ee[46]))[_0x49ee[45]](function(_0xac33x18){if(_0xac33x18){return db[_0x49ee[56]][_0x49ee[46]](_[_0x49ee[69]](_0xac33x28[_0x49ee[83]],[_0x49ee[85],_0x49ee[89],_0x49ee[90]]),{where:{context:_0xac33x18[_0x49ee[89]],exten:_0xac33x18[_0x49ee[85]]}})[_0x49ee[45]](function(_0xac33x23){logger[_0x49ee[24]](_0x49ee[22],_0x49ee[46],204,_0x49ee[44]);logger[_0x49ee[26]](_0x49ee[25],_0x49ee[46],204,_0x49ee[44],JSON[_0x49ee[31]](_0xac33x18));return _0xac33x23})};return null})[_0x49ee[45]](respondWithStatusCode(_0xac33x15,null,_0x49ee[46]))[_0x49ee[75]](handleError(_0xac33x15,null,_0x49ee[46]))};exports[_0x49ee[91]]= function(_0xac33x28,_0xac33x15,_0xac33x2c){return db[_0x49ee[56]][_0x49ee[97]]({where:{id:_0xac33x28[_0x49ee[79]][_0x49ee[78]]}})[_0x49ee[45]](handleEntityNotFound(_0xac33x15,null,_0x49ee[91]))[_0x49ee[45]](function(_0xac33x18){if(_0xac33x18){return db[_0x49ee[96]][_0x49ee[95]](function(_0xac33x2d){return db[_0x49ee[56]][_0x49ee[48]]({where:{VoiceExtensionId:_0xac33x28[_0x49ee[79]][_0x49ee[78]]},transaction:_0xac33x2d})[_0x49ee[45]](function(_0xac33x2e){var _0xac33x2f=_[_0x49ee[72]](_0xac33x28[_0x49ee[83]],function(_0xac33x30){_0xac33x30[_0x49ee[93]]= _0xac33x28[_0x49ee[79]][_0x49ee[78]];return _0xac33x30});return db[_0x49ee[56]][_0x49ee[94]](_0xac33x2f,{transaction:_0xac33x2d})})})[_0x49ee[45]](function(){return db[_0x49ee[56]][_0x49ee[76]]({where:{isApp:true,VoiceExtensionId:_0xac33x28[_0x49ee[79]][_0x49ee[78]]},order:_0x49ee[92]})})}})[_0x49ee[45]](respondWithResult(_0xac33x15,null,_0x49ee[91]))[_0x49ee[75]](handleError(_0xac33x15,null,_0x49ee[91]))}
\ No newline at end of file
diff --git a/server/api/voiceExtension/voiceExtension.model.js b/server/api/voiceExtension/voiceExtension.model.js
new file mode 100644 (file)
index 0000000..c54378b
--- /dev/null
@@ -0,0 +1 @@
+var _0xe9fe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x76\x6F\x69\x63\x65\x5F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x64\x65\x66\x69\x6E\x65"];_0xe9fe[0];var _=require(_0xe9fe[1]);var util=require(_0xe9fe[2]);var logger=require(_0xe9fe[4])(_0xe9fe[3]);var attributes=require(_0xe9fe[5]);module[_0xe9fe[6]]= function(_0xbbcax5,_0xbbcax6){return _0xbbcax5[_0xe9fe[9]](_0xe9fe[7],attributes,{tableName:_0xe9fe[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/voiceExtension/voiceExtension.rpc.js b/server/api/voiceExtension/voiceExtension.rpc.js
new file mode 100644 (file)
index 0000000..c059d58
--- /dev/null
@@ -0,0 +1 @@
+var _0xa5fc=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xa5fc[0];var _=require(_0xa5fc[1]);var util=require(_0xa5fc[2]);var moment=require(_0xa5fc[3]);var BPromise=require(_0xa5fc[4]);var db=require(_0xa5fc[6])[_0xa5fc[5]];var utils=require(_0xa5fc[7]);var logger=require(_0xa5fc[9])(_0xa5fc[8]);var jayson=require(_0xa5fc[10]);var client=jayson[_0xa5fc[12]][_0xa5fc[11]]({port:9002});function respondWithRpcPromise(_0x5ffaxb,_0x5ffaxc,_0x5ffaxd){return  new BPromise(function(_0x5ffaxe,_0x5ffaxf){return client[_0xa5fc[25]](_0x5ffaxb,_0x5ffaxd)[_0xa5fc[24]](function(_0x5ffax11){logger[_0xa5fc[17]](_0xa5fc[13],_0x5ffaxc,_0xa5fc[16]);logger[_0xa5fc[20]](_0xa5fc[18],_0x5ffaxc,_0xa5fc[16],JSON[_0xa5fc[19]](_0x5ffax11));if(_0x5ffax11[_0xa5fc[14]]){if(_0x5ffax11[_0xa5fc[14]][_0xa5fc[21]]=== 500){logger[_0xa5fc[14]](_0xa5fc[13],_0x5ffaxc,_0x5ffax11[_0xa5fc[14]][_0xa5fc[22]]);return _0x5ffaxf(_0x5ffax11[_0xa5fc[14]][_0xa5fc[22]])};logger[_0xa5fc[14]](_0xa5fc[13],_0x5ffaxc,_0x5ffax11[_0xa5fc[14]][_0xa5fc[22]]);return _0x5ffaxe(_0x5ffax11[_0xa5fc[14]][_0xa5fc[22]])}else {logger[_0xa5fc[17]](_0xa5fc[13],_0x5ffaxc,_0xa5fc[16]);_0x5ffaxe(_0x5ffax11[_0xa5fc[23]][_0xa5fc[22]])}})[_0xa5fc[15]](function(_0x5ffax10){logger[_0xa5fc[14]](_0xa5fc[13],_0x5ffaxc,_0x5ffax10);_0x5ffaxf(_0x5ffax10)})})}
\ No newline at end of file
diff --git a/server/api/voiceMail/index.js b/server/api/voiceMail/index.js
new file mode 100644 (file)
index 0000000..2998294
--- /dev/null
@@ -0,0 +1 @@
+var _0x336e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x336e[0];var multer=require(_0x336e[1]);var util=require(_0x336e[2]);var path=require(_0x336e[3]);var express=require(_0x336e[4]);var router=express.Router();var auth=require(_0x336e[5]);var config=require(_0x336e[6]);var controller=require(_0x336e[7]);router[_0x336e[11]](_0x336e[8],auth[_0x336e[9]](),controller[_0x336e[10]]);router[_0x336e[11]](_0x336e[12],auth[_0x336e[9]](),controller[_0x336e[13]]);router[_0x336e[11]](_0x336e[14],auth[_0x336e[9]](),controller[_0x336e[15]]);router[_0x336e[17]](_0x336e[8],auth[_0x336e[9]](),controller[_0x336e[16]]);router[_0x336e[19]](_0x336e[12],auth[_0x336e[9]](),controller[_0x336e[18]]);router[_0x336e[21]](_0x336e[12],auth[_0x336e[9]](),controller[_0x336e[20]]);module[_0x336e[22]]= router
\ No newline at end of file
diff --git a/server/api/voiceMail/voiceMail.attributes.js b/server/api/voiceMail/voiceMail.attributes.js
new file mode 100644 (file)
index 0000000..bfa38e8
--- /dev/null
@@ -0,0 +1 @@
+var _0x184d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x6F\x6E\x74\x65\x73\x74\x5F\x6D\x61\x69\x6C\x62\x6F\x78","","\x63\x65\x6E\x74\x72\x61\x6C","\x79\x65\x73","\x6E\x6F","\x54\x49\x4E\x59\x49\x4E\x54\x28\x34\x29","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50"];_0x184d[0];var Sequelize=require(_0x184d[1]);module[_0x184d[2]]= {customer_id:{type:Sequelize[_0x184d[3]]},context:{type:Sequelize[_0x184d[3]],defaultValue:_0x184d[4],unique:_0x184d[5]},mailbox:{type:Sequelize[_0x184d[3]],defaultValue:_0x184d[6],allowNull:false,unique:_0x184d[5]},password:{type:Sequelize[_0x184d[3]]},fullname:{type:Sequelize[_0x184d[3]]},email:{type:Sequelize[_0x184d[3]],validate:{isEmail:true}},pager:{type:Sequelize[_0x184d[3]]},tz:{type:Sequelize[_0x184d[3]],defaultValue:_0x184d[7]},attach:{type:Sequelize.ENUM(_0x184d[8],_0x184d[9]),defaultValue:_0x184d[8],allowNull:false},saycid:{type:Sequelize.ENUM(_0x184d[8],_0x184d[9]),defaultValue:_0x184d[8],allowNull:false},dialout:{type:Sequelize[_0x184d[3]]},callback:{type:Sequelize[_0x184d[3]]},review:{type:Sequelize.ENUM(_0x184d[8],_0x184d[9]),defaultValue:_0x184d[9],allowNull:false},operator:{type:Sequelize.ENUM(_0x184d[8],_0x184d[9]),defaultValue:_0x184d[9],allowNull:false},envelope:{type:Sequelize.ENUM(_0x184d[8],_0x184d[9]),defaultValue:_0x184d[9],allowNull:false},sayduration:{type:Sequelize.ENUM(_0x184d[8],_0x184d[9]),defaultValue:_0x184d[9],allowNull:false},saydurationm:{type:_0x184d[10],defaultValue:1,allowNull:false},sendvoicemail:{type:Sequelize.ENUM(_0x184d[8],_0x184d[9]),defaultValue:_0x184d[9],allowNull:false},delete:{type:Sequelize.ENUM(_0x184d[8],_0x184d[9]),defaultValue:_0x184d[9],allowNull:false},nextaftercmd:{type:Sequelize.ENUM(_0x184d[8],_0x184d[9]),defaultValue:_0x184d[8],allowNull:false},forcename:{type:Sequelize.ENUM(_0x184d[8],_0x184d[9]),defaultValue:_0x184d[9],allowNull:false},forcegreetings:{type:Sequelize.ENUM(_0x184d[8],_0x184d[9]),defaultValue:_0x184d[9],allowNull:false},hidefromdir:{type:Sequelize.ENUM(_0x184d[8],_0x184d[9]),defaultValue:_0x184d[8],allowNull:false},stamp:{type:_0x184d[11]},emailsubject:{type:Sequelize[_0x184d[3]]},emailbody:{type:Sequelize[_0x184d[3]]},name:{type:Sequelize[_0x184d[3]]},maxsecs:{type:Sequelize.INTEGER(255),defaultValue:180,allowNull:false},maxmsg:{type:Sequelize.INTEGER(255),defaultValue:100,allowNull:false}}
\ No newline at end of file
diff --git a/server/api/voiceMail/voiceMail.controller.js b/server/api/voiceMail/voiceMail.controller.js
new file mode 100644 (file)
index 0000000..0093b3a
--- /dev/null
@@ -0,0 +1 @@
+var _0x152e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x4D\x65\x73\x73\x61\x67\x65\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6D\x61\x69\x6C\x62\x6F\x78","\x66\x69\x6E\x64\x4F\x6E\x65"];_0x152e[0];var jsonpatch=require(_0x152e[1]);var rp=require(_0x152e[2]);var moment=require(_0x152e[3]);var BPromise=require(_0x152e[4]);var util=require(_0x152e[5]);var path=require(_0x152e[6]);var sox=require(_0x152e[7]);var ejs=require(_0x152e[8]);var fs=require(_0x152e[9]);var _=require(_0x152e[10]);var squel=require(_0x152e[11]);var crypto=require(_0x152e[12]);var jsforce=require(_0x152e[13]);var toCsv=require(_0x152e[14]);var qs=require(_0x152e[15]);var logger=require(_0x152e[17])(_0x152e[16]);var utils=require(_0x152e[18]);var config=require(_0x152e[19]);var db=require(_0x152e[21])[_0x152e[20]];function respondWithStatusCode(_0x1fabx15,_0x1fabx16,_0x1fabx17){_0x1fabx16= _0x1fabx16|| 204;return function(_0x1fabx18){if(_0x1fabx18){logger[_0x152e[24]](_0x152e[22],_0x1fabx17,_0x1fabx16,_0x152e[23]);logger[_0x152e[26]](_0x152e[25],_0x1fabx17,_0x1fabx16,_0x152e[23]);return _0x1fabx15[_0x152e[27]](_0x1fabx16)};return _0x1fabx15[_0x152e[29]](304)[_0x152e[28]]()}}function respondWithResult(_0x1fabx15,_0x1fabx16,_0x1fabx17){_0x1fabx16= _0x1fabx16|| 200;return function(_0x1fabx18){if(_0x1fabx18){logger[_0x152e[24]](_0x152e[22],_0x1fabx17,_0x1fabx16,_0x152e[30]);logger[_0x152e[26]](_0x152e[25],_0x1fabx17,_0x1fabx16,_0x152e[30],JSON[_0x152e[31]](_0x1fabx18));return _0x1fabx15[_0x152e[29]](_0x1fabx16)[_0x152e[32]](_0x1fabx18)};return _0x1fabx15[_0x152e[29]](304)[_0x152e[28]]()}}function respondWithFilteredResult(_0x1fabx15,_0x1fabx1b,_0x1fabx17){return function(_0x1fabx18){if(_0x1fabx18){var _0x1fabx1c=_0x1fabx18[_0x152e[33]],_0x1fabx1d=_0x1fabx1b[_0x152e[34]],_0x1fabx1e=_0x1fabx1b[_0x152e[34]]+ _0x1fabx1b[_0x152e[35]],_0x1fabx16;if(_0x1fabx1e>= _0x1fabx1c){_0x1fabx1e= _0x1fabx1c;_0x1fabx16= 200}else {_0x1fabx16= 206};_0x1fabx15[_0x152e[29]](_0x1fabx16);logger[_0x152e[24]](_0x152e[22],_0x1fabx17,_0x1fabx16,_0x152e[36]);logger[_0x152e[26]](_0x152e[25],_0x1fabx17,_0x1fabx16,_0x152e[30],JSON[_0x152e[31]](_0x1fabx18));return _0x1fabx15[_0x152e[40]](_0x152e[37],_0x1fabx1d+ _0x152e[38]+ _0x1fabx1e+ _0x152e[39]+ _0x1fabx1c)[_0x152e[32]](_0x1fabx18)};return null}}function patchUpdates(_0x1fabx20){return function(_0x1fabx18){try{jsonpatch[_0x152e[41]](_0x1fabx18,_0x1fabx20,true)}catch(err){return BPromise[_0x152e[42]](err)};return _0x1fabx18[_0x152e[43]]()}}function saveUpdates(_0x1fabx22,_0x1fabx16,_0x1fabx17){return function(_0x1fabx18){if(_0x1fabx18){return _0x1fabx18[_0x152e[46]](_0x1fabx22)[_0x152e[45]](function(_0x1fabx23){logger[_0x152e[24]](_0x152e[22],_0x1fabx17,_0x1fabx16,_0x152e[44]);logger[_0x152e[26]](_0x152e[25],_0x1fabx17,_0x1fabx16,_0x152e[44],JSON[_0x152e[31]](_0x1fabx18));return _0x1fabx23})};return null}}function removeEntity(_0x1fabx15,_0x1fabx16,_0x1fabx17){return function(_0x1fabx18){if(_0x1fabx18){return _0x1fabx18[_0x152e[48]]()[_0x152e[45]](function(){logger[_0x152e[24]](_0x152e[22],_0x1fabx17,_0x1fabx16,_0x152e[47]);logger[_0x152e[26]](_0x152e[25],_0x1fabx17,_0x1fabx16,_0x152e[47],JSON[_0x152e[31]](_0x1fabx18));_0x1fabx15[_0x152e[29]](204)[_0x152e[28]]()})}}}function handleEntityNotFound(_0x1fabx15,_0x1fabx16,_0x1fabx17){return function(_0x1fabx18){if(!_0x1fabx18){logger[_0x152e[50]](_0x152e[22],_0x1fabx17,404,_0x152e[49]);_0x1fabx15[_0x152e[29]](404)[_0x152e[28]]();return null};return _0x1fabx18}}function handleError(_0x1fabx15,_0x1fabx16,_0x1fabx17){_0x1fabx16= _0x1fabx16|| 500;return function(_0x1fabx27){logger[_0x152e[50]](_0x152e[22],_0x1fabx17,_0x1fabx16,JSON[_0x152e[31]](_0x1fabx27));delete _0x1fabx27[_0x152e[51]];_0x1fabx15[_0x152e[29]](_0x1fabx16)[_0x152e[52]](_0x1fabx27)}}exports[_0x152e[53]]= function(_0x1fabx28,_0x1fabx15){var _0x1fabx1b={},_0x1fabx29={};_0x1fabx29[_0x152e[54]]= _[_0x152e[57]](db[_0x152e[56]][_0x152e[55]]);_0x1fabx29[_0x152e[58]]= _[_0x152e[57]](_0x1fabx28[_0x152e[58]]);_0x1fabx29[_0x152e[59]]= _[_0x152e[60]](_0x1fabx29[_0x152e[54]],_0x1fabx29[_0x152e[58]]);_0x1fabx1b[_0x152e[61]]= _[_0x152e[60]](_0x1fabx29[_0x152e[54]],qs[_0x152e[62]](_0x1fabx28[_0x152e[58]][_0x152e[62]]));_0x1fabx1b[_0x152e[61]]= (_0x1fabx1b[_0x152e[61]][_0x152e[63]])?_0x1fabx1b[_0x152e[61]]:_0x1fabx29[_0x152e[54]];if(!_0x1fabx28[_0x152e[58]][_0x152e[65]](_0x152e[64])){_0x1fabx1b[_0x152e[35]]= qs[_0x152e[35]](_0x1fabx28[_0x152e[58]][_0x152e[35]]);_0x1fabx1b[_0x152e[34]]= qs[_0x152e[34]](_0x1fabx28[_0x152e[58]][_0x152e[34]])};_0x1fabx1b[_0x152e[66]]= qs[_0x152e[67]](_0x1fabx28[_0x152e[58]][_0x152e[67]]);_0x1fabx1b[_0x152e[68]]= qs[_0x152e[59]](_[_0x152e[69]](_0x1fabx28[_0x152e[58]],_0x1fabx29[_0x152e[59]]));if(_0x1fabx28[_0x152e[58]][_0x152e[70]]){_0x1fabx1b[_0x152e[68]]= _[_0x152e[73]](_0x1fabx1b[_0x152e[68]],{$or:_[_0x152e[72]](_0x1fabx1b[_0x152e[61]],function(_0x1fabx2a){var _0x1fabx2b={};_0x1fabx2b[_0x1fabx2a]= {$like:_0x152e[71]+ _0x1fabx28[_0x152e[58]][_0x152e[70]]+ _0x152e[71]};return _0x1fabx2b})})};_0x1fabx1b= _[_0x152e[73]]({},_0x1fabx1b,_0x1fabx28[_0x152e[74]]);return db[_0x152e[56]][_0x152e[76]](_0x1fabx1b)[_0x152e[45]](respondWithFilteredResult(_0x1fabx15,_0x1fabx1b,_0x152e[53]))[_0x152e[75]](handleError(_0x1fabx15,null,_0x152e[53]))};exports[_0x152e[77]]= function(_0x1fabx28,_0x1fabx15){var _0x1fabx1b={raw:true,where:{id:_0x1fabx28[_0x152e[79]][_0x152e[78]]}},_0x1fabx29={};_0x1fabx29[_0x152e[54]]= _[_0x152e[57]](db[_0x152e[56]][_0x152e[55]]);_0x1fabx29[_0x152e[58]]= _[_0x152e[57]](_0x1fabx28[_0x152e[58]]);_0x1fabx29[_0x152e[59]]= _[_0x152e[60]](_0x1fabx29[_0x152e[54]],_0x1fabx29[_0x152e[58]]);_0x1fabx1b[_0x152e[61]]= _[_0x152e[60]](_0x1fabx29[_0x152e[54]],qs[_0x152e[62]](_0x1fabx28[_0x152e[58]][_0x152e[62]]));_0x1fabx1b[_0x152e[61]]= (_0x1fabx1b[_0x152e[61]][_0x152e[63]])?_0x1fabx1b[_0x152e[61]]:_0x1fabx29[_0x152e[54]];_0x1fabx1b= _[_0x152e[73]]({},_0x1fabx1b,_0x1fabx28[_0x152e[74]]);return db[_0x152e[56]][_0x152e[80]](_0x1fabx1b)[_0x152e[45]](handleEntityNotFound(_0x1fabx15,null,_0x152e[77]))[_0x152e[45]](respondWithResult(_0x1fabx15,null,_0x152e[77]))[_0x152e[75]](handleError(_0x1fabx15,null,_0x152e[77]))};exports[_0x152e[81]]= function(_0x1fabx28,_0x1fabx15){return db[_0x152e[56]][_0x152e[81]](_0x1fabx28[_0x152e[82]],{})[_0x152e[45]](respondWithResult(_0x1fabx15,201,_0x152e[81]))[_0x152e[75]](handleError(_0x1fabx15,null,_0x152e[81]))};exports[_0x152e[46]]= function(_0x1fabx28,_0x1fabx15){if(_0x1fabx28[_0x152e[82]][_0x152e[78]]){delete _0x1fabx28[_0x152e[82]][_0x152e[78]]};return db[_0x152e[56]][_0x152e[80]]({where:{id:_0x1fabx28[_0x152e[79]][_0x152e[78]]}})[_0x152e[45]](handleEntityNotFound(_0x1fabx15,null,_0x152e[46]))[_0x152e[45]](saveUpdates(_0x1fabx28[_0x152e[82]],null,_0x152e[46]))[_0x152e[45]](respondWithResult(_0x1fabx15,null,_0x152e[46]))[_0x152e[75]](handleError(_0x1fabx15,null,_0x152e[46]))};exports[_0x152e[48]]= function(_0x1fabx28,_0x1fabx15){return db[_0x152e[56]][_0x152e[80]]({where:{id:_0x1fabx28[_0x152e[79]][_0x152e[78]]}})[_0x152e[45]](handleEntityNotFound(_0x1fabx15,null,_0x152e[48]))[_0x152e[45]](removeEntity(_0x1fabx15,null,_0x152e[48]))[_0x152e[75]](handleError(_0x1fabx15,null,_0x152e[48]))};exports[_0x152e[83]]= function(_0x1fabx28,_0x1fabx15,_0x1fabx2c){return db[_0x152e[56]][_0x152e[86]]({where:{id:_0x1fabx28[_0x152e[79]][_0x152e[78]]}})[_0x152e[45]](handleEntityNotFound(_0x1fabx15,null,_0x152e[83]))[_0x152e[45]](function(_0x1fabx2d){var _0x1fabx1c;var _0x1fabx1b={},_0x1fabx29={};_0x1fabx29[_0x152e[54]]= _[_0x152e[57]](db[_0x152e[84]][_0x152e[55]]);_0x1fabx29[_0x152e[58]]= _[_0x152e[57]](_0x1fabx28[_0x152e[58]]);_0x1fabx29[_0x152e[59]]= _[_0x152e[60]](_0x1fabx29[_0x152e[54]],_0x1fabx29[_0x152e[58]]);_0x1fabx1b[_0x152e[61]]= _[_0x152e[60]](_0x1fabx29[_0x152e[54]],qs[_0x152e[62]](_0x1fabx28[_0x152e[58]][_0x152e[62]]));_0x1fabx1b[_0x152e[61]]= (_0x1fabx1b[_0x152e[61]][_0x152e[63]])?_0x1fabx1b[_0x152e[61]]:_0x1fabx29[_0x152e[54]];if(!_0x1fabx28[_0x152e[58]][_0x152e[65]](_0x152e[64])){_0x1fabx1b[_0x152e[35]]= qs[_0x152e[35]](_0x1fabx28[_0x152e[58]][_0x152e[35]]);_0x1fabx1b[_0x152e[34]]= qs[_0x152e[34]](_0x1fabx28[_0x152e[58]][_0x152e[34]])};_0x1fabx1b[_0x152e[66]]= qs[_0x152e[67]](_0x1fabx28[_0x152e[58]][_0x152e[67]]);_0x1fabx1b[_0x152e[68]]= qs[_0x152e[59]](_[_0x152e[69]](_0x1fabx28[_0x152e[58]],_0x1fabx29[_0x152e[59]]));if(_0x1fabx28[_0x152e[58]][_0x152e[70]]){_0x1fabx1b[_0x152e[68]]= _[_0x152e[73]](_0x1fabx1b[_0x152e[68]],{$or:_[_0x152e[72]](_0x1fabx1b[_0x152e[61]],function(_0x1fabx2a){var _0x1fabx2b={};_0x1fabx2b[_0x1fabx2a]= {$like:_0x152e[71]+ _0x1fabx28[_0x152e[58]][_0x152e[70]]+ _0x152e[71]};return _0x1fabx2b})})};_0x1fabx1b[_0x152e[68]]= _[_0x152e[73]](_0x1fabx1b[_0x152e[68]],{mailboxuser:_0x1fabx2d[_0x152e[85]]});_0x1fabx1b= _[_0x152e[73]]({},_0x1fabx1b,_0x1fabx28[_0x152e[74]]);return db[_0x152e[84]][_0x152e[76]](_0x1fabx1b)[_0x152e[45]](respondWithFilteredResult(_0x1fabx15,_0x1fabx1b,_0x152e[83]))})[_0x152e[75]](handleError(_0x1fabx15,null,_0x152e[83]))}
\ No newline at end of file
diff --git a/server/api/voiceMail/voiceMail.model.js b/server/api/voiceMail/voiceMail.model.js
new file mode 100644 (file)
index 0000000..e8c816b
--- /dev/null
@@ -0,0 +1 @@
+var _0xa904=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x6D\x61\x69\x6C\x62\x6F\x78\x5F\x63\x6F\x6E\x74\x65\x78\x74","\x6D\x61\x69\x6C\x62\x6F\x78","\x63\x6F\x6E\x74\x65\x78\x74","\x64\x65\x66\x69\x6E\x65"];_0xa904[0];var _=require(_0xa904[1]);var util=require(_0xa904[2]);var logger=require(_0xa904[4])(_0xa904[3]);var attributes=require(_0xa904[5]);module[_0xa904[6]]= function(_0x2dd4x5,_0x2dd4x6){return _0x2dd4x5[_0xa904[12]](_0xa904[7],attributes,{tableName:_0xa904[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0xa904[9],"\x66\x69\x65\x6C\x64\x73":[_0xa904[10],_0xa904[11]]}],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/voiceMail/voiceMail.rpc.js b/server/api/voiceMail/voiceMail.rpc.js
new file mode 100644 (file)
index 0000000..ed655c9
--- /dev/null
@@ -0,0 +1 @@
+var _0x2fd9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x2fd9[0];var _=require(_0x2fd9[1]);var util=require(_0x2fd9[2]);var moment=require(_0x2fd9[3]);var BPromise=require(_0x2fd9[4]);var db=require(_0x2fd9[6])[_0x2fd9[5]];var utils=require(_0x2fd9[7]);var logger=require(_0x2fd9[9])(_0x2fd9[8]);var jayson=require(_0x2fd9[10]);var client=jayson[_0x2fd9[12]][_0x2fd9[11]]({port:9002});function respondWithRpcPromise(_0xc360xb,_0xc360xc,_0xc360xd){return  new BPromise(function(_0xc360xe,_0xc360xf){return client[_0x2fd9[25]](_0xc360xb,_0xc360xd)[_0x2fd9[24]](function(_0xc360x11){logger[_0x2fd9[17]](_0x2fd9[13],_0xc360xc,_0x2fd9[16]);logger[_0x2fd9[20]](_0x2fd9[18],_0xc360xc,_0x2fd9[16],JSON[_0x2fd9[19]](_0xc360x11));if(_0xc360x11[_0x2fd9[14]]){if(_0xc360x11[_0x2fd9[14]][_0x2fd9[21]]=== 500){logger[_0x2fd9[14]](_0x2fd9[13],_0xc360xc,_0xc360x11[_0x2fd9[14]][_0x2fd9[22]]);return _0xc360xf(_0xc360x11[_0x2fd9[14]][_0x2fd9[22]])};logger[_0x2fd9[14]](_0x2fd9[13],_0xc360xc,_0xc360x11[_0x2fd9[14]][_0x2fd9[22]]);return _0xc360xe(_0xc360x11[_0x2fd9[14]][_0x2fd9[22]])}else {logger[_0x2fd9[17]](_0x2fd9[13],_0xc360xc,_0x2fd9[16]);_0xc360xe(_0xc360x11[_0x2fd9[23]][_0x2fd9[22]])}})[_0x2fd9[15]](function(_0xc360x10){logger[_0x2fd9[14]](_0x2fd9[13],_0xc360xc,_0xc360x10);_0xc360xf(_0xc360x10)})})}
\ No newline at end of file
diff --git a/server/api/voiceMailMessage/index.js b/server/api/voiceMailMessage/index.js
new file mode 100644 (file)
index 0000000..bd77be8
--- /dev/null
@@ -0,0 +1 @@
+var _0xcb33=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xcb33[0];var multer=require(_0xcb33[1]);var util=require(_0xcb33[2]);var path=require(_0xcb33[3]);var express=require(_0xcb33[4]);var router=express.Router();var auth=require(_0xcb33[5]);var config=require(_0xcb33[6]);var controller=require(_0xcb33[7]);router[_0xcb33[11]](_0xcb33[8],auth[_0xcb33[9]](),controller[_0xcb33[10]]);router[_0xcb33[11]](_0xcb33[12],auth[_0xcb33[9]](),controller[_0xcb33[13]]);router[_0xcb33[11]](_0xcb33[14],controller[_0xcb33[15]]);router[_0xcb33[17]](_0xcb33[8],auth[_0xcb33[9]](),controller[_0xcb33[16]]);router[_0xcb33[19]](_0xcb33[12],auth[_0xcb33[9]](),controller[_0xcb33[18]]);router[_0xcb33[21]](_0xcb33[12],auth[_0xcb33[9]](),controller[_0xcb33[20]]);module[_0xcb33[22]]= router
\ No newline at end of file
diff --git a/server/api/voiceMailMessage/voiceMailMessage.attributes.js b/server/api/voiceMailMessage/voiceMailMessage.attributes.js
new file mode 100644 (file)
index 0000000..d022a7c
--- /dev/null
@@ -0,0 +1 @@
+var _0x3126=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x69\x64","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x53\x54\x52\x49\x4E\x47","","\x6C\x6F\x6E\x67","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50"];_0x3126[0];var Sequelize=require(_0x3126[1]);module[_0x3126[2]]= {name:{type:Sequelize[_0x3126[3]],get:function(_0x2c4cx2){return this[_0x3126[5]](_0x3126[4])}},msgnum:{type:Sequelize.INTEGER(11),defaultValue:0,allowNull:false},dir:{type:Sequelize[_0x3126[6]],defaultValue:_0x3126[7]},context:{type:Sequelize[_0x3126[6]],defaultValue:_0x3126[7]},macrocontext:{type:Sequelize[_0x3126[6]],defaultValue:_0x3126[7]},callerid:{type:Sequelize[_0x3126[6]],defaultValue:_0x3126[7]},origtime:{type:Sequelize[_0x3126[6]],defaultValue:_0x3126[7]},duration:{type:Sequelize[_0x3126[6]],defaultValue:_0x3126[7]},mailboxuser:{type:Sequelize[_0x3126[6]],defaultValue:_0x3126[7]},mailboxcontext:{type:Sequelize[_0x3126[6]],defaultValue:_0x3126[7]},recording:{type:Sequelize.BLOB(_0x3126[8]),defaultValue:null},flag:{type:Sequelize[_0x3126[6]],defaultValue:_0x3126[7]},msg_id:{type:Sequelize[_0x3126[6]],defaultValue:_0x3126[7]},stamp:{type:_0x3126[9],allowNull:false}}
\ No newline at end of file
diff --git a/server/api/voiceMailMessage/voiceMailMessage.controller.js b/server/api/voiceMailMessage/voiceMailMessage.controller.js
new file mode 100644 (file)
index 0000000..f62aa03
--- /dev/null
@@ -0,0 +1 @@
+var _0xb3f2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2E\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x61\x75\x64\x69\x6F\x2F\x77\x61\x76"];_0xb3f2[0];var jsonpatch=require(_0xb3f2[1]);var rp=require(_0xb3f2[2]);var moment=require(_0xb3f2[3]);var BPromise=require(_0xb3f2[4]);var util=require(_0xb3f2[5]);var path=require(_0xb3f2[6]);var sox=require(_0xb3f2[7]);var ejs=require(_0xb3f2[8]);var fs=require(_0xb3f2[9]);var _=require(_0xb3f2[10]);var squel=require(_0xb3f2[11]);var crypto=require(_0xb3f2[12]);var jsforce=require(_0xb3f2[13]);var toCsv=require(_0xb3f2[14]);var qs=require(_0xb3f2[15]);var logger=require(_0xb3f2[17])(_0xb3f2[16]);var utils=require(_0xb3f2[18]);var config=require(_0xb3f2[19]);var db=require(_0xb3f2[21])[_0xb3f2[20]];function respondWithStatusCode(_0x788cx15,_0x788cx16,_0x788cx17){_0x788cx16= _0x788cx16|| 204;return function(_0x788cx18){if(_0x788cx18){logger[_0xb3f2[24]](_0xb3f2[22],_0x788cx17,_0x788cx16,_0xb3f2[23]);logger[_0xb3f2[26]](_0xb3f2[25],_0x788cx17,_0x788cx16,_0xb3f2[23]);return _0x788cx15[_0xb3f2[27]](_0x788cx16)};return _0x788cx15[_0xb3f2[29]](304)[_0xb3f2[28]]()}}function respondWithResult(_0x788cx15,_0x788cx16,_0x788cx17){_0x788cx16= _0x788cx16|| 200;return function(_0x788cx18){if(_0x788cx18){logger[_0xb3f2[24]](_0xb3f2[22],_0x788cx17,_0x788cx16,_0xb3f2[30]);logger[_0xb3f2[26]](_0xb3f2[25],_0x788cx17,_0x788cx16,_0xb3f2[30],JSON[_0xb3f2[31]](_0x788cx18));return _0x788cx15[_0xb3f2[29]](_0x788cx16)[_0xb3f2[32]](_0x788cx18)};return _0x788cx15[_0xb3f2[29]](304)[_0xb3f2[28]]()}}function respondWithFilteredResult(_0x788cx15,_0x788cx1b,_0x788cx17){return function(_0x788cx18){if(_0x788cx18){var _0x788cx1c=_0x788cx18[_0xb3f2[33]],_0x788cx1d=_0x788cx1b[_0xb3f2[34]],_0x788cx1e=_0x788cx1b[_0xb3f2[34]]+ _0x788cx1b[_0xb3f2[35]],_0x788cx16;if(_0x788cx1e>= _0x788cx1c){_0x788cx1e= _0x788cx1c;_0x788cx16= 200}else {_0x788cx16= 206};_0x788cx15[_0xb3f2[29]](_0x788cx16);logger[_0xb3f2[24]](_0xb3f2[22],_0x788cx17,_0x788cx16,_0xb3f2[36]);logger[_0xb3f2[26]](_0xb3f2[25],_0x788cx17,_0x788cx16,_0xb3f2[30],JSON[_0xb3f2[31]](_0x788cx18));return _0x788cx15[_0xb3f2[40]](_0xb3f2[37],_0x788cx1d+ _0xb3f2[38]+ _0x788cx1e+ _0xb3f2[39]+ _0x788cx1c)[_0xb3f2[32]](_0x788cx18)};return null}}function patchUpdates(_0x788cx20){return function(_0x788cx18){try{jsonpatch[_0xb3f2[41]](_0x788cx18,_0x788cx20,true)}catch(err){return BPromise[_0xb3f2[42]](err)};return _0x788cx18[_0xb3f2[43]]()}}function saveUpdates(_0x788cx22,_0x788cx16,_0x788cx17){return function(_0x788cx18){if(_0x788cx18){return _0x788cx18[_0xb3f2[46]](_0x788cx22)[_0xb3f2[45]](function(_0x788cx23){logger[_0xb3f2[24]](_0xb3f2[22],_0x788cx17,_0x788cx16,_0xb3f2[44]);logger[_0xb3f2[26]](_0xb3f2[25],_0x788cx17,_0x788cx16,_0xb3f2[44],JSON[_0xb3f2[31]](_0x788cx18));return _0x788cx23})};return null}}function removeEntity(_0x788cx15,_0x788cx16,_0x788cx17){return function(_0x788cx18){if(_0x788cx18){return _0x788cx18[_0xb3f2[48]]()[_0xb3f2[45]](function(){logger[_0xb3f2[24]](_0xb3f2[22],_0x788cx17,_0x788cx16,_0xb3f2[47]);logger[_0xb3f2[26]](_0xb3f2[25],_0x788cx17,_0x788cx16,_0xb3f2[47],JSON[_0xb3f2[31]](_0x788cx18));_0x788cx15[_0xb3f2[29]](204)[_0xb3f2[28]]()})}}}function handleEntityNotFound(_0x788cx15,_0x788cx16,_0x788cx17){return function(_0x788cx18){if(!_0x788cx18){logger[_0xb3f2[50]](_0xb3f2[22],_0x788cx17,404,_0xb3f2[49]);_0x788cx15[_0xb3f2[29]](404)[_0xb3f2[28]]();return null};return _0x788cx18}}function handleError(_0x788cx15,_0x788cx16,_0x788cx17){_0x788cx16= _0x788cx16|| 500;return function(_0x788cx27){logger[_0xb3f2[50]](_0xb3f2[22],_0x788cx17,_0x788cx16,JSON[_0xb3f2[31]](_0x788cx27));delete _0x788cx27[_0xb3f2[51]];_0x788cx15[_0xb3f2[29]](_0x788cx16)[_0xb3f2[52]](_0x788cx27)}}exports[_0xb3f2[53]]= function(_0x788cx28,_0x788cx15){var _0x788cx1b={},_0x788cx29={};_0x788cx29[_0xb3f2[54]]= _[_0xb3f2[57]](db[_0xb3f2[56]][_0xb3f2[55]]);_0x788cx29[_0xb3f2[58]]= _[_0xb3f2[57]](_0x788cx28[_0xb3f2[58]]);_0x788cx29[_0xb3f2[59]]= _[_0xb3f2[60]](_0x788cx29[_0xb3f2[54]],_0x788cx29[_0xb3f2[58]]);_0x788cx1b[_0xb3f2[61]]= _[_0xb3f2[60]](_0x788cx29[_0xb3f2[54]],qs[_0xb3f2[62]](_0x788cx28[_0xb3f2[58]][_0xb3f2[62]]));_0x788cx1b[_0xb3f2[61]]= (_0x788cx1b[_0xb3f2[61]][_0xb3f2[63]])?_0x788cx1b[_0xb3f2[61]]:_0x788cx29[_0xb3f2[54]];if(!_0x788cx28[_0xb3f2[58]][_0xb3f2[65]](_0xb3f2[64])){_0x788cx1b[_0xb3f2[35]]= qs[_0xb3f2[35]](_0x788cx28[_0xb3f2[58]][_0xb3f2[35]]);_0x788cx1b[_0xb3f2[34]]= qs[_0xb3f2[34]](_0x788cx28[_0xb3f2[58]][_0xb3f2[34]])};_0x788cx1b[_0xb3f2[66]]= qs[_0xb3f2[67]](_0x788cx28[_0xb3f2[58]][_0xb3f2[67]]);_0x788cx1b[_0xb3f2[68]]= qs[_0xb3f2[59]](_[_0xb3f2[69]](_0x788cx28[_0xb3f2[58]],_0x788cx29[_0xb3f2[59]]));if(_0x788cx28[_0xb3f2[58]][_0xb3f2[70]]){_0x788cx1b[_0xb3f2[68]]= _[_0xb3f2[73]](_0x788cx1b[_0xb3f2[68]],{$or:_[_0xb3f2[72]](_0x788cx1b[_0xb3f2[61]],function(_0x788cx2a){var _0x788cx2b={};_0x788cx2b[_0x788cx2a]= {$like:_0xb3f2[71]+ _0x788cx28[_0xb3f2[58]][_0xb3f2[70]]+ _0xb3f2[71]};return _0x788cx2b})})};_0x788cx1b= _[_0xb3f2[73]]({},_0x788cx1b,_0x788cx28[_0xb3f2[74]]);return db[_0xb3f2[56]][_0xb3f2[76]](_0x788cx1b)[_0xb3f2[45]](respondWithFilteredResult(_0x788cx15,_0x788cx1b,_0xb3f2[53]))[_0xb3f2[75]](handleError(_0x788cx15,null,_0xb3f2[53]))};exports[_0xb3f2[77]]= function(_0x788cx28,_0x788cx15){var _0x788cx1b={raw:true,where:{id:_0x788cx28[_0xb3f2[79]][_0xb3f2[78]]}},_0x788cx29={};_0x788cx29[_0xb3f2[54]]= _[_0xb3f2[57]](db[_0xb3f2[56]][_0xb3f2[55]]);_0x788cx29[_0xb3f2[58]]= _[_0xb3f2[57]](_0x788cx28[_0xb3f2[58]]);_0x788cx29[_0xb3f2[59]]= _[_0xb3f2[60]](_0x788cx29[_0xb3f2[54]],_0x788cx29[_0xb3f2[58]]);_0x788cx1b[_0xb3f2[61]]= _[_0xb3f2[60]](_0x788cx29[_0xb3f2[54]],qs[_0xb3f2[62]](_0x788cx28[_0xb3f2[58]][_0xb3f2[62]]));_0x788cx1b[_0xb3f2[61]]= (_0x788cx1b[_0xb3f2[61]][_0xb3f2[63]])?_0x788cx1b[_0xb3f2[61]]:_0x788cx29[_0xb3f2[54]];_0x788cx1b= _[_0xb3f2[73]]({},_0x788cx1b,_0x788cx28[_0xb3f2[74]]);return db[_0xb3f2[56]][_0xb3f2[80]](_0x788cx1b)[_0xb3f2[45]](handleEntityNotFound(_0x788cx15,null,_0xb3f2[77]))[_0xb3f2[45]](respondWithResult(_0x788cx15,null,_0xb3f2[77]))[_0xb3f2[75]](handleError(_0x788cx15,null,_0xb3f2[77]))};exports[_0xb3f2[81]]= function(_0x788cx28,_0x788cx15){return db[_0xb3f2[56]][_0xb3f2[81]](_0x788cx28[_0xb3f2[82]],{})[_0xb3f2[45]](respondWithResult(_0x788cx15,201,_0xb3f2[81]))[_0xb3f2[75]](handleError(_0x788cx15,null,_0xb3f2[81]))};exports[_0xb3f2[46]]= function(_0x788cx28,_0x788cx15){if(_0x788cx28[_0xb3f2[82]][_0xb3f2[78]]){delete _0x788cx28[_0xb3f2[82]][_0xb3f2[78]]};return db[_0xb3f2[56]][_0xb3f2[80]]({where:{id:_0x788cx28[_0xb3f2[79]][_0xb3f2[78]]}})[_0xb3f2[45]](handleEntityNotFound(_0x788cx15,null,_0xb3f2[46]))[_0xb3f2[45]](saveUpdates(_0x788cx28[_0xb3f2[82]],null,_0xb3f2[46]))[_0xb3f2[45]](respondWithResult(_0x788cx15,null,_0xb3f2[46]))[_0xb3f2[75]](handleError(_0x788cx15,null,_0xb3f2[46]))};exports[_0xb3f2[48]]= function(_0x788cx28,_0x788cx15){return db[_0xb3f2[56]][_0xb3f2[80]]({where:{id:_0x788cx28[_0xb3f2[79]][_0xb3f2[78]]}})[_0xb3f2[45]](handleEntityNotFound(_0x788cx15,null,_0xb3f2[48]))[_0xb3f2[45]](removeEntity(_0x788cx15,null,_0xb3f2[48]))[_0xb3f2[75]](handleError(_0x788cx15,null,_0xb3f2[48]))};exports[_0xb3f2[83]]= function(_0x788cx28,_0x788cx15,_0x788cx2c){return db[_0xb3f2[56]][_0xb3f2[80]]({where:{id:_0x788cx28[_0xb3f2[79]][_0xb3f2[78]]},attributes:[_0xb3f2[78],_0xb3f2[86]]})[_0xb3f2[45]](handleEntityNotFound(_0x788cx15,null,_0xb3f2[83]))[_0xb3f2[45]](function(_0x788cx18){if(_0x788cx18){logger[_0xb3f2[24]](_0xb3f2[85],_0xb3f2[83],_0xb3f2[30]);logger[_0xb3f2[26]](_0xb3f2[22],_0xb3f2[83],_0xb3f2[30],JSON[_0xb3f2[31]](_0x788cx18));if(!_0x788cx18[_0xb3f2[86]]){throw  new db[_0xb3f2[88]].ValidationError(_0xb3f2[87])};_0x788cx15[_0xb3f2[40]]({"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xb3f2[89]});return _0x788cx15[_0xb3f2[52]]( new Buffer(_0x788cx18[_0xb3f2[86]]))}})[_0xb3f2[75]](handleError(_0x788cx15,null,_0xb3f2[84]))}
\ No newline at end of file
diff --git a/server/api/voiceMailMessage/voiceMailMessage.model.js b/server/api/voiceMailMessage/voiceMailMessage.model.js
new file mode 100644 (file)
index 0000000..7d0d58b
--- /dev/null
@@ -0,0 +1 @@
+var _0xb80b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x76\x6F\x69\x63\x65\x5F\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C\x5F\x6D\x65\x73\x73\x61\x67\x65\x73","\x64\x69\x72","\x64\x65\x66\x69\x6E\x65"];_0xb80b[0];var _=require(_0xb80b[1]);var util=require(_0xb80b[2]);var logger=require(_0xb80b[4])(_0xb80b[3]);var attributes=require(_0xb80b[5]);module[_0xb80b[6]]= function(_0x56eex5,_0x56eex6){return _0x56eex5[_0xb80b[10]](_0xb80b[7],attributes,{tableName:_0xb80b[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0xb80b[9],"\x66\x69\x65\x6C\x64\x73":[_0xb80b[9]]}],timestamps:false})}
\ No newline at end of file
diff --git a/server/api/voiceMailMessage/voiceMailMessage.rpc.js b/server/api/voiceMailMessage/voiceMailMessage.rpc.js
new file mode 100644 (file)
index 0000000..eb6e72c
--- /dev/null
@@ -0,0 +1 @@
+var _0xdbea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xdbea[0];var _=require(_0xdbea[1]);var util=require(_0xdbea[2]);var moment=require(_0xdbea[3]);var BPromise=require(_0xdbea[4]);var db=require(_0xdbea[6])[_0xdbea[5]];var utils=require(_0xdbea[7]);var logger=require(_0xdbea[9])(_0xdbea[8]);var jayson=require(_0xdbea[10]);var client=jayson[_0xdbea[12]][_0xdbea[11]]({port:9002});function respondWithRpcPromise(_0xa391xb,_0xa391xc,_0xa391xd){return  new BPromise(function(_0xa391xe,_0xa391xf){return client[_0xdbea[25]](_0xa391xb,_0xa391xd)[_0xdbea[24]](function(_0xa391x11){logger[_0xdbea[17]](_0xdbea[13],_0xa391xc,_0xdbea[16]);logger[_0xdbea[20]](_0xdbea[18],_0xa391xc,_0xdbea[16],JSON[_0xdbea[19]](_0xa391x11));if(_0xa391x11[_0xdbea[14]]){if(_0xa391x11[_0xdbea[14]][_0xdbea[21]]=== 500){logger[_0xdbea[14]](_0xdbea[13],_0xa391xc,_0xa391x11[_0xdbea[14]][_0xdbea[22]]);return _0xa391xf(_0xa391x11[_0xdbea[14]][_0xdbea[22]])};logger[_0xdbea[14]](_0xdbea[13],_0xa391xc,_0xa391x11[_0xdbea[14]][_0xdbea[22]]);return _0xa391xe(_0xa391x11[_0xdbea[14]][_0xdbea[22]])}else {logger[_0xdbea[17]](_0xdbea[13],_0xa391xc,_0xdbea[16]);_0xa391xe(_0xa391x11[_0xdbea[23]][_0xdbea[22]])}})[_0xdbea[15]](function(_0xa391x10){logger[_0xdbea[14]](_0xdbea[13],_0xa391xc,_0xa391x10);_0xa391xf(_0xa391x10)})})}
\ No newline at end of file
diff --git a/server/api/voiceMusicOnHold/index.js b/server/api/voiceMusicOnHold/index.js
new file mode 100644 (file)
index 0000000..92000d7
--- /dev/null
@@ -0,0 +1 @@
+var _0x5fd9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x73\x6F\x75\x6E\x64\x73","\x67\x65\x74\x53\x6F\x75\x6E\x64\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x53\x6F\x75\x6E\x64","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x2F\x3A\x69\x64\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x3A\x69\x64\x32","\x72\x65\x6D\x6F\x76\x65\x53\x6F\x75\x6E\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x5fd9[0];var multer=require(_0x5fd9[1]);var util=require(_0x5fd9[2]);var path=require(_0x5fd9[3]);var express=require(_0x5fd9[4]);var router=express.Router();var auth=require(_0x5fd9[5]);var config=require(_0x5fd9[6]);var controller=require(_0x5fd9[7]);router[_0x5fd9[11]](_0x5fd9[8],auth[_0x5fd9[9]](),controller[_0x5fd9[10]]);router[_0x5fd9[11]](_0x5fd9[12],auth[_0x5fd9[9]](),controller[_0x5fd9[13]]);router[_0x5fd9[11]](_0x5fd9[14],auth[_0x5fd9[9]](),controller[_0x5fd9[15]]);router[_0x5fd9[17]](_0x5fd9[8],auth[_0x5fd9[9]](),controller[_0x5fd9[16]]);router[_0x5fd9[17]](_0x5fd9[14],auth[_0x5fd9[9]](),controller[_0x5fd9[18]]);router[_0x5fd9[20]](_0x5fd9[12],auth[_0x5fd9[9]](),controller[_0x5fd9[19]]);router[_0x5fd9[22]](_0x5fd9[12],auth[_0x5fd9[9]](),controller[_0x5fd9[21]]);router[_0x5fd9[22]](_0x5fd9[23],auth[_0x5fd9[9]](),controller[_0x5fd9[24]]);module[_0x5fd9[25]]= router
\ No newline at end of file
diff --git a/server/api/voiceMusicOnHold/voiceMusicOnHold.attributes.js b/server/api/voiceMusicOnHold/voiceMusicOnHold.attributes.js
new file mode 100644 (file)
index 0000000..5f1d7c1
--- /dev/null
@@ -0,0 +1 @@
+var _0x8621=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D","\x66\x69\x6C\x65\x73","\x6D\x70\x33\x6E\x62","\x71\x75\x69\x65\x74\x6D\x70\x33\x6E\x62","\x71\x75\x69\x65\x74\x6D\x70\x33","\x6D\x70\x33","\x61\x6C\x70\x68\x61","\x54\x49\x4D\x45\x53\x54\x41\x4D\x50","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x8621[0];var Sequelize=require(_0x8621[1]);module[_0x8621[2]]= {name:{type:Sequelize[_0x8621[3]],allowNull:false,unique:_0x8621[4]},mode:{type:Sequelize.ENUM(_0x8621[5],_0x8621[6],_0x8621[7],_0x8621[8],_0x8621[9],_0x8621[10]),allowNull:true,defaultValue:_0x8621[6]},directory:{type:Sequelize[_0x8621[3]],allowNull:true},application:{type:Sequelize[_0x8621[3]],allowNull:true},digit:{type:Sequelize[_0x8621[3]],allowNull:true},sort:{type:Sequelize[_0x8621[3]],allowNull:true,defaultValue:_0x8621[11]},format:{type:Sequelize[_0x8621[3]],allowNull:true},stamp:{type:_0x8621[12]},defaultEntry:{type:Sequelize[_0x8621[13]],defaultValue:0}}
\ No newline at end of file
diff --git a/server/api/voiceMusicOnHold/voiceMusicOnHold.controller.js b/server/api/voiceMusicOnHold/voiceMusicOnHold.controller.js
new file mode 100644 (file)
index 0000000..8f1c884
--- /dev/null
@@ -0,0 +1 @@
+var _0x4a02=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x6D\x6F\x64\x65","\x66\x69\x6C\x65\x73","\x64\x69\x72\x65\x63\x74\x6F\x72\x79","\x72\x6F\x6F\x74","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x6D\x6F\x68","\x6A\x6F\x69\x6E","\x30\x37\x37\x37","\x6D\x6B\x64\x69\x72\x53\x79\x6E\x63","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x65\x73\x73\x61\x67\x65","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65","\x75\x6E\x6C\x69\x6E\x6B\x53\x79\x6E\x63","\x66\x6F\x72\x45\x61\x63\x68","\x72\x65\x61\x64\x64\x69\x72\x53\x79\x6E\x63","\x72\x6D\x64\x69\x72\x53\x79\x6E\x63","\x61\x64\x64\x53\x6F\x75\x6E\x64","\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64","\x25\x73\x2E\x25\x73","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x62\x61\x73\x65\x6E\x61\x6D\x65","\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x5F\x66\x6F\x72\x6D\x61\x74","\x66\x6F\x72\x6D\x61\x74","\x73\x79\x6D\x6C\x69\x6E\x6B\x53\x79\x6E\x63","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x66\x69\x6E\x64\x4F\x6E\x65","\x53\x6F\x75\x6E\x64","\x72\x65\x6D\x6F\x76\x65\x53\x6F\x75\x6E\x64","\x69\x64\x32","\x67\x65\x74\x53\x6F\x75\x6E\x64\x73"];_0x4a02[0];var jsonpatch=require(_0x4a02[1]);var rp=require(_0x4a02[2]);var moment=require(_0x4a02[3]);var BPromise=require(_0x4a02[4]);var util=require(_0x4a02[5]);var path=require(_0x4a02[6]);var sox=require(_0x4a02[7]);var ejs=require(_0x4a02[8]);var fs=require(_0x4a02[9]);var _=require(_0x4a02[10]);var squel=require(_0x4a02[11]);var crypto=require(_0x4a02[12]);var jsforce=require(_0x4a02[13]);var toCsv=require(_0x4a02[14]);var qs=require(_0x4a02[15]);var logger=require(_0x4a02[17])(_0x4a02[16]);var utils=require(_0x4a02[18]);var config=require(_0x4a02[19]);var db=require(_0x4a02[21])[_0x4a02[20]];function respondWithStatusCode(_0xa22fx15,_0xa22fx16,_0xa22fx17){_0xa22fx16= _0xa22fx16|| 204;return function(_0xa22fx18){if(_0xa22fx18){logger[_0x4a02[24]](_0x4a02[22],_0xa22fx17,_0xa22fx16,_0x4a02[23]);logger[_0x4a02[26]](_0x4a02[25],_0xa22fx17,_0xa22fx16,_0x4a02[23]);return _0xa22fx15[_0x4a02[27]](_0xa22fx16)};return _0xa22fx15[_0x4a02[29]](304)[_0x4a02[28]]()}}function respondWithResult(_0xa22fx15,_0xa22fx16,_0xa22fx17){_0xa22fx16= _0xa22fx16|| 200;return function(_0xa22fx18){if(_0xa22fx18){logger[_0x4a02[24]](_0x4a02[22],_0xa22fx17,_0xa22fx16,_0x4a02[30]);logger[_0x4a02[26]](_0x4a02[25],_0xa22fx17,_0xa22fx16,_0x4a02[30],JSON[_0x4a02[31]](_0xa22fx18));return _0xa22fx15[_0x4a02[29]](_0xa22fx16)[_0x4a02[32]](_0xa22fx18)};return _0xa22fx15[_0x4a02[29]](304)[_0x4a02[28]]()}}function respondWithFilteredResult(_0xa22fx15,_0xa22fx1b,_0xa22fx17){return function(_0xa22fx18){if(_0xa22fx18){var _0xa22fx1c=_0xa22fx18[_0x4a02[33]],_0xa22fx1d=_0xa22fx1b[_0x4a02[34]],_0xa22fx1e=_0xa22fx1b[_0x4a02[34]]+ _0xa22fx1b[_0x4a02[35]],_0xa22fx16;if(_0xa22fx1e>= _0xa22fx1c){_0xa22fx1e= _0xa22fx1c;_0xa22fx16= 200}else {_0xa22fx16= 206};_0xa22fx15[_0x4a02[29]](_0xa22fx16);logger[_0x4a02[24]](_0x4a02[22],_0xa22fx17,_0xa22fx16,_0x4a02[36]);logger[_0x4a02[26]](_0x4a02[25],_0xa22fx17,_0xa22fx16,_0x4a02[30],JSON[_0x4a02[31]](_0xa22fx18));return _0xa22fx15[_0x4a02[40]](_0x4a02[37],_0xa22fx1d+ _0x4a02[38]+ _0xa22fx1e+ _0x4a02[39]+ _0xa22fx1c)[_0x4a02[32]](_0xa22fx18)};return null}}function patchUpdates(_0xa22fx20){return function(_0xa22fx18){try{jsonpatch[_0x4a02[41]](_0xa22fx18,_0xa22fx20,true)}catch(err){return BPromise[_0x4a02[42]](err)};return _0xa22fx18[_0x4a02[43]]()}}function saveUpdates(_0xa22fx22,_0xa22fx16,_0xa22fx17){return function(_0xa22fx18){if(_0xa22fx18){return _0xa22fx18[_0x4a02[46]](_0xa22fx22)[_0x4a02[45]](function(_0xa22fx23){logger[_0x4a02[24]](_0x4a02[22],_0xa22fx17,_0xa22fx16,_0x4a02[44]);logger[_0x4a02[26]](_0x4a02[25],_0xa22fx17,_0xa22fx16,_0x4a02[44],JSON[_0x4a02[31]](_0xa22fx18));return _0xa22fx23})};return null}}function removeEntity(_0xa22fx15,_0xa22fx16,_0xa22fx17){return function(_0xa22fx18){if(_0xa22fx18){return _0xa22fx18[_0x4a02[48]]()[_0x4a02[45]](function(){logger[_0x4a02[24]](_0x4a02[22],_0xa22fx17,_0xa22fx16,_0x4a02[47]);logger[_0x4a02[26]](_0x4a02[25],_0xa22fx17,_0xa22fx16,_0x4a02[47],JSON[_0x4a02[31]](_0xa22fx18));_0xa22fx15[_0x4a02[29]](204)[_0x4a02[28]]()})}}}function handleEntityNotFound(_0xa22fx15,_0xa22fx16,_0xa22fx17){return function(_0xa22fx18){if(!_0xa22fx18){logger[_0x4a02[50]](_0x4a02[22],_0xa22fx17,404,_0x4a02[49]);_0xa22fx15[_0x4a02[29]](404)[_0x4a02[28]]();return null};return _0xa22fx18}}function handleError(_0xa22fx15,_0xa22fx16,_0xa22fx17){_0xa22fx16= _0xa22fx16|| 500;return function(_0xa22fx27){logger[_0x4a02[50]](_0x4a02[22],_0xa22fx17,_0xa22fx16,JSON[_0x4a02[31]](_0xa22fx27));delete _0xa22fx27[_0x4a02[51]];_0xa22fx15[_0x4a02[29]](_0xa22fx16)[_0x4a02[52]](_0xa22fx27)}}exports[_0x4a02[53]]= function(_0xa22fx28,_0xa22fx15){var _0xa22fx1b={},_0xa22fx29={};_0xa22fx29[_0x4a02[54]]= _[_0x4a02[57]](db[_0x4a02[56]][_0x4a02[55]]);_0xa22fx29[_0x4a02[58]]= _[_0x4a02[57]](_0xa22fx28[_0x4a02[58]]);_0xa22fx29[_0x4a02[59]]= _[_0x4a02[60]](_0xa22fx29[_0x4a02[54]],_0xa22fx29[_0x4a02[58]]);_0xa22fx1b[_0x4a02[61]]= _[_0x4a02[60]](_0xa22fx29[_0x4a02[54]],qs[_0x4a02[62]](_0xa22fx28[_0x4a02[58]][_0x4a02[62]]));_0xa22fx1b[_0x4a02[61]]= (_0xa22fx1b[_0x4a02[61]][_0x4a02[63]])?_0xa22fx1b[_0x4a02[61]]:_0xa22fx29[_0x4a02[54]];if(!_0xa22fx28[_0x4a02[58]][_0x4a02[65]](_0x4a02[64])){_0xa22fx1b[_0x4a02[35]]= qs[_0x4a02[35]](_0xa22fx28[_0x4a02[58]][_0x4a02[35]]);_0xa22fx1b[_0x4a02[34]]= qs[_0x4a02[34]](_0xa22fx28[_0x4a02[58]][_0x4a02[34]])};_0xa22fx1b[_0x4a02[66]]= qs[_0x4a02[67]](_0xa22fx28[_0x4a02[58]][_0x4a02[67]]);_0xa22fx1b[_0x4a02[68]]= qs[_0x4a02[59]](_[_0x4a02[69]](_0xa22fx28[_0x4a02[58]],_0xa22fx29[_0x4a02[59]]));if(_0xa22fx28[_0x4a02[58]][_0x4a02[70]]){_0xa22fx1b[_0x4a02[68]]= _[_0x4a02[73]](_0xa22fx1b[_0x4a02[68]],{$or:_[_0x4a02[72]](_0xa22fx1b[_0x4a02[61]],function(_0xa22fx2a){var _0xa22fx2b={};_0xa22fx2b[_0xa22fx2a]= {$like:_0x4a02[71]+ _0xa22fx28[_0x4a02[58]][_0x4a02[70]]+ _0x4a02[71]};return _0xa22fx2b})})};_0xa22fx1b= _[_0x4a02[73]]({},_0xa22fx1b,_0xa22fx28[_0x4a02[74]]);return db[_0x4a02[56]][_0x4a02[76]](_0xa22fx1b)[_0x4a02[45]](respondWithFilteredResult(_0xa22fx15,_0xa22fx1b,_0x4a02[53]))[_0x4a02[75]](handleError(_0xa22fx15,null,_0x4a02[53]))};exports[_0x4a02[77]]= function(_0xa22fx28,_0xa22fx15){var _0xa22fx1b={raw:false,where:{id:_0xa22fx28[_0x4a02[79]][_0x4a02[78]]}},_0xa22fx29={};_0xa22fx29[_0x4a02[54]]= _[_0x4a02[57]](db[_0x4a02[56]][_0x4a02[55]]);_0xa22fx29[_0x4a02[58]]= _[_0x4a02[57]](_0xa22fx28[_0x4a02[58]]);_0xa22fx29[_0x4a02[59]]= _[_0x4a02[60]](_0xa22fx29[_0x4a02[54]],_0xa22fx29[_0x4a02[58]]);_0xa22fx1b[_0x4a02[61]]= _[_0x4a02[60]](_0xa22fx29[_0x4a02[54]],qs[_0x4a02[62]](_0xa22fx28[_0x4a02[58]][_0x4a02[62]]));_0xa22fx1b[_0x4a02[61]]= (_0xa22fx1b[_0x4a02[61]][_0x4a02[63]])?_0xa22fx1b[_0x4a02[61]]:_0xa22fx29[_0x4a02[54]];_0xa22fx1b= _[_0x4a02[73]]({},_0xa22fx1b,_0xa22fx28[_0x4a02[74]]);return db[_0x4a02[56]][_0x4a02[80]](_0xa22fx1b)[_0x4a02[45]](handleEntityNotFound(_0xa22fx15,null,_0x4a02[77]))[_0x4a02[45]](respondWithResult(_0xa22fx15,null,_0x4a02[77]))[_0x4a02[75]](handleError(_0xa22fx15,null,_0x4a02[77]))};exports[_0x4a02[46]]= function(_0xa22fx28,_0xa22fx15){if(_0xa22fx28[_0x4a02[81]][_0x4a02[78]]){delete _0xa22fx28[_0x4a02[81]][_0x4a02[78]]};return db[_0x4a02[56]][_0x4a02[80]]({where:{id:_0xa22fx28[_0x4a02[79]][_0x4a02[78]]}})[_0x4a02[45]](handleEntityNotFound(_0xa22fx15,null,_0x4a02[46]))[_0x4a02[45]](saveUpdates(_0xa22fx28[_0x4a02[81]],null,_0x4a02[46]))[_0x4a02[45]](respondWithResult(_0xa22fx15,null,_0x4a02[46]))[_0x4a02[75]](handleError(_0xa22fx15,null,_0x4a02[46]))};exports[_0x4a02[82]]= function(_0xa22fx28,_0xa22fx15,_0xa22fx2c){return db[_0x4a02[92]][_0x4a02[91]](function(_0xa22fx2d){if(_0xa22fx28[_0x4a02[81]][_0x4a02[83]]=== _0x4a02[84]){_0xa22fx28[_0x4a02[81]][_0x4a02[85]]= path[_0x4a02[88]](config[_0x4a02[86]],_0x4a02[87],_0xa22fx28[_0x4a02[81]][_0x4a02[51]])};return db[_0x4a02[56]][_0x4a02[82]](_0xa22fx28[_0x4a02[81]],{transaction:_0xa22fx2d})[_0x4a02[45]](function(_0xa22fx18){if(_0xa22fx28[_0x4a02[81]][_0x4a02[83]]=== _0x4a02[84]){fs[_0x4a02[90]](_0xa22fx18[_0x4a02[85]],parseInt(_0x4a02[89],8))};return _0xa22fx18})})[_0x4a02[45]](respondWithResult(_0xa22fx15,201,_0x4a02[82]))[_0x4a02[75]](handleError(_0xa22fx15,null,_0x4a02[82]))};exports[_0x4a02[48]]= function(_0xa22fx28,_0xa22fx15,_0xa22fx2c){var _0xa22fx2e;return db[_0x4a02[56]][_0x4a02[80]]({where:{id:_0xa22fx28[_0x4a02[79]][_0x4a02[78]]}})[_0x4a02[45]](function(_0xa22fx18){if(_0xa22fx18){return db[_0x4a02[92]][_0x4a02[91]](function(_0xa22fx2d){return _0xa22fx18[_0x4a02[48]]({transaction:_0xa22fx2d,raw:true})[_0x4a02[45]](function(_0xa22fx18){if(_0xa22fx18[_0x4a02[85]]){fs[_0x4a02[97]](_0xa22fx18[_0x4a02[85]])[_0x4a02[96]](function(_0xa22fx2f){fs[_0x4a02[95]](path[_0x4a02[88]](_0xa22fx18[_0x4a02[85]],_0xa22fx2f))});fs[_0x4a02[98]](_0xa22fx18[_0x4a02[85]])};return _0xa22fx18})})[_0x4a02[75]](function(_0xa22fx27){throw  new db[_0x4a02[94]].ValidationError(_0xa22fx27[_0x4a02[93]])})}})[_0x4a02[45]](handleEntityNotFound(_0xa22fx15,null,_0x4a02[48]))[_0x4a02[45]](removeEntity(_0xa22fx15,null,_0x4a02[48]))[_0x4a02[75]](handleError(_0xa22fx15,null,_0x4a02[48]))};exports[_0x4a02[99]]= function(_0xa22fx28,_0xa22fx15,_0xa22fx2c){return db[_0x4a02[92]][_0x4a02[91]](function(_0xa22fx2d){var _0xa22fx30;return db[_0x4a02[56]][_0x4a02[80]]({where:{id:_0xa22fx28[_0x4a02[79]][_0x4a02[78]]}})[_0x4a02[45]](function(_0xa22fx18){if(_0xa22fx18){_0xa22fx30= _0xa22fx18;return _0xa22fx18[_0x4a02[99]](_0xa22fx28[_0x4a02[81]][_0x4a02[78]],{transaction:_0xa22fx2d})}})[_0x4a02[45]](function(_0xa22fx18){if(_0xa22fx18){return db[_0x4a02[110]][_0x4a02[109]]({where:{id:_0xa22fx28[_0x4a02[81]][_0x4a02[78]]},attributes:[_0x4a02[78],_0x4a02[51],_0x4a02[102],_0x4a02[105],_0x4a02[108]],raw:true})}})[_0x4a02[45]](function(_0xa22fx18){if(_0xa22fx18){var _0xa22fx31=path[_0x4a02[88]](config[_0x4a02[86]],_0x4a02[100],util[_0x4a02[106]](_0x4a02[101],path[_0x4a02[104]](_0xa22fx18[_0x4a02[102]],path[_0x4a02[103]](_0xa22fx18[_0x4a02[102]])),_0xa22fx18[_0x4a02[105]]));var _0xa22fx32=path[_0x4a02[88]](config[_0x4a02[86]],_0x4a02[87],_0xa22fx30[_0x4a02[51]],util[_0x4a02[106]](_0x4a02[101],_0xa22fx18[_0x4a02[51]],_0xa22fx18[_0x4a02[105]]));fs[_0x4a02[107]](_0xa22fx31,_0xa22fx32);return _0xa22fx18}})[_0x4a02[75]](function(_0xa22fx27){throw  new db[_0x4a02[94]].ValidationError(_0xa22fx27[_0x4a02[93]])})})[_0x4a02[45]](handleEntityNotFound(_0xa22fx15,null,_0x4a02[99]))[_0x4a02[45]](respondWithResult(_0xa22fx15,201,_0x4a02[99]))[_0x4a02[75]](handleError(_0xa22fx15,null,_0x4a02[99]))};exports[_0x4a02[111]]= function(_0xa22fx28,_0xa22fx15,_0xa22fx2c){return db[_0x4a02[92]][_0x4a02[91]](function(_0xa22fx2d){var _0xa22fx30;return db[_0x4a02[56]][_0x4a02[109]]({where:{id:_0xa22fx28[_0x4a02[79]][_0x4a02[78]]}})[_0x4a02[45]](handleEntityNotFound(_0xa22fx15,null,_0x4a02[111]))[_0x4a02[45]](function(_0xa22fx18){if(_0xa22fx18){_0xa22fx30= _0xa22fx18;return _0xa22fx18[_0x4a02[111]](_0xa22fx28[_0x4a02[79]][_0x4a02[112]])}})[_0x4a02[45]](function(_0xa22fx18){if(_0xa22fx18){return db[_0x4a02[110]][_0x4a02[109]]({where:{id:_0xa22fx28[_0x4a02[79]][_0x4a02[112]]},attributes:[_0x4a02[78],_0x4a02[51],_0x4a02[102],_0x4a02[105],_0x4a02[108]],raw:true})}})[_0x4a02[45]](function(_0xa22fx18){if(_0xa22fx18){fs[_0x4a02[95]](path[_0x4a02[88]](_0xa22fx30[_0x4a02[85]],util[_0x4a02[106]](_0x4a02[101],_0xa22fx18[_0x4a02[51]],_0xa22fx18[_0x4a02[105]])));return _0xa22fx18}})[_0x4a02[75]](function(_0xa22fx27){throw  new db[_0x4a02[94]].ValidationError(_0xa22fx27[_0x4a02[93]])})})[_0x4a02[45]](handleEntityNotFound(_0xa22fx15,null,_0x4a02[111]))[_0x4a02[45]](respondWithStatusCode(_0xa22fx15,204,_0x4a02[111]))[_0x4a02[75]](handleError(_0xa22fx15,null,_0x4a02[111]))};exports[_0x4a02[113]]= function(_0xa22fx28,_0xa22fx18,_0xa22fx2c){var _0xa22fx1b={};var _0xa22fx29={};var _0xa22fx33;var _0xa22fx1c;return db[_0x4a02[56]][_0x4a02[109]]({where:{id:_0xa22fx28[_0x4a02[79]][_0x4a02[78]]}})[_0x4a02[45]](handleEntityNotFound(_0xa22fx18,null,_0x4a02[113]))[_0x4a02[45]](function(_0xa22fx18){if(_0xa22fx18){_0xa22fx33= _0xa22fx18;_0xa22fx29[_0x4a02[54]]= _[_0x4a02[57]](db[_0x4a02[110]][_0x4a02[55]]);_0xa22fx29[_0x4a02[58]]= _[_0x4a02[57]](_0xa22fx28[_0x4a02[58]]);_0xa22fx29[_0x4a02[59]]= _[_0x4a02[60]](_0xa22fx29[_0x4a02[54]],_0xa22fx29[_0x4a02[58]]);_0xa22fx1b[_0x4a02[61]]= _[_0x4a02[60]](_0xa22fx29[_0x4a02[54]],qs[_0x4a02[62]](_0xa22fx28[_0x4a02[58]][_0x4a02[62]]));_0xa22fx1b[_0x4a02[61]]= (_0xa22fx1b[_0x4a02[61]][_0x4a02[63]])?_0xa22fx1b[_0x4a02[61]]:_0xa22fx29[_0x4a02[54]];_0xa22fx1b[_0x4a02[66]]= qs[_0x4a02[67]](_0xa22fx28[_0x4a02[58]][_0x4a02[67]]);_0xa22fx1b[_0x4a02[68]]= qs[_0x4a02[59]](_[_0x4a02[69]](_0xa22fx28[_0x4a02[58]],_0xa22fx29[_0x4a02[59]]));if(_0xa22fx28[_0x4a02[58]][_0x4a02[70]]){_0xa22fx1b[_0x4a02[68]]= _[_0x4a02[73]](_0xa22fx1b[_0x4a02[68]],{$or:_[_0x4a02[72]](_0xa22fx1b[_0x4a02[61]],function(_0xa22fx2a){var _0xa22fx2b={};_0xa22fx2b[_0xa22fx2a]= {$like:_0x4a02[71]+ _0xa22fx28[_0x4a02[58]][_0x4a02[70]]+ _0x4a02[71]};return _0xa22fx2b})})};_0xa22fx1b= _[_0x4a02[73]]({},_0xa22fx1b,_0xa22fx28[_0x4a02[74]]);return _0xa22fx33[_0x4a02[113]](_0xa22fx1b)}})[_0x4a02[45]](function(_0xa22fx35){if(_0xa22fx35){_0xa22fx1c= _0xa22fx35[_0x4a02[63]];if(!_0xa22fx28[_0x4a02[58]][_0x4a02[65]](_0x4a02[64])){_0xa22fx1b[_0x4a02[35]]= qs[_0x4a02[35]](_0xa22fx28[_0x4a02[58]][_0x4a02[35]]);_0xa22fx1b[_0x4a02[34]]= qs[_0x4a02[34]](_0xa22fx28[_0x4a02[58]][_0x4a02[34]])};return _0xa22fx33[_0x4a02[113]](_0xa22fx1b)}})[_0x4a02[45]](function(_0xa22fx34){return _0xa22fx34?{count:_0xa22fx1c,rows:_0xa22fx34}:null})[_0x4a02[45]](respondWithResult(_0xa22fx18,null,_0x4a02[113]))[_0x4a02[75]](handleError(_0xa22fx18,null,_0x4a02[113]))}
\ No newline at end of file
diff --git a/server/api/voiceMusicOnHold/voiceMusicOnHold.model.js b/server/api/voiceMusicOnHold/voiceMusicOnHold.model.js
new file mode 100644 (file)
index 0000000..c34319b
--- /dev/null
@@ -0,0 +1 @@
+var _0xa1dd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x76\x6F\x69\x63\x65\x5F\x6D\x75\x73\x69\x63\x6F\x6E\x68\x6F\x6C\x64","\x64\x65\x66\x69\x6E\x65"];_0xa1dd[0];var _=require(_0xa1dd[1]);var util=require(_0xa1dd[2]);var logger=require(_0xa1dd[4])(_0xa1dd[3]);var attributes=require(_0xa1dd[5]);module[_0xa1dd[6]]= function(_0xd532x5,_0xd532x6){return _0xd532x5[_0xa1dd[9]](_0xa1dd[7],attributes,{tableName:_0xa1dd[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/voiceMusicOnHold/voiceMusicOnHold.rpc.js b/server/api/voiceMusicOnHold/voiceMusicOnHold.rpc.js
new file mode 100644 (file)
index 0000000..553ee4c
--- /dev/null
@@ -0,0 +1 @@
+var _0x85ea=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0x85ea[0];var _=require(_0x85ea[1]);var util=require(_0x85ea[2]);var moment=require(_0x85ea[3]);var BPromise=require(_0x85ea[4]);var db=require(_0x85ea[6])[_0x85ea[5]];var utils=require(_0x85ea[7]);var logger=require(_0x85ea[9])(_0x85ea[8]);var jayson=require(_0x85ea[10]);var client=jayson[_0x85ea[12]][_0x85ea[11]]({port:9002});function respondWithRpcPromise(_0xbeafxb,_0xbeafxc,_0xbeafxd){return  new BPromise(function(_0xbeafxe,_0xbeafxf){return client[_0x85ea[25]](_0xbeafxb,_0xbeafxd)[_0x85ea[24]](function(_0xbeafx11){logger[_0x85ea[17]](_0x85ea[13],_0xbeafxc,_0x85ea[16]);logger[_0x85ea[20]](_0x85ea[18],_0xbeafxc,_0x85ea[16],JSON[_0x85ea[19]](_0xbeafx11));if(_0xbeafx11[_0x85ea[14]]){if(_0xbeafx11[_0x85ea[14]][_0x85ea[21]]=== 500){logger[_0x85ea[14]](_0x85ea[13],_0xbeafxc,_0xbeafx11[_0x85ea[14]][_0x85ea[22]]);return _0xbeafxf(_0xbeafx11[_0x85ea[14]][_0x85ea[22]])};logger[_0x85ea[14]](_0x85ea[13],_0xbeafxc,_0xbeafx11[_0x85ea[14]][_0x85ea[22]]);return _0xbeafxe(_0xbeafx11[_0x85ea[14]][_0x85ea[22]])}else {logger[_0x85ea[17]](_0x85ea[13],_0xbeafxc,_0x85ea[16]);_0xbeafxe(_0xbeafx11[_0x85ea[23]][_0x85ea[22]])}})[_0x85ea[15]](function(_0xbeafx10){logger[_0x85ea[14]](_0x85ea[13],_0xbeafxc,_0xbeafx10);_0xbeafxf(_0xbeafx10)})})}
\ No newline at end of file
diff --git a/server/api/voiceQueue/index.js b/server/api/voiceQueue/index.js
new file mode 100644 (file)
index 0000000..cc5783e
--- /dev/null
@@ -0,0 +1 @@
+var _0x749e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x69\x65\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x73","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x2F\x3A\x69\x64\x2F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x2F\x3A\x69\x64\x2F\x74\x65\x61\x6D\x73","\x67\x65\x74\x54\x65\x61\x6D\x73","\x2F\x3A\x69\x64\x2F\x75\x73\x65\x72\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x2F\x3A\x69\x64\x2F\x6D\x65\x6D\x62\x65\x72\x73","\x67\x65\x74\x4D\x65\x6D\x62\x65\x72\x73","\x2F\x3A\x69\x64\x2F\x6C\x69\x73\x74\x73","\x67\x65\x74\x4C\x69\x73\x74\x73","\x2F\x3A\x69\x64\x2F\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74\x73","\x67\x65\x74\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x61\x64\x64\x54\x65\x61\x6D\x73","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x64\x64\x4C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x73","\x72\x65\x6D\x6F\x76\x65\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x749e[0];var multer=require(_0x749e[1]);var util=require(_0x749e[2]);var path=require(_0x749e[3]);var express=require(_0x749e[4]);var router=express.Router();var auth=require(_0x749e[5]);var config=require(_0x749e[6]);var controller=require(_0x749e[7]);router[_0x749e[11]](_0x749e[8],auth[_0x749e[9]](),controller[_0x749e[10]]);router[_0x749e[11]](_0x749e[12],auth[_0x749e[9]](),controller[_0x749e[13]]);router[_0x749e[11]](_0x749e[14],auth[_0x749e[9]](),controller[_0x749e[15]]);router[_0x749e[11]](_0x749e[16],auth[_0x749e[9]](),controller[_0x749e[17]]);router[_0x749e[11]](_0x749e[18],auth[_0x749e[9]](),controller[_0x749e[19]]);router[_0x749e[11]](_0x749e[20],auth[_0x749e[9]](),controller[_0x749e[21]]);router[_0x749e[11]](_0x749e[22],auth[_0x749e[9]](),controller[_0x749e[23]]);router[_0x749e[11]](_0x749e[24],auth[_0x749e[9]](),controller[_0x749e[25]]);router[_0x749e[11]](_0x749e[26],auth[_0x749e[9]](),controller[_0x749e[27]]);router[_0x749e[11]](_0x749e[28],auth[_0x749e[9]](),controller[_0x749e[29]]);router[_0x749e[11]](_0x749e[30],auth[_0x749e[9]](),controller[_0x749e[31]]);router[_0x749e[33]](_0x749e[8],auth[_0x749e[9]](),controller[_0x749e[32]]);router[_0x749e[33]](_0x749e[22],auth[_0x749e[9]](),controller[_0x749e[34]]);router[_0x749e[33]](_0x749e[24],auth[_0x749e[9]](),controller[_0x749e[35]]);router[_0x749e[33]](_0x749e[28],auth[_0x749e[9]](),controller[_0x749e[36]]);router[_0x749e[33]](_0x749e[30],auth[_0x749e[9]](),controller[_0x749e[37]]);router[_0x749e[39]](_0x749e[12],auth[_0x749e[9]](),controller[_0x749e[38]]);router[_0x749e[41]](_0x749e[12],auth[_0x749e[9]](),controller[_0x749e[40]]);router[_0x749e[41]](_0x749e[22],auth[_0x749e[9]](),controller[_0x749e[42]]);router[_0x749e[41]](_0x749e[24],auth[_0x749e[9]](),controller[_0x749e[43]]);router[_0x749e[41]](_0x749e[28],auth[_0x749e[9]](),controller[_0x749e[44]]);router[_0x749e[41]](_0x749e[30],auth[_0x749e[9]](),controller[_0x749e[45]]);module[_0x749e[46]]= router
\ No newline at end of file
diff --git a/server/api/voiceQueue/voiceQueue.attributes.js b/server/api/voiceQueue/voiceQueue.attributes.js
new file mode 100644 (file)
index 0000000..5ca1f60
--- /dev/null
@@ -0,0 +1 @@
+var _0x1d77=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x6E\x61\x6D\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x65\x66\x61\x75\x6C\x74","","\x72\x69\x6E\x67\x61\x6C\x6C","\x6C\x65\x61\x73\x74\x72\x65\x63\x65\x6E\x74","\x66\x65\x77\x65\x73\x74\x63\x61\x6C\x6C\x73","\x72\x61\x6E\x64\x6F\x6D","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x6C\x69\x6E\x65\x61\x72","\x77\x72\x61\x6E\x64\x6F\x6D","\x72\x72\x6F\x72\x64\x65\x72\x65\x64","\x79\x65\x73","\x6E\x6F","\x61\x6C\x6C","\x6F\x6E\x63\x65","\x30","\x35","\x31\x30","\x31\x35","\x32\x30","\x33\x30","\x6A\x6F\x69\x6E\x65\x6D\x70\x74\x79","\x2C","\x6A\x6F\x69\x6E","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x70\x6C\x69\x74","\x6C\x65\x61\x76\x65\x77\x68\x65\x6E\x65\x6D\x70\x74\x79","\x42\x4F\x4F\x4C\x45\x41\x4E","\x41\x63\x74\x69\x76\x65\x2F\x44\x69\x73\x61\x63\x74\x69\x76\x65\x20\x43\x61\x6D\x70\x61\x69\x67\x6E","\x70\x72\x65\x76\x69\x65\x77","\x70\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65","\x70\x6F\x77\x65\x72","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x44\x69\x61\x6C\x20\x4D\x65\x74\x68\x6F\x64\x2E","\x55\x4E\x53\x49\x47\x4E\x45\x44","\x4D\x61\x78\x20\x39\x39\x39\x39\x20\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2C\x20\x30\x20\x6D\x65\x61\x6E\x73\x20\x75\x6E\x6C\x69\x6D\x69\x74\x65\x64\x2E","\x4D\x61\x78\x20\x39\x39\x39\x39\x20\x6D\x65\x6D\x62\x65\x72\x20\x69\x6E\x20\x71\x75\x65\x75\x65\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x29\x2C\x20\x30\x20\x6D\x65\x61\x6E\x73\x20\x75\x6E\x6C\x69\x6D\x69\x74\x65\x64\x2E","\x50\x6F\x77\x65\x72\x20\x4C\x65\x76\x65\x6C\x3A\x20\x43\x61\x6C\x6C\x73\x20\x66\x6F\x72\x20\x61\x67\x65\x6E\x74\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x31\x30\x29\x2E","\x61\x67\x65\x6E\x74\x42\x75\x73\x79\x46\x61\x63\x74\x6F\x72","\x64\x72\x6F\x70\x52\x61\x74\x65","\x4F\x6E\x6C\x79\x20\x66\x6F\x72\x20\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x6D\x65\x74\x68\x6F\x64\x2E","\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E\x20\x50\x65\x72\x63\x65\x6E\x74\x61\x67\x65\x20\x28\x6D\x69\x6E\x3A\x20\x31\x2C\x20\x6D\x61\x78\x3A\x20\x39\x35\x29","\x49\x6E\x74\x65\x72\x76\x61\x6C\x6C\x20\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x35\x20\x6D\x61\x78\x3A\x33\x30\x29","\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x20\x54\x69\x6D\x65\x6F\x75\x74\x20\x53\x65\x63\x6F\x6E\x64\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x74\x54\x78\x58","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x77\x69\x6B\x69\x2E\x61\x73\x74\x65\x72\x69\x73\x6B\x2E\x6F\x72\x67\x2F\x77\x69\x6B\x69\x2F\x64\x69\x73\x70\x6C\x61\x79\x2F\x41\x53\x54\x2F\x41\x73\x74\x65\x72\x69\x73\x6B\x2B\x31\x33\x2B\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x5F\x51\x75\x65\x75\x65","\x51\x75\x65\x75\x65\x20\x54\x69\x6D\x65\x6F\x75\x74\x20\x53\x65\x63\x6F\x6E\x64\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x29","\x41\x47\x49\x20\x71\x75\x65\x75\x65\x20\x6F\x70\x74\x69\x6F\x6E\x20\x28\x75\x73\x65\x3A\x20\x61\x67\x69\x3A\x2F\x2F\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31\x2F\x73\x71\x75\x61\x72\x65\x2C\x3C\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x61\x6D\x65\x3E\x29","\x23\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x42\x75\x73\x79\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x42\x75\x73\x79\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x4E\x6F\x41\x6E\x73\x77\x65\x72\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x4E\x6F\x41\x6E\x73\x77\x65\x72\x20\x52\x65\x74\x72\x79\x20\x46\x72\x65\x71\x75\x65\x6E\x63\x79\x20\x4D\x69\x6E\x75\x74\x65\x73\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x39\x39\x29","\x23\x47\x6C\x6F\x62\x61\x6C\x20\x4D\x61\x78\x20\x52\x65\x74\x72\x79\x20\x28\x6D\x69\x6E\x3A\x31\x2C\x20\x6D\x61\x78\x3A\x39\x39\x39\x29","\x30\x37\x3A\x30\x30\x2D\x32\x32\x3A\x30\x30\x2C\x2A\x2C\x2A\x2C\x2A"];_0x1d77[0];var Sequelize=require(_0x1d77[1]);module[_0x1d77[2]]= {name:{type:Sequelize[_0x1d77[3]],allowNull:false,unique:_0x1d77[4],validate:{notEmpty:true,is:/^[A-Za-z0-9\.\_]+$/i}},type:{type:Sequelize.ENUM(_0x1d77[5],_0x1d77[6]),allowNull:false,defaultValue:_0x1d77[5]},musiconhold:{type:Sequelize[_0x1d77[3]],defaultValue:_0x1d77[7]},announce:{type:Sequelize[_0x1d77[3]],defaultValue:_0x1d77[8]},strategy:{type:Sequelize.ENUM(_0x1d77[9],_0x1d77[10],_0x1d77[11],_0x1d77[12],_0x1d77[13],_0x1d77[14],_0x1d77[15],_0x1d77[16]),allowNull:false,defaultValue:_0x1d77[9]},servicelevel:{type:Sequelize.INTEGER(11),defaultValue:0},context:{type:Sequelize[_0x1d77[3]],defaultValue:null},penaltymemberslimit:{type:Sequelize.INTEGER(11)},timeout:{type:Sequelize.INTEGER(11),defaultValue:0},retry:{type:Sequelize.INTEGER(11),defaultValue:0},timeoutpriority:{type:Sequelize[_0x1d77[3]]},weight:{type:Sequelize.INTEGER(11),allowNull:true,defaultValue:0},wrapuptime:{type:Sequelize.INTEGER(11),defaultValue:0},autofill:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18]),defaultValue:_0x1d77[17]},autopause:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18],_0x1d77[19]),defaultValue:_0x1d77[18]},autopausedelay:{type:Sequelize.INTEGER(11)},autopausebusy:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18]),defaultValue:_0x1d77[18]},autopauseunavail:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18]),defaultValue:_0x1d77[18]},maxlen:{type:Sequelize.INTEGER(11),defaultValue:0},setinterfacevar:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18]),defaultValue:_0x1d77[18]},setqueueentryvar:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18]),defautValue:_0x1d77[18]},setqueuevar:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18]),defaultValue:_0x1d77[18]},eventmemberstatus:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18]),defaultValue:_0x1d77[18]},membermacro:{type:Sequelize[_0x1d77[3]],allowNull:true},membergosub:{type:Sequelize[_0x1d77[3]],allowNull:true},announce_frequency:{type:Sequelize.INTEGER(11),defaultValue:0},min_announce_frequency:{type:Sequelize.INTEGER(11),defaultValue:0},periodic_announce_frequency:{type:Sequelize.INTEGER(11),defaultValue:0},random_periodic_announce:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18]),defaultValue:_0x1d77[18]},relative_periodic_announce:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18]),defaultValue:_0x1d77[17]},announce_holdtime:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18],_0x1d77[20]),defaultValue:_0x1d77[18]},announce_position:{type:Sequelize[_0x1d77[3]],defaultValue:_0x1d77[18]},announce_to_first_user:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18])},announce_position_limit:{type:Sequelize.INTEGER(11)},announce_round_seconds:{type:Sequelize.ENUM(_0x1d77[21],_0x1d77[22],_0x1d77[23],_0x1d77[24],_0x1d77[25],_0x1d77[26]),defaultValue:_0x1d77[21]},monitor_format:{type:Sequelize[_0x1d77[3]],defaultValue:_0x1d77[8]},monitor_type:{type:Sequelize[_0x1d77[3]]},queue_youarenext:{type:Sequelize[_0x1d77[3]],defaultValue:null},queue_thereare:{type:Sequelize[_0x1d77[3]],defaultValue:null},queue_callswaiting:{type:Sequelize[_0x1d77[3]],defaultValue:null},queue_holdtime:{type:Sequelize[_0x1d77[3]],defaultValue:null},queue_minute:{type:Sequelize[_0x1d77[3]],allowNull:true,defaultValue:null},queue_minutes:{type:Sequelize[_0x1d77[3]],defaultValue:null},queue_seconds:{type:Sequelize[_0x1d77[3]],defaultValue:null},queue_thankyou:{type:Sequelize[_0x1d77[3]],defaultValue:null},queue_reporthold:{type:Sequelize[_0x1d77[3]]},queue_quantity1:{type:Sequelize[_0x1d77[3]]},queue_quantity2:{type:Sequelize[_0x1d77[3]]},queue_periodic_announce:{type:Sequelize[_0x1d77[3]]},queue_less_than:{type:Sequelize[_0x1d77[3]]},periodic_announce:{type:Sequelize[_0x1d77[3]],defaultValue:_0x1d77[8]},joinempty:{type:Sequelize[_0x1d77[3]],defaultValue:_0x1d77[17],set:function(_0xc538x2){this[_0x1d77[30]](_0x1d77[27],_0xc538x2?_0xc538x2[_0x1d77[29]](_0x1d77[28]):[])},get:function(){return this[_0x1d77[31]](_0x1d77[27])?this[_0x1d77[31]](_0x1d77[27])[_0x1d77[32]](_0x1d77[28]):[]}},leavewhenempty:{type:Sequelize[_0x1d77[3]],defaultValue:_0x1d77[18],set:function(_0xc538x2){this[_0x1d77[30]](_0x1d77[33],_0xc538x2?_0xc538x2[_0x1d77[29]](_0x1d77[28]):[])},get:function(){return this[_0x1d77[31]](_0x1d77[33])?this[_0x1d77[31]](_0x1d77[33])[_0x1d77[32]](_0x1d77[28]):[]}},reportholdtime:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18]),defaultValue:_0x1d77[18]},ringinuse:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18]),defaultValue:_0x1d77[18]},memberdelay:{type:Sequelize.INTEGER(11),defaultValue:0},timeoutrestart:{type:Sequelize.ENUM(_0x1d77[17],_0x1d77[18]),defaultValue:_0x1d77[18]},defaultrule:{type:Sequelize[_0x1d77[3]]},description:{type:Sequelize[_0x1d77[3]]},acw:{type:Sequelize[_0x1d77[34]],defaultValue:0},acwTimeout:{type:Sequelize.INTEGER(11),defaultValue:10},dialActive:{type:Sequelize[_0x1d77[34]],defaultValue:0,comment:_0x1d77[35]},dialMethod:{type:Sequelize.ENUM(_0x1d77[36],_0x1d77[37],_0x1d77[38],_0x1d77[39]),defaultValue:_0x1d77[37],comment:_0x1d77[40]},dialLimitChannel:{type:Sequelize.INTEGER(4)[_0x1d77[41]],defaultValue:0,validate:{min:0,max:9999},comment:_0x1d77[42]},dialLimitQueue:{type:Sequelize.INTEGER(4)[_0x1d77[41]],defaultValue:0,validate:{min:0,max:9999},comment:_0x1d77[43]},dialPowerLevel:{type:Sequelize.FLOAT(2)[_0x1d77[41]],defaultValue:1,validate:{min:1,max:10},comment:_0x1d77[44]},dialPredictiveOptimization:{type:Sequelize.ENUM(_0x1d77[45],_0x1d77[46]),defaultValue:_0x1d77[46],comment:_0x1d77[47]},dialPredictiveOptimizationPercentage:{type:Sequelize.FLOAT(2)[_0x1d77[41]],defaultValue:3,validate:{min:1,max:95},comment:_0x1d77[48]},dialPredictiveInterval:{type:Sequelize.INTEGER(3)[_0x1d77[41]],defaultValue:10,validate:{min:5,max:30},comment:_0x1d77[49]},dialOriginateCallerIdName:{type:Sequelize[_0x1d77[3]]},dialOriginateCallerIdNumber:{type:Sequelize[_0x1d77[3]]},dialOriginateTimeout:{type:Sequelize.INTEGER(3)[_0x1d77[41]],defaultValue:30,validate:{min:1,max:999},comment:_0x1d77[50]},dialQueueOptions:{type:Sequelize[_0x1d77[3]],defaultValue:_0x1d77[51],comment:_0x1d77[52]},dialQueueTimeout:{type:Sequelize.INTEGER(2)[_0x1d77[41]],defaultValue:3,validate:{min:1,max:99},comment:_0x1d77[53]},dialQueueProject:{type:Sequelize[_0x1d77[3]],comment:_0x1d77[54]},dialCongestionMaxRetry:{type:Sequelize.INTEGER(3)[_0x1d77[41]],defaultValue:3,validate:{min:1,max:999},comment:_0x1d77[55]},dialCongestionRetryFrequency:{type:Sequelize.INTEGER(5)[_0x1d77[41]],validate:{min:1,max:99999},defaultValue:150,comment:_0x1d77[56]},dialBusyMaxRetry:{type:Sequelize.INTEGER(3)[_0x1d77[41]],defaultValue:3,validate:{min:1,max:999},comment:_0x1d77[57]},dialBusyRetryFrequency:{type:Sequelize.INTEGER(5)[_0x1d77[41]],validate:{min:1,max:99999},defaultValue:150,comment:_0x1d77[58]},dialNoAnswerMaxRetry:{type:Sequelize.INTEGER(3)[_0x1d77[41]],defaultValue:3,comment:_0x1d77[59]},dialNoAnswerRetryFrequency:{type:Sequelize.INTEGER(5)[_0x1d77[41]],validate:{min:1,max:99999},defaultValue:150,comment:_0x1d77[60]},dialGlobalMaxRetry:{type:Sequelize.INTEGER(3)[_0x1d77[41]],validate:{min:1,max:999},defaultValue:4,comment:_0x1d77[61]},dialTimezone:{type:Sequelize[_0x1d77[3]],defaultValue:null},dialGlobalInterval:{type:Sequelize[_0x1d77[3]],defaultValue:_0x1d77[62]}}
\ No newline at end of file
diff --git a/server/api/voiceQueue/voiceQueue.controller.js b/server/api/voiceQueue/voiceQueue.controller.js
new file mode 100644 (file)
index 0000000..d24db94
--- /dev/null
@@ -0,0 +1 @@
+var _0x4888=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x66\x69\x6E\x64\x4F\x6E\x65","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x67\x65\x74\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x67\x65\x74\x54\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x61\x64\x64\x54\x65\x61\x6D\x73","\x69\x64\x73","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x75\x6E\x69\x6F\x6E","\x55\x73\x65\x72","\x66\x69\x6E\x64\x41\x6C\x6C","\x72\x65\x6D\x6F\x76\x65\x54\x65\x61\x6D\x73","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x66\x6F\x72\x6D\x61\x74","\x6C\x6F\x67\x69\x6E\x49\x6E\x50\x61\x75\x73\x65","\x75\x70\x73\x65\x72\x74","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x70\x75\x73\x68","\x61\x6C\x6C","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x6F\x6D\x69\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x4D\x65\x6D\x62\x65\x72\x73","\x67\x65\x74\x4C\x69\x73\x74\x73","\x43\x6D\x4C\x69\x73\x74","\x61\x64\x64\x4C\x69\x73\x74\x73","\x67\x65\x74","\x70\x68\x6F\x6E\x65","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x4E\x4F\x54\x20\x45\x58\x49\x53\x54\x53\x20\x28\x3F\x29","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73\x2E\x69\x64\x20\x3D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x2E\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64\x20\x3D\x20\x3F","\x4C\x69\x73\x74\x49\x64\x20\x3D\x20\x3F\x20","\x43\x6D\x4C\x69\x73\x74\x49\x64","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x66\x72\x6F\x6D","\x4E\x55\x4C\x4C","\x66\x69\x65\x6C\x64","\x73\x65\x6C\x65\x63\x74","\x70\x68\x6F\x6E\x65\x20\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C","\x4C\x69\x73\x74\x49\x64\x20\x3D\x20\x3F","\x63\x6D\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x4E\x4F\x57\x28\x29","\x66\x72\x6F\x6D\x51\x75\x65\x72\x79","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72","\x69\x6E\x74\x6F","\x69\x6E\x73\x65\x72\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x73\x70\x72\x65\x61\x64","\x72\x65\x6D\x6F\x76\x65\x4C\x69\x73\x74\x73","\x67\x65\x74\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x72\x65\x6D\x6F\x76\x65\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73"];_0x4888[0];var jsonpatch=require(_0x4888[1]);var rp=require(_0x4888[2]);var moment=require(_0x4888[3]);var BPromise=require(_0x4888[4]);var util=require(_0x4888[5]);var path=require(_0x4888[6]);var sox=require(_0x4888[7]);var ejs=require(_0x4888[8]);var fs=require(_0x4888[9]);var _=require(_0x4888[10]);var squel=require(_0x4888[11]);var crypto=require(_0x4888[12]);var jsforce=require(_0x4888[13]);var toCsv=require(_0x4888[14]);var qs=require(_0x4888[15]);var logger=require(_0x4888[17])(_0x4888[16]);var utils=require(_0x4888[18]);var config=require(_0x4888[19]);var db=require(_0x4888[21])[_0x4888[20]];function respondWithStatusCode(_0xf90ax15,_0xf90ax16,_0xf90ax17){_0xf90ax16= _0xf90ax16|| 204;return function(_0xf90ax18){if(_0xf90ax18){logger[_0x4888[24]](_0x4888[22],_0xf90ax17,_0xf90ax16,_0x4888[23]);logger[_0x4888[26]](_0x4888[25],_0xf90ax17,_0xf90ax16,_0x4888[23]);return _0xf90ax15[_0x4888[27]](_0xf90ax16)};return _0xf90ax15[_0x4888[29]](304)[_0x4888[28]]()}}function respondWithResult(_0xf90ax15,_0xf90ax16,_0xf90ax17){_0xf90ax16= _0xf90ax16|| 200;return function(_0xf90ax18){if(_0xf90ax18){logger[_0x4888[24]](_0x4888[22],_0xf90ax17,_0xf90ax16,_0x4888[30]);logger[_0x4888[26]](_0x4888[25],_0xf90ax17,_0xf90ax16,_0x4888[30],JSON[_0x4888[31]](_0xf90ax18));return _0xf90ax15[_0x4888[29]](_0xf90ax16)[_0x4888[32]](_0xf90ax18)};return _0xf90ax15[_0x4888[29]](304)[_0x4888[28]]()}}function respondWithFilteredResult(_0xf90ax15,_0xf90ax1b,_0xf90ax17){return function(_0xf90ax18){if(_0xf90ax18){var _0xf90ax1c=_0xf90ax18[_0x4888[33]],_0xf90ax1d=_0xf90ax1b[_0x4888[34]],_0xf90ax1e=_0xf90ax1b[_0x4888[34]]+ _0xf90ax1b[_0x4888[35]],_0xf90ax16;if(_0xf90ax1e>= _0xf90ax1c){_0xf90ax1e= _0xf90ax1c;_0xf90ax16= 200}else {_0xf90ax16= 206};_0xf90ax15[_0x4888[29]](_0xf90ax16);logger[_0x4888[24]](_0x4888[22],_0xf90ax17,_0xf90ax16,_0x4888[36]);logger[_0x4888[26]](_0x4888[25],_0xf90ax17,_0xf90ax16,_0x4888[30],JSON[_0x4888[31]](_0xf90ax18));return _0xf90ax15[_0x4888[40]](_0x4888[37],_0xf90ax1d+ _0x4888[38]+ _0xf90ax1e+ _0x4888[39]+ _0xf90ax1c)[_0x4888[32]](_0xf90ax18)};return null}}function patchUpdates(_0xf90ax20){return function(_0xf90ax18){try{jsonpatch[_0x4888[41]](_0xf90ax18,_0xf90ax20,true)}catch(err){return BPromise[_0x4888[42]](err)};return _0xf90ax18[_0x4888[43]]()}}function saveUpdates(_0xf90ax22,_0xf90ax16,_0xf90ax17){return function(_0xf90ax18){if(_0xf90ax18){return _0xf90ax18[_0x4888[46]](_0xf90ax22)[_0x4888[45]](function(_0xf90ax23){logger[_0x4888[24]](_0x4888[22],_0xf90ax17,_0xf90ax16,_0x4888[44]);logger[_0x4888[26]](_0x4888[25],_0xf90ax17,_0xf90ax16,_0x4888[44],JSON[_0x4888[31]](_0xf90ax18));return _0xf90ax23})};return null}}function removeEntity(_0xf90ax15,_0xf90ax16,_0xf90ax17){return function(_0xf90ax18){if(_0xf90ax18){return _0xf90ax18[_0x4888[48]]()[_0x4888[45]](function(){logger[_0x4888[24]](_0x4888[22],_0xf90ax17,_0xf90ax16,_0x4888[47]);logger[_0x4888[26]](_0x4888[25],_0xf90ax17,_0xf90ax16,_0x4888[47],JSON[_0x4888[31]](_0xf90ax18));_0xf90ax15[_0x4888[29]](204)[_0x4888[28]]()})}}}function handleEntityNotFound(_0xf90ax15,_0xf90ax16,_0xf90ax17){return function(_0xf90ax18){if(!_0xf90ax18){logger[_0x4888[50]](_0x4888[22],_0xf90ax17,404,_0x4888[49]);_0xf90ax15[_0x4888[29]](404)[_0x4888[28]]();return null};return _0xf90ax18}}function handleError(_0xf90ax15,_0xf90ax16,_0xf90ax17){_0xf90ax16= _0xf90ax16|| 500;return function(_0xf90ax27){logger[_0x4888[50]](_0x4888[22],_0xf90ax17,_0xf90ax16,JSON[_0x4888[31]](_0xf90ax27));delete _0xf90ax27[_0x4888[51]];_0xf90ax15[_0x4888[29]](_0xf90ax16)[_0x4888[52]](_0xf90ax27)}}exports[_0x4888[53]]= function(_0xf90ax28,_0xf90ax15){var _0xf90ax1b={},_0xf90ax29={};_0xf90ax29[_0x4888[54]]= _[_0x4888[57]](db[_0x4888[56]][_0x4888[55]]);_0xf90ax29[_0x4888[58]]= _[_0x4888[57]](_0xf90ax28[_0x4888[58]]);_0xf90ax29[_0x4888[59]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],_0xf90ax29[_0x4888[58]]);_0xf90ax1b[_0x4888[61]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],qs[_0x4888[62]](_0xf90ax28[_0x4888[58]][_0x4888[62]]));_0xf90ax1b[_0x4888[61]]= (_0xf90ax1b[_0x4888[61]][_0x4888[63]])?_0xf90ax1b[_0x4888[61]]:_0xf90ax29[_0x4888[54]];if(!_0xf90ax28[_0x4888[58]][_0x4888[65]](_0x4888[64])){_0xf90ax1b[_0x4888[35]]= qs[_0x4888[35]](_0xf90ax28[_0x4888[58]][_0x4888[35]]);_0xf90ax1b[_0x4888[34]]= qs[_0x4888[34]](_0xf90ax28[_0x4888[58]][_0x4888[34]])};_0xf90ax1b[_0x4888[66]]= qs[_0x4888[67]](_0xf90ax28[_0x4888[58]][_0x4888[67]]);_0xf90ax1b[_0x4888[68]]= qs[_0x4888[59]](_[_0x4888[69]](_0xf90ax28[_0x4888[58]],_0xf90ax29[_0x4888[59]]));if(_0xf90ax28[_0x4888[58]][_0x4888[70]]){_0xf90ax1b[_0x4888[68]]= _[_0x4888[73]](_0xf90ax1b[_0x4888[68]],{$or:_[_0x4888[72]](_0xf90ax1b[_0x4888[61]],function(_0xf90ax2a){var _0xf90ax2b={};_0xf90ax2b[_0xf90ax2a]= {$like:_0x4888[71]+ _0xf90ax28[_0x4888[58]][_0x4888[70]]+ _0x4888[71]};return _0xf90ax2b})})};_0xf90ax1b= _[_0x4888[73]]({},_0xf90ax1b,_0xf90ax28[_0x4888[74]]);return db[_0x4888[56]][_0x4888[76]](_0xf90ax1b)[_0x4888[45]](respondWithFilteredResult(_0xf90ax15,_0xf90ax1b,_0x4888[53]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[53]))};exports[_0x4888[77]]= function(_0xf90ax28,_0xf90ax15){var _0xf90ax1b={raw:false,where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}},_0xf90ax29={};_0xf90ax29[_0x4888[54]]= _[_0x4888[57]](db[_0x4888[56]][_0x4888[55]]);_0xf90ax29[_0x4888[58]]= _[_0x4888[57]](_0xf90ax28[_0x4888[58]]);_0xf90ax29[_0x4888[59]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],_0xf90ax29[_0x4888[58]]);_0xf90ax1b[_0x4888[61]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],qs[_0x4888[62]](_0xf90ax28[_0x4888[58]][_0x4888[62]]));_0xf90ax1b[_0x4888[61]]= (_0xf90ax1b[_0x4888[61]][_0x4888[63]])?_0xf90ax1b[_0x4888[61]]:_0xf90ax29[_0x4888[54]];_0xf90ax1b= _[_0x4888[73]]({},_0xf90ax1b,_0xf90ax28[_0x4888[74]]);return db[_0x4888[56]][_0x4888[80]](_0xf90ax1b)[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[77]))[_0x4888[45]](respondWithResult(_0xf90ax15,null,_0x4888[77]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[77]))};exports[_0x4888[81]]= function(_0xf90ax28,_0xf90ax15){return db[_0x4888[56]][_0x4888[81]](_0xf90ax28[_0x4888[82]],{})[_0x4888[45]](respondWithResult(_0xf90ax15,201,_0x4888[81]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[81]))};exports[_0x4888[46]]= function(_0xf90ax28,_0xf90ax15){if(_0xf90ax28[_0x4888[82]][_0x4888[78]]){delete _0xf90ax28[_0x4888[82]][_0x4888[78]]};return db[_0x4888[56]][_0x4888[80]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[46]))[_0x4888[45]](saveUpdates(_0xf90ax28[_0x4888[82]],null,_0x4888[46]))[_0x4888[45]](respondWithResult(_0xf90ax15,null,_0x4888[46]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[46]))};exports[_0x4888[48]]= function(_0xf90ax28,_0xf90ax15){return db[_0x4888[56]][_0x4888[80]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[48]))[_0x4888[45]](removeEntity(_0xf90ax15,null,_0x4888[48]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[48]))};exports[_0x4888[83]]= function(_0xf90ax28,_0xf90ax15,_0xf90ax2c){var _0xf90ax1b={raw:true,where:{}},_0xf90ax29={};return db[_0x4888[56]][_0x4888[86]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[83]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){_0xf90ax29[_0x4888[54]]= _[_0x4888[57]](db[_0x4888[84]][_0x4888[55]]);_0xf90ax29[_0x4888[58]]= _[_0x4888[57]](_0xf90ax28[_0x4888[58]]);_0xf90ax29[_0x4888[59]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],_0xf90ax29[_0x4888[58]]);_0xf90ax1b[_0x4888[61]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],qs[_0x4888[62]](_0xf90ax28[_0x4888[58]][_0x4888[62]]));_0xf90ax1b[_0x4888[61]]= (_0xf90ax1b[_0x4888[61]][_0x4888[63]])?_0xf90ax1b[_0x4888[61]]:_0xf90ax29[_0x4888[54]];if(!_0xf90ax28[_0x4888[58]][_0x4888[65]](_0x4888[64])){_0xf90ax1b[_0x4888[35]]= qs[_0x4888[35]](_0xf90ax28[_0x4888[58]][_0x4888[35]]);_0xf90ax1b[_0x4888[34]]= qs[_0x4888[34]](_0xf90ax28[_0x4888[58]][_0x4888[34]])};_0xf90ax1b[_0x4888[66]]= qs[_0x4888[67]](_0xf90ax28[_0x4888[58]][_0x4888[67]]);_0xf90ax1b[_0x4888[68]]= qs[_0x4888[59]](_[_0x4888[69]](_0xf90ax28[_0x4888[58]],_0xf90ax29[_0x4888[59]]));_0xf90ax1b[_0x4888[68]][_0x4888[85]]= _0xf90ax18[_0x4888[78]];if(_0xf90ax28[_0x4888[58]][_0x4888[70]]){_0xf90ax1b[_0x4888[68]]= _[_0x4888[73]](_0xf90ax1b[_0x4888[68]],{$or:_[_0x4888[72]](_0xf90ax1b[_0x4888[61]],function(_0xf90ax2a){var _0xf90ax2b={};_0xf90ax2b[_0xf90ax2a]= {$like:_0x4888[71]+ _0xf90ax28[_0x4888[58]][_0x4888[70]]+ _0x4888[71]};return _0xf90ax2b})})};_0xf90ax1b= _[_0x4888[73]]({},_0xf90ax1b,_0xf90ax28[_0x4888[74]]);return db[_0x4888[84]][_0x4888[76]](_0xf90ax1b)}})[_0x4888[45]](respondWithFilteredResult(_0xf90ax15,_0xf90ax1b,_0x4888[83]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[83]))};exports[_0x4888[87]]= function(_0xf90ax28,_0xf90ax15,_0xf90ax2c){var _0xf90ax1b={raw:true,where:{}},_0xf90ax29={};return db[_0x4888[56]][_0x4888[86]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[87]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){_0xf90ax29[_0x4888[54]]= _[_0x4888[57]](db[_0x4888[88]][_0x4888[55]]);_0xf90ax29[_0x4888[58]]= _[_0x4888[57]](_0xf90ax28[_0x4888[58]]);_0xf90ax29[_0x4888[59]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],_0xf90ax29[_0x4888[58]]);_0xf90ax1b[_0x4888[61]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],qs[_0x4888[62]](_0xf90ax28[_0x4888[58]][_0x4888[62]]));_0xf90ax1b[_0x4888[61]]= (_0xf90ax1b[_0x4888[61]][_0x4888[63]])?_0xf90ax1b[_0x4888[61]]:_0xf90ax29[_0x4888[54]];if(!_0xf90ax28[_0x4888[58]][_0x4888[65]](_0x4888[64])){_0xf90ax1b[_0x4888[35]]= qs[_0x4888[35]](_0xf90ax28[_0x4888[58]][_0x4888[35]]);_0xf90ax1b[_0x4888[34]]= qs[_0x4888[34]](_0xf90ax28[_0x4888[58]][_0x4888[34]])};_0xf90ax1b[_0x4888[66]]= qs[_0x4888[67]](_0xf90ax28[_0x4888[58]][_0x4888[67]]);_0xf90ax1b[_0x4888[68]]= qs[_0x4888[59]](_[_0x4888[69]](_0xf90ax28[_0x4888[58]],_0xf90ax29[_0x4888[59]]));_0xf90ax1b[_0x4888[68]][_0x4888[85]]= _0xf90ax18[_0x4888[78]];if(_0xf90ax28[_0x4888[58]][_0x4888[70]]){_0xf90ax1b[_0x4888[68]]= _[_0x4888[73]](_0xf90ax1b[_0x4888[68]],{$or:_[_0x4888[72]](_0xf90ax1b[_0x4888[61]],function(_0xf90ax2a){var _0xf90ax2b={};_0xf90ax2b[_0xf90ax2a]= {$like:_0x4888[71]+ _0xf90ax28[_0x4888[58]][_0x4888[70]]+ _0x4888[71]};return _0xf90ax2b})})};_0xf90ax1b= _[_0x4888[73]]({},_0xf90ax1b,_0xf90ax28[_0x4888[74]]);return db[_0x4888[88]][_0x4888[76]](_0xf90ax1b)}})[_0x4888[45]](respondWithFilteredResult(_0xf90ax15,_0xf90ax1b,_0x4888[87]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[87]))};exports[_0x4888[89]]= function(_0xf90ax28,_0xf90ax15,_0xf90ax2c){var _0xf90ax1b={raw:true,where:{}},_0xf90ax29={};return db[_0x4888[56]][_0x4888[86]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[89]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){_0xf90ax29[_0x4888[54]]= _[_0x4888[57]](db[_0x4888[90]][_0x4888[55]]);_0xf90ax29[_0x4888[58]]= _[_0x4888[57]](_0xf90ax28[_0x4888[58]]);_0xf90ax29[_0x4888[59]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],_0xf90ax29[_0x4888[58]]);_0xf90ax1b[_0x4888[61]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],qs[_0x4888[62]](_0xf90ax28[_0x4888[58]][_0x4888[62]]));_0xf90ax1b[_0x4888[61]]= (_0xf90ax1b[_0x4888[61]][_0x4888[63]])?_0xf90ax1b[_0x4888[61]]:_0xf90ax29[_0x4888[54]];if(!_0xf90ax28[_0x4888[58]][_0x4888[65]](_0x4888[64])){_0xf90ax1b[_0x4888[35]]= qs[_0x4888[35]](_0xf90ax28[_0x4888[58]][_0x4888[35]]);_0xf90ax1b[_0x4888[34]]= qs[_0x4888[34]](_0xf90ax28[_0x4888[58]][_0x4888[34]])};_0xf90ax1b[_0x4888[66]]= qs[_0x4888[67]](_0xf90ax28[_0x4888[58]][_0x4888[67]]);_0xf90ax1b[_0x4888[68]]= qs[_0x4888[59]](_[_0x4888[69]](_0xf90ax28[_0x4888[58]],_0xf90ax29[_0x4888[59]]));_0xf90ax1b[_0x4888[68]][_0x4888[85]]= _0xf90ax18[_0x4888[78]];if(_0xf90ax28[_0x4888[58]][_0x4888[70]]){_0xf90ax1b[_0x4888[68]]= _[_0x4888[73]](_0xf90ax1b[_0x4888[68]],{$or:_[_0x4888[72]](_0xf90ax1b[_0x4888[61]],function(_0xf90ax2a){var _0xf90ax2b={};_0xf90ax2b[_0xf90ax2a]= {$like:_0x4888[71]+ _0xf90ax28[_0x4888[58]][_0x4888[70]]+ _0x4888[71]};return _0xf90ax2b})})};_0xf90ax1b= _[_0x4888[73]]({},_0xf90ax1b,_0xf90ax28[_0x4888[74]]);return db[_0x4888[90]][_0x4888[76]](_0xf90ax1b)}})[_0x4888[45]](respondWithFilteredResult(_0xf90ax15,_0xf90ax1b,_0x4888[89]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[89]))};exports[_0x4888[91]]= function(_0xf90ax28,_0xf90ax15,_0xf90ax2c){var _0xf90ax1b={raw:true,where:{}},_0xf90ax29={};return db[_0x4888[56]][_0x4888[86]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[91]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){_0xf90ax29[_0x4888[54]]= _[_0x4888[57]](db[_0x4888[92]][_0x4888[55]]);_0xf90ax29[_0x4888[58]]= _[_0x4888[57]](_0xf90ax28[_0x4888[58]]);_0xf90ax29[_0x4888[59]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],_0xf90ax29[_0x4888[58]]);_0xf90ax1b[_0x4888[61]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],qs[_0x4888[62]](_0xf90ax28[_0x4888[58]][_0x4888[62]]));_0xf90ax1b[_0x4888[61]]= (_0xf90ax1b[_0x4888[61]][_0x4888[63]])?_0xf90ax1b[_0x4888[61]]:_0xf90ax29[_0x4888[54]];if(!_0xf90ax28[_0x4888[58]][_0x4888[65]](_0x4888[64])){_0xf90ax1b[_0x4888[35]]= qs[_0x4888[35]](_0xf90ax28[_0x4888[58]][_0x4888[35]]);_0xf90ax1b[_0x4888[34]]= qs[_0x4888[34]](_0xf90ax28[_0x4888[58]][_0x4888[34]])};_0xf90ax1b[_0x4888[66]]= qs[_0x4888[67]](_0xf90ax28[_0x4888[58]][_0x4888[67]]);_0xf90ax1b[_0x4888[68]]= qs[_0x4888[59]](_[_0x4888[69]](_0xf90ax28[_0x4888[58]],_0xf90ax29[_0x4888[59]]));_0xf90ax1b[_0x4888[68]][_0x4888[85]]= _0xf90ax18[_0x4888[78]];if(_0xf90ax28[_0x4888[58]][_0x4888[70]]){_0xf90ax1b[_0x4888[68]]= _[_0x4888[73]](_0xf90ax1b[_0x4888[68]],{$or:_[_0x4888[72]](_0xf90ax1b[_0x4888[61]],function(_0xf90ax2a){var _0xf90ax2b={};_0xf90ax2b[_0xf90ax2a]= {$like:_0x4888[71]+ _0xf90ax28[_0x4888[58]][_0x4888[70]]+ _0x4888[71]};return _0xf90ax2b})})};_0xf90ax1b= _[_0x4888[73]]({},_0xf90ax1b,_0xf90ax28[_0x4888[74]]);return db[_0x4888[92]][_0x4888[76]](_0xf90ax1b)}})[_0x4888[45]](respondWithFilteredResult(_0xf90ax15,_0xf90ax1b,_0x4888[91]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[91]))};exports[_0x4888[93]]= function(_0xf90ax28,_0xf90ax18,_0xf90ax2c){var _0xf90ax1b={};var _0xf90ax29={};var _0xf90ax2d;var _0xf90ax1c;return db[_0x4888[56]][_0x4888[86]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax18,null,_0x4888[93]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){_0xf90ax2d= _0xf90ax18;_0xf90ax29[_0x4888[54]]= _[_0x4888[57]](db[_0x4888[94]][_0x4888[55]]);_0xf90ax29[_0x4888[58]]= _[_0x4888[57]](_0xf90ax28[_0x4888[58]]);_0xf90ax29[_0x4888[59]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],_0xf90ax29[_0x4888[58]]);_0xf90ax1b[_0x4888[61]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],qs[_0x4888[62]](_0xf90ax28[_0x4888[58]][_0x4888[62]]));_0xf90ax1b[_0x4888[61]]= (_0xf90ax1b[_0x4888[61]][_0x4888[63]])?_0xf90ax1b[_0x4888[61]]:_0xf90ax29[_0x4888[54]];_0xf90ax1b[_0x4888[66]]= qs[_0x4888[67]](_0xf90ax28[_0x4888[58]][_0x4888[67]]);_0xf90ax1b[_0x4888[68]]= qs[_0x4888[59]](_[_0x4888[69]](_0xf90ax28[_0x4888[58]],_0xf90ax29[_0x4888[59]]));if(_0xf90ax28[_0x4888[58]][_0x4888[70]]){_0xf90ax1b[_0x4888[68]]= _[_0x4888[73]](_0xf90ax1b[_0x4888[68]],{$or:_[_0x4888[72]](_0xf90ax1b[_0x4888[61]],function(_0xf90ax2a){var _0xf90ax2b={};_0xf90ax2b[_0xf90ax2a]= {$like:_0x4888[71]+ _0xf90ax28[_0x4888[58]][_0x4888[70]]+ _0x4888[71]};return _0xf90ax2b})})};_0xf90ax1b= _[_0x4888[73]]({},_0xf90ax1b,_0xf90ax28[_0x4888[74]]);return _0xf90ax2d[_0x4888[93]](_0xf90ax1b)}})[_0x4888[45]](function(_0xf90ax2f){if(_0xf90ax2f){_0xf90ax1c= _0xf90ax2f[_0x4888[63]];if(!_0xf90ax28[_0x4888[58]][_0x4888[65]](_0x4888[64])){_0xf90ax1b[_0x4888[35]]= qs[_0x4888[35]](_0xf90ax28[_0x4888[58]][_0x4888[35]]);_0xf90ax1b[_0x4888[34]]= qs[_0x4888[34]](_0xf90ax28[_0x4888[58]][_0x4888[34]])};return _0xf90ax2d[_0x4888[93]](_0xf90ax1b)}})[_0x4888[45]](function(_0xf90ax2e){return _0xf90ax2e?{count:_0xf90ax1c,rows:_0xf90ax2e}:null})[_0x4888[45]](respondWithResult(_0xf90ax18,null,_0x4888[93]))[_0x4888[75]](handleError(_0xf90ax18,null,_0x4888[93]))};exports[_0x4888[95]]= function(_0xf90ax28,_0xf90ax15,_0xf90ax2c){var _0xf90ax30=[];var _0xf90ax31;return db[_0x4888[94]][_0x4888[102]]({where:{id:_0xf90ax28[_0x4888[82]][_0x4888[96]]},attributes:[_0x4888[78]],include:[{model:db[_0x4888[101]],as:_0x4888[99],attributes:[_0x4888[78]],raw:true}]})[_0x4888[45]](function(_0xf90ax34){if(_0xf90ax34){for(var _0xf90ax35=0;_0xf90ax35< _0xf90ax34[_0x4888[63]];_0xf90ax35+= 1){for(var _0xf90ax36=0;_0xf90ax36< _0xf90ax34[_0xf90ax35][_0x4888[99]][_0x4888[63]];_0xf90ax36+= 1){_0xf90ax30= _[_0x4888[100]](_0xf90ax30,[_0xf90ax34[_0xf90ax35][_0x4888[99]][_0xf90ax36][_0x4888[78]]])}};return _0xf90ax30}})[_0x4888[45]](function(_0xf90ax33){if(_0xf90ax33){return db[_0x4888[56]][_0x4888[80]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})}})[_0x4888[45]](function(_0xf90ax32){if(_0xf90ax32){_0xf90ax31= _0xf90ax32;return _0xf90ax31[_0x4888[98]](_0xf90ax30,{penalty:_0xf90ax28[_0x4888[82]][_0x4888[97]]})}})[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){return _0xf90ax31[_0x4888[95]](_0xf90ax28[_0x4888[82]][_0x4888[96]])}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[95]))[_0x4888[45]](respondWithStatusCode(_0xf90ax15,null,_0x4888[95]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[95]))};exports[_0x4888[103]]= function(_0xf90ax28,_0xf90ax15,_0xf90ax2c){var _0xf90ax30=[];var _0xf90ax31;return db[_0x4888[94]][_0x4888[102]]({where:{id:_0xf90ax28[_0x4888[58]][_0x4888[96]]},attributes:[_0x4888[78]],include:[{model:db[_0x4888[101]],as:_0x4888[99],attributes:[_0x4888[78]],raw:true}]})[_0x4888[45]](function(_0xf90ax34){if(_0xf90ax34){for(var _0xf90ax35=0;_0xf90ax35< _0xf90ax34[_0x4888[63]];_0xf90ax35+= 1){for(var _0xf90ax36=0;_0xf90ax36< _0xf90ax34[_0xf90ax35][_0x4888[99]][_0x4888[63]];_0xf90ax36+= 1){_0xf90ax30= _[_0x4888[100]](_0xf90ax30,[_0xf90ax34[_0xf90ax35][_0x4888[99]][_0xf90ax36][_0x4888[78]]])}};return _0xf90ax30}})[_0x4888[45]](function(_0xf90ax33){if(_0xf90ax33){return db[_0x4888[56]][_0x4888[80]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})}})[_0x4888[45]](function(_0xf90ax32){if(_0xf90ax32){_0xf90ax31= _0xf90ax32;return _0xf90ax31[_0x4888[104]](_0xf90ax30)}})[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax31){return _0xf90ax31[_0x4888[103]](_0xf90ax28[_0x4888[58]][_0x4888[96]])}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[103]))[_0x4888[45]](respondWithStatusCode(_0xf90ax15,null,_0x4888[103]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[103]))};exports[_0x4888[98]]= function(_0xf90ax28,_0xf90ax15,_0xf90ax2c){var _0xf90ax37,_0xf90ax31;return db[_0x4888[56]][_0x4888[80]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[98]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){_0xf90ax31= _0xf90ax18;return _0xf90ax18[_0x4888[98]](_0xf90ax28[_0x4888[82]][_0x4888[96]],_[_0x4888[114]](_0xf90ax28[_0x4888[82]],[_0x4888[96],_0x4888[78]])|| {})};return null})[_0x4888[45]](function(_0xf90ax39){_0xf90ax37= _0xf90ax39|| [];if(_0xf90ax31&& _0xf90ax28[_0x4888[82]][_0x4888[113]]){return db[_0x4888[101]][_0x4888[102]]({where:{id:_0xf90ax28[_0x4888[82]][_0x4888[96]]},attributes:[_0x4888[78],_0x4888[51],_0x4888[108]],raw:true})}})[_0x4888[45]](function(_0xf90ax39){if(_0xf90ax39&& _0xf90ax39[_0x4888[63]]){var _0xf90ax3a=[];for(var _0xf90ax35=0;_0xf90ax35< _0xf90ax39[_0x4888[63]];_0xf90ax35++){_0xf90ax3a[_0x4888[111]](db[_0x4888[110]][_0x4888[109]]({membername:_0xf90ax39[_0xf90ax35][_0x4888[51]],UserId:_0xf90ax39[_0xf90ax35][_0x4888[78]],queue_name:_0xf90ax31[_0x4888[51]],VoiceQueueId:_0xf90ax31[_0x4888[78]],interface:util[_0x4888[107]](_0x4888[105],_0x4888[106],_0xf90ax39[_0xf90ax35][_0x4888[51]]),paused:_0xf90ax39[_0xf90ax35][_0x4888[108]]|| false,penalty:_0xf90ax28[_0x4888[82]][_0x4888[97]]|| 0}))};return BPromise[_0x4888[112]](_0xf90ax3a)}})[_0x4888[45]](function(_0xf90ax38){return _0xf90ax37})[_0x4888[45]](respondWithResult(_0xf90ax15,null,_0x4888[98]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[98]))};exports[_0x4888[104]]= function(_0xf90ax28,_0xf90ax15,_0xf90ax2c){var _0xf90ax2f;return db[_0x4888[56]][_0x4888[80]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[104]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){return _0xf90ax18[_0x4888[104]](_0xf90ax28[_0x4888[58]][_0x4888[96]])}})[_0x4888[45]](function(_0xf90ax3b){if(_0xf90ax28[_0x4888[58]][_0x4888[113]]){_0xf90ax2f= _0xf90ax3b;return db[_0x4888[110]][_0x4888[48]]({where:{VoiceQueueId:_0xf90ax28[_0x4888[79]][_0x4888[78]],UserId:_0xf90ax28[_0x4888[58]][_0x4888[96]]}})[_0x4888[45]](function(){return _0xf90ax2f})}})[_0x4888[45]](respondWithStatusCode(_0xf90ax15,null,_0x4888[104]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[104]))};exports[_0x4888[115]]= function(_0xf90ax28,_0xf90ax18,_0xf90ax2c){var _0xf90ax1b={};var _0xf90ax29={};var _0xf90ax2d;var _0xf90ax1c;return db[_0x4888[56]][_0x4888[86]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax18,null,_0x4888[115]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){_0xf90ax2d= _0xf90ax18;_0xf90ax29[_0x4888[54]]= _[_0x4888[57]](db[_0x4888[101]][_0x4888[55]]);_0xf90ax29[_0x4888[58]]= _[_0x4888[57]](_0xf90ax28[_0x4888[58]]);_0xf90ax29[_0x4888[59]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],_0xf90ax29[_0x4888[58]]);_0xf90ax1b[_0x4888[61]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],qs[_0x4888[62]](_0xf90ax28[_0x4888[58]][_0x4888[62]]));_0xf90ax1b[_0x4888[61]]= (_0xf90ax1b[_0x4888[61]][_0x4888[63]])?_0xf90ax1b[_0x4888[61]]:_0xf90ax29[_0x4888[54]];_0xf90ax1b[_0x4888[66]]= qs[_0x4888[67]](_0xf90ax28[_0x4888[58]][_0x4888[67]]);_0xf90ax1b[_0x4888[68]]= qs[_0x4888[59]](_[_0x4888[69]](_0xf90ax28[_0x4888[58]],_0xf90ax29[_0x4888[59]]));if(_0xf90ax28[_0x4888[58]][_0x4888[70]]){_0xf90ax1b[_0x4888[68]]= _[_0x4888[73]](_0xf90ax1b[_0x4888[68]],{$or:_[_0x4888[72]](_0xf90ax1b[_0x4888[61]],function(_0xf90ax2a){var _0xf90ax2b={};_0xf90ax2b[_0xf90ax2a]= {$like:_0x4888[71]+ _0xf90ax28[_0x4888[58]][_0x4888[70]]+ _0x4888[71]};return _0xf90ax2b})})};_0xf90ax1b= _[_0x4888[73]]({},_0xf90ax1b,_0xf90ax28[_0x4888[74]]);return _0xf90ax2d[_0x4888[115]](_0xf90ax1b)}})[_0x4888[45]](function(_0xf90ax2f){if(_0xf90ax2f){_0xf90ax1c= _0xf90ax2f[_0x4888[63]];if(!_0xf90ax28[_0x4888[58]][_0x4888[65]](_0x4888[64])){_0xf90ax1b[_0x4888[35]]= qs[_0x4888[35]](_0xf90ax28[_0x4888[58]][_0x4888[35]]);_0xf90ax1b[_0x4888[34]]= qs[_0x4888[34]](_0xf90ax28[_0x4888[58]][_0x4888[34]])};return _0xf90ax2d[_0x4888[115]](_0xf90ax1b)}})[_0x4888[45]](function(_0xf90ax2e){return _0xf90ax2e?{count:_0xf90ax1c,rows:_0xf90ax2e}:null})[_0x4888[45]](respondWithResult(_0xf90ax18,null,_0x4888[115]))[_0x4888[75]](handleError(_0xf90ax18,null,_0x4888[115]))};exports[_0x4888[116]]= function(_0xf90ax28,_0xf90ax18,_0xf90ax2c){var _0xf90ax1b={};var _0xf90ax29={};var _0xf90ax2d;var _0xf90ax1c;return db[_0x4888[56]][_0x4888[86]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax18,null,_0x4888[116]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){_0xf90ax2d= _0xf90ax18;_0xf90ax29[_0x4888[54]]= _[_0x4888[57]](db[_0x4888[110]][_0x4888[55]]);_0xf90ax29[_0x4888[58]]= _[_0x4888[57]](_0xf90ax28[_0x4888[58]]);_0xf90ax29[_0x4888[59]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],_0xf90ax29[_0x4888[58]]);_0xf90ax1b[_0x4888[61]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],qs[_0x4888[62]](_0xf90ax28[_0x4888[58]][_0x4888[62]]));_0xf90ax1b[_0x4888[61]]= (_0xf90ax1b[_0x4888[61]][_0x4888[63]])?_0xf90ax1b[_0x4888[61]]:_0xf90ax29[_0x4888[54]];_0xf90ax1b[_0x4888[66]]= qs[_0x4888[67]](_0xf90ax28[_0x4888[58]][_0x4888[67]]);_0xf90ax1b[_0x4888[68]]= qs[_0x4888[59]](_[_0x4888[69]](_0xf90ax28[_0x4888[58]],_0xf90ax29[_0x4888[59]]));if(_0xf90ax28[_0x4888[58]][_0x4888[70]]){_0xf90ax1b[_0x4888[68]]= _[_0x4888[73]](_0xf90ax1b[_0x4888[68]],{$or:_[_0x4888[72]](_0xf90ax1b[_0x4888[61]],function(_0xf90ax2a){var _0xf90ax2b={};_0xf90ax2b[_0xf90ax2a]= {$like:_0x4888[71]+ _0xf90ax28[_0x4888[58]][_0x4888[70]]+ _0x4888[71]};return _0xf90ax2b})})};_0xf90ax1b= _[_0x4888[73]]({},_0xf90ax1b,_0xf90ax28[_0x4888[74]]);return _0xf90ax2d[_0x4888[116]](_0xf90ax1b)}})[_0x4888[45]](function(_0xf90ax2f){if(_0xf90ax2f){_0xf90ax1c= _0xf90ax2f[_0x4888[63]];if(!_0xf90ax28[_0x4888[58]][_0x4888[65]](_0x4888[64])){_0xf90ax1b[_0x4888[35]]= qs[_0x4888[35]](_0xf90ax28[_0x4888[58]][_0x4888[35]]);_0xf90ax1b[_0x4888[34]]= qs[_0x4888[34]](_0xf90ax28[_0x4888[58]][_0x4888[34]])};return _0xf90ax2d[_0x4888[116]](_0xf90ax1b)}})[_0x4888[45]](function(_0xf90ax2e){return _0xf90ax2e?{count:_0xf90ax1c,rows:_0xf90ax2e}:null})[_0x4888[45]](respondWithResult(_0xf90ax18,null,_0x4888[116]))[_0x4888[75]](handleError(_0xf90ax18,null,_0x4888[116]))};exports[_0x4888[117]]= function(_0xf90ax28,_0xf90ax18,_0xf90ax2c){var _0xf90ax1b={};var _0xf90ax29={};var _0xf90ax2d;var _0xf90ax1c;return db[_0x4888[56]][_0x4888[86]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax18,null,_0x4888[117]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){_0xf90ax2d= _0xf90ax18;_0xf90ax29[_0x4888[54]]= _[_0x4888[57]](db[_0x4888[118]][_0x4888[55]]);_0xf90ax29[_0x4888[58]]= _[_0x4888[57]](_0xf90ax28[_0x4888[58]]);_0xf90ax29[_0x4888[59]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],_0xf90ax29[_0x4888[58]]);_0xf90ax1b[_0x4888[61]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],qs[_0x4888[62]](_0xf90ax28[_0x4888[58]][_0x4888[62]]));_0xf90ax1b[_0x4888[61]]= (_0xf90ax1b[_0x4888[61]][_0x4888[63]])?_0xf90ax1b[_0x4888[61]]:_0xf90ax29[_0x4888[54]];_0xf90ax1b[_0x4888[66]]= qs[_0x4888[67]](_0xf90ax28[_0x4888[58]][_0x4888[67]]);_0xf90ax1b[_0x4888[68]]= qs[_0x4888[59]](_[_0x4888[69]](_0xf90ax28[_0x4888[58]],_0xf90ax29[_0x4888[59]]));if(_0xf90ax28[_0x4888[58]][_0x4888[70]]){_0xf90ax1b[_0x4888[68]]= _[_0x4888[73]](_0xf90ax1b[_0x4888[68]],{$or:_[_0x4888[72]](_0xf90ax1b[_0x4888[61]],function(_0xf90ax2a){var _0xf90ax2b={};_0xf90ax2b[_0xf90ax2a]= {$like:_0x4888[71]+ _0xf90ax28[_0x4888[58]][_0x4888[70]]+ _0x4888[71]};return _0xf90ax2b})})};_0xf90ax1b= _[_0x4888[73]]({},_0xf90ax1b,_0xf90ax28[_0x4888[74]]);return _0xf90ax2d[_0x4888[117]](_0xf90ax1b)}})[_0x4888[45]](function(_0xf90ax2f){if(_0xf90ax2f){_0xf90ax1c= _0xf90ax2f[_0x4888[63]];if(!_0xf90ax28[_0x4888[58]][_0x4888[65]](_0x4888[64])){_0xf90ax1b[_0x4888[35]]= qs[_0x4888[35]](_0xf90ax28[_0x4888[58]][_0x4888[35]]);_0xf90ax1b[_0x4888[34]]= qs[_0x4888[34]](_0xf90ax28[_0x4888[58]][_0x4888[34]])};return _0xf90ax2d[_0x4888[117]](_0xf90ax1b)}})[_0x4888[45]](function(_0xf90ax2e){return _0xf90ax2e?{count:_0xf90ax1c,rows:_0xf90ax2e}:null})[_0x4888[45]](respondWithResult(_0xf90ax18,null,_0x4888[117]))[_0x4888[75]](handleError(_0xf90ax18,null,_0x4888[117]))};exports[_0x4888[119]]= function(_0xf90ax28,_0xf90ax15,_0xf90ax2c){var _0xf90ax3c;return db[_0x4888[56]][_0x4888[80]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[119]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){return _0xf90ax18[_0x4888[119]](_0xf90ax28[_0x4888[82]][_0x4888[96]],_[_0x4888[114]](_0xf90ax28[_0x4888[82]],[_0x4888[96],_0x4888[78]])|| {})};return null})[_0x4888[146]](function(_0xf90ax3b){_0xf90ax3c= _0xf90ax3b|| [];var _0xf90ax3a=[];if(_0xf90ax3b){for(var _0xf90ax35=0;_0xf90ax35< _0xf90ax3b[_0x4888[63]];_0xf90ax35++){var _0xf90ax3d=_0xf90ax3b[_0xf90ax35][_0x4888[120]]({plain:true});var _0xf90ax3e=squel[_0x4888[144]]()[_0x4888[143]](_0x4888[142])[_0x4888[141]]([_0x4888[121],_0x4888[122],_0x4888[123],_0x4888[124],_0x4888[85],_0x4888[125],_0x4888[126]],squel[_0x4888[136]]()[_0x4888[135]](_0x4888[121],_0x4888[121])[_0x4888[135]](_0x4888[140],_0x4888[122])[_0x4888[135]](_0x4888[78],_0x4888[123])[_0x4888[135]](_0xf90ax3d[_0x4888[131]].toString(),_0x4888[124])[_0x4888[135]](_0xf90ax28[_0x4888[79]][_0x4888[78]].toString(),_0x4888[85])[_0x4888[135]](_0x4888[140],_0x4888[125])[_0x4888[135]](_0x4888[140],_0x4888[126])[_0x4888[133]](_0x4888[139])[_0x4888[68]](_0x4888[138],_0xf90ax3d[_0x4888[131]].toString())[_0x4888[68]](_0x4888[137])[_0x4888[68]](_0x4888[127],squel[_0x4888[136]]()[_0x4888[135]](_0x4888[134])[_0x4888[133]](_0x4888[132])[_0x4888[68]](_0x4888[130],_0xf90ax3d[_0x4888[131]].toString())[_0x4888[68]](_0x4888[129],_0xf90ax28[_0x4888[79]][_0x4888[78]].toString())[_0x4888[68]](_0x4888[128]))).toString();_0xf90ax3a[_0x4888[111]](db[_0x4888[145]][_0x4888[58]](_0xf90ax3e))};return BPromise[_0x4888[112]](_0xf90ax3a)}})[_0x4888[45]](function(){return _0xf90ax3c})[_0x4888[45]](respondWithResult(_0xf90ax15,null,_0x4888[119]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[119]))};exports[_0x4888[147]]= function(_0xf90ax28,_0xf90ax15,_0xf90ax2c){var _0xf90ax2f;return db[_0x4888[56]][_0x4888[80]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[147]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){return _0xf90ax18[_0x4888[147]](_0xf90ax28[_0x4888[58]][_0x4888[96]])}})[_0x4888[45]](function(_0xf90ax3b){if(_0xf90ax3b){_0xf90ax2f= _0xf90ax3b;return db[_0x4888[84]][_0x4888[48]]({where:{ListId:_0xf90ax28[_0x4888[58]][_0x4888[96]],VoiceQueueId:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](function(){return _0xf90ax2f})}})[_0x4888[45]](respondWithStatusCode(_0xf90ax15,null,_0x4888[147]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[147]))};exports[_0x4888[148]]= function(_0xf90ax28,_0xf90ax18,_0xf90ax2c){var _0xf90ax1b={};var _0xf90ax29={};var _0xf90ax2d;var _0xf90ax1c;return db[_0x4888[56]][_0x4888[86]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax18,null,_0x4888[148]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){_0xf90ax2d= _0xf90ax18;_0xf90ax29[_0x4888[54]]= _[_0x4888[57]](db[_0x4888[118]][_0x4888[55]]);_0xf90ax29[_0x4888[58]]= _[_0x4888[57]](_0xf90ax28[_0x4888[58]]);_0xf90ax29[_0x4888[59]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],_0xf90ax29[_0x4888[58]]);_0xf90ax1b[_0x4888[61]]= _[_0x4888[60]](_0xf90ax29[_0x4888[54]],qs[_0x4888[62]](_0xf90ax28[_0x4888[58]][_0x4888[62]]));_0xf90ax1b[_0x4888[61]]= (_0xf90ax1b[_0x4888[61]][_0x4888[63]])?_0xf90ax1b[_0x4888[61]]:_0xf90ax29[_0x4888[54]];_0xf90ax1b[_0x4888[66]]= qs[_0x4888[67]](_0xf90ax28[_0x4888[58]][_0x4888[67]]);_0xf90ax1b[_0x4888[68]]= qs[_0x4888[59]](_[_0x4888[69]](_0xf90ax28[_0x4888[58]],_0xf90ax29[_0x4888[59]]));if(_0xf90ax28[_0x4888[58]][_0x4888[70]]){_0xf90ax1b[_0x4888[68]]= _[_0x4888[73]](_0xf90ax1b[_0x4888[68]],{$or:_[_0x4888[72]](_0xf90ax1b[_0x4888[61]],function(_0xf90ax2a){var _0xf90ax2b={};_0xf90ax2b[_0xf90ax2a]= {$like:_0x4888[71]+ _0xf90ax28[_0x4888[58]][_0x4888[70]]+ _0x4888[71]};return _0xf90ax2b})})};_0xf90ax1b= _[_0x4888[73]]({},_0xf90ax1b,_0xf90ax28[_0x4888[74]]);return _0xf90ax2d[_0x4888[148]](_0xf90ax1b)}})[_0x4888[45]](function(_0xf90ax2f){if(_0xf90ax2f){_0xf90ax1c= _0xf90ax2f[_0x4888[63]];if(!_0xf90ax28[_0x4888[58]][_0x4888[65]](_0x4888[64])){_0xf90ax1b[_0x4888[35]]= qs[_0x4888[35]](_0xf90ax28[_0x4888[58]][_0x4888[35]]);_0xf90ax1b[_0x4888[34]]= qs[_0x4888[34]](_0xf90ax28[_0x4888[58]][_0x4888[34]])};return _0xf90ax2d[_0x4888[148]](_0xf90ax1b)}})[_0x4888[45]](function(_0xf90ax2e){return _0xf90ax2e?{count:_0xf90ax1c,rows:_0xf90ax2e}:null})[_0x4888[45]](respondWithResult(_0xf90ax18,null,_0x4888[148]))[_0x4888[75]](handleError(_0xf90ax18,null,_0x4888[148]))};exports[_0x4888[149]]= function(_0xf90ax28,_0xf90ax15,_0xf90ax2c){var _0xf90ax3c;return db[_0x4888[56]][_0x4888[80]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[149]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){return _0xf90ax18[_0x4888[149]](_0xf90ax28[_0x4888[82]][_0x4888[96]],_[_0x4888[114]](_0xf90ax28[_0x4888[82]],[_0x4888[96],_0x4888[78]])|| {})};return null})[_0x4888[146]](function(_0xf90ax3b){_0xf90ax3c= _0xf90ax3b|| [];var _0xf90ax3a=[];if(_0xf90ax3b){for(var _0xf90ax35=0;_0xf90ax35< _0xf90ax3b[_0x4888[63]];_0xf90ax35++){var _0xf90ax3d=_0xf90ax3b[_0xf90ax35][_0x4888[120]]({plain:true});var _0xf90ax3e=squel[_0x4888[144]]()[_0x4888[143]](_0x4888[150])[_0x4888[141]]([_0x4888[121],_0x4888[123],_0x4888[124],_0x4888[85],_0x4888[125],_0x4888[126]],squel[_0x4888[136]]()[_0x4888[135]](_0x4888[121])[_0x4888[135]](_0x4888[78])[_0x4888[135]](_0xf90ax3d[_0x4888[131]].toString())[_0x4888[135]](_0xf90ax28[_0x4888[79]][_0x4888[78]])[_0x4888[135]](_0x4888[140],_0x4888[125])[_0x4888[135]](_0x4888[140],_0x4888[126])[_0x4888[133]](_0x4888[139])[_0x4888[68]](_0x4888[138],_0xf90ax3d[_0x4888[131]].toString())[_0x4888[68]](_0x4888[137])).toString();_0xf90ax3a[_0x4888[111]](db[_0x4888[145]][_0x4888[58]](_0xf90ax3e))};return BPromise[_0x4888[112]](_0xf90ax3a)}})[_0x4888[45]](function(){return _0xf90ax3c})[_0x4888[45]](respondWithResult(_0xf90ax15,null,_0x4888[149]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[149]))};exports[_0x4888[151]]= function(_0xf90ax28,_0xf90ax15,_0xf90ax2c){var _0xf90ax2f;return db[_0x4888[56]][_0x4888[80]]({where:{id:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](handleEntityNotFound(_0xf90ax15,null,_0x4888[151]))[_0x4888[45]](function(_0xf90ax18){if(_0xf90ax18){return _0xf90ax18[_0x4888[151]](_0xf90ax28[_0x4888[58]][_0x4888[96]])}})[_0x4888[45]](function(_0xf90ax3b){if(_0xf90ax3b){_0xf90ax2f= _0xf90ax3b;return db[_0x4888[92]][_0x4888[48]]({where:{ListId:_0xf90ax28[_0x4888[58]][_0x4888[96]],VoiceQueueId:_0xf90ax28[_0x4888[79]][_0x4888[78]]}})[_0x4888[45]](function(){return _0xf90ax2f})}})[_0x4888[45]](respondWithStatusCode(_0xf90ax15,null,_0x4888[151]))[_0x4888[75]](handleError(_0xf90ax15,null,_0x4888[151]))}
\ No newline at end of file
diff --git a/server/api/voiceQueue/voiceQueue.model.js b/server/api/voiceQueue/voiceQueue.model.js
new file mode 100644 (file)
index 0000000..e4532c2
--- /dev/null
@@ -0,0 +1 @@
+var _0xdfbd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x64\x65\x66\x69\x6E\x65"];_0xdfbd[0];var _=require(_0xdfbd[1]);var util=require(_0xdfbd[2]);var logger=require(_0xdfbd[4])(_0xdfbd[3]);var attributes=require(_0xdfbd[5]);module[_0xdfbd[6]]= function(_0x7055x5,_0x7055x6){return _0x7055x5[_0xdfbd[9]](_0xdfbd[7],attributes,{tableName:_0xdfbd[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/voiceQueue/voiceQueue.rpc.js b/server/api/voiceQueue/voiceQueue.rpc.js
new file mode 100644 (file)
index 0000000..9485625
--- /dev/null
@@ -0,0 +1 @@
+var _0x40e4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x53\x68\x6F\x77\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x66\x69\x6E\x64"];_0x40e4[0];var _=require(_0x40e4[1]);var util=require(_0x40e4[2]);var moment=require(_0x40e4[3]);var BPromise=require(_0x40e4[4]);var db=require(_0x40e4[6])[_0x40e4[5]];var utils=require(_0x40e4[7]);var logger=require(_0x40e4[9])(_0x40e4[8]);var jayson=require(_0x40e4[10]);var client=jayson[_0x40e4[12]][_0x40e4[11]]({port:9002});function respondWithRpcPromise(_0x92e0xb,_0x92e0xc,_0x92e0xd){return  new BPromise(function(_0x92e0xe,_0x92e0xf){return client[_0x40e4[25]](_0x92e0xb,_0x92e0xd)[_0x40e4[24]](function(_0x92e0x11){logger[_0x40e4[17]](_0x40e4[13],_0x92e0xc,_0x40e4[16]);logger[_0x40e4[20]](_0x40e4[18],_0x92e0xc,_0x40e4[16],JSON[_0x40e4[19]](_0x92e0x11));if(_0x92e0x11[_0x40e4[14]]){if(_0x92e0x11[_0x40e4[14]][_0x40e4[21]]=== 500){logger[_0x40e4[14]](_0x40e4[13],_0x92e0xc,_0x92e0x11[_0x40e4[14]][_0x40e4[22]]);return _0x92e0xf(_0x92e0x11[_0x40e4[14]][_0x40e4[22]])};logger[_0x40e4[14]](_0x40e4[13],_0x92e0xc,_0x92e0x11[_0x40e4[14]][_0x40e4[22]]);return _0x92e0xe(_0x92e0x11[_0x40e4[14]][_0x40e4[22]])}else {logger[_0x40e4[17]](_0x40e4[13],_0x92e0xc,_0x40e4[16]);_0x92e0xe(_0x92e0x11[_0x40e4[23]][_0x40e4[22]])}})[_0x40e4[15]](function(_0x92e0x10){logger[_0x40e4[14]](_0x40e4[13],_0x92e0xc,_0x92e0x10);_0x92e0xf(_0x92e0x10)})})}exports[_0x40e4[26]]= function(_0x92e0xd){var _0x92e0x12=this;return  new Promise(function(_0x92e0xe,_0x92e0xf){return db[_0x40e4[37]][_0x40e4[36]]({raw:_0x92e0xd[_0x40e4[27]]?(_0x92e0xd[_0x40e4[27]][_0x40e4[28]]=== undefined)?true:false:true,where:_0x92e0xd[_0x40e4[27]]?_0x92e0xd[_0x40e4[27]][_0x40e4[29]]|| null:null,attributes:_0x92e0xd[_0x40e4[27]]?_0x92e0xd[_0x40e4[27]][_0x40e4[30]]|| null:null,limit:_0x92e0xd[_0x40e4[27]]?_0x92e0xd[_0x40e4[27]][_0x40e4[31]]|| null:null,include:_0x92e0xd[_0x40e4[27]]?(_0x92e0xd[_0x40e4[27]][_0x40e4[32]]?_[_0x40e4[35]](_0x92e0xd[_0x40e4[27]][_0x40e4[32]],function(_0x92e0x13){return {model:db[_0x92e0x13[_0x40e4[33]]],as:_0x92e0x13[_0x40e4[34]],attributes:_0x92e0x13[_0x40e4[30]],include:_0x92e0x13[_0x40e4[32]]?_[_0x40e4[35]](_0x92e0x13[_0x40e4[32]],function(_0x92e0x14){return {model:db[_0x92e0x14[_0x40e4[33]]],as:_0x92e0x14[_0x40e4[34]],attributes:_0x92e0x14[_0x40e4[30]],include:_0x92e0x14[_0x40e4[32]]?_[_0x40e4[35]](_0x92e0x14[_0x40e4[32]],function(_0x92e0x15){return {model:db[_0x92e0x15[_0x40e4[33]]],as:_0x92e0x15[_0x40e4[34]],attributes:_0x92e0x15[_0x40e4[30]]}}):[]}}):[]}}):[]):[]})[_0x40e4[24]](function(_0x92e0x11){logger[_0x40e4[17]](_0x40e4[26],_0x92e0xd);logger[_0x40e4[20]](_0x40e4[26],_0x92e0xd,JSON[_0x40e4[19]](_0x92e0x11));_0x92e0xe(_0x92e0x11)})[_0x40e4[15]](function(_0x92e0x10){logger[_0x40e4[14]](_0x40e4[26],_0x92e0x10[_0x40e4[22]],_0x92e0xd);_0x92e0xf(_0x92e0x12[_0x40e4[14]](500,_0x92e0x10[_0x40e4[22]]))})})};exports[_0x40e4[38]]= function(_0x92e0xd){var _0x92e0x12=this;return  new Promise(function(_0x92e0xe,_0x92e0xf){return db[_0x40e4[37]][_0x40e4[39]]({raw:_0x92e0xd[_0x40e4[27]]?(_0x92e0xd[_0x40e4[27]][_0x40e4[28]]=== undefined)?true:false:true,where:_0x92e0xd[_0x40e4[27]]?_0x92e0xd[_0x40e4[27]][_0x40e4[29]]|| null:null,attributes:_0x92e0xd[_0x40e4[27]]?_0x92e0xd[_0x40e4[27]][_0x40e4[30]]|| null:null,include:_0x92e0xd[_0x40e4[27]]?(_0x92e0xd[_0x40e4[27]][_0x40e4[32]]?_[_0x40e4[35]](_0x92e0xd[_0x40e4[27]][_0x40e4[32]],function(_0x92e0x13){return {model:db[_0x92e0x13[_0x40e4[33]]],as:_0x92e0x13[_0x40e4[34]],attributes:_0x92e0x13[_0x40e4[30]],include:_0x92e0x13[_0x40e4[32]]?_[_0x40e4[35]](_0x92e0x13[_0x40e4[32]],function(_0x92e0x14){return {model:db[_0x92e0x14[_0x40e4[33]]],as:_0x92e0x14[_0x40e4[34]],attributes:_0x92e0x14[_0x40e4[30]],include:_0x92e0x14[_0x40e4[32]]?_[_0x40e4[35]](_0x92e0x14[_0x40e4[32]],function(_0x92e0x15){return {model:db[_0x92e0x15[_0x40e4[33]]],as:_0x92e0x15[_0x40e4[34]],attributes:_0x92e0x15[_0x40e4[30]]}}):[]}}):[]}}):[]):[]})[_0x40e4[24]](function(_0x92e0x11){logger[_0x40e4[17]](_0x40e4[38],_0x92e0xd);logger[_0x40e4[20]](_0x40e4[38],_0x92e0xd,JSON[_0x40e4[19]](_0x92e0x11));_0x92e0xe(_0x92e0x11)})[_0x40e4[15]](function(_0x92e0x10){logger[_0x40e4[14]](_0x40e4[38],_0x92e0x10[_0x40e4[22]],_0x92e0xd);_0x92e0xf(_0x92e0x12[_0x40e4[14]](500,_0x92e0x10[_0x40e4[22]]))})})}
\ No newline at end of file
diff --git a/server/api/voiceQueueReport/index.js b/server/api/voiceQueueReport/index.js
new file mode 100644 (file)
index 0000000..23c8b0a
--- /dev/null
@@ -0,0 +1 @@
+var _0xbf7d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xbf7d[0];var multer=require(_0xbf7d[1]);var util=require(_0xbf7d[2]);var path=require(_0xbf7d[3]);var express=require(_0xbf7d[4]);var router=express.Router();var auth=require(_0xbf7d[5]);var config=require(_0xbf7d[6]);var controller=require(_0xbf7d[7]);router[_0xbf7d[11]](_0xbf7d[8],auth[_0xbf7d[9]](),controller[_0xbf7d[10]]);router[_0xbf7d[11]](_0xbf7d[12],auth[_0xbf7d[9]](),controller[_0xbf7d[13]]);router[_0xbf7d[11]](_0xbf7d[14],auth[_0xbf7d[9]](),controller[_0xbf7d[15]]);router[_0xbf7d[17]](_0xbf7d[8],auth[_0xbf7d[9]](),controller[_0xbf7d[16]]);router[_0xbf7d[19]](_0xbf7d[14],auth[_0xbf7d[9]](),controller[_0xbf7d[18]]);router[_0xbf7d[21]](_0xbf7d[14],auth[_0xbf7d[9]](),controller[_0xbf7d[20]]);module[_0xbf7d[22]]= router
\ No newline at end of file
diff --git a/server/api/voiceQueueReport/voiceQueueReport.attributes.js b/server/api/voiceQueueReport/voiceQueueReport.attributes.js
new file mode 100644 (file)
index 0000000..94b6385
--- /dev/null
@@ -0,0 +1 @@
+var _0x58aa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","\x44\x41\x54\x45","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x49\x4E\x54\x45\x47\x45\x52","\x42\x4F\x4F\x4C\x45\x41\x4E"];_0x58aa[0];var Sequelize=require(_0x58aa[1]);var moment=require(_0x58aa[2]);module[_0x58aa[3]]= {type:{type:Sequelize[_0x58aa[4]]},uniqueid:{type:Sequelize[_0x58aa[4]]},calleridnum:{type:Sequelize[_0x58aa[4]]},calleridname:{type:Sequelize[_0x58aa[4]]},queue:{type:Sequelize[_0x58aa[4]]},queuecallerjoinAt:{type:Sequelize[_0x58aa[5]]},queuecallerleaveAt:{type:Sequelize[_0x58aa[5]],set:function(_0x5befx3){var _0x5befx4=moment(_0x5befx3);var _0x5befx5=moment(this[_0x58aa[9]](_0x58aa[8]))[_0x58aa[7]](_0x58aa[6]);var _0x5befx6=_0x5befx4[_0x58aa[11]](_0x5befx5,_0x58aa[10]);this[_0x58aa[13]](_0x58aa[12],_0x5befx3);this[_0x58aa[13]](_0x58aa[14],_0x5befx6|| null)}},position:{type:Sequelize[_0x58aa[15]]},count:{type:Sequelize[_0x58aa[15]]},queuecallerabandon:{type:Sequelize[_0x58aa[16]],defaultValue:false},queuecallerabandonAt:{type:Sequelize[_0x58aa[5]]},queuecallercomplete:{type:Sequelize[_0x58aa[16]],defaultValue:false},queuecallercompleteAt:{type:Sequelize[_0x58aa[5]]},queuecallerexit:{type:Sequelize[_0x58aa[16]],defaultValue:false},queuecallerexitAt:{type:Sequelize[_0x58aa[5]]},queuecallerexitreason:{type:Sequelize[_0x58aa[4]]},originalposition:{type:Sequelize[_0x58aa[15]]},channel:{type:Sequelize[_0x58aa[4]]},connectedlinenum:{type:Sequelize[_0x58aa[4]]},connectedlinename:{type:Sequelize[_0x58aa[4]]},accountcode:{type:Sequelize[_0x58aa[4]]},context:{type:Sequelize[_0x58aa[4]]},exten:{type:Sequelize[_0x58aa[4]]},priority:{type:Sequelize[_0x58aa[4]]},holdtime:{type:Sequelize[_0x58aa[15]]},assigned:{type:Sequelize[_0x58aa[16]],defaultValue:false},lastAssignedTo:{type:Sequelize[_0x58aa[4]]}}
\ No newline at end of file
diff --git a/server/api/voiceQueueReport/voiceQueueReport.controller.js b/server/api/voiceQueueReport/voiceQueueReport.controller.js
new file mode 100644 (file)
index 0000000..d76c540
--- /dev/null
@@ -0,0 +1 @@
+var _0x67b5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65"];_0x67b5[0];var jsonpatch=require(_0x67b5[1]);var rp=require(_0x67b5[2]);var moment=require(_0x67b5[3]);var BPromise=require(_0x67b5[4]);var util=require(_0x67b5[5]);var path=require(_0x67b5[6]);var sox=require(_0x67b5[7]);var ejs=require(_0x67b5[8]);var fs=require(_0x67b5[9]);var _=require(_0x67b5[10]);var squel=require(_0x67b5[11]);var crypto=require(_0x67b5[12]);var jsforce=require(_0x67b5[13]);var toCsv=require(_0x67b5[14]);var qs=require(_0x67b5[15]);var logger=require(_0x67b5[17])(_0x67b5[16]);var utils=require(_0x67b5[18]);var config=require(_0x67b5[19]);var db=require(_0x67b5[21])[_0x67b5[20]];function respondWithStatusCode(_0x9807x15,_0x9807x16,_0x9807x17){_0x9807x16= _0x9807x16|| 204;return function(_0x9807x18){if(_0x9807x18){logger[_0x67b5[24]](_0x67b5[22],_0x9807x17,_0x9807x16,_0x67b5[23]);logger[_0x67b5[26]](_0x67b5[25],_0x9807x17,_0x9807x16,_0x67b5[23]);return _0x9807x15[_0x67b5[27]](_0x9807x16)};return _0x9807x15[_0x67b5[29]](304)[_0x67b5[28]]()}}function respondWithResult(_0x9807x15,_0x9807x16,_0x9807x17){_0x9807x16= _0x9807x16|| 200;return function(_0x9807x18){if(_0x9807x18){logger[_0x67b5[24]](_0x67b5[22],_0x9807x17,_0x9807x16,_0x67b5[30]);logger[_0x67b5[26]](_0x67b5[25],_0x9807x17,_0x9807x16,_0x67b5[30],JSON[_0x67b5[31]](_0x9807x18));return _0x9807x15[_0x67b5[29]](_0x9807x16)[_0x67b5[32]](_0x9807x18)};return _0x9807x15[_0x67b5[29]](304)[_0x67b5[28]]()}}function respondWithFilteredResult(_0x9807x15,_0x9807x1b,_0x9807x17){return function(_0x9807x18){if(_0x9807x18){var _0x9807x1c=_0x9807x18[_0x67b5[33]],_0x9807x1d=_0x9807x1b[_0x67b5[34]],_0x9807x1e=_0x9807x1b[_0x67b5[34]]+ _0x9807x1b[_0x67b5[35]],_0x9807x16;if(_0x9807x1e>= _0x9807x1c){_0x9807x1e= _0x9807x1c;_0x9807x16= 200}else {_0x9807x16= 206};_0x9807x15[_0x67b5[29]](_0x9807x16);logger[_0x67b5[24]](_0x67b5[22],_0x9807x17,_0x9807x16,_0x67b5[36]);logger[_0x67b5[26]](_0x67b5[25],_0x9807x17,_0x9807x16,_0x67b5[30],JSON[_0x67b5[31]](_0x9807x18));return _0x9807x15[_0x67b5[40]](_0x67b5[37],_0x9807x1d+ _0x67b5[38]+ _0x9807x1e+ _0x67b5[39]+ _0x9807x1c)[_0x67b5[32]](_0x9807x18)};return null}}function patchUpdates(_0x9807x20){return function(_0x9807x18){try{jsonpatch[_0x67b5[41]](_0x9807x18,_0x9807x20,true)}catch(err){return BPromise[_0x67b5[42]](err)};return _0x9807x18[_0x67b5[43]]()}}function saveUpdates(_0x9807x22,_0x9807x16,_0x9807x17){return function(_0x9807x18){if(_0x9807x18){return _0x9807x18[_0x67b5[46]](_0x9807x22)[_0x67b5[45]](function(_0x9807x23){logger[_0x67b5[24]](_0x67b5[22],_0x9807x17,_0x9807x16,_0x67b5[44]);logger[_0x67b5[26]](_0x67b5[25],_0x9807x17,_0x9807x16,_0x67b5[44],JSON[_0x67b5[31]](_0x9807x18));return _0x9807x23})};return null}}function removeEntity(_0x9807x15,_0x9807x16,_0x9807x17){return function(_0x9807x18){if(_0x9807x18){return _0x9807x18[_0x67b5[48]]()[_0x67b5[45]](function(){logger[_0x67b5[24]](_0x67b5[22],_0x9807x17,_0x9807x16,_0x67b5[47]);logger[_0x67b5[26]](_0x67b5[25],_0x9807x17,_0x9807x16,_0x67b5[47],JSON[_0x67b5[31]](_0x9807x18));_0x9807x15[_0x67b5[29]](204)[_0x67b5[28]]()})}}}function handleEntityNotFound(_0x9807x15,_0x9807x16,_0x9807x17){return function(_0x9807x18){if(!_0x9807x18){logger[_0x67b5[50]](_0x67b5[22],_0x9807x17,404,_0x67b5[49]);_0x9807x15[_0x67b5[29]](404)[_0x67b5[28]]();return null};return _0x9807x18}}function handleError(_0x9807x15,_0x9807x16,_0x9807x17){_0x9807x16= _0x9807x16|| 500;return function(_0x9807x27){logger[_0x67b5[50]](_0x67b5[22],_0x9807x17,_0x9807x16,JSON[_0x67b5[31]](_0x9807x27));delete _0x9807x27[_0x67b5[51]];_0x9807x15[_0x67b5[29]](_0x9807x16)[_0x67b5[52]](_0x9807x27)}}exports[_0x67b5[53]]= function(_0x9807x28,_0x9807x15){var _0x9807x1b={},_0x9807x29={};_0x9807x29[_0x67b5[54]]= _[_0x67b5[57]](db[_0x67b5[56]][_0x67b5[55]]);_0x9807x29[_0x67b5[58]]= _[_0x67b5[57]](_0x9807x28[_0x67b5[58]]);_0x9807x29[_0x67b5[59]]= _[_0x67b5[60]](_0x9807x29[_0x67b5[54]],_0x9807x29[_0x67b5[58]]);_0x9807x1b[_0x67b5[61]]= _[_0x67b5[60]](_0x9807x29[_0x67b5[54]],qs[_0x67b5[62]](_0x9807x28[_0x67b5[58]][_0x67b5[62]]));_0x9807x1b[_0x67b5[61]]= (_0x9807x1b[_0x67b5[61]][_0x67b5[63]])?_0x9807x1b[_0x67b5[61]]:_0x9807x29[_0x67b5[54]];if(!_0x9807x28[_0x67b5[58]][_0x67b5[65]](_0x67b5[64])){_0x9807x1b[_0x67b5[35]]= qs[_0x67b5[35]](_0x9807x28[_0x67b5[58]][_0x67b5[35]]);_0x9807x1b[_0x67b5[34]]= qs[_0x67b5[34]](_0x9807x28[_0x67b5[58]][_0x67b5[34]])};_0x9807x1b[_0x67b5[66]]= qs[_0x67b5[67]](_0x9807x28[_0x67b5[58]][_0x67b5[67]]);_0x9807x1b[_0x67b5[68]]= qs[_0x67b5[59]](_[_0x67b5[69]](_0x9807x28[_0x67b5[58]],_0x9807x29[_0x67b5[59]]));if(_0x9807x28[_0x67b5[58]][_0x67b5[70]]){_0x9807x1b[_0x67b5[68]]= _[_0x67b5[73]](_0x9807x1b[_0x67b5[68]],{$or:_[_0x67b5[72]](_0x9807x1b[_0x67b5[61]],function(_0x9807x2a){var _0x9807x2b={};_0x9807x2b[_0x9807x2a]= {$like:_0x67b5[71]+ _0x9807x28[_0x67b5[58]][_0x67b5[70]]+ _0x67b5[71]};return _0x9807x2b})})};_0x9807x1b= _[_0x67b5[73]]({},_0x9807x1b,_0x9807x28[_0x67b5[74]]);return db[_0x67b5[56]][_0x67b5[76]](_0x9807x1b)[_0x67b5[45]](respondWithFilteredResult(_0x9807x15,_0x9807x1b,_0x67b5[53]))[_0x67b5[75]](handleError(_0x9807x15,null,_0x67b5[53]))};exports[_0x67b5[77]]= function(_0x9807x28,_0x9807x15){var _0x9807x1b={raw:false,where:{id:_0x9807x28[_0x67b5[79]][_0x67b5[78]]}},_0x9807x29={};_0x9807x29[_0x67b5[54]]= _[_0x67b5[57]](db[_0x67b5[56]][_0x67b5[55]]);_0x9807x29[_0x67b5[58]]= _[_0x67b5[57]](_0x9807x28[_0x67b5[58]]);_0x9807x29[_0x67b5[59]]= _[_0x67b5[60]](_0x9807x29[_0x67b5[54]],_0x9807x29[_0x67b5[58]]);_0x9807x1b[_0x67b5[61]]= _[_0x67b5[60]](_0x9807x29[_0x67b5[54]],qs[_0x67b5[62]](_0x9807x28[_0x67b5[58]][_0x67b5[62]]));_0x9807x1b[_0x67b5[61]]= (_0x9807x1b[_0x67b5[61]][_0x67b5[63]])?_0x9807x1b[_0x67b5[61]]:_0x9807x29[_0x67b5[54]];_0x9807x1b= _[_0x67b5[73]]({},_0x9807x1b,_0x9807x28[_0x67b5[74]]);return db[_0x67b5[56]][_0x67b5[80]](_0x9807x1b)[_0x67b5[45]](handleEntityNotFound(_0x9807x15,null,_0x67b5[77]))[_0x67b5[45]](respondWithResult(_0x9807x15,null,_0x67b5[77]))[_0x67b5[75]](handleError(_0x9807x15,null,_0x67b5[77]))};exports[_0x67b5[81]]= function(_0x9807x28,_0x9807x15){return db[_0x67b5[56]][_0x67b5[81]](_0x9807x28[_0x67b5[82]],{})[_0x67b5[45]](respondWithResult(_0x9807x15,201,_0x67b5[81]))[_0x67b5[75]](handleError(_0x9807x15,null,_0x67b5[81]))};exports[_0x67b5[46]]= function(_0x9807x28,_0x9807x15){if(_0x9807x28[_0x67b5[82]][_0x67b5[78]]){delete _0x9807x28[_0x67b5[82]][_0x67b5[78]]};return db[_0x67b5[56]][_0x67b5[80]]({where:{id:_0x9807x28[_0x67b5[79]][_0x67b5[78]]}})[_0x67b5[45]](handleEntityNotFound(_0x9807x15,null,_0x67b5[46]))[_0x67b5[45]](saveUpdates(_0x9807x28[_0x67b5[82]],null,_0x67b5[46]))[_0x67b5[45]](respondWithResult(_0x9807x15,null,_0x67b5[46]))[_0x67b5[75]](handleError(_0x9807x15,null,_0x67b5[46]))};exports[_0x67b5[48]]= function(_0x9807x28,_0x9807x15){return db[_0x67b5[56]][_0x67b5[80]]({where:{id:_0x9807x28[_0x67b5[79]][_0x67b5[78]]}})[_0x67b5[45]](handleEntityNotFound(_0x9807x15,null,_0x67b5[48]))[_0x67b5[45]](removeEntity(_0x9807x15,null,_0x67b5[48]))[_0x67b5[75]](handleError(_0x9807x15,null,_0x67b5[48]))};exports[_0x67b5[83]]= function(_0x9807x28,_0x9807x15){return db[_0x67b5[56]][_0x67b5[83]]()[_0x67b5[45]](respondWithResult(_0x9807x15,null,_0x67b5[83]))[_0x67b5[75]](handleError(_0x9807x15,null,_0x67b5[83]))}
\ No newline at end of file
diff --git a/server/api/voiceQueueReport/voiceQueueReport.model.js b/server/api/voiceQueueReport/voiceQueueReport.model.js
new file mode 100644 (file)
index 0000000..05919df
--- /dev/null
@@ -0,0 +1 @@
+var _0x5996=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x66\x69\x6E\x65"];_0x5996[0];var _=require(_0x5996[1]);var util=require(_0x5996[2]);var logger=require(_0x5996[4])(_0x5996[3]);var attributes=require(_0x5996[5]);module[_0x5996[6]]= function(_0x66cdx5,_0x66cdx6){return _0x66cdx5[_0x5996[10]](_0x5996[7],attributes,{tableName:_0x5996[8],paranoid:false,indexes:[{"\x66\x69\x65\x6C\x64\x73":[_0x5996[9]]}],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/voiceQueueReport/voiceQueueReport.rpc.js b/server/api/voiceQueueReport/voiceQueueReport.rpc.js
new file mode 100644 (file)
index 0000000..09e5ba8
--- /dev/null
@@ -0,0 +1 @@
+var _0x47da=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x69\x6E\x63\x6C\x75\x64\x65","\x6D\x6F\x64\x65\x6C","\x61\x73","\x6D\x61\x70","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x63\x72\x65\x61\x74\x65","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65"];_0x47da[0];var _=require(_0x47da[1]);var util=require(_0x47da[2]);var moment=require(_0x47da[3]);var BPromise=require(_0x47da[4]);var db=require(_0x47da[6])[_0x47da[5]];var utils=require(_0x47da[7]);var logger=require(_0x47da[9])(_0x47da[8]);var jayson=require(_0x47da[10]);var client=jayson[_0x47da[12]][_0x47da[11]]({port:9002});function respondWithRpcPromise(_0x3cd9xb,_0x3cd9xc,_0x3cd9xd){return  new BPromise(function(_0x3cd9xe,_0x3cd9xf){return client[_0x47da[25]](_0x3cd9xb,_0x3cd9xd)[_0x47da[24]](function(_0x3cd9x11){logger[_0x47da[17]](_0x47da[13],_0x3cd9xc,_0x47da[16]);logger[_0x47da[20]](_0x47da[18],_0x3cd9xc,_0x47da[16],JSON[_0x47da[19]](_0x3cd9x11));if(_0x3cd9x11[_0x47da[14]]){if(_0x3cd9x11[_0x47da[14]][_0x47da[21]]=== 500){logger[_0x47da[14]](_0x47da[13],_0x3cd9xc,_0x3cd9x11[_0x47da[14]][_0x47da[22]]);return _0x3cd9xf(_0x3cd9x11[_0x47da[14]][_0x47da[22]])};logger[_0x47da[14]](_0x47da[13],_0x3cd9xc,_0x3cd9x11[_0x47da[14]][_0x47da[22]]);return _0x3cd9xe(_0x3cd9x11[_0x47da[14]][_0x47da[22]])}else {logger[_0x47da[17]](_0x47da[13],_0x3cd9xc,_0x47da[16]);_0x3cd9xe(_0x3cd9x11[_0x47da[23]][_0x47da[22]])}})[_0x47da[15]](function(_0x3cd9x10){logger[_0x47da[14]](_0x47da[13],_0x3cd9xc,_0x3cd9x10);_0x3cd9xf(_0x3cd9x10)})})}exports[_0x47da[26]]= function(_0x3cd9xd){var _0x3cd9x12=this;return  new Promise(function(_0x3cd9xe,_0x3cd9xf){return db[_0x47da[37]][_0x47da[36]]({raw:_0x3cd9xd[_0x47da[27]]?(_0x3cd9xd[_0x47da[27]][_0x47da[28]]=== undefined)?true:false:true,where:_0x3cd9xd[_0x47da[27]]?_0x3cd9xd[_0x47da[27]][_0x47da[29]]|| null:null,attributes:_0x3cd9xd[_0x47da[27]]?_0x3cd9xd[_0x47da[27]][_0x47da[30]]|| null:null,limit:_0x3cd9xd[_0x47da[27]]?_0x3cd9xd[_0x47da[27]][_0x47da[31]]|| null:null,include:_0x3cd9xd[_0x47da[27]]?(_0x3cd9xd[_0x47da[27]][_0x47da[32]]?_[_0x47da[35]](_0x3cd9xd[_0x47da[27]][_0x47da[32]],function(_0x3cd9x13){return {model:db[_0x3cd9x13[_0x47da[33]]],as:_0x3cd9x13[_0x47da[34]],attributes:_0x3cd9x13[_0x47da[30]],include:_0x3cd9x13[_0x47da[32]]?_[_0x47da[35]](_0x3cd9x13[_0x47da[32]],function(_0x3cd9x14){return {model:db[_0x3cd9x14[_0x47da[33]]],as:_0x3cd9x14[_0x47da[34]],attributes:_0x3cd9x14[_0x47da[30]],include:_0x3cd9x14[_0x47da[32]]?_[_0x47da[35]](_0x3cd9x14[_0x47da[32]],function(_0x3cd9x15){return {model:db[_0x3cd9x15[_0x47da[33]]],as:_0x3cd9x15[_0x47da[34]],attributes:_0x3cd9x15[_0x47da[30]]}}):[]}}):[]}}):[]):[]})[_0x47da[24]](function(_0x3cd9x11){logger[_0x47da[17]](_0x47da[26],_0x3cd9xd);logger[_0x47da[20]](_0x47da[26],_0x3cd9xd,JSON[_0x47da[19]](_0x3cd9x11));_0x3cd9xe(_0x3cd9x11)})[_0x47da[15]](function(_0x3cd9x10){logger[_0x47da[14]](_0x47da[26],_0x3cd9x10[_0x47da[22]],_0x3cd9xd);_0x3cd9xf(_0x3cd9x12[_0x47da[14]](500,_0x3cd9x10[_0x47da[22]]))})})};exports[_0x47da[38]]= function(_0x3cd9xd){var _0x3cd9x12=this;return  new Promise(function(_0x3cd9xe,_0x3cd9xf){return db[_0x47da[37]][_0x47da[40]](_0x3cd9xd[_0x47da[39]],{raw:_0x3cd9xd[_0x47da[27]]?(_0x3cd9xd[_0x47da[27]][_0x47da[28]]=== undefined)?true:false:true})[_0x47da[24]](function(_0x3cd9x11){logger[_0x47da[17]](_0x47da[38],_0x3cd9xd);logger[_0x47da[20]](_0x47da[38],_0x3cd9xd,JSON[_0x47da[19]](_0x3cd9x11));_0x3cd9xe(_0x3cd9x11)})[_0x47da[15]](function(_0x3cd9x10){logger[_0x47da[14]](_0x47da[38],_0x3cd9x10[_0x47da[22]],_0x3cd9xd);_0x3cd9xf(_0x3cd9x12[_0x47da[14]](500,_0x3cd9x10[_0x47da[22]]))})})};exports[_0x47da[41]]= function(_0x3cd9xd){var _0x3cd9x12=this;return  new Promise(function(_0x3cd9xe,_0x3cd9xf){return db[_0x47da[37]][_0x47da[42]](_0x3cd9xd[_0x47da[39]],{raw:_0x3cd9xd[_0x47da[27]]?(_0x3cd9xd[_0x47da[27]][_0x47da[28]]=== undefined)?true:false:true,individualHooks:true,where:_0x3cd9xd[_0x47da[27]]?_0x3cd9xd[_0x47da[27]][_0x47da[29]]|| null:null,attributes:_0x3cd9xd[_0x47da[27]]?_0x3cd9xd[_0x47da[27]][_0x47da[30]]|| null:null,limit:_0x3cd9xd[_0x47da[27]]?_0x3cd9xd[_0x47da[27]][_0x47da[31]]|| null:null})[_0x47da[24]](function(_0x3cd9x11){logger[_0x47da[17]](_0x47da[41],_0x3cd9xd);logger[_0x47da[20]](_0x47da[41],_0x3cd9xd,JSON[_0x47da[19]](_0x3cd9x11));_0x3cd9xe(_0x3cd9x11)})[_0x47da[15]](function(_0x3cd9x10){logger[_0x47da[14]](_0x47da[41],_0x3cd9x10[_0x47da[22]],_0x3cd9xd);_0x3cd9xf(_0x3cd9x12[_0x47da[14]](500,_0x3cd9x10[_0x47da[22]]))})})}
\ No newline at end of file
diff --git a/server/api/voiceQueuesLog/index.js b/server/api/voiceQueuesLog/index.js
new file mode 100644 (file)
index 0000000..23692d6
--- /dev/null
@@ -0,0 +1 @@
+var _0xb2d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xb2d2[0];var multer=require(_0xb2d2[1]);var util=require(_0xb2d2[2]);var path=require(_0xb2d2[3]);var express=require(_0xb2d2[4]);var router=express.Router();var auth=require(_0xb2d2[5]);var config=require(_0xb2d2[6]);var controller=require(_0xb2d2[7]);router[_0xb2d2[11]](_0xb2d2[8],auth[_0xb2d2[9]](),controller[_0xb2d2[10]]);router[_0xb2d2[11]](_0xb2d2[12],auth[_0xb2d2[9]](),controller[_0xb2d2[13]]);router[_0xb2d2[15]](_0xb2d2[8],auth[_0xb2d2[9]](),controller[_0xb2d2[14]]);router[_0xb2d2[17]](_0xb2d2[12],auth[_0xb2d2[9]](),controller[_0xb2d2[16]]);router[_0xb2d2[19]](_0xb2d2[12],auth[_0xb2d2[9]](),controller[_0xb2d2[18]]);module[_0xb2d2[20]]= router
\ No newline at end of file
diff --git a/server/api/voiceQueuesLog/voiceQueuesLog.attributes.js b/server/api/voiceQueuesLog/voiceQueuesLog.attributes.js
new file mode 100644 (file)
index 0000000..752f878
--- /dev/null
@@ -0,0 +1 @@
+var _0xcb6a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x65\x78\x70\x6F\x72\x74\x73","\x53\x54\x52\x49\x4E\x47","","\x44\x41\x54\x45","\x4E\x4F\x57","\x66\x6E"];_0xcb6a[0];var Sequelize=require(_0xcb6a[1]);module[_0xcb6a[2]]= {time:{type:Sequelize[_0xcb6a[3]]},callid:{type:Sequelize[_0xcb6a[3]],allowNull:false,defaultValue:_0xcb6a[4]},queuename:{type:Sequelize[_0xcb6a[3]],allowNull:false,defaultValue:_0xcb6a[4]},agent:{type:Sequelize[_0xcb6a[3]],allowNull:false,defaultValue:_0xcb6a[4]},event:{type:Sequelize[_0xcb6a[3]],allowNull:false,defaultValue:_0xcb6a[4]},data1:{type:Sequelize[_0xcb6a[3]],allowNull:false,defaultValue:_0xcb6a[4]},data2:{type:Sequelize[_0xcb6a[3]],allowNull:false,defaultValue:_0xcb6a[4]},data3:{type:Sequelize[_0xcb6a[3]],allowNull:false,defaultValue:_0xcb6a[4]},data4:{type:Sequelize[_0xcb6a[3]],allowNull:false,defaultValue:_0xcb6a[4]},data5:{type:Sequelize[_0xcb6a[3]],allowNull:false,defaultValue:_0xcb6a[4]},dtm:{type:Sequelize[_0xcb6a[5]],allowNull:false,defaultValue:Sequelize[_0xcb6a[7]](_0xcb6a[6])}}
\ No newline at end of file
diff --git a/server/api/voiceQueuesLog/voiceQueuesLog.controller.js b/server/api/voiceQueuesLog/voiceQueuesLog.controller.js
new file mode 100644 (file)
index 0000000..003bb12
--- /dev/null
@@ -0,0 +1 @@
+var _0xacc2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0xacc2[0];var jsonpatch=require(_0xacc2[1]);var rp=require(_0xacc2[2]);var moment=require(_0xacc2[3]);var BPromise=require(_0xacc2[4]);var util=require(_0xacc2[5]);var path=require(_0xacc2[6]);var sox=require(_0xacc2[7]);var ejs=require(_0xacc2[8]);var fs=require(_0xacc2[9]);var _=require(_0xacc2[10]);var squel=require(_0xacc2[11]);var crypto=require(_0xacc2[12]);var jsforce=require(_0xacc2[13]);var toCsv=require(_0xacc2[14]);var qs=require(_0xacc2[15]);var logger=require(_0xacc2[17])(_0xacc2[16]);var utils=require(_0xacc2[18]);var config=require(_0xacc2[19]);var db=require(_0xacc2[21])[_0xacc2[20]];function respondWithStatusCode(_0xb7d9x15,_0xb7d9x16,_0xb7d9x17){_0xb7d9x16= _0xb7d9x16|| 204;return function(_0xb7d9x18){if(_0xb7d9x18){logger[_0xacc2[24]](_0xacc2[22],_0xb7d9x17,_0xb7d9x16,_0xacc2[23]);logger[_0xacc2[26]](_0xacc2[25],_0xb7d9x17,_0xb7d9x16,_0xacc2[23]);return _0xb7d9x15[_0xacc2[27]](_0xb7d9x16)};return _0xb7d9x15[_0xacc2[29]](304)[_0xacc2[28]]()}}function respondWithResult(_0xb7d9x15,_0xb7d9x16,_0xb7d9x17){_0xb7d9x16= _0xb7d9x16|| 200;return function(_0xb7d9x18){if(_0xb7d9x18){logger[_0xacc2[24]](_0xacc2[22],_0xb7d9x17,_0xb7d9x16,_0xacc2[30]);logger[_0xacc2[26]](_0xacc2[25],_0xb7d9x17,_0xb7d9x16,_0xacc2[30],JSON[_0xacc2[31]](_0xb7d9x18));return _0xb7d9x15[_0xacc2[29]](_0xb7d9x16)[_0xacc2[32]](_0xb7d9x18)};return _0xb7d9x15[_0xacc2[29]](304)[_0xacc2[28]]()}}function respondWithFilteredResult(_0xb7d9x15,_0xb7d9x1b,_0xb7d9x17){return function(_0xb7d9x18){if(_0xb7d9x18){var _0xb7d9x1c=_0xb7d9x18[_0xacc2[33]],_0xb7d9x1d=_0xb7d9x1b[_0xacc2[34]],_0xb7d9x1e=_0xb7d9x1b[_0xacc2[34]]+ _0xb7d9x1b[_0xacc2[35]],_0xb7d9x16;if(_0xb7d9x1e>= _0xb7d9x1c){_0xb7d9x1e= _0xb7d9x1c;_0xb7d9x16= 200}else {_0xb7d9x16= 206};_0xb7d9x15[_0xacc2[29]](_0xb7d9x16);logger[_0xacc2[24]](_0xacc2[22],_0xb7d9x17,_0xb7d9x16,_0xacc2[36]);logger[_0xacc2[26]](_0xacc2[25],_0xb7d9x17,_0xb7d9x16,_0xacc2[30],JSON[_0xacc2[31]](_0xb7d9x18));return _0xb7d9x15[_0xacc2[40]](_0xacc2[37],_0xb7d9x1d+ _0xacc2[38]+ _0xb7d9x1e+ _0xacc2[39]+ _0xb7d9x1c)[_0xacc2[32]](_0xb7d9x18)};return null}}function patchUpdates(_0xb7d9x20){return function(_0xb7d9x18){try{jsonpatch[_0xacc2[41]](_0xb7d9x18,_0xb7d9x20,true)}catch(err){return BPromise[_0xacc2[42]](err)};return _0xb7d9x18[_0xacc2[43]]()}}function saveUpdates(_0xb7d9x22,_0xb7d9x16,_0xb7d9x17){return function(_0xb7d9x18){if(_0xb7d9x18){return _0xb7d9x18[_0xacc2[46]](_0xb7d9x22)[_0xacc2[45]](function(_0xb7d9x23){logger[_0xacc2[24]](_0xacc2[22],_0xb7d9x17,_0xb7d9x16,_0xacc2[44]);logger[_0xacc2[26]](_0xacc2[25],_0xb7d9x17,_0xb7d9x16,_0xacc2[44],JSON[_0xacc2[31]](_0xb7d9x18));return _0xb7d9x23})};return null}}function removeEntity(_0xb7d9x15,_0xb7d9x16,_0xb7d9x17){return function(_0xb7d9x18){if(_0xb7d9x18){return _0xb7d9x18[_0xacc2[48]]()[_0xacc2[45]](function(){logger[_0xacc2[24]](_0xacc2[22],_0xb7d9x17,_0xb7d9x16,_0xacc2[47]);logger[_0xacc2[26]](_0xacc2[25],_0xb7d9x17,_0xb7d9x16,_0xacc2[47],JSON[_0xacc2[31]](_0xb7d9x18));_0xb7d9x15[_0xacc2[29]](204)[_0xacc2[28]]()})}}}function handleEntityNotFound(_0xb7d9x15,_0xb7d9x16,_0xb7d9x17){return function(_0xb7d9x18){if(!_0xb7d9x18){logger[_0xacc2[50]](_0xacc2[22],_0xb7d9x17,404,_0xacc2[49]);_0xb7d9x15[_0xacc2[29]](404)[_0xacc2[28]]();return null};return _0xb7d9x18}}function handleError(_0xb7d9x15,_0xb7d9x16,_0xb7d9x17){_0xb7d9x16= _0xb7d9x16|| 500;return function(_0xb7d9x27){logger[_0xacc2[50]](_0xacc2[22],_0xb7d9x17,_0xb7d9x16,JSON[_0xacc2[31]](_0xb7d9x27));delete _0xb7d9x27[_0xacc2[51]];_0xb7d9x15[_0xacc2[29]](_0xb7d9x16)[_0xacc2[52]](_0xb7d9x27)}}exports[_0xacc2[53]]= function(_0xb7d9x28,_0xb7d9x15){var _0xb7d9x1b={},_0xb7d9x29={};_0xb7d9x29[_0xacc2[54]]= _[_0xacc2[57]](db[_0xacc2[56]][_0xacc2[55]]);_0xb7d9x29[_0xacc2[58]]= _[_0xacc2[57]](_0xb7d9x28[_0xacc2[58]]);_0xb7d9x29[_0xacc2[59]]= _[_0xacc2[60]](_0xb7d9x29[_0xacc2[54]],_0xb7d9x29[_0xacc2[58]]);_0xb7d9x1b[_0xacc2[61]]= _[_0xacc2[60]](_0xb7d9x29[_0xacc2[54]],qs[_0xacc2[62]](_0xb7d9x28[_0xacc2[58]][_0xacc2[62]]));_0xb7d9x1b[_0xacc2[61]]= (_0xb7d9x1b[_0xacc2[61]][_0xacc2[63]])?_0xb7d9x1b[_0xacc2[61]]:_0xb7d9x29[_0xacc2[54]];if(!_0xb7d9x28[_0xacc2[58]][_0xacc2[65]](_0xacc2[64])){_0xb7d9x1b[_0xacc2[35]]= qs[_0xacc2[35]](_0xb7d9x28[_0xacc2[58]][_0xacc2[35]]);_0xb7d9x1b[_0xacc2[34]]= qs[_0xacc2[34]](_0xb7d9x28[_0xacc2[58]][_0xacc2[34]])};_0xb7d9x1b[_0xacc2[66]]= qs[_0xacc2[67]](_0xb7d9x28[_0xacc2[58]][_0xacc2[67]]);_0xb7d9x1b[_0xacc2[68]]= qs[_0xacc2[59]](_[_0xacc2[69]](_0xb7d9x28[_0xacc2[58]],_0xb7d9x29[_0xacc2[59]]));if(_0xb7d9x28[_0xacc2[58]][_0xacc2[70]]){_0xb7d9x1b[_0xacc2[68]]= _[_0xacc2[73]](_0xb7d9x1b[_0xacc2[68]],{$or:_[_0xacc2[72]](_0xb7d9x1b[_0xacc2[61]],function(_0xb7d9x2a){var _0xb7d9x2b={};_0xb7d9x2b[_0xb7d9x2a]= {$like:_0xacc2[71]+ _0xb7d9x28[_0xacc2[58]][_0xacc2[70]]+ _0xacc2[71]};return _0xb7d9x2b})})};_0xb7d9x1b= _[_0xacc2[73]]({},_0xb7d9x1b,_0xb7d9x28[_0xacc2[74]]);return db[_0xacc2[56]][_0xacc2[76]](_0xb7d9x1b)[_0xacc2[45]](respondWithFilteredResult(_0xb7d9x15,_0xb7d9x1b,_0xacc2[53]))[_0xacc2[75]](handleError(_0xb7d9x15,null,_0xacc2[53]))};exports[_0xacc2[77]]= function(_0xb7d9x28,_0xb7d9x15){var _0xb7d9x1b={raw:true,where:{id:_0xb7d9x28[_0xacc2[79]][_0xacc2[78]]}},_0xb7d9x29={};_0xb7d9x29[_0xacc2[54]]= _[_0xacc2[57]](db[_0xacc2[56]][_0xacc2[55]]);_0xb7d9x29[_0xacc2[58]]= _[_0xacc2[57]](_0xb7d9x28[_0xacc2[58]]);_0xb7d9x29[_0xacc2[59]]= _[_0xacc2[60]](_0xb7d9x29[_0xacc2[54]],_0xb7d9x29[_0xacc2[58]]);_0xb7d9x1b[_0xacc2[61]]= _[_0xacc2[60]](_0xb7d9x29[_0xacc2[54]],qs[_0xacc2[62]](_0xb7d9x28[_0xacc2[58]][_0xacc2[62]]));_0xb7d9x1b[_0xacc2[61]]= (_0xb7d9x1b[_0xacc2[61]][_0xacc2[63]])?_0xb7d9x1b[_0xacc2[61]]:_0xb7d9x29[_0xacc2[54]];_0xb7d9x1b= _[_0xacc2[73]]({},_0xb7d9x1b,_0xb7d9x28[_0xacc2[74]]);return db[_0xacc2[56]][_0xacc2[80]](_0xb7d9x1b)[_0xacc2[45]](handleEntityNotFound(_0xb7d9x15,null,_0xacc2[77]))[_0xacc2[45]](respondWithResult(_0xb7d9x15,null,_0xacc2[77]))[_0xacc2[75]](handleError(_0xb7d9x15,null,_0xacc2[77]))};exports[_0xacc2[81]]= function(_0xb7d9x28,_0xb7d9x15){return db[_0xacc2[56]][_0xacc2[81]](_0xb7d9x28[_0xacc2[82]],{})[_0xacc2[45]](respondWithResult(_0xb7d9x15,201,_0xacc2[81]))[_0xacc2[75]](handleError(_0xb7d9x15,null,_0xacc2[81]))};exports[_0xacc2[46]]= function(_0xb7d9x28,_0xb7d9x15){if(_0xb7d9x28[_0xacc2[82]][_0xacc2[78]]){delete _0xb7d9x28[_0xacc2[82]][_0xacc2[78]]};return db[_0xacc2[56]][_0xacc2[80]]({where:{id:_0xb7d9x28[_0xacc2[79]][_0xacc2[78]]}})[_0xacc2[45]](handleEntityNotFound(_0xb7d9x15,null,_0xacc2[46]))[_0xacc2[45]](saveUpdates(_0xb7d9x28[_0xacc2[82]],null,_0xacc2[46]))[_0xacc2[45]](respondWithResult(_0xb7d9x15,null,_0xacc2[46]))[_0xacc2[75]](handleError(_0xb7d9x15,null,_0xacc2[46]))};exports[_0xacc2[48]]= function(_0xb7d9x28,_0xb7d9x15){return db[_0xacc2[56]][_0xacc2[80]]({where:{id:_0xb7d9x28[_0xacc2[79]][_0xacc2[78]]}})[_0xacc2[45]](handleEntityNotFound(_0xb7d9x15,null,_0xacc2[48]))[_0xacc2[45]](removeEntity(_0xb7d9x15,null,_0xacc2[48]))[_0xacc2[75]](handleError(_0xb7d9x15,null,_0xacc2[48]))}
\ No newline at end of file
diff --git a/server/api/voiceQueuesLog/voiceQueuesLog.model.js b/server/api/voiceQueuesLog/voiceQueuesLog.model.js
new file mode 100644 (file)
index 0000000..34b4b7e
--- /dev/null
@@ -0,0 +1 @@
+var _0xe18a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x6C\x6F\x67","\x65\x76\x65\x6E\x74\x5F\x64\x74\x6D","\x65\x76\x65\x6E\x74","\x64\x74\x6D","\x64\x65\x66\x69\x6E\x65"];_0xe18a[0];var _=require(_0xe18a[1]);var util=require(_0xe18a[2]);var logger=require(_0xe18a[4])(_0xe18a[3]);var attributes=require(_0xe18a[5]);module[_0xe18a[6]]= function(_0x2a93x5,_0x2a93x6){return _0x2a93x5[_0xe18a[12]](_0xe18a[7],attributes,{tableName:_0xe18a[8],paranoid:false,indexes:[{"\x6E\x61\x6D\x65":_0xe18a[9],"\x66\x69\x65\x6C\x64\x73":[_0xe18a[10],_0xe18a[11]]}],timestamps:false})}
\ No newline at end of file
diff --git a/server/api/voiceQueuesLog/voiceQueuesLog.rpc.js b/server/api/voiceQueuesLog/voiceQueuesLog.rpc.js
new file mode 100644 (file)
index 0000000..1c0ec83
--- /dev/null
@@ -0,0 +1 @@
+var _0xd2f9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74"];_0xd2f9[0];var _=require(_0xd2f9[1]);var util=require(_0xd2f9[2]);var moment=require(_0xd2f9[3]);var BPromise=require(_0xd2f9[4]);var db=require(_0xd2f9[6])[_0xd2f9[5]];var utils=require(_0xd2f9[7]);var logger=require(_0xd2f9[9])(_0xd2f9[8]);var jayson=require(_0xd2f9[10]);var client=jayson[_0xd2f9[12]][_0xd2f9[11]]({port:9002});function respondWithRpcPromise(_0x18d2xb,_0x18d2xc,_0x18d2xd){return  new BPromise(function(_0x18d2xe,_0x18d2xf){return client[_0xd2f9[25]](_0x18d2xb,_0x18d2xd)[_0xd2f9[24]](function(_0x18d2x11){logger[_0xd2f9[17]](_0xd2f9[13],_0x18d2xc,_0xd2f9[16]);logger[_0xd2f9[20]](_0xd2f9[18],_0x18d2xc,_0xd2f9[16],JSON[_0xd2f9[19]](_0x18d2x11));if(_0x18d2x11[_0xd2f9[14]]){if(_0x18d2x11[_0xd2f9[14]][_0xd2f9[21]]=== 500){logger[_0xd2f9[14]](_0xd2f9[13],_0x18d2xc,_0x18d2x11[_0xd2f9[14]][_0xd2f9[22]]);return _0x18d2xf(_0x18d2x11[_0xd2f9[14]][_0xd2f9[22]])};logger[_0xd2f9[14]](_0xd2f9[13],_0x18d2xc,_0x18d2x11[_0xd2f9[14]][_0xd2f9[22]]);return _0x18d2xe(_0x18d2x11[_0xd2f9[14]][_0xd2f9[22]])}else {logger[_0xd2f9[17]](_0xd2f9[13],_0x18d2xc,_0xd2f9[16]);_0x18d2xe(_0x18d2x11[_0xd2f9[23]][_0xd2f9[22]])}})[_0xd2f9[15]](function(_0x18d2x10){logger[_0xd2f9[14]](_0xd2f9[13],_0x18d2xc,_0x18d2x10);_0x18d2xf(_0x18d2x10)})})}
\ No newline at end of file
diff --git a/server/api/voiceRecording/index.js b/server/api/voiceRecording/index.js
new file mode 100644 (file)
index 0000000..5cf9aa3
--- /dev/null
@@ -0,0 +1 @@
+var _0x6871=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x65\x73\x63\x72\x69\x62\x65","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x2F\x3A\x69\x64\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x6871[0];var multer=require(_0x6871[1]);var util=require(_0x6871[2]);var path=require(_0x6871[3]);var express=require(_0x6871[4]);var router=express.Router();var auth=require(_0x6871[5]);var config=require(_0x6871[6]);var controller=require(_0x6871[7]);router[_0x6871[11]](_0x6871[8],auth[_0x6871[9]](),controller[_0x6871[10]]);router[_0x6871[11]](_0x6871[12],auth[_0x6871[9]](),controller[_0x6871[13]]);router[_0x6871[11]](_0x6871[14],auth[_0x6871[9]](),controller[_0x6871[15]]);router[_0x6871[11]](_0x6871[16],controller[_0x6871[17]]);router[_0x6871[19]](_0x6871[8],auth[_0x6871[9]](),controller[_0x6871[18]]);router[_0x6871[21]](_0x6871[14],auth[_0x6871[9]](),controller[_0x6871[20]]);router[_0x6871[23]](_0x6871[14],auth[_0x6871[9]](),controller[_0x6871[22]]);module[_0x6871[24]]= router
\ No newline at end of file
diff --git a/server/api/voiceRecording/voiceRecording.attributes.js b/server/api/voiceRecording/voiceRecording.attributes.js
new file mode 100644 (file)
index 0000000..0936b07
--- /dev/null
@@ -0,0 +1 @@
+var _0x6961=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x70\x61\x74\x68","\x65\x78\x70\x6F\x72\x74\x73","\x56\x49\x52\x54\x55\x41\x4C","\x76\x61\x6C\x75\x65","\x67\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x65\x78\x74\x6E\x61\x6D\x65","\x53\x54\x52\x49\x4E\x47","\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x65\x74\x44\x61\x74\x61\x56\x61\x6C\x75\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x73\x70\x6C\x69\x74","\x49\x4E\x54\x45\x47\x45\x52","\x44\x41\x54\x45","\x4D\x4D\x2D\x44\x44\x2D\x59\x59\x59\x59\x20\x48\x48\x3A\x6D\x6D","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74"];_0x6961[0];var Sequelize=require(_0x6961[1]);var moment=require(_0x6961[2]);var path=require(_0x6961[3]);module[_0x6961[4]]= {format:{type:Sequelize[_0x6961[5]],get:function(){return this[_0x6961[7]](_0x6961[6])?path[_0x6961[8]](this[_0x6961[7]](_0x6961[6])):undefined}},uniqueid:{type:Sequelize[_0x6961[9]]},channel:{type:Sequelize[_0x6961[9]],set:function(_0xc046x4){if(_0xc046x4){this[_0x6961[11]](_0x6961[10],_0xc046x4);this[_0x6961[11]](_0x6961[12],_0xc046x4[_0x6961[13]](/\/|-/)[1])}}},membername:{type:Sequelize[_0x6961[9]]},calleridnum:{type:Sequelize[_0x6961[9]]},calleridname:{type:Sequelize[_0x6961[9]]},connectedlinenum:{type:Sequelize[_0x6961[9]]},connectedlinename:{type:Sequelize[_0x6961[9]]},accountcode:{type:Sequelize[_0x6961[9]]},context:{type:Sequelize[_0x6961[9]]},exten:{type:Sequelize[_0x6961[9]]},value:{type:Sequelize[_0x6961[9]]},type:{type:Sequelize[_0x6961[9]]},rating:{type:Sequelize[_0x6961[14]],validate:{max:5,min:0}},queue:{type:Sequelize[_0x6961[9]]},createdAt:{type:Sequelize[_0x6961[15]],get:function(){return moment(this[_0x6961[7]](_0x6961[18]))[_0x6961[17]](_0x6961[16]).toString()}},updatedAt:{type:Sequelize[_0x6961[15]],get:function(){return moment(this[_0x6961[7]](_0x6961[19]))[_0x6961[17]](_0x6961[16]).toString()}}}
\ No newline at end of file
diff --git a/server/api/voiceRecording/voiceRecording.controller.js b/server/api/voiceRecording/voiceRecording.controller.js
new file mode 100644 (file)
index 0000000..d751433
--- /dev/null
@@ -0,0 +1 @@
+var _0x924b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79","\x64\x65\x73\x63\x72\x69\x62\x65","\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x2E\x64\x6F\x77\x6E\x6C\x6F\x61\x64","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x76\x61\x6C\x75\x65","\x65\x78\x69\x73\x74\x73\x53\x79\x6E\x63","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x53\x65\x71\x75\x65\x6C\x69\x7A\x65"];_0x924b[0];var jsonpatch=require(_0x924b[1]);var rp=require(_0x924b[2]);var moment=require(_0x924b[3]);var BPromise=require(_0x924b[4]);var util=require(_0x924b[5]);var path=require(_0x924b[6]);var sox=require(_0x924b[7]);var ejs=require(_0x924b[8]);var fs=require(_0x924b[9]);var _=require(_0x924b[10]);var squel=require(_0x924b[11]);var crypto=require(_0x924b[12]);var jsforce=require(_0x924b[13]);var toCsv=require(_0x924b[14]);var qs=require(_0x924b[15]);var logger=require(_0x924b[17])(_0x924b[16]);var utils=require(_0x924b[18]);var config=require(_0x924b[19]);var db=require(_0x924b[21])[_0x924b[20]];function respondWithStatusCode(_0xa928x15,_0xa928x16,_0xa928x17){_0xa928x16= _0xa928x16|| 204;return function(_0xa928x18){if(_0xa928x18){logger[_0x924b[24]](_0x924b[22],_0xa928x17,_0xa928x16,_0x924b[23]);logger[_0x924b[26]](_0x924b[25],_0xa928x17,_0xa928x16,_0x924b[23]);return _0xa928x15[_0x924b[27]](_0xa928x16)};return _0xa928x15[_0x924b[29]](304)[_0x924b[28]]()}}function respondWithResult(_0xa928x15,_0xa928x16,_0xa928x17){_0xa928x16= _0xa928x16|| 200;return function(_0xa928x18){if(_0xa928x18){logger[_0x924b[24]](_0x924b[22],_0xa928x17,_0xa928x16,_0x924b[30]);logger[_0x924b[26]](_0x924b[25],_0xa928x17,_0xa928x16,_0x924b[30],JSON[_0x924b[31]](_0xa928x18));return _0xa928x15[_0x924b[29]](_0xa928x16)[_0x924b[32]](_0xa928x18)};return _0xa928x15[_0x924b[29]](304)[_0x924b[28]]()}}function respondWithFilteredResult(_0xa928x15,_0xa928x1b,_0xa928x17){return function(_0xa928x18){if(_0xa928x18){var _0xa928x1c=_0xa928x18[_0x924b[33]],_0xa928x1d=_0xa928x1b[_0x924b[34]],_0xa928x1e=_0xa928x1b[_0x924b[34]]+ _0xa928x1b[_0x924b[35]],_0xa928x16;if(_0xa928x1e>= _0xa928x1c){_0xa928x1e= _0xa928x1c;_0xa928x16= 200}else {_0xa928x16= 206};_0xa928x15[_0x924b[29]](_0xa928x16);logger[_0x924b[24]](_0x924b[22],_0xa928x17,_0xa928x16,_0x924b[36]);logger[_0x924b[26]](_0x924b[25],_0xa928x17,_0xa928x16,_0x924b[30],JSON[_0x924b[31]](_0xa928x18));return _0xa928x15[_0x924b[40]](_0x924b[37],_0xa928x1d+ _0x924b[38]+ _0xa928x1e+ _0x924b[39]+ _0xa928x1c)[_0x924b[32]](_0xa928x18)};return null}}function patchUpdates(_0xa928x20){return function(_0xa928x18){try{jsonpatch[_0x924b[41]](_0xa928x18,_0xa928x20,true)}catch(err){return BPromise[_0x924b[42]](err)};return _0xa928x18[_0x924b[43]]()}}function saveUpdates(_0xa928x22,_0xa928x16,_0xa928x17){return function(_0xa928x18){if(_0xa928x18){return _0xa928x18[_0x924b[46]](_0xa928x22)[_0x924b[45]](function(_0xa928x23){logger[_0x924b[24]](_0x924b[22],_0xa928x17,_0xa928x16,_0x924b[44]);logger[_0x924b[26]](_0x924b[25],_0xa928x17,_0xa928x16,_0x924b[44],JSON[_0x924b[31]](_0xa928x18));return _0xa928x23})};return null}}function removeEntity(_0xa928x15,_0xa928x16,_0xa928x17){return function(_0xa928x18){if(_0xa928x18){return _0xa928x18[_0x924b[48]]()[_0x924b[45]](function(){logger[_0x924b[24]](_0x924b[22],_0xa928x17,_0xa928x16,_0x924b[47]);logger[_0x924b[26]](_0x924b[25],_0xa928x17,_0xa928x16,_0x924b[47],JSON[_0x924b[31]](_0xa928x18));_0xa928x15[_0x924b[29]](204)[_0x924b[28]]()})}}}function handleEntityNotFound(_0xa928x15,_0xa928x16,_0xa928x17){return function(_0xa928x18){if(!_0xa928x18){logger[_0x924b[50]](_0x924b[22],_0xa928x17,404,_0x924b[49]);_0xa928x15[_0x924b[29]](404)[_0x924b[28]]();return null};return _0xa928x18}}function handleError(_0xa928x15,_0xa928x16,_0xa928x17){_0xa928x16= _0xa928x16|| 500;return function(_0xa928x27){logger[_0x924b[50]](_0x924b[22],_0xa928x17,_0xa928x16,JSON[_0x924b[31]](_0xa928x27));delete _0xa928x27[_0x924b[51]];_0xa928x15[_0x924b[29]](_0xa928x16)[_0x924b[52]](_0xa928x27)}}exports[_0x924b[53]]= function(_0xa928x28,_0xa928x15){var _0xa928x1b={},_0xa928x29={};_0xa928x29[_0x924b[54]]= _[_0x924b[57]](db[_0x924b[56]][_0x924b[55]]);_0xa928x29[_0x924b[58]]= _[_0x924b[57]](_0xa928x28[_0x924b[58]]);_0xa928x29[_0x924b[59]]= _[_0x924b[60]](_0xa928x29[_0x924b[54]],_0xa928x29[_0x924b[58]]);_0xa928x1b[_0x924b[61]]= _[_0x924b[60]](_0xa928x29[_0x924b[54]],qs[_0x924b[62]](_0xa928x28[_0x924b[58]][_0x924b[62]]));_0xa928x1b[_0x924b[61]]= (_0xa928x1b[_0x924b[61]][_0x924b[63]])?_0xa928x1b[_0x924b[61]]:_0xa928x29[_0x924b[54]];if(!_0xa928x28[_0x924b[58]][_0x924b[65]](_0x924b[64])){_0xa928x1b[_0x924b[35]]= qs[_0x924b[35]](_0xa928x28[_0x924b[58]][_0x924b[35]]);_0xa928x1b[_0x924b[34]]= qs[_0x924b[34]](_0xa928x28[_0x924b[58]][_0x924b[34]])};_0xa928x1b[_0x924b[66]]= qs[_0x924b[67]](_0xa928x28[_0x924b[58]][_0x924b[67]]);_0xa928x1b[_0x924b[68]]= qs[_0x924b[59]](_[_0x924b[69]](_0xa928x28[_0x924b[58]],_0xa928x29[_0x924b[59]]));if(_0xa928x28[_0x924b[58]][_0x924b[70]]){_0xa928x1b[_0x924b[68]]= _[_0x924b[73]](_0xa928x1b[_0x924b[68]],{$or:_[_0x924b[72]](_0xa928x1b[_0x924b[61]],function(_0xa928x2a){var _0xa928x2b={};_0xa928x2b[_0xa928x2a]= {$like:_0x924b[71]+ _0xa928x28[_0x924b[58]][_0x924b[70]]+ _0x924b[71]};return _0xa928x2b})})};_0xa928x1b= _[_0x924b[73]]({},_0xa928x1b,_0xa928x28[_0x924b[74]]);return db[_0x924b[56]][_0x924b[76]](_0xa928x1b)[_0x924b[45]](respondWithFilteredResult(_0xa928x15,_0xa928x1b,_0x924b[53]))[_0x924b[75]](handleError(_0xa928x15,null,_0x924b[53]))};exports[_0x924b[77]]= function(_0xa928x28,_0xa928x15){var _0xa928x1b={raw:false,where:{id:_0xa928x28[_0x924b[79]][_0x924b[78]]}},_0xa928x29={};_0xa928x29[_0x924b[54]]= _[_0x924b[57]](db[_0x924b[56]][_0x924b[55]]);_0xa928x29[_0x924b[58]]= _[_0x924b[57]](_0xa928x28[_0x924b[58]]);_0xa928x29[_0x924b[59]]= _[_0x924b[60]](_0xa928x29[_0x924b[54]],_0xa928x29[_0x924b[58]]);_0xa928x1b[_0x924b[61]]= _[_0x924b[60]](_0xa928x29[_0x924b[54]],qs[_0x924b[62]](_0xa928x28[_0x924b[58]][_0x924b[62]]));_0xa928x1b[_0x924b[61]]= (_0xa928x1b[_0x924b[61]][_0x924b[63]])?_0xa928x1b[_0x924b[61]]:_0xa928x29[_0x924b[54]];_0xa928x1b= _[_0x924b[73]]({},_0xa928x1b,_0xa928x28[_0x924b[74]]);return db[_0x924b[56]][_0x924b[80]](_0xa928x1b)[_0x924b[45]](handleEntityNotFound(_0xa928x15,null,_0x924b[77]))[_0x924b[45]](respondWithResult(_0xa928x15,null,_0x924b[77]))[_0x924b[75]](handleError(_0xa928x15,null,_0x924b[77]))};exports[_0x924b[81]]= function(_0xa928x28,_0xa928x15){return db[_0x924b[56]][_0x924b[81]](_0xa928x28[_0x924b[82]],{})[_0x924b[45]](respondWithResult(_0xa928x15,201,_0x924b[81]))[_0x924b[75]](handleError(_0xa928x15,null,_0x924b[81]))};exports[_0x924b[46]]= function(_0xa928x28,_0xa928x15){if(_0xa928x28[_0x924b[82]][_0x924b[78]]){delete _0xa928x28[_0x924b[82]][_0x924b[78]]};return db[_0x924b[56]][_0x924b[80]]({where:{id:_0xa928x28[_0x924b[79]][_0x924b[78]]}})[_0x924b[45]](handleEntityNotFound(_0xa928x15,null,_0x924b[46]))[_0x924b[45]](saveUpdates(_0xa928x28[_0x924b[82]],null,_0x924b[46]))[_0x924b[45]](respondWithResult(_0xa928x15,null,_0x924b[46]))[_0x924b[75]](handleError(_0xa928x15,null,_0x924b[46]))};exports[_0x924b[48]]= function(_0xa928x28,_0xa928x15){return db[_0x924b[56]][_0x924b[80]]({where:{id:_0xa928x28[_0x924b[79]][_0x924b[78]]}})[_0x924b[45]](handleEntityNotFound(_0xa928x15,null,_0x924b[48]))[_0x924b[45]](removeEntity(_0xa928x15,null,_0x924b[48]))[_0x924b[75]](handleError(_0xa928x15,null,_0x924b[48]))};exports[_0x924b[83]]= function(_0xa928x28,_0xa928x15){return db[_0x924b[56]][_0x924b[83]]()[_0x924b[45]](respondWithResult(_0xa928x15,null,_0x924b[83]))[_0x924b[75]](handleError(_0xa928x15,null,_0x924b[83]))};exports[_0x924b[84]]= function(_0xa928x28,_0xa928x15,_0xa928x2c){return db[_0x924b[56]][_0x924b[80]]({where:{id:_0xa928x28[_0x924b[79]][_0x924b[78]]},attributes:[_0x924b[78],_0x924b[87]],raw:true})[_0x924b[45]](handleEntityNotFound(_0xa928x15,null,_0x924b[84]))[_0x924b[45]](function(_0xa928x18){if(_0xa928x18){logger[_0x924b[24]](_0x924b[86],_0x924b[84],_0x924b[30]);logger[_0x924b[26]](_0x924b[22],_0x924b[84],_0x924b[30],JSON[_0x924b[31]](_0xa928x18));if(!fs[_0x924b[88]](_0xa928x18[_0x924b[87]])){throw  new db[_0x924b[90]].ValidationError(_0x924b[89])};return _0xa928x15[_0x924b[84]](_0xa928x18[_0x924b[87]])}})[_0x924b[75]](handleError(_0xa928x15,null,_0x924b[85]))}
\ No newline at end of file
diff --git a/server/api/voiceRecording/voiceRecording.model.js b/server/api/voiceRecording/voiceRecording.model.js
new file mode 100644 (file)
index 0000000..1c87c35
--- /dev/null
@@ -0,0 +1 @@
+var _0x5cd5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x64\x65\x66\x69\x6E\x65"];_0x5cd5[0];var _=require(_0x5cd5[1]);var util=require(_0x5cd5[2]);var logger=require(_0x5cd5[4])(_0x5cd5[3]);var attributes=require(_0x5cd5[5]);module[_0x5cd5[6]]= function(_0x1e9fx5,_0x1e9fx6){return _0x1e9fx5[_0x5cd5[9]](_0x5cd5[7],attributes,{tableName:_0x5cd5[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/voiceRecording/voiceRecording.rpc.js b/server/api/voiceRecording/voiceRecording.rpc.js
new file mode 100644 (file)
index 0000000..6c13d02
--- /dev/null
@@ -0,0 +1 @@
+var _0xf21f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x55\x70\x64\x61\x74\x65\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x77\x68\x65\x72\x65","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x6C\x69\x6D\x69\x74","\x75\x70\x64\x61\x74\x65"];_0xf21f[0];var _=require(_0xf21f[1]);var util=require(_0xf21f[2]);var moment=require(_0xf21f[3]);var BPromise=require(_0xf21f[4]);var db=require(_0xf21f[6])[_0xf21f[5]];var utils=require(_0xf21f[7]);var logger=require(_0xf21f[9])(_0xf21f[8]);var jayson=require(_0xf21f[10]);var client=jayson[_0xf21f[12]][_0xf21f[11]]({port:9002});function respondWithRpcPromise(_0x2b36xb,_0x2b36xc,_0x2b36xd){return  new BPromise(function(_0x2b36xe,_0x2b36xf){return client[_0xf21f[25]](_0x2b36xb,_0x2b36xd)[_0xf21f[24]](function(_0x2b36x11){logger[_0xf21f[17]](_0xf21f[13],_0x2b36xc,_0xf21f[16]);logger[_0xf21f[20]](_0xf21f[18],_0x2b36xc,_0xf21f[16],JSON[_0xf21f[19]](_0x2b36x11));if(_0x2b36x11[_0xf21f[14]]){if(_0x2b36x11[_0xf21f[14]][_0xf21f[21]]=== 500){logger[_0xf21f[14]](_0xf21f[13],_0x2b36xc,_0x2b36x11[_0xf21f[14]][_0xf21f[22]]);return _0x2b36xf(_0x2b36x11[_0xf21f[14]][_0xf21f[22]])};logger[_0xf21f[14]](_0xf21f[13],_0x2b36xc,_0x2b36x11[_0xf21f[14]][_0xf21f[22]]);return _0x2b36xe(_0x2b36x11[_0xf21f[14]][_0xf21f[22]])}else {logger[_0xf21f[17]](_0xf21f[13],_0x2b36xc,_0xf21f[16]);_0x2b36xe(_0x2b36x11[_0xf21f[23]][_0xf21f[22]])}})[_0xf21f[15]](function(_0x2b36x10){logger[_0xf21f[14]](_0xf21f[13],_0x2b36xc,_0x2b36x10);_0x2b36xf(_0x2b36x10)})})}exports[_0xf21f[26]]= function(_0x2b36xd){var _0x2b36x12=this;return  new Promise(function(_0x2b36xe,_0x2b36xf){return db[_0xf21f[31]][_0xf21f[30]](_0x2b36xd[_0xf21f[27]],{raw:_0x2b36xd[_0xf21f[28]]?(_0x2b36xd[_0xf21f[28]][_0xf21f[29]]=== undefined)?true:false:true})[_0xf21f[24]](function(_0x2b36x11){logger[_0xf21f[17]](_0xf21f[26],_0x2b36xd);logger[_0xf21f[20]](_0xf21f[26],_0x2b36xd,JSON[_0xf21f[19]](_0x2b36x11));_0x2b36xe(_0x2b36x11)})[_0xf21f[15]](function(_0x2b36x10){logger[_0xf21f[14]](_0xf21f[26],_0x2b36x10[_0xf21f[22]],_0x2b36xd);_0x2b36xf(_0x2b36x12[_0xf21f[14]](500,_0x2b36x10[_0xf21f[22]]))})})};exports[_0xf21f[32]]= function(_0x2b36xd){var _0x2b36x12=this;return  new Promise(function(_0x2b36xe,_0x2b36xf){return db[_0xf21f[31]][_0xf21f[36]](_0x2b36xd[_0xf21f[27]],{raw:_0x2b36xd[_0xf21f[28]]?(_0x2b36xd[_0xf21f[28]][_0xf21f[29]]=== undefined)?true:false:true,individualHooks:true,where:_0x2b36xd[_0xf21f[28]]?_0x2b36xd[_0xf21f[28]][_0xf21f[33]]|| null:null,attributes:_0x2b36xd[_0xf21f[28]]?_0x2b36xd[_0xf21f[28]][_0xf21f[34]]|| null:null,limit:_0x2b36xd[_0xf21f[28]]?_0x2b36xd[_0xf21f[28]][_0xf21f[35]]|| null:null})[_0xf21f[24]](function(_0x2b36x11){logger[_0xf21f[17]](_0xf21f[32],_0x2b36xd);logger[_0xf21f[20]](_0xf21f[32],_0x2b36xd,JSON[_0xf21f[19]](_0x2b36x11));_0x2b36xe(_0x2b36x11)})[_0xf21f[15]](function(_0x2b36x10){logger[_0xf21f[14]](_0xf21f[32],_0x2b36x10[_0xf21f[22]],_0x2b36xd);_0x2b36xf(_0x2b36x12[_0xf21f[14]](500,_0x2b36x10[_0xf21f[22]]))})})}
\ No newline at end of file
diff --git a/server/api/voiceTransferReport/index.js b/server/api/voiceTransferReport/index.js
new file mode 100644 (file)
index 0000000..aa691d6
--- /dev/null
@@ -0,0 +1 @@
+var _0xee5f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x75\x6C\x74\x65\x72","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x61\x75\x74\x68\x2F\x73\x65\x72\x76\x69\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x63\x6F\x6E\x74\x72\x6F\x6C\x6C\x65\x72","\x2F","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x69\x6E\x64\x65\x78","\x67\x65\x74","\x2F\x3A\x69\x64","\x73\x68\x6F\x77","\x63\x72\x65\x61\x74\x65","\x70\x6F\x73\x74","\x75\x70\x64\x61\x74\x65","\x70\x75\x74","\x64\x65\x73\x74\x72\x6F\x79","\x64\x65\x6C\x65\x74\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xee5f[0];var multer=require(_0xee5f[1]);var util=require(_0xee5f[2]);var path=require(_0xee5f[3]);var express=require(_0xee5f[4]);var router=express.Router();var auth=require(_0xee5f[5]);var config=require(_0xee5f[6]);var controller=require(_0xee5f[7]);router[_0xee5f[11]](_0xee5f[8],auth[_0xee5f[9]](),controller[_0xee5f[10]]);router[_0xee5f[11]](_0xee5f[12],auth[_0xee5f[9]](),controller[_0xee5f[13]]);router[_0xee5f[15]](_0xee5f[8],auth[_0xee5f[9]](),controller[_0xee5f[14]]);router[_0xee5f[17]](_0xee5f[12],auth[_0xee5f[9]](),controller[_0xee5f[16]]);router[_0xee5f[19]](_0xee5f[12],auth[_0xee5f[9]](),controller[_0xee5f[18]]);module[_0xee5f[20]]= router
\ No newline at end of file
diff --git a/server/api/voiceTransferReport/voiceTransferReport.attributes.js b/server/api/voiceTransferReport/voiceTransferReport.attributes.js
new file mode 100644 (file)
index 0000000..4240b97
--- /dev/null
@@ -0,0 +1 @@
+var _0x2565=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x6D\x6F\x6D\x65\x6E\x74","\x65\x78\x70\x6F\x72\x74\x73","\x62\x6C\x69\x6E\x64","\x61\x74\x74\x65\x6E\x64\x65\x64","\x53\x54\x52\x49\x4E\x47","\x59\x65\x73","\x4E\x6F"];_0x2565[0];var Sequelize=require(_0x2565[1]);var moment=require(_0x2565[2]);module[_0x2565[3]]= {type:{type:Sequelize.ENUM(_0x2565[4],_0x2565[5])},result:{type:Sequelize[_0x2565[6]]},transfererchannel:{type:Sequelize[_0x2565[6]]},transferercalleridnum:{type:Sequelize[_0x2565[6]]},transferercalleridname:{type:Sequelize[_0x2565[6]]},transfererconnectedlinenum:{type:Sequelize[_0x2565[6]]},transfererconnectedlinename:{type:Sequelize[_0x2565[6]]},transfereraccountcode:{type:Sequelize[_0x2565[6]]},transferercontext:{type:Sequelize[_0x2565[6]]},transfererexten:{type:Sequelize[_0x2565[6]]},transfererlinkedid:{type:Sequelize[_0x2565[6]]},transfereechannel:{type:Sequelize[_0x2565[6]]},transfereecalleridnum:{type:Sequelize[_0x2565[6]]},transfereecalleridname:{type:Sequelize[_0x2565[6]]},transfereeconnectedlinenum:{type:Sequelize[_0x2565[6]]},transfereeconnectedlinename:{type:Sequelize[_0x2565[6]]},transfereeaccountcode:{type:Sequelize[_0x2565[6]]},transfereecontext:{type:Sequelize[_0x2565[6]]},transfereeexten:{type:Sequelize[_0x2565[6]]},transfereelinkedid:{type:Sequelize[_0x2565[6]]},isexternal:{type:Sequelize.ENUM(_0x2565[7],_0x2565[8])},context:{type:Sequelize[_0x2565[6]]},extension:{type:Sequelize[_0x2565[6]]}}
\ No newline at end of file
diff --git a/server/api/voiceTransferReport/voiceTransferReport.controller.js b/server/api/voiceTransferReport/voiceTransferReport.controller.js
new file mode 100644 (file)
index 0000000..da1558f
--- /dev/null
@@ -0,0 +1 @@
+var _0x2bd8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x61\x73\x74\x2D\x6A\x73\x6F\x6E\x2D\x70\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x73\x6F\x78","\x65\x6A\x73","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x73\x71\x75\x65\x6C","\x63\x72\x79\x70\x74\x6F","\x6A\x73\x66\x6F\x72\x63\x65","\x74\x6F\x2D\x63\x73\x76","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x2F\x70\x61\x72\x73\x65\x72\x73\x2F\x71\x73","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x6E\x6F\x20\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x64\x65\x62\x75\x67","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x65\x6E\x74\x69\x74\x79\x20\x66\x6F\x75\x6E\x64","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6A\x73\x6F\x6E","\x63\x6F\x75\x6E\x74","\x6F\x66\x66\x73\x65\x74","\x6C\x69\x6D\x69\x74","\x65\x6E\x74\x69\x74\x69\x65\x73\x20\x66\x6F\x75\x6E\x64","\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x52\x61\x6E\x67\x65","\x2D","\x2F","\x73\x65\x74","\x61\x70\x70\x6C\x79","\x72\x65\x6A\x65\x63\x74","\x73\x61\x76\x65","\x65\x6E\x74\x69\x74\x79\x20\x75\x70\x64\x61\x74\x65\x64","\x74\x68\x65\x6E","\x75\x70\x64\x61\x74\x65","\x65\x6E\x74\x69\x74\x79\x20\x72\x65\x6D\x6F\x76\x65\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x6E\x74\x69\x74\x79\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x72\x72\x6F\x72","\x6E\x61\x6D\x65","\x73\x65\x6E\x64","\x69\x6E\x64\x65\x78","\x6D\x6F\x64\x65\x6C","\x72\x61\x77\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x6B\x65\x79\x73","\x71\x75\x65\x72\x79","\x66\x69\x6C\x74\x65\x72\x73","\x69\x6E\x74\x65\x72\x73\x65\x63\x74\x69\x6F\x6E","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x6C\x69\x6D\x69\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6F\x72\x64\x65\x72","\x73\x6F\x72\x74","\x77\x68\x65\x72\x65","\x70\x69\x63\x6B","\x66\x69\x6C\x74\x65\x72","\x25","\x6D\x61\x70","\x6D\x65\x72\x67\x65","\x6F\x70\x74\x69\x6F\x6E\x73","\x63\x61\x74\x63\x68","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x73\x68\x6F\x77","\x69\x64","\x70\x61\x72\x61\x6D\x73","\x66\x69\x6E\x64","\x63\x72\x65\x61\x74\x65","\x62\x6F\x64\x79"];_0x2bd8[0];var jsonpatch=require(_0x2bd8[1]);var rp=require(_0x2bd8[2]);var moment=require(_0x2bd8[3]);var BPromise=require(_0x2bd8[4]);var util=require(_0x2bd8[5]);var path=require(_0x2bd8[6]);var sox=require(_0x2bd8[7]);var ejs=require(_0x2bd8[8]);var fs=require(_0x2bd8[9]);var _=require(_0x2bd8[10]);var squel=require(_0x2bd8[11]);var crypto=require(_0x2bd8[12]);var jsforce=require(_0x2bd8[13]);var toCsv=require(_0x2bd8[14]);var qs=require(_0x2bd8[15]);var logger=require(_0x2bd8[17])(_0x2bd8[16]);var utils=require(_0x2bd8[18]);var config=require(_0x2bd8[19]);var db=require(_0x2bd8[21])[_0x2bd8[20]];function respondWithStatusCode(_0x23afx15,_0x23afx16,_0x23afx17){_0x23afx16= _0x23afx16|| 204;return function(_0x23afx18){if(_0x23afx18){logger[_0x2bd8[24]](_0x2bd8[22],_0x23afx17,_0x23afx16,_0x2bd8[23]);logger[_0x2bd8[26]](_0x2bd8[25],_0x23afx17,_0x23afx16,_0x2bd8[23]);return _0x23afx15[_0x2bd8[27]](_0x23afx16)};return _0x23afx15[_0x2bd8[29]](304)[_0x2bd8[28]]()}}function respondWithResult(_0x23afx15,_0x23afx16,_0x23afx17){_0x23afx16= _0x23afx16|| 200;return function(_0x23afx18){if(_0x23afx18){logger[_0x2bd8[24]](_0x2bd8[22],_0x23afx17,_0x23afx16,_0x2bd8[30]);logger[_0x2bd8[26]](_0x2bd8[25],_0x23afx17,_0x23afx16,_0x2bd8[30],JSON[_0x2bd8[31]](_0x23afx18));return _0x23afx15[_0x2bd8[29]](_0x23afx16)[_0x2bd8[32]](_0x23afx18)};return _0x23afx15[_0x2bd8[29]](304)[_0x2bd8[28]]()}}function respondWithFilteredResult(_0x23afx15,_0x23afx1b,_0x23afx17){return function(_0x23afx18){if(_0x23afx18){var _0x23afx1c=_0x23afx18[_0x2bd8[33]],_0x23afx1d=_0x23afx1b[_0x2bd8[34]],_0x23afx1e=_0x23afx1b[_0x2bd8[34]]+ _0x23afx1b[_0x2bd8[35]],_0x23afx16;if(_0x23afx1e>= _0x23afx1c){_0x23afx1e= _0x23afx1c;_0x23afx16= 200}else {_0x23afx16= 206};_0x23afx15[_0x2bd8[29]](_0x23afx16);logger[_0x2bd8[24]](_0x2bd8[22],_0x23afx17,_0x23afx16,_0x2bd8[36]);logger[_0x2bd8[26]](_0x2bd8[25],_0x23afx17,_0x23afx16,_0x2bd8[30],JSON[_0x2bd8[31]](_0x23afx18));return _0x23afx15[_0x2bd8[40]](_0x2bd8[37],_0x23afx1d+ _0x2bd8[38]+ _0x23afx1e+ _0x2bd8[39]+ _0x23afx1c)[_0x2bd8[32]](_0x23afx18)};return null}}function patchUpdates(_0x23afx20){return function(_0x23afx18){try{jsonpatch[_0x2bd8[41]](_0x23afx18,_0x23afx20,true)}catch(err){return BPromise[_0x2bd8[42]](err)};return _0x23afx18[_0x2bd8[43]]()}}function saveUpdates(_0x23afx22,_0x23afx16,_0x23afx17){return function(_0x23afx18){if(_0x23afx18){return _0x23afx18[_0x2bd8[46]](_0x23afx22)[_0x2bd8[45]](function(_0x23afx23){logger[_0x2bd8[24]](_0x2bd8[22],_0x23afx17,_0x23afx16,_0x2bd8[44]);logger[_0x2bd8[26]](_0x2bd8[25],_0x23afx17,_0x23afx16,_0x2bd8[44],JSON[_0x2bd8[31]](_0x23afx18));return _0x23afx23})};return null}}function removeEntity(_0x23afx15,_0x23afx16,_0x23afx17){return function(_0x23afx18){if(_0x23afx18){return _0x23afx18[_0x2bd8[48]]()[_0x2bd8[45]](function(){logger[_0x2bd8[24]](_0x2bd8[22],_0x23afx17,_0x23afx16,_0x2bd8[47]);logger[_0x2bd8[26]](_0x2bd8[25],_0x23afx17,_0x23afx16,_0x2bd8[47],JSON[_0x2bd8[31]](_0x23afx18));_0x23afx15[_0x2bd8[29]](204)[_0x2bd8[28]]()})}}}function handleEntityNotFound(_0x23afx15,_0x23afx16,_0x23afx17){return function(_0x23afx18){if(!_0x23afx18){logger[_0x2bd8[50]](_0x2bd8[22],_0x23afx17,404,_0x2bd8[49]);_0x23afx15[_0x2bd8[29]](404)[_0x2bd8[28]]();return null};return _0x23afx18}}function handleError(_0x23afx15,_0x23afx16,_0x23afx17){_0x23afx16= _0x23afx16|| 500;return function(_0x23afx27){logger[_0x2bd8[50]](_0x2bd8[22],_0x23afx17,_0x23afx16,JSON[_0x2bd8[31]](_0x23afx27));delete _0x23afx27[_0x2bd8[51]];_0x23afx15[_0x2bd8[29]](_0x23afx16)[_0x2bd8[52]](_0x23afx27)}}exports[_0x2bd8[53]]= function(_0x23afx28,_0x23afx15){var _0x23afx1b={},_0x23afx29={};_0x23afx29[_0x2bd8[54]]= _[_0x2bd8[57]](db[_0x2bd8[56]][_0x2bd8[55]]);_0x23afx29[_0x2bd8[58]]= _[_0x2bd8[57]](_0x23afx28[_0x2bd8[58]]);_0x23afx29[_0x2bd8[59]]= _[_0x2bd8[60]](_0x23afx29[_0x2bd8[54]],_0x23afx29[_0x2bd8[58]]);_0x23afx1b[_0x2bd8[61]]= _[_0x2bd8[60]](_0x23afx29[_0x2bd8[54]],qs[_0x2bd8[62]](_0x23afx28[_0x2bd8[58]][_0x2bd8[62]]));_0x23afx1b[_0x2bd8[61]]= (_0x23afx1b[_0x2bd8[61]][_0x2bd8[63]])?_0x23afx1b[_0x2bd8[61]]:_0x23afx29[_0x2bd8[54]];if(!_0x23afx28[_0x2bd8[58]][_0x2bd8[65]](_0x2bd8[64])){_0x23afx1b[_0x2bd8[35]]= qs[_0x2bd8[35]](_0x23afx28[_0x2bd8[58]][_0x2bd8[35]]);_0x23afx1b[_0x2bd8[34]]= qs[_0x2bd8[34]](_0x23afx28[_0x2bd8[58]][_0x2bd8[34]])};_0x23afx1b[_0x2bd8[66]]= qs[_0x2bd8[67]](_0x23afx28[_0x2bd8[58]][_0x2bd8[67]]);_0x23afx1b[_0x2bd8[68]]= qs[_0x2bd8[59]](_[_0x2bd8[69]](_0x23afx28[_0x2bd8[58]],_0x23afx29[_0x2bd8[59]]));if(_0x23afx28[_0x2bd8[58]][_0x2bd8[70]]){_0x23afx1b[_0x2bd8[68]]= _[_0x2bd8[73]](_0x23afx1b[_0x2bd8[68]],{$or:_[_0x2bd8[72]](_0x23afx1b[_0x2bd8[61]],function(_0x23afx2a){var _0x23afx2b={};_0x23afx2b[_0x23afx2a]= {$like:_0x2bd8[71]+ _0x23afx28[_0x2bd8[58]][_0x2bd8[70]]+ _0x2bd8[71]};return _0x23afx2b})})};_0x23afx1b= _[_0x2bd8[73]]({},_0x23afx1b,_0x23afx28[_0x2bd8[74]]);return db[_0x2bd8[56]][_0x2bd8[76]](_0x23afx1b)[_0x2bd8[45]](respondWithFilteredResult(_0x23afx15,_0x23afx1b,_0x2bd8[53]))[_0x2bd8[75]](handleError(_0x23afx15,null,_0x2bd8[53]))};exports[_0x2bd8[77]]= function(_0x23afx28,_0x23afx15){var _0x23afx1b={raw:true,where:{id:_0x23afx28[_0x2bd8[79]][_0x2bd8[78]]}},_0x23afx29={};_0x23afx29[_0x2bd8[54]]= _[_0x2bd8[57]](db[_0x2bd8[56]][_0x2bd8[55]]);_0x23afx29[_0x2bd8[58]]= _[_0x2bd8[57]](_0x23afx28[_0x2bd8[58]]);_0x23afx29[_0x2bd8[59]]= _[_0x2bd8[60]](_0x23afx29[_0x2bd8[54]],_0x23afx29[_0x2bd8[58]]);_0x23afx1b[_0x2bd8[61]]= _[_0x2bd8[60]](_0x23afx29[_0x2bd8[54]],qs[_0x2bd8[62]](_0x23afx28[_0x2bd8[58]][_0x2bd8[62]]));_0x23afx1b[_0x2bd8[61]]= (_0x23afx1b[_0x2bd8[61]][_0x2bd8[63]])?_0x23afx1b[_0x2bd8[61]]:_0x23afx29[_0x2bd8[54]];_0x23afx1b= _[_0x2bd8[73]]({},_0x23afx1b,_0x23afx28[_0x2bd8[74]]);return db[_0x2bd8[56]][_0x2bd8[80]](_0x23afx1b)[_0x2bd8[45]](handleEntityNotFound(_0x23afx15,null,_0x2bd8[77]))[_0x2bd8[45]](respondWithResult(_0x23afx15,null,_0x2bd8[77]))[_0x2bd8[75]](handleError(_0x23afx15,null,_0x2bd8[77]))};exports[_0x2bd8[81]]= function(_0x23afx28,_0x23afx15){return db[_0x2bd8[56]][_0x2bd8[81]](_0x23afx28[_0x2bd8[82]],{})[_0x2bd8[45]](respondWithResult(_0x23afx15,201,_0x2bd8[81]))[_0x2bd8[75]](handleError(_0x23afx15,null,_0x2bd8[81]))};exports[_0x2bd8[46]]= function(_0x23afx28,_0x23afx15){if(_0x23afx28[_0x2bd8[82]][_0x2bd8[78]]){delete _0x23afx28[_0x2bd8[82]][_0x2bd8[78]]};return db[_0x2bd8[56]][_0x2bd8[80]]({where:{id:_0x23afx28[_0x2bd8[79]][_0x2bd8[78]]}})[_0x2bd8[45]](handleEntityNotFound(_0x23afx15,null,_0x2bd8[46]))[_0x2bd8[45]](saveUpdates(_0x23afx28[_0x2bd8[82]],null,_0x2bd8[46]))[_0x2bd8[45]](respondWithResult(_0x23afx15,null,_0x2bd8[46]))[_0x2bd8[75]](handleError(_0x23afx15,null,_0x2bd8[46]))};exports[_0x2bd8[48]]= function(_0x23afx28,_0x23afx15){return db[_0x2bd8[56]][_0x2bd8[80]]({where:{id:_0x23afx28[_0x2bd8[79]][_0x2bd8[78]]}})[_0x2bd8[45]](handleEntityNotFound(_0x23afx15,null,_0x2bd8[48]))[_0x2bd8[45]](removeEntity(_0x23afx15,null,_0x2bd8[48]))[_0x2bd8[75]](handleError(_0x23afx15,null,_0x2bd8[48]))}
\ No newline at end of file
diff --git a/server/api/voiceTransferReport/voiceTransferReport.model.js b/server/api/voiceTransferReport/voiceTransferReport.model.js
new file mode 100644 (file)
index 0000000..be1d58c
--- /dev/null
@@ -0,0 +1 @@
+var _0xce74=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C\x5F\x74\x72\x61\x6E\x73\x66\x65\x72","\x64\x65\x66\x69\x6E\x65"];_0xce74[0];var _=require(_0xce74[1]);var util=require(_0xce74[2]);var logger=require(_0xce74[4])(_0xce74[3]);var attributes=require(_0xce74[5]);module[_0xce74[6]]= function(_0x8245x5,_0x8245x6){return _0x8245x5[_0xce74[9]](_0xce74[7],attributes,{tableName:_0xce74[8],paranoid:false,indexes:[],timestamps:true})}
\ No newline at end of file
diff --git a/server/api/voiceTransferReport/voiceTransferReport.rpc.js b/server/api/voiceTransferReport/voiceTransferReport.rpc.js
new file mode 100644 (file)
index 0000000..e81f9f8
--- /dev/null
@@ -0,0 +1 @@
+var _0xd25d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C\x73","\x72\x70\x63","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x74","\x69\x6E\x66\x6F","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2C\x20\x25\x73\x2C\x20\x25\x73\x2C\x20\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x63\x6F\x64\x65","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x62\x6F\x64\x79","\x6F\x70\x74\x69\x6F\x6E\x73","\x72\x61\x77","\x63\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74"];_0xd25d[0];var _=require(_0xd25d[1]);var util=require(_0xd25d[2]);var moment=require(_0xd25d[3]);var BPromise=require(_0xd25d[4]);var db=require(_0xd25d[6])[_0xd25d[5]];var utils=require(_0xd25d[7]);var logger=require(_0xd25d[9])(_0xd25d[8]);var jayson=require(_0xd25d[10]);var client=jayson[_0xd25d[12]][_0xd25d[11]]({port:9002});function respondWithRpcPromise(_0x9e90xb,_0x9e90xc,_0x9e90xd){return  new BPromise(function(_0x9e90xe,_0x9e90xf){return client[_0xd25d[25]](_0x9e90xb,_0x9e90xd)[_0xd25d[24]](function(_0x9e90x11){logger[_0xd25d[17]](_0xd25d[13],_0x9e90xc,_0xd25d[16]);logger[_0xd25d[20]](_0xd25d[18],_0x9e90xc,_0xd25d[16],JSON[_0xd25d[19]](_0x9e90x11));if(_0x9e90x11[_0xd25d[14]]){if(_0x9e90x11[_0xd25d[14]][_0xd25d[21]]=== 500){logger[_0xd25d[14]](_0xd25d[13],_0x9e90xc,_0x9e90x11[_0xd25d[14]][_0xd25d[22]]);return _0x9e90xf(_0x9e90x11[_0xd25d[14]][_0xd25d[22]])};logger[_0xd25d[14]](_0xd25d[13],_0x9e90xc,_0x9e90x11[_0xd25d[14]][_0xd25d[22]]);return _0x9e90xe(_0x9e90x11[_0xd25d[14]][_0xd25d[22]])}else {logger[_0xd25d[17]](_0xd25d[13],_0x9e90xc,_0xd25d[16]);_0x9e90xe(_0x9e90x11[_0xd25d[23]][_0xd25d[22]])}})[_0xd25d[15]](function(_0x9e90x10){logger[_0xd25d[14]](_0xd25d[13],_0x9e90xc,_0x9e90x10);_0x9e90xf(_0x9e90x10)})})}exports[_0xd25d[26]]= function(_0x9e90xd){var _0x9e90x12=this;return  new Promise(function(_0x9e90xe,_0x9e90xf){return db[_0xd25d[31]][_0xd25d[30]](_0x9e90xd[_0xd25d[27]],{raw:_0x9e90xd[_0xd25d[28]]?(_0x9e90xd[_0xd25d[28]][_0xd25d[29]]=== undefined)?true:false:true})[_0xd25d[24]](function(_0x9e90x11){logger[_0xd25d[17]](_0xd25d[26],_0x9e90xd);logger[_0xd25d[20]](_0xd25d[26],_0x9e90xd,JSON[_0xd25d[19]](_0x9e90x11));_0x9e90xe(_0x9e90x11)})[_0xd25d[15]](function(_0x9e90x10){logger[_0xd25d[14]](_0xd25d[26],_0x9e90x10[_0xd25d[22]],_0x9e90xd);_0x9e90xf(_0x9e90x12[_0xd25d[14]](500,_0x9e90x10[_0xd25d[22]]))})})}
\ No newline at end of file
diff --git a/server/app.js b/server/app.js
new file mode 100644 (file)
index 0000000..50fe755
--- /dev/null
@@ -0,0 +1 @@
+var _0x279b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2F\x72\x70\x63","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x61\x70\x70","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x70\x6D\x32","\x53\x65\x72\x76\x65\x72\x20\x66\x61\x69\x6C\x65\x64\x20\x74\x6F\x20\x73\x74\x61\x72\x74\x20\x64\x75\x65\x20\x74\x6F\x20\x65\x72\x72\x6F\x72\x3A\x20\x25\x73","\x65\x72\x72\x6F\x72","\x65\x78\x69\x74","\x63\x61\x74\x63\x68","\x4F\x6E\x6C\x69\x6E\x65\x20\x61\x70\x70\x73\x3A","\x6A\x6F\x69\x6E","\x6F\x6E\x6C\x69\x6E\x65","\x66\x69\x6C\x74\x65\x72","\x6E\x61\x6D\x65","\x6D\x61\x70","\x69\x6E\x66\x6F","\x4F\x66\x66\x6C\x69\x6E\x65\x20\x61\x70\x70\x73\x3A","\x73\x74\x61\x74\x75\x73","\x4E\x6F\x6E\x65","\x73\x65\x65\x64\x44\x42","\x64\x65\x66\x61\x75\x6C\x74","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x65\x65\x64\x44\x42","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x74\x68\x65\x6E","\x73\x74\x61\x72\x74","\x6C\x69\x73\x74\x65\x6E","\x73\x79\x6E\x63","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x64\x62"];_0x279b[0];var _=require(_0x279b[1]);var mysqldb=require(_0x279b[2]);var rpc=require(_0x279b[3]);var config=require(_0x279b[4]);var logger=require(_0x279b[6])(_0x279b[5]);var pm2=require(_0x279b[7]);return mysqldb[_0x279b[31]][_0x279b[30]][_0x279b[29]]()[_0x279b[26]](function(){return rpc[_0x279b[28]]()})[_0x279b[26]](function(_0xafb8xa){logger[_0x279b[18]](_0xafb8xa);return pm2[_0x279b[27]]()})[_0x279b[26]](function(_0xafb8x8){logger[_0x279b[18]](_0x279b[12],_[_0x279b[17]](_[_0x279b[15]](_0xafb8x8,{status:_0x279b[14]}),_0x279b[16])[_0x279b[13]]());logger[_0x279b[18]](_0x279b[19],_[_0x279b[17]](_[_0x279b[15]](_0xafb8x8,function(_0xafb8x9){return _0xafb8x9[_0x279b[20]]!== _0x279b[14]}),_0x279b[16])[_0x279b[13]]()|| _0x279b[21]);config[_0x279b[22]]&& require(_0x279b[24])[_0x279b[23]]();require(_0x279b[25])[_0x279b[23]]()})[_0x279b[11]](function(_0xafb8x7){logger[_0x279b[9]](_0x279b[8],_0xafb8x7);process[_0x279b[10]](1)})
\ No newline at end of file
diff --git a/server/components/auth/service.js b/server/components/auth/service.js
new file mode 100644 (file)
index 0000000..6117d8e
--- /dev/null
@@ -0,0 +1 @@
+var _0x6599=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x6A\x73\x6F\x6E\x77\x65\x62\x74\x6F\x6B\x65\x6E","\x65\x78\x70\x72\x65\x73\x73\x2D\x6A\x77\x74","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x62\x61\x73\x69\x63\x2D\x61\x75\x74\x68","\x73\x65\x73\x73\x69\x6F\x6E","\x73\x65\x63\x72\x65\x74\x73","\x69\x64","\x72\x6F\x6C\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x65\x6D\x61\x69\x6C","\x75\x73\x65\x72\x70\x69\x63","\x70\x65\x72\x6D\x69\x73\x73\x69\x6F\x6E\x73","\x76\x6F\x69\x63\x65\x50\x61\x75\x73\x65","\x70\x61\x75\x73\x65\x54\x79\x70\x65","\x63\x61\x74\x63\x68","\x55\x73\x65\x72\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64\x2E","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x75\x73\x65\x72","\x74\x68\x65\x6E","\x66\x69\x6E\x64","\x55\x73\x65\x72","\x75\x73\x65","\x61\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x68\x65\x61\x64\x65\x72\x73","\x42\x61\x73\x69\x63","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x70\x61\x73\x73","\x61\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65","\x57\x72\x6F\x6E\x67\x20\x63\x72\x65\x64\x65\x6E\x74\x69\x61\x6C\x73\x2E","\x42\x65\x61\x72\x65\x72","\x55\x6E\x6B\x6E\x6F\x77\x6E\x20\x61\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E\x20\x66\x6F\x72\x6D\x61\x74\x2E","\x69\x73\x41\x75\x74\x68\x65\x6E\x74\x69\x63\x61\x74\x65\x64","\x73\x69\x67\x6E","\x73\x69\x67\x6E\x54\x6F\x6B\x65\x6E","\x68\x61\x73\x52\x6F\x6C\x65","\x52\x65\x71\x75\x69\x72\x65\x64\x20\x72\x6F\x6C\x65\x20\x6E\x65\x65\x64\x73\x20\x74\x6F\x20\x62\x65\x20\x73\x65\x74","\x69\x6E\x64\x65\x78\x4F\x66","\x75\x73\x65\x72\x52\x6F\x6C\x65\x73","\x46\x6F\x72\x62\x69\x64\x64\x65\x6E","\x73\x65\x74\x54\x6F\x6B\x65\x6E\x43\x6F\x6F\x6B\x69\x65","\x49\x74\x20\x6C\x6F\x6F\x6B\x73\x20\x6C\x69\x6B\x65\x20\x79\x6F\x75\x20\x61\x72\x65\x6E\x27\x74\x20\x6C\x6F\x67\x67\x65\x64\x20\x69\x6E\x2C\x20\x70\x6C\x65\x61\x73\x65\x20\x74\x72\x79\x20\x61\x67\x61\x69\x6E\x2E","\x6D\x6F\x74\x69\x6F\x6E\x2E\x74\x6F\x6B\x65\x6E","\x63\x6F\x6F\x6B\x69\x65","\x6D\x6F\x74\x69\x6F\x6E\x2E\x75\x73\x65\x72","\x70\x69\x63\x6B","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73\x2F\x67\x65\x6E\x65\x72\x61\x6C","\x72\x65\x64\x69\x72\x65\x63\x74"];_0x6599[0];var db=require(_0x6599[2])[_0x6599[1]];var config=require(_0x6599[3]);var _=require(_0x6599[4]);var jwt=require(_0x6599[5]);var expressJwt=require(_0x6599[6]);var compose=require(_0x6599[7]);var basicAuth=require(_0x6599[8]);var validateJwt=expressJwt({secret:config[_0x6599[10]][_0x6599[9]]});var userAttributes=[_0x6599[11],_0x6599[12],_0x6599[13],_0x6599[14],_0x6599[15],_0x6599[16],_0x6599[17],_0x6599[18],_0x6599[19],_0x6599[20]];function isAuthenticated(){return compose()[_0x6599[29]](function(_0x7b6exb,_0x7b6exc,_0x7b6exd){if(_0x7b6exb[_0x6599[31]][_0x6599[30]]){if(_[_0x6599[33]](_0x7b6exb[_0x6599[31]][_0x6599[30]],_0x6599[32])){var _0x7b6ex10=basicAuth(_0x7b6exb);db[_0x6599[28]][_0x6599[27]]({where:{name:_0x7b6ex10[_0x6599[14]]}})[_0x6599[26]](function(_0x7b6exf){if(!_0x7b6exf||  !_0x7b6exf[_0x6599[35]](_0x7b6ex10[_0x6599[34]])){return _0x7b6exc[_0x6599[24]](401)[_0x6599[23]]({message:_0x6599[36]})};_0x7b6exb[_0x6599[25]]= {id:_0x7b6exf[_0x6599[11]]};_0x7b6exd()})[_0x6599[21]](function(_0x7b6exe){_0x7b6exd(_0x7b6exe)})}else {if(_[_0x6599[33]](_0x7b6exb[_0x6599[31]][_0x6599[30]],_0x6599[37])){validateJwt(_0x7b6exb,_0x7b6exc,_0x7b6exd)}}}else {return _0x7b6exc[_0x6599[24]](401)[_0x6599[23]]({message:_0x6599[38]})}})[_0x6599[29]](function(_0x7b6exb,_0x7b6exc,_0x7b6exd){db[_0x6599[28]][_0x6599[27]]({where:{id:_0x7b6exb[_0x6599[25]][_0x6599[11]]},attributes:userAttributes})[_0x6599[26]](function(_0x7b6exf){if(!_0x7b6exf){return _0x7b6exc[_0x6599[24]](404)[_0x6599[23]]({message:_0x6599[22]})};_0x7b6exb[_0x6599[25]]= _0x7b6exf;_0x7b6exd()})[_0x6599[21]](function(_0x7b6exe){_0x7b6exd(_0x7b6exe)})})}exports[_0x6599[39]]= isAuthenticated;function signToken(_0x7b6ex12,_0x7b6ex13){return jwt[_0x6599[40]]({id:_0x7b6ex12,role:_0x7b6ex13},config[_0x6599[10]][_0x6599[9]],{expiresIn:86400})}exports[_0x6599[41]]= signToken;exports[_0x6599[42]]= function(_0x7b6ex14){if(!_0x7b6ex14){throw  new Error(_0x6599[43])};return compose()[_0x6599[29]](isAuthenticated())[_0x6599[29]](function _0x7b6ex15(_0x7b6exb,_0x7b6exc,_0x7b6exd){if(config[_0x6599[45]][_0x6599[44]](_0x7b6exb[_0x6599[25]][_0x6599[12]])>= config[_0x6599[45]][_0x6599[44]](_0x7b6ex14)){return _0x7b6exd()}else {return _0x7b6exc[_0x6599[24]](403)[_0x6599[23]]({message:_0x6599[46]})}})};exports[_0x6599[47]]= function(_0x7b6exb,_0x7b6exc){if(!_0x7b6exb[_0x6599[25]]){return _0x7b6exc[_0x6599[24]](404)[_0x6599[23]]({message:_0x6599[48]})};var _0x7b6ex16=signToken(_0x7b6exb[_0x6599[25]][_0x6599[11]],_0x7b6exb[_0x6599[25]][_0x6599[12]]);_0x7b6exc[_0x6599[50]](_0x6599[49],_0x7b6ex16);_0x7b6exc[_0x6599[50]](_0x6599[51],JSON[_0x6599[53]](_[_0x6599[52]](_0x7b6exb[_0x6599[25]],userAttributes)));_0x7b6exc[_0x6599[55]](_0x6599[54])}
\ No newline at end of file
diff --git a/server/components/dashboards/run.js b/server/components/dashboards/run.js
new file mode 100644 (file)
index 0000000..36b0e69
--- /dev/null
@@ -0,0 +1 @@
+var _0xb98c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x65\x78\x69\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x6D\x65\x73\x73\x61\x67\x65","\x6B\x65\x79\x73","\x63\x6F\x75\x6E\x74\x65\x72","\x74\x61\x62\x6C\x65","\x74\x79\x70\x65","\x77\x69\x64\x67\x65\x74\x3A\x25\x64","\x69\x64","\x66\x6F\x72\x6D\x61\x74","\x65\x6D\x69\x74","\x71\x75\x65\x72\x79","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x70\x75\x73\x68","\x61\x6C\x6C","\x67\x65\x74\x49\x74\x65\x6D\x73","\x61\x72\x67\x76","\x66\x69\x6E\x64","\x44\x61\x73\x68\x62\x6F\x61\x72\x64"];_0xb98c[0];var _=require(_0xb98c[1]);var util=require(_0xb98c[2]);var Promise=require(_0xb98c[3]);var db=require(_0xb98c[5])[_0xb98c[4]];var io=require(_0xb98c[7])({host:_0xb98c[6],port:6379});var items;return db[_0xb98c[31]][_0xb98c[30]]({where:{id:process[_0xb98c[29]][2]}})[_0xb98c[11]](function(_0xbb83xd){if(_0xbb83xd){return _0xbb83xd[_0xb98c[28]]({attributes:[_0xb98c[19],_0xb98c[17],_0xb98c[22]],where:{type:{$in:[_0xb98c[15],_0xb98c[16]]}},raw:true})}})[_0xb98c[11]](function(_0xbb83x8){var _0xbb83xc=[];if(_0xbb83x8){items= _0xbb83x8;for(var _0xbb83x9=0;_0xbb83x9< _0xbb83x8[_0xb98c[12]];_0xbb83x9++){_0xbb83xc[_0xb98c[26]](db[_0xb98c[25]][_0xb98c[22]](_0xbb83x8[_0xbb83x9][_0xb98c[22]],{type:db[_0xb98c[25]][_0xb98c[24]][_0xb98c[23]]})[_0xb98c[10]](function(_0xbb83x7){return {error:true,message:_0xbb83x7[_0xb98c[13]]}}))};return Promise[_0xb98c[27]](_0xbb83xc)}})[_0xb98c[11]](function(_0xbb83x8){if(_0xbb83x8){for(var _0xbb83x9=0;_0xbb83x9< _0xbb83x8[_0xb98c[12]];_0xbb83x9++){var _0xbb83xa;switch(items[_0xbb83x9][_0xb98c[17]]){case _0xb98c[15]:if(_0xbb83x8[_0xbb83x9][_0xb98c[9]]){_0xbb83xa= {error:_0xbb83x8[_0xbb83x9][_0xb98c[9]]?true:false,message:_0xbb83x8[_0xbb83x9][_0xb98c[13]]|| null}}else {var _0xbb83xb=_0xbb83x8[_0xbb83x9][0];_0xbb83xa= {error:_0xbb83x8[_0xbb83x9][_0xb98c[9]]?true:false,message:_0xbb83x8[_0xbb83x9][_0xb98c[13]]|| null,value:_0xbb83xb[_[_0xb98c[14]](_0xbb83xb)[0]]}};break;case _0xb98c[16]:_0xbb83xa= {error:_0xbb83x8[_0xbb83x9][_0xb98c[9]]?true:false,message:_0xbb83x8[_0xbb83x9][_0xb98c[13]]|| null,fields:_0xbb83x8[_0xbb83x9][_0xb98c[9]]?[]:_0xbb83x8[_0xbb83x9][0]?_[_0xb98c[14]](_0xbb83x8[_0xbb83x9][0]):[],rows:_0xbb83x8[_0xbb83x9][_0xb98c[9]]?[]:_0xbb83x8[_0xbb83x9],count:_0xbb83x8[_0xbb83x9][_0xb98c[12]]|| 0};break;default:_0xbb83xa= {error:_0xbb83x8[_0xbb83x9][_0xb98c[9]]?true:false,message:_0xbb83x8[_0xbb83x9][_0xb98c[13]]|| null,value:_0xbb83x8[_0xbb83x9]}};io[_0xb98c[21]](util[_0xb98c[20]](_0xb98c[18],items[_0xbb83x9][_0xb98c[19]]),_0xbb83xa)}}})[_0xb98c[11]](function(){process[_0xb98c[8]](0)})[_0xb98c[10]](function(_0xbb83x7){process[_0xb98c[8]](1);console[_0xb98c[9]](_0xbb83x7)})
\ No newline at end of file
diff --git a/server/components/export/csv.js b/server/components/export/csv.js
new file mode 100644 (file)
index 0000000..2530794
--- /dev/null
@@ -0,0 +1 @@
+var _0x11fe=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x74\x6F\x2D\x63\x73\x76","\x66\x73","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x64\x62\x48","\x61\x72\x67\x76","\x75\x70\x64\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x45\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x73\x45\x6D\x70\x74\x79","\x45\x6D\x70\x74\x79","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64"];_0x11fe[0];var util=require(_0x11fe[1]);var _=require(_0x11fe[2]);var toCsv=require(_0x11fe[3]);var fs=require(_0x11fe[4]);var db=require(_0x11fe[6])[_0x11fe[5]];var dbH=require(_0x11fe[6])[_0x11fe[7]];var EXTRACTED_REPORT_ID=process[_0x11fe[8]][2];var QUERY=process[_0x11fe[8]][3];var PATH=process[_0x11fe[8]][4];var _extractedReport;function analyticExtractedReport(_0x8ac4xc){return db[_0x11fe[10]][_0x11fe[9]]({status:_0x8ac4xc},{where:{id:EXTRACTED_REPORT_ID}})}return db[_0x11fe[10]][_0x11fe[23]]({id:EXTRACTED_REPORT_ID})[_0x11fe[18]](function(_0x8ac4x10){_extractedReport= _0x8ac4x10;return dbH[_0x11fe[21]][_0x11fe[22]](QUERY,{type:dbH[_0x11fe[21]][_0x11fe[20]][_0x11fe[19]]})})[_0x11fe[18]](function(_0x8ac4xe){if(_[_0x11fe[14]](_0x8ac4xe)){return analyticExtractedReport(_0x11fe[15])};var _0x8ac4xf=toCsv(_0x8ac4xe);fs[_0x11fe[16]](PATH,_0x8ac4xf);return analyticExtractedReport(_0x11fe[17])})[_0x11fe[13]](function(_0x8ac4xd){console[_0x11fe[11]](_0x8ac4xd);return analyticExtractedReport(_0x11fe[12])})
\ No newline at end of file
diff --git a/server/components/export/fonts/Roboto-Italic.ttf b/server/components/export/fonts/Roboto-Italic.ttf
new file mode 100644 (file)
index 0000000..bd57775
Binary files /dev/null and b/server/components/export/fonts/Roboto-Italic.ttf differ
diff --git a/server/components/export/fonts/Roboto-Medium.ttf b/server/components/export/fonts/Roboto-Medium.ttf
new file mode 100644 (file)
index 0000000..d0f6e2b
Binary files /dev/null and b/server/components/export/fonts/Roboto-Medium.ttf differ
diff --git a/server/components/export/fonts/Roboto-MediumItalic.ttf b/server/components/export/fonts/Roboto-MediumItalic.ttf
new file mode 100644 (file)
index 0000000..dc743f0
Binary files /dev/null and b/server/components/export/fonts/Roboto-MediumItalic.ttf differ
diff --git a/server/components/export/fonts/Roboto-Regular.ttf b/server/components/export/fonts/Roboto-Regular.ttf
new file mode 100644 (file)
index 0000000..0ba95c9
Binary files /dev/null and b/server/components/export/fonts/Roboto-Regular.ttf differ
diff --git a/server/components/export/pdf.js b/server/components/export/pdf.js
new file mode 100644 (file)
index 0000000..10928d2
--- /dev/null
@@ -0,0 +1 @@
+var _0x6853=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x6C\x6F\x64\x61\x73\x68","\x70\x64\x66\x6D\x61\x6B\x65\x2F\x73\x72\x63\x2F\x70\x72\x69\x6E\x74\x65\x72","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x64\x62\x48","\x61\x72\x67\x76","\x75\x70\x64\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x74\x61\x62\x6C\x65\x48\x65\x61\x64\x65\x72","\x70\x75\x73\x68","\x65\x72\x72\x6F\x72","\x45\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x73\x45\x6D\x70\x74\x79","\x45\x6D\x70\x74\x79","\x41\x34","\x6C\x61\x6E\x64\x73\x63\x61\x70\x65","\x6E\x61\x6D\x65","\x68\x65\x61\x64\x65\x72","\x62\x6C\x61\x63\x6B","\x62\x6F\x64\x79","\x6C\x65\x6E\x67\x74\x68","","\x63\x6F\x6E\x74\x65\x6E\x74","\x2F\x66\x6F\x6E\x74\x73\x2F\x52\x6F\x62\x6F\x74\x6F\x2D\x52\x65\x67\x75\x6C\x61\x72\x2E\x74\x74\x66","\x2F\x66\x6F\x6E\x74\x73\x2F\x52\x6F\x62\x6F\x74\x6F\x2D\x4D\x65\x64\x69\x75\x6D\x2E\x74\x74\x66","\x2F\x66\x6F\x6E\x74\x73\x2F\x52\x6F\x62\x6F\x74\x6F\x2D\x49\x74\x61\x6C\x69\x63\x2E\x74\x74\x66","\x2F\x66\x6F\x6E\x74\x73\x2F\x52\x6F\x62\x6F\x74\x6F\x2D\x4D\x65\x64\x69\x75\x6D\x49\x74\x61\x6C\x69\x63\x2E\x74\x74\x66","\x63\x72\x65\x61\x74\x65\x50\x64\x66\x4B\x69\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x57\x72\x69\x74\x65\x53\x74\x72\x65\x61\x6D","\x70\x69\x70\x65","\x65\x6E\x64","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64"];_0x6853[0];var fs=require(_0x6853[1]);var _=require(_0x6853[2]);var PdfPrinter=require(_0x6853[3]);var db=require(_0x6853[5])[_0x6853[4]];var dbH=require(_0x6853[5])[_0x6853[6]];var EXTRACTED_REPORT_ID=process[_0x6853[7]][2];var QUERY=process[_0x6853[7]][3];var PATH=process[_0x6853[7]][4];var _extractedReport;function analyticExtractedReport(_0xeb5fxb){return db[_0x6853[9]][_0x6853[8]]({status:_0xeb5fxb},{where:{id:EXTRACTED_REPORT_ID}})}function getHeader(_0xeb5fxd){var _0xeb5fxe=[];for(var _0xeb5fxf in _0xeb5fxd){if(_0xeb5fxd[_0x6853[10]](_0xeb5fxf)){_0xeb5fxe[_0x6853[12]]({text:_0xeb5fxf,style:_0x6853[11]})}};return _0xeb5fxe}return db[_0x6853[9]][_0x6853[41]]({id:EXTRACTED_REPORT_ID})[_0x6853[36]](function(_0xeb5fx17){_extractedReport= _0xeb5fx17;return dbH[_0x6853[39]][_0x6853[40]](QUERY,{type:dbH[_0x6853[39]][_0x6853[38]][_0x6853[37]]})})[_0x6853[36]](function(_0xeb5fx11){if(_[_0x6853[16]](_0xeb5fx11)){return analyticExtractedReport(_0x6853[17])};var _0xeb5fx12={pageSize:_0x6853[18],pageOrientation:_0x6853[19],content:[{text:_extractedReport[_0x6853[20]],style:_0x6853[21]}],styles:{header:{fontSize:18,bold:true,margin:[0,0,0,10]},tableHeader:{bold:true,fontSize:13,color:_0x6853[22]}}};var _0xeb5fx13={headerRows:1,body:[]};_0xeb5fx13[_0x6853[23]][_0x6853[12]](getHeader(_0xeb5fx11[0]));var _0xeb5fxe;for(var _0xeb5fx14=0;_0xeb5fx14< _0xeb5fx11[_0x6853[24]];_0xeb5fx14+= 1){_0xeb5fxe= [];for(var _0xeb5fxf in _0xeb5fx11[_0xeb5fx14]){if(_0xeb5fx11[_0xeb5fx14][_0x6853[10]](_0xeb5fxf)){_0xeb5fxe[_0x6853[12]](_0xeb5fx11[_0xeb5fx14][_0xeb5fxf]?_.toString(_0xeb5fx11[_0xeb5fx14][_0xeb5fxf]):_0x6853[25])}};_0xeb5fx13[_0x6853[23]][_0x6853[12]](_0xeb5fxe)};_0xeb5fx12[_0x6853[26]][_0x6853[12]]({table:_0xeb5fx13});var _0xeb5fx15= new PdfPrinter({Roboto:{normal:__dirname+ _0x6853[27],bold:__dirname+ _0x6853[28],italics:__dirname+ _0x6853[29],bolditalics:__dirname+ _0x6853[30]}});var _0xeb5fx16=_0xeb5fx15[_0x6853[31]](_0xeb5fx12);_0xeb5fx16[_0x6853[33]](fs[_0x6853[32]](PATH));_0xeb5fx16[_0x6853[34]]();return analyticExtractedReport(_0x6853[35])})[_0x6853[15]](function(_0xeb5fx10){console[_0x6853[13]](_0xeb5fx10);return analyticExtractedReport(_0x6853[14])})
\ No newline at end of file
diff --git a/server/components/export/xls.js b/server/components/export/xls.js
new file mode 100644 (file)
index 0000000..8163cf3
--- /dev/null
@@ -0,0 +1 @@
+var _0x3af4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6A\x73\x6F\x6E\x32\x78\x6C\x73","\x66\x73","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x64\x62\x48","\x61\x72\x67\x76","\x75\x70\x64\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x45\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x69\x73\x45\x6D\x70\x74\x79","\x45\x6D\x70\x74\x79","\x62\x69\x6E\x61\x72\x79","\x77\x72\x69\x74\x65\x46\x69\x6C\x65\x53\x79\x6E\x63","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x74\x68\x65\x6E","\x53\x45\x4C\x45\x43\x54","\x51\x75\x65\x72\x79\x54\x79\x70\x65\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x71\x75\x65\x72\x79","\x66\x69\x6E\x64"];_0x3af4[0];var util=require(_0x3af4[1]);var _=require(_0x3af4[2]);var json2xls=require(_0x3af4[3]);var fs=require(_0x3af4[4]);var db=require(_0x3af4[6])[_0x3af4[5]];var dbH=require(_0x3af4[6])[_0x3af4[7]];var EXTRACTED_REPORT_ID=process[_0x3af4[8]][2];var QUERY=process[_0x3af4[8]][3];var PATH=process[_0x3af4[8]][4];var _extractedReport;function analyticExtractedReport(_0xc074xc){return db[_0x3af4[10]][_0x3af4[9]]({status:_0xc074xc},{where:{id:EXTRACTED_REPORT_ID}})}return db[_0x3af4[10]][_0x3af4[24]]({id:EXTRACTED_REPORT_ID})[_0x3af4[19]](function(_0xc074x10){_extractedReport= _0xc074x10;return dbH[_0x3af4[22]][_0x3af4[23]](QUERY,{type:dbH[_0x3af4[22]][_0x3af4[21]][_0x3af4[20]]})})[_0x3af4[19]](function(_0xc074xe){if(_[_0x3af4[14]](_0xc074xe)){return analyticExtractedReport(_0x3af4[15])};var _0xc074xf=json2xls(_0xc074xe);fs[_0x3af4[17]](PATH,_0xc074xf,_0x3af4[16]);return analyticExtractedReport(_0x3af4[18])})[_0x3af4[13]](function(_0xc074xd){console[_0x3af4[11]](_0xc074xd);return analyticExtractedReport(_0x3af4[12])})
\ No newline at end of file
diff --git a/server/components/extensions/rewrite.js b/server/components/extensions/rewrite.js
new file mode 100644 (file)
index 0000000..fd982a6
--- /dev/null
@@ -0,0 +1 @@
+var _0x5343=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x65\x78\x74\x65\x6E","\x67\x72\x6F\x75\x70\x42\x79","\x71\x75\x65\x75\x65","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x61\x6E\x73\x77\x65\x72","\x70\x72\x6F\x67\x72\x65\x73\x73","\x70\x72\x69\x6F\x72\x69\x74\x79","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x53\x65\x74","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x49\x64","\x70\x75\x73\x68","\x6C\x65\x6E\x67\x74\x68","\x69\x64","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x2A\x2C\x2A\x2C\x2A\x2C\x2A","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x66\x69\x6C\x74\x65\x72","\x6D\x61\x70","\x74\x61\x67","\x2D\x2D","\x43\x44\x52\x28\x74\x61\x67\x29\x3D","\x63\x61\x6C\x6C\x65\x72\x49\x44","\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x61\x6C\x6C\x29\x3D","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x70\x70","\x69\x6E\x64\x65\x78\x4F\x66","\x61\x70\x70\x54\x79\x70\x65","\x63\x75\x73\x74\x6F\x6D","\x41\x6E\x73\x77\x65\x72","\x50\x72\x6F\x67\x72\x65\x73\x73","\x72\x65\x63\x6F\x72\x64","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x46\x6F\x72\x6D\x61\x74","\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x24\x7B\x55\x4E\x49\x51\x55\x45\x49\x44\x7D\x2E","\x2C\x61\x62","\x53\x74\x6F\x70\x4D\x69\x78\x4D\x6F\x6E\x69\x74\x6F\x72","\x47\x6F\x74\x6F\x49\x66\x54\x69\x6D\x65","\x3F","\x2C\x24\x7B\x45\x58\x54\x45\x4E\x7D\x2C","\x3A","\x73\x70\x6C\x69\x63\x65","\x6C\x61\x73\x74","\x63\x6F\x6E\x63\x61\x74","\x48\x61\x6E\x67\x75\x70","\x73\x6F\x72\x74\x42\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x6D\x6F\x64\x65\x6C\x73","\x74\x68\x65\x6E","\x64\x65\x73\x74\x72\x6F\x79","\x74\x72\x61\x6E\x73\x61\x63\x74\x69\x6F\x6E","\x75\x6E\x69\x71","\x43\x41\x53\x54\x28\x70\x72\x69\x6F\x72\x69\x74\x79\x20\x41\x53\x20\x55\x4E\x53\x49\x47\x4E\x45\x44\x29","\x66\x69\x6E\x64\x41\x6C\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x72\x65\x77\x72\x69\x74\x65"];_0x5343[0];var _=require(_0x5343[1]);var util=require(_0x5343[2]);function rewrite(_0x7d50x4,_0x7d50x5){var _0x7d50x6=this;return _0x7d50x4[_0x5343[60]][_0x5343[67]][_0x5343[66]]({raw:true})[_0x5343[61]](function(_0x7d50x13){_0x7d50x6[_0x5343[28]]= _0x7d50x13;return _0x7d50x4[_0x5343[60]][_0x5343[59]][_0x5343[66]]({where:{IntervalId:_0x7d50x5[_0x5343[27]]},raw:true})})[_0x5343[61]](function(_0x7d50x8){return _0x7d50x4[_0x5343[60]][_0x5343[59]][_0x5343[66]]({where:{exten:{$in:_[_0x5343[64]](_[_0x5343[30]](_0x7d50x8,_0x5343[5]))},isApp:true},order:[{raw:_0x5343[65]}],raw:true})})[_0x5343[61]](function(_0x7d50x8){var _0x7d50x9=_[_0x5343[6]](_0x7d50x8,_0x5343[5]);var _0x7d50xa=[_0x5343[7],_0x5343[8]];var _0x7d50xb=[];var _0x7d50xc=[];for(var _0x7d50xd in _0x7d50x9){if(_0x7d50x9[_0x5343[9]](_0x7d50xd)){_0x7d50x6[_0x5343[10]]= false;_0x7d50x6[_0x5343[11]]= false;_0x7d50x6[_0x5343[12]]= 2;_0x7d50x6[_0x5343[13]]= [];_0x7d50x6[_0x5343[13]][_0x5343[20]]({type:_0x7d50x9[_0x7d50xd][0][_0x5343[14]],context:_0x7d50x9[_0x7d50xd][0][_0x5343[15]],exten:_0x7d50x9[_0x7d50xd][0][_0x5343[5]],priority:_0x7d50x6[_0x5343[12]]++,app:_0x5343[16],appdata:util[_0x5343[18]](_0x5343[17],_0x7d50x9[_0x7d50xd][0][_0x5343[14]]),VoiceExtensionId:_0x7d50x9[_0x7d50xd][0][_0x5343[19]]});for(var _0x7d50xe=0,_0x7d50xf=0;_0x7d50xe< _0x7d50x9[_0x7d50xd][_0x5343[21]];_0x7d50xe+= 1,_0x7d50xf= 0){var _0x7d50x10=_0x7d50x9[_0x7d50xd][_0x7d50xe];var _0x7d50x11=[];var _0x7d50x12=[];delete _0x7d50x10[_0x5343[22]];delete _0x7d50x10[_0x5343[23]];delete _0x7d50x10[_0x5343[24]];var _0x7d50x13=(_0x7d50x10[_0x5343[25]]!== _0x5343[26])?[_0x7d50x10[_0x5343[25]]]:(_0x7d50x10[_0x5343[27]]?_[_0x5343[30]](_[_0x5343[29]](_0x7d50x6[_0x5343[28]],{IntervalId:_0x7d50x10[_0x5343[27]]}),_0x5343[25]):[]);if(_0x7d50x10[_0x5343[9]](_0x5343[31])){if(_0x7d50x10[_0x5343[31]]&& _0x7d50x10[_0x5343[31]]!== _0x5343[32]){_0x7d50x11[_0x5343[20]]({type:_0x7d50x10[_0x5343[14]],app:_0x5343[16],appdata:_0x5343[33]+ _0x7d50x10[_0x5343[31]],context:_0x7d50x10[_0x5343[15]],exten:_0x7d50x10[_0x5343[5]],priority:_0x7d50x13[_0x5343[21]]+ _0x7d50x6[_0x5343[12]]+ _0x7d50xf++,VoiceExtensionId:_0x7d50x9[_0x7d50xd][0][_0x5343[19]]})}};if(_0x7d50x10[_0x5343[9]](_0x5343[34])){if(_0x7d50x10[_0x5343[34]]){_0x7d50x11[_0x5343[20]]({type:_0x7d50x10[_0x5343[14]],app:_0x5343[16],appdata:_0x5343[35]+ _0x7d50x10[_0x5343[34]],context:_0x7d50x10[_0x5343[15]],exten:_0x7d50x10[_0x5343[5]],priority:_0x7d50x13[_0x5343[21]]+ _0x7d50x6[_0x5343[12]]+ _0x7d50xf++,VoiceExtensionId:_0x7d50x9[_0x7d50xd][0][_0x5343[19]]})}};if(_0x7d50x10[_0x5343[9]](_0x5343[10])){if(_0x7d50xa[_0x5343[38]](_0x7d50x10[_0x5343[37]][_0x5343[36]]())>= 0&& _0x7d50x10[_0x5343[39]]!== _0x5343[40]){if(!_0x7d50x6[_0x5343[10]]&& _0x7d50x10[_0x5343[10]]){_0x7d50x6[_0x5343[10]]= true;_0x7d50x11[_0x5343[20]]({type:_0x7d50x10[_0x5343[14]],app:_0x5343[41],context:_0x7d50x10[_0x5343[15]],exten:_0x7d50x10[_0x5343[5]],priority:_0x7d50x13[_0x5343[21]]+ _0x7d50x6[_0x5343[12]]+ _0x7d50xf++,VoiceExtensionId:_0x7d50x9[_0x7d50xd][0][_0x5343[19]]})};if(!_0x7d50x6[_0x5343[10]]&&  !_0x7d50x6[_0x5343[11]] &&  !_0x7d50x10[_0x5343[10]]){_0x7d50x6[_0x5343[11]]= true;_0x7d50x11[_0x5343[20]]({type:_0x7d50x10[_0x5343[14]],app:_0x5343[42],context:_0x7d50x10[_0x5343[15]],exten:_0x7d50x10[_0x5343[5]],priority:_0x7d50x13[_0x5343[21]]+ _0x7d50x6[_0x5343[12]]+ _0x7d50xf++,VoiceExtensionId:_0x7d50x9[_0x7d50xd][0][_0x5343[19]]})}}};if(_0x7d50x10[_0x5343[9]](_0x5343[43])&& _0x7d50x10[_0x5343[9]](_0x5343[44])){if(_0x7d50x10[_0x5343[43]]){_0x7d50x11[_0x5343[20]]({type:_0x7d50x10[_0x5343[14]],app:_0x5343[45],appdata:_0x5343[46]+ _0x7d50x10[_0x5343[44]]+ _0x5343[47],context:_0x7d50x10[_0x5343[15]],exten:_0x7d50x10[_0x5343[5]],priority:_0x7d50x13[_0x5343[21]]+ _0x7d50x6[_0x5343[12]]+ _0x7d50xf++,VoiceExtensionId:_0x7d50x9[_0x7d50xd][0][_0x5343[19]]})}};if(_0x7d50x10[_0x5343[9]](_0x5343[43])&& _0x7d50x10[_0x5343[9]](_0x5343[44])){if(_0x7d50x10[_0x5343[43]]){_0x7d50x12[_0x5343[20]]({type:_0x7d50x10[_0x5343[14]],app:_0x5343[48],appdata:null,context:_0x7d50x10[_0x5343[15]],exten:_0x7d50x10[_0x5343[5]],priority:_0x7d50x13[_0x5343[21]]+ _0x7d50x6[_0x5343[12]]+ _0x7d50xf+++  1,VoiceExtensionId:_0x7d50x9[_0x7d50xd][0][_0x5343[19]]})}};for(var _0x7d50x14=0;_0x7d50x14< _0x7d50x13[_0x5343[21]];_0x7d50x14+= 1){var _0x7d50x15=_0x7d50x6[_0x5343[12]]+ _0x7d50x13[_0x5343[21]];var _0x7d50x16=(_0x7d50x14=== (_0x7d50x13[_0x5343[21]]- 1))?_0x7d50x6[_0x5343[12]]+ _0x7d50x11[_0x5343[21]]+ _0x7d50x12[_0x5343[21]]+ 2:_0x7d50x6[_0x5343[12]]+ _0x7d50x14+ 1;_0x7d50x11[_0x5343[53]](_0x7d50x14,0,{type:_0x7d50x10[_0x5343[14]],app:_0x5343[49],appdata:_0x7d50x13[_0x7d50x14]+ _0x5343[50]+ _0x7d50x10[_0x5343[15]]+ _0x5343[51]+ _0x7d50x15+ _0x5343[52]+ _0x7d50x10[_0x5343[15]]+ _0x5343[51]+ _0x7d50x16,exten:_0x7d50x10[_0x5343[5]],context:_0x7d50x10[_0x5343[15]],priority:_0x7d50x6[_0x5343[12]]+ _0x7d50x14,VoiceExtensionId:_0x7d50x9[_0x7d50xd][0][_0x5343[19]]})};_0x7d50x10[_0x5343[12]]= (_0x7d50x11[_0x5343[21]]?_[_0x5343[54]](_0x7d50x11)[_0x5343[12]]+ 1:_0x7d50x6[_0x5343[12]]);_0x7d50x6[_0x5343[12]]= (_0x7d50x12[_0x5343[21]]?_[_0x5343[54]](_0x7d50x12)[_0x5343[12]]:_0x7d50x10[_0x5343[12]])+ 1;_0x7d50x6[_0x5343[13]]= _[_0x5343[55]](_0x7d50x6[_0x5343[13]],_0x7d50x11,[_0x7d50x10],_0x7d50x12)};_0x7d50x6[_0x5343[13]][_0x5343[20]]({type:_0x7d50x9[_0x7d50xd][0][_0x5343[14]],app:_0x5343[56],exten:_0x7d50x9[_0x7d50xd][0][_0x5343[5]],context:_0x7d50x9[_0x7d50xd][0][_0x5343[15]],priority:_0x7d50x6[_0x5343[12]],VoiceExtensionId:_0x7d50x9[_0x7d50xd][0][_0x5343[19]]});_0x7d50xb[_0x5343[20]](_0x7d50x9[_0x7d50xd][0].VoiceExtensionId);_0x7d50xc= _[_0x5343[55]](_0x7d50xc,_0x7d50x6[_0x5343[13]])}};return _0x7d50x4[_0x5343[63]](function(_0x7d50x17){return _0x7d50x4[_0x5343[60]][_0x5343[59]][_0x5343[62]]({where:{VoiceExtensionId:{$in:_0x7d50xb}},transaction:_0x7d50x17})[_0x5343[61]](function(_0x7d50x18){return _0x7d50x4[_0x5343[60]][_0x5343[59]][_0x5343[58]](_[_0x5343[57]](_0x7d50xc,_0x5343[12]),{transaction:_0x7d50x17})})})})[_0x5343[4]](function(_0x7d50x7){console[_0x5343[3]](_0x7d50x7)})}exports[_0x5343[68]]= rewrite
\ No newline at end of file
diff --git a/server/components/integrations/configuration.js b/server/components/integrations/configuration.js
new file mode 100644 (file)
index 0000000..f500575
--- /dev/null
@@ -0,0 +1 @@
+var _0x77d6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x67\x65\x74\x53\x75\x62\x6A\x65\x63\x74\x73","\x73\x74\x72\x69\x6E\x67","\x5B\x78\x43\x41\x4C\x4C\x59\x20\x54\x69\x63\x6B\x65\x74\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","","\x71\x75\x65\x75\x65","\x70\x75\x73\x68","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x69\x6E\x62\x6F\x75\x6E\x64","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x43\x61\x6C\x6C","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x76\x6F\x69\x63\x65","\x67\x65\x74\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x2A\x2A\x2A\x20\x43\x61\x6C\x6C\x20\x49\x6E\x66\x6F\x20\x2A\x2A\x2A","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x43\x61\x6C\x6C\x65\x72\x20\x4E\x75\x6D\x62\x65\x72","\x43\x61\x6C\x6C\x65\x72\x20\x4E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x43\x61\x6C\x6C\x20\x54\x6F","\x64\x65\x73\x74\x65\x78\x74\x65\x6E","\x51\x75\x65\x75\x65","\x55\x6E\x69\x71\x75\x65\x49\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x44\x61\x74\x65","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64\x41\x74","\x2A\x2A\x2A\x20\x41\x67\x65\x6E\x74\x20\x49\x6E\x66\x6F\x20\x2A\x2A\x2A","\x41\x67\x65\x6E\x74\x20\x4E\x61\x6D\x65","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x41\x67\x65\x6E\x74\x20\x4E\x75\x6D\x62\x65\x72","\x2A\x2A\x2A\x20\x54\x69\x6D\x65\x20\x49\x6E\x66\x6F\x20\x2A\x2A\x2A","\x41\x67\x65\x6E\x74\x20\x52\x69\x6E\x67","\x41\x67\x65\x6E\x74\x20\x43\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x41\x67\x65\x6E\x74\x20\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x48\x6F\x6C\x64\x20\x54\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x54\x61\x6C\x6B\x20\x54\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x43\x61\x6C\x6C\x65\x64\x20\x4E\x75\x6D\x62\x65\x72","\x4D\x65\x6D\x62\x65\x72\x20\x4E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x41\x6E\x73\x77\x65\x72\x20\x54\x69\x6D\x65","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x20\x54\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65"];_0x77d6[0];exports[_0x77d6[1]]= function(_0xd6abx1,_0xd6abx2){var _0xd6abx3=[{type:_0x77d6[2],content:_0x77d6[3],variableName:null}];switch(_0xd6abx1[_0x77d6[13]]()){case _0x77d6[14]:switch(_0xd6abx2[_0x77d6[13]]()){case _0x77d6[9]:_0xd6abx3[_0x77d6[7]]({type:_0x77d6[4],content:_0x77d6[5],variableName:_0x77d6[6]});_0xd6abx3[_0x77d6[7]]({type:_0x77d6[4],content:_0x77d6[5],variableName:_0x77d6[8]});break;case _0x77d6[12]:_0xd6abx3[_0x77d6[7]]({type:_0x77d6[2],content:_0x77d6[10],variableName:null});_0xd6abx3[_0x77d6[7]]({type:_0x77d6[4],content:_0x77d6[5],variableName:_0x77d6[11]});break}};return _0xd6abx3};exports[_0x77d6[15]]= function(_0xd6abx1,_0xd6abx2){var _0xd6abx4=[];switch(_0xd6abx1[_0x77d6[13]]()){case _0x77d6[14]:switch(_0xd6abx2[_0x77d6[13]]()){case _0x77d6[9]:_0xd6abx4= [{type:_0x77d6[2],content:_0x77d6[16],key:null,keyType:null,variableName:null},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[18],keyType:_0x77d6[4],variableName:_0x77d6[8]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[19],keyType:_0x77d6[4],variableName:_0x77d6[20]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[21],keyType:_0x77d6[4],variableName:_0x77d6[22]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[23],keyType:_0x77d6[4],variableName:_0x77d6[6]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[24],keyType:_0x77d6[4],variableName:_0x77d6[25]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[26],keyType:_0x77d6[4],variableName:_0x77d6[27]},{type:_0x77d6[2],content:_0x77d6[28],key:null,keyType:null,variableName:null},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[29],keyType:_0x77d6[4],variableName:_0x77d6[30]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[31],keyType:_0x77d6[4],variableName:_0x77d6[11]},{type:_0x77d6[2],content:_0x77d6[32],key:null,keyType:null,variableName:null},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[33],keyType:_0x77d6[4],variableName:_0x77d6[27]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[34],keyType:_0x77d6[4],variableName:_0x77d6[35]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[36],keyType:_0x77d6[4],variableName:_0x77d6[37]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[38],keyType:_0x77d6[4],variableName:_0x77d6[39]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[40],keyType:_0x77d6[4],variableName:_0x77d6[41]}];break;case _0x77d6[12]:_0xd6abx4= [{type:_0x77d6[2],content:_0x77d6[16],variableName:null},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[42],keyType:_0x77d6[4],keyContent:_0x77d6[5],variableName:_0x77d6[11]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[43],keyType:_0x77d6[4],keyContent:_0x77d6[5],variableName:_0x77d6[44]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[24],keyType:_0x77d6[4],keyContent:_0x77d6[5],variableName:_0x77d6[25]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[26],keyType:_0x77d6[4],keyContent:_0x77d6[5],variableName:_0x77d6[45]},{type:_0x77d6[2],content:_0x77d6[32]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[46],keyType:_0x77d6[4],keyContent:_0x77d6[5],variableName:_0x77d6[47]},{type:_0x77d6[17],content:_0x77d6[5],key:_0x77d6[48],keyType:_0x77d6[4],keyContent:_0x77d6[5],variableName:_0x77d6[49]}];break}};return _0xd6abx4}
\ No newline at end of file
diff --git a/server/components/license/service.js b/server/components/license/service.js
new file mode 100644 (file)
index 0000000..6d1494a
--- /dev/null
@@ -0,0 +1 @@
+var _0x7687=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x75\x74\x69\x6C","\x63\x6F\x6D\x70\x6F\x73\x61\x62\x6C\x65\x2D\x6D\x69\x64\x64\x6C\x65\x77\x61\x72\x65","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x61\x74\x61\x31","\x6C\x69\x63\x65\x6E\x73\x65","\x2D","\x73\x70\x6C\x69\x74","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x25\x73\x3A\x25\x73\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x62\x61\x73\x65\x36\x34","\x75\x74\x66\x38","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x61\x6C","\x70\x61\x72\x73\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x63\x61\x74\x63\x68","\x4D\x61\x78\x69\x6D\x75\x6D\x20\x25\x73\x20\x6C\x69\x6D\x69\x74\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x72\x65\x61\x63\x68\x65\x64","\x6A\x73\x6F\x6E","\x73\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x63\x6F\x75\x6E\x74","\x66\x69\x6E\x64\x4F\x6E\x65","\x4C\x69\x63\x65\x6E\x73\x65","\x75\x73\x65","\x75\x73\x65\x72\x73","\x61\x64\x6D\x69\x6E","\x75\x73\x65\x72","\x69\x73\x55\x73\x65\x72\x4C\x69\x6D\x69\x74"];_0x7687[0];var crypto=require(_0x7687[1]);var util=require(_0x7687[2]);var compose=require(_0x7687[3]);var db=require(_0x7687[5])[_0x7687[4]];var config=require(_0x7687[6]);function getValueFromLicense(_0x656ax7,_0x656ax8){if(_0x656ax7&& _0x656ax8){if(_0x656ax8[_0x7687[7]]&& _0x656ax8[_0x7687[8]]){var _0x656ax9=_0x656ax8[_0x7687[7]];var _0x656axa=_0x656ax8[_0x7687[8]];var _0x656axb=_0x656ax9[_0x7687[10]](_0x7687[9])[4];var _0x656axc=_0x656ax9[_0x7687[10]](_0x7687[9])[0];var _0x656axd=crypto[_0x7687[14]](_0x7687[11],util[_0x7687[13]](_0x7687[12],_0x656axb,_0x656ax9,_0x656axc));var _0x656axe=_0x656axd[_0x7687[17]](_0x656axa,_0x7687[15],_0x7687[16]);_0x656axe+= _0x656axd[_0x7687[18]](_0x7687[16]);var _0x656axf=JSON[_0x7687[19]](_0x656axe);return _0x656axf[_0x7687[20]](_0x656ax7)?_0x656axf[_0x656ax7]:null}};return null}function isLimit(_0x656axa,_0x656ax11,_0x656ax12,_0x656ax13){var _0x656ax14=_0x656ax11;return compose()[_0x7687[29]](function(_0x656ax15,_0x656ax16,_0x656ax17){return db[_0x7687[28]][_0x7687[27]]({where:{id:1},raw:true})[_0x7687[25]](function(_0x656ax8){var _0x656ax1a=getValueFromLicense(_0x656axa,_0x656ax8);return _0x656ax1a?_0x656ax1a:_0x656ax14})[_0x7687[25]](function(_0x656ax1a){_0x656ax14= _0x656ax1a;return _0x656ax12[_0x7687[26]](_0x656ax13)})[_0x7687[25]](function(_0x656ax19){if(_0x656ax19>= _0x656ax14){return _0x656ax16[_0x7687[24]](403)[_0x7687[23]]({message:util[_0x7687[13]](_0x7687[22],_0x656axa)})};_0x656ax17()})[_0x7687[21]](function(_0x656ax18){_0x656ax17(_0x656ax18)})})}function isUserLimit(){return isLimit(_0x7687[30],1,db.User,{where:{$or:[{role:_0x7687[31]},{role:_0x7687[32]}]}})}exports[_0x7687[33]]= isUserLimit
\ No newline at end of file
diff --git a/server/components/parsers/qs.js b/server/components/parsers/qs.js
new file mode 100644 (file)
index 0000000..11601f1
--- /dev/null
@@ -0,0 +1 @@
+var _0x6724=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x66\x69\x65\x6C\x64\x73","\x2C","\x73\x70\x6C\x69\x74","\x66\x69\x6C\x74\x65\x72\x73","\x69\x73\x45\x6D\x70\x74\x79","\x70\x61\x72\x73\x65","\x66\x6F\x72\x4F\x77\x6E","\x6C\x69\x6D\x69\x74","\x6F\x66\x66\x73\x65\x74","\x73\x6F\x72\x74","\x2D","\x69\x6E\x64\x65\x78\x4F\x66","\x70\x72\x69\x6F\x72\x69\x74\x79","\x63\x6F\x6C","\x75\x6E\x73\x69\x67\x6E\x65\x64","\x63\x61\x73\x74","\x73\x75\x62\x73\x74\x72","\x44\x45\x53\x43","\x41\x53\x43","\x6D\x61\x70"];_0x6724[0];var _=require(_0x6724[1]);var sequelize=require(_0x6724[2]);var LIMIT_VALUE=250;exports[_0x6724[3]]= function(_0x69e0x4){var _0x69e0x5=null;if(_0x69e0x4){_0x69e0x5= _0x69e0x4[_0x6724[5]](_0x6724[4])};return _0x69e0x5};exports[_0x6724[6]]= function(_0x69e0x4){var _0x69e0x6={};if(!_[_0x6724[7]](_0x69e0x4)){_0x69e0x6= {};_[_0x6724[9]](_0x69e0x4,function(_0x69e0x7,_0x69e0x8){try{_0x69e0x6[_0x69e0x8]= JSON[_0x6724[8]](_0x69e0x7)}catch(err){_0x69e0x6[_0x69e0x8]= _0x69e0x7[_0x6724[5]](_0x6724[4])}})};return _0x69e0x6};exports[_0x6724[10]]= function(_0x69e0x7){_0x69e0x7= parseInt(_0x69e0x7,10);if(!_0x69e0x7|| _0x69e0x7< 0){_0x69e0x7= LIMIT_VALUE};return _0x69e0x7};exports[_0x6724[11]]= function(_0x69e0x7){_0x69e0x7= parseInt(_0x69e0x7,10);if(!_0x69e0x7|| _0x69e0x7< 0){_0x69e0x7= 0};return _0x69e0x7};exports[_0x6724[12]]= function(_0x69e0x4){var _0x69e0x9,_0x69e0xa=null;if(_0x69e0x4){_0x69e0x9= _0x69e0x4[_0x6724[5]](_0x6724[4]);_0x69e0xa= _[_0x6724[22]](_0x69e0x9,function(_0x69e0xb){if(_0x69e0xb[_0x6724[14]](_0x6724[13])=== 0){return [_0x69e0xb=== _0x6724[15]?sequelize[_0x6724[18]](sequelize[_0x6724[16]](_0x6724[15]),_0x6724[17]):_0x69e0xb[_0x6724[19]](1),_0x6724[20]]}else {return [_0x69e0xb=== _0x6724[15]?sequelize[_0x6724[18]](sequelize[_0x6724[16]](_0x6724[15]),_0x6724[17]):_0x69e0xb,_0x6724[21]]}})};return _0x69e0xa}
\ No newline at end of file
diff --git a/server/config/environment/development.js b/server/config/environment/development.js
new file mode 100644 (file)
index 0000000..a41c979
--- /dev/null
@@ -0,0 +1 @@
+var _0xd0f1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6A\x73\x74\x7A","\x64\x65\x74\x65\x72\x6D\x69\x6E\x65","\x65\x78\x70\x6F\x72\x74\x73","\x6D\x6F\x74\x69\x6F\x6E\x32","\x78\x63\x61\x6C\x6C","\x78\x43\x40\x4C\x4C\x31\x32\x33\x34","\x31\x39\x32\x2E\x31\x36\x38\x2E\x32\x2E\x31\x33\x30","\x6D\x79\x73\x71\x6C","\x6E\x61\x6D\x65","\x75\x74\x66\x38","\x75\x74\x66\x38\x5F\x67\x65\x6E\x65\x72\x61\x6C\x5F\x63\x69","\x35\x30\x33\x38","\x78\x63\x61\x6C\x6C\x31\x32\x33\x34","\x52\x50\x43\x50\x4F\x52\x54","\x65\x6E\x76","\x52\x50\x43\x49\x50","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x41\x47\x49\x50\x4F\x52\x54","\x41\x47\x49\x49\x50","\x47\x4F\x4F\x47\x4C\x45\x5F\x49\x44","\x69\x64","\x47\x4F\x4F\x47\x4C\x45\x5F\x53\x45\x43\x52\x45\x54","\x73\x65\x63\x72\x65\x74","\x44\x4F\x4D\x41\x49\x4E","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x39\x30\x30\x30","\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x2F\x67\x6F\x6F\x67\x6C\x65\x2F\x63\x61\x6C\x6C\x62\x61\x63\x6B"];_0xd0f1[0];var jstz=require(_0xd0f1[1]);var timezone=jstz[_0xd0f1[2]]();module[_0xd0f1[3]]= {sequelize:{database:_0xd0f1[4],username:_0xd0f1[5],password:_0xd0f1[6],options:{host:_0xd0f1[7],port:3306,dialect:_0xd0f1[8],logging:false,timezone:timezone[_0xd0f1[9]](),define:{charset:_0xd0f1[10],collate:_0xd0f1[11]}}},sequelizeHistory:{database:_0xd0f1[4],username:_0xd0f1[5],password:_0xd0f1[6],options:{host:_0xd0f1[7],port:3306,dialect:_0xd0f1[8],logging:false,timezone:timezone[_0xd0f1[9]](),define:{charset:_0xd0f1[10],collate:_0xd0f1[11]}}},asterisk:{ip:_0xd0f1[7],port:_0xd0f1[12],username:_0xd0f1[5],password:_0xd0f1[13]},rpc:{port:process[_0xd0f1[15]][_0xd0f1[14]]|| 9001,ip:process[_0xd0f1[15]][_0xd0f1[16]]|| _0xd0f1[17]},agi:{port:process[_0xd0f1[15]][_0xd0f1[18]]|| 4573,ip:process[_0xd0f1[15]][_0xd0f1[19]]|| _0xd0f1[17]},seedDB:true,google:{clientID:process[_0xd0f1[15]][_0xd0f1[20]]|| _0xd0f1[21],clientSecret:process[_0xd0f1[15]][_0xd0f1[22]]|| _0xd0f1[23],callbackURL:(process[_0xd0f1[15]][_0xd0f1[24]]|| _0xd0f1[25])+ _0xd0f1[26]}}
\ No newline at end of file
diff --git a/server/config/environment/index.js b/server/config/environment/index.js
new file mode 100644 (file)
index 0000000..0cea2fc
--- /dev/null
@@ -0,0 +1 @@
+var _0x98fa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x6C\x6F\x64\x61\x73\x68","\x4E\x4F\x44\x45\x5F\x45\x4E\x56","\x65\x6E\x76","\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E","\x6E\x6F\x72\x6D\x61\x6C\x69\x7A\x65","\x42\x52\x4F\x57\x53\x45\x52\x5F\x53\x59\x4E\x43\x5F\x50\x4F\x52\x54","\x50\x4F\x52\x54","\x49\x50","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x73\x65\x73\x73\x69\x6F\x6E\x2D\x73\x65\x63\x72\x65\x74","\x65\x78\x70\x6F\x72\x74\x73","\x2E\x2F\x73\x68\x61\x72\x65\x64","\x2E\x2F","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x2E\x6A\x73","\x6D\x65\x72\x67\x65"];_0x98fa[0];var path=require(_0x98fa[1]);var _=require(_0x98fa[2]);var all={env:process[_0x98fa[4]][_0x98fa[3]],root:path[_0x98fa[6]](__dirname+ _0x98fa[5]),browserSyncPort:process[_0x98fa[4]][_0x98fa[7]]|| 3000,port:process[_0x98fa[4]][_0x98fa[8]]|| 9000,ip:process[_0x98fa[4]][_0x98fa[9]]|| _0x98fa[10],seedDB:false,secrets:{session:_0x98fa[11]}};module[_0x98fa[12]]= _[_0x98fa[17]](all,require(_0x98fa[13]),require(_0x98fa[14]+ (process[_0x98fa[4]][_0x98fa[3]]|| _0x98fa[15])+ _0x98fa[16])|| {})
\ No newline at end of file
diff --git a/server/config/environment/shared.js b/server/config/environment/shared.js
new file mode 100644 (file)
index 0000000..f4a9138
--- /dev/null
@@ -0,0 +1 @@
+var _0xa75f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x67\x75\x65\x73\x74","\x75\x73\x65\x72","\x61\x64\x6D\x69\x6E","\x45\x75\x72\x6F\x70\x65\x2F\x41\x6E\x64\x6F\x72\x72\x61","\x2B\x30\x31\x3A\x30\x30","\x41\x44","\x41\x73\x69\x61\x2F\x44\x75\x62\x61\x69","\x2B\x30\x34\x3A\x30\x30","\x41\x45","\x4F\x4D","\x41\x73\x69\x61\x2F\x4B\x61\x62\x75\x6C","\x2B\x30\x34\x3A\x33\x30","\x41\x46","\x45\x75\x72\x6F\x70\x65\x2F\x54\x69\x72\x61\x6E\x65","\x41\x4C","\x41\x73\x69\x61\x2F\x59\x65\x72\x65\x76\x61\x6E","\x41\x4D","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x52\x6F\x74\x68\x65\x72\x61","\x2D\x30\x33\x3A\x30\x30","\x41\x51","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x50\x61\x6C\x6D\x65\x72","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x4D\x61\x77\x73\x6F\x6E","\x2B\x30\x35\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x44\x61\x76\x69\x73","\x2B\x30\x37\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x43\x61\x73\x65\x79","\x2B\x30\x38\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x56\x6F\x73\x74\x6F\x6B","\x2B\x30\x36\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x44\x75\x6D\x6F\x6E\x74\x44\x55\x72\x76\x69\x6C\x6C\x65","\x2B\x31\x30\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x53\x79\x6F\x77\x61","\x2B\x30\x33\x3A\x30\x30","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x54\x72\x6F\x6C\x6C","\x2B\x30\x30\x3A\x30\x30","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x42\x75\x65\x6E\x6F\x73\x5F\x41\x69\x72\x65\x73","\x41\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x43\x6F\x72\x64\x6F\x62\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6C\x74\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4A\x75\x6A\x75\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x54\x75\x63\x75\x6D\x61\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x43\x61\x74\x61\x6D\x61\x72\x63\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4C\x61\x5F\x52\x69\x6F\x6A\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6E\x5F\x4A\x75\x61\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4D\x65\x6E\x64\x6F\x7A\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6E\x5F\x4C\x75\x69\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x52\x69\x6F\x5F\x47\x61\x6C\x6C\x65\x67\x6F\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x55\x73\x68\x75\x61\x69\x61","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x61\x67\x6F\x5F\x50\x61\x67\x6F","\x2D\x31\x31\x3A\x30\x30","\x41\x53","\x55\x4D","\x45\x75\x72\x6F\x70\x65\x2F\x56\x69\x65\x6E\x6E\x61","\x41\x54","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4C\x6F\x72\x64\x5F\x48\x6F\x77\x65","\x2B\x31\x31\x3A\x30\x30","\x41\x55","\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x4D\x61\x63\x71\x75\x61\x72\x69\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x48\x6F\x62\x61\x72\x74","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x43\x75\x72\x72\x69\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4D\x65\x6C\x62\x6F\x75\x72\x6E\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x53\x79\x64\x6E\x65\x79","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x42\x72\x6F\x6B\x65\x6E\x5F\x48\x69\x6C\x6C","\x2B\x31\x30\x3A\x33\x30","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x42\x72\x69\x73\x62\x61\x6E\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4C\x69\x6E\x64\x65\x6D\x61\x6E","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x41\x64\x65\x6C\x61\x69\x64\x65","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x44\x61\x72\x77\x69\x6E","\x2B\x30\x39\x3A\x33\x30","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x50\x65\x72\x74\x68","\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x45\x75\x63\x6C\x61","\x2B\x30\x38\x3A\x34\x35","\x41\x73\x69\x61\x2F\x42\x61\x6B\x75","\x41\x5A","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x72\x62\x61\x64\x6F\x73","\x2D\x30\x34\x3A\x30\x30","\x42\x42","\x41\x73\x69\x61\x2F\x44\x68\x61\x6B\x61","\x42\x44","\x45\x75\x72\x6F\x70\x65\x2F\x42\x72\x75\x73\x73\x65\x6C\x73","\x42\x45","\x45\x75\x72\x6F\x70\x65\x2F\x53\x6F\x66\x69\x61","\x2B\x30\x32\x3A\x30\x30","\x42\x47","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x42\x65\x72\x6D\x75\x64\x61","\x42\x4D","\x41\x73\x69\x61\x2F\x42\x72\x75\x6E\x65\x69","\x42\x4E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x61\x5F\x50\x61\x7A","\x42\x4F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x6F\x6E\x68\x61","\x2D\x30\x32\x3A\x30\x30","\x42\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x65\x6C\x65\x6D","\x41\x6D\x65\x72\x69\x63\x61\x2F\x46\x6F\x72\x74\x61\x6C\x65\x7A\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x63\x69\x66\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x61\x67\x75\x61\x69\x6E\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x63\x65\x69\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x68\x69\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6F\x5F\x50\x61\x75\x6C\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6D\x70\x6F\x5F\x47\x72\x61\x6E\x64\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x75\x69\x61\x62\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x61\x72\x65\x6D","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x6F\x5F\x56\x65\x6C\x68\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x61\x5F\x56\x69\x73\x74\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x6E\x61\x75\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x69\x72\x75\x6E\x65\x70\x65","\x2D\x30\x35\x3A\x30\x30","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x69\x6F\x5F\x42\x72\x61\x6E\x63\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x61\x73\x73\x61\x75","\x42\x53","\x41\x73\x69\x61\x2F\x54\x68\x69\x6D\x70\x68\x75","\x42\x54","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x69\x6E\x73\x6B","\x42\x59","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x65\x6C\x69\x7A\x65","\x2D\x30\x36\x3A\x30\x30","\x42\x5A","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x74\x5F\x4A\x6F\x68\x6E\x73","\x2D\x30\x33\x3A\x33\x30","\x43\x41","\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x61\x6C\x69\x66\x61\x78","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6C\x61\x63\x65\x5F\x42\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x63\x74\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6F\x6F\x73\x65\x5F\x42\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6C\x61\x6E\x63\x2D\x53\x61\x62\x6C\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x6F\x72\x6F\x6E\x74\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x69\x70\x69\x67\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x68\x75\x6E\x64\x65\x72\x5F\x42\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x71\x61\x6C\x75\x69\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x6E\x67\x6E\x69\x72\x74\x75\x6E\x67","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x73\x6F\x6C\x75\x74\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x74\x69\x6B\x6F\x6B\x61\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x61\x6E\x6B\x69\x6E\x5F\x49\x6E\x6C\x65\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x57\x69\x6E\x6E\x69\x70\x65\x67","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x61\x69\x6E\x79\x5F\x52\x69\x76\x65\x72","\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x67\x69\x6E\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x77\x69\x66\x74\x5F\x43\x75\x72\x72\x65\x6E\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x64\x6D\x6F\x6E\x74\x6F\x6E","\x2D\x30\x37\x3A\x30\x30","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6D\x62\x72\x69\x64\x67\x65\x5F\x42\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x59\x65\x6C\x6C\x6F\x77\x6B\x6E\x69\x66\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x75\x76\x69\x6B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x72\x65\x73\x74\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x77\x73\x6F\x6E\x5F\x43\x72\x65\x65\x6B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x46\x6F\x72\x74\x5F\x4E\x65\x6C\x73\x6F\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x56\x61\x6E\x63\x6F\x75\x76\x65\x72","\x2D\x30\x38\x3A\x30\x30","\x41\x6D\x65\x72\x69\x63\x61\x2F\x57\x68\x69\x74\x65\x68\x6F\x72\x73\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x77\x73\x6F\x6E","\x49\x6E\x64\x69\x61\x6E\x2F\x43\x6F\x63\x6F\x73","\x2B\x30\x36\x3A\x33\x30","\x43\x43","\x45\x75\x72\x6F\x70\x65\x2F\x5A\x75\x72\x69\x63\x68","\x43\x48","\x44\x45","\x4C\x49","\x41\x66\x72\x69\x63\x61\x2F\x41\x62\x69\x64\x6A\x61\x6E","\x43\x49","\x42\x46","\x47\x4D","\x47\x4E","\x4D\x4C","\x4D\x52","\x53\x48","\x53\x4C","\x53\x4E","\x53\x54","\x54\x47","\x50\x61\x63\x69\x66\x69\x63\x2F\x52\x61\x72\x6F\x74\x6F\x6E\x67\x61","\x2D\x31\x30\x3A\x30\x30","\x43\x4B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x69\x61\x67\x6F","\x43\x4C","\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x61\x73\x74\x65\x72","\x41\x73\x69\x61\x2F\x53\x68\x61\x6E\x67\x68\x61\x69","\x43\x4E","\x41\x73\x69\x61\x2F\x55\x72\x75\x6D\x71\x69","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x67\x6F\x74\x61","\x43\x4F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x6F\x73\x74\x61\x5F\x52\x69\x63\x61","\x43\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x61\x76\x61\x6E\x61","\x43\x55","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x43\x61\x70\x65\x5F\x56\x65\x72\x64\x65","\x2D\x30\x31\x3A\x30\x30","\x43\x56","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x75\x72\x61\x63\x61\x6F","\x43\x57","\x41\x57","\x42\x51","\x53\x58","\x49\x6E\x64\x69\x61\x6E\x2F\x43\x68\x72\x69\x73\x74\x6D\x61\x73","\x43\x58","\x41\x73\x69\x61\x2F\x4E\x69\x63\x6F\x73\x69\x61","\x43\x59","\x45\x75\x72\x6F\x70\x65\x2F\x50\x72\x61\x67\x75\x65","\x43\x5A","\x53\x4B","\x45\x75\x72\x6F\x70\x65\x2F\x42\x65\x72\x6C\x69\x6E","\x45\x75\x72\x6F\x70\x65\x2F\x43\x6F\x70\x65\x6E\x68\x61\x67\x65\x6E","\x44\x4B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x6F\x5F\x44\x6F\x6D\x69\x6E\x67\x6F","\x44\x4F","\x41\x66\x72\x69\x63\x61\x2F\x41\x6C\x67\x69\x65\x72\x73","\x44\x5A","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x61\x79\x61\x71\x75\x69\x6C","\x45\x43","\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x61\x6C\x61\x70\x61\x67\x6F\x73","\x45\x75\x72\x6F\x70\x65\x2F\x54\x61\x6C\x6C\x69\x6E\x6E","\x45\x45","\x41\x66\x72\x69\x63\x61\x2F\x43\x61\x69\x72\x6F","\x45\x47","\x41\x66\x72\x69\x63\x61\x2F\x45\x6C\x5F\x41\x61\x69\x75\x6E","\x45\x48","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x61\x64\x72\x69\x64","\x45\x53","\x41\x66\x72\x69\x63\x61\x2F\x43\x65\x75\x74\x61","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x43\x61\x6E\x61\x72\x79","\x45\x75\x72\x6F\x70\x65\x2F\x48\x65\x6C\x73\x69\x6E\x6B\x69","\x46\x49","\x41\x58","\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x69\x6A\x69","\x2B\x31\x32\x3A\x30\x30","\x46\x4A","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x53\x74\x61\x6E\x6C\x65\x79","\x46\x4B","\x50\x61\x63\x69\x66\x69\x63\x2F\x43\x68\x75\x75\x6B","\x46\x4D","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x6F\x68\x6E\x70\x65\x69","\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x6F\x73\x72\x61\x65","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x46\x61\x72\x6F\x65","\x46\x4F","\x45\x75\x72\x6F\x70\x65\x2F\x50\x61\x72\x69\x73","\x46\x52","\x45\x75\x72\x6F\x70\x65\x2F\x4C\x6F\x6E\x64\x6F\x6E","\x47\x42","\x47\x47","\x49\x4D","\x4A\x45","\x41\x73\x69\x61\x2F\x54\x62\x69\x6C\x69\x73\x69","\x47\x45","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x79\x65\x6E\x6E\x65","\x47\x46","\x41\x66\x72\x69\x63\x61\x2F\x41\x63\x63\x72\x61","\x47\x48","\x45\x75\x72\x6F\x70\x65\x2F\x47\x69\x62\x72\x61\x6C\x74\x61\x72","\x47\x49","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6F\x64\x74\x68\x61\x62","\x47\x4C","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x6E\x6D\x61\x72\x6B\x73\x68\x61\x76\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x63\x6F\x72\x65\x73\x62\x79\x73\x75\x6E\x64","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x68\x75\x6C\x65","\x45\x75\x72\x6F\x70\x65\x2F\x41\x74\x68\x65\x6E\x73","\x47\x52","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x53\x6F\x75\x74\x68\x5F\x47\x65\x6F\x72\x67\x69\x61","\x47\x53","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x61\x74\x65\x6D\x61\x6C\x61","\x47\x54","\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x75\x61\x6D","\x47\x55","\x4D\x50","\x41\x66\x72\x69\x63\x61\x2F\x42\x69\x73\x73\x61\x75","\x47\x57","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x79\x61\x6E\x61","\x47\x59","\x41\x73\x69\x61\x2F\x48\x6F\x6E\x67\x5F\x4B\x6F\x6E\x67","\x48\x4B","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x65\x67\x75\x63\x69\x67\x61\x6C\x70\x61","\x48\x4E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x2D\x61\x75\x2D\x50\x72\x69\x6E\x63\x65","\x48\x54","\x45\x75\x72\x6F\x70\x65\x2F\x42\x75\x64\x61\x70\x65\x73\x74","\x48\x55","\x41\x73\x69\x61\x2F\x4A\x61\x6B\x61\x72\x74\x61","\x49\x44","\x41\x73\x69\x61\x2F\x50\x6F\x6E\x74\x69\x61\x6E\x61\x6B","\x41\x73\x69\x61\x2F\x4D\x61\x6B\x61\x73\x73\x61\x72","\x41\x73\x69\x61\x2F\x4A\x61\x79\x61\x70\x75\x72\x61","\x2B\x30\x39\x3A\x30\x30","\x45\x75\x72\x6F\x70\x65\x2F\x44\x75\x62\x6C\x69\x6E","\x49\x45","\x41\x73\x69\x61\x2F\x4A\x65\x72\x75\x73\x61\x6C\x65\x6D","\x49\x4C","\x41\x73\x69\x61\x2F\x4B\x6F\x6C\x6B\x61\x74\x61","\x2B\x30\x35\x3A\x33\x30","\x49\x4E","\x49\x6E\x64\x69\x61\x6E\x2F\x43\x68\x61\x67\x6F\x73","\x49\x4F","\x41\x73\x69\x61\x2F\x42\x61\x67\x68\x64\x61\x64","\x49\x51","\x41\x73\x69\x61\x2F\x54\x65\x68\x72\x61\x6E","\x2B\x30\x33\x3A\x33\x30","\x49\x52","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x52\x65\x79\x6B\x6A\x61\x76\x69\x6B","\x49\x53","\x45\x75\x72\x6F\x70\x65\x2F\x52\x6F\x6D\x65","\x49\x54","\x53\x4D","\x56\x41","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4A\x61\x6D\x61\x69\x63\x61","\x4A\x4D","\x41\x73\x69\x61\x2F\x41\x6D\x6D\x61\x6E","\x4A\x4F","\x41\x73\x69\x61\x2F\x54\x6F\x6B\x79\x6F","\x4A\x50","\x41\x66\x72\x69\x63\x61\x2F\x4E\x61\x69\x72\x6F\x62\x69","\x4B\x45","\x44\x4A","\x45\x52","\x45\x54","\x4B\x4D","\x4D\x47","\x53\x4F","\x54\x5A","\x55\x47","\x59\x54","\x41\x73\x69\x61\x2F\x42\x69\x73\x68\x6B\x65\x6B","\x4B\x47","\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x61\x72\x61\x77\x61","\x4B\x49","\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x6E\x64\x65\x72\x62\x75\x72\x79","\x2B\x31\x33\x3A\x30\x30","\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x69\x72\x69\x74\x69\x6D\x61\x74\x69","\x2B\x31\x34\x3A\x30\x30","\x41\x73\x69\x61\x2F\x50\x79\x6F\x6E\x67\x79\x61\x6E\x67","\x2B\x30\x38\x3A\x33\x30","\x4B\x50","\x41\x73\x69\x61\x2F\x53\x65\x6F\x75\x6C","\x4B\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x79\x6D\x61\x6E","\x4B\x59","\x41\x73\x69\x61\x2F\x41\x6C\x6D\x61\x74\x79","\x4B\x5A","\x41\x73\x69\x61\x2F\x51\x79\x7A\x79\x6C\x6F\x72\x64\x61","\x41\x73\x69\x61\x2F\x41\x71\x74\x6F\x62\x65","\x41\x73\x69\x61\x2F\x41\x71\x74\x61\x75","\x41\x73\x69\x61\x2F\x4F\x72\x61\x6C","\x41\x73\x69\x61\x2F\x42\x65\x69\x72\x75\x74","\x4C\x42","\x41\x73\x69\x61\x2F\x43\x6F\x6C\x6F\x6D\x62\x6F","\x4C\x4B","\x41\x66\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x72\x6F\x76\x69\x61","\x4C\x52","\x45\x75\x72\x6F\x70\x65\x2F\x56\x69\x6C\x6E\x69\x75\x73","\x4C\x54","\x45\x75\x72\x6F\x70\x65\x2F\x4C\x75\x78\x65\x6D\x62\x6F\x75\x72\x67","\x4C\x55","\x45\x75\x72\x6F\x70\x65\x2F\x52\x69\x67\x61","\x4C\x56","\x41\x66\x72\x69\x63\x61\x2F\x54\x72\x69\x70\x6F\x6C\x69","\x4C\x59","\x41\x66\x72\x69\x63\x61\x2F\x43\x61\x73\x61\x62\x6C\x61\x6E\x63\x61","\x4D\x41","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x6F\x6E\x61\x63\x6F","\x4D\x43","\x45\x75\x72\x6F\x70\x65\x2F\x43\x68\x69\x73\x69\x6E\x61\x75","\x4D\x44","\x50\x61\x63\x69\x66\x69\x63\x2F\x4D\x61\x6A\x75\x72\x6F","\x4D\x48","\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x77\x61\x6A\x61\x6C\x65\x69\x6E","\x41\x73\x69\x61\x2F\x52\x61\x6E\x67\x6F\x6F\x6E","\x4D\x4D","\x41\x73\x69\x61\x2F\x55\x6C\x61\x61\x6E\x62\x61\x61\x74\x61\x72","\x4D\x4E","\x41\x73\x69\x61\x2F\x48\x6F\x76\x64","\x41\x73\x69\x61\x2F\x43\x68\x6F\x69\x62\x61\x6C\x73\x61\x6E","\x41\x73\x69\x61\x2F\x4D\x61\x63\x61\x75","\x4D\x4F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x72\x74\x69\x6E\x69\x71\x75\x65","\x4D\x51","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x61\x6C\x74\x61","\x4D\x54","\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x75\x72\x69\x74\x69\x75\x73","\x4D\x55","\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x6C\x64\x69\x76\x65\x73","\x4D\x56","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x78\x69\x63\x6F\x5F\x43\x69\x74\x79","\x4D\x58","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6E\x63\x75\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x72\x69\x64\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x74\x65\x72\x72\x65\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x74\x61\x6D\x6F\x72\x6F\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x7A\x61\x74\x6C\x61\x6E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x68\x69\x68\x75\x61\x68\x75\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4F\x6A\x69\x6E\x61\x67\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x65\x72\x6D\x6F\x73\x69\x6C\x6C\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x69\x6A\x75\x61\x6E\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x61\x5F\x49\x73\x61\x62\x65\x6C","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x68\x69\x61\x5F\x42\x61\x6E\x64\x65\x72\x61\x73","\x41\x73\x69\x61\x2F\x4B\x75\x61\x6C\x61\x5F\x4C\x75\x6D\x70\x75\x72","\x4D\x59","\x41\x73\x69\x61\x2F\x4B\x75\x63\x68\x69\x6E\x67","\x41\x66\x72\x69\x63\x61\x2F\x4D\x61\x70\x75\x74\x6F","\x4D\x5A","\x42\x49","\x42\x57","\x43\x44","\x4D\x57","\x52\x57","\x5A\x4D","\x5A\x57","\x41\x66\x72\x69\x63\x61\x2F\x57\x69\x6E\x64\x68\x6F\x65\x6B","\x4E\x41","\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x6F\x75\x6D\x65\x61","\x4E\x43","\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x6F\x72\x66\x6F\x6C\x6B","\x4E\x46","\x41\x66\x72\x69\x63\x61\x2F\x4C\x61\x67\x6F\x73","\x4E\x47","\x41\x4F","\x42\x4A","\x43\x46","\x43\x47","\x43\x4D","\x47\x41","\x47\x51","\x4E\x45","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x6E\x61\x67\x75\x61","\x4E\x49","\x45\x75\x72\x6F\x70\x65\x2F\x41\x6D\x73\x74\x65\x72\x64\x61\x6D","\x4E\x4C","\x45\x75\x72\x6F\x70\x65\x2F\x4F\x73\x6C\x6F","\x4E\x4F","\x53\x4A","\x41\x73\x69\x61\x2F\x4B\x61\x74\x68\x6D\x61\x6E\x64\x75","\x2B\x30\x35\x3A\x34\x35","\x4E\x50","\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x61\x75\x72\x75","\x4E\x52","\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x69\x75\x65","\x4E\x55","\x50\x61\x63\x69\x66\x69\x63\x2F\x41\x75\x63\x6B\x6C\x61\x6E\x64","\x4E\x5A","\x50\x61\x63\x69\x66\x69\x63\x2F\x43\x68\x61\x74\x68\x61\x6D","\x2B\x31\x33\x3A\x34\x35","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x6E\x61\x6D\x61","\x50\x41","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x69\x6D\x61","\x50\x45","\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x61\x68\x69\x74\x69","\x50\x46","\x50\x61\x63\x69\x66\x69\x63\x2F\x4D\x61\x72\x71\x75\x65\x73\x61\x73","\x2D\x30\x39\x3A\x33\x30","\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x61\x6D\x62\x69\x65\x72","\x2D\x30\x39\x3A\x30\x30","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x6F\x72\x74\x5F\x4D\x6F\x72\x65\x73\x62\x79","\x50\x47","\x50\x61\x63\x69\x66\x69\x63\x2F\x42\x6F\x75\x67\x61\x69\x6E\x76\x69\x6C\x6C\x65","\x41\x73\x69\x61\x2F\x4D\x61\x6E\x69\x6C\x61","\x50\x48","\x41\x73\x69\x61\x2F\x4B\x61\x72\x61\x63\x68\x69","\x50\x4B","\x45\x75\x72\x6F\x70\x65\x2F\x57\x61\x72\x73\x61\x77","\x50\x4C","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x69\x71\x75\x65\x6C\x6F\x6E","\x50\x4D","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x69\x74\x63\x61\x69\x72\x6E","\x50\x4E","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x75\x65\x72\x74\x6F\x5F\x52\x69\x63\x6F","\x50\x52","\x41\x73\x69\x61\x2F\x47\x61\x7A\x61","\x50\x53","\x41\x73\x69\x61\x2F\x48\x65\x62\x72\x6F\x6E","\x45\x75\x72\x6F\x70\x65\x2F\x4C\x69\x73\x62\x6F\x6E","\x50\x54","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x4D\x61\x64\x65\x69\x72\x61","\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x41\x7A\x6F\x72\x65\x73","\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x61\x6C\x61\x75","\x50\x57","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x73\x75\x6E\x63\x69\x6F\x6E","\x50\x59","\x41\x73\x69\x61\x2F\x51\x61\x74\x61\x72","\x51\x41","\x42\x48","\x49\x6E\x64\x69\x61\x6E\x2F\x52\x65\x75\x6E\x69\x6F\x6E","\x52\x45","\x54\x46","\x45\x75\x72\x6F\x70\x65\x2F\x42\x75\x63\x68\x61\x72\x65\x73\x74","\x52\x4F","\x45\x75\x72\x6F\x70\x65\x2F\x42\x65\x6C\x67\x72\x61\x64\x65","\x52\x53","\x42\x41","\x48\x52","\x4D\x45","\x4D\x4B","\x53\x49","\x45\x75\x72\x6F\x70\x65\x2F\x4B\x61\x6C\x69\x6E\x69\x6E\x67\x72\x61\x64","\x52\x55","\x45\x75\x72\x6F\x70\x65\x2F\x4D\x6F\x73\x63\x6F\x77","\x45\x75\x72\x6F\x70\x65\x2F\x53\x69\x6D\x66\x65\x72\x6F\x70\x6F\x6C","\x45\x75\x72\x6F\x70\x65\x2F\x56\x6F\x6C\x67\x6F\x67\x72\x61\x64","\x45\x75\x72\x6F\x70\x65\x2F\x53\x61\x6D\x61\x72\x61","\x41\x73\x69\x61\x2F\x59\x65\x6B\x61\x74\x65\x72\x69\x6E\x62\x75\x72\x67","\x41\x73\x69\x61\x2F\x4F\x6D\x73\x6B","\x41\x73\x69\x61\x2F\x4E\x6F\x76\x6F\x73\x69\x62\x69\x72\x73\x6B","\x41\x73\x69\x61\x2F\x4E\x6F\x76\x6F\x6B\x75\x7A\x6E\x65\x74\x73\x6B","\x41\x73\x69\x61\x2F\x4B\x72\x61\x73\x6E\x6F\x79\x61\x72\x73\x6B","\x41\x73\x69\x61\x2F\x49\x72\x6B\x75\x74\x73\x6B","\x41\x73\x69\x61\x2F\x43\x68\x69\x74\x61","\x41\x73\x69\x61\x2F\x59\x61\x6B\x75\x74\x73\x6B","\x41\x73\x69\x61\x2F\x4B\x68\x61\x6E\x64\x79\x67\x61","\x41\x73\x69\x61\x2F\x56\x6C\x61\x64\x69\x76\x6F\x73\x74\x6F\x6B","\x41\x73\x69\x61\x2F\x53\x61\x6B\x68\x61\x6C\x69\x6E","\x41\x73\x69\x61\x2F\x55\x73\x74\x2D\x4E\x65\x72\x61","\x41\x73\x69\x61\x2F\x4D\x61\x67\x61\x64\x61\x6E","\x41\x73\x69\x61\x2F\x53\x72\x65\x64\x6E\x65\x6B\x6F\x6C\x79\x6D\x73\x6B","\x41\x73\x69\x61\x2F\x4B\x61\x6D\x63\x68\x61\x74\x6B\x61","\x41\x73\x69\x61\x2F\x41\x6E\x61\x64\x79\x72","\x41\x73\x69\x61\x2F\x52\x69\x79\x61\x64\x68","\x53\x41","\x4B\x57","\x59\x45","\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x75\x61\x64\x61\x6C\x63\x61\x6E\x61\x6C","\x53\x42","\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x68\x65","\x53\x43","\x41\x66\x72\x69\x63\x61\x2F\x4B\x68\x61\x72\x74\x6F\x75\x6D","\x53\x44","\x53\x53","\x45\x75\x72\x6F\x70\x65\x2F\x53\x74\x6F\x63\x6B\x68\x6F\x6C\x6D","\x53\x45","\x41\x73\x69\x61\x2F\x53\x69\x6E\x67\x61\x70\x6F\x72\x65","\x53\x47","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x72\x61\x6D\x61\x72\x69\x62\x6F","\x53\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x6C\x5F\x53\x61\x6C\x76\x61\x64\x6F\x72","\x53\x56","\x41\x73\x69\x61\x2F\x44\x61\x6D\x61\x73\x63\x75\x73","\x53\x59","\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x72\x61\x6E\x64\x5F\x54\x75\x72\x6B","\x54\x43","\x41\x66\x72\x69\x63\x61\x2F\x4E\x64\x6A\x61\x6D\x65\x6E\x61","\x54\x44","\x49\x6E\x64\x69\x61\x6E\x2F\x4B\x65\x72\x67\x75\x65\x6C\x65\x6E","\x41\x73\x69\x61\x2F\x42\x61\x6E\x67\x6B\x6F\x6B","\x54\x48","\x4B\x48","\x4C\x41","\x56\x4E","\x41\x73\x69\x61\x2F\x44\x75\x73\x68\x61\x6E\x62\x65","\x54\x4A","\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x61\x6B\x61\x6F\x66\x6F","\x54\x4B","\x41\x73\x69\x61\x2F\x44\x69\x6C\x69","\x54\x4C","\x41\x73\x69\x61\x2F\x41\x73\x68\x67\x61\x62\x61\x74","\x54\x4D","\x41\x66\x72\x69\x63\x61\x2F\x54\x75\x6E\x69\x73","\x54\x4E","\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x6F\x6E\x67\x61\x74\x61\x70\x75","\x54\x4F","\x45\x75\x72\x6F\x70\x65\x2F\x49\x73\x74\x61\x6E\x62\x75\x6C","\x54\x52","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x5F\x6F\x66\x5F\x53\x70\x61\x69\x6E","\x54\x54","\x41\x47","\x41\x49","\x42\x4C","\x44\x4D","\x47\x44","\x47\x50","\x4B\x4E","\x4C\x43","\x4D\x46","\x4D\x53","\x56\x43","\x56\x47","\x56\x49","\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x75\x6E\x61\x66\x75\x74\x69","\x54\x56","\x41\x73\x69\x61\x2F\x54\x61\x69\x70\x65\x69","\x54\x57","\x45\x75\x72\x6F\x70\x65\x2F\x4B\x69\x65\x76","\x55\x41","\x45\x75\x72\x6F\x70\x65\x2F\x55\x7A\x68\x67\x6F\x72\x6F\x64","\x45\x75\x72\x6F\x70\x65\x2F\x5A\x61\x70\x6F\x72\x6F\x7A\x68\x79\x65","\x50\x61\x63\x69\x66\x69\x63\x2F\x57\x61\x6B\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x65\x77\x5F\x59\x6F\x72\x6B","\x55\x53","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x65\x74\x72\x6F\x69\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4B\x65\x6E\x74\x75\x63\x6B\x79\x2F\x4C\x6F\x75\x69\x73\x76\x69\x6C\x6C\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4B\x65\x6E\x74\x75\x63\x6B\x79\x2F\x4D\x6F\x6E\x74\x69\x63\x65\x6C\x6C\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x70\x6F\x6C\x69\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x56\x69\x6E\x63\x65\x6E\x6E\x65\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x57\x69\x6E\x61\x6D\x61\x63","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x4D\x61\x72\x65\x6E\x67\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x50\x65\x74\x65\x72\x73\x62\x75\x72\x67","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x56\x65\x76\x61\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x68\x69\x63\x61\x67\x6F","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x54\x65\x6C\x6C\x5F\x43\x69\x74\x79","\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x4B\x6E\x6F\x78","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x6E\x6F\x6D\x69\x6E\x65\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x43\x65\x6E\x74\x65\x72","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x4E\x65\x77\x5F\x53\x61\x6C\x65\x6D","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x42\x65\x75\x6C\x61\x68","\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x65\x6E\x76\x65\x72","\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x69\x73\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x68\x6F\x65\x6E\x69\x78","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x6F\x73\x5F\x41\x6E\x67\x65\x6C\x65\x73","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x74\x6C\x61\x6B\x61\x74\x6C\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x6E\x63\x68\x6F\x72\x61\x67\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4A\x75\x6E\x65\x61\x75","\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x69\x74\x6B\x61","\x41\x6D\x65\x72\x69\x63\x61\x2F\x59\x61\x6B\x75\x74\x61\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x6D\x65","\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x64\x61\x6B","\x50\x61\x63\x69\x66\x69\x63\x2F\x48\x6F\x6E\x6F\x6C\x75\x6C\x75","\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x74\x65\x76\x69\x64\x65\x6F","\x55\x59","\x41\x73\x69\x61\x2F\x53\x61\x6D\x61\x72\x6B\x61\x6E\x64","\x55\x5A","\x41\x73\x69\x61\x2F\x54\x61\x73\x68\x6B\x65\x6E\x74","\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x72\x61\x63\x61\x73","\x2D\x30\x34\x3A\x33\x30","\x56\x45","\x41\x73\x69\x61\x2F\x48\x6F\x5F\x43\x68\x69\x5F\x4D\x69\x6E\x68","\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x66\x61\x74\x65","\x56\x55","\x50\x61\x63\x69\x66\x69\x63\x2F\x57\x61\x6C\x6C\x69\x73","\x57\x46","\x50\x61\x63\x69\x66\x69\x63\x2F\x41\x70\x69\x61","\x57\x53","\x41\x66\x72\x69\x63\x61\x2F\x4A\x6F\x68\x61\x6E\x6E\x65\x73\x62\x75\x72\x67","\x5A\x41","\x4C\x53","\x53\x5A"];_0xa75f[0];exports= module[_0xa75f[1]]= {userRoles:[_0xa75f[2],_0xa75f[3],_0xa75f[4]],timezones:{"\x45\x75\x72\x6F\x70\x65\x2F\x41\x6E\x64\x6F\x72\x72\x61":{name:_0xa75f[5],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[7]]},"\x41\x73\x69\x61\x2F\x44\x75\x62\x61\x69":{name:_0xa75f[8],utcOffset:240,offsetStr:_0xa75f[9],countries:[_0xa75f[10],_0xa75f[11]]},"\x41\x73\x69\x61\x2F\x4B\x61\x62\x75\x6C":{name:_0xa75f[12],utcOffset:270,offsetStr:_0xa75f[13],countries:[_0xa75f[14]]},"\x45\x75\x72\x6F\x70\x65\x2F\x54\x69\x72\x61\x6E\x65":{name:_0xa75f[15],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[16]]},"\x41\x73\x69\x61\x2F\x59\x65\x72\x65\x76\x61\x6E":{name:_0xa75f[17],utcOffset:240,offsetStr:_0xa75f[9],countries:[_0xa75f[18]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x52\x6F\x74\x68\x65\x72\x61":{name:_0xa75f[19],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x50\x61\x6C\x6D\x65\x72":{name:_0xa75f[22],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x4D\x61\x77\x73\x6F\x6E":{name:_0xa75f[23],utcOffset:300,offsetStr:_0xa75f[24],countries:[_0xa75f[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x44\x61\x76\x69\x73":{name:_0xa75f[25],utcOffset:420,offsetStr:_0xa75f[26],countries:[_0xa75f[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x43\x61\x73\x65\x79":{name:_0xa75f[27],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x56\x6F\x73\x74\x6F\x6B":{name:_0xa75f[29],utcOffset:360,offsetStr:_0xa75f[30],countries:[_0xa75f[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x44\x75\x6D\x6F\x6E\x74\x44\x55\x72\x76\x69\x6C\x6C\x65":{name:_0xa75f[31],utcOffset:600,offsetStr:_0xa75f[32],countries:[_0xa75f[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x53\x79\x6F\x77\x61":{name:_0xa75f[33],utcOffset:180,offsetStr:_0xa75f[34],countries:[_0xa75f[21]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x54\x72\x6F\x6C\x6C":{name:_0xa75f[35],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[21]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x42\x75\x65\x6E\x6F\x73\x5F\x41\x69\x72\x65\x73":{name:_0xa75f[37],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x43\x6F\x72\x64\x6F\x62\x61":{name:_0xa75f[39],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6C\x74\x61":{name:_0xa75f[40],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4A\x75\x6A\x75\x79":{name:_0xa75f[41],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x54\x75\x63\x75\x6D\x61\x6E":{name:_0xa75f[42],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x43\x61\x74\x61\x6D\x61\x72\x63\x61":{name:_0xa75f[43],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4C\x61\x5F\x52\x69\x6F\x6A\x61":{name:_0xa75f[44],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6E\x5F\x4A\x75\x61\x6E":{name:_0xa75f[45],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x4D\x65\x6E\x64\x6F\x7A\x61":{name:_0xa75f[46],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x53\x61\x6E\x5F\x4C\x75\x69\x73":{name:_0xa75f[47],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x52\x69\x6F\x5F\x47\x61\x6C\x6C\x65\x67\x6F\x73":{name:_0xa75f[48],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[38]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x67\x65\x6E\x74\x69\x6E\x61\x2F\x55\x73\x68\x75\x61\x69\x61":{name:_0xa75f[49],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[38]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x61\x67\x6F\x5F\x50\x61\x67\x6F":{name:_0xa75f[50],utcOffset:-660,offsetStr:_0xa75f[51],countries:[_0xa75f[52],_0xa75f[53]]},"\x45\x75\x72\x6F\x70\x65\x2F\x56\x69\x65\x6E\x6E\x61":{name:_0xa75f[54],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[55]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4C\x6F\x72\x64\x5F\x48\x6F\x77\x65":{name:_0xa75f[56],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[58]]},"\x41\x6E\x74\x61\x72\x63\x74\x69\x63\x61\x2F\x4D\x61\x63\x71\x75\x61\x72\x69\x65":{name:_0xa75f[59],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x48\x6F\x62\x61\x72\x74":{name:_0xa75f[60],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x43\x75\x72\x72\x69\x65":{name:_0xa75f[61],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4D\x65\x6C\x62\x6F\x75\x72\x6E\x65":{name:_0xa75f[62],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x53\x79\x64\x6E\x65\x79":{name:_0xa75f[63],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x42\x72\x6F\x6B\x65\x6E\x5F\x48\x69\x6C\x6C":{name:_0xa75f[64],utcOffset:630,offsetStr:_0xa75f[65],countries:[_0xa75f[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x42\x72\x69\x73\x62\x61\x6E\x65":{name:_0xa75f[66],utcOffset:600,offsetStr:_0xa75f[32],countries:[_0xa75f[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x4C\x69\x6E\x64\x65\x6D\x61\x6E":{name:_0xa75f[67],utcOffset:600,offsetStr:_0xa75f[32],countries:[_0xa75f[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x41\x64\x65\x6C\x61\x69\x64\x65":{name:_0xa75f[68],utcOffset:630,offsetStr:_0xa75f[65],countries:[_0xa75f[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x44\x61\x72\x77\x69\x6E":{name:_0xa75f[69],utcOffset:570,offsetStr:_0xa75f[70],countries:[_0xa75f[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x50\x65\x72\x74\x68":{name:_0xa75f[71],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[58]]},"\x41\x75\x73\x74\x72\x61\x6C\x69\x61\x2F\x45\x75\x63\x6C\x61":{name:_0xa75f[72],utcOffset:525,offsetStr:_0xa75f[73],countries:[_0xa75f[58]]},"\x41\x73\x69\x61\x2F\x42\x61\x6B\x75":{name:_0xa75f[74],utcOffset:240,offsetStr:_0xa75f[9],countries:[_0xa75f[75]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x72\x62\x61\x64\x6F\x73":{name:_0xa75f[76],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[78]]},"\x41\x73\x69\x61\x2F\x44\x68\x61\x6B\x61":{name:_0xa75f[79],utcOffset:360,offsetStr:_0xa75f[30],countries:[_0xa75f[80]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x72\x75\x73\x73\x65\x6C\x73":{name:_0xa75f[81],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[82]]},"\x45\x75\x72\x6F\x70\x65\x2F\x53\x6F\x66\x69\x61":{name:_0xa75f[83],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[85]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x42\x65\x72\x6D\x75\x64\x61":{name:_0xa75f[86],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[87]]},"\x41\x73\x69\x61\x2F\x42\x72\x75\x6E\x65\x69":{name:_0xa75f[88],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[89]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x61\x5F\x50\x61\x7A":{name:_0xa75f[90],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[91]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x6F\x6E\x68\x61":{name:_0xa75f[92],utcOffset:-120,offsetStr:_0xa75f[93],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x65\x6C\x65\x6D":{name:_0xa75f[95],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x46\x6F\x72\x74\x61\x6C\x65\x7A\x61":{name:_0xa75f[96],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x63\x69\x66\x65":{name:_0xa75f[97],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x72\x61\x67\x75\x61\x69\x6E\x61":{name:_0xa75f[98],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x63\x65\x69\x6F":{name:_0xa75f[99],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x68\x69\x61":{name:_0xa75f[100],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6F\x5F\x50\x61\x75\x6C\x6F":{name:_0xa75f[101],utcOffset:-120,offsetStr:_0xa75f[93],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6D\x70\x6F\x5F\x47\x72\x61\x6E\x64\x65":{name:_0xa75f[102],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x75\x69\x61\x62\x61":{name:_0xa75f[103],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x61\x72\x65\x6D":{name:_0xa75f[104],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x6F\x5F\x56\x65\x6C\x68\x6F":{name:_0xa75f[105],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x61\x5F\x56\x69\x73\x74\x61":{name:_0xa75f[106],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x6E\x61\x75\x73":{name:_0xa75f[107],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x69\x72\x75\x6E\x65\x70\x65":{name:_0xa75f[108],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x69\x6F\x5F\x42\x72\x61\x6E\x63\x6F":{name:_0xa75f[110],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[94]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x61\x73\x73\x61\x75":{name:_0xa75f[111],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[112]]},"\x41\x73\x69\x61\x2F\x54\x68\x69\x6D\x70\x68\x75":{name:_0xa75f[113],utcOffset:360,offsetStr:_0xa75f[30],countries:[_0xa75f[114]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x69\x6E\x73\x6B":{name:_0xa75f[115],utcOffset:180,offsetStr:_0xa75f[34],countries:[_0xa75f[116]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x65\x6C\x69\x7A\x65":{name:_0xa75f[117],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[119]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x74\x5F\x4A\x6F\x68\x6E\x73":{name:_0xa75f[120],utcOffset:-210,offsetStr:_0xa75f[121],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x61\x6C\x69\x66\x61\x78":{name:_0xa75f[123],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6C\x61\x63\x65\x5F\x42\x61\x79":{name:_0xa75f[124],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x63\x74\x6F\x6E":{name:_0xa75f[125],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6F\x6F\x73\x65\x5F\x42\x61\x79":{name:_0xa75f[126],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6C\x61\x6E\x63\x2D\x53\x61\x62\x6C\x6F\x6E":{name:_0xa75f[127],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x6F\x72\x6F\x6E\x74\x6F":{name:_0xa75f[128],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x69\x70\x69\x67\x6F\x6E":{name:_0xa75f[129],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x68\x75\x6E\x64\x65\x72\x5F\x42\x61\x79":{name:_0xa75f[130],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x71\x61\x6C\x75\x69\x74":{name:_0xa75f[131],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x6E\x67\x6E\x69\x72\x74\x75\x6E\x67":{name:_0xa75f[132],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x73\x6F\x6C\x75\x74\x65":{name:_0xa75f[133],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x74\x69\x6B\x6F\x6B\x61\x6E":{name:_0xa75f[134],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x61\x6E\x6B\x69\x6E\x5F\x49\x6E\x6C\x65\x74":{name:_0xa75f[135],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x57\x69\x6E\x6E\x69\x70\x65\x67":{name:_0xa75f[136],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x61\x69\x6E\x79\x5F\x52\x69\x76\x65\x72":{name:_0xa75f[137],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x52\x65\x67\x69\x6E\x61":{name:_0xa75f[138],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x77\x69\x66\x74\x5F\x43\x75\x72\x72\x65\x6E\x74":{name:_0xa75f[139],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x64\x6D\x6F\x6E\x74\x6F\x6E":{name:_0xa75f[140],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6D\x62\x72\x69\x64\x67\x65\x5F\x42\x61\x79":{name:_0xa75f[142],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x59\x65\x6C\x6C\x6F\x77\x6B\x6E\x69\x66\x65":{name:_0xa75f[143],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x75\x76\x69\x6B":{name:_0xa75f[144],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x72\x65\x73\x74\x6F\x6E":{name:_0xa75f[145],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x77\x73\x6F\x6E\x5F\x43\x72\x65\x65\x6B":{name:_0xa75f[146],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x46\x6F\x72\x74\x5F\x4E\x65\x6C\x73\x6F\x6E":{name:_0xa75f[147],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x56\x61\x6E\x63\x6F\x75\x76\x65\x72":{name:_0xa75f[148],utcOffset:-480,offsetStr:_0xa75f[149],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x57\x68\x69\x74\x65\x68\x6F\x72\x73\x65":{name:_0xa75f[150],utcOffset:-480,offsetStr:_0xa75f[149],countries:[_0xa75f[122]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x77\x73\x6F\x6E":{name:_0xa75f[151],utcOffset:-480,offsetStr:_0xa75f[149],countries:[_0xa75f[122]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x43\x6F\x63\x6F\x73":{name:_0xa75f[152],utcOffset:390,offsetStr:_0xa75f[153],countries:[_0xa75f[154]]},"\x45\x75\x72\x6F\x70\x65\x2F\x5A\x75\x72\x69\x63\x68":{name:_0xa75f[155],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[156],_0xa75f[157],_0xa75f[158]]},"\x41\x66\x72\x69\x63\x61\x2F\x41\x62\x69\x64\x6A\x61\x6E":{name:_0xa75f[159],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[160],_0xa75f[161],_0xa75f[162],_0xa75f[163],_0xa75f[164],_0xa75f[165],_0xa75f[166],_0xa75f[167],_0xa75f[168],_0xa75f[169],_0xa75f[170]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x52\x61\x72\x6F\x74\x6F\x6E\x67\x61":{name:_0xa75f[171],utcOffset:-600,offsetStr:_0xa75f[172],countries:[_0xa75f[173]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x69\x61\x67\x6F":{name:_0xa75f[174],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[175]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x61\x73\x74\x65\x72":{name:_0xa75f[176],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[175]]},"\x41\x73\x69\x61\x2F\x53\x68\x61\x6E\x67\x68\x61\x69":{name:_0xa75f[177],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[178]]},"\x41\x73\x69\x61\x2F\x55\x72\x75\x6D\x71\x69":{name:_0xa75f[179],utcOffset:360,offsetStr:_0xa75f[30],countries:[_0xa75f[178]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x67\x6F\x74\x61":{name:_0xa75f[180],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[181]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x6F\x73\x74\x61\x5F\x52\x69\x63\x61":{name:_0xa75f[182],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[183]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x61\x76\x61\x6E\x61":{name:_0xa75f[184],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[185]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x43\x61\x70\x65\x5F\x56\x65\x72\x64\x65":{name:_0xa75f[186],utcOffset:-60,offsetStr:_0xa75f[187],countries:[_0xa75f[188]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x75\x72\x61\x63\x61\x6F":{name:_0xa75f[189],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[190],_0xa75f[191],_0xa75f[192],_0xa75f[193]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x43\x68\x72\x69\x73\x74\x6D\x61\x73":{name:_0xa75f[194],utcOffset:420,offsetStr:_0xa75f[26],countries:[_0xa75f[195]]},"\x41\x73\x69\x61\x2F\x4E\x69\x63\x6F\x73\x69\x61":{name:_0xa75f[196],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[197]]},"\x45\x75\x72\x6F\x70\x65\x2F\x50\x72\x61\x67\x75\x65":{name:_0xa75f[198],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[199],_0xa75f[200]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x65\x72\x6C\x69\x6E":{name:_0xa75f[201],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[157]]},"\x45\x75\x72\x6F\x70\x65\x2F\x43\x6F\x70\x65\x6E\x68\x61\x67\x65\x6E":{name:_0xa75f[202],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[203]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x6F\x5F\x44\x6F\x6D\x69\x6E\x67\x6F":{name:_0xa75f[204],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[205]]},"\x41\x66\x72\x69\x63\x61\x2F\x41\x6C\x67\x69\x65\x72\x73":{name:_0xa75f[206],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[207]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x61\x79\x61\x71\x75\x69\x6C":{name:_0xa75f[208],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[209]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x61\x6C\x61\x70\x61\x67\x6F\x73":{name:_0xa75f[210],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[209]]},"\x45\x75\x72\x6F\x70\x65\x2F\x54\x61\x6C\x6C\x69\x6E\x6E":{name:_0xa75f[211],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[212]]},"\x41\x66\x72\x69\x63\x61\x2F\x43\x61\x69\x72\x6F":{name:_0xa75f[213],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[214]]},"\x41\x66\x72\x69\x63\x61\x2F\x45\x6C\x5F\x41\x61\x69\x75\x6E":{name:_0xa75f[215],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[216]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x61\x64\x72\x69\x64":{name:_0xa75f[217],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[218]]},"\x41\x66\x72\x69\x63\x61\x2F\x43\x65\x75\x74\x61":{name:_0xa75f[219],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[218]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x43\x61\x6E\x61\x72\x79":{name:_0xa75f[220],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[218]]},"\x45\x75\x72\x6F\x70\x65\x2F\x48\x65\x6C\x73\x69\x6E\x6B\x69":{name:_0xa75f[221],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[222],_0xa75f[223]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x69\x6A\x69":{name:_0xa75f[224],utcOffset:720,offsetStr:_0xa75f[225],countries:[_0xa75f[226]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x53\x74\x61\x6E\x6C\x65\x79":{name:_0xa75f[227],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[228]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x43\x68\x75\x75\x6B":{name:_0xa75f[229],utcOffset:600,offsetStr:_0xa75f[32],countries:[_0xa75f[230]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x6F\x68\x6E\x70\x65\x69":{name:_0xa75f[231],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[230]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x6F\x73\x72\x61\x65":{name:_0xa75f[232],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[230]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x46\x61\x72\x6F\x65":{name:_0xa75f[233],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[234]]},"\x45\x75\x72\x6F\x70\x65\x2F\x50\x61\x72\x69\x73":{name:_0xa75f[235],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[236]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4C\x6F\x6E\x64\x6F\x6E":{name:_0xa75f[237],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[238],_0xa75f[239],_0xa75f[240],_0xa75f[241]]},"\x41\x73\x69\x61\x2F\x54\x62\x69\x6C\x69\x73\x69":{name:_0xa75f[242],utcOffset:240,offsetStr:_0xa75f[9],countries:[_0xa75f[243]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x79\x65\x6E\x6E\x65":{name:_0xa75f[244],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[245]]},"\x41\x66\x72\x69\x63\x61\x2F\x41\x63\x63\x72\x61":{name:_0xa75f[246],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[247]]},"\x45\x75\x72\x6F\x70\x65\x2F\x47\x69\x62\x72\x61\x6C\x74\x61\x72":{name:_0xa75f[248],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[249]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x6F\x64\x74\x68\x61\x62":{name:_0xa75f[250],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[251]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x61\x6E\x6D\x61\x72\x6B\x73\x68\x61\x76\x6E":{name:_0xa75f[252],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[251]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x63\x6F\x72\x65\x73\x62\x79\x73\x75\x6E\x64":{name:_0xa75f[253],utcOffset:-60,offsetStr:_0xa75f[187],countries:[_0xa75f[251]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x68\x75\x6C\x65":{name:_0xa75f[254],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[251]]},"\x45\x75\x72\x6F\x70\x65\x2F\x41\x74\x68\x65\x6E\x73":{name:_0xa75f[255],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[256]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x53\x6F\x75\x74\x68\x5F\x47\x65\x6F\x72\x67\x69\x61":{name:_0xa75f[257],utcOffset:-120,offsetStr:_0xa75f[93],countries:[_0xa75f[258]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x61\x74\x65\x6D\x61\x6C\x61":{name:_0xa75f[259],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[260]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x75\x61\x6D":{name:_0xa75f[261],utcOffset:600,offsetStr:_0xa75f[32],countries:[_0xa75f[262],_0xa75f[263]]},"\x41\x66\x72\x69\x63\x61\x2F\x42\x69\x73\x73\x61\x75":{name:_0xa75f[264],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[265]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x75\x79\x61\x6E\x61":{name:_0xa75f[266],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[267]]},"\x41\x73\x69\x61\x2F\x48\x6F\x6E\x67\x5F\x4B\x6F\x6E\x67":{name:_0xa75f[268],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[269]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x65\x67\x75\x63\x69\x67\x61\x6C\x70\x61":{name:_0xa75f[270],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[271]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x2D\x61\x75\x2D\x50\x72\x69\x6E\x63\x65":{name:_0xa75f[272],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[273]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x75\x64\x61\x70\x65\x73\x74":{name:_0xa75f[274],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[275]]},"\x41\x73\x69\x61\x2F\x4A\x61\x6B\x61\x72\x74\x61":{name:_0xa75f[276],utcOffset:420,offsetStr:_0xa75f[26],countries:[_0xa75f[277]]},"\x41\x73\x69\x61\x2F\x50\x6F\x6E\x74\x69\x61\x6E\x61\x6B":{name:_0xa75f[278],utcOffset:420,offsetStr:_0xa75f[26],countries:[_0xa75f[277]]},"\x41\x73\x69\x61\x2F\x4D\x61\x6B\x61\x73\x73\x61\x72":{name:_0xa75f[279],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[277]]},"\x41\x73\x69\x61\x2F\x4A\x61\x79\x61\x70\x75\x72\x61":{name:_0xa75f[280],utcOffset:540,offsetStr:_0xa75f[281],countries:[_0xa75f[277]]},"\x45\x75\x72\x6F\x70\x65\x2F\x44\x75\x62\x6C\x69\x6E":{name:_0xa75f[282],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[283]]},"\x41\x73\x69\x61\x2F\x4A\x65\x72\x75\x73\x61\x6C\x65\x6D":{name:_0xa75f[284],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[285]]},"\x41\x73\x69\x61\x2F\x4B\x6F\x6C\x6B\x61\x74\x61":{name:_0xa75f[286],utcOffset:330,offsetStr:_0xa75f[287],countries:[_0xa75f[288]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x43\x68\x61\x67\x6F\x73":{name:_0xa75f[289],utcOffset:360,offsetStr:_0xa75f[30],countries:[_0xa75f[290]]},"\x41\x73\x69\x61\x2F\x42\x61\x67\x68\x64\x61\x64":{name:_0xa75f[291],utcOffset:180,offsetStr:_0xa75f[34],countries:[_0xa75f[292]]},"\x41\x73\x69\x61\x2F\x54\x65\x68\x72\x61\x6E":{name:_0xa75f[293],utcOffset:210,offsetStr:_0xa75f[294],countries:[_0xa75f[295]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x52\x65\x79\x6B\x6A\x61\x76\x69\x6B":{name:_0xa75f[296],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[297]]},"\x45\x75\x72\x6F\x70\x65\x2F\x52\x6F\x6D\x65":{name:_0xa75f[298],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[299],_0xa75f[300],_0xa75f[301]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4A\x61\x6D\x61\x69\x63\x61":{name:_0xa75f[302],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[303]]},"\x41\x73\x69\x61\x2F\x41\x6D\x6D\x61\x6E":{name:_0xa75f[304],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[305]]},"\x41\x73\x69\x61\x2F\x54\x6F\x6B\x79\x6F":{name:_0xa75f[306],utcOffset:540,offsetStr:_0xa75f[281],countries:[_0xa75f[307]]},"\x41\x66\x72\x69\x63\x61\x2F\x4E\x61\x69\x72\x6F\x62\x69":{name:_0xa75f[308],utcOffset:180,offsetStr:_0xa75f[34],countries:[_0xa75f[309],_0xa75f[310],_0xa75f[311],_0xa75f[312],_0xa75f[313],_0xa75f[314],_0xa75f[315],_0xa75f[316],_0xa75f[317],_0xa75f[318]]},"\x41\x73\x69\x61\x2F\x42\x69\x73\x68\x6B\x65\x6B":{name:_0xa75f[319],utcOffset:360,offsetStr:_0xa75f[30],countries:[_0xa75f[320]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x61\x72\x61\x77\x61":{name:_0xa75f[321],utcOffset:720,offsetStr:_0xa75f[225],countries:[_0xa75f[322]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x6E\x64\x65\x72\x62\x75\x72\x79":{name:_0xa75f[323],utcOffset:780,offsetStr:_0xa75f[324],countries:[_0xa75f[322]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x69\x72\x69\x74\x69\x6D\x61\x74\x69":{name:_0xa75f[325],utcOffset:840,offsetStr:_0xa75f[326],countries:[_0xa75f[322]]},"\x41\x73\x69\x61\x2F\x50\x79\x6F\x6E\x67\x79\x61\x6E\x67":{name:_0xa75f[327],utcOffset:510,offsetStr:_0xa75f[328],countries:[_0xa75f[329]]},"\x41\x73\x69\x61\x2F\x53\x65\x6F\x75\x6C":{name:_0xa75f[330],utcOffset:540,offsetStr:_0xa75f[281],countries:[_0xa75f[331]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x79\x6D\x61\x6E":{name:_0xa75f[332],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[333]]},"\x41\x73\x69\x61\x2F\x41\x6C\x6D\x61\x74\x79":{name:_0xa75f[334],utcOffset:360,offsetStr:_0xa75f[30],countries:[_0xa75f[335]]},"\x41\x73\x69\x61\x2F\x51\x79\x7A\x79\x6C\x6F\x72\x64\x61":{name:_0xa75f[336],utcOffset:360,offsetStr:_0xa75f[30],countries:[_0xa75f[335]]},"\x41\x73\x69\x61\x2F\x41\x71\x74\x6F\x62\x65":{name:_0xa75f[337],utcOffset:300,offsetStr:_0xa75f[24],countries:[_0xa75f[335]]},"\x41\x73\x69\x61\x2F\x41\x71\x74\x61\x75":{name:_0xa75f[338],utcOffset:300,offsetStr:_0xa75f[24],countries:[_0xa75f[335]]},"\x41\x73\x69\x61\x2F\x4F\x72\x61\x6C":{name:_0xa75f[339],utcOffset:300,offsetStr:_0xa75f[24],countries:[_0xa75f[335]]},"\x41\x73\x69\x61\x2F\x42\x65\x69\x72\x75\x74":{name:_0xa75f[340],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[341]]},"\x41\x73\x69\x61\x2F\x43\x6F\x6C\x6F\x6D\x62\x6F":{name:_0xa75f[342],utcOffset:330,offsetStr:_0xa75f[287],countries:[_0xa75f[343]]},"\x41\x66\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x72\x6F\x76\x69\x61":{name:_0xa75f[344],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[345]]},"\x45\x75\x72\x6F\x70\x65\x2F\x56\x69\x6C\x6E\x69\x75\x73":{name:_0xa75f[346],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[347]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4C\x75\x78\x65\x6D\x62\x6F\x75\x72\x67":{name:_0xa75f[348],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[349]]},"\x45\x75\x72\x6F\x70\x65\x2F\x52\x69\x67\x61":{name:_0xa75f[350],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[351]]},"\x41\x66\x72\x69\x63\x61\x2F\x54\x72\x69\x70\x6F\x6C\x69":{name:_0xa75f[352],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[353]]},"\x41\x66\x72\x69\x63\x61\x2F\x43\x61\x73\x61\x62\x6C\x61\x6E\x63\x61":{name:_0xa75f[354],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[355]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x6F\x6E\x61\x63\x6F":{name:_0xa75f[356],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[357]]},"\x45\x75\x72\x6F\x70\x65\x2F\x43\x68\x69\x73\x69\x6E\x61\x75":{name:_0xa75f[358],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[359]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4D\x61\x6A\x75\x72\x6F":{name:_0xa75f[360],utcOffset:720,offsetStr:_0xa75f[225],countries:[_0xa75f[361]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4B\x77\x61\x6A\x61\x6C\x65\x69\x6E":{name:_0xa75f[362],utcOffset:720,offsetStr:_0xa75f[225],countries:[_0xa75f[361]]},"\x41\x73\x69\x61\x2F\x52\x61\x6E\x67\x6F\x6F\x6E":{name:_0xa75f[363],utcOffset:390,offsetStr:_0xa75f[153],countries:[_0xa75f[364]]},"\x41\x73\x69\x61\x2F\x55\x6C\x61\x61\x6E\x62\x61\x61\x74\x61\x72":{name:_0xa75f[365],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[366]]},"\x41\x73\x69\x61\x2F\x48\x6F\x76\x64":{name:_0xa75f[367],utcOffset:420,offsetStr:_0xa75f[26],countries:[_0xa75f[366]]},"\x41\x73\x69\x61\x2F\x43\x68\x6F\x69\x62\x61\x6C\x73\x61\x6E":{name:_0xa75f[368],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[366]]},"\x41\x73\x69\x61\x2F\x4D\x61\x63\x61\x75":{name:_0xa75f[369],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[370]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x72\x74\x69\x6E\x69\x71\x75\x65":{name:_0xa75f[371],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[372]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x61\x6C\x74\x61":{name:_0xa75f[373],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[374]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x75\x72\x69\x74\x69\x75\x73":{name:_0xa75f[375],utcOffset:240,offsetStr:_0xa75f[9],countries:[_0xa75f[376]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x6C\x64\x69\x76\x65\x73":{name:_0xa75f[377],utcOffset:300,offsetStr:_0xa75f[24],countries:[_0xa75f[378]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x78\x69\x63\x6F\x5F\x43\x69\x74\x79":{name:_0xa75f[379],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x6E\x63\x75\x6E":{name:_0xa75f[381],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x72\x69\x64\x61":{name:_0xa75f[382],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x74\x65\x72\x72\x65\x79":{name:_0xa75f[383],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x74\x61\x6D\x6F\x72\x6F\x73":{name:_0xa75f[384],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x7A\x61\x74\x6C\x61\x6E":{name:_0xa75f[385],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x68\x69\x68\x75\x61\x68\x75\x61":{name:_0xa75f[386],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4F\x6A\x69\x6E\x61\x67\x61":{name:_0xa75f[387],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x48\x65\x72\x6D\x6F\x73\x69\x6C\x6C\x6F":{name:_0xa75f[388],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x54\x69\x6A\x75\x61\x6E\x61":{name:_0xa75f[389],utcOffset:-480,offsetStr:_0xa75f[149],countries:[_0xa75f[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x61\x6E\x74\x61\x5F\x49\x73\x61\x62\x65\x6C":{name:_0xa75f[390],utcOffset:-480,offsetStr:_0xa75f[149],countries:[_0xa75f[380]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x61\x68\x69\x61\x5F\x42\x61\x6E\x64\x65\x72\x61\x73":{name:_0xa75f[391],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[380]]},"\x41\x73\x69\x61\x2F\x4B\x75\x61\x6C\x61\x5F\x4C\x75\x6D\x70\x75\x72":{name:_0xa75f[392],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[393]]},"\x41\x73\x69\x61\x2F\x4B\x75\x63\x68\x69\x6E\x67":{name:_0xa75f[394],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[393]]},"\x41\x66\x72\x69\x63\x61\x2F\x4D\x61\x70\x75\x74\x6F":{name:_0xa75f[395],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[396],_0xa75f[397],_0xa75f[398],_0xa75f[399],_0xa75f[400],_0xa75f[401],_0xa75f[402],_0xa75f[403]]},"\x41\x66\x72\x69\x63\x61\x2F\x57\x69\x6E\x64\x68\x6F\x65\x6B":{name:_0xa75f[404],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[405]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x6F\x75\x6D\x65\x61":{name:_0xa75f[406],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[407]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x6F\x72\x66\x6F\x6C\x6B":{name:_0xa75f[408],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[409]]},"\x41\x66\x72\x69\x63\x61\x2F\x4C\x61\x67\x6F\x73":{name:_0xa75f[410],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[411],_0xa75f[412],_0xa75f[413],_0xa75f[399],_0xa75f[414],_0xa75f[415],_0xa75f[416],_0xa75f[417],_0xa75f[418],_0xa75f[419]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x61\x6E\x61\x67\x75\x61":{name:_0xa75f[420],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[421]]},"\x45\x75\x72\x6F\x70\x65\x2F\x41\x6D\x73\x74\x65\x72\x64\x61\x6D":{name:_0xa75f[422],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[423]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4F\x73\x6C\x6F":{name:_0xa75f[424],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[425],_0xa75f[426]]},"\x41\x73\x69\x61\x2F\x4B\x61\x74\x68\x6D\x61\x6E\x64\x75":{name:_0xa75f[427],utcOffset:345,offsetStr:_0xa75f[428],countries:[_0xa75f[429]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x61\x75\x72\x75":{name:_0xa75f[430],utcOffset:720,offsetStr:_0xa75f[225],countries:[_0xa75f[431]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4E\x69\x75\x65":{name:_0xa75f[432],utcOffset:-660,offsetStr:_0xa75f[51],countries:[_0xa75f[433]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x41\x75\x63\x6B\x6C\x61\x6E\x64":{name:_0xa75f[434],utcOffset:780,offsetStr:_0xa75f[324],countries:[_0xa75f[435],_0xa75f[21]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x43\x68\x61\x74\x68\x61\x6D":{name:_0xa75f[436],utcOffset:825,offsetStr:_0xa75f[437],countries:[_0xa75f[435]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x6E\x61\x6D\x61":{name:_0xa75f[438],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[439]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x69\x6D\x61":{name:_0xa75f[440],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[441]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x61\x68\x69\x74\x69":{name:_0xa75f[442],utcOffset:-600,offsetStr:_0xa75f[172],countries:[_0xa75f[443]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x4D\x61\x72\x71\x75\x65\x73\x61\x73":{name:_0xa75f[444],utcOffset:-570,offsetStr:_0xa75f[445],countries:[_0xa75f[443]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x61\x6D\x62\x69\x65\x72":{name:_0xa75f[446],utcOffset:-540,offsetStr:_0xa75f[447],countries:[_0xa75f[443]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x6F\x72\x74\x5F\x4D\x6F\x72\x65\x73\x62\x79":{name:_0xa75f[448],utcOffset:600,offsetStr:_0xa75f[32],countries:[_0xa75f[449]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x42\x6F\x75\x67\x61\x69\x6E\x76\x69\x6C\x6C\x65":{name:_0xa75f[450],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[449]]},"\x41\x73\x69\x61\x2F\x4D\x61\x6E\x69\x6C\x61":{name:_0xa75f[451],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[452]]},"\x41\x73\x69\x61\x2F\x4B\x61\x72\x61\x63\x68\x69":{name:_0xa75f[453],utcOffset:300,offsetStr:_0xa75f[24],countries:[_0xa75f[454]]},"\x45\x75\x72\x6F\x70\x65\x2F\x57\x61\x72\x73\x61\x77":{name:_0xa75f[455],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[456]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x69\x71\x75\x65\x6C\x6F\x6E":{name:_0xa75f[457],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[458]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x69\x74\x63\x61\x69\x72\x6E":{name:_0xa75f[459],utcOffset:-480,offsetStr:_0xa75f[149],countries:[_0xa75f[460]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x75\x65\x72\x74\x6F\x5F\x52\x69\x63\x6F":{name:_0xa75f[461],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[462]]},"\x41\x73\x69\x61\x2F\x47\x61\x7A\x61":{name:_0xa75f[463],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[464]]},"\x41\x73\x69\x61\x2F\x48\x65\x62\x72\x6F\x6E":{name:_0xa75f[465],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[464]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4C\x69\x73\x62\x6F\x6E":{name:_0xa75f[466],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[467]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x4D\x61\x64\x65\x69\x72\x61":{name:_0xa75f[468],utcOffset:0,offsetStr:_0xa75f[36],countries:[_0xa75f[467]]},"\x41\x74\x6C\x61\x6E\x74\x69\x63\x2F\x41\x7A\x6F\x72\x65\x73":{name:_0xa75f[469],utcOffset:-60,offsetStr:_0xa75f[187],countries:[_0xa75f[467]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x50\x61\x6C\x61\x75":{name:_0xa75f[470],utcOffset:540,offsetStr:_0xa75f[281],countries:[_0xa75f[471]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x73\x75\x6E\x63\x69\x6F\x6E":{name:_0xa75f[472],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[473]]},"\x41\x73\x69\x61\x2F\x51\x61\x74\x61\x72":{name:_0xa75f[474],utcOffset:180,offsetStr:_0xa75f[34],countries:[_0xa75f[475],_0xa75f[476]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x52\x65\x75\x6E\x69\x6F\x6E":{name:_0xa75f[477],utcOffset:240,offsetStr:_0xa75f[9],countries:[_0xa75f[478],_0xa75f[479]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x75\x63\x68\x61\x72\x65\x73\x74":{name:_0xa75f[480],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[481]]},"\x45\x75\x72\x6F\x70\x65\x2F\x42\x65\x6C\x67\x72\x61\x64\x65":{name:_0xa75f[482],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[483],_0xa75f[484],_0xa75f[485],_0xa75f[486],_0xa75f[487],_0xa75f[488]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4B\x61\x6C\x69\x6E\x69\x6E\x67\x72\x61\x64":{name:_0xa75f[489],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[490]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4D\x6F\x73\x63\x6F\x77":{name:_0xa75f[491],utcOffset:180,offsetStr:_0xa75f[34],countries:[_0xa75f[490]]},"\x45\x75\x72\x6F\x70\x65\x2F\x53\x69\x6D\x66\x65\x72\x6F\x70\x6F\x6C":{name:_0xa75f[492],utcOffset:180,offsetStr:_0xa75f[34],countries:[_0xa75f[490]]},"\x45\x75\x72\x6F\x70\x65\x2F\x56\x6F\x6C\x67\x6F\x67\x72\x61\x64":{name:_0xa75f[493],utcOffset:180,offsetStr:_0xa75f[34],countries:[_0xa75f[490]]},"\x45\x75\x72\x6F\x70\x65\x2F\x53\x61\x6D\x61\x72\x61":{name:_0xa75f[494],utcOffset:240,offsetStr:_0xa75f[9],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x59\x65\x6B\x61\x74\x65\x72\x69\x6E\x62\x75\x72\x67":{name:_0xa75f[495],utcOffset:300,offsetStr:_0xa75f[24],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x4F\x6D\x73\x6B":{name:_0xa75f[496],utcOffset:360,offsetStr:_0xa75f[30],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x4E\x6F\x76\x6F\x73\x69\x62\x69\x72\x73\x6B":{name:_0xa75f[497],utcOffset:360,offsetStr:_0xa75f[30],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x4E\x6F\x76\x6F\x6B\x75\x7A\x6E\x65\x74\x73\x6B":{name:_0xa75f[498],utcOffset:420,offsetStr:_0xa75f[26],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x4B\x72\x61\x73\x6E\x6F\x79\x61\x72\x73\x6B":{name:_0xa75f[499],utcOffset:420,offsetStr:_0xa75f[26],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x49\x72\x6B\x75\x74\x73\x6B":{name:_0xa75f[500],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x43\x68\x69\x74\x61":{name:_0xa75f[501],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x59\x61\x6B\x75\x74\x73\x6B":{name:_0xa75f[502],utcOffset:540,offsetStr:_0xa75f[281],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x4B\x68\x61\x6E\x64\x79\x67\x61":{name:_0xa75f[503],utcOffset:540,offsetStr:_0xa75f[281],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x56\x6C\x61\x64\x69\x76\x6F\x73\x74\x6F\x6B":{name:_0xa75f[504],utcOffset:600,offsetStr:_0xa75f[32],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x53\x61\x6B\x68\x61\x6C\x69\x6E":{name:_0xa75f[505],utcOffset:600,offsetStr:_0xa75f[32],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x55\x73\x74\x2D\x4E\x65\x72\x61":{name:_0xa75f[506],utcOffset:600,offsetStr:_0xa75f[32],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x4D\x61\x67\x61\x64\x61\x6E":{name:_0xa75f[507],utcOffset:600,offsetStr:_0xa75f[32],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x53\x72\x65\x64\x6E\x65\x6B\x6F\x6C\x79\x6D\x73\x6B":{name:_0xa75f[508],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x4B\x61\x6D\x63\x68\x61\x74\x6B\x61":{name:_0xa75f[509],utcOffset:720,offsetStr:_0xa75f[225],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x41\x6E\x61\x64\x79\x72":{name:_0xa75f[510],utcOffset:720,offsetStr:_0xa75f[225],countries:[_0xa75f[490]]},"\x41\x73\x69\x61\x2F\x52\x69\x79\x61\x64\x68":{name:_0xa75f[511],utcOffset:180,offsetStr:_0xa75f[34],countries:[_0xa75f[512],_0xa75f[513],_0xa75f[514]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x47\x75\x61\x64\x61\x6C\x63\x61\x6E\x61\x6C":{name:_0xa75f[515],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[516]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x4D\x61\x68\x65":{name:_0xa75f[517],utcOffset:240,offsetStr:_0xa75f[9],countries:[_0xa75f[518]]},"\x41\x66\x72\x69\x63\x61\x2F\x4B\x68\x61\x72\x74\x6F\x75\x6D":{name:_0xa75f[519],utcOffset:180,offsetStr:_0xa75f[34],countries:[_0xa75f[520],_0xa75f[521]]},"\x45\x75\x72\x6F\x70\x65\x2F\x53\x74\x6F\x63\x6B\x68\x6F\x6C\x6D":{name:_0xa75f[522],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[523]]},"\x41\x73\x69\x61\x2F\x53\x69\x6E\x67\x61\x70\x6F\x72\x65":{name:_0xa75f[524],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[525]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x61\x72\x61\x6D\x61\x72\x69\x62\x6F":{name:_0xa75f[526],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[527]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x45\x6C\x5F\x53\x61\x6C\x76\x61\x64\x6F\x72":{name:_0xa75f[528],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[529]]},"\x41\x73\x69\x61\x2F\x44\x61\x6D\x61\x73\x63\x75\x73":{name:_0xa75f[530],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[531]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x47\x72\x61\x6E\x64\x5F\x54\x75\x72\x6B":{name:_0xa75f[532],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[533]]},"\x41\x66\x72\x69\x63\x61\x2F\x4E\x64\x6A\x61\x6D\x65\x6E\x61":{name:_0xa75f[534],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[535]]},"\x49\x6E\x64\x69\x61\x6E\x2F\x4B\x65\x72\x67\x75\x65\x6C\x65\x6E":{name:_0xa75f[536],utcOffset:300,offsetStr:_0xa75f[24],countries:[_0xa75f[479]]},"\x41\x73\x69\x61\x2F\x42\x61\x6E\x67\x6B\x6F\x6B":{name:_0xa75f[537],utcOffset:420,offsetStr:_0xa75f[26],countries:[_0xa75f[538],_0xa75f[539],_0xa75f[540],_0xa75f[541]]},"\x41\x73\x69\x61\x2F\x44\x75\x73\x68\x61\x6E\x62\x65":{name:_0xa75f[542],utcOffset:300,offsetStr:_0xa75f[24],countries:[_0xa75f[543]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x61\x6B\x61\x6F\x66\x6F":{name:_0xa75f[544],utcOffset:780,offsetStr:_0xa75f[324],countries:[_0xa75f[545]]},"\x41\x73\x69\x61\x2F\x44\x69\x6C\x69":{name:_0xa75f[546],utcOffset:540,offsetStr:_0xa75f[281],countries:[_0xa75f[547]]},"\x41\x73\x69\x61\x2F\x41\x73\x68\x67\x61\x62\x61\x74":{name:_0xa75f[548],utcOffset:300,offsetStr:_0xa75f[24],countries:[_0xa75f[549]]},"\x41\x66\x72\x69\x63\x61\x2F\x54\x75\x6E\x69\x73":{name:_0xa75f[550],utcOffset:60,offsetStr:_0xa75f[6],countries:[_0xa75f[551]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x54\x6F\x6E\x67\x61\x74\x61\x70\x75":{name:_0xa75f[552],utcOffset:780,offsetStr:_0xa75f[324],countries:[_0xa75f[553]]},"\x45\x75\x72\x6F\x70\x65\x2F\x49\x73\x74\x61\x6E\x62\x75\x6C":{name:_0xa75f[554],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[555]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x6F\x72\x74\x5F\x6F\x66\x5F\x53\x70\x61\x69\x6E":{name:_0xa75f[556],utcOffset:-240,offsetStr:_0xa75f[77],countries:[_0xa75f[557],_0xa75f[558],_0xa75f[559],_0xa75f[560],_0xa75f[561],_0xa75f[562],_0xa75f[563],_0xa75f[564],_0xa75f[565],_0xa75f[566],_0xa75f[567],_0xa75f[568],_0xa75f[569],_0xa75f[570]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x46\x75\x6E\x61\x66\x75\x74\x69":{name:_0xa75f[571],utcOffset:720,offsetStr:_0xa75f[225],countries:[_0xa75f[572]]},"\x41\x73\x69\x61\x2F\x54\x61\x69\x70\x65\x69":{name:_0xa75f[573],utcOffset:480,offsetStr:_0xa75f[28],countries:[_0xa75f[574]]},"\x45\x75\x72\x6F\x70\x65\x2F\x4B\x69\x65\x76":{name:_0xa75f[575],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[576]]},"\x45\x75\x72\x6F\x70\x65\x2F\x55\x7A\x68\x67\x6F\x72\x6F\x64":{name:_0xa75f[577],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[576]]},"\x45\x75\x72\x6F\x70\x65\x2F\x5A\x61\x70\x6F\x72\x6F\x7A\x68\x79\x65":{name:_0xa75f[578],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[576]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x57\x61\x6B\x65":{name:_0xa75f[579],utcOffset:720,offsetStr:_0xa75f[225],countries:[_0xa75f[53]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x65\x77\x5F\x59\x6F\x72\x6B":{name:_0xa75f[580],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x65\x74\x72\x6F\x69\x74":{name:_0xa75f[582],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4B\x65\x6E\x74\x75\x63\x6B\x79\x2F\x4C\x6F\x75\x69\x73\x76\x69\x6C\x6C\x65":{name:_0xa75f[583],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4B\x65\x6E\x74\x75\x63\x6B\x79\x2F\x4D\x6F\x6E\x74\x69\x63\x65\x6C\x6C\x6F":{name:_0xa75f[584],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x70\x6F\x6C\x69\x73":{name:_0xa75f[585],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x56\x69\x6E\x63\x65\x6E\x6E\x65\x73":{name:_0xa75f[586],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x57\x69\x6E\x61\x6D\x61\x63":{name:_0xa75f[587],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x4D\x61\x72\x65\x6E\x67\x6F":{name:_0xa75f[588],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x50\x65\x74\x65\x72\x73\x62\x75\x72\x67":{name:_0xa75f[589],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x56\x65\x76\x61\x79":{name:_0xa75f[590],utcOffset:-300,offsetStr:_0xa75f[109],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x68\x69\x63\x61\x67\x6F":{name:_0xa75f[591],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x54\x65\x6C\x6C\x5F\x43\x69\x74\x79":{name:_0xa75f[592],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x49\x6E\x64\x69\x61\x6E\x61\x2F\x4B\x6E\x6F\x78":{name:_0xa75f[593],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x6E\x6F\x6D\x69\x6E\x65\x65":{name:_0xa75f[594],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x43\x65\x6E\x74\x65\x72":{name:_0xa75f[595],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x4E\x65\x77\x5F\x53\x61\x6C\x65\x6D":{name:_0xa75f[596],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x72\x74\x68\x5F\x44\x61\x6B\x6F\x74\x61\x2F\x42\x65\x75\x6C\x61\x68":{name:_0xa75f[597],utcOffset:-360,offsetStr:_0xa75f[118],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x44\x65\x6E\x76\x65\x72":{name:_0xa75f[598],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x42\x6F\x69\x73\x65":{name:_0xa75f[599],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x50\x68\x6F\x65\x6E\x69\x78":{name:_0xa75f[600],utcOffset:-420,offsetStr:_0xa75f[141],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4C\x6F\x73\x5F\x41\x6E\x67\x65\x6C\x65\x73":{name:_0xa75f[601],utcOffset:-480,offsetStr:_0xa75f[149],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x65\x74\x6C\x61\x6B\x61\x74\x6C\x61":{name:_0xa75f[602],utcOffset:-480,offsetStr:_0xa75f[149],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x6E\x63\x68\x6F\x72\x61\x67\x65":{name:_0xa75f[603],utcOffset:-540,offsetStr:_0xa75f[447],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4A\x75\x6E\x65\x61\x75":{name:_0xa75f[604],utcOffset:-540,offsetStr:_0xa75f[447],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x53\x69\x74\x6B\x61":{name:_0xa75f[605],utcOffset:-540,offsetStr:_0xa75f[447],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x59\x61\x6B\x75\x74\x61\x74":{name:_0xa75f[606],utcOffset:-540,offsetStr:_0xa75f[447],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4E\x6F\x6D\x65":{name:_0xa75f[607],utcOffset:-540,offsetStr:_0xa75f[447],countries:[_0xa75f[581]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x41\x64\x61\x6B":{name:_0xa75f[608],utcOffset:-600,offsetStr:_0xa75f[172],countries:[_0xa75f[581]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x48\x6F\x6E\x6F\x6C\x75\x6C\x75":{name:_0xa75f[609],utcOffset:-600,offsetStr:_0xa75f[172],countries:[_0xa75f[581],_0xa75f[53]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x4D\x6F\x6E\x74\x65\x76\x69\x64\x65\x6F":{name:_0xa75f[610],utcOffset:-180,offsetStr:_0xa75f[20],countries:[_0xa75f[611]]},"\x41\x73\x69\x61\x2F\x53\x61\x6D\x61\x72\x6B\x61\x6E\x64":{name:_0xa75f[612],utcOffset:300,offsetStr:_0xa75f[24],countries:[_0xa75f[613]]},"\x41\x73\x69\x61\x2F\x54\x61\x73\x68\x6B\x65\x6E\x74":{name:_0xa75f[614],utcOffset:300,offsetStr:_0xa75f[24],countries:[_0xa75f[613]]},"\x41\x6D\x65\x72\x69\x63\x61\x2F\x43\x61\x72\x61\x63\x61\x73":{name:_0xa75f[615],utcOffset:-270,offsetStr:_0xa75f[616],countries:[_0xa75f[617]]},"\x41\x73\x69\x61\x2F\x48\x6F\x5F\x43\x68\x69\x5F\x4D\x69\x6E\x68":{name:_0xa75f[618],utcOffset:420,offsetStr:_0xa75f[26],countries:[_0xa75f[541]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x45\x66\x61\x74\x65":{name:_0xa75f[619],utcOffset:660,offsetStr:_0xa75f[57],countries:[_0xa75f[620]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x57\x61\x6C\x6C\x69\x73":{name:_0xa75f[621],utcOffset:720,offsetStr:_0xa75f[225],countries:[_0xa75f[622]]},"\x50\x61\x63\x69\x66\x69\x63\x2F\x41\x70\x69\x61":{name:_0xa75f[623],utcOffset:840,offsetStr:_0xa75f[326],countries:[_0xa75f[624]]},"\x41\x66\x72\x69\x63\x61\x2F\x4A\x6F\x68\x61\x6E\x6E\x65\x73\x62\x75\x72\x67":{name:_0xa75f[625],utcOffset:120,offsetStr:_0xa75f[84],countries:[_0xa75f[626],_0xa75f[627],_0xa75f[628]]}}}
\ No newline at end of file
diff --git a/server/config/express.js b/server/config/express.js
new file mode 100644 (file)
index 0000000..64a9342
--- /dev/null
@@ -0,0 +1 @@
+var _0x8a7c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x72\x65\x73\x73","\x73\x65\x72\x76\x65\x2D\x66\x61\x76\x69\x63\x6F\x6E","\x6D\x6F\x72\x67\x61\x6E","\x73\x68\x72\x69\x6E\x6B\x2D\x72\x61\x79","\x62\x6F\x64\x79\x2D\x70\x61\x72\x73\x65\x72","\x6D\x65\x74\x68\x6F\x64\x2D\x6F\x76\x65\x72\x72\x69\x64\x65","\x63\x6F\x6F\x6B\x69\x65\x2D\x70\x61\x72\x73\x65\x72","\x65\x72\x72\x6F\x72\x68\x61\x6E\x64\x6C\x65\x72","\x70\x61\x74\x68","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x70\x61\x73\x73\x70\x6F\x72\x74","\x65\x78\x70\x72\x65\x73\x73\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x65\x78\x70\x72\x65\x73\x73\x2D\x73\x65\x71\x75\x65\x6C\x69\x7A\x65\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x6D\x6F\x6D\x65\x6E\x74","\x64\x65\x66\x61\x75\x6C\x74","\x65\x6E\x76","\x67\x65\x74","\x72\x65\x6D\x6F\x74\x65\x2D\x61\x64\x64\x72\x65\x73\x73","\x78\x2D\x66\x6F\x72\x77\x61\x72\x64\x65\x64\x2D\x66\x6F\x72","\x68\x65\x61\x64\x65\x72\x73","\x72\x65\x6D\x6F\x74\x65\x41\x64\x64\x72\x65\x73\x73","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x69\x70","\x74\x6F\x6B\x65\x6E","\x64\x61\x74\x65\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x72\x6F\x6F\x74","\x70\x75\x62\x6C\x69\x63","\x66\x61\x76\x69\x63\x6F\x6E\x2E\x69\x63\x6F","\x6A\x6F\x69\x6E","\x75\x73\x65","\x61\x70\x70\x50\x61\x74\x68","\x73\x65\x74","\x64\x65\x76\x65\x6C\x6F\x70\x6D\x65\x6E\x74","\x74\x65\x73\x74","\x63\x6C\x69\x65\x6E\x74","\x6A\x73\x6F\x6E\x20\x72\x65\x70\x6C\x61\x63\x65\x72","\x2E","\x73\x70\x6C\x69\x74","\x74\x6F\x49\x53\x4F\x53\x74\x72\x69\x6E\x67","\x5A","\x73\x74\x61\x74\x69\x63","\x5B\x3A\x64\x61\x74\x65\x74\x69\x6D\x65\x5D\x20\x3A\x6D\x65\x74\x68\x6F\x64\x20\x3A\x72\x65\x6D\x6F\x74\x65\x2D\x61\x64\x64\x72\x65\x73\x73\x20\x3A\x72\x65\x6D\x6F\x74\x65\x2D\x75\x73\x65\x72\x20\x3A\x75\x72\x6C\x20\x3A\x73\x74\x61\x74\x75\x73\x20\x3A\x72\x65\x73\x70\x6F\x6E\x73\x65\x2D\x74\x69\x6D\x65\x20\x6D\x73\x20\x2D\x20\x3A\x72\x65\x73\x5B\x63\x6F\x6E\x74\x65\x6E\x74\x2D\x6C\x65\x6E\x67\x74\x68\x5D","\x76\x69\x65\x77\x73","\x2F\x73\x65\x72\x76\x65\x72\x2F\x76\x69\x65\x77\x73","\x68\x74\x6D\x6C","\x72\x65\x6E\x64\x65\x72\x46\x69\x6C\x65","\x65\x6A\x73","\x65\x6E\x67\x69\x6E\x65","\x76\x69\x65\x77\x20\x65\x6E\x67\x69\x6E\x65","\x35\x30\x6D\x62","\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64","\x6A\x73\x6F\x6E","\x69\x6E\x69\x74\x69\x61\x6C\x69\x7A\x65","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x73\x65\x73\x73\x69\x6F\x6E\x73","\x73\x79\x6E\x63","\x53\x65\x73\x73\x69\x6F\x6E","\x73\x65\x73\x73\x69\x6F\x6E","\x73\x65\x63\x72\x65\x74\x73"];_0x8a7c[0];var express=require(_0x8a7c[1]);var favicon=require(_0x8a7c[2]);var morgan=require(_0x8a7c[3]);var shrinkRay=require(_0x8a7c[4]);var bodyParser=require(_0x8a7c[5]);var methodOverride=require(_0x8a7c[6]);var cookieParser=require(_0x8a7c[7]);var errorHandler=require(_0x8a7c[8]);var path=require(_0x8a7c[9]);var config=require(_0x8a7c[10]);var passport=require(_0x8a7c[11]);var session=require(_0x8a7c[12]);var db=require(_0x8a7c[14])[_0x8a7c[13]];var expressSequelizeSession=require(_0x8a7c[15]);var moment=require(_0x8a7c[16]);var Store=expressSequelizeSession(session.Store);exports[_0x8a7c[17]]= function(_0xce72x11){var _0xce72x12=_0xce72x11[_0x8a7c[19]](_0x8a7c[18]);morgan[_0x8a7c[26]](_0x8a7c[20],function(_0xce72x13,_0xce72x14){return _0xce72x13[_0x8a7c[22]][_0x8a7c[21]]?_0xce72x13[_0x8a7c[22]][_0x8a7c[21]]:_0xce72x13[_0x8a7c[24]][_0x8a7c[23]]|| _0xce72x13[_0x8a7c[25]]});morgan[_0x8a7c[26]](_0x8a7c[27],function(_0xce72x13,_0xce72x14){return moment()[_0x8a7c[29]](_0x8a7c[28])});if(_0xce72x12=== _0x8a7c[30]){_0xce72x11[_0x8a7c[35]](favicon(path[_0x8a7c[34]](config[_0x8a7c[31]],_0x8a7c[32],_0x8a7c[33])));_0xce72x11[_0x8a7c[37]](_0x8a7c[36],path[_0x8a7c[34]](config[_0x8a7c[31]],_0x8a7c[32]))};if(_0xce72x12=== _0x8a7c[38]|| _0xce72x12=== _0x8a7c[39]){_0xce72x11[_0x8a7c[35]](favicon(path[_0x8a7c[34]](config[_0x8a7c[31]],_0x8a7c[40],_0x8a7c[33])));_0xce72x11[_0x8a7c[37]](_0x8a7c[36],path[_0x8a7c[34]](config[_0x8a7c[31]],_0x8a7c[40]));_0xce72x11[_0x8a7c[35]](errorHandler())};_0xce72x11[_0x8a7c[37]](_0x8a7c[41],function(_0xce72x15,_0xce72x16){if(this[_0xce72x15] instanceof  Date){_0xce72x16= this[_0xce72x15][_0x8a7c[44]]()[_0x8a7c[43]](_0x8a7c[42])[0]+ _0x8a7c[45]};return _0xce72x16});_0xce72x11[_0x8a7c[35]](express[_0x8a7c[46]](_0xce72x11[_0x8a7c[19]](_0x8a7c[36])));_0xce72x11[_0x8a7c[35]](morgan(_0x8a7c[47]));_0xce72x11[_0x8a7c[37]](_0x8a7c[48],config[_0x8a7c[31]]+ _0x8a7c[49]);_0xce72x11[_0x8a7c[53]](_0x8a7c[50],require(_0x8a7c[52])[_0x8a7c[51]]);_0xce72x11[_0x8a7c[37]](_0x8a7c[54],_0x8a7c[50]);_0xce72x11[_0x8a7c[35]](shrinkRay());_0xce72x11[_0x8a7c[35]](bodyParser[_0x8a7c[56]]({limit:_0x8a7c[55],extended:true}));_0xce72x11[_0x8a7c[35]](bodyParser[_0x8a7c[57]]({limit:_0x8a7c[55]}));_0xce72x11[_0x8a7c[35]](methodOverride());_0xce72x11[_0x8a7c[35]](cookieParser());_0xce72x11[_0x8a7c[35]](passport[_0x8a7c[58]]());var _0xce72x17= new Store(db[_0x8a7c[59]],_0x8a7c[60]);_0xce72x17[_0x8a7c[62]][_0x8a7c[61]]();_0xce72x11[_0x8a7c[35]](session({secret:config[_0x8a7c[64]][_0x8a7c[63]],saveUninitialized:true,resave:false,store:_0xce72x17}))}
\ No newline at end of file
diff --git a/server/config/license/hardware.js b/server/config/license/hardware.js
new file mode 100644 (file)
index 0000000..03c4737
--- /dev/null
@@ -0,0 +1 @@
+var _0x9ced=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6F\x73","\x63\x72\x79\x70\x74\x6F","\x62\x69\x6D\x65\x64\x69\x61\x2D\x6D\x61\x63\x68\x69\x6E\x65\x2D\x75\x75\x69\x64","\x65\x78\x65\x63\x53\x79\x6E\x63","\x63\x68\x69\x6C\x64\x5F\x70\x72\x6F\x63\x65\x73\x73","\x6E\x65\x74\x77\x6F\x72\x6B\x49\x6E\x74\x65\x72\x66\x61\x63\x65\x73","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x66\x61\x6D\x69\x6C\x79","\x49\x50\x76\x34","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x66\x69\x6C\x74\x65\x72","\x63\x6F\x6E\x63\x61\x74","\x6C\x65\x6E\x67\x74\x68","\x6D\x61\x63","\x30\x30\x3A\x30\x30\x3A\x30\x30\x3A\x30\x30\x3A\x30\x30\x3A\x30\x30","\x61\x64\x64\x72\x65\x73\x73","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x67\x65\x74\x55\x75\x69\x64","\x0D\x0A","","\x72\x65\x70\x6C\x61\x63\x65","\x64\x6D\x69\x64\x65\x63\x6F\x64\x65\x20\x2D\x2D\x73\x74\x72\x69\x6E\x67\x20\x73\x79\x73\x74\x65\x6D\x2D\x75\x75\x69\x64","\x75\x74\x66\x38","\x77\x69\x6E\x33\x32","\x75\x75\x69\x64","\x7C","\x68\x65\x78","\x64\x69\x67\x65\x73\x74","\x75\x70\x64\x61\x74\x65","\x6D\x64\x35","\x63\x72\x65\x61\x74\x65\x48\x61\x73\x68","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x2D","\x70\x6C\x61\x74\x66\x6F\x72\x6D"];_0x9ced[0];var os=require(_0x9ced[1]);var crypto=require(_0x9ced[2]);var machine=require(_0x9ced[3]);var exec=require(_0x9ced[5])[_0x9ced[4]];function getInterfaces(){var _0x36d2x6=[];var _0x36d2x7=os[_0x9ced[6]]();for(var _0x36d2x8 in _0x36d2x7){if(_0x36d2x7[_0x9ced[7]](_0x36d2x8)){var _0x36d2x9=_0x36d2x7[_0x36d2x8][_0x9ced[11]](function(_0x36d2xa){return _0x36d2xa[_0x9ced[8]]=== _0x9ced[9]&& _0x36d2xa[_0x9ced[10]]=== false});_0x36d2x6= _0x36d2x6[_0x9ced[12]](_0x36d2x9)}};return _0x36d2x6}function macAddress(){var _0x36d2x6=getInterfaces();return (_0x36d2x6[_0x9ced[13]]> 0)?_0x36d2x6[0][_0x9ced[14]]:_0x9ced[15]}function ipAddress(){var _0x36d2x6=getInterfaces();return (_0x36d2x6[_0x9ced[13]]> 0)?_0x36d2x6[0][_0x9ced[16]]:_0x9ced[17]}exports[_0x9ced[18]]= function(){switch(os[_0x9ced[34]]()){case _0x9ced[24]:return exec(_0x9ced[22],{encoding:_0x9ced[23]})[_0x9ced[21]](_0x9ced[19],_0x9ced[20]);default:var _0x36d2xd=machine[_0x9ced[25]]+ _0x9ced[26]+ macAddress()+ _0x9ced[26]+ ipAddress();var _0x36d2xe=crypto[_0x9ced[31]](_0x9ced[30])[_0x9ced[29]](_0x36d2xd)[_0x9ced[28]](_0x9ced[27]);return _0x36d2xe[_0x9ced[32]](0,8)+ _0x9ced[33]+ _0x36d2xe[_0x9ced[32]](8,12)+ _0x9ced[33]+ _0x36d2xe[_0x9ced[32]](12,16)+ _0x9ced[33]+ _0x36d2xe[_0x9ced[32]](16,20)+ _0x9ced[33]+ _0x36d2xe[_0x9ced[32]](20)}}
\ No newline at end of file
diff --git a/server/config/license/index.js b/server/config/license/index.js
new file mode 100644 (file)
index 0000000..f8a12b4
--- /dev/null
@@ -0,0 +1 @@
+var _0x6041=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x68\x74\x74\x70\x73","\x63\x72\x79\x70\x74\x6F","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x68\x61\x72\x64\x77\x61\x72\x65","\x6C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x77\x77\x77\x2E\x78\x63\x61\x6C\x6C\x79\x6D\x6F\x74\x69\x6F\x6E\x2E\x63\x6F\x6D","\x2F\x61\x70\x69\x2F\x73\x65\x72\x76\x65\x72\x73\x2F\x25\x73\x2F\x63\x68\x65\x63\x6B","\x66\x6F\x72\x6D\x61\x74","\x47\x45\x54","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x75\x74\x66\x38","\x73\x65\x74\x45\x6E\x63\x6F\x64\x69\x6E\x67","","\x64\x61\x74\x61","\x6F\x6E","\x65\x6E\x64","\x70\x61\x72\x73\x65","\x72\x65\x71\x75\x65\x73\x74","\x65\x72\x72\x6F\x72","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x73\x65\x73\x73\x69\x6F\x6E","\x73\x65\x63\x72\x65\x74\x73","\x63\x72\x65\x61\x74\x65\x43\x69\x70\x68\x65\x72","\x62\x61\x73\x65\x36\x34","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x61\x6C","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x67\x65\x74","\x66\x69\x6E\x61\x6C\x6C\x79","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x61\x63\x74\x69\x76\x65","\x64\x61\x74\x61\x32","\x64\x61\x79\x73","\x64\x69\x66\x66","\x64\x65\x6D\x6F","\x69\x6E\x66\x6F","\x73\x74\x61\x72\x74\x20\x67\x72\x61\x79\x20\x70\x65\x72\x69\x6F\x64","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D","\x67\x65\x74\x55\x75\x69\x64","\x73\x74\x61\x72\x74\x20\x63\x68\x65\x63\x6B\x20\x6C\x69\x63\x65\x6E\x73\x65","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x4C\x69\x63\x65\x6E\x73\x65","\x64\x65\x66\x61\x75\x6C\x74"];_0x6041[0];var util=require(_0x6041[1]);var https=require(_0x6041[2]);var crypto=require(_0x6041[3]);var moment=require(_0x6041[4]);var BPromise=require(_0x6041[5]);var db=require(_0x6041[7])[_0x6041[6]];var config=require(_0x6041[8]);var hardware=require(_0x6041[9]);var logger=require(_0x6041[11])(_0x6041[10]);var HOST=_0x6041[12];var TIME=60* 1000;var DAYS=7;function httpRequest(_0x23a4xe){return  new BPromise(function(_0x23a4xf,_0x23a4x10){var _0x23a4x11={host:HOST,port:443,path:util[_0x6041[14]](_0x6041[13],_0x23a4xe),method:_0x6041[15],headers:{"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x6041[16]}};var _0x23a4x12=https[_0x6041[24]](_0x23a4x11,function(_0x23a4x13){_0x23a4x13[_0x6041[18]](_0x6041[17]);var _0x23a4x14=_0x6041[19];_0x23a4x13[_0x6041[21]](_0x6041[20],function(_0x23a4x15){_0x23a4x14+= _0x23a4x15});_0x23a4x13[_0x6041[21]](_0x6041[22],function(){try{_0x23a4xf(JSON[_0x6041[23]](_0x23a4x14))}catch(e){_0x23a4x10(e)}})});_0x23a4x12[_0x6041[21]](_0x6041[25],_0x23a4x10);_0x23a4x12[_0x6041[22]]()})}function encryptDate(_0x23a4x17){var _0x23a4x18=crypto[_0x6041[29]](_0x6041[26],config[_0x6041[28]][_0x6041[27]]);var _0x23a4x19=_0x23a4x18[_0x6041[31]](_0x23a4x17,_0x6041[17],_0x6041[30]);_0x23a4x19+= _0x23a4x18[_0x6041[32]](_0x6041[30]);return _0x23a4x19}function decryptDate(_0x23a4x17){var _0x23a4x1b=crypto[_0x6041[33]](_0x6041[26],config[_0x6041[28]][_0x6041[27]]);var _0x23a4x19=_0x23a4x1b[_0x6041[31]](_0x23a4x17,_0x6041[30],_0x6041[17]);_0x23a4x19+= _0x23a4x1b[_0x6041[32]](_0x6041[17]);return _0x23a4x19}function manageLicense(_0x23a4xe,_0x23a4x1d){var _0x23a4x1e=_0x23a4x1d[_0x6041[34]]({plain:true});httpRequest(_0x23a4xe)[_0x6041[38]](function(_0x23a4x21){if(_0x23a4x21[_0x6041[39]]){return _0x23a4x1d[_0x6041[31]]({data1:_0x23a4xe,data2:null,license:_0x23a4x21[_0x6041[10]]})}else {if(_0x23a4x1e[_0x6041[40]]){if(moment()[_0x6041[42]](decryptDate(_0x23a4x1e[_0x6041[40]]),_0x6041[41])> DAYS){logger[_0x6041[44]](_0x6041[43]);return _0x23a4x1d[_0x6041[31]]({data1:_0x23a4xe,data2:null,license:null})}}else {if(_0x23a4x1e[_0x6041[10]]){logger[_0x6041[44]](_0x6041[45]);return _0x23a4x1d[_0x6041[31]]({data2:encryptDate(moment()[_0x6041[14]](_0x6041[46]))})}}};return _0x23a4x1d})[_0x6041[38]](function(_0x23a4x20){_0x23a4x1d= _0x23a4x20})[_0x6041[37]](function(_0x23a4x1f){logger[_0x6041[25]](JSON[_0x6041[36]](_0x23a4x1f))})[_0x6041[35]](function(){setTimeout(function(){manageLicense(_0x23a4xe,_0x23a4x1d)},TIME)})}function defaultLicense(){var _0x23a4xe=hardware[_0x6041[47]]();if(_0x23a4xe){return db[_0x6041[51]][_0x6041[50]]({where:{id:1},defaults:{data1:_0x23a4xe}})[_0x6041[49]](function(_0x23a4x1d,_0x23a4x23){logger[_0x6041[44]](_0x6041[48]);manageLicense(_0x23a4xe,_0x23a4x1d)})[_0x6041[37]](function(_0x23a4x1f){logger[_0x6041[25]](JSON[_0x6041[36]](_0x23a4x1f))})}}exports[_0x6041[52]]= defaultLicense
\ No newline at end of file
diff --git a/server/config/license/util.js b/server/config/license/util.js
new file mode 100644 (file)
index 0000000..9e10ce9
--- /dev/null
@@ -0,0 +1 @@
+var _0xfc58=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x63\x72\x79\x70\x74\x6F","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x68\x61\x72\x64\x77\x61\x72\x65","\x2E\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x65\x78\x70\x6F\x72\x74\x73","\x6C\x69\x63\x65\x6E\x73\x65","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x2D","\x73\x70\x6C\x69\x74","\x61\x65\x73\x2D\x32\x35\x36\x2D\x63\x74\x72","\x25\x73\x3A\x25\x73\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65\x44\x65\x63\x69\x70\x68\x65\x72","\x62\x61\x73\x65\x36\x34","\x75\x74\x66\x38","\x75\x70\x64\x61\x74\x65","\x66\x69\x6E\x61\x6C","\x70\x61\x72\x73\x65","\x75\x75\x69\x64","\x73\x65\x73\x73\x69\x6F\x6E","\x73\x65\x63\x72\x65\x74\x73","\x67\x72\x61\x79","\x64\x65\x6D\x6F","\x6D\x61\x63\x68\x69\x6E\x65\x55\x75\x69\x64","\x67\x65\x74\x55\x75\x69\x64","\x32\x30\x32\x37\x2D\x30\x31\x2D\x30\x31\x54\x30\x30\x3A\x30\x30\x3A\x30\x30\x2E\x30\x30\x30\x5A","\x42\x72\x65\x61\x6B\x69\x6E\x67\x20\x6C\x69\x63\x65\x6E\x73\x65","\x6D\x65\x73\x73\x61\x67\x65","\x44\x65\x6D\x6F\x20\x6C\x69\x63\x65\x6E\x73\x65","\x74\x68\x65\x6E","\x64\x65\x66\x61\x75\x6C\x74\x73","\x66\x69\x6E\x64","\x4C\x69\x63\x65\x6E\x73\x65"];_0xfc58[0];var crypto=require(_0xfc58[1]);var util=require(_0xfc58[2]);var _=require(_0xfc58[3]);var hardware=require(_0xfc58[4]);var config=require(_0xfc58[5]);var db=require(_0xfc58[7])[_0xfc58[6]];module[_0xfc58[8]]= {getLicense:function(_0xcbc5x7){return db[_0xfc58[37]][_0xfc58[36]](_[_0xfc58[35]](_0xcbc5x7,{raw:true,where:{id:1}}))[_0xfc58[34]](function(_0xcbc5x8){if(_0xcbc5x8[_0xfc58[9]]&& _0xcbc5x8[_0xfc58[10]]){try{var _0xcbc5x9=_0xcbc5x8[_0xfc58[9]];var _0xcbc5xa=_0xcbc5x8[_0xfc58[10]];var _0xcbc5xb=_0xcbc5x8[_0xfc58[11]];var _0xcbc5xc=_0xcbc5xa[_0xfc58[13]](_0xfc58[12])[4];var _0xcbc5xd=_0xcbc5xa[_0xfc58[13]](_0xfc58[12])[0];var _0xcbc5xe=crypto[_0xfc58[17]](_0xfc58[14],util[_0xfc58[16]](_0xfc58[15],_0xcbc5xc,_0xcbc5xa,_0xcbc5xd));var _0xcbc5xf=_0xcbc5xe[_0xfc58[20]](_0xcbc5x9,_0xfc58[18],_0xfc58[19]);_0xcbc5xf+= _0xcbc5xe[_0xfc58[21]](_0xfc58[19]);var _0xcbc5x10=JSON[_0xfc58[22]](_0xcbc5xf);_0xcbc5x10[_0xfc58[23]]= _0xcbc5xa;if(_0xcbc5xb){var _0xcbc5x11=crypto[_0xfc58[17]](_0xfc58[14],config[_0xfc58[25]][_0xfc58[24]]);var _0xcbc5x12=_0xcbc5x11[_0xfc58[20]](_0xcbc5xb,_0xfc58[18],_0xfc58[19]);_0xcbc5x12+= _0xcbc5x11[_0xfc58[21]](_0xfc58[19]);_0xcbc5x10[_0xfc58[26]]= _0xcbc5x12};_0xcbc5x10[_0xfc58[27]]= false;_0xcbc5x10[_0xfc58[28]]= hardware[_0xfc58[29]]();return _0xcbc5x10}catch(err){return {breaking:true,demo:true,agents:2,telephones:0,users:1,expiration:_0xfc58[30],chat:false,mail:false,fax:false,messaging:false,cm:false,dialer:false,jscripty:false,openchannel:false,custom:false,update:false,description:_0xfc58[31],uuid:_0xcbc5x8[_0xfc58[10]],machineUuid:hardware[_0xfc58[29]](),message:err[_0xfc58[32]]}}};return {demo:true,agents:2,telephones:0,users:1,expiration:_0xfc58[30],chat:false,mail:false,fax:false,messaging:false,cm:false,dialer:false,jscripty:false,openchannel:false,custom:false,update:false,description:_0xfc58[33],uuid:_0xcbc5x8[_0xfc58[10]],machineUuid:hardware[_0xfc58[29]]()}})}}
\ No newline at end of file
diff --git a/server/config/local.env.js b/server/config/local.env.js
new file mode 100644 (file)
index 0000000..a26d3c5
--- /dev/null
@@ -0,0 +1 @@
+var _0x77d6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x68\x74\x74\x70\x3A\x2F\x2F\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74\x3A\x39\x30\x30\x30","\x6D\x79\x61\x70\x70\x61\x6E\x75\x67\x6C\x61\x72\x2D\x73\x65\x63\x72\x65\x74","\x61\x70\x70\x2D\x69\x64","\x73\x65\x63\x72\x65\x74",""];_0x77d6[0];module[_0x77d6[1]]= {DOMAIN:_0x77d6[2],SESSION_SECRET:_0x77d6[3],GOOGLE_ID:_0x77d6[4],GOOGLE_SECRET:_0x77d6[5],DEBUG:_0x77d6[6]}
\ No newline at end of file
diff --git a/server/config/logger.js b/server/config/logger.js
new file mode 100644 (file)
index 0000000..5d85742
--- /dev/null
@@ -0,0 +1 @@
+var _0x7bd5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x77\x69\x6E\x73\x74\x6F\x6E","\x75\x74\x69\x6C","\x70\x61\x74\x68","\x49\x4E\x46\x4F","\x2F\x76\x61\x72","\x6C\x6F\x67","\x78\x63\x61\x6C\x6C\x79","\x25\x73\x2D\x25\x73\x2E\x6C\x6F\x67","\x66\x6F\x72\x6D\x61\x74","\x6A\x6F\x69\x6E","\x5B\x25\x73\x5D\x20\x5B\x25\x73\x5D\x20\x25\x73\x20\x2D\x20\x25\x73","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x6C\x65\x76\x65\x6C","\x6D\x65\x73\x73\x61\x67\x65","\x65\x78\x70\x6F\x72\x74\x73","\x25\x73\x2D\x25\x73","\x65\x72\x72\x6F\x72","\x46\x69\x6C\x65","\x74\x72\x61\x6E\x73\x70\x6F\x72\x74\x73","\x69\x6E\x66\x6F","\x64\x65\x62\x75\x67\x4C\x65\x76\x65\x6C","\x65\x6E\x76","\x43\x6F\x6E\x73\x6F\x6C\x65","\x4C\x6F\x67\x67\x65\x72"];_0x7bd5[0];var moment=require(_0x7bd5[1]);var winston=require(_0x7bd5[2]);var util=require(_0x7bd5[3]);var path=require(_0x7bd5[4]);var debugLevel=_0x7bd5[5];function filename(_0x20d2x7,_0x20d2x8){return path[_0x7bd5[11]](_0x7bd5[6],_0x7bd5[7],_0x7bd5[8],util[_0x7bd5[10]](_0x7bd5[9],_0x20d2x7,_0x20d2x8))}function formatter(_0x20d2x7,_0x20d2xa){return util[_0x7bd5[10]](_0x7bd5[12],moment()[_0x7bd5[10]](_0x7bd5[13]),_0x20d2xa[_0x7bd5[15]][_0x7bd5[14]](),_0x20d2x7,_0x20d2xa[_0x7bd5[16]])}module[_0x7bd5[17]]= function(_0x20d2x7){return  new (winston[_0x7bd5[26]])({transports:[ new (winston[_0x7bd5[21]][_0x7bd5[20]])({name:util[_0x7bd5[10]](_0x7bd5[18],_0x20d2x7,_0x7bd5[19]),filename:filename(_0x20d2x7,_0x7bd5[19]),level:_0x7bd5[19],json:false,formatter:function(_0x20d2xa){return formatter(_0x20d2x7,_0x20d2xa)}}), new (winston[_0x7bd5[21]][_0x7bd5[20]])({name:util[_0x7bd5[10]](_0x7bd5[18],_0x20d2x7,_0x7bd5[22]),filename:filename(_0x20d2x7,_0x7bd5[22]),level:_0x7bd5[22],json:false,formatter:function(_0x20d2xa){return formatter(_0x20d2x7,_0x20d2xa)}}), new (winston[_0x7bd5[21]][_0x7bd5[25]])({level:process[_0x7bd5[24]][_0x7bd5[23]]|| debugLevel,json:false,formatter:function(_0x20d2xa){return formatter(_0x20d2x7,_0x20d2xa)}})]})}
\ No newline at end of file
diff --git a/server/config/pm2/config.js b/server/config/pm2/config.js
new file mode 100644 (file)
index 0000000..b74e882
--- /dev/null
@@ -0,0 +1 @@
+var _0x7310=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x6F\x73","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x73\x2F\x65\x78\x70\x72\x65\x73\x73\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x6A\x6F\x69\x6E","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x73\x2F\x61\x6D\x69\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x73\x2F\x61\x67\x69\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x73\x65\x72\x76\x69\x63\x65\x73\x2F\x65\x6D\x61\x69\x6C\x2F\x69\x6E\x64\x65\x78\x2E\x6A\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x7310[0];var path=require(_0x7310[1]);var os=require(_0x7310[2]);var config={apps:[{name:_0x7310[3],script:path[_0x7310[5]](__dirname,_0x7310[4])},{name:_0x7310[6],script:path[_0x7310[5]](__dirname,_0x7310[7])},{name:_0x7310[8],script:path[_0x7310[5]](__dirname,_0x7310[9])},{name:_0x7310[10],script:path[_0x7310[5]](__dirname,_0x7310[11])}]};module[_0x7310[12]]= config
\ No newline at end of file
diff --git a/server/config/pm2/index.js b/server/config/pm2/index.js
new file mode 100644 (file)
index 0000000..550dca5
--- /dev/null
@@ -0,0 +1 @@
+var _0xc2e9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x6D\x32","\x62\x6C\x75\x65\x62\x69\x72\x64","\x2E\x2F\x63\x6F\x6E\x66\x69\x67","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x74\x61\x72\x74","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x74\x68\x65\x6E","\x73\x74\x6F\x70","\x72\x65\x73\x74\x61\x72\x74","\x6C\x69\x73\x74","\x64\x65\x73\x63\x72\x69\x62\x65"];_0xc2e9[0];var pm2=require(_0xc2e9[1]);var BPromise=require(_0xc2e9[2]);var config=require(_0xc2e9[3]);function connect(){return  new BPromise(function(_0x48a4x5,_0x48a4x6){return pm2[_0xc2e9[5]](function(_0x48a4x7){if(_0x48a4x7){return _0x48a4x6(_0x48a4x7)};return _0x48a4x5(_0xc2e9[4])})})}exports[_0xc2e9[6]]= function(_0x48a4x8){return connect()[_0xc2e9[8]](function(){return  new BPromise(function(_0x48a4x5,_0x48a4x6){return pm2[_0xc2e9[6]](config,function(_0x48a4x7,_0x48a4x9){if(_0x48a4x7){return _0x48a4x6(_0x48a4x7)};pm2[_0xc2e9[7]]();return _0x48a4x5(_0x48a4x9)})})})};exports[_0xc2e9[9]]= function(_0x48a4xa){return connect()[_0xc2e9[8]](function(){return  new BPromise(function(_0x48a4x5,_0x48a4x6){return pm2[_0xc2e9[9]](_0x48a4xa,function(_0x48a4x7,_0x48a4x9){if(_0x48a4x7){return _0x48a4x6(_0x48a4x7)};pm2[_0xc2e9[7]]();return _0x48a4x5(_0x48a4x9)})})})};exports[_0xc2e9[10]]= function(_0x48a4xa){return connect()[_0xc2e9[8]](function(){return  new BPromise(function(_0x48a4x5,_0x48a4x6){return pm2[_0xc2e9[10]](_0x48a4xa,function(_0x48a4x7,_0x48a4xb){if(_0x48a4x7){return _0x48a4x6(_0x48a4x7)};pm2[_0xc2e9[7]]();return _0x48a4x5(_0x48a4xb)})})})};exports[_0xc2e9[11]]= function(){return connect()[_0xc2e9[8]](function(){return  new BPromise(function(_0x48a4x5,_0x48a4x6){return pm2[_0xc2e9[11]](function(_0x48a4x7,_0x48a4xc){if(_0x48a4x7){return _0x48a4x6(_0x48a4x7)};pm2[_0xc2e9[7]]();return _0x48a4x5(_0x48a4xc)})})})};exports[_0xc2e9[12]]= function(_0x48a4xa){return connect()[_0xc2e9[8]](function(){return  new BPromise(function(_0x48a4x5,_0x48a4x6){return pm2[_0xc2e9[12]](_0x48a4xa,function(_0x48a4x7,_0x48a4xc){if(_0x48a4x7){return _0x48a4x6(_0x48a4x7)};pm2[_0xc2e9[7]]();return _0x48a4x5(_0x48a4xc)})})})}
\ No newline at end of file
diff --git a/server/config/seed.js b/server/config/seed.js
new file mode 100644 (file)
index 0000000..1163d00
--- /dev/null
@@ -0,0 +1 @@
+var _0x45d4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x6C\x6F\x63\x61\x6C","\x75\x73\x65\x72","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x63\x61\x72\x65\x72\x69","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x63\x61\x72\x65\x72\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x67\x69\x75\x73\x65\x70\x70\x65","\x47\x69\x75\x73\x65\x70\x70\x65\x20\x43\x61\x72\x65\x72\x69","\x61\x64\x6D\x69\x6E","\x64\x61\x6E\x69\x65\x6C\x65\x2E\x63\x69\x6E\x74\x69","\x64\x61\x6E\x69\x65\x6C\x65\x2E\x63\x69\x6E\x74\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x64\x61\x6E\x69\x65\x6C\x65","\x44\x61\x6E\x69\x65\x6C\x65\x20\x43\x69\x6E\x74\x69","\x53\x61\x6C\x65\x73","\x72\x69\x6E\x67\x61\x6C\x6C","\x53\x75\x70\x70\x6F\x72\x74","\x54\x31","\x54\x32","\x4C\x31","\x4C\x31\x20\x44\x65\x73\x63","\x4C\x32","\x4C\x32\x20\x44\x65\x73\x63","\x4C\x33","\x4C\x33\x20\x44\x65\x73\x63","\x47\x6F\x6F\x67\x6C\x65","\x46\x61\x63\x65\x62\x6F\x6F\x6B","\x54\x77\x69\x74\x74\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x44\x65\x66\x61\x75\x6C\x74\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x28\x44\x4F\x20\x4E\x4F\x54\x20\x44\x45\x4C\x45\x54\x45\x29","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x58\x65\x6E\x69\x61\x6C\x61\x62\x20\x74\x65\x73\x74","\x61\x67\x65\x6E\x74","\x25\x73\x25\x64","\x66\x6F\x72\x6D\x61\x74","\x25\x73\x25\x64\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x70\x61\x73\x73\x77\x6F\x72\x64","\x70\x75\x73\x68","\x71\x75\x65\x75\x65","\x4A\x6F\x68\x6E","\x44\x6F\x65","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65","\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x54\x41\x47","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x66\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67","\x73\x65\x74\x74\x69\x6E\x67\x73","\x6C\x6F\x67","\x74\x68\x65\x6E","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x53\x65\x74\x74\x69\x6E\x67","\x75\x73\x65\x72\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72","\x64\x65\x73\x74\x72\x6F\x79","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x73","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x74\x65\x61\x6D\x73","\x54\x65\x61\x6D","\x6C\x69\x73\x74\x73","\x43\x6D\x4C\x69\x73\x74","\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x74\x61\x67\x73","\x54\x61\x67"];_0x45d4[0];var util=require(_0x45d4[1]);var db=require(_0x45d4[3])[_0x45d4[2]];var users=[{id:1,provider:_0x45d4[4],role:_0x45d4[5],name:_0x45d4[6],email:_0x45d4[7],password:_0x45d4[8],fullname:_0x45d4[9],internal:2001},{id:2,provider:_0x45d4[4],role:_0x45d4[10],name:_0x45d4[11],email:_0x45d4[12],password:_0x45d4[13],fullname:_0x45d4[14],internal:2002}];var queues=[{id:1,name:_0x45d4[15],strategy:_0x45d4[16],acw:true,acwTimeout:5},{id:2,name:_0x45d4[17],strategy:_0x45d4[16],acw:true,acwTimeout:5}];var teams=[{id:1,name:_0x45d4[18]},{id:2,name:_0x45d4[19]}];var lists=[{id:1,name:_0x45d4[20],description:_0x45d4[21]},{id:2,name:_0x45d4[22],description:_0x45d4[23]},{id:3,name:_0x45d4[24],description:_0x45d4[25]}];var companies=[{id:1,name:_0x45d4[26]},{id:2,name:_0x45d4[27]},{id:3,name:_0x45d4[28]}];var contexts=[{name:_0x45d4[29],description:_0x45d4[30],defaultEntry:true},{name:_0x45d4[31],description:_0x45d4[30],defaultEntry:true},{name:_0x45d4[32],description:_0x45d4[30],defaultEntry:true},{name:_0x45d4[33],description:_0x45d4[30],defaultEntry:true},{name:_0x45d4[34],description:_0x45d4[30],defaultEntry:true}];var setting={min_internal:1000,min_mailbox:1000,footerWhiteLabel:_0x45d4[35]};var contacts=[];var tags=[];for(var i=0;i< 20;i++){users[_0x45d4[41]]({id:1000+ i+ 1,internal:3000+ i,provider:_0x45d4[4],role:_0x45d4[36],name:util[_0x45d4[38]](_0x45d4[37],_0x45d4[36],i+ 1),email:util[_0x45d4[38]](_0x45d4[39],_0x45d4[36],i+ 1),password:_0x45d4[40],fullname:util[_0x45d4[38]](_0x45d4[37],_0x45d4[36],i+ 1)})};for(var i=0;i< 10;i++){queues[_0x45d4[41]]({id:1000+ i+ 1,name:util[_0x45d4[38]](_0x45d4[37],_0x45d4[42],i+ 1),strategy:_0x45d4[16]})};for(var i=0;i< 20;i++){contacts[_0x45d4[41]]({id:i+ 1,firstName:_0x45d4[43]+ 1000+ i+ 1,lastName:_0x45d4[44]+ 1000+ i+ 1,phone:1000+ i+ 1,email:_0x45d4[45]+ 1000+ i+ 1+ _0x45d4[46]})};for(var i=0;i< 20;i++){tags[_0x45d4[41]]({id:i+ 1,name:_0x45d4[47]+ i+ 1})};db[_0x45d4[55]][_0x45d4[54]]({where:{id:1},defaults:setting})[_0x45d4[53]](function(){console[_0x45d4[52]](_0x45d4[50],_0x45d4[51])})[_0x45d4[49]](function(_0xd6c0xd){console[_0x45d4[48]](_0xd6c0xd)});db[_0x45d4[58]][_0x45d4[59]]({where:{}})[_0x45d4[53]](function(){db[_0x45d4[58]][_0x45d4[57]](users)})[_0x45d4[53]](function(){console[_0x45d4[52]](_0x45d4[50],_0x45d4[56])})[_0x45d4[49]](function(_0xd6c0xd){console[_0x45d4[48]](_0xd6c0xd)});db[_0x45d4[61]][_0x45d4[59]]({where:{}})[_0x45d4[53]](function(){return db[_0x45d4[61]][_0x45d4[57]](queues)})[_0x45d4[53]](function(){console[_0x45d4[52]](_0x45d4[50],_0x45d4[60])})[_0x45d4[49]](function(_0xd6c0xd){console[_0x45d4[48]](_0xd6c0xd)});db[_0x45d4[63]][_0x45d4[57]](contexts,{ignoreDuplicates:true})[_0x45d4[53]](function(){console[_0x45d4[52]](_0x45d4[50],_0x45d4[62])})[_0x45d4[49]](function(_0xd6c0xd){console[_0x45d4[48]](_0xd6c0xd)});db[_0x45d4[65]][_0x45d4[59]]({where:{}})[_0x45d4[53]](function(){return db[_0x45d4[65]][_0x45d4[57]](teams)})[_0x45d4[53]](function(){console[_0x45d4[52]](_0x45d4[50],_0x45d4[64])})[_0x45d4[49]](function(_0xd6c0xd){console[_0x45d4[48]](_0xd6c0xd)});db[_0x45d4[67]][_0x45d4[59]]({where:{}})[_0x45d4[53]](function(){return db[_0x45d4[67]][_0x45d4[57]](lists)})[_0x45d4[53]](function(){console[_0x45d4[52]](_0x45d4[50],_0x45d4[66])})[_0x45d4[49]](function(_0xd6c0xd){console[_0x45d4[48]](_0xd6c0xd)});db[_0x45d4[69]][_0x45d4[59]]({where:{}})[_0x45d4[53]](function(){return db[_0x45d4[69]][_0x45d4[57]](companies)})[_0x45d4[53]](function(){console[_0x45d4[52]](_0x45d4[50],_0x45d4[68])})[_0x45d4[49]](function(_0xd6c0xd){console[_0x45d4[48]](_0xd6c0xd)});db[_0x45d4[71]][_0x45d4[59]]({where:{}})[_0x45d4[53]](function(){return db[_0x45d4[71]][_0x45d4[57]](contacts)})[_0x45d4[53]](function(){console[_0x45d4[52]](_0x45d4[50],_0x45d4[70])})[_0x45d4[49]](function(_0xd6c0xd){console[_0x45d4[48]](_0xd6c0xd)});db[_0x45d4[73]][_0x45d4[59]]({where:{}})[_0x45d4[53]](function(){return db[_0x45d4[73]][_0x45d4[57]](tags)})[_0x45d4[53]](function(){console[_0x45d4[52]](_0x45d4[50],_0x45d4[72])})[_0x45d4[49]](function(_0xd6c0xd){console[_0x45d4[48]](_0xd6c0xd)})
\ No newline at end of file
diff --git a/server/config/seedContact.js b/server/config/seedContact.js
new file mode 100644 (file)
index 0000000..947d577
--- /dev/null
@@ -0,0 +1 @@
+var _0xceb1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x49\x6E\x6E\x6F\x63\x65\x6E\x7A\x6F","\x42\x69\x6F\x6E\x64\x6F","\x69\x6E\x6E\x6F\x63\x65\x6E\x7A\x6F\x2E\x62\x69\x6F\x6E\x64\x6F","\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x70\x75\x73\x68","\x6E\x6F\x77","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x66\x69\x6E\x69\x73\x68\x65\x64\x20\x70\x6F\x70\x75\x6C\x61\x74\x69\x6E\x67","\x68\x6F\x70\x70\x65\x72\x32","\x74\x68\x65\x6E","\x63\x6F\x6E\x74\x61\x63\x74\x73\x32","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x68\x6F\x70\x70\x65\x72\x31","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x63\x6F\x6E\x74\x61\x63\x74\x73\x31","\x64\x65\x73\x74\x72\x6F\x79"];_0xceb1[0];var util=require(_0xceb1[1]);var db=require(_0xceb1[3])[_0xceb1[2]];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=1;i<= 1200;i+= 1){contacts[_0xceb1[8]]({id:i,firstName:_0xceb1[4]+ i,lastName:_0xceb1[5]+ i,phone:66699900000+ i,email:_0xceb1[6]+ i+ _0xceb1[7]})};for(var i=1;i<= 1200;i+= 1){hopper[_0xceb1[8]]({id:i,active:false,scheduledat:Date[_0xceb1[9]](),countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,ContactId:i,ListId:1,UserId:1,VoiceQueueId:1021,createdAt:Date[_0xceb1[9]](),updatedAt:Date[_0xceb1[9]]()})};for(var i=1201;i<= 2400;i+= 1){contacts2[_0xceb1[8]]({id:i,firstName:_0xceb1[4]+ i,lastName:_0xceb1[5]+ i,phone:66699900000+ i,email:_0xceb1[6]+ i+ _0xceb1[7]})};for(var i=1201;i<= 2400;i+= 1){hopper2[_0xceb1[8]]({id:i,active:false,scheduledat:Date[_0xceb1[9]](),countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,ContactId:i,ListId:1,UserId:1,VoiceQueueId:1021,createdAt:Date[_0xceb1[9]](),updatedAt:Date[_0xceb1[9]]()})};db[_0xceb1[19]][_0xceb1[21]]({where:{}})[_0xceb1[14]](function(){return db[_0xceb1[19]][_0xceb1[16]](contacts)})[_0xceb1[14]](function(){console[_0xceb1[10]](_0xceb1[12],_0xceb1[20]);return db[_0xceb1[17]][_0xceb1[21]]({where:{}})})[_0xceb1[14]](function(){return db[_0xceb1[17]][_0xceb1[16]](hopper)})[_0xceb1[14]](function(){console[_0xceb1[10]](_0xceb1[12],_0xceb1[18]);return db[_0xceb1[19]][_0xceb1[16]](contacts2)})[_0xceb1[14]](function(){console[_0xceb1[10]](_0xceb1[12],_0xceb1[15]);return db[_0xceb1[17]][_0xceb1[16]](hopper2)})[_0xceb1[14]](function(){console[_0xceb1[10]](_0xceb1[12],_0xceb1[13])})[_0xceb1[11]](function(_0xa20dx8){console[_0xceb1[10]](_0xa20dx8)})
\ No newline at end of file
diff --git a/server/config/seedDB/analyticReports.js b/server/config/seedDB/analyticReports.js
new file mode 100644 (file)
index 0000000..3e796ae
--- /dev/null
@@ -0,0 +1 @@
+var _0x1965=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x72\x65\x70\x6F\x72\x74","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x44\x65\x66\x61\x75\x6C\x74\x20\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x44\x65\x66\x61\x75\x6C\x74\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x66\x69\x65\x6C\x64\x73","\x6C\x65\x6E\x67\x74\x68","\x69\x64","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x49\x64","\x52\x65\x70\x6F\x72\x74\x49\x64","\x63\x72\x65\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x6D\x6F\x74\x69\x6F\x6E","\x64\x65\x66\x61\x75\x6C\x74","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x64\x65\x73\x74\x72\x6F\x79","\x63\x72\x65\x61\x74\x65\x43\x75\x73\x74\x6F\x6D","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x49\x64","\x63\x75\x73\x74\x6F\x6D","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74"];_0x1965[0];var db=require(_0x1965[2])[_0x1965[1]];var logger=require(_0x1965[4])(_0x1965[3]);var report=require(_0x1965[5]);exports[_0x1965[6]]= function(){return db[_0x1965[23]][_0x1965[24]]({where:{id:{$ne:null}}})[_0x1965[12]](function(){return db[_0x1965[19]][_0x1965[24]]({where:{DefaultReportId:{$ne:null}}})})[_0x1965[12]](function(){return db[_0x1965[23]][_0x1965[22]](report[_0x1965[21]](_0x1965[20]),{ignoreDuplicates:true,individualHooks:true})[_0x1965[12]](function(_0x44dex5){var _0x44dex6=report[_0x1965[13]]();for(var _0x44dex7=0;_0x44dex7< _0x44dex5[_0x1965[14]];_0x44dex7+= 1){if(_0x44dex6[_0x44dex5[_0x44dex7][_0x1965[15]]]){for(var _0x44dex8=0;_0x44dex8< _0x44dex6[_0x44dex5[_0x44dex7][_0x1965[15]]][_0x1965[14]];_0x44dex8+= 1){_0x44dex6[_0x44dex5[_0x44dex7][_0x1965[15]]][_0x44dex8][_0x1965[16]]= _0x44dex6[_0x44dex5[_0x44dex7][_0x1965[15]]][_0x44dex8][_0x1965[17]];delete _0x44dex6[_0x44dex5[_0x44dex7][_0x1965[15]]][_0x44dex8][_0x1965[17]];db[_0x1965[19]][_0x1965[18]](_0x44dex6[_0x44dex5[_0x44dex7][_0x1965[15]]][_0x44dex8])}}}})})[_0x1965[12]](function(){logger[_0x1965[11]](_0x1965[10])})[_0x1965[9]](function(_0x44dex4){logger[_0x1965[8]](_0x1965[7])})};exports[_0x1965[25]]= function(){return db[_0x1965[30]][_0x1965[22]](report[_0x1965[21]](_0x1965[29]),{ignoreDuplicates:true,individualHooks:true})[_0x1965[12]](function(_0x44dex5){var _0x44dex6=report[_0x1965[13]]();for(var _0x44dex7=0;_0x44dex7< _0x44dex5[_0x1965[14]];_0x44dex7+= 1){if(_0x44dex6[_0x44dex5[_0x44dex7][_0x1965[15]]]){for(var _0x44dex8=0;_0x44dex8< _0x44dex6[_0x44dex5[_0x44dex7][_0x1965[15]]][_0x1965[14]];_0x44dex8+= 1){_0x44dex6[_0x44dex5[_0x44dex7][_0x1965[15]]][_0x44dex8][_0x1965[28]]= _0x44dex6[_0x44dex5[_0x44dex7][_0x1965[15]]][_0x44dex8][_0x1965[17]];delete _0x44dex6[_0x44dex5[_0x44dex7][_0x1965[15]]][_0x44dex8][_0x1965[17]];db[_0x1965[19]][_0x1965[18]](_0x44dex6[_0x44dex5[_0x44dex7][_0x1965[15]]][_0x44dex8])}}}})[_0x1965[12]](function(){logger[_0x1965[11]](_0x1965[27])})[_0x1965[9]](function(_0x44dex4){logger[_0x1965[8]](_0x1965[26])})}
\ No newline at end of file
diff --git a/server/config/seedDB/analyticTreeReports.js b/server/config/seedDB/analyticTreeReports.js
new file mode 100644 (file)
index 0000000..c329044
--- /dev/null
@@ -0,0 +1 @@
+var _0x5d30=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x72\x65\x65","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x54\x72\x65\x65\x20\x44\x65\x66\x61\x75\x6C\x74\x20\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x54\x72\x65\x65\x20\x44\x65\x66\x61\x75\x6C\x74\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6D\x6F\x74\x69\x6F\x6E","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x64\x65\x73\x74\x72\x6F\x79","\x63\x72\x65\x61\x74\x65\x43\x75\x73\x74\x6F\x6D","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x54\x72\x65\x65\x20\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74","\x41\x6E\x61\x6C\x79\x74\x69\x63\x20\x54\x72\x65\x65\x20\x43\x75\x73\x74\x6F\x6D\x20\x52\x65\x70\x6F\x72\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x63\x75\x73\x74\x6F\x6D"];_0x5d30[0];var db=require(_0x5d30[2])[_0x5d30[1]];var logger=require(_0x5d30[4])(_0x5d30[3]);var tree=require(_0x5d30[5]);exports[_0x5d30[6]]= function(){return db[_0x5d30[16]][_0x5d30[17]]({where:{id:1}})[_0x5d30[12]](function(){return db[_0x5d30[16]][_0x5d30[15]]([{id:1,tree:JSON[_0x5d30[14]](tree[_0x5d30[13]])}],{ignoreDuplicates:true,individualHooks:true})})[_0x5d30[12]](function(){logger[_0x5d30[11]](_0x5d30[10])})[_0x5d30[9]](function(_0x3decx4){logger[_0x5d30[8]](_0x5d30[7])})};exports[_0x5d30[18]]= function(){return db[_0x5d30[16]][_0x5d30[15]]([{id:2,tree:JSON[_0x5d30[14]](tree[_0x5d30[21]])}],{ignoreDuplicates:true,individualHooks:true})[_0x5d30[12]](function(){logger[_0x5d30[11]](_0x5d30[20])})[_0x5d30[9]](function(_0x3decx4){logger[_0x5d30[8]](_0x5d30[19])})}
\ No newline at end of file
diff --git a/server/config/seedDB/chanspy.js b/server/config/seedDB/chanspy.js
new file mode 100644 (file)
index 0000000..5f74523
--- /dev/null
@@ -0,0 +1 @@
+var _0x4ba2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x4C\x69\x73\x74\x65\x6E\x26\x54\x61\x6C\x6B\x4F\x6E\x65","\x73\x70\x79\x31","\x62","\x77","\x54\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x63\x61\x6E\x20\x6C\x69\x73\x74\x65\x6E\x20\x61\x6E\x64\x20\x74\x61\x6C\x6B\x20\x74\x6F\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x2E\x20\x54\x68\x65\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x20\x77\x69\x6C\x6C\x20\x6E\x6F\x74\x20\x6C\x69\x73\x74\x65\x6E\x20\x74\x6F\x20\x74\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x76\x6F\x69\x63\x65\x2E","\x4F\x6E\x6C\x79\x4C\x69\x73\x74\x65\x6E","\x73\x70\x79\x32","\x6F","\x54\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x63\x61\x6E\x20\x6F\x6E\x6C\x79\x20\x6C\x69\x73\x74\x65\x6E\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20\x63\x68\x61\x6E\x6E\x65\x6C\x20\x28\x6E\x65\x69\x74\x68\x65\x72\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20\x6E\x6F\x72\x20\x74\x68\x65\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x20\x77\x69\x6C\x6C\x20\x6C\x69\x73\x74\x65\x6E\x20\x74\x6F\x20\x74\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x76\x6F\x69\x63\x65\x2E","\x4C\x69\x73\x74\x65\x6E\x26\x54\x61\x6C\x6B\x42\x6F\x74\x68","\x73\x70\x79\x33","\x57","\x54\x68\x65\x20\x73\x75\x70\x65\x72\x76\x69\x73\x6F\x72\x20\x63\x61\x6E\x20\x6C\x69\x73\x74\x65\x6E\x20\x61\x6E\x64\x20\x74\x61\x6C\x6B\x20\x62\x6F\x74\x68\x20\x74\x6F\x20\x74\x68\x65\x20\x61\x67\x65\x6E\x74\x20\x61\x6E\x64\x20\x74\x6F\x20\x74\x68\x65\x20\x63\x75\x73\x74\x6F\x6D\x65\x72\x2C\x20\x6C\x69\x6B\x65\x20\x61\x20\x70\x75\x72\x65\x20\x33\x20\x77\x61\x79\x20\x63\x6F\x6E\x66\x65\x72\x65\x6E\x63\x65\x20\x72\x6F\x6F\x6D\x2E","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x43\x68\x61\x6E\x53\x70\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x68\x61\x6E\x53\x70\x61\x79\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79"];_0x4ba2[0];var db=require(_0x4ba2[2])[_0x4ba2[1]];var logger=require(_0x4ba2[4])(_0x4ba2[3]);var chanSpy=[{id:1,name:_0x4ba2[5],prefix:_0x4ba2[6],options:[_0x4ba2[7],_0x4ba2[8]],description:_0x4ba2[9]},{id:2,name:_0x4ba2[10],prefix:_0x4ba2[11],options:[_0x4ba2[7],_0x4ba2[12]],description:_0x4ba2[13]},{id:3,name:_0x4ba2[14],prefix:_0x4ba2[15],options:[_0x4ba2[7],_0x4ba2[16]],description:_0x4ba2[17]}];exports[_0x4ba2[18]]= function(){return db[_0x4ba2[26]][_0x4ba2[25]](chanSpy,{ignoreDuplicates:true,individualHooks:true})[_0x4ba2[24]](function(){logger[_0x4ba2[23]](_0x4ba2[22])})[_0x4ba2[21]](function(_0xe268x4){logger[_0x4ba2[20]](_0x4ba2[19])})}
\ No newline at end of file
diff --git a/server/config/seedDB/companies.js b/server/config/seedDB/companies.js
new file mode 100644 (file)
index 0000000..3d6a478
--- /dev/null
@@ -0,0 +1 @@
+var _0x8d81=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x58\x65\x6E\x69\x61\x6C\x61\x62","\x73\x72\x6C","\x30\x39\x36\x36\x38\x39\x31\x30\x30\x31\x32","\x2B\x33\x39\x30\x31\x31\x31\x39\x38\x38\x36\x35\x30\x30","\x2B\x33\x39\x30\x31\x31\x30\x39\x36\x30\x30\x37\x30","\x77\x77\x77\x2E\x78\x63\x61\x6C\x6C\x79\x6D\x6F\x74\x69\x6F\x6E\x2E\x63\x6F\x6D","\x69\x6E\x66\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x43\x6F\x72\x73\x6F\x20\x56\x69\x74\x74\x6F\x72\x69\x6F\x20\x45\x6D\x61\x6E\x75\x65\x6C\x65\x20\x49\x49\x2C\x20\x31\x31\x31","\x31\x30\x31\x32\x38","\x54\x75\x72\x69\x6E","\x49\x74\x61\x6C\x79","\x63\x6F\x6D\x70\x61\x6E\x79\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x43\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x6F\x6D\x70\x61\x6E\x69\x65\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79"];_0x8d81[0];var db=require(_0x8d81[2])[_0x8d81[1]];var logger=require(_0x8d81[4])(_0x8d81[3]);var companies=[{id:1,name:_0x8d81[5],type:_0x8d81[6],vat:_0x8d81[7],phone:_0x8d81[8],fax:_0x8d81[9],website:_0x8d81[10],email:_0x8d81[11],emailDomain:_0x8d81[12],street:_0x8d81[13],postalCode:_0x8d81[14],city:_0x8d81[15],country:_0x8d81[16],description:_0x8d81[17]}];exports[_0x8d81[18]]= function(){return db[_0x8d81[26]][_0x8d81[25]](companies,{ignoreDuplicates:true,individualHooks:true})[_0x8d81[24]](function(){logger[_0x8d81[23]](_0x8d81[22])})[_0x8d81[21]](function(_0x335ax4){logger[_0x8d81[20]](_0x8d81[19])})}
\ No newline at end of file
diff --git a/server/config/seedDB/contacts.js b/server/config/seedDB/contacts.js
new file mode 100644 (file)
index 0000000..e4581a7
--- /dev/null
@@ -0,0 +1 @@
+var _0x5316=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x74\x61\x67\x73","\x67\x65\x74\x4E\x61\x6D\x65\x73","\x6C\x65\x6E\x67\x74\x68","\x72\x61\x6E\x64\x6F\x6D","\x66\x6C\x6F\x6F\x72","\x4D\x61\x72\x69\x6F","\x52\x6F\x73\x73\x69","\x31\x32\x33","\x6D\x61\x72\x69\x6F\x2E\x72\x6F\x73\x73\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x63\x6F\x6E\x74\x61\x63\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x47\x69\x75\x73\x65\x70\x70\x65","\x56\x65\x72\x64\x69","\x34\x35\x36","\x67\x69\x75\x73\x65\x70\x70\x65\x2E\x76\x65\x72\x64\x69\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x41\x6E\x64\x72\x65\x61","\x42\x69\x61\x6E\x63\x6F","\x37\x38\x39","\x61\x6E\x64\x72\x65\x61\x2E\x62\x69\x61\x6E\x63\x6F\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x43\x6F\x6E\x74\x61\x63\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x6F\x6E\x74\x61\x63\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74"];_0x5316[0];var db=require(_0x5316[2])[_0x5316[1]];var logger=require(_0x5316[4])(_0x5316[3]);var tags=require(_0x5316[5]);var tags=tags[_0x5316[6]]();var getRandomTag=function(){var _0x5155x5=tags[_0x5316[7]]- 1;return [tags[Math[_0x5316[9]](Math[_0x5316[8]]()* _0x5155x5)+ 1]]};var contacts=[{id:1,firstName:_0x5316[10],lastName:_0x5316[11],phone:_0x5316[12],email:_0x5316[13],ListId:1,CompanyId:1,tags:getRandomTag(),description:_0x5316[14]},{id:2,firstName:_0x5316[15],lastName:_0x5316[16],phone:_0x5316[17],email:_0x5316[18],ListId:1,CompanyId:1,tags:getRandomTag(),description:_0x5316[14]},{id:3,firstName:_0x5316[19],lastName:_0x5316[20],phone:_0x5316[21],email:_0x5316[22],ListId:2,CompanyId:1,tags:getRandomTag(),description:_0x5316[14]}];exports[_0x5316[23]]= function(){return db[_0x5316[31]][_0x5316[30]](contacts,{ignoreDuplicates:true,individualHooks:true})[_0x5316[29]](function(){logger[_0x5316[28]](_0x5316[27])})[_0x5316[26]](function(_0x5155x7){logger[_0x5316[25]](_0x5316[24])})}
\ No newline at end of file
diff --git a/server/config/seedDB/index.js b/server/config/seedDB/index.js
new file mode 100644 (file)
index 0000000..cb0ef77
--- /dev/null
@@ -0,0 +1 @@
+var _0x4f81=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x63\x72\x65\x61\x74\x65\x44\x65\x66\x61\x75\x6C\x74","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x52\x65\x70\x6F\x72\x74\x73","\x53\x65\x74\x74\x69\x6E\x67\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x63\x72\x65\x61\x74\x65\x43\x75\x73\x74\x6F\x6D","\x63\x72\x65\x61\x74\x65","\x2E\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x2E\x2F\x75\x73\x65\x72\x73","\x2E\x2F\x74\x65\x61\x6D\x73","\x2E\x2F\x74\x72\x75\x6E\x6B\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x2E\x2F\x63\x68\x61\x6E\x73\x70\x79","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2E\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x2E\x2F\x70\x61\x75\x73\x65\x73","\x2E\x2F\x74\x61\x67\x73","\x2E\x2F\x6C\x69\x73\x74\x73","\x2E\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x2E\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2E\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x2E\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x73\x70\x72\x65\x61\x64","\x66\x69\x6E\x64\x4F\x72\x43\x72\x65\x61\x74\x65","\x53\x65\x74\x74\x69\x6E\x67","\x64\x65\x66\x61\x75\x6C\x74"];_0x4f81[0];var BPromise=require(_0x4f81[1]);var db=require(_0x4f81[3])[_0x4f81[2]];var logger=require(_0x4f81[5])(_0x4f81[4]);var defaultSeed=function(){return db[_0x4f81[37]][_0x4f81[36]]({where:{id:1},defaults:{firstSetup:true}})[_0x4f81[35]](function(_0x59c2x6,_0x59c2x7){require(_0x4f81[10])[_0x4f81[9]]();require(_0x4f81[11])[_0x4f81[9]]();if(_0x59c2x7){logger[_0x4f81[13]](_0x4f81[12]);require(_0x4f81[10])[_0x4f81[14]]();require(_0x4f81[11])[_0x4f81[14]]();require(_0x4f81[16])[_0x4f81[15]]();require(_0x4f81[17])[_0x4f81[15]]();require(_0x4f81[18])[_0x4f81[15]]();require(_0x4f81[19])[_0x4f81[15]]();require(_0x4f81[20])[_0x4f81[15]]();require(_0x4f81[21])[_0x4f81[15]]();require(_0x4f81[22])[_0x4f81[15]]();require(_0x4f81[23])[_0x4f81[15]]();require(_0x4f81[24])[_0x4f81[15]]();require(_0x4f81[25])[_0x4f81[15]]();require(_0x4f81[26])[_0x4f81[15]]();require(_0x4f81[27])[_0x4f81[15]]();require(_0x4f81[28])[_0x4f81[15]]();require(_0x4f81[29])[_0x4f81[15]]();require(_0x4f81[30])[_0x4f81[15]]();require(_0x4f81[31])[_0x4f81[15]]();require(_0x4f81[32])[_0x4f81[15]]();require(_0x4f81[33])[_0x4f81[15]]();require(_0x4f81[34])[_0x4f81[15]]()}})[_0x4f81[8]](function(_0x59c2x5){logger[_0x4f81[7]](JSON[_0x4f81[6]](_0x59c2x5))})};exports[_0x4f81[38]]= defaultSeed
\ No newline at end of file
diff --git a/server/config/seedDB/intervals.js b/server/config/seedDB/intervals.js
new file mode 100644 (file)
index 0000000..d2424b2
--- /dev/null
@@ -0,0 +1 @@
+var _0x87b3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x4D\x6F\x6F\x72\x6E\x69\x67","\x30\x39\x3A\x30\x30\x2D\x31\x33\x3A\x30\x30\x2C\x6D\x6F\x6E\x2D\x66\x72\x69\x2C\x2A\x2C\x2A","\x41\x66\x74\x65\x72\x6E\x6F\x6F\x6E","\x31\x34\x3A\x30\x30\x2D\x31\x38\x3A\x30\x30\x2C\x6D\x6F\x6E\x2D\x66\x72\x69\x2C\x2A\x2C\x2A","\x43\x68\x72\x69\x73\x74\x6D\x61\x73","\x2A\x2C\x2A\x2C\x32\x35\x2C\x64\x65\x63","\x4E\x65\x77\x59\x65\x61\x72","\x2A\x2C\x2A\x2C\x31\x2C\x6A\x61\x6E","\x56\x61\x6C\x65\x6E\x74\x69\x6E\x65\x73","\x2A\x2C\x2A\x2C\x31\x34\x2C\x66\x65\x62","\x48\x61\x6C\x6C\x6F\x77\x65\x65\x6E","\x2A\x2C\x2A\x2C\x33\x31\x2C\x6F\x63\x74","\x57\x6F\x72\x6B\x69\x6E\x67\x54\x69\x6D\x65","\x77\x6F\x72\x6B\x69\x6E\x67\x20\x74\x69\x6D\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x48\x6F\x6C\x69\x64\x61\x79\x73","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x49\x6E\x74\x65\x76\x61\x6C\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x6E\x61\x6D\x65","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x69\x64","\x64\x65\x66\x61\x75\x6C\x74\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65"];_0x87b3[0];var _=require(_0x87b3[1]);var db=require(_0x87b3[3])[_0x87b3[2]];var logger=require(_0x87b3[5])(_0x87b3[4]);var subIntervals={"\x57\x6F\x72\x6B\x69\x6E\x67\x54\x69\x6D\x65":[{name:_0x87b3[6],interval:_0x87b3[7]},{name:_0x87b3[8],interval:_0x87b3[9]}],"\x48\x6F\x6C\x69\x64\x61\x79\x73":[{name:_0x87b3[10],interval:_0x87b3[11]},{name:_0x87b3[12],interval:_0x87b3[13]},{name:_0x87b3[14],interval:_0x87b3[15]},{name:_0x87b3[16],interval:_0x87b3[17]}]};var intervals=[{id:1,name:_0x87b3[18],description:_0x87b3[19]},{id:2,name:_0x87b3[20],description:_0x87b3[19]}];exports[_0x87b3[21]]= function(){return db[_0x87b3[33]][_0x87b3[34]](intervals,{ignoreDuplicates:true,individualHooks:true})[_0x87b3[27]](function(_0xd922x7){for(var _0xd922x8=0;_0xd922x8< _0xd922x7[_0x87b3[28]];_0xd922x8+= 1){if(subIntervals[_0xd922x7[_0xd922x8][_0x87b3[29]]]){for(var _0xd922x9=0;_0xd922x9< subIntervals[_0xd922x7[_0xd922x8][_0x87b3[29]]][_0x87b3[28]];_0xd922x9+= 1){subIntervals[_0xd922x7[_0xd922x8][_0x87b3[29]]][_0xd922x9]= _[_0x87b3[32]](subIntervals[_0xd922x7[_0xd922x8][_0x87b3[29]]][_0xd922x9],{description:_0xd922x7[_0xd922x8][_0x87b3[30]],IntervalId:_0xd922x7[_0xd922x8][_0x87b3[31]]});db[_0x87b3[33]][_0x87b3[21]](subIntervals[_0xd922x7[_0xd922x8][_0x87b3[29]]][_0xd922x9])}}}})[_0x87b3[27]](function(){logger[_0x87b3[26]](_0x87b3[25])})[_0x87b3[24]](function(_0xd922x6){logger[_0x87b3[23]](_0x87b3[22])})}
\ No newline at end of file
diff --git a/server/config/seedDB/jscripty/customerSatisfation.json b/server/config/seedDB/jscripty/customerSatisfation.json
new file mode 100644 (file)
index 0000000..50171ba
--- /dev/null
@@ -0,0 +1,435 @@
+{
+    "pages": [{
+        "id": "25b2038c54fe1a72774647dbbeccc557",
+        "number": 1,
+        "name": "Introduction",
+        "description": null,
+        "pageFlow": {
+            "nextPage": true,
+            "label": "mwForm.pageFlow.goToNextPage"
+        },
+        "elements": [{
+            "id": "f731c14bb078ca1f5c1f00b2500f13ab",
+            "orderNo": 1,
+            "type": "question",
+            "question": {
+                "id": "652b65e0e5b078e1d1381b6b3a3ad2bd",
+                "text": "How long it is since you are using xCALLY?",
+                "type": "radio",
+                "required": true,
+                "offeredAnswers": [{
+                    "id": "f3457c416661f1d6b71ed4141ee00530",
+                    "orderNo": 1,
+                    "value": "One month (Demo version)",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "365bafc9fc19c835f772a7c2acd38882",
+                    "orderNo": 2,
+                    "value": "Less than 6 months",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "c0d26ab74b369c6608237de9c2ed90b6",
+                    "orderNo": 3,
+                    "value": "Between 6 months - 1 year",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "354b52df5354eca27018b347e9a9d962",
+                    "orderNo": 4,
+                    "value": "Between 1 year - 2 years",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "b934ff6bcb0911a60114653489f19b93",
+                    "orderNo": 5,
+                    "value": "More than 2 years",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "b30240d2e6f3418f9b26c2fe03682933",
+                    "orderNo": 6,
+                    "value": "We don't use it anymore",
+                    "pageFlow": {
+                        "page": {
+                            "id": "9b52dfb6e7f3fecdf786e4ce5f29d149",
+                            "number": 5
+                        },
+                        "label": "mwForm.pageFlow.goToPage"
+                    }
+                }],
+                "pageFlowModifier": true
+            }
+        }],
+        "namedPage": true,
+        "isFirst": true,
+        "isLast": false
+    }, {
+        "id": "dabd2a6334f17f5221933742ba2f31f9",
+        "number": 2,
+        "name": null,
+        "description": null,
+        "pageFlow": {
+            "nextPage": true,
+            "label": "mwForm.pageFlow.goToNextPage"
+        },
+        "elements": [{
+            "id": "ac72a77463aa846d99e38952b0db9c23",
+            "orderNo": 1,
+            "type": "question",
+            "question": {
+                "id": "a79c23cda72d60e9e14d1f652905a525",
+                "text": "How many Agents in your Contact Center are using xCALLY?",
+                "type": "radio",
+                "required": true,
+                "offeredAnswers": [{
+                    "id": "e230b9a031b9b7e79ebd66e07b8a6fb8",
+                    "orderNo": 1,
+                    "value": "Less than 20",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "cefdabfc82a62e8b31f1826f25af9e03",
+                    "orderNo": 2,
+                    "value": "Between 20 - 50 Agents",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "9d57d3fece117eae0be6960a6b412b75",
+                    "orderNo": 3,
+                    "value": "Between 50 - 150 Agents",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "b9feebe68db5c13c834e0f142cb71fb8",
+                    "orderNo": 4,
+                    "value": "Between 150 - 300 Agents",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "15819a8e1677a24c157b150573f5eefa",
+                    "orderNo": 5,
+                    "value": "More than 300 Agents",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }]
+            }
+        }, {
+            "id": "2670401c278e69f233552826a415bcf6",
+            "orderNo": 2,
+            "type": "question",
+            "question": {
+                "id": "a16aff0dfe356ccd998fb6025759de2a",
+                "text": "What kind of calls do you manage in your Contact Center?",
+                "type": "radio",
+                "required": true,
+                "offeredAnswers": [{
+                    "id": "fcd91cc71dd50c171d52f452d352292b",
+                    "orderNo": 1,
+                    "value": "Only inbound",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "cbc6afbc84fbf8b3f5009578e5cd40de",
+                    "orderNo": 2,
+                    "value": "Mostly inbound",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "7ca573f2be2d946224403083bce1bf89",
+                    "orderNo": 3,
+                    "value": "Both inbound and outbound",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "51ec57f9b511e3d8a304c0c46495174d",
+                    "orderNo": 4,
+                    "value": "Mostly outbound",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "52651dea4bf51d54bdeb56dec892f09b",
+                    "orderNo": 5,
+                    "value": "Only outbound",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }]
+            }
+        }, {
+            "id": "c793e0d4543e663554a55514e2981de0",
+            "orderNo": 3,
+            "type": "question",
+            "question": {
+                "id": "7c656fb101c5d110978c50c06d1cae69",
+                "text": "Which of the following channels do you use in your Contact Center?",
+                "type": "checkbox",
+                "required": true,
+                "offeredAnswers": [{
+                    "id": "e858f6d4692beca5f9b000363bd0b0d2",
+                    "orderNo": 1,
+                    "value": "Phone calls",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "5472cee835b67c74df453bdf64aca9b4",
+                    "orderNo": 2,
+                    "value": "E-Mail",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "eb38c0e572e9ec848fb35f69355b973d",
+                    "orderNo": 3,
+                    "value": "Chat",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "9f67af37e549f93e388e9ddfeb0bcfcf",
+                    "orderNo": 4,
+                    "value": "Fax",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "3093eeac4219df32a68347deed6bed21",
+                    "orderNo": 5,
+                    "value": "SMS",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "112f774dc8b2fe2f114cf5a93e818fc3",
+                    "orderNo": 6,
+                    "value": "Social",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }],
+                "pageFlowModifier": false,
+                "otherAnswer": true
+            }
+        }],
+        "namedPage": false
+    }, {
+        "id": "46f60945788ece4084460324c60781ba",
+        "number": 3,
+        "name": "Software Installation & Update",
+        "description": null,
+        "pageFlow": {
+            "nextPage": true,
+            "label": "mwForm.pageFlow.goToNextPage"
+        },
+        "elements": [{
+            "id": "28a8d8b1ba8600f68f0ab9c623bdc971",
+            "orderNo": 1,
+            "type": "paragraph",
+            "paragraph": {
+                "id": "1951cb18ce8eb56d740651bbca74f4ca",
+                "html": "Please insert a number between 1 and 5 where:\n1=Not at all easy\n5=Extremely easy"
+            }
+        }, {
+            "id": "785910fa586964beec53a57224d939f6",
+            "orderNo": 2,
+            "type": "question",
+            "question": {
+                "id": "4b49749e0415aac8f01f28f90fb13a86",
+                "text": "How easy are the xCALLY Installation Procedures?",
+                "type": "number",
+                "required": true,
+                "pageFlowModifier": false,
+                "min": 1,
+                "max": 5
+            }
+        }, {
+            "id": "bedca4f334f22b3802640eb483504c9b",
+            "orderNo": 3,
+            "type": "question",
+            "question": {
+                "id": "2127a022af8bbbb58fca261417b91bd7",
+                "text": "How easy are the xCALLY Update Procedures?",
+                "type": "number",
+                "required": true,
+                "pageFlowModifier": false,
+                "min": 1,
+                "max": 5
+            }
+        }, {
+            "id": "cd852a90b6a43804942999e5831b4a49",
+            "orderNo": 4,
+            "type": "question",
+            "question": {
+                "id": "16be11cba3a9602c4f29b8760b17e654",
+                "text": "Notes or suggestions about the installation & update procedure",
+                "type": "textarea",
+                "required": true,
+                "pageFlowModifier": false
+            }
+        }],
+        "namedPage": true,
+        "isFirst": false,
+        "isLast": false
+    }, {
+        "id": "9d0f47a3c42ce21b915c28bfb41ad846",
+        "number": 4,
+        "name": "Modules and functionalities",
+        "description": null,
+        "pageFlow": {
+            "nextPage": true,
+            "label": "mwForm.pageFlow.goToNextPage"
+        },
+        "elements": [{
+            "id": "5d03d9bbe15a2cf9ab86765a12a09738",
+            "orderNo": 1,
+            "type": "question",
+            "question": {
+                "id": "4fa5442caf2c5147fa05650c0abe51ec",
+                "text": "How easy is to configure the following xCALLY Modules?",
+                "type": "radio",
+                "required": true,
+                "offeredAnswers": [{
+                    "id": "89cbfcc88fa2e1d46b582368bd01353d",
+                    "orderNo": 1,
+                    "value": "Not at all easy",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "70c4409e42828f9661584cbf78eec9f8",
+                    "orderNo": 2,
+                    "value": "Slightly easy",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "6375221b958a98ca81d1e92c78ecb35d",
+                    "orderNo": 3,
+                    "value": "Moderately easy",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "7892ba12ef10deed546d3c4bca5dfe4e",
+                    "orderNo": 4,
+                    "value": "Very easy",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }, {
+                    "id": "a426c3d52defe247762748417da73106",
+                    "orderNo": 5,
+                    "value": "Extremely easy",
+                    "pageFlow": {
+                        "nextPage": true,
+                        "label": "mwForm.pageFlow.goToNextPage"
+                    }
+                }]
+            }
+        }, {
+            "id": "257b36eec82264fae5dcbd132016fa72",
+            "orderNo": 2,
+            "type": "question",
+            "question": {
+                "id": "f18af40b3c48a69b5ee753ef641db31e",
+                "text": "How many hours you spent to perform a basic XCALLY configuration?",
+                "type": "range",
+                "required": true,
+                "pageFlowModifier": false,
+                "min": 1,
+                "max": 8
+            }
+        }],
+        "namedPage": true,
+        "isFirst": false,
+        "isLast": true
+    }, {
+        "id": "9b52dfb6e7f3fecdf786e4ce5f29d149",
+        "number": 5,
+        "name": "May we known something more about you?",
+        "description": null,
+        "pageFlow": {
+            "nextPage": true,
+            "label": "mwForm.pageFlow.goToNextPage"
+        },
+        "elements": [{
+            "id": "01b95d724f79040bb094ba2a6e9c38bf",
+            "orderNo": 1,
+            "type": "question",
+            "question": {
+                "id": "c6571665c1e1b959edf0d02c80da1002",
+                "text": "Your Name",
+                "type": "text",
+                "required": true,
+                "pageFlowModifier": false
+            }
+        }, {
+            "id": "d2b5f0d31cbf5b7fe43b2a62a5f02c18",
+            "orderNo": 2,
+            "type": "question",
+            "question": {
+                "id": "8b9964d0c0f7b724ba3dc87bcb01e930",
+                "text": "Your E-Mail address",
+                "type": "email",
+                "required": true,
+                "pageFlowModifier": false
+            }
+        }, {
+            "id": "bd7604840dd6ccf8083acc83b5495744",
+            "orderNo": 3,
+            "type": "question",
+            "question": {
+                "id": "97fcfa4c89afc8803458d90ddbaace93",
+                "text": "Your Company website",
+                "type": "url",
+                "required": true,
+                "pageFlowModifier": false
+            }
+        }],
+        "namedPage": true
+    }],
+    "name": "XCALLY Customer Satisfaction",
+    "description": "The XCALLY customer satisfaction help us to improve our services and make our customers very very happy! :-)",
+    "confirmationMessage": "Thanks for your time!"
+}
\ No newline at end of file
diff --git a/server/config/seedDB/jscriptyProjects.js b/server/config/seedDB/jscriptyProjects.js
new file mode 100644 (file)
index 0000000..03695e6
--- /dev/null
@@ -0,0 +1 @@
+var _0x413f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x6A\x73\x63\x72\x69\x70\x74\x79","\x2E\x6A\x73\x6F\x6E","\x6A\x6F\x69\x6E","\x75\x74\x66\x2D\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x43\x75\x73\x74\x6F\x6D\x65\x72\x53\x61\x74\x69\x73\x66\x61\x63\x74\x69\x6F\x6E","\x43\x75\x73\x74\x6F\x6D\x65\x72\x20\x53\x61\x74\x69\x73\x66\x61\x63\x74\x69\x6F\x6E\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x75\x73\x74\x6F\x6D\x65\x72\x53\x61\x74\x69\x73\x66\x61\x74\x69\x6F\x6E","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4A\x73\x63\x72\x69\x70\x74\x79\x20\x50\x72\x6F\x6A\x65\x63\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4A\x73\x63\x72\x69\x70\x74\x79\x20\x50\x72\x6F\x6A\x65\x63\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74"];_0x413f[0];var fs=require(_0x413f[1]);var path=require(_0x413f[2]);var db=require(_0x413f[4])[_0x413f[3]];var logger=require(_0x413f[6])(_0x413f[5]);var getJson=function(_0x34e6x6){return fs[_0x413f[11]](path[_0x413f[9]](__dirname,_0x413f[7],_0x34e6x6+ _0x413f[8]),{encoding:_0x413f[10]})};var jscriptyProjects=[{id:1,name:_0x413f[12],description:_0x413f[13],formData:getJson(_0x413f[14])}];exports[_0x413f[15]]= function(){return db[_0x413f[23]][_0x413f[22]](jscriptyProjects,{ignoreDuplicates:true,individualHooks:true})[_0x413f[21]](function(){logger[_0x413f[20]](_0x413f[19])})[_0x413f[18]](function(_0x34e6x8){logger[_0x413f[17]](_0x413f[16])})}
\ No newline at end of file
diff --git a/server/config/seedDB/lists.js b/server/config/seedDB/lists.js
new file mode 100644 (file)
index 0000000..f8c762d
--- /dev/null
@@ -0,0 +1 @@
+var _0xe518=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x50\x75\x62\x6C\x69\x63\x20\x4C\x69\x73\x74","\x70\x75\x62\x6C\x69\x63\x20\x6C\x69\x73\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x42\x6C\x61\x63\x6B\x20\x4C\x69\x73\x74","\x62\x6C\x61\x63\x6B\x20\x6C\x69\x73\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x43\x61\x6C\x6C\x62\x61\x63\x6B\x20\x4C\x69\x73\x74","\x43\x61\x6C\x6C\x62\x61\x63\x6B\x20\x6C\x69\x73\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4C\x69\x73\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4C\x69\x73\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x43\x6D\x4C\x69\x73\x74"];_0xe518[0];var db=require(_0xe518[2])[_0xe518[1]];var logger=require(_0xe518[4])(_0xe518[3]);var lists=[{id:1,name:_0xe518[5],description:_0xe518[6]},{id:2,name:_0xe518[7],description:_0xe518[8]},{id:3,name:_0xe518[9],description:_0xe518[10]}];exports[_0xe518[11]]= function(){return db[_0xe518[19]][_0xe518[18]](lists,{ignoreDuplicates:true,individualHooks:true})[_0xe518[17]](function(){logger[_0xe518[16]](_0xe518[15])})[_0xe518[14]](function(_0x61f1x4){logger[_0xe518[13]](_0xe518[12])})}
\ No newline at end of file
diff --git a/server/config/seedDB/mailAccounts.js b/server/config/seedDB/mailAccounts.js
new file mode 100644 (file)
index 0000000..fe46ea4
--- /dev/null
@@ -0,0 +1 @@
+var _0xd2db=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x53\x65\x72\x76\x69\x63\x65\x20\x4D\x61\x69\x6C","\x73\x65\x72\x76\x69\x63\x65\x20\x6D\x6F\x74\x69\x6F\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4D\x61\x69\x6C\x20\x41\x63\x63\x6F\x75\x6E\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4D\x61\x69\x6C\x20\x41\x63\x63\x6F\x75\x6E\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x69\x64","\x73\x65\x72\x76\x69\x63\x65\x20\x6D\x6F\x74\x69\x6F\x6E\x20\x73\x6D\x74\x70\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74"];_0xd2db[0];var db=require(_0xd2db[2])[_0xd2db[1]];var logger=require(_0xd2db[4])(_0xd2db[3]);var mailAccounts=[{id:1,name:_0xd2db[5],service:true,description:_0xd2db[6]}];exports[_0xd2db[7]]= function(){return db[_0xd2db[22]][_0xd2db[21]](mailAccounts,{ignoreDuplicates:true,individualHooks:true})[_0xd2db[13]](function(_0xb9a9x5){for(var _0xb9a9x6=0;_0xb9a9x6< _0xb9a9x5[_0xd2db[14]];_0xb9a9x6+= 1){db[_0xd2db[20]][_0xd2db[7]]({host:_0xd2db[15],user:_0xd2db[16],pass:_0xd2db[17],port:465,secure:true,MailAccountId:_0xb9a9x5[_0xb9a9x6][_0xd2db[18]],description:_0xd2db[19]})}})[_0xd2db[13]](function(){logger[_0xd2db[12]](_0xd2db[11])})[_0xd2db[10]](function(_0xb9a9x4){logger[_0xd2db[9]](_0xd2db[8])})}
\ No newline at end of file
diff --git a/server/config/seedDB/pauses.js b/server/config/seedDB/pauses.js
new file mode 100644 (file)
index 0000000..ea4b3f5
--- /dev/null
@@ -0,0 +1 @@
+var _0x93c7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x42\x41\x43\x4B\x4F\x46\x46\x49\x43\x45","\x62\x61\x63\x6B\x6F\x66\x66\x69\x63\x65\x20\x70\x61\x75\x73\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x41\x46\x54\x45\x52\x43\x41\x4C\x4C","\x61\x66\x74\x65\x72\x63\x61\x6C\x6C\x20\x70\x61\x75\x73\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x50\x61\x75\x73\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x50\x61\x75\x73\x65\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x50\x61\x75\x73\x65"];_0x93c7[0];var db=require(_0x93c7[2])[_0x93c7[1]];var logger=require(_0x93c7[4])(_0x93c7[3]);var pauses=[{id:1,name:_0x93c7[5],description:_0x93c7[6]},{id:2,name:_0x93c7[7],description:_0x93c7[8]}];exports[_0x93c7[9]]= function(){return db[_0x93c7[17]][_0x93c7[16]](pauses,{ignoreDuplicates:true,individualHooks:true})[_0x93c7[15]](function(){logger[_0x93c7[14]](_0x93c7[13])})[_0x93c7[12]](function(_0xce70x4){logger[_0x93c7[11]](_0x93c7[10])})}
\ No newline at end of file
diff --git a/server/config/seedDB/report/default.js b/server/config/seedDB/report/default.js
new file mode 100644 (file)
index 0000000..6687386
--- /dev/null
@@ -0,0 +1 @@
+var _0xbf60=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x44\x65\x74\x61\x69\x6C\x73","\x44\x65\x74\x61\x69\x6C\x65\x64\x20\x71\x75\x65\x75\x65\x73\x20\x72\x65\x70\x6F\x72\x74","\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x72\x65\x70\x6F\x72\x74\x5F\x71\x75\x65\x75\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x52\x65\x73\x75\x6C\x74","\x53\x69\x6D\x70\x6C\x65\x20\x71\x75\x65\x75\x65\x20\x63\x61\x6C\x6C\x73\x20\x6F\x76\x65\x72\x76\x69\x65\x77","\x44\x65\x74\x61\x69\x6C\x65\x64\x20\x72\x65\x70\x6F\x72\x74\x20\x61\x62\x6F\x75\x74\x20\x61\x6E\x73\x77\x65\x72\x65\x64\x20\x71\x75\x65\x75\x65\x20\x63\x61\x6C\x6C\x73","\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x61\x6E\x73\x77\x65\x72\x65\x64","\x72\x65\x70\x6F\x72\x74\x5F\x61\x67\x65\x6E\x74","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x31\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x41\x67\x65\x6E\x74","\x41\x67\x65\x6E\x74\x20\x63\x61\x6C\x6C\x73\x20\x74\x69\x6D\x65\x72\x20\x48\x61\x6E\x64\x6C\x65\x20\x74\x69\x6D\x65\x3D\x20\x74\x61\x6C\x6B\x20\x74\x69\x6D\x65\x20\x2B\x20\x41\x43\x57\x20\x74\x69\x6D\x65","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x51\x75\x65\x75\x65\x20\x74\x69\x6D\x65\x72\x20\x48\x61\x6E\x64\x6C\x65\x20\x54\x69\x6D\x65\x3D\x20\x54\x61\x6C\x6B\x20\x54\x69\x6D\x65\x20\x2B\x20\x41\x56\x47\x20\x54\x49\x6D\x65","\x41\x6E\x73\x77\x65\x72\x20\x54\x69\x6D\x65\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x51\x75\x65\x75\x65\x73\x20\x61\x6E\x73\x77\x65\x72\x20\x74\x69\x6D\x65\x20\x70\x65\x72\x66\x6F\x72\x6D\x61\x6E\x63\x65","\x44\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x43\x61\x75\x73\x65","\x53\x75\x6D\x6D\x61\x72\x79\x20\x6F\x66\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x73\x20\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x63\x61\x75\x73\x65\x73","\x41\x6E\x73\x77\x65\x72\x20\x54\x69\x6D\x65\x20\x62\x79\x20\x48\x6F\x75\x72","\x41\x6E\x73\x77\x65\x72\x20\x74\x69\x6D\x65\x20\x20\x62\x79\x20\x68\x6F\x75\x72","\x44\x65\x74\x61\x69\x6C\x65\x64\x20\x72\x65\x70\x6F\x72\x74\x20\x61\x62\x6F\x75\x74\x20\x74\x68\x65\x20\x75\x6E\x61\x6E\x73\x77\x65\x72\x65\x64\x20\x63\x61\x6C\x6C\x73","\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x75\x6E\x61\x6E\x73\x77\x65\x72\x65\x64","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x30\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x55\x6E\x61\x6E\x73\x77\x65\x72\x65\x64\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x55\x6E\x61\x6E\x73\x77\x65\x72\x65\x64\x20\x63\x61\x6C\x6C\x73\x20\x73\x75\x6D\x6D\x61\x72\x79\x20\x62\x79\x20\x71\x75\x65\x75\x65","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x63\x61\x6C\x6C\x73","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x63\x61\x6C\x6C\x73\x20\x73\x75\x6D\x6D\x61\x72\x79","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x31\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x41\x62\x61\x6E\x64\x6F\x6E\x20\x54\x69\x6D\x65\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x41\x62\x61\x6E\x64\x6F\x6E\x20\x74\x69\x6D\x65\x20\x70\x65\x72\x66\x6F\x72\x6D\x61\x6E\x63\x65\x20\x62\x79\x20\x71\x75\x65\x75\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x31\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x44\x61\x74\x65","\x51\x75\x65\x75\x65\x20\x63\x61\x6C\x6C\x73\x20\x73\x75\x6D\x6D\x61\x72\x79\x20\x62\x79\x20\x64\x61\x74\x65","\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x48\x6F\x75\x72","\x43\x61\x6C\x6C\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E\x20\x62\x79\x20\x68\x6F\x75\x72","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x44\x61\x79","\x43\x61\x6C\x6C\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E\x20\x62\x79\x20\x64\x61\x79\x20\x6F\x66\x20\x74\x68\x65\x20\x6D\x6F\x6E\x74\x68","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x57\x65\x65\x6B\x64\x61\x79","\x43\x61\x6C\x6C\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E\x20\x62\x79\x20\x64\x61\x79\x20\x6F\x66\x20\x74\x68\x65\x20\x77\x65\x65\x6B","\x53\x75\x6D\x6D\x61\x72\x79","\x43\x61\x6C\x6C\x73\x20\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E\x20\x62\x79\x20\x71\x75\x65\x75\x65","\x43\x61\x6C\x6C\x73\x20\x64\x65\x74\x61\x69\x6C\x20\x28\x63\x64\x72\x29","\x5F\x76\x6F\x69\x63\x65\x5F\x63\x61\x6C\x6C\x73","\x72\x65\x70\x6F\x72\x74\x5F\x63\x61\x6C\x6C","\x4F\x75\x74\x62\x6F\x75\x6E\x64","\x4D\x61\x6E\x75\x61\x6C\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x64\x65\x74\x61\x69\x6C\x65\x64\x20\x72\x65\x70\x6F\x72\x74","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x6F\x75\x74\x62\x6F\x75\x6E\x64\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x54\x79\x70\x65","\x53\x75\x6D\x6D\x61\x72\x79\x20\x72\x65\x70\x6F\x72\x74\x20\x6F\x66\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x73\x20\x74\x79\x70\x65","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x43\x61\x6C\x6C\x73\x20\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x67\x72\x6F\x75\x70\x65\x64\x20\x62\x79\x20\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x41\x67\x65\x6E\x74","\x53\x75\x6D\x6D\x61\x72\x79\x20\x6F\x66\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x67\x72\x6F\x75\x70\x65\x64\x20\x62\x79\x20\x61\x67\x65\x6E\x74","\x4F\x75\x74\x62\x6F\x75\x6E\x64\x20\x43\x61\x6C\x6C\x73\x20\x62\x79\x20\x44\x61\x74\x65","\x53\x75\x6D\x6D\x61\x72\x79\x20\x6F\x66\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x67\x72\x6F\x75\x70\x65\x64\x20\x62\x79\x20\x64\x61\x74\x65","\x4C\x6F\x67\x69\x6E\x20\x54\x69\x6D\x65","\x41\x67\x65\x6E\x74\x27\x73\x20\x6C\x6F\x67\x69\x6E\x20\x74\x69\x6D\x65","\x5F\x61\x67\x65\x6E\x74\x73","\x72\x65\x70\x6F\x72\x74\x5F\x6D\x65\x6D\x62\x65\x72","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x4C\x4F\x47\x49\x4E\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x76\x6F\x69\x63\x65\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x41\x63\x74\x69\x76\x69\x74\x69\x65\x73\x20\x53\x75\x6D\x6D\x61\x72\x79","\x41\x67\x65\x6E\x74\x27\x73\x20\x61\x63\x74\x69\x76\x69\x74\x69\x65\x73\x20\x72\x65\x70\x6F\x72\x74","\x5F\x76\x6F\x69\x63\x65\x5F\x61\x67\x65\x6E\x74\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x76\x6F\x69\x63\x65\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x50\x61\x75\x73\x65\x20\x44\x65\x74\x61\x69\x6C\x73","\x41\x67\x65\x6E\x74\x73\x20\x73\x74\x61\x74\x75\x73\x20\x64\x65\x74\x61\x69\x6C\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x76\x6F\x69\x63\x65\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x50\x41\x55\x53\x45\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x41\x67\x65\x6E\x74\x27\x73\x20\x73\x74\x61\x74\x75\x73\x20\x64\x65\x74\x61\x69\x6C","\x50\x61\x75\x73\x65\x20\x54\x69\x6D\x65","\x41\x67\x65\x6E\x74\x27\x73\x20\x70\x61\x75\x73\x65\x20\x74\x69\x6D\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x50\x41\x55\x53\x45\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x68\x61\x6E\x6E\x65\x6C\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x76\x6F\x69\x63\x65\x27\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x79\x53\x71\x75\x61\x72\x65\x20\x53\x75\x6D\x6D\x61\x72\x79","\x5F\x76\x6F\x69\x63\x65\x5F\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65","\x42\x6C\x6F\x63\x6B\x73","\x43\x61\x6C\x6C\x79\x53\x71\x75\x61\x72\x65\x20\x42\x6C\x6F\x63\x6B\x73\x20\x44\x65\x74\x61\x69\x6C","\x72\x65\x70\x6F\x72\x74\x5F\x73\x71\x75\x61\x72\x65\x5F\x64\x65\x74\x61\x69\x6C\x73","\x52\x61\x74\x69\x6E\x67\x20\x62\x79\x20\x41\x67\x65\x6E\x74","\x52\x65\x63\x6F\x72\x64\x73\x20\x72\x61\x74\x69\x6E\x67\x20\x62\x79\x20\x61\x67\x65\x6E\x74","\x5F\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x76\x6F\x69\x63\x65\x5F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3E\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x72\x61\x74\x69\x6E\x67\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x30\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","\x52\x61\x74\x69\x6E\x67\x20\x62\x79\x20\x51\x75\x65\x75\x65","\x52\x65\x63\x6F\x72\x64\x73\x20\x72\x61\x74\x69\x6E\x67\x20\x62\x79\x20\x71\x75\x65\x75\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x71\x75\x65\x75\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x66\x61\x6C\x73\x65\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3E\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x72\x61\x74\x69\x6E\x67\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x30\x22\x2C\x22\x72\x65\x71\x75\x69\x72\x65\x64\x22\x3A\x74\x72\x75\x65\x7D\x5D\x7D\x7D","","\x5F\x62\x75\x6C\x6C\x5F\x71\x75\x65\x75\x65\x5F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x71\x75\x65\x75\x65\x27\x22\x7D\x5D\x7D\x7D","\x43\x61\x6C\x6C\x73\x20\x53\x75\x6D\x6D\x61\x72\x79","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x43\x61\x6D\x70\x61\x69\x67\x6E\x20\x43\x61\x6C\x6C\x73","\x4C\x69\x73\x74\x20\x50\x65\x6E\x65\x74\x72\x61\x74\x69\x6F\x6E\x20\x52\x61\x74\x65","\x41\x67\x65\x6E\x74\x20\x43\x61\x6C\x6C\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x71\x75\x65\x75\x65\x27\x22\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x73\x74\x61\x74\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x34\x22\x7D\x5D\x7D\x7D","\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x20\x52\x61\x74\x65","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x71\x75\x65\x75\x65\x27\x22\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x49\x53\x20\x4E\x4F\x54\x20\x4E\x55\x4C\x4C\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x22\x7D\x2C\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x73\x74\x61\x74\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x34\x22\x7D\x5D\x7D\x7D","\x41\x67\x65\x6E\x74\x20\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x20\x52\x61\x74\x65","\x5F\x62\x75\x6C\x6C\x5F\x69\x76\x72\x5F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x7B\x22\x67\x72\x6F\x75\x70\x22\x3A\x7B\x22\x6F\x70\x65\x72\x61\x74\x6F\x72\x22\x3A\x22\x41\x4E\x44\x22\x2C\x22\x72\x75\x6C\x65\x73\x22\x3A\x5B\x7B\x22\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x22\x3A\x22\x3D\x22\x2C\x22\x66\x69\x65\x6C\x64\x22\x3A\x22\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x22\x2C\x22\x76\x61\x6C\x75\x65\x22\x3A\x22\x27\x69\x76\x72\x27\x22\x7D\x5D\x7D\x7D"];_0xbf60[0];module[_0xbf60[1]]= function(_0x8ba3x1){return [{id:1,name:_0xbf60[2],description:_0xbf60[3],parent:_0x8ba3x1+ _0xbf60[4],table:_0xbf60[5],conditions:_0xbf60[6]},{id:2,name:_0xbf60[7],description:_0xbf60[8],parent:_0x8ba3x1+ _0xbf60[4],table:_0xbf60[5],conditions:_0xbf60[6]},{id:3,name:_0xbf60[2],description:_0xbf60[9],parent:_0x8ba3x1+ _0xbf60[10],table:_0xbf60[11],conditions:_0xbf60[12]},{id:4,name:_0xbf60[13],description:_0xbf60[14],parent:_0x8ba3x1+ _0xbf60[10],table:_0xbf60[11],conditions:_0xbf60[12]},{id:5,name:_0xbf60[15],description:_0xbf60[16],parent:_0x8ba3x1+ _0xbf60[10],table:_0xbf60[11],conditions:_0xbf60[12]},{id:6,name:_0xbf60[17],description:_0xbf60[18],parent:_0x8ba3x1+ _0xbf60[10],table:_0xbf60[11],conditions:_0xbf60[12]},{id:7,name:_0xbf60[19],description:_0xbf60[20],parent:_0x8ba3x1+ _0xbf60[10],table:_0xbf60[11],conditions:_0xbf60[12]},{id:8,name:_0xbf60[21],description:_0xbf60[22],parent:_0x8ba3x1+ _0xbf60[10],table:_0xbf60[11],conditions:_0xbf60[12]},{id:9,name:_0xbf60[2],description:_0xbf60[23],parent:_0x8ba3x1+ _0xbf60[24],table:_0xbf60[5],conditions:_0xbf60[25]},{id:10,name:_0xbf60[26],description:_0xbf60[27],parent:_0x8ba3x1+ _0xbf60[24],table:_0xbf60[5],conditions:_0xbf60[25]},{id:11,name:_0xbf60[28],description:_0xbf60[29],parent:_0x8ba3x1+ _0xbf60[24],table:_0xbf60[5],conditions:_0xbf60[30]},{id:12,name:_0xbf60[31],description:_0xbf60[32],parent:_0x8ba3x1+ _0xbf60[24],table:_0xbf60[5],conditions:_0xbf60[33]},{id:13,name:_0xbf60[34],description:_0xbf60[35],parent:_0x8ba3x1+ _0xbf60[36],table:_0xbf60[5],conditions:_0xbf60[6]},{id:14,name:_0xbf60[37],description:_0xbf60[38],parent:_0x8ba3x1+ _0xbf60[36],table:_0xbf60[5],conditions:_0xbf60[6]},{id:15,name:_0xbf60[39],description:_0xbf60[40],parent:_0x8ba3x1+ _0xbf60[36],table:_0xbf60[5],conditions:_0xbf60[6]},{id:16,name:_0xbf60[41],description:_0xbf60[42],parent:_0x8ba3x1+ _0xbf60[36],table:_0xbf60[5],conditions:_0xbf60[6]},{id:17,name:_0xbf60[43],description:_0xbf60[44],parent:_0x8ba3x1+ _0xbf60[4],table:_0xbf60[5],conditions:_0xbf60[6]},{id:18,name:_0xbf60[2],description:_0xbf60[45],parent:_0x8ba3x1+ _0xbf60[46],table:_0xbf60[47],conditions:_0xbf60[6]},{id:19,name:_0xbf60[48],description:_0xbf60[49],parent:_0x8ba3x1+ _0xbf60[46],table:_0xbf60[47],conditions:_0xbf60[50]},{id:20,name:_0xbf60[51],description:_0xbf60[52],parent:_0x8ba3x1+ _0xbf60[46],table:_0xbf60[47],conditions:_0xbf60[6]},{id:21,name:_0xbf60[53],description:_0xbf60[54],parent:_0x8ba3x1+ _0xbf60[46],table:_0xbf60[47],conditions:_0xbf60[50]},{id:22,name:_0xbf60[55],description:_0xbf60[56],parent:_0x8ba3x1+ _0xbf60[46],table:_0xbf60[47],conditions:_0xbf60[50]},{id:23,name:_0xbf60[57],description:_0xbf60[58],parent:_0x8ba3x1+ _0xbf60[46],table:_0xbf60[47],conditions:_0xbf60[50]},{id:24,name:_0xbf60[59],description:_0xbf60[60],parent:_0x8ba3x1+ _0xbf60[61],table:_0xbf60[62],conditions:_0xbf60[63]},{id:25,name:_0xbf60[64],description:_0xbf60[65],parent:_0x8ba3x1+ _0xbf60[66],table:_0xbf60[62],conditions:_0xbf60[67]},{id:26,name:_0xbf60[68],description:_0xbf60[69],parent:_0x8ba3x1+ _0xbf60[66],table:_0xbf60[62],conditions:_0xbf60[70]},{id:27,name:_0xbf60[2],description:_0xbf60[71],parent:_0x8ba3x1+ _0xbf60[66],table:_0xbf60[62],conditions:_0xbf60[67]},{id:28,name:_0xbf60[72],description:_0xbf60[73],parent:_0x8ba3x1+ _0xbf60[66],table:_0xbf60[62],conditions:_0xbf60[74]},{id:29,name:_0xbf60[43],description:_0xbf60[75],parent:_0x8ba3x1+ _0xbf60[76],table:_0xbf60[77],conditions:_0xbf60[6]},{id:30,name:_0xbf60[78],description:_0xbf60[79],parent:_0x8ba3x1+ _0xbf60[76],table:_0xbf60[80],conditions:_0xbf60[6]},{id:31,name:_0xbf60[81],description:_0xbf60[82],parent:_0x8ba3x1+ _0xbf60[83],table:_0xbf60[84],conditions:_0xbf60[85]},{id:32,name:_0xbf60[86],description:_0xbf60[87],parent:_0x8ba3x1+ _0xbf60[83],table:_0xbf60[84],conditions:_0xbf60[88]},{id:33,name:_0xbf60[2],description:_0xbf60[89],parent:_0x8ba3x1+ _0xbf60[90],table:_0xbf60[91],conditions:_0xbf60[92]},{id:34,name:_0xbf60[93],description:_0xbf60[89],parent:_0x8ba3x1+ _0xbf60[90],table:_0xbf60[94],conditions:_0xbf60[92]},{id:35,name:_0xbf60[95],description:_0xbf60[89],parent:_0x8ba3x1+ _0xbf60[90],table:_0xbf60[91],conditions:_0xbf60[92]},{id:36,name:_0xbf60[96],description:_0xbf60[89],parent:_0x8ba3x1+ _0xbf60[90],table:_0xbf60[91],conditions:_0xbf60[92]},{id:37,name:_0xbf60[97],description:_0xbf60[89],parent:_0x8ba3x1+ _0xbf60[90],table:_0xbf60[91],conditions:_0xbf60[98]},{id:38,name:_0xbf60[99],description:_0xbf60[89],parent:_0x8ba3x1+ _0xbf60[90],table:_0xbf60[91],conditions:_0xbf60[100]},{id:39,name:_0xbf60[101],description:_0xbf60[89],parent:_0x8ba3x1+ _0xbf60[90],table:_0xbf60[91],conditions:_0xbf60[100]},{id:40,name:_0xbf60[2],description:_0xbf60[89],parent:_0x8ba3x1+ _0xbf60[102],table:_0xbf60[91],conditions:_0xbf60[103]},{id:41,name:_0xbf60[93],description:_0xbf60[89],parent:_0x8ba3x1+ _0xbf60[102],table:_0xbf60[94],conditions:_0xbf60[103]},{id:42,name:_0xbf60[95],description:_0xbf60[89],parent:_0x8ba3x1+ _0xbf60[102],table:_0xbf60[91],conditions:_0xbf60[103]},{id:43,name:_0xbf60[96],description:_0xbf60[89],parent:_0x8ba3x1+ _0xbf60[102],table:_0xbf60[91],conditions:_0xbf60[103]}]}
\ No newline at end of file
diff --git a/server/config/seedDB/report/fields.js b/server/config/seedDB/report/fields.js
new file mode 100644 (file)
index 0000000..3ab48dd
--- /dev/null
@@ -0,0 +1 @@
+var _0x751f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x65\x78\x70\x6F\x72\x74\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x55\x6E\x69\x71\x75\x65\x49\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x71\x75\x65\x75\x65","\x51\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x51\x75\x65\x75\x65\x4A\x6F\x69\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x51\x75\x65\x75\x65\x4C\x65\x61\x76\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x51\x75\x65\x75\x65\x41\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x51\x75\x65\x75\x65\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x51\x75\x65\x75\x65\x45\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x51\x75\x65\x75\x65\x45\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x72\x65\x61\x73\x6F\x6E","\x51\x75\x65\x75\x65\x45\x78\x69\x74\x52\x65\x61\x73\x6F\x6E","\x65\x78\x74\x65\x6E","\x44\x49\x44","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74\x29","\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x54\x69\x6D\x65","\x49\x46\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x3D\x31\x2C\x68\x6F\x6C\x64\x74\x69\x6D\x65\x2C\x6E\x75\x6C\x6C\x29","\x41\x6E\x73\x77\x65\x72\x54\x69\x6D\x65","\x43\x61\x6C\x6C\x65\x72\x49\x44","\x53\x74\x61\x72\x74\x54\x69\x6D\x65","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x3D\x31\x20\x54\x48\x45\x4E\x20\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74\x20\x45\x4C\x53\x45\x20\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x4C\x65\x61\x76\x65\x41\x74\x20\x45\x4E\x44","\x45\x6E\x64\x54\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x3D\x31\x20\x54\x48\x45\x4E\x20\x27\x59\x45\x53\x27\x20\x45\x4C\x53\x45\x20\x27\x4E\x4F\x27\x20\x45\x4E\x44","\x41\x6E\x73\x77\x65\x72\x65\x64","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x41\x67\x65\x6E\x74","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64\x41\x74","\x41\x67\x65\x6E\x74\x43\x61\x6C\x6C\x65\x64\x41\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x61\x67\x65\x6E\x74\x61\x63\x77","\x41\x67\x65\x6E\x74\x41\x43\x57","\x61\x63\x77\x74\x69\x6D\x65","\x41\x67\x65\x6E\x74\x41\x43\x57\x54\x69\x6D\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x72\x65\x61\x73\x6F\x6E","\x48\x61\x6E\x67\x75\x70\x52\x65\x61\x73\x6F\x6E","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x4C\x61\x73\x74\x45\x76\x65\x6E\x74","\x43\x6F\x6D\x70\x6C\x65\x74\x65\x64","\x53\x55\x4D","\x54\x6F\x74\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x54\x6F\x74\x41\x43\x57\x54\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65\x20\x2B\x20\x61\x63\x77\x74\x69\x6D\x65","\x54\x6F\x74\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x74\x61\x6C\x6B\x74\x69\x6D\x65\x29\x29","\x41\x76\x67\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x61\x63\x77\x74\x69\x6D\x65\x29\x29","\x41\x76\x67\x41\x43\x57\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x53\x55\x4D\x28\x74\x61\x6C\x6B\x74\x69\x6D\x65\x20\x2B\x20\x61\x63\x77\x74\x69\x6D\x65\x29\x2F\x43\x4F\x55\x4E\x54\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x29","\x41\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x54\x6F\x74\x20\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x54\x6F\x74\x20\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x54\x6F\x74\x20\x41\x43\x57\x54\x69\x6D\x65","\x54\x6F\x74\x20\x48\x61\x6E\x64\x6C\x65\x20\x54\x69\x6D\x65","\x41\x76\x67\x20\x54\x61\x6C\x6B\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x29\x29","\x41\x76\x67\x20\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x41\x76\x67\x20\x41\x43\x57\x54\x69\x6D\x65","\x41\x76\x67\x20\x48\x61\x6E\x64\x6C\x65\x20\x54\x69\x6D\x65","\x54\x6F\x74\x20\x41\x6E\x73\x77\x65\x72\x65\x64","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x3C\x31\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x6E\x73\x77\x65\x72\x65\x64\x20\x3C\x31\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x3C\x31\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65\x20\x3C\x31\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x31\x30\x20\x41\x4E\x44\x20\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3C\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x6E\x73\x77\x65\x72\x65\x64\x20\x31\x30\x2D\x32\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x31\x30\x20\x41\x4E\x44\x20\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3C\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65\x20\x31\x30\x2D\x32\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x32\x30\x20\x41\x4E\x44\x20\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3C\x33\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x6E\x73\x77\x65\x72\x65\x64\x20\x32\x30\x2D\x33\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x32\x30\x20\x41\x4E\x44\x20\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3C\x33\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65\x20\x32\x30\x2D\x33\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x33\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x6E\x73\x77\x65\x72\x65\x64\x20\x3E\x33\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x68\x6F\x6C\x64\x74\x69\x6D\x65\x20\x3E\x3D\x33\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65\x20\x3E\x33\x30\x73","\x52\x65\x61\x73\x6F\x6E","\x43\x61\x6C\x6C\x73","\x43\x4F\x55\x4E\x54","\x48\x6F\x75\x72","\x48\x4F\x55\x52","\x4A\x6F\x69\x6E\x41\x74","\x4C\x65\x61\x76\x65\x41\x74","\x41\x62\x61\x6E\x64\x6F\x6E","\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x41\x74","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x52\x65\x61\x73\x6F\x6E","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x51\x75\x65\x75\x65\x50\x6F\x73\x69\x74\x69\x6F\x6E","\x41\x62\x61\x6E\x64\x6F\x6E\x20\x54\x69\x6D\x65","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x45\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29","\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x54\x6F\x74\x20\x41\x62\x61\x6E\x64\x6F\x6E\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x29\x29","\x41\x76\x67\x41\x62\x61\x6E\x64\x6F\x6E\x54\x69\x6D\x65","\x54\x6F\x74\x20\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x54\x69\x6D\x65","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x45\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x29\x29","\x41\x76\x67\x20\x55\x6E\x6D\x61\x6E\x61\x67\x65\x64\x20\x54\x49\x6D\x65","\x54\x6F\x74\x20\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x31\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x3C\x31\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x31\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x2F\x20\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x52\x61\x74\x65\x3C\x31\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x31\x30\x20\x41\x4E\x44\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x36\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x31\x30\x2D\x36\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x31\x30\x20\x41\x4E\x44\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x36\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x20\x2F\x20\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x52\x61\x74\x65\x20\x31\x30\x2D\x36\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x36\x30\x20\x41\x4E\x44\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x31\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x36\x30\x2D\x31\x32\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x36\x30\x20\x41\x4E\x44\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3C\x31\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x20\x20\x2F\x20\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x52\x61\x74\x65\x20\x36\x30\x2D\x31\x32\x30\x73","\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x31\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x3E\x31\x32\x30\x73","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x49\x46\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74\x29\x20\x3E\x3D\x31\x32\x30\x2C\x31\x2C\x4E\x55\x4C\x4C\x29\x29\x20\x20\x2F\x20\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x29\x20\x2A\x31\x30\x30\x2C\x31\x29","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64\x20\x52\x61\x74\x65\x3E\x31\x32\x30\x73","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x61\x74","\x44\x61\x74\x65","\x44\x41\x54\x45","\x4F\x66\x66\x65\x72\x65\x64","\x43\x4F\x55\x4E\x54\x20\x44\x49\x53\x54\x49\x4E\x43\x54","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74\x29\x29\x29","\x52\x4F\x55\x4E\x44\x28\x53\x55\x4D\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x29\x2F\x43\x4F\x55\x4E\x54\x28\x44\x49\x53\x54\x49\x4E\x43\x54\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x29\x2A\x31\x30\x30\x2C\x31\x29","\x41\x6E\x73\x77\x65\x72\x20\x52\x61\x74\x65","\x44\x41\x59\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x61\x74\x29","\x44\x61\x79","\x44\x41\x59\x4E\x41\x4D\x45\x28\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x61\x74\x29","\x44\x61\x79\x4F\x66\x57\x65\x65\x6B","\x41\x53\x43","\x55\x6E\x69\x71\x75\x65\x49\x44","\x74\x79\x70\x65","\x54\x79\x70\x65","\x74\x61\x67","\x54\x61\x67","\x73\x6F\x75\x72\x63\x65","\x53\x6F\x75\x72\x63\x65","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x44\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x44\x65\x73\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x6C\x61\x73\x74\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x4C\x61\x73\x74\x41\x70\x70","\x6C\x61\x73\x74\x64\x61\x74\x61","\x4C\x61\x73\x74\x44\x61\x74\x61","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x44\x75\x72\x61\x74\x69\x6F\x6E","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x41\x67\x65\x6E\x74\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x43\x61\x6C\x6C\x65\x72\x49\x64","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x42\x69\x6C\x6C\x73\x65\x63","\x54\x6F\x74\x20\x44\x75\x72\x61\x74\x69\x6F\x6E","\x52\x4F\x55\x4E\x44\x28\x41\x56\x47\x28\x64\x75\x72\x61\x74\x69\x6F\x6E\x29\x29","\x41\x76\x67\x20\x44\x75\x72\x61\x74\x69\x6F\x6E","\x53\x55\x42\x53\x54\x52\x49\x4E\x47\x5F\x49\x4E\x44\x45\x58\x28\x63\x68\x61\x6E\x6E\x65\x6C\x2C\x20\x22\x2D\x22\x2C\x20\x31\x29","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x6E\x74\x65\x72\x41\x74\x29","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x74\x79\x70\x65\x3D\x27\x4C\x4F\x47\x49\x4E\x27\x20\x54\x48\x45\x4E\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x6E\x74\x65\x72\x41\x74\x29\x20\x45\x4E\x44","\x4C\x6F\x67\x69\x6E\x20\x54\x69\x6D\x65","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x74\x79\x70\x65\x3D\x27\x54\x41\x4C\x4B\x49\x4E\x47\x27\x20\x54\x48\x45\x4E\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x6E\x74\x65\x72\x41\x74\x29\x20\x45\x4E\x44","\x54\x61\x6C\x6B\x20\x54\x69\x6D\x65","\x43\x41\x53\x45\x20\x57\x48\x45\x4E\x20\x74\x79\x70\x65\x3D\x27\x50\x41\x55\x53\x45\x27\x20\x54\x48\x45\x4E\x20\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x78\x69\x74\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x65\x6E\x74\x65\x72\x41\x74\x29\x20\x45\x4E\x44","\x50\x61\x75\x73\x65\x20\x54\x69\x6D\x65","\x65\x6E\x74\x65\x72\x41\x74","\x45\x6E\x74\x65\x72\x41\x74","\x65\x78\x69\x74\x41\x74","\x45\x78\x69\x74\x41\x74","\x64\x61\x74\x61\x31","\x50\x61\x75\x73\x65","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x45\x76\x65\x6E\x74","\x50\x61\x75\x73\x65\x54\x79\x70\x65","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x6E\x61\x6D\x65","\x50\x72\x6F\x6A\x65\x63\x74\x20\x4E\x61\x6D\x65","\x64\x6E\x69\x64","\x6A\x6F\x69\x6E\x41\x74","\x53\x74\x61\x72\x74\x20\x54\x69\x6D\x65","\x6C\x65\x61\x76\x65\x41\x74","\x45\x6E\x64\x20\x54\x69\x6D\x65","\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x6C\x65\x61\x76\x65\x41\x74\x29\x2D\x55\x4E\x49\x58\x5F\x54\x49\x4D\x45\x53\x54\x41\x4D\x50\x28\x6A\x6F\x69\x6E\x41\x74\x29","\x55\x6E\x69\x71\x75\x65\x20\x49\x64","\x43\x61\x6C\x6C\x65\x72\x20\x49\x64","\x6E\x6F\x64\x65","\x42\x6C\x6F\x63\x6B","\x64\x61\x74\x61","\x44\x61\x74\x61","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x52\x65\x63\x6F\x72\x64\x65\x64\x20\x43\x61\x6C\x6C\x73","\x72\x61\x74\x69\x6E\x67","\x54\x6F\x74\x61\x6C\x20\x52\x61\x74\x69\x6E\x67","\x41\x76\x67\x20\x52\x61\x74\x69\x6E\x67","\x41\x56\x47","\x52\x61\x74\x65\x64\x20\x43\x61\x6C\x6C\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x43\x61\x6D\x70\x61\x69\x67\x6E\x20\x4E\x61\x6D\x65","\x4C\x61\x73\x74\x43\x61\x6C\x6C\x41\x74","\x44\x45\x53\x43","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x53\x74\x61\x74\x65","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x47\x6C\x6F\x62\x61\x6C\x20\x43\x6F\x75\x6E\x74","\x64\x72\x6F\x70\x72\x65\x61\x73\x6F\x6E","\x44\x72\x6F\x70\x20\x52\x65\x61\x73\x6F\x6E","\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74","\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74","\x69\x64","\x52\x4F\x55\x4E\x44\x28\x63\x6F\x75\x6E\x74\x28\x69\x64\x29\x2A\x31\x30\x30\x2F\x28\x53\x45\x4C\x45\x43\x54\x20\x43\x4F\x55\x4E\x54\x28\x2A\x29\x20\x46\x52\x4F\x4D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79\x20\x57\x48\x45\x52\x45\x20\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x3D\x27\x71\x75\x65\x75\x65\x27\x29\x2C\x32\x29","\x43\x61\x6C\x6C\x73\x20\x28\x25\x29","\x54\x6F\x74\x61\x6C\x20\x43\x61\x6C\x6C\x73","\x4C\x69\x73\x74\x49\x64","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x53\x55\x4D\x28\x49\x46\x28\x73\x74\x61\x74\x65\x3D\x34\x2C\x31\x2C\x30\x29\x29","\x4D\x61\x6E\x61\x67\x65\x64","\x52\x4F\x55\x4E\x44\x28\x53\x55\x4D\x28\x49\x46\x28\x73\x74\x61\x74\x65\x3D\x34\x2C\x31\x2C\x30\x29\x29\x2F\x43\x4F\x55\x4E\x54\x28\x2A\x29\x2A\x31\x30\x30\x2C\x31\x29","\x50\x65\x6E\x65\x74\x72\x61\x74\x69\x6F\x6E\x20\x52\x61\x74\x65","\x53\x45\x43\x5F\x54\x4F\x5F\x54\x49\x4D\x45\x28\x41\x56\x47\x28\x74\x61\x6C\x6B\x74\x69\x6D\x65\x29\x29","\x41\x56\x47\x20\x54\x61\x6C\x6B\x20\x54\x69\x6D\x65","\x54\x6F\x74\x61\x6C","\x52\x4F\x55\x4E\x44\x28\x43\x4F\x55\x4E\x54\x28\x69\x64\x29\x2A\x31\x30\x30\x2F\x28\x53\x45\x4C\x45\x43\x54\x20\x43\x4F\x55\x4E\x54\x28\x2A\x29\x20\x46\x52\x4F\x4D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C\x20\x57\x48\x45\x52\x45\x20\x73\x74\x61\x74\x65\x3D\x34\x20\x61\x6E\x64\x20\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x3D\x27\x71\x75\x65\x75\x65\x27\x29\x2C\x32\x29","\x54\x6F\x74\x61\x6C\x20\x28\x25\x29","\x52\x4F\x55\x4E\x44\x28\x63\x6F\x75\x6E\x74\x28\x69\x64\x29\x2A\x31\x30\x30\x2F\x28\x53\x45\x4C\x45\x43\x54\x20\x43\x4F\x55\x4E\x54\x28\x2A\x29\x20\x46\x52\x4F\x4D\x20\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79\x20\x57\x48\x45\x52\x45\x20\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65\x3D\x27\x69\x76\x72\x27\x29\x2C\x32\x29","\x52\x65\x70\x6F\x72\x74\x49\x64","\x67\x72\x6F\x75\x70\x42\x79"];_0x751f[0];var _=require(_0x751f[1]);module[_0x751f[2]]= function(){var _0x7479x2=[{field:_0x751f[3],alias:_0x751f[4],ReportId:1},{field:_0x751f[5],alias:_0x751f[6],ReportId:1},{field:_0x751f[7],alias:_0x751f[8],ReportId:1},{field:_0x751f[9],alias:_0x751f[10],ReportId:1},{field:_0x751f[11],alias:_0x751f[12],ReportId:1},{field:_0x751f[13],alias:_0x751f[14],ReportId:1},{field:_0x751f[15],alias:_0x751f[16],ReportId:1},{field:_0x751f[17],alias:_0x751f[18],ReportId:1},{field:_0x751f[19],alias:_0x751f[20],ReportId:1},{field:_0x751f[21],alias:_0x751f[22],ReportId:1},{field:_0x751f[23],alias:_0x751f[24],ReportId:1},{field:_0x751f[25],alias:_0x751f[26],ReportId:1},{field:_0x751f[27],alias:_0x751f[28],ReportId:1},{field:_0x751f[29],alias:_0x751f[30],ReportId:1},{field:_0x751f[31],alias:_0x751f[32],format:_0x751f[33],custom:1,ReportId:1},{field:_0x751f[34],alias:_0x751f[35],format:_0x751f[33],custom:1,ReportId:1},{field:_0x751f[36],alias:_0x751f[37],format:_0x751f[33],custom:1,ReportId:1},{field:_0x751f[5],alias:_0x751f[38],ReportId:2},{field:_0x751f[9],alias:_0x751f[10],ReportId:2},{field:_0x751f[11],alias:_0x751f[39],ReportId:2},{field:_0x751f[40],alias:_0x751f[41],custom:1,ReportId:2},{field:_0x751f[42],alias:_0x751f[43],format:_0x751f[33],ReportId:2},{field:_0x751f[44],alias:_0x751f[45],custom:1,ReportId:2},{field:_0x751f[3],alias:_0x751f[4],ReportId:3},{field:_0x751f[5],alias:_0x751f[6],ReportId:3},{field:_0x751f[7],alias:_0x751f[8],ReportId:3},{field:_0x751f[9],alias:_0x751f[10],ReportId:3},{field:_0x751f[46],alias:_0x751f[47],ReportId:3},{field:_0x751f[48],alias:_0x751f[49],ReportId:3},{field:_0x751f[50],alias:_0x751f[51],ReportId:3},{field:_0x751f[52],alias:_0x751f[53],ReportId:3},{field:_0x751f[42],alias:_0x751f[37],ReportId:3},{field:_0x751f[54],alias:_0x751f[32],ReportId:3},{field:_0x751f[55],alias:_0x751f[56],ReportId:3},{field:_0x751f[57],alias:_0x751f[58],ReportId:3},{field:_0x751f[59],alias:_0x751f[60],ReportId:3},{field:_0x751f[61],alias:_0x751f[62],ReportId:3},{field:_0x751f[63],alias:_0x751f[64],ReportId:3},{field:_0x751f[29],alias:_0x751f[30],ReportId:3},{field:_0x751f[46],alias:_0x751f[47],groupBy:1,ReportId:4},{field:_0x751f[59],alias:_0x751f[65],function:_0x751f[66],ReportId:4},{field:_0x751f[54],alias:_0x751f[67],function:_0x751f[66],format:_0x751f[33],ReportId:4},{field:_0x751f[57],alias:_0x751f[68],function:_0x751f[66],format:_0x751f[33],ReportId:4},{field:_0x751f[69],alias:_0x751f[70],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:4},{field:_0x751f[71],alias:_0x751f[72],format:_0x751f[33],custom:1,ReportId:4},{field:_0x751f[73],alias:_0x751f[74],format:_0x751f[33],custom:1,ReportId:4},{field:_0x751f[75],alias:_0x751f[76],format:_0x751f[33],custom:1,ReportId:4},{field:_0x751f[9],alias:_0x751f[10],groupBy:1,ReportId:5},{field:_0x751f[59],alias:_0x751f[65],function:_0x751f[66],ReportId:5},{field:_0x751f[54],alias:_0x751f[77],function:_0x751f[66],format:_0x751f[33],ReportId:5},{field:_0x751f[42],alias:_0x751f[78],function:_0x751f[66],format:_0x751f[33],ReportId:5},{field:_0x751f[57],alias:_0x751f[79],function:_0x751f[66],format:_0x751f[33],ReportId:5},{field:_0x751f[69],alias:_0x751f[80],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:5},{field:_0x751f[71],alias:_0x751f[81],format:_0x751f[33],custom:1,ReportId:5},{field:_0x751f[82],alias:_0x751f[83],format:_0x751f[33],custom:1,ReportId:5},{field:_0x751f[73],alias:_0x751f[84],format:_0x751f[33],custom:1,ReportId:5},{field:_0x751f[75],alias:_0x751f[85],format:_0x751f[33],custom:1,ReportId:5},{field:_0x751f[9],alias:_0x751f[10],groupBy:1,ReportId:6},{field:_0x751f[59],alias:_0x751f[86],function:_0x751f[66],ReportId:6},{field:_0x751f[87],alias:_0x751f[88],custom:1,ReportId:6},{field:_0x751f[89],alias:_0x751f[90],custom:1,ReportId:6},{field:_0x751f[91],alias:_0x751f[92],custom:1,ReportId:6},{field:_0x751f[93],alias:_0x751f[94],custom:1,ReportId:6},{field:_0x751f[95],alias:_0x751f[96],custom:1,ReportId:6},{field:_0x751f[97],alias:_0x751f[98],custom:1,ReportId:6},{field:_0x751f[99],alias:_0x751f[100],custom:1,ReportId:6},{field:_0x751f[101],alias:_0x751f[102],custom:1,ReportId:6},{field:_0x751f[61],alias:_0x751f[103],groupBy:1,ReportId:7},{field:_0x751f[3],alias:_0x751f[104],function:_0x751f[105],ReportId:7},{field:_0x751f[50],alias:_0x751f[106],format:_0x751f[107],groupBy:1,ReportId:8},{field:_0x751f[59],alias:_0x751f[86],function:_0x751f[66],ReportId:8},{field:_0x751f[87],alias:_0x751f[88],custom:1,ReportId:8},{field:_0x751f[91],alias:_0x751f[92],custom:1,ReportId:8},{field:_0x751f[95],alias:_0x751f[96],custom:1,ReportId:8},{field:_0x751f[99],alias:_0x751f[100],custom:1,ReportId:8},{field:_0x751f[3],alias:_0x751f[4],ReportId:9},{field:_0x751f[5],alias:_0x751f[6],ReportId:9},{field:_0x751f[9],alias:_0x751f[10],ReportId:9},{field:_0x751f[11],alias:_0x751f[108],ReportId:9},{field:_0x751f[13],alias:_0x751f[109],ReportId:9},{field:_0x751f[15],alias:_0x751f[110],ReportId:9},{field:_0x751f[17],alias:_0x751f[111],ReportId:9},{field:_0x751f[23],alias:_0x751f[112],ReportId:9},{field:_0x751f[25],alias:_0x751f[113],ReportId:9},{field:_0x751f[27],alias:_0x751f[114],ReportId:9},{field:_0x751f[115],alias:_0x751f[116],ReportId:9},{field:_0x751f[29],alias:_0x751f[30],ReportId:9},{field:_0x751f[34],alias:_0x751f[117],format:_0x751f[33],custom:1,ReportId:9},{field:_0x751f[118],alias:_0x751f[119],format:_0x751f[33],custom:1,ReportId:9},{field:_0x751f[9],alias:_0x751f[10],groupBy:1,ReportId:10},{field:_0x751f[15],alias:_0x751f[120],function:_0x751f[66],ReportId:10},{field:_0x751f[23],alias:_0x751f[112],function:_0x751f[66],ReportId:10},{field:_0x751f[34],alias:_0x751f[121],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:10},{field:_0x751f[122],alias:_0x751f[123],format:_0x751f[33],custom:1,ReportId:10},{field:_0x751f[118],alias:_0x751f[124],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:10},{field:_0x751f[125],alias:_0x751f[126],format:_0x751f[33],custom:1,ReportId:10},{field:_0x751f[27],alias:_0x751f[103],groupBy:1,ReportId:11},{field:_0x751f[23],alias:_0x751f[104],function:_0x751f[66],ReportId:11},{field:_0x751f[118],alias:_0x751f[124],function:_0x751f[66],custom:1,ReportId:11},{field:_0x751f[9],alias:_0x751f[10],groupBy:1,ReportId:12},{field:_0x751f[15],alias:_0x751f[127],function:_0x751f[66],ReportId:12},{field:_0x751f[128],alias:_0x751f[129],custom:1,ReportId:12},{field:_0x751f[130],alias:_0x751f[131],custom:1,ReportId:12},{field:_0x751f[132],alias:_0x751f[133],custom:1,ReportId:12},{field:_0x751f[134],alias:_0x751f[135],custom:1,ReportId:12},{field:_0x751f[136],alias:_0x751f[137],custom:1,ReportId:12},{field:_0x751f[138],alias:_0x751f[139],custom:1,ReportId:12},{field:_0x751f[140],alias:_0x751f[141],custom:1,ReportId:12},{field:_0x751f[142],alias:_0x751f[143],custom:1,ReportId:12},{field:_0x751f[144],alias:_0x751f[145],format:_0x751f[146],groupBy:1,custom:1,ReportId:13},{field:_0x751f[3],alias:_0x751f[147],function:_0x751f[148],ReportId:13},{field:_0x751f[19],alias:_0x751f[65],function:_0x751f[66],ReportId:13},{field:_0x751f[15],alias:_0x751f[120],function:_0x751f[66],custom:1,ReportId:13},{field:_0x751f[23],alias:_0x751f[112],function:_0x751f[66],custom:1,ReportId:13},{field:_0x751f[31],alias:_0x751f[77],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:13},{field:_0x751f[149],alias:_0x751f[72],format:_0x751f[33],custom:1,ReportId:13},{field:_0x751f[122],alias:_0x751f[123],format:_0x751f[33],custom:1,ReportId:13},{field:_0x751f[144],alias:_0x751f[106],format:_0x751f[107],groupBy:1,custom:1,ReportId:14},{field:_0x751f[3],alias:_0x751f[147],function:_0x751f[148],ReportId:14},{field:_0x751f[19],alias:_0x751f[45],function:_0x751f[66],ReportId:14},{field:_0x751f[150],alias:_0x751f[151],custom:1,ReportId:14},{field:_0x751f[15],alias:_0x751f[120],function:_0x751f[66],ReportId:14},{field:_0x751f[23],alias:_0x751f[112],function:_0x751f[66],ReportId:14},{field:_0x751f[31],alias:_0x751f[77],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:14},{field:_0x751f[149],alias:_0x751f[72],format:_0x751f[33],custom:1,ReportId:14},{field:_0x751f[122],alias:_0x751f[123],format:_0x751f[33],custom:1,ReportId:14},{field:_0x751f[152],alias:_0x751f[153],groupBy:1,custom:1,ReportId:15},{field:_0x751f[3],alias:_0x751f[147],function:_0x751f[148],ReportId:15},{field:_0x751f[19],alias:_0x751f[45],function:_0x751f[66],ReportId:15},{field:_0x751f[150],alias:_0x751f[151],custom:1,ReportId:15},{field:_0x751f[15],alias:_0x751f[120],function:_0x751f[66],ReportId:15},{field:_0x751f[23],alias:_0x751f[112],function:_0x751f[66],ReportId:15},{field:_0x751f[31],alias:_0x751f[77],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:15},{field:_0x751f[149],alias:_0x751f[72],format:_0x751f[33],custom:1,ReportId:15},{field:_0x751f[122],alias:_0x751f[123],format:_0x751f[33],custom:1,ReportId:15},{field:_0x751f[154],alias:_0x751f[155],groupBy:1,custom:1,ReportId:16},{field:_0x751f[3],alias:_0x751f[147],function:_0x751f[148],ReportId:16},{field:_0x751f[19],alias:_0x751f[45],function:_0x751f[66],ReportId:16},{field:_0x751f[150],alias:_0x751f[151],custom:1,ReportId:16},{field:_0x751f[15],alias:_0x751f[120],function:_0x751f[66],orderBy:_0x751f[156],ReportId:16},{field:_0x751f[23],alias:_0x751f[112],function:_0x751f[66],ReportId:16},{field:_0x751f[31],alias:_0x751f[77],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:16},{field:_0x751f[149],alias:_0x751f[72],format:_0x751f[33],custom:1,ReportId:16},{field:_0x751f[122],alias:_0x751f[123],format:_0x751f[33],custom:1,ReportId:16},{field:_0x751f[9],alias:_0x751f[10],groupBy:1,ReportId:17},{field:_0x751f[3],alias:_0x751f[147],function:_0x751f[148],ReportId:17},{field:_0x751f[19],alias:_0x751f[45],function:_0x751f[66],ReportId:17},{field:_0x751f[150],alias:_0x751f[151],custom:1,ReportId:17},{field:_0x751f[15],alias:_0x751f[120],function:_0x751f[66],ReportId:17},{field:_0x751f[23],alias:_0x751f[112],function:_0x751f[66],ReportId:17},{field:_0x751f[31],alias:_0x751f[77],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:17},{field:_0x751f[149],alias:_0x751f[72],format:_0x751f[33],custom:1,ReportId:17},{field:_0x751f[122],alias:_0x751f[123],format:_0x751f[33],custom:1,ReportId:17},{field:_0x751f[3],alias:_0x751f[157],ReportId:18},{field:_0x751f[158],alias:_0x751f[159],ReportId:18},{field:_0x751f[160],alias:_0x751f[161],ReportId:18},{field:_0x751f[162],alias:_0x751f[163],ReportId:18},{field:_0x751f[164],alias:_0x751f[165],ReportId:18},{field:_0x751f[166],alias:_0x751f[38],ReportId:18},{field:_0x751f[167],alias:_0x751f[168],ReportId:18},{field:_0x751f[169],alias:_0x751f[170],ReportId:18},{field:_0x751f[171],alias:_0x751f[172],ReportId:18},{field:_0x751f[173],alias:_0x751f[39],ReportId:18},{field:_0x751f[174],alias:_0x751f[37],ReportId:18},{field:_0x751f[175],alias:_0x751f[41],ReportId:18},{field:_0x751f[176],alias:_0x751f[177],ReportId:18},{field:_0x751f[178],alias:_0x751f[179],ReportId:18},{field:_0x751f[3],alias:_0x751f[157],ReportId:19},{field:_0x751f[180],alias:_0x751f[181],ReportId:19},{field:_0x751f[162],alias:_0x751f[163],ReportId:19},{field:_0x751f[164],alias:_0x751f[165],ReportId:19},{field:_0x751f[166],alias:_0x751f[182],ReportId:19},{field:_0x751f[173],alias:_0x751f[39],ReportId:19},{field:_0x751f[174],alias:_0x751f[37],ReportId:19},{field:_0x751f[175],alias:_0x751f[41],ReportId:19},{field:_0x751f[176],alias:_0x751f[177],format:_0x751f[33],ReportId:19},{field:_0x751f[183],alias:_0x751f[184],format:_0x751f[33],ReportId:19},{field:_0x751f[178],alias:_0x751f[179],ReportId:19},{field:_0x751f[160],alias:_0x751f[161],ReportId:19},{field:_0x751f[158],alias:_0x751f[159],groupBy:1,ReportId:20},{field:_0x751f[3],alias:_0x751f[104],function:_0x751f[105],ReportId:20},{field:_0x751f[176],alias:_0x751f[185],function:_0x751f[66],format:_0x751f[33],ReportId:20},{field:_0x751f[186],alias:_0x751f[187],format:_0x751f[33],custom:1,ReportId:20},{field:_0x751f[178],alias:_0x751f[179],groupBy:1,ReportId:21},{field:_0x751f[3],alias:_0x751f[104],function:_0x751f[105],ReportId:21},{field:_0x751f[176],alias:_0x751f[185],function:_0x751f[66],format:_0x751f[33],ReportId:21},{field:_0x751f[186],alias:_0x751f[187],format:_0x751f[33],custom:1,ReportId:21},{field:_0x751f[188],alias:_0x751f[47],groupBy:1,custom:1,ReportId:22},{field:_0x751f[3],alias:_0x751f[104],function:_0x751f[105],ReportId:22},{field:_0x751f[176],alias:_0x751f[185],function:_0x751f[66],format:_0x751f[33],ReportId:22},{field:_0x751f[186],alias:_0x751f[187],format:_0x751f[33],custom:1,ReportId:22},{field:_0x751f[173],alias:_0x751f[145],format:_0x751f[146],groupBy:1,ReportId:23},{field:_0x751f[3],alias:_0x751f[104],function:_0x751f[105],ReportId:23},{field:_0x751f[176],alias:_0x751f[185],function:_0x751f[66],format:_0x751f[33],ReportId:23},{field:_0x751f[186],alias:_0x751f[187],format:_0x751f[33],custom:1,ReportId:23},{field:_0x751f[46],alias:_0x751f[47],groupBy:1,orderBy:_0x751f[156],ReportId:24},{field:_0x751f[189],alias:_0x751f[177],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:24},{field:_0x751f[46],alias:_0x751f[47],groupBy:1,ReportId:25},{field:_0x751f[190],alias:_0x751f[191],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:25},{field:_0x751f[192],alias:_0x751f[193],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:25},{field:_0x751f[194],alias:_0x751f[195],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:25},{field:_0x751f[46],alias:_0x751f[47],ReportId:26},{field:_0x751f[196],alias:_0x751f[197],ReportId:26},{field:_0x751f[198],alias:_0x751f[199],ReportId:26},{field:_0x751f[200],alias:_0x751f[201],ReportId:26},{field:_0x751f[176],alias:_0x751f[177],format:_0x751f[33],ReportId:26},{field:_0x751f[46],alias:_0x751f[47],ReportId:27},{field:_0x751f[202],alias:_0x751f[203],ReportId:27},{field:_0x751f[158],alias:_0x751f[204],ReportId:27},{field:_0x751f[200],alias:_0x751f[159],ReportId:27},{field:_0x751f[196],alias:_0x751f[197],ReportId:27},{field:_0x751f[198],alias:_0x751f[199],ReportId:27},{field:_0x751f[189],alias:_0x751f[177],format:_0x751f[33],custom:1,ReportId:27},{field:_0x751f[46],alias:_0x751f[47],groupBy:1,orderBy:_0x751f[156],ReportId:28},{field:_0x751f[200],alias:_0x751f[205],groupBy:1,orderBy:_0x751f[156],ReportId:28},{field:_0x751f[189],alias:_0x751f[177],function:_0x751f[66],format:_0x751f[33],custom:1,ReportId:28},{field:_0x751f[206],alias:_0x751f[207],ReportId:29},{field:_0x751f[3],alias:_0x751f[4],ReportId:29},{field:_0x751f[166],alias:_0x751f[182],ReportId:29},{field:_0x751f[208],alias:_0x751f[30],ReportId:29},{field:_0x751f[209],alias:_0x751f[210],orderBy:_0x751f[156],ReportId:29},{field:_0x751f[211],alias:_0x751f[212],ReportId:29},{field:_0x751f[213],alias:_0x751f[177],format:_0x751f[33],custom:1,ReportId:29},{field:_0x751f[3],alias:_0x751f[214],ReportId:30},{field:_0x751f[206],alias:_0x751f[207],ReportId:30},{field:_0x751f[166],alias:_0x751f[215],ReportId:30},{field:_0x751f[216],alias:_0x751f[217],ReportId:30},{field:_0x751f[218],alias:_0x751f[219],ReportId:30},{field:_0x751f[220],alias:_0x751f[47],groupBy:1,ReportId:31},{field:_0x751f[3],alias:_0x751f[221],function:_0x751f[105],ReportId:31},{field:_0x751f[222],alias:_0x751f[223],function:_0x751f[66],ReportId:31},{field:_0x751f[222],alias:_0x751f[224],function:_0x751f[225],ReportId:31},{field:_0x751f[9],alias:_0x751f[10],groupBy:1,ReportId:32},{field:_0x751f[3],alias:_0x751f[226],function:_0x751f[105],ReportId:32},{field:_0x751f[222],alias:_0x751f[223],function:_0x751f[66],ReportId:32},{field:_0x751f[222],alias:_0x751f[224],function:_0x751f[225],ReportId:32},{field:_0x751f[227],alias:_0x751f[228],ReportId:33},{field:_0x751f[5],alias:_0x751f[6],ReportId:33},{field:_0x751f[173],alias:_0x751f[229],orderBy:_0x751f[230],ReportId:33},{field:_0x751f[231],alias:_0x751f[232],ReportId:33},{field:_0x751f[233],alias:_0x751f[234],ReportId:33},{field:_0x751f[235],alias:_0x751f[236],ReportId:33},{field:_0x751f[237],alias:_0x751f[238],ReportId:33},{field:_0x751f[46],alias:_0x751f[47],ReportId:33},{field:_0x751f[54],alias:_0x751f[193],ReportId:33},{field:_0x751f[178],alias:_0x751f[179],ReportId:33},{field:_0x751f[3],alias:_0x751f[4],ReportId:33},{field:_0x751f[231],alias:_0x751f[232],groupBy:true,orderBy:_0x751f[156],ReportId:34},{field:_0x751f[239],alias:_0x751f[104],function:_0x751f[105],ReportId:34},{field:_0x751f[240],alias:_0x751f[241],custom:true,ReportId:34},{field:_0x751f[227],alias:_0x751f[228],orderBy:_0x751f[156],groupBy:true,ReportId:35},{field:_0x751f[231],alias:_0x751f[232],groupBy:true,ReportId:35},{field:_0x751f[239],alias:_0x751f[242],function:_0x751f[105],ReportId:35},{field:_0x751f[243],groupBy:true,orderBy:_0x751f[156],ReportId:36},{field:_0x751f[239],alias:_0x751f[244],function:_0x751f[105],ReportId:36},{field:_0x751f[245],alias:_0x751f[246],custom:true,ReportId:36},{field:_0x751f[247],alias:_0x751f[248],custom:true,ReportId:36},{field:_0x751f[46],alias:_0x751f[47],groupBy:true,orderBy:_0x751f[156],ReportId:37},{field:_0x751f[239],alias:_0x751f[104],function:_0x751f[105],ReportId:37},{field:_0x751f[249],alias:_0x751f[250],custom:true,ReportId:37},{field:_0x751f[178],alias:_0x751f[179],groupBy:true,ReportId:38},{field:_0x751f[239],alias:_0x751f[251],function:_0x751f[105],ReportId:38},{field:_0x751f[252],alias:_0x751f[253],custom:true,ReportId:38},{field:_0x751f[46],alias:_0x751f[47],groupBy:true,ReportId:39},{field:_0x751f[178],alias:_0x751f[179],groupBy:true,ReportId:39},{field:_0x751f[239],alias:_0x751f[251],function:_0x751f[105],ReportId:39},{field:_0x751f[252],alias:_0x751f[253],custom:true,ReportId:39},{field:_0x751f[227],alias:_0x751f[228],ReportId:40},{field:_0x751f[5],alias:_0x751f[6],ReportId:40},{field:_0x751f[173],alias:_0x751f[229],orderBy:_0x751f[230],ReportId:40},{field:_0x751f[231],alias:_0x751f[232],ReportId:40},{field:_0x751f[233],alias:_0x751f[234],ReportId:40},{field:_0x751f[235],alias:_0x751f[236],ReportId:40},{field:_0x751f[237],alias:_0x751f[238],ReportId:40},{field:_0x751f[54],alias:_0x751f[193],ReportId:40},{field:_0x751f[3],alias:_0x751f[4],ReportId:40},{field:_0x751f[231],alias:_0x751f[232],groupBy:true,orderBy:_0x751f[156],ReportId:41},{field:_0x751f[239],alias:_0x751f[104],function:_0x751f[105],ReportId:41},{field:_0x751f[254],alias:_0x751f[241],custom:true,ReportId:41},{field:_0x751f[227],alias:_0x751f[228],orderBy:_0x751f[156],groupBy:true,ReportId:42},{field:_0x751f[231],alias:_0x751f[232],groupBy:true,ReportId:42},{field:_0x751f[239],alias:_0x751f[242],function:_0x751f[105],ReportId:42},{field:_0x751f[243],groupBy:true,orderBy:_0x751f[156],ReportId:43},{field:_0x751f[239],alias:_0x751f[244],function:_0x751f[105],ReportId:43},{field:_0x751f[245],alias:_0x751f[246],custom:true,ReportId:43},{field:_0x751f[247],alias:_0x751f[248],custom:true,ReportId:43}];return _[_0x751f[256]](_0x7479x2,_0x751f[255])}
\ No newline at end of file
diff --git a/server/config/seedDB/report/index.js b/server/config/seedDB/report/index.js
new file mode 100644 (file)
index 0000000..6d9ae9d
--- /dev/null
@@ -0,0 +1 @@
+var _0x2f7a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x2E\x2F\x64\x65\x66\x61\x75\x6C\x74","\x2E\x2F\x66\x69\x65\x6C\x64\x73"];_0x2f7a[0];module[_0x2f7a[1]]= {default:require(_0x2f7a[2]),fields:require(_0x2f7a[3])}
\ No newline at end of file
diff --git a/server/config/seedDB/squareOdbc.js b/server/config/seedDB/squareOdbc.js
new file mode 100644 (file)
index 0000000..e8adaa5
--- /dev/null
@@ -0,0 +1 @@
+var _0xf441=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x64\x61\x74\x61\x62\x61\x73\x65","\x44\x52\x49\x56\x45\x52\x3D\x4D\x79\x53\x51\x4C\x3B\x53\x45\x52\x56\x45\x52\x3D\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31\x3B\x55\x49\x44\x3D\x78\x63\x61\x6C\x6C\x3B\x50\x57\x44\x3D\x78\x43\x40\x4C\x4C\x31\x32\x33\x34\x3B\x44\x41\x54\x41\x42\x41\x53\x45\x3D\x6D\x6F\x74\x69\x6F\x6E\x32","\x78\x63\x61\x6C\x6C\x79\x20\x6D\x6F\x74\x69\x6F\x6E\x20\x64\x62\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4F\x44\x42\x43","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4F\x44\x42\x43\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63"];_0xf441[0];var db=require(_0xf441[2])[_0xf441[1]];var logger=require(_0xf441[4])(_0xf441[3]);var odbc=[{id:1,name:_0xf441[5],dsn:_0xf441[6],description:_0xf441[7]}];exports[_0xf441[8]]= function(){return db[_0xf441[16]][_0xf441[15]](odbc,{ignoreDuplicates:true,individualHooks:true})[_0xf441[14]](function(){logger[_0xf441[13]](_0xf441[12])})[_0xf441[11]](function(_0x5efdx4){logger[_0xf441[10]](_0xf441[9])})}
\ No newline at end of file
diff --git a/server/config/seedDB/squareProjects.js b/server/config/seedDB/squareProjects.js
new file mode 100644 (file)
index 0000000..62e6bda
--- /dev/null
@@ -0,0 +1 @@
+var _0xdf5e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x78\x6D\x6C","\x2E\x78\x6D\x6C","\x6A\x6F\x69\x6E","\x75\x74\x66\x2D\x38","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x41\x75\x74\x6F\x41\x74\x74\x65\x6E\x64\x61\x6E\x74","\x42\x61\x73\x69\x63\x20\x49\x56\x52\x20\x73\x61\x6D\x70\x6C\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x43\x53\x49","\x43\x75\x73\x74\x6F\x6D\x65\x72\x20\x53\x61\x74\x69\x73\x66\x61\x63\x74\x69\x6F\x6E\x20\x49\x56\x52\x20\x73\x61\x6D\x70\x6C\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x4F\x72\x64\x65\x72\x73","\x4F\x72\x64\x65\x72\x20\x44\x42\x20\x49\x56\x52\x20\x73\x61\x6D\x70\x6C\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x53\x75\x72\x76\x65\x79","\x53\x75\x72\x76\x65\x79\x20\x49\x56\x52\x20\x73\x61\x6D\x70\x6C\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x53\x71\x75\x61\x72\x65\x20\x50\x72\x6F\x6A\x65\x63\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x53\x71\x75\x61\x72\x65\x20\x50\x72\x6F\x6A\x65\x63\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74"];_0xdf5e[0];var fs=require(_0xdf5e[1]);var path=require(_0xdf5e[2]);var db=require(_0xdf5e[4])[_0xdf5e[3]];var logger=require(_0xdf5e[6])(_0xdf5e[5]);var getXml=function(_0x661ex6){return fs[_0xdf5e[11]](path[_0xdf5e[9]](__dirname,_0xdf5e[7],_0x661ex6+ _0xdf5e[8]),{encoding:_0xdf5e[10]})};var squareProjects=[{id:1,name:_0xdf5e[12],description:_0xdf5e[13],preproduction:getXml(_0xdf5e[12]),production:getXml(_0xdf5e[12])},{id:2,name:_0xdf5e[14],description:_0xdf5e[15],preproduction:getXml(_0xdf5e[14]),production:getXml(_0xdf5e[14])},{id:3,name:_0xdf5e[16],description:_0xdf5e[17],preproduction:getXml(_0xdf5e[16]),production:getXml(_0xdf5e[16])},{id:4,name:_0xdf5e[18],description:_0xdf5e[19],preproduction:getXml(_0xdf5e[18]),production:getXml(_0xdf5e[18])}];exports[_0xdf5e[20]]= function(){return db[_0xdf5e[28]][_0xdf5e[27]](squareProjects,{ignoreDuplicates:true,individualHooks:true})[_0xdf5e[26]](function(){logger[_0xdf5e[25]](_0xdf5e[24])})[_0xdf5e[23]](function(_0x661ex8){logger[_0xdf5e[22]](_0xdf5e[21])})}
\ No newline at end of file
diff --git a/server/config/seedDB/tags.js b/server/config/seedDB/tags.js
new file mode 100644 (file)
index 0000000..0c0706c
--- /dev/null
@@ -0,0 +1 @@
+var _0xae65=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x66\x6F\x72\x75\x6D\x73","\x74\x61\x67\x20\x66\x6F\x72\x75\x6D\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x64\x65\x66\x65\x63\x74\x69\x76\x65","\x74\x61\x67\x20\x64\x65\x66\x65\x63\x74\x69\x76\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x66\x61\x71","\x74\x61\x67\x20\x66\x61\x71\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x69\x6E\x73\x74\x61\x6C\x6C\x61\x74\x69\x6F\x6E","\x74\x61\x67\x20\x69\x6E\x73\x74\x61\x6C\x6C\x61\x74\x69\x6F\x6E\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x61\x62\x6F\x75\x74\x5F\x73\x61\x6C\x65\x73","\x74\x61\x67\x20\x61\x62\x6F\x75\x74\x5F\x73\x61\x6C\x65\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x54\x61\x67\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x54\x61\x67\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x54\x61\x67","\x67\x65\x74\x4E\x61\x6D\x65\x73","\x6E\x61\x6D\x65","\x6D\x61\x70"];_0xae65[0];var _=require(_0xae65[1]);var db=require(_0xae65[3])[_0xae65[2]];var logger=require(_0xae65[5])(_0xae65[4]);var tags=[{id:1,name:_0xae65[6],description:_0xae65[7]},{id:2,name:_0xae65[8],description:_0xae65[9]},{id:3,name:_0xae65[10],description:_0xae65[11]},{id:4,name:_0xae65[12],description:_0xae65[13]},{id:5,name:_0xae65[14],description:_0xae65[15]}];exports[_0xae65[16]]= function(){return db[_0xae65[24]][_0xae65[23]](tags,{ignoreDuplicates:true,individualHooks:true})[_0xae65[22]](function(){logger[_0xae65[21]](_0xae65[20])})[_0xae65[19]](function(_0x1732x5){logger[_0xae65[18]](_0xae65[17])})};exports[_0xae65[25]]= function(){return _[_0xae65[27]](tags,_0xae65[26])}
\ No newline at end of file
diff --git a/server/config/seedDB/teams.js b/server/config/seedDB/teams.js
new file mode 100644 (file)
index 0000000..f4a500e
--- /dev/null
@@ -0,0 +1 @@
+var _0xaf58=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x44\x65\x6D\x6F\x20\x54\x65\x61\x6D","\x64\x65\x6D\x6F\x20\x74\x65\x61\x6D\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x54\x65\x61\x6D\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x54\x65\x61\x6D\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x54\x65\x61\x6D"];_0xaf58[0];var db=require(_0xaf58[2])[_0xaf58[1]];var logger=require(_0xaf58[4])(_0xaf58[3]);var teams=[{id:1,name:_0xaf58[5],description:_0xaf58[6]}];exports[_0xaf58[7]]= function(){return db[_0xaf58[17]][_0xaf58[16]](teams,{ignoreDuplicates:true,individualHooks:true})[_0xaf58[13]](function(_0x3bbax5){for(var _0x3bbax6=0;_0x3bbax6< _0x3bbax5[_0xaf58[14]];_0x3bbax6+= 1){_0x3bbax5[_0x3bbax6][_0xaf58[15]]([2,3])}})[_0xaf58[13]](function(){logger[_0xaf58[12]](_0xaf58[11])})[_0xaf58[10]](function(_0x3bbax4){logger[_0xaf58[9]](_0xaf58[8])})}
\ No newline at end of file
diff --git a/server/config/seedDB/tree/index.js b/server/config/seedDB/tree/index.js
new file mode 100644 (file)
index 0000000..e7ec29c
--- /dev/null
@@ -0,0 +1 @@
+var _0x4e99=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x5F","\x61\x6E\x73\x77\x65\x72\x65\x64","\x41\x6E\x73\x77\x65\x72\x65\x64","\x75\x6E\x61\x6E\x73\x77\x65\x72\x65\x64","\x55\x6E\x61\x6E\x73\x77\x65\x72\x65\x64","\x64\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E","\x44\x69\x73\x74\x72\x69\x62\x75\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65\x73","\x51\x75\x65\x75\x65\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x73\x74\x61\x63\x6B\x6F\x76\x65\x72\x66\x6C\x6F\x77","\x63\x61\x6C\x6C\x73","\x43\x61\x6C\x6C\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x70\x68\x6F\x6E\x65\x2D\x64\x6F\x74\x73","\x61\x67\x65\x6E\x74\x73","\x41\x67\x65\x6E\x74\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x61\x63\x63\x6F\x75\x6E\x74\x2D\x6D\x75\x6C\x74\x69\x70\x6C\x65","\x63\x61\x6C\x6C\x79\x73\x71\x75\x61\x72\x65","\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x73\x69\x74\x65\x6D\x61\x70","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x6D\x69\x63\x72\x6F\x70\x68\x6F\x6E\x65","\x71\x75\x65\x75\x65\x5F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x51\x75\x65\x75\x65\x20\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x69\x76\x72\x5F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x49\x56\x52\x20\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x76\x6F\x69\x63\x65","\x56\x6F\x69\x63\x65","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x70\x68\x6F\x6E\x65\x2D\x6C\x6F\x67","\x62\x75\x6C\x6C","\x4D\x6F\x74\x69\x6F\x6E\x20\x42\x75\x6C\x6C","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20\x69\x63\x6F\x6E\x2D\x66\x69\x72\x65","\x63\x75\x73\x74\x6F\x6D","\x6D\x6F\x74\x69\x6F\x6E","\x43\x75\x73\x74\x6F\x6D","\x4D\x6F\x74\x69\x6F\x6E","\x20\x52\x65\x70\x6F\x72\x74\x73","\x69\x63\x6F\x6E\x20\x73\x32\x30\x20","\x69\x63\x6F\x6E\x2D\x6C\x61\x70\x74\x6F\x70\x2D\x63\x68\x72\x6F\x6D\x65\x62\x6F\x6F\x6B","\x69\x63\x6F\x6E\x2D\x63\x6C\x6F\x75\x64"];_0x4e99[0];var getQueuesChildren=function(_0xaeaax2){_0xaeaax2+= _0x4e99[1];return [{id:_0xaeaax2+ _0x4e99[2],text:_0x4e99[3]},{id:_0xaeaax2+ _0x4e99[4],text:_0x4e99[5]},{id:_0xaeaax2+ _0x4e99[6],text:_0x4e99[7]}]};var getVoiceChildren=function(_0xaeaax2){_0xaeaax2+= _0x4e99[1];return [{id:_0xaeaax2+ _0x4e99[8],text:_0x4e99[9],icon:_0x4e99[10],children:getQueuesChildren(_0xaeaax2+ _0x4e99[8])},{id:_0xaeaax2+ _0x4e99[11],text:_0x4e99[12],icon:_0x4e99[13]},{id:_0xaeaax2+ _0x4e99[14],text:_0x4e99[15],icon:_0x4e99[16]},{id:_0xaeaax2+ _0x4e99[17],text:_0x4e99[18],icon:_0x4e99[19]},{id:_0xaeaax2+ _0x4e99[20],text:_0x4e99[21],icon:_0x4e99[22]}]};var getBullChildren=function(_0xaeaax2){_0xaeaax2+= _0x4e99[1];return [{id:_0xaeaax2+ _0x4e99[23],text:_0x4e99[24],icon:_0x4e99[10]},{id:_0xaeaax2+ _0x4e99[25],text:_0x4e99[26],icon:_0x4e99[19]}]};var getMotionChildren=function(_0xaeaax2){_0xaeaax2+= _0x4e99[1];return [{id:_0xaeaax2+ _0x4e99[27],text:_0x4e99[28],icon:_0x4e99[29],children:getVoiceChildren(_0xaeaax2+ _0x4e99[27])},{id:_0xaeaax2+ _0x4e99[30],text:_0x4e99[31],icon:_0x4e99[32],children:getBullChildren(_0xaeaax2+ _0x4e99[30])},{id:_0xaeaax2+ _0x4e99[14],text:_0x4e99[15],icon:_0x4e99[16]}]};var getTree=function(_0xaeaax7){return [{id:_0xaeaax7?_0x4e99[33]:_0x4e99[34],text:(_0xaeaax7?_0x4e99[35]:_0x4e99[36])+ _0x4e99[37],icon:_0x4e99[38]+ (_0xaeaax7?_0x4e99[39]:_0x4e99[40]),state:{opened:true,selected:true},children:getMotionChildren(_0xaeaax7?_0x4e99[33]:_0x4e99[34])}]};exports[_0x4e99[34]]= getTree(false);exports[_0x4e99[33]]= getTree(true)
\ No newline at end of file
diff --git a/server/config/seedDB/trunks.js b/server/config/seedDB/trunks.js
new file mode 100644 (file)
index 0000000..8183df3
--- /dev/null
@@ -0,0 +1 @@
+var _0xb249=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x64\x65\x6D\x6F","\x35\x35\x78\x63\x61\x6C\x6C\x79\x35\x35","\x74\x72\x75\x6E\x6B\x20\x64\x65\x6D\x6F\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x54\x72\x75\x6E\x6B\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x54\x72\x75\x6E\x6B\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x54\x72\x75\x6E\x6B"];_0xb249[0];var db=require(_0xb249[2])[_0xb249[1]];var logger=require(_0xb249[4])(_0xb249[3]);var trunks=[{id:1,name:_0xb249[5],secret:_0xb249[6],defaultuser:_0xb249[5],description:_0xb249[7]}];exports[_0xb249[8]]= function(){return db[_0xb249[16]][_0xb249[15]](trunks,{ignoreDuplicates:true,individualHooks:true})[_0xb249[14]](function(){logger[_0xb249[13]](_0xb249[12])})[_0xb249[11]](function(_0xd0b2x4){logger[_0xb249[10]](_0xb249[9])})}
\ No newline at end of file
diff --git a/server/config/seedDB/users.js b/server/config/seedDB/users.js
new file mode 100644 (file)
index 0000000..fb1ba12
--- /dev/null
@@ -0,0 +1 @@
+var _0xdfdb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x61\x64\x6D\x69\x6E","\x70\x61\x73\x73\x77\x6F\x72\x64","\x41\x64\x6D\x69\x6E\x69\x73\x74\x72\x61\x74\x6F\x72","\x61\x64\x6D\x69\x6E\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x75\x73\x65\x72\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x61\x67\x65\x6E\x74","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65","\x6A\x6F\x68\x6E\x2E\x64\x6F\x65\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x73\x68\x75\x74\x74\x6C\x65\x35\x35","\x4A\x6F\x68\x6E\x20\x44\x6F\x65","\x61\x67\x65\x6E\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72","\x6A\x61\x6E\x65\x2E\x6D\x69\x6C\x6C\x65\x72\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x4A\x61\x6E\x65\x20\x4D\x69\x6C\x6C\x65\x72","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x55\x73\x65\x72\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x55\x73\x65\x72\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72"];_0xdfdb[0];var db=require(_0xdfdb[2])[_0xdfdb[1]];var logger=require(_0xdfdb[4])(_0xdfdb[3]);var users=[{id:1,role:_0xdfdb[5],name:_0xdfdb[5],password:_0xdfdb[6],fullname:_0xdfdb[7],email:_0xdfdb[8],internal:1000,description:_0xdfdb[9]},{id:2,role:_0xdfdb[10],name:_0xdfdb[11],email:_0xdfdb[12],password:_0xdfdb[13],fullname:_0xdfdb[14],internal:1001,description:_0xdfdb[15]},{id:3,role:_0xdfdb[10],name:_0xdfdb[16],email:_0xdfdb[17],password:_0xdfdb[13],fullname:_0xdfdb[18],internal:1002,description:_0xdfdb[15]}];exports[_0xdfdb[19]]= function(){return db[_0xdfdb[27]][_0xdfdb[26]](users,{ignoreDuplicates:true,individualHooks:true})[_0xdfdb[25]](function(){logger[_0xdfdb[24]](_0xdfdb[23])})[_0xdfdb[22]](function(_0x7b52x4){logger[_0xdfdb[21]](_0xdfdb[20])})}
\ No newline at end of file
diff --git a/server/config/seedDB/variables.js b/server/config/seedDB/variables.js
new file mode 100644 (file)
index 0000000..1fc2c9b
--- /dev/null
@@ -0,0 +1 @@
+var _0x2e02=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x43\x48\x4F\x49\x43\x45","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x72\x20\x6D\x65\x6E\x75\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x4F\x52\x44\x45\x52\x4E\x55\x4D","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x72\x20\x6F\x72\x64\x65\x72\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x44\x42\x52\x45\x53\x55\x4C\x54","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x72\x20\x64\x62\x20\x71\x75\x65\x72\x79\x20\x72\x65\x73\x75\x6C\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x52\x41\x54\x45","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x72\x20\x72\x61\x74\x65\x20\x63\x61\x6C\x6C\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x56\x61\x72\x69\x61\x62\x6C\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x61\x72\x69\x61\x62\x6C\x65"];_0x2e02[0];var db=require(_0x2e02[2])[_0x2e02[1]];var logger=require(_0x2e02[4])(_0x2e02[3]);var variables=[{id:1,name:_0x2e02[5],description:_0x2e02[6]},{id:2,name:_0x2e02[7],description:_0x2e02[8]},{id:3,name:_0x2e02[9],description:_0x2e02[10]},{id:4,name:_0x2e02[11],description:_0x2e02[12]}];exports[_0x2e02[13]]= function(){return db[_0x2e02[21]][_0x2e02[20]](variables,{ignoreDuplicates:true,individualHooks:true})[_0x2e02[19]](function(){logger[_0x2e02[18]](_0x2e02[17])})[_0x2e02[16]](function(_0xb11ax4){logger[_0x2e02[15]](_0x2e02[14])})}
\ No newline at end of file
diff --git a/server/config/seedDB/voiceContexts.js b/server/config/seedDB/voiceContexts.js
new file mode 100644 (file)
index 0000000..4dd3364
--- /dev/null
@@ -0,0 +1 @@
+var _0xac28=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x64\x65\x66\x61\x75\x6C\x74\x20\x65\x6E\x74\x72\x79\x20\x63\x6F\x6E\x74\x65\x78\x74\x20\x28\x44\x4F\x20\x4E\x4F\x54\x20\x44\x45\x4C\x45\x54\x45\x29","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x69\x6E\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x2D\x66\x61\x78","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x43\x6F\x6E\x74\x65\x78\x74\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x43\x6F\x6E\x74\x65\x78\x74\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74"];_0xac28[0];var db=require(_0xac28[2])[_0xac28[1]];var logger=require(_0xac28[4])(_0xac28[3]);var voiceContexts=[{id:1,name:_0xac28[5],description:_0xac28[6],defaultEntry:true},{id:2,name:_0xac28[7],description:_0xac28[6],defaultEntry:true},{id:3,name:_0xac28[8],description:_0xac28[6],defaultEntry:true},{id:4,name:_0xac28[9],description:_0xac28[6],defaultEntry:true},{id:5,name:_0xac28[10],description:_0xac28[6],defaultEntry:true}];exports[_0xac28[11]]= function(){return db[_0xac28[19]][_0xac28[18]](voiceContexts,{ignoreDuplicates:true,individualHooks:true})[_0xac28[17]](function(){logger[_0xac28[16]](_0xac28[15])})[_0xac28[14]](function(_0x6984x4){logger[_0xac28[13]](_0xac28[12])})}
\ No newline at end of file
diff --git a/server/config/seedDB/voiceExtensions.js b/server/config/seedDB/voiceExtensions.js
new file mode 100644 (file)
index 0000000..fba8dff
--- /dev/null
@@ -0,0 +1 @@
+var _0x412c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x53\x65\x74","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x41\x6E\x73\x77\x65\x72","\x50\x6C\x61\x79\x62\x61\x63\x6B","\x64\x65\x6D\x6F\x2D\x65\x63\x68\x6F\x74\x65\x73\x74","\x45\x63\x68\x6F","\x64\x65\x6D\x6F\x2D\x65\x63\x68\x6F\x64\x6F\x6E\x65","\x48\x61\x6E\x67\x75\x70","\x51\x75\x65\x75\x65","\x53\x75\x70\x70\x6F\x72\x74\x2C\x78\x58\x2C\x2C\x2C\x33\x30\x30\x2C\x2C\x2C\x2C\x2C","\x71\x75\x65\x75\x65","\x53\x61\x6C\x65\x73\x2C\x78\x58\x2C\x2C\x2C\x33\x30\x30\x2C\x2C\x2C\x2C\x2C","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x64\x69\x61\x6C\x65\x72","\x43\x41\x4C\x4C\x45\x52\x49\x44\x28\x61\x6C\x6C\x29\x3D\x24\x7B\x58\x4D\x44\x2D\x43\x41\x4C\x4C\x45\x52\x49\x44\x7D","\x45\x78\x65\x63\x69\x66","\x24\x5B\x22\x24\x7B\x58\x4D\x44\x2D\x41\x47\x49\x7D\x22\x20\x21\x3D\x20\x22\x4E\x4F\x4E\x45\x22\x20\x5D\x3F\x41\x47\x49\x28\x24\x7B\x58\x4D\x44\x2D\x41\x47\x49\x7D\x29","\x24\x5B\x22\x24\x7B\x58\x4D\x44\x2D\x51\x55\x45\x55\x45\x7D\x22\x20\x21\x3D\x20\x22\x4E\x4F\x4E\x45\x22\x20\x5D\x3F\x51\x55\x45\x55\x45\x28\x24\x7B\x58\x4D\x44\x2D\x51\x55\x45\x55\x45\x7D\x29","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x65\x6D\x6F\x2D\x63\x6F\x6E\x67\x72\x61\x74\x73","\x63\x75\x73\x74\x6F\x6D","\x43\x44\x52\x28\x74\x79\x70\x65\x29\x3D\x69\x6E\x62\x6F\x75\x6E\x64","\x69\x6E\x74\x65\x72\x6E\x61\x6C","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x36\x30\x30","\x64\x65\x6D\x6F\x20\x65\x63\x68\x6F\x20\x74\x65\x73\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x36\x30\x30\x30","\x66\x6F\x72\x77\x61\x72\x64\x20\x74\x6F\x20\x53\x75\x70\x70\x6F\x72\x74\x20\x71\x75\x65\x75\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x36\x30\x30\x31","\x66\x6F\x72\x77\x61\x72\x64\x20\x74\x6F\x20\x53\x61\x6C\x65\x73\x20\x71\x75\x65\x75\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x73\x79\x73\x74\x65\x6D","\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x64\x69\x61\x6C\x65\x72","\x64\x69\x61\x6C\x65\x72\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x5F\x2E","\x64\x65\x6D\x6F\x20\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x69\x6E\x62\x6F\x75\x6E\x64","\x66\x72\x6F\x6D\x2D\x76\x6F\x69\x70\x2D\x70\x72\x6F\x76\x69\x64\x65\x72","\x5F\x58\x2E","\x63\x61\x74\x63\x68\x20\x61\x6C\x6C\x20\x69\x6E\x62\x6F\x75\x6E\x64\x20\x63\x61\x6C\x6C\x73\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x68","\x63\x61\x74\x63\x68\x20\x68\x61\x6E\x67\x75\x70\x20\x65\x76\x65\x6E\x74\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x56\x6F\x69\x63\x65\x20\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x56\x6F\x69\x63\x65\x20\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x65\x78\x74\x65\x6E","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x72\x6F\x75\x74\x65\x69\x64","\x61\x70\x70\x64\x61\x74\x61","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x72\x6F\x75\x74\x65\x69\x64\x3D","\x69\x64","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x70\x72\x69\x6F\x72\x69\x74\x79","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x64\x65\x66\x61\x75\x6C\x74\x73","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65"];_0x412c[0];var _=require(_0x412c[1]);var db=require(_0x412c[3])[_0x412c[2]];var logger=require(_0x412c[5])(_0x412c[4]);var applications={"\x36\x30\x30":[{app:_0x412c[6],appdata:_0x412c[7]},{app:_0x412c[8]},{app:_0x412c[9],appdata:_0x412c[10],isApp:true},{app:_0x412c[11],isApp:true},{app:_0x412c[9],appdata:_0x412c[12],isApp:true},{app:_0x412c[13]}],"\x36\x30\x30\x30":[{app:_0x412c[6],appdata:_0x412c[7]},{app:_0x412c[8]},{app:_0x412c[14],appdata:_0x412c[15],appType:_0x412c[16],isApp:true},{app:_0x412c[13]}],"\x36\x30\x30\x31":[{app:_0x412c[6],appdata:_0x412c[7]},{app:_0x412c[8]},{app:_0x412c[14],appdata:_0x412c[17],appType:_0x412c[16],isApp:true},{app:_0x412c[13]}],"\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x64\x69\x61\x6C\x65\x72":[{app:_0x412c[6],appdata:_0x412c[18]},{app:_0x412c[6],appdata:_0x412c[19]},{app:_0x412c[20],appdata:_0x412c[21]},{app:_0x412c[20],appdata:_0x412c[22]},{app:_0x412c[13]}],"\x5F\x2E":[{app:_0x412c[6],appdata:_0x412c[23]},{app:_0x412c[6],outboundrouteid:true},{app:_0x412c[9],appdata:_0x412c[24],appType:_0x412c[25],isApp:true},{app:_0x412c[13]}],"\x5F\x58\x2E":[{app:_0x412c[6],appdata:_0x412c[26]},{app:_0x412c[8]},{app:_0x412c[9],appdata:_0x412c[24],isApp:true},{app:_0x412c[13]}],"\x68":[{app:_0x412c[13]}]};var voiceExtensions=[{type:_0x412c[27],context:_0x412c[28],exten:_0x412c[29],description:_0x412c[30]},{type:_0x412c[27],context:_0x412c[28],exten:_0x412c[31],description:_0x412c[32]},{type:_0x412c[27],context:_0x412c[28],exten:_0x412c[33],description:_0x412c[34]},{type:_0x412c[35],context:_0x412c[28],exten:_0x412c[36],description:_0x412c[37]},{type:_0x412c[38],context:_0x412c[28],exten:_0x412c[39],description:_0x412c[40]},{type:_0x412c[41],context:_0x412c[42],exten:_0x412c[43],description:_0x412c[44]},{type:_0x412c[35],context:_0x412c[28],exten:_0x412c[45],description:_0x412c[46]}];exports[_0x412c[47]]= function(){return db[_0x412c[65]][_0x412c[66]](voiceExtensions,{ignoreDuplicates:true,individualHooks:true})[_0x412c[53]](function(_0xfd75x7){for(var _0xfd75x8=0;_0xfd75x8< _0xfd75x7[_0x412c[54]];_0xfd75x8+= 1){if(applications[_0xfd75x7[_0xfd75x8][_0x412c[55]]]){for(var _0xfd75x9=0;_0xfd75x9< applications[_0xfd75x7[_0xfd75x8][_0x412c[55]]][_0x412c[54]];_0xfd75x9+= 1){if(applications[_0xfd75x7[_0xfd75x8][_0x412c[55]]][_0xfd75x9][_0x412c[56]]){applications[_0xfd75x7[_0xfd75x8][_0x412c[55]]][_0xfd75x9][_0x412c[57]]= _0x412c[58]+ _0xfd75x7[_0xfd75x8][_0x412c[59]];delete applications[_0xfd75x7[_0xfd75x8][_0x412c[55]]][_0xfd75x9][_0x412c[56]]};applications[_0xfd75x7[_0xfd75x8][_0x412c[55]]][_0xfd75x9]= _[_0x412c[64]](applications[_0xfd75x7[_0xfd75x8][_0x412c[55]]][_0xfd75x9],{isApp:false,appType:_0x412c[25],type:_0xfd75x7[_0xfd75x8][_0x412c[60]],context:_0xfd75x7[_0xfd75x8][_0x412c[61]],exten:_0xfd75x7[_0xfd75x8][_0x412c[55]],priority:parseInt(_0xfd75x7[_0xfd75x8][_0x412c[62]],10)+ 1+ _0xfd75x9,description:_0xfd75x7[_0xfd75x8][_0x412c[63]],VoiceExtensionId:_0xfd75x7[_0xfd75x8][_0x412c[59]]});db[_0x412c[65]][_0x412c[47]](applications[_0xfd75x7[_0xfd75x8][_0x412c[55]]][_0xfd75x9])}}}})[_0x412c[53]](function(){logger[_0x412c[52]](_0x412c[51])})[_0x412c[50]](function(_0xfd75x6){logger[_0x412c[49]](_0x412c[48])})}
\ No newline at end of file
diff --git a/server/config/seedDB/voiceMusicOnHold.js b/server/config/seedDB/voiceMusicOnHold.js
new file mode 100644 (file)
index 0000000..e68e6a2
--- /dev/null
@@ -0,0 +1 @@
+var _0x78f6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x64\x65\x66\x61\x75\x6C\x74","\x2F\x76\x61\x72\x2F\x6C\x69\x62\x2F\x61\x73\x74\x65\x72\x69\x73\x6B\x2F\x6D\x6F\x68\x2F","\x66\x69\x6C\x65\x73","\x72\x61\x6E\x64\x6F\x6D","\x77\x61\x76","\x64\x65\x66\x61\x75\x6C\x74\x20\x6D\x6F\x68\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x6E\x6F\x69\x63\x65","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x32\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x6D\x6F\x68\x2F\x6E\x6F\x69\x63\x65\x2F","\x6E\x6F\x69\x63\x65\x20\x6D\x6F\x68\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x77\x61\x69\x74","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x32\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73\x2F\x6D\x6F\x68\x2F\x77\x61\x69\x74\x2F","\x77\x61\x69\x74\x20\x6D\x6F\x68\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x4D\x75\x73\x69\x63\x20\x6F\x6E\x20\x68\x6F\x6C\x64","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x4D\x75\x73\x69\x63\x20\x6F\x6E\x20\x68\x6F\x6C\x64\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64"];_0x78f6[0];var db=require(_0x78f6[2])[_0x78f6[1]];var logger=require(_0x78f6[4])(_0x78f6[3]);var voiceMusicOnHold=[{id:1,name:_0x78f6[5],directory:_0x78f6[6],mode:_0x78f6[7],sort:_0x78f6[8],format:_0x78f6[9],defaultEntry:true,description:_0x78f6[10]},{id:2,name:_0x78f6[11],directory:_0x78f6[12],mode:_0x78f6[7],sort:_0x78f6[8],format:_0x78f6[9],defaultEntry:true,description:_0x78f6[13]},{id:3,name:_0x78f6[14],directory:_0x78f6[15],mode:_0x78f6[7],sort:_0x78f6[8],format:_0x78f6[9],defaultEntry:true,description:_0x78f6[16]}];exports[_0x78f6[17]]= function(){return db[_0x78f6[25]][_0x78f6[24]](voiceMusicOnHold,{ignoreDuplicates:true,individualHooks:true})[_0x78f6[23]](function(){logger[_0x78f6[22]](_0x78f6[21])})[_0x78f6[20]](function(_0xf4cdx4){logger[_0x78f6[19]](_0x78f6[18])})}
\ No newline at end of file
diff --git a/server/config/seedDB/voiceQueues.js b/server/config/seedDB/voiceQueues.js
new file mode 100644 (file)
index 0000000..d3a6db0
--- /dev/null
@@ -0,0 +1 @@
+var _0xfe2a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x64\x62","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x61\x70\x70","\x2E\x2E\x2F\x6C\x6F\x67\x67\x65\x72","\x69\x6E\x62\x6F\x75\x6E\x64","\x53\x75\x70\x70\x6F\x72\x74","\x72\x69\x6E\x67\x61\x6C\x6C","\x77\x61\x69\x74","\x69\x6E\x62\x6F\x75\x6E\x64\x20\x76\x6F\x69\x63\x65\x20\x71\x75\x65\x75\x65\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x53\x61\x6C\x65\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x53\x75\x72\x76\x65\x79","\x72\x72\x6D\x65\x6D\x6F\x72\x79","\x6E\x6F\x69\x63\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x20\x76\x6F\x69\x63\x65\x20\x71\x75\x65\x75\x65\x20\x63\x61\x6D\x70\x61\x69\x67\x6E\x20\x61\x75\x74\x6F\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64","\x54\x65\x6C\x65\x6D\x61\x72\x6B\x65\x74\x69\x6E\x67","\x43\x61\x6C\x6C\x62\x61\x63\x6B\x20\x43\x61\x6D\x70\x61\x69\x67\x6E","\x63\x72\x65\x61\x74\x65","\x43\x61\x6E\x27\x74\x20\x63\x72\x65\x61\x74\x65\x20\x56\x6F\x69\x63\x65\x20\x51\x75\x65\x75\x65\x73","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x56\x6F\x69\x63\x65\x20\x51\x75\x65\x75\x65\x73\x20\x68\x61\x76\x65\x20\x62\x65\x65\x6E\x20\x63\x72\x65\x61\x74\x65\x64","\x69\x6E\x66\x6F","\x74\x68\x65\x6E","\x6C\x65\x6E\x67\x74\x68","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x61\x64\x64\x54\x65\x61\x6D\x73","\x74\x79\x70\x65","\x69\x64","\x61\x64\x64\x4C\x69\x73\x74\x73","\x61\x64\x64\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65"];_0xfe2a[0];var db=require(_0xfe2a[2])[_0xfe2a[1]];var logger=require(_0xfe2a[4])(_0xfe2a[3]);var voiceQueues=[{id:1,type:_0xfe2a[5],name:_0xfe2a[6],strategy:_0xfe2a[7],musiconhold:_0xfe2a[8],description:_0xfe2a[9]},{id:2,type:_0xfe2a[5],name:_0xfe2a[10],strategy:_0xfe2a[7],musiconhold:_0xfe2a[8],description:_0xfe2a[9]},{id:3,type:_0xfe2a[11],name:_0xfe2a[12],strategy:_0xfe2a[13],TrunkId:1,IntervalId:1,musiconhold:_0xfe2a[14],description:_0xfe2a[15]},{id:4,type:_0xfe2a[11],name:_0xfe2a[16],strategy:_0xfe2a[13],TrunkId:1,IntervalId:1,musiconhold:_0xfe2a[14],description:_0xfe2a[15]},{id:5,type:_0xfe2a[11],name:_0xfe2a[17],strategy:_0xfe2a[13],TrunkId:1,IntervalId:1,musiconhold:_0xfe2a[14],description:_0xfe2a[15]}];exports[_0xfe2a[18]]= function(){return db[_0xfe2a[33]][_0xfe2a[32]](voiceQueues,{ignoreDuplicates:true,individualHooks:true})[_0xfe2a[24]](function(_0xe57ex5){for(var _0xe57ex6=0;_0xe57ex6< _0xe57ex5[_0xfe2a[25]];_0xe57ex6+= 1){_0xe57ex5[_0xe57ex6][_0xfe2a[26]]([2,3],{ignoreDuplicates:true,individualHooks:true});_0xe57ex5[_0xe57ex6][_0xfe2a[27]]([1],{ignoreDuplicates:true,individualHooks:true});if(_0xe57ex5[_0xe57ex6][_0xfe2a[28]]=== _0xfe2a[11]&& _0xe57ex5[_0xe57ex6][_0xfe2a[29]]!== 5){_0xe57ex5[_0xe57ex6][_0xfe2a[30]]([1],{ignoreDuplicates:true,individualHooks:true});_0xe57ex5[_0xe57ex6][_0xfe2a[31]]([2],{ignoreDuplicates:true,individualHooks:true})};if(_0xe57ex5[_0xe57ex6][_0xfe2a[29]]=== 5){_0xe57ex5[_0xe57ex6][_0xfe2a[30]]([3],{ignoreDuplicates:true,individualHooks:true})}};return _0xe57ex5})[_0xfe2a[24]](function(){logger[_0xfe2a[23]](_0xfe2a[22])})[_0xfe2a[21]](function(_0xe57ex4){logger[_0xfe2a[20]](_0xfe2a[19])})}
\ No newline at end of file
diff --git a/server/config/seedDB/xml/AutoAttendant.xml b/server/config/seedDB/xml/AutoAttendant.xml
new file mode 100644 (file)
index 0000000..c22b142
--- /dev/null
@@ -0,0 +1,65 @@
+<mxGraphModel grid="1" guides="1" tooltips="1" connect="1" fold="1" page="0" pageScale="1" pageWidth="826" pageHeight="1169">
+ <root>
+  <mxCell id="0"/>
+  <mxCell id="1" parent="0"/>
+  <menu label="Menu" file_id="1" response="5" digit="1" retry="2" variable_id="1" id="3">
+    <mxCell style="image;image=/assets/plugins/square/stencils/playback/menu_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="130" y="150" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </menu>
+  <queue label="Queue Sales" queue_id="2" opts="" url="" file_id="0" timeout="300" agi="" macro="" gosub="" position="" id="5">
+    <mxCell style="image;image=/assets/plugins/square/stencils/call_management/queue_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="470" y="9.999999999999993" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </queue>
+  <queue label="Queue Support" queue_id="1" opts="" url="" file_id="0" timeout="300" agi="" macro="" gosub="" position="" id="6">
+    <mxCell style="image;image=/assets/plugins/square/stencils/call_management/queue_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="540" y="149.99999999999997" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </queue>
+  <dial label="Internal Dial John Doe" sip_id="2" timeout="60" opts="" url="" id="7">
+    <mxCell style="image;image=/assets/plugins/square/stencils/call_management/dial_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="470" y="310" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </dial>
+  <mxCell id="8" value="1" parent="1" source="3" target="5" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="9" value="2" parent="1" source="3" target="6" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <noop label="NoOp choice view" output="Choice: {CHOICE}" id="11">
+    <mxCell style="image;image=/assets/plugins/square/stencils/general/noop_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="300" y="310" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </noop>
+  <end label="End" id="15">
+    <mxCell style="image;image=/assets/plugins/square/stencils/entry/end_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="720" y="150" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </end>
+  <mxCell id="16" value="3" parent="1" source="3" target="11" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="17" parent="1" source="5" target="15" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="18" parent="1" source="6" target="15" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="19" parent="1" source="7" target="15" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="20" parent="1" source="11" target="7" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <start label="Start" answer="yes" id="21">
+    <mxCell style="image;image=/assets/plugins/square/stencils/entry/start_128x128.png" vertex="1" parent="1">
+      <mxGeometry x="30" y="150" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </start>
+  <mxCell id="22" edge="1" parent="1" source="21" target="3">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+ </root>
+ </mxGraphModel>
diff --git a/server/config/seedDB/xml/CSI.xml b/server/config/seedDB/xml/CSI.xml
new file mode 100644 (file)
index 0000000..5f33a96
--- /dev/null
@@ -0,0 +1,35 @@
+<mxGraphModel grid="1" guides="1" tooltips="1" connect="1" fold="1" page="0" pageScale="1" pageWidth="826" pageHeight="1169">
+ <root>
+  <mxCell id="0"/>
+  <mxCell id="1" parent="0"/>
+  <queue label="Queue OPTION C to continue" queue_id="1" opts="c" url="" file_id="0" timeout="10" agi="" macro="" gosub="" position="" id="3">
+    <mxCell style="image;image=/assets/plugins/square/stencils/call_management/queue_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="260" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </queue>
+  <subproject label="SubProject Survey" project_id="4" id="5">
+    <mxCell style="image;image=/assets/plugins/square/stencils/general/subproject_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="430" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </subproject>
+  <mxCell id="6" parent="1" source="3" target="5" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <end label="End" id="7">
+    <mxCell style="image;image=/assets/plugins/square/stencils/entry/end_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="600" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </end>
+  <mxCell id="8" parent="1" source="5" target="7" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <start label="Start" answer="yes" id="10">
+    <mxCell style="image;image=/assets/plugins/square/stencils/entry/start_128x128.png" vertex="1" parent="1">
+      <mxGeometry x="90" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </start>
+  <mxCell id="11" edge="1" parent="1" source="10" target="3">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+ </root>
+ </mxGraphModel>
diff --git a/server/config/seedDB/xml/Orders.xml b/server/config/seedDB/xml/Orders.xml
new file mode 100644 (file)
index 0000000..91fff6f
--- /dev/null
@@ -0,0 +1,70 @@
+<mxGraphModel grid="1" guides="1" tooltips="1" connect="1" fold="1" page="0" pageScale="1" pageWidth="826" pageHeight="1169">
+ <root>
+  <mxCell id="0"/>
+  <mxCell id="1" parent="0"/>
+  <menu label="Menu" file_id="2" response="5" digit="5" retry="1" variable_id="2" id="4">
+    <mxCell style="image;image=/assets/plugins/square/stencils/playback/menu_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="250" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </menu>
+  <noop label="NoOp Debug ORDERNUM" output="ORDER NUMBER: {ORDERNUM}" id="6">
+    <mxCell style="image;image=/assets/plugins/square/stencils/general/noop_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="400" y="109.56782713085232" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </noop>
+  <mxCell id="7" value="-" parent="1" source="4" target="6" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <gotoif label="GotoIf" condition="{DBRESULT} == 1" id="10">
+    <mxCell style="image;image=/assets/plugins/square/stencils/callflow/gotoif_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="730" y="109.56782713085231" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </gotoif>
+  <playback label="Playback Order shipped" file_id="3" opts="" id="12">
+    <mxCell style="image;image=/assets/plugins/square/stencils/playback/playback_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="1010" y="50" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </playback>
+  <mxCell id="13" value="true" parent="1" source="10" target="12" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <playback label="Playback Order on elaboration" file_id="4" opts="" id="14">
+    <mxCell style="image;image=/assets/plugins/square/stencils/playback/playback_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="1010" y="189.56782713085232" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </playback>
+  <mxCell id="15" value="false" parent="1" source="10" target="14" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <hangup label="Hangup" id="16">
+    <mxCell style="image;image=/assets/plugins/square/stencils/call_management/hangup_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="1180" y="109.5678271308523" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </hangup>
+  <mxCell id="17" parent="1" source="12" target="16" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="18" parent="1" source="14" target="16" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <start label="Start" answer="yes" id="19">
+    <mxCell style="image;image=/assets/plugins/square/stencils/entry/start_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="100" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </start>
+  <mxCell id="20" parent="1" source="19" target="4" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <database label="Database query EXAMPLE" odbc_id="1" query="SELECT status from orders WHERE id={ORDERNUM}" variable_id="3" id="21">
+    <mxCell style="image;image=/assets/plugins/square/stencils/integration_server/database_128x128.png" vertex="1" parent="1">
+      <mxGeometry x="560" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </database>
+  <mxCell id="22" edge="1" parent="1" source="6" target="21">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="23" edge="1" parent="1" source="21" target="10">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+ </root>
+ </mxGraphModel>
diff --git a/server/config/seedDB/xml/Survey.xml b/server/config/seedDB/xml/Survey.xml
new file mode 100644 (file)
index 0000000..6acffd1
--- /dev/null
@@ -0,0 +1,51 @@
+<mxGraphModel grid="1" guides="1" tooltips="1" connect="1" fold="1" page="0" pageScale="1" pageWidth="826" pageHeight="1169">
+ <root>
+  <mxCell id="0"/>
+  <mxCell id="1" parent="0"/>
+  <start label="Start" id="2">
+    <mxCell style="image;image=/assets/plugins/square/stencils/entry/start_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="70" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </start>
+  <menu label="Menu" file_id="5" response="5" digit="1" retry="1" variable_id="4" id="3">
+    <mxCell style="image;image=/assets/plugins/square/stencils/playback/menu_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="222" y="110" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </menu>
+  <mxCell id="4" parent="1" source="2" target="3" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <noop label="NoOp rate view" output="Rate: {RATE}" id="5">
+    <mxCell style="image;image=/assets/plugins/square/stencils/general/noop_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="378.99999999999994" y="110.13565426170464" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </noop>
+  <mxCell id="6" value="1,2,3,4,5" parent="1" source="3" target="5" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <hangup label="Hangup" id="10">
+    <mxCell style="image;image=/assets/plugins/square/stencils/call_management/hangup_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="838" y="110.13565426170464" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </hangup>
+  <playback label="Playback Thank you" file_id="6" opts="" id="13">
+    <mxCell style="image;image=/assets/plugins/square/stencils/playback/playback_128x128.png" parent="1" vertex="1">
+      <mxGeometry x="520" y="110.13565426170464" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </playback>
+  <mxCell id="14" parent="1" source="5" target="13" edge="1">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <database label="Database" odbc_id="1" query="INSERT INTO survey (agent, queue, result)&#xa;VALUES ({MEMBERINTERFACE}, {QUEUENAME}, {RATE})" variable_id="3" id="15">
+    <mxCell style="image;image=/assets/plugins/square/stencils/integration_server/database_128x128.png" vertex="1" parent="1">
+      <mxGeometry x="680" y="110.13565426170464" width="80" height="80" as="geometry"/>
+    </mxCell>
+  </database>
+  <mxCell id="16" edge="1" parent="1" source="13" target="15">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+  <mxCell id="17" edge="1" parent="1" source="15" target="10">
+    <mxGeometry relative="1" as="geometry"/>
+  </mxCell>
+ </root>
+ </mxGraphModel>
diff --git a/server/config/seedUsers.js b/server/config/seedUsers.js
new file mode 100644 (file)
index 0000000..0d4a9ca
--- /dev/null
@@ -0,0 +1 @@
+var _0xd67a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x25\x73\x25\x73","\x61\x67\x65\x6E\x74","\x66\x6F\x72\x6D\x61\x74","\x25\x73\x25\x73\x40\x78\x63\x61\x6C\x6C\x79\x2E\x63\x6F\x6D","\x70\x61\x73\x73\x77\x6F\x72\x64","\x66\x72\x69\x65\x6E\x64","\x75\x64\x70","\x77\x73","\x77\x73\x73","\x61\x6C\x6C","\x75\x6C\x61\x77","\x79\x65\x73","\x6E\x6F","\x2F\x65\x74\x63\x2F\x70\x6B\x69\x2F\x74\x6C\x73\x2F\x63\x65\x72\x74\x73\x2F\x6D\x6F\x74\x69\x6F\x6E\x2E\x63\x72\x74","\x2F\x65\x74\x63\x2F\x70\x6B\x69\x2F\x74\x6C\x73\x2F\x70\x72\x69\x76\x61\x74\x65\x2F\x6D\x6F\x74\x69\x6F\x6E\x2E\x6B\x65\x79","\x61\x63\x74\x70\x61\x73\x73","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x70\x75\x73\x68","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x61\x64\x64\x20\x75\x73\x65\x72","\x74\x68\x65\x6E","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x55\x73\x65\x72"];_0xd67a[0];var util=require(_0xd67a[1]);var db=require(_0xd67a[3])[_0xd67a[2]];var users=[];for(var i=1;i<= 200;i+= 1){users[_0xd67a[21]]({name:util[_0xd67a[6]](_0xd67a[4],_0xd67a[5],i),fullname:util[_0xd67a[6]](_0xd67a[4],_0xd67a[5],i),email:util[_0xd67a[6]](_0xd67a[7],_0xd67a[5],i),role:_0xd67a[5],password:_0xd67a[8],internal:4000+ i,type:_0xd67a[9],transport:[_0xd67a[10],_0xd67a[11],_0xd67a[12]],disallow:[_0xd67a[13]],allow:[_0xd67a[14]],defaultuser:util[_0xd67a[6]](_0xd67a[4],_0xd67a[5],i),encryption:_0xd67a[15],avpf:_0xd67a[15],force_avp:_0xd67a[15],icesupport:_0xd67a[15],dtlsenable:_0xd67a[15],dtlsverify:_0xd67a[16],dtlscertfile:_0xd67a[17],dtlsprivatekey:_0xd67a[18],dtlssetup:_0xd67a[19],callerid:util[_0xd67a[6]](_0xd67a[20],util[_0xd67a[6]](_0xd67a[4],_0xd67a[5],i),4000+ i)})};db[_0xd67a[27]][_0xd67a[26]](users)[_0xd67a[25]](function(){console[_0xd67a[22]](_0xd67a[24])})[_0xd67a[23]](function(_0x2efax5){console[_0xd67a[22]](_0x2efax5)})
\ No newline at end of file
diff --git a/server/config/socketio.js b/server/config/socketio.js
new file mode 100644 (file)
index 0000000..a3d6aaa
--- /dev/null
@@ -0,0 +1 @@
+var _0x6761=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x64\x62","\x2E\x2E\x2F\x6D\x79\x73\x71\x6C\x64\x62","\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x41\x67\x65\x6E\x74\x73","\x55\x73\x65\x72","\x72\x6F\x6C\x65","\x61\x67\x65\x6E\x74","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x74\x79\x70\x65","\x69\x76\x72","\x71\x75\x65\x72\x79","\x68\x61\x6E\x64\x73\x68\x61\x6B\x65","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x6C\x65\x6E\x67\x74\x68","\x76\x6F\x69\x63\x65\x3A\x71\x75\x65\x75\x65\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x75\x73\x65\x72\x3A\x25\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x25\x73","\x74\x72\x75\x6E\x6B\x3A\x25\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x3A\x25\x73\x3A\x25\x73","\x74\x68\x65\x6E","\x76\x6F\x69\x63\x65\x3A\x69\x6E\x62\x6F\x75\x6E\x64","\x76\x6F\x69\x63\x65\x3A\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x69\x6E\x63\x6C\x75\x64\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x66\x69\x6E\x64\x41\x6C\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x70\x75\x73\x68","\x54\x72\x75\x6E\x6B","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x61\x64\x6D\x69\x6E","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x75\x73\x65\x72","\x61\x6C\x6C","\x66\x69\x6E\x64","\x6C\x65\x61\x76\x65","\x6A\x6F\x69\x6E","\x64\x65\x66\x61\x75\x6C\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x73\x65\x74\x4D\x61\x78\x4C\x69\x73\x74\x65\x6E\x65\x72\x73","\x61\x64\x64\x72\x65\x73\x73","\x72\x65\x6D\x6F\x74\x65\x41\x64\x64\x72\x65\x73\x73","\x72\x65\x71\x75\x65\x73\x74","\x3A","\x72\x65\x6D\x6F\x74\x65\x50\x6F\x72\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x41\x74","\x53\x6F\x63\x6B\x65\x74\x49\x4F\x20","\x6E\x73\x70","\x5B","\x5D","\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74","\x44\x49\x53\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44","\x6F\x6E","\x43\x4F\x4E\x4E\x45\x43\x54\x45\x44"];_0x6761[0];var util=require(_0x6761[1]);var BPromise=require(_0x6761[2]);var db=require(_0x6761[4])[_0x6761[3]];var config=require(_0x6761[5]);var queryVoiceQueues={attributes:[_0x6761[6],_0x6761[7]],include:[{as:_0x6761[8],model:db[_0x6761[9]],attributes:[_0x6761[6],_0x6761[7],_0x6761[10]],raw:true,where:{role:_0x6761[11]},required:false}]};var queryTelephones={raw:true,attributes:[_0x6761[6],_0x6761[7]],where:{role:_0x6761[12]}};var queryTrunks={raw:true,attributes:[_0x6761[6],_0x6761[7]]};var queryAgents={raw:true,attributes:[_0x6761[6],_0x6761[7]],where:{role:_0x6761[11]}};var queryCampaigns={raw:true,attributes:[_0x6761[6],_0x6761[7],_0x6761[13]],where:{type:_0x6761[14]}};function joinOrLeave(_0x1430xb,_0x1430xc){if(_0x1430xb[_0x6761[16]][_0x6761[15]][_0x6761[6]]){db[_0x6761[9]][_0x6761[40]]({attributes:[_0x6761[6],_0x6761[7],_0x6761[10]],where:{id:_0x1430xb[_0x6761[16]][_0x6761[15]][_0x6761[6]]}})[_0x6761[26]](function(_0x1430x12){if(_0x1430x12){_0x1430xb[_0x1430xc](util[_0x6761[21]](_0x6761[22],_0x1430x12[_0x6761[7]]));var _0x1430x13=[];switch(_0x1430x12[_0x6761[10]]){case _0x6761[36]:_0x1430xb[_0x1430xc](_0x6761[27]);_0x1430xb[_0x1430xc](_0x6761[28]);if(queryVoiceQueues[_0x6761[30]](_0x6761[29])){delete queryVoiceQueues[_0x6761[29]]};_0x1430x13[_0x6761[33]](db[_0x6761[32]][_0x6761[31]](queryVoiceQueues));_0x1430x13[_0x6761[33]](db[_0x6761[9]][_0x6761[31]](queryTelephones));_0x1430x13[_0x6761[33]](db[_0x6761[34]][_0x6761[31]](queryTrunks));_0x1430x13[_0x6761[33]](db[_0x6761[9]][_0x6761[31]](queryAgents));_0x1430x13[_0x6761[33]](db[_0x6761[35]][_0x6761[31]](queryCampaigns));break;case _0x6761[38]:_0x1430xb[_0x1430xc](_0x6761[27]);_0x1430xb[_0x1430xc](_0x6761[28]);_0x1430x13[_0x6761[33]](_0x1430x12[_0x6761[37]](queryVoiceQueues));_0x1430x13[_0x6761[33]](db[_0x6761[9]][_0x6761[31]](queryTelephones));_0x1430x13[_0x6761[33]](db[_0x6761[34]][_0x6761[31]](queryTrunks));_0x1430x13[_0x6761[33]](db[_0x6761[9]][_0x6761[31]](queryAgents));_0x1430x13[_0x6761[33]](db[_0x6761[35]][_0x6761[31]](queryCampaigns));break;case _0x6761[11]:_0x1430x13[_0x6761[33]](_0x1430x12[_0x6761[37]]({attributes:[_0x6761[6],_0x6761[7]]}))};return BPromise[_0x6761[39]](_0x1430x13)}})[_0x6761[26]](function(_0x1430xe){if(_0x1430xe&& _0x1430xe[_0x6761[19]]){for(var _0x1430xf=0;_0x1430xf< _0x1430xe[_0x6761[19]];_0x1430xf+= 1){for(var _0x1430x10=0;_0x1430x10< _0x1430xe[_0x1430xf][_0x6761[19]];_0x1430x10+= 1){switch(_0x1430xf){case 0:_0x1430xb[_0x1430xc](util[_0x6761[21]](_0x6761[20],_0x1430xe[_0x1430xf][_0x1430x10][_0x6761[7]]));if(_0x1430xe[_0x1430xf][_0x1430x10][_0x6761[8]]){for(var _0x1430x11=0;_0x1430x11< _0x1430xe[_0x1430xf][_0x1430x10][_0x6761[8]][_0x6761[19]];_0x1430x11+= 1){_0x1430xb[_0x1430xc](util[_0x6761[21]](_0x6761[22],_0x1430xe[_0x1430xf][_0x1430x10][_0x6761[8]][_0x1430x11][_0x6761[7]]))}};break;case 1:_0x1430xb[_0x1430xc](util[_0x6761[21]](_0x6761[23],_0x1430xe[_0x1430xf][_0x1430x10][_0x6761[7]]));break;case 2:_0x1430xb[_0x1430xc](util[_0x6761[21]](_0x6761[24],_0x1430xe[_0x1430xf][_0x1430x10][_0x6761[7]]));break;case 3:_0x1430xb[_0x1430xc](util[_0x6761[21]](_0x6761[22],_0x1430xe[_0x1430xf][_0x1430x10][_0x6761[7]]));break;case 4:_0x1430xb[_0x1430xc](util[_0x6761[21]](_0x6761[25],_0x1430xe[_0x1430xf][_0x1430x10][_0x6761[13]],_0x1430xe[_0x1430xf][_0x1430x10][_0x6761[7]]));break}}}}})[_0x6761[18]](function(_0x1430xd){_0x1430xb[_0x6761[17]](_0x1430xd)})}}function onDisconnect(_0x1430xb){joinOrLeave(_0x1430xb,_0x6761[41])}function onConnect(_0x1430xb){joinOrLeave(_0x1430xb,_0x6761[42])}exports[_0x6761[43]]= function(_0x1430x16){_0x1430x16[_0x6761[58]](_0x6761[44],function(_0x1430xb){_0x1430xb[_0x6761[45]](0);_0x1430xb[_0x6761[46]]= _0x1430xb[_0x6761[48]][_0x6761[44]][_0x6761[47]]+ _0x6761[49]+ _0x1430xb[_0x6761[48]][_0x6761[44]][_0x6761[50]];_0x1430xb[_0x6761[51]]=  new Date();_0x1430xb[_0x6761[17]]= function(_0x1430x17){console[_0x6761[17]](_0x6761[52]+ _0x1430xb[_0x6761[53]][_0x6761[7]]+ _0x6761[54]+ _0x1430xb[_0x6761[46]]+ _0x6761[55],_0x1430x17)};_0x1430xb[_0x6761[58]](_0x6761[56],function(){onDisconnect(_0x1430xb);_0x1430xb[_0x6761[17]](_0x6761[57])});onConnect(_0x1430xb);_0x1430xb[_0x6761[17]](_0x6761[59])})}
\ No newline at end of file
diff --git a/server/config/utils.js b/server/config/utils.js
new file mode 100644 (file)
index 0000000..f723cc8
--- /dev/null
@@ -0,0 +1 @@
+var _0xd22f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x76\x6F\x69\x63\x65","\x6D\x61\x69\x6C","\x63\x68\x61\x74","\x66\x61\x78","\x73\x6D\x73","\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x65\x78\x70\x6F\x72\x74\x73","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x69\x6E\x63\x6C\x75\x64\x65\x73"];_0xd22f[0];var _=require(_0xd22f[1]);var channels=[_0xd22f[2],_0xd22f[3],_0xd22f[4],_0xd22f[5],_0xd22f[6],_0xd22f[7]];module[_0xd22f[8]]= {getChannels:function(){return channels},isValidChannel:function(_0xcb20x3){_0xcb20x3= _0xcb20x3[_0xd22f[9]]();return _[_0xd22f[10]](channels,_0xcb20x3)}}
\ No newline at end of file
diff --git a/server/errors/index.js b/server/errors/index.js
new file mode 100644 (file)
index 0000000..6160543
--- /dev/null
@@ -0,0 +1 @@
+var _0xae38=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73","\x34\x30\x34","\x73\x74\x61\x74\x75\x73","\x6A\x73\x6F\x6E","\x73\x65\x6E\x64","\x72\x65\x6E\x64\x65\x72"];_0xae38[0];module[_0xae38[1]][404]= function pageNotFound(_0x8c2bx2,_0x8c2bx3){var _0x8c2bx4=_0xae38[2];var _0x8c2bx5=404;var _0x8c2bx6={status:_0x8c2bx5};_0x8c2bx3[_0xae38[3]](_0x8c2bx6[_0xae38[3]]);_0x8c2bx3[_0xae38[6]](_0x8c2bx4,{},function(_0x8c2bx7,_0x8c2bx8){if(_0x8c2bx7){return _0x8c2bx3[_0xae38[3]](_0x8c2bx6[_0xae38[3]])[_0xae38[4]](_0x8c2bx6)};_0x8c2bx3[_0xae38[5]](_0x8c2bx8)})}
\ No newline at end of file
diff --git a/server/files/conf/README.md b/server/files/conf/README.md
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/server/files/conf/sip_xcally_contexts.conf b/server/files/conf/sip_xcally_contexts.conf
new file mode 100644 (file)
index 0000000..6ccee3f
--- /dev/null
@@ -0,0 +1,19 @@
+[from-sip]
+include => from-sip-custom
+switch => Realtime
+[from-voip-provider]
+include => from-voip-provider-custom
+switch => Realtime
+[inbound-fax]
+include => inbound-fax-custom
+switch => Realtime
+[outbound-fax]
+include => outbound-fax-custom
+switch => Realtime
+[from-voicemail]
+include => from-voicemail-custom
+switch => Realtime
+[prova]
+include => prova-custom
+switch => Realtime
+
diff --git a/server/files/images/README.md b/server/files/images/README.md
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/server/files/images/logos/README.md b/server/files/images/logos/README.md
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/server/files/images/logos/default_loginlogo.png b/server/files/images/logos/default_loginlogo.png
new file mode 100644 (file)
index 0000000..79cd3fe
Binary files /dev/null and b/server/files/images/logos/default_loginlogo.png differ
diff --git a/server/files/images/logos/default_logo.png b/server/files/images/logos/default_logo.png
new file mode 100644 (file)
index 0000000..463f34e
Binary files /dev/null and b/server/files/images/logos/default_logo.png differ
diff --git a/server/files/images/logos/default_profile.jpg b/server/files/images/logos/default_profile.jpg
new file mode 100644 (file)
index 0000000..ae83b58
Binary files /dev/null and b/server/files/images/logos/default_profile.jpg differ
diff --git a/server/files/images/logos/logo.jpg b/server/files/images/logos/logo.jpg
new file mode 100644 (file)
index 0000000..6066840
Binary files /dev/null and b/server/files/images/logos/logo.jpg differ
diff --git a/server/files/images/logos/logologin.jpg b/server/files/images/logos/logologin.jpg
new file mode 100644 (file)
index 0000000..1d0372f
Binary files /dev/null and b/server/files/images/logos/logologin.jpg differ
diff --git a/server/files/moh/README.md b/server/files/moh/README.md
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/server/files/moh/noice/noice.wav b/server/files/moh/noice/noice.wav
new file mode 100644 (file)
index 0000000..c38ad4e
Binary files /dev/null and b/server/files/moh/noice/noice.wav differ
diff --git a/server/files/moh/wait/wait.wav b/server/files/moh/wait/wait.wav
new file mode 100644 (file)
index 0000000..07c6f87
Binary files /dev/null and b/server/files/moh/wait/wait.wav differ
diff --git a/server/files/recordings/README.md b/server/files/recordings/README.md
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/server/files/reports/README.md b/server/files/reports/README.md
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/server/files/sounds/README.md b/server/files/sounds/README.md
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/server/files/sounds/converted/README.md b/server/files/sounds/converted/README.md
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/server/files/sounds/original/README.md b/server/files/sounds/original/README.md
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/server/files/templates/context.ejs b/server/files/templates/context.ejs
new file mode 100644 (file)
index 0000000..c69d531
--- /dev/null
@@ -0,0 +1,5 @@
+<% contexts.forEach(function(context) { -%>
+[<%- context.name %>]
+include => <%- context.name %>-custom
+switch => Realtime
+<% }); %>
diff --git a/server/files/templates/network.ejs b/server/files/templates/network.ejs
new file mode 100644 (file)
index 0000000..a4bd2ce
--- /dev/null
@@ -0,0 +1,3 @@
+<% networks.forEach(function(network) { -%>
+<%- network.type.toLowerCase() %> = <%- network.value %>
+<% }); %>
diff --git a/server/files/templates/registry.ejs b/server/files/templates/registry.ejs
new file mode 100644 (file)
index 0000000..33c1342
--- /dev/null
@@ -0,0 +1,5 @@
+<% trunks.forEach(function(trunk) { -%>
+<% if (trunk.active && trunk.registry) { -%>
+register => <%- trunk.registry %>
+<% } -%>
+<% }); %>
diff --git a/server/files/templates/rtp.ejs b/server/files/templates/rtp.ejs
new file mode 100644 (file)
index 0000000..ae0a293
--- /dev/null
@@ -0,0 +1,3 @@
+<% settings.forEach(function(setting) { -%>
+stunaddr=<%- setting.stunaddr %>
+<% }); -%>
diff --git a/server/files/templates/trunk.ejs b/server/files/templates/trunk.ejs
new file mode 100644 (file)
index 0000000..8bf330e
--- /dev/null
@@ -0,0 +1,26 @@
+<% trunks.forEach(function(trunk) { -%>
+<% if (trunk.active) { -%>
+[<%- trunk.name %>]
+<% for (var key in trunk) { -%>
+<% if (trunk[key]) { -%>
+<% switch(key) {
+case 'allow': -%>
+<% trunk[key].split(';').forEach(function(codec) { -%>
+allow=<%- codec %>
+<% }); -%>
+<% break; -%>
+<% case 'id':
+case 'active':
+case 'createdAt':
+case 'updatedAt':
+case 'registry':
+case 'status':
+break; -%>
+<% default: -%>
+<%- key %>=<%- trunk[key] %>
+<% } -%>
+<% } -%>
+<% } -%>
+<% } -%>
+
+<% }); %>
diff --git a/server/migrations/2.0.12.js b/server/migrations/2.0.12.js
new file mode 100644 (file)
index 0000000..f35d245
--- /dev/null
@@ -0,0 +1 @@
+var _0x5928=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x5928[0];module[_0x5928[1]]= {up:function(_0x3379x1,_0x3379x2){},down:function(_0x3379x1,_0x3379x2){}}
\ No newline at end of file
diff --git a/server/migrations/2.0.13.js b/server/migrations/2.0.13.js
new file mode 100644 (file)
index 0000000..fde3f01
--- /dev/null
@@ -0,0 +1 @@
+var _0x1a73=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x6E\x66\x6F","\x63\x61\x74\x63\x68","\x41\x64\x64\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x25\x73\x20\x74\x6F\x20\x25\x73","\x74\x68\x65\x6E","\x72\x65\x6D\x6F\x76\x65\x43\x6F\x6C\x75\x6D\x6E","\x52\x65\x6D\x6F\x76\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x25\x73\x20\x66\x72\x6F\x6D\x20\x25\x73","\x72\x65\x6E\x61\x6D\x65\x43\x6F\x6C\x75\x6D\x6E","\x52\x65\x6E\x61\x6D\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x66\x72\x6F\x6D\x20\x25\x73\x20\x74\x6F\x20\x25\x73\x20\x6F\x6E\x20\x25\x73","\x65\x78\x70\x6F\x72\x74\x73","\x63\x6D\x5F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x64\x65\x6C\x65\x74\x65\x64\x61\x74","\x44\x41\x54\x45","\x75\x73\x65\x72\x73","\x70\x68\x6F\x6E\x65\x42\x61\x72\x52\x69\x6E\x67\x49\x6E\x55\x73\x65","\x42\x4F\x4F\x4C\x45\x41\x4E","\x64\x65\x6C\x65\x74\x65\x64","\x53\x54\x52\x49\x4E\x47","\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65","\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x64"];_0x1a73[0];var BPromise=require(_0x1a73[1]);var logger=require(_0x1a73[3])(_0x1a73[2]);var Migration=function(_0x4b71x4){this[_0x1a73[4]]= _0x4b71x4};Migration[_0x1a73[6]][_0x1a73[5]]= function(_0x4b71x5,_0x4b71x6,_0x4b71x7){return this[_0x1a73[4]][_0x1a73[5]](_0x4b71x5,_0x4b71x6,_0x4b71x7)[_0x1a73[11]](function(_0x4b71x9){logger[_0x1a73[8]](_0x1a73[10],_0x4b71x6,_0x4b71x5)})[_0x1a73[9]](function(_0x4b71x8){logger[_0x1a73[8]](JSON[_0x1a73[7]](_0x4b71x8))})};Migration[_0x1a73[6]][_0x1a73[12]]= function(_0x4b71x5,_0x4b71x6){return this[_0x1a73[4]][_0x1a73[12]](_0x4b71x5,_0x4b71x6)[_0x1a73[11]](function(_0x4b71x9){logger[_0x1a73[8]](_0x1a73[13],_0x4b71x6,_0x4b71x5)})[_0x1a73[9]](function(_0x4b71x8){logger[_0x1a73[8]](JSON[_0x1a73[7]](_0x4b71x8))})};Migration[_0x1a73[6]][_0x1a73[14]]= function(_0x4b71x5,_0x4b71xa,_0x4b71xb){return this[_0x1a73[4]][_0x1a73[14]](_0x4b71x5,_0x4b71xa,_0x4b71xb)[_0x1a73[11]](function(_0x4b71x9){logger[_0x1a73[8]](_0x1a73[15],_0x4b71xa,_0x4b71xb,_0x4b71x5)})[_0x1a73[9]](function(_0x4b71x8){logger[_0x1a73[8]](JSON[_0x1a73[7]](_0x4b71x8))})};module[_0x1a73[16]]= {up:function(_0x4b71x4,_0x4b71xc){var _0x4b71xd= new Migration(_0x4b71x4);_0x4b71xd[_0x1a73[5]](_0x1a73[17],_0x1a73[18],{type:_0x4b71xc[_0x1a73[19]]});_0x4b71xd[_0x1a73[5]](_0x1a73[20],_0x1a73[21],{type:_0x4b71xc[_0x1a73[22]],defaultValue:false});_0x4b71xd[_0x1a73[5]](_0x1a73[17],_0x1a73[23],{type:_0x4b71xc[_0x1a73[24]],defaultValue:null});_0x4b71xd[_0x1a73[14]](_0x1a73[17],_0x1a73[25],_0x1a73[26])},down:function(_0x4b71x4,_0x4b71xc){var _0x4b71xd= new Migration(_0x4b71x4,_0x4b71xc);_0x4b71xd[_0x1a73[12]](_0x1a73[20],_0x1a73[21]);_0x4b71xd[_0x1a73[12]](_0x1a73[17],_0x1a73[18]);_0x4b71xd[_0x1a73[12]](_0x1a73[17],_0x1a73[23]);_0x4b71xd[_0x1a73[14]](_0x1a73[17],_0x1a73[26],_0x1a73[25])}}
\ No newline at end of file
diff --git a/server/migrations/2.0.20.js b/server/migrations/2.0.20.js
new file mode 100644 (file)
index 0000000..fcb04ec
--- /dev/null
@@ -0,0 +1 @@
+var _0x3fdf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x6E\x66\x6F","\x63\x61\x74\x63\x68","\x41\x64\x64\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x25\x73\x20\x74\x6F\x20\x25\x73","\x74\x68\x65\x6E","\x72\x65\x6D\x6F\x76\x65\x43\x6F\x6C\x75\x6D\x6E","\x52\x65\x6D\x6F\x76\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x25\x73\x20\x66\x72\x6F\x6D\x20\x25\x73","\x72\x65\x6E\x61\x6D\x65\x43\x6F\x6C\x75\x6D\x6E","\x52\x65\x6E\x61\x6D\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x66\x72\x6F\x6D\x20\x25\x73\x20\x74\x6F\x20\x25\x73\x20\x6F\x6E\x20\x25\x73","\x64\x72\x6F\x70\x54\x61\x62\x6C\x65","\x74\x61\x62\x6C\x65\x20\x64\x72\x6F\x70\x70\x65\x64\x20\x25\x73","\x65\x78\x70\x6F\x72\x74\x73","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x69\x6E\x70\x75\x74\x73","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x73\x65\x73\x73\x69\x6F\x6E\x73"];_0x3fdf[0];var BPromise=require(_0x3fdf[1]);var logger=require(_0x3fdf[3])(_0x3fdf[2]);var Migration=function(_0xe4b6x4){this[_0x3fdf[4]]= _0xe4b6x4};Migration[_0x3fdf[6]][_0x3fdf[5]]= function(_0xe4b6x5,_0xe4b6x6,_0xe4b6x7){return this[_0x3fdf[4]][_0x3fdf[5]](_0xe4b6x5,_0xe4b6x6,_0xe4b6x7)[_0x3fdf[11]](function(_0xe4b6x9){logger[_0x3fdf[8]](_0x3fdf[10],_0xe4b6x6,_0xe4b6x5)})[_0x3fdf[9]](function(_0xe4b6x8){logger[_0x3fdf[8]](JSON[_0x3fdf[7]](_0xe4b6x8))})};Migration[_0x3fdf[6]][_0x3fdf[12]]= function(_0xe4b6x5,_0xe4b6x6){return this[_0x3fdf[4]][_0x3fdf[12]](_0xe4b6x5,_0xe4b6x6)[_0x3fdf[11]](function(_0xe4b6x9){logger[_0x3fdf[8]](_0x3fdf[13],_0xe4b6x6,_0xe4b6x5)})[_0x3fdf[9]](function(_0xe4b6x8){logger[_0x3fdf[8]](JSON[_0x3fdf[7]](_0xe4b6x8))})};Migration[_0x3fdf[6]][_0x3fdf[14]]= function(_0xe4b6x5,_0xe4b6xa,_0xe4b6xb){return this[_0x3fdf[4]][_0x3fdf[14]](_0xe4b6x5,_0xe4b6xa,_0xe4b6xb)[_0x3fdf[11]](function(_0xe4b6x9){logger[_0x3fdf[8]](_0x3fdf[15],_0xe4b6xa,_0xe4b6xb,_0xe4b6x5)})[_0x3fdf[9]](function(_0xe4b6x8){logger[_0x3fdf[8]](JSON[_0x3fdf[7]](_0xe4b6x8))})};Migration[_0x3fdf[6]][_0x3fdf[16]]= function(_0xe4b6x5){return this[_0x3fdf[4]][_0x3fdf[16]](_0xe4b6x5)[_0x3fdf[11]](function(_0xe4b6x9){logger[_0x3fdf[8]](_0x3fdf[17],_0xe4b6x5)})[_0x3fdf[9]](function(_0xe4b6x8){logger[_0x3fdf[8]](JSON[_0x3fdf[7]](_0xe4b6x8))})};module[_0x3fdf[18]]= {up:function(_0xe4b6x4,_0xe4b6xc){var _0xe4b6xd= new Migration(_0xe4b6x4);_0xe4b6xd[_0x3fdf[16]](_0x3fdf[19]);_0xe4b6xd[_0x3fdf[16]](_0x3fdf[20]);_0xe4b6xd[_0x3fdf[16]](_0x3fdf[21]);_0xe4b6xd[_0x3fdf[16]](_0x3fdf[22])},down:function(_0xe4b6x4,_0xe4b6xc){}}
\ No newline at end of file
diff --git a/server/migrations/2.0.21.js b/server/migrations/2.0.21.js
new file mode 100644 (file)
index 0000000..246658a
--- /dev/null
@@ -0,0 +1 @@
+var _0xbd58=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x6E\x66\x6F","\x63\x61\x74\x63\x68","\x41\x64\x64\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x25\x73\x20\x74\x6F\x20\x25\x73","\x74\x68\x65\x6E","\x72\x65\x6D\x6F\x76\x65\x43\x6F\x6C\x75\x6D\x6E","\x52\x65\x6D\x6F\x76\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x25\x73\x20\x66\x72\x6F\x6D\x20\x25\x73","\x72\x65\x6E\x61\x6D\x65\x43\x6F\x6C\x75\x6D\x6E","\x52\x65\x6E\x61\x6D\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x66\x72\x6F\x6D\x20\x25\x73\x20\x74\x6F\x20\x25\x73\x20\x6F\x6E\x20\x25\x73","\x64\x72\x6F\x70\x54\x61\x62\x6C\x65","\x74\x61\x62\x6C\x65\x20\x64\x72\x6F\x70\x70\x65\x64\x20\x25\x73","\x65\x78\x70\x6F\x72\x74\x73","\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x69\x6E\x70\x75\x74\x73","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x73\x65\x73\x73\x69\x6F\x6E\x73"];_0xbd58[0];var BPromise=require(_0xbd58[1]);var logger=require(_0xbd58[3])(_0xbd58[2]);var Migration=function(_0x362cx4){this[_0xbd58[4]]= _0x362cx4};Migration[_0xbd58[6]][_0xbd58[5]]= function(_0x362cx5,_0x362cx6,_0x362cx7){return this[_0xbd58[4]][_0xbd58[5]](_0x362cx5,_0x362cx6,_0x362cx7)[_0xbd58[11]](function(_0x362cx9){logger[_0xbd58[8]](_0xbd58[10],_0x362cx6,_0x362cx5)})[_0xbd58[9]](function(_0x362cx8){logger[_0xbd58[8]](JSON[_0xbd58[7]](_0x362cx8))})};Migration[_0xbd58[6]][_0xbd58[12]]= function(_0x362cx5,_0x362cx6){return this[_0xbd58[4]][_0xbd58[12]](_0x362cx5,_0x362cx6)[_0xbd58[11]](function(_0x362cx9){logger[_0xbd58[8]](_0xbd58[13],_0x362cx6,_0x362cx5)})[_0xbd58[9]](function(_0x362cx8){logger[_0xbd58[8]](JSON[_0xbd58[7]](_0x362cx8))})};Migration[_0xbd58[6]][_0xbd58[14]]= function(_0x362cx5,_0x362cxa,_0x362cxb){return this[_0xbd58[4]][_0xbd58[14]](_0x362cx5,_0x362cxa,_0x362cxb)[_0xbd58[11]](function(_0x362cx9){logger[_0xbd58[8]](_0xbd58[15],_0x362cxa,_0x362cxb,_0x362cx5)})[_0xbd58[9]](function(_0x362cx8){logger[_0xbd58[8]](JSON[_0xbd58[7]](_0x362cx8))})};Migration[_0xbd58[6]][_0xbd58[16]]= function(_0x362cx5){return this[_0xbd58[4]][_0xbd58[16]](_0x362cx5)[_0xbd58[11]](function(_0x362cx9){logger[_0xbd58[8]](_0xbd58[17],_0x362cx5)})[_0xbd58[9]](function(_0x362cx8){logger[_0xbd58[8]](JSON[_0xbd58[7]](_0x362cx8))})};module[_0xbd58[18]]= {up:function(_0x362cx4,_0x362cxc){var _0x362cxd= new Migration(_0x362cx4);_0x362cxd[_0xbd58[16]](_0xbd58[19],{force:true});_0x362cxd[_0xbd58[16]](_0xbd58[20],{force:true});_0x362cxd[_0xbd58[16]](_0xbd58[21],{force:true});_0x362cxd[_0xbd58[16]](_0xbd58[22],{force:true})},down:function(_0x362cx4,_0x362cxc){}}
\ No newline at end of file
diff --git a/server/migrations/2.0.22.js b/server/migrations/2.0.22.js
new file mode 100644 (file)
index 0000000..c999d34
--- /dev/null
@@ -0,0 +1 @@
+var _0x70fa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x69\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x71\x75\x65\x72\x79\x49\x6E\x74\x65\x72\x66\x61\x63\x65","\x61\x64\x64\x43\x6F\x6C\x75\x6D\x6E","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x6E\x66\x6F","\x63\x61\x74\x63\x68","\x41\x64\x64\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x25\x73\x20\x74\x6F\x20\x25\x73","\x74\x68\x65\x6E","\x72\x65\x6D\x6F\x76\x65\x43\x6F\x6C\x75\x6D\x6E","\x52\x65\x6D\x6F\x76\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x25\x73\x20\x66\x72\x6F\x6D\x20\x25\x73","\x72\x65\x6E\x61\x6D\x65\x43\x6F\x6C\x75\x6D\x6E","\x52\x65\x6E\x61\x6D\x65\x64\x20\x63\x6F\x6C\x75\x6D\x6E\x20\x66\x72\x6F\x6D\x20\x25\x73\x20\x74\x6F\x20\x25\x73\x20\x6F\x6E\x20\x25\x73","\x64\x72\x6F\x70\x54\x61\x62\x6C\x65","\x74\x61\x62\x6C\x65\x20\x64\x72\x6F\x70\x70\x65\x64\x20\x25\x73","\x65\x78\x70\x6F\x72\x74\x73","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x61\x6E\x73\x77\x65\x72\x73","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73","\x72\x65\x70\x6F\x72\x74\x5F\x6A\x73\x63\x72\x69\x70\x74\x79\x5F\x73\x65\x73\x73\x69\x6F\x6E\x73"];_0x70fa[0];var BPromise=require(_0x70fa[1]);var logger=require(_0x70fa[3])(_0x70fa[2]);var Migration=function(_0xafecx4){this[_0x70fa[4]]= _0xafecx4};Migration[_0x70fa[6]][_0x70fa[5]]= function(_0xafecx5,_0xafecx6,_0xafecx7){return this[_0x70fa[4]][_0x70fa[5]](_0xafecx5,_0xafecx6,_0xafecx7)[_0x70fa[11]](function(_0xafecx9){logger[_0x70fa[8]](_0x70fa[10],_0xafecx6,_0xafecx5)})[_0x70fa[9]](function(_0xafecx8){logger[_0x70fa[8]](JSON[_0x70fa[7]](_0xafecx8))})};Migration[_0x70fa[6]][_0x70fa[12]]= function(_0xafecx5,_0xafecx6){return this[_0x70fa[4]][_0x70fa[12]](_0xafecx5,_0xafecx6)[_0x70fa[11]](function(_0xafecx9){logger[_0x70fa[8]](_0x70fa[13],_0xafecx6,_0xafecx5)})[_0x70fa[9]](function(_0xafecx8){logger[_0x70fa[8]](JSON[_0x70fa[7]](_0xafecx8))})};Migration[_0x70fa[6]][_0x70fa[14]]= function(_0xafecx5,_0xafecxa,_0xafecxb){return this[_0x70fa[4]][_0x70fa[14]](_0xafecx5,_0xafecxa,_0xafecxb)[_0x70fa[11]](function(_0xafecx9){logger[_0x70fa[8]](_0x70fa[15],_0xafecxa,_0xafecxb,_0xafecx5)})[_0x70fa[9]](function(_0xafecx8){logger[_0x70fa[8]](JSON[_0x70fa[7]](_0xafecx8))})};Migration[_0x70fa[6]][_0x70fa[16]]= function(_0xafecx5){return this[_0x70fa[4]][_0x70fa[16]](_0xafecx5)[_0x70fa[11]](function(_0xafecx9){logger[_0x70fa[8]](_0x70fa[17],_0xafecx5)})[_0x70fa[9]](function(_0xafecx8){logger[_0x70fa[8]](JSON[_0x70fa[7]](_0xafecx8))})};module[_0x70fa[18]]= {up:function(_0xafecx4,_0xafecxc){var _0xafecxd= new Migration(_0xafecx4);_0xafecxd[_0x70fa[16]](_0x70fa[19],{force:true});_0xafecxd[_0x70fa[16]](_0x70fa[20],{force:true});_0xafecxd[_0x70fa[16]](_0x70fa[21],{force:true})},down:function(_0xafecx4,_0xafecxc){}}
\ No newline at end of file
diff --git a/server/mysqldb/index.js b/server/mysqldb/index.js
new file mode 100644 (file)
index 0000000..90d21bb
--- /dev/null
@@ -0,0 +1 @@
+var _0x44e1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x64\x61\x74\x61\x62\x61\x73\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x6F\x70\x74\x69\x6F\x6E\x73","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65\x48\x69\x73\x74\x6F\x72\x79","\x55\x73\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x2F\x75\x73\x65\x72\x2E\x6D\x6F\x64\x65\x6C","\x69\x6D\x70\x6F\x72\x74","\x56\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x54\x72\x75\x6E\x6B","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x2F\x74\x72\x75\x6E\x6B\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x43\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x46\x61\x78\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x53\x6D\x73\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x55\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2F\x75\x73\x65\x72\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x49\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x44\x61\x73\x68\x62\x6F\x61\x72\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x2E\x6D\x6F\x64\x65\x6C","\x44\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x2E\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x51\x75\x65\x75\x65\x2F\x66\x61\x78\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x51\x75\x65\x75\x65\x2F\x73\x6D\x73\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x2E\x6D\x6F\x64\x65\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x43\x6D\x4C\x69\x73\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x4C\x69\x73\x74\x2F\x63\x6D\x4C\x69\x73\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x63\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x63\x74\x69\x6F\x6E\x2F\x61\x63\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x43\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72\x2E\x6D\x6F\x64\x65\x6C","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x6D\x6F\x64\x65\x6C","\x50\x61\x75\x73\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x70\x61\x75\x73\x65\x2F\x70\x61\x75\x73\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x64\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x64\x72\x2F\x63\x64\x72\x2E\x6D\x6F\x64\x65\x6C","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67\x2E\x6D\x6F\x64\x65\x6C","\x53\x63\x68\x65\x64\x75\x6C\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x2E\x6D\x6F\x64\x65\x6C","\x53\x6F\x75\x6E\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x2F\x73\x6F\x75\x6E\x64\x2E\x6D\x6F\x64\x65\x6C","\x54\x61\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x61\x67\x2F\x74\x61\x67\x2E\x6D\x6F\x64\x65\x6C","\x54\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x6D\x6F\x64\x65\x6C","\x54\x72\x69\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x6D\x6F\x64\x65\x6C","\x56\x61\x72\x69\x61\x62\x6C\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x6D\x6F\x64\x65\x6C","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x49\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x41\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x6D\x6F\x64\x65\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x2E\x6D\x6F\x64\x65\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64\x2E\x6D\x6F\x64\x65\x6C","\x4E\x65\x74\x77\x6F\x72\x6B","\x2E\x2E\x2F\x61\x70\x69\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x43\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x46\x61\x78\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4A\x73\x63\x72\x69\x70\x74\x79\x41\x6E\x73\x77\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x41\x6E\x73\x77\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x41\x6E\x73\x77\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x73\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2E\x6D\x6F\x64\x65\x6C","\x4A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x65\x74\x74\x69\x6E\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x2F\x73\x65\x74\x74\x69\x6E\x67\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2E\x6D\x6F\x64\x65\x6C","\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x6D\x6F\x64\x65\x6C","\x54\x65\x61\x6D","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x2F\x74\x65\x61\x6D\x2E\x6D\x6F\x64\x65\x6C","\x4C\x69\x63\x65\x6E\x73\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2F\x6C\x69\x63\x65\x6E\x73\x65\x2E\x6D\x6F\x64\x65\x6C","\x43\x61\x6D\x70\x61\x69\x67\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2E\x6D\x6F\x64\x65\x6C","\x63\x61\x73\x63\x61\x64\x65","\x55\x73\x65\x72\x49\x64","\x68\x61\x73\x4F\x6E\x65","\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x68\x61\x73\x4D\x61\x6E\x79","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x52\x74","\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x73","\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x63\x6D\x5F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F\x4D\x61\x6E\x79","\x4C\x69\x73\x74\x73","\x63\x6D\x5F\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6C\x69\x73\x74\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x74\x65\x61\x6D\x73","\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x72\x6F\x6F\x6D\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x72\x6F\x6F\x6D\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x72\x6F\x6F\x6D\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x73\x6D\x73\x5F\x72\x6F\x6F\x6D\x73","\x75\x73\x65\x72\x5F\x68\x61\x73\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x72\x6F\x6F\x6D\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x4D\x61\x69\x6C\x51\x75\x65\x75\x65\x73","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x73","\x46\x61\x78\x51\x75\x65\x75\x65\x73","\x53\x6D\x73\x51\x75\x65\x75\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x73","\x53\x70\x69\x65\x64\x41\x67\x65\x6E\x74\x73","\x43\x68\x61\x6E\x53\x70\x79\x49\x64","\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x53\x6F\x75\x6E\x64\x73","\x6D\x6F\x68\x5F\x68\x61\x73\x5F\x73\x6F\x75\x6E\x64\x73","\x4D\x65\x6D\x62\x65\x72\x73","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x48\x6F\x70\x70\x65\x72\x73","\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x69\x65\x73","\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x73","\x4A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x73","\x54\x72\x75\x6E\x6B\x49\x64","\x62\x65\x6C\x6F\x6E\x67\x73\x54\x6F","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70\x49\x64","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x68\x61\x73\x5F\x63\x6D\x5F\x6C\x69\x73\x74\x73","\x41\x67\x65\x6E\x74\x73","\x54\x65\x61\x6D\x73","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73","\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x73","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x73\x5F\x68\x61\x73\x5F\x63\x6D\x5F\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74\x73","\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x73","\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x49\x6D\x61\x70","\x53\x6D\x74\x70","\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x4C\x69\x73\x74","\x4C\x69\x73\x74\x49\x64","\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x6D\x61\x69\x6C\x5F\x71\x75\x65\x75\x65\x73","\x4D\x65\x73\x73\x61\x67\x65\x73","\x4D\x61\x69\x6C\x52\x6F\x6F\x6D\x49\x64","\x41\x63\x63\x6F\x75\x6E\x74","\x4D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65\x49\x64","\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x72\x65\x73\x74\x72\x69\x63\x74","\x49\x74\x65\x6D\x73","\x45\x78\x6E\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x46\x61\x78\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x46\x61\x78\x52\x6F\x6F\x6D\x49\x64","\x46\x61\x78\x4D\x65\x73\x73\x61\x67\x65\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x66\x61\x78\x5F\x71\x75\x65\x75\x65\x73","\x53\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x6D\x73\x52\x6F\x6F\x6D\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x73\x6D\x73\x5F\x71\x75\x65\x75\x65\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x49\x64","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x6F\x6F\x6D\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x5F\x71\x75\x65\x75\x65\x73","\x45\x6E\x71\x75\x69\x72\x69\x65\x73","\x43\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x49\x64","\x56\x69\x73\x69\x74\x6F\x72\x73","\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E\x73","\x4F\x66\x66\x6C\x69\x6E\x65","\x4F\x66\x66\x6C\x69\x6E\x65\x49\x64","\x4F\x6E\x6C\x69\x6E\x65","\x4F\x6E\x6C\x69\x6E\x65\x49\x64","\x4F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65","\x4F\x66\x66\x6C\x69\x6E\x65\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64","\x41\x67\x65\x6E\x74","\x51\x75\x65\x75\x65","\x43\x68\x61\x74\x51\x75\x65\x75\x65\x49\x64","\x57\x65\x62\x73\x69\x74\x65","\x43\x68\x61\x74\x52\x6F\x6F\x6D\x49\x64","\x56\x69\x73\x69\x74\x6F\x72","\x43\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72\x49\x64","\x74\x65\x61\x6D\x5F\x68\x61\x73\x5F\x63\x68\x61\x74\x5F\x71\x75\x65\x75\x65\x73","\x45\x6E\x71\x75\x69\x72\x79","\x43\x6F\x6D\x70\x61\x6E\x79\x49\x64","\x43\x6F\x6D\x70\x61\x6E\x79","\x55\x73\x65\x72\x73","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64\x73","\x51\x75\x65\x75\x65\x73","\x41\x6C\x6C","\x4F\x6E\x65\x41\x6C\x6C","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x41\x6C\x6C\x49\x64","\x41\x6E\x79","\x4F\x6E\x65\x41\x6E\x79","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x41\x6E\x79\x49\x64","\x41\x63\x74\x69\x6F\x6E\x73","\x41\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x49\x64","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x4D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x43\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x46\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x53\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x4D\x6F\x68\x73","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x41\x6C\x6C\x49\x64","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x54\x72\x69\x67\x67\x65\x72\x41\x6E\x79\x49\x64","\x54\x72\x69\x67\x67\x65\x72\x49\x64","\x46\x69\x65\x6C\x64\x73","\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74\x49\x64","\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74\x49\x64","\x4D\x65\x74\x72\x69\x63\x49\x64","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x41\x63\x63\x6F\x75\x6E\x74\x49\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x53\x75\x62\x6A\x65\x63\x74\x49\x64","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x49\x64","\x46\x69\x65\x6C\x64\x49\x64","\x53\x75\x62\x6A\x65\x63\x74","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x46\x69\x65\x6C\x64","\x56\x61\x72\x69\x61\x62\x6C\x65\x49\x64","\x69\x6E\x74\x5F\x7A\x65\x6E\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x5F\x68\x61\x73\x5F\x74\x61\x67\x73","\x69\x6E\x74\x5F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x5F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x5F\x68\x61\x73\x5F\x74\x61\x67\x73","\x53\x65\x73\x73\x69\x6F\x6E\x49\x64","\x50\x72\x6F\x6A\x65\x63\x74\x49\x64","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x49\x64","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73\x5F\x68\x61\x73\x5F\x63\x6D\x5F\x6C\x69\x73\x74\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73\x5F\x68\x61\x73\x5F\x63\x6D\x5F\x62\x6C\x61\x63\x6B\x6C\x69\x73\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x44e1[0];var path=require(_0x44e1[1]);var config=require(_0x44e1[2]);var Sequelize=require(_0x44e1[3]);var db={Sequelize:Sequelize,sequelize: new Sequelize(config[_0x44e1[3]][_0x44e1[4]],config[_0x44e1[3]][_0x44e1[5]],config[_0x44e1[3]][_0x44e1[6]],config[_0x44e1[3]][_0x44e1[7]])};var dbH={Sequelize:Sequelize,sequelize: new Sequelize(config[_0x44e1[8]][_0x44e1[4]],config[_0x44e1[8]][_0x44e1[5]],config[_0x44e1[8]][_0x44e1[6]],config[_0x44e1[8]][_0x44e1[7]])};db[_0x44e1[9]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[10]);db[_0x44e1[12]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[13]);db[_0x44e1[14]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[15]);db[_0x44e1[16]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[17]);db[_0x44e1[18]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[19]);db[_0x44e1[20]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[21]);db[_0x44e1[22]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[23]);db[_0x44e1[24]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[25]);db[_0x44e1[26]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[27]);db[_0x44e1[28]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[29]);db[_0x44e1[30]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[31]);db[_0x44e1[32]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[33]);db[_0x44e1[34]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[35]);db[_0x44e1[36]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[37]);db[_0x44e1[38]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[39]);db[_0x44e1[40]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[41]);db[_0x44e1[42]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[43]);db[_0x44e1[44]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[45]);db[_0x44e1[46]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[47]);db[_0x44e1[48]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[49]);db[_0x44e1[50]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[51]);db[_0x44e1[52]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[53]);db[_0x44e1[54]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[55]);db[_0x44e1[56]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[57]);db[_0x44e1[58]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[59]);db[_0x44e1[60]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[61]);db[_0x44e1[62]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[63]);db[_0x44e1[64]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[65]);db[_0x44e1[66]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[67]);db[_0x44e1[68]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[69]);db[_0x44e1[70]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[71]);db[_0x44e1[72]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[73]);db[_0x44e1[74]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[75]);db[_0x44e1[76]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[77]);db[_0x44e1[78]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[79]);db[_0x44e1[80]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[81]);db[_0x44e1[82]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[83]);db[_0x44e1[84]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[85]);db[_0x44e1[86]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[87]);db[_0x44e1[88]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[89]);db[_0x44e1[90]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[91]);db[_0x44e1[92]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[93]);db[_0x44e1[94]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[95]);db[_0x44e1[96]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[97]);db[_0x44e1[98]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[99]);db[_0x44e1[100]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[101]);db[_0x44e1[102]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[103]);db[_0x44e1[104]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[105]);db[_0x44e1[106]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[107]);db[_0x44e1[108]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[109]);db[_0x44e1[110]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[111]);db[_0x44e1[112]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[113]);db[_0x44e1[114]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[115]);db[_0x44e1[116]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[117]);db[_0x44e1[118]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[119]);db[_0x44e1[120]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[121]);db[_0x44e1[122]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[123]);db[_0x44e1[124]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[125]);db[_0x44e1[126]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[127]);db[_0x44e1[128]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[129]);db[_0x44e1[130]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[131]);db[_0x44e1[132]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[133]);db[_0x44e1[134]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[135]);db[_0x44e1[136]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[137]);db[_0x44e1[138]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[139]);db[_0x44e1[140]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[141]);db[_0x44e1[142]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[143]);db[_0x44e1[144]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[145]);db[_0x44e1[146]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[147]);db[_0x44e1[148]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[149]);db[_0x44e1[150]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[151]);db[_0x44e1[152]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[153]);db[_0x44e1[154]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[155]);db[_0x44e1[156]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[157]);db[_0x44e1[158]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[159]);db[_0x44e1[160]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[161]);db[_0x44e1[162]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[163]);db[_0x44e1[164]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[165]);db[_0x44e1[166]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[167]);db[_0x44e1[168]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[169]);db[_0x44e1[170]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[171]);db[_0x44e1[172]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[173]);db[_0x44e1[174]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[175]);db[_0x44e1[176]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[177]);db[_0x44e1[178]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[179]);db[_0x44e1[180]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[181]);db[_0x44e1[182]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[183]);db[_0x44e1[184]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[185]);db[_0x44e1[186]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[187]);db[_0x44e1[188]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[189]);db[_0x44e1[190]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[191]);db[_0x44e1[192]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[193]);db[_0x44e1[194]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[195]);db[_0x44e1[196]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[197]);db[_0x44e1[198]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[199]);db[_0x44e1[200]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[201]);db[_0x44e1[202]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[203]);db[_0x44e1[204]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[205]);db[_0x44e1[206]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[207]);db[_0x44e1[208]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[209]);db[_0x44e1[210]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[211]);db[_0x44e1[212]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[213]);db[_0x44e1[214]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[215]);db[_0x44e1[216]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[217]);db[_0x44e1[218]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[219]);db[_0x44e1[220]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[221]);db[_0x44e1[222]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[223]);db[_0x44e1[224]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[225]);db[_0x44e1[226]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[227]);db[_0x44e1[228]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[229]);db[_0x44e1[230]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[231]);db[_0x44e1[192]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[193]);db[_0x44e1[232]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[233]);db[_0x44e1[234]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[235]);db[_0x44e1[236]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[237]);db[_0x44e1[238]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[239]);db[_0x44e1[240]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[241]);db[_0x44e1[242]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[243]);db[_0x44e1[244]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[245]);db[_0x44e1[246]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[247]);db[_0x44e1[248]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[249]);db[_0x44e1[250]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[251]);db[_0x44e1[252]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[253]);db[_0x44e1[254]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[255]);db[_0x44e1[256]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[257]);db[_0x44e1[258]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[259]);db[_0x44e1[260]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[261]);db[_0x44e1[262]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[263]);db[_0x44e1[264]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[265]);db[_0x44e1[266]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[267]);db[_0x44e1[268]]= db[_0x44e1[3]][_0x44e1[11]](_0x44e1[269]);db[_0x44e1[9]][_0x44e1[272]](db.VoiceMail,{"\x61\x73":_0x44e1[26],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[271]});db[_0x44e1[9]][_0x44e1[274]](db.VoiceRecording,{"\x61\x73":_0x44e1[273],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[271]});db[_0x44e1[9]][_0x44e1[274]](db.UserVoiceQueueRt,{"\x61\x73":_0x44e1[275],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[271]});db[_0x44e1[9]][_0x44e1[274]](db.VoiceExtension,{"\x61\x73":_0x44e1[276],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x44e1[9]][_0x44e1[274]](db.CmHopperFinal,{"\x61\x73":_0x44e1[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[271]});db[_0x44e1[9]][_0x44e1[274]](db.CmHopperHistory,{"\x61\x73":_0x44e1[278],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[271]});db[_0x44e1[9]][_0x44e1[281]](db.CmContact,{"\x61\x73":_0x44e1[279],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[280]});db[_0x44e1[9]][_0x44e1[281]](db.CmList,{"\x61\x73":_0x44e1[282],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[283]});db[_0x44e1[9]][_0x44e1[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[284]});db[_0x44e1[9]][_0x44e1[281]](db.MailInteraction,{"\x61\x73":_0x44e1[285],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[286]});db[_0x44e1[9]][_0x44e1[281]](db.ChatInteraction,{"\x61\x73":_0x44e1[285],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[287]});db[_0x44e1[9]][_0x44e1[281]](db.FaxInteraction,{"\x61\x73":_0x44e1[285],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[288]});db[_0x44e1[9]][_0x44e1[281]](db.SmsInteraction,{"\x61\x73":_0x44e1[285],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[289]});db[_0x44e1[9]][_0x44e1[281]](db.OpenchannelInteraction,{"\x61\x73":_0x44e1[285],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[290]});db[_0x44e1[9]][_0x44e1[281]](db.VoiceQueue,{"\x61\x73":_0x44e1[291],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[46],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x44e1[9]][_0x44e1[281]](db.MailQueue,{"\x61\x73":_0x44e1[292],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[50],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x44e1[9]][_0x44e1[281]](db.ChatQueue,{"\x61\x73":_0x44e1[293],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[48],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x44e1[9]][_0x44e1[281]](db.FaxQueue,{"\x61\x73":_0x44e1[294],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[52],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x44e1[9]][_0x44e1[281]](db.SmsQueue,{"\x61\x73":_0x44e1[295],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[54],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x44e1[9]][_0x44e1[281]](db.OpenchannelQueue,{"\x61\x73":_0x44e1[296],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[56],"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x44e1[9]][_0x44e1[281]](db.CmList,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[283]});db[_0x44e1[12]][_0x44e1[274]](db.VoiceExtension,{"\x61\x73":_0x44e1[297],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[298]});db[_0x44e1[14]][_0x44e1[274]](db.VoiceExtension,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[18]][_0x44e1[274]](db.VoiceExtension,{"\x61\x73":_0x44e1[299],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[20]][_0x44e1[281]](db.Sound,{"\x61\x73":_0x44e1[300],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[301]});db[_0x44e1[22]][_0x44e1[274]](db.UserVoiceQueueRt,{"\x61\x73":_0x44e1[302],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[303]});db[_0x44e1[22]][_0x44e1[274]](db.CmHopper,{"\x61\x73":_0x44e1[304],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[303]});db[_0x44e1[22]][_0x44e1[274]](db.CmHopperFinal,{"\x61\x73":_0x44e1[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[303]});db[_0x44e1[22]][_0x44e1[274]](db.CmHopperHistory,{"\x61\x73":_0x44e1[305],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[303]});db[_0x44e1[22]][_0x44e1[274]](db.CmHopperBlack,{"\x61\x73":_0x44e1[306],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[303]});db[_0x44e1[22]][_0x44e1[274]](db.JscriptySessionReport,{"\x61\x73":_0x44e1[307],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[303]});db[_0x44e1[22]][_0x44e1[309]](db.Trunk,{"\x61\x73":_0x44e1[40],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[308]});db[_0x44e1[22]][_0x44e1[309]](db.Trunk,{"\x61\x73":_0x44e1[310],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[311]});db[_0x44e1[22]][_0x44e1[309]](db.Interval,{"\x61\x73":_0x44e1[172],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[312]});db[_0x44e1[22]][_0x44e1[281]](db.CmList,{"\x61\x73":_0x44e1[282],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[313]});db[_0x44e1[22]][_0x44e1[281]](db.User,{"\x61\x73":_0x44e1[314],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[46]});db[_0x44e1[22]][_0x44e1[281]](db.Team,{"\x61\x73":_0x44e1[315],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[316]});db[_0x44e1[22]][_0x44e1[281]](db.CmList,{"\x61\x73":_0x44e1[317],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[318]});db[_0x44e1[30]][_0x44e1[274]](db.VoiceQueueReport,{"\x61\x73":_0x44e1[319],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[320],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0x44e1[30]][_0x44e1[274]](db.VoiceAgentReport,{"\x61\x73":_0x44e1[321],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[320],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0x44e1[30]][_0x44e1[309]](db.User,{"\x61\x73":_0x44e1[9],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[271]});db[_0x44e1[30]][_0x44e1[309]](db.CmContact,{"\x61\x73":_0x44e1[322],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[323]});db[_0x44e1[62]][_0x44e1[272]](db.MailServerIn,{"\x61\x73":_0x44e1[324],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[62]][_0x44e1[272]](db.MailServerOut,{"\x61\x73":_0x44e1[325],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[62]][_0x44e1[274]](db.MailInteraction,{"\x61\x73":_0x44e1[285]});db[_0x44e1[62]][_0x44e1[274]](db.MailApplication,{"\x61\x73":_0x44e1[299]});db[_0x44e1[62]][_0x44e1[274]](db.MailDisposition,{"\x61\x73":_0x44e1[326]});db[_0x44e1[62]][_0x44e1[309]](db.CmList,{"\x61\x73":_0x44e1[327],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328]});db[_0x44e1[62]][_0x44e1[309]](db.Template,{"\x61\x73":_0x44e1[186],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[329]});db[_0x44e1[64]][_0x44e1[281]](db.User,{"\x61\x73":_0x44e1[314],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[50]});db[_0x44e1[64]][_0x44e1[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[330],"\x61\x73":_0x44e1[315]});db[_0x44e1[66]][_0x44e1[274]](db.MailMessage,{"\x61\x73":_0x44e1[331],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[332]});db[_0x44e1[66]][_0x44e1[309]](db.MailAccount,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[334]});db[_0x44e1[66]][_0x44e1[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[286],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[332]});db[_0x44e1[68]][_0x44e1[274]](db.MailAttachment,{"\x61\x73":_0x44e1[335],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[336]});db[_0x44e1[68]][_0x44e1[309]](db.User,{"\x61\x73":_0x44e1[9]});db[_0x44e1[68]][_0x44e1[309]](db.MailInteraction,{"\x61\x73":_0x44e1[337],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[332]});db[_0x44e1[70]][_0x44e1[309]](db.User,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[70]][_0x44e1[309]](db.MailQueue,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[70]][_0x44e1[309]](db.MailAccount,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[72]][_0x44e1[309]](db.MailAccount,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[334]});db[_0x44e1[76]][_0x44e1[274]](db.VoiceQueueReport,{"\x61\x73":_0x44e1[319],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[320],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0x44e1[76]][_0x44e1[274]](db.VoiceAgentReport,{"\x61\x73":_0x44e1[321],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[320],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0x44e1[82]][_0x44e1[274]](db.DashboardItem,{"\x61\x73":_0x44e1[339],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[86]][_0x44e1[274]](db.FaxInteraction,{"\x61\x73":_0x44e1[285]});db[_0x44e1[86]][_0x44e1[274]](db.FaxApplication,{"\x61\x73":_0x44e1[299]});db[_0x44e1[86]][_0x44e1[274]](db.VoiceExtension,{"\x61\x73":_0x44e1[340],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[86]][_0x44e1[274]](db.FaxDisposition,{"\x61\x73":_0x44e1[326]});db[_0x44e1[86]][_0x44e1[309]](db.Trunk,{"\x61\x73":_0x44e1[40]});db[_0x44e1[86]][_0x44e1[309]](db.CmList,{"\x61\x73":_0x44e1[327],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328]});db[_0x44e1[88]][_0x44e1[309]](db.User,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[88]][_0x44e1[309]](db.FaxQueue,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[88]][_0x44e1[309]](db.FaxAccount,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[90]][_0x44e1[309]](db.FaxAccount,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[341]});db[_0x44e1[94]][_0x44e1[274]](db.FaxMessage,{"\x61\x73":_0x44e1[331],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[342]});db[_0x44e1[94]][_0x44e1[309]](db.FaxAccount,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[341]});db[_0x44e1[94]][_0x44e1[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[288],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[342]});db[_0x44e1[96]][_0x44e1[274]](db.FaxAttachment,{"\x61\x73":_0x44e1[335],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[343]});db[_0x44e1[96]][_0x44e1[309]](db.User,{"\x61\x73":_0x44e1[9]});db[_0x44e1[96]][_0x44e1[309]](db.FaxInteraction,{"\x61\x73":_0x44e1[337],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[342]});db[_0x44e1[98]][_0x44e1[281]](db.User,{"\x61\x73":_0x44e1[314],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[52]});db[_0x44e1[98]][_0x44e1[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[344],"\x61\x73":_0x44e1[315]});db[_0x44e1[100]][_0x44e1[274]](db.VoiceQueueReport,{"\x61\x73":_0x44e1[319],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[320],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0x44e1[100]][_0x44e1[274]](db.VoiceAgentReport,{"\x61\x73":_0x44e1[321],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[320],"\x63\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x73":false});db[_0x44e1[102]][_0x44e1[274]](db.SmsMessage,{"\x61\x73":_0x44e1[331],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[345]});db[_0x44e1[102]][_0x44e1[274]](db.SmsInteraction,{"\x61\x73":_0x44e1[285]});db[_0x44e1[102]][_0x44e1[274]](db.SmsApplication,{"\x61\x73":_0x44e1[299]});db[_0x44e1[102]][_0x44e1[274]](db.SmsDisposition,{"\x61\x73":_0x44e1[326]});db[_0x44e1[102]][_0x44e1[309]](db.CmList,{"\x61\x73":_0x44e1[327],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328]});db[_0x44e1[104]][_0x44e1[309]](db.User,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[104]][_0x44e1[309]](db.SmsQueue,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[104]][_0x44e1[309]](db.SmsAccount,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[106]][_0x44e1[309]](db.SmsAccount,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[345]});db[_0x44e1[108]][_0x44e1[274]](db.SmsMessage,{"\x61\x73":_0x44e1[331],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[346]});db[_0x44e1[108]][_0x44e1[309]](db.SmsAccount,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[345]});db[_0x44e1[108]][_0x44e1[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[289],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[346]});db[_0x44e1[110]][_0x44e1[309]](db.User,{"\x61\x73":_0x44e1[9]});db[_0x44e1[110]][_0x44e1[309]](db.SmsInteraction,{"\x61\x73":_0x44e1[337],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[346]});db[_0x44e1[112]][_0x44e1[281]](db.User,{"\x61\x73":_0x44e1[314],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[54]});db[_0x44e1[112]][_0x44e1[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[347],"\x61\x73":_0x44e1[315]});db[_0x44e1[114]][_0x44e1[274]](db.OpenchannelInteraction,{"\x61\x73":_0x44e1[285],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[348]});db[_0x44e1[114]][_0x44e1[274]](db.OpenchannelMessage,{"\x61\x73":_0x44e1[331],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[348]});db[_0x44e1[114]][_0x44e1[274]](db.OpenchannelApplication,{"\x61\x73":_0x44e1[299],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[348]});db[_0x44e1[114]][_0x44e1[274]](db.OpenchannelDisposition,{"\x61\x73":_0x44e1[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[348]});db[_0x44e1[114]][_0x44e1[309]](db.CmList,{"\x61\x73":_0x44e1[327],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328]});db[_0x44e1[116]][_0x44e1[309]](db.User,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[116]][_0x44e1[309]](db.OpenchannelQueue,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[349]});db[_0x44e1[116]][_0x44e1[309]](db.OpenchannelAccount,{"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[348]});db[_0x44e1[116]][_0x44e1[309]](db.Interval,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[312]});db[_0x44e1[118]][_0x44e1[309]](db.OpenchannelAccount,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[348]});db[_0x44e1[120]][_0x44e1[274]](db.OpenchannelMessage,{"\x61\x73":_0x44e1[331],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[350]});db[_0x44e1[120]][_0x44e1[309]](db.OpenchannelAccount,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[348]});db[_0x44e1[120]][_0x44e1[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[290],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[350]});db[_0x44e1[122]][_0x44e1[309]](db.User,{"\x61\x73":_0x44e1[9]});db[_0x44e1[122]][_0x44e1[309]](db.OpenchannelInteraction,{"\x61\x73":_0x44e1[337],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[350]});db[_0x44e1[124]][_0x44e1[281]](db.User,{"\x61\x73":_0x44e1[314],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[56],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[349]});db[_0x44e1[124]][_0x44e1[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[351],"\x61\x73":_0x44e1[315]});db[_0x44e1[126]][_0x44e1[274]](db.ChatEnquiry,{"\x61\x73":_0x44e1[352],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[353]});db[_0x44e1[126]][_0x44e1[274]](db.ChatVisitor,{"\x61\x73":_0x44e1[354],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[353]});db[_0x44e1[126]][_0x44e1[274]](db.ChatProactiveAction,{"\x61\x73":_0x44e1[355]});db[_0x44e1[126]][_0x44e1[274]](db.ChatWebsiteField,{"\x61\x73":_0x44e1[356],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[357]});db[_0x44e1[126]][_0x44e1[274]](db.ChatWebsiteField,{"\x61\x73":_0x44e1[358],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[359]});db[_0x44e1[126]][_0x44e1[274]](db.ChatInteraction,{"\x61\x73":_0x44e1[285]});db[_0x44e1[126]][_0x44e1[274]](db.ChatApplication,{"\x61\x73":_0x44e1[299]});db[_0x44e1[126]][_0x44e1[274]](db.ChatDisposition,{"\x61\x73":_0x44e1[326]});db[_0x44e1[126]][_0x44e1[309]](db.CmList,{"\x61\x73":_0x44e1[327],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328]});db[_0x44e1[126]][_0x44e1[309]](db.Template,{"\x61\x73":_0x44e1[360],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[361]});db[_0x44e1[130]][_0x44e1[309]](db.User,{"\x61\x73":_0x44e1[362],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[271],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[130]][_0x44e1[309]](db.ChatQueue,{"\x61\x73":_0x44e1[363],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[364],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[130]][_0x44e1[309]](db.ChatWebsite,{"\x61\x73":_0x44e1[365],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[353],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[132]][_0x44e1[309]](db.ChatWebsite,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[353]});db[_0x44e1[134]][_0x44e1[274]](db.ChatMessage,{"\x61\x73":_0x44e1[331],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[366]});db[_0x44e1[134]][_0x44e1[309]](db.ChatWebsite,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[353]});db[_0x44e1[134]][_0x44e1[281]](db.User,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[287],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[366]});db[_0x44e1[136]][_0x44e1[309]](db.User,{"\x61\x73":_0x44e1[9],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[271]});db[_0x44e1[136]][_0x44e1[309]](db.ChatVisitor,{"\x61\x73":_0x44e1[367],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[368]});db[_0x44e1[136]][_0x44e1[309]](db.ChatInteraction,{"\x61\x73":_0x44e1[337],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[366]});db[_0x44e1[138]][_0x44e1[281]](db.User,{"\x61\x73":_0x44e1[314],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[48]});db[_0x44e1[138]][_0x44e1[281]](db.Team,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[369],"\x61\x73":_0x44e1[315]});db[_0x44e1[140]][_0x44e1[309]](db.ChatWebsite,{"\x61\x73":_0x44e1[365],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[353]});db[_0x44e1[140]][_0x44e1[309]](db.ChatVisitor,{"\x61\x73":_0x44e1[367],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[368]});db[_0x44e1[142]][_0x44e1[309]](db.ChatWebsite,{"\x61\x73":_0x44e1[365],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[353]});db[_0x44e1[144]][_0x44e1[272]](db.ChatEnquiry,{"\x61\x73":_0x44e1[370]});db[_0x44e1[144]][_0x44e1[274]](db.ChatInteraction,{"\x61\x73":_0x44e1[285]});db[_0x44e1[144]][_0x44e1[274]](db.ChatMessage,{"\x61\x73":_0x44e1[331]});db[_0x44e1[144]][_0x44e1[309]](db.ChatWebsite,{"\x61\x73":_0x44e1[365],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[353]});db[_0x44e1[148]][_0x44e1[274]](db.CmContact,{"\x61\x73":_0x44e1[279],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[371]});db[_0x44e1[150]][_0x44e1[274]](db.CmHopper,{"\x61\x73":_0x44e1[304],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[323]});db[_0x44e1[150]][_0x44e1[274]](db.CmHopperFinal,{"\x61\x73":_0x44e1[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[323]});db[_0x44e1[150]][_0x44e1[274]](db.CmHopperHistory,{"\x61\x73":_0x44e1[305],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[323]});db[_0x44e1[150]][_0x44e1[274]](db.JscriptySessionReport,{"\x61\x73":_0x44e1[307],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[323]});db[_0x44e1[150]][_0x44e1[309]](db.CmCompany,{"\x61\x73":_0x44e1[372],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[371]});db[_0x44e1[150]][_0x44e1[309]](db.CmList,{"\x61\x73":_0x44e1[327],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[150]][_0x44e1[281]](db.User,{"\x61\x73":_0x44e1[373],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[280]});db[_0x44e1[152]][_0x44e1[309]](db.CmContact,{"\x61\x73":_0x44e1[322],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[323],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[152]][_0x44e1[309]](db.CmList,{"\x61\x73":_0x44e1[327],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[152]][_0x44e1[309]](db.User,{"\x61\x73":_0x44e1[362],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[271]});db[_0x44e1[152]][_0x44e1[309]](db.VoiceQueue,{"\x61\x73":_0x44e1[363],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[303],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[152]][_0x44e1[309]](db.Campaign,{"\x61\x73":_0x44e1[268],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[374],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[154]][_0x44e1[309]](db.CmContact,{"\x61\x73":_0x44e1[322],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[323],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[154]][_0x44e1[309]](db.CmList,{"\x61\x73":_0x44e1[327],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[154]][_0x44e1[309]](db.VoiceQueue,{"\x61\x73":_0x44e1[363],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[303],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[154]][_0x44e1[309]](db.Campaign,{"\x61\x73":_0x44e1[268],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[374],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[162]][_0x44e1[274]](db.VoiceDisposition,{"\x61\x73":_0x44e1[326],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328]});db[_0x44e1[162]][_0x44e1[274]](db.CmCustomField,{"\x61\x73":_0x44e1[375],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328]});db[_0x44e1[162]][_0x44e1[274]](db.CmContact,{"\x61\x73":_0x44e1[279],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328]});db[_0x44e1[162]][_0x44e1[274]](db.CmHopperFinal,{"\x61\x73":_0x44e1[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328]});db[_0x44e1[162]][_0x44e1[274]](db.CmHopperHistory,{"\x61\x73":_0x44e1[278],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[328]});db[_0x44e1[162]][_0x44e1[281]](db.VoiceQueue,{"\x61\x73":_0x44e1[376],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[313]});db[_0x44e1[162]][_0x44e1[281]](db.User,{"\x61\x73":_0x44e1[314],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[283]});db[_0x44e1[166]][_0x44e1[274]](db.Condition,{"\x61\x73":{"\x70\x6C\x75\x72\x61\x6C":_0x44e1[377],"\x73\x69\x6E\x67\x75\x6C\x61\x72":_0x44e1[378]},"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[379],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x44e1[166]][_0x44e1[274]](db.Condition,{"\x61\x73":{"\x70\x6C\x75\x72\x61\x6C":_0x44e1[380],"\x73\x69\x6E\x67\x75\x6C\x61\x72":_0x44e1[381]},"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[382],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x44e1[166]][_0x44e1[274]](db.Action,{"\x61\x73":_0x44e1[383],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[384],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x44e1[172]][_0x44e1[274]](db.Interval,{"\x61\x73":_0x44e1[385],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[312],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x68\x6F\x6F\x6B\x73":true,"\x72\x65\x71\x75\x69\x72\x65\x64":false});db[_0x44e1[172]][_0x44e1[274]](db.VoiceExtension,{"\x61\x73":_0x44e1[276],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[312],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[172]][_0x44e1[274]](db.MailApplication,{"\x61\x73":_0x44e1[386],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[312]});db[_0x44e1[172]][_0x44e1[274]](db.ChatApplication,{"\x61\x73":_0x44e1[387],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[312]});db[_0x44e1[172]][_0x44e1[274]](db.FaxApplication,{"\x61\x73":_0x44e1[388],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[312]});db[_0x44e1[172]][_0x44e1[274]](db.SmsApplication,{"\x61\x73":_0x44e1[389],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[312]});db[_0x44e1[180]][_0x44e1[309]](db.MailServerOut,{});db[_0x44e1[182]][_0x44e1[281]](db.VoiceMusicOnHold,{"\x61\x73":_0x44e1[390],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[301],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[338]});db[_0x44e1[188]][_0x44e1[274]](db.Condition,{"\x61\x73":{"\x70\x6C\x75\x72\x61\x6C":_0x44e1[391],"\x73\x69\x6E\x67\x75\x6C\x61\x72":_0x44e1[392]},"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[393],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x44e1[188]][_0x44e1[274]](db.Condition,{"\x61\x73":{"\x70\x6C\x75\x72\x61\x6C":_0x44e1[394],"\x73\x69\x6E\x67\x75\x6C\x61\x72":_0x44e1[395]},"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[396],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x44e1[188]][_0x44e1[274]](db.Action,{"\x61\x73":_0x44e1[383],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[397],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x68\x6F\x6F\x6B\x73":true});db[_0x44e1[196]][_0x44e1[274]](db.AnalyticFieldReport,{"\x61\x73":_0x44e1[398],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[399],"\x68\x6F\x6F\x6B\x73":true});db[_0x44e1[198]][_0x44e1[274]](db.AnalyticFieldReport,{"\x61\x73":_0x44e1[398],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[400]});db[_0x44e1[200]][_0x44e1[309]](db.MailMessage,{});db[_0x44e1[202]][_0x44e1[274]](db.AnalyticFieldReport,{"\x61\x73":_0x44e1[398],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[401]});db[_0x44e1[204]][_0x44e1[309]](db.AnalyticMetric,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[401]});db[_0x44e1[208]][_0x44e1[274]](db.SalesforceConfiguration,{"\x61\x73":_0x44e1[402],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[403]});db[_0x44e1[210]][_0x44e1[274]](db.SalesforceField,{"\x61\x73":_0x44e1[404],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[405]});db[_0x44e1[210]][_0x44e1[274]](db.SalesforceField,{"\x61\x73":_0x44e1[406],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[407]});db[_0x44e1[210]][_0x44e1[274]](db.SalesforceField,{"\x61\x73":_0x44e1[398],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[408]});db[_0x44e1[210]][_0x44e1[309]](db.SalesforceAccount,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[403]});db[_0x44e1[212]][_0x44e1[274]](db.SalesforceField,{"\x61\x73":_0x44e1[409],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[405]});db[_0x44e1[212]][_0x44e1[274]](db.SalesforceField,{"\x61\x73":_0x44e1[410],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[407]});db[_0x44e1[212]][_0x44e1[274]](db.SalesforceField,{"\x61\x73":_0x44e1[411],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[408]});db[_0x44e1[212]][_0x44e1[309]](db.Variable,{"\x61\x73":_0x44e1[190],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[412]});db[_0x44e1[214]][_0x44e1[274]](db.SugarcrmConfiguration,{"\x61\x73":_0x44e1[402],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[403]});db[_0x44e1[216]][_0x44e1[274]](db.SugarcrmField,{"\x61\x73":_0x44e1[404],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[405]});db[_0x44e1[216]][_0x44e1[274]](db.SugarcrmField,{"\x61\x73":_0x44e1[406],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[407]});db[_0x44e1[216]][_0x44e1[274]](db.SugarcrmField,{"\x61\x73":_0x44e1[398],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[408]});db[_0x44e1[216]][_0x44e1[309]](db.SugarcrmAccount,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[403]});db[_0x44e1[218]][_0x44e1[274]](db.SugarcrmField,{"\x61\x73":_0x44e1[409],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[405]});db[_0x44e1[218]][_0x44e1[274]](db.SugarcrmField,{"\x61\x73":_0x44e1[410],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[407]});db[_0x44e1[218]][_0x44e1[274]](db.SugarcrmField,{"\x61\x73":_0x44e1[411],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[408]});db[_0x44e1[218]][_0x44e1[309]](db.Variable,{"\x61\x73":_0x44e1[190],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[412]});db[_0x44e1[220]][_0x44e1[274]](db.ZendeskConfiguration,{"\x61\x73":_0x44e1[402],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[403]});db[_0x44e1[222]][_0x44e1[274]](db.ZendeskField,{"\x61\x73":_0x44e1[404],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[405]});db[_0x44e1[222]][_0x44e1[274]](db.ZendeskField,{"\x61\x73":_0x44e1[406],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[407]});db[_0x44e1[222]][_0x44e1[274]](db.ZendeskField,{"\x61\x73":_0x44e1[398],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[408]});db[_0x44e1[222]][_0x44e1[309]](db.ZendeskAccount,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[403]});db[_0x44e1[222]][_0x44e1[281]](db.Tag,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[413]});db[_0x44e1[224]][_0x44e1[274]](db.ZendeskField,{"\x61\x73":_0x44e1[409],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[405]});db[_0x44e1[224]][_0x44e1[274]](db.ZendeskField,{"\x61\x73":_0x44e1[410],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[407]});db[_0x44e1[224]][_0x44e1[274]](db.ZendeskField,{"\x61\x73":_0x44e1[411],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[408]});db[_0x44e1[224]][_0x44e1[309]](db.Variable,{"\x61\x73":_0x44e1[190],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[412]});db[_0x44e1[226]][_0x44e1[274]](db.FreshdeskConfiguration,{"\x61\x73":_0x44e1[402],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[403]});db[_0x44e1[228]][_0x44e1[274]](db.FreshdeskField,{"\x61\x73":_0x44e1[404],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[405]});db[_0x44e1[228]][_0x44e1[274]](db.FreshdeskField,{"\x61\x73":_0x44e1[406],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[407]});db[_0x44e1[228]][_0x44e1[274]](db.FreshdeskField,{"\x61\x73":_0x44e1[398],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[408]});db[_0x44e1[228]][_0x44e1[309]](db.FreshdeskAccount,{"\x61\x73":_0x44e1[333],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[403]});db[_0x44e1[228]][_0x44e1[281]](db.Tag,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[414]});db[_0x44e1[230]][_0x44e1[274]](db.FreshdeskField,{"\x61\x73":_0x44e1[409],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[405]});db[_0x44e1[230]][_0x44e1[274]](db.FreshdeskField,{"\x61\x73":_0x44e1[410],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[407]});db[_0x44e1[230]][_0x44e1[274]](db.FreshdeskField,{"\x61\x73":_0x44e1[411],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[408]});db[_0x44e1[230]][_0x44e1[309]](db.Variable,{"\x61\x73":_0x44e1[190],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[412]});db[_0x44e1[244]][_0x44e1[274]](db.JscriptyQuestionReport,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[415],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[244]][_0x44e1[274]](db.JscriptyAnswerReport,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[415],"\x6F\x6E\x44\x65\x6C\x65\x74\x65":_0x44e1[270]});db[_0x44e1[254]][_0x44e1[274]](db.JscriptySessionReport,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[416]});db[_0x44e1[254]][_0x44e1[274]](db.JscriptyQuestionReport,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[416]});db[_0x44e1[254]][_0x44e1[274]](db.JscriptyAnswerReport,{"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[416]});db[_0x44e1[264]][_0x44e1[281]](db.User,{"\x61\x73":_0x44e1[314],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[284]});db[_0x44e1[264]][_0x44e1[281]](db.VoiceQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[316],"\x61\x73":_0x44e1[291]});db[_0x44e1[264]][_0x44e1[281]](db.MailQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[330],"\x61\x73":_0x44e1[292]});db[_0x44e1[264]][_0x44e1[281]](db.ChatQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[369],"\x61\x73":_0x44e1[293]});db[_0x44e1[264]][_0x44e1[281]](db.FaxQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[344],"\x61\x73":_0x44e1[294]});db[_0x44e1[264]][_0x44e1[281]](db.SmsQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[347],"\x61\x73":_0x44e1[295]});db[_0x44e1[264]][_0x44e1[281]](db.OpenchannelQueue,{"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[351],"\x61\x73":_0x44e1[296]});db[_0x44e1[268]][_0x44e1[274]](db.CmHopper,{"\x61\x73":_0x44e1[304],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[374]});db[_0x44e1[268]][_0x44e1[274]](db.CmHopperFinal,{"\x61\x73":_0x44e1[277],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[374]});db[_0x44e1[268]][_0x44e1[274]](db.CmHopperHistory,{"\x61\x73":_0x44e1[305],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[374]});db[_0x44e1[268]][_0x44e1[274]](db.CmHopperBlack,{"\x61\x73":_0x44e1[306],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[374]});db[_0x44e1[268]][_0x44e1[309]](db.Trunk,{"\x61\x73":_0x44e1[40],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[308]});db[_0x44e1[268]][_0x44e1[309]](db.Trunk,{"\x61\x73":_0x44e1[310],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[311]});db[_0x44e1[268]][_0x44e1[309]](db.Interval,{"\x61\x73":_0x44e1[172],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[312]});db[_0x44e1[268]][_0x44e1[309]](db.SquareProject,{"\x61\x73":_0x44e1[260],"\x66\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79":_0x44e1[417]});db[_0x44e1[268]][_0x44e1[281]](db.CmList,{"\x61\x73":_0x44e1[282],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[418]});db[_0x44e1[268]][_0x44e1[281]](db.CmList,{"\x61\x73":_0x44e1[317],"\x74\x68\x72\x6F\x75\x67\x68":_0x44e1[419]});module[_0x44e1[420]]= {db:db,dbH:dbH}
\ No newline at end of file
diff --git a/server/routes.js b/server/routes.js
new file mode 100644 (file)
index 0000000..7c7d5cb
--- /dev/null
@@ -0,0 +1 @@
+var _0xfc1a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x70\x61\x74\x68","\x65\x78\x70\x72\x65\x73\x73","\x2E\x2F\x65\x72\x72\x6F\x72\x73","\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x64\x65\x66\x61\x75\x6C\x74","\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72","\x75\x73\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x68\x61\x6E\x73\x70\x79","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x68\x61\x6E\x53\x70\x79","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x6F\x6E\x74\x65\x78\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x6F\x6E\x74\x65\x78\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x6F\x68\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x75\x73\x69\x63\x4F\x6E\x48\x6F\x6C\x64","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x61\x69\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x6D\x61\x69\x6C\x73\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x4D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x63\x61\x6C\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x64\x69\x61\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x61\x67\x65\x6E\x74\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x71\x75\x65\x75\x65\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6D\x65\x6D\x62\x65\x72\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x74\x72\x61\x6E\x73\x66\x65\x72\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x6F\x75\x74\x5F\x73\x65\x72\x76\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x72\x76\x65\x72\x4F\x75\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64","\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x73\x2F\x69\x74\x65\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x64\x61\x73\x68\x62\x6F\x61\x72\x64\x49\x74\x65\x6D","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x41\x74\x74\x61\x63\x68\x6D\x65\x6E\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65","\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x69\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x49\x6E\x74\x65\x72\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x6D\x65\x73\x73\x61\x67\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x4D\x65\x73\x73\x61\x67\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x71\x75\x65\x75\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x51\x75\x65\x75\x65","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x65\x6E\x71\x75\x69\x72\x69\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x45\x6E\x71\x75\x69\x72\x79","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x70\x72\x6F\x61\x63\x74\x69\x76\x65\x5F\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x50\x72\x6F\x61\x63\x74\x69\x76\x65\x41\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x76\x69\x73\x69\x74\x6F\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x56\x69\x73\x69\x74\x6F\x72","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x77\x65\x62\x73\x69\x74\x65\x5F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x57\x65\x62\x73\x69\x74\x65\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x63\x6F\x6D\x70\x61\x6E\x69\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6D\x70\x61\x6E\x79","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x68\x6F\x70\x70\x65\x72","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x68\x6F\x70\x70\x65\x72\x5F\x62\x6C\x61\x63\x6B","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x68\x6F\x70\x70\x65\x72\x5F\x66\x69\x6E\x61\x6C","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x68\x6F\x70\x70\x65\x72\x5F\x68\x69\x73\x74\x6F\x72\x79","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x63\x6D\x2F\x6C\x69\x73\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x4C\x69\x73\x74","\x2F\x61\x70\x69\x2F\x61\x63\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x63\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x6F\x6D\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x63\x61\x6E\x6E\x65\x64\x5F\x61\x6E\x73\x77\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6E\x6E\x65\x64\x41\x6E\x73\x77\x65\x72","\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C","\x2F\x61\x70\x69\x2F\x70\x61\x75\x73\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x70\x61\x75\x73\x65","\x2F\x61\x70\x69\x2F\x63\x64\x72","\x2E\x2F\x61\x70\x69\x2F\x63\x64\x72","\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73\x4C\x6F\x67","\x2F\x61\x70\x69\x2F\x73\x63\x68\x65\x64\x75\x6C\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x63\x68\x65\x64\x75\x6C\x65","\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64","\x2F\x61\x70\x69\x2F\x74\x61\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x61\x67","\x2F\x61\x70\x69\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65","\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72","\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x63\x75\x73\x74\x6F\x6D\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x43\x75\x73\x74\x6F\x6D\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x64\x65\x66\x61\x75\x6C\x74\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x44\x65\x66\x61\x75\x6C\x74\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x65\x78\x74\x72\x61\x63\x74\x65\x64\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x45\x78\x74\x72\x61\x63\x74\x65\x64\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x6D\x65\x74\x72\x69\x63\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x4D\x65\x74\x72\x69\x63","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x66\x69\x65\x6C\x64\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x46\x69\x65\x6C\x64\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x73\x2F\x74\x72\x65\x65\x5F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x61\x6E\x61\x6C\x79\x74\x69\x63\x54\x72\x65\x65\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x61\x63\x63\x6F\x75\x6E\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x63\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x2F\x66\x69\x65\x6C\x64\x73","\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x2F\x61\x70\x69\x2F\x6E\x65\x74\x77\x6F\x72\x6B\x73","\x2E\x2F\x61\x70\x69\x2F\x6E\x65\x74\x77\x6F\x72\x6B","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x2F\x73\x65\x73\x73\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x68\x61\x74\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x66\x61\x78\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x66\x61\x78\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x61\x6E\x73\x77\x65\x72\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x41\x6E\x73\x77\x65\x72\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x71\x75\x65\x73\x74\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x51\x75\x65\x73\x74\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x73\x65\x73\x73\x69\x6F\x6E\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x6D\x73\x2F\x73\x65\x73\x73\x69\x6F\x6E\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x6D\x73\x53\x65\x73\x73\x69\x6F\x6E\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x64\x65\x74\x61\x69\x6C\x73\x2F\x72\x65\x70\x6F\x72\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C","\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x6A\x73\x63\x72\x69\x70\x74\x79\x50\x72\x6F\x6A\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x65\x74\x74\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x6F\x64\x62\x63","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x70\x72\x6F\x6A\x65\x63\x74\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73","\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D\x73","\x2E\x2F\x61\x70\x69\x2F\x74\x65\x61\x6D","\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x2E\x2F\x61\x70\x69\x2F\x6C\x69\x63\x65\x6E\x73\x65","\x2F\x61\x70\x69\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E","\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x2F\x6C\x6F\x63\x61\x6C","\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x4C\x6F\x63\x61\x6C","\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x2F\x67\x6F\x6F\x67\x6C\x65","\x2E\x2F\x61\x70\x69\x2F\x61\x75\x74\x68\x47\x6F\x6F\x67\x6C\x65","\x2F\x61\x70\x69\x2F\x6A\x69\x72\x61","\x2E\x2F\x61\x70\x69\x2F\x6A\x69\x72\x61","\x2F\x61\x70\x69\x2F\x72\x70\x63","\x2E\x2F\x61\x70\x69\x2F\x72\x70\x63","\x2F\x61\x70\x69\x2F\x76\x65\x72\x73\x69\x6F\x6E","\x2E\x2F\x61\x70\x69\x2F\x76\x65\x72\x73\x69\x6F\x6E","\x2F\x61\x70\x69\x2F\x73\x79\x73\x74\x65\x6D","\x2E\x2F\x61\x70\x69\x2F\x73\x79\x73\x74\x65\x6D","\x2F\x61\x70\x69\x2F\x70\x6D\x32","\x2E\x2F\x61\x70\x69\x2F\x70\x6D\x32","\x2F\x61\x70\x69\x64\x6F\x63","\x72\x6F\x6F\x74","\x6A\x6F\x69\x6E","\x73\x74\x61\x74\x69\x63","\x2F\x77\x77\x77","\x2F\x64\x65\x6D\x6F","\x67\x65\x74","\x2F\x3A\x75\x72\x6C\x28\x61\x70\x69\x7C\x61\x75\x74\x68\x7C\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x7C\x61\x70\x70\x7C\x62\x6F\x77\x65\x72\x5F\x63\x6F\x6D\x70\x6F\x6E\x65\x6E\x74\x73\x7C\x61\x73\x73\x65\x74\x73\x29\x2F\x2A","\x72\x6F\x75\x74\x65","\x61\x70\x70\x50\x61\x74\x68","\x2F\x69\x6E\x64\x65\x78\x2E\x68\x74\x6D\x6C","\x72\x65\x73\x6F\x6C\x76\x65","\x73\x65\x6E\x64\x46\x69\x6C\x65","\x2F\x2A"];_0xfc1a[0];var path=require(_0xfc1a[1]);var express=require(_0xfc1a[2]);var errors=require(_0xfc1a[3]);var config=require(_0xfc1a[4]);exports[_0xfc1a[5]]= function(_0xc20fx5){_0xc20fx5[_0xfc1a[8]](_0xfc1a[6],require(_0xfc1a[7]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[9],require(_0xfc1a[10]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[11],require(_0xfc1a[12]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[13],require(_0xfc1a[14]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[15],require(_0xfc1a[16]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[17],require(_0xfc1a[18]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[19],require(_0xfc1a[20]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[21],require(_0xfc1a[22]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[23],require(_0xfc1a[24]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[25],require(_0xfc1a[26]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[27],require(_0xfc1a[28]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[29],require(_0xfc1a[30]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[31],require(_0xfc1a[32]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[33],require(_0xfc1a[34]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[35],require(_0xfc1a[36]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[37],require(_0xfc1a[38]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[39],require(_0xfc1a[40]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[41],require(_0xfc1a[42]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[43],require(_0xfc1a[44]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[45],require(_0xfc1a[46]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[47],require(_0xfc1a[48]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[49],require(_0xfc1a[50]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[51],require(_0xfc1a[52]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[53],require(_0xfc1a[54]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[55],require(_0xfc1a[56]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[57],require(_0xfc1a[58]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[59],require(_0xfc1a[60]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[61],require(_0xfc1a[62]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[63],require(_0xfc1a[64]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[65],require(_0xfc1a[66]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[67],require(_0xfc1a[68]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[69],require(_0xfc1a[70]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[71],require(_0xfc1a[72]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[73],require(_0xfc1a[74]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[75],require(_0xfc1a[76]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[77],require(_0xfc1a[78]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[79],require(_0xfc1a[80]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[81],require(_0xfc1a[82]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[83],require(_0xfc1a[84]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[85],require(_0xfc1a[86]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[87],require(_0xfc1a[88]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[89],require(_0xfc1a[90]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[91],require(_0xfc1a[92]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[93],require(_0xfc1a[94]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[95],require(_0xfc1a[96]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[97],require(_0xfc1a[98]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[99],require(_0xfc1a[100]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[101],require(_0xfc1a[102]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[103],require(_0xfc1a[104]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[105],require(_0xfc1a[106]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[107],require(_0xfc1a[108]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[109],require(_0xfc1a[110]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[111],require(_0xfc1a[112]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[113],require(_0xfc1a[114]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[115],require(_0xfc1a[116]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[117],require(_0xfc1a[118]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[119],require(_0xfc1a[120]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[121],require(_0xfc1a[122]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[123],require(_0xfc1a[124]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[125],require(_0xfc1a[126]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[127],require(_0xfc1a[128]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[129],require(_0xfc1a[130]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[131],require(_0xfc1a[132]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[133],require(_0xfc1a[134]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[135],require(_0xfc1a[136]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[137],require(_0xfc1a[138]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[139],require(_0xfc1a[140]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[141],require(_0xfc1a[142]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[143],require(_0xfc1a[144]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[145],require(_0xfc1a[146]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[147],require(_0xfc1a[148]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[149],require(_0xfc1a[150]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[151],require(_0xfc1a[152]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[153],require(_0xfc1a[154]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[155],require(_0xfc1a[156]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[157],require(_0xfc1a[158]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[159],require(_0xfc1a[160]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[161],require(_0xfc1a[162]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[163],require(_0xfc1a[164]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[165],require(_0xfc1a[166]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[167],require(_0xfc1a[168]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[169],require(_0xfc1a[170]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[171],require(_0xfc1a[172]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[173],require(_0xfc1a[174]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[175],require(_0xfc1a[176]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[177],require(_0xfc1a[178]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[179],require(_0xfc1a[180]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[181],require(_0xfc1a[182]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[183],require(_0xfc1a[184]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[185],require(_0xfc1a[186]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[187],require(_0xfc1a[188]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[189],require(_0xfc1a[190]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[191],require(_0xfc1a[192]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[193],require(_0xfc1a[194]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[195],require(_0xfc1a[196]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[197],require(_0xfc1a[198]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[199],require(_0xfc1a[200]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[201],require(_0xfc1a[202]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[203],require(_0xfc1a[204]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[205],require(_0xfc1a[206]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[207],require(_0xfc1a[208]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[209],require(_0xfc1a[210]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[211],require(_0xfc1a[212]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[213],require(_0xfc1a[214]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[215],require(_0xfc1a[216]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[217],require(_0xfc1a[218]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[219],require(_0xfc1a[220]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[221],require(_0xfc1a[222]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[223],require(_0xfc1a[224]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[225],require(_0xfc1a[226]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[227],require(_0xfc1a[228]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[229],require(_0xfc1a[230]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[231],require(_0xfc1a[232]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[233],require(_0xfc1a[234]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[235],require(_0xfc1a[236]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[237],require(_0xfc1a[238]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[239],require(_0xfc1a[240]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[241],require(_0xfc1a[242]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[243],require(_0xfc1a[244]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[245],require(_0xfc1a[246]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[247],require(_0xfc1a[248]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[249],require(_0xfc1a[250]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[251],require(_0xfc1a[252]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[253],require(_0xfc1a[254]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[255],require(_0xfc1a[256]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[257],require(_0xfc1a[258]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[259],require(_0xfc1a[260]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[261],require(_0xfc1a[262]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[263],require(_0xfc1a[264]));_0xc20fx5[_0xfc1a[8]](_0xfc1a[265],express[_0xfc1a[268]](path[_0xfc1a[267]](config[_0xfc1a[266]],_0xfc1a[265])));_0xc20fx5[_0xfc1a[8]](_0xfc1a[269],express[_0xfc1a[268]](path[_0xfc1a[267]](config[_0xfc1a[266]],_0xfc1a[269])));_0xc20fx5[_0xfc1a[8]](_0xfc1a[270],express[_0xfc1a[268]](path[_0xfc1a[267]](config[_0xfc1a[266]],_0xfc1a[270])));_0xc20fx5[_0xfc1a[273]](_0xfc1a[272])[_0xfc1a[271]](errors[404]);_0xc20fx5[_0xfc1a[273]](_0xfc1a[278])[_0xfc1a[271]](function(_0xc20fx6,_0xc20fx7){_0xc20fx7[_0xfc1a[277]](path[_0xfc1a[276]](_0xc20fx5[_0xfc1a[271]](_0xfc1a[274])+ _0xfc1a[275]))})}
\ No newline at end of file
diff --git a/server/rpc/index.js b/server/rpc/index.js
new file mode 100644 (file)
index 0000000..d589cde
--- /dev/null
@@ -0,0 +1 @@
+var _0xb85e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x6C\x69\x73\x74\x65\x6E","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x2F\x75\x73\x65\x72\x2E\x72\x70\x63","\x6D\x65\x72\x67\x65","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x75\x6E\x6B\x2F\x74\x72\x75\x6E\x6B\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2F\x75\x73\x65\x72\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x6D\x61\x69\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2F\x6F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x44\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2F\x63\x6D\x43\x6F\x6E\x74\x61\x63\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2F\x69\x6E\x74\x65\x72\x76\x61\x6C\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x6F\x75\x6E\x64\x2F\x73\x6F\x75\x6E\x64\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x74\x72\x69\x67\x67\x65\x72\x2F\x74\x72\x69\x67\x67\x65\x72\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2F\x76\x61\x72\x69\x61\x62\x6C\x65\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2F\x69\x6E\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74\x44\x65\x74\x61\x69\x6C\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2F\x73\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2F\x73\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2F\x73\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x2E\x72\x70\x63","\x2E\x2E\x2F\x61\x70\x69\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E\x2E\x72\x70\x63","\x68\x74\x74\x70","\x73\x65\x72\x76\x65\x72","\x70\x6F\x72\x74","\x72\x70\x63","\x69\x70","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x65\x72\x72\x6F\x72","\x6F\x6E","\x52\x50\x43\x20\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67\x20\x6F\x6E\x20","\x3A"];_0xb85e[0];var jayson=require(_0xb85e[1]);var BPromise=require(_0xb85e[2]);var _=require(_0xb85e[3]);var config=require(_0xb85e[4]);exports[_0xb85e[5]]= function(){return  new BPromise(function(_0xa1efx5,_0xa1efx6){var _0xa1efx7={};_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[6]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[8]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[9]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[10]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[11]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[12]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[13]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[14]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[15]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[16]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[17]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[18]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[19]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[20]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[21]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[22]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[23]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[24]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[25]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[26]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[27]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[28]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[29]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[30]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[31]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[32]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[33]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[34]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[35]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[36]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[37]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[38]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[39]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[40]));_0xa1efx7= _[_0xb85e[7]](_0xa1efx7,require(_0xb85e[41]));var _0xa1efx8=jayson[_0xb85e[43]](_0xa1efx7)[_0xb85e[42]]();var _0xa1efx9=config[_0xb85e[45]][_0xb85e[44]]|| (config[_0xb85e[44]]+ 1);var _0xa1efxa=config[_0xb85e[45]][_0xb85e[46]]|| _0xb85e[47];_0xa1efx8[_0xb85e[49]](_0xb85e[48],function(_0xa1efxb){return _0xa1efx6(_0xa1efxb)});_0xa1efx8[_0xb85e[5]](_0xa1efx9,_0xa1efxa,function(){return _0xa1efx5(_0xb85e[50]+ _0xa1efxa+ _0xb85e[51]+ _0xa1efx9)})})}
\ No newline at end of file
diff --git a/server/services/agi/channel.js b/server/services/agi/channel.js
new file mode 100644 (file)
index 0000000..bfb62a8
--- /dev/null
@@ -0,0 +1 @@
+var _0x21b4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x45\x76\x65\x6E\x74\x45\x6D\x69\x74\x74\x65\x72","\x65\x76\x65\x6E\x74\x73","\x2E\x2F\x72\x65\x70\x6C\x79","\x2E\x2F\x65\x72\x72\x6F\x72","\x63\x61\x6C\x6C","\x75\x74\x66\x38","\x73\x65\x74\x45\x6E\x63\x6F\x64\x69\x6E\x67","\x68\x65\x61\x64\x65\x72\x73","\x72\x65\x61\x64\x79","\x65\x6D\x69\x74","\x6F\x6E","\x6C\x69\x6E\x65","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x68\x61\x6E\x67\x75\x70","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x35\x32\x30\x2D\x49\x6E\x76\x61\x6C\x69\x64","\x72\x78","\x0A","\x35\x32\x30\x20\x45\x6E\x64\x20\x6F\x66\x20\x70\x72\x6F\x70\x65\x72","\x73\x65\x61\x72\x63\x68","\x63\x62","\x66\x75\x6E\x63\x74\x69\x6F\x6E","\x6E\x6F\x20\x63\x6F\x64\x65","\x4B\x4F","\x72\x65\x73\x75\x6C\x74\x3D","","\x72\x65\x70\x6C\x61\x63\x65","\x20","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x75\x62\x73\x74\x72","\x73\x70\x6C\x69\x74","\x6C\x65\x6E\x67\x74\x68","\x65\x72\x72\x6F\x72","\x45\x5F\x41\x47\x49\x5F\x53\x4F\x43\x4B\x45\x54\x5F\x45\x52\x52\x4F\x52","\x63\x6F\x64\x65","\x63\x6C\x6F\x73\x65","\x45\x5F\x41\x47\x49\x5F\x53\x4F\x43\x4B\x45\x54\x5F\x43\x4C\x4F\x53\x45","\x70\x69\x70\x65","\x63\x6F\x6D\x6D\x61\x6E\x64","\x77\x72\x69\x74\x65","\x64\x65\x73\x74\x72\x6F\x79","\x69\x6E\x68\x65\x72\x69\x74\x73","\x73\x65\x6E\x64\x52\x65\x71\x75\x65\x73\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x73\x79\x6E\x63","\x61\x6E\x73\x77\x65\x72","\x41\x4E\x53\x57\x45\x52","\x67\x65\x74\x44\x61\x74\x61","\x62\x65\x65\x70","\x35","\x31","\x47\x45\x54\x20\x44\x41\x54\x41\x20\x22\x25\x73\x22\x20\x25\x73\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x6E\x6F\x6F\x70","\x4E\x4F\x20\x4D\x45\x53\x53\x41\x47\x45","\x56\x45\x52\x42\x4F\x53\x45\x20\x22\x25\x73\x22","\x65\x78\x65\x63","\x69\x73\x41\x72\x72\x61\x79","\x45\x58\x45\x43\x20\x25\x73\x20\x25\x73","\x2C","\x6A\x6F\x69\x6E","\x73\x65\x74\x43\x6F\x6E\x74\x65\x78\x74","\x53\x45\x54\x20\x43\x4F\x4E\x54\x45\x58\x54\x20\x25\x73","\x73\x65\x74\x45\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x53\x45\x54\x20\x45\x58\x54\x45\x4E\x53\x49\x4F\x4E\x20\x25\x73","\x73\x65\x74\x50\x72\x69\x6F\x72\x69\x74\x79","\x53\x45\x54\x20\x50\x52\x49\x4F\x52\x49\x54\x59\x20\x25\x73","\x48\x41\x4E\x47\x55\x50","\x73\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x53\x45\x54\x20\x56\x41\x52\x49\x41\x42\x4C\x45\x20\x25\x73\x20\x22\x25\x73\x22","\x73\x61\x79\x4E\x75\x6D\x62\x65\x72","\x53\x41\x59\x20\x4E\x55\x4D\x42\x45\x52\x20\x25\x73\x20\x25\x73","\x73\x61\x79\x44\x69\x67\x69\x74\x73","\x53\x41\x59\x20\x44\x49\x47\x49\x54\x53\x20\x25\x73\x20\x25\x73","\x73\x61\x79\x50\x68\x6F\x6E\x65\x74\x69\x63","\x53\x41\x59\x20\x50\x48\x4F\x4E\x45\x54\x49\x43\x20\x22\x25\x73\x22\x20\x25\x73","\x63\x6F\x6E\x74\x69\x6E\x75\x65\x41\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x47\x4F\x54\x4F\x20\x25\x73\x20\x25\x73\x20\x25\x73","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x47\x45\x54\x20\x56\x41\x52\x49\x41\x42\x4C\x45\x20\x22\x25\x73\x22","\x72\x65\x63\x6F\x72\x64\x46\x69\x6C\x65","\x77\x61\x76","\x2D\x31","\x73\x3D","\x42\x45\x45\x50","\x52\x45\x43\x4F\x52\x44\x20\x46\x49\x4C\x45\x20\x22\x25\x73\x22\x20\x22\x25\x73\x22\x20\x22\x25\x73\x22\x20\x25\x73\x20\x25\x73\x20\x25\x73","\x73\x74\x72\x65\x61\x6D\x46\x69\x6C\x65","\x53\x54\x52\x45\x41\x4D\x20\x46\x49\x4C\x45\x20\x22\x25\x73\x22\x20\x22\x25\x73\x22","\x61\x67\x69","\x41\x47\x49","\x77\x61\x69\x74","\x57\x41\x49\x54","\x49\x44\x3A\x25\x73\x20\x2D\x20\x4C\x41\x42\x45\x4C\x3A\x20\x25\x73\x20\x2D\x20\x4D\x53\x47\x3A\x20\x25\x73","\x69\x64","\x6C\x61\x62\x65\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0x21b4[0];var util=require(_0x21b4[1]);var _=require(_0x21b4[2]);var EventEmitter=require(_0x21b4[4])[_0x21b4[3]];var AGIReply=require(_0x21b4[5]);var AGIError=require(_0x21b4[6]);function AGIChannel(_0x97f0x7){var _0x97f0x8=this,_0x97f0x9= new AGIReply(),_0x97f0xa=false,_0x97f0xb={};EventEmitter[_0x21b4[7]](_0x97f0x8);_0x97f0x7[_0x21b4[9]](_0x21b4[8]);_0x97f0x9[_0x21b4[9]](_0x21b4[8]);_0x97f0x9[_0x21b4[13]](_0x21b4[10],function(_0x97f0xc){for(var _0x97f0xd in _0x97f0xc){_0x97f0x8[_0x97f0xd]= _0x97f0xc[_0x97f0xd]};_0x97f0x8[_0x21b4[12]](_0x21b4[11])});_0x97f0x9[_0x21b4[13]](_0x21b4[14],function(_0x97f0xe){if(_0x97f0xe[_0x21b4[15]]()== _0x21b4[16]){_0x97f0x8[_0x21b4[12]](_0x21b4[16]);return};if(_0x97f0xe[_0x21b4[17]](0,11)== _0x21b4[18]){_0x97f0xa= true};if(_0x97f0xa){_0x97f0xb[_0x21b4[19]]+= _0x97f0xe+ _0x21b4[20];if(_0x97f0xe[_0x21b4[22]](_0x21b4[21])!=  -1){_0x97f0xa= false}}else {_0x97f0xb[_0x21b4[19]]= _0x97f0xe};if(_0x97f0xa){return};if( typeof _0x97f0xb[_0x21b4[23]]== _0x21b4[24]){var _0x97f0xf=_0x97f0xb[_0x21b4[19]][_0x21b4[17]](0,3),_0x97f0x10=null,_0x97f0x11=null;_0x97f0xf= parseInt(_0x97f0xf);if(isNaN(_0x97f0xf)){_0x97f0xb[_0x21b4[23]](null,{code:500,result:-1,extra:_0x21b4[25]});return};if(_0x97f0xf!= 200){_0x97f0xb[_0x21b4[23]](null,{code:_0x97f0xf,result:-1,extra:_0x21b4[26]});return};_0x97f0x10= _0x97f0xb[_0x21b4[19]][_0x21b4[17]](4)[_0x21b4[29]](_0x21b4[27],_0x21b4[28]);if(_0x97f0x10[_0x21b4[31]](_0x21b4[30])!=  -1){_0x97f0x10= _0x97f0x10[_0x21b4[32]](0,_0x97f0x10[_0x21b4[31]](_0x21b4[30]))};_0x97f0x10= parseInt(_0x97f0x10);_0x97f0x11= _0x97f0xb[_0x21b4[19]][_0x21b4[33]](_0x21b4[30]);if(_0x97f0x11[_0x21b4[34]]== 3){_0x97f0x11= _0x97f0x11[2][_0x21b4[17]](1,_0x97f0x11[2][_0x21b4[34]]- 1)}else {_0x97f0x11= null};_0x97f0xb[_0x21b4[23]](null,{code:_0x97f0xf,result:_0x97f0x10,extra:_0x97f0x11})}});_0x97f0x7[_0x21b4[13]](_0x21b4[35],function(_0x97f0x12){_0x97f0x8[_0x21b4[12]](_0x21b4[35], new AGIError(_0x21b4[36],_0x97f0x12[_0x21b4[37]]))});_0x97f0x7[_0x21b4[13]](_0x21b4[38],function(){_0x97f0x8[_0x21b4[12]](_0x21b4[38], new AGIError(_0x21b4[39]))});_0x97f0x7[_0x21b4[40]](_0x97f0x9);this[_0x21b4[41]]= function(_0x97f0x13,_0x97f0x14){var _0x97f0x13=_0x97f0x13|| _0x21b4[28],_0x97f0x14=( typeof _0x97f0x14== _0x21b4[24])?_0x97f0x14: new Function();_0x97f0xb= {tx:_0x97f0x13,rx:_0x21b4[28],cb:_0x97f0x14};_0x97f0x7[_0x21b4[42]](_0x97f0x13+ _0x21b4[20])},this[_0x21b4[38]]= function(){_0x97f0x7[_0x21b4[43]]()}}util[_0x21b4[44]](AGIChannel,EventEmitter);AGIChannel[_0x21b4[46]][_0x21b4[45]]= function(_0x97f0x15){return this[_0x21b4[41]][_0x21b4[47]](this,_0x97f0x15)};AGIChannel[_0x21b4[46]][_0x21b4[48]]= function(){return this[_0x21b4[45]](_0x21b4[49])};AGIChannel[_0x21b4[46]][_0x21b4[50]]= function(_0x97f0x16,_0x97f0x17,_0x97f0x18){_0x97f0x16= (_0x97f0x16=== undefined)?_0x21b4[51]:_0x97f0x16;_0x97f0x17= (_0x97f0x17=== undefined)?_0x21b4[52]:_0x97f0x17;_0x97f0x18= (_0x97f0x18=== undefined)?_0x21b4[53]:_0x97f0x18;return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[54],_0x97f0x16,_0x97f0x17* 1000,_0x97f0x18))};AGIChannel[_0x21b4[46]][_0x21b4[56]]= function(_0x97f0x19){_0x97f0x19= _0x97f0x19|| _0x21b4[57];return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[58],_0x97f0x19))};AGIChannel[_0x21b4[46]][_0x21b4[59]]= function(_0x97f0x1a,_0x97f0x1b){if(_[_0x21b4[60]](_0x97f0x1b)){return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[61],_0x97f0x1a,_0x97f0x1b[_0x21b4[63]](_0x21b4[62])))};return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[61],_0x97f0x1a,_0x97f0x1b))};AGIChannel[_0x21b4[46]][_0x21b4[64]]= function(_0x97f0x1c){return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[65],_0x97f0x1c))};AGIChannel[_0x21b4[46]][_0x21b4[66]]= function(_0x97f0x1d){return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[67],_0x97f0x1d))};AGIChannel[_0x21b4[46]][_0x21b4[68]]= function(_0x97f0x1e){return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[69],_0x97f0x1e))};AGIChannel[_0x21b4[46]][_0x21b4[16]]= function(){return this[_0x21b4[45]](_0x21b4[70])};AGIChannel[_0x21b4[46]][_0x21b4[71]]= function(_0x97f0x1f,_0x97f0x20){return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[72],_0x97f0x1f,_0x97f0x20))};AGIChannel[_0x21b4[46]][_0x21b4[73]]= function(_0x97f0x21,_0x97f0x22){return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[74],_0x97f0x21,_0x97f0x22))};AGIChannel[_0x21b4[46]][_0x21b4[75]]= function(_0x97f0x23,_0x97f0x22){return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[76],_0x97f0x23,_0x97f0x22))};AGIChannel[_0x21b4[46]][_0x21b4[77]]= function(_0x97f0x24,_0x97f0x22){return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[78],_0x97f0x24,_0x97f0x22))};AGIChannel[_0x21b4[46]][_0x21b4[79]]= function(_0x97f0x1c,_0x97f0x1d,_0x97f0x1e){_0x97f0x1d= _0x97f0x1d|| this[_0x21b4[80]];_0x97f0x1e= _0x97f0x1e|| 1;this[_0x21b4[64]](_0x97f0x1c);this[_0x21b4[66]](_0x97f0x1d);this[_0x21b4[68]](_0x97f0x1e);return this[_0x21b4[56]](util[_0x21b4[55]](_0x21b4[81],_0x97f0x1c,_0x97f0x1d,_0x97f0x1e))};AGIChannel[_0x21b4[46]][_0x21b4[82]]= function(_0x97f0x1f){return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[83],_0x97f0x1f))};AGIChannel[_0x21b4[46]][_0x21b4[84]]= function(_0x97f0x16,_0x97f0x25,_0x97f0x22,_0x97f0x17,_0x97f0x26,_0x97f0x27){_0x97f0x25= _0x97f0x25|| _0x21b4[85];_0x97f0x22= _0x97f0x22|| _0x21b4[28];_0x97f0x17= (_0x97f0x17=== undefined)?-1:((_0x97f0x17=== _0x21b4[86])?-1:_0x97f0x17* 1000);_0x97f0x26= (_0x97f0x26=== undefined)?_0x21b4[28]:_0x21b4[87]+ _0x97f0x26;_0x97f0x27= (_0x97f0x27)?_0x21b4[88]:_0x21b4[28];return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[89],_0x97f0x16,_0x97f0x25,_0x97f0x22,_0x97f0x17,_0x97f0x27,_0x97f0x26))};AGIChannel[_0x21b4[46]][_0x21b4[90]]= function(_0x97f0x16,_0x97f0x22){_0x97f0x22= _0x97f0x22|| _0x21b4[28];return this[_0x21b4[45]](util[_0x21b4[55]](_0x21b4[91],_0x97f0x16,_0x97f0x22))};AGIChannel[_0x21b4[46]][_0x21b4[92]]= function(_0x97f0x1b){return this[_0x21b4[59]](_0x21b4[93],_0x97f0x1b)};AGIChannel[_0x21b4[46]][_0x21b4[94]]= function(_0x97f0x28){return this[_0x21b4[59]](_0x21b4[95],_0x97f0x28)};AGIChannel[_0x21b4[46]][_0x21b4[35]]= function(_0x97f0x29,_0x97f0x2a){this[_0x21b4[56]](util[_0x21b4[55]](_0x21b4[96],_0x97f0x29[_0x21b4[97]],_0x97f0x29[_0x21b4[98]],_0x97f0x2a));return {code:500,result:_0x21b4[86],extra:_0x21b4[28]}};module[_0x21b4[99]]= AGIChannel
\ No newline at end of file
diff --git a/server/services/agi/error.js b/server/services/agi/error.js
new file mode 100644 (file)
index 0000000..27b547c
--- /dev/null
@@ -0,0 +1 @@
+var _0x67ad=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x55\x6E\x64\x65\x66\x69\x6E\x65\x64\x20\x65\x72\x72\x6F\x72\x2E","\x41\x72\x67\x75\x6D\x65\x6E\x74\x20\x27\x70\x6F\x72\x74\x27\x20\x6D\x69\x73\x73\x69\x6E\x67\x20\x69\x6E\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x63\x61\x6C\x6C\x2E","\x53\x65\x72\x76\x65\x72\x20\x65\x72\x72\x6F\x72\x2E\x20\x43\x6F\x64\x65\x3A\x20\x25\x73\x2E","\x53\x65\x72\x76\x65\x72\x20\x63\x6C\x6F\x73\x65\x64\x2E","\x53\x6F\x63\x6B\x65\x74\x20\x65\x72\x72\x6F\x72\x2E\x20\x43\x6F\x64\x65\x3A\x20\x25\x73\x2E","\x53\x6F\x63\x6B\x65\x74\x20\x63\x6C\x6F\x73\x65\x64\x2E","\x45\x6D\x70\x74\x79\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x2E","\x4D\x69\x73\x73\x69\x6E\x67\x20\x27\x69\x76\x72\x2E\x61\x67\x69\x5F\x6E\x65\x74\x77\x6F\x72\x6B\x5F\x73\x63\x72\x69\x70\x74\x27\x2E","\x4D\x69\x73\x73\x69\x6E\x67\x20\x27\x69\x76\x72\x2E\x65\x6E\x74\x72\x79\x27\x20\x6D\x65\x6E\x75\x2E","","\x45\x5F\x41\x47\x49\x5F\x55\x4E\x44\x45\x46\x49\x4E\x45\x44","\x70\x75\x73\x68","\x61\x70\x70\x6C\x79","\x66\x6F\x72\x6D\x61\x74","\x6D\x65\x73\x73\x61\x67\x65","\x6E\x61\x6D\x65","\x6C\x6F\x67","\x65\x78\x70\x6F\x72\x74\x73"];_0x67ad[0];var util=require(_0x67ad[1]);var error={E_AGI_UNDEFINED:_0x67ad[2],E_AGI_ARGUMENT_PORT:_0x67ad[3],E_AGI_SERVER_ERROR:_0x67ad[4],E_AGI_SERVER_CLOSE:_0x67ad[5],E_AGI_SOCKET_ERROR:_0x67ad[6],E_AGI_SOCKET_CLOSE:_0x67ad[7],E_AGI_COMMAND_EMPTY:_0x67ad[8],E_AGI_IVR_AGI_NETWORK_SCRIPT:_0x67ad[9],E_AGI_IVR_ENTRY:_0x67ad[10]};function AGIError(_0x8953x4){var _0x8953x4=_0x8953x4|| null,_0x8953x5=_0x8953x5|| [],_0x8953x6=1,_0x8953x7=_0x67ad[11];if(!error[_0x8953x4]){_0x8953x4= _0x67ad[12]};_0x8953x5[_0x67ad[13]](error[_0x8953x4]);while(arguments[_0x8953x6]){_0x8953x5[_0x67ad[13]](arguments[_0x8953x6]);_0x8953x6++};_0x8953x7= util[_0x67ad[15]][_0x67ad[14]](util,_0x8953x5);this[_0x67ad[16]]= _0x8953x7;this[_0x67ad[17]]= _0x8953x4;console[_0x67ad[18]](_0x8953x4,_0x8953x7)}module[_0x67ad[19]]= AGIError
\ No newline at end of file
diff --git a/server/services/agi/graph/index.js b/server/services/agi/graph/index.js
new file mode 100644 (file)
index 0000000..751532e
--- /dev/null
@@ -0,0 +1 @@
+var _0xa79f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6D\x65\x6E\x75","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x67\x65\x74\x73\x65\x63\x72\x65\x74\x64\x69\x67\x69\x74\x73","\x76\x65\x72\x74\x69\x63\x65\x73","\x65\x64\x67\x65\x73","\x6E\x75\x6D\x62\x65\x72\x4F\x66\x45\x64\x67\x65\x73","\x61\x64\x64\x56\x65\x72\x74\x65\x78","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x64","\x61\x64\x64\x45\x64\x67\x65","\x70\x75\x73\x68","\x73\x69\x7A\x65","\x72\x65\x6C\x61\x74\x69\x6F\x6E\x73","\x67\x65\x74\x56\x65\x72\x74\x65\x78","\x74\x72\x61\x76\x65\x72\x73\x65\x42\x46\x53","\x6E\x6F\x20\x76\x65\x72\x74\x65\x78\x20\x66\x6F\x75\x6E\x64","\x69\x6E\x66\x6F","\x73\x74\x6F\x70\x20\x74\x72\x61\x76\x65\x72\x73\x65","\x6C\x65\x6E\x67\x74\x68","\x6E\x6F\x20\x65\x64\x67\x65\x2F\x73\x20\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x2C","\x73\x70\x6C\x69\x74","\x61\x67\x69\x63\x6F\x6D\x6D\x61\x6E\x64","\x76\x73\x77\x69\x74\x63\x68","\x2D","\x74\x61\x72\x67\x65\x74","\x69","\x64\x65\x66\x61\x75\x6C\x74\x20\x6F\x6E\x20\x73\x77\x69\x74\x63\x68\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x6D\x61\x78\x20\x72\x65\x74\x72\x79\x20\x72\x65\x61\x63\x68","\x74","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0xa79f[0];var _=require(_0xa79f[1]);var logger=require(_0xa79f[3])(_0xa79f[2]);var verticesWithRetry=[_0xa79f[4],_0xa79f[5],_0xa79f[6]];var Graph=function(){this[_0xa79f[7]]= {};this[_0xa79f[8]]= {};this[_0xa79f[9]]= 0};Graph[_0xa79f[11]][_0xa79f[10]]= function(_0xfb8bx5){this[_0xa79f[7]][_0xfb8bx5[_0xa79f[12]]]= _0xfb8bx5;this[_0xa79f[8]][_0xfb8bx5[_0xa79f[12]]]= []};Graph[_0xa79f[11]][_0xa79f[13]]= function(_0xfb8bx6,_0xfb8bx7,_0xfb8bx8){this[_0xa79f[8]][_0xfb8bx6][_0xa79f[14]]({target:_0xfb8bx7,condition:_0xfb8bx8});this[_0xa79f[9]]+= 1};Graph[_0xa79f[11]][_0xa79f[15]]= function(){return _[_0xa79f[15]](this[_0xa79f[7]])};Graph[_0xa79f[11]][_0xa79f[16]]= function(){return this[_0xa79f[9]]};Graph[_0xa79f[11]][_0xa79f[17]]= function(_0xfb8bx5){return this[_0xa79f[7]][_0xfb8bx5]};Graph[_0xa79f[11]][_0xa79f[18]]= function(_0xfb8bx5,_0xfb8bx9){if(!this[_0xa79f[7]][_0xfb8bx5]){return logger[_0xa79f[20]](_0xa79f[19])};var _0xfb8bxa=_0xfb8bx9(this[_0xa79f[7]][_0xfb8bx5]);if(!_0xfb8bxa){return logger[_0xa79f[20]](_0xa79f[21])};if(this[_0xa79f[8]][_0xfb8bx5][_0xa79f[22]]=== 0){return logger[_0xa79f[20]](_0xa79f[23])};for(var _0xfb8bxb=0,_0xfb8bxc=[],_0xfb8bxd=false;_0xfb8bxb< this[_0xa79f[8]][_0xfb8bx5][_0xa79f[22]];_0xfb8bxb+= 1){if(this[_0xa79f[8]][_0xfb8bx5][_0xfb8bxb][_0xa79f[24]]){_0xfb8bxc= this[_0xa79f[8]][_0xfb8bx5][_0xfb8bxb][_0xa79f[24]][_0xa79f[26]](_0xa79f[25]);for(var _0xfb8bxe=0;_0xfb8bxe< _0xfb8bxc[_0xa79f[22]];_0xfb8bxe+= 1){if(this[_0xa79f[7]][_0xfb8bx5][_0xa79f[27]]=== _0xa79f[28]){_0xfb8bxd= _0xfb8bxc[_0xfb8bxe]=== _0xa79f[29]?this[_0xa79f[8]][_0xfb8bx5][_0xfb8bxb][_0xa79f[30]]:false}else {if(this[_0xa79f[7]][_0xfb8bx5][_0xa79f[27]]=== _0xa79f[4]){_0xfb8bxd= _0xfb8bxc[_0xfb8bxe]=== _0xa79f[31]?this[_0xa79f[8]][_0xfb8bx5][_0xfb8bxb][_0xa79f[30]]:false}};if(_0xfb8bxc[_0xfb8bxe]=== _0xfb8bxa){return this[_0xa79f[18]](this[_0xa79f[8]][_0xfb8bx5][_0xfb8bxb][_0xa79f[30]],_0xfb8bx9)}}}else {return this[_0xa79f[18]](this[_0xa79f[8]][_0xfb8bx5][_0xfb8bxb][_0xa79f[30]],_0xfb8bx9)}};if(_0xfb8bxc[_0xa79f[22]]){if(this[_0xa79f[7]][_0xfb8bx5][_0xa79f[27]]=== _0xa79f[28]){if(_0xfb8bxd){return this[_0xa79f[18]](_0xfb8bxd,_0xfb8bx9)};return logger[_0xa79f[20]](_0xa79f[32])}else {if(_[_0xa79f[33]](verticesWithRetry,this[_0xa79f[7]][_0xfb8bx5][_0xa79f[27]])){if(_0xfb8bxa=== _0xa79f[29]){return logger[_0xa79f[20]](_0xa79f[34])};if(_0xfb8bxd&& _0xfb8bxa!== _0xa79f[35]){return this[_0xa79f[18]](_0xfb8bxd,_0xfb8bx9)};return this[_0xa79f[18]](_0xfb8bx5,_0xfb8bx9)}};return logger[_0xa79f[20]](_0xa79f[36])}};module[_0xa79f[37]]= Graph
\ No newline at end of file
diff --git a/server/services/agi/index.js b/server/services/agi/index.js
new file mode 100644 (file)
index 0000000..8f4fd66
--- /dev/null
@@ -0,0 +1 @@
+var _0xc0fd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x78\x6D\x6C\x32\x6A\x73\x6F\x6E","\x6C\x6F\x64\x61\x73\x68","\x73\x79\x6E\x63\x68\x6F","\x75\x74\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2F\x73\x65\x72\x76\x65\x72","\x2E\x2F\x72\x70\x63","\x2E\x2F\x67\x72\x61\x70\x68","\x2E\x2F\x76\x65\x72\x74\x69\x63\x65\x73","\x73\x79\x6E\x63\x68\x6F\x20\x65\x72\x72\x6F\x72","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x65\x72\x72\x6F\x72","\x6E\x65\x78\x74\x54\x69\x63\x6B","\x5B\x4C\x49\x53\x54\x45\x4E\x49\x4E\x47\x5D\x20\x43\x61\x6C\x6C\x79\x20\x53\x71\x75\x61\x72\x65\x20\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67\x20\x30\x2E\x30\x2E\x30\x2E\x30\x3A\x34\x35\x37\x33","\x69\x6E\x66\x6F","\x5B\x43\x4C\x4F\x53\x45\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x61\x72\x67\x5F\x31","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x64\x6E\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x66\x6F\x72\x6D\x61\x74","\x5B\x48\x41\x4E\x47\x55\x50\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x72\x6F\x6F\x74","\x6D\x78\x47\x72\x61\x70\x68\x4D\x6F\x64\x65\x6C","\x74\x6F\x4A\x73\x6F\x6E","\x61\x67\x69\x63\x6F\x6D\x6D\x61\x6E\x64","\x72\x65\x74\x72\x79","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x6D\x61\x78\x52\x65\x74\x72\x79","\x6D\x78\x43\x65\x6C\x6C","\x6F\x6D\x69\x74","\x61\x64\x64\x56\x65\x72\x74\x65\x78","\x69\x73\x41\x72\x72\x61\x79","\x6C\x65\x6E\x67\x74\x68","\x73\x6F\x75\x72\x63\x65","\x74\x61\x72\x67\x65\x74","\x76\x61\x6C\x75\x65","\x61\x64\x64\x45\x64\x67\x65","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x75\x70\x64\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x61\x67\x69\x5F","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x69\x6E\x73\x70\x65\x63\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x65\x62\x75\x67","\x5B\x53\x54\x41\x52\x54\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x6F\x6E","\x63\x6C\x6F\x73\x65","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x73\x74\x61\x72\x74","\x5B\x53\x54\x41\x52\x54\x20\x54\x52\x41\x56\x45\x52\x53\x45\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x69\x64","\x63\x6C\x65\x61\x72","\x76\x65\x72\x74\x65\x78","\x67\x6F\x74\x6F\x63","\x67\x6F\x74\x6F\x63\x20\x62\x6C\x6F\x63\x6B\x20\x73\x74\x6F\x70\x20\x74\x72\x61\x76\x65\x72\x73\x65\x20\x42\x46\x53","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x63\x6F\x64\x65","\x72\x65\x73\x75\x6C\x74","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x61\x67\x69\x63\x6F\x6D\x6D\x61\x6E\x64\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6C\x6F\x67","\x65\x78\x63\x65\x70\x74\x69\x6F\x6E","\x74\x72\x61\x76\x65\x72\x73\x65\x42\x46\x53","\x66\x69\x6E\x61\x6C\x6C\x79","\x5B\x46\x49\x4E\x41\x4C\x4C\x59\x20\x54\x52\x41\x56\x45\x52\x53\x45\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x5B\x45\x4E\x44\x5D\x20\x25\x73\x20\x70\x72\x6F\x6A\x65\x63\x74\x3A\x20\x66\x72\x6F\x6D\x20\x22\x25\x73\x22\x20\x3C\x25\x73\x3E\x20\x74\x6F\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x20\x25\x73\x20\x77\x69\x74\x68\x20\x75\x6E\x69\x71\x75\x65\x69\x64\x20\x25\x73","\x5B\x47\x4F\x54\x4F\x5D\x20\x63\x6F\x6E\x74\x65\x78\x74\x3A\x20\x25\x73\x20\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E\x3A\x20\x25\x73\x20\x70\x72\x69\x6F\x72\x69\x74\x79\x3A\x20\x25\x73","\x63\x6F\x6E\x74\x69\x6E\x75\x65\x41\x74","\x50\x72\x6F\x6A\x65\x63\x74\x20\x25\x73\x20\x6E\x6F\x74\x20\x70\x75\x62\x6C\x69\x73\x68\x65\x64","\x50\x72\x6F\x6A\x65\x63\x74\x20\x25\x73\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E"];_0xc0fd[0];var parser=require(_0xc0fd[1]);var _=require(_0xc0fd[2]);var syncho=require(_0xc0fd[3]);var util=require(_0xc0fd[4]);var config=require(_0xc0fd[5]);var logger=require(_0xc0fd[7])(_0xc0fd[6]);var aio=require(_0xc0fd[8]);var rpc=require(_0xc0fd[9]);var Graph=require(_0xc0fd[10]);var Vertices=require(_0xc0fd[11]);var agi=aio(4573);var AGI_CODE_SUCCESS=200;var AGI_RESULT_ERROR=-1;function connectionHandler(_0x6ffbxf){process[_0xc0fd[15]](function(){syncho(function(){try{setChannelVariables(_0x6ffbxf);agiHandler(_0x6ffbxf)}catch(ex){logger[_0xc0fd[14]](_0xc0fd[12],JSON[_0xc0fd[13]](ex,null,2))}})})}function listeningHandler(_0x6ffbx11){logger[_0xc0fd[17]](_0xc0fd[16])}function errorHandler(_0x6ffbx11){logger[_0xc0fd[14]](_0x6ffbx11)}function closeHandler(){logger[_0xc0fd[17]](util[_0xc0fd[24]](_0xc0fd[18],this[_0xc0fd[19]],this[_0xc0fd[20]],this[_0xc0fd[21]],this[_0xc0fd[22]],this[_0xc0fd[23]]))}function hangupHandler(){logger[_0xc0fd[17]](util[_0xc0fd[24]](_0xc0fd[25],this[_0xc0fd[19]],this[_0xc0fd[20]],this[_0xc0fd[21]],this[_0xc0fd[22]],this[_0xc0fd[23]]))}function getRoot(_0x6ffbx16){return parser[_0xc0fd[28]](_0x6ffbx16,{object:true})[_0xc0fd[27]][_0xc0fd[26]]}function addVertex(_0x6ffbx18,_0x6ffbx19,_0x6ffbx1a){_0x6ffbx19[_0xc0fd[29]]= _0x6ffbx1a;if(_0x6ffbx19[_0xc0fd[31]](_0xc0fd[30])){_0x6ffbx19[_0xc0fd[32]]= parseInt(_0x6ffbx19[_0xc0fd[30]],10)};_0x6ffbx18[_0xc0fd[35]](_[_0xc0fd[34]](_0x6ffbx19,_0xc0fd[33]))}function initGraph(_0x6ffbx1c,_0x6ffbx1d){var _0x6ffbx18= new Graph();for(var _0x6ffbx1a in _0x6ffbx1c){if(_0x6ffbx1c[_0xc0fd[31]](_0x6ffbx1a)){if(_[_0xc0fd[36]](_0x6ffbx1c[_0x6ffbx1a])){for(var _0x6ffbx1e=0;_0x6ffbx1e< _0x6ffbx1c[_0x6ffbx1a][_0xc0fd[37]];_0x6ffbx1e+= 1){addVertex(_0x6ffbx18,_0x6ffbx1c[_0x6ffbx1a][_0x6ffbx1e],_0x6ffbx1a)}}else {addVertex(_0x6ffbx18,_0x6ffbx1c[_0x6ffbx1a],_0x6ffbx1a)}}};for(var _0x6ffbx1f=0;_0x6ffbx1f< _0x6ffbx1d[_0xc0fd[37]];_0x6ffbx1f+= 1){if(_0x6ffbx1d[_0x6ffbx1f][_0xc0fd[38]]&& _0x6ffbx1d[_0x6ffbx1f][_0xc0fd[39]]){_0x6ffbx18[_0xc0fd[41]](_0x6ffbx1d[_0x6ffbx1f][_0xc0fd[38]],_0x6ffbx1d[_0x6ffbx1f][_0xc0fd[39]],_0x6ffbx1d[_0x6ffbx1f][_0xc0fd[40]])}};return _0x6ffbx18}function getSquareProject(_0x6ffbx21,_0x6ffbx22){rpc[_0xc0fd[44]](_0x6ffbx21)[_0xc0fd[43]](function(_0x6ffbx23){_0x6ffbx22(null,_0x6ffbx23)})[_0xc0fd[42]](function(_0x6ffbx11){_0x6ffbx22(null,_0x6ffbx11)})}function createSquareReport(_0x6ffbx25,_0x6ffbx22){rpc[_0xc0fd[45]](_0x6ffbx25)[_0xc0fd[43]](function(_0x6ffbx23){_0x6ffbx22(null,_0x6ffbx23)})[_0xc0fd[42]](function(_0x6ffbx11){_0x6ffbx22(null,_0x6ffbx11)})}function updateSquareReport(_0x6ffbx25,_0x6ffbx22){rpc[_0xc0fd[46]](_0x6ffbx25[_0xc0fd[23]],_0x6ffbx25[_0xc0fd[19]])[_0xc0fd[43]](function(_0x6ffbx23){_0x6ffbx22(null,_0x6ffbx23)})[_0xc0fd[42]](function(_0x6ffbx11){_0x6ffbx22(null,_0x6ffbx11)})}function setChannelVariables(_0x6ffbxf){for(var _0x6ffbx1a in _0x6ffbxf){if(_0x6ffbxf[_0xc0fd[31]](_0x6ffbx1a)){if(_0x6ffbx1a[_0xc0fd[48]](_0xc0fd[47])=== 0){_0x6ffbxf[_0x6ffbx1a[_0xc0fd[49]](4)]= _0x6ffbxf[_0x6ffbx1a];delete _0x6ffbxf[_0x6ffbx1a]}}}}function getLogFromObject(_0x6ffbx29){return util[_0xc0fd[50]](_0x6ffbx29,{showHidden:false,depth:null})}function agiHandler(_0x6ffbxf){var _0x6ffbx2b,_0x6ffbx18,_0x6ffbx1c,_0x6ffbx2c,_0x6ffbx2d;logger[_0xc0fd[52]](_0xc0fd[51],JSON[_0xc0fd[13]](_0x6ffbxf,null,2));logger[_0xc0fd[17]](util[_0xc0fd[24]](_0xc0fd[53],_0x6ffbxf[_0xc0fd[19]],_0x6ffbxf[_0xc0fd[20]],_0x6ffbxf[_0xc0fd[21]],_0x6ffbxf[_0xc0fd[22]],_0x6ffbxf[_0xc0fd[23]]));_0x6ffbxf[_0xc0fd[54]](_0xc0fd[14],errorHandler);_0x6ffbxf[_0xc0fd[54]](_0xc0fd[55],closeHandler);_0x6ffbxf[_0xc0fd[54]](_0xc0fd[56],hangupHandler);var _0x6ffbx2e=getSquareProject[_0xc0fd[57]](null,_0x6ffbxf[_0xc0fd[19]]);if(_0x6ffbx2e){if(_0x6ffbx2e[_0xc0fd[58]]){_0x6ffbx2b= getRoot(_0x6ffbx2e[_0xc0fd[58]]);if(_0x6ffbx2b&& _0x6ffbx2b[_0xc0fd[59]]){logger[_0xc0fd[52]](_0xc0fd[26],JSON[_0xc0fd[13]](_0x6ffbx2b,null,2));createSquareReport[_0xc0fd[57]](null,_0x6ffbxf);_0x6ffbx18= initGraph(_[_0xc0fd[34]](_0x6ffbx2b,_0xc0fd[33]),_0x6ffbx2b[_0xc0fd[33]]);_0x6ffbx1c=  new Vertices(_0x6ffbxf,rpc);logger[_0xc0fd[17]](util[_0xc0fd[24]](_0xc0fd[60],_0x6ffbxf[_0xc0fd[19]],_0x6ffbxf[_0xc0fd[20]],_0x6ffbxf[_0xc0fd[21]],_0x6ffbxf[_0xc0fd[22]],_0x6ffbxf[_0xc0fd[23]]));_0x6ffbx18[_0xc0fd[76]](_0x6ffbx2b[_0xc0fd[59]][_0xc0fd[61]],function(_0x6ffbx19){try{_0x6ffbx19= _0x6ffbx1c[_0xc0fd[62]](_0x6ffbx19);logger[_0xc0fd[52]](_0xc0fd[63],JSON[_0xc0fd[13]](_0x6ffbx19,null,2));if(_0x6ffbx19[_0xc0fd[29]]=== _0xc0fd[64]){logger[_0xc0fd[17]](_0xc0fd[65]);_0x6ffbxf[_0xc0fd[66]]= _0x6ffbx19[_0xc0fd[66]]|| _0x6ffbxf[_0xc0fd[66]];_0x6ffbxf[_0xc0fd[67]]= _0x6ffbx19[_0xc0fd[67]];_0x6ffbxf[_0xc0fd[68]]= _0x6ffbx19[_0xc0fd[68]]?_0x6ffbx19[_0xc0fd[68]]- 1:1;return null}else {if(_0x6ffbx19&& _0x6ffbx1c[_0x6ffbx19[_0xc0fd[29]]]){_0x6ffbx2d= _0x6ffbx1c[_0x6ffbx19[_0xc0fd[29]]](_0x6ffbx19);logger[_0xc0fd[17]](_0xc0fd[69],JSON[_0xc0fd[13]](_0x6ffbx2d,null,2));if(_0x6ffbx2d&& _0x6ffbx2d[_0xc0fd[70]]=== AGI_CODE_SUCCESS&& _0x6ffbx2d[_0xc0fd[71]]!== AGI_RESULT_ERROR){logger[_0xc0fd[52]](_0xc0fd[69],getLogFromObject(_0x6ffbx2d));return _[_0xc0fd[72]](_0x6ffbx2d[_0xc0fd[71]])?null:_0x6ffbx2d[_0xc0fd[71]].toString()}else {logger[_0xc0fd[14]](_0xc0fd[69],getLogFromObject(_0x6ffbx2d));return null}}else {logger[_0xc0fd[14]](_0xc0fd[73]);return null}}}catch(ex){console[_0xc0fd[74]](ex);logger[_0xc0fd[14]](_0xc0fd[75],getLogFromObject(ex));return null}});if(_0x6ffbx2b[_0xc0fd[77]]){logger[_0xc0fd[17]](util[_0xc0fd[24]](_0xc0fd[78],_0x6ffbxf[_0xc0fd[19]],_0x6ffbxf[_0xc0fd[20]],_0x6ffbxf[_0xc0fd[21]],_0x6ffbxf[_0xc0fd[22]],_0x6ffbxf[_0xc0fd[23]]));_0x6ffbx18[_0xc0fd[76]](_0x6ffbx2b[_0xc0fd[77]][_0xc0fd[61]],function(_0x6ffbx19){try{_0x6ffbx19= _0x6ffbx1c[_0xc0fd[62]](_0x6ffbx19);logger[_0xc0fd[52]](_0xc0fd[63],JSON[_0xc0fd[13]](_0x6ffbx19,null,2));if(_0x6ffbx19&& _0x6ffbx1c[_0x6ffbx19[_0xc0fd[29]]]){_0x6ffbx2d= _0x6ffbx1c[_0x6ffbx19[_0xc0fd[29]]](_0x6ffbx19);if(_0x6ffbx2d){logger[_0xc0fd[52]](_0xc0fd[69],getLogFromObject(_0x6ffbx2d));return _[_0xc0fd[72]](_0x6ffbx2d[_0xc0fd[71]])?null:_0x6ffbx2d[_0xc0fd[71]].toString()}else {logger[_0xc0fd[14]](_0xc0fd[69],getLogFromObject(_0x6ffbx2d));return null}}else {logger[_0xc0fd[14]](_0xc0fd[73]);return null}}catch(ex){logger[_0xc0fd[14]](_0xc0fd[75],getLogFromObject(ex));return null}})};logger[_0xc0fd[17]](util[_0xc0fd[24]](_0xc0fd[79],_0x6ffbxf[_0xc0fd[19]],_0x6ffbxf[_0xc0fd[20]],_0x6ffbxf[_0xc0fd[21]],_0x6ffbxf[_0xc0fd[22]],_0x6ffbxf[_0xc0fd[23]]));logger[_0xc0fd[17]](util[_0xc0fd[24]](_0xc0fd[80],_0x6ffbxf[_0xc0fd[66]],_0x6ffbxf[_0xc0fd[67]],parseInt(_0x6ffbxf[_0xc0fd[68]],10)+ 1));_0x6ffbxf[_0xc0fd[81]](_0x6ffbxf[_0xc0fd[66]],_0x6ffbxf[_0xc0fd[67]],parseInt(_0x6ffbxf[_0xc0fd[68]],10)+ 1);_0x6ffbxf[_0xc0fd[55]]()}}else {logger[_0xc0fd[14]](util[_0xc0fd[24]](_0xc0fd[82],_0x6ffbxf[_0xc0fd[19]]));_0x6ffbxf[_0xc0fd[81]](_0x6ffbxf[_0xc0fd[66]],_0x6ffbxf[_0xc0fd[67]],parseInt(_0x6ffbxf[_0xc0fd[68]],10)+ 1);_0x6ffbxf[_0xc0fd[55]]()}}else {logger[_0xc0fd[14]](util[_0xc0fd[24]](_0xc0fd[83],_0x6ffbxf[_0xc0fd[19]]));_0x6ffbxf[_0xc0fd[81]](_0x6ffbxf[_0xc0fd[66]],_0x6ffbxf[_0xc0fd[67]],parseInt(_0x6ffbxf[_0xc0fd[68]],10)+ 1);_0x6ffbxf[_0xc0fd[55]]()}}agi[_0xc0fd[54]](_0xc0fd[14],errorHandler);agi[_0xc0fd[54]](_0xc0fd[84],listeningHandler);agi[_0xc0fd[54]](_0xc0fd[85],connectionHandler)
\ No newline at end of file
diff --git a/server/services/agi/reply.js b/server/services/agi/reply.js
new file mode 100644 (file)
index 0000000..83e65a3
--- /dev/null
@@ -0,0 +1 @@
+var _0xcde8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x54\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x73\x74\x72\x65\x61\x6D","\x63\x61\x6C\x6C","\x5F\x6C\x6F\x63\x61\x6C\x42\x75\x66\x66\x65\x72","","\x5F\x69\x6E\x42\x6F\x64\x79","\x69\x6E\x68\x65\x72\x69\x74\x73","\x5F\x74\x72\x61\x6E\x73\x66\x6F\x72\x6D","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x0A","\x0A\x0A","\x0D\x0A\x0D\x0A","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x6C\x65\x6E\x67\x74\x68","\x73\x70\x6C\x69\x74","\x3A","\x69\x6E\x64\x65\x78\x4F\x66","\x74\x72\x69\x6D","\x73\x6C\x69\x63\x65","\x68\x65\x61\x64\x65\x72\x73","\x65\x6D\x69\x74","\x6C\x69\x6E\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xcde8[0];var util=require(_0xcde8[1]);var Transform=require(_0xcde8[3])[_0xcde8[2]];function AGIReply(_0x89f2x4){Transform[_0xcde8[4]](this,_0x89f2x4);this[_0xcde8[5]]= _0xcde8[6];this[_0xcde8[7]]= false}util[_0xcde8[8]](AGIReply,Transform);AGIReply[_0xcde8[10]][_0xcde8[9]]= function(_0x89f2x5,_0x89f2x6,_0x89f2x7){var _0x89f2x8=_0xcde8[11],_0x89f2x9=[_0xcde8[12],_0xcde8[13]],_0x89f2xa=-1,_0x89f2xb=-1,_0x89f2xc=_0xcde8[6],_0x89f2xd=0,_0x89f2xe=_0xcde8[6],_0x89f2xf=_0xcde8[6];this[_0xcde8[5]]+= _0x89f2x5.toString();_0x89f2xe= this[_0xcde8[5]];if(!this[_0xcde8[7]]){_0x89f2xd= 0;while(_0x89f2x9[_0x89f2xd]){while((_0x89f2xb= _0x89f2xe[_0xcde8[18]](_0x89f2x9[_0x89f2xd]))!=  -1){_0x89f2xc= _0x89f2x9[_0x89f2xd];_0x89f2xf= _0x89f2xe[_0xcde8[14]](0,_0x89f2xb);_0x89f2xe= _0x89f2xe[_0xcde8[14]](_0x89f2xb+ _0x89f2xc[_0xcde8[15]]);var _0x89f2x10=_0x89f2xf[_0xcde8[16]](_0x89f2x8),_0x89f2x11=0,_0x89f2x12={},_0x89f2x13=_0xcde8[6],_0x89f2x14=_0xcde8[6],_0x89f2x15=-1;while(_0x89f2x10[_0x89f2x11]){_0x89f2x15= _0x89f2x10[_0x89f2x11][_0xcde8[18]](_0xcde8[17]);if(_0x89f2x15!=  -1){_0x89f2x13= _0x89f2x10[_0x89f2x11][_0xcde8[20]](0,_0x89f2x15)[_0xcde8[19]]();_0x89f2x14= _0x89f2x10[_0x89f2x11][_0xcde8[20]](_0x89f2x15+ 1)[_0xcde8[19]]();if(_0x89f2x13[_0xcde8[15]]> 0){_0x89f2x12[_0x89f2x13]= _0x89f2x14}}else {};_0x89f2x11++};this[_0xcde8[22]](_0xcde8[21],_0x89f2x12);this[_0xcde8[7]]= true};_0x89f2xd++};this[_0xcde8[5]]= _0x89f2xe}else {while((_0x89f2xa= _0x89f2xe[_0xcde8[18]](_0x89f2x8))!=  -1){_0x89f2xf= _0x89f2xe[_0xcde8[14]](0,_0x89f2xa);this[_0xcde8[22]](_0xcde8[23],_0x89f2xf);_0x89f2xe= _0x89f2xe[_0xcde8[14]](_0x89f2xa+ _0x89f2x8[_0xcde8[15]])};this[_0xcde8[5]]= _0x89f2xe};_0x89f2x7()};module[_0xcde8[24]]= AGIReply
\ No newline at end of file
diff --git a/server/services/agi/rpc/index.js b/server/services/agi/rpc/index.js
new file mode 100644 (file)
index 0000000..cd6d2b9
--- /dev/null
@@ -0,0 +1 @@
+var _0x8e4e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x63\x61\x74\x63\x68","\x65\x72\x72\x6F\x72","\x6D\x65\x73\x73\x61\x67\x65","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x53\x68\x6F\x77\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x70\x72\x6F\x64\x75\x63\x74\x69\x6F\x6E","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x42\x79\x49\x64","\x6E\x61\x6D\x65","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x42\x79\x49\x64","\x53\x68\x6F\x77\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65\x42\x79\x49\x64","\x53\x68\x6F\x77\x56\x61\x72\x69\x61\x62\x6C\x65","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x42\x79\x49\x64","\x53\x68\x6F\x77\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x64\x73\x6E","\x67\x65\x74\x55\x73\x65\x72\x42\x79\x49\x64","\x53\x68\x6F\x77\x55\x73\x65\x72","\x67\x65\x74\x54\x72\x75\x6E\x6B\x42\x79\x49\x64","\x53\x68\x6F\x77\x54\x72\x75\x6E\x6B","\x67\x65\x74\x53\x6F\x75\x6E\x64\x42\x79\x49\x64","\x53\x68\x6F\x77\x53\x6F\x75\x6E\x64","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x42\x79\x49\x64","\x53\x68\x6F\x77\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x61\x72\x67\x5F\x31","\x61\x72\x67\x5F\x32","","\x6D\x65\x72\x67\x65","\x75\x70\x64\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x55\x70\x64\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x70\x6F\x72\x74","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x43\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x63\x72\x65\x61\x74\x65\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x72\x65\x61\x74\x65\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x53\x68\x6F\x77\x43\x6D\x48\x6F\x70\x70\x65\x72","\x70\x68\x6F\x6E\x65","\x4C\x69\x73\x74\x49\x64"];_0x8e4e[0];var BPromise=require(_0x8e4e[1]);var moment=require(_0x8e4e[2]);var _=require(_0x8e4e[3]);var util=require(_0x8e4e[4]);var jayson=require(_0x8e4e[5]);var client=jayson[_0x8e4e[7]][_0x8e4e[6]]({port:9001});function request(_0x2afax8,_0x2afax9){return  new BPromise(function(_0x2afaxa,_0x2afaxb){return client[_0x8e4e[13]](_0x2afax8,_0x2afax9)[_0x8e4e[12]](function(_0x2afaxd){if(_0x2afaxd[_0x8e4e[9]]){return _0x2afaxb(_0x2afaxd[_0x8e4e[9]][_0x8e4e[10]])}else {return _0x2afaxa(_0x2afaxd[_0x8e4e[11]])}})[_0x8e4e[8]](function(_0x2afaxc){return _0x2afaxb(_0x2afaxc)})})}exports[_0x8e4e[14]]= function(_0x2afax8){return request(_0x8e4e[15],{options:{raw:false,where:{name:_0x2afax8},attributes:[_0x8e4e[16]]}})};exports[_0x8e4e[17]]= function(_0x2afaxe){return request(_0x8e4e[15],{options:{where:{id:_0x2afaxe},attributes:[_0x8e4e[18]]}})};exports[_0x8e4e[19]]= function(_0x2afaxe){return request(_0x8e4e[20],{options:{where:{id:_0x2afaxe},attributes:[_0x8e4e[18]]}})};exports[_0x8e4e[21]]= function(_0x2afaxe){return request(_0x8e4e[22],{options:{where:{id:_0x2afaxe},attributes:[_0x8e4e[18]]}})};exports[_0x8e4e[23]]= function(_0x2afaxe){return request(_0x8e4e[24],{options:{where:{id:_0x2afaxe},attributes:[_0x8e4e[25]]}})};exports[_0x8e4e[26]]= function(_0x2afaxe){return request(_0x8e4e[27],{options:{where:{id:_0x2afaxe},attributes:[_0x8e4e[18]]}})};exports[_0x8e4e[28]]= function(_0x2afaxe){return request(_0x8e4e[29],{options:{where:{id:_0x2afaxe},attributes:[_0x8e4e[18]]}})};exports[_0x8e4e[30]]= function(_0x2afaxe){return request(_0x8e4e[31],{options:{where:{id:_0x2afaxe},attributes:[_0x8e4e[32]]}})};exports[_0x8e4e[33]]= function(_0x2afaxe){return request(_0x8e4e[34],{options:{raw:false,where:{id:_0x2afaxe},include:[{model:_0x8e4e[35],as:_0x8e4e[36]}]}})};exports[_0x8e4e[37]]= function(_0x2afaxf){return request(_0x8e4e[38],{body:_0x2afaxf})};exports[_0x8e4e[39]]= function(_0x2afaxf){return request(_0x8e4e[40],{body:_[_0x8e4e[46]](_0x2afaxf,{joinAt:moment()[_0x8e4e[42]](_0x8e4e[41]),project_name:_0x2afaxf[_0x8e4e[43]],prev_project_name:_0x2afaxf[_0x8e4e[44]]|| _0x8e4e[45],is_subproject:_0x2afaxf[_0x8e4e[44]]?true:false})})};exports[_0x8e4e[47]]= function(_0x2afax10,_0x2afax11){return request(_0x8e4e[48],{body:{leaveAt:moment()[_0x8e4e[42]](_0x8e4e[41])},options:{where:{uniqueid:_0x2afax10,project_name:_0x2afax11,leaveAt:null}}})};exports[_0x8e4e[49]]= function(_0x2afaxf){return request(_0x8e4e[50],{body:_0x2afaxf})};exports[_0x8e4e[51]]= function(_0x2afaxf){return request(_0x8e4e[53],{options:{raw:false,where:{phone:_0x2afaxf[_0x8e4e[54]],ListId:_0x2afaxf[_0x8e4e[55]]}}})[_0x8e4e[12]](function(_0x2afax12){if(_0x2afax12){return _0x2afax12};return request(_0x8e4e[52],{body:_0x2afaxf})})}
\ No newline at end of file
diff --git a/server/services/agi/scripts/index.js b/server/services/agi/scripts/index.js
new file mode 100644 (file)
index 0000000..e6195e3
--- /dev/null
@@ -0,0 +1 @@
+var _0x43a1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x68\x74\x74\x70","\x68\x74\x74\x70\x73","\x70\x61\x72\x73\x65","\x75\x72\x6C","\x62\x6C\x75\x65\x62\x69\x72\x64","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x73\x6F\x78","\x67\x6F\x6F\x67\x6C\x65\x2D\x74\x74\x73\x2D\x61\x70\x69","\x75\x74\x69\x6C","\x71\x75\x65\x72\x79\x73\x74\x72\x69\x6E\x67","\x6D\x6F\x6D\x65\x6E\x74","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x61\x70\x69\x2E\x69\x73\x70\x65\x65\x63\x68\x2E\x6F\x72\x67\x2F\x61\x70\x69\x2F\x72\x65\x73\x74","\x70\x72\x6F\x74\x6F\x63\x6F\x6C","\x68\x74\x74\x70\x73\x3A","\x68\x6F\x73\x74","\x57\x48\x41\x54\x5F\x45\x56\x45\x52","\x65\x6E\x64","\x65\x72\x72\x6F\x72","\x6F\x6E","\x73\x74\x61\x74\x75\x73\x43\x6F\x64\x65","\x72\x65\x71\x75\x65\x73\x74\x20\x74\x6F\x20","\x20\x66\x61\x69\x6C\x65\x64\x2C\x20\x73\x74\x61\x74\x75\x73\x20\x63\x6F\x64\x65\x20\x3D\x20","\x20\x28","\x73\x74\x61\x74\x75\x73\x4D\x65\x73\x73\x61\x67\x65","\x29","\x63\x72\x65\x61\x74\x65\x57\x72\x69\x74\x65\x53\x74\x72\x65\x61\x6D","\x66\x69\x6E\x69\x73\x68","\x66\x69\x6E\x69\x73\x68\x20\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x20\x66\x69\x6C\x65","\x69\x6E\x66\x6F","\x63\x6C\x6F\x73\x65","\x75\x6E\x6C\x69\x6E\x6B","\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x20\x65\x72\x72\x6F\x72","\x70\x69\x70\x65","\x67\x65\x74","","\x64\x61\x74\x61","\x77\x61\x76","\x74\x72\x61\x6E\x73\x63\x6F\x64\x65","\x65\x72\x72\x6F\x72\x20\x63\x6F\x6E\x76\x65\x72\x74","\x66\x69\x6E\x69\x73\x68\x20\x74\x6F\x20\x63\x6F\x6E\x76\x65\x72\x74","\x73\x74\x61\x72\x74","\x72\x65\x61\x64\x46\x69\x6C\x65\x53\x79\x6E\x63","\x62\x61\x73\x65\x36\x34","\x67\x6F\x6F\x67\x6C\x65\x54\x54\x53","\x67\x6F\x67\x67\x6C\x65\x54\x54\x53\x20\x70\x61\x74\x68","\x2E","\x73\x70\x6C\x69\x74","\x74\x68\x65\x6E","\x74\x6D\x70","\x67\x65\x6E\x65\x72\x61\x74\x65","\x2E\x77\x61\x76","\x72\x65\x73\x6F\x6C\x76\x65","\x2E\x6D\x70\x33","\x65\x6E","\x69\x73\x70\x65\x65\x63\x68\x54\x54\x53","\x25\x73\x3F\x61\x70\x69\x6B\x65\x79\x3D\x25\x73\x26\x61\x63\x74\x69\x6F\x6E\x3D\x63\x6F\x6E\x76\x65\x72\x74\x26\x74\x65\x78\x74\x3D\x25\x73\x26\x76\x6F\x69\x63\x65\x3D\x25\x73\x26\x73\x70\x65\x65\x64\x3D\x25\x73\x26\x66\x6F\x72\x6D\x61\x74\x3D\x6D\x70\x33","\x66\x6F\x72\x6D\x61\x74","\x69\x73\x70\x65\x65\x63\x68\x41\x53\x52","\x25\x73\x3F\x61\x70\x69\x6B\x65\x79\x3D\x25\x73\x26\x61\x63\x74\x69\x6F\x6E\x3D\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x26\x6C\x6F\x63\x61\x6C\x65\x3D\x25\x73\x26\x63\x6F\x6E\x74\x65\x6E\x74\x2D\x74\x79\x70\x65\x3D\x61\x75\x64\x69\x6F\x2F\x78\x2D\x77\x61\x76\x26\x61\x75\x64\x69\x6F\x3D\x25\x73\x26\x25\x73","\x6D\x6F\x64\x65\x6C\x3D\x25\x73","\x66\x72\x65\x65\x66\x6F\x72\x6D\x3D\x33","\x64\x69\x72\x4E\x61\x6D\x65"];_0x43a1[0];var fs=require(_0x43a1[1]);var path=require(_0x43a1[2]);var http=require(_0x43a1[3]);var https=require(_0x43a1[4]);var urlParse=require(_0x43a1[6])[_0x43a1[5]];var BPromise=require(_0x43a1[7]);var rs=require(_0x43a1[8]);var sox=require(_0x43a1[9]);var tts=require(_0x43a1[10]);var util=require(_0x43a1[11]);var querystring=require(_0x43a1[12]);var moment=require(_0x43a1[13]);var logger=require(_0x43a1[15])(_0x43a1[14]);var ISPEECH_API=_0x43a1[16];function downloadFile(_0x2b6cx10,_0x2b6cx11){return  new BPromise(function(_0x2b6cx12,_0x2b6cx13){var _0x2b6cx14=urlParse(_0x2b6cx10);var _0x2b6cx15=_0x2b6cx14[_0x43a1[17]]=== _0x43a1[18]?https:http;var _0x2b6cx16={host:_0x2b6cx14[_0x43a1[19]],path:_0x2b6cx14[_0x43a1[2]],headers:{"\x75\x73\x65\x72\x2D\x61\x67\x65\x6E\x74":_0x43a1[20]}};_0x2b6cx15[_0x43a1[38]](_0x2b6cx16,function(_0x2b6cx18){if(_0x2b6cx18[_0x43a1[24]]!== 200){logger[_0x43a1[22]](_0x43a1[25]+ _0x2b6cx10+ _0x43a1[26]+ _0x2b6cx18[_0x43a1[24]]+ _0x43a1[27]+ _0x2b6cx18[_0x43a1[28]]+ _0x43a1[29]);_0x2b6cx13( new Error(_0x43a1[25]+ _0x2b6cx10+ _0x43a1[26]+ _0x2b6cx18[_0x43a1[24]]+ _0x43a1[27]+ _0x2b6cx18[_0x43a1[28]]+ _0x43a1[29]));return};var _0x2b6cx19=fs[_0x43a1[30]](_0x2b6cx11);_0x2b6cx19[_0x43a1[23]](_0x43a1[31],function(){logger[_0x43a1[33]](_0x43a1[32]);_0x2b6cx19[_0x43a1[34]](_0x2b6cx12)});_0x2b6cx19[_0x43a1[23]](_0x43a1[22],function(_0x2b6cx17){fs[_0x43a1[35]](_0x2b6cx11);logger[_0x43a1[22]](_0x43a1[36],_0x2b6cx17);_0x2b6cx13(_0x2b6cx17)});_0x2b6cx18[_0x43a1[37]](_0x2b6cx19)})[_0x43a1[23]](_0x43a1[22],function(_0x2b6cx17){logger[_0x43a1[22]](_0x2b6cx17);_0x2b6cx13(_0x2b6cx17)})[_0x43a1[21]]()})}function uploadFile(_0x2b6cx10){return  new BPromise(function(_0x2b6cx12,_0x2b6cx13){var _0x2b6cx14=urlParse(_0x2b6cx10);var _0x2b6cx15=_0x2b6cx14[_0x43a1[17]]=== _0x43a1[18]?https:http;var _0x2b6cx16={host:_0x2b6cx14[_0x43a1[19]],path:_0x2b6cx14[_0x43a1[2]],headers:{"\x75\x73\x65\x72\x2D\x61\x67\x65\x6E\x74":_0x43a1[20]}};_0x2b6cx15[_0x43a1[38]](_0x2b6cx16,function(_0x2b6cx18){if(_0x2b6cx18[_0x43a1[24]]!== 200){_0x2b6cx13( new Error(_0x43a1[25]+ _0x2b6cx10+ _0x43a1[26]+ _0x2b6cx18[_0x43a1[24]]+ _0x43a1[27]+ _0x2b6cx18[_0x43a1[28]]+ _0x43a1[29]));return};var _0x2b6cx1b=_0x43a1[39];_0x2b6cx18[_0x43a1[23]](_0x43a1[40],function(_0x2b6cx1c){_0x2b6cx1b+= _0x2b6cx1c});_0x2b6cx18[_0x43a1[23]](_0x43a1[21],function(){_0x2b6cx12(_0x2b6cx1b)})})[_0x43a1[23]](_0x43a1[22],function(_0x2b6cx17){_0x2b6cx13(_0x2b6cx17)})[_0x43a1[21]]()})}function convertFile(_0x2b6cx19,_0x2b6cx11){return  new BPromise(function(_0x2b6cx12,_0x2b6cx13){var _0x2b6cx1e=sox[_0x43a1[42]](_0x2b6cx19,_0x2b6cx11,{sampleRate:8000,format:_0x43a1[41],channelCount:1,bitRate:192* 1024,compressionQuality:5});_0x2b6cx1e[_0x43a1[23]](_0x43a1[22],function(_0x2b6cx17){logger[_0x43a1[22]](_0x43a1[43],_0x2b6cx17);_0x2b6cx13(_0x2b6cx17)});_0x2b6cx1e[_0x43a1[23]](_0x43a1[21],function(){logger[_0x43a1[33]](_0x43a1[44]);_0x2b6cx12()});_0x2b6cx1e[_0x43a1[45]]()})}function base64Encode(_0x2b6cx19){var _0x2b6cx20=fs[_0x43a1[46]](_0x2b6cx19);return  new Buffer(_0x2b6cx20).toString(_0x43a1[47])}exports[_0x43a1[48]]= function(_0x2b6cx21,_0x2b6cx22){var _0x2b6cx23;var _0x2b6cx24;return tts(_0x2b6cx21,_0x2b6cx22|| _0x43a1[58],1)[_0x43a1[52]](function(_0x2b6cx10){logger[_0x43a1[33]](_0x2b6cx10);_0x2b6cx23= path[_0x43a1[56]](__dirname,_0x43a1[53],rs[_0x43a1[54]](4)+ _0x43a1[57]);return downloadFile(_0x2b6cx10,_0x2b6cx23)})[_0x43a1[52]](function(){_0x2b6cx24= path[_0x43a1[56]](__dirname,_0x43a1[53],rs[_0x43a1[54]](4)+ _0x43a1[55]);return convertFile(_0x2b6cx23,_0x2b6cx24)})[_0x43a1[52]](function(){fs[_0x43a1[35]](_0x2b6cx23);logger[_0x43a1[33]](_0x43a1[49],_0x2b6cx24[_0x43a1[51]](_0x43a1[50])[0]);return _0x2b6cx24[_0x43a1[51]](_0x43a1[50])[0]})};exports[_0x43a1[59]]= function(_0x2b6cx25,_0x2b6cx21,_0x2b6cx22,_0x2b6cx26){var _0x2b6cx10=util[_0x43a1[61]](_0x43a1[60],ISPEECH_API,_0x2b6cx25,encodeURIComponent(_0x2b6cx21),_0x2b6cx22,_0x2b6cx26);var _0x2b6cx23=path[_0x43a1[56]](__dirname,_0x43a1[53],rs[_0x43a1[54]](4)+ _0x43a1[57]);var _0x2b6cx24;return downloadFile(_0x2b6cx10,_0x2b6cx23)[_0x43a1[52]](function(){_0x2b6cx24= path[_0x43a1[56]](__dirname,_0x43a1[53],rs[_0x43a1[54]](4)+ _0x43a1[55]);return convertFile(_0x2b6cx23,_0x2b6cx24)})[_0x43a1[52]](function(){fs[_0x43a1[35]](_0x2b6cx23);return _0x2b6cx24[_0x43a1[51]](_0x43a1[50])[0]})};exports[_0x43a1[62]]= function(_0x2b6cx23,_0x2b6cx25,_0x2b6cx22,_0x2b6cx27){var _0x2b6cx10=util[_0x43a1[61]](_0x43a1[63],ISPEECH_API,_0x2b6cx25,_0x2b6cx22,base64Encode(_0x2b6cx23),_0x2b6cx27?util[_0x43a1[61]](_0x43a1[64],encodeURIComponent(_0x2b6cx27)):_0x43a1[65]);return uploadFile(_0x2b6cx10)[_0x43a1[52]](function(_0x2b6cx18){return querystring[_0x43a1[5]](_0x2b6cx18)})};exports[_0x43a1[66]]= function(){return __dirname}
\ No newline at end of file
diff --git a/server/services/agi/scripts/tmp/README.md b/server/services/agi/scripts/tmp/README.md
new file mode 100644 (file)
index 0000000..b0e85a5
--- /dev/null
@@ -0,0 +1 @@
+temporary file generate from google and ispeech
diff --git a/server/services/agi/server.js b/server/services/agi/server.js
new file mode 100644 (file)
index 0000000..c4c0e81
--- /dev/null
@@ -0,0 +1 @@
+var _0x408c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6E\x65\x74","\x45\x76\x65\x6E\x74\x45\x6D\x69\x74\x74\x65\x72","\x65\x76\x65\x6E\x74\x73","\x2E\x2F\x65\x72\x72\x6F\x72","\x2E\x2F\x63\x68\x61\x6E\x6E\x65\x6C","\x30\x2E\x30\x2E\x30\x2E\x30","\x63\x61\x6C\x6C","\x65\x72\x72\x6F\x72","\x45\x5F\x41\x47\x49\x5F\x41\x52\x47\x55\x4D\x45\x4E\x54\x5F\x50\x4F\x52\x54","\x65\x6D\x69\x74","\x63\x72\x65\x61\x74\x65\x53\x65\x72\x76\x65\x72","\x6C\x69\x73\x74\x65\x6E","\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67","\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E","\x72\x65\x61\x64\x79","\x45\x5F\x41\x47\x49\x5F\x53\x45\x52\x56\x45\x52\x5F\x45\x52\x52\x4F\x52","\x63\x6F\x64\x65","\x63\x6C\x6F\x73\x65","\x45\x5F\x41\x47\x49\x5F\x53\x45\x52\x56\x45\x52\x5F\x43\x4C\x4F\x53\x45","\x6E\x65\x78\x74\x54\x69\x63\x6B","\x69\x6E\x68\x65\x72\x69\x74\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x408c[0];var util=require(_0x408c[1]);var net=require(_0x408c[2]);var EventEmitter=require(_0x408c[4])[_0x408c[3]];var AGIError=require(_0x408c[5]);var AGIChannel=require(_0x408c[6]);var AGIServer=function(_0xd341x7,_0xd341x8){var _0xd341x9=this,_0xd341x7=_0xd341x7|| 4573,_0xd341x8=_0xd341x8|| _0x408c[7],_0xd341xa=null;EventEmitter[_0x408c[8]](_0xd341x9);function _0xd341xb(){if(!_0xd341x7){_0xd341x9[_0x408c[11]](_0x408c[9], new AGIError(_0x408c[10]));return false};_0xd341xa= net[_0x408c[12]]();_0xd341xa[_0x408c[13]](_0xd341x7,_0xd341x8);_0xd341xa[_0x408c[15]](_0x408c[14],function(){_0xd341x9[_0x408c[11]](_0x408c[14])});_0xd341xa[_0x408c[15]](_0x408c[16],function(_0xd341xc){var _0xd341xd= new AGIChannel(_0xd341xc);_0xd341xd[_0x408c[15]](_0x408c[17],function(){_0xd341x9[_0x408c[11]](_0x408c[16],_0xd341xd)})});_0xd341xa[_0x408c[15]](_0x408c[9],function(_0xd341xe){_0xd341x9[_0x408c[11]](_0x408c[9], new AGIError(_0x408c[18],_0xd341xe[_0x408c[19]]))});_0xd341xa[_0x408c[15]](_0x408c[20],function(){_0xd341x9[_0x408c[11]](_0x408c[20], new AGIError(_0x408c[21]))})}process[_0x408c[22]](function(){_0xd341xb()})};util[_0x408c[23]](AGIServer,EventEmitter);module[_0x408c[24]]= function(_0xd341x7,_0xd341x8){return  new AGIServer(_0xd341x7,_0xd341x8)}
\ No newline at end of file
diff --git a/server/services/agi/vertices.js b/server/services/agi/vertices.js
new file mode 100644 (file)
index 0000000..37cdfc9
--- /dev/null
@@ -0,0 +1 @@
+var _0xbe64=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x73\x68\x65\x6C\x6C\x6A\x73","\x6F\x64\x62\x63","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x6D\x6F\x6D\x65\x6E\x74","\x61\x67\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2F\x73\x63\x72\x69\x70\x74\x73","\x2F\x76\x61\x72\x2F\x6F\x70\x74\x2F\x6D\x6F\x74\x69\x6F\x6E\x32\x2F\x73\x65\x72\x76\x65\x72\x2F\x66\x69\x6C\x65\x73","\x6D\x65\x6E\x75","\x67\x65\x74\x64\x69\x67\x69\x74\x73","\x67\x65\x74\x73\x65\x63\x72\x65\x74\x64\x69\x67\x69\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C","\x72\x70\x63","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x61\x74\x63\x68","\x6E\x61\x6D\x65","\x74\x68\x65\x6E","\x67\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65\x42\x79\x49\x64","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x42\x79\x49\x64","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74\x42\x79\x49\x64","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63","\x64\x73\x6E","\x67\x65\x74\x53\x71\x75\x61\x72\x65\x4F\x64\x62\x63\x42\x79\x49\x64","\x67\x65\x74\x55\x73\x65\x72","\x67\x65\x74\x55\x73\x65\x72\x42\x79\x49\x64","\x67\x65\x74\x54\x72\x75\x6E\x6B","\x67\x65\x74\x54\x72\x75\x6E\x6B\x42\x79\x49\x64","\x67\x65\x74\x53\x6F\x75\x6E\x64","\x73\x61\x76\x65\x5F\x6E\x61\x6D\x65","\x67\x65\x74\x53\x6F\x75\x6E\x64\x50\x61\x74\x68","\x67\x65\x74\x53\x6F\x75\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x49\x6E\x74\x65\x72\x76\x61\x6C\x49\x64","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x6D\x61\x70","\x67\x65\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x42\x79\x49\x64","\x25\x73\x2F\x73\x6F\x75\x6E\x64\x73\x2F\x63\x6F\x6E\x76\x65\x72\x74\x65\x64\x2F\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x67\x65\x74\x51\x75\x65\x72\x79\x4F\x64\x62\x63","\x45\x72\x72\x6F\x72\x20\x67\x65\x74\x74\x69\x6E\x67\x20\x4F\x44\x42\x43\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x25\x73","\x65\x72\x72\x6F\x72","\x4F\x44\x42\x43\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x73\x75\x63\x63\x65\x73\x73\x66\x75\x6C\x6C\x79","\x69\x6E\x66\x6F","\x45\x72\x72\x6F\x72\x20\x65\x78\x65\x63\x75\x74\x69\x6E\x67\x20\x71\x75\x65\x72\x79\x20\x25\x73","\x51\x75\x65\x72\x79\x20\x65\x78\x65\x63\x75\x74\x65\x64\x20\x63\x6F\x72\x72\x65\x63\x74\x6C\x79\x20\x25\x73","\x45\x72\x72\x6F\x72\x20\x63\x6C\x6F\x73\x69\x6E\x67\x20\x63\x6F\x6E\x6E\x65\x63\x74\x69\x6F\x6E\x20\x74\x6F\x20\x6F\x64\x62\x63\x20\x25\x73","\x63\x6C\x6F\x73\x65","\x71\x75\x65\x72\x79","\x6F\x70\x65\x6E","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x44\x65\x74\x61\x69\x6C\x73\x52\x65\x70\x6F\x72\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x61\x62\x65\x6C","\x61\x67\x69\x63\x6F\x6D\x6D\x61\x6E\x64","\x61\x72\x67\x5F\x31","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x63\x72\x65\x61\x74\x65\x53\x71\x75\x61\x72\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x64\x6E\x69\x64","\x66\x69\x6C\x65","\x63\x72\x65\x61\x74\x65\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x5F","\x72\x61\x6E\x64\x6F\x6D","\x6C\x61\x73\x74\x4E\x61\x6D\x65","\x70\x68\x6F\x6E\x65","\x6C\x69\x73\x74\x5F\x69\x64","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x41\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x43\x61\x6C\x6C\x62\x61\x63\x6B\x20\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x20\x61\x74\x20","\x73\x68\x65\x6C\x6C\x43\x6F\x6D\x6D\x61\x6E\x64","\x74\x72\x69\x6D","","\x72\x65\x70\x6C\x61\x63\x65","\x65\x78\x65\x63","\x67\x6F\x6F\x67\x6C\x65\x54\x54\x53","\x74\x65\x78\x74","\x67\x6F\x6F\x67\x6C\x65\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x65\x6E","\x69\x73\x70\x65\x65\x63\x68\x54\x54\x53","\x6B\x65\x79","\x69\x73\x70\x65\x65\x63\x68\x5F\x74\x74\x73\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x65\x6E\x2D\x55\x53","\x73\x70\x65\x65\x64","\x69\x73\x70\x65\x65\x63\x68\x41\x53\x52","\x69\x73\x70\x65\x65\x63\x68\x5F\x61\x73\x72\x5F\x6C\x61\x6E\x67\x75\x61\x67\x65","\x6D\x6F\x64\x65\x6C","\x69\x73\x43\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x63\x6C\x65\x61\x72","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x63\x6C\x6F\x6E\x65","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x69\x73\x53\x74\x72\x69\x6E\x67","\x72\x65\x70\x6C\x61\x63\x65\x41\x6C\x6C\x56\x61\x72\x69\x61\x62\x6C\x65\x73","\x7B","\x73\x70\x6C\x69\x74","\x6C\x65\x6E\x67\x74\x68","\x7D","\x65\x78\x74\x72\x61","\x72\x65\x70\x6C\x61\x63\x65\x41\x6C\x6C","\x30","\x2D\x31","\x6D\x61\x78\x52\x65\x74\x72\x79","\x2D","\x73\x79\x6E\x63","\x72\x65\x74\x72\x79","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x41\x47\x49\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x63\x6F\x6D\x6D\x61\x6E\x64","\x61\x72\x67\x73","\x61\x6E\x73\x77\x65\x72","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x41\x4E\x53\x57\x45\x52\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x74\x69\x6D\x65\x6F\x75\x74","\x57\x61\x69\x74\x20\x25\x73\x20\x73\x65\x63\x6F\x6E\x64\x73\x20\x62\x65\x66\x6F\x72\x65\x20\x61\x6E\x73\x77\x65\x72","\x77\x61\x69\x74","\x72\x65\x73\x75\x6C\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x43\x41\x4C\x4C\x42\x41\x43\x4B\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x6F\x20\x6C\x69\x73\x74\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x64\x65\x6C\x61\x79","\x6D\x69\x6E\x75\x74\x65\x73","\x61\x64\x64","\x43\x41\x4C\x4C\x42\x41\x43\x4B\x20\x61\x64\x64\x65\x64\x20\x70\x68\x6F\x6E\x65\x3A\x20\x25\x73\x20\x6F\x6E\x20\x6C\x69\x73\x74\x3A\x20\x25\x73\x20\x61\x74\x20\x25\x73","\x6E\x6F\x6F\x70","\x63\x75\x73\x74\x6F\x6D\x5F\x61\x70\x70","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x43\x55\x53\x54\x4F\x4D\x20\x41\x50\x50\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6F\x70\x74\x69\x6F\x6E\x73","\x45\x78\x65\x63\x75\x74\x65\x64\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x20\x25\x73\x20\x25\x73","\x64\x61\x74\x61\x62\x61\x73\x65","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x44\x41\x54\x41\x42\x41\x53\x45\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6F\x64\x62\x63\x5F\x69\x64","\x6E\x6F\x20\x64\x61\x74\x61\x62\x61\x73\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x6F\x64\x62\x63\x20\x64\x61\x74\x61\x62\x61\x73\x65\x20\x66\x6F\x75\x6E\x64","\x6E\x6F\x20\x71\x75\x65\x72\x79\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x20","\x71\x75\x65\x72\x79\x3A\x20\x25\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x69\x64","\x6E\x6F\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6C\x74","\x6E\x6F\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x6F\x75\x6E\x64","\x25\x73\x5B\x25\x73\x5D\x5B\x25\x73\x5D","\x73\x65\x74\x56\x61\x72\x69\x61\x62\x6C\x65","\x66\x6F\x72\x45\x61\x63\x68","\x6B\x65\x79\x73","\x25\x73\x5F\x52\x4F\x57\x53\x5F\x43\x4F\x55\x4E\x54","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x25\x73\x20\x73\x65\x74","\x64\x69\x61\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x44\x49\x41\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x64\x65\x62\x75\x67","\x73\x69\x70\x5F\x69\x64","\x6E\x6F\x20\x75\x73\x65\x72\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x75\x73\x65\x72\x20\x66\x6F\x75\x6E\x64","\x44\x49\x41\x4C","\x53\x49\x50\x2F\x25\x73","\x6F\x70\x74\x73","\x75\x72\x6C","\x45\x78\x65\x63\x75\x74\x65\x64\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x20\x25\x73","\x65\x6E\x64","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x45\x4E\x44\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x65\x78\x74\x5F\x64\x69\x61\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x45\x58\x54\x45\x52\x4E\x41\x4C\x20\x44\x49\x41\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x74\x72\x75\x6E\x6B\x5F\x69\x64","\x6E\x6F\x20\x74\x72\x75\x6E\x6B\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x74\x72\x75\x6E\x6B\x20\x66\x6F\x75\x6E\x64","\x74\x72\x75\x6E\x6B\x5F\x6E\x61\x6D\x65","\x53\x49\x50\x2F\x25\x73\x2F\x25\x73","\x66\x69\x6E\x61\x6C\x6C\x79","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x46\x49\x4E\x41\x4C\x4C\x59\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x45\x54\x44\x49\x47\x49\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x66\x69\x6C\x65\x5F\x69\x64","\x6E\x6F\x20\x66\x69\x6C\x65\x20\x61\x75\x64\x69\x6F\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x66\x69\x6C\x65\x20\x61\x75\x64\x69\x6F\x20\x66\x6F\x75\x6E\x64","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x6D\x61\x78\x64\x69\x67\x69\x74","\x67\x65\x74\x44\x61\x74\x61","\x74\x65\x73\x74","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6D\x69\x6E\x64\x69\x67\x69\x74","\x78","\x69","\x68\x69\x64\x64\x65\x6E\x64\x69\x67\x69\x74\x73\x6E\x75\x6D","\x2A","\x67\x65\x6E\x65\x72\x61\x74\x65","\x68\x69\x64\x64\x65\x6E\x64\x69\x67\x69\x74\x73\x70\x6F\x73","\x66\x69\x72\x73\x74","\x73\x75\x62\x73\x74\x72","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x45\x54\x53\x45\x43\x52\x45\x54\x44\x49\x47\x49\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x67\x6F\x61\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x41\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x67\x6F\x61\x6C\x6E\x61\x6D\x65","\x47\x4F\x41\x4C\x20\x25\x73","\x67\x6F\x74\x6F\x63","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x54\x4F\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x63\x6F\x6E\x74\x69\x6E\x75\x65\x41\x74","\x67\x6F\x74\x6F\x69\x66","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x54\x4F\x49\x46\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x6E\x6F\x20\x63\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x74\x72\x75\x65","\x66\x61\x6C\x73\x65","\x45\x56\x41\x4C\x20\x43\x4F\x4E\x44\x49\x54\x49\x4F\x4E\x20\x25\x73\x20\x25\x73","\x67\x6F\x74\x6F\x69\x66\x74\x69\x6D\x65","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x54\x4F\x49\x46\x54\x49\x4D\x45\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x69\x6E\x74\x65\x72\x76\x61\x6C\x5F\x69\x64","\x6E\x6F\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x6E\x6F\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x66\x6F\x75\x6E\x64","\x49\x46\x54\x49\x4D\x45\x28\x25\x73\x3F\x74\x72\x75\x65\x3A\x66\x61\x6C\x73\x65\x29","\x49\x46\x54\x49\x4D\x45\x20\x25\x73\x20\x25\x73","\x68\x61\x6E\x67\x75\x70","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x48\x41\x4E\x47\x55\x50\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x69\x73\x70\x65\x65\x63\x68\x61\x73\x72","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x49\x53\x50\x45\x45\x43\x48\x41\x53\x52\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x6F\x20\x6B\x65\x79\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x46\x6F\x72\x6D\x61\x74","\x77\x61\x76","\x64\x69\x72\x4E\x61\x6D\x65","\x74\x6D\x70","\x72\x65\x73\x6F\x6C\x76\x65","\x25\x73\x2E\x25\x73","\x62\x65\x65\x70","\x4E\x4F\x42\x45\x45\x50","\x69\x6E\x74\x4B\x65\x79","\x72\x65\x63\x6F\x72\x64\x46\x69\x6C\x65","\x69\x73\x70\x65\x65\x63\x68\x20\x25\x73\x20\x66\x69\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64","\x75\x6E\x6C\x69\x6E\x6B","\x49\x53\x50\x45\x45\x43\x48\x5F\x41\x53\x52\x5F\x25\x73","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x69\x73\x70\x65\x65\x63\x68\x74\x74\x73","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x49\x53\x50\x45\x45\x43\x48\x54\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x6F\x20\x74\x65\x78\x74\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x54\x72\x79\x69\x6E\x67\x20\x69\x73\x70\x65\x65\x63\x68\x20\x54\x54\x53\x20\x25\x73","\x73\x74\x72\x65\x61\x6D\x46\x69\x6C\x65","\x2E\x77\x61\x76","\x69\x73\x70\x65\x65\x63\x68\x20\x54\x54\x53\x20\x69\x73\x20\x75\x6E\x72\x65\x61\x63\x68\x61\x62\x6C\x65","\x6D\x61\x74\x68","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x4D\x41\x54\x48\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E","\x6E\x6F\x20\x6F\x70\x65\x72\x61\x74\x69\x6F\x6E\x20\x63\x6F\x6E\x66\x69\x67\x75\x72\x65\x64","\x6D\x61\x74\x68\x20\x25\x73","\x69\x73\x41\x72\x72\x61\x79","\x25\x73\x5B\x25\x73\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x25\x73\x5B\x6B\x65\x79\x5D\x20\x73\x65\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x4D\x45\x4E\x55\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x64\x69\x67\x69\x74","\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x4E\x4F\x4F\x50\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6F\x75\x74\x70\x75\x74","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x50\x4C\x41\x59\x42\x41\x43\x4B\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x50\x4C\x41\x59\x42\x41\x43\x4B","\x71\x75\x65\x75\x65","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x51\x55\x45\x55\x45\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x71\x75\x65\x75\x65\x5F\x69\x64","\x6E\x6F\x20\x71\x75\x65\x75\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x71\x75\x65\x75\x65\x20\x66\x6F\x75\x6E\x64","\x69\x6E\x64\x65\x78\x4F\x66","\x58","\x51\x55\x45\x55\x45","\x6D\x61\x63\x72\x6F","\x67\x6F\x73\x75\x62","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x72\x65\x63\x6F\x72\x64","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x52\x45\x43\x4F\x52\x44\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x25\x73\x5F\x25\x73","\x25\x73\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2E\x25\x73","\x25\x73\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73","\x52\x45\x43\x4F\x52\x44\x49\x4E\x47\x5F\x53\x41\x56\x45\x4E\x41\x4D\x45","\x52\x65\x63\x6F\x72\x64\x69\x6E\x67\x20\x25\x73\x20\x25\x73\x20\x25\x73\x20\x25\x73","\x65\x73\x63\x61\x70\x65\x5F\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x64\x69\x67\x69\x74\x73","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x41\x59\x44\x49\x47\x49\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x64\x69\x67\x69\x74\x73","\x73\x61\x79\x44\x69\x67\x69\x74\x73","\x73\x61\x79\x6E\x75\x6D\x62\x65\x72","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x41\x59\x4E\x55\x4D\x42\x45\x52\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x75\x6D\x62\x65\x72","\x73\x61\x79\x4E\x75\x6D\x62\x65\x72","\x73\x61\x79\x70\x68\x6F\x6E\x65\x74\x69\x63","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x41\x59\x50\x48\x4F\x4E\x45\x54\x49\x43\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x73\x61\x79\x50\x68\x6F\x6E\x65\x74\x69\x63","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x45\x4E\x44\x4D\x41\x49\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x53\x45\x4E\x44\x4D\x41\x49\x4C\x20\x62\x6C\x6F\x63\x6B\x20\x6E\x6F\x74\x20\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x65\x64","\x73\x65\x6E\x64\x46\x61\x78","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x45\x4E\x44\x46\x41\x58\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x53\x45\x4E\x44\x46\x41\x58\x20\x62\x6C\x6F\x63\x6B\x20\x6E\x6F\x74\x20\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x65\x64","\x73\x65\x6E\x64\x53\x4D\x53","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x45\x4E\x44\x53\x4D\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x53\x45\x4E\x44\x53\x4D\x53\x20\x62\x6C\x6F\x63\x6B\x20\x6E\x6F\x74\x20\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x65\x64","\x73\x65\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x45\x54\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6E\x6F\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x76\x61\x72\x69\x61\x62\x6C\x65\x5F\x76\x61\x6C\x75\x65","\x73\x74\x61\x72\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x54\x41\x52\x54\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x53\x54\x41\x52\x54\x20\x43\x41\x4C\x4C\x59\x20\x53\x51\x55\x41\x52\x45","\x79\x65\x73","\x41\x6E\x73\x77\x65\x72","\x53\x6B\x69\x70\x70\x65\x64\x20\x41\x6E\x73\x77\x65\x72","\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x55\x42\x50\x52\x4F\x4A\x45\x43\x54\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x70\x72\x6F\x6A\x65\x63\x74\x5F\x69\x64","\x6E\x6F\x20\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74\x20\x73\x65\x6C\x65\x63\x74\x65\x64","\x6E\x6F\x20\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74\x20\x66\x6F\x75\x6E\x64\x20\x77\x69\x74\x68\x20\x69\x64\x20\x25\x64","\x70\x72\x6F\x6A\x65\x63\x74\x20\x69\x6E\x20\x73\x75\x62\x70\x72\x6F\x6A\x65\x63\x74\x20\x6D\x75\x73\x74\x20\x62\x65\x20\x64\x69\x66\x66\x65\x72\x65\x6E\x74\x20\x66\x72\x6F\x6D\x20\x74\x68\x65\x20\x63\x61\x6C\x6C\x65\x64\x20\x70\x72\x6F\x6A\x65\x63\x74","\x41\x47\x49","\x61\x67\x69\x3A\x2F\x2F\x25\x73\x2F\x73\x71\x75\x61\x72\x65\x2C\x22\x25\x73\x22\x2C\x22\x25\x73\x22","\x68\x6F\x73\x74","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x73\x79\x73\x74\x65\x6D","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x59\x53\x54\x45\x4D\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x73\x68\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x3A\x20\x25\x73\x20\x72\x65\x73\x75\x6C\x74\x20\x6F\x6E\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x3A\x20\x25\x73","\x73\x68\x20\x63\x6F\x6D\x6D\x61\x6E\x64\x3A\x20\x25\x73\x20\x72\x65\x73\x75\x6C\x74\x20\x6E\x6F\x20\x73\x74\x6F\x72\x65\x64","\x74\x74\x73","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x47\x4F\x4F\x47\x4C\x45\x54\x54\x53\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x54\x72\x79\x69\x6E\x67\x20\x47\x6F\x6F\x67\x6C\x65\x20\x54\x54\x53\x20\x25\x73","\x47\x6F\x6F\x67\x6C\x65\x20\x54\x54\x53\x20\x25\x73\x20\x66\x69\x6C\x65\x20\x63\x72\x65\x61\x74\x65\x64","\x47\x6F\x6F\x67\x6C\x65\x20\x54\x54\x53\x20\x69\x73\x20\x75\x6E\x72\x65\x61\x63\x68\x61\x62\x6C\x65","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x56\x4F\x49\x43\x45\x4D\x41\x49\x4C","\x6D\x61\x69\x6C\x62\x6F\x78","\x76\x73\x77\x69\x74\x63\x68","\x45\x6E\x74\x65\x72\x20\x69\x6E\x20\x53\x57\x49\x54\x43\x48\x20\x28\x25\x73\x29\x20\x62\x6C\x6F\x63\x6B","\x6A\x6F\x69\x6E","\x65\x78\x70\x6F\x72\x74\x73"];_0xbe64[0];var fs=require(_0xbe64[1]);var path=require(_0xbe64[2]);var util=require(_0xbe64[3]);var _=require(_0xbe64[4]);var sh=require(_0xbe64[5]);var odbc=require(_0xbe64[6])();var rs=require(_0xbe64[7]);var moment=require(_0xbe64[8]);var logger=require(_0xbe64[10])(_0xbe64[9]);var config=require(_0xbe64[11]);var scripts=require(_0xbe64[12]);var FILES_PATH=_0xbe64[13];var verticesWithRetry=[_0xbe64[14],_0xbe64[15],_0xbe64[16]];var AGIVertices=function(_0x50dexf,_0x50dex10){this[_0xbe64[17]]= _0x50dexf;this[_0xbe64[18]]= _0x50dex10};AGIVertices[_0xbe64[20]][_0xbe64[19]]= function(_0x50dex11,_0x50dex12){this[_0xbe64[18]][_0xbe64[24]](_0x50dex11)[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,(_0x50dex14)?_0x50dex14[_0xbe64[22]]:false)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[25]]= function(_0x50dex11,_0x50dex12){this[_0xbe64[18]][_0xbe64[26]](_0x50dex11)[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,(_0x50dex14)?_0x50dex14[_0xbe64[22]]:false)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[27]]= function(_0x50dex11,_0x50dex12){this[_0xbe64[18]][_0xbe64[28]](_0x50dex11)[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,(_0x50dex14)?_0x50dex14[_0xbe64[22]]:false)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[29]]= function(_0x50dex11,_0x50dex12){this[_0xbe64[18]][_0xbe64[31]](_0x50dex11)[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,(_0x50dex14)?_0x50dex14[_0xbe64[30]]:false)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[32]]= function(_0x50dex11,_0x50dex12){this[_0xbe64[18]][_0xbe64[33]](_0x50dex11)[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,(_0x50dex14)?_0x50dex14[_0xbe64[22]]:false)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[34]]= function(_0x50dex11,_0x50dex12){this[_0xbe64[18]][_0xbe64[35]](_0x50dex11)[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,(_0x50dex14)?_0x50dex14[_0xbe64[22]]:false)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[36]]= function(_0x50dex11,_0x50dex12){var _0x50dex15=this;this[_0xbe64[18]][_0xbe64[39]](_0x50dex11)[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,(_0x50dex14)?_0x50dex15[_0xbe64[38]](_0x50dex14[_0xbe64[37]]):false)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[40]]= function(_0x50dex11,_0x50dex12){this[_0xbe64[18]][_0xbe64[44]](_0x50dex11)[_0xbe64[23]](function(_0x50dex14){if(_0x50dex14){if(_0x50dex14[_0xbe64[41]]){_0x50dex12(null,[_0x50dex14[_0xbe64[42]]])}else {_0x50dex12(null,_[_0xbe64[43]](_0x50dex14.Intervals,_0xbe64[42]))}}else {_0x50dex12(null,false)}})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[38]]= function(_0x50dex16){return util[_0xbe64[46]](_0xbe64[45],FILES_PATH,_0x50dex16)};AGIVertices[_0xbe64[20]][_0xbe64[47]]= function(_0x50dex17,_0x50dex18,_0x50dex12){odbc[_0xbe64[57]](_0x50dex17,function(_0x50dex13){if(_0x50dex13){logger[_0xbe64[49]](_0xbe64[48],_0x50dex13);_0x50dex12(_0x50dex13)}else {logger[_0xbe64[51]](_0xbe64[50]);odbc[_0xbe64[56]](_0x50dex18,function(_0x50dex13,_0x50dex19){if(_0x50dex13){logger[_0xbe64[51]](_0xbe64[52],_0x50dex18);_0x50dex12(_0x50dex13)}else {logger[_0xbe64[51]](_0xbe64[53],_0x50dex18);odbc[_0xbe64[55]](function(_0x50dex13){if(_0x50dex13){logger[_0xbe64[49]](_0xbe64[54],_0x50dex13)};_0x50dex12(null,_0x50dex19)})}})}})};AGIVertices[_0xbe64[20]][_0xbe64[58]]= function(_0x50dex1a,_0x50dex19,_0x50dex12){this[_0xbe64[18]][_0xbe64[58]]({uniqueid:this[_0xbe64[17]][_0xbe64[59]],node:_0x50dex1a[_0xbe64[60]],application:_0x50dex1a[_0xbe64[61]],data:_0x50dex19|| null,project_name:this[_0xbe64[17]][_0xbe64[62]],callerid:this[_0xbe64[17]][_0xbe64[63]]})[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,_0x50dex14)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[64]]= function(_0x50dex1a,_0x50dex1b,_0x50dex1c,_0x50dex12){this[_0xbe64[18]][_0xbe64[64]]({uniqueid:this[_0xbe64[17]][_0xbe64[59]],callerid:this[_0xbe64[17]][_0xbe64[63]],calleridname:this[_0xbe64[17]][_0xbe64[65]],context:this[_0xbe64[17]][_0xbe64[66]],extension:this[_0xbe64[17]][_0xbe64[67]],priority:this[_0xbe64[17]][_0xbe64[68]],accountcode:this[_0xbe64[17]][_0xbe64[69]],dnid:this[_0xbe64[17]][_0xbe64[70]],projectName:this[_0xbe64[17]][_0xbe64[62]],saveName:_0x50dex1b,filename:_0x50dex1a[_0xbe64[71]]|| _0x50dex1b,savePath:_0x50dex1c})[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,_0x50dex14)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[72]]= function(_0x50dex1d,_0x50dex12){this[_0xbe64[18]][_0xbe64[72]]({firstName:_0x50dex1d[_0xbe64[22]]|| (_0xbe64[73]+ Math[_0xbe64[74]]()),lastName:_0x50dex1d[_0xbe64[75]],phone:_0x50dex1d[_0xbe64[76]],ListId:_0x50dex1d[_0xbe64[77]],scheduledAt:_0x50dex1d[_0xbe64[78]],callbackUniqueid:this[_0xbe64[17]][_0xbe64[59]],tags:_0xbe64[79],description:_0xbe64[80]+ _0x50dex1d[_0xbe64[78]].toString()})[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,_0x50dex14)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[81]]= function(_0x50dex1e,_0x50dex12){sh[_0xbe64[85]](_[_0xbe64[82]](_0x50dex1e),function(_0x50dex1f,_0x50dex20){var _0x50dex21=_0x50dex20[_0xbe64[84]](/(\r\n|\n|\r)/gm,_0xbe64[83]);_0x50dex12(null,_0x50dex21)})};AGIVertices[_0xbe64[20]][_0xbe64[86]]= function(_0x50dex1a,_0x50dex12){scripts[_0xbe64[86]](_0x50dex1a[_0xbe64[87]],_0x50dex1a[_0xbe64[88]]|| _0xbe64[89],1)[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,_0x50dex14)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[90]]= function(_0x50dex1a,_0x50dex12){scripts[_0xbe64[90]](_0x50dex1a[_0xbe64[91]],_0x50dex1a[_0xbe64[87]],_0x50dex1a[_0xbe64[92]]|| _0xbe64[93],_0x50dex1a[_0xbe64[94]])[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,_0x50dex14)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[95]]= function(_0x50dex1a,_0x50dex22,_0x50dex12){scripts[_0xbe64[95]](_0x50dex22,_0x50dex1a[_0xbe64[91]],_0x50dex1a[_0xbe64[96]]|| _0xbe64[93],this[_0xbe64[98]](_0x50dex1a[_0xbe64[97]])?_0x50dex1a[_0xbe64[97]]:undefined)[_0xbe64[23]](function(_0x50dex14){_0x50dex12(null,_0x50dex14)})[_0xbe64[21]](function(_0x50dex13){_0x50dex12(_0x50dex13)})};AGIVertices[_0xbe64[20]][_0xbe64[99]]= function(_0x50dex1a){var _0x50dex23=_[_0xbe64[100]](verticesWithRetry,_0x50dex1a[_0xbe64[61]])?_0x50dex1a:_[_0xbe64[101]](_0x50dex1a);for(var _0x50dex24 in _0x50dex23){if(_0x50dex23[_0xbe64[102]](_0x50dex24)){if(_0x50dex23[_0x50dex24]&& _[_0xbe64[103]](_0x50dex23[_0x50dex24])){_0x50dex23[_0x50dex24]= this[_0xbe64[104]](_0x50dex23[_0x50dex24])}}};return _0x50dex23};AGIVertices[_0xbe64[20]][_0xbe64[104]]= function(_0x50dex25){var _0x50dex26=_0x50dex25[_0xbe64[106]](_0xbe64[105]);for(var _0x50dex27=1;_0x50dex27< _0x50dex26[_0xbe64[107]];_0x50dex27+= 1){var _0x50dex28=_0x50dex26[_0x50dex27][_0xbe64[106]](_0xbe64[108]);if(_0x50dex28[_0xbe64[107]]> 1){_0x50dex25= _0x50dex25[_0xbe64[110]](_0xbe64[105]+ _0x50dex28[0]+ _0xbe64[108],this[_0xbe64[17]][_0xbe64[19]](_0x50dex28[0])[_0xbe64[109]]|| (_0x50dex28[0]))}};if(_0x50dex26[_0xbe64[107]]=== 1){return _0x50dex25};return this[_0xbe64[104]](_0x50dex25)};AGIVertices[_0xbe64[20]][_0xbe64[98]]= function(_0x50dex29){return _0x50dex29&& _0x50dex29!== _0xbe64[111]&& _0x50dex29!== _0xbe64[112]&& _0x50dex29!== _0xbe64[83]};AGIVertices[_0xbe64[20]][_0xbe64[113]]= function(_0x50dex1a){this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,_0xbe64[114]);_0x50dex1a[_0xbe64[116]]= _0x50dex1a[_0xbe64[113]];return {code:200,result:_0xbe64[114]}};AGIVertices[_0xbe64[20]][_0xbe64[9]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[117],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[17]][_0xbe64[9]]([_0x50dex1a[_0xbe64[118]],_0x50dex1a[_0xbe64[119]]])};AGIVertices[_0xbe64[20]][_0xbe64[120]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[121],_0x50dex1a[_0xbe64[60]]));if(this[_0xbe64[98]](_0x50dex1a[_0xbe64[122]])){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[123],_0x50dex1a[_0xbe64[122]]));var _0x50dex19=this[_0xbe64[17]][_0xbe64[124]](_0x50dex1a[_0xbe64[122]]);if(_0x50dex19[_0xbe64[125]]===  -1){return _0x50dex19}};return this[_0xbe64[17]][_0xbe64[120]]()};AGIVertices[_0xbe64[20]][_0xbe64[79]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[126],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[77]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[127])};_0x50dex1a[_0xbe64[78]]= moment();if(this[_0xbe64[98]](_0x50dex1a[_0xbe64[128]])){_0x50dex1a[_0xbe64[78]]= moment()[_0xbe64[130]](_0x50dex1a[_0xbe64[128]],_0xbe64[129])};this[_0xbe64[72]][_0xbe64[115]](this,_0x50dex1a);return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[131],_0x50dex1a[_0xbe64[76]],_0x50dex1a[_0xbe64[77]],_0x50dex1a[_0xbe64[78]]))};AGIVertices[_0xbe64[20]][_0xbe64[133]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[134],_0x50dex1a[_0xbe64[60]]));var _0x50dex2a=this[_0xbe64[17]][_0xbe64[85]](_0x50dex1a[_0xbe64[135]],_0x50dex1a[_0xbe64[136]]);if(_0x50dex2a[_0xbe64[125]]===  -1){return _0x50dex2a};return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[137],_0x50dex1a[_0xbe64[135]],_0x50dex1a[_0xbe64[136]]))};AGIVertices[_0xbe64[20]][_0xbe64[138]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[139],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[140]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[141])};var _0x50dex17=this[_0xbe64[29]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[140]]);if(!_0x50dex17){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[142])};if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[56]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[143])};var _0x50dex18=_0x50dex1a[_0xbe64[56]][_0xbe64[84]](/(\r\n|\n|\r)/gm,_0xbe64[144]);this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[145],_0x50dex18));var _0x50dex2b=this[_0xbe64[47]][_0xbe64[115]](this,_0x50dex17,_0x50dex18);this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,_0x50dex18);if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[146]])){return this[_0xbe64[17]][_0xbe64[132]](_0xbe64[147])};var _0x50dex2c=this[_0xbe64[19]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[146]]);if(!_0x50dex2c){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[148])};var _0x50dex15=this;_0x50dex2b[_0xbe64[151]](function(_0x50dex29,_0x50dex2d){Object[_0xbe64[152]](_0x50dex29)[_0xbe64[151]](function(_0x50dex24){_0x50dex15[_0xbe64[17]][_0xbe64[150]](util[_0xbe64[46]](_0xbe64[149],_0x50dex2c,_0x50dex2d,_0x50dex24),_0x50dex29[_0x50dex24])})});this[_0xbe64[17]][_0xbe64[150]](util[_0xbe64[46]](_0xbe64[153],_0x50dex2c),_0x50dex2b[_0xbe64[107]]);return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[154],_0x50dex2c))};AGIVertices[_0xbe64[20]][_0xbe64[155]]= function(_0x50dex1a){logger[_0xbe64[157]](util[_0xbe64[46]](_0xbe64[156],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[158]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[159])};var _0x50dex2e=this[_0xbe64[32]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[158]]);if(!_0x50dex2e){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[160])};var _0x50dex2a=this[_0xbe64[17]][_0xbe64[85]](_0xbe64[161],[util[_0xbe64[46]](_0xbe64[162],_0x50dex2e),_0x50dex1a[_0xbe64[122]],_0x50dex1a[_0xbe64[163]],_0x50dex1a[_0xbe64[164]]]);if(_0x50dex2a[_0xbe64[125]]===  -1){return _0x50dex2a};return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[165],_0xbe64[161]))};AGIVertices[_0xbe64[20]][_0xbe64[166]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[167],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[17]][_0xbe64[132]](_0xbe64[166])};AGIVertices[_0xbe64[20]][_0xbe64[168]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[169],_0x50dex1a[_0xbe64[60]]));var _0x50dex2f=_0xbe64[83];if(_0x50dex1a[_0xbe64[170]]){if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[170]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[171])}else {var _0x50dex11=parseInt(_0x50dex1a[_0xbe64[170]],10);if(isNaN(_0x50dex11)){_0x50dex2f= _0x50dex1a[_0xbe64[170]]}else {_0x50dex2f= this[_0xbe64[34]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[170]]);if(!_0x50dex2f){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[172])}}}}else {if(_0x50dex1a[_0xbe64[173]]){_0x50dex2f= _0x50dex1a[_0xbe64[173]]}else {return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[171])}};var _0x50dex2a=this[_0xbe64[17]][_0xbe64[85]](_0xbe64[161],[util[_0xbe64[46]](_0xbe64[174],_0x50dex2f,_0x50dex1a[_0xbe64[76]]),_0x50dex1a[_0xbe64[122]],_0x50dex1a[_0xbe64[163]],_0x50dex1a[_0xbe64[164]]]);if(_0x50dex2a[_0xbe64[125]]===  -1){return _0x50dex2a};return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[165],_0xbe64[161]))};AGIVertices[_0xbe64[20]][_0xbe64[175]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[176],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[17]][_0xbe64[132]](_0xbe64[175])};AGIVertices[_0xbe64[20]][_0xbe64[15]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[177],_0x50dex1a[_0xbe64[60]]));if(_0x50dex1a[_0xbe64[116]]=== 0){return this[_0xbe64[113]](_0x50dex1a)};_0x50dex1a[_0xbe64[116]]-= 1;if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[178]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[179])};var _0x50dex30=this[_0xbe64[36]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[178]]);if(!_0x50dex30){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[180])};if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[146]])){return this[_0xbe64[17]][_0xbe64[49]](_0xbe64[147])};var _0x50dex19=this[_0xbe64[17]][_0xbe64[183]](_0x50dex30,_0x50dex1a[_0xbe64[181]],_0x50dex1a[_0xbe64[182]]);var _0x50dex31=_0x50dex19[_0xbe64[125]]?_0x50dex19[_0xbe64[125]].toString():_0xbe64[83];logger[_0xbe64[51]](_0xbe64[184],JSON[_0xbe64[185]](_0x50dex19));if(_0x50dex19[_0xbe64[125]]===  -1){this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,_0x50dex31);return _0x50dex19}else {if(_0x50dex19[_0xbe64[109]]=== _0xbe64[122]){_0x50dex19[_0xbe64[125]]= (_0x50dex31[_0xbe64[107]]>= parseInt(_0x50dex1a[_0xbe64[186]]))?_0xbe64[187]:_0xbe64[188]}else {_0x50dex19[_0xbe64[125]]= ((_0x50dex31[_0xbe64[107]]>= parseInt(_0x50dex1a[_0xbe64[186]]))&& (_0x50dex31[_0xbe64[107]]<= parseInt(_0x50dex1a[_0xbe64[182]])))?_0xbe64[187]:_0xbe64[188]}};var _0x50dex2c=this[_0xbe64[19]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[146]]);if(!_0x50dex2c){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[148])};this[_0xbe64[17]][_0xbe64[150]](_0x50dex2c,_0x50dex31);if(this[_0xbe64[98]](_0x50dex1a[_0xbe64[189]])){var _0x50dex32=parseInt(_0x50dex1a[_0xbe64[189]],10);var _0x50dex29=rs[_0xbe64[191]]({charset:_0xbe64[190],length:_0x50dex32});var _0x50dex33=_0x50dex31[_0xbe64[107]];if(_0x50dex33> 0){if(_0x50dex33> _0x50dex32){this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,(_0x50dex1a[_0xbe64[192]]=== _0xbe64[193])?_0x50dex29+ _0x50dex31[_0xbe64[194]](_0x50dex32):_0x50dex31[_0xbe64[194]](0,_0x50dex33- _0x50dex32)+ _0x50dex29)}else {this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,rs[_0xbe64[191]]({charset:_0xbe64[190],length:_0x50dex33}))}}else {this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,_0xbe64[83])}}else {this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,_0x50dex31)};return _0x50dex19};AGIVertices[_0xbe64[20]][_0xbe64[16]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[195],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[15]](_0x50dex1a)};AGIVertices[_0xbe64[20]][_0xbe64[196]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[197],_0x50dex1a[_0xbe64[60]]));this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,_0x50dex1a[_0xbe64[198]]);return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[199],_0x50dex1a[_0xbe64[198]]))};AGIVertices[_0xbe64[20]][_0xbe64[200]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[201],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[17]][_0xbe64[202]](_0x50dex1a[_0xbe64[66]],_0x50dex1a[_0xbe64[67]],_0x50dex1a[_0xbe64[68]])};AGIVertices[_0xbe64[20]][_0xbe64[203]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[204],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[205]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[206])};try{var _0x50dex34=eval(_0x50dex1a[_0xbe64[205]])?_0xbe64[207]:_0xbe64[208];this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[209],_0x50dex1a[_0xbe64[205]],_0x50dex34));return {code:200,result:_0x50dex34}}catch(e){return {code:200,result:_0xbe64[208]}}};AGIVertices[_0xbe64[20]][_0xbe64[210]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[211],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[212]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[213])};var _0x50dex35=this[_0xbe64[40]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[212]]);if(!_0x50dex35){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[214])};for(var _0x50dex27=0;_0x50dex27< _0x50dex35[_0xbe64[107]];_0x50dex27+= 1){var _0x50dex36=this[_0xbe64[17]][_0xbe64[19]](util[_0xbe64[46]](_0xbe64[215],_0x50dex35[_0x50dex27]));if(_0x50dex36[_0xbe64[125]]===  -1){return _0x50dex36};logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[216],_0x50dex35[_0x50dex27],_0x50dex36[_0xbe64[109]]));if(_0x50dex36[_0xbe64[109]]=== _0xbe64[207]){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[216],_0x50dex35[_0x50dex27],_0xbe64[207]));this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[216],_0x50dex35[_0x50dex27],_0xbe64[207]));return {code:200,result:_0xbe64[207]}}else {logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[216],_0x50dex35[_0x50dex27],_0xbe64[208]));this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[216],_0x50dex35[_0x50dex27],_0xbe64[208]))}};return {code:200,result:_0xbe64[208]}};AGIVertices[_0xbe64[20]][_0xbe64[217]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[218],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[17]][_0xbe64[217]]()};AGIVertices[_0xbe64[20]][_0xbe64[219]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[220],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[91]])){return this[_0xbe64[17]][_0xbe64[132]](_0xbe64[221])};var _0x50dex37=_0x50dex1a[_0xbe64[222]]|| _0xbe64[223];var _0x50dex22=path[_0xbe64[226]](scripts[_0xbe64[224]](),_0xbe64[225],rs[_0xbe64[191]](4));var _0x50dex1b=util[_0xbe64[46]](_0xbe64[227],_0x50dex22,_0x50dex37);var _0x50dex38=true;if(_0x50dex1a[_0xbe64[228]]=== _0xbe64[229]){_0x50dex38= false};var _0x50dex19=this[_0xbe64[17]][_0xbe64[231]](_0x50dex22,_0x50dex37,_0x50dex1a[_0xbe64[230]],_0x50dex1a[_0xbe64[122]],undefined,_0x50dex38);if(_0x50dex19[_0xbe64[125]]!==  -1){this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[232],_0x50dex1b));var _0x50dex2b=this[_0xbe64[95]][_0xbe64[115]](this,_0x50dex1a,_0x50dex1b);fs[_0xbe64[233]](_0x50dex1b);if(_0x50dex2b){for(var _0x50dex24 in _0x50dex2b){if(_0x50dex2b[_0xbe64[102]](_0x50dex24)){this[_0xbe64[17]][_0xbe64[150]](util[_0xbe64[46]](_0xbe64[234],_0x50dex24[_0xbe64[235]]()),_0x50dex2b[_0x50dex24])}};return this[_0xbe64[17]][_0xbe64[132]](JSON[_0xbe64[185]](_0x50dex2b))}};return _0x50dex19};AGIVertices[_0xbe64[20]][_0xbe64[236]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[237],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[91]])){return this[_0xbe64[17]][_0xbe64[132]](_0xbe64[221])};if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[87]])){return this[_0xbe64[17]][_0xbe64[132]](_0xbe64[238])};this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[239],_0x50dex1a[_0xbe64[87]]));var _0x50dex39=this[_0xbe64[90]][_0xbe64[115]](this,_0x50dex1a);if(_0x50dex39){this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[232],_0x50dex39));var _0x50dex19=this[_0xbe64[17]][_0xbe64[240]](_0x50dex39,_0x50dex1a[_0xbe64[230]]);fs[_0xbe64[233]](_0x50dex39+ _0xbe64[241]);return _0x50dex19};return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[242])};AGIVertices[_0xbe64[20]][_0xbe64[243]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[244],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[245]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[246])};this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[247],_0x50dex1a[_0xbe64[245]]));var _0x50dex2b=eval(_0x50dex1a[_0xbe64[245]]);if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[146]])){return this[_0xbe64[17]][_0xbe64[132]](_0xbe64[147])};var _0x50dex2c=this[_0xbe64[19]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[146]]);if(!_0x50dex2c){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[148])};if(_[_0xbe64[248]](_0x50dex2b)){var _0x50dex15=this;_0x50dex2b[_0xbe64[151]](function(_0x50dex29,_0x50dex24){_0x50dex15[_0xbe64[17]][_0xbe64[150]](util[_0xbe64[46]](_0xbe64[249],_0x50dex2c,_0x50dex24),_0x50dex29)});return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[250],_0x50dex2c))}else {return this[_0xbe64[17]][_0xbe64[150]](_0x50dex2c,_0x50dex2b)}};AGIVertices[_0xbe64[20]][_0xbe64[14]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[251],_0x50dex1a[_0xbe64[60]]));if(_0x50dex1a[_0xbe64[116]]=== 0){return this[_0xbe64[113]](_0x50dex1a)};_0x50dex1a[_0xbe64[116]]-= 1;if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[178]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[179])};var _0x50dex30=this[_0xbe64[36]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[178]]);if(!_0x50dex30){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[180])};var _0x50dex19=this[_0xbe64[17]][_0xbe64[183]](_0x50dex30,_0x50dex1a[_0xbe64[181]],_0x50dex1a[_0xbe64[252]]);var _0x50dex31=_0x50dex19[_0xbe64[125]];if(_0x50dex19[_0xbe64[125]]===  -1){this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,_0xbe64[112]);return _0x50dex19}else {if(_0x50dex19[_0xbe64[109]]=== _0xbe64[122]){_0x50dex19[_0xbe64[125]]= (_0x50dex19[_0xbe64[125]][_0xbe64[107]]> 0)?_0x50dex19[_0xbe64[125]]:_0xbe64[253]}};if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[146]])){this[_0xbe64[17]][_0xbe64[132]](_0xbe64[147])}else {var _0x50dex2c=this[_0xbe64[19]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[146]]);if(!_0x50dex2c){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[148])};this[_0xbe64[17]][_0xbe64[150]](_0x50dex2c,_0x50dex31)};this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,_0x50dex31);return _0x50dex19};AGIVertices[_0xbe64[20]][_0xbe64[132]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[254],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[17]][_0xbe64[132]](_0x50dex1a[_0xbe64[255]]|| _0x50dex1a[_0xbe64[60]])};AGIVertices[_0xbe64[20]][_0xbe64[256]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[257],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[178]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[179])};var _0x50dex30=this[_0xbe64[36]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[178]]);if(!_0x50dex30){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[180])};var _0x50dex2a=this[_0xbe64[17]][_0xbe64[85]](_0xbe64[258],[_0x50dex30,_0x50dex1a[_0xbe64[163]]]);if(_0x50dex2a[_0xbe64[125]]===  -1){return _0x50dex2a};return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[137],_0xbe64[258],_0x50dex30))};AGIVertices[_0xbe64[20]][_0xbe64[259]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[260],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[261]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[262])};var _0x50dex3a=_0xbe64[83];var _0x50dex11=parseInt(_0x50dex1a[_0xbe64[261]],10);if(isNaN(_0x50dex11)){_0x50dex3a= _0x50dex1a[_0xbe64[261]]}else {_0x50dex3a= this[_0xbe64[25]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[261]]);if(!_0x50dex3a){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[263])}};var _0x50dex3b=_0xbe64[83];if(this[_0xbe64[98]](_0x50dex1a[_0xbe64[178]])){var _0x50dex3c=this[_0xbe64[36]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[178]]);if(_0x50dex3c){_0x50dex3b= _0x50dex3c}};this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,_0x50dex3a);if(_0x50dex1a[_0xbe64[163]][_0xbe64[264]](_0xbe64[187])< 0){_0x50dex1a[_0xbe64[163]]+= _0xbe64[187]};if(_0x50dex1a[_0xbe64[163]][_0xbe64[264]](_0xbe64[265])< 0){_0x50dex1a[_0xbe64[163]]+= _0xbe64[265]};var _0x50dex2a=this[_0xbe64[17]][_0xbe64[85]](_0xbe64[266],[_0x50dex3a,_0x50dex1a[_0xbe64[163]],_0x50dex1a[_0xbe64[164]],_0x50dex3b,_0x50dex1a[_0xbe64[122]],_0x50dex1a[_0xbe64[9]],_0x50dex1a[_0xbe64[267]],_0x50dex1a[_0xbe64[268]],_0xbe64[83],_0x50dex1a[_0xbe64[269]]]);if(_0x50dex2a[_0xbe64[125]]===  -1){return _0x50dex2a};return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[137],_0xbe64[266],_0x50dex3a))};AGIVertices[_0xbe64[20]][_0xbe64[270]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[271],_0x50dex1a[_0xbe64[60]]));var _0x50dex37=_0x50dex1a[_0xbe64[222]]|| _0xbe64[223];var _0x50dex1b=util[_0xbe64[46]](_0xbe64[272],this[_0xbe64[17]][_0xbe64[59]],rs[_0xbe64[191]](5));var _0x50dex1c=util[_0xbe64[46]](_0xbe64[273],FILES_PATH,_0x50dex1b,_0x50dex37);var _0x50dex3d=util[_0xbe64[46]](_0xbe64[274],FILES_PATH,_0x50dex1b);this[_0xbe64[64]][_0xbe64[115]](this,_0x50dex1a,_0x50dex1b,_0x50dex1c);this[_0xbe64[17]][_0xbe64[150]](_0xbe64[275],_0x50dex1b);logger[_0xbe64[51]](_0xbe64[276],_0x50dex3d,_0x50dex37,_0x50dex1a[_0xbe64[277]],_0x50dex1a[_0xbe64[122]]);return this[_0xbe64[17]][_0xbe64[231]](_0x50dex3d,_0x50dex37,_0x50dex1a[_0xbe64[277]],_0x50dex1a[_0xbe64[122]],undefined,true)};AGIVertices[_0xbe64[20]][_0xbe64[278]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[279],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[17]][_0xbe64[281]](_0x50dex1a[_0xbe64[280]][_0xbe64[84]](/\s+/g,_0xbe64[83]),_0x50dex1a[_0xbe64[277]])};AGIVertices[_0xbe64[20]][_0xbe64[282]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[283],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[17]][_0xbe64[285]](_0x50dex1a[_0xbe64[284]][_0xbe64[84]](/\s+/g,_0xbe64[83]),_0x50dex1a[_0xbe64[277]])};AGIVertices[_0xbe64[20]][_0xbe64[286]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[287],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[17]][_0xbe64[288]](_0x50dex1a[_0xbe64[87]],_0x50dex1a[_0xbe64[277]])};AGIVertices[_0xbe64[20]][_0xbe64[289]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[290],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[17]][_0xbe64[132]](_0xbe64[291])};AGIVertices[_0xbe64[20]][_0xbe64[292]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[293],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[17]][_0xbe64[132]](_0xbe64[294])};AGIVertices[_0xbe64[20]][_0xbe64[295]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[296],_0x50dex1a[_0xbe64[60]]));return this[_0xbe64[17]][_0xbe64[132]](_0xbe64[297])};AGIVertices[_0xbe64[20]][_0xbe64[298]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[299],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[146]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[300])};var _0x50dex2c=this[_0xbe64[19]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[146]]);if(!_0x50dex2c){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[148])};return this[_0xbe64[17]][_0xbe64[150]](_0x50dex2c,_0x50dex1a[_0xbe64[301]])};AGIVertices[_0xbe64[20]][_0xbe64[302]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[303],_0x50dex1a[_0xbe64[60]]));this[_0xbe64[17]][_0xbe64[132]](_0xbe64[304]);if(_0x50dex1a[_0xbe64[120]]=== _0xbe64[305]){this[_0xbe64[17]][_0xbe64[132]](_0xbe64[306]);return this[_0xbe64[17]][_0xbe64[120]]()};return this[_0xbe64[17]][_0xbe64[132]](_0xbe64[307])};AGIVertices[_0xbe64[20]][_0xbe64[308]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[309],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[310]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[311])};var _0x50dex3e=this[_0xbe64[27]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[310]]);if(!this[_0xbe64[98]](_0x50dex3e)){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,util[_0xbe64[46]](_0xbe64[312],_0x50dex1a[_0xbe64[310]]))};if(_0x50dex3e=== this[_0xbe64[17]][_0xbe64[62]]){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[313])};this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,_0x50dex3e);var _0x50dex2a=this[_0xbe64[17]][_0xbe64[85]](_0xbe64[314],util[_0xbe64[46]](_0xbe64[315],config[_0xbe64[9]][_0xbe64[316]]|| _0xbe64[317],_0x50dex3e,this[_0xbe64[17]][_0xbe64[62]]));if(_0x50dex2a[_0xbe64[125]]===  -1){return _0x50dex2a};return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[137],_0xbe64[314],_0x50dex3e))};AGIVertices[_0xbe64[20]][_0xbe64[318]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[319],_0x50dex1a[_0xbe64[60]]));var _0x50dex20=this[_0xbe64[81]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[118]]);this[_0xbe64[58]][_0xbe64[115]](this,_0x50dex1a,_0x50dex1a[_0xbe64[118]]);if(this[_0xbe64[98]](_0x50dex1a[_0xbe64[146]])){var _0x50dex2c=this[_0xbe64[19]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[146]]);if(_0x50dex2c){this[_0xbe64[17]][_0xbe64[150]](_0x50dex2c,_0x50dex20);return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[320],_0x50dex1a[_0xbe64[118]],_0x50dex2c))}};return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[321],_0x50dex1a[_0xbe64[118]]))};AGIVertices[_0xbe64[20]][_0xbe64[322]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[323],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[87]])){return this[_0xbe64[17]][_0xbe64[132]](_0xbe64[238])};this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[324],_0x50dex1a[_0xbe64[87]]));var _0x50dex39=this[_0xbe64[86]][_0xbe64[115]](this,_0x50dex1a);if(_0x50dex39){this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[325],_0x50dex39));var _0x50dex19=this[_0xbe64[17]][_0xbe64[240]](_0x50dex39);fs[_0xbe64[233]](_0x50dex39+ _0xbe64[241]);return _0x50dex19};return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[326])};AGIVertices[_0xbe64[20]][_0xbe64[327]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[328],_0x50dex1a[_0xbe64[60]]));var _0x50dex2a=this[_0xbe64[17]][_0xbe64[85]](_0xbe64[329],[_0x50dex1a[_0xbe64[330]],_0x50dex1a[_0xbe64[136]]]);if(_0x50dex2a[_0xbe64[125]]===  -1){return _0x50dex2a};return this[_0xbe64[17]][_0xbe64[132]](util[_0xbe64[46]](_0xbe64[137],_0xbe64[329],_0x50dex1a[_0xbe64[330]]))};AGIVertices[_0xbe64[20]][_0xbe64[331]]= function(_0x50dex1a){logger[_0xbe64[51]](util[_0xbe64[46]](_0xbe64[332],_0x50dex1a[_0xbe64[60]]));if(!this[_0xbe64[98]](_0x50dex1a[_0xbe64[146]])){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[300])};var _0x50dex2c=this[_0xbe64[19]][_0xbe64[115]](this,_0x50dex1a[_0xbe64[146]]);if(!_0x50dex2c){return this[_0xbe64[17]][_0xbe64[49]](_0x50dex1a,_0xbe64[148])};var _0x50dex36=this[_0xbe64[17]][_0xbe64[19]](_0x50dex2c);return {code:200,result:(_0x50dex36[_0xbe64[109]])?_0x50dex36[_0xbe64[109]]:_0xbe64[114]}};String[_0xbe64[20]][_0xbe64[110]]= function(_0x50dex3f,_0x50dex40){return this[_0xbe64[106]](_0x50dex3f)[_0xbe64[333]](_0x50dex40)};module[_0xbe64[334]]= AGIVertices
\ No newline at end of file
diff --git a/server/services/ami/acw/index.js b/server/services/ami/acw/index.js
new file mode 100644 (file)
index 0000000..e19156f
--- /dev/null
@@ -0,0 +1 @@
+var _0xdc8f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x61\x6D\x69","\x2E\x2E\x2F\x72\x70\x63\x2F\x75\x73\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x61\x67\x65\x6E\x74\x73","\x74\x69\x6D\x65\x72\x73","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74","\x6F\x6E","\x68\x61\x6E\x67\x75\x70\x72\x65\x71\x75\x65\x73\x74","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x52\x65\x71\x75\x65\x73\x74","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x52\x69\x6E\x67\x4E\x6F\x41\x6E\x73\x77\x65\x72","\x73\x74\x61\x72\x74\x41\x63\x77","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x71\x75\x65\x75\x65","\x66\x69\x6E\x61\x6C\x6C\x79","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x73\x74\x6F\x70\x41\x63\x77","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x74\x68\x65\x6E","\x41\x43\x57","\x73\x61\x76\x65\x50\x61\x75\x73\x65","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x73\x61\x76\x65\x55\x6E\x70\x61\x75\x73\x65","\x61\x63\x77","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x61\x75\x74\x6F\x50\x61\x75\x73\x65","\x41\x75\x74\x6F\x2D\x50\x61\x75\x73\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xdc8f[0];var util=require(_0xdc8f[1]);var _=require(_0xdc8f[2]);var ami=require(_0xdc8f[3]);var RpcUser=require(_0xdc8f[4]);var io=require(_0xdc8f[6])({host:_0xdc8f[5],port:6379});function Acw(_0x2bccx7){this[_0xdc8f[7]]= _0x2bccx7[_0xdc8f[7]];this[_0xdc8f[8]]= _0x2bccx7[_0xdc8f[8]];this[_0xdc8f[9]]= _0x2bccx7[_0xdc8f[9]];this[_0xdc8f[10]]= {};ami[_0xdc8f[14]](_0xdc8f[11],this[_0xdc8f[13]][_0xdc8f[12]](this));ami[_0xdc8f[14]](_0xdc8f[15],this[_0xdc8f[16]][_0xdc8f[12]](this));ami[_0xdc8f[14]](_0xdc8f[17],this[_0xdc8f[18]][_0xdc8f[12]](this))}Acw[_0xdc8f[20]][_0xdc8f[19]]= function(_0x2bccx8){var _0x2bccx9=this;var _0x2bccxa=this[_0xdc8f[10]][_0x2bccx8][_0xdc8f[21]];var _0x2bccxb=this[_0xdc8f[10]][_0x2bccx8][_0xdc8f[22]];ami.Action({action:_0xdc8f[31],interface:_0x2bccxa,paused:true,reason:_0xdc8f[29]})[_0xdc8f[28]](function(_0x2bccxe){return RpcUser[_0xdc8f[30]](_0x2bccx9[_0xdc8f[8]][_0x2bccxa],_0xdc8f[29])})[_0xdc8f[28]](function(_0x2bccxd){_0x2bccx9[_0xdc8f[9]][_0x2bccxa]= setTimeout(_0x2bccx9[_0xdc8f[26]][_0xdc8f[12]](_0x2bccx9,_0x2bccxa),_0x2bccx9[_0xdc8f[7]][_0x2bccxb][_0xdc8f[27]]* 1000)})[_0xdc8f[25]](function(_0x2bccxc){console[_0xdc8f[24]](_0x2bccxc)})[_0xdc8f[23]](function(){delete _0x2bccx9[_0xdc8f[10]][_0x2bccx8]})};Acw[_0xdc8f[20]][_0xdc8f[26]]= function(_0x2bccxa){RpcUser[_0xdc8f[32]](this[_0xdc8f[8]][_0x2bccxa])};Acw[_0xdc8f[20]][_0xdc8f[13]]= function(_0x2bccxf){if(this[_0xdc8f[7]][_0x2bccxf[_0xdc8f[22]]]&& this[_0xdc8f[7]][_0x2bccxf[_0xdc8f[22]]][_0xdc8f[33]]){if(this[_0xdc8f[8]][_0x2bccxf[_0xdc8f[21]]]){this[_0xdc8f[10]][_0x2bccxf[_0xdc8f[34]]]= {queue:_0x2bccxf[_0xdc8f[22]],interface:_0x2bccxf[_0xdc8f[21]]}}}};Acw[_0xdc8f[20]][_0xdc8f[16]]= function(_0x2bccxf){if(this[_0xdc8f[10]][_0x2bccxf[_0xdc8f[34]]]){this[_0xdc8f[19]](_0x2bccxf[_0xdc8f[34]])}else {if(this[_0xdc8f[10]][_0x2bccxf[_0xdc8f[35]]]){this[_0xdc8f[19]](_0x2bccxf[_0xdc8f[35]])}}};Acw[_0xdc8f[20]][_0xdc8f[18]]= function(_0x2bccxf){if(this[_0xdc8f[7]][_0x2bccxf[_0xdc8f[22]]]&& this[_0xdc8f[7]][_0x2bccxf[_0xdc8f[22]]][_0xdc8f[36]]){if(this[_0xdc8f[8]][_0x2bccxf[_0xdc8f[21]]]){return RpcUser[_0xdc8f[30]](this[_0xdc8f[8]][_0x2bccxf[_0xdc8f[21]]],_0xdc8f[37])}}};module[_0xdc8f[38]]= Acw
\ No newline at end of file
diff --git a/server/services/ami/ami.js b/server/services/ami/ami.js
new file mode 100644 (file)
index 0000000..abac9a4
--- /dev/null
@@ -0,0 +1 @@
+var _0x25b7=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x61\x73\x74\x65\x72\x69\x73\x6B\x2D\x6D\x61\x6E\x61\x67\x65\x72","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x70\x6F\x72\x74","\x61\x73\x74\x65\x72\x69\x73\x6B","\x69\x70","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x6B\x65\x65\x70\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x41\x63\x74\x69\x6F\x6E","\x61\x63\x74\x69\x6F\x6E","\x70\x72\x6F\x6D\x69\x73\x69\x66\x79","\x4D\x61\x6E\x61\x67\x65\x72\x20\x22\x25\x73\x22\x20\x65\x72\x72\x6F\x72\x20\x74\x6F\x20\x25\x73\x3A\x25\x73\x20\x77\x69\x74\x68\x3A\x0A\x25\x73","\x69\x6E\x73\x70\x65\x63\x74","\x66\x6F\x72\x6D\x61\x74","\x65\x72\x72\x6F\x72","\x4D\x61\x6E\x61\x67\x65\x72\x20\x22\x25\x73\x22\x20\x63\x6C\x6F\x73\x65\x64\x20\x74\x6F\x20\x25\x73\x3A\x25\x73","\x61\x63\x74\x69\x6F\x6E\x53\x69\x70\x53\x68\x6F\x77\x52\x65\x67\x69\x73\x74\x72\x79","\x61\x63\x74\x69\x6F\x6E\x3A","\x53\x69\x70\x53\x68\x6F\x77\x52\x65\x67\x69\x73\x74\x72\x79","\x69\x6E\x66\x6F","\x73\x69\x70\x73\x68\x6F\x77\x72\x65\x67\x69\x73\x74\x72\x79","\x61\x63\x74\x69\x6F\x6E\x44\x65\x76\x69\x63\x65\x53\x74\x61\x74\x65\x4C\x69\x73\x74","\x64\x65\x76\x69\x63\x65\x73\x74\x61\x74\x65\x6C\x69\x73\x74","\x61\x63\x74\x69\x6F\x6E\x53\x69\x70\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73","\x53\x69\x70\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73","\x73\x69\x70\x70\x65\x65\x72\x73\x74\x61\x74\x75\x73","\x61\x63\x74\x69\x6F\x6E\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79","\x61\x63\x74\x69\x6F\x6E\x43\x6F\x72\x65\x53\x68\x6F\x77\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x63\x6F\x72\x65\x73\x68\x6F\x77\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x4D\x61\x6E\x61\x67\x65\x72\x20\x22\x25\x73\x22\x20\x6C\x6F\x67\x67\x65\x64\x20\x6F\x6E\x20\x74\x6F\x20\x25\x73\x3A\x25\x73","\x6F\x6E\x63\x65","\x63\x6C\x6F\x73\x65","\x63\x6F\x6E\x6E\x65\x63\x74","\x6F\x6E","\x73\x68\x75\x74\x64\x6F\x77\x6E","\x53\x68\x75\x74\x64\x6F\x77\x6E\x20\x22\x25\x73\x22\x20\x74\x6F\x20\x25\x73\x3A\x25\x73\x20\x77\x69\x74\x68\x3A\x0A\x25\x73","\x66\x75\x6C\x6C\x79\x62\x6F\x6F\x74\x65\x64","\x46\x75\x6C\x6C\x79\x62\x6F\x6F\x74\x65\x64\x20\x22\x25\x73\x22\x20\x74\x6F\x20\x25\x73\x3A\x25\x73","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x72\x65\x73\x6F\x6C\x76\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x25b7[0];var Manager=require(_0x25b7[1]);var BPromise=require(_0x25b7[2]);var moment=require(_0x25b7[3]);var util=require(_0x25b7[4]);var _=require(_0x25b7[5]);var logger=require(_0x25b7[7])(_0x25b7[6]);var config=require(_0x25b7[8]);var ami= new Manager(config[_0x25b7[10]][_0x25b7[9]],config[_0x25b7[10]][_0x25b7[11]],config[_0x25b7[10]][_0x25b7[12]],config[_0x25b7[10]][_0x25b7[13]],true);ami[_0x25b7[14]]();ami[_0x25b7[15]]= BPromise[_0x25b7[17]](ami[_0x25b7[16]]);function error(_0x517bxa){logger[_0x25b7[21]](util[_0x25b7[20]](_0x25b7[18],config[_0x25b7[10]][_0x25b7[12]],config[_0x25b7[10]][_0x25b7[11]],config[_0x25b7[10]][_0x25b7[9]],util[_0x25b7[19]](_0x517bxa,false,null)))}function close(){logger[_0x25b7[21]](util[_0x25b7[20]](_0x25b7[22],config[_0x25b7[10]][_0x25b7[12]],config[_0x25b7[10]][_0x25b7[11]],config[_0x25b7[10]][_0x25b7[9]]))}ami[_0x25b7[23]]= function(){logger[_0x25b7[26]](_0x25b7[24],_0x25b7[25]);return function(){return ami.Action({action:_0x25b7[27]})}};ami[_0x25b7[28]]= function(){logger[_0x25b7[26]](_0x25b7[24],_0x25b7[25]);return function(){return ami.Action({action:_0x25b7[29]})}};ami[_0x25b7[30]]= function(){logger[_0x25b7[26]](_0x25b7[24],_0x25b7[31]);return function(){return ami.Action({action:_0x25b7[32]})}};ami[_0x25b7[33]]= function(){return function(){return ami.Action({action:_0x25b7[34]})}};ami[_0x25b7[35]]= function(){return function(){return ami.Action({action:_0x25b7[36]})}};function connect(_0x517bxa){logger[_0x25b7[26]](util[_0x25b7[20]](_0x25b7[37],config[_0x25b7[10]][_0x25b7[12]],config[_0x25b7[10]][_0x25b7[11]],config[_0x25b7[10]][_0x25b7[9]]));ami[_0x25b7[38]](_0x25b7[21],error);ami[_0x25b7[38]](_0x25b7[39],close)}ami[_0x25b7[41]](_0x25b7[40],connect);ami[_0x25b7[41]](_0x25b7[42],function(_0x517bxd){logger[_0x25b7[26]](util[_0x25b7[20]](_0x25b7[43],config[_0x25b7[10]][_0x25b7[12]],config[_0x25b7[10]][_0x25b7[11]],config[_0x25b7[10]][_0x25b7[9]],util[_0x25b7[19]](_0x517bxd,false,null)))});ami[_0x25b7[41]](_0x25b7[44],function(_0x517bxd){logger[_0x25b7[26]](util[_0x25b7[20]](_0x25b7[45],config[_0x25b7[10]][_0x25b7[12]],config[_0x25b7[10]][_0x25b7[11]],config[_0x25b7[10]][_0x25b7[9]]));return BPromise[_0x25b7[49]]()[_0x25b7[48]](ami[_0x25b7[23]]())[_0x25b7[48]](ami[_0x25b7[28]]())[_0x25b7[48]](ami[_0x25b7[30]]())[_0x25b7[48]](ami[_0x25b7[33]]())[_0x25b7[48]](ami[_0x25b7[35]]())[_0x25b7[47]](function(_0x517bxa){console[_0x25b7[46]](_0x517bxa)})});ami[_0x25b7[38]](_0x25b7[21],error);ami[_0x25b7[38]](_0x25b7[39],close);module[_0x25b7[50]]= ami
\ No newline at end of file
diff --git a/server/services/ami/client.js b/server/services/ami/client.js
new file mode 100644 (file)
index 0000000..bba9db8
--- /dev/null
@@ -0,0 +1 @@
+var _0xdb5b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x52\x65\x71\x75\x65\x73\x74","\x72\x70\x63","\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x64\x65\x62\x75\x67","\x6D\x65\x73\x73\x61\x67\x65","\x6C\x6F\x67","\x69\x6E\x66\x6F","\x72\x65\x73\x75\x6C\x74","\x74\x68\x65\x6E","\x72\x65\x71\x75\x65\x73\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0xdb5b[0];var jayson=require(_0xdb5b[1]);var BPromise=require(_0xdb5b[2]);var logger=require(_0xdb5b[4])(_0xdb5b[3]);var client=jayson[_0xdb5b[6]][_0xdb5b[5]]({port:9001});client[_0xdb5b[7]]= function(_0x1b52x5,_0x1b52x6){return  new BPromise(function(_0x1b52x7,_0x1b52x8){return client[_0xdb5b[18]](_0x1b52x5,_0x1b52x6)[_0xdb5b[17]](function(_0x1b52xa){logger[_0xdb5b[12]](_0xdb5b[8],_0xdb5b[9],_0x1b52x5,_0x1b52x6,_0x1b52xa);if(_0x1b52xa[_0xdb5b[10]]){logger[_0xdb5b[10]](_0xdb5b[8],_0xdb5b[9],_0x1b52x5,_0x1b52xa[_0xdb5b[10]][_0xdb5b[13]],_0x1b52x6);return _0x1b52x8(_0x1b52xa[_0xdb5b[10]][_0xdb5b[13]])}else {logger[_0xdb5b[15]](_0xdb5b[8],_0xdb5b[9],_0x1b52x5,_0x1b52x6[_0xdb5b[14]]);return _0x1b52x7(_0x1b52xa[_0xdb5b[16]])}})[_0xdb5b[11]](function(_0x1b52x9){logger[_0xdb5b[10]](_0xdb5b[8],_0xdb5b[9],_0x1b52x5,_0x1b52x9,_0x1b52x6);return _0x1b52x8(_0x1b52x9)})})};module[_0xdb5b[19]]= client
\ No newline at end of file
diff --git a/server/services/ami/dialer/action.js b/server/services/ami/dialer/action.js
new file mode 100644 (file)
index 0000000..01bea50
--- /dev/null
@@ -0,0 +1 @@
+var _0xe3d2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x73\x74\x72\x69\x6E\x67","\x25\x73\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x25\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6E\x61\x6D\x65","\x70\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74","\x66\x69\x72\x73\x74\x4E\x61\x6D\x65","\x6C\x61\x73\x74\x4E\x61\x6D\x65","\x6E\x75\x6D\x62\x65\x72","\x71\x75\x65\x75\x65","\x61\x63\x74\x69\x76\x65","\x74\x79\x70\x65","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x54\x69\x6D\x65\x6F\x75\x74","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x43\x6F\x6E\x74\x61\x63\x74\x46\x69\x72\x73\x74\x4E\x61\x6D\x65","","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x67\x65\x74\x43\x61\x6C\x6C\x65\x72","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x67\x65\x74\x51\x75\x65\x75\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0xe3d2[0];var util=require(_0xe3d2[1]);var _=require(_0xe3d2[2]);var moment=require(_0xe3d2[3]);function checkNameSurname(_0xa738x5,_0xa738x6,_0xa738x7){if(!_[_0xe3d2[4]](_0xa738x6)&& _0xe3d2[5]===  typeof _0xa738x6){if(!_[_0xe3d2[4]](_0xa738x7)&& _0xe3d2[5]===  typeof _0xa738x7){return util[_0xe3d2[7]](_0xe3d2[6],_0xa738x6,_0xa738x7)};return util[_0xe3d2[7]](_0xe3d2[8],_0xa738x7)};if(!_[_0xe3d2[4]](_0xa738x7)&& _0xe3d2[5]===  typeof _0xa738x7){return util[_0xe3d2[7]](_0xe3d2[8],_0xa738x7)};return _0xa738x5}function Action(_0xa738x9,_0xa738xa,_0xa738xb){this[_0xe3d2[9]]= _0xa738xb|| undefined;this[_0xe3d2[10]]= checkNameSurname(_0xa738xa[_0xe3d2[12]][_0xe3d2[11]],_0xa738xa[_0xe3d2[12]][_0xe3d2[13]],_0xa738xa[_0xe3d2[12]][_0xe3d2[14]]);this[_0xe3d2[15]]= _0xa738xa[_0xe3d2[12]][_0xe3d2[11]];this[_0xe3d2[16]]= _0xa738x9[_0xe3d2[10]];this[_0xe3d2[17]]= _0xa738xa[_0xe3d2[17]]|| false;this[_0xe3d2[18]]= _0xa738x9[_0xe3d2[18]];this[_0xe3d2[19]]= _0xa738x9[_0xe3d2[19]]|| 3;this[_0xe3d2[20]]= _0xa738xa[_0xe3d2[20]];this[_0xe3d2[21]]= _0xa738xa[_0xe3d2[21]];this[_0xe3d2[22]]= _0xa738xa[_0xe3d2[22]];this[_0xe3d2[23]]= _0xa738xa[_0xe3d2[23]];this[_0xe3d2[24]]= _0xa738xa[_0xe3d2[24]];this[_0xe3d2[25]]= _0xa738xa[_0xe3d2[25]];this[_0xe3d2[26]]= _0xa738xa[_0xe3d2[26]];this[_0xe3d2[27]]= _0xa738xa[_0xe3d2[27]];this[_0xe3d2[28]]= _0xa738xa[_0xe3d2[28]];this[_0xe3d2[29]]= _0xa738xa[_0xe3d2[12]][_0xe3d2[13]]|| _0xe3d2[30];this[_0xe3d2[31]]= moment()[_0xe3d2[7]](_0xe3d2[32]);this[_0xe3d2[33]]= _0xa738xa[_0xe3d2[33]];this[_0xe3d2[34]]= _0xa738xa[_0xe3d2[34]];this[_0xe3d2[35]]= _0xa738xa[_0xe3d2[35]]}Action[_0xe3d2[37]][_0xe3d2[36]]= function(){return util[_0xe3d2[7]](_0xe3d2[38],this[_0xe3d2[10]],this[_0xe3d2[15]])};Action[_0xe3d2[37]][_0xe3d2[39]]= function(){return this[_0xe3d2[16]]};module[_0xe3d2[40]]= Action
\ No newline at end of file
diff --git a/server/services/ami/dialer/agentComplete.js b/server/services/ami/dialer/agentComplete.js
new file mode 100644 (file)
index 0000000..b8803e8
--- /dev/null
@@ -0,0 +1 @@
+var _0x5eeb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x74\x61\x74\x65","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x41\x6E\x73\x77\x65\x72","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6E\x75\x6D\x62\x65\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x5eeb[0];var util=require(_0x5eeb[1]);var _=require(_0x5eeb[2]);var moment=require(_0x5eeb[3]);function getSeconds(_0xef3cx5,_0xef3cx6){var _0xef3cx7=moment(_0xef3cx5)[_0x5eeb[4]](0);var _0xef3cx8=moment(_0xef3cx6)[_0x5eeb[4]](0);return _0xef3cx7[_0x5eeb[6]](_0xef3cx8,_0x5eeb[5])}function AgentComplete(_0xef3cxa,_0xef3cxb){this[_0x5eeb[7]]= 4;this[_0x5eeb[8]]= _0x5eeb[9];this[_0x5eeb[10]]= _0xef3cxa[_0x5eeb[10]];this[_0x5eeb[11]]= _0xef3cxa[_0x5eeb[11]];this[_0x5eeb[12]]= (_0xef3cxa[_0x5eeb[11]]=== _0x5eeb[13])?_0x5eeb[14]:_0xef3cxa[_0x5eeb[11]];this[_0x5eeb[15]]= _0xef3cxa[_0x5eeb[15]];this[_0x5eeb[16]]= _0xef3cxa[_0x5eeb[16]];this[_0x5eeb[17]]= _0xef3cxa[_0x5eeb[17]];this[_0x5eeb[18]]= _0xef3cxa[_0x5eeb[15]]+ _0xef3cxa[_0x5eeb[16]]+ _0xef3cxa[_0x5eeb[17]];this[_0x5eeb[19]]= _0xef3cxb[_0x5eeb[19]];this[_0x5eeb[20]]= _0xef3cxa[_0x5eeb[21]];this[_0x5eeb[22]]= _0xef3cxa[_0x5eeb[23]];this[_0x5eeb[24]]= _0xef3cxa[_0x5eeb[24]];this[_0x5eeb[25]]= _0xef3cxa[_0x5eeb[25]];this[_0x5eeb[26]]= _0xef3cxa[_0x5eeb[26]];this[_0x5eeb[27]]= moment()[_0x5eeb[29]](_0x5eeb[28]);this[_0x5eeb[30]]= getSeconds(_0xef3cxa[_0x5eeb[25]],_0xef3cxa[_0x5eeb[24]]);this[_0x5eeb[31]]= getSeconds(_0xef3cxa[_0x5eeb[26]],_0xef3cxa[_0x5eeb[25]]);this[_0x5eeb[32]]= getSeconds(this[_0x5eeb[27]],_0xef3cxa[_0x5eeb[26]]);this[_0x5eeb[14]]= _0xef3cxb[_0x5eeb[14]];this[_0x5eeb[33]]= _0xef3cxb[_0x5eeb[33]];this[_0x5eeb[34]]= _0xef3cxb[_0x5eeb[34]];this[_0x5eeb[35]]= _0xef3cxa[_0x5eeb[35]];this[_0x5eeb[36]]= _0xef3cxa[_0x5eeb[36]];this[_0x5eeb[37]]= _0xef3cxa[_0x5eeb[37]];this[_0x5eeb[38]]= _0xef3cxa[_0x5eeb[38]];this[_0x5eeb[39]]= _0xef3cxa[_0x5eeb[39]];this[_0x5eeb[40]]= _0xef3cxa[_0x5eeb[40]];this[_0x5eeb[41]]= _0xef3cxa[_0x5eeb[41]];this[_0x5eeb[42]]= _0xef3cxa[_0x5eeb[42]]}module[_0x5eeb[43]]= AgentComplete
\ No newline at end of file
diff --git a/server/services/ami/dialer/final.js b/server/services/ami/dialer/final.js
new file mode 100644 (file)
index 0000000..0d6fe65
--- /dev/null
@@ -0,0 +1 @@
+var _0x17ef=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x17ef[0];var util=require(_0x17ef[1]);var _=require(_0x17ef[2]);var moment=require(_0x17ef[3]);function getSeconds(_0x815fx5,_0x815fx6){var _0x815fx7=moment(_0x815fx5)[_0x17ef[4]](0);var _0x815fx8=moment(_0x815fx6)[_0x17ef[4]](0);return _0x815fx7[_0x17ef[6]](_0x815fx8,_0x17ef[5])}function Final(_0x815fxa){this[_0x17ef[7]]= _0x815fxa[_0x17ef[7]];this[_0x17ef[8]]= _0x815fxa[_0x17ef[8]];this[_0x17ef[9]]= _0x815fxa[_0x17ef[9]];this[_0x17ef[10]]= (_0x815fxa[_0x17ef[9]]=== _0x17ef[11])?_0x17ef[12]:_0x815fxa[_0x17ef[9]];this[_0x17ef[13]]= _0x815fxa[_0x17ef[13]];this[_0x17ef[14]]= _0x815fxa[_0x17ef[14]];this[_0x17ef[15]]= _0x815fxa[_0x17ef[15]];this[_0x17ef[16]]= _0x815fxa[_0x17ef[13]]+ _0x815fxa[_0x17ef[14]]+ _0x815fxa[_0x17ef[15]];this[_0x17ef[12]]= _0x815fxa[_0x17ef[12]];this[_0x17ef[17]]= _0x815fxa[_0x17ef[17]];this[_0x17ef[18]]= _0x815fxa[_0x17ef[18]];this[_0x17ef[19]]= _0x815fxa[_0x17ef[19]];this[_0x17ef[20]]= _0x815fxa[_0x17ef[20]];this[_0x17ef[21]]= _0x815fxa[_0x17ef[20]];this[_0x17ef[22]]= _0x815fxa[_0x17ef[22]]|| 0;this[_0x17ef[23]]= _0x815fxa[_0x17ef[23]]|| 0;this[_0x17ef[24]]= _0x815fxa[_0x17ef[24]]|| 0;this[_0x17ef[25]]= _0x815fxa[_0x17ef[25]];this[_0x17ef[26]]= _0x815fxa[_0x17ef[26]];this[_0x17ef[27]]= _0x815fxa[_0x17ef[27]];this[_0x17ef[28]]= _0x815fxa[_0x17ef[28]];this[_0x17ef[29]]= _0x815fxa[_0x17ef[29]];this[_0x17ef[30]]= _0x815fxa[_0x17ef[30]];this[_0x17ef[31]]= _0x815fxa[_0x17ef[31]];this[_0x17ef[32]]= _0x815fxa[_0x17ef[32]]}module[_0x17ef[33]]= Final
\ No newline at end of file
diff --git a/server/services/ami/dialer/hangup.js b/server/services/ami/dialer/hangup.js
new file mode 100644 (file)
index 0000000..9987960
--- /dev/null
@@ -0,0 +1 @@
+var _0xe835=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x74\x61\x74\x65","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x41\x6E\x73\x77\x65\x72","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6E\x75\x6D\x62\x65\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x49\x56\x52","\x72\x65\x61\x73\x6F\x6E","\x63\x61\x75\x73\x65\x2D\x74\x78\x74","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0xe835[0];var util=require(_0xe835[1]);var _=require(_0xe835[2]);var moment=require(_0xe835[3]);function getSeconds(_0x2a00x5,_0x2a00x6){var _0x2a00x7=moment(_0x2a00x5)[_0xe835[4]](0);var _0x2a00x8=moment(_0x2a00x6)[_0xe835[4]](0);return _0x2a00x7[_0xe835[6]](_0x2a00x8,_0xe835[5])}function Hangup(_0x2a00xa,_0x2a00xb){this[_0xe835[7]]= 4;this[_0xe835[8]]= _0xe835[9];this[_0xe835[10]]= _0x2a00xa[_0xe835[10]];this[_0xe835[11]]= _0x2a00xa[_0xe835[11]];this[_0xe835[12]]= (_0x2a00xa[_0xe835[11]]=== _0xe835[13])?_0xe835[14]:_0x2a00xa[_0xe835[11]];this[_0xe835[15]]= _0x2a00xa[_0xe835[15]];this[_0xe835[16]]= _0x2a00xa[_0xe835[16]];this[_0xe835[17]]= _0x2a00xa[_0xe835[17]];this[_0xe835[18]]= _0x2a00xa[_0xe835[15]]+ _0x2a00xa[_0xe835[16]]+ _0x2a00xa[_0xe835[17]];this[_0xe835[19]]= _0x2a00xb[_0xe835[19]];this[_0xe835[20]]= _0x2a00xa[_0xe835[21]];this[_0xe835[22]]= _0x2a00xa[_0xe835[23]];this[_0xe835[24]]= _0x2a00xa[_0xe835[24]];this[_0xe835[25]]= _0x2a00xa[_0xe835[25]];this[_0xe835[26]]= moment()[_0xe835[28]](_0xe835[27]);this[_0xe835[29]]= getSeconds(_0x2a00xa[_0xe835[25]],_0x2a00xa[_0xe835[24]]);this[_0xe835[30]]= 0;this[_0xe835[31]]= getSeconds(this[_0xe835[26]],_0x2a00xa[_0xe835[25]]);this[_0xe835[14]]= _0x2a00xa[_0xe835[14]];this[_0xe835[32]]= _0xe835[33];this[_0xe835[34]]= _0x2a00xb[_0xe835[35]];this[_0xe835[36]]= _0x2a00xa[_0xe835[36]];this[_0xe835[37]]= _0x2a00xa[_0xe835[37]];this[_0xe835[38]]= _0x2a00xa[_0xe835[38]];this[_0xe835[39]]= _0x2a00xa[_0xe835[39]];this[_0xe835[40]]= _0x2a00xa[_0xe835[40]];this[_0xe835[41]]= _0x2a00xa[_0xe835[41]];this[_0xe835[42]]= _0x2a00xa[_0xe835[42]];this[_0xe835[43]]= _0x2a00xa[_0xe835[43]]}module[_0xe835[44]]= Hangup
\ No newline at end of file
diff --git a/server/services/ami/dialer/history.js b/server/services/ami/dialer/history.js
new file mode 100644 (file)
index 0000000..1d44b42
--- /dev/null
@@ -0,0 +1 @@
+var _0x49d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x75\x6E\x69\x71\x75\x65\x69\x64","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6E\x75\x6D\x62\x65\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x49d0[0];var util=require(_0x49d0[1]);var _=require(_0x49d0[2]);var moment=require(_0x49d0[3]);function getSeconds(_0x303bx5,_0x303bx6){var _0x303bx7=moment(_0x303bx5)[_0x49d0[4]](0);var _0x303bx8=moment(_0x303bx6)[_0x49d0[4]](0);return _0x303bx7[_0x49d0[6]](_0x303bx8,_0x49d0[5])}function History(_0x303bxa){this[_0x49d0[7]]= _0x303bxa[_0x49d0[7]];this[_0x49d0[8]]= _0x303bxa[_0x49d0[8]]|| undefined;this[_0x49d0[9]]= _0x303bxa[_0x49d0[9]];this[_0x49d0[10]]= (_0x303bxa[_0x49d0[9]]=== _0x49d0[11])?_0x49d0[12]:_0x303bxa[_0x49d0[9]];this[_0x49d0[13]]= _0x303bxa[_0x49d0[13]];this[_0x49d0[14]]= _0x303bxa[_0x49d0[14]];this[_0x49d0[15]]= _0x303bxa[_0x49d0[15]];this[_0x49d0[16]]= _0x303bxa[_0x49d0[13]]+ _0x303bxa[_0x49d0[14]]+ _0x303bxa[_0x49d0[15]];this[_0x49d0[12]]= _0x303bxa[_0x49d0[12]];this[_0x49d0[17]]= _0x303bxa[_0x49d0[18]];this[_0x49d0[19]]= _0x303bxa[_0x49d0[20]];this[_0x49d0[21]]= _0x303bxa[_0x49d0[21]];this[_0x49d0[22]]= _0x303bxa[_0x49d0[22]];this[_0x49d0[23]]= _0x303bxa[_0x49d0[22]];this[_0x49d0[24]]= getSeconds(_0x303bxa[_0x49d0[22]],_0x303bxa[_0x49d0[21]]);this[_0x49d0[25]]= 0;this[_0x49d0[26]]= 0;this[_0x49d0[27]]= _0x303bxa[_0x49d0[27]];this[_0x49d0[28]]= _0x303bxa[_0x49d0[28]];this[_0x49d0[29]]= _0x303bxa[_0x49d0[29]];this[_0x49d0[30]]= _0x303bxa[_0x49d0[30]];this[_0x49d0[31]]= _0x303bxa[_0x49d0[31]];this[_0x49d0[32]]= _0x303bxa[_0x49d0[32]];this[_0x49d0[33]]= _0x303bxa[_0x49d0[33]];this[_0x49d0[34]]= _0x303bxa[_0x49d0[34]]}module[_0x49d0[35]]= History
\ No newline at end of file
diff --git a/server/services/ami/dialer/index.js b/server/services/ami/dialer/index.js
new file mode 100644 (file)
index 0000000..342676b
--- /dev/null
@@ -0,0 +1 @@
+var _0x4d77=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x75\x69\x64","\x6D\x6F\x6D\x65\x6E\x74","\x64\x69\x61\x6C\x65\x72","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x43\x61\x6C\x6C\x73","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x2F","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x2E\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72","\x2E\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C","\x2E\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x2E\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74","\x2E\x2F\x61\x63\x74\x69\x6F\x6E","\x2E\x2F\x68\x69\x73\x74\x6F\x72\x79","\x2E\x2F\x66\x69\x6E\x61\x6C","\x2E\x2F\x61\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x2E\x2F\x71\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E","\x2E\x2F\x68\x61\x6E\x67\x75\x70","\x58\x43\x41\x4C\x4C\x59\x5F\x49\x50\x5F\x41\x47\x49","\x65\x6E\x76","\x31\x32\x37\x2E\x30\x2E\x30\x2E\x31","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x61\x67\x65\x6E\x74\x73","\x74\x72\x75\x6E\x6B\x73","\x6D\x61\x78\x4E\x75\x6D\x62\x65\x72\x4F\x72\x69\x67\x69\x6E\x61\x74\x65","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x61\x63\x74\x69\x6F\x6E\x73","\x63\x6F\x6E\x74\x61\x63\x74\x73\x49\x64","\x75\x6E\x69\x71\x75\x65\x49\x64","\x6F\x70\x74\x69\x6F\x6E\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x73\x74\x61\x72\x74\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x73\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65","\x69\x76\x72\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74","\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x72\x65\x73\x70\x6F\x6E\x73\x65","\x73\x79\x6E\x63\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x52\x65\x73\x70\x6F\x6E\x73\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x6C\x6F\x6F\x70\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x6D\x65\x73\x73\x61\x67\x65","\x41\x47\x45\x4E\x54\x53\x5F\x4E\x4F\x54\x5F\x4C\x4F\x47\x47\x45\x44","\x6E\x61\x6D\x65","\x20\x41\x47\x45\x4E\x54\x53\x20\x4E\x4F\x54\x20\x4C\x4F\x47\x47\x45\x44","\x4E\x4F\x54\x5F\x41\x43\x54\x49\x56\x45","\x20\x4E\x4F\x54\x20\x41\x63\x74\x69\x76\x65","\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x49\x53\x5F\x4E\x55\x4C\x4C","\x20\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x49\x53\x5F\x4E\x55\x4C\x4C","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x69\x73\x45\x6D\x70\x74\x79","\x5B\x69\x66\x54\x69\x6D\x65\x5D\x5B\x41\x63\x74\x69\x6F\x6E\x5D","\x45\x72\x72\x6F\x72","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x65\x6D\x69\x74","\x74\x6F","\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x76\x6F\x69\x63\x65\x3A\x71\x75\x65\x75\x65\x3A\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x69\x76\x72","\x63\x61\x6D\x70\x61\x69\x67\x6E\x3A\x69\x76\x72\x3A\x25\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x3A\x73\x61\x76\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x54\x61\x6C\x6B\x74\x69\x6D\x65","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x61\x76\x67\x54\x61\x6C\x6B\x74\x69\x6D\x65\x5D","\x69\x6E\x66\x6F","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x48\x6F\x6C\x64\x74\x69\x6D\x65","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x61\x76\x67\x48\x6F\x6C\x64\x74\x69\x6D\x65\x5D","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x74\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x5D","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x6F\x62\x6A\x49\x73\x45\x6D\x70\x74\x79\x5D","\x5B\x63\x68\x65\x63\x6B\x47\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x6F\x62\x6A\x5D","\x5B\x45\x72\x6C\x61\x6E\x67\x42\x5D","\x6D\x65\x72\x67\x65","\x5B\x66\x72\x65\x65\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x73\x74\x72\x69\x6E\x67","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x22\x22\x20\x3C\x3E","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x6C\x65\x6E\x67\x74\x68","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x5B\x64\x65\x63\x72\x65\x6D\x65\x74\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x5D\x20\x6F\x62\x6A\x65\x63\x74\x20\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64\x20\x69\x73\x20\x6E\x65\x67\x61\x74\x69\x76\x65","\x5B\x64\x65\x63\x72\x65\x6D\x65\x74\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x5D\x20\x69\x73\x20\x6E\x75\x6C\x6C\x20\x6F\x72\x20\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x63\x6F\x6E\x74\x61\x63\x74\x73\x52\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x64","\x52\x45\x53\x43\x48\x45\x44\x55\x4C\x45\x44\x5F\x43\x4F\x4E\x54\x41\x43\x54\x53","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x32\x5D\x5B\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64\x5D","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x41\x56\x41\x49\x4C\x41\x42\x4C\x45\x5F\x43\x4F\x4E\x54\x41\x43\x54\x53\x5F\x46\x49\x4E\x49\x53\x48\x45\x44","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x32\x5D\x5B\x45\x6D\x70\x74\x79\x5D","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x4F\x6E\x65\x4E\x6F\x74\x41\x63\x74\x69\x76\x65","\x74\x61\x6C\x6B\x69\x6E\x67","\x77\x61\x69\x74\x69\x6E\x67","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x70\x61\x75\x73\x65\x64","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x5D\x20\x43\x61\x6D\x70\x61\x69\x67\x6E\x20\x51\x75\x65\x75\x65\x3A\x20","\x69\x73\x20\x6E\x6F\x74\x20\x61\x63\x74\x69\x76\x65","\x49\x53\x5F\x44\x49\x53\x41\x43\x54\x49\x56\x45\x44","\x69\x73\x20\x64\x69\x73\x61\x63\x74\x69\x76\x65","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x5D\x20\x43\x61\x6D\x70\x61\x69\x67\x6E\x20\x49\x76\x72\x3A\x20","\x63\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x5B\x63\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64\x5D\x20","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x72\x65\x73\x6F\x6C\x76\x65","\x63\x68\x65\x63\x6B\x49\x73\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74","\x5B\x63\x68\x65\x63\x6B\x49\x73\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74\x5D\x20","\x61\x76\x65\x72\x61\x67\x65\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x5B\x61\x76\x65\x72\x61\x67\x65\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65\x5D\x20","\x61\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74","\x5B\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74\x5D\x20","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x5D\x20","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x49\x76\x72","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73","\x5B\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73\x5D\x20","\x6D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72","\x5B\x6D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72\x5D\x20","\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79","\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x20","\x75\x70\x64\x61\x74\x65\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x5B\x75\x70\x64\x61\x74\x65\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x64\x5D\x20\x6F\x62\x6A\x65\x63\x74\x20\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64\x20\x69\x73\x20\x6E\x65\x67\x61\x74\x69\x76\x65","\x5B\x75\x70\x64\x61\x74\x65\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x64\x5D\x20\x69\x73\x20\x6E\x75\x6C\x6C\x20\x6F\x72\x20\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x6C\x6F\x67\x67\x65\x72\x48\x61\x6E\x64\x6C\x65\x72","\x69\x73\x53\x75\x63\x63\x65\x73\x73","\x53\x75\x63\x63\x65\x73\x73","\x69\x73\x54\x72\x75\x6E\x6B\x52\x65\x61\x63\x68\x61\x62\x6C\x65","\x61\x63\x74\x69\x76\x65","\x73\x74\x61\x74\x75\x73","\x53\x49\x50\x2F\x25\x73","\x72\x65\x61\x63\x68\x61\x62\x6C\x65","\x75\x6E\x6D\x6F\x6E\x69\x74\x6F\x72\x65\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x71\x75\x65\x75\x65","\x69\x76\x72\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x49\x76\x72\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x49\x76\x72\x5D","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x41\x67\x69\x43\x61\x6C\x6C\x73\x44\x61\x79","\x73\x74\x61\x74\x65","\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x41\x6E\x73\x77\x65\x72\x41\x47\x49","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x41\x47\x49","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x71\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x43\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x5D\x20\x5B\x44\x72\x6F\x70\x5D","\x64\x72\x6F\x70\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x54\x69\x6D\x65\x6F\x75\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x54\x69\x6D\x65\x6F\x75\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x54\x69\x6D\x65\x6F\x75\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x45\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73","\x44\x72\x6F\x70","\x64\x72\x6F\x70\x72\x65\x61\x73\x6F\x6E","\x54\x49\x4D\x45\x4F\x55\x54","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x41\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x43\x41\x4C\x4C\x45\x52\x45\x58\x49\x54","\x73\x79\x6E\x63\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x63\x68\x65\x63\x6B\x49\x73\x54\x72\x75\x6E\x6B\x52\x65\x61\x63\x68\x61\x62\x6C\x65","\x54\x52\x55\x4E\x4B\x5F\x49\x53\x5F\x4E\x4F\x54\x5F\x52\x45\x41\x43\x48\x41\x42\x4C\x45","\x20\x74\x72\x75\x6E\x6B\x20\x69\x73\x20\x6E\x6F\x74\x20\x72\x65\x61\x63\x68\x61\x62\x6C\x65","\x63\x68\x65\x63\x6B\x49\x66\x54\x69\x6D\x65","\x69\x66\x54\x69\x6D\x65","\x63\x68\x65\x63\x6B\x49\x66\x54\x69\x6D\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x46\x61\x69\x6C\x75\x72\x65","\x20\x49\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x69\x73\x20\x6E\x75\x6C\x6C\x20","\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x49\x53\x5F\x45\x4D\x50\x54\x59","\x20\x49\x6E\x74\x65\x72\x76\x61\x6C\x73\x20\x69\x73\x20\x65\x6D\x70\x74\x79\x20","\x74\x69\x6D\x65\x7A\x6F\x6E\x65\x73","\x54\x49\x4D\x45\x5A\x4F\x4E\x45\x5F\x55\x4E\x4B\x4E\x4F\x57","\x20\x54\x69\x6D\x65\x7A\x6F\x6E\x65\x20\x75\x6E\x6B\x6E\x6F\x77\x20","\x69\x73\x41\x72\x72\x61\x79","\x74\x72\x75\x65","\x69\x6E\x64\x65\x78\x4F\x66","\x63\x6F\x6E\x74\x65\x6E\x74","\x63\x6F\x6D\x6D\x61\x6E\x64","\x69\x66\x74\x69\x6D\x65\x20\x25\x73\x2C\x25\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C","","\x70\x75\x73\x68","\x73\x6F\x6D\x65","\x49\x4E\x54\x45\x52\x56\x41\x4C\x5F\x49\x53\x5F\x4F\x56\x45\x52\x54\x49\x4D\x45","\x5B\x69\x66\x54\x69\x6D\x65\x5D\x5B\x70\x72\x6F\x6D\x69\x73\x65\x41\x6C\x6C\x5D","\x20\x49\x6E\x74\x65\x72\x76\x61\x6C\x6C\x20\x69\x73\x20\x6F\x76\x65\x72\x74\x69\x6D\x65\x3A\x20","\x54\x69\x6D\x65\x7A\x6F\x6E\x65\x3A\x20","\x61\x6C\x6C","\x63\x68\x65\x63\x6B\x44\x69\x61\x6C\x4D\x65\x74\x68\x6F\x64","\x68\x61\x6E\x64\x6C\x65\x50\x6F\x77\x65\x72","\x70\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65","\x64\x69\x61\x6C\x50\x6F\x77\x65\x72\x4C\x65\x76\x65\x6C","\x70\x6F\x77\x65\x72","\x51\x75\x65\x75\x65","\x6D\x65\x74\x68\x6F\x64\x20\x6E\x6F\x74\x20\x72\x65\x63\x6F\x67\x6E\x69\x7A\x65\x64","\x64\x69\x61\x6C\x4D\x65\x74\x68\x6F\x64","\x6C\x61\x75\x6E\x63\x68\x48\x61\x6E\x64\x6C\x65\x49\x76\x72","\x68\x61\x6E\x64\x6C\x65\x49\x76\x72","\x64\x69\x61\x6C\x41\x63\x74\x69\x76\x65","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x5D","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x6C\x6F\x67\x67\x65\x64\x49\x6E","\x5B\x73\x79\x6E\x63\x43\x61\x6D\x70\x61\x69\x67\x6E\x73\x5D","\x61\x63\x74\x69\x6F\x6E\x4F\x72\x69\x67\x69\x6E\x61\x74\x65","\x76\x34","\x6F\x62\x6A\x65\x63\x74","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x20\x69\x73\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x70\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74","\x63\x6F\x6E\x74\x61\x63\x74\x20\x69\x73\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x67\x65\x74\x43\x61\x6C\x6C\x65\x72","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x50\x72\x6F\x6A\x65\x63\x74","\x22\x61\x67\x69\x3A\x2F\x2F\x25\x73\x2F\x73\x71\x75\x61\x72\x65\x2C\x25\x73\x22","\x4E\x4F\x4E\x45","\x22\x25\x73\x2C\x25\x73\x2C\x2C\x2C\x25\x73\x22","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x4F\x70\x74\x69\x6F\x6E\x73","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x58\x4D\x44\x2D\x56\x4F\x49\x43\x45\x51\x55\x45\x55\x45\x49\x44","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x58\x4D\x44\x2D\x43\x41\x4D\x50\x41\x49\x47\x4E\x49\x44","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x69\x64","\x74\x61\x67\x73","\x63\x72\x65\x61\x74\x65\x64\x41\x74","\x75\x70\x64\x61\x74\x65\x64\x41\x74","\x25\x73\x25\x73","\x58\x4D\x44\x2D","\x74\x6F\x55\x70\x70\x65\x72","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x46\x61\x69\x6C\x75\x72\x65\x43\x61\x6C\x6C\x73\x44\x61\x79","\x5B\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x45\x72\x72\x6F\x72\x5D\x3A\x20\x25\x73","\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x45\x72\x72\x6F\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x5B\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x5D\x5B\x65\x72\x72\x6F\x72\x5D","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x20\x61\x63\x74\x69\x6F\x6E\x20\x45\x72\x72\x6F\x72","\x66\x69\x6E\x61\x6C\x6C\x79","\x53\x49\x50\x2F\x25\x73\x2F\x25\x73","\x54\x72\x75\x6E\x6B","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x78\x63\x61\x6C\x6C\x79\x2D\x6D\x6F\x74\x69\x6F\x6E\x2D\x64\x69\x61\x6C\x65\x72","\x66\x72\x6F\x6D\x2D\x73\x69\x70","\x31","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x61\x63\x74\x69\x6F\x6E\x69\x64","\x67\x65\x74\x51\x75\x65\x75\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65","\x5B\x63\x61\x6C\x6C\x50\x72\x6F\x67\x72\x65\x73\x73\x44\x65\x74\x65\x63\x74\x69\x6E\x67\x5D\x20","\x63\x61\x6C\x6C\x50\x72\x6F\x67\x72\x65\x73\x73\x44\x65\x74\x65\x63\x74\x69\x6E\x67","\x63\x68\x65\x63\x6B\x52\x65\x74\x72\x69\x76\x65\x4D\x61\x78","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x5B\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74\x5D\x5B\x4E\x6F\x41\x6E\x73\x77\x65\x72\x5D","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x6D\x69\x6E\x75\x74\x65\x73","\x61\x64\x64","\x4C\x69\x73\x74\x49\x64","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x5B\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74\x5D\x20\x5B\x42\x75\x73\x79\x5D","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x5B\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74\x5D\x20\x5B\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x5D","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x5B\x63\x61\x6C\x6C\x50\x72\x6F\x67\x72\x65\x73\x73\x44\x65\x74\x65\x63\x74\x69\x6E\x67\x5D","\x65\x6E\x74\x69\x74\x79\x20\x69\x73\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x65\x76\x74\x20\x69\x73\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x53\x75\x63\x68\x43\x61\x6C\x6C\x73\x44\x61\x79","\x4E\x6F\x53\x75\x63\x68\x4E\x75\x6D\x62\x65\x72","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x30\x5D","\x72\x65\x61\x73\x6F\x6E\x20\x30\x20\x6E\x6F\x20\x73\x75\x63\x68\x20\x6E\x75\x6D\x62\x65\x72\x2E\x2E\x2E\x2E","\x73\x74\x61\x74\x65\x47\x6C\x6F\x62\x61\x6C","\x63\x72\x65\x61\x74\x65\x53\x74\x61\x74\x65\x46\x69\x6E\x61\x6C","\x30","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x4E\x6F\x41\x6E\x73\x77\x65\x72","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x33\x5D","\x72\x65\x61\x73\x6F\x6E\x20\x33\x20\x72\x69\x6E\x67\x69\x6E\x67\x20\x6E\x6F\x20\x61\x6E\x73\x77\x65\x72","\x33","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x75\x73\x79\x43\x61\x6C\x6C\x73\x44\x61\x79","\x42\x75\x73\x79","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x35\x5D","\x72\x65\x61\x73\x6F\x6E\x20\x35\x20\x62\x75\x73\x79","\x35","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x38\x5D","\x72\x65\x61\x73\x6F\x6E\x20\x38\x20\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E","\x38","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x55\x6E\x6B\x6E\x6F\x77\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x72\x65\x61\x73\x6F\x6E","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79\x5D\x5B\x3F\x5D","\x47\x6C\x6F\x62\x61\x6C","\x5B\x6D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72\x5D\x5B\x30\x5D","\x63\x6F\x6E\x74\x61\x63\x74\x20\x6E\x6F\x74\x20\x6D\x6F\x76\x65\x64","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E\x50\x65\x72\x63\x65\x6E\x74\x61\x67\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x50\x61\x75\x73\x65\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x4C\x6F\x77\x65\x72\x4C\x69\x6D\x69\x74","\x65\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73","\x65\x72\x6C\x61\x6E\x67\x41\x62\x61\x6E\x64\x6F\x6E\x6D\x65\x6E\x74\x52\x61\x74\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x48\x69\x74\x52\x61\x74\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x61\x74\x69\x76\x65\x46\x61\x63\x74\x6F\x72","\x66\x6C\x6F\x6F\x72","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x46\x69\x72\x73\x74\x5D","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D","\x63\x68\x65\x63\x6B\x20\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x69\x73\x20\x6E\x6F\x74\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x63\x68\x65\x63\x6B\x20\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x20\x69\x73\x20\x6E\x6F\x74\x20\x75\x6E\x64\x65\x66\x69\x6E\x65","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x44\x61\x74\x65\x5D","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x4C\x6F\x6F\x70\x5D","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E","\x64\x72\x6F\x70\x52\x61\x74\x65","\x5B\x73\x74\x6F\x70\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x52\x65\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x45\x78\x63\x65\x65\x64\x65\x64\x44\x72\x6F\x70\x44\x61\x79\x5D","\x44\x72\x6F\x70\x70\x65\x64\x20\x63\x61\x6C\x6C\x73\x20\x64\x61\x79","\x5B\x73\x74\x6F\x70\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x52\x65\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x4C\x6F\x77\x65\x72\x4C\x69\x6D\x69\x74\x49\x6E\x74\x65\x72\x76\x61\x6C\x5D","\x41\x67\x65\x6E\x74\x20\x66\x72\x65\x65","\x61\x67\x65\x6E\x74\x20\x6D\x61\x78\x20\x66\x72\x65\x65\x20","\x5B\x73\x74\x6F\x70\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x52\x65\x53\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65\x5D\x5B\x45\x78\x63\x65\x65\x64\x65\x64\x44\x72\x6F\x70\x49\x6E\x74\x65\x72\x76\x61\x6C\x5D","\x4D\x61\x78\x20\x44\x72\x6F\x70\x20","\x44\x72\x6F\x70\x20\x69\x6E\x20\x74\x68\x69\x73\x20\x69\x6E\x74\x65\x72\x76\x61\x6C","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x46\x69\x72\x73\x74\x5D","\x5B\x61\x76\x65\x72\x61\x67\x65\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65\x5D\x5B\x45\x72\x6C\x61\x6E\x67\x42\x5D\x20","\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x67\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x53\x74\x61\x72\x74\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x52\x65\x70\x65\x61\x74\x5D","\x5B\x43\x61\x74\x63\x68\x45\x72\x6C\x61\x6E\x67\x42\x5D","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x6E\x73\x77\x65\x72\x65\x64\x43\x61\x6C\x6C\x73","\x61\x62\x61\x6E\x64\x6F\x6E\x6D\x65\x6E\x74\x52\x61\x74\x65","\x61\x67\x65\x6E\x74\x42\x75\x73\x79\x46\x61\x63\x74\x6F\x72","\x62\x75\x73\x79\x46\x61\x63\x74\x6F\x72","\x5B\x67\x65\x74\x44\x61\x74\x61\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x63\x68\x65\x63\x6B\x20\x66\x61\x69\x6C\x75\x72\x65","\x65\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x54\x6F\x53\x65\x63\x6F\x6E\x64","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x5B\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x5B\x73\x74\x61\x72\x74\x4D\x65\x74\x68\x6F\x64\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73\x5D\x20","\x46\x61\x69\x6C\x75\x72\x65\x20","\x63\x68\x65\x63\x6B\x43\x6F\x6E\x74\x61\x63\x74\x42\x6C\x61\x63\x6B","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x43\x61\x6C\x6C\x73\x44\x61\x79","\x42\x4C\x41\x43\x4B\x4C\x49\x53\x54","\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74","\x5B\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x5D\x5B\x65\x72\x72\x6F\x72\x5D","\x69\x6E\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74","\x6C\x69\x6D\x69\x74\x43\x61\x6C\x6C\x73","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x32\x5D","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x32\x5D\x5B\x45\x6D\x70\x74\x79\x5D","\x52\x55\x4E\x4E\x49\x4E\x47","\x69\x76\x72\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x44\x61\x79\x73","\x5B\x61\x63\x74\x69\x6F\x6E\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x49\x76\x72\x5D\x20","\x43\x6F\x6E\x74\x61\x63\x74\x2E\x70\x68\x6F\x6E\x65","\x70\x69\x63\x6B","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x51\x75\x65\x75\x65","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x32\x5D","\x5B\x61\x63\x74\x69\x6F\x6E\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x5D\x20","\x74\x72\x79\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x5B\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x5B\x6C\x69\x6D\x69\x74\x43\x68\x61\x6E\x6E\x65\x6C\x5D","\x5B\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D","\x5B\x61\x63\x74\x69\x6F\x6E\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x5D\x20","\x5B\x61\x62\x61\x6E\x64\x6F\x6E\x6D\x65\x6E\x74\x52\x61\x74\x65\x5D","\x20\x6D\x20\x3D\x20","\x20\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x3D\x20","\x20\x54\x73\x20\x3D\x20","\x20\x70\x20\x3D\x20","\x20\x41\x6D\x61\x78\x20\x3D\x20","\x6D\x20\x3D\x20","\x54\x73\x20\x3D\x20","\x70\x20\x3D\x20","\x69\x6E\x74\x65\x72\x76\x61\x6C\x20\x3D\x20","\x41\x6D\x61\x78\x20\x3D\x20","\x5B\x62\x75\x73\x79\x46\x61\x63\x74\x6F\x72\x5D","\x20\x55\x6D\x69\x6E\x20\x3D\x20","\x65\x78\x70\x6F\x72\x74\x73"];_0x4d77[0];var util=require(_0x4d77[1]);var _=require(_0x4d77[2]);var BPromise=require(_0x4d77[3]);var uuid=require(_0x4d77[4]);var moment=require(_0x4d77[5]);var logger=require(_0x4d77[7])(_0x4d77[6]);var loggerPredictive=require(_0x4d77[7])(_0x4d77[8]);var loggerPredictiveCalls=require(_0x4d77[7])(_0x4d77[9]);var loggerSyncQueueSummary=require(_0x4d77[7])(_0x4d77[10]);var config=require(_0x4d77[11]);var ami=require(_0x4d77[12]);var io=require(_0x4d77[14])({host:_0x4d77[13],port:6379});var cmHopper=require(_0x4d77[15]);var cmHopperFinal=require(_0x4d77[16]);var cmHopperHistory=require(_0x4d77[17]);var cmHopperBlack=require(_0x4d77[18]);var voiceQueueRt=require(_0x4d77[19]);var Action=require(_0x4d77[20]);var History=require(_0x4d77[21]);var Final=require(_0x4d77[22]);var AgentComplete=require(_0x4d77[23]);var QueueCallerAbandon=require(_0x4d77[24]);var Hangup=require(_0x4d77[25]);var ipAgi=process[_0x4d77[27]][_0x4d77[26]]|| _0x4d77[28];function Dialer(_0x66a6x1a){this[_0x4d77[29]]= _0x66a6x1a[_0x4d77[29]];this[_0x4d77[30]]= _0x66a6x1a[_0x4d77[30]];this[_0x4d77[31]]= _0x66a6x1a[_0x4d77[31]];this[_0x4d77[32]]= _0x66a6x1a[_0x4d77[32]];this[_0x4d77[33]]= 4;this[_0x4d77[34]]= {};this[_0x4d77[35]]= {};this[_0x4d77[36]]= {};this[_0x4d77[37]]= {};this[_0x4d77[38]]= {};this[_0x4d77[39]]= {};this[_0x4d77[40]]= {};this[_0x4d77[41]]= {};ami[_0x4d77[45]](_0x4d77[42],this[_0x4d77[44]][_0x4d77[43]](this));ami[_0x4d77[45]](_0x4d77[46],this[_0x4d77[47]][_0x4d77[43]](this));ami[_0x4d77[45]](_0x4d77[48],this[_0x4d77[49]][_0x4d77[43]](this));ami[_0x4d77[45]](_0x4d77[50],this[_0x4d77[51]][_0x4d77[43]](this));ami[_0x4d77[45]](_0x4d77[52],this[_0x4d77[10]][_0x4d77[43]](this));ami[_0x4d77[45]](_0x4d77[53],this[_0x4d77[54]][_0x4d77[43]](this));this[_0x4d77[55]]()}function isNotNull(_0x66a6x1c){return _0x66a6x1c!== null&&  !_[_0x4d77[56]](_0x66a6x1c)}function checkIsLoggedIn(_0x66a6x1e,_0x66a6x1f){return function(){if(_0x66a6x1f<= 0){_0x66a6x1e[_0x4d77[57]]= _0x4d77[58];throw _0x66a6x1e[_0x4d77[59]]+ _0x4d77[60]}}}function isActive(_0x66a6x21){return _0x66a6x21}function checkIsActive(_0x66a6x1e,_0x66a6x21){return function(){if(!isActive(_0x66a6x21)){_0x66a6x1e[_0x4d77[57]]= _0x4d77[61];throw _0x66a6x1e[_0x4d77[59]]+ _0x4d77[62]}}}function checkInterval(_0x66a6x1e){return function(){if(!isNotNull(_0x66a6x1e.Interval)){_0x66a6x1e[_0x4d77[57]]= _0x4d77[63];throw _0x66a6x1e[_0x4d77[59]]+ _0x4d77[64]};if(!isNotNull(_0x66a6x1e[_0x4d77[65]].Intervals)){_0x66a6x1e[_0x4d77[57]]= _0x4d77[63];throw _0x66a6x1e[_0x4d77[59]]+ _0x4d77[64]};if(!isNotNull(_[_0x4d77[66]](_0x66a6x1e[_0x4d77[65]].Intervals))){_0x66a6x1e[_0x4d77[57]]= _0x4d77[63];throw _0x66a6x1e[_0x4d77[59]]+ _0x4d77[64]}}}function msgResponse(_0x66a6x25,_0x66a6x26,_0x66a6x27){return {action:_0x66a6x25,response:_0x66a6x26,message:_0x66a6x27}}function myreject(_0x66a6x29){return function(_0x66a6x2a){return _0x66a6x29(msgResponse(_0x4d77[67],_0x4d77[68],JSON[_0x4d77[69]](_0x66a6x2a)))}}function getSeconds(_0x66a6x2c,_0x66a6x2d){var _0x66a6x2e=moment(_0x66a6x2c)[_0x4d77[70]](0);var _0x66a6x2f=moment(_0x66a6x2d)[_0x4d77[70]](0);return _0x66a6x2e[_0x4d77[72]](_0x66a6x2f,_0x4d77[71])}function emit(_0x66a6x31,_0x66a6x32,_0x66a6x1c){io[_0x4d77[74]](_0x66a6x31)[_0x4d77[73]](_0x66a6x32,_0x66a6x1c)}function emitVoiceQueueSummary(_0x66a6x1c){if(_0x66a6x1c[_0x4d77[75]]=== _0x4d77[76]){emit(util[_0x4d77[78]](_0x4d77[77],_0x66a6x1c[_0x4d77[59]]),_0x4d77[79],_0x66a6x1c)}}function emitCampaignSummary(_0x66a6x1c){if(_0x66a6x1c[_0x4d77[75]]=== _0x4d77[80]){emit(util[_0x4d77[78]](_0x4d77[81],_0x66a6x1c[_0x4d77[59]]),_0x4d77[82],_0x66a6x1c)}}function checkGetDataPredictive(_0x66a6x1c){if(isNotNull(_0x66a6x1c)){if(!_[_0x4d77[66]](_0x66a6x1c)){if(_0x66a6x1c[_0x4d77[83]]> 0){if(!_[_0x4d77[56]](_0x66a6x1c[_0x4d77[84]])&& _0x66a6x1c[_0x4d77[84]]> 0){return true}else {loggerPredictive[_0x4d77[86]](_0x4d77[85],JSON[_0x4d77[69]](_0x66a6x1c))};if(!_[_0x4d77[56]](_0x66a6x1c[_0x4d77[87]])&& _0x66a6x1c[_0x4d77[87]]> 0){return true}else {loggerPredictive[_0x4d77[86]](_0x4d77[88],JSON[_0x4d77[69]](_0x66a6x1c))}}else {loggerPredictive[_0x4d77[86]](_0x4d77[89],JSON[_0x4d77[69]](_0x66a6x1c))}}else {loggerPredictive[_0x4d77[86]](_0x4d77[90],JSON[_0x4d77[69]](_0x66a6x1c))}}else {loggerPredictive[_0x4d77[86]](_0x4d77[91],JSON[_0x4d77[69]](_0x66a6x1c))};return false}function mergeDataErlangB(_0x66a6x37){return function(_0x66a6x38){loggerPredictive[_0x4d77[86]](_0x4d77[92],JSON[_0x4d77[69]](_0x66a6x38));_[_0x4d77[93]](_0x66a6x37,_0x66a6x38)}}function getDiff(_0x66a6x2d){var _0x66a6x2e=moment()[_0x4d77[70]](0);var _0x66a6x2f=moment(_0x66a6x2d)[_0x4d77[70]](0);return _0x66a6x2e[_0x4d77[72]](_0x66a6x2f,_0x4d77[71])}function ifInterval(_0x66a6x3b,_0x66a6x3c){if(_[_0x4d77[56]](_0x66a6x3c)){return false};if(getDiff(_0x66a6x3c)< _0x66a6x3b* 60){return true}else {return false}}function freeVariablesPredictive(_0x66a6x37){if(isNotNull(_0x66a6x37)){if(!_[_0x4d77[56]](_0x66a6x37[_0x4d77[40]])){_0x66a6x37[_0x4d77[40]]= undefined;loggerPredictive[_0x4d77[86]](_0x4d77[94],_0x4d77[40],_0x66a6x37[_0x4d77[59]])};if(!_[_0x4d77[56]](_0x66a6x37[_0x4d77[39]])){_0x66a6x37[_0x4d77[39]]= undefined;loggerPredictive[_0x4d77[86]](_0x4d77[94],_0x4d77[39],_0x66a6x37[_0x4d77[59]])};if(!_[_0x4d77[56]](_0x66a6x37[_0x4d77[95]])){clearInterval(_0x66a6x37[_0x4d77[95]]);_0x66a6x37[_0x4d77[95]]= undefined;loggerPredictive[_0x4d77[86]](_0x4d77[94],_0x4d77[95],_0x66a6x37[_0x4d77[59]])}}}function erlangb(_0x66a6x3f,_0x66a6x40){if(_0x66a6x40=== 0){return 0};var _0x66a6x41=1;for(var _0x66a6x42=1;_0x66a6x42<= _0x66a6x40;_0x66a6x42+= 1){_0x66a6x41= 1+ _0x66a6x41* _0x66a6x42/ _0x66a6x3f};return 1/ _0x66a6x41}function isVoiceQueueOutbound(_0x66a6x44){return _0x66a6x44=== _0x4d77[76]}function isCampaignIvr(_0x66a6x44){return _0x66a6x44=== _0x4d77[80]}function getCallerId(_0x66a6x47,_0x66a6x48,_0x66a6x49){if(!_[_0x4d77[56]](_0x66a6x49)&& _0x4d77[96]===  typeof _0x66a6x49){if(!_[_0x4d77[56]](_0x66a6x48)&& _0x4d77[96]===  typeof _0x66a6x48){return util[_0x4d77[78]](_0x4d77[97],_0x66a6x48,_0x66a6x49)};return util[_0x4d77[78]](_0x4d77[97],_0x66a6x49,_0x66a6x49)};if(!_[_0x4d77[56]](_0x66a6x47)&& _0x4d77[96]===  typeof _0x66a6x47){return _0x66a6x47};return _0x4d77[98]}function loggerCatchQueueSummary(_0x66a6x4b,_0x66a6x37){return function(_0x66a6x2a){freeVariablesPredictive(_0x66a6x37);emitVoiceQueueSummary(_0x66a6x37);emitCampaignSummary(_0x66a6x37);loggerSyncQueueSummary[_0x4d77[100]](_0x66a6x4b,util[_0x4d77[99]](_0x66a6x2a,{showHidden:false,depth:null}))}}function loggerCatchPredictive(_0x66a6x4b,_0x66a6x37){return function(_0x66a6x2a){loggerPredictive[_0x4d77[100]](_0x66a6x4b,JSON[_0x4d77[69]](_0x66a6x2a));freeVariablesPredictive(_0x66a6x37)}}function loggerCatch(_0x66a6x4b){return function(_0x66a6x2a){logger[_0x4d77[100]](_0x66a6x4b,util[_0x4d77[99]](_0x66a6x2a,{showHidden:false,depth:null}))}}function checkContactEmpty(_0x66a6x38){return _0x66a6x38&&  !_[_0x4d77[56]](_0x66a6x38)&& (_0x66a6x38[_0x4d77[101]]> 0)}function decremetOriginate(_0x66a6x1c){if(!_[_0x4d77[56]](_0x66a6x1c)&& _0x66a6x1c!== null){if(_0x66a6x1c[_0x4d77[103]](_0x4d77[102])){if(_0x66a6x1c[_0x4d77[102]]> 0){_0x66a6x1c[_0x4d77[102]]-= 1}else {logger[_0x4d77[100]](_0x4d77[104])}}}else {logger[_0x4d77[100]](_0x4d77[105])}}function checkContactLowerLimitOriginate(_0x66a6x37,_0x66a6x51,_0x66a6x52){if(_0x66a6x51> _0x66a6x52){for(var _0x66a6x53=0;_0x66a6x53< _0x66a6x51- _0x66a6x52;_0x66a6x53+= 1){decremetOriginate(_0x66a6x37)}}}function loggerGetContactDialer(_0x66a6x4b,_0x66a6x37,_0x66a6x55){return function(_0x66a6x2a){checkContactLowerLimitOriginate(_0x66a6x37,_0x66a6x55,0);logger[_0x4d77[100]](_0x66a6x4b,util[_0x4d77[99]](_0x66a6x2a,{showHidden:false,depth:null}))}}function sendMessageReschedule(_0x66a6x1e){return function(_0x66a6x57){if(isNotNull(_0x66a6x57)&& isNotNull(_0x66a6x57[0])){if(_0x66a6x57[0][_0x4d77[106]]> 0){_0x66a6x1e[_0x4d77[57]]= _0x4d77[107];logger[_0x4d77[86]](_0x4d77[108]+ _0x66a6x1e[_0x4d77[59]],_0x66a6x57[0][_0x4d77[106]],_0x4d77[109])}else {_0x66a6x1e[_0x4d77[57]]= _0x4d77[110];logger[_0x4d77[86]](_0x4d77[111]+ _0x66a6x1e[_0x4d77[59]])}}}}function notSendMessagesQueue(_0x66a6x37){if(_0x66a6x37[_0x4d77[112]]){freeVariablesPredictive(_0x66a6x37);if(_0x66a6x37[_0x4d77[102]]=== 0&& _0x66a6x37[_0x4d77[113]]=== 0&& _0x66a6x37[_0x4d77[114]]=== 0){_0x66a6x37[_0x4d77[112]]= false;_0x66a6x37[_0x4d77[115]]= 0;_0x66a6x37[_0x4d77[116]]= 0;_0x66a6x37[_0x4d77[57]]= _0x4d77[61];loggerSyncQueueSummary[_0x4d77[100]](_0x4d77[117],_0x66a6x37[_0x4d77[59]],_0x4d77[118])}else {_0x66a6x37[_0x4d77[57]]= _0x4d77[119];loggerSyncQueueSummary[_0x4d77[100]](_0x4d77[117],_0x66a6x37[_0x4d77[59]],_0x4d77[120])};emitVoiceQueueSummary(_0x66a6x37)}}function notSendMessagesCampaign(_0x66a6x5a){if(_0x66a6x5a[_0x4d77[112]]){if(_0x66a6x5a[_0x4d77[102]]=== 0){_0x66a6x5a[_0x4d77[112]]= false;_0x66a6x5a[_0x4d77[57]]= _0x4d77[61];loggerSyncQueueSummary[_0x4d77[100]](_0x4d77[121],_0x66a6x5a[_0x4d77[59]],_0x4d77[118])}else {_0x66a6x5a[_0x4d77[57]]= _0x4d77[119];loggerSyncQueueSummary[_0x4d77[100]](_0x4d77[121],_0x66a6x5a[_0x4d77[59]],_0x4d77[120])};emitCampaignSummary(_0x66a6x5a)}}Dialer[_0x4d77[123]][_0x4d77[122]]= function(_0x66a6x5b){return BPromise[_0x4d77[127]]()[_0x4d77[126]](cmHopper[_0x4d77[122]](_0x66a6x5b))[_0x4d77[125]](loggerCatch(_0x4d77[124]))};Dialer[_0x4d77[123]][_0x4d77[128]]= function(_0x66a6x5c){return BPromise[_0x4d77[127]]()[_0x4d77[126]](cmHopperBlack[_0x4d77[128]](_0x66a6x5c))[_0x4d77[125]](loggerCatch(_0x4d77[129]))};Dialer[_0x4d77[123]][_0x4d77[130]]= function(_0x66a6x5d){return BPromise[_0x4d77[127]]()[_0x4d77[126]](cmHopperHistory[_0x4d77[132]](_0x66a6x5d))[_0x4d77[125]](loggerCatch(_0x4d77[131]))};Dialer[_0x4d77[123]][_0x4d77[133]]= function(_0x66a6x5e){return BPromise[_0x4d77[127]]()[_0x4d77[126]](cmHopper[_0x4d77[133]](_0x66a6x5e))[_0x4d77[125]](loggerCatch(_0x4d77[134]))};Dialer[_0x4d77[123]][_0x4d77[135]]= function(_0x66a6x5f,_0x66a6x51){return BPromise[_0x4d77[127]]()[_0x4d77[126]](cmHopper[_0x4d77[135]](_0x66a6x5f,_0x66a6x51))[_0x4d77[125]](loggerCatch(_0x4d77[136]))};Dialer[_0x4d77[123]][_0x4d77[137]]= function(_0x66a6x60,_0x66a6x51){return BPromise[_0x4d77[127]]()[_0x4d77[126]](cmHopper[_0x4d77[137]](_0x66a6x60,_0x66a6x51))[_0x4d77[125]](loggerCatch(_0x4d77[136]))};Dialer[_0x4d77[123]][_0x4d77[138]]= function(_0x66a6x5b){return BPromise[_0x4d77[127]]()[_0x4d77[126]](voiceQueueRt[_0x4d77[138]](_0x66a6x5b))[_0x4d77[125]](loggerCatch(_0x4d77[139]))};Dialer[_0x4d77[123]][_0x4d77[140]]= function(_0x66a6x5e){return BPromise[_0x4d77[127]]()[_0x4d77[126]](cmHopper[_0x4d77[140]](_0x66a6x5e))[_0x4d77[125]](loggerCatch(_0x4d77[141]))};Dialer[_0x4d77[123]][_0x4d77[142]]= function(_0x66a6x5e){return BPromise[_0x4d77[127]]()[_0x4d77[126]](cmHopperHistory[_0x4d77[142]](_0x66a6x5e))[_0x4d77[125]](loggerCatch(_0x4d77[143]))};Dialer[_0x4d77[123]][_0x4d77[144]]= function(_0x66a6x1c){if(!_[_0x4d77[56]](_0x66a6x1c)&& _0x66a6x1c!== null){if(_0x66a6x1c[_0x4d77[103]](_0x4d77[102])){if(_0x66a6x1c[_0x4d77[102]]> 0){_0x66a6x1c[_0x4d77[102]]-= 1}else {logger[_0x4d77[100]](_0x4d77[145])}}}else {logger[_0x4d77[100]](_0x4d77[146])}};Dialer[_0x4d77[123]][_0x4d77[147]]= function(_0x66a6x4b,_0x66a6x1e){var _0x66a6x61=this;return function(_0x66a6x2a){_0x66a6x61[_0x4d77[144]](_0x66a6x1e);logger[_0x4d77[100]](_0x66a6x4b,util[_0x4d77[99]](_0x66a6x2a,{showHidden:false,depth:null}))}};Dialer[_0x4d77[123]][_0x4d77[148]]= function(_0x66a6x62){return _0x66a6x62=== _0x4d77[149]};Dialer[_0x4d77[123]][_0x4d77[150]]= function(_0x66a6x63){return !_[_0x4d77[56]](_0x66a6x63)&& _0x66a6x63 &&  !_[_0x4d77[56]](_0x66a6x63[_0x4d77[59]]) &&  !_[_0x4d77[56]](_0x66a6x63[_0x4d77[151]]) && _0x66a6x63[_0x4d77[151]] && (this[_0x4d77[32]][util[_0x4d77[78]](_0x4d77[153],_0x66a6x63[_0x4d77[59]])][_0x4d77[152]]=== _0x4d77[154]|| this[_0x4d77[32]][util[_0x4d77[78]](_0x4d77[153],_0x66a6x63[_0x4d77[59]])][_0x4d77[152]]=== _0x4d77[155])};Dialer[_0x4d77[123]][_0x4d77[54]]= function(_0x66a6x32){var _0x66a6x61=this;var _0x66a6x64;if(this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]]&& this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]][_0x4d77[75]]=== _0x4d77[80]){this[_0x4d77[144]](this[_0x4d77[30]][this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]][_0x4d77[157]]]);this[_0x4d77[30]][this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]][_0x4d77[157]]][_0x4d77[158]]+= 1;_0x66a6x64=  new Hangup(this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]],_0x66a6x32);this[_0x4d77[142]](_0x66a6x64)[_0x4d77[125]](loggerCatch(_0x4d77[159]));this[_0x4d77[140]](_0x66a6x64)[_0x4d77[125]](loggerCatch(_0x4d77[160]));delete _0x66a6x61[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]]};if(this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]]&& this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]][_0x4d77[75]]!== _0x4d77[80]){this[_0x4d77[144]](this[_0x4d77[29]][this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]][_0x4d77[157]]]);this[_0x4d77[29]][this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]][_0x4d77[157]]][_0x4d77[161]]+= 1;this[_0x4d77[29]][this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]][_0x4d77[157]]][_0x4d77[162]]+= 1;_0x66a6x64=  new Hangup(this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]],_0x66a6x32);_0x66a6x64[_0x4d77[163]]= 16;_0x66a6x64[_0x4d77[164]]= _0x4d77[165];_0x66a6x64[_0x4d77[166]]= _0x4d77[167];this[_0x4d77[142]](_0x66a6x64)[_0x4d77[125]](loggerCatch(_0x4d77[159]));this[_0x4d77[140]](_0x66a6x64)[_0x4d77[125]](loggerCatch(_0x4d77[160]));delete _0x66a6x61[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]]}};Dialer[_0x4d77[123]][_0x4d77[51]]= function(_0x66a6x32){var _0x66a6x61=this;if(this[_0x4d77[29]][_0x66a6x32[_0x4d77[157]]]){if(this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]]){this[_0x4d77[29]][_0x66a6x32[_0x4d77[157]]][_0x4d77[161]]+= 1;var _0x66a6x65= new AgentComplete(this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]],_0x66a6x32);this[_0x4d77[142]](_0x66a6x65)[_0x4d77[125]](loggerCatch(_0x4d77[168]));this[_0x4d77[140]](_0x66a6x65)[_0x4d77[125]](loggerCatch(_0x4d77[169]));delete _0x66a6x61[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]]}}};Dialer[_0x4d77[123]][_0x4d77[44]]= function(_0x66a6x32){if(this[_0x4d77[29]][_0x66a6x32[_0x4d77[157]]]){this[_0x4d77[144]](this[_0x4d77[29]][_0x66a6x32[_0x4d77[157]]]);if(this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]]){this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]][_0x4d77[170]]= moment()[_0x4d77[78]](_0x4d77[171])}}};Dialer[_0x4d77[123]][_0x4d77[172]]= function(_0x66a6x66){this[_0x4d77[142]](_0x66a6x66)[_0x4d77[125]](loggerCatch(_0x4d77[168]));this[_0x4d77[140]](_0x66a6x66)[_0x4d77[125]](loggerCatch(_0x4d77[173]))};Dialer[_0x4d77[123]][_0x4d77[47]]= function(_0x66a6x32){var _0x66a6x61=this;if(this[_0x4d77[29]][_0x66a6x32[_0x4d77[157]]]){this[_0x4d77[144]](this[_0x4d77[29]][_0x66a6x32[_0x4d77[157]]]);if(this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]]){this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]][_0x4d77[174]]= moment()[_0x4d77[78]](_0x4d77[171]);var _0x66a6x66= new QueueCallerAbandon(this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]],_0x66a6x32);if(getSeconds(this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]][_0x4d77[174]],this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]][_0x4d77[175]])>= this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]][_0x4d77[176]]){this[_0x4d77[29]][_0x66a6x32[_0x4d77[157]]][_0x4d77[177]]+= 1;this[_0x4d77[29]][_0x66a6x32[_0x4d77[157]]][_0x4d77[178]]+= 1;this[_0x4d77[29]][_0x66a6x32[_0x4d77[157]]][_0x4d77[179]]+= 1;_0x66a6x66[_0x4d77[163]]= 10;_0x66a6x66[_0x4d77[164]]= _0x4d77[180];_0x66a6x66[_0x4d77[181]]= _0x4d77[182];this[_0x4d77[172]](_0x66a6x66)}else {this[_0x4d77[29]][_0x66a6x32[_0x4d77[157]]][_0x4d77[183]]+= 1;this[_0x4d77[29]][_0x66a6x32[_0x4d77[157]]][_0x4d77[184]]+= 1;_0x66a6x66[_0x4d77[163]]= 11;_0x66a6x66[_0x4d77[164]]= _0x4d77[185];_0x66a6x66[_0x4d77[181]]= _0x4d77[186];this[_0x4d77[172]](_0x66a6x66)};delete this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]]}}};Dialer[_0x4d77[123]][_0x4d77[55]]= function(){var _0x66a6x61=this;setInterval(function(){_0x66a6x61[_0x4d77[187]]()},1000)};Dialer[_0x4d77[123]][_0x4d77[188]]= function(_0x66a6x1e){var _0x66a6x61=this;return function(){if(!_0x66a6x61[_0x4d77[150]](_0x66a6x1e.Trunk)){if(!_0x66a6x61[_0x4d77[150]](_0x66a6x1e.TrunkBackup)){_0x66a6x1e[_0x4d77[57]]= _0x4d77[189];throw _0x66a6x1e[_0x4d77[59]]+ _0x4d77[190]}}}};Dialer[_0x4d77[123]][_0x4d77[191]]= function(_0x66a6x67,_0x66a6x68,_0x66a6x48,_0x66a6x37){var _0x66a6x61=this;return function(){return _0x66a6x61[_0x4d77[192]](_0x66a6x67,_0x66a6x68,_0x66a6x48,_0x66a6x37)}};Dialer[_0x4d77[123]][_0x4d77[193]]= function(_0x66a6x69,_0x66a6x68,_0x66a6x48,_0x66a6x37){var _0x66a6x61=this;return function(){return _0x66a6x61[_0x4d77[192]](_0x66a6x69.Intervals,_0x66a6x68,_0x66a6x48,_0x66a6x37)}};Dialer[_0x4d77[123]][_0x4d77[192]]= function(_0x66a6x67,_0x66a6x68,_0x66a6x48,_0x66a6x37){var _0x66a6x6a=[];return  new BPromise(function(_0x66a6x6b,_0x66a6x29){if(!isNotNull(_0x66a6x67)){_0x66a6x37[_0x4d77[57]]= _0x4d77[63];return _0x66a6x29(msgResponse(_0x4d77[192],_0x4d77[194],_0x66a6x48+ _0x4d77[195]))};if(_[_0x4d77[66]](_0x66a6x67)){_0x66a6x37[_0x4d77[57]]= _0x4d77[196];return _0x66a6x29(msgResponse(_0x4d77[192],_0x4d77[194],_0x66a6x48+ _0x4d77[197]))};if(_0x66a6x68&& _[_0x4d77[56]](config[_0x4d77[198]][_0x66a6x68])){_0x66a6x37[_0x4d77[57]]= _0x4d77[199];return _0x66a6x29(msgResponse(_0x4d77[192],_0x4d77[194],_0x66a6x48+ _0x4d77[200]+ _0x66a6x68))};if(_[_0x4d77[201]](_0x66a6x67)){for(var _0x66a6x53=0;_0x66a6x53< _0x66a6x67[_0x4d77[101]];_0x66a6x53+= 1){_0x66a6x6a[_0x4d77[209]](ami.Action({action:_0x4d77[205],command:util[_0x4d77[78]](_0x4d77[206],_0x66a6x67[_0x66a6x53][_0x4d77[207]],!_[_0x4d77[56]](config[_0x4d77[198]][_0x66a6x68])?_0x66a6x68:_0x4d77[208])})[_0x4d77[126]](function(_0x66a6x38){return (_0x66a6x38[_0x4d77[204]][_0x4d77[203]](_0x4d77[202])>= 0)?true:false})[_0x4d77[125]](myreject(_0x66a6x29)))}}else {_0x66a6x6a[_0x4d77[209]](ami.Action({action:_0x4d77[205],command:util[_0x4d77[78]](_0x4d77[206],_0x66a6x67,!_[_0x4d77[56]](config[_0x4d77[198]][_0x66a6x68])?_0x66a6x68:_0x4d77[208])})[_0x4d77[126]](function(_0x66a6x38){return (_0x66a6x38[_0x4d77[204]][_0x4d77[203]](_0x4d77[202])>= 0)?true:false})[_0x4d77[125]](myreject(_0x66a6x29)))};BPromise[_0x4d77[215]](_0x66a6x6a)[_0x4d77[126]](function(_0x66a6x6c){var _0x66a6x6d=_[_0x4d77[210]](_0x66a6x6c);if(_0x66a6x6d){return _0x66a6x6b(_0x66a6x6d)}else {_0x66a6x37[_0x4d77[57]]= _0x4d77[211];return _0x66a6x29(msgResponse(_0x4d77[212],_0x4d77[194],_0x66a6x48+ _0x4d77[213]+ util[_0x4d77[99]](_0x66a6x67,{showHidden:false,depth:null})+ _0x4d77[214]+ _0x66a6x68))}})[_0x4d77[125]](function(_0x66a6x2a){return _0x66a6x29(msgResponse(_0x4d77[192],_0x4d77[194],JSON[_0x4d77[69]](_0x66a6x2a)))})})};Dialer[_0x4d77[123]][_0x4d77[216]]= function(_0x66a6x37){var _0x66a6x61=this;return function(){switch(_0x66a6x37[_0x4d77[223]]){case _0x4d77[218]:freeVariablesPredictive(_0x66a6x37);_0x66a6x61[_0x4d77[217]](_0x66a6x37,1);break;case _0x4d77[220]:freeVariablesPredictive(_0x66a6x37);_0x66a6x61[_0x4d77[217]](_0x66a6x37,_0x66a6x37[_0x4d77[219]]);break;case _0x4d77[8]:_0x66a6x61[_0x4d77[8]](_0x66a6x37);break;default:freeVariablesPredictive(_0x66a6x37);logger[_0x4d77[100]](_0x4d77[221],_0x66a6x37[_0x4d77[59]],_0x4d77[222])}}};Dialer[_0x4d77[123]][_0x4d77[224]]= function(_0x66a6x5a){var _0x66a6x61=this;return function(){_0x66a6x61[_0x4d77[225]](_0x66a6x5a)}};Dialer[_0x4d77[123]][_0x4d77[10]]= function(_0x66a6x37){var _0x66a6x61=this;if(isVoiceQueueOutbound(_0x66a6x37[_0x4d77[75]])&& isActive(_0x66a6x37[_0x4d77[226]])){_0x66a6x37[_0x4d77[112]]= true;BPromise[_0x4d77[127]]()[_0x4d77[126]](checkIsLoggedIn(_0x66a6x37,_0x66a6x37[_0x4d77[230]]))[_0x4d77[126]](checkIsActive(_0x66a6x37,_0x66a6x37[_0x4d77[226]]))[_0x4d77[126]](checkInterval(_0x66a6x37))[_0x4d77[126]](_0x66a6x61[_0x4d77[188]](_0x66a6x37))[_0x4d77[126]](_0x66a6x61[_0x4d77[191]](_0x66a6x37[_0x4d77[229]],_0x66a6x37[_0x4d77[228]],_0x66a6x37[_0x4d77[59]],_0x66a6x37))[_0x4d77[126]](_0x66a6x61[_0x4d77[193]](_0x66a6x37.Interval,_0x66a6x37[_0x4d77[228]],_0x66a6x37[_0x4d77[59]],_0x66a6x37))[_0x4d77[126]](_0x66a6x61[_0x4d77[216]](_0x66a6x37))[_0x4d77[125]](loggerCatchQueueSummary(_0x4d77[227],_0x66a6x37))}else {notSendMessagesQueue(_0x66a6x37)}};Dialer[_0x4d77[123]][_0x4d77[187]]= function(){var _0x66a6x61=this;var _0x66a6x5a;for(var _0x66a6x6e in this[_0x4d77[30]]){if(this[_0x4d77[30]][_0x4d77[103]](_0x66a6x6e)){_0x66a6x5a= this[_0x4d77[30]][_0x66a6x6e];if(isCampaignIvr(_0x66a6x5a[_0x4d77[75]])&& isActive(_0x66a6x5a[_0x4d77[151]])){_0x66a6x5a[_0x4d77[112]]= true;BPromise[_0x4d77[127]]()[_0x4d77[126]](checkIsActive(_0x66a6x5a,_0x66a6x5a[_0x4d77[151]]))[_0x4d77[126]](checkInterval(_0x66a6x5a))[_0x4d77[126]](_0x66a6x61[_0x4d77[188]](_0x66a6x5a))[_0x4d77[126]](_0x66a6x61[_0x4d77[191]](_0x66a6x5a[_0x4d77[229]],_0x66a6x5a[_0x4d77[228]],_0x66a6x5a[_0x4d77[59]],_0x66a6x5a))[_0x4d77[126]](_0x66a6x61[_0x4d77[193]](_0x66a6x5a.Interval,_0x66a6x5a[_0x4d77[228]],_0x66a6x5a[_0x4d77[59]],_0x66a6x5a))[_0x4d77[126]](_0x66a6x61[_0x4d77[224]](_0x66a6x5a))[_0x4d77[125]](loggerCatchQueueSummary(_0x4d77[231],_0x66a6x5a))}else {notSendMessagesCampaign(_0x66a6x5a)}}}};Dialer[_0x4d77[123]][_0x4d77[232]]= function(_0x66a6x37,_0x66a6x1c){var _0x66a6x61=this;var _0x66a6x6f=uuid[_0x4d77[233]]();this[_0x4d77[35]][_0x66a6x6f]=  new Action(_0x66a6x37,_0x66a6x1c,_0x66a6x6f);return  new BPromise(function(_0x66a6x6b,_0x66a6x29){if(_[_0x4d77[56]](_0x66a6x37)&& _0x4d77[234]!==  typeof _0x66a6x37){return _0x66a6x29(msgResponse(_0x4d77[235],_0x4d77[194],_0x4d77[236]))};if(_[_0x4d77[56]](_0x66a6x1c[_0x4d77[238]][_0x4d77[237]])|| _0x66a6x1c[_0x4d77[238]][_0x4d77[237]]=== null){return _0x66a6x29(msgResponse(_0x4d77[235],_0x4d77[194],_0x4d77[239]))};var _0x66a6x70={"\x58\x4D\x44\x2D\x43\x41\x4C\x4C\x45\x52\x49\x44":_0x66a6x61[_0x4d77[35]][_0x66a6x6f][_0x4d77[240]](),"\x58\x4D\x44\x2D\x41\x47\x49":_0x66a6x37[_0x4d77[241]]?util[_0x4d77[78]](_0x4d77[242],ipAgi,_0x66a6x37[_0x4d77[241]]):_0x4d77[243],"\x58\x4D\x44\x2D\x51\x55\x45\x55\x45":(_0x66a6x37[_0x4d77[75]]=== _0x4d77[76])?util[_0x4d77[78]](_0x4d77[244],_0x66a6x37[_0x4d77[59]],_0x66a6x37[_0x4d77[245]]|| _0x4d77[208],_0x66a6x37[_0x4d77[176]]|| 3):_0x4d77[243],"\x58\x4D\x44\x2D\x43\x4F\x4E\x54\x41\x43\x54\x49\x44":_0x66a6x1c[_0x4d77[246]]};if(_0x66a6x37[_0x4d77[75]]=== _0x4d77[76]){_0x66a6x70[_0x4d77[247]]= _0x66a6x1c[_0x4d77[248]]}else {_0x66a6x70[_0x4d77[249]]= _0x66a6x1c[_0x4d77[250]]};for(var _0x66a6x6e in _0x66a6x1c[_0x4d77[238]]){if(_0x66a6x1c[_0x4d77[238]][_0x4d77[103]](_0x66a6x6e)){if(isNotNull(_0x66a6x1c[_0x4d77[238]][_0x66a6x6e])&& (_0x66a6x6e!== _0x4d77[251])&& (_0x66a6x6e!== _0x4d77[252])&& (_0x66a6x6e!== _0x4d77[253])&& (_0x66a6x6e!== _0x4d77[254])){_0x66a6x70[util[_0x4d77[78]](_0x4d77[255],_0x4d77[256],_[_0x4d77[257]](_0x66a6x6e))]= _0x66a6x1c[_0x4d77[238]][_0x66a6x6e]}}};return ami.Action({actionid:_0x66a6x6f,action:_0x4d77[235],channel:(_0x66a6x61[_0x4d77[150]](_0x66a6x37.Trunk))?util[_0x4d77[78]](_0x4d77[266],_0x66a6x37[_0x4d77[267]][_0x4d77[59]],_0x66a6x1c[_0x4d77[238]][_0x4d77[237]]):util[_0x4d77[78]](_0x4d77[266],_0x66a6x37[_0x4d77[268]][_0x4d77[59]],_0x66a6x1c[_0x4d77[238]][_0x4d77[237]]),callerid:(_0x66a6x61[_0x4d77[150]](_0x66a6x37.Trunk))?getCallerId(_0x66a6x37[_0x4d77[267]][_0x4d77[269]],_0x66a6x37[_0x4d77[270]],_0x66a6x37[_0x4d77[271]]):getCallerId(_0x66a6x37[_0x4d77[268]][_0x4d77[269]],_0x66a6x37[_0x4d77[270]],_0x66a6x37[_0x4d77[271]]),Exten:_0x4d77[272],Context:_0x4d77[273],Priority:_0x4d77[274],variable:_0x66a6x70,timeout:(_0x66a6x37[_0x4d77[275]]|| 30)* 1000,async:true,channelid:_0x66a6x6f})[_0x4d77[126]](function(_0x66a6x38){return _0x66a6x6b(_0x66a6x38)})[_0x4d77[125]](function(_0x66a6x2a){_0x66a6x37[_0x4d77[258]]+= 1;var _0x66a6x71= new History(_0x66a6x61[_0x4d77[35]][_0x66a6x6f]);logger[_0x4d77[100]](util[_0x4d77[78]](_0x4d77[259],JSON[_0x4d77[69]](_0x66a6x2a)));_0x66a6x71[_0x4d77[163]]= 14;_0x66a6x71[_0x4d77[164]]= _0x4d77[260];_0x66a6x71[_0x4d77[261]]= moment()[_0x4d77[78]](_0x4d77[171]);_0x66a6x71[_0x4d77[262]]= _0x66a6x71[_0x4d77[261]];_0x66a6x61[_0x4d77[142]](_0x66a6x71)[_0x4d77[125]](loggerCatch(_0x4d77[263]));_0x66a6x61[_0x4d77[140]](_0x66a6x71)[_0x4d77[125]](loggerCatch(_0x4d77[263]))[_0x4d77[265]](function(){delete _0x66a6x61[_0x4d77[35]][_0x66a6x6f];return _0x66a6x29(msgResponse(_0x4d77[235],_0x4d77[68],_0x4d77[264]))})})})};Dialer[_0x4d77[123]][_0x4d77[49]]= function(_0x66a6x32){var _0x66a6x61=this;if(this[_0x4d77[35]][_0x66a6x32[_0x4d77[276]]]){this[_0x4d77[35]][_0x66a6x32[_0x4d77[276]]][_0x4d77[175]]= moment()[_0x4d77[78]](_0x4d77[171]);var _0x66a6x1e=(this[_0x4d77[35]][_0x66a6x32[_0x4d77[276]]][_0x4d77[75]]=== _0x4d77[80])?this[_0x4d77[30]][this[_0x4d77[35]][_0x66a6x32[_0x4d77[276]]][_0x4d77[157]]]:this[_0x4d77[29]][this[_0x4d77[35]][_0x66a6x32[_0x4d77[276]]][_0x4d77[277]]()];if(!this[_0x4d77[148]](_0x66a6x32[_0x4d77[278]])){this[_0x4d77[144]](_0x66a6x1e);return this[_0x4d77[280]](this[_0x4d77[35]][_0x66a6x32[_0x4d77[276]]],_0x66a6x1e,_0x66a6x32)[_0x4d77[126]](function(_0x66a6x38){})[_0x4d77[125]](loggerCatch(_0x4d77[279]))[_0x4d77[265]](function(){delete _0x66a6x61[_0x4d77[35]][_0x66a6x32[_0x4d77[276]]]})}else {this[_0x4d77[37]][_0x66a6x32[_0x4d77[156]]]= _0x66a6x61[_0x4d77[35]][_0x66a6x32[_0x4d77[276]]];delete this[_0x4d77[35]][_0x66a6x32[_0x4d77[276]]]}}};Dialer[_0x4d77[123]][_0x4d77[281]]= function(_0x66a6x72,_0x66a6x1c,_0x66a6x1e){var _0x66a6x71= new History(_0x66a6x1c);if(_0x66a6x71[_0x4d77[282]]+ _0x66a6x71[_0x4d77[283]]+ _0x66a6x71[_0x4d77[284]]>= _0x66a6x1e[_0x4d77[285]]- 1){return true};switch(_0x66a6x72){case 3:if(_0x66a6x71[_0x4d77[284]]>= _0x66a6x1e[_0x4d77[286]]- 1){return true}else {this[_0x4d77[133]]({active:false,countnoanswerretry:_0x66a6x71[_0x4d77[284]]+= 1,scheduledat:moment()[_0x4d77[290]](_0x66a6x1e[_0x4d77[288]],_0x4d77[289])[_0x4d77[78]](_0x4d77[171]),ContactId:_0x66a6x71[_0x4d77[246]],ListId:_0x66a6x71[_0x4d77[291]],VoiceQueueId:_0x66a6x71[_0x4d77[248]]|| undefined,CampaignId:_0x66a6x71[_0x4d77[250]]|| undefined})[_0x4d77[125]](loggerCatch(_0x4d77[287]))};break;case 5:if(_0x66a6x71[_0x4d77[282]]>= _0x66a6x1e[_0x4d77[292]]- 1){return true}else {this[_0x4d77[133]]({active:false,countbusyretry:_0x66a6x71[_0x4d77[282]]+= 1,scheduledat:moment()[_0x4d77[290]](_0x66a6x1e[_0x4d77[294]],_0x4d77[289])[_0x4d77[78]](_0x4d77[171]),ContactId:_0x66a6x71[_0x4d77[246]],ListId:_0x66a6x71[_0x4d77[291]],VoiceQueueId:_0x66a6x71[_0x4d77[248]]|| undefined,CampaignId:_0x66a6x71[_0x4d77[250]]|| undefined})[_0x4d77[125]](loggerCatch(_0x4d77[293]))};break;case 8:if(_0x66a6x71[_0x4d77[283]]>= _0x66a6x1e[_0x4d77[295]]- 1){return true}else {this[_0x4d77[133]]({active:false,countcongestionretry:_0x66a6x71[_0x4d77[283]]+= 1,scheduledat:moment()[_0x4d77[290]](_0x66a6x1e[_0x4d77[297]],_0x4d77[289])[_0x4d77[78]](_0x4d77[171]),ContactId:_0x66a6x71[_0x4d77[246]],ListId:_0x66a6x71[_0x4d77[291]],VoiceQueueId:_0x66a6x71[_0x4d77[248]]|| undefined,CampaignId:_0x66a6x71[_0x4d77[250]]|| undefined})[_0x4d77[125]](loggerCatch(_0x4d77[296]))};break;default:return true}};Dialer[_0x4d77[123]][_0x4d77[280]]= function(_0x66a6x25,_0x66a6x1e,_0x66a6x32){var _0x66a6x61=this;var _0x66a6x71= new History(_0x66a6x25);return  new BPromise(function(_0x66a6x6b,_0x66a6x29){if(_[_0x4d77[56]](_0x66a6x1e)&& _0x4d77[234]!==  typeof _0x66a6x1e){return _0x66a6x29(msgResponse(_0x4d77[298],_0x4d77[194],_0x4d77[299]))};if(_[_0x4d77[56]](_0x66a6x32)&& _0x4d77[234]!==  typeof _0x66a6x32){return _0x66a6x29(msgResponse(_0x4d77[298],_0x4d77[194],_0x4d77[300]))};switch(_0x66a6x32[_0x4d77[325]]){case _0x4d77[307]:_0x66a6x1e[_0x4d77[301]]+= 1;_0x66a6x71[_0x4d77[163]]= 0;_0x66a6x71[_0x4d77[164]]= _0x4d77[302];_0x66a6x61[_0x4d77[142]](_0x66a6x71)[_0x4d77[125]](loggerCatch(_0x4d77[303]));if(_0x66a6x61[_0x4d77[281]](0,_0x66a6x25,_0x66a6x1e)){if(_0x66a6x71[_0x4d77[282]]+ _0x66a6x71[_0x4d77[283]]+ _0x66a6x71[_0x4d77[284]]>= _0x66a6x1e[_0x4d77[285]]){_0x66a6x61[_0x4d77[305]](_0x66a6x71,_0x66a6x6b,_0x66a6x29,_0x4d77[304])}else {_0x66a6x61[_0x4d77[306]](_0x66a6x71,_0x66a6x6b,_0x66a6x29,_0x4d77[304])}};break;case _0x4d77[313]:_0x66a6x1e[_0x4d77[308]]+= 1;_0x66a6x71[_0x4d77[163]]= 3;_0x66a6x71[_0x4d77[164]]= _0x4d77[309];_0x66a6x71[_0x4d77[284]]+= 1;_0x66a6x71[_0x4d77[310]]+= 1;_0x66a6x61[_0x4d77[142]](_0x66a6x71)[_0x4d77[125]](loggerCatch(_0x4d77[311]));if(_0x66a6x61[_0x4d77[281]](3,_0x66a6x25,_0x66a6x1e)){if(_0x66a6x71[_0x4d77[284]]>= _0x66a6x1e[_0x4d77[286]]){_0x66a6x61[_0x4d77[306]](_0x66a6x71,_0x66a6x6b,_0x66a6x29,_0x4d77[312])}else {_0x66a6x61[_0x4d77[305]](_0x66a6x71,_0x66a6x6b,_0x66a6x29,_0x4d77[312])}};break;case _0x4d77[318]:_0x66a6x1e[_0x4d77[314]]+= 1;_0x66a6x71[_0x4d77[163]]= 5;_0x66a6x71[_0x4d77[164]]= _0x4d77[315];_0x66a6x71[_0x4d77[282]]+= 1;_0x66a6x71[_0x4d77[310]]+= 1;_0x66a6x61[_0x4d77[142]](_0x66a6x71)[_0x4d77[125]](loggerCatch(_0x4d77[316]));if(_0x66a6x61[_0x4d77[281]](5,_0x66a6x25,_0x66a6x1e)){if(_0x66a6x71[_0x4d77[282]]>= _0x66a6x1e[_0x4d77[292]]){_0x66a6x61[_0x4d77[306]](_0x66a6x71,_0x66a6x6b,_0x66a6x29,_0x4d77[317])}else {_0x66a6x61[_0x4d77[305]](_0x66a6x71,_0x66a6x6b,_0x66a6x29,_0x4d77[317])}};break;case _0x4d77[323]:_0x66a6x1e[_0x4d77[319]]+= 1;_0x66a6x71[_0x4d77[163]]= 8;_0x66a6x71[_0x4d77[164]]= _0x4d77[320];_0x66a6x71[_0x4d77[283]]+= 1;_0x66a6x71[_0x4d77[310]]+= 1;_0x66a6x61[_0x4d77[142]](_0x66a6x71)[_0x4d77[125]](loggerCatch(_0x4d77[321]));if(_0x66a6x61[_0x4d77[281]](8,_0x66a6x25,_0x66a6x1e)){if(_0x66a6x71[_0x4d77[283]]>= _0x66a6x1e[_0x4d77[295]]){_0x66a6x61[_0x4d77[306]](_0x66a6x71,_0x66a6x6b,_0x66a6x29,_0x4d77[322])}else {_0x66a6x61[_0x4d77[305]](_0x66a6x71,_0x66a6x6b,_0x66a6x29,_0x4d77[322])}};break;default:_0x66a6x1e[_0x4d77[324]]+= 1;_0x66a6x71[_0x4d77[163]]= 12;_0x66a6x71[_0x4d77[164]]= _0x66a6x32[_0x4d77[325]];_0x66a6x61[_0x4d77[142]](_0x66a6x71)[_0x4d77[125]](loggerCatch(_0x4d77[326]));if(_0x66a6x61[_0x4d77[281]](_0x66a6x32[_0x4d77[325]],_0x66a6x25,_0x66a6x1e)){if(_0x66a6x71[_0x4d77[282]]+ _0x66a6x71[_0x4d77[283]]+ _0x66a6x71[_0x4d77[284]]>= _0x66a6x1e[_0x4d77[285]]){_0x66a6x61[_0x4d77[305]](_0x66a6x71,_0x66a6x6b,_0x66a6x29,_0x66a6x32[_0x4d77[325]])}else {_0x66a6x61[_0x4d77[306]](_0x66a6x71,_0x66a6x6b,_0x66a6x29,_0x66a6x32[_0x4d77[325]])}}}})};Dialer[_0x4d77[123]][_0x4d77[305]]= function(_0x66a6x71,_0x66a6x6b,_0x66a6x29,_0x66a6x27){var _0x66a6x73= new Final(_0x66a6x71);_0x66a6x73[_0x4d77[163]]= 15;_0x66a6x73[_0x4d77[164]]= _0x4d77[327];this[_0x4d77[306]](_0x66a6x73,_0x66a6x6b,_0x66a6x29,_0x66a6x27)};Dialer[_0x4d77[123]][_0x4d77[306]]= function(_0x66a6x71,_0x66a6x6b,_0x66a6x29,_0x66a6x27){this[_0x4d77[140]](_0x66a6x71)[_0x4d77[126]](function(_0x66a6x38){return _0x66a6x6b(msgResponse(_0x4d77[298],_0x4d77[149],_0x66a6x27))})[_0x4d77[125]](function(_0x66a6x2a){return _0x66a6x29(msgResponse(_0x4d77[328],_0x4d77[194],_0x4d77[329]))})};Dialer[_0x4d77[123]][_0x4d77[8]]= function(_0x66a6x37){var _0x66a6x61=this;var _0x66a6x74=_0x66a6x37[_0x4d77[330]]/ 100;var _0x66a6x75=_0x66a6x37[_0x4d77[178]]/ (_0x66a6x37[_0x4d77[178]]+ _0x66a6x37[_0x4d77[161]]);var _0x66a6x76=_0x66a6x37[_0x4d77[230]]- _0x66a6x37[_0x4d77[331]]- _0x66a6x37[_0x4d77[114]]- _0x66a6x37[_0x4d77[102]]- _0x66a6x37[_0x4d77[113]];var _0x66a6x77=(_0x66a6x37[_0x4d77[230]]- _0x66a6x37[_0x4d77[331]])* _0x66a6x37[_0x4d77[332]];var _0x66a6x78=Math[_0x4d77[337]](_0x66a6x37[_0x4d77[333]]* _0x66a6x37[_0x4d77[334]]* _0x66a6x37[_0x4d77[335]]* _0x66a6x37[_0x4d77[336]]);if(_[_0x4d77[56]](_0x66a6x37[_0x4d77[40]])){loggerPredictive[_0x4d77[86]](_0x4d77[338]);if(!_[_0x4d77[56]](_0x66a6x37[_0x4d77[39]])){_0x66a6x37[_0x4d77[39]]= undefined;loggerPredictive[_0x4d77[100]](_0x4d77[339],_0x4d77[340])};if(!_[_0x4d77[56]](_0x66a6x37[_0x4d77[95]])){loggerPredictive[_0x4d77[100]](_0x4d77[339],_0x4d77[341]);clearInterval(_0x66a6x37[_0x4d77[95]]);_0x66a6x37[_0x4d77[95]]= undefined};_0x66a6x37[_0x4d77[40]]= moment()[_0x4d77[78]](_0x4d77[171]);loggerPredictive[_0x4d77[86]](_0x4d77[342],_0x66a6x37[_0x4d77[40]],_0x66a6x37[_0x4d77[59]]);this[_0x4d77[217]](_0x66a6x37,1)}else {if(ifInterval(_0x66a6x37[_0x4d77[343]],_0x66a6x37[_0x4d77[40]])){this[_0x4d77[217]](_0x66a6x37,1);loggerPredictiveCalls[_0x4d77[86]](_0x4d77[344],_0x66a6x37[_0x4d77[40]],_0x66a6x37[_0x4d77[59]]);_0x66a6x37[_0x4d77[333]]= 0;_0x66a6x37[_0x4d77[179]]= 0}else {if((_0x66a6x74< _0x66a6x75)&& _0x66a6x37[_0x4d77[345]]=== _0x4d77[346]){freeVariablesPredictive(_0x66a6x37);loggerPredictive[_0x4d77[86]](_0x4d77[347],_0x4d77[348],_0x66a6x75,_0x4d77[40],_0x66a6x37[_0x4d77[59]])}else {if(_0x66a6x76> _0x66a6x77){freeVariablesPredictive(_0x66a6x37);loggerPredictive[_0x4d77[86]](_0x4d77[349],_0x4d77[350],_0x66a6x76,_0x4d77[351],_0x66a6x77)}else {if((_0x66a6x78)< _0x66a6x37[_0x4d77[179]]&& _0x66a6x37[_0x4d77[345]]=== _0x4d77[346]){freeVariablesPredictive(_0x66a6x37);loggerPredictive[_0x4d77[86]](_0x4d77[352],_0x4d77[353],_0x66a6x78,_0x4d77[354],_0x66a6x37[_0x4d77[179]],_0x4d77[40],_0x66a6x37[_0x4d77[59]])}else {if(!ifInterval(_0x66a6x37[_0x4d77[343]],_0x66a6x37[_0x4d77[40]])&& _[_0x4d77[56]](_0x66a6x37[_0x4d77[39]]) &&  !_[_0x4d77[56]](_0x66a6x37[_0x4d77[40]])){_0x66a6x37[_0x4d77[39]]= moment()[_0x4d77[78]](_0x4d77[171]);loggerPredictive[_0x4d77[86]](_0x4d77[355],_0x66a6x37[_0x4d77[39]],_0x66a6x37[_0x4d77[59]]);this[_0x4d77[130]](_0x66a6x37[_0x4d77[343]])[_0x4d77[126]](this[_0x4d77[358]](_0x66a6x37))[_0x4d77[126]](mergeDataErlangB(_0x66a6x37))[_0x4d77[126]](this[_0x4d77[357]](_0x66a6x37))[_0x4d77[125]](loggerCatchPredictive(_0x4d77[356],_0x66a6x37))}else {if(!ifInterval(_0x66a6x37[_0x4d77[343]],_0x66a6x37[_0x4d77[39]])){_0x66a6x37[_0x4d77[179]]= 0;_0x66a6x37[_0x4d77[39]]= moment()[_0x4d77[78]](_0x4d77[171]);loggerPredictive[_0x4d77[86]](_0x4d77[359],_0x66a6x37[_0x4d77[39]],_0x66a6x37[_0x4d77[59]]);clearInterval(_0x66a6x37[_0x4d77[95]]);_0x66a6x37[_0x4d77[95]]= undefined;this[_0x4d77[130]](_0x66a6x37[_0x4d77[343]])[_0x4d77[126]](this[_0x4d77[358]](_0x66a6x37))[_0x4d77[126]](mergeDataErlangB(_0x66a6x37))[_0x4d77[126]](this[_0x4d77[357]](_0x66a6x37))[_0x4d77[125]](loggerCatchPredictive(_0x4d77[356],_0x66a6x37))}}}}}}}};Dialer[_0x4d77[123]][_0x4d77[358]]= function(_0x66a6x37){var _0x66a6x61=this;return function(_0x66a6x38){return  new BPromise(function(_0x66a6x6b,_0x66a6x29){_[_0x4d77[93]](_0x66a6x37,_0x66a6x38[0]);if(checkGetDataPredictive(_0x66a6x38[0])){loggerPredictive[_0x4d77[86]](JSON[_0x4d77[69]](_0x66a6x38[0]));if(_0x66a6x37[_0x4d77[345]]=== _0x4d77[346]){return _0x66a6x61[_0x4d77[138]]()[_0x4d77[126]](function(_0x66a6x79){var _0x66a6x40=_0x66a6x37[_0x4d77[230]]- _0x66a6x79[0][_0x4d77[361]];var _0x66a6x5d=_0x66a6x37[_0x4d77[343]]* 60;var _0x66a6x7a=_0x66a6x38[0][_0x4d77[84]]+ _0x66a6x38[0][_0x4d77[87]];var _0x66a6x7b=((_0x66a6x38[0][_0x4d77[362]]+ _0x66a6x38[0][_0x4d77[177]]+ _0x66a6x38[0][_0x4d77[183]])/ _0x66a6x38[0][_0x4d77[83]]);var _0x66a6x7c=_0x66a6x37[_0x4d77[330]]/ 100;_0x66a6x37[_0x4d77[331]]= _0x66a6x79[0][_0x4d77[361]]|| 0;_0x66a6x37[_0x4d77[335]]= (_0x66a6x7b> 0)?_0x66a6x7b:1;return _0x66a6x61[_0x4d77[363]](_0x66a6x40,_0x66a6x5d,_0x66a6x7a,_0x66a6x7b,_0x66a6x7c)})[_0x4d77[126]](function(_0x66a6x38){return _0x66a6x6b(_0x66a6x38)})[_0x4d77[125]](function(_0x66a6x2a){return _0x66a6x29(msgResponse(_0x4d77[360],_0x4d77[194],JSON[_0x4d77[69]](_0x66a6x2a)))})};if(_0x66a6x37[_0x4d77[345]]=== _0x4d77[364]){return _0x66a6x61[_0x4d77[138]]()[_0x4d77[126]](function(_0x66a6x79){var _0x66a6x40=_0x66a6x37[_0x4d77[230]]- _0x66a6x79[0][_0x4d77[361]];var _0x66a6x5d=_0x66a6x37[_0x4d77[343]]* 60;var _0x66a6x7a=_0x66a6x38[0][_0x4d77[84]]+ _0x66a6x38[0][_0x4d77[87]];var _0x66a6x7b=((_0x66a6x38[0][_0x4d77[362]]+ _0x66a6x38[0][_0x4d77[177]]+ _0x66a6x38[0][_0x4d77[183]])/ _0x66a6x38[0][_0x4d77[83]]);var _0x66a6x7d=_0x66a6x37[_0x4d77[330]]/ 100;_0x66a6x37[_0x4d77[331]]= _0x66a6x79[0][_0x4d77[361]]|| 0;_0x66a6x37[_0x4d77[335]]= (_0x66a6x7b> 0)?_0x66a6x7b:1;return _0x66a6x61[_0x4d77[365]](_0x66a6x40,_0x66a6x5d,_0x66a6x7a,_0x66a6x7b,_0x66a6x7d)})[_0x4d77[126]](function(_0x66a6x38){return _0x66a6x6b(_0x66a6x38)})[_0x4d77[125]](function(_0x66a6x2a){return _0x66a6x29(msgResponse(_0x4d77[360],_0x4d77[194],JSON[_0x4d77[69]](_0x66a6x2a)))})}}else {return _0x66a6x29(msgResponse(_0x4d77[366],_0x4d77[194],_0x4d77[367]))}})}};Dialer[_0x4d77[123]][_0x4d77[357]]= function(_0x66a6x37){var _0x66a6x61=this;return function(){var _0x66a6x53=0;var _0x66a6x7e=Math[_0x4d77[337]](_0x66a6x37[_0x4d77[368]]* 1000);if(_0x66a6x7e> 0){loggerPredictive[_0x4d77[86]](_0x4d77[369],_0x66a6x7e);_0x66a6x37[_0x4d77[95]]= setInterval(function(){_0x66a6x61[_0x4d77[95]](_0x66a6x37);loggerPredictiveCalls[_0x4d77[86]](_0x4d77[370],_0x66a6x53+= 1)},_0x66a6x7e)}else {loggerPredictive[_0x4d77[86]](_0x4d77[371],_0x4d77[372],_0x66a6x7e)}}};Dialer[_0x4d77[123]][_0x4d77[373]]= function(_0x66a6x37,_0x66a6x5c){var _0x66a6x61=this;return function(_0x66a6x38){if(_[_0x4d77[66]](_0x66a6x38)){return _0x66a6x61[_0x4d77[232]](_0x66a6x37,_0x66a6x5c)}else {_0x66a6x37[_0x4d77[374]]+= 1;_0x66a6x37[_0x4d77[57]]= _0x4d77[375];var _0x66a6x25= new Action(_0x66a6x37,_0x66a6x5c);var _0x66a6x71= new History(_0x66a6x25);_0x66a6x71[_0x4d77[163]]= 13;_0x66a6x71[_0x4d77[164]]= _0x4d77[376];_0x66a6x71[_0x4d77[262]]= _0x66a6x25[_0x4d77[261]];_0x66a6x61[_0x4d77[142]](_0x66a6x71)[_0x4d77[125]](loggerCatch(_0x4d77[263]));_0x66a6x61[_0x4d77[140]](_0x66a6x71)[_0x4d77[125]](loggerCatch(_0x4d77[377]));throw _0x4d77[378]}}};Dialer[_0x4d77[123]][_0x4d77[225]]= function(_0x66a6x5a){var _0x66a6x61=this;var _0x66a6x52=[];var _0x66a6x55=_0x66a6x5a[_0x4d77[379]]- _0x66a6x5a[_0x4d77[102]];emitCampaignSummary(_0x66a6x5a);if(_0x66a6x55> 0){if(_0x66a6x55> this[_0x4d77[33]]){_0x66a6x55= this[_0x4d77[33]]};_0x66a6x5a[_0x4d77[102]]+= _0x66a6x55;this[_0x4d77[137]](_0x66a6x5a[_0x4d77[251]],_0x66a6x55)[_0x4d77[126]](function(_0x66a6x38){if(!checkContactEmpty(_0x66a6x38)){checkContactLowerLimitOriginate(_0x66a6x5a,_0x66a6x55,0);_0x66a6x5a[_0x4d77[57]]= _0x4d77[110];logger[_0x4d77[86]](_0x4d77[381]+ _0x66a6x5a[_0x4d77[59]])}else {checkContactLowerLimitOriginate(_0x66a6x5a,_0x66a6x55,_0x66a6x38[_0x4d77[101]]);_0x66a6x5a[_0x4d77[57]]= _0x4d77[382];for(var _0x66a6x7f=0;_0x66a6x7f< _0x66a6x38[_0x4d77[101]];_0x66a6x7f+= 1){_0x66a6x5a[_0x4d77[383]]+= 1;_0x66a6x61[_0x4d77[128]](_[_0x4d77[386]](_0x66a6x38[_0x66a6x7f],[_0x4d77[250],_0x4d77[385]]))[_0x4d77[126]](_0x66a6x61[_0x4d77[373]](_0x66a6x5a,_0x66a6x38[_0x66a6x7f]))[_0x4d77[125]](_0x66a6x61[_0x4d77[147]](_0x4d77[384],_0x66a6x5a))}}})[_0x4d77[125]](loggerGetContactDialer(_0x4d77[380],_0x66a6x5a,_0x66a6x55))}};Dialer[_0x4d77[123]][_0x4d77[217]]= function(_0x66a6x37,_0x66a6x80){var _0x66a6x61=this;var _0x66a6x81=_0x66a6x80>= 1?_0x66a6x80:1;var _0x66a6x52=[];var _0x66a6x55=Math[_0x4d77[337]](_0x66a6x37[_0x4d77[115]]* _0x66a6x81)- _0x66a6x37[_0x4d77[102]];emitVoiceQueueSummary(_0x66a6x37);if(_0x66a6x37[_0x4d77[387]]> 0){var _0x66a6x82=_0x66a6x37[_0x4d77[387]]- _0x66a6x37[_0x4d77[102]]- _0x66a6x37[_0x4d77[113]];if(_0x66a6x55> _0x66a6x82){_0x66a6x55= _0x66a6x82}};if(_0x66a6x55> 0){if(_0x66a6x55> this[_0x4d77[33]]){_0x66a6x55= this[_0x4d77[33]]};_0x66a6x37[_0x4d77[102]]+= _0x66a6x55;this[_0x4d77[135]](_0x66a6x37[_0x4d77[251]],_0x66a6x55)[_0x4d77[126]](function(_0x66a6x38){if(!checkContactEmpty(_0x66a6x38)){checkContactLowerLimitOriginate(_0x66a6x37,_0x66a6x55,0);_0x66a6x61[_0x4d77[122]](_0x66a6x37)[_0x4d77[126]](sendMessageReschedule(_0x66a6x37))[_0x4d77[125]](loggerCatch(_0x4d77[124]))}else {checkContactLowerLimitOriginate(_0x66a6x37,_0x66a6x55,_0x66a6x38[_0x4d77[101]]);_0x66a6x37[_0x4d77[57]]= _0x4d77[382];for(var _0x66a6x7f=0;_0x66a6x7f< _0x66a6x38[_0x4d77[101]];_0x66a6x7f+= 1){_0x66a6x61[_0x4d77[128]](_[_0x4d77[386]](_0x66a6x38[_0x66a6x7f],[_0x4d77[248],_0x4d77[385]]))[_0x4d77[126]](_0x66a6x61[_0x4d77[373]](_0x66a6x37,_0x66a6x38[_0x66a6x7f]))[_0x4d77[125]](_0x66a6x61[_0x4d77[147]](_0x4d77[389],_0x66a6x37))}}})[_0x4d77[125]](loggerGetContactDialer(_0x4d77[388],_0x66a6x37,_0x66a6x55))}};Dialer[_0x4d77[123]][_0x4d77[95]]= function(_0x66a6x37){var _0x66a6x61=this;if(_0x66a6x37[_0x4d77[387]]> 0){var _0x66a6x82=_0x66a6x37[_0x4d77[387]]- _0x66a6x37[_0x4d77[102]]- _0x66a6x37[_0x4d77[113]];if(_0x66a6x82> 0){this[_0x4d77[390]](_0x66a6x37)}else {loggerPredictiveCalls[_0x4d77[86]](_0x4d77[391])}}else {this[_0x4d77[390]](_0x66a6x37)}};Dialer[_0x4d77[123]][_0x4d77[390]]= function(_0x66a6x37){var _0x66a6x61=this;_0x66a6x37[_0x4d77[102]]+= 1;this[_0x4d77[135]](_0x66a6x37[_0x4d77[251]],1)[_0x4d77[126]](function(_0x66a6x38){if(!checkContactEmpty(_0x66a6x38)){checkContactLowerLimitOriginate(_0x66a6x37,1,0);_0x66a6x61[_0x4d77[122]](_0x66a6x37)[_0x4d77[126]](sendMessageReschedule(_0x66a6x37))[_0x4d77[125]](loggerCatch(_0x4d77[124]))}else {_0x66a6x37[_0x4d77[57]]= _0x4d77[382];_0x66a6x61[_0x4d77[128]](_[_0x4d77[386]](_0x66a6x38[0],[_0x4d77[248],_0x4d77[385]]))[_0x4d77[126]](_0x66a6x61[_0x4d77[373]](_0x66a6x37,_0x66a6x38[0]))[_0x4d77[125]](_0x66a6x61[_0x4d77[147]](_0x4d77[393],_0x66a6x37))}})[_0x4d77[125]](loggerGetContactDialer(_0x4d77[392],_0x66a6x37,1));emitVoiceQueueSummary(_0x66a6x37)};Dialer[_0x4d77[123]][_0x4d77[363]]= function(_0x66a6x40,_0x66a6x5d,_0x66a6x7a,_0x66a6x83,_0x66a6x7c,_0x66a6x84){loggerPredictive[_0x4d77[86]](_0x4d77[394],_0x4d77[395],_0x66a6x40,_0x4d77[396],_0x66a6x5d,_0x4d77[397],_0x66a6x7a,_0x4d77[398],_0x66a6x83,_0x4d77[399],_0x66a6x7c);return  new BPromise(function(_0x66a6x6b,_0x66a6x29){if(_0x66a6x40<= 0|| isNaN(_0x66a6x40)){return _0x66a6x29(msgResponse(_0x4d77[394],_0x4d77[68],_0x4d77[400]+ _0x66a6x40))};if(_0x66a6x7a<= 0|| isNaN(_0x66a6x7a)){return _0x66a6x29(msgResponse(_0x4d77[394],_0x4d77[68],_0x4d77[401]+ _0x66a6x7a))};if(_0x66a6x83<= 0|| isNaN(_0x66a6x83)){return _0x66a6x29(msgResponse(_0x4d77[394],_0x4d77[68],_0x4d77[402]+ _0x66a6x83))};if(_0x66a6x5d<= 0|| isNaN(_0x66a6x5d)){return _0x66a6x29(msgResponse(_0x4d77[394],_0x4d77[68],_0x4d77[403]+ _0x66a6x5d))};if(_0x66a6x7c<= 0|| isNaN(_0x66a6x7c)){return _0x66a6x29(msgResponse(_0x4d77[394],_0x4d77[68],_0x4d77[404]+ _0x66a6x7c))};_0x66a6x84= _0x66a6x84|| 0.0;var _0x66a6x85=1.0/ _0x66a6x7a;var _0x66a6x3f=0.0;var _0x66a6x86=0.0;var _0x66a6x2d=0.0;var _0x66a6x87=0.0;for(var _0x66a6x53=0;_0x66a6x2d< _0x66a6x7c;_0x66a6x53+= 1){_0x66a6x86= _0x66a6x53/ _0x66a6x5d;_0x66a6x3f= ((_0x66a6x83* _0x66a6x86)+ _0x66a6x84)/ _0x66a6x85;_0x66a6x2d= erlangb(_0x66a6x3f,_0x66a6x40);_0x66a6x87= (_0x66a6x3f/ _0x66a6x40)* (1- erlangb(_0x66a6x3f,_0x66a6x40))};return _0x66a6x6b({erlangCalls:_0x66a6x53,erlangCallToSecond:(_0x66a6x5d/ _0x66a6x53),erlangAbandonmentRate:_0x66a6x2d,erlangBusyFactor:_0x66a6x87})})};Dialer[_0x4d77[123]][_0x4d77[365]]= function(_0x66a6x40,_0x66a6x5d,_0x66a6x7a,_0x66a6x83,_0x66a6x7d,_0x66a6x84){loggerPredictive[_0x4d77[86]](_0x4d77[405],_0x4d77[395],_0x66a6x40,_0x4d77[396],_0x66a6x5d,_0x4d77[397],_0x66a6x7a,_0x4d77[398],_0x66a6x83,_0x4d77[406],_0x66a6x7d);return  new BPromise(function(_0x66a6x6b,_0x66a6x29){if(_0x66a6x40<= 0|| isNaN(_0x66a6x40)){return _0x66a6x29(msgResponse(_0x4d77[394],_0x4d77[68],_0x4d77[400]+ _0x66a6x40))};if(_0x66a6x7a<= 0|| isNaN(_0x66a6x7a)){return _0x66a6x29(msgResponse(_0x4d77[394],_0x4d77[68],_0x4d77[401]+ _0x66a6x7a))};if(_0x66a6x83<= 0|| isNaN(_0x66a6x83)){return _0x66a6x29(msgResponse(_0x4d77[394],_0x4d77[68],_0x4d77[402]+ _0x66a6x83))};if(_0x66a6x5d<= 0|| isNaN(_0x66a6x5d)){return _0x66a6x29(msgResponse(_0x4d77[394],_0x4d77[68],_0x4d77[403]+ _0x66a6x5d))};if(_0x66a6x7d<= 0|| isNaN(_0x66a6x7d)){return _0x66a6x29(msgResponse(_0x4d77[394],_0x4d77[68],_0x4d77[404]+ _0x66a6x7d))};_0x66a6x84= _0x66a6x84|| 0.0;var _0x66a6x85=1.0/ _0x66a6x7a;var _0x66a6x3f=0.0;var _0x66a6x86=0.0;var _0x66a6x2d=0.0;var _0x66a6x87=0.0;for(var _0x66a6x53=0;_0x66a6x87< _0x66a6x7d;_0x66a6x53+= 1){_0x66a6x86= _0x66a6x53/ _0x66a6x5d;_0x66a6x3f= ((_0x66a6x83* _0x66a6x86)+ _0x66a6x84)/ _0x66a6x85;_0x66a6x2d= erlangb(_0x66a6x3f,_0x66a6x40);_0x66a6x87= (_0x66a6x3f/ _0x66a6x40)* (1- erlangb(_0x66a6x3f,_0x66a6x40))};return _0x66a6x6b({erlangCalls:_0x66a6x53,erlangCallToSecond:(_0x66a6x5d/ _0x66a6x53),erlangAbandonmentRate:_0x66a6x2d,erlangBusyFactor:_0x66a6x87})})};module[_0x4d77[407]]= Dialer
\ No newline at end of file
diff --git a/server/services/ami/dialer/queueCallerAbandon.js b/server/services/ami/dialer/queueCallerAbandon.js
new file mode 100644 (file)
index 0000000..f8a00b0
--- /dev/null
@@ -0,0 +1 @@
+var _0xae0e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E\x74\x79\x70\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x62\x75\x73\x79\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x63\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x6E\x6F\x61\x6E\x73\x77\x65\x72\x72\x65\x74\x72\x79","\x63\x6F\x75\x6E\x74\x67\x6C\x6F\x62\x61\x6C","\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6E\x75\x6D\x62\x65\x72","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x72\x65\x73\x70\x6F\x6E\x73\x65\x74\x69\x6D\x65","\x64\x72\x6F\x70\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x72\x69\x6E\x67\x74\x69\x6D\x65","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x72\x65\x61\x73\x6F\x6E","\x63\x61\x6C\x6C\x62\x61\x63\x6B","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x75\x6E\x69\x71\x75\x65\x69\x64","\x63\x61\x6C\x6C\x62\x61\x63\x6B\x61\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x55\x73\x65\x72\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x43\x61\x6D\x70\x61\x69\x67\x6E\x49\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0xae0e[0];var util=require(_0xae0e[1]);var _=require(_0xae0e[2]);var moment=require(_0xae0e[3]);function getSeconds(_0xdba6x5,_0xdba6x6){var _0xdba6x7=moment(_0xdba6x5)[_0xae0e[4]](0);var _0xdba6x8=moment(_0xdba6x6)[_0xae0e[4]](0);return _0xdba6x7[_0xae0e[6]](_0xdba6x8,_0xae0e[5])}function QueueCallerAbandon(_0xdba6xa,_0xdba6xb){this[_0xae0e[7]]= _0xdba6xa[_0xae0e[7]];this[_0xae0e[8]]= _0xdba6xa[_0xae0e[8]];this[_0xae0e[9]]= (_0xdba6xa[_0xae0e[8]]=== _0xae0e[10])?_0xae0e[11]:_0xdba6xa[_0xae0e[8]];this[_0xae0e[12]]= _0xdba6xa[_0xae0e[12]];this[_0xae0e[13]]= _0xdba6xa[_0xae0e[13]];this[_0xae0e[14]]= _0xdba6xa[_0xae0e[14]];this[_0xae0e[15]]= _0xdba6xa[_0xae0e[12]]+ _0xdba6xa[_0xae0e[13]]+ _0xdba6xa[_0xae0e[14]];this[_0xae0e[16]]= _0xdba6xb[_0xae0e[16]];this[_0xae0e[17]]= _0xdba6xa[_0xae0e[18]];this[_0xae0e[19]]= _0xdba6xa[_0xae0e[20]];this[_0xae0e[21]]= _0xdba6xa[_0xae0e[21]];this[_0xae0e[22]]= _0xdba6xa[_0xae0e[22]];this[_0xae0e[23]]= _0xdba6xa[_0xae0e[23]];this[_0xae0e[24]]= this[_0xae0e[23]];this[_0xae0e[25]]= getSeconds(_0xdba6xa[_0xae0e[22]],_0xdba6xa[_0xae0e[21]]);this[_0xae0e[26]]= getSeconds(this[_0xae0e[23]],_0xdba6xa[_0xae0e[22]]);this[_0xae0e[27]]= 0;this[_0xae0e[11]]= _0xdba6xb[_0xae0e[11]];this[_0xae0e[28]]= _0xdba6xb[_0xae0e[29]];this[_0xae0e[30]]= _0xdba6xb[_0xae0e[30]];this[_0xae0e[31]]= _0xdba6xa[_0xae0e[31]];this[_0xae0e[32]]= _0xdba6xa[_0xae0e[32]];this[_0xae0e[33]]= _0xdba6xa[_0xae0e[33]];this[_0xae0e[34]]= _0xdba6xa[_0xae0e[34]];this[_0xae0e[35]]= _0xdba6xa[_0xae0e[35]];this[_0xae0e[36]]= _0xdba6xa[_0xae0e[36]];this[_0xae0e[37]]= _0xdba6xa[_0xae0e[37]];this[_0xae0e[38]]= _0xdba6xa[_0xae0e[38]]}module[_0xae0e[39]]= QueueCallerAbandon
\ No newline at end of file
diff --git a/server/services/ami/index.js b/server/services/ami/index.js
new file mode 100644 (file)
index 0000000..f94daca
--- /dev/null
@@ -0,0 +1 @@
+var _0x2fd9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2F\x73\x65\x72\x76\x65\x72","\x2E\x2F\x72\x65\x61\x6C\x74\x69\x6D\x65","\x2E\x2F\x72\x65\x70\x6F\x72\x74","\x2E\x2F\x61\x63\x77","\x2E\x2F\x74\x72\x69\x67\x67\x65\x72","\x2E\x2F\x64\x69\x61\x6C\x65\x72","\x2E\x2F\x72\x70\x63\x2F\x75\x73\x65\x72","\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x72\x70\x63\x2F\x74\x72\x75\x6E\x6B","\x2E\x2F\x72\x70\x63\x2F\x74\x72\x69\x67\x67\x65\x72","\x2E\x2F\x72\x70\x63\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2F\x72\x70\x63\x2F\x63\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x2E\x2F\x72\x70\x63\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E","\x2E\x2F\x72\x70\x63\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x7A\x65\x6E\x64\x65\x73\x6B","\x2E\x2F\x72\x70\x63\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x2E\x2F\x72\x70\x63\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x73\x75\x67\x61\x72\x63\x72\x6D","\x2E\x2F\x72\x70\x63\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E\x73\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x68\x6F\x75\x72","\x67\x65\x74","\x74\x68\x65\x6E","\x69\x6E\x69\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x69\x6E\x69\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x67\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x67\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x67\x65\x74\x56\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x69\x6E\x69\x74\x54\x72\x75\x6E\x6B\x73","\x67\x65\x74\x54\x72\x75\x6E\x6B\x73","\x69\x6E\x69\x74\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x67\x65\x74\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x69\x6E\x69\x74\x41\x67\x65\x6E\x74\x73","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x72\x65\x73\x6F\x6C\x76\x65","\x6C\x6F\x67","\x63\x61\x74\x63\x68","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73","\x67\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73","\x69\x6E\x69\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x73\x79\x6E\x63","\x6C\x69\x73\x74\x65\x6E"];_0x2fd9[0];var BPromise=require(_0x2fd9[1]);var util=require(_0x2fd9[2]);var moment=require(_0x2fd9[3]);var server=require(_0x2fd9[4]);var Realtime=require(_0x2fd9[5]);var Report=require(_0x2fd9[6]);var Acw=require(_0x2fd9[7]);var Trigger=require(_0x2fd9[8]);var Dialer=require(_0x2fd9[9]);var user=require(_0x2fd9[10]);var voiceQueue=require(_0x2fd9[11]);var voiceQueueReport=require(_0x2fd9[12]);var voiceCallReport=require(_0x2fd9[13]);var trunk=require(_0x2fd9[14]);var trigger=require(_0x2fd9[15]);var template=require(_0x2fd9[16]);var cmHopperHistory=require(_0x2fd9[17]);var campaign=require(_0x2fd9[18]);var zendesk=require(_0x2fd9[19]);var salesforce=require(_0x2fd9[20]);var sugarcrm=require(_0x2fd9[21]);var freshdesk=require(_0x2fd9[22]);var realtime= new Realtime();var report= new Report(realtime);var acw= new Acw(realtime);var voiceTrigger= new Trigger(realtime);var dialer= new Dialer(realtime);var isTrue=true;var initP=true;function ifMidnight(){if(moment()[_0x2fd9[24]](_0x2fd9[23])=== 0&& initP){initP= false;isTrue= true;initParams()};if(moment()[_0x2fd9[24]](_0x2fd9[23])=== 1&& isTrue){isTrue= false;initP= true}}function initRealtime(){ifMidnight();return BPromise[_0x2fd9[48]]()[_0x2fd9[25]](user[_0x2fd9[47]]())[_0x2fd9[25]](realtime[_0x2fd9[46]]())[_0x2fd9[25]](user[_0x2fd9[45]]())[_0x2fd9[25]](realtime[_0x2fd9[44]]())[_0x2fd9[25]](trunk[_0x2fd9[43]]())[_0x2fd9[25]](realtime[_0x2fd9[42]]())[_0x2fd9[25]](voiceQueue[_0x2fd9[41]]())[_0x2fd9[25]](realtime[_0x2fd9[40]]())[_0x2fd9[25]](trigger[_0x2fd9[39]]())[_0x2fd9[25]](realtime[_0x2fd9[38]]())[_0x2fd9[25]](template[_0x2fd9[37]]())[_0x2fd9[25]](realtime[_0x2fd9[36]]())[_0x2fd9[25]](zendesk[_0x2fd9[35]]())[_0x2fd9[25]](realtime[_0x2fd9[34]]())[_0x2fd9[25]](salesforce[_0x2fd9[33]]())[_0x2fd9[25]](realtime[_0x2fd9[32]]())[_0x2fd9[25]](sugarcrm[_0x2fd9[31]]())[_0x2fd9[25]](realtime[_0x2fd9[30]]())[_0x2fd9[25]](freshdesk[_0x2fd9[29]]())[_0x2fd9[25]](realtime[_0x2fd9[28]]())[_0x2fd9[25]](campaign[_0x2fd9[27]]())[_0x2fd9[25]](realtime[_0x2fd9[26]]())[_0x2fd9[25]](function(){return realtime})}function initParams(){return BPromise[_0x2fd9[48]]()[_0x2fd9[25]](voiceQueueReport[_0x2fd9[58]]())[_0x2fd9[25]](realtime[_0x2fd9[57]]())[_0x2fd9[25]](cmHopperHistory[_0x2fd9[56]]())[_0x2fd9[25]](realtime[_0x2fd9[55]]())[_0x2fd9[25]](cmHopperHistory[_0x2fd9[54]]())[_0x2fd9[25]](realtime[_0x2fd9[53]]())[_0x2fd9[25]](voiceCallReport[_0x2fd9[52]]())[_0x2fd9[25]](realtime[_0x2fd9[51]]())[_0x2fd9[25]](function(_0x25a3x22){})[_0x2fd9[50]](function(_0x25a3x21){console[_0x2fd9[49]](_0x25a3x21)})}return server[_0x2fd9[60]](realtime)[_0x2fd9[25]](function(_0x25a3x23){console[_0x2fd9[49]](_0x25a3x23);return initRealtime()})[_0x2fd9[25]](function(){return initParams()})[_0x2fd9[25]](function(){report[_0x2fd9[59]]();setInterval(initRealtime,5000)})[_0x2fd9[50]](function(_0x25a3x21){console[_0x2fd9[49]](_0x25a3x21)})
\ No newline at end of file
diff --git a/server/services/ami/model/agent.js b/server/services/ami/model/agent.js
new file mode 100644 (file)
index 0000000..c8207f2
--- /dev/null
@@ -0,0 +1 @@
+var _0x8a25=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x65\x6D\x61\x69\x6C","\x73\x74\x61\x74\x65","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x73\x74\x61\x74\x65\x54\x69\x6D\x65","\x73\x74\x61\x74\x75\x73","\x61\x64\x64\x72\x65\x73\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x8a25[0];function Agent(_0x845ax2){this[_0x8a25[1]]= _0x845ax2[_0x8a25[1]]|| 0;this[_0x8a25[2]]= _0x845ax2[_0x8a25[2]]|| _0x8a25[3];this[_0x8a25[4]]= _0x845ax2[_0x8a25[4]]|| _0x8a25[3];this[_0x8a25[5]]= _0x8a25[6];this[_0x8a25[7]]= 0;this[_0x8a25[8]]= _0x8a25[6];this[_0x8a25[9]]= _0x8a25[3]}module[_0x8a25[10]]= Agent
\ No newline at end of file
diff --git a/server/services/ami/model/campaign.js b/server/services/ami/model/campaign.js
new file mode 100644 (file)
index 0000000..e1c5df0
--- /dev/null
@@ -0,0 +1 @@
+var _0x2ce8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x74\x79\x70\x65","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x69\x76\x72\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x69\x76\x72\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x44\x61\x79\x73","\x6D\x65\x73\x73\x61\x67\x65","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x4F\x6E\x65\x4E\x6F\x74\x41\x63\x74\x69\x76\x65","\x61\x63\x74\x69\x76\x65","\x6C\x69\x6D\x69\x74\x43\x61\x6C\x6C\x73","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x54\x72\x75\x6E\x6B","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x50\x72\x6F\x6A\x65\x63\x74","\x65\x78\x70\x6F\x72\x74\x73"];_0x2ce8[0];function Campaign(_0xba09x2){this[_0x2ce8[1]]= _0xba09x2[_0x2ce8[1]]|| 0;this[_0x2ce8[2]]= _0xba09x2[_0x2ce8[2]]|| _0x2ce8[3];this[_0x2ce8[4]]= _0xba09x2[_0x2ce8[4]]|| _0x2ce8[5];this[_0x2ce8[6]]= 0;this[_0x2ce8[7]]= 0;this[_0x2ce8[8]]= 0;this[_0x2ce8[9]]= _0x2ce8[3];this[_0x2ce8[10]]= true;this[_0x2ce8[11]]= _0xba09x2[_0x2ce8[11]];this[_0x2ce8[12]]= _0xba09x2[_0x2ce8[12]];this[_0x2ce8[13]]= _0xba09x2[_0x2ce8[13]]|| null;this[_0x2ce8[14]]= _0xba09x2[_0x2ce8[14]]?_0xba09x2[_0x2ce8[14]]:null;this[_0x2ce8[15]]= _0xba09x2[_0x2ce8[15]];this[_0x2ce8[16]]= _0xba09x2[_0x2ce8[16]];this[_0x2ce8[17]]= _0xba09x2[_0x2ce8[17]]|| 30;this[_0x2ce8[18]]= _0xba09x2[_0x2ce8[18]];this[_0x2ce8[19]]= _0xba09x2[_0x2ce8[19]];this[_0x2ce8[20]]= _0xba09x2[_0x2ce8[20]];this[_0x2ce8[21]]= _0xba09x2[_0x2ce8[21]];this[_0x2ce8[22]]= _0xba09x2[_0x2ce8[22]];this[_0x2ce8[23]]= _0xba09x2[_0x2ce8[23]];this[_0x2ce8[24]]= _0xba09x2[_0x2ce8[24]];this[_0x2ce8[25]]= _0xba09x2[_0x2ce8[25]]?_0xba09x2[_0x2ce8[25]]:undefined;this[_0x2ce8[26]]= _0xba09x2[_0x2ce8[26]]?_0xba09x2[_0x2ce8[26]]:undefined;this[_0x2ce8[27]]= _0xba09x2[_0x2ce8[27]]?_0xba09x2[_0x2ce8[27]]:undefined;this[_0x2ce8[28]]= _0xba09x2[_0x2ce8[28]]?_0xba09x2[_0x2ce8[28]]:undefined;this[_0x2ce8[29]]= _0xba09x2[_0x2ce8[28]]?_0xba09x2[_0x2ce8[28]][_0x2ce8[2]]:undefined}module[_0x2ce8[30]]= Campaign
\ No newline at end of file
diff --git a/server/services/ami/model/channel.js b/server/services/ami/model/channel.js
new file mode 100644 (file)
index 0000000..fac607f
--- /dev/null
@@ -0,0 +1 @@
+var _0x5b31=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x63\x68\x61\x6E\x6E\x65\x6C","","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x65\x78\x74\x65\x6E","\x61\x6E\x73\x77\x65\x72\x65\x64","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x6C\x61\x73\x74\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6C\x61\x73\x74\x64\x61\x74\x61","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x74\x79\x70\x65","\x74\x61\x67","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x6D\x6F\x6E\x69\x74\x6F\x72","\x6D\x6F\x6E\x69\x74\x6F\x72\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x71\x75\x65\x75\x65","\x65\x78\x70\x6F\x72\x74\x73"];_0x5b31[0];function Channel(){this[_0x5b31[1]]= null;this[_0x5b31[2]]= _0x5b31[3];this[_0x5b31[4]]= _0x5b31[3];this[_0x5b31[5]]= 0;this[_0x5b31[6]]= _0x5b31[3];this[_0x5b31[7]]= undefined;this[_0x5b31[8]]= undefined;this[_0x5b31[9]]= 0;this[_0x5b31[10]]= _0x5b31[3];this[_0x5b31[11]]= 0;this[_0x5b31[12]]= 0;this[_0x5b31[13]]= 0;this[_0x5b31[14]]= false;this[_0x5b31[15]]= null;this[_0x5b31[16]]= null;this[_0x5b31[17]]= false;this[_0x5b31[18]]= _0x5b31[3];this[_0x5b31[19]]= _0x5b31[3];this[_0x5b31[20]]= 0;this[_0x5b31[21]]= 0;this[_0x5b31[22]]= 0;this[_0x5b31[23]]= null;this[_0x5b31[24]]= null;this[_0x5b31[25]]= null;this[_0x5b31[26]]= false;this[_0x5b31[27]]= null;this[_0x5b31[28]]= null}module[_0x5b31[29]]= Channel
\ No newline at end of file
diff --git a/server/services/ami/model/freshdeskAccount.js b/server/services/ami/model/freshdeskAccount.js
new file mode 100644 (file)
index 0000000..ebaba33
--- /dev/null
@@ -0,0 +1 @@
+var _0x8ab8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x61\x70\x69\x4B\x65\x79","\x74\x6F\x6B\x65\x6E","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x8ab8[0];function FreshdeskAccount(_0xb2c0x2){this[_0x8ab8[1]]= _0xb2c0x2[_0x8ab8[1]]|| 0;this[_0x8ab8[2]]= _0xb2c0x2[_0x8ab8[2]]|| _0x8ab8[3];this[_0x8ab8[4]]= _0xb2c0x2[_0x8ab8[4]]|| _0x8ab8[3];this[_0x8ab8[5]]= _0xb2c0x2[_0x8ab8[6]]|| _0x8ab8[3];this[_0x8ab8[7]]= _0xb2c0x2[_0x8ab8[7]]|| _0x8ab8[3];this[_0x8ab8[8]]= _0xb2c0x2[_0x8ab8[8]]|| _0x8ab8[3];this[_0x8ab8[9]]= _0xb2c0x2[_0x8ab8[9]]|| {}}module[_0x8ab8[10]]= FreshdeskAccount
\ No newline at end of file
diff --git a/server/services/ami/model/queueReport.js b/server/services/ami/model/queueReport.js
new file mode 100644 (file)
index 0000000..7761554
--- /dev/null
@@ -0,0 +1 @@
+var _0x61e3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x71\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x6F\x75\x6E\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x68\x61\x6E\x6E\x65\x6C","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E","\x70\x72\x69\x6F\x72\x69\x74\x79","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x61\x73\x73\x69\x67\x6E\x65\x64","\x6C\x61\x73\x74\x41\x73\x73\x69\x67\x6E\x65\x64\x54\x6F","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x61e3[0];function QueueReport(){this[_0x61e3[1]]= _0x61e3[2];this[_0x61e3[3]]= _0x61e3[4];this[_0x61e3[5]]= _0x61e3[4];this[_0x61e3[6]]= _0x61e3[4];this[_0x61e3[7]]= _0x61e3[4];this[_0x61e3[8]]= null;this[_0x61e3[9]]= null;this[_0x61e3[10]]= 1;this[_0x61e3[11]]= 1;this[_0x61e3[12]]= false;this[_0x61e3[13]]= null;this[_0x61e3[14]]= false;this[_0x61e3[15]]= null;this[_0x61e3[16]]= false;this[_0x61e3[17]]= null;this[_0x61e3[18]]= 1;this[_0x61e3[19]]= _0x61e3[4];this[_0x61e3[20]]= _0x61e3[4];this[_0x61e3[21]]= _0x61e3[4];this[_0x61e3[22]]= _0x61e3[4];this[_0x61e3[23]]= _0x61e3[4];this[_0x61e3[24]]= _0x61e3[4];this[_0x61e3[25]]= _0x61e3[4];this[_0x61e3[26]]= 0;this[_0x61e3[27]]= false;this[_0x61e3[28]]= _0x61e3[4];this[_0x61e3[29]]= {}}module[_0x61e3[30]]= QueueReport
\ No newline at end of file
diff --git a/server/services/ami/model/salesforceAccount.js b/server/services/ami/model/salesforceAccount.js
new file mode 100644 (file)
index 0000000..1ac712e
--- /dev/null
@@ -0,0 +1 @@
+var _0xc3ed=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x70\x61\x73\x73\x77\x6F\x72\x64","\x63\x6C\x69\x65\x6E\x74\x49\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x73\x65\x63\x75\x72\x69\x74\x79\x54\x6F\x6B\x65\x6E","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xc3ed[0];function SalesforceAccount(_0xe36cx2){this[_0xc3ed[1]]= _0xe36cx2[_0xc3ed[1]]|| 0;this[_0xc3ed[2]]= _0xe36cx2[_0xc3ed[2]]|| _0xc3ed[3];this[_0xc3ed[4]]= _0xe36cx2[_0xc3ed[4]]|| _0xc3ed[3];this[_0xc3ed[5]]= _0xe36cx2[_0xc3ed[5]]|| _0xc3ed[3];this[_0xc3ed[6]]= _0xe36cx2[_0xc3ed[6]]|| _0xc3ed[3];this[_0xc3ed[7]]= _0xe36cx2[_0xc3ed[7]]|| _0xc3ed[3];this[_0xc3ed[8]]= _0xe36cx2[_0xc3ed[8]]|| _0xc3ed[3];this[_0xc3ed[9]]= _0xe36cx2[_0xc3ed[9]]|| _0xc3ed[3];this[_0xc3ed[10]]= _0xe36cx2[_0xc3ed[10]]|| _0xc3ed[3];this[_0xc3ed[11]]= _0xe36cx2[_0xc3ed[11]]|| {}}module[_0xc3ed[12]]= SalesforceAccount
\ No newline at end of file
diff --git a/server/services/ami/model/sugarcrmAccount.js b/server/services/ami/model/sugarcrmAccount.js
new file mode 100644 (file)
index 0000000..7a0dec4
--- /dev/null
@@ -0,0 +1 @@
+var _0x83c1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x83c1[0];function SugarcrmAccount(_0x7183x2){this[_0x83c1[1]]= _0x7183x2[_0x83c1[1]]|| 0;this[_0x83c1[2]]= _0x7183x2[_0x83c1[2]]|| _0x83c1[3];this[_0x83c1[4]]= _0x7183x2[_0x83c1[4]]|| _0x83c1[3];this[_0x83c1[5]]= _0x7183x2[_0x83c1[5]]|| _0x83c1[3];this[_0x83c1[6]]= _0x7183x2[_0x83c1[6]]|| _0x83c1[3];this[_0x83c1[7]]= _0x7183x2[_0x83c1[7]]|| _0x83c1[3];this[_0x83c1[8]]= _0x7183x2[_0x83c1[8]]|| {}}module[_0x83c1[9]]= SugarcrmAccount
\ No newline at end of file
diff --git a/server/services/ami/model/telephone.js b/server/services/ami/model/telephone.js
new file mode 100644 (file)
index 0000000..964f47b
--- /dev/null
@@ -0,0 +1 @@
+var _0xcaa8=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x73\x74\x61\x74\x65","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x73\x74\x61\x74\x65\x54\x69\x6D\x65","\x73\x74\x61\x74\x75\x73","\x61\x64\x64\x72\x65\x73\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0xcaa8[0];function Telephone(_0xf657x2){this[_0xcaa8[1]]= _0xf657x2[_0xcaa8[1]]|| 0;this[_0xcaa8[2]]= _0xf657x2[_0xcaa8[2]]|| _0xcaa8[3];this[_0xcaa8[4]]= _0xcaa8[5];this[_0xcaa8[6]]= 0;this[_0xcaa8[7]]= _0xcaa8[5];this[_0xcaa8[8]]= _0xcaa8[3]}module[_0xcaa8[9]]= Telephone
\ No newline at end of file
diff --git a/server/services/ami/model/template.js b/server/services/ami/model/template.js
new file mode 100644 (file)
index 0000000..281ae79
--- /dev/null
@@ -0,0 +1 @@
+var _0xd36b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x73\x75\x62\x6A\x65\x63\x74","\x68\x74\x6D\x6C","\x65\x78\x70\x6F\x72\x74\x73"];_0xd36b[0];function template(_0x8074x2){this[_0xd36b[1]]= _0x8074x2[_0xd36b[1]]|| 0;this[_0xd36b[2]]= _0x8074x2[_0xd36b[2]]|| _0xd36b[3];this[_0xd36b[4]]= _0x8074x2[_0xd36b[4]]|| _0xd36b[3];this[_0xd36b[5]]= _0x8074x2[_0xd36b[5]]|| _0xd36b[3]}module[_0xd36b[6]]= template
\ No newline at end of file
diff --git a/server/services/ami/model/trunk.js b/server/services/ami/model/trunk.js
new file mode 100644 (file)
index 0000000..9b15c63
--- /dev/null
@@ -0,0 +1 @@
+var _0x3ad2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x61\x63\x74\x69\x76\x65","\x6E\x61\x6D\x65","","\x73\x74\x61\x74\x65","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x73\x74\x61\x74\x75\x73","\x72\x65\x67\x69\x73\x74\x72\x79","\x3A","\x69\x6E\x64\x65\x78\x4F\x66","\x73\x70\x6C\x69\x74","\x68\x6F\x73\x74","\x70\x6F\x72\x74","\x64\x6F\x6D\x61\x69\x6E","\x64\x6F\x6D\x61\x69\x6E\x70\x6F\x72\x74","\x72\x65\x66\x72\x65\x73\x68","\x73\x74\x61\x74\x65\x52\x65\x67\x69\x73\x74\x72\x79","\x72\x65\x67\x69\x73\x74\x72\x61\x74\x69\x6F\x6E\x74\x69\x6D\x65","\x61\x64\x64\x72\x65\x73\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x3ad2[0];function Trunk(_0x2245x2){this[_0x3ad2[1]]= _0x2245x2[_0x3ad2[1]]|| 0;this[_0x3ad2[2]]= _0x2245x2[_0x3ad2[2]]|| false;this[_0x3ad2[3]]= _0x2245x2[_0x3ad2[3]]|| _0x3ad2[4];this[_0x3ad2[5]]= _0x3ad2[6];this[_0x3ad2[7]]= _0x3ad2[6];this[_0x3ad2[8]]= _0x2245x2[_0x3ad2[8]]&& _0x2245x2[_0x3ad2[8]][_0x3ad2[10]](_0x3ad2[9])?_0x2245x2[_0x3ad2[8]][_0x3ad2[11]](_0x3ad2[9])[0]:_0x3ad2[4];this[_0x3ad2[12]]= _0x3ad2[4];this[_0x3ad2[13]]= _0x3ad2[4];this[_0x3ad2[14]]= _0x3ad2[4];this[_0x3ad2[15]]= _0x3ad2[4];this[_0x3ad2[16]]= _0x3ad2[4];this[_0x3ad2[17]]= _0x3ad2[6];this[_0x3ad2[18]]= _0x3ad2[4];this[_0x3ad2[19]]= _0x3ad2[4]}module[_0x3ad2[20]]= Trunk
\ No newline at end of file
diff --git a/server/services/ami/model/voiceQueue.js b/server/services/ami/model/voiceQueue.js
new file mode 100644 (file)
index 0000000..35893e8
--- /dev/null
@@ -0,0 +1 @@
+var _0x6107=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x6E\x6F\x74\x5F\x69\x6E\x75\x73\x65","\x69\x6E\x75\x73\x65","\x62\x75\x73\x79","\x69\x6E\x76\x61\x6C\x69\x64","\x75\x6E\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x72\x69\x6E\x67\x69\x6E\x67","\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x6F\x6E\x68\x6F\x6C\x64","\x69\x64","\x6E\x61\x6D\x65","","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x77\x61\x69\x74\x69\x6E\x67","\x74\x61\x6C\x6B\x69\x6E\x67","\x74\x6F\x74\x61\x6C","\x61\x6E\x73\x77\x65\x72\x65\x64","\x73\x75\x6D\x44\x75\x72\x61\x74\x69\x6F\x6E","\x73\x75\x6D\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x73\x75\x6D\x42\x69\x6C\x6C\x61\x62\x6C\x65","\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x6C\x6F\x67\x67\x65\x64\x49\x6E","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x61\x63\x77","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x61\x75\x74\x6F\x50\x61\x75\x73\x65","\x61\x75\x74\x6F\x70\x61\x75\x73\x65","\x61\x6C\x6C","\x73\x65\x6E\x64\x4D\x65\x73\x73\x61\x67\x65\x4F\x6E\x65\x4E\x6F\x74\x41\x63\x74\x69\x76\x65","\x6D\x65\x73\x73\x61\x67\x65","\x6F\x72\x69\x67\x69\x6E\x61\x74\x65\x64","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x64\x69\x61\x6C\x41\x63\x74\x69\x76\x65","\x64\x69\x61\x6C\x4D\x65\x74\x68\x6F\x64","\x70\x72\x65\x76\x69\x65\x77","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x51\x75\x65\x75\x65","\x64\x69\x61\x6C\x50\x6F\x77\x65\x72\x4C\x65\x76\x65\x6C","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E","\x64\x72\x6F\x70\x52\x61\x74\x65","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E\x50\x65\x72\x63\x65\x6E\x74\x61\x67\x65","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x61\x6E\x6F\x6E\x79\x6D\x6F\x75\x73","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x4F\x70\x74\x69\x6F\x6E\x73","\x74\x54\x78\x58","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x50\x72\x6F\x6A\x65\x63\x74","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x54\x72\x75\x6E\x6B","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x41\x67\x69\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x75\x73\x79\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x53\x75\x63\x68\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x55\x6E\x6B\x6E\x6F\x77\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x46\x61\x69\x6C\x75\x72\x65\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x54\x69\x6D\x65\x6F\x75\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x41\x43\x53","\x73\x74\x61\x72\x74\x50\x72\x6F\x67\x72\x65\x73\x73\x69\x76\x65","\x73\x74\x61\x72\x74\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x68\x61\x6E\x64\x6C\x65\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x4D\x75\x6C\x74\x69\x70\x6C\x69\x63\x61\x74\x69\x76\x65\x46\x61\x63\x74\x6F\x72","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x6E\x73\x77\x65\x72\x65\x64\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73\x54\x69\x6D\x65\x6F\x75\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x48\x6F\x6C\x64\x74\x69\x6D\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x41\x76\x67\x54\x61\x6C\x6B\x74\x69\x6D\x65","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x50\x61\x75\x73\x65\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x4C\x6F\x77\x65\x72\x4C\x69\x6D\x69\x74","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x45\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x45\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73\x44\x72\x6F\x70\x70\x65\x64\x43\x61\x6C\x6C\x73","\x70\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C\x48\x69\x74\x52\x61\x74\x65","\x65\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x73","\x65\x72\x6C\x61\x6E\x67\x43\x61\x6C\x6C\x54\x6F\x53\x65\x63\x6F\x6E\x64","\x65\x72\x6C\x61\x6E\x67\x41\x62\x61\x6E\x64\x6F\x6E\x6D\x65\x6E\x74\x52\x61\x74\x65","\x65\x72\x6C\x61\x6E\x67\x42\x75\x73\x79\x46\x61\x63\x74\x6F\x72","\x65\x78\x70\x6F\x72\x74\x73"];_0x6107[0];var statusDesc=[_0x6107[1],_0x6107[2],_0x6107[3],_0x6107[4],_0x6107[5],_0x6107[6],_0x6107[7],_0x6107[8],_0x6107[9]];function VoiceQueue(_0x7888x3){this[_0x6107[10]]= _0x7888x3[_0x6107[10]]|| 0;this[_0x6107[11]]= _0x7888x3[_0x6107[11]]|| _0x6107[12];this[_0x6107[13]]= _0x7888x3[_0x6107[13]]|| _0x6107[12];this[_0x6107[14]]= _0x7888x3[_0x6107[14]]|| _0x6107[15];this[_0x6107[16]]= 0;this[_0x6107[17]]= 0;this[_0x6107[18]]= 0;this[_0x6107[19]]= 0;this[_0x6107[20]]= 0;this[_0x6107[21]]= 0;this[_0x6107[22]]= 0;this[_0x6107[23]]= 0;this[_0x6107[24]]= 0;this[_0x6107[25]]= 0;this[_0x6107[26]]= _0x7888x3[_0x6107[26]]|| false;this[_0x6107[27]]= _0x7888x3[_0x6107[27]]|| 10;this[_0x6107[28]]= _0x7888x3[_0x6107[29]]=== _0x6107[30]?true:false;this[_0x6107[31]]= true;this[_0x6107[32]]= _0x6107[12];this[_0x6107[33]]= 0;this[_0x6107[34]]= _0x7888x3[_0x6107[34]]|| null;this[_0x6107[35]]= _0x7888x3[_0x6107[35]]?_0x7888x3[_0x6107[35]]:null;this[_0x6107[36]]= _0x7888x3[_0x6107[36]];this[_0x6107[37]]= _0x7888x3[_0x6107[37]]|| _0x6107[38];this[_0x6107[39]]= _0x7888x3[_0x6107[39]]|| 0;this[_0x6107[40]]= _0x7888x3[_0x6107[40]]|| 0;this[_0x6107[41]]= _0x7888x3[_0x6107[41]]|| 1;this[_0x6107[42]]= _0x7888x3[_0x6107[42]]|| _0x6107[43];this[_0x6107[44]]= _0x7888x3[_0x6107[44]]|| 0.03;this[_0x6107[45]]= _0x7888x3[_0x6107[45]]|| 600;this[_0x6107[46]]= _0x7888x3[_0x6107[46]]|| _0x6107[47];this[_0x6107[48]]= _0x7888x3[_0x6107[48]]|| _0x6107[47];this[_0x6107[49]]= _0x7888x3[_0x6107[49]]|| 30;this[_0x6107[50]]= _0x7888x3[_0x6107[50]]|| _0x6107[51];this[_0x6107[52]]= _0x7888x3[_0x6107[52]]|| 3;this[_0x6107[53]]= _0x7888x3[_0x6107[53]]|| undefined;this[_0x6107[54]]= _0x7888x3[_0x6107[54]]|| 3;this[_0x6107[55]]= _0x7888x3[_0x6107[55]]|| 150;this[_0x6107[56]]= _0x7888x3[_0x6107[56]]|| 3;this[_0x6107[57]]= _0x7888x3[_0x6107[57]]|| 150;this[_0x6107[58]]= _0x7888x3[_0x6107[58]]|| 3;this[_0x6107[59]]= _0x7888x3[_0x6107[59]]|| 150;this[_0x6107[60]]= _0x7888x3[_0x6107[60]]|| 4;this[_0x6107[61]]= _0x7888x3[_0x6107[61]]?_0x7888x3[_0x6107[61]]:undefined;this[_0x6107[62]]= _0x7888x3[_0x6107[62]]?_0x7888x3[_0x6107[62]]:undefined;this[_0x6107[63]]= _0x7888x3[_0x6107[63]]?_0x7888x3[_0x6107[63]]:undefined;this[_0x6107[64]]= 0;this[_0x6107[65]]= 0;this[_0x6107[66]]= 0;this[_0x6107[67]]= 0;this[_0x6107[68]]= 0;this[_0x6107[69]]= 0;this[_0x6107[70]]= 0;this[_0x6107[71]]= 0;this[_0x6107[72]]= 0;this[_0x6107[73]]= 0;this[_0x6107[74]]= 0;this[_0x6107[75]]= 0;this[_0x6107[76]]= undefined;this[_0x6107[77]]= undefined;this[_0x6107[78]]= undefined;this[_0x6107[79]]= 1.05;this[_0x6107[80]]= 0;this[_0x6107[81]]= 0;this[_0x6107[82]]= 0;this[_0x6107[83]]= 0;this[_0x6107[84]]= 0.0;this[_0x6107[85]]= 0.0;this[_0x6107[86]]= 0;this[_0x6107[87]]= 0.4;this[_0x6107[88]]= 0;this[_0x6107[89]]= 0;this[_0x6107[90]]= 1;this[_0x6107[91]]= 0;this[_0x6107[92]]= 0.0;this[_0x6107[93]]= 0.0;this[_0x6107[94]]= 0.0}module[_0x6107[95]]= VoiceQueue
\ No newline at end of file
diff --git a/server/services/ami/model/voiceTrigger.js b/server/services/ami/model/voiceTrigger.js
new file mode 100644 (file)
index 0000000..d89cf7f
--- /dev/null
@@ -0,0 +1 @@
+var _0x39c2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x73\x74\x61\x74\x75\x73","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x63\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x39c2[0];function VoiceTrigger(_0x4842x2){this[_0x39c2[1]]= _0x4842x2[_0x39c2[1]]|| 0;this[_0x39c2[2]]= _0x4842x2[_0x39c2[2]]|| _0x39c2[3];this[_0x39c2[4]]= _0x4842x2[_0x39c2[4]]|| false;this[_0x39c2[5]]= _0x4842x2[_0x39c2[5]]|| [];this[_0x39c2[6]]= _0x4842x2[_0x39c2[6]]|| [];this[_0x39c2[7]]= _0x4842x2[_0x39c2[7]]|| []}module[_0x39c2[8]]= VoiceTrigger
\ No newline at end of file
diff --git a/server/services/ami/model/zendeskAccount.js b/server/services/ami/model/zendeskAccount.js
new file mode 100644 (file)
index 0000000..3eb5739
--- /dev/null
@@ -0,0 +1 @@
+var _0x1b6c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x69\x64","\x6E\x61\x6D\x65","","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x75\x74\x68\x54\x79\x70\x65","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x1b6c[0];function ZendeskAccount(_0xb313x2){this[_0x1b6c[1]]= _0xb313x2[_0x1b6c[1]]|| 0;this[_0x1b6c[2]]= _0xb313x2[_0x1b6c[2]]|| _0x1b6c[3];this[_0x1b6c[4]]= _0xb313x2[_0x1b6c[4]]|| _0x1b6c[3];this[_0x1b6c[5]]= _0xb313x2[_0x1b6c[5]]|| _0x1b6c[3];this[_0x1b6c[6]]= _0xb313x2[_0x1b6c[6]]|| _0x1b6c[3];this[_0x1b6c[7]]= _0xb313x2[_0x1b6c[7]]|| _0x1b6c[3];this[_0x1b6c[8]]= _0xb313x2[_0x1b6c[8]]|| _0x1b6c[3];this[_0x1b6c[9]]= _0xb313x2[_0x1b6c[9]]|| _0x1b6c[3];this[_0x1b6c[10]]= _0xb313x2[_0x1b6c[10]]|| {}}module[_0x1b6c[11]]= ZendeskAccount
\ No newline at end of file
diff --git a/server/services/ami/properties.js b/server/services/ami/properties.js
new file mode 100644 (file)
index 0000000..4bb0fef
--- /dev/null
@@ -0,0 +1 @@
+var _0x995f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x71\x75\x65\x75\x65\x61\x64\x64","\x73\x74\x72\x69\x6E\x67","\x6E\x75\x6D\x62\x65\x72","\x62\x6F\x6F\x6C\x65\x61\x6E","\x71\x75\x65\x75\x65\x72\x65\x6D\x6F\x76\x65","\x71\x75\x65\x75\x65\x70\x61\x75\x73\x65","\x72\x65\x6C\x6F\x61\x64","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C\x68\x61\x6E\x67\x75\x70","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C\x72\x65\x64\x69\x72\x65\x63\x74"];_0x995f[0];exports[_0x995f[1]]= {queue:{type:_0x995f[2],required:true},interface:{type:_0x995f[2],required:true},membername:{type:_0x995f[2],required:true},penalty:{type:_0x995f[3],required:false},paused:{type:_0x995f[4],required:false}};exports[_0x995f[5]]= {queue:{type:_0x995f[2],required:true},interface:{type:_0x995f[2],required:true}};exports[_0x995f[6]]= {interface:{type:_0x995f[2],required:true},paused:{type:_0x995f[4]},reason:{type:_0x995f[2],required:false}};exports[_0x995f[7]]= {module:{type:_0x995f[2],required:false}};exports[_0x995f[8]]= {uniqueid:{type:_0x995f[2],required:true}};exports[_0x995f[9]]= {uniqueid:{type:_0x995f[2],required:true}};exports[_0x995f[10]]= {uniqueid:{type:_0x995f[2],required:true},exten:{type:_0x995f[2],required:true}}
\ No newline at end of file
diff --git a/server/services/ami/realtime/index.js b/server/services/ami/realtime/index.js
new file mode 100644 (file)
index 0000000..925844d
--- /dev/null
@@ -0,0 +1 @@
+var _0x52c6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x61\x67\x65\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x74\x72\x75\x6E\x6B","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x76\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x74\x65\x6D\x70\x6C\x61\x74\x65","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x63\x61\x6D\x70\x61\x69\x67\x6E","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x7A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x61\x67\x65\x6E\x74\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x72\x75\x6E\x6B\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x76\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x71\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x74\x69\x6D\x65\x72\x73","\x7A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x6D\x61\x70\x4B\x65\x79\x73","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x53\x49\x50\x2F\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x69\x73\x45\x6D\x70\x74\x79","\x69\x76\x72\x54\x6F\x74\x61\x6C\x43\x61\x6C\x6C\x73\x44\x61\x79\x73","\x69\x76\x72\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x74\x6F\x74\x61\x6C","\x61\x6E\x73\x77\x65\x72\x65\x64","\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x73\x75\x6D\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x73\x75\x6D\x44\x75\x72\x61\x74\x69\x6F\x6E","\x73\x75\x6D\x42\x69\x6C\x6C\x61\x62\x6C\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x41\x6E\x73\x77\x65\x72\x41\x67\x69\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x41\x6E\x73\x77\x65\x72\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x75\x73\x79\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4E\x6F\x53\x75\x63\x68\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x55\x6E\x6B\x6E\x6F\x77\x6E\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x54\x69\x6D\x65\x6F\x75\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x44\x72\x6F\x70\x43\x61\x6C\x6C\x73\x44\x61\x79\x43\x61\x6C\x6C\x65\x72\x73\x45\x78\x69\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x42\x6C\x61\x63\x6B\x6C\x69\x73\x74\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x46\x61\x69\x6C\x75\x72\x65\x43\x61\x6C\x6C\x73\x44\x61\x79","\x6D\x65\x72\x67\x65\x46\x72\x6F\x6D\x44\x61\x74\x61\x62\x61\x73\x65","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x69\x74\x41\x67\x65\x6E\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x69\x6E\x69\x74\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x69\x6E\x69\x74\x54\x72\x75\x6E\x6B\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x69\x64","\x69\x6E\x69\x74\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x69\x6E\x69\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x6D\x65\x72\x67\x65","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x75\x6E\x69\x71\x75\x65\x69\x64","\x67\x72\x6F\x75\x70\x42\x79","\x71\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x69\x6E\x69\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x41\x4E\x53\x57\x45\x52\x45\x44","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x69\x6E\x69\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x69\x6E\x69\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0x52c6[0];var BPromise=require(_0x52c6[1]);var util=require(_0x52c6[2]);var _=require(_0x52c6[3]);var moment=require(_0x52c6[4]);var Agent=require(_0x52c6[5]);var Telephone=require(_0x52c6[6]);var Trunk=require(_0x52c6[7]);var VoiceQueue=require(_0x52c6[8]);var VoiceTrigger=require(_0x52c6[9]);var Template=require(_0x52c6[10]);var Campaign=require(_0x52c6[11]);var ZendeskAccount=require(_0x52c6[12]);var SalesforceAccount=require(_0x52c6[13]);var FreshdeskAccount=require(_0x52c6[14]);var SugarcrmAccount=require(_0x52c6[15]);var Realtime=function(){this[_0x52c6[16]]= {};this[_0x52c6[17]]= {};this[_0x52c6[18]]= {};this[_0x52c6[19]]= {};this[_0x52c6[20]]= {};this[_0x52c6[21]]= {};this[_0x52c6[22]]= {};this[_0x52c6[23]]= {total:0,answered:0,sumHoldTime:0,sumDuration:0,sumBillable:0};this[_0x52c6[24]]= {};this[_0x52c6[25]]= {};this[_0x52c6[26]]= {};this[_0x52c6[27]]= {};this[_0x52c6[28]]= {};this[_0x52c6[29]]= {};this[_0x52c6[30]]= {};this[_0x52c6[31]]= {}};function freeIsNotKey(_0x152fx12,_0x152fx13,_0x152fx14){var _0x152fx15=_[_0x52c6[32]](_0x152fx12,function(_0x152fx16,_0x152fx17){return _0x152fx16[_0x152fx14]});for(var _0x152fx17 in _0x152fx13){if(_0x152fx13[_0x52c6[33]](_0x152fx17)){if(!_0x152fx15[_0x152fx17]){delete _0x152fx13[_0x152fx17]}}}}function freeIsNotKeySip(_0x152fx12,_0x152fx13){var _0x152fx15=_[_0x52c6[32]](_0x152fx12,function(_0x152fx16,_0x152fx17){return util[_0x52c6[36]](_0x52c6[34],_0x152fx16[_0x52c6[35]])});for(var _0x152fx17 in _0x152fx13){if(_0x152fx13[_0x52c6[33]](_0x152fx17)){if(!_0x152fx15[_0x152fx17]){delete _0x152fx13[_0x152fx17]}}}}function clearCampaigns(_0x152fx1a){if(!_[_0x52c6[37]](_0x152fx1a)){for(var _0x152fx17 in _0x152fx1a){if(_0x152fx1a[_0x52c6[33]](_0x152fx17)){_0x152fx1a[_0x152fx17][_0x52c6[38]]= 0;_0x152fx1a[_0x152fx17][_0x52c6[39]]= 0}}}}function clearVoiceQueues(_0x152fx1c){if(!_[_0x52c6[37]](_0x152fx1c)){for(var _0x152fx17 in _0x152fx1c){if(_0x152fx1c[_0x52c6[33]](_0x152fx17)){_0x152fx1c[_0x152fx17][_0x52c6[40]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[41]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[42]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[43]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[44]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[45]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[46]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[47]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[48]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[49]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[50]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[51]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[52]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[53]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[54]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[55]]= 0;_0x152fx1c[_0x152fx17][_0x52c6[46]]= 0}}}}Realtime[_0x52c6[57]][_0x52c6[56]]= function(_0x152fx1d,_0x152fx1e){for(var _0x152fx17 in _0x152fx1e){if(_0x152fx1d[_0x52c6[33]](_0x152fx17)){_0x152fx1d[_0x152fx17]= _0x152fx1e[_0x152fx17]}}};Realtime[_0x52c6[57]][_0x52c6[58]]= function(){var _0x152fx1f=this;return function(_0x152fx12){if(_0x152fx12){freeIsNotKeySip(_0x152fx12,_0x152fx1f[_0x52c6[16]]);for(var _0x152fx20=0,_0x152fx21={},_0x152fx22={};_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_0x152fx21= _0x152fx12[_0x152fx20];if(_[_0x52c6[60]](_0x152fx1f[_0x52c6[16]][util[_0x52c6[36]](_0x52c6[34],_0x152fx21[_0x52c6[35]])])){_0x152fx1f[_0x52c6[16]][util[_0x52c6[36]](_0x52c6[34],_0x152fx21[_0x52c6[35]])]=  new Agent(_0x152fx21)}else {_0x152fx1f[_0x52c6[56]](_0x152fx1f[_0x52c6[16]][util[_0x52c6[36]](_0x52c6[34],_0x152fx21[_0x52c6[35]])],_0x152fx21)}}};return _0x152fx1f[_0x52c6[16]]}};Realtime[_0x52c6[57]][_0x52c6[61]]= function(){var _0x152fx1f=this;return function(_0x152fx12){if(_0x152fx12){freeIsNotKeySip(_0x152fx12,_0x152fx1f[_0x52c6[17]]);for(var _0x152fx20=0,_0x152fx23={},_0x152fx24={};_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_0x152fx23= _0x152fx12[_0x152fx20];if(_[_0x52c6[60]](_0x152fx1f[_0x52c6[17]][util[_0x52c6[36]](_0x52c6[34],_0x152fx23[_0x52c6[35]])])){_0x152fx1f[_0x52c6[17]][util[_0x52c6[36]](_0x52c6[34],_0x152fx23[_0x52c6[35]])]=  new Telephone(_0x152fx23)}else {_0x152fx1f[_0x52c6[56]](_0x152fx1f[_0x52c6[17]][util[_0x52c6[36]](_0x52c6[34],_0x152fx23[_0x52c6[35]])],_0x152fx23)}}};return _0x152fx1f[_0x52c6[17]]}};Realtime[_0x52c6[57]][_0x52c6[62]]= function(){var _0x152fx1f=this;return function(_0x152fx12){if(_0x152fx12){freeIsNotKeySip(_0x152fx12,_0x152fx1f[_0x52c6[18]]);for(var _0x152fx20=0,_0x152fx25={},_0x152fx26={};_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_0x152fx25= _0x152fx12[_0x152fx20];if(_[_0x52c6[60]](_0x152fx1f[_0x52c6[18]][util[_0x52c6[36]](_0x52c6[34],_0x152fx25[_0x52c6[35]])])){_0x152fx1f[_0x52c6[18]][util[_0x52c6[36]](_0x52c6[34],_0x152fx25[_0x52c6[35]])]=  new Trunk(_0x152fx25)}else {_0x152fx1f[_0x52c6[56]](_0x152fx1f[_0x52c6[18]][util[_0x52c6[36]](_0x52c6[34],_0x152fx25[_0x52c6[35]])],_0x152fx25)}}};return _0x152fx1f[_0x52c6[18]]}};Realtime[_0x52c6[57]][_0x52c6[63]]= function(){var _0x152fx1f=this;return function(_0x152fx12){if(_0x152fx12){freeIsNotKey(_0x152fx12,_0x152fx1f[_0x52c6[19]],_0x52c6[35]);for(var _0x152fx20=0,_0x152fx27={},_0x152fx1c={};_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_0x152fx27= _0x152fx12[_0x152fx20];if(_[_0x52c6[60]](_0x152fx1f[_0x52c6[19]][_0x152fx27[_0x52c6[35]]])){_0x152fx1f[_0x52c6[19]][_0x152fx27[_0x52c6[35]]]=  new VoiceQueue(_0x152fx27)}else {_0x152fx1f[_0x52c6[56]](_0x152fx1f[_0x52c6[19]][_0x152fx27[_0x52c6[35]]],_0x152fx27)}}};return _0x152fx1f[_0x52c6[19]]}};Realtime[_0x52c6[57]][_0x52c6[64]]= function(){var _0x152fx1f=this;return function(_0x152fx12){if(_0x152fx12){freeIsNotKey(_0x152fx12,_0x152fx1f[_0x52c6[20]],_0x52c6[65]);for(var _0x152fx20=0,_0x152fx28={},_0x152fx29={};_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_0x152fx28= _0x152fx12[_0x152fx20];if(_[_0x52c6[60]](_0x152fx1f[_0x52c6[20]][_0x152fx28[_0x52c6[65]]])){_0x152fx1f[_0x52c6[20]][_0x152fx28[_0x52c6[65]]]=  new VoiceTrigger(_0x152fx28)}else {_0x152fx1f[_0x52c6[56]](_0x152fx1f[_0x52c6[20]][_0x152fx28[_0x52c6[65]]],_0x152fx28)}}};return _0x152fx1f[_0x52c6[20]]}};Realtime[_0x52c6[57]][_0x52c6[66]]= function(){var _0x152fx1f=this;return function(_0x152fx12){if(_0x152fx12){freeIsNotKey(_0x152fx12,_0x152fx1f[_0x52c6[22]],_0x52c6[65]);for(var _0x152fx20=0,_0x152fx2a={},_0x152fx2b={};_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_0x152fx2a= _0x152fx12[_0x152fx20];if(_[_0x52c6[60]](_0x152fx1f[_0x52c6[22]][_0x152fx2a[_0x52c6[65]]])){_0x152fx1f[_0x52c6[22]][_0x152fx2a[_0x52c6[65]]]=  new Template(_0x152fx2a)}else {_0x152fx1f[_0x52c6[56]](_0x152fx1f[_0x52c6[22]][_0x152fx2a[_0x52c6[65]]],_0x152fx2a)}}};return _0x152fx1f[_0x52c6[22]]}};Realtime[_0x52c6[57]][_0x52c6[67]]= function(){var _0x152fx1f=this;return function(_0x152fx12){if(_0x152fx12){freeIsNotKey(_0x152fx12,_0x152fx1f[_0x52c6[28]],_0x52c6[65]);for(var _0x152fx20=0,_0x152fx2c={},_0x152fx2d={};_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_0x152fx2c= _0x152fx12[_0x152fx20];if(_[_0x52c6[60]](_0x152fx1f[_0x52c6[28]][_0x152fx2c[_0x52c6[65]]])){_0x152fx1f[_0x52c6[28]][_0x152fx2c[_0x52c6[65]]]=  new ZendeskAccount(_0x152fx2c)}else {_0x152fx1f[_0x52c6[56]](_0x152fx1f[_0x52c6[28]][_0x152fx2c[_0x52c6[65]]],_0x152fx2c)}}};return _0x152fx1f[_0x52c6[28]]}};Realtime[_0x52c6[57]][_0x52c6[68]]= function(){var _0x152fx1f=this;return function(_0x152fx12){if(_0x152fx12){freeIsNotKey(_0x152fx12,_0x152fx1f[_0x52c6[29]],_0x52c6[65]);for(var _0x152fx20=0,_0x152fx2e={},_0x152fx2f={};_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_0x152fx2e= _0x152fx12[_0x152fx20];if(_[_0x52c6[60]](_0x152fx1f[_0x52c6[29]][_0x152fx2e[_0x52c6[65]]])){_0x152fx1f[_0x52c6[29]][_0x152fx2e[_0x52c6[65]]]=  new SalesforceAccount(_0x152fx2e)}else {_0x152fx1f[_0x52c6[56]](_0x152fx1f[_0x52c6[29]][_0x152fx2e[_0x52c6[65]]],_0x152fx2e)}}};return _0x152fx1f[_0x52c6[29]]}};Realtime[_0x52c6[57]][_0x52c6[69]]= function(){var _0x152fx1f=this;return function(_0x152fx12){if(_0x152fx12){freeIsNotKey(_0x152fx12,_0x152fx1f[_0x52c6[31]],_0x52c6[65]);for(var _0x152fx20=0,_0x152fx30={},_0x152fx31={};_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_0x152fx30= _0x152fx12[_0x152fx20];if(_[_0x52c6[60]](_0x152fx1f[_0x52c6[31]][_0x152fx30[_0x52c6[65]]])){_0x152fx1f[_0x52c6[31]][_0x152fx30[_0x52c6[65]]]=  new FreshdeskAccount(_0x152fx30)}else {_0x152fx1f[_0x52c6[56]](_0x152fx1f[_0x52c6[31]][_0x152fx30[_0x52c6[65]]],_0x152fx30)}}};return _0x152fx1f[_0x52c6[31]]}};Realtime[_0x52c6[57]][_0x52c6[70]]= function(){var _0x152fx1f=this;return function(_0x152fx12){if(_0x152fx12){freeIsNotKey(_0x152fx12,_0x152fx1f[_0x52c6[30]],_0x52c6[65]);for(var _0x152fx20=0,_0x152fx32={},_0x152fx33={};_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_0x152fx32= _0x152fx12[_0x152fx20];if(_[_0x52c6[60]](_0x152fx1f[_0x52c6[30]][_0x152fx32[_0x52c6[65]]])){_0x152fx1f[_0x52c6[30]][_0x152fx32[_0x52c6[65]]]=  new SugarcrmAccount(_0x152fx32)}else {_0x152fx1f[_0x52c6[56]](_0x152fx1f[_0x52c6[30]][_0x152fx32[_0x52c6[65]]],_0x152fx32)}}};return _0x152fx1f[_0x52c6[30]]}};Realtime[_0x52c6[57]][_0x52c6[71]]= function(){var _0x152fx1f=this;return function(_0x152fx12){for(var _0x152fx20=0;_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_[_0x52c6[72]](_0x152fx1f[_0x52c6[19]][_0x152fx12[_0x152fx20][_0x52c6[35]]],_0x152fx12[_0x152fx20])};return _0x152fx1f[_0x52c6[19]]}};Realtime[_0x52c6[57]][_0x52c6[73]]= function(){var _0x152fx1f=this;clearVoiceQueues(this[_0x52c6[19]]);return function(_0x152fx12){if(_0x152fx12){_0x152fx12= _[_0x52c6[75]](_0x152fx12,_0x52c6[74]);for(var _0x152fx17 in _0x152fx12){if(_0x152fx12[_0x52c6[33]](_0x152fx17)){var _0x152fx16={};for(var _0x152fx20=0;_0x152fx20< _0x152fx12[_0x152fx17][_0x52c6[59]];_0x152fx20+= 1){var _0x152fx34=_0x152fx12[_0x152fx17][_0x152fx20][_0x52c6[76]];if(_0x152fx1f[_0x52c6[19]][_0x152fx34]){if(_0x152fx12[_0x152fx17][_0x152fx20][_0x52c6[77]]){_0x152fx1f[_0x52c6[19]][_0x152fx34][_0x52c6[42]]+= 1};_0x152fx1f[_0x52c6[19]][_0x152fx34][_0x52c6[43]]+= moment(_0x152fx12[_0x152fx17][_0x152fx20][_0x52c6[81]])[_0x52c6[80]](moment(_0x152fx12[_0x152fx17][_0x152fx20][_0x52c6[78]]),_0x52c6[79])|| 0;if(_0x152fx20=== _0x152fx12[_0x152fx17][_0x52c6[59]]- 1){_0x152fx1f[_0x52c6[19]][_0x152fx34][_0x52c6[44]]+= moment(_0x152fx12[_0x152fx17][_0x152fx20][_0x52c6[82]]|| _0x152fx12[_0x152fx17][_0x152fx20][_0x52c6[83]]|| _0x152fx12[_0x152fx17][_0x152fx20][_0x52c6[84]])[_0x52c6[80]](moment(_0x152fx12[_0x152fx17][_0x152fx20][_0x52c6[78]]),_0x52c6[79])|| 0;_0x152fx1f[_0x52c6[19]][_0x152fx34][_0x52c6[40]]+= 1;if(_0x152fx12[_0x152fx17][_0x152fx20][_0x52c6[85]]){_0x152fx1f[_0x52c6[19]][_0x152fx34][_0x52c6[41]]+= 1;_0x152fx1f[_0x52c6[19]][_0x152fx34][_0x52c6[45]]+= moment(_0x152fx12[_0x152fx17][_0x152fx20][_0x52c6[82]])[_0x52c6[80]](moment(_0x152fx12[_0x152fx17][_0x152fx20][_0x52c6[81]]),_0x52c6[79])|| 0}}else {_0x152fx1f[_0x52c6[19]][_0x152fx34][_0x52c6[44]]+= _0x152fx1f[_0x52c6[19]][_0x152fx34][_0x52c6[43]]}}}}}};return _0x152fx1f[_0x52c6[19]]}};Realtime[_0x52c6[57]][_0x52c6[86]]= function(){var _0x152fx1f=this;return function(_0x152fx12){if(_0x152fx12){for(var _0x152fx20=0;_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_0x152fx1f[_0x52c6[23]][_0x52c6[40]]+= 1;_0x152fx1f[_0x52c6[23]][_0x52c6[44]]+= _0x152fx12[_0x152fx20][_0x52c6[87]];if(_0x152fx12[_0x152fx20][_0x52c6[88]]=== _0x52c6[89]){_0x152fx1f[_0x52c6[23]][_0x52c6[41]]+= 1;_0x152fx1f[_0x52c6[23]][_0x52c6[43]]+= (_0x152fx12[_0x152fx20][_0x52c6[87]]- _0x152fx12[_0x152fx20][_0x52c6[90]]);_0x152fx1f[_0x52c6[23]][_0x52c6[45]]+= _0x152fx12[_0x152fx20][_0x52c6[90]]}}};return _0x152fx1f[_0x52c6[23]]}};Realtime[_0x52c6[57]][_0x52c6[91]]= function(){var _0x152fx1f=this;return function(_0x152fx12){if(_0x152fx12){freeIsNotKey(_0x152fx12,_0x152fx1f[_0x52c6[21]],_0x52c6[35]);for(var _0x152fx20=0,_0x152fx35={};_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_0x152fx35= _0x152fx12[_0x152fx20];if(_[_0x52c6[60]](_0x152fx1f[_0x52c6[21]][_0x152fx35[_0x52c6[35]]])){_0x152fx1f[_0x52c6[21]][_0x152fx35[_0x52c6[35]]]=  new Campaign(_0x152fx35)}else {_0x152fx1f[_0x52c6[56]](_0x152fx1f[_0x52c6[21]][_0x152fx35[_0x52c6[35]]],_0x152fx35)}}};return _0x152fx1f[_0x52c6[21]]}};Realtime[_0x52c6[57]][_0x52c6[92]]= function(){var _0x152fx1f=this;clearCampaigns(this[_0x52c6[21]]);return function(_0x152fx12){for(var _0x152fx20=0;_0x152fx20< _0x152fx12[_0x52c6[59]];_0x152fx20+= 1){_[_0x52c6[72]](_0x152fx1f[_0x52c6[21]][_0x152fx12[_0x152fx20][_0x52c6[35]]],_0x152fx12[_0x152fx20])};return _0x152fx1f[_0x52c6[21]]}};module[_0x52c6[93]]= Realtime
\ No newline at end of file
diff --git a/server/services/ami/report/index.js b/server/services/ami/report/index.js
new file mode 100644 (file)
index 0000000..7f1d95f
--- /dev/null
@@ -0,0 +1 @@
+var _0x29ed=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x6D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x2E\x2E\x2F\x72\x70\x63\x2F\x76\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x2E\x2F\x75\x73\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x61\x6C\x74\x69\x6D\x65","\x73\x79\x6E\x63","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x62\x69\x6E\x64","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x62\x6C\x69\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72","\x62\x6C\x69\x6E\x64\x54\x72\x61\x6E\x73\x66\x65\x72","\x61\x74\x74\x65\x6E\x64\x65\x64\x74\x72\x61\x6E\x73\x66\x65\x72","\x61\x74\x74\x65\x6E\x64\x65\x64\x54\x72\x61\x6E\x73\x66\x65\x72","\x6C\x65\x6E\x67\x74\x68","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x63\x72\x65\x61\x74\x65","\x6D\x6F\x6E\x69\x74\x6F\x72","\x65\x78\x70\x6F\x72\x74\x73"];_0x29ed[0];var BPromise=require(_0x29ed[1]);var _=require(_0x29ed[2]);var moment=require(_0x29ed[3]);var util=require(_0x29ed[4]);var logger=require(_0x29ed[6])(_0x29ed[5]);var ami=require(_0x29ed[7]);var RpcVoiceAgentReport=require(_0x29ed[8]);var RpcVoiceCallReport=require(_0x29ed[9]);var RpcVoiceDialReport=require(_0x29ed[10]);var RpcMemberReport=require(_0x29ed[11]);var RpcVoiceQueueReport=require(_0x29ed[12]);var RpcVoiceRecording=require(_0x29ed[13]);var RpcVoiceTransferReport=require(_0x29ed[14]);var VoiceQueueReport=require(_0x29ed[15]);var VoiceCallReport=require(_0x29ed[16]);var VoiceAgentReport=require(_0x29ed[17]);var VoiceDialReport=require(_0x29ed[18]);var UserReport=require(_0x29ed[19]);function Report(_0xa5b8x14){this[_0x29ed[20]]= _0xa5b8x14}Report[_0x29ed[22]][_0x29ed[21]]= function(_0xa5b8x14){var _0xa5b8x15= new VoiceQueueReport(this[_0x29ed[20]]);var _0xa5b8x16= new VoiceAgentReport(this[_0x29ed[20]]);var _0xa5b8x17= new VoiceDialReport(this[_0x29ed[20]]);var _0xa5b8x18= new VoiceCallReport(this[_0x29ed[20]]);var _0xa5b8x19= new UserReport(this[_0x29ed[20]]);ami[_0x29ed[26]](_0x29ed[23],this[_0x29ed[25]][_0x29ed[24]](this));ami[_0x29ed[26]](_0x29ed[27],this[_0x29ed[28]][_0x29ed[24]](this));ami[_0x29ed[26]](_0x29ed[29],this[_0x29ed[30]][_0x29ed[24]](this));ami[_0x29ed[26]](_0x29ed[31],this[_0x29ed[32]][_0x29ed[24]](this));ami[_0x29ed[26]](_0x29ed[33],this[_0x29ed[34]][_0x29ed[24]](this));ami[_0x29ed[26]](_0x29ed[35],this[_0x29ed[36]][_0x29ed[24]](this))};Report[_0x29ed[22]][_0x29ed[25]]= function(_0xa5b8x1a){for(var _0xa5b8x1b=0;_0xa5b8x1b< _0xa5b8x1a[_0x29ed[37]];_0xa5b8x1b+= 1){if(_0xa5b8x1a[_0xa5b8x1b][_0x29ed[38]]){RpcMemberReport[_0x29ed[25]](_0xa5b8x1a[_0xa5b8x1b])};RpcVoiceQueueReport[_0x29ed[39]](_0xa5b8x1a[_0xa5b8x1b])}};Report[_0x29ed[22]][_0x29ed[28]]= function(_0xa5b8x1c){if(_0xa5b8x1c[_0x29ed[40]]){RpcVoiceRecording[_0x29ed[39]](_0xa5b8x1c)};RpcVoiceCallReport[_0x29ed[39]](_0xa5b8x1c)};Report[_0x29ed[22]][_0x29ed[30]]= function(_0xa5b8x1d){for(var _0xa5b8x1b=0;_0xa5b8x1b< _0xa5b8x1d[_0x29ed[37]];_0xa5b8x1b+= 1){RpcVoiceAgentReport[_0x29ed[39]](_0xa5b8x1d[_0xa5b8x1b])}};Report[_0x29ed[22]][_0x29ed[32]]= function(_0xa5b8x1e){RpcVoiceDialReport[_0x29ed[39]](_0xa5b8x1e);RpcMemberReport[_0x29ed[32]](_0xa5b8x1e)};Report[_0x29ed[22]][_0x29ed[34]]= function(_0xa5b8x1f){RpcVoiceTransferReport[_0x29ed[34]](_0xa5b8x1f)};Report[_0x29ed[22]][_0x29ed[36]]= function(_0xa5b8x1f){RpcVoiceTransferReport[_0x29ed[36]](_0xa5b8x1f)};module[_0x29ed[41]]= Report
\ No newline at end of file
diff --git a/server/services/ami/report/userReport.js b/server/services/ami/report/userReport.js
new file mode 100644 (file)
index 0000000..bfda1ac
--- /dev/null
@@ -0,0 +1 @@
+var _0xf44c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x74\x72\x75\x6E\x6B\x73","\x61\x67\x65\x6E\x74\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x72\x65\x67\x69\x73\x74\x72\x79\x65\x6E\x74\x72\x79","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x52\x65\x67\x69\x73\x74\x72\x79","\x6F\x6E","\x72\x65\x67\x69\x73\x74\x72\x79","\x64\x65\x76\x69\x63\x65\x73\x74\x61\x74\x65\x63\x68\x61\x6E\x67\x65","\x73\x79\x6E\x63\x44\x65\x76\x69\x63\x65\x53\x74\x61\x74\x65","\x70\x65\x65\x72\x73\x74\x61\x74\x75\x73","\x73\x79\x6E\x63\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73","\x6C\x6F\x6F\x70\x53\x79\x6E\x63\x52\x65\x61\x6C\x54\x69\x6D\x65\x53\x68\x6F\x77","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x5B\x6C\x6F\x6F\x70\x53\x79\x6E\x63\x52\x65\x61\x6C\x54\x69\x6D\x65\x53\x68\x6F\x77\x5D","\x63\x61\x74\x63\x68","\x61\x63\x74\x69\x6F\x6E\x53\x69\x70\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73","\x74\x68\x65\x6E","\x61\x63\x74\x69\x6F\x6E\x44\x65\x76\x69\x63\x65\x53\x74\x61\x74\x65\x4C\x69\x73\x74","\x61\x63\x74\x69\x6F\x6E\x53\x69\x70\x53\x68\x6F\x77\x52\x65\x67\x69\x73\x74\x72\x79","\x72\x65\x73\x6F\x6C\x76\x65","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x65\x6D\x69\x74","\x74\x6F","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x66\x69\x6E\x64","\x73\x74\x61\x74\x65\x52\x65\x67\x69\x73\x74\x72\x79","\x73\x74\x61\x74\x65","\x65\x76\x65\x6E\x74","\x61\x63\x74\x69\x6F\x6E\x69\x64","\x6F\x6D\x69\x74","\x6D\x65\x72\x67\x65","\x74\x72\x75\x6E\x6B\x3A\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x74\x72\x75\x6E\x6B\x3A\x73\x61\x76\x65","\x5B\x73\x79\x6E\x63\x52\x65\x67\x69\x73\x74\x72\x79\x5D\x5B\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x4F\x62\x6A\x65\x63\x74\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x64\x65\x76\x69\x63\x65","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x73\x74\x61\x74\x65\x54\x69\x6D\x65","\x78","\x74\x6F\x4E\x75\x6D\x62\x65\x72","\x75\x73\x65\x72\x3A\x25\x73","\x75\x73\x65\x72\x3A\x73\x61\x76\x65","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x25\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x3A\x73\x61\x76\x65","\x51\x75\x65\x75\x65","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x5B\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74\x5D","\x44\x65\x76\x69\x63\x65\x20\x75\x6E\x6D\x6F\x6E\x69\x74","\x5B\x73\x79\x6E\x63\x44\x65\x76\x69\x63\x65\x53\x74\x61\x74\x65\x5D\x5B\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74\x5D","\x70\x65\x65\x72","\x73\x74\x61\x74\x75\x73","\x61\x64\x64\x72\x65\x73\x73","\x50\x65\x65\x72\x20\x75\x6E\x6D\x6F\x6E\x69\x74","\x5B\x73\x79\x6E\x63\x50\x65\x65\x72\x53\x74\x61\x74\x75\x73\x5D\x5B\x55\x73\x65\x72\x52\x65\x70\x6F\x72\x74\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0xf44c[0];var _=require(_0xf44c[1]);var moment=require(_0xf44c[2]);var BPromise=require(_0xf44c[3]);var util=require(_0xf44c[4]);var logger=require(_0xf44c[6])(_0xf44c[5]);var ami=require(_0xf44c[7]);var io=require(_0xf44c[9])({host:_0xf44c[8],port:6379});function UserReport(_0xbf0ex9){console[_0xf44c[11]](_0xf44c[10]);this[_0xf44c[12]]= _0xbf0ex9[_0xf44c[12]];this[_0xf44c[13]]= _0xbf0ex9[_0xf44c[13]];this[_0xf44c[14]]= _0xbf0ex9[_0xf44c[14]];ami[_0xf44c[18]](_0xf44c[15],this[_0xf44c[17]][_0xf44c[16]](this));ami[_0xf44c[18]](_0xf44c[19],this[_0xf44c[17]][_0xf44c[16]](this));ami[_0xf44c[18]](_0xf44c[20],this[_0xf44c[21]][_0xf44c[16]](this));ami[_0xf44c[18]](_0xf44c[22],this[_0xf44c[23]][_0xf44c[16]](this));this[_0xf44c[24]]()}function loggerCatch(_0xbf0exb){return function(_0xbf0exc){console[_0xf44c[11]](_0xbf0exb,_0xbf0exc);logger[_0xf44c[26]](_0xbf0exb,util[_0xf44c[25]](_0xbf0exc,{showHidden:false,depth:null}))}}UserReport[_0xf44c[27]][_0xf44c[24]]= function(){setInterval(function(){BPromise[_0xf44c[34]]()[_0xf44c[31]](ami[_0xf44c[33]]())[_0xf44c[31]](ami[_0xf44c[32]]())[_0xf44c[31]](ami[_0xf44c[30]]())[_0xf44c[29]](loggerCatch(_0xf44c[28]))},13000)};UserReport[_0xf44c[27]][_0xf44c[35]]= function(_0xbf0exd){return _0xbf0exd!== null&&  !_[_0xf44c[36]](_0xbf0exd)};UserReport[_0xf44c[27]][_0xf44c[37]]= function(_0xbf0exe,_0xbf0exf,_0xbf0exd){console[_0xf44c[11]](_0xbf0exe,_0xbf0exf);io[_0xf44c[38]](_0xbf0exe)[_0xf44c[37]](_0xbf0exf,_0xbf0exd)};UserReport[_0xf44c[27]][_0xf44c[17]]= function(_0xbf0exf){try{if(this[_0xf44c[35]](_0xbf0exf)){var _0xbf0ex10=_[_0xf44c[40]](this[_0xf44c[12]],{registry:_0xbf0exf[_0xf44c[39]]});if(_0xbf0ex10){_0xbf0exf[_0xf44c[41]]= _0xbf0exf[_0xf44c[42]];_[_0xf44c[46]](_0xbf0ex10,_[_0xf44c[45]](_0xbf0exf,[_0xf44c[43],_0xf44c[44],_0xf44c[39],_0xf44c[42]]));this[_0xf44c[37]](util[_0xf44c[49]](_0xf44c[47],_0xbf0ex10[_0xf44c[48]]),_0xf44c[50],_0xbf0ex10)}}else {logger[_0xf44c[53]](_0xf44c[51],_0xf44c[52])}}catch(e){logger[_0xf44c[26]](_0xf44c[51],util[_0xf44c[25]](e,{showHidden:false,depth:null}))}};UserReport[_0xf44c[27]][_0xf44c[21]]= function(_0xbf0exf){try{if(this[_0xf44c[35]](_0xbf0exf)){if(this[_0xf44c[13]][_0xbf0exf[_0xf44c[54]]]){this[_0xf44c[13]][_0xbf0exf[_0xf44c[54]]][_0xf44c[42]]= _0xbf0exf[_0xf44c[42]][_0xf44c[55]]();this[_0xf44c[13]][_0xbf0exf[_0xf44c[54]]][_0xf44c[56]]= _[_0xf44c[58]](moment()[_0xf44c[49]](_0xf44c[57]));this[_0xf44c[37]](util[_0xf44c[49]](_0xf44c[59],this[_0xf44c[13]][_0xbf0exf[_0xf44c[54]]][_0xf44c[48]]),_0xf44c[60],this[_0xf44c[13]][_0xbf0exf[_0xf44c[54]]])}else {if(this[_0xf44c[14]][_0xbf0exf[_0xf44c[54]]]){this[_0xf44c[14]][_0xbf0exf[_0xf44c[54]]][_0xf44c[42]]= _0xbf0exf[_0xf44c[42]][_0xf44c[55]]();this[_0xf44c[14]][_0xbf0exf[_0xf44c[54]]][_0xf44c[56]]= _[_0xf44c[58]](moment()[_0xf44c[49]](_0xf44c[57]));this[_0xf44c[37]](util[_0xf44c[49]](_0xf44c[61],this[_0xf44c[14]][_0xbf0exf[_0xf44c[54]]][_0xf44c[48]]),_0xf44c[62],this[_0xf44c[14]][_0xbf0exf[_0xf44c[54]]])}else {if(this[_0xf44c[12]][_0xbf0exf[_0xf44c[54]]]){this[_0xf44c[12]][_0xbf0exf[_0xf44c[54]]][_0xf44c[42]]= _0xbf0exf[_0xf44c[42]][_0xf44c[55]]();this[_0xf44c[37]](util[_0xf44c[49]](_0xf44c[47],this[_0xf44c[12]][_0xbf0exf[_0xf44c[54]]][_0xf44c[48]]),_0xf44c[50],this[_0xf44c[12]][_0xbf0exf[_0xf44c[54]]])}else {if(_[_0xf44c[64]](_0xbf0exf[_0xf44c[54]],_0xf44c[63])){}else {console[_0xf44c[11]](_0xf44c[65],_0xf44c[66],_0xbf0exf[_0xf44c[54]])}}}}}else {logger[_0xf44c[53]](_0xf44c[67],_0xf44c[52])}}catch(e){logger[_0xf44c[26]](_0xf44c[67],util[_0xf44c[25]](e,{showHidden:false,depth:null}))}};UserReport[_0xf44c[27]][_0xf44c[23]]= function(_0xbf0exf){try{if(this[_0xf44c[35]](_0xbf0exf)&& this[_0xf44c[35]](_0xbf0exf[_0xf44c[22]])){if(this[_0xf44c[13]][_0xbf0exf[_0xf44c[68]]]){this[_0xf44c[13]][_0xbf0exf[_0xf44c[68]]][_0xf44c[69]]= _0xbf0exf[_0xf44c[22]][_0xf44c[55]]();this[_0xf44c[13]][_0xbf0exf[_0xf44c[68]]][_0xf44c[70]]= _0xbf0exf[_0xf44c[70]];this[_0xf44c[37]](util[_0xf44c[49]](_0xf44c[59],this[_0xf44c[13]][_0xbf0exf[_0xf44c[68]]][_0xf44c[48]]),_0xf44c[60],this[_0xf44c[13]][_0xbf0exf[_0xf44c[68]]])}else {if(this[_0xf44c[14]][_0xbf0exf[_0xf44c[68]]]){this[_0xf44c[14]][_0xbf0exf[_0xf44c[68]]][_0xf44c[69]]= _0xbf0exf[_0xf44c[22]][_0xf44c[55]]();this[_0xf44c[14]][_0xbf0exf[_0xf44c[68]]][_0xf44c[70]]= _0xbf0exf[_0xf44c[70]];this[_0xf44c[37]](util[_0xf44c[49]](_0xf44c[61],this[_0xf44c[14]][_0xbf0exf[_0xf44c[68]]][_0xf44c[48]]),_0xf44c[62],this[_0xf44c[14]][_0xbf0exf[_0xf44c[68]]])}else {if(this[_0xf44c[12]][_0xbf0exf[_0xf44c[68]]]){this[_0xf44c[12]][_0xbf0exf[_0xf44c[68]]][_0xf44c[69]]= _0xbf0exf[_0xf44c[22]][_0xf44c[55]]();this[_0xf44c[12]][_0xbf0exf[_0xf44c[68]]][_0xf44c[70]]= _0xbf0exf[_0xf44c[70]];this[_0xf44c[37]](util[_0xf44c[49]](_0xf44c[47],this[_0xf44c[12]][_0xbf0exf[_0xf44c[68]]][_0xf44c[48]]),_0xf44c[50],this[_0xf44c[12]][_0xbf0exf[_0xf44c[68]]])}else {console[_0xf44c[11]](_0xf44c[71],_0xbf0exf[_0xf44c[68]])}}}}else {logger[_0xf44c[53]](_0xf44c[72],_0xf44c[52])}}catch(e){logger[_0xf44c[26]](_0xf44c[72],util[_0xf44c[25]](e,{showHidden:false,depth:null}))}};module[_0xf44c[73]]= UserReport
\ No newline at end of file
diff --git a/server/services/ami/report/voiceAgentReport.js b/server/services/ami/report/voiceAgentReport.js
new file mode 100644 (file)
index 0000000..83e40da
--- /dev/null
@@ -0,0 +1 @@
+var _0x1585=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x61\x6C\x6C\x65\x64","\x6F\x6E","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x52\x69\x6E\x67\x4E\x6F\x41\x6E\x73\x77\x65\x72","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x76\x61\x72\x73\x65\x74","\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x61\x6C\x6C\x65\x64","\x71\x75\x65\x75\x65","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x65\x76\x65\x6E\x74","\x70\x72\x69\x76\x69\x6C\x65\x67\x65","\x6F\x6D\x69\x74","\x6D\x65\x72\x67\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64","\x65\x6D\x69\x74","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x61\x6C\x6C\x65\x64\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x6F\x62\x6A\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74\x41\x74","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x64\x65\x73\x74\x63\x68\x61\x6E\x6E\x65\x6C\x73\x74\x61\x74\x65","\x64\x65\x73\x74\x63\x68\x61\x6E\x6E\x65\x6C\x73\x74\x61\x74\x65\x64\x65\x73\x63","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72\x41\x74","\x72\x65\x61\x73\x6F\x6E","\x61\x6E\x73\x77\x65\x72\x65\x64\x5F\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x61\x6E\x73\x77\x65\x72\x65\x64\x65\x6C\x73\x65\x77\x68\x65\x72\x65\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x75\x6E\x69\x71\x75\x65\x69\x64","\x61\x6E\x73\x77\x65\x72\x65\x64\x65\x6C\x73\x65\x77\x68\x65\x72\x65\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x61\x6E\x73\x77\x65\x72\x65\x64\x65\x6C\x73\x65\x77\x68\x65\x72\x65","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6E\x6E\x65\x63\x74\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x63\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C\x5D","\x72\x65\x6A\x65\x63\x74\x65\x64","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x52\x69\x6E\x67\x4E\x6F\x41\x6E\x73\x77\x65\x72\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x74\x61\x6C\x6B\x74\x69\x6D\x65","\x61\x63\x77","\x61\x67\x65\x6E\x74\x61\x63\x77","\x61\x63\x77\x74\x69\x6D\x65","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x73","\x76\x61\x6C\x75\x65","\x61\x64\x64\x56\x61\x72\x69\x61\x62\x6C\x65","\x5B\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x74\x68\x69\x73\x2E\x63\x68\x61\x6E\x6E\x65\x6C\x73\x5B\x65\x76\x74\x2E\x75\x6E\x69\x71\x75\x65\x69\x64\x5D\x5B\x64\x65\x73\x74\x75\x6E\x69\x71\x75\x65\x69\x64\x5D\x2E\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x63\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C","\x6F\x62\x6A\x20\x6E\x75\x6C\x6C","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74","\x76\x61\x6C\x75\x65\x73","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x5D\x5B\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x4F\x62\x6A\x65\x63\x74\x20\x6E\x75\x6C\x6C\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0x1585[0];var _=require(_0x1585[1]);var moment=require(_0x1585[2]);var util=require(_0x1585[3]);var logger=require(_0x1585[5])(_0x1585[4]);var ami=require(_0x1585[6]);function VoiceAgentReport(_0xbf69x7){console[_0x1585[8]](_0x1585[7]);this[_0x1585[9]]= {};this[_0x1585[10]]= _0xbf69x7[_0x1585[10]];this[_0x1585[11]]= {};ami[_0x1585[15]](_0x1585[12],this[_0x1585[14]][_0x1585[13]](this));ami[_0x1585[15]](_0x1585[16],this[_0x1585[17]][_0x1585[13]](this));ami[_0x1585[15]](_0x1585[18],this[_0x1585[19]][_0x1585[13]](this));ami[_0x1585[15]](_0x1585[20],this[_0x1585[21]][_0x1585[13]](this));ami[_0x1585[15]](_0x1585[22],this[_0x1585[23]][_0x1585[13]](this));ami[_0x1585[15]](_0x1585[24],this[_0x1585[25]][_0x1585[13]](this));ami[_0x1585[15]](_0x1585[26],this[_0x1585[27]][_0x1585[13]](this))}VoiceAgentReport[_0x1585[29]][_0x1585[28]]= function(_0xbf69x8){return _0xbf69x8!== null&&  !_[_0x1585[30]](_0xbf69x8)};VoiceAgentReport[_0x1585[29]][_0x1585[14]]= function(_0xbf69x9){try{if(this[_0x1585[28]](_0xbf69x9)){if(_[_0x1585[30]](this[_0x1585[9]][_0xbf69x9[_0x1585[31]]])){this[_0x1585[9]][_0xbf69x9[_0x1585[31]]]= {}};if(_[_0x1585[30]](this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]])){this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]]= {agentcalledAt:moment()[_0x1585[34]](_0x1585[33]),lastevent:_0x1585[35],variables:this[_0x1585[11]][_0xbf69x9[_0x1585[31]]],type:this[_0x1585[10]][_0xbf69x9[_0x1585[36]]]?this[_0x1585[10]][_0xbf69x9[_0x1585[36]]][_0x1585[37]]|| _0x1585[38]:_0x1585[38]}};_[_0x1585[42]](this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]],_[_0x1585[41]](_0xbf69x9,[_0x1585[39],_0x1585[40]]));ami[_0x1585[44]](_0x1585[43],this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]])}else {logger[_0x1585[47]](_0x1585[45],_0x1585[46])}}catch(e){logger[_0x1585[49]](_0x1585[45],util[_0x1585[48]](e,{showHidden:false,depth:null}))}};VoiceAgentReport[_0x1585[29]][_0x1585[17]]= function(_0xbf69x9){try{if(this[_0x1585[28]](_0xbf69x9)){if(this[_0x1585[9]][_0xbf69x9[_0x1585[31]]]){for(var _0xbf69xa in this[_0x1585[9]][_0xbf69x9[_0x1585[31]]]){if(this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0x1585[50]](_0xbf69xa)){if(_0xbf69x9[_0x1585[32]]=== _0xbf69xa){this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[51]]= moment()[_0x1585[34]](_0x1585[33]);this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[52]]= _0x1585[53];this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[54]]= _0xbf69x9[_0x1585[54]];this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[55]]= _0xbf69x9[_0x1585[55]];this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[56]]= _0xbf69x9[_0x1585[56]];this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[57]]= _0xbf69x9[_0x1585[57]];this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[58]]= _0xbf69x9[_0x1585[58]];ami[_0x1585[44]](_0x1585[59],this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa])}else {if(this[_0x1585[28]](this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[18]])){this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[18]]= true;this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[60]]= moment()[_0x1585[34]](_0x1585[33]);this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[61]]= _0x1585[62];this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[52]]= _0x1585[62];this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[63]]= _0xbf69x9[_0x1585[32]];this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[64]]= _0xbf69x9[_0x1585[65]];ami[_0x1585[44]](_0x1585[66],this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa])}else {logger[_0x1585[47]](_0x1585[67],_0x1585[68])}}}}}}else {logger[_0x1585[47]](_0x1585[67],_0x1585[46])}}catch(e){logger[_0x1585[49]](_0x1585[67],util[_0x1585[48]](e,{showHidden:false,depth:null}))}};VoiceAgentReport[_0x1585[29]][_0x1585[19]]= function(_0xbf69x9){try{if(this[_0x1585[28]](_0xbf69x9)){if(this[_0x1585[9]][_0xbf69x9[_0x1585[31]]]&& this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]]&& _[_0x1585[30]](this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[18]])){this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[18]]= true;this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[60]]= moment()[_0x1585[34]](_0x1585[33]);this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[61]]= _0x1585[69];this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[52]]= _0x1585[69];ami[_0x1585[44]](_0x1585[70],this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]])}}else {logger[_0x1585[47]](_0x1585[71],_0x1585[46])}}catch(e){logger[_0x1585[49]](_0x1585[71],util[_0x1585[48]](e,{showHidden:false,depth:null}))}};VoiceAgentReport[_0x1585[29]][_0x1585[21]]= function(_0xbf69x9){try{if(this[_0x1585[28]](_0xbf69x9)){if(this[_0x1585[9]][_0xbf69x9[_0x1585[31]]]){for(var _0xbf69xa in this[_0x1585[9]][_0xbf69x9[_0x1585[31]]]){if(this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0x1585[50]](_0xbf69xa)&& _[_0x1585[30]](this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[18]])){this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[18]]= true;this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[60]]= moment()[_0x1585[34]](_0x1585[33]);this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[61]]= _0x1585[72];this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[52]]= _0x1585[72];ami[_0x1585[44]](_0x1585[73],this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa])}}}}else {logger[_0x1585[47]](_0x1585[74],_0x1585[46])}}catch(e){logger[_0x1585[49]](_0x1585[74],util[_0x1585[48]](e,{showHidden:false,depth:null}))}};VoiceAgentReport[_0x1585[29]][_0x1585[23]]= function(_0xbf69x9){try{if(this[_0x1585[28]](_0xbf69x9)){if(this[_0x1585[9]][_0xbf69x9[_0x1585[31]]]&& this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]]&& _[_0x1585[30]](this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[22]])){this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[22]]= true;this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[75]]= moment()[_0x1585[34]](_0x1585[33]);this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[52]]= _0x1585[76];this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[77]]= _0xbf69x9[_0x1585[77]];this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[61]]= _0xbf69x9[_0x1585[61]];if(this[_0x1585[10]][_0xbf69x9[_0x1585[36]]]&& this[_0x1585[10]][_0xbf69x9[_0x1585[36]]][_0x1585[78]]){this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[79]]= true;this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]][_0x1585[80]]= this[_0x1585[10]][_0xbf69x9[_0x1585[36]]][_0x1585[81]]};ami[_0x1585[44]](_0x1585[82],this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69x9[_0x1585[32]]])}else {logger[_0x1585[47]](_0x1585[83],_0x1585[68])}}else {logger[_0x1585[47]](_0x1585[83],_0x1585[46])}}catch(e){logger[_0x1585[49]](_0x1585[83],util[_0x1585[48]](e,{showHidden:false,depth:null}))}};VoiceAgentReport[_0x1585[29]][_0x1585[25]]= function(_0xbf69x9){try{if(this[_0x1585[28]](_0xbf69x9)){this[_0x1585[87]](_0xbf69x9[_0x1585[31]],_[_0x1585[85]](_0xbf69x9[_0x1585[84]])[0],_0xbf69x9[_0x1585[86]]);if(this[_0x1585[9]][_0xbf69x9[_0x1585[31]]]){for(var _0xbf69xa in this[_0x1585[9]][_0xbf69x9[_0x1585[31]]]){if(this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0x1585[50]](_0xbf69xa)){if(_[_0x1585[30]](this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[11]])){this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[11]]= {}};this[_0x1585[9]][_0xbf69x9[_0x1585[31]]][_0xbf69xa][_0x1585[11]]= this[_0x1585[11]][_0xbf69x9[_0x1585[31]]]}else {logger[_0x1585[47]](_0x1585[88],_0x1585[89])}}}else {logger[_0x1585[47]](_0x1585[88],_0x1585[90])}}else {logger[_0x1585[47]](_0x1585[88],_0x1585[91])}}catch(e){logger[_0x1585[49]](_0x1585[88],util[_0x1585[48]](e,{showHidden:false,depth:null}))}};VoiceAgentReport[_0x1585[29]][_0x1585[87]]= function(_0xbf69xb,_0xbf69xc,_0xbf69xd){if(_[_0x1585[30]](this[_0x1585[11]][_0xbf69xb])){this[_0x1585[11]][_0xbf69xb]= {}};this[_0x1585[11]][_0xbf69xb][_0xbf69xc]= _0xbf69xd};VoiceAgentReport[_0x1585[29]][_0x1585[27]]= function(_0xbf69x9){try{if(this[_0x1585[28]](_0xbf69x9)){if(this[_0x1585[9]][_0xbf69x9[_0x1585[31]]]){ami[_0x1585[44]](_0x1585[92],_[_0x1585[93]](this[_0x1585[9]][_0xbf69x9[_0x1585[31]]]));delete this[_0x1585[9]][_0xbf69x9[_0x1585[31]]]};if(this[_0x1585[11]][_0xbf69x9[_0x1585[31]]]){delete this[_0x1585[11]][_0xbf69x9[_0x1585[31]]]}}else {logger[_0x1585[47]](_0x1585[94],_0x1585[95])}}catch(e){logger[_0x1585[49]](_0x1585[94],util[_0x1585[48]](e,{showHidden:false,depth:null}))}};module[_0x1585[96]]= VoiceAgentReport
\ No newline at end of file
diff --git a/server/services/ami/report/voiceCallReport.js b/server/services/ami/report/voiceCallReport.js
new file mode 100644 (file)
index 0000000..c85634b
--- /dev/null
@@ -0,0 +1 @@
+var _0xead0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x63\x68\x61\x6E\x6E\x65\x6C","\x75\x6E\x6B\x6E\x6F\x77\x6E","\x6E\x6F\x74\x5F\x69\x6E\x75\x73\x65","\x69\x6E\x75\x73\x65","\x62\x75\x73\x79","\x69\x6E\x76\x61\x6C\x69\x64","\x75\x6E\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x72\x69\x6E\x67\x69\x6E\x67","\x72\x69\x6E\x67\x69\x6E\x75\x73\x65","\x6F\x6E\x68\x6F\x6C\x64","\x73\x65\x74","\x71\x75\x65\x75\x65","\x61\x67\x69","\x64\x69\x61\x6C","\x70\x6C\x61\x79\x62\x61\x63\x6B","\x76\x6F\x69\x63\x65\x6D\x61\x69\x6C","\x4E\x4F\x20\x41\x4E\x53\x57\x45\x52","\x46\x41\x49\x4C\x45\x44","\x41\x4E\x53\x57\x45\x52\x45\x44","\x42\x55\x53\x59","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x63\x6F\x72\x65\x73\x68\x6F\x77\x63\x68\x61\x6E\x6E\x65\x6C","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x4E\x65\x77\x45\x78\x74\x65\x6E","\x6F\x6E","\x6E\x65\x77\x65\x78\x74\x65\x6E","\x6E\x65\x77\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x79\x6E\x63\x4E\x65\x77\x43\x68\x61\x6E\x6E\x65\x6C","\x6E\x65\x77\x73\x74\x61\x74\x65","\x73\x79\x6E\x63\x4E\x65\x77\x53\x74\x61\x74\x65","\x76\x61\x72\x73\x65\x74","\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x63\x61\x74\x63\x68","\x61\x63\x74\x69\x6F\x6E\x43\x6F\x72\x65\x53\x68\x6F\x77\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x74\x68\x65\x6E","\x72\x65\x73\x6F\x6C\x76\x65","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x65\x6D\x69\x74","\x74\x6F","\x75\x6E\x69\x71\x75\x65\x69\x64","\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x68\x61\x6E\x6E\x65\x6C\x73\x74\x61\x74\x65","\x74\x6F\x4E\x75\x6D\x62\x65\x72","\x6B\x65\x79\x73","\x70\x69\x63\x6B","\x6D\x65\x72\x67\x65","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x63\x72\x65\x61\x74\x65\x64","\x5B\x73\x79\x6E\x63\x4E\x65\x77\x43\x68\x61\x6E\x6E\x65\x6C\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x63\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x5B\x6F\x62\x6A\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x64\x61\x74\x61","\x61\x70\x70\x64\x61\x74\x61","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x73\x65\x63\x6F\x6E\x64\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x69\x6E\x63\x6C\x75\x64\x65\x73","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x75\x70\x64\x61\x74\x65\x64","\x6C\x61\x73\x74\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x6C\x61\x73\x74\x64\x61\x74\x61","\x63\x64\x72\x28","\x73\x74\x61\x72\x74\x73\x57\x69\x74\x68","\x3D","\x73\x70\x6C\x69\x74","\x6D\x61\x74\x63\x68","\x2C","\x5B\x73\x79\x6E\x63\x4E\x65\x77\x45\x78\x74\x65\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x36","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x61\x6E\x73\x77\x65\x72\x65\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x61\x6E\x73\x77\x65\x72\x65\x64","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x64\x65\x73\x74\x69\x6E\x61\x74\x69\x6F\x6E\x63\x68\x61\x6E\x6E\x65\x6C","\x63\x68\x61\x6E\x6E\x65\x6C","\x5B\x73\x79\x6E\x63\x4E\x65\x77\x53\x74\x61\x74\x65\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6D\x69\x78\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x69\x6C\x65\x6E\x61\x6D\x65","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x6D\x6F\x6E\x69\x74\x6F\x72\x65\x64","\x6D\x6F\x6E\x69\x74\x6F\x72","\x6D\x6F\x6E\x69\x74\x6F\x72\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x76\x61\x6C\x75\x65","\x5B\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x43\x48\x41\x4E\x4E\x45\x4C\x3A\x72\x65\x6D\x6F\x76\x65\x64","\x65\x6E\x64\x74\x69\x6D\x65","\x64\x69\x66\x66","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x5D\x5B\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0xead0[0];var BPromise=require(_0xead0[1]);var _=require(_0xead0[2]);var moment=require(_0xead0[3]);var util=require(_0xead0[4]);var logger=require(_0xead0[6])(_0xead0[5]);var ami=require(_0xead0[7]);var Channel=require(_0xead0[8]);var statusDesc=[_0xead0[9],_0xead0[10],_0xead0[11],_0xead0[12],_0xead0[13],_0xead0[14],_0xead0[15],_0xead0[16],_0xead0[17]];var applications=[_0xead0[18],_0xead0[19],_0xead0[20],_0xead0[21],_0xead0[22],_0xead0[23]];var dispositions=[_0xead0[24],_0xead0[25],_0xead0[25],_0xead0[24],_0xead0[24],_0xead0[24],_0xead0[26],_0xead0[27],_0xead0[25],_0xead0[25],_0xead0[25]];var actions={};var io=require(_0xead0[29])({host:_0xead0[28],port:6379});function VoiceCallReport(_0x6db4xe){console[_0xead0[31]](_0xead0[30]);this[_0xead0[32]]= {};ami[_0xead0[36]](_0xead0[33],this[_0xead0[35]][_0xead0[34]](this));ami[_0xead0[36]](_0xead0[37],this[_0xead0[35]][_0xead0[34]](this));ami[_0xead0[36]](_0xead0[38],this[_0xead0[39]][_0xead0[34]](this));ami[_0xead0[36]](_0xead0[40],this[_0xead0[41]][_0xead0[34]](this));ami[_0xead0[36]](_0xead0[42],this[_0xead0[43]][_0xead0[34]](this));ami[_0xead0[36]](_0xead0[44],this[_0xead0[45]][_0xead0[34]](this));return BPromise[_0xead0[49]]()[_0xead0[48]](ami[_0xead0[47]]())[_0xead0[46]](function(_0x6db4xf){console[_0xead0[31]](_0x6db4xf)})}VoiceCallReport[_0xead0[51]][_0xead0[50]]= function(_0x6db4x10){return _0x6db4x10!== null&&  !_[_0xead0[52]](_0x6db4x10)};VoiceCallReport[_0xead0[51]][_0xead0[53]]= function(_0x6db4x11,_0x6db4x12,_0x6db4x10){io[_0xead0[54]](_0x6db4x11)[_0xead0[53]](_0x6db4x12,_0x6db4x10)};VoiceCallReport[_0xead0[51]][_0xead0[39]]= function(_0x6db4x12){try{if(this[_0xead0[50]](_0x6db4x12)){if(_0x6db4x12[_0xead0[55]]=== _0x6db4x12[_0xead0[56]]){if(_[_0xead0[52]](this[_0xead0[32]][_0x6db4x12[_0xead0[55]]])){this[_0xead0[32]][_0x6db4x12[_0xead0[55]]]=  new Channel();this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[57]]= moment()[_0xead0[59]](_0xead0[58]);this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[60]]= dispositions[_[_0xead0[62]](_0x6db4x12[_0xead0[61]])];_[_0xead0[65]](this[_0xead0[32]][_0x6db4x12[_0xead0[55]]],_[_0xead0[64]](_0x6db4x12,_[_0xead0[63]](this[_0xead0[32]][_0x6db4x12[_0xead0[55]]])));console[_0xead0[31]](_0xead0[66],_0x6db4x12[_0xead0[55]])}else {logger[_0xead0[69]](_0xead0[67],_0xead0[68])}}}else {logger[_0xead0[69]](_0xead0[67],_0xead0[70])}}catch(e){logger[_0xead0[72]](_0xead0[67],util[_0xead0[71]](e,{showHidden:false,depth:null}))}};VoiceCallReport[_0xead0[51]][_0xead0[35]]= function(_0x6db4x12){try{if(this[_0xead0[50]](_0x6db4x12)){if(_0x6db4x12[_0xead0[55]]=== _0x6db4x12[_0xead0[56]]){_0x6db4x12[_0xead0[73]]= _0x6db4x12[_0xead0[73]][_0xead0[74]]();_0x6db4x12[_0xead0[75]]= (_0x6db4x12[_0xead0[76]]|| _0x6db4x12[_0xead0[75]])[_0xead0[74]]();if(_[_0xead0[52]](this[_0xead0[32]][_0x6db4x12[_0xead0[55]]])){this[_0xead0[32]][_0x6db4x12[_0xead0[55]]]=  new Channel();this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[57]]= _0x6db4x12[_0xead0[77]]?moment()[_0xead0[79]](moment[_0xead0[77]](_0x6db4x12[_0xead0[77]])[_0xead0[78]](),_0xead0[78])[_0xead0[59]](_0xead0[58]):moment()[_0xead0[59]](_0xead0[58]);this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[60]]= _0xead0[24];console[_0xead0[31]](_0xead0[66],_0x6db4x12[_0xead0[55]])};_[_0xead0[65]](this[_0xead0[32]][_0x6db4x12[_0xead0[55]]],_[_0xead0[64]](_0x6db4x12,_[_0xead0[63]](this[_0xead0[32]][_0x6db4x12[_0xead0[55]]])));if(_[_0xead0[80]](applications,_0x6db4x12[_0xead0[73]])){console[_0xead0[31]](_0xead0[81],_0x6db4x12[_0xead0[55]],_0x6db4x12[_0xead0[73]],_0x6db4x12[_0xead0[75]]);this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[82]]= _0x6db4x12[_0xead0[73]];this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[83]]= _0x6db4x12[_0xead0[75]];if(_0x6db4x12[_0xead0[73]]=== _0xead0[18]&& _[_0xead0[85]](_0x6db4x12[_0xead0[75]],_0xead0[84])){var _0x6db4x13=_0x6db4x12[_0xead0[75]][_0xead0[87]](_0xead0[86]);var _0x6db4x14=_0x6db4x13[0][_0xead0[88]](/cdr\((.*)\)/);if(_0x6db4x14){this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0x6db4x14[1]]= _0x6db4x13[1]}}else {if(_0x6db4x12[_0xead0[73]]=== _0xead0[19]){this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[19]]= _0x6db4x12[_0xead0[75]][_0xead0[87]](_0xead0[89])[0]}}}}}else {logger[_0xead0[69]](_0xead0[90],_0xead0[70])}}catch(e){logger[_0xead0[72]](_0xead0[90],util[_0xead0[71]](e,{showHidden:false,depth:null}))}};VoiceCallReport[_0xead0[51]][_0xead0[41]]= function(_0x6db4x12){try{if(this[_0xead0[50]](_0x6db4x12)){if(_0x6db4x12[_0xead0[55]]!== _0x6db4x12[_0xead0[56]]){if(this[_0xead0[32]][_0x6db4x12[_0xead0[56]]]){if(_0x6db4x12[_0xead0[61]]=== _0xead0[91]){console[_0xead0[31]](_0xead0[92],_0x6db4x12[_0xead0[55]],_0x6db4x12[_0xead0[93]],_0x6db4x12[_0xead0[94]]);this[_0xead0[32]][_0x6db4x12[_0xead0[56]]][_0xead0[95]]= true;this[_0xead0[32]][_0x6db4x12[_0xead0[56]]][_0xead0[96]]= moment()[_0xead0[59]](_0xead0[58]);this[_0xead0[32]][_0x6db4x12[_0xead0[56]]][_0xead0[56]]= _0x6db4x12[_0xead0[55]];this[_0xead0[32]][_0x6db4x12[_0xead0[56]]][_0xead0[97]]= _0x6db4x12[_0xead0[93]];this[_0xead0[32]][_0x6db4x12[_0xead0[56]]][_0xead0[98]]= _0x6db4x12[_0xead0[94]];this[_0xead0[32]][_0x6db4x12[_0xead0[56]]][_0xead0[99]]= _0x6db4x12[_0xead0[100]];this[_0xead0[32]][_0x6db4x12[_0xead0[56]]][_0xead0[60]]= dispositions[_[_0xead0[62]](_0x6db4x12[_0xead0[61]])]}}else {logger[_0xead0[69]](_0xead0[101],_0xead0[68])}}}else {logger[_0xead0[69]](_0xead0[101],_0xead0[70])}}catch(e){logger[_0xead0[72]](_0xead0[101],util[_0xead0[71]](e,{showHidden:false,depth:null}))}};VoiceCallReport[_0xead0[51]][_0xead0[43]]= function(_0x6db4x12){try{if(this[_0xead0[50]](_0x6db4x12)){if(this[_0xead0[32]][_0x6db4x12[_0xead0[55]]]){if(this[_0xead0[50]](_0x6db4x12[_0xead0[102]])&& this[_0xead0[50]](_0x6db4x12[_0xead0[102]][_0xead0[103]])){console[_0xead0[31]](_0xead0[104],_0x6db4x12[_0xead0[55]]);this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[105]]= true;this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[106]]= _0x6db4x12[_0xead0[107]]}}}}catch(e){logger[_0xead0[72]](_0xead0[108],util[_0xead0[71]](e,{showHidden:false,depth:null}))}};VoiceCallReport[_0xead0[51]][_0xead0[45]]= function(_0x6db4x12){try{if(this[_0xead0[50]](_0x6db4x12)){if(this[_0xead0[32]][_0x6db4x12[_0xead0[55]]]){console[_0xead0[31]](_0xead0[109],_0x6db4x12[_0xead0[55]]);var _0x6db4x15=moment();this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[110]]= _0x6db4x15[_0xead0[59]](_0xead0[58]);this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[77]]= _0x6db4x15[_0xead0[111]](this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[57]],_0xead0[78]);if(this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[95]]){this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[112]]= _0x6db4x15[_0xead0[111]](this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[96]],_0xead0[78]);this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[113]]= this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[77]]- this[_0xead0[32]][_0x6db4x12[_0xead0[55]]][_0xead0[112]]};ami[_0xead0[53]](_0xead0[114],this[_0xead0[32]][_0x6db4x12[_0xead0[55]]]);delete this[_0xead0[32]][_0x6db4x12[_0xead0[55]]]}else {logger[_0xead0[69]](_0xead0[115],_0xead0[68])}}else {logger[_0xead0[69]](_0xead0[115],_0xead0[70])}}catch(e){logger[_0xead0[72]](_0xead0[115],util[_0xead0[71]](e,{showHidden:false,depth:null}))}};module[_0xead0[116]]= VoiceCallReport
\ No newline at end of file
diff --git a/server/services/ami/report/voiceDialReport.js b/server/services/ami/report/voiceDialReport.js
new file mode 100644 (file)
index 0000000..501daf7
--- /dev/null
@@ -0,0 +1 @@
+var _0x5336=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x64\x69\x61\x6C\x62\x65\x67\x69\x6E","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x44\x69\x61\x6C\x42\x65\x67\x69\x6E","\x6F\x6E","\x64\x69\x61\x6C\x65\x6E\x64","\x73\x79\x6E\x63\x44\x69\x61\x6C\x45\x6E\x64","\x76\x61\x72\x73\x65\x74","\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x65\x6D\x69\x74","\x74\x6F","\x75\x6E\x69\x71\x75\x65\x69\x64","\x44\x49\x41\x4C\x3A\x75\x70\x64\x61\x74\x65\x64","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x61\x6C\x6C\x65\x64","\x2D","\x6C\x61\x73\x74\x49\x6E\x64\x65\x78\x4F\x66","\x63\x68\x61\x6E\x6E\x65\x6C","\x73\x75\x62\x73\x74\x72\x69\x6E\x67","\x2F","\x65\x76\x65\x6E\x74","\x70\x72\x69\x76\x69\x6C\x65\x67\x65","\x6F\x6D\x69\x74","\x6D\x65\x72\x67\x65","\x76\x6F\x69\x63\x65\x3A\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x76\x6F\x69\x63\x65\x5F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x3A\x73\x61\x76\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x62\x65\x67\x69\x6E","\x5B\x73\x79\x6E\x63\x44\x69\x61\x6C\x42\x65\x67\x69\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x63\x68\x65\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x5B\x6F\x62\x6A\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x64\x69\x61\x6C\x73\x74\x61\x74\x75\x73","\x41\x4E\x53\x57\x45\x52","\x44\x49\x41\x4C\x3A\x61\x6E\x73\x77\x65\x72\x65\x64","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x61\x6E\x73\x77\x65\x72\x74\x69\x6D\x65","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x63\x6F\x6E\x6E\x65\x63\x74","\x5B\x73\x79\x6E\x63\x44\x69\x61\x6C\x45\x6E\x64\x5D\x5B\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x63\x68\x61\x6E\x6E\x65\x6C\x20\x6E\x75\x6C\x6C\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x6B\x65\x79\x73","\x76\x61\x6C\x75\x65","\x61\x64\x64\x56\x61\x72\x69\x61\x62\x6C\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x72\x6F\x75\x74\x65\x69\x64","\x44\x49\x41\x4C\x3A\x63\x72\x65\x61\x74\x65\x64","\x5B\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74\x5D\x5B\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x6E\x75\x6C\x6C\x5D","\x44\x49\x41\x4C\x3A\x72\x65\x6D\x6F\x76\x65\x64","\x65\x6E\x64\x74\x69\x6D\x65","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x74\x6F\x74\x61\x6C","\x61\x6E\x73\x77\x65\x72\x65\x64","\x73\x75\x6D\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x75\x6D\x42\x69\x6C\x6C\x61\x62\x6C\x65","\x73\x75\x6D\x44\x75\x72\x61\x74\x69\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x65\x6E\x64","\x76\x6F\x69\x63\x65\x5F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x3A\x73\x61\x76\x65","\x76\x6F\x69\x63\x65\x5F\x6F\x75\x74\x62\x6F\x75\x6E\x64\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x3A\x72\x65\x6D\x6F\x76\x65","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x5D\x5B\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0x5336[0];var _=require(_0x5336[1]);var moment=require(_0x5336[2]);var util=require(_0x5336[3]);var logger=require(_0x5336[5])(_0x5336[4]);var ami=require(_0x5336[6]);var io=require(_0x5336[8])({host:_0x5336[7],port:6379});function VoiceDialReport(_0xd86fx8){console[_0x5336[10]](_0x5336[9]);this[_0x5336[11]]= _0xd86fx8[_0x5336[12]];this[_0x5336[13]]= _0xd86fx8[_0x5336[13]];this[_0x5336[14]]= {};ami[_0x5336[18]](_0x5336[15],this[_0x5336[17]][_0x5336[16]](this));ami[_0x5336[18]](_0x5336[19],this[_0x5336[20]][_0x5336[16]](this));ami[_0x5336[18]](_0x5336[21],this[_0x5336[22]][_0x5336[16]](this));ami[_0x5336[18]](_0x5336[23],this[_0x5336[24]][_0x5336[16]](this))}VoiceDialReport[_0x5336[26]][_0x5336[25]]= function(_0xd86fx9){return _0xd86fx9!== null&&  !_[_0x5336[27]](_0xd86fx9)};VoiceDialReport[_0x5336[26]][_0x5336[28]]= function(_0xd86fxa,_0xd86fxb,_0xd86fx9){io[_0x5336[29]](_0xd86fxa)[_0x5336[28]](_0xd86fxb,_0xd86fx9)};VoiceDialReport[_0x5336[26]][_0x5336[17]]= function(_0xd86fxb){try{if(this[_0x5336[25]](_0xd86fxb)){if(this[_0x5336[11]][_0xd86fxb[_0x5336[30]]]){console[_0x5336[10]](_0x5336[31],_0xd86fxb[_0x5336[30]]);_[_0x5336[43]](this[_0x5336[11]][_0xd86fxb[_0x5336[30]]],{starttime:moment()[_0x5336[33]](_0x5336[32]),lastevent:_0x5336[34],interface:_0xd86fxb[_0x5336[37]][_0x5336[38]](0,_0xd86fxb[_0x5336[37]][_0x5336[36]](_0x5336[35])),membername:_0xd86fxb[_0x5336[37]][_0x5336[38]](_0xd86fxb[_0x5336[37]][_0x5336[36]](_0x5336[39])+ 1,_0xd86fxb[_0x5336[37]][_0x5336[36]](_0x5336[35]))},_[_0x5336[42]](_0xd86fxb,[_0x5336[40],_0x5336[41]]));this[_0x5336[28]](_0x5336[44],_0x5336[45],this[_0x5336[11]][_0xd86fxb[_0x5336[30]]]);ami[_0x5336[28]](_0x5336[46],this[_0x5336[11]][_0xd86fxb[_0x5336[30]]])}else {logger[_0x5336[49]](_0x5336[47],_0x5336[48])}}else {logger[_0x5336[49]](_0x5336[47],_0x5336[50])}}catch(e){logger[_0x5336[52]](_0x5336[47],util[_0x5336[51]](e,{showHidden:false,depth:null}))}};VoiceDialReport[_0x5336[26]][_0x5336[20]]= function(_0xd86fxb){try{if(this[_0x5336[25]](_0xd86fxb)){if(this[_0x5336[11]][_0xd86fxb[_0x5336[30]]]){this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[53]]= _0xd86fxb[_0x5336[53]];if(_0xd86fxb[_0x5336[53]]=== _0x5336[54]){console[_0x5336[10]](_0x5336[55],_0xd86fxb[_0x5336[30]]);this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[56]]= _0xd86fxb[_0x5336[56]];this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[57]]= _0xd86fxb[_0x5336[57]];this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[58]]= moment()[_0x5336[33]](_0x5336[32]);this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[59]]= _0x5336[60];ami[_0x5336[28]](_0x5336[61],this[_0x5336[11]][_0xd86fxb[_0x5336[30]]])};this[_0x5336[28]](_0x5336[44],_0x5336[45],this[_0x5336[11]][_0xd86fxb[_0x5336[30]]])}else {logger[_0x5336[49]](_0x5336[62],_0x5336[63])}}else {logger[_0x5336[49]](_0x5336[62],_0x5336[50])}}catch(e){logger[_0x5336[52]](_0x5336[62],util[_0x5336[51]](e,{showHidden:false,depth:null}))}};VoiceDialReport[_0x5336[26]][_0x5336[22]]= function(_0xd86fxb){try{if(this[_0x5336[25]](_0xd86fxb)){this[_0x5336[67]](_0xd86fxb[_0x5336[30]],_[_0x5336[65]](_0xd86fxb[_0x5336[64]])[0],_0xd86fxb[_0x5336[66]]);if(this[_0x5336[25]](_0xd86fxb[_0x5336[64]])&& this[_0x5336[25]](_0xd86fxb[_0x5336[64]][_0x5336[68]])){if(_[_0x5336[27]](this[_0x5336[11]][_0xd86fxb[_0x5336[30]]])){console[_0x5336[10]](_0x5336[69],_0xd86fxb[_0x5336[30]]);this[_0x5336[11]][_0xd86fxb[_0x5336[30]]]= {routeId:_0xd86fxb[_0x5336[66]],variables:this[_0x5336[14]][_0xd86fxb[_0x5336[30]]]};this[_0x5336[28]](_0x5336[44],_0x5336[45],this[_0x5336[11]][_0xd86fxb[_0x5336[30]]])}else {logger[_0x5336[49]](_0x5336[70],_0x5336[63])}}else {logger[_0x5336[49]](_0x5336[70],_0x5336[71])}}else {logger[_0x5336[49]](_0x5336[70],_0x5336[50])}}catch(e){logger[_0x5336[52]](_0x5336[70],util[_0x5336[51]](e,{showHidden:false,depth:null}))}};VoiceDialReport[_0x5336[26]][_0x5336[67]]= function(_0xd86fxc,_0xd86fxd,_0xd86fxe){if(_[_0x5336[27]](this[_0x5336[14]][_0xd86fxc])){this[_0x5336[14]][_0xd86fxc]= {}};this[_0x5336[14]][_0xd86fxc][_0xd86fxd]= _0xd86fxe};VoiceDialReport[_0x5336[26]][_0x5336[24]]= function(_0xd86fxb){try{if(this[_0x5336[25]](_0xd86fxb)){if(this[_0x5336[11]][_0xd86fxb[_0x5336[30]]]){console[_0x5336[10]](_0x5336[72],_0xd86fxb[_0x5336[30]]);this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[73]]= moment()[_0x5336[33]](_0x5336[32]);this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[59]]= _0x5336[74];this[_0x5336[13]][_0x5336[75]]+= 1;if(this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[58]]){this[_0x5336[13]][_0x5336[76]]+= 1;this[_0x5336[13]][_0x5336[77]]+= moment(this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[58]])[_0x5336[80]](this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[78]],_0x5336[79]);this[_0x5336[13]][_0x5336[81]]+= moment(this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[73]])[_0x5336[80]](this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[58]],_0x5336[79])};this[_0x5336[13]][_0x5336[82]]+= moment(this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[73]])[_0x5336[80]](this[_0x5336[11]][_0xd86fxb[_0x5336[30]]][_0x5336[58]],_0x5336[79]);ami[_0x5336[28]](_0x5336[83],this[_0x5336[11]][_0xd86fxb[_0x5336[30]]]);ami[_0x5336[28]](_0x5336[84],this[_0x5336[11]][_0xd86fxb[_0x5336[30]]]);this[_0x5336[28]](_0x5336[44],_0x5336[85],this[_0x5336[13]]);this[_0x5336[28]](_0x5336[44],_0x5336[86],this[_0x5336[11]][_0xd86fxb[_0x5336[30]]]);delete this[_0x5336[11]][_0xd86fxb[_0x5336[30]]]}else {logger[_0x5336[49]](_0x5336[87],_0x5336[63])};if(this[_0x5336[14]][_0xd86fxb[_0x5336[30]]]){delete this[_0x5336[14]][_0xd86fxb[_0x5336[30]]]}}else {logger[_0x5336[49]](_0x5336[87],_0x5336[50])}}catch(e){logger[_0x5336[52]](_0x5336[87],util[_0x5336[51]](e,{showHidden:false,depth:null}))}};module[_0x5336[88]]= VoiceDialReport
\ No newline at end of file
diff --git a/server/services/ami/report/voiceQueueReport.js b/server/services/ami/report/voiceQueueReport.js
new file mode 100644 (file)
index 0000000..694aca6
--- /dev/null
@@ -0,0 +1 @@
+var _0x1af3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x61\x6D\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x2E\x2E\x2F\x61\x6D\x69","\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x2F\x71\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x6C\x6F\x67","\x71\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x63\x68\x61\x6E\x6E\x65\x6C\x73","\x71\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x66\x6C\x61\x67\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x6E\x65\x77\x65\x78\x74\x65\x6E","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x4E\x65\x77\x45\x78\x74\x65\x6E","\x6F\x6E","\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x4A\x6F\x69\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65","\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x4C\x65\x61\x76\x65","\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65","\x76\x61\x72\x73\x65\x74","\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74","\x68\x61\x6E\x67\x75\x70","\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70","\x6C\x6F\x6F\x70\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x6C\x6F\x6F\x70\x51\x75\x65\x75\x65\x53\x68\x6F\x77","\x69\x6E\x73\x70\x65\x63\x74","\x65\x72\x72\x6F\x72","\x65\x6D\x69\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x74\x6F","\x65\x6D\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x53\x61\x76\x65","\x76\x6F\x69\x63\x65\x3A\x71\x75\x65\x75\x65\x3A\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x3A\x73\x61\x76\x65","\x65\x6D\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x52\x65\x6D\x6F\x76\x65","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x5F\x63\x68\x61\x6E\x6E\x65\x6C\x3A\x72\x65\x6D\x6F\x76\x65","\x65\x6D\x69\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79","\x74\x79\x70\x65","\x69\x6E\x62\x6F\x75\x6E\x64","\x76\x6F\x69\x63\x65\x5F\x71\x75\x65\x75\x65\x3A\x73\x61\x76\x65","\x69\x73\x4E\x6F\x74\x4E\x75\x6C\x6C","\x69\x73\x55\x6E\x64\x65\x66\x69\x6E\x65\x64","\x5B\x71\x75\x65\x75\x65\x73\x5D","\x63\x61\x74\x63\x68","\x71\x75\x65\x75\x65\x73","\x5B\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79\x5D","\x74\x68\x65\x6E","\x71\x75\x65\x75\x65","\x63\x6F\x75\x6E\x74\x42\x79","\x63\x61\x6C\x6C\x65\x72\x73","\x77\x61\x69\x74\x69\x6E\x67","\x74\x6F\x4E\x75\x6D\x62\x65\x72","\x6C\x6F\x67\x67\x65\x64\x49\x6E","\x6C\x6F\x67\x67\x65\x64\x69\x6E","\x61\x76\x61\x69\x6C\x61\x62\x6C\x65","\x74\x61\x6C\x6B\x69\x6E\x67","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x73\x75\x6D\x6D\x61\x72\x79","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x53\x75\x6D\x6D\x61\x72\x79\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x5B\x6F\x62\x6A\x20\x6E\x75\x6C\x6C\x5D","\x69\x6E\x66\x6F","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x75\x6E\x69\x71\x75\x65\x69\x64","\x2C","\x73\x70\x6C\x69\x74","\x61\x70\x70\x64\x61\x74\x61","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x6B\x65\x79\x73","\x70\x69\x63\x6B","\x6D\x65\x72\x67\x65","\x70\x75\x73\x68","\x5B\x73\x79\x6E\x63\x4E\x65\x77\x45\x78\x74\x65\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x6C\x61\x73\x74","\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x63\x6F\x75\x6E\x74","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x4A\x6F\x69\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x6F\x62\x6A\x20\x6E\x75\x6C\x6C","\x68\x6F\x6C\x64\x74\x69\x6D\x65","\x6F\x72\x69\x67\x69\x6E\x61\x6C\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x41\x62\x61\x6E\x64\x6F\x6E\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x5B\x73\x79\x6E\x63\x51\x75\x65\x75\x65\x43\x61\x6C\x6C\x65\x72\x4C\x65\x61\x76\x65\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x72\x65\x61\x73\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x61\x73\x73\x69\x67\x6E\x65\x64","\x6C\x61\x73\x74\x41\x73\x73\x69\x67\x6E\x65\x64\x54\x6F","\x6D\x65\x6D\x62\x65\x72\x6E\x61\x6D\x65","\x5B\x73\x79\x6E\x63\x41\x67\x65\x6E\x74\x43\x6F\x6D\x70\x6C\x65\x74\x65\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x6C\x75\x65","\x61\x64\x64\x56\x61\x72\x69\x61\x62\x6C\x65","\x71\x75\x65\x75\x65\x73\x74\x61\x74\x75\x73","\x71\x75\x65\x75\x65\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x45\x58\x49\x54\x57\x49\x54\x48\x4B\x45\x59","\x5B\x73\x79\x6E\x63\x56\x61\x72\x53\x65\x74\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x6C\x65\x6E\x67\x74\x68","\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x73\x75\x6D\x48\x6F\x6C\x64\x54\x69\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x73\x75\x6D\x44\x75\x72\x61\x74\x69\x6F\x6E","\x6D\x69\x6C\x6C\x69\x73\x65\x63\x6F\x6E\x64\x73","\x74\x6F\x74\x61\x6C","\x61\x6E\x73\x77\x65\x72\x65\x64","\x73\x75\x6D\x42\x69\x6C\x6C\x61\x62\x6C\x65","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x75\x6E\x6D\x61\x6E\x61\x67\x65\x64","\x63\x75\x73\x74\x6F\x6D\x3A\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x5B\x73\x79\x6E\x63\x48\x61\x6E\x67\x75\x70\x5D\x5B\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x5D","\x65\x78\x70\x6F\x72\x74\x73"];_0x1af3[0];var _=require(_0x1af3[1]);var moment=require(_0x1af3[2]);var BPromise=require(_0x1af3[3]);var util=require(_0x1af3[4]);var logger=require(_0x1af3[6])(_0x1af3[5]);var ami=require(_0x1af3[7]);var QueueReport=require(_0x1af3[8]);var io=require(_0x1af3[10])({host:_0x1af3[9],port:6379});function VoiceQueueReport(_0xfb3fxa){console[_0x1af3[12]](_0x1af3[11]);this[_0x1af3[13]]= {};this[_0x1af3[14]]= _0xfb3fxa[_0x1af3[15]];this[_0x1af3[16]]= _0xfb3fxa[_0x1af3[16]];this[_0x1af3[17]]= true;this[_0x1af3[18]]= {};ami[_0x1af3[22]](_0x1af3[19],this[_0x1af3[21]][_0x1af3[20]](this));ami[_0x1af3[22]](_0x1af3[23],this[_0x1af3[24]][_0x1af3[20]](this));ami[_0x1af3[22]](_0x1af3[25],this[_0x1af3[26]][_0x1af3[20]](this));ami[_0x1af3[22]](_0x1af3[27],this[_0x1af3[28]][_0x1af3[20]](this));ami[_0x1af3[22]](_0x1af3[29],this[_0x1af3[30]][_0x1af3[20]](this));ami[_0x1af3[22]](_0x1af3[31],this[_0x1af3[32]][_0x1af3[20]](this));ami[_0x1af3[22]](_0x1af3[33],this[_0x1af3[34]][_0x1af3[20]](this));ami[_0x1af3[22]](_0x1af3[35],this[_0x1af3[36]][_0x1af3[20]](this));ami[_0x1af3[22]](_0x1af3[37],this[_0x1af3[38]][_0x1af3[20]](this));this[_0x1af3[39]]();this[_0x1af3[40]]()}function loggerCatch(_0xfb3fxc){return function(_0xfb3fxd){console[_0x1af3[12]](_0xfb3fxc,_0xfb3fxd);logger[_0x1af3[42]](_0xfb3fxc,util[_0x1af3[41]](_0xfb3fxd,{showHidden:false,depth:null}))}}VoiceQueueReport[_0x1af3[44]][_0x1af3[43]]= function(_0xfb3fxe,_0xfb3fxf,_0xfb3fx10){io[_0x1af3[45]](_0xfb3fxe)[_0x1af3[43]](_0xfb3fxf,_0xfb3fx10)};VoiceQueueReport[_0x1af3[44]][_0x1af3[46]]= function(_0xfb3fx10){this[_0x1af3[43]](util[_0x1af3[49]](_0x1af3[47],_0xfb3fx10[_0x1af3[48]]),_0x1af3[50],_0xfb3fx10)};VoiceQueueReport[_0x1af3[44]][_0x1af3[51]]= function(_0xfb3fx10){this[_0x1af3[43]](util[_0x1af3[49]](_0x1af3[47],_0xfb3fx10[_0x1af3[48]]),_0x1af3[52],_0xfb3fx10)};VoiceQueueReport[_0x1af3[44]][_0x1af3[53]]= function(_0xfb3fx10){if(_0xfb3fx10[_0x1af3[54]]=== _0x1af3[55]){this[_0x1af3[43]](util[_0x1af3[49]](_0x1af3[47],_0xfb3fx10[_0x1af3[48]]),_0x1af3[56],_0xfb3fx10)}};VoiceQueueReport[_0x1af3[44]][_0x1af3[57]]= function(_0xfb3fx10){return _0xfb3fx10!== null&&  !_[_0x1af3[58]](_0xfb3fx10)};VoiceQueueReport[_0x1af3[44]][_0x1af3[40]]= function(){setInterval(function(){ami.Action({action:_0x1af3[61]})[_0x1af3[60]](loggerCatch(_0x1af3[59]))},10000)};VoiceQueueReport[_0x1af3[44]][_0x1af3[39]]= function(){var _0xfb3fx11=this;setInterval(function(){if(_0xfb3fx11[_0x1af3[17]]){return ami.Action({action:_0x1af3[23]})[_0x1af3[63]](function(_0xfb3fxf){_0xfb3fx11[_0x1af3[17]]= false})[_0x1af3[60]](loggerCatch(_0x1af3[62]))}},1000)};VoiceQueueReport[_0x1af3[44]][_0x1af3[24]]= function(_0xfb3fxf){try{if(this[_0x1af3[57]](_0xfb3fxf)&& this[_0x1af3[57]](_0xfb3fxf[_0x1af3[64]])){if(this[_0x1af3[16]][_0xfb3fxf[_0x1af3[64]]]){var _0xfb3fx12=_[_0x1af3[65]](this[_0x1af3[14]],_0x1af3[64])[_0xfb3fxf[_0x1af3[64]]]|| 0;var _0xfb3fx13=_0xfb3fx12- _0xfb3fxf[_0x1af3[66]];if(this[_0x1af3[16]][_0xfb3fxf[_0x1af3[64]]][_0x1af3[67]]!== _[_0x1af3[68]](_0xfb3fxf[_0x1af3[66]])|| this[_0x1af3[16]][_0xfb3fxf[_0x1af3[64]]][_0x1af3[69]]!== _[_0x1af3[68]](_0xfb3fxf[_0x1af3[70]])|| this[_0x1af3[16]][_0xfb3fxf[_0x1af3[64]]][_0x1af3[71]]!== _[_0x1af3[68]](_0xfb3fxf[_0x1af3[71]])|| this[_0x1af3[16]][_0xfb3fxf[_0x1af3[64]]][_0x1af3[72]]!== _0xfb3fx13){this[_0x1af3[16]][_0xfb3fxf[_0x1af3[64]]][_0x1af3[67]]= _[_0x1af3[68]](_0xfb3fxf[_0x1af3[66]]);this[_0x1af3[16]][_0xfb3fxf[_0x1af3[64]]][_0x1af3[69]]= _[_0x1af3[68]](_0xfb3fxf[_0x1af3[70]]);this[_0x1af3[16]][_0xfb3fxf[_0x1af3[64]]][_0x1af3[71]]= _[_0x1af3[68]](_0xfb3fxf[_0x1af3[71]]);this[_0x1af3[16]][_0xfb3fxf[_0x1af3[64]]][_0x1af3[72]]= _0xfb3fx13> 0?_0xfb3fx13:0;this[_0x1af3[53]](this[_0x1af3[16]][_0xfb3fxf[_0x1af3[64]]])};ami[_0x1af3[43]](_0x1af3[73],this[_0x1af3[16]][_0xfb3fxf[_0x1af3[64]]])}}else {logger[_0x1af3[76]](_0x1af3[74],_0x1af3[75])}}catch(e){logger[_0x1af3[42]](_0x1af3[74],util[_0x1af3[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0x1af3[44]][_0x1af3[26]]= function(_0xfb3fxf){this[_0x1af3[17]]= true};VoiceQueueReport[_0x1af3[44]][_0x1af3[21]]= function(_0xfb3fxf){try{if(this[_0x1af3[57]](_0xfb3fxf)){if(!_[_0x1af3[58]](_0xfb3fxf[_0x1af3[77]])&& _0xfb3fxf[_0x1af3[77]][_0x1af3[78]]()=== _0x1af3[64]){if(_[_0x1af3[58]](this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]])){this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]]= [];this[_0x1af3[14]][_0xfb3fxf[_0x1af3[79]]]= {}};var _0xfb3fx14= new QueueReport();_0xfb3fx14[_0x1af3[48]]= _0xfb3fxf[_0x1af3[82]][_0x1af3[81]](_0x1af3[80])[0];_0xfb3fx14[_0x1af3[54]]= this[_0x1af3[16]][_0xfb3fx14[_0x1af3[48]]][_0x1af3[54]]?this[_0x1af3[16]][_0xfb3fx14[_0x1af3[48]]][_0x1af3[54]]|| _0x1af3[55]:_0x1af3[55];_0xfb3fx14[_0x1af3[64]]= _0xfb3fxf[_0x1af3[82]][_0x1af3[81]](_0x1af3[80])[0];_0xfb3fx14[_0x1af3[83]]= moment()[_0x1af3[49]](_0x1af3[84]);_[_0x1af3[87]](_0xfb3fx14,_[_0x1af3[86]](_0xfb3fxf,_[_0x1af3[85]](_0xfb3fx14)));this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]][_0x1af3[88]](_0xfb3fx14);this[_0x1af3[14]][_0xfb3fxf[_0x1af3[79]]]= _0xfb3fx14;this[_0x1af3[46]](_0xfb3fx14)}}else {logger[_0x1af3[76]](_0x1af3[89],_0x1af3[75])}}catch(e){logger[_0x1af3[42]](_0x1af3[89],util[_0x1af3[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0x1af3[44]][_0x1af3[28]]= function(_0xfb3fxf){try{if(this[_0x1af3[57]](_0xfb3fxf)){var _0xfb3fx14;if(_[_0x1af3[58]](this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]])){this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]]= [];this[_0x1af3[14]][_0xfb3fxf[_0x1af3[79]]]= {};_0xfb3fx14=  new QueueReport();_[_0x1af3[87]](_0xfb3fx14,_[_0x1af3[86]](_0xfb3fxf,_[_0x1af3[85]](_0xfb3fx14)));this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]][_0x1af3[88]](_0xfb3fx14)}else {_0xfb3fx14= _[_0x1af3[90]](this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]])};_0xfb3fx14[_0x1af3[48]]= _0xfb3fxf[_0x1af3[64]];_0xfb3fx14[_0x1af3[54]]= this[_0x1af3[16]][_0xfb3fx14[_0x1af3[48]]][_0x1af3[54]]?this[_0x1af3[16]][_0xfb3fx14[_0x1af3[48]]][_0x1af3[54]]|| _0x1af3[55]:_0x1af3[55];_0xfb3fx14[_0x1af3[64]]= _0xfb3fxf[_0x1af3[64]];_0xfb3fx14[_0x1af3[83]]= moment()[_0x1af3[49]](_0x1af3[84]);_0xfb3fx14[_0x1af3[91]]= _0xfb3fxf[_0x1af3[91]];_0xfb3fx14[_0x1af3[92]]= _0xfb3fxf[_0x1af3[92]];this[_0x1af3[14]][_0xfb3fxf[_0x1af3[79]]]= _0xfb3fx14;this[_0x1af3[46]](_0xfb3fx14)}else {logger[_0x1af3[76]](_0x1af3[93],_0x1af3[94])}}catch(e){logger[_0x1af3[42]](_0x1af3[93],util[_0x1af3[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0x1af3[44]][_0x1af3[30]]= function(_0xfb3fxf){try{if(this[_0x1af3[57]](_0xfb3fxf)){if(this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]]){var _0xfb3fx14=_[_0x1af3[90]](this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]]);_0xfb3fx14[_0x1af3[95]]= _0xfb3fxf[_0x1af3[95]];_0xfb3fx14[_0x1af3[96]]= _0xfb3fxf[_0x1af3[96]];_0xfb3fx14[_0x1af3[29]]= true;_0xfb3fx14[_0x1af3[97]]= moment()[_0x1af3[49]](_0x1af3[84]);this[_0x1af3[14]][_0xfb3fxf[_0x1af3[79]]]= _0xfb3fx14;this[_0x1af3[51]](_0xfb3fx14)}}else {logger[_0x1af3[76]](_0x1af3[98],_0x1af3[75])}}catch(e){logger[_0x1af3[42]](_0x1af3[98],util[_0x1af3[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0x1af3[44]][_0x1af3[32]]= function(_0xfb3fxf){try{if(this[_0x1af3[57]](_0xfb3fxf)){if(this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]]){var _0xfb3fx14=_[_0x1af3[90]](this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]]);_0xfb3fx14[_0x1af3[99]]= moment()[_0x1af3[49]](_0x1af3[84]);_0xfb3fx14[_0x1af3[100]]= _0xfb3fxf[_0x1af3[100]];_0xfb3fx14[_0x1af3[101]]= _0xfb3fxf[_0x1af3[101]];this[_0x1af3[14]][_0xfb3fxf[_0x1af3[79]]]= _0xfb3fx14;this[_0x1af3[46]](_0xfb3fx14)}}else {logger[_0x1af3[76]](_0x1af3[102],_0x1af3[75])}}catch(e){logger[_0x1af3[42]](_0x1af3[102],util[_0x1af3[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0x1af3[44]][_0x1af3[34]]= function(_0xfb3fxf){try{if(this[_0x1af3[57]](_0xfb3fxf)){if(this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]]){var _0xfb3fx14=_[_0x1af3[90]](this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]]);_0xfb3fx14[_0x1af3[29]]= false;_0xfb3fx14[_0x1af3[97]]= null;_0xfb3fx14[_0x1af3[103]]= false;_0xfb3fx14[_0x1af3[104]]= null;_0xfb3fx14[_0x1af3[105]]= null;_0xfb3fx14[_0x1af3[106]]= true;_0xfb3fx14[_0x1af3[107]]= moment()[_0x1af3[49]](_0x1af3[84]);_0xfb3fx14[_0x1af3[108]]= true;_0xfb3fx14[_0x1af3[109]]= _0xfb3fxf[_0x1af3[110]];_0xfb3fx14[_0x1af3[95]]= _0xfb3fxf[_0x1af3[95]];this[_0x1af3[14]][_0xfb3fxf[_0x1af3[79]]]= _0xfb3fx14;this[_0x1af3[51]](_0xfb3fx14)}}else {logger[_0x1af3[76]](_0x1af3[111],_0x1af3[75])}}catch(e){logger[_0x1af3[42]](_0x1af3[111],util[_0x1af3[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0x1af3[44]][_0x1af3[36]]= function(_0xfb3fxf){try{if(this[_0x1af3[57]](_0xfb3fxf)){this[_0x1af3[114]](_0xfb3fxf[_0x1af3[79]],_[_0x1af3[85]](_0xfb3fxf[_0x1af3[112]])[0],_0xfb3fxf[_0x1af3[113]]);if(this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]]){var _0xfb3fx14=_[_0x1af3[90]](this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]]);if(this[_0x1af3[57]](_0xfb3fxf[_0x1af3[112]])&& this[_0x1af3[57]](_0xfb3fxf[_0x1af3[112]][_0x1af3[115]])){_0xfb3fx14[_0x1af3[29]]= false;_0xfb3fx14[_0x1af3[97]]= null;_0xfb3fx14[_0x1af3[103]]= true;_0xfb3fx14[_0x1af3[104]]= moment()[_0x1af3[49]](_0x1af3[84]);_0xfb3fx14[_0x1af3[105]]= _0xfb3fxf[_0x1af3[113]];_0xfb3fx14[_0x1af3[99]]= moment()[_0x1af3[49]](_0x1af3[84]);this[_0x1af3[14]][_0xfb3fxf[_0x1af3[79]]]= _0xfb3fx14;this[_0x1af3[51]](_0xfb3fx14)}else {if(this[_0x1af3[57]](_0xfb3fxf[_0x1af3[112]])&& this[_0x1af3[57]](_0xfb3fxf[_0x1af3[112]][_0x1af3[116]])){if(!_0xfb3fx14[_0x1af3[29]]){_0xfb3fx14[_0x1af3[103]]= true;_0xfb3fx14[_0x1af3[104]]= moment()[_0x1af3[49]](_0x1af3[84]);_0xfb3fx14[_0x1af3[105]]= _0x1af3[117];_0xfb3fx14[_0x1af3[99]]= moment()[_0x1af3[49]](_0x1af3[84])}}};_0xfb3fx14[_0x1af3[18]]= this[_0x1af3[18]][_0xfb3fxf[_0x1af3[79]]]}}else {logger[_0x1af3[76]](_0x1af3[118],_0x1af3[75])}}catch(e){logger[_0x1af3[42]](_0x1af3[118],util[_0x1af3[41]](e,{showHidden:false,depth:null}))}};VoiceQueueReport[_0x1af3[44]][_0x1af3[114]]= function(_0xfb3fx15,_0xfb3fx16,_0xfb3fx17){if(_[_0x1af3[58]](this[_0x1af3[18]][_0xfb3fx15])){this[_0x1af3[18]][_0xfb3fx15]= {}};this[_0x1af3[18]][_0xfb3fx15][_0xfb3fx16]= _0xfb3fx17};VoiceQueueReport[_0x1af3[44]][_0x1af3[38]]= function(_0xfb3fxf){try{if(this[_0x1af3[57]](_0xfb3fxf)){if(this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]]){for(var _0xfb3fx18=0,_0xfb3fx14={};_0xfb3fx18< this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]][_0x1af3[119]];_0xfb3fx18+= 1){_0xfb3fx14= this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]][_0xfb3fx18];if(this[_0x1af3[16]][_0xfb3fx14[_0x1af3[64]]]){if(_0xfb3fx14[_0x1af3[103]]){this[_0x1af3[16]][_0xfb3fx14[_0x1af3[64]]][_0x1af3[120]]+= 1};this[_0x1af3[16]][_0xfb3fx14[_0x1af3[64]]][_0x1af3[121]]+= moment(_0xfb3fx14[_0x1af3[99]])[_0x1af3[123]](_0xfb3fx14[_0x1af3[83]],_0x1af3[122]);if(_0xfb3fx18=== this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]][_0x1af3[119]]- 1){this[_0x1af3[16]][_0xfb3fx14[_0x1af3[64]]][_0x1af3[124]]+= moment()[_0x1af3[125]](0)[_0x1af3[123]](_0xfb3fx14[_0x1af3[83]],_0x1af3[122]);this[_0x1af3[16]][_0xfb3fx14[_0x1af3[64]]][_0x1af3[126]]+= 1;if(_0xfb3fx14[_0x1af3[106]]){this[_0x1af3[16]][_0xfb3fx14[_0x1af3[64]]][_0x1af3[127]]+= 1;this[_0x1af3[16]][_0xfb3fx14[_0x1af3[64]]][_0x1af3[128]]+= moment()[_0x1af3[125]](0)[_0x1af3[123]](_0xfb3fx14[_0x1af3[99]],_0x1af3[122])};if(_0xfb3fx14[_0x1af3[29]]){_0xfb3fx14[_0x1af3[129]]= _0x1af3[130];ami[_0x1af3[43]](_0x1af3[131],_0xfb3fx14)};if(_0xfb3fx14[_0x1af3[103]]){_0xfb3fx14[_0x1af3[129]]= _0x1af3[120];ami[_0x1af3[43]](_0x1af3[132],_0xfb3fx14)}}else {this[_0x1af3[16]][_0xfb3fx14[_0x1af3[64]]][_0x1af3[124]]+= this[_0x1af3[16]][_0xfb3fx14[_0x1af3[64]]][_0x1af3[121]]};this[_0x1af3[14]][_0xfb3fxf[_0x1af3[79]]]= _0xfb3fx14;this[_0x1af3[51]](_0xfb3fx14)}};ami[_0x1af3[43]](_0x1af3[133],this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]]);delete this[_0x1af3[13]][_0xfb3fxf[_0x1af3[79]]];delete this[_0x1af3[14]][_0xfb3fxf[_0x1af3[79]]]};if(this[_0x1af3[18]][_0xfb3fxf[_0x1af3[79]]]){delete this[_0x1af3[18]][_0xfb3fxf[_0x1af3[79]]]}}else {logger[_0x1af3[76]](_0x1af3[134],_0x1af3[75])}}catch(e){logger[_0x1af3[42]](_0x1af3[134],util[_0x1af3[41]](e,{showHidden:false,depth:null}))}};module[_0x1af3[135]]= VoiceQueueReport
\ No newline at end of file
diff --git a/server/services/ami/rpc/campaign.js b/server/services/ami/rpc/campaign.js
new file mode 100644 (file)
index 0000000..1670b82
--- /dev/null
@@ -0,0 +1 @@
+var _0xf89e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x73","\x47\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E","\x69\x64","\x6E\x61\x6D\x65","\x74\x79\x70\x65","\x61\x63\x74\x69\x76\x65","\x6C\x69\x6D\x69\x74\x43\x61\x6C\x6C\x73","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x54\x72\x75\x6E\x6B","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C","\x53\x71\x75\x61\x72\x65\x50\x72\x6F\x6A\x65\x63\x74","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E"];_0xf89e[0];var client=require(_0xf89e[1]);exports[_0xf89e[2]]= function(){return function(){return client.Request(_0xf89e[3],{options:{raw:false,attributes:[_0xf89e[4],_0xf89e[5],_0xf89e[6],_0xf89e[7],_0xf89e[8],_0xf89e[9],_0xf89e[10],_0xf89e[11],_0xf89e[12],_0xf89e[13],_0xf89e[14],_0xf89e[15],_0xf89e[16],_0xf89e[17],_0xf89e[18],_0xf89e[19],_0xf89e[20]],include:[{model:_0xf89e[21],as:_0xf89e[21],attributes:[_0xf89e[4],_0xf89e[5],_0xf89e[22],_0xf89e[7]]},{model:_0xf89e[21],as:_0xf89e[23],attributes:[_0xf89e[4],_0xf89e[5],_0xf89e[22],_0xf89e[7]]},{model:_0xf89e[24],as:_0xf89e[24],attributes:[_0xf89e[4],_0xf89e[5]],include:[{model:_0xf89e[24],as:_0xf89e[25],attributes:[_0xf89e[4],_0xf89e[5],_0xf89e[26]]}]},{model:_0xf89e[27],as:_0xf89e[27],attributes:[_0xf89e[4],_0xf89e[5]]}]},log:_0xf89e[28]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/cmHopper.js b/server/services/ami/rpc/cmHopper.js
new file mode 100644 (file)
index 0000000..87cad24
--- /dev/null
@@ -0,0 +1 @@
+var _0xdf8d=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x6D\x6F\x6D\x65\x6E\x74","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x73","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72","\x43\x6D\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74","\x67\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72","\x75\x70\x64\x61\x74\x65\x43\x6F\x6E\x74\x61\x63\x74\x73","\x55\x70\x64\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x72\x65\x73\x63\x68\x65\x64\x75\x6C\x65\x43\x6F\x6E\x74\x61\x63\x74","\x43\x6F\x6E\x74\x61\x63\x74\x49\x64","\x4C\x69\x73\x74\x49\x64","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x64\x65\x73\x74\x72\x6F\x79\x43\x6F\x6E\x74\x61\x63\x74","\x44\x65\x73\x74\x72\x6F\x79\x43\x6D\x48\x6F\x70\x70\x65\x72","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72","\x47\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72","\x73\x63\x68\x65\x64\x75\x6C\x65\x64\x61\x74\x20\x44\x45\x53\x43","\x67\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x49\x76\x72","\x47\x65\x74\x43\x6F\x6E\x74\x61\x63\x74\x44\x69\x61\x6C\x65\x72\x49\x76\x72","\x6D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x71\x75\x65\x75\x65","\x4D\x6F\x76\x65\x43\x6F\x6E\x74\x61\x63\x74\x4D\x61\x6E\x61\x67\x65\x64\x44\x69\x61\x6C\x65\x72","\x63\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64","\x43\x6F\x75\x6E\x74\x52\x65\x53\x63\x68\x65\x64\x75\x6C\x65\x64","\x69\x64"];_0xdf8d[0];var client=require(_0xdf8d[1]);var moment=require(_0xdf8d[2]);exports[_0xdf8d[3]]= function(_0x8ac3x3,_0x8ac3x4){return function(){return client.Request(_0xdf8d[4],{options:{where:{VoiceQueueId:_0x8ac3x3},include:[{model:_0xdf8d[5],as:_0xdf8d[6]}],limit:_0x8ac3x4,raw:false},log:_0xdf8d[7]})}};exports[_0xdf8d[8]]= function(_0x8ac3x5,_0x8ac3x3,_0x8ac3x4){return function(){return client.Request(_0xdf8d[9],{body:_0x8ac3x5,options:{where:{VoiceQueueId:_0x8ac3x3,scheduledat:{$lte:moment()[_0xdf8d[11]](_0xdf8d[10])}},limit:_0x8ac3x4},log:_0xdf8d[9]})}};exports[_0xdf8d[12]]= function(_0x8ac3x5){return function(){return client.Request(_0xdf8d[9],{body:_0x8ac3x5,options:{where:{ContactId:_0x8ac3x5[_0xdf8d[13]],ListId:_0x8ac3x5[_0xdf8d[14]],VoiceQueueId:_0x8ac3x5[_0xdf8d[15]]}},log:_0xdf8d[12]})}};exports[_0xdf8d[16]]= function(_0x8ac3x3,_0x8ac3x6,_0x8ac3x7){return function(){return client.Request(_0xdf8d[17],{options:{where:{VoiceQueueId:_0x8ac3x3,ListId:_0x8ac3x6,ContactId:_0x8ac3x7}},log:_0xdf8d[17]})}};exports[_0xdf8d[18]]= function(_0x8ac3x3,_0x8ac3x4){return function(){return client.Request(_0xdf8d[19],{body:{active:true},options:{where:{VoiceQueueId:_0x8ac3x3,active:false,scheduledat:{$lte:moment()[_0xdf8d[11]](_0xdf8d[10])}},include:[{model:_0xdf8d[5],as:_0xdf8d[6]}],order:_0xdf8d[20],raw:true,limit:_0x8ac3x4},log:_0xdf8d[19]})}};exports[_0xdf8d[21]]= function(_0x8ac3x8,_0x8ac3x4){return function(){return client.Request(_0xdf8d[19],{body:{active:true},options:{where:{CampaignId:_0x8ac3x8,active:false,scheduledat:{$lte:moment()[_0xdf8d[11]](_0xdf8d[10])}},include:[{model:_0xdf8d[5],as:_0xdf8d[6]}],order:_0xdf8d[20],raw:true,limit:_0x8ac3x4},log:_0xdf8d[22]})}};exports[_0xdf8d[23]]= function(_0x8ac3x5){return function(){_0x8ac3x5[_0xdf8d[24]]= _0x8ac3x5[_0xdf8d[25]];return client.Request(_0xdf8d[26],{body:_0x8ac3x5,options:{where:{ContactId:_0x8ac3x5[_0xdf8d[13]],ListId:_0x8ac3x5[_0xdf8d[14]],VoiceQueueId:_0x8ac3x5[_0xdf8d[15]]}},log:_0xdf8d[26]})}};exports[_0xdf8d[27]]= function(_0x8ac3x9){return function(){return client.Request(_0xdf8d[28],{options:{where:{VoiceQueueId:_0x8ac3x9[_0xdf8d[29]]?_0x8ac3x9[_0xdf8d[29]]|| null:null}},log:_0xdf8d[27]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/cmHopperBlack.js b/server/services/ami/rpc/cmHopperBlack.js
new file mode 100644 (file)
index 0000000..e3aff92
--- /dev/null
@@ -0,0 +1 @@
+var _0x88fb=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x68\x65\x63\x6B\x49\x73\x42\x6C\x61\x63\x6B\x4C\x69\x73\x74","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72\x42\x6C\x61\x63\x6B","\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x49\x64","\x70\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74"];_0x88fb[0];var client=require(_0x88fb[1]);exports[_0x88fb[2]]= function(_0x72b2x2){return function(){return client.Request(_0x88fb[3],{options:{where:{VoiceQueueId:_0x72b2x2[_0x88fb[4]],phone:_0x72b2x2[_0x88fb[6]][_0x88fb[5]]},raw:false},log:_0x88fb[3]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/cmHopperFinal.js b/server/services/ami/rpc/cmHopperFinal.js
new file mode 100644 (file)
index 0000000..625b80f
--- /dev/null
@@ -0,0 +1 @@
+var _0x2cc2=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x43\x6F\x6E\x74\x61\x63\x74","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x71\x75\x65\x75\x65","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x46\x69\x6E\x61\x6C"];_0x2cc2[0];var client=require(_0x2cc2[1]);exports[_0x2cc2[2]]= function(_0xb264x2){return function(){_0xb264x2[_0x2cc2[3]]= _0xb264x2[_0x2cc2[4]];return client.Request(_0x2cc2[5],{body:_0xb264x2,log:_0x2cc2[5]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/cmHopperHistory.js b/server/services/ami/rpc/cmHopperHistory.js
new file mode 100644 (file)
index 0000000..41e4c13
--- /dev/null
@@ -0,0 +1 @@
+var _0x465e=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x6D\x6F\x6D\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x48\x69\x73\x74\x6F\x72\x79","\x63\x61\x6D\x70\x61\x69\x67\x6E","\x71\x75\x65\x75\x65","\x43\x72\x65\x61\x74\x65\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x61\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x41\x76\x67\x48\x61\x6E\x64\x6C\x65\x54\x69\x6D\x65","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x6D\x69\x6E\x75\x74\x65\x73","\x73\x75\x62\x74\x72\x61\x63\x74","\x47\x65\x74\x43\x6D\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x64\x61\x79","\x73\x74\x61\x72\x74\x4F\x66","\x65\x6E\x64\x4F\x66","\x67\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x47\x65\x74\x43\x61\x6D\x70\x61\x69\x67\x6E\x48\x6F\x70\x70\x65\x72\x48\x69\x73\x74\x6F\x72\x79","\x69\x76\x72"];_0x465e[0];var client=require(_0x465e[1]);var moment=require(_0x465e[2]);exports[_0x465e[3]]= function(_0xa364x3){return function(){_0xa364x3[_0x465e[4]]= _0xa364x3[_0x465e[5]];return client.Request(_0x465e[6],{body:_0xa364x3,log:_0x465e[6]})}};exports[_0x465e[7]]= function(_0xa364x4){return function(){return client.Request(_0x465e[8],{options:{where:{endtime:{$between:[moment()[_0x465e[12]](_0xa364x4,_0x465e[11])[_0x465e[10]](_0x465e[9]),moment()[_0x465e[10]](_0x465e[9])]}},raw:false},log:_0x465e[13]})}};exports[_0x465e[14]]= function(_0xa364x4){return function(){return client.Request(_0x465e[15],{options:{where:{createdAt:{$between:[moment()[_0x465e[17]](_0x465e[16])[_0x465e[10]](_0x465e[9]),moment()[_0x465e[18]](_0x465e[16])[_0x465e[10]](_0x465e[9])]},campaigntype:_0x465e[5]},raw:false},log:_0x465e[15]})}};exports[_0x465e[19]]= function(_0xa364x4){return function(){return client.Request(_0x465e[20],{options:{where:{createdAt:{$between:[moment()[_0x465e[17]](_0x465e[16])[_0x465e[10]](_0x465e[9]),moment()[_0x465e[18]](_0x465e[16])[_0x465e[10]](_0x465e[9])]},campaigntype:_0x465e[21]},raw:false},log:_0x465e[20]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/freshdesk.js b/server/services/ami/rpc/integrations/freshdesk.js
new file mode 100644 (file)
index 0000000..db43e7e
--- /dev/null
@@ -0,0 +1 @@
+var _0xab33=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x47\x65\x74\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x61\x70\x69\x4B\x65\x79","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x54\x61\x67","\x46\x72\x65\x73\x68\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x46\x69\x65\x6C\x64\x73","\x69\x64\x46\x69\x65\x6C\x64","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64"];_0xab33[0];var client=require(_0xab33[1]);exports[_0xab33[2]]= function(){return function(_0x463fx2){return client.Request(_0xab33[3],{options:{raw:false,attributes:[_0xab33[4],_0xab33[5],_0xab33[6],_0xab33[7],_0xab33[8],_0xab33[9]],include:[{model:_0xab33[10],as:_0xab33[11],attributes:[_0xab33[4],_0xab33[5]],include:[{model:_0xab33[12],attributes:[_0xab33[4],_0xab33[5]]},{model:_0xab33[13],as:_0xab33[14],attributes:[_0xab33[4],_0xab33[15],_0xab33[16],_0xab33[17]],include:[{model:_0xab33[18],as:_0xab33[18],attributes:[_0xab33[4],_0xab33[5]]}]},{model:_0xab33[13],as:_0xab33[19],attributes:[_0xab33[4],_0xab33[15],_0xab33[16],_0xab33[20],_0xab33[21],_0xab33[22],_0xab33[17]],include:[{model:_0xab33[18],as:_0xab33[18],attributes:[_0xab33[4],_0xab33[5]]}]},{model:_0xab33[13],as:_0xab33[23],attributes:[_0xab33[4],_0xab33[15],_0xab33[16],_0xab33[24],_0xab33[25],_0xab33[26],_0xab33[17]],include:[{model:_0xab33[18],as:_0xab33[18],attributes:[_0xab33[4],_0xab33[5]]}]}]}]},log:_0xab33[3]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/salesforce.js b/server/services/ami/rpc/integrations/salesforce.js
new file mode 100644 (file)
index 0000000..bf45e72
--- /dev/null
@@ -0,0 +1 @@
+var _0xb1c0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x47\x65\x74\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x63\x6C\x69\x65\x6E\x74\x49\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x73\x65\x63\x75\x72\x69\x74\x79\x54\x6F\x6B\x65\x6E","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x56\x61\x72\x69\x61\x62\x6C\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x46\x69\x65\x6C\x64\x73"];_0xb1c0[0];var client=require(_0xb1c0[1]);exports[_0xb1c0[2]]= function(){return function(_0x62b0x2){return client.Request(_0xb1c0[3],{options:{raw:false,attributes:[_0xb1c0[4],_0xb1c0[5],_0xb1c0[6],_0xb1c0[7],_0xb1c0[8],_0xb1c0[9],_0xb1c0[10],_0xb1c0[11],_0xb1c0[12]],include:[{model:_0xb1c0[13],as:_0xb1c0[14],attributes:[_0xb1c0[4],_0xb1c0[5]],include:[{model:_0xb1c0[15],as:_0xb1c0[16],include:[{model:_0xb1c0[17],as:_0xb1c0[17],attributes:[_0xb1c0[4],_0xb1c0[5]]}]},{model:_0xb1c0[15],as:_0xb1c0[18],include:[{model:_0xb1c0[17],as:_0xb1c0[17],attributes:[_0xb1c0[4],_0xb1c0[5]]}]},{model:_0xb1c0[15],as:_0xb1c0[19],include:[{model:_0xb1c0[17],as:_0xb1c0[17],attributes:[_0xb1c0[4],_0xb1c0[5]]}]}]}]},log:_0xb1c0[3]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/sugarcrm.js b/server/services/ami/rpc/integrations/sugarcrm.js
new file mode 100644 (file)
index 0000000..4b325d1
--- /dev/null
@@ -0,0 +1 @@
+var _0xeea0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x47\x65\x74\x53\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x53\x75\x67\x61\x72\x63\x72\x6D\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x53\x75\x67\x61\x72\x63\x72\x6D\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x46\x69\x65\x6C\x64\x73","\x69\x64\x46\x69\x65\x6C\x64","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64"];_0xeea0[0];var client=require(_0xeea0[1]);exports[_0xeea0[2]]= function(){return function(_0xa4c7x2){return client.Request(_0xeea0[3],{options:{raw:false,attributes:[_0xeea0[4],_0xeea0[5],_0xeea0[6],_0xeea0[7],_0xeea0[8],_0xeea0[9]],include:[{model:_0xeea0[10],as:_0xeea0[11],attributes:[_0xeea0[4],_0xeea0[5]],include:[{model:_0xeea0[12],as:_0xeea0[13],attributes:[_0xeea0[4],_0xeea0[14],_0xeea0[15],_0xeea0[16]],include:[{model:_0xeea0[17],as:_0xeea0[17],attributes:[_0xeea0[4],_0xeea0[5]]}]},{model:_0xeea0[12],as:_0xeea0[18],attributes:[_0xeea0[4],_0xeea0[14],_0xeea0[15],_0xeea0[19],_0xeea0[20],_0xeea0[21],_0xeea0[16]],include:[{model:_0xeea0[17],as:_0xeea0[17],attributes:[_0xeea0[4],_0xeea0[5]]}]},{model:_0xeea0[12],as:_0xeea0[22],attributes:[_0xeea0[4],_0xeea0[14],_0xeea0[15],_0xeea0[23],_0xeea0[24],_0xeea0[25],_0xeea0[16]],include:[{model:_0xeea0[17],as:_0xeea0[17],attributes:[_0xeea0[4],_0xeea0[5]]}]}]}]},log:_0xeea0[3]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/integrations/zendesk.js b/server/services/ami/rpc/integrations/zendesk.js
new file mode 100644 (file)
index 0000000..aa48e94
--- /dev/null
@@ -0,0 +1 @@
+var _0x8b75=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x47\x65\x74\x5A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x74\x6F\x6B\x65\x6E","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x61\x75\x74\x68\x54\x79\x70\x65","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x5A\x65\x6E\x64\x65\x73\x6B\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E","\x43\x6F\x6E\x66\x69\x67\x75\x72\x61\x74\x69\x6F\x6E\x73","\x54\x61\x67","\x5A\x65\x6E\x64\x65\x73\x6B\x46\x69\x65\x6C\x64","\x53\x75\x62\x6A\x65\x63\x74\x73","\x74\x79\x70\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x44\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E\x73","\x6B\x65\x79","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x46\x69\x65\x6C\x64\x73","\x69\x64\x46\x69\x65\x6C\x64","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64"];_0x8b75[0];var client=require(_0x8b75[1]);exports[_0x8b75[2]]= function(){return function(_0x786bx2){return client.Request(_0x8b75[3],{options:{raw:false,attributes:[_0x8b75[4],_0x8b75[5],_0x8b75[6],_0x8b75[7],_0x8b75[8],_0x8b75[9],_0x8b75[10],_0x8b75[11]],include:[{model:_0x8b75[12],as:_0x8b75[13],attributes:[_0x8b75[4],_0x8b75[5]],include:[{model:_0x8b75[14],attributes:[_0x8b75[4],_0x8b75[5]]},{model:_0x8b75[15],as:_0x8b75[16],attributes:[_0x8b75[4],_0x8b75[17],_0x8b75[18],_0x8b75[19]],include:[{model:_0x8b75[20],as:_0x8b75[20],attributes:[_0x8b75[4],_0x8b75[5]]}]},{model:_0x8b75[15],as:_0x8b75[21],attributes:[_0x8b75[4],_0x8b75[17],_0x8b75[18],_0x8b75[22],_0x8b75[23],_0x8b75[24],_0x8b75[19]],include:[{model:_0x8b75[20],as:_0x8b75[20],attributes:[_0x8b75[4],_0x8b75[5]]}]},{model:_0x8b75[15],as:_0x8b75[25],attributes:[_0x8b75[4],_0x8b75[17],_0x8b75[18],_0x8b75[26],_0x8b75[27],_0x8b75[28],_0x8b75[19]],include:[{model:_0x8b75[20],as:_0x8b75[20],attributes:[_0x8b75[4],_0x8b75[5]]}]}]}]},log:_0x8b75[3]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/memberReport.js b/server/services/ami/rpc/memberReport.js
new file mode 100644 (file)
index 0000000..16363f1
--- /dev/null
@@ -0,0 +1 @@
+var _0x9828=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x43\x72\x65\x61\x74\x65\x4D\x65\x6D\x62\x65\x72\x52\x65\x70\x6F\x72\x74","\x76\x6F\x69\x63\x65","\x6C\x61\x73\x74\x41\x73\x73\x69\x67\x6E\x65\x64\x54\x6F","\x53\x49\x50\x2F","\x54\x41\x4C\x4B\x49\x4E\x47","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x73\x65\x63\x6F\x6E\x64\x73","\x64\x69\x66\x66","\x69\x6E\x62\x6F\x75\x6E\x64","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x65\x78\x74\x65\x6E","\x71\x75\x65\x75\x65","\x61\x67\x65\x6E\x74","\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x74\x6F\x4E\x75\x6D\x62\x65\x72","\x75\x6E\x69\x71\x75\x65\x69\x64","\x76\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74","\x73\x70\x6C\x69\x74","\x63\x68\x61\x6E\x6E\x65\x6C","\x2D","\x73\x74\x61\x72\x74\x74\x69\x6D\x65","\x65\x6E\x64\x74\x69\x6D\x65","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x64\x69\x61\x6C\x73\x74\x72\x69\x6E\x67"];_0x9828[0];var moment=require(_0x9828[1]);var _=require(_0x9828[2]);var client=require(_0x9828[3]);exports[_0x9828[4]]= function(_0x9c5ex4){return client.Request(_0x9828[5],{body:{channel:_0x9828[6],membername:_0x9c5ex4[_0x9828[7]],interface:_0x9828[8]+ _0x9c5ex4[_0x9828[7]],type:_0x9828[9],enterAt:_0x9c5ex4[_0x9828[10]],exitAt:_0x9c5ex4[_0x9828[11]],duration:moment(_0x9c5ex4[_0x9828[11]])[_0x9828[13]](_0x9c5ex4[_0x9828[10]],_0x9828[12]),data1:_0x9828[14],data2:_0x9c5ex4[_0x9828[15]],data3:_0x9c5ex4[_0x9828[16]],data4:null,data5:_0x9c5ex4[_0x9828[17]],role:_0x9828[18],internal:_0x9c5ex4[_0x9828[19]]?_[_0x9828[20]](_0x9c5ex4[_0x9828[19]]):undefined,uniqueid:_0x9c5ex4[_0x9828[21]]},log:_0x9828[5]})};exports[_0x9828[22]]= function(_0x9c5ex5){return client.Request(_0x9828[5],{body:{channel:_0x9828[6],membername:_0x9c5ex5[_0x9828[24]][_0x9828[23]](/\/|-/)[1],interface:_0x9c5ex5[_0x9828[24]][_0x9828[23]](_0x9828[25])[0],type:_0x9828[9],enterAt:_0x9c5ex5[_0x9828[26]],exitAt:_0x9c5ex5[_0x9828[27]],data1:_0x9828[28],data2:_0x9c5ex5[_0x9828[19]],data3:_0x9c5ex5[_0x9828[16]],data4:_0x9c5ex5[_0x9828[29]]|| null,role:_0x9828[18],internal:_0x9c5ex5[_0x9828[19]]?_[_0x9828[20]](_0x9c5ex5[_0x9828[19]]):undefined,uniqueid:_0x9c5ex5[_0x9828[21]]},log:_0x9828[5]})}
\ No newline at end of file
diff --git a/server/services/ami/rpc/template.js b/server/services/ami/rpc/template.js
new file mode 100644 (file)
index 0000000..581e2aa
--- /dev/null
@@ -0,0 +1 @@
+var _0x9e8c=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65\x73","\x47\x65\x74\x54\x65\x6D\x70\x6C\x61\x74\x65","\x69\x64","\x6E\x61\x6D\x65","\x73\x75\x62\x6A\x65\x63\x74","\x68\x74\x6D\x6C"];_0x9e8c[0];var client=require(_0x9e8c[1]);exports[_0x9e8c[2]]= function(_0x9355x2){return function(_0x9355x3){return client.Request(_0x9e8c[3],{options:{raw:true,attributes:[_0x9e8c[4],_0x9e8c[5],_0x9e8c[6],_0x9e8c[7]]},log:_0x9e8c[3]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/trigger.js b/server/services/ami/rpc/trigger.js
new file mode 100644 (file)
index 0000000..7708855
--- /dev/null
@@ -0,0 +1 @@
+var _0xd5e6=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x47\x65\x74\x54\x72\x69\x67\x67\x65\x72","\x76\x6F\x69\x63\x65","\x69\x64","\x6E\x61\x6D\x65","\x73\x74\x61\x74\x75\x73","\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x66\x69\x65\x6C\x64","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x76\x61\x6C\x75\x65","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x41\x63\x74\x69\x6F\x6E","\x41\x63\x74\x69\x6F\x6E\x73","\x61\x63\x74\x69\x6F\x6E","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33"];_0xd5e6[0];var client=require(_0xd5e6[1]);exports[_0xd5e6[2]]= function(_0xdb74x2){return function(_0xdb74x3){return client.Request(_0xd5e6[3],{options:{raw:false,where:{channel:_0xd5e6[4]},attributes:[_0xd5e6[5],_0xd5e6[6],_0xd5e6[7]],include:[{model:_0xd5e6[8],as:_0xd5e6[9],attributes:[_0xd5e6[5],_0xd5e6[10],_0xd5e6[11],_0xd5e6[12]]},{model:_0xd5e6[8],as:_0xd5e6[13],attributes:[_0xd5e6[5],_0xd5e6[10],_0xd5e6[11],_0xd5e6[12]]},{model:_0xd5e6[14],as:_0xd5e6[15],attributes:[_0xd5e6[5],_0xd5e6[16],_0xd5e6[17],_0xd5e6[18],_0xd5e6[19]]}]},log:_0xd5e6[3]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/trunk.js b/server/services/ami/rpc/trunk.js
new file mode 100644 (file)
index 0000000..c706a23
--- /dev/null
@@ -0,0 +1 @@
+var _0xd2bd=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x54\x72\x75\x6E\x6B\x73","\x47\x65\x74\x54\x72\x75\x6E\x6B","\x69\x64","\x6E\x61\x6D\x65","\x72\x65\x67\x69\x73\x74\x72\x79"];_0xd2bd[0];var client=require(_0xd2bd[1]);exports[_0xd2bd[2]]= function(_0x56a7x2){return function(_0x56a7x3){return client.Request(_0xd2bd[3],{options:{raw:true,where:{active:1},attributes:[_0xd2bd[4],_0xd2bd[5],_0xd2bd[6]]},log:_0xd2bd[3]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/user.js b/server/services/ami/rpc/user.js
new file mode 100644 (file)
index 0000000..e1f5db9
--- /dev/null
@@ -0,0 +1 @@
+var _0x4f2f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x41\x67\x65\x6E\x74\x73","\x47\x65\x74\x55\x73\x65\x72","\x61\x67\x65\x6E\x74","\x69\x64","\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x6F\x6E\x6C\x69\x6E\x65","\x6C\x61\x73\x74\x4C\x6F\x67\x69\x6E\x41\x74","\x67\x65\x74\x54\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65","\x73\x61\x76\x65\x50\x61\x75\x73\x65","\x50\x61\x75\x73\x65\x55\x73\x65\x72","\x73\x61\x76\x65\x55\x6E\x70\x61\x75\x73\x65","\x55\x6E\x70\x61\x75\x73\x65\x55\x73\x65\x72"];_0x4f2f[0];var client=require(_0x4f2f[1]);exports[_0x4f2f[2]]= function(){return function(){return client.Request(_0x4f2f[3],{options:{raw:false,where:{role:_0x4f2f[4]},attributes:[_0x4f2f[5],_0x4f2f[6],_0x4f2f[7],_0x4f2f[8],_0x4f2f[9]]},log:_0x4f2f[2]})}};exports[_0x4f2f[10]]= function(){return function(){return client.Request(_0x4f2f[3],{options:{raw:true,where:{role:_0x4f2f[11]},attributes:[_0x4f2f[5],_0x4f2f[6]]},log:_0x4f2f[10]})}};exports[_0x4f2f[12]]= function(_0x8952x2,_0x8952x3){return client.Request(_0x4f2f[13],{body:{type:_0x8952x3},options:{where:{id:_0x8952x2[_0x4f2f[5]]}},log:_0x4f2f[12]})};exports[_0x4f2f[14]]= function(_0x8952x2){return client.Request(_0x4f2f[15],{body:{},options:{where:{id:_0x8952x2[_0x4f2f[5]]}},log:_0x4f2f[12]})}
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceAgentReport.js b/server/services/ami/rpc/voiceAgentReport.js
new file mode 100644 (file)
index 0000000..c3a2d38
--- /dev/null
@@ -0,0 +1 @@
+var _0x1a1a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x41\x67\x65\x6E\x74\x52\x65\x70\x6F\x72\x74"];_0x1a1a[0];var client=require(_0x1a1a[1]);exports[_0x1a1a[2]]= function(_0x59a2x2){return client.Request(_0x1a1a[3],{body:_0x59a2x2,log:_0x1a1a[3]})}
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceCallReport.js b/server/services/ami/rpc/voiceCallReport.js
new file mode 100644 (file)
index 0000000..730cc5d
--- /dev/null
@@ -0,0 +1 @@
+var _0x6de9=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x65\x78\x74\x65\x6E","\x63\x6F\x6E\x74\x65\x78\x74","\x22\x25\x73\x22\x20\x3C\x25\x73\x3E","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x44\x4F\x43\x55\x4D\x45\x4E\x54\x41\x54\x49\x4F\x4E","\x6D\x65\x72\x67\x65","\x67\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x64\x61\x79","\x73\x74\x61\x72\x74\x4F\x66","\x65\x6E\x64\x4F\x66","\x74\x79\x70\x65","\x64\x69\x73\x70\x6F\x73\x69\x74\x69\x6F\x6E","\x64\x75\x72\x61\x74\x69\x6F\x6E","\x62\x69\x6C\x6C\x61\x62\x6C\x65\x73\x65\x63\x6F\x6E\x64\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x43\x61\x6C\x6C\x52\x65\x70\x6F\x72\x74\x73"];_0x6de9[0];var moment=require(_0x6de9[1]);var util=require(_0x6de9[2]);var _=require(_0x6de9[3]);var client=require(_0x6de9[4]);exports[_0x6de9[5]]= function(_0xa90dx5){return client.Request(_0x6de9[6],{body:_[_0x6de9[14]](_0xa90dx5,{source:_0xa90dx5[_0x6de9[7]],destination:_0xa90dx5[_0x6de9[8]],destinationcontext:_0xa90dx5[_0x6de9[9]],callerid:util[_0x6de9[12]](_0x6de9[10],_0xa90dx5[_0x6de9[7]],_0xa90dx5[_0x6de9[11]]),amaflags:_0x6de9[13]}),log:_0x6de9[6]})};exports[_0x6de9[15]]= function(){return function(){return client.Request(_0x6de9[16],{options:{where:{type:[_0x6de9[17]],createdAt:{$between:[moment()[_0x6de9[20]](_0x6de9[19])[_0x6de9[12]](_0x6de9[18]),moment()[_0x6de9[21]](_0x6de9[19])[_0x6de9[12]](_0x6de9[18])]}},attributes:[_0x6de9[22],_0x6de9[23],_0x6de9[24],_0x6de9[25]]},log:_0x6de9[26]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceDialReport.js b/server/services/ami/rpc/voiceDialReport.js
new file mode 100644 (file)
index 0000000..180cfbe
--- /dev/null
@@ -0,0 +1 @@
+var _0x1dd4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x44\x69\x61\x6C\x52\x65\x70\x6F\x72\x74"];_0x1dd4[0];var client=require(_0x1dd4[1]);exports[_0x1dd4[2]]= function(_0xe3fbx2){return client.Request(_0x1dd4[3],{body:_0xe3fbx2,log:_0x1dd4[3]})}
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceQueue.js b/server/services/ami/rpc/voiceQueue.js
new file mode 100644 (file)
index 0000000..7e1ea06
--- /dev/null
@@ -0,0 +1 @@
+var _0x973f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65","\x69\x64","\x6E\x61\x6D\x65","\x61\x63\x77","\x61\x63\x77\x54\x69\x6D\x65\x6F\x75\x74","\x61\x75\x74\x6F\x70\x61\x75\x73\x65","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x74\x79\x70\x65","\x64\x69\x61\x6C\x41\x63\x74\x69\x76\x65","\x64\x69\x61\x6C\x4D\x65\x74\x68\x6F\x64","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x43\x68\x61\x6E\x6E\x65\x6C","\x64\x69\x61\x6C\x4C\x69\x6D\x69\x74\x51\x75\x65\x75\x65","\x64\x69\x61\x6C\x50\x6F\x77\x65\x72\x4C\x65\x76\x65\x6C","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x4F\x70\x74\x69\x6D\x69\x7A\x61\x74\x69\x6F\x6E\x50\x65\x72\x63\x65\x6E\x74\x61\x67\x65","\x64\x69\x61\x6C\x50\x72\x65\x64\x69\x63\x74\x69\x76\x65\x49\x6E\x74\x65\x72\x76\x61\x6C","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x61\x6D\x65","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x43\x61\x6C\x6C\x65\x72\x49\x64\x4E\x75\x6D\x62\x65\x72","\x64\x69\x61\x6C\x4F\x72\x69\x67\x69\x6E\x61\x74\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x4F\x70\x74\x69\x6F\x6E\x73","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x54\x69\x6D\x65\x6F\x75\x74","\x64\x69\x61\x6C\x51\x75\x65\x75\x65\x50\x72\x6F\x6A\x65\x63\x74","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x43\x6F\x6E\x67\x65\x73\x74\x69\x6F\x6E\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x42\x75\x73\x79\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x4E\x6F\x41\x6E\x73\x77\x65\x72\x52\x65\x74\x72\x79\x46\x72\x65\x71\x75\x65\x6E\x63\x79","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x4D\x61\x78\x52\x65\x74\x72\x79","\x64\x69\x61\x6C\x54\x69\x6D\x65\x7A\x6F\x6E\x65","\x64\x69\x61\x6C\x47\x6C\x6F\x62\x61\x6C\x49\x6E\x74\x65\x72\x76\x61\x6C","\x54\x72\x75\x6E\x6B","\x63\x61\x6C\x6C\x65\x72\x69\x64","\x61\x63\x74\x69\x76\x65","\x54\x72\x75\x6E\x6B\x42\x61\x63\x6B\x75\x70","\x49\x6E\x74\x65\x72\x76\x61\x6C","\x49\x6E\x74\x65\x72\x76\x61\x6C\x73","\x69\x6E\x74\x65\x72\x76\x61\x6C"];_0x973f[0];var client=require(_0x973f[1]);exports[_0x973f[2]]= function(){return function(){return client.Request(_0x973f[3],{options:{raw:false,attributes:[_0x973f[4],_0x973f[5],_0x973f[6],_0x973f[7],_0x973f[8],_0x973f[9],_0x973f[10],_0x973f[11],_0x973f[12],_0x973f[13],_0x973f[14],_0x973f[15],_0x973f[16],_0x973f[17],_0x973f[18],_0x973f[19],_0x973f[20],_0x973f[21],_0x973f[22],_0x973f[23],_0x973f[24],_0x973f[25],_0x973f[26],_0x973f[27],_0x973f[28],_0x973f[29],_0x973f[30],_0x973f[31],_0x973f[32],_0x973f[33]],include:[{model:_0x973f[34],as:_0x973f[34],attributes:[_0x973f[4],_0x973f[5],_0x973f[35],_0x973f[36]]},{model:_0x973f[34],as:_0x973f[37],attributes:[_0x973f[4],_0x973f[5],_0x973f[35],_0x973f[36]]},{model:_0x973f[38],as:_0x973f[38],attributes:[_0x973f[4],_0x973f[5]],include:[{model:_0x973f[38],as:_0x973f[39],attributes:[_0x973f[4],_0x973f[5],_0x973f[40]]}]}]},log:_0x973f[2]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceQueueReport.js b/server/services/ami/rpc/voiceQueueReport.js
new file mode 100644 (file)
index 0000000..41aaa88
--- /dev/null
@@ -0,0 +1 @@
+var _0xf62f=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6D\x6F\x6D\x65\x6E\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74","\x59\x59\x59\x59\x2D\x4D\x4D\x2D\x44\x44\x20\x48\x48\x3A\x6D\x6D\x3A\x73\x73","\x66\x6F\x72\x6D\x61\x74","\x64\x61\x79","\x73\x74\x61\x72\x74\x4F\x66","\x65\x6E\x64\x4F\x66","\x75\x6E\x69\x71\x75\x65\x69\x64","\x71\x75\x65\x75\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6A\x6F\x69\x6E\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x6C\x65\x61\x76\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x63\x6F\x6D\x70\x6C\x65\x74\x65\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x65\x78\x69\x74\x41\x74","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E\x41\x74","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x65\x70\x6F\x72\x74\x73"];_0xf62f[0];var moment=require(_0xf62f[1]);var _=require(_0xf62f[2]);var client=require(_0xf62f[3]);exports[_0xf62f[4]]= function(_0x71cax4){return client.Request(_0xf62f[5],{body:_0x71cax4,log:_0xf62f[5]})};exports[_0xf62f[6]]= function(){return function(){return client.Request(_0xf62f[7],{options:{where:{createdAt:{$between:[moment()[_0xf62f[11]](_0xf62f[10])[_0xf62f[9]](_0xf62f[8]),moment()[_0xf62f[12]](_0xf62f[10])[_0xf62f[9]](_0xf62f[8])]}},attributes:[_0xf62f[13],_0xf62f[14],_0xf62f[15],_0xf62f[16],_0xf62f[17],_0xf62f[18],_0xf62f[19],_0xf62f[20],_0xf62f[21],_0xf62f[22]]},log:_0xf62f[23]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceQueueRt.js b/server/services/ami/rpc/voiceQueueRt.js
new file mode 100644 (file)
index 0000000..02663db
--- /dev/null
@@ -0,0 +1 @@
+var _0x45b4=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x67\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73","\x47\x65\x74\x56\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x52\x74\x50\x61\x75\x73\x65\x73"];_0x45b4[0];var client=require(_0x45b4[1]);exports[_0x45b4[2]]= function(_0x3d23x2){return function(){return client.Request(_0x45b4[3],{options:{where:{VoiceQueueId:_0x3d23x2,paused:true},raw:true},log:_0x45b4[2]})}}
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceRecording.js b/server/services/ami/rpc/voiceRecording.js
new file mode 100644 (file)
index 0000000..9608c11
--- /dev/null
@@ -0,0 +1 @@
+var _0x5d23=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x63\x72\x65\x61\x74\x65","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x52\x65\x63\x6F\x72\x64\x69\x6E\x67","\x6D\x6F\x6E\x69\x74\x6F\x72\x46\x69\x6C\x65\x6E\x61\x6D\x65","\x6D\x65\x72\x67\x65"];_0x5d23[0];var _=require(_0x5d23[1]);var client=require(_0x5d23[2]);exports[_0x5d23[3]]= function(_0x1074x3){return client.Request(_0x5d23[4],{body:_[_0x5d23[6]](_0x1074x3,{value:_0x1074x3[_0x5d23[5]]}),log:_0x5d23[4]})}
\ No newline at end of file
diff --git a/server/services/ami/rpc/voiceTransferReport.js b/server/services/ami/rpc/voiceTransferReport.js
new file mode 100644 (file)
index 0000000..82c219d
--- /dev/null
@@ -0,0 +1 @@
+var _0x43fa=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x2E\x2E\x2F\x63\x6C\x69\x65\x6E\x74","\x62\x6C\x69\x6E\x64\x54\x72\x61\x6E\x73\x66\x65\x72","\x43\x72\x65\x61\x74\x65\x56\x6F\x69\x63\x65\x54\x72\x61\x6E\x73\x66\x65\x72\x52\x65\x70\x6F\x72\x74","\x72\x65\x73\x75\x6C\x74","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x74\x65\x78\x74","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x65\x78\x74\x65\x6E","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x63\x6F\x6E\x74\x65\x78\x74","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x65\x78\x74\x65\x6E","\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x65\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x69\x73\x65\x78\x74\x65\x72\x6E\x61\x6C","\x63\x6F\x6E\x74\x65\x78\x74","\x65\x78\x74\x65\x6E\x73\x69\x6F\x6E","\x62\x6C\x69\x6E\x64","\x61\x74\x74\x65\x6E\x64\x65\x64\x54\x72\x61\x6E\x73\x66\x65\x72","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x68\x61\x6E\x6E\x65\x6C","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x74\x65\x78\x74","\x73\x65\x63\x6F\x6E\x64\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x65\x78\x74\x65\x6E","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x75\x6D","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64\x6C\x69\x6E\x65\x6E\x61\x6D\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x61\x63\x63\x6F\x75\x6E\x74\x63\x6F\x64\x65","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x63\x6F\x6E\x74\x65\x78\x74","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x65\x78\x74\x65\x6E","\x74\x72\x61\x6E\x73\x66\x65\x72\x74\x61\x72\x67\x65\x74\x6C\x69\x6E\x6B\x65\x64\x69\x64","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x63\x6F\x6E\x74\x65\x78\x74","\x6F\x72\x69\x67\x74\x72\x61\x6E\x73\x66\x65\x72\x65\x72\x65\x78\x74\x65\x6E","\x61\x74\x74\x65\x6E\x64\x65\x64"];_0x43fa[0];var client=require(_0x43fa[1]);exports[_0x43fa[2]]= function(_0xd686x2){return client.Request(_0x43fa[3],{body:{result:_0xd686x2[_0x43fa[4]],transfererchannel:_0xd686x2[_0x43fa[5]],transferercalleridnum:_0xd686x2[_0x43fa[6]],transferercalleridname:_0xd686x2[_0x43fa[7]],transfererconnectedlinenum:_0xd686x2[_0x43fa[8]],transfererconnectedlinename:_0xd686x2[_0x43fa[9]],transfereraccountcode:_0xd686x2[_0x43fa[10]],transferercontext:_0xd686x2[_0x43fa[11]],transfererexten:_0xd686x2[_0x43fa[12]],transfererlinkedid:_0xd686x2[_0x43fa[13]],transfereechannel:_0xd686x2[_0x43fa[14]],transfereecalleridnum:_0xd686x2[_0x43fa[15]],transfereecalleridname:_0xd686x2[_0x43fa[16]],transfereeconnectedlinenum:_0xd686x2[_0x43fa[17]],transfereeconnectedlinename:_0xd686x2[_0x43fa[18]],transfereeaccountcode:_0xd686x2[_0x43fa[19]],transfereecontext:_0xd686x2[_0x43fa[20]],transfereeexten:_0xd686x2[_0x43fa[21]],transfereelinkedid:_0xd686x2[_0x43fa[22]],isexternal:_0xd686x2[_0x43fa[23]],context:_0xd686x2[_0x43fa[24]],extension:_0xd686x2[_0x43fa[25]],type:_0x43fa[26]},log:_0x43fa[3]})};exports[_0x43fa[27]]= function(_0xd686x2){return client.Request(_0x43fa[3],{body:{result:_0xd686x2[_0x43fa[4]],transfererchannel:_0xd686x2[_0x43fa[28]],transferercalleridnum:_0xd686x2[_0x43fa[29]],transferercalleridname:_0xd686x2[_0x43fa[30]],transfererconnectedlinenum:_0xd686x2[_0x43fa[31]],transfererconnectedlinename:_0xd686x2[_0x43fa[32]],transfereraccountcode:_0xd686x2[_0x43fa[33]],transferercontext:_0xd686x2[_0x43fa[34]],transfererexten:_0xd686x2[_0x43fa[35]],transfererlinkedid:_0xd686x2[_0x43fa[36]],transfereechannel:_0xd686x2[_0x43fa[37]],transfereecalleridnum:_0xd686x2[_0x43fa[38]],transfereecalleridname:_0xd686x2[_0x43fa[39]],transfereeconnectedlinenum:_0xd686x2[_0x43fa[40]],transfereeconnectedlinename:_0xd686x2[_0x43fa[41]],transfereeaccountcode:_0xd686x2[_0x43fa[42]],transfereecontext:_0xd686x2[_0x43fa[43]],transfereeexten:_0xd686x2[_0x43fa[44]],transfereelinkedid:_0xd686x2[_0x43fa[45]],isexternal:_0xd686x2[_0x43fa[23]],context:_0xd686x2[_0x43fa[46]],extension:_0xd686x2[_0x43fa[47]],type:_0x43fa[48]},log:_0x43fa[3]})}
\ No newline at end of file
diff --git a/server/services/ami/server/index.js b/server/services/ami/server/index.js
new file mode 100644 (file)
index 0000000..b673d1e
--- /dev/null
@@ -0,0 +1 @@
+var _0x1ad3=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x76\x61\x6C\x69\x64\x61\x74\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x2E\x2E\x2F\x70\x72\x6F\x70\x65\x72\x74\x69\x65\x73","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x69\x73\x74\x65\x6E","\x25\x73\x2F\x25\x73","\x53\x49\x50","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x74\x69\x6D\x65\x72\x73","\x61\x63\x77\x20\x63\x6C\x65\x61\x72\x54\x69\x6D\x65\x6F\x75\x74","\x6C\x6F\x67","\x51\x75\x65\x75\x65\x50\x61\x75\x73\x65","\x69\x73\x43\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x20","\x6A\x6F\x69\x6E","\x69\x70","\x61\x73\x74\x65\x72\x69\x73\x6B","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x61\x6D\x69\x20\x64\x69\x73\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64","\x65\x72\x72\x6F\x72","\x6D\x6F\x64\x75\x6C\x65","\x6B\x65\x79\x73","\x70\x69\x63\x6B","\x61\x63\x74\x69\x6F\x6E","\x52\x65\x6C\x6F\x61\x64","\x6D\x65\x73\x73\x61\x67\x65","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x76\x61\x6C\x75\x65\x73","\x6C\x65\x6E\x67\x74\x68","\x71\x75\x65\x75\x65\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C","\x2C\x20","\x6D\x61\x70","\x75\x6E\x69\x71\x75\x65\x69\x64","\x66\x69\x6E\x64","\x43\x68\x61\x6E\x6E\x65\x6C\x20\x64\x6F\x65\x73\x6E\x27\x74\x20\x65\x78\x69\x73\x74","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C\x68\x61\x6E\x67\x75\x70","\x63\x68\x61\x6E\x6E\x65\x6C","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x48\x61\x6E\x67\x75\x70","\x76\x6F\x69\x63\x65\x71\x75\x65\x75\x65\x63\x68\x61\x6E\x6E\x65\x6C\x72\x65\x64\x69\x72\x65\x63\x74","\x52\x65\x64\x69\x72\x65\x63\x74","\x65\x78\x74\x65\x6E","\x63\x6F\x6E\x74\x65\x78\x74","\x61\x67\x65\x6E\x74\x73","\x74\x65\x6C\x65\x70\x68\x6F\x6E\x65\x73","\x74\x72\x75\x6E\x6B\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64\x43\x68\x61\x6E\x6E\x65\x6C\x73","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x63\x61\x6D\x70\x61\x69\x67\x6E\x73","\x68\x74\x74\x70","\x73\x65\x72\x76\x65\x72","\x6F\x6E","\x52\x50\x43\x20\x6C\x69\x73\x74\x65\x6E\x69\x6E\x67\x20\x6F\x6E\x20\x70\x6F\x72\x74\x3A"];_0x1ad3[0];var _=require(_0x1ad3[1]);var util=require(_0x1ad3[2]);var jayson=require(_0x1ad3[3]);var schema=require(_0x1ad3[4]);var BPromise=require(_0x1ad3[5]);var config=require(_0x1ad3[6]);var properties=require(_0x1ad3[7]);var ami=require(_0x1ad3[8]);exports[_0x1ad3[9]]= function(_0x37d0x9){return  new BPromise(function(_0x37d0xa,_0x37d0xb){var _0x37d0xc={QueuePause:function(_0x37d0xd){return  new Promise(function(_0x37d0xa,_0x37d0xb){var _0x37d0xe=util[_0x1ad3[13]](_0x1ad3[10],_0x1ad3[11],_0x37d0xd[_0x1ad3[12]]);if(_0x37d0x9[_0x1ad3[14]][_0x37d0xe]){clearTimeout(_0x37d0x9[_0x1ad3[14]][_0x37d0xe]);delete _0x37d0x9[_0x1ad3[14]][_0x37d0xe];console[_0x1ad3[16]](_0x1ad3[15],_0x37d0xe)};_0x37d0xa({code:200,message:_0x1ad3[17]})})},Reload:function(_0x37d0xd){var _0x37d0xf=this;return  new Promise(function(_0x37d0xa,_0x37d0xb){if(ami[_0x1ad3[18]]()== false){return _0x37d0xb(_0x37d0xf[_0x1ad3[25]](500,[config[_0x1ad3[22]][_0x1ad3[21]],config[_0x1ad3[22]][_0x1ad3[23]],_0x1ad3[24]][_0x1ad3[20]](_0x1ad3[19])))};_0x37d0xd= _[_0x1ad3[28]](_0x37d0xd,_[_0x1ad3[27]](properties[_0x1ad3[26]]));_0x37d0xd[_0x1ad3[29]]= _0x1ad3[30];return ami.Action(_0x37d0xd)[_0x1ad3[33]](function(_0x37d0x11){_0x37d0xa({code:200,message:_0x37d0x11[_0x1ad3[31]]})})[_0x1ad3[32]](function(_0x37d0x10){_0x37d0xb(_0x37d0xf[_0x1ad3[25]](501,_0x37d0x10[_0x1ad3[31]]))})})},VoiceQueues:function(_0x37d0xd){return  new Promise(function(_0x37d0xa,_0x37d0xb){var _0x37d0x12=_[_0x1ad3[35]](_0x37d0x9[_0x1ad3[34]]);_0x37d0xa({count:_0x37d0x12[_0x1ad3[36]],rows:_0x37d0x12})})},VoiceQueuesChannels:function(_0x37d0xd){return  new Promise(function(_0x37d0xa,_0x37d0xb){var _0x37d0x12=_[_0x1ad3[35]](_0x37d0x9[_0x1ad3[37]]);_0x37d0xa({count:_0x37d0x12[_0x1ad3[36]],rows:_0x37d0x12})})},VoiceQueuesChannel:function(_0x37d0xd){var _0x37d0xf=this;return  new Promise(function(_0x37d0xa,_0x37d0xb){var _0x37d0x13=schema(properties[_0x1ad3[38]])[_0x1ad3[4]](_0x37d0xd);if(_0x37d0x13[_0x1ad3[36]]> 0){return _0x37d0xb(_0x37d0xf[_0x1ad3[25]](500,_[_0x1ad3[40]](_0x37d0x13,_0x1ad3[31])[_0x1ad3[20]](_0x1ad3[39])))};var _0x37d0x14=_[_0x1ad3[42]](_0x37d0x9[_0x1ad3[37]],{uniqueid:_0x37d0xd[_0x1ad3[41]]});if(_0x37d0x14){_0x37d0xa(_0x37d0x14)}else {return _0x37d0xb(_0x37d0xf[_0x1ad3[25]](501,_0x1ad3[43]))}})},VoiceQueuesChannelHangup:function(_0x37d0xd){var _0x37d0xf=this;return  new Promise(function(_0x37d0xa,_0x37d0xb){if(ami[_0x1ad3[18]]()== false){return _0x37d0xb(_0x37d0xf[_0x1ad3[25]](500,[config[_0x1ad3[22]][_0x1ad3[21]],config[_0x1ad3[22]][_0x1ad3[23]],_0x1ad3[24]][_0x1ad3[20]](_0x1ad3[19])))};var _0x37d0x13=schema(properties[_0x1ad3[44]])[_0x1ad3[4]](_0x37d0xd);if(_0x37d0x13[_0x1ad3[36]]> 0){return _0x37d0xb(_0x37d0xf[_0x1ad3[25]](500,_[_0x1ad3[40]](_0x37d0x13,_0x1ad3[31])[_0x1ad3[20]](_0x1ad3[39])))};var _0x37d0x14=_[_0x1ad3[42]](_0x37d0x9[_0x1ad3[37]],{uniqueid:_0x37d0xd[_0x1ad3[41]]});if(_0x37d0x14&& _0x37d0x14[_0x1ad3[45]]){return ami.Action({action:_0x1ad3[47],channel:_0x37d0x14[_0x1ad3[45]]})[_0x1ad3[33]](function(_0x37d0x11){_0x37d0xa({code:200,message:[_0x37d0xd[_0x1ad3[41]],_0x37d0x11[_0x1ad3[31]][_0x1ad3[46]]()][_0x1ad3[20]](_0x1ad3[19])})})[_0x1ad3[32]](function(_0x37d0x10){_0x37d0xb(_0x37d0xf[_0x1ad3[25]](501,[_0x37d0xd[_0x1ad3[41]],_0x37d0x10[_0x1ad3[31]][_0x1ad3[46]]()][_0x1ad3[20]](_0x1ad3[19])))})}else {return _0x37d0xb(_0x37d0xf[_0x1ad3[25]](501,_0x1ad3[43]))}})},VoiceQueuesChannelRedirect:function(_0x37d0xd){var _0x37d0xf=this;return  new Promise(function(_0x37d0xa,_0x37d0xb){if(ami[_0x1ad3[18]]()== false){return _0x37d0xb(_0x37d0xf[_0x1ad3[25]](500,[config[_0x1ad3[22]][_0x1ad3[21]],config[_0x1ad3[22]][_0x1ad3[23]],_0x1ad3[24]][_0x1ad3[20]](_0x1ad3[19])))};var _0x37d0x13=schema(properties[_0x1ad3[48]])[_0x1ad3[4]](_0x37d0xd);if(_0x37d0x13[_0x1ad3[36]]> 0){return _0x37d0xb(_0x37d0xf[_0x1ad3[25]](500,_[_0x1ad3[40]](_0x37d0x13,_0x1ad3[31])[_0x1ad3[20]](_0x1ad3[39])))};var _0x37d0x14=_[_0x1ad3[42]](_0x37d0x9[_0x1ad3[37]],{uniqueid:_0x37d0xd[_0x1ad3[41]]});if(_0x37d0x14&& _0x37d0x14[_0x1ad3[45]]){return ami.Action({action:_0x1ad3[49],channel:_0x37d0x14[_0x1ad3[45]],exten:_0x37d0xd[_0x1ad3[50]],context:_0x37d0x14[_0x1ad3[51]],priority:1})[_0x1ad3[33]](function(_0x37d0x11){_0x37d0xa({code:200,message:[_0x37d0xd[_0x1ad3[41]],_0x37d0x11[_0x1ad3[31]][_0x1ad3[46]]()][_0x1ad3[20]](_0x1ad3[19])})})[_0x1ad3[32]](function(_0x37d0x10){_0x37d0xb(_0x37d0xf[_0x1ad3[25]](501,[_0x37d0xd[_0x1ad3[41]],_0x37d0x10[_0x1ad3[31]][_0x1ad3[46]]()][_0x1ad3[20]](_0x1ad3[19])))})}else {return _0x37d0xb(_0x37d0xf[_0x1ad3[25]](501,_0x1ad3[43]))}})},Agents:function(_0x37d0xd){return  new Promise(function(_0x37d0xa,_0x37d0xb){var _0x37d0x12=_[_0x1ad3[35]](_0x37d0x9[_0x1ad3[52]]);_0x37d0xa({count:_0x37d0x12[_0x1ad3[36]],rows:_0x37d0x12})})},Telephones:function(_0x37d0xd){return  new Promise(function(_0x37d0xa,_0x37d0xb){var _0x37d0x12=_[_0x1ad3[35]](_0x37d0x9[_0x1ad3[53]]);_0x37d0xa({count:_0x37d0x12[_0x1ad3[36]],rows:_0x37d0x12})})},Trunks:function(_0x37d0xd){return  new Promise(function(_0x37d0xa,_0x37d0xb){var _0x37d0x12=_[_0x1ad3[35]](_0x37d0x9[_0x1ad3[54]]);_0x37d0xa({count:_0x37d0x12[_0x1ad3[36]],rows:_0x37d0x12})})},OutboundChannels:function(_0x37d0xd){return  new Promise(function(_0x37d0xa,_0x37d0xb){var _0x37d0x12=_[_0x1ad3[35]](_0x37d0x9[_0x1ad3[55]]);_0x37d0xa({count:_0x37d0x12[_0x1ad3[36]],rows:_0x37d0x12})})},Outbound:function(_0x37d0xd){return  new Promise(function(_0x37d0xa,_0x37d0xb){_0x37d0xa(_0x37d0x9[_0x1ad3[56]])})},Campaigns:function(_0x37d0xd){return  new Promise(function(_0x37d0xa,_0x37d0xb){var _0x37d0x12=_[_0x1ad3[35]](_0x37d0x9[_0x1ad3[57]]);_0x37d0xa({count:_0x37d0x12[_0x1ad3[36]],rows:_0x37d0x12})})}};var _0x37d0x15=jayson[_0x1ad3[59]](_0x37d0xc)[_0x1ad3[58]]();_0x37d0x15[_0x1ad3[60]](_0x1ad3[25],function(_0x37d0x10){return _0x37d0xb(_0x37d0x10)});_0x37d0x15[_0x1ad3[9]](9002,function(){return _0x37d0xa(_0x1ad3[61]+ 9002)})})}
\ No newline at end of file
diff --git a/server/services/ami/trigger/index.js b/server/services/ami/trigger/index.js
new file mode 100644 (file)
index 0000000..77c2f2f
--- /dev/null
@@ -0,0 +1 @@
+var _0x582a=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6C\x6F\x64\x61\x73\x68","\x75\x72\x6C","\x6D\x75\x73\x74\x61\x63\x68\x65","\x2E\x2F\x75\x72\x6C\x66\x6F\x72\x77\x61\x72\x64","\x2E\x2F\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x2E\x2E\x2F\x61\x6D\x69","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x75\x72\x6C\x66\x6F\x72\x77\x61\x72\x64","\x70\x6F\x70\x75\x70","\x77\x69\x6E\x61\x70\x70","\x74\x72\x69\x67\x67\x65\x72\x73","\x76\x6F\x69\x63\x65\x54\x72\x69\x67\x67\x65\x72\x73","\x61\x67\x65\x6E\x74\x73","\x76\x6F\x69\x63\x65\x51\x75\x65\x75\x65\x73","\x74\x65\x6D\x70\x6C\x61\x74\x65\x73","\x7A\x65\x6E\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x66\x72\x65\x73\x68\x64\x65\x73\x6B\x41\x63\x63\x6F\x75\x6E\x74\x73","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x41\x63\x63\x6F\x75\x6E\x74\x73","\x73\x75\x67\x61\x72\x63\x72\x6D\x41\x63\x63\x6F\x75\x6E\x74\x73","\x61\x63\x63\x6F\x75\x6E\x74\x73","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x61\x6C\x6C\x65\x64","\x62\x69\x6E\x64","\x73\x79\x6E\x63\x43\x75\x73\x74\x6F\x6D\x45\x76\x65\x6E\x74","\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x72\x69\x6E\x67\x6E\x6F\x61\x6E\x73\x77\x65\x72","\x63\x75\x73\x74\x6F\x6D\x3A\x61\x67\x65\x6E\x74\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x63\x75\x73\x74\x6F\x6D\x3A\x71\x75\x65\x75\x65\x63\x61\x6C\x6C\x65\x72\x61\x62\x61\x6E\x64\x6F\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x62\x65\x67\x69\x6E","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x63\x6F\x6E\x6E\x65\x63\x74","\x63\x75\x73\x74\x6F\x6D\x3A\x64\x69\x61\x6C\x65\x6E\x64","\x65\x6D\x69\x74","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6C\x6F\x67","\x74\x6F","\x63\x68\x65\x63\x6B\x54\x72\x69\x67\x67\x65\x72\x73","\x68\x61\x73\x4F\x77\x6E\x50\x72\x6F\x70\x65\x72\x74\x79","\x73\x74\x61\x74\x75\x73","\x63\x68\x65\x63\x6B\x54\x72\x69\x67\x67\x65\x72","\x76\x61\x72\x69\x61\x62\x6C\x65\x73","\x6D\x65\x72\x67\x65","\x6C\x65\x6E\x67\x74\x68","\x41\x63\x74\x69\x6F\x6E\x73","\x69\x6E\x74\x65\x72\x66\x61\x63\x65","\x75\x73\x65\x72\x3A\x25\x73","\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x74\x72\x69\x67\x67\x65\x72\x3A\x25\x73","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x61\x63\x74\x69\x6F\x6E","\x64\x61\x74\x61\x31","\x63\x6F\x6E\x74\x61\x63\x74\x6D\x61\x6E\x61\x67\x65\x72","\x6D\x6F\x74\x69\x6F\x6E\x62\x61\x72","\x54\x65\x6D\x70\x6C\x61\x74\x65\x49\x64","\x64\x61\x74\x61\x32","\x68\x74\x6D\x6C","\x72\x65\x6E\x64\x65\x72","\x74\x65\x6D\x70\x6C\x61\x74\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x75\x72\x69","\x62\x75\x69\x6C\x64\x55\x72\x69","\x77\x69\x6E\x41\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E","","\x77\x69\x6E\x41\x72\x67\x75\x6D\x65\x6E\x74\x73","\x64\x61\x74\x61\x33","\x74\x72\x69\x67\x67\x65\x72\x3A\x25\x73\x3A\x25\x73","\x62\x72\x6F\x77\x73\x65\x72","\x6A\x73\x63\x72\x69\x70\x74\x79","\x71\x75\x65\x75\x65","\x65\x78\x65\x63","\x70\x61\x72\x73\x65","\x71\x75\x65\x72\x79","\x73\x65\x61\x72\x63\x68","\x41\x6C\x6C\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x63\x68\x65\x63\x6B\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x65\x76\x65\x72\x79","\x41\x6E\x79\x43\x6F\x6E\x64\x69\x74\x69\x6F\x6E\x73","\x73\x6F\x6D\x65","\x76\x61\x6C\x75\x65","\x6F\x70\x65\x72\x61\x74\x6F\x72","\x6C\x61\x73\x74\x65\x76\x65\x6E\x74","\x72\x6F\x75\x74\x65\x49\x64","\x66\x69\x65\x6C\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x582a[0];var util=require(_0x582a[1]);var _=require(_0x582a[2]);var url=require(_0x582a[3]);var Mustache=require(_0x582a[4]);var urlforward=require(_0x582a[5]);var integration=require(_0x582a[6]);var ami=require(_0x582a[7]);var io=require(_0x582a[9])({host:_0x582a[8],port:6379});var operators={"\x65\x71\x75\x61\x6C\x73":function(_0xd5bfxa,_0xd5bfxb){return _0xd5bfxa=== _0xd5bfxb},"\x6E\x6F\x74\x5F\x65\x71\x75\x61\x6C\x73":function(_0xd5bfxa,_0xd5bfxb){return _0xd5bfxa!== _0xd5bfxb}};var serverActions=[_0x582a[10],_0x582a[11]];var barAndWebActions=[_0x582a[12],_0x582a[3],_0x582a[13]];function Trigger(_0xd5bfxf){this[_0x582a[14]]= _0xd5bfxf[_0x582a[15]];this[_0x582a[16]]= _0xd5bfxf[_0x582a[16]];this[_0x582a[17]]= _0xd5bfxf[_0x582a[17]];this[_0x582a[18]]= _0xd5bfxf[_0x582a[18]];this[_0x582a[19]]= _0xd5bfxf[_0x582a[19]];this[_0x582a[20]]= _0xd5bfxf[_0x582a[20]];this[_0x582a[21]]= _0xd5bfxf[_0x582a[21]];this[_0x582a[22]]= _0xd5bfxf[_0x582a[22]];this[_0x582a[23]]= {zendesk:this[_0x582a[19]],salesforce:this[_0x582a[21]],freshdesk:this[_0x582a[20]],sugarcrm:this[_0x582a[22]]};ami[_0x582a[27]](_0x582a[24],this[_0x582a[26]][_0x582a[25]](this));ami[_0x582a[27]](_0x582a[28],this[_0x582a[26]][_0x582a[25]](this));ami[_0x582a[27]](_0x582a[29],this[_0x582a[26]][_0x582a[25]](this));ami[_0x582a[27]](_0x582a[30],this[_0x582a[26]][_0x582a[25]](this));ami[_0x582a[27]](_0x582a[31],this[_0x582a[26]][_0x582a[25]](this));ami[_0x582a[27]](_0x582a[32],this[_0x582a[26]][_0x582a[25]](this));ami[_0x582a[27]](_0x582a[33],this[_0x582a[26]][_0x582a[25]](this));ami[_0x582a[27]](_0x582a[34],this[_0x582a[26]][_0x582a[25]](this))}Trigger[_0x582a[36]][_0x582a[35]]= function(_0xd5bfx10,_0xd5bfx11,_0xd5bfx12){console[_0x582a[37]](_0xd5bfx10,_0xd5bfx11);io[_0x582a[38]](_0xd5bfx10)[_0x582a[35]](_0xd5bfx11,_0xd5bfx12)};Trigger[_0x582a[36]][_0x582a[26]]= function(_0xd5bfx11){this[_0x582a[39]](_0xd5bfx11)};Trigger[_0x582a[36]][_0x582a[39]]= function(_0xd5bfx11){var _0xd5bfx13;for(var _0xd5bfx14 in this[_0x582a[14]]){if(this[_0x582a[14]][_0x582a[40]](_0xd5bfx14)){if(this[_0x582a[14]][_0xd5bfx14][_0x582a[41]]){_0xd5bfx13= this[_0x582a[42]](this[_0x582a[14]][_0xd5bfx14],_0xd5bfx11);if(_0xd5bfx13){_[_0x582a[44]](_0xd5bfx11,_0xd5bfx11[_0x582a[43]]);for(var _0xd5bfx15=0,_0xd5bfx16,_0xd5bfx17,_0xd5bfx18;_0xd5bfx15< this[_0x582a[14]][_0xd5bfx14][_0x582a[46]][_0x582a[45]];_0xd5bfx15+= 1){_0xd5bfx16= this[_0x582a[14]][_0xd5bfx14][_0x582a[46]][_0xd5bfx15];if(this[_0x582a[16]][_0xd5bfx11[_0x582a[47]]]){switch(_0xd5bfx16[_0x582a[53]][_0x582a[52]]()){case _0x582a[55]:this[_0x582a[35]](util[_0x582a[50]](_0x582a[48],this[_0x582a[16]][_0xd5bfx11[_0x582a[47]]][_0x582a[49]]),util[_0x582a[50]](_0x582a[51],_0xd5bfx16[_0x582a[53]][_0x582a[52]]()),_[_0x582a[44]]({ListId:parseInt(_0xd5bfx16[_0x582a[54]],10)},_0xd5bfx11));break;case _0x582a[56]:;case _0x582a[69]:var _0xd5bfx12={};switch(barAndWebActions[_0xd5bfx16[_0x582a[54]]]){case _0x582a[12]:_0xd5bfx12[_0x582a[57]]= _0xd5bfx16[_0x582a[58]];_0xd5bfx12[_0x582a[59]]= this[_0x582a[18]][_0xd5bfx16[_0x582a[58]]]?Mustache[_0x582a[60]](this[_0x582a[18]][_0xd5bfx16[_0x582a[58]]][_0x582a[59]],_0xd5bfx11):_0x582a[61];break;case _0x582a[3]:_0xd5bfx12[_0x582a[62]]= this[_0x582a[63]](_0xd5bfx16[_0x582a[58]],_0xd5bfx11);break;case _0x582a[13]:_0xd5bfx12[_0x582a[64]]= _0xd5bfx16[_0x582a[58]]|| _0x582a[65];_0xd5bfx12[_0x582a[66]]= _0xd5bfx16[_0x582a[67]]|| _0x582a[65];break};this[_0x582a[35]](util[_0x582a[50]](_0x582a[48],this[_0x582a[16]][_0xd5bfx11[_0x582a[47]]][_0x582a[49]]),util[_0x582a[50]](_0x582a[68],_0xd5bfx16[_0x582a[53]][_0x582a[52]](),barAndWebActions[_0xd5bfx16[_0x582a[54]]]),_[_0x582a[44]](_0xd5bfx12,_0xd5bfx11));break;case _0x582a[70]:this[_0x582a[35]](util[_0x582a[50]](_0x582a[48],this[_0x582a[16]][_0xd5bfx11[_0x582a[47]]][_0x582a[49]]),util[_0x582a[50]](_0x582a[51],_0xd5bfx16[_0x582a[53]][_0x582a[52]]()),_[_0x582a[44]]({ProjectId:parseInt(_0xd5bfx16[_0x582a[54]],10)},_0xd5bfx11));break;default:this[_0x582a[35]](util[_0x582a[50]](_0x582a[48],this[_0x582a[16]][_0xd5bfx11[_0x582a[47]]][_0x582a[49]]),util[_0x582a[50]](_0x582a[51],_0xd5bfx16[_0x582a[53]][_0x582a[52]]()),_[_0x582a[44]]({},_0xd5bfx16,_0xd5bfx11))}};switch(_0xd5bfx16[_0x582a[53]][_0x582a[52]]()){case _0x582a[10]:integration[_0x582a[72]](_0xd5bfx16,_0xd5bfx11,this[_0x582a[23]],this[_0x582a[16]][_0xd5bfx11[_0x582a[47]]],this[_0x582a[17]][_0xd5bfx11[_0x582a[71]]]);break;case _0x582a[11]:urlforward[_0x582a[72]](_0xd5bfx16,_0xd5bfx11);break}}}}}}};Trigger[_0x582a[36]][_0x582a[63]]= function(_0xd5bfx19,_0xd5bfx11){var _0xd5bfx1a=url[_0x582a[73]](Mustache[_0x582a[60]](_0xd5bfx19,_0xd5bfx11),true);_[_0x582a[44]](_0xd5bfx1a[_0x582a[74]],_0xd5bfx11);delete _0xd5bfx1a[_0x582a[75]];return url[_0x582a[50]](_0xd5bfx1a)};Trigger[_0x582a[36]][_0x582a[42]]= function(_0xd5bfx1b,_0xd5bfx11){var _0xd5bfx1c=true,_0xd5bfx1d=true;if(_0xd5bfx1b[_0x582a[76]][_0x582a[45]]){_0xd5bfx1c= _[_0x582a[78]](_0xd5bfx1b.AllConditions,this[_0x582a[77]](_0xd5bfx11))};if(_0xd5bfx1b[_0x582a[79]][_0x582a[45]]){_0xd5bfx1d= _[_0x582a[80]](_0xd5bfx1b.AnyConditions,this[_0x582a[77]](_0xd5bfx11))};return _0xd5bfx1c&& _0xd5bfx1d};Trigger[_0x582a[36]][_0x582a[77]]= function(_0xd5bfx11){return function(_0xd5bfx12){switch(_0xd5bfx12[_0x582a[85]]){case _0x582a[71]:return _0xd5bfx11[_0x582a[71]]?operators[_0xd5bfx12[_0x582a[82]]](_0xd5bfx12[_0x582a[81]],_0xd5bfx11[_0x582a[71]]):false;case _0x582a[83]:return _0xd5bfx11[_0x582a[83]]?operators[_0xd5bfx12[_0x582a[82]]](_0xd5bfx12[_0x582a[81]],_0xd5bfx11[_0x582a[83]]):false;case _0x582a[84]:return _0xd5bfx11[_0x582a[84]]?operators[_0xd5bfx12[_0x582a[82]]](_0xd5bfx12[_0x582a[81]],_0xd5bfx11[_0x582a[84]]):false};return false}};module[_0x582a[86]]= Trigger
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/freshdesk.js b/server/services/ami/trigger/integration/freshdesk.js
new file mode 100644 (file)
index 0000000..b50726e
--- /dev/null
@@ -0,0 +1 @@
+var _0xce00=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x2E\x2F\x75\x74\x69\x6C","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x65\x6D\x69\x74","\x74\x6F","\x69\x64","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x66\x6F\x72\x6D\x61\x74","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x20","\x67\x65\x74\x53\x74\x72\x69\x6E\x67","\x3C\x62\x72\x3E","\x6E\x61\x6D\x65","\x6D\x65\x72\x67\x65","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x6B\x65\x79\x42\x79","\x76\x61\x6C\x75\x65","\x6D\x61\x70\x56\x61\x6C\x75\x65\x73","\x74\x68\x65\x6E","\x25\x73\x2F\x61\x70\x69\x2F\x76\x32\x2F\x74\x69\x63\x6B\x65\x74\x73","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x50\x4F\x53\x54","\x6C\x65\x6E\x67\x74\x68","\x65\x6D\x61\x69\x6C","\x63\x6F\x6E\x74\x61\x63\x74","\x66\x69\x6E\x64","\x25\x73\x2F\x61\x70\x69\x2F\x76\x32\x2F\x61\x67\x65\x6E\x74\x73\x2F\x6D\x65","\x25\x73\x2F\x61\x70\x69\x2F\x76\x32\x2F\x61\x67\x65\x6E\x74\x73","\x25\x73\x2F\x61\x70\x69\x2F\x76\x32\x2F\x63\x6F\x6E\x74\x61\x63\x74\x73","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x61\x70\x69\x4B\x65\x79","\x3A\x58","\x5B\x48\x54\x54\x50\x5D","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x6E\x66\x6F","\x47\x45\x54","\x64\x65\x66\x61\x75\x6C\x74\x73","\x6D\x61\x70","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x64\x46\x69\x65\x6C\x64","\x70\x75\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x66\x6F\x72\x45\x61\x63\x68","\x71\x75\x65\x75\x65","\x73\x74\x72\x69\x70\x54\x72\x61\x69\x6C\x69\x6E\x67\x53\x6C\x61\x73\x68","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x55\x52\x4C","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x25\x73\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x3F\x74\x79\x70\x65\x3D\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x5B\x51\x55\x45\x55\x45\x5D","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x75\x73\x65\x72\x3A\x25\x73","\x74\x72\x69\x67\x67\x65\x72\x3A\x62\x72\x6F\x77\x73\x65\x72\x3A\x75\x72\x6C","\x25\x73\x2F\x68\x65\x6C\x70\x64\x65\x73\x6B\x2F\x74\x69\x63\x6B\x65\x74\x73\x2F\x25\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x5B\x4F\x55\x54\x42\x4F\x55\x4E\x44\x5D","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x5B\x41\x42\x41\x4E\x44\x4F\x4E\x45\x44\x5D"];_0xce00[0];var _=require(_0xce00[1]);var rp=require(_0xce00[2]);var BPromise=require(_0xce00[3]);var util=require(_0xce00[4]);var intUtil=require(_0xce00[5]);var logger=require(_0xce00[7])(_0xce00[6]);var io=require(_0xce00[9])({host:_0xce00[8],port:6379});var headers={"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0xce00[10],"\x41\x63\x63\x65\x70\x74":_0xce00[10]};function emit(_0x87f6xa,_0x87f6xb,_0x87f6xc){io[_0xce00[12]](_0x87f6xa)[_0xce00[11]](_0x87f6xb,_0x87f6xc)}function getTicket(_0x87f6xe,_0x87f6xf,_0x87f6x10,_0x87f6x11,_0x87f6x12){var _0x87f6x13=_[_0xce00[22]]({responder_id:_0x87f6xf[_0xce00[13]],requester_id:_0x87f6x10[_0xce00[13]],name:util[_0xce00[16]](_0xce00[14],_0x87f6x12[_0xce00[15]]),phone:_0x87f6x12[_0xce00[17]],source:3,priority:1,status:2,subject:intUtil[_0xce00[19]](_0x87f6x11.Subjects,_0x87f6x12,_0xce00[18]),description:intUtil[_0xce00[19]](_0x87f6x11.Descriptions,_0x87f6x12,_0xce00[20]),tags:getTags(_0x87f6x11.Tags,_0xce00[21])},getCustomFields(_0x87f6x11.Fields,_0x87f6x12));_0x87f6x13[_0xce00[23]]= _[_0xce00[26]](_[_0xce00[24]](_0x87f6x13[_0xce00[23]],_0xce00[13]),_0xce00[25]);return request({uri:util[_0xce00[16]](_0xce00[28],_0x87f6xe[_0xce00[29]]),method:_0xce00[30],body:_0x87f6x13})[_0xce00[27]](function(_0x87f6x14){return _0x87f6x14})}function getUser(_0x87f6xe,_0x87f6x16){return request({uri:util[_0xce00[16]](_0xce00[36],_0x87f6xe[_0xce00[29]]),qs:{email:_0x87f6x16}})[_0xce00[27]](function(_0x87f6x17){if(_0x87f6x17[_0xce00[31]]){return _[_0xce00[34]](_0x87f6x17,function(_0x87f6x18){return _0x87f6x18[_0xce00[33]][_0xce00[32]]=== _0x87f6x16})}else {return request({uri:util[_0xce00[16]](_0xce00[35],_0x87f6xe[_0xce00[29]])})[_0xce00[27]](function(_0x87f6x19){return _0x87f6x19})}})}function getEndUser(_0x87f6xe,_0x87f6x1b,_0x87f6x1c){return request({uri:util[_0xce00[16]](_0xce00[37],_0x87f6xe[_0xce00[29]]),qs:{phone:_0x87f6x1c}})[_0xce00[27]](function(_0x87f6x17){if(_0x87f6x17[_0xce00[31]]){return _[_0xce00[34]](_0x87f6x17,{phone:_0x87f6x1c})}else {return request({uri:util[_0xce00[16]](_0xce00[37],_0x87f6xe[_0xce00[29]]),method:_0xce00[30],body:{name:_0x87f6x1b,phone:_0x87f6x1c}})[_0xce00[27]](function(_0x87f6xf){return _0x87f6xf})}})}function getAuth(_0x87f6xe){return util[_0xce00[16]](_0xce00[38], new Buffer(_0x87f6xe[_0xce00[40]]+ _0xce00[41]).toString(_0xce00[39]))}function request(_0x87f6x1f){logger[_0xce00[44]](_0xce00[42],JSON[_0xce00[43]](_0x87f6x1f));return rp(_[_0xce00[46]](_0x87f6x1f,{method:_0xce00[45],headers:headers,json:true}))}function getTags(_0x87f6x21,_0x87f6x22){var _0x87f6x23=[];if(_0x87f6x21&& _0x87f6x21[_0xce00[31]]> 0){_0x87f6x23= _[_0xce00[47]](_0x87f6x21,_0x87f6x22)};return _0x87f6x23}function getCustomFields(_0x87f6x25,_0x87f6x12){var _0x87f6x26=[];var _0x87f6x27={custom_fields:[]};if(_0x87f6x25[_0xce00[31]]> 0){_[_0xce00[60]](_0x87f6x25,function(_0x87f6x28){if(_0x87f6x28[_0xce00[48]]=== _0xce00[49]&& _0x87f6x28[_0xce00[50]]&&  !_0x87f6x28[_0xce00[51]]){_0x87f6x27[_0x87f6x28[_0xce00[50]][_0xce00[52]]()]= _0x87f6x28[_0xce00[53]].toString()}else {if(_0x87f6x28[_0xce00[48]]=== _0xce00[49]&& _0x87f6x28[_0xce00[54]]&& _0x87f6x28[_0xce00[51]]){_0x87f6x27[_0xce00[23]][_0xce00[55]]({id:_0x87f6x28[_0xce00[54]],value:_0x87f6x28[_0xce00[53]].toString()})}else {if(_0x87f6x28[_0xce00[48]]=== _0xce00[56]&& _0x87f6x28[_0xce00[57]]&& _0x87f6x28[_0xce00[54]]&& _0x87f6x28[_0xce00[51]]){_0x87f6x12[_0x87f6x28[_0xce00[57]]]&& _0x87f6x27[_0xce00[23]][_0xce00[55]]({id:_0x87f6x28[_0xce00[54]],value:_0x87f6x12[_0x87f6x28[_0xce00[57]]].toString()})}else {if(_0x87f6x28[_0xce00[48]]=== _0xce00[58]&& _0x87f6x28[_0xce00[59]]&& _0x87f6x28[_0xce00[59]][_0xce00[21]]&& _0x87f6x28[_0xce00[54]]&& _0x87f6x28[_0xce00[51]]){_0x87f6x12[_0x87f6x28[_0xce00[59]][_0xce00[21]][_0xce00[52]]()]&& _0x87f6x27[_0xce00[23]][_0xce00[55]]({id:_0x87f6x28[_0xce00[54]],value:_0x87f6x12[_0x87f6x28[_0xce00[59]][_0xce00[21]][_0xce00[52]]()].toString()})}}}}})};return _0x87f6x27}exports[_0xce00[61]]= function(_0x87f6x29,_0x87f6xb,_0x87f6x11,_0x87f6x19,_0x87f6x2a,_0x87f6xe){var _0x87f6xf,_0x87f6x10;_0x87f6xe[_0xce00[29]]= intUtil[_0xce00[62]](_0x87f6xe[_0xce00[29]]);_0x87f6xe[_0xce00[63]]= intUtil[_0xce00[62]](_0x87f6xe[_0xce00[63]]);_0x87f6xb[_0xce00[64]]= (_0x87f6x2a&& _0x87f6x2a[_0xce00[65]])?util[_0xce00[16]](_0xce00[66],_0x87f6xe[_0xce00[63]],_0x87f6xb[_0xce00[67]]):_0xce00[68];headers[_0xce00[69]]= getAuth(_0x87f6xe);return getUser(_0x87f6xe,_0x87f6x19[_0xce00[32]])[_0xce00[27]](function(_0x87f6x2c){_0x87f6xf= _0x87f6x2c;return getEndUser(_0x87f6xe,_0x87f6xb[_0xce00[15]],_0x87f6xb[_0xce00[17]])})[_0xce00[27]](function(_0x87f6x2c){_0x87f6x10= _0x87f6x2c;return getTicket(_0x87f6xe,_0x87f6xf,_0x87f6x10,_0x87f6x11,_0x87f6xb)})[_0xce00[27]](function(_0x87f6x14){if(_0x87f6x14&& _0x87f6x14[_0xce00[13]]){emit(util[_0xce00[16]](_0xce00[73],_0x87f6x19[_0xce00[21]]),_0xce00[74],{uri:util[_0xce00[16]](_0xce00[75],_0x87f6xe[_0xce00[29]],_0x87f6x14[_0xce00[13]])})}})[_0xce00[72]](function(_0x87f6x2b){logger[_0xce00[71]](_0xce00[70],JSON[_0xce00[43]](_0x87f6x2b))})};exports[_0xce00[76]]= function(_0x87f6x29,_0x87f6xb,_0x87f6x11,_0x87f6x19,_0x87f6x2a,_0x87f6xe){var _0x87f6xf,_0x87f6x10;_0x87f6xe[_0xce00[29]]= intUtil[_0xce00[62]](_0x87f6xe[_0xce00[29]]);_0x87f6xe[_0xce00[63]]= intUtil[_0xce00[62]](_0x87f6xe[_0xce00[63]]);_0x87f6xb[_0xce00[64]]= (_0x87f6x2a&& _0x87f6x2a[_0xce00[65]])?util[_0xce00[16]](_0xce00[66],_0x87f6xe[_0xce00[63]],_0x87f6xb[_0xce00[67]]):_0xce00[68];headers[_0xce00[69]]= getAuth(_0x87f6xe);return getUser(_0x87f6xe,_0x87f6x19[_0xce00[32]])[_0xce00[27]](function(_0x87f6x2c){_0x87f6xf= _0x87f6x2c;return getEndUser(_0x87f6xe,_0x87f6xb[_0xce00[78]],_0x87f6xb[_0xce00[79]])})[_0xce00[27]](function(_0x87f6x2c){_0x87f6x10= _0x87f6x2c;return getTicket(_0x87f6xe,_0x87f6xf,_0x87f6x10,_0x87f6x11,_0x87f6xb)})[_0xce00[27]](function(_0x87f6x14){if(_0x87f6x14&& _0x87f6x14[_0xce00[13]]){emit(util[_0xce00[16]](_0xce00[73],_0x87f6x19[_0xce00[21]]),_0xce00[74],{uri:util[_0xce00[16]](_0xce00[75],_0x87f6xe[_0xce00[29]],_0x87f6x14[_0xce00[13]])})}})[_0xce00[72]](function(_0x87f6x2b){logger[_0xce00[71]](_0xce00[77],JSON[_0xce00[43]](_0x87f6x2b))})};exports[_0xce00[80]]= function(_0x87f6x29,_0x87f6xb,_0x87f6x11,_0x87f6x19,_0x87f6x2a,_0x87f6xe){var _0x87f6xf,_0x87f6x10;_0x87f6xe[_0xce00[29]]= intUtil[_0xce00[62]](_0x87f6xe[_0xce00[29]]);_0x87f6xe[_0xce00[63]]= intUtil[_0xce00[62]](_0x87f6xe[_0xce00[63]]);_0x87f6xb[_0xce00[64]]= (_0x87f6x2a&& _0x87f6x2a[_0xce00[65]])?util[_0xce00[16]](_0xce00[66],_0x87f6xe[_0xce00[63]],_0x87f6xb[_0xce00[67]]):_0xce00[68];headers[_0xce00[69]]= getAuth(_0x87f6xe);return getUser(_0x87f6xe,_0x87f6x19[_0xce00[32]])[_0xce00[27]](function(_0x87f6x2c){_0x87f6xf= _0x87f6x2c;return getEndUser(_0x87f6xe,_0x87f6xb[_0xce00[15]],_0x87f6xb[_0xce00[17]])})[_0xce00[27]](function(_0x87f6x2c){_0x87f6x10= _0x87f6x2c;return getTicket(_0x87f6xe,_0x87f6xf,_0x87f6x10,_0x87f6x11,_0x87f6xb)})[_0xce00[72]](function(_0x87f6x2b){logger[_0xce00[71]](_0xce00[81],JSON[_0xce00[43]](_0x87f6x2b))})}
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/index.js b/server/services/ami/trigger/integration/index.js
new file mode 100644 (file)
index 0000000..0c06ae6
--- /dev/null
@@ -0,0 +1 @@
+var _0x9090=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x7A\x65\x6E\x64\x65\x73\x6B","\x2E\x2F\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x2E\x2F\x73\x75\x67\x61\x72\x63\x72\x6D","\x2E\x2F\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x7A\x65\x6E\x64\x65\x73\x6B","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x73\x75\x67\x61\x72\x63\x72\x6D","\x66\x72\x65\x73\x68\x64\x65\x73\x6B","\x65\x78\x65\x63","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x64\x61\x74\x61\x31","\x69\x6E\x63\x6C\x75\x64\x65\x73","","\x64\x61\x74\x61\x32","\x64\x61\x74\x61\x33","\x66\x69\x6E\x64","\x71\x75\x65\x75\x65","\x72\x6F\x75\x74\x65\x49\x64","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x45\x56\x45\x4E\x54\x20\x55\x4E\x4B\x4E\x4F\x57\x4E","\x6C\x6F\x67","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x75\x6E\x6B\x6E\x6F\x77\x6E\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x65\x72\x72\x6F\x72"];_0x9090[0];var _=require(_0x9090[1]);var zendesk=require(_0x9090[2]);var salesforce=require(_0x9090[3]);var sugarcrm=require(_0x9090[4]);var freshdesk=require(_0x9090[5]);var integrations=[_0x9090[6],_0x9090[7],_0x9090[8],_0x9090[9]];exports[_0x9090[10]]= function(_0xb536x7,_0xb536x8,_0xb536x9,_0xb536xa,_0xb536xb){if(_0xb536x9){if(_[_0x9090[13]](integrations,_0xb536x7[_0x9090[12]][_0x9090[11]]())){try{var _0xb536xc=_0x9090[14];var _0xb536xd=_0xb536x9[_0xb536x7[_0x9090[12]][_0x9090[11]]()];if(_0xb536xd){var _0xb536xe=_0xb536xd[_0xb536x7[_0x9090[15]]];if(_0xb536xe){var _0xb536xf=_[_0x9090[17]](_0xb536xe.Configurations,{id:parseInt(_0xb536x7[_0x9090[16]],10)});if(_0xb536xf){if(_0xb536xa){if(_0xb536xb&& _0xb536x8[_0x9090[18]]){_0xb536xc= _0x9090[18]}else {if(_0xb536x8[_0x9090[19]]){_0xb536xc= _0x9090[20]}else {console[_0x9090[22]](_0x9090[21],_0xb536x8)}}}else {_0xb536xc= _0x9090[23]};switch(_0xb536x7[_0x9090[12]][_0x9090[11]]()){case _0x9090[6]:zendesk[_0xb536xc](_0xb536x7,_0xb536x8,_0xb536xf,_0xb536xa,_0xb536xb,_0xb536xe);break;case _0x9090[7]:salesforce[_0xb536xc](_0xb536x7,_0xb536x8,_0xb536xf,_0xb536xa,_0xb536xb,_0xb536xe);break;case _0x9090[8]:sugarcrm[_0xb536xc](_0xb536x7,_0xb536x8,_0xb536xf,_0xb536xa,_0xb536xb,_0xb536xe);break;case _0x9090[9]:freshdesk[_0xb536xc](_0xb536x7,_0xb536x8,_0xb536xf,_0xb536xa,_0xb536xb,_0xb536xe);break;default:console[_0x9090[22]](_0x9090[24])}}}else {}}else {}}catch(e){console[_0x9090[25]](e)}}}}
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/salesforce.js b/server/services/ami/trigger/integration/salesforce.js
new file mode 100644 (file)
index 0000000..9af8fe4
--- /dev/null
@@ -0,0 +1 @@
+var _0xc839=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x6D\x6F\x6D\x65\x6E\x74","\x62\x6C\x75\x65\x62\x69\x72\x64","\x6A\x73\x66\x6F\x72\x63\x65","\x75\x74\x69\x6C","\x2E\x2F\x75\x74\x69\x6C","\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x65\x6D\x69\x74","\x74\x6F","\x69\x64","\x75\x74\x63","\x20","\x67\x65\x74\x53\x74\x72\x69\x6E\x67","\x0A","\x6D\x65\x72\x67\x65","\x63\x72\x65\x61\x74\x65","\x54\x61\x73\x6B","\x73\x6F\x62\x6A\x65\x63\x74","\x6C\x65\x6E\x67\x74\x68","\x45\x6D\x61\x69\x6C","\x66\x69\x6E\x64","\x49\x64","\x4E\x61\x6D\x65","\x72\x65\x73\x6F\x6C\x76\x65","\x75\x73\x65\x72\x5F\x69\x64","\x64\x69\x73\x70\x6C\x61\x79\x5F\x6E\x61\x6D\x65","\x74\x68\x65\x6E","\x69\x64\x65\x6E\x74\x69\x74\x79","\x65\x78\x65\x63\x75\x74\x65","\x55\x73\x65\x72","\x4E\x6F\x20\x43\x6F\x6D\x70\x61\x6E\x79","\x3C\x75\x6E\x6B\x6E\x6F\x77\x6E\x3E","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x4C\x65\x61\x64","\x76\x61\x6C\x75\x65","\x70\x68\x6F\x6E\x65\x5F\x68\x6F\x6D\x65","\x6E\x61\x6D\x65\x5F\x76\x61\x6C\x75\x65\x5F\x6C\x69\x73\x74","\x6E\x61\x6D\x65","\x50\x68\x6F\x6E\x65","\x43\x6F\x6E\x74\x61\x63\x74","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x69\x64\x46\x69\x65\x6C\x64","\x63\x6F\x6E\x74\x65\x6E\x74","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x66\x6F\x72\x45\x61\x63\x68","\x73\x65\x63\x75\x72\x69\x74\x79\x54\x6F\x6B\x65\x6E","\x63\x6F\x6E\x63\x61\x74","\x70\x61\x73\x73\x77\x6F\x72\x64","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x68\x74\x74\x70\x73\x3A\x2F\x2F\x6C\x6F\x67\x69\x6E\x2E\x73\x61\x6C\x65\x73\x66\x6F\x72\x63\x65\x2E\x63\x6F\x6D","\x63\x6C\x69\x65\x6E\x74\x49\x64","\x63\x6C\x69\x65\x6E\x74\x53\x65\x63\x72\x65\x74","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x6C\x6F\x67\x69\x6E","\x71\x75\x65\x75\x65","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x73\x74\x72\x69\x70\x54\x72\x61\x69\x6C\x69\x6E\x67\x53\x6C\x61\x73\x68","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x55\x52\x4C","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x25\x73\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x3F\x74\x79\x70\x65\x3D\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","","\x5B\x51\x55\x45\x55\x45\x5D","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x75\x73\x65\x72\x3A\x25\x73","\x74\x72\x69\x67\x67\x65\x72\x3A\x62\x72\x6F\x77\x73\x65\x72\x3A\x75\x72\x6C","\x25\x73\x2F\x25\x73\x2F\x65","\x69\x6E\x73\x74\x61\x6E\x63\x65\x55\x72\x6C","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x65\x6D\x61\x69\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x5B\x4F\x55\x54\x42\x4F\x55\x4E\x44\x5D","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x5B\x41\x42\x41\x4E\x44\x4F\x4E\x45\x44\x5D"];_0xc839[0];var _=require(_0xc839[1]);var rp=require(_0xc839[2]);var moment=require(_0xc839[3]);var BPromise=require(_0xc839[4]);var jsforce=require(_0xc839[5]);var util=require(_0xc839[6]);var intUtil=require(_0xc839[7]);var logger=require(_0xc839[9])(_0xc839[8]);var io=require(_0xc839[11])({host:_0xc839[10],port:6379});function emit(_0xebdcxb,_0xebdcxc,_0xebdcxd){io[_0xc839[13]](_0xebdcxb)[_0xc839[12]](_0xebdcxc,_0xebdcxd)}function getTicket(_0xebdcxf,_0xebdcx10,_0xebdcx11,_0xebdcx12,_0xebdcx13,_0xebdcx14,_0xebdcx15){var _0xebdcx16=_[_0xc839[19]]({WhoId:_0xebdcx11[_0xc839[14]],OwnerId:_0xebdcx10[_0xc839[14]],ActivityDate:moment[_0xc839[15]](),IsReminderSet:false,IsRecurrence:false,Subject:intUtil[_0xc839[17]](_0xebdcx12.Subjects,_0xebdcx13,_0xc839[16]),Description:intUtil[_0xc839[17]](_0xebdcx12.Descriptions,_0xebdcx13,_0xc839[18])},getCustomFields(_0xebdcx14,_0xebdcx13));return _0xebdcx15[_0xc839[22]](_0xc839[21])[_0xc839[20]](_0xebdcx16)}function getUser(_0xebdcxf,_0xebdcx18,_0xebdcx15){return _0xebdcx15[_0xc839[22]](_0xc839[34])[_0xc839[25]]({Email:_0xebdcx18},{Id:true,Username:true,Name:true,Email:true})[_0xc839[33]]()[_0xc839[31]](function(_0xebdcx19){if(_0xebdcx19[_0xc839[23]]){var _0xebdcx1a=_[_0xc839[25]](_0xebdcx19,function(_0xebdcx1b){return _0xebdcx1b[_0xc839[24]]=== _0xebdcx18});if(_0xebdcx1a){return BPromise[_0xc839[28]]({id:_0xebdcx1a[_0xc839[26]],name:_0xebdcx1a[_0xc839[27]]})}}else {return _0xebdcx15[_0xc839[32]]()[_0xc839[31]](function(_0xebdcx1a){return BPromise[_0xc839[28]]({id:_0xebdcx1a[_0xc839[29]],name:_0xebdcx1a[_0xc839[30]]})})}})}function getEndUser(_0xebdcxf,_0xebdcx1d,_0xebdcx1e,_0xebdcx15){return _0xebdcx15[_0xc839[22]](_0xc839[45])[_0xc839[25]]({Phone:_0xebdcx1e},{Id:true,Name:true,Phone:true})[_0xc839[33]]()[_0xc839[31]](function(_0xebdcx19){if(_0xebdcx19[_0xc839[23]]){var _0xebdcx1f=_[_0xc839[25]](_0xebdcx19,function(_0xebdcx1b){return _0xebdcx1b[_0xc839[42]][_0xc839[41]][_0xc839[40]]=== _0xebdcx1e});if(_0xebdcx1f){return BPromise[_0xc839[28]]({id:_0xebdcx1f[_0xc839[42]][_0xc839[14]][_0xc839[40]],name:_0xebdcx1f[_0xc839[42]][_0xc839[43]][_0xc839[40]],phone:_0xebdcx1f[_0xc839[42]][_0xc839[41]][_0xc839[40]]})}}else {return _0xebdcx15[_0xc839[22]](_0xc839[39])[_0xc839[25]]({Phone:_0xebdcx1e},{Id:true,Name:true,Phone:true})[_0xc839[31]](function(_0xebdcx19){if(_0xebdcx19[_0xc839[23]]){var _0xebdcx1f=_[_0xc839[25]](_0xebdcx19,function(_0xebdcx1b){return _0xebdcx1b[_0xc839[44]]=== _0xebdcx1e});if(_0xebdcx1f){return BPromise[_0xc839[28]]({id:_0xebdcx1f[_0xc839[26]],name:_0xebdcx1f[_0xc839[27]],phone:_0xebdcx1f[_0xc839[44]]})}}})}})[_0xc839[31]](function(_0xebdcx19){if(_0xebdcx19){return BPromise[_0xc839[28]](_0xebdcx19)}else {return _0xebdcx15[_0xc839[22]](_0xc839[39])[_0xc839[20]]({Company:_0xc839[35],LastName:(_0xebdcx1d!== _0xc839[36])?_0xebdcx1d:util[_0xc839[38]](_0xc839[37],_0xebdcx1e),Phone:_0xebdcx1e})[_0xc839[31]](function(_0xebdcx19){return BPromise[_0xc839[28]]({id:_0xebdcx19[_0xc839[14]]})})}})}function getCustomFields(_0xebdcx14,_0xebdcx13){var _0xebdcx21={};if(_0xebdcx14[_0xc839[23]]> 0){_[_0xc839[55]](_0xebdcx14,function(_0xebdcx22){if(_0xebdcx22[_0xc839[46]]=== _0xc839[47]&& _0xebdcx22[_0xc839[48]]){_0xebdcx21[_0xebdcx22[_0xc839[48]]]= _0xebdcx22[_0xc839[49]].toString()}else {if(_0xebdcx22[_0xc839[46]]=== _0xc839[50]&& _0xebdcx22[_0xc839[51]]&& _0xebdcx22[_0xc839[48]]){_0xebdcx13[_0xebdcx22[_0xc839[51]]]&& (_0xebdcx21[_0xebdcx22[_0xc839[48]]]= _0xebdcx13[_0xebdcx22[_0xc839[51]]].toString())}else {if(_0xebdcx22[_0xc839[46]]=== _0xc839[52]&& _0xebdcx22[_0xc839[53]]&& _0xebdcx22[_0xc839[53]][_0xc839[43]]&& _0xebdcx22[_0xc839[48]]){_0xebdcx21[_0xebdcx22[_0xc839[48]]]= _0xebdcx13[_0xebdcx22[_0xc839[53]][_0xc839[43]][_0xc839[54]]()].toString()}}}})};return _0xebdcx21}function getConnection(_0xebdcxf){var _0xebdcx24=_0xebdcxf[_0xc839[58]][_0xc839[57]](_0xebdcxf[_0xc839[56]]);var _0xebdcx15= new jsforce.Connection({oauth2:{loginUrl:_0xebdcxf[_0xc839[59]]|| _0xc839[60],clientId:_0xebdcxf[_0xc839[61]],clientSecret:_0xebdcxf[_0xc839[62]]}});return _0xebdcx15[_0xc839[64]](_0xebdcxf[_0xc839[63]],_0xebdcx24)[_0xc839[31]](function(){return _0xebdcx15})}exports[_0xc839[65]]= function(_0xebdcx25,_0xebdcxc,_0xebdcx12,_0xebdcx1a,_0xebdcx26,_0xebdcxf){var _0xebdcx10,_0xebdcx11,_0xebdcx27,_0xebdcx15;_0xebdcxf[_0xc839[66]]= intUtil[_0xc839[67]](_0xebdcxf[_0xc839[66]]);_0xebdcxc[_0xc839[68]]= (_0xebdcx26&& _0xebdcx26[_0xc839[69]])?util[_0xc839[38]](_0xc839[70],_0xebdcxf[_0xc839[66]],_0xebdcxc[_0xc839[71]]):_0xc839[72];return getConnection(_0xebdcxf)[_0xc839[31]](function(_0xebdcx29){_0xebdcx15= _0xebdcx29;return getUser(_0xebdcxf,_0xebdcx1a[_0xc839[83]],_0xebdcx15)})[_0xc839[31]](function(_0xebdcx29){_0xebdcx10= _0xebdcx29;return getEndUser(_0xebdcxf,_0xebdcxc[_0xc839[81]],_0xebdcxc[_0xc839[82]],_0xebdcx15)})[_0xc839[31]](function(_0xebdcx29){_0xebdcx11= _0xebdcx29;return getTicket(_0xebdcxf,_0xebdcx10,_0xebdcx11,_0xebdcx12,_0xebdcxc,_0xebdcx12.Fields,_0xebdcx15)})[_0xc839[31]](function(_0xebdcx29){_0xebdcx27= _0xebdcx29;emit(util[_0xc839[38]](_0xc839[77],_0xebdcx1a[_0xc839[43]]),_0xc839[78],{uri:util[_0xc839[38]](_0xc839[79],_0xebdcx15[_0xc839[80]],_0xebdcx27[_0xc839[14]])})})[_0xc839[76]](function(_0xebdcx28){logger[_0xc839[75]](_0xc839[73],JSON[_0xc839[74]](_0xebdcx28))})};exports[_0xc839[84]]= function(_0xebdcx25,_0xebdcxc,_0xebdcx12,_0xebdcx1a,_0xebdcx26,_0xebdcxf){var _0xebdcx10,_0xebdcx11,_0xebdcx27,_0xebdcx15;_0xebdcxf[_0xc839[66]]= intUtil[_0xc839[67]](_0xebdcxf[_0xc839[66]]);_0xebdcxc[_0xc839[68]]= (_0xebdcx26&& _0xebdcx26[_0xc839[69]])?util[_0xc839[38]](_0xc839[70],_0xebdcxf[_0xc839[66]],_0xebdcxc[_0xc839[71]]):_0xc839[72];return getConnection(_0xebdcxf)[_0xc839[31]](function(_0xebdcx29){_0xebdcx15= _0xebdcx29;return getUser(_0xebdcxf,_0xebdcx1a[_0xc839[83]],_0xebdcx15)})[_0xc839[31]](function(_0xebdcx29){_0xebdcx10= _0xebdcx29;return getEndUser(_0xebdcxf,_0xebdcxc[_0xc839[86]],_0xebdcxc[_0xc839[87]],_0xebdcx15)})[_0xc839[31]](function(_0xebdcx29){_0xebdcx11= _0xebdcx29;return getTicket(_0xebdcxf,_0xebdcx10,_0xebdcx11,_0xebdcx12,_0xebdcxc,_0xebdcx12.Fields,_0xebdcx15)})[_0xc839[31]](function(_0xebdcx29){_0xebdcx27= _0xebdcx29;emit(util[_0xc839[38]](_0xc839[77],_0xebdcx1a[_0xc839[43]]),_0xc839[78],{uri:util[_0xc839[38]](_0xc839[79],_0xebdcx15[_0xc839[80]],_0xebdcx27[_0xc839[14]])})})[_0xc839[76]](function(_0xebdcx28){logger[_0xc839[75]](_0xc839[85],JSON[_0xc839[74]](_0xebdcx28))})};exports[_0xc839[88]]= function(_0xebdcx25,_0xebdcxc,_0xebdcx12,_0xebdcx1a,_0xebdcx26,_0xebdcxf){var _0xebdcx10,_0xebdcx11,_0xebdcx27,_0xebdcx15;_0xebdcxf[_0xc839[66]]= intUtil[_0xc839[67]](_0xebdcxf[_0xc839[66]]);_0xebdcxc[_0xc839[68]]= (_0xebdcx26&& _0xebdcx26[_0xc839[69]])?util[_0xc839[38]](_0xc839[70],_0xebdcxf[_0xc839[66]],_0xebdcxc[_0xc839[71]]):_0xc839[72];return getConnection(_0xebdcxf)[_0xc839[31]](function(_0xebdcx29){_0xebdcx15= _0xebdcx29;return getUser(_0xebdcxf,_0xebdcx1a[_0xc839[83]],_0xebdcx15)})[_0xc839[31]](function(_0xebdcx29){_0xebdcx10= _0xebdcx29;return getEndUser(_0xebdcxf,_0xebdcxc[_0xc839[81]],_0xebdcxc[_0xc839[82]],_0xebdcx15)})[_0xc839[31]](function(_0xebdcx29){_0xebdcx11= _0xebdcx29;return getTicket(_0xebdcxf,_0xebdcx10,_0xebdcx11,_0xebdcx12,_0xebdcxc,_0xebdcx12.Fields,_0xebdcx15)})[_0xc839[76]](function(_0xebdcx28){logger[_0xc839[75]](_0xc839[89],JSON[_0xc839[74]](_0xebdcx28))})}
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/sugarcrm.js b/server/services/ami/trigger/integration/sugarcrm.js
new file mode 100644 (file)
index 0000000..910836f
--- /dev/null
@@ -0,0 +1 @@
+var _0x9f68=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x2E\x2F\x75\x74\x69\x6C","\x73\x75\x67\x61\x72\x63\x72\x6D","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x65\x6D\x69\x74\x74\x65\x72","\x50\x4F\x53\x54","\x65\x6D\x69\x74","\x74\x6F","\x6E\x61\x6D\x65","\x20","\x67\x65\x74\x53\x74\x72\x69\x6E\x67","\x61\x73\x73\x69\x67\x6E\x65\x64\x5F\x75\x73\x65\x72\x5F\x69\x64","\x69\x64","\x63\x72\x65\x61\x74\x65\x64\x5F\x62\x79","\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6F\x6E","\x0A","\x64\x61\x74\x65\x5F\x73\x74\x61\x72\x74","\x54","\x72\x65\x70\x6C\x61\x63\x65","\x73\x6C\x69\x63\x65","\x74\x6F\x49\x53\x4F\x53\x74\x72\x69\x6E\x67","\x64\x75\x72\x61\x74\x69\x6F\x6E\x5F\x68\x6F\x75\x72\x73","\x30","\x64\x75\x72\x61\x74\x69\x6F\x6E\x5F\x6D\x69\x6E\x75\x74\x65\x73","\x31\x35","\x70\x61\x72\x65\x6E\x74\x5F\x69\x64","\x70\x61\x72\x65\x6E\x74\x5F\x74\x79\x70\x65","\x43\x6F\x6E\x74\x61\x63\x74\x73","\x70\x61\x72\x65\x6E\x74\x5F\x6E\x61\x6D\x65","\x6C\x65\x6E\x67\x74\x68","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x69\x64\x46\x69\x65\x6C\x64","\x70\x75\x73\x68","\x66\x6F\x72\x45\x61\x63\x68","\x73\x65\x74\x5F\x65\x6E\x74\x72\x79","\x4A\x53\x4F\x4E","\x43\x61\x6C\x6C\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x61\x70\x69\x4B\x65\x79","\x3A\x58","\x66\x6F\x72\x6D\x61\x74","\x67\x65\x74\x5F\x73\x65\x72\x76\x65\x72\x5F\x69\x6E\x66\x6F","\x65\x6E\x74\x72\x79\x5F\x6C\x69\x73\x74","\x76\x61\x6C\x75\x65","\x75\x73\x65\x72\x5F\x6E\x61\x6D\x65","\x6E\x61\x6D\x65\x5F\x76\x61\x6C\x75\x65\x5F\x6C\x69\x73\x74","\x66\x69\x6E\x64","\x72\x65\x73\x6F\x6C\x76\x65","\x75\x73\x65\x72\x5F\x69\x64","\x74\x68\x65\x6E","\x67\x65\x74\x5F\x65\x6E\x74\x72\x79\x5F\x6C\x69\x73\x74","\x45\x6D\x70\x6C\x6F\x79\x65\x65\x73","\x49\x4E\x53\x54\x52\x20\x28\x20\x75\x73\x65\x72\x73\x2E\x75\x73\x65\x72\x5F\x6E\x61\x6D\x65\x2C\x20\x22\x25\x73\x22\x29\x20\x3E\x20\x30","","\x70\x68\x6F\x6E\x65\x5F\x68\x6F\x6D\x65","\x66\x69\x72\x73\x74\x5F\x6E\x61\x6D\x65","\x3C\x75\x6E\x6B\x6E\x6F\x77\x6E\x3E","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x63\x6F\x6E\x74\x61\x63\x74\x73\x2E\x70\x68\x6F\x6E\x65\x5F\x68\x6F\x6D\x65\x20\x3D\x20\x22\x25\x73\x22","\x5B\x48\x54\x54\x50\x5D","\x69\x6E\x66\x6F","\x6D\x65\x72\x67\x65","\x6D\x61\x70","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x76\x61\x72\x69\x61\x62\x6C\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x73\x65\x73\x73\x69\x6F\x6E\x49\x44","\x41\x63\x63\x6F\x75\x6E\x74\x20\x25\x64\x20\x69\x73\x20\x6E\x6F\x74\x20\x76\x61\x6C\x69\x64","\x6C\x6F\x67\x69\x6E","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x50\x4C\x41\x49\x4E","\x78\x43\x41\x4C\x4C\x59\x20\x4D\x6F\x74\x69\x6F\x6E\x20\x69\x6E\x74\x65\x67\x72\x61\x74\x69\x6F\x6E","\x73\x65\x74\x5F\x72\x65\x6C\x61\x74\x69\x6F\x6E\x73\x68\x69\x70","\x71\x75\x65\x75\x65","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x73\x74\x72\x69\x70\x54\x72\x61\x69\x6C\x69\x6E\x67\x53\x6C\x61\x73\x68","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x75\x72\x69","\x25\x73\x2F\x73\x65\x72\x76\x69\x63\x65\x2F\x76\x34\x5F\x31\x2F\x72\x65\x73\x74\x2E\x70\x68\x70","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x55\x52\x4C","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x25\x73\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x3F\x74\x79\x70\x65\x3D\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","\x5B\x51\x55\x45\x55\x45\x5D","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x63\x68\x61\x72\x41\x74","\x76\x65\x72\x73\x69\x6F\x6E","\x25\x73\x2F\x69\x6E\x64\x65\x78\x2E\x70\x68\x70\x3F\x61\x63\x74\x69\x6F\x6E\x3D\x61\x6A\x61\x78\x75\x69\x23\x61\x6A\x61\x78\x55\x49\x4C\x6F\x63\x3D\x69\x6E\x64\x65\x78\x2E\x70\x68\x70\x25\x33\x46\x6D\x6F\x64\x75\x6C\x65\x25\x33\x44\x43\x61\x6C\x6C\x73\x25\x32\x36\x61\x63\x74\x69\x6F\x6E\x25\x33\x44\x45\x64\x69\x74\x56\x69\x65\x77\x25\x32\x36\x72\x65\x63\x6F\x72\x64\x25\x33\x44\x25\x73","\x25\x73\x2F\x23\x62\x77\x63\x2F\x69\x6E\x64\x65\x78\x2E\x70\x68\x70\x3F\x6D\x6F\x64\x75\x6C\x65\x3D\x43\x61\x6C\x6C\x73\x26\x61\x63\x74\x69\x6F\x6E\x3D\x45\x64\x69\x74\x56\x69\x65\x77\x26\x72\x65\x63\x6F\x72\x64\x3D\x25\x73","\x75\x73\x65\x72\x3A\x25\x73","\x74\x72\x69\x67\x67\x65\x72\x3A\x62\x72\x6F\x77\x73\x65\x72\x3A\x75\x72\x6C","\x63\x6F\x6E\x74\x61\x63\x74\x73","\x75\x73\x65\x72\x73","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x5B\x4F\x55\x54\x42\x4F\x55\x4E\x44\x5D","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x5B\x41\x42\x41\x4E\x44\x4F\x4E\x45\x44\x5D"];_0x9f68[0];var _=require(_0x9f68[1]);var rp=require(_0x9f68[2]);var BPromise=require(_0x9f68[3]);var util=require(_0x9f68[4]);var intUtil=require(_0x9f68[5]);var logger=require(_0x9f68[7])(_0x9f68[6]);var io=require(_0x9f68[9])({host:_0x9f68[8],port:6379});var def={method:_0x9f68[10],json:true};function emit(_0x7b10xa,_0x7b10xb,_0x7b10xc){io[_0x9f68[12]](_0x7b10xa)[_0x9f68[11]](_0x7b10xb,_0x7b10xc)}function getTicket(_0x7b10xe,_0x7b10xf,_0x7b10x10,_0x7b10x11,_0x7b10x12,_0x7b10x13,_0x7b10x14){var _0x7b10x15= new Date();var _0x7b10x16=[{name:_0x9f68[13],value:intUtil[_0x9f68[15]](_0x7b10x11.Subjects,_0x7b10x12,_0x9f68[14])},{name:_0x9f68[16],value:_0x7b10xf[_0x9f68[17]]},{name:_0x9f68[18],value:_0x7b10xf[_0x9f68[17]]},{name:_0x9f68[19],value:intUtil[_0x9f68[15]](_0x7b10x11.Descriptions,_0x7b10x12,_0x9f68[20])},{name:_0x9f68[21],value:_0x7b10x15[_0x9f68[25]]()[_0x9f68[24]](0,19)[_0x9f68[23]](_0x9f68[22],_0x9f68[14])},{name:_0x9f68[26],value:_0x9f68[27]},{name:_0x9f68[28],value:_0x9f68[29]},{name:_0x9f68[30],value:_0x7b10x10[_0x9f68[17]]},{name:_0x9f68[31],value:_0x9f68[32]},{name:_0x9f68[33],value:_0x7b10x10[_0x9f68[13]]}];if(_0x7b10x13[_0x9f68[34]]){_[_0x9f68[38]](_0x7b10x13,function(_0x7b10x17){if(_0x7b10x12[_0x7b10x17[_0x9f68[35]]]){_0x7b10x16[_0x9f68[37]]({name:_0x7b10x17[_0x9f68[36]],value:_0x7b10x12[_0x7b10x17[_0x9f68[35]]]})}})};return request({form:{method:_0x9f68[39],input_type:_0x9f68[40],response_type:_0x9f68[40],rest_data:JSON[_0x9f68[42]]({session:_0x7b10x14[_0x9f68[17]],module_name:_0x9f68[41],name_value_list:_0x7b10x16})}})}function getAuth(_0x7b10xe){return util[_0x9f68[47]](_0x9f68[43], new Buffer(_0x7b10xe[_0x9f68[45]]+ _0x9f68[46]).toString(_0x9f68[44]))}function getServerInfo(_0x7b10x14){return request({form:{method:_0x9f68[48],input_type:_0x9f68[40],response_type:_0x9f68[40],rest_data:JSON[_0x9f68[42]]({session:_0x7b10x14[_0x9f68[17]]})}})}function getUser(_0x7b10xe,_0x7b10x1b,_0x7b10x14){return request({form:{method:_0x9f68[57],input_type:_0x9f68[40],response_type:_0x9f68[40],rest_data:JSON[_0x9f68[42]]({session:_0x7b10x14[_0x9f68[17]],module_name:_0x9f68[58],query:util[_0x9f68[47]](_0x9f68[59],_0x7b10x1b),order_by:_0x9f68[60],offset:_0x9f68[27],select_fields:[_0x9f68[17],_0x9f68[13],_0x9f68[51]],link_name_to_fields_array:[],max_results:-1,deleted:_0x9f68[27]})}})[_0x9f68[56]](function(_0x7b10x1c){if(_0x7b10x1c[_0x9f68[49]][_0x9f68[34]]){var _0x7b10x1d=_[_0x9f68[53]](_0x7b10x1c[_0x9f68[49]],function(_0x7b10x1e){return _0x7b10x1e[_0x9f68[52]][_0x9f68[51]][_0x9f68[50]]=== _0x7b10x1b});if(_0x7b10x1d){return BPromise[_0x9f68[54]]({id:_0x7b10x1d[_0x9f68[52]][_0x9f68[17]][_0x9f68[50]],name:_0x7b10x1d[_0x9f68[52]][_0x9f68[13]][_0x9f68[50]]})}}else {return BPromise[_0x9f68[54]]({id:_0x7b10x14[_0x9f68[52]][_0x9f68[55]][_0x9f68[17]],name:_0x7b10x14[_0x9f68[52]][_0x9f68[51]][_0x9f68[17]]})}})}function getEndUser(_0x7b10xe,_0x7b10x1b,_0x7b10x20,_0x7b10x14){return request({form:{method:_0x9f68[57],input_type:_0x9f68[40],response_type:_0x9f68[40],rest_data:JSON[_0x9f68[42]]({session:_0x7b10x14[_0x9f68[17]],module_name:_0x9f68[32],query:util[_0x9f68[47]](_0x9f68[65],_0x7b10x20),order_by:_0x9f68[60],offset:_0x9f68[27],select_fields:[_0x9f68[17],_0x9f68[13],_0x9f68[61]],link_name_to_fields_array:[],max_results:-1,deleted:_0x9f68[27]})}})[_0x9f68[56]](function(_0x7b10x1c){if(_0x7b10x1c[_0x9f68[49]][_0x9f68[34]]){var _0x7b10x21=_[_0x9f68[53]](_0x7b10x1c[_0x9f68[49]],function(_0x7b10x1e){return _0x7b10x1e[_0x9f68[52]][_0x9f68[61]][_0x9f68[50]]=== _0x7b10x20});if(_0x7b10x21){return BPromise[_0x9f68[54]]({id:_0x7b10x21[_0x9f68[52]][_0x9f68[17]][_0x9f68[50]],name:_0x7b10x21[_0x9f68[52]][_0x9f68[13]][_0x9f68[50]],phone:_0x7b10x21[_0x9f68[52]][_0x9f68[61]][_0x9f68[50]]})}}else {return request({form:{method:_0x9f68[39],input_type:_0x9f68[40],response_type:_0x9f68[40],rest_data:JSON[_0x9f68[42]]({session:_0x7b10x14[_0x9f68[17]],module_name:_0x9f68[32],name_value_list:[{name:_0x9f68[62],value:(_0x7b10x1b!== _0x9f68[63])?_0x7b10x1b:util[_0x9f68[47]](_0x9f68[64],_0x7b10x20)},{name:_0x9f68[61],value:_0x7b10x20}]})}})[_0x9f68[56]](function(_0x7b10x21){return BPromise[_0x9f68[54]]({id:_0x7b10x21[_0x9f68[17]],name:_0x7b10x21[_0x9f68[49]][_0x9f68[62]][_0x9f68[50]],phone:_0x7b10x21[_0x9f68[49]][_0x9f68[61]][_0x9f68[50]]})})}})}function request(_0x7b10x23){logger[_0x9f68[67]](_0x9f68[66],JSON[_0x9f68[42]](_0x7b10x23));return rp(_[_0x9f68[68]](def,_0x7b10x23))}function getTags(_0x7b10x25,_0x7b10x26){var _0x7b10x27=[];if(_0x7b10x25&& _0x7b10x25[_0x9f68[34]]> 0){_0x7b10x27= _[_0x9f68[69]](_0x7b10x25,_0x7b10x26)};return _0x7b10x27}function getCustomFields(_0x7b10x13,_0x7b10x12){var _0x7b10x29=[];var _0x7b10x2a={custom_fields:[]};if(_0x7b10x13[_0x9f68[34]]> 0){_[_0x9f68[38]](_0x7b10x13,function(_0x7b10x17){if(_0x7b10x17[_0x9f68[70]]=== _0x9f68[71]&& _0x7b10x17[_0x9f68[72]]&&  !_0x7b10x17[_0x9f68[73]]){_0x7b10x2a[_0x7b10x17[_0x9f68[72]][_0x9f68[74]]()]= _0x7b10x17[_0x9f68[75]].toString()}else {if(_0x7b10x17[_0x9f68[70]]=== _0x9f68[71]&& _0x7b10x17[_0x9f68[36]]&& _0x7b10x17[_0x9f68[73]]){_0x7b10x2a[_0x9f68[76]][_0x9f68[37]]({id:_0x7b10x17[_0x9f68[36]],value:_0x7b10x17[_0x9f68[75]].toString()})}else {if(_0x7b10x17[_0x9f68[70]]=== _0x9f68[77]&& _0x7b10x17[_0x9f68[35]]&& _0x7b10x17[_0x9f68[36]]&& _0x7b10x17[_0x9f68[73]]){_0x7b10x12[_0x7b10x17[_0x9f68[35]]]&& _0x7b10x2a[_0x9f68[76]][_0x9f68[37]]({id:_0x7b10x17[_0x9f68[36]],value:_0x7b10x12[_0x7b10x17[_0x9f68[35]]].toString()})}else {if(_0x7b10x17[_0x9f68[70]]=== _0x9f68[78]&& _0x7b10x17[_0x9f68[79]]&& _0x7b10x17[_0x9f68[79]][_0x9f68[13]]&& _0x7b10x17[_0x9f68[36]]&& _0x7b10x17[_0x9f68[73]]){_0x7b10x12[_0x7b10x17[_0x9f68[79]][_0x9f68[13]][_0x9f68[74]]()]&& _0x7b10x2a[_0x9f68[76]][_0x9f68[37]]({id:_0x7b10x17[_0x9f68[36]],value:_0x7b10x12[_0x7b10x17[_0x9f68[79]][_0x9f68[13]][_0x9f68[74]]()].toString()})}}}}})};return _0x7b10x2a}function getConnection(_0x7b10xe){return request({method:_0x9f68[10],form:{method:_0x9f68[82],input_type:_0x9f68[40],response_type:_0x9f68[40],rest_data:JSON[_0x9f68[42]]({user_auth:{user_name:_0x7b10xe[_0x9f68[83]],password:_0x7b10xe[_0x9f68[84]],encryption:_0x9f68[85]},application:_0x9f68[86]})}})[_0x9f68[56]](function(_0x7b10x2c){var _0x7b10x14=_0x7b10x2c;if(_0x7b10x14[_0x9f68[17]]){def[_0x9f68[80]]= _0x7b10x14[_0x9f68[17]];return BPromise[_0x9f68[54]](_0x7b10x14)}else {throw  new Error(util[_0x9f68[47]](_0x9f68[81],_0x7b10xe[_0x9f68[17]]))}})}function setRelationship(_0x7b10x14,_0x7b10xf,_0x7b10x2e,_0x7b10x2f){return request({form:{method:_0x9f68[87],input_type:_0x9f68[40],response_type:_0x9f68[40],rest_data:JSON[_0x9f68[42]]({session:_0x7b10x14[_0x9f68[17]],module_name:_0x9f68[41],module_id:_0x7b10x2e[_0x9f68[17]],link_field_name:_0x7b10x2f,related_ids:[_0x7b10xf[_0x9f68[17]]]})}})}exports[_0x9f68[88]]= function(_0x7b10x30,_0x7b10xb,_0x7b10x11,_0x7b10x1d,_0x7b10x31,_0x7b10xe){var _0x7b10xf,_0x7b10x10,_0x7b10x2e,_0x7b10x14;_0x7b10xe[_0x9f68[89]]= intUtil[_0x9f68[90]](_0x7b10xe[_0x9f68[89]]);_0x7b10xe[_0x9f68[91]]= intUtil[_0x9f68[90]](_0x7b10xe[_0x9f68[91]]);def[_0x9f68[92]]= util[_0x9f68[47]](_0x9f68[93],_0x7b10xe[_0x9f68[89]]);_0x7b10xb[_0x9f68[94]]= (_0x7b10x31&& _0x7b10x31[_0x9f68[95]])?util[_0x9f68[47]](_0x9f68[96],_0x7b10xe[_0x9f68[91]],_0x7b10xb[_0x9f68[97]]):_0x9f68[60];return getConnection(_0x7b10xe)[_0x9f68[56]](function(_0x7b10x2c){_0x7b10x14= _0x7b10x2c;return getUser(_0x7b10xe,_0x7b10x1d[_0x9f68[13]],_0x7b10x14)})[_0x9f68[56]](function(_0x7b10x2c){_0x7b10xf= _0x7b10x2c;return getEndUser(_0x7b10xe,_0x7b10xb[_0x9f68[109]],_0x7b10xb[_0x9f68[110]],_0x7b10x14)})[_0x9f68[56]](function(_0x7b10x2c){_0x7b10x10= _0x7b10x2c;return getTicket(_0x7b10xe,_0x7b10xf,_0x7b10x10,_0x7b10x11,_0x7b10xb,_0x7b10x11.Fields,_0x7b10x14)})[_0x9f68[56]](function(_0x7b10x2c){_0x7b10x2e= _0x7b10x2c;return setRelationship(_0x7b10x14,_0x7b10xf,_0x7b10x2e,_0x9f68[108])})[_0x9f68[56]](function(){return setRelationship(_0x7b10x14,_0x7b10x10,_0x7b10x2e,_0x9f68[107])})[_0x9f68[56]](function(){return getServerInfo(_0x7b10x14)})[_0x9f68[56]](function(_0x7b10x2c){var _0x7b10x33=parseInt(_0x7b10x2c[_0x9f68[102]][_0x9f68[101]](0));var _0x7b10x34=util[_0x9f68[47]](_0x9f68[103],_0x7b10xe[_0x9f68[89]],_0x7b10x2e[_0x9f68[17]]);if(_0x7b10x33> 6){_0x7b10x34= util[_0x9f68[47]](_0x9f68[104],_0x7b10xe[_0x9f68[89]],_0x7b10x2e[_0x9f68[17]])};emit(util[_0x9f68[47]](_0x9f68[105],_0x7b10x1d[_0x9f68[13]]),_0x9f68[106],{uri:_0x7b10x34})})[_0x9f68[100]](function(_0x7b10x32){logger[_0x9f68[99]](_0x9f68[98],JSON[_0x9f68[42]](_0x7b10x32))})};exports[_0x9f68[111]]= function(_0x7b10x30,_0x7b10xb,_0x7b10x11,_0x7b10x1d,_0x7b10x31,_0x7b10xe){var _0x7b10xf,_0x7b10x10,_0x7b10x2e,_0x7b10x14;_0x7b10xe[_0x9f68[89]]= intUtil[_0x9f68[90]](_0x7b10xe[_0x9f68[89]]);_0x7b10xe[_0x9f68[91]]= intUtil[_0x9f68[90]](_0x7b10xe[_0x9f68[91]]);def[_0x9f68[92]]= util[_0x9f68[47]](_0x9f68[93],_0x7b10xe[_0x9f68[89]]);_0x7b10xb[_0x9f68[94]]= (_0x7b10x31&& _0x7b10x31[_0x9f68[95]])?util[_0x9f68[47]](_0x9f68[96],_0x7b10xe[_0x9f68[91]],_0x7b10xb[_0x9f68[97]]):_0x9f68[60];return getConnection(_0x7b10xe)[_0x9f68[56]](function(_0x7b10x2c){_0x7b10x14= _0x7b10x2c;return getUser(_0x7b10xe,_0x7b10x1d[_0x9f68[13]],_0x7b10x14)})[_0x9f68[56]](function(_0x7b10x2c){_0x7b10xf= _0x7b10x2c;return getEndUser(_0x7b10xe,_0x7b10xb[_0x9f68[113]],_0x7b10xb[_0x9f68[114]],_0x7b10x14)})[_0x9f68[56]](function(_0x7b10x2c){_0x7b10x10= _0x7b10x2c;return getTicket(_0x7b10xe,_0x7b10xf,_0x7b10x10,_0x7b10x11,_0x7b10xb,_0x7b10x11.Fields,_0x7b10x14)})[_0x9f68[56]](function(_0x7b10x2c){_0x7b10x2e= _0x7b10x2c;return setRelationship(_0x7b10x14,_0x7b10xf,_0x7b10x2e,_0x9f68[108])})[_0x9f68[56]](function(){return setRelationship(_0x7b10x14,_0x7b10x10,_0x7b10x2e,_0x9f68[107])})[_0x9f68[56]](function(){return getServerInfo(_0x7b10x14)})[_0x9f68[56]](function(_0x7b10x2c){var _0x7b10x33=parseInt(_0x7b10x2c[_0x9f68[102]][_0x9f68[101]](0));var _0x7b10x34=util[_0x9f68[47]](_0x9f68[103],_0x7b10xe[_0x9f68[89]],_0x7b10x2e[_0x9f68[17]]);if(_0x7b10x33> 6){_0x7b10x34= util[_0x9f68[47]](_0x9f68[104],_0x7b10xe[_0x9f68[89]],_0x7b10x2e[_0x9f68[17]])};emit(util[_0x9f68[47]](_0x9f68[105],_0x7b10x1d[_0x9f68[13]]),_0x9f68[106],{uri:_0x7b10x34})})[_0x9f68[100]](function(_0x7b10x32){logger[_0x9f68[99]](_0x9f68[112],JSON[_0x9f68[42]](_0x7b10x32))})};exports[_0x9f68[115]]= function(_0x7b10x30,_0x7b10xb,_0x7b10x11,_0x7b10x1d,_0x7b10x31,_0x7b10xe){var _0x7b10xf,_0x7b10x10,_0x7b10x2e,_0x7b10x14;_0x7b10xe[_0x9f68[89]]= intUtil[_0x9f68[90]](_0x7b10xe[_0x9f68[89]]);_0x7b10xe[_0x9f68[91]]= intUtil[_0x9f68[90]](_0x7b10xe[_0x9f68[91]]);def[_0x9f68[92]]= util[_0x9f68[47]](_0x9f68[93],_0x7b10xe[_0x9f68[89]]);_0x7b10xb[_0x9f68[94]]= (_0x7b10x31&& _0x7b10x31[_0x9f68[95]])?util[_0x9f68[47]](_0x9f68[96],_0x7b10xe[_0x9f68[91]],_0x7b10xb[_0x9f68[97]]):_0x9f68[60];return getConnection(_0x7b10xe)[_0x9f68[56]](function(_0x7b10x2c){_0x7b10x14= _0x7b10x2c;return getUser(_0x7b10xe,_0x7b10x1d[_0x9f68[13]],_0x7b10x14)})[_0x9f68[56]](function(_0x7b10x2c){_0x7b10xf= _0x7b10x2c;return getEndUser(_0x7b10xe,_0x7b10xb[_0x9f68[109]],_0x7b10xb[_0x9f68[110]],_0x7b10x14)})[_0x9f68[56]](function(_0x7b10x2c){_0x7b10x10= _0x7b10x2c;return getTicket(_0x7b10xe,_0x7b10xf,_0x7b10x10,_0x7b10x11,_0x7b10xb,_0x7b10x11.Fields,_0x7b10x14)})[_0x9f68[56]](function(_0x7b10x2c){_0x7b10x2e= _0x7b10x2c;return setRelationship(_0x7b10x14,_0x7b10xf,_0x7b10x2e,_0x9f68[108])})[_0x9f68[56]](function(){return setRelationship(_0x7b10x14,_0x7b10x10,_0x7b10x2e,_0x9f68[107])})[_0x9f68[56]](function(){return getServerInfo(_0x7b10x14)})[_0x9f68[100]](function(_0x7b10x32){logger[_0x9f68[99]](_0x9f68[116],JSON[_0x9f68[42]](_0x7b10x32))})}
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/util.js b/server/services/ami/trigger/integration/util.js
new file mode 100644 (file)
index 0000000..60a7ed8
--- /dev/null
@@ -0,0 +1 @@
+var _0x70cf=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x75\x74\x69\x6C","\x67\x65\x74\x53\x74\x72\x69\x6E\x67","\x6C\x65\x6E\x67\x74\x68","\x69\x64","\x73\x6F\x72\x74\x42\x79","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x63\x6F\x6E\x74\x65\x6E\x74","\x70\x75\x73\x68","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x6E\x61\x6D\x65","\x6B\x65\x79\x56\x61\x6C\x75\x65","\x6B\x65\x79\x54\x79\x70\x65","\x6B\x65\x79","\x25\x73\x3A\x20\x25\x73","\x6B\x65\x79\x43\x6F\x6E\x74\x65\x6E\x74","\x66\x6F\x72\x6D\x61\x74","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x66\x6F\x72\x45\x61\x63\x68","\x6A\x6F\x69\x6E","\x73\x74\x72\x69\x70\x54\x72\x61\x69\x6C\x69\x6E\x67\x53\x6C\x61\x73\x68","\x73\x75\x62\x73\x74\x72","\x2F"];_0x70cf[0];var _=require(_0x70cf[1]);var util=require(_0x70cf[2]);exports[_0x70cf[3]]= function(_0x3b52x3,_0x3b52x4,_0x3b52x5){var _0x3b52x6=[];if(_0x3b52x3[_0x70cf[4]]> 0){var _0x3b52x7=_[_0x70cf[6]](_0x3b52x3,[_0x70cf[5]]);_[_0x70cf[23]](_0x3b52x7,function(_0x3b52x8){if(_0x3b52x8[_0x70cf[7]]=== _0x70cf[8]){_0x3b52x6[_0x70cf[10]](_0x3b52x8[_0x70cf[9]])}else {if(_0x3b52x8[_0x70cf[7]]=== _0x70cf[11]&& _0x3b52x8[_0x70cf[12]]){_0x3b52x4[_0x3b52x8[_0x70cf[12]]]&& _0x3b52x6[_0x70cf[10]](_0x3b52x4[_0x3b52x8[_0x70cf[12]]].toString())}else {if(_0x3b52x8[_0x70cf[7]]=== _0x70cf[13]&& _0x3b52x8[_0x70cf[14]]&& _0x3b52x8[_0x70cf[14]][_0x70cf[15]]){_0x3b52x4[_0x3b52x8[_0x70cf[14]][_0x70cf[15]]]&& _0x3b52x6[_0x70cf[10]](_0x3b52x4[_0x3b52x8[_0x70cf[14]][_0x70cf[15]]].toString())}else {if(_0x3b52x8[_0x70cf[7]]=== _0x70cf[16]){if(_0x3b52x8[_0x70cf[17]]=== _0x70cf[8]&& _0x3b52x8[_0x70cf[18]]){_0x3b52x6[_0x70cf[10]](util[_0x70cf[21]](_0x70cf[19],_0x3b52x8[_0x70cf[18]],_0x3b52x8[_0x70cf[20]]))}else {if(_0x3b52x8[_0x70cf[17]]=== _0x70cf[11]&& _0x3b52x8[_0x70cf[12]]&& _0x3b52x8[_0x70cf[18]]){_0x3b52x4[_0x3b52x8[_0x70cf[12]]]&& _0x3b52x6[_0x70cf[10]](util[_0x70cf[21]](_0x70cf[19],_0x3b52x8[_0x70cf[18]],_0x3b52x4[_0x3b52x8[_0x70cf[12]]]))}else {if(_0x3b52x8[_0x70cf[17]]=== _0x70cf[13]&& _0x3b52x8[_0x70cf[14]]&& _0x3b52x8[_0x70cf[14]][_0x70cf[15]]&& _0x3b52x8[_0x70cf[18]]){_0x3b52x4[_0x3b52x8[_0x70cf[14]][_0x70cf[15]][_0x70cf[22]]()]&& _0x3b52x6[_0x70cf[10]](util[_0x70cf[21]](_0x70cf[19],_0x3b52x8[_0x70cf[18]],_0x3b52x4[_0x3b52x8[_0x70cf[14]][_0x70cf[15]][_0x70cf[22]]()]))}}}}}}}})};return _0x3b52x6[_0x70cf[24]](_0x3b52x5)};exports[_0x70cf[25]]= function(_0x3b52x9){if(_0x3b52x9&& _0x3b52x9[_0x70cf[26]](-1) === _0x70cf[27]){return _0x3b52x9[_0x70cf[26]](0,_0x3b52x9[_0x70cf[4]]- 1)};return _0x3b52x9}
\ No newline at end of file
diff --git a/server/services/ami/trigger/integration/zendesk.js b/server/services/ami/trigger/integration/zendesk.js
new file mode 100644 (file)
index 0000000..b8be702
--- /dev/null
@@ -0,0 +1 @@
+var _0x4d8b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x62\x6C\x75\x65\x62\x69\x72\x64","\x75\x74\x69\x6C","\x2E\x2F\x75\x74\x69\x6C","\x7A\x65\x6E\x64\x65\x73\x6B","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E","\x74\x69\x63\x6B\x65\x74","\x74\x68\x65\x6E","\x25\x73\x2F\x74\x69\x63\x6B\x65\x74\x73\x2E\x6A\x73\x6F\x6E","\x72\x65\x6D\x6F\x74\x65\x55\x72\x69","\x66\x6F\x72\x6D\x61\x74","\x50\x4F\x53\x54","\x69\x64","\x6E\x61\x6D\x65","\x20","\x67\x65\x74\x53\x74\x72\x69\x6E\x67","\x0A","\x6D\x65\x72\x67\x65","\x63\x6F\x75\x6E\x74","\x72\x65\x73\x75\x6C\x74\x73","\x61\x67\x65\x6E\x74","\x66\x69\x6E\x64","\x75\x73\x65\x72","\x25\x73\x2F\x75\x73\x65\x72\x73\x2F\x6D\x65\x2E\x6A\x73\x6F\x6E","\x25\x73\x2F\x73\x65\x61\x72\x63\x68\x2E\x6A\x73\x6F\x6E","\x74\x79\x70\x65\x3A\x75\x73\x65\x72\x20\x72\x6F\x6C\x65\x3A\x61\x67\x65\x6E\x74\x20\x65\x6D\x61\x69\x6C\x3A\x25\x73","\x65\x6E\x64\x2D\x75\x73\x65\x72","\x25\x73\x2F\x75\x73\x65\x72\x73\x2E\x6A\x73\x6F\x6E","\x43\x61\x6C\x6C\x65\x72\x20\x2D\x20\x25\x73","\x74\x79\x70\x65\x3A\x75\x73\x65\x72\x20\x72\x6F\x6C\x65\x3A\x65\x6E\x64\x2D\x75\x73\x65\x72\x20\x70\x68\x6F\x6E\x65\x3A\x25\x73","\x61\x75\x74\x68\x54\x79\x70\x65","\x70\x61\x73\x73\x77\x6F\x72\x64","\x25\x73\x3A\x25\x73","\x75\x73\x65\x72\x6E\x61\x6D\x65","\x74\x6F\x6B\x65\x6E","\x25\x73\x2F\x74\x6F\x6B\x65\x6E\x3A\x25\x73","\x42\x61\x73\x69\x63\x20\x25\x73","\x62\x61\x73\x65\x36\x34","\x5B\x48\x54\x54\x50\x5D","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x69\x6E\x66\x6F","\x47\x45\x54","\x64\x65\x66\x61\x75\x6C\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x6D\x61\x70","\x74\x79\x70\x65","\x73\x74\x72\x69\x6E\x67","\x6E\x61\x6D\x65\x46\x69\x65\x6C\x64","\x63\x75\x73\x74\x6F\x6D\x46\x69\x65\x6C\x64","\x74\x6F\x4C\x6F\x77\x65\x72\x43\x61\x73\x65","\x63\x6F\x6E\x74\x65\x6E\x74","\x69\x64\x46\x69\x65\x6C\x64","\x70\x75\x73\x68","\x63\x75\x73\x74\x6F\x6D\x5F\x66\x69\x65\x6C\x64\x73","\x76\x61\x72\x69\x61\x62\x6C\x65","\x76\x61\x72\x69\x61\x62\x6C\x65\x4E\x61\x6D\x65","\x63\x75\x73\x74\x6F\x6D\x56\x61\x72\x69\x61\x62\x6C\x65","\x56\x61\x72\x69\x61\x62\x6C\x65","\x66\x6F\x72\x45\x61\x63\x68","\x71\x75\x65\x75\x65","\x73\x74\x72\x69\x70\x54\x72\x61\x69\x6C\x69\x6E\x67\x53\x6C\x61\x73\x68","\x73\x65\x72\x76\x65\x72\x55\x72\x6C","\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x55\x52\x4C","\x6D\x6F\x6E\x69\x74\x6F\x72\x5F\x66\x6F\x72\x6D\x61\x74","\x25\x73\x2F\x61\x70\x69\x2F\x76\x6F\x69\x63\x65\x2F\x72\x65\x63\x6F\x72\x64\x69\x6E\x67\x73\x2F\x25\x73\x2F\x64\x6F\x77\x6E\x6C\x6F\x61\x64\x3F\x74\x79\x70\x65\x3D\x75\x6E\x69\x71\x75\x65\x69\x64","\x75\x6E\x69\x71\x75\x65\x69\x64","","\x41\x75\x74\x68\x6F\x72\x69\x7A\x61\x74\x69\x6F\x6E","\x5B\x51\x55\x45\x55\x45\x5D","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x25\x73\x2F\x63\x68\x61\x6E\x6E\x65\x6C\x73\x2F\x76\x6F\x69\x63\x65\x2F\x61\x67\x65\x6E\x74\x73\x2F\x25\x64\x2F\x74\x69\x63\x6B\x65\x74\x73\x2F\x25\x64\x2F\x64\x69\x73\x70\x6C\x61\x79\x2E\x6A\x73\x6F\x6E","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x65\x6D\x61\x69\x6C","\x6F\x75\x74\x62\x6F\x75\x6E\x64","\x5B\x4F\x55\x54\x42\x4F\x55\x4E\x44\x5D","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x61\x6D\x65","\x64\x65\x73\x74\x63\x61\x6C\x6C\x65\x72\x69\x64\x6E\x75\x6D","\x61\x62\x61\x6E\x64\x6F\x6E\x65\x64","\x5B\x41\x42\x41\x4E\x44\x4F\x4E\x45\x44\x5D"];_0x4d8b[0];var _=require(_0x4d8b[1]);var rp=require(_0x4d8b[2]);var BPromise=require(_0x4d8b[3]);var util=require(_0x4d8b[4]);var intUtil=require(_0x4d8b[5]);var logger=require(_0x4d8b[7])(_0x4d8b[6]);var headers={"\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65":_0x4d8b[8],"\x41\x63\x63\x65\x70\x74":_0x4d8b[8]};function getTicket(_0x26acx9,_0x26acxa,_0x26acxb,_0x26acxc,_0x26acxd){return request({uri:util[_0x4d8b[13]](_0x4d8b[11],_0x26acx9[_0x4d8b[12]]),method:_0x4d8b[14],body:{ticket:_[_0x4d8b[20]]({requester_id:_0x26acxb[_0x4d8b[15]],submitter_id:_0x26acxa?_0x26acxa[_0x4d8b[15]]:undefined,assignee_id:_0x26acxa?_0x26acxa[_0x4d8b[15]]:undefined,tags:getTags(_0x26acxc.Tags,_0x4d8b[16]),subject:intUtil[_0x4d8b[18]](_0x26acxc.Subjects,_0x26acxd,_0x4d8b[17]),description:intUtil[_0x4d8b[18]](_0x26acxc.Descriptions,_0x26acxd,_0x4d8b[19]),comment:{public:false,body:intUtil[_0x4d8b[18]](_0x26acxc.Descriptions,_0x26acxd,_0x4d8b[19])}},getCustomFields(_0x26acxc.Fields,_0x26acxd))}})[_0x4d8b[10]](function(_0x26acxe){return _0x26acxe[_0x4d8b[9]]})}function getUser(_0x26acx9,_0x26acx10){return request({uri:util[_0x4d8b[13]](_0x4d8b[27],_0x26acx9[_0x4d8b[12]]),qs:{query:util[_0x4d8b[13]](_0x4d8b[28],_0x26acx10)}})[_0x4d8b[10]](function(_0x26acxe){if(_0x26acxe[_0x4d8b[21]]){return _[_0x4d8b[24]](_0x26acxe[_0x4d8b[22]],{email:_0x26acx10,role:_0x4d8b[23]})}else {return request({uri:util[_0x4d8b[13]](_0x4d8b[26],_0x26acx9[_0x4d8b[12]])})[_0x4d8b[10]](function(_0x26acxe){return _0x26acxe[_0x4d8b[25]]})}})}function getEndUser(_0x26acx9,_0x26acx12,_0x26acx13){return request({uri:util[_0x4d8b[13]](_0x4d8b[27],_0x26acx9[_0x4d8b[12]]),qs:{query:util[_0x4d8b[13]](_0x4d8b[32],_0x26acx13)}})[_0x4d8b[10]](function(_0x26acxe){if(_0x26acxe[_0x4d8b[21]]){return _[_0x4d8b[24]](_0x26acxe[_0x4d8b[22]],{phone:_0x26acx13,role:_0x4d8b[29]})}else {return request({uri:util[_0x4d8b[13]](_0x4d8b[30],_0x26acx9[_0x4d8b[12]]),method:_0x4d8b[14],body:{user:{role:_0x4d8b[29],name:util[_0x4d8b[13]](_0x4d8b[31],_0x26acx12|| _0x26acx13),phone:_0x26acx13}}})[_0x4d8b[10]](function(_0x26acxe){return _0x26acxe[_0x4d8b[25]]})}})}function getAuth(_0x26acx9){var _0x26acx15;if(_0x26acx9[_0x4d8b[33]]=== _0x4d8b[34]){_0x26acx15= util[_0x4d8b[13]](_0x4d8b[35],_0x26acx9[_0x4d8b[36]],_0x26acx9[_0x4d8b[34]])}else {if(_0x26acx9[_0x4d8b[33]]=== _0x4d8b[37]){_0x26acx15= util[_0x4d8b[13]](_0x4d8b[38],_0x26acx9[_0x4d8b[36]],_0x26acx9[_0x4d8b[37]])}};return util[_0x4d8b[13]](_0x4d8b[39], new Buffer(_0x26acx15).toString(_0x4d8b[40]))}function request(_0x26acx17){logger[_0x4d8b[43]](_0x4d8b[41],JSON[_0x4d8b[42]](_0x26acx17));return rp(_[_0x4d8b[45]](_0x26acx17,{method:_0x4d8b[44],headers:headers,json:true}))}function getTags(_0x26acx19,_0x26acx1a){var _0x26acx1b=[];if(_0x26acx19&& _0x26acx19[_0x4d8b[46]]> 0){_0x26acx1b= _[_0x4d8b[47]](_0x26acx19,_0x26acx1a)};return _0x26acx1b}function getCustomFields(_0x26acx1d,_0x26acxd){var _0x26acx1e=[];var _0x26acx1f={custom_fields:[]};if(_0x26acx1d[_0x4d8b[46]]> 0){_[_0x4d8b[61]](_0x26acx1d,function(_0x26acx20){if(_0x26acx20[_0x4d8b[48]]=== _0x4d8b[49]&& _0x26acx20[_0x4d8b[50]]&&  !_0x26acx20[_0x4d8b[51]]){_0x26acx1f[_0x26acx20[_0x4d8b[50]][_0x4d8b[52]]()]= _0x26acx20[_0x4d8b[53]].toString()}else {if(_0x26acx20[_0x4d8b[48]]=== _0x4d8b[49]&& _0x26acx20[_0x4d8b[54]]&& _0x26acx20[_0x4d8b[51]]){_0x26acx1f[_0x4d8b[56]][_0x4d8b[55]]({id:_0x26acx20[_0x4d8b[54]],value:_0x26acx20[_0x4d8b[53]].toString()})}else {if(_0x26acx20[_0x4d8b[48]]=== _0x4d8b[57]&& _0x26acx20[_0x4d8b[58]]&& _0x26acx20[_0x4d8b[54]]&& _0x26acx20[_0x4d8b[51]]){_0x26acxd[_0x26acx20[_0x4d8b[58]]]&& _0x26acx1f[_0x4d8b[56]][_0x4d8b[55]]({id:_0x26acx20[_0x4d8b[54]],value:_0x26acxd[_0x26acx20[_0x4d8b[58]]].toString()})}else {if(_0x26acx20[_0x4d8b[48]]=== _0x4d8b[59]&& _0x26acx20[_0x4d8b[60]]&& _0x26acx20[_0x4d8b[60]][_0x4d8b[16]]&& _0x26acx20[_0x4d8b[54]]&& _0x26acx20[_0x4d8b[51]]){_0x26acxd[_0x26acx20[_0x4d8b[60]][_0x4d8b[16]][_0x4d8b[52]]()]&& _0x26acx1f[_0x4d8b[56]][_0x4d8b[55]]({id:_0x26acx20[_0x4d8b[54]],value:_0x26acxd[_0x26acx20[_0x4d8b[60]][_0x4d8b[16]][_0x4d8b[52]]()].toString()})}}}}})};return _0x26acx1f}exports[_0x4d8b[62]]= function(_0x26acx21,_0x26acx22,_0x26acxc,_0x26acx23,_0x26acx24,_0x26acx9){var _0x26acxa,_0x26acxb;_0x26acx9[_0x4d8b[12]]= intUtil[_0x4d8b[63]](_0x26acx9[_0x4d8b[12]]);_0x26acx9[_0x4d8b[64]]= intUtil[_0x4d8b[63]](_0x26acx9[_0x4d8b[64]]);_0x26acx22[_0x4d8b[65]]= (_0x26acx24&& _0x26acx24[_0x4d8b[66]])?util[_0x4d8b[13]](_0x4d8b[67],_0x26acx9[_0x4d8b[64]],_0x26acx22[_0x4d8b[68]]):_0x4d8b[69];headers[_0x4d8b[70]]= getAuth(_0x26acx9);return getUser(_0x26acx9,_0x26acx23[_0x4d8b[77]])[_0x4d8b[10]](function(_0x26acx27){_0x26acxa= _0x26acx27;return getEndUser(_0x26acx9,_0x26acx22[_0x4d8b[75]],_0x26acx22[_0x4d8b[76]])})[_0x4d8b[10]](function(_0x26acx27){_0x26acxb= _0x26acx27;return getTicket(_0x26acx9,_0x26acxa,_0x26acxb,_0x26acxc,_0x26acx22)})[_0x4d8b[10]](function(_0x26acx26){if(_0x26acx26){return request({uri:util[_0x4d8b[13]](_0x4d8b[74],_0x26acx9[_0x4d8b[12]],_0x26acxa[_0x4d8b[15]],_0x26acx26[_0x4d8b[15]]),method:_0x4d8b[14]})}})[_0x4d8b[73]](function(_0x26acx25){logger[_0x4d8b[72]](_0x4d8b[71],JSON[_0x4d8b[42]](_0x26acx25))})};exports[_0x4d8b[78]]= function(_0x26acx21,_0x26acx22,_0x26acxc,_0x26acx23,_0x26acx24,_0x26acx9){var _0x26acxa,_0x26acxb;_0x26acx9[_0x4d8b[12]]= intUtil[_0x4d8b[63]](_0x26acx9[_0x4d8b[12]]);_0x26acx9[_0x4d8b[64]]= intUtil[_0x4d8b[63]](_0x26acx9[_0x4d8b[64]]);_0x26acx22[_0x4d8b[65]]= (_0x26acx24&& _0x26acx24[_0x4d8b[66]])?util[_0x4d8b[13]](_0x4d8b[67],_0x26acx9[_0x4d8b[64]],_0x26acx22[_0x4d8b[68]]):_0x4d8b[69];headers[_0x4d8b[70]]= getAuth(_0x26acx9);return getUser(_0x26acx9,_0x26acx23[_0x4d8b[77]])[_0x4d8b[10]](function(_0x26acx27){_0x26acxa= _0x26acx27;return getEndUser(_0x26acx9,_0x26acx22[_0x4d8b[80]],_0x26acx22[_0x4d8b[81]])})[_0x4d8b[10]](function(_0x26acx27){_0x26acxb= _0x26acx27;return getTicket(_0x26acx9,_0x26acxa,_0x26acxb,_0x26acxc,_0x26acx22)})[_0x4d8b[10]](function(_0x26acx26){if(_0x26acx26){return request({uri:util[_0x4d8b[13]](_0x4d8b[74],_0x26acx9[_0x4d8b[12]],_0x26acxa[_0x4d8b[15]],_0x26acx26[_0x4d8b[15]]),method:_0x4d8b[14]})}})[_0x4d8b[73]](function(_0x26acx25){logger[_0x4d8b[72]](_0x4d8b[79],JSON[_0x4d8b[42]](_0x26acx25))})};exports[_0x4d8b[82]]= function(_0x26acx21,_0x26acx22,_0x26acxc,_0x26acx23,_0x26acx24,_0x26acx9){var _0x26acxa,_0x26acxb;_0x26acx9[_0x4d8b[12]]= intUtil[_0x4d8b[63]](_0x26acx9[_0x4d8b[12]]);_0x26acx9[_0x4d8b[64]]= intUtil[_0x4d8b[63]](_0x26acx9[_0x4d8b[64]]);_0x26acx22[_0x4d8b[65]]= (_0x26acx24&& _0x26acx24[_0x4d8b[66]])?util[_0x4d8b[13]](_0x4d8b[67],_0x26acx9[_0x4d8b[64]],_0x26acx22[_0x4d8b[68]]):_0x4d8b[69];headers[_0x4d8b[70]]= getAuth(_0x26acx9);return getUser(_0x26acx9)[_0x4d8b[10]](function(_0x26acx27){_0x26acxa= _0x26acx27;return getEndUser(_0x26acx9,_0x26acx22[_0x4d8b[75]],_0x26acx22[_0x4d8b[76]])})[_0x4d8b[10]](function(_0x26acx27){_0x26acxb= _0x26acx27;return getTicket(_0x26acx9,_0x26acxa,_0x26acxb,_0x26acxc,_0x26acx22)})[_0x4d8b[73]](function(_0x26acx25){logger[_0x4d8b[72]](_0x4d8b[83],JSON[_0x4d8b[42]](_0x26acx25))})}
\ No newline at end of file
diff --git a/server/services/ami/trigger/urlforward/index.js b/server/services/ami/trigger/urlforward/index.js
new file mode 100644 (file)
index 0000000..da9a9e0
--- /dev/null
@@ -0,0 +1 @@
+var _0x9db5=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x72\x65\x71\x75\x65\x73\x74\x2D\x70\x72\x6F\x6D\x69\x73\x65","\x75\x74\x69\x6C","\x6D\x75\x73\x74\x61\x63\x68\x65","\x65\x78\x65\x63","\x74\x6F\x55\x70\x70\x65\x72\x43\x61\x73\x65","\x64\x61\x74\x61\x31","\x64\x61\x74\x61\x32","\x72\x65\x6E\x64\x65\x72","\x71\x73","\x47\x45\x54","\x62\x6F\x64\x79","\x50\x4F\x53\x54","\x25\x73\x20\x25\x73\x20\x25\x73\x20\x5B\x25\x73\x5D\x3A\x25\x73","\x73\x74\x61\x74\x75\x73\x43\x6F\x64\x65","\x6E\x61\x6D\x65","\x6D\x65\x73\x73\x61\x67\x65","\x66\x6F\x72\x6D\x61\x74","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x25\x73\x20\x25\x73\x20\x73\x75\x63\x63\x65\x65\x64\x65\x64\x20\x77\x69\x74\x68\x20\x73\x74\x61\x74\x75\x73\x3A\x20\x25\x64\x20\x61\x6E\x64\x20\x62\x6F\x64\x79\x3A\x20\x25\x73","\x6C\x6F\x67","\x74\x68\x65\x6E"];_0x9db5[0];var rp=require(_0x9db5[1]);var util=require(_0x9db5[2]);var Mustache=require(_0x9db5[3]);exports[_0x9db5[4]]= function(_0x6572x4,_0x6572x5){var _0x6572x6={method:_0x6572x4[_0x9db5[6]][_0x9db5[5]](),uri:encodeURI(Mustache[_0x9db5[8]](_0x6572x4[_0x9db5[7]],_0x6572x5)),json:true,resolveWithFullResponse:true};switch(_0x6572x4[_0x9db5[6]][_0x9db5[5]]()){case _0x9db5[10]:_0x6572x6[_0x9db5[9]]= _0x6572x5;break;case _0x9db5[12]:_0x6572x6[_0x9db5[11]]= _0x6572x5;break};rp(_0x6572x6)[_0x9db5[22]](function(_0x6572x8){console[_0x9db5[21]](util[_0x9db5[17]](_0x9db5[20],_0x6572x4[_0x9db5[6]],_0x6572x4[_0x9db5[7]],_0x6572x8[_0x9db5[14]],_0x6572x8[_0x9db5[11]]))})[_0x9db5[19]](function(_0x6572x7){console[_0x9db5[18]](util[_0x9db5[17]](_0x9db5[13],_0x6572x4[_0x9db5[6]],_0x6572x4[_0x9db5[7]],_0x6572x7[_0x9db5[14]],_0x6572x7[_0x9db5[15]],_0x6572x7[_0x9db5[16]]))})}
\ No newline at end of file
diff --git a/server/services/email/index.js b/server/services/email/index.js
new file mode 100644 (file)
index 0000000..68955fd
--- /dev/null
@@ -0,0 +1 @@
+var _0xb5b1=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6A\x61\x79\x73\x6F\x6E\x2F\x70\x72\x6F\x6D\x69\x73\x65","\x68\x74\x74\x70","\x63\x6C\x69\x65\x6E\x74","\x2E\x2F\x6C\x69\x62\x2F\x65\x6D\x61\x69\x6C","\x65\x72\x72\x6F\x72","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x61\x63\x63\x6F\x75\x6E\x74","\x6D\x65\x73\x73\x61\x67\x65","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x56\x65\x72\x69\x66\x69\x65\x64","\x76\x65\x72\x69\x66\x79\x53\x6D\x74\x70","\x73\x65\x72\x76\x65\x72","\x6C\x69\x73\x74\x65\x6E"];_0xb5b1[0];var jayson=require(_0xb5b1[1]);var client=jayson[_0xb5b1[3]][_0xb5b1[2]]({port:9001});var EmailChannel=require(_0xb5b1[4]);var email= new EmailChannel(client);var server=jayson[_0xb5b1[13]]({SendMail:function(_0xdf84x6){return  new Promise(function(_0xdf84x7,_0xdf84x8){email[_0xb5b1[10]](_0xdf84x6[_0xb5b1[8]],_0xdf84x6[_0xb5b1[9]])[_0xb5b1[7]](function(_0xdf84xa){_0xdf84x7(_0xdf84xa)})[_0xb5b1[6]](function(_0xdf84x9){_0xdf84x8(server[_0xb5b1[5]](500,_0xdf84x9))})})},VerifySmtp:function(_0xdf84x6){return  new Promise(function(_0xdf84x7,_0xdf84x8){email[_0xb5b1[12]](_0xdf84x6[_0xb5b1[8]])[_0xb5b1[7]](function(_0xdf84xb){_0xdf84x7({code:200,message:_0xb5b1[11]})})[_0xb5b1[6]](function(_0xdf84x9){_0xdf84x8(server[_0xb5b1[5]](500,_0xdf84x9))})})}});return server[_0xb5b1[2]]()[_0xb5b1[14]](9003)
\ No newline at end of file
diff --git a/server/services/email/lib/email.js b/server/services/email/lib/email.js
new file mode 100644 (file)
index 0000000..2cf5517
--- /dev/null
@@ -0,0 +1 @@
+var _0xc3d0=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x75\x74\x69\x6C","\x6B\x75\x65","\x6C\x6F\x64\x61\x73\x68","\x2E\x2F\x69\x6D\x61\x70","\x2E\x2F\x73\x6D\x74\x70","\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x63\x72\x65\x61\x74\x65\x51\x75\x65\x75\x65","\x65\x6E\x7A\x6F","\x64\x61\x6E\x69\x65\x6C\x65","\x61\x62\x69","\x76\x61\x6C\x65\x72\x69\x6F","\x67\x69\x6F\x72\x67\x69\x6F","\x6D\x65\x6F","\x64\x69\x65\x67\x6F","\x62\x65\x70\x70\x65","\x73\x74\x61\x72\x74\x20\x65\x6D\x61\x69\x6C\x20\x63\x68\x61\x6E\x6E\x65\x6C","\x69\x6E\x66\x6F","\x6A\x6F\x62\x73","\x69\x6D\x61\x70","\x6C\x65\x6E\x67\x74\x68","\x6C\x6F\x61\x64\x20\x61\x63\x63\x6F\x75\x6E\x74","\x69\x64","\x62\x69\x6E\x64","\x68\x61\x6E\x64\x6C\x65\x49\x6D\x61\x70\x45\x6D\x61\x69\x6C","\x6F\x6E","\x73\x6D\x74\x70","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x6E\x65\x77\x20\x65\x6D\x61\x69\x6C\x20\x6F\x6E\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73","\x66\x6F\x72\x6D\x61\x74","\x63\x72\x65\x61\x74\x65","\x63\x6F\x6D\x70\x6C\x65\x74\x65","\x6A\x6F\x62\x20\x25\x73\x20\x63\x6F\x6D\x70\x6C\x65\x74\x65\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73","\x66\x61\x69\x6C\x65\x64","\x6A\x6F\x62\x20\x25\x73\x20\x66\x61\x69\x6C\x65\x64\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73","\x70\x72\x6F\x67\x72\x65\x73\x73","\x6A\x6F\x62\x20\x25\x73\x20\x70\x72\x6F\x67\x72\x65\x73\x73\x20\x61\x74\x20\x25\x73\x25\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73\x2C\x20\x6E\x65\x78\x74\x20\x61\x70\x70\x20\x25\x73","\x6E\x65\x78\x74\x41\x70\x70","\x25\x73\x20\x65\x6D\x61\x69\x6C\x73\x20\x6D\x61\x6E\x61\x67\x65\x64\x20\x66\x6F\x72\x20\x61\x63\x63\x6F\x75\x6E\x74\x20\x25\x73\x20\x77\x69\x74\x68\x20\x73\x65\x71\x6E\x6F\x20\x25\x73","\x73\x61\x76\x65","\x6C\x6F\x67","\x72\x65\x74\x72\x79","\x61\x67\x65\x6E\x74\x73","\x74\x69\x6D\x65\x6F\x75\x74","\x50\x52\x4F\x43\x45\x53\x53\x20\x4A\x4F\x42\x49\x44\x3A","\x64\x61\x74\x61","\x72\x65\x6E\x64\x65\x72\x69\x6E\x67\x20\x61\x70\x70","\x69\x74\x73\x64\x6F\x6E\x65","\x70\x72\x6F\x63\x65\x73\x73","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x73\x65\x6E\x64","\x76\x65\x72\x69\x66\x79\x53\x6D\x74\x70","\x76\x65\x72\x69\x66\x79","\x65\x78\x70\x6F\x72\x74\x73"];_0xc3d0[0];var util=require(_0xc3d0[1]);var kue=require(_0xc3d0[2]);var _=require(_0xc3d0[3]);var EmailImap=require(_0xc3d0[4]);var EmailSmtp=require(_0xc3d0[5]);var logger=require(_0xc3d0[7])(_0xc3d0[6]);var queue=kue[_0xc3d0[9]]({redis:{port:6379,host:_0xc3d0[8]}});var emailsManaged=0;var accounts=[];var routing={"\x31":[{agents:[{name:_0xc3d0[10],retry:2},{name:_0xc3d0[11],retry:3}],timeout:3},{agents:[{name:_0xc3d0[12],retry:3},{name:_0xc3d0[13],retry:3}],timeout:3,retry:3}],"\x32":[{agents:[{name:_0xc3d0[14],retry:3},{name:_0xc3d0[15],retry:3}],timeout:3,retry:3},{agents:[{name:_0xc3d0[16],retry:3},{name:_0xc3d0[17],retry:3}],timeout:3,retry:3}]};function EmailChannel(){logger[_0xc3d0[19]](_0xc3d0[18]);this[_0xc3d0[20]]= [];this[_0xc3d0[21]]= [];for(var _0x68a1xc=0;_0x68a1xc< accounts[_0xc3d0[22]];_0x68a1xc+= 1){logger[_0xc3d0[19]](_0xc3d0[23],accounts[_0x68a1xc][_0xc3d0[24]]);this[_0xc3d0[21]][accounts[_0x68a1xc][_0xc3d0[24]]]=  new EmailImap(accounts[_0x68a1xc]);this[_0xc3d0[21]][accounts[_0x68a1xc][_0xc3d0[24]]][_0xc3d0[27]](_0xc3d0[6],this[_0xc3d0[26]][_0xc3d0[25]](this,accounts[_0x68a1xc][_0xc3d0[24]]))};this[_0xc3d0[28]]=  new EmailSmtp()}EmailChannel[_0xc3d0[29]][_0xc3d0[26]]= function(_0x68a1xd,_0x68a1xe,_0x68a1xf){logger[_0xc3d0[19]](util[_0xc3d0[31]](_0xc3d0[30],_0x68a1xd,_0x68a1xe));emailsManaged+= 1;var _0x68a1x10=queue[_0xc3d0[32]](_0xc3d0[6],routing[_0x68a1xd]);_0x68a1x10[_0xc3d0[27]](_0xc3d0[33],function(){logger[_0xc3d0[19]](util[_0xc3d0[31]](_0xc3d0[34],_0x68a1x10[_0xc3d0[24]],_0x68a1xd,_0x68a1xe))});_0x68a1x10[_0xc3d0[27]](_0xc3d0[35],function(){logger[_0xc3d0[19]](util[_0xc3d0[31]](_0xc3d0[36],_0x68a1x10[_0xc3d0[24]],_0x68a1xd,_0x68a1xe))});_0x68a1x10[_0xc3d0[27]](_0xc3d0[37],function(_0x68a1x11,_0x68a1x12){logger[_0xc3d0[19]](util[_0xc3d0[31]](_0xc3d0[38],_0x68a1x10[_0xc3d0[24]],_0x68a1x11,_0x68a1xd,_0x68a1xe,_0x68a1x12[_0xc3d0[39]]))});logger[_0xc3d0[19]](util[_0xc3d0[31]](_0xc3d0[40],emailsManaged,_0x68a1xd,_0x68a1xe));_0x68a1x10[_0xc3d0[41]]()};function notifyAgent(_0x68a1x14,_0x68a1x15){console[_0xc3d0[42]](_0x68a1x14);setTimeout(_0x68a1x15,_0x68a1x14[_0xc3d0[43]]* 1000)}function notify(_0x68a1x17,_0x68a1x15){var _0x68a1x18=_0x68a1x17[_0xc3d0[44]],_0x68a1x19=_0x68a1x18[_0xc3d0[22]];function _0x68a1x1a(_0x68a1xc){var _0x68a1x14=_0x68a1x18[_0x68a1xc];if(_0x68a1x17[_0xc3d0[45]]>= _0x68a1x14[_0xc3d0[43]]){_0x68a1x17[_0xc3d0[45]]-= _0x68a1x14[_0xc3d0[43]]}else {_0x68a1x14[_0xc3d0[43]]= _0x68a1x17[_0xc3d0[45]];_0x68a1x17[_0xc3d0[45]]= 0};console[_0xc3d0[42]](_0x68a1x17[_0xc3d0[45]]);notifyAgent(_0x68a1x14,function(_0x68a1x1b){if(_0x68a1x1b){return _0x68a1x15(_0x68a1x1b)};if(_0x68a1xc=== _0x68a1x19- 1|| _0x68a1x17[_0xc3d0[45]]=== 0){_0x68a1x15()}else {_0x68a1x1a(_0x68a1xc+= 1)}})}_0x68a1x1a(0)}queue[_0xc3d0[50]](_0xc3d0[6],function(_0x68a1x10,_0x68a1x1c){console[_0xc3d0[42]](_0xc3d0[46],_0x68a1x10[_0xc3d0[24]]);var _0x68a1x1d=_0x68a1x10[_0xc3d0[47]],_0x68a1x19=_0x68a1x1d[_0xc3d0[22]];function _0x68a1x1a(_0x68a1xc){var _0x68a1x17=_0x68a1x1d[_0x68a1xc];_0x68a1x10[_0xc3d0[42]](_0xc3d0[48]);notify(_0x68a1x17,function(_0x68a1x1b){if(_0x68a1x1b){return _0x68a1x1c(_0x68a1x1b)};_0x68a1x10[_0xc3d0[37]](_0x68a1xc,_0x68a1x19,{nextApp:_0x68a1xc=== _0x68a1x19- 1?_0xc3d0[49]:_0x68a1xc+ 1});if(_0x68a1xc=== _0x68a1x19- 1){_0x68a1x1c()}else {_0x68a1x1a(_0x68a1xc+= 1)}})}_0x68a1x1a(0)});EmailChannel[_0xc3d0[29]][_0xc3d0[51]]= function(_0x68a1x1e,_0x68a1x1f){return this[_0xc3d0[28]][_0xc3d0[52]](_0x68a1x1e,_0x68a1x1f)};EmailChannel[_0xc3d0[29]][_0xc3d0[53]]= function(_0x68a1x1e){return this[_0xc3d0[28]][_0xc3d0[54]](_0x68a1x1e)};module[_0xc3d0[55]]= EmailChannel
\ No newline at end of file
diff --git a/server/services/email/lib/imap.js b/server/services/email/lib/imap.js
new file mode 100644 (file)
index 0000000..2481603
--- /dev/null
@@ -0,0 +1 @@
+var _0x8c85=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x66\x73","\x70\x61\x74\x68","\x75\x74\x69\x6C","\x69\x6D\x61\x70","\x6C\x6F\x64\x61\x73\x68","\x72\x61\x6E\x64\x6F\x6D\x73\x74\x72\x69\x6E\x67","\x4D\x61\x69\x6C\x50\x61\x72\x73\x65\x72","\x6D\x61\x69\x6C\x70\x61\x72\x73\x65\x72","\x45\x76\x65\x6E\x74\x45\x6D\x69\x74\x74\x65\x72","\x65\x76\x65\x6E\x74\x73","\x65\x6D\x61\x69\x6C","\x2E\x2E\x2F\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72","\x68\x74\x6D\x6C","\x73\x75\x62\x6A\x65\x63\x74","\x6D\x65\x73\x73\x61\x67\x65\x49\x64","\x70\x72\x69\x6F\x72\x69\x74\x79","\x66\x72\x6F\x6D","\x74\x6F","\x64\x61\x74\x65","\x72\x65\x63\x65\x69\x76\x65\x64\x44\x61\x74\x65","\x61\x74\x74\x61\x63\x68\x6D\x65\x6E\x74\x73","\x6D\x61\x69\x6C\x62\x6F\x78","\x49\x4E\x42\x4F\x58","\x72\x65\x61\x64\x79","\x62\x69\x6E\x64","\x68\x61\x6E\x64\x6C\x65\x52\x65\x61\x64\x79","\x6F\x6E\x63\x65","\x65\x6E\x64","\x68\x61\x6E\x64\x6C\x65\x45\x6E\x64","\x65\x72\x72\x6F\x72","\x68\x61\x6E\x64\x6C\x65\x45\x72\x72\x6F\x72","\x6F\x6E","\x63\x6F\x6E\x6E\x65\x63\x74","\x69\x6E\x68\x65\x72\x69\x74\x73","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x69\x6E\x66\x6F","\x68\x61\x6E\x64\x6C\x65\x4F\x70\x65\x6E\x42\x6F\x78","\x6F\x70\x65\x6E\x42\x6F\x78","\x6D\x61\x69\x6C","\x68\x61\x6E\x64\x6C\x65\x4E\x65\x77\x4D\x61\x69\x6C","\x72\x65\x61\x64\x55\x6E\x73\x65\x65\x6E","\x6E\x65\x77\x20\x69\x6E\x63\x6F\x6D\x69\x6E\x67\x20\x65\x6D\x61\x69\x6C","\x55\x4E\x53\x45\x45\x4E","\x68\x61\x6E\x64\x6C\x65\x52\x65\x61\x64\x55\x6E\x73\x65\x65\x6E","\x73\x65\x61\x72\x63\x68","","\x66\x65\x74\x63\x68","\x6D\x65\x73\x73\x61\x67\x65","\x68\x61\x6E\x64\x6C\x65\x46\x65\x74\x63\x68\x4D\x65\x73\x73\x61\x67\x65","\x68\x61\x6E\x64\x6C\x65\x46\x65\x74\x63\x68\x45\x72\x72\x6F\x72","\x68\x61\x6E\x64\x6C\x65\x46\x65\x74\x63\x68\x45\x6E\x64","\x62\x6F\x64\x79","\x68\x61\x6E\x64\x6C\x65\x4D\x65\x73\x73\x61\x67\x65\x42\x6F\x64\x79","\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x68\x61\x6E\x64\x6C\x65\x4D\x65\x73\x73\x61\x67\x65\x41\x74\x74\x72\x69\x62\x75\x74\x65\x73","\x68\x61\x6E\x64\x6C\x65\x4D\x65\x73\x73\x61\x67\x65\x45\x6E\x64","\x6E\x65\x77\x20\x6D\x65\x73\x73\x61\x67\x65\x20\x73\x65\x71\x6E\x6F\x3A\x25\x73\x20\x73\x69\x7A\x65\x3A\x25\x73","\x73\x69\x7A\x65","\x66\x6F\x72\x6D\x61\x74","\x68\x61\x6E\x64\x6C\x65\x4D\x61\x69\x6C\x50\x61\x72\x73\x65\x72\x45\x6E\x64","\x70\x69\x70\x65","\x6D\x65\x73\x73\x61\x67\x65\x20\x73\x65\x71\x6E\x6F\x3A\x25\x73\x20\x61\x74\x74\x72\x69\x62\x75\x74\x65\x73\x3A\x25\x73","\x73\x74\x72\x69\x6E\x67\x69\x66\x79","\x64\x65\x62\x75\x67","\x6D\x65\x73\x73\x61\x67\x65\x20\x73\x65\x71\x6E\x6F\x3A\x25\x73\x20\x70\x61\x72\x73\x65\x64","\x70\x69\x63\x6B","\x65\x6D\x69\x74","\x66\x65\x74\x63\x68\x20\x65\x6E\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x8c85[0];var fs=require(_0x8c85[1]);var path=require(_0x8c85[2]);var util=require(_0x8c85[3]);var Imap=require(_0x8c85[4]);var _=require(_0x8c85[5]);var rs=require(_0x8c85[6]);var MailParser=require(_0x8c85[8])[_0x8c85[7]];var EventEmitter=require(_0x8c85[10])[_0x8c85[9]];var logger=require(_0x8c85[12])(_0x8c85[11]);var PROPERTIES=[_0x8c85[13],_0x8c85[14],_0x8c85[15],_0x8c85[16],_0x8c85[17],_0x8c85[18],_0x8c85[19],_0x8c85[20],_0x8c85[21]];function EmailImap(_0x2e34xc){this[_0x8c85[22]]= _0x8c85[23];this[_0x8c85[4]]=  new Imap(_0x2e34xc);this[_0x8c85[4]][_0x8c85[27]](_0x8c85[24],this[_0x8c85[26]][_0x8c85[25]](this));this[_0x8c85[4]][_0x8c85[27]](_0x8c85[28],this[_0x8c85[29]][_0x8c85[25]](this));this[_0x8c85[4]][_0x8c85[32]](_0x8c85[30],this[_0x8c85[31]][_0x8c85[25]](this));this[_0x8c85[4]][_0x8c85[33]]()}util[_0x8c85[34]](EmailImap,EventEmitter);EmailImap[_0x8c85[35]][_0x8c85[26]]= function(){logger[_0x8c85[36]](_0x8c85[24]);this[_0x8c85[4]][_0x8c85[38]](this[_0x8c85[22]],false,this[_0x8c85[37]][_0x8c85[25]](this))};EmailImap[_0x8c85[35]][_0x8c85[37]]= function(_0x2e34xd,_0x2e34xe){if(_0x2e34xd){logger[_0x8c85[30]](_0x2e34xd)}else {this[_0x8c85[4]][_0x8c85[32]](_0x8c85[39],this[_0x8c85[40]][_0x8c85[25]](this));this[_0x8c85[41]]()}};EmailImap[_0x8c85[35]][_0x8c85[40]]= function(_0x2e34xf){logger[_0x8c85[36]](_0x8c85[42]);this[_0x8c85[41]]()};EmailImap[_0x8c85[35]][_0x8c85[41]]= function(){this[_0x8c85[4]][_0x8c85[45]]([_0x8c85[43]],this[_0x8c85[44]][_0x8c85[25]](this))};EmailImap[_0x8c85[35]][_0x8c85[44]]= function(_0x2e34xd,_0x2e34x10){if(_0x2e34xd){logger[_0x8c85[30]](_0x2e34xd)}else {var _0x2e34x11=this[_0x8c85[4]][_0x8c85[47]](_0x2e34x10,{bodies:_0x8c85[46]});_0x2e34x11[_0x8c85[32]](_0x8c85[48],this[_0x8c85[49]][_0x8c85[25]](this));_0x2e34x11[_0x8c85[27]](_0x8c85[30],this[_0x8c85[50]][_0x8c85[25]](this));_0x2e34x11[_0x8c85[27]](_0x8c85[28],this[_0x8c85[51]][_0x8c85[25]](this))}};EmailImap[_0x8c85[35]][_0x8c85[49]]= function(_0x2e34x12,_0x2e34x13){_0x2e34x12[_0x8c85[32]](_0x8c85[52],this[_0x8c85[53]][_0x8c85[25]](this,_0x2e34x13));_0x2e34x12[_0x8c85[27]](_0x8c85[54],this[_0x8c85[55]][_0x8c85[25]](this,_0x2e34x13));_0x2e34x12[_0x8c85[27]](_0x8c85[28],this[_0x8c85[56]][_0x8c85[25]](this,_0x2e34x13))};EmailImap[_0x8c85[35]][_0x8c85[53]]= function(_0x2e34x13,_0x2e34x14,_0x2e34x15){logger[_0x8c85[36]](util[_0x8c85[59]](_0x8c85[57],_0x2e34x13,_0x2e34x15[_0x8c85[58]]));var _0x2e34x16= new MailParser();_0x2e34x16[_0x8c85[32]](_0x8c85[28],this[_0x8c85[60]][_0x8c85[25]](this,_0x2e34x13));_0x2e34x14[_0x8c85[61]](_0x2e34x16)};EmailImap[_0x8c85[35]][_0x8c85[55]]= function(_0x2e34x13,_0x2e34x17){logger[_0x8c85[64]](util[_0x8c85[59]](_0x8c85[62],_0x2e34x13,JSON[_0x8c85[63]](_0x2e34x17)))};EmailImap[_0x8c85[35]][_0x8c85[56]]= function(_0x2e34x13){logger[_0x8c85[36]](util[_0x8c85[59]](_0x8c85[65],_0x2e34x13))};EmailImap[_0x8c85[35]][_0x8c85[60]]= function(_0x2e34x13,_0x2e34x18){this[_0x8c85[67]](_0x8c85[11],_0x2e34x13,_[_0x8c85[66]](_0x2e34x18,PROPERTIES))};EmailImap[_0x8c85[35]][_0x8c85[51]]= function(){logger[_0x8c85[36]](_0x8c85[68])};EmailImap[_0x8c85[35]][_0x8c85[50]]= function(_0x2e34xd){logger[_0x8c85[30]](_0x8c85[47],JSON[_0x8c85[63]](_0x2e34xd))};EmailImap[_0x8c85[35]][_0x8c85[29]]= function(){logger[_0x8c85[36]](_0x8c85[28])};EmailImap[_0x8c85[35]][_0x8c85[31]]= function(_0x2e34xd){logger[_0x8c85[30]](JSON[_0x8c85[63]](_0x2e34xd))};module[_0x8c85[69]]= EmailImap
\ No newline at end of file
diff --git a/server/services/email/lib/smtp.js b/server/services/email/lib/smtp.js
new file mode 100644 (file)
index 0000000..4db2b83
--- /dev/null
@@ -0,0 +1 @@
+var _0x716b=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6E\x6F\x64\x65\x6D\x61\x69\x6C\x65\x72","\x62\x6C\x75\x65\x62\x69\x72\x64","\x73\x65\x6E\x64","\x70\x72\x6F\x74\x6F\x74\x79\x70\x65","\x63\x72\x65\x61\x74\x65\x54\x72\x61\x6E\x73\x70\x6F\x72\x74","\x73\x65\x6E\x64\x4D\x61\x69\x6C","\x76\x65\x72\x69\x66\x79","\x4E\x6F\x74\x20\x76\x65\x72\x69\x66\x69\x72\x65\x64","\x65\x78\x70\x6F\x72\x74\x73"];_0x716b[0];var nodemailer=require(_0x716b[1]);var BPromise=require(_0x716b[2]);function EmailSmtp(){}EmailSmtp[_0x716b[4]][_0x716b[3]]= function(_0x61cbx4,_0x61cbx5){return  new BPromise(function(_0x61cbx6,_0x61cbx7){var _0x61cbx8=nodemailer[_0x716b[5]](_0x61cbx4);_0x61cbx8[_0x716b[6]](_0x61cbx5,function(_0x61cbx9,_0x61cbxa){if(_0x61cbx9){_0x61cbx7(_0x61cbx9.toString())}else {_0x61cbx6(_0x61cbxa)}})})};EmailSmtp[_0x716b[4]][_0x716b[7]]= function(_0x61cbx4){return  new BPromise(function(_0x61cbx6,_0x61cbx7){var _0x61cbx8=nodemailer[_0x716b[5]](_0x61cbx4);_0x61cbx8[_0x716b[7]](function(_0x61cbx9,_0x61cbxb){if(_0x61cbx9){_0x61cbx7(_0x61cbx9.toString())}else {if(_0x61cbxb){_0x61cbx6(_0x61cbxb)}else {_0x61cbx7(_0x716b[8])}}})})};module[_0x716b[9]]= EmailSmtp
\ No newline at end of file
diff --git a/server/services/express/index.js b/server/services/express/index.js
new file mode 100644 (file)
index 0000000..7b4191f
--- /dev/null
@@ -0,0 +1 @@
+var _0x9d62=["\x75\x73\x65\x20\x73\x63\x72\x69\x70\x74","\x68\x74\x74\x70","\x65\x78\x70\x72\x65\x73\x73","\x73\x74\x69\x63\x6B\x79\x2D\x73\x65\x73\x73\x69\x6F\x6E","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74","\x63\x72\x65\x61\x74\x65\x53\x65\x72\x76\x65\x72","\x70\x6F\x72\x74","\x6C\x69\x73\x74\x65\x6E","\x77\x65\x62\x73\x6F\x63\x6B\x65\x74","\x70\x6F\x6C\x6C\x69\x6E\x67","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F","\x6C\x6F\x63\x61\x6C\x68\x6F\x73\x74","\x73\x6F\x63\x6B\x65\x74\x2E\x69\x6F\x2D\x72\x65\x64\x69\x73","\x61\x64\x61\x70\x74\x65\x72","\x64\x65\x66\x61\x75\x6C\x74","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x73\x6F\x63\x6B\x65\x74\x69\x6F","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x65\x78\x70\x72\x65\x73\x73","\x2E\x2E\x2F\x2E\x2E\x2F\x72\x6F\x75\x74\x65\x73","\x65\x78\x70\x6F\x72\x74\x73"];_0x9d62[0];var http=require(_0x9d62[1]);var express=require(_0x9d62[2]);var sticky=require(_0x9d62[3]);var config=require(_0x9d62[4]);var app=express();var server=http[_0x9d62[5]](app);if(sticky[_0x9d62[7]](server,config[_0x9d62[6]])){var socketio=require(_0x9d62[10])(server,{transports:[_0x9d62[8],_0x9d62[9]]});socketio[_0x9d62[13]](require(_0x9d62[12])({host:_0x9d62[11],port:6379}));require(_0x9d62[15])[_0x9d62[14]](socketio);require(_0x9d62[16])[_0x9d62[14]](app);require(_0x9d62[17])[_0x9d62[14]](app)};exports= module[_0x9d62[18]]= app
\ No newline at end of file
diff --git a/server/views/404.html b/server/views/404.html
new file mode 100644 (file)
index 0000000..fe31897
--- /dev/null
@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <title>Page Not Found :(</title>
+    <style>
+         ::-moz-selection {
+            background: #b3d4fc;
+            text-shadow: none;
+        }
+        
+         ::selection {
+            background: #b3d4fc;
+            text-shadow: none;
+        }
+        
+        html {
+            padding: 30px 10px;
+            font-size: 20px;
+            line-height: 1.4;
+            color: #737373;
+            background: #f0f0f0;
+            -webkit-text-size-adjust: 100%;
+            -ms-text-size-adjust: 100%;
+        }
+        
+        html,
+        input {
+            font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+        }
+        
+        body {
+            max-width: 500px;
+            _width: 500px;
+            padding: 30px 20px 50px;
+            border: 1px solid #b3b3b3;
+            border-radius: 4px;
+            margin: 0 auto;
+            box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff;
+            background: #fcfcfc;
+        }
+        
+        h1 {
+            margin: 0 10px;
+            font-size: 50px;
+            text-align: center;
+        }
+        
+        h1 span {
+            color: #bbb;
+        }
+        
+        h3 {
+            margin: 1.5em 0 0.5em;
+        }
+        
+        p {
+            margin: 1em 0;
+        }
+        
+        ul {
+            padding: 0 0 0 40px;
+            margin: 1em 0;
+        }
+        
+        .container {
+            max-width: 380px;
+            _width: 380px;
+            margin: 0 auto;
+        }
+        /* google search */
+        
+        #goog-fixurl ul {
+            list-style: none;
+            padding: 0;
+            margin: 0;
+        }
+        
+        #goog-fixurl form {
+            margin: 0;
+        }
+        
+        #goog-wm-qt,
+        #goog-wm-sb {
+            border: 1px solid #bbb;
+            font-size: 16px;
+            line-height: normal;
+            vertical-align: top;
+            color: #444;
+            border-radius: 2px;
+        }
+        
+        #goog-wm-qt {
+            width: 220px;
+            height: 20px;
+            padding: 5px;
+            margin: 5px 10px 0 0;
+            box-shadow: inset 0 1px 1px #ccc;
+        }
+        
+        #goog-wm-sb {
+            display: inline-block;
+            height: 32px;
+            padding: 0 10px;
+            margin: 5px 0 0;
+            white-space: nowrap;
+            cursor: pointer;
+            background-color: #f5f5f5;
+            background-image: -webkit-linear-gradient(rgba(255, 255, 255, 0), #f1f1f1);
+            background-image: -moz-linear-gradient(rgba(255, 255, 255, 0), #f1f1f1);
+            background-image: -ms-linear-gradient(rgba(255, 255, 255, 0), #f1f1f1);
+            background-image: -o-linear-gradient(rgba(255, 255, 255, 0), #f1f1f1);
+            -webkit-appearance: none;
+            -moz-appearance: none;
+            appearance: none;
+            *overflow: visible;
+            *display: inline;
+            *zoom: 1;
+        }
+        
+        #goog-wm-sb:hover,
+        #goog-wm-sb:focus {
+            border-color: #aaa;
+            box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
+            background-color: #f8f8f8;
+        }
+        
+        #goog-wm-qt:hover,
+        #goog-wm-qt:focus {
+            border-color: #105cb6;
+            outline: 0;
+            color: #222;
+        }
+        
+        input::-moz-focus-inner {
+            padding: 0;
+            border: 0;
+        }
+    </style>
+</head>
+
+<body>
+    <div class="container">
+        <h1>Not found <span>:(</span></h1>
+        <p>Sorry, but the page you were trying to view does not exist.</p>
+        <p>It looks like this was the result of either:</p>
+        <ul>
+            <li>a mistyped address</li>
+            <li>an out-of-date link</li>
+        </ul>
+        <script>
+            var GOOG_FIXURL_LANG = (navigator.language || '').slice(0, 2),
+                GOOG_FIXURL_SITE = location.host;
+        </script>
+        <script src="//linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
+    </div>
+</body>
+
+</html>
\ No newline at end of file